Many fixes to i18n
This commit is contained in:
420
-
Normal file
420
-
Normal file
@@ -0,0 +1,420 @@
|
||||
# Translations template for PROJECT.
|
||||
# Copyright (C) 2026 ORGANIZATION
|
||||
# This file is distributed under the same license as the PROJECT project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2026.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2026-04-05 16:35-0500\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.18.0\n"
|
||||
|
||||
#: youtube/i18n_strings.py:13
|
||||
msgid "Network"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:14
|
||||
msgid "Playback"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:15
|
||||
msgid "Interface"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:18
|
||||
msgid "Route Tor"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:19
|
||||
msgid "Default subtitles mode"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:20
|
||||
msgid "AV1 Codec Ranking"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:21
|
||||
msgid "VP8/VP9 Codec Ranking"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:22
|
||||
msgid "H.264 Codec Ranking"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:23
|
||||
msgid "Use integrated sources"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:24
|
||||
msgid "Route images"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:25
|
||||
msgid "Enable comments.js"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:26
|
||||
msgid "Enable SponsorBlock"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:27
|
||||
msgid "Enable embed page"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:30
|
||||
msgid "Related videos mode"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:31
|
||||
msgid "Comments mode"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:32
|
||||
msgid "Enable comment avatars"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:33
|
||||
msgid "Default comment sorting"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:34
|
||||
msgid "Theater mode"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:35
|
||||
msgid "Autoplay videos"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:36
|
||||
msgid "Default resolution"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:37
|
||||
msgid "Use video player"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:38
|
||||
msgid "Use video download"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:39
|
||||
msgid "Proxy images"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:40
|
||||
msgid "Theme"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:41
|
||||
msgid "Font"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:42
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:43
|
||||
msgid "Embed page mode"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:46
|
||||
msgid "Off"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:47
|
||||
msgid "On"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:48
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:49
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:50
|
||||
msgid "Always shown"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:51
|
||||
msgid "Shown by clicking button"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:52
|
||||
msgid "Native"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:53
|
||||
msgid "Native with hotkeys"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:54
|
||||
msgid "Plyr"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:57
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:58
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:59
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:62
|
||||
msgid "Browser default"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:63
|
||||
msgid "Liberation Serif"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:64
|
||||
msgid "Arial"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:65
|
||||
msgid "Verdana"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:66
|
||||
msgid "Tahoma"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:69 youtube/templates/base.html:53
|
||||
msgid "Sort by"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:70 youtube/templates/base.html:56
|
||||
msgid "Relevance"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:71 youtube/templates/base.html:60
|
||||
#: youtube/templates/base.html:71
|
||||
msgid "Upload date"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:72 youtube/templates/base.html:64
|
||||
msgid "View count"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:73 youtube/templates/base.html:68
|
||||
msgid "Rating"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:76 youtube/templates/base.html:74
|
||||
msgid "Any"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:77 youtube/templates/base.html:78
|
||||
msgid "Last hour"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:78 youtube/templates/base.html:82
|
||||
msgid "Today"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:79 youtube/templates/base.html:86
|
||||
msgid "This week"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:80 youtube/templates/base.html:90
|
||||
msgid "This month"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:81 youtube/templates/base.html:94
|
||||
msgid "This year"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:84
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:85
|
||||
msgid "Video"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:86
|
||||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:87
|
||||
msgid "Playlist"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:88
|
||||
msgid "Movie"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:89
|
||||
msgid "Show"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:92
|
||||
msgid "Duration"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:93
|
||||
msgid "Short (< 4 minutes)"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:94
|
||||
msgid "Long (> 20 minutes)"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:97 youtube/templates/base.html:45
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:98
|
||||
msgid "Download"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:99
|
||||
msgid "Subscribe"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:100
|
||||
msgid "Unsubscribe"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:101
|
||||
msgid "Import"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:102
|
||||
msgid "Export"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:103
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:104
|
||||
msgid "Check"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:105
|
||||
msgid "Mute"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:106
|
||||
msgid "Unmute"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:109 youtube/templates/base.html:51
|
||||
msgid "Options"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:110
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:111
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:112
|
||||
msgid "loading..."
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:115
|
||||
msgid "Top"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:116
|
||||
msgid "Newest"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:117
|
||||
msgid "Auto"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:118
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:119
|
||||
msgid "Español"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:122
|
||||
msgid "Auto (HLS preferred)"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:123
|
||||
msgid "Force HLS"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:124
|
||||
msgid "Force DASH"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:125
|
||||
msgid "#1"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:126
|
||||
msgid "#2"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:127
|
||||
msgid "#3"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:130 youtube/templates/settings.html:53
|
||||
msgid "Save settings"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:133
|
||||
msgid "Other"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:136
|
||||
msgid "Playback mode"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/base.html:44
|
||||
msgid "Type to search..."
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/comments.html:61
|
||||
msgid "More comments"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/watch.html:100
|
||||
msgid "Direct Link"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/watch.html:152
|
||||
msgid "More info"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/watch.html:176 youtube/templates/watch.html:203
|
||||
msgid "AutoNext"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/watch.html:225
|
||||
msgid "Related Videos"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/watch.html:239
|
||||
msgid "Comments disabled"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/watch.html:242
|
||||
msgid "Comment"
|
||||
msgstr ""
|
||||
|
||||
5
.gitignore
vendored
5
.gitignore
vendored
@@ -144,6 +144,11 @@ banned_addresses.txt
|
||||
*.orig
|
||||
*.cache/
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Localization / Compiled translations
|
||||
# -----------------------------------------------------------------------------
|
||||
*.mo
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# AI assistants / LLM tools
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
19
babel.cfg
19
babel.cfg
@@ -1,7 +1,16 @@
|
||||
[python: youtube/**.py]
|
||||
keywords = lazy_gettext:1,2 _l:1,2
|
||||
[python: server.py]
|
||||
[python: settings.py]
|
||||
[jinja2: youtube/templates/**.html]
|
||||
extensions=jinja2.ext.i18n
|
||||
encoding = utf-8
|
||||
keywords = lazy_gettext _l _
|
||||
|
||||
[python: server.py]
|
||||
encoding = utf-8
|
||||
keywords = _
|
||||
|
||||
[python: settings.py]
|
||||
encoding = utf-8
|
||||
keywords = _
|
||||
|
||||
[jinja2: youtube/templates/**.html]
|
||||
encoding = utf-8
|
||||
extensions=jinja2.ext.i18n
|
||||
silent=false
|
||||
|
||||
38
settings.py
38
settings.py
@@ -1,4 +1,18 @@
|
||||
from youtube import util
|
||||
from youtube.i18n_strings import (
|
||||
AUTO,
|
||||
AUTO_HLS_PREFERRED,
|
||||
ENGLISH,
|
||||
ESPANOL,
|
||||
FORCE_DASH,
|
||||
FORCE_HLS,
|
||||
NEWEST,
|
||||
PLAYBACK_MODE,
|
||||
RANKING_1,
|
||||
RANKING_2,
|
||||
RANKING_3,
|
||||
TOP,
|
||||
)
|
||||
import ast
|
||||
import re
|
||||
import os
|
||||
@@ -139,8 +153,8 @@ For security reasons, enabling this is not recommended.''',
|
||||
'comment': '''0 to sort by top
|
||||
1 to sort by newest''',
|
||||
'options': [
|
||||
(0, 'Top'),
|
||||
(1, 'Newest'),
|
||||
(0, TOP),
|
||||
(1, NEWEST),
|
||||
],
|
||||
}),
|
||||
|
||||
@@ -163,7 +177,7 @@ For security reasons, enabling this is not recommended.''',
|
||||
'default': 'auto',
|
||||
'comment': '',
|
||||
'options': [
|
||||
('auto', 'Auto'),
|
||||
('auto', AUTO),
|
||||
('144', '144p'),
|
||||
('240', '240p'),
|
||||
('360', '360p'),
|
||||
@@ -179,12 +193,12 @@ For security reasons, enabling this is not recommended.''',
|
||||
('playback_mode', {
|
||||
'type': str,
|
||||
'default': 'auto',
|
||||
'label': 'Playback mode',
|
||||
'label': PLAYBACK_MODE,
|
||||
'comment': 'HLS uses hls.js (multi-audio). DASH uses av-merge (single audio).',
|
||||
'options': [
|
||||
('auto', 'Auto (HLS preferred)'),
|
||||
('hls', 'Force HLS'),
|
||||
('dash', 'Force DASH'),
|
||||
('auto', AUTO_HLS_PREFERRED),
|
||||
('hls', FORCE_HLS),
|
||||
('dash', FORCE_DASH),
|
||||
],
|
||||
'category': 'playback',
|
||||
}),
|
||||
@@ -194,7 +208,7 @@ For security reasons, enabling this is not recommended.''',
|
||||
'default': 1,
|
||||
'label': 'AV1 Codec Ranking',
|
||||
'comment': '',
|
||||
'options': [(1, '#1'), (2, '#2'), (3, '#3')],
|
||||
'options': [(1, RANKING_1), (2, RANKING_2), (3, RANKING_3)],
|
||||
'category': 'playback',
|
||||
}),
|
||||
|
||||
@@ -203,7 +217,7 @@ For security reasons, enabling this is not recommended.''',
|
||||
'default': 2,
|
||||
'label': 'VP8/VP9 Codec Ranking',
|
||||
'comment': '',
|
||||
'options': [(1, '#1'), (2, '#2'), (3, '#3')],
|
||||
'options': [(1, RANKING_1), (2, RANKING_2), (3, RANKING_3)],
|
||||
'category': 'playback',
|
||||
}),
|
||||
|
||||
@@ -212,7 +226,7 @@ For security reasons, enabling this is not recommended.''',
|
||||
'default': 3,
|
||||
'label': 'H.264 Codec Ranking',
|
||||
'comment': '',
|
||||
'options': [(1, '#1'), (2, '#2'), (3, '#3')],
|
||||
'options': [(1, RANKING_1), (2, RANKING_2), (3, RANKING_3)],
|
||||
'category': 'playback',
|
||||
'description': (
|
||||
'Which video codecs to prefer. Codecs given the same '
|
||||
@@ -316,8 +330,8 @@ Archive: https://archive.ph/OZQbN''',
|
||||
'default': 'en',
|
||||
'comment': 'Interface language',
|
||||
'options': [
|
||||
('en', 'English'),
|
||||
('es', 'Español'),
|
||||
('en', ENGLISH),
|
||||
('es', ESPANOL),
|
||||
],
|
||||
'category': 'interface',
|
||||
}),
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
# Spanish translations for yt-local.
|
||||
# Copyright (C) 2026 yt-local
|
||||
# This file is distributed under the same license as the yt-local project.
|
||||
# Spanish translations template for PROJECT.
|
||||
# Copyright (C) 2026 ORGANIZATION
|
||||
# This file is distributed under the same license as the PROJECT project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2026.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2026-03-22 15:05-0500\n"
|
||||
"PO-Revision-Date: 2026-03-22 15:06-0500\n"
|
||||
"Last-Translator: \n"
|
||||
"POT-Creation-Date: 2026-04-05 16:52-0500\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language: es\n"
|
||||
"Language-Team: es <LL@li.org>\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
@@ -17,58 +19,415 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.18.0\n"
|
||||
|
||||
#: youtube/templates/base.html:38
|
||||
msgid "Type to search..."
|
||||
msgstr "Escribe para buscar..."
|
||||
#: youtube/i18n_strings.py:13
|
||||
msgid "Network"
|
||||
msgstr "Red"
|
||||
|
||||
#: youtube/templates/base.html:39
|
||||
msgid "Search"
|
||||
msgstr "Buscar"
|
||||
#: youtube/i18n_strings.py:14
|
||||
msgid "Playback"
|
||||
msgstr "Reproducción"
|
||||
|
||||
#: youtube/templates/base.html:45
|
||||
msgid "Options"
|
||||
msgstr "Opciones"
|
||||
#: youtube/i18n_strings.py:15
|
||||
msgid "Interface"
|
||||
msgstr "Interfaz"
|
||||
|
||||
#: youtube/templates/base.html:47
|
||||
#: youtube/i18n_strings.py:18
|
||||
msgid "Route Tor"
|
||||
msgstr "Enrutar por Tor"
|
||||
|
||||
#: youtube/i18n_strings.py:19
|
||||
msgid "Default subtitles mode"
|
||||
msgstr "Modo de subtítulos predeterminado"
|
||||
|
||||
#: youtube/i18n_strings.py:20
|
||||
msgid "AV1 Codec Ranking"
|
||||
msgstr "Prioridad códec AV1"
|
||||
|
||||
#: youtube/i18n_strings.py:21
|
||||
msgid "VP8/VP9 Codec Ranking"
|
||||
msgstr "Prioridad códec VP8/VP9"
|
||||
|
||||
#: youtube/i18n_strings.py:22
|
||||
msgid "H.264 Codec Ranking"
|
||||
msgstr "Prioridad códec H.264"
|
||||
|
||||
#: youtube/i18n_strings.py:23
|
||||
msgid "Use integrated sources"
|
||||
msgstr "Usar fuentes integradas"
|
||||
|
||||
#: youtube/i18n_strings.py:24
|
||||
msgid "Route images"
|
||||
msgstr "Enrutar imágenes"
|
||||
|
||||
#: youtube/i18n_strings.py:25
|
||||
msgid "Enable comments.js"
|
||||
msgstr "Activar comments.js"
|
||||
|
||||
#: youtube/i18n_strings.py:26
|
||||
msgid "Enable SponsorBlock"
|
||||
msgstr "Activar SponsorBlock"
|
||||
|
||||
#: youtube/i18n_strings.py:27
|
||||
msgid "Enable embed page"
|
||||
msgstr "Activar página embed"
|
||||
|
||||
#: youtube/i18n_strings.py:30
|
||||
msgid "Related videos mode"
|
||||
msgstr "Modo videos relacionados"
|
||||
|
||||
#: youtube/i18n_strings.py:31
|
||||
msgid "Comments mode"
|
||||
msgstr "Modo comentarios"
|
||||
|
||||
#: youtube/i18n_strings.py:32
|
||||
msgid "Enable comment avatars"
|
||||
msgstr "Activar avatares en comentarios"
|
||||
|
||||
#: youtube/i18n_strings.py:33
|
||||
msgid "Default comment sorting"
|
||||
msgstr "Orden de comentarios predeterminado"
|
||||
|
||||
#: youtube/i18n_strings.py:34
|
||||
msgid "Theater mode"
|
||||
msgstr "Modo teatro"
|
||||
|
||||
#: youtube/i18n_strings.py:35
|
||||
msgid "Autoplay videos"
|
||||
msgstr "Reproducción automática"
|
||||
|
||||
#: youtube/i18n_strings.py:36
|
||||
msgid "Default resolution"
|
||||
msgstr "Resolución predeterminada"
|
||||
|
||||
#: youtube/i18n_strings.py:37
|
||||
msgid "Use video player"
|
||||
msgstr "Usar reproductor de video"
|
||||
|
||||
#: youtube/i18n_strings.py:38
|
||||
msgid "Use video download"
|
||||
msgstr "Usar descarga de video"
|
||||
|
||||
#: youtube/i18n_strings.py:39
|
||||
msgid "Proxy images"
|
||||
msgstr "Imágenes por proxy"
|
||||
|
||||
#: youtube/i18n_strings.py:40
|
||||
msgid "Theme"
|
||||
msgstr "Tema"
|
||||
|
||||
#: youtube/i18n_strings.py:41
|
||||
msgid "Font"
|
||||
msgstr "Fuente"
|
||||
|
||||
#: youtube/i18n_strings.py:42
|
||||
msgid "Language"
|
||||
msgstr "Idioma"
|
||||
|
||||
#: youtube/i18n_strings.py:43
|
||||
msgid "Embed page mode"
|
||||
msgstr "Modo página embed"
|
||||
|
||||
#: youtube/i18n_strings.py:46
|
||||
msgid "Off"
|
||||
msgstr "Apagado"
|
||||
|
||||
#: youtube/i18n_strings.py:47
|
||||
msgid "On"
|
||||
msgstr "Encendido"
|
||||
|
||||
#: youtube/i18n_strings.py:48
|
||||
msgid "Disabled"
|
||||
msgstr "Deshabilitado"
|
||||
|
||||
#: youtube/i18n_strings.py:49
|
||||
msgid "Enabled"
|
||||
msgstr "Habilitado"
|
||||
|
||||
#: youtube/i18n_strings.py:50
|
||||
msgid "Always shown"
|
||||
msgstr "Siempre visible"
|
||||
|
||||
#: youtube/i18n_strings.py:51
|
||||
msgid "Shown by clicking button"
|
||||
msgstr "Mostrar al hacer clic"
|
||||
|
||||
#: youtube/i18n_strings.py:52
|
||||
msgid "Native"
|
||||
msgstr "Nativo"
|
||||
|
||||
#: youtube/i18n_strings.py:53
|
||||
msgid "Native with hotkeys"
|
||||
msgstr "Nativo con atajos"
|
||||
|
||||
#: youtube/i18n_strings.py:54
|
||||
msgid "Plyr"
|
||||
msgstr "Plyr"
|
||||
|
||||
#: youtube/i18n_strings.py:57
|
||||
msgid "Light"
|
||||
msgstr "Claro"
|
||||
|
||||
#: youtube/i18n_strings.py:58
|
||||
msgid "Gray"
|
||||
msgstr "Gris"
|
||||
|
||||
#: youtube/i18n_strings.py:59
|
||||
msgid "Dark"
|
||||
msgstr "Oscuro"
|
||||
|
||||
#: youtube/i18n_strings.py:62
|
||||
msgid "Browser default"
|
||||
msgstr "Predeterminado del navegador"
|
||||
|
||||
#: youtube/i18n_strings.py:63
|
||||
msgid "Liberation Serif"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:64
|
||||
msgid "Arial"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:65
|
||||
msgid "Verdana"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:66
|
||||
msgid "Tahoma"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:69 youtube/templates/base.html:53
|
||||
msgid "Sort by"
|
||||
msgstr "Ordenar por"
|
||||
|
||||
#: youtube/templates/base.html:50
|
||||
#: youtube/i18n_strings.py:70 youtube/templates/base.html:56
|
||||
msgid "Relevance"
|
||||
msgstr "Relevancia"
|
||||
|
||||
#: youtube/templates/base.html:54 youtube/templates/base.html:65
|
||||
#: youtube/i18n_strings.py:71 youtube/templates/base.html:60
|
||||
#: youtube/templates/base.html:71
|
||||
msgid "Upload date"
|
||||
msgstr "Fecha de subida"
|
||||
|
||||
#: youtube/templates/base.html:58
|
||||
#: youtube/i18n_strings.py:72 youtube/templates/base.html:64
|
||||
msgid "View count"
|
||||
msgstr "Número de visualizaciones"
|
||||
|
||||
#: youtube/templates/base.html:62
|
||||
#: youtube/i18n_strings.py:73 youtube/templates/base.html:68
|
||||
msgid "Rating"
|
||||
msgstr "Calificación"
|
||||
|
||||
#: youtube/templates/base.html:68
|
||||
#: youtube/i18n_strings.py:76 youtube/templates/base.html:74
|
||||
msgid "Any"
|
||||
msgstr "Cualquiera"
|
||||
|
||||
#: youtube/templates/base.html:72
|
||||
#: youtube/i18n_strings.py:77 youtube/templates/base.html:78
|
||||
msgid "Last hour"
|
||||
msgstr "Última hora"
|
||||
|
||||
#: youtube/templates/base.html:76
|
||||
#: youtube/i18n_strings.py:78 youtube/templates/base.html:82
|
||||
msgid "Today"
|
||||
msgstr "Hoy"
|
||||
|
||||
#: youtube/templates/base.html:80
|
||||
#: youtube/i18n_strings.py:79 youtube/templates/base.html:86
|
||||
msgid "This week"
|
||||
msgstr "Esta semana"
|
||||
|
||||
#: youtube/templates/base.html:84
|
||||
#: youtube/i18n_strings.py:80 youtube/templates/base.html:90
|
||||
msgid "This month"
|
||||
msgstr "Este mes"
|
||||
|
||||
#: youtube/templates/base.html:88
|
||||
#: youtube/i18n_strings.py:81 youtube/templates/base.html:94
|
||||
msgid "This year"
|
||||
msgstr "Este año"
|
||||
|
||||
#: youtube/i18n_strings.py:84
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:85
|
||||
msgid "Video"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:86
|
||||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:87
|
||||
msgid "Playlist"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:88
|
||||
msgid "Movie"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:89
|
||||
msgid "Show"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:92
|
||||
msgid "Duration"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:93
|
||||
msgid "Short (< 4 minutes)"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:94
|
||||
msgid "Long (> 20 minutes)"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:97 youtube/templates/base.html:45
|
||||
msgid "Search"
|
||||
msgstr "Buscar"
|
||||
|
||||
#: youtube/i18n_strings.py:98 youtube/templates/watch.html:104
|
||||
msgid "Download"
|
||||
msgstr "Descargar"
|
||||
|
||||
#: youtube/i18n_strings.py:99
|
||||
msgid "Subscribe"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:100
|
||||
msgid "Unsubscribe"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:101
|
||||
msgid "Import"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:102
|
||||
msgid "Export"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:103
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:104
|
||||
msgid "Check"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:105
|
||||
msgid "Mute"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:106
|
||||
msgid "Unmute"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:109 youtube/templates/base.html:51
|
||||
msgid "Options"
|
||||
msgstr "Opciones"
|
||||
|
||||
#: youtube/i18n_strings.py:110
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:111
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:112
|
||||
msgid "loading..."
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:115
|
||||
msgid "Top"
|
||||
msgstr "Popularidad"
|
||||
|
||||
#: youtube/i18n_strings.py:116
|
||||
msgid "Newest"
|
||||
msgstr "Más reciente"
|
||||
|
||||
#: youtube/i18n_strings.py:117
|
||||
msgid "Auto"
|
||||
msgstr "Automático"
|
||||
|
||||
#: youtube/i18n_strings.py:118
|
||||
msgid "English"
|
||||
msgstr "Inglés"
|
||||
|
||||
#: youtube/i18n_strings.py:119
|
||||
msgid "Español"
|
||||
msgstr "Español"
|
||||
|
||||
#: youtube/i18n_strings.py:122
|
||||
msgid "Auto (HLS preferred)"
|
||||
msgstr "Auto (HLS preferido)"
|
||||
|
||||
#: youtube/i18n_strings.py:123
|
||||
msgid "Force HLS"
|
||||
msgstr "Forzar HLS"
|
||||
|
||||
#: youtube/i18n_strings.py:124
|
||||
msgid "Force DASH"
|
||||
msgstr "Forzar DASH"
|
||||
|
||||
#: youtube/i18n_strings.py:125
|
||||
msgid "#1"
|
||||
msgstr "#1"
|
||||
|
||||
#: youtube/i18n_strings.py:126
|
||||
msgid "#2"
|
||||
msgstr "#2"
|
||||
|
||||
#: youtube/i18n_strings.py:127
|
||||
msgid "#3"
|
||||
msgstr "#3"
|
||||
|
||||
#: youtube/i18n_strings.py:130 youtube/templates/settings.html:53
|
||||
msgid "Save settings"
|
||||
msgstr "Guardar configuración"
|
||||
|
||||
#: youtube/i18n_strings.py:133
|
||||
msgid "Other"
|
||||
msgstr "Otros"
|
||||
|
||||
#: youtube/i18n_strings.py:136
|
||||
msgid "Playback mode"
|
||||
msgstr "Modo de reproducción"
|
||||
|
||||
#: youtube/i18n_strings.py:139
|
||||
msgid "Autocheck subscriptions"
|
||||
msgstr "Verificar suscripciones automáticamente"
|
||||
|
||||
#: youtube/i18n_strings.py:140
|
||||
msgid "Include shorts in subscriptions"
|
||||
msgstr "Incluir shorts en suscripciones"
|
||||
|
||||
#: youtube/i18n_strings.py:141
|
||||
msgid "Include shorts in channel"
|
||||
msgstr "Incluir shorts en el canal"
|
||||
|
||||
#: youtube/templates/base.html:44
|
||||
msgid "Type to search..."
|
||||
msgstr "Escribe para buscar..."
|
||||
|
||||
#: youtube/templates/comments.html:61
|
||||
msgid "More comments"
|
||||
msgstr "Más comentarios"
|
||||
|
||||
#: youtube/templates/watch.html:100
|
||||
msgid "Direct Link"
|
||||
msgstr "Enlace directo"
|
||||
|
||||
#: youtube/templates/watch.html:152
|
||||
msgid "More info"
|
||||
msgstr "Más información"
|
||||
|
||||
#: youtube/templates/watch.html:176 youtube/templates/watch.html:203
|
||||
msgid "AutoNext"
|
||||
msgstr "Siguiente automático"
|
||||
|
||||
#: youtube/templates/watch.html:225
|
||||
msgid "Related Videos"
|
||||
msgstr "Videos relacionados"
|
||||
|
||||
#: youtube/templates/watch.html:239
|
||||
msgid "Comments disabled"
|
||||
msgstr "Comentarios deshabilitados"
|
||||
|
||||
#: youtube/templates/watch.html:242
|
||||
msgid "Comment"
|
||||
msgstr "Comentario"
|
||||
|
||||
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2026-03-22 15:05-0500\n"
|
||||
"POT-Creation-Date: 2026-04-05 16:52-0500\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -17,59 +17,415 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 2.18.0\n"
|
||||
|
||||
#: youtube/templates/base.html:38
|
||||
msgid "Type to search..."
|
||||
#: youtube/i18n_strings.py:13
|
||||
msgid "Network"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/base.html:39
|
||||
msgid "Search"
|
||||
#: youtube/i18n_strings.py:14
|
||||
msgid "Playback"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/base.html:45
|
||||
msgid "Options"
|
||||
#: youtube/i18n_strings.py:15
|
||||
msgid "Interface"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/base.html:47
|
||||
#: youtube/i18n_strings.py:18
|
||||
msgid "Route Tor"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:19
|
||||
msgid "Default subtitles mode"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:20
|
||||
msgid "AV1 Codec Ranking"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:21
|
||||
msgid "VP8/VP9 Codec Ranking"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:22
|
||||
msgid "H.264 Codec Ranking"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:23
|
||||
msgid "Use integrated sources"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:24
|
||||
msgid "Route images"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:25
|
||||
msgid "Enable comments.js"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:26
|
||||
msgid "Enable SponsorBlock"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:27
|
||||
msgid "Enable embed page"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:30
|
||||
msgid "Related videos mode"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:31
|
||||
msgid "Comments mode"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:32
|
||||
msgid "Enable comment avatars"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:33
|
||||
msgid "Default comment sorting"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:34
|
||||
msgid "Theater mode"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:35
|
||||
msgid "Autoplay videos"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:36
|
||||
msgid "Default resolution"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:37
|
||||
msgid "Use video player"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:38
|
||||
msgid "Use video download"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:39
|
||||
msgid "Proxy images"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:40
|
||||
msgid "Theme"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:41
|
||||
msgid "Font"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:42
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:43
|
||||
msgid "Embed page mode"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:46
|
||||
msgid "Off"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:47
|
||||
msgid "On"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:48
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:49
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:50
|
||||
msgid "Always shown"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:51
|
||||
msgid "Shown by clicking button"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:52
|
||||
msgid "Native"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:53
|
||||
msgid "Native with hotkeys"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:54
|
||||
msgid "Plyr"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:57
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:58
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:59
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:62
|
||||
msgid "Browser default"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:63
|
||||
msgid "Liberation Serif"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:64
|
||||
msgid "Arial"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:65
|
||||
msgid "Verdana"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:66
|
||||
msgid "Tahoma"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:69 youtube/templates/base.html:53
|
||||
msgid "Sort by"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/base.html:50
|
||||
#: youtube/i18n_strings.py:70 youtube/templates/base.html:56
|
||||
msgid "Relevance"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/base.html:54 youtube/templates/base.html:65
|
||||
#: youtube/i18n_strings.py:71 youtube/templates/base.html:60
|
||||
#: youtube/templates/base.html:71
|
||||
msgid "Upload date"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/base.html:58
|
||||
#: youtube/i18n_strings.py:72 youtube/templates/base.html:64
|
||||
msgid "View count"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/base.html:62
|
||||
#: youtube/i18n_strings.py:73 youtube/templates/base.html:68
|
||||
msgid "Rating"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/base.html:68
|
||||
#: youtube/i18n_strings.py:76 youtube/templates/base.html:74
|
||||
msgid "Any"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/base.html:72
|
||||
#: youtube/i18n_strings.py:77 youtube/templates/base.html:78
|
||||
msgid "Last hour"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/base.html:76
|
||||
#: youtube/i18n_strings.py:78 youtube/templates/base.html:82
|
||||
msgid "Today"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/base.html:80
|
||||
#: youtube/i18n_strings.py:79 youtube/templates/base.html:86
|
||||
msgid "This week"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/base.html:84
|
||||
#: youtube/i18n_strings.py:80 youtube/templates/base.html:90
|
||||
msgid "This month"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/base.html:88
|
||||
#: youtube/i18n_strings.py:81 youtube/templates/base.html:94
|
||||
msgid "This year"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:84
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:85
|
||||
msgid "Video"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:86
|
||||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:87
|
||||
msgid "Playlist"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:88
|
||||
msgid "Movie"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:89
|
||||
msgid "Show"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:92
|
||||
msgid "Duration"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:93
|
||||
msgid "Short (< 4 minutes)"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:94
|
||||
msgid "Long (> 20 minutes)"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:97 youtube/templates/base.html:45
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:98 youtube/templates/watch.html:104
|
||||
msgid "Download"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:99
|
||||
msgid "Subscribe"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:100
|
||||
msgid "Unsubscribe"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:101
|
||||
msgid "Import"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:102
|
||||
msgid "Export"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:103
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:104
|
||||
msgid "Check"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:105
|
||||
msgid "Mute"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:106
|
||||
msgid "Unmute"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:109 youtube/templates/base.html:51
|
||||
msgid "Options"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:110
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:111
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:112
|
||||
msgid "loading..."
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:115
|
||||
msgid "Top"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:116
|
||||
msgid "Newest"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:117
|
||||
msgid "Auto"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:118
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:119
|
||||
msgid "Español"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:122
|
||||
msgid "Auto (HLS preferred)"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:123
|
||||
msgid "Force HLS"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:124
|
||||
msgid "Force DASH"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:125
|
||||
msgid "#1"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:126
|
||||
msgid "#2"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:127
|
||||
msgid "#3"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:130 youtube/templates/settings.html:53
|
||||
msgid "Save settings"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:133
|
||||
msgid "Other"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:136
|
||||
msgid "Playback mode"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:139
|
||||
msgid "Autocheck subscriptions"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:140
|
||||
msgid "Include shorts in subscriptions"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/i18n_strings.py:141
|
||||
msgid "Include shorts in channel"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/base.html:44
|
||||
msgid "Type to search..."
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/comments.html:61
|
||||
msgid "More comments"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/watch.html:100
|
||||
msgid "Direct Link"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/watch.html:152
|
||||
msgid "More info"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/watch.html:176 youtube/templates/watch.html:203
|
||||
msgid "AutoNext"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/watch.html:225
|
||||
msgid "Related Videos"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/watch.html:239
|
||||
msgid "Comments disabled"
|
||||
msgstr ""
|
||||
|
||||
#: youtube/templates/watch.html:242
|
||||
msgid "Comment"
|
||||
msgstr ""
|
||||
|
||||
@@ -110,3 +110,32 @@ OPTIONS = _l('Options')
|
||||
SETTINGS = _l('Settings')
|
||||
ERROR = _l('Error')
|
||||
LOADING = _l('loading...')
|
||||
|
||||
# Settings option values
|
||||
TOP = _l('Top')
|
||||
NEWEST = _l('Newest')
|
||||
AUTO = _l('Auto')
|
||||
ENGLISH = _l('English')
|
||||
ESPANOL = _l('Español')
|
||||
|
||||
# Playback options
|
||||
AUTO_HLS_PREFERRED = _l('Auto (HLS preferred)')
|
||||
FORCE_HLS = _l('Force HLS')
|
||||
FORCE_DASH = _l('Force DASH')
|
||||
RANKING_1 = _l('#1')
|
||||
RANKING_2 = _l('#2')
|
||||
RANKING_3 = _l('#3')
|
||||
|
||||
# Form actions
|
||||
SAVE_SETTINGS = _l('Save settings')
|
||||
|
||||
# Other category
|
||||
OTHER = _l('Other')
|
||||
|
||||
# Settings labels
|
||||
PLAYBACK_MODE = _l('Playback mode')
|
||||
|
||||
# Subscription settings (may be used in future)
|
||||
AUTOCHECK_SUBSCRIPTIONS = _l('Autocheck subscriptions')
|
||||
INCLUDE_SHORTS_SUBSCRIPTIONS = _l('Include shorts in subscriptions')
|
||||
INCLUDE_SHORTS_CHANNEL = _l('Include shorts in channel')
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% if 'more_comments_url' is in comments_info %}
|
||||
<a class="page-button more-comments" href="{{ comments_info['more_comments_url'] }}">More comments</a>
|
||||
<a class="page-button more-comments" href="{{ comments_info['more_comments_url'] }}">{{ _('More comments') }}</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
@@ -7,15 +7,15 @@
|
||||
{% block main %}
|
||||
<form method="POST" class="settings-form">
|
||||
{% for categ in categories %}
|
||||
<h2>{{ categ|capitalize }}</h2>
|
||||
<h2>{{ _(categ|capitalize) }}</h2>
|
||||
<ul class="settings-list">
|
||||
{% for setting_name, setting_info, value in settings_by_category[categ] %}
|
||||
{% if not setting_info.get('hidden', false) %}
|
||||
<li class="setting-item">
|
||||
{% if 'label' is in(setting_info) %}
|
||||
<label for="{{ 'setting_' + setting_name }}" {% if 'comment' is in(setting_info) %}title="{{ setting_info['comment'] }}" {% endif %}>{{ setting_info['label'] }}</label>
|
||||
<label for="{{ 'setting_' + setting_name }}" {% if 'comment' is in(setting_info) %}title="{{ setting_info['comment'] }}" {% endif %}>{{ _(setting_info['label']) }}</label>
|
||||
{% else %}
|
||||
<label for="{{ 'setting_' + setting_name }}" {% if 'comment' is in(setting_info) %}title="{{ setting_info['comment'] }}" {% endif %}>{{ setting_name.replace('_', ' ')|capitalize }}</label>
|
||||
<label for="{{ 'setting_' + setting_name }}" {% if 'comment' is in(setting_info) %}title="{{ setting_info['comment'] }}" {% endif %}>{{ _(setting_name.replace('_', ' ')|capitalize) }}</label>
|
||||
{% endif %}
|
||||
|
||||
{% if setting_info['type'].__name__ == 'bool' %}
|
||||
@@ -24,7 +24,7 @@
|
||||
{% if 'options' is in(setting_info) %}
|
||||
<select id="{{ 'setting_' + setting_name }}" name="{{ setting_name }}">
|
||||
{% for option in setting_info['options'] %}
|
||||
<option value="{{ option[0] }}" {{ 'selected' if option[0] == value else '' }}>{{ option[1] }}</option>
|
||||
<option value="{{ option[0] }}" {{ 'selected' if option[0] == value else '' }}>{{ _(option[1]) }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
{% else %}
|
||||
@@ -36,7 +36,7 @@
|
||||
{% if 'options' is in(setting_info) %}
|
||||
<select id="{{ 'setting_' + setting_name }}" name="{{ setting_name }}">
|
||||
{% for option in setting_info['options'] %}
|
||||
<option value="{{ option[0] }}" {{ 'selected' if option[0] == value else '' }}>{{ option[1] }}</option>
|
||||
<option value="{{ option[0] }}" {{ 'selected' if option[0] == value else '' }}>{{ _(option[1]) }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
{% else %}
|
||||
@@ -50,6 +50,6 @@
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endfor %}
|
||||
<input type="submit" value="Save settings">
|
||||
<input type="submit" value="{{ _('Save settings') }}">
|
||||
</form>
|
||||
{% endblock main %}
|
||||
|
||||
@@ -97,11 +97,11 @@
|
||||
</div>
|
||||
<input class="v-checkbox" name="video_info_list" value="{{ video_info }}" form="playlist-edit" type="checkbox">
|
||||
|
||||
<span class="v-direct-link"><a href="https://youtu.be/{{ video_id }}" rel="noopener noreferrer" target="_blank">Direct Link</a></span>
|
||||
<span class="v-direct-link"><a href="https://youtu.be/{{ video_id }}" rel="noopener noreferrer" target="_blank">{{ _('Direct Link') }}</a></span>
|
||||
|
||||
{% if settings.use_video_download != 0 %}
|
||||
<details class="v-download">
|
||||
<summary class="download-dropdown-label">Download</summary>
|
||||
<summary class="download-dropdown-label">{{ _('Download') }}</summary>
|
||||
<ul class="download-dropdown-content">
|
||||
{% for format in download_formats %}
|
||||
<li class="download-format">
|
||||
@@ -149,7 +149,7 @@
|
||||
{% endif %}
|
||||
</div>
|
||||
<details class="v-more-info">
|
||||
<summary>More info</summary>
|
||||
<summary>{{ _('More info') }}</summary>
|
||||
<div class="more-info-content">
|
||||
<p>Tor exit node: {{ ip_address }}</p>
|
||||
{% if invidious_used %}
|
||||
@@ -173,7 +173,7 @@
|
||||
<div class="playlist-header">
|
||||
<a href="{{ playlist['url'] }}" title="{{ playlist['title'] }}"><h3>{{ playlist['title'] }}</h3></a>
|
||||
<ul class="playlist-metadata">
|
||||
<li><label for="playlist-autoplay-toggle">Autoplay: </label><input id="playlist-autoplay-toggle" type="checkbox" class="autoplay-toggle"></li>
|
||||
<li><label for="playlist-autoplay-toggle">{{ _('AutoNext') }}: </label><input id="playlist-autoplay-toggle" type="checkbox" class="autoplay-toggle"></li>
|
||||
{% if playlist['current_index'] is none %}
|
||||
<li>[Error!]/{{ playlist['video_count'] }}</li>
|
||||
{% else %}
|
||||
@@ -200,7 +200,7 @@
|
||||
</nav>
|
||||
</div>
|
||||
{% elif settings.related_videos_mode != 0 %}
|
||||
<div class="related-autoplay"><label for="related-autoplay-toggle">Autoplay: </label><input id="related-autoplay-toggle" type="checkbox" class="autoplay-toggle"></div>
|
||||
<div class="related-autoplay"><label for="related-autoplay-toggle">{{ _('AutoNext') }}: </label><input id="related-autoplay-toggle" type="checkbox" class="autoplay-toggle"></div>
|
||||
{% endif %}
|
||||
|
||||
{% if subtitle_sources %}
|
||||
@@ -222,7 +222,7 @@
|
||||
|
||||
{% if settings.related_videos_mode != 0 %}
|
||||
<details class="related-videos-outer" {{'open' if settings.related_videos_mode == 1 else ''}}>
|
||||
<summary>Related Videos</summary>
|
||||
<summary>{{ _('Related Videos') }}</summary>
|
||||
<nav class="related-videos-inner">
|
||||
{% for info in related %}
|
||||
{{ common_elements.item(info, include_badges=false) }}
|
||||
@@ -236,10 +236,10 @@
|
||||
<!-- comments -->
|
||||
{% if settings.comments_mode != 0 %}
|
||||
{% if comments_disabled %}
|
||||
<div class="comments-area-outer comments-disabled">Comments disabled</div>
|
||||
<div class="comments-area-outer comments-disabled">{{ _('Comments disabled') }}</div>
|
||||
{% else %}
|
||||
<details class="comments-area-outer" {{'open' if settings.comments_mode == 1 else ''}}>
|
||||
<summary>{{ comment_count|commatize }} comment{{'s' if comment_count != '1' else ''}}</summary>
|
||||
<summary>{{ comment_count|commatize }} {{ _('Comment') }}{{'s' if comment_count != '1' else ''}}</summary>
|
||||
<div class="comments-area-inner comments-area">
|
||||
{% if comments_info %}
|
||||
{{ comments.video_comments(comments_info) }}
|
||||
|
||||
Reference in New Issue
Block a user