From 084b8def2c1b0426ac52f9c0f6ecd0ef1b88df3f Mon Sep 17 00:00:00 2001 From: A S Lewis Date: Sun, 8 Aug 2021 14:04:37 +0100 Subject: [PATCH] Stable release --- .github/ISSUE_TEMPLATE/ask_question.md | 12 + .github/ISSUE_TEMPLATE/bug_report.md | 31 + .github/ISSUE_TEMPLATE/feature_request.md | 13 + .gitignore | 11 + CHANGES | 45 + README.rst | 10 +- VERSION | 2 +- icons/dialogue/newbie_classic_icon.png | Bin 0 -> 5508 bytes icons/dialogue/setup_classic_icon.png | Bin 0 -> 22987 bytes locale/en_US/LC_MESSAGES/base.po | 3936 ++++++++++---------- locale/ko_KR/LC_MESSAGES/base.mo | Bin 148032 -> 147483 bytes locale/ko_KR/LC_MESSAGES/base.po | 3966 ++++++++++---------- locale/nl_NL/LC_MESSAGES/base.mo | Bin 140541 -> 140010 bytes locale/nl_NL/LC_MESSAGES/base.po | 3967 ++++++++++---------- nsis/tartube_install_32bit.nsi | 6 +- nsis/tartube_install_64bit.nsi | 6 +- pack/bin/no_download/tartube | 4 +- pack/bin/pkg/tartube | 4 +- pack/bin/strict/tartube | 4 +- pack/tartube.1 | 2 +- pack/tartube.desktop | 2 +- setup.py | 2 +- tartube/config.py | 77 +- tartube/downloads.py | 67 +- tartube/formats.py | 2 + tartube/mainapp.py | 17 +- tartube/mainwin.py | 205 +- tartube/media.py | 3 +- tartube/po/messages.pot | 3980 +++++++++++---------- tartube/tartube | 4 +- tartube/utils.py | 7 +- tartube/wizwin.py | 126 +- 32 files changed, 8683 insertions(+), 7828 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/ask_question.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .gitignore create mode 100644 icons/dialogue/newbie_classic_icon.png create mode 100644 icons/dialogue/setup_classic_icon.png diff --git a/.github/ISSUE_TEMPLATE/ask_question.md b/.github/ISSUE_TEMPLATE/ask_question.md new file mode 100644 index 00000000..9b9abff3 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/ask_question.md @@ -0,0 +1,12 @@ +--- +name: Ask Question 💡 +about: Ask a Tartube related question +labels: question +--- +Thanks for taking the time to ask a question! + +### Please read the README +Perhaps your question is answered there + +### The authors are not experts in python, security, youtube-dl, FFmpeg, Debian/RPM packaging or Windows programming +You are welcome to ask a Tartube-related question, but you might get a better answer in forums where those kinds of expert can be found \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000..7c0df604 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,31 @@ +--- +name: Bug report 🐞 +about: Create a report to help us improve +title: '' +labels: bug +assignees: '' +--- +Thanks for taking the time to submit a bug report! Please include the following information: + +### What operating system are you using? +If using MS Windows, are you using Windows 10, Windows 7, or something else? + +### What version of Tartube are you using? +In Tartube's main window, click Help > About + +### What happens when you run Tartube from a terminal window? +Many error messages are only visible in the terminal window. On MS Windows, this is how to do it: + +- First, enable hidden folders on your system +- Then, run the application: + + C:\Users\YOURNAME\AppData\Local\Tartube\msys64\mingw64.exe + +- In this new window, type these commands to start Tartube: + + cd /home/user/tartube + + python3 tartube/tartube + +###If your bug report is "I can't download this video", please provide a link to the video +This will save a lot of time! \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000..4629919e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,13 @@ +--- +name: Feature Request 💡 +about: Suggest a new idea for the project. +labels: enhancement +--- +Thanks for taking the time to submit a feature request! + +### Make sure you are using the most recent version of Tartube +Perhaps your feature request has already been implemented. The most recent version can be downloaded from Github + +### Please read the README +Perhaps your feature request is already possible + diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..37d6d86a --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +# This file copied from +# https://python-packaging.readthedocs.io/en/latest/minimal.html?highlight=gitignore + +# Compiled python modules. +*.pyc + +# Setuptools distribution folder. +/dist/ + +# Python egg metadata, regenerated from source files by setuptools. +/*.egg-info diff --git a/CHANGES b/CHANGES index e75e4183..0a78b594 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,48 @@ +v2.3.332 (8 Jul 2021) +------------------------------------------------------------------------------- + +MAJOR NEW FEATURES +- Tartube can extract a video's comments, and optionally store them in its own + database. (In either case, comments are stored in the video's .info.json + file). This feature is only available when using yt-dlp. To enable it, + click 'Edit > System preferences... > Operations > Comments', and select + 'When checking/downloading videos, store comments in the metadata file', + (Note that the download option in 'Edit > General download options...' has + been removed). To view comments for a video, right-click the video and + select 'Show video > Properties > Comments' + +MINOR NEW FEATURES +- In the preferences window (Edit > System preferences... > Windows > Main + window), the 'Reset' button now resets the position of various sldiers, as + well as the size of the main window +- Added a few more video/audio formats to the list selectable in the download + options window +- In the video slices dialogue window (right-click a video and select 'Special + > Remove video slices...') the user can now opt to remove a slice, or to + remove everything but a slice. The latter behaviour is slightly different + to downloading a video clip, because downloading a clip will create a new + entry in Tartube's database. The new button should clarify what the window + is actually supposed to do (Git #322) +- In the new-ish dialogue window that appears when nothing is downloaded, there + is a new section remnnding Classic Mode users that they can't download a + file that doesn't exist (and what to do about that) (Git #326) +- The same dialogue window appeared after checking a single video that had + previously been checked/downloaded. Fixed +- The setup dialogue window now explains to users what the Classic Mode tab is + for, and lets them specify that the main window should always open at that + tab, if they want + +MAJOR FIXES +- The button to set the media file in a video's edit window did not work on + MS Windwos. Fixed (Git #320) +- In the Progress tab, the 'Maximum downloads' setting was broken. Fixed +- Fixed an error caused when a video's upload date (as returned by youtube-dl) + was None + +MINOR FIXES +- .webp thumbnails from Odysee (and perhaps other websites) were not converted + into a displayable format; fixed + v2.3.306 (3 Jul 2021) ------------------------------------------------------------------------------- diff --git a/README.rst b/README.rst index bd1b2010..73e7a8e1 100644 --- a/README.rst +++ b/README.rst @@ -59,14 +59,14 @@ For a full list of new features and fixes, see `recent changes `__. 3 Downloads =========== -Latest version: **v2.3.306 (3 Aug 2021)** +Latest version: **v2.3.332 (8 Aug 2021)** Official packages (also available from the `Github release page `__): -- `MS Windows (64-bit) installer `__ and `portable edition `__ from Sourceforge -- `MS Windows (32-bit) installer `__ and `portable edition `__ from Sourceforge (but see `7.23 Doesn't work on 32-bit Windows`_) -- `DEB package (for Debian-based distros, e.g. Ubuntu, Linux Mint) `__ from Sourceforge -- `RPM package (for RHEL-based distros, e.g. Fedora) `__ from Sourceforge +- `MS Windows (64-bit) installer `__ and `portable edition `__ from Sourceforge +- `MS Windows (32-bit) installer `__ and `portable edition `__ from Sourceforge (but see `7.23 Doesn't work on 32-bit Windows`_) +- `DEB package (for Debian-based distros, e.g. Ubuntu, Linux Mint) `__ from Sourceforge +- `RPM package (for RHEL-based distros, e.g. Fedora) `__ from Sourceforge There are also some DEB/RPM packages marked STRICT. In these packages, updates to **youtube-dl** from within **Tartube** have been disabled. If **Tartube** is uploaded to a repository with lots of rules, such as the official Debian repository, then you should probably use the STRICT packages. diff --git a/VERSION b/VERSION index 22c0e178..b941ebc4 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.3.321 +2.3.332 diff --git a/icons/dialogue/newbie_classic_icon.png b/icons/dialogue/newbie_classic_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f193d97eb1f21a89f5a88e4703ad8b6378a565c5 GIT binary patch literal 5508 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 KvSl(R0sjL{ji^ol literal 0 HcmV?d00001 diff --git a/icons/dialogue/setup_classic_icon.png b/icons/dialogue/setup_classic_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5ec91f10c252addb24effc398f175d05a98cb923 GIT binary patch literal 22987 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 oIrsMsIdS@_-!R7`eFPoj$sSQ{c{cB{ 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 F{vR@eaytM3 literal 0 HcmV?d00001 diff --git a/locale/en_US/LC_MESSAGES/base.po b/locale/en_US/LC_MESSAGES/base.po index 8db86089..1cc9f458 100644 --- a/locale/en_US/LC_MESSAGES/base.po +++ b/locale/en_US/LC_MESSAGES/base.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: 2.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-03 07:52+0100\n" +"POT-Creation-Date: 2021-08-08 13:06+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: A S Lewis \n" "Language-Team: en_US\n" @@ -24,7 +24,7 @@ msgstr "" msgid "Small" msgstr "" -#: .././mainapp.py:319 .././config.py:5054 .././config.py:5132 +#: .././mainapp.py:319 .././config.py:5140 .././config.py:5218 msgid "Medium" msgstr "" @@ -36,7 +36,7 @@ msgstr "" msgid "Enormous" msgstr "" -#: .././mainapp.py:991 +#: .././mainapp.py:996 msgid "" "Failed to convert a thumbnail from .webp to .jpg. No more conversions will " "be attempted until you install FFmpeg on your system, or (if FFmpeg is " @@ -45,186 +45,186 @@ msgid "" "conversions" msgstr "" -#: .././mainapp.py:2997 +#: .././mainapp.py:3017 msgid "" "Tartube can't create the folder in which its configuration file is saved" msgstr "" #. Load/save has been disabled. Show the error message in a dialogue #. window, then shut down -#: .././mainapp.py:3044 +#: .././mainapp.py:3064 msgid "Tartube failed to start because:" msgstr "" -#: .././mainapp.py:3052 +#: .././mainapp.py:3072 msgid "If you don't know how to resolve this error, please contact the authors" msgstr "" -#: .././mainapp.py:3280 +#: .././mainapp.py:3296 msgid "Because of an error, file load/save has been disabled" msgstr "" -#: .././mainapp.py:3289 +#: .././mainapp.py:3305 msgid "Because of the error, file load/save has been disabled" msgstr "" -#: .././mainapp.py:3377 +#: .././mainapp.py:3393 msgid "There is a download operation in progress." msgstr "" -#: .././mainapp.py:3379 +#: .././mainapp.py:3395 msgid "There is an update operation in progress." msgstr "" -#: .././mainapp.py:3381 +#: .././mainapp.py:3397 msgid "There is a refresh operation in progress." msgstr "" -#: .././mainapp.py:3383 +#: .././mainapp.py:3399 msgid "There is an info operation in progress." msgstr "" -#: .././mainapp.py:3385 +#: .././mainapp.py:3401 msgid "There is a tidy operation in progress." msgstr "" -#: .././mainapp.py:3387 +#: .././mainapp.py:3403 msgid "There is a process operation in progress." msgstr "" -#: .././mainapp.py:3392 +#: .././mainapp.py:3408 msgid "Are you sure you want to quit Tartube?" msgstr "" -#: .././mainapp.py:3597 +#: .././mainapp.py:3613 msgid "Failed to load the Tartube config file (failed sanity check)" msgstr "" -#: .././mainapp.py:3620 +#: .././mainapp.py:3636 msgid "Failed to load the Tartube config file (file is locked)" msgstr "" -#: .././mainapp.py:3650 +#: .././mainapp.py:3666 msgid "Failed to load the Tartube config file (JSON load failure)" msgstr "" -#: .././mainapp.py:3668 +#: .././mainapp.py:3684 msgid "Failed to load the Tartube config file (file is invalid)" msgstr "" -#: .././mainapp.py:3686 +#: .././mainapp.py:3702 msgid "" "Failed to load the Tartube config file (file cannot be read by this version)" msgstr "" -#: .././mainapp.py:3701 +#: .././mainapp.py:3717 msgid "Failed to load the Tartube config file (missing file type)" msgstr "" -#: .././mainapp.py:4720 +#: .././mainapp.py:4746 msgid "Failed to save the Tartube config file (failed sanity check)" msgstr "" -#: .././mainapp.py:5084 +#: .././mainapp.py:5115 msgid "Failed to save the Tartube config file (file is locked)" msgstr "" -#: .././mainapp.py:5086 .././mainapp.py:6744 .././mainapp.py:6800 -#: .././mainapp.py:6806 +#: .././mainapp.py:5117 .././mainapp.py:6789 .././mainapp.py:6845 +#: .././mainapp.py:6851 msgid "File load/save has been disabled" msgstr "" -#: .././mainapp.py:5105 +#: .././mainapp.py:5136 msgid "Failed to save the Tartube config file (file already in use)" msgstr "" -#: .././mainapp.py:5124 +#: .././mainapp.py:5155 msgid "Failed to save the Tartube config file" msgstr "" -#: .././mainapp.py:5229 .././mainapp.py:5245 .././mainapp.py:5275 +#: .././mainapp.py:5260 .././mainapp.py:5276 .././mainapp.py:5306 msgid "Failed to load the Tartube database file" msgstr "" -#: .././mainapp.py:5290 +#: .././mainapp.py:5321 msgid "The Tartube database file is invalid" msgstr "" -#: .././mainapp.py:5306 +#: .././mainapp.py:5337 msgid "Database file can't be read by this version of Tartube" msgstr "" -#: .././mainapp.py:5667 +#: .././mainapp.py:5698 msgid "Tartube is applying an essential database update" msgstr "" -#: .././mainapp.py:5669 +#: .././mainapp.py:5700 msgid "This might take a few minutes, so please be patient" msgstr "" -#: .././mainapp.py:6738 .././mainapp.py:6796 .././mainapp.py:6805 +#: .././mainapp.py:6783 .././mainapp.py:6841 .././mainapp.py:6850 msgid "Failed to save the Tartube database file" msgstr "" -#: .././mainapp.py:6741 +#: .././mainapp.py:6786 msgid "(Could not make a backup copy of the existing file)" msgstr "" -#: .././mainapp.py:6777 +#: .././mainapp.py:6822 msgid "Failed to save the Tartube database file (file already in use)" msgstr "" -#: .././mainapp.py:6798 +#: .././mainapp.py:6843 msgid "A backup of the previous file can be found at:" msgstr "" -#: .././mainapp.py:6979 .././mainapp.py:6989 +#: .././mainapp.py:7021 .././mainapp.py:7031 msgid "Database file created" msgstr "" -#: .././mainapp.py:7388 +#: .././mainapp.py:7428 msgid "Tartube's database can't be checked while an operation is in progress" msgstr "" -#: .././mainapp.py:7624 +#: .././mainapp.py:7664 msgid "Database check complete, no inconsistencies found" msgstr "" -#: .././mainapp.py:7656 +#: .././mainapp.py:7696 msgid "Database check complete, problems found:" msgstr "" -#: .././mainapp.py:7659 +#: .././mainapp.py:7699 msgid "" "Do you want to repair these problems? (The database will be fixed, but no " "files will be deleted)" msgstr "" -#: .././mainapp.py:7832 +#: .././mainapp.py:7872 msgid "Database inconsistencies repaired" msgstr "" -#: .././mainapp.py:8918 .././config.py:23466 +#: .././mainapp.py:9070 .././config.py:24448 msgid "Please select Tartube's data folder" msgstr "" -#: .././mainapp.py:9343 +#: .././mainapp.py:9495 msgid "" "A download operation cannot start if one or more configuration windows are " "still open" msgstr "" -#: .././mainapp.py:9367 .././mainapp.py:9392 +#: .././mainapp.py:9519 .././mainapp.py:9544 #, python-brace-format msgid "You only have {0} / {1} Mb remaining on your device" msgstr "" -#: .././mainapp.py:9395 .././mainapp.py:15514 .././mainapp.py:15630 -#: .././mainapp.py:15812 .././mainwin.py:18762 +#: .././mainapp.py:9547 .././mainapp.py:15682 .././mainapp.py:15798 +#: .././mainapp.py:15980 .././mainwin.py:18831 msgid "Are you sure you want to continue?" msgstr "" -#: .././mainapp.py:9490 +#: .././mainapp.py:9642 msgid "" "1. Copy URLs into the box at the top\n" "2. Select a destination and a format\n" @@ -232,551 +232,556 @@ msgid "" "4. Click 'Download all'" msgstr "" -#: .././mainapp.py:9498 +#: .././mainapp.py:9650 msgid "There is nothing to check!" msgstr "" -#: .././mainapp.py:9502 +#: .././mainapp.py:9654 msgid "There is nothing to download!" msgstr "" -#: .././mainapp.py:9793 +#: .././mainapp.py:9947 msgid "Download operation complete" msgstr "" -#: .././mainapp.py:9795 +#: .././mainapp.py:9949 msgid "Download operation halted" msgstr "" -#: .././mainapp.py:9799 +#: .././mainapp.py:9953 msgid "Videos downloaded:" msgstr "" -#: .././mainapp.py:9800 .././config.py:24411 +#: .././mainapp.py:9954 .././config.py:25397 .././config.py:25454 msgid "Videos checked:" msgstr "" -#: .././mainapp.py:9807 +#: .././mainapp.py:9961 msgid "Clips downloaded:" msgstr "" -#: .././mainapp.py:9810 +#: .././mainapp.py:9964 msgid "Video slices removed:" msgstr "" -#: .././mainapp.py:9814 .././mainapp.py:10491 .././mainapp.py:10985 -#: .././mainapp.py:11408 +#: .././mainapp.py:9968 .././mainapp.py:10648 .././mainapp.py:11138 +#: .././mainapp.py:11560 msgid "Time taken:" msgstr "" -#: .././mainapp.py:9993 +#: .././mainapp.py:10150 msgid "" "An update operation cannot start if one or more configuration windows are " "still open" msgstr "" -#: .././mainapp.py:10179 +#: .././mainapp.py:10336 msgid "Installation failed" msgstr "" -#: .././mainapp.py:10181 +#: .././mainapp.py:10338 msgid "Installation complete" msgstr "" -#: .././mainapp.py:10185 +#: .././mainapp.py:10342 msgid "Update operation failed" msgstr "" -#: .././mainapp.py:10187 +#: .././mainapp.py:10344 msgid "Update operation halted" msgstr "" -#: .././mainapp.py:10189 +#: .././mainapp.py:10346 msgid "Update operation complete" msgstr "" -#: .././mainapp.py:10191 +#: .././mainapp.py:10348 msgid "version:" msgstr "" -#: .././mainapp.py:10195 +#: .././mainapp.py:10352 msgid "(unknown)" msgstr "" -#: .././mainapp.py:10284 +#: .././mainapp.py:10441 msgid "" "A refresh operation cannot start if one or more configuration windows are " "still open" msgstr "" -#: .././mainapp.py:10297 +#: .././mainapp.py:10454 msgid "" "During a refresh operation, Tartube analyses its data folder, looking for " "videos that haven't yet been added to its database" msgstr "" -#: .././mainapp.py:10301 +#: .././mainapp.py:10458 msgid "" "You only need to perform a refresh operation if you have manually copied " "videos into Tartube's data folder" msgstr "" -#: .././mainapp.py:10308 +#: .././mainapp.py:10465 msgid "" "Before starting a refresh operation, you should click the 'Check all' button " "in the main window" msgstr "" -#: .././mainapp.py:10315 +#: .././mainapp.py:10472 msgid "" "Before starting a refresh operation, you should right-click the channel and " "select 'Check channel'" msgstr "" -#: .././mainapp.py:10322 +#: .././mainapp.py:10479 msgid "" "Before starting a refresh operation, you should right-click the playlist and " "select 'Check playlist'" msgstr "" -#: .././mainapp.py:10329 +#: .././mainapp.py:10486 msgid "" "Before starting a refresh operation, you should right-click the folder and " "select 'Check folder'" msgstr "" -#: .././mainapp.py:10334 +#: .././mainapp.py:10491 msgid "Are you sure you want to proceed with the refresh operation?" msgstr "" -#: .././mainapp.py:10486 +#: .././mainapp.py:10643 msgid "Refresh operation complete" msgstr "" -#: .././mainapp.py:10488 +#: .././mainapp.py:10645 msgid "Refresh operation halted" msgstr "" -#: .././mainapp.py:10593 +#: .././mainapp.py:10750 msgid "" "An info operation cannot start if one or more configuration windows are " "still open" msgstr "" -#: .././mainapp.py:10709 +#: .././mainapp.py:10863 msgid "Operation failed" msgstr "" -#: .././mainapp.py:10711 .././downloads.py:518 +#: .././mainapp.py:10865 .././downloads.py:518 msgid "Operation complete" msgstr "" -#: .././mainapp.py:10713 +#: .././mainapp.py:10867 msgid "Click the Output tab to see the results" msgstr "" -#: .././mainapp.py:10726 +#: .././mainapp.py:10880 msgid "A new release is available!" msgstr "" -#: .././mainapp.py:10728 +#: .././mainapp.py:10882 msgid "Your installation is up to date!" msgstr "" -#: .././mainapp.py:10730 +#: .././mainapp.py:10884 msgid "Installed version:" msgstr "" -#: .././mainapp.py:10735 +#: .././mainapp.py:10889 msgid "Stable release:" msgstr "" -#: .././mainapp.py:10740 +#: .././mainapp.py:10894 msgid "Stable release: not found" msgstr "" -#: .././mainapp.py:10743 +#: .././mainapp.py:10897 msgid "Development release:" msgstr "" -#: .././mainapp.py:10745 +#: .././mainapp.py:10899 msgid "Development release: not found" msgstr "" -#: .././mainapp.py:10852 +#: .././mainapp.py:11005 msgid "" "A tidy operation cannot start if one or more configuration windows are still " "open" msgstr "" -#: .././mainapp.py:10980 +#: .././mainapp.py:11133 msgid "Tidy operation complete" msgstr "" -#: .././mainapp.py:10982 +#: .././mainapp.py:11135 msgid "Tidy operation halted" msgstr "" -#: .././mainapp.py:11149 .././mainwin.py:19518 +#: .././mainapp.py:11301 .././mainwin.py:19600 msgid "Livestream has started" msgstr "" -#: .././mainapp.py:11397 +#: .././mainapp.py:11549 msgid "Process operation complete" msgstr "" -#: .././mainapp.py:11399 +#: .././mainapp.py:11551 msgid "Process operation halted" msgstr "" -#: .././mainapp.py:11403 +#: .././mainapp.py:11555 msgid "Files processed:" msgstr "" -#: .././mainapp.py:11404 +#: .././mainapp.py:11556 msgid "Errors:" msgstr "" -#: .././mainapp.py:12712 .././mainapp.py:12899 +#: .././mainapp.py:12871 .././mainapp.py:13070 msgid "Cannot move anything to:" msgstr "" -#: .././mainapp.py:12714 .././mainapp.py:12901 +#: .././mainapp.py:12873 .././mainapp.py:13072 msgid "" "because a file or folder with the same name already exists (although " "Tartube's database doesn't know anything about it)" msgstr "" -#: .././mainapp.py:12718 +#: .././mainapp.py:12877 msgid "" "You probably created that file/folder accidentally, in which case you should " "delete it manually before trying again" msgstr "" -#: .././mainapp.py:12732 .././mainapp.py:12919 +#: .././mainapp.py:12891 .././mainapp.py:13090 msgid "Are you sure you want to move this channel:" msgstr "" -#: .././mainapp.py:12734 .././mainapp.py:12921 +#: .././mainapp.py:12893 .././mainapp.py:13092 msgid "Are you sure you want to move this playlist:" msgstr "" -#: .././mainapp.py:12736 .././mainapp.py:12923 +#: .././mainapp.py:12895 .././mainapp.py:13094 msgid "Are you sure you want to move this folder:" msgstr "" -#: .././mainapp.py:12741 +#: .././mainapp.py:12900 msgid "" "This procedure will move all downloaded files to the top level of Tartube's " "data folder" msgstr "" -#: .././mainapp.py:12841 +#: .././mainapp.py:12941 .././mainapp.py:13152 +#, python-brace-format +msgid "Could not move '{0}' (filesystem error)" +msgstr "" + +#: .././mainapp.py:13012 msgid "Channels, playlists and folders can only be dragged into a folder" msgstr "" -#: .././mainapp.py:12854 +#: .././mainapp.py:13025 #, python-brace-format msgid "The fixed folder '{0}' cannot be moved (but it can still be hidden)" msgstr "" -#: .././mainapp.py:12867 +#: .././mainapp.py:13038 #, python-brace-format msgid "The folder '{0}' can only contain videos" msgstr "" -#: .././mainapp.py:12879 +#: .././mainapp.py:13050 #, python-brace-format msgid "The folder '{0}' can only contain other folders and videos" msgstr "" -#: .././mainapp.py:12906 +#: .././mainapp.py:13077 msgid "" "You probably created that file/folder accidentally, in which case, you " "should delete it manually before trying again" msgstr "" -#: .././mainapp.py:12925 +#: .././mainapp.py:13096 msgid "into this folder:" msgstr "" -#: .././mainapp.py:12929 +#: .././mainapp.py:13100 msgid "This procedure will move all downloaded files to the new location" msgstr "" -#: .././mainapp.py:12935 .././mainapp.py:13064 +#: .././mainapp.py:13106 .././mainapp.py:13244 msgid "" "WARNING: The destination folder is marked as temporary, so everything inside " "it will be DELETED when Tartube restarts!" msgstr "" -#: .././mainapp.py:13042 +#: .././mainapp.py:13222 msgid "Videos cannot be dragged into this folder" msgstr "" -#: .././mainapp.py:13052 +#: .././mainapp.py:13232 #, python-brace-format msgid "Are you sure you want to move the video to '{0}'?" msgstr "" -#: .././mainapp.py:13058 +#: .././mainapp.py:13238 #, python-brace-format msgid "Are you sure you want to move '{0}' videos to '{1}'?" msgstr "" #. Show confirmation dialogue -#: .././mainapp.py:13211 +#: .././mainapp.py:13382 msgid "Videos moved" msgstr "" -#: .././mainapp.py:13212 +#: .././mainapp.py:13383 msgid "Videos not moved:" msgstr "" -#: .././mainapp.py:13620 +#: .././mainapp.py:13791 msgid "" "Are you SURE you want to delete files? This procedure cannot be reversed!" msgstr "" -#: .././mainapp.py:15498 .././mainapp.py:15614 .././mainapp.py:15796 +#: .././mainapp.py:15666 .././mainapp.py:15782 .././mainapp.py:15964 #, python-brace-format msgid "The channel contains {0} item(s), so this action may take a while" msgstr "" -#: .././mainapp.py:15504 .././mainapp.py:15620 .././mainapp.py:15802 +#: .././mainapp.py:15672 .././mainapp.py:15788 .././mainapp.py:15970 #, python-brace-format msgid "The playlist contains {0} item(s), so this action may take a while" msgstr "" -#: .././mainapp.py:15510 .././mainapp.py:15626 .././mainapp.py:15808 +#: .././mainapp.py:15678 .././mainapp.py:15794 .././mainapp.py:15976 #, python-brace-format msgid "The folder contains {0} item(s), so this action may take a while" msgstr "" -#: .././mainapp.py:15876 .././mainapp.py:21383 .././mainapp.py:21515 -#: .././mainapp.py:21646 .././config.py:22802 +#: .././mainapp.py:16044 .././mainapp.py:21553 .././mainapp.py:21685 +#: .././mainapp.py:21816 .././config.py:23784 #, python-brace-format msgid "The name '{0}' is not allowed" msgstr "" -#: .././mainapp.py:15885 .././config.py:22793 +#: .././mainapp.py:16053 .././config.py:23775 #, python-brace-format msgid "The name '{0}' is already in use" msgstr "" -#: .././mainapp.py:15898 +#: .././mainapp.py:16063 #, python-brace-format msgid "Failed to rename '{0}'" msgstr "" #. Confirm the result -#: .././mainapp.py:16105 +#: .././mainapp.py:16267 msgid "Search/replace complete" msgstr "" -#: .././mainapp.py:16106 +#: .././mainapp.py:16268 #, python-brace-format msgid "Updated URLs: {0}" msgstr "" -#: .././mainapp.py:16107 +#: .././mainapp.py:16269 #, python-brace-format msgid "Errors: {0}" msgstr "" -#: .././mainapp.py:16382 +#: .././mainapp.py:16544 msgid "Select where to save the database export" msgstr "" -#: .././mainapp.py:16507 +#: .././mainapp.py:16669 msgid "There is nothing to export!" msgstr "" -#: .././mainapp.py:16547 .././mainapp.py:16591 .././mainapp.py:16635 +#: .././mainapp.py:16709 .././mainapp.py:16753 .././mainapp.py:16797 msgid "Failed to save the database export file:" msgstr "" -#: .././mainapp.py:16643 +#: .././mainapp.py:16805 msgid "Database export file saved to:" msgstr "" -#: .././mainapp.py:16862 +#: .././mainapp.py:17024 msgid "Select the database export" msgstr "" -#: .././mainapp.py:16880 .././mainapp.py:16891 .././mainapp.py:16925 +#: .././mainapp.py:17042 .././mainapp.py:17053 .././mainapp.py:17087 msgid "Failed to load the database export file" msgstr "" -#: .././mainapp.py:16908 +#: .././mainapp.py:17070 msgid "The database export file is invalid" msgstr "" -#: .././mainapp.py:16939 +#: .././mainapp.py:17101 msgid "The database export file is invalid (or empty)" msgstr "" -#: .././mainapp.py:16983 +#: .././mainapp.py:17145 msgid "Nothing was imported from the database export file" msgstr "" #. Show a confirmation -#: .././mainapp.py:16997 +#: .././mainapp.py:17159 msgid "Imported into database" msgstr "" -#: .././mainapp.py:16998 .././mainwin.py:1375 .././config.py:890 -#: .././config.py:14578 .././config.py:17495 +#: .././mainapp.py:17160 .././mainwin.py:1375 .././config.py:922 +#: .././config.py:15230 .././config.py:18227 msgid "Videos" msgstr "" -#: .././mainapp.py:16999 .././config.py:14611 .././config.py:17528 +#: .././mainapp.py:17161 .././config.py:15263 .././config.py:18260 msgid "Channels" msgstr "" -#: .././mainapp.py:17000 .././config.py:14622 .././config.py:17539 +#: .././mainapp.py:17162 .././config.py:15274 .././config.py:18271 msgid "Playlists" msgstr "" -#: .././mainapp.py:17001 +#: .././mainapp.py:17163 msgid "Folders" msgstr "" -#: .././mainapp.py:17673 +#: .././mainapp.py:17835 msgid "" "The video file is missing from Tartube's data folder (try downloading the " "video again!)" msgstr "" -#: .././mainapp.py:18043 +#: .././mainapp.py:18205 msgid "Select where to save the custom download export" msgstr "" -#: .././mainapp.py:18100 +#: .././mainapp.py:18262 msgid "Failed to save the custom download export file:" msgstr "" -#: .././mainapp.py:18108 +#: .././mainapp.py:18270 msgid "Custom download exported to:" msgstr "" -#: .././mainapp.py:18139 +#: .././mainapp.py:18301 msgid "Select the custom download export file" msgstr "" -#: .././mainapp.py:18158 +#: .././mainapp.py:18320 msgid "Failed to load the custom download export file" msgstr "" -#: .././mainapp.py:18175 +#: .././mainapp.py:18337 msgid "The custom download export file is invalid" msgstr "" -#: .././mainapp.py:18186 +#: .././mainapp.py:18348 msgid "The custom download export file is invalid (or empty)" msgstr "" -#: .././mainapp.py:18713 .././mainapp.py:19095 +#: .././mainapp.py:18875 .././mainapp.py:19257 msgid "Select where to save the options export" msgstr "" -#: .././mainapp.py:18761 .././mainapp.py:19143 +#: .././mainapp.py:18923 .././mainapp.py:19305 msgid "Failed to save the options export file:" msgstr "" -#: .././mainapp.py:18769 +#: .././mainapp.py:18931 msgid "Download options exported to to:" msgstr "" -#: .././mainapp.py:18800 .././mainapp.py:19182 +#: .././mainapp.py:18962 .././mainapp.py:19344 msgid "Select the options export file" msgstr "" -#: .././mainapp.py:18819 .././mainapp.py:19201 +#: .././mainapp.py:18981 .././mainapp.py:19363 msgid "Failed to load the options export file" msgstr "" -#: .././mainapp.py:18836 .././mainapp.py:19218 +#: .././mainapp.py:18998 .././mainapp.py:19380 msgid "The options export file is invalid" msgstr "" -#: .././mainapp.py:18847 .././mainapp.py:19229 +#: .././mainapp.py:19009 .././mainapp.py:19391 msgid "The options export file is invalid (or empty)" msgstr "" -#: .././mainapp.py:19151 +#: .././mainapp.py:19313 msgid "FFmpeg options exported to to:" msgstr "" -#: .././mainapp.py:20144 +#: .././mainapp.py:20314 msgid "Please select a destination folder" msgstr "" #. Prompt for confirmation -#: .././mainapp.py:20216 +#: .././mainapp.py:20386 msgid "Are you sure you want to clear this list?" msgstr "" #. Prompt for confirmation -#: .././mainapp.py:20263 +#: .././mainapp.py:20433 msgid "Are you sure you want to clear downloaded videos?" msgstr "" -#: .././mainapp.py:20366 .././mainwin.py:15571 +#: .././mainapp.py:20536 .././mainwin.py:15592 msgid "Only checked/downloaded videos can be processed by FFmpeg" msgstr "" -#: .././mainapp.py:20483 +#: .././mainapp.py:20653 msgid "No video(s) have been downloaded" msgstr "" #. Prompt for confirmation -#: .././mainapp.py:20625 +#: .././mainapp.py:20795 msgid "Are you sure you want to remove the selected item(s)?" msgstr "" -#: .././mainapp.py:21374 +#: .././mainapp.py:21544 msgid "You must give the channel a name" msgstr "" -#: .././mainapp.py:21392 .././mainapp.py:21655 +#: .././mainapp.py:21562 .././mainapp.py:21825 msgid "You must enter a valid URL" msgstr "" -#: .././mainapp.py:21507 +#: .././mainapp.py:21677 msgid "You must give the folder a name" msgstr "" -#: .././mainapp.py:21637 +#: .././mainapp.py:21807 msgid "You must give the playlist a name" msgstr "" -#: .././mainapp.py:21792 +#: .././mainapp.py:21962 msgid "The following videos are duplicates:" msgstr "" -#: .././mainapp.py:21856 +#: .././mainapp.py:22026 msgid "There were no livestream alerts to cancel" msgstr "" -#: .././mainapp.py:21858 +#: .././mainapp.py:22028 msgid "Livestream alerts for 1 video were cancelled" msgstr "Livestream alerts for 1 video were canceled" -#: .././mainapp.py:21861 +#: .././mainapp.py:22031 #, python-brace-format msgid "Livestream alerts for {0} videos were cancelled" msgstr "Livestream alerts for {0} videos were canceled" -#: .././mainapp.py:22249 +#: .././mainapp.py:22419 msgid "All Tartube data has been saved" msgstr "" -#: .././mainapp.py:22279 +#: .././mainapp.py:22449 msgid "Database saved" msgstr "" -#: .././mainapp.py:22564 .././mainwin.py:14383 +#: .././mainapp.py:22734 .././mainwin.py:14404 msgid "" "Files cannot be recovered, after being deleted. Are you sure you want to " "continue?" @@ -785,39 +790,39 @@ msgstr "" #. Because livestream operations run silently in the background, when #. the user goes to the trouble of clicking a menu item in the #. main window's menu, tell them why nothing is happening -#: .././mainapp.py:22604 +#: .././mainapp.py:22774 msgid "Cannot update existing livestreams because" msgstr "" -#: .././mainapp.py:22606 +#: .././mainapp.py:22776 msgid "there is another operation running" msgstr "" -#: .././mainapp.py:22608 +#: .././mainapp.py:22778 msgid "they are currently being updated" msgstr "" -#: .././mainapp.py:22610 +#: .././mainapp.py:22780 msgid "one or more configuration windows are open" msgstr "" -#: .././mainapp.py:22612 +#: .././mainapp.py:22782 msgid "there are no livestreams to update" msgstr "" -#: .././mainapp.py:22686 +#: .././mainapp.py:22856 msgid "There is already a channel with that name" msgstr "" -#: .././mainapp.py:22688 +#: .././mainapp.py:22858 msgid "There is already a playlist with that name" msgstr "" -#: .././mainapp.py:22690 +#: .././mainapp.py:22860 msgid "There is already a folder with that name" msgstr "" -#: .././mainapp.py:22693 +#: .././mainapp.py:22863 msgid "(so please choose a different name)" msgstr "" @@ -826,7 +831,7 @@ msgid "Tartube cannot start because it cannot find its icons folder" msgstr "" #. File column -#: .././mainwin.py:1025 .././config.py:9014 +#: .././mainwin.py:1025 .././config.py:9173 msgid "_File" msgstr "" @@ -851,7 +856,7 @@ msgid "_Close to tray" msgstr "" #. Quit -#: .././mainwin.py:1067 .././mainwin.py:24335 +#: .././mainwin.py:1067 .././mainwin.py:24436 msgid "_Quit" msgstr "" @@ -869,7 +874,7 @@ msgid "_General download options..." msgstr "" #. Media column -#: .././mainwin.py:1091 .././config.py:15303 +#: .././mainwin.py:1091 .././config.py:15952 msgid "_Media" msgstr "" @@ -923,17 +928,17 @@ msgstr "" #. Operations column #. Add this tab... -#: .././mainwin.py:1192 .././config.py:18991 +#: .././mainwin.py:1192 .././config.py:19774 msgid "_Operations" msgstr "" #. Check all -#: .././mainwin.py:1199 .././mainwin.py:24306 +#: .././mainwin.py:1199 .././mainwin.py:24407 msgid "_Check all" msgstr "" #. Download all -#: .././mainwin.py:1205 .././mainwin.py:24313 +#: .././mainwin.py:1205 .././mainwin.py:24414 msgid "_Download all" msgstr "" @@ -949,7 +954,7 @@ msgstr "" msgid "U_pdate" msgstr "" -#: .././mainwin.py:1236 .././mainwin.py:3396 +#: .././mainwin.py:1236 .././mainwin.py:3419 msgid "_Test" msgstr "" @@ -961,7 +966,7 @@ msgstr "" msgid "Tidy up _files..." msgstr "" -#: .././mainwin.py:1267 .././mainwin.py:24324 +#: .././mainwin.py:1267 .././mainwin.py:24425 msgid "_Stop current operation" msgstr "" @@ -1011,7 +1016,7 @@ msgstr "" msgid "Add new video(s)" msgstr "" -#: .././mainwin.py:1394 .././mainwin.py:22943 .././media.py:82 +#: .././mainwin.py:1394 .././mainwin.py:23042 .././media.py:82 msgid "Channel" msgstr "" @@ -1019,7 +1024,7 @@ msgstr "" msgid "Add a new channel" msgstr "" -#: .././mainwin.py:1415 .././mainwin.py:22945 .././media.py:84 +#: .././mainwin.py:1415 .././mainwin.py:23044 .././media.py:84 msgid "Playlist" msgstr "" @@ -1027,7 +1032,7 @@ msgstr "" msgid "Add a new playlist" msgstr "" -#: .././mainwin.py:1436 .././mainwin.py:22947 .././media.py:86 +#: .././mainwin.py:1436 .././mainwin.py:23046 .././media.py:86 msgid "Folder" msgstr "" @@ -1035,12 +1040,12 @@ msgstr "" msgid "Add a new folder" msgstr "" -#: .././mainwin.py:1460 .././config.py:18821 +#: .././mainwin.py:1460 .././config.py:19600 msgid "Check" msgstr "" -#: .././mainwin.py:1471 .././mainwin.py:1715 .././mainwin.py:3927 -#: .././mainwin.py:4208 +#: .././mainwin.py:1471 .././mainwin.py:1715 .././mainwin.py:3950 +#: .././mainwin.py:4231 msgid "Check all videos, channels, playlists and folders" msgstr "" @@ -1050,23 +1055,22 @@ msgstr "" #. then use a Glib timer to restore it (after some small fraction of a #. second) #. Link not clickable -#: .././mainwin.py:1481 .././mainwin.py:20746 .././mainwin.py:20758 -#: .././mainwin.py:20763 .././mainwin.py:20771 .././mainwin.py:21049 -#: .././mainwin.py:21061 .././mainwin.py:21796 .././mainwin.py:23132 -#: .././mainwin.py:23144 .././mainwin.py:23170 .././config.py:18697 -#: .././config.py:18823 +#: .././mainwin.py:1481 .././mainwin.py:20840 .././mainwin.py:20852 +#: .././mainwin.py:20857 .././mainwin.py:20865 .././mainwin.py:21143 +#: .././mainwin.py:21155 .././mainwin.py:21890 .././mainwin.py:23231 +#: .././mainwin.py:23243 .././mainwin.py:23269 .././config.py:19476 +#: .././config.py:19602 msgid "Download" msgstr "" -#: .././mainwin.py:1492 .././mainwin.py:1723 .././mainwin.py:3935 -#: .././mainwin.py:4214 +#: .././mainwin.py:1492 .././mainwin.py:1723 .././mainwin.py:3958 +#: .././mainwin.py:4237 msgid "Download all videos, channels, playlists and folders" msgstr "" -#: .././mainwin.py:1507 .././mainwin.py:28473 .././config.py:9703 -#: .././config.py:9892 .././config.py:9967 .././config.py:10355 -#: .././config.py:10566 .././config.py:10641 .././config.py:12985 -#: .././config.py:13163 .././config.py:13218 +#: .././mainwin.py:1507 .././config.py:9858 .././config.py:10043 +#: .././config.py:10498 .././config.py:10705 .././config.py:13130 +#: .././config.py:13303 msgid "Stop" msgstr "" @@ -1074,7 +1078,7 @@ msgstr "" msgid "Stop the current operation" msgstr "" -#: .././mainwin.py:1531 .././config.py:16723 +#: .././mainwin.py:1531 .././config.py:17403 msgid "Switch" msgstr "" @@ -1082,19 +1086,19 @@ msgstr "" msgid "Switch between simple and complex views" msgstr "" -#: .././mainwin.py:1555 .././mainwin.py:3443 +#: .././mainwin.py:1555 .././mainwin.py:3466 msgid "Hide" msgstr "" -#: .././mainwin.py:1557 .././mainwin.py:3450 +#: .././mainwin.py:1557 .././mainwin.py:3473 msgid "Show" msgstr "" -#: .././mainwin.py:1569 .././mainwin.py:3445 +#: .././mainwin.py:1569 .././mainwin.py:3468 msgid "Hide (most) system folders" msgstr "" -#: .././mainwin.py:1573 .././mainwin.py:3452 +#: .././mainwin.py:1573 .././mainwin.py:3475 msgid "Show all system folders" msgstr "" @@ -1106,8 +1110,8 @@ msgstr "" msgid "Close Tartube" msgstr "" -#: .././mainwin.py:1620 .././config.py:5747 .././config.py:10771 -#: .././config.py:16977 .././config.py:17913 +#: .././mainwin.py:1620 .././config.py:5856 .././config.py:10919 +#: .././config.py:17665 .././config.py:18658 msgid "_Videos" msgstr "" @@ -1119,34 +1123,34 @@ msgstr "" msgid "_Classic Mode" msgstr "" -#: .././mainwin.py:1645 .././config.py:5473 +#: .././mainwin.py:1645 .././config.py:5574 msgid "_Output" msgstr "" -#: .././mainwin.py:1654 .././config.py:13319 .././config.py:14238 +#: .././mainwin.py:1654 .././config.py:13905 .././config.py:14895 msgid "_Errors / Warnings" msgstr "" -#: .././mainwin.py:1713 .././mainwin.py:3925 .././mainwin.py:4205 +#: .././mainwin.py:1713 .././mainwin.py:3948 .././mainwin.py:4228 msgid "Check all" msgstr "" -#: .././mainwin.py:1721 .././mainwin.py:3033 .././mainwin.py:3933 -#: .././mainwin.py:17576 +#: .././mainwin.py:1721 .././mainwin.py:3033 .././mainwin.py:3956 +#: .././mainwin.py:17645 msgid "Download all" msgstr "" -#: .././mainwin.py:1739 .././mainwin.py:3037 .././mainwin.py:3951 -#: .././mainwin.py:17567 +#: .././mainwin.py:1739 .././mainwin.py:3037 .././mainwin.py:3974 +#: .././mainwin.py:17636 msgid "Custom download all" msgstr "" -#: .././mainwin.py:1742 .././mainwin.py:3954 .././mainwin.py:4228 +#: .././mainwin.py:1742 .././mainwin.py:3977 .././mainwin.py:4251 msgid "" "Perform a custom download of all videos, channels, playlists and folders" msgstr "" -#: .././mainwin.py:1759 .././mainwin.py:3971 .././mainwin.py:4235 +#: .././mainwin.py:1759 .././mainwin.py:3994 .././mainwin.py:4258 msgid "Select the custom download to use" msgstr "" @@ -1191,7 +1195,7 @@ msgstr "" msgid "Scroll down" msgstr "" -#: .././mainwin.py:1977 .././mainwin.py:4414 +#: .././mainwin.py:1977 .././mainwin.py:4437 msgid "Show more settings" msgstr "" @@ -1199,14 +1203,14 @@ msgstr "" msgid "Sort" msgstr "" -#: .././mainwin.py:1996 .././config.py:12720 +#: .././mainwin.py:1996 .././config.py:12867 msgid "Upload time" msgstr "" -#: .././mainwin.py:1997 .././mainwin.py:3198 .././mainwin.py:24728 -#: .././mainwin.py:27302 .././config.py:2829 .././config.py:10796 -#: .././config.py:17243 .././config.py:18697 .././config.py:19525 -#: .././config.py:21160 .././config.py:21427 +#: .././mainwin.py:1997 .././mainwin.py:3198 .././mainwin.py:24828 +#: .././mainwin.py:27404 .././config.py:2860 .././config.py:10943 +#: .././config.py:17967 .././config.py:19476 .././config.py:20325 +#: .././config.py:22077 .././config.py:22352 msgid "Name" msgstr "" @@ -1242,7 +1246,7 @@ msgstr "" msgid "Enter search text" msgstr "" -#: .././mainwin.py:2107 .././config.py:17297 +#: .././mainwin.py:2107 .././config.py:18021 msgid "Regex" msgstr "" @@ -1274,7 +1278,7 @@ msgstr "" msgid "TRANSLATOR'S NOTE: Ext is short for a file extension, e.g. .EXE" msgstr "" -#: .././mainwin.py:2252 .././mainwin.py:2859 .././config.py:9157 +#: .././mainwin.py:2252 .././mainwin.py:2859 .././config.py:9315 msgid "Source" msgstr "" @@ -1298,11 +1302,11 @@ msgstr "" msgid "ETA" msgstr "" -#: .././mainwin.py:2340 .././config.py:14103 +#: .././mainwin.py:2340 .././config.py:14761 msgid "New videos" msgstr "" -#: .././mainwin.py:2340 .././config.py:406 .././config.py:12690 +#: .././mainwin.py:2340 .././config.py:438 .././config.py:12837 msgid "Duration" msgstr "" @@ -1310,7 +1314,7 @@ msgstr "" msgid "Date" msgstr "" -#: .././mainwin.py:2341 .././config.py:12560 +#: .././mainwin.py:2341 .././config.py:12715 msgid "File" msgstr "" @@ -1326,11 +1330,11 @@ msgstr "" msgid "D/L speed (KiB/s)" msgstr "" -#: .././mainwin.py:2449 .././mainwin.py:4620 +#: .././mainwin.py:2449 .././mainwin.py:4643 msgid "Alternative limits do not currently apply" msgstr "" -#: .././mainwin.py:2460 .././config.py:4172 +#: .././mainwin.py:2460 .././config.py:4198 msgid "Video resolution" msgstr "" @@ -1358,7 +1362,7 @@ msgstr "" #. enabled, URLs are automatically copied into this textview #. -------------------------------------------------------------------- #. Initial widgets -#: .././mainwin.py:2616 .././mainwin.py:24629 +#: .././mainwin.py:2616 .././mainwin.py:24729 msgid "Enter URLs below" msgstr "" @@ -1386,16 +1390,16 @@ msgid "Format:" msgstr "" #. (Dummy items in the combo) -#: .././mainwin.py:2725 .././mainwin.py:17296 .././config.py:19525 -#: .././config.py:21160 +#: .././mainwin.py:2725 .././mainwin.py:17365 .././config.py:20325 +#: .././config.py:22077 msgid "Default" msgstr "" -#: .././mainwin.py:2725 .././mainwin.py:17297 +#: .././mainwin.py:2725 .././mainwin.py:17366 msgid "Video:" msgstr "" -#: .././mainwin.py:2729 .././mainwin.py:17298 +#: .././mainwin.py:2729 .././mainwin.py:17367 msgid "Audio:" msgstr "" @@ -1424,14 +1428,14 @@ msgid "Play video" msgstr "" #. (Signal connect appears below) -#: .././mainwin.py:2951 .././config.py:4653 .././config.py:16760 -#: .././config.py:18762 +#: .././mainwin.py:2951 .././config.py:4700 .././config.py:17440 +#: .././config.py:19541 msgid "Move up" msgstr "" #. (Signal connect appears below) -#: .././mainwin.py:2972 .././config.py:4657 .././config.py:16768 -#: .././config.py:18771 +#: .././mainwin.py:2972 .././config.py:4704 .././config.py:17448 +#: .././config.py:19550 msgid "Move down" msgstr "" @@ -1447,11 +1451,11 @@ msgstr "" msgid "Process with FFmpeg" msgstr "" -#: .././mainwin.py:3045 .././mainwin.py:17579 +#: .././mainwin.py:3045 .././mainwin.py:17648 msgid "Download the URLs above" msgstr "" -#: .././mainwin.py:3049 .././mainwin.py:17570 +#: .././mainwin.py:3049 .././mainwin.py:17639 msgid "Perform a custom download on the URLs above" msgstr "" @@ -1471,7 +1475,7 @@ msgstr "" msgid "Maximum page size" msgstr "" -#: .././mainwin.py:3198 .././config.py:18697 +#: .././mainwin.py:3198 .././config.py:13622 .././config.py:19476 msgid "Time" msgstr "" @@ -1499,746 +1503,746 @@ msgstr "" msgid "Show dates" msgstr "" -#: .././mainwin.py:3312 .././config.py:9804 .././config.py:10015 -#: .././config.py:10456 .././config.py:10690 .././config.py:13077 -#: .././config.py:13266 .././config.py:15405 +#: .././mainwin.py:3312 .././config.py:9955 .././config.py:10159 +#: .././config.py:10595 .././config.py:10822 .././config.py:13218 +#: .././config.py:13402 .././config.py:16053 msgid "Clear list" msgstr "" -#: .././mainwin.py:3808 +#: .././mainwin.py:3831 msgid "Checking..." msgstr "" -#: .././mainwin.py:3810 +#: .././mainwin.py:3833 msgid "Downloading..." msgstr "" -#: .././mainwin.py:3812 +#: .././mainwin.py:3835 msgid "Refreshing..." msgstr "" -#: .././mainwin.py:3814 +#: .././mainwin.py:3837 msgid "Tidying..." msgstr "" -#: .././mainwin.py:3816 +#: .././mainwin.py:3839 msgid "FFmpeg processing..." msgstr "" -#: .././mainwin.py:4180 +#: .././mainwin.py:4203 msgid "Installing FFmpeg" msgstr "" -#: .././mainwin.py:4182 +#: .././mainwin.py:4205 msgid "Updating downloader" msgstr "" -#: .././mainwin.py:4184 +#: .././mainwin.py:4207 msgid "Fetching formats" msgstr "" -#: .././mainwin.py:4186 +#: .././mainwin.py:4209 msgid "Fetching subtitles" msgstr "" -#: .././mainwin.py:4188 +#: .././mainwin.py:4211 msgid "Testing downloader" msgstr "" -#: .././mainwin.py:4190 +#: .././mainwin.py:4213 msgid "Contacting website" msgstr "" -#: .././mainwin.py:4443 +#: .././mainwin.py:4466 msgid "Show fewer settings" msgstr "" -#: .././mainwin.py:4610 +#: .././mainwin.py:4633 msgid "Alternative limits currently apply" msgstr "" -#: .././mainwin.py:4823 +#: .././mainwin.py:4849 msgid "_Check channel" msgstr "" -#: .././mainwin.py:4825 +#: .././mainwin.py:4851 msgid "_Check playlist" msgstr "" -#: .././mainwin.py:4827 +#: .././mainwin.py:4853 msgid "_Check folder" msgstr "" -#: .././mainwin.py:4848 +#: .././mainwin.py:4874 msgid "_Download channel" msgstr "" -#: .././mainwin.py:4850 +#: .././mainwin.py:4876 msgid "_Download playlist" msgstr "" -#: .././mainwin.py:4852 +#: .././mainwin.py:4878 msgid "_Download folder" msgstr "" -#: .././mainwin.py:4873 +#: .././mainwin.py:4899 msgid "C_ustom download channel" msgstr "" -#: .././mainwin.py:4875 +#: .././mainwin.py:4901 msgid "C_ustom download playlist" msgstr "" -#: .././mainwin.py:4877 +#: .././mainwin.py:4903 msgid "C_ustom download folder" msgstr "" -#: .././mainwin.py:4924 +#: .././mainwin.py:4950 msgid "_Empty folder" msgstr "" -#: .././mainwin.py:4936 +#: .././mainwin.py:4962 msgid "_All contents" msgstr "" -#: .././mainwin.py:4954 +#: .././mainwin.py:4980 msgid "_Remove videos" msgstr "" -#: .././mainwin.py:4966 +#: .././mainwin.py:4992 msgid "_Just folder videos" msgstr "" -#: .././mainwin.py:4972 +#: .././mainwin.py:4998 msgid "Channel co_ntents" msgstr "" -#: .././mainwin.py:4974 +#: .././mainwin.py:5000 msgid "Playlist co_ntents" msgstr "" -#: .././mainwin.py:4976 +#: .././mainwin.py:5002 msgid "Folder co_ntents" msgstr "" -#: .././mainwin.py:4988 +#: .././mainwin.py:5014 msgid "_Move to top level" msgstr "" -#: .././mainwin.py:5006 +#: .././mainwin.py:5032 msgid "_Convert to playlist" msgstr "" -#: .././mainwin.py:5008 +#: .././mainwin.py:5034 msgid "_Convert to channel" msgstr "" -#: .././mainwin.py:5031 +#: .././mainwin.py:5057 msgid "_Hide folder" msgstr "" -#: .././mainwin.py:5041 +#: .././mainwin.py:5067 msgid "_Rename channel..." msgstr "" -#: .././mainwin.py:5043 +#: .././mainwin.py:5069 msgid "_Rename playlist..." msgstr "" -#: .././mainwin.py:5045 +#: .././mainwin.py:5071 msgid "_Rename folder..." msgstr "" -#: .././mainwin.py:5062 +#: .././mainwin.py:5088 msgid "Set _nickname..." msgstr "" -#: .././mainwin.py:5077 +#: .././mainwin.py:5103 msgid "Set _URL..." msgstr "" -#: .././mainwin.py:5089 +#: .././mainwin.py:5115 msgid "Set _download destination..." msgstr "" -#: .././mainwin.py:5107 +#: .././mainwin.py:5133 msgid "_Export channel..." msgstr "" -#: .././mainwin.py:5109 +#: .././mainwin.py:5135 msgid "_Export playlist..." msgstr "" -#: .././mainwin.py:5111 +#: .././mainwin.py:5137 msgid "_Export folder..." msgstr "" -#: .././mainwin.py:5124 +#: .././mainwin.py:5150 msgid "Re_fresh channel" msgstr "" -#: .././mainwin.py:5126 +#: .././mainwin.py:5152 msgid "Re_fresh playlist" msgstr "" -#: .././mainwin.py:5128 +#: .././mainwin.py:5154 msgid "Re_fresh folder" msgstr "" -#: .././mainwin.py:5145 +#: .././mainwin.py:5171 msgid "_Tidy up channel" msgstr "" -#: .././mainwin.py:5147 +#: .././mainwin.py:5173 msgid "_Tidy up playlist" msgstr "" -#: .././mainwin.py:5149 +#: .././mainwin.py:5175 msgid "_Tidy up folder" msgstr "" -#: .././mainwin.py:5166 +#: .././mainwin.py:5192 msgid "Add to _Classic Mode tab" msgstr "" -#: .././mainwin.py:5180 +#: .././mainwin.py:5206 msgid "Channel _actions" msgstr "" -#: .././mainwin.py:5182 +#: .././mainwin.py:5208 msgid "Playlist _actions" msgstr "" -#: .././mainwin.py:5184 +#: .././mainwin.py:5210 msgid "Folder _actions" msgstr "" -#: .././mainwin.py:5204 .././mainwin.py:5943 +#: .././mainwin.py:5230 .././mainwin.py:5969 msgid "_Apply download options..." msgstr "" -#: .././mainwin.py:5222 .././mainwin.py:5957 +#: .././mainwin.py:5248 .././mainwin.py:5983 msgid "_Remove download options" msgstr "" -#: .././mainwin.py:5238 .././mainwin.py:5969 +#: .././mainwin.py:5264 .././mainwin.py:5995 msgid "_Edit download options..." msgstr "" -#: .././mainwin.py:5254 +#: .././mainwin.py:5280 msgid "Add to s_cheduled download..." msgstr "" -#: .././mainwin.py:5264 +#: .././mainwin.py:5290 msgid "_Show system command..." msgstr "" -#: .././mainwin.py:5283 +#: .././mainwin.py:5309 msgid "Set _removal time..." msgstr "" -#: .././mainwin.py:5296 +#: .././mainwin.py:5322 msgid "_Don't add videos to Tartube's database" msgstr "" -#: .././mainwin.py:5308 +#: .././mainwin.py:5334 msgid "_Disable checking/downloading" msgstr "" -#: .././mainwin.py:5320 +#: .././mainwin.py:5346 msgid "_Just disable downloading" msgstr "" -#: .././mainwin.py:5341 .././mainwin.py:6028 +#: .././mainwin.py:5367 .././mainwin.py:6054 msgid "D_ownloads" msgstr "" -#: .././mainwin.py:5352 +#: .././mainwin.py:5378 msgid "Channel _properties..." msgstr "" -#: .././mainwin.py:5354 +#: .././mainwin.py:5380 msgid "Playlist _properties..." msgstr "" -#: .././mainwin.py:5356 +#: .././mainwin.py:5382 msgid "Folder _properties..." msgstr "" -#: .././mainwin.py:5372 +#: .././mainwin.py:5398 msgid "_Default location" msgstr "" -#: .././mainwin.py:5385 +#: .././mainwin.py:5411 msgid "_Actual location" msgstr "" -#: .././mainwin.py:5399 +#: .././mainwin.py:5425 msgid "_Show" msgstr "" -#: .././mainwin.py:5408 +#: .././mainwin.py:5434 msgid "D_elete channel" msgstr "" -#: .././mainwin.py:5410 +#: .././mainwin.py:5436 msgid "D_elete playlist" msgstr "" -#: .././mainwin.py:5412 +#: .././mainwin.py:5438 msgid "D_elete folder" msgstr "" -#: .././mainwin.py:5510 +#: .././mainwin.py:5536 msgid "_Check video" msgstr "" -#: .././mainwin.py:5534 +#: .././mainwin.py:5560 msgid "_Download video" msgstr "" -#: .././mainwin.py:5557 +#: .././mainwin.py:5583 msgid "Re-_download this video" msgstr "" -#: .././mainwin.py:5575 +#: .././mainwin.py:5601 msgid "C_ustom download video" msgstr "" -#: .././mainwin.py:5593 .././mainwin.py:5905 +#: .././mainwin.py:5619 .././mainwin.py:5931 msgid "Download and _watch" msgstr "" -#: .././mainwin.py:5613 .././mainwin.py:7418 +#: .././mainwin.py:5639 .././mainwin.py:7444 msgid "Watch in _player" msgstr "" -#: .././mainwin.py:5628 .././mainwin.py:5639 .././mainwin.py:7430 -#: .././mainwin.py:7448 +#: .././mainwin.py:5654 .././mainwin.py:5665 .././mainwin.py:7456 +#: .././mainwin.py:7474 msgid "Watch on _website" msgstr "" -#: .././mainwin.py:5653 .././mainwin.py:7462 +#: .././mainwin.py:5679 .././mainwin.py:7488 msgid "_YouTube" msgstr "" -#: .././mainwin.py:5663 .././mainwin.py:7472 +#: .././mainwin.py:5689 .././mainwin.py:7498 msgid "_HookTube" msgstr "" -#: .././mainwin.py:5673 .././mainwin.py:7482 +#: .././mainwin.py:5699 .././mainwin.py:7508 msgid "_Invidious" msgstr "" -#: .././mainwin.py:5683 .././mainwin.py:7492 +#: .././mainwin.py:5709 .././mainwin.py:7518 msgid "TRANSLATOR'S NOTE: Watch on YouTube, Watch on HookTube, etc" msgstr "" -#: .././mainwin.py:5688 .././mainwin.py:7497 +#: .././mainwin.py:5714 .././mainwin.py:7523 msgid "W_atch on" msgstr "" -#: .././mainwin.py:5702 +#: .././mainwin.py:5728 msgid "Create video cl_ip..." msgstr "" -#: .././mainwin.py:5708 +#: .././mainwin.py:5734 msgid "Download video cl_ip..." msgstr "" -#: .././mainwin.py:5724 +#: .././mainwin.py:5750 msgid "_Remove video slices..." msgstr "" -#: .././mainwin.py:5739 .././mainwin.py:7518 +#: .././mainwin.py:5765 .././mainwin.py:7544 msgid "_Process with FFmpeg..." msgstr "" -#: .././mainwin.py:5753 +#: .././mainwin.py:5779 msgid "_Special" msgstr "" -#: .././mainwin.py:5763 .././mainwin.py:7532 +#: .././mainwin.py:5789 .././mainwin.py:7558 msgid "Add to C_lassic Mode tab" msgstr "" -#: .././mainwin.py:5784 +#: .././mainwin.py:5810 msgid "Auto _notify" msgstr "" -#: .././mainwin.py:5800 +#: .././mainwin.py:5826 msgid "Auto _sound alarm" msgstr "" -#: .././mainwin.py:5815 +#: .././mainwin.py:5841 msgid "Auto _open" msgstr "" -#: .././mainwin.py:5828 +#: .././mainwin.py:5854 msgid "_Download on start" msgstr "" -#: .././mainwin.py:5843 +#: .././mainwin.py:5869 msgid "Download on _stop" msgstr "" -#: .././mainwin.py:5861 +#: .././mainwin.py:5887 msgid "Not a _livestream" msgstr "" -#: .././mainwin.py:5871 +#: .././mainwin.py:5897 msgid "_Livestream" msgstr "" -#: .././mainwin.py:5884 .././mainwin.py:7551 +#: .././mainwin.py:5910 .././mainwin.py:7577 msgid "_Mark for download" msgstr "" -#: .././mainwin.py:5895 .././mainwin.py:7563 +#: .././mainwin.py:5921 .././mainwin.py:7589 msgid "_Download" msgstr "" -#: .././mainwin.py:5915 .././mainwin.py:7584 .././config.py:17424 +#: .././mainwin.py:5941 .././mainwin.py:7610 .././config.py:18152 msgid "_Temporary" msgstr "" -#: .././mainwin.py:5985 +#: .././mainwin.py:6011 msgid "Show system _command" msgstr "" -#: .././mainwin.py:5995 +#: .././mainwin.py:6021 msgid "_Test system command" msgstr "" -#: .././mainwin.py:6010 +#: .././mainwin.py:6036 msgid "_Disable downloads" msgstr "" -#: .././mainwin.py:6043 +#: .././mainwin.py:6069 msgid "Video is _archived" msgstr "" -#: .././mainwin.py:6056 +#: .././mainwin.py:6082 msgid "Video is _bookmarked" msgstr "" -#: .././mainwin.py:6067 +#: .././mainwin.py:6093 msgid "Video is _favourite" msgstr "" -#: .././mainwin.py:6078 +#: .././mainwin.py:6104 msgid "Video is _missing" msgstr "" -#: .././mainwin.py:6094 +#: .././mainwin.py:6120 msgid "Video is _new" msgstr "" -#: .././mainwin.py:6107 +#: .././mainwin.py:6133 msgid "Video is in _waiting list" msgstr "" -#: .././mainwin.py:6118 +#: .././mainwin.py:6144 msgid "_Mark video" msgstr "" -#: .././mainwin.py:6129 +#: .././mainwin.py:6155 msgid "_Location" msgstr "" -#: .././mainwin.py:6141 +#: .././mainwin.py:6167 msgid "_Properties..." msgstr "" -#: .././mainwin.py:6153 +#: .././mainwin.py:6179 msgid "_Show video" msgstr "" -#: .././mainwin.py:6162 +#: .././mainwin.py:6188 msgid "Available _formats" msgstr "" -#: .././mainwin.py:6172 +#: .././mainwin.py:6198 msgid "Available _subtitles" msgstr "" -#: .././mainwin.py:6182 +#: .././mainwin.py:6208 msgid "_Fetch" msgstr "" #. Delete video -#: .././mainwin.py:6193 +#: .././mainwin.py:6219 msgid "D_elete video" msgstr "" #. Check/download videos -#: .././mainwin.py:6300 +#: .././mainwin.py:6326 msgid "_Check videos" msgstr "" -#: .././mainwin.py:6320 +#: .././mainwin.py:6346 msgid "_Download videos" msgstr "" -#: .././mainwin.py:6343 +#: .././mainwin.py:6369 msgid "C_ustom download videos" msgstr "" -#: .././mainwin.py:6375 +#: .././mainwin.py:6401 msgid "_Archived" msgstr "" -#: .././mainwin.py:6386 +#: .././mainwin.py:6412 msgid "Not a_rchived" msgstr "" -#: .././mainwin.py:6400 +#: .././mainwin.py:6426 msgid "_Bookmarked" msgstr "" -#: .././mainwin.py:6411 +#: .././mainwin.py:6437 msgid "Not b_ookmarked" msgstr "" -#: .././mainwin.py:6425 +#: .././mainwin.py:6451 msgid "_Favourite" msgstr "_Favorite" -#: .././mainwin.py:6436 +#: .././mainwin.py:6462 msgid "Not fa_vourite" msgstr "Not fa_vorite" -#: .././mainwin.py:6450 +#: .././mainwin.py:6476 msgid "_Missing" msgstr "" -#: .././mainwin.py:6463 +#: .././mainwin.py:6489 msgid "Not m_issing" msgstr "" -#: .././mainwin.py:6479 +#: .././mainwin.py:6505 msgid "_New" msgstr "" -#: .././mainwin.py:6490 +#: .././mainwin.py:6516 msgid "Not n_ew" msgstr "" -#: .././mainwin.py:6504 +#: .././mainwin.py:6530 msgid "In _waiting list" msgstr "" -#: .././mainwin.py:6515 +#: .././mainwin.py:6541 msgid "Not in w_aiting list" msgstr "" -#: .././mainwin.py:6526 +#: .././mainwin.py:6552 msgid "_Mark videos" msgstr "" -#: .././mainwin.py:6535 +#: .././mainwin.py:6561 msgid "Show p_roperties..." msgstr "" #. Delete videos -#: .././mainwin.py:6550 +#: .././mainwin.py:6576 msgid "D_elete videos" msgstr "" #. Stop check/download -#: .././mainwin.py:6615 +#: .././mainwin.py:6641 msgid "_Stop now" msgstr "" -#: .././mainwin.py:6629 +#: .././mainwin.py:6655 msgid "Stop after this _video" msgstr "" -#: .././mainwin.py:6644 +#: .././mainwin.py:6670 msgid "Stop after these v_ideos" msgstr "" -#: .././mainwin.py:6659 +#: .././mainwin.py:6685 msgid "Download _next" msgstr "" -#: .././mainwin.py:6671 +#: .././mainwin.py:6697 msgid "Download _last" msgstr "" -#: .././mainwin.py:6694 +#: .././mainwin.py:6720 msgid "Watch on _YouTube" msgstr "" -#: .././mainwin.py:6704 +#: .././mainwin.py:6730 msgid "Watch on _HookTube" msgstr "" -#: .././mainwin.py:6714 +#: .././mainwin.py:6740 msgid "Watch on _Invidious" msgstr "" -#: .././mainwin.py:6726 +#: .././mainwin.py:6752 msgid "Watch on _Website" msgstr "" -#: .././mainwin.py:6826 +#: .././mainwin.py:6852 msgid "_Delete video(s)" msgstr "" -#: .././mainwin.py:6896 +#: .././mainwin.py:6922 msgid "Choose a custom download:" msgstr "" -#: .././mainwin.py:6972 +#: .././mainwin.py:6998 msgid "_Enable automatic copy/paste" msgstr "" -#: .././mainwin.py:6984 +#: .././mainwin.py:7010 msgid "_Remember URLs" msgstr "" -#: .././mainwin.py:6999 +#: .././mainwin.py:7025 msgid "_Set download options" msgstr "" -#: .././mainwin.py:7010 +#: .././mainwin.py:7036 msgid "Use _default download options" msgstr "" -#: .././mainwin.py:7022 +#: .././mainwin.py:7048 msgid "_Edit download options" msgstr "" -#: .././mainwin.py:7036 +#: .././mainwin.py:7062 msgid "Enable _custom downloads" msgstr "" -#: .././mainwin.py:7049 +#: .././mainwin.py:7075 msgid "Custom downloads _preferences..." msgstr "" -#: .././mainwin.py:7064 .././config.py:17106 +#: .././mainwin.py:7090 .././config.py:17798 msgid "_Update" msgstr "" -#: .././mainwin.py:7117 +#: .././mainwin.py:7143 msgid "Copy file _path" msgstr "" #. Copy URL -#: .././mainwin.py:7129 +#: .././mainwin.py:7155 msgid "Copy _URL" msgstr "" -#: .././mainwin.py:7141 +#: .././mainwin.py:7167 msgid "Copy system _command" msgstr "" -#: .././mainwin.py:7157 +#: .././mainwin.py:7183 msgid "_Open destination(s)" msgstr "" -#: .././mainwin.py:7198 +#: .././mainwin.py:7224 msgid "Mark as _archived" msgstr "" -#: .././mainwin.py:7209 +#: .././mainwin.py:7235 msgid "Mark as not a_rchived" msgstr "" -#: .././mainwin.py:7223 +#: .././mainwin.py:7249 msgid "Mark as _bookmarked" msgstr "" -#: .././mainwin.py:7235 +#: .././mainwin.py:7261 msgid "Mark as not b_ookmarked" msgstr "" -#: .././mainwin.py:7248 +#: .././mainwin.py:7274 msgid "Mark as _favourite" msgstr "Mark as _favorite" -#: .././mainwin.py:7261 +#: .././mainwin.py:7287 msgid "Mark as not fa_vourite" msgstr "Mark as not fa_vorite" -#: .././mainwin.py:7275 +#: .././mainwin.py:7301 msgid "Mark as _missing" msgstr "" -#: .././mainwin.py:7288 +#: .././mainwin.py:7314 msgid "Mark as not m_issing" msgstr "" -#: .././mainwin.py:7305 +#: .././mainwin.py:7331 msgid "Mark as _new" msgstr "" -#: .././mainwin.py:7317 +#: .././mainwin.py:7343 msgid "Mark as not n_ew" msgstr "" -#: .././mainwin.py:7331 +#: .././mainwin.py:7357 msgid "Mark as in _waiting list" msgstr "" -#: .././mainwin.py:7343 +#: .././mainwin.py:7369 msgid "Mark as not in wai_ting list" msgstr "" -#: .././mainwin.py:7398 +#: .././mainwin.py:7424 msgid "D_ownload and watch" msgstr "" -#: .././mainwin.py:7507 +#: .././mainwin.py:7533 msgid "Mark as _not livestreams" msgstr "" -#: .././mainwin.py:7573 +#: .././mainwin.py:7599 msgid "_Download and watch" msgstr "" -#: .././mainwin.py:8397 +#: .././mainwin.py:8423 msgid "" "TRANSLATOR'S NOTE: V = number of videos B = (number of videos) bookmarked D " "= downloaded F = favourite L = live/livestream M = missing N = new W = in " "waiting list E = (number of) errors W = warnings" msgstr "" -#: .././mainwin.py:8404 +#: .././mainwin.py:8430 msgid "V:" msgstr "" -#: .././mainwin.py:8405 +#: .././mainwin.py:8431 msgid "B:" msgstr "" -#: .././mainwin.py:8406 +#: .././mainwin.py:8432 msgid "D:" msgstr "" -#: .././mainwin.py:8407 +#: .././mainwin.py:8433 msgid "F:" msgstr "" -#: .././mainwin.py:8408 +#: .././mainwin.py:8434 msgid "L:" msgstr "" -#: .././mainwin.py:8409 +#: .././mainwin.py:8435 msgid "M:" msgstr "" -#: .././mainwin.py:8410 +#: .././mainwin.py:8436 msgid "N:" msgstr "" -#: .././mainwin.py:8411 .././mainwin.py:8422 +#: .././mainwin.py:8437 .././mainwin.py:8448 msgid "W:" msgstr "" -#: .././mainwin.py:8421 +#: .././mainwin.py:8447 msgid "E:" msgstr "" @@ -2246,183 +2250,183 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:10425 .././mainwin.py:11262 .././mainwin.py:21155 -#: .././mainwin.py:21159 .././mainwin.py:21739 .././mainwin.py:23298 -#: .././mainwin.py:23302 .././mainwin.py:23544 +#: .././mainwin.py:10449 .././mainwin.py:11286 .././mainwin.py:21249 +#: .././mainwin.py:21253 .././mainwin.py:21833 .././mainwin.py:23397 +#: .././mainwin.py:23401 .././mainwin.py:23643 msgid "Waiting" msgstr "" -#: .././mainwin.py:11915 +#: .././mainwin.py:11939 msgid "" "TRANSLATOR'S NOTE: Thread means a computer processor thread. If you're not " "sure how to translate it, just use 'Page #', as in Page #1, Page #2, etc" msgstr "" -#: .././mainwin.py:11922 +#: .././mainwin.py:11946 msgid "Thread" msgstr "" -#: .././mainwin.py:11925 +#: .././mainwin.py:11949 msgid "_Summary" msgstr "" -#: .././mainwin.py:12524 +#: .././mainwin.py:12548 msgid "Tartube error" msgstr "" -#: .././mainwin.py:12583 +#: .././mainwin.py:12607 msgid "Tartube warning" msgstr "" -#: .././mainwin.py:12616 +#: .././mainwin.py:12640 msgid "_Errors" msgstr "" -#: .././mainwin.py:12620 +#: .././mainwin.py:12644 msgid "Warnings" msgstr "" -#: .././mainwin.py:12692 +#: .././mainwin.py:12716 msgid "" "There are not scheduled downloads that don't already contain the channel/" "playlist/folder" msgstr "" -#: .././mainwin.py:14079 +#: .././mainwin.py:14103 msgid "The external folder is not available" msgstr "" -#: .././mainwin.py:14081 +#: .././mainwin.py:14105 msgid "The external directory is not available" msgstr "" -#: .././mainwin.py:14179 +#: .././mainwin.py:14203 msgid "The URL is not valid" msgstr "" -#: .././mainwin.py:15458 .././config.py:11194 .././config.py:13522 +#: .././mainwin.py:15479 .././config.py:11343 .././config.py:14108 msgid "Invalid timestamp(s)" msgstr "" -#: .././mainwin.py:15640 .././mainwin.py:15649 .././config.py:11045 -#: .././config.py:11053 .././config.py:13418 .././config.py:13426 +#: .././mainwin.py:15663 .././mainwin.py:15672 .././config.py:11194 +#: .././config.py:11202 .././config.py:14004 .././config.py:14012 msgid "Invalid start/stop times" msgstr "" -#: .././mainwin.py:18580 +#: .././mainwin.py:18649 msgid "The following items are duplicates:" msgstr "" -#: .././mainwin.py:18744 +#: .././mainwin.py:18813 #, python-brace-format msgid "The channel contains {0} items, so this action may take a while" msgstr "" -#: .././mainwin.py:18751 +#: .././mainwin.py:18820 #, python-brace-format msgid "The playlist contains {0} items, so this action may take a while" msgstr "" -#: .././mainwin.py:18758 +#: .././mainwin.py:18827 #, python-brace-format msgid "The folder contains {0} items, so this action may take a while" msgstr "" -#: .././mainwin.py:19472 .././mainwin.py:20507 +#: .././mainwin.py:19554 .././mainwin.py:20601 msgid "Originally from:" msgstr "" -#: .././mainwin.py:19485 .././mainwin.py:20521 +#: .././mainwin.py:19567 .././mainwin.py:20615 msgid "From channel" msgstr "" -#: .././mainwin.py:19487 .././mainwin.py:20523 +#: .././mainwin.py:19569 .././mainwin.py:20617 msgid "From playlist" msgstr "" -#: .././mainwin.py:19489 .././mainwin.py:20525 +#: .././mainwin.py:19571 .././mainwin.py:20619 msgid "From folder" msgstr "" -#: .././mainwin.py:19520 +#: .././mainwin.py:19602 msgid "Livestream has not started yet" msgstr "" -#: .././mainwin.py:19527 +#: .././mainwin.py:19609 msgid "Debut has started" msgstr "" -#: .././mainwin.py:19529 +#: .././mainwin.py:19611 msgid "Debut has not started yet" msgstr "" -#: .././mainwin.py:19536 .././mainwin.py:19542 .././mainwin.py:20575 -#: .././mainwin.py:20582 +#: .././mainwin.py:19618 .././mainwin.py:19624 .././mainwin.py:20669 +#: .././mainwin.py:20676 msgid "Duration:" msgstr "" -#: .././mainwin.py:19542 .././mainwin.py:19548 .././mainwin.py:19559 -#: .././mainwin.py:20582 .././mainwin.py:20589 .././mainwin.py:20605 -#: .././mainwin.py:22999 .././mainwin.py:23005 .././mainwin.py:23016 -#: .././media.py:555 .././media.py:565 .././media.py:1956 .././media.py:1962 -#: .././media.py:1972 +#: .././mainwin.py:19624 .././mainwin.py:19630 .././mainwin.py:19641 +#: .././mainwin.py:20676 .././mainwin.py:20683 .././mainwin.py:20699 +#: .././mainwin.py:23098 .././mainwin.py:23104 .././mainwin.py:23115 +#: .././media.py:555 .././media.py:565 .././media.py:1978 .././media.py:1984 +#: .././media.py:1994 msgid "unknown" msgstr "" -#: .././mainwin.py:19546 .././mainwin.py:19548 .././mainwin.py:20586 -#: .././mainwin.py:20588 +#: .././mainwin.py:19628 .././mainwin.py:19630 .././mainwin.py:20680 +#: .././mainwin.py:20682 msgid "Size:" msgstr "" -#: .././mainwin.py:19557 .././mainwin.py:19559 .././mainwin.py:20600 +#: .././mainwin.py:19639 .././mainwin.py:19641 .././mainwin.py:20694 msgid "Date:" msgstr "" -#: .././mainwin.py:19899 +#: .././mainwin.py:19985 msgid "Watch:" msgstr "" -#: .././mainwin.py:19968 +#: .././mainwin.py:20054 msgid "Temporary:" msgstr "" -#: .././mainwin.py:20011 +#: .././mainwin.py:20097 msgid "Marked:" msgstr "" -#: .././mainwin.py:20479 .././mainwin.py:20542 +#: .././mainwin.py:20573 .././mainwin.py:20636 msgid "Show the full description" msgstr "" -#: .././mainwin.py:20480 .././mainwin.py:20543 +#: .././mainwin.py:20574 .././mainwin.py:20637 msgid "More" msgstr "" -#: .././mainwin.py:20492 .././mainwin.py:20551 +#: .././mainwin.py:20586 .././mainwin.py:20645 msgid "Show the short description" msgstr "" -#: .././mainwin.py:20493 .././mainwin.py:20552 +#: .././mainwin.py:20587 .././mainwin.py:20646 msgid "Less" msgstr "" -#: .././mainwin.py:20595 +#: .././mainwin.py:20689 msgid "Received:" msgstr "" -#: .././mainwin.py:20624 +#: .././mainwin.py:20718 msgid "Live now:" msgstr "" -#: .././mainwin.py:20626 .././mainwin.py:23152 +#: .././mainwin.py:20720 .././mainwin.py:23251 msgid "Live soon:" msgstr "" -#: .././mainwin.py:20635 +#: .././mainwin.py:20729 msgid "Debut now:" msgstr "" -#: .././mainwin.py:20637 .././mainwin.py:23154 +#: .././mainwin.py:20731 .././mainwin.py:23253 msgid "Debut soon:" msgstr "" @@ -2430,14 +2434,14 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20644 .././mainwin.py:20646 .././mainwin.py:20650 -#: .././mainwin.py:20935 .././mainwin.py:20937 .././mainwin.py:20941 -#: .././mainwin.py:21443 .././mainwin.py:23030 .././mainwin.py:23032 -#: .././mainwin.py:23036 +#: .././mainwin.py:20738 .././mainwin.py:20740 .././mainwin.py:20744 +#: .././mainwin.py:21029 .././mainwin.py:21031 .././mainwin.py:21035 +#: .././mainwin.py:21537 .././mainwin.py:23129 .././mainwin.py:23131 +#: .././mainwin.py:23135 msgid "Notify" msgstr "" -#: .././mainwin.py:20654 .././mainwin.py:20945 .././mainwin.py:23040 +#: .././mainwin.py:20748 .././mainwin.py:21039 .././mainwin.py:23139 msgid "When the livestream starts, notify the user" msgstr "" @@ -2445,13 +2449,13 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20665 .././mainwin.py:20667 .././mainwin.py:20951 -#: .././mainwin.py:20953 .././mainwin.py:20956 .././mainwin.py:21325 -#: .././mainwin.py:23051 .././mainwin.py:23053 +#: .././mainwin.py:20759 .././mainwin.py:20761 .././mainwin.py:21045 +#: .././mainwin.py:21047 .././mainwin.py:21050 .././mainwin.py:21419 +#: .././mainwin.py:23150 .././mainwin.py:23152 msgid "Alarm" msgstr "" -#: .././mainwin.py:20671 .././mainwin.py:20960 .././mainwin.py:23057 +#: .././mainwin.py:20765 .././mainwin.py:21054 .././mainwin.py:23156 msgid "When the livestream starts, sound an alarm" msgstr "" @@ -2459,13 +2463,13 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20676 .././mainwin.py:20678 .././mainwin.py:20966 -#: .././mainwin.py:20968 .././mainwin.py:20971 .././mainwin.py:21483 -#: .././mainwin.py:23062 .././mainwin.py:23064 +#: .././mainwin.py:20770 .././mainwin.py:20772 .././mainwin.py:21060 +#: .././mainwin.py:21062 .././mainwin.py:21065 .././mainwin.py:21577 +#: .././mainwin.py:23161 .././mainwin.py:23163 msgid "Open" msgstr "" -#: .././mainwin.py:20682 .././mainwin.py:20975 .././mainwin.py:23068 +#: .././mainwin.py:20776 .././mainwin.py:21069 .././mainwin.py:23167 msgid "When the livestream starts, open it" msgstr "" @@ -2475,14 +2479,14 @@ msgstr "" #. then use a Glib timer to restore it (after some small fraction of a #. second) #. (Livestream already broadcasting) -#: .././mainwin.py:20690 .././mainwin.py:20695 .././mainwin.py:20697 -#: .././mainwin.py:20981 .././mainwin.py:20983 .././mainwin.py:20986 -#: .././mainwin.py:21364 .././mainwin.py:23076 .././mainwin.py:23081 -#: .././mainwin.py:23083 +#: .././mainwin.py:20784 .././mainwin.py:20789 .././mainwin.py:20791 +#: .././mainwin.py:21075 .././mainwin.py:21077 .././mainwin.py:21080 +#: .././mainwin.py:21458 .././mainwin.py:23175 .././mainwin.py:23180 +#: .././mainwin.py:23182 msgid "D/L on start" msgstr "" -#: .././mainwin.py:20701 .././mainwin.py:20990 .././mainwin.py:23087 +#: .././mainwin.py:20795 .././mainwin.py:21084 .././mainwin.py:23186 msgid "When the livestream starts, download it" msgstr "" @@ -2490,18 +2494,18 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20707 .././mainwin.py:20712 .././mainwin.py:20714 -#: .././mainwin.py:20996 .././mainwin.py:20998 .././mainwin.py:21001 -#: .././mainwin.py:21404 .././mainwin.py:23093 .././mainwin.py:23098 -#: .././mainwin.py:23100 +#: .././mainwin.py:20801 .././mainwin.py:20806 .././mainwin.py:20808 +#: .././mainwin.py:21090 .././mainwin.py:21092 .././mainwin.py:21095 +#: .././mainwin.py:21498 .././mainwin.py:23192 .././mainwin.py:23197 +#: .././mainwin.py:23199 msgid "D/L on stop" msgstr "" -#: .././mainwin.py:20718 .././mainwin.py:21005 .././mainwin.py:23104 +#: .././mainwin.py:20812 .././mainwin.py:21099 .././mainwin.py:23203 msgid "When the livestream stops, download it" msgstr "" -#: .././mainwin.py:20737 .././mainwin.py:23123 +#: .././mainwin.py:20831 .././mainwin.py:23222 msgid "Watch in your media player" msgstr "" @@ -2509,41 +2513,41 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20738 .././mainwin.py:22132 .././mainwin.py:23124 +#: .././mainwin.py:20832 .././mainwin.py:22226 .././mainwin.py:23223 msgid "Player" msgstr "" -#: .././mainwin.py:20770 .././mainwin.py:23169 +#: .././mainwin.py:20864 .././mainwin.py:23268 msgid "Download this video" msgstr "" -#: .././mainwin.py:20785 .././mainwin.py:23184 +#: .././mainwin.py:20879 .././mainwin.py:23283 msgid "" "TRANSLATOR'S NOTE: If you want to use &, use & - if you want to use a " "different word (e.g. French et), then just use that word" msgstr "" -#: .././mainwin.py:20793 .././mainwin.py:23192 +#: .././mainwin.py:20887 .././mainwin.py:23291 msgid "Download and watch in your media player" msgstr "" -#: .././mainwin.py:20794 +#: .././mainwin.py:20888 msgid "Download & watch" msgstr "" -#: .././mainwin.py:20801 +#: .././mainwin.py:20895 msgid "Not downloaded" msgstr "" -#: .././mainwin.py:20827 +#: .././mainwin.py:20921 msgid "Watch on YouTube" msgstr "" -#: .././mainwin.py:20828 .././mainwin.py:22177 +#: .././mainwin.py:20922 .././mainwin.py:22271 msgid "YouTube" msgstr "" -#: .././mainwin.py:20840 +#: .././mainwin.py:20934 msgid "Watch on HookTube" msgstr "" @@ -2551,11 +2555,11 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20841 .././mainwin.py:21939 +#: .././mainwin.py:20935 .././mainwin.py:22033 msgid "HookTube" msgstr "" -#: .././mainwin.py:20853 +#: .././mainwin.py:20947 msgid "Watch on Invidious" msgstr "" @@ -2563,7 +2567,7 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20854 .././mainwin.py:21983 +#: .././mainwin.py:20948 .././mainwin.py:22077 msgid "Invidious" msgstr "" @@ -2571,25 +2575,25 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20873 .././mainwin.py:22028 .././config.py:14600 -#: .././config.py:17517 +#: .././mainwin.py:20967 .././mainwin.py:22122 .././config.py:15252 +#: .././config.py:18249 msgid "Other" msgstr "" -#: .././mainwin.py:20893 +#: .././mainwin.py:20987 msgid "Watch on website" msgstr "" -#: .././mainwin.py:20894 .././mainwin.py:22179 +#: .././mainwin.py:20988 .././mainwin.py:22273 msgid "Website" msgstr "" #. Links not clickable -#: .././mainwin.py:20905 +#: .././mainwin.py:20999 msgid "No link" msgstr "" -#: .././mainwin.py:21042 +#: .././mainwin.py:21136 msgid "Download to a temporary folder later" msgstr "" @@ -2597,19 +2601,19 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21043 .././mainwin.py:21060 .././mainwin.py:21895 +#: .././mainwin.py:21137 .././mainwin.py:21154 .././mainwin.py:21989 msgid "Mark for download" msgstr "" -#: .././mainwin.py:21048 +#: .././mainwin.py:21142 msgid "Download to a temporary folder" msgstr "" -#: .././mainwin.py:21054 +#: .././mainwin.py:21148 msgid "Download to a temporary folder, then watch" msgstr "" -#: .././mainwin.py:21055 .././mainwin.py:23193 +#: .././mainwin.py:21149 .././mainwin.py:23292 msgid "D/L & watch" msgstr "" @@ -2617,12 +2621,12 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21062 .././mainwin.py:21851 +#: .././mainwin.py:21156 .././mainwin.py:21945 msgid "D/L and watch" msgstr "" #. Archived/not archived -#: .././mainwin.py:21086 .././mainwin.py:23231 +#: .././mainwin.py:21180 .././mainwin.py:23330 msgid "Prevent automatic deletion of the video" msgstr "" @@ -2630,13 +2634,13 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21090 .././mainwin.py:21094 .././mainwin.py:21521 -#: .././mainwin.py:23235 .././mainwin.py:23239 .././mainwin.py:23454 +#: .././mainwin.py:21184 .././mainwin.py:21188 .././mainwin.py:21615 +#: .././mainwin.py:23334 .././mainwin.py:23338 .././mainwin.py:23553 msgid "Archived" msgstr "" #. Bookmarked/not bookmarked -#: .././mainwin.py:21099 .././mainwin.py:23244 +#: .././mainwin.py:21193 .././mainwin.py:23343 msgid "Show video in Bookmarks folder" msgstr "" @@ -2646,13 +2650,13 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21104 .././mainwin.py:21109 .././mainwin.py:23248 -#: .././mainwin.py:23252 .././mainwin.py:23499 +#: .././mainwin.py:21198 .././mainwin.py:21203 .././mainwin.py:23347 +#: .././mainwin.py:23351 .././mainwin.py:23598 msgid "B/mark" msgstr "" #. Favourite/not favourite -#: .././mainwin.py:21114 .././mainwin.py:23257 +#: .././mainwin.py:21208 .././mainwin.py:23356 msgid "Show in Favourite Videos folder" msgstr "Show in Favorite Videos folder" @@ -2660,13 +2664,13 @@ msgstr "Show in Favorite Videos folder" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21118 .././mainwin.py:21122 .././mainwin.py:21611 -#: .././mainwin.py:23261 .././mainwin.py:23265 +#: .././mainwin.py:21212 .././mainwin.py:21216 .././mainwin.py:21705 +#: .././mainwin.py:23360 .././mainwin.py:23364 .././config.py:13623 msgid "Favourite" msgstr "Favorite" #. Missing/not missing -#: .././mainwin.py:21126 .././mainwin.py:23269 +#: .././mainwin.py:21220 .././mainwin.py:23368 msgid "Mark video as removed by creator" msgstr "" @@ -2674,13 +2678,13 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21130 .././mainwin.py:21134 .././mainwin.py:21656 -#: .././mainwin.py:23273 .././mainwin.py:23277 +#: .././mainwin.py:21224 .././mainwin.py:21228 .././mainwin.py:21750 +#: .././mainwin.py:23372 .././mainwin.py:23376 msgid "Missing" msgstr "" #. New/not new -#: .././mainwin.py:21139 .././mainwin.py:23282 +#: .././mainwin.py:21233 .././mainwin.py:23381 msgid "Mark video as never watched" msgstr "" @@ -2688,13 +2692,13 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21143 .././mainwin.py:21147 .././mainwin.py:21694 -#: .././mainwin.py:23286 .././mainwin.py:23290 +#: .././mainwin.py:21237 .././mainwin.py:21241 .././mainwin.py:21788 +#: .././mainwin.py:23385 .././mainwin.py:23389 msgid "New" msgstr "" #. In waiting list/not in waiting list -#: .././mainwin.py:21152 .././mainwin.py:23295 +#: .././mainwin.py:21246 .././mainwin.py:23394 msgid "Show in Waiting Videos folder" msgstr "" @@ -2702,2555 +2706,2566 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21566 +#: .././mainwin.py:21660 msgid "Bookmarked" msgstr "" -#: .././mainwin.py:22970 +#: .././mainwin.py:23069 msgid "Click to open" msgstr "" -#: .././mainwin.py:23164 +#: .././mainwin.py:23263 msgid "TRANSLATOR'S NOTE: D/L means download" msgstr "" -#: .././mainwin.py:23200 +#: .././mainwin.py:23299 msgid "Can't D/L" msgstr "" -#: .././mainwin.py:23224 +#: .././mainwin.py:23323 msgid "" "TRANSLATOR'S NOTE: This section contains shortened labels: Archive = " "Archived, B/Mark = Bookmarked, Waiting: In waiting list" msgstr "" -#: .././mainwin.py:24605 +#: .././mainwin.py:24705 msgid "Add many channels/playlists" msgstr "" -#: .././mainwin.py:24635 .././mainwin.py:25309 .././mainwin.py:25838 -#: .././mainwin.py:26197 +#: .././mainwin.py:24735 .././mainwin.py:25411 .././mainwin.py:25940 +#: .././mainwin.py:26299 msgid "Enable automatic copy/paste" msgstr "" #. Buttons to add URLs as channels/playlists -#: .././mainwin.py:24685 +#: .././mainwin.py:24785 msgid "Add channels" msgstr "" -#: .././mainwin.py:24689 +#: .././mainwin.py:24789 msgid "Add playlists" msgstr "" -#: .././mainwin.py:24702 +#: .././mainwin.py:24802 msgid "Double-click the names/URls to customise them" msgstr "" -#: .././mainwin.py:24728 .././config.py:2991 .././config.py:5506 -#: .././config.py:5634 +#: .././mainwin.py:24828 .././config.py:3022 .././config.py:5606 +#: .././config.py:5738 msgid "Type" msgstr "" -#: .././mainwin.py:24728 .././config.py:17243 +#: .././mainwin.py:24828 .././config.py:17967 msgid "URL" msgstr "" #. Add more buttons -#: .././mainwin.py:24759 +#: .././mainwin.py:24859 msgid "Convert selected lines" msgstr "" -#: .././mainwin.py:24763 +#: .././mainwin.py:24863 msgid "Delete selected lines" msgstr "" -#: .././mainwin.py:24802 +#: .././mainwin.py:24902 msgid "Add to this folder:" msgstr "" -#: .././mainwin.py:25160 +#: .././mainwin.py:25262 msgid "Add channel" msgstr "" -#: .././mainwin.py:25179 +#: .././mainwin.py:25281 msgid "Enter the channel name" msgstr "" -#: .././mainwin.py:25184 +#: .././mainwin.py:25286 msgid "(Use the channel's real name or a customised name)" msgstr "(Use the channel's real name or a customized name)" -#: .././mainwin.py:25192 +#: .././mainwin.py:25294 msgid "Copy and paste a link to the channel" msgstr "" -#: .././mainwin.py:25216 +#: .././mainwin.py:25318 msgid "" "Before adding the URL for a YouTube channel, first click the Videos tab in " "your browser!" msgstr "" -#: .././mainwin.py:25265 +#: .././mainwin.py:25367 msgid "(Optional) Add this channel inside a folder" msgstr "" -#: .././mainwin.py:25295 +#: .././mainwin.py:25397 msgid "I want to download videos from this channel automatically" msgstr "" -#: .././mainwin.py:25302 .././mainwin.py:25622 .././mainwin.py:25831 +#: .././mainwin.py:25404 .././mainwin.py:25724 .././mainwin.py:25933 msgid "Don't download anything, just check for new videos" msgstr "" -#: .././mainwin.py:25523 +#: .././mainwin.py:25625 msgid "Add folder" msgstr "" -#: .././mainwin.py:25542 +#: .././mainwin.py:25644 msgid "Enter the folder name" msgstr "" -#: .././mainwin.py:25585 +#: .././mainwin.py:25687 msgid "(Optional) Add this folder inside another folder" msgstr "" -#: .././mainwin.py:25616 +#: .././mainwin.py:25718 msgid "I want to download videos from this folder automatically" msgstr "" -#: .././mainwin.py:25715 +#: .././mainwin.py:25817 msgid "Add playlist" msgstr "" -#: .././mainwin.py:25734 +#: .././mainwin.py:25836 msgid "Enter the playlist name" msgstr "" -#: .././mainwin.py:25739 +#: .././mainwin.py:25841 msgid "(Use the playlist's real name or a customised name)" msgstr "(Use the playlist's real name or a customized name)" -#: .././mainwin.py:25747 +#: .././mainwin.py:25849 msgid "Copy and paste a link to the playlist" msgstr "" -#: .././mainwin.py:25794 +#: .././mainwin.py:25896 msgid "(Optional) Add this playlist inside a folder" msgstr "" -#: .././mainwin.py:25824 +#: .././mainwin.py:25926 msgid "I want to download videos from this playlist automatically" msgstr "" -#: .././mainwin.py:26021 +#: .././mainwin.py:26123 msgid "Add videos" msgstr "" -#: .././mainwin.py:26040 +#: .././mainwin.py:26142 msgid "Copy and paste the links to one or more videos" msgstr "" -#: .././mainwin.py:26046 +#: .././mainwin.py:26148 msgid "Links containing multiple videos will be converted to a channel" msgstr "" -#: .././mainwin.py:26053 +#: .././mainwin.py:26155 msgid "Links containing multiple videos will be converted to a playlist" msgstr "" -#: .././mainwin.py:26060 +#: .././mainwin.py:26162 msgid "Links containing multiple videos will be downloaded separately" msgstr "" -#: .././mainwin.py:26067 +#: .././mainwin.py:26169 msgid "Links containing multiple videos will not be downloaded at all" msgstr "" -#: .././mainwin.py:26155 +#: .././mainwin.py:26257 msgid "Add the videos to this folder" msgstr "" -#: .././mainwin.py:26185 +#: .././mainwin.py:26287 msgid "I want to download these videos automatically" msgstr "" -#: .././mainwin.py:26191 +#: .././mainwin.py:26293 msgid "Don't download anything, just check the videos" msgstr "" -#: .././mainwin.py:26360 .././config.py:2084 +#: .././mainwin.py:26462 .././config.py:2116 msgid "Apply download options" msgstr "" -#: .././mainwin.py:26382 +#: .././mainwin.py:26484 msgid "Create new download options" msgstr "" -#: .././mainwin.py:26392 +#: .././mainwin.py:26494 msgid "Use these download options" msgstr "" -#: .././mainwin.py:26429 +#: .././mainwin.py:26531 msgid "Clone these download options" msgstr "" -#: .././mainwin.py:26662 +#: .././mainwin.py:26764 msgid "Select a date" msgstr "" -#: .././mainwin.py:26770 +#: .././mainwin.py:26872 msgid "Delete channel" msgstr "" -#: .././mainwin.py:26772 +#: .././mainwin.py:26874 msgid "Delete playlist" msgstr "" -#: .././mainwin.py:26774 +#: .././mainwin.py:26876 msgid "Delete folder" msgstr "" -#: .././mainwin.py:26777 +#: .././mainwin.py:26879 msgid "Empty channel" msgstr "" -#: .././mainwin.py:26779 +#: .././mainwin.py:26881 msgid "Empty playlist" msgstr "" -#: .././mainwin.py:26781 +#: .././mainwin.py:26883 msgid "Empty folder" msgstr "" -#: .././mainwin.py:26815 +#: .././mainwin.py:26917 msgid "This channel does not contain any videos" msgstr "" -#: .././mainwin.py:26817 +#: .././mainwin.py:26919 msgid "This playlist does not contain any videos" msgstr "" -#: .././mainwin.py:26819 +#: .././mainwin.py:26921 msgid "This folder doesn't contain anything" msgstr "" -#: .././mainwin.py:26825 +#: .././mainwin.py:26927 msgid "(but there might be some files in Tartube's data folder)" msgstr "" -#: .././mainwin.py:26838 +#: .././mainwin.py:26940 msgid "This channel contains:" msgstr "" -#: .././mainwin.py:26840 +#: .././mainwin.py:26942 msgid "This playlist contains:" msgstr "" -#: .././mainwin.py:26842 .././config.py:14573 +#: .././mainwin.py:26944 .././config.py:15225 msgid "This folder contains:" msgstr "" -#: .././mainwin.py:26849 +#: .././mainwin.py:26951 msgid "1 folder" msgstr "" -#: .././mainwin.py:26851 +#: .././mainwin.py:26953 #, python-brace-format msgid "{0} folders" msgstr "" -#: .././mainwin.py:26858 +#: .././mainwin.py:26960 msgid "1 channel" msgstr "" -#: .././mainwin.py:26860 +#: .././mainwin.py:26962 #, python-brace-format msgid "{0} channels" msgstr "" -#: .././mainwin.py:26867 +#: .././mainwin.py:26969 msgid "1 playlist" msgstr "" -#: .././mainwin.py:26869 +#: .././mainwin.py:26971 #, python-brace-format msgid "{0} playlists" msgstr "" -#: .././mainwin.py:26876 .././mainwin.py:27367 +#: .././mainwin.py:26978 .././mainwin.py:27469 msgid "1 video" msgstr "" -#: .././mainwin.py:26878 .././mainwin.py:27370 +#: .././mainwin.py:26980 .././mainwin.py:27472 #, python-brace-format msgid "{0} videos" msgstr "" -#: .././mainwin.py:26891 +#: .././mainwin.py:26993 msgid "" "Do you want to delete the channel from Tartube's data folder, or do you just " "want to remove the channel from this list?" msgstr "" -#: .././mainwin.py:26897 +#: .././mainwin.py:26999 msgid "" "Do you want to delete the playlist from Tartube's data folder, or do you " "just want to remove the playlist from this list?" msgstr "" -#: .././mainwin.py:26903 +#: .././mainwin.py:27005 msgid "" "Do you want to delete the folder from Tartube's data folder, or do you just " "want to remove the folder from this list?" msgstr "" -#: .././mainwin.py:26912 +#: .././mainwin.py:27014 msgid "" "Do you want to empty the channel in Tartube's data folder, or do you just " "want to empty the channel in this list?" msgstr "" -#: .././mainwin.py:26918 +#: .././mainwin.py:27020 msgid "" "Do you want to empty the playlist in Tartube's data folder, or do you just " "want to empty the playlist in this list?" msgstr "" -#: .././mainwin.py:26924 +#: .././mainwin.py:27026 msgid "" "Do you want to empty the folder in Tartube's data folder, or do you just " "want to empty the folder in this list?" msgstr "" -#: .././mainwin.py:26941 +#: .././mainwin.py:27043 msgid "Just remove the channel from this list" msgstr "" -#: .././mainwin.py:26943 +#: .././mainwin.py:27045 msgid "Just remove the playlist from this list" msgstr "" -#: .././mainwin.py:26945 +#: .././mainwin.py:27047 msgid "Just remove the folder from this list" msgstr "" -#: .././mainwin.py:26950 +#: .././mainwin.py:27052 msgid "Just empty the channel in this list" msgstr "" -#: .././mainwin.py:26952 +#: .././mainwin.py:27054 msgid "Just empty the playlist in this list" msgstr "" -#: .././mainwin.py:26954 +#: .././mainwin.py:27056 msgid "Just empty the folder in this list" msgstr "" -#: .././mainwin.py:26960 +#: .././mainwin.py:27062 msgid "Delete all files" msgstr "" -#: .././mainwin.py:27020 +#: .././mainwin.py:27122 msgid "Export from database" msgstr "" -#: .././mainwin.py:27046 +#: .././mainwin.py:27148 msgid "" "Tartube is ready to export a partial summary of its database, containing a " "list of videos, channels, playlists and/or folders (but not including the " "videos themselves)" msgstr "" -#: .././mainwin.py:27053 +#: .././mainwin.py:27155 msgid "" "Tartube is ready to export a summary of its database, containing a list of " "videos, channels, playlists and/or folders (but not including the videos " "themselves)" msgstr "" -#: .././mainwin.py:27069 +#: .././mainwin.py:27171 msgid "Choose what should be included:" msgstr "" -#: .././mainwin.py:27077 +#: .././mainwin.py:27179 msgid "Include lists of videos" msgstr "" -#: .././mainwin.py:27082 +#: .././mainwin.py:27184 msgid "Include channels" msgstr "" -#: .././mainwin.py:27087 +#: .././mainwin.py:27189 msgid "Include playlists" msgstr "" -#: .././mainwin.py:27092 +#: .././mainwin.py:27194 msgid "Preserve folder structure" msgstr "" -#: .././mainwin.py:27100 +#: .././mainwin.py:27202 msgid "Export as JSON" msgstr "" -#: .././mainwin.py:27106 +#: .././mainwin.py:27208 msgid "Export as CSV using separator" msgstr "" -#: .././mainwin.py:27133 +#: .././mainwin.py:27235 msgid "Export as plain text" msgstr "" -#: .././mainwin.py:27242 +#: .././mainwin.py:27344 msgid "Import into database" msgstr "" -#: .././mainwin.py:27265 +#: .././mainwin.py:27367 msgid "Choose which items to import" msgstr "" -#: .././mainwin.py:27286 .././config.py:19575 .././config.py:21212 -#: .././config.py:21477 +#: .././mainwin.py:27388 .././config.py:20375 .././config.py:22129 +#: .././config.py:22402 msgid "Import" msgstr "" -#: .././mainwin.py:27322 +#: .././mainwin.py:27424 msgid "Import videos" msgstr "" -#: .././mainwin.py:27327 +#: .././mainwin.py:27429 msgid "Merge channels/playlists/folders" msgstr "" #. Bottom strip -#: .././mainwin.py:27330 .././mainwin.py:30368 +#: .././mainwin.py:27432 .././mainwin.py:30534 msgid "Select all" msgstr "" -#: .././mainwin.py:27335 +#: .././mainwin.py:27437 msgid "Unselect all" msgstr "" -#: .././mainwin.py:27597 +#: .././mainwin.py:27699 msgid "Mount drive" msgstr "" -#: .././mainwin.py:27622 +#: .././mainwin.py:27724 msgid "The Tartube data folder is set to:" msgstr "" -#: .././mainwin.py:27635 +#: .././mainwin.py:27737 msgid "...but this folder doesn't exist" msgstr "" -#: .././mainwin.py:27638 +#: .././mainwin.py:27740 msgid "...but Tartube cannot write to this folder" msgstr "" -#: .././mainwin.py:27648 +#: .././mainwin.py:27750 msgid "I have mounted the drive, please try again" msgstr "" -#: .././mainwin.py:27654 +#: .././mainwin.py:27756 msgid "Use this data folder:" msgstr "" -#: .././mainwin.py:27681 +#: .././mainwin.py:27783 msgid "Select a different data folder" msgstr "" -#: .././mainwin.py:27687 +#: .././mainwin.py:27789 msgid "Use the default data folder" msgstr "" -#: .././mainwin.py:27693 +#: .././mainwin.py:27795 msgid "Shut down Tartube" msgstr "" #. 'Cancel' button -#: .././mainwin.py:27700 .././config.py:1046 +#: .././mainwin.py:27802 .././config.py:1078 msgid "Cancel" msgstr "" #. 'OK' button -#: .././mainwin.py:27704 .././config.py:1037 .././config.py:2266 -#: .././config.py:11818 .././config.py:12184 +#: .././mainwin.py:27806 .././config.py:1069 .././config.py:2298 +#: .././config.py:11967 .././config.py:12333 msgid "OK" msgstr "" -#: .././mainwin.py:27826 +#: .././mainwin.py:27928 msgid "The folder still doesn't exist. Please try a different option" msgstr "" -#: .././mainwin.py:27903 .././config.py:403 +#: .././mainwin.py:28008 .././config.py:435 msgid "Downloads" msgstr "" -#: .././mainwin.py:27933 +#: .././mainwin.py:28038 msgid "Nothing happened?" msgstr "" -#: .././mainwin.py:27940 +#: .././mainwin.py:28051 +msgid "Check the video/audio file actually exists" +msgstr "" + +#: .././mainwin.py:28056 +msgid "(Try converting instead of a direct download)" +msgstr "" + +#: .././mainwin.py:28069 msgid "Check the downloader is installed and updated" msgstr "" -#: .././mainwin.py:27945 .././mainwin.py:29951 +#: .././mainwin.py:28074 .././mainwin.py:30117 msgid "Update" msgstr "" -#: .././mainwin.py:27952 +#: .././mainwin.py:28080 msgid "Tell Tartube where to find the downloader" msgstr "" -#: .././mainwin.py:27957 +#: .././mainwin.py:28085 msgid "Set the downloader's file path" msgstr "" -#: .././mainwin.py:27963 +#: .././mainwin.py:28091 msgid "Try a different downloader" msgstr "" -#: .././mainwin.py:27969 +#: .././mainwin.py:28097 msgid "Find more help" msgstr "" -#: .././mainwin.py:27974 +#: .././mainwin.py:28102 msgid "Read the FAQ" msgstr "" -#: .././mainwin.py:27980 +#: .././mainwin.py:28108 msgid "Ask for help" msgstr "" -#: .././mainwin.py:27992 +#: .././mainwin.py:28120 msgid "" "Don't forget to check the Output tab and the\n" "Errors/Warnings tab for error messages!" msgstr "" -#: .././mainwin.py:28002 +#: .././mainwin.py:28130 msgid "Always show this window" msgstr "" -#: .././mainwin.py:28181 +#: .././mainwin.py:28309 msgid "Download video clip" msgstr "" -#: .././mainwin.py:28183 +#: .././mainwin.py:28311 msgid "Create video clip" msgstr "" -#: .././mainwin.py:28210 .././config.py:9730 .././config.py:10382 -#: .././config.py:13004 +#: .././mainwin.py:28338 .././config.py:9881 .././config.py:10521 +#: .././config.py:13149 msgid "Start timestamp (e.g. 15:29)" msgstr "" -#: .././mainwin.py:28220 .././config.py:9750 .././config.py:10402 -#: .././config.py:13017 +#: .././mainwin.py:28348 .././config.py:9901 .././config.py:10541 +#: .././config.py:13162 msgid "Stop timestamp (optional)" msgstr "" -#: .././mainwin.py:28229 .././config.py:9765 .././config.py:10417 -#: .././config.py:13030 +#: .././mainwin.py:28357 .././config.py:9916 .././config.py:10556 +#: .././config.py:13175 msgid "Clip title (optional)" msgstr "" -#: .././mainwin.py:28237 +#: .././mainwin.py:28365 msgid "Download this clip" msgstr "" -#: .././mainwin.py:28239 +#: .././mainwin.py:28367 msgid "Create this clip" msgstr "" -#: .././mainwin.py:28248 +#: .././mainwin.py:28376 msgid "Download all clips" msgstr "" -#: .././mainwin.py:28250 +#: .././mainwin.py:28378 msgid "Create all clips" msgstr "" -#: .././mainwin.py:28434 +#: .././mainwin.py:28563 msgid "Download sliced video" msgstr "" -#: .././mainwin.py:28436 +#: .././mainwin.py:28565 msgid "Create sliced video" msgstr "" -#: .././mainwin.py:28463 .././config.py:9954 .././config.py:10628 -#: .././config.py:13206 +#: .././mainwin.py:28592 .././config.py:10101 .././config.py:10763 +#: .././config.py:13346 msgid "Start (timestamp or seconds)" msgstr "" -#: .././mainwin.py:28481 -msgid "Download this sliced video" +#: .././mainwin.py:28602 .././config.py:10114 .././config.py:10776 +#: .././config.py:13358 +msgid "Stop (optional)" +msgstr "" + +#: .././mainwin.py:28610 +msgid "Download and remove this slice" msgstr "" -#: .././mainwin.py:28483 +#: .././mainwin.py:28612 msgid "Create this sliced video" msgstr "" -#: .././mainwin.py:28492 +#: .././mainwin.py:28627 +msgid "Download and remove everything but this slice" +msgstr "" + +#: .././mainwin.py:28635 msgid "Download video with all slices removed" msgstr "" -#: .././mainwin.py:28494 +#: .././mainwin.py:28637 msgid "Create video with all slices removed" msgstr "" -#: .././mainwin.py:28647 +#: .././mainwin.py:28812 msgid "Set removal time" msgstr "" -#: .././mainwin.py:28670 +#: .././mainwin.py:28835 msgid "" "When videos are checked/downloaded, older videos\n" "are removed from the Recent Videos folder." msgstr "" -#: .././mainwin.py:28681 .././config.py:14778 +#: .././mainwin.py:28846 .././config.py:15428 msgid "Empty the whole folder" msgstr "" -#: .././mainwin.py:28688 .././config.py:14787 +#: .././mainwin.py:28853 .././config.py:15437 msgid "Remove videos after days" msgstr "" -#: .././mainwin.py:28782 +#: .././mainwin.py:28947 msgid "Stale lockfile" msgstr "" -#: .././mainwin.py:28819 +#: .././mainwin.py:28984 msgid "" "Failed to load the Tartube database file, because another copy of Tartube " "seems to be using it" msgstr "" -#: .././mainwin.py:28826 +#: .././mainwin.py:28991 msgid "Do you want to load it anyway?" msgstr "" -#: .././mainwin.py:28832 +#: .././mainwin.py:28997 msgid "" "(Only click 'Yes' if you are sure that other copies of Tartube are not using " "the database right now)" msgstr "" -#: .././mainwin.py:28844 +#: .././mainwin.py:29009 msgid "Yes, load the file" msgstr "" -#: .././mainwin.py:28851 +#: .././mainwin.py:29016 msgid "No, just shut down Tartube" msgstr "" -#: .././mainwin.py:28853 +#: .././mainwin.py:29018 msgid "No, don't load the file" msgstr "" -#: .././mainwin.py:28948 +#: .././mainwin.py:29113 msgid "Rename channel" msgstr "" -#: .././mainwin.py:28950 +#: .././mainwin.py:29115 msgid "Rename playlist" msgstr "" -#: .././mainwin.py:28952 +#: .././mainwin.py:29117 msgid "Rename folder" msgstr "" -#: .././mainwin.py:28976 +#: .././mainwin.py:29141 msgid "Set the new name for the channel:" msgstr "" -#: .././mainwin.py:28978 +#: .././mainwin.py:29143 msgid "Set the new name for the playlist:" msgstr "" -#: .././mainwin.py:28980 +#: .././mainwin.py:29145 msgid "Set the new name for the folder:" msgstr "" -#: .././mainwin.py:28986 +#: .././mainwin.py:29151 msgid "N.B. This procedure will modify your filesystem!\n" msgstr "" -#: .././mainwin.py:29047 +#: .././mainwin.py:29212 msgid "Add to scheduled download" msgstr "" -#: .././mainwin.py:29070 +#: .././mainwin.py:29235 msgid "Add the channel to this scheduled download:" msgstr "" -#: .././mainwin.py:29072 +#: .././mainwin.py:29237 msgid "Add the playlist to this scheduled download:" msgstr "" -#: .././mainwin.py:29074 +#: .././mainwin.py:29239 msgid "Add the folder to this scheduled download:" msgstr "" -#: .././mainwin.py:29176 +#: .././mainwin.py:29341 msgid "Set download destination" msgstr "" -#: .././mainwin.py:29221 +#: .././mainwin.py:29386 msgid "This channel normally downloads videos into its own folder" msgstr "" -#: .././mainwin.py:29226 +#: .././mainwin.py:29391 msgid "This playlist normally downloads videos into its own folder" msgstr "" -#: .././mainwin.py:29231 +#: .././mainwin.py:29396 msgid "This folder normally downloads videos into itself" msgstr "" -#: .././mainwin.py:29236 +#: .././mainwin.py:29401 msgid "This channel normally downloads videos into its own directory" msgstr "" -#: .././mainwin.py:29241 +#: .././mainwin.py:29406 msgid "This playlist normally downloads videos into its own directory" msgstr "" -#: .././mainwin.py:29246 +#: .././mainwin.py:29411 msgid "This folder normally downloads videos into its own directory" msgstr "" -#: .././mainwin.py:29256 +#: .././mainwin.py:29421 msgid "Use this location" msgstr "" -#: .././mainwin.py:29264 +#: .././mainwin.py:29429 msgid "Choose a different location if:" msgstr "" -#: .././mainwin.py:29267 +#: .././mainwin.py:29432 msgid "" "You want to add a channel and its playlists, without downloading the same " "video twice" msgstr "" -#: .././mainwin.py:29273 +#: .././mainwin.py:29438 msgid "" "A video creator has channels on both YouTube and BitChute, and you want to " "add both without downloading the same video twice" msgstr "" -#: .././mainwin.py:29366 +#: .././mainwin.py:29531 msgid "" "Using an external folder is not recommended, in general. Choose an external " "folder if:" msgstr "" -#: .././mainwin.py:29371 +#: .././mainwin.py:29536 msgid "" "Using an external directory is not recommended, in general. Choose an " "external directory if:" msgstr "" -#: .././mainwin.py:29377 +#: .././mainwin.py:29542 msgid "" "You want a different application to process the downloaded videos (other " "applications should not modify Tartube's main data folder)" msgstr "" -#: .././mainwin.py:29383 +#: .././mainwin.py:29548 msgid "" "You want a different application to process the downloaded videos (other " "applications should not modify Tartube's main data directory)" msgstr "" #. (Signal connect appears below) -#: .././mainwin.py:29400 .././config.py:4365 .././config.py:5680 -#: .././config.py:7075 .././config.py:7096 .././config.py:7117 -#: .././config.py:20869 .././config.py:20968 .././config.py:21009 -#: .././config.py:21079 +#: .././mainwin.py:29565 .././config.py:4399 .././config.py:5784 +#: .././config.py:7235 .././config.py:7256 .././config.py:7277 +#: .././config.py:21773 .././config.py:21876 .././config.py:21917 +#: .././config.py:21991 msgid "Set" msgstr "" -#: .././mainwin.py:29483 +#: .././mainwin.py:29648 msgid "Select an external folder" msgstr "" -#: .././mainwin.py:29485 +#: .././mainwin.py:29650 msgid "Select an external directory" msgstr "" -#: .././mainwin.py:29505 +#: .././mainwin.py:29670 msgid "An external folder must not be inside Tartube's own data folder" msgstr "" -#: .././mainwin.py:29511 +#: .././mainwin.py:29676 msgid "An external directory must not be inside Tartube's own data directory" msgstr "" -#: .././mainwin.py:29716 +#: .././mainwin.py:29881 msgid "Set nickname" msgstr "" -#: .././mainwin.py:29741 +#: .././mainwin.py:29906 #, python-brace-format msgid "" "Set a nickname for the channel '{0}' (or leave it blank to reset the " "nickname)" msgstr "" -#: .././mainwin.py:29746 +#: .././mainwin.py:29911 #, python-brace-format msgid "" "Set a nickname for the playlist '{0}' (or leave it blank to reset the " "nickname)" msgstr "" -#: .././mainwin.py:29751 +#: .././mainwin.py:29916 #, python-brace-format msgid "" "Set a nickname for the folder '{0}' (or leave it blank to reset the nickname)" msgstr "" -#: .././mainwin.py:29814 +#: .././mainwin.py:29979 msgid "Set URL" msgstr "" -#: .././mainwin.py:29839 +#: .././mainwin.py:30004 #, python-brace-format msgid "Update the URL for the channel '{0}'" msgstr "" -#: .././mainwin.py:29843 +#: .././mainwin.py:30008 #, python-brace-format msgid "Update the URL for the playlist '{0}'" msgstr "" -#: .././mainwin.py:29907 +#: .././mainwin.py:30072 msgid "Show system command" msgstr "" -#: .././mainwin.py:29960 +#: .././mainwin.py:30126 msgid "Copy to clipboard" msgstr "" -#: .././mainwin.py:30134 .././config.py:20235 +#: .././mainwin.py:30300 .././config.py:21116 msgid "Test" msgstr "" -#: .././mainwin.py:30154 +#: .././mainwin.py:30320 msgid "URL of the video to download (optional)" msgstr "" -#: .././mainwin.py:30165 +#: .././mainwin.py:30331 msgid "Command line options (optional)" msgstr "" -#: .././mainwin.py:30246 +#: .././mainwin.py:30412 msgid "Tidy up files" msgstr "" -#: .././mainwin.py:30248 +#: .././mainwin.py:30414 msgid "Tidy up channel" msgstr "" -#: .././mainwin.py:30250 +#: .././mainwin.py:30416 msgid "Tidy up playlist" msgstr "" -#: .././mainwin.py:30252 +#: .././mainwin.py:30418 msgid "Tidy up folder" msgstr "" -#: .././mainwin.py:30281 +#: .././mainwin.py:30447 msgid "Check that videos are not corrupted" msgstr "" -#: .././mainwin.py:30286 +#: .././mainwin.py:30452 msgid "Delete corrupted video files" msgstr "" -#: .././mainwin.py:30296 +#: .././mainwin.py:30462 msgid "Check that videos do/don't exist" msgstr "" -#: .././mainwin.py:30303 +#: .././mainwin.py:30469 msgid "" "Delete downloaded video files (doesn't remove videos from Tartube's database)" msgstr "" -#: .././mainwin.py:30315 +#: .././mainwin.py:30481 msgid "Also delete all video/audio files with the same name" msgstr "" -#: .././mainwin.py:30323 +#: .././mainwin.py:30489 msgid "Delete all archive files" msgstr "" -#: .././mainwin.py:30328 +#: .././mainwin.py:30494 msgid "Move thumbnails into own folder" msgstr "" -#: .././mainwin.py:30333 +#: .././mainwin.py:30499 msgid "Delete all thumbnail files" msgstr "" -#: .././mainwin.py:30339 +#: .././mainwin.py:30505 msgid "Convert .webp thumbnails to .jpg using FFmpeg" msgstr "" -#: .././mainwin.py:30348 +#: .././mainwin.py:30514 msgid "Move other metadata files into own folder" msgstr "" -#: .././mainwin.py:30356 +#: .././mainwin.py:30522 msgid "Delete all description files" msgstr "" -#: .././mainwin.py:30360 +#: .././mainwin.py:30526 msgid "Delete all metadata (JSON) files" msgstr "" -#: .././mainwin.py:30364 +#: .././mainwin.py:30530 msgid "Delete all annotation files" msgstr "" #. (Signal connect appears below) -#: .././mainwin.py:30373 +#: .././mainwin.py:30539 msgid "Select none" msgstr "" -#: .././config.py:404 +#: .././config.py:436 msgid "Uploads" msgstr "" -#: .././config.py:405 .././config.py:12706 +#: .././config.py:437 .././config.py:12853 msgid "File size" msgstr "" -#: .././config.py:435 +#: .././config.py:467 msgid "Graph" msgstr "" -#: .././config.py:436 +#: .././config.py:468 msgid "Bar chart" msgstr "" -#: .././config.py:465 +#: .././config.py:497 msgid "Show decade" msgstr "" -#: .././config.py:466 +#: .././config.py:498 msgid "Show year" msgstr "" -#: .././config.py:467 +#: .././config.py:499 msgid "Show quarters" msgstr "" -#: .././config.py:468 +#: .././config.py:500 msgid "Show month" msgstr "" -#: .././config.py:469 +#: .././config.py:501 msgid "Show week" msgstr "" -#: .././config.py:470 +#: .././config.py:502 msgid "Show day" msgstr "" -#: .././config.py:502 +#: .././config.py:534 msgid "Quarters" msgstr "" -#: .././config.py:503 +#: .././config.py:535 msgid "Months" msgstr "" -#: .././config.py:504 +#: .././config.py:536 msgid "Weeks" msgstr "" -#: .././config.py:505 +#: .././config.py:537 msgid "Days" msgstr "" -#: .././config.py:506 +#: .././config.py:538 msgid "Hours" msgstr "" -#: .././config.py:538 +#: .././config.py:570 msgid "Red" msgstr "" -#: .././config.py:539 +#: .././config.py:571 msgid "Green" msgstr "" -#: .././config.py:540 +#: .././config.py:572 msgid "Blue" msgstr "" -#: .././config.py:541 +#: .././config.py:573 msgid "Black" msgstr "" -#: .././config.py:542 +#: .././config.py:574 msgid "White" msgstr "" #. 'Reset' button #. (Signal connect appears below) -#: .././config.py:1019 .././config.py:4369 .././config.py:20371 -#: .././config.py:20399 .././config.py:20972 .././config.py:21013 -#: .././config.py:21083 +#: .././config.py:1051 .././config.py:4403 .././config.py:21256 +#: .././config.py:21284 .././config.py:21880 .././config.py:21921 +#: .././config.py:21995 msgid "Reset" msgstr "" -#: .././config.py:1023 +#: .././config.py:1055 msgid "Reset changes without closing the window" msgstr "" #. 'Apply' button -#: .././config.py:1028 +#: .././config.py:1060 msgid "Apply" msgstr "" -#: .././config.py:1032 +#: .././config.py:1064 msgid "Apply changes without closing the window" msgstr "" -#: .././config.py:1040 .././config.py:11821 .././config.py:12187 +#: .././config.py:1072 .././config.py:11970 .././config.py:12336 msgid "Apply changes" msgstr "" -#: .././config.py:1049 +#: .././config.py:1081 msgid "Cancel changes" msgstr "" -#: .././config.py:1892 +#: .././config.py:1924 msgid "Listed as" msgstr "" -#: .././config.py:1904 +#: .././config.py:1936 msgid "Contained in" msgstr "" -#: .././config.py:1962 +#: .././config.py:1994 msgid "Download to" msgstr "" -#: .././config.py:2010 +#: .././config.py:2042 msgid "Default location" msgstr "" -#: .././config.py:2039 +#: .././config.py:2071 msgid "Channel URL" msgstr "" -#: .././config.py:2041 +#: .././config.py:2073 msgid "Playlist URL" msgstr "" -#: .././config.py:2043 .././config.py:4140 +#: .././config.py:2075 .././config.py:4166 msgid "Video URL" msgstr "" -#: .././config.py:2066 .././config.py:5245 +#: .././config.py:2098 .././config.py:5336 msgid "_Options" msgstr "" -#: .././config.py:2080 .././config.py:3619 .././config.py:4868 -#: .././config.py:4907 +#: .././config.py:2112 .././config.py:3646 .././config.py:4919 +#: .././config.py:4963 msgid "Download options" msgstr "" -#: .././config.py:2091 +#: .././config.py:2123 msgid "Edit download options" msgstr "" -#: .././config.py:2098 +#: .././config.py:2130 msgid "Remove download options" msgstr "" -#: .././config.py:2269 +#: .././config.py:2301 msgid "Close this window" msgstr "" -#: .././config.py:2677 +#: .././config.py:2709 msgid "Custom download settings" msgstr "" -#: .././config.py:2824 .././config.py:3867 .././config.py:8909 +#: .././config.py:2856 .././config.py:3894 .././config.py:9069 msgid "_Name" msgstr "" -#: .././config.py:2847 +#: .././config.py:2878 msgid "Usage" msgstr "" -#: .././config.py:2859 +#: .././config.py:2890 msgid "Applies everywhere except the Classic Mode tab" msgstr "" -#: .././config.py:2862 +#: .././config.py:2893 msgid "Applies to the Classic Mode tab" msgstr "" -#: .././config.py:2864 +#: .././config.py:2895 msgid "Applies when selected" msgstr "" -#: .././config.py:2879 +#: .././config.py:2910 msgid "Import settings from the general custom download into this window" msgstr "" -#: .././config.py:2897 +#: .././config.py:2928 msgid "Completely reset all settings to their default values" msgstr "" #. Add this tab... -#: .././config.py:2911 .././config.py:4862 .././config.py:4881 -#: .././config.py:5798 .././config.py:19329 +#: .././config.py:2942 .././config.py:4913 .././config.py:4932 +#: .././config.py:5911 .././config.py:20125 msgid "_Downloads" msgstr "" -#: .././config.py:2916 +#: .././config.py:2947 msgid "Download settings" msgstr "" -#: .././config.py:2921 +#: .././config.py:2952 msgid "Download each video independently of its channel or playlist" msgstr "" -#: .././config.py:2929 +#: .././config.py:2960 msgid "Hint: enable this setting first!" msgstr "" -#: .././config.py:2935 +#: .././config.py:2966 msgid "" "Check channels/playlists/folders before each custom download (recommended)" msgstr "" -#: .././config.py:2951 +#: .././config.py:2982 msgid "Split videos into video clips using timestamps (requires FFmpeg)" msgstr "" -#: .././config.py:2964 +#: .././config.py:2995 msgid "Remove slices from the video using SponsorBlock data (requires FFmpeg)" msgstr "" -#: .././config.py:2991 .././config.py:15395 +#: .././config.py:3022 .././config.py:16043 msgid "Remove" msgstr "" -#: .././config.py:3020 +#: .././config.py:3051 msgid "Types of video slice to remove:" msgstr "" -#: .././config.py:3035 +#: .././config.py:3066 msgid "Toggle" msgstr "" -#: .././config.py:3050 +#: .././config.py:3077 msgid "Remove all" msgstr "" #. (Signal connect appears below) -#: .././config.py:3057 +#: .././config.py:3084 msgid "Remove none" msgstr "" -#: .././config.py:3136 +#: .././config.py:3163 msgid "_Delays" msgstr "" -#: .././config.py:3141 +#: .././config.py:3168 msgid "Download delay settings" msgstr "" -#: .././config.py:3146 +#: .././config.py:3173 msgid "Apply a delay after each video/channel/playlist is downloaded" msgstr "" -#: .././config.py:3154 +#: .././config.py:3181 msgid "Maximum delay to apply (in minutes)" msgstr "" -#: .././config.py:3170 +#: .././config.py:3197 msgid "Minimum delay to apply (in minutes; randomises the actual delay)" msgstr "Minimum delay to apply (in minutes; randomizes the actual delay)" -#: .././config.py:3203 +#: .././config.py:3230 msgid "Mirrors" msgstr "" -#: .././config.py:3208 +#: .././config.py:3235 msgid "Mirror settings" msgstr "" -#: .././config.py:3214 +#: .././config.py:3241 msgid "Obtain a YouTube video from the original website" msgstr "" -#: .././config.py:3222 +#: .././config.py:3249 msgid "Obtain the video from HookTube rather than YouTube" msgstr "" -#: .././config.py:3232 +#: .././config.py:3259 msgid "Obtain the video from Invidious rather than YouTube" msgstr "" -#: .././config.py:3242 +#: .././config.py:3269 msgid "Obtain the video from this YouTube front-end:" msgstr "" -#: .././config.py:3259 .././config.py:20377 +#: .././config.py:3286 .././config.py:21262 msgid "Type the exact text that replaces youtube.com e.g." msgstr "" -#: .././config.py:3308 .././config.py:3455 .././config.py:7326 -#: .././config.py:7959 .././config.py:11331 .././config.py:11727 +#: .././config.py:3335 .././config.py:3482 .././config.py:7486 +#: .././config.py:8119 .././config.py:11480 .././config.py:11876 msgid "This procedure cannot be reversed. Are you sure you want to continue?" msgstr "" -#: .././config.py:3875 +#: .././config.py:3901 msgid "Name for these download options" msgstr "" -#: .././config.py:3893 +#: .././config.py:3919 msgid "Download options applied to" msgstr "" -#: .././config.py:3929 +#: .././config.py:3955 msgid "All channels, playlists and folders" msgstr "" -#: .././config.py:3931 +#: .././config.py:3957 msgid "Downloads in the Classic Mode tab" msgstr "" -#: .././config.py:3933 +#: .././config.py:3959 msgid "These options are not applied to anything" msgstr "" -#: .././config.py:3937 +#: .././config.py:3963 msgid "Extra command line options (e.g. --help; do not use -o or --output)" msgstr "" -#: .././config.py:3949 -msgid "" -"Use ONLY these options (Tartube adds the downloader and the output folder" +#: .././config.py:3975 +msgid "Use ONLY these options (Tartube adds the output folder)" msgstr "" -#: .././config.py:3961 -msgid "" -"Use ONLY these options (Tartube adds the downloader and the output directory)" +#: .././config.py:3986 +msgid "Use ONLY these options (Tartube adds the output directory)" msgstr "" -#: .././config.py:3973 -msgid "Ignore the video/playlist/channel URL, because a URL is specified below" +#: .././config.py:3997 +msgid "Use only the URL specified below" msgstr "" -#: .././config.py:4009 +#: .././config.py:4031 msgid "Hide advanced download options" msgstr "" -#: .././config.py:4011 +#: .././config.py:4033 msgid "Show advanced download options" msgstr "" -#: .././config.py:4021 +#: .././config.py:4043 msgid "Import general download options into this window" msgstr "" -#: .././config.py:4036 +#: .././config.py:4058 msgid "Completely reset all download options to their default values" msgstr "" #. Add this tab... -#: .././config.py:4050 .././config.py:16496 +#: .././config.py:4072 .././config.py:17162 msgid "_Files" msgstr "" -#: .././config.py:4071 +#: .././config.py:4098 msgid "File _names" msgstr "" -#: .././config.py:4079 +#: .././config.py:4105 msgid "File name options" msgstr "" -#: .././config.py:4084 +#: .././config.py:4110 msgid "Format for video file names" msgstr "" -#: .././config.py:4109 +#: .././config.py:4135 msgid "File output template" msgstr "" -#: .././config.py:4129 +#: .././config.py:4155 msgid "Add to template:" msgstr "" -#: .././config.py:4134 .././config.py:12408 +#: .././config.py:4160 .././config.py:12557 msgid "Video properties" msgstr "" -#: .././config.py:4136 .././config.py:12676 +#: .././config.py:4162 .././config.py:12823 msgid "Video ID" msgstr "" -#: .././config.py:4137 +#: .././config.py:4163 msgid "Video title" msgstr "" -#: .././config.py:4138 +#: .././config.py:4164 msgid "Alternative video ID" msgstr "" -#: .././config.py:4139 +#: .././config.py:4165 msgid "Secondary video title" msgstr "" -#: .././config.py:4141 +#: .././config.py:4167 msgid "Video filename extension" msgstr "" -#: .././config.py:4142 +#: .././config.py:4168 msgid "Video licence" msgstr "Video license" -#: .././config.py:4143 +#: .././config.py:4169 msgid "Age restriction (years)" msgstr "" -#: .././config.py:4144 +#: .././config.py:4170 msgid "Is a livestream" msgstr "" -#: .././config.py:4145 +#: .././config.py:4171 msgid "Autonumber videos, starting at 0" msgstr "" -#: .././config.py:4147 +#: .././config.py:4173 msgid "Creator/uploader" msgstr "" -#: .././config.py:4149 +#: .././config.py:4175 msgid "Full name of video uploader" msgstr "" -#: .././config.py:4150 +#: .././config.py:4176 msgid "Uploader ID" msgstr "" -#: .././config.py:4151 +#: .././config.py:4177 msgid "Nickname/ID of video uploader" msgstr "" -#: .././config.py:4152 +#: .././config.py:4178 msgid "Channel name" msgstr "" -#: .././config.py:4153 +#: .././config.py:4179 msgid "Channel ID" msgstr "" -#: .././config.py:4154 +#: .././config.py:4180 msgid "Playlist name" msgstr "" -#: .././config.py:4155 +#: .././config.py:4181 msgid "Playlist ID" msgstr "" -#: .././config.py:4156 +#: .././config.py:4182 msgid "Video index in playlist" msgstr "" -#: .././config.py:4158 +#: .././config.py:4184 msgid "Date/time/location" msgstr "" -#: .././config.py:4160 +#: .././config.py:4186 msgid "Release date (YYYYMMDD)" msgstr "" -#: .././config.py:4161 +#: .././config.py:4187 msgid "Release time (UNIX timestamp)" msgstr "" -#: .././config.py:4162 +#: .././config.py:4188 msgid "Upload data (YYYYMMDD)" msgstr "" -#: .././config.py:4163 +#: .././config.py:4189 msgid "Video length (seconds)" msgstr "" -#: .././config.py:4164 +#: .././config.py:4190 msgid "Filming location" msgstr "" -#: .././config.py:4166 .././config.py:4168 +#: .././config.py:4192 .././config.py:4194 msgid "Video format" msgstr "" -#: .././config.py:4169 +#: .././config.py:4195 msgid "Video format code" msgstr "" -#: .././config.py:4170 +#: .././config.py:4196 msgid "Video width" msgstr "" -#: .././config.py:4171 +#: .././config.py:4197 msgid "Video height" msgstr "" -#: .././config.py:4173 +#: .././config.py:4199 msgid "Video frame rate" msgstr "" -#: .././config.py:4174 +#: .././config.py:4200 msgid "Average video/audio bitrate (KiB/s)" msgstr "" -#: .././config.py:4175 +#: .././config.py:4201 msgid "Average video bitrate (KiB/s)" msgstr "" -#: .././config.py:4176 +#: .././config.py:4202 msgid "Average audio bitrate (KiB/s)" msgstr "" -#: .././config.py:4178 +#: .././config.py:4204 msgid "Ratings/comments" msgstr "" -#: .././config.py:4180 +#: .././config.py:4206 msgid "Number of views" msgstr "" -#: .././config.py:4181 +#: .././config.py:4207 msgid "Number of positive ratings" msgstr "" -#: .././config.py:4182 +#: .././config.py:4208 msgid "Number of negative ratings" msgstr "" -#: .././config.py:4183 +#: .././config.py:4209 msgid "Average rating" msgstr "" -#: .././config.py:4184 +#: .././config.py:4210 msgid "Number of reposts" msgstr "" -#: .././config.py:4185 +#: .././config.py:4211 msgid "Number of comments" msgstr "" -#: .././config.py:4221 .././config.py:5549 .././config.py:5689 -#: .././config.py:15385 .././config.py:18744 .././config.py:19566 -#: .././config.py:21203 .././config.py:21468 +#: .././config.py:4247 .././config.py:5649 .././config.py:5793 +#: .././config.py:16033 .././config.py:19523 .././config.py:20366 +#: .././config.py:22120 .././config.py:22393 msgid "Add" msgstr "" -#: .././config.py:4249 .././config.py:5850 +#: .././config.py:4280 .././config.py:5967 msgid "_Filesystem" msgstr "" -#: .././config.py:4259 +#: .././config.py:4289 msgid "Filesystem options" msgstr "" -#: .././config.py:4264 +#: .././config.py:4294 msgid "Restrict filenames to ASCII characters" msgstr "" -#: .././config.py:4271 +#: .././config.py:4301 msgid "Use the server's file modification time" msgstr "" -#: .././config.py:4279 +#: .././config.py:4309 msgid "Filesystem overrides" msgstr "" -#: .././config.py:4284 +#: .././config.py:4314 msgid "Download all videos into this folder" msgstr "" -#: .././config.py:4348 +#: .././config.py:4383 msgid "_Cookies" msgstr "" -#: .././config.py:4356 +#: .././config.py:4390 msgid "Cookies options" msgstr "" -#: .././config.py:4361 +#: .././config.py:4395 msgid "Path to the downloader's cookie jar file" msgstr "" -#: .././config.py:4417 +#: .././config.py:4456 msgid "_Write/move files" msgstr "" -#: .././config.py:4425 +#: .././config.py:4463 msgid "File write options" msgstr "" -#: .././config.py:4430 +#: .././config.py:4468 msgid "Write video's description to a .description file" msgstr "" -#: .././config.py:4437 +#: .././config.py:4475 msgid "Write video's metadata to an .info.json file" msgstr "" -#: .././config.py:4445 +#: .././config.py:4483 msgid "Write video's annotations to an .annotations.xml file" msgstr "" -#: .././config.py:4454 +#: .././config.py:4492 msgid "" "Annotations are not downloaded when checking videos/channels/playlists/" "folders" msgstr "" -#: .././config.py:4461 +#: .././config.py:4499 msgid "Write the video's thumbnail to the same folder" msgstr "" -#: .././config.py:4469 +#: .././config.py:4507 msgid "File move options" msgstr "" -#: .././config.py:4474 +#: .././config.py:4512 msgid "Move video's description file into a sub-folder" msgstr "" -#: .././config.py:4480 +#: .././config.py:4518 msgid "Write video's metadata file into a sub-folder" msgstr "" -#: .././config.py:4486 +#: .././config.py:4524 msgid "Write video's annotations file into a sub-folder" msgstr "" -#: .././config.py:4492 +#: .././config.py:4530 msgid "Write the video's thumbnail into a sub-folder" msgstr "" -#: .././config.py:4506 +#: .././config.py:4549 msgid "_Keep files" msgstr "" -#: .././config.py:4512 +#: .././config.py:4555 msgid "Options during real (not simulated) downloads" msgstr "" -#: .././config.py:4518 .././config.py:4549 +#: .././config.py:4561 .././config.py:4592 msgid "Keep the description file after the download has finished" msgstr "" -#: .././config.py:4524 .././config.py:4555 +#: .././config.py:4567 .././config.py:4598 msgid "Keep the metadata file after the download has finished" msgstr "" -#: .././config.py:4530 .././config.py:4561 +#: .././config.py:4573 .././config.py:4604 msgid "Keep the annotations file after the download has finished" msgstr "" -#: .././config.py:4536 .././config.py:4567 +#: .././config.py:4579 .././config.py:4610 msgid "Keep the thumbnail file after the download has finished" msgstr "" -#: .././config.py:4543 +#: .././config.py:4586 msgid "Options during simulated (not real) downloads" msgstr "" #. Add this tab... -#: .././config.py:4581 +#: .././config.py:4624 msgid "F_ormats" msgstr "" -#: .././config.py:4600 +#: .././config.py:4648 msgid "_Preferred" msgstr "" -#: .././config.py:4608 +#: .././config.py:4655 msgid "Preferred format options" msgstr "" -#: .././config.py:4614 +#: .././config.py:4661 msgid "Recognised video/audio formats" msgstr "Recognized video/audio formats" -#: .././config.py:4625 +#: .././config.py:4672 msgid "Add format" msgstr "" -#: .././config.py:4631 +#: .././config.py:4678 msgid "List of preferred formats" msgstr "" -#: .././config.py:4649 +#: .././config.py:4696 msgid "Remove format" msgstr "" -#: .././config.py:4702 +#: .././config.py:4749 msgid "If a merge is required after post-processing, output to this format:" msgstr "" #. Add this tab... -#: .././config.py:4729 .././config.py:6277 +#: .././config.py:4781 .././config.py:6413 msgid "_Advanced" msgstr "" -#: .././config.py:4738 +#: .././config.py:4789 msgid "Multiple format options" msgstr "" -#: .././config.py:4747 +#: .././config.py:4798 msgid "" "Multiple formats will not be downloaded, because an archive file will be " "created" msgstr "" -#: .././config.py:4750 +#: .././config.py:4801 msgid "The archive file can be disabled in the System Preferences window" msgstr "" -#: .././config.py:4759 +#: .././config.py:4810 msgid "" "For each video, download the first available format from the preferred list" msgstr "" -#: .././config.py:4773 +#: .././config.py:4824 msgid "" "From the preferred list, download the first format that's available for all " "videos" msgstr "" -#: .././config.py:4787 +#: .././config.py:4838 msgid "For each video, download all available formats from the preferred list" msgstr "" -#: .././config.py:4800 +#: .././config.py:4851 msgid "Download all available formats for all videos" msgstr "" -#: .././config.py:4833 +#: .././config.py:4884 msgid "Other format options" msgstr "" -#: .././config.py:4838 +#: .././config.py:4889 msgid "Prefer free video formats, unless one is specified above" msgstr "" -#: .././config.py:4845 +#: .././config.py:4896 msgid "Do not download DASH-related data for YouTube videos" msgstr "" -#: .././config.py:4924 +#: .././config.py:4985 msgid "_Playlists" msgstr "" -#: .././config.py:4939 +#: .././config.py:5005 msgid "_Size limits" msgstr "" -#: .././config.py:4953 +#: .././config.py:5024 msgid "_Dates" msgstr "" -#: .././config.py:4965 +#: .././config.py:5041 msgid "_Views" msgstr "" -#: .././config.py:4978 +#: .././config.py:5059 msgid "_Filtering" msgstr "" -#: .././config.py:4992 +#: .././config.py:5078 msgid "_External" msgstr "" -#: .././config.py:5004 +#: .././config.py:5090 msgid "_Sound only" msgstr "" -#: .././config.py:5009 +#: .././config.py:5095 msgid "Sound only options" msgstr "" -#: .././config.py:5015 +#: .././config.py:5101 msgid "" "Download each video, extract the sound, and then discard the original videos" msgstr "" -#: .././config.py:5020 +#: .././config.py:5106 msgid "(requires that FFmpeg or AVConv is installed on your system)" msgstr "" -#: .././config.py:5031 +#: .././config.py:5117 msgid "Use this audio format:" msgstr "" -#: .././config.py:5047 +#: .././config.py:5133 msgid "Use this audio quality:" msgstr "" -#: .././config.py:5053 .././config.py:5131 +#: .././config.py:5139 .././config.py:5217 msgid "High" msgstr "" -#: .././config.py:5055 .././config.py:5133 +#: .././config.py:5141 .././config.py:5219 msgid "Low" msgstr "" -#: .././config.py:5074 .././config.py:6122 +#: .././config.py:5160 .././config.py:6255 msgid "_Post-processing" msgstr "" -#: .././config.py:5080 .././config.py:5414 +#: .././config.py:5166 .././config.py:5510 msgid "Post-processing options" msgstr "" -#: .././config.py:5086 +#: .././config.py:5172 msgid "Post-process video files to convert them to audio-only files" msgstr "" -#: .././config.py:5094 +#: .././config.py:5180 msgid "Prefer AVConv over FFmpeg" msgstr "" -#: .././config.py:5103 +#: .././config.py:5189 msgid "Prefer FFmpeg over AVConv (default)" msgstr "" -#: .././config.py:5112 +#: .././config.py:5198 msgid "Audio format of the post-processed file" msgstr "" -#: .././config.py:5126 +#: .././config.py:5212 msgid "Audio quality of the post-processed file" msgstr "" -#: .././config.py:5144 +#: .././config.py:5230 msgid "Encode video to another format, if necessary" msgstr "" -#: .././config.py:5157 +#: .././config.py:5243 msgid "Arguments to pass to post-processor" msgstr "" -#: .././config.py:5168 +#: .././config.py:5254 msgid "Keep original file after processing it" msgstr "" -#: .././config.py:5176 +#: .././config.py:5262 msgid "Merge subtitles file with video (.mp4 only)" msgstr "" -#: .././config.py:5188 +#: .././config.py:5274 msgid "Embed thumbnail in audio file as cover art" msgstr "" -#: .././config.py:5195 +#: .././config.py:5281 msgid "Write metadata to the video file" msgstr "" -#: .././config.py:5202 +#: .././config.py:5288 msgid "Automatically correct known faults of the file" msgstr "" -#: .././config.py:5208 +#: .././config.py:5294 msgid "Do nothing" msgstr "" -#: .././config.py:5209 +#: .././config.py:5295 msgid "Warn, but do nothing" msgstr "" -#: .././config.py:5210 +#: .././config.py:5296 msgid "Fix if possible, otherwise warn" msgstr "" #. Add this tab... -#: .././config.py:5228 +#: .././config.py:5314 msgid "S_ubtitles" msgstr "" -#: .././config.py:5249 +#: .././config.py:5340 msgid "Subtitles options" msgstr "" -#: .././config.py:5255 +#: .././config.py:5346 msgid "Don't download the subtitles file" msgstr "" -#: .././config.py:5266 +#: .././config.py:5357 msgid "Download the automatic subtitles file (YouTube only)" msgstr "" -#: .././config.py:5279 +#: .././config.py:5370 msgid "Download all available subtitles files" msgstr "" -#: .././config.py:5292 +#: .././config.py:5383 msgid "Download subtitles file for these languages:" msgstr "" -#: .././config.py:5316 +#: .././config.py:5407 msgid "Add language" msgstr "" -#: .././config.py:5330 +#: .././config.py:5421 msgid "Remove language" msgstr "" -#: .././config.py:5388 +#: .././config.py:5484 msgid "_More options" msgstr "" -#: .././config.py:5394 +#: .././config.py:5490 msgid "Subtitle format options" msgstr "" -#: .././config.py:5400 +#: .././config.py:5496 msgid "Preferred subtitle format(s), e.g. 'srt', 'vtt', 'srt/ass/vtt/lrc/best'" msgstr "" -#: .././config.py:5419 +#: .././config.py:5515 msgid "Applies to .mp4 videos only; requires FFmpeg/AVConv" msgstr "" -#: .././config.py:5426 +#: .././config.py:5522 msgid "During post-processing, merge subtitles file with video" msgstr "" #. Add this tab... -#: .././config.py:5446 +#: .././config.py:5542 msgid "_yt-dlp" msgstr "" -#: .././config.py:5481 +#: .././config.py:5581 msgid "List of output filename templates" msgstr "" -#: .././config.py:5482 .././config.py:5616 .././config.py:5756 -#: .././config.py:5806 .././config.py:5858 .././config.py:5935 -#: .././config.py:5983 .././config.py:6024 .././config.py:6075 -#: .././config.py:6131 .././config.py:6211 +#: .././config.py:5582 .././config.py:5720 .././config.py:5864 +#: .././config.py:5918 .././config.py:5974 .././config.py:6049 +#: .././config.py:6102 .././config.py:6147 .././config.py:6203 +#: .././config.py:6263 .././config.py:6347 msgid "yt-dlp only" msgstr "" -#: .././config.py:5487 +#: .././config.py:5587 msgid "Overrides the output template in the 'Files' tab" msgstr "" -#: .././config.py:5506 +#: .././config.py:5606 msgid "Template" msgstr "" -#: .././config.py:5525 .././config.py:5653 +#: .././config.py:5625 .././config.py:5757 msgid "Output type" msgstr "" -#: .././config.py:5538 +#: .././config.py:5638 msgid "Output template" msgstr "" -#: .././config.py:5560 .././config.py:5700 .././config.py:18780 -#: .././config.py:19625 .././config.py:21262 .././config.py:21527 +#: .././config.py:5660 .././config.py:5804 .././config.py:19559 +#: .././config.py:20424 .././config.py:22178 .././config.py:22451 msgid "Delete" msgstr "" -#: .././config.py:5569 .././config.py:5709 .././config.py:17346 -#: .././config.py:19641 .././config.py:21278 .././config.py:21543 +#: .././config.py:5669 .././config.py:5813 .././config.py:18069 +#: .././config.py:20440 .././config.py:22194 .././config.py:22467 msgid "Refresh list" msgstr "" -#: .././config.py:5607 +#: .././config.py:5712 msgid "_Paths" msgstr "" -#: .././config.py:5615 +#: .././config.py:5719 msgid "List of output paths" msgstr "" -#: .././config.py:5634 +#: .././config.py:5738 msgid "Path" msgstr "" -#: .././config.py:5668 +#: .././config.py:5772 msgid "Output path" msgstr "" -#: .././config.py:5755 +#: .././config.py:5863 msgid "Video Selection Options" msgstr "" -#: .././config.py:5761 +#: .././config.py:5869 msgid "Stop download process when encountering a file in the archive" msgstr "" -#: .././config.py:5769 +#: .././config.py:5877 msgid "" "Stop download process when encountering a file that has been filtered out" msgstr "" -#: .././config.py:5778 +#: .././config.py:5886 msgid "Number of failures allowed before rest of playlist is skipped" msgstr "" -#: .././config.py:5806 +#: .././config.py:5918 msgid "Download Options" msgstr "" -#: .././config.py:5813 +#: .././config.py:5925 msgid "Number of fragments of a DASH/HLS video to download concurrently" msgstr "" -#: .././config.py:5828 +#: .././config.py:5940 msgid "Minimum download rate (bytes/sec) below which throttling is assumed" msgstr "" -#: .././config.py:5858 +#: .././config.py:5974 msgid "Filesystem Options" msgstr "" -#: .././config.py:5864 +#: .././config.py:5980 msgid "Force filenames to be MS Windows compatible" msgstr "" -#: .././config.py:5872 +#: .././config.py:5988 msgid "Limit filnema lenght (excluding extension) to this many characters" msgstr "" -#: .././config.py:5887 +#: .././config.py:6003 msgid "Overwrite all video and metadata files (includes '--no-continue')" msgstr "" -#: .././config.py:5896 +#: .././config.py:6012 msgid "Write playlist metadata in addition to video metadata" msgstr "" -#: .././config.py:5904 +#: .././config.py:6020 msgid "Write all fields, including private fields, to the .info.json file" msgstr "" -#: .././config.py:5913 -msgid "Retrieve video comments and add to .info.json file" -msgstr "" - -#: .././config.py:5928 +#: .././config.py:6042 msgid "_Shortcuts" msgstr "" -#: .././config.py:5934 +#: .././config.py:6048 msgid "Internet Shortcut Options" msgstr "" -#: .././config.py:5940 +#: .././config.py:6054 msgid "Write an internet shortcut file (.url, .webloc or .desktop)" msgstr "" -#: .././config.py:5947 +#: .././config.py:6061 msgid "Write a Windows internet shortcut file (.url)" msgstr "" -#: .././config.py:5954 +#: .././config.py:6068 msgid "Write a macOS inernet shortcut file (.webloc)" msgstr "" -#: .././config.py:5961 +#: .././config.py:6075 msgid "Write a Linux internet shortcut file (.desktop)" msgstr "" -#: .././config.py:5976 +#: .././config.py:6095 msgid "V_erbosity" msgstr "" -#: .././config.py:5982 +#: .././config.py:6101 msgid "Verbosity and Simulation Options" msgstr "" -#: .././config.py:5989 +#: .././config.py:6108 msgid "" "Ignore 'No video formats' error (useful for extracting metadata from " "unavailable videos)" msgstr "" -#: .././config.py:5999 +#: .././config.py:6118 msgid "Force download archive entries to be written as long as no errors occur" msgstr "" -#: .././config.py:6016 +#: .././config.py:6140 msgid "_Workarounds" msgstr "" -#: .././config.py:6024 +#: .././config.py:6147 msgid "Workaround Options" msgstr "" -#: .././config.py:6031 +#: .././config.py:6154 msgid "Number of seconds to sleep between requests during data extraction" msgstr "" -#: .././config.py:6046 +#: .././config.py:6169 msgid "Number of seconds to sleep before each download (or minimum time)" msgstr "" -#: .././config.py:6068 +#: .././config.py:6196 msgid "Fo_rmats" msgstr "" -#: .././config.py:6074 +#: .././config.py:6202 msgid "Video Format Options" msgstr "" -#: .././config.py:6080 +#: .././config.py:6208 msgid "Allow multiple video streams to be merged into a single file" msgstr "" -#: .././config.py:6087 +#: .././config.py:6215 msgid "Allow multiple audio streams to be merged into a single file" msgstr "" -#: .././config.py:6095 +#: .././config.py:6223 msgid "Check formats selected are actually downloadable (Experimental" msgstr "" -#: .././config.py:6105 +#: .././config.py:6233 msgid "" "Allow unplayable formats to be listed and downloaded (also disables post-" "processing)" msgstr "" -#: .././config.py:6130 +#: .././config.py:6262 msgid "Post-Processing Options" msgstr "" -#: .././config.py:6136 +#: .././config.py:6268 msgid "Remux video into another container if necessary" msgstr "" -#: .././config.py:6155 +#: .././config.py:6287 msgid "Embed metadata including chapter markers (if supported by format)" msgstr "" -#: .././config.py:6164 +#: .././config.py:6296 msgid "Convert thumbnails to another format" msgstr "" -#: .././config.py:6179 +#: .././config.py:6311 msgid "Split video into multiple files based on internal chapters" msgstr "" -#: .././config.py:6188 +#: .././config.py:6320 msgid "N.B. The 'chapter' prefix can be used in the 'Output' and 'Paths' tabs" msgstr "" -#: .././config.py:6203 +#: .././config.py:6340 msgid "E_xtractor" msgstr "" -#: .././config.py:6211 +#: .././config.py:6347 msgid "Extractor Options" msgstr "" -#: .././config.py:6234 +#: .././config.py:6370 msgid "Do not process dynamic DASH manifests" msgstr "" -#: .././config.py:6242 +#: .././config.py:6378 msgid "" "Split HLS playlists to different formats at discontinuities such as ad breaks" msgstr "" -#: .././config.py:6252 +#: .././config.py:6388 msgid "Extractor Arguments" msgstr "" -#: .././config.py:6257 +#: .././config.py:6393 msgid "One argument per line, e.g." msgstr "" -#: .././config.py:6299 +#: .././config.py:6440 msgid "_Configurations" msgstr "" -#: .././config.py:6307 +#: .././config.py:6447 msgid "Configuration file options" msgstr "" -#: .././config.py:6312 +#: .././config.py:6452 msgid "Use the downloader's configuration file" msgstr "" -#: .././config.py:6323 .././config.py:6501 +#: .././config.py:6463 .././config.py:6649 msgid "File loaded from:" msgstr "" -#: .././config.py:6334 .././config.py:6512 +#: .././config.py:6474 .././config.py:6660 msgid "Save file" msgstr "" -#: .././config.py:6375 +#: .././config.py:6520 msgid "_Authentication" msgstr "" -#: .././config.py:6383 +#: .././config.py:6527 msgid "Authentication options" msgstr "" -#: .././config.py:6388 +#: .././config.py:6532 msgid "Username with which to log in" msgstr "" -#: .././config.py:6399 +#: .././config.py:6543 msgid "Password with which to log in" msgstr "" -#: .././config.py:6410 +#: .././config.py:6554 msgid "Password required for this URL" msgstr "" -#: .././config.py:6421 +#: .././config.py:6565 msgid "Two-factor authentication code" msgstr "" -#: .././config.py:6433 +#: .././config.py:6577 msgid "Adobe Pass multiple-system operator (TV provider) identifier" msgstr "" -#: .././config.py:6446 +#: .././config.py:6590 msgid " Adobe Pass multiple-system operator account login" msgstr "" -#: .././config.py:6457 +#: .././config.py:6601 msgid "Adobe Pass multiple-system operator account password" msgstr "" -#: .././config.py:6476 +#: .././config.py:6625 msgid "._netrc" msgstr "" -#: .././config.py:6484 +#: .././config.py:6632 msgid ".netrc options" msgstr "" -#: .././config.py:6489 +#: .././config.py:6637 msgid "Use .netrc authentication data" msgstr "" -#: .././config.py:6556 +#: .././config.py:6709 msgid "_Network" msgstr "" -#: .././config.py:6562 +#: .././config.py:6714 msgid "Network options" msgstr "" -#: .././config.py:6568 +#: .././config.py:6720 msgid "" "Use this HTTP/HTTPS proxy (if set, overrides the proxies in Tartube's " "preferences window" msgstr "" -#: .././config.py:6581 +#: .././config.py:6733 msgid "Time to wait for socket connection, before giving up" msgstr "" -#: .././config.py:6592 +#: .././config.py:6744 msgid "Bind with this Client-side IP address" msgstr "" -#: .././config.py:6603 +#: .././config.py:6755 msgid "Connect using IPv4 only" msgstr "" -#: .././config.py:6610 +#: .././config.py:6762 msgid "Connect using IPv6 only" msgstr "" -#: .././config.py:6625 +#: .././config.py:6782 msgid "_Geo-restriction" msgstr "" -#: .././config.py:6633 +#: .././config.py:6789 msgid "Geo-restriction options" msgstr "" -#: .././config.py:6638 +#: .././config.py:6794 msgid "Use this proxy to verify IP address" msgstr "" -#: .././config.py:6649 +#: .././config.py:6805 msgid "Bypass using fake X-Forwarded-For HTTP header" msgstr "" -#: .././config.py:6656 +#: .././config.py:6812 msgid "Don't bypass using fake HTTP header" msgstr "" -#: .././config.py:6663 +#: .././config.py:6819 msgid "Bypass geo-restriction with ISO 3166-2 country code" msgstr "" -#: .././config.py:6674 +#: .././config.py:6830 msgid "Bypass with explicit IP block in CIDR notation" msgstr "" -#: .././config.py:6698 +#: .././config.py:6858 msgid "Workaround options" msgstr "" -#: .././config.py:6703 +#: .././config.py:6863 msgid "Custom user agent" msgstr "" -#: .././config.py:6714 +#: .././config.py:6874 msgid "Custom referer if video access has restricted domain" msgstr "" -#: .././config.py:6725 +#: .././config.py:6885 msgid "Minimum seconds to sleep before each download" msgstr "" -#: .././config.py:6738 +#: .././config.py:6898 msgid "Maximum seconds to sleep before each download" msgstr "" -#: .././config.py:6759 +#: .././config.py:6919 msgid "Force this encoding (experimental)" msgstr "" -#: .././config.py:6770 +#: .././config.py:6930 msgid "Suppress HTTPS certificate validation" msgstr "" -#: .././config.py:6778 +#: .././config.py:6938 msgid "" "Use an unencrypted connection to retrieve information about videos (YouTube " "only)" msgstr "" -#: .././config.py:6860 +#: .././config.py:7020 msgid "Prefer HLS (HTTP Live Streaming)" msgstr "" -#: .././config.py:6867 +#: .././config.py:7027 msgid "Prefer FFMpeg over native HLS downloader" msgstr "" -#: .././config.py:6874 +#: .././config.py:7034 msgid "Include advertisements (experimental feature)" msgstr "" -#: .././config.py:6881 +#: .././config.py:7041 msgid "Ignore errors and continue the download operation" msgstr "" -#: .././config.py:6888 +#: .././config.py:7048 msgid "Number of retries" msgstr "" -#: .././config.py:6909 +#: .././config.py:7069 msgid "Download videos suitable for this age" msgstr "" -#: .././config.py:6930 +#: .././config.py:7090 msgid "Playlist options" msgstr "" -#: .././config.py:6936 +#: .././config.py:7096 msgid "" "Channels and playlists are handled in the same way, so these options can be " "used with both" msgstr "" -#: .././config.py:6943 +#: .././config.py:7103 msgid "Start downloading playlist from index" msgstr "" -#: .././config.py:6955 +#: .././config.py:7115 msgid "Stop downloading playlist at index" msgstr "" -#: .././config.py:6967 +#: .././config.py:7127 msgid "Abort operation after downloading this many videos" msgstr "" -#: .././config.py:6979 +#: .././config.py:7139 msgid "Abort downloading the playlist if an error occurs" msgstr "" -#: .././config.py:6986 +#: .././config.py:7146 msgid "Download playlist in reverse order" msgstr "" -#: .././config.py:6993 +#: .././config.py:7153 msgid "Download playlist in random order" msgstr "" -#: .././config.py:7009 +#: .././config.py:7169 msgid "Video size limit options" msgstr "" -#: .././config.py:7014 +#: .././config.py:7174 msgid "Minimum file size for video downloads" msgstr "" -#: .././config.py:7032 +#: .././config.py:7192 msgid "Maximum file size for video downloads" msgstr "" -#: .././config.py:7060 +#: .././config.py:7220 msgid "Video date options" msgstr "" -#: .././config.py:7065 +#: .././config.py:7225 msgid "Only videos uploaded on this date" msgstr "" -#: .././config.py:7086 +#: .././config.py:7246 msgid "Only videos uploaded before this date" msgstr "" -#: .././config.py:7107 +#: .././config.py:7267 msgid "Only videos uploaded after this date" msgstr "" -#: .././config.py:7138 +#: .././config.py:7298 msgid "Video views options" msgstr "" -#: .././config.py:7143 +#: .././config.py:7303 msgid "Minimum number of views" msgstr "" -#: .././config.py:7155 +#: .././config.py:7315 msgid "Maximum number of views" msgstr "" -#: .././config.py:7181 +#: .././config.py:7341 msgid "Video filtering options" msgstr "" -#: .././config.py:7186 +#: .././config.py:7346 msgid "Download only matching titles (regex or caseless substring)" msgstr "" -#: .././config.py:7198 +#: .././config.py:7358 msgid "Don't download only matching titles (regex or caseless substring)" msgstr "" -#: .././config.py:7211 +#: .././config.py:7371 msgid "Generic video filter, for example:" msgstr "" -#: .././config.py:7232 +#: .././config.py:7392 msgid "External downloader options" msgstr "" -#: .././config.py:7237 +#: .././config.py:7397 msgid "Use this external downloader" msgstr "" -#: .././config.py:7255 +#: .././config.py:7415 msgid "Arguments to pass to external downloader" msgstr "" -#: .././config.py:7353 +#: .././config.py:7513 msgid "Select the cookie jar file" msgstr "" -#: .././config.py:7465 +#: .././config.py:7625 msgid "Could not save the downloader's configuration file" msgstr "" -#: .././config.py:7476 +#: .././config.py:7636 msgid "Downloader's configuration file saved" msgstr "" -#: .././config.py:7732 +#: .././config.py:7892 msgid "" "This option won't work unless the format is also added to the list of " "preferred formats above" msgstr "" -#: .././config.py:7923 +#: .././config.py:8083 msgid "Could not save the .netrc file" msgstr "" -#: .././config.py:7940 +#: .././config.py:8100 msgid ".netrc file saved" msgstr "" -#: .././config.py:7998 +#: .././config.py:8158 msgid "" "Fewer download options will be visible when you click the 'Apply' or 'Reset' " "buttons (or when you close and then re-open the window)" msgstr "" -#: .././config.py:8008 +#: .././config.py:8168 msgid "Show advanced download options (when window re-opens)" msgstr "" -#: .././config.py:8021 +#: .././config.py:8181 msgid "" "More download options will be visible when you click the 'Apply' or 'Reset' " "buttons (or when you close and then re-open the window)" msgstr "" -#: .././config.py:8031 +#: .././config.py:8191 msgid "Hide advanced download options (when window re-opens)" msgstr "" -#: .././config.py:8490 +#: .././config.py:8650 msgid "Select the output folder" msgstr "" -#: .././config.py:8492 +#: .././config.py:8652 msgid "Select the output directory" msgstr "" -#: .././config.py:8542 +#: .././config.py:8702 msgid "FFmpeg options" msgstr "" #. Replace the 'OK' button with a 'Process files' button -#: .././config.py:8895 .././config.py:12132 +#: .././config.py:9055 .././config.py:12281 msgid "Process files" msgstr "" -#: .././config.py:8897 .././config.py:12134 +#: .././config.py:9057 .././config.py:12283 msgid "Process the files with FFmpeg" msgstr "" -#: .././config.py:8914 +#: .././config.py:9073 msgid "Name for these FFmpeg options" msgstr "" -#: .././config.py:8932 +#: .././config.py:9091 msgid "Extra command line options (e.g. --help)" msgstr "" -#: .././config.py:8943 +#: .././config.py:9102 msgid "System command, based on all FFmpeg options in this window:" msgstr "" -#: .././config.py:8974 +#: .././config.py:9133 msgid "Show fewer FFmpeg options" msgstr "" -#: .././config.py:8976 +#: .././config.py:9135 msgid "Show more FFmpeg options" msgstr "" -#: .././config.py:8986 +#: .././config.py:9145 msgid "Import current FFmpeg options into this window" msgstr "" -#: .././config.py:9001 +#: .././config.py:9160 msgid "Completely reset all FFmpeg options to their default values" msgstr "" -#: .././config.py:9017 +#: .././config.py:9176 msgid "Add to end of filename:" msgstr "" -#: .././config.py:9027 +#: .././config.py:9186 msgid "If regex matches filename:" msgstr "" -#: .././config.py:9041 +#: .././config.py:9200 msgid "...then apply substitution:" msgstr "" -#: .././config.py:9054 +#: .././config.py:9213 msgid "" "If the video/audio file is renamed, also rename the thumbnail (but not vice-" "versa)" msgstr "" -#: .././config.py:9065 +#: .././config.py:9224 msgid "Change file extension:" msgstr "" -#: .././config.py:9079 +#: .././config.py:9238 msgid "After changing the file extension, delete the original file" msgstr "" -#: .././config.py:9150 +#: .././config.py:9309 msgid "_Settings" msgstr "" -#: .././config.py:9164 +#: .././config.py:9322 msgid "Downloaded video/audio" msgstr "" -#: .././config.py:9173 +#: .././config.py:9331 msgid "with audio" msgstr "" -#: .././config.py:9186 .././config.py:9263 .././config.py:10796 +#: .././config.py:9344 .././config.py:9421 .././config.py:10943 msgid "Thumbnail" msgstr "" -#: .././config.py:9198 +#: .././config.py:9356 msgid "Output" msgstr "" -#: .././config.py:9227 +#: .././config.py:9385 msgid "Video clip" msgstr "" -#: .././config.py:9239 +#: .././config.py:9397 msgid "Video slice" msgstr "" -#: .././config.py:9251 +#: .././config.py:9409 msgid "Merge video/audio" msgstr "" -#: .././config.py:9361 +#: .././config.py:9519 msgid "Audio bitrate" msgstr "" -#: .././config.py:9375 +#: .././config.py:9533 msgid "How to set the quality" msgstr "" -#: .././config.py:9380 +#: .././config.py:9538 msgid "" "FFmpeg always encodes according to a Rate Factor that specifies the quality " "of the result." msgstr "" -#: .././config.py:9383 +#: .././config.py:9541 msgid "" "Instead of directly specifying the Rate Factor, an average bit rate can be " "specified. FFmpeg will then determine the optimal Rate Factor in a first " "pass." msgstr "" -#: .././config.py:9387 +#: .././config.py:9545 msgid "" "In fact the first pass is only used for determining the Rate Factor, no " "other data is carried over into the second pass." msgstr "" -#: .././config.py:9390 +#: .././config.py:9548 msgid "" "Specifying an average bitrate but running only one pass is possible, but not " "recommended. FFmpeg would then encode the beginning of the video with a " @@ -5258,2442 +5273,2539 @@ msgid "" "eventually reach the target bitrate." msgstr "" -#: .././config.py:9403 +#: .././config.py:9561 msgid "Manual rate factor" msgstr "" -#: .././config.py:9412 +#: .././config.py:9570 msgid "Determine from target bitrate (2-Pass)" msgstr "" -#: .././config.py:9422 +#: .././config.py:9580 msgid "Rate factor" msgstr "" -#: .././config.py:9434 +#: .././config.py:9589 msgid "Lossless" msgstr "" -#: .././config.py:9434 +#: .././config.py:9589 msgid "Large file" msgstr "" -#: .././config.py:9456 +#: .././config.py:9611 msgid "Bad quality" msgstr "" -#: .././config.py:9456 +#: .././config.py:9611 msgid "Small file" msgstr "" -#: .././config.py:9463 +#: .././config.py:9618 msgid "Name of dummy file" msgstr "" -#: .././config.py:9467 +#: .././config.py:9622 msgid "A dummy file is created during the first pass." msgstr "" -#: .././config.py:9471 +#: .././config.py:9626 msgid "Use the output file" msgstr "" -#: .././config.py:9472 +#: .././config.py:9627 msgid "Dummy" msgstr "" -#: .././config.py:9473 +#: .././config.py:9628 msgid "/dev/null (Linux)" msgstr "" -#: .././config.py:9474 +#: .././config.py:9629 msgid "NUL (MS Windows)" msgstr "" -#: .././config.py:9486 +#: .././config.py:9641 msgid "Patience preset" msgstr "" -#: .././config.py:9491 +#: .././config.py:9646 msgid "Ultra fast" msgstr "" -#: .././config.py:9492 +#: .././config.py:9647 msgid "Super fast" msgstr "" -#: .././config.py:9493 +#: .././config.py:9648 msgid "Very fast" msgstr "" -#: .././config.py:9494 .././config.py:9592 +#: .././config.py:9649 .././config.py:9747 msgid "Faster" msgstr "" -#: .././config.py:9495 +#: .././config.py:9650 msgid "Fast" msgstr "" -#: .././config.py:9496 +#: .././config.py:9651 msgid "Medium (default)" msgstr "" -#: .././config.py:9497 +#: .././config.py:9652 #, python-format msgid "Slow (file about 5-10% smaller than medium)" msgstr "" -#: .././config.py:9498 +#: .././config.py:9653 #, python-format msgid "Slower (file about 15% smaller than medium)" msgstr "" -#: .././config.py:9499 +#: .././config.py:9654 #, python-format msgid "Very slow (file about 17% smaller than medium)" msgstr "" -#: .././config.py:9510 +#: .././config.py:9665 msgid "GPU encoding" msgstr "" -#: .././config.py:9526 +#: .././config.py:9681 msgid "Hardware acceleration" msgstr "" -#: .././config.py:9586 +#: .././config.py:9741 msgid "Palette:" msgstr "" -#: .././config.py:9593 +#: .././config.py:9748 msgid "Uses dithering to a standard palette provided by FFmpeg" msgstr "" -#: .././config.py:9594 +#: .././config.py:9749 msgid "Can cause dithering artefacts and slight banding" msgstr "" -#: .././config.py:9603 +#: .././config.py:9758 msgid "Better" msgstr "" -#: .././config.py:9604 +#: .././config.py:9759 msgid "Determines an optimized palette for the video" msgstr "" -#: .././config.py:9605 +#: .././config.py:9760 msgid "Uses two passes and a temporary file for the palette" msgstr "" -#: .././config.py:9660 .././config.py:10308 +#: .././config.py:9815 .././config.py:10451 msgid "Split videos using their own timestamps" msgstr "" -#: .././config.py:9669 .././config.py:10319 +#: .././config.py:9824 .././config.py:10462 msgid "Split videos using these timestamps" msgstr "" -#: .././config.py:9703 .././config.py:9892 .././config.py:10355 -#: .././config.py:10566 .././config.py:12985 .././config.py:13163 +#: .././config.py:9858 .././config.py:10043 .././config.py:10498 +#: .././config.py:10705 .././config.py:13130 .././config.py:13303 msgid "Start" msgstr "" -#: .././config.py:9703 .././config.py:10355 .././config.py:12985 +#: .././config.py:9858 .././config.py:10498 .././config.py:13130 msgid "Clip title" msgstr "" -#: .././config.py:9778 .././config.py:10430 .././config.py:13049 +#: .././config.py:9929 .././config.py:10569 .././config.py:13190 msgid "Add timestamp" msgstr "" -#: .././config.py:9787 .././config.py:10439 .././config.py:13060 +#: .././config.py:9938 .././config.py:10578 .././config.py:13201 msgid "Delete timestamp" msgstr "" -#: .././config.py:9797 .././config.py:10449 .././config.py:13069 +#: .././config.py:9948 .././config.py:10588 .././config.py:13210 msgid "Clip preferences" msgstr "" -#: .././config.py:9849 .././config.py:10519 +#: .././config.py:10000 .././config.py:10658 msgid "Use the videos' own slice data" msgstr "" -#: .././config.py:9858 .././config.py:10530 +#: .././config.py:10009 .././config.py:10669 msgid "Use this slice data" msgstr "" -#: .././config.py:9892 .././config.py:9919 .././config.py:10566 -#: .././config.py:10593 .././config.py:13163 .././config.py:13182 +#: .././config.py:10043 .././config.py:10066 .././config.py:10705 +#: .././config.py:10728 .././config.py:13303 .././config.py:13322 msgid "Category" msgstr "" -#: .././config.py:9892 .././config.py:9939 .././config.py:10566 -#: .././config.py:10613 .././config.py:13163 .././config.py:13194 +#: .././config.py:10043 .././config.py:10086 .././config.py:10705 +#: .././config.py:10748 .././config.py:13303 .././config.py:13334 msgid "Action Type" msgstr "" -#: .././config.py:9986 .././config.py:10660 .././config.py:13237 +#: .././config.py:10130 .././config.py:10792 .././config.py:13373 msgid "Add slice" msgstr "" -#: .././config.py:9996 +#: .././config.py:10140 msgid "Delete sliuce" msgstr "" -#: .././config.py:10007 .././config.py:10682 .././config.py:13258 +#: .././config.py:10151 .././config.py:10814 .././config.py:13394 msgid "SponsorBlock settings" msgstr "" -#: .././config.py:10110 +#: .././config.py:10254 msgid "" "This merges a video and audio file with the same name into a single video " "file,\n" "using the extension specified in the File tab" msgstr "" -#: .././config.py:10151 +#: .././config.py:10295 msgid "The thumbnail's format can be changed in the File tab" msgstr "" -#: .././config.py:10166 +#: .././config.py:10310 msgid "_Optimisations" msgstr "" -#: .././config.py:10172 +#: .././config.py:10315 msgid "" "Optimise for fast seeking (shorter keyframe interval, about 10% larger file)" msgstr "" "Optimize for fast seeking (shorter keyframe interval, about 10% larger file)" -#: .././config.py:10180 +#: .././config.py:10323 msgid "Input video is a high-quality movie" msgstr "" -#: .././config.py:10186 +#: .././config.py:10329 msgid "Input video is an animated movie" msgstr "" -#: .././config.py:10192 +#: .././config.py:10335 msgid "Input video contains film grain" msgstr "" -#: .././config.py:10198 +#: .././config.py:10341 msgid "Input video is an image slideshow" msgstr "" -#: .././config.py:10204 +#: .././config.py:10347 msgid "Optimise for really weak CPU playback devices" msgstr "Optimize for really weak CPU playback devices" -#: .././config.py:10211 +#: .././config.py:10354 msgid "Optimise for really old devices (requires rate factor above 0)" msgstr "Optimize for really old devices (requires rate factor above 0)" -#: .././config.py:10222 +#: .././config.py:10365 msgid "" "Move headers to beginning of file (so it can play while still downloading)" msgstr "" -#: .././config.py:10230 +#: .././config.py:10373 msgid "Fast encoding and low latency streaming" msgstr "" -#: .././config.py:10236 +#: .././config.py:10379 msgid "Limit bitrate (Mbit/s)" msgstr "" -#: .././config.py:10253 +#: .././config.py:10396 msgid "Assuming a receiving buffer (seconds)" msgstr "" -#: .././config.py:10286 .././config.py:19714 +#: .././config.py:10429 .././config.py:20701 msgid "_Clips" msgstr "" -#: .././config.py:10298 +#: .././config.py:10441 msgid "Split the video(s) to create video clips" msgstr "" -#: .././config.py:10502 .././config.py:13130 .././config.py:19913 +#: .././config.py:10641 .././config.py:13271 .././config.py:20904 msgid "_Slices" msgstr "" -#: .././config.py:10509 +#: .././config.py:10648 msgid "Remove slices from the video(s)" msgstr "" -#: .././config.py:10670 .././config.py:13249 +#: .././config.py:10802 .././config.py:13385 msgid "Delete slice" msgstr "" -#: .././config.py:10777 +#: .././config.py:10924 msgid "List of videos to be processed" msgstr "" -#: .././config.py:10796 .././downloads.py:6532 .././media.py:88 +#: .././config.py:10943 .././downloads.py:6564 .././media.py:88 msgid "Video" msgstr "" -#: .././config.py:10839 +#: .././config.py:10986 msgid "Show video properties and timestamps" msgstr "" -#: .././config.py:10848 +#: .././config.py:10995 msgid "Remove video from list" msgstr "" -#: .././config.py:11771 +#: .././config.py:11920 msgid "" "Fewer FFmpeg options will be visible when you click the 'Apply' or 'Reset' " "buttons (or when you close and then re-open the window)" msgstr "" -#: .././config.py:11781 +#: .././config.py:11930 msgid "Show more FFmpeg options (when window re-opens)" msgstr "" -#: .././config.py:11798 +#: .././config.py:11947 msgid "" "More FFmpeg options will be visible when you click the 'Apply' or 'Reset' " "buttons (or when you close and then re-open the window)" msgstr "" -#: .././config.py:11808 +#: .././config.py:11957 msgid "Show fewer FFmpeg options (when window re-opens)" msgstr "" #. Add this tab... -#: .././config.py:12548 .././config.py:14018 .././config.py:14462 -#: .././config.py:15083 .././config.py:16105 +#: .././config.py:12703 .././config.py:14680 .././config.py:15119 +#: .././config.py:15733 .././config.py:16752 msgid "_General" msgstr "" -#: .././config.py:12551 .././config.py:14021 .././config.py:14465 -#: .././config.py:15088 +#: .././config.py:12706 .././config.py:14683 .././config.py:15122 +#: .././config.py:15737 msgid "General properties" msgstr "" -#: .././config.py:12605 +#: .././config.py:12756 msgid "Set the file (if this is the wrong one)" msgstr "" -#: .././config.py:12620 +#: .././config.py:12767 msgid "Video downloaded" msgstr "" -#: .././config.py:12627 +#: .././config.py:12774 msgid "Video unwatched" msgstr "" -#: .././config.py:12634 +#: .././config.py:12781 msgid "Video has been split from an original" msgstr "" -#: .././config.py:12641 +#: .././config.py:12788 msgid "Video is archived" msgstr "" -#: .././config.py:12648 +#: .././config.py:12795 msgid "Video is bookmarked" msgstr "" -#: .././config.py:12655 +#: .././config.py:12802 msgid "Video is favourite" msgstr "Video is favorite" -#: .././config.py:12662 +#: .././config.py:12809 msgid "Video is in waiting list" msgstr "" -#: .././config.py:12669 +#: .././config.py:12816 msgid "Always simulate download of this video" msgstr "" -#: .././config.py:12734 +#: .././config.py:12881 msgid "Receive time" msgstr "" -#: .././config.py:12768 +#: .././config.py:12915 msgid "_Live" msgstr "" -#: .././config.py:12774 +#: .././config.py:12920 msgid "Livestream properties" msgstr "" -#: .././config.py:12779 +#: .././config.py:12925 msgid "Livestream status" msgstr "" -#: .././config.py:12790 +#: .././config.py:12936 msgid "Waiting to start" msgstr "" -#: .././config.py:12792 +#: .././config.py:12938 msgid "Stream has started" msgstr "" -#: .././config.py:12794 +#: .././config.py:12940 msgid "Not a livestream" msgstr "" -#: .././config.py:12797 +#: .././config.py:12943 msgid "Livestream message" msgstr "" -#: .././config.py:12812 +#: .././config.py:12958 msgid "Video is pre-recorded" msgstr "" -#: .././config.py:12823 +#: .././config.py:12969 msgid "Livestream actions" msgstr "" -#: .././config.py:12830 +#: .././config.py:12976 msgid "When the livestream starts, show a desktop notification" msgstr "" -#: .././config.py:12839 +#: .././config.py:12985 msgid "When the livestream starts, play an alarm" msgstr "" -#: .././config.py:12849 +#: .././config.py:12995 msgid "When the livestream starts, open it in the system's web browser" msgstr "" -#: .././config.py:12861 +#: .././config.py:13007 msgid "When the livestream starts, begin downloading it immediately" msgstr "" -#: .././config.py:12872 .././config.py:20268 +#: .././config.py:13018 .././config.py:21149 msgid "When a livestream stops, download it (overwriting any earlier file)" msgstr "" -#: .././config.py:12888 +#: .././config.py:13034 msgid "_Description" msgstr "" -#: .././config.py:12893 +#: .././config.py:13039 msgid "Video description" msgstr "" -#: .././config.py:12906 +#: .././config.py:13052 msgid "Update from the description file, and set the line length to:" msgstr "" -#: .././config.py:12926 -msgid "Clear the description (does not modify the description file)" +#: .././config.py:13072 +msgid "Clear the description (does not modify the file)" msgstr "" -#: .././config.py:12953 +#: .././config.py:13099 msgid "_Timestamps" msgstr "" -#: .././config.py:12959 +#: .././config.py:13104 msgid "Timestamps" msgstr "" -#: .././config.py:12965 +#: .././config.py:13110 msgid "Timestamps can be used to download or create video clips" msgstr "" -#: .././config.py:13085 +#: .././config.py:13226 msgid "Reset list using video description" msgstr "" -#: .././config.py:13136 +#: .././config.py:13276 msgid "Video Slices" msgstr "" -#: .././config.py:13142 +#: .././config.py:13282 msgid "SponsorBlock provides a list of slices that can be removed from a video" msgstr "" -#: .././config.py:13322 .././config.py:14241 +#: .././config.py:13456 .././config.py:20995 +msgid "_Comments" +msgstr "" + +#: .././config.py:13461 +msgid "Comments" +msgstr "" + +#: .././config.py:13466 +msgid "Video comments can only be downloaded by yt-dlp" +msgstr "" + +#: .././config.py:13473 +msgid "Comments:" +msgstr "" + +#: .././config.py:13514 +msgid "Show comment timestamps" +msgstr "" + +#: .././config.py:13524 +msgid "Show comment times as text" +msgstr "" + +#: .././config.py:13549 +msgid "Show unformatted list" +msgstr "" + +#: .././config.py:13559 +msgid "Show formatted list" +msgstr "" + +#: .././config.py:13580 +msgid "Update from the metadata file" +msgstr "" + +#: .././config.py:13596 +msgid "Clear comments (does not modify the file)" +msgstr "" + +#: .././config.py:13622 +msgid "Author" +msgstr "" + +#: .././config.py:13622 +msgid "Comment" +msgstr "" + +#: .././config.py:13622 +msgid "Likes" +msgstr "" + +#: .././config.py:13623 +msgid "Uploader" +msgstr "" + +#: .././config.py:13908 .././config.py:14898 msgid "Errors / Warnings" msgstr "" -#: .././config.py:13328 +#: .././config.py:13914 msgid "Error messages produced the last time this video was checked/downloaded" msgstr "" -#: .././config.py:13344 +#: .././config.py:13930 msgid "" "Warning messages produced the last time this video was checked/downloaded" msgstr "" -#: .././config.py:13754 +#: .././config.py:14357 msgid "Select the correct video/audio file" msgstr "" -#: .././config.py:13780 +#: .././config.py:14383 msgid "" "The replacement video/audio file must be in the same channel, playlist or " "folder" msgstr "" -#: .././config.py:13798 +#: .././config.py:14401 msgid "You must select a valid video/audio file" msgstr "" -#: .././config.py:13895 +#: .././config.py:14557 msgid "Channel properties" msgstr "" -#: .././config.py:13898 +#: .././config.py:14560 msgid "Playlist properties" msgstr "" -#: .././config.py:14040 +#: .././config.py:14698 msgid "Don't add videos in this channel to Tartube's database" msgstr "" -#: .././config.py:14044 +#: .././config.py:14702 msgid "Don't add videos in this playlist to Tartube's database" msgstr "" -#: .././config.py:14055 +#: .././config.py:14713 msgid "Always simulate download of videos in this channel" msgstr "" -#: .././config.py:14057 +#: .././config.py:14715 msgid "Always simulate download of videos in this playlist" msgstr "" -#: .././config.py:14067 +#: .././config.py:14725 msgid "Disable checking/downloading for this channel" msgstr "" -#: .././config.py:14069 +#: .././config.py:14727 msgid "Disable checking/downloading for this playlist" msgstr "" -#: .././config.py:14079 +#: .././config.py:14737 msgid "This channel is marked as a favourite" msgstr "This channel is marked as a favorite" -#: .././config.py:14081 +#: .././config.py:14739 msgid "This playlist is marked as a favourite" msgstr "This playlist is marked as a favorite" -#: .././config.py:14091 +#: .././config.py:14749 msgid "Total videos" msgstr "" -#: .././config.py:14115 +#: .././config.py:14773 msgid "Favourite videos" msgstr "Favorite videos" -#: .././config.py:14127 +#: .././config.py:14785 msgid "Downloaded videos" msgstr "" -#: .././config.py:14149 .././config.py:14712 .././config.py:17649 +#: .././config.py:14807 .././config.py:15364 .././config.py:18386 msgid "_History" msgstr "" -#: .././config.py:14154 .././config.py:14717 .././config.py:17656 +#: .././config.py:14811 .././config.py:15368 .././config.py:18392 msgid "Download history" msgstr "" -#: .././config.py:14168 .././config.py:14731 .././config.py:17670 +#: .././config.py:14825 .././config.py:15382 .././config.py:18406 msgid "Draw" msgstr "" -#: .././config.py:14196 +#: .././config.py:14853 msgid "_RSS feed" msgstr "" -#: .././config.py:14199 +#: .././config.py:14856 msgid "RSS feed" msgstr "" -#: .././config.py:14205 +#: .././config.py:14862 msgid "" "If Tartube cannot detect the channel's RSS feed, you can enter the URL here" msgstr "" -#: .././config.py:14210 +#: .././config.py:14867 msgid "" "If Tartube cannot detect the playlist's RSS feed, you can enter the URL here" msgstr "" -#: .././config.py:14215 +#: .././config.py:14872 msgid "(The feed is used to detect livestreams on compatible websites)" msgstr "" -#: .././config.py:14247 +#: .././config.py:14904 msgid "" "Error messages produced the last time this channel was checked/downloaded" msgstr "" -#: .././config.py:14252 +#: .././config.py:14909 msgid "" "Error messages produced the last time this playlist was checked/downloaded" msgstr "" -#: .././config.py:14271 +#: .././config.py:14928 msgid "" "Warning messages produced the last time this channel was checked/downloaded" msgstr "" -#: .././config.py:14276 +#: .././config.py:14933 msgid "" "Warning messages produced the last time this playlist was checked/downloaded" msgstr "" -#: .././config.py:14343 +#: .././config.py:15000 msgid "Folder properties" msgstr "" -#: .././config.py:14482 +#: .././config.py:15135 msgid "Don't add videos to Tartube's database" msgstr "" -#: .././config.py:14489 +#: .././config.py:15142 msgid "Always simulate download of videos" msgstr "" -#: .././config.py:14496 +#: .././config.py:15149 msgid "Disable checking/downloading" msgstr "" -#: .././config.py:14503 +#: .././config.py:15156 msgid "This folder is marked as a favourite" msgstr "This folder is marked as a favorite" -#: .././config.py:14510 +#: .././config.py:15163 msgid "This folder is hidden" msgstr "" -#: .././config.py:14517 +#: .././config.py:15170 msgid "This folder can't be deleted by the user" msgstr "" -#: .././config.py:14524 +#: .././config.py:15177 msgid "This is a system-controlled folder" msgstr "" -#: .././config.py:14531 +#: .././config.py:15184 msgid "All contents deleted when Tartube shuts down" msgstr "" -#: .././config.py:14538 +#: .././config.py:15191 msgid "Restrictions:" msgstr "" -#: .././config.py:14549 +#: .././config.py:15202 msgid "Can only contain videos" msgstr "" -#: .././config.py:14551 +#: .././config.py:15204 msgid "Can contain folders and videos" msgstr "" -#: .././config.py:14553 +#: .././config.py:15206 msgid "Can contain anything" msgstr "" -#: .././config.py:14563 .././config.py:17478 +#: .././config.py:15216 .././config.py:18211 msgid "_Statistics" msgstr "" -#: .././config.py:14568 .././config.py:17485 +#: .././config.py:15220 .././config.py:18217 msgid "Statistics" msgstr "" -#: .././config.py:14589 .././config.py:17506 +#: .././config.py:15241 .././config.py:18238 msgid "Downloaded" msgstr "" -#: .././config.py:14633 +#: .././config.py:15285 msgid "Sub-folders" msgstr "" -#: .././config.py:14655 +#: .././config.py:15307 msgid "Recalculate" msgstr "" -#: .././config.py:14759 +#: .././config.py:15410 msgid "_Recent Videos" msgstr "" -#: .././config.py:14764 .././formats.py:923 +#: .././config.py:15414 .././formats.py:932 msgid "Recent Videos" msgstr "" -#: .././config.py:14770 +#: .././config.py:15420 msgid "" "When videos are checked/downloaded, older videos are removed from this folder" msgstr "" -#: .././config.py:14941 +#: .././config.py:15591 msgid "Scheduled download" msgstr "" -#: .././config.py:15093 .././config.py:18731 +#: .././config.py:15742 .././config.py:19510 msgid "Scheduled download name" msgstr "" -#: .././config.py:15105 +#: .././config.py:15754 msgid "Download mode" msgstr "" -#: .././config.py:15110 +#: .././config.py:15759 msgid "Check channels, playlist and folders" msgstr "" -#: .././config.py:15111 +#: .././config.py:15760 msgid "Download channels, playlists and folders" msgstr "" -#: .././config.py:15112 +#: .././config.py:15761 msgid "Perform a custom download" msgstr "" -#: .././config.py:15124 +#: .././config.py:15773 msgid "Custom download name" msgstr "" -#: .././config.py:15163 .././config.py:18697 +#: .././config.py:15812 .././config.py:19476 msgid "Start mode" msgstr "" -#: .././config.py:15168 +#: .././config.py:15817 msgid "Perform this download at regular intervals" msgstr "" -#: .././config.py:15169 +#: .././config.py:15818 msgid "Perform this download when Tartube starts" msgstr "" -#: .././config.py:15170 +#: .././config.py:15819 msgid "Disable this scheduled download" msgstr "" -#: .././config.py:15182 +#: .././config.py:15831 msgid "Time between scheduled downloads" msgstr "" -#: .././config.py:15235 +#: .././config.py:15884 msgid "If another scheduled download is running:" msgstr "" -#: .././config.py:15242 +#: .././config.py:15891 msgid "Add channels, playlists and folders to the end of the queue" msgstr "" -#: .././config.py:15248 +#: .././config.py:15897 msgid "Add channels, playlists and folders to the beginning of the queue" msgstr "" -#: .././config.py:15255 +#: .././config.py:15904 msgid "Do nothing, just wait until the next scheduled download time" msgstr "" -#: .././config.py:15270 +#: .././config.py:15919 msgid "This scheduled download takes priority over others" msgstr "" -#: .././config.py:15273 +#: .././config.py:15922 msgid "Other scheduled downloads won't start until this one is finished" msgstr "" -#: .././config.py:15282 +#: .././config.py:15931 msgid "" "Ignore time-saving preferences, and check/download the whole channel/" "playlist/folder" msgstr "" -#: .././config.py:15290 +#: .././config.py:15939 msgid "Shut down Tartube when this scheduled download has finished" msgstr "" -#: .././config.py:15308 +#: .././config.py:15956 msgid "Media to download" msgstr "" -#: .././config.py:15314 +#: .././config.py:15962 msgid "Check/download everything" msgstr "" -#: .././config.py:15322 +#: .././config.py:15970 msgid "Only check/download the media below" msgstr "" -#: .././config.py:15336 +#: .././config.py:15984 msgid "" "Hint: you can drag and drop channels, playlists and your own folders here" msgstr "" -#: .././config.py:15442 .././config.py:19018 +#: .././config.py:16090 .././config.py:19807 msgid "_Limits" msgstr "" -#: .././config.py:15447 .././config.py:19026 +#: .././config.py:16094 .././config.py:19814 msgid "Performance limits" msgstr "" -#: .././config.py:15452 .././config.py:19031 +#: .././config.py:16099 .././config.py:19819 msgid "Limits are applied when you start downloading a video/channel/playlist" msgstr "" -#: .././config.py:15458 +#: .././config.py:16105 msgid "" "These limits override the default and alternative limits specified elsewhere" msgstr "" -#: .././config.py:15464 .././config.py:19037 .././config.py:19108 +#: .././config.py:16111 .././config.py:19825 .././config.py:19896 msgid "Limit simultaneous downloads to" msgstr "" -#: .././config.py:15479 .././config.py:19055 .././config.py:19130 +#: .././config.py:16126 .././config.py:19843 .././config.py:19918 msgid "Limit download speed to" msgstr "" -#: .././config.py:15814 +#: .././config.py:16461 msgid "System preferences" msgstr "" -#: .././config.py:16124 +#: .././config.py:16776 msgid "_Language" msgstr "" -#: .././config.py:16129 +#: .././config.py:16781 msgid "Language preferences" msgstr "" -#: .././config.py:16134 +#: .././config.py:16786 msgid "Language" msgstr "" -#: .././config.py:16170 +#: .././config.py:16827 msgid "_Stability" msgstr "" -#: .././config.py:16180 +#: .././config.py:16837 msgid "Gtk library" msgstr "" -#: .././config.py:16185 +#: .././config.py:16842 msgid "Current version of the system's Gtk library" msgstr "" -#: .././config.py:16200 +#: .././config.py:16857 msgid "Gtk stability" msgstr "" -#: .././config.py:16216 +#: .././config.py:16873 msgid "" "Tartube uses the Gtk graphics library. This library is notoriously " "unreliable and may even causes crashes." msgstr "" -#: .././config.py:16223 +#: .././config.py:16880 msgid "" "By default, some cosmetic features are disabled (for example, in the Videos " "tab, the list of videos is not updated until the end of a download " "operation)." msgstr "" -#: .././config.py:16231 +#: .././config.py:16888 msgid "" "If you think that your system Gtk has been fixed (or if you want to test Gtk " "stability), you can re-enable the cosmetic features." msgstr "" -#: .././config.py:16241 +#: .././config.py:16898 msgid "Disable some cosmetic features to prevent crashes and other issues" msgstr "" -#: .././config.py:16259 +#: .././config.py:16921 msgid "_Modules" msgstr "" -#: .././config.py:16264 +#: .././config.py:16926 msgid "Module availability" msgstr "" -#: .././config.py:16270 +#: .././config.py:16932 msgid "feedparser module is available (required for detecting livestreams)" msgstr "" -#: .././config.py:16279 +#: .././config.py:16941 msgid "matplotlib module is available (draws graphs)" msgstr "" -#: .././config.py:16287 +#: .././config.py:16949 msgid "moviepy module is available (finds the length of videos, if unknown)" msgstr "" -#: .././config.py:16297 +#: .././config.py:16959 msgid "playsound module is available (sound an alarm when a livestream starts)" msgstr "" -#: .././config.py:16307 +#: .././config.py:16969 msgid "" "XDG module is available (saves the config file in the standard location)" msgstr "" -#: .././config.py:16317 +#: .././config.py:16979 msgid "" "Notify module is available (shows desktop notifications; Linux/*BSD only)" msgstr "" -#: .././config.py:16327 +#: .././config.py:16989 msgid "Module preferences" msgstr "" -#: .././config.py:16333 +#: .././config.py:16995 msgid "" "Use 'moviepy' module to get a video's duration, if not known (may be slow)" msgstr "" -#: .././config.py:16345 +#: .././config.py:17007 msgid "Timeout applied when moviepy checks a video file" msgstr "" -#: .././config.py:16370 +#: .././config.py:17037 msgid "_Debugging" msgstr "" -#: .././config.py:16378 +#: .././config.py:17044 msgid "Debugging preferences" msgstr "" -#: .././config.py:16384 +#: .././config.py:17050 msgid "" "Debug messages are only visible in the terminal window (these settings are " "not saved)" msgstr "" -#: .././config.py:16391 +#: .././config.py:17057 msgid "Enable application debug messages (code in mainapp.py)" msgstr "" -#: .././config.py:16400 .././config.py:16420 +#: .././config.py:17066 .././config.py:17086 msgid "...but don't show timer debug messages" msgstr "" -#: .././config.py:16411 +#: .././config.py:17077 msgid "Enable main winddow debug messages (code in mainwin.py)" msgstr "" -#: .././config.py:16431 +#: .././config.py:17097 msgid "Enabled downloader debug messages (code in downloads.py)" msgstr "" -#: .././config.py:16474 +#: .././config.py:17140 msgid "" "Debugging messages are also visible if an empty file called debug.txt exists " "here:" msgstr "" -#: .././config.py:16522 +#: .././config.py:17193 msgid "_Device" msgstr "" -#: .././config.py:16527 +#: .././config.py:17198 msgid "Device preferences" msgstr "" -#: .././config.py:16532 +#: .././config.py:17203 msgid "Size of device (in Mb)" msgstr "" -#: .././config.py:16544 +#: .././config.py:17215 msgid "Free space on device (in Mb)" msgstr "" -#: .././config.py:16556 +#: .././config.py:17227 msgid "Warn user if disk space is less than" msgstr "" -#: .././config.py:16574 +#: .././config.py:17245 msgid "Halt downloads if disk space is less than" msgstr "" -#: .././config.py:16619 +#: .././config.py:17295 msgid "_Config" msgstr "" -#: .././config.py:16623 +#: .././config.py:17299 msgid "Configuration preferences" msgstr "" -#: .././config.py:16628 +#: .././config.py:17304 msgid "Tartube configuration file loaded from" msgstr "" -#: .././config.py:16640 +#: .././config.py:17316 msgid "Default location for Tartube configuration" msgstr "" -#: .././config.py:16652 +#: .././config.py:17328 msgid "Alternative location for Tartube configuration" msgstr "" -#: .././config.py:16671 +#: .././config.py:17352 msgid "D_atabase" msgstr "" -#: .././config.py:16677 +#: .././config.py:17357 msgid "Database preferences" msgstr "" -#: .././config.py:16682 +#: .././config.py:17362 msgid "Tartube data folder" msgstr "" -#: .././config.py:16694 +#: .././config.py:17374 msgid "Add new database" msgstr "" -#: .././config.py:16696 +#: .././config.py:17376 msgid "Change to a different data folder" msgstr "" -#: .././config.py:16703 +#: .././config.py:17383 msgid "Check and repair database" msgstr "" -#: .././config.py:16706 +#: .././config.py:17386 msgid "Check for inconsistencies, and repair them" msgstr "" -#: .././config.py:16711 +#: .././config.py:17391 msgid "Recent data folders" msgstr "" -#: .././config.py:16725 +#: .././config.py:17405 msgid "Switch to the selected data folder" msgstr "" -#: .././config.py:16735 +#: .././config.py:17415 msgid "Forget" msgstr "" -#: .././config.py:16738 +#: .././config.py:17418 msgid "Remove the selected data folder from the list" msgstr "" -#: .././config.py:16747 +#: .././config.py:17427 msgid "Forget all" msgstr "" -#: .././config.py:16750 +#: .././config.py:17430 msgid "Forget every folder in this list (except the current one)" msgstr "" -#: .././config.py:16763 +#: .././config.py:17443 msgid "Move the selected folder up the list" msgstr "" -#: .././config.py:16771 +#: .././config.py:17451 msgid "Move the selected folder down the list" msgstr "" -#: .././config.py:16799 +#: .././config.py:17478 msgid "" "On startup, load the first database on the list (not the most recently-use " "one)" msgstr "" -#: .././config.py:16809 +#: .././config.py:17488 msgid "If one database is in use, try to load others" msgstr "" -#: .././config.py:16817 +#: .././config.py:17496 msgid "Add new data directories to this list" msgstr "" -#: .././config.py:16856 +#: .././config.py:17540 msgid "_Backups" msgstr "" -#: .././config.py:16862 +#: .././config.py:17545 msgid "Backup preferences" msgstr "" -#: .././config.py:16867 +#: .././config.py:17550 msgid "" "When saving a database file, Tartube makes a backup copy of it (in case " "something goes wrong)" msgstr "" -#: .././config.py:16876 +#: .././config.py:17559 msgid "Delete the backup file as soon as the save procedure is finished" msgstr "" -#: .././config.py:16886 +#: .././config.py:17569 msgid "Keep the backup file, replacing any previous backup file" msgstr "" -#: .././config.py:16897 +#: .././config.py:17580 msgid "" "Make a new backup file once per day, after the day's first save procedure" msgstr "" -#: .././config.py:16908 +#: .././config.py:17591 msgid "Make a new backup file for every save procedure" msgstr "" -#: .././config.py:16942 +#: .././config.py:17625 msgid "Export preferences" msgstr "" -#: .././config.py:16947 +#: .././config.py:17630 msgid "Separator used in CSV exports" msgstr "" -#: .././config.py:16985 +#: .././config.py:17672 msgid "Automatic video deletion preferences" msgstr "" -#: .././config.py:16990 +#: .././config.py:17677 msgid "Automatically delete downloaded videos after this many days" msgstr "" -#: .././config.py:17004 +#: .././config.py:17691 msgid "...but only delete videos which have been watched" msgstr "" -#: .././config.py:17028 +#: .././config.py:17715 msgid "Video matching preferences" msgstr "" -#: .././config.py:17033 +#: .././config.py:17720 msgid "When matching videos on the filesystem:" msgstr "" -#: .././config.py:17039 +#: .././config.py:17726 msgid "The video names must match exactly" msgstr "" -#: .././config.py:17046 +#: .././config.py:17733 msgid "The first # characters must match exactly" msgstr "" -#: .././config.py:17060 +#: .././config.py:17747 msgid "Ignore the last # characters; the remaining name must match exactly" msgstr "" -#: .././config.py:17114 +#: .././config.py:17805 msgid "Update video descriptions" msgstr "" -#: .././config.py:17121 +#: .././config.py:17812 msgid "These procedures might take a long time on a large database" msgstr "" -#: .././config.py:17128 +#: .././config.py:17819 msgid "Update from description files, and set the line lengths to:" msgstr "" -#: .././config.py:17147 +#: .././config.py:17838 msgid "Clear descriptions (does not modify the description files)" msgstr "" -#: .././config.py:17171 +#: .././config.py:17861 msgid "Video timestamps" msgstr "" -#: .././config.py:17175 +#: .././config.py:17865 msgid "Extract timestamps for all videos" msgstr "" -#: .././config.py:17183 +#: .././config.py:17873 msgid "Remove timestamps from all videos" msgstr "" -#: .././config.py:17200 +#: .././config.py:17883 +msgid "Video comments" +msgstr "" + +#: .././config.py:17887 +msgid "Extract comments for all videos" +msgstr "" + +#: .././config.py:17895 +msgid "Remove comments from all videos" +msgstr "" + +#: .././config.py:17905 +msgid "" +"Comments are extracted from each video's metadata file, so this procedure " +"may take a long time" +msgstr "" + +#: .././config.py:17925 msgid "_URLs" msgstr "" -#: .././config.py:17208 +#: .././config.py:17932 msgid "Update channel/playlist URLs" msgstr "" -#: .././config.py:17213 +#: .././config.py:17937 msgid "Confirm every change" msgstr "" -#: .././config.py:17292 +#: .././config.py:18016 msgid "Pattern" msgstr "" -#: .././config.py:17315 +#: .././config.py:18039 msgid "Substitution" msgstr "" -#: .././config.py:17331 +#: .././config.py:18054 msgid "Search and replace text in the selected URLs" msgstr "" -#: .././config.py:17430 +#: .././config.py:18158 msgid "Temporary folder preferences" msgstr "" -#: .././config.py:17435 +#: .././config.py:18163 msgid "Empty temporary folders when Tartube shuts down" msgstr "" -#: .././config.py:17444 +#: .././config.py:18172 msgid "(N.B. Temporary folders are always emptied when Tartube starts up)" msgstr "" -#: .././config.py:17452 +#: .././config.py:18180 msgid "Open temporary folders (on the desktop) when Tartube shuts down" msgstr "" -#: .././config.py:17490 +#: .././config.py:18222 msgid "The Tartube database contains:" msgstr "" -#: .././config.py:17550 +#: .././config.py:18282 msgid "Custom folders" msgstr "" -#: .././config.py:17573 +#: .././config.py:18305 msgid "Calculate" msgstr "" #. Add this tab... -#: .././config.py:17699 +#: .././config.py:18435 msgid "_Windows" msgstr "" -#: .././config.py:17723 +#: .././config.py:18464 msgid "_Main window" msgstr "" -#: .././config.py:17731 +#: .././config.py:18471 msgid "Main window preferences" msgstr "" -#: .././config.py:17736 -msgid "Remember the size of the main window when shutting down" +#: .././config.py:18476 +msgid "Remember size of the main window" msgstr "" -#. (Signal connect appears below) -#: .././config.py:17743 -msgid "Reset size" +#: .././config.py:18484 +msgid "Remember slider positions" msgstr "" -#: .././config.py:17752 -msgid "Also remember the position of main window sliders" +#: .././config.py:18493 +msgid "Reset both" msgstr "" -#: .././config.py:17769 +#: .././config.py:18509 msgid "Don't show the main window toolbar" msgstr "" -#: .././config.py:17777 +#: .././config.py:18517 msgid "Don't show labels in the main window toolbar" msgstr "" -#: .././config.py:17795 +#: .././config.py:18535 msgid "" "Replace stock icons with custom icons (in case stock icons are not visible)" msgstr "" -#: .././config.py:17805 +#: .././config.py:18545 msgid "Show tooltips for videos, channels, playlists and folders" msgstr "" -#: .././config.py:17813 +#: .././config.py:18553 msgid "Show errors/warnings in tooltips (but not in the Videos tab)" msgstr "" -#: .././config.py:17831 +#: .././config.py:18571 msgid "Disable the download buttons in the toolbar and the Videos tab" msgstr "" -#: .././config.py:17841 +#: .././config.py:18581 msgid "Show a 'Custom download all' button in the Videos tab" msgstr "" -#: .././config.py:17851 -msgid "In the Progress tab, hide finished videos / channels / playlists" +#: .././config.py:18591 +msgid "In the Progress tab, hide finished downloads" msgstr "" -#: .././config.py:17860 -msgid "In the Progress tab, show results in reverse order" +#: .././config.py:18600 +msgid "Show downloads in reverse order" msgstr "" -#: .././config.py:17868 +#: .././config.py:18608 msgid "When Tartube starts, automatically open the Classic Mode tab" msgstr "" -#: .././config.py:17882 +#: .././config.py:18622 msgid "" "In the Classic Mode tab, when adding URLs, remove duplicates rather than " "retaining them" msgstr "" -#: .././config.py:17896 +#: .././config.py:18636 msgid "In the Errors/Warnings tab, don't reset the tab text when it is clicked" msgstr "" -#: .././config.py:17919 +#: .././config.py:18663 msgid "Video Index (left side of the Videos tab)" msgstr "" -#: .././config.py:17925 +#: .././config.py:18669 msgid "Show smaller icons in the Video Index" msgstr "" -#: .././config.py:17935 +#: .././config.py:18679 msgid "" "In the Video Index, show detailed statistics about the videos in each " "channel / playlist / folder" msgstr "" -#: .././config.py:17946 +#: .././config.py:18690 msgid "" "After clicking on a folder, automatically expand/collapse the tree around it" msgstr "" -#: .././config.py:17957 +#: .././config.py:18701 msgid "Expand the whole tree, not just the level beneath the clicked folder" msgstr "" -#: .././config.py:17978 +#: .././config.py:18722 msgid "Video Catalogue (right side of the Videos tab)" msgstr "" -#: .././config.py:17985 +#: .././config.py:18729 msgid "Show 'today' and 'yesterday' as the date, when possible" msgstr "" -#: .././config.py:17995 +#: .././config.py:18739 msgid "Draw a frame around each video" msgstr "" -#: .././config.py:18005 +#: .././config.py:18749 msgid "Draw status icons for each video" msgstr "" -#: .././config.py:18014 +#: .././config.py:18762 msgid "Thumbnail size (when videos are displayed on a grid)" msgstr "" -#: .././config.py:18042 +#: .././config.py:18790 msgid "Show livestreams with a different background colour" msgstr "Show livestreams with a different background color" -#: .././config.py:18050 +#: .././config.py:18798 msgid "Use same background colours for livestream and debut videos" msgstr "Use same background colors for livestream and debut videos" -#: .././config.py:18072 +#: .././config.py:18820 msgid "Channel and playlist names are clickable (grid mode only)" msgstr "" -#: .././config.py:18088 +#: .././config.py:18841 msgid "_Drag" msgstr "" -#: .././config.py:18092 +#: .././config.py:18845 msgid "Drag and drop preferences" msgstr "" -#: .././config.py:18098 +#: .././config.py:18851 msgid "When dragging and dropping videos to an external application..." msgstr "" -#: .././config.py:18104 +#: .././config.py:18857 msgid "Transfer the video's full file path" msgstr "" -#: .././config.py:18112 +#: .././config.py:18865 msgid "Transfer the video's source URL" msgstr "" -#: .././config.py:18120 +#: .././config.py:18873 msgid "Transfer the video's name" msgstr "" -#: .././config.py:18128 +#: .././config.py:18881 msgid "Transfer the thumbnail's full file path" msgstr "" -#: .././config.py:18144 +#: .././config.py:18902 msgid "_Tray" msgstr "" -#: .././config.py:18150 +#: .././config.py:18908 msgid "System tray preferences" msgstr "" -#: .././config.py:18155 +#: .././config.py:18913 msgid "Show icon in system tray" msgstr "" -#: .././config.py:18164 +#: .././config.py:18922 msgid "Close to the tray, rather than closing the application" msgstr "" -#: .././config.py:18176 +#: .././config.py:18934 msgid "" "After closing to the tray, restore the window's position (does not work on " "Wayland)" msgstr "" -#: .././config.py:18212 +#: .././config.py:18975 msgid "D_ialogues" msgstr "" -#: .././config.py:18218 +#: .././config.py:18981 msgid "Dialogue window preferences" msgstr "" -#: .././config.py:18223 +#: .././config.py:18986 msgid "When adding channels/playlists, keep the dialogue window open" msgstr "" -#: .././config.py:18233 +#: .././config.py:18996 msgid "When the dialogue window opens, add URLs from the system clipboard" msgstr "" -#: .././config.py:18254 +#: .././config.py:19017 msgid "When adding YouTube channels, remind the user to copy the correct URL" msgstr "" -#: .././config.py:18273 +#: .././config.py:19041 msgid "_Colours" msgstr "" -#: .././config.py:18281 +#: .././config.py:19048 msgid "Video Catalogue Colour preferences" msgstr "" -#: .././config.py:18289 +#: .././config.py:19056 msgid "Waiting livestreams" msgstr "" -#: .././config.py:18295 +#: .././config.py:19062 msgid "Broadcasting livestreams" msgstr "" -#: .././config.py:18301 +#: .././config.py:19068 msgid "Waiting debut videos" msgstr "" -#: .././config.py:18307 +#: .././config.py:19074 msgid "Broadcasting debut videos" msgstr "" -#: .././config.py:18313 +#: .././config.py:19080 msgid "Selected videos" msgstr "" -#: .././config.py:18319 +#: .././config.py:19086 msgid "Selected waiting videos" msgstr "" -#: .././config.py:18325 +#: .././config.py:19092 msgid "Selected broadcasting videos" msgstr "" -#: .././config.py:18356 +#: .././config.py:19123 msgid "Custom colour:" msgstr "" -#: .././config.py:18379 +#: .././config.py:19146 msgid "Default colour:" msgstr "" -#: .././config.py:18411 +#: .././config.py:19183 msgid "_Errors/Warnings" msgstr "" -#: .././config.py:18419 +#: .././config.py:19190 msgid "Errors/Warnings tab preferences" msgstr "" -#: .././config.py:18424 +#: .././config.py:19195 msgid "Show Tartube error messages" msgstr "" -#: .././config.py:18432 +#: .././config.py:19203 msgid "Show Tartube warning messages" msgstr "" -#: .././config.py:18440 +#: .././config.py:19211 msgid "Show server error messages" msgstr "" -#: .././config.py:18451 +#: .././config.py:19222 msgid "Show server warning messages" msgstr "" -#: .././config.py:18462 +#: .././config.py:19233 msgid "Show dates of all messages" msgstr "" -#: .././config.py:18474 +#: .././config.py:19245 msgid "Downloader error/warning preferences" msgstr "" -#: .././config.py:18479 +#: .././config.py:19250 msgid "TRANSLATOR'S NOTE: These error messages are always in English" msgstr "" -#: .././config.py:18483 +#: .././config.py:19254 msgid "Ignore 'Child process exited with non-zero code' errors" msgstr "" -#: .././config.py:18492 +#: .././config.py:19263 msgid "" "Ignore 'Unable to download video data' and 'Unable to extract video data' " "errors" msgstr "" -#: .././config.py:18502 +#: .././config.py:19273 msgid "Ignore 'Did not get any data blocks' errors" msgstr "" -#: .././config.py:18511 +#: .././config.py:19282 msgid "Ignore 'Requested formats are incompatible for merge' warnings" msgstr "" -#: .././config.py:18520 +#: .././config.py:19291 msgid "Ignore 'No video formats found' errors" msgstr "" -#: .././config.py:18528 +#: .././config.py:19299 msgid "Ignore 'There are no annotations to write' warnings" msgstr "" -#: .././config.py:18536 +#: .././config.py:19307 msgid "Ignore 'Video doesn't have subtitles' warnings" msgstr "" -#: .././config.py:18552 +#: .././config.py:19328 msgid "_Websites" msgstr "" -#: .././config.py:18560 +#: .././config.py:19335 msgid "YouTube error/warning preferences" msgstr "" -#: .././config.py:18565 +#: .././config.py:19340 msgid "Ignore YouTube copyright errors" msgstr "" -#: .././config.py:18573 +#: .././config.py:19348 msgid "Ignore YouTube age-restriction errors" msgstr "" -#: .././config.py:18581 +#: .././config.py:19356 msgid "Ignore YouTube deletion by uploader errors" msgstr "" -#: .././config.py:18589 +#: .././config.py:19364 msgid "Ignore YouTube payment errors" msgstr "" -#: .././config.py:18598 +#: .././config.py:19373 msgid "General preferences" msgstr "" -#: .././config.py:18604 +#: .././config.py:19379 msgid "" "Ignore any errors/warnings which match lines in this list (applies to all " "websites)" msgstr "" -#: .././config.py:18618 +#: .././config.py:19393 msgid "These are ordinary strings" msgstr "" -#: .././config.py:18625 +#: .././config.py:19400 msgid "These are regular expressions (regexes)" msgstr "" #. Add this tab... -#: .././config.py:18654 +#: .././config.py:19429 msgid "_Scheduling" msgstr "" -#: .././config.py:18671 +#: .././config.py:19451 msgid "_Start" msgstr "" -#: .././config.py:18677 +#: .././config.py:19456 msgid "Scheduled download preferences" msgstr "" -#: .././config.py:18698 +#: .././config.py:19477 msgid "Priority" msgstr "" -#: .././config.py:18698 +#: .././config.py:19477 msgid "Whole" msgstr "" -#: .././config.py:18698 +#: .././config.py:19477 msgid "Shutdown" msgstr "" -#: .././config.py:18698 +#: .././config.py:19477 msgid "D/L All" msgstr "" -#: .././config.py:18699 +#: .././config.py:19478 msgid "Join mode" msgstr "" -#: .././config.py:18753 .././config.py:19589 .././config.py:21226 -#: .././config.py:21491 +#: .././config.py:19532 .././config.py:20388 .././config.py:22142 +#: .././config.py:22415 msgid "Edit" msgstr "" -#: .././config.py:18825 .././formats.py:1006 +#: .././config.py:19604 .././formats.py:1015 msgid "Custom" msgstr "" -#: .././config.py:18847 +#: .././config.py:19631 msgid "S_top" msgstr "" -#: .././config.py:18853 +#: .././config.py:19636 msgid "Scheduled stop preferences" msgstr "" -#: .././config.py:18858 +#: .././config.py:19641 msgid "Stop all download operations after this much time" msgstr "" -#: .././config.py:18906 +#: .././config.py:19689 msgid "Stop all download operations after this many videos" msgstr "" -#: .././config.py:18933 +#: .././config.py:19716 msgid "Stop all download operations after this much disk space" msgstr "" -#: .././config.py:18976 +#: .././config.py:19759 msgid "" "N.B. Disk space is estimated. This setting does not apply to simulated " "downloads" msgstr "" -#: .././config.py:19081 +#: .././config.py:19869 msgid "Overriding video format options, limit video resolution to" msgstr "" -#: .././config.py:19103 +#: .././config.py:19891 msgid "Alternative performance limits" msgstr "" -#: .././config.py:19162 +#: .././config.py:19949 msgid "Alternative limits apply between" msgstr "" -#: .././config.py:19202 +#: .././config.py:19989 msgid "and" msgstr "" -#: .././config.py:19230 +#: .././config.py:20017 msgid "On days" msgstr "" -#: .././config.py:19258 +#: .././config.py:20050 msgid "_Stop" msgstr "" -#: .././config.py:19266 +#: .././config.py:20057 msgid "Time-saving settings" msgstr "" -#: .././config.py:19272 +#: .././config.py:20063 msgid "" "Stop checking/downloading a channel/playlist when it starts sending videos " "you already have" msgstr "" -#: .././config.py:19283 +#: .././config.py:20074 msgid "Stop after this many videos (when checking)" msgstr "" -#: .././config.py:19298 +#: .././config.py:20089 msgid "Stop after this many videos (when downloading)" msgstr "" -#: .././config.py:19337 +#: .././config.py:20132 msgid "Download operation preferences" msgstr "" -#: .././config.py:19343 +#: .././config.py:20138 msgid "Automatically update downloader before every download operation" msgstr "" -#: .././config.py:19355 +#: .././config.py:20150 msgid "Automatically save files at the end of all operations" msgstr "" -#: .././config.py:19365 +#: .././config.py:20160 msgid "For simulated downloads, don't check a video in a folder more than once" msgstr "" -#: .././config.py:19376 +#: .././config.py:20171 msgid "If a download stalls, restart it after this many minutes" msgstr "" -#: .././config.py:19397 +#: .././config.py:20192 msgid "If a network problem is detected, restart the download immediately" msgstr "" -#: .././config.py:19409 +#: .././config.py:20204 msgid "Maximum restarts after a stalled download (0 for no maximum)" msgstr "" -#: .././config.py:19450 +#: .././config.py:20245 msgid "" "Allow downloader to create its own archive file (so deleted videos are not " "re-downloaded)" msgstr "" -#: .././config.py:19461 +#: .././config.py:20256 msgid "" "Also create an archive file when downloading from the Classic Mode tab (not " "recommended)" msgstr "" -#: .././config.py:19472 +#: .././config.py:20267 msgid "When checking videos, apply a 60-second timeout" msgstr "" -#: .././config.py:19482 +#: .././config.py:20277 msgid "" "Convert .webp thumbnails into .jpg thumbnails (using FFmpeg) after " "downloading them" msgstr "" -#: .././config.py:19499 +#: .././config.py:20299 msgid "_Custom" msgstr "" -#: .././config.py:19504 +#: .././config.py:20304 msgid "Custom downloads" msgstr "" -#: .././config.py:19525 .././config.py:21160 +#: .././config.py:20325 .././config.py:22077 msgid "Classic Mode" msgstr "" -#: .././config.py:19598 .././config.py:21235 .././config.py:21500 +#: .././config.py:20397 .././config.py:22151 .././config.py:22424 msgid "Export" msgstr "" -#: .././config.py:19607 .././config.py:21244 .././config.py:21509 +#: .././config.py:20406 .././config.py:22160 .././config.py:22433 msgid "Clone" msgstr "" -#: .././config.py:19616 .././config.py:21253 +#: .././config.py:20415 .././config.py:22169 msgid "Use in Classic Mode tab" msgstr "" -#: .././config.py:19722 +#: .././config.py:20518 +msgid "L_ivestreams" +msgstr "" + +#: .././config.py:20526 +msgid "Livestream preferences (compatible websites only)" +msgstr "" + +#: .././config.py:20532 +msgid "Detect livestreams announced within this many days" +msgstr "" + +#: .././config.py:20547 +msgid "How often to check the status of livestreams (in minutes)" +msgstr "" + +#: .././config.py:20566 +msgid "Check more frequently when a livestream is due to start" +msgstr "" + +#: .././config.py:20609 +msgid "Broadcast preferences (compatible websites only)" +msgstr "" + +#: .././config.py:20616 +msgid "" +"Use Youtube Stream Capture to download broadcasting livestreams (requires " +"aria2)" +msgstr "" + +#: .././config.py:20626 +msgid "Timeout after this many minutes of inactivity" +msgstr "" + +#: .././config.py:20640 +msgid "Number of restarts after a timeout" +msgstr "" + +#: .././config.py:20655 +msgid "" +"Bypass usual limits on simultaneous downloads, so that all broadcasts can be " +"downloaded" +msgstr "" + +#: .././config.py:20708 msgid "Video Clips (requires FFmpeg)" msgstr "" -#: .././config.py:19728 +#: .././config.py:20714 msgid "" "When a video is checked/downloaded, automatically extract timestamps from " "its metadata file" msgstr "" -#: .././config.py:19739 +#: .././config.py:20725 msgid "" "When a video is checked/downloaded, automatically extract timestamps from " "its description" msgstr "" -#: .././config.py:19749 +#: .././config.py:20735 msgid "If timestamps have already been extracted, replace them" msgstr "" -#: .././config.py:19761 +#: .././config.py:20747 msgid "" "If no timestamps have been extracted, try again before splitting a video" msgstr "" -#: .././config.py:19774 +#: .././config.py:20760 msgid "Format of video clip filenames" msgstr "" -#: .././config.py:19779 +#: .././config.py:20765 msgid "Number" msgstr "" -#: .././config.py:19780 +#: .././config.py:20766 msgid "Clip Title" msgstr "" -#: .././config.py:19781 +#: .././config.py:20767 msgid "Number + Clip Title" msgstr "" -#: .././config.py:19782 +#: .././config.py:20768 msgid "Clip Title + Number" msgstr "" -#: .././config.py:19783 +#: .././config.py:20769 msgid "Original Title" msgstr "" -#: .././config.py:19784 +#: .././config.py:20770 msgid "Original Title + Number" msgstr "" -#: .././config.py:19785 +#: .././config.py:20771 msgid "Original Title + Clip Title" msgstr "" -#: .././config.py:19786 +#: .././config.py:20772 msgid "Original Title + Number + Clip Title" msgstr "" -#: .././config.py:19787 +#: .././config.py:20773 msgid "Original Title + Clip Title + Number" msgstr "" -#: .././config.py:19814 +#: .././config.py:20800 msgid "Generic title for video clips" msgstr "" -#: .././config.py:19831 +#: .././config.py:20817 msgid "Move clips to the Video Clips folder" msgstr "" -#: .././config.py:19838 +#: .././config.py:20824 msgid "Keep clips with their original video" msgstr "" -#: .././config.py:19851 +#: .././config.py:20837 msgid "...but place new files inside a sub-directory" msgstr "" -#: .././config.py:19862 +#: .././config.py:20848 msgid "Add new files to Tartube's database" msgstr "" -#: .././config.py:19873 +#: .././config.py:20859 msgid "Use the original video's thumbnail" msgstr "" -#: .././config.py:19881 +#: .././config.py:20867 msgid "After splitting a video, open the destination folder" msgstr "" -#: .././config.py:19883 +#: .././config.py:20869 msgid "After splitting a video, open the destination directory" msgstr "" -#: .././config.py:19895 +#: .././config.py:20881 msgid "" "After splitting a video, delete the original (ignored for videos in channels/" "playlists)" msgstr "" -#: .././config.py:19921 +#: .././config.py:20911 msgid "Video Slices (requires FFmpeg)" msgstr "" -#: .././config.py:19927 +#: .././config.py:20917 msgid "" "While checking/downloading videos, check each video against the SponsorBlock " "server" msgstr "" -#: .././config.py:19938 +#: .././config.py:20928 msgid "When contacting the server, obfuscate each video's ID (recommended)" msgstr "" -#: .././config.py:19952 +#: .././config.py:20942 msgid "If slices have already been extracted, replace the old list" msgstr "" -#: .././config.py:19965 +#: .././config.py:20955 msgid "" "If slices have been extracted, contact the server again before removing more " "slices from the video" msgstr "" -#: .././config.py:19979 +#: .././config.py:20969 msgid "" "After removing slices from a video, reset all timestamp and slice data " "(recommended)" msgstr "" -#: .././config.py:20000 -msgid "L_ivestreams" +#: .././config.py:21002 +msgid "Video Comments (requires yt-dlp)" msgstr "" -#: .././config.py:20009 -msgid "Livestream preferences (compatible websites only)" +#: .././config.py:21008 +msgid "When checking/downloading videos, store comments in the metadata file" msgstr "" -#: .././config.py:20015 -msgid "Detect livestreams announced within this many days" -msgstr "" - -#: .././config.py:20030 -msgid "How often to check the status of livestreams (in minutes)" -msgstr "" - -#: .././config.py:20049 -msgid "Check more frequently when a livestream is due to start" -msgstr "" - -#: .././config.py:20092 -msgid "Broadcast preferences (compatible websites only)" -msgstr "" - -#: .././config.py:20099 +#: .././config.py:21018 msgid "" -"Use Youtube Stream Capture to download broadcasting livestreams (requires " -"aria2)" -msgstr "" - -#: .././config.py:20109 -msgid "Timeout after this many minutes of inactivity" +"Warning: fetching comments will increase the download time, perhaps by a lot!" msgstr "" -#: .././config.py:20123 -msgid "Number of restarts after a timeout" +#: .././config.py:21024 +msgid "Also store comments in the Tartube database" msgstr "" -#: .././config.py:20138 +#: .././config.py:21041 msgid "" -"Bypass usual limits on simultaneous downloads, so that all broadcasts can be " -"downloaded" +"Warning: storing comments will increase the size of Tartube's datbase, " +"perhaps by a lot!" msgstr "" -#: .././config.py:20179 +#: .././config.py:21061 msgid "_Actions" msgstr "" -#: .././config.py:20188 +#: .././config.py:21069 msgid "Livestream actions (can be toggled for individual videos)" msgstr "" -#: .././config.py:20195 +#: .././config.py:21076 msgid "(currently disabled on MS Windows)" msgstr "" -#: .././config.py:20200 +#: .././config.py:21081 msgid "When a livestream starts, show a desktop notification" msgstr "" -#: .././config.py:20214 +#: .././config.py:21095 msgid "When a livestream starts, sound an alarm" msgstr "" -#: .././config.py:20237 +#: .././config.py:21118 msgid "Plays the selected sound effect" msgstr "" -#: .././config.py:20244 +#: .././config.py:21125 msgid "When a livestream starts, open it in the system's web browser" msgstr "" -#: .././config.py:20256 +#: .././config.py:21137 msgid "When a livestream starts, begin downloading it immediately" msgstr "" -#: .././config.py:20282 +#: .././config.py:21163 msgid "Desktop notification preferences" msgstr "" -#: .././config.py:20288 +#: .././config.py:21169 msgid "Show a dialogue window at the end of an operation" msgstr "" -#: .././config.py:20311 +#: .././config.py:21192 msgid "Don't notify the user at the end of an operation" msgstr "" -#: .././config.py:20344 +#: .././config.py:21230 msgid "_Mirrors" msgstr "" -#: .././config.py:20352 +#: .././config.py:21237 msgid "Invidious mirror" msgstr "" -#: .././config.py:20358 +#: .././config.py:21243 msgid "To find an updated list of Invidious mirrors, use any search engine!" msgstr "" -#: .././config.py:20373 +#: .././config.py:21258 msgid "Use the default Invidious mirror" msgstr "" -#: .././config.py:20388 +#: .././config.py:21273 msgid "SponsorBlock API mirror" msgstr "" -#: .././config.py:20401 +#: .././config.py:21286 msgid "Use the default SponsorBlock URL" msgstr "" -#: .././config.py:20413 +#: .././config.py:21303 msgid "_Proxies" msgstr "" -#: .././config.py:20419 +#: .././config.py:21309 msgid "Proxies" msgstr "" -#: .././config.py:20426 +#: .././config.py:21316 msgid "" "During a download operation, Tartube will cycle betwween the proxies in this " "list" msgstr "" -#: .././config.py:20447 +#: .././config.py:21342 msgid "P_references" msgstr "" -#: .././config.py:20455 +#: .././config.py:21349 msgid "URL flexibility preferences" msgstr "" -#: .././config.py:20462 +#: .././config.py:21356 msgid "" "If a video's URL represents a channel/playlist, not a video, don't download " "it" msgstr "" -#: .././config.py:20471 +#: .././config.py:21365 msgid "...or, download multiple videos into the containing folder" msgstr "" -#: .././config.py:20481 +#: .././config.py:21375 msgid "...or, create a new channel, and download the videos into that" msgstr "" -#: .././config.py:20492 +#: .././config.py:21386 msgid "...or, create a new playlist, and download the videos into that" msgstr "" -#: .././config.py:20524 +#: .././config.py:21418 msgid "Missing video preferences" msgstr "" -#: .././config.py:20530 +#: .././config.py:21424 msgid "" "Add videos which have been removed from a channel/playlist to the Missing " "Videos folder" msgstr "" -#: .././config.py:20541 +#: .././config.py:21435 msgid "Only add videos that were uploaded within this many days" msgstr "" -#: .././config.py:20610 +#: .././config.py:21509 msgid "_Forks" msgstr "" -#: .././config.py:20616 +#: .././config.py:21515 msgid "Forks of youtube-dl" msgstr "" -#: .././config.py:20645 +#: .././config.py:21544 msgid "Use yt-dlp" msgstr "" -#: .././config.py:20651 +#: .././config.py:21550 msgid "Install without dependencies" msgstr "" -#: .././config.py:20652 +#: .././config.py:21551 msgid "(recommended on MS Windows)" msgstr "" -#: .././config.py:20683 +#: .././config.py:21582 msgid "Use youtube-dl" msgstr "" -#: .././config.py:20704 +#: .././config.py:21603 msgid "Other forks" msgstr "" -#: .././config.py:20712 +#: .././config.py:21611 msgid "Use this fork:" msgstr "" -#: .././config.py:20792 +#: .././config.py:21691 msgid "When using other downloaders, filter out yt-dlp download options" msgstr "" -#: .././config.py:20809 +#: .././config.py:21713 msgid "_File paths" msgstr "" -#: .././config.py:20816 +#: .././config.py:21720 msgid "Downloader file paths" msgstr "" -#: .././config.py:20822 +#: .././config.py:21726 msgid "Path to the executable" msgstr "" #. (Signal connect appears below) -#: .././config.py:20828 .././config.py:20976 .././config.py:21017 -#: .././config.py:21087 .././config.py:28160 +#: .././config.py:21732 .././config.py:21884 .././config.py:21925 +#: .././config.py:21999 .././config.py:29260 msgid "Use default path" msgstr "" -#: .././config.py:20833 .././config.py:28172 +#: .././config.py:21737 .././config.py:29272 msgid "Use local path" msgstr "" -#: .././config.py:20837 +#: .././config.py:21741 msgid "Use custom path" msgstr "" -#: .././config.py:20845 .././config.py:28186 +#: .././config.py:21749 .././config.py:29286 msgid "Use PyPI path" msgstr "" -#: .././config.py:20896 +#: .././config.py:21800 msgid "Command for update operations" msgstr "" -#: .././config.py:20944 +#: .././config.py:21853 msgid "_FFmpeg / AVConv" msgstr "" -#: .././config.py:20952 +#: .././config.py:21860 msgid "Post-processing file paths" msgstr "" -#: .././config.py:20957 +#: .././config.py:21865 msgid "" "You only need to set these paths if Tartube cannot find FFmpeg / AVConv " "automatically" msgstr "" -#: .././config.py:20964 +#: .././config.py:21872 msgid "Path to the FFmpeg executable" msgstr "" -#: .././config.py:20991 +#: .././config.py:21899 msgid "Install from main menu" msgstr "" -#: .././config.py:21005 +#: .././config.py:21913 msgid "Path to the AVConv executable" msgstr "" -#: .././config.py:21032 +#: .././config.py:21940 msgid "Not supported on MS Windows" msgstr "" -#: .././config.py:21055 +#: .././config.py:21968 msgid "_Stream Capture" msgstr "" -#: .././config.py:21063 +#: .././config.py:21975 msgid "Youtube Stream Capture file path" msgstr "" -#: .././config.py:21068 +#: .././config.py:21980 msgid "" "Tartube includes a copy of this script, but you can use a different copy, if " "you want" msgstr "" -#: .././config.py:21075 +#: .././config.py:21987 msgid "Path to the YT Stream Capture executable" msgstr "" -#: .././config.py:21133 +#: .././config.py:22050 msgid "_Download options" msgstr "" -#: .././config.py:21140 +#: .././config.py:22057 msgid "List of download options managers" msgstr "" -#: .././config.py:21161 +#: .././config.py:22078 msgid "Applied to media" msgstr "" -#: .././config.py:21359 +#: .././config.py:22279 msgid "_Preferences" msgstr "" -#: .././config.py:21366 +#: .././config.py:22286 msgid "Download options preferences" msgstr "" -#: .././config.py:21372 +#: .././config.py:22292 msgid "" "When applying download options to something, clone the general download " "options" msgstr "" -#: .././config.py:21383 +#: .././config.py:22303 msgid "After downloading a video, destroy its download options" msgstr "" -#: .././config.py:21400 +#: .././config.py:22325 msgid "_FFmpeg options" msgstr "" -#: .././config.py:21407 +#: .././config.py:22332 msgid "List of FFmpeg options managers" msgstr "" -#: .././config.py:21427 +#: .././config.py:22352 msgid "Current" msgstr "" -#: .././config.py:21518 +#: .././config.py:22442 msgid "Use these options" msgstr "" #. Add this tab... -#: .././config.py:21609 +#: .././config.py:22532 msgid "O_utput" msgstr "" -#: .././config.py:21628 +#: .././config.py:22556 msgid "_Output tab" msgstr "" -#: .././config.py:21636 +#: .././config.py:22563 msgid "Output tab preferences" msgstr "" -#: .././config.py:21641 +#: .././config.py:22568 msgid "Display downloader system commands in the Output tab" msgstr "" -#: .././config.py:21650 +#: .././config.py:22577 msgid "Display output from downloader's STDOUT in the Output tab" msgstr "" -#: .././config.py:21659 .././config.py:21821 +#: .././config.py:22586 .././config.py:22753 msgid "...but don't write each video's JSON data" msgstr "" -#: .././config.py:21670 .././config.py:21832 +#: .././config.py:22597 .././config.py:22764 msgid "...but don't write each video's download progress" msgstr "" -#: .././config.py:21689 +#: .././config.py:22616 msgid "Display output from downloader's STDERR in the Output tab" msgstr "" -#: .././config.py:21698 +#: .././config.py:22625 msgid "Limit the size of Output tab pages to" msgstr "" -#: .././config.py:21719 +#: .././config.py:22646 msgid "Empty pages in the Output tab at the start of every operation" msgstr "" -#: .././config.py:21729 +#: .././config.py:22656 msgid "" "Show a summary of active threads (changes are applied when Tartube restarts)" msgstr "" -#: .././config.py:21741 +#: .././config.py:22668 msgid "During update/info operations, automatically switch to the Output tab" msgstr "" -#: .././config.py:21752 +#: .././config.py:22679 msgid "During a refresh operation, show all matching videos in the Output tab" msgstr "" -#: .././config.py:21763 +#: .././config.py:22690 msgid "...also show all non-matching videos" msgstr "" -#: .././config.py:21792 +#: .././config.py:22724 msgid "_Terminal window" msgstr "" -#: .././config.py:21798 +#: .././config.py:22730 msgid "Terminal window preferences" msgstr "" -#: .././config.py:21803 +#: .././config.py:22735 msgid "Write downloader system commands to the terminal window" msgstr "" -#: .././config.py:21812 +#: .././config.py:22744 msgid "Write output from downloader's STDOUT to the terminal window" msgstr "" -#: .././config.py:21854 +#: .././config.py:22786 msgid "Write output from downloader's STDERR to the terminal window" msgstr "" -#: .././config.py:21873 +#: .././config.py:22810 msgid "_Both" msgstr "" -#: .././config.py:21878 +#: .././config.py:22815 msgid "" "Special preferences (applies to both the Output tab and the terminal window)" msgstr "" -#: .././config.py:21885 +#: .././config.py:22822 msgid "Downloader writes verbose output (youtube-dl debugging mode)" msgstr "" -#: .././config.py:21894 +#: .././config.py:22831 msgid "Youtube Stream Capture writes verbose output" msgstr "" #. Confirm the result -#: .././config.py:22640 .././config.py:24410 .././config.py:25118 -#: .././config.py:26255 .././refresh.py:483 .././refresh.py:591 +#: .././config.py:23577 .././config.py:25396 .././config.py:25453 +#: .././config.py:26161 .././config.py:27303 .././config.py:27348 +#: .././refresh.py:483 .././refresh.py:591 msgid "Total videos:" msgstr "" -#: .././config.py:22641 .././config.py:24412 .././config.py:25119 -#: .././config.py:26256 +#: .././config.py:23578 .././config.py:25398 .././config.py:25455 +#: .././config.py:26162 .././config.py:27304 .././config.py:27349 msgid "Videos updated:" msgstr "" -#: .././config.py:22831 +#: .././config.py:23813 msgid "Are you sure you want to rename this channel?" msgstr "" -#: .././config.py:22833 +#: .././config.py:23815 msgid "Are you sure you want to rename this playlist?" msgstr "" -#: .././config.py:22835 +#: .././config.py:23817 msgid "Are you sure you want to rename this folder?" msgstr "" -#: .././config.py:22875 +#: .././config.py:23857 msgid "That is not a valid URL" msgstr "" -#: .././config.py:22896 +#: .././config.py:23878 msgid "Are you sure you want to update the URL?" msgstr "" -#: .././config.py:22943 +#: .././config.py:23925 msgid "The regex is invalid" msgstr "" -#: .././config.py:22991 +#: .././config.py:23973 msgid "Are you sure you want to update these URLs?" msgstr "" -#: .././config.py:23211 +#: .././config.py:24193 msgid "The default custom download manager cannot be deleted" msgstr "" -#: .././config.py:23219 +#: .././config.py:24201 msgid "Are you sure you want to delete this custom download manager?" msgstr "" -#: .././config.py:23493 +#: .././config.py:24475 msgid "Are you sure you want to create a new database at this location?" msgstr "" -#: .././config.py:23600 +#: .././config.py:24582 msgid "Are you sure you want to forget this database?" msgstr "" -#: .././config.py:23635 +#: .././config.py:24617 msgid "Are you sure you want to forget all databases except the current one?" msgstr "" -#: .././config.py:23839 +#: .././config.py:24821 msgid "No database exists at this location:" msgstr "" -#: .././config.py:23841 +#: .././config.py:24823 msgid "Do you want to create a new one?" msgstr "" -#: .././config.py:24581 +#: .././config.py:25624 msgid "The current options manager cannot be deleted" msgstr "" -#: .././config.py:24589 .././config.py:25640 +#: .././config.py:25632 .././config.py:26680 msgid "Are you sure you want to delete this options manager?" msgstr "" -#: .././config.py:24783 .././config.py:25177 .././config.py:26977 +#: .././config.py:25826 .././config.py:26217 .././config.py:28077 msgid "The new setting will be applied when Tartube restarts" msgstr "" -#: .././config.py:25632 +#: .././config.py:26672 msgid "The default options manager cannot be deleted" msgstr "" -#: .././config.py:26598 +#: .././config.py:27698 msgid "There is already a scheduled download with that name" msgstr "" -#: .././config.py:26645 +#: .././config.py:27745 msgid "Are you sure you want to delete this scheduled download?" msgstr "" -#: .././config.py:26830 +#: .././config.py:27930 msgid "Please select the AVConv executable" msgstr "" -#: .././config.py:26863 +#: .././config.py:27963 msgid "Please select the FFmpeg executable" msgstr "" -#: .././config.py:26896 +#: .././config.py:27996 msgid "Please select the Youtube Stream Capture executable" msgstr "" -#: .././config.py:27839 +#: .././config.py:28939 msgid "Select the youtube-dl-compatible executable" msgstr "" -#: .././config.py:28083 +#: .././config.py:29183 msgid "Database file not loaded" msgstr "" -#: .././config.py:28103 +#: .././config.py:29203 msgid "Did not try to load the database file" msgstr "" -#: .././config.py:28128 +#: .././config.py:29228 msgid "Database file loaded" msgstr "" -#: .././downloads.py:322 +#: .././downloads.py:323 msgid "D/L Manager:" msgstr "" -#: .././downloads.py:326 +#: .././downloads.py:327 msgid "Starting download operation" msgstr "" -#: .././downloads.py:357 +#: .././downloads.py:358 msgid "Workers: available:" msgstr "" -#: .././downloads.py:358 +#: .././downloads.py:359 msgid "total:" msgstr "" -#: .././downloads.py:390 +#: .././downloads.py:391 msgid "Alternative performance limits no longer apply" msgstr "" -#: .././downloads.py:398 +#: .././downloads.py:399 msgid "Alternative performance limits now apply" msgstr "" @@ -7701,9 +7813,9 @@ msgstr "" msgid "All threads finished" msgstr "" -#: .././downloads.py:464 .././downloads.py:1383 .././downloads.py:1394 -#: .././downloads.py:1469 .././downloads.py:1541 .././downloads.py:1582 -#: .././downloads.py:1654 +#: .././downloads.py:464 .././downloads.py:1392 .././downloads.py:1403 +#: .././downloads.py:1478 .././downloads.py:1550 .././downloads.py:1591 +#: .././downloads.py:1663 msgid "Thread #" msgstr "" @@ -7723,166 +7835,166 @@ msgstr "" msgid "Join and collect threads" msgstr "" -#: .././downloads.py:1384 +#: .././downloads.py:1393 msgid "Job complete" msgstr "" -#: .././downloads.py:1395 +#: .././downloads.py:1404 msgid "Worker now available again" msgstr "" -#: .././downloads.py:1470 .././downloads.py:1583 .././downloads.py:1655 +#: .././downloads.py:1479 .././downloads.py:1592 .././downloads.py:1664 msgid "Assigned job:" msgstr "" -#: .././downloads.py:1494 .././downloads.py:1498 +#: .././downloads.py:1503 .././downloads.py:1507 msgid "Tartube is restarting a stalled download" msgstr "" -#: .././downloads.py:1542 +#: .././downloads.py:1551 msgid "Checking RSS feed" msgstr "" -#: .././downloads.py:2188 +#: .././downloads.py:2197 msgid "Cannot download videos in a private folder" msgstr "" -#: .././downloads.py:3539 .././downloads.py:7687 +#: .././downloads.py:3550 .././downloads.py:7714 msgid "Download did not start" msgstr "" -#: .././downloads.py:3545 .././downloads.py:7699 .././info.py:358 +#: .././downloads.py:3556 .././downloads.py:7726 .././info.py:358 #: .././updates.py:278 .././updates.py:496 msgid "Child process exited with non-zero code: {}" msgstr "" -#: .././downloads.py:3672 .././downloads.py:4780 +#: .././downloads.py:3683 .././downloads.py:4812 msgid "" "This video has a URL that points to a channel or a playlist, not a video" msgstr "" -#: .././downloads.py:4655 .././downloads.py:4671 +#: .././downloads.py:4687 .././downloads.py:4703 msgid "Simulated download of:" msgstr "" -#: .././downloads.py:4679 +#: .././downloads.py:4711 msgid "Simulated download of video with unprintable characters" msgstr "" -#: .././downloads.py:5899 +#: .././downloads.py:5931 msgid "No timestamps defined in video's timestamp list" msgstr "" -#: .././downloads.py:5917 +#: .././downloads.py:5949 msgid "" "FAILED: Can't create the destination folder either because a folder with the " "same name already exists, or because new folders can't be added to the " "parent folder" msgstr "" -#: .././downloads.py:6138 .././downloads.py:6486 +#: .././downloads.py:6170 .././downloads.py:6518 msgid "FAILED: Clip download did not start" msgstr "" -#: .././downloads.py:6146 .././downloads.py:6494 +#: .././downloads.py:6178 .././downloads.py:6526 msgid "FAILED: Child process exited with non-zero code: {}" msgstr "" -#: .././downloads.py:6256 +#: .././downloads.py:6288 msgid "No slices defined in video's slice list" msgstr "" -#: .././downloads.py:6518 +#: .././downloads.py:6550 msgid "FAILED: One or more clips were not downloaded" msgstr "" -#: .././downloads.py:6623 +#: .././downloads.py:6655 msgid "FAILED: Can't concatenate clips" msgstr "" -#: .././downloads.py:6649 +#: .././downloads.py:6676 msgid "" "FAILED: Clips were concatenated, but could not move the output file out of " "the temporary directory" msgstr "" -#: .././downloads.py:6775 +#: .././downloads.py:6802 msgid "Failed to copy the original video's thumbnail" msgstr "" -#: .././downloads.py:6957 +#: .././downloads.py:6984 msgid "FAILED: Can't create a temporary folder for video clips" msgstr "" #. This object creates more messages for the Output tab and/or terminal, #. than downloads.VideoDownloader would do, as the output generated by #. Youtube Stream Capture is not easy for the user to interpret -#: .././downloads.py:7578 +#: .././downloads.py:7605 msgid "Tartube is starting the stream capture..." msgstr "" -#: .././downloads.py:7596 +#: .././downloads.py:7623 msgid "Could not create a destination directory, capture halted" msgstr "" -#: .././downloads.py:7617 .././downloads.py:7642 +#: .././downloads.py:7644 .././downloads.py:7669 msgid "Youtube Stream Capture script not found:" msgstr "" -#: .././downloads.py:7691 +#: .././downloads.py:7718 msgid "Failed to capture the livestream" msgstr "" -#: .././downloads.py:7695 +#: .././downloads.py:7722 msgid "Stream capture terminated" msgstr "" -#: .././downloads.py:7705 +#: .././downloads.py:7732 msgid "" "Stream captured terminated without downloading any video segments " "(indicating an error with the stream)" msgstr "" #. Capture successful -#: .././downloads.py:7721 +#: .././downloads.py:7748 msgid "Stream capture successful" msgstr "" #. Show a confirmation message -#: .././downloads.py:7751 +#: .././downloads.py:7778 msgid "Merging file segments..." msgstr "" -#: .././downloads.py:7771 +#: .././downloads.py:7798 msgid "Segment merge did not start" msgstr "" -#: .././downloads.py:7782 +#: .././downloads.py:7809 msgid "Segment merge completed, but path not detected" msgstr "" -#: .././downloads.py:7792 +#: .././downloads.py:7819 msgid "Segment merge completed, but output file not found" msgstr "" -#: .././downloads.py:7813 +#: .././downloads.py:7840 msgid "File moved to:" msgstr "" -#: .././downloads.py:7818 +#: .././downloads.py:7845 msgid "Livestream download is complete" msgstr "" -#: .././downloads.py:7823 +#: .././downloads.py:7850 msgid "Failed to move output file" msgstr "" -#: .././downloads.py:7991 +#: .././downloads.py:8018 #, python-brace-format msgid "Stream capture is frozen, trying again (restart #{0})" msgstr "" -#: .././downloads.py:7998 +#: .././downloads.py:8025 msgid "Stream capture is frozen, giving up" msgstr "" @@ -7951,218 +8063,218 @@ msgid "Sunday" msgstr "" #. System folder names -#: .././formats.py:917 +#: .././formats.py:926 msgid "All Videos" msgstr "" -#: .././formats.py:918 +#: .././formats.py:927 msgid "Bookmarks" msgstr "" -#: .././formats.py:919 +#: .././formats.py:928 msgid "Favourite Videos" msgstr "Favorite Videos" -#: .././formats.py:920 +#: .././formats.py:929 msgid "Livestreams" msgstr "" -#: .././formats.py:921 +#: .././formats.py:930 msgid "Missing Videos" msgstr "" -#: .././formats.py:922 +#: .././formats.py:931 msgid "New Videos" msgstr "" -#: .././formats.py:924 +#: .././formats.py:933 msgid "Waiting Videos" msgstr "" -#: .././formats.py:925 +#: .././formats.py:934 msgid "Temporary Videos" msgstr "" -#: .././formats.py:926 +#: .././formats.py:935 msgid "Unsorted Videos" msgstr "" -#: .././formats.py:927 +#: .././formats.py:936 msgid "Video Clips" msgstr "" -#: .././formats.py:932 +#: .././formats.py:941 msgid "Update using default youtube-dl path" msgstr "" -#: .././formats.py:934 +#: .././formats.py:943 msgid "Update using local youtube-dl path" msgstr "" -#: .././formats.py:936 +#: .././formats.py:945 msgid "Update using custom youtube-dl path" msgstr "" -#: .././formats.py:938 +#: .././formats.py:947 msgid "Update using pip" msgstr "" -#: .././formats.py:940 +#: .././formats.py:949 msgid "Update using pip (use --no-dependencies option)" msgstr "" -#: .././formats.py:942 +#: .././formats.py:951 msgid "Update using pip (omit --user option)" msgstr "" -#: .././formats.py:944 +#: .././formats.py:953 msgid "Update using pip3" msgstr "" -#: .././formats.py:946 +#: .././formats.py:955 msgid "Update using pip3 (use --no-dependencies option)" msgstr "" -#: .././formats.py:948 +#: .././formats.py:957 msgid "Update using pip3 (omit --user option)" msgstr "" -#: .././formats.py:950 +#: .././formats.py:959 msgid "Update using pip3 (recommended)" msgstr "" -#: .././formats.py:952 +#: .././formats.py:961 msgid "Update using PyPI youtube-dl path" msgstr "" -#: .././formats.py:954 +#: .././formats.py:963 msgid "Windows 32-bit update (recommended)" msgstr "" -#: .././formats.py:956 +#: .././formats.py:965 msgid "Windows 32-bit update (use --no-dependencies option)" msgstr "" -#: .././formats.py:958 +#: .././formats.py:967 msgid "Windows 64-bit update (recommended)" msgstr "" -#: .././formats.py:960 +#: .././formats.py:969 msgid "Windows 64-bit update (use --no-dependencies option)" msgstr "" -#: .././formats.py:962 +#: .././formats.py:971 msgid "youtube-dl updates are disabled" msgstr "" #. Download operation stages -#: .././formats.py:966 +#: .././formats.py:975 msgid "Queued" msgstr "" -#: .././formats.py:967 +#: .././formats.py:976 msgid "Not started" msgstr "" -#: .././formats.py:968 +#: .././formats.py:977 msgid "Active" msgstr "" -#: .././formats.py:969 +#: .././formats.py:978 msgid "Paused" msgstr "" #. (not actually used) -#: .././formats.py:970 +#: .././formats.py:979 msgid "Completed" msgstr "" #. (not actually used) #. Sub-stages of the 'Error' stage -#: .././formats.py:971 .././formats.py:986 +#: .././formats.py:980 .././formats.py:995 msgid "Error" msgstr "" -#: .././formats.py:972 +#: .././formats.py:981 msgid "Stalled" msgstr "" #. Sub-stages of the 'Active' stage -#: .././formats.py:974 +#: .././formats.py:983 msgid "Pre-processing" msgstr "" -#: .././formats.py:975 +#: .././formats.py:984 msgid "Downloading" msgstr "" -#: .././formats.py:976 +#: .././formats.py:985 msgid "Concatenating" msgstr "" -#: .././formats.py:977 +#: .././formats.py:986 msgid "Post-processing" msgstr "" -#: .././formats.py:978 +#: .././formats.py:987 msgid "Capturing" msgstr "" #. Used by YTSC -#: .././formats.py:979 +#: .././formats.py:988 msgid "Merging" msgstr "" #. Used by YTSC -#: .././formats.py:980 +#: .././formats.py:989 msgid "Checking" msgstr "" #. Sub-stages of the 'Completed' stage -#: .././formats.py:982 +#: .././formats.py:991 msgid "Finished" msgstr "" -#: .././formats.py:983 +#: .././formats.py:992 msgid "Warning" msgstr "" -#: .././formats.py:984 +#: .././formats.py:993 msgid "Already downloaded" msgstr "" #. (not actually used) -#: .././formats.py:987 +#: .././formats.py:996 msgid "Stopped" msgstr "" -#: .././formats.py:988 +#: .././formats.py:997 msgid "Filesize abort" msgstr "" -#: .././formats.py:998 +#: .././formats.py:1007 msgid "" "TRANSLATOR'S NOTE: ID refers to a video's unique ID on the website, e.g. on " "YouTube \"CS9OO0S5w2k\"" msgstr "" -#: .././formats.py:1007 +#: .././formats.py:1016 msgid "ID" msgstr "" -#: .././formats.py:1008 +#: .././formats.py:1017 msgid "Title" msgstr "" -#: .././formats.py:1009 +#: .././formats.py:1018 msgid "Quality" msgstr "" -#: .././formats.py:1010 +#: .././formats.py:1019 msgid "Autonumber" msgstr "" -#: .././formats.py:1022 +#: .././formats.py:1031 msgid "Any format" msgstr "" @@ -8240,7 +8352,7 @@ msgstr "" #. When the download operation is launched from the Classic Mode #. tab, there is less to display -#: .././media.py:553 .././media.py:1954 .././media.py:1970 +#: .././media.py:553 .././media.py:1976 .././media.py:1992 msgid "Source:" msgstr "" @@ -8256,49 +8368,49 @@ msgstr "" msgid "unavailable" msgstr "" -#: .././media.py:591 .././media.py:1986 +#: .././media.py:591 .././media.py:2008 msgid "Errors\\Warnings" msgstr "" -#: .././media.py:1925 +#: .././media.py:1947 msgid "" "TRANSLATOR'S NOTE: WAITING = livestream not started, LIVE = livestream " "started" msgstr "" -#: .././media.py:1930 +#: .././media.py:1952 msgid "WAITING" msgstr "" -#: .././media.py:1932 +#: .././media.py:1954 msgid "LIVE" msgstr "" -#: .././media.py:1942 .././refresh.py:259 .././refresh.py:529 +#: .././media.py:1964 .././refresh.py:259 .././refresh.py:529 msgid "Channel:" msgstr "" -#: .././media.py:1944 .././refresh.py:261 .././refresh.py:531 +#: .././media.py:1966 .././refresh.py:261 .././refresh.py:531 msgid "Playlist:" msgstr "" -#: .././media.py:1946 .././refresh.py:263 .././refresh.py:533 +#: .././media.py:1968 .././refresh.py:263 .././refresh.py:533 msgid "Folder:" msgstr "" -#: .././media.py:1951 +#: .././media.py:1973 msgid "TRANSLATOR'S NOTE 2: Source = video/channel/playlist URL" msgstr "" -#: .././media.py:1960 .././media.py:1977 +#: .././media.py:1982 .././media.py:1999 msgid "File:" msgstr "" -#: .././media.py:2976 .././media.py:3037 +#: .././media.py:3079 .././media.py:3140 msgid "Today" msgstr "" -#: .././media.py:2978 .././media.py:3039 +#: .././media.py:3081 .././media.py:3142 msgid "Yesterday" msgstr "" @@ -8493,19 +8605,23 @@ msgstr "" msgid "Annotation files deleted:" msgstr "" -#: .././tidy.py:647 +#: .././tidy.py:649 msgid "Deleted (possibly) corrupted video file:" msgstr "" -#: .././tidy.py:662 .././tidy.py:1273 +#: .././tidy.py:662 +msgid "Failed to delete (possibly) corrupted video file:" +msgstr "" + +#: .././tidy.py:673 .././tidy.py:1271 msgid "Video file might be corrupt:" msgstr "" -#: .././tidy.py:703 +#: .././tidy.py:714 msgid "Video file exists:" msgstr "" -#: .././tidy.py:721 +#: .././tidy.py:732 msgid "Video file doesn't exist:" msgstr "" diff --git a/locale/ko_KR/LC_MESSAGES/base.mo b/locale/ko_KR/LC_MESSAGES/base.mo index 26a5bf6fdf34cad3226806dcb9b8236979ecda9e..f86fa9bae59645862b42924cf92d8b2edccdacf9 100644 GIT binary patch delta 34473 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 H-nRUI`HwLQ delta 35023 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\n" "Language-Team: mirusu400\n" @@ -25,7 +25,7 @@ msgstr "매우 작게" msgid "Small" msgstr "작게" -#: .././mainapp.py:319 .././config.py:5054 .././config.py:5132 +#: .././mainapp.py:319 .././config.py:5140 .././config.py:5218 msgid "Medium" msgstr "중간" @@ -37,7 +37,7 @@ msgstr "크게" msgid "Enormous" msgstr "엄청 크게" -#: .././mainapp.py:991 +#: .././mainapp.py:996 msgid "" "Failed to convert a thumbnail from .webp to .jpg. No more conversions will " "be attempted until you install FFmpeg on your system, or (if FFmpeg is " @@ -50,158 +50,158 @@ msgstr "" "이 시도되지 않습니다. 경로 설정을 진행했다면 Tartube를 다시 시작해 주세요. 이" "러한 메시지를 표시하지 않을려면, 썸네일 변환 기능을 꺼주세요" -#: .././mainapp.py:2997 +#: .././mainapp.py:3017 msgid "" "Tartube can't create the folder in which its configuration file is saved" msgstr "Tartube는 구성 파일이 저장되는 폴더를 만들 수 없습니다" #. Load/save has been disabled. Show the error message in a dialogue #. window, then shut down -#: .././mainapp.py:3044 +#: .././mainapp.py:3064 msgid "Tartube failed to start because:" msgstr "Tartube는 다음과 같은 이유로 시작하지 못했습니다:" -#: .././mainapp.py:3052 +#: .././mainapp.py:3072 msgid "If you don't know how to resolve this error, please contact the authors" msgstr "이 문제를 해결할 방법을 모르겠으면, 개발자에게 문의해주세요" -#: .././mainapp.py:3280 +#: .././mainapp.py:3296 msgid "Because of an error, file load/save has been disabled" msgstr "오류에 의해, 파일 저장/불러오기 기능이 비활성화 되었습니다" -#: .././mainapp.py:3289 +#: .././mainapp.py:3305 msgid "Because of the error, file load/save has been disabled" msgstr "오류에 의해, 파일 저장/불러오기 기능이 비활성화 되었습니다" -#: .././mainapp.py:3377 +#: .././mainapp.py:3393 msgid "There is a download operation in progress." msgstr "진행중인 다운로드 작업이 있습니다." -#: .././mainapp.py:3379 +#: .././mainapp.py:3395 msgid "There is an update operation in progress." msgstr "진행중인 업데이트 작업이 있습니다." -#: .././mainapp.py:3381 +#: .././mainapp.py:3397 msgid "There is a refresh operation in progress." msgstr "진행중인 새로고침 작업이 있습니다." -#: .././mainapp.py:3383 +#: .././mainapp.py:3399 msgid "There is an info operation in progress." msgstr "진행중인 설정 작업이 있습니다." -#: .././mainapp.py:3385 +#: .././mainapp.py:3401 msgid "There is a tidy operation in progress." msgstr "진행중인 깔끔한 작업이 있습니다." -#: .././mainapp.py:3387 +#: .././mainapp.py:3403 msgid "There is a process operation in progress." msgstr "진행중인 처리 작업이 있습니다." -#: .././mainapp.py:3392 +#: .././mainapp.py:3408 msgid "Are you sure you want to quit Tartube?" msgstr "정말로 Tartube를 종료하시겠습니까?" -#: .././mainapp.py:3597 +#: .././mainapp.py:3613 msgid "Failed to load the Tartube config file (failed sanity check)" msgstr "Tartube 구성 파일을 로드하지 못했습니다 (완전성 검사 실패)" -#: .././mainapp.py:3620 +#: .././mainapp.py:3636 msgid "Failed to load the Tartube config file (file is locked)" msgstr "Tartube 구성 파일을 로드하지 못했습니다 (파일이 잠겨있음)" -#: .././mainapp.py:3650 +#: .././mainapp.py:3666 msgid "Failed to load the Tartube config file (JSON load failure)" msgstr "Tartube 구성 파일을 로드하지 못했습니다 (JSON 로드 실패)" -#: .././mainapp.py:3668 +#: .././mainapp.py:3684 msgid "Failed to load the Tartube config file (file is invalid)" msgstr "Tartube 구성 파일을 로드하지 못했습니다 (파일이 잘못됨)" -#: .././mainapp.py:3686 +#: .././mainapp.py:3702 msgid "" "Failed to load the Tartube config file (file cannot be read by this version)" msgstr "" "Tartube 구성 파일을 로드하지 못했습니다 (파일이 이 버전에선 읽을수 없음)" -#: .././mainapp.py:3701 +#: .././mainapp.py:3717 msgid "Failed to load the Tartube config file (missing file type)" msgstr "Tartube 구성 파일을 로드하지 못했습니다 (파일 유형 누락)" -#: .././mainapp.py:4720 +#: .././mainapp.py:4746 msgid "Failed to save the Tartube config file (failed sanity check)" msgstr "Tartube 구성 파일을 로드하지 못했습니다 (완전성 검사 실패)" -#: .././mainapp.py:5084 +#: .././mainapp.py:5115 msgid "Failed to save the Tartube config file (file is locked)" msgstr "Tartube 구성 파일을 로드하지 못했습니다 (파일이 잠겨있음)" -#: .././mainapp.py:5086 .././mainapp.py:6744 .././mainapp.py:6800 -#: .././mainapp.py:6806 +#: .././mainapp.py:5117 .././mainapp.py:6789 .././mainapp.py:6845 +#: .././mainapp.py:6851 msgid "File load/save has been disabled" msgstr "파일 저장/불러오기 기능이 비활성화 되었습니다" -#: .././mainapp.py:5105 +#: .././mainapp.py:5136 msgid "Failed to save the Tartube config file (file already in use)" msgstr "Tartube 구성 파일을 로드하지 못했습니다 (파일이 사용중임)" -#: .././mainapp.py:5124 +#: .././mainapp.py:5155 msgid "Failed to save the Tartube config file" msgstr "Tartube 구성 파일을 로드하지 못했습니다" -#: .././mainapp.py:5229 .././mainapp.py:5245 .././mainapp.py:5275 +#: .././mainapp.py:5260 .././mainapp.py:5276 .././mainapp.py:5306 msgid "Failed to load the Tartube database file" msgstr "Tartube 데이터베이스 파일을 로드하지 못했습니다" -#: .././mainapp.py:5290 +#: .././mainapp.py:5321 msgid "The Tartube database file is invalid" msgstr "Tartube 데이터베이스 파일이 잘못되었습니다" -#: .././mainapp.py:5306 +#: .././mainapp.py:5337 msgid "Database file can't be read by this version of Tartube" msgstr "데이터베이스 파일을 이 Tartube 버전에서 읽을 수 없습니다" -#: .././mainapp.py:5667 +#: .././mainapp.py:5698 msgid "Tartube is applying an essential database update" msgstr "Tartube가 중요한 데이터베이스 업데이트를 적용중입니다" -#: .././mainapp.py:5669 +#: .././mainapp.py:5700 msgid "This might take a few minutes, so please be patient" msgstr "이 작업은 몇 분 정도 시간이 걸릴 수 있으므로, 잠시 기다려 주십시오" -#: .././mainapp.py:6738 .././mainapp.py:6796 .././mainapp.py:6805 +#: .././mainapp.py:6783 .././mainapp.py:6841 .././mainapp.py:6850 msgid "Failed to save the Tartube database file" msgstr "Tartube 데이터베이스 파일을 저장하지 못했습니다" -#: .././mainapp.py:6741 +#: .././mainapp.py:6786 msgid "(Could not make a backup copy of the existing file)" msgstr "(존재하는 파일의 백업 복사본을 만들지 못했습니다)" -#: .././mainapp.py:6777 +#: .././mainapp.py:6822 msgid "Failed to save the Tartube database file (file already in use)" msgstr "" "Tartube 데이터베이스 파일을 저장하는 데 실패했습니다 (파일이 이미 사용중)" -#: .././mainapp.py:6798 +#: .././mainapp.py:6843 msgid "A backup of the previous file can be found at:" msgstr "이전 파일의 백업본을 발견했습니다:" -#: .././mainapp.py:6979 .././mainapp.py:6989 +#: .././mainapp.py:7021 .././mainapp.py:7031 msgid "Database file created" msgstr "데이터베이스 파일이 생성됨" -#: .././mainapp.py:7388 +#: .././mainapp.py:7428 msgid "Tartube's database can't be checked while an operation is in progress" msgstr "Tartube의 데이터베이스는 작업이 진행중일 때 확인할 수 없습니다" -#: .././mainapp.py:7624 +#: .././mainapp.py:7664 msgid "Database check complete, no inconsistencies found" msgstr "데이터베이스 확인이 완료되었습니다. 불일치 사항이 없습니다" -#: .././mainapp.py:7656 +#: .././mainapp.py:7696 msgid "Database check complete, problems found:" msgstr "데이터베이스 확인이 완료되었습니다. 문제가 있습니다:" -#: .././mainapp.py:7659 +#: .././mainapp.py:7699 msgid "" "Do you want to repair these problems? (The database will be fixed, but no " "files will be deleted)" @@ -209,31 +209,31 @@ msgstr "" "이 문제사항들을 복구하겠습니까? (데이터베이스가 수정되지만, 파일이 삭제되진 " "않습니다)" -#: .././mainapp.py:7832 +#: .././mainapp.py:7872 msgid "Database inconsistencies repaired" msgstr "데이터베이스 불일치 사항 복구됨" -#: .././mainapp.py:8918 .././config.py:23466 +#: .././mainapp.py:9070 .././config.py:24448 msgid "Please select Tartube's data folder" msgstr "Tartube의 데이터 폴더를 선택해 주세요" -#: .././mainapp.py:9343 +#: .././mainapp.py:9495 msgid "" "A download operation cannot start if one or more configuration windows are " "still open" msgstr "하나 이상의 설정 창이 열려 있으면 다운로드 작업이 시작되지 않습니다" -#: .././mainapp.py:9367 .././mainapp.py:9392 +#: .././mainapp.py:9519 .././mainapp.py:9544 #, python-brace-format msgid "You only have {0} / {1} Mb remaining on your device" msgstr "디바이스 장치에 남은 용량이 {0} / {1} Mb 밖에 없습니다" -#: .././mainapp.py:9395 .././mainapp.py:15514 .././mainapp.py:15630 -#: .././mainapp.py:15812 .././mainwin.py:18762 +#: .././mainapp.py:9547 .././mainapp.py:15682 .././mainapp.py:15798 +#: .././mainapp.py:15980 .././mainwin.py:18831 msgid "Are you sure you want to continue?" msgstr "계속 진행하시겠습니까?" -#: .././mainapp.py:9490 +#: .././mainapp.py:9642 msgid "" "1. Copy URLs into the box at the top\n" "2. Select a destination and a format\n" @@ -241,84 +241,84 @@ msgid "" "4. Click 'Download all'" msgstr "" -#: .././mainapp.py:9498 +#: .././mainapp.py:9650 msgid "There is nothing to check!" msgstr "확인할 항목이 없습니다!" -#: .././mainapp.py:9502 +#: .././mainapp.py:9654 msgid "There is nothing to download!" msgstr "다운로드 할 항 목이 없습니다!" -#: .././mainapp.py:9793 +#: .././mainapp.py:9947 msgid "Download operation complete" msgstr "다운로드 작업 완료" -#: .././mainapp.py:9795 +#: .././mainapp.py:9949 msgid "Download operation halted" msgstr "다운로드 작업 중지됨" -#: .././mainapp.py:9799 +#: .././mainapp.py:9953 msgid "Videos downloaded:" msgstr "다운로드한 비디오:" -#: .././mainapp.py:9800 .././config.py:24411 +#: .././mainapp.py:9954 .././config.py:25397 .././config.py:25454 msgid "Videos checked:" msgstr "확인한 비디오:" -#: .././mainapp.py:9807 +#: .././mainapp.py:9961 msgid "Clips downloaded:" msgstr "" -#: .././mainapp.py:9810 +#: .././mainapp.py:9964 msgid "Video slices removed:" msgstr "" -#: .././mainapp.py:9814 .././mainapp.py:10491 .././mainapp.py:10985 -#: .././mainapp.py:11408 +#: .././mainapp.py:9968 .././mainapp.py:10648 .././mainapp.py:11138 +#: .././mainapp.py:11560 msgid "Time taken:" msgstr "소요된 시간:" -#: .././mainapp.py:9993 +#: .././mainapp.py:10150 msgid "" "An update operation cannot start if one or more configuration windows are " "still open" msgstr "하나 이상의 설정 창이 열려 있으면 업데이트 작업이 시작되지 않습니다" -#: .././mainapp.py:10179 +#: .././mainapp.py:10336 msgid "Installation failed" msgstr "설치 실패" -#: .././mainapp.py:10181 +#: .././mainapp.py:10338 msgid "Installation complete" msgstr "설치 완료" -#: .././mainapp.py:10185 +#: .././mainapp.py:10342 msgid "Update operation failed" msgstr "업데이트 작업 실패" -#: .././mainapp.py:10187 +#: .././mainapp.py:10344 msgid "Update operation halted" msgstr "업데이트 작업 중지" -#: .././mainapp.py:10189 +#: .././mainapp.py:10346 msgid "Update operation complete" msgstr "업데이트 작업 성공" -#: .././mainapp.py:10191 +#: .././mainapp.py:10348 msgid "version:" msgstr "버전:" -#: .././mainapp.py:10195 +#: .././mainapp.py:10352 msgid "(unknown)" msgstr "(알수없음)" -#: .././mainapp.py:10284 +#: .././mainapp.py:10441 msgid "" "A refresh operation cannot start if one or more configuration windows are " "still open" msgstr "하나 이상의 설정 창이 열려 있으면 새로고침 작업이 시작되지 않습니다" -#: .././mainapp.py:10297 +#: .././mainapp.py:10454 msgid "" "During a refresh operation, Tartube analyses its data folder, looking for " "videos that haven't yet been added to its database" @@ -326,7 +326,7 @@ msgstr "" "새로고침 작업을 하는 동안, Tartube는 데이터 폴더를 분석하고, 데이터베이스에 " "추가되지 않은 비디오를 탐색합니다" -#: .././mainapp.py:10301 +#: .././mainapp.py:10458 msgid "" "You only need to perform a refresh operation if you have manually copied " "videos into Tartube's data folder" @@ -334,21 +334,21 @@ msgstr "" "Tartube의 데이터 폴더에 수동으로 비디오를 복사했다면 새로고침 작업을 해야 합" "니다" -#: .././mainapp.py:10308 +#: .././mainapp.py:10465 msgid "" "Before starting a refresh operation, you should click the 'Check all' button " "in the main window" msgstr "" "새로고침 작업을 시작하기 전에, 메인 화면의 '모두 선택' 버튼을 클릭해야 합니다" -#: .././mainapp.py:10315 +#: .././mainapp.py:10472 msgid "" "Before starting a refresh operation, you should right-click the channel and " "select 'Check channel'" msgstr "" "새로고침 작업을 시작하기 전에, 채널을 우클릭하고 '채널 검사'를 선택해주세요" -#: .././mainapp.py:10322 +#: .././mainapp.py:10479 msgid "" "Before starting a refresh operation, you should right-click the playlist and " "select 'Check playlist'" @@ -356,110 +356,110 @@ msgstr "" "새로고침 작업을 시작하기 전에, 플레이르스트를 우클릭하고 '플레이리스트 검" "사'를 선택해주세요" -#: .././mainapp.py:10329 +#: .././mainapp.py:10486 msgid "" "Before starting a refresh operation, you should right-click the folder and " "select 'Check folder'" msgstr "" "새로고침 작업을 시작하기 전에, 폴더를 우클릭하고 '폴더 검사'를 선택해주세요" -#: .././mainapp.py:10334 +#: .././mainapp.py:10491 msgid "Are you sure you want to proceed with the refresh operation?" msgstr "새로고침 작업을 계속하시겠습니까?" -#: .././mainapp.py:10486 +#: .././mainapp.py:10643 msgid "Refresh operation complete" msgstr "새로고침 작업 완료됨" -#: .././mainapp.py:10488 +#: .././mainapp.py:10645 msgid "Refresh operation halted" msgstr "새로고침 작업 중지됨" -#: .././mainapp.py:10593 +#: .././mainapp.py:10750 msgid "" "An info operation cannot start if one or more configuration windows are " "still open" msgstr "하나 이상의 설정 창이 열려있으면 설정 작업이 시작되지 않습니다" -#: .././mainapp.py:10709 +#: .././mainapp.py:10863 msgid "Operation failed" msgstr "작업 실패" -#: .././mainapp.py:10711 .././downloads.py:518 +#: .././mainapp.py:10865 .././downloads.py:518 msgid "Operation complete" msgstr "작업 성공" -#: .././mainapp.py:10713 +#: .././mainapp.py:10867 msgid "Click the Output tab to see the results" msgstr "결과를 보려면 출력 탭을 클릭하세요" -#: .././mainapp.py:10726 +#: .././mainapp.py:10880 msgid "A new release is available!" msgstr "새 버전이 업데이트 되었습니다!" -#: .././mainapp.py:10728 +#: .././mainapp.py:10882 msgid "Your installation is up to date!" msgstr "설치된 버전이 최신 버전입니다!" -#: .././mainapp.py:10730 +#: .././mainapp.py:10884 msgid "Installed version:" msgstr "설치된 버전:" -#: .././mainapp.py:10735 +#: .././mainapp.py:10889 msgid "Stable release:" msgstr "안정 버전:" -#: .././mainapp.py:10740 +#: .././mainapp.py:10894 msgid "Stable release: not found" msgstr "안정 버전: 존재하지 않음" -#: .././mainapp.py:10743 +#: .././mainapp.py:10897 msgid "Development release:" msgstr "개발 버전:" -#: .././mainapp.py:10745 +#: .././mainapp.py:10899 msgid "Development release: not found" msgstr "개발 버전 존재하지 않음" -#: .././mainapp.py:10852 +#: .././mainapp.py:11005 msgid "" "A tidy operation cannot start if one or more configuration windows are still " "open" msgstr "하나 이상의 설정 창이 열려있으면 마무리 작업이 시작되지 않습니다" -#: .././mainapp.py:10980 +#: .././mainapp.py:11133 msgid "Tidy operation complete" msgstr "마무리 작업 완료" -#: .././mainapp.py:10982 +#: .././mainapp.py:11135 msgid "Tidy operation halted" msgstr "마무리 작업 중지됨" -#: .././mainapp.py:11149 .././mainwin.py:19518 +#: .././mainapp.py:11301 .././mainwin.py:19600 msgid "Livestream has started" msgstr "생방송이 시작됨" -#: .././mainapp.py:11397 +#: .././mainapp.py:11549 msgid "Process operation complete" msgstr "처리 작업 완료됨" -#: .././mainapp.py:11399 +#: .././mainapp.py:11551 msgid "Process operation halted" msgstr "처리 작업이 중지됨" -#: .././mainapp.py:11403 +#: .././mainapp.py:11555 msgid "Files processed:" msgstr "처리된 파일:" -#: .././mainapp.py:11404 +#: .././mainapp.py:11556 msgid "Errors:" msgstr "오류:" -#: .././mainapp.py:12712 .././mainapp.py:12899 +#: .././mainapp.py:12871 .././mainapp.py:13070 msgid "Cannot move anything to:" msgstr "옮길 수 없습니다:" -#: .././mainapp.py:12714 .././mainapp.py:12901 +#: .././mainapp.py:12873 .././mainapp.py:13072 msgid "" "because a file or folder with the same name already exists (although " "Tartube's database doesn't know anything about it)" @@ -467,7 +467,7 @@ msgstr "" "(Tartube의 데이터베이스에선 확인할 수 없지만) 같은 이름의 파일이나 폴더가 존" "재하기 때문입니다" -#: .././mainapp.py:12718 +#: .././mainapp.py:12877 msgid "" "You probably created that file/folder accidentally, in which case you should " "delete it manually before trying again" @@ -475,19 +475,19 @@ msgstr "" "해당 파일이나 폴더를 실수로 만들었을 수 있으므로, 이 경우 재시도 전에 수동으" "로 삭제해야 합니다" -#: .././mainapp.py:12732 .././mainapp.py:12919 +#: .././mainapp.py:12891 .././mainapp.py:13090 msgid "Are you sure you want to move this channel:" msgstr "이 채널을 이동하시겠습니까?:" -#: .././mainapp.py:12734 .././mainapp.py:12921 +#: .././mainapp.py:12893 .././mainapp.py:13092 msgid "Are you sure you want to move this playlist:" msgstr "이 플레이리스트를 이동하시겠습니까?:" -#: .././mainapp.py:12736 .././mainapp.py:12923 +#: .././mainapp.py:12895 .././mainapp.py:13094 msgid "Are you sure you want to move this folder:" msgstr "이 폴더를 이동하시겠습니까?:" -#: .././mainapp.py:12741 +#: .././mainapp.py:12900 msgid "" "This procedure will move all downloaded files to the top level of Tartube's " "data folder" @@ -495,26 +495,31 @@ msgstr "" "이 작업은 모든 다운로드 받은 파일을 Tartube 데이터 폴더의 최상위 위치로 이동" "합니다" -#: .././mainapp.py:12841 +#: .././mainapp.py:12941 .././mainapp.py:13152 +#, python-brace-format +msgid "Could not move '{0}' (filesystem error)" +msgstr "" + +#: .././mainapp.py:13012 msgid "Channels, playlists and folders can only be dragged into a folder" msgstr "채널, 플레이리스트, 폴더만 폴더 안으로 드래그 할 수 있습ㄴ디ㅏ" -#: .././mainapp.py:12854 +#: .././mainapp.py:13025 #, python-brace-format msgid "The fixed folder '{0}' cannot be moved (but it can still be hidden)" msgstr "고정된 폴더 '{0}'(은)는 이동할 수 없습니다 (하지만 숨길 순 있습니다)" -#: .././mainapp.py:12867 +#: .././mainapp.py:13038 #, python-brace-format msgid "The folder '{0}' can only contain videos" msgstr "폴더 '{0}'은(는) 비디오만 넣을 수 있습니다" -#: .././mainapp.py:12879 +#: .././mainapp.py:13050 #, python-brace-format msgid "The folder '{0}' can only contain other folders and videos" msgstr "" -#: .././mainapp.py:12906 +#: .././mainapp.py:13077 msgid "" "You probably created that file/folder accidentally, in which case, you " "should delete it manually before trying again" @@ -522,15 +527,15 @@ msgstr "" "해당 파일이나 폴더를 실수로 만들었을 수 있으므로, 이 경우 재시도 전에 수동으" "로 삭제해야 합니다" -#: .././mainapp.py:12925 +#: .././mainapp.py:13096 msgid "into this folder:" msgstr "이 폴더로:" -#: .././mainapp.py:12929 +#: .././mainapp.py:13100 msgid "This procedure will move all downloaded files to the new location" msgstr "이 작업은 모든 다운로드 받은 파일을 새 위치로 이동합니다" -#: .././mainapp.py:12935 .././mainapp.py:13064 +#: .././mainapp.py:13106 .././mainapp.py:13244 msgid "" "WARNING: The destination folder is marked as temporary, so everything inside " "it will be DELETED when Tartube restarts!" @@ -538,139 +543,139 @@ msgstr "" "경고: 이 목적지 폴더는 임시 폴더이므로, Tartube가 재시작되면 해당 폴더 안의 " "모든게 삭제됩니다!!!" -#: .././mainapp.py:13042 +#: .././mainapp.py:13222 msgid "Videos cannot be dragged into this folder" msgstr "" -#: .././mainapp.py:13052 +#: .././mainapp.py:13232 #, python-brace-format msgid "Are you sure you want to move the video to '{0}'?" msgstr "" -#: .././mainapp.py:13058 +#: .././mainapp.py:13238 #, python-brace-format msgid "Are you sure you want to move '{0}' videos to '{1}'?" msgstr "" #. Show confirmation dialogue -#: .././mainapp.py:13211 +#: .././mainapp.py:13382 msgid "Videos moved" msgstr "" -#: .././mainapp.py:13212 +#: .././mainapp.py:13383 msgid "Videos not moved:" msgstr "" -#: .././mainapp.py:13620 +#: .././mainapp.py:13791 msgid "" "Are you SURE you want to delete files? This procedure cannot be reversed!" msgstr "정말로 파일을 삭제하겠습니까? 이 작업은 되돌릴 수 없습니다!" -#: .././mainapp.py:15498 .././mainapp.py:15614 .././mainapp.py:15796 +#: .././mainapp.py:15666 .././mainapp.py:15782 .././mainapp.py:15964 #, python-brace-format msgid "The channel contains {0} item(s), so this action may take a while" msgstr "이 채널은 {0}개의 항목이 있으므로, 시간이 걸릴 수 있습니다" -#: .././mainapp.py:15504 .././mainapp.py:15620 .././mainapp.py:15802 +#: .././mainapp.py:15672 .././mainapp.py:15788 .././mainapp.py:15970 #, python-brace-format msgid "The playlist contains {0} item(s), so this action may take a while" msgstr "이 플레이리스트는 {0}개의 항목이 있으므로, 시간이 걸릴 수 있습니다" -#: .././mainapp.py:15510 .././mainapp.py:15626 .././mainapp.py:15808 +#: .././mainapp.py:15678 .././mainapp.py:15794 .././mainapp.py:15976 #, python-brace-format msgid "The folder contains {0} item(s), so this action may take a while" msgstr "이 폴더는 {0}개의 항목이 있으므로, 시간이 걸릴 수 있습니다" -#: .././mainapp.py:15876 .././mainapp.py:21383 .././mainapp.py:21515 -#: .././mainapp.py:21646 .././config.py:22802 +#: .././mainapp.py:16044 .././mainapp.py:21553 .././mainapp.py:21685 +#: .././mainapp.py:21816 .././config.py:23784 #, python-brace-format msgid "The name '{0}' is not allowed" msgstr "파일 이름 '{0}'은(는) 허용되지 않았습니다" -#: .././mainapp.py:15885 .././config.py:22793 +#: .././mainapp.py:16053 .././config.py:23775 #, python-brace-format msgid "The name '{0}' is already in use" msgstr "파일 이름 '{0}'은(는) 이미 사용중입니다" -#: .././mainapp.py:15898 +#: .././mainapp.py:16063 #, python-brace-format msgid "Failed to rename '{0}'" msgstr "'{0}'로 이름변경에 실패했습니다." #. Confirm the result -#: .././mainapp.py:16105 +#: .././mainapp.py:16267 msgid "Search/replace complete" msgstr "" -#: .././mainapp.py:16106 +#: .././mainapp.py:16268 #, python-brace-format msgid "Updated URLs: {0}" msgstr "" -#: .././mainapp.py:16107 +#: .././mainapp.py:16269 #, python-brace-format msgid "Errors: {0}" msgstr "" -#: .././mainapp.py:16382 +#: .././mainapp.py:16544 msgid "Select where to save the database export" msgstr "내보낸 데이터베이스를 저장할 위치를 선택하세요" -#: .././mainapp.py:16507 +#: .././mainapp.py:16669 msgid "There is nothing to export!" msgstr "내보낼 항목이 없습니다!" -#: .././mainapp.py:16547 .././mainapp.py:16591 .././mainapp.py:16635 +#: .././mainapp.py:16709 .././mainapp.py:16753 .././mainapp.py:16797 msgid "Failed to save the database export file:" msgstr "내보낸 데이터베이스 파일을 저장하는데 실패했습니다:" -#: .././mainapp.py:16643 +#: .././mainapp.py:16805 msgid "Database export file saved to:" msgstr "내보낸 데이터베이스 파일이 저장되었습니다:" -#: .././mainapp.py:16862 +#: .././mainapp.py:17024 msgid "Select the database export" msgstr "내보낼 데이터베이스 파일을 선택하세요" -#: .././mainapp.py:16880 .././mainapp.py:16891 .././mainapp.py:16925 +#: .././mainapp.py:17042 .././mainapp.py:17053 .././mainapp.py:17087 msgid "Failed to load the database export file" msgstr "내보낸 데이터에피스 파일을 로드하는데 실패했습니다" -#: .././mainapp.py:16908 +#: .././mainapp.py:17070 msgid "The database export file is invalid" msgstr "내보낸 데이터베이스 파일이 잘못되었습니다" -#: .././mainapp.py:16939 +#: .././mainapp.py:17101 msgid "The database export file is invalid (or empty)" msgstr "내보낸 데이터베이스 파일이 잘못되었습니다 (혹은 비어있습니다)" -#: .././mainapp.py:16983 +#: .././mainapp.py:17145 msgid "Nothing was imported from the database export file" msgstr "내보낸 데이터베이스 파일에서 가져올 것이 없습니다" #. Show a confirmation -#: .././mainapp.py:16997 +#: .././mainapp.py:17159 msgid "Imported into database" msgstr "" -#: .././mainapp.py:16998 .././mainwin.py:1375 .././config.py:890 -#: .././config.py:14578 .././config.py:17495 +#: .././mainapp.py:17160 .././mainwin.py:1375 .././config.py:922 +#: .././config.py:15230 .././config.py:18227 msgid "Videos" msgstr "비디오" -#: .././mainapp.py:16999 .././config.py:14611 .././config.py:17528 +#: .././mainapp.py:17161 .././config.py:15263 .././config.py:18260 msgid "Channels" msgstr "채널" -#: .././mainapp.py:17000 .././config.py:14622 .././config.py:17539 +#: .././mainapp.py:17162 .././config.py:15274 .././config.py:18271 msgid "Playlists" msgstr "플레이리스트" -#: .././mainapp.py:17001 +#: .././mainapp.py:17163 msgid "Folders" msgstr "폴더" -#: .././mainapp.py:17673 +#: .././mainapp.py:17835 msgid "" "The video file is missing from Tartube's data folder (try downloading the " "video again!)" @@ -678,135 +683,135 @@ msgstr "" "비디오 파일이 Tartube의 데이터 폴더에 존재하지 않습니다 (다시 다운로드 시도" "해 보세요!)" -#: .././mainapp.py:18043 +#: .././mainapp.py:18205 msgid "Select where to save the custom download export" msgstr "" -#: .././mainapp.py:18100 +#: .././mainapp.py:18262 msgid "Failed to save the custom download export file:" msgstr "" -#: .././mainapp.py:18108 +#: .././mainapp.py:18270 msgid "Custom download exported to:" msgstr "" -#: .././mainapp.py:18139 +#: .././mainapp.py:18301 msgid "Select the custom download export file" msgstr "" -#: .././mainapp.py:18158 +#: .././mainapp.py:18320 msgid "Failed to load the custom download export file" msgstr "" -#: .././mainapp.py:18175 +#: .././mainapp.py:18337 msgid "The custom download export file is invalid" msgstr "" -#: .././mainapp.py:18186 +#: .././mainapp.py:18348 msgid "The custom download export file is invalid (or empty)" msgstr "" -#: .././mainapp.py:18713 .././mainapp.py:19095 +#: .././mainapp.py:18875 .././mainapp.py:19257 msgid "Select where to save the options export" msgstr "내보낸 설정을 저장할 위치를 선택하세요" -#: .././mainapp.py:18761 .././mainapp.py:19143 +#: .././mainapp.py:18923 .././mainapp.py:19305 msgid "Failed to save the options export file:" msgstr "내보낸 설정을 저장하는데 실패했습니다:" -#: .././mainapp.py:18769 +#: .././mainapp.py:18931 msgid "Download options exported to to:" msgstr "다운로드 옵션이 내보내졌습니다:" -#: .././mainapp.py:18800 .././mainapp.py:19182 +#: .././mainapp.py:18962 .././mainapp.py:19344 msgid "Select the options export file" msgstr "내보낼 설정 파일을 선택하세요" -#: .././mainapp.py:18819 .././mainapp.py:19201 +#: .././mainapp.py:18981 .././mainapp.py:19363 msgid "Failed to load the options export file" msgstr "내보낸 설정 파일을 불러오지 못했습니다" -#: .././mainapp.py:18836 .././mainapp.py:19218 +#: .././mainapp.py:18998 .././mainapp.py:19380 msgid "The options export file is invalid" msgstr "내보낸 설정 파일이 잘못되었습니다" -#: .././mainapp.py:18847 .././mainapp.py:19229 +#: .././mainapp.py:19009 .././mainapp.py:19391 msgid "The options export file is invalid (or empty)" msgstr "내보낸 설정 파일이 잘못되었습니다 (혹은 비어있습니다)" -#: .././mainapp.py:19151 +#: .././mainapp.py:19313 msgid "FFmpeg options exported to to:" msgstr "FFmpeg 설정이 내보내졌습니다:" -#: .././mainapp.py:20144 +#: .././mainapp.py:20314 msgid "Please select a destination folder" msgstr "목적지 폴더를 선택해주세요" #. Prompt for confirmation -#: .././mainapp.py:20216 +#: .././mainapp.py:20386 msgid "Are you sure you want to clear this list?" msgstr "정말로 이 리스트를 비우시겠습니까?" #. Prompt for confirmation -#: .././mainapp.py:20263 +#: .././mainapp.py:20433 msgid "Are you sure you want to clear downloaded videos?" msgstr "정말로 다운로드 받은 비디오들을 지우시겠습니까?" -#: .././mainapp.py:20366 .././mainwin.py:15571 +#: .././mainapp.py:20536 .././mainwin.py:15592 msgid "Only checked/downloaded videos can be processed by FFmpeg" msgstr "체크하거나 다운로드 받은 비디오들만 FFmpeg에 의해 처리됩니다" -#: .././mainapp.py:20483 +#: .././mainapp.py:20653 msgid "No video(s) have been downloaded" msgstr "아무 비디오도 다운로드 되지 않았습니다" #. Prompt for confirmation -#: .././mainapp.py:20625 +#: .././mainapp.py:20795 msgid "Are you sure you want to remove the selected item(s)?" msgstr "정말로 선택한 항목들을 삭제하시겠습니까?" -#: .././mainapp.py:21374 +#: .././mainapp.py:21544 msgid "You must give the channel a name" msgstr "채널에 이름을 입력해야 합니다" -#: .././mainapp.py:21392 .././mainapp.py:21655 +#: .././mainapp.py:21562 .././mainapp.py:21825 msgid "You must enter a valid URL" msgstr "올바른 URL을 입력해야 합니다" -#: .././mainapp.py:21507 +#: .././mainapp.py:21677 msgid "You must give the folder a name" msgstr "폴더에 이름을 입력해야 합니다" -#: .././mainapp.py:21637 +#: .././mainapp.py:21807 msgid "You must give the playlist a name" msgstr "플레이리스트에 이름을 입력해야 합니다" -#: .././mainapp.py:21792 +#: .././mainapp.py:21962 msgid "The following videos are duplicates:" msgstr "해당하는 비디오들이 복제되었습니다:" -#: .././mainapp.py:21856 +#: .././mainapp.py:22026 msgid "There were no livestream alerts to cancel" msgstr "취소할 생방송 알림이 없습니다" -#: .././mainapp.py:21858 +#: .././mainapp.py:22028 msgid "Livestream alerts for 1 video were cancelled" msgstr "비디오 1개에 대한 생방송 알림이 취소되었습니다" -#: .././mainapp.py:21861 +#: .././mainapp.py:22031 #, python-brace-format msgid "Livestream alerts for {0} videos were cancelled" msgstr "비디오 {0}개에 대한 생방송 알림이 취소되었습니다" -#: .././mainapp.py:22249 +#: .././mainapp.py:22419 msgid "All Tartube data has been saved" msgstr "모든 Tartube 데이터가 저장되었습니다" -#: .././mainapp.py:22279 +#: .././mainapp.py:22449 msgid "Database saved" msgstr "데이터베이스 저장됨" -#: .././mainapp.py:22564 .././mainwin.py:14383 +#: .././mainapp.py:22734 .././mainwin.py:14404 msgid "" "Files cannot be recovered, after being deleted. Are you sure you want to " "continue?" @@ -815,39 +820,39 @@ msgstr "파일은 삭제된 뒤 복구가 불가능합니다. 계속하시겠습 #. Because livestream operations run silently in the background, when #. the user goes to the trouble of clicking a menu item in the #. main window's menu, tell them why nothing is happening -#: .././mainapp.py:22604 +#: .././mainapp.py:22774 msgid "Cannot update existing livestreams because" msgstr "존재하는 생방송을 업데이트 하지 못했습니다" -#: .././mainapp.py:22606 +#: .././mainapp.py:22776 msgid "there is another operation running" msgstr "다른 작업이 진행중입니다" -#: .././mainapp.py:22608 +#: .././mainapp.py:22778 msgid "they are currently being updated" msgstr "이미 업데이트를 진행중입니다" -#: .././mainapp.py:22610 +#: .././mainapp.py:22780 msgid "one or more configuration windows are open" msgstr "하나 이상의 설정 창이 열려있습니다" -#: .././mainapp.py:22612 +#: .././mainapp.py:22782 msgid "there are no livestreams to update" msgstr "업데이트 할 생방송이 없습니다" -#: .././mainapp.py:22686 +#: .././mainapp.py:22856 msgid "There is already a channel with that name" msgstr "동일한 이름을 가진 채널이 이미 존재합니다" -#: .././mainapp.py:22688 +#: .././mainapp.py:22858 msgid "There is already a playlist with that name" msgstr "동일한 이름을 가진 플레이리스트가 이미 존재합니다" -#: .././mainapp.py:22690 +#: .././mainapp.py:22860 msgid "There is already a folder with that name" msgstr "동일한 이름을 가진 폴더가 이미 존재합니다" -#: .././mainapp.py:22693 +#: .././mainapp.py:22863 msgid "(so please choose a different name)" msgstr "(다른 이름을 설정해 주세요)" @@ -856,7 +861,7 @@ msgid "Tartube cannot start because it cannot find its icons folder" msgstr "아이콘 폴더를 찾지 못해 Tartube를 켜지 못했습니다" #. File column -#: .././mainwin.py:1025 .././config.py:9014 +#: .././mainwin.py:1025 .././config.py:9173 msgid "_File" msgstr "_파일" @@ -881,7 +886,7 @@ msgid "_Close to tray" msgstr "_트레이 아이콘으로 숨기기" #. Quit -#: .././mainwin.py:1067 .././mainwin.py:24335 +#: .././mainwin.py:1067 .././mainwin.py:24436 msgid "_Quit" msgstr "_나가기" @@ -899,7 +904,7 @@ msgid "_General download options..." msgstr "_일반 다운로드 설정..." #. Media column -#: .././mainwin.py:1091 .././config.py:15303 +#: .././mainwin.py:1091 .././config.py:15952 msgid "_Media" msgstr "_미디어" @@ -953,17 +958,17 @@ msgstr "_테스트 코드 실행하기" #. Operations column #. Add this tab... -#: .././mainwin.py:1192 .././config.py:18991 +#: .././mainwin.py:1192 .././config.py:19774 msgid "_Operations" msgstr "_작업" #. Check all -#: .././mainwin.py:1199 .././mainwin.py:24306 +#: .././mainwin.py:1199 .././mainwin.py:24407 msgid "_Check all" msgstr "_모두 선택" #. Download all -#: .././mainwin.py:1205 .././mainwin.py:24313 +#: .././mainwin.py:1205 .././mainwin.py:24414 msgid "_Download all" msgstr "_모두 다운로드" @@ -979,7 +984,7 @@ msgstr "_데이터베이스 새로고침..." msgid "U_pdate" msgstr "_업데이트" -#: .././mainwin.py:1236 .././mainwin.py:3396 +#: .././mainwin.py:1236 .././mainwin.py:3419 msgid "_Test" msgstr "_테스트" @@ -991,7 +996,7 @@ msgstr "_FFmpeg 설치..." msgid "Tidy up _files..." msgstr "_파일 정리하기..." -#: .././mainwin.py:1267 .././mainwin.py:24324 +#: .././mainwin.py:1267 .././mainwin.py:24425 msgid "_Stop current operation" msgstr "_현재 작업 멈추기" @@ -1041,7 +1046,7 @@ msgstr "_피드백 보내기" msgid "Add new video(s)" msgstr "새 비디오(들) 만들기" -#: .././mainwin.py:1394 .././mainwin.py:22943 .././media.py:82 +#: .././mainwin.py:1394 .././mainwin.py:23042 .././media.py:82 msgid "Channel" msgstr "채널" @@ -1049,7 +1054,7 @@ msgstr "채널" msgid "Add a new channel" msgstr "새 채널 만들기" -#: .././mainwin.py:1415 .././mainwin.py:22945 .././media.py:84 +#: .././mainwin.py:1415 .././mainwin.py:23044 .././media.py:84 msgid "Playlist" msgstr "플레이리스트" @@ -1057,7 +1062,7 @@ msgstr "플레이리스트" msgid "Add a new playlist" msgstr "새 플레이리스트 만들기" -#: .././mainwin.py:1436 .././mainwin.py:22947 .././media.py:86 +#: .././mainwin.py:1436 .././mainwin.py:23046 .././media.py:86 msgid "Folder" msgstr "폴더" @@ -1065,12 +1070,12 @@ msgstr "폴더" msgid "Add a new folder" msgstr "새 폴더 만들기" -#: .././mainwin.py:1460 .././config.py:18821 +#: .././mainwin.py:1460 .././config.py:19600 msgid "Check" msgstr "선택" -#: .././mainwin.py:1471 .././mainwin.py:1715 .././mainwin.py:3927 -#: .././mainwin.py:4208 +#: .././mainwin.py:1471 .././mainwin.py:1715 .././mainwin.py:3950 +#: .././mainwin.py:4231 msgid "Check all videos, channels, playlists and folders" msgstr "모든 비디오, 채널, 플레이리스트, 폴더 선택" @@ -1080,23 +1085,22 @@ msgstr "모든 비디오, 채널, 플레이리스트, 폴더 선택" #. then use a Glib timer to restore it (after some small fraction of a #. second) #. Link not clickable -#: .././mainwin.py:1481 .././mainwin.py:20746 .././mainwin.py:20758 -#: .././mainwin.py:20763 .././mainwin.py:20771 .././mainwin.py:21049 -#: .././mainwin.py:21061 .././mainwin.py:21796 .././mainwin.py:23132 -#: .././mainwin.py:23144 .././mainwin.py:23170 .././config.py:18697 -#: .././config.py:18823 +#: .././mainwin.py:1481 .././mainwin.py:20840 .././mainwin.py:20852 +#: .././mainwin.py:20857 .././mainwin.py:20865 .././mainwin.py:21143 +#: .././mainwin.py:21155 .././mainwin.py:21890 .././mainwin.py:23231 +#: .././mainwin.py:23243 .././mainwin.py:23269 .././config.py:19476 +#: .././config.py:19602 msgid "Download" msgstr "다운로드" -#: .././mainwin.py:1492 .././mainwin.py:1723 .././mainwin.py:3935 -#: .././mainwin.py:4214 +#: .././mainwin.py:1492 .././mainwin.py:1723 .././mainwin.py:3958 +#: .././mainwin.py:4237 msgid "Download all videos, channels, playlists and folders" msgstr "모든 비디오, 채널, 플레이리스트, 폴더 다운로드" -#: .././mainwin.py:1507 .././mainwin.py:28473 .././config.py:9703 -#: .././config.py:9892 .././config.py:9967 .././config.py:10355 -#: .././config.py:10566 .././config.py:10641 .././config.py:12985 -#: .././config.py:13163 .././config.py:13218 +#: .././mainwin.py:1507 .././config.py:9858 .././config.py:10043 +#: .././config.py:10498 .././config.py:10705 .././config.py:13130 +#: .././config.py:13303 msgid "Stop" msgstr "정지" @@ -1104,7 +1108,7 @@ msgstr "정지" msgid "Stop the current operation" msgstr "현재 작업 정지" -#: .././mainwin.py:1531 .././config.py:16723 +#: .././mainwin.py:1531 .././config.py:17403 msgid "Switch" msgstr "변경" @@ -1112,19 +1116,19 @@ msgstr "변경" msgid "Switch between simple and complex views" msgstr "단순 뷰와 복잡한 뷰 변경" -#: .././mainwin.py:1555 .././mainwin.py:3443 +#: .././mainwin.py:1555 .././mainwin.py:3466 msgid "Hide" msgstr "숨기기" -#: .././mainwin.py:1557 .././mainwin.py:3450 +#: .././mainwin.py:1557 .././mainwin.py:3473 msgid "Show" msgstr "보이기" -#: .././mainwin.py:1569 .././mainwin.py:3445 +#: .././mainwin.py:1569 .././mainwin.py:3468 msgid "Hide (most) system folders" msgstr "(대부분의) 시스템 폴더 숨기기" -#: .././mainwin.py:1573 .././mainwin.py:3452 +#: .././mainwin.py:1573 .././mainwin.py:3475 msgid "Show all system folders" msgstr "모든 폴더 시스템 보이기" @@ -1136,8 +1140,8 @@ msgstr "종료" msgid "Close Tartube" msgstr "Tartube 닫기" -#: .././mainwin.py:1620 .././config.py:5747 .././config.py:10771 -#: .././config.py:16977 .././config.py:17913 +#: .././mainwin.py:1620 .././config.py:5856 .././config.py:10919 +#: .././config.py:17665 .././config.py:18658 msgid "_Videos" msgstr "_비디오들" @@ -1149,34 +1153,34 @@ msgstr "_작업들" msgid "_Classic Mode" msgstr "_클래식 모드" -#: .././mainwin.py:1645 .././config.py:5473 +#: .././mainwin.py:1645 .././config.py:5574 msgid "_Output" msgstr "_출력" -#: .././mainwin.py:1654 .././config.py:13319 .././config.py:14238 +#: .././mainwin.py:1654 .././config.py:13905 .././config.py:14895 msgid "_Errors / Warnings" msgstr "_오류 / 경고" -#: .././mainwin.py:1713 .././mainwin.py:3925 .././mainwin.py:4205 +#: .././mainwin.py:1713 .././mainwin.py:3948 .././mainwin.py:4228 msgid "Check all" msgstr "모두 선택" -#: .././mainwin.py:1721 .././mainwin.py:3033 .././mainwin.py:3933 -#: .././mainwin.py:17576 +#: .././mainwin.py:1721 .././mainwin.py:3033 .././mainwin.py:3956 +#: .././mainwin.py:17645 msgid "Download all" msgstr "모두 다운로드" -#: .././mainwin.py:1739 .././mainwin.py:3037 .././mainwin.py:3951 -#: .././mainwin.py:17567 +#: .././mainwin.py:1739 .././mainwin.py:3037 .././mainwin.py:3974 +#: .././mainwin.py:17636 msgid "Custom download all" msgstr "" -#: .././mainwin.py:1742 .././mainwin.py:3954 .././mainwin.py:4228 +#: .././mainwin.py:1742 .././mainwin.py:3977 .././mainwin.py:4251 msgid "" "Perform a custom download of all videos, channels, playlists and folders" msgstr "" -#: .././mainwin.py:1759 .././mainwin.py:3971 .././mainwin.py:4235 +#: .././mainwin.py:1759 .././mainwin.py:3994 .././mainwin.py:4258 msgid "Select the custom download to use" msgstr "" @@ -1221,7 +1225,7 @@ msgstr "스크롤 업" msgid "Scroll down" msgstr "스크롤 다운" -#: .././mainwin.py:1977 .././mainwin.py:4414 +#: .././mainwin.py:1977 .././mainwin.py:4437 msgid "Show more settings" msgstr "더 많은 설정" @@ -1229,14 +1233,14 @@ msgstr "더 많은 설정" msgid "Sort" msgstr "정렬" -#: .././mainwin.py:1996 .././config.py:12720 +#: .././mainwin.py:1996 .././config.py:12867 msgid "Upload time" msgstr "업로드 시간" -#: .././mainwin.py:1997 .././mainwin.py:3198 .././mainwin.py:24728 -#: .././mainwin.py:27302 .././config.py:2829 .././config.py:10796 -#: .././config.py:17243 .././config.py:18697 .././config.py:19525 -#: .././config.py:21160 .././config.py:21427 +#: .././mainwin.py:1997 .././mainwin.py:3198 .././mainwin.py:24828 +#: .././mainwin.py:27404 .././config.py:2860 .././config.py:10943 +#: .././config.py:17967 .././config.py:19476 .././config.py:20325 +#: .././config.py:22077 .././config.py:22352 msgid "Name" msgstr "이름" @@ -1272,7 +1276,7 @@ msgstr "필터" msgid "Enter search text" msgstr "검색 텍스트 입력" -#: .././mainwin.py:2107 .././config.py:17297 +#: .././mainwin.py:2107 .././config.py:18021 msgid "Regex" msgstr "정규식" @@ -1304,7 +1308,7 @@ msgstr "날짜로 비디오 찾기 취소" msgid "TRANSLATOR'S NOTE: Ext is short for a file extension, e.g. .EXE" msgstr "번역가 노트: Ext는 파일 확장자의 줄임말임, 예) EXE" -#: .././mainwin.py:2252 .././mainwin.py:2859 .././config.py:9157 +#: .././mainwin.py:2252 .././mainwin.py:2859 .././config.py:9315 msgid "Source" msgstr "소스" @@ -1328,11 +1332,11 @@ msgstr "속도" msgid "ETA" msgstr "예상 시간" -#: .././mainwin.py:2340 .././config.py:14103 +#: .././mainwin.py:2340 .././config.py:14761 msgid "New videos" msgstr "새 비디오" -#: .././mainwin.py:2340 .././config.py:406 .././config.py:12690 +#: .././mainwin.py:2340 .././config.py:438 .././config.py:12837 msgid "Duration" msgstr "기간" @@ -1340,7 +1344,7 @@ msgstr "기간" msgid "Date" msgstr "날짜" -#: .././mainwin.py:2341 .././config.py:12560 +#: .././mainwin.py:2341 .././config.py:12715 msgid "File" msgstr "파일" @@ -1356,11 +1360,11 @@ msgstr "최대 다운로드" msgid "D/L speed (KiB/s)" msgstr "다운로드 속도(KiB/s)" -#: .././mainwin.py:2449 .././mainwin.py:4620 +#: .././mainwin.py:2449 .././mainwin.py:4643 msgid "Alternative limits do not currently apply" msgstr "" -#: .././mainwin.py:2460 .././config.py:4172 +#: .././mainwin.py:2460 .././config.py:4198 msgid "Video resolution" msgstr "비디오 해상도" @@ -1389,7 +1393,7 @@ msgstr "클래식 모드 메뉴 열기" #. enabled, URLs are automatically copied into this textview #. -------------------------------------------------------------------- #. Initial widgets -#: .././mainwin.py:2616 .././mainwin.py:24629 +#: .././mainwin.py:2616 .././mainwin.py:24729 msgid "Enter URLs below" msgstr "하단에 URL을 입력해주세요" @@ -1417,16 +1421,16 @@ msgid "Format:" msgstr "포맷:" #. (Dummy items in the combo) -#: .././mainwin.py:2725 .././mainwin.py:17296 .././config.py:19525 -#: .././config.py:21160 +#: .././mainwin.py:2725 .././mainwin.py:17365 .././config.py:20325 +#: .././config.py:22077 msgid "Default" msgstr "기본" -#: .././mainwin.py:2725 .././mainwin.py:17297 +#: .././mainwin.py:2725 .././mainwin.py:17366 msgid "Video:" msgstr "비디오:" -#: .././mainwin.py:2729 .././mainwin.py:17298 +#: .././mainwin.py:2729 .././mainwin.py:17367 msgid "Audio:" msgstr "오디오:" @@ -1455,14 +1459,14 @@ msgid "Play video" msgstr "비디오 재생" #. (Signal connect appears below) -#: .././mainwin.py:2951 .././config.py:4653 .././config.py:16760 -#: .././config.py:18762 +#: .././mainwin.py:2951 .././config.py:4700 .././config.py:17440 +#: .././config.py:19541 msgid "Move up" msgstr "위로 올리기" #. (Signal connect appears below) -#: .././mainwin.py:2972 .././config.py:4657 .././config.py:16768 -#: .././config.py:18771 +#: .././mainwin.py:2972 .././config.py:4704 .././config.py:17448 +#: .././config.py:19550 msgid "Move down" msgstr "아래로 내리기" @@ -1478,11 +1482,11 @@ msgstr "다운로드 중지하기" msgid "Process with FFmpeg" msgstr "FFmpeg로 처리" -#: .././mainwin.py:3045 .././mainwin.py:17579 +#: .././mainwin.py:3045 .././mainwin.py:17648 msgid "Download the URLs above" msgstr "위의 URL들 다운받기" -#: .././mainwin.py:3049 .././mainwin.py:17570 +#: .././mainwin.py:3049 .././mainwin.py:17639 msgid "Perform a custom download on the URLs above" msgstr "" @@ -1502,7 +1506,7 @@ msgstr "다운로드된 항목 비우기" msgid "Maximum page size" msgstr "최대 페이지 크기" -#: .././mainwin.py:3198 .././config.py:18697 +#: .././mainwin.py:3198 .././config.py:13622 .././config.py:19476 msgid "Time" msgstr "시간" @@ -1530,707 +1534,707 @@ msgstr "서버 경고 표시하기" msgid "Show dates" msgstr "" -#: .././mainwin.py:3312 .././config.py:9804 .././config.py:10015 -#: .././config.py:10456 .././config.py:10690 .././config.py:13077 -#: .././config.py:13266 .././config.py:15405 +#: .././mainwin.py:3312 .././config.py:9955 .././config.py:10159 +#: .././config.py:10595 .././config.py:10822 .././config.py:13218 +#: .././config.py:13402 .././config.py:16053 msgid "Clear list" msgstr "리스트 초기화" -#: .././mainwin.py:3808 +#: .././mainwin.py:3831 msgid "Checking..." msgstr "확인중..." -#: .././mainwin.py:3810 +#: .././mainwin.py:3833 msgid "Downloading..." msgstr "다운로드중..." -#: .././mainwin.py:3812 +#: .././mainwin.py:3835 msgid "Refreshing..." msgstr "재시작중..." -#: .././mainwin.py:3814 +#: .././mainwin.py:3837 msgid "Tidying..." msgstr "정리중..." -#: .././mainwin.py:3816 +#: .././mainwin.py:3839 msgid "FFmpeg processing..." msgstr "FFmpeg 작업중..." -#: .././mainwin.py:4180 +#: .././mainwin.py:4203 msgid "Installing FFmpeg" msgstr "FFmpeg 설치중" -#: .././mainwin.py:4182 +#: .././mainwin.py:4205 msgid "Updating downloader" msgstr "다운로더 업데이트중" -#: .././mainwin.py:4184 +#: .././mainwin.py:4207 msgid "Fetching formats" msgstr "포맷 동기화하기" -#: .././mainwin.py:4186 +#: .././mainwin.py:4209 msgid "Fetching subtitles" msgstr "자막 동기화하기" -#: .././mainwin.py:4188 +#: .././mainwin.py:4211 msgid "Testing downloader" msgstr "다운로더 테스팅" -#: .././mainwin.py:4190 +#: .././mainwin.py:4213 msgid "Contacting website" msgstr "웹사이트 방문" -#: .././mainwin.py:4443 +#: .././mainwin.py:4466 msgid "Show fewer settings" msgstr "적은 설정 보여주기" -#: .././mainwin.py:4610 +#: .././mainwin.py:4633 msgid "Alternative limits currently apply" msgstr "" -#: .././mainwin.py:4823 +#: .././mainwin.py:4849 msgid "_Check channel" msgstr "_채널 체크" -#: .././mainwin.py:4825 +#: .././mainwin.py:4851 msgid "_Check playlist" msgstr "_플레이리스트 체크" -#: .././mainwin.py:4827 +#: .././mainwin.py:4853 msgid "_Check folder" msgstr "_폴더 체크" -#: .././mainwin.py:4848 +#: .././mainwin.py:4874 msgid "_Download channel" msgstr "_채널 다운로드" -#: .././mainwin.py:4850 +#: .././mainwin.py:4876 msgid "_Download playlist" msgstr "_플레이리슽 다운로드" -#: .././mainwin.py:4852 +#: .././mainwin.py:4878 msgid "_Download folder" msgstr "_폴더 다운로드" -#: .././mainwin.py:4873 +#: .././mainwin.py:4899 msgid "C_ustom download channel" msgstr "_커스텀 다운로드 채널" -#: .././mainwin.py:4875 +#: .././mainwin.py:4901 msgid "C_ustom download playlist" msgstr "_커스텀 다운로드 플레이스트" -#: .././mainwin.py:4877 +#: .././mainwin.py:4903 msgid "C_ustom download folder" msgstr "_커스텀 다운로드 폴더" -#: .././mainwin.py:4924 +#: .././mainwin.py:4950 msgid "_Empty folder" msgstr "_빈 폴더" -#: .././mainwin.py:4936 +#: .././mainwin.py:4962 msgid "_All contents" msgstr "_모든 컨텐츠" -#: .././mainwin.py:4954 +#: .././mainwin.py:4980 msgid "_Remove videos" msgstr "_비디오들 지우기" -#: .././mainwin.py:4966 +#: .././mainwin.py:4992 msgid "_Just folder videos" msgstr "_폴더 비디오들만" -#: .././mainwin.py:4972 +#: .././mainwin.py:4998 msgid "Channel co_ntents" msgstr "채널 컨텐츠" -#: .././mainwin.py:4974 +#: .././mainwin.py:5000 msgid "Playlist co_ntents" msgstr "플레이리스트 컨텐츠" -#: .././mainwin.py:4976 +#: .././mainwin.py:5002 msgid "Folder co_ntents" msgstr "폴더 컨텐츠" -#: .././mainwin.py:4988 +#: .././mainwin.py:5014 msgid "_Move to top level" msgstr "_최상단으로 옮기기" -#: .././mainwin.py:5006 +#: .././mainwin.py:5032 msgid "_Convert to playlist" msgstr "_플레이리스트로 변환하기" -#: .././mainwin.py:5008 +#: .././mainwin.py:5034 msgid "_Convert to channel" msgstr "_채널로 변환하기" -#: .././mainwin.py:5031 +#: .././mainwin.py:5057 msgid "_Hide folder" msgstr "_폴더 숨기기" -#: .././mainwin.py:5041 +#: .././mainwin.py:5067 msgid "_Rename channel..." msgstr "_채널 이름 변경..." -#: .././mainwin.py:5043 +#: .././mainwin.py:5069 msgid "_Rename playlist..." msgstr "_플레이리스트 이름 변경..." -#: .././mainwin.py:5045 +#: .././mainwin.py:5071 msgid "_Rename folder..." msgstr "_폴더 이름 변경..." -#: .././mainwin.py:5062 +#: .././mainwin.py:5088 msgid "Set _nickname..." msgstr "_닉네임 설정..." -#: .././mainwin.py:5077 +#: .././mainwin.py:5103 msgid "Set _URL..." msgstr "_URL 설정..." -#: .././mainwin.py:5089 +#: .././mainwin.py:5115 msgid "Set _download destination..." msgstr "_다운로드 목적지 설정..." -#: .././mainwin.py:5107 +#: .././mainwin.py:5133 msgid "_Export channel..." msgstr "_채널 내보내기..." -#: .././mainwin.py:5109 +#: .././mainwin.py:5135 msgid "_Export playlist..." msgstr "_플레이리스트 내보내기..." -#: .././mainwin.py:5111 +#: .././mainwin.py:5137 msgid "_Export folder..." msgstr "_폴더 내보내기..." -#: .././mainwin.py:5124 +#: .././mainwin.py:5150 msgid "Re_fresh channel" msgstr "_채널 새로고침" -#: .././mainwin.py:5126 +#: .././mainwin.py:5152 msgid "Re_fresh playlist" msgstr "_플레이리스트 새로고침" -#: .././mainwin.py:5128 +#: .././mainwin.py:5154 msgid "Re_fresh folder" msgstr "_폴더 새로고침" -#: .././mainwin.py:5145 +#: .././mainwin.py:5171 msgid "_Tidy up channel" msgstr "_채널 정리" -#: .././mainwin.py:5147 +#: .././mainwin.py:5173 msgid "_Tidy up playlist" msgstr "_플레이리스트 정리" -#: .././mainwin.py:5149 +#: .././mainwin.py:5175 msgid "_Tidy up folder" msgstr "_폴더 정리" -#: .././mainwin.py:5166 +#: .././mainwin.py:5192 msgid "Add to _Classic Mode tab" msgstr "_클래식 모드 탭에 추가하기" -#: .././mainwin.py:5180 +#: .././mainwin.py:5206 msgid "Channel _actions" msgstr "_채널 액션" -#: .././mainwin.py:5182 +#: .././mainwin.py:5208 msgid "Playlist _actions" msgstr "_플레이리스트 액션" -#: .././mainwin.py:5184 +#: .././mainwin.py:5210 msgid "Folder _actions" msgstr "_폴더 액션" -#: .././mainwin.py:5204 .././mainwin.py:5943 +#: .././mainwin.py:5230 .././mainwin.py:5969 msgid "_Apply download options..." msgstr "_다운로드 설정 적용하기..." -#: .././mainwin.py:5222 .././mainwin.py:5957 +#: .././mainwin.py:5248 .././mainwin.py:5983 msgid "_Remove download options" msgstr "_다운로드 설정 제거하기" -#: .././mainwin.py:5238 .././mainwin.py:5969 +#: .././mainwin.py:5264 .././mainwin.py:5995 msgid "_Edit download options..." msgstr "_다운로드 설정 수정하기..." -#: .././mainwin.py:5254 +#: .././mainwin.py:5280 msgid "Add to s_cheduled download..." msgstr "_예약 다운로드에 추가하기..." -#: .././mainwin.py:5264 +#: .././mainwin.py:5290 msgid "_Show system command..." msgstr "_시스템 명령 표시하기..." -#: .././mainwin.py:5283 +#: .././mainwin.py:5309 msgid "Set _removal time..." msgstr "" -#: .././mainwin.py:5296 +#: .././mainwin.py:5322 msgid "_Don't add videos to Tartube's database" msgstr "" -#: .././mainwin.py:5308 +#: .././mainwin.py:5334 msgid "_Disable checking/downloading" msgstr "_확인/다운로드 비활성화" -#: .././mainwin.py:5320 +#: .././mainwin.py:5346 msgid "_Just disable downloading" msgstr "_다운로드만 비활성화" -#: .././mainwin.py:5341 .././mainwin.py:6028 +#: .././mainwin.py:5367 .././mainwin.py:6054 msgid "D_ownloads" msgstr "_다운로드" -#: .././mainwin.py:5352 +#: .././mainwin.py:5378 msgid "Channel _properties..." msgstr "_채널 속성..." -#: .././mainwin.py:5354 +#: .././mainwin.py:5380 msgid "Playlist _properties..." msgstr "_플레이리스트 속성..." -#: .././mainwin.py:5356 +#: .././mainwin.py:5382 msgid "Folder _properties..." msgstr "_폴더 속성..." -#: .././mainwin.py:5372 +#: .././mainwin.py:5398 msgid "_Default location" msgstr "_기본 경로" -#: .././mainwin.py:5385 +#: .././mainwin.py:5411 msgid "_Actual location" msgstr "_실제 경로" -#: .././mainwin.py:5399 +#: .././mainwin.py:5425 msgid "_Show" msgstr "_보이기" -#: .././mainwin.py:5408 +#: .././mainwin.py:5434 msgid "D_elete channel" msgstr "_채널 삭제하기" -#: .././mainwin.py:5410 +#: .././mainwin.py:5436 msgid "D_elete playlist" msgstr "_플레이리스트 삭제하기" -#: .././mainwin.py:5412 +#: .././mainwin.py:5438 msgid "D_elete folder" msgstr "_폴더 삭제하기" -#: .././mainwin.py:5510 +#: .././mainwin.py:5536 msgid "_Check video" msgstr "_비디오 체크" -#: .././mainwin.py:5534 +#: .././mainwin.py:5560 msgid "_Download video" msgstr "_비디오 다운로드" -#: .././mainwin.py:5557 +#: .././mainwin.py:5583 msgid "Re-_download this video" msgstr "_이 비디오 다시 다운받기" -#: .././mainwin.py:5575 +#: .././mainwin.py:5601 msgid "C_ustom download video" msgstr "_커스텀 비디오 다운로드" -#: .././mainwin.py:5593 .././mainwin.py:5905 +#: .././mainwin.py:5619 .././mainwin.py:5931 msgid "Download and _watch" msgstr "_다운로드 받고 보기" -#: .././mainwin.py:5613 .././mainwin.py:7418 +#: .././mainwin.py:5639 .././mainwin.py:7444 msgid "Watch in _player" msgstr "_플레이어에서 보기" -#: .././mainwin.py:5628 .././mainwin.py:5639 .././mainwin.py:7430 -#: .././mainwin.py:7448 +#: .././mainwin.py:5654 .././mainwin.py:5665 .././mainwin.py:7456 +#: .././mainwin.py:7474 msgid "Watch on _website" msgstr "_웹사이트에서 보기" -#: .././mainwin.py:5653 .././mainwin.py:7462 +#: .././mainwin.py:5679 .././mainwin.py:7488 msgid "_YouTube" msgstr "_유튜브" -#: .././mainwin.py:5663 .././mainwin.py:7472 +#: .././mainwin.py:5689 .././mainwin.py:7498 msgid "_HookTube" msgstr "_HookTube" -#: .././mainwin.py:5673 .././mainwin.py:7482 +#: .././mainwin.py:5699 .././mainwin.py:7508 msgid "_Invidious" msgstr "_Invidious" -#: .././mainwin.py:5683 .././mainwin.py:7492 +#: .././mainwin.py:5709 .././mainwin.py:7518 msgid "TRANSLATOR'S NOTE: Watch on YouTube, Watch on HookTube, etc" msgstr "TRANSLATOR'S NOTE: Watch on YouTube, Watch on HookTube, etc" -#: .././mainwin.py:5688 .././mainwin.py:7497 +#: .././mainwin.py:5714 .././mainwin.py:7523 msgid "W_atch on" msgstr "_보기" -#: .././mainwin.py:5702 +#: .././mainwin.py:5728 msgid "Create video cl_ip..." msgstr "" -#: .././mainwin.py:5708 +#: .././mainwin.py:5734 msgid "Download video cl_ip..." msgstr "" -#: .././mainwin.py:5724 +#: .././mainwin.py:5750 msgid "_Remove video slices..." msgstr "" -#: .././mainwin.py:5739 .././mainwin.py:7518 +#: .././mainwin.py:5765 .././mainwin.py:7544 msgid "_Process with FFmpeg..." msgstr "_FFmpeg로 처리하기..." -#: .././mainwin.py:5753 +#: .././mainwin.py:5779 msgid "_Special" msgstr "" -#: .././mainwin.py:5763 .././mainwin.py:7532 +#: .././mainwin.py:5789 .././mainwin.py:7558 msgid "Add to C_lassic Mode tab" msgstr "" -#: .././mainwin.py:5784 +#: .././mainwin.py:5810 msgid "Auto _notify" msgstr "_자동 알림" -#: .././mainwin.py:5800 +#: .././mainwin.py:5826 msgid "Auto _sound alarm" msgstr "_자동 사운드 알람" -#: .././mainwin.py:5815 +#: .././mainwin.py:5841 msgid "Auto _open" msgstr "_자동 열기" -#: .././mainwin.py:5828 +#: .././mainwin.py:5854 msgid "_Download on start" msgstr "_시작 시 다운로드" -#: .././mainwin.py:5843 +#: .././mainwin.py:5869 msgid "Download on _stop" msgstr "_중지 시 다운로드" -#: .././mainwin.py:5861 +#: .././mainwin.py:5887 msgid "Not a _livestream" msgstr "_생방송이 아님" -#: .././mainwin.py:5871 +#: .././mainwin.py:5897 msgid "_Livestream" msgstr "_생방송" -#: .././mainwin.py:5884 .././mainwin.py:7551 +#: .././mainwin.py:5910 .././mainwin.py:7577 msgid "_Mark for download" msgstr "_다운로드 마크하기" -#: .././mainwin.py:5895 .././mainwin.py:7563 +#: .././mainwin.py:5921 .././mainwin.py:7589 msgid "_Download" msgstr "_다운로드" -#: .././mainwin.py:5915 .././mainwin.py:7584 .././config.py:17424 +#: .././mainwin.py:5941 .././mainwin.py:7610 .././config.py:18152 msgid "_Temporary" msgstr "_임시" -#: .././mainwin.py:5985 +#: .././mainwin.py:6011 msgid "Show system _command" msgstr "_시스템 커맨드 보이기" -#: .././mainwin.py:5995 +#: .././mainwin.py:6021 msgid "_Test system command" msgstr "+시스템 커맨드 테스트" -#: .././mainwin.py:6010 +#: .././mainwin.py:6036 msgid "_Disable downloads" msgstr "_다운로드 비활성화" -#: .././mainwin.py:6043 +#: .././mainwin.py:6069 msgid "Video is _archived" msgstr "_비디오가 아카이브됨" -#: .././mainwin.py:6056 +#: .././mainwin.py:6082 msgid "Video is _bookmarked" msgstr "_비디오가 북마크됨" -#: .././mainwin.py:6067 +#: .././mainwin.py:6093 msgid "Video is _favourite" msgstr "_비디오가 즐겨찾기됨" -#: .././mainwin.py:6078 +#: .././mainwin.py:6104 msgid "Video is _missing" msgstr "_비디오가 사라짐" -#: .././mainwin.py:6094 +#: .././mainwin.py:6120 msgid "Video is _new" msgstr "_새 비디오" -#: .././mainwin.py:6107 +#: .././mainwin.py:6133 msgid "Video is in _waiting list" msgstr "_비디오가 대기 리스트에 있음" -#: .././mainwin.py:6118 +#: .././mainwin.py:6144 msgid "_Mark video" msgstr "_비디오 마크" -#: .././mainwin.py:6129 +#: .././mainwin.py:6155 msgid "_Location" msgstr "_위치" -#: .././mainwin.py:6141 +#: .././mainwin.py:6167 msgid "_Properties..." msgstr "_속성..." -#: .././mainwin.py:6153 +#: .././mainwin.py:6179 msgid "_Show video" msgstr "_비디오 보이기" -#: .././mainwin.py:6162 +#: .././mainwin.py:6188 msgid "Available _formats" msgstr "_가능한 포맷들" -#: .././mainwin.py:6172 +#: .././mainwin.py:6198 msgid "Available _subtitles" msgstr "_가능한 자막들" -#: .././mainwin.py:6182 +#: .././mainwin.py:6208 msgid "_Fetch" msgstr "_동기화" #. Delete video -#: .././mainwin.py:6193 +#: .././mainwin.py:6219 msgid "D_elete video" msgstr "_비디오 삭제하기" #. Check/download videos -#: .././mainwin.py:6300 +#: .././mainwin.py:6326 msgid "_Check videos" msgstr "_비디오 체크" -#: .././mainwin.py:6320 +#: .././mainwin.py:6346 msgid "_Download videos" msgstr "_비디오 다운로드" -#: .././mainwin.py:6343 +#: .././mainwin.py:6369 msgid "C_ustom download videos" msgstr "_커스텀 비디오 다운로드" -#: .././mainwin.py:6375 +#: .././mainwin.py:6401 msgid "_Archived" msgstr "_아카이브됨" -#: .././mainwin.py:6386 +#: .././mainwin.py:6412 msgid "Not a_rchived" msgstr "_아카이브 되지 않음" -#: .././mainwin.py:6400 +#: .././mainwin.py:6426 msgid "_Bookmarked" msgstr "_북마크됨" -#: .././mainwin.py:6411 +#: .././mainwin.py:6437 msgid "Not b_ookmarked" msgstr "_북마크 되지 않음" -#: .././mainwin.py:6425 +#: .././mainwin.py:6451 msgid "_Favourite" msgstr "_즐겨찾기됨" -#: .././mainwin.py:6436 +#: .././mainwin.py:6462 msgid "Not fa_vourite" msgstr "_즐겨찾기 되지 않음" -#: .././mainwin.py:6450 +#: .././mainwin.py:6476 msgid "_Missing" msgstr "_사라짐" -#: .././mainwin.py:6463 +#: .././mainwin.py:6489 msgid "Not m_issing" msgstr "_사라지지 않음" -#: .././mainwin.py:6479 +#: .././mainwin.py:6505 msgid "_New" msgstr "_새 비디오" -#: .././mainwin.py:6490 +#: .././mainwin.py:6516 msgid "Not n_ew" msgstr "_새 비디오가 아님" -#: .././mainwin.py:6504 +#: .././mainwin.py:6530 msgid "In _waiting list" msgstr "_대기 리스트에 있음" -#: .././mainwin.py:6515 +#: .././mainwin.py:6541 msgid "Not in w_aiting list" msgstr "_대기 리스트에 없음" -#: .././mainwin.py:6526 +#: .././mainwin.py:6552 msgid "_Mark videos" msgstr "_마크한 비디오" -#: .././mainwin.py:6535 +#: .././mainwin.py:6561 msgid "Show p_roperties..." msgstr "_속성 보이기..." #. Delete videos -#: .././mainwin.py:6550 +#: .././mainwin.py:6576 msgid "D_elete videos" msgstr "_비디오 삭제하기" #. Stop check/download -#: .././mainwin.py:6615 +#: .././mainwin.py:6641 msgid "_Stop now" msgstr "_지금 멈추기" -#: .././mainwin.py:6629 +#: .././mainwin.py:6655 msgid "Stop after this _video" msgstr "_이 비디오 이후에 멈추기" -#: .././mainwin.py:6644 +#: .././mainwin.py:6670 msgid "Stop after these v_ideos" msgstr "_이 비디오들 이후에 멈추기" -#: .././mainwin.py:6659 +#: .././mainwin.py:6685 msgid "Download _next" msgstr "_다음 다운받기" -#: .././mainwin.py:6671 +#: .././mainwin.py:6697 msgid "Download _last" msgstr "_마지막 다운받기" -#: .././mainwin.py:6694 +#: .././mainwin.py:6720 msgid "Watch on _YouTube" msgstr "_유튜브에서 보기" -#: .././mainwin.py:6704 +#: .././mainwin.py:6730 msgid "Watch on _HookTube" msgstr "_HookTube에서 보기" -#: .././mainwin.py:6714 +#: .././mainwin.py:6740 msgid "Watch on _Invidious" msgstr "_Invidious에서 보기" -#: .././mainwin.py:6726 +#: .././mainwin.py:6752 msgid "Watch on _Website" msgstr "_웹사이트에서 보기" -#: .././mainwin.py:6826 +#: .././mainwin.py:6852 msgid "_Delete video(s)" msgstr "_비디오(들) 삭제하기" -#: .././mainwin.py:6896 +#: .././mainwin.py:6922 msgid "Choose a custom download:" msgstr "" -#: .././mainwin.py:6972 +#: .././mainwin.py:6998 msgid "_Enable automatic copy/paste" msgstr "_자동 복사/붙여넣기 활성화" -#: .././mainwin.py:6984 +#: .././mainwin.py:7010 msgid "_Remember URLs" msgstr "_URL 기억하기" -#: .././mainwin.py:6999 +#: .././mainwin.py:7025 msgid "_Set download options" msgstr "_다운로드 설정 설정하기" -#: .././mainwin.py:7010 +#: .././mainwin.py:7036 msgid "Use _default download options" msgstr "_기본 다운로드 설정 사용" -#: .././mainwin.py:7022 +#: .././mainwin.py:7048 msgid "_Edit download options" msgstr "_다운로드 설정 편집" -#: .././mainwin.py:7036 +#: .././mainwin.py:7062 msgid "Enable _custom downloads" msgstr "_커스텀 다운로드 활성화" -#: .././mainwin.py:7049 +#: .././mainwin.py:7075 msgid "Custom downloads _preferences..." msgstr "_커스텀 다운로드 환경 설정..." -#: .././mainwin.py:7064 .././config.py:17106 +#: .././mainwin.py:7090 .././config.py:17798 msgid "_Update" msgstr "_업데이트" -#: .././mainwin.py:7117 +#: .././mainwin.py:7143 msgid "Copy file _path" msgstr "_파일 경로 복사하기" #. Copy URL -#: .././mainwin.py:7129 +#: .././mainwin.py:7155 msgid "Copy _URL" msgstr "_URL 복사하기" -#: .././mainwin.py:7141 +#: .././mainwin.py:7167 msgid "Copy system _command" msgstr "_시스템 커맨드 복사하기" -#: .././mainwin.py:7157 +#: .././mainwin.py:7183 msgid "_Open destination(s)" msgstr "_목적지 열기" -#: .././mainwin.py:7198 +#: .././mainwin.py:7224 msgid "Mark as _archived" msgstr "_아카이브로 표시하기" -#: .././mainwin.py:7209 +#: .././mainwin.py:7235 msgid "Mark as not a_rchived" msgstr "_아카이브 표시 없애기" -#: .././mainwin.py:7223 +#: .././mainwin.py:7249 msgid "Mark as _bookmarked" msgstr "_북마크로 표시하기" -#: .././mainwin.py:7235 +#: .././mainwin.py:7261 msgid "Mark as not b_ookmarked" msgstr "_북마크 표시 없애기" -#: .././mainwin.py:7248 +#: .././mainwin.py:7274 msgid "Mark as _favourite" msgstr "_즐겨찾기로 표시하기" -#: .././mainwin.py:7261 +#: .././mainwin.py:7287 msgid "Mark as not fa_vourite" msgstr "_즐겨찾기 표시 없애기" -#: .././mainwin.py:7275 +#: .././mainwin.py:7301 msgid "Mark as _missing" msgstr "_사라진것으로 표시하기" -#: .././mainwin.py:7288 +#: .././mainwin.py:7314 msgid "Mark as not m_issing" msgstr "_사라진것으로 표시 없애기" -#: .././mainwin.py:7305 +#: .././mainwin.py:7331 msgid "Mark as _new" msgstr "_새 비디오로 표시하기" -#: .././mainwin.py:7317 +#: .././mainwin.py:7343 msgid "Mark as not n_ew" msgstr "_새 비디오 표시 없애기" -#: .././mainwin.py:7331 +#: .././mainwin.py:7357 msgid "Mark as in _waiting list" msgstr "_대기 리스트로 표시하기" -#: .././mainwin.py:7343 +#: .././mainwin.py:7369 msgid "Mark as not in wai_ting list" msgstr "_대기 리스트로 표시 없애기" -#: .././mainwin.py:7398 +#: .././mainwin.py:7424 msgid "D_ownload and watch" msgstr "_다운로드 하고 보기" -#: .././mainwin.py:7507 +#: .././mainwin.py:7533 msgid "Mark as _not livestreams" msgstr "_생방송으로 표시하지 않기" -#: .././mainwin.py:7573 +#: .././mainwin.py:7599 msgid "_Download and watch" msgstr "_다운로드 하고 보기" -#: .././mainwin.py:8397 +#: .././mainwin.py:8423 msgid "" "TRANSLATOR'S NOTE: V = number of videos B = (number of videos) bookmarked D " "= downloaded F = favourite L = live/livestream M = missing N = new W = in " @@ -2240,39 +2244,39 @@ msgstr "" "= downloaded F = favourite L = live/livestream M = missing N = new W = in " "waiting list E = (number of) errors W = warnings" -#: .././mainwin.py:8404 +#: .././mainwin.py:8430 msgid "V:" msgstr "비디오:" -#: .././mainwin.py:8405 +#: .././mainwin.py:8431 msgid "B:" msgstr "북마크:" -#: .././mainwin.py:8406 +#: .././mainwin.py:8432 msgid "D:" msgstr "다운로드:" -#: .././mainwin.py:8407 +#: .././mainwin.py:8433 msgid "F:" msgstr "즐겨찾기:" -#: .././mainwin.py:8408 +#: .././mainwin.py:8434 msgid "L:" msgstr "생방송:" -#: .././mainwin.py:8409 +#: .././mainwin.py:8435 msgid "M:" msgstr "사라짐:" -#: .././mainwin.py:8410 +#: .././mainwin.py:8436 msgid "N:" msgstr "새비디오:" -#: .././mainwin.py:8411 .././mainwin.py:8422 +#: .././mainwin.py:8437 .././mainwin.py:8448 msgid "W:" msgstr "경고:" -#: .././mainwin.py:8421 +#: .././mainwin.py:8447 msgid "E:" msgstr "오류:" @@ -2280,13 +2284,13 @@ msgstr "오류:" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:10425 .././mainwin.py:11262 .././mainwin.py:21155 -#: .././mainwin.py:21159 .././mainwin.py:21739 .././mainwin.py:23298 -#: .././mainwin.py:23302 .././mainwin.py:23544 +#: .././mainwin.py:10449 .././mainwin.py:11286 .././mainwin.py:21249 +#: .././mainwin.py:21253 .././mainwin.py:21833 .././mainwin.py:23397 +#: .././mainwin.py:23401 .././mainwin.py:23643 msgid "Waiting" msgstr "대기" -#: .././mainwin.py:11915 +#: .././mainwin.py:11939 msgid "" "TRANSLATOR'S NOTE: Thread means a computer processor thread. If you're not " "sure how to translate it, just use 'Page #', as in Page #1, Page #2, etc" @@ -2294,171 +2298,171 @@ msgstr "" "TRANSLATOR'S NOTE: Thread means a computer processor thread. If you're not " "sure how to translate it, just use 'Page #', as in Page #1, Page #2, etc" -#: .././mainwin.py:11922 +#: .././mainwin.py:11946 msgid "Thread" msgstr "스레드" -#: .././mainwin.py:11925 +#: .././mainwin.py:11949 msgid "_Summary" msgstr "_요약" -#: .././mainwin.py:12524 +#: .././mainwin.py:12548 msgid "Tartube error" msgstr "Tartube 오류" -#: .././mainwin.py:12583 +#: .././mainwin.py:12607 msgid "Tartube warning" msgstr "Tartube 경고" -#: .././mainwin.py:12616 +#: .././mainwin.py:12640 msgid "_Errors" msgstr "_오류" -#: .././mainwin.py:12620 +#: .././mainwin.py:12644 msgid "Warnings" msgstr "_경고" -#: .././mainwin.py:12692 +#: .././mainwin.py:12716 msgid "" "There are not scheduled downloads that don't already contain the channel/" "playlist/folder" msgstr "채널/플레이리스트/폴더가 포함하지 않은 예약된 다운로드가 없습니다" -#: .././mainwin.py:14079 +#: .././mainwin.py:14103 msgid "The external folder is not available" msgstr "" -#: .././mainwin.py:14081 +#: .././mainwin.py:14105 msgid "The external directory is not available" msgstr "" -#: .././mainwin.py:14179 +#: .././mainwin.py:14203 msgid "The URL is not valid" msgstr "URL이 올바르지 않습니다" -#: .././mainwin.py:15458 .././config.py:11194 .././config.py:13522 +#: .././mainwin.py:15479 .././config.py:11343 .././config.py:14108 msgid "Invalid timestamp(s)" msgstr "" -#: .././mainwin.py:15640 .././mainwin.py:15649 .././config.py:11045 -#: .././config.py:11053 .././config.py:13418 .././config.py:13426 +#: .././mainwin.py:15663 .././mainwin.py:15672 .././config.py:11194 +#: .././config.py:11202 .././config.py:14004 .././config.py:14012 msgid "Invalid start/stop times" msgstr "" -#: .././mainwin.py:18580 +#: .././mainwin.py:18649 msgid "The following items are duplicates:" msgstr "다음 항목이 중복되었습니다:" -#: .././mainwin.py:18744 +#: .././mainwin.py:18813 #, python-brace-format msgid "The channel contains {0} items, so this action may take a while" msgstr "이 채널은 {0}개의 항목이 있으므로, 시간이 걸릴 수 있습니다" -#: .././mainwin.py:18751 +#: .././mainwin.py:18820 #, python-brace-format msgid "The playlist contains {0} items, so this action may take a while" msgstr "이 플레이리스트는 {0}개의 항목이 있으므로, 시간이 걸릴 수 있습니다" -#: .././mainwin.py:18758 +#: .././mainwin.py:18827 #, python-brace-format msgid "The folder contains {0} items, so this action may take a while" msgstr "이 폴더는 {0}개의 항목이 있으므로, 시간이 걸릴 수 있습니다" -#: .././mainwin.py:19472 .././mainwin.py:20507 +#: .././mainwin.py:19554 .././mainwin.py:20601 msgid "Originally from:" msgstr "원본:" -#: .././mainwin.py:19485 .././mainwin.py:20521 +#: .././mainwin.py:19567 .././mainwin.py:20615 msgid "From channel" msgstr "채널" -#: .././mainwin.py:19487 .././mainwin.py:20523 +#: .././mainwin.py:19569 .././mainwin.py:20617 msgid "From playlist" msgstr "플레이리스트" -#: .././mainwin.py:19489 .././mainwin.py:20525 +#: .././mainwin.py:19571 .././mainwin.py:20619 msgid "From folder" msgstr "폴더" -#: .././mainwin.py:19520 +#: .././mainwin.py:19602 msgid "Livestream has not started yet" msgstr "생방송이 아직 시작되지 않았습니다" -#: .././mainwin.py:19527 +#: .././mainwin.py:19609 msgid "Debut has started" msgstr "데뷔가 시작되었습니다" -#: .././mainwin.py:19529 +#: .././mainwin.py:19611 msgid "Debut has not started yet" msgstr "데뷔가 아직 시작되지 않았습니다" -#: .././mainwin.py:19536 .././mainwin.py:19542 .././mainwin.py:20575 -#: .././mainwin.py:20582 +#: .././mainwin.py:19618 .././mainwin.py:19624 .././mainwin.py:20669 +#: .././mainwin.py:20676 msgid "Duration:" msgstr "기간:" -#: .././mainwin.py:19542 .././mainwin.py:19548 .././mainwin.py:19559 -#: .././mainwin.py:20582 .././mainwin.py:20589 .././mainwin.py:20605 -#: .././mainwin.py:22999 .././mainwin.py:23005 .././mainwin.py:23016 -#: .././media.py:555 .././media.py:565 .././media.py:1956 .././media.py:1962 -#: .././media.py:1972 +#: .././mainwin.py:19624 .././mainwin.py:19630 .././mainwin.py:19641 +#: .././mainwin.py:20676 .././mainwin.py:20683 .././mainwin.py:20699 +#: .././mainwin.py:23098 .././mainwin.py:23104 .././mainwin.py:23115 +#: .././media.py:555 .././media.py:565 .././media.py:1978 .././media.py:1984 +#: .././media.py:1994 msgid "unknown" msgstr "알수 없음" -#: .././mainwin.py:19546 .././mainwin.py:19548 .././mainwin.py:20586 -#: .././mainwin.py:20588 +#: .././mainwin.py:19628 .././mainwin.py:19630 .././mainwin.py:20680 +#: .././mainwin.py:20682 msgid "Size:" msgstr "크기:" -#: .././mainwin.py:19557 .././mainwin.py:19559 .././mainwin.py:20600 +#: .././mainwin.py:19639 .././mainwin.py:19641 .././mainwin.py:20694 msgid "Date:" msgstr "날짜:" -#: .././mainwin.py:19899 +#: .././mainwin.py:19985 msgid "Watch:" msgstr "시청:" -#: .././mainwin.py:19968 +#: .././mainwin.py:20054 msgid "Temporary:" msgstr "임시:" -#: .././mainwin.py:20011 +#: .././mainwin.py:20097 msgid "Marked:" msgstr "마크:" -#: .././mainwin.py:20479 .././mainwin.py:20542 +#: .././mainwin.py:20573 .././mainwin.py:20636 msgid "Show the full description" msgstr "전체 설명 보이기" -#: .././mainwin.py:20480 .././mainwin.py:20543 +#: .././mainwin.py:20574 .././mainwin.py:20637 msgid "More" msgstr "더 보기" -#: .././mainwin.py:20492 .././mainwin.py:20551 +#: .././mainwin.py:20586 .././mainwin.py:20645 msgid "Show the short description" msgstr "간단한 설명 보이기" -#: .././mainwin.py:20493 .././mainwin.py:20552 +#: .././mainwin.py:20587 .././mainwin.py:20646 msgid "Less" msgstr "적은" -#: .././mainwin.py:20595 +#: .././mainwin.py:20689 msgid "Received:" msgstr "받아옴:" -#: .././mainwin.py:20624 +#: .././mainwin.py:20718 msgid "Live now:" msgstr "생방송 중:" -#: .././mainwin.py:20626 .././mainwin.py:23152 +#: .././mainwin.py:20720 .././mainwin.py:23251 msgid "Live soon:" msgstr "곧 생방송:" -#: .././mainwin.py:20635 +#: .././mainwin.py:20729 msgid "Debut now:" msgstr "데뷔 중:" -#: .././mainwin.py:20637 .././mainwin.py:23154 +#: .././mainwin.py:20731 .././mainwin.py:23253 msgid "Debut soon:" msgstr "곧 데뷔:" @@ -2466,14 +2470,14 @@ msgstr "곧 데뷔:" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20644 .././mainwin.py:20646 .././mainwin.py:20650 -#: .././mainwin.py:20935 .././mainwin.py:20937 .././mainwin.py:20941 -#: .././mainwin.py:21443 .././mainwin.py:23030 .././mainwin.py:23032 -#: .././mainwin.py:23036 +#: .././mainwin.py:20738 .././mainwin.py:20740 .././mainwin.py:20744 +#: .././mainwin.py:21029 .././mainwin.py:21031 .././mainwin.py:21035 +#: .././mainwin.py:21537 .././mainwin.py:23129 .././mainwin.py:23131 +#: .././mainwin.py:23135 msgid "Notify" msgstr "알림" -#: .././mainwin.py:20654 .././mainwin.py:20945 .././mainwin.py:23040 +#: .././mainwin.py:20748 .././mainwin.py:21039 .././mainwin.py:23139 msgid "When the livestream starts, notify the user" msgstr "생방송이 시작되면, 유저에게 알림" @@ -2481,13 +2485,13 @@ msgstr "생방송이 시작되면, 유저에게 알림" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20665 .././mainwin.py:20667 .././mainwin.py:20951 -#: .././mainwin.py:20953 .././mainwin.py:20956 .././mainwin.py:21325 -#: .././mainwin.py:23051 .././mainwin.py:23053 +#: .././mainwin.py:20759 .././mainwin.py:20761 .././mainwin.py:21045 +#: .././mainwin.py:21047 .././mainwin.py:21050 .././mainwin.py:21419 +#: .././mainwin.py:23150 .././mainwin.py:23152 msgid "Alarm" msgstr "알람" -#: .././mainwin.py:20671 .././mainwin.py:20960 .././mainwin.py:23057 +#: .././mainwin.py:20765 .././mainwin.py:21054 .././mainwin.py:23156 msgid "When the livestream starts, sound an alarm" msgstr "생방송이 시작되면, 알람을 소리로 울림" @@ -2495,13 +2499,13 @@ msgstr "생방송이 시작되면, 알람을 소리로 울림" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20676 .././mainwin.py:20678 .././mainwin.py:20966 -#: .././mainwin.py:20968 .././mainwin.py:20971 .././mainwin.py:21483 -#: .././mainwin.py:23062 .././mainwin.py:23064 +#: .././mainwin.py:20770 .././mainwin.py:20772 .././mainwin.py:21060 +#: .././mainwin.py:21062 .././mainwin.py:21065 .././mainwin.py:21577 +#: .././mainwin.py:23161 .././mainwin.py:23163 msgid "Open" msgstr "열기" -#: .././mainwin.py:20682 .././mainwin.py:20975 .././mainwin.py:23068 +#: .././mainwin.py:20776 .././mainwin.py:21069 .././mainwin.py:23167 msgid "When the livestream starts, open it" msgstr "생방송이 시작되면, 열기" @@ -2511,14 +2515,14 @@ msgstr "생방송이 시작되면, 열기" #. then use a Glib timer to restore it (after some small fraction of a #. second) #. (Livestream already broadcasting) -#: .././mainwin.py:20690 .././mainwin.py:20695 .././mainwin.py:20697 -#: .././mainwin.py:20981 .././mainwin.py:20983 .././mainwin.py:20986 -#: .././mainwin.py:21364 .././mainwin.py:23076 .././mainwin.py:23081 -#: .././mainwin.py:23083 +#: .././mainwin.py:20784 .././mainwin.py:20789 .././mainwin.py:20791 +#: .././mainwin.py:21075 .././mainwin.py:21077 .././mainwin.py:21080 +#: .././mainwin.py:21458 .././mainwin.py:23175 .././mainwin.py:23180 +#: .././mainwin.py:23182 msgid "D/L on start" msgstr "시작 시 다운로드" -#: .././mainwin.py:20701 .././mainwin.py:20990 .././mainwin.py:23087 +#: .././mainwin.py:20795 .././mainwin.py:21084 .././mainwin.py:23186 msgid "When the livestream starts, download it" msgstr "생방송이 시작되면, 다운로드 하기" @@ -2526,18 +2530,18 @@ msgstr "생방송이 시작되면, 다운로드 하기" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20707 .././mainwin.py:20712 .././mainwin.py:20714 -#: .././mainwin.py:20996 .././mainwin.py:20998 .././mainwin.py:21001 -#: .././mainwin.py:21404 .././mainwin.py:23093 .././mainwin.py:23098 -#: .././mainwin.py:23100 +#: .././mainwin.py:20801 .././mainwin.py:20806 .././mainwin.py:20808 +#: .././mainwin.py:21090 .././mainwin.py:21092 .././mainwin.py:21095 +#: .././mainwin.py:21498 .././mainwin.py:23192 .././mainwin.py:23197 +#: .././mainwin.py:23199 msgid "D/L on stop" msgstr "정지 시 다운로드" -#: .././mainwin.py:20718 .././mainwin.py:21005 .././mainwin.py:23104 +#: .././mainwin.py:20812 .././mainwin.py:21099 .././mainwin.py:23203 msgid "When the livestream stops, download it" msgstr "생방송이 끝나면, 다운로드 하기" -#: .././mainwin.py:20737 .././mainwin.py:23123 +#: .././mainwin.py:20831 .././mainwin.py:23222 msgid "Watch in your media player" msgstr "미디어 플레이어에서 보기" @@ -2545,15 +2549,15 @@ msgstr "미디어 플레이어에서 보기" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20738 .././mainwin.py:22132 .././mainwin.py:23124 +#: .././mainwin.py:20832 .././mainwin.py:22226 .././mainwin.py:23223 msgid "Player" msgstr "플레이어" -#: .././mainwin.py:20770 .././mainwin.py:23169 +#: .././mainwin.py:20864 .././mainwin.py:23268 msgid "Download this video" msgstr "이 비디오 다운로드받기" -#: .././mainwin.py:20785 .././mainwin.py:23184 +#: .././mainwin.py:20879 .././mainwin.py:23283 msgid "" "TRANSLATOR'S NOTE: If you want to use &, use & - if you want to use a " "different word (e.g. French et), then just use that word" @@ -2561,27 +2565,27 @@ msgstr "" "TRANSLATOR'S NOTE: If you want to use &, use & - if you want to use a " "different word (e.g. French et), then just use that word" -#: .././mainwin.py:20793 .././mainwin.py:23192 +#: .././mainwin.py:20887 .././mainwin.py:23291 msgid "Download and watch in your media player" msgstr "다운로드 하고 미디어 플레이어에서 보기" -#: .././mainwin.py:20794 +#: .././mainwin.py:20888 msgid "Download & watch" msgstr "다운로드 하고 보기" -#: .././mainwin.py:20801 +#: .././mainwin.py:20895 msgid "Not downloaded" msgstr "다운로드되지 않음" -#: .././mainwin.py:20827 +#: .././mainwin.py:20921 msgid "Watch on YouTube" msgstr "유튜브에서 보기" -#: .././mainwin.py:20828 .././mainwin.py:22177 +#: .././mainwin.py:20922 .././mainwin.py:22271 msgid "YouTube" msgstr "유튜브" -#: .././mainwin.py:20840 +#: .././mainwin.py:20934 msgid "Watch on HookTube" msgstr "HookTube에서 보기" @@ -2589,11 +2593,11 @@ msgstr "HookTube에서 보기" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20841 .././mainwin.py:21939 +#: .././mainwin.py:20935 .././mainwin.py:22033 msgid "HookTube" msgstr "HookTube" -#: .././mainwin.py:20853 +#: .././mainwin.py:20947 msgid "Watch on Invidious" msgstr "Invidious에서 보기" @@ -2601,7 +2605,7 @@ msgstr "Invidious에서 보기" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20854 .././mainwin.py:21983 +#: .././mainwin.py:20948 .././mainwin.py:22077 msgid "Invidious" msgstr "Invidious" @@ -2609,25 +2613,25 @@ msgstr "Invidious" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20873 .././mainwin.py:22028 .././config.py:14600 -#: .././config.py:17517 +#: .././mainwin.py:20967 .././mainwin.py:22122 .././config.py:15252 +#: .././config.py:18249 msgid "Other" msgstr "기타" -#: .././mainwin.py:20893 +#: .././mainwin.py:20987 msgid "Watch on website" msgstr "웹사이트에서 보기" -#: .././mainwin.py:20894 .././mainwin.py:22179 +#: .././mainwin.py:20988 .././mainwin.py:22273 msgid "Website" msgstr "웹사이트" #. Links not clickable -#: .././mainwin.py:20905 +#: .././mainwin.py:20999 msgid "No link" msgstr "링크 없음" -#: .././mainwin.py:21042 +#: .././mainwin.py:21136 msgid "Download to a temporary folder later" msgstr "나중에 임시 폴더에 다운로드 받기" @@ -2635,19 +2639,19 @@ msgstr "나중에 임시 폴더에 다운로드 받기" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21043 .././mainwin.py:21060 .././mainwin.py:21895 +#: .././mainwin.py:21137 .././mainwin.py:21154 .././mainwin.py:21989 msgid "Mark for download" msgstr "다운로드를 위해 마크하기" -#: .././mainwin.py:21048 +#: .././mainwin.py:21142 msgid "Download to a temporary folder" msgstr "임시 폴더에 다운로드 받기" -#: .././mainwin.py:21054 +#: .././mainwin.py:21148 msgid "Download to a temporary folder, then watch" msgstr "임시 폴더에 다운로드 받고 보기" -#: .././mainwin.py:21055 .././mainwin.py:23193 +#: .././mainwin.py:21149 .././mainwin.py:23292 msgid "D/L & watch" msgstr "다운로드 하고 보기" @@ -2655,12 +2659,12 @@ msgstr "다운로드 하고 보기" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21062 .././mainwin.py:21851 +#: .././mainwin.py:21156 .././mainwin.py:21945 msgid "D/L and watch" msgstr "다운로드 하고 보기" #. Archived/not archived -#: .././mainwin.py:21086 .././mainwin.py:23231 +#: .././mainwin.py:21180 .././mainwin.py:23330 msgid "Prevent automatic deletion of the video" msgstr "비디오 자동 삭제 방지" @@ -2668,13 +2672,13 @@ msgstr "비디오 자동 삭제 방지" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21090 .././mainwin.py:21094 .././mainwin.py:21521 -#: .././mainwin.py:23235 .././mainwin.py:23239 .././mainwin.py:23454 +#: .././mainwin.py:21184 .././mainwin.py:21188 .././mainwin.py:21615 +#: .././mainwin.py:23334 .././mainwin.py:23338 .././mainwin.py:23553 msgid "Archived" msgstr "아카이브 됨" #. Bookmarked/not bookmarked -#: .././mainwin.py:21099 .././mainwin.py:23244 +#: .././mainwin.py:21193 .././mainwin.py:23343 msgid "Show video in Bookmarks folder" msgstr "북마크 폴더 안의 비디오 보이기" @@ -2684,13 +2688,13 @@ msgstr "북마크 폴더 안의 비디오 보이기" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21104 .././mainwin.py:21109 .././mainwin.py:23248 -#: .././mainwin.py:23252 .././mainwin.py:23499 +#: .././mainwin.py:21198 .././mainwin.py:21203 .././mainwin.py:23347 +#: .././mainwin.py:23351 .././mainwin.py:23598 msgid "B/mark" msgstr "북마크" #. Favourite/not favourite -#: .././mainwin.py:21114 .././mainwin.py:23257 +#: .././mainwin.py:21208 .././mainwin.py:23356 msgid "Show in Favourite Videos folder" msgstr "즐겨찾기 폴더 안의 비디오 보이기" @@ -2698,13 +2702,13 @@ msgstr "즐겨찾기 폴더 안의 비디오 보이기" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21118 .././mainwin.py:21122 .././mainwin.py:21611 -#: .././mainwin.py:23261 .././mainwin.py:23265 +#: .././mainwin.py:21212 .././mainwin.py:21216 .././mainwin.py:21705 +#: .././mainwin.py:23360 .././mainwin.py:23364 .././config.py:13623 msgid "Favourite" msgstr "즐겨찾기" #. Missing/not missing -#: .././mainwin.py:21126 .././mainwin.py:23269 +#: .././mainwin.py:21220 .././mainwin.py:23368 msgid "Mark video as removed by creator" msgstr "제작자가 비디오를 삭제한 것(사라진 것)으로 표기하기" @@ -2712,13 +2716,13 @@ msgstr "제작자가 비디오를 삭제한 것(사라진 것)으로 표기하 #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21130 .././mainwin.py:21134 .././mainwin.py:21656 -#: .././mainwin.py:23273 .././mainwin.py:23277 +#: .././mainwin.py:21224 .././mainwin.py:21228 .././mainwin.py:21750 +#: .././mainwin.py:23372 .././mainwin.py:23376 msgid "Missing" msgstr "사라짐" #. New/not new -#: .././mainwin.py:21139 .././mainwin.py:23282 +#: .././mainwin.py:21233 .././mainwin.py:23381 msgid "Mark video as never watched" msgstr "새 비디오로 표기하기" @@ -2726,13 +2730,13 @@ msgstr "새 비디오로 표기하기" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21143 .././mainwin.py:21147 .././mainwin.py:21694 -#: .././mainwin.py:23286 .././mainwin.py:23290 +#: .././mainwin.py:21237 .././mainwin.py:21241 .././mainwin.py:21788 +#: .././mainwin.py:23385 .././mainwin.py:23389 msgid "New" msgstr "새 비디오" #. In waiting list/not in waiting list -#: .././mainwin.py:21152 .././mainwin.py:23295 +#: .././mainwin.py:21246 .././mainwin.py:23394 msgid "Show in Waiting Videos folder" msgstr "대기 리스트로 표기하기" @@ -2740,23 +2744,23 @@ msgstr "대기 리스트로 표기하기" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21566 +#: .././mainwin.py:21660 msgid "Bookmarked" msgstr "북마크됨" -#: .././mainwin.py:22970 +#: .././mainwin.py:23069 msgid "Click to open" msgstr "" -#: .././mainwin.py:23164 +#: .././mainwin.py:23263 msgid "TRANSLATOR'S NOTE: D/L means download" msgstr "TRANSLATOR'S NOTE: D/L means download" -#: .././mainwin.py:23200 +#: .././mainwin.py:23299 msgid "Can't D/L" msgstr "다운로드 할 수 없음" -#: .././mainwin.py:23224 +#: .././mainwin.py:23323 msgid "" "TRANSLATOR'S NOTE: This section contains shortened labels: Archive = " "Archived, B/Mark = Bookmarked, Waiting: In waiting list" @@ -2764,269 +2768,269 @@ msgstr "" "TRANSLATOR'S NOTE: This section contains shortened labels: Archive = " "Archived, B/Mark = Bookmarked, Waiting: In waiting list" -#: .././mainwin.py:24605 +#: .././mainwin.py:24705 msgid "Add many channels/playlists" msgstr "" -#: .././mainwin.py:24635 .././mainwin.py:25309 .././mainwin.py:25838 -#: .././mainwin.py:26197 +#: .././mainwin.py:24735 .././mainwin.py:25411 .././mainwin.py:25940 +#: .././mainwin.py:26299 msgid "Enable automatic copy/paste" msgstr "자동 복사/붙여넣기 활성화" #. Buttons to add URLs as channels/playlists -#: .././mainwin.py:24685 +#: .././mainwin.py:24785 msgid "Add channels" msgstr "" -#: .././mainwin.py:24689 +#: .././mainwin.py:24789 msgid "Add playlists" msgstr "" -#: .././mainwin.py:24702 +#: .././mainwin.py:24802 msgid "Double-click the names/URls to customise them" msgstr "" -#: .././mainwin.py:24728 .././config.py:2991 .././config.py:5506 -#: .././config.py:5634 +#: .././mainwin.py:24828 .././config.py:3022 .././config.py:5606 +#: .././config.py:5738 msgid "Type" msgstr "타입" -#: .././mainwin.py:24728 .././config.py:17243 +#: .././mainwin.py:24828 .././config.py:17967 msgid "URL" msgstr "" #. Add more buttons -#: .././mainwin.py:24759 +#: .././mainwin.py:24859 msgid "Convert selected lines" msgstr "" -#: .././mainwin.py:24763 +#: .././mainwin.py:24863 msgid "Delete selected lines" msgstr "" -#: .././mainwin.py:24802 +#: .././mainwin.py:24902 msgid "Add to this folder:" msgstr "" -#: .././mainwin.py:25160 +#: .././mainwin.py:25262 msgid "Add channel" msgstr "채널 추가" -#: .././mainwin.py:25179 +#: .././mainwin.py:25281 msgid "Enter the channel name" msgstr "채널 이름을 입력해 주세요" -#: .././mainwin.py:25184 +#: .././mainwin.py:25286 msgid "(Use the channel's real name or a customised name)" msgstr "(채널의 실제 이름이나 커스텀 이름을 사용하세요)" -#: .././mainwin.py:25192 +#: .././mainwin.py:25294 msgid "Copy and paste a link to the channel" msgstr "링크를 복사해 채널에 붙여넣기" -#: .././mainwin.py:25216 +#: .././mainwin.py:25318 msgid "" "Before adding the URL for a YouTube channel, first click the Videos tab in " "your browser!" msgstr "" -#: .././mainwin.py:25265 +#: .././mainwin.py:25367 msgid "(Optional) Add this channel inside a folder" msgstr "(선택사항) 이 채널을 폴더 안에 추가하기" -#: .././mainwin.py:25295 +#: .././mainwin.py:25397 msgid "I want to download videos from this channel automatically" msgstr "이 채널의 비디오를 자동으로 다운받고 싶음" -#: .././mainwin.py:25302 .././mainwin.py:25622 .././mainwin.py:25831 +#: .././mainwin.py:25404 .././mainwin.py:25724 .././mainwin.py:25933 msgid "Don't download anything, just check for new videos" msgstr "다운로드 받지 않고 새 비디오만 확인하기" -#: .././mainwin.py:25523 +#: .././mainwin.py:25625 msgid "Add folder" msgstr "폴더 추가" -#: .././mainwin.py:25542 +#: .././mainwin.py:25644 msgid "Enter the folder name" msgstr "폴더 이름을 입력해 주세요" -#: .././mainwin.py:25585 +#: .././mainwin.py:25687 msgid "(Optional) Add this folder inside another folder" msgstr "(선택사항) 이 폴더를 다른 폴더 안에 추가하기" -#: .././mainwin.py:25616 +#: .././mainwin.py:25718 msgid "I want to download videos from this folder automatically" msgstr "이 폴더의 비디오를 자동으로 다운받고 싶음" -#: .././mainwin.py:25715 +#: .././mainwin.py:25817 msgid "Add playlist" msgstr "플레이리스트 추가" -#: .././mainwin.py:25734 +#: .././mainwin.py:25836 msgid "Enter the playlist name" msgstr "플레이리스트 이름을 입력해 주세요" -#: .././mainwin.py:25739 +#: .././mainwin.py:25841 msgid "(Use the playlist's real name or a customised name)" msgstr "(플레이리스트의 실제 이름이나 커스텀 이름을 사용하세요)" -#: .././mainwin.py:25747 +#: .././mainwin.py:25849 msgid "Copy and paste a link to the playlist" msgstr "링크를 복사해 플레이리스트에 붙여넣기" -#: .././mainwin.py:25794 +#: .././mainwin.py:25896 msgid "(Optional) Add this playlist inside a folder" msgstr "(선택사항) 이 플레이리스트를 폴더 안에 추가하기" -#: .././mainwin.py:25824 +#: .././mainwin.py:25926 msgid "I want to download videos from this playlist automatically" msgstr "이 플레이리스트의 비디오를 자동으로 다운받고 싶음" -#: .././mainwin.py:26021 +#: .././mainwin.py:26123 msgid "Add videos" msgstr "비디오 추가하기" -#: .././mainwin.py:26040 +#: .././mainwin.py:26142 msgid "Copy and paste the links to one or more videos" msgstr "링크를 복사해 하나 이상의 비디오에 붙여넣기" -#: .././mainwin.py:26046 +#: .././mainwin.py:26148 msgid "Links containing multiple videos will be converted to a channel" msgstr "여러 동영상이 포함된 링크는 채널로 변환됨" -#: .././mainwin.py:26053 +#: .././mainwin.py:26155 msgid "Links containing multiple videos will be converted to a playlist" msgstr "여러 동영상이 포함된 링크는 플레이리스트로 변환됨" -#: .././mainwin.py:26060 +#: .././mainwin.py:26162 msgid "Links containing multiple videos will be downloaded separately" msgstr "여러 동영상이 포함된 링크는 개별로 다운로드됨" -#: .././mainwin.py:26067 +#: .././mainwin.py:26169 msgid "Links containing multiple videos will not be downloaded at all" msgstr "여러 동영상이 포함된 링크는 한번에 다운로드 하지 않음" -#: .././mainwin.py:26155 +#: .././mainwin.py:26257 msgid "Add the videos to this folder" msgstr "비디오들을 이 폴더에 추가" -#: .././mainwin.py:26185 +#: .././mainwin.py:26287 msgid "I want to download these videos automatically" msgstr "이 비디오들을 자동으로 다운로드" -#: .././mainwin.py:26191 +#: .././mainwin.py:26293 msgid "Don't download anything, just check the videos" msgstr "다운로드 받지 않고 새 비디오만 확인하기" -#: .././mainwin.py:26360 .././config.py:2084 +#: .././mainwin.py:26462 .././config.py:2116 msgid "Apply download options" msgstr "다운로드 설정 적용하기" -#: .././mainwin.py:26382 +#: .././mainwin.py:26484 msgid "Create new download options" msgstr "새 다운로드 설정 만들기" -#: .././mainwin.py:26392 +#: .././mainwin.py:26494 msgid "Use these download options" msgstr "이 다운로드 설정 사용하기" -#: .././mainwin.py:26429 +#: .././mainwin.py:26531 msgid "Clone these download options" msgstr "이 다운로드 설정 복제하기" -#: .././mainwin.py:26662 +#: .././mainwin.py:26764 msgid "Select a date" msgstr "날짜 선택" -#: .././mainwin.py:26770 +#: .././mainwin.py:26872 msgid "Delete channel" msgstr "채널 지우기" -#: .././mainwin.py:26772 +#: .././mainwin.py:26874 msgid "Delete playlist" msgstr "플레이리스트 지우기" -#: .././mainwin.py:26774 +#: .././mainwin.py:26876 msgid "Delete folder" msgstr "폴더 지우기" -#: .././mainwin.py:26777 +#: .././mainwin.py:26879 msgid "Empty channel" msgstr "빈 채널" -#: .././mainwin.py:26779 +#: .././mainwin.py:26881 msgid "Empty playlist" msgstr "빈 플레이리스트" -#: .././mainwin.py:26781 +#: .././mainwin.py:26883 msgid "Empty folder" msgstr "빈 폴더" -#: .././mainwin.py:26815 +#: .././mainwin.py:26917 msgid "This channel does not contain any videos" msgstr "이 채널엔 아무 비디오도 없습니다" -#: .././mainwin.py:26817 +#: .././mainwin.py:26919 msgid "This playlist does not contain any videos" msgstr "이 플레이리스트에 아무 비디오도 없습니다" -#: .././mainwin.py:26819 +#: .././mainwin.py:26921 msgid "This folder doesn't contain anything" msgstr "이 폴더에 아무것도 없습니다" -#: .././mainwin.py:26825 +#: .././mainwin.py:26927 msgid "(but there might be some files in Tartube's data folder)" msgstr "(하지만 Tartube의 데이터 폴더에 파일이 좀 있을수도 있습니다)" -#: .././mainwin.py:26838 +#: .././mainwin.py:26940 msgid "This channel contains:" msgstr "채널에 포함된 항목:" -#: .././mainwin.py:26840 +#: .././mainwin.py:26942 msgid "This playlist contains:" msgstr "플레이리스트에 포함된 항목:" -#: .././mainwin.py:26842 .././config.py:14573 +#: .././mainwin.py:26944 .././config.py:15225 msgid "This folder contains:" msgstr "폴더에 포함된 항목:" -#: .././mainwin.py:26849 +#: .././mainwin.py:26951 msgid "1 folder" msgstr "1 폴더" -#: .././mainwin.py:26851 +#: .././mainwin.py:26953 #, python-brace-format msgid "{0} folders" msgstr "{0} 폴더" -#: .././mainwin.py:26858 +#: .././mainwin.py:26960 msgid "1 channel" msgstr "1 채널" -#: .././mainwin.py:26860 +#: .././mainwin.py:26962 #, python-brace-format msgid "{0} channels" msgstr "{0} 채널" -#: .././mainwin.py:26867 +#: .././mainwin.py:26969 msgid "1 playlist" msgstr "1 플레이리스트" -#: .././mainwin.py:26869 +#: .././mainwin.py:26971 #, python-brace-format msgid "{0} playlists" msgstr "{0} 플레이리스트" -#: .././mainwin.py:26876 .././mainwin.py:27367 +#: .././mainwin.py:26978 .././mainwin.py:27469 msgid "1 video" msgstr "1 비디오" -#: .././mainwin.py:26878 .././mainwin.py:27370 +#: .././mainwin.py:26980 .././mainwin.py:27472 #, python-brace-format msgid "{0} videos" msgstr "{0} 비디오" -#: .././mainwin.py:26891 +#: .././mainwin.py:26993 msgid "" "Do you want to delete the channel from Tartube's data folder, or do you just " "want to remove the channel from this list?" @@ -3034,7 +3038,7 @@ msgstr "" "Tartube의 데이터 폴더에서 이 채널을 삭제하시겠습니까, 아니면 목록에서 채널을 " "제거만 하시겠습니까?" -#: .././mainwin.py:26897 +#: .././mainwin.py:26999 msgid "" "Do you want to delete the playlist from Tartube's data folder, or do you " "just want to remove the playlist from this list?" @@ -3042,7 +3046,7 @@ msgstr "" "Tartube의 데이터 폴더에서 이 플레이리스트를 삭제하시겠습니까, 아니면 목록에" "서 플레이리스트를 제거만 하시겠습니까?" -#: .././mainwin.py:26903 +#: .././mainwin.py:27005 msgid "" "Do you want to delete the folder from Tartube's data folder, or do you just " "want to remove the folder from this list?" @@ -3050,7 +3054,7 @@ msgstr "" "Tartube의 데이터 폴더에서 이 폴더를 삭제하시겠습니까, 아니면 목록에서 폴더를 " "제거만 하시겠습니까?" -#: .././mainwin.py:26912 +#: .././mainwin.py:27014 msgid "" "Do you want to empty the channel in Tartube's data folder, or do you just " "want to empty the channel in this list?" @@ -3058,7 +3062,7 @@ msgstr "" "Tartube의 데이터 폴더에서 이 채널을 비우시겠습니까, 아니면 목록에서 채널을 비" "우기만 하시겠습니까?" -#: .././mainwin.py:26918 +#: .././mainwin.py:27020 msgid "" "Do you want to empty the playlist in Tartube's data folder, or do you just " "want to empty the playlist in this list?" @@ -3066,7 +3070,7 @@ msgstr "" "Tartube의 데이터 폴더에서 이 플레이리스트를 비우시겠습니까, 아니면 목록에서 " "플레이리스트를 비우기만 하시겠습니까?" -#: .././mainwin.py:26924 +#: .././mainwin.py:27026 msgid "" "Do you want to empty the folder in Tartube's data folder, or do you just " "want to empty the folder in this list?" @@ -3074,39 +3078,39 @@ msgstr "" "Tartube의 데이터 폴더에서 이 폴더를 비우시겠습니까, 아니면 목록에서 폴더를 비" "우기만 하시겠습니까?" -#: .././mainwin.py:26941 +#: .././mainwin.py:27043 msgid "Just remove the channel from this list" msgstr "채널을 리스트에서 지우기만 하기" -#: .././mainwin.py:26943 +#: .././mainwin.py:27045 msgid "Just remove the playlist from this list" msgstr "플레이리스트를 리스트에서 지우기만 하기" -#: .././mainwin.py:26945 +#: .././mainwin.py:27047 msgid "Just remove the folder from this list" msgstr "폴더를 리스트에서 지우기만 하기" -#: .././mainwin.py:26950 +#: .././mainwin.py:27052 msgid "Just empty the channel in this list" msgstr "채널을 리스트에서 비우기만 하기" -#: .././mainwin.py:26952 +#: .././mainwin.py:27054 msgid "Just empty the playlist in this list" msgstr "플레이리스트를 리스트에서 비우기만 하기" -#: .././mainwin.py:26954 +#: .././mainwin.py:27056 msgid "Just empty the folder in this list" msgstr "폴더를 리스트에서 비우기만 하기" -#: .././mainwin.py:26960 +#: .././mainwin.py:27062 msgid "Delete all files" msgstr "모든 파일 삭제하기" -#: .././mainwin.py:27020 +#: .././mainwin.py:27122 msgid "Export from database" msgstr "데이터베이스에서 내보내기" -#: .././mainwin.py:27046 +#: .././mainwin.py:27148 msgid "" "Tartube is ready to export a partial summary of its database, containing a " "list of videos, channels, playlists and/or folders (but not including the " @@ -3115,7 +3119,7 @@ msgstr "" "Tartube는 비디오, 채널, 재생목록, 폴더를 포함하는 데이터베이스의 부분 요약을 " "내보낼 준비가 되었습니다 (하지만 비디오 자체는 포함하지 않습니다)" -#: .././mainwin.py:27053 +#: .././mainwin.py:27155 msgid "" "Tartube is ready to export a summary of its database, containing a list of " "videos, channels, playlists and/or folders (but not including the videos " @@ -3124,260 +3128,277 @@ msgstr "" "Tartube는 비디오, 채널, 재생목록, 폴더를 포함하는 데이터베이스의 요약을 내보" "낼 준비가 되었습니다 (하지만 비디오 자체는 포함하지 않습니다)" -#: .././mainwin.py:27069 +#: .././mainwin.py:27171 msgid "Choose what should be included:" msgstr "무엇이 포함될지 선택:" -#: .././mainwin.py:27077 +#: .././mainwin.py:27179 msgid "Include lists of videos" msgstr "비디오 리스트 포함" -#: .././mainwin.py:27082 +#: .././mainwin.py:27184 msgid "Include channels" msgstr "채널 포함" -#: .././mainwin.py:27087 +#: .././mainwin.py:27189 msgid "Include playlists" msgstr "플레이리스트 포함" -#: .././mainwin.py:27092 +#: .././mainwin.py:27194 msgid "Preserve folder structure" msgstr "폴더 구조 유지" -#: .././mainwin.py:27100 +#: .././mainwin.py:27202 msgid "Export as JSON" msgstr "" -#: .././mainwin.py:27106 +#: .././mainwin.py:27208 msgid "Export as CSV using separator" msgstr "" -#: .././mainwin.py:27133 +#: .././mainwin.py:27235 msgid "Export as plain text" msgstr "일반 텍스트로 내보내기" -#: .././mainwin.py:27242 +#: .././mainwin.py:27344 msgid "Import into database" msgstr "데이터베이스로 가져오기" -#: .././mainwin.py:27265 +#: .././mainwin.py:27367 msgid "Choose which items to import" msgstr "가져올 항목 선택하기" -#: .././mainwin.py:27286 .././config.py:19575 .././config.py:21212 -#: .././config.py:21477 +#: .././mainwin.py:27388 .././config.py:20375 .././config.py:22129 +#: .././config.py:22402 msgid "Import" msgstr "가져오기" -#: .././mainwin.py:27322 +#: .././mainwin.py:27424 msgid "Import videos" msgstr "비디오 가져오기" -#: .././mainwin.py:27327 +#: .././mainwin.py:27429 msgid "Merge channels/playlists/folders" msgstr "채널/플레이리스트/폴더 병합하기" #. Bottom strip -#: .././mainwin.py:27330 .././mainwin.py:30368 +#: .././mainwin.py:27432 .././mainwin.py:30534 msgid "Select all" msgstr "모두 선택하기" -#: .././mainwin.py:27335 +#: .././mainwin.py:27437 msgid "Unselect all" msgstr "모두 선택 취소하기" -#: .././mainwin.py:27597 +#: .././mainwin.py:27699 msgid "Mount drive" msgstr "드라이브 마운트" -#: .././mainwin.py:27622 +#: .././mainwin.py:27724 msgid "The Tartube data folder is set to:" msgstr "Tartube 데이터 폴더가 설정됨:" -#: .././mainwin.py:27635 +#: .././mainwin.py:27737 msgid "...but this folder doesn't exist" msgstr "...하지만 이 폴더가 존재하지 않음" -#: .././mainwin.py:27638 +#: .././mainwin.py:27740 msgid "...but Tartube cannot write to this folder" msgstr "...하지만 Tartube가 폴더에 쓸 수 없음" -#: .././mainwin.py:27648 +#: .././mainwin.py:27750 msgid "I have mounted the drive, please try again" msgstr "드라이브를 마운트했습니다. 다시 시도하세요" -#: .././mainwin.py:27654 +#: .././mainwin.py:27756 msgid "Use this data folder:" msgstr "이 데이터 폴더 사용:" -#: .././mainwin.py:27681 +#: .././mainwin.py:27783 msgid "Select a different data folder" msgstr "다른 데이터 폴더 선택" -#: .././mainwin.py:27687 +#: .././mainwin.py:27789 msgid "Use the default data folder" msgstr "기본 데이터 폴더 사용" -#: .././mainwin.py:27693 +#: .././mainwin.py:27795 msgid "Shut down Tartube" msgstr "Tartube 종료" #. 'Cancel' button -#: .././mainwin.py:27700 .././config.py:1046 +#: .././mainwin.py:27802 .././config.py:1078 msgid "Cancel" msgstr "취소" #. 'OK' button -#: .././mainwin.py:27704 .././config.py:1037 .././config.py:2266 -#: .././config.py:11818 .././config.py:12184 +#: .././mainwin.py:27806 .././config.py:1069 .././config.py:2298 +#: .././config.py:11967 .././config.py:12333 msgid "OK" msgstr "확인" -#: .././mainwin.py:27826 +#: .././mainwin.py:27928 msgid "The folder still doesn't exist. Please try a different option" msgstr "폴더가 존재하지 않습니다. 다른 설정을 시도하세요" -#: .././mainwin.py:27903 .././config.py:403 +#: .././mainwin.py:28008 .././config.py:435 msgid "Downloads" msgstr "다운로드" -#: .././mainwin.py:27933 +#: .././mainwin.py:28038 msgid "Nothing happened?" msgstr "" -#: .././mainwin.py:27940 +#: .././mainwin.py:28051 +msgid "Check the video/audio file actually exists" +msgstr "" + +#: .././mainwin.py:28056 +msgid "(Try converting instead of a direct download)" +msgstr "" + +#: .././mainwin.py:28069 msgid "Check the downloader is installed and updated" msgstr "" -#: .././mainwin.py:27945 .././mainwin.py:29951 +#: .././mainwin.py:28074 .././mainwin.py:30117 msgid "Update" msgstr "업데이트" -#: .././mainwin.py:27952 +#: .././mainwin.py:28080 msgid "Tell Tartube where to find the downloader" msgstr "" -#: .././mainwin.py:27957 +#: .././mainwin.py:28085 msgid "Set the downloader's file path" msgstr "" -#: .././mainwin.py:27963 +#: .././mainwin.py:28091 msgid "Try a different downloader" msgstr "" -#: .././mainwin.py:27969 +#: .././mainwin.py:28097 msgid "Find more help" msgstr "" -#: .././mainwin.py:27974 +#: .././mainwin.py:28102 msgid "Read the FAQ" msgstr "" -#: .././mainwin.py:27980 +#: .././mainwin.py:28108 msgid "Ask for help" msgstr "" -#: .././mainwin.py:27992 +#: .././mainwin.py:28120 msgid "" "Don't forget to check the Output tab and the\n" "Errors/Warnings tab for error messages!" msgstr "" -#: .././mainwin.py:28002 +#: .././mainwin.py:28130 msgid "Always show this window" msgstr "" -#: .././mainwin.py:28181 +#: .././mainwin.py:28309 msgid "Download video clip" msgstr "" -#: .././mainwin.py:28183 +#: .././mainwin.py:28311 msgid "Create video clip" msgstr "" -#: .././mainwin.py:28210 .././config.py:9730 .././config.py:10382 -#: .././config.py:13004 +#: .././mainwin.py:28338 .././config.py:9881 .././config.py:10521 +#: .././config.py:13149 msgid "Start timestamp (e.g. 15:29)" msgstr "" -#: .././mainwin.py:28220 .././config.py:9750 .././config.py:10402 -#: .././config.py:13017 +#: .././mainwin.py:28348 .././config.py:9901 .././config.py:10541 +#: .././config.py:13162 msgid "Stop timestamp (optional)" msgstr "" -#: .././mainwin.py:28229 .././config.py:9765 .././config.py:10417 -#: .././config.py:13030 +#: .././mainwin.py:28357 .././config.py:9916 .././config.py:10556 +#: .././config.py:13175 msgid "Clip title (optional)" msgstr "" -#: .././mainwin.py:28237 +#: .././mainwin.py:28365 msgid "Download this clip" msgstr "" -#: .././mainwin.py:28239 +#: .././mainwin.py:28367 msgid "Create this clip" msgstr "" -#: .././mainwin.py:28248 +#: .././mainwin.py:28376 msgid "Download all clips" msgstr "" -#: .././mainwin.py:28250 +#: .././mainwin.py:28378 msgid "Create all clips" msgstr "" -#: .././mainwin.py:28434 +#: .././mainwin.py:28563 msgid "Download sliced video" msgstr "" -#: .././mainwin.py:28436 +#: .././mainwin.py:28565 msgid "Create sliced video" msgstr "" -#: .././mainwin.py:28463 .././config.py:9954 .././config.py:10628 -#: .././config.py:13206 +#: .././mainwin.py:28592 .././config.py:10101 .././config.py:10763 +#: .././config.py:13346 msgid "Start (timestamp or seconds)" msgstr "" -#: .././mainwin.py:28481 -msgid "Download this sliced video" +#: .././mainwin.py:28602 .././config.py:10114 .././config.py:10776 +#: .././config.py:13358 +msgid "Stop (optional)" +msgstr "" + +#: .././mainwin.py:28610 +msgid "Download and remove this slice" msgstr "" -#: .././mainwin.py:28483 +#: .././mainwin.py:28612 msgid "Create this sliced video" msgstr "" -#: .././mainwin.py:28492 +#: .././mainwin.py:28627 +msgid "Download and remove everything but this slice" +msgstr "" + +#: .././mainwin.py:28635 msgid "Download video with all slices removed" msgstr "" -#: .././mainwin.py:28494 +#: .././mainwin.py:28637 msgid "Create video with all slices removed" msgstr "" -#: .././mainwin.py:28647 +#: .././mainwin.py:28812 msgid "Set removal time" msgstr "" -#: .././mainwin.py:28670 +#: .././mainwin.py:28835 msgid "" "When videos are checked/downloaded, older videos\n" "are removed from the Recent Videos folder." msgstr "" -#: .././mainwin.py:28681 .././config.py:14778 +#: .././mainwin.py:28846 .././config.py:15428 msgid "Empty the whole folder" msgstr "" -#: .././mainwin.py:28688 .././config.py:14787 +#: .././mainwin.py:28853 .././config.py:15437 msgid "Remove videos after days" msgstr "" -#: .././mainwin.py:28782 +#: .././mainwin.py:28947 msgid "Stale lockfile" msgstr "오래된 잠금파일" -#: .././mainwin.py:28819 +#: .././mainwin.py:28984 msgid "" "Failed to load the Tartube database file, because another copy of Tartube " "seems to be using it" @@ -3385,11 +3406,11 @@ msgstr "" "Tartube 데이터베이스 파일을 로드하지 못했습니다. Tartube의 다른 복사본이 이" "를 사용하고 있는것 같습니다" -#: .././mainwin.py:28826 +#: .././mainwin.py:28991 msgid "Do you want to load it anyway?" msgstr "그래도 로드 하시겠습니까?" -#: .././mainwin.py:28832 +#: .././mainwin.py:28997 msgid "" "(Only click 'Yes' if you are sure that other copies of Tartube are not using " "the database right now)" @@ -3397,170 +3418,170 @@ msgstr "" "(현재 다른 Tartube가 데이터베이스를 사용하지 않고 있다고 확신하는 경우에만 " "'예'를 눌러주세요)" -#: .././mainwin.py:28844 +#: .././mainwin.py:29009 msgid "Yes, load the file" msgstr "네, 파일을 로드합니다" -#: .././mainwin.py:28851 +#: .././mainwin.py:29016 msgid "No, just shut down Tartube" msgstr "아니오, 그냥 Tartube를 종료합니다" -#: .././mainwin.py:28853 +#: .././mainwin.py:29018 msgid "No, don't load the file" msgstr "아니오, 파일을 로드하지 않습니다" -#: .././mainwin.py:28948 +#: .././mainwin.py:29113 msgid "Rename channel" msgstr "채널 이름 변경하기" -#: .././mainwin.py:28950 +#: .././mainwin.py:29115 msgid "Rename playlist" msgstr "플레이리스트 이름 변경하기" -#: .././mainwin.py:28952 +#: .././mainwin.py:29117 msgid "Rename folder" msgstr "폴더 이름 변경하기" -#: .././mainwin.py:28976 +#: .././mainwin.py:29141 msgid "Set the new name for the channel:" msgstr "이 채널의 새 이름 설정하기:" -#: .././mainwin.py:28978 +#: .././mainwin.py:29143 msgid "Set the new name for the playlist:" msgstr "이 플레이리스트의 새 이름 설정하기:" -#: .././mainwin.py:28980 +#: .././mainwin.py:29145 msgid "Set the new name for the folder:" msgstr "이 폴더의 새 이름 설정하기:" -#: .././mainwin.py:28986 +#: .././mainwin.py:29151 msgid "N.B. This procedure will modify your filesystem!\n" msgstr "주의. 이 작업은 파일시스템을 변경합니다!\n" -#: .././mainwin.py:29047 +#: .././mainwin.py:29212 msgid "Add to scheduled download" msgstr "예약된 다운로드에 추가" -#: .././mainwin.py:29070 +#: .././mainwin.py:29235 msgid "Add the channel to this scheduled download:" msgstr "이 채널을 예약된 다운로드에 추가:" -#: .././mainwin.py:29072 +#: .././mainwin.py:29237 msgid "Add the playlist to this scheduled download:" msgstr "이 플레이리스트를 예약된 다운로드에 추가:" -#: .././mainwin.py:29074 +#: .././mainwin.py:29239 msgid "Add the folder to this scheduled download:" msgstr "이 폴더를 예약된 다운로드에 추가:" -#: .././mainwin.py:29176 +#: .././mainwin.py:29341 msgid "Set download destination" msgstr "다운로드 목적지 설정" -#: .././mainwin.py:29221 +#: .././mainwin.py:29386 msgid "This channel normally downloads videos into its own folder" msgstr "" -#: .././mainwin.py:29226 +#: .././mainwin.py:29391 msgid "This playlist normally downloads videos into its own folder" msgstr "" -#: .././mainwin.py:29231 +#: .././mainwin.py:29396 msgid "This folder normally downloads videos into itself" msgstr "" -#: .././mainwin.py:29236 +#: .././mainwin.py:29401 msgid "This channel normally downloads videos into its own directory" msgstr "" -#: .././mainwin.py:29241 +#: .././mainwin.py:29406 msgid "This playlist normally downloads videos into its own directory" msgstr "" -#: .././mainwin.py:29246 +#: .././mainwin.py:29411 msgid "This folder normally downloads videos into its own directory" msgstr "" -#: .././mainwin.py:29256 +#: .././mainwin.py:29421 msgid "Use this location" msgstr "" -#: .././mainwin.py:29264 +#: .././mainwin.py:29429 msgid "Choose a different location if:" msgstr "" -#: .././mainwin.py:29267 +#: .././mainwin.py:29432 msgid "" "You want to add a channel and its playlists, without downloading the same " "video twice" msgstr "" -#: .././mainwin.py:29273 +#: .././mainwin.py:29438 msgid "" "A video creator has channels on both YouTube and BitChute, and you want to " "add both without downloading the same video twice" msgstr "" -#: .././mainwin.py:29366 +#: .././mainwin.py:29531 msgid "" "Using an external folder is not recommended, in general. Choose an external " "folder if:" msgstr "" -#: .././mainwin.py:29371 +#: .././mainwin.py:29536 msgid "" "Using an external directory is not recommended, in general. Choose an " "external directory if:" msgstr "" -#: .././mainwin.py:29377 +#: .././mainwin.py:29542 msgid "" "You want a different application to process the downloaded videos (other " "applications should not modify Tartube's main data folder)" msgstr "" -#: .././mainwin.py:29383 +#: .././mainwin.py:29548 msgid "" "You want a different application to process the downloaded videos (other " "applications should not modify Tartube's main data directory)" msgstr "" #. (Signal connect appears below) -#: .././mainwin.py:29400 .././config.py:4365 .././config.py:5680 -#: .././config.py:7075 .././config.py:7096 .././config.py:7117 -#: .././config.py:20869 .././config.py:20968 .././config.py:21009 -#: .././config.py:21079 +#: .././mainwin.py:29565 .././config.py:4399 .././config.py:5784 +#: .././config.py:7235 .././config.py:7256 .././config.py:7277 +#: .././config.py:21773 .././config.py:21876 .././config.py:21917 +#: .././config.py:21991 msgid "Set" msgstr "설정" -#: .././mainwin.py:29483 +#: .././mainwin.py:29648 msgid "Select an external folder" msgstr "" -#: .././mainwin.py:29485 +#: .././mainwin.py:29650 msgid "Select an external directory" msgstr "" -#: .././mainwin.py:29505 +#: .././mainwin.py:29670 msgid "An external folder must not be inside Tartube's own data folder" msgstr "" -#: .././mainwin.py:29511 +#: .././mainwin.py:29676 msgid "An external directory must not be inside Tartube's own data directory" msgstr "" -#: .././mainwin.py:29716 +#: .././mainwin.py:29881 msgid "Set nickname" msgstr "닉네임 설정" -#: .././mainwin.py:29741 +#: .././mainwin.py:29906 #, python-brace-format msgid "" "Set a nickname for the channel '{0}' (or leave it blank to reset the " "nickname)" msgstr "채널 '{0}'의 닉네임 설정 (닉네임을 초기화 할려면 빈칸으로 설정)" -#: .././mainwin.py:29746 +#: .././mainwin.py:29911 #, python-brace-format msgid "" "Set a nickname for the playlist '{0}' (or leave it blank to reset the " @@ -3568,1603 +3589,1597 @@ msgid "" msgstr "" "플레이리스트 '{0}'의 닉네임 설정 (닉네임을 초기화 할려면 빈칸으로 설정)" -#: .././mainwin.py:29751 +#: .././mainwin.py:29916 #, python-brace-format msgid "" "Set a nickname for the folder '{0}' (or leave it blank to reset the nickname)" msgstr "폴더 '{0}'의 닉네임 설정 (닉네임을 초기화 할려면 빈칸으로 설정)" -#: .././mainwin.py:29814 +#: .././mainwin.py:29979 msgid "Set URL" msgstr "URL 설정" -#: .././mainwin.py:29839 +#: .././mainwin.py:30004 #, python-brace-format msgid "Update the URL for the channel '{0}'" msgstr "채널의 URL을 '{0}'로 업데이트" -#: .././mainwin.py:29843 +#: .././mainwin.py:30008 #, python-brace-format msgid "Update the URL for the playlist '{0}'" msgstr "플레이리스트의 URL을 '{0}'로 업데이트" -#: .././mainwin.py:29907 +#: .././mainwin.py:30072 msgid "Show system command" msgstr "시스템 커맨드 보이기" -#: .././mainwin.py:29960 +#: .././mainwin.py:30126 msgid "Copy to clipboard" msgstr "클립보드에 복사" -#: .././mainwin.py:30134 .././config.py:20235 +#: .././mainwin.py:30300 .././config.py:21116 msgid "Test" msgstr "테스트" -#: .././mainwin.py:30154 +#: .././mainwin.py:30320 msgid "URL of the video to download (optional)" msgstr "비디오의 URL 다운로드 (선택사항)" -#: .././mainwin.py:30165 +#: .././mainwin.py:30331 msgid "Command line options (optional)" msgstr "커맨드 라인 설정 (선택사항)" -#: .././mainwin.py:30246 +#: .././mainwin.py:30412 msgid "Tidy up files" msgstr "파일들 정리하기" -#: .././mainwin.py:30248 +#: .././mainwin.py:30414 msgid "Tidy up channel" msgstr "채널 정리하기" -#: .././mainwin.py:30250 +#: .././mainwin.py:30416 msgid "Tidy up playlist" msgstr "플레이리스트 정리하기" -#: .././mainwin.py:30252 +#: .././mainwin.py:30418 msgid "Tidy up folder" msgstr "폴더 정리하기" -#: .././mainwin.py:30281 +#: .././mainwin.py:30447 msgid "Check that videos are not corrupted" msgstr "손상되지 않은 비디오 확인" -#: .././mainwin.py:30286 +#: .././mainwin.py:30452 msgid "Delete corrupted video files" msgstr "잘못된 비디오 파일 삭제" -#: .././mainwin.py:30296 +#: .././mainwin.py:30462 msgid "Check that videos do/don't exist" msgstr "동영상이 존재하는지 확인" -#: .././mainwin.py:30303 +#: .././mainwin.py:30469 msgid "" "Delete downloaded video files (doesn't remove videos from Tartube's database)" msgstr "" "다운로드 받은 비디오 파일 삭제하기 (Tartube의 데이터베이스에선 삭제하지 않음)" -#: .././mainwin.py:30315 +#: .././mainwin.py:30481 msgid "Also delete all video/audio files with the same name" msgstr "같은 이름을 가진 모든 비디오/오디오 파일 삭제하기" -#: .././mainwin.py:30323 +#: .././mainwin.py:30489 msgid "Delete all archive files" msgstr "모든 아카이브 파일 삭제하기" -#: .././mainwin.py:30328 +#: .././mainwin.py:30494 msgid "Move thumbnails into own folder" msgstr "섬네일들을 지정 폴더로 옮기기" -#: .././mainwin.py:30333 +#: .././mainwin.py:30499 msgid "Delete all thumbnail files" msgstr "모든 섬네일 파일 삭제하기" -#: .././mainwin.py:30339 +#: .././mainwin.py:30505 msgid "Convert .webp thumbnails to .jpg using FFmpeg" msgstr ".FFmpeg를 이용해 webp 섬네일을 파일을 .jpg로 변환하기" -#: .././mainwin.py:30348 +#: .././mainwin.py:30514 msgid "Move other metadata files into own folder" msgstr "다른 메타데이터 파일들을 지정 폴더로 옮기기" -#: .././mainwin.py:30356 +#: .././mainwin.py:30522 msgid "Delete all description files" msgstr "모든 설명 파일 지우기" -#: .././mainwin.py:30360 +#: .././mainwin.py:30526 msgid "Delete all metadata (JSON) files" msgstr "모든 메타데이터 (JSON) 파일 지우기" -#: .././mainwin.py:30364 +#: .././mainwin.py:30530 msgid "Delete all annotation files" msgstr "모든 어노테이션 파일 지우기" #. (Signal connect appears below) -#: .././mainwin.py:30373 +#: .././mainwin.py:30539 msgid "Select none" msgstr "없음 선택" -#: .././config.py:404 +#: .././config.py:436 msgid "Uploads" msgstr "업로드" -#: .././config.py:405 .././config.py:12706 +#: .././config.py:437 .././config.py:12853 msgid "File size" msgstr "파일 크기" -#: .././config.py:435 +#: .././config.py:467 msgid "Graph" msgstr "그래프" -#: .././config.py:436 +#: .././config.py:468 msgid "Bar chart" msgstr "바 차트" -#: .././config.py:465 +#: .././config.py:497 msgid "Show decade" msgstr "세기 표기하기" -#: .././config.py:466 +#: .././config.py:498 msgid "Show year" msgstr "년 표기하기" -#: .././config.py:467 +#: .././config.py:499 msgid "Show quarters" msgstr "분기 표시하기" -#: .././config.py:468 +#: .././config.py:500 msgid "Show month" msgstr "달 표시하기" -#: .././config.py:469 +#: .././config.py:501 msgid "Show week" msgstr "주 표시하기" -#: .././config.py:470 +#: .././config.py:502 msgid "Show day" msgstr "일 표시하기" -#: .././config.py:502 +#: .././config.py:534 msgid "Quarters" msgstr "분기" -#: .././config.py:503 +#: .././config.py:535 msgid "Months" msgstr "달" -#: .././config.py:504 +#: .././config.py:536 msgid "Weeks" msgstr "주" -#: .././config.py:505 +#: .././config.py:537 msgid "Days" msgstr "일" -#: .././config.py:506 +#: .././config.py:538 msgid "Hours" msgstr "시간" -#: .././config.py:538 +#: .././config.py:570 msgid "Red" msgstr "빨간색" -#: .././config.py:539 +#: .././config.py:571 msgid "Green" msgstr "초록색" -#: .././config.py:540 +#: .././config.py:572 msgid "Blue" msgstr "파란색" -#: .././config.py:541 +#: .././config.py:573 msgid "Black" msgstr "검은색" -#: .././config.py:542 +#: .././config.py:574 msgid "White" msgstr "흰색" #. 'Reset' button #. (Signal connect appears below) -#: .././config.py:1019 .././config.py:4369 .././config.py:20371 -#: .././config.py:20399 .././config.py:20972 .././config.py:21013 -#: .././config.py:21083 +#: .././config.py:1051 .././config.py:4403 .././config.py:21256 +#: .././config.py:21284 .././config.py:21880 .././config.py:21921 +#: .././config.py:21995 msgid "Reset" msgstr "초기화" -#: .././config.py:1023 +#: .././config.py:1055 msgid "Reset changes without closing the window" msgstr "창을 닫지않고 변경사항 초기화" #. 'Apply' button -#: .././config.py:1028 +#: .././config.py:1060 msgid "Apply" msgstr "적용" -#: .././config.py:1032 +#: .././config.py:1064 msgid "Apply changes without closing the window" msgstr "창을 닫지않고 변경사항 적용" -#: .././config.py:1040 .././config.py:11821 .././config.py:12187 +#: .././config.py:1072 .././config.py:11970 .././config.py:12336 msgid "Apply changes" msgstr "변경사항 적용" -#: .././config.py:1049 +#: .././config.py:1081 msgid "Cancel changes" msgstr "변경사항 취소" -#: .././config.py:1892 +#: .././config.py:1924 msgid "Listed as" msgstr "나열된 위치" -#: .././config.py:1904 +#: .././config.py:1936 msgid "Contained in" msgstr "상위 폴더" -#: .././config.py:1962 +#: .././config.py:1994 msgid "Download to" msgstr "다운로드 위치" -#: .././config.py:2010 +#: .././config.py:2042 msgid "Default location" msgstr "" -#: .././config.py:2039 +#: .././config.py:2071 msgid "Channel URL" msgstr "채널 URL" -#: .././config.py:2041 +#: .././config.py:2073 msgid "Playlist URL" msgstr "플레이리스트 URL" -#: .././config.py:2043 .././config.py:4140 +#: .././config.py:2075 .././config.py:4166 msgid "Video URL" msgstr "비디오 URL" -#: .././config.py:2066 .././config.py:5245 +#: .././config.py:2098 .././config.py:5336 msgid "_Options" msgstr "_설정" -#: .././config.py:2080 .././config.py:3619 .././config.py:4868 -#: .././config.py:4907 +#: .././config.py:2112 .././config.py:3646 .././config.py:4919 +#: .././config.py:4963 msgid "Download options" msgstr "다운로드 설정" -#: .././config.py:2091 +#: .././config.py:2123 msgid "Edit download options" msgstr "다운로드 설정 편집하기" -#: .././config.py:2098 +#: .././config.py:2130 msgid "Remove download options" msgstr "다운로드 설정 지우기" -#: .././config.py:2269 +#: .././config.py:2301 msgid "Close this window" msgstr "이 창 닫기" -#: .././config.py:2677 +#: .././config.py:2709 msgid "Custom download settings" msgstr "" -#: .././config.py:2824 .././config.py:3867 .././config.py:8909 +#: .././config.py:2856 .././config.py:3894 .././config.py:9069 msgid "_Name" msgstr "_이름" -#: .././config.py:2847 +#: .././config.py:2878 msgid "Usage" msgstr "" -#: .././config.py:2859 +#: .././config.py:2890 msgid "Applies everywhere except the Classic Mode tab" msgstr "" -#: .././config.py:2862 +#: .././config.py:2893 msgid "Applies to the Classic Mode tab" msgstr "" -#: .././config.py:2864 +#: .././config.py:2895 msgid "Applies when selected" msgstr "" -#: .././config.py:2879 +#: .././config.py:2910 msgid "Import settings from the general custom download into this window" msgstr "" -#: .././config.py:2897 +#: .././config.py:2928 msgid "Completely reset all settings to their default values" msgstr "" #. Add this tab... -#: .././config.py:2911 .././config.py:4862 .././config.py:4881 -#: .././config.py:5798 .././config.py:19329 +#: .././config.py:2942 .././config.py:4913 .././config.py:4932 +#: .././config.py:5911 .././config.py:20125 msgid "_Downloads" msgstr "_다운로드" -#: .././config.py:2916 +#: .././config.py:2947 msgid "Download settings" msgstr "" -#: .././config.py:2921 +#: .././config.py:2952 msgid "Download each video independently of its channel or playlist" msgstr "" -#: .././config.py:2929 +#: .././config.py:2960 msgid "Hint: enable this setting first!" msgstr "" -#: .././config.py:2935 +#: .././config.py:2966 msgid "" "Check channels/playlists/folders before each custom download (recommended)" msgstr "" -#: .././config.py:2951 +#: .././config.py:2982 msgid "Split videos into video clips using timestamps (requires FFmpeg)" msgstr "" -#: .././config.py:2964 +#: .././config.py:2995 msgid "Remove slices from the video using SponsorBlock data (requires FFmpeg)" msgstr "" -#: .././config.py:2991 .././config.py:15395 +#: .././config.py:3022 .././config.py:16043 msgid "Remove" msgstr "제거" -#: .././config.py:3020 +#: .././config.py:3051 msgid "Types of video slice to remove:" msgstr "" -#: .././config.py:3035 +#: .././config.py:3066 msgid "Toggle" msgstr "" -#: .././config.py:3050 +#: .././config.py:3077 msgid "Remove all" msgstr "" #. (Signal connect appears below) -#: .././config.py:3057 +#: .././config.py:3084 msgid "Remove none" msgstr "" -#: .././config.py:3136 +#: .././config.py:3163 msgid "_Delays" msgstr "" -#: .././config.py:3141 +#: .././config.py:3168 msgid "Download delay settings" msgstr "" -#: .././config.py:3146 +#: .././config.py:3173 msgid "Apply a delay after each video/channel/playlist is downloaded" msgstr "" -#: .././config.py:3154 +#: .././config.py:3181 msgid "Maximum delay to apply (in minutes)" msgstr "적용할 최대 딜레이 (분)" -#: .././config.py:3170 +#: .././config.py:3197 msgid "Minimum delay to apply (in minutes; randomises the actual delay)" msgstr "적용할 최소 딜레이 (분; 실제 딜레이는 랜덤화됨)" -#: .././config.py:3203 +#: .././config.py:3230 msgid "Mirrors" msgstr "" -#: .././config.py:3208 +#: .././config.py:3235 msgid "Mirror settings" msgstr "" -#: .././config.py:3214 +#: .././config.py:3241 msgid "Obtain a YouTube video from the original website" msgstr "" -#: .././config.py:3222 +#: .././config.py:3249 msgid "Obtain the video from HookTube rather than YouTube" msgstr "" -#: .././config.py:3232 +#: .././config.py:3259 msgid "Obtain the video from Invidious rather than YouTube" msgstr "" -#: .././config.py:3242 +#: .././config.py:3269 msgid "Obtain the video from this YouTube front-end:" msgstr "" -#: .././config.py:3259 .././config.py:20377 +#: .././config.py:3286 .././config.py:21262 msgid "Type the exact text that replaces youtube.com e.g." msgstr "youtube.com을 대체하는 정확한 텍스트를 입력하세요." -#: .././config.py:3308 .././config.py:3455 .././config.py:7326 -#: .././config.py:7959 .././config.py:11331 .././config.py:11727 +#: .././config.py:3335 .././config.py:3482 .././config.py:7486 +#: .././config.py:8119 .././config.py:11480 .././config.py:11876 msgid "This procedure cannot be reversed. Are you sure you want to continue?" msgstr "이 작업은 되돌릴 수 없습니다. 계속하시겠습니까?" -#: .././config.py:3875 +#: .././config.py:3901 msgid "Name for these download options" msgstr "다운로드 설정의 이름" -#: .././config.py:3893 +#: .././config.py:3919 msgid "Download options applied to" msgstr "다운로드 설정 적용하기" -#: .././config.py:3929 +#: .././config.py:3955 msgid "All channels, playlists and folders" msgstr "모든 채널, 플레이리스트, 폴더" -#: .././config.py:3931 +#: .././config.py:3957 msgid "Downloads in the Classic Mode tab" msgstr "클래식 모드 탭의 다운로드" -#: .././config.py:3933 +#: .././config.py:3959 msgid "These options are not applied to anything" msgstr "이 설정은 아무것도 적용되지 않습니다" -#: .././config.py:3937 +#: .././config.py:3963 msgid "Extra command line options (e.g. --help; do not use -o or --output)" msgstr "추가 커맨드 라인 설정 (예. --help; do not use -o or --output)" -#: .././config.py:3949 -msgid "" -"Use ONLY these options (Tartube adds the downloader and the output folder" +#: .././config.py:3975 +msgid "Use ONLY these options (Tartube adds the output folder)" msgstr "" -#: .././config.py:3961 -msgid "" -"Use ONLY these options (Tartube adds the downloader and the output directory)" +#: .././config.py:3986 +msgid "Use ONLY these options (Tartube adds the output directory)" msgstr "" -#: .././config.py:3973 -msgid "Ignore the video/playlist/channel URL, because a URL is specified below" +#: .././config.py:3997 +msgid "Use only the URL specified below" msgstr "" -#: .././config.py:4009 +#: .././config.py:4031 msgid "Hide advanced download options" msgstr "고급 다운로드 설정 숨기기" -#: .././config.py:4011 +#: .././config.py:4033 msgid "Show advanced download options" msgstr "고급 다운로드 설정 보이기" -#: .././config.py:4021 +#: .././config.py:4043 msgid "Import general download options into this window" msgstr "이 창에 일반 다운로드 설정 가져오기" -#: .././config.py:4036 +#: .././config.py:4058 msgid "Completely reset all download options to their default values" msgstr "모든 다운로드 설정을 완전히 기본값으로 초기화하기" #. Add this tab... -#: .././config.py:4050 .././config.py:16496 +#: .././config.py:4072 .././config.py:17162 msgid "_Files" msgstr "_파일" -#: .././config.py:4071 +#: .././config.py:4098 msgid "File _names" msgstr "_파일 이름" -#: .././config.py:4079 +#: .././config.py:4105 msgid "File name options" msgstr "파일 이름 설정" -#: .././config.py:4084 +#: .././config.py:4110 msgid "Format for video file names" msgstr "비디오 파일 이름 포맷" -#: .././config.py:4109 +#: .././config.py:4135 msgid "File output template" msgstr "파일 출력 템플릿" -#: .././config.py:4129 +#: .././config.py:4155 msgid "Add to template:" msgstr "템플릿 추가:" -#: .././config.py:4134 .././config.py:12408 +#: .././config.py:4160 .././config.py:12557 msgid "Video properties" msgstr "비디오 속성" -#: .././config.py:4136 .././config.py:12676 +#: .././config.py:4162 .././config.py:12823 msgid "Video ID" msgstr "비디오 ID" -#: .././config.py:4137 +#: .././config.py:4163 msgid "Video title" msgstr "비디오 제목" -#: .././config.py:4138 +#: .././config.py:4164 msgid "Alternative video ID" msgstr "대체 비디오 ID" -#: .././config.py:4139 +#: .././config.py:4165 msgid "Secondary video title" msgstr "비디오 보조 제목" -#: .././config.py:4141 +#: .././config.py:4167 msgid "Video filename extension" msgstr "비디오 파일 확장자" -#: .././config.py:4142 +#: .././config.py:4168 msgid "Video licence" msgstr "비디오 라이센스" -#: .././config.py:4143 +#: .././config.py:4169 msgid "Age restriction (years)" msgstr "나이 제한 (연도)" -#: .././config.py:4144 +#: .././config.py:4170 msgid "Is a livestream" msgstr "생방송 여부" -#: .././config.py:4145 +#: .././config.py:4171 msgid "Autonumber videos, starting at 0" msgstr "자동 번호 비디오 (0부터 시작함)" -#: .././config.py:4147 +#: .././config.py:4173 msgid "Creator/uploader" msgstr "제작자/업로더" -#: .././config.py:4149 +#: .././config.py:4175 msgid "Full name of video uploader" msgstr "비디오 업로더의 실제 이름" -#: .././config.py:4150 +#: .././config.py:4176 msgid "Uploader ID" msgstr "" -#: .././config.py:4151 +#: .././config.py:4177 msgid "Nickname/ID of video uploader" msgstr "비디오 업로더의 닉네임/ID" -#: .././config.py:4152 +#: .././config.py:4178 msgid "Channel name" msgstr "채널 이름" -#: .././config.py:4153 +#: .././config.py:4179 msgid "Channel ID" msgstr "채널 ID" -#: .././config.py:4154 +#: .././config.py:4180 msgid "Playlist name" msgstr "플레이리스트 이름" -#: .././config.py:4155 +#: .././config.py:4181 msgid "Playlist ID" msgstr "플레이리스트 ID" -#: .././config.py:4156 +#: .././config.py:4182 msgid "Video index in playlist" msgstr "플레이리스트에서 비디오 위치" -#: .././config.py:4158 +#: .././config.py:4184 msgid "Date/time/location" msgstr "날짜/시간/위치" -#: .././config.py:4160 +#: .././config.py:4186 msgid "Release date (YYYYMMDD)" msgstr "릴리즈 날짜 (YYYYMMDD)" -#: .././config.py:4161 +#: .././config.py:4187 msgid "Release time (UNIX timestamp)" msgstr "릴리즈 날짜 (UNIX 타임스탬프)" -#: .././config.py:4162 +#: .././config.py:4188 msgid "Upload data (YYYYMMDD)" msgstr "업로드 날짜 (YYYYMMDD)" -#: .././config.py:4163 +#: .././config.py:4189 msgid "Video length (seconds)" msgstr "비디오 길이 (초)" -#: .././config.py:4164 +#: .././config.py:4190 msgid "Filming location" msgstr "촬영 위치" -#: .././config.py:4166 .././config.py:4168 +#: .././config.py:4192 .././config.py:4194 msgid "Video format" msgstr "비디오 포맷" -#: .././config.py:4169 +#: .././config.py:4195 msgid "Video format code" msgstr "비디오 포맷 코드" -#: .././config.py:4170 +#: .././config.py:4196 msgid "Video width" msgstr "비디오 폭" -#: .././config.py:4171 +#: .././config.py:4197 msgid "Video height" msgstr "비디오 높이" -#: .././config.py:4173 +#: .././config.py:4199 msgid "Video frame rate" msgstr "비디오 프레임 레이트" -#: .././config.py:4174 +#: .././config.py:4200 msgid "Average video/audio bitrate (KiB/s)" msgstr "평균 비디오/오디오 비트레이트 (KiB/s)" -#: .././config.py:4175 +#: .././config.py:4201 msgid "Average video bitrate (KiB/s)" msgstr "평균 비디오 비트레이트 (KiB/s)" -#: .././config.py:4176 +#: .././config.py:4202 msgid "Average audio bitrate (KiB/s)" msgstr "평균 오디오 비트레이트 (KiB/s)" -#: .././config.py:4178 +#: .././config.py:4204 msgid "Ratings/comments" msgstr "평점/댓글" -#: .././config.py:4180 +#: .././config.py:4206 msgid "Number of views" msgstr "조회수" -#: .././config.py:4181 +#: .././config.py:4207 msgid "Number of positive ratings" msgstr "좋아요 수" -#: .././config.py:4182 +#: .././config.py:4208 msgid "Number of negative ratings" msgstr "싫어요 수" -#: .././config.py:4183 +#: .././config.py:4209 msgid "Average rating" msgstr "평균 평점" -#: .././config.py:4184 +#: .././config.py:4210 msgid "Number of reposts" msgstr "신고 개수" -#: .././config.py:4185 +#: .././config.py:4211 msgid "Number of comments" msgstr "댓글 개수" -#: .././config.py:4221 .././config.py:5549 .././config.py:5689 -#: .././config.py:15385 .././config.py:18744 .././config.py:19566 -#: .././config.py:21203 .././config.py:21468 +#: .././config.py:4247 .././config.py:5649 .././config.py:5793 +#: .././config.py:16033 .././config.py:19523 .././config.py:20366 +#: .././config.py:22120 .././config.py:22393 msgid "Add" msgstr "추가" -#: .././config.py:4249 .././config.py:5850 +#: .././config.py:4280 .././config.py:5967 msgid "_Filesystem" msgstr "_파일 시스템" -#: .././config.py:4259 +#: .././config.py:4289 msgid "Filesystem options" msgstr "파일 시스템 설정" -#: .././config.py:4264 +#: .././config.py:4294 msgid "Restrict filenames to ASCII characters" msgstr "파일 이름을 ASCII 문자로 제한" -#: .././config.py:4271 +#: .././config.py:4301 msgid "Use the server's file modification time" msgstr "서버의 파일 수정 시간을 사용" -#: .././config.py:4279 +#: .././config.py:4309 msgid "Filesystem overrides" msgstr "파일 시스템 재정의" -#: .././config.py:4284 +#: .././config.py:4314 msgid "Download all videos into this folder" msgstr "모든 비디오를 이 폴더에 다운로드 하기" -#: .././config.py:4348 +#: .././config.py:4383 msgid "_Cookies" msgstr "_쿠키" -#: .././config.py:4356 +#: .././config.py:4390 msgid "Cookies options" msgstr "쿠키 설정" -#: .././config.py:4361 +#: .././config.py:4395 msgid "Path to the downloader's cookie jar file" msgstr "다운로더의 Cookie jar 파일 경로" -#: .././config.py:4417 +#: .././config.py:4456 msgid "_Write/move files" msgstr "_파일 쓰기/옮기기" -#: .././config.py:4425 +#: .././config.py:4463 msgid "File write options" msgstr "파일 쓰기 설정" -#: .././config.py:4430 +#: .././config.py:4468 msgid "Write video's description to a .description file" msgstr "비디오의 설명을 .description 파일에 쓰기" -#: .././config.py:4437 +#: .././config.py:4475 msgid "Write video's metadata to an .info.json file" msgstr "비디오의 메타데이터를 .info.json 파일에 쓰기" -#: .././config.py:4445 +#: .././config.py:4483 msgid "Write video's annotations to an .annotations.xml file" msgstr "비디오의 어노테이션을 .annotations.xml 파일에 쓰기" -#: .././config.py:4454 +#: .././config.py:4492 msgid "" "Annotations are not downloaded when checking videos/channels/playlists/" "folders" msgstr "" "어노테이션은 비디오/채널/플레이리스트/폴더를 체크할 때 다운로드 받지 않습니다" -#: .././config.py:4461 +#: .././config.py:4499 msgid "Write the video's thumbnail to the same folder" msgstr "비디오의 섬네일을 같은 폴더에 쓰기" -#: .././config.py:4469 +#: .././config.py:4507 msgid "File move options" msgstr "파일 옮기기 설정" -#: .././config.py:4474 +#: .././config.py:4512 msgid "Move video's description file into a sub-folder" msgstr "비디오의 설명을 서브폴더에 옮기기" -#: .././config.py:4480 +#: .././config.py:4518 msgid "Write video's metadata file into a sub-folder" msgstr "비디오의 메타데이터를 서브폴더에 쓰기" -#: .././config.py:4486 +#: .././config.py:4524 msgid "Write video's annotations file into a sub-folder" msgstr "비디오의 어노테이션을 서브폴더에 쓰기" -#: .././config.py:4492 +#: .././config.py:4530 msgid "Write the video's thumbnail into a sub-folder" msgstr "비디오의 섬네일을 서브폴더에 쓰기" -#: .././config.py:4506 +#: .././config.py:4549 msgid "_Keep files" msgstr "_파일 유지" -#: .././config.py:4512 +#: .././config.py:4555 msgid "Options during real (not simulated) downloads" msgstr "(시뮬레이션이 아닌) 실제 다운로드 설정" -#: .././config.py:4518 .././config.py:4549 +#: .././config.py:4561 .././config.py:4592 msgid "Keep the description file after the download has finished" msgstr "" -#: .././config.py:4524 .././config.py:4555 +#: .././config.py:4567 .././config.py:4598 msgid "Keep the metadata file after the download has finished" msgstr "" -#: .././config.py:4530 .././config.py:4561 +#: .././config.py:4573 .././config.py:4604 msgid "Keep the annotations file after the download has finished" msgstr "" -#: .././config.py:4536 .././config.py:4567 +#: .././config.py:4579 .././config.py:4610 msgid "Keep the thumbnail file after the download has finished" msgstr "" -#: .././config.py:4543 +#: .././config.py:4586 msgid "Options during simulated (not real) downloads" msgstr "(실제가 아닌) 시뮬레이션 다운로드 설정" #. Add this tab... -#: .././config.py:4581 +#: .././config.py:4624 msgid "F_ormats" msgstr "_포맷" -#: .././config.py:4600 +#: .././config.py:4648 msgid "_Preferred" msgstr "_선호" -#: .././config.py:4608 +#: .././config.py:4655 msgid "Preferred format options" msgstr "선호하는 포맷 설정" -#: .././config.py:4614 +#: .././config.py:4661 msgid "Recognised video/audio formats" msgstr "인식된 비디오/오디오 포맷" -#: .././config.py:4625 +#: .././config.py:4672 msgid "Add format" msgstr "포맷 추가하기" -#: .././config.py:4631 +#: .././config.py:4678 msgid "List of preferred formats" msgstr "선호하는 포맷 리스트" -#: .././config.py:4649 +#: .././config.py:4696 msgid "Remove format" msgstr "포맷 삭제하기" -#: .././config.py:4702 +#: .././config.py:4749 msgid "If a merge is required after post-processing, output to this format:" msgstr "후처리 뒤에 병합이 필요한 경우, 다음과 같은 포맷으로 출력:" #. Add this tab... -#: .././config.py:4729 .././config.py:6277 +#: .././config.py:4781 .././config.py:6413 msgid "_Advanced" msgstr "_고급" -#: .././config.py:4738 +#: .././config.py:4789 msgid "Multiple format options" msgstr "다중 포맷 설정" -#: .././config.py:4747 +#: .././config.py:4798 msgid "" "Multiple formats will not be downloaded, because an archive file will be " "created" msgstr "아카이브 파일이 생성되므로 다중 포맷은 다운로드 되지 않습니다" -#: .././config.py:4750 +#: .././config.py:4801 msgid "The archive file can be disabled in the System Preferences window" msgstr "시스템 환경 설정 창에서 아카이브 파일을 비활성화 할 수 있습니다" -#: .././config.py:4759 +#: .././config.py:4810 msgid "" "For each video, download the first available format from the preferred list" msgstr "" "각 비디오에 대해 선호 목록에서 사용 가능한 첫번째 포맷을 다운로드합니다" -#: .././config.py:4773 +#: .././config.py:4824 msgid "" "From the preferred list, download the first format that's available for all " "videos" msgstr "" "선호 목록에서 모든 동영상에 사용할 수 있는 첫번째 포맷을 다운로드합니다" -#: .././config.py:4787 +#: .././config.py:4838 msgid "For each video, download all available formats from the preferred list" msgstr "각 비디오에 대해 선호 목록에서 모든 가능한 포맷을 다운로드합니다" -#: .././config.py:4800 +#: .././config.py:4851 msgid "Download all available formats for all videos" msgstr "모든 비디오에서 가능한 모든 포맷을 다운로드합니다" -#: .././config.py:4833 +#: .././config.py:4884 msgid "Other format options" msgstr "다른 포맷 옵션" -#: .././config.py:4838 +#: .././config.py:4889 msgid "Prefer free video formats, unless one is specified above" msgstr "위에서 지정하지 않은 경우 무료 비디오 포맷 선호" -#: .././config.py:4845 +#: .././config.py:4896 msgid "Do not download DASH-related data for YouTube videos" msgstr "유튜브 비디오의 DASH 관련 데이터 다운로드 안함" -#: .././config.py:4924 +#: .././config.py:4985 msgid "_Playlists" msgstr "_플레이 리스트" -#: .././config.py:4939 +#: .././config.py:5005 msgid "_Size limits" msgstr "_사이즈 제한" -#: .././config.py:4953 +#: .././config.py:5024 msgid "_Dates" msgstr "_날짜" -#: .././config.py:4965 +#: .././config.py:5041 msgid "_Views" msgstr "_조회수" -#: .././config.py:4978 +#: .././config.py:5059 msgid "_Filtering" msgstr "_필터" -#: .././config.py:4992 +#: .././config.py:5078 msgid "_External" msgstr "_외부" -#: .././config.py:5004 +#: .././config.py:5090 msgid "_Sound only" msgstr "_사운드만" -#: .././config.py:5009 +#: .././config.py:5095 msgid "Sound only options" msgstr "사운드 설정" -#: .././config.py:5015 +#: .././config.py:5101 msgid "" "Download each video, extract the sound, and then discard the original videos" msgstr "각각의 비디오를 다운로드 할때, 소리를 추출하고, 이전의 비디오를 지움" -#: .././config.py:5020 +#: .././config.py:5106 msgid "(requires that FFmpeg or AVConv is installed on your system)" msgstr "(FFmpeg나 AVConv가 컴퓨터에 깔려있어야 함)" -#: .././config.py:5031 +#: .././config.py:5117 msgid "Use this audio format:" msgstr "오디오 포맷 설정:" -#: .././config.py:5047 +#: .././config.py:5133 msgid "Use this audio quality:" msgstr "오디오 음질 설정:" -#: .././config.py:5053 .././config.py:5131 +#: .././config.py:5139 .././config.py:5217 msgid "High" msgstr "고음질" -#: .././config.py:5055 .././config.py:5133 +#: .././config.py:5141 .././config.py:5219 msgid "Low" msgstr "저음질" -#: .././config.py:5074 .././config.py:6122 +#: .././config.py:5160 .././config.py:6255 msgid "_Post-processing" msgstr "_후처리" -#: .././config.py:5080 .././config.py:5414 +#: .././config.py:5166 .././config.py:5510 msgid "Post-processing options" msgstr "후처리 설정" -#: .././config.py:5086 +#: .././config.py:5172 msgid "Post-process video files to convert them to audio-only files" msgstr "비디오 파일들을 후처리 후 오디오 파일로 변환" -#: .././config.py:5094 +#: .././config.py:5180 msgid "Prefer AVConv over FFmpeg" msgstr "FFmpeg보다 AVConv 선호" -#: .././config.py:5103 +#: .././config.py:5189 msgid "Prefer FFmpeg over AVConv (default)" msgstr "FFmpeg보다 AVConv 선호 (기본값)" -#: .././config.py:5112 +#: .././config.py:5198 msgid "Audio format of the post-processed file" msgstr "후처리된 파일의 오디오 포맷" -#: .././config.py:5126 +#: .././config.py:5212 msgid "Audio quality of the post-processed file" msgstr "후처리된 파일의 오디오 음질" -#: .././config.py:5144 +#: .././config.py:5230 msgid "Encode video to another format, if necessary" msgstr "필요한 경우 다른 포맷으로 비디오 인코딩" -#: .././config.py:5157 +#: .././config.py:5243 msgid "Arguments to pass to post-processor" msgstr "후처리기에 전달할 인자" -#: .././config.py:5168 +#: .././config.py:5254 msgid "Keep original file after processing it" msgstr "처리 후 원본 파일 갖고 있기" -#: .././config.py:5176 +#: .././config.py:5262 msgid "Merge subtitles file with video (.mp4 only)" msgstr "자막을 비디오와 합치기 (.mp4만 가능)" -#: .././config.py:5188 +#: .././config.py:5274 msgid "Embed thumbnail in audio file as cover art" msgstr "섬네일을 오디오 파일의 표지 아트로 설정" -#: .././config.py:5195 +#: .././config.py:5281 msgid "Write metadata to the video file" msgstr "비디오 파일에 메타데이터 작성하기" -#: .././config.py:5202 +#: .././config.py:5288 msgid "Automatically correct known faults of the file" msgstr "자동으로 파일의 결함 수정" -#: .././config.py:5208 +#: .././config.py:5294 msgid "Do nothing" msgstr "아무것도 하지 않음" -#: .././config.py:5209 +#: .././config.py:5295 msgid "Warn, but do nothing" msgstr "경고, 하지만 아무것도 하지 않음" -#: .././config.py:5210 +#: .././config.py:5296 msgid "Fix if possible, otherwise warn" msgstr "가능하면 수리, 아닌 경우 경고" #. Add this tab... -#: .././config.py:5228 +#: .././config.py:5314 msgid "S_ubtitles" msgstr "_자막" -#: .././config.py:5249 +#: .././config.py:5340 msgid "Subtitles options" msgstr "자막 설정" -#: .././config.py:5255 +#: .././config.py:5346 msgid "Don't download the subtitles file" msgstr "자막 파일 다운로드받지 않기" -#: .././config.py:5266 +#: .././config.py:5357 msgid "Download the automatic subtitles file (YouTube only)" msgstr "자동으로 만들어진 자막 파일 다운로드 (유튜브만 가능)" -#: .././config.py:5279 +#: .././config.py:5370 msgid "Download all available subtitles files" msgstr "만들어진 모든 자막파일 다운로드" -#: .././config.py:5292 +#: .././config.py:5383 msgid "Download subtitles file for these languages:" msgstr "이 언어들의 자막파일 다운로드:" -#: .././config.py:5316 +#: .././config.py:5407 msgid "Add language" msgstr "언어 추가" -#: .././config.py:5330 +#: .././config.py:5421 msgid "Remove language" msgstr "언어 제거" -#: .././config.py:5388 +#: .././config.py:5484 msgid "_More options" msgstr "_추가 설정" -#: .././config.py:5394 +#: .././config.py:5490 msgid "Subtitle format options" msgstr "자막 포맷 설정" -#: .././config.py:5400 +#: .././config.py:5496 msgid "Preferred subtitle format(s), e.g. 'srt', 'vtt', 'srt/ass/vtt/lrc/best'" msgstr "선호하는 자막 포맷들, 예. 'srt', 'vtt', 'srt/ass/vtt/lrc/best'" -#: .././config.py:5419 +#: .././config.py:5515 msgid "Applies to .mp4 videos only; requires FFmpeg/AVConv" msgstr ".mp4 비디오에만 적용하기; FFmpeg/AVConv 필요" -#: .././config.py:5426 +#: .././config.py:5522 msgid "During post-processing, merge subtitles file with video" msgstr "후처리 도중, 자막을 비디오에 합치기" #. Add this tab... -#: .././config.py:5446 +#: .././config.py:5542 msgid "_yt-dlp" msgstr "" -#: .././config.py:5481 +#: .././config.py:5581 msgid "List of output filename templates" msgstr "" -#: .././config.py:5482 .././config.py:5616 .././config.py:5756 -#: .././config.py:5806 .././config.py:5858 .././config.py:5935 -#: .././config.py:5983 .././config.py:6024 .././config.py:6075 -#: .././config.py:6131 .././config.py:6211 +#: .././config.py:5582 .././config.py:5720 .././config.py:5864 +#: .././config.py:5918 .././config.py:5974 .././config.py:6049 +#: .././config.py:6102 .././config.py:6147 .././config.py:6203 +#: .././config.py:6263 .././config.py:6347 msgid "yt-dlp only" msgstr "" -#: .././config.py:5487 +#: .././config.py:5587 msgid "Overrides the output template in the 'Files' tab" msgstr "" -#: .././config.py:5506 +#: .././config.py:5606 msgid "Template" msgstr "" -#: .././config.py:5525 .././config.py:5653 +#: .././config.py:5625 .././config.py:5757 msgid "Output type" msgstr "" -#: .././config.py:5538 +#: .././config.py:5638 msgid "Output template" msgstr "" -#: .././config.py:5560 .././config.py:5700 .././config.py:18780 -#: .././config.py:19625 .././config.py:21262 .././config.py:21527 +#: .././config.py:5660 .././config.py:5804 .././config.py:19559 +#: .././config.py:20424 .././config.py:22178 .././config.py:22451 msgid "Delete" msgstr "삭제" -#: .././config.py:5569 .././config.py:5709 .././config.py:17346 -#: .././config.py:19641 .././config.py:21278 .././config.py:21543 +#: .././config.py:5669 .././config.py:5813 .././config.py:18069 +#: .././config.py:20440 .././config.py:22194 .././config.py:22467 msgid "Refresh list" msgstr "리스트 새로고침" -#: .././config.py:5607 +#: .././config.py:5712 msgid "_Paths" msgstr "" -#: .././config.py:5615 +#: .././config.py:5719 msgid "List of output paths" msgstr "" -#: .././config.py:5634 +#: .././config.py:5738 msgid "Path" msgstr "" -#: .././config.py:5668 +#: .././config.py:5772 msgid "Output path" msgstr "" -#: .././config.py:5755 +#: .././config.py:5863 msgid "Video Selection Options" msgstr "" -#: .././config.py:5761 +#: .././config.py:5869 msgid "Stop download process when encountering a file in the archive" msgstr "" -#: .././config.py:5769 +#: .././config.py:5877 msgid "" "Stop download process when encountering a file that has been filtered out" msgstr "" -#: .././config.py:5778 +#: .././config.py:5886 msgid "Number of failures allowed before rest of playlist is skipped" msgstr "" -#: .././config.py:5806 +#: .././config.py:5918 msgid "Download Options" msgstr "" -#: .././config.py:5813 +#: .././config.py:5925 msgid "Number of fragments of a DASH/HLS video to download concurrently" msgstr "" -#: .././config.py:5828 +#: .././config.py:5940 msgid "Minimum download rate (bytes/sec) below which throttling is assumed" msgstr "" -#: .././config.py:5858 +#: .././config.py:5974 msgid "Filesystem Options" msgstr "" -#: .././config.py:5864 +#: .././config.py:5980 msgid "Force filenames to be MS Windows compatible" msgstr "" -#: .././config.py:5872 +#: .././config.py:5988 msgid "Limit filnema lenght (excluding extension) to this many characters" msgstr "" -#: .././config.py:5887 +#: .././config.py:6003 msgid "Overwrite all video and metadata files (includes '--no-continue')" msgstr "" -#: .././config.py:5896 +#: .././config.py:6012 msgid "Write playlist metadata in addition to video metadata" msgstr "" -#: .././config.py:5904 +#: .././config.py:6020 msgid "Write all fields, including private fields, to the .info.json file" msgstr "" -#: .././config.py:5913 -msgid "Retrieve video comments and add to .info.json file" -msgstr "" - -#: .././config.py:5928 +#: .././config.py:6042 msgid "_Shortcuts" msgstr "" -#: .././config.py:5934 +#: .././config.py:6048 msgid "Internet Shortcut Options" msgstr "" -#: .././config.py:5940 +#: .././config.py:6054 msgid "Write an internet shortcut file (.url, .webloc or .desktop)" msgstr "" -#: .././config.py:5947 +#: .././config.py:6061 msgid "Write a Windows internet shortcut file (.url)" msgstr "" -#: .././config.py:5954 +#: .././config.py:6068 msgid "Write a macOS inernet shortcut file (.webloc)" msgstr "" -#: .././config.py:5961 +#: .././config.py:6075 msgid "Write a Linux internet shortcut file (.desktop)" msgstr "" -#: .././config.py:5976 +#: .././config.py:6095 msgid "V_erbosity" msgstr "" -#: .././config.py:5982 +#: .././config.py:6101 msgid "Verbosity and Simulation Options" msgstr "" -#: .././config.py:5989 +#: .././config.py:6108 msgid "" "Ignore 'No video formats' error (useful for extracting metadata from " "unavailable videos)" msgstr "" -#: .././config.py:5999 +#: .././config.py:6118 msgid "Force download archive entries to be written as long as no errors occur" msgstr "" -#: .././config.py:6016 +#: .././config.py:6140 msgid "_Workarounds" msgstr "" -#: .././config.py:6024 +#: .././config.py:6147 msgid "Workaround Options" msgstr "" -#: .././config.py:6031 +#: .././config.py:6154 msgid "Number of seconds to sleep between requests during data extraction" msgstr "" -#: .././config.py:6046 +#: .././config.py:6169 msgid "Number of seconds to sleep before each download (or minimum time)" msgstr "" -#: .././config.py:6068 +#: .././config.py:6196 msgid "Fo_rmats" msgstr "" -#: .././config.py:6074 +#: .././config.py:6202 msgid "Video Format Options" msgstr "" -#: .././config.py:6080 +#: .././config.py:6208 msgid "Allow multiple video streams to be merged into a single file" msgstr "" -#: .././config.py:6087 +#: .././config.py:6215 msgid "Allow multiple audio streams to be merged into a single file" msgstr "" -#: .././config.py:6095 +#: .././config.py:6223 msgid "Check formats selected are actually downloadable (Experimental" msgstr "" -#: .././config.py:6105 +#: .././config.py:6233 msgid "" "Allow unplayable formats to be listed and downloaded (also disables post-" "processing)" msgstr "" -#: .././config.py:6130 +#: .././config.py:6262 msgid "Post-Processing Options" msgstr "" -#: .././config.py:6136 +#: .././config.py:6268 msgid "Remux video into another container if necessary" msgstr "" -#: .././config.py:6155 +#: .././config.py:6287 msgid "Embed metadata including chapter markers (if supported by format)" msgstr "" -#: .././config.py:6164 +#: .././config.py:6296 msgid "Convert thumbnails to another format" msgstr "" -#: .././config.py:6179 +#: .././config.py:6311 msgid "Split video into multiple files based on internal chapters" msgstr "" -#: .././config.py:6188 +#: .././config.py:6320 msgid "N.B. The 'chapter' prefix can be used in the 'Output' and 'Paths' tabs" msgstr "" -#: .././config.py:6203 +#: .././config.py:6340 msgid "E_xtractor" msgstr "" -#: .././config.py:6211 +#: .././config.py:6347 msgid "Extractor Options" msgstr "" -#: .././config.py:6234 +#: .././config.py:6370 msgid "Do not process dynamic DASH manifests" msgstr "" -#: .././config.py:6242 +#: .././config.py:6378 msgid "" "Split HLS playlists to different formats at discontinuities such as ad breaks" msgstr "" -#: .././config.py:6252 +#: .././config.py:6388 msgid "Extractor Arguments" msgstr "" -#: .././config.py:6257 +#: .././config.py:6393 msgid "One argument per line, e.g." msgstr "" -#: .././config.py:6299 +#: .././config.py:6440 msgid "_Configurations" msgstr "" -#: .././config.py:6307 +#: .././config.py:6447 msgid "Configuration file options" msgstr "" -#: .././config.py:6312 +#: .././config.py:6452 msgid "Use the downloader's configuration file" msgstr "" -#: .././config.py:6323 .././config.py:6501 +#: .././config.py:6463 .././config.py:6649 msgid "File loaded from:" msgstr "" -#: .././config.py:6334 .././config.py:6512 +#: .././config.py:6474 .././config.py:6660 msgid "Save file" msgstr "" -#: .././config.py:6375 +#: .././config.py:6520 msgid "_Authentication" msgstr "_인증" -#: .././config.py:6383 +#: .././config.py:6527 msgid "Authentication options" msgstr "_인증 설정" -#: .././config.py:6388 +#: .././config.py:6532 msgid "Username with which to log in" msgstr "로그인할 사용자 이름" -#: .././config.py:6399 +#: .././config.py:6543 msgid "Password with which to log in" msgstr "로그인할 사용자 비밀번호" -#: .././config.py:6410 +#: .././config.py:6554 msgid "Password required for this URL" msgstr "이 URL에선 비밀번호 필요" -#: .././config.py:6421 +#: .././config.py:6565 msgid "Two-factor authentication code" msgstr "이중인증 코드" -#: .././config.py:6433 +#: .././config.py:6577 msgid "Adobe Pass multiple-system operator (TV provider) identifier" msgstr "" -#: .././config.py:6446 +#: .././config.py:6590 msgid " Adobe Pass multiple-system operator account login" msgstr "" -#: .././config.py:6457 +#: .././config.py:6601 msgid "Adobe Pass multiple-system operator account password" msgstr "" -#: .././config.py:6476 +#: .././config.py:6625 msgid "._netrc" msgstr "" -#: .././config.py:6484 +#: .././config.py:6632 msgid ".netrc options" msgstr "" -#: .././config.py:6489 +#: .././config.py:6637 msgid "Use .netrc authentication data" msgstr ".netrc 인증 데이터 사용하기" -#: .././config.py:6556 +#: .././config.py:6709 msgid "_Network" msgstr "_네트워크" -#: .././config.py:6562 +#: .././config.py:6714 msgid "Network options" msgstr "네트워크 설정" -#: .././config.py:6568 +#: .././config.py:6720 msgid "" "Use this HTTP/HTTPS proxy (if set, overrides the proxies in Tartube's " "preferences window" msgstr "" "HTTP/HTTPS 프록시 사용하기 (설정하면, Tartube 환경설정 창의 프록시가 무시됨)" -#: .././config.py:6581 +#: .././config.py:6733 msgid "Time to wait for socket connection, before giving up" msgstr "소켓 연결 대기 시간" -#: .././config.py:6592 +#: .././config.py:6744 msgid "Bind with this Client-side IP address" msgstr "이 클라이언트 사이트 IP로 바인딩" -#: .././config.py:6603 +#: .././config.py:6755 msgid "Connect using IPv4 only" msgstr "IPv4로만 연결" -#: .././config.py:6610 +#: .././config.py:6762 msgid "Connect using IPv6 only" msgstr "IPv6으로만 연결" -#: .././config.py:6625 +#: .././config.py:6782 msgid "_Geo-restriction" msgstr "_국가제한" -#: .././config.py:6633 +#: .././config.py:6789 msgid "Geo-restriction options" msgstr "_국가제한 설정" -#: .././config.py:6638 +#: .././config.py:6794 msgid "Use this proxy to verify IP address" msgstr "이 프록시를 이용해 우회하기" -#: .././config.py:6649 +#: .././config.py:6805 msgid "Bypass using fake X-Forwarded-For HTTP header" msgstr "가짜 X-Forwarded-For HTTP 헤더 이용해 우회하기" -#: .././config.py:6656 +#: .././config.py:6812 msgid "Don't bypass using fake HTTP header" msgstr "가짜 HTTP 헤더 이용해 우회하지 않기" -#: .././config.py:6663 +#: .././config.py:6819 msgid "Bypass geo-restriction with ISO 3166-2 country code" msgstr "ISO 3166-2 지역 코드 이용해 국가제한 우회하기" -#: .././config.py:6674 +#: .././config.py:6830 msgid "Bypass with explicit IP block in CIDR notation" msgstr "CIDR 표기법에서 명시적 IP 블록을 이용해 우회하기" -#: .././config.py:6698 +#: .././config.py:6858 msgid "Workaround options" msgstr "해결방법 설정" -#: .././config.py:6703 +#: .././config.py:6863 msgid "Custom user agent" msgstr "커스텀 사용자 에이전트" -#: .././config.py:6714 +#: .././config.py:6874 msgid "Custom referer if video access has restricted domain" msgstr "비디오 액세스에 제한된 도메인이 있는 경우 커스텀 참조자" -#: .././config.py:6725 +#: .././config.py:6885 msgid "Minimum seconds to sleep before each download" msgstr "다운로드 시 최소 대기 시간(초)" -#: .././config.py:6738 +#: .././config.py:6898 msgid "Maximum seconds to sleep before each download" msgstr "다운로드 시 최대 대기 시간(초)" -#: .././config.py:6759 +#: .././config.py:6919 msgid "Force this encoding (experimental)" msgstr "인코딩 강제하기 (실험적)" -#: .././config.py:6770 +#: .././config.py:6930 msgid "Suppress HTTPS certificate validation" msgstr "HTTPS 인증서 유효성 검사 억제" -#: .././config.py:6778 +#: .././config.py:6938 msgid "" "Use an unencrypted connection to retrieve information about videos (YouTube " "only)" msgstr "암호화되지 않은 연결을 사용해 비디오 정보 검색 (유튜브만)" -#: .././config.py:6860 +#: .././config.py:7020 msgid "Prefer HLS (HTTP Live Streaming)" msgstr "HLS 선호 (HTTP 라이브 생방송)" -#: .././config.py:6867 +#: .././config.py:7027 msgid "Prefer FFMpeg over native HLS downloader" msgstr "기본 HLS 다운로더보다 FFMpeg 선호" -#: .././config.py:6874 +#: .././config.py:7034 msgid "Include advertisements (experimental feature)" msgstr "광고 포함 (실험적 기능)" -#: .././config.py:6881 +#: .././config.py:7041 msgid "Ignore errors and continue the download operation" msgstr "오류를 무시하고 다운로드 작업 재개" -#: .././config.py:6888 +#: .././config.py:7048 msgid "Number of retries" msgstr "재시도 횟수" -#: .././config.py:6909 +#: .././config.py:7069 msgid "Download videos suitable for this age" msgstr "이 연령대에 적합한 비디오 다운로드" -#: .././config.py:6930 +#: .././config.py:7090 msgid "Playlist options" msgstr "플레이리스트 설정" -#: .././config.py:6936 +#: .././config.py:7096 msgid "" "Channels and playlists are handled in the same way, so these options can be " "used with both" msgstr "" "채널과 플레이리스트는 동일한 방식으로 처리되므로, 이 설정은 동시에 적용됩니다" -#: .././config.py:6943 +#: .././config.py:7103 msgid "Start downloading playlist from index" msgstr "이 부분부터 플레이리스트 다운로드 시작" -#: .././config.py:6955 +#: .././config.py:7115 msgid "Stop downloading playlist at index" msgstr "이 부분까지 플레이리스트 다운로드 종료" -#: .././config.py:6967 +#: .././config.py:7127 msgid "Abort operation after downloading this many videos" msgstr "이 많은 동영상을 다운로드 후 작업 중단" -#: .././config.py:6979 +#: .././config.py:7139 msgid "Abort downloading the playlist if an error occurs" msgstr "플레이리스트에서 오류가 나면 다운로드 중지하기" -#: .././config.py:6986 +#: .././config.py:7146 msgid "Download playlist in reverse order" msgstr "플레이리스트를 역순으로 다운로드 하기" -#: .././config.py:6993 +#: .././config.py:7153 msgid "Download playlist in random order" msgstr "플레이리스트를 랜덤 순서로 다운로드 하기" -#: .././config.py:7009 +#: .././config.py:7169 msgid "Video size limit options" msgstr "비디오 사이즈 제한 설정" -#: .././config.py:7014 +#: .././config.py:7174 msgid "Minimum file size for video downloads" msgstr "비디오 다운로드 최소 용량" -#: .././config.py:7032 +#: .././config.py:7192 msgid "Maximum file size for video downloads" msgstr "비디오 다운로드 최대 용량" -#: .././config.py:7060 +#: .././config.py:7220 msgid "Video date options" msgstr "비디오 날짜 설정" -#: .././config.py:7065 +#: .././config.py:7225 msgid "Only videos uploaded on this date" msgstr "이 날짜에 업로드된 비디오만 다운로드" -#: .././config.py:7086 +#: .././config.py:7246 msgid "Only videos uploaded before this date" msgstr "이 날짜 이전에 업로드된 비디오만 다운로드" -#: .././config.py:7107 +#: .././config.py:7267 msgid "Only videos uploaded after this date" msgstr "이 날짜 이후에 업로드된 비디오만 다운로드" -#: .././config.py:7138 +#: .././config.py:7298 msgid "Video views options" msgstr "비디오 조회수 설정" -#: .././config.py:7143 +#: .././config.py:7303 msgid "Minimum number of views" msgstr "다운받을 비디오의 최소 조회수" -#: .././config.py:7155 +#: .././config.py:7315 msgid "Maximum number of views" msgstr "다운받을 비디오의 최대 조회수" -#: .././config.py:7181 +#: .././config.py:7341 msgid "Video filtering options" msgstr "비디오 필터링 설정" -#: .././config.py:7186 +#: .././config.py:7346 msgid "Download only matching titles (regex or caseless substring)" msgstr "제목과 일치하는 비디오 다운로드 (regex 혹은 caseless substring)" -#: .././config.py:7198 +#: .././config.py:7358 msgid "Don't download only matching titles (regex or caseless substring)" msgstr "제목과 일치하는 비디오 다운로드하지 않기 (regex or caseless substring)" -#: .././config.py:7211 +#: .././config.py:7371 msgid "Generic video filter, for example:" msgstr "일반적 비디오 필터, 예:" -#: .././config.py:7232 +#: .././config.py:7392 msgid "External downloader options" msgstr "외부 다운로더 설정" -#: .././config.py:7237 +#: .././config.py:7397 msgid "Use this external downloader" msgstr "이 외부 다운로더 사용" -#: .././config.py:7255 +#: .././config.py:7415 msgid "Arguments to pass to external downloader" msgstr "외부 다운로더에 전달할 인자" -#: .././config.py:7353 +#: .././config.py:7513 msgid "Select the cookie jar file" msgstr "Cookie jar 파일 선택" -#: .././config.py:7465 +#: .././config.py:7625 msgid "Could not save the downloader's configuration file" msgstr "" -#: .././config.py:7476 +#: .././config.py:7636 msgid "Downloader's configuration file saved" msgstr "" -#: .././config.py:7732 +#: .././config.py:7892 msgid "" "This option won't work unless the format is also added to the list of " "preferred formats above" msgstr "" "위의 선호 포맷 목록에도 포맷을 추가하지 않으면 이 설정이 작동하지 않습니다" -#: .././config.py:7923 +#: .././config.py:8083 msgid "Could not save the .netrc file" msgstr "" -#: .././config.py:7940 +#: .././config.py:8100 msgid ".netrc file saved" msgstr "" -#: .././config.py:7998 +#: .././config.py:8158 msgid "" "Fewer download options will be visible when you click the 'Apply' or 'Reset' " "buttons (or when you close and then re-open the window)" @@ -5172,11 +5187,11 @@ msgstr "" "'적용' 또는 '재설정' 버튼을 클리하면 (혹은 창을 닫았다 다시 열면) 더 적은 다" "운로드 설정이 표시됩니다." -#: .././config.py:8008 +#: .././config.py:8168 msgid "Show advanced download options (when window re-opens)" msgstr "고급 다운로드 설정 표시하기 (윈도우를 다시 열면)" -#: .././config.py:8021 +#: .././config.py:8181 msgid "" "More download options will be visible when you click the 'Apply' or 'Reset' " "buttons (or when you close and then re-open the window)" @@ -5184,72 +5199,72 @@ msgstr "" "'적용' 또는 '재설정' 버튼을 클리하면 (혹은 창을 닫았다 다시 열면) 더 많은 다" "운로드 설정이 표시됩니다." -#: .././config.py:8031 +#: .././config.py:8191 msgid "Hide advanced download options (when window re-opens)" msgstr "고급 다운로드 설정 숨기기 (윈도우를 다시 열면)" -#: .././config.py:8490 +#: .././config.py:8650 msgid "Select the output folder" msgstr "" -#: .././config.py:8492 +#: .././config.py:8652 msgid "Select the output directory" msgstr "" -#: .././config.py:8542 +#: .././config.py:8702 msgid "FFmpeg options" msgstr "FFmpeg 설정" #. Replace the 'OK' button with a 'Process files' button -#: .././config.py:8895 .././config.py:12132 +#: .././config.py:9055 .././config.py:12281 msgid "Process files" msgstr "파일 처리" -#: .././config.py:8897 .././config.py:12134 +#: .././config.py:9057 .././config.py:12283 msgid "Process the files with FFmpeg" msgstr "FFmpeg로 파일 처리" -#: .././config.py:8914 +#: .././config.py:9073 msgid "Name for these FFmpeg options" msgstr "FFmpeg 설정 이름" -#: .././config.py:8932 +#: .././config.py:9091 msgid "Extra command line options (e.g. --help)" msgstr "추가 커맨드 라인 설정 (예. --help)" -#: .././config.py:8943 +#: .././config.py:9102 msgid "System command, based on all FFmpeg options in this window:" msgstr "이 창에 있는 FFmpeg 설정에 기반한 시스템 커맨드:" -#: .././config.py:8974 +#: .././config.py:9133 msgid "Show fewer FFmpeg options" msgstr "더 적은 FFmpeg 설정" -#: .././config.py:8976 +#: .././config.py:9135 msgid "Show more FFmpeg options" msgstr "더 많은 FFmpeg 설정" -#: .././config.py:8986 +#: .././config.py:9145 msgid "Import current FFmpeg options into this window" msgstr "현재 FFmpeg 설정을 이 창에 가져오기" -#: .././config.py:9001 +#: .././config.py:9160 msgid "Completely reset all FFmpeg options to their default values" msgstr "모든 FFmpeg 설정을 완전히 기본값으로 초기화하기" -#: .././config.py:9017 +#: .././config.py:9176 msgid "Add to end of filename:" msgstr "파일명의 맨 마지막에 추가하기:" -#: .././config.py:9027 +#: .././config.py:9186 msgid "If regex matches filename:" msgstr "정규식과 일치하는 파일명:" -#: .././config.py:9041 +#: .././config.py:9200 msgid "...then apply substitution:" msgstr "...그리고 대체 적용하기:" -#: .././config.py:9054 +#: .././config.py:9213 msgid "" "If the video/audio file is renamed, also rename the thumbnail (but not vice-" "versa)" @@ -5257,61 +5272,61 @@ msgstr "" "만약 비디오/오디오 파일 이름이 변경되었다면, 섬네일 이름도 변경해 주십시오 " "(반대로는 아님)" -#: .././config.py:9065 +#: .././config.py:9224 msgid "Change file extension:" msgstr "변경 파일 확장자:" -#: .././config.py:9079 +#: .././config.py:9238 msgid "After changing the file extension, delete the original file" msgstr "파일 확장자를 변경한 이후엔, 원본 파일을 삭제해 주세요" -#: .././config.py:9150 +#: .././config.py:9309 msgid "_Settings" msgstr "_설정" -#: .././config.py:9164 +#: .././config.py:9322 msgid "Downloaded video/audio" msgstr "다운받은 비디오/오디오" -#: .././config.py:9173 +#: .././config.py:9331 msgid "with audio" msgstr "오디오와 함께" -#: .././config.py:9186 .././config.py:9263 .././config.py:10796 +#: .././config.py:9344 .././config.py:9421 .././config.py:10943 msgid "Thumbnail" msgstr "섬네일" -#: .././config.py:9198 +#: .././config.py:9356 msgid "Output" msgstr "" -#: .././config.py:9227 +#: .././config.py:9385 msgid "Video clip" msgstr "" -#: .././config.py:9239 +#: .././config.py:9397 msgid "Video slice" msgstr "" -#: .././config.py:9251 +#: .././config.py:9409 msgid "Merge video/audio" msgstr "" -#: .././config.py:9361 +#: .././config.py:9519 msgid "Audio bitrate" msgstr "오디오 진동" -#: .././config.py:9375 +#: .././config.py:9533 msgid "How to set the quality" msgstr "품질 설정 방법" -#: .././config.py:9380 +#: .././config.py:9538 msgid "" "FFmpeg always encodes according to a Rate Factor that specifies the quality " "of the result." msgstr "FFmpeg는 항상 결과의 화질을 지정하는 속도 계수에 따라 인코딩됩니다." -#: .././config.py:9383 +#: .././config.py:9541 msgid "" "Instead of directly specifying the Rate Factor, an average bit rate can be " "specified. FFmpeg will then determine the optimal Rate Factor in a first " @@ -5320,7 +5335,7 @@ msgstr "" "속도 계수를 직접 지정하는 대신 평균 비트레이트를 지정할 수 있습니다. 그런 다" "음 FFmpeg가 첫 번째 패스 도중 최적의 속도 계수를 결정합니다." -#: .././config.py:9387 +#: .././config.py:9545 msgid "" "In fact the first pass is only used for determining the Rate Factor, no " "other data is carried over into the second pass." @@ -5328,7 +5343,7 @@ msgstr "" "실제로 첫 번째 패스는 속도 계수를 결정하는 데만 사용되며, 다른 데이터는 두번" "째 패스로 전달되지 않습니다." -#: .././config.py:9390 +#: .././config.py:9548 msgid "" "Specifying an average bitrate but running only one pass is possible, but not " "recommended. FFmpeg would then encode the beginning of the video with a " @@ -5340,193 +5355,193 @@ msgstr "" "비디오 끝부분에 와서 목표 비트레이트를 도달하기 위해 속도계수를 변경할 것입니" "다." -#: .././config.py:9403 +#: .././config.py:9561 msgid "Manual rate factor" msgstr "속도 계수 수동 지정" -#: .././config.py:9412 +#: .././config.py:9570 msgid "Determine from target bitrate (2-Pass)" msgstr "목표 비트레이트 결정하기 (2-패스)" -#: .././config.py:9422 +#: .././config.py:9580 msgid "Rate factor" msgstr "속도 계수" -#: .././config.py:9434 +#: .././config.py:9589 msgid "Lossless" msgstr "무손실" -#: .././config.py:9434 +#: .././config.py:9589 msgid "Large file" msgstr "큰 파일" -#: .././config.py:9456 +#: .././config.py:9611 msgid "Bad quality" msgstr "저 화질" -#: .././config.py:9456 +#: .././config.py:9611 msgid "Small file" msgstr "작은 파일" -#: .././config.py:9463 +#: .././config.py:9618 msgid "Name of dummy file" msgstr "더미 파일 이름" -#: .././config.py:9467 +#: .././config.py:9622 msgid "A dummy file is created during the first pass." msgstr "더미 파일은 첫번째 패스 중 만들어지는 파일입니다." -#: .././config.py:9471 +#: .././config.py:9626 msgid "Use the output file" msgstr "출력 파일 사용" -#: .././config.py:9472 +#: .././config.py:9627 msgid "Dummy" msgstr "더미" -#: .././config.py:9473 +#: .././config.py:9628 msgid "/dev/null (Linux)" msgstr "/dev/null (Linux)" -#: .././config.py:9474 +#: .././config.py:9629 msgid "NUL (MS Windows)" msgstr "NUL (MS Windows)" -#: .././config.py:9486 +#: .././config.py:9641 msgid "Patience preset" msgstr "인내 프리셋" -#: .././config.py:9491 +#: .././config.py:9646 msgid "Ultra fast" msgstr "울트라 빠름" -#: .././config.py:9492 +#: .././config.py:9647 msgid "Super fast" msgstr "슈퍼 빠름" -#: .././config.py:9493 +#: .././config.py:9648 msgid "Very fast" msgstr "매우 빠름" -#: .././config.py:9494 .././config.py:9592 +#: .././config.py:9649 .././config.py:9747 msgid "Faster" msgstr "빠르게" -#: .././config.py:9495 +#: .././config.py:9650 msgid "Fast" msgstr "빠름" -#: .././config.py:9496 +#: .././config.py:9651 msgid "Medium (default)" msgstr "중간 (기본값)" -#: .././config.py:9497 +#: .././config.py:9652 #, python-format msgid "Slow (file about 5-10% smaller than medium)" msgstr "느리게 (파일 크기가 중간보다 5-10% 더 작음)" -#: .././config.py:9498 +#: .././config.py:9653 #, python-format msgid "Slower (file about 15% smaller than medium)" msgstr "더 느리게 (파일 크기가 중간보다 15% 더 작음)" -#: .././config.py:9499 +#: .././config.py:9654 #, python-format msgid "Very slow (file about 17% smaller than medium)" msgstr "엄청 느리게 (파일 크기가 중간보다 17% 더 작음)" -#: .././config.py:9510 +#: .././config.py:9665 msgid "GPU encoding" msgstr "" -#: .././config.py:9526 +#: .././config.py:9681 msgid "Hardware acceleration" msgstr "" -#: .././config.py:9586 +#: .././config.py:9741 msgid "Palette:" msgstr "팔레트:" -#: .././config.py:9593 +#: .././config.py:9748 msgid "Uses dithering to a standard palette provided by FFmpeg" msgstr "FFmpeg에서 제공하는 표준 팔레트로 디더링 사용" -#: .././config.py:9594 +#: .././config.py:9749 msgid "Can cause dithering artefacts and slight banding" msgstr "디더링 아티팩트와 약간의 밴딩이 생길 수 있습니다" -#: .././config.py:9603 +#: .././config.py:9758 msgid "Better" msgstr "최적화" -#: .././config.py:9604 +#: .././config.py:9759 msgid "Determines an optimized palette for the video" msgstr "비디오에 최적화된 팔레트를 결정합니다" -#: .././config.py:9605 +#: .././config.py:9760 msgid "Uses two passes and a temporary file for the palette" msgstr "팔레트를 위해 투 패스와 임시 파일을 사용합니다" -#: .././config.py:9660 .././config.py:10308 +#: .././config.py:9815 .././config.py:10451 msgid "Split videos using their own timestamps" msgstr "" -#: .././config.py:9669 .././config.py:10319 +#: .././config.py:9824 .././config.py:10462 msgid "Split videos using these timestamps" msgstr "" -#: .././config.py:9703 .././config.py:9892 .././config.py:10355 -#: .././config.py:10566 .././config.py:12985 .././config.py:13163 +#: .././config.py:9858 .././config.py:10043 .././config.py:10498 +#: .././config.py:10705 .././config.py:13130 .././config.py:13303 msgid "Start" msgstr "" -#: .././config.py:9703 .././config.py:10355 .././config.py:12985 +#: .././config.py:9858 .././config.py:10498 .././config.py:13130 msgid "Clip title" msgstr "" -#: .././config.py:9778 .././config.py:10430 .././config.py:13049 +#: .././config.py:9929 .././config.py:10569 .././config.py:13190 msgid "Add timestamp" msgstr "" -#: .././config.py:9787 .././config.py:10439 .././config.py:13060 +#: .././config.py:9938 .././config.py:10578 .././config.py:13201 msgid "Delete timestamp" msgstr "" -#: .././config.py:9797 .././config.py:10449 .././config.py:13069 +#: .././config.py:9948 .././config.py:10588 .././config.py:13210 msgid "Clip preferences" msgstr "" -#: .././config.py:9849 .././config.py:10519 +#: .././config.py:10000 .././config.py:10658 msgid "Use the videos' own slice data" msgstr "" -#: .././config.py:9858 .././config.py:10530 +#: .././config.py:10009 .././config.py:10669 msgid "Use this slice data" msgstr "" -#: .././config.py:9892 .././config.py:9919 .././config.py:10566 -#: .././config.py:10593 .././config.py:13163 .././config.py:13182 +#: .././config.py:10043 .././config.py:10066 .././config.py:10705 +#: .././config.py:10728 .././config.py:13303 .././config.py:13322 msgid "Category" msgstr "" -#: .././config.py:9892 .././config.py:9939 .././config.py:10566 -#: .././config.py:10613 .././config.py:13163 .././config.py:13194 +#: .././config.py:10043 .././config.py:10086 .././config.py:10705 +#: .././config.py:10748 .././config.py:13303 .././config.py:13334 msgid "Action Type" msgstr "" -#: .././config.py:9986 .././config.py:10660 .././config.py:13237 +#: .././config.py:10130 .././config.py:10792 .././config.py:13373 msgid "Add slice" msgstr "" -#: .././config.py:9996 +#: .././config.py:10140 msgid "Delete sliuce" msgstr "" -#: .././config.py:10007 .././config.py:10682 .././config.py:13258 +#: .././config.py:10151 .././config.py:10814 .././config.py:13394 msgid "SponsorBlock settings" msgstr "" -#: .././config.py:10110 +#: .././config.py:10254 msgid "" "This merges a video and audio file with the same name into a single video " "file,\n" @@ -5535,97 +5550,97 @@ msgstr "" "파일 탭에서 지정된 확장자를 사용해\n" "동일한 이름의 비디오 및 오디오 파일을 단일 비디오 파일로 병합합니다" -#: .././config.py:10151 +#: .././config.py:10295 msgid "The thumbnail's format can be changed in the File tab" msgstr "파일 탭에서 섬네일 포맷을 변경할 수 있습니다" -#: .././config.py:10166 +#: .././config.py:10310 msgid "_Optimisations" msgstr "_최적화" -#: .././config.py:10172 +#: .././config.py:10315 msgid "" "Optimise for fast seeking (shorter keyframe interval, about 10% larger file)" msgstr "빠른 탐색을 위한 최적화 (키프레임 간격 단축, 파일 크기가 10% 더 커짐)" -#: .././config.py:10180 +#: .././config.py:10323 msgid "Input video is a high-quality movie" msgstr "입력 비디오가 고화질 영화임" -#: .././config.py:10186 +#: .././config.py:10329 msgid "Input video is an animated movie" msgstr "입력 비디오가 애니매이션 영화임" -#: .././config.py:10192 +#: .././config.py:10335 msgid "Input video contains film grain" msgstr "입력 비디오가 필름 그레인을 포함함" -#: .././config.py:10198 +#: .././config.py:10341 msgid "Input video is an image slideshow" msgstr "입력 비디오가 이미지 슬라이드쇼임" -#: .././config.py:10204 +#: .././config.py:10347 msgid "Optimise for really weak CPU playback devices" msgstr "낮은 CPU 성능을 가진 디바이스를 위한 최적화" -#: .././config.py:10211 +#: .././config.py:10354 msgid "Optimise for really old devices (requires rate factor above 0)" msgstr "정말 구형 디바이스를 위한 최적화 (0 이상의 속도 계수 필요)" -#: .././config.py:10222 +#: .././config.py:10365 msgid "" "Move headers to beginning of file (so it can play while still downloading)" msgstr "파일 시작 부분으로 헤더 이동 (다운로드 중 재생이 가능해짐)" -#: .././config.py:10230 +#: .././config.py:10373 msgid "Fast encoding and low latency streaming" msgstr "빠른 인코딩 및 짧은 레이턴시 스트리밍" -#: .././config.py:10236 +#: .././config.py:10379 msgid "Limit bitrate (Mbit/s)" msgstr "비트레이트 제한 (Mbit/s)" -#: .././config.py:10253 +#: .././config.py:10396 msgid "Assuming a receiving buffer (seconds)" msgstr "수신 버퍼 가정 (초)" -#: .././config.py:10286 .././config.py:19714 +#: .././config.py:10429 .././config.py:20701 msgid "_Clips" msgstr "" -#: .././config.py:10298 +#: .././config.py:10441 msgid "Split the video(s) to create video clips" msgstr "" -#: .././config.py:10502 .././config.py:13130 .././config.py:19913 +#: .././config.py:10641 .././config.py:13271 .././config.py:20904 msgid "_Slices" msgstr "" -#: .././config.py:10509 +#: .././config.py:10648 msgid "Remove slices from the video(s)" msgstr "" -#: .././config.py:10670 .././config.py:13249 +#: .././config.py:10802 .././config.py:13385 msgid "Delete slice" msgstr "" -#: .././config.py:10777 +#: .././config.py:10924 msgid "List of videos to be processed" msgstr "처리될 비디오 목록" -#: .././config.py:10796 .././downloads.py:6532 .././media.py:88 +#: .././config.py:10943 .././downloads.py:6564 .././media.py:88 msgid "Video" msgstr "비디오" -#: .././config.py:10839 +#: .././config.py:10986 msgid "Show video properties and timestamps" msgstr "" -#: .././config.py:10848 +#: .././config.py:10995 msgid "Remove video from list" msgstr "리스트에서 비디오 제거" -#: .././config.py:11771 +#: .././config.py:11920 msgid "" "Fewer FFmpeg options will be visible when you click the 'Apply' or 'Reset' " "buttons (or when you close and then re-open the window)" @@ -5633,11 +5648,11 @@ msgstr "" "'적용' 또는 '재설정' 버튼을 클리하면 (혹은 창을 닫았다 다시 열면) 더 적은 " "FFmpeg 설정이 표시됩니다." -#: .././config.py:11781 +#: .././config.py:11930 msgid "Show more FFmpeg options (when window re-opens)" msgstr "고급 FFmpeg 설정 표시하기 (윈도우를 다시 열면)" -#: .././config.py:11798 +#: .././config.py:11947 msgid "" "More FFmpeg options will be visible when you click the 'Apply' or 'Reset' " "buttons (or when you close and then re-open the window)" @@ -5645,175 +5660,231 @@ msgstr "" "'적용' 또는 '재설정' 버튼을 클리하면 (혹은 창을 닫았다 다시 열면) 더 많은 " "FFmpeg 설정이 표시됩니다." -#: .././config.py:11808 +#: .././config.py:11957 msgid "Show fewer FFmpeg options (when window re-opens)" msgstr "고급 FFmpeg 설정 숨기기 (윈도우를 다시 열면)" #. Add this tab... -#: .././config.py:12548 .././config.py:14018 .././config.py:14462 -#: .././config.py:15083 .././config.py:16105 +#: .././config.py:12703 .././config.py:14680 .././config.py:15119 +#: .././config.py:15733 .././config.py:16752 msgid "_General" msgstr "_일반" -#: .././config.py:12551 .././config.py:14021 .././config.py:14465 -#: .././config.py:15088 +#: .././config.py:12706 .././config.py:14683 .././config.py:15122 +#: .././config.py:15737 msgid "General properties" msgstr "일반 환경설정" -#: .././config.py:12605 +#: .././config.py:12756 msgid "Set the file (if this is the wrong one)" msgstr "파일 설정하기 (잘못된 경우에)" -#: .././config.py:12620 +#: .././config.py:12767 msgid "Video downloaded" msgstr "" -#: .././config.py:12627 +#: .././config.py:12774 msgid "Video unwatched" msgstr "" -#: .././config.py:12634 +#: .././config.py:12781 msgid "Video has been split from an original" msgstr "" -#: .././config.py:12641 +#: .././config.py:12788 msgid "Video is archived" msgstr "비디오가 아카이브됨" -#: .././config.py:12648 +#: .././config.py:12795 msgid "Video is bookmarked" msgstr "비디오가 북마크됨" -#: .././config.py:12655 +#: .././config.py:12802 msgid "Video is favourite" msgstr "비디오가 즐겨찾기임" -#: .././config.py:12662 +#: .././config.py:12809 msgid "Video is in waiting list" msgstr "비디오가 대기 리스트에 있음" -#: .././config.py:12669 +#: .././config.py:12816 msgid "Always simulate download of this video" msgstr "언제나 비디오 다운로드 시뮬레이트됨" -#: .././config.py:12734 +#: .././config.py:12881 msgid "Receive time" msgstr "받은 시간" -#: .././config.py:12768 +#: .././config.py:12915 msgid "_Live" msgstr "" -#: .././config.py:12774 +#: .././config.py:12920 msgid "Livestream properties" msgstr "생방송 속성" -#: .././config.py:12779 +#: .././config.py:12925 msgid "Livestream status" msgstr "생방송 상태" -#: .././config.py:12790 +#: .././config.py:12936 msgid "Waiting to start" msgstr "시작 대기중" -#: .././config.py:12792 +#: .././config.py:12938 msgid "Stream has started" msgstr "방송이 시작됨" -#: .././config.py:12794 +#: .././config.py:12940 msgid "Not a livestream" msgstr "생방송이 아님" -#: .././config.py:12797 +#: .././config.py:12943 msgid "Livestream message" msgstr "생방송 메시지" -#: .././config.py:12812 +#: .././config.py:12958 msgid "Video is pre-recorded" msgstr "비디오가 미리 녹화됨" -#: .././config.py:12823 +#: .././config.py:12969 msgid "Livestream actions" msgstr "생방송 액션" -#: .././config.py:12830 +#: .././config.py:12976 msgid "When the livestream starts, show a desktop notification" msgstr "생방송이 시작되면, 데스크탑 알림으로 알림" -#: .././config.py:12839 +#: .././config.py:12985 msgid "When the livestream starts, play an alarm" msgstr "생방송이 시작되면, 알람 울림" -#: .././config.py:12849 +#: .././config.py:12995 msgid "When the livestream starts, open it in the system's web browser" msgstr "생방송이 시작되면, 시스템의 웹브라우저로 실행" -#: .././config.py:12861 +#: .././config.py:13007 msgid "When the livestream starts, begin downloading it immediately" msgstr "생방송이 시작되면, 즉시 다운로드" -#: .././config.py:12872 .././config.py:20268 +#: .././config.py:13018 .././config.py:21149 msgid "When a livestream stops, download it (overwriting any earlier file)" msgstr "생방송이 종료되면, 다운로드 시작 (이전의 파일을 덮어씀)" -#: .././config.py:12888 +#: .././config.py:13034 msgid "_Description" msgstr "_설명" -#: .././config.py:12893 +#: .././config.py:13039 msgid "Video description" msgstr "비디오 설명" -#: .././config.py:12906 +#: .././config.py:13052 msgid "Update from the description file, and set the line length to:" msgstr "" -#: .././config.py:12926 -msgid "Clear the description (does not modify the description file)" +#: .././config.py:13072 +msgid "Clear the description (does not modify the file)" msgstr "" -#: .././config.py:12953 +#: .././config.py:13099 msgid "_Timestamps" msgstr "" -#: .././config.py:12959 +#: .././config.py:13104 msgid "Timestamps" msgstr "" -#: .././config.py:12965 +#: .././config.py:13110 msgid "Timestamps can be used to download or create video clips" msgstr "" -#: .././config.py:13085 +#: .././config.py:13226 msgid "Reset list using video description" msgstr "" -#: .././config.py:13136 +#: .././config.py:13276 msgid "Video Slices" msgstr "" -#: .././config.py:13142 +#: .././config.py:13282 msgid "SponsorBlock provides a list of slices that can be removed from a video" msgstr "" -#: .././config.py:13322 .././config.py:14241 +#: .././config.py:13456 .././config.py:20995 +msgid "_Comments" +msgstr "" + +#: .././config.py:13461 +msgid "Comments" +msgstr "" + +#: .././config.py:13466 +msgid "Video comments can only be downloaded by yt-dlp" +msgstr "" + +#: .././config.py:13473 +msgid "Comments:" +msgstr "" + +#: .././config.py:13514 +msgid "Show comment timestamps" +msgstr "" + +#: .././config.py:13524 +msgid "Show comment times as text" +msgstr "" + +#: .././config.py:13549 +msgid "Show unformatted list" +msgstr "" + +#: .././config.py:13559 +msgid "Show formatted list" +msgstr "" + +#: .././config.py:13580 +msgid "Update from the metadata file" +msgstr "" + +#: .././config.py:13596 +msgid "Clear comments (does not modify the file)" +msgstr "" + +#: .././config.py:13622 +msgid "Author" +msgstr "" + +#: .././config.py:13622 +msgid "Comment" +msgstr "" + +#: .././config.py:13622 +msgid "Likes" +msgstr "" + +#: .././config.py:13623 +msgid "Uploader" +msgstr "" + +#: .././config.py:13908 .././config.py:14898 msgid "Errors / Warnings" msgstr "오류 / 경고" -#: .././config.py:13328 +#: .././config.py:13914 msgid "Error messages produced the last time this video was checked/downloaded" msgstr "이 비디오를 마지막으로 확인/다운로드 했을 때 생성된 오류 메시지" -#: .././config.py:13344 +#: .././config.py:13930 msgid "" "Warning messages produced the last time this video was checked/downloaded" msgstr "이 비디오를 마지막으로 확인/다운로드 했을 때 생성된 경고 메시지" -#: .././config.py:13754 +#: .././config.py:14357 msgid "Select the correct video/audio file" msgstr "올바른 비디오/오디오 파일 선택" -#: .././config.py:13780 +#: .././config.py:14383 msgid "" "The replacement video/audio file must be in the same channel, playlist or " "folder" @@ -5821,362 +5892,362 @@ msgstr "" "교체할 비디오/오디오 파일은 반드시 같은 채널, 플레이리스트, 폴더 안에 있어야 " "합니다" -#: .././config.py:13798 +#: .././config.py:14401 msgid "You must select a valid video/audio file" msgstr "반드시 적합한 비디오/오디오 파일을 선택해야 합니다" -#: .././config.py:13895 +#: .././config.py:14557 msgid "Channel properties" msgstr "채널 속성" -#: .././config.py:13898 +#: .././config.py:14560 msgid "Playlist properties" msgstr "플레이리스트 속성" -#: .././config.py:14040 +#: .././config.py:14698 msgid "Don't add videos in this channel to Tartube's database" msgstr "" -#: .././config.py:14044 +#: .././config.py:14702 msgid "Don't add videos in this playlist to Tartube's database" msgstr "" -#: .././config.py:14055 +#: .././config.py:14713 msgid "Always simulate download of videos in this channel" msgstr "언제나 이 채널 안의 비디오들을 다운로드 시뮬레이트됨" -#: .././config.py:14057 +#: .././config.py:14715 msgid "Always simulate download of videos in this playlist" msgstr "언제나 이 플레이리스트 안의 비디오들을 다운로드 시뮬레이트됨" -#: .././config.py:14067 +#: .././config.py:14725 msgid "Disable checking/downloading for this channel" msgstr "이 채널에 대해서 확인/다운로드 사용 안 함" -#: .././config.py:14069 +#: .././config.py:14727 msgid "Disable checking/downloading for this playlist" msgstr "이 플레이리스트에 대해서 확인/다운로드 사용 안 함" -#: .././config.py:14079 +#: .././config.py:14737 msgid "This channel is marked as a favourite" msgstr "이 채널은 즐겨찾기로 표기됨" -#: .././config.py:14081 +#: .././config.py:14739 msgid "This playlist is marked as a favourite" msgstr "이 플레이리스트는 즐겨찾기로 표기됨" -#: .././config.py:14091 +#: .././config.py:14749 msgid "Total videos" msgstr "총 비디오들" -#: .././config.py:14115 +#: .././config.py:14773 msgid "Favourite videos" msgstr "즐겨찾기 된 비디오들" -#: .././config.py:14127 +#: .././config.py:14785 msgid "Downloaded videos" msgstr "다운로드 된 비디오들" -#: .././config.py:14149 .././config.py:14712 .././config.py:17649 +#: .././config.py:14807 .././config.py:15364 .././config.py:18386 msgid "_History" msgstr "_히스토리" -#: .././config.py:14154 .././config.py:14717 .././config.py:17656 +#: .././config.py:14811 .././config.py:15368 .././config.py:18392 msgid "Download history" msgstr "히스토리 다운로드" -#: .././config.py:14168 .././config.py:14731 .././config.py:17670 +#: .././config.py:14825 .././config.py:15382 .././config.py:18406 msgid "Draw" msgstr "드로우" -#: .././config.py:14196 +#: .././config.py:14853 msgid "_RSS feed" msgstr "_RSS 피드" -#: .././config.py:14199 +#: .././config.py:14856 msgid "RSS feed" msgstr "RSS 피드" -#: .././config.py:14205 +#: .././config.py:14862 msgid "" "If Tartube cannot detect the channel's RSS feed, you can enter the URL here" msgstr "Tartube가 채널의 RSS 피드를 인식하지 못한다면, URL을 여기에 입력하세요" -#: .././config.py:14210 +#: .././config.py:14867 msgid "" "If Tartube cannot detect the playlist's RSS feed, you can enter the URL here" msgstr "" "Tartube가 플레이리스트의 RSS 피드를 인식하지 못한다면, URL을 여기에 입력하세" "요" -#: .././config.py:14215 +#: .././config.py:14872 msgid "(The feed is used to detect livestreams on compatible websites)" msgstr "(피드는 호환되는 웹 사이트 안에서 생방송을 감지할 때 사용됩니다)" -#: .././config.py:14247 +#: .././config.py:14904 msgid "" "Error messages produced the last time this channel was checked/downloaded" msgstr "이 채널을 마지막으로 확인/다운로드 했을 때 생성된 오류 메시지" -#: .././config.py:14252 +#: .././config.py:14909 msgid "" "Error messages produced the last time this playlist was checked/downloaded" msgstr "이 플레이리스트를 마지막으로 확인/다운로드 했을 때 생성된 오류 메시지" -#: .././config.py:14271 +#: .././config.py:14928 msgid "" "Warning messages produced the last time this channel was checked/downloaded" msgstr "이 채널을 마지막으로 확인/다운로드 했을 때 생성된 경고 메시지" -#: .././config.py:14276 +#: .././config.py:14933 msgid "" "Warning messages produced the last time this playlist was checked/downloaded" msgstr "이 플레이리스트를 마지막으로 확인/다운로드 했을 때 생성된 경고 메시지" -#: .././config.py:14343 +#: .././config.py:15000 msgid "Folder properties" msgstr "폴더 속성" -#: .././config.py:14482 +#: .././config.py:15135 msgid "Don't add videos to Tartube's database" msgstr "" -#: .././config.py:14489 +#: .././config.py:15142 msgid "Always simulate download of videos" msgstr "언제나 비디오 다운로드 시뮬레이트됨" -#: .././config.py:14496 +#: .././config.py:15149 msgid "Disable checking/downloading" msgstr "" -#: .././config.py:14503 +#: .././config.py:15156 msgid "This folder is marked as a favourite" msgstr "이 폴더는 즐겨찾기로 마크되어 있음" -#: .././config.py:14510 +#: .././config.py:15163 msgid "This folder is hidden" msgstr "이 폴더는 숨겨짐" -#: .././config.py:14517 +#: .././config.py:15170 msgid "This folder can't be deleted by the user" msgstr "이 폴더는 유저에 의해 삭제할 수 없음" -#: .././config.py:14524 +#: .././config.py:15177 msgid "This is a system-controlled folder" msgstr "이 폴더는 시스템 제어 폴더임" -#: .././config.py:14531 +#: .././config.py:15184 msgid "All contents deleted when Tartube shuts down" msgstr "Tartube가 종료되면 모든 컨텐츠가 삭제됨" -#: .././config.py:14538 +#: .././config.py:15191 msgid "Restrictions:" msgstr "" -#: .././config.py:14549 +#: .././config.py:15202 msgid "Can only contain videos" msgstr "" -#: .././config.py:14551 +#: .././config.py:15204 msgid "Can contain folders and videos" msgstr "" -#: .././config.py:14553 +#: .././config.py:15206 msgid "Can contain anything" msgstr "" -#: .././config.py:14563 .././config.py:17478 +#: .././config.py:15216 .././config.py:18211 msgid "_Statistics" msgstr "_통계" -#: .././config.py:14568 .././config.py:17485 +#: .././config.py:15220 .././config.py:18217 msgid "Statistics" msgstr "통계" -#: .././config.py:14589 .././config.py:17506 +#: .././config.py:15241 .././config.py:18238 msgid "Downloaded" msgstr "다운로드" -#: .././config.py:14633 +#: .././config.py:15285 msgid "Sub-folders" msgstr "서브 폴더" -#: .././config.py:14655 +#: .././config.py:15307 msgid "Recalculate" msgstr "다시 계산" -#: .././config.py:14759 +#: .././config.py:15410 msgid "_Recent Videos" msgstr "" -#: .././config.py:14764 .././formats.py:923 +#: .././config.py:15414 .././formats.py:932 msgid "Recent Videos" msgstr "최근 비디오" -#: .././config.py:14770 +#: .././config.py:15420 msgid "" "When videos are checked/downloaded, older videos are removed from this folder" msgstr "" -#: .././config.py:14941 +#: .././config.py:15591 msgid "Scheduled download" msgstr "예약 다운로드" -#: .././config.py:15093 .././config.py:18731 +#: .././config.py:15742 .././config.py:19510 msgid "Scheduled download name" msgstr "예약 다운로드 이름" -#: .././config.py:15105 +#: .././config.py:15754 msgid "Download mode" msgstr "다운로드 모드" -#: .././config.py:15110 +#: .././config.py:15759 msgid "Check channels, playlist and folders" msgstr "채널, 플레이리스트, 폴더 선택" -#: .././config.py:15111 +#: .././config.py:15760 msgid "Download channels, playlists and folders" msgstr "채널, 플레이리스트, 폴더 다운로드" -#: .././config.py:15112 +#: .././config.py:15761 msgid "Perform a custom download" msgstr "커스텀 다운로드 수행" -#: .././config.py:15124 +#: .././config.py:15773 msgid "Custom download name" msgstr "" -#: .././config.py:15163 .././config.py:18697 +#: .././config.py:15812 .././config.py:19476 msgid "Start mode" msgstr "시작 모드" -#: .././config.py:15168 +#: .././config.py:15817 msgid "Perform this download at regular intervals" msgstr "정기적으로 이 다운로드 수행" -#: .././config.py:15169 +#: .././config.py:15818 msgid "Perform this download when Tartube starts" msgstr "Tartube가 시작되면 이 다운로드 수행" -#: .././config.py:15170 +#: .././config.py:15819 msgid "Disable this scheduled download" msgstr "이 예약 다운로드 비활성화" -#: .././config.py:15182 +#: .././config.py:15831 msgid "Time between scheduled downloads" msgstr "예약 다운로드 시간" -#: .././config.py:15235 +#: .././config.py:15884 msgid "If another scheduled download is running:" msgstr "만약 다른 예약 다운로드가 수행중이면:" -#: .././config.py:15242 +#: .././config.py:15891 msgid "Add channels, playlists and folders to the end of the queue" msgstr "대기열 끝에 채널, 플레이리스트, 폴더 추가" -#: .././config.py:15248 +#: .././config.py:15897 msgid "Add channels, playlists and folders to the beginning of the queue" msgstr "대기열 맨 앞에 채널, 플레이리스트, 폴더 추가" -#: .././config.py:15255 +#: .././config.py:15904 msgid "Do nothing, just wait until the next scheduled download time" msgstr "아무것도 하지 않고 다음 예약 다운로드 시간까지 기다리기" -#: .././config.py:15270 +#: .././config.py:15919 msgid "This scheduled download takes priority over others" msgstr "이 예약된 다운로드가 다른것보다 우선시됩니다" -#: .././config.py:15273 +#: .././config.py:15922 msgid "Other scheduled downloads won't start until this one is finished" msgstr "" "다른 예약 다운로드는 이 예약 다운로드가 종료되기 전까지 시작하지 않습니다" -#: .././config.py:15282 +#: .././config.py:15931 msgid "" "Ignore time-saving preferences, and check/download the whole channel/" "playlist/folder" msgstr "" "시간 절약 환경 설정을 무시하고, 전체 채널/플레이리스트/폴더 확인/다운로드" -#: .././config.py:15290 +#: .././config.py:15939 msgid "Shut down Tartube when this scheduled download has finished" msgstr "예약 작업이 종료되면 Tartube 종료" -#: .././config.py:15308 +#: .././config.py:15956 msgid "Media to download" msgstr "다운로드 할 미디어" -#: .././config.py:15314 +#: .././config.py:15962 msgid "Check/download everything" msgstr "모든걸 확인/다운로드" -#: .././config.py:15322 +#: .././config.py:15970 msgid "Only check/download the media below" msgstr "하단의 미디어만 확인/다운로드" -#: .././config.py:15336 +#: .././config.py:15984 msgid "" "Hint: you can drag and drop channels, playlists and your own folders here" msgstr "힌트: 여기에 채널, 플레이리스트, 폴더를 드래그 앤 드랍할 수 있습니다" -#: .././config.py:15442 .././config.py:19018 +#: .././config.py:16090 .././config.py:19807 msgid "_Limits" msgstr "" -#: .././config.py:15447 .././config.py:19026 +#: .././config.py:16094 .././config.py:19814 msgid "Performance limits" msgstr "퍼포먼스 제한" -#: .././config.py:15452 .././config.py:19031 +#: .././config.py:16099 .././config.py:19819 msgid "Limits are applied when you start downloading a video/channel/playlist" msgstr "" -#: .././config.py:15458 +#: .././config.py:16105 msgid "" "These limits override the default and alternative limits specified elsewhere" msgstr "" -#: .././config.py:15464 .././config.py:19037 .././config.py:19108 +#: .././config.py:16111 .././config.py:19825 .././config.py:19896 msgid "Limit simultaneous downloads to" msgstr "동시 다운로드 개수 제한" -#: .././config.py:15479 .././config.py:19055 .././config.py:19130 +#: .././config.py:16126 .././config.py:19843 .././config.py:19918 msgid "Limit download speed to" msgstr "다운로드 속도 제한" -#: .././config.py:15814 +#: .././config.py:16461 msgid "System preferences" msgstr "시스템 환경 설정" -#: .././config.py:16124 +#: .././config.py:16776 msgid "_Language" msgstr "_언어" -#: .././config.py:16129 +#: .././config.py:16781 msgid "Language preferences" msgstr "언어 환경 설정" -#: .././config.py:16134 +#: .././config.py:16786 msgid "Language" msgstr "언어" -#: .././config.py:16170 +#: .././config.py:16827 msgid "_Stability" msgstr "_안정성" -#: .././config.py:16180 +#: .././config.py:16837 msgid "Gtk library" msgstr "Gtk 라이브러리" -#: .././config.py:16185 +#: .././config.py:16842 msgid "Current version of the system's Gtk library" msgstr "시스템의 현재 Gtk 라이브러리 버전" -#: .././config.py:16200 +#: .././config.py:16857 msgid "Gtk stability" msgstr "Gtk 안정성" -#: .././config.py:16216 +#: .././config.py:16873 msgid "" "Tartube uses the Gtk graphics library. This library is notoriously " "unreliable and may even causes crashes." @@ -6184,7 +6255,7 @@ msgstr "" "Tartube는 Gtk 그래픽 라이브러리를 사용합니다. Gtk 라이브러리는 믿을수 없을 정" "도로 악명깊고 심지어 충돌이 일어날 수도 있습니다." -#: .././config.py:16223 +#: .././config.py:16880 msgid "" "By default, some cosmetic features are disabled (for example, in the Videos " "tab, the list of videos is not updated until the end of a download " @@ -6193,7 +6264,7 @@ msgstr "" "기본적으로, 일부 그래픽 기능은 비활성화 되어있습니다 (예를 들어, 비디오 탭의 " "비디오 목록은 다운로드 작업이 끝날 때 까지 업데이트 되지 않습니다)." -#: .././config.py:16231 +#: .././config.py:16888 msgid "" "If you think that your system Gtk has been fixed (or if you want to test Gtk " "stability), you can re-enable the cosmetic features." @@ -6201,204 +6272,204 @@ msgstr "" "만약 시스템의 Gtk 라이브러리가 수정되었다고 생각하는 경우 (혹은 Gtk 안정성을 " "테스트하고 싶은 경우) 그래픽 기능을 다시 활성화 할 수 있습니다." -#: .././config.py:16241 +#: .././config.py:16898 msgid "Disable some cosmetic features to prevent crashes and other issues" msgstr "몇몇 그래픽 기능을 비활성화 해서 충돌 및 기타 문제 방지하기" -#: .././config.py:16259 +#: .././config.py:16921 msgid "_Modules" msgstr "_모듈" -#: .././config.py:16264 +#: .././config.py:16926 msgid "Module availability" msgstr "모듈 가용성" -#: .././config.py:16270 +#: .././config.py:16932 msgid "feedparser module is available (required for detecting livestreams)" msgstr "feedparser 모듈을 사용할 수 있습니다 (생방송 감지 시 필요)" -#: .././config.py:16279 +#: .././config.py:16941 msgid "matplotlib module is available (draws graphs)" msgstr "matplotlib 모듈을 사용할 수 있습니다 (그래프를 그릴 때 사용)" -#: .././config.py:16287 +#: .././config.py:16949 msgid "moviepy module is available (finds the length of videos, if unknown)" msgstr "" "moviepy 모듈을 사용할 수 있습니다 (비디오의 길이를 모를 경우 이를 찾는데 사" "용)" -#: .././config.py:16297 +#: .././config.py:16959 msgid "playsound module is available (sound an alarm when a livestream starts)" msgstr "playsound 모듈을 사용할 수 있습니다 (생방송이 시작될 경우 알람을 재생)" -#: .././config.py:16307 +#: .././config.py:16969 msgid "" "XDG module is available (saves the config file in the standard location)" msgstr "XDG 모듈을 사용할 수 있습니다 (구성 파일을 표준 위치에 저장해줌)" -#: .././config.py:16317 +#: .././config.py:16979 msgid "" "Notify module is available (shows desktop notifications; Linux/*BSD only)" msgstr "" "Notify 모듈을 사용할 수 있습니다 (데스크탑 알림을 보여줌; Linux/*BSD만 사용가" "능)" -#: .././config.py:16327 +#: .././config.py:16989 msgid "Module preferences" msgstr "모듈 환경 설정" -#: .././config.py:16333 +#: .././config.py:16995 msgid "" "Use 'moviepy' module to get a video's duration, if not known (may be slow)" msgstr "" "알려지지 않은 비디오 길이를 'moviepy' 모듈을 사용해 측정합니다 (느릴 수 있음)" -#: .././config.py:16345 +#: .././config.py:17007 msgid "Timeout applied when moviepy checks a video file" msgstr "비디오 파일을 moviepy로 체크할 때 타임아웃 적용" -#: .././config.py:16370 +#: .././config.py:17037 msgid "_Debugging" msgstr "_디버깅" -#: .././config.py:16378 +#: .././config.py:17044 msgid "Debugging preferences" msgstr "디버깅 환경 설정" -#: .././config.py:16384 +#: .././config.py:17050 msgid "" "Debug messages are only visible in the terminal window (these settings are " "not saved)" msgstr "" "디버그 메시지는 터미널 윈도우에서만 보입니다 (이 설정들은 저장되지 않습니다)" -#: .././config.py:16391 +#: .././config.py:17057 msgid "Enable application debug messages (code in mainapp.py)" msgstr "애플리케이션 디버그 메시지 활성화 (code in mainapp.py)" -#: .././config.py:16400 .././config.py:16420 +#: .././config.py:17066 .././config.py:17086 msgid "...but don't show timer debug messages" msgstr "...하지만 디버그 메시지 타이머는 표시하지 않기" -#: .././config.py:16411 +#: .././config.py:17077 msgid "Enable main winddow debug messages (code in mainwin.py)" msgstr "메인 디버그 메시지 활성화 (code in mainapp.py)" -#: .././config.py:16431 +#: .././config.py:17097 msgid "Enabled downloader debug messages (code in downloads.py)" msgstr "다운로더 디버그 메시지 활성화 (code in mainapp.py)" -#: .././config.py:16474 +#: .././config.py:17140 msgid "" "Debugging messages are also visible if an empty file called debug.txt exists " "here:" msgstr "디버깅 메시지는 이 위치의 debug.txt 파일이 비어있는 경우에도 보입니다:" -#: .././config.py:16522 +#: .././config.py:17193 msgid "_Device" msgstr "_디바이스" -#: .././config.py:16527 +#: .././config.py:17198 msgid "Device preferences" msgstr "디바이스 환경 설정" -#: .././config.py:16532 +#: .././config.py:17203 msgid "Size of device (in Mb)" msgstr "디바이스 파일 크기 (Mb)" -#: .././config.py:16544 +#: .././config.py:17215 msgid "Free space on device (in Mb)" msgstr "디바이스 남은 공간 (Mb)" -#: .././config.py:16556 +#: .././config.py:17227 msgid "Warn user if disk space is less than" msgstr "디스크 공간이 적으면 경고해주기" -#: .././config.py:16574 +#: .././config.py:17245 msgid "Halt downloads if disk space is less than" msgstr "디스크 공간이 적으면 중지하기" -#: .././config.py:16619 +#: .././config.py:17295 msgid "_Config" msgstr "" -#: .././config.py:16623 +#: .././config.py:17299 msgid "Configuration preferences" msgstr "구성 환경 설정" -#: .././config.py:16628 +#: .././config.py:17304 msgid "Tartube configuration file loaded from" msgstr "" -#: .././config.py:16640 +#: .././config.py:17316 msgid "Default location for Tartube configuration" msgstr "" -#: .././config.py:16652 +#: .././config.py:17328 msgid "Alternative location for Tartube configuration" msgstr "" -#: .././config.py:16671 +#: .././config.py:17352 msgid "D_atabase" msgstr "_데이터베이스" -#: .././config.py:16677 +#: .././config.py:17357 msgid "Database preferences" msgstr "데이터베이스 환경 설정" -#: .././config.py:16682 +#: .././config.py:17362 msgid "Tartube data folder" msgstr "Tartube 데이터 폴더" -#: .././config.py:16694 +#: .././config.py:17374 msgid "Add new database" msgstr "새 데이터베이스 추가" -#: .././config.py:16696 +#: .././config.py:17376 msgid "Change to a different data folder" msgstr "다른 데이터 폴더로 변경" -#: .././config.py:16703 +#: .././config.py:17383 msgid "Check and repair database" msgstr "데이터베이스 확인 후 수리" -#: .././config.py:16706 +#: .././config.py:17386 msgid "Check for inconsistencies, and repair them" msgstr "불일치 확인 후 수리" -#: .././config.py:16711 +#: .././config.py:17391 msgid "Recent data folders" msgstr "최근 데이터 폴더" -#: .././config.py:16725 +#: .././config.py:17405 msgid "Switch to the selected data folder" msgstr "선택한 데이터 폴더로 변경" -#: .././config.py:16735 +#: .././config.py:17415 msgid "Forget" msgstr "잊어버리기" -#: .././config.py:16738 +#: .././config.py:17418 msgid "Remove the selected data folder from the list" msgstr "리스트에서 선택한 데이터 폴더 지우기" -#: .././config.py:16747 +#: .././config.py:17427 msgid "Forget all" msgstr "모두 잊어버리기" -#: .././config.py:16750 +#: .././config.py:17430 msgid "Forget every folder in this list (except the current one)" msgstr "이 목록의 모든 폴더 잊어버리기 (현재 폴더 제외)" -#: .././config.py:16763 +#: .././config.py:17443 msgid "Move the selected folder up the list" msgstr "선택한 폴더를 위로 이동" -#: .././config.py:16771 +#: .././config.py:17451 msgid "Move the selected folder down the list" msgstr "선택한 폴더를 아래로 이동" -#: .././config.py:16799 +#: .././config.py:17478 msgid "" "On startup, load the first database on the list (not the most recently-use " "one)" @@ -6406,23 +6477,23 @@ msgstr "" "시작시, 목록의 첫 번째 데이터베이스 로드 (가장 최근에 사용한 데이터베이스 아" "님)" -#: .././config.py:16809 +#: .././config.py:17488 msgid "If one database is in use, try to load others" msgstr "만약 한 데이터베이스가 사용중이면, 다른 것을 로드하기" -#: .././config.py:16817 +#: .././config.py:17496 msgid "Add new data directories to this list" msgstr "새 데이터 디렉토리를 리스트에 추가하기" -#: .././config.py:16856 +#: .././config.py:17540 msgid "_Backups" msgstr "_백업" -#: .././config.py:16862 +#: .././config.py:17545 msgid "Backup preferences" msgstr "백업 환경 설정" -#: .././config.py:16867 +#: .././config.py:17550 msgid "" "When saving a database file, Tartube makes a backup copy of it (in case " "something goes wrong)" @@ -6430,230 +6501,247 @@ msgstr "" "데이터베이스 파일을 저장할 때 Tartube에서 백업 사본을 만들어 두기 (만약을 위" "해서)" -#: .././config.py:16876 +#: .././config.py:17559 msgid "Delete the backup file as soon as the save procedure is finished" msgstr "저장 절차가 완료되는 즉시 백업 파일 삭제" -#: .././config.py:16886 +#: .././config.py:17569 msgid "Keep the backup file, replacing any previous backup file" msgstr "백업 파일을 유지하고 이전 백업 파일만 대체" -#: .././config.py:16897 +#: .././config.py:17580 msgid "" "Make a new backup file once per day, after the day's first save procedure" msgstr "매일매일 첫번째 저장 시에 새로운 백업 파일 생성" -#: .././config.py:16908 +#: .././config.py:17591 msgid "Make a new backup file for every save procedure" msgstr "매 저장 시에 새로운 백업 파일 생성" -#: .././config.py:16942 +#: .././config.py:17625 msgid "Export preferences" msgstr "" -#: .././config.py:16947 +#: .././config.py:17630 msgid "Separator used in CSV exports" msgstr "" -#: .././config.py:16985 +#: .././config.py:17672 msgid "Automatic video deletion preferences" msgstr "자동 비디오 삭제 환경 설정" -#: .././config.py:16990 +#: .././config.py:17677 msgid "Automatically delete downloaded videos after this many days" msgstr "이 기간이 지나면 다운로드한 비디오 자동 삭제" -#: .././config.py:17004 +#: .././config.py:17691 msgid "...but only delete videos which have been watched" msgstr "...하지만 시청한 비디오만 삭제" -#: .././config.py:17028 +#: .././config.py:17715 msgid "Video matching preferences" msgstr "비디오 매칭 환경 설정" -#: .././config.py:17033 +#: .././config.py:17720 msgid "When matching videos on the filesystem:" msgstr "파일 시스템에서 비디오를 매칭할 때:" -#: .././config.py:17039 +#: .././config.py:17726 msgid "The video names must match exactly" msgstr "비디오 이름이 완벽히 일치" -#: .././config.py:17046 +#: .././config.py:17733 msgid "The first # characters must match exactly" msgstr "첫번째 # 글자만 완벽히 일치" -#: .././config.py:17060 +#: .././config.py:17747 msgid "Ignore the last # characters; the remaining name must match exactly" msgstr "마지막 # 글자를 무시하고 나머지 글자만 완벽히 일치" -#: .././config.py:17114 +#: .././config.py:17805 msgid "Update video descriptions" msgstr "" -#: .././config.py:17121 +#: .././config.py:17812 msgid "These procedures might take a long time on a large database" msgstr "" -#: .././config.py:17128 +#: .././config.py:17819 msgid "Update from description files, and set the line lengths to:" msgstr "" -#: .././config.py:17147 +#: .././config.py:17838 msgid "Clear descriptions (does not modify the description files)" msgstr "" -#: .././config.py:17171 +#: .././config.py:17861 msgid "Video timestamps" msgstr "" -#: .././config.py:17175 +#: .././config.py:17865 msgid "Extract timestamps for all videos" msgstr "" -#: .././config.py:17183 +#: .././config.py:17873 msgid "Remove timestamps from all videos" msgstr "" -#: .././config.py:17200 +#: .././config.py:17883 +msgid "Video comments" +msgstr "" + +#: .././config.py:17887 +msgid "Extract comments for all videos" +msgstr "" + +#: .././config.py:17895 +msgid "Remove comments from all videos" +msgstr "" + +#: .././config.py:17905 +msgid "" +"Comments are extracted from each video's metadata file, so this procedure " +"may take a long time" +msgstr "" + +#: .././config.py:17925 msgid "_URLs" msgstr "" -#: .././config.py:17208 +#: .././config.py:17932 msgid "Update channel/playlist URLs" msgstr "" -#: .././config.py:17213 +#: .././config.py:17937 msgid "Confirm every change" msgstr "" -#: .././config.py:17292 +#: .././config.py:18016 msgid "Pattern" msgstr "" -#: .././config.py:17315 +#: .././config.py:18039 msgid "Substitution" msgstr "" -#: .././config.py:17331 +#: .././config.py:18054 msgid "Search and replace text in the selected URLs" msgstr "" -#: .././config.py:17430 +#: .././config.py:18158 msgid "Temporary folder preferences" msgstr "임시 폴더 환경 설정" -#: .././config.py:17435 +#: .././config.py:18163 msgid "Empty temporary folders when Tartube shuts down" msgstr "Tartube가 종료되면 임시 폴더 비우기" -#: .././config.py:17444 +#: .././config.py:18172 msgid "(N.B. Temporary folders are always emptied when Tartube starts up)" msgstr "(주의. Tartube가 시작되면 임시 폴더가 항상 비워집니다)" -#: .././config.py:17452 +#: .././config.py:18180 msgid "Open temporary folders (on the desktop) when Tartube shuts down" msgstr "Tartube가 종료되면 임시 폴더를 열기 (바탕화면에)" -#: .././config.py:17490 +#: .././config.py:18222 msgid "The Tartube database contains:" msgstr "Tartube 데이터베이스가 갖고 있는 정보:" -#: .././config.py:17550 +#: .././config.py:18282 msgid "Custom folders" msgstr "커스텀 폴더" -#: .././config.py:17573 +#: .././config.py:18305 msgid "Calculate" msgstr "계산" #. Add this tab... -#: .././config.py:17699 +#: .././config.py:18435 msgid "_Windows" msgstr "_윈도우" -#: .././config.py:17723 +#: .././config.py:18464 msgid "_Main window" msgstr "_메인 윈도우" -#: .././config.py:17731 +#: .././config.py:18471 msgid "Main window preferences" msgstr "메인 윈도우 환경설정" -#: .././config.py:17736 -msgid "Remember the size of the main window when shutting down" -msgstr "메인 윈도우를 종료 시 창 크기 기억" +#: .././config.py:18476 +msgid "Remember size of the main window" +msgstr "" -#. (Signal connect appears below) -#: .././config.py:17743 -msgid "Reset size" +#: .././config.py:18484 +msgid "Remember slider positions" msgstr "" -#: .././config.py:17752 -msgid "Also remember the position of main window sliders" -msgstr "메인 윈도우의 슬라이더 위치 또한 기억" +#: .././config.py:18493 +msgid "Reset both" +msgstr "" -#: .././config.py:17769 +#: .././config.py:18509 msgid "Don't show the main window toolbar" msgstr "메인 메뉴 툴바 보이지 않기" -#: .././config.py:17777 +#: .././config.py:18517 msgid "Don't show labels in the main window toolbar" msgstr "메인 메뉴 툴바 레이블 보이지 않기" -#: .././config.py:17795 +#: .././config.py:18535 msgid "" "Replace stock icons with custom icons (in case stock icons are not visible)" msgstr "" "스톡 아이콘을 커스텀 아이콘으로 교체 (스톡 아이콘이 표시되지 않는 경우)" -#: .././config.py:17805 +#: .././config.py:18545 msgid "Show tooltips for videos, channels, playlists and folders" msgstr "비디오, 채널, 플레이리스트, 폴더에 대한 툴팁 표시" -#: .././config.py:17813 +#: .././config.py:18553 msgid "Show errors/warnings in tooltips (but not in the Videos tab)" msgstr "툴팁에 오류/경고 표시 (비디오 탭에선 아님)" -#: .././config.py:17831 +#: .././config.py:18571 msgid "Disable the download buttons in the toolbar and the Videos tab" msgstr "" -#: .././config.py:17841 +#: .././config.py:18581 msgid "Show a 'Custom download all' button in the Videos tab" msgstr "" -#: .././config.py:17851 -msgid "In the Progress tab, hide finished videos / channels / playlists" -msgstr "작업 탭에서 완료한 비디오 / 채널 / 플레이리스트 숨기기" +#: .././config.py:18591 +msgid "In the Progress tab, hide finished downloads" +msgstr "" -#: .././config.py:17860 -msgid "In the Progress tab, show results in reverse order" -msgstr "작업 탭에서, 결과를 반대로 보여주기" +#: .././config.py:18600 +msgid "Show downloads in reverse order" +msgstr "" -#: .././config.py:17868 +#: .././config.py:18608 msgid "When Tartube starts, automatically open the Classic Mode tab" msgstr "Tartube가 시작하면, 자동으로 클래식 모드 탭으로 열기" -#: .././config.py:17882 +#: .././config.py:18622 msgid "" "In the Classic Mode tab, when adding URLs, remove duplicates rather than " "retaining them" msgstr "클래식 모드 탭에서, URL을 추가할 때, 중복 항목을 유지하지 않고 제거" -#: .././config.py:17896 +#: .././config.py:18636 msgid "In the Errors/Warnings tab, don't reset the tab text when it is clicked" msgstr "오류/경고 탭에서, 탭 텍스트를 클릭 시 재설정하지 않음" -#: .././config.py:17919 +#: .././config.py:18663 msgid "Video Index (left side of the Videos tab)" msgstr "비디오 색인 (비디오 탭의 왼쪽)" -#: .././config.py:17925 +#: .././config.py:18669 msgid "Show smaller icons in the Video Index" msgstr "비디오 색인에서 작은 아이콘 표시하기" -#: .././config.py:17935 +#: .././config.py:18679 msgid "" "In the Video Index, show detailed statistics about the videos in each " "channel / playlist / folder" @@ -6661,202 +6749,202 @@ msgstr "" "비디오 색인 내 각 채널 / 플레이리스트 / 폴더에서 비디오에 대한 자세한 통계 표" "시하기" -#: .././config.py:17946 +#: .././config.py:18690 msgid "" "After clicking on a folder, automatically expand/collapse the tree around it" msgstr "폴더를 클릭하면, 자동으로 관련 트리를 확장/축소하기" -#: .././config.py:17957 +#: .././config.py:18701 msgid "Expand the whole tree, not just the level beneath the clicked folder" msgstr "클릭한 폴더 아래뿐 아니라 전체 트리 확장하기" -#: .././config.py:17978 +#: .././config.py:18722 msgid "Video Catalogue (right side of the Videos tab)" msgstr "비디오 카탈로그 (비디오 탭의 오른쪽)" -#: .././config.py:17985 +#: .././config.py:18729 msgid "Show 'today' and 'yesterday' as the date, when possible" msgstr "가능하면 '오늘'과 '어제' 사용하기" -#: .././config.py:17995 +#: .././config.py:18739 msgid "Draw a frame around each video" msgstr "각 비디오 주위에 프레임 그리기" -#: .././config.py:18005 +#: .././config.py:18749 msgid "Draw status icons for each video" msgstr "각 비디오에 상태 아이콘 그리기" -#: .././config.py:18014 +#: .././config.py:18762 msgid "Thumbnail size (when videos are displayed on a grid)" msgstr "섬네일 크기 (비디오가 그리드로 표시될 때)" -#: .././config.py:18042 +#: .././config.py:18790 msgid "Show livestreams with a different background colour" msgstr "생방송을 다른 배경 색으로 표시하기" -#: .././config.py:18050 +#: .././config.py:18798 msgid "Use same background colours for livestream and debut videos" msgstr "생방송과 데뷔 비디오를 동일한 배경 색으로 표시하기" -#: .././config.py:18072 +#: .././config.py:18820 msgid "Channel and playlist names are clickable (grid mode only)" msgstr "" -#: .././config.py:18088 +#: .././config.py:18841 msgid "_Drag" msgstr "_드래그" -#: .././config.py:18092 +#: .././config.py:18845 msgid "Drag and drop preferences" msgstr "드래그 앤 드랍 환경 설정" -#: .././config.py:18098 +#: .././config.py:18851 msgid "When dragging and dropping videos to an external application..." msgstr "비디오를 외부 프로그램으로 드래그 앤 드랍 할때..." -#: .././config.py:18104 +#: .././config.py:18857 msgid "Transfer the video's full file path" msgstr "비디오의 전체 경로 전송하기" -#: .././config.py:18112 +#: .././config.py:18865 msgid "Transfer the video's source URL" msgstr "비디오의 원본 URL 전송하기" -#: .././config.py:18120 +#: .././config.py:18873 msgid "Transfer the video's name" msgstr "비디오의 이름 전송하기" -#: .././config.py:18128 +#: .././config.py:18881 msgid "Transfer the thumbnail's full file path" msgstr "비디오 섬네일의 전체 경로 전송하기" -#: .././config.py:18144 +#: .././config.py:18902 msgid "_Tray" msgstr "" -#: .././config.py:18150 +#: .././config.py:18908 msgid "System tray preferences" msgstr "시스템 트레이 환경 설정" -#: .././config.py:18155 +#: .././config.py:18913 msgid "Show icon in system tray" msgstr "시스템 트레이에 아이콘 표시하기" -#: .././config.py:18164 +#: .././config.py:18922 msgid "Close to the tray, rather than closing the application" msgstr "프로그램을 닫는 대신 트레이에 닫기" -#: .././config.py:18176 +#: .././config.py:18934 msgid "" "After closing to the tray, restore the window's position (does not work on " "Wayland)" msgstr "" -#: .././config.py:18212 +#: .././config.py:18975 msgid "D_ialogues" msgstr "_다이얼로그" -#: .././config.py:18218 +#: .././config.py:18981 msgid "Dialogue window preferences" msgstr "다이얼로그 윈도우 환경 설정" -#: .././config.py:18223 +#: .././config.py:18986 msgid "When adding channels/playlists, keep the dialogue window open" msgstr "채널/플레이리스트 추가 시 다이얼로그 윈도우 열기" -#: .././config.py:18233 +#: .././config.py:18996 msgid "When the dialogue window opens, add URLs from the system clipboard" msgstr "다이얼로그 윈도우가 열릴ㄸ 때, URL을 클립보드에 추가하기" -#: .././config.py:18254 +#: .././config.py:19017 msgid "When adding YouTube channels, remind the user to copy the correct URL" msgstr "" -#: .././config.py:18273 +#: .././config.py:19041 msgid "_Colours" msgstr "" -#: .././config.py:18281 +#: .././config.py:19048 msgid "Video Catalogue Colour preferences" msgstr "" -#: .././config.py:18289 +#: .././config.py:19056 msgid "Waiting livestreams" msgstr "" -#: .././config.py:18295 +#: .././config.py:19062 msgid "Broadcasting livestreams" msgstr "" -#: .././config.py:18301 +#: .././config.py:19068 msgid "Waiting debut videos" msgstr "" -#: .././config.py:18307 +#: .././config.py:19074 msgid "Broadcasting debut videos" msgstr "" -#: .././config.py:18313 +#: .././config.py:19080 msgid "Selected videos" msgstr "" -#: .././config.py:18319 +#: .././config.py:19086 msgid "Selected waiting videos" msgstr "" -#: .././config.py:18325 +#: .././config.py:19092 msgid "Selected broadcasting videos" msgstr "" -#: .././config.py:18356 +#: .././config.py:19123 msgid "Custom colour:" msgstr "" -#: .././config.py:18379 +#: .././config.py:19146 msgid "Default colour:" msgstr "" -#: .././config.py:18411 +#: .././config.py:19183 msgid "_Errors/Warnings" msgstr "_오류/경고" -#: .././config.py:18419 +#: .././config.py:19190 msgid "Errors/Warnings tab preferences" msgstr "오류/경고 탭 환경 설정" -#: .././config.py:18424 +#: .././config.py:19195 msgid "Show Tartube error messages" msgstr "Tartube 오류 메시지 표시하기" -#: .././config.py:18432 +#: .././config.py:19203 msgid "Show Tartube warning messages" msgstr "Tartube 경고 메시지 표시하기" -#: .././config.py:18440 +#: .././config.py:19211 msgid "Show server error messages" msgstr "서버 에러 메시지 표시하기" -#: .././config.py:18451 +#: .././config.py:19222 msgid "Show server warning messages" msgstr "서버 경고 메시지 표시하기" -#: .././config.py:18462 +#: .././config.py:19233 msgid "Show dates of all messages" msgstr "" -#: .././config.py:18474 +#: .././config.py:19245 msgid "Downloader error/warning preferences" msgstr "다운로드 오류/경고 환경설정" -#: .././config.py:18479 +#: .././config.py:19250 msgid "TRANSLATOR'S NOTE: These error messages are always in English" msgstr "TRANSLATOR'S NOTE: These error messages are always in English" -#: .././config.py:18483 +#: .././config.py:19254 msgid "Ignore 'Child process exited with non-zero code' errors" msgstr "Ignore 'Child process exited with non-zero code' errors" -#: .././config.py:18492 +#: .././config.py:19263 msgid "" "Ignore 'Unable to download video data' and 'Unable to extract video data' " "errors" @@ -6864,131 +6952,131 @@ msgstr "" "Ignore 'Unable to download video data' and 'Unable to extract video data' " "errors" -#: .././config.py:18502 +#: .././config.py:19273 msgid "Ignore 'Did not get any data blocks' errors" msgstr "Ignore 'Did not get any data blocks' errors" -#: .././config.py:18511 +#: .././config.py:19282 msgid "Ignore 'Requested formats are incompatible for merge' warnings" msgstr "Ignore 'Requested formats are incompatible for merge' warnings" -#: .././config.py:18520 +#: .././config.py:19291 msgid "Ignore 'No video formats found' errors" msgstr "Ignore 'No video formats found' errors" -#: .././config.py:18528 +#: .././config.py:19299 msgid "Ignore 'There are no annotations to write' warnings" msgstr "Ignore 'There are no annotations to write' warnings" -#: .././config.py:18536 +#: .././config.py:19307 msgid "Ignore 'Video doesn't have subtitles' warnings" msgstr "Ignore 'Video doesn't have subtitles' warnings" -#: .././config.py:18552 +#: .././config.py:19328 msgid "_Websites" msgstr "_웹사이트" -#: .././config.py:18560 +#: .././config.py:19335 msgid "YouTube error/warning preferences" msgstr "유튜브 오류/경고 설정" -#: .././config.py:18565 +#: .././config.py:19340 msgid "Ignore YouTube copyright errors" msgstr "유튜브 저작권 오류 무시하기" -#: .././config.py:18573 +#: .././config.py:19348 msgid "Ignore YouTube age-restriction errors" msgstr "유튜브 나이제한 오류 무시하기" -#: .././config.py:18581 +#: .././config.py:19356 msgid "Ignore YouTube deletion by uploader errors" msgstr "유튜브 업로더 삭제 오류 무시하기" -#: .././config.py:18589 +#: .././config.py:19364 msgid "Ignore YouTube payment errors" msgstr "유튜브 결제 오류 무시하기" -#: .././config.py:18598 +#: .././config.py:19373 msgid "General preferences" msgstr "일반 속성" -#: .././config.py:18604 +#: .././config.py:19379 msgid "" "Ignore any errors/warnings which match lines in this list (applies to all " "websites)" msgstr "이 목록의 행과 일치하는 오류/경고 무시하기(모든 웹사이트에 적용)" -#: .././config.py:18618 +#: .././config.py:19393 msgid "These are ordinary strings" msgstr "이것들은 보통 문자열임" -#: .././config.py:18625 +#: .././config.py:19400 msgid "These are regular expressions (regexes)" msgstr "이것들은 정규식임 (regexes)" #. Add this tab... -#: .././config.py:18654 +#: .././config.py:19429 msgid "_Scheduling" msgstr "_예약" -#: .././config.py:18671 +#: .././config.py:19451 msgid "_Start" msgstr "_시작" -#: .././config.py:18677 +#: .././config.py:19456 msgid "Scheduled download preferences" msgstr "예약 다운로드 속성" -#: .././config.py:18698 +#: .././config.py:19477 msgid "Priority" msgstr "우선순위" -#: .././config.py:18698 +#: .././config.py:19477 msgid "Whole" msgstr "전체" -#: .././config.py:18698 +#: .././config.py:19477 msgid "Shutdown" msgstr "강제 종료" -#: .././config.py:18698 +#: .././config.py:19477 msgid "D/L All" msgstr "모두 다운로드" -#: .././config.py:18699 +#: .././config.py:19478 msgid "Join mode" msgstr "조인 모드" -#: .././config.py:18753 .././config.py:19589 .././config.py:21226 -#: .././config.py:21491 +#: .././config.py:19532 .././config.py:20388 .././config.py:22142 +#: .././config.py:22415 msgid "Edit" msgstr "편집" -#: .././config.py:18825 .././formats.py:1006 +#: .././config.py:19604 .././formats.py:1015 msgid "Custom" msgstr "커스텀" -#: .././config.py:18847 +#: .././config.py:19631 msgid "S_top" msgstr "_중지" -#: .././config.py:18853 +#: .././config.py:19636 msgid "Scheduled stop preferences" msgstr "예약 중지 속성" -#: .././config.py:18858 +#: .././config.py:19641 msgid "Stop all download operations after this much time" msgstr "이 시간 이후 모든 다운로드 작업 중지" -#: .././config.py:18906 +#: .././config.py:19689 msgid "Stop all download operations after this many videos" msgstr "비디오 개수 이후 모든 다운로드 작업 중지" -#: .././config.py:18933 +#: .././config.py:19716 msgid "Stop all download operations after this much disk space" msgstr "다운로드 용량 차지시 모든 다운로드 작업 중지" -#: .././config.py:18976 +#: .././config.py:19759 msgid "" "N.B. Disk space is estimated. This setting does not apply to simulated " "downloads" @@ -6996,505 +7084,528 @@ msgstr "" "주의. 디스크 용량은 추정치입니다. 이 설정은 시뮬레이션 다운로드 시 적용되지 " "않습니다" -#: .././config.py:19081 +#: .././config.py:19869 msgid "Overriding video format options, limit video resolution to" msgstr "비디오 포맷 옵션 무시, 비디오 해상도 제한" -#: .././config.py:19103 +#: .././config.py:19891 msgid "Alternative performance limits" msgstr "" -#: .././config.py:19162 +#: .././config.py:19949 msgid "Alternative limits apply between" msgstr "" -#: .././config.py:19202 +#: .././config.py:19989 msgid "and" msgstr "" -#: .././config.py:19230 +#: .././config.py:20017 msgid "On days" msgstr "" -#: .././config.py:19258 +#: .././config.py:20050 msgid "_Stop" msgstr "" -#: .././config.py:19266 +#: .././config.py:20057 msgid "Time-saving settings" msgstr "시간절약 설정" -#: .././config.py:19272 +#: .././config.py:20063 msgid "" "Stop checking/downloading a channel/playlist when it starts sending videos " "you already have" msgstr "" "이미 가지고 있는 비디오 전송을 시작할 때 채널/플레이리스트 확인/다운로드 중지" -#: .././config.py:19283 +#: .././config.py:20074 msgid "Stop after this many videos (when checking)" msgstr "비디오 개수 이후 작업 중지 (확인 중에)" -#: .././config.py:19298 +#: .././config.py:20089 msgid "Stop after this many videos (when downloading)" msgstr "비디오 개수 이후 작업 중지 (다운로드 중에)" -#: .././config.py:19337 +#: .././config.py:20132 msgid "Download operation preferences" msgstr "다운로드 작업 환경 설정" -#: .././config.py:19343 +#: .././config.py:20138 msgid "Automatically update downloader before every download operation" msgstr "매일 다운로드 작업 전에 자동으로 다운로더 업데이트" -#: .././config.py:19355 +#: .././config.py:20150 msgid "Automatically save files at the end of all operations" msgstr "모든 작업 이후 자동으로 저장" -#: .././config.py:19365 +#: .././config.py:20160 msgid "For simulated downloads, don't check a video in a folder more than once" msgstr "시뮬레이션 다운로드에서, 비디오를 두번 이상 확인하지 않기" -#: .././config.py:19376 +#: .././config.py:20171 msgid "If a download stalls, restart it after this many minutes" msgstr "만약 다운로드가 지연된 경우 이 시간 이후 재시작하기 (분)" -#: .././config.py:19397 +#: .././config.py:20192 msgid "If a network problem is detected, restart the download immediately" msgstr "네트워크 문제가 감지된 경우, 즉시 재시작하기" -#: .././config.py:19409 +#: .././config.py:20204 msgid "Maximum restarts after a stalled download (0 for no maximum)" msgstr "지연된 다운로드 최대 재시작 횟수 (0인 경우 무제한)" -#: .././config.py:19450 +#: .././config.py:20245 msgid "" "Allow downloader to create its own archive file (so deleted videos are not " "re-downloaded)" msgstr "" "다운로더가 아카이브 파일 생성하도록 허용 (삭제된 비디오 재 다운로드 방지)" -#: .././config.py:19461 +#: .././config.py:20256 msgid "" "Also create an archive file when downloading from the Classic Mode tab (not " "recommended)" msgstr "클래식 모드 탭에서 다운로드 시에도 아카이브 파일 생성 (권장하지 않음)" -#: .././config.py:19472 +#: .././config.py:20267 msgid "When checking videos, apply a 60-second timeout" msgstr "비디오를 확인할 때, 60초 타임아웃 적용" -#: .././config.py:19482 +#: .././config.py:20277 msgid "" "Convert .webp thumbnails into .jpg thumbnails (using FFmpeg) after " "downloading them" msgstr "다운로드 후 .webp 섬네일을 FFmpeg를 이용해 .jpg로 변환" -#: .././config.py:19499 +#: .././config.py:20299 msgid "_Custom" msgstr "_커스텀" -#: .././config.py:19504 +#: .././config.py:20304 msgid "Custom downloads" msgstr "" -#: .././config.py:19525 .././config.py:21160 +#: .././config.py:20325 .././config.py:22077 msgid "Classic Mode" msgstr "클래식 모드" -#: .././config.py:19598 .././config.py:21235 .././config.py:21500 +#: .././config.py:20397 .././config.py:22151 .././config.py:22424 msgid "Export" msgstr "내보내기" -#: .././config.py:19607 .././config.py:21244 .././config.py:21509 +#: .././config.py:20406 .././config.py:22160 .././config.py:22433 msgid "Clone" msgstr "복제" -#: .././config.py:19616 .././config.py:21253 +#: .././config.py:20415 .././config.py:22169 msgid "Use in Classic Mode tab" msgstr "클래식 모드 탭에서 사용" -#: .././config.py:19722 +#: .././config.py:20518 +msgid "L_ivestreams" +msgstr "" + +#: .././config.py:20526 +msgid "Livestream preferences (compatible websites only)" +msgstr "생방송 환경 설정 (호환 가능한 사이트만 가능)" + +#: .././config.py:20532 +msgid "Detect livestreams announced within this many days" +msgstr "이 기간 내 예약된 생방송 탐지 (일)" + +#: .././config.py:20547 +msgid "How often to check the status of livestreams (in minutes)" +msgstr "생방송을 탐지할 주기 (분)" + +#: .././config.py:20566 +msgid "Check more frequently when a livestream is due to start" +msgstr "생방송이 시작해야될 때 더 자주 확인" + +#: .././config.py:20609 +msgid "Broadcast preferences (compatible websites only)" +msgstr "브로드캐스트 환경 설정 (호환 가능한 사이트만 가능)" + +#: .././config.py:20616 +msgid "" +"Use Youtube Stream Capture to download broadcasting livestreams (requires " +"aria2)" +msgstr "" +"브로드캐스트 생방송을 다운로드 할때 유튜브 스트림 캡처 사용하기 (aria2 필요)" + +#: .././config.py:20626 +msgid "Timeout after this many minutes of inactivity" +msgstr "비활성 시 타임아웃 시간 설정 (분)" + +#: .././config.py:20640 +msgid "Number of restarts after a timeout" +msgstr "타임아웃 시 재시도 횟수" + +#: .././config.py:20655 +msgid "" +"Bypass usual limits on simultaneous downloads, so that all broadcasts can be " +"downloaded" +msgstr "" +"모든 브로드캐스트를 다운로드 할 수 있도록 동시 다운로드에 대한 일반적인 제한" +"사항 우회" + +#: .././config.py:20708 msgid "Video Clips (requires FFmpeg)" msgstr "" -#: .././config.py:19728 +#: .././config.py:20714 msgid "" "When a video is checked/downloaded, automatically extract timestamps from " "its metadata file" msgstr "" -#: .././config.py:19739 +#: .././config.py:20725 msgid "" "When a video is checked/downloaded, automatically extract timestamps from " "its description" msgstr "" -#: .././config.py:19749 +#: .././config.py:20735 msgid "If timestamps have already been extracted, replace them" msgstr "" -#: .././config.py:19761 +#: .././config.py:20747 msgid "" "If no timestamps have been extracted, try again before splitting a video" msgstr "" -#: .././config.py:19774 +#: .././config.py:20760 msgid "Format of video clip filenames" msgstr "" -#: .././config.py:19779 +#: .././config.py:20765 msgid "Number" msgstr "" -#: .././config.py:19780 +#: .././config.py:20766 msgid "Clip Title" msgstr "" -#: .././config.py:19781 +#: .././config.py:20767 msgid "Number + Clip Title" msgstr "" -#: .././config.py:19782 +#: .././config.py:20768 msgid "Clip Title + Number" msgstr "" -#: .././config.py:19783 +#: .././config.py:20769 msgid "Original Title" msgstr "" -#: .././config.py:19784 +#: .././config.py:20770 msgid "Original Title + Number" msgstr "" -#: .././config.py:19785 +#: .././config.py:20771 msgid "Original Title + Clip Title" msgstr "" -#: .././config.py:19786 +#: .././config.py:20772 msgid "Original Title + Number + Clip Title" msgstr "" -#: .././config.py:19787 +#: .././config.py:20773 msgid "Original Title + Clip Title + Number" msgstr "" -#: .././config.py:19814 +#: .././config.py:20800 msgid "Generic title for video clips" msgstr "" -#: .././config.py:19831 +#: .././config.py:20817 msgid "Move clips to the Video Clips folder" msgstr "" -#: .././config.py:19838 +#: .././config.py:20824 msgid "Keep clips with their original video" msgstr "" -#: .././config.py:19851 +#: .././config.py:20837 msgid "...but place new files inside a sub-directory" msgstr "" -#: .././config.py:19862 +#: .././config.py:20848 msgid "Add new files to Tartube's database" msgstr "" -#: .././config.py:19873 +#: .././config.py:20859 msgid "Use the original video's thumbnail" msgstr "" -#: .././config.py:19881 +#: .././config.py:20867 msgid "After splitting a video, open the destination folder" msgstr "" -#: .././config.py:19883 +#: .././config.py:20869 msgid "After splitting a video, open the destination directory" msgstr "" -#: .././config.py:19895 +#: .././config.py:20881 msgid "" "After splitting a video, delete the original (ignored for videos in channels/" "playlists)" msgstr "" -#: .././config.py:19921 +#: .././config.py:20911 msgid "Video Slices (requires FFmpeg)" msgstr "" -#: .././config.py:19927 +#: .././config.py:20917 msgid "" "While checking/downloading videos, check each video against the SponsorBlock " "server" msgstr "" -#: .././config.py:19938 +#: .././config.py:20928 msgid "When contacting the server, obfuscate each video's ID (recommended)" msgstr "" -#: .././config.py:19952 +#: .././config.py:20942 msgid "If slices have already been extracted, replace the old list" msgstr "" -#: .././config.py:19965 +#: .././config.py:20955 msgid "" "If slices have been extracted, contact the server again before removing more " "slices from the video" msgstr "" -#: .././config.py:19979 +#: .././config.py:20969 msgid "" "After removing slices from a video, reset all timestamp and slice data " "(recommended)" msgstr "" -#: .././config.py:20000 -msgid "L_ivestreams" +#: .././config.py:21002 +msgid "Video Comments (requires yt-dlp)" msgstr "" -#: .././config.py:20009 -msgid "Livestream preferences (compatible websites only)" -msgstr "생방송 환경 설정 (호환 가능한 사이트만 가능)" - -#: .././config.py:20015 -msgid "Detect livestreams announced within this many days" -msgstr "이 기간 내 예약된 생방송 탐지 (일)" - -#: .././config.py:20030 -msgid "How often to check the status of livestreams (in minutes)" -msgstr "생방송을 탐지할 주기 (분)" - -#: .././config.py:20049 -msgid "Check more frequently when a livestream is due to start" -msgstr "생방송이 시작해야될 때 더 자주 확인" - -#: .././config.py:20092 -msgid "Broadcast preferences (compatible websites only)" -msgstr "브로드캐스트 환경 설정 (호환 가능한 사이트만 가능)" +#: .././config.py:21008 +msgid "When checking/downloading videos, store comments in the metadata file" +msgstr "" -#: .././config.py:20099 +#: .././config.py:21018 msgid "" -"Use Youtube Stream Capture to download broadcasting livestreams (requires " -"aria2)" +"Warning: fetching comments will increase the download time, perhaps by a lot!" msgstr "" -"브로드캐스트 생방송을 다운로드 할때 유튜브 스트림 캡처 사용하기 (aria2 필요)" - -#: .././config.py:20109 -msgid "Timeout after this many minutes of inactivity" -msgstr "비활성 시 타임아웃 시간 설정 (분)" -#: .././config.py:20123 -msgid "Number of restarts after a timeout" -msgstr "타임아웃 시 재시도 횟수" +#: .././config.py:21024 +msgid "Also store comments in the Tartube database" +msgstr "" -#: .././config.py:20138 +#: .././config.py:21041 msgid "" -"Bypass usual limits on simultaneous downloads, so that all broadcasts can be " -"downloaded" +"Warning: storing comments will increase the size of Tartube's datbase, " +"perhaps by a lot!" msgstr "" -"모든 브로드캐스트를 다운로드 할 수 있도록 동시 다운로드에 대한 일반적인 제한" -"사항 우회" -#: .././config.py:20179 +#: .././config.py:21061 msgid "_Actions" msgstr "_행동" -#: .././config.py:20188 +#: .././config.py:21069 msgid "Livestream actions (can be toggled for individual videos)" msgstr "생방송 행동 (개별 비디오에 대해 토글 가능)" -#: .././config.py:20195 +#: .././config.py:21076 msgid "(currently disabled on MS Windows)" msgstr "(현재 MS Windows에서는 비활성화됨)" -#: .././config.py:20200 +#: .././config.py:21081 msgid "When a livestream starts, show a desktop notification" msgstr "생방송이 시작되면, 데스크탑 알림으로 알림" -#: .././config.py:20214 +#: .././config.py:21095 msgid "When a livestream starts, sound an alarm" msgstr "생방송이 시작되면, 알람을 소리로 울림" -#: .././config.py:20237 +#: .././config.py:21118 msgid "Plays the selected sound effect" msgstr "선택한 사운드 효과 재생" -#: .././config.py:20244 +#: .././config.py:21125 msgid "When a livestream starts, open it in the system's web browser" msgstr "생방송이 시작되면, 시스템의 웹브라우저로 실행" -#: .././config.py:20256 +#: .././config.py:21137 msgid "When a livestream starts, begin downloading it immediately" msgstr "생방송이 시작되면, 즉시 다운로드 시작" -#: .././config.py:20282 +#: .././config.py:21163 msgid "Desktop notification preferences" msgstr "데스크탑 알림 환경 설정" -#: .././config.py:20288 +#: .././config.py:21169 msgid "Show a dialogue window at the end of an operation" msgstr "작업 종료 후에 다이얼로그 윈도우 표시" -#: .././config.py:20311 +#: .././config.py:21192 msgid "Don't notify the user at the end of an operation" msgstr "작업이 끝나도 유저에게 알리지 않기" -#: .././config.py:20344 +#: .././config.py:21230 msgid "_Mirrors" msgstr "" -#: .././config.py:20352 +#: .././config.py:21237 msgid "Invidious mirror" msgstr "Invidious 미러" -#: .././config.py:20358 +#: .././config.py:21243 msgid "To find an updated list of Invidious mirrors, use any search engine!" msgstr "Invidious 미러 최신 버전 링크를 확인할려면 검색 엔진을 사용하세요!" -#: .././config.py:20373 +#: .././config.py:21258 msgid "Use the default Invidious mirror" msgstr "" -#: .././config.py:20388 +#: .././config.py:21273 msgid "SponsorBlock API mirror" msgstr "" -#: .././config.py:20401 +#: .././config.py:21286 msgid "Use the default SponsorBlock URL" msgstr "" -#: .././config.py:20413 +#: .././config.py:21303 msgid "_Proxies" msgstr "_프록시" -#: .././config.py:20419 +#: .././config.py:21309 msgid "Proxies" msgstr "프록시" -#: .././config.py:20426 +#: .././config.py:21316 msgid "" "During a download operation, Tartube will cycle betwween the proxies in this " "list" msgstr "다운로드 작업 중, Tartube가 리스트에 있는 프록시를 경유합니다" -#: .././config.py:20447 +#: .././config.py:21342 msgid "P_references" msgstr "_환경 설정" -#: .././config.py:20455 +#: .././config.py:21349 msgid "URL flexibility preferences" msgstr "URL 유연성 기본 설정" -#: .././config.py:20462 +#: .././config.py:21356 msgid "" "If a video's URL represents a channel/playlist, not a video, don't download " "it" msgstr "비디오 URL이 채널이나 플레이리스트라면 다운로드받지 않기" -#: .././config.py:20471 +#: .././config.py:21365 msgid "...or, download multiple videos into the containing folder" msgstr "...혹은, 포함된 폴더로 여러 동영상을 다운로드 받기" -#: .././config.py:20481 +#: .././config.py:21375 msgid "...or, create a new channel, and download the videos into that" msgstr "...혹은, 새로운 채널을 만들어서, 거기에 비디오 받기" -#: .././config.py:20492 +#: .././config.py:21386 msgid "...or, create a new playlist, and download the videos into that" msgstr "...혹은, 새로운 플레이리스트를 만들어서, 거기에 비디오 받기" -#: .././config.py:20524 +#: .././config.py:21418 msgid "Missing video preferences" msgstr "사라진 비디오 환경 설정" -#: .././config.py:20530 +#: .././config.py:21424 msgid "" "Add videos which have been removed from a channel/playlist to the Missing " "Videos folder" msgstr "채널/플레이리스트에서 사라진 비디오를 '사라진 비디오' 폴더에 추가하기" -#: .././config.py:20541 +#: .././config.py:21435 msgid "Only add videos that were uploaded within this many days" msgstr "이 기간 내에 업로드 된 동영상만 추가(일)" -#: .././config.py:20610 +#: .././config.py:21509 msgid "_Forks" msgstr "_포크" -#: .././config.py:20616 +#: .././config.py:21515 msgid "Forks of youtube-dl" msgstr "youtube-dl의 포크" -#: .././config.py:20645 +#: .././config.py:21544 msgid "Use yt-dlp" msgstr "" -#: .././config.py:20651 +#: .././config.py:21550 msgid "Install without dependencies" msgstr "" -#: .././config.py:20652 +#: .././config.py:21551 msgid "(recommended on MS Windows)" msgstr "" -#: .././config.py:20683 +#: .././config.py:21582 msgid "Use youtube-dl" msgstr "youtube-dl 사용" -#: .././config.py:20704 +#: .././config.py:21603 msgid "Other forks" msgstr "" -#: .././config.py:20712 +#: .././config.py:21611 msgid "Use this fork:" msgstr "" -#: .././config.py:20792 +#: .././config.py:21691 msgid "When using other downloaders, filter out yt-dlp download options" msgstr "" -#: .././config.py:20809 +#: .././config.py:21713 msgid "_File paths" msgstr "_파일 경로" -#: .././config.py:20816 +#: .././config.py:21720 msgid "Downloader file paths" msgstr "다운로더 파일 경로" -#: .././config.py:20822 +#: .././config.py:21726 msgid "Path to the executable" msgstr "실행 파일 경로" #. (Signal connect appears below) -#: .././config.py:20828 .././config.py:20976 .././config.py:21017 -#: .././config.py:21087 .././config.py:28160 +#: .././config.py:21732 .././config.py:21884 .././config.py:21925 +#: .././config.py:21999 .././config.py:29260 msgid "Use default path" msgstr "기본 경로 사용" -#: .././config.py:20833 .././config.py:28172 +#: .././config.py:21737 .././config.py:29272 msgid "Use local path" msgstr "로컬 경로 사용" -#: .././config.py:20837 +#: .././config.py:21741 msgid "Use custom path" msgstr "커스텀 경로 사용" -#: .././config.py:20845 .././config.py:28186 +#: .././config.py:21749 .././config.py:29286 msgid "Use PyPI path" msgstr "PyPI 경로 사용" -#: .././config.py:20896 +#: .././config.py:21800 msgid "Command for update operations" msgstr "업데이트 작업 명령" -#: .././config.py:20944 +#: .././config.py:21853 msgid "_FFmpeg / AVConv" msgstr "_FFmpeg / AVConv" -#: .././config.py:20952 +#: .././config.py:21860 msgid "Post-processing file paths" msgstr "후처리 파일 경로" -#: .././config.py:20957 +#: .././config.py:21865 msgid "" "You only need to set these paths if Tartube cannot find FFmpeg / AVConv " "automatically" @@ -7502,31 +7613,31 @@ msgstr "" "Tartube가 FFmpeg / AVConv 경로를 자동으로 찾을 수 없는 경우에만 경로 설정을 " "진행하면 됩니다" -#: .././config.py:20964 +#: .././config.py:21872 msgid "Path to the FFmpeg executable" msgstr "FFmpeg 실행 파일 경로" -#: .././config.py:20991 +#: .././config.py:21899 msgid "Install from main menu" msgstr "메인 메뉴에서 설치" -#: .././config.py:21005 +#: .././config.py:21913 msgid "Path to the AVConv executable" msgstr "AVConv 실행 파일 경로" -#: .././config.py:21032 +#: .././config.py:21940 msgid "Not supported on MS Windows" msgstr "MS Windows에서는 지원하지 않음" -#: .././config.py:21055 +#: .././config.py:21968 msgid "_Stream Capture" msgstr "_스트림 캡처" -#: .././config.py:21063 +#: .././config.py:21975 msgid "Youtube Stream Capture file path" msgstr "유튜브 스트림 캡처 파일 경로" -#: .././config.py:21068 +#: .././config.py:21980 msgid "" "Tartube includes a copy of this script, but you can use a different copy, if " "you want" @@ -7534,292 +7645,293 @@ msgstr "" "Tartube는 기본적으로 이 스크립트의 복사본을 포함하지만, 다른 복사본을 사용할 " "수도 있습니다" -#: .././config.py:21075 +#: .././config.py:21987 msgid "Path to the YT Stream Capture executable" msgstr "YT 스트림 캡처 실행파일 경로" -#: .././config.py:21133 +#: .././config.py:22050 msgid "_Download options" msgstr "_다운로드 설정" -#: .././config.py:21140 +#: .././config.py:22057 msgid "List of download options managers" msgstr "다운로드 설정 매니저 리스트" -#: .././config.py:21161 +#: .././config.py:22078 msgid "Applied to media" msgstr "적용된 미디어" -#: .././config.py:21359 +#: .././config.py:22279 msgid "_Preferences" msgstr "_환경 설정" -#: .././config.py:21366 +#: .././config.py:22286 msgid "Download options preferences" msgstr "다운로드 환경 설정" -#: .././config.py:21372 +#: .././config.py:22292 msgid "" "When applying download options to something, clone the general download " "options" msgstr "다운로드 설정을 적용할 때, 일반 다운로드 설정 복제" -#: .././config.py:21383 +#: .././config.py:22303 msgid "After downloading a video, destroy its download options" msgstr "비디오 다운로드 후, 그것의 다운로드 설정 삭제" -#: .././config.py:21400 +#: .././config.py:22325 msgid "_FFmpeg options" msgstr "_FFmpeg 설정" -#: .././config.py:21407 +#: .././config.py:22332 msgid "List of FFmpeg options managers" msgstr "FFmpeg 설정 매니저 리스트" -#: .././config.py:21427 +#: .././config.py:22352 msgid "Current" msgstr "사용" -#: .././config.py:21518 +#: .././config.py:22442 msgid "Use these options" msgstr "이 옵션 사용" #. Add this tab... -#: .././config.py:21609 +#: .././config.py:22532 msgid "O_utput" msgstr "_출력" -#: .././config.py:21628 +#: .././config.py:22556 msgid "_Output tab" msgstr "_출력 탭" -#: .././config.py:21636 +#: .././config.py:22563 msgid "Output tab preferences" msgstr "출력 탭 환경 설정" -#: .././config.py:21641 +#: .././config.py:22568 msgid "Display downloader system commands in the Output tab" msgstr "출력 탭에 다운로드 시스템 커맨드 표시" -#: .././config.py:21650 +#: .././config.py:22577 msgid "Display output from downloader's STDOUT in the Output tab" msgstr "출력 탭에 다운로더의 STDOUT 출력 표시" -#: .././config.py:21659 .././config.py:21821 +#: .././config.py:22586 .././config.py:22753 msgid "...but don't write each video's JSON data" msgstr "...하지만 각각의 JSON 데이터는 쓰지 않기" -#: .././config.py:21670 .././config.py:21832 +#: .././config.py:22597 .././config.py:22764 msgid "...but don't write each video's download progress" msgstr "...하지만 각각의 비디오 다운로드 진행 상황은 쓰지 않기" -#: .././config.py:21689 +#: .././config.py:22616 msgid "Display output from downloader's STDERR in the Output tab" msgstr "출력 탭에 다운로더의 STDERR 출력 표시" -#: .././config.py:21698 +#: .././config.py:22625 msgid "Limit the size of Output tab pages to" msgstr "출력 탭의 페이지 사이즈 제한하기" -#: .././config.py:21719 +#: .././config.py:22646 msgid "Empty pages in the Output tab at the start of every operation" msgstr "모든 작업을 시작 할 때 출력 탭 비우기" -#: .././config.py:21729 +#: .././config.py:22656 msgid "" "Show a summary of active threads (changes are applied when Tartube restarts)" msgstr "활성 스레드 요약 표시 (Tartube를 재시작 시 변경 사항 적용)" -#: .././config.py:21741 +#: .././config.py:22668 msgid "During update/info operations, automatically switch to the Output tab" msgstr "" -#: .././config.py:21752 +#: .././config.py:22679 msgid "During a refresh operation, show all matching videos in the Output tab" msgstr "새로고침 작업 중, 자동으로 출력 탭으로 전환" -#: .././config.py:21763 +#: .././config.py:22690 msgid "...also show all non-matching videos" msgstr "...또한 모든 비 매칭 비디오도 표시" -#: .././config.py:21792 +#: .././config.py:22724 msgid "_Terminal window" msgstr "_터미널 윈도우" -#: .././config.py:21798 +#: .././config.py:22730 msgid "Terminal window preferences" msgstr "터미널 윈도우 환경 설정" -#: .././config.py:21803 +#: .././config.py:22735 msgid "Write downloader system commands to the terminal window" msgstr "다운로더 시스템 커맨드를 터미널 윈도우에 쓰기" -#: .././config.py:21812 +#: .././config.py:22744 msgid "Write output from downloader's STDOUT to the terminal window" msgstr "다운로더의 STDOUT 출력을 터미널 윈도우에 쓰기" -#: .././config.py:21854 +#: .././config.py:22786 msgid "Write output from downloader's STDERR to the terminal window" msgstr "다운로더의 STDERR 출력을 터미널 윈도우에 쓰기" -#: .././config.py:21873 +#: .././config.py:22810 msgid "_Both" msgstr "_둘 다" -#: .././config.py:21878 +#: .././config.py:22815 msgid "" "Special preferences (applies to both the Output tab and the terminal window)" msgstr "특별한 환경 설정 (출력 탭과 터미널 윈도우에 둘다 적용됨)" -#: .././config.py:21885 +#: .././config.py:22822 msgid "Downloader writes verbose output (youtube-dl debugging mode)" msgstr "다운로더가 상세한 출력 쓰도록 하기 (youtube-dl 디버깅 모드)" -#: .././config.py:21894 +#: .././config.py:22831 msgid "Youtube Stream Capture writes verbose output" msgstr "유튜브 스트림 캡처가 상세한 출력 쓰도록 하기" #. Confirm the result -#: .././config.py:22640 .././config.py:24410 .././config.py:25118 -#: .././config.py:26255 .././refresh.py:483 .././refresh.py:591 +#: .././config.py:23577 .././config.py:25396 .././config.py:25453 +#: .././config.py:26161 .././config.py:27303 .././config.py:27348 +#: .././refresh.py:483 .././refresh.py:591 msgid "Total videos:" msgstr "총 비디오:" -#: .././config.py:22641 .././config.py:24412 .././config.py:25119 -#: .././config.py:26256 +#: .././config.py:23578 .././config.py:25398 .././config.py:25455 +#: .././config.py:26162 .././config.py:27304 .././config.py:27349 msgid "Videos updated:" msgstr "" -#: .././config.py:22831 +#: .././config.py:23813 msgid "Are you sure you want to rename this channel?" msgstr "" -#: .././config.py:22833 +#: .././config.py:23815 msgid "Are you sure you want to rename this playlist?" msgstr "" -#: .././config.py:22835 +#: .././config.py:23817 msgid "Are you sure you want to rename this folder?" msgstr "" -#: .././config.py:22875 +#: .././config.py:23857 msgid "That is not a valid URL" msgstr "" -#: .././config.py:22896 +#: .././config.py:23878 msgid "Are you sure you want to update the URL?" msgstr "" -#: .././config.py:22943 +#: .././config.py:23925 msgid "The regex is invalid" msgstr "" -#: .././config.py:22991 +#: .././config.py:23973 msgid "Are you sure you want to update these URLs?" msgstr "" -#: .././config.py:23211 +#: .././config.py:24193 msgid "The default custom download manager cannot be deleted" msgstr "" -#: .././config.py:23219 +#: .././config.py:24201 msgid "Are you sure you want to delete this custom download manager?" msgstr "" -#: .././config.py:23493 +#: .././config.py:24475 msgid "Are you sure you want to create a new database at this location?" msgstr "정말로 이 위치에 새로운 데이터베이스를 만드시겠습니까?" -#: .././config.py:23600 +#: .././config.py:24582 msgid "Are you sure you want to forget this database?" msgstr "정말로 이 데이터베이스를 잊어버리시겠습니까?" -#: .././config.py:23635 +#: .././config.py:24617 msgid "Are you sure you want to forget all databases except the current one?" msgstr "" "정말로 이 데이터베이스를 제외한 모든 데이터베이스를 잊어버리시겠습니까?" -#: .././config.py:23839 +#: .././config.py:24821 msgid "No database exists at this location:" msgstr "이 위치에 아무 데이터베이스도 없습니다:" -#: .././config.py:23841 +#: .././config.py:24823 msgid "Do you want to create a new one?" msgstr "정말로 새것을 만듭니까?" -#: .././config.py:24581 +#: .././config.py:25624 msgid "The current options manager cannot be deleted" msgstr "현재 설정 관리자를 삭제할 수 없습니다" -#: .././config.py:24589 .././config.py:25640 +#: .././config.py:25632 .././config.py:26680 msgid "Are you sure you want to delete this options manager?" msgstr "정말로 이 설정 관리자를 삭제하시겠습니까?" -#: .././config.py:24783 .././config.py:25177 .././config.py:26977 +#: .././config.py:25826 .././config.py:26217 .././config.py:28077 msgid "The new setting will be applied when Tartube restarts" msgstr "새 설정은 Tartube가 재시작 시 적용됩니다" -#: .././config.py:25632 +#: .././config.py:26672 msgid "The default options manager cannot be deleted" msgstr "기본 설정 매니저를 삭제할 수 없습니다" -#: .././config.py:26598 +#: .././config.py:27698 msgid "There is already a scheduled download with that name" msgstr "이미 동일한 이름의 예약 다운로드가 존재합니다" -#: .././config.py:26645 +#: .././config.py:27745 msgid "Are you sure you want to delete this scheduled download?" msgstr "정말로 이 예약 다운로드를 삭제하시겠습니까?" -#: .././config.py:26830 +#: .././config.py:27930 msgid "Please select the AVConv executable" msgstr "AVConv 실행 파일을 선택해주세요" -#: .././config.py:26863 +#: .././config.py:27963 msgid "Please select the FFmpeg executable" msgstr "FFmpeg 실행 파일을 선택해주세요" -#: .././config.py:26896 +#: .././config.py:27996 msgid "Please select the Youtube Stream Capture executable" msgstr "Youtube Stream Capture 실행 파일을 선택해주세요" -#: .././config.py:27839 +#: .././config.py:28939 msgid "Select the youtube-dl-compatible executable" msgstr "youtube-dl-compatible 실행 파일을 선택해주세요" -#: .././config.py:28083 +#: .././config.py:29183 msgid "Database file not loaded" msgstr "데이터베이스 파일이 로드되지 않음" -#: .././config.py:28103 +#: .././config.py:29203 msgid "Did not try to load the database file" msgstr "데이터베이스 파일을 로드하지 않았습니다" -#: .././config.py:28128 +#: .././config.py:29228 msgid "Database file loaded" msgstr "데이터베이스 파일 불러옴" -#: .././downloads.py:322 +#: .././downloads.py:323 msgid "D/L Manager:" msgstr "다운로드 매니저:" -#: .././downloads.py:326 +#: .././downloads.py:327 msgid "Starting download operation" msgstr "다운로드 작업 시작중" -#: .././downloads.py:357 +#: .././downloads.py:358 msgid "Workers: available:" msgstr "작업자: 존재:" -#: .././downloads.py:358 +#: .././downloads.py:359 msgid "total:" msgstr "전체:" -#: .././downloads.py:390 +#: .././downloads.py:391 msgid "Alternative performance limits no longer apply" msgstr "" -#: .././downloads.py:398 +#: .././downloads.py:399 msgid "Alternative performance limits now apply" msgstr "" @@ -7827,9 +7939,9 @@ msgstr "" msgid "All threads finished" msgstr "모든 스레드 완료" -#: .././downloads.py:464 .././downloads.py:1383 .././downloads.py:1394 -#: .././downloads.py:1469 .././downloads.py:1541 .././downloads.py:1582 -#: .././downloads.py:1654 +#: .././downloads.py:464 .././downloads.py:1392 .././downloads.py:1403 +#: .././downloads.py:1478 .././downloads.py:1550 .././downloads.py:1591 +#: .././downloads.py:1663 msgid "Thread #" msgstr "스레드 #" @@ -7849,121 +7961,121 @@ msgstr "모든 작업 중지" msgid "Join and collect threads" msgstr "스레드 조인 및 수집" -#: .././downloads.py:1384 +#: .././downloads.py:1393 msgid "Job complete" msgstr "작업 완료" -#: .././downloads.py:1395 +#: .././downloads.py:1404 msgid "Worker now available again" msgstr "작업자 재사용 가능" -#: .././downloads.py:1470 .././downloads.py:1583 .././downloads.py:1655 +#: .././downloads.py:1479 .././downloads.py:1592 .././downloads.py:1664 msgid "Assigned job:" msgstr "할당된 작업:" -#: .././downloads.py:1494 .././downloads.py:1498 +#: .././downloads.py:1503 .././downloads.py:1507 msgid "Tartube is restarting a stalled download" msgstr "Tartube가 지연된 작업을 재시작 중" -#: .././downloads.py:1542 +#: .././downloads.py:1551 msgid "Checking RSS feed" msgstr "RSS 피드 확인중" -#: .././downloads.py:2188 +#: .././downloads.py:2197 msgid "Cannot download videos in a private folder" msgstr "개인 폴더에 있는 비디오를 다운받지 못했습니다" -#: .././downloads.py:3539 .././downloads.py:7687 +#: .././downloads.py:3550 .././downloads.py:7714 msgid "Download did not start" msgstr "다운로드 시작하지 않음" -#: .././downloads.py:3545 .././downloads.py:7699 .././info.py:358 +#: .././downloads.py:3556 .././downloads.py:7726 .././info.py:358 #: .././updates.py:278 .././updates.py:496 msgid "Child process exited with non-zero code: {}" msgstr "하위 프로세스가 0이 아닌 코드로 종료됨: {}" -#: .././downloads.py:3672 .././downloads.py:4780 +#: .././downloads.py:3683 .././downloads.py:4812 msgid "" "This video has a URL that points to a channel or a playlist, not a video" msgstr "이 URL은 비디오가 아닌 채널이나 플레이리스트를 가르키고 있습니다" -#: .././downloads.py:4655 .././downloads.py:4671 +#: .././downloads.py:4687 .././downloads.py:4703 msgid "Simulated download of:" msgstr "다음 시뮬레이션 다운로드:" -#: .././downloads.py:4679 +#: .././downloads.py:4711 msgid "Simulated download of video with unprintable characters" msgstr "출력할 수 없는 문자가 포함된 비디오 시뮬레이션 다운로드" -#: .././downloads.py:5899 +#: .././downloads.py:5931 msgid "No timestamps defined in video's timestamp list" msgstr "" -#: .././downloads.py:5917 +#: .././downloads.py:5949 msgid "" "FAILED: Can't create the destination folder either because a folder with the " "same name already exists, or because new folders can't be added to the " "parent folder" msgstr "" -#: .././downloads.py:6138 .././downloads.py:6486 +#: .././downloads.py:6170 .././downloads.py:6518 msgid "FAILED: Clip download did not start" msgstr "" -#: .././downloads.py:6146 .././downloads.py:6494 +#: .././downloads.py:6178 .././downloads.py:6526 msgid "FAILED: Child process exited with non-zero code: {}" msgstr "" -#: .././downloads.py:6256 +#: .././downloads.py:6288 msgid "No slices defined in video's slice list" msgstr "" -#: .././downloads.py:6518 +#: .././downloads.py:6550 msgid "FAILED: One or more clips were not downloaded" msgstr "" -#: .././downloads.py:6623 +#: .././downloads.py:6655 msgid "FAILED: Can't concatenate clips" msgstr "" -#: .././downloads.py:6649 +#: .././downloads.py:6676 msgid "" "FAILED: Clips were concatenated, but could not move the output file out of " "the temporary directory" msgstr "" -#: .././downloads.py:6775 +#: .././downloads.py:6802 msgid "Failed to copy the original video's thumbnail" msgstr "" -#: .././downloads.py:6957 +#: .././downloads.py:6984 msgid "FAILED: Can't create a temporary folder for video clips" msgstr "" #. This object creates more messages for the Output tab and/or terminal, #. than downloads.VideoDownloader would do, as the output generated by #. Youtube Stream Capture is not easy for the user to interpret -#: .././downloads.py:7578 +#: .././downloads.py:7605 msgid "Tartube is starting the stream capture..." msgstr "Tartube가 스트림 캡처를 시작합니다..." -#: .././downloads.py:7596 +#: .././downloads.py:7623 msgid "Could not create a destination directory, capture halted" msgstr "목적지 디렉토리를 생성하지 못해, 캡처 중지됨" -#: .././downloads.py:7617 .././downloads.py:7642 +#: .././downloads.py:7644 .././downloads.py:7669 msgid "Youtube Stream Capture script not found:" msgstr "유튜브 스트림 캡처 스크립트를 발견하지 못함:" -#: .././downloads.py:7691 +#: .././downloads.py:7718 msgid "Failed to capture the livestream" msgstr "생방송 캡처 실패" -#: .././downloads.py:7695 +#: .././downloads.py:7722 msgid "Stream capture terminated" msgstr "스트림 캡처 중지" -#: .././downloads.py:7705 +#: .././downloads.py:7732 msgid "" "Stream captured terminated without downloading any video segments " "(indicating an error with the stream)" @@ -7972,45 +8084,45 @@ msgstr "" "오류가 있음을 나타냄)" #. Capture successful -#: .././downloads.py:7721 +#: .././downloads.py:7748 msgid "Stream capture successful" msgstr "스트림 캡처 성공" #. Show a confirmation message -#: .././downloads.py:7751 +#: .././downloads.py:7778 msgid "Merging file segments..." msgstr "파일 세그먼트 병합중..." -#: .././downloads.py:7771 +#: .././downloads.py:7798 msgid "Segment merge did not start" msgstr "세그먼트 병합이 시작되지 않았습니다" -#: .././downloads.py:7782 +#: .././downloads.py:7809 msgid "Segment merge completed, but path not detected" msgstr "세그먼트 병합이 완료되었지만, 경로가 인식되지 않았습니다" -#: .././downloads.py:7792 +#: .././downloads.py:7819 msgid "Segment merge completed, but output file not found" msgstr "세그먼트 병합이 완료되었지만, 출력 파일이 발견되지 않음" -#: .././downloads.py:7813 +#: .././downloads.py:7840 msgid "File moved to:" msgstr "파일 이동됨:" -#: .././downloads.py:7818 +#: .././downloads.py:7845 msgid "Livestream download is complete" msgstr "생방송 다운로드가 완료됨" -#: .././downloads.py:7823 +#: .././downloads.py:7850 msgid "Failed to move output file" msgstr "출력 파일을 이동하는 데 실패" -#: .././downloads.py:7991 +#: .././downloads.py:8018 #, python-brace-format msgid "Stream capture is frozen, trying again (restart #{0})" msgstr "스트림 캡처가 중지됨, 재시도 중 (재시작 #{0})" -#: .././downloads.py:7998 +#: .././downloads.py:8025 msgid "Stream capture is frozen, giving up" msgstr "스트림 캡처가 중지되어 포기함" @@ -8079,196 +8191,196 @@ msgid "Sunday" msgstr "" #. System folder names -#: .././formats.py:917 +#: .././formats.py:926 msgid "All Videos" msgstr "모든 비디오" -#: .././formats.py:918 +#: .././formats.py:927 msgid "Bookmarks" msgstr "북마크" -#: .././formats.py:919 +#: .././formats.py:928 msgid "Favourite Videos" msgstr "즐겨찾기" -#: .././formats.py:920 +#: .././formats.py:929 msgid "Livestreams" msgstr "생방송" -#: .././formats.py:921 +#: .././formats.py:930 msgid "Missing Videos" msgstr "사라진 비디오" -#: .././formats.py:922 +#: .././formats.py:931 msgid "New Videos" msgstr "새 비디오" -#: .././formats.py:924 +#: .././formats.py:933 msgid "Waiting Videos" msgstr "대기 비디오" -#: .././formats.py:925 +#: .././formats.py:934 msgid "Temporary Videos" msgstr "임시 비디오" -#: .././formats.py:926 +#: .././formats.py:935 msgid "Unsorted Videos" msgstr "정렬되지 않은 비디오" -#: .././formats.py:927 +#: .././formats.py:936 msgid "Video Clips" msgstr "" -#: .././formats.py:932 +#: .././formats.py:941 msgid "Update using default youtube-dl path" msgstr "기본 youtube-dl 경로를 이용해 업데이트" -#: .././formats.py:934 +#: .././formats.py:943 msgid "Update using local youtube-dl path" msgstr "로컬 youtube-dl 경로를 이용해 업데이트" -#: .././formats.py:936 +#: .././formats.py:945 msgid "Update using custom youtube-dl path" msgstr "커스텀 youtube-dl 경로를 이용해 업데이트" -#: .././formats.py:938 +#: .././formats.py:947 msgid "Update using pip" msgstr "pip를 이용해 업데이트" -#: .././formats.py:940 +#: .././formats.py:949 msgid "Update using pip (use --no-dependencies option)" msgstr "" -#: .././formats.py:942 +#: .././formats.py:951 msgid "Update using pip (omit --user option)" msgstr "pip를 이용해 업데이트 (--user 옵션 제외)" -#: .././formats.py:944 +#: .././formats.py:953 msgid "Update using pip3" msgstr "pip3를 이용해 업데이트" -#: .././formats.py:946 +#: .././formats.py:955 msgid "Update using pip3 (use --no-dependencies option)" msgstr "" -#: .././formats.py:948 +#: .././formats.py:957 msgid "Update using pip3 (omit --user option)" msgstr "pip3를 이용해 업데이트 (--user 옵션 제외)" -#: .././formats.py:950 +#: .././formats.py:959 msgid "Update using pip3 (recommended)" msgstr "pip3를 이용해 업데이트 (추천됨)" -#: .././formats.py:952 +#: .././formats.py:961 msgid "Update using PyPI youtube-dl path" msgstr "PyPI youtube-dl 경로를 이용해 업데이트" -#: .././formats.py:954 +#: .././formats.py:963 msgid "Windows 32-bit update (recommended)" msgstr "Windows 32비트 업데이트 (추천됨)" -#: .././formats.py:956 +#: .././formats.py:965 msgid "Windows 32-bit update (use --no-dependencies option)" msgstr "" -#: .././formats.py:958 +#: .././formats.py:967 msgid "Windows 64-bit update (recommended)" msgstr "Windows 64비트 업데이트 (추천됨)" -#: .././formats.py:960 +#: .././formats.py:969 msgid "Windows 64-bit update (use --no-dependencies option)" msgstr "" -#: .././formats.py:962 +#: .././formats.py:971 msgid "youtube-dl updates are disabled" msgstr "youtube-dl 업데이트가 비활성화됨" #. Download operation stages -#: .././formats.py:966 +#: .././formats.py:975 msgid "Queued" msgstr "대기열" -#: .././formats.py:967 +#: .././formats.py:976 msgid "Not started" msgstr "" -#: .././formats.py:968 +#: .././formats.py:977 msgid "Active" msgstr "활성" -#: .././formats.py:969 +#: .././formats.py:978 msgid "Paused" msgstr "일시정지" #. (not actually used) -#: .././formats.py:970 +#: .././formats.py:979 msgid "Completed" msgstr "완료" #. (not actually used) #. Sub-stages of the 'Error' stage -#: .././formats.py:971 .././formats.py:986 +#: .././formats.py:980 .././formats.py:995 msgid "Error" msgstr "오류" -#: .././formats.py:972 +#: .././formats.py:981 msgid "Stalled" msgstr "지연" #. Sub-stages of the 'Active' stage -#: .././formats.py:974 +#: .././formats.py:983 msgid "Pre-processing" msgstr "전처리 중" -#: .././formats.py:975 +#: .././formats.py:984 msgid "Downloading" msgstr "다운로드 중" -#: .././formats.py:976 +#: .././formats.py:985 msgid "Concatenating" msgstr "" -#: .././formats.py:977 +#: .././formats.py:986 msgid "Post-processing" msgstr "후처리 중" -#: .././formats.py:978 +#: .././formats.py:987 msgid "Capturing" msgstr "캡처중" #. Used by YTSC -#: .././formats.py:979 +#: .././formats.py:988 msgid "Merging" msgstr "병합중" #. Used by YTSC -#: .././formats.py:980 +#: .././formats.py:989 msgid "Checking" msgstr "확인중" #. Sub-stages of the 'Completed' stage -#: .././formats.py:982 +#: .././formats.py:991 msgid "Finished" msgstr "완료됨" -#: .././formats.py:983 +#: .././formats.py:992 msgid "Warning" msgstr "경고" -#: .././formats.py:984 +#: .././formats.py:993 msgid "Already downloaded" msgstr "이미 다운로드 됨" #. (not actually used) -#: .././formats.py:987 +#: .././formats.py:996 msgid "Stopped" msgstr "정지됨" -#: .././formats.py:988 +#: .././formats.py:997 msgid "Filesize abort" msgstr "파일크기 중단" -#: .././formats.py:998 +#: .././formats.py:1007 msgid "" "TRANSLATOR'S NOTE: ID refers to a video's unique ID on the website, e.g. on " "YouTube \"CS9OO0S5w2k\"" @@ -8276,23 +8388,23 @@ msgstr "" "TRANSLATOR'S NOTE: ID refers to a video's unique ID on the website, e.g. on " "YouTube \"CS9OO0S5w2k\"" -#: .././formats.py:1007 +#: .././formats.py:1016 msgid "ID" msgstr "ID" -#: .././formats.py:1008 +#: .././formats.py:1017 msgid "Title" msgstr "제목" -#: .././formats.py:1009 +#: .././formats.py:1018 msgid "Quality" msgstr "화질" -#: .././formats.py:1010 +#: .././formats.py:1019 msgid "Autonumber" msgstr "자동 번호" -#: .././formats.py:1022 +#: .././formats.py:1031 msgid "Any format" msgstr "아무 포맷" @@ -8370,7 +8482,7 @@ msgstr "TRANSLATOR'S NOTE: Source = video/channel/playlist URL" #. When the download operation is launched from the Classic Mode #. tab, there is less to display -#: .././media.py:553 .././media.py:1954 .././media.py:1970 +#: .././media.py:553 .././media.py:1976 .././media.py:1992 msgid "Source:" msgstr "원본:" @@ -8386,11 +8498,11 @@ msgstr "다운로드 목적지:" msgid "unavailable" msgstr "" -#: .././media.py:591 .././media.py:1986 +#: .././media.py:591 .././media.py:2008 msgid "Errors\\Warnings" msgstr "오류\\경고" -#: .././media.py:1925 +#: .././media.py:1947 msgid "" "TRANSLATOR'S NOTE: WAITING = livestream not started, LIVE = livestream " "started" @@ -8398,39 +8510,39 @@ msgstr "" "TRANSLATOR'S NOTE: WAITING = livestream not started, LIVE = livestream " "started" -#: .././media.py:1930 +#: .././media.py:1952 msgid "WAITING" msgstr "대기중" -#: .././media.py:1932 +#: .././media.py:1954 msgid "LIVE" msgstr "라이브" -#: .././media.py:1942 .././refresh.py:259 .././refresh.py:529 +#: .././media.py:1964 .././refresh.py:259 .././refresh.py:529 msgid "Channel:" msgstr "채널:" -#: .././media.py:1944 .././refresh.py:261 .././refresh.py:531 +#: .././media.py:1966 .././refresh.py:261 .././refresh.py:531 msgid "Playlist:" msgstr "플레이리스트:" -#: .././media.py:1946 .././refresh.py:263 .././refresh.py:533 +#: .././media.py:1968 .././refresh.py:263 .././refresh.py:533 msgid "Folder:" msgstr "폴더:" -#: .././media.py:1951 +#: .././media.py:1973 msgid "TRANSLATOR'S NOTE 2: Source = video/channel/playlist URL" msgstr "TRANSLATOR'S NOTE 2: Source = video/channel/playlist URL" -#: .././media.py:1960 .././media.py:1977 +#: .././media.py:1982 .././media.py:1999 msgid "File:" msgstr "파일:" -#: .././media.py:2976 .././media.py:3037 +#: .././media.py:3079 .././media.py:3140 msgid "Today" msgstr "오늘" -#: .././media.py:2978 .././media.py:3039 +#: .././media.py:3081 .././media.py:3142 msgid "Yesterday" msgstr "어제" @@ -8625,19 +8737,23 @@ msgstr "메타데이터(JSON) 파일들이 삭제됨:" msgid "Annotation files deleted:" msgstr "설명 파일들이 삭제됨:" -#: .././tidy.py:647 +#: .././tidy.py:649 msgid "Deleted (possibly) corrupted video file:" msgstr "(아마도) 삭제된 손상된 비디오 파일:" -#: .././tidy.py:662 .././tidy.py:1273 +#: .././tidy.py:662 +msgid "Failed to delete (possibly) corrupted video file:" +msgstr "" + +#: .././tidy.py:673 .././tidy.py:1271 msgid "Video file might be corrupt:" msgstr "비디오 파일들이 손상되어 있을 수 있음:" -#: .././tidy.py:703 +#: .././tidy.py:714 msgid "Video file exists:" msgstr "비디오 파일이 존재함:" -#: .././tidy.py:721 +#: .././tidy.py:732 msgid "Video file doesn't exist:" msgstr "비디오 파일이 존재하지 않음:" @@ -8662,6 +8778,18 @@ msgstr "업데이트 설치 작업이 시작됨 " msgid "Update did not start" msgstr "업데이트가 시작하지 않음" +#~ msgid "Remember the size of the main window when shutting down" +#~ msgstr "메인 윈도우를 종료 시 창 크기 기억" + +#~ msgid "Also remember the position of main window sliders" +#~ msgstr "메인 윈도우의 슬라이더 위치 또한 기억" + +#~ msgid "In the Progress tab, hide finished videos / channels / playlists" +#~ msgstr "작업 탭에서 완료한 비디오 / 채널 / 플레이리스트 숨기기" + +#~ msgid "In the Progress tab, show results in reverse order" +#~ msgstr "작업 탭에서, 결과를 반대로 보여주기" + #~ msgid "Imported" #~ msgstr "가져온것" diff --git a/locale/nl_NL/LC_MESSAGES/base.mo b/locale/nl_NL/LC_MESSAGES/base.mo index d7951c9c08a990bc959789d68ea5875d5aea5a90..2433d3a112581f8265d19440bf0e0fd2c697c23b 100644 GIT binary patch delta 34308 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 h#!N2t`v28Q9<}S-#T(Qyyj$\n" "Language-Team: \n" @@ -25,7 +25,7 @@ msgstr "Erg klein" msgid "Small" msgstr "Klein" -#: .././mainapp.py:319 .././config.py:5054 .././config.py:5132 +#: .././mainapp.py:319 .././config.py:5140 .././config.py:5218 msgid "Medium" msgstr "Normaal" @@ -37,7 +37,7 @@ msgstr "Groot" msgid "Enormous" msgstr "Enorm" -#: .././mainapp.py:991 +#: .././mainapp.py:996 msgid "" "Failed to convert a thumbnail from .webp to .jpg. No more conversions will " "be attempted until you install FFmpeg on your system, or (if FFmpeg is " @@ -50,177 +50,177 @@ msgstr "" "Herstart Tartube om het converteren opnieuw te proberen. Schakel " "miniatuurconversie uit om dit bericht niet meer te tonen." -#: .././mainapp.py:2997 +#: .././mainapp.py:3017 msgid "" "Tartube can't create the folder in which its configuration file is saved" msgstr "Tartube kan de configuratiemap niet aanmaken" #. Load/save has been disabled. Show the error message in a dialogue #. window, then shut down -#: .././mainapp.py:3044 +#: .././mainapp.py:3064 msgid "Tartube failed to start because:" msgstr "Tartube kan niet worden gestart. Reden:" -#: .././mainapp.py:3052 +#: .././mainapp.py:3072 msgid "If you don't know how to resolve this error, please contact the authors" msgstr "" "Als je niet weet hoe je dit moet oplossen, neem dan contact op met de makers" -#: .././mainapp.py:3280 +#: .././mainapp.py:3296 msgid "Because of an error, file load/save has been disabled" msgstr "Laden/Opslaan is uitgeschakeld omdat er een fout is opgetreden" -#: .././mainapp.py:3289 +#: .././mainapp.py:3305 msgid "Because of the error, file load/save has been disabled" msgstr "Laden/Opslaan is uitgeschakeld omdat er een fout is opgetreden" -#: .././mainapp.py:3377 +#: .././mainapp.py:3393 msgid "There is a download operation in progress." msgstr "Er worden items gedownload." -#: .././mainapp.py:3379 +#: .././mainapp.py:3395 msgid "There is an update operation in progress." msgstr "Er worden items bijgewerkt." -#: .././mainapp.py:3381 +#: .././mainapp.py:3397 msgid "There is a refresh operation in progress." msgstr "Er worden items ververst." -#: .././mainapp.py:3383 +#: .././mainapp.py:3399 msgid "There is an info operation in progress." msgstr "Er wordt een informatiehandeling uitgevoerd." -#: .././mainapp.py:3385 +#: .././mainapp.py:3401 msgid "There is a tidy operation in progress." msgstr "Er wordt een opruimactie uitgevoerd." -#: .././mainapp.py:3387 +#: .././mainapp.py:3403 msgid "There is a process operation in progress." msgstr "Er wordt een voortgangsactie uitgevoerd." -#: .././mainapp.py:3392 +#: .././mainapp.py:3408 msgid "Are you sure you want to quit Tartube?" msgstr "Weet je zeker dat je Tartube wilt afsluiten?" -#: .././mainapp.py:3597 +#: .././mainapp.py:3613 msgid "Failed to load the Tartube config file (failed sanity check)" msgstr "" "Het Tartube-configuratiebestand kan niet worden geladen (mislukte controle)" -#: .././mainapp.py:3620 +#: .././mainapp.py:3636 msgid "Failed to load the Tartube config file (file is locked)" msgstr "" "Het Tartube-configuratiebestand kan niet worden geladen (bestand is " "vergrendeld)" -#: .././mainapp.py:3650 +#: .././mainapp.py:3666 msgid "Failed to load the Tartube config file (JSON load failure)" msgstr "" "Het Tartube-configuratiebestand kan niet worden geladen (json-laadfout)" -#: .././mainapp.py:3668 +#: .././mainapp.py:3684 msgid "Failed to load the Tartube config file (file is invalid)" msgstr "" "Het Tartube-configuratiebestand kan niet worden geladen (bestand is " "beschadigd)" -#: .././mainapp.py:3686 +#: .././mainapp.py:3702 msgid "" "Failed to load the Tartube config file (file cannot be read by this version)" msgstr "" "Het Tartube-configuratiebestand kan niet worden geladen (bestand is " "verouderd)" -#: .././mainapp.py:3701 +#: .././mainapp.py:3717 msgid "Failed to load the Tartube config file (missing file type)" msgstr "" "Het Tartube-configuratiebestand kan niet worden geladen (ontbrekende " "bestandsextensie)" -#: .././mainapp.py:4720 +#: .././mainapp.py:4746 msgid "Failed to save the Tartube config file (failed sanity check)" msgstr "" "Het Tartube-configuratiebestand kan niet worden opgeslagen (mislukte " "controle)" -#: .././mainapp.py:5084 +#: .././mainapp.py:5115 msgid "Failed to save the Tartube config file (file is locked)" msgstr "" "Het Tartube-configuratiebestand kan niet worden opgeslagen (bestand is " "vergrendeld)" -#: .././mainapp.py:5086 .././mainapp.py:6744 .././mainapp.py:6800 -#: .././mainapp.py:6806 +#: .././mainapp.py:5117 .././mainapp.py:6789 .././mainapp.py:6845 +#: .././mainapp.py:6851 msgid "File load/save has been disabled" msgstr "Laden/Opslaan is uitgeschakeld" -#: .././mainapp.py:5105 +#: .././mainapp.py:5136 msgid "Failed to save the Tartube config file (file already in use)" msgstr "" "Het Tartube-configuratiebestand kan niet worden opgeslagen (bestand is in " "gebruik)" -#: .././mainapp.py:5124 +#: .././mainapp.py:5155 msgid "Failed to save the Tartube config file" msgstr "Het Tartube-configuratiebestand kan niet worden opgeslagen" -#: .././mainapp.py:5229 .././mainapp.py:5245 .././mainapp.py:5275 +#: .././mainapp.py:5260 .././mainapp.py:5276 .././mainapp.py:5306 msgid "Failed to load the Tartube database file" msgstr "Het Tartube-databankbestand kan niet worden geladen" -#: .././mainapp.py:5290 +#: .././mainapp.py:5321 msgid "The Tartube database file is invalid" msgstr "Het Tartube-databankbestand is beschadigd" -#: .././mainapp.py:5306 +#: .././mainapp.py:5337 msgid "Database file can't be read by this version of Tartube" msgstr "Het Tartube-databankbestand is verouderd" -#: .././mainapp.py:5667 +#: .././mainapp.py:5698 msgid "Tartube is applying an essential database update" msgstr "Tartube is bezig met het uitvoeren van een essentiële databankupdate" -#: .././mainapp.py:5669 +#: .././mainapp.py:5700 msgid "This might take a few minutes, so please be patient" msgstr "Dit kan een paar minuten duren" -#: .././mainapp.py:6738 .././mainapp.py:6796 .././mainapp.py:6805 +#: .././mainapp.py:6783 .././mainapp.py:6841 .././mainapp.py:6850 msgid "Failed to save the Tartube database file" msgstr "Het Tartube-databankbestand kan niet worden opgeslagen" -#: .././mainapp.py:6741 +#: .././mainapp.py:6786 msgid "(Could not make a backup copy of the existing file)" msgstr "(het bestaande bestand kan niet worden geback-upt)" -#: .././mainapp.py:6777 +#: .././mainapp.py:6822 msgid "Failed to save the Tartube database file (file already in use)" msgstr "" "Het Tartube-databankbestand kan niet worden opgeslagen (bestand is in " "gebruik)" -#: .././mainapp.py:6798 +#: .././mainapp.py:6843 msgid "A backup of the previous file can be found at:" msgstr "Er is een back-up gemaakt van het vorige bestand in:" -#: .././mainapp.py:6979 .././mainapp.py:6989 +#: .././mainapp.py:7021 .././mainapp.py:7031 msgid "Database file created" msgstr "Databankbestand aangemaakt" -#: .././mainapp.py:7388 +#: .././mainapp.py:7428 msgid "Tartube's database can't be checked while an operation is in progress" msgstr "" "Tartube's databank kan niet worden gecontroleerd tijdens uitvoeren van een " "handeling" -#: .././mainapp.py:7624 +#: .././mainapp.py:7664 msgid "Database check complete, no inconsistencies found" msgstr "Databankcontrole voltooid - geen fouten aangetroffen" -#: .././mainapp.py:7656 +#: .././mainapp.py:7696 msgid "Database check complete, problems found:" msgstr "Databankcontrole voltooid - fouten aangetroffen:" -#: .././mainapp.py:7659 +#: .././mainapp.py:7699 msgid "" "Do you want to repair these problems? (The database will be fixed, but no " "files will be deleted)" @@ -228,15 +228,15 @@ msgstr "" "Wil je deze fouten herstellen? (de databank wordt gerepareerd zonder " "bestanden te verwijderen)" -#: .././mainapp.py:7832 +#: .././mainapp.py:7872 msgid "Database inconsistencies repaired" msgstr "Databankfouten hersteld" -#: .././mainapp.py:8918 .././config.py:23466 +#: .././mainapp.py:9070 .././config.py:24448 msgid "Please select Tartube's data folder" msgstr "Kies Tartube's gegevensmap" -#: .././mainapp.py:9343 +#: .././mainapp.py:9495 msgid "" "A download operation cannot start if one or more configuration windows are " "still open" @@ -244,17 +244,17 @@ msgstr "" "Er kan geen download worden gestart zolang er één of meerdere " "instellingenvensters geopend zijn" -#: .././mainapp.py:9367 .././mainapp.py:9392 +#: .././mainapp.py:9519 .././mainapp.py:9544 #, python-brace-format msgid "You only have {0} / {1} Mb remaining on your device" msgstr "Je hebt slechts {0}/{1} MB resterende schijfruimte" -#: .././mainapp.py:9395 .././mainapp.py:15514 .././mainapp.py:15630 -#: .././mainapp.py:15812 .././mainwin.py:18762 +#: .././mainapp.py:9547 .././mainapp.py:15682 .././mainapp.py:15798 +#: .././mainapp.py:15980 .././mainwin.py:18831 msgid "Are you sure you want to continue?" msgstr "Weet je zeker dat je wilt doorgaan?" -#: .././mainapp.py:9490 +#: .././mainapp.py:9642 msgid "" "1. Copy URLs into the box at the top\n" "2. Select a destination and a format\n" @@ -262,44 +262,44 @@ msgid "" "4. Click 'Download all'" msgstr "" -#: .././mainapp.py:9498 +#: .././mainapp.py:9650 msgid "There is nothing to check!" msgstr "Er valt niks te controleren!" -#: .././mainapp.py:9502 +#: .././mainapp.py:9654 msgid "There is nothing to download!" msgstr "Er valt niks te downloaden!" -#: .././mainapp.py:9793 +#: .././mainapp.py:9947 msgid "Download operation complete" msgstr "Downloaden voltooid" -#: .././mainapp.py:9795 +#: .././mainapp.py:9949 msgid "Download operation halted" msgstr "Downloaden onderbroken" -#: .././mainapp.py:9799 +#: .././mainapp.py:9953 msgid "Videos downloaded:" msgstr "Gedownloade video's:" -#: .././mainapp.py:9800 .././config.py:24411 +#: .././mainapp.py:9954 .././config.py:25397 .././config.py:25454 msgid "Videos checked:" msgstr "Gecontroleerde video's:" -#: .././mainapp.py:9807 +#: .././mainapp.py:9961 msgid "Clips downloaded:" msgstr "" -#: .././mainapp.py:9810 +#: .././mainapp.py:9964 msgid "Video slices removed:" msgstr "" -#: .././mainapp.py:9814 .././mainapp.py:10491 .././mainapp.py:10985 -#: .././mainapp.py:11408 +#: .././mainapp.py:9968 .././mainapp.py:10648 .././mainapp.py:11138 +#: .././mainapp.py:11560 msgid "Time taken:" msgstr "Verstreken tijd:" -#: .././mainapp.py:9993 +#: .././mainapp.py:10150 msgid "" "An update operation cannot start if one or more configuration windows are " "still open" @@ -307,35 +307,35 @@ msgstr "" "Er kan geen update plaatsvinden zolang er één of meerdere " "instellingenvensters geopend zijn" -#: .././mainapp.py:10179 +#: .././mainapp.py:10336 msgid "Installation failed" msgstr "Installatie mislukt" -#: .././mainapp.py:10181 +#: .././mainapp.py:10338 msgid "Installation complete" msgstr "Installatie voltooid" -#: .././mainapp.py:10185 +#: .././mainapp.py:10342 msgid "Update operation failed" msgstr "Bijwerken mislukt" -#: .././mainapp.py:10187 +#: .././mainapp.py:10344 msgid "Update operation halted" msgstr "Bijwerken onderbroken" -#: .././mainapp.py:10189 +#: .././mainapp.py:10346 msgid "Update operation complete" msgstr "Bijwerken voltooid" -#: .././mainapp.py:10191 +#: .././mainapp.py:10348 msgid "version:" msgstr "versie:" -#: .././mainapp.py:10195 +#: .././mainapp.py:10352 msgid "(unknown)" msgstr "(onbekend)" -#: .././mainapp.py:10284 +#: .././mainapp.py:10441 msgid "" "A refresh operation cannot start if one or more configuration windows are " "still open" @@ -343,7 +343,7 @@ msgstr "" "Er kan geen verversactie plaatsvinden zolang er één of meerdere " "instellingenvensters geopend zijn" -#: .././mainapp.py:10297 +#: .././mainapp.py:10454 msgid "" "During a refresh operation, Tartube analyses its data folder, looking for " "videos that haven't yet been added to its database" @@ -351,7 +351,7 @@ msgstr "" "Tijdens het verversen wordt Tartube's gegevensmap doorzocht op video's die " "nog niet zijn toegevoegd aan de databank" -#: .././mainapp.py:10301 +#: .././mainapp.py:10458 msgid "" "You only need to perform a refresh operation if you have manually copied " "videos into Tartube's data folder" @@ -359,7 +359,7 @@ msgstr "" "Je hoeft alleen te verversen als je video's handmatig hebt gekopieerd naar " "Tartube's gegevensmap" -#: .././mainapp.py:10308 +#: .././mainapp.py:10465 msgid "" "Before starting a refresh operation, you should click the 'Check all' button " "in the main window" @@ -367,7 +367,7 @@ msgstr "" "Voordat je het verversen start, moet je op 'Alles controleren' in het " "hoofdvenster klikken" -#: .././mainapp.py:10315 +#: .././mainapp.py:10472 msgid "" "Before starting a refresh operation, you should right-click the channel and " "select 'Check channel'" @@ -375,7 +375,7 @@ msgstr "" "Voordat je het verversen start, moet je op 'Kanaal controleren' in het " "rechtermuisknopmenu van een kanaal klikken" -#: .././mainapp.py:10322 +#: .././mainapp.py:10479 msgid "" "Before starting a refresh operation, you should right-click the playlist and " "select 'Check playlist'" @@ -383,7 +383,7 @@ msgstr "" "Voordat je het verversen start, moet je op 'Afspeellijst controleren' in het " "rechtermuisknopmenu van een afspeellijst klikken" -#: .././mainapp.py:10329 +#: .././mainapp.py:10486 msgid "" "Before starting a refresh operation, you should right-click the folder and " "select 'Check folder'" @@ -391,19 +391,19 @@ msgstr "" "Voordat je het verversen start, moet je op 'Map controleren' in het " "rechtermuisknopmenu van een map klikken" -#: .././mainapp.py:10334 +#: .././mainapp.py:10491 msgid "Are you sure you want to proceed with the refresh operation?" msgstr "Weet je zeker dat je wilt doorgaan?" -#: .././mainapp.py:10486 +#: .././mainapp.py:10643 msgid "Refresh operation complete" msgstr "Verversen voltooid" -#: .././mainapp.py:10488 +#: .././mainapp.py:10645 msgid "Refresh operation halted" msgstr "Verversen onderbroken" -#: .././mainapp.py:10593 +#: .././mainapp.py:10750 msgid "" "An info operation cannot start if one or more configuration windows are " "still open" @@ -411,47 +411,47 @@ msgstr "" "Er kan geen informatiehandeling plaatsvinden zolang er één of meerdere " "instellingenvensters geopend zijn" -#: .././mainapp.py:10709 +#: .././mainapp.py:10863 msgid "Operation failed" msgstr "Handeling mislukt" -#: .././mainapp.py:10711 .././downloads.py:518 +#: .././mainapp.py:10865 .././downloads.py:518 msgid "Operation complete" msgstr "Handeling voltooid" -#: .././mainapp.py:10713 +#: .././mainapp.py:10867 msgid "Click the Output tab to see the results" msgstr "Klik op het tabblad 'Uitvoer' om de resultaten te bekijken" -#: .././mainapp.py:10726 +#: .././mainapp.py:10880 msgid "A new release is available!" msgstr "Er is een nieuwe versie beschikbaar!" -#: .././mainapp.py:10728 +#: .././mainapp.py:10882 msgid "Your installation is up to date!" msgstr "Je installatie is actueel!" -#: .././mainapp.py:10730 +#: .././mainapp.py:10884 msgid "Installed version:" msgstr "Geïnstalleerde versie:" -#: .././mainapp.py:10735 +#: .././mainapp.py:10889 msgid "Stable release:" msgstr "Stabiele uitgave:" -#: .././mainapp.py:10740 +#: .././mainapp.py:10894 msgid "Stable release: not found" msgstr "Stabiele uitgave: niet gevonden" -#: .././mainapp.py:10743 +#: .././mainapp.py:10897 msgid "Development release:" msgstr "Ontwikkelingsuitgave:" -#: .././mainapp.py:10745 +#: .././mainapp.py:10899 msgid "Development release: not found" msgstr "Ontwikkelingsuitgave: niet gevonden" -#: .././mainapp.py:10852 +#: .././mainapp.py:11005 msgid "" "A tidy operation cannot start if one or more configuration windows are still " "open" @@ -459,39 +459,39 @@ msgstr "" "Er kan geen opruimactie plaatsvinden zolang er één of meerdere " "instellingenvensters geopend zijn" -#: .././mainapp.py:10980 +#: .././mainapp.py:11133 msgid "Tidy operation complete" msgstr "Opruimen voltooid" -#: .././mainapp.py:10982 +#: .././mainapp.py:11135 msgid "Tidy operation halted" msgstr "Opruimen onderbroken" -#: .././mainapp.py:11149 .././mainwin.py:19518 +#: .././mainapp.py:11301 .././mainwin.py:19600 msgid "Livestream has started" msgstr "De livestream is begonnen" -#: .././mainapp.py:11397 +#: .././mainapp.py:11549 msgid "Process operation complete" msgstr "Voortgangsactie voltooid" -#: .././mainapp.py:11399 +#: .././mainapp.py:11551 msgid "Process operation halted" msgstr "Voortgangsactie onderbroken" -#: .././mainapp.py:11403 +#: .././mainapp.py:11555 msgid "Files processed:" msgstr "Verwerkte bestanden:" -#: .././mainapp.py:11404 +#: .././mainapp.py:11556 msgid "Errors:" msgstr "Fouten:" -#: .././mainapp.py:12712 .././mainapp.py:12899 +#: .././mainapp.py:12871 .././mainapp.py:13070 msgid "Cannot move anything to:" msgstr "Kan niks verplaatsen naar:" -#: .././mainapp.py:12714 .././mainapp.py:12901 +#: .././mainapp.py:12873 .././mainapp.py:13072 msgid "" "because a file or folder with the same name already exists (although " "Tartube's database doesn't know anything about it)" @@ -499,7 +499,7 @@ msgstr "" "omdat er al een bestand of map met dezelfde naam is (hoewel Tartube's " "databank daar niks van afweet)" -#: .././mainapp.py:12718 +#: .././mainapp.py:12877 msgid "" "You probably created that file/folder accidentally, in which case you should " "delete it manually before trying again" @@ -507,19 +507,19 @@ msgstr "" "Waarschijnlijk heb je het bestand/de map per ongeluk aangemaakt. Als dat zo " "is, verwijder deze dan voordat je het opnieuw probeert." -#: .././mainapp.py:12732 .././mainapp.py:12919 +#: .././mainapp.py:12891 .././mainapp.py:13090 msgid "Are you sure you want to move this channel:" msgstr "Weet je zeker dat je het volgende kanaal wilt verplaatsen:" -#: .././mainapp.py:12734 .././mainapp.py:12921 +#: .././mainapp.py:12893 .././mainapp.py:13092 msgid "Are you sure you want to move this playlist:" msgstr "Weet je zeker dat je de volgende afspeellijst wilt verplaatsen:" -#: .././mainapp.py:12736 .././mainapp.py:12923 +#: .././mainapp.py:12895 .././mainapp.py:13094 msgid "Are you sure you want to move this folder:" msgstr "Weet je zeker dat je de volgende map wilt verplaatsen:" -#: .././mainapp.py:12741 +#: .././mainapp.py:12900 msgid "" "This procedure will move all downloaded files to the top level of Tartube's " "data folder" @@ -527,29 +527,34 @@ msgstr "" "Deze handeling verplaatst alle gedownloade bestanden naar het bovenste " "niveau van Tartube's gegevensmap" -#: .././mainapp.py:12841 +#: .././mainapp.py:12941 .././mainapp.py:13152 +#, python-brace-format +msgid "Could not move '{0}' (filesystem error)" +msgstr "" + +#: .././mainapp.py:13012 msgid "Channels, playlists and folders can only be dragged into a folder" msgstr "" "Kanalen, afspeellijsten en mappen kunnen alleen worden versleept naar een map" -#: .././mainapp.py:12854 +#: .././mainapp.py:13025 #, python-brace-format msgid "The fixed folder '{0}' cannot be moved (but it can still be hidden)" msgstr "" "De vastgezette map '{0}' kan niet worden verplaatst (maar kan wél worden " "verborgen)" -#: .././mainapp.py:12867 +#: .././mainapp.py:13038 #, python-brace-format msgid "The folder '{0}' can only contain videos" msgstr "De map '{0}' mag alleen video's bevatten" -#: .././mainapp.py:12879 +#: .././mainapp.py:13050 #, python-brace-format msgid "The folder '{0}' can only contain other folders and videos" msgstr "" -#: .././mainapp.py:12906 +#: .././mainapp.py:13077 msgid "" "You probably created that file/folder accidentally, in which case, you " "should delete it manually before trying again" @@ -557,16 +562,16 @@ msgstr "" "Waarschijnlijk heb je het bestand/de map per ongeluk aangemaakt. Als dat zo " "is, verwijder deze dan voordat je het opnieuw probeert." -#: .././mainapp.py:12925 +#: .././mainapp.py:13096 msgid "into this folder:" msgstr "naar deze map:" -#: .././mainapp.py:12929 +#: .././mainapp.py:13100 msgid "This procedure will move all downloaded files to the new location" msgstr "" "Deze handeling verplaatst alle gedownloade bestanden naar de nieuwe locatie" -#: .././mainapp.py:12935 .././mainapp.py:13064 +#: .././mainapp.py:13106 .././mainapp.py:13244 msgid "" "WARNING: The destination folder is marked as temporary, so everything inside " "it will be DELETED when Tartube restarts!" @@ -574,141 +579,141 @@ msgstr "" "WAARSCHUWING: de bestemming is aangemerkt als 'tijdelijk', dus alle inhoud " "wordt VERWIJDERD als je Tartube herstart!" -#: .././mainapp.py:13042 +#: .././mainapp.py:13222 msgid "Videos cannot be dragged into this folder" msgstr "" -#: .././mainapp.py:13052 +#: .././mainapp.py:13232 #, python-brace-format msgid "Are you sure you want to move the video to '{0}'?" msgstr "" -#: .././mainapp.py:13058 +#: .././mainapp.py:13238 #, python-brace-format msgid "Are you sure you want to move '{0}' videos to '{1}'?" msgstr "" #. Show confirmation dialogue -#: .././mainapp.py:13211 +#: .././mainapp.py:13382 msgid "Videos moved" msgstr "" -#: .././mainapp.py:13212 +#: .././mainapp.py:13383 msgid "Videos not moved:" msgstr "" -#: .././mainapp.py:13620 +#: .././mainapp.py:13791 msgid "" "Are you SURE you want to delete files? This procedure cannot be reversed!" msgstr "" "Weet je ZEKER dat je deze bestanden wilt verwijderen? Dit kan niet ongedaan " "worden gemaakt!" -#: .././mainapp.py:15498 .././mainapp.py:15614 .././mainapp.py:15796 +#: .././mainapp.py:15666 .././mainapp.py:15782 .././mainapp.py:15964 #, python-brace-format msgid "The channel contains {0} item(s), so this action may take a while" msgstr "Het kanaal bevat {0} item(s), dus het kan even duren" -#: .././mainapp.py:15504 .././mainapp.py:15620 .././mainapp.py:15802 +#: .././mainapp.py:15672 .././mainapp.py:15788 .././mainapp.py:15970 #, python-brace-format msgid "The playlist contains {0} item(s), so this action may take a while" msgstr "De afspeellijst bevat {0} item(s), dus het kan even duren" -#: .././mainapp.py:15510 .././mainapp.py:15626 .././mainapp.py:15808 +#: .././mainapp.py:15678 .././mainapp.py:15794 .././mainapp.py:15976 #, python-brace-format msgid "The folder contains {0} item(s), so this action may take a while" msgstr "De map bevat {0} item(s), dus het kan even duren" -#: .././mainapp.py:15876 .././mainapp.py:21383 .././mainapp.py:21515 -#: .././mainapp.py:21646 .././config.py:22802 +#: .././mainapp.py:16044 .././mainapp.py:21553 .././mainapp.py:21685 +#: .././mainapp.py:21816 .././config.py:23784 #, python-brace-format msgid "The name '{0}' is not allowed" msgstr "De naam '{0}' is niet toegestaan" -#: .././mainapp.py:15885 .././config.py:22793 +#: .././mainapp.py:16053 .././config.py:23775 #, python-brace-format msgid "The name '{0}' is already in use" msgstr "De naam '{0}' is al in gebruik" -#: .././mainapp.py:15898 +#: .././mainapp.py:16063 #, python-brace-format msgid "Failed to rename '{0}'" msgstr "De naam van '{0}' kan niet worden gewijzigd" #. Confirm the result -#: .././mainapp.py:16105 +#: .././mainapp.py:16267 msgid "Search/replace complete" msgstr "" -#: .././mainapp.py:16106 +#: .././mainapp.py:16268 #, python-brace-format msgid "Updated URLs: {0}" msgstr "" -#: .././mainapp.py:16107 +#: .././mainapp.py:16269 #, python-brace-format msgid "Errors: {0}" msgstr "" -#: .././mainapp.py:16382 +#: .././mainapp.py:16544 msgid "Select where to save the database export" msgstr "Kies de map waarnaar de databank moet worden geëxporteerd" -#: .././mainapp.py:16507 +#: .././mainapp.py:16669 msgid "There is nothing to export!" msgstr "Er valt niks te exporteren!" -#: .././mainapp.py:16547 .././mainapp.py:16591 .././mainapp.py:16635 +#: .././mainapp.py:16709 .././mainapp.py:16753 .././mainapp.py:16797 msgid "Failed to save the database export file:" msgstr "Het databank-exportbestand kan niet worden opgeslagen:" -#: .././mainapp.py:16643 +#: .././mainapp.py:16805 msgid "Database export file saved to:" msgstr "Het databank-exportbestand is opgeslagen in:" -#: .././mainapp.py:16862 +#: .././mainapp.py:17024 msgid "Select the database export" msgstr "Kies de databankexport" -#: .././mainapp.py:16880 .././mainapp.py:16891 .././mainapp.py:16925 +#: .././mainapp.py:17042 .././mainapp.py:17053 .././mainapp.py:17087 msgid "Failed to load the database export file" msgstr "Het databank-exportbestand kan niet worden geladen" -#: .././mainapp.py:16908 +#: .././mainapp.py:17070 msgid "The database export file is invalid" msgstr "Het databank-exportbestand is beschadigd" -#: .././mainapp.py:16939 +#: .././mainapp.py:17101 msgid "The database export file is invalid (or empty)" msgstr "Het databank-exportbestand is beschadigd (of blanco)" -#: .././mainapp.py:16983 +#: .././mainapp.py:17145 msgid "Nothing was imported from the database export file" msgstr "Er is niks geïmporteerd uit het databank-exportbestand" #. Show a confirmation -#: .././mainapp.py:16997 +#: .././mainapp.py:17159 msgid "Imported into database" msgstr "" -#: .././mainapp.py:16998 .././mainwin.py:1375 .././config.py:890 -#: .././config.py:14578 .././config.py:17495 +#: .././mainapp.py:17160 .././mainwin.py:1375 .././config.py:922 +#: .././config.py:15230 .././config.py:18227 msgid "Videos" msgstr "Video's" -#: .././mainapp.py:16999 .././config.py:14611 .././config.py:17528 +#: .././mainapp.py:17161 .././config.py:15263 .././config.py:18260 msgid "Channels" msgstr "Kanalen" -#: .././mainapp.py:17000 .././config.py:14622 .././config.py:17539 +#: .././mainapp.py:17162 .././config.py:15274 .././config.py:18271 msgid "Playlists" msgstr "Afspeellijsten" -#: .././mainapp.py:17001 +#: .././mainapp.py:17163 msgid "Folders" msgstr "Mappen" -#: .././mainapp.py:17673 +#: .././mainapp.py:17835 msgid "" "The video file is missing from Tartube's data folder (try downloading the " "video again!)" @@ -716,135 +721,135 @@ msgstr "" "De video is niet aanwezig in Tartube's gegevensmap. Probeer de video opnieuw " "te downloaden." -#: .././mainapp.py:18043 +#: .././mainapp.py:18205 msgid "Select where to save the custom download export" msgstr "" -#: .././mainapp.py:18100 +#: .././mainapp.py:18262 msgid "Failed to save the custom download export file:" msgstr "" -#: .././mainapp.py:18108 +#: .././mainapp.py:18270 msgid "Custom download exported to:" msgstr "" -#: .././mainapp.py:18139 +#: .././mainapp.py:18301 msgid "Select the custom download export file" msgstr "" -#: .././mainapp.py:18158 +#: .././mainapp.py:18320 msgid "Failed to load the custom download export file" msgstr "" -#: .././mainapp.py:18175 +#: .././mainapp.py:18337 msgid "The custom download export file is invalid" msgstr "" -#: .././mainapp.py:18186 +#: .././mainapp.py:18348 msgid "The custom download export file is invalid (or empty)" msgstr "" -#: .././mainapp.py:18713 .././mainapp.py:19095 +#: .././mainapp.py:18875 .././mainapp.py:19257 msgid "Select where to save the options export" msgstr "Kies de map waarnaar de opties moeten worden geëxporteerd" -#: .././mainapp.py:18761 .././mainapp.py:19143 +#: .././mainapp.py:18923 .././mainapp.py:19305 msgid "Failed to save the options export file:" msgstr "Het opties-exportbestand kan niet worden opgeslagen:" -#: .././mainapp.py:18769 +#: .././mainapp.py:18931 msgid "Download options exported to to:" msgstr "De downloadopties zijn geëxporteerd naar:" -#: .././mainapp.py:18800 .././mainapp.py:19182 +#: .././mainapp.py:18962 .././mainapp.py:19344 msgid "Select the options export file" msgstr "Kies het opties-exportbestand" -#: .././mainapp.py:18819 .././mainapp.py:19201 +#: .././mainapp.py:18981 .././mainapp.py:19363 msgid "Failed to load the options export file" msgstr "Het opties-exportbestand kan niet worden geladen" -#: .././mainapp.py:18836 .././mainapp.py:19218 +#: .././mainapp.py:18998 .././mainapp.py:19380 msgid "The options export file is invalid" msgstr "Het opties-exportbestand is beschadigd" -#: .././mainapp.py:18847 .././mainapp.py:19229 +#: .././mainapp.py:19009 .././mainapp.py:19391 msgid "The options export file is invalid (or empty)" msgstr "Het opties-exportbestand is beschadigd (of blanco)" -#: .././mainapp.py:19151 +#: .././mainapp.py:19313 msgid "FFmpeg options exported to to:" msgstr "De FFmpeg-opties zijn geëxporteerd naar:" -#: .././mainapp.py:20144 +#: .././mainapp.py:20314 msgid "Please select a destination folder" msgstr "Kies een bestemming" #. Prompt for confirmation -#: .././mainapp.py:20216 +#: .././mainapp.py:20386 msgid "Are you sure you want to clear this list?" msgstr "Weet je zeker dat je deze lijst wilt wissen?" #. Prompt for confirmation -#: .././mainapp.py:20263 +#: .././mainapp.py:20433 msgid "Are you sure you want to clear downloaded videos?" msgstr "Weet je zeker dat je de gedownloade video's wilt verwijderen?" -#: .././mainapp.py:20366 .././mainwin.py:15571 +#: .././mainapp.py:20536 .././mainwin.py:15592 msgid "Only checked/downloaded videos can be processed by FFmpeg" msgstr "FFmpeg kan alleen aangekruiste/gedownloade video's verwerken" -#: .././mainapp.py:20483 +#: .././mainapp.py:20653 msgid "No video(s) have been downloaded" msgstr "Je hebt nog geen video's gedownload" #. Prompt for confirmation -#: .././mainapp.py:20625 +#: .././mainapp.py:20795 msgid "Are you sure you want to remove the selected item(s)?" msgstr "Weet je zeker dat je de geselecteerde items wilt verwijderen?" -#: .././mainapp.py:21374 +#: .././mainapp.py:21544 msgid "You must give the channel a name" msgstr "Geef het kanaal een naam" -#: .././mainapp.py:21392 .././mainapp.py:21655 +#: .././mainapp.py:21562 .././mainapp.py:21825 msgid "You must enter a valid URL" msgstr "Voer een geldige url in" -#: .././mainapp.py:21507 +#: .././mainapp.py:21677 msgid "You must give the folder a name" msgstr "Geef de map een naam" -#: .././mainapp.py:21637 +#: .././mainapp.py:21807 msgid "You must give the playlist a name" msgstr "Geef de afspeellijst een naam" -#: .././mainapp.py:21792 +#: .././mainapp.py:21962 msgid "The following videos are duplicates:" msgstr "De volgende video's zijn dubbel:" -#: .././mainapp.py:21856 +#: .././mainapp.py:22026 msgid "There were no livestream alerts to cancel" msgstr "Er zijn nog geen livestream-meldingen op dit kanaal" -#: .././mainapp.py:21858 +#: .././mainapp.py:22028 msgid "Livestream alerts for 1 video were cancelled" msgstr "De livestream-melding van 1 video is gedempt" -#: .././mainapp.py:21861 +#: .././mainapp.py:22031 #, python-brace-format msgid "Livestream alerts for {0} videos were cancelled" msgstr "De livestream-melding van {0} video's is afgebroken" -#: .././mainapp.py:22249 +#: .././mainapp.py:22419 msgid "All Tartube data has been saved" msgstr "Alle Tartube-gegevens zijn opgeslagen" -#: .././mainapp.py:22279 +#: .././mainapp.py:22449 msgid "Database saved" msgstr "De databank is opgeslagen" -#: .././mainapp.py:22564 .././mainwin.py:14383 +#: .././mainapp.py:22734 .././mainwin.py:14404 msgid "" "Files cannot be recovered, after being deleted. Are you sure you want to " "continue?" @@ -854,39 +859,39 @@ msgstr "" #. Because livestream operations run silently in the background, when #. the user goes to the trouble of clicking a menu item in the #. main window's menu, tell them why nothing is happening -#: .././mainapp.py:22604 +#: .././mainapp.py:22774 msgid "Cannot update existing livestreams because" msgstr "De livestreams kunnen niet worden bijgewerkt omdat" -#: .././mainapp.py:22606 +#: .././mainapp.py:22776 msgid "there is another operation running" msgstr "er een andere handeling wordt uitgevoerd" -#: .././mainapp.py:22608 +#: .././mainapp.py:22778 msgid "they are currently being updated" msgstr "ze al worden bijgewerkt" -#: .././mainapp.py:22610 +#: .././mainapp.py:22780 msgid "one or more configuration windows are open" msgstr "er één of meerdere instellingenvensters geopend zijn" -#: .././mainapp.py:22612 +#: .././mainapp.py:22782 msgid "there are no livestreams to update" msgstr "er geen bij te werken livestreams zijn" -#: .././mainapp.py:22686 +#: .././mainapp.py:22856 msgid "There is already a channel with that name" msgstr "Er is al een kanaal met deze naam" -#: .././mainapp.py:22688 +#: .././mainapp.py:22858 msgid "There is already a playlist with that name" msgstr "Er is al een afspeellijst met deze naam" -#: .././mainapp.py:22690 +#: .././mainapp.py:22860 msgid "There is already a folder with that name" msgstr "Er is al een map met deze naam" -#: .././mainapp.py:22693 +#: .././mainapp.py:22863 msgid "(so please choose a different name)" msgstr "(geef een andere naam op)" @@ -896,7 +901,7 @@ msgstr "" "Tartube kan niet worden gestart omdat de pictogrammenmap niet is aangetroffen" #. File column -#: .././mainwin.py:1025 .././config.py:9014 +#: .././mainwin.py:1025 .././config.py:9173 msgid "_File" msgstr "_Bestand" @@ -921,7 +926,7 @@ msgid "_Close to tray" msgstr "Minimaliseren naar s_ysteemvak" #. Quit -#: .././mainwin.py:1067 .././mainwin.py:24335 +#: .././mainwin.py:1067 .././mainwin.py:24436 msgid "_Quit" msgstr "_Afsluiten" @@ -939,7 +944,7 @@ msgid "_General download options..." msgstr "Al_gemene downloadopties..." #. Media column -#: .././mainwin.py:1091 .././config.py:15303 +#: .././mainwin.py:1091 .././config.py:15952 msgid "_Media" msgstr "_Media" @@ -993,17 +998,17 @@ msgstr "Testcode uitvoe_ren" #. Operations column #. Add this tab... -#: .././mainwin.py:1192 .././config.py:18991 +#: .././mainwin.py:1192 .././config.py:19774 msgid "_Operations" msgstr "_Handelingen" #. Check all -#: .././mainwin.py:1199 .././mainwin.py:24306 +#: .././mainwin.py:1199 .././mainwin.py:24407 msgid "_Check all" msgstr "Alles _controleren" #. Download all -#: .././mainwin.py:1205 .././mainwin.py:24313 +#: .././mainwin.py:1205 .././mainwin.py:24414 msgid "_Download all" msgstr "Alles _downloaden" @@ -1019,7 +1024,7 @@ msgstr "Databank ve_rversen..." msgid "U_pdate" msgstr "Bijwer_ken" -#: .././mainwin.py:1236 .././mainwin.py:3396 +#: .././mainwin.py:1236 .././mainwin.py:3419 msgid "_Test" msgstr "_Testen" @@ -1031,7 +1036,7 @@ msgstr "FFmpeg _installeren..." msgid "Tidy up _files..." msgstr "Bestanden _opruimen..." -#: .././mainwin.py:1267 .././mainwin.py:24324 +#: .././mainwin.py:1267 .././mainwin.py:24425 msgid "_Stop current operation" msgstr "Huidige handeling af_breken" @@ -1081,7 +1086,7 @@ msgstr "_Feedback versturen" msgid "Add new video(s)" msgstr "Video('s) toevoegen" -#: .././mainwin.py:1394 .././mainwin.py:22943 .././media.py:82 +#: .././mainwin.py:1394 .././mainwin.py:23042 .././media.py:82 msgid "Channel" msgstr "Kanaal" @@ -1089,7 +1094,7 @@ msgstr "Kanaal" msgid "Add a new channel" msgstr "Kanaal toevoegen" -#: .././mainwin.py:1415 .././mainwin.py:22945 .././media.py:84 +#: .././mainwin.py:1415 .././mainwin.py:23044 .././media.py:84 msgid "Playlist" msgstr "Afspeellijst" @@ -1097,7 +1102,7 @@ msgstr "Afspeellijst" msgid "Add a new playlist" msgstr "Afspeellijst toevoegen" -#: .././mainwin.py:1436 .././mainwin.py:22947 .././media.py:86 +#: .././mainwin.py:1436 .././mainwin.py:23046 .././media.py:86 msgid "Folder" msgstr "Map" @@ -1105,12 +1110,12 @@ msgstr "Map" msgid "Add a new folder" msgstr "Map toevoegen" -#: .././mainwin.py:1460 .././config.py:18821 +#: .././mainwin.py:1460 .././config.py:19600 msgid "Check" msgstr "Controleren" -#: .././mainwin.py:1471 .././mainwin.py:1715 .././mainwin.py:3927 -#: .././mainwin.py:4208 +#: .././mainwin.py:1471 .././mainwin.py:1715 .././mainwin.py:3950 +#: .././mainwin.py:4231 msgid "Check all videos, channels, playlists and folders" msgstr "Controleer alle video's, kanalen, afspeellijsten en mappen" @@ -1120,23 +1125,22 @@ msgstr "Controleer alle video's, kanalen, afspeellijsten en mappen" #. then use a Glib timer to restore it (after some small fraction of a #. second) #. Link not clickable -#: .././mainwin.py:1481 .././mainwin.py:20746 .././mainwin.py:20758 -#: .././mainwin.py:20763 .././mainwin.py:20771 .././mainwin.py:21049 -#: .././mainwin.py:21061 .././mainwin.py:21796 .././mainwin.py:23132 -#: .././mainwin.py:23144 .././mainwin.py:23170 .././config.py:18697 -#: .././config.py:18823 +#: .././mainwin.py:1481 .././mainwin.py:20840 .././mainwin.py:20852 +#: .././mainwin.py:20857 .././mainwin.py:20865 .././mainwin.py:21143 +#: .././mainwin.py:21155 .././mainwin.py:21890 .././mainwin.py:23231 +#: .././mainwin.py:23243 .././mainwin.py:23269 .././config.py:19476 +#: .././config.py:19602 msgid "Download" msgstr "Downloaden" -#: .././mainwin.py:1492 .././mainwin.py:1723 .././mainwin.py:3935 -#: .././mainwin.py:4214 +#: .././mainwin.py:1492 .././mainwin.py:1723 .././mainwin.py:3958 +#: .././mainwin.py:4237 msgid "Download all videos, channels, playlists and folders" msgstr "Download alle video's, kanalen, afspeellijsten en mappen" -#: .././mainwin.py:1507 .././mainwin.py:28473 .././config.py:9703 -#: .././config.py:9892 .././config.py:9967 .././config.py:10355 -#: .././config.py:10566 .././config.py:10641 .././config.py:12985 -#: .././config.py:13163 .././config.py:13218 +#: .././mainwin.py:1507 .././config.py:9858 .././config.py:10043 +#: .././config.py:10498 .././config.py:10705 .././config.py:13130 +#: .././config.py:13303 msgid "Stop" msgstr "Afbreken" @@ -1144,7 +1148,7 @@ msgstr "Afbreken" msgid "Stop the current operation" msgstr "Breek de huidige handeling af" -#: .././mainwin.py:1531 .././config.py:16723 +#: .././mainwin.py:1531 .././config.py:17403 msgid "Switch" msgstr "Andere weergave" @@ -1152,19 +1156,19 @@ msgstr "Andere weergave" msgid "Switch between simple and complex views" msgstr "Schakel tussen de eenvoudige en uitgebreide weergave" -#: .././mainwin.py:1555 .././mainwin.py:3443 +#: .././mainwin.py:1555 .././mainwin.py:3466 msgid "Hide" msgstr "Verbergen" -#: .././mainwin.py:1557 .././mainwin.py:3450 +#: .././mainwin.py:1557 .././mainwin.py:3473 msgid "Show" msgstr "Tonen" -#: .././mainwin.py:1569 .././mainwin.py:3445 +#: .././mainwin.py:1569 .././mainwin.py:3468 msgid "Hide (most) system folders" msgstr "(Meeste) systeemmappen verbergen" -#: .././mainwin.py:1573 .././mainwin.py:3452 +#: .././mainwin.py:1573 .././mainwin.py:3475 msgid "Show all system folders" msgstr "Alle systeemmappen tonen" @@ -1176,8 +1180,8 @@ msgstr "Afsluiten" msgid "Close Tartube" msgstr "Tartube sluiten" -#: .././mainwin.py:1620 .././config.py:5747 .././config.py:10771 -#: .././config.py:16977 .././config.py:17913 +#: .././mainwin.py:1620 .././config.py:5856 .././config.py:10919 +#: .././config.py:17665 .././config.py:18658 msgid "_Videos" msgstr "_Video's" @@ -1189,34 +1193,34 @@ msgstr "_Voortgang" msgid "_Classic Mode" msgstr "_Klassieke modus" -#: .././mainwin.py:1645 .././config.py:5473 +#: .././mainwin.py:1645 .././config.py:5574 msgid "_Output" msgstr "Uitv_oer" -#: .././mainwin.py:1654 .././config.py:13319 .././config.py:14238 +#: .././mainwin.py:1654 .././config.py:13905 .././config.py:14895 msgid "_Errors / Warnings" msgstr "Fout_en/Waarschuwingen" -#: .././mainwin.py:1713 .././mainwin.py:3925 .././mainwin.py:4205 +#: .././mainwin.py:1713 .././mainwin.py:3948 .././mainwin.py:4228 msgid "Check all" msgstr "Alles controleren" -#: .././mainwin.py:1721 .././mainwin.py:3033 .././mainwin.py:3933 -#: .././mainwin.py:17576 +#: .././mainwin.py:1721 .././mainwin.py:3033 .././mainwin.py:3956 +#: .././mainwin.py:17645 msgid "Download all" msgstr "Alles downloaden" -#: .././mainwin.py:1739 .././mainwin.py:3037 .././mainwin.py:3951 -#: .././mainwin.py:17567 +#: .././mainwin.py:1739 .././mainwin.py:3037 .././mainwin.py:3974 +#: .././mainwin.py:17636 msgid "Custom download all" msgstr "" -#: .././mainwin.py:1742 .././mainwin.py:3954 .././mainwin.py:4228 +#: .././mainwin.py:1742 .././mainwin.py:3977 .././mainwin.py:4251 msgid "" "Perform a custom download of all videos, channels, playlists and folders" msgstr "" -#: .././mainwin.py:1759 .././mainwin.py:3971 .././mainwin.py:4235 +#: .././mainwin.py:1759 .././mainwin.py:3994 .././mainwin.py:4258 msgid "Select the custom download to use" msgstr "" @@ -1261,7 +1265,7 @@ msgstr "Omhoog scrollen" msgid "Scroll down" msgstr "Omlaag scrollen" -#: .././mainwin.py:1977 .././mainwin.py:4414 +#: .././mainwin.py:1977 .././mainwin.py:4437 msgid "Show more settings" msgstr "Meer instellingen tonen" @@ -1269,14 +1273,14 @@ msgstr "Meer instellingen tonen" msgid "Sort" msgstr "Sorteren" -#: .././mainwin.py:1996 .././config.py:12720 +#: .././mainwin.py:1996 .././config.py:12867 msgid "Upload time" msgstr "Uploadtijd" -#: .././mainwin.py:1997 .././mainwin.py:3198 .././mainwin.py:24728 -#: .././mainwin.py:27302 .././config.py:2829 .././config.py:10796 -#: .././config.py:17243 .././config.py:18697 .././config.py:19525 -#: .././config.py:21160 .././config.py:21427 +#: .././mainwin.py:1997 .././mainwin.py:3198 .././mainwin.py:24828 +#: .././mainwin.py:27404 .././config.py:2860 .././config.py:10943 +#: .././config.py:17967 .././config.py:19476 .././config.py:20325 +#: .././config.py:22077 .././config.py:22352 msgid "Name" msgstr "Naam" @@ -1312,7 +1316,7 @@ msgstr "Filteren" msgid "Enter search text" msgstr "Voer zoektekst in" -#: .././mainwin.py:2107 .././config.py:17297 +#: .././mainwin.py:2107 .././config.py:18021 msgid "Regex" msgstr "Regex" @@ -1344,7 +1348,7 @@ msgstr "Video's zoeken op datum annuleren" msgid "TRANSLATOR'S NOTE: Ext is short for a file extension, e.g. .EXE" msgstr "TRANSLATOR'S NOTE: Ext is short for a file extension, e.g. .EXE" -#: .././mainwin.py:2252 .././mainwin.py:2859 .././config.py:9157 +#: .././mainwin.py:2252 .././mainwin.py:2859 .././config.py:9315 msgid "Source" msgstr "Bron" @@ -1368,11 +1372,11 @@ msgstr "Snelheid" msgid "ETA" msgstr "Verwacht" -#: .././mainwin.py:2340 .././config.py:14103 +#: .././mainwin.py:2340 .././config.py:14761 msgid "New videos" msgstr "Nieuwe video's" -#: .././mainwin.py:2340 .././config.py:406 .././config.py:12690 +#: .././mainwin.py:2340 .././config.py:438 .././config.py:12837 msgid "Duration" msgstr "Duur" @@ -1380,7 +1384,7 @@ msgstr "Duur" msgid "Date" msgstr "Datum" -#: .././mainwin.py:2341 .././config.py:12560 +#: .././mainwin.py:2341 .././config.py:12715 msgid "File" msgstr "Bestand" @@ -1396,11 +1400,11 @@ msgstr "Max. aantal downloads" msgid "D/L speed (KiB/s)" msgstr "Downloadsnelheid (in KiB/s)" -#: .././mainwin.py:2449 .././mainwin.py:4620 +#: .././mainwin.py:2449 .././mainwin.py:4643 msgid "Alternative limits do not currently apply" msgstr "" -#: .././mainwin.py:2460 .././config.py:4172 +#: .././mainwin.py:2460 .././config.py:4198 msgid "Video resolution" msgstr "Videoresolutie" @@ -1430,7 +1434,7 @@ msgstr "Menu van klassieke modus openen" #. enabled, URLs are automatically copied into this textview #. -------------------------------------------------------------------- #. Initial widgets -#: .././mainwin.py:2616 .././mainwin.py:24629 +#: .././mainwin.py:2616 .././mainwin.py:24729 msgid "Enter URLs below" msgstr "Voer hieronder url's in" @@ -1458,16 +1462,16 @@ msgid "Format:" msgstr "Formaat:" #. (Dummy items in the combo) -#: .././mainwin.py:2725 .././mainwin.py:17296 .././config.py:19525 -#: .././config.py:21160 +#: .././mainwin.py:2725 .././mainwin.py:17365 .././config.py:20325 +#: .././config.py:22077 msgid "Default" msgstr "Standaard" -#: .././mainwin.py:2725 .././mainwin.py:17297 +#: .././mainwin.py:2725 .././mainwin.py:17366 msgid "Video:" msgstr "Video:" -#: .././mainwin.py:2729 .././mainwin.py:17298 +#: .././mainwin.py:2729 .././mainwin.py:17367 msgid "Audio:" msgstr "Audio:" @@ -1496,14 +1500,14 @@ msgid "Play video" msgstr "Video afspelen" #. (Signal connect appears below) -#: .././mainwin.py:2951 .././config.py:4653 .././config.py:16760 -#: .././config.py:18762 +#: .././mainwin.py:2951 .././config.py:4700 .././config.py:17440 +#: .././config.py:19541 msgid "Move up" msgstr "Omhoog verplaatsen" #. (Signal connect appears below) -#: .././mainwin.py:2972 .././config.py:4657 .././config.py:16768 -#: .././config.py:18771 +#: .././mainwin.py:2972 .././config.py:4704 .././config.py:17448 +#: .././config.py:19550 msgid "Move down" msgstr "Omlaag verplaatsen" @@ -1519,11 +1523,11 @@ msgstr "Downloaden afbreken" msgid "Process with FFmpeg" msgstr "Verwerken met FFmpeg" -#: .././mainwin.py:3045 .././mainwin.py:17579 +#: .././mainwin.py:3045 .././mainwin.py:17648 msgid "Download the URLs above" msgstr "Bovenstaande url's downloaden" -#: .././mainwin.py:3049 .././mainwin.py:17570 +#: .././mainwin.py:3049 .././mainwin.py:17639 msgid "Perform a custom download on the URLs above" msgstr "" @@ -1543,7 +1547,7 @@ msgstr "Gedownloade bestanden wissen" msgid "Maximum page size" msgstr "Maximale paginagrootte" -#: .././mainwin.py:3198 .././config.py:18697 +#: .././mainwin.py:3198 .././config.py:13622 .././config.py:19476 msgid "Time" msgstr "Tijd" @@ -1571,707 +1575,707 @@ msgstr "Serverwaarschuwingen tonen" msgid "Show dates" msgstr "" -#: .././mainwin.py:3312 .././config.py:9804 .././config.py:10015 -#: .././config.py:10456 .././config.py:10690 .././config.py:13077 -#: .././config.py:13266 .././config.py:15405 +#: .././mainwin.py:3312 .././config.py:9955 .././config.py:10159 +#: .././config.py:10595 .././config.py:10822 .././config.py:13218 +#: .././config.py:13402 .././config.py:16053 msgid "Clear list" msgstr "Lijst wissen" -#: .././mainwin.py:3808 +#: .././mainwin.py:3831 msgid "Checking..." msgstr "Bezig met controleren..." -#: .././mainwin.py:3810 +#: .././mainwin.py:3833 msgid "Downloading..." msgstr "Bezig met downloaden…" -#: .././mainwin.py:3812 +#: .././mainwin.py:3835 msgid "Refreshing..." msgstr "Bezig met verversen..." -#: .././mainwin.py:3814 +#: .././mainwin.py:3837 msgid "Tidying..." msgstr "Bezig met opruimen..." -#: .././mainwin.py:3816 +#: .././mainwin.py:3839 msgid "FFmpeg processing..." msgstr "Bezig met FFmpeg-verwerking..." -#: .././mainwin.py:4180 +#: .././mainwin.py:4203 msgid "Installing FFmpeg" msgstr "" -#: .././mainwin.py:4182 +#: .././mainwin.py:4205 msgid "Updating downloader" msgstr "" -#: .././mainwin.py:4184 +#: .././mainwin.py:4207 msgid "Fetching formats" msgstr "" -#: .././mainwin.py:4186 +#: .././mainwin.py:4209 msgid "Fetching subtitles" msgstr "" -#: .././mainwin.py:4188 +#: .././mainwin.py:4211 msgid "Testing downloader" msgstr "" -#: .././mainwin.py:4190 +#: .././mainwin.py:4213 msgid "Contacting website" msgstr "Bezig met openen van website" -#: .././mainwin.py:4443 +#: .././mainwin.py:4466 msgid "Show fewer settings" msgstr "Minder instellingen tonen" -#: .././mainwin.py:4610 +#: .././mainwin.py:4633 msgid "Alternative limits currently apply" msgstr "" -#: .././mainwin.py:4823 +#: .././mainwin.py:4849 msgid "_Check channel" msgstr "Kanaal _controleren" -#: .././mainwin.py:4825 +#: .././mainwin.py:4851 msgid "_Check playlist" msgstr "Afspeellijst _controleren" -#: .././mainwin.py:4827 +#: .././mainwin.py:4853 msgid "_Check folder" msgstr "Map _controleren" -#: .././mainwin.py:4848 +#: .././mainwin.py:4874 msgid "_Download channel" msgstr "Kanaal _downloaden" -#: .././mainwin.py:4850 +#: .././mainwin.py:4876 msgid "_Download playlist" msgstr "Afspeellijst _downloaden" -#: .././mainwin.py:4852 +#: .././mainwin.py:4878 msgid "_Download folder" msgstr "Map downloaden" -#: .././mainwin.py:4873 +#: .././mainwin.py:4899 msgid "C_ustom download channel" msgstr "Kanaal aangepast do_wnloaden" -#: .././mainwin.py:4875 +#: .././mainwin.py:4901 msgid "C_ustom download playlist" msgstr "Afspeellijst aangepast do_wnloaden" -#: .././mainwin.py:4877 +#: .././mainwin.py:4903 msgid "C_ustom download folder" msgstr "Map aangepast do_wnloaden" -#: .././mainwin.py:4924 +#: .././mainwin.py:4950 msgid "_Empty folder" msgstr "L_ege map" -#: .././mainwin.py:4936 +#: .././mainwin.py:4962 msgid "_All contents" msgstr "_Alle inhoud" -#: .././mainwin.py:4954 +#: .././mainwin.py:4980 msgid "_Remove videos" msgstr "Video's ve_rwijderen" -#: .././mainwin.py:4966 +#: .././mainwin.py:4992 msgid "_Just folder videos" msgstr "Alleen mapv_ideo's" -#: .././mainwin.py:4972 +#: .././mainwin.py:4998 msgid "Channel co_ntents" msgstr "Kanaali_nhoud" -#: .././mainwin.py:4974 +#: .././mainwin.py:5000 msgid "Playlist co_ntents" msgstr "Afspeellijsti_nhoud" -#: .././mainwin.py:4976 +#: .././mainwin.py:5002 msgid "Folder co_ntents" msgstr "Mapi_nhoud" -#: .././mainwin.py:4988 +#: .././mainwin.py:5014 msgid "_Move to top level" msgstr "Verplaatsen naar bovenste _niveau" -#: .././mainwin.py:5006 +#: .././mainwin.py:5032 msgid "_Convert to playlist" msgstr "_Omzetten naar afspeellijst" -#: .././mainwin.py:5008 +#: .././mainwin.py:5034 msgid "_Convert to channel" msgstr "_Omzetten naar kanaal" -#: .././mainwin.py:5031 +#: .././mainwin.py:5057 msgid "_Hide folder" msgstr "Map ver_bergen" -#: .././mainwin.py:5041 +#: .././mainwin.py:5067 msgid "_Rename channel..." msgstr "Kanaalnaam wijzi_gen..." -#: .././mainwin.py:5043 +#: .././mainwin.py:5069 msgid "_Rename playlist..." msgstr "Afspee_llijstnaam wijzigen..." -#: .././mainwin.py:5045 +#: .././mainwin.py:5071 msgid "_Rename folder..." msgstr "Mapnaam _wijzigen..." -#: .././mainwin.py:5062 +#: .././mainwin.py:5088 msgid "Set _nickname..." msgstr "Bij_naam instellen..." -#: .././mainwin.py:5077 +#: .././mainwin.py:5103 msgid "Set _URL..." msgstr "_URL instellen..." -#: .././mainwin.py:5089 +#: .././mainwin.py:5115 msgid "Set _download destination..." msgstr "_Downloadbestemming instellen..." -#: .././mainwin.py:5107 +#: .././mainwin.py:5133 msgid "_Export channel..." msgstr "Kanaal _exporteren..." -#: .././mainwin.py:5109 +#: .././mainwin.py:5135 msgid "_Export playlist..." msgstr "Afspeellijst _exporteren..." -#: .././mainwin.py:5111 +#: .././mainwin.py:5137 msgid "_Export folder..." msgstr "Map _exporteren..." -#: .././mainwin.py:5124 +#: .././mainwin.py:5150 msgid "Re_fresh channel" msgstr "Kanaal ver_versen" -#: .././mainwin.py:5126 +#: .././mainwin.py:5152 msgid "Re_fresh playlist" msgstr "Afspeellijst ver_versen" -#: .././mainwin.py:5128 +#: .././mainwin.py:5154 msgid "Re_fresh folder" msgstr "Map ver_versen" -#: .././mainwin.py:5145 +#: .././mainwin.py:5171 msgid "_Tidy up channel" msgstr "Kanaal op_ruimen" -#: .././mainwin.py:5147 +#: .././mainwin.py:5173 msgid "_Tidy up playlist" msgstr "Afspeellijs_t opruimen" -#: .././mainwin.py:5149 +#: .././mainwin.py:5175 msgid "_Tidy up folder" msgstr "Map op_ruimen" -#: .././mainwin.py:5166 +#: .././mainwin.py:5192 msgid "Add to _Classic Mode tab" msgstr "Toevoegen aan _klassieke modus" -#: .././mainwin.py:5180 +#: .././mainwin.py:5206 msgid "Channel _actions" msgstr "Kanaal_acties" -#: .././mainwin.py:5182 +#: .././mainwin.py:5208 msgid "Playlist _actions" msgstr "Afspeellijst_acties" -#: .././mainwin.py:5184 +#: .././mainwin.py:5210 msgid "Folder _actions" msgstr "Map_acties" -#: .././mainwin.py:5204 .././mainwin.py:5943 +#: .././mainwin.py:5230 .././mainwin.py:5969 msgid "_Apply download options..." msgstr "Downloadopties toep_assen..." -#: .././mainwin.py:5222 .././mainwin.py:5957 +#: .././mainwin.py:5248 .././mainwin.py:5983 msgid "_Remove download options" msgstr "Downloadopties wissen" -#: .././mainwin.py:5238 .././mainwin.py:5969 +#: .././mainwin.py:5264 .././mainwin.py:5995 msgid "_Edit download options..." msgstr "Downloadopties aanpass_en..." -#: .././mainwin.py:5254 +#: .././mainwin.py:5280 msgid "Add to s_cheduled download..." msgstr "Toevoegen aan in_geplande downloads..." -#: .././mainwin.py:5264 +#: .././mainwin.py:5290 msgid "_Show system command..." msgstr "_Systeemopdracht tonen..." -#: .././mainwin.py:5283 +#: .././mainwin.py:5309 msgid "Set _removal time..." msgstr "" -#: .././mainwin.py:5296 +#: .././mainwin.py:5322 msgid "_Don't add videos to Tartube's database" msgstr "" -#: .././mainwin.py:5308 +#: .././mainwin.py:5334 msgid "_Disable checking/downloading" msgstr "Controleren/_Downloaden uitschakelen" -#: .././mainwin.py:5320 +#: .././mainwin.py:5346 msgid "_Just disable downloading" msgstr "Alleen downloaden u_itschakelen" -#: .././mainwin.py:5341 .././mainwin.py:6028 +#: .././mainwin.py:5367 .././mainwin.py:6054 msgid "D_ownloads" msgstr "D_ownloads" -#: .././mainwin.py:5352 +#: .././mainwin.py:5378 msgid "Channel _properties..." msgstr "Kanaalin_formatie..." -#: .././mainwin.py:5354 +#: .././mainwin.py:5380 msgid "Playlist _properties..." msgstr "Afs_peellijstinformatie..." -#: .././mainwin.py:5356 +#: .././mainwin.py:5382 msgid "Folder _properties..." msgstr "Ma_pinformatie..." -#: .././mainwin.py:5372 +#: .././mainwin.py:5398 msgid "_Default location" msgstr "Stan_daardlocatie" -#: .././mainwin.py:5385 +#: .././mainwin.py:5411 msgid "_Actual location" msgstr "D_aadwerkelijke locatie" -#: .././mainwin.py:5399 +#: .././mainwin.py:5425 msgid "_Show" msgstr "_Tonen" -#: .././mainwin.py:5408 +#: .././mainwin.py:5434 msgid "D_elete channel" msgstr "Kanaal v_erwijderen" -#: .././mainwin.py:5410 +#: .././mainwin.py:5436 msgid "D_elete playlist" msgstr "Afspeellijst v_erwijderen" -#: .././mainwin.py:5412 +#: .././mainwin.py:5438 msgid "D_elete folder" msgstr "Map v_erwijderen" -#: .././mainwin.py:5510 +#: .././mainwin.py:5536 msgid "_Check video" msgstr "Video _controleren" -#: .././mainwin.py:5534 +#: .././mainwin.py:5560 msgid "_Download video" msgstr "Video _downloaden" -#: .././mainwin.py:5557 +#: .././mainwin.py:5583 msgid "Re-_download this video" msgstr "Video opnieuw _downloaden" -#: .././mainwin.py:5575 +#: .././mainwin.py:5601 msgid "C_ustom download video" msgstr "Video aangepast do_wnloaden" -#: .././mainwin.py:5593 .././mainwin.py:5905 +#: .././mainwin.py:5619 .././mainwin.py:5931 msgid "Download and _watch" msgstr "Do_wnloaden en bekijken" -#: .././mainwin.py:5613 .././mainwin.py:7418 +#: .././mainwin.py:5639 .././mainwin.py:7444 msgid "Watch in _player" msgstr "Bekijken in s_peler" -#: .././mainwin.py:5628 .././mainwin.py:5639 .././mainwin.py:7430 -#: .././mainwin.py:7448 +#: .././mainwin.py:5654 .././mainwin.py:5665 .././mainwin.py:7456 +#: .././mainwin.py:7474 msgid "Watch on _website" msgstr "Bekijken op _website" -#: .././mainwin.py:5653 .././mainwin.py:7462 +#: .././mainwin.py:5679 .././mainwin.py:7488 msgid "_YouTube" msgstr "_YouTube" -#: .././mainwin.py:5663 .././mainwin.py:7472 +#: .././mainwin.py:5689 .././mainwin.py:7498 msgid "_HookTube" msgstr "_HookTube" -#: .././mainwin.py:5673 .././mainwin.py:7482 +#: .././mainwin.py:5699 .././mainwin.py:7508 msgid "_Invidious" msgstr "_Invidious" -#: .././mainwin.py:5683 .././mainwin.py:7492 +#: .././mainwin.py:5709 .././mainwin.py:7518 msgid "TRANSLATOR'S NOTE: Watch on YouTube, Watch on HookTube, etc" msgstr "TRANSLATOR'S NOTE: Watch on YouTube, Watch on HookTube, etc" -#: .././mainwin.py:5688 .././mainwin.py:7497 +#: .././mainwin.py:5714 .././mainwin.py:7523 msgid "W_atch on" msgstr "Bekijken _op" -#: .././mainwin.py:5702 +#: .././mainwin.py:5728 msgid "Create video cl_ip..." msgstr "" -#: .././mainwin.py:5708 +#: .././mainwin.py:5734 msgid "Download video cl_ip..." msgstr "" -#: .././mainwin.py:5724 +#: .././mainwin.py:5750 msgid "_Remove video slices..." msgstr "" -#: .././mainwin.py:5739 .././mainwin.py:7518 +#: .././mainwin.py:5765 .././mainwin.py:7544 msgid "_Process with FFmpeg..." msgstr "Verwerken met FFm_peg..." -#: .././mainwin.py:5753 +#: .././mainwin.py:5779 msgid "_Special" msgstr "" -#: .././mainwin.py:5763 .././mainwin.py:7532 +#: .././mainwin.py:5789 .././mainwin.py:7558 msgid "Add to C_lassic Mode tab" msgstr "" -#: .././mainwin.py:5784 +#: .././mainwin.py:5810 msgid "Auto _notify" msgstr "Automatisch melde_n" -#: .././mainwin.py:5800 +#: .././mainwin.py:5826 msgid "Auto _sound alarm" msgstr "Automati_sch geluid" -#: .././mainwin.py:5815 +#: .././mainwin.py:5841 msgid "Auto _open" msgstr "Automatisch _openen" -#: .././mainwin.py:5828 +#: .././mainwin.py:5854 msgid "_Download on start" msgstr "_Downloaden na starten" -#: .././mainwin.py:5843 +#: .././mainwin.py:5869 msgid "Download on _stop" msgstr "Downloaden na _stoppen" -#: .././mainwin.py:5861 +#: .././mainwin.py:5887 msgid "Not a _livestream" msgstr "Geen _livestream" -#: .././mainwin.py:5871 +#: .././mainwin.py:5897 msgid "_Livestream" msgstr "_Livestream" -#: .././mainwin.py:5884 .././mainwin.py:7551 +#: .././mainwin.py:5910 .././mainwin.py:7577 msgid "_Mark for download" msgstr "_Markeren als download" -#: .././mainwin.py:5895 .././mainwin.py:7563 +#: .././mainwin.py:5921 .././mainwin.py:7589 msgid "_Download" msgstr "_Downloaden" -#: .././mainwin.py:5915 .././mainwin.py:7584 .././config.py:17424 +#: .././mainwin.py:5941 .././mainwin.py:7610 .././config.py:18152 msgid "_Temporary" msgstr "_Tijdelijk" -#: .././mainwin.py:5985 +#: .././mainwin.py:6011 msgid "Show system _command" msgstr "Systeemopdra_cht tonen" -#: .././mainwin.py:5995 +#: .././mainwin.py:6021 msgid "_Test system command" msgstr "Systeemopdracht _testen" -#: .././mainwin.py:6010 +#: .././mainwin.py:6036 msgid "_Disable downloads" msgstr "_Downloads uitschakelen" -#: .././mainwin.py:6043 +#: .././mainwin.py:6069 msgid "Video is _archived" msgstr "De video is ge_archiveerd" -#: .././mainwin.py:6056 +#: .././mainwin.py:6082 msgid "Video is _bookmarked" msgstr "De video is toegevoegd aan de _bladwijzers" -#: .././mainwin.py:6067 +#: .././mainwin.py:6093 msgid "Video is _favourite" msgstr "De video is toegevoegd aan de _favorieten" -#: .././mainwin.py:6078 +#: .././mainwin.py:6104 msgid "Video is _missing" msgstr "De video o_ntbreekt" -#: .././mainwin.py:6094 +#: .././mainwin.py:6120 msgid "Video is _new" msgstr "De video is _nieuw" -#: .././mainwin.py:6107 +#: .././mainwin.py:6133 msgid "Video is in _waiting list" msgstr "De video staat op de _wachtlijst" -#: .././mainwin.py:6118 +#: .././mainwin.py:6144 msgid "_Mark video" msgstr "Video _markeren" -#: .././mainwin.py:6129 +#: .././mainwin.py:6155 msgid "_Location" msgstr "_Locatie" -#: .././mainwin.py:6141 +#: .././mainwin.py:6167 msgid "_Properties..." msgstr "Eigenscha_ppen..." -#: .././mainwin.py:6153 +#: .././mainwin.py:6179 msgid "_Show video" msgstr "Video _tonen" -#: .././mainwin.py:6162 +#: .././mainwin.py:6188 msgid "Available _formats" msgstr "Beschikbare _formaten" -#: .././mainwin.py:6172 +#: .././mainwin.py:6198 msgid "Available _subtitles" msgstr "Be_schikbare ondertiteling" -#: .././mainwin.py:6182 +#: .././mainwin.py:6208 msgid "_Fetch" msgstr "_Ophalen" #. Delete video -#: .././mainwin.py:6193 +#: .././mainwin.py:6219 msgid "D_elete video" msgstr "Video v_erwijderen" #. Check/download videos -#: .././mainwin.py:6300 +#: .././mainwin.py:6326 msgid "_Check videos" msgstr "Video's _controleren" -#: .././mainwin.py:6320 +#: .././mainwin.py:6346 msgid "_Download videos" msgstr "Video's _downloaden" -#: .././mainwin.py:6343 +#: .././mainwin.py:6369 msgid "C_ustom download videos" msgstr "Video's aan_gepast downloaden" -#: .././mainwin.py:6375 +#: .././mainwin.py:6401 msgid "_Archived" msgstr "Ge_archiveerd" -#: .././mainwin.py:6386 +#: .././mainwin.py:6412 msgid "Not a_rchived" msgstr "Niet gea_rchiveerd" -#: .././mainwin.py:6400 +#: .././mainwin.py:6426 msgid "_Bookmarked" msgstr "In _bladwijzers" -#: .././mainwin.py:6411 +#: .././mainwin.py:6437 msgid "Not b_ookmarked" msgstr "Niet in b_ladwijzers" -#: .././mainwin.py:6425 +#: .././mainwin.py:6451 msgid "_Favourite" msgstr "_Favoriet" -#: .././mainwin.py:6436 +#: .././mainwin.py:6462 msgid "Not fa_vourite" msgstr "Geen fa_voriet" -#: .././mainwin.py:6450 +#: .././mainwin.py:6476 msgid "_Missing" msgstr "O_ntbreekt" -#: .././mainwin.py:6463 +#: .././mainwin.py:6489 msgid "Not m_issing" msgstr "Ontbreekt n_iet" -#: .././mainwin.py:6479 +#: .././mainwin.py:6505 msgid "_New" msgstr "_Nieuw" -#: .././mainwin.py:6490 +#: .././mainwin.py:6516 msgid "Not n_ew" msgstr "Niet ni_euw" -#: .././mainwin.py:6504 +#: .././mainwin.py:6530 msgid "In _waiting list" msgstr "Op _wachtlijst" -#: .././mainwin.py:6515 +#: .././mainwin.py:6541 msgid "Not in w_aiting list" msgstr "Niet op w_achtlijst" -#: .././mainwin.py:6526 +#: .././mainwin.py:6552 msgid "_Mark videos" msgstr "Video's _markeren" -#: .././mainwin.py:6535 +#: .././mainwin.py:6561 msgid "Show p_roperties..." msgstr "Eigensc_happen tonen..." #. Delete videos -#: .././mainwin.py:6550 +#: .././mainwin.py:6576 msgid "D_elete videos" msgstr "Video's verwijd_eren" #. Stop check/download -#: .././mainwin.py:6615 +#: .././mainwin.py:6641 msgid "_Stop now" msgstr "Nu _afbreken" -#: .././mainwin.py:6629 +#: .././mainwin.py:6655 msgid "Stop after this _video" msgstr "Afbreken na deze _video" -#: .././mainwin.py:6644 +#: .././mainwin.py:6670 msgid "Stop after these v_ideos" msgstr "Afbreken na deze v_ideo's" -#: .././mainwin.py:6659 +#: .././mainwin.py:6685 msgid "Download _next" msgstr "Volge_nde downloaden" -#: .././mainwin.py:6671 +#: .././mainwin.py:6697 msgid "Download _last" msgstr "_Laatste downloaden" -#: .././mainwin.py:6694 +#: .././mainwin.py:6720 msgid "Watch on _YouTube" msgstr "Bekijken op _YouTube" -#: .././mainwin.py:6704 +#: .././mainwin.py:6730 msgid "Watch on _HookTube" msgstr "Bekijken op _HookTube" -#: .././mainwin.py:6714 +#: .././mainwin.py:6740 msgid "Watch on _Invidious" msgstr "Bekijken op _Invidious" -#: .././mainwin.py:6726 +#: .././mainwin.py:6752 msgid "Watch on _Website" msgstr "Bekijken op _website" -#: .././mainwin.py:6826 +#: .././mainwin.py:6852 msgid "_Delete video(s)" msgstr "Video('s) verwij_deren" -#: .././mainwin.py:6896 +#: .././mainwin.py:6922 msgid "Choose a custom download:" msgstr "" -#: .././mainwin.py:6972 +#: .././mainwin.py:6998 msgid "_Enable automatic copy/paste" msgstr "Automatisch kopiëren/plakken inschak_elen" -#: .././mainwin.py:6984 +#: .././mainwin.py:7010 msgid "_Remember URLs" msgstr "U_RL's onthouden" -#: .././mainwin.py:6999 +#: .././mainwin.py:7025 msgid "_Set download options" msgstr "Downloadopties in_stellen" -#: .././mainwin.py:7010 +#: .././mainwin.py:7036 msgid "Use _default download options" msgstr "Stan_daard downloadopties gebruiken" -#: .././mainwin.py:7022 +#: .././mainwin.py:7048 msgid "_Edit download options" msgstr "Downloadopties aanpass_en" -#: .././mainwin.py:7036 +#: .././mainwin.py:7062 msgid "Enable _custom downloads" msgstr "Aangepast downloaden ins_chakelen" -#: .././mainwin.py:7049 +#: .././mainwin.py:7075 msgid "Custom downloads _preferences..." msgstr "Aange_paste downloadinstellingen..." -#: .././mainwin.py:7064 .././config.py:17106 +#: .././mainwin.py:7090 .././config.py:17798 msgid "_Update" msgstr "Bij_werken" -#: .././mainwin.py:7117 +#: .././mainwin.py:7143 msgid "Copy file _path" msgstr "Bestands_pad kopiëren" #. Copy URL -#: .././mainwin.py:7129 +#: .././mainwin.py:7155 msgid "Copy _URL" msgstr "_URL kopiëren" -#: .././mainwin.py:7141 +#: .././mainwin.py:7167 msgid "Copy system _command" msgstr "Systeemopdra_cht kopiëren" -#: .././mainwin.py:7157 +#: .././mainwin.py:7183 msgid "_Open destination(s)" msgstr "Bestemming(en) _openen" -#: .././mainwin.py:7198 +#: .././mainwin.py:7224 msgid "Mark as _archived" msgstr "Markeren als ge_archiveerd" -#: .././mainwin.py:7209 +#: .././mainwin.py:7235 msgid "Mark as not a_rchived" msgstr "Markeren als niet-gea_rchiveerd" -#: .././mainwin.py:7223 +#: .././mainwin.py:7249 msgid "Mark as _bookmarked" msgstr "Toevoegen aan _bladwijzers" -#: .././mainwin.py:7235 +#: .././mainwin.py:7261 msgid "Mark as not b_ookmarked" msgstr "Verwijderen uit b_ladwijzers" -#: .././mainwin.py:7248 +#: .././mainwin.py:7274 msgid "Mark as _favourite" msgstr "Toevoegen aan _favorieten" -#: .././mainwin.py:7261 +#: .././mainwin.py:7287 msgid "Mark as not fa_vourite" msgstr "Verwijderen uit fa_vorieten" -#: .././mainwin.py:7275 +#: .././mainwin.py:7301 msgid "Mark as _missing" msgstr "_Markeren als ontbrekend" -#: .././mainwin.py:7288 +#: .././mainwin.py:7314 msgid "Mark as not m_issing" msgstr "Markeren als n_iet-ontbrekend" -#: .././mainwin.py:7305 +#: .././mainwin.py:7331 msgid "Mark as _new" msgstr "Markeren als _nieuw" -#: .././mainwin.py:7317 +#: .././mainwin.py:7343 msgid "Mark as not n_ew" msgstr "Markeren als niet-ni_euw" -#: .././mainwin.py:7331 +#: .././mainwin.py:7357 msgid "Mark as in _waiting list" msgstr "Toevoegen aan _wachtlijst" -#: .././mainwin.py:7343 +#: .././mainwin.py:7369 msgid "Mark as not in wai_ting list" msgstr "Verwijderen uit wachtl_ijst" -#: .././mainwin.py:7398 +#: .././mainwin.py:7424 msgid "D_ownload and watch" msgstr "D_ownloaden en bekijken" -#: .././mainwin.py:7507 +#: .././mainwin.py:7533 msgid "Mark as _not livestreams" msgstr "Markeren als gee_n livestream" -#: .././mainwin.py:7573 +#: .././mainwin.py:7599 msgid "_Download and watch" msgstr "_Downloaden en bekijken" -#: .././mainwin.py:8397 +#: .././mainwin.py:8423 msgid "" "TRANSLATOR'S NOTE: V = number of videos B = (number of videos) bookmarked D " "= downloaded F = favourite L = live/livestream M = missing N = new W = in " @@ -2281,39 +2285,39 @@ msgstr "" "= downloaded F = favourite L = live/livestream M = missing N = new W = in " "waiting list E = (number of) errors W = warnings" -#: .././mainwin.py:8404 +#: .././mainwin.py:8430 msgid "V:" msgstr "V:" -#: .././mainwin.py:8405 +#: .././mainwin.py:8431 msgid "B:" msgstr "B:" -#: .././mainwin.py:8406 +#: .././mainwin.py:8432 msgid "D:" msgstr "D:" -#: .././mainwin.py:8407 +#: .././mainwin.py:8433 msgid "F:" msgstr "F:" -#: .././mainwin.py:8408 +#: .././mainwin.py:8434 msgid "L:" msgstr "L:" -#: .././mainwin.py:8409 +#: .././mainwin.py:8435 msgid "M:" msgstr "O:" -#: .././mainwin.py:8410 +#: .././mainwin.py:8436 msgid "N:" msgstr "N:" -#: .././mainwin.py:8411 .././mainwin.py:8422 +#: .././mainwin.py:8437 .././mainwin.py:8448 msgid "W:" msgstr "W:" -#: .././mainwin.py:8421 +#: .././mainwin.py:8447 msgid "E:" msgstr "F:" @@ -2321,13 +2325,13 @@ msgstr "F:" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:10425 .././mainwin.py:11262 .././mainwin.py:21155 -#: .././mainwin.py:21159 .././mainwin.py:21739 .././mainwin.py:23298 -#: .././mainwin.py:23302 .././mainwin.py:23544 +#: .././mainwin.py:10449 .././mainwin.py:11286 .././mainwin.py:21249 +#: .././mainwin.py:21253 .././mainwin.py:21833 .././mainwin.py:23397 +#: .././mainwin.py:23401 .././mainwin.py:23643 msgid "Waiting" msgstr "Bezig met wachten" -#: .././mainwin.py:11915 +#: .././mainwin.py:11939 msgid "" "TRANSLATOR'S NOTE: Thread means a computer processor thread. If you're not " "sure how to translate it, just use 'Page #', as in Page #1, Page #2, etc" @@ -2335,31 +2339,31 @@ msgstr "" "TRANSLATOR'S NOTE: Thread means a computer processor thread. If you're not " "sure how to translate it, just use 'Page #', as in Page #1, Page #2, etc" -#: .././mainwin.py:11922 +#: .././mainwin.py:11946 msgid "Thread" msgstr "Proces" -#: .././mainwin.py:11925 +#: .././mainwin.py:11949 msgid "_Summary" msgstr "_Samenvatting" -#: .././mainwin.py:12524 +#: .././mainwin.py:12548 msgid "Tartube error" msgstr "Tartube-fout" -#: .././mainwin.py:12583 +#: .././mainwin.py:12607 msgid "Tartube warning" msgstr "Tartube-waarschuwing" -#: .././mainwin.py:12616 +#: .././mainwin.py:12640 msgid "_Errors" msgstr "_Fouten" -#: .././mainwin.py:12620 +#: .././mainwin.py:12644 msgid "Warnings" msgstr "Waarschuwingen" -#: .././mainwin.py:12692 +#: .././mainwin.py:12716 msgid "" "There are not scheduled downloads that don't already contain the channel/" "playlist/folder" @@ -2367,141 +2371,141 @@ msgstr "" "Er zijn niet-ingeplande downloads die niet al de map/afspeellijst/het kanaal " "bevatten" -#: .././mainwin.py:14079 +#: .././mainwin.py:14103 msgid "The external folder is not available" msgstr "" -#: .././mainwin.py:14081 +#: .././mainwin.py:14105 msgid "The external directory is not available" msgstr "" -#: .././mainwin.py:14179 +#: .././mainwin.py:14203 msgid "The URL is not valid" msgstr "De url is ongeldig" -#: .././mainwin.py:15458 .././config.py:11194 .././config.py:13522 +#: .././mainwin.py:15479 .././config.py:11343 .././config.py:14108 msgid "Invalid timestamp(s)" msgstr "" -#: .././mainwin.py:15640 .././mainwin.py:15649 .././config.py:11045 -#: .././config.py:11053 .././config.py:13418 .././config.py:13426 +#: .././mainwin.py:15663 .././mainwin.py:15672 .././config.py:11194 +#: .././config.py:11202 .././config.py:14004 .././config.py:14012 msgid "Invalid start/stop times" msgstr "" -#: .././mainwin.py:18580 +#: .././mainwin.py:18649 msgid "The following items are duplicates:" msgstr "De volgende items zijn dubbel:" -#: .././mainwin.py:18744 +#: .././mainwin.py:18813 #, python-brace-format msgid "The channel contains {0} items, so this action may take a while" msgstr "Het kanaal bevat {0} items, dus het kan even duren" -#: .././mainwin.py:18751 +#: .././mainwin.py:18820 #, python-brace-format msgid "The playlist contains {0} items, so this action may take a while" msgstr "De afspeellijst bevat {0} items, dus het kan even duren" -#: .././mainwin.py:18758 +#: .././mainwin.py:18827 #, python-brace-format msgid "The folder contains {0} items, so this action may take a while" msgstr "De map bevat {0} items, dus het kan even duren" -#: .././mainwin.py:19472 .././mainwin.py:20507 +#: .././mainwin.py:19554 .././mainwin.py:20601 msgid "Originally from:" msgstr "Oorspronkelijke locatie:" -#: .././mainwin.py:19485 .././mainwin.py:20521 +#: .././mainwin.py:19567 .././mainwin.py:20615 msgid "From channel" msgstr "Kanaal" -#: .././mainwin.py:19487 .././mainwin.py:20523 +#: .././mainwin.py:19569 .././mainwin.py:20617 msgid "From playlist" msgstr "Afspeellijst" -#: .././mainwin.py:19489 .././mainwin.py:20525 +#: .././mainwin.py:19571 .././mainwin.py:20619 msgid "From folder" msgstr "Map" -#: .././mainwin.py:19520 +#: .././mainwin.py:19602 msgid "Livestream has not started yet" msgstr "De livestream is nog niet begonnen" -#: .././mainwin.py:19527 +#: .././mainwin.py:19609 msgid "Debut has started" msgstr "De aanvang is begonnen" -#: .././mainwin.py:19529 +#: .././mainwin.py:19611 msgid "Debut has not started yet" msgstr "De aanvang is nog niet begonnen" -#: .././mainwin.py:19536 .././mainwin.py:19542 .././mainwin.py:20575 -#: .././mainwin.py:20582 +#: .././mainwin.py:19618 .././mainwin.py:19624 .././mainwin.py:20669 +#: .././mainwin.py:20676 msgid "Duration:" msgstr "Duur:" -#: .././mainwin.py:19542 .././mainwin.py:19548 .././mainwin.py:19559 -#: .././mainwin.py:20582 .././mainwin.py:20589 .././mainwin.py:20605 -#: .././mainwin.py:22999 .././mainwin.py:23005 .././mainwin.py:23016 -#: .././media.py:555 .././media.py:565 .././media.py:1956 .././media.py:1962 -#: .././media.py:1972 +#: .././mainwin.py:19624 .././mainwin.py:19630 .././mainwin.py:19641 +#: .././mainwin.py:20676 .././mainwin.py:20683 .././mainwin.py:20699 +#: .././mainwin.py:23098 .././mainwin.py:23104 .././mainwin.py:23115 +#: .././media.py:555 .././media.py:565 .././media.py:1978 .././media.py:1984 +#: .././media.py:1994 msgid "unknown" msgstr "onbekend" -#: .././mainwin.py:19546 .././mainwin.py:19548 .././mainwin.py:20586 -#: .././mainwin.py:20588 +#: .././mainwin.py:19628 .././mainwin.py:19630 .././mainwin.py:20680 +#: .././mainwin.py:20682 msgid "Size:" msgstr "Grootte:" -#: .././mainwin.py:19557 .././mainwin.py:19559 .././mainwin.py:20600 +#: .././mainwin.py:19639 .././mainwin.py:19641 .././mainwin.py:20694 msgid "Date:" msgstr "Datum:" -#: .././mainwin.py:19899 +#: .././mainwin.py:19985 msgid "Watch:" msgstr "Bekijken:" -#: .././mainwin.py:19968 +#: .././mainwin.py:20054 msgid "Temporary:" msgstr "Tijdelijk:" -#: .././mainwin.py:20011 +#: .././mainwin.py:20097 msgid "Marked:" msgstr "Gemarkeerd:" -#: .././mainwin.py:20479 .././mainwin.py:20542 +#: .././mainwin.py:20573 .././mainwin.py:20636 msgid "Show the full description" msgstr "Volledige omschrijving tonen" -#: .././mainwin.py:20480 .././mainwin.py:20543 +#: .././mainwin.py:20574 .././mainwin.py:20637 msgid "More" msgstr "Meer" -#: .././mainwin.py:20492 .././mainwin.py:20551 +#: .././mainwin.py:20586 .././mainwin.py:20645 msgid "Show the short description" msgstr "Beknopte omschrijving tonen" -#: .././mainwin.py:20493 .././mainwin.py:20552 +#: .././mainwin.py:20587 .././mainwin.py:20646 msgid "Less" msgstr "Minder" -#: .././mainwin.py:20595 +#: .././mainwin.py:20689 msgid "Received:" msgstr "Ontvangen:" -#: .././mainwin.py:20624 +#: .././mainwin.py:20718 msgid "Live now:" msgstr "Nu live:" -#: .././mainwin.py:20626 .././mainwin.py:23152 +#: .././mainwin.py:20720 .././mainwin.py:23251 msgid "Live soon:" msgstr "Binnenkort live:" -#: .././mainwin.py:20635 +#: .././mainwin.py:20729 msgid "Debut now:" msgstr "Aanvang:" -#: .././mainwin.py:20637 .././mainwin.py:23154 +#: .././mainwin.py:20731 .././mainwin.py:23253 msgid "Debut soon:" msgstr "Aanvang binnenkort:" @@ -2509,14 +2513,14 @@ msgstr "Aanvang binnenkort:" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20644 .././mainwin.py:20646 .././mainwin.py:20650 -#: .././mainwin.py:20935 .././mainwin.py:20937 .././mainwin.py:20941 -#: .././mainwin.py:21443 .././mainwin.py:23030 .././mainwin.py:23032 -#: .././mainwin.py:23036 +#: .././mainwin.py:20738 .././mainwin.py:20740 .././mainwin.py:20744 +#: .././mainwin.py:21029 .././mainwin.py:21031 .././mainwin.py:21035 +#: .././mainwin.py:21537 .././mainwin.py:23129 .././mainwin.py:23131 +#: .././mainwin.py:23135 msgid "Notify" msgstr "Melden" -#: .././mainwin.py:20654 .././mainwin.py:20945 .././mainwin.py:23040 +#: .././mainwin.py:20748 .././mainwin.py:21039 .././mainwin.py:23139 msgid "When the livestream starts, notify the user" msgstr "Toon een melding als de livestream begint" @@ -2524,13 +2528,13 @@ msgstr "Toon een melding als de livestream begint" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20665 .././mainwin.py:20667 .././mainwin.py:20951 -#: .././mainwin.py:20953 .././mainwin.py:20956 .././mainwin.py:21325 -#: .././mainwin.py:23051 .././mainwin.py:23053 +#: .././mainwin.py:20759 .././mainwin.py:20761 .././mainwin.py:21045 +#: .././mainwin.py:21047 .././mainwin.py:21050 .././mainwin.py:21419 +#: .././mainwin.py:23150 .././mainwin.py:23152 msgid "Alarm" msgstr "Alarm" -#: .././mainwin.py:20671 .././mainwin.py:20960 .././mainwin.py:23057 +#: .././mainwin.py:20765 .././mainwin.py:21054 .././mainwin.py:23156 msgid "When the livestream starts, sound an alarm" msgstr "Speel een geluid af als de livestream begint" @@ -2538,13 +2542,13 @@ msgstr "Speel een geluid af als de livestream begint" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20676 .././mainwin.py:20678 .././mainwin.py:20966 -#: .././mainwin.py:20968 .././mainwin.py:20971 .././mainwin.py:21483 -#: .././mainwin.py:23062 .././mainwin.py:23064 +#: .././mainwin.py:20770 .././mainwin.py:20772 .././mainwin.py:21060 +#: .././mainwin.py:21062 .././mainwin.py:21065 .././mainwin.py:21577 +#: .././mainwin.py:23161 .././mainwin.py:23163 msgid "Open" msgstr "Openen" -#: .././mainwin.py:20682 .././mainwin.py:20975 .././mainwin.py:23068 +#: .././mainwin.py:20776 .././mainwin.py:21069 .././mainwin.py:23167 msgid "When the livestream starts, open it" msgstr "Open de livestream zodra deze begint" @@ -2554,14 +2558,14 @@ msgstr "Open de livestream zodra deze begint" #. then use a Glib timer to restore it (after some small fraction of a #. second) #. (Livestream already broadcasting) -#: .././mainwin.py:20690 .././mainwin.py:20695 .././mainwin.py:20697 -#: .././mainwin.py:20981 .././mainwin.py:20983 .././mainwin.py:20986 -#: .././mainwin.py:21364 .././mainwin.py:23076 .././mainwin.py:23081 -#: .././mainwin.py:23083 +#: .././mainwin.py:20784 .././mainwin.py:20789 .././mainwin.py:20791 +#: .././mainwin.py:21075 .././mainwin.py:21077 .././mainwin.py:21080 +#: .././mainwin.py:21458 .././mainwin.py:23175 .././mainwin.py:23180 +#: .././mainwin.py:23182 msgid "D/L on start" msgstr "D/L bij begin" -#: .././mainwin.py:20701 .././mainwin.py:20990 .././mainwin.py:23087 +#: .././mainwin.py:20795 .././mainwin.py:21084 .././mainwin.py:23186 msgid "When the livestream starts, download it" msgstr "Download de livestream zodra deze begint" @@ -2569,18 +2573,18 @@ msgstr "Download de livestream zodra deze begint" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20707 .././mainwin.py:20712 .././mainwin.py:20714 -#: .././mainwin.py:20996 .././mainwin.py:20998 .././mainwin.py:21001 -#: .././mainwin.py:21404 .././mainwin.py:23093 .././mainwin.py:23098 -#: .././mainwin.py:23100 +#: .././mainwin.py:20801 .././mainwin.py:20806 .././mainwin.py:20808 +#: .././mainwin.py:21090 .././mainwin.py:21092 .././mainwin.py:21095 +#: .././mainwin.py:21498 .././mainwin.py:23192 .././mainwin.py:23197 +#: .././mainwin.py:23199 msgid "D/L on stop" msgstr "D/L na afloop" -#: .././mainwin.py:20718 .././mainwin.py:21005 .././mainwin.py:23104 +#: .././mainwin.py:20812 .././mainwin.py:21099 .././mainwin.py:23203 msgid "When the livestream stops, download it" msgstr "Download de livestream zodra deze is afgelopen" -#: .././mainwin.py:20737 .././mainwin.py:23123 +#: .././mainwin.py:20831 .././mainwin.py:23222 msgid "Watch in your media player" msgstr "Bekijken in andere mediaspeler" @@ -2588,15 +2592,15 @@ msgstr "Bekijken in andere mediaspeler" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20738 .././mainwin.py:22132 .././mainwin.py:23124 +#: .././mainwin.py:20832 .././mainwin.py:22226 .././mainwin.py:23223 msgid "Player" msgstr "Speler" -#: .././mainwin.py:20770 .././mainwin.py:23169 +#: .././mainwin.py:20864 .././mainwin.py:23268 msgid "Download this video" msgstr "Video downloaden" -#: .././mainwin.py:20785 .././mainwin.py:23184 +#: .././mainwin.py:20879 .././mainwin.py:23283 msgid "" "TRANSLATOR'S NOTE: If you want to use &, use & - if you want to use a " "different word (e.g. French et), then just use that word" @@ -2604,27 +2608,27 @@ msgstr "" "TRANSLATOR'S NOTE: If you want to use &, use & - if you want to use a " "different word (e.g. French et), then just use that word" -#: .././mainwin.py:20793 .././mainwin.py:23192 +#: .././mainwin.py:20887 .././mainwin.py:23291 msgid "Download and watch in your media player" msgstr "Download en bekijk in een andere mediaspeler" -#: .././mainwin.py:20794 +#: .././mainwin.py:20888 msgid "Download & watch" msgstr "Downloaden en bekijken" -#: .././mainwin.py:20801 +#: .././mainwin.py:20895 msgid "Not downloaded" msgstr "Niet gedownload" -#: .././mainwin.py:20827 +#: .././mainwin.py:20921 msgid "Watch on YouTube" msgstr "Bekijken op YouTube" -#: .././mainwin.py:20828 .././mainwin.py:22177 +#: .././mainwin.py:20922 .././mainwin.py:22271 msgid "YouTube" msgstr "YouTube" -#: .././mainwin.py:20840 +#: .././mainwin.py:20934 msgid "Watch on HookTube" msgstr "Bekijken op HookTube" @@ -2632,11 +2636,11 @@ msgstr "Bekijken op HookTube" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20841 .././mainwin.py:21939 +#: .././mainwin.py:20935 .././mainwin.py:22033 msgid "HookTube" msgstr "HookTube" -#: .././mainwin.py:20853 +#: .././mainwin.py:20947 msgid "Watch on Invidious" msgstr "Bekijken op Invidious" @@ -2644,7 +2648,7 @@ msgstr "Bekijken op Invidious" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20854 .././mainwin.py:21983 +#: .././mainwin.py:20948 .././mainwin.py:22077 msgid "Invidious" msgstr "Invidious" @@ -2652,25 +2656,25 @@ msgstr "Invidious" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20873 .././mainwin.py:22028 .././config.py:14600 -#: .././config.py:17517 +#: .././mainwin.py:20967 .././mainwin.py:22122 .././config.py:15252 +#: .././config.py:18249 msgid "Other" msgstr "Overig" -#: .././mainwin.py:20893 +#: .././mainwin.py:20987 msgid "Watch on website" msgstr "Bekijken op website" -#: .././mainwin.py:20894 .././mainwin.py:22179 +#: .././mainwin.py:20988 .././mainwin.py:22273 msgid "Website" msgstr "Website" #. Links not clickable -#: .././mainwin.py:20905 +#: .././mainwin.py:20999 msgid "No link" msgstr "Geen link" -#: .././mainwin.py:21042 +#: .././mainwin.py:21136 msgid "Download to a temporary folder later" msgstr "Later downloaden naar een tijdelijke map" @@ -2678,19 +2682,19 @@ msgstr "Later downloaden naar een tijdelijke map" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21043 .././mainwin.py:21060 .././mainwin.py:21895 +#: .././mainwin.py:21137 .././mainwin.py:21154 .././mainwin.py:21989 msgid "Mark for download" msgstr "Markeren als download" -#: .././mainwin.py:21048 +#: .././mainwin.py:21142 msgid "Download to a temporary folder" msgstr "Downloaden naar een tijdelijke map" -#: .././mainwin.py:21054 +#: .././mainwin.py:21148 msgid "Download to a temporary folder, then watch" msgstr "Downloaden naar een tijdelijke map, daarna bekijken" -#: .././mainwin.py:21055 .././mainwin.py:23193 +#: .././mainwin.py:21149 .././mainwin.py:23292 msgid "D/L & watch" msgstr "D/L en bekijken" @@ -2698,12 +2702,12 @@ msgstr "D/L en bekijken" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21062 .././mainwin.py:21851 +#: .././mainwin.py:21156 .././mainwin.py:21945 msgid "D/L and watch" msgstr "D/L en bekijken" #. Archived/not archived -#: .././mainwin.py:21086 .././mainwin.py:23231 +#: .././mainwin.py:21180 .././mainwin.py:23330 msgid "Prevent automatic deletion of the video" msgstr "Automatische verwijdering van video voorkomen" @@ -2711,13 +2715,13 @@ msgstr "Automatische verwijdering van video voorkomen" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21090 .././mainwin.py:21094 .././mainwin.py:21521 -#: .././mainwin.py:23235 .././mainwin.py:23239 .././mainwin.py:23454 +#: .././mainwin.py:21184 .././mainwin.py:21188 .././mainwin.py:21615 +#: .././mainwin.py:23334 .././mainwin.py:23338 .././mainwin.py:23553 msgid "Archived" msgstr "Gearchiveerd" #. Bookmarked/not bookmarked -#: .././mainwin.py:21099 .././mainwin.py:23244 +#: .././mainwin.py:21193 .././mainwin.py:23343 msgid "Show video in Bookmarks folder" msgstr "Tonen in bladwijzermap" @@ -2727,13 +2731,13 @@ msgstr "Tonen in bladwijzermap" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21104 .././mainwin.py:21109 .././mainwin.py:23248 -#: .././mainwin.py:23252 .././mainwin.py:23499 +#: .././mainwin.py:21198 .././mainwin.py:21203 .././mainwin.py:23347 +#: .././mainwin.py:23351 .././mainwin.py:23598 msgid "B/mark" msgstr "Bladwijzer" #. Favourite/not favourite -#: .././mainwin.py:21114 .././mainwin.py:23257 +#: .././mainwin.py:21208 .././mainwin.py:23356 msgid "Show in Favourite Videos folder" msgstr "Tonen in favorietenmap" @@ -2741,13 +2745,13 @@ msgstr "Tonen in favorietenmap" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21118 .././mainwin.py:21122 .././mainwin.py:21611 -#: .././mainwin.py:23261 .././mainwin.py:23265 +#: .././mainwin.py:21212 .././mainwin.py:21216 .././mainwin.py:21705 +#: .././mainwin.py:23360 .././mainwin.py:23364 .././config.py:13623 msgid "Favourite" msgstr "Favoriet" #. Missing/not missing -#: .././mainwin.py:21126 .././mainwin.py:23269 +#: .././mainwin.py:21220 .././mainwin.py:23368 msgid "Mark video as removed by creator" msgstr "Markeren als verwijderd door maker" @@ -2755,13 +2759,13 @@ msgstr "Markeren als verwijderd door maker" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21130 .././mainwin.py:21134 .././mainwin.py:21656 -#: .././mainwin.py:23273 .././mainwin.py:23277 +#: .././mainwin.py:21224 .././mainwin.py:21228 .././mainwin.py:21750 +#: .././mainwin.py:23372 .././mainwin.py:23376 msgid "Missing" msgstr "Ontbreekt" #. New/not new -#: .././mainwin.py:21139 .././mainwin.py:23282 +#: .././mainwin.py:21233 .././mainwin.py:23381 msgid "Mark video as never watched" msgstr "Markeren als nooit bekeken" @@ -2769,13 +2773,13 @@ msgstr "Markeren als nooit bekeken" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21143 .././mainwin.py:21147 .././mainwin.py:21694 -#: .././mainwin.py:23286 .././mainwin.py:23290 +#: .././mainwin.py:21237 .././mainwin.py:21241 .././mainwin.py:21788 +#: .././mainwin.py:23385 .././mainwin.py:23389 msgid "New" msgstr "Nieuw" #. In waiting list/not in waiting list -#: .././mainwin.py:21152 .././mainwin.py:23295 +#: .././mainwin.py:21246 .././mainwin.py:23394 msgid "Show in Waiting Videos folder" msgstr "Tonen in wachtrijmap" @@ -2783,23 +2787,23 @@ msgstr "Tonen in wachtrijmap" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21566 +#: .././mainwin.py:21660 msgid "Bookmarked" msgstr "In bladwijzers" -#: .././mainwin.py:22970 +#: .././mainwin.py:23069 msgid "Click to open" msgstr "" -#: .././mainwin.py:23164 +#: .././mainwin.py:23263 msgid "TRANSLATOR'S NOTE: D/L means download" msgstr "TRANSLATOR'S NOTE: D/L means download" -#: .././mainwin.py:23200 +#: .././mainwin.py:23299 msgid "Can't D/L" msgstr "Downloaden mislukt" -#: .././mainwin.py:23224 +#: .././mainwin.py:23323 msgid "" "TRANSLATOR'S NOTE: This section contains shortened labels: Archive = " "Archived, B/Mark = Bookmarked, Waiting: In waiting list" @@ -2807,269 +2811,269 @@ msgstr "" "TRANSLATOR'S NOTE: This section contains shortened labels: Archive = " "Archived, B/Mark = Bookmarked, Waiting: In waiting list" -#: .././mainwin.py:24605 +#: .././mainwin.py:24705 msgid "Add many channels/playlists" msgstr "" -#: .././mainwin.py:24635 .././mainwin.py:25309 .././mainwin.py:25838 -#: .././mainwin.py:26197 +#: .././mainwin.py:24735 .././mainwin.py:25411 .././mainwin.py:25940 +#: .././mainwin.py:26299 msgid "Enable automatic copy/paste" msgstr "Automatisch kopiëren/plakken inschakelen" #. Buttons to add URLs as channels/playlists -#: .././mainwin.py:24685 +#: .././mainwin.py:24785 msgid "Add channels" msgstr "" -#: .././mainwin.py:24689 +#: .././mainwin.py:24789 msgid "Add playlists" msgstr "" -#: .././mainwin.py:24702 +#: .././mainwin.py:24802 msgid "Double-click the names/URls to customise them" msgstr "" -#: .././mainwin.py:24728 .././config.py:2991 .././config.py:5506 -#: .././config.py:5634 +#: .././mainwin.py:24828 .././config.py:3022 .././config.py:5606 +#: .././config.py:5738 msgid "Type" msgstr "Type" -#: .././mainwin.py:24728 .././config.py:17243 +#: .././mainwin.py:24828 .././config.py:17967 msgid "URL" msgstr "" #. Add more buttons -#: .././mainwin.py:24759 +#: .././mainwin.py:24859 msgid "Convert selected lines" msgstr "" -#: .././mainwin.py:24763 +#: .././mainwin.py:24863 msgid "Delete selected lines" msgstr "" -#: .././mainwin.py:24802 +#: .././mainwin.py:24902 msgid "Add to this folder:" msgstr "" -#: .././mainwin.py:25160 +#: .././mainwin.py:25262 msgid "Add channel" msgstr "Kanaal toevoegen" -#: .././mainwin.py:25179 +#: .././mainwin.py:25281 msgid "Enter the channel name" msgstr "Voer de kanaalnaam in" -#: .././mainwin.py:25184 +#: .././mainwin.py:25286 msgid "(Use the channel's real name or a customised name)" msgstr "(gebruik de echte naam of een zelfgekozen)" -#: .././mainwin.py:25192 +#: .././mainwin.py:25294 msgid "Copy and paste a link to the channel" msgstr "Kopieer en plak een link naar het kanaal" -#: .././mainwin.py:25216 +#: .././mainwin.py:25318 msgid "" "Before adding the URL for a YouTube channel, first click the Videos tab in " "your browser!" msgstr "" -#: .././mainwin.py:25265 +#: .././mainwin.py:25367 msgid "(Optional) Add this channel inside a folder" msgstr "(optioneel) Kanaal toevoegen aan map" -#: .././mainwin.py:25295 +#: .././mainwin.py:25397 msgid "I want to download videos from this channel automatically" msgstr "Ik wil automatisch video's downloaden van dit kanaal" -#: .././mainwin.py:25302 .././mainwin.py:25622 .././mainwin.py:25831 +#: .././mainwin.py:25404 .././mainwin.py:25724 .././mainwin.py:25933 msgid "Don't download anything, just check for new videos" msgstr "Ik wil niks downloaden; ik wil alleen zien of er nieuwe video's zijn" -#: .././mainwin.py:25523 +#: .././mainwin.py:25625 msgid "Add folder" msgstr "Map toevoegen" -#: .././mainwin.py:25542 +#: .././mainwin.py:25644 msgid "Enter the folder name" msgstr "Geef de map een naam" -#: .././mainwin.py:25585 +#: .././mainwin.py:25687 msgid "(Optional) Add this folder inside another folder" msgstr "(optioneel) Map toevoegen aan andere map" -#: .././mainwin.py:25616 +#: .././mainwin.py:25718 msgid "I want to download videos from this folder automatically" msgstr "Ik wil automatisch video's downloaden uit deze map" -#: .././mainwin.py:25715 +#: .././mainwin.py:25817 msgid "Add playlist" msgstr "Afspeellijst toevoegen" -#: .././mainwin.py:25734 +#: .././mainwin.py:25836 msgid "Enter the playlist name" msgstr "Geef de afspeellijst een naam" -#: .././mainwin.py:25739 +#: .././mainwin.py:25841 msgid "(Use the playlist's real name or a customised name)" msgstr "(gebruik de echte naam of een zelfgekozen)" -#: .././mainwin.py:25747 +#: .././mainwin.py:25849 msgid "Copy and paste a link to the playlist" msgstr "Kopieer en plak een link naar de afspeellijst" -#: .././mainwin.py:25794 +#: .././mainwin.py:25896 msgid "(Optional) Add this playlist inside a folder" msgstr "(optioneel) Afspeellijst toevoegen aan map" -#: .././mainwin.py:25824 +#: .././mainwin.py:25926 msgid "I want to download videos from this playlist automatically" msgstr "Ik wil automatisch video's downloaden van deze afspeellijst" -#: .././mainwin.py:26021 +#: .././mainwin.py:26123 msgid "Add videos" msgstr "Video's toevoegen" -#: .././mainwin.py:26040 +#: .././mainwin.py:26142 msgid "Copy and paste the links to one or more videos" msgstr "Kopieer en plak links naar één of meerdere video's" -#: .././mainwin.py:26046 +#: .././mainwin.py:26148 msgid "Links containing multiple videos will be converted to a channel" msgstr "Links met meerdere video's worden omgezet naar een kanaal" -#: .././mainwin.py:26053 +#: .././mainwin.py:26155 msgid "Links containing multiple videos will be converted to a playlist" msgstr "Links met meerdere video's worden omgezet naar een afspeellijst" -#: .././mainwin.py:26060 +#: .././mainwin.py:26162 msgid "Links containing multiple videos will be downloaded separately" msgstr "Links met meerdere video's worden los van elkaar gedownload" -#: .././mainwin.py:26067 +#: .././mainwin.py:26169 msgid "Links containing multiple videos will not be downloaded at all" msgstr "Links met meerdere video's worden niet gedownload" -#: .././mainwin.py:26155 +#: .././mainwin.py:26257 msgid "Add the videos to this folder" msgstr "Voeg video's toe aan deze map" -#: .././mainwin.py:26185 +#: .././mainwin.py:26287 msgid "I want to download these videos automatically" msgstr "Ik wil deze video's automatisch downloaden" -#: .././mainwin.py:26191 +#: .././mainwin.py:26293 msgid "Don't download anything, just check the videos" msgstr "Ik wil niks downloaden; ik wil alleen zien of er nieuwe video's zijn" -#: .././mainwin.py:26360 .././config.py:2084 +#: .././mainwin.py:26462 .././config.py:2116 msgid "Apply download options" msgstr "Downloadopties toepassen" -#: .././mainwin.py:26382 +#: .././mainwin.py:26484 msgid "Create new download options" msgstr "Downloadopties instellen" -#: .././mainwin.py:26392 +#: .././mainwin.py:26494 msgid "Use these download options" msgstr "Deze downloadopties gebruiken" -#: .././mainwin.py:26429 +#: .././mainwin.py:26531 msgid "Clone these download options" msgstr "Deze downloadopties klonen" -#: .././mainwin.py:26662 +#: .././mainwin.py:26764 msgid "Select a date" msgstr "Kies een datum" -#: .././mainwin.py:26770 +#: .././mainwin.py:26872 msgid "Delete channel" msgstr "Kanaal verwijderen" -#: .././mainwin.py:26772 +#: .././mainwin.py:26874 msgid "Delete playlist" msgstr "Afspeellijst verwijderen" -#: .././mainwin.py:26774 +#: .././mainwin.py:26876 msgid "Delete folder" msgstr "Map verwijderen" -#: .././mainwin.py:26777 +#: .././mainwin.py:26879 msgid "Empty channel" msgstr "Leeg kanaal" -#: .././mainwin.py:26779 +#: .././mainwin.py:26881 msgid "Empty playlist" msgstr "Lege afspeellijst" -#: .././mainwin.py:26781 +#: .././mainwin.py:26883 msgid "Empty folder" msgstr "Lege map" -#: .././mainwin.py:26815 +#: .././mainwin.py:26917 msgid "This channel does not contain any videos" msgstr "Dit kanaal bevat geen video's" -#: .././mainwin.py:26817 +#: .././mainwin.py:26919 msgid "This playlist does not contain any videos" msgstr "Deze afspeellijst bevat geen video's" -#: .././mainwin.py:26819 +#: .././mainwin.py:26921 msgid "This folder doesn't contain anything" msgstr "Deze map bevat geen video's" -#: .././mainwin.py:26825 +#: .././mainwin.py:26927 msgid "(but there might be some files in Tartube's data folder)" msgstr "(wellicht staan er bestanden in Tartube's gegevensmap)" -#: .././mainwin.py:26838 +#: .././mainwin.py:26940 msgid "This channel contains:" msgstr "Dit kanaal bevat:" -#: .././mainwin.py:26840 +#: .././mainwin.py:26942 msgid "This playlist contains:" msgstr "Deze afspeellijst bevat:" -#: .././mainwin.py:26842 .././config.py:14573 +#: .././mainwin.py:26944 .././config.py:15225 msgid "This folder contains:" msgstr "Deze map bevat:" -#: .././mainwin.py:26849 +#: .././mainwin.py:26951 msgid "1 folder" msgstr "1 map" -#: .././mainwin.py:26851 +#: .././mainwin.py:26953 #, python-brace-format msgid "{0} folders" msgstr "{0} mappen" -#: .././mainwin.py:26858 +#: .././mainwin.py:26960 msgid "1 channel" msgstr "1 kanaal" -#: .././mainwin.py:26860 +#: .././mainwin.py:26962 #, python-brace-format msgid "{0} channels" msgstr "{0} kanalen" -#: .././mainwin.py:26867 +#: .././mainwin.py:26969 msgid "1 playlist" msgstr "1 afspeellijst" -#: .././mainwin.py:26869 +#: .././mainwin.py:26971 #, python-brace-format msgid "{0} playlists" msgstr "{0} afspeellijsten" -#: .././mainwin.py:26876 .././mainwin.py:27367 +#: .././mainwin.py:26978 .././mainwin.py:27469 msgid "1 video" msgstr "1 video" -#: .././mainwin.py:26878 .././mainwin.py:27370 +#: .././mainwin.py:26980 .././mainwin.py:27472 #, python-brace-format msgid "{0} videos" msgstr "{0} video's" -#: .././mainwin.py:26891 +#: .././mainwin.py:26993 msgid "" "Do you want to delete the channel from Tartube's data folder, or do you just " "want to remove the channel from this list?" @@ -3077,7 +3081,7 @@ msgstr "" "Weet je zeker dat je het kanaal wilt verwijderen uit Tartube's gegevensmap " "of wil je het slechts verwijderen van de lijst?" -#: .././mainwin.py:26897 +#: .././mainwin.py:26999 msgid "" "Do you want to delete the playlist from Tartube's data folder, or do you " "just want to remove the playlist from this list?" @@ -3085,7 +3089,7 @@ msgstr "" "Weet je zeker dat je de afspeellijst wilt verwijderen uit Tartube's " "gegevensmap of wil je hem slechts verwijderen van de lijst?" -#: .././mainwin.py:26903 +#: .././mainwin.py:27005 msgid "" "Do you want to delete the folder from Tartube's data folder, or do you just " "want to remove the folder from this list?" @@ -3093,7 +3097,7 @@ msgstr "" "Weet je zeker dat je de map wilt verwijderen uit Tartube's gegevensmap of " "wil je hem slechts verwijderen van de lijst?" -#: .././mainwin.py:26912 +#: .././mainwin.py:27014 msgid "" "Do you want to empty the channel in Tartube's data folder, or do you just " "want to empty the channel in this list?" @@ -3101,7 +3105,7 @@ msgstr "" "Weet je zeker dat je het kanaal in Tartube's gegevensmap wilt opschonen of " "wil je het slechts verwijderen van de lijst?" -#: .././mainwin.py:26918 +#: .././mainwin.py:27020 msgid "" "Do you want to empty the playlist in Tartube's data folder, or do you just " "want to empty the playlist in this list?" @@ -3109,7 +3113,7 @@ msgstr "" "Weet je zeker dat je de afspeellijst in Tartube's gegevensmap wilt opschonen " "of wil je hem slechts verwijderen van de lijst?" -#: .././mainwin.py:26924 +#: .././mainwin.py:27026 msgid "" "Do you want to empty the folder in Tartube's data folder, or do you just " "want to empty the folder in this list?" @@ -3117,39 +3121,39 @@ msgstr "" "Weet je zeker dat je de map in Tartube's gegevensmap wilt opschonen of wil " "je hem slechts verwijderen van de lijst?" -#: .././mainwin.py:26941 +#: .././mainwin.py:27043 msgid "Just remove the channel from this list" msgstr "Kanaal verwijderen van de lijst" -#: .././mainwin.py:26943 +#: .././mainwin.py:27045 msgid "Just remove the playlist from this list" msgstr "Afspeellijst verwijderen van de lijst" -#: .././mainwin.py:26945 +#: .././mainwin.py:27047 msgid "Just remove the folder from this list" msgstr "Map verwijderen van de lijst" -#: .././mainwin.py:26950 +#: .././mainwin.py:27052 msgid "Just empty the channel in this list" msgstr "Kanaal verwijderen van de lijst" -#: .././mainwin.py:26952 +#: .././mainwin.py:27054 msgid "Just empty the playlist in this list" msgstr "Afspeellijst verwijderen van de lijst" -#: .././mainwin.py:26954 +#: .././mainwin.py:27056 msgid "Just empty the folder in this list" msgstr "Map verwijderen van de lijst" -#: .././mainwin.py:26960 +#: .././mainwin.py:27062 msgid "Delete all files" msgstr "Alle bestanden verwijderen" -#: .././mainwin.py:27020 +#: .././mainwin.py:27122 msgid "Export from database" msgstr "Exporteren uit databank" -#: .././mainwin.py:27046 +#: .././mainwin.py:27148 msgid "" "Tartube is ready to export a partial summary of its database, containing a " "list of videos, channels, playlists and/or folders (but not including the " @@ -3159,7 +3163,7 @@ msgstr "" "Deze bevat een lijst met video's, kanalen, afspeellijsten en/of mappen (maar " "niet de video's zelf)." -#: .././mainwin.py:27053 +#: .././mainwin.py:27155 msgid "" "Tartube is ready to export a summary of its database, containing a list of " "videos, channels, playlists and/or folders (but not including the videos " @@ -3169,260 +3173,277 @@ msgstr "" "lijst met video's, kanalen, afspeellijsten en/of mappen (maar niet de " "video's zelf)." -#: .././mainwin.py:27069 +#: .././mainwin.py:27171 msgid "Choose what should be included:" msgstr "Geef aan wat er moet worden opgenomen:" -#: .././mainwin.py:27077 +#: .././mainwin.py:27179 msgid "Include lists of videos" msgstr "Videolijsten" -#: .././mainwin.py:27082 +#: .././mainwin.py:27184 msgid "Include channels" msgstr "Kanalen" -#: .././mainwin.py:27087 +#: .././mainwin.py:27189 msgid "Include playlists" msgstr "Afspeellijsten" -#: .././mainwin.py:27092 +#: .././mainwin.py:27194 msgid "Preserve folder structure" msgstr "Mappenstructuur behouden" -#: .././mainwin.py:27100 +#: .././mainwin.py:27202 msgid "Export as JSON" msgstr "" -#: .././mainwin.py:27106 +#: .././mainwin.py:27208 msgid "Export as CSV using separator" msgstr "" -#: .././mainwin.py:27133 +#: .././mainwin.py:27235 msgid "Export as plain text" msgstr "Exporteren naar plattetekstbestand" -#: .././mainwin.py:27242 +#: .././mainwin.py:27344 msgid "Import into database" msgstr "Importeren naar databank" -#: .././mainwin.py:27265 +#: .././mainwin.py:27367 msgid "Choose which items to import" msgstr "Geef aan welke items moeten worden geïmporteerd" -#: .././mainwin.py:27286 .././config.py:19575 .././config.py:21212 -#: .././config.py:21477 +#: .././mainwin.py:27388 .././config.py:20375 .././config.py:22129 +#: .././config.py:22402 msgid "Import" msgstr "Importeren" -#: .././mainwin.py:27322 +#: .././mainwin.py:27424 msgid "Import videos" msgstr "Video's importeren" -#: .././mainwin.py:27327 +#: .././mainwin.py:27429 msgid "Merge channels/playlists/folders" msgstr "Kanalen/Afspeellijsten/Mappen samenvoegen" #. Bottom strip -#: .././mainwin.py:27330 .././mainwin.py:30368 +#: .././mainwin.py:27432 .././mainwin.py:30534 msgid "Select all" msgstr "Alles selecteren" -#: .././mainwin.py:27335 +#: .././mainwin.py:27437 msgid "Unselect all" msgstr "Niets selecteren" -#: .././mainwin.py:27597 +#: .././mainwin.py:27699 msgid "Mount drive" msgstr "Schijf aankoppelen" -#: .././mainwin.py:27622 +#: .././mainwin.py:27724 msgid "The Tartube data folder is set to:" msgstr "De Tartube-gegevensmap is ingesteld op:" -#: .././mainwin.py:27635 +#: .././mainwin.py:27737 msgid "...but this folder doesn't exist" msgstr "...maar deze map bestaat niet" -#: .././mainwin.py:27638 +#: .././mainwin.py:27740 msgid "...but Tartube cannot write to this folder" msgstr "...maar Tartube kan niks wegschrijven naar deze map" -#: .././mainwin.py:27648 +#: .././mainwin.py:27750 msgid "I have mounted the drive, please try again" msgstr "Ik heb de schijf aangekoppeld; probeer het opnieuw" -#: .././mainwin.py:27654 +#: .././mainwin.py:27756 msgid "Use this data folder:" msgstr "Deze gegevensmap gebruiken:" -#: .././mainwin.py:27681 +#: .././mainwin.py:27783 msgid "Select a different data folder" msgstr "Kies een andere gegevensmap" -#: .././mainwin.py:27687 +#: .././mainwin.py:27789 msgid "Use the default data folder" msgstr "Standaard gegevensmap gebruiken" -#: .././mainwin.py:27693 +#: .././mainwin.py:27795 msgid "Shut down Tartube" msgstr "Tartube afsluiten" #. 'Cancel' button -#: .././mainwin.py:27700 .././config.py:1046 +#: .././mainwin.py:27802 .././config.py:1078 msgid "Cancel" msgstr "Annuleren" #. 'OK' button -#: .././mainwin.py:27704 .././config.py:1037 .././config.py:2266 -#: .././config.py:11818 .././config.py:12184 +#: .././mainwin.py:27806 .././config.py:1069 .././config.py:2298 +#: .././config.py:11967 .././config.py:12333 msgid "OK" msgstr "Oké" -#: .././mainwin.py:27826 +#: .././mainwin.py:27928 msgid "The folder still doesn't exist. Please try a different option" msgstr "De map bestaat nog steeds niet - kies een andere optie." -#: .././mainwin.py:27903 .././config.py:403 +#: .././mainwin.py:28008 .././config.py:435 msgid "Downloads" msgstr "Downloads" -#: .././mainwin.py:27933 +#: .././mainwin.py:28038 msgid "Nothing happened?" msgstr "" -#: .././mainwin.py:27940 +#: .././mainwin.py:28051 +msgid "Check the video/audio file actually exists" +msgstr "" + +#: .././mainwin.py:28056 +msgid "(Try converting instead of a direct download)" +msgstr "" + +#: .././mainwin.py:28069 msgid "Check the downloader is installed and updated" msgstr "" -#: .././mainwin.py:27945 .././mainwin.py:29951 +#: .././mainwin.py:28074 .././mainwin.py:30117 msgid "Update" msgstr "Bijwerken" -#: .././mainwin.py:27952 +#: .././mainwin.py:28080 msgid "Tell Tartube where to find the downloader" msgstr "" -#: .././mainwin.py:27957 +#: .././mainwin.py:28085 msgid "Set the downloader's file path" msgstr "" -#: .././mainwin.py:27963 +#: .././mainwin.py:28091 msgid "Try a different downloader" msgstr "" -#: .././mainwin.py:27969 +#: .././mainwin.py:28097 msgid "Find more help" msgstr "" -#: .././mainwin.py:27974 +#: .././mainwin.py:28102 msgid "Read the FAQ" msgstr "" -#: .././mainwin.py:27980 +#: .././mainwin.py:28108 msgid "Ask for help" msgstr "" -#: .././mainwin.py:27992 +#: .././mainwin.py:28120 msgid "" "Don't forget to check the Output tab and the\n" "Errors/Warnings tab for error messages!" msgstr "" -#: .././mainwin.py:28002 +#: .././mainwin.py:28130 msgid "Always show this window" msgstr "" -#: .././mainwin.py:28181 +#: .././mainwin.py:28309 msgid "Download video clip" msgstr "" -#: .././mainwin.py:28183 +#: .././mainwin.py:28311 msgid "Create video clip" msgstr "" -#: .././mainwin.py:28210 .././config.py:9730 .././config.py:10382 -#: .././config.py:13004 +#: .././mainwin.py:28338 .././config.py:9881 .././config.py:10521 +#: .././config.py:13149 msgid "Start timestamp (e.g. 15:29)" msgstr "" -#: .././mainwin.py:28220 .././config.py:9750 .././config.py:10402 -#: .././config.py:13017 +#: .././mainwin.py:28348 .././config.py:9901 .././config.py:10541 +#: .././config.py:13162 msgid "Stop timestamp (optional)" msgstr "" -#: .././mainwin.py:28229 .././config.py:9765 .././config.py:10417 -#: .././config.py:13030 +#: .././mainwin.py:28357 .././config.py:9916 .././config.py:10556 +#: .././config.py:13175 msgid "Clip title (optional)" msgstr "" -#: .././mainwin.py:28237 +#: .././mainwin.py:28365 msgid "Download this clip" msgstr "" -#: .././mainwin.py:28239 +#: .././mainwin.py:28367 msgid "Create this clip" msgstr "" -#: .././mainwin.py:28248 +#: .././mainwin.py:28376 msgid "Download all clips" msgstr "" -#: .././mainwin.py:28250 +#: .././mainwin.py:28378 msgid "Create all clips" msgstr "" -#: .././mainwin.py:28434 +#: .././mainwin.py:28563 msgid "Download sliced video" msgstr "" -#: .././mainwin.py:28436 +#: .././mainwin.py:28565 msgid "Create sliced video" msgstr "" -#: .././mainwin.py:28463 .././config.py:9954 .././config.py:10628 -#: .././config.py:13206 +#: .././mainwin.py:28592 .././config.py:10101 .././config.py:10763 +#: .././config.py:13346 msgid "Start (timestamp or seconds)" msgstr "" -#: .././mainwin.py:28481 -msgid "Download this sliced video" +#: .././mainwin.py:28602 .././config.py:10114 .././config.py:10776 +#: .././config.py:13358 +msgid "Stop (optional)" +msgstr "" + +#: .././mainwin.py:28610 +msgid "Download and remove this slice" msgstr "" -#: .././mainwin.py:28483 +#: .././mainwin.py:28612 msgid "Create this sliced video" msgstr "" -#: .././mainwin.py:28492 +#: .././mainwin.py:28627 +msgid "Download and remove everything but this slice" +msgstr "" + +#: .././mainwin.py:28635 msgid "Download video with all slices removed" msgstr "" -#: .././mainwin.py:28494 +#: .././mainwin.py:28637 msgid "Create video with all slices removed" msgstr "" -#: .././mainwin.py:28647 +#: .././mainwin.py:28812 msgid "Set removal time" msgstr "" -#: .././mainwin.py:28670 +#: .././mainwin.py:28835 msgid "" "When videos are checked/downloaded, older videos\n" "are removed from the Recent Videos folder." msgstr "" -#: .././mainwin.py:28681 .././config.py:14778 +#: .././mainwin.py:28846 .././config.py:15428 msgid "Empty the whole folder" msgstr "" -#: .././mainwin.py:28688 .././config.py:14787 +#: .././mainwin.py:28853 .././config.py:15437 msgid "Remove videos after days" msgstr "" -#: .././mainwin.py:28782 +#: .././mainwin.py:28947 msgid "Stale lockfile" msgstr "Verouderd vergrendelbestand" -#: .././mainwin.py:28819 +#: .././mainwin.py:28984 msgid "" "Failed to load the Tartube database file, because another copy of Tartube " "seems to be using it" @@ -3430,11 +3451,11 @@ msgstr "" "Het Tartube-databankbestand kan niet worden geladen omdat het in gebruik is " "door een ander Tartube-venster" -#: .././mainwin.py:28826 +#: .././mainwin.py:28991 msgid "Do you want to load it anyway?" msgstr "Wil je het bestand tóch laden?" -#: .././mainwin.py:28832 +#: .././mainwin.py:28997 msgid "" "(Only click 'Yes' if you are sure that other copies of Tartube are not using " "the database right now)" @@ -3442,163 +3463,163 @@ msgstr "" "(klik alleen op 'Ja' als je zeker weet dat er geen andere Tartube-vensters " "geopend zijn)" -#: .././mainwin.py:28844 +#: .././mainwin.py:29009 msgid "Yes, load the file" msgstr "Ja, bestand laden" -#: .././mainwin.py:28851 +#: .././mainwin.py:29016 msgid "No, just shut down Tartube" msgstr "Nee, Tartube afsluiten" -#: .././mainwin.py:28853 +#: .././mainwin.py:29018 msgid "No, don't load the file" msgstr "Nee, bestand niet laden" -#: .././mainwin.py:28948 +#: .././mainwin.py:29113 msgid "Rename channel" msgstr "Kanaalnaam wijzigen" -#: .././mainwin.py:28950 +#: .././mainwin.py:29115 msgid "Rename playlist" msgstr "Afspeellijstnaam wijzigen" -#: .././mainwin.py:28952 +#: .././mainwin.py:29117 msgid "Rename folder" msgstr "Mapnaam wijzigen" -#: .././mainwin.py:28976 +#: .././mainwin.py:29141 msgid "Set the new name for the channel:" msgstr "Geef het kanaal een nieuwe naam:" -#: .././mainwin.py:28978 +#: .././mainwin.py:29143 msgid "Set the new name for the playlist:" msgstr "Geef de afspeellijst een nieuwe naam:" -#: .././mainwin.py:28980 +#: .././mainwin.py:29145 msgid "Set the new name for the folder:" msgstr "Geef de map een nieuwe naam:" -#: .././mainwin.py:28986 +#: .././mainwin.py:29151 msgid "N.B. This procedure will modify your filesystem!\n" msgstr "Let op: deze app past je bestandssysteem aan!\n" -#: .././mainwin.py:29047 +#: .././mainwin.py:29212 msgid "Add to scheduled download" msgstr "Toevoegen aan ingeplande downloads" -#: .././mainwin.py:29070 +#: .././mainwin.py:29235 msgid "Add the channel to this scheduled download:" msgstr "Kanaal toevoegen aan ingeplande downloads:" -#: .././mainwin.py:29072 +#: .././mainwin.py:29237 msgid "Add the playlist to this scheduled download:" msgstr "Afspeellijst toevoegen aan ingeplande downloads:" -#: .././mainwin.py:29074 +#: .././mainwin.py:29239 msgid "Add the folder to this scheduled download:" msgstr "Map toevoegen aan ingeplande downloads:" -#: .././mainwin.py:29176 +#: .././mainwin.py:29341 msgid "Set download destination" msgstr "Downloadbestemming instellen" -#: .././mainwin.py:29221 +#: .././mainwin.py:29386 msgid "This channel normally downloads videos into its own folder" msgstr "" -#: .././mainwin.py:29226 +#: .././mainwin.py:29391 msgid "This playlist normally downloads videos into its own folder" msgstr "" -#: .././mainwin.py:29231 +#: .././mainwin.py:29396 msgid "This folder normally downloads videos into itself" msgstr "" -#: .././mainwin.py:29236 +#: .././mainwin.py:29401 msgid "This channel normally downloads videos into its own directory" msgstr "" -#: .././mainwin.py:29241 +#: .././mainwin.py:29406 msgid "This playlist normally downloads videos into its own directory" msgstr "" -#: .././mainwin.py:29246 +#: .././mainwin.py:29411 msgid "This folder normally downloads videos into its own directory" msgstr "" -#: .././mainwin.py:29256 +#: .././mainwin.py:29421 msgid "Use this location" msgstr "" -#: .././mainwin.py:29264 +#: .././mainwin.py:29429 msgid "Choose a different location if:" msgstr "" -#: .././mainwin.py:29267 +#: .././mainwin.py:29432 msgid "" "You want to add a channel and its playlists, without downloading the same " "video twice" msgstr "" -#: .././mainwin.py:29273 +#: .././mainwin.py:29438 msgid "" "A video creator has channels on both YouTube and BitChute, and you want to " "add both without downloading the same video twice" msgstr "" -#: .././mainwin.py:29366 +#: .././mainwin.py:29531 msgid "" "Using an external folder is not recommended, in general. Choose an external " "folder if:" msgstr "" -#: .././mainwin.py:29371 +#: .././mainwin.py:29536 msgid "" "Using an external directory is not recommended, in general. Choose an " "external directory if:" msgstr "" -#: .././mainwin.py:29377 +#: .././mainwin.py:29542 msgid "" "You want a different application to process the downloaded videos (other " "applications should not modify Tartube's main data folder)" msgstr "" -#: .././mainwin.py:29383 +#: .././mainwin.py:29548 msgid "" "You want a different application to process the downloaded videos (other " "applications should not modify Tartube's main data directory)" msgstr "" #. (Signal connect appears below) -#: .././mainwin.py:29400 .././config.py:4365 .././config.py:5680 -#: .././config.py:7075 .././config.py:7096 .././config.py:7117 -#: .././config.py:20869 .././config.py:20968 .././config.py:21009 -#: .././config.py:21079 +#: .././mainwin.py:29565 .././config.py:4399 .././config.py:5784 +#: .././config.py:7235 .././config.py:7256 .././config.py:7277 +#: .././config.py:21773 .././config.py:21876 .././config.py:21917 +#: .././config.py:21991 msgid "Set" msgstr "Instellen" -#: .././mainwin.py:29483 +#: .././mainwin.py:29648 msgid "Select an external folder" msgstr "" -#: .././mainwin.py:29485 +#: .././mainwin.py:29650 msgid "Select an external directory" msgstr "" -#: .././mainwin.py:29505 +#: .././mainwin.py:29670 msgid "An external folder must not be inside Tartube's own data folder" msgstr "" -#: .././mainwin.py:29511 +#: .././mainwin.py:29676 msgid "An external directory must not be inside Tartube's own data directory" msgstr "" -#: .././mainwin.py:29716 +#: .././mainwin.py:29881 msgid "Set nickname" msgstr "Bijnaam instellen" -#: .././mainwin.py:29741 +#: .././mainwin.py:29906 #, python-brace-format msgid "" "Set a nickname for the channel '{0}' (or leave it blank to reset the " @@ -3607,7 +3628,7 @@ msgstr "" "Stel een bijnaam in voor het kanaal '{0}' (of laat leeg om de standaardnaam " "te gebruiken)" -#: .././mainwin.py:29746 +#: .././mainwin.py:29911 #, python-brace-format msgid "" "Set a nickname for the playlist '{0}' (or leave it blank to reset the " @@ -3616,7 +3637,7 @@ msgstr "" "Stel een bijnaam in voor de afspeellijst '{0}' (of laat leeg om de " "standaardnaam te gebruiken)" -#: .././mainwin.py:29751 +#: .././mainwin.py:29916 #, python-brace-format msgid "" "Set a nickname for the folder '{0}' (or leave it blank to reset the nickname)" @@ -3624,717 +3645,715 @@ msgstr "" "Stel een bijnaam in voor de map '{0}' (of laat leeg om de standaardnaam te " "gebruiken)" -#: .././mainwin.py:29814 +#: .././mainwin.py:29979 msgid "Set URL" msgstr "URL instellen" -#: .././mainwin.py:29839 +#: .././mainwin.py:30004 #, python-brace-format msgid "Update the URL for the channel '{0}'" msgstr "Werk de url bij van het kanaal '{0}'" -#: .././mainwin.py:29843 +#: .././mainwin.py:30008 #, python-brace-format msgid "Update the URL for the playlist '{0}'" msgstr "Werk de url bij van de afspeellijst '{0}'" -#: .././mainwin.py:29907 +#: .././mainwin.py:30072 msgid "Show system command" msgstr "Systeemopdracht tonen" -#: .././mainwin.py:29960 +#: .././mainwin.py:30126 msgid "Copy to clipboard" msgstr "Kopiëren naar klembord" -#: .././mainwin.py:30134 .././config.py:20235 +#: .././mainwin.py:30300 .././config.py:21116 msgid "Test" msgstr "Testen" -#: .././mainwin.py:30154 +#: .././mainwin.py:30320 msgid "URL of the video to download (optional)" msgstr "URL van de te downloaden video (optioneel)" -#: .././mainwin.py:30165 +#: .././mainwin.py:30331 msgid "Command line options (optional)" msgstr "Opdrachtregelopties (optioneel)" -#: .././mainwin.py:30246 +#: .././mainwin.py:30412 msgid "Tidy up files" msgstr "Bestanden opruimen" -#: .././mainwin.py:30248 +#: .././mainwin.py:30414 msgid "Tidy up channel" msgstr "Kanaal opruimen" -#: .././mainwin.py:30250 +#: .././mainwin.py:30416 msgid "Tidy up playlist" msgstr "Afspeellijst opruimen" -#: .././mainwin.py:30252 +#: .././mainwin.py:30418 msgid "Tidy up folder" msgstr "Map opruimen" -#: .././mainwin.py:30281 +#: .././mainwin.py:30447 msgid "Check that videos are not corrupted" msgstr "Controleren of video's niet beschadigd zijn" -#: .././mainwin.py:30286 +#: .././mainwin.py:30452 msgid "Delete corrupted video files" msgstr "Beschadigde video's verwijderen" -#: .././mainwin.py:30296 +#: .././mainwin.py:30462 msgid "Check that videos do/don't exist" msgstr "Controleren of video's wel of niet bestaan" -#: .././mainwin.py:30303 +#: .././mainwin.py:30469 msgid "" "Delete downloaded video files (doesn't remove videos from Tartube's database)" msgstr "" "Gedownloade videobestanden verwijderen (maar niet uit Tartube's databank)" -#: .././mainwin.py:30315 +#: .././mainwin.py:30481 msgid "Also delete all video/audio files with the same name" msgstr "Tevens audio-/videobestanden met dezelfde naam verwijderen" -#: .././mainwin.py:30323 +#: .././mainwin.py:30489 msgid "Delete all archive files" msgstr "Alle gearchiveerde bestanden verwijderen" -#: .././mainwin.py:30328 +#: .././mainwin.py:30494 msgid "Move thumbnails into own folder" msgstr "Miniaturen verplaatsen naar eigen map" -#: .././mainwin.py:30333 +#: .././mainwin.py:30499 msgid "Delete all thumbnail files" msgstr "Alle miniatuurbestanden verwijderen" -#: .././mainwin.py:30339 +#: .././mainwin.py:30505 msgid "Convert .webp thumbnails to .jpg using FFmpeg" msgstr ".webp-miniaturen converteren naar .jpg met FFmpeg" -#: .././mainwin.py:30348 +#: .././mainwin.py:30514 msgid "Move other metadata files into own folder" msgstr "Overige metagegevensbestanden verplaatsen naar eigen map" -#: .././mainwin.py:30356 +#: .././mainwin.py:30522 msgid "Delete all description files" msgstr "Alle omschrijvingsbestanden verwijderen" -#: .././mainwin.py:30360 +#: .././mainwin.py:30526 msgid "Delete all metadata (JSON) files" msgstr "Alle metagegevensbestanden (json) verwijderen" -#: .././mainwin.py:30364 +#: .././mainwin.py:30530 msgid "Delete all annotation files" msgstr "Alle aantekeningsbestanden verwijderen" #. (Signal connect appears below) -#: .././mainwin.py:30373 +#: .././mainwin.py:30539 msgid "Select none" msgstr "Niets selecteren" -#: .././config.py:404 +#: .././config.py:436 msgid "Uploads" msgstr "Uploads" -#: .././config.py:405 .././config.py:12706 +#: .././config.py:437 .././config.py:12853 msgid "File size" msgstr "Bestandsgrootte" -#: .././config.py:435 +#: .././config.py:467 msgid "Graph" msgstr "Grafiek" -#: .././config.py:436 +#: .././config.py:468 msgid "Bar chart" msgstr "Staafgrafiek" -#: .././config.py:465 +#: .././config.py:497 msgid "Show decade" msgstr "Decennium tonen" -#: .././config.py:466 +#: .././config.py:498 msgid "Show year" msgstr "Jaar tonen" -#: .././config.py:467 +#: .././config.py:499 msgid "Show quarters" msgstr "Kwartalen tonen" -#: .././config.py:468 +#: .././config.py:500 msgid "Show month" msgstr "Maand tonen" -#: .././config.py:469 +#: .././config.py:501 msgid "Show week" msgstr "Week tonen" -#: .././config.py:470 +#: .././config.py:502 msgid "Show day" msgstr "Dag tonen" -#: .././config.py:502 +#: .././config.py:534 msgid "Quarters" msgstr "Kwartalen" -#: .././config.py:503 +#: .././config.py:535 msgid "Months" msgstr "Maanden" -#: .././config.py:504 +#: .././config.py:536 msgid "Weeks" msgstr "Weken" -#: .././config.py:505 +#: .././config.py:537 msgid "Days" msgstr "Dagen" -#: .././config.py:506 +#: .././config.py:538 msgid "Hours" msgstr "Uren" -#: .././config.py:538 +#: .././config.py:570 msgid "Red" msgstr "Rood" -#: .././config.py:539 +#: .././config.py:571 msgid "Green" msgstr "Groen" -#: .././config.py:540 +#: .././config.py:572 msgid "Blue" msgstr "Blauw" -#: .././config.py:541 +#: .././config.py:573 msgid "Black" msgstr "Zwart" -#: .././config.py:542 +#: .././config.py:574 msgid "White" msgstr "Wit" #. 'Reset' button #. (Signal connect appears below) -#: .././config.py:1019 .././config.py:4369 .././config.py:20371 -#: .././config.py:20399 .././config.py:20972 .././config.py:21013 -#: .././config.py:21083 +#: .././config.py:1051 .././config.py:4403 .././config.py:21256 +#: .././config.py:21284 .././config.py:21880 .././config.py:21921 +#: .././config.py:21995 msgid "Reset" msgstr "Standaardwaarden" -#: .././config.py:1023 +#: .././config.py:1055 msgid "Reset changes without closing the window" msgstr "Zet de standaardwaarden terug zonder het venster te sluiten" #. 'Apply' button -#: .././config.py:1028 +#: .././config.py:1060 msgid "Apply" msgstr "Toepassen" -#: .././config.py:1032 +#: .././config.py:1064 msgid "Apply changes without closing the window" msgstr "Pas toe zonder het venster te sluiten" -#: .././config.py:1040 .././config.py:11821 .././config.py:12187 +#: .././config.py:1072 .././config.py:11970 .././config.py:12336 msgid "Apply changes" msgstr "Wijzigingen toepassen" -#: .././config.py:1049 +#: .././config.py:1081 msgid "Cancel changes" msgstr "Annuleren" -#: .././config.py:1892 +#: .././config.py:1924 msgid "Listed as" msgstr "Vermeld als" -#: .././config.py:1904 +#: .././config.py:1936 msgid "Contained in" msgstr "Onderdeel van" -#: .././config.py:1962 +#: .././config.py:1994 msgid "Download to" msgstr "Downloaden naar" -#: .././config.py:2010 +#: .././config.py:2042 msgid "Default location" msgstr "" -#: .././config.py:2039 +#: .././config.py:2071 msgid "Channel URL" msgstr "Kanaal-url" -#: .././config.py:2041 +#: .././config.py:2073 msgid "Playlist URL" msgstr "Afspeellijst-url" -#: .././config.py:2043 .././config.py:4140 +#: .././config.py:2075 .././config.py:4166 msgid "Video URL" msgstr "Video-url" -#: .././config.py:2066 .././config.py:5245 +#: .././config.py:2098 .././config.py:5336 msgid "_Options" msgstr "_Opties" -#: .././config.py:2080 .././config.py:3619 .././config.py:4868 -#: .././config.py:4907 +#: .././config.py:2112 .././config.py:3646 .././config.py:4919 +#: .././config.py:4963 msgid "Download options" msgstr "Downloadopties" -#: .././config.py:2091 +#: .././config.py:2123 msgid "Edit download options" msgstr "Downloadopties aanpassen" -#: .././config.py:2098 +#: .././config.py:2130 msgid "Remove download options" msgstr "Downloadopties wissen" -#: .././config.py:2269 +#: .././config.py:2301 msgid "Close this window" msgstr "Huidig venster sluiten" -#: .././config.py:2677 +#: .././config.py:2709 msgid "Custom download settings" msgstr "" -#: .././config.py:2824 .././config.py:3867 .././config.py:8909 +#: .././config.py:2856 .././config.py:3894 .././config.py:9069 msgid "_Name" msgstr "_Naam" -#: .././config.py:2847 +#: .././config.py:2878 msgid "Usage" msgstr "" -#: .././config.py:2859 +#: .././config.py:2890 msgid "Applies everywhere except the Classic Mode tab" msgstr "" -#: .././config.py:2862 +#: .././config.py:2893 msgid "Applies to the Classic Mode tab" msgstr "" -#: .././config.py:2864 +#: .././config.py:2895 msgid "Applies when selected" msgstr "" -#: .././config.py:2879 +#: .././config.py:2910 msgid "Import settings from the general custom download into this window" msgstr "" -#: .././config.py:2897 +#: .././config.py:2928 msgid "Completely reset all settings to their default values" msgstr "" #. Add this tab... -#: .././config.py:2911 .././config.py:4862 .././config.py:4881 -#: .././config.py:5798 .././config.py:19329 +#: .././config.py:2942 .././config.py:4913 .././config.py:4932 +#: .././config.py:5911 .././config.py:20125 msgid "_Downloads" msgstr "_Downloads" -#: .././config.py:2916 +#: .././config.py:2947 msgid "Download settings" msgstr "" -#: .././config.py:2921 +#: .././config.py:2952 msgid "Download each video independently of its channel or playlist" msgstr "" -#: .././config.py:2929 +#: .././config.py:2960 msgid "Hint: enable this setting first!" msgstr "" -#: .././config.py:2935 +#: .././config.py:2966 msgid "" "Check channels/playlists/folders before each custom download (recommended)" msgstr "" -#: .././config.py:2951 +#: .././config.py:2982 msgid "Split videos into video clips using timestamps (requires FFmpeg)" msgstr "" -#: .././config.py:2964 +#: .././config.py:2995 msgid "Remove slices from the video using SponsorBlock data (requires FFmpeg)" msgstr "" -#: .././config.py:2991 .././config.py:15395 +#: .././config.py:3022 .././config.py:16043 msgid "Remove" msgstr "Verwijderen" -#: .././config.py:3020 +#: .././config.py:3051 msgid "Types of video slice to remove:" msgstr "" -#: .././config.py:3035 +#: .././config.py:3066 msgid "Toggle" msgstr "" -#: .././config.py:3050 +#: .././config.py:3077 msgid "Remove all" msgstr "" #. (Signal connect appears below) -#: .././config.py:3057 +#: .././config.py:3084 msgid "Remove none" msgstr "" -#: .././config.py:3136 +#: .././config.py:3163 msgid "_Delays" msgstr "" -#: .././config.py:3141 +#: .././config.py:3168 msgid "Download delay settings" msgstr "" -#: .././config.py:3146 +#: .././config.py:3173 msgid "Apply a delay after each video/channel/playlist is downloaded" msgstr "" -#: .././config.py:3154 +#: .././config.py:3181 msgid "Maximum delay to apply (in minutes)" msgstr "Maximale vertraging (in minuten)" -#: .././config.py:3170 +#: .././config.py:3197 msgid "Minimum delay to apply (in minutes; randomises the actual delay)" msgstr "" "Minimale vertraging (in minuten - dit leidt tot een willekeurige vertraging)" -#: .././config.py:3203 +#: .././config.py:3230 msgid "Mirrors" msgstr "" -#: .././config.py:3208 +#: .././config.py:3235 msgid "Mirror settings" msgstr "" -#: .././config.py:3214 +#: .././config.py:3241 msgid "Obtain a YouTube video from the original website" msgstr "" -#: .././config.py:3222 +#: .././config.py:3249 msgid "Obtain the video from HookTube rather than YouTube" msgstr "" -#: .././config.py:3232 +#: .././config.py:3259 msgid "Obtain the video from Invidious rather than YouTube" msgstr "" -#: .././config.py:3242 +#: .././config.py:3269 msgid "Obtain the video from this YouTube front-end:" msgstr "" -#: .././config.py:3259 .././config.py:20377 +#: .././config.py:3286 .././config.py:21262 msgid "Type the exact text that replaces youtube.com e.g." msgstr "" "Voer de letterlijke tekst in die youtube.com moet vervangen. Voorbeeld:" -#: .././config.py:3308 .././config.py:3455 .././config.py:7326 -#: .././config.py:7959 .././config.py:11331 .././config.py:11727 +#: .././config.py:3335 .././config.py:3482 .././config.py:7486 +#: .././config.py:8119 .././config.py:11480 .././config.py:11876 msgid "This procedure cannot be reversed. Are you sure you want to continue?" msgstr "" "Dit kan niet ongedaan worden gemaakt. Weet je zeker dat je wilt doorgaan?" -#: .././config.py:3875 +#: .././config.py:3901 msgid "Name for these download options" msgstr "De naam van deze downloadopties" -#: .././config.py:3893 +#: .././config.py:3919 msgid "Download options applied to" msgstr "De downloadopties zijn toegepast op" -#: .././config.py:3929 +#: .././config.py:3955 msgid "All channels, playlists and folders" msgstr "Alle kanalen, afspeellijsten en mappen" -#: .././config.py:3931 +#: .././config.py:3957 msgid "Downloads in the Classic Mode tab" msgstr "Downloads in de klassieke modus" -#: .././config.py:3933 +#: .././config.py:3959 msgid "These options are not applied to anything" msgstr "Deze opties zijn nergens op toegepast" -#: .././config.py:3937 +#: .././config.py:3963 msgid "Extra command line options (e.g. --help; do not use -o or --output)" msgstr "" "Aanvullende opdrachtregelopties (bijv. --help; maak geen gebruik van -o of --" "output)" -#: .././config.py:3949 -msgid "" -"Use ONLY these options (Tartube adds the downloader and the output folder" +#: .././config.py:3975 +msgid "Use ONLY these options (Tartube adds the output folder)" msgstr "" -#: .././config.py:3961 -msgid "" -"Use ONLY these options (Tartube adds the downloader and the output directory)" +#: .././config.py:3986 +msgid "Use ONLY these options (Tartube adds the output directory)" msgstr "" -#: .././config.py:3973 -msgid "Ignore the video/playlist/channel URL, because a URL is specified below" +#: .././config.py:3997 +msgid "Use only the URL specified below" msgstr "" -#: .././config.py:4009 +#: .././config.py:4031 msgid "Hide advanced download options" msgstr "Uitgebreide downloadopties verbergen" -#: .././config.py:4011 +#: .././config.py:4033 msgid "Show advanced download options" msgstr "Uitgebreide downloadopties tonen" -#: .././config.py:4021 +#: .././config.py:4043 msgid "Import general download options into this window" msgstr "Importeer algemene downloadopties naar dit venster" -#: .././config.py:4036 +#: .././config.py:4058 msgid "Completely reset all download options to their default values" msgstr "Zet alle downloadopties terug op hun standaardwaarden" #. Add this tab... -#: .././config.py:4050 .././config.py:16496 +#: .././config.py:4072 .././config.py:17162 msgid "_Files" msgstr "_Bestanden" -#: .././config.py:4071 +#: .././config.py:4098 msgid "File _names" msgstr "Bestands_namen" -#: .././config.py:4079 +#: .././config.py:4105 msgid "File name options" msgstr "Bestandsnaamopties" -#: .././config.py:4084 +#: .././config.py:4110 msgid "Format for video file names" msgstr "Opmaak van videobestandsnamen" -#: .././config.py:4109 +#: .././config.py:4135 msgid "File output template" msgstr "Bestandsuitvoersjabloon" -#: .././config.py:4129 +#: .././config.py:4155 msgid "Add to template:" msgstr "Toevoegen aan sjabloon:" -#: .././config.py:4134 .././config.py:12408 +#: .././config.py:4160 .././config.py:12557 msgid "Video properties" msgstr "Video-informatie" -#: .././config.py:4136 .././config.py:12676 +#: .././config.py:4162 .././config.py:12823 msgid "Video ID" msgstr "ID" -#: .././config.py:4137 +#: .././config.py:4163 msgid "Video title" msgstr "Titel" -#: .././config.py:4138 +#: .././config.py:4164 msgid "Alternative video ID" msgstr "Alternatieve id" -#: .././config.py:4139 +#: .././config.py:4165 msgid "Secondary video title" msgstr "Secundaire titel" -#: .././config.py:4141 +#: .././config.py:4167 msgid "Video filename extension" msgstr "Bestandsextensie" -#: .././config.py:4142 +#: .././config.py:4168 msgid "Video licence" msgstr "Licentie" -#: .././config.py:4143 +#: .././config.py:4169 msgid "Age restriction (years)" msgstr "Leeftijdsbeperking (jaar)" -#: .././config.py:4144 +#: .././config.py:4170 msgid "Is a livestream" msgstr "Is een livestream" -#: .././config.py:4145 +#: .././config.py:4171 msgid "Autonumber videos, starting at 0" msgstr "Video's automatisch nummeren, beginnend bij 0" -#: .././config.py:4147 +#: .././config.py:4173 msgid "Creator/uploader" msgstr "Maker/Uploader" -#: .././config.py:4149 +#: .././config.py:4175 msgid "Full name of video uploader" msgstr "Volledige naam van uploader" -#: .././config.py:4150 +#: .././config.py:4176 msgid "Uploader ID" msgstr "" -#: .././config.py:4151 +#: .././config.py:4177 msgid "Nickname/ID of video uploader" msgstr "Bijnaam/ID van uploader" -#: .././config.py:4152 +#: .././config.py:4178 msgid "Channel name" msgstr "Kanaalnaam" -#: .././config.py:4153 +#: .././config.py:4179 msgid "Channel ID" msgstr "Kanaal-id" -#: .././config.py:4154 +#: .././config.py:4180 msgid "Playlist name" msgstr "Afspeellijstnaam" -#: .././config.py:4155 +#: .././config.py:4181 msgid "Playlist ID" msgstr "Afspeellijst-id" -#: .././config.py:4156 +#: .././config.py:4182 msgid "Video index in playlist" msgstr "Video-index op afspeellijst" -#: .././config.py:4158 +#: .././config.py:4184 msgid "Date/time/location" msgstr "Datum/Tijd/Locatie" -#: .././config.py:4160 +#: .././config.py:4186 msgid "Release date (YYYYMMDD)" msgstr "Uitgebracht op (JJJJMMDD)" -#: .././config.py:4161 +#: .././config.py:4187 msgid "Release time (UNIX timestamp)" msgstr "Uitgebracht om (UNIX-tijdstempel)" -#: .././config.py:4162 +#: .././config.py:4188 msgid "Upload data (YYYYMMDD)" msgstr "Uploaddatums (JJJJMMDD)" -#: .././config.py:4163 +#: .././config.py:4189 msgid "Video length (seconds)" msgstr "Duur (in seconden)" -#: .././config.py:4164 +#: .././config.py:4190 msgid "Filming location" msgstr "Opnamelocatie" -#: .././config.py:4166 .././config.py:4168 +#: .././config.py:4192 .././config.py:4194 msgid "Video format" msgstr "Videoformaat" -#: .././config.py:4169 +#: .././config.py:4195 msgid "Video format code" msgstr "Videoformaatcode" -#: .././config.py:4170 +#: .././config.py:4196 msgid "Video width" msgstr "Videobreedte" -#: .././config.py:4171 +#: .././config.py:4197 msgid "Video height" msgstr "Videohoogte" -#: .././config.py:4173 +#: .././config.py:4199 msgid "Video frame rate" msgstr "Videoframesnelheid" -#: .././config.py:4174 +#: .././config.py:4200 msgid "Average video/audio bitrate (KiB/s)" msgstr "Gemiddelde audio-/videobitsnelheid (in KiB/s)" -#: .././config.py:4175 +#: .././config.py:4201 msgid "Average video bitrate (KiB/s)" msgstr "Gemiddelde videobitsnelheid (in KiB/s)" -#: .././config.py:4176 +#: .././config.py:4202 msgid "Average audio bitrate (KiB/s)" msgstr "Gemiddelde audiobitsnelheid (in KiB/s)" -#: .././config.py:4178 +#: .././config.py:4204 msgid "Ratings/comments" msgstr "Waarderingen/Reacties" -#: .././config.py:4180 +#: .././config.py:4206 msgid "Number of views" msgstr "Aantal weergaven" -#: .././config.py:4181 +#: .././config.py:4207 msgid "Number of positive ratings" msgstr "Aantal positieve waarderingen" -#: .././config.py:4182 +#: .././config.py:4208 msgid "Number of negative ratings" msgstr "Aantal negatieve waarderingen" -#: .././config.py:4183 +#: .././config.py:4209 msgid "Average rating" msgstr "Gemiddelde waardering" -#: .././config.py:4184 +#: .././config.py:4210 msgid "Number of reposts" msgstr "Aantal keer gedeeld" -#: .././config.py:4185 +#: .././config.py:4211 msgid "Number of comments" msgstr "Aantal reacties" -#: .././config.py:4221 .././config.py:5549 .././config.py:5689 -#: .././config.py:15385 .././config.py:18744 .././config.py:19566 -#: .././config.py:21203 .././config.py:21468 +#: .././config.py:4247 .././config.py:5649 .././config.py:5793 +#: .././config.py:16033 .././config.py:19523 .././config.py:20366 +#: .././config.py:22120 .././config.py:22393 msgid "Add" msgstr "Toevoegen" -#: .././config.py:4249 .././config.py:5850 +#: .././config.py:4280 .././config.py:5967 msgid "_Filesystem" msgstr "_Bestandssysteem" -#: .././config.py:4259 +#: .././config.py:4289 msgid "Filesystem options" msgstr "Bestandssysteemopties" -#: .././config.py:4264 +#: .././config.py:4294 msgid "Restrict filenames to ASCII characters" msgstr "Bestandsnamen beperken tot ascii-tekens" -#: .././config.py:4271 +#: .././config.py:4301 msgid "Use the server's file modification time" msgstr "Aanpassingstijd van server gebruiken" -#: .././config.py:4279 +#: .././config.py:4309 msgid "Filesystem overrides" msgstr "Bestandssysteemopties afdwingen" -#: .././config.py:4284 +#: .././config.py:4314 msgid "Download all videos into this folder" msgstr "Alle video's downloaden naar deze map" -#: .././config.py:4348 +#: .././config.py:4383 msgid "_Cookies" msgstr "_Cookies" -#: .././config.py:4356 +#: .././config.py:4390 msgid "Cookies options" msgstr "Cookie-opties" -#: .././config.py:4361 +#: .././config.py:4395 msgid "Path to the downloader's cookie jar file" msgstr "Pad naar downloader's cookie-jarbestand:" -#: .././config.py:4417 +#: .././config.py:4456 msgid "_Write/move files" msgstr "Bestanden _wegschrijven/verplaatsen" -#: .././config.py:4425 +#: .././config.py:4463 msgid "File write options" msgstr "Wegschrijfopties" -#: .././config.py:4430 +#: .././config.py:4468 msgid "Write video's description to a .description file" msgstr "Video-omschrijving wegschrijven naar .description-bestand" -#: .././config.py:4437 +#: .././config.py:4475 msgid "Write video's metadata to an .info.json file" msgstr "Video-metagegevens wegschrijven naar .info.json-bestand" -#: .././config.py:4445 +#: .././config.py:4483 msgid "Write video's annotations to an .annotations.xml file" msgstr "Video-aantekeningen wegschrijven naar .annotations.xml-bestand" -#: .././config.py:4454 +#: .././config.py:4492 msgid "" "Annotations are not downloaded when checking videos/channels/playlists/" "folders" @@ -4342,103 +4361,103 @@ msgstr "" "Aantekeningen worden niet gedownload bij het controleren van video's, " "kanalen, afspeellijsten en mappen" -#: .././config.py:4461 +#: .././config.py:4499 msgid "Write the video's thumbnail to the same folder" msgstr "Videominiatuur wegschrijven naar dezelfde map" -#: .././config.py:4469 +#: .././config.py:4507 msgid "File move options" msgstr "Verplaatsopties" -#: .././config.py:4474 +#: .././config.py:4512 msgid "Move video's description file into a sub-folder" msgstr "Video-omschrijvingsbestand verplaatsen naar onderliggende map" -#: .././config.py:4480 +#: .././config.py:4518 msgid "Write video's metadata file into a sub-folder" msgstr "Video-metagegevensbestand wegschrijven naar onderliggende map" -#: .././config.py:4486 +#: .././config.py:4524 msgid "Write video's annotations file into a sub-folder" msgstr "Video-aantekeningenbestand wegschrijven naar onderliggende map" -#: .././config.py:4492 +#: .././config.py:4530 msgid "Write the video's thumbnail into a sub-folder" msgstr "Videominiatuur wegschrijven naar onderliggende map" -#: .././config.py:4506 +#: .././config.py:4549 msgid "_Keep files" msgstr "Bestanden _behouden" -#: .././config.py:4512 +#: .././config.py:4555 msgid "Options during real (not simulated) downloads" msgstr "Opties tijdens echte (niet-gesimuleerde) downloads" -#: .././config.py:4518 .././config.py:4549 +#: .././config.py:4561 .././config.py:4592 msgid "Keep the description file after the download has finished" msgstr "" -#: .././config.py:4524 .././config.py:4555 +#: .././config.py:4567 .././config.py:4598 msgid "Keep the metadata file after the download has finished" msgstr "" -#: .././config.py:4530 .././config.py:4561 +#: .././config.py:4573 .././config.py:4604 msgid "Keep the annotations file after the download has finished" msgstr "" -#: .././config.py:4536 .././config.py:4567 +#: .././config.py:4579 .././config.py:4610 msgid "Keep the thumbnail file after the download has finished" msgstr "" -#: .././config.py:4543 +#: .././config.py:4586 msgid "Options during simulated (not real) downloads" msgstr "Opties tijdens gesimuleerde (niet echte) downloads" #. Add this tab... -#: .././config.py:4581 +#: .././config.py:4624 msgid "F_ormats" msgstr "F_ormaten" -#: .././config.py:4600 +#: .././config.py:4648 msgid "_Preferred" msgstr "_Voorkeur" -#: .././config.py:4608 +#: .././config.py:4655 msgid "Preferred format options" msgstr "Voorkeursformaatopties" -#: .././config.py:4614 +#: .././config.py:4661 msgid "Recognised video/audio formats" msgstr "Ondersteunde audio-/videoformaten" -#: .././config.py:4625 +#: .././config.py:4672 msgid "Add format" msgstr "Formaat toevoegen" -#: .././config.py:4631 +#: .././config.py:4678 msgid "List of preferred formats" msgstr "Lijst met voorkeursformaten" -#: .././config.py:4649 +#: .././config.py:4696 msgid "Remove format" msgstr "Formaat verwijderen" -#: .././config.py:4702 +#: .././config.py:4749 msgid "If a merge is required after post-processing, output to this format:" msgstr "" "Als er een samenvoeging moet plaatsvinden na het verwerken, schrijf dan weg " "naar het volgende formaat:" #. Add this tab... -#: .././config.py:4729 .././config.py:6277 +#: .././config.py:4781 .././config.py:6413 msgid "_Advanced" msgstr "Ge_avanceerd" -#: .././config.py:4738 +#: .././config.py:4789 msgid "Multiple format options" msgstr "Meerdere formaatopties" -#: .././config.py:4747 +#: .././config.py:4798 msgid "" "Multiple formats will not be downloaded, because an archive file will be " "created" @@ -4446,548 +4465,544 @@ msgstr "" "Meerdere formaten worden niet gedownload omdat er een archiefbestand wordt " "aangemaakt" -#: .././config.py:4750 +#: .././config.py:4801 msgid "The archive file can be disabled in the System Preferences window" msgstr "Het archiefbestand kan worden uitgeschakeld in het instellingenvenster" -#: .././config.py:4759 +#: .././config.py:4810 msgid "" "For each video, download the first available format from the preferred list" msgstr "" "Gebruik bij elke video het eerst beschikbare formaat van de voorkeurslijst" -#: .././config.py:4773 +#: .././config.py:4824 msgid "" "From the preferred list, download the first format that's available for all " "videos" msgstr "" "Gebruik bij alle video's het eerst beschikbare formaat van de voorkeurslijst" -#: .././config.py:4787 +#: .././config.py:4838 msgid "For each video, download all available formats from the preferred list" msgstr "Gebruik bij elke video alle beschikbare formaten van de voorkeurslijst" -#: .././config.py:4800 +#: .././config.py:4851 msgid "Download all available formats for all videos" msgstr "Gebruik alle beschikbare formaten bij alle video's" -#: .././config.py:4833 +#: .././config.py:4884 msgid "Other format options" msgstr "Overige formaatopties" -#: .././config.py:4838 +#: .././config.py:4889 msgid "Prefer free video formats, unless one is specified above" msgstr "Voorkeur voor vrije videoformaten, tenzij anders opgegeven" -#: .././config.py:4845 +#: .././config.py:4896 msgid "Do not download DASH-related data for YouTube videos" msgstr "Download geen DASH-gerelateerde gegevens bij YouTube-video's" -#: .././config.py:4924 +#: .././config.py:4985 msgid "_Playlists" msgstr "Afs_peellijsten" -#: .././config.py:4939 +#: .././config.py:5005 msgid "_Size limits" msgstr "Grootte_beperkingen" -#: .././config.py:4953 +#: .././config.py:5024 msgid "_Dates" msgstr "_Datums" -#: .././config.py:4965 +#: .././config.py:5041 msgid "_Views" msgstr "Weerga_ven" -#: .././config.py:4978 +#: .././config.py:5059 msgid "_Filtering" msgstr "_Filteren" -#: .././config.py:4992 +#: .././config.py:5078 msgid "_External" msgstr "_Extern" -#: .././config.py:5004 +#: .././config.py:5090 msgid "_Sound only" msgstr "Alleen _audio" -#: .././config.py:5009 +#: .././config.py:5095 msgid "Sound only options" msgstr "Audio-opties" -#: .././config.py:5015 +#: .././config.py:5101 msgid "" "Download each video, extract the sound, and then discard the original videos" msgstr "" "Download elke video, extraheer het geluid en verwerp dan de oorspronkelijke " "video's" -#: .././config.py:5020 +#: .././config.py:5106 msgid "(requires that FFmpeg or AVConv is installed on your system)" msgstr "(vereist FFmpeg of AVConv)" -#: .././config.py:5031 +#: .././config.py:5117 msgid "Use this audio format:" msgstr "Audioformaat:" -#: .././config.py:5047 +#: .././config.py:5133 msgid "Use this audio quality:" msgstr "Audiokwaliteit:" -#: .././config.py:5053 .././config.py:5131 +#: .././config.py:5139 .././config.py:5217 msgid "High" msgstr "Hoog" -#: .././config.py:5055 .././config.py:5133 +#: .././config.py:5141 .././config.py:5219 msgid "Low" msgstr "Laag" -#: .././config.py:5074 .././config.py:6122 +#: .././config.py:5160 .././config.py:6255 msgid "_Post-processing" msgstr "Na_verwerking" -#: .././config.py:5080 .././config.py:5414 +#: .././config.py:5166 .././config.py:5510 msgid "Post-processing options" msgstr "Naverwerkingsopties" -#: .././config.py:5086 +#: .././config.py:5172 msgid "Post-process video files to convert them to audio-only files" msgstr "Videobestanden naverwerken om te converteren naar audiobestanden" -#: .././config.py:5094 +#: .././config.py:5180 msgid "Prefer AVConv over FFmpeg" msgstr "Voorkeur voor AVConv" -#: .././config.py:5103 +#: .././config.py:5189 msgid "Prefer FFmpeg over AVConv (default)" msgstr "Voorkeur voor FFmpeg (standaard)" -#: .././config.py:5112 +#: .././config.py:5198 msgid "Audio format of the post-processed file" msgstr "Audioformaat van naverwerkt bestand" -#: .././config.py:5126 +#: .././config.py:5212 msgid "Audio quality of the post-processed file" msgstr "Audiokwaliteit van naverwerkt bestand" -#: .././config.py:5144 +#: .././config.py:5230 msgid "Encode video to another format, if necessary" msgstr "Video converteren naar ander formaat (indien nodig)" -#: .././config.py:5157 +#: .././config.py:5243 msgid "Arguments to pass to post-processor" msgstr "Aanvullende opties voor naverwerking" -#: .././config.py:5168 +#: .././config.py:5254 msgid "Keep original file after processing it" msgstr "Oorspronkelijk bestand bewaren na verwerken" -#: .././config.py:5176 +#: .././config.py:5262 msgid "Merge subtitles file with video (.mp4 only)" msgstr "Ondertiteling samenvoegen met video (alleen .mp4)" -#: .././config.py:5188 +#: .././config.py:5274 msgid "Embed thumbnail in audio file as cover art" msgstr "Miniatuur instellen als hoes van audiobestand" -#: .././config.py:5195 +#: .././config.py:5281 msgid "Write metadata to the video file" msgstr "Metagegevens wegschrijven naar videobestand" -#: .././config.py:5202 +#: .././config.py:5288 msgid "Automatically correct known faults of the file" msgstr "Automatisch bekende bestandsfouten repareren" -#: .././config.py:5208 +#: .././config.py:5294 msgid "Do nothing" msgstr "Niets doen" -#: .././config.py:5209 +#: .././config.py:5295 msgid "Warn, but do nothing" msgstr "Waarschuwen, maar niets doen" -#: .././config.py:5210 +#: .././config.py:5296 msgid "Fix if possible, otherwise warn" msgstr "Indien mogelijk repareren, anders waarschuwen" #. Add this tab... -#: .././config.py:5228 +#: .././config.py:5314 msgid "S_ubtitles" msgstr "Ondert_iteling" -#: .././config.py:5249 +#: .././config.py:5340 msgid "Subtitles options" msgstr "Ondertitelopties" -#: .././config.py:5255 +#: .././config.py:5346 msgid "Don't download the subtitles file" msgstr "Geen ondertitelbestand downloaden" -#: .././config.py:5266 +#: .././config.py:5357 msgid "Download the automatic subtitles file (YouTube only)" msgstr "Ondertitelbestand automatisch downloaden (alleen YouTube)" -#: .././config.py:5279 +#: .././config.py:5370 msgid "Download all available subtitles files" msgstr "Alle beschikbare ondertitelbestanden downloaden" -#: .././config.py:5292 +#: .././config.py:5383 msgid "Download subtitles file for these languages:" msgstr "Ondertitelbestanden downloaden van de volgende talen:" -#: .././config.py:5316 +#: .././config.py:5407 msgid "Add language" msgstr "Taal toevoegen" -#: .././config.py:5330 +#: .././config.py:5421 msgid "Remove language" msgstr "Taal verwijderen" -#: .././config.py:5388 +#: .././config.py:5484 msgid "_More options" msgstr "_Meer opties" -#: .././config.py:5394 +#: .././config.py:5490 msgid "Subtitle format options" msgstr "Ondertitelformaatopties" -#: .././config.py:5400 +#: .././config.py:5496 msgid "Preferred subtitle format(s), e.g. 'srt', 'vtt', 'srt/ass/vtt/lrc/best'" msgstr "Voorkeursondertitelformaat, bijv. 'srt', 'vtt', 'srt/ass/vtt/lrc/best'" -#: .././config.py:5419 +#: .././config.py:5515 msgid "Applies to .mp4 videos only; requires FFmpeg/AVConv" msgstr "Alleen van toepassing op .mp4-video's - vereist FFmpeg of AVConv" -#: .././config.py:5426 +#: .././config.py:5522 msgid "During post-processing, merge subtitles file with video" msgstr "Ondertitelbestand samenvoegen met video tijdens naverwerking" #. Add this tab... -#: .././config.py:5446 +#: .././config.py:5542 msgid "_yt-dlp" msgstr "" -#: .././config.py:5481 +#: .././config.py:5581 msgid "List of output filename templates" msgstr "" -#: .././config.py:5482 .././config.py:5616 .././config.py:5756 -#: .././config.py:5806 .././config.py:5858 .././config.py:5935 -#: .././config.py:5983 .././config.py:6024 .././config.py:6075 -#: .././config.py:6131 .././config.py:6211 +#: .././config.py:5582 .././config.py:5720 .././config.py:5864 +#: .././config.py:5918 .././config.py:5974 .././config.py:6049 +#: .././config.py:6102 .././config.py:6147 .././config.py:6203 +#: .././config.py:6263 .././config.py:6347 msgid "yt-dlp only" msgstr "" -#: .././config.py:5487 +#: .././config.py:5587 msgid "Overrides the output template in the 'Files' tab" msgstr "" -#: .././config.py:5506 +#: .././config.py:5606 msgid "Template" msgstr "" -#: .././config.py:5525 .././config.py:5653 +#: .././config.py:5625 .././config.py:5757 msgid "Output type" msgstr "" -#: .././config.py:5538 +#: .././config.py:5638 msgid "Output template" msgstr "" -#: .././config.py:5560 .././config.py:5700 .././config.py:18780 -#: .././config.py:19625 .././config.py:21262 .././config.py:21527 +#: .././config.py:5660 .././config.py:5804 .././config.py:19559 +#: .././config.py:20424 .././config.py:22178 .././config.py:22451 msgid "Delete" msgstr "Verwijderen" -#: .././config.py:5569 .././config.py:5709 .././config.py:17346 -#: .././config.py:19641 .././config.py:21278 .././config.py:21543 +#: .././config.py:5669 .././config.py:5813 .././config.py:18069 +#: .././config.py:20440 .././config.py:22194 .././config.py:22467 msgid "Refresh list" msgstr "Lijst verversen" -#: .././config.py:5607 +#: .././config.py:5712 msgid "_Paths" msgstr "" -#: .././config.py:5615 +#: .././config.py:5719 msgid "List of output paths" msgstr "" -#: .././config.py:5634 +#: .././config.py:5738 msgid "Path" msgstr "" -#: .././config.py:5668 +#: .././config.py:5772 msgid "Output path" msgstr "" -#: .././config.py:5755 +#: .././config.py:5863 msgid "Video Selection Options" msgstr "" -#: .././config.py:5761 +#: .././config.py:5869 msgid "Stop download process when encountering a file in the archive" msgstr "" -#: .././config.py:5769 +#: .././config.py:5877 msgid "" "Stop download process when encountering a file that has been filtered out" msgstr "" -#: .././config.py:5778 +#: .././config.py:5886 msgid "Number of failures allowed before rest of playlist is skipped" msgstr "" -#: .././config.py:5806 +#: .././config.py:5918 msgid "Download Options" msgstr "" -#: .././config.py:5813 +#: .././config.py:5925 msgid "Number of fragments of a DASH/HLS video to download concurrently" msgstr "" -#: .././config.py:5828 +#: .././config.py:5940 msgid "Minimum download rate (bytes/sec) below which throttling is assumed" msgstr "" -#: .././config.py:5858 +#: .././config.py:5974 msgid "Filesystem Options" msgstr "" -#: .././config.py:5864 +#: .././config.py:5980 msgid "Force filenames to be MS Windows compatible" msgstr "" -#: .././config.py:5872 +#: .././config.py:5988 msgid "Limit filnema lenght (excluding extension) to this many characters" msgstr "" -#: .././config.py:5887 +#: .././config.py:6003 msgid "Overwrite all video and metadata files (includes '--no-continue')" msgstr "" -#: .././config.py:5896 +#: .././config.py:6012 msgid "Write playlist metadata in addition to video metadata" msgstr "" -#: .././config.py:5904 +#: .././config.py:6020 msgid "Write all fields, including private fields, to the .info.json file" msgstr "" -#: .././config.py:5913 -msgid "Retrieve video comments and add to .info.json file" -msgstr "" - -#: .././config.py:5928 +#: .././config.py:6042 msgid "_Shortcuts" msgstr "" -#: .././config.py:5934 +#: .././config.py:6048 msgid "Internet Shortcut Options" msgstr "" -#: .././config.py:5940 +#: .././config.py:6054 msgid "Write an internet shortcut file (.url, .webloc or .desktop)" msgstr "" -#: .././config.py:5947 +#: .././config.py:6061 msgid "Write a Windows internet shortcut file (.url)" msgstr "" -#: .././config.py:5954 +#: .././config.py:6068 msgid "Write a macOS inernet shortcut file (.webloc)" msgstr "" -#: .././config.py:5961 +#: .././config.py:6075 msgid "Write a Linux internet shortcut file (.desktop)" msgstr "" -#: .././config.py:5976 +#: .././config.py:6095 msgid "V_erbosity" msgstr "" -#: .././config.py:5982 +#: .././config.py:6101 msgid "Verbosity and Simulation Options" msgstr "" -#: .././config.py:5989 +#: .././config.py:6108 msgid "" "Ignore 'No video formats' error (useful for extracting metadata from " "unavailable videos)" msgstr "" -#: .././config.py:5999 +#: .././config.py:6118 msgid "Force download archive entries to be written as long as no errors occur" msgstr "" -#: .././config.py:6016 +#: .././config.py:6140 msgid "_Workarounds" msgstr "" -#: .././config.py:6024 +#: .././config.py:6147 msgid "Workaround Options" msgstr "" -#: .././config.py:6031 +#: .././config.py:6154 msgid "Number of seconds to sleep between requests during data extraction" msgstr "" -#: .././config.py:6046 +#: .././config.py:6169 msgid "Number of seconds to sleep before each download (or minimum time)" msgstr "" -#: .././config.py:6068 +#: .././config.py:6196 msgid "Fo_rmats" msgstr "" -#: .././config.py:6074 +#: .././config.py:6202 msgid "Video Format Options" msgstr "" -#: .././config.py:6080 +#: .././config.py:6208 msgid "Allow multiple video streams to be merged into a single file" msgstr "" -#: .././config.py:6087 +#: .././config.py:6215 msgid "Allow multiple audio streams to be merged into a single file" msgstr "" -#: .././config.py:6095 +#: .././config.py:6223 msgid "Check formats selected are actually downloadable (Experimental" msgstr "" -#: .././config.py:6105 +#: .././config.py:6233 msgid "" "Allow unplayable formats to be listed and downloaded (also disables post-" "processing)" msgstr "" -#: .././config.py:6130 +#: .././config.py:6262 msgid "Post-Processing Options" msgstr "" -#: .././config.py:6136 +#: .././config.py:6268 msgid "Remux video into another container if necessary" msgstr "" -#: .././config.py:6155 +#: .././config.py:6287 msgid "Embed metadata including chapter markers (if supported by format)" msgstr "" -#: .././config.py:6164 +#: .././config.py:6296 msgid "Convert thumbnails to another format" msgstr "" -#: .././config.py:6179 +#: .././config.py:6311 msgid "Split video into multiple files based on internal chapters" msgstr "" -#: .././config.py:6188 +#: .././config.py:6320 msgid "N.B. The 'chapter' prefix can be used in the 'Output' and 'Paths' tabs" msgstr "" -#: .././config.py:6203 +#: .././config.py:6340 msgid "E_xtractor" msgstr "" -#: .././config.py:6211 +#: .././config.py:6347 msgid "Extractor Options" msgstr "" -#: .././config.py:6234 +#: .././config.py:6370 msgid "Do not process dynamic DASH manifests" msgstr "" -#: .././config.py:6242 +#: .././config.py:6378 msgid "" "Split HLS playlists to different formats at discontinuities such as ad breaks" msgstr "" -#: .././config.py:6252 +#: .././config.py:6388 msgid "Extractor Arguments" msgstr "" -#: .././config.py:6257 +#: .././config.py:6393 msgid "One argument per line, e.g." msgstr "" -#: .././config.py:6299 +#: .././config.py:6440 msgid "_Configurations" msgstr "" -#: .././config.py:6307 +#: .././config.py:6447 msgid "Configuration file options" msgstr "" -#: .././config.py:6312 +#: .././config.py:6452 msgid "Use the downloader's configuration file" msgstr "" -#: .././config.py:6323 .././config.py:6501 +#: .././config.py:6463 .././config.py:6649 msgid "File loaded from:" msgstr "" -#: .././config.py:6334 .././config.py:6512 +#: .././config.py:6474 .././config.py:6660 msgid "Save file" msgstr "" -#: .././config.py:6375 +#: .././config.py:6520 msgid "_Authentication" msgstr "_Authenticatie" -#: .././config.py:6383 +#: .././config.py:6527 msgid "Authentication options" msgstr "_Authenticatie-opties" -#: .././config.py:6388 +#: .././config.py:6532 msgid "Username with which to log in" msgstr "Gebruikersnaam" -#: .././config.py:6399 +#: .././config.py:6543 msgid "Password with which to log in" msgstr "Wachtwoord" -#: .././config.py:6410 +#: .././config.py:6554 msgid "Password required for this URL" msgstr "Wachtwoord vereist bij deze url" -#: .././config.py:6421 +#: .././config.py:6565 msgid "Two-factor authentication code" msgstr "Code van authenticatie in twee stappen" -#: .././config.py:6433 +#: .././config.py:6577 msgid "Adobe Pass multiple-system operator (TV provider) identifier" msgstr "" -#: .././config.py:6446 +#: .././config.py:6590 msgid " Adobe Pass multiple-system operator account login" msgstr "" -#: .././config.py:6457 +#: .././config.py:6601 msgid "Adobe Pass multiple-system operator account password" msgstr "" -#: .././config.py:6476 +#: .././config.py:6625 msgid "._netrc" msgstr "" -#: .././config.py:6484 +#: .././config.py:6632 msgid ".netrc options" msgstr "" -#: .././config.py:6489 +#: .././config.py:6637 msgid "Use .netrc authentication data" msgstr ".netrc-authenticatiegegevens gebruiken" -#: .././config.py:6556 +#: .././config.py:6709 msgid "_Network" msgstr "_Netwerk" -#: .././config.py:6562 +#: .././config.py:6714 msgid "Network options" msgstr "Netwerkopties" -#: .././config.py:6568 +#: .././config.py:6720 msgid "" "Use this HTTP/HTTPS proxy (if set, overrides the proxies in Tartube's " "preferences window" @@ -4995,79 +5010,79 @@ msgstr "" "HTTP-/HTTPS-proxy gebruiken (indien ingesteld overschrijft dit de waarde in " "het instellingenvenster)" -#: .././config.py:6581 +#: .././config.py:6733 msgid "Time to wait for socket connection, before giving up" msgstr "Wachttijd voor socketverbinding alvorens op te geven" -#: .././config.py:6592 +#: .././config.py:6744 msgid "Bind with this Client-side IP address" msgstr "Koppelen aan ip-adres aan clientzijde" -#: .././config.py:6603 +#: .././config.py:6755 msgid "Connect using IPv4 only" msgstr "Alleen verbinden middels ipv4" -#: .././config.py:6610 +#: .././config.py:6762 msgid "Connect using IPv6 only" msgstr "Alleen verbinden middels ipv6" -#: .././config.py:6625 +#: .././config.py:6782 msgid "_Geo-restriction" msgstr "_Geografische beperking" -#: .././config.py:6633 +#: .././config.py:6789 msgid "Geo-restriction options" msgstr "Geografische opties" -#: .././config.py:6638 +#: .././config.py:6794 msgid "Use this proxy to verify IP address" msgstr "Proxy gebruiken om ip-adres te verifiëren" -#: .././config.py:6649 +#: .././config.py:6805 msgid "Bypass using fake X-Forwarded-For HTTP header" msgstr "Omzeilen middels geveinsde X-Forwarded-For http-kop" -#: .././config.py:6656 +#: .././config.py:6812 msgid "Don't bypass using fake HTTP header" msgstr "Niet omzeilen middels geveinsde http-kop" -#: .././config.py:6663 +#: .././config.py:6819 msgid "Bypass geo-restriction with ISO 3166-2 country code" msgstr "Geografische beperking omzeilen middels ISO 3166-2-landcode" -#: .././config.py:6674 +#: .././config.py:6830 msgid "Bypass with explicit IP block in CIDR notation" msgstr "Omzeilen middels expliciete ip-blokkade in CIDR-notatie" -#: .././config.py:6698 +#: .././config.py:6858 msgid "Workaround options" msgstr "Omzeilopties" -#: .././config.py:6703 +#: .././config.py:6863 msgid "Custom user agent" msgstr "Aangepaste gebruikersagent" -#: .././config.py:6714 +#: .././config.py:6874 msgid "Custom referer if video access has restricted domain" msgstr "Aangepaste verwijzing als videotoegang een beperkt domein bevat" -#: .././config.py:6725 +#: .././config.py:6885 msgid "Minimum seconds to sleep before each download" msgstr "Minimumaantal seconden wachttijd alvorens te downloaden" -#: .././config.py:6738 +#: .././config.py:6898 msgid "Maximum seconds to sleep before each download" msgstr "Maximumaantal seconden wachttijd alvorens te downloaden" -#: .././config.py:6759 +#: .././config.py:6919 msgid "Force this encoding (experimental)" msgstr "Encodering afdwingen (experimenteel)" -#: .././config.py:6770 +#: .././config.py:6930 msgid "Suppress HTTPS certificate validation" msgstr "HTTPS-certificaatgoedkeuring onderdrukken" -#: .././config.py:6778 +#: .././config.py:6938 msgid "" "Use an unencrypted connection to retrieve information about videos (YouTube " "only)" @@ -5075,35 +5090,35 @@ msgstr "" "Onbeveiligde verbinding gebruiken om video-informatie op te halen (alleen " "YouTube)" -#: .././config.py:6860 +#: .././config.py:7020 msgid "Prefer HLS (HTTP Live Streaming)" msgstr "Voorkeur voor hls (http-livestreaming)" -#: .././config.py:6867 +#: .././config.py:7027 msgid "Prefer FFMpeg over native HLS downloader" msgstr "Voorkeur voor FFmpeg boven hls-downloader" -#: .././config.py:6874 +#: .././config.py:7034 msgid "Include advertisements (experimental feature)" msgstr "Reclame ook downloaden (experimenteel)" -#: .././config.py:6881 +#: .././config.py:7041 msgid "Ignore errors and continue the download operation" msgstr "Fouten negeren en downloaden voortzetten" -#: .././config.py:6888 +#: .././config.py:7048 msgid "Number of retries" msgstr "Aantal pogingen" -#: .././config.py:6909 +#: .././config.py:7069 msgid "Download videos suitable for this age" msgstr "Video's downloaden voor bepaalde leeftijdscategorie" -#: .././config.py:6930 +#: .././config.py:7090 msgid "Playlist options" msgstr "Afspeellijstopties" -#: .././config.py:6936 +#: .././config.py:7096 msgid "" "Channels and playlists are handled in the same way, so these options can be " "used with both" @@ -5111,112 +5126,112 @@ msgstr "" "Kanalen en afspeellijsten worden hetzelfde behandeld, dus zijn deze opties " "van toepassing op beide" -#: .././config.py:6943 +#: .././config.py:7103 msgid "Start downloading playlist from index" msgstr "Afspeellijst downloaden vanaf index" -#: .././config.py:6955 +#: .././config.py:7115 msgid "Stop downloading playlist at index" msgstr "Afspeellijst downloaden tot aan index" -#: .././config.py:6967 +#: .././config.py:7127 msgid "Abort operation after downloading this many videos" msgstr "Afbreken na downloaden van het volgend aantal video's" -#: .././config.py:6979 +#: .././config.py:7139 msgid "Abort downloading the playlist if an error occurs" msgstr "" "Afbreken als tijdens het downloaden van de afspeellijst een fout optreedt" -#: .././config.py:6986 +#: .././config.py:7146 msgid "Download playlist in reverse order" msgstr "Afspeellijst downloaden in omgekeerde volgorde" -#: .././config.py:6993 +#: .././config.py:7153 msgid "Download playlist in random order" msgstr "Afspeellijst downloaden in willekeurige volgorde" -#: .././config.py:7009 +#: .././config.py:7169 msgid "Video size limit options" msgstr "Bestandsgroottelimieten" -#: .././config.py:7014 +#: .././config.py:7174 msgid "Minimum file size for video downloads" msgstr "Minimale bestandsgrootte van videodownloads" -#: .././config.py:7032 +#: .././config.py:7192 msgid "Maximum file size for video downloads" msgstr "Maximale bestandsgrootte van videodownloads" -#: .././config.py:7060 +#: .././config.py:7220 msgid "Video date options" msgstr "Datumopties" -#: .././config.py:7065 +#: .././config.py:7225 msgid "Only videos uploaded on this date" msgstr "Alleen video's geüpload op de volgende datum" -#: .././config.py:7086 +#: .././config.py:7246 msgid "Only videos uploaded before this date" msgstr "Alleen video's geüpload vóór de volgende datum" -#: .././config.py:7107 +#: .././config.py:7267 msgid "Only videos uploaded after this date" msgstr "Alleen video's geüpload ná de volgende datum" -#: .././config.py:7138 +#: .././config.py:7298 msgid "Video views options" msgstr "Videoweergaven" -#: .././config.py:7143 +#: .././config.py:7303 msgid "Minimum number of views" msgstr "Minimumaantal weergaven" -#: .././config.py:7155 +#: .././config.py:7315 msgid "Maximum number of views" msgstr "Maximumaantal weergaven" -#: .././config.py:7181 +#: .././config.py:7341 msgid "Video filtering options" msgstr "Videofiters" -#: .././config.py:7186 +#: .././config.py:7346 msgid "Download only matching titles (regex or caseless substring)" msgstr "Alleen overeenkomende titels downloaden (reguliere uitdrukkingen)" -#: .././config.py:7198 +#: .././config.py:7358 msgid "Don't download only matching titles (regex or caseless substring)" msgstr "Niet alleen overeenkomende titels downloaden (reguliere uitdrukkingen)" -#: .././config.py:7211 +#: .././config.py:7371 msgid "Generic video filter, for example:" msgstr "Algemeen videofilter, bijvoorbeeld:" -#: .././config.py:7232 +#: .././config.py:7392 msgid "External downloader options" msgstr "Extern downloadprogramma" -#: .././config.py:7237 +#: .././config.py:7397 msgid "Use this external downloader" msgstr "Extern downloadprogramma gebruiken" -#: .././config.py:7255 +#: .././config.py:7415 msgid "Arguments to pass to external downloader" msgstr "Aanvullende opties voor extern downloadprogramma" -#: .././config.py:7353 +#: .././config.py:7513 msgid "Select the cookie jar file" msgstr "Kies het cookie-jarbestand" -#: .././config.py:7465 +#: .././config.py:7625 msgid "Could not save the downloader's configuration file" msgstr "" -#: .././config.py:7476 +#: .././config.py:7636 msgid "Downloader's configuration file saved" msgstr "" -#: .././config.py:7732 +#: .././config.py:7892 msgid "" "This option won't work unless the format is also added to the list of " "preferred formats above" @@ -5224,15 +5239,15 @@ msgstr "" "Deze optie werkt niet als het formaat is toegevoegd aan bovenstaande lijst " "met voorkeursformaten" -#: .././config.py:7923 +#: .././config.py:8083 msgid "Could not save the .netrc file" msgstr "" -#: .././config.py:7940 +#: .././config.py:8100 msgid ".netrc file saved" msgstr "" -#: .././config.py:7998 +#: .././config.py:8158 msgid "" "Fewer download options will be visible when you click the 'Apply' or 'Reset' " "buttons (or when you close and then re-open the window)" @@ -5240,12 +5255,12 @@ msgstr "" "Als je op 'Toepassen' of 'Standaardwaarden' klikt (of het venster opnieuw " "opent), worden er minder downloadopties getoond" -#: .././config.py:8008 +#: .././config.py:8168 msgid "Show advanced download options (when window re-opens)" msgstr "" "Uitgebreide downloadopties tonen (als het venster opnieuw wordt geopend)" -#: .././config.py:8021 +#: .././config.py:8181 msgid "" "More download options will be visible when you click the 'Apply' or 'Reset' " "buttons (or when you close and then re-open the window)" @@ -5253,73 +5268,73 @@ msgstr "" "Als je op 'Toepassen' of 'Standaardwaarden' klikt (of het venster opnieuw " "opent), worden er meer downloadopties getoond" -#: .././config.py:8031 +#: .././config.py:8191 msgid "Hide advanced download options (when window re-opens)" msgstr "" "Uitgebreide downloadopties verbergen (als het venster opnieuw wordt geopend)" -#: .././config.py:8490 +#: .././config.py:8650 msgid "Select the output folder" msgstr "" -#: .././config.py:8492 +#: .././config.py:8652 msgid "Select the output directory" msgstr "" -#: .././config.py:8542 +#: .././config.py:8702 msgid "FFmpeg options" msgstr "FFmpeg-opties" #. Replace the 'OK' button with a 'Process files' button -#: .././config.py:8895 .././config.py:12132 +#: .././config.py:9055 .././config.py:12281 msgid "Process files" msgstr "Bestanden verwerken" -#: .././config.py:8897 .././config.py:12134 +#: .././config.py:9057 .././config.py:12283 msgid "Process the files with FFmpeg" msgstr "Verwerk de bestanden met FFmpeg" -#: .././config.py:8914 +#: .././config.py:9073 msgid "Name for these FFmpeg options" msgstr "Naam van FFmpeg-opties" -#: .././config.py:8932 +#: .././config.py:9091 msgid "Extra command line options (e.g. --help)" msgstr "Aanvullende opdrachtregelopties (bijv. --help)" -#: .././config.py:8943 +#: .././config.py:9102 msgid "System command, based on all FFmpeg options in this window:" msgstr "Systeemopdracht, op basis van alle FFmpeg-opties binnen dit venster:" -#: .././config.py:8974 +#: .././config.py:9133 msgid "Show fewer FFmpeg options" msgstr "Minder FFmpeg-opties tonen" -#: .././config.py:8976 +#: .././config.py:9135 msgid "Show more FFmpeg options" msgstr "Meer FFmpeg-opties tonen" -#: .././config.py:8986 +#: .././config.py:9145 msgid "Import current FFmpeg options into this window" msgstr "Importeer huidige FFmpeg-opties naar dit venster" -#: .././config.py:9001 +#: .././config.py:9160 msgid "Completely reset all FFmpeg options to their default values" msgstr "Zet alle FFmpeg-opties terug op hun standaardwaarden" -#: .././config.py:9017 +#: .././config.py:9176 msgid "Add to end of filename:" msgstr "Toevoegen achter bestandsnaam:" -#: .././config.py:9027 +#: .././config.py:9186 msgid "If regex matches filename:" msgstr "Als regex overeenkomt met bestandsnaam:" -#: .././config.py:9041 +#: .././config.py:9200 msgid "...then apply substitution:" msgstr "...pas dan vervanging toe:" -#: .././config.py:9054 +#: .././config.py:9213 msgid "" "If the video/audio file is renamed, also rename the thumbnail (but not vice-" "versa)" @@ -5327,55 +5342,55 @@ msgstr "" "Als het audio- of videobestand van naam wijzigt, wijzig dan ook de naam van " "de miniatuur (maar niet vice-versa)" -#: .././config.py:9065 +#: .././config.py:9224 msgid "Change file extension:" msgstr "Bestandsextensie aanpassen:" -#: .././config.py:9079 +#: .././config.py:9238 msgid "After changing the file extension, delete the original file" msgstr "Oorspronkelijk bestand verwijderen na aanpassen van extensie" -#: .././config.py:9150 +#: .././config.py:9309 msgid "_Settings" msgstr "In_stellingen" -#: .././config.py:9164 +#: .././config.py:9322 msgid "Downloaded video/audio" msgstr "Gedownloade audio/video" -#: .././config.py:9173 +#: .././config.py:9331 msgid "with audio" msgstr "met audio" -#: .././config.py:9186 .././config.py:9263 .././config.py:10796 +#: .././config.py:9344 .././config.py:9421 .././config.py:10943 msgid "Thumbnail" msgstr "Miniatuurvoorbeeld" -#: .././config.py:9198 +#: .././config.py:9356 msgid "Output" msgstr "" -#: .././config.py:9227 +#: .././config.py:9385 msgid "Video clip" msgstr "" -#: .././config.py:9239 +#: .././config.py:9397 msgid "Video slice" msgstr "" -#: .././config.py:9251 +#: .././config.py:9409 msgid "Merge video/audio" msgstr "" -#: .././config.py:9361 +#: .././config.py:9519 msgid "Audio bitrate" msgstr "Audiobitsnelheid" -#: .././config.py:9375 +#: .././config.py:9533 msgid "How to set the quality" msgstr "Kwaliteit instellen" -#: .././config.py:9380 +#: .././config.py:9538 msgid "" "FFmpeg always encodes according to a Rate Factor that specifies the quality " "of the result." @@ -5383,7 +5398,7 @@ msgstr "" "FFmpeg gebruikt altijd op basis van de snelheidsfactor die de kwaliteit " "aangeeft." -#: .././config.py:9383 +#: .././config.py:9541 msgid "" "Instead of directly specifying the Rate Factor, an average bit rate can be " "specified. FFmpeg will then determine the optimal Rate Factor in a first " @@ -5392,7 +5407,7 @@ msgstr "" "In plaats daarvan kan een gemiddelde bitsnelheid worden ingesteld. FFmpeg " "bepaalt dan de optimale snelheidsfactor bij de eerste overdracht." -#: .././config.py:9387 +#: .././config.py:9545 msgid "" "In fact the first pass is only used for determining the Rate Factor, no " "other data is carried over into the second pass." @@ -5400,7 +5415,7 @@ msgstr "" "De eerste overdracht wordt alleen gebruikt om de factor te bepalen en niet " "om andere gegevens over te dragen." -#: .././config.py:9390 +#: .././config.py:9548 msgid "" "Specifying an average bitrate but running only one pass is possible, but not " "recommended. FFmpeg would then encode the beginning of the video with a " @@ -5411,193 +5426,193 @@ msgstr "" "aanbevolen. FFmpeg werkt dan alleen het begin van de video af met een " "willekeurige snelheidsfactor en past het einde aan om het doel te bereiken." -#: .././config.py:9403 +#: .././config.py:9561 msgid "Manual rate factor" msgstr "Aangepaste snelheidsfactor" -#: .././config.py:9412 +#: .././config.py:9570 msgid "Determine from target bitrate (2-Pass)" msgstr "Bepalen op basis van doelbitsnelheid (2-pass)" -#: .././config.py:9422 +#: .././config.py:9580 msgid "Rate factor" msgstr "Snelheidsfactor" -#: .././config.py:9434 +#: .././config.py:9589 msgid "Lossless" msgstr "Lossless" -#: .././config.py:9434 +#: .././config.py:9589 msgid "Large file" msgstr "Groot bestand" -#: .././config.py:9456 +#: .././config.py:9611 msgid "Bad quality" msgstr "Slechte kwaliteit" -#: .././config.py:9456 +#: .././config.py:9611 msgid "Small file" msgstr "Klein bestand" -#: .././config.py:9463 +#: .././config.py:9618 msgid "Name of dummy file" msgstr "Naam van rekwisietbestand" -#: .././config.py:9467 +#: .././config.py:9622 msgid "A dummy file is created during the first pass." msgstr "Er wordt tijdens de eerste overdracht een rekwisietbestand aangemaakt." -#: .././config.py:9471 +#: .././config.py:9626 msgid "Use the output file" msgstr "Uitvoerbestand gebruiken" -#: .././config.py:9472 +#: .././config.py:9627 msgid "Dummy" msgstr "Rekwisiet" -#: .././config.py:9473 +#: .././config.py:9628 msgid "/dev/null (Linux)" msgstr "/dev/null (Linux)" -#: .././config.py:9474 +#: .././config.py:9629 msgid "NUL (MS Windows)" msgstr "NUL (MS Windows)" -#: .././config.py:9486 +#: .././config.py:9641 msgid "Patience preset" msgstr "Geduldsinstelling" -#: .././config.py:9491 +#: .././config.py:9646 msgid "Ultra fast" msgstr "Ontzettend snel" -#: .././config.py:9492 +#: .././config.py:9647 msgid "Super fast" msgstr "Heel erg snel" -#: .././config.py:9493 +#: .././config.py:9648 msgid "Very fast" msgstr "Erg snel" -#: .././config.py:9494 .././config.py:9592 +#: .././config.py:9649 .././config.py:9747 msgid "Faster" msgstr "Sneller" -#: .././config.py:9495 +#: .././config.py:9650 msgid "Fast" msgstr "Snel" -#: .././config.py:9496 +#: .././config.py:9651 msgid "Medium (default)" msgstr "Gemiddeld (standaard)" -#: .././config.py:9497 +#: .././config.py:9652 #, python-format msgid "Slow (file about 5-10% smaller than medium)" msgstr "Langzaam (ongeveer 5-10% kleiner bestand dan gemiddeld)" -#: .././config.py:9498 +#: .././config.py:9653 #, python-format msgid "Slower (file about 15% smaller than medium)" msgstr "Langzamer (ongeveer 15% kleiner bestand dan gemiddeld)" -#: .././config.py:9499 +#: .././config.py:9654 #, python-format msgid "Very slow (file about 17% smaller than medium)" msgstr "Erg langzaam (ongeveer 17% kleiner bestand dan gemiddeld)" -#: .././config.py:9510 +#: .././config.py:9665 msgid "GPU encoding" msgstr "" -#: .././config.py:9526 +#: .././config.py:9681 msgid "Hardware acceleration" msgstr "" -#: .././config.py:9586 +#: .././config.py:9741 msgid "Palette:" msgstr "Palet:" -#: .././config.py:9593 +#: .././config.py:9748 msgid "Uses dithering to a standard palette provided by FFmpeg" msgstr "Gebruikt ruisonderdrukking op basis van een standaardpalet van FFmpeg" -#: .././config.py:9594 +#: .././config.py:9749 msgid "Can cause dithering artefacts and slight banding" msgstr "Kan vervormingen en lichte verkleuringen veroorzaken" -#: .././config.py:9603 +#: .././config.py:9758 msgid "Better" msgstr "Beter" -#: .././config.py:9604 +#: .././config.py:9759 msgid "Determines an optimized palette for the video" msgstr "Stelt een geoptimaliseerd palet vast voor de video" -#: .././config.py:9605 +#: .././config.py:9760 msgid "Uses two passes and a temporary file for the palette" msgstr "Gebruikt twee overdrachten en een tijdelijk bestand voor het palet" -#: .././config.py:9660 .././config.py:10308 +#: .././config.py:9815 .././config.py:10451 msgid "Split videos using their own timestamps" msgstr "" -#: .././config.py:9669 .././config.py:10319 +#: .././config.py:9824 .././config.py:10462 msgid "Split videos using these timestamps" msgstr "" -#: .././config.py:9703 .././config.py:9892 .././config.py:10355 -#: .././config.py:10566 .././config.py:12985 .././config.py:13163 +#: .././config.py:9858 .././config.py:10043 .././config.py:10498 +#: .././config.py:10705 .././config.py:13130 .././config.py:13303 msgid "Start" msgstr "" -#: .././config.py:9703 .././config.py:10355 .././config.py:12985 +#: .././config.py:9858 .././config.py:10498 .././config.py:13130 msgid "Clip title" msgstr "" -#: .././config.py:9778 .././config.py:10430 .././config.py:13049 +#: .././config.py:9929 .././config.py:10569 .././config.py:13190 msgid "Add timestamp" msgstr "" -#: .././config.py:9787 .././config.py:10439 .././config.py:13060 +#: .././config.py:9938 .././config.py:10578 .././config.py:13201 msgid "Delete timestamp" msgstr "" -#: .././config.py:9797 .././config.py:10449 .././config.py:13069 +#: .././config.py:9948 .././config.py:10588 .././config.py:13210 msgid "Clip preferences" msgstr "" -#: .././config.py:9849 .././config.py:10519 +#: .././config.py:10000 .././config.py:10658 msgid "Use the videos' own slice data" msgstr "" -#: .././config.py:9858 .././config.py:10530 +#: .././config.py:10009 .././config.py:10669 msgid "Use this slice data" msgstr "" -#: .././config.py:9892 .././config.py:9919 .././config.py:10566 -#: .././config.py:10593 .././config.py:13163 .././config.py:13182 +#: .././config.py:10043 .././config.py:10066 .././config.py:10705 +#: .././config.py:10728 .././config.py:13303 .././config.py:13322 msgid "Category" msgstr "" -#: .././config.py:9892 .././config.py:9939 .././config.py:10566 -#: .././config.py:10613 .././config.py:13163 .././config.py:13194 +#: .././config.py:10043 .././config.py:10086 .././config.py:10705 +#: .././config.py:10748 .././config.py:13303 .././config.py:13334 msgid "Action Type" msgstr "" -#: .././config.py:9986 .././config.py:10660 .././config.py:13237 +#: .././config.py:10130 .././config.py:10792 .././config.py:13373 msgid "Add slice" msgstr "" -#: .././config.py:9996 +#: .././config.py:10140 msgid "Delete sliuce" msgstr "" -#: .././config.py:10007 .././config.py:10682 .././config.py:13258 +#: .././config.py:10151 .././config.py:10814 .././config.py:13394 msgid "SponsorBlock settings" msgstr "" -#: .././config.py:10110 +#: .././config.py:10254 msgid "" "This merges a video and audio file with the same name into a single video " "file,\n" @@ -5606,102 +5621,102 @@ msgstr "" "Hiermee voeg je een audio- en videobestand samen onder dezelfde naam,\n" "met toevoeging van de op het tabblad 'Bestand' opgegeven extensie" -#: .././config.py:10151 +#: .././config.py:10295 msgid "The thumbnail's format can be changed in the File tab" msgstr "Het miniatuurformaat kan worden aangepast op het tabblad 'Bestand'" -#: .././config.py:10166 +#: .././config.py:10310 msgid "_Optimisations" msgstr "_Optimalisaties" -#: .././config.py:10172 +#: .././config.py:10315 msgid "" "Optimise for fast seeking (shorter keyframe interval, about 10% larger file)" msgstr "" "Optimaliseren voor snel doorspoelen (kortere frames, ongeveer 10% groter " "bestand)" -#: .././config.py:10180 +#: .././config.py:10323 msgid "Input video is a high-quality movie" msgstr "Invoervideo is van hoge kwaliteit" -#: .././config.py:10186 +#: .././config.py:10329 msgid "Input video is an animated movie" msgstr "Invoervideo is een tekenfilm" -#: .././config.py:10192 +#: .././config.py:10335 msgid "Input video contains film grain" msgstr "Invoervideo bevat spikkels" -#: .././config.py:10198 +#: .././config.py:10341 msgid "Input video is an image slideshow" msgstr "Invoervideo is een diavoorstelling" -#: .././config.py:10204 +#: .././config.py:10347 msgid "Optimise for really weak CPU playback devices" msgstr "Optimaliseren voor zwakke processoren (cpu's)" -#: .././config.py:10211 +#: .././config.py:10354 msgid "Optimise for really old devices (requires rate factor above 0)" msgstr "" "Optimaliseren voor zeer oude apparaten (vereist een factor hoger dan 0)" -#: .././config.py:10222 +#: .././config.py:10365 msgid "" "Move headers to beginning of file (so it can play while still downloading)" msgstr "" "Koppen verplaatsen naar begin van bestand (om te kijken tijdens het " "downloaden)" -#: .././config.py:10230 +#: .././config.py:10373 msgid "Fast encoding and low latency streaming" msgstr "Snel encoderen en streamen op lage snelheid" -#: .././config.py:10236 +#: .././config.py:10379 msgid "Limit bitrate (Mbit/s)" msgstr "Bitsnelheid beperken (Mbit/s)" -#: .././config.py:10253 +#: .././config.py:10396 msgid "Assuming a receiving buffer (seconds)" msgstr "Ontvangbuffer (in seconden)" -#: .././config.py:10286 .././config.py:19714 +#: .././config.py:10429 .././config.py:20701 msgid "_Clips" msgstr "" -#: .././config.py:10298 +#: .././config.py:10441 msgid "Split the video(s) to create video clips" msgstr "" -#: .././config.py:10502 .././config.py:13130 .././config.py:19913 +#: .././config.py:10641 .././config.py:13271 .././config.py:20904 msgid "_Slices" msgstr "" -#: .././config.py:10509 +#: .././config.py:10648 msgid "Remove slices from the video(s)" msgstr "" -#: .././config.py:10670 .././config.py:13249 +#: .././config.py:10802 .././config.py:13385 msgid "Delete slice" msgstr "" -#: .././config.py:10777 +#: .././config.py:10924 msgid "List of videos to be processed" msgstr "Lijst met te verwerken video's" -#: .././config.py:10796 .././downloads.py:6532 .././media.py:88 +#: .././config.py:10943 .././downloads.py:6564 .././media.py:88 msgid "Video" msgstr "Video" -#: .././config.py:10839 +#: .././config.py:10986 msgid "Show video properties and timestamps" msgstr "" -#: .././config.py:10848 +#: .././config.py:10995 msgid "Remove video from list" msgstr "Video verwijderen van lijst" -#: .././config.py:11771 +#: .././config.py:11920 msgid "" "Fewer FFmpeg options will be visible when you click the 'Apply' or 'Reset' " "buttons (or when you close and then re-open the window)" @@ -5709,12 +5724,12 @@ msgstr "" "Als je op 'Toepassen' of 'Standaardwaarden' klikt (of het venster opnieuw " "opent), worden er minder FFmpeg-opties getoond" -#: .././config.py:11781 +#: .././config.py:11930 msgid "Show more FFmpeg options (when window re-opens)" msgstr "" "Uitgebreide FFmpeg-opties tonen (als het venster opnieuw wordt geopend)" -#: .././config.py:11798 +#: .././config.py:11947 msgid "" "More FFmpeg options will be visible when you click the 'Apply' or 'Reset' " "buttons (or when you close and then re-open the window)" @@ -5722,181 +5737,237 @@ msgstr "" "Als je op 'Toepassen' of 'Standaardwaarden' klikt (of het venster opnieuw " "opent), worden er meer FFmpeg-opties getoond" -#: .././config.py:11808 +#: .././config.py:11957 msgid "Show fewer FFmpeg options (when window re-opens)" msgstr "Minder FFmpeg-opties tonen (als het venster opnieuw wordt geopend)" #. Add this tab... -#: .././config.py:12548 .././config.py:14018 .././config.py:14462 -#: .././config.py:15083 .././config.py:16105 +#: .././config.py:12703 .././config.py:14680 .././config.py:15119 +#: .././config.py:15733 .././config.py:16752 msgid "_General" msgstr "Al_gemeen" -#: .././config.py:12551 .././config.py:14021 .././config.py:14465 -#: .././config.py:15088 +#: .././config.py:12706 .././config.py:14683 .././config.py:15122 +#: .././config.py:15737 msgid "General properties" msgstr "Algemene informatie" -#: .././config.py:12605 +#: .././config.py:12756 msgid "Set the file (if this is the wrong one)" msgstr "Bestand instellen (als dit het verkeerde is)" -#: .././config.py:12620 +#: .././config.py:12767 msgid "Video downloaded" msgstr "" -#: .././config.py:12627 +#: .././config.py:12774 msgid "Video unwatched" msgstr "" -#: .././config.py:12634 +#: .././config.py:12781 msgid "Video has been split from an original" msgstr "" -#: .././config.py:12641 +#: .././config.py:12788 msgid "Video is archived" msgstr "De video is gearchiveerd" -#: .././config.py:12648 +#: .././config.py:12795 msgid "Video is bookmarked" msgstr "De video is toegevoegd aan de bladwijzers" -#: .././config.py:12655 +#: .././config.py:12802 msgid "Video is favourite" msgstr "De video is toegevoegd aan de favorieten" -#: .././config.py:12662 +#: .././config.py:12809 msgid "Video is in waiting list" msgstr "De video staat op de wachtlijst" -#: .././config.py:12669 +#: .././config.py:12816 msgid "Always simulate download of this video" msgstr "Downloaden altijd simuleren" -#: .././config.py:12734 +#: .././config.py:12881 msgid "Receive time" msgstr "Ontvangen om" -#: .././config.py:12768 +#: .././config.py:12915 msgid "_Live" msgstr "" -#: .././config.py:12774 +#: .././config.py:12920 msgid "Livestream properties" msgstr "Livestreaminformatie" -#: .././config.py:12779 +#: .././config.py:12925 msgid "Livestream status" msgstr "Livestreamstatus" -#: .././config.py:12790 +#: .././config.py:12936 msgid "Waiting to start" msgstr "Bezig met wachten op begin" -#: .././config.py:12792 +#: .././config.py:12938 msgid "Stream has started" msgstr "De stream is begonnen" -#: .././config.py:12794 +#: .././config.py:12940 msgid "Not a livestream" msgstr "Is geen livestream" -#: .././config.py:12797 +#: .././config.py:12943 msgid "Livestream message" msgstr "Livestreambericht" -#: .././config.py:12812 +#: .././config.py:12958 msgid "Video is pre-recorded" msgstr "De video is van tevoren opgenomen" -#: .././config.py:12823 +#: .././config.py:12969 msgid "Livestream actions" msgstr "Livestreamacties" -#: .././config.py:12830 +#: .././config.py:12976 msgid "When the livestream starts, show a desktop notification" msgstr "Melding tonen als de livestream begint" -#: .././config.py:12839 +#: .././config.py:12985 msgid "When the livestream starts, play an alarm" msgstr "Geluid afspelen als de livestream begint" -#: .././config.py:12849 +#: .././config.py:12995 msgid "When the livestream starts, open it in the system's web browser" msgstr "Livestream openen in webbrowser zodra deze begint" -#: .././config.py:12861 +#: .././config.py:13007 msgid "When the livestream starts, begin downloading it immediately" msgstr "Downloaden starten als de livestream begint" -#: .././config.py:12872 .././config.py:20268 +#: .././config.py:13018 .././config.py:21149 msgid "When a livestream stops, download it (overwriting any earlier file)" msgstr "" "Downloaden stoppen als de livestream begint (eerdere bestanden worden " "overschreven)" -#: .././config.py:12888 +#: .././config.py:13034 msgid "_Description" msgstr "_Omschrijving" -#: .././config.py:12893 +#: .././config.py:13039 msgid "Video description" msgstr "Video-omschrijving" -#: .././config.py:12906 +#: .././config.py:13052 msgid "Update from the description file, and set the line length to:" msgstr "" -#: .././config.py:12926 -msgid "Clear the description (does not modify the description file)" +#: .././config.py:13072 +msgid "Clear the description (does not modify the file)" msgstr "" -#: .././config.py:12953 +#: .././config.py:13099 msgid "_Timestamps" msgstr "" -#: .././config.py:12959 +#: .././config.py:13104 msgid "Timestamps" msgstr "" -#: .././config.py:12965 +#: .././config.py:13110 msgid "Timestamps can be used to download or create video clips" msgstr "" -#: .././config.py:13085 +#: .././config.py:13226 msgid "Reset list using video description" msgstr "" -#: .././config.py:13136 +#: .././config.py:13276 msgid "Video Slices" msgstr "" -#: .././config.py:13142 +#: .././config.py:13282 msgid "SponsorBlock provides a list of slices that can be removed from a video" msgstr "" -#: .././config.py:13322 .././config.py:14241 +#: .././config.py:13456 .././config.py:20995 +msgid "_Comments" +msgstr "" + +#: .././config.py:13461 +msgid "Comments" +msgstr "" + +#: .././config.py:13466 +msgid "Video comments can only be downloaded by yt-dlp" +msgstr "" + +#: .././config.py:13473 +msgid "Comments:" +msgstr "" + +#: .././config.py:13514 +msgid "Show comment timestamps" +msgstr "" + +#: .././config.py:13524 +msgid "Show comment times as text" +msgstr "" + +#: .././config.py:13549 +msgid "Show unformatted list" +msgstr "" + +#: .././config.py:13559 +msgid "Show formatted list" +msgstr "" + +#: .././config.py:13580 +msgid "Update from the metadata file" +msgstr "" + +#: .././config.py:13596 +msgid "Clear comments (does not modify the file)" +msgstr "" + +#: .././config.py:13622 +msgid "Author" +msgstr "" + +#: .././config.py:13622 +msgid "Comment" +msgstr "" + +#: .././config.py:13622 +msgid "Likes" +msgstr "" + +#: .././config.py:13623 +msgid "Uploader" +msgstr "" + +#: .././config.py:13908 .././config.py:14898 msgid "Errors / Warnings" msgstr "Fouten/Waarschuwingen" -#: .././config.py:13328 +#: .././config.py:13914 msgid "Error messages produced the last time this video was checked/downloaded" msgstr "" "Foutmeldingen tijdens de laatste keer dat de video is gecontroleerd/" "gedownload" -#: .././config.py:13344 +#: .././config.py:13930 msgid "" "Warning messages produced the last time this video was checked/downloaded" msgstr "" "Waarschuwingen tijdens de laatste keer dat de video is gecontroleerd/" "gedownload" -#: .././config.py:13754 +#: .././config.py:14357 msgid "Select the correct video/audio file" msgstr "Kies het juiste audio- of videobestand" -#: .././config.py:13780 +#: .././config.py:14383 msgid "" "The replacement video/audio file must be in the same channel, playlist or " "folder" @@ -5904,285 +5975,285 @@ msgstr "" "Het vervangende bestand moet op hetzelfde kanaal of dezelfde afspeellijst of " "map staan" -#: .././config.py:13798 +#: .././config.py:14401 msgid "You must select a valid video/audio file" msgstr "Kies het juiste audio- of videobestand" -#: .././config.py:13895 +#: .././config.py:14557 msgid "Channel properties" msgstr "Kanaalinformatie" -#: .././config.py:13898 +#: .././config.py:14560 msgid "Playlist properties" msgstr "Afspeellijstinformatie" -#: .././config.py:14040 +#: .././config.py:14698 msgid "Don't add videos in this channel to Tartube's database" msgstr "" -#: .././config.py:14044 +#: .././config.py:14702 msgid "Don't add videos in this playlist to Tartube's database" msgstr "" -#: .././config.py:14055 +#: .././config.py:14713 msgid "Always simulate download of videos in this channel" msgstr "Downloaden op dit kanaal altijd simuleren" -#: .././config.py:14057 +#: .././config.py:14715 msgid "Always simulate download of videos in this playlist" msgstr "Downloaden op deze afspeellijst altijd simuleren" -#: .././config.py:14067 +#: .././config.py:14725 msgid "Disable checking/downloading for this channel" msgstr "Controleren/Downloaden op dit kanaal uitschakelen" -#: .././config.py:14069 +#: .././config.py:14727 msgid "Disable checking/downloading for this playlist" msgstr "Controleren/Downloaden op deze afspeellijst uitschakelen" -#: .././config.py:14079 +#: .././config.py:14737 msgid "This channel is marked as a favourite" msgstr "Dit kanaal staat in je favorieten" -#: .././config.py:14081 +#: .././config.py:14739 msgid "This playlist is marked as a favourite" msgstr "Deze afspeellijst staat in je favorieten" -#: .././config.py:14091 +#: .././config.py:14749 msgid "Total videos" msgstr "Totaal aantal video's" -#: .././config.py:14115 +#: .././config.py:14773 msgid "Favourite videos" msgstr "Favoriete video's" -#: .././config.py:14127 +#: .././config.py:14785 msgid "Downloaded videos" msgstr "Gedownloade video's" -#: .././config.py:14149 .././config.py:14712 .././config.py:17649 +#: .././config.py:14807 .././config.py:15364 .././config.py:18386 msgid "_History" msgstr "Gesc_hiedenis" -#: .././config.py:14154 .././config.py:14717 .././config.py:17656 +#: .././config.py:14811 .././config.py:15368 .././config.py:18392 msgid "Download history" msgstr "Downloadgeschiedenis" -#: .././config.py:14168 .././config.py:14731 .././config.py:17670 +#: .././config.py:14825 .././config.py:15382 .././config.py:18406 msgid "Draw" msgstr "Tekenen" -#: .././config.py:14196 +#: .././config.py:14853 msgid "_RSS feed" msgstr "_RSS-feed" -#: .././config.py:14199 +#: .././config.py:14856 msgid "RSS feed" msgstr "RSS-feed" -#: .././config.py:14205 +#: .././config.py:14862 msgid "" "If Tartube cannot detect the channel's RSS feed, you can enter the URL here" msgstr "" "Als Tartube geen rss-feed kan achterhalen, kun je hier de feedurl opgeven" -#: .././config.py:14210 +#: .././config.py:14867 msgid "" "If Tartube cannot detect the playlist's RSS feed, you can enter the URL here" msgstr "" "Als Tartube geen rss-feed kan achterhalen, kun je hier de feedurl opgeven" -#: .././config.py:14215 +#: .././config.py:14872 msgid "(The feed is used to detect livestreams on compatible websites)" msgstr "" "(de feed wordt gebruikt om livestreams van compatibele sites te achterhalen)" -#: .././config.py:14247 +#: .././config.py:14904 msgid "" "Error messages produced the last time this channel was checked/downloaded" msgstr "" "Foutmeldingen tijdens de laatste keer dat dit kanaal is gecontroleerd/" "gedownload" -#: .././config.py:14252 +#: .././config.py:14909 msgid "" "Error messages produced the last time this playlist was checked/downloaded" msgstr "" "Foutmeldingen tijdens de laatste keer dat deze afspeellijst is gecontroleerd/" "gedownload" -#: .././config.py:14271 +#: .././config.py:14928 msgid "" "Warning messages produced the last time this channel was checked/downloaded" msgstr "" "Waarschuwingen tijdens de laatste keer dat dit kanaal is gecontroleerd/" "gedownload" -#: .././config.py:14276 +#: .././config.py:14933 msgid "" "Warning messages produced the last time this playlist was checked/downloaded" msgstr "" "Waarschuwingen tijdens de laatste keer dat deze afspeellijst is " "gecontroleerd/gedownload" -#: .././config.py:14343 +#: .././config.py:15000 msgid "Folder properties" msgstr "Mapinformatie" -#: .././config.py:14482 +#: .././config.py:15135 msgid "Don't add videos to Tartube's database" msgstr "" -#: .././config.py:14489 +#: .././config.py:15142 msgid "Always simulate download of videos" msgstr "Downloaden altijd simuleren" -#: .././config.py:14496 +#: .././config.py:15149 msgid "Disable checking/downloading" msgstr "" -#: .././config.py:14503 +#: .././config.py:15156 msgid "This folder is marked as a favourite" msgstr "Deze map staat in je favorieten" -#: .././config.py:14510 +#: .././config.py:15163 msgid "This folder is hidden" msgstr "Deze map is verborgen" -#: .././config.py:14517 +#: .././config.py:15170 msgid "This folder can't be deleted by the user" msgstr "Deze map kan niet worden verwijderd door de gebruiker" -#: .././config.py:14524 +#: .././config.py:15177 msgid "This is a system-controlled folder" msgstr "Dit is een systeemmap" -#: .././config.py:14531 +#: .././config.py:15184 msgid "All contents deleted when Tartube shuts down" msgstr "Na het afsluiten wordt alle inhoud verwijderd" -#: .././config.py:14538 +#: .././config.py:15191 msgid "Restrictions:" msgstr "" -#: .././config.py:14549 +#: .././config.py:15202 msgid "Can only contain videos" msgstr "" -#: .././config.py:14551 +#: .././config.py:15204 msgid "Can contain folders and videos" msgstr "" -#: .././config.py:14553 +#: .././config.py:15206 msgid "Can contain anything" msgstr "" -#: .././config.py:14563 .././config.py:17478 +#: .././config.py:15216 .././config.py:18211 msgid "_Statistics" msgstr "_Statistieken" -#: .././config.py:14568 .././config.py:17485 +#: .././config.py:15220 .././config.py:18217 msgid "Statistics" msgstr "Statistieken" -#: .././config.py:14589 .././config.py:17506 +#: .././config.py:15241 .././config.py:18238 msgid "Downloaded" msgstr "Gedownload" -#: .././config.py:14633 +#: .././config.py:15285 msgid "Sub-folders" msgstr "Onderliggende mappen" -#: .././config.py:14655 +#: .././config.py:15307 msgid "Recalculate" msgstr "Herberekenen" -#: .././config.py:14759 +#: .././config.py:15410 msgid "_Recent Videos" msgstr "" -#: .././config.py:14764 .././formats.py:923 +#: .././config.py:15414 .././formats.py:932 msgid "Recent Videos" msgstr "Recente video's" -#: .././config.py:14770 +#: .././config.py:15420 msgid "" "When videos are checked/downloaded, older videos are removed from this folder" msgstr "" -#: .././config.py:14941 +#: .././config.py:15591 msgid "Scheduled download" msgstr "Ingeplande download" -#: .././config.py:15093 .././config.py:18731 +#: .././config.py:15742 .././config.py:19510 msgid "Scheduled download name" msgstr "Naam van ingeplande download" -#: .././config.py:15105 +#: .././config.py:15754 msgid "Download mode" msgstr "Downloadmodus" -#: .././config.py:15110 +#: .././config.py:15759 msgid "Check channels, playlist and folders" msgstr "Kanalen, afspeellijsten en mappen controleren" -#: .././config.py:15111 +#: .././config.py:15760 msgid "Download channels, playlists and folders" msgstr "Kanalen, afspeellijsten, mappen downloaden" -#: .././config.py:15112 +#: .././config.py:15761 msgid "Perform a custom download" msgstr "Aangepast downloaden" -#: .././config.py:15124 +#: .././config.py:15773 msgid "Custom download name" msgstr "" -#: .././config.py:15163 .././config.py:18697 +#: .././config.py:15812 .././config.py:19476 msgid "Start mode" msgstr "Beginmodus" -#: .././config.py:15168 +#: .././config.py:15817 msgid "Perform this download at regular intervals" msgstr "Download uitvoeren op bepaalde tijdstippen" -#: .././config.py:15169 +#: .././config.py:15818 msgid "Perform this download when Tartube starts" msgstr "Download uitvoeren na het openen van Tartube" -#: .././config.py:15170 +#: .././config.py:15819 msgid "Disable this scheduled download" msgstr "Planning uitschakelen" -#: .././config.py:15182 +#: .././config.py:15831 msgid "Time between scheduled downloads" msgstr "Tijd tussen ingeplande downloads" -#: .././config.py:15235 +#: .././config.py:15884 msgid "If another scheduled download is running:" msgstr "Als er al een ingeplande download actief is:" -#: .././config.py:15242 +#: .././config.py:15891 msgid "Add channels, playlists and folders to the end of the queue" msgstr "Kanalen, afspeellijsten en mappen toevoegen aan einde van wachtrij" -#: .././config.py:15248 +#: .././config.py:15897 msgid "Add channels, playlists and folders to the beginning of the queue" msgstr "Kanalen, afspeellijsten en mappen toevoegen aan begin van wachtrij" -#: .././config.py:15255 +#: .././config.py:15904 msgid "Do nothing, just wait until the next scheduled download time" msgstr "Niks doen tot aan het volgende tijdstip" -#: .././config.py:15270 +#: .././config.py:15919 msgid "This scheduled download takes priority over others" msgstr "Deze ingeplande download heeft hoge prioriteit" -#: .././config.py:15273 +#: .././config.py:15922 msgid "Other scheduled downloads won't start until this one is finished" msgstr "Andere ingeplande downloads beginnen pas als deze is afgerond" -#: .././config.py:15282 +#: .././config.py:15931 msgid "" "Ignore time-saving preferences, and check/download the whole channel/" "playlist/folder" @@ -6190,85 +6261,85 @@ msgstr "" "Tijdbesparende maatregelen negeren en kanaal/afspeellijst/map volledig " "controleren/downloaden" -#: .././config.py:15290 +#: .././config.py:15939 msgid "Shut down Tartube when this scheduled download has finished" msgstr "Tartube afsluiten nadat deze download is afgerond" -#: .././config.py:15308 +#: .././config.py:15956 msgid "Media to download" msgstr "De te downloaden media" -#: .././config.py:15314 +#: .././config.py:15962 msgid "Check/download everything" msgstr "Alles controleren/downloaden" -#: .././config.py:15322 +#: .././config.py:15970 msgid "Only check/download the media below" msgstr "Alleen onderstaande media controleren/downloaden" -#: .././config.py:15336 +#: .././config.py:15984 msgid "" "Hint: you can drag and drop channels, playlists and your own folders here" msgstr "Tip: je kunt kanalen, afspeellijsten en mappen hierheen slepen" -#: .././config.py:15442 .././config.py:19018 +#: .././config.py:16090 .././config.py:19807 msgid "_Limits" msgstr "" -#: .././config.py:15447 .././config.py:19026 +#: .././config.py:16094 .././config.py:19814 msgid "Performance limits" msgstr "Prestatiebeperkingen" -#: .././config.py:15452 .././config.py:19031 +#: .././config.py:16099 .././config.py:19819 msgid "Limits are applied when you start downloading a video/channel/playlist" msgstr "" -#: .././config.py:15458 +#: .././config.py:16105 msgid "" "These limits override the default and alternative limits specified elsewhere" msgstr "" -#: .././config.py:15464 .././config.py:19037 .././config.py:19108 +#: .././config.py:16111 .././config.py:19825 .././config.py:19896 msgid "Limit simultaneous downloads to" msgstr "Aantal gelijktijdige downloads beperken tot" -#: .././config.py:15479 .././config.py:19055 .././config.py:19130 +#: .././config.py:16126 .././config.py:19843 .././config.py:19918 msgid "Limit download speed to" msgstr "Downloadsnelheid beperken tot" -#: .././config.py:15814 +#: .././config.py:16461 msgid "System preferences" msgstr "Algemene instellingen" -#: .././config.py:16124 +#: .././config.py:16776 msgid "_Language" msgstr "Taa_l" -#: .././config.py:16129 +#: .././config.py:16781 msgid "Language preferences" msgstr "Taalinstellingen" -#: .././config.py:16134 +#: .././config.py:16786 msgid "Language" msgstr "Taal" -#: .././config.py:16170 +#: .././config.py:16827 msgid "_Stability" msgstr "_Stabiliteit" -#: .././config.py:16180 +#: .././config.py:16837 msgid "Gtk library" msgstr "GTK-bibliotheek" -#: .././config.py:16185 +#: .././config.py:16842 msgid "Current version of the system's Gtk library" msgstr "De huidige versie van de GTK-bibliotheek op dit systeem" -#: .././config.py:16200 +#: .././config.py:16857 msgid "Gtk stability" msgstr "GTK-stabiliteit" -#: .././config.py:16216 +#: .././config.py:16873 msgid "" "Tartube uses the Gtk graphics library. This library is notoriously " "unreliable and may even causes crashes." @@ -6276,7 +6347,7 @@ msgstr "" "Tartube maakt gebruik van de grafische bibliotheek van GTK. Deze staat " "bekend om zijn onbetrouwbaarheid en sporadische crashes." -#: .././config.py:16223 +#: .././config.py:16880 msgid "" "By default, some cosmetic features are disabled (for example, in the Videos " "tab, the list of videos is not updated until the end of a download " @@ -6286,7 +6357,7 @@ msgstr "" "bijwerken van de videolijst totdat het downloaden is afgerond (zie tabblad " "'Video's')" -#: .././config.py:16231 +#: .././config.py:16888 msgid "" "If you think that your system Gtk has been fixed (or if you want to test Gtk " "stability), you can re-enable the cosmetic features." @@ -6294,79 +6365,79 @@ msgstr "" "Als je zeker weet dat je systeem een betrouwbare versie van GTK heeft (of " "als je de stabiliteit wilt testen), kun je enkele functies weer inschakelen." -#: .././config.py:16241 +#: .././config.py:16898 msgid "Disable some cosmetic features to prevent crashes and other issues" msgstr "" "Enkele cosmetische functies uitschakelen om crashes en problemen te voorkomen" -#: .././config.py:16259 +#: .././config.py:16921 msgid "_Modules" msgstr "_Modules" -#: .././config.py:16264 +#: .././config.py:16926 msgid "Module availability" msgstr "Aanwezigheid van modules" -#: .././config.py:16270 +#: .././config.py:16932 msgid "feedparser module is available (required for detecting livestreams)" msgstr "" "De feedparser-module is aanwezig (vereist voor het detecteren van " "livestreams)" -#: .././config.py:16279 +#: .././config.py:16941 msgid "matplotlib module is available (draws graphs)" msgstr "De matplotlib-module is beschikbaar (om grafieken te tonen)" -#: .././config.py:16287 +#: .././config.py:16949 msgid "moviepy module is available (finds the length of videos, if unknown)" msgstr "" "De moviepy-module is aanwezig (vereist voor het achterhalen van de duur van " "video's)" -#: .././config.py:16297 +#: .././config.py:16959 msgid "playsound module is available (sound an alarm when a livestream starts)" msgstr "" "De playsound-module is aanwezig (vereist voor het afspelen van een geluid " "aan het begin van een livestream)" -#: .././config.py:16307 +#: .././config.py:16969 msgid "" "XDG module is available (saves the config file in the standard location)" msgstr "" "De xdg-module is aanwezig (vereist voor het opslaan van het " "configuratiebestand op de standaardlocatie)" -#: .././config.py:16317 +#: .././config.py:16979 msgid "" "Notify module is available (shows desktop notifications; Linux/*BSD only)" msgstr "" "De notify-module is aanwezig (vereist voor het tonen van meldingen op Linux " "en *BSD)" -#: .././config.py:16327 +#: .././config.py:16989 msgid "Module preferences" msgstr "Module-instellingen" -#: .././config.py:16333 +#: .././config.py:16995 msgid "" "Use 'moviepy' module to get a video's duration, if not known (may be slow)" msgstr "" "'moviepy'-module gebruiken om de duur van video's te achterhalen (kan " "langzaam zijn)" -#: .././config.py:16345 +#: .././config.py:17007 msgid "Timeout applied when moviepy checks a video file" msgstr "De time-out die wordt gebruikt bij het achterhalen met moviepy" -#: .././config.py:16370 +#: .././config.py:17037 msgid "_Debugging" msgstr "_Foutopsporing" -#: .././config.py:16378 +#: .././config.py:17044 msgid "Debugging preferences" msgstr "Foutopsporingsinstellingen" -#: .././config.py:16384 +#: .././config.py:17050 msgid "" "Debug messages are only visible in the terminal window (these settings are " "not saved)" @@ -6374,24 +6445,24 @@ msgstr "" "Foutopsporingsberichten worden alleen getoond in het terminalvenster (deze " "instellingen worden niet bewaard)" -#: .././config.py:16391 +#: .././config.py:17057 msgid "Enable application debug messages (code in mainapp.py)" msgstr "" "Foutopsporingsberichten van gehele programma tonen (code in mainapp.py)" -#: .././config.py:16400 .././config.py:16420 +#: .././config.py:17066 .././config.py:17086 msgid "...but don't show timer debug messages" msgstr "...maar geen foutopsporingsberichten van de tijdklok tonen" -#: .././config.py:16411 +#: .././config.py:17077 msgid "Enable main winddow debug messages (code in mainwin.py)" msgstr "Foutopsporingsberichten van hoofdvenster tonen (code in mainwin.py)" -#: .././config.py:16431 +#: .././config.py:17097 msgid "Enabled downloader debug messages (code in downloads.py)" msgstr "Foutopsporingsberichten van downloader tonen (code in downloads.py)" -#: .././config.py:16474 +#: .././config.py:17140 msgid "" "Debugging messages are also visible if an empty file called debug.txt exists " "here:" @@ -6399,134 +6470,134 @@ msgstr "" "Foutopsporingsberichten zijn tevens zichtbaar als er een leeg bestand " "genaamd debug.txt aanwezig is in:" -#: .././config.py:16522 +#: .././config.py:17193 msgid "_Device" msgstr "_Apparaat" -#: .././config.py:16527 +#: .././config.py:17198 msgid "Device preferences" msgstr "Apparaatinstellingen" -#: .././config.py:16532 +#: .././config.py:17203 msgid "Size of device (in Mb)" msgstr "Totale ruimte op apparaat (in mb)" -#: .././config.py:16544 +#: .././config.py:17215 msgid "Free space on device (in Mb)" msgstr "Vrije ruimte op apparaat (in mb)" -#: .././config.py:16556 +#: .././config.py:17227 msgid "Warn user if disk space is less than" msgstr "Waarschuwen als schijfruimte minder is dan" -#: .././config.py:16574 +#: .././config.py:17245 msgid "Halt downloads if disk space is less than" msgstr "Downloads onderbreken als schijfruimte minder is dan" -#: .././config.py:16619 +#: .././config.py:17295 msgid "_Config" msgstr "" -#: .././config.py:16623 +#: .././config.py:17299 msgid "Configuration preferences" msgstr "Configuratie-instellingen" -#: .././config.py:16628 +#: .././config.py:17304 msgid "Tartube configuration file loaded from" msgstr "" -#: .././config.py:16640 +#: .././config.py:17316 msgid "Default location for Tartube configuration" msgstr "" -#: .././config.py:16652 +#: .././config.py:17328 msgid "Alternative location for Tartube configuration" msgstr "" -#: .././config.py:16671 +#: .././config.py:17352 msgid "D_atabase" msgstr "D_atabank" -#: .././config.py:16677 +#: .././config.py:17357 msgid "Database preferences" msgstr "Databankinstellingen" -#: .././config.py:16682 +#: .././config.py:17362 msgid "Tartube data folder" msgstr "Tartube-gegevensmap" -#: .././config.py:16694 +#: .././config.py:17374 msgid "Add new database" msgstr "Nieuwe databank toevoegen" -#: .././config.py:16696 +#: .././config.py:17376 msgid "Change to a different data folder" msgstr "Kies een andere gegevensmap" -#: .././config.py:16703 +#: .././config.py:17383 msgid "Check and repair database" msgstr "Databank controleren en repareren" -#: .././config.py:16706 +#: .././config.py:17386 msgid "Check for inconsistencies, and repair them" msgstr "Controleer op fouten en herstel ze" -#: .././config.py:16711 +#: .././config.py:17391 msgid "Recent data folders" msgstr "Recente gegevensmappen" -#: .././config.py:16725 +#: .././config.py:17405 msgid "Switch to the selected data folder" msgstr "Gekozen gegevensmap gebruiken" -#: .././config.py:16735 +#: .././config.py:17415 msgid "Forget" msgstr "Wissen" -#: .././config.py:16738 +#: .././config.py:17418 msgid "Remove the selected data folder from the list" msgstr "Verwijder de geselecteerde map van de lijst" -#: .././config.py:16747 +#: .././config.py:17427 msgid "Forget all" msgstr "Alle mappen wissen" -#: .././config.py:16750 +#: .././config.py:17430 msgid "Forget every folder in this list (except the current one)" msgstr "Verwijder alle mappen van de lijst (behalve de huidige)" -#: .././config.py:16763 +#: .././config.py:17443 msgid "Move the selected folder up the list" msgstr "Geselecteerde map omhoog verplaatsen" -#: .././config.py:16771 +#: .././config.py:17451 msgid "Move the selected folder down the list" msgstr "Geselecteerde map omlaag verplaatsen" -#: .././config.py:16799 +#: .././config.py:17478 msgid "" "On startup, load the first database on the list (not the most recently-use " "one)" msgstr "" "Laad bij het opstarten de eerste databank op de lijst (niet de meest recente)" -#: .././config.py:16809 +#: .././config.py:17488 msgid "If one database is in use, try to load others" msgstr "Andere databank laden als huidige in gebruik is" -#: .././config.py:16817 +#: .././config.py:17496 msgid "Add new data directories to this list" msgstr "Gegevensmappen toevoegen aan lijst" -#: .././config.py:16856 +#: .././config.py:17540 msgid "_Backups" msgstr "_Back-ups" -#: .././config.py:16862 +#: .././config.py:17545 msgid "Backup preferences" msgstr "Back-upinstellingen" -#: .././config.py:16867 +#: .././config.py:17550 msgid "" "When saving a database file, Tartube makes a backup copy of it (in case " "something goes wrong)" @@ -6534,237 +6605,253 @@ msgstr "" "Tijdens het opslaan van een databankbestand, maakt Tartube er een " "reservekopie van voor als er iets misgaat" -#: .././config.py:16876 +#: .././config.py:17559 msgid "Delete the backup file as soon as the save procedure is finished" msgstr "Back-upbestand verwijderen als opslaan voltooid is" -#: .././config.py:16886 +#: .././config.py:17569 msgid "Keep the backup file, replacing any previous backup file" msgstr "Back-upbestand behouden en vorige overschrijven" -#: .././config.py:16897 +#: .././config.py:17580 msgid "" "Make a new backup file once per day, after the day's first save procedure" msgstr "" "Eenmaal per dag een back-upbestand maken, één dag na de eerste keer opslaan" -#: .././config.py:16908 +#: .././config.py:17591 msgid "Make a new backup file for every save procedure" msgstr "Back-upbestand maken, elke keer na het opslaan" -#: .././config.py:16942 +#: .././config.py:17625 msgid "Export preferences" msgstr "" -#: .././config.py:16947 +#: .././config.py:17630 msgid "Separator used in CSV exports" msgstr "" -#: .././config.py:16985 +#: .././config.py:17672 msgid "Automatic video deletion preferences" msgstr "Instellingen omtrent automatische videoverwijdering" -#: .././config.py:16990 +#: .././config.py:17677 msgid "Automatically delete downloaded videos after this many days" msgstr "Gedownloade video's automatisch verwijderen na x aantal dagen" -#: .././config.py:17004 +#: .././config.py:17691 msgid "...but only delete videos which have been watched" msgstr "...maar alleen bekeken video's" -#: .././config.py:17028 +#: .././config.py:17715 msgid "Video matching preferences" msgstr "Instellingen omtrent video-overeenkomsten" -#: .././config.py:17033 +#: .././config.py:17720 msgid "When matching videos on the filesystem:" msgstr "Bij het overeenkomen van video's op het bestandssysteem:" -#: .././config.py:17039 +#: .././config.py:17726 msgid "The video names must match exactly" msgstr "Alleen de videonamen overeen laten komen" -#: .././config.py:17046 +#: .././config.py:17733 msgid "The first # characters must match exactly" msgstr "Alleen eerste x aantal tekens overeen laten komen" -#: .././config.py:17060 +#: .././config.py:17747 msgid "Ignore the last # characters; the remaining name must match exactly" msgstr "Laatste x aantal tekens negeren en de rest overeen laten komen" -#: .././config.py:17114 +#: .././config.py:17805 msgid "Update video descriptions" msgstr "" -#: .././config.py:17121 +#: .././config.py:17812 msgid "These procedures might take a long time on a large database" msgstr "" -#: .././config.py:17128 +#: .././config.py:17819 msgid "Update from description files, and set the line lengths to:" msgstr "" -#: .././config.py:17147 +#: .././config.py:17838 msgid "Clear descriptions (does not modify the description files)" msgstr "" -#: .././config.py:17171 +#: .././config.py:17861 msgid "Video timestamps" msgstr "" -#: .././config.py:17175 +#: .././config.py:17865 msgid "Extract timestamps for all videos" msgstr "" -#: .././config.py:17183 +#: .././config.py:17873 msgid "Remove timestamps from all videos" msgstr "" -#: .././config.py:17200 +#: .././config.py:17883 +msgid "Video comments" +msgstr "" + +#: .././config.py:17887 +msgid "Extract comments for all videos" +msgstr "" + +#: .././config.py:17895 +msgid "Remove comments from all videos" +msgstr "" + +#: .././config.py:17905 +msgid "" +"Comments are extracted from each video's metadata file, so this procedure " +"may take a long time" +msgstr "" + +#: .././config.py:17925 msgid "_URLs" msgstr "" -#: .././config.py:17208 +#: .././config.py:17932 msgid "Update channel/playlist URLs" msgstr "" -#: .././config.py:17213 +#: .././config.py:17937 msgid "Confirm every change" msgstr "" -#: .././config.py:17292 +#: .././config.py:18016 msgid "Pattern" msgstr "" -#: .././config.py:17315 +#: .././config.py:18039 msgid "Substitution" msgstr "" -#: .././config.py:17331 +#: .././config.py:18054 msgid "Search and replace text in the selected URLs" msgstr "" -#: .././config.py:17430 +#: .././config.py:18158 msgid "Temporary folder preferences" msgstr "Instellingen omtrent tijdelijke mappen" -#: .././config.py:17435 +#: .././config.py:18163 msgid "Empty temporary folders when Tartube shuts down" msgstr "Tijdelijke mappen legen na het afsluiten" -#: .././config.py:17444 +#: .././config.py:18172 msgid "(N.B. Temporary folders are always emptied when Tartube starts up)" msgstr "(let op: tijdelijke mappen worden sowieso geleegd bij het openen)" -#: .././config.py:17452 +#: .././config.py:18180 msgid "Open temporary folders (on the desktop) when Tartube shuts down" msgstr "Tijdelijke mappen openen na het afsluiten" -#: .././config.py:17490 +#: .././config.py:18222 msgid "The Tartube database contains:" msgstr "De Tartube-databank bevat:" -#: .././config.py:17550 +#: .././config.py:18282 msgid "Custom folders" msgstr "Aangepaste mappen" -#: .././config.py:17573 +#: .././config.py:18305 msgid "Calculate" msgstr "Berekenen" #. Add this tab... -#: .././config.py:17699 +#: .././config.py:18435 msgid "_Windows" msgstr "_Vensters" -#: .././config.py:17723 +#: .././config.py:18464 msgid "_Main window" msgstr "_Hoofdvenster" -#: .././config.py:17731 +#: .././config.py:18471 msgid "Main window preferences" msgstr "Hoofdvensterinstellingen" -#: .././config.py:17736 -msgid "Remember the size of the main window when shutting down" -msgstr "Afmetingen van hoofdvenster onthouden bij afsluiten" +#: .././config.py:18476 +msgid "Remember size of the main window" +msgstr "" -#. (Signal connect appears below) -#: .././config.py:17743 -msgid "Reset size" +#: .././config.py:18484 +msgid "Remember slider positions" msgstr "" -#: .././config.py:17752 -msgid "Also remember the position of main window sliders" -msgstr "Ook positie van schuifknoppen op hoofdvenster onthouden" +#: .././config.py:18493 +msgid "Reset both" +msgstr "" -#: .././config.py:17769 +#: .././config.py:18509 msgid "Don't show the main window toolbar" msgstr "Geen werkbalk tonen op hoofdvenster" -#: .././config.py:17777 +#: .././config.py:18517 msgid "Don't show labels in the main window toolbar" msgstr "Geen werkbalklabels tonen op hoofdvenster" -#: .././config.py:17795 +#: .././config.py:18535 msgid "" "Replace stock icons with custom icons (in case stock icons are not visible)" msgstr "" "Standaardpictogrammen vervangen door aangepaste (als de " "standaardpictogrammen niet worden getoond)" -#: .././config.py:17805 +#: .././config.py:18545 msgid "Show tooltips for videos, channels, playlists and folders" msgstr "Hulpballonnen tonen bij video's, kanalen, afspeellijsten en mappen" -#: .././config.py:17813 +#: .././config.py:18553 msgid "Show errors/warnings in tooltips (but not in the Videos tab)" msgstr "" "Fouten/Waarschuwingen tonen in hulpballonnen (maar niet op het tabblad " "'Video's')" -#: .././config.py:17831 +#: .././config.py:18571 msgid "Disable the download buttons in the toolbar and the Videos tab" msgstr "" -#: .././config.py:17841 +#: .././config.py:18581 msgid "Show a 'Custom download all' button in the Videos tab" msgstr "" -#: .././config.py:17851 -msgid "In the Progress tab, hide finished videos / channels / playlists" +#: .././config.py:18591 +msgid "In the Progress tab, hide finished downloads" msgstr "" -"Afgeronde video's, kanalen en afspeellijsten verbergen op voortgangstabblad" -#: .././config.py:17860 -msgid "In the Progress tab, show results in reverse order" -msgstr "Resultaten in omgekeerde volgorde tonen op voortgangstabblad" +#: .././config.py:18600 +msgid "Show downloads in reverse order" +msgstr "" -#: .././config.py:17868 +#: .././config.py:18608 msgid "When Tartube starts, automatically open the Classic Mode tab" msgstr "Automatisch opstarten in klassieke modus" -#: .././config.py:17882 +#: .././config.py:18622 msgid "" "In the Classic Mode tab, when adding URLs, remove duplicates rather than " "retaining them" msgstr "Duplicaten verwijderen tijdens toevoegen van url's in klassieke modus" -#: .././config.py:17896 +#: .././config.py:18636 msgid "In the Errors/Warnings tab, don't reset the tab text when it is clicked" msgstr "" "Herstel de tabbladtekst niet na aanklikken op het tabblad 'Fouten/" "Waarschuwingen'" -#: .././config.py:17919 +#: .././config.py:18663 msgid "Video Index (left side of the Videos tab)" msgstr "Video-index (links van het tabblad 'Video's')" -#: .././config.py:17925 +#: .././config.py:18669 msgid "Show smaller icons in the Video Index" msgstr "Kleinere pictogrammen tonen in video-index" -#: .././config.py:17935 +#: .././config.py:18679 msgid "" "In the Video Index, show detailed statistics about the videos in each " "channel / playlist / folder" @@ -6772,203 +6859,203 @@ msgstr "" "Uitgebreide statistieken tonen in de video-index, met informatie over elk " "kanaal, elke afspeellijst en elke map" -#: .././config.py:17946 +#: .././config.py:18690 msgid "" "After clicking on a folder, automatically expand/collapse the tree around it" msgstr "Boomstructuur van map automatisch in-/uitklappen na aanklikken" -#: .././config.py:17957 +#: .././config.py:18701 msgid "Expand the whole tree, not just the level beneath the clicked folder" msgstr "Boomstructuur volledig uitklappen na aanklikken" -#: .././config.py:17978 +#: .././config.py:18722 msgid "Video Catalogue (right side of the Videos tab)" msgstr "Videocatalogus (rechts van het tabblad 'Video's')" -#: .././config.py:17985 +#: .././config.py:18729 msgid "Show 'today' and 'yesterday' as the date, when possible" msgstr "'Vandaag' en 'Gisteren' tonen als datum (indien mogelijk)" -#: .././config.py:17995 +#: .././config.py:18739 msgid "Draw a frame around each video" msgstr "Frame tekenen om elke video" -#: .././config.py:18005 +#: .././config.py:18749 msgid "Draw status icons for each video" msgstr "Statuspictogrammen tonen bij elke video" -#: .././config.py:18014 +#: .././config.py:18762 msgid "Thumbnail size (when videos are displayed on a grid)" msgstr "Miniatuurgrootte (als video's op een rooster worden getoond)" -#: .././config.py:18042 +#: .././config.py:18790 msgid "Show livestreams with a different background colour" msgstr "Andere achtergrondkleur gebruiken bij livestreams" -#: .././config.py:18050 +#: .././config.py:18798 msgid "Use same background colours for livestream and debut videos" msgstr "" "Dezelfde achtergrondkleur gebruiken voor livestream- en aanvangsvideo's" -#: .././config.py:18072 +#: .././config.py:18820 msgid "Channel and playlist names are clickable (grid mode only)" msgstr "" -#: .././config.py:18088 +#: .././config.py:18841 msgid "_Drag" msgstr "Ver_slepen" -#: .././config.py:18092 +#: .././config.py:18845 msgid "Drag and drop preferences" msgstr "Instellingen omtrent slepen-en-neerzetten" -#: .././config.py:18098 +#: .././config.py:18851 msgid "When dragging and dropping videos to an external application..." msgstr "Bij het verslepen van video's naar een extern programma..." -#: .././config.py:18104 +#: .././config.py:18857 msgid "Transfer the video's full file path" msgstr "Volledige videopad delen" -#: .././config.py:18112 +#: .././config.py:18865 msgid "Transfer the video's source URL" msgstr "Video-bronurl delen" -#: .././config.py:18120 +#: .././config.py:18873 msgid "Transfer the video's name" msgstr "Videonaam delen" -#: .././config.py:18128 +#: .././config.py:18881 msgid "Transfer the thumbnail's full file path" msgstr "Volledige videominiatuurpad delen" -#: .././config.py:18144 +#: .././config.py:18902 msgid "_Tray" msgstr "" -#: .././config.py:18150 +#: .././config.py:18908 msgid "System tray preferences" msgstr "Systeemvakinstellingen" -#: .././config.py:18155 +#: .././config.py:18913 msgid "Show icon in system tray" msgstr "Systeemvakpictogram tonen" -#: .././config.py:18164 +#: .././config.py:18922 msgid "Close to the tray, rather than closing the application" msgstr "Minimaliseren naar systeemvak in plaats van afsluiten" -#: .././config.py:18176 +#: .././config.py:18934 msgid "" "After closing to the tray, restore the window's position (does not work on " "Wayland)" msgstr "" -#: .././config.py:18212 +#: .././config.py:18975 msgid "D_ialogues" msgstr "D_ialoogvensters" -#: .././config.py:18218 +#: .././config.py:18981 msgid "Dialogue window preferences" msgstr "Dialoogvensterinstellingen" -#: .././config.py:18223 +#: .././config.py:18986 msgid "When adding channels/playlists, keep the dialogue window open" msgstr "Dialoogvenster openhouden na toevoegen van kanalen en afspeellijsten" -#: .././config.py:18233 +#: .././config.py:18996 msgid "When the dialogue window opens, add URLs from the system clipboard" msgstr "URL's van klembord toevoegen aan geopend dialoogvenster" -#: .././config.py:18254 +#: .././config.py:19017 msgid "When adding YouTube channels, remind the user to copy the correct URL" msgstr "" -#: .././config.py:18273 +#: .././config.py:19041 msgid "_Colours" msgstr "" -#: .././config.py:18281 +#: .././config.py:19048 msgid "Video Catalogue Colour preferences" msgstr "" -#: .././config.py:18289 +#: .././config.py:19056 msgid "Waiting livestreams" msgstr "" -#: .././config.py:18295 +#: .././config.py:19062 msgid "Broadcasting livestreams" msgstr "" -#: .././config.py:18301 +#: .././config.py:19068 msgid "Waiting debut videos" msgstr "" -#: .././config.py:18307 +#: .././config.py:19074 msgid "Broadcasting debut videos" msgstr "" -#: .././config.py:18313 +#: .././config.py:19080 msgid "Selected videos" msgstr "" -#: .././config.py:18319 +#: .././config.py:19086 msgid "Selected waiting videos" msgstr "" -#: .././config.py:18325 +#: .././config.py:19092 msgid "Selected broadcasting videos" msgstr "" -#: .././config.py:18356 +#: .././config.py:19123 msgid "Custom colour:" msgstr "" -#: .././config.py:18379 +#: .././config.py:19146 msgid "Default colour:" msgstr "" -#: .././config.py:18411 +#: .././config.py:19183 msgid "_Errors/Warnings" msgstr "Fout_en/Waarschuwingen" -#: .././config.py:18419 +#: .././config.py:19190 msgid "Errors/Warnings tab preferences" msgstr "Instellingen omtrent fouten en waarschuwingen" -#: .././config.py:18424 +#: .././config.py:19195 msgid "Show Tartube error messages" msgstr "Tartube-foutmeldingen tonen" -#: .././config.py:18432 +#: .././config.py:19203 msgid "Show Tartube warning messages" msgstr "Tartube-waarschuwingen tonen" -#: .././config.py:18440 +#: .././config.py:19211 msgid "Show server error messages" msgstr "Serverfoutmeldingen tonen" -#: .././config.py:18451 +#: .././config.py:19222 msgid "Show server warning messages" msgstr "Serverwaarschuwingen tonen" -#: .././config.py:18462 +#: .././config.py:19233 msgid "Show dates of all messages" msgstr "" -#: .././config.py:18474 +#: .././config.py:19245 msgid "Downloader error/warning preferences" msgstr "Instellingen omtrent downloadfouten/-waarschuwingen" -#: .././config.py:18479 +#: .././config.py:19250 msgid "TRANSLATOR'S NOTE: These error messages are always in English" msgstr "TRANSLATOR'S NOTE: These error messages are always in English" -#: .././config.py:18483 +#: .././config.py:19254 msgid "Ignore 'Child process exited with non-zero code' errors" msgstr "'Onderliggend proces is gestopt met niet-nulcode'-fouten negeren" -#: .././config.py:18492 +#: .././config.py:19263 msgid "" "Ignore 'Unable to download video data' and 'Unable to extract video data' " "errors" @@ -6976,55 +7063,55 @@ msgstr "" "'Kan videogegevens niet ophalen' en 'Kan videogegevens niet extraheren' " "negeren" -#: .././config.py:18502 +#: .././config.py:19273 msgid "Ignore 'Did not get any data blocks' errors" msgstr "'Geen gegevensblokken verkregen' negeren" -#: .././config.py:18511 +#: .././config.py:19282 msgid "Ignore 'Requested formats are incompatible for merge' warnings" msgstr "'De opgevraagde formaten kunnen niet worden samengevoegd' negeren" -#: .././config.py:18520 +#: .././config.py:19291 msgid "Ignore 'No video formats found' errors" msgstr "'Geen videoformaten aangetroffen' negeren" -#: .././config.py:18528 +#: .././config.py:19299 msgid "Ignore 'There are no annotations to write' warnings" msgstr "'Geen weg te schrijven aantekeningen' negeren" -#: .././config.py:18536 +#: .././config.py:19307 msgid "Ignore 'Video doesn't have subtitles' warnings" msgstr "'De video bevat geen ondertiteling' negeren" -#: .././config.py:18552 +#: .././config.py:19328 msgid "_Websites" msgstr "_Websites" -#: .././config.py:18560 +#: .././config.py:19335 msgid "YouTube error/warning preferences" msgstr "Instellingen omtrent YouTube-fouten/-waarschuwingen van" -#: .././config.py:18565 +#: .././config.py:19340 msgid "Ignore YouTube copyright errors" msgstr "Copyrightfouten negeren" -#: .././config.py:18573 +#: .././config.py:19348 msgid "Ignore YouTube age-restriction errors" msgstr "Leeftijdsbeperkingen negeren" -#: .././config.py:18581 +#: .././config.py:19356 msgid "Ignore YouTube deletion by uploader errors" msgstr "'Verwijderd door uploader' negeren" -#: .././config.py:18589 +#: .././config.py:19364 msgid "Ignore YouTube payment errors" msgstr "Betaalfouten negeren" -#: .././config.py:18598 +#: .././config.py:19373 msgid "General preferences" msgstr "Algemene instellingen" -#: .././config.py:18604 +#: .././config.py:19379 msgid "" "Ignore any errors/warnings which match lines in this list (applies to all " "websites)" @@ -7032,78 +7119,78 @@ msgstr "" "Alle fouten/waarschuwingen op deze lijst negeren (van toepassing op alle " "websites)" -#: .././config.py:18618 +#: .././config.py:19393 msgid "These are ordinary strings" msgstr "Dit zijn normale tekenreeksen" -#: .././config.py:18625 +#: .././config.py:19400 msgid "These are regular expressions (regexes)" msgstr "Dit zijn reguliere uitdrukkingen (regexes)" #. Add this tab... -#: .././config.py:18654 +#: .././config.py:19429 msgid "_Scheduling" msgstr "_Inplannen" -#: .././config.py:18671 +#: .././config.py:19451 msgid "_Start" msgstr "_Beginnen" -#: .././config.py:18677 +#: .././config.py:19456 msgid "Scheduled download preferences" msgstr "Planinstellingen omtrent downloads" -#: .././config.py:18698 +#: .././config.py:19477 msgid "Priority" msgstr "Prioriteit" -#: .././config.py:18698 +#: .././config.py:19477 msgid "Whole" msgstr "Geheel" -#: .././config.py:18698 +#: .././config.py:19477 msgid "Shutdown" msgstr "Afsluiten" -#: .././config.py:18698 +#: .././config.py:19477 msgid "D/L All" msgstr "Alles downloaden" -#: .././config.py:18699 +#: .././config.py:19478 msgid "Join mode" msgstr "Samenvoegmodus" -#: .././config.py:18753 .././config.py:19589 .././config.py:21226 -#: .././config.py:21491 +#: .././config.py:19532 .././config.py:20388 .././config.py:22142 +#: .././config.py:22415 msgid "Edit" msgstr "Bewerken" -#: .././config.py:18825 .././formats.py:1006 +#: .././config.py:19604 .././formats.py:1015 msgid "Custom" msgstr "Aangepast" -#: .././config.py:18847 +#: .././config.py:19631 msgid "S_top" msgstr "A_fbreken" -#: .././config.py:18853 +#: .././config.py:19636 msgid "Scheduled stop preferences" msgstr "Planinstellingen omtrent afbreken" -#: .././config.py:18858 +#: .././config.py:19641 msgid "Stop all download operations after this much time" msgstr "Alle downloads afbreken na opgegeven verstreken tijd" -#: .././config.py:18906 +#: .././config.py:19689 msgid "Stop all download operations after this many videos" msgstr "Alle downloads afbreken na opgegeven aantal video's" -#: .././config.py:18933 +#: .././config.py:19716 msgid "Stop all download operations after this much disk space" msgstr "" "Alle downloads afbreken na opgegeven hoeveelheid gebruikte schijfruimte" -#: .././config.py:18976 +#: .././config.py:19759 msgid "" "N.B. Disk space is estimated. This setting does not apply to simulated " "downloads" @@ -7111,35 +7198,35 @@ msgstr "" "Let op: de gebruikte schijfruimte is een schatting en is niet van toepassing " "op simulaties." -#: .././config.py:19081 +#: .././config.py:19869 msgid "Overriding video format options, limit video resolution to" msgstr "Videoresolutie gedwongen beperken tot" -#: .././config.py:19103 +#: .././config.py:19891 msgid "Alternative performance limits" msgstr "" -#: .././config.py:19162 +#: .././config.py:19949 msgid "Alternative limits apply between" msgstr "" -#: .././config.py:19202 +#: .././config.py:19989 msgid "and" msgstr "" -#: .././config.py:19230 +#: .././config.py:20017 msgid "On days" msgstr "" -#: .././config.py:19258 +#: .././config.py:20050 msgid "_Stop" msgstr "" -#: .././config.py:19266 +#: .././config.py:20057 msgid "Time-saving settings" msgstr "Tijdbesparende instellingen" -#: .././config.py:19272 +#: .././config.py:20063 msgid "" "Stop checking/downloading a channel/playlist when it starts sending videos " "you already have" @@ -7147,43 +7234,43 @@ msgstr "" "Kanalen/Afspeellijsten niet meer controleren na toevoegen van reeds " "aanwezige video's" -#: .././config.py:19283 +#: .././config.py:20074 msgid "Stop after this many videos (when checking)" msgstr "Afbreken na opgegeven aantal video's (bij controles)" -#: .././config.py:19298 +#: .././config.py:20089 msgid "Stop after this many videos (when downloading)" msgstr "Afbreken na opgegeven aantal video's (tijdens downloaden)" -#: .././config.py:19337 +#: .././config.py:20132 msgid "Download operation preferences" msgstr "Downloadactie-instellingen" -#: .././config.py:19343 +#: .././config.py:20138 msgid "Automatically update downloader before every download operation" msgstr "Downloader automatisch bijwerken vóór elke downloadactie" -#: .././config.py:19355 +#: .././config.py:20150 msgid "Automatically save files at the end of all operations" msgstr "Bestanden automatisch opslaan na afronden" -#: .././config.py:19365 +#: .././config.py:20160 msgid "For simulated downloads, don't check a video in a folder more than once" msgstr "Video's eenmalig controleren tijdens simulaties" -#: .././config.py:19376 +#: .././config.py:20171 msgid "If a download stalls, restart it after this many minutes" msgstr "Onderbroken downloads herstarten na opgegeven aantal minuten" -#: .././config.py:19397 +#: .././config.py:20192 msgid "If a network problem is detected, restart the download immediately" msgstr "Downloads direct herstarten na netwerkprobleem" -#: .././config.py:19409 +#: .././config.py:20204 msgid "Maximum restarts after a stalled download (0 for no maximum)" msgstr "Maximaal aantal herstartingen na onderbroken download (0 = onbeperkt)" -#: .././config.py:19450 +#: .././config.py:20245 msgid "" "Allow downloader to create its own archive file (so deleted videos are not " "re-downloaded)" @@ -7191,17 +7278,17 @@ msgstr "" "Downloader toestaan eigen archiefbestand te maken (zodat verwijderde video's " "niet nogmaals worden gedownload)" -#: .././config.py:19461 +#: .././config.py:20256 msgid "" "Also create an archive file when downloading from the Classic Mode tab (not " "recommended)" msgstr "Archiefbestand maken bij gebruik van klassieke modus (niet aanbevolen)" -#: .././config.py:19472 +#: .././config.py:20267 msgid "When checking videos, apply a 60-second timeout" msgstr "Time-out van 60 seconden hanteren bij controles" -#: .././config.py:19482 +#: .././config.py:20277 msgid "" "Convert .webp thumbnails into .jpg thumbnails (using FFmpeg) after " "downloading them" @@ -7209,326 +7296,349 @@ msgstr "" ".webp-miniaturen converteren naar .jpg-miniaturen (middels FFmpeg) na het " "downloaden" -#: .././config.py:19499 +#: .././config.py:20299 msgid "_Custom" msgstr "_Aangepast" -#: .././config.py:19504 +#: .././config.py:20304 msgid "Custom downloads" msgstr "" -#: .././config.py:19525 .././config.py:21160 +#: .././config.py:20325 .././config.py:22077 msgid "Classic Mode" msgstr "Klassieke modus" -#: .././config.py:19598 .././config.py:21235 .././config.py:21500 +#: .././config.py:20397 .././config.py:22151 .././config.py:22424 msgid "Export" msgstr "Exporteren" -#: .././config.py:19607 .././config.py:21244 .././config.py:21509 +#: .././config.py:20406 .././config.py:22160 .././config.py:22433 msgid "Clone" msgstr "Klonen" -#: .././config.py:19616 .././config.py:21253 +#: .././config.py:20415 .././config.py:22169 msgid "Use in Classic Mode tab" msgstr "Toevoegen aan klassieke modus" -#: .././config.py:19722 +#: .././config.py:20518 +msgid "L_ivestreams" +msgstr "" + +#: .././config.py:20526 +msgid "Livestream preferences (compatible websites only)" +msgstr "Livestreaminstellingen (alleen compatibele websites)" + +#: .././config.py:20532 +msgid "Detect livestreams announced within this many days" +msgstr "Livestreams binnen opgegeven aantal dagen detecteren" + +#: .././config.py:20547 +msgid "How often to check the status of livestreams (in minutes)" +msgstr "" +"Hoe vaak de livestreamstatussen moeten worden gecontroleerd (in minuten)" + +#: .././config.py:20566 +msgid "Check more frequently when a livestream is due to start" +msgstr "Vaker controleren als livestream op het punt staat te beginnen" + +#: .././config.py:20609 +msgid "Broadcast preferences (compatible websites only)" +msgstr "Uitzendinstellingen (alleen compatibele websites)" + +#: .././config.py:20616 +msgid "" +"Use Youtube Stream Capture to download broadcasting livestreams (requires " +"aria2)" +msgstr "" +"YouTube-streamopname gebruiken om livestreams te downloaden (vereist aria2)" + +#: .././config.py:20626 +msgid "Timeout after this many minutes of inactivity" +msgstr "Time-out na opgegeven aantal minuten inactiviteit" + +#: .././config.py:20640 +msgid "Number of restarts after a timeout" +msgstr "Aantal herstartingen na time-out" + +#: .././config.py:20655 +msgid "" +"Bypass usual limits on simultaneous downloads, so that all broadcasts can be " +"downloaded" +msgstr "" +"Gebruikelijke beperkingen omzeilen tijdens gelijktijdige downloads om alle " +"livestreams te downloaden" + +#: .././config.py:20708 msgid "Video Clips (requires FFmpeg)" msgstr "" -#: .././config.py:19728 +#: .././config.py:20714 msgid "" "When a video is checked/downloaded, automatically extract timestamps from " "its metadata file" msgstr "" -#: .././config.py:19739 +#: .././config.py:20725 msgid "" "When a video is checked/downloaded, automatically extract timestamps from " "its description" msgstr "" -#: .././config.py:19749 +#: .././config.py:20735 msgid "If timestamps have already been extracted, replace them" msgstr "" -#: .././config.py:19761 +#: .././config.py:20747 msgid "" "If no timestamps have been extracted, try again before splitting a video" msgstr "" -#: .././config.py:19774 +#: .././config.py:20760 msgid "Format of video clip filenames" msgstr "" -#: .././config.py:19779 +#: .././config.py:20765 msgid "Number" msgstr "" -#: .././config.py:19780 +#: .././config.py:20766 msgid "Clip Title" msgstr "" -#: .././config.py:19781 +#: .././config.py:20767 msgid "Number + Clip Title" msgstr "" -#: .././config.py:19782 +#: .././config.py:20768 msgid "Clip Title + Number" msgstr "" -#: .././config.py:19783 +#: .././config.py:20769 msgid "Original Title" msgstr "" -#: .././config.py:19784 +#: .././config.py:20770 msgid "Original Title + Number" msgstr "" -#: .././config.py:19785 +#: .././config.py:20771 msgid "Original Title + Clip Title" msgstr "" -#: .././config.py:19786 +#: .././config.py:20772 msgid "Original Title + Number + Clip Title" msgstr "" -#: .././config.py:19787 +#: .././config.py:20773 msgid "Original Title + Clip Title + Number" msgstr "" -#: .././config.py:19814 +#: .././config.py:20800 msgid "Generic title for video clips" msgstr "" -#: .././config.py:19831 +#: .././config.py:20817 msgid "Move clips to the Video Clips folder" msgstr "" -#: .././config.py:19838 +#: .././config.py:20824 msgid "Keep clips with their original video" msgstr "" -#: .././config.py:19851 +#: .././config.py:20837 msgid "...but place new files inside a sub-directory" msgstr "" -#: .././config.py:19862 +#: .././config.py:20848 msgid "Add new files to Tartube's database" msgstr "" -#: .././config.py:19873 +#: .././config.py:20859 msgid "Use the original video's thumbnail" msgstr "" -#: .././config.py:19881 +#: .././config.py:20867 msgid "After splitting a video, open the destination folder" msgstr "" -#: .././config.py:19883 +#: .././config.py:20869 msgid "After splitting a video, open the destination directory" msgstr "" -#: .././config.py:19895 +#: .././config.py:20881 msgid "" "After splitting a video, delete the original (ignored for videos in channels/" "playlists)" msgstr "" -#: .././config.py:19921 +#: .././config.py:20911 msgid "Video Slices (requires FFmpeg)" msgstr "" -#: .././config.py:19927 +#: .././config.py:20917 msgid "" "While checking/downloading videos, check each video against the SponsorBlock " "server" msgstr "" -#: .././config.py:19938 +#: .././config.py:20928 msgid "When contacting the server, obfuscate each video's ID (recommended)" msgstr "" -#: .././config.py:19952 +#: .././config.py:20942 msgid "If slices have already been extracted, replace the old list" msgstr "" -#: .././config.py:19965 +#: .././config.py:20955 msgid "" "If slices have been extracted, contact the server again before removing more " "slices from the video" msgstr "" -#: .././config.py:19979 +#: .././config.py:20969 msgid "" "After removing slices from a video, reset all timestamp and slice data " "(recommended)" msgstr "" -#: .././config.py:20000 -msgid "L_ivestreams" +#: .././config.py:21002 +msgid "Video Comments (requires yt-dlp)" msgstr "" -#: .././config.py:20009 -msgid "Livestream preferences (compatible websites only)" -msgstr "Livestreaminstellingen (alleen compatibele websites)" - -#: .././config.py:20015 -msgid "Detect livestreams announced within this many days" -msgstr "Livestreams binnen opgegeven aantal dagen detecteren" - -#: .././config.py:20030 -msgid "How often to check the status of livestreams (in minutes)" +#: .././config.py:21008 +msgid "When checking/downloading videos, store comments in the metadata file" msgstr "" -"Hoe vaak de livestreamstatussen moeten worden gecontroleerd (in minuten)" -#: .././config.py:20049 -msgid "Check more frequently when a livestream is due to start" -msgstr "Vaker controleren als livestream op het punt staat te beginnen" - -#: .././config.py:20092 -msgid "Broadcast preferences (compatible websites only)" -msgstr "Uitzendinstellingen (alleen compatibele websites)" - -#: .././config.py:20099 +#: .././config.py:21018 msgid "" -"Use Youtube Stream Capture to download broadcasting livestreams (requires " -"aria2)" +"Warning: fetching comments will increase the download time, perhaps by a lot!" msgstr "" -"YouTube-streamopname gebruiken om livestreams te downloaden (vereist aria2)" -#: .././config.py:20109 -msgid "Timeout after this many minutes of inactivity" -msgstr "Time-out na opgegeven aantal minuten inactiviteit" - -#: .././config.py:20123 -msgid "Number of restarts after a timeout" -msgstr "Aantal herstartingen na time-out" +#: .././config.py:21024 +msgid "Also store comments in the Tartube database" +msgstr "" -#: .././config.py:20138 +#: .././config.py:21041 msgid "" -"Bypass usual limits on simultaneous downloads, so that all broadcasts can be " -"downloaded" +"Warning: storing comments will increase the size of Tartube's datbase, " +"perhaps by a lot!" msgstr "" -"Gebruikelijke beperkingen omzeilen tijdens gelijktijdige downloads om alle " -"livestreams te downloaden" -#: .././config.py:20179 +#: .././config.py:21061 msgid "_Actions" msgstr "_Acties" -#: .././config.py:20188 +#: .././config.py:21069 msgid "Livestream actions (can be toggled for individual videos)" msgstr "Livestreamacties (deze kunnen per video worden ingesteld)" -#: .././config.py:20195 +#: .././config.py:21076 msgid "(currently disabled on MS Windows)" msgstr "(momenteel uitgeschakeld op Windows)" -#: .././config.py:20200 +#: .././config.py:21081 msgid "When a livestream starts, show a desktop notification" msgstr "Melding tonen als een livestream begint" -#: .././config.py:20214 +#: .././config.py:21095 msgid "When a livestream starts, sound an alarm" msgstr "Geluid afspelen als een livestream begint" -#: .././config.py:20237 +#: .././config.py:21118 msgid "Plays the selected sound effect" msgstr "Gekozen geluidseffect afspelen" -#: .././config.py:20244 +#: .././config.py:21125 msgid "When a livestream starts, open it in the system's web browser" msgstr "Livestream openen in webbrowser zodra deze begint" -#: .././config.py:20256 +#: .././config.py:21137 msgid "When a livestream starts, begin downloading it immediately" msgstr "Downloaden starten als de livestream begint" -#: .././config.py:20282 +#: .././config.py:21163 msgid "Desktop notification preferences" msgstr "Meldingsinstellingen" -#: .././config.py:20288 +#: .././config.py:21169 msgid "Show a dialogue window at the end of an operation" msgstr "Dialoogvenster tonen na afronden van acties" -#: .././config.py:20311 +#: .././config.py:21192 msgid "Don't notify the user at the end of an operation" msgstr "Geen melding tonen na afronden van acties" -#: .././config.py:20344 +#: .././config.py:21230 msgid "_Mirrors" msgstr "" -#: .././config.py:20352 +#: .././config.py:21237 msgid "Invidious mirror" msgstr "Invidious-spiegelserver" -#: .././config.py:20358 +#: .././config.py:21243 msgid "To find an updated list of Invidious mirrors, use any search engine!" msgstr "" "Gebruik je favoriete zoekmachine om een lijst met Invidious-spiegelservers " "te vinden." -#: .././config.py:20373 +#: .././config.py:21258 msgid "Use the default Invidious mirror" msgstr "" -#: .././config.py:20388 +#: .././config.py:21273 msgid "SponsorBlock API mirror" msgstr "" -#: .././config.py:20401 +#: .././config.py:21286 msgid "Use the default SponsorBlock URL" msgstr "" -#: .././config.py:20413 +#: .././config.py:21303 msgid "_Proxies" msgstr "_Proxy's" -#: .././config.py:20419 +#: .././config.py:21309 msgid "Proxies" msgstr "Proxy's" -#: .././config.py:20426 +#: .././config.py:21316 msgid "" "During a download operation, Tartube will cycle betwween the proxies in this " "list" msgstr "Tijdens het downloaden schakelt Tartube tussen proxy's op deze lijst" -#: .././config.py:20447 +#: .././config.py:21342 msgid "P_references" msgstr "I_nstellingen" -#: .././config.py:20455 +#: .././config.py:21349 msgid "URL flexibility preferences" msgstr "URL-flexibiliteitsinstellingen" -#: .././config.py:20462 +#: .././config.py:21356 msgid "" "If a video's URL represents a channel/playlist, not a video, don't download " "it" msgstr "Video niet ophalen als url naar een kanaal/afspeellijst leidt" -#: .././config.py:20471 +#: .././config.py:21365 msgid "...or, download multiple videos into the containing folder" msgstr "...of meerdere video's downloaden naar bijbehorende map" -#: .././config.py:20481 +#: .././config.py:21375 msgid "...or, create a new channel, and download the videos into that" msgstr "...of nieuw kanaal toevoegen en video's daarnaartoe downloaden" -#: .././config.py:20492 +#: .././config.py:21386 msgid "...or, create a new playlist, and download the videos into that" msgstr "...of nieuwe afspeellijst toevoegen en video's daarnaartoe downloaden" -#: .././config.py:20524 +#: .././config.py:21418 msgid "Missing video preferences" msgstr "Instellingen omtrent ontbrekende video's" -#: .././config.py:20530 +#: .././config.py:21424 msgid "" "Add videos which have been removed from a channel/playlist to the Missing " "Videos folder" @@ -7536,90 +7646,90 @@ msgstr "" "Van kanaal/afspeellijst verwijderde video's toevoegen aan map 'Ontbrekende " "video's'" -#: .././config.py:20541 +#: .././config.py:21435 msgid "Only add videos that were uploaded within this many days" msgstr "" "Alleen video's toevoegen die zijn geüpload binnen het opgegeven aantal dagen" -#: .././config.py:20610 +#: .././config.py:21509 msgid "_Forks" msgstr "A_fsplitsingen" -#: .././config.py:20616 +#: .././config.py:21515 msgid "Forks of youtube-dl" msgstr "Afsplitsingen van youtube-dl" -#: .././config.py:20645 +#: .././config.py:21544 msgid "Use yt-dlp" msgstr "" -#: .././config.py:20651 +#: .././config.py:21550 msgid "Install without dependencies" msgstr "" -#: .././config.py:20652 +#: .././config.py:21551 msgid "(recommended on MS Windows)" msgstr "" -#: .././config.py:20683 +#: .././config.py:21582 msgid "Use youtube-dl" msgstr "youtube-dl gebruiken" -#: .././config.py:20704 +#: .././config.py:21603 msgid "Other forks" msgstr "" -#: .././config.py:20712 +#: .././config.py:21611 msgid "Use this fork:" msgstr "" -#: .././config.py:20792 +#: .././config.py:21691 msgid "When using other downloaders, filter out yt-dlp download options" msgstr "" -#: .././config.py:20809 +#: .././config.py:21713 msgid "_File paths" msgstr "_Bestandspaden" -#: .././config.py:20816 +#: .././config.py:21720 msgid "Downloader file paths" msgstr "Bestandspaden van downloader" -#: .././config.py:20822 +#: .././config.py:21726 msgid "Path to the executable" msgstr "Pad naar uitvoerbaar bestand" #. (Signal connect appears below) -#: .././config.py:20828 .././config.py:20976 .././config.py:21017 -#: .././config.py:21087 .././config.py:28160 +#: .././config.py:21732 .././config.py:21884 .././config.py:21925 +#: .././config.py:21999 .././config.py:29260 msgid "Use default path" msgstr "Standaardpad gebruiken" -#: .././config.py:20833 .././config.py:28172 +#: .././config.py:21737 .././config.py:29272 msgid "Use local path" msgstr "Lokaal pad gebruiken" -#: .././config.py:20837 +#: .././config.py:21741 msgid "Use custom path" msgstr "" -#: .././config.py:20845 .././config.py:28186 +#: .././config.py:21749 .././config.py:29286 msgid "Use PyPI path" msgstr "PyPI-pad gebruiken" -#: .././config.py:20896 +#: .././config.py:21800 msgid "Command for update operations" msgstr "Opdracht voor bijwerkacties" -#: .././config.py:20944 +#: .././config.py:21853 msgid "_FFmpeg / AVConv" msgstr "_FFmpeg/AVConv" -#: .././config.py:20952 +#: .././config.py:21860 msgid "Post-processing file paths" msgstr "Naverwerkingsbestandspaden" -#: .././config.py:20957 +#: .././config.py:21865 msgid "" "You only need to set these paths if Tartube cannot find FFmpeg / AVConv " "automatically" @@ -7627,31 +7737,31 @@ msgstr "" "Je hoeft deze paden alleen in te stellen als Tartube FFmpeg of AVConv niet " "automatisch heeft aangetroffen" -#: .././config.py:20964 +#: .././config.py:21872 msgid "Path to the FFmpeg executable" msgstr "Pad naar uitvoerbaar FFmpeg-bestand" -#: .././config.py:20991 +#: .././config.py:21899 msgid "Install from main menu" msgstr "Installeren vanuit hoofdmenu" -#: .././config.py:21005 +#: .././config.py:21913 msgid "Path to the AVConv executable" msgstr "Pad naar uitvoerbaar AVConv-bestand" -#: .././config.py:21032 +#: .././config.py:21940 msgid "Not supported on MS Windows" msgstr "Wordt niet ondersteund op Windows" -#: .././config.py:21055 +#: .././config.py:21968 msgid "_Stream Capture" msgstr "_Streamopname" -#: .././config.py:21063 +#: .././config.py:21975 msgid "Youtube Stream Capture file path" msgstr "Bestandspad naar YouTube-streamopname" -#: .././config.py:21068 +#: .././config.py:21980 msgid "" "Tartube includes a copy of this script, but you can use a different copy, if " "you want" @@ -7659,297 +7769,298 @@ msgstr "" "Tartube levert een kopie van dit script mee, maar als je wilt kun je een " "andere kopie gebruiken" -#: .././config.py:21075 +#: .././config.py:21987 msgid "Path to the YT Stream Capture executable" msgstr "Pad naar uitvoerbaar bestand van YouTube-streamopname" -#: .././config.py:21133 +#: .././config.py:22050 msgid "_Download options" msgstr "Download_opties" -#: .././config.py:21140 +#: .././config.py:22057 msgid "List of download options managers" msgstr "Lijst met downloadoptiebeheerders" -#: .././config.py:21161 +#: .././config.py:22078 msgid "Applied to media" msgstr "Toegepast op media" -#: .././config.py:21359 +#: .././config.py:22279 msgid "_Preferences" msgstr "_Instellingen" -#: .././config.py:21366 +#: .././config.py:22286 msgid "Download options preferences" msgstr "Downloadoptie-instellingen" -#: .././config.py:21372 +#: .././config.py:22292 msgid "" "When applying download options to something, clone the general download " "options" msgstr "Algemene downloadopties klonen bij toepassing van downloadopties" -#: .././config.py:21383 +#: .././config.py:22303 msgid "After downloading a video, destroy its download options" msgstr "Downloadopties vergeten na downloaden van video's" -#: .././config.py:21400 +#: .././config.py:22325 msgid "_FFmpeg options" msgstr "_FFmpeg-opties" -#: .././config.py:21407 +#: .././config.py:22332 msgid "List of FFmpeg options managers" msgstr "Lijst met FFmpeg-optiebeheerders" -#: .././config.py:21427 +#: .././config.py:22352 msgid "Current" msgstr "Huidige" -#: .././config.py:21518 +#: .././config.py:22442 msgid "Use these options" msgstr "Deze opties gebruiken" #. Add this tab... -#: .././config.py:21609 +#: .././config.py:22532 msgid "O_utput" msgstr "_Uitvoer" -#: .././config.py:21628 +#: .././config.py:22556 msgid "_Output tab" msgstr "_Uitvoertabblad" -#: .././config.py:21636 +#: .././config.py:22563 msgid "Output tab preferences" msgstr "Instellingen omtrent uitvoertabblad" -#: .././config.py:21641 +#: .././config.py:22568 msgid "Display downloader system commands in the Output tab" msgstr "Systeemopdrachten van downloader tonen op tabblad 'Uitvoer'" -#: .././config.py:21650 +#: .././config.py:22577 msgid "Display output from downloader's STDOUT in the Output tab" msgstr "STDOUT-uitvoer van downloader tonen op tabblad 'Uitvoer'" -#: .././config.py:21659 .././config.py:21821 +#: .././config.py:22586 .././config.py:22753 msgid "...but don't write each video's JSON data" msgstr "...maar schrijf geen json-gegevens van elke video weg" -#: .././config.py:21670 .././config.py:21832 +#: .././config.py:22597 .././config.py:22764 msgid "...but don't write each video's download progress" msgstr "...maar schrijf geen downloadvoortgang van elke video weg" -#: .././config.py:21689 +#: .././config.py:22616 msgid "Display output from downloader's STDERR in the Output tab" msgstr "STDERR-uitvoer van downloader tonen op tabblad 'Uitvoer'" -#: .././config.py:21698 +#: .././config.py:22625 msgid "Limit the size of Output tab pages to" msgstr "Aantal pagina's op tabblad 'Uitvoer' beperken tot" -#: .././config.py:21719 +#: .././config.py:22646 msgid "Empty pages in the Output tab at the start of every operation" msgstr "Pagina's op tabblad 'Uitvoer' legen na elke actie" -#: .././config.py:21729 +#: .././config.py:22656 msgid "" "Show a summary of active threads (changes are applied when Tartube restarts)" msgstr "" "Samenvatting van actieve processen tonen (herstart om deze wijziging toe te " "passen)" -#: .././config.py:21741 +#: .././config.py:22668 msgid "During update/info operations, automatically switch to the Output tab" msgstr "" -#: .././config.py:21752 +#: .././config.py:22679 msgid "During a refresh operation, show all matching videos in the Output tab" msgstr "" "Alle overeenkomende video's tonen op tabblad 'Uitvoer' tijdens bijwerken" -#: .././config.py:21763 +#: .././config.py:22690 msgid "...also show all non-matching videos" msgstr "...en ook niet-overeenkomende video's tonen" -#: .././config.py:21792 +#: .././config.py:22724 msgid "_Terminal window" msgstr "_Terminalvenster" -#: .././config.py:21798 +#: .././config.py:22730 msgid "Terminal window preferences" msgstr "Terminalvensterinstellingen" -#: .././config.py:21803 +#: .././config.py:22735 msgid "Write downloader system commands to the terminal window" msgstr "Systeemopdrachten van downloader tonen in terminalvenster" -#: .././config.py:21812 +#: .././config.py:22744 msgid "Write output from downloader's STDOUT to the terminal window" msgstr "STDOUT-uitvoer van downloader tonen in terminalvenster" -#: .././config.py:21854 +#: .././config.py:22786 msgid "Write output from downloader's STDERR to the terminal window" msgstr "STDERR-uitvoer van downloader tonen in terminalvenster" -#: .././config.py:21873 +#: .././config.py:22810 msgid "_Both" msgstr "_Beide" -#: .././config.py:21878 +#: .././config.py:22815 msgid "" "Special preferences (applies to both the Output tab and the terminal window)" msgstr "" "Speciale instellingen (van toepassing op het tabblad 'Uitvoer' en het " "terminalvenster)" -#: .././config.py:21885 +#: .././config.py:22822 msgid "Downloader writes verbose output (youtube-dl debugging mode)" msgstr "Uitgebreide uitvoer van downloader (youtube-dl-foutopsporingsmodus)" -#: .././config.py:21894 +#: .././config.py:22831 msgid "Youtube Stream Capture writes verbose output" msgstr "Uitgebreide uitvoer van streamopname" #. Confirm the result -#: .././config.py:22640 .././config.py:24410 .././config.py:25118 -#: .././config.py:26255 .././refresh.py:483 .././refresh.py:591 +#: .././config.py:23577 .././config.py:25396 .././config.py:25453 +#: .././config.py:26161 .././config.py:27303 .././config.py:27348 +#: .././refresh.py:483 .././refresh.py:591 msgid "Total videos:" msgstr "Totaal aantal video's:" -#: .././config.py:22641 .././config.py:24412 .././config.py:25119 -#: .././config.py:26256 +#: .././config.py:23578 .././config.py:25398 .././config.py:25455 +#: .././config.py:26162 .././config.py:27304 .././config.py:27349 msgid "Videos updated:" msgstr "" -#: .././config.py:22831 +#: .././config.py:23813 msgid "Are you sure you want to rename this channel?" msgstr "" -#: .././config.py:22833 +#: .././config.py:23815 msgid "Are you sure you want to rename this playlist?" msgstr "" -#: .././config.py:22835 +#: .././config.py:23817 msgid "Are you sure you want to rename this folder?" msgstr "" -#: .././config.py:22875 +#: .././config.py:23857 msgid "That is not a valid URL" msgstr "" -#: .././config.py:22896 +#: .././config.py:23878 msgid "Are you sure you want to update the URL?" msgstr "" -#: .././config.py:22943 +#: .././config.py:23925 msgid "The regex is invalid" msgstr "" -#: .././config.py:22991 +#: .././config.py:23973 msgid "Are you sure you want to update these URLs?" msgstr "" -#: .././config.py:23211 +#: .././config.py:24193 msgid "The default custom download manager cannot be deleted" msgstr "" -#: .././config.py:23219 +#: .././config.py:24201 msgid "Are you sure you want to delete this custom download manager?" msgstr "" -#: .././config.py:23493 +#: .././config.py:24475 msgid "Are you sure you want to create a new database at this location?" msgstr "" "Weet je zeker dat je een nieuwe databank wilt aanmaken op deze locatie?" -#: .././config.py:23600 +#: .././config.py:24582 msgid "Are you sure you want to forget this database?" msgstr "Weet je zeker dat je deze databank wilt wissen?" -#: .././config.py:23635 +#: .././config.py:24617 msgid "Are you sure you want to forget all databases except the current one?" msgstr "Weet je zeker dat je alle databanken, behalve de huidige, wilt wissen?" -#: .././config.py:23839 +#: .././config.py:24821 msgid "No database exists at this location:" msgstr "Er is geen databank op deze locatie:" -#: .././config.py:23841 +#: .././config.py:24823 msgid "Do you want to create a new one?" msgstr "Wil je een nieuwe aanmaken?" -#: .././config.py:24581 +#: .././config.py:25624 msgid "The current options manager cannot be deleted" msgstr "De huidige optiebeheerder kan niet worden verwijderd" -#: .././config.py:24589 .././config.py:25640 +#: .././config.py:25632 .././config.py:26680 msgid "Are you sure you want to delete this options manager?" msgstr "Weet je zeker dat je deze optiebeheerder wilt verwijderen?" -#: .././config.py:24783 .././config.py:25177 .././config.py:26977 +#: .././config.py:25826 .././config.py:26217 .././config.py:28077 msgid "The new setting will be applied when Tartube restarts" msgstr "Herstart Tartube om de instellingen toe te passen" -#: .././config.py:25632 +#: .././config.py:26672 msgid "The default options manager cannot be deleted" msgstr "De standaard optiebeheerder kan niet worden verwijderd" -#: .././config.py:26598 +#: .././config.py:27698 msgid "There is already a scheduled download with that name" msgstr "Er is al een ingeplande download met die naam" -#: .././config.py:26645 +#: .././config.py:27745 msgid "Are you sure you want to delete this scheduled download?" msgstr "Weet je zeker dat je deze ingeplande download wilt verwijderen?" -#: .././config.py:26830 +#: .././config.py:27930 msgid "Please select the AVConv executable" msgstr "Kies het uitvoerbare AVConv-bestand" -#: .././config.py:26863 +#: .././config.py:27963 msgid "Please select the FFmpeg executable" msgstr "Kies het uitvoerbare FFmpeg-bestand" -#: .././config.py:26896 +#: .././config.py:27996 msgid "Please select the Youtube Stream Capture executable" msgstr "Kies het uitvoerbare YouTube-streamopnamebestand" -#: .././config.py:27839 +#: .././config.py:28939 msgid "Select the youtube-dl-compatible executable" msgstr "" -#: .././config.py:28083 +#: .././config.py:29183 msgid "Database file not loaded" msgstr "Geen databank geladen" -#: .././config.py:28103 +#: .././config.py:29203 msgid "Did not try to load the database file" msgstr "Niet geprobeerd om de databank te laden" -#: .././config.py:28128 +#: .././config.py:29228 msgid "Database file loaded" msgstr "Databank geladen" -#: .././downloads.py:322 +#: .././downloads.py:323 msgid "D/L Manager:" msgstr "D/L-beheerder:" -#: .././downloads.py:326 +#: .././downloads.py:327 msgid "Starting download operation" msgstr "Bezig met starten van downloadactie" -#: .././downloads.py:357 +#: .././downloads.py:358 msgid "Workers: available:" msgstr "Beschikbare werkers:" -#: .././downloads.py:358 +#: .././downloads.py:359 msgid "total:" msgstr "totaal:" -#: .././downloads.py:390 +#: .././downloads.py:391 msgid "Alternative performance limits no longer apply" msgstr "" -#: .././downloads.py:398 +#: .././downloads.py:399 msgid "Alternative performance limits now apply" msgstr "" @@ -7957,9 +8068,9 @@ msgstr "" msgid "All threads finished" msgstr "Alle processen zijn afgerond" -#: .././downloads.py:464 .././downloads.py:1383 .././downloads.py:1394 -#: .././downloads.py:1469 .././downloads.py:1541 .././downloads.py:1582 -#: .././downloads.py:1654 +#: .././downloads.py:464 .././downloads.py:1392 .././downloads.py:1403 +#: .././downloads.py:1478 .././downloads.py:1550 .././downloads.py:1591 +#: .././downloads.py:1663 msgid "Thread #" msgstr "Proces #" @@ -7979,123 +8090,123 @@ msgstr "Bezig met stoppen van alle werkers" msgid "Join and collect threads" msgstr "Processen verzamelen en samenvoegen" -#: .././downloads.py:1384 +#: .././downloads.py:1393 msgid "Job complete" msgstr "Taak afgerond" -#: .././downloads.py:1395 +#: .././downloads.py:1404 msgid "Worker now available again" msgstr "De werker is weer beschikbaar" -#: .././downloads.py:1470 .././downloads.py:1583 .././downloads.py:1655 +#: .././downloads.py:1479 .././downloads.py:1592 .././downloads.py:1664 msgid "Assigned job:" msgstr "Toegewezen taak:" -#: .././downloads.py:1494 .././downloads.py:1498 +#: .././downloads.py:1503 .././downloads.py:1507 msgid "Tartube is restarting a stalled download" msgstr "Bezig met herstarten van een onderbroken download..." -#: .././downloads.py:1542 +#: .././downloads.py:1551 msgid "Checking RSS feed" msgstr "Bezig met controleren van rss-feed" -#: .././downloads.py:2188 +#: .././downloads.py:2197 msgid "Cannot download videos in a private folder" msgstr "Video's kunnen niet worden gedownload naar privémappen" -#: .././downloads.py:3539 .././downloads.py:7687 +#: .././downloads.py:3550 .././downloads.py:7714 msgid "Download did not start" msgstr "Downloaden is niet begonnen" -#: .././downloads.py:3545 .././downloads.py:7699 .././info.py:358 +#: .././downloads.py:3556 .././downloads.py:7726 .././info.py:358 #: .././updates.py:278 .././updates.py:496 msgid "Child process exited with non-zero code: {}" msgstr "Onderliggend proces is gestopt met niet-nulcode: {}" -#: .././downloads.py:3672 .././downloads.py:4780 +#: .././downloads.py:3683 .././downloads.py:4812 msgid "" "This video has a URL that points to a channel or a playlist, not a video" msgstr "" "Deze video bevat een url die leidt naar een kanaal of afspeellijst in plaats " "van een video" -#: .././downloads.py:4655 .././downloads.py:4671 +#: .././downloads.py:4687 .././downloads.py:4703 msgid "Simulated download of:" msgstr "Gesimuleerde download van:" -#: .././downloads.py:4679 +#: .././downloads.py:4711 msgid "Simulated download of video with unprintable characters" msgstr "Gesimuleerde videodownload met onleesbare tekens" -#: .././downloads.py:5899 +#: .././downloads.py:5931 msgid "No timestamps defined in video's timestamp list" msgstr "" -#: .././downloads.py:5917 +#: .././downloads.py:5949 msgid "" "FAILED: Can't create the destination folder either because a folder with the " "same name already exists, or because new folders can't be added to the " "parent folder" msgstr "" -#: .././downloads.py:6138 .././downloads.py:6486 +#: .././downloads.py:6170 .././downloads.py:6518 msgid "FAILED: Clip download did not start" msgstr "" -#: .././downloads.py:6146 .././downloads.py:6494 +#: .././downloads.py:6178 .././downloads.py:6526 msgid "FAILED: Child process exited with non-zero code: {}" msgstr "" -#: .././downloads.py:6256 +#: .././downloads.py:6288 msgid "No slices defined in video's slice list" msgstr "" -#: .././downloads.py:6518 +#: .././downloads.py:6550 msgid "FAILED: One or more clips were not downloaded" msgstr "" -#: .././downloads.py:6623 +#: .././downloads.py:6655 msgid "FAILED: Can't concatenate clips" msgstr "" -#: .././downloads.py:6649 +#: .././downloads.py:6676 msgid "" "FAILED: Clips were concatenated, but could not move the output file out of " "the temporary directory" msgstr "" -#: .././downloads.py:6775 +#: .././downloads.py:6802 msgid "Failed to copy the original video's thumbnail" msgstr "" -#: .././downloads.py:6957 +#: .././downloads.py:6984 msgid "FAILED: Can't create a temporary folder for video clips" msgstr "" #. This object creates more messages for the Output tab and/or terminal, #. than downloads.VideoDownloader would do, as the output generated by #. Youtube Stream Capture is not easy for the user to interpret -#: .././downloads.py:7578 +#: .././downloads.py:7605 msgid "Tartube is starting the stream capture..." msgstr "Bezig met starten van streamopname..." -#: .././downloads.py:7596 +#: .././downloads.py:7623 msgid "Could not create a destination directory, capture halted" msgstr "De bestemming kan niet worden aangemaakt - de opname is onderbroken" -#: .././downloads.py:7617 .././downloads.py:7642 +#: .././downloads.py:7644 .././downloads.py:7669 msgid "Youtube Stream Capture script not found:" msgstr "Geen YouTube-streamopnamesscript aangetroffen:" -#: .././downloads.py:7691 +#: .././downloads.py:7718 msgid "Failed to capture the livestream" msgstr "De livestream kan niet worden opgenomen" -#: .././downloads.py:7695 +#: .././downloads.py:7722 msgid "Stream capture terminated" msgstr "Streamopname afgebroken" -#: .././downloads.py:7705 +#: .././downloads.py:7732 msgid "" "Stream captured terminated without downloading any video segments " "(indicating an error with the stream)" @@ -8104,47 +8215,47 @@ msgstr "" "(dit duidt op een fout met de stream)" #. Capture successful -#: .././downloads.py:7721 +#: .././downloads.py:7748 msgid "Stream capture successful" msgstr "De stream is opgenomen" #. Show a confirmation message -#: .././downloads.py:7751 +#: .././downloads.py:7778 msgid "Merging file segments..." msgstr "Bezig met samenvoegen..." -#: .././downloads.py:7771 +#: .././downloads.py:7798 msgid "Segment merge did not start" msgstr "Het samenvoegen is niet begonnen" -#: .././downloads.py:7782 +#: .././downloads.py:7809 msgid "Segment merge completed, but path not detected" msgstr "Het samenvoegen is voltooid, maar het pad is niet aangetroffen" -#: .././downloads.py:7792 +#: .././downloads.py:7819 msgid "Segment merge completed, but output file not found" msgstr "" "Het samenvoegen is voltooid, maar het uitvoerbestand is niet aangetroffen" -#: .././downloads.py:7813 +#: .././downloads.py:7840 msgid "File moved to:" msgstr "Het bestand is verplaatst naar:" -#: .././downloads.py:7818 +#: .././downloads.py:7845 msgid "Livestream download is complete" msgstr "De livestream is gedownload" -#: .././downloads.py:7823 +#: .././downloads.py:7850 msgid "Failed to move output file" msgstr "Het uitvoerbestand kan niet worden verplaatst" -#: .././downloads.py:7991 +#: .././downloads.py:8018 #, python-brace-format msgid "Stream capture is frozen, trying again (restart #{0})" msgstr "" "De streamopname is vastgelopen - er wordt opnieuw begonnen (#{0} herstarten)" -#: .././downloads.py:7998 +#: .././downloads.py:8025 msgid "Stream capture is frozen, giving up" msgstr "De streamopname is vastgelopen - de opname wordt afgebroken" @@ -8213,196 +8324,196 @@ msgid "Sunday" msgstr "" #. System folder names -#: .././formats.py:917 +#: .././formats.py:926 msgid "All Videos" msgstr "Alle video's" -#: .././formats.py:918 +#: .././formats.py:927 msgid "Bookmarks" msgstr "Bladwijzers" -#: .././formats.py:919 +#: .././formats.py:928 msgid "Favourite Videos" msgstr "Favoriete video's" -#: .././formats.py:920 +#: .././formats.py:929 msgid "Livestreams" msgstr "Livestreams" -#: .././formats.py:921 +#: .././formats.py:930 msgid "Missing Videos" msgstr "Ontbrekende video's" -#: .././formats.py:922 +#: .././formats.py:931 msgid "New Videos" msgstr "Nieuwe video's" -#: .././formats.py:924 +#: .././formats.py:933 msgid "Waiting Videos" msgstr "Video's in wachtrij" -#: .././formats.py:925 +#: .././formats.py:934 msgid "Temporary Videos" msgstr "Tijdelijke video's" -#: .././formats.py:926 +#: .././formats.py:935 msgid "Unsorted Videos" msgstr "Ongesorteerde video's" -#: .././formats.py:927 +#: .././formats.py:936 msgid "Video Clips" msgstr "" -#: .././formats.py:932 +#: .././formats.py:941 msgid "Update using default youtube-dl path" msgstr "Bijwerken middels standaard youtube-dl-pad" -#: .././formats.py:934 +#: .././formats.py:943 msgid "Update using local youtube-dl path" msgstr "Bijwerken middels lokaal youtube-dl-pad" -#: .././formats.py:936 +#: .././formats.py:945 msgid "Update using custom youtube-dl path" msgstr "" -#: .././formats.py:938 +#: .././formats.py:947 msgid "Update using pip" msgstr "Bijwerken met pip" -#: .././formats.py:940 +#: .././formats.py:949 msgid "Update using pip (use --no-dependencies option)" msgstr "" -#: .././formats.py:942 +#: .././formats.py:951 msgid "Update using pip (omit --user option)" msgstr "Bijwerken met pip (zonder --user)" -#: .././formats.py:944 +#: .././formats.py:953 msgid "Update using pip3" msgstr "Bijwerken met pip3" -#: .././formats.py:946 +#: .././formats.py:955 msgid "Update using pip3 (use --no-dependencies option)" msgstr "" -#: .././formats.py:948 +#: .././formats.py:957 msgid "Update using pip3 (omit --user option)" msgstr "Bijwerken met pip3 (zonder --user)" -#: .././formats.py:950 +#: .././formats.py:959 msgid "Update using pip3 (recommended)" msgstr "Bijwerken met pip3 (aanbevolen)" -#: .././formats.py:952 +#: .././formats.py:961 msgid "Update using PyPI youtube-dl path" msgstr "Bijwerken middels PyPI-youtube-dl-pad" -#: .././formats.py:954 +#: .././formats.py:963 msgid "Windows 32-bit update (recommended)" msgstr "Windows 32-bit-update (aanbevolen)" -#: .././formats.py:956 +#: .././formats.py:965 msgid "Windows 32-bit update (use --no-dependencies option)" msgstr "" -#: .././formats.py:958 +#: .././formats.py:967 msgid "Windows 64-bit update (recommended)" msgstr "Windows 64-bit-update (aanbevolen)" -#: .././formats.py:960 +#: .././formats.py:969 msgid "Windows 64-bit update (use --no-dependencies option)" msgstr "" -#: .././formats.py:962 +#: .././formats.py:971 msgid "youtube-dl updates are disabled" msgstr "youtube-dl-updates zijn uitgeschakeld" #. Download operation stages -#: .././formats.py:966 +#: .././formats.py:975 msgid "Queued" msgstr "In wachtrij" -#: .././formats.py:967 +#: .././formats.py:976 msgid "Not started" msgstr "" -#: .././formats.py:968 +#: .././formats.py:977 msgid "Active" msgstr "Actief" -#: .././formats.py:969 +#: .././formats.py:978 msgid "Paused" msgstr "Gepauzeerd" #. (not actually used) -#: .././formats.py:970 +#: .././formats.py:979 msgid "Completed" msgstr "Afgerond" #. (not actually used) #. Sub-stages of the 'Error' stage -#: .././formats.py:971 .././formats.py:986 +#: .././formats.py:980 .././formats.py:995 msgid "Error" msgstr "Fout" -#: .././formats.py:972 +#: .././formats.py:981 msgid "Stalled" msgstr "Onderbroken" #. Sub-stages of the 'Active' stage -#: .././formats.py:974 +#: .././formats.py:983 msgid "Pre-processing" msgstr "Aan het voorverwerken" -#: .././formats.py:975 +#: .././formats.py:984 msgid "Downloading" msgstr "Aan het downloaden" -#: .././formats.py:976 +#: .././formats.py:985 msgid "Concatenating" msgstr "" -#: .././formats.py:977 +#: .././formats.py:986 msgid "Post-processing" msgstr "Aan het naverwerken" -#: .././formats.py:978 +#: .././formats.py:987 msgid "Capturing" msgstr "Aan het opnemen" #. Used by YTSC -#: .././formats.py:979 +#: .././formats.py:988 msgid "Merging" msgstr "Aan het samenvoegen" #. Used by YTSC -#: .././formats.py:980 +#: .././formats.py:989 msgid "Checking" msgstr "Aan het controleren" #. Sub-stages of the 'Completed' stage -#: .././formats.py:982 +#: .././formats.py:991 msgid "Finished" msgstr "Afgerond" -#: .././formats.py:983 +#: .././formats.py:992 msgid "Warning" msgstr "Waarschuwing" -#: .././formats.py:984 +#: .././formats.py:993 msgid "Already downloaded" msgstr "Reeds gedownload" #. (not actually used) -#: .././formats.py:987 +#: .././formats.py:996 msgid "Stopped" msgstr "Afgebroken" -#: .././formats.py:988 +#: .././formats.py:997 msgid "Filesize abort" msgstr "Bestandsgrootte na afbreken" -#: .././formats.py:998 +#: .././formats.py:1007 msgid "" "TRANSLATOR'S NOTE: ID refers to a video's unique ID on the website, e.g. on " "YouTube \"CS9OO0S5w2k\"" @@ -8410,23 +8521,23 @@ msgstr "" "TRANSLATOR'S NOTE: ID refers to a video's unique ID on the website, e.g. on " "YouTube \"CS9OO0S5w2k\"" -#: .././formats.py:1007 +#: .././formats.py:1016 msgid "ID" msgstr "ID" -#: .././formats.py:1008 +#: .././formats.py:1017 msgid "Title" msgstr "Titel" -#: .././formats.py:1009 +#: .././formats.py:1018 msgid "Quality" msgstr "Kwaliteit" -#: .././formats.py:1010 +#: .././formats.py:1019 msgid "Autonumber" msgstr "Automatisch nummeren" -#: .././formats.py:1022 +#: .././formats.py:1031 msgid "Any format" msgstr "Ieder formaat" @@ -8510,7 +8621,7 @@ msgstr "TRANSLATOR'S NOTE: Source = video/channel/playlist URL" #. When the download operation is launched from the Classic Mode #. tab, there is less to display -#: .././media.py:553 .././media.py:1954 .././media.py:1970 +#: .././media.py:553 .././media.py:1976 .././media.py:1992 msgid "Source:" msgstr "Bron:" @@ -8526,11 +8637,11 @@ msgstr "Downloadbestemming:" msgid "unavailable" msgstr "" -#: .././media.py:591 .././media.py:1986 +#: .././media.py:591 .././media.py:2008 msgid "Errors\\Warnings" msgstr "Fouten/Waarschuwingen" -#: .././media.py:1925 +#: .././media.py:1947 msgid "" "TRANSLATOR'S NOTE: WAITING = livestream not started, LIVE = livestream " "started" @@ -8538,39 +8649,39 @@ msgstr "" "TRANSLATOR'S NOTE: WAITING = livestream not started, LIVE = livestream " "started" -#: .././media.py:1930 +#: .././media.py:1952 msgid "WAITING" msgstr "BEZIG MET WACHTEN" -#: .././media.py:1932 +#: .././media.py:1954 msgid "LIVE" msgstr "LIVE" -#: .././media.py:1942 .././refresh.py:259 .././refresh.py:529 +#: .././media.py:1964 .././refresh.py:259 .././refresh.py:529 msgid "Channel:" msgstr "Kanaal:" -#: .././media.py:1944 .././refresh.py:261 .././refresh.py:531 +#: .././media.py:1966 .././refresh.py:261 .././refresh.py:531 msgid "Playlist:" msgstr "Afspeellijst:" -#: .././media.py:1946 .././refresh.py:263 .././refresh.py:533 +#: .././media.py:1968 .././refresh.py:263 .././refresh.py:533 msgid "Folder:" msgstr "Map:" -#: .././media.py:1951 +#: .././media.py:1973 msgid "TRANSLATOR'S NOTE 2: Source = video/channel/playlist URL" msgstr "TRANSLATOR'S NOTE 2: Source = video/channel/playlist URL" -#: .././media.py:1960 .././media.py:1977 +#: .././media.py:1982 .././media.py:1999 msgid "File:" msgstr "Bestand:" -#: .././media.py:2976 .././media.py:3037 +#: .././media.py:3079 .././media.py:3140 msgid "Today" msgstr "Vandaag" -#: .././media.py:2978 .././media.py:3039 +#: .././media.py:3081 .././media.py:3142 msgid "Yesterday" msgstr "Gisteren" @@ -8765,19 +8876,23 @@ msgstr "Metagegevensbestanden (json) verwijderd:" msgid "Annotation files deleted:" msgstr "Aantekeningsbestanden verwijderd:" -#: .././tidy.py:647 +#: .././tidy.py:649 msgid "Deleted (possibly) corrupted video file:" msgstr "(Mogelijk) beschadigde video verwijderd:" -#: .././tidy.py:662 .././tidy.py:1273 +#: .././tidy.py:662 +msgid "Failed to delete (possibly) corrupted video file:" +msgstr "" + +#: .././tidy.py:673 .././tidy.py:1271 msgid "Video file might be corrupt:" msgstr "Mogelijk beschadigd videobestand:" -#: .././tidy.py:703 +#: .././tidy.py:714 msgid "Video file exists:" msgstr "Videobestand bestaat:" -#: .././tidy.py:721 +#: .././tidy.py:732 msgid "Video file doesn't exist:" msgstr "Videobestand bestaat niet:" @@ -8802,6 +8917,20 @@ msgstr "Bezig met starten van bijwerkactie om te installeren/bij te werken " msgid "Update did not start" msgstr "Het bijwerken is niet gestart" +#~ msgid "Remember the size of the main window when shutting down" +#~ msgstr "Afmetingen van hoofdvenster onthouden bij afsluiten" + +#~ msgid "Also remember the position of main window sliders" +#~ msgstr "Ook positie van schuifknoppen op hoofdvenster onthouden" + +#~ msgid "In the Progress tab, hide finished videos / channels / playlists" +#~ msgstr "" +#~ "Afgeronde video's, kanalen en afspeellijsten verbergen op " +#~ "voortgangstabblad" + +#~ msgid "In the Progress tab, show results in reverse order" +#~ msgstr "Resultaten in omgekeerde volgorde tonen op voortgangstabblad" + #~ msgid "Imported" #~ msgstr "Geïmporteerd" diff --git a/nsis/tartube_install_32bit.nsi b/nsis/tartube_install_32bit.nsi index 5ade4f42..78c62b6c 100644 --- a/nsis/tartube_install_32bit.nsi +++ b/nsis/tartube_install_32bit.nsi @@ -1,4 +1,4 @@ -# Tartube v2.3.321 installer script for MS Windows +# Tartube v2.3.332 installer script for MS Windows # # Copyright (C) 2019-2021 A S Lewis # @@ -249,7 +249,7 @@ ;Name and file Name "Tartube" - OutFile "install-tartube-2.3.321-32bit.exe" + OutFile "install-tartube-2.3.332-32bit.exe" ;Default installation folder InstallDir "$LOCALAPPDATA\Tartube" @@ -352,7 +352,7 @@ Section "Tartube" SecClient # "Publisher" "A S Lewis" # WriteRegStr HKLM \ # "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tartube" \ -# "DisplayVersion" "2.3.321" +# "DisplayVersion" "2.3.332" # Create uninstaller WriteUninstaller "$INSTDIR\Uninstall.exe" diff --git a/nsis/tartube_install_64bit.nsi b/nsis/tartube_install_64bit.nsi index 304e4c65..1c233791 100644 --- a/nsis/tartube_install_64bit.nsi +++ b/nsis/tartube_install_64bit.nsi @@ -1,4 +1,4 @@ -# Tartube v2.3.321 installer script for MS Windows +# Tartube v2.3.332 installer script for MS Windows # # Copyright (C) 2019-2021 A S Lewis # @@ -249,7 +249,7 @@ ;Name and file Name "Tartube" - OutFile "install-tartube-2.3.321-64bit.exe" + OutFile "install-tartube-2.3.332-64bit.exe" ;Default installation folder InstallDir "$LOCALAPPDATA\Tartube" @@ -352,7 +352,7 @@ Section "Tartube" SecClient # "Publisher" "A S Lewis" # WriteRegStr HKLM \ # "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tartube" \ -# "DisplayVersion" "2.3.321" +# "DisplayVersion" "2.3.332" # Create uninstaller WriteUninstaller "$INSTDIR\Uninstall.exe" diff --git a/pack/bin/no_download/tartube b/pack/bin/no_download/tartube index c0bc0fc6..863ff6cc 100644 --- a/pack/bin/no_download/tartube +++ b/pack/bin/no_download/tartube @@ -42,8 +42,8 @@ import mainapp # 'Global' variables __packagename__ = 'tartube' -__version__ = '2.3.321' -__date__ = '5 Aug 2021' +__version__ = '2.3.332' +__date__ = '8 Aug 2021' __copyright__ = 'Copyright \xa9 2019-2021 A S Lewis' __license__ = """ Copyright \xa9 2019-2021 A S Lewis. diff --git a/pack/bin/pkg/tartube b/pack/bin/pkg/tartube index 9cdbef15..223a49aa 100644 --- a/pack/bin/pkg/tartube +++ b/pack/bin/pkg/tartube @@ -42,8 +42,8 @@ import mainapp # 'Global' variables __packagename__ = 'tartube' -__version__ = '2.3.321' -__date__ = '5 Aug 2021' +__version__ = '2.3.332' +__date__ = '8 Aug 2021' __copyright__ = 'Copyright \xa9 2019-2021 A S Lewis' __license__ = """ Copyright \xa9 2019-2021 A S Lewis. diff --git a/pack/bin/strict/tartube b/pack/bin/strict/tartube index 2f9a09c5..2497e5a5 100644 --- a/pack/bin/strict/tartube +++ b/pack/bin/strict/tartube @@ -42,8 +42,8 @@ import mainapp # 'Global' variables __packagename__ = 'tartube' -__version__ = '2.3.321' -__date__ = '5 Aug 2021' +__version__ = '2.3.332' +__date__ = '8 Aug 2021' __copyright__ = 'Copyright \xa9 2019-2021 A S Lewis' __license__ = """ Copyright \xa9 2019-2021 A S Lewis. diff --git a/pack/tartube.1 b/pack/tartube.1 index 1bbc0db9..cc9fe638 100644 --- a/pack/tartube.1 +++ b/pack/tartube.1 @@ -1,4 +1,4 @@ -.TH man 1 "5 Aug 2021" "2.3.321" "tartube man page" +.TH man 1 "8 Aug 2021" "2.3.332" "tartube man page" .SH NAME tartube \- GUI front-end for youtube-dl .SH SYNOPSIS diff --git a/pack/tartube.desktop b/pack/tartube.desktop index 2d14e3f4..1f6e4745 100644 --- a/pack/tartube.desktop +++ b/pack/tartube.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Name=Tartube -Version=2.3.321 +Version=2.3.332 Exec=tartube Icon=tartube Type=Application diff --git a/setup.py b/setup.py index 3d7cfaa7..6c20d196 100644 --- a/setup.py +++ b/setup.py @@ -182,7 +182,7 @@ # Setup setuptools.setup( name='tartube', - version='2.3.321', + version='2.3.332', description='GUI front-end for youtube-dl', long_description=long_description, long_description_content_type='text/plain', diff --git a/tartube/config.py b/tartube/config.py index 18a51cdf..d6bdd993 100644 --- a/tartube/config.py +++ b/tartube/config.py @@ -10111,7 +10111,7 @@ def setup_settings_tab_slice_grid(self, row, outer_width): self.slice_start_entry.set_sensitive(False) label4 = self.add_label(grid2, - _('Stop'), + _('Stop (optional)'), 2, 1, 1, 1, ) label4.set_hexpand(False) @@ -10773,7 +10773,7 @@ def setup_slices_tab(self): self.simple_slice_start_entry.set_sensitive(False) label4 = self.add_label(grid2, - _('Stop'), + _('Stop (optional)'), 2, 1, 1, 1, ) label4.set_hexpand(False) @@ -10842,13 +10842,29 @@ def setup_slices_tab_update_treeview(self): # Add slice data to the treeview, one row at a time for mini_dict in self.retrieve_val('slice_list'): + if 'category' in mini_dict: + category = mini_dict['category'] + else: + category = 'n/a' + + if 'action' in mini_dict: + action = mini_dict['action'] + else: + action = 'n/a' + + if 'start_time' in mini_dict: + start_time = mini_dict['start_time'] + else: + start_time = 'n/a' + + if 'stop_time' in mini_dict \ + and mini_dict['stop_time'] is not None: + stop_time = mini_dict['stop_time'] + else: + stop_time = 'n/a' + self.simple_slice_mode_liststore.append( - [ - mini_dict['category'], - mini_dict['action'], - str(mini_dict['start_time']), - str(mini_dict['stop_time']), - ], + [ category, action, str(start_time), str(stop_time) ], ) @@ -11161,13 +11177,17 @@ def on_add_slice_clicked(self, button): utils.timestamp_convert_to_seconds(self.app_obj, start_time), ) - stop_time = float( - utils.timestamp_convert_to_seconds(self.app_obj, stop_time), - ) + if stop_time == '': + stop_time = None + else: + stop_time = float( + utils.timestamp_convert_to_seconds(self.app_obj, stop_time), + ) try: ignore = float(start_time) - ignore = float(stop_time) + if stop_time is not None: + ignore = float(stop_time) except: return self.app_obj.dialogue_manager_obj.show_msg_dialogue( @@ -11177,7 +11197,7 @@ def on_add_slice_clicked(self, button): self, # Parent window is this window ) - if stop_time <= start_time: + if stop_time is not None and stop_time <= start_time: return self.app_obj.dialogue_manager_obj.show_msg_dialogue( _('Invalid start/stop times'), 'error', @@ -13335,7 +13355,7 @@ def setup_slices_tab(self): entry.set_hexpand(False) label2 = self.add_label(grid, - _('Stop'), + _('Stop (optional)'), 2, 4, 1, 1, ) label2.set_hexpand(False) @@ -13415,7 +13435,8 @@ def setup_slices_tab_update_treeview(self): else: start_time = 'n/a' - if 'stop_time' in mini_dict: + if 'stop_time' in mini_dict \ + and mini_dict['stop_time'] is not None: stop_time = mini_dict['stop_time'] else: stop_time = 'n/a' @@ -13958,25 +13979,25 @@ def on_add_slice_button_clicked(self, button, combo, combo2, entry, \ model2 = combo2.get_model() action_type = model2[tree_iter2][0] + start_time = utils.strip_whitespace(entry.get_text()) + stop_time = utils.strip_whitespace(entry2.get_text()) + start_time = float( - utils.timestamp_convert_to_seconds( - self.app_obj, - utils.strip_whitespace(entry.get_text()), - ) + utils.timestamp_convert_to_seconds(self.app_obj, start_time), ) - stop_time = float( - utils.timestamp_convert_to_seconds( - self.app_obj, - utils.strip_whitespace(entry2.get_text()), + if stop_time == '': + stop_time = None + else: + stop_time = float( + utils.timestamp_convert_to_seconds(self.app_obj, stop_time), ) - ) - # Do nothing if specified timestamps aren't valid ('stop' is NOT - # optional) + # Do nothing if specified timestamps aren't valid try: ignore = float(start_time) - ignore = float(stop_time) + if stop_time is not None: + ignore = float(stop_time) except: return self.app_obj.dialogue_manager_obj.show_msg_dialogue( @@ -13986,7 +14007,7 @@ def on_add_slice_button_clicked(self, button, combo, combo2, entry, \ self, # Parent window is this window ) - if stop_time <= start_time: + if stop_time is not None and stop_time <= start_time: return self.app_obj.dialogue_manager_obj.show_msg_dialogue( _('Invalid start/stop times'), 'error', diff --git a/tartube/downloads.py b/tartube/downloads.py index 2a4e9956..dd2b8b2e 100644 --- a/tartube/downloads.py +++ b/tartube/downloads.py @@ -225,6 +225,11 @@ def __init__(self, app_obj, operation_type, download_list_obj, \ self.total_clip_count = 0 self.total_slice_count = 0 self.total_size_count = 0 + # Special count for media.Video objects which have already been + # checked/downloaded, and are being checked again (directly, for + # example after right-clicking the video) + # If non-zero, prevents mainwin.NewbieDialogue from opening + self.other_video_count = 0 # If mainapp.TartubeApp.operation_convert_mode is set to any value # other than 'disable', then a media.Video object whose URL @@ -276,14 +281,10 @@ def __init__(self, app_obj, operation_type, download_list_obj, \ # Note that if a downloads.DownloadItem was created by a # media.Scheduled object that specifies more (or fewer) workers, # then self.change_worker_count() will be called - if self.alt_limits_flag \ - and self.app_obj.alt_num_worker_apply_flag: + if self.alt_limits_flag: worker_count = self.app_obj.alt_num_worker - - elif (not self.alt_limits_flag) \ - and self.app_obj.num_worker_apply_flag: + elif self.app_obj.num_worker_apply_flag: worker_count = self.app_obj.num_worker_default - else: worker_count = self.app_obj.num_worker_max @@ -401,8 +402,7 @@ def run(self): # Change the number of workers. Bandwidth changes are # applied by OptionsParser.build_limit_rate() if self.app_obj.num_worker_default \ - != self.app_obj.alt_num_worker \ - and self.app_obj.alt_num_worker_apply_flag: + != self.app_obj.alt_num_worker: if not new_flag: @@ -617,6 +617,9 @@ def check_alt_limits(self): if DEBUG_FUNC_FLAG: utils.debug_time('dld 475 check_alt_limits') + if not self.app_obj.alt_num_worker_apply_flag: + return False + # Get the current time and day of the week local = utils.get_local_time() current_hours = int(local.strftime('%H')) @@ -1068,23 +1071,29 @@ def register_video(self, dl_type): Args: - dl_type (str): 'new', 'sim', 'old' or 'clip', depending on the - calling function + dl_type (str): 'new', 'sim', 'old', 'clip' or 'other', depending on + the calling function """ if DEBUG_FUNC_FLAG: utils.debug_time('dld 797 register_video') - self.total_video_count += 1 - if dl_type == 'new': - self.total_dl_count += 1 - elif dl_type == 'sim': - self.total_sim_count += 1 + if dl_type == 'other': + # Special count for already checked/downloaded media.Videos, in + # order to prevent mainwin.NewbieDialogue opening + self.other_video_count += 1 + + else: + self.total_video_count += 1 + if dl_type == 'new': + self.total_dl_count += 1 + elif dl_type == 'sim': + self.total_sim_count += 1 - if self.app_obj.autostop_videos_flag \ - and self.total_video_count >= self.app_obj.autostop_videos_value: - self.stop_download_operation() + if self.app_obj.autostop_videos_flag \ + and self.total_video_count >= self.app_obj.autostop_videos_value: + self.stop_download_operation() def register_video_size(self, size=None): @@ -2445,7 +2454,7 @@ def create_item(self, media_data_obj, scheduled_obj=None, GObject.timeout_add( 0, - app_obj.system_error, + self.app_obj.system_error, 302, 'Invalid argument in Classic Mode tab download operation', ) @@ -2575,9 +2584,11 @@ def create_item(self, media_data_obj, scheduled_obj=None, if ( isinstance(media_data_obj, media.Video) and custom_flag - and self.custom_dl_obj - and self.custom_dl_obj.dl_by_video_flag - and not media_data_obj.dl_flag + and ( + (self.custom_dl_obj and self.custom_dl_obj.dl_by_video_flag) \ + or self.app_obj.temp_stamp_list \ + or self.app_obj.temp_slice_list + ) ) or ( isinstance(media_data_obj, media.Video) and ( @@ -4173,7 +4184,9 @@ def confirm_sim_video(self, json_dict): return - if 'upload_date' in json_dict: + # (Git #322, 'upload_date' might be None) + if 'upload_date' in json_dict \ + and json_dict['upload_date'] is not None: try: # date_string in form YYYYMMDD @@ -4387,7 +4400,7 @@ def confirm_sim_video(self, json_dict): and video_obj.name != app_obj.default_video_name: # This video must not be displayed in the Results List, and - # does counts towards the limit (if any) specified by + # counts towards the limit (if any) specified by # mainapp.TartubeApp.operation_check_limit self.video_limit_count += 1 @@ -4400,9 +4413,13 @@ def confirm_sim_video(self, json_dict): and app_obj.operation_check_limit \ and self.video_limit_count >= app_obj.operation_check_limit: # Limit reached. When we reach the end of this function, - # stop checking videos in this channel playlist + # stop checking videos in this channel/playlist stop_flag = True + # The call to DownloadManager.register_video() below doesn't + # take account of this situation, so make our own call + self.download_manager_obj.register_video('other') + else: # This video must be displayed in the Results List, and counts diff --git a/tartube/formats.py b/tartube/formats.py index e21566eb..286c23fc 100644 --- a/tartube/formats.py +++ b/tartube/formats.py @@ -621,8 +621,10 @@ LANGUAGE_CODE_DICT[key] = value DIALOGUE_ICON_DICT = { + 'newbie_classic_icon': 'newbie_classic_icon.png', 'newbie_icon': 'newbie_icon_64.png', 'ready_icon': 'ready_icon_64.png', + 'setup_classic_icon': 'setup_classic_icon.png', 'system_icon': 'system_icon_64.png', 'yt_remind_icon_en': 'yt_remind_icon_en.png', 'yt_remind_icon_kr': 'yt_remind_icon_kr.png', diff --git a/tartube/mainapp.py b/tartube/mainapp.py index 63e1c6e0..569c5d98 100644 --- a/tartube/mainapp.py +++ b/tartube/mainapp.py @@ -9841,6 +9841,7 @@ def download_manager_finished(self): sim_count = self.download_manager_obj.total_sim_count clip_count = self.download_manager_obj.total_clip_count slice_count = self.download_manager_obj.total_slice_count + other_count = self.download_manager_obj.other_video_count # For the 'custom_sim'/'classic_sim' operation, we need to use the same # custom download manager @@ -9935,7 +9936,8 @@ def download_manager_finished(self): and dl_count == 0 \ and sim_count == 0 \ and clip_count == 0 \ - and slice_count == 0: + and slice_count == 0 \ + and other_count == 0: show_newbie_dialogue_flag = True @@ -9946,11 +9948,11 @@ def download_manager_finished(self): else: msg = _('Download operation halted') - if dl_count or sim_count: + if dl_count or sim_count or other_count: msg += '\n\n' + _('Videos downloaded:') + ' ' \ + str(dl_count) + '\n' + _('Videos checked:') \ - + ' ' + str(sim_count) + + ' ' + str(sim_count + other_count) if clip_count or slice_count: msg += '\n' @@ -10073,7 +10075,10 @@ def download_manager_finished(self): and not self.debug_disable_newbie_flag \ and not manual_stop_flag: - dialogue_win = mainwin.NewbieDialogue(self.main_win_obj) + dialogue_win = mainwin.NewbieDialogue( + self.main_win_obj, + classic_mode_flag, + ) dialogue_win.run() # Retrieve user choices from the dialogue window... @@ -12175,7 +12180,9 @@ def update_video_from_json(self, video_obj, mode='default'): if 'id' in json_dict: video_obj.set_vid(json_dict['id']) - if 'upload_date' in json_dict: + # (Git #322, 'upload_date' might be None) + if 'upload_date' in json_dict \ + and json_dict['upload_date'] is not None: try: # date_string in form YYYYMMDD diff --git a/tartube/mainwin.py b/tartube/mainwin.py index 11b5424a..73e2aaf9 100644 --- a/tartube/mainwin.py +++ b/tartube/mainwin.py @@ -15633,6 +15633,7 @@ def on_video_catalogue_process_slice(self, menu_item, media_data_obj): start_time = utils.strip_whitespace(dialogue_win.start_time) stop_time = utils.strip_whitespace(dialogue_win.stop_time) all_flag = dialogue_win.all_flag + all_but_flag = dialogue_win.all_but_flag dialogue_win.destroy() if response != Gtk.ResponseType.CANCEL \ @@ -15649,12 +15650,13 @@ def on_video_catalogue_process_slice(self, menu_item, media_data_obj): ) ) - stop_time = float( - utils.timestamp_convert_to_seconds( - self.app_obj, - stop_time, + if stop_time is not None: + stop_time = float( + utils.timestamp_convert_to_seconds( + self.app_obj, + stop_time, + ) ) - ) except: self.app_obj.dialogue_manager_obj.show_msg_dialogue( @@ -15665,7 +15667,7 @@ def on_video_catalogue_process_slice(self, menu_item, media_data_obj): return - if stop_time <= start_time: + if stop_time is not None and stop_time <= start_time: self.app_obj.dialogue_manager_obj.show_msg_dialogue( _('Invalid start/stop times'), 'error', @@ -15676,22 +15678,68 @@ def on_video_catalogue_process_slice(self, menu_item, media_data_obj): # Compile the mini-dictionary in the format described by # media.Video.__init__() - mini_dict = { - 'category': 'sponsor', - 'action': 'skip', - 'start_time': start_time, - 'stop_time': stop_time, - 'duration': 0, - } + # Then store the values in a temporary buffer, so that + # download/process operations can retrieve them + if not all_but_flag: + + mini_dict = { + 'category': 'sponsor', + 'action': 'skip', + 'start_time': start_time, + 'stop_time': stop_time, + 'duration': 0, + } + + self.app_obj.set_temp_slice_list([ mini_dict ]) + + elif start_time > 0 and stop_time is not None: + + mini_dict = { + 'category': 'sponsor', + 'action': 'skip', + 'start_time': 0, + 'stop_time': start_time, + 'duration': 0, + } + + mini_dict2 = { + 'category': 'sponsor', + 'action': 'skip', + 'start_time': stop_time, + 'stop_time': None, + 'duration': 0, + } + + self.app_obj.set_temp_slice_list([ mini_dict, mini_dict2 ]) + + elif start_time > 0 and stop_time is None: + + mini_dict = { + 'category': 'sponsor', + 'action': 'skip', + 'start_time': 0, + 'stop_time': start_time, + 'duration': 0, + } + + self.app_obj.set_temp_slice_list([ mini_dict ]) - # Store the values in a temporary buffer, so that download/ - # process operations can retrieve them - self.app_obj.set_temp_slice_list([ mini_dict ]) + else: + + mini_dict = { + 'category': 'sponsor', + 'action': 'skip', + 'start_time': stop_time, + 'stop_time': None, + 'duration': 0, + } + + self.app_obj.set_temp_slice_list([ mini_dict ]) else: - # Remove all slices in the media.Video's .slice_list, ignoring - # any times the user just entered in the dialogue window + # Use all slices in the media.Video's .slice_list, ignoring any + # times the user just entered in the dialogue window self.app_obj.set_temp_slice_list(media_data_obj.slice_list) if not media_data_obj.dl_flag: @@ -27916,13 +27964,16 @@ class NewbieDialogue(Gtk.Dialog): main_win_obj (mainwin.MainWin): The parent main window + classic_mode_flag (bool): True if the download operation was launched + from the Classic Mode tab, False otherwise + """ # Standard class methods - def __init__(self, main_win_obj): + def __init__(self, main_win_obj, classic_mode_flag): if DEBUG_FUNC_FLAG: utils.debug_time('mwn 25247 __init__') @@ -27990,58 +28041,81 @@ def __init__(self, main_win_obj): # Separator grid.attach(Gtk.HSeparator(), 1, 1, grid_width, 1) - label2 = Gtk.Label( + if not classic_mode_flag: + extra_rows = 0 + + else: + extra_rows = 3 + + label2 = Gtk.Label( + _('Check the video/audio file actually exists'), + ) + grid.attach(label2, 1, 2, grid_width, 1) + + label3 = Gtk.Label( + _('(Try converting instead of a direct download)'), + ) + grid.attach(label3, 1, 3, grid_width, 1) + + frame = Gtk.Frame() + grid.attach(frame, 1, 4, grid_width, 1) + + image2 = Gtk.Image.new_from_pixbuf( + main_win_obj.pixbuf_dict['newbie_classic_icon'], + ) + frame.add(image2) + + label4 = Gtk.Label( ' ' + _('Check the downloader is installed and updated') + ' ', ) - grid.attach(label2, 1, 2, grid_width, 1) + grid.attach(label4, 1, (extra_rows + 2), grid_width, 1) button = Gtk.Button.new_with_label( _('Update') + ' ' + self.main_win_obj.app_obj.get_downloader(), ) - grid.attach(button, 1, 3, grid_width, 1) + grid.attach(button, 1, (extra_rows + 3), grid_width, 1) button.connect('clicked', self.on_update_button_clicked) - - label3 = Gtk.Label( + label5 = Gtk.Label( _('Tell Tartube where to find the downloader'), ) - grid.attach(label3, 1, 4, grid_width, 1) + grid.attach(label5, 1, (extra_rows + 4), grid_width, 1) button2 = Gtk.Button.new_with_label( _('Set the downloader\'s file path'), ) - grid.attach(button2, 1, 5, grid_width, 1) + grid.attach(button2, 1, (extra_rows + 5), grid_width, 1) button2.connect('clicked', self.on_config_button_clicked) button3 = Gtk.Button.new_with_label( _('Try a different downloader'), ) - grid.attach(button3, 1, 6, grid_width, 1) + grid.attach(button3, 1, (extra_rows + 6), grid_width, 1) button3.connect('clicked', self.on_change_button_clicked) - label4 = Gtk.Label( + label6 = Gtk.Label( _('Find more help'), ) - grid.attach(label4, 1, 7, grid_width, 1) + grid.attach(label6, 1, (extra_rows + 7), grid_width, 1) button4 = Gtk.Button.new_with_label( _('Read the FAQ'), ) - grid.attach(button4, 1, 8, 1, 1) + grid.attach(button4, 1, (extra_rows + 8), 1, 1) button4.connect('clicked', self.on_website_button_clicked) button5 = Gtk.Button.new_with_label( _('Ask for help'), ) - grid.attach(button5, 2, 8, 1, 1) + grid.attach(button5, 2, (extra_rows + 8), 1, 1) button5.connect('clicked', self.on_issues_button_clicked) # Separator - grid.attach(Gtk.HSeparator(), 1, 9, grid_width, 1) + grid.attach(Gtk.HSeparator(), 1, (extra_rows + 9), grid_width, 1) - label5 = Gtk.Label() - grid.attach(label5, 1, 10, grid_width, 1) - label5.set_markup( + label7 = Gtk.Label() + grid.attach(label7, 1, (extra_rows + 10), grid_width, 1) + label7.set_markup( _( 'Don\'t forget to check the Output tab and the\n' \ 'Errors/Warnings tab for error messages!', @@ -28049,10 +28123,10 @@ def __init__(self, main_win_obj): ) # Separator - grid.attach(Gtk.HSeparator(), 1, 11, grid_width, 1) + grid.attach(Gtk.HSeparator(), 1, (extra_rows + 11), grid_width, 1) checkbutton = Gtk.CheckButton() - grid.attach(checkbutton, 1, 12, grid_width, 1) + grid.attach(checkbutton, 1, (extra_rows + 12), grid_width, 1) checkbutton.set_label(_('Always show this window')) if self.show_flag: checkbutton.set_active(True) @@ -28479,6 +28553,7 @@ def __init__(self, main_win_obj, video_obj): self.start_time = None self.stop_time = None self.all_flag = False + self.all_but_flag = False # Code @@ -28524,7 +28599,7 @@ def __init__(self, main_win_obj, video_obj): label2 = Gtk.Label() grid.attach(label2, 0, 2, 1, 1) - label2.set_markup(_('Stop')) + label2.set_markup(_('Stop (optional)')) label2.set_alignment(0, 0.5) entry2 = Gtk.Entry() @@ -28532,7 +28607,7 @@ def __init__(self, main_win_obj, video_obj): entry2.connect('changed', self.on_stop_entry_changed) if not video_obj.dl_flag: - msg = _('Download this sliced video') + msg = _('Download and remove this slice') else: msg = _('Create this sliced video') @@ -28542,6 +28617,20 @@ def __init__(self, main_win_obj, video_obj): button.connect('clicked', self.on_one_button_clicked) button.set_sensitive(False) + if video_obj.dl_flag: + extra_rows = 0 + button = Gtk.Button() + + else: + extra_rows = 1 + button2 = Gtk.Button.new_with_label( + _('Download and remove everything but this slice'), + ) + grid.attach(button2, 0, 5, 1, 1) + button2.set_hexpand(False) + button2.connect('clicked', self.on_all_but_button_clicked) + button2.set_sensitive(False) + if not video_obj.dl_flag: msg = _('Download video with all slices removed') else: @@ -28549,15 +28638,15 @@ def __init__(self, main_win_obj, video_obj): msg += ' (' + str(len(video_obj.slice_list)) + ')' - button2 = Gtk.Button.new_with_label(msg) - grid.attach(button2, 0, 5, 1, 1) - button2.set_hexpand(False) - button2.connect('clicked', self.on_all_button_clicked) + button3 = Gtk.Button.new_with_label(msg) + grid.attach(button3, 0, (5 + extra_rows), 1, 1) + button3.set_hexpand(False) + button3.connect('clicked', self.on_all_button_clicked) if not video_obj.slice_list: - button2.set_sensitive(False) + button3.set_sensitive(False) # (Signal connect from above) - entry.connect('changed', self.on_start_entry_changed, button) + entry.connect('changed', self.on_start_entry_changed, button, button2) # Display the dialogue window self.show_all() @@ -28585,6 +28674,26 @@ def on_all_button_clicked(self, button): self.destroy() + def on_all_but_button_clicked(self, button): + + """Called from a callback in self.__init__(). + + Marks everything but the specified slice to be removed, using the + specified times. + + Args: + + button (Gtk.Button): The widget clicked + + """ + + if DEBUG_FUNC_FLAG: + utils.debug_time('mwn 24914 on_all_but_button_clicked') + + self.all_but_flag = True + self.destroy() + + def on_one_button_clicked(self, button): """Called from a callback in self.__init__(). @@ -28604,7 +28713,7 @@ def on_one_button_clicked(self, button): self.destroy() - def on_start_entry_changed (self, entry, button): + def on_start_entry_changed (self, entry, button, button2): """Called from callback in self.__init__(). @@ -28614,7 +28723,7 @@ def on_start_entry_changed (self, entry, button): entry (Gtk.Entry): The clicked widget - button (Gtk.Button): Another widget to be modified + button, button2 (Gtk.Button): Other widgets to be modified """ @@ -28627,11 +28736,13 @@ def on_start_entry_changed (self, entry, button): self.start_time = None button.set_sensitive(False) + button2.set_sensitive(False) else: self.start_time = value button.set_sensitive(True) + button2.set_sensitive(True) def on_stop_entry_changed (self, entry): diff --git a/tartube/media.py b/tartube/media.py index c5bab38d..7ec39ab8 100644 --- a/tartube/media.py +++ b/tartube/media.py @@ -1824,7 +1824,8 @@ def __init__(self, app_obj, dbid, name, parent_obj=None, options_obj=None, # formats.SPONSORBLOCK_ACTION_LIST (e.g. 'skip') # mini_dict['start_time'] # mini_dict['stop_time'] = Floating point values in seconds, - # the beginning and end of the slice + # the beginning and end of the slice. If 'stop_time' is None, + # the end of the video is used # mini_dict['duration'] = The video duration, as reported by # SponsorBlock. This valus is not required by Tartube code, # and its default value is 0 diff --git a/tartube/po/messages.pot b/tartube/po/messages.pot index beaa9e95..ff716086 100644 --- a/tartube/po/messages.pot +++ b/tartube/po/messages.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-03 07:52+0100\n" +"POT-Creation-Date: 2021-08-08 13:06+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -25,7 +25,7 @@ msgstr "" msgid "Small" msgstr "" -#: .././mainapp.py:319 .././config.py:5054 .././config.py:5132 +#: .././mainapp.py:319 .././config.py:5140 .././config.py:5218 msgid "Medium" msgstr "" @@ -37,7 +37,7 @@ msgstr "" msgid "Enormous" msgstr "" -#: .././mainapp.py:991 +#: .././mainapp.py:996 msgid "" "Failed to convert a thumbnail from .webp to .jpg. No more conversions will " "be attempted until you install FFmpeg on your system, or (if FFmpeg is " @@ -46,186 +46,186 @@ msgid "" "conversions" msgstr "" -#: .././mainapp.py:2997 +#: .././mainapp.py:3017 msgid "" "Tartube can't create the folder in which its configuration file is saved" msgstr "" #. Load/save has been disabled. Show the error message in a dialogue #. window, then shut down -#: .././mainapp.py:3044 +#: .././mainapp.py:3064 msgid "Tartube failed to start because:" msgstr "" -#: .././mainapp.py:3052 +#: .././mainapp.py:3072 msgid "If you don't know how to resolve this error, please contact the authors" msgstr "" -#: .././mainapp.py:3280 +#: .././mainapp.py:3296 msgid "Because of an error, file load/save has been disabled" msgstr "" -#: .././mainapp.py:3289 +#: .././mainapp.py:3305 msgid "Because of the error, file load/save has been disabled" msgstr "" -#: .././mainapp.py:3377 +#: .././mainapp.py:3393 msgid "There is a download operation in progress." msgstr "" -#: .././mainapp.py:3379 +#: .././mainapp.py:3395 msgid "There is an update operation in progress." msgstr "" -#: .././mainapp.py:3381 +#: .././mainapp.py:3397 msgid "There is a refresh operation in progress." msgstr "" -#: .././mainapp.py:3383 +#: .././mainapp.py:3399 msgid "There is an info operation in progress." msgstr "" -#: .././mainapp.py:3385 +#: .././mainapp.py:3401 msgid "There is a tidy operation in progress." msgstr "" -#: .././mainapp.py:3387 +#: .././mainapp.py:3403 msgid "There is a process operation in progress." msgstr "" -#: .././mainapp.py:3392 +#: .././mainapp.py:3408 msgid "Are you sure you want to quit Tartube?" msgstr "" -#: .././mainapp.py:3597 +#: .././mainapp.py:3613 msgid "Failed to load the Tartube config file (failed sanity check)" msgstr "" -#: .././mainapp.py:3620 +#: .././mainapp.py:3636 msgid "Failed to load the Tartube config file (file is locked)" msgstr "" -#: .././mainapp.py:3650 +#: .././mainapp.py:3666 msgid "Failed to load the Tartube config file (JSON load failure)" msgstr "" -#: .././mainapp.py:3668 +#: .././mainapp.py:3684 msgid "Failed to load the Tartube config file (file is invalid)" msgstr "" -#: .././mainapp.py:3686 +#: .././mainapp.py:3702 msgid "" "Failed to load the Tartube config file (file cannot be read by this version)" msgstr "" -#: .././mainapp.py:3701 +#: .././mainapp.py:3717 msgid "Failed to load the Tartube config file (missing file type)" msgstr "" -#: .././mainapp.py:4720 +#: .././mainapp.py:4746 msgid "Failed to save the Tartube config file (failed sanity check)" msgstr "" -#: .././mainapp.py:5084 +#: .././mainapp.py:5115 msgid "Failed to save the Tartube config file (file is locked)" msgstr "" -#: .././mainapp.py:5086 .././mainapp.py:6744 .././mainapp.py:6800 -#: .././mainapp.py:6806 +#: .././mainapp.py:5117 .././mainapp.py:6789 .././mainapp.py:6845 +#: .././mainapp.py:6851 msgid "File load/save has been disabled" msgstr "" -#: .././mainapp.py:5105 +#: .././mainapp.py:5136 msgid "Failed to save the Tartube config file (file already in use)" msgstr "" -#: .././mainapp.py:5124 +#: .././mainapp.py:5155 msgid "Failed to save the Tartube config file" msgstr "" -#: .././mainapp.py:5229 .././mainapp.py:5245 .././mainapp.py:5275 +#: .././mainapp.py:5260 .././mainapp.py:5276 .././mainapp.py:5306 msgid "Failed to load the Tartube database file" msgstr "" -#: .././mainapp.py:5290 +#: .././mainapp.py:5321 msgid "The Tartube database file is invalid" msgstr "" -#: .././mainapp.py:5306 +#: .././mainapp.py:5337 msgid "Database file can't be read by this version of Tartube" msgstr "" -#: .././mainapp.py:5667 +#: .././mainapp.py:5698 msgid "Tartube is applying an essential database update" msgstr "" -#: .././mainapp.py:5669 +#: .././mainapp.py:5700 msgid "This might take a few minutes, so please be patient" msgstr "" -#: .././mainapp.py:6738 .././mainapp.py:6796 .././mainapp.py:6805 +#: .././mainapp.py:6783 .././mainapp.py:6841 .././mainapp.py:6850 msgid "Failed to save the Tartube database file" msgstr "" -#: .././mainapp.py:6741 +#: .././mainapp.py:6786 msgid "(Could not make a backup copy of the existing file)" msgstr "" -#: .././mainapp.py:6777 +#: .././mainapp.py:6822 msgid "Failed to save the Tartube database file (file already in use)" msgstr "" -#: .././mainapp.py:6798 +#: .././mainapp.py:6843 msgid "A backup of the previous file can be found at:" msgstr "" -#: .././mainapp.py:6979 .././mainapp.py:6989 +#: .././mainapp.py:7021 .././mainapp.py:7031 msgid "Database file created" msgstr "" -#: .././mainapp.py:7388 +#: .././mainapp.py:7428 msgid "Tartube's database can't be checked while an operation is in progress" msgstr "" -#: .././mainapp.py:7624 +#: .././mainapp.py:7664 msgid "Database check complete, no inconsistencies found" msgstr "" -#: .././mainapp.py:7656 +#: .././mainapp.py:7696 msgid "Database check complete, problems found:" msgstr "" -#: .././mainapp.py:7659 +#: .././mainapp.py:7699 msgid "" "Do you want to repair these problems? (The database will be fixed, but no " "files will be deleted)" msgstr "" -#: .././mainapp.py:7832 +#: .././mainapp.py:7872 msgid "Database inconsistencies repaired" msgstr "" -#: .././mainapp.py:8918 .././config.py:23466 +#: .././mainapp.py:9070 .././config.py:24448 msgid "Please select Tartube's data folder" msgstr "" -#: .././mainapp.py:9343 +#: .././mainapp.py:9495 msgid "" "A download operation cannot start if one or more configuration windows are " "still open" msgstr "" -#: .././mainapp.py:9367 .././mainapp.py:9392 +#: .././mainapp.py:9519 .././mainapp.py:9544 #, python-brace-format msgid "You only have {0} / {1} Mb remaining on your device" msgstr "" -#: .././mainapp.py:9395 .././mainapp.py:15514 .././mainapp.py:15630 -#: .././mainapp.py:15812 .././mainwin.py:18762 +#: .././mainapp.py:9547 .././mainapp.py:15682 .././mainapp.py:15798 +#: .././mainapp.py:15980 .././mainwin.py:18831 msgid "Are you sure you want to continue?" msgstr "" -#: .././mainapp.py:9490 +#: .././mainapp.py:9642 msgid "" "1. Copy URLs into the box at the top\n" "2. Select a destination and a format\n" @@ -233,551 +233,556 @@ msgid "" "4. Click 'Download all'" msgstr "" -#: .././mainapp.py:9498 +#: .././mainapp.py:9650 msgid "There is nothing to check!" msgstr "" -#: .././mainapp.py:9502 +#: .././mainapp.py:9654 msgid "There is nothing to download!" msgstr "" -#: .././mainapp.py:9793 +#: .././mainapp.py:9947 msgid "Download operation complete" msgstr "" -#: .././mainapp.py:9795 +#: .././mainapp.py:9949 msgid "Download operation halted" msgstr "" -#: .././mainapp.py:9799 +#: .././mainapp.py:9953 msgid "Videos downloaded:" msgstr "" -#: .././mainapp.py:9800 .././config.py:24411 +#: .././mainapp.py:9954 .././config.py:25397 .././config.py:25454 msgid "Videos checked:" msgstr "" -#: .././mainapp.py:9807 +#: .././mainapp.py:9961 msgid "Clips downloaded:" msgstr "" -#: .././mainapp.py:9810 +#: .././mainapp.py:9964 msgid "Video slices removed:" msgstr "" -#: .././mainapp.py:9814 .././mainapp.py:10491 .././mainapp.py:10985 -#: .././mainapp.py:11408 +#: .././mainapp.py:9968 .././mainapp.py:10648 .././mainapp.py:11138 +#: .././mainapp.py:11560 msgid "Time taken:" msgstr "" -#: .././mainapp.py:9993 +#: .././mainapp.py:10150 msgid "" "An update operation cannot start if one or more configuration windows are " "still open" msgstr "" -#: .././mainapp.py:10179 +#: .././mainapp.py:10336 msgid "Installation failed" msgstr "" -#: .././mainapp.py:10181 +#: .././mainapp.py:10338 msgid "Installation complete" msgstr "" -#: .././mainapp.py:10185 +#: .././mainapp.py:10342 msgid "Update operation failed" msgstr "" -#: .././mainapp.py:10187 +#: .././mainapp.py:10344 msgid "Update operation halted" msgstr "" -#: .././mainapp.py:10189 +#: .././mainapp.py:10346 msgid "Update operation complete" msgstr "" -#: .././mainapp.py:10191 +#: .././mainapp.py:10348 msgid "version:" msgstr "" -#: .././mainapp.py:10195 +#: .././mainapp.py:10352 msgid "(unknown)" msgstr "" -#: .././mainapp.py:10284 +#: .././mainapp.py:10441 msgid "" "A refresh operation cannot start if one or more configuration windows are " "still open" msgstr "" -#: .././mainapp.py:10297 +#: .././mainapp.py:10454 msgid "" "During a refresh operation, Tartube analyses its data folder, looking for " "videos that haven't yet been added to its database" msgstr "" -#: .././mainapp.py:10301 +#: .././mainapp.py:10458 msgid "" "You only need to perform a refresh operation if you have manually copied " "videos into Tartube's data folder" msgstr "" -#: .././mainapp.py:10308 +#: .././mainapp.py:10465 msgid "" "Before starting a refresh operation, you should click the 'Check all' button " "in the main window" msgstr "" -#: .././mainapp.py:10315 +#: .././mainapp.py:10472 msgid "" "Before starting a refresh operation, you should right-click the channel and " "select 'Check channel'" msgstr "" -#: .././mainapp.py:10322 +#: .././mainapp.py:10479 msgid "" "Before starting a refresh operation, you should right-click the playlist and " "select 'Check playlist'" msgstr "" -#: .././mainapp.py:10329 +#: .././mainapp.py:10486 msgid "" "Before starting a refresh operation, you should right-click the folder and " "select 'Check folder'" msgstr "" -#: .././mainapp.py:10334 +#: .././mainapp.py:10491 msgid "Are you sure you want to proceed with the refresh operation?" msgstr "" -#: .././mainapp.py:10486 +#: .././mainapp.py:10643 msgid "Refresh operation complete" msgstr "" -#: .././mainapp.py:10488 +#: .././mainapp.py:10645 msgid "Refresh operation halted" msgstr "" -#: .././mainapp.py:10593 +#: .././mainapp.py:10750 msgid "" "An info operation cannot start if one or more configuration windows are " "still open" msgstr "" -#: .././mainapp.py:10709 +#: .././mainapp.py:10863 msgid "Operation failed" msgstr "" -#: .././mainapp.py:10711 .././downloads.py:518 +#: .././mainapp.py:10865 .././downloads.py:518 msgid "Operation complete" msgstr "" -#: .././mainapp.py:10713 -msgid "Click the Output Tab to see the results" +#: .././mainapp.py:10867 +msgid "Click the Output tab to see the results" msgstr "" -#: .././mainapp.py:10726 +#: .././mainapp.py:10880 msgid "A new release is available!" msgstr "" -#: .././mainapp.py:10728 +#: .././mainapp.py:10882 msgid "Your installation is up to date!" msgstr "" -#: .././mainapp.py:10730 +#: .././mainapp.py:10884 msgid "Installed version:" msgstr "" -#: .././mainapp.py:10735 +#: .././mainapp.py:10889 msgid "Stable release:" msgstr "" -#: .././mainapp.py:10740 +#: .././mainapp.py:10894 msgid "Stable release: not found" msgstr "" -#: .././mainapp.py:10743 +#: .././mainapp.py:10897 msgid "Development release:" msgstr "" -#: .././mainapp.py:10745 +#: .././mainapp.py:10899 msgid "Development release: not found" msgstr "" -#: .././mainapp.py:10852 +#: .././mainapp.py:11005 msgid "" "A tidy operation cannot start if one or more configuration windows are still " "open" msgstr "" -#: .././mainapp.py:10980 +#: .././mainapp.py:11133 msgid "Tidy operation complete" msgstr "" -#: .././mainapp.py:10982 +#: .././mainapp.py:11135 msgid "Tidy operation halted" msgstr "" -#: .././mainapp.py:11149 .././mainwin.py:19518 +#: .././mainapp.py:11301 .././mainwin.py:19600 msgid "Livestream has started" msgstr "" -#: .././mainapp.py:11397 +#: .././mainapp.py:11549 msgid "Process operation complete" msgstr "" -#: .././mainapp.py:11399 +#: .././mainapp.py:11551 msgid "Process operation halted" msgstr "" -#: .././mainapp.py:11403 +#: .././mainapp.py:11555 msgid "Files processed:" msgstr "" -#: .././mainapp.py:11404 +#: .././mainapp.py:11556 msgid "Errors:" msgstr "" -#: .././mainapp.py:12712 .././mainapp.py:12899 +#: .././mainapp.py:12871 .././mainapp.py:13070 msgid "Cannot move anything to:" msgstr "" -#: .././mainapp.py:12714 .././mainapp.py:12901 +#: .././mainapp.py:12873 .././mainapp.py:13072 msgid "" "because a file or folder with the same name already exists (although " "Tartube's database doesn't know anything about it)" msgstr "" -#: .././mainapp.py:12718 +#: .././mainapp.py:12877 msgid "" "You probably created that file/folder accidentally, in which case you should " "delete it manually before trying again" msgstr "" -#: .././mainapp.py:12732 .././mainapp.py:12919 +#: .././mainapp.py:12891 .././mainapp.py:13090 msgid "Are you sure you want to move this channel:" msgstr "" -#: .././mainapp.py:12734 .././mainapp.py:12921 +#: .././mainapp.py:12893 .././mainapp.py:13092 msgid "Are you sure you want to move this playlist:" msgstr "" -#: .././mainapp.py:12736 .././mainapp.py:12923 +#: .././mainapp.py:12895 .././mainapp.py:13094 msgid "Are you sure you want to move this folder:" msgstr "" -#: .././mainapp.py:12741 +#: .././mainapp.py:12900 msgid "" "This procedure will move all downloaded files to the top level of Tartube's " "data folder" msgstr "" -#: .././mainapp.py:12841 +#: .././mainapp.py:12941 .././mainapp.py:13152 +#, python-brace-format +msgid "Could not move '{0}' (filesystem error)" +msgstr "" + +#: .././mainapp.py:13012 msgid "Channels, playlists and folders can only be dragged into a folder" msgstr "" -#: .././mainapp.py:12854 +#: .././mainapp.py:13025 #, python-brace-format msgid "The fixed folder '{0}' cannot be moved (but it can still be hidden)" msgstr "" -#: .././mainapp.py:12867 +#: .././mainapp.py:13038 #, python-brace-format msgid "The folder '{0}' can only contain videos" msgstr "" -#: .././mainapp.py:12879 +#: .././mainapp.py:13050 #, python-brace-format msgid "The folder '{0}' can only contain other folders and videos" msgstr "" -#: .././mainapp.py:12906 +#: .././mainapp.py:13077 msgid "" "You probably created that file/folder accidentally, in which case, you " "should delete it manually before trying again" msgstr "" -#: .././mainapp.py:12925 +#: .././mainapp.py:13096 msgid "into this folder:" msgstr "" -#: .././mainapp.py:12929 +#: .././mainapp.py:13100 msgid "This procedure will move all downloaded files to the new location" msgstr "" -#: .././mainapp.py:12935 .././mainapp.py:13064 +#: .././mainapp.py:13106 .././mainapp.py:13244 msgid "" "WARNING: The destination folder is marked as temporary, so everything inside " "it will be DELETED when Tartube restarts!" msgstr "" -#: .././mainapp.py:13042 +#: .././mainapp.py:13222 msgid "Videos cannot be dragged into this folder" msgstr "" -#: .././mainapp.py:13052 +#: .././mainapp.py:13232 #, python-brace-format msgid "Are you sure you want to move the video to '{0}'?" msgstr "" -#: .././mainapp.py:13058 +#: .././mainapp.py:13238 #, python-brace-format msgid "Are you sure you want to move '{0}' videos to '{1}'?" msgstr "" #. Show confirmation dialogue -#: .././mainapp.py:13211 +#: .././mainapp.py:13382 msgid "Videos moved" msgstr "" -#: .././mainapp.py:13212 +#: .././mainapp.py:13383 msgid "Videos not moved:" msgstr "" -#: .././mainapp.py:13620 +#: .././mainapp.py:13791 msgid "" "Are you SURE you want to delete files? This procedure cannot be reversed!" msgstr "" -#: .././mainapp.py:15498 .././mainapp.py:15614 .././mainapp.py:15796 +#: .././mainapp.py:15666 .././mainapp.py:15782 .././mainapp.py:15964 #, python-brace-format msgid "The channel contains {0} item(s), so this action may take a while" msgstr "" -#: .././mainapp.py:15504 .././mainapp.py:15620 .././mainapp.py:15802 +#: .././mainapp.py:15672 .././mainapp.py:15788 .././mainapp.py:15970 #, python-brace-format msgid "The playlist contains {0} item(s), so this action may take a while" msgstr "" -#: .././mainapp.py:15510 .././mainapp.py:15626 .././mainapp.py:15808 +#: .././mainapp.py:15678 .././mainapp.py:15794 .././mainapp.py:15976 #, python-brace-format msgid "The folder contains {0} item(s), so this action may take a while" msgstr "" -#: .././mainapp.py:15876 .././mainapp.py:21383 .././mainapp.py:21515 -#: .././mainapp.py:21646 .././config.py:22802 +#: .././mainapp.py:16044 .././mainapp.py:21553 .././mainapp.py:21685 +#: .././mainapp.py:21816 .././config.py:23784 #, python-brace-format msgid "The name '{0}' is not allowed" msgstr "" -#: .././mainapp.py:15885 .././config.py:22793 +#: .././mainapp.py:16053 .././config.py:23775 #, python-brace-format msgid "The name '{0}' is already in use" msgstr "" -#: .././mainapp.py:15898 +#: .././mainapp.py:16063 #, python-brace-format msgid "Failed to rename '{0}'" msgstr "" #. Confirm the result -#: .././mainapp.py:16105 +#: .././mainapp.py:16267 msgid "Search/replace complete" msgstr "" -#: .././mainapp.py:16106 +#: .././mainapp.py:16268 #, python-brace-format msgid "Updated URLs: {0}" msgstr "" -#: .././mainapp.py:16107 +#: .././mainapp.py:16269 #, python-brace-format msgid "Errors: {0}" msgstr "" -#: .././mainapp.py:16382 +#: .././mainapp.py:16544 msgid "Select where to save the database export" msgstr "" -#: .././mainapp.py:16507 +#: .././mainapp.py:16669 msgid "There is nothing to export!" msgstr "" -#: .././mainapp.py:16547 .././mainapp.py:16591 .././mainapp.py:16635 +#: .././mainapp.py:16709 .././mainapp.py:16753 .././mainapp.py:16797 msgid "Failed to save the database export file:" msgstr "" -#: .././mainapp.py:16643 +#: .././mainapp.py:16805 msgid "Database export file saved to:" msgstr "" -#: .././mainapp.py:16862 +#: .././mainapp.py:17024 msgid "Select the database export" msgstr "" -#: .././mainapp.py:16880 .././mainapp.py:16891 .././mainapp.py:16925 +#: .././mainapp.py:17042 .././mainapp.py:17053 .././mainapp.py:17087 msgid "Failed to load the database export file" msgstr "" -#: .././mainapp.py:16908 +#: .././mainapp.py:17070 msgid "The database export file is invalid" msgstr "" -#: .././mainapp.py:16939 +#: .././mainapp.py:17101 msgid "The database export file is invalid (or empty)" msgstr "" -#: .././mainapp.py:16983 +#: .././mainapp.py:17145 msgid "Nothing was imported from the database export file" msgstr "" #. Show a confirmation -#: .././mainapp.py:16997 +#: .././mainapp.py:17159 msgid "Imported into database" msgstr "" -#: .././mainapp.py:16998 .././mainwin.py:1375 .././config.py:890 -#: .././config.py:14578 .././config.py:17495 +#: .././mainapp.py:17160 .././mainwin.py:1375 .././config.py:922 +#: .././config.py:15230 .././config.py:18227 msgid "Videos" msgstr "" -#: .././mainapp.py:16999 .././config.py:14611 .././config.py:17528 +#: .././mainapp.py:17161 .././config.py:15263 .././config.py:18260 msgid "Channels" msgstr "" -#: .././mainapp.py:17000 .././config.py:14622 .././config.py:17539 +#: .././mainapp.py:17162 .././config.py:15274 .././config.py:18271 msgid "Playlists" msgstr "" -#: .././mainapp.py:17001 +#: .././mainapp.py:17163 msgid "Folders" msgstr "" -#: .././mainapp.py:17673 +#: .././mainapp.py:17835 msgid "" "The video file is missing from Tartube's data folder (try downloading the " "video again!)" msgstr "" -#: .././mainapp.py:18043 +#: .././mainapp.py:18205 msgid "Select where to save the custom download export" msgstr "" -#: .././mainapp.py:18100 +#: .././mainapp.py:18262 msgid "Failed to save the custom download export file:" msgstr "" -#: .././mainapp.py:18108 +#: .././mainapp.py:18270 msgid "Custom download exported to:" msgstr "" -#: .././mainapp.py:18139 +#: .././mainapp.py:18301 msgid "Select the custom download export file" msgstr "" -#: .././mainapp.py:18158 +#: .././mainapp.py:18320 msgid "Failed to load the custom download export file" msgstr "" -#: .././mainapp.py:18175 +#: .././mainapp.py:18337 msgid "The custom download export file is invalid" msgstr "" -#: .././mainapp.py:18186 +#: .././mainapp.py:18348 msgid "The custom download export file is invalid (or empty)" msgstr "" -#: .././mainapp.py:18713 .././mainapp.py:19095 +#: .././mainapp.py:18875 .././mainapp.py:19257 msgid "Select where to save the options export" msgstr "" -#: .././mainapp.py:18761 .././mainapp.py:19143 +#: .././mainapp.py:18923 .././mainapp.py:19305 msgid "Failed to save the options export file:" msgstr "" -#: .././mainapp.py:18769 +#: .././mainapp.py:18931 msgid "Download options exported to to:" msgstr "" -#: .././mainapp.py:18800 .././mainapp.py:19182 +#: .././mainapp.py:18962 .././mainapp.py:19344 msgid "Select the options export file" msgstr "" -#: .././mainapp.py:18819 .././mainapp.py:19201 +#: .././mainapp.py:18981 .././mainapp.py:19363 msgid "Failed to load the options export file" msgstr "" -#: .././mainapp.py:18836 .././mainapp.py:19218 +#: .././mainapp.py:18998 .././mainapp.py:19380 msgid "The options export file is invalid" msgstr "" -#: .././mainapp.py:18847 .././mainapp.py:19229 +#: .././mainapp.py:19009 .././mainapp.py:19391 msgid "The options export file is invalid (or empty)" msgstr "" -#: .././mainapp.py:19151 +#: .././mainapp.py:19313 msgid "FFmpeg options exported to to:" msgstr "" -#: .././mainapp.py:20144 +#: .././mainapp.py:20314 msgid "Please select a destination folder" msgstr "" #. Prompt for confirmation -#: .././mainapp.py:20216 +#: .././mainapp.py:20386 msgid "Are you sure you want to clear this list?" msgstr "" #. Prompt for confirmation -#: .././mainapp.py:20263 +#: .././mainapp.py:20433 msgid "Are you sure you want to clear downloaded videos?" msgstr "" -#: .././mainapp.py:20366 .././mainwin.py:15571 +#: .././mainapp.py:20536 .././mainwin.py:15592 msgid "Only checked/downloaded videos can be processed by FFmpeg" msgstr "" -#: .././mainapp.py:20483 +#: .././mainapp.py:20653 msgid "No video(s) have been downloaded" msgstr "" #. Prompt for confirmation -#: .././mainapp.py:20625 +#: .././mainapp.py:20795 msgid "Are you sure you want to remove the selected item(s)?" msgstr "" -#: .././mainapp.py:21374 +#: .././mainapp.py:21544 msgid "You must give the channel a name" msgstr "" -#: .././mainapp.py:21392 .././mainapp.py:21655 +#: .././mainapp.py:21562 .././mainapp.py:21825 msgid "You must enter a valid URL" msgstr "" -#: .././mainapp.py:21507 +#: .././mainapp.py:21677 msgid "You must give the folder a name" msgstr "" -#: .././mainapp.py:21637 +#: .././mainapp.py:21807 msgid "You must give the playlist a name" msgstr "" -#: .././mainapp.py:21792 +#: .././mainapp.py:21962 msgid "The following videos are duplicates:" msgstr "" -#: .././mainapp.py:21856 +#: .././mainapp.py:22026 msgid "There were no livestream alerts to cancel" msgstr "" -#: .././mainapp.py:21858 +#: .././mainapp.py:22028 msgid "Livestream alerts for 1 video were cancelled" msgstr "" -#: .././mainapp.py:21861 +#: .././mainapp.py:22031 #, python-brace-format msgid "Livestream alerts for {0} videos were cancelled" msgstr "" -#: .././mainapp.py:22249 +#: .././mainapp.py:22419 msgid "All Tartube data has been saved" msgstr "" -#: .././mainapp.py:22279 +#: .././mainapp.py:22449 msgid "Database saved" msgstr "" -#: .././mainapp.py:22564 .././mainwin.py:14383 +#: .././mainapp.py:22734 .././mainwin.py:14404 msgid "" "Files cannot be recovered, after being deleted. Are you sure you want to " "continue?" @@ -786,39 +791,39 @@ msgstr "" #. Because livestream operations run silently in the background, when #. the user goes to the trouble of clicking a menu item in the #. main window's menu, tell them why nothing is happening -#: .././mainapp.py:22604 +#: .././mainapp.py:22774 msgid "Cannot update existing livestreams because" msgstr "" -#: .././mainapp.py:22606 +#: .././mainapp.py:22776 msgid "there is another operation running" msgstr "" -#: .././mainapp.py:22608 +#: .././mainapp.py:22778 msgid "they are currently being updated" msgstr "" -#: .././mainapp.py:22610 +#: .././mainapp.py:22780 msgid "one or more configuration windows are open" msgstr "" -#: .././mainapp.py:22612 +#: .././mainapp.py:22782 msgid "there are no livestreams to update" msgstr "" -#: .././mainapp.py:22686 +#: .././mainapp.py:22856 msgid "There is already a channel with that name" msgstr "" -#: .././mainapp.py:22688 +#: .././mainapp.py:22858 msgid "There is already a playlist with that name" msgstr "" -#: .././mainapp.py:22690 +#: .././mainapp.py:22860 msgid "There is already a folder with that name" msgstr "" -#: .././mainapp.py:22693 +#: .././mainapp.py:22863 msgid "(so please choose a different name)" msgstr "" @@ -827,7 +832,7 @@ msgid "Tartube cannot start because it cannot find its icons folder" msgstr "" #. File column -#: .././mainwin.py:1025 .././config.py:9014 +#: .././mainwin.py:1025 .././config.py:9173 msgid "_File" msgstr "" @@ -852,7 +857,7 @@ msgid "_Close to tray" msgstr "" #. Quit -#: .././mainwin.py:1067 .././mainwin.py:24335 +#: .././mainwin.py:1067 .././mainwin.py:24436 msgid "_Quit" msgstr "" @@ -870,7 +875,7 @@ msgid "_General download options..." msgstr "" #. Media column -#: .././mainwin.py:1091 .././config.py:15303 +#: .././mainwin.py:1091 .././config.py:15952 msgid "_Media" msgstr "" @@ -924,17 +929,17 @@ msgstr "" #. Operations column #. Add this tab... -#: .././mainwin.py:1192 .././config.py:18991 +#: .././mainwin.py:1192 .././config.py:19774 msgid "_Operations" msgstr "" #. Check all -#: .././mainwin.py:1199 .././mainwin.py:24306 +#: .././mainwin.py:1199 .././mainwin.py:24407 msgid "_Check all" msgstr "" #. Download all -#: .././mainwin.py:1205 .././mainwin.py:24313 +#: .././mainwin.py:1205 .././mainwin.py:24414 msgid "_Download all" msgstr "" @@ -950,7 +955,7 @@ msgstr "" msgid "U_pdate" msgstr "" -#: .././mainwin.py:1236 .././mainwin.py:3396 +#: .././mainwin.py:1236 .././mainwin.py:3419 msgid "_Test" msgstr "" @@ -962,7 +967,7 @@ msgstr "" msgid "Tidy up _files..." msgstr "" -#: .././mainwin.py:1267 .././mainwin.py:24324 +#: .././mainwin.py:1267 .././mainwin.py:24425 msgid "_Stop current operation" msgstr "" @@ -1012,7 +1017,7 @@ msgstr "" msgid "Add new video(s)" msgstr "" -#: .././mainwin.py:1394 .././mainwin.py:22943 .././media.py:82 +#: .././mainwin.py:1394 .././mainwin.py:23042 .././media.py:82 msgid "Channel" msgstr "" @@ -1020,7 +1025,7 @@ msgstr "" msgid "Add a new channel" msgstr "" -#: .././mainwin.py:1415 .././mainwin.py:22945 .././media.py:84 +#: .././mainwin.py:1415 .././mainwin.py:23044 .././media.py:84 msgid "Playlist" msgstr "" @@ -1028,7 +1033,7 @@ msgstr "" msgid "Add a new playlist" msgstr "" -#: .././mainwin.py:1436 .././mainwin.py:22947 .././media.py:86 +#: .././mainwin.py:1436 .././mainwin.py:23046 .././media.py:86 msgid "Folder" msgstr "" @@ -1036,12 +1041,12 @@ msgstr "" msgid "Add a new folder" msgstr "" -#: .././mainwin.py:1460 .././config.py:18821 +#: .././mainwin.py:1460 .././config.py:19600 msgid "Check" msgstr "" -#: .././mainwin.py:1471 .././mainwin.py:1715 .././mainwin.py:3927 -#: .././mainwin.py:4208 +#: .././mainwin.py:1471 .././mainwin.py:1715 .././mainwin.py:3950 +#: .././mainwin.py:4231 msgid "Check all videos, channels, playlists and folders" msgstr "" @@ -1051,23 +1056,22 @@ msgstr "" #. then use a Glib timer to restore it (after some small fraction of a #. second) #. Link not clickable -#: .././mainwin.py:1481 .././mainwin.py:20746 .././mainwin.py:20758 -#: .././mainwin.py:20763 .././mainwin.py:20771 .././mainwin.py:21049 -#: .././mainwin.py:21061 .././mainwin.py:21796 .././mainwin.py:23132 -#: .././mainwin.py:23144 .././mainwin.py:23170 .././config.py:18697 -#: .././config.py:18823 +#: .././mainwin.py:1481 .././mainwin.py:20840 .././mainwin.py:20852 +#: .././mainwin.py:20857 .././mainwin.py:20865 .././mainwin.py:21143 +#: .././mainwin.py:21155 .././mainwin.py:21890 .././mainwin.py:23231 +#: .././mainwin.py:23243 .././mainwin.py:23269 .././config.py:19476 +#: .././config.py:19602 msgid "Download" msgstr "" -#: .././mainwin.py:1492 .././mainwin.py:1723 .././mainwin.py:3935 -#: .././mainwin.py:4214 +#: .././mainwin.py:1492 .././mainwin.py:1723 .././mainwin.py:3958 +#: .././mainwin.py:4237 msgid "Download all videos, channels, playlists and folders" msgstr "" -#: .././mainwin.py:1507 .././mainwin.py:28473 .././config.py:9703 -#: .././config.py:9892 .././config.py:9967 .././config.py:10355 -#: .././config.py:10566 .././config.py:10641 .././config.py:12985 -#: .././config.py:13163 .././config.py:13218 +#: .././mainwin.py:1507 .././config.py:9858 .././config.py:10043 +#: .././config.py:10498 .././config.py:10705 .././config.py:13130 +#: .././config.py:13303 msgid "Stop" msgstr "" @@ -1075,7 +1079,7 @@ msgstr "" msgid "Stop the current operation" msgstr "" -#: .././mainwin.py:1531 .././config.py:16723 +#: .././mainwin.py:1531 .././config.py:17403 msgid "Switch" msgstr "" @@ -1083,19 +1087,19 @@ msgstr "" msgid "Switch between simple and complex views" msgstr "" -#: .././mainwin.py:1555 .././mainwin.py:3443 +#: .././mainwin.py:1555 .././mainwin.py:3466 msgid "Hide" msgstr "" -#: .././mainwin.py:1557 .././mainwin.py:3450 +#: .././mainwin.py:1557 .././mainwin.py:3473 msgid "Show" msgstr "" -#: .././mainwin.py:1569 .././mainwin.py:3445 +#: .././mainwin.py:1569 .././mainwin.py:3468 msgid "Hide (most) system folders" msgstr "" -#: .././mainwin.py:1573 .././mainwin.py:3452 +#: .././mainwin.py:1573 .././mainwin.py:3475 msgid "Show all system folders" msgstr "" @@ -1107,8 +1111,8 @@ msgstr "" msgid "Close Tartube" msgstr "" -#: .././mainwin.py:1620 .././config.py:5747 .././config.py:10771 -#: .././config.py:16977 .././config.py:17913 +#: .././mainwin.py:1620 .././config.py:5856 .././config.py:10919 +#: .././config.py:17665 .././config.py:18658 msgid "_Videos" msgstr "" @@ -1120,34 +1124,34 @@ msgstr "" msgid "_Classic Mode" msgstr "" -#: .././mainwin.py:1645 .././config.py:5473 +#: .././mainwin.py:1645 .././config.py:5574 msgid "_Output" msgstr "" -#: .././mainwin.py:1654 .././config.py:13319 .././config.py:14238 +#: .././mainwin.py:1654 .././config.py:13905 .././config.py:14895 msgid "_Errors / Warnings" msgstr "" -#: .././mainwin.py:1713 .././mainwin.py:3925 .././mainwin.py:4205 +#: .././mainwin.py:1713 .././mainwin.py:3948 .././mainwin.py:4228 msgid "Check all" msgstr "" -#: .././mainwin.py:1721 .././mainwin.py:3033 .././mainwin.py:3933 -#: .././mainwin.py:17576 +#: .././mainwin.py:1721 .././mainwin.py:3033 .././mainwin.py:3956 +#: .././mainwin.py:17645 msgid "Download all" msgstr "" -#: .././mainwin.py:1739 .././mainwin.py:3037 .././mainwin.py:3951 -#: .././mainwin.py:17567 +#: .././mainwin.py:1739 .././mainwin.py:3037 .././mainwin.py:3974 +#: .././mainwin.py:17636 msgid "Custom download all" msgstr "" -#: .././mainwin.py:1742 .././mainwin.py:3954 .././mainwin.py:4228 +#: .././mainwin.py:1742 .././mainwin.py:3977 .././mainwin.py:4251 msgid "" "Perform a custom download of all videos, channels, playlists and folders" msgstr "" -#: .././mainwin.py:1759 .././mainwin.py:3971 .././mainwin.py:4235 +#: .././mainwin.py:1759 .././mainwin.py:3994 .././mainwin.py:4258 msgid "Select the custom download to use" msgstr "" @@ -1192,7 +1196,7 @@ msgstr "" msgid "Scroll down" msgstr "" -#: .././mainwin.py:1977 .././mainwin.py:4414 +#: .././mainwin.py:1977 .././mainwin.py:4437 msgid "Show more settings" msgstr "" @@ -1200,14 +1204,14 @@ msgstr "" msgid "Sort" msgstr "" -#: .././mainwin.py:1996 .././config.py:12720 +#: .././mainwin.py:1996 .././config.py:12867 msgid "Upload time" msgstr "" -#: .././mainwin.py:1997 .././mainwin.py:3198 .././mainwin.py:24728 -#: .././mainwin.py:27302 .././config.py:2829 .././config.py:10796 -#: .././config.py:17243 .././config.py:18697 .././config.py:19525 -#: .././config.py:21160 .././config.py:21427 +#: .././mainwin.py:1997 .././mainwin.py:3198 .././mainwin.py:24828 +#: .././mainwin.py:27404 .././config.py:2860 .././config.py:10943 +#: .././config.py:17967 .././config.py:19476 .././config.py:20325 +#: .././config.py:22077 .././config.py:22352 msgid "Name" msgstr "" @@ -1243,7 +1247,7 @@ msgstr "" msgid "Enter search text" msgstr "" -#: .././mainwin.py:2107 .././config.py:17297 +#: .././mainwin.py:2107 .././config.py:18021 msgid "Regex" msgstr "" @@ -1275,7 +1279,7 @@ msgstr "" msgid "TRANSLATOR'S NOTE: Ext is short for a file extension, e.g. .EXE" msgstr "" -#: .././mainwin.py:2252 .././mainwin.py:2859 .././config.py:9157 +#: .././mainwin.py:2252 .././mainwin.py:2859 .././config.py:9315 msgid "Source" msgstr "" @@ -1299,11 +1303,11 @@ msgstr "" msgid "ETA" msgstr "" -#: .././mainwin.py:2340 .././config.py:14103 +#: .././mainwin.py:2340 .././config.py:14761 msgid "New videos" msgstr "" -#: .././mainwin.py:2340 .././config.py:406 .././config.py:12690 +#: .././mainwin.py:2340 .././config.py:438 .././config.py:12837 msgid "Duration" msgstr "" @@ -1311,7 +1315,7 @@ msgstr "" msgid "Date" msgstr "" -#: .././mainwin.py:2341 .././config.py:12560 +#: .././mainwin.py:2341 .././config.py:12715 msgid "File" msgstr "" @@ -1327,11 +1331,11 @@ msgstr "" msgid "D/L speed (KiB/s)" msgstr "" -#: .././mainwin.py:2449 .././mainwin.py:4620 +#: .././mainwin.py:2449 .././mainwin.py:4643 msgid "Alternative limits do not currently apply" msgstr "" -#: .././mainwin.py:2460 .././config.py:4172 +#: .././mainwin.py:2460 .././config.py:4198 msgid "Video resolution" msgstr "" @@ -1359,7 +1363,7 @@ msgstr "" #. enabled, URLs are automatically copied into this textview #. -------------------------------------------------------------------- #. Initial widgets -#: .././mainwin.py:2616 .././mainwin.py:24629 +#: .././mainwin.py:2616 .././mainwin.py:24729 msgid "Enter URLs below" msgstr "" @@ -1387,16 +1391,16 @@ msgid "Format:" msgstr "" #. (Dummy items in the combo) -#: .././mainwin.py:2725 .././mainwin.py:17296 .././config.py:19525 -#: .././config.py:21160 +#: .././mainwin.py:2725 .././mainwin.py:17365 .././config.py:20325 +#: .././config.py:22077 msgid "Default" msgstr "" -#: .././mainwin.py:2725 .././mainwin.py:17297 +#: .././mainwin.py:2725 .././mainwin.py:17366 msgid "Video:" msgstr "" -#: .././mainwin.py:2729 .././mainwin.py:17298 +#: .././mainwin.py:2729 .././mainwin.py:17367 msgid "Audio:" msgstr "" @@ -1425,14 +1429,14 @@ msgid "Play video" msgstr "" #. (Signal connect appears below) -#: .././mainwin.py:2951 .././config.py:4653 .././config.py:16760 -#: .././config.py:18762 +#: .././mainwin.py:2951 .././config.py:4700 .././config.py:17440 +#: .././config.py:19541 msgid "Move up" msgstr "" #. (Signal connect appears below) -#: .././mainwin.py:2972 .././config.py:4657 .././config.py:16768 -#: .././config.py:18771 +#: .././mainwin.py:2972 .././config.py:4704 .././config.py:17448 +#: .././config.py:19550 msgid "Move down" msgstr "" @@ -1448,11 +1452,11 @@ msgstr "" msgid "Process with FFmpeg" msgstr "" -#: .././mainwin.py:3045 .././mainwin.py:17579 +#: .././mainwin.py:3045 .././mainwin.py:17648 msgid "Download the URLs above" msgstr "" -#: .././mainwin.py:3049 .././mainwin.py:17570 +#: .././mainwin.py:3049 .././mainwin.py:17639 msgid "Perform a custom download on the URLs above" msgstr "" @@ -1472,7 +1476,7 @@ msgstr "" msgid "Maximum page size" msgstr "" -#: .././mainwin.py:3198 .././config.py:18697 +#: .././mainwin.py:3198 .././config.py:13622 .././config.py:19476 msgid "Time" msgstr "" @@ -1500,746 +1504,746 @@ msgstr "" msgid "Show dates" msgstr "" -#: .././mainwin.py:3312 .././config.py:9804 .././config.py:10015 -#: .././config.py:10456 .././config.py:10690 .././config.py:13077 -#: .././config.py:13266 .././config.py:15405 +#: .././mainwin.py:3312 .././config.py:9955 .././config.py:10159 +#: .././config.py:10595 .././config.py:10822 .././config.py:13218 +#: .././config.py:13402 .././config.py:16053 msgid "Clear list" msgstr "" -#: .././mainwin.py:3808 +#: .././mainwin.py:3831 msgid "Checking..." msgstr "" -#: .././mainwin.py:3810 +#: .././mainwin.py:3833 msgid "Downloading..." msgstr "" -#: .././mainwin.py:3812 +#: .././mainwin.py:3835 msgid "Refreshing..." msgstr "" -#: .././mainwin.py:3814 +#: .././mainwin.py:3837 msgid "Tidying..." msgstr "" -#: .././mainwin.py:3816 +#: .././mainwin.py:3839 msgid "FFmpeg processing..." msgstr "" -#: .././mainwin.py:4180 +#: .././mainwin.py:4203 msgid "Installing FFmpeg" msgstr "" -#: .././mainwin.py:4182 +#: .././mainwin.py:4205 msgid "Updating downloader" msgstr "" -#: .././mainwin.py:4184 +#: .././mainwin.py:4207 msgid "Fetching formats" msgstr "" -#: .././mainwin.py:4186 +#: .././mainwin.py:4209 msgid "Fetching subtitles" msgstr "" -#: .././mainwin.py:4188 +#: .././mainwin.py:4211 msgid "Testing downloader" msgstr "" -#: .././mainwin.py:4190 +#: .././mainwin.py:4213 msgid "Contacting website" msgstr "" -#: .././mainwin.py:4443 +#: .././mainwin.py:4466 msgid "Show fewer settings" msgstr "" -#: .././mainwin.py:4610 +#: .././mainwin.py:4633 msgid "Alternative limits currently apply" msgstr "" -#: .././mainwin.py:4823 +#: .././mainwin.py:4849 msgid "_Check channel" msgstr "" -#: .././mainwin.py:4825 +#: .././mainwin.py:4851 msgid "_Check playlist" msgstr "" -#: .././mainwin.py:4827 +#: .././mainwin.py:4853 msgid "_Check folder" msgstr "" -#: .././mainwin.py:4848 +#: .././mainwin.py:4874 msgid "_Download channel" msgstr "" -#: .././mainwin.py:4850 +#: .././mainwin.py:4876 msgid "_Download playlist" msgstr "" -#: .././mainwin.py:4852 +#: .././mainwin.py:4878 msgid "_Download folder" msgstr "" -#: .././mainwin.py:4873 +#: .././mainwin.py:4899 msgid "C_ustom download channel" msgstr "" -#: .././mainwin.py:4875 +#: .././mainwin.py:4901 msgid "C_ustom download playlist" msgstr "" -#: .././mainwin.py:4877 +#: .././mainwin.py:4903 msgid "C_ustom download folder" msgstr "" -#: .././mainwin.py:4924 +#: .././mainwin.py:4950 msgid "_Empty folder" msgstr "" -#: .././mainwin.py:4936 +#: .././mainwin.py:4962 msgid "_All contents" msgstr "" -#: .././mainwin.py:4954 +#: .././mainwin.py:4980 msgid "_Remove videos" msgstr "" -#: .././mainwin.py:4966 +#: .././mainwin.py:4992 msgid "_Just folder videos" msgstr "" -#: .././mainwin.py:4972 +#: .././mainwin.py:4998 msgid "Channel co_ntents" msgstr "" -#: .././mainwin.py:4974 +#: .././mainwin.py:5000 msgid "Playlist co_ntents" msgstr "" -#: .././mainwin.py:4976 +#: .././mainwin.py:5002 msgid "Folder co_ntents" msgstr "" -#: .././mainwin.py:4988 +#: .././mainwin.py:5014 msgid "_Move to top level" msgstr "" -#: .././mainwin.py:5006 +#: .././mainwin.py:5032 msgid "_Convert to playlist" msgstr "" -#: .././mainwin.py:5008 +#: .././mainwin.py:5034 msgid "_Convert to channel" msgstr "" -#: .././mainwin.py:5031 +#: .././mainwin.py:5057 msgid "_Hide folder" msgstr "" -#: .././mainwin.py:5041 +#: .././mainwin.py:5067 msgid "_Rename channel..." msgstr "" -#: .././mainwin.py:5043 +#: .././mainwin.py:5069 msgid "_Rename playlist..." msgstr "" -#: .././mainwin.py:5045 +#: .././mainwin.py:5071 msgid "_Rename folder..." msgstr "" -#: .././mainwin.py:5062 +#: .././mainwin.py:5088 msgid "Set _nickname..." msgstr "" -#: .././mainwin.py:5077 +#: .././mainwin.py:5103 msgid "Set _URL..." msgstr "" -#: .././mainwin.py:5089 +#: .././mainwin.py:5115 msgid "Set _download destination..." msgstr "" -#: .././mainwin.py:5107 +#: .././mainwin.py:5133 msgid "_Export channel..." msgstr "" -#: .././mainwin.py:5109 +#: .././mainwin.py:5135 msgid "_Export playlist..." msgstr "" -#: .././mainwin.py:5111 +#: .././mainwin.py:5137 msgid "_Export folder..." msgstr "" -#: .././mainwin.py:5124 +#: .././mainwin.py:5150 msgid "Re_fresh channel" msgstr "" -#: .././mainwin.py:5126 +#: .././mainwin.py:5152 msgid "Re_fresh playlist" msgstr "" -#: .././mainwin.py:5128 +#: .././mainwin.py:5154 msgid "Re_fresh folder" msgstr "" -#: .././mainwin.py:5145 +#: .././mainwin.py:5171 msgid "_Tidy up channel" msgstr "" -#: .././mainwin.py:5147 +#: .././mainwin.py:5173 msgid "_Tidy up playlist" msgstr "" -#: .././mainwin.py:5149 +#: .././mainwin.py:5175 msgid "_Tidy up folder" msgstr "" -#: .././mainwin.py:5166 +#: .././mainwin.py:5192 msgid "Add to _Classic Mode tab" msgstr "" -#: .././mainwin.py:5180 +#: .././mainwin.py:5206 msgid "Channel _actions" msgstr "" -#: .././mainwin.py:5182 +#: .././mainwin.py:5208 msgid "Playlist _actions" msgstr "" -#: .././mainwin.py:5184 +#: .././mainwin.py:5210 msgid "Folder _actions" msgstr "" -#: .././mainwin.py:5204 .././mainwin.py:5943 +#: .././mainwin.py:5230 .././mainwin.py:5969 msgid "_Apply download options..." msgstr "" -#: .././mainwin.py:5222 .././mainwin.py:5957 +#: .././mainwin.py:5248 .././mainwin.py:5983 msgid "_Remove download options" msgstr "" -#: .././mainwin.py:5238 .././mainwin.py:5969 +#: .././mainwin.py:5264 .././mainwin.py:5995 msgid "_Edit download options..." msgstr "" -#: .././mainwin.py:5254 +#: .././mainwin.py:5280 msgid "Add to s_cheduled download..." msgstr "" -#: .././mainwin.py:5264 +#: .././mainwin.py:5290 msgid "_Show system command..." msgstr "" -#: .././mainwin.py:5283 +#: .././mainwin.py:5309 msgid "Set _removal time..." msgstr "" -#: .././mainwin.py:5296 +#: .././mainwin.py:5322 msgid "_Don't add videos to Tartube's database" msgstr "" -#: .././mainwin.py:5308 +#: .././mainwin.py:5334 msgid "_Disable checking/downloading" msgstr "" -#: .././mainwin.py:5320 +#: .././mainwin.py:5346 msgid "_Just disable downloading" msgstr "" -#: .././mainwin.py:5341 .././mainwin.py:6028 +#: .././mainwin.py:5367 .././mainwin.py:6054 msgid "D_ownloads" msgstr "" -#: .././mainwin.py:5352 +#: .././mainwin.py:5378 msgid "Channel _properties..." msgstr "" -#: .././mainwin.py:5354 +#: .././mainwin.py:5380 msgid "Playlist _properties..." msgstr "" -#: .././mainwin.py:5356 +#: .././mainwin.py:5382 msgid "Folder _properties..." msgstr "" -#: .././mainwin.py:5372 +#: .././mainwin.py:5398 msgid "_Default location" msgstr "" -#: .././mainwin.py:5385 +#: .././mainwin.py:5411 msgid "_Actual location" msgstr "" -#: .././mainwin.py:5399 +#: .././mainwin.py:5425 msgid "_Show" msgstr "" -#: .././mainwin.py:5408 +#: .././mainwin.py:5434 msgid "D_elete channel" msgstr "" -#: .././mainwin.py:5410 +#: .././mainwin.py:5436 msgid "D_elete playlist" msgstr "" -#: .././mainwin.py:5412 +#: .././mainwin.py:5438 msgid "D_elete folder" msgstr "" -#: .././mainwin.py:5510 +#: .././mainwin.py:5536 msgid "_Check video" msgstr "" -#: .././mainwin.py:5534 +#: .././mainwin.py:5560 msgid "_Download video" msgstr "" -#: .././mainwin.py:5557 +#: .././mainwin.py:5583 msgid "Re-_download this video" msgstr "" -#: .././mainwin.py:5575 +#: .././mainwin.py:5601 msgid "C_ustom download video" msgstr "" -#: .././mainwin.py:5593 .././mainwin.py:5905 +#: .././mainwin.py:5619 .././mainwin.py:5931 msgid "Download and _watch" msgstr "" -#: .././mainwin.py:5613 .././mainwin.py:7418 +#: .././mainwin.py:5639 .././mainwin.py:7444 msgid "Watch in _player" msgstr "" -#: .././mainwin.py:5628 .././mainwin.py:5639 .././mainwin.py:7430 -#: .././mainwin.py:7448 +#: .././mainwin.py:5654 .././mainwin.py:5665 .././mainwin.py:7456 +#: .././mainwin.py:7474 msgid "Watch on _website" msgstr "" -#: .././mainwin.py:5653 .././mainwin.py:7462 +#: .././mainwin.py:5679 .././mainwin.py:7488 msgid "_YouTube" msgstr "" -#: .././mainwin.py:5663 .././mainwin.py:7472 +#: .././mainwin.py:5689 .././mainwin.py:7498 msgid "_HookTube" msgstr "" -#: .././mainwin.py:5673 .././mainwin.py:7482 +#: .././mainwin.py:5699 .././mainwin.py:7508 msgid "_Invidious" msgstr "" -#: .././mainwin.py:5683 .././mainwin.py:7492 +#: .././mainwin.py:5709 .././mainwin.py:7518 msgid "TRANSLATOR'S NOTE: Watch on YouTube, Watch on HookTube, etc" msgstr "" -#: .././mainwin.py:5688 .././mainwin.py:7497 +#: .././mainwin.py:5714 .././mainwin.py:7523 msgid "W_atch on" msgstr "" -#: .././mainwin.py:5702 +#: .././mainwin.py:5728 msgid "Create video cl_ip..." msgstr "" -#: .././mainwin.py:5708 +#: .././mainwin.py:5734 msgid "Download video cl_ip..." msgstr "" -#: .././mainwin.py:5724 +#: .././mainwin.py:5750 msgid "_Remove video slices..." msgstr "" -#: .././mainwin.py:5739 .././mainwin.py:7518 +#: .././mainwin.py:5765 .././mainwin.py:7544 msgid "_Process with FFmpeg..." msgstr "" -#: .././mainwin.py:5753 +#: .././mainwin.py:5779 msgid "_Special" msgstr "" -#: .././mainwin.py:5763 .././mainwin.py:7532 +#: .././mainwin.py:5789 .././mainwin.py:7558 msgid "Add to C_lassic Mode tab" msgstr "" -#: .././mainwin.py:5784 +#: .././mainwin.py:5810 msgid "Auto _notify" msgstr "" -#: .././mainwin.py:5800 +#: .././mainwin.py:5826 msgid "Auto _sound alarm" msgstr "" -#: .././mainwin.py:5815 +#: .././mainwin.py:5841 msgid "Auto _open" msgstr "" -#: .././mainwin.py:5828 +#: .././mainwin.py:5854 msgid "_Download on start" msgstr "" -#: .././mainwin.py:5843 +#: .././mainwin.py:5869 msgid "Download on _stop" msgstr "" -#: .././mainwin.py:5861 +#: .././mainwin.py:5887 msgid "Not a _livestream" msgstr "" -#: .././mainwin.py:5871 +#: .././mainwin.py:5897 msgid "_Livestream" msgstr "" -#: .././mainwin.py:5884 .././mainwin.py:7551 +#: .././mainwin.py:5910 .././mainwin.py:7577 msgid "_Mark for download" msgstr "" -#: .././mainwin.py:5895 .././mainwin.py:7563 +#: .././mainwin.py:5921 .././mainwin.py:7589 msgid "_Download" msgstr "" -#: .././mainwin.py:5915 .././mainwin.py:7584 .././config.py:17424 +#: .././mainwin.py:5941 .././mainwin.py:7610 .././config.py:18152 msgid "_Temporary" msgstr "" -#: .././mainwin.py:5985 +#: .././mainwin.py:6011 msgid "Show system _command" msgstr "" -#: .././mainwin.py:5995 +#: .././mainwin.py:6021 msgid "_Test system command" msgstr "" -#: .././mainwin.py:6010 +#: .././mainwin.py:6036 msgid "_Disable downloads" msgstr "" -#: .././mainwin.py:6043 +#: .././mainwin.py:6069 msgid "Video is _archived" msgstr "" -#: .././mainwin.py:6056 +#: .././mainwin.py:6082 msgid "Video is _bookmarked" msgstr "" -#: .././mainwin.py:6067 +#: .././mainwin.py:6093 msgid "Video is _favourite" msgstr "" -#: .././mainwin.py:6078 +#: .././mainwin.py:6104 msgid "Video is _missing" msgstr "" -#: .././mainwin.py:6094 +#: .././mainwin.py:6120 msgid "Video is _new" msgstr "" -#: .././mainwin.py:6107 +#: .././mainwin.py:6133 msgid "Video is in _waiting list" msgstr "" -#: .././mainwin.py:6118 +#: .././mainwin.py:6144 msgid "_Mark video" msgstr "" -#: .././mainwin.py:6129 +#: .././mainwin.py:6155 msgid "_Location" msgstr "" -#: .././mainwin.py:6141 +#: .././mainwin.py:6167 msgid "_Properties..." msgstr "" -#: .././mainwin.py:6153 +#: .././mainwin.py:6179 msgid "_Show video" msgstr "" -#: .././mainwin.py:6162 +#: .././mainwin.py:6188 msgid "Available _formats" msgstr "" -#: .././mainwin.py:6172 +#: .././mainwin.py:6198 msgid "Available _subtitles" msgstr "" -#: .././mainwin.py:6182 +#: .././mainwin.py:6208 msgid "_Fetch" msgstr "" #. Delete video -#: .././mainwin.py:6193 +#: .././mainwin.py:6219 msgid "D_elete video" msgstr "" #. Check/download videos -#: .././mainwin.py:6300 +#: .././mainwin.py:6326 msgid "_Check videos" msgstr "" -#: .././mainwin.py:6320 +#: .././mainwin.py:6346 msgid "_Download videos" msgstr "" -#: .././mainwin.py:6343 +#: .././mainwin.py:6369 msgid "C_ustom download videos" msgstr "" -#: .././mainwin.py:6375 +#: .././mainwin.py:6401 msgid "_Archived" msgstr "" -#: .././mainwin.py:6386 +#: .././mainwin.py:6412 msgid "Not a_rchived" msgstr "" -#: .././mainwin.py:6400 +#: .././mainwin.py:6426 msgid "_Bookmarked" msgstr "" -#: .././mainwin.py:6411 +#: .././mainwin.py:6437 msgid "Not b_ookmarked" msgstr "" -#: .././mainwin.py:6425 +#: .././mainwin.py:6451 msgid "_Favourite" msgstr "" -#: .././mainwin.py:6436 +#: .././mainwin.py:6462 msgid "Not fa_vourite" msgstr "" -#: .././mainwin.py:6450 +#: .././mainwin.py:6476 msgid "_Missing" msgstr "" -#: .././mainwin.py:6463 +#: .././mainwin.py:6489 msgid "Not m_issing" msgstr "" -#: .././mainwin.py:6479 +#: .././mainwin.py:6505 msgid "_New" msgstr "" -#: .././mainwin.py:6490 +#: .././mainwin.py:6516 msgid "Not n_ew" msgstr "" -#: .././mainwin.py:6504 +#: .././mainwin.py:6530 msgid "In _waiting list" msgstr "" -#: .././mainwin.py:6515 +#: .././mainwin.py:6541 msgid "Not in w_aiting list" msgstr "" -#: .././mainwin.py:6526 +#: .././mainwin.py:6552 msgid "_Mark videos" msgstr "" -#: .././mainwin.py:6535 +#: .././mainwin.py:6561 msgid "Show p_roperties..." msgstr "" #. Delete videos -#: .././mainwin.py:6550 +#: .././mainwin.py:6576 msgid "D_elete videos" msgstr "" #. Stop check/download -#: .././mainwin.py:6615 +#: .././mainwin.py:6641 msgid "_Stop now" msgstr "" -#: .././mainwin.py:6629 +#: .././mainwin.py:6655 msgid "Stop after this _video" msgstr "" -#: .././mainwin.py:6644 +#: .././mainwin.py:6670 msgid "Stop after these v_ideos" msgstr "" -#: .././mainwin.py:6659 +#: .././mainwin.py:6685 msgid "Download _next" msgstr "" -#: .././mainwin.py:6671 +#: .././mainwin.py:6697 msgid "Download _last" msgstr "" -#: .././mainwin.py:6694 +#: .././mainwin.py:6720 msgid "Watch on _YouTube" msgstr "" -#: .././mainwin.py:6704 +#: .././mainwin.py:6730 msgid "Watch on _HookTube" msgstr "" -#: .././mainwin.py:6714 +#: .././mainwin.py:6740 msgid "Watch on _Invidious" msgstr "" -#: .././mainwin.py:6726 +#: .././mainwin.py:6752 msgid "Watch on _Website" msgstr "" -#: .././mainwin.py:6826 +#: .././mainwin.py:6852 msgid "_Delete video(s)" msgstr "" -#: .././mainwin.py:6896 +#: .././mainwin.py:6922 msgid "Choose a custom download:" msgstr "" -#: .././mainwin.py:6972 +#: .././mainwin.py:6998 msgid "_Enable automatic copy/paste" msgstr "" -#: .././mainwin.py:6984 +#: .././mainwin.py:7010 msgid "_Remember URLs" msgstr "" -#: .././mainwin.py:6999 +#: .././mainwin.py:7025 msgid "_Set download options" msgstr "" -#: .././mainwin.py:7010 +#: .././mainwin.py:7036 msgid "Use _default download options" msgstr "" -#: .././mainwin.py:7022 +#: .././mainwin.py:7048 msgid "_Edit download options" msgstr "" -#: .././mainwin.py:7036 +#: .././mainwin.py:7062 msgid "Enable _custom downloads" msgstr "" -#: .././mainwin.py:7049 +#: .././mainwin.py:7075 msgid "Custom downloads _preferences..." msgstr "" -#: .././mainwin.py:7064 .././config.py:17106 +#: .././mainwin.py:7090 .././config.py:17798 msgid "_Update" msgstr "" -#: .././mainwin.py:7117 +#: .././mainwin.py:7143 msgid "Copy file _path" msgstr "" #. Copy URL -#: .././mainwin.py:7129 +#: .././mainwin.py:7155 msgid "Copy _URL" msgstr "" -#: .././mainwin.py:7141 +#: .././mainwin.py:7167 msgid "Copy system _command" msgstr "" -#: .././mainwin.py:7157 +#: .././mainwin.py:7183 msgid "_Open destination(s)" msgstr "" -#: .././mainwin.py:7198 +#: .././mainwin.py:7224 msgid "Mark as _archived" msgstr "" -#: .././mainwin.py:7209 +#: .././mainwin.py:7235 msgid "Mark as not a_rchived" msgstr "" -#: .././mainwin.py:7223 +#: .././mainwin.py:7249 msgid "Mark as _bookmarked" msgstr "" -#: .././mainwin.py:7235 +#: .././mainwin.py:7261 msgid "Mark as not b_ookmarked" msgstr "" -#: .././mainwin.py:7248 +#: .././mainwin.py:7274 msgid "Mark as _favourite" msgstr "" -#: .././mainwin.py:7261 +#: .././mainwin.py:7287 msgid "Mark as not fa_vourite" msgstr "" -#: .././mainwin.py:7275 +#: .././mainwin.py:7301 msgid "Mark as _missing" msgstr "" -#: .././mainwin.py:7288 +#: .././mainwin.py:7314 msgid "Mark as not m_issing" msgstr "" -#: .././mainwin.py:7305 +#: .././mainwin.py:7331 msgid "Mark as _new" msgstr "" -#: .././mainwin.py:7317 +#: .././mainwin.py:7343 msgid "Mark as not n_ew" msgstr "" -#: .././mainwin.py:7331 +#: .././mainwin.py:7357 msgid "Mark as in _waiting list" msgstr "" -#: .././mainwin.py:7343 +#: .././mainwin.py:7369 msgid "Mark as not in wai_ting list" msgstr "" -#: .././mainwin.py:7398 +#: .././mainwin.py:7424 msgid "D_ownload and watch" msgstr "" -#: .././mainwin.py:7507 +#: .././mainwin.py:7533 msgid "Mark as _not livestreams" msgstr "" -#: .././mainwin.py:7573 +#: .././mainwin.py:7599 msgid "_Download and watch" msgstr "" -#: .././mainwin.py:8397 +#: .././mainwin.py:8423 msgid "" "TRANSLATOR'S NOTE: V = number of videos B = (number of videos) bookmarked D " "= downloaded F = favourite L = live/livestream M = missing N = new W = in " "waiting list E = (number of) errors W = warnings" msgstr "" -#: .././mainwin.py:8404 +#: .././mainwin.py:8430 msgid "V:" msgstr "" -#: .././mainwin.py:8405 +#: .././mainwin.py:8431 msgid "B:" msgstr "" -#: .././mainwin.py:8406 +#: .././mainwin.py:8432 msgid "D:" msgstr "" -#: .././mainwin.py:8407 +#: .././mainwin.py:8433 msgid "F:" msgstr "" -#: .././mainwin.py:8408 +#: .././mainwin.py:8434 msgid "L:" msgstr "" -#: .././mainwin.py:8409 +#: .././mainwin.py:8435 msgid "M:" msgstr "" -#: .././mainwin.py:8410 +#: .././mainwin.py:8436 msgid "N:" msgstr "" -#: .././mainwin.py:8411 .././mainwin.py:8422 +#: .././mainwin.py:8437 .././mainwin.py:8448 msgid "W:" msgstr "" -#: .././mainwin.py:8421 +#: .././mainwin.py:8447 msgid "E:" msgstr "" @@ -2247,183 +2251,183 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:10425 .././mainwin.py:11262 .././mainwin.py:21155 -#: .././mainwin.py:21159 .././mainwin.py:21739 .././mainwin.py:23298 -#: .././mainwin.py:23302 .././mainwin.py:23544 +#: .././mainwin.py:10449 .././mainwin.py:11286 .././mainwin.py:21249 +#: .././mainwin.py:21253 .././mainwin.py:21833 .././mainwin.py:23397 +#: .././mainwin.py:23401 .././mainwin.py:23643 msgid "Waiting" msgstr "" -#: .././mainwin.py:11915 +#: .././mainwin.py:11939 msgid "" "TRANSLATOR'S NOTE: Thread means a computer processor thread. If you're not " "sure how to translate it, just use 'Page #', as in Page #1, Page #2, etc" msgstr "" -#: .././mainwin.py:11922 +#: .././mainwin.py:11946 msgid "Thread" msgstr "" -#: .././mainwin.py:11925 +#: .././mainwin.py:11949 msgid "_Summary" msgstr "" -#: .././mainwin.py:12524 +#: .././mainwin.py:12548 msgid "Tartube error" msgstr "" -#: .././mainwin.py:12583 +#: .././mainwin.py:12607 msgid "Tartube warning" msgstr "" -#: .././mainwin.py:12616 +#: .././mainwin.py:12640 msgid "_Errors" msgstr "" -#: .././mainwin.py:12620 +#: .././mainwin.py:12644 msgid "Warnings" msgstr "" -#: .././mainwin.py:12692 +#: .././mainwin.py:12716 msgid "" "There are not scheduled downloads that don't already contain the channel/" "playlist/folder" msgstr "" -#: .././mainwin.py:14079 +#: .././mainwin.py:14103 msgid "The external folder is not available" msgstr "" -#: .././mainwin.py:14081 +#: .././mainwin.py:14105 msgid "The external directory is not available" msgstr "" -#: .././mainwin.py:14179 +#: .././mainwin.py:14203 msgid "The URL is not valid" msgstr "" -#: .././mainwin.py:15458 .././config.py:11194 .././config.py:13522 +#: .././mainwin.py:15479 .././config.py:11343 .././config.py:14108 msgid "Invalid timestamp(s)" msgstr "" -#: .././mainwin.py:15640 .././mainwin.py:15649 .././config.py:11045 -#: .././config.py:11053 .././config.py:13418 .././config.py:13426 +#: .././mainwin.py:15663 .././mainwin.py:15672 .././config.py:11194 +#: .././config.py:11202 .././config.py:14004 .././config.py:14012 msgid "Invalid start/stop times" msgstr "" -#: .././mainwin.py:18580 +#: .././mainwin.py:18649 msgid "The following items are duplicates:" msgstr "" -#: .././mainwin.py:18744 +#: .././mainwin.py:18813 #, python-brace-format msgid "The channel contains {0} items, so this action may take a while" msgstr "" -#: .././mainwin.py:18751 +#: .././mainwin.py:18820 #, python-brace-format msgid "The playlist contains {0} items, so this action may take a while" msgstr "" -#: .././mainwin.py:18758 +#: .././mainwin.py:18827 #, python-brace-format msgid "The folder contains {0} items, so this action may take a while" msgstr "" -#: .././mainwin.py:19472 .././mainwin.py:20507 +#: .././mainwin.py:19554 .././mainwin.py:20601 msgid "Originally from:" msgstr "" -#: .././mainwin.py:19485 .././mainwin.py:20521 +#: .././mainwin.py:19567 .././mainwin.py:20615 msgid "From channel" msgstr "" -#: .././mainwin.py:19487 .././mainwin.py:20523 +#: .././mainwin.py:19569 .././mainwin.py:20617 msgid "From playlist" msgstr "" -#: .././mainwin.py:19489 .././mainwin.py:20525 +#: .././mainwin.py:19571 .././mainwin.py:20619 msgid "From folder" msgstr "" -#: .././mainwin.py:19520 +#: .././mainwin.py:19602 msgid "Livestream has not started yet" msgstr "" -#: .././mainwin.py:19527 +#: .././mainwin.py:19609 msgid "Debut has started" msgstr "" -#: .././mainwin.py:19529 +#: .././mainwin.py:19611 msgid "Debut has not started yet" msgstr "" -#: .././mainwin.py:19536 .././mainwin.py:19542 .././mainwin.py:20575 -#: .././mainwin.py:20582 +#: .././mainwin.py:19618 .././mainwin.py:19624 .././mainwin.py:20669 +#: .././mainwin.py:20676 msgid "Duration:" msgstr "" -#: .././mainwin.py:19542 .././mainwin.py:19548 .././mainwin.py:19559 -#: .././mainwin.py:20582 .././mainwin.py:20589 .././mainwin.py:20605 -#: .././mainwin.py:22999 .././mainwin.py:23005 .././mainwin.py:23016 -#: .././media.py:555 .././media.py:565 .././media.py:1956 .././media.py:1962 -#: .././media.py:1972 +#: .././mainwin.py:19624 .././mainwin.py:19630 .././mainwin.py:19641 +#: .././mainwin.py:20676 .././mainwin.py:20683 .././mainwin.py:20699 +#: .././mainwin.py:23098 .././mainwin.py:23104 .././mainwin.py:23115 +#: .././media.py:555 .././media.py:565 .././media.py:1978 .././media.py:1984 +#: .././media.py:1994 msgid "unknown" msgstr "" -#: .././mainwin.py:19546 .././mainwin.py:19548 .././mainwin.py:20586 -#: .././mainwin.py:20588 +#: .././mainwin.py:19628 .././mainwin.py:19630 .././mainwin.py:20680 +#: .././mainwin.py:20682 msgid "Size:" msgstr "" -#: .././mainwin.py:19557 .././mainwin.py:19559 .././mainwin.py:20600 +#: .././mainwin.py:19639 .././mainwin.py:19641 .././mainwin.py:20694 msgid "Date:" msgstr "" -#: .././mainwin.py:19899 +#: .././mainwin.py:19985 msgid "Watch:" msgstr "" -#: .././mainwin.py:19968 +#: .././mainwin.py:20054 msgid "Temporary:" msgstr "" -#: .././mainwin.py:20011 +#: .././mainwin.py:20097 msgid "Marked:" msgstr "" -#: .././mainwin.py:20479 .././mainwin.py:20542 +#: .././mainwin.py:20573 .././mainwin.py:20636 msgid "Show the full description" msgstr "" -#: .././mainwin.py:20480 .././mainwin.py:20543 +#: .././mainwin.py:20574 .././mainwin.py:20637 msgid "More" msgstr "" -#: .././mainwin.py:20492 .././mainwin.py:20551 +#: .././mainwin.py:20586 .././mainwin.py:20645 msgid "Show the short description" msgstr "" -#: .././mainwin.py:20493 .././mainwin.py:20552 +#: .././mainwin.py:20587 .././mainwin.py:20646 msgid "Less" msgstr "" -#: .././mainwin.py:20595 +#: .././mainwin.py:20689 msgid "Received:" msgstr "" -#: .././mainwin.py:20624 +#: .././mainwin.py:20718 msgid "Live now:" msgstr "" -#: .././mainwin.py:20626 .././mainwin.py:23152 +#: .././mainwin.py:20720 .././mainwin.py:23251 msgid "Live soon:" msgstr "" -#: .././mainwin.py:20635 +#: .././mainwin.py:20729 msgid "Debut now:" msgstr "" -#: .././mainwin.py:20637 .././mainwin.py:23154 +#: .././mainwin.py:20731 .././mainwin.py:23253 msgid "Debut soon:" msgstr "" @@ -2431,14 +2435,14 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20644 .././mainwin.py:20646 .././mainwin.py:20650 -#: .././mainwin.py:20935 .././mainwin.py:20937 .././mainwin.py:20941 -#: .././mainwin.py:21443 .././mainwin.py:23030 .././mainwin.py:23032 -#: .././mainwin.py:23036 +#: .././mainwin.py:20738 .././mainwin.py:20740 .././mainwin.py:20744 +#: .././mainwin.py:21029 .././mainwin.py:21031 .././mainwin.py:21035 +#: .././mainwin.py:21537 .././mainwin.py:23129 .././mainwin.py:23131 +#: .././mainwin.py:23135 msgid "Notify" msgstr "" -#: .././mainwin.py:20654 .././mainwin.py:20945 .././mainwin.py:23040 +#: .././mainwin.py:20748 .././mainwin.py:21039 .././mainwin.py:23139 msgid "When the livestream starts, notify the user" msgstr "" @@ -2446,13 +2450,13 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20665 .././mainwin.py:20667 .././mainwin.py:20951 -#: .././mainwin.py:20953 .././mainwin.py:20956 .././mainwin.py:21325 -#: .././mainwin.py:23051 .././mainwin.py:23053 +#: .././mainwin.py:20759 .././mainwin.py:20761 .././mainwin.py:21045 +#: .././mainwin.py:21047 .././mainwin.py:21050 .././mainwin.py:21419 +#: .././mainwin.py:23150 .././mainwin.py:23152 msgid "Alarm" msgstr "" -#: .././mainwin.py:20671 .././mainwin.py:20960 .././mainwin.py:23057 +#: .././mainwin.py:20765 .././mainwin.py:21054 .././mainwin.py:23156 msgid "When the livestream starts, sound an alarm" msgstr "" @@ -2460,13 +2464,13 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20676 .././mainwin.py:20678 .././mainwin.py:20966 -#: .././mainwin.py:20968 .././mainwin.py:20971 .././mainwin.py:21483 -#: .././mainwin.py:23062 .././mainwin.py:23064 +#: .././mainwin.py:20770 .././mainwin.py:20772 .././mainwin.py:21060 +#: .././mainwin.py:21062 .././mainwin.py:21065 .././mainwin.py:21577 +#: .././mainwin.py:23161 .././mainwin.py:23163 msgid "Open" msgstr "" -#: .././mainwin.py:20682 .././mainwin.py:20975 .././mainwin.py:23068 +#: .././mainwin.py:20776 .././mainwin.py:21069 .././mainwin.py:23167 msgid "When the livestream starts, open it" msgstr "" @@ -2476,14 +2480,14 @@ msgstr "" #. then use a Glib timer to restore it (after some small fraction of a #. second) #. (Livestream already broadcasting) -#: .././mainwin.py:20690 .././mainwin.py:20695 .././mainwin.py:20697 -#: .././mainwin.py:20981 .././mainwin.py:20983 .././mainwin.py:20986 -#: .././mainwin.py:21364 .././mainwin.py:23076 .././mainwin.py:23081 -#: .././mainwin.py:23083 +#: .././mainwin.py:20784 .././mainwin.py:20789 .././mainwin.py:20791 +#: .././mainwin.py:21075 .././mainwin.py:21077 .././mainwin.py:21080 +#: .././mainwin.py:21458 .././mainwin.py:23175 .././mainwin.py:23180 +#: .././mainwin.py:23182 msgid "D/L on start" msgstr "" -#: .././mainwin.py:20701 .././mainwin.py:20990 .././mainwin.py:23087 +#: .././mainwin.py:20795 .././mainwin.py:21084 .././mainwin.py:23186 msgid "When the livestream starts, download it" msgstr "" @@ -2491,18 +2495,18 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20707 .././mainwin.py:20712 .././mainwin.py:20714 -#: .././mainwin.py:20996 .././mainwin.py:20998 .././mainwin.py:21001 -#: .././mainwin.py:21404 .././mainwin.py:23093 .././mainwin.py:23098 -#: .././mainwin.py:23100 +#: .././mainwin.py:20801 .././mainwin.py:20806 .././mainwin.py:20808 +#: .././mainwin.py:21090 .././mainwin.py:21092 .././mainwin.py:21095 +#: .././mainwin.py:21498 .././mainwin.py:23192 .././mainwin.py:23197 +#: .././mainwin.py:23199 msgid "D/L on stop" msgstr "" -#: .././mainwin.py:20718 .././mainwin.py:21005 .././mainwin.py:23104 +#: .././mainwin.py:20812 .././mainwin.py:21099 .././mainwin.py:23203 msgid "When the livestream stops, download it" msgstr "" -#: .././mainwin.py:20737 .././mainwin.py:23123 +#: .././mainwin.py:20831 .././mainwin.py:23222 msgid "Watch in your media player" msgstr "" @@ -2510,41 +2514,41 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20738 .././mainwin.py:22132 .././mainwin.py:23124 +#: .././mainwin.py:20832 .././mainwin.py:22226 .././mainwin.py:23223 msgid "Player" msgstr "" -#: .././mainwin.py:20770 .././mainwin.py:23169 +#: .././mainwin.py:20864 .././mainwin.py:23268 msgid "Download this video" msgstr "" -#: .././mainwin.py:20785 .././mainwin.py:23184 +#: .././mainwin.py:20879 .././mainwin.py:23283 msgid "" "TRANSLATOR'S NOTE: If you want to use &, use & - if you want to use a " "different word (e.g. French et), then just use that word" msgstr "" -#: .././mainwin.py:20793 .././mainwin.py:23192 +#: .././mainwin.py:20887 .././mainwin.py:23291 msgid "Download and watch in your media player" msgstr "" -#: .././mainwin.py:20794 +#: .././mainwin.py:20888 msgid "Download & watch" msgstr "" -#: .././mainwin.py:20801 +#: .././mainwin.py:20895 msgid "Not downloaded" msgstr "" -#: .././mainwin.py:20827 +#: .././mainwin.py:20921 msgid "Watch on YouTube" msgstr "" -#: .././mainwin.py:20828 .././mainwin.py:22177 +#: .././mainwin.py:20922 .././mainwin.py:22271 msgid "YouTube" msgstr "" -#: .././mainwin.py:20840 +#: .././mainwin.py:20934 msgid "Watch on HookTube" msgstr "" @@ -2552,11 +2556,11 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20841 .././mainwin.py:21939 +#: .././mainwin.py:20935 .././mainwin.py:22033 msgid "HookTube" msgstr "" -#: .././mainwin.py:20853 +#: .././mainwin.py:20947 msgid "Watch on Invidious" msgstr "" @@ -2564,7 +2568,7 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20854 .././mainwin.py:21983 +#: .././mainwin.py:20948 .././mainwin.py:22077 msgid "Invidious" msgstr "" @@ -2572,25 +2576,25 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:20873 .././mainwin.py:22028 .././config.py:14600 -#: .././config.py:17517 +#: .././mainwin.py:20967 .././mainwin.py:22122 .././config.py:15252 +#: .././config.py:18249 msgid "Other" msgstr "" -#: .././mainwin.py:20893 +#: .././mainwin.py:20987 msgid "Watch on website" msgstr "" -#: .././mainwin.py:20894 .././mainwin.py:22179 +#: .././mainwin.py:20988 .././mainwin.py:22273 msgid "Website" msgstr "" #. Links not clickable -#: .././mainwin.py:20905 +#: .././mainwin.py:20999 msgid "No link" msgstr "" -#: .././mainwin.py:21042 +#: .././mainwin.py:21136 msgid "Download to a temporary folder later" msgstr "" @@ -2598,19 +2602,19 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21043 .././mainwin.py:21060 .././mainwin.py:21895 +#: .././mainwin.py:21137 .././mainwin.py:21154 .././mainwin.py:21989 msgid "Mark for download" msgstr "" -#: .././mainwin.py:21048 +#: .././mainwin.py:21142 msgid "Download to a temporary folder" msgstr "" -#: .././mainwin.py:21054 +#: .././mainwin.py:21148 msgid "Download to a temporary folder, then watch" msgstr "" -#: .././mainwin.py:21055 .././mainwin.py:23193 +#: .././mainwin.py:21149 .././mainwin.py:23292 msgid "D/L & watch" msgstr "" @@ -2618,12 +2622,12 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21062 .././mainwin.py:21851 +#: .././mainwin.py:21156 .././mainwin.py:21945 msgid "D/L and watch" msgstr "" #. Archived/not archived -#: .././mainwin.py:21086 .././mainwin.py:23231 +#: .././mainwin.py:21180 .././mainwin.py:23330 msgid "Prevent automatic deletion of the video" msgstr "" @@ -2631,13 +2635,13 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21090 .././mainwin.py:21094 .././mainwin.py:21521 -#: .././mainwin.py:23235 .././mainwin.py:23239 .././mainwin.py:23454 +#: .././mainwin.py:21184 .././mainwin.py:21188 .././mainwin.py:21615 +#: .././mainwin.py:23334 .././mainwin.py:23338 .././mainwin.py:23553 msgid "Archived" msgstr "" #. Bookmarked/not bookmarked -#: .././mainwin.py:21099 .././mainwin.py:23244 +#: .././mainwin.py:21193 .././mainwin.py:23343 msgid "Show video in Bookmarks folder" msgstr "" @@ -2647,13 +2651,13 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21104 .././mainwin.py:21109 .././mainwin.py:23248 -#: .././mainwin.py:23252 .././mainwin.py:23499 +#: .././mainwin.py:21198 .././mainwin.py:21203 .././mainwin.py:23347 +#: .././mainwin.py:23351 .././mainwin.py:23598 msgid "B/mark" msgstr "" #. Favourite/not favourite -#: .././mainwin.py:21114 .././mainwin.py:23257 +#: .././mainwin.py:21208 .././mainwin.py:23356 msgid "Show in Favourite Videos folder" msgstr "" @@ -2661,13 +2665,13 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21118 .././mainwin.py:21122 .././mainwin.py:21611 -#: .././mainwin.py:23261 .././mainwin.py:23265 +#: .././mainwin.py:21212 .././mainwin.py:21216 .././mainwin.py:21705 +#: .././mainwin.py:23360 .././mainwin.py:23364 .././config.py:13623 msgid "Favourite" msgstr "" #. Missing/not missing -#: .././mainwin.py:21126 .././mainwin.py:23269 +#: .././mainwin.py:21220 .././mainwin.py:23368 msgid "Mark video as removed by creator" msgstr "" @@ -2675,13 +2679,13 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21130 .././mainwin.py:21134 .././mainwin.py:21656 -#: .././mainwin.py:23273 .././mainwin.py:23277 +#: .././mainwin.py:21224 .././mainwin.py:21228 .././mainwin.py:21750 +#: .././mainwin.py:23372 .././mainwin.py:23376 msgid "Missing" msgstr "" #. New/not new -#: .././mainwin.py:21139 .././mainwin.py:23282 +#: .././mainwin.py:21233 .././mainwin.py:23381 msgid "Mark video as never watched" msgstr "" @@ -2689,13 +2693,13 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21143 .././mainwin.py:21147 .././mainwin.py:21694 -#: .././mainwin.py:23286 .././mainwin.py:23290 +#: .././mainwin.py:21237 .././mainwin.py:21241 .././mainwin.py:21788 +#: .././mainwin.py:23385 .././mainwin.py:23389 msgid "New" msgstr "" #. In waiting list/not in waiting list -#: .././mainwin.py:21152 .././mainwin.py:23295 +#: .././mainwin.py:21246 .././mainwin.py:23394 msgid "Show in Waiting Videos folder" msgstr "" @@ -2703,2555 +2707,2566 @@ msgstr "" #. this function returns. Workaround is to make the label unclickable, #. then use a Glib timer to restore it (after some small fraction of a #. second) -#: .././mainwin.py:21566 +#: .././mainwin.py:21660 msgid "Bookmarked" msgstr "" -#: .././mainwin.py:22970 +#: .././mainwin.py:23069 msgid "Click to open" msgstr "" -#: .././mainwin.py:23164 +#: .././mainwin.py:23263 msgid "TRANSLATOR'S NOTE: D/L means download" msgstr "" -#: .././mainwin.py:23200 +#: .././mainwin.py:23299 msgid "Can't D/L" msgstr "" -#: .././mainwin.py:23224 +#: .././mainwin.py:23323 msgid "" "TRANSLATOR'S NOTE: This section contains shortened labels: Archive = " "Archived, B/Mark = Bookmarked, Waiting: In waiting list" msgstr "" -#: .././mainwin.py:24605 +#: .././mainwin.py:24705 msgid "Add many channels/playlists" msgstr "" -#: .././mainwin.py:24635 .././mainwin.py:25309 .././mainwin.py:25838 -#: .././mainwin.py:26197 +#: .././mainwin.py:24735 .././mainwin.py:25411 .././mainwin.py:25940 +#: .././mainwin.py:26299 msgid "Enable automatic copy/paste" msgstr "" #. Buttons to add URLs as channels/playlists -#: .././mainwin.py:24685 +#: .././mainwin.py:24785 msgid "Add channels" msgstr "" -#: .././mainwin.py:24689 +#: .././mainwin.py:24789 msgid "Add playlists" msgstr "" -#: .././mainwin.py:24702 +#: .././mainwin.py:24802 msgid "Double-click the names/URls to customise them" msgstr "" -#: .././mainwin.py:24728 .././config.py:2991 .././config.py:5506 -#: .././config.py:5634 +#: .././mainwin.py:24828 .././config.py:3022 .././config.py:5606 +#: .././config.py:5738 msgid "Type" msgstr "" -#: .././mainwin.py:24728 .././config.py:17243 +#: .././mainwin.py:24828 .././config.py:17967 msgid "URL" msgstr "" #. Add more buttons -#: .././mainwin.py:24759 +#: .././mainwin.py:24859 msgid "Convert selected lines" msgstr "" -#: .././mainwin.py:24763 +#: .././mainwin.py:24863 msgid "Delete selected lines" msgstr "" -#: .././mainwin.py:24802 +#: .././mainwin.py:24902 msgid "Add to this folder:" msgstr "" -#: .././mainwin.py:25160 +#: .././mainwin.py:25262 msgid "Add channel" msgstr "" -#: .././mainwin.py:25179 +#: .././mainwin.py:25281 msgid "Enter the channel name" msgstr "" -#: .././mainwin.py:25184 +#: .././mainwin.py:25286 msgid "(Use the channel's real name or a customised name)" msgstr "" -#: .././mainwin.py:25192 +#: .././mainwin.py:25294 msgid "Copy and paste a link to the channel" msgstr "" -#: .././mainwin.py:25216 +#: .././mainwin.py:25318 msgid "" "Before adding the URL for a YouTube channel, first click the Videos tab in " "your browser!" msgstr "" -#: .././mainwin.py:25265 +#: .././mainwin.py:25367 msgid "(Optional) Add this channel inside a folder" msgstr "" -#: .././mainwin.py:25295 +#: .././mainwin.py:25397 msgid "I want to download videos from this channel automatically" msgstr "" -#: .././mainwin.py:25302 .././mainwin.py:25622 .././mainwin.py:25831 +#: .././mainwin.py:25404 .././mainwin.py:25724 .././mainwin.py:25933 msgid "Don't download anything, just check for new videos" msgstr "" -#: .././mainwin.py:25523 +#: .././mainwin.py:25625 msgid "Add folder" msgstr "" -#: .././mainwin.py:25542 +#: .././mainwin.py:25644 msgid "Enter the folder name" msgstr "" -#: .././mainwin.py:25585 +#: .././mainwin.py:25687 msgid "(Optional) Add this folder inside another folder" msgstr "" -#: .././mainwin.py:25616 +#: .././mainwin.py:25718 msgid "I want to download videos from this folder automatically" msgstr "" -#: .././mainwin.py:25715 +#: .././mainwin.py:25817 msgid "Add playlist" msgstr "" -#: .././mainwin.py:25734 +#: .././mainwin.py:25836 msgid "Enter the playlist name" msgstr "" -#: .././mainwin.py:25739 +#: .././mainwin.py:25841 msgid "(Use the playlist's real name or a customised name)" msgstr "" -#: .././mainwin.py:25747 +#: .././mainwin.py:25849 msgid "Copy and paste a link to the playlist" msgstr "" -#: .././mainwin.py:25794 +#: .././mainwin.py:25896 msgid "(Optional) Add this playlist inside a folder" msgstr "" -#: .././mainwin.py:25824 +#: .././mainwin.py:25926 msgid "I want to download videos from this playlist automatically" msgstr "" -#: .././mainwin.py:26021 +#: .././mainwin.py:26123 msgid "Add videos" msgstr "" -#: .././mainwin.py:26040 +#: .././mainwin.py:26142 msgid "Copy and paste the links to one or more videos" msgstr "" -#: .././mainwin.py:26046 +#: .././mainwin.py:26148 msgid "Links containing multiple videos will be converted to a channel" msgstr "" -#: .././mainwin.py:26053 +#: .././mainwin.py:26155 msgid "Links containing multiple videos will be converted to a playlist" msgstr "" -#: .././mainwin.py:26060 +#: .././mainwin.py:26162 msgid "Links containing multiple videos will be downloaded separately" msgstr "" -#: .././mainwin.py:26067 +#: .././mainwin.py:26169 msgid "Links containing multiple videos will not be downloaded at all" msgstr "" -#: .././mainwin.py:26155 +#: .././mainwin.py:26257 msgid "Add the videos to this folder" msgstr "" -#: .././mainwin.py:26185 +#: .././mainwin.py:26287 msgid "I want to download these videos automatically" msgstr "" -#: .././mainwin.py:26191 +#: .././mainwin.py:26293 msgid "Don't download anything, just check the videos" msgstr "" -#: .././mainwin.py:26360 .././config.py:2084 +#: .././mainwin.py:26462 .././config.py:2116 msgid "Apply download options" msgstr "" -#: .././mainwin.py:26382 +#: .././mainwin.py:26484 msgid "Create new download options" msgstr "" -#: .././mainwin.py:26392 +#: .././mainwin.py:26494 msgid "Use these download options" msgstr "" -#: .././mainwin.py:26429 +#: .././mainwin.py:26531 msgid "Clone these download options" msgstr "" -#: .././mainwin.py:26662 +#: .././mainwin.py:26764 msgid "Select a date" msgstr "" -#: .././mainwin.py:26770 +#: .././mainwin.py:26872 msgid "Delete channel" msgstr "" -#: .././mainwin.py:26772 +#: .././mainwin.py:26874 msgid "Delete playlist" msgstr "" -#: .././mainwin.py:26774 +#: .././mainwin.py:26876 msgid "Delete folder" msgstr "" -#: .././mainwin.py:26777 +#: .././mainwin.py:26879 msgid "Empty channel" msgstr "" -#: .././mainwin.py:26779 +#: .././mainwin.py:26881 msgid "Empty playlist" msgstr "" -#: .././mainwin.py:26781 +#: .././mainwin.py:26883 msgid "Empty folder" msgstr "" -#: .././mainwin.py:26815 +#: .././mainwin.py:26917 msgid "This channel does not contain any videos" msgstr "" -#: .././mainwin.py:26817 +#: .././mainwin.py:26919 msgid "This playlist does not contain any videos" msgstr "" -#: .././mainwin.py:26819 +#: .././mainwin.py:26921 msgid "This folder doesn't contain anything" msgstr "" -#: .././mainwin.py:26825 +#: .././mainwin.py:26927 msgid "(but there might be some files in Tartube's data folder)" msgstr "" -#: .././mainwin.py:26838 +#: .././mainwin.py:26940 msgid "This channel contains:" msgstr "" -#: .././mainwin.py:26840 +#: .././mainwin.py:26942 msgid "This playlist contains:" msgstr "" -#: .././mainwin.py:26842 .././config.py:14573 +#: .././mainwin.py:26944 .././config.py:15225 msgid "This folder contains:" msgstr "" -#: .././mainwin.py:26849 +#: .././mainwin.py:26951 msgid "1 folder" msgstr "" -#: .././mainwin.py:26851 +#: .././mainwin.py:26953 #, python-brace-format msgid "{0} folders" msgstr "" -#: .././mainwin.py:26858 +#: .././mainwin.py:26960 msgid "1 channel" msgstr "" -#: .././mainwin.py:26860 +#: .././mainwin.py:26962 #, python-brace-format msgid "{0} channels" msgstr "" -#: .././mainwin.py:26867 +#: .././mainwin.py:26969 msgid "1 playlist" msgstr "" -#: .././mainwin.py:26869 +#: .././mainwin.py:26971 #, python-brace-format msgid "{0} playlists" msgstr "" -#: .././mainwin.py:26876 .././mainwin.py:27367 +#: .././mainwin.py:26978 .././mainwin.py:27469 msgid "1 video" msgstr "" -#: .././mainwin.py:26878 .././mainwin.py:27370 +#: .././mainwin.py:26980 .././mainwin.py:27472 #, python-brace-format msgid "{0} videos" msgstr "" -#: .././mainwin.py:26891 +#: .././mainwin.py:26993 msgid "" "Do you want to delete the channel from Tartube's data folder, or do you just " "want to remove the channel from this list?" msgstr "" -#: .././mainwin.py:26897 +#: .././mainwin.py:26999 msgid "" "Do you want to delete the playlist from Tartube's data folder, or do you " "just want to remove the playlist from this list?" msgstr "" -#: .././mainwin.py:26903 +#: .././mainwin.py:27005 msgid "" "Do you want to delete the folder from Tartube's data folder, or do you just " "want to remove the folder from this list?" msgstr "" -#: .././mainwin.py:26912 +#: .././mainwin.py:27014 msgid "" "Do you want to empty the channel in Tartube's data folder, or do you just " "want to empty the channel in this list?" msgstr "" -#: .././mainwin.py:26918 +#: .././mainwin.py:27020 msgid "" "Do you want to empty the playlist in Tartube's data folder, or do you just " "want to empty the playlist in this list?" msgstr "" -#: .././mainwin.py:26924 +#: .././mainwin.py:27026 msgid "" "Do you want to empty the folder in Tartube's data folder, or do you just " "want to empty the folder in this list?" msgstr "" -#: .././mainwin.py:26941 +#: .././mainwin.py:27043 msgid "Just remove the channel from this list" msgstr "" -#: .././mainwin.py:26943 +#: .././mainwin.py:27045 msgid "Just remove the playlist from this list" msgstr "" -#: .././mainwin.py:26945 +#: .././mainwin.py:27047 msgid "Just remove the folder from this list" msgstr "" -#: .././mainwin.py:26950 +#: .././mainwin.py:27052 msgid "Just empty the channel in this list" msgstr "" -#: .././mainwin.py:26952 +#: .././mainwin.py:27054 msgid "Just empty the playlist in this list" msgstr "" -#: .././mainwin.py:26954 +#: .././mainwin.py:27056 msgid "Just empty the folder in this list" msgstr "" -#: .././mainwin.py:26960 +#: .././mainwin.py:27062 msgid "Delete all files" msgstr "" -#: .././mainwin.py:27020 +#: .././mainwin.py:27122 msgid "Export from database" msgstr "" -#: .././mainwin.py:27046 +#: .././mainwin.py:27148 msgid "" "Tartube is ready to export a partial summary of its database, containing a " "list of videos, channels, playlists and/or folders (but not including the " "videos themselves)" msgstr "" -#: .././mainwin.py:27053 +#: .././mainwin.py:27155 msgid "" "Tartube is ready to export a summary of its database, containing a list of " "videos, channels, playlists and/or folders (but not including the videos " "themselves)" msgstr "" -#: .././mainwin.py:27069 +#: .././mainwin.py:27171 msgid "Choose what should be included:" msgstr "" -#: .././mainwin.py:27077 +#: .././mainwin.py:27179 msgid "Include lists of videos" msgstr "" -#: .././mainwin.py:27082 +#: .././mainwin.py:27184 msgid "Include channels" msgstr "" -#: .././mainwin.py:27087 +#: .././mainwin.py:27189 msgid "Include playlists" msgstr "" -#: .././mainwin.py:27092 +#: .././mainwin.py:27194 msgid "Preserve folder structure" msgstr "" -#: .././mainwin.py:27100 +#: .././mainwin.py:27202 msgid "Export as JSON" msgstr "" -#: .././mainwin.py:27106 +#: .././mainwin.py:27208 msgid "Export as CSV using separator" msgstr "" -#: .././mainwin.py:27133 +#: .././mainwin.py:27235 msgid "Export as plain text" msgstr "" -#: .././mainwin.py:27242 +#: .././mainwin.py:27344 msgid "Import into database" msgstr "" -#: .././mainwin.py:27265 +#: .././mainwin.py:27367 msgid "Choose which items to import" msgstr "" -#: .././mainwin.py:27286 .././config.py:19575 .././config.py:21212 -#: .././config.py:21477 +#: .././mainwin.py:27388 .././config.py:20375 .././config.py:22129 +#: .././config.py:22402 msgid "Import" msgstr "" -#: .././mainwin.py:27322 +#: .././mainwin.py:27424 msgid "Import videos" msgstr "" -#: .././mainwin.py:27327 +#: .././mainwin.py:27429 msgid "Merge channels/playlists/folders" msgstr "" #. Bottom strip -#: .././mainwin.py:27330 .././mainwin.py:30368 +#: .././mainwin.py:27432 .././mainwin.py:30534 msgid "Select all" msgstr "" -#: .././mainwin.py:27335 +#: .././mainwin.py:27437 msgid "Unselect all" msgstr "" -#: .././mainwin.py:27597 +#: .././mainwin.py:27699 msgid "Mount drive" msgstr "" -#: .././mainwin.py:27622 +#: .././mainwin.py:27724 msgid "The Tartube data folder is set to:" msgstr "" -#: .././mainwin.py:27635 +#: .././mainwin.py:27737 msgid "...but this folder doesn't exist" msgstr "" -#: .././mainwin.py:27638 +#: .././mainwin.py:27740 msgid "...but Tartube cannot write to this folder" msgstr "" -#: .././mainwin.py:27648 +#: .././mainwin.py:27750 msgid "I have mounted the drive, please try again" msgstr "" -#: .././mainwin.py:27654 +#: .././mainwin.py:27756 msgid "Use this data folder:" msgstr "" -#: .././mainwin.py:27681 +#: .././mainwin.py:27783 msgid "Select a different data folder" msgstr "" -#: .././mainwin.py:27687 +#: .././mainwin.py:27789 msgid "Use the default data folder" msgstr "" -#: .././mainwin.py:27693 +#: .././mainwin.py:27795 msgid "Shut down Tartube" msgstr "" #. 'Cancel' button -#: .././mainwin.py:27700 .././config.py:1046 +#: .././mainwin.py:27802 .././config.py:1078 msgid "Cancel" msgstr "" #. 'OK' button -#: .././mainwin.py:27704 .././config.py:1037 .././config.py:2266 -#: .././config.py:11818 .././config.py:12184 +#: .././mainwin.py:27806 .././config.py:1069 .././config.py:2298 +#: .././config.py:11967 .././config.py:12333 msgid "OK" msgstr "" -#: .././mainwin.py:27826 +#: .././mainwin.py:27928 msgid "The folder still doesn't exist. Please try a different option" msgstr "" -#: .././mainwin.py:27903 .././config.py:403 +#: .././mainwin.py:28008 .././config.py:435 msgid "Downloads" msgstr "" -#: .././mainwin.py:27933 +#: .././mainwin.py:28038 msgid "Nothing happened?" msgstr "" -#: .././mainwin.py:27940 +#: .././mainwin.py:28051 +msgid "Check the video/audio file actually exists" +msgstr "" + +#: .././mainwin.py:28056 +msgid "(Try converting instead of a direct download)" +msgstr "" + +#: .././mainwin.py:28069 msgid "Check the downloader is installed and updated" msgstr "" -#: .././mainwin.py:27945 .././mainwin.py:29951 +#: .././mainwin.py:28074 .././mainwin.py:30117 msgid "Update" msgstr "" -#: .././mainwin.py:27952 +#: .././mainwin.py:28080 msgid "Tell Tartube where to find the downloader" msgstr "" -#: .././mainwin.py:27957 +#: .././mainwin.py:28085 msgid "Set the downloader's file path" msgstr "" -#: .././mainwin.py:27963 +#: .././mainwin.py:28091 msgid "Try a different downloader" msgstr "" -#: .././mainwin.py:27969 +#: .././mainwin.py:28097 msgid "Find more help" msgstr "" -#: .././mainwin.py:27974 +#: .././mainwin.py:28102 msgid "Read the FAQ" msgstr "" -#: .././mainwin.py:27980 +#: .././mainwin.py:28108 msgid "Ask for help" msgstr "" -#: .././mainwin.py:27992 +#: .././mainwin.py:28120 msgid "" "Don't forget to check the Output tab and the\n" "Errors/Warnings tab for error messages!" msgstr "" -#: .././mainwin.py:28002 +#: .././mainwin.py:28130 msgid "Always show this window" msgstr "" -#: .././mainwin.py:28181 +#: .././mainwin.py:28309 msgid "Download video clip" msgstr "" -#: .././mainwin.py:28183 +#: .././mainwin.py:28311 msgid "Create video clip" msgstr "" -#: .././mainwin.py:28210 .././config.py:9730 .././config.py:10382 -#: .././config.py:13004 +#: .././mainwin.py:28338 .././config.py:9881 .././config.py:10521 +#: .././config.py:13149 msgid "Start timestamp (e.g. 15:29)" msgstr "" -#: .././mainwin.py:28220 .././config.py:9750 .././config.py:10402 -#: .././config.py:13017 +#: .././mainwin.py:28348 .././config.py:9901 .././config.py:10541 +#: .././config.py:13162 msgid "Stop timestamp (optional)" msgstr "" -#: .././mainwin.py:28229 .././config.py:9765 .././config.py:10417 -#: .././config.py:13030 +#: .././mainwin.py:28357 .././config.py:9916 .././config.py:10556 +#: .././config.py:13175 msgid "Clip title (optional)" msgstr "" -#: .././mainwin.py:28237 +#: .././mainwin.py:28365 msgid "Download this clip" msgstr "" -#: .././mainwin.py:28239 +#: .././mainwin.py:28367 msgid "Create this clip" msgstr "" -#: .././mainwin.py:28248 +#: .././mainwin.py:28376 msgid "Download all clips" msgstr "" -#: .././mainwin.py:28250 +#: .././mainwin.py:28378 msgid "Create all clips" msgstr "" -#: .././mainwin.py:28434 +#: .././mainwin.py:28563 msgid "Download sliced video" msgstr "" -#: .././mainwin.py:28436 +#: .././mainwin.py:28565 msgid "Create sliced video" msgstr "" -#: .././mainwin.py:28463 .././config.py:9954 .././config.py:10628 -#: .././config.py:13206 +#: .././mainwin.py:28592 .././config.py:10101 .././config.py:10763 +#: .././config.py:13346 msgid "Start (timestamp or seconds)" msgstr "" -#: .././mainwin.py:28481 -msgid "Download this sliced video" +#: .././mainwin.py:28602 .././config.py:10114 .././config.py:10776 +#: .././config.py:13358 +msgid "Stop (optional)" +msgstr "" + +#: .././mainwin.py:28610 +msgid "Download and remove this slice" msgstr "" -#: .././mainwin.py:28483 +#: .././mainwin.py:28612 msgid "Create this sliced video" msgstr "" -#: .././mainwin.py:28492 +#: .././mainwin.py:28627 +msgid "Download and remove everything but this slice" +msgstr "" + +#: .././mainwin.py:28635 msgid "Download video with all slices removed" msgstr "" -#: .././mainwin.py:28494 +#: .././mainwin.py:28637 msgid "Create video with all slices removed" msgstr "" -#: .././mainwin.py:28647 +#: .././mainwin.py:28812 msgid "Set removal time" msgstr "" -#: .././mainwin.py:28670 +#: .././mainwin.py:28835 msgid "" "When videos are checked/downloaded, older videos\n" "are removed from the Recent Videos folder." msgstr "" -#: .././mainwin.py:28681 .././config.py:14778 +#: .././mainwin.py:28846 .././config.py:15428 msgid "Empty the whole folder" msgstr "" -#: .././mainwin.py:28688 .././config.py:14787 +#: .././mainwin.py:28853 .././config.py:15437 msgid "Remove videos after days" msgstr "" -#: .././mainwin.py:28782 +#: .././mainwin.py:28947 msgid "Stale lockfile" msgstr "" -#: .././mainwin.py:28819 +#: .././mainwin.py:28984 msgid "" "Failed to load the Tartube database file, because another copy of Tartube " "seems to be using it" msgstr "" -#: .././mainwin.py:28826 +#: .././mainwin.py:28991 msgid "Do you want to load it anyway?" msgstr "" -#: .././mainwin.py:28832 +#: .././mainwin.py:28997 msgid "" "(Only click 'Yes' if you are sure that other copies of Tartube are not using " "the database right now)" msgstr "" -#: .././mainwin.py:28844 +#: .././mainwin.py:29009 msgid "Yes, load the file" msgstr "" -#: .././mainwin.py:28851 +#: .././mainwin.py:29016 msgid "No, just shut down Tartube" msgstr "" -#: .././mainwin.py:28853 +#: .././mainwin.py:29018 msgid "No, don't load the file" msgstr "" -#: .././mainwin.py:28948 +#: .././mainwin.py:29113 msgid "Rename channel" msgstr "" -#: .././mainwin.py:28950 +#: .././mainwin.py:29115 msgid "Rename playlist" msgstr "" -#: .././mainwin.py:28952 +#: .././mainwin.py:29117 msgid "Rename folder" msgstr "" -#: .././mainwin.py:28976 +#: .././mainwin.py:29141 msgid "Set the new name for the channel:" msgstr "" -#: .././mainwin.py:28978 +#: .././mainwin.py:29143 msgid "Set the new name for the playlist:" msgstr "" -#: .././mainwin.py:28980 +#: .././mainwin.py:29145 msgid "Set the new name for the folder:" msgstr "" -#: .././mainwin.py:28986 +#: .././mainwin.py:29151 msgid "N.B. This procedure will modify your filesystem!\n" msgstr "" -#: .././mainwin.py:29047 +#: .././mainwin.py:29212 msgid "Add to scheduled download" msgstr "" -#: .././mainwin.py:29070 +#: .././mainwin.py:29235 msgid "Add the channel to this scheduled download:" msgstr "" -#: .././mainwin.py:29072 +#: .././mainwin.py:29237 msgid "Add the playlist to this scheduled download:" msgstr "" -#: .././mainwin.py:29074 +#: .././mainwin.py:29239 msgid "Add the folder to this scheduled download:" msgstr "" -#: .././mainwin.py:29176 +#: .././mainwin.py:29341 msgid "Set download destination" msgstr "" -#: .././mainwin.py:29221 +#: .././mainwin.py:29386 msgid "This channel normally downloads videos into its own folder" msgstr "" -#: .././mainwin.py:29226 +#: .././mainwin.py:29391 msgid "This playlist normally downloads videos into its own folder" msgstr "" -#: .././mainwin.py:29231 +#: .././mainwin.py:29396 msgid "This folder normally downloads videos into itself" msgstr "" -#: .././mainwin.py:29236 +#: .././mainwin.py:29401 msgid "This channel normally downloads videos into its own directory" msgstr "" -#: .././mainwin.py:29241 +#: .././mainwin.py:29406 msgid "This playlist normally downloads videos into its own directory" msgstr "" -#: .././mainwin.py:29246 +#: .././mainwin.py:29411 msgid "This folder normally downloads videos into its own directory" msgstr "" -#: .././mainwin.py:29256 +#: .././mainwin.py:29421 msgid "Use this location" msgstr "" -#: .././mainwin.py:29264 +#: .././mainwin.py:29429 msgid "Choose a different location if:" msgstr "" -#: .././mainwin.py:29267 +#: .././mainwin.py:29432 msgid "" "You want to add a channel and its playlists, without downloading the same " "video twice" msgstr "" -#: .././mainwin.py:29273 +#: .././mainwin.py:29438 msgid "" "A video creator has channels on both YouTube and BitChute, and you want to " "add both without downloading the same video twice" msgstr "" -#: .././mainwin.py:29366 +#: .././mainwin.py:29531 msgid "" "Using an external folder is not recommended, in general. Choose an external " "folder if:" msgstr "" -#: .././mainwin.py:29371 +#: .././mainwin.py:29536 msgid "" "Using an external directory is not recommended, in general. Choose an " "external directory if:" msgstr "" -#: .././mainwin.py:29377 +#: .././mainwin.py:29542 msgid "" "You want a different application to process the downloaded videos (other " "applications should not modify Tartube's main data folder)" msgstr "" -#: .././mainwin.py:29383 +#: .././mainwin.py:29548 msgid "" "You want a different application to process the downloaded videos (other " "applications should not modify Tartube's main data directory)" msgstr "" #. (Signal connect appears below) -#: .././mainwin.py:29400 .././config.py:4365 .././config.py:5680 -#: .././config.py:7075 .././config.py:7096 .././config.py:7117 -#: .././config.py:20869 .././config.py:20968 .././config.py:21009 -#: .././config.py:21079 +#: .././mainwin.py:29565 .././config.py:4399 .././config.py:5784 +#: .././config.py:7235 .././config.py:7256 .././config.py:7277 +#: .././config.py:21773 .././config.py:21876 .././config.py:21917 +#: .././config.py:21991 msgid "Set" msgstr "" -#: .././mainwin.py:29483 +#: .././mainwin.py:29648 msgid "Select an external folder" msgstr "" -#: .././mainwin.py:29485 +#: .././mainwin.py:29650 msgid "Select an external directory" msgstr "" -#: .././mainwin.py:29505 +#: .././mainwin.py:29670 msgid "An external folder must not be inside Tartube's own data folder" msgstr "" -#: .././mainwin.py:29511 +#: .././mainwin.py:29676 msgid "An external directory must not be inside Tartube's own data directory" msgstr "" -#: .././mainwin.py:29716 +#: .././mainwin.py:29881 msgid "Set nickname" msgstr "" -#: .././mainwin.py:29741 +#: .././mainwin.py:29906 #, python-brace-format msgid "" "Set a nickname for the channel '{0}' (or leave it blank to reset the " "nickname)" msgstr "" -#: .././mainwin.py:29746 +#: .././mainwin.py:29911 #, python-brace-format msgid "" "Set a nickname for the playlist '{0}' (or leave it blank to reset the " "nickname)" msgstr "" -#: .././mainwin.py:29751 +#: .././mainwin.py:29916 #, python-brace-format msgid "" "Set a nickname for the folder '{0}' (or leave it blank to reset the nickname)" msgstr "" -#: .././mainwin.py:29814 +#: .././mainwin.py:29979 msgid "Set URL" msgstr "" -#: .././mainwin.py:29839 +#: .././mainwin.py:30004 #, python-brace-format msgid "Update the URL for the channel '{0}'" msgstr "" -#: .././mainwin.py:29843 +#: .././mainwin.py:30008 #, python-brace-format msgid "Update the URL for the playlist '{0}'" msgstr "" -#: .././mainwin.py:29907 +#: .././mainwin.py:30072 msgid "Show system command" msgstr "" -#: .././mainwin.py:29960 +#: .././mainwin.py:30126 msgid "Copy to clipboard" msgstr "" -#: .././mainwin.py:30134 .././config.py:20235 +#: .././mainwin.py:30300 .././config.py:21116 msgid "Test" msgstr "" -#: .././mainwin.py:30154 +#: .././mainwin.py:30320 msgid "URL of the video to download (optional)" msgstr "" -#: .././mainwin.py:30165 +#: .././mainwin.py:30331 msgid "Command line options (optional)" msgstr "" -#: .././mainwin.py:30246 +#: .././mainwin.py:30412 msgid "Tidy up files" msgstr "" -#: .././mainwin.py:30248 +#: .././mainwin.py:30414 msgid "Tidy up channel" msgstr "" -#: .././mainwin.py:30250 +#: .././mainwin.py:30416 msgid "Tidy up playlist" msgstr "" -#: .././mainwin.py:30252 +#: .././mainwin.py:30418 msgid "Tidy up folder" msgstr "" -#: .././mainwin.py:30281 +#: .././mainwin.py:30447 msgid "Check that videos are not corrupted" msgstr "" -#: .././mainwin.py:30286 +#: .././mainwin.py:30452 msgid "Delete corrupted video files" msgstr "" -#: .././mainwin.py:30296 +#: .././mainwin.py:30462 msgid "Check that videos do/don't exist" msgstr "" -#: .././mainwin.py:30303 +#: .././mainwin.py:30469 msgid "" "Delete downloaded video files (doesn't remove videos from Tartube's database)" msgstr "" -#: .././mainwin.py:30315 +#: .././mainwin.py:30481 msgid "Also delete all video/audio files with the same name" msgstr "" -#: .././mainwin.py:30323 +#: .././mainwin.py:30489 msgid "Delete all archive files" msgstr "" -#: .././mainwin.py:30328 +#: .././mainwin.py:30494 msgid "Move thumbnails into own folder" msgstr "" -#: .././mainwin.py:30333 +#: .././mainwin.py:30499 msgid "Delete all thumbnail files" msgstr "" -#: .././mainwin.py:30339 +#: .././mainwin.py:30505 msgid "Convert .webp thumbnails to .jpg using FFmpeg" msgstr "" -#: .././mainwin.py:30348 +#: .././mainwin.py:30514 msgid "Move other metadata files into own folder" msgstr "" -#: .././mainwin.py:30356 +#: .././mainwin.py:30522 msgid "Delete all description files" msgstr "" -#: .././mainwin.py:30360 +#: .././mainwin.py:30526 msgid "Delete all metadata (JSON) files" msgstr "" -#: .././mainwin.py:30364 +#: .././mainwin.py:30530 msgid "Delete all annotation files" msgstr "" #. (Signal connect appears below) -#: .././mainwin.py:30373 +#: .././mainwin.py:30539 msgid "Select none" msgstr "" -#: .././config.py:404 +#: .././config.py:436 msgid "Uploads" msgstr "" -#: .././config.py:405 .././config.py:12706 +#: .././config.py:437 .././config.py:12853 msgid "File size" msgstr "" -#: .././config.py:435 +#: .././config.py:467 msgid "Graph" msgstr "" -#: .././config.py:436 +#: .././config.py:468 msgid "Bar chart" msgstr "" -#: .././config.py:465 +#: .././config.py:497 msgid "Show decade" msgstr "" -#: .././config.py:466 +#: .././config.py:498 msgid "Show year" msgstr "" -#: .././config.py:467 +#: .././config.py:499 msgid "Show quarters" msgstr "" -#: .././config.py:468 +#: .././config.py:500 msgid "Show month" msgstr "" -#: .././config.py:469 +#: .././config.py:501 msgid "Show week" msgstr "" -#: .././config.py:470 +#: .././config.py:502 msgid "Show day" msgstr "" -#: .././config.py:502 +#: .././config.py:534 msgid "Quarters" msgstr "" -#: .././config.py:503 +#: .././config.py:535 msgid "Months" msgstr "" -#: .././config.py:504 +#: .././config.py:536 msgid "Weeks" msgstr "" -#: .././config.py:505 +#: .././config.py:537 msgid "Days" msgstr "" -#: .././config.py:506 +#: .././config.py:538 msgid "Hours" msgstr "" -#: .././config.py:538 +#: .././config.py:570 msgid "Red" msgstr "" -#: .././config.py:539 +#: .././config.py:571 msgid "Green" msgstr "" -#: .././config.py:540 +#: .././config.py:572 msgid "Blue" msgstr "" -#: .././config.py:541 +#: .././config.py:573 msgid "Black" msgstr "" -#: .././config.py:542 +#: .././config.py:574 msgid "White" msgstr "" #. 'Reset' button #. (Signal connect appears below) -#: .././config.py:1019 .././config.py:4369 .././config.py:20371 -#: .././config.py:20399 .././config.py:20972 .././config.py:21013 -#: .././config.py:21083 +#: .././config.py:1051 .././config.py:4403 .././config.py:21256 +#: .././config.py:21284 .././config.py:21880 .././config.py:21921 +#: .././config.py:21995 msgid "Reset" msgstr "" -#: .././config.py:1023 +#: .././config.py:1055 msgid "Reset changes without closing the window" msgstr "" #. 'Apply' button -#: .././config.py:1028 +#: .././config.py:1060 msgid "Apply" msgstr "" -#: .././config.py:1032 +#: .././config.py:1064 msgid "Apply changes without closing the window" msgstr "" -#: .././config.py:1040 .././config.py:11821 .././config.py:12187 +#: .././config.py:1072 .././config.py:11970 .././config.py:12336 msgid "Apply changes" msgstr "" -#: .././config.py:1049 +#: .././config.py:1081 msgid "Cancel changes" msgstr "" -#: .././config.py:1892 +#: .././config.py:1924 msgid "Listed as" msgstr "" -#: .././config.py:1904 +#: .././config.py:1936 msgid "Contained in" msgstr "" -#: .././config.py:1962 +#: .././config.py:1994 msgid "Download to" msgstr "" -#: .././config.py:2010 +#: .././config.py:2042 msgid "Default location" msgstr "" -#: .././config.py:2039 +#: .././config.py:2071 msgid "Channel URL" msgstr "" -#: .././config.py:2041 +#: .././config.py:2073 msgid "Playlist URL" msgstr "" -#: .././config.py:2043 .././config.py:4140 +#: .././config.py:2075 .././config.py:4166 msgid "Video URL" msgstr "" -#: .././config.py:2066 .././config.py:5245 +#: .././config.py:2098 .././config.py:5336 msgid "_Options" msgstr "" -#: .././config.py:2080 .././config.py:3619 .././config.py:4868 -#: .././config.py:4907 +#: .././config.py:2112 .././config.py:3646 .././config.py:4919 +#: .././config.py:4963 msgid "Download options" msgstr "" -#: .././config.py:2091 +#: .././config.py:2123 msgid "Edit download options" msgstr "" -#: .././config.py:2098 +#: .././config.py:2130 msgid "Remove download options" msgstr "" -#: .././config.py:2269 +#: .././config.py:2301 msgid "Close this window" msgstr "" -#: .././config.py:2677 +#: .././config.py:2709 msgid "Custom download settings" msgstr "" -#: .././config.py:2824 .././config.py:3867 .././config.py:8909 +#: .././config.py:2856 .././config.py:3894 .././config.py:9069 msgid "_Name" msgstr "" -#: .././config.py:2847 +#: .././config.py:2878 msgid "Usage" msgstr "" -#: .././config.py:2859 -msgid "Applies everywhere except the Classic Mode Tab" +#: .././config.py:2890 +msgid "Applies everywhere except the Classic Mode tab" msgstr "" -#: .././config.py:2862 -msgid "Applies to the Classic Mode Tab" +#: .././config.py:2893 +msgid "Applies to the Classic Mode tab" msgstr "" -#: .././config.py:2864 +#: .././config.py:2895 msgid "Applies when selected" msgstr "" -#: .././config.py:2879 +#: .././config.py:2910 msgid "Import settings from the general custom download into this window" msgstr "" -#: .././config.py:2897 +#: .././config.py:2928 msgid "Completely reset all settings to their default values" msgstr "" #. Add this tab... -#: .././config.py:2911 .././config.py:4862 .././config.py:4881 -#: .././config.py:5798 .././config.py:19329 +#: .././config.py:2942 .././config.py:4913 .././config.py:4932 +#: .././config.py:5911 .././config.py:20125 msgid "_Downloads" msgstr "" -#: .././config.py:2916 +#: .././config.py:2947 msgid "Download settings" msgstr "" -#: .././config.py:2921 +#: .././config.py:2952 msgid "Download each video independently of its channel or playlist" msgstr "" -#: .././config.py:2929 +#: .././config.py:2960 msgid "Hint: enable this setting first!" msgstr "" -#: .././config.py:2935 +#: .././config.py:2966 msgid "" "Check channels/playlists/folders before each custom download (recommended)" msgstr "" -#: .././config.py:2951 +#: .././config.py:2982 msgid "Split videos into video clips using timestamps (requires FFmpeg)" msgstr "" -#: .././config.py:2964 +#: .././config.py:2995 msgid "Remove slices from the video using SponsorBlock data (requires FFmpeg)" msgstr "" -#: .././config.py:2991 .././config.py:15395 +#: .././config.py:3022 .././config.py:16043 msgid "Remove" msgstr "" -#: .././config.py:3020 +#: .././config.py:3051 msgid "Types of video slice to remove:" msgstr "" -#: .././config.py:3035 +#: .././config.py:3066 msgid "Toggle" msgstr "" -#: .././config.py:3050 +#: .././config.py:3077 msgid "Remove all" msgstr "" #. (Signal connect appears below) -#: .././config.py:3057 +#: .././config.py:3084 msgid "Remove none" msgstr "" -#: .././config.py:3136 +#: .././config.py:3163 msgid "_Delays" msgstr "" -#: .././config.py:3141 +#: .././config.py:3168 msgid "Download delay settings" msgstr "" -#: .././config.py:3146 +#: .././config.py:3173 msgid "Apply a delay after each video/channel/playlist is downloaded" msgstr "" -#: .././config.py:3154 +#: .././config.py:3181 msgid "Maximum delay to apply (in minutes)" msgstr "" -#: .././config.py:3170 +#: .././config.py:3197 msgid "Minimum delay to apply (in minutes; randomises the actual delay)" msgstr "" -#: .././config.py:3203 +#: .././config.py:3230 msgid "Mirrors" msgstr "" -#: .././config.py:3208 +#: .././config.py:3235 msgid "Mirror settings" msgstr "" -#: .././config.py:3214 +#: .././config.py:3241 msgid "Obtain a YouTube video from the original website" msgstr "" -#: .././config.py:3222 +#: .././config.py:3249 msgid "Obtain the video from HookTube rather than YouTube" msgstr "" -#: .././config.py:3232 +#: .././config.py:3259 msgid "Obtain the video from Invidious rather than YouTube" msgstr "" -#: .././config.py:3242 +#: .././config.py:3269 msgid "Obtain the video from this YouTube front-end:" msgstr "" -#: .././config.py:3259 .././config.py:20377 +#: .././config.py:3286 .././config.py:21262 msgid "Type the exact text that replaces youtube.com e.g." msgstr "" -#: .././config.py:3308 .././config.py:3455 .././config.py:7326 -#: .././config.py:7959 .././config.py:11331 .././config.py:11727 +#: .././config.py:3335 .././config.py:3482 .././config.py:7486 +#: .././config.py:8119 .././config.py:11480 .././config.py:11876 msgid "This procedure cannot be reversed. Are you sure you want to continue?" msgstr "" -#: .././config.py:3875 +#: .././config.py:3901 msgid "Name for these download options" msgstr "" -#: .././config.py:3893 +#: .././config.py:3919 msgid "Download options applied to" msgstr "" -#: .././config.py:3929 +#: .././config.py:3955 msgid "All channels, playlists and folders" msgstr "" -#: .././config.py:3931 -msgid "Downloads in the Classic Mode Tab" +#: .././config.py:3957 +msgid "Downloads in the Classic Mode tab" msgstr "" -#: .././config.py:3933 +#: .././config.py:3959 msgid "These options are not applied to anything" msgstr "" -#: .././config.py:3937 +#: .././config.py:3963 msgid "Extra command line options (e.g. --help; do not use -o or --output)" msgstr "" -#: .././config.py:3949 -msgid "" -"Use ONLY these options (Tartube adds the downloader and the output folder" +#: .././config.py:3975 +msgid "Use ONLY these options (Tartube adds the output folder)" msgstr "" -#: .././config.py:3961 -msgid "" -"Use ONLY these options (Tartube adds the downloader and the output directory)" +#: .././config.py:3986 +msgid "Use ONLY these options (Tartube adds the output directory)" msgstr "" -#: .././config.py:3973 -msgid "Ignore the video/playlist/channel URL, because a URL is specified below" +#: .././config.py:3997 +msgid "Use only the URL specified below" msgstr "" -#: .././config.py:4009 +#: .././config.py:4031 msgid "Hide advanced download options" msgstr "" -#: .././config.py:4011 +#: .././config.py:4033 msgid "Show advanced download options" msgstr "" -#: .././config.py:4021 +#: .././config.py:4043 msgid "Import general download options into this window" msgstr "" -#: .././config.py:4036 +#: .././config.py:4058 msgid "Completely reset all download options to their default values" msgstr "" #. Add this tab... -#: .././config.py:4050 .././config.py:16496 +#: .././config.py:4072 .././config.py:17162 msgid "_Files" msgstr "" -#: .././config.py:4071 +#: .././config.py:4098 msgid "File _names" msgstr "" -#: .././config.py:4079 +#: .././config.py:4105 msgid "File name options" msgstr "" -#: .././config.py:4084 +#: .././config.py:4110 msgid "Format for video file names" msgstr "" -#: .././config.py:4109 +#: .././config.py:4135 msgid "File output template" msgstr "" -#: .././config.py:4129 +#: .././config.py:4155 msgid "Add to template:" msgstr "" -#: .././config.py:4134 .././config.py:12408 +#: .././config.py:4160 .././config.py:12557 msgid "Video properties" msgstr "" -#: .././config.py:4136 .././config.py:12676 +#: .././config.py:4162 .././config.py:12823 msgid "Video ID" msgstr "" -#: .././config.py:4137 +#: .././config.py:4163 msgid "Video title" msgstr "" -#: .././config.py:4138 +#: .././config.py:4164 msgid "Alternative video ID" msgstr "" -#: .././config.py:4139 +#: .././config.py:4165 msgid "Secondary video title" msgstr "" -#: .././config.py:4141 +#: .././config.py:4167 msgid "Video filename extension" msgstr "" -#: .././config.py:4142 +#: .././config.py:4168 msgid "Video licence" msgstr "" -#: .././config.py:4143 +#: .././config.py:4169 msgid "Age restriction (years)" msgstr "" -#: .././config.py:4144 +#: .././config.py:4170 msgid "Is a livestream" msgstr "" -#: .././config.py:4145 +#: .././config.py:4171 msgid "Autonumber videos, starting at 0" msgstr "" -#: .././config.py:4147 +#: .././config.py:4173 msgid "Creator/uploader" msgstr "" -#: .././config.py:4149 +#: .././config.py:4175 msgid "Full name of video uploader" msgstr "" -#: .././config.py:4150 +#: .././config.py:4176 msgid "Uploader ID" msgstr "" -#: .././config.py:4151 +#: .././config.py:4177 msgid "Nickname/ID of video uploader" msgstr "" -#: .././config.py:4152 +#: .././config.py:4178 msgid "Channel name" msgstr "" -#: .././config.py:4153 +#: .././config.py:4179 msgid "Channel ID" msgstr "" -#: .././config.py:4154 +#: .././config.py:4180 msgid "Playlist name" msgstr "" -#: .././config.py:4155 +#: .././config.py:4181 msgid "Playlist ID" msgstr "" -#: .././config.py:4156 +#: .././config.py:4182 msgid "Video index in playlist" msgstr "" -#: .././config.py:4158 +#: .././config.py:4184 msgid "Date/time/location" msgstr "" -#: .././config.py:4160 +#: .././config.py:4186 msgid "Release date (YYYYMMDD)" msgstr "" -#: .././config.py:4161 +#: .././config.py:4187 msgid "Release time (UNIX timestamp)" msgstr "" -#: .././config.py:4162 +#: .././config.py:4188 msgid "Upload data (YYYYMMDD)" msgstr "" -#: .././config.py:4163 +#: .././config.py:4189 msgid "Video length (seconds)" msgstr "" -#: .././config.py:4164 +#: .././config.py:4190 msgid "Filming location" msgstr "" -#: .././config.py:4166 .././config.py:4168 +#: .././config.py:4192 .././config.py:4194 msgid "Video format" msgstr "" -#: .././config.py:4169 +#: .././config.py:4195 msgid "Video format code" msgstr "" -#: .././config.py:4170 +#: .././config.py:4196 msgid "Video width" msgstr "" -#: .././config.py:4171 +#: .././config.py:4197 msgid "Video height" msgstr "" -#: .././config.py:4173 +#: .././config.py:4199 msgid "Video frame rate" msgstr "" -#: .././config.py:4174 +#: .././config.py:4200 msgid "Average video/audio bitrate (KiB/s)" msgstr "" -#: .././config.py:4175 +#: .././config.py:4201 msgid "Average video bitrate (KiB/s)" msgstr "" -#: .././config.py:4176 +#: .././config.py:4202 msgid "Average audio bitrate (KiB/s)" msgstr "" -#: .././config.py:4178 +#: .././config.py:4204 msgid "Ratings/comments" msgstr "" -#: .././config.py:4180 +#: .././config.py:4206 msgid "Number of views" msgstr "" -#: .././config.py:4181 +#: .././config.py:4207 msgid "Number of positive ratings" msgstr "" -#: .././config.py:4182 +#: .././config.py:4208 msgid "Number of negative ratings" msgstr "" -#: .././config.py:4183 +#: .././config.py:4209 msgid "Average rating" msgstr "" -#: .././config.py:4184 +#: .././config.py:4210 msgid "Number of reposts" msgstr "" -#: .././config.py:4185 +#: .././config.py:4211 msgid "Number of comments" msgstr "" -#: .././config.py:4221 .././config.py:5549 .././config.py:5689 -#: .././config.py:15385 .././config.py:18744 .././config.py:19566 -#: .././config.py:21203 .././config.py:21468 +#: .././config.py:4247 .././config.py:5649 .././config.py:5793 +#: .././config.py:16033 .././config.py:19523 .././config.py:20366 +#: .././config.py:22120 .././config.py:22393 msgid "Add" msgstr "" -#: .././config.py:4249 .././config.py:5850 +#: .././config.py:4280 .././config.py:5967 msgid "_Filesystem" msgstr "" -#: .././config.py:4259 +#: .././config.py:4289 msgid "Filesystem options" msgstr "" -#: .././config.py:4264 +#: .././config.py:4294 msgid "Restrict filenames to ASCII characters" msgstr "" -#: .././config.py:4271 +#: .././config.py:4301 msgid "Use the server's file modification time" msgstr "" -#: .././config.py:4279 +#: .././config.py:4309 msgid "Filesystem overrides" msgstr "" -#: .././config.py:4284 +#: .././config.py:4314 msgid "Download all videos into this folder" msgstr "" -#: .././config.py:4348 +#: .././config.py:4383 msgid "_Cookies" msgstr "" -#: .././config.py:4356 +#: .././config.py:4390 msgid "Cookies options" msgstr "" -#: .././config.py:4361 +#: .././config.py:4395 msgid "Path to the downloader's cookie jar file" msgstr "" -#: .././config.py:4417 +#: .././config.py:4456 msgid "_Write/move files" msgstr "" -#: .././config.py:4425 +#: .././config.py:4463 msgid "File write options" msgstr "" -#: .././config.py:4430 +#: .././config.py:4468 msgid "Write video's description to a .description file" msgstr "" -#: .././config.py:4437 +#: .././config.py:4475 msgid "Write video's metadata to an .info.json file" msgstr "" -#: .././config.py:4445 +#: .././config.py:4483 msgid "Write video's annotations to an .annotations.xml file" msgstr "" -#: .././config.py:4454 +#: .././config.py:4492 msgid "" "Annotations are not downloaded when checking videos/channels/playlists/" "folders" msgstr "" -#: .././config.py:4461 +#: .././config.py:4499 msgid "Write the video's thumbnail to the same folder" msgstr "" -#: .././config.py:4469 +#: .././config.py:4507 msgid "File move options" msgstr "" -#: .././config.py:4474 +#: .././config.py:4512 msgid "Move video's description file into a sub-folder" msgstr "" -#: .././config.py:4480 +#: .././config.py:4518 msgid "Write video's metadata file into a sub-folder" msgstr "" -#: .././config.py:4486 +#: .././config.py:4524 msgid "Write video's annotations file into a sub-folder" msgstr "" -#: .././config.py:4492 +#: .././config.py:4530 msgid "Write the video's thumbnail into a sub-folder" msgstr "" -#: .././config.py:4506 +#: .././config.py:4549 msgid "_Keep files" msgstr "" -#: .././config.py:4512 +#: .././config.py:4555 msgid "Options during real (not simulated) downloads" msgstr "" -#: .././config.py:4518 .././config.py:4549 +#: .././config.py:4561 .././config.py:4592 msgid "Keep the description file after the download has finished" msgstr "" -#: .././config.py:4524 .././config.py:4555 +#: .././config.py:4567 .././config.py:4598 msgid "Keep the metadata file after the download has finished" msgstr "" -#: .././config.py:4530 .././config.py:4561 +#: .././config.py:4573 .././config.py:4604 msgid "Keep the annotations file after the download has finished" msgstr "" -#: .././config.py:4536 .././config.py:4567 +#: .././config.py:4579 .././config.py:4610 msgid "Keep the thumbnail file after the download has finished" msgstr "" -#: .././config.py:4543 +#: .././config.py:4586 msgid "Options during simulated (not real) downloads" msgstr "" #. Add this tab... -#: .././config.py:4581 +#: .././config.py:4624 msgid "F_ormats" msgstr "" -#: .././config.py:4600 +#: .././config.py:4648 msgid "_Preferred" msgstr "" -#: .././config.py:4608 +#: .././config.py:4655 msgid "Preferred format options" msgstr "" -#: .././config.py:4614 +#: .././config.py:4661 msgid "Recognised video/audio formats" msgstr "" -#: .././config.py:4625 +#: .././config.py:4672 msgid "Add format" msgstr "" -#: .././config.py:4631 +#: .././config.py:4678 msgid "List of preferred formats" msgstr "" -#: .././config.py:4649 +#: .././config.py:4696 msgid "Remove format" msgstr "" -#: .././config.py:4702 +#: .././config.py:4749 msgid "If a merge is required after post-processing, output to this format:" msgstr "" #. Add this tab... -#: .././config.py:4729 .././config.py:6277 +#: .././config.py:4781 .././config.py:6413 msgid "_Advanced" msgstr "" -#: .././config.py:4738 +#: .././config.py:4789 msgid "Multiple format options" msgstr "" -#: .././config.py:4747 +#: .././config.py:4798 msgid "" "Multiple formats will not be downloaded, because an archive file will be " "created" msgstr "" -#: .././config.py:4750 +#: .././config.py:4801 msgid "The archive file can be disabled in the System Preferences window" msgstr "" -#: .././config.py:4759 +#: .././config.py:4810 msgid "" "For each video, download the first available format from the preferred list" msgstr "" -#: .././config.py:4773 +#: .././config.py:4824 msgid "" "From the preferred list, download the first format that's available for all " "videos" msgstr "" -#: .././config.py:4787 +#: .././config.py:4838 msgid "For each video, download all available formats from the preferred list" msgstr "" -#: .././config.py:4800 +#: .././config.py:4851 msgid "Download all available formats for all videos" msgstr "" -#: .././config.py:4833 +#: .././config.py:4884 msgid "Other format options" msgstr "" -#: .././config.py:4838 +#: .././config.py:4889 msgid "Prefer free video formats, unless one is specified above" msgstr "" -#: .././config.py:4845 +#: .././config.py:4896 msgid "Do not download DASH-related data for YouTube videos" msgstr "" -#: .././config.py:4924 +#: .././config.py:4985 msgid "_Playlists" msgstr "" -#: .././config.py:4939 +#: .././config.py:5005 msgid "_Size limits" msgstr "" -#: .././config.py:4953 +#: .././config.py:5024 msgid "_Dates" msgstr "" -#: .././config.py:4965 +#: .././config.py:5041 msgid "_Views" msgstr "" -#: .././config.py:4978 +#: .././config.py:5059 msgid "_Filtering" msgstr "" -#: .././config.py:4992 +#: .././config.py:5078 msgid "_External" msgstr "" -#: .././config.py:5004 +#: .././config.py:5090 msgid "_Sound only" msgstr "" -#: .././config.py:5009 +#: .././config.py:5095 msgid "Sound only options" msgstr "" -#: .././config.py:5015 +#: .././config.py:5101 msgid "" "Download each video, extract the sound, and then discard the original videos" msgstr "" -#: .././config.py:5020 +#: .././config.py:5106 msgid "(requires that FFmpeg or AVConv is installed on your system)" msgstr "" -#: .././config.py:5031 +#: .././config.py:5117 msgid "Use this audio format:" msgstr "" -#: .././config.py:5047 +#: .././config.py:5133 msgid "Use this audio quality:" msgstr "" -#: .././config.py:5053 .././config.py:5131 +#: .././config.py:5139 .././config.py:5217 msgid "High" msgstr "" -#: .././config.py:5055 .././config.py:5133 +#: .././config.py:5141 .././config.py:5219 msgid "Low" msgstr "" -#: .././config.py:5074 .././config.py:6122 +#: .././config.py:5160 .././config.py:6255 msgid "_Post-processing" msgstr "" -#: .././config.py:5080 .././config.py:5414 +#: .././config.py:5166 .././config.py:5510 msgid "Post-processing options" msgstr "" -#: .././config.py:5086 +#: .././config.py:5172 msgid "Post-process video files to convert them to audio-only files" msgstr "" -#: .././config.py:5094 +#: .././config.py:5180 msgid "Prefer AVConv over FFmpeg" msgstr "" -#: .././config.py:5103 +#: .././config.py:5189 msgid "Prefer FFmpeg over AVConv (default)" msgstr "" -#: .././config.py:5112 +#: .././config.py:5198 msgid "Audio format of the post-processed file" msgstr "" -#: .././config.py:5126 +#: .././config.py:5212 msgid "Audio quality of the post-processed file" msgstr "" -#: .././config.py:5144 +#: .././config.py:5230 msgid "Encode video to another format, if necessary" msgstr "" -#: .././config.py:5157 +#: .././config.py:5243 msgid "Arguments to pass to post-processor" msgstr "" -#: .././config.py:5168 +#: .././config.py:5254 msgid "Keep original file after processing it" msgstr "" -#: .././config.py:5176 +#: .././config.py:5262 msgid "Merge subtitles file with video (.mp4 only)" msgstr "" -#: .././config.py:5188 +#: .././config.py:5274 msgid "Embed thumbnail in audio file as cover art" msgstr "" -#: .././config.py:5195 +#: .././config.py:5281 msgid "Write metadata to the video file" msgstr "" -#: .././config.py:5202 +#: .././config.py:5288 msgid "Automatically correct known faults of the file" msgstr "" -#: .././config.py:5208 +#: .././config.py:5294 msgid "Do nothing" msgstr "" -#: .././config.py:5209 +#: .././config.py:5295 msgid "Warn, but do nothing" msgstr "" -#: .././config.py:5210 +#: .././config.py:5296 msgid "Fix if possible, otherwise warn" msgstr "" #. Add this tab... -#: .././config.py:5228 +#: .././config.py:5314 msgid "S_ubtitles" msgstr "" -#: .././config.py:5249 +#: .././config.py:5340 msgid "Subtitles options" msgstr "" -#: .././config.py:5255 +#: .././config.py:5346 msgid "Don't download the subtitles file" msgstr "" -#: .././config.py:5266 +#: .././config.py:5357 msgid "Download the automatic subtitles file (YouTube only)" msgstr "" -#: .././config.py:5279 +#: .././config.py:5370 msgid "Download all available subtitles files" msgstr "" -#: .././config.py:5292 +#: .././config.py:5383 msgid "Download subtitles file for these languages:" msgstr "" -#: .././config.py:5316 +#: .././config.py:5407 msgid "Add language" msgstr "" -#: .././config.py:5330 +#: .././config.py:5421 msgid "Remove language" msgstr "" -#: .././config.py:5388 +#: .././config.py:5484 msgid "_More options" msgstr "" -#: .././config.py:5394 +#: .././config.py:5490 msgid "Subtitle format options" msgstr "" -#: .././config.py:5400 +#: .././config.py:5496 msgid "Preferred subtitle format(s), e.g. 'srt', 'vtt', 'srt/ass/vtt/lrc/best'" msgstr "" -#: .././config.py:5419 +#: .././config.py:5515 msgid "Applies to .mp4 videos only; requires FFmpeg/AVConv" msgstr "" -#: .././config.py:5426 +#: .././config.py:5522 msgid "During post-processing, merge subtitles file with video" msgstr "" #. Add this tab... -#: .././config.py:5446 +#: .././config.py:5542 msgid "_yt-dlp" msgstr "" -#: .././config.py:5481 +#: .././config.py:5581 msgid "List of output filename templates" msgstr "" -#: .././config.py:5482 .././config.py:5616 .././config.py:5756 -#: .././config.py:5806 .././config.py:5858 .././config.py:5935 -#: .././config.py:5983 .././config.py:6024 .././config.py:6075 -#: .././config.py:6131 .././config.py:6211 +#: .././config.py:5582 .././config.py:5720 .././config.py:5864 +#: .././config.py:5918 .././config.py:5974 .././config.py:6049 +#: .././config.py:6102 .././config.py:6147 .././config.py:6203 +#: .././config.py:6263 .././config.py:6347 msgid "yt-dlp only" msgstr "" -#: .././config.py:5487 +#: .././config.py:5587 msgid "Overrides the output template in the 'Files' tab" msgstr "" -#: .././config.py:5506 +#: .././config.py:5606 msgid "Template" msgstr "" -#: .././config.py:5525 .././config.py:5653 +#: .././config.py:5625 .././config.py:5757 msgid "Output type" msgstr "" -#: .././config.py:5538 +#: .././config.py:5638 msgid "Output template" msgstr "" -#: .././config.py:5560 .././config.py:5700 .././config.py:18780 -#: .././config.py:19625 .././config.py:21262 .././config.py:21527 +#: .././config.py:5660 .././config.py:5804 .././config.py:19559 +#: .././config.py:20424 .././config.py:22178 .././config.py:22451 msgid "Delete" msgstr "" -#: .././config.py:5569 .././config.py:5709 .././config.py:17346 -#: .././config.py:19641 .././config.py:21278 .././config.py:21543 +#: .././config.py:5669 .././config.py:5813 .././config.py:18069 +#: .././config.py:20440 .././config.py:22194 .././config.py:22467 msgid "Refresh list" msgstr "" -#: .././config.py:5607 +#: .././config.py:5712 msgid "_Paths" msgstr "" -#: .././config.py:5615 +#: .././config.py:5719 msgid "List of output paths" msgstr "" -#: .././config.py:5634 +#: .././config.py:5738 msgid "Path" msgstr "" -#: .././config.py:5668 +#: .././config.py:5772 msgid "Output path" msgstr "" -#: .././config.py:5755 +#: .././config.py:5863 msgid "Video Selection Options" msgstr "" -#: .././config.py:5761 +#: .././config.py:5869 msgid "Stop download process when encountering a file in the archive" msgstr "" -#: .././config.py:5769 +#: .././config.py:5877 msgid "" "Stop download process when encountering a file that has been filtered out" msgstr "" -#: .././config.py:5778 +#: .././config.py:5886 msgid "Number of failures allowed before rest of playlist is skipped" msgstr "" -#: .././config.py:5806 +#: .././config.py:5918 msgid "Download Options" msgstr "" -#: .././config.py:5813 -msgid "Number of fragments of a dash/hls video to download concurrently" +#: .././config.py:5925 +msgid "Number of fragments of a DASH/HLS video to download concurrently" msgstr "" -#: .././config.py:5828 +#: .././config.py:5940 msgid "Minimum download rate (bytes/sec) below which throttling is assumed" msgstr "" -#: .././config.py:5858 +#: .././config.py:5974 msgid "Filesystem Options" msgstr "" -#: .././config.py:5864 +#: .././config.py:5980 msgid "Force filenames to be MS Windows compatible" msgstr "" -#: .././config.py:5872 +#: .././config.py:5988 msgid "Limit filnema lenght (excluding extension) to this many characters" msgstr "" -#: .././config.py:5887 +#: .././config.py:6003 msgid "Overwrite all video and metadata files (includes '--no-continue')" msgstr "" -#: .././config.py:5896 +#: .././config.py:6012 msgid "Write playlist metadata in addition to video metadata" msgstr "" -#: .././config.py:5904 +#: .././config.py:6020 msgid "Write all fields, including private fields, to the .info.json file" msgstr "" -#: .././config.py:5913 -msgid "Retrieve video comments and add to .info.json file" -msgstr "" - -#: .././config.py:5928 +#: .././config.py:6042 msgid "_Shortcuts" msgstr "" -#: .././config.py:5934 +#: .././config.py:6048 msgid "Internet Shortcut Options" msgstr "" -#: .././config.py:5940 +#: .././config.py:6054 msgid "Write an internet shortcut file (.url, .webloc or .desktop)" msgstr "" -#: .././config.py:5947 +#: .././config.py:6061 msgid "Write a Windows internet shortcut file (.url)" msgstr "" -#: .././config.py:5954 +#: .././config.py:6068 msgid "Write a macOS inernet shortcut file (.webloc)" msgstr "" -#: .././config.py:5961 +#: .././config.py:6075 msgid "Write a Linux internet shortcut file (.desktop)" msgstr "" -#: .././config.py:5976 +#: .././config.py:6095 msgid "V_erbosity" msgstr "" -#: .././config.py:5982 +#: .././config.py:6101 msgid "Verbosity and Simulation Options" msgstr "" -#: .././config.py:5989 +#: .././config.py:6108 msgid "" "Ignore 'No video formats' error (useful for extracting metadata from " "unavailable videos)" msgstr "" -#: .././config.py:5999 +#: .././config.py:6118 msgid "Force download archive entries to be written as long as no errors occur" msgstr "" -#: .././config.py:6016 +#: .././config.py:6140 msgid "_Workarounds" msgstr "" -#: .././config.py:6024 +#: .././config.py:6147 msgid "Workaround Options" msgstr "" -#: .././config.py:6031 +#: .././config.py:6154 msgid "Number of seconds to sleep between requests during data extraction" msgstr "" -#: .././config.py:6046 +#: .././config.py:6169 msgid "Number of seconds to sleep before each download (or minimum time)" msgstr "" -#: .././config.py:6068 +#: .././config.py:6196 msgid "Fo_rmats" msgstr "" -#: .././config.py:6074 +#: .././config.py:6202 msgid "Video Format Options" msgstr "" -#: .././config.py:6080 +#: .././config.py:6208 msgid "Allow multiple video streams to be merged into a single file" msgstr "" -#: .././config.py:6087 +#: .././config.py:6215 msgid "Allow multiple audio streams to be merged into a single file" msgstr "" -#: .././config.py:6095 +#: .././config.py:6223 msgid "Check formats selected are actually downloadable (Experimental" msgstr "" -#: .././config.py:6105 +#: .././config.py:6233 msgid "" "Allow unplayable formats to be listed and downloaded (also disables post-" "processing)" msgstr "" -#: .././config.py:6130 +#: .././config.py:6262 msgid "Post-Processing Options" msgstr "" -#: .././config.py:6136 +#: .././config.py:6268 msgid "Remux video into another container if necessary" msgstr "" -#: .././config.py:6155 +#: .././config.py:6287 msgid "Embed metadata including chapter markers (if supported by format)" msgstr "" -#: .././config.py:6164 +#: .././config.py:6296 msgid "Convert thumbnails to another format" msgstr "" -#: .././config.py:6179 +#: .././config.py:6311 msgid "Split video into multiple files based on internal chapters" msgstr "" -#: .././config.py:6188 +#: .././config.py:6320 msgid "N.B. The 'chapter' prefix can be used in the 'Output' and 'Paths' tabs" msgstr "" -#: .././config.py:6203 +#: .././config.py:6340 msgid "E_xtractor" msgstr "" -#: .././config.py:6211 +#: .././config.py:6347 msgid "Extractor Options" msgstr "" -#: .././config.py:6234 +#: .././config.py:6370 msgid "Do not process dynamic DASH manifests" msgstr "" -#: .././config.py:6242 +#: .././config.py:6378 msgid "" "Split HLS playlists to different formats at discontinuities such as ad breaks" msgstr "" -#: .././config.py:6252 +#: .././config.py:6388 msgid "Extractor Arguments" msgstr "" -#: .././config.py:6257 +#: .././config.py:6393 msgid "One argument per line, e.g." msgstr "" -#: .././config.py:6299 +#: .././config.py:6440 msgid "_Configurations" msgstr "" -#: .././config.py:6307 +#: .././config.py:6447 msgid "Configuration file options" msgstr "" -#: .././config.py:6312 +#: .././config.py:6452 msgid "Use the downloader's configuration file" msgstr "" -#: .././config.py:6323 .././config.py:6501 +#: .././config.py:6463 .././config.py:6649 msgid "File loaded from:" msgstr "" -#: .././config.py:6334 .././config.py:6512 +#: .././config.py:6474 .././config.py:6660 msgid "Save file" msgstr "" -#: .././config.py:6375 +#: .././config.py:6520 msgid "_Authentication" msgstr "" -#: .././config.py:6383 +#: .././config.py:6527 msgid "Authentication options" msgstr "" -#: .././config.py:6388 +#: .././config.py:6532 msgid "Username with which to log in" msgstr "" -#: .././config.py:6399 +#: .././config.py:6543 msgid "Password with which to log in" msgstr "" -#: .././config.py:6410 +#: .././config.py:6554 msgid "Password required for this URL" msgstr "" -#: .././config.py:6421 +#: .././config.py:6565 msgid "Two-factor authentication code" msgstr "" -#: .././config.py:6433 +#: .././config.py:6577 msgid "Adobe Pass multiple-system operator (TV provider) identifier" msgstr "" -#: .././config.py:6446 +#: .././config.py:6590 msgid " Adobe Pass multiple-system operator account login" msgstr "" -#: .././config.py:6457 +#: .././config.py:6601 msgid "Adobe Pass multiple-system operator account password" msgstr "" -#: .././config.py:6476 +#: .././config.py:6625 msgid "._netrc" msgstr "" -#: .././config.py:6484 +#: .././config.py:6632 msgid ".netrc options" msgstr "" -#: .././config.py:6489 +#: .././config.py:6637 msgid "Use .netrc authentication data" msgstr "" -#: .././config.py:6556 +#: .././config.py:6709 msgid "_Network" msgstr "" -#: .././config.py:6562 +#: .././config.py:6714 msgid "Network options" msgstr "" -#: .././config.py:6568 +#: .././config.py:6720 msgid "" "Use this HTTP/HTTPS proxy (if set, overrides the proxies in Tartube's " "preferences window" msgstr "" -#: .././config.py:6581 +#: .././config.py:6733 msgid "Time to wait for socket connection, before giving up" msgstr "" -#: .././config.py:6592 +#: .././config.py:6744 msgid "Bind with this Client-side IP address" msgstr "" -#: .././config.py:6603 +#: .././config.py:6755 msgid "Connect using IPv4 only" msgstr "" -#: .././config.py:6610 +#: .././config.py:6762 msgid "Connect using IPv6 only" msgstr "" -#: .././config.py:6625 +#: .././config.py:6782 msgid "_Geo-restriction" msgstr "" -#: .././config.py:6633 +#: .././config.py:6789 msgid "Geo-restriction options" msgstr "" -#: .././config.py:6638 +#: .././config.py:6794 msgid "Use this proxy to verify IP address" msgstr "" -#: .././config.py:6649 +#: .././config.py:6805 msgid "Bypass using fake X-Forwarded-For HTTP header" msgstr "" -#: .././config.py:6656 +#: .././config.py:6812 msgid "Don't bypass using fake HTTP header" msgstr "" -#: .././config.py:6663 +#: .././config.py:6819 msgid "Bypass geo-restriction with ISO 3166-2 country code" msgstr "" -#: .././config.py:6674 +#: .././config.py:6830 msgid "Bypass with explicit IP block in CIDR notation" msgstr "" -#: .././config.py:6698 +#: .././config.py:6858 msgid "Workaround options" msgstr "" -#: .././config.py:6703 +#: .././config.py:6863 msgid "Custom user agent" msgstr "" -#: .././config.py:6714 +#: .././config.py:6874 msgid "Custom referer if video access has restricted domain" msgstr "" -#: .././config.py:6725 +#: .././config.py:6885 msgid "Minimum seconds to sleep before each download" msgstr "" -#: .././config.py:6738 +#: .././config.py:6898 msgid "Maximum seconds to sleep before each download" msgstr "" -#: .././config.py:6759 +#: .././config.py:6919 msgid "Force this encoding (experimental)" msgstr "" -#: .././config.py:6770 +#: .././config.py:6930 msgid "Suppress HTTPS certificate validation" msgstr "" -#: .././config.py:6778 +#: .././config.py:6938 msgid "" "Use an unencrypted connection to retrieve information about videos (YouTube " "only)" msgstr "" -#: .././config.py:6860 +#: .././config.py:7020 msgid "Prefer HLS (HTTP Live Streaming)" msgstr "" -#: .././config.py:6867 +#: .././config.py:7027 msgid "Prefer FFMpeg over native HLS downloader" msgstr "" -#: .././config.py:6874 +#: .././config.py:7034 msgid "Include advertisements (experimental feature)" msgstr "" -#: .././config.py:6881 +#: .././config.py:7041 msgid "Ignore errors and continue the download operation" msgstr "" -#: .././config.py:6888 +#: .././config.py:7048 msgid "Number of retries" msgstr "" -#: .././config.py:6909 +#: .././config.py:7069 msgid "Download videos suitable for this age" msgstr "" -#: .././config.py:6930 +#: .././config.py:7090 msgid "Playlist options" msgstr "" -#: .././config.py:6936 +#: .././config.py:7096 msgid "" "Channels and playlists are handled in the same way, so these options can be " "used with both" msgstr "" -#: .././config.py:6943 +#: .././config.py:7103 msgid "Start downloading playlist from index" msgstr "" -#: .././config.py:6955 +#: .././config.py:7115 msgid "Stop downloading playlist at index" msgstr "" -#: .././config.py:6967 +#: .././config.py:7127 msgid "Abort operation after downloading this many videos" msgstr "" -#: .././config.py:6979 +#: .././config.py:7139 msgid "Abort downloading the playlist if an error occurs" msgstr "" -#: .././config.py:6986 +#: .././config.py:7146 msgid "Download playlist in reverse order" msgstr "" -#: .././config.py:6993 +#: .././config.py:7153 msgid "Download playlist in random order" msgstr "" -#: .././config.py:7009 +#: .././config.py:7169 msgid "Video size limit options" msgstr "" -#: .././config.py:7014 +#: .././config.py:7174 msgid "Minimum file size for video downloads" msgstr "" -#: .././config.py:7032 +#: .././config.py:7192 msgid "Maximum file size for video downloads" msgstr "" -#: .././config.py:7060 +#: .././config.py:7220 msgid "Video date options" msgstr "" -#: .././config.py:7065 +#: .././config.py:7225 msgid "Only videos uploaded on this date" msgstr "" -#: .././config.py:7086 +#: .././config.py:7246 msgid "Only videos uploaded before this date" msgstr "" -#: .././config.py:7107 +#: .././config.py:7267 msgid "Only videos uploaded after this date" msgstr "" -#: .././config.py:7138 +#: .././config.py:7298 msgid "Video views options" msgstr "" -#: .././config.py:7143 +#: .././config.py:7303 msgid "Minimum number of views" msgstr "" -#: .././config.py:7155 +#: .././config.py:7315 msgid "Maximum number of views" msgstr "" -#: .././config.py:7181 +#: .././config.py:7341 msgid "Video filtering options" msgstr "" -#: .././config.py:7186 +#: .././config.py:7346 msgid "Download only matching titles (regex or caseless substring)" msgstr "" -#: .././config.py:7198 +#: .././config.py:7358 msgid "Don't download only matching titles (regex or caseless substring)" msgstr "" -#: .././config.py:7211 +#: .././config.py:7371 msgid "Generic video filter, for example:" msgstr "" -#: .././config.py:7232 +#: .././config.py:7392 msgid "External downloader options" msgstr "" -#: .././config.py:7237 +#: .././config.py:7397 msgid "Use this external downloader" msgstr "" -#: .././config.py:7255 +#: .././config.py:7415 msgid "Arguments to pass to external downloader" msgstr "" -#: .././config.py:7353 +#: .././config.py:7513 msgid "Select the cookie jar file" msgstr "" -#: .././config.py:7465 +#: .././config.py:7625 msgid "Could not save the downloader's configuration file" msgstr "" -#: .././config.py:7476 +#: .././config.py:7636 msgid "Downloader's configuration file saved" msgstr "" -#: .././config.py:7732 +#: .././config.py:7892 msgid "" "This option won't work unless the format is also added to the list of " "preferred formats above" msgstr "" -#: .././config.py:7923 +#: .././config.py:8083 msgid "Could not save the .netrc file" msgstr "" -#: .././config.py:7940 +#: .././config.py:8100 msgid ".netrc file saved" msgstr "" -#: .././config.py:7998 +#: .././config.py:8158 msgid "" "Fewer download options will be visible when you click the 'Apply' or 'Reset' " "buttons (or when you close and then re-open the window)" msgstr "" -#: .././config.py:8008 +#: .././config.py:8168 msgid "Show advanced download options (when window re-opens)" msgstr "" -#: .././config.py:8021 +#: .././config.py:8181 msgid "" "More download options will be visible when you click the 'Apply' or 'Reset' " "buttons (or when you close and then re-open the window)" msgstr "" -#: .././config.py:8031 +#: .././config.py:8191 msgid "Hide advanced download options (when window re-opens)" msgstr "" -#: .././config.py:8490 +#: .././config.py:8650 msgid "Select the output folder" msgstr "" -#: .././config.py:8492 +#: .././config.py:8652 msgid "Select the output directory" msgstr "" -#: .././config.py:8542 +#: .././config.py:8702 msgid "FFmpeg options" msgstr "" #. Replace the 'OK' button with a 'Process files' button -#: .././config.py:8895 .././config.py:12132 +#: .././config.py:9055 .././config.py:12281 msgid "Process files" msgstr "" -#: .././config.py:8897 .././config.py:12134 +#: .././config.py:9057 .././config.py:12283 msgid "Process the files with FFmpeg" msgstr "" -#: .././config.py:8914 +#: .././config.py:9073 msgid "Name for these FFmpeg options" msgstr "" -#: .././config.py:8932 +#: .././config.py:9091 msgid "Extra command line options (e.g. --help)" msgstr "" -#: .././config.py:8943 +#: .././config.py:9102 msgid "System command, based on all FFmpeg options in this window:" msgstr "" -#: .././config.py:8974 +#: .././config.py:9133 msgid "Show fewer FFmpeg options" msgstr "" -#: .././config.py:8976 +#: .././config.py:9135 msgid "Show more FFmpeg options" msgstr "" -#: .././config.py:8986 +#: .././config.py:9145 msgid "Import current FFmpeg options into this window" msgstr "" -#: .././config.py:9001 +#: .././config.py:9160 msgid "Completely reset all FFmpeg options to their default values" msgstr "" -#: .././config.py:9017 +#: .././config.py:9176 msgid "Add to end of filename:" msgstr "" -#: .././config.py:9027 +#: .././config.py:9186 msgid "If regex matches filename:" msgstr "" -#: .././config.py:9041 +#: .././config.py:9200 msgid "...then apply substitution:" msgstr "" -#: .././config.py:9054 +#: .././config.py:9213 msgid "" "If the video/audio file is renamed, also rename the thumbnail (but not vice-" "versa)" msgstr "" -#: .././config.py:9065 +#: .././config.py:9224 msgid "Change file extension:" msgstr "" -#: .././config.py:9079 +#: .././config.py:9238 msgid "After changing the file extension, delete the original file" msgstr "" -#: .././config.py:9150 +#: .././config.py:9309 msgid "_Settings" msgstr "" -#: .././config.py:9164 +#: .././config.py:9322 msgid "Downloaded video/audio" msgstr "" -#: .././config.py:9173 +#: .././config.py:9331 msgid "with audio" msgstr "" -#: .././config.py:9186 .././config.py:9263 .././config.py:10796 +#: .././config.py:9344 .././config.py:9421 .././config.py:10943 msgid "Thumbnail" msgstr "" -#: .././config.py:9198 +#: .././config.py:9356 msgid "Output" msgstr "" -#: .././config.py:9227 +#: .././config.py:9385 msgid "Video clip" msgstr "" -#: .././config.py:9239 +#: .././config.py:9397 msgid "Video slice" msgstr "" -#: .././config.py:9251 +#: .././config.py:9409 msgid "Merge video/audio" msgstr "" -#: .././config.py:9361 +#: .././config.py:9519 msgid "Audio bitrate" msgstr "" -#: .././config.py:9375 +#: .././config.py:9533 msgid "How to set the quality" msgstr "" -#: .././config.py:9380 +#: .././config.py:9538 msgid "" "FFmpeg always encodes according to a Rate Factor that specifies the quality " "of the result." msgstr "" -#: .././config.py:9383 +#: .././config.py:9541 msgid "" "Instead of directly specifying the Rate Factor, an average bit rate can be " "specified. FFmpeg will then determine the optimal Rate Factor in a first " "pass." msgstr "" -#: .././config.py:9387 +#: .././config.py:9545 msgid "" "In fact the first pass is only used for determining the Rate Factor, no " "other data is carried over into the second pass." msgstr "" -#: .././config.py:9390 +#: .././config.py:9548 msgid "" "Specifying an average bitrate but running only one pass is possible, but not " "recommended. FFmpeg would then encode the beginning of the video with a " @@ -5259,2441 +5274,2538 @@ msgid "" "eventually reach the target bitrate." msgstr "" -#: .././config.py:9403 +#: .././config.py:9561 msgid "Manual rate factor" msgstr "" -#: .././config.py:9412 +#: .././config.py:9570 msgid "Determine from target bitrate (2-Pass)" msgstr "" -#: .././config.py:9422 +#: .././config.py:9580 msgid "Rate factor" msgstr "" -#: .././config.py:9434 +#: .././config.py:9589 msgid "Lossless" msgstr "" -#: .././config.py:9434 +#: .././config.py:9589 msgid "Large file" msgstr "" -#: .././config.py:9456 +#: .././config.py:9611 msgid "Bad quality" msgstr "" -#: .././config.py:9456 +#: .././config.py:9611 msgid "Small file" msgstr "" -#: .././config.py:9463 +#: .././config.py:9618 msgid "Name of dummy file" msgstr "" -#: .././config.py:9467 +#: .././config.py:9622 msgid "A dummy file is created during the first pass." msgstr "" -#: .././config.py:9471 +#: .././config.py:9626 msgid "Use the output file" msgstr "" -#: .././config.py:9472 +#: .././config.py:9627 msgid "Dummy" msgstr "" -#: .././config.py:9473 +#: .././config.py:9628 msgid "/dev/null (Linux)" msgstr "" -#: .././config.py:9474 +#: .././config.py:9629 msgid "NUL (MS Windows)" msgstr "" -#: .././config.py:9486 +#: .././config.py:9641 msgid "Patience preset" msgstr "" -#: .././config.py:9491 +#: .././config.py:9646 msgid "Ultra fast" msgstr "" -#: .././config.py:9492 +#: .././config.py:9647 msgid "Super fast" msgstr "" -#: .././config.py:9493 +#: .././config.py:9648 msgid "Very fast" msgstr "" -#: .././config.py:9494 .././config.py:9592 +#: .././config.py:9649 .././config.py:9747 msgid "Faster" msgstr "" -#: .././config.py:9495 +#: .././config.py:9650 msgid "Fast" msgstr "" -#: .././config.py:9496 +#: .././config.py:9651 msgid "Medium (default)" msgstr "" -#: .././config.py:9497 +#: .././config.py:9652 #, python-format msgid "Slow (file about 5-10% smaller than medium)" msgstr "" -#: .././config.py:9498 +#: .././config.py:9653 #, python-format msgid "Slower (file about 15% smaller than medium)" msgstr "" -#: .././config.py:9499 +#: .././config.py:9654 #, python-format msgid "Very slow (file about 17% smaller than medium)" msgstr "" -#: .././config.py:9510 +#: .././config.py:9665 msgid "GPU encoding" msgstr "" -#: .././config.py:9526 +#: .././config.py:9681 msgid "Hardware acceleration" msgstr "" -#: .././config.py:9586 +#: .././config.py:9741 msgid "Palette:" msgstr "" -#: .././config.py:9593 +#: .././config.py:9748 msgid "Uses dithering to a standard palette provided by FFmpeg" msgstr "" -#: .././config.py:9594 +#: .././config.py:9749 msgid "Can cause dithering artefacts and slight banding" msgstr "" -#: .././config.py:9603 +#: .././config.py:9758 msgid "Better" msgstr "" -#: .././config.py:9604 +#: .././config.py:9759 msgid "Determines an optimized palette for the video" msgstr "" -#: .././config.py:9605 +#: .././config.py:9760 msgid "Uses two passes and a temporary file for the palette" msgstr "" -#: .././config.py:9660 .././config.py:10308 +#: .././config.py:9815 .././config.py:10451 msgid "Split videos using their own timestamps" msgstr "" -#: .././config.py:9669 .././config.py:10319 +#: .././config.py:9824 .././config.py:10462 msgid "Split videos using these timestamps" msgstr "" -#: .././config.py:9703 .././config.py:9892 .././config.py:10355 -#: .././config.py:10566 .././config.py:12985 .././config.py:13163 +#: .././config.py:9858 .././config.py:10043 .././config.py:10498 +#: .././config.py:10705 .././config.py:13130 .././config.py:13303 msgid "Start" msgstr "" -#: .././config.py:9703 .././config.py:10355 .././config.py:12985 +#: .././config.py:9858 .././config.py:10498 .././config.py:13130 msgid "Clip title" msgstr "" -#: .././config.py:9778 .././config.py:10430 .././config.py:13049 +#: .././config.py:9929 .././config.py:10569 .././config.py:13190 msgid "Add timestamp" msgstr "" -#: .././config.py:9787 .././config.py:10439 .././config.py:13060 +#: .././config.py:9938 .././config.py:10578 .././config.py:13201 msgid "Delete timestamp" msgstr "" -#: .././config.py:9797 .././config.py:10449 .././config.py:13069 +#: .././config.py:9948 .././config.py:10588 .././config.py:13210 msgid "Clip preferences" msgstr "" -#: .././config.py:9849 .././config.py:10519 +#: .././config.py:10000 .././config.py:10658 msgid "Use the videos' own slice data" msgstr "" -#: .././config.py:9858 .././config.py:10530 +#: .././config.py:10009 .././config.py:10669 msgid "Use this slice data" msgstr "" -#: .././config.py:9892 .././config.py:9919 .././config.py:10566 -#: .././config.py:10593 .././config.py:13163 .././config.py:13182 +#: .././config.py:10043 .././config.py:10066 .././config.py:10705 +#: .././config.py:10728 .././config.py:13303 .././config.py:13322 msgid "Category" msgstr "" -#: .././config.py:9892 .././config.py:9939 .././config.py:10566 -#: .././config.py:10613 .././config.py:13163 .././config.py:13194 +#: .././config.py:10043 .././config.py:10086 .././config.py:10705 +#: .././config.py:10748 .././config.py:13303 .././config.py:13334 msgid "Action Type" msgstr "" -#: .././config.py:9986 .././config.py:10660 .././config.py:13237 +#: .././config.py:10130 .././config.py:10792 .././config.py:13373 msgid "Add slice" msgstr "" -#: .././config.py:9996 +#: .././config.py:10140 msgid "Delete sliuce" msgstr "" -#: .././config.py:10007 .././config.py:10682 .././config.py:13258 +#: .././config.py:10151 .././config.py:10814 .././config.py:13394 msgid "SponsorBlock settings" msgstr "" -#: .././config.py:10110 +#: .././config.py:10254 msgid "" "This merges a video and audio file with the same name into a single video " "file,\n" "using the extension specified in the File tab" msgstr "" -#: .././config.py:10151 +#: .././config.py:10295 msgid "The thumbnail's format can be changed in the File tab" msgstr "" -#: .././config.py:10166 +#: .././config.py:10310 msgid "_Optimisations" msgstr "" -#: .././config.py:10172 +#: .././config.py:10315 msgid "" "Optimise for fast seeking (shorter keyframe interval, about 10% larger file)" msgstr "" -#: .././config.py:10180 +#: .././config.py:10323 msgid "Input video is a high-quality movie" msgstr "" -#: .././config.py:10186 +#: .././config.py:10329 msgid "Input video is an animated movie" msgstr "" -#: .././config.py:10192 +#: .././config.py:10335 msgid "Input video contains film grain" msgstr "" -#: .././config.py:10198 +#: .././config.py:10341 msgid "Input video is an image slideshow" msgstr "" -#: .././config.py:10204 +#: .././config.py:10347 msgid "Optimise for really weak CPU playback devices" msgstr "" -#: .././config.py:10211 +#: .././config.py:10354 msgid "Optimise for really old devices (requires rate factor above 0)" msgstr "" -#: .././config.py:10222 +#: .././config.py:10365 msgid "" "Move headers to beginning of file (so it can play while still downloading)" msgstr "" -#: .././config.py:10230 +#: .././config.py:10373 msgid "Fast encoding and low latency streaming" msgstr "" -#: .././config.py:10236 +#: .././config.py:10379 msgid "Limit bitrate (Mbit/s)" msgstr "" -#: .././config.py:10253 +#: .././config.py:10396 msgid "Assuming a receiving buffer (seconds)" msgstr "" -#: .././config.py:10286 .././config.py:19714 +#: .././config.py:10429 .././config.py:20701 msgid "_Clips" msgstr "" -#: .././config.py:10298 +#: .././config.py:10441 msgid "Split the video(s) to create video clips" msgstr "" -#: .././config.py:10502 .././config.py:13130 .././config.py:19913 +#: .././config.py:10641 .././config.py:13271 .././config.py:20904 msgid "_Slices" msgstr "" -#: .././config.py:10509 +#: .././config.py:10648 msgid "Remove slices from the video(s)" msgstr "" -#: .././config.py:10670 .././config.py:13249 +#: .././config.py:10802 .././config.py:13385 msgid "Delete slice" msgstr "" -#: .././config.py:10777 +#: .././config.py:10924 msgid "List of videos to be processed" msgstr "" -#: .././config.py:10796 .././downloads.py:6532 .././media.py:88 +#: .././config.py:10943 .././downloads.py:6564 .././media.py:88 msgid "Video" msgstr "" -#: .././config.py:10839 +#: .././config.py:10986 msgid "Show video properties and timestamps" msgstr "" -#: .././config.py:10848 +#: .././config.py:10995 msgid "Remove video from list" msgstr "" -#: .././config.py:11771 +#: .././config.py:11920 msgid "" "Fewer FFmpeg options will be visible when you click the 'Apply' or 'Reset' " "buttons (or when you close and then re-open the window)" msgstr "" -#: .././config.py:11781 +#: .././config.py:11930 msgid "Show more FFmpeg options (when window re-opens)" msgstr "" -#: .././config.py:11798 +#: .././config.py:11947 msgid "" "More FFmpeg options will be visible when you click the 'Apply' or 'Reset' " "buttons (or when you close and then re-open the window)" msgstr "" -#: .././config.py:11808 +#: .././config.py:11957 msgid "Show fewer FFmpeg options (when window re-opens)" msgstr "" #. Add this tab... -#: .././config.py:12548 .././config.py:14018 .././config.py:14462 -#: .././config.py:15083 .././config.py:16105 +#: .././config.py:12703 .././config.py:14680 .././config.py:15119 +#: .././config.py:15733 .././config.py:16752 msgid "_General" msgstr "" -#: .././config.py:12551 .././config.py:14021 .././config.py:14465 -#: .././config.py:15088 +#: .././config.py:12706 .././config.py:14683 .././config.py:15122 +#: .././config.py:15737 msgid "General properties" msgstr "" -#: .././config.py:12605 +#: .././config.py:12756 msgid "Set the file (if this is the wrong one)" msgstr "" -#: .././config.py:12620 +#: .././config.py:12767 msgid "Video downloaded" msgstr "" -#: .././config.py:12627 +#: .././config.py:12774 msgid "Video unwatched" msgstr "" -#: .././config.py:12634 +#: .././config.py:12781 msgid "Video has been split from an original" msgstr "" -#: .././config.py:12641 +#: .././config.py:12788 msgid "Video is archived" msgstr "" -#: .././config.py:12648 +#: .././config.py:12795 msgid "Video is bookmarked" msgstr "" -#: .././config.py:12655 +#: .././config.py:12802 msgid "Video is favourite" msgstr "" -#: .././config.py:12662 +#: .././config.py:12809 msgid "Video is in waiting list" msgstr "" -#: .././config.py:12669 +#: .././config.py:12816 msgid "Always simulate download of this video" msgstr "" -#: .././config.py:12734 +#: .././config.py:12881 msgid "Receive time" msgstr "" -#: .././config.py:12768 +#: .././config.py:12915 msgid "_Live" msgstr "" -#: .././config.py:12774 +#: .././config.py:12920 msgid "Livestream properties" msgstr "" -#: .././config.py:12779 +#: .././config.py:12925 msgid "Livestream status" msgstr "" -#: .././config.py:12790 +#: .././config.py:12936 msgid "Waiting to start" msgstr "" -#: .././config.py:12792 +#: .././config.py:12938 msgid "Stream has started" msgstr "" -#: .././config.py:12794 +#: .././config.py:12940 msgid "Not a livestream" msgstr "" -#: .././config.py:12797 +#: .././config.py:12943 msgid "Livestream message" msgstr "" -#: .././config.py:12812 +#: .././config.py:12958 msgid "Video is pre-recorded" msgstr "" -#: .././config.py:12823 +#: .././config.py:12969 msgid "Livestream actions" msgstr "" -#: .././config.py:12830 +#: .././config.py:12976 msgid "When the livestream starts, show a desktop notification" msgstr "" -#: .././config.py:12839 +#: .././config.py:12985 msgid "When the livestream starts, play an alarm" msgstr "" -#: .././config.py:12849 +#: .././config.py:12995 msgid "When the livestream starts, open it in the system's web browser" msgstr "" -#: .././config.py:12861 +#: .././config.py:13007 msgid "When the livestream starts, begin downloading it immediately" msgstr "" -#: .././config.py:12872 .././config.py:20268 +#: .././config.py:13018 .././config.py:21149 msgid "When a livestream stops, download it (overwriting any earlier file)" msgstr "" -#: .././config.py:12888 +#: .././config.py:13034 msgid "_Description" msgstr "" -#: .././config.py:12893 +#: .././config.py:13039 msgid "Video description" msgstr "" -#: .././config.py:12906 +#: .././config.py:13052 msgid "Update from the description file, and set the line length to:" msgstr "" -#: .././config.py:12926 -msgid "Clear the description (does not modify the description file)" +#: .././config.py:13072 +msgid "Clear the description (does not modify the file)" msgstr "" -#: .././config.py:12953 +#: .././config.py:13099 msgid "_Timestamps" msgstr "" -#: .././config.py:12959 +#: .././config.py:13104 msgid "Timestamps" msgstr "" -#: .././config.py:12965 +#: .././config.py:13110 msgid "Timestamps can be used to download or create video clips" msgstr "" -#: .././config.py:13085 +#: .././config.py:13226 msgid "Reset list using video description" msgstr "" -#: .././config.py:13136 +#: .././config.py:13276 msgid "Video Slices" msgstr "" -#: .././config.py:13142 +#: .././config.py:13282 msgid "SponsorBlock provides a list of slices that can be removed from a video" msgstr "" -#: .././config.py:13322 .././config.py:14241 +#: .././config.py:13456 .././config.py:20995 +msgid "_Comments" +msgstr "" + +#: .././config.py:13461 +msgid "Comments" +msgstr "" + +#: .././config.py:13466 +msgid "Video comments can only be downloaded by yt-dlp" +msgstr "" + +#: .././config.py:13473 +msgid "Comments:" +msgstr "" + +#: .././config.py:13514 +msgid "Show comment timestamps" +msgstr "" + +#: .././config.py:13524 +msgid "Show comment times as text" +msgstr "" + +#: .././config.py:13549 +msgid "Show unformatted list" +msgstr "" + +#: .././config.py:13559 +msgid "Show formatted list" +msgstr "" + +#: .././config.py:13580 +msgid "Update from the metadata file" +msgstr "" + +#: .././config.py:13596 +msgid "Clear comments (does not modify the file)" +msgstr "" + +#: .././config.py:13622 +msgid "Author" +msgstr "" + +#: .././config.py:13622 +msgid "Comment" +msgstr "" + +#: .././config.py:13622 +msgid "Likes" +msgstr "" + +#: .././config.py:13623 +msgid "Uploader" +msgstr "" + +#: .././config.py:13908 .././config.py:14898 msgid "Errors / Warnings" msgstr "" -#: .././config.py:13328 +#: .././config.py:13914 msgid "Error messages produced the last time this video was checked/downloaded" msgstr "" -#: .././config.py:13344 +#: .././config.py:13930 msgid "" "Warning messages produced the last time this video was checked/downloaded" msgstr "" -#: .././config.py:13754 +#: .././config.py:14357 msgid "Select the correct video/audio file" msgstr "" -#: .././config.py:13780 +#: .././config.py:14383 msgid "" "The replacement video/audio file must be in the same channel, playlist or " "folder" msgstr "" -#: .././config.py:13798 +#: .././config.py:14401 msgid "You must select a valid video/audio file" msgstr "" -#: .././config.py:13895 +#: .././config.py:14557 msgid "Channel properties" msgstr "" -#: .././config.py:13898 +#: .././config.py:14560 msgid "Playlist properties" msgstr "" -#: .././config.py:14040 +#: .././config.py:14698 msgid "Don't add videos in this channel to Tartube's database" msgstr "" -#: .././config.py:14044 +#: .././config.py:14702 msgid "Don't add videos in this playlist to Tartube's database" msgstr "" -#: .././config.py:14055 +#: .././config.py:14713 msgid "Always simulate download of videos in this channel" msgstr "" -#: .././config.py:14057 +#: .././config.py:14715 msgid "Always simulate download of videos in this playlist" msgstr "" -#: .././config.py:14067 +#: .././config.py:14725 msgid "Disable checking/downloading for this channel" msgstr "" -#: .././config.py:14069 +#: .././config.py:14727 msgid "Disable checking/downloading for this playlist" msgstr "" -#: .././config.py:14079 +#: .././config.py:14737 msgid "This channel is marked as a favourite" msgstr "" -#: .././config.py:14081 +#: .././config.py:14739 msgid "This playlist is marked as a favourite" msgstr "" -#: .././config.py:14091 +#: .././config.py:14749 msgid "Total videos" msgstr "" -#: .././config.py:14115 +#: .././config.py:14773 msgid "Favourite videos" msgstr "" -#: .././config.py:14127 +#: .././config.py:14785 msgid "Downloaded videos" msgstr "" -#: .././config.py:14149 .././config.py:14712 .././config.py:17649 +#: .././config.py:14807 .././config.py:15364 .././config.py:18386 msgid "_History" msgstr "" -#: .././config.py:14154 .././config.py:14717 .././config.py:17656 +#: .././config.py:14811 .././config.py:15368 .././config.py:18392 msgid "Download history" msgstr "" -#: .././config.py:14168 .././config.py:14731 .././config.py:17670 +#: .././config.py:14825 .././config.py:15382 .././config.py:18406 msgid "Draw" msgstr "" -#: .././config.py:14196 +#: .././config.py:14853 msgid "_RSS feed" msgstr "" -#: .././config.py:14199 +#: .././config.py:14856 msgid "RSS feed" msgstr "" -#: .././config.py:14205 +#: .././config.py:14862 msgid "" "If Tartube cannot detect the channel's RSS feed, you can enter the URL here" msgstr "" -#: .././config.py:14210 +#: .././config.py:14867 msgid "" "If Tartube cannot detect the playlist's RSS feed, you can enter the URL here" msgstr "" -#: .././config.py:14215 +#: .././config.py:14872 msgid "(The feed is used to detect livestreams on compatible websites)" msgstr "" -#: .././config.py:14247 +#: .././config.py:14904 msgid "" "Error messages produced the last time this channel was checked/downloaded" msgstr "" -#: .././config.py:14252 +#: .././config.py:14909 msgid "" "Error messages produced the last time this playlist was checked/downloaded" msgstr "" -#: .././config.py:14271 +#: .././config.py:14928 msgid "" "Warning messages produced the last time this channel was checked/downloaded" msgstr "" -#: .././config.py:14276 +#: .././config.py:14933 msgid "" "Warning messages produced the last time this playlist was checked/downloaded" msgstr "" -#: .././config.py:14343 +#: .././config.py:15000 msgid "Folder properties" msgstr "" -#: .././config.py:14482 +#: .././config.py:15135 msgid "Don't add videos to Tartube's database" msgstr "" -#: .././config.py:14489 +#: .././config.py:15142 msgid "Always simulate download of videos" msgstr "" -#: .././config.py:14496 +#: .././config.py:15149 msgid "Disable checking/downloading" msgstr "" -#: .././config.py:14503 +#: .././config.py:15156 msgid "This folder is marked as a favourite" msgstr "" -#: .././config.py:14510 +#: .././config.py:15163 msgid "This folder is hidden" msgstr "" -#: .././config.py:14517 +#: .././config.py:15170 msgid "This folder can't be deleted by the user" msgstr "" -#: .././config.py:14524 +#: .././config.py:15177 msgid "This is a system-controlled folder" msgstr "" -#: .././config.py:14531 +#: .././config.py:15184 msgid "All contents deleted when Tartube shuts down" msgstr "" -#: .././config.py:14538 +#: .././config.py:15191 msgid "Restrictions:" msgstr "" -#: .././config.py:14549 +#: .././config.py:15202 msgid "Can only contain videos" msgstr "" -#: .././config.py:14551 +#: .././config.py:15204 msgid "Can contain folders and videos" msgstr "" -#: .././config.py:14553 +#: .././config.py:15206 msgid "Can contain anything" msgstr "" -#: .././config.py:14563 .././config.py:17478 +#: .././config.py:15216 .././config.py:18211 msgid "_Statistics" msgstr "" -#: .././config.py:14568 .././config.py:17485 +#: .././config.py:15220 .././config.py:18217 msgid "Statistics" msgstr "" -#: .././config.py:14589 .././config.py:17506 +#: .././config.py:15241 .././config.py:18238 msgid "Downloaded" msgstr "" -#: .././config.py:14633 +#: .././config.py:15285 msgid "Sub-folders" msgstr "" -#: .././config.py:14655 +#: .././config.py:15307 msgid "Recalculate" msgstr "" -#: .././config.py:14759 +#: .././config.py:15410 msgid "_Recent Videos" msgstr "" -#: .././config.py:14764 .././formats.py:923 +#: .././config.py:15414 .././formats.py:932 msgid "Recent Videos" msgstr "" -#: .././config.py:14770 +#: .././config.py:15420 msgid "" "When videos are checked/downloaded, older videos are removed from this folder" msgstr "" -#: .././config.py:14941 +#: .././config.py:15591 msgid "Scheduled download" msgstr "" -#: .././config.py:15093 .././config.py:18731 +#: .././config.py:15742 .././config.py:19510 msgid "Scheduled download name" msgstr "" -#: .././config.py:15105 +#: .././config.py:15754 msgid "Download mode" msgstr "" -#: .././config.py:15110 +#: .././config.py:15759 msgid "Check channels, playlist and folders" msgstr "" -#: .././config.py:15111 +#: .././config.py:15760 msgid "Download channels, playlists and folders" msgstr "" -#: .././config.py:15112 +#: .././config.py:15761 msgid "Perform a custom download" msgstr "" -#: .././config.py:15124 +#: .././config.py:15773 msgid "Custom download name" msgstr "" -#: .././config.py:15163 .././config.py:18697 +#: .././config.py:15812 .././config.py:19476 msgid "Start mode" msgstr "" -#: .././config.py:15168 +#: .././config.py:15817 msgid "Perform this download at regular intervals" msgstr "" -#: .././config.py:15169 +#: .././config.py:15818 msgid "Perform this download when Tartube starts" msgstr "" -#: .././config.py:15170 +#: .././config.py:15819 msgid "Disable this scheduled download" msgstr "" -#: .././config.py:15182 +#: .././config.py:15831 msgid "Time between scheduled downloads" msgstr "" -#: .././config.py:15235 +#: .././config.py:15884 msgid "If another scheduled download is running:" msgstr "" -#: .././config.py:15242 +#: .././config.py:15891 msgid "Add channels, playlists and folders to the end of the queue" msgstr "" -#: .././config.py:15248 +#: .././config.py:15897 msgid "Add channels, playlists and folders to the beginning of the queue" msgstr "" -#: .././config.py:15255 +#: .././config.py:15904 msgid "Do nothing, just wait until the next scheduled download time" msgstr "" -#: .././config.py:15270 +#: .././config.py:15919 msgid "This scheduled download takes priority over others" msgstr "" -#: .././config.py:15273 +#: .././config.py:15922 msgid "Other scheduled downloads won't start until this one is finished" msgstr "" -#: .././config.py:15282 +#: .././config.py:15931 msgid "" "Ignore time-saving preferences, and check/download the whole channel/" "playlist/folder" msgstr "" -#: .././config.py:15290 +#: .././config.py:15939 msgid "Shut down Tartube when this scheduled download has finished" msgstr "" -#: .././config.py:15308 +#: .././config.py:15956 msgid "Media to download" msgstr "" -#: .././config.py:15314 +#: .././config.py:15962 msgid "Check/download everything" msgstr "" -#: .././config.py:15322 +#: .././config.py:15970 msgid "Only check/download the media below" msgstr "" -#: .././config.py:15336 +#: .././config.py:15984 msgid "" "Hint: you can drag and drop channels, playlists and your own folders here" msgstr "" -#: .././config.py:15442 .././config.py:19018 +#: .././config.py:16090 .././config.py:19807 msgid "_Limits" msgstr "" -#: .././config.py:15447 .././config.py:19026 +#: .././config.py:16094 .././config.py:19814 msgid "Performance limits" msgstr "" -#: .././config.py:15452 .././config.py:19031 +#: .././config.py:16099 .././config.py:19819 msgid "Limits are applied when you start downloading a video/channel/playlist" msgstr "" -#: .././config.py:15458 +#: .././config.py:16105 msgid "" "These limits override the default and alternative limits specified elsewhere" msgstr "" -#: .././config.py:15464 .././config.py:19037 .././config.py:19108 +#: .././config.py:16111 .././config.py:19825 .././config.py:19896 msgid "Limit simultaneous downloads to" msgstr "" -#: .././config.py:15479 .././config.py:19055 .././config.py:19130 +#: .././config.py:16126 .././config.py:19843 .././config.py:19918 msgid "Limit download speed to" msgstr "" -#: .././config.py:15814 +#: .././config.py:16461 msgid "System preferences" msgstr "" -#: .././config.py:16124 +#: .././config.py:16776 msgid "_Language" msgstr "" -#: .././config.py:16129 +#: .././config.py:16781 msgid "Language preferences" msgstr "" -#: .././config.py:16134 +#: .././config.py:16786 msgid "Language" msgstr "" -#: .././config.py:16170 +#: .././config.py:16827 msgid "_Stability" msgstr "" -#: .././config.py:16180 +#: .././config.py:16837 msgid "Gtk library" msgstr "" -#: .././config.py:16185 +#: .././config.py:16842 msgid "Current version of the system's Gtk library" msgstr "" -#: .././config.py:16200 +#: .././config.py:16857 msgid "Gtk stability" msgstr "" -#: .././config.py:16216 +#: .././config.py:16873 msgid "" "Tartube uses the Gtk graphics library. This library is notoriously " "unreliable and may even causes crashes." msgstr "" -#: .././config.py:16223 +#: .././config.py:16880 msgid "" "By default, some cosmetic features are disabled (for example, in the Videos " "tab, the list of videos is not updated until the end of a download " "operation)." msgstr "" -#: .././config.py:16231 +#: .././config.py:16888 msgid "" "If you think that your system Gtk has been fixed (or if you want to test Gtk " "stability), you can re-enable the cosmetic features." msgstr "" -#: .././config.py:16241 +#: .././config.py:16898 msgid "Disable some cosmetic features to prevent crashes and other issues" msgstr "" -#: .././config.py:16259 +#: .././config.py:16921 msgid "_Modules" msgstr "" -#: .././config.py:16264 +#: .././config.py:16926 msgid "Module availability" msgstr "" -#: .././config.py:16270 +#: .././config.py:16932 msgid "feedparser module is available (required for detecting livestreams)" msgstr "" -#: .././config.py:16279 +#: .././config.py:16941 msgid "matplotlib module is available (draws graphs)" msgstr "" -#: .././config.py:16287 +#: .././config.py:16949 msgid "moviepy module is available (finds the length of videos, if unknown)" msgstr "" -#: .././config.py:16297 +#: .././config.py:16959 msgid "playsound module is available (sound an alarm when a livestream starts)" msgstr "" -#: .././config.py:16307 +#: .././config.py:16969 msgid "" "XDG module is available (saves the config file in the standard location)" msgstr "" -#: .././config.py:16317 +#: .././config.py:16979 msgid "" "Notify module is available (shows desktop notifications; Linux/*BSD only)" msgstr "" -#: .././config.py:16327 +#: .././config.py:16989 msgid "Module preferences" msgstr "" -#: .././config.py:16333 +#: .././config.py:16995 msgid "" "Use 'moviepy' module to get a video's duration, if not known (may be slow)" msgstr "" -#: .././config.py:16345 +#: .././config.py:17007 msgid "Timeout applied when moviepy checks a video file" msgstr "" -#: .././config.py:16370 +#: .././config.py:17037 msgid "_Debugging" msgstr "" -#: .././config.py:16378 +#: .././config.py:17044 msgid "Debugging preferences" msgstr "" -#: .././config.py:16384 +#: .././config.py:17050 msgid "" "Debug messages are only visible in the terminal window (these settings are " "not saved)" msgstr "" -#: .././config.py:16391 +#: .././config.py:17057 msgid "Enable application debug messages (code in mainapp.py)" msgstr "" -#: .././config.py:16400 .././config.py:16420 +#: .././config.py:17066 .././config.py:17086 msgid "...but don't show timer debug messages" msgstr "" -#: .././config.py:16411 +#: .././config.py:17077 msgid "Enable main winddow debug messages (code in mainwin.py)" msgstr "" -#: .././config.py:16431 +#: .././config.py:17097 msgid "Enabled downloader debug messages (code in downloads.py)" msgstr "" -#: .././config.py:16474 +#: .././config.py:17140 msgid "" "Debugging messages are also visible if an empty file called debug.txt exists " "here:" msgstr "" -#: .././config.py:16522 +#: .././config.py:17193 msgid "_Device" msgstr "" -#: .././config.py:16527 +#: .././config.py:17198 msgid "Device preferences" msgstr "" -#: .././config.py:16532 +#: .././config.py:17203 msgid "Size of device (in Mb)" msgstr "" -#: .././config.py:16544 +#: .././config.py:17215 msgid "Free space on device (in Mb)" msgstr "" -#: .././config.py:16556 +#: .././config.py:17227 msgid "Warn user if disk space is less than" msgstr "" -#: .././config.py:16574 +#: .././config.py:17245 msgid "Halt downloads if disk space is less than" msgstr "" -#: .././config.py:16619 +#: .././config.py:17295 msgid "_Config" msgstr "" -#: .././config.py:16623 +#: .././config.py:17299 msgid "Configuration preferences" msgstr "" -#: .././config.py:16628 +#: .././config.py:17304 msgid "Tartube configuration file loaded from" msgstr "" -#: .././config.py:16640 +#: .././config.py:17316 msgid "Default location for Tartube configuration" msgstr "" -#: .././config.py:16652 +#: .././config.py:17328 msgid "Alternative location for Tartube configuration" msgstr "" -#: .././config.py:16671 +#: .././config.py:17352 msgid "D_atabase" msgstr "" -#: .././config.py:16677 +#: .././config.py:17357 msgid "Database preferences" msgstr "" -#: .././config.py:16682 +#: .././config.py:17362 msgid "Tartube data folder" msgstr "" -#: .././config.py:16694 +#: .././config.py:17374 msgid "Add new database" msgstr "" -#: .././config.py:16696 +#: .././config.py:17376 msgid "Change to a different data folder" msgstr "" -#: .././config.py:16703 +#: .././config.py:17383 msgid "Check and repair database" msgstr "" -#: .././config.py:16706 +#: .././config.py:17386 msgid "Check for inconsistencies, and repair them" msgstr "" -#: .././config.py:16711 +#: .././config.py:17391 msgid "Recent data folders" msgstr "" -#: .././config.py:16725 +#: .././config.py:17405 msgid "Switch to the selected data folder" msgstr "" -#: .././config.py:16735 +#: .././config.py:17415 msgid "Forget" msgstr "" -#: .././config.py:16738 +#: .././config.py:17418 msgid "Remove the selected data folder from the list" msgstr "" -#: .././config.py:16747 +#: .././config.py:17427 msgid "Forget all" msgstr "" -#: .././config.py:16750 +#: .././config.py:17430 msgid "Forget every folder in this list (except the current one)" msgstr "" -#: .././config.py:16763 +#: .././config.py:17443 msgid "Move the selected folder up the list" msgstr "" -#: .././config.py:16771 +#: .././config.py:17451 msgid "Move the selected folder down the list" msgstr "" -#: .././config.py:16799 +#: .././config.py:17478 msgid "" "On startup, load the first database on the list (not the most recently-use " "one)" msgstr "" -#: .././config.py:16809 +#: .././config.py:17488 msgid "If one database is in use, try to load others" msgstr "" -#: .././config.py:16817 +#: .././config.py:17496 msgid "Add new data directories to this list" msgstr "" -#: .././config.py:16856 +#: .././config.py:17540 msgid "_Backups" msgstr "" -#: .././config.py:16862 +#: .././config.py:17545 msgid "Backup preferences" msgstr "" -#: .././config.py:16867 +#: .././config.py:17550 msgid "" "When saving a database file, Tartube makes a backup copy of it (in case " "something goes wrong)" msgstr "" -#: .././config.py:16876 +#: .././config.py:17559 msgid "Delete the backup file as soon as the save procedure is finished" msgstr "" -#: .././config.py:16886 +#: .././config.py:17569 msgid "Keep the backup file, replacing any previous backup file" msgstr "" -#: .././config.py:16897 +#: .././config.py:17580 msgid "" "Make a new backup file once per day, after the day's first save procedure" msgstr "" -#: .././config.py:16908 +#: .././config.py:17591 msgid "Make a new backup file for every save procedure" msgstr "" -#: .././config.py:16942 +#: .././config.py:17625 msgid "Export preferences" msgstr "" -#: .././config.py:16947 +#: .././config.py:17630 msgid "Separator used in CSV exports" msgstr "" -#: .././config.py:16985 +#: .././config.py:17672 msgid "Automatic video deletion preferences" msgstr "" -#: .././config.py:16990 +#: .././config.py:17677 msgid "Automatically delete downloaded videos after this many days" msgstr "" -#: .././config.py:17004 +#: .././config.py:17691 msgid "...but only delete videos which have been watched" msgstr "" -#: .././config.py:17028 +#: .././config.py:17715 msgid "Video matching preferences" msgstr "" -#: .././config.py:17033 +#: .././config.py:17720 msgid "When matching videos on the filesystem:" msgstr "" -#: .././config.py:17039 +#: .././config.py:17726 msgid "The video names must match exactly" msgstr "" -#: .././config.py:17046 +#: .././config.py:17733 msgid "The first # characters must match exactly" msgstr "" -#: .././config.py:17060 +#: .././config.py:17747 msgid "Ignore the last # characters; the remaining name must match exactly" msgstr "" -#: .././config.py:17114 +#: .././config.py:17805 msgid "Update video descriptions" msgstr "" -#: .././config.py:17121 +#: .././config.py:17812 msgid "These procedures might take a long time on a large database" msgstr "" -#: .././config.py:17128 +#: .././config.py:17819 msgid "Update from description files, and set the line lengths to:" msgstr "" -#: .././config.py:17147 +#: .././config.py:17838 msgid "Clear descriptions (does not modify the description files)" msgstr "" -#: .././config.py:17171 +#: .././config.py:17861 msgid "Video timestamps" msgstr "" -#: .././config.py:17175 +#: .././config.py:17865 msgid "Extract timestamps for all videos" msgstr "" -#: .././config.py:17183 +#: .././config.py:17873 msgid "Remove timestamps from all videos" msgstr "" -#: .././config.py:17200 +#: .././config.py:17883 +msgid "Video comments" +msgstr "" + +#: .././config.py:17887 +msgid "Extract comments for all videos" +msgstr "" + +#: .././config.py:17895 +msgid "Remove comments from all videos" +msgstr "" + +#: .././config.py:17905 +msgid "" +"Comments are extracted from each video's metadata file, so this procedure " +"may take a long time" +msgstr "" + +#: .././config.py:17925 msgid "_URLs" msgstr "" -#: .././config.py:17208 +#: .././config.py:17932 msgid "Update channel/playlist URLs" msgstr "" -#: .././config.py:17213 +#: .././config.py:17937 msgid "Confirm every change" msgstr "" -#: .././config.py:17292 +#: .././config.py:18016 msgid "Pattern" msgstr "" -#: .././config.py:17315 +#: .././config.py:18039 msgid "Substitution" msgstr "" -#: .././config.py:17331 +#: .././config.py:18054 msgid "Search and replace text in the selected URLs" msgstr "" -#: .././config.py:17430 +#: .././config.py:18158 msgid "Temporary folder preferences" msgstr "" -#: .././config.py:17435 +#: .././config.py:18163 msgid "Empty temporary folders when Tartube shuts down" msgstr "" -#: .././config.py:17444 +#: .././config.py:18172 msgid "(N.B. Temporary folders are always emptied when Tartube starts up)" msgstr "" -#: .././config.py:17452 +#: .././config.py:18180 msgid "Open temporary folders (on the desktop) when Tartube shuts down" msgstr "" -#: .././config.py:17490 +#: .././config.py:18222 msgid "The Tartube database contains:" msgstr "" -#: .././config.py:17550 +#: .././config.py:18282 msgid "Custom folders" msgstr "" -#: .././config.py:17573 +#: .././config.py:18305 msgid "Calculate" msgstr "" #. Add this tab... -#: .././config.py:17699 +#: .././config.py:18435 msgid "_Windows" msgstr "" -#: .././config.py:17723 +#: .././config.py:18464 msgid "_Main window" msgstr "" -#: .././config.py:17731 +#: .././config.py:18471 msgid "Main window preferences" msgstr "" -#: .././config.py:17736 -msgid "Remember the size of the main window when shutting down" +#: .././config.py:18476 +msgid "Remember size of the main window" msgstr "" -#. (Signal connect appears below) -#: .././config.py:17743 -msgid "Reset size" +#: .././config.py:18484 +msgid "Remember slider positions" msgstr "" -#: .././config.py:17752 -msgid "Also remember the position of main window sliders" +#: .././config.py:18493 +msgid "Reset both" msgstr "" -#: .././config.py:17769 +#: .././config.py:18509 msgid "Don't show the main window toolbar" msgstr "" -#: .././config.py:17777 +#: .././config.py:18517 msgid "Don't show labels in the main window toolbar" msgstr "" -#: .././config.py:17795 +#: .././config.py:18535 msgid "" "Replace stock icons with custom icons (in case stock icons are not visible)" msgstr "" -#: .././config.py:17805 +#: .././config.py:18545 msgid "Show tooltips for videos, channels, playlists and folders" msgstr "" -#: .././config.py:17813 +#: .././config.py:18553 msgid "Show errors/warnings in tooltips (but not in the Videos tab)" msgstr "" -#: .././config.py:17831 -msgid "Disable the download buttons in the toolbar and the Videos Tab" +#: .././config.py:18571 +msgid "Disable the download buttons in the toolbar and the Videos tab" msgstr "" -#: .././config.py:17841 -msgid "Show a 'Custom download all' button in the Videos Tab" +#: .././config.py:18581 +msgid "Show a 'Custom download all' button in the Videos tab" msgstr "" -#: .././config.py:17851 -msgid "In the Progress Tab, hide finished videos / channels / playlists" +#: .././config.py:18591 +msgid "In the Progress tab, hide finished downloads" msgstr "" -#: .././config.py:17860 -msgid "In the Progress Tab, show results in reverse order" +#: .././config.py:18600 +msgid "Show downloads in reverse order" msgstr "" -#: .././config.py:17868 +#: .././config.py:18608 msgid "When Tartube starts, automatically open the Classic Mode tab" msgstr "" -#: .././config.py:17882 +#: .././config.py:18622 msgid "" -"In the Classic Mode Tab, when adding URLs, remove duplicates rather than " +"In the Classic Mode tab, when adding URLs, remove duplicates rather than " "retaining them" msgstr "" -#: .././config.py:17896 -msgid "In the Errors/Warnings Tab, don't reset the tab text when it is clicked" +#: .././config.py:18636 +msgid "In the Errors/Warnings tab, don't reset the tab text when it is clicked" msgstr "" -#: .././config.py:17919 -msgid "Video Index (left side of the Videos Tab)" +#: .././config.py:18663 +msgid "Video Index (left side of the Videos tab)" msgstr "" -#: .././config.py:17925 +#: .././config.py:18669 msgid "Show smaller icons in the Video Index" msgstr "" -#: .././config.py:17935 +#: .././config.py:18679 msgid "" "In the Video Index, show detailed statistics about the videos in each " "channel / playlist / folder" msgstr "" -#: .././config.py:17946 +#: .././config.py:18690 msgid "" "After clicking on a folder, automatically expand/collapse the tree around it" msgstr "" -#: .././config.py:17957 +#: .././config.py:18701 msgid "Expand the whole tree, not just the level beneath the clicked folder" msgstr "" -#: .././config.py:17978 -msgid "Video Catalogue (right side of the Videos Tab)" +#: .././config.py:18722 +msgid "Video Catalogue (right side of the Videos tab)" msgstr "" -#: .././config.py:17985 +#: .././config.py:18729 msgid "Show 'today' and 'yesterday' as the date, when possible" msgstr "" -#: .././config.py:17995 +#: .././config.py:18739 msgid "Draw a frame around each video" msgstr "" -#: .././config.py:18005 +#: .././config.py:18749 msgid "Draw status icons for each video" msgstr "" -#: .././config.py:18014 +#: .././config.py:18762 msgid "Thumbnail size (when videos are displayed on a grid)" msgstr "" -#: .././config.py:18042 +#: .././config.py:18790 msgid "Show livestreams with a different background colour" msgstr "" -#: .././config.py:18050 +#: .././config.py:18798 msgid "Use same background colours for livestream and debut videos" msgstr "" -#: .././config.py:18072 +#: .././config.py:18820 msgid "Channel and playlist names are clickable (grid mode only)" msgstr "" -#: .././config.py:18088 +#: .././config.py:18841 msgid "_Drag" msgstr "" -#: .././config.py:18092 +#: .././config.py:18845 msgid "Drag and drop preferences" msgstr "" -#: .././config.py:18098 +#: .././config.py:18851 msgid "When dragging and dropping videos to an external application..." msgstr "" -#: .././config.py:18104 +#: .././config.py:18857 msgid "Transfer the video's full file path" msgstr "" -#: .././config.py:18112 +#: .././config.py:18865 msgid "Transfer the video's source URL" msgstr "" -#: .././config.py:18120 +#: .././config.py:18873 msgid "Transfer the video's name" msgstr "" -#: .././config.py:18128 +#: .././config.py:18881 msgid "Transfer the thumbnail's full file path" msgstr "" -#: .././config.py:18144 +#: .././config.py:18902 msgid "_Tray" msgstr "" -#: .././config.py:18150 +#: .././config.py:18908 msgid "System tray preferences" msgstr "" -#: .././config.py:18155 +#: .././config.py:18913 msgid "Show icon in system tray" msgstr "" -#: .././config.py:18164 +#: .././config.py:18922 msgid "Close to the tray, rather than closing the application" msgstr "" -#: .././config.py:18176 +#: .././config.py:18934 msgid "" "After closing to the tray, restore the window's position (does not work on " "Wayland)" msgstr "" -#: .././config.py:18212 +#: .././config.py:18975 msgid "D_ialogues" msgstr "" -#: .././config.py:18218 +#: .././config.py:18981 msgid "Dialogue window preferences" msgstr "" -#: .././config.py:18223 +#: .././config.py:18986 msgid "When adding channels/playlists, keep the dialogue window open" msgstr "" -#: .././config.py:18233 +#: .././config.py:18996 msgid "When the dialogue window opens, add URLs from the system clipboard" msgstr "" -#: .././config.py:18254 +#: .././config.py:19017 msgid "When adding YouTube channels, remind the user to copy the correct URL" msgstr "" -#: .././config.py:18273 +#: .././config.py:19041 msgid "_Colours" msgstr "" -#: .././config.py:18281 +#: .././config.py:19048 msgid "Video Catalogue Colour preferences" msgstr "" -#: .././config.py:18289 +#: .././config.py:19056 msgid "Waiting livestreams" msgstr "" -#: .././config.py:18295 +#: .././config.py:19062 msgid "Broadcasting livestreams" msgstr "" -#: .././config.py:18301 +#: .././config.py:19068 msgid "Waiting debut videos" msgstr "" -#: .././config.py:18307 +#: .././config.py:19074 msgid "Broadcasting debut videos" msgstr "" -#: .././config.py:18313 +#: .././config.py:19080 msgid "Selected videos" msgstr "" -#: .././config.py:18319 +#: .././config.py:19086 msgid "Selected waiting videos" msgstr "" -#: .././config.py:18325 +#: .././config.py:19092 msgid "Selected broadcasting videos" msgstr "" -#: .././config.py:18356 +#: .././config.py:19123 msgid "Custom colour:" msgstr "" -#: .././config.py:18379 +#: .././config.py:19146 msgid "Default colour:" msgstr "" -#: .././config.py:18411 +#: .././config.py:19183 msgid "_Errors/Warnings" msgstr "" -#: .././config.py:18419 +#: .././config.py:19190 msgid "Errors/Warnings tab preferences" msgstr "" -#: .././config.py:18424 +#: .././config.py:19195 msgid "Show Tartube error messages" msgstr "" -#: .././config.py:18432 +#: .././config.py:19203 msgid "Show Tartube warning messages" msgstr "" -#: .././config.py:18440 +#: .././config.py:19211 msgid "Show server error messages" msgstr "" -#: .././config.py:18451 +#: .././config.py:19222 msgid "Show server warning messages" msgstr "" -#: .././config.py:18462 +#: .././config.py:19233 msgid "Show dates of all messages" msgstr "" -#: .././config.py:18474 +#: .././config.py:19245 msgid "Downloader error/warning preferences" msgstr "" -#: .././config.py:18479 +#: .././config.py:19250 msgid "TRANSLATOR'S NOTE: These error messages are always in English" msgstr "" -#: .././config.py:18483 +#: .././config.py:19254 msgid "Ignore 'Child process exited with non-zero code' errors" msgstr "" -#: .././config.py:18492 +#: .././config.py:19263 msgid "" "Ignore 'Unable to download video data' and 'Unable to extract video data' " "errors" msgstr "" -#: .././config.py:18502 +#: .././config.py:19273 msgid "Ignore 'Did not get any data blocks' errors" msgstr "" -#: .././config.py:18511 +#: .././config.py:19282 msgid "Ignore 'Requested formats are incompatible for merge' warnings" msgstr "" -#: .././config.py:18520 +#: .././config.py:19291 msgid "Ignore 'No video formats found' errors" msgstr "" -#: .././config.py:18528 +#: .././config.py:19299 msgid "Ignore 'There are no annotations to write' warnings" msgstr "" -#: .././config.py:18536 +#: .././config.py:19307 msgid "Ignore 'Video doesn't have subtitles' warnings" msgstr "" -#: .././config.py:18552 +#: .././config.py:19328 msgid "_Websites" msgstr "" -#: .././config.py:18560 +#: .././config.py:19335 msgid "YouTube error/warning preferences" msgstr "" -#: .././config.py:18565 +#: .././config.py:19340 msgid "Ignore YouTube copyright errors" msgstr "" -#: .././config.py:18573 +#: .././config.py:19348 msgid "Ignore YouTube age-restriction errors" msgstr "" -#: .././config.py:18581 +#: .././config.py:19356 msgid "Ignore YouTube deletion by uploader errors" msgstr "" -#: .././config.py:18589 +#: .././config.py:19364 msgid "Ignore YouTube payment errors" msgstr "" -#: .././config.py:18598 +#: .././config.py:19373 msgid "General preferences" msgstr "" -#: .././config.py:18604 +#: .././config.py:19379 msgid "" "Ignore any errors/warnings which match lines in this list (applies to all " "websites)" msgstr "" -#: .././config.py:18618 +#: .././config.py:19393 msgid "These are ordinary strings" msgstr "" -#: .././config.py:18625 +#: .././config.py:19400 msgid "These are regular expressions (regexes)" msgstr "" #. Add this tab... -#: .././config.py:18654 +#: .././config.py:19429 msgid "_Scheduling" msgstr "" -#: .././config.py:18671 +#: .././config.py:19451 msgid "_Start" msgstr "" -#: .././config.py:18677 +#: .././config.py:19456 msgid "Scheduled download preferences" msgstr "" -#: .././config.py:18698 +#: .././config.py:19477 msgid "Priority" msgstr "" -#: .././config.py:18698 +#: .././config.py:19477 msgid "Whole" msgstr "" -#: .././config.py:18698 +#: .././config.py:19477 msgid "Shutdown" msgstr "" -#: .././config.py:18698 +#: .././config.py:19477 msgid "D/L All" msgstr "" -#: .././config.py:18699 +#: .././config.py:19478 msgid "Join mode" msgstr "" -#: .././config.py:18753 .././config.py:19589 .././config.py:21226 -#: .././config.py:21491 +#: .././config.py:19532 .././config.py:20388 .././config.py:22142 +#: .././config.py:22415 msgid "Edit" msgstr "" -#: .././config.py:18825 .././formats.py:1006 +#: .././config.py:19604 .././formats.py:1015 msgid "Custom" msgstr "" -#: .././config.py:18847 +#: .././config.py:19631 msgid "S_top" msgstr "" -#: .././config.py:18853 +#: .././config.py:19636 msgid "Scheduled stop preferences" msgstr "" -#: .././config.py:18858 +#: .././config.py:19641 msgid "Stop all download operations after this much time" msgstr "" -#: .././config.py:18906 +#: .././config.py:19689 msgid "Stop all download operations after this many videos" msgstr "" -#: .././config.py:18933 +#: .././config.py:19716 msgid "Stop all download operations after this much disk space" msgstr "" -#: .././config.py:18976 +#: .././config.py:19759 msgid "" "N.B. Disk space is estimated. This setting does not apply to simulated " "downloads" msgstr "" -#: .././config.py:19081 +#: .././config.py:19869 msgid "Overriding video format options, limit video resolution to" msgstr "" -#: .././config.py:19103 +#: .././config.py:19891 msgid "Alternative performance limits" msgstr "" -#: .././config.py:19162 +#: .././config.py:19949 msgid "Alternative limits apply between" msgstr "" -#: .././config.py:19202 +#: .././config.py:19989 msgid "and" msgstr "" -#: .././config.py:19230 +#: .././config.py:20017 msgid "On days" msgstr "" -#: .././config.py:19258 +#: .././config.py:20050 msgid "_Stop" msgstr "" -#: .././config.py:19266 +#: .././config.py:20057 msgid "Time-saving settings" msgstr "" -#: .././config.py:19272 +#: .././config.py:20063 msgid "" "Stop checking/downloading a channel/playlist when it starts sending videos " "you already have" msgstr "" -#: .././config.py:19283 +#: .././config.py:20074 msgid "Stop after this many videos (when checking)" msgstr "" -#: .././config.py:19298 +#: .././config.py:20089 msgid "Stop after this many videos (when downloading)" msgstr "" -#: .././config.py:19337 +#: .././config.py:20132 msgid "Download operation preferences" msgstr "" -#: .././config.py:19343 +#: .././config.py:20138 msgid "Automatically update downloader before every download operation" msgstr "" -#: .././config.py:19355 +#: .././config.py:20150 msgid "Automatically save files at the end of all operations" msgstr "" -#: .././config.py:19365 +#: .././config.py:20160 msgid "For simulated downloads, don't check a video in a folder more than once" msgstr "" -#: .././config.py:19376 +#: .././config.py:20171 msgid "If a download stalls, restart it after this many minutes" msgstr "" -#: .././config.py:19397 +#: .././config.py:20192 msgid "If a network problem is detected, restart the download immediately" msgstr "" -#: .././config.py:19409 +#: .././config.py:20204 msgid "Maximum restarts after a stalled download (0 for no maximum)" msgstr "" -#: .././config.py:19450 +#: .././config.py:20245 msgid "" "Allow downloader to create its own archive file (so deleted videos are not " "re-downloaded)" msgstr "" -#: .././config.py:19461 +#: .././config.py:20256 msgid "" "Also create an archive file when downloading from the Classic Mode tab (not " "recommended)" msgstr "" -#: .././config.py:19472 +#: .././config.py:20267 msgid "When checking videos, apply a 60-second timeout" msgstr "" -#: .././config.py:19482 +#: .././config.py:20277 msgid "" "Convert .webp thumbnails into .jpg thumbnails (using FFmpeg) after " "downloading them" msgstr "" -#: .././config.py:19499 +#: .././config.py:20299 msgid "_Custom" msgstr "" -#: .././config.py:19504 +#: .././config.py:20304 msgid "Custom downloads" msgstr "" -#: .././config.py:19525 .././config.py:21160 +#: .././config.py:20325 .././config.py:22077 msgid "Classic Mode" msgstr "" -#: .././config.py:19598 .././config.py:21235 .././config.py:21500 +#: .././config.py:20397 .././config.py:22151 .././config.py:22424 msgid "Export" msgstr "" -#: .././config.py:19607 .././config.py:21244 .././config.py:21509 +#: .././config.py:20406 .././config.py:22160 .././config.py:22433 msgid "Clone" msgstr "" -#: .././config.py:19616 .././config.py:21253 +#: .././config.py:20415 .././config.py:22169 msgid "Use in Classic Mode tab" msgstr "" -#: .././config.py:19722 +#: .././config.py:20518 +msgid "L_ivestreams" +msgstr "" + +#: .././config.py:20526 +msgid "Livestream preferences (compatible websites only)" +msgstr "" + +#: .././config.py:20532 +msgid "Detect livestreams announced within this many days" +msgstr "" + +#: .././config.py:20547 +msgid "How often to check the status of livestreams (in minutes)" +msgstr "" + +#: .././config.py:20566 +msgid "Check more frequently when a livestream is due to start" +msgstr "" + +#: .././config.py:20609 +msgid "Broadcast preferences (compatible websites only)" +msgstr "" + +#: .././config.py:20616 +msgid "" +"Use Youtube Stream Capture to download broadcasting livestreams (requires " +"aria2)" +msgstr "" + +#: .././config.py:20626 +msgid "Timeout after this many minutes of inactivity" +msgstr "" + +#: .././config.py:20640 +msgid "Number of restarts after a timeout" +msgstr "" + +#: .././config.py:20655 +msgid "" +"Bypass usual limits on simultaneous downloads, so that all broadcasts can be " +"downloaded" +msgstr "" + +#: .././config.py:20708 msgid "Video Clips (requires FFmpeg)" msgstr "" -#: .././config.py:19728 +#: .././config.py:20714 msgid "" "When a video is checked/downloaded, automatically extract timestamps from " "its metadata file" msgstr "" -#: .././config.py:19739 +#: .././config.py:20725 msgid "" "When a video is checked/downloaded, automatically extract timestamps from " "its description" msgstr "" -#: .././config.py:19749 +#: .././config.py:20735 msgid "If timestamps have already been extracted, replace them" msgstr "" -#: .././config.py:19761 +#: .././config.py:20747 msgid "" "If no timestamps have been extracted, try again before splitting a video" msgstr "" -#: .././config.py:19774 +#: .././config.py:20760 msgid "Format of video clip filenames" msgstr "" -#: .././config.py:19779 +#: .././config.py:20765 msgid "Number" msgstr "" -#: .././config.py:19780 +#: .././config.py:20766 msgid "Clip Title" msgstr "" -#: .././config.py:19781 +#: .././config.py:20767 msgid "Number + Clip Title" msgstr "" -#: .././config.py:19782 +#: .././config.py:20768 msgid "Clip Title + Number" msgstr "" -#: .././config.py:19783 +#: .././config.py:20769 msgid "Original Title" msgstr "" -#: .././config.py:19784 +#: .././config.py:20770 msgid "Original Title + Number" msgstr "" -#: .././config.py:19785 +#: .././config.py:20771 msgid "Original Title + Clip Title" msgstr "" -#: .././config.py:19786 +#: .././config.py:20772 msgid "Original Title + Number + Clip Title" msgstr "" -#: .././config.py:19787 +#: .././config.py:20773 msgid "Original Title + Clip Title + Number" msgstr "" -#: .././config.py:19814 +#: .././config.py:20800 msgid "Generic title for video clips" msgstr "" -#: .././config.py:19831 +#: .././config.py:20817 msgid "Move clips to the Video Clips folder" msgstr "" -#: .././config.py:19838 +#: .././config.py:20824 msgid "Keep clips with their original video" msgstr "" -#: .././config.py:19851 +#: .././config.py:20837 msgid "...but place new files inside a sub-directory" msgstr "" -#: .././config.py:19862 +#: .././config.py:20848 msgid "Add new files to Tartube's database" msgstr "" -#: .././config.py:19873 +#: .././config.py:20859 msgid "Use the original video's thumbnail" msgstr "" -#: .././config.py:19881 +#: .././config.py:20867 msgid "After splitting a video, open the destination folder" msgstr "" -#: .././config.py:19883 +#: .././config.py:20869 msgid "After splitting a video, open the destination directory" msgstr "" -#: .././config.py:19895 +#: .././config.py:20881 msgid "" "After splitting a video, delete the original (ignored for videos in channels/" "playlists)" msgstr "" -#: .././config.py:19921 +#: .././config.py:20911 msgid "Video Slices (requires FFmpeg)" msgstr "" -#: .././config.py:19927 +#: .././config.py:20917 msgid "" "While checking/downloading videos, check each video against the SponsorBlock " "server" msgstr "" -#: .././config.py:19938 +#: .././config.py:20928 msgid "When contacting the server, obfuscate each video's ID (recommended)" msgstr "" -#: .././config.py:19952 +#: .././config.py:20942 msgid "If slices have already been extracted, replace the old list" msgstr "" -#: .././config.py:19965 +#: .././config.py:20955 msgid "" "If slices have been extracted, contact the server again before removing more " "slices from the video" msgstr "" -#: .././config.py:19979 +#: .././config.py:20969 msgid "" "After removing slices from a video, reset all timestamp and slice data " "(recommended)" msgstr "" -#: .././config.py:20000 -msgid "L_ivestreams" +#: .././config.py:21002 +msgid "Video Comments (requires yt-dlp)" msgstr "" -#: .././config.py:20009 -msgid "Livestream preferences (compatible websites only)" +#: .././config.py:21008 +msgid "When checking/downloading videos, store comments in the metadata file" msgstr "" -#: .././config.py:20015 -msgid "Detect livestreams announced within this many days" -msgstr "" - -#: .././config.py:20030 -msgid "How often to check the status of livestreams (in minutes)" -msgstr "" - -#: .././config.py:20049 -msgid "Check more frequently when a livestream is due to start" -msgstr "" - -#: .././config.py:20092 -msgid "Broadcast preferences (compatible websites only)" -msgstr "" - -#: .././config.py:20099 +#: .././config.py:21018 msgid "" -"Use Youtube Stream Capture to download broadcasting livestreams (requires " -"aria2)" -msgstr "" - -#: .././config.py:20109 -msgid "Timeout after this many minutes of inactivity" +"Warning: fetching comments will increase the download time, perhaps by a lot!" msgstr "" -#: .././config.py:20123 -msgid "Number of restarts after a timeout" +#: .././config.py:21024 +msgid "Also store comments in the Tartube database" msgstr "" -#: .././config.py:20138 +#: .././config.py:21041 msgid "" -"Bypass usual limits on simultaneous downloads, so that all broadcasts can be " -"downloaded" +"Warning: storing comments will increase the size of Tartube's datbase, " +"perhaps by a lot!" msgstr "" -#: .././config.py:20179 +#: .././config.py:21061 msgid "_Actions" msgstr "" -#: .././config.py:20188 +#: .././config.py:21069 msgid "Livestream actions (can be toggled for individual videos)" msgstr "" -#: .././config.py:20195 +#: .././config.py:21076 msgid "(currently disabled on MS Windows)" msgstr "" -#: .././config.py:20200 +#: .././config.py:21081 msgid "When a livestream starts, show a desktop notification" msgstr "" -#: .././config.py:20214 +#: .././config.py:21095 msgid "When a livestream starts, sound an alarm" msgstr "" -#: .././config.py:20237 +#: .././config.py:21118 msgid "Plays the selected sound effect" msgstr "" -#: .././config.py:20244 +#: .././config.py:21125 msgid "When a livestream starts, open it in the system's web browser" msgstr "" -#: .././config.py:20256 +#: .././config.py:21137 msgid "When a livestream starts, begin downloading it immediately" msgstr "" -#: .././config.py:20282 +#: .././config.py:21163 msgid "Desktop notification preferences" msgstr "" -#: .././config.py:20288 +#: .././config.py:21169 msgid "Show a dialogue window at the end of an operation" msgstr "" -#: .././config.py:20311 +#: .././config.py:21192 msgid "Don't notify the user at the end of an operation" msgstr "" -#: .././config.py:20344 +#: .././config.py:21230 msgid "_Mirrors" msgstr "" -#: .././config.py:20352 +#: .././config.py:21237 msgid "Invidious mirror" msgstr "" -#: .././config.py:20358 +#: .././config.py:21243 msgid "To find an updated list of Invidious mirrors, use any search engine!" msgstr "" -#: .././config.py:20373 +#: .././config.py:21258 msgid "Use the default Invidious mirror" msgstr "" -#: .././config.py:20388 +#: .././config.py:21273 msgid "SponsorBlock API mirror" msgstr "" -#: .././config.py:20401 +#: .././config.py:21286 msgid "Use the default SponsorBlock URL" msgstr "" -#: .././config.py:20413 +#: .././config.py:21303 msgid "_Proxies" msgstr "" -#: .././config.py:20419 +#: .././config.py:21309 msgid "Proxies" msgstr "" -#: .././config.py:20426 +#: .././config.py:21316 msgid "" "During a download operation, Tartube will cycle betwween the proxies in this " "list" msgstr "" -#: .././config.py:20447 +#: .././config.py:21342 msgid "P_references" msgstr "" -#: .././config.py:20455 +#: .././config.py:21349 msgid "URL flexibility preferences" msgstr "" -#: .././config.py:20462 +#: .././config.py:21356 msgid "" "If a video's URL represents a channel/playlist, not a video, don't download " "it" msgstr "" -#: .././config.py:20471 +#: .././config.py:21365 msgid "...or, download multiple videos into the containing folder" msgstr "" -#: .././config.py:20481 +#: .././config.py:21375 msgid "...or, create a new channel, and download the videos into that" msgstr "" -#: .././config.py:20492 +#: .././config.py:21386 msgid "...or, create a new playlist, and download the videos into that" msgstr "" -#: .././config.py:20524 +#: .././config.py:21418 msgid "Missing video preferences" msgstr "" -#: .././config.py:20530 +#: .././config.py:21424 msgid "" "Add videos which have been removed from a channel/playlist to the Missing " "Videos folder" msgstr "" -#: .././config.py:20541 +#: .././config.py:21435 msgid "Only add videos that were uploaded within this many days" msgstr "" -#: .././config.py:20610 +#: .././config.py:21509 msgid "_Forks" msgstr "" -#: .././config.py:20616 +#: .././config.py:21515 msgid "Forks of youtube-dl" msgstr "" -#: .././config.py:20645 +#: .././config.py:21544 msgid "Use yt-dlp" msgstr "" -#: .././config.py:20651 +#: .././config.py:21550 msgid "Install without dependencies" msgstr "" -#: .././config.py:20652 +#: .././config.py:21551 msgid "(recommended on MS Windows)" msgstr "" -#: .././config.py:20683 +#: .././config.py:21582 msgid "Use youtube-dl" msgstr "" -#: .././config.py:20704 +#: .././config.py:21603 msgid "Other forks" msgstr "" -#: .././config.py:20712 +#: .././config.py:21611 msgid "Use this fork:" msgstr "" -#: .././config.py:20792 +#: .././config.py:21691 msgid "When using other downloaders, filter out yt-dlp download options" msgstr "" -#: .././config.py:20809 +#: .././config.py:21713 msgid "_File paths" msgstr "" -#: .././config.py:20816 +#: .././config.py:21720 msgid "Downloader file paths" msgstr "" -#: .././config.py:20822 +#: .././config.py:21726 msgid "Path to the executable" msgstr "" #. (Signal connect appears below) -#: .././config.py:20828 .././config.py:20976 .././config.py:21017 -#: .././config.py:21087 .././config.py:28160 +#: .././config.py:21732 .././config.py:21884 .././config.py:21925 +#: .././config.py:21999 .././config.py:29260 msgid "Use default path" msgstr "" -#: .././config.py:20833 .././config.py:28172 +#: .././config.py:21737 .././config.py:29272 msgid "Use local path" msgstr "" -#: .././config.py:20837 +#: .././config.py:21741 msgid "Use custom path" msgstr "" -#: .././config.py:20845 .././config.py:28186 +#: .././config.py:21749 .././config.py:29286 msgid "Use PyPI path" msgstr "" -#: .././config.py:20896 +#: .././config.py:21800 msgid "Command for update operations" msgstr "" -#: .././config.py:20944 +#: .././config.py:21853 msgid "_FFmpeg / AVConv" msgstr "" -#: .././config.py:20952 +#: .././config.py:21860 msgid "Post-processing file paths" msgstr "" -#: .././config.py:20957 +#: .././config.py:21865 msgid "" "You only need to set these paths if Tartube cannot find FFmpeg / AVConv " "automatically" msgstr "" -#: .././config.py:20964 +#: .././config.py:21872 msgid "Path to the FFmpeg executable" msgstr "" -#: .././config.py:20991 +#: .././config.py:21899 msgid "Install from main menu" msgstr "" -#: .././config.py:21005 +#: .././config.py:21913 msgid "Path to the AVConv executable" msgstr "" -#: .././config.py:21032 +#: .././config.py:21940 msgid "Not supported on MS Windows" msgstr "" -#: .././config.py:21055 +#: .././config.py:21968 msgid "_Stream Capture" msgstr "" -#: .././config.py:21063 +#: .././config.py:21975 msgid "Youtube Stream Capture file path" msgstr "" -#: .././config.py:21068 +#: .././config.py:21980 msgid "" "Tartube includes a copy of this script, but you can use a different copy, if " "you want" msgstr "" -#: .././config.py:21075 +#: .././config.py:21987 msgid "Path to the YT Stream Capture executable" msgstr "" -#: .././config.py:21133 +#: .././config.py:22050 msgid "_Download options" msgstr "" -#: .././config.py:21140 +#: .././config.py:22057 msgid "List of download options managers" msgstr "" -#: .././config.py:21161 +#: .././config.py:22078 msgid "Applied to media" msgstr "" -#: .././config.py:21359 +#: .././config.py:22279 msgid "_Preferences" msgstr "" -#: .././config.py:21366 +#: .././config.py:22286 msgid "Download options preferences" msgstr "" -#: .././config.py:21372 +#: .././config.py:22292 msgid "" "When applying download options to something, clone the general download " "options" msgstr "" -#: .././config.py:21383 +#: .././config.py:22303 msgid "After downloading a video, destroy its download options" msgstr "" -#: .././config.py:21400 +#: .././config.py:22325 msgid "_FFmpeg options" msgstr "" -#: .././config.py:21407 +#: .././config.py:22332 msgid "List of FFmpeg options managers" msgstr "" -#: .././config.py:21427 +#: .././config.py:22352 msgid "Current" msgstr "" -#: .././config.py:21518 +#: .././config.py:22442 msgid "Use these options" msgstr "" #. Add this tab... -#: .././config.py:21609 +#: .././config.py:22532 msgid "O_utput" msgstr "" -#: .././config.py:21628 -msgid "_Output Tab" +#: .././config.py:22556 +msgid "_Output tab" msgstr "" -#: .././config.py:21636 -msgid "Output Tab preferences" +#: .././config.py:22563 +msgid "Output tab preferences" msgstr "" -#: .././config.py:21641 -msgid "Display downloader system commands in the Output Tab" +#: .././config.py:22568 +msgid "Display downloader system commands in the Output tab" msgstr "" -#: .././config.py:21650 -msgid "Display output from downloader's STDOUT in the Output Tab" +#: .././config.py:22577 +msgid "Display output from downloader's STDOUT in the Output tab" msgstr "" -#: .././config.py:21659 .././config.py:21821 +#: .././config.py:22586 .././config.py:22753 msgid "...but don't write each video's JSON data" msgstr "" -#: .././config.py:21670 .././config.py:21832 +#: .././config.py:22597 .././config.py:22764 msgid "...but don't write each video's download progress" msgstr "" -#: .././config.py:21689 -msgid "Display output from downloader's STDERR in the Output Tab" +#: .././config.py:22616 +msgid "Display output from downloader's STDERR in the Output tab" msgstr "" -#: .././config.py:21698 -msgid "Limit the size of Output Tab pages to" +#: .././config.py:22625 +msgid "Limit the size of Output tab pages to" msgstr "" -#: .././config.py:21719 -msgid "Empty pages in the Output Tab at the start of every operation" +#: .././config.py:22646 +msgid "Empty pages in the Output tab at the start of every operation" msgstr "" -#: .././config.py:21729 +#: .././config.py:22656 msgid "" "Show a summary of active threads (changes are applied when Tartube restarts)" msgstr "" -#: .././config.py:21741 +#: .././config.py:22668 msgid "During update/info operations, automatically switch to the Output tab" msgstr "" -#: .././config.py:21752 -msgid "During a refresh operation, show all matching videos in the Output Tab" +#: .././config.py:22679 +msgid "During a refresh operation, show all matching videos in the Output tab" msgstr "" -#: .././config.py:21763 +#: .././config.py:22690 msgid "...also show all non-matching videos" msgstr "" -#: .././config.py:21792 +#: .././config.py:22724 msgid "_Terminal window" msgstr "" -#: .././config.py:21798 +#: .././config.py:22730 msgid "Terminal window preferences" msgstr "" -#: .././config.py:21803 +#: .././config.py:22735 msgid "Write downloader system commands to the terminal window" msgstr "" -#: .././config.py:21812 +#: .././config.py:22744 msgid "Write output from downloader's STDOUT to the terminal window" msgstr "" -#: .././config.py:21854 +#: .././config.py:22786 msgid "Write output from downloader's STDERR to the terminal window" msgstr "" -#: .././config.py:21873 +#: .././config.py:22810 msgid "_Both" msgstr "" -#: .././config.py:21878 +#: .././config.py:22815 msgid "" -"Special preferences (applies to both the Output Tab and the terminal window)" +"Special preferences (applies to both the Output tab and the terminal window)" msgstr "" -#: .././config.py:21885 +#: .././config.py:22822 msgid "Downloader writes verbose output (youtube-dl debugging mode)" msgstr "" -#: .././config.py:21894 +#: .././config.py:22831 msgid "Youtube Stream Capture writes verbose output" msgstr "" #. Confirm the result -#: .././config.py:22640 .././config.py:24410 .././config.py:25118 -#: .././config.py:26255 .././refresh.py:483 .././refresh.py:591 +#: .././config.py:23577 .././config.py:25396 .././config.py:25453 +#: .././config.py:26161 .././config.py:27303 .././config.py:27348 +#: .././refresh.py:483 .././refresh.py:591 msgid "Total videos:" msgstr "" -#: .././config.py:22641 .././config.py:24412 .././config.py:25119 -#: .././config.py:26256 +#: .././config.py:23578 .././config.py:25398 .././config.py:25455 +#: .././config.py:26162 .././config.py:27304 .././config.py:27349 msgid "Videos updated:" msgstr "" -#: .././config.py:22831 +#: .././config.py:23813 msgid "Are you sure you want to rename this channel?" msgstr "" -#: .././config.py:22833 +#: .././config.py:23815 msgid "Are you sure you want to rename this playlist?" msgstr "" -#: .././config.py:22835 +#: .././config.py:23817 msgid "Are you sure you want to rename this folder?" msgstr "" -#: .././config.py:22875 +#: .././config.py:23857 msgid "That is not a valid URL" msgstr "" -#: .././config.py:22896 +#: .././config.py:23878 msgid "Are you sure you want to update the URL?" msgstr "" -#: .././config.py:22943 +#: .././config.py:23925 msgid "The regex is invalid" msgstr "" -#: .././config.py:22991 +#: .././config.py:23973 msgid "Are you sure you want to update these URLs?" msgstr "" -#: .././config.py:23211 +#: .././config.py:24193 msgid "The default custom download manager cannot be deleted" msgstr "" -#: .././config.py:23219 +#: .././config.py:24201 msgid "Are you sure you want to delete this custom download manager?" msgstr "" -#: .././config.py:23493 +#: .././config.py:24475 msgid "Are you sure you want to create a new database at this location?" msgstr "" -#: .././config.py:23600 +#: .././config.py:24582 msgid "Are you sure you want to forget this database?" msgstr "" -#: .././config.py:23635 +#: .././config.py:24617 msgid "Are you sure you want to forget all databases except the current one?" msgstr "" -#: .././config.py:23839 +#: .././config.py:24821 msgid "No database exists at this location:" msgstr "" -#: .././config.py:23841 +#: .././config.py:24823 msgid "Do you want to create a new one?" msgstr "" -#: .././config.py:24581 +#: .././config.py:25624 msgid "The current options manager cannot be deleted" msgstr "" -#: .././config.py:24589 .././config.py:25640 +#: .././config.py:25632 .././config.py:26680 msgid "Are you sure you want to delete this options manager?" msgstr "" -#: .././config.py:24783 .././config.py:25177 .././config.py:26977 +#: .././config.py:25826 .././config.py:26217 .././config.py:28077 msgid "The new setting will be applied when Tartube restarts" msgstr "" -#: .././config.py:25632 +#: .././config.py:26672 msgid "The default options manager cannot be deleted" msgstr "" -#: .././config.py:26598 +#: .././config.py:27698 msgid "There is already a scheduled download with that name" msgstr "" -#: .././config.py:26645 +#: .././config.py:27745 msgid "Are you sure you want to delete this scheduled download?" msgstr "" -#: .././config.py:26830 +#: .././config.py:27930 msgid "Please select the AVConv executable" msgstr "" -#: .././config.py:26863 +#: .././config.py:27963 msgid "Please select the FFmpeg executable" msgstr "" -#: .././config.py:26896 +#: .././config.py:27996 msgid "Please select the Youtube Stream Capture executable" msgstr "" -#: .././config.py:27839 +#: .././config.py:28939 msgid "Select the youtube-dl-compatible executable" msgstr "" -#: .././config.py:28083 +#: .././config.py:29183 msgid "Database file not loaded" msgstr "" -#: .././config.py:28103 +#: .././config.py:29203 msgid "Did not try to load the database file" msgstr "" -#: .././config.py:28128 +#: .././config.py:29228 msgid "Database file loaded" msgstr "" -#: .././downloads.py:322 +#: .././downloads.py:323 msgid "D/L Manager:" msgstr "" -#: .././downloads.py:326 +#: .././downloads.py:327 msgid "Starting download operation" msgstr "" -#: .././downloads.py:357 +#: .././downloads.py:358 msgid "Workers: available:" msgstr "" -#: .././downloads.py:358 +#: .././downloads.py:359 msgid "total:" msgstr "" -#: .././downloads.py:390 +#: .././downloads.py:391 msgid "Alternative performance limits no longer apply" msgstr "" -#: .././downloads.py:398 +#: .././downloads.py:399 msgid "Alternative performance limits now apply" msgstr "" @@ -7701,9 +7813,9 @@ msgstr "" msgid "All threads finished" msgstr "" -#: .././downloads.py:464 .././downloads.py:1383 .././downloads.py:1394 -#: .././downloads.py:1469 .././downloads.py:1541 .././downloads.py:1582 -#: .././downloads.py:1654 +#: .././downloads.py:464 .././downloads.py:1392 .././downloads.py:1403 +#: .././downloads.py:1478 .././downloads.py:1550 .././downloads.py:1591 +#: .././downloads.py:1663 msgid "Thread #" msgstr "" @@ -7723,166 +7835,166 @@ msgstr "" msgid "Join and collect threads" msgstr "" -#: .././downloads.py:1384 +#: .././downloads.py:1393 msgid "Job complete" msgstr "" -#: .././downloads.py:1395 +#: .././downloads.py:1404 msgid "Worker now available again" msgstr "" -#: .././downloads.py:1470 .././downloads.py:1583 .././downloads.py:1655 +#: .././downloads.py:1479 .././downloads.py:1592 .././downloads.py:1664 msgid "Assigned job:" msgstr "" -#: .././downloads.py:1494 .././downloads.py:1498 +#: .././downloads.py:1503 .././downloads.py:1507 msgid "Tartube is restarting a stalled download" msgstr "" -#: .././downloads.py:1542 +#: .././downloads.py:1551 msgid "Checking RSS feed" msgstr "" -#: .././downloads.py:2188 +#: .././downloads.py:2197 msgid "Cannot download videos in a private folder" msgstr "" -#: .././downloads.py:3539 .././downloads.py:7687 +#: .././downloads.py:3550 .././downloads.py:7714 msgid "Download did not start" msgstr "" -#: .././downloads.py:3545 .././downloads.py:7699 .././info.py:358 +#: .././downloads.py:3556 .././downloads.py:7726 .././info.py:358 #: .././updates.py:278 .././updates.py:496 msgid "Child process exited with non-zero code: {}" msgstr "" -#: .././downloads.py:3672 .././downloads.py:4780 +#: .././downloads.py:3683 .././downloads.py:4812 msgid "" "This video has a URL that points to a channel or a playlist, not a video" msgstr "" -#: .././downloads.py:4655 .././downloads.py:4671 +#: .././downloads.py:4687 .././downloads.py:4703 msgid "Simulated download of:" msgstr "" -#: .././downloads.py:4679 +#: .././downloads.py:4711 msgid "Simulated download of video with unprintable characters" msgstr "" -#: .././downloads.py:5899 +#: .././downloads.py:5931 msgid "No timestamps defined in video's timestamp list" msgstr "" -#: .././downloads.py:5917 +#: .././downloads.py:5949 msgid "" "FAILED: Can't create the destination folder either because a folder with the " "same name already exists, or because new folders can't be added to the " "parent folder" msgstr "" -#: .././downloads.py:6138 .././downloads.py:6486 +#: .././downloads.py:6170 .././downloads.py:6518 msgid "FAILED: Clip download did not start" msgstr "" -#: .././downloads.py:6146 .././downloads.py:6494 +#: .././downloads.py:6178 .././downloads.py:6526 msgid "FAILED: Child process exited with non-zero code: {}" msgstr "" -#: .././downloads.py:6256 +#: .././downloads.py:6288 msgid "No slices defined in video's slice list" msgstr "" -#: .././downloads.py:6518 +#: .././downloads.py:6550 msgid "FAILED: One or more clips were not downloaded" msgstr "" -#: .././downloads.py:6623 +#: .././downloads.py:6655 msgid "FAILED: Can't concatenate clips" msgstr "" -#: .././downloads.py:6649 +#: .././downloads.py:6676 msgid "" "FAILED: Clips were concatenated, but could not move the output file out of " "the temporary directory" msgstr "" -#: .././downloads.py:6775 +#: .././downloads.py:6802 msgid "Failed to copy the original video's thumbnail" msgstr "" -#: .././downloads.py:6957 +#: .././downloads.py:6984 msgid "FAILED: Can't create a temporary folder for video clips" msgstr "" -#. This object creates more messages for the Output Tab and/or terminal, +#. This object creates more messages for the Output tab and/or terminal, #. than downloads.VideoDownloader would do, as the output generated by #. Youtube Stream Capture is not easy for the user to interpret -#: .././downloads.py:7578 +#: .././downloads.py:7605 msgid "Tartube is starting the stream capture..." msgstr "" -#: .././downloads.py:7596 +#: .././downloads.py:7623 msgid "Could not create a destination directory, capture halted" msgstr "" -#: .././downloads.py:7617 .././downloads.py:7642 +#: .././downloads.py:7644 .././downloads.py:7669 msgid "Youtube Stream Capture script not found:" msgstr "" -#: .././downloads.py:7691 +#: .././downloads.py:7718 msgid "Failed to capture the livestream" msgstr "" -#: .././downloads.py:7695 +#: .././downloads.py:7722 msgid "Stream capture terminated" msgstr "" -#: .././downloads.py:7705 +#: .././downloads.py:7732 msgid "" "Stream captured terminated without downloading any video segments " "(indicating an error with the stream)" msgstr "" #. Capture successful -#: .././downloads.py:7721 +#: .././downloads.py:7748 msgid "Stream capture successful" msgstr "" #. Show a confirmation message -#: .././downloads.py:7751 +#: .././downloads.py:7778 msgid "Merging file segments..." msgstr "" -#: .././downloads.py:7771 +#: .././downloads.py:7798 msgid "Segment merge did not start" msgstr "" -#: .././downloads.py:7782 +#: .././downloads.py:7809 msgid "Segment merge completed, but path not detected" msgstr "" -#: .././downloads.py:7792 +#: .././downloads.py:7819 msgid "Segment merge completed, but output file not found" msgstr "" -#: .././downloads.py:7813 +#: .././downloads.py:7840 msgid "File moved to:" msgstr "" -#: .././downloads.py:7818 +#: .././downloads.py:7845 msgid "Livestream download is complete" msgstr "" -#: .././downloads.py:7823 +#: .././downloads.py:7850 msgid "Failed to move output file" msgstr "" -#: .././downloads.py:7991 +#: .././downloads.py:8018 #, python-brace-format msgid "Stream capture is frozen, trying again (restart #{0})" msgstr "" -#: .././downloads.py:7998 +#: .././downloads.py:8025 msgid "Stream capture is frozen, giving up" msgstr "" @@ -7951,218 +8063,218 @@ msgid "Sunday" msgstr "" #. System folder names -#: .././formats.py:917 +#: .././formats.py:926 msgid "All Videos" msgstr "" -#: .././formats.py:918 +#: .././formats.py:927 msgid "Bookmarks" msgstr "" -#: .././formats.py:919 +#: .././formats.py:928 msgid "Favourite Videos" msgstr "" -#: .././formats.py:920 +#: .././formats.py:929 msgid "Livestreams" msgstr "" -#: .././formats.py:921 +#: .././formats.py:930 msgid "Missing Videos" msgstr "" -#: .././formats.py:922 +#: .././formats.py:931 msgid "New Videos" msgstr "" -#: .././formats.py:924 +#: .././formats.py:933 msgid "Waiting Videos" msgstr "" -#: .././formats.py:925 +#: .././formats.py:934 msgid "Temporary Videos" msgstr "" -#: .././formats.py:926 +#: .././formats.py:935 msgid "Unsorted Videos" msgstr "" -#: .././formats.py:927 +#: .././formats.py:936 msgid "Video Clips" msgstr "" -#: .././formats.py:932 +#: .././formats.py:941 msgid "Update using default youtube-dl path" msgstr "" -#: .././formats.py:934 +#: .././formats.py:943 msgid "Update using local youtube-dl path" msgstr "" -#: .././formats.py:936 +#: .././formats.py:945 msgid "Update using custom youtube-dl path" msgstr "" -#: .././formats.py:938 +#: .././formats.py:947 msgid "Update using pip" msgstr "" -#: .././formats.py:940 +#: .././formats.py:949 msgid "Update using pip (use --no-dependencies option)" msgstr "" -#: .././formats.py:942 +#: .././formats.py:951 msgid "Update using pip (omit --user option)" msgstr "" -#: .././formats.py:944 +#: .././formats.py:953 msgid "Update using pip3" msgstr "" -#: .././formats.py:946 +#: .././formats.py:955 msgid "Update using pip3 (use --no-dependencies option)" msgstr "" -#: .././formats.py:948 +#: .././formats.py:957 msgid "Update using pip3 (omit --user option)" msgstr "" -#: .././formats.py:950 +#: .././formats.py:959 msgid "Update using pip3 (recommended)" msgstr "" -#: .././formats.py:952 +#: .././formats.py:961 msgid "Update using PyPI youtube-dl path" msgstr "" -#: .././formats.py:954 +#: .././formats.py:963 msgid "Windows 32-bit update (recommended)" msgstr "" -#: .././formats.py:956 +#: .././formats.py:965 msgid "Windows 32-bit update (use --no-dependencies option)" msgstr "" -#: .././formats.py:958 +#: .././formats.py:967 msgid "Windows 64-bit update (recommended)" msgstr "" -#: .././formats.py:960 +#: .././formats.py:969 msgid "Windows 64-bit update (use --no-dependencies option)" msgstr "" -#: .././formats.py:962 +#: .././formats.py:971 msgid "youtube-dl updates are disabled" msgstr "" #. Download operation stages -#: .././formats.py:966 +#: .././formats.py:975 msgid "Queued" msgstr "" -#: .././formats.py:967 +#: .././formats.py:976 msgid "Not started" msgstr "" -#: .././formats.py:968 +#: .././formats.py:977 msgid "Active" msgstr "" -#: .././formats.py:969 +#: .././formats.py:978 msgid "Paused" msgstr "" #. (not actually used) -#: .././formats.py:970 +#: .././formats.py:979 msgid "Completed" msgstr "" #. (not actually used) #. Sub-stages of the 'Error' stage -#: .././formats.py:971 .././formats.py:986 +#: .././formats.py:980 .././formats.py:995 msgid "Error" msgstr "" -#: .././formats.py:972 +#: .././formats.py:981 msgid "Stalled" msgstr "" #. Sub-stages of the 'Active' stage -#: .././formats.py:974 +#: .././formats.py:983 msgid "Pre-processing" msgstr "" -#: .././formats.py:975 +#: .././formats.py:984 msgid "Downloading" msgstr "" -#: .././formats.py:976 +#: .././formats.py:985 msgid "Concatenating" msgstr "" -#: .././formats.py:977 +#: .././formats.py:986 msgid "Post-processing" msgstr "" -#: .././formats.py:978 +#: .././formats.py:987 msgid "Capturing" msgstr "" #. Used by YTSC -#: .././formats.py:979 +#: .././formats.py:988 msgid "Merging" msgstr "" #. Used by YTSC -#: .././formats.py:980 +#: .././formats.py:989 msgid "Checking" msgstr "" #. Sub-stages of the 'Completed' stage -#: .././formats.py:982 +#: .././formats.py:991 msgid "Finished" msgstr "" -#: .././formats.py:983 +#: .././formats.py:992 msgid "Warning" msgstr "" -#: .././formats.py:984 +#: .././formats.py:993 msgid "Already downloaded" msgstr "" #. (not actually used) -#: .././formats.py:987 +#: .././formats.py:996 msgid "Stopped" msgstr "" -#: .././formats.py:988 +#: .././formats.py:997 msgid "Filesize abort" msgstr "" -#: .././formats.py:998 +#: .././formats.py:1007 msgid "" "TRANSLATOR'S NOTE: ID refers to a video's unique ID on the website, e.g. on " "YouTube \"CS9OO0S5w2k\"" msgstr "" -#: .././formats.py:1007 +#: .././formats.py:1016 msgid "ID" msgstr "" -#: .././formats.py:1008 +#: .././formats.py:1017 msgid "Title" msgstr "" -#: .././formats.py:1009 +#: .././formats.py:1018 msgid "Quality" msgstr "" -#: .././formats.py:1010 +#: .././formats.py:1019 msgid "Autonumber" msgstr "" -#: .././formats.py:1022 +#: .././formats.py:1031 msgid "Any format" msgstr "" @@ -8240,7 +8352,7 @@ msgstr "" #. When the download operation is launched from the Classic Mode #. tab, there is less to display -#: .././media.py:553 .././media.py:1954 .././media.py:1970 +#: .././media.py:553 .././media.py:1976 .././media.py:1992 msgid "Source:" msgstr "" @@ -8256,49 +8368,49 @@ msgstr "" msgid "unavailable" msgstr "" -#: .././media.py:591 .././media.py:1986 +#: .././media.py:591 .././media.py:2008 msgid "Errors\\Warnings" msgstr "" -#: .././media.py:1925 +#: .././media.py:1947 msgid "" "TRANSLATOR'S NOTE: WAITING = livestream not started, LIVE = livestream " "started" msgstr "" -#: .././media.py:1930 +#: .././media.py:1952 msgid "WAITING" msgstr "" -#: .././media.py:1932 +#: .././media.py:1954 msgid "LIVE" msgstr "" -#: .././media.py:1942 .././refresh.py:259 .././refresh.py:529 +#: .././media.py:1964 .././refresh.py:259 .././refresh.py:529 msgid "Channel:" msgstr "" -#: .././media.py:1944 .././refresh.py:261 .././refresh.py:531 +#: .././media.py:1966 .././refresh.py:261 .././refresh.py:531 msgid "Playlist:" msgstr "" -#: .././media.py:1946 .././refresh.py:263 .././refresh.py:533 +#: .././media.py:1968 .././refresh.py:263 .././refresh.py:533 msgid "Folder:" msgstr "" -#: .././media.py:1951 +#: .././media.py:1973 msgid "TRANSLATOR'S NOTE 2: Source = video/channel/playlist URL" msgstr "" -#: .././media.py:1960 .././media.py:1977 +#: .././media.py:1982 .././media.py:1999 msgid "File:" msgstr "" -#: .././media.py:2976 .././media.py:3037 +#: .././media.py:3079 .././media.py:3140 msgid "Today" msgstr "" -#: .././media.py:2978 .././media.py:3039 +#: .././media.py:3081 .././media.py:3142 msgid "Yesterday" msgstr "" @@ -8493,19 +8605,23 @@ msgstr "" msgid "Annotation files deleted:" msgstr "" -#: .././tidy.py:647 +#: .././tidy.py:649 msgid "Deleted (possibly) corrupted video file:" msgstr "" -#: .././tidy.py:662 .././tidy.py:1273 +#: .././tidy.py:662 +msgid "Failed to delete (possibly) corrupted video file:" +msgstr "" + +#: .././tidy.py:673 .././tidy.py:1271 msgid "Video file might be corrupt:" msgstr "" -#: .././tidy.py:703 +#: .././tidy.py:714 msgid "Video file exists:" msgstr "" -#: .././tidy.py:721 +#: .././tidy.py:732 msgid "Video file doesn't exist:" msgstr "" @@ -8517,7 +8633,7 @@ msgstr "" msgid "FFmpeg installation did not start" msgstr "" -#. Show a confirmation in the the Output Tab (or wizard window textview) +#. Show a confirmation in the the Output tab (or wizard window textview) #: .././updates.py:289 .././updates.py:509 msgid "Update operation finished" msgstr "" diff --git a/tartube/tartube b/tartube/tartube index f9be28d6..a3c1eeae 100644 --- a/tartube/tartube +++ b/tartube/tartube @@ -42,8 +42,8 @@ import mainapp # 'Global' variables __packagename__ = 'tartube' -__version__ = '2.3.321' -__date__ = '5 Aug 2021' +__version__ = '2.3.332' +__date__ = '8 Aug 2021' __copyright__ = 'Copyright \xa9 2019-2021 A S Lewis' __license__ = """ Copyright \xa9 2019-2021 A S Lewis. diff --git a/tartube/utils.py b/tartube/utils.py index a67316ab..0e882f0f 100644 --- a/tartube/utils.py +++ b/tartube/utils.py @@ -929,7 +929,12 @@ def convert_slices_to_clips(app_obj, custom_dl_obj, slice_list, temp_flag): ]) # Next clip starts at the end of this slice - previous_time = mini_dict['stop_time'] + if mini_dict['stop_time'] is not None: + previous_time = mini_dict['stop_time'] + else: + # This clip ends at the end of the video; ignore any additional + # data in slice_list + return clip_list if previous_time != 0 and previous_time != '0': diff --git a/tartube/wizwin.py b/tartube/wizwin.py index 5136fb5c..9467c7ce 100644 --- a/tartube/wizwin.py +++ b/tartube/wizwin.py @@ -277,7 +277,7 @@ def apply_changes(self): pass - def reset_changes(self): + def cancel_changes(self): """Called by self.on_button_cancel_clicked(). @@ -480,7 +480,7 @@ def on_button_cancel_clicked(self, button): """ - self.reset_changes() + self.cancel_changes() self.destroy() @@ -573,6 +573,8 @@ def __init__(self, app_obj): self.ffmpeg_scrolled = None # Gtk.ScrolledWindow self.ffmpeg_textview = None # Gtk.TextView self.ffmpeg_textbuffer = None # Gtk.TextBuffer + self.auto_open_button = None # Gtk.Button + # IV list - other # --------------- @@ -605,6 +607,9 @@ def __init__(self, app_obj): self.ytdl_fork_no_dependency_flag = False # The new value of mainapp.TartubeApp.ytdl_update_current(), if any self.ytdl_update_current = None + # The new value of + # mainapp.TartubeApp.show_classic_tab_on_startup_flag(), if any + self.show_classic_tab_on_startup_flag = None # Flag set to True, once the 'More options' button has been clicked, # so that it is never visible again @@ -628,13 +633,16 @@ def __init__(self, app_obj): if self.mswin_flag: self.page_list.append('setup_fetch_downloader_page') self.page_list.append('setup_fetch_ffmpeg_page') + self.page_list.append('setup_classic_mode_page') self.page_list.append('setup_finish_page_mswin') elif __main__.__pkg_strict_install_flag__: + self.page_list.append('setup_classic_mode_page') self.page_list.append('setup_finish_page_strict') else: self.page_list.append('setup_fetch_downloader_page') + self.page_list.append('setup_classic_mode_page') self.page_list.append('setup_finish_page_default') # Set up the wizard window @@ -681,15 +689,20 @@ def apply_changes(self): self.ytdl_fork_no_dependency_flag, ) - # (A None value, only if it hasn't been changed) + # (A None value, only if they haven't been changed) if self.ytdl_update_current is not None: self.app_obj.set_ytdl_update_current(self.ytdl_update_current) + if self.show_classic_tab_on_startup_flag is not None: + self.app_obj.set_show_classic_tab_on_startup_flag( + self.show_classic_tab_on_startup_flag, + ) + # Continue with general initialisation self.app_obj.open_wiz_win_continue() - def reset_changes(self): + def cancel_changes(self): """Called by self.on_button_cancel_clicked(). @@ -1219,7 +1232,7 @@ def setup_fetch_ffmpeg_page(self): + ' YouTube.', ), 60, - ) + '', + ) + '', 0, 1, grid_width, 1, ) @@ -1258,6 +1271,56 @@ def setup_fetch_ffmpeg_page(self): ) + def setup_classic_mode_page(self): + + """Called by self.setup_page(). + + Invites the user to open Tartube at the Classic Mode tab. + """ + + grid_width = 3 + + self.add_label( + '' \ + + _('Tartube adds videos to a database.') \ + + '', + 0, 0, grid_width, 1, + ) + + self.add_label( + '' \ + + _( + 'If you don\'t need a database, you can use the Classic' \ + + ' Mode tab.', + ) + '', + 0, 1, grid_width, 1, + ) + + # (Empty label for spacing) + self.add_empty_label(0, 2, grid_width, 1) + + self.add_image( + self.app_obj.main_win_obj.icon_dict['setup_classic_icon'], + 0, 3, grid_width, 1, + ) + + # (Empty label for spacing) + self.add_empty_label(0, 4, grid_width, 1) + + if not self.show_classic_tab_on_startup_flag: + msg = _('Always open Tartube at this tab') + else: + msg = _('Don\'t open Tartube at this tab') + + self.auto_open_button = Gtk.Button(msg) + self.inner_grid.attach(self.auto_open_button, 1, 5, 1, 1) + self.auto_open_button.set_hexpand(False) + self.auto_open_button.connect( + 'clicked', + self.on_button_auto_open_clicked, + ) + + def setup_finish_page_mswin(self): """Called by self.setup_page(). @@ -1345,27 +1408,30 @@ def setup_finish_page_strict(self): 0, 5, 1, 1, ) + # (Empty label for spacing) + self.add_empty_label(0, 6, 1, 1) + self.add_label( '' \ + utils.tidy_up_long_string( _( - 'Without FFmpeg, Tartube cannot download high-resolution' \ - + ' videos, and cannot display video thumbnails from' \ - + ' YouTube.', + 'Without FFmpeg, Tartube cannot download video clips or' \ + + ' high-resolution videos, and cannot display many' \ + + ' video thumbnails.' ), 60, ) + '', - 0, 6, 1, 1, + 0, 7, 1, 1, ) # (Empty label for spacing) - self.add_empty_label(0, 7, 1, 1) + self.add_empty_label(0, 8, 1, 1) self.add_label( '' \ + _('Click the OK button to start Tartube!') \ + '', - 0, 8, 1, 1, + 0, 9, 1, 1, ) @@ -1397,27 +1463,30 @@ def setup_finish_page_default(self): 0, 3, 1, 1, ) + # (Empty label for spacing) + self.add_empty_label(0, 4, 1, 1) + self.add_label( '' \ + utils.tidy_up_long_string( _( - 'Without FFmpeg, Tartube cannot download high-resolution' \ - + ' videos, and cannot display video thumbnails from' \ - + ' YouTube.', + 'Without FFmpeg, Tartube cannot download video clips or' \ + + ' high-resolution videos, and cannot display many' \ + + ' video thumbnails.', ), 60, ) + '', - 0, 4, 1, 1, + 0, 5, 1, 1, ) # (Empty label for spacing) - self.add_empty_label(0, 5, 1, 1) + self.add_empty_label(0, 6, 1, 1) self.add_label( '' \ + _('Click the OK button to start Tartube!') \ + '', - 0, 6, 1, 1, + 0, 7, 1, 1, ) @@ -1552,6 +1621,27 @@ def refresh_update_combo(self): # (Callbacks) + def on_button_auto_open_clicked(self, button): + + """Called from a callback in self.setup_classic_mode_page(). + + Sets whether the main window should open at the Classic Mode tab, or + not. + + Args: + + button (Gtk.Button): The widget clicked + + """ + + if not self.show_classic_tab_on_startup_flag: + self.show_classic_tab_on_startup_flag = True + button.set_label(_('Don\'t open Tartube at this tab')) + else: + self.show_classic_tab_on_startup_flag = False + button.set_label(_('Always open Tartube at this tab')) + + def on_button_cancel_clicked(self, button): """Modified version of the standard function, called from a callback in @@ -1566,7 +1656,7 @@ def on_button_cancel_clicked(self, button): """ - self.reset_changes() + self.cancel_changes() if not self.app_obj.update_manager_obj: self.destroy()