weeb-cli 2.11.1__tar.gz → 2.12.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/PKG-INFO +1 -1
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/pyproject.toml +1 -1
- weeb_cli-2.12.0/weeb_cli/__init__.py +1 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/search/watch_flow.py +12 -8
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/settings/settings_config.py +2 -2
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/settings/settings_menu.py +2 -2
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/config.py +14 -8
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/locales/de.json +1 -1
- weeb_cli-2.12.0/weeb_cli/locales/pl.json +378 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/locales/tr.json +1 -1
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/main.py +3 -2
- weeb_cli-2.12.0/weeb_cli/providers/pl/docchi.py +110 -0
- weeb_cli-2.12.0/weeb_cli/services/__init__.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/services/player.py +18 -7
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/services/stream_validator.py +44 -31
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli.egg-info/PKG-INFO +1 -1
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli.egg-info/SOURCES.txt +3 -0
- weeb_cli-2.11.1/weeb_cli/__init__.py +0 -1
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/LICENSE +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/README.md +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/setup.cfg +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/tests/test_anilist_tracker.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/tests/test_aniworld_provider.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/tests/test_api.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/tests/test_cache.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/tests/test_exceptions.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/tests/test_kitsu_tracker.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/tests/test_mal_tracker.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/tests/test_providers.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/tests/test_sanitizer.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/tests/test_sanitizer_security.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/__main__.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/api.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/downloads.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/library.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/search/__init__.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/search/anime_details.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/search/download_flow.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/search/episode_utils.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/search/search_handlers.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/search/stream_utils.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/search.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/serve.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/settings/__init__.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/settings/settings_backup.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/settings/settings_cache.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/settings/settings_download.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/settings/settings_drives.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/settings/settings_shortcuts.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/settings/settings_trackers.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/settings.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/setup.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/commands/watchlist.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/exceptions.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/i18n.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/locales/en.json +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/providers/__init__.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/providers/base.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/providers/de/__init__.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/providers/de/aniworld.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/providers/en/__init__.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/providers/en/allanime.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/providers/en/hianime.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/providers/extractors/__init__.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/providers/extractors/doodstream.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/providers/extractors/filemoon.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/providers/extractors/megacloud.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/providers/extractors/streamtape.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/providers/extractors/vidoza.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/providers/extractors/voe.py +0 -0
- {weeb_cli-2.11.1/weeb_cli/providers/tr → weeb_cli-2.12.0/weeb_cli/providers/pl}/__init__.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/providers/registry.py +0 -0
- {weeb_cli-2.11.1/weeb_cli/services → weeb_cli-2.12.0/weeb_cli/providers/tr}/__init__.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/providers/tr/animecix.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/providers/tr/anizle.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/providers/tr/turkanime.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/providers/tr/weeb.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/services/_base.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/services/_tracker_base.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/services/cache.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/services/database.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/services/dependency_manager.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/services/details.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/services/discord_rpc.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/services/downloader.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/services/error_handler.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/services/headless_downloader.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/services/local_library.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/services/logger.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/services/notifier.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/services/progress.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/services/scraper.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/services/search.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/services/shortcuts.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/services/tracker.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/services/updater.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/services/watch.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/templates/anilist_error.html +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/templates/anilist_success.html +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/templates/mal_error.html +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/templates/mal_success.html +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/ui/__init__.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/ui/header.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/ui/menu.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/ui/prompt.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/utils/__init__.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli/utils/sanitizer.py +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli.egg-info/dependency_links.txt +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli.egg-info/entry_points.txt +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli.egg-info/requires.txt +0 -0
- {weeb_cli-2.11.1 → weeb_cli-2.12.0}/weeb_cli.egg-info/top_level.txt +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "weeb-cli"
|
|
7
|
-
version = "2.
|
|
7
|
+
version = "2.12.0"
|
|
8
8
|
description = "Tarayıcı yok, reklam yok, dikkat dağıtıcı unsur yok. Sadece siz ve eşsiz bir anime izleme deneyimi."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [{ name = "ewgsta", email = "ewgst@proton.me" }]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2.12.0"
|
|
@@ -171,13 +171,17 @@ def _play_episode(slug, selected_ep, details, season, episodes, completed_ids):
|
|
|
171
171
|
return False
|
|
172
172
|
|
|
173
173
|
from weeb_cli.services.stream_validator import stream_validator
|
|
174
|
+
from weeb_cli.config import config
|
|
174
175
|
|
|
175
|
-
console.print(f"[dim]{i18n.t('details.validating_streams')}...[/dim]")
|
|
176
176
|
valid_streams = []
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
177
|
+
if config.get("scraping_source") == "docchi":
|
|
178
|
+
valid_streams = streams_list
|
|
179
|
+
else:
|
|
180
|
+
console.print(f"[dim]{i18n.t('details.validating_streams')}...[/dim]")
|
|
181
|
+
for stream in streams_list:
|
|
182
|
+
is_valid, error = stream_validator.validate_url(stream.get("url"), timeout=3)
|
|
183
|
+
if is_valid:
|
|
184
|
+
valid_streams.append(stream)
|
|
181
185
|
|
|
182
186
|
if not valid_streams:
|
|
183
187
|
console.print(f"[red]{i18n.t('details.no_valid_streams')}[/red]")
|
|
@@ -239,9 +243,6 @@ def _play_episode(slug, selected_ep, details, season, episodes, completed_ids):
|
|
|
239
243
|
return play_success
|
|
240
244
|
|
|
241
245
|
def _select_stream(streams_list):
|
|
242
|
-
if len(streams_list) == 1:
|
|
243
|
-
return streams_list[0]
|
|
244
|
-
|
|
245
246
|
stream_choices = []
|
|
246
247
|
for s in streams_list:
|
|
247
248
|
server = s.get("server", "Unknown")
|
|
@@ -249,6 +250,9 @@ def _select_stream(streams_list):
|
|
|
249
250
|
label = f"{server} ({quality})"
|
|
250
251
|
stream_choices.append(questionary.Choice(label, value=s))
|
|
251
252
|
|
|
253
|
+
if not stream_choices:
|
|
254
|
+
return None
|
|
255
|
+
|
|
252
256
|
return questionary.select(
|
|
253
257
|
i18n.t("details.select_source"),
|
|
254
258
|
choices=stream_choices,
|
|
@@ -41,10 +41,10 @@ def toggle_shortcuts():
|
|
|
41
41
|
def change_language():
|
|
42
42
|
from weeb_cli.services.scraper import scraper
|
|
43
43
|
|
|
44
|
-
langs = {"Türkçe": "tr", "English": "en", "Deutsch": "de"}
|
|
44
|
+
langs = {"Türkçe": "tr", "English": "en", "Deutsch": "de", "Polski": "pl"}
|
|
45
45
|
try:
|
|
46
46
|
selected = questionary.select(
|
|
47
|
-
"
|
|
47
|
+
"",
|
|
48
48
|
choices=list(langs.keys()),
|
|
49
49
|
pointer=">",
|
|
50
50
|
use_shortcuts=False
|
|
@@ -79,7 +79,7 @@ def _build_settings_menu():
|
|
|
79
79
|
|
|
80
80
|
choices.extend([
|
|
81
81
|
i18n.t("settings.trackers"),
|
|
82
|
-
i18n.t("settings.
|
|
82
|
+
i18n.t("settings.cache_title"),
|
|
83
83
|
i18n.t("settings.backup_restore")
|
|
84
84
|
])
|
|
85
85
|
|
|
@@ -91,7 +91,7 @@ def _handle_settings_action(answer):
|
|
|
91
91
|
i18n.t("settings.download_settings"): download_settings_menu,
|
|
92
92
|
i18n.t("settings.external_drives"): external_drives_menu,
|
|
93
93
|
i18n.t("settings.trackers"): trackers_menu,
|
|
94
|
-
i18n.t("settings.
|
|
94
|
+
i18n.t("settings.cache_title"): cache_settings_menu,
|
|
95
95
|
i18n.t("settings.backup_restore"): backup_restore_menu,
|
|
96
96
|
}
|
|
97
97
|
|
|
@@ -4,18 +4,21 @@ from pathlib import Path
|
|
|
4
4
|
APP_NAME = "weeb-cli"
|
|
5
5
|
CONFIG_DIR = Path.home() / f".{APP_NAME}"
|
|
6
6
|
|
|
7
|
+
|
|
7
8
|
def get_default_download_dir():
|
|
8
9
|
from weeb_cli.i18n import i18n
|
|
10
|
+
|
|
9
11
|
folder_name = i18n.t("downloads.default_folder_name", "weeb-downloads")
|
|
10
12
|
return os.path.join(os.getcwd(), folder_name)
|
|
11
13
|
|
|
14
|
+
|
|
12
15
|
DEFAULT_CONFIG = {
|
|
13
|
-
"language": None,
|
|
16
|
+
"language": None,
|
|
14
17
|
"aria2_enabled": True,
|
|
15
18
|
"ytdlp_enabled": True,
|
|
16
19
|
"aria2_max_connections": 16,
|
|
17
20
|
"max_concurrent_downloads": 3,
|
|
18
|
-
"download_dir": None,
|
|
21
|
+
"download_dir": None,
|
|
19
22
|
"ytdlp_format": "bestvideo+bestaudio/best",
|
|
20
23
|
"scraping_source": None,
|
|
21
24
|
"show_description": True,
|
|
@@ -23,21 +26,23 @@ DEFAULT_CONFIG = {
|
|
|
23
26
|
"download_max_retries": 3,
|
|
24
27
|
"download_retry_delay": 10,
|
|
25
28
|
"discord_rpc_enabled": True,
|
|
26
|
-
"shortcuts_enabled": False
|
|
29
|
+
"shortcuts_enabled": False,
|
|
27
30
|
}
|
|
28
31
|
|
|
32
|
+
|
|
29
33
|
class Config:
|
|
30
34
|
def __init__(self):
|
|
31
35
|
self._db = None
|
|
32
36
|
self._headless = False
|
|
33
|
-
|
|
37
|
+
|
|
34
38
|
@property
|
|
35
39
|
def db(self):
|
|
36
40
|
if self._db is None:
|
|
37
41
|
from weeb_cli.services.database import db
|
|
42
|
+
|
|
38
43
|
self._db = db
|
|
39
44
|
return self._db
|
|
40
|
-
|
|
45
|
+
|
|
41
46
|
def get(self, key, default=None):
|
|
42
47
|
if not self._headless:
|
|
43
48
|
try:
|
|
@@ -46,20 +51,21 @@ class Config:
|
|
|
46
51
|
return val
|
|
47
52
|
except Exception:
|
|
48
53
|
pass
|
|
49
|
-
|
|
54
|
+
|
|
50
55
|
# Special handling for download_dir
|
|
51
56
|
if key == "download_dir":
|
|
52
57
|
return default if default is not None else get_default_download_dir()
|
|
53
|
-
|
|
58
|
+
|
|
54
59
|
# Use provided default, fallback to DEFAULT_CONFIG, then None
|
|
55
60
|
if default is not None:
|
|
56
61
|
return DEFAULT_CONFIG.get(key, default)
|
|
57
62
|
return DEFAULT_CONFIG.get(key)
|
|
58
|
-
|
|
63
|
+
|
|
59
64
|
def set(self, key, value):
|
|
60
65
|
self.db.set_config(key, value)
|
|
61
66
|
|
|
62
67
|
def set_headless(self, headless: bool = True):
|
|
63
68
|
self._headless = headless
|
|
64
69
|
|
|
70
|
+
|
|
65
71
|
config = Config()
|
|
@@ -150,7 +150,7 @@
|
|
|
150
150
|
"restore_confirm": "Die aktuelle Datenbank wird überschrieben. Sind Sie sicher?",
|
|
151
151
|
"restore_success": "Wiederherstellung erfolgreich!",
|
|
152
152
|
"restore_failed": "Wiederherstellung fehlgeschlagen.",
|
|
153
|
-
"
|
|
153
|
+
"cache_title": "Cache-Verwaltung",
|
|
154
154
|
"cache_title": "Cache-Verwaltung",
|
|
155
155
|
"cache_memory_entries": "Speichereinträge",
|
|
156
156
|
"cache_file_entries": "Dateieinträge",
|
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
{
|
|
2
|
+
"update": {
|
|
3
|
+
"available": "Dostępna nowa aktualizacja!",
|
|
4
|
+
"current": "Obecna wersja",
|
|
5
|
+
"prompt": "Czy chcesz zaktualizować teraz?",
|
|
6
|
+
"opening": "Otwieranie strony pobierania...",
|
|
7
|
+
"error": "Aktualizacja nie powiodła się",
|
|
8
|
+
"success": "Aktualizacja zakończona sukcesem!",
|
|
9
|
+
"restart_required": "Uruchom ponownie aplikację, aby zastosować zmiany.",
|
|
10
|
+
"manual_required": "Automatyczna aktualizacja niedostępna, otwieranie strony pobierania...",
|
|
11
|
+
"detected": "Wykryto metodę instalacji",
|
|
12
|
+
"running": "Uruchomione",
|
|
13
|
+
"timeout": "Operacja przekroczyła limit czasu.",
|
|
14
|
+
"fallback": "Aktualizacja nie powiodła się, otwieranie strony pobierania...",
|
|
15
|
+
"downloading_progress": "Pobieranie: {percent}%",
|
|
16
|
+
"downloaded": "Pobrano",
|
|
17
|
+
"location": "Lokalizacja",
|
|
18
|
+
"restarting": "Ponowne uruchamianie",
|
|
19
|
+
"updating_pip": "Aktualizacja przez pip",
|
|
20
|
+
"no_asset": "Nie znaleziono pliku do pobrania",
|
|
21
|
+
"download_url": "URL pobierania",
|
|
22
|
+
"manual_update": "Wymagana ręczna aktualizacja",
|
|
23
|
+
"pip_command": "pip install --upgrade weeb-cli"
|
|
24
|
+
},
|
|
25
|
+
"menu": {
|
|
26
|
+
"title": "Menu Główne",
|
|
27
|
+
"prompt": "Co chcesz zrobić?",
|
|
28
|
+
"exit_confirm_downloads": "Istnieją aktywne pobierania. Czy na pewno chcesz wyjść?",
|
|
29
|
+
"options": {
|
|
30
|
+
"search": "Szukaj Anime",
|
|
31
|
+
"watchlist": "Moja Lista",
|
|
32
|
+
"downloads": "Pobrane",
|
|
33
|
+
"library": "Moja Biblioteka",
|
|
34
|
+
"settings": "Ustawienia",
|
|
35
|
+
"exit": "Wyjście"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"settings": {
|
|
39
|
+
"title": "Ustawienia",
|
|
40
|
+
"trackers": "Trackery",
|
|
41
|
+
"language": "Zmień Język",
|
|
42
|
+
"source": "Wybierz Źródło",
|
|
43
|
+
"aria2": "Pobieranie Aria2",
|
|
44
|
+
"ytdlp": "Wsparcie yt-dlp",
|
|
45
|
+
"show_description": "Pokaż Opis",
|
|
46
|
+
"discord_rpc": "Discord RPC",
|
|
47
|
+
"aria2_config": "Ustawienia Aria2",
|
|
48
|
+
"ytdlp_config": "Ustawienia yt-dlp",
|
|
49
|
+
"max_conn": "Maks. Połączeń",
|
|
50
|
+
"download_dir": "Katalog Pobierania",
|
|
51
|
+
"format": "Format",
|
|
52
|
+
"enter_conn": "Połączenia (1-16)",
|
|
53
|
+
"enter_path": "Ścieżka Pobierania",
|
|
54
|
+
"enter_format": "Ciąg formatujący",
|
|
55
|
+
"download_settings": "Ustawienia Pobierania",
|
|
56
|
+
"change_folder_name": "Zmień Nazwę Folderu",
|
|
57
|
+
"change_full_path": "Zmień Pełną Ścieżkę",
|
|
58
|
+
"folder_name_prompt": "Nazwa Folderu:",
|
|
59
|
+
"full_path_prompt": "Pełna Ścieżka:",
|
|
60
|
+
"concurrent_downloads": "Jednoczesne Pobierania",
|
|
61
|
+
"enter_concurrent": "Wprowadź liczbę jednoczesnych pobrań (1-5)",
|
|
62
|
+
"max_retries": "Liczba Ponowień",
|
|
63
|
+
"retry_delay": "Opóźnienie Ponowienia (s)",
|
|
64
|
+
"enter_max_retries": "Wprowadź liczbę ponowień (0-10)",
|
|
65
|
+
"enter_retry_delay": "Wprowadź opóźnienie w sekundach",
|
|
66
|
+
"language_changed": "Język zmieniony na Polski.",
|
|
67
|
+
"source_changed": "Źródło zmienione na {source}.",
|
|
68
|
+
"no_sources": "Brak dostępnych źródeł dla tego języka.",
|
|
69
|
+
"toggle_on": "{tool} włączone.",
|
|
70
|
+
"toggle_off": "{tool} wyłączone.",
|
|
71
|
+
"external_drives": "Dyski Zewnętrzne",
|
|
72
|
+
"add_drive": "Dodaj Dysk",
|
|
73
|
+
"enter_drive_path": "Wprowadź ścieżkę dysku (np. D:\\Anime)",
|
|
74
|
+
"enter_drive_name": "Pseudonim dla dysku",
|
|
75
|
+
"drive_not_found": "Nie znaleziono podanej ścieżki.",
|
|
76
|
+
"drive_added": "Dysk dodany.",
|
|
77
|
+
"rename_drive": "Zmień Nazwę",
|
|
78
|
+
"remove_drive": "Usuń Dysk",
|
|
79
|
+
"confirm_remove": "Czy na pewno chcesz usunąć ten dysk?",
|
|
80
|
+
"drive_renamed": "Nazwa dysku zmieniona.",
|
|
81
|
+
"drive_removed": "Dysk usunięty.",
|
|
82
|
+
"current_dir": "Obecny: {dir}",
|
|
83
|
+
"retry_delay_error": "Opóźnienie ponowienia musi wynosić od 0 do 300 sekund.",
|
|
84
|
+
"cache": {
|
|
85
|
+
"title": "Zarządzanie Cache",
|
|
86
|
+
"memory_entries": "Wpisy w pamięci",
|
|
87
|
+
"file_entries": "Wpisy w plikach",
|
|
88
|
+
"total_size": "Całkowity rozmiar",
|
|
89
|
+
"clear_all": "Wyczyść cały cache",
|
|
90
|
+
"clear_provider": "Wyczyść cache obecnego dostawcy",
|
|
91
|
+
"cleanup_old": "Wyczyść stary cache (>24h)",
|
|
92
|
+
"cleared": "Cache wyczyszczony",
|
|
93
|
+
"provider_cleared": "Cache dostawcy wyczyszczony",
|
|
94
|
+
"cleaned": "Oczyszczono",
|
|
95
|
+
"prompt": "Wybierz działanie",
|
|
96
|
+
"confirm_clear_all": "Wyczyścić cały cache?"
|
|
97
|
+
},
|
|
98
|
+
"anilist": "AniList",
|
|
99
|
+
"anilist_connected": "Połączono: {user}",
|
|
100
|
+
"anilist_not_connected": "Połącz konto AniList, aby synchronizować historię oglądania.",
|
|
101
|
+
"anilist_login": "Połącz con AniList",
|
|
102
|
+
"anilist_logout": "Odłącz",
|
|
103
|
+
"anilist_sync": "Synchronizuj Oczekujące Aktualizacje",
|
|
104
|
+
"anilist_pending": "{count} oczekujących aktualizacji",
|
|
105
|
+
"anilist_synced": "{count} zaktualizowanych wpisów",
|
|
106
|
+
"anilist_opening_browser": "Otwieranie przeglądarki...",
|
|
107
|
+
"anilist_waiting": "Zaloguj się w przeglądarce, zostanie to wykryte automatycznie...",
|
|
108
|
+
"anilist_timeout": "Przekroczono limit czasu. Spróbuj ponownie.",
|
|
109
|
+
"anilist_paste_token": "Po zalogowaniu wklej token z adresu URL tutaj:",
|
|
110
|
+
"anilist_login_success": "Pomyślnie połączono z AniList!",
|
|
111
|
+
"anilist_login_failed": "Połączenie nieudane. Token może być nieprawidłowy.",
|
|
112
|
+
"anilist_logged_out": "Odłączono od AniList.",
|
|
113
|
+
"confirm_logout": "Czy na pewno chcesz się odłączyć?",
|
|
114
|
+
"mal": "MyAnimeList",
|
|
115
|
+
"mal_connected": "Połączono: {user}",
|
|
116
|
+
"mal_not_connected": "Połącz konto MAL, aby synchronizować historię oglądania.",
|
|
117
|
+
"mal_login": "Połącz z MAL",
|
|
118
|
+
"mal_logout": "Odłącz",
|
|
119
|
+
"mal_sync": "Synchronizuj Oczekujące Aktualizacje",
|
|
120
|
+
"mal_pending": "{count} oczekujących aktualizacji",
|
|
121
|
+
"mal_synced": "{count} zaktualizowanych wpisów",
|
|
122
|
+
"mal_opening_browser": "Otwieranie przeglądarki...",
|
|
123
|
+
"mal_waiting": "Zaloguj się w przeglądarce, zostanie to wykryte automatycznie...",
|
|
124
|
+
"mal_login_success": "Pomyślnie połączono z MAL!",
|
|
125
|
+
"mal_login_failed": "Połączenie nieudane. Spróbuj ponownie.",
|
|
126
|
+
"mal_logged_out": "Odłączono od MAL.",
|
|
127
|
+
"kitsu": "Kitsu",
|
|
128
|
+
"kitsu_connected": "Połączono: {user}",
|
|
129
|
+
"kitsu_not_connected": "Połącz konto Kitsu, aby synchronizować historię oglądania.",
|
|
130
|
+
"kitsu_login": "Połącz z Kitsu",
|
|
131
|
+
"kitsu_logout": "Odłącz",
|
|
132
|
+
"kitsu_sync": "Synchronizuj Oczekujące Aktualizacje",
|
|
133
|
+
"kitsu_pending": "{count} oczekujących aktualizacji",
|
|
134
|
+
"kitsu_synced": "{count} zaktualizowanych wpisów",
|
|
135
|
+
"kitsu_enter_credentials": "Wprowadź dane logowania Kitsu",
|
|
136
|
+
"kitsu_email": "Email lub Nazwa użytkownika:",
|
|
137
|
+
"kitsu_password": "Hasło:",
|
|
138
|
+
"kitsu_login_success": "Pomyślnie połączono z Kitsu!",
|
|
139
|
+
"kitsu_login_failed": "Połączenie nieudane. Sprawdź swoje dane.",
|
|
140
|
+
"kitsu_logged_out": "Odłączono od Kitsu.",
|
|
141
|
+
"backup_restore": "Kopia Zapasowa i Przywracanie",
|
|
142
|
+
"db_location": "Lokalizacja Bazy Danych",
|
|
143
|
+
"db_size": "Rozmiar",
|
|
144
|
+
"create_backup": "Utwórz Kopię Zapasową",
|
|
145
|
+
"restore_backup": "Przywróć Kopię Zapasową",
|
|
146
|
+
"backup_path": "Nazwa pliku lub ścieżka kopii",
|
|
147
|
+
"restore_path": "Ścieżka pliku kopii",
|
|
148
|
+
"backup_success": "Kopia zapasowa utworzona pomyślnie!",
|
|
149
|
+
"backup_failed": "Tworzenie kopii zapasowej nie powiodło się.",
|
|
150
|
+
"restore_confirm": "Obecna baza danych zostanie nadpisana. Czy jesteś pewien?",
|
|
151
|
+
"restore_success": "Przywracanie zakończone sukcesem!",
|
|
152
|
+
"restore_failed": "Przywracanie nie powiodło się.",
|
|
153
|
+
"cache_title": "Zarządzanie Cache",
|
|
154
|
+
"cache_memory_entries": "Wpisy w pamięci",
|
|
155
|
+
"cache_file_entries": "Wpisy w plikach",
|
|
156
|
+
"cache_total_size": "Całkowity rozmiar",
|
|
157
|
+
"cache_clear_all": "Wyczyść cały cache",
|
|
158
|
+
"cache_clear_provider": "Wyczyść cache obecnego dostawcy",
|
|
159
|
+
"cache_cleanup_old": "Wyczyść stary cache (>24h)",
|
|
160
|
+
"cache_cleared": "Cache wyczyszczony",
|
|
161
|
+
"cache_provider_cleared": "Cache dostawcy wyczyszczony",
|
|
162
|
+
"cache_cleaned": "Oczyszczono",
|
|
163
|
+
"cache_prompt": "Wybierz działanie",
|
|
164
|
+
"cache_confirm_clear_all": "Wyczyścić cały cache?",
|
|
165
|
+
"shortcuts": "Skróty Klawiszowe",
|
|
166
|
+
"shortcuts_config": "Ustawienia Skrótów",
|
|
167
|
+
"shortcuts_hint": "Używaj pojedynczych klawiszy dla szybkiego dostępu v menu",
|
|
168
|
+
"shortcut_search": "Szukaj Anime",
|
|
169
|
+
"shortcut_downloads": "Pobrane",
|
|
170
|
+
"shortcut_watchlist": "Lista",
|
|
171
|
+
"shortcut_settings": "Ustawienia",
|
|
172
|
+
"shortcut_exit": "Wyjście",
|
|
173
|
+
"shortcut_next_episode": "Następny Odcinek",
|
|
174
|
+
"shortcut_prev_episode": "Poprzedni Odcinek",
|
|
175
|
+
"shortcut_back": "Wstecz",
|
|
176
|
+
"shortcut_help": "Pomoc",
|
|
177
|
+
"shortcuts_reset": "Resetuj do Domyślnych",
|
|
178
|
+
"shortcuts_reset_confirm": "Wszystkie skróty zostaną zresetowane. Czy jesteś pewien?",
|
|
179
|
+
"shortcuts_reset_success": "Skróty zresetowane.",
|
|
180
|
+
"enter_shortcut": "Wprowadź nowy klawisz skrótu",
|
|
181
|
+
"shortcut_single_char": "Skrót musi być pojedynczym znakiem.",
|
|
182
|
+
"shortcut_changed": "Skrót zmieniony."
|
|
183
|
+
},
|
|
184
|
+
"setup": {
|
|
185
|
+
"welcome": "Witaj w Weeb CLI!",
|
|
186
|
+
"language_prompt": "Wybierz Język / Select Language",
|
|
187
|
+
"wizard_title": "Kreator Konfiguracji",
|
|
188
|
+
"checking_deps": "Sprawdzanie zależności...",
|
|
189
|
+
"checking_tool": "Sprawdzanie {tool}...",
|
|
190
|
+
"installing_tool": "Instalowanie {tool}...",
|
|
191
|
+
"check": "Sprawdzanie {tool}...",
|
|
192
|
+
"found": "Znaleziono: {path}",
|
|
193
|
+
"found_short": "Dostępne",
|
|
194
|
+
"not_found": "Nie znaleziono {tool}. Próba instalacji...",
|
|
195
|
+
"not_found_short": "Nie znaleziono",
|
|
196
|
+
"installing": "Instalowanie {tool}...",
|
|
197
|
+
"installed": "Zainstalowano",
|
|
198
|
+
"downloading": "Pobieranie {tool}...",
|
|
199
|
+
"success": "{tool} zainstalowany pomyślnie.",
|
|
200
|
+
"failed": "Błąd podczas instalacji {tool}.",
|
|
201
|
+
"failed_short": "Błąd",
|
|
202
|
+
"manual_required": "Automatyczna instalacja {tool} nie powiodła se. Zainstaluj ręcznie.",
|
|
203
|
+
"complete": "Konfiguracja zakończona!",
|
|
204
|
+
"location": "Narzędzia zainstalowane w: {path}",
|
|
205
|
+
"pkg_manager_try": "Próba użycia menedżera pakietów: {manager}..."
|
|
206
|
+
},
|
|
207
|
+
"common": {
|
|
208
|
+
"error": "Błąd",
|
|
209
|
+
"processing": "Przetwarzanie...",
|
|
210
|
+
"continue_key": "Nacişnij Enter, aby kontynuować...",
|
|
211
|
+
"success": "Do widzenia!",
|
|
212
|
+
"enabled": "Włączone",
|
|
213
|
+
"disabled": "Wyłączone",
|
|
214
|
+
"network_error": "Brak połączenia z internetem!",
|
|
215
|
+
"ctrl_c_hint": "Wskazówka: Użyj Ctrl+C, aby wrócić. (Wyjście w Menu Głównym)",
|
|
216
|
+
"wip": "W trakcie prac...",
|
|
217
|
+
"cancelled": "Anulowano"
|
|
218
|
+
},
|
|
219
|
+
"search": {
|
|
220
|
+
"prompt": "Wprowadź nazwę anime",
|
|
221
|
+
"searching": "Szukanie...",
|
|
222
|
+
"no_results": "Nie znaleziono wyników.",
|
|
223
|
+
"results": "Wyniki Wyszukiwania",
|
|
224
|
+
"cancel": "Anuluj",
|
|
225
|
+
"error": "Wyszukiwanie nie powiodło się.",
|
|
226
|
+
"recent": "Ostatnie Wyszukiwania"
|
|
227
|
+
},
|
|
228
|
+
"details": {
|
|
229
|
+
"error_slug": "Błąd: Nieprawidłowe ID anime.",
|
|
230
|
+
"not_found": "Nie znaleziono szczegółów.",
|
|
231
|
+
"episode": "Odcinek",
|
|
232
|
+
"season": "Sezon",
|
|
233
|
+
"select_episode": "Wybierz Odcinek",
|
|
234
|
+
"select_season": "Wybierz Sezon",
|
|
235
|
+
"no_episodes": "Brak dostępnych odcinków.",
|
|
236
|
+
"selected": "Wybrano: {episode}",
|
|
237
|
+
"watch": "Oglądaj",
|
|
238
|
+
"download": "Pobierz",
|
|
239
|
+
"add_to_library": "Dodaj do Biblioteki",
|
|
240
|
+
"remove_from_library": "Usuń z Biblioteki",
|
|
241
|
+
"added_to_library": "Dodano do biblioteki!",
|
|
242
|
+
"already_in_library": "Już jest v bibliotece.",
|
|
243
|
+
"removed_from_library": "Usunięto z biblioteki.",
|
|
244
|
+
"mark_watched": "Oznaczyć jako obejrzane?",
|
|
245
|
+
"marked_watched": "Oznaczono jako obejrzane",
|
|
246
|
+
"watched_prefix": "✓ ",
|
|
247
|
+
"next_prefix": "● ",
|
|
248
|
+
"validating_streams": "Walidacja strumieni...",
|
|
249
|
+
"no_valid_streams": "Nie znaleziono prawidłowych strumieni.",
|
|
250
|
+
"streams_valid": "strumieni prawidłowych",
|
|
251
|
+
"sync_to_trackers": "Synchronizować również z trackerami?",
|
|
252
|
+
"action_prompt": "Wybierz Działanie",
|
|
253
|
+
"download_options": {
|
|
254
|
+
"all": "Wybierz Wszystkie",
|
|
255
|
+
"manual": "Wybór Ręczny",
|
|
256
|
+
"range": "Wybór Zakresu",
|
|
257
|
+
"prompt": "Wybierz tryb pobierania",
|
|
258
|
+
"range_input": "Wprowadź zakres (np. 1-5, 8)",
|
|
259
|
+
"started": "Pobieranie rozpoczęte...",
|
|
260
|
+
"range_error": "Nieprawidłowy format zakresu."
|
|
261
|
+
},
|
|
262
|
+
"player_starting": "Uruchamianie Odtwarzacza...",
|
|
263
|
+
"stream_not_found": "Nie znaleziono URL strumienia.",
|
|
264
|
+
"select_source": "Wybierz Źródło:",
|
|
265
|
+
"invalid_ep_id": "Nieprawidłowe ID Odcinka.",
|
|
266
|
+
"download_wip": "Funkcja pobierania już vkrótce...",
|
|
267
|
+
"queueing": "Kolejkowanie {count} odcinków... (Vkrótce)"
|
|
268
|
+
},
|
|
269
|
+
"player": {
|
|
270
|
+
"installing_mpv": "Nie znaleziono MPV. Instalowanie...",
|
|
271
|
+
"install_failed": "Instalacja MPV nie powiodła se. Zainstaluj ręcznie.",
|
|
272
|
+
"error": "Błąd odtwarzacza",
|
|
273
|
+
"resuming": "Wznawianie od {time}s",
|
|
274
|
+
"auto_marked": "Osiągnięto 80%, automatycznie oznaczono jako obejrzane."
|
|
275
|
+
},
|
|
276
|
+
"watchlist": {
|
|
277
|
+
"total_anime": "Suma Anime",
|
|
278
|
+
"total_episodes": "Suma Odcinków",
|
|
279
|
+
"total_hours": "Całkowity Czas",
|
|
280
|
+
"last_watched": "Ostatnio Oglądane",
|
|
281
|
+
"completed": "Ukończone",
|
|
282
|
+
"in_progress": "W Trakcie",
|
|
283
|
+
"select_category": "Wybierz Kategorię",
|
|
284
|
+
"select_anime": "Wybierz Anime",
|
|
285
|
+
"no_completed": "Brak ukończonych anime.",
|
|
286
|
+
"no_in_progress": "Brak anime v trakcie oglądania.",
|
|
287
|
+
"anime_title": "Anime",
|
|
288
|
+
"episodes_watched": "Obejrzane",
|
|
289
|
+
"next": "Następny",
|
|
290
|
+
"tracker_updated": "zaktualizowano",
|
|
291
|
+
"tracker_syncing": "synchronizacja...",
|
|
292
|
+
"tracker_pending": "Dodano do oczekujących",
|
|
293
|
+
"tracker_error": "Błąd trackera"
|
|
294
|
+
},
|
|
295
|
+
"errors": {
|
|
296
|
+
"generic": "Wystąpił błąd",
|
|
297
|
+
"provider": "Nie udało se pobrać danych ze źródła",
|
|
298
|
+
"download": "Pobieranie nie powiodło se",
|
|
299
|
+
"network": "Błąd połączenia sieciowego",
|
|
300
|
+
"provider_error": "Błąd dostawcy: {error}",
|
|
301
|
+
"timeout": "Przekroczono limit czasu połączenia",
|
|
302
|
+
"cloudflare": "Ochrona Cloudflare aktywna",
|
|
303
|
+
"no_streams": "Nie znaleziono strumieni"
|
|
304
|
+
},
|
|
305
|
+
"downloads": {
|
|
306
|
+
"disk_full": "Niewystarczająca ilość miejsca na dysku: {free} dostępne. Wymagane co najmniej 1GB.",
|
|
307
|
+
"no_stream_url": "Nie znaleziono URL strumienia",
|
|
308
|
+
"stream_data_failed": "Nie udało se pobrać danych strumienia",
|
|
309
|
+
"empty_stream_links": "Brak dostępnych linków do strumienia",
|
|
310
|
+
"no_valid_streams_found": "Nie znaleziono prawidłowych strumieni po walidacji",
|
|
311
|
+
"title": "Pobrane",
|
|
312
|
+
"empty": "Nic jeszcze nie pobrałeś.",
|
|
313
|
+
"status": "Status",
|
|
314
|
+
"progress": "Postęp",
|
|
315
|
+
"status_processing": "Pobieranie",
|
|
316
|
+
"status_completed": "Ukończono",
|
|
317
|
+
"status_failed": "Błąd",
|
|
318
|
+
"status_pending": "Oczekujące",
|
|
319
|
+
"failed_downloads": "nieudane pobieranie(a)",
|
|
320
|
+
"retrying_downloads": "ponawianie pobierania...",
|
|
321
|
+
"default_folder_name": "Pobrane",
|
|
322
|
+
"downloads_folder": "Pobrane",
|
|
323
|
+
"resume_prompt": "Znaleziono {count} nieukończone pobieranie(a). Wznowić?",
|
|
324
|
+
"resumed": "Wznawianie pobierania...",
|
|
325
|
+
"already_downloading": "To anime jest już pobierane.",
|
|
326
|
+
"already_in_queue": "Wybrane odcinki są już v kolejce.",
|
|
327
|
+
"queued": "Dodano {count} odcinek(ów) do kolejki.",
|
|
328
|
+
"start_now": "Pobierz Teraz",
|
|
329
|
+
"add_to_queue": "Dodaj do Kolejki",
|
|
330
|
+
"action_prompt": "Wybierz Działanie",
|
|
331
|
+
"view_queue": "Zobacz Kolejkę",
|
|
332
|
+
"start_queue": "Uruchom Kolejkę",
|
|
333
|
+
"stop_queue": "Zatrzymaj Kolejkę",
|
|
334
|
+
"clear_completed": "Wyczyść Ukończone",
|
|
335
|
+
"queue_started": "Kolejka uruchomiona.",
|
|
336
|
+
"queue_stopped": "Kolejka zatrzymana.",
|
|
337
|
+
"queue_running": "Uruchomiona",
|
|
338
|
+
"pending_count": "{count} pobieranie(a) oczekujące",
|
|
339
|
+
"cleared": "Wyczyszczono.",
|
|
340
|
+
"completed_downloads": "Ukończone Pobierania",
|
|
341
|
+
"active_downloads": "Aktywne Pobierania",
|
|
342
|
+
"manage_queue": "Zarządzanie Kolejką",
|
|
343
|
+
"select_anime": "Wybierz Anime",
|
|
344
|
+
"search_library": "Szukaj",
|
|
345
|
+
"search_anime": "Wprowadź nazwę anime",
|
|
346
|
+
"search_all": "Szukaj ve wszystkich źródłach",
|
|
347
|
+
"offline": "Offline",
|
|
348
|
+
"reindex": "Indeksuj ponownie",
|
|
349
|
+
"indexing": "Indeksowanie...",
|
|
350
|
+
"indexed": "Zindeksowano {count} anime",
|
|
351
|
+
"no_indexed": "Brak zindeksowanych anime. Podłącz dysk i zindeksuj najpierw.",
|
|
352
|
+
"drive_not_connected": "Dysk niepodłączony",
|
|
353
|
+
"connect_drive": "Podłącz dysk {name}",
|
|
354
|
+
"notification_title": "Weeb CLI",
|
|
355
|
+
"notification_complete": "{anime} - Odcinek {episode} pobrany",
|
|
356
|
+
"retry_failed": "Ponów Nieudane",
|
|
357
|
+
"retrying": "Ponawianie {count} pobrań...",
|
|
358
|
+
"episode_short": "Odc",
|
|
359
|
+
"retrying_status": "Ponawianie ({attempt}/{max})...",
|
|
360
|
+
"ffmpeg_progress": "W {time}",
|
|
361
|
+
"stream_data_failed": "Nie udało se pobrać danych strumienia",
|
|
362
|
+
"empty_stream_links": "Linki strumienia są puste",
|
|
363
|
+
"no_valid_streams_found": "Nie znaleziono prawidłowych strumieni"
|
|
364
|
+
},
|
|
365
|
+
"library": {
|
|
366
|
+
"title": "Moja Biblioteka",
|
|
367
|
+
"online_library": "Biblioteka Online",
|
|
368
|
+
"local_library": "Biblioteka Lokalna",
|
|
369
|
+
"select_type": "Wybierz Typ Biblioteki",
|
|
370
|
+
"online_empty": "Twoja biblioteka online jest pusta. Możesz dodać anime ze strony szczegółów.",
|
|
371
|
+
"local_empty": "Twoja biblioteka lokalna jest pusta. Pobrane anime pojawią se tutaj.",
|
|
372
|
+
"local_not_available": "To anime nie jest już dostępne. Dysk może być odłączony lub plik usunięty.",
|
|
373
|
+
"total_anime": "Suma Anime",
|
|
374
|
+
"select_anime": "Wybierz Anime",
|
|
375
|
+
"switching_provider": "Przełączanie na {provider}...",
|
|
376
|
+
"provider_not_found": "Dostawca {provider} nie został znaleziony."
|
|
377
|
+
}
|
|
378
|
+
}
|
|
@@ -150,7 +150,7 @@
|
|
|
150
150
|
"restore_confirm": "Mevcut veritabanı yedeğin üzerine yazılacak. Emin misiniz?",
|
|
151
151
|
"restore_success": "Geri yükleme başarılı!",
|
|
152
152
|
"restore_failed": "Geri yükleme başarısız.",
|
|
153
|
-
"
|
|
153
|
+
"cache_title": "Önbellek Yönetimi",
|
|
154
154
|
"cache_title": "Önbellek Yönetimi",
|
|
155
155
|
"cache_memory_entries": "Bellekteki girişler",
|
|
156
156
|
"cache_file_entries": "Dosyadaki girişler",
|
|
@@ -39,13 +39,14 @@ def run_setup():
|
|
|
39
39
|
langs = {
|
|
40
40
|
"Türkçe": "tr",
|
|
41
41
|
"English": "en",
|
|
42
|
-
"Deutsch": "de"
|
|
42
|
+
"Deutsch": "de",
|
|
43
|
+
"Polski": "pl"
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
choices = [(k, v) for k, v in langs.items()]
|
|
46
47
|
|
|
47
48
|
selected_code = prompt.select(
|
|
48
|
-
"
|
|
49
|
+
"",
|
|
49
50
|
choices
|
|
50
51
|
)
|
|
51
52
|
|