Add periodic version check
All checks were successful
Gitea/kapitanbooru-uploader/pipeline/head This commit looks good
All checks were successful
Gitea/kapitanbooru-uploader/pipeline/head This commit looks good
This commit is contained in:
parent
b559f965f5
commit
218f0b9b79
@ -7,11 +7,14 @@ import threading
|
|||||||
import tkinter as tk
|
import tkinter as tk
|
||||||
from tkinter import filedialog, messagebox, ttk
|
from tkinter import filedialog, messagebox, ttk
|
||||||
from typing import Dict, Tuple, Optional
|
from typing import Dict, Tuple, Optional
|
||||||
|
from packaging.version import parse as parse_version
|
||||||
|
import itertools
|
||||||
|
|
||||||
import networkx as nx
|
import networkx as nx
|
||||||
import requests
|
import requests
|
||||||
from PIL import Image, ImageTk, PngImagePlugin
|
from PIL import Image, ImageTk, PngImagePlugin
|
||||||
import wdtagger as wdt
|
import wdtagger as wdt
|
||||||
|
import tomli
|
||||||
|
|
||||||
from .I18N import _
|
from .I18N import _
|
||||||
from .ProgressFile import ProgressFile
|
from .ProgressFile import ProgressFile
|
||||||
@ -139,7 +142,8 @@ class ImageBrowser(tk.Tk):
|
|||||||
super().__init__()
|
super().__init__()
|
||||||
self.title("Kapitanbooru Uploader")
|
self.title("Kapitanbooru Uploader")
|
||||||
self.geometry("900x600")
|
self.geometry("900x600")
|
||||||
self.version = "0.4.4"
|
self.version = "0.5.0"
|
||||||
|
self.acknowledged_version = parse_version(self.version)
|
||||||
|
|
||||||
self.settings = Settings()
|
self.settings = Settings()
|
||||||
self.tags_repo = TagsRepo(self.settings)
|
self.tags_repo = TagsRepo(self.settings)
|
||||||
@ -204,6 +208,66 @@ class ImageBrowser(tk.Tk):
|
|||||||
self.create_widgets()
|
self.create_widgets()
|
||||||
self.bind_events()
|
self.bind_events()
|
||||||
|
|
||||||
|
# Schedule first update check
|
||||||
|
self.after(1000, self._schedule_update_check)
|
||||||
|
|
||||||
|
def _schedule_update_check(self):
|
||||||
|
"""Schedule periodic update checks"""
|
||||||
|
self._check_for_update()
|
||||||
|
# Check every 5 minutes (300,000 ms)
|
||||||
|
self.after(300000, self._schedule_update_check)
|
||||||
|
|
||||||
|
def _check_for_update(self):
|
||||||
|
"""Check for updates in a background thread"""
|
||||||
|
|
||||||
|
def check_thread():
|
||||||
|
try:
|
||||||
|
# Fetch pyproject.toml using requests
|
||||||
|
response = requests.get(
|
||||||
|
"https://git.mlesniak.pl/kapitan/kapitanbooru-uploader/raw/branch/main/pyproject.toml",
|
||||||
|
timeout=10, # Add reasonable timeout
|
||||||
|
)
|
||||||
|
response.raise_for_status() # Raise exception for HTTP errors
|
||||||
|
|
||||||
|
remote_toml = tomli.loads(response.text)
|
||||||
|
remote_version_str = remote_toml["project"]["version"]
|
||||||
|
remote_version = parse_version(remote_version_str)
|
||||||
|
current_version = parse_version(self.version)
|
||||||
|
|
||||||
|
if (
|
||||||
|
remote_version > current_version
|
||||||
|
and remote_version > self.acknowledged_version
|
||||||
|
):
|
||||||
|
self.after(0, lambda: self._notify_user(remote_version_str))
|
||||||
|
self.acknowledged_version = remote_version
|
||||||
|
except requests.exceptions.RequestException as e:
|
||||||
|
print(_("Update check failed: {error}").format(error=e))
|
||||||
|
except KeyError as e:
|
||||||
|
print(_("Malformed pyproject.toml: {error}").format(error=e))
|
||||||
|
except Exception as e:
|
||||||
|
print(
|
||||||
|
_("Unexpected error during update check: {error}").format(error=e)
|
||||||
|
)
|
||||||
|
|
||||||
|
threading.Thread(target=check_thread, daemon=True).start()
|
||||||
|
|
||||||
|
def _notify_user(self, new_version):
|
||||||
|
"""Show update notification with translated messages"""
|
||||||
|
title = _("Update Available")
|
||||||
|
message_template = _(
|
||||||
|
"A new version {new_version} is available!\n"
|
||||||
|
"You have version {current_version}.\n\n"
|
||||||
|
"Update using: {update_command}"
|
||||||
|
)
|
||||||
|
|
||||||
|
formatted_message = message_template.format(
|
||||||
|
new_version=new_version,
|
||||||
|
current_version=self.version,
|
||||||
|
update_command="pip install --upgrade kapitanbooru-uploader",
|
||||||
|
)
|
||||||
|
|
||||||
|
messagebox.showinfo(title, formatted_message)
|
||||||
|
|
||||||
def reload_ui(self):
|
def reload_ui(self):
|
||||||
"""Reload UI components with new language"""
|
"""Reload UI components with new language"""
|
||||||
# Destroy current widgets
|
# Destroy current widgets
|
||||||
@ -417,31 +481,43 @@ class ImageBrowser(tk.Tk):
|
|||||||
frame = ttk.Frame(about, padding=10)
|
frame = ttk.Frame(about, padding=10)
|
||||||
frame.pack(fill="both", expand=True)
|
frame.pack(fill="both", expand=True)
|
||||||
|
|
||||||
|
row_counter = itertools.count(0)
|
||||||
|
|
||||||
ttk.Label(
|
ttk.Label(
|
||||||
frame, text="Kapitanbooru Uploader", font=("TkDefaultFont", 16, "bold")
|
frame, text="Kapitanbooru Uploader", font=("TkDefaultFont", 16, "bold")
|
||||||
).grid(row=0, column=0, sticky=tk.W)
|
).grid(row=next(row_counter), column=0, sticky=tk.W)
|
||||||
|
|
||||||
|
current_version = parse_version(self.version)
|
||||||
|
if current_version < self.acknowledged_version:
|
||||||
|
ttk.Label(
|
||||||
|
frame,
|
||||||
|
text=_("A new version {new_version} is available!").format(
|
||||||
|
new_version=self.acknowledged_version
|
||||||
|
),
|
||||||
|
foreground="red",
|
||||||
|
).grid(row=next(row_counter), column=0, sticky=tk.W)
|
||||||
|
|
||||||
content = [
|
content = [
|
||||||
(f"Version {self.version}", 1),
|
_("Current version: {version}").format(version=self.version),
|
||||||
("", 2),
|
"",
|
||||||
(_("A GUI application for uploading images to KapitanBooru."), 3),
|
_("A GUI application for uploading images to KapitanBooru."),
|
||||||
(_("Features include image upload, tag management, automatic"), 4),
|
_("Features include image upload, tag management, automatic"),
|
||||||
(_("tagging with wdtagger, and cache management."), 5),
|
_("tagging with wdtagger, and cache management."),
|
||||||
("", 6),
|
"",
|
||||||
(_("Authors:"), 7),
|
_("Authors:"),
|
||||||
("Michał Leśniak", 8),
|
"Michał Leśniak",
|
||||||
("", 9),
|
"",
|
||||||
(_("License: MIT License"), 10),
|
_("License: MIT License"),
|
||||||
(f"Copyright © 2025 Michał Leśniak", 11),
|
f"Copyright © 2025 Michał Leśniak",
|
||||||
("", 12),
|
"",
|
||||||
]
|
]
|
||||||
|
|
||||||
for text, row in content:
|
for text in content:
|
||||||
ttk.Label(frame, text=text).grid(row=row, column=0, sticky=tk.W)
|
ttk.Label(frame, text=text).grid(row=next(row_counter), column=0, sticky=tk.W)
|
||||||
|
|
||||||
# Repository link
|
# Repository link
|
||||||
repo_frame = ttk.Frame(frame)
|
repo_frame = ttk.Frame(frame)
|
||||||
repo_frame.grid(row=13, sticky=tk.W)
|
repo_frame.grid(row=next(row_counter), sticky=tk.W)
|
||||||
ttk.Label(repo_frame, text=_("Repository:")).pack(side=tk.LEFT)
|
ttk.Label(repo_frame, text=_("Repository:")).pack(side=tk.LEFT)
|
||||||
repo_url = "https://git.mlesniak.pl/kapitan/kapitanbooru-uploader"
|
repo_url = "https://git.mlesniak.pl/kapitan/kapitanbooru-uploader"
|
||||||
repo = ttk.Label(repo_frame, text=repo_url, cursor="hand2", foreground="blue")
|
repo = ttk.Label(repo_frame, text=repo_url, cursor="hand2", foreground="blue")
|
||||||
@ -450,7 +526,7 @@ class ImageBrowser(tk.Tk):
|
|||||||
|
|
||||||
# Website link
|
# Website link
|
||||||
website_frame = ttk.Frame(frame)
|
website_frame = ttk.Frame(frame)
|
||||||
website_frame.grid(row=14, sticky=tk.W)
|
website_frame.grid(row=next(row_counter), sticky=tk.W)
|
||||||
ttk.Label(website_frame, text=_("Website:")).pack(side=tk.LEFT)
|
ttk.Label(website_frame, text=_("Website:")).pack(side=tk.LEFT)
|
||||||
website_url = "https://booru.mlesniak.pl"
|
website_url = "https://booru.mlesniak.pl"
|
||||||
website = ttk.Label(
|
website = ttk.Label(
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Kapitanbooru Uploader 0.4.4\n"
|
"Project-Id-Version: Kapitanbooru Uploader 0.5.0\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-03-02 00:39+0100\n"
|
"POT-Creation-Date: 2025-03-11 00:35+0100\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
@ -43,300 +43,345 @@ msgstr "Found auth_token:"
|
|||||||
msgid "auth_token not found in the HTML page."
|
msgid "auth_token not found in the HTML page."
|
||||||
msgstr "auth_token not found in the HTML page."
|
msgstr "auth_token not found in the HTML page."
|
||||||
|
|
||||||
#: ImageBrowser.py:30
|
#: ImageBrowser.py:33
|
||||||
msgid "Processing..."
|
msgid "Processing..."
|
||||||
msgstr "Processing..."
|
msgstr "Processing..."
|
||||||
|
|
||||||
#: ImageBrowser.py:34
|
#: ImageBrowser.py:37
|
||||||
msgid "Processing, please wait..."
|
msgid "Processing, please wait..."
|
||||||
msgstr "Processing, please wait..."
|
msgstr "Processing, please wait..."
|
||||||
|
|
||||||
#: ImageBrowser.py:263
|
#: ImageBrowser.py:244
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Update check failed: {error}"
|
||||||
|
msgstr "Update check failed: {error}"
|
||||||
|
|
||||||
|
#: ImageBrowser.py:246
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Malformed pyproject.toml: {error}"
|
||||||
|
msgstr "Malformed pyproject.toml: {error}"
|
||||||
|
|
||||||
|
#: ImageBrowser.py:249
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Unexpected error during update check: {error}"
|
||||||
|
msgstr "Unexpected error during update check: {error}"
|
||||||
|
|
||||||
|
#: ImageBrowser.py:256
|
||||||
|
msgid "Update Available"
|
||||||
|
msgstr "Update Available"
|
||||||
|
|
||||||
|
#: ImageBrowser.py:258
|
||||||
|
#, python-brace-format
|
||||||
|
msgid ""
|
||||||
|
"A new version {new_version} is available!\n"
|
||||||
|
"You have version {current_version}.\n"
|
||||||
|
"\n"
|
||||||
|
"Update using: {update_command}"
|
||||||
|
msgstr ""
|
||||||
|
"A new version {new_version} is available!\n"
|
||||||
|
"You have version {current_version}.\n"
|
||||||
|
"\n"
|
||||||
|
"Update using: {update_command}"
|
||||||
|
|
||||||
|
#: ImageBrowser.py:367
|
||||||
msgid "Błąd przy otwieraniu pliku"
|
msgid "Błąd przy otwieraniu pliku"
|
||||||
msgstr "Error opening file"
|
msgstr "Error opening file"
|
||||||
|
|
||||||
#: ImageBrowser.py:305
|
#: ImageBrowser.py:409
|
||||||
msgid "Tagger przetworzył:"
|
msgid "Tagger przetworzył:"
|
||||||
msgstr "Tagger processed:"
|
msgstr "Tagger processed:"
|
||||||
|
|
||||||
#: ImageBrowser.py:308
|
#: ImageBrowser.py:412
|
||||||
msgid "Błąd Taggera dla"
|
msgid "Błąd Taggera dla"
|
||||||
msgstr "Tagger error for"
|
msgstr "Tagger error for"
|
||||||
|
|
||||||
#: ImageBrowser.py:334
|
#: ImageBrowser.py:438
|
||||||
msgid "Otwórz folder"
|
msgid "Otwórz folder"
|
||||||
msgstr "Open folder"
|
msgstr "Open folder"
|
||||||
|
|
||||||
#: ImageBrowser.py:337 ImageBrowser.py:600 ImageBrowser.py:814
|
#: ImageBrowser.py:441 ImageBrowser.py:728 ImageBrowser.py:944
|
||||||
#: ImageBrowser.py:822
|
#: ImageBrowser.py:952
|
||||||
msgid "Wyślij"
|
msgid "Wyślij"
|
||||||
msgstr "Send"
|
msgstr "Send"
|
||||||
|
|
||||||
#: ImageBrowser.py:340 ImageBrowser.py:807
|
#: ImageBrowser.py:444 ImageBrowser.py:937
|
||||||
msgid "Wyślij wszystko"
|
msgid "Wyślij wszystko"
|
||||||
msgstr "Send all"
|
msgstr "Send all"
|
||||||
|
|
||||||
#: ImageBrowser.py:344 ImageBrowser.py:808 ImageBrowser.py:814
|
#: ImageBrowser.py:448 ImageBrowser.py:938 ImageBrowser.py:944
|
||||||
msgid "Podmień tagi"
|
msgid "Podmień tagi"
|
||||||
msgstr "Replace tags"
|
msgstr "Replace tags"
|
||||||
|
|
||||||
#: ImageBrowser.py:347 ImageBrowser.py:809
|
#: ImageBrowser.py:451 ImageBrowser.py:939
|
||||||
msgid "Otwórz post"
|
msgid "Otwórz post"
|
||||||
msgstr "Open post"
|
msgstr "Open post"
|
||||||
|
|
||||||
#: ImageBrowser.py:350
|
#: ImageBrowser.py:454
|
||||||
msgid "Zakończ"
|
msgid "Zakończ"
|
||||||
msgstr "Finish"
|
msgstr "Finish"
|
||||||
|
|
||||||
#: ImageBrowser.py:352
|
#: ImageBrowser.py:456
|
||||||
msgid "Plik"
|
msgid "Plik"
|
||||||
msgstr "File"
|
msgstr "File"
|
||||||
|
|
||||||
#: ImageBrowser.py:356 ImageBrowser.py:430
|
#: ImageBrowser.py:460 ImageBrowser.py:557
|
||||||
msgid "Ustawienia"
|
msgid "Ustawienia"
|
||||||
msgstr "Settings"
|
msgstr "Settings"
|
||||||
|
|
||||||
#: ImageBrowser.py:359
|
#: ImageBrowser.py:463
|
||||||
msgid "Wyczyść cache Taggera"
|
msgid "Wyczyść cache Taggera"
|
||||||
msgstr "Clear Tagger cache"
|
msgstr "Clear Tagger cache"
|
||||||
|
|
||||||
#: ImageBrowser.py:362
|
#: ImageBrowser.py:466
|
||||||
msgid "Zregeneruj bazę tagów"
|
msgid "Zregeneruj bazę tagów"
|
||||||
msgstr "Regenerate tag database"
|
msgstr "Regenerate tag database"
|
||||||
|
|
||||||
#: ImageBrowser.py:364
|
#: ImageBrowser.py:468
|
||||||
msgid "Opcje"
|
msgid "Opcje"
|
||||||
msgstr "Options"
|
msgstr "Options"
|
||||||
|
|
||||||
#: ImageBrowser.py:367
|
#: ImageBrowser.py:471
|
||||||
msgid "About"
|
msgid "About"
|
||||||
msgstr "About"
|
msgstr "About"
|
||||||
|
|
||||||
#: ImageBrowser.py:368
|
#: ImageBrowser.py:472
|
||||||
msgid "Help"
|
msgid "Help"
|
||||||
msgstr "Help"
|
msgstr "Help"
|
||||||
|
|
||||||
#: ImageBrowser.py:373
|
#: ImageBrowser.py:477
|
||||||
msgid "About Kapitanbooru Uploader"
|
msgid "About Kapitanbooru Uploader"
|
||||||
msgstr "About Kapitanbooru Uploader"
|
msgstr "About Kapitanbooru Uploader"
|
||||||
|
|
||||||
#: ImageBrowser.py:386
|
#: ImageBrowser.py:494
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "A new version {new_version} is available!"
|
||||||
|
msgstr "A new version {new_version} is available!"
|
||||||
|
|
||||||
|
#: ImageBrowser.py:501
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Current version: {version}"
|
||||||
|
msgstr "Current version: {version}"
|
||||||
|
|
||||||
|
#: ImageBrowser.py:503
|
||||||
msgid "A GUI application for uploading images to KapitanBooru."
|
msgid "A GUI application for uploading images to KapitanBooru."
|
||||||
msgstr "A GUI application for uploading images to KapitanBooru."
|
msgstr "A GUI application for uploading images to KapitanBooru."
|
||||||
|
|
||||||
#: ImageBrowser.py:387
|
#: ImageBrowser.py:504
|
||||||
msgid "Features include image upload, tag management, automatic"
|
msgid "Features include image upload, tag management, automatic"
|
||||||
msgstr "Features include image upload, tag management, automatic"
|
msgstr "Features include image upload, tag management, automatic"
|
||||||
|
|
||||||
#: ImageBrowser.py:388
|
#: ImageBrowser.py:505
|
||||||
msgid "tagging with wdtagger, and cache management."
|
msgid "tagging with wdtagger, and cache management."
|
||||||
msgstr "tagging with wdtagger, and cache management."
|
msgstr "tagging with wdtagger, and cache management."
|
||||||
|
|
||||||
#: ImageBrowser.py:390
|
#: ImageBrowser.py:507
|
||||||
msgid "Authors:"
|
msgid "Authors:"
|
||||||
msgstr "Authors:"
|
msgstr "Authors:"
|
||||||
|
|
||||||
#: ImageBrowser.py:393
|
#: ImageBrowser.py:510
|
||||||
msgid "License: MIT License"
|
msgid "License: MIT License"
|
||||||
msgstr "License: MIT License"
|
msgstr "License: MIT License"
|
||||||
|
|
||||||
#: ImageBrowser.py:396
|
#: ImageBrowser.py:521
|
||||||
msgid "Repository:"
|
msgid "Repository:"
|
||||||
msgstr "Repository:"
|
msgstr "Repository:"
|
||||||
|
|
||||||
#: ImageBrowser.py:397
|
#: ImageBrowser.py:530
|
||||||
msgid "Website:"
|
msgid "Website:"
|
||||||
msgstr "Website:"
|
msgstr "Website:"
|
||||||
|
|
||||||
#: ImageBrowser.py:414
|
#: ImageBrowser.py:541
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Close"
|
msgstr "Close"
|
||||||
|
|
||||||
#: ImageBrowser.py:422 ImageBrowser.py:425
|
#: ImageBrowser.py:549 ImageBrowser.py:552
|
||||||
msgid "Cache"
|
msgid "Cache"
|
||||||
msgstr "Cache"
|
msgstr "Cache"
|
||||||
|
|
||||||
#: ImageBrowser.py:422
|
#: ImageBrowser.py:549
|
||||||
msgid "Cache Taggera zostało wyczyszczone."
|
msgid "Cache Taggera zostało wyczyszczone."
|
||||||
msgstr "Tagger cache has been cleared."
|
msgstr "Tagger cache has been cleared."
|
||||||
|
|
||||||
#: ImageBrowser.py:425
|
#: ImageBrowser.py:552
|
||||||
msgid "Błąd przy czyszczeniu cache:"
|
msgid "Błąd przy czyszczeniu cache:"
|
||||||
msgstr "Error clearing cache:"
|
msgstr "Error clearing cache:"
|
||||||
|
|
||||||
#: ImageBrowser.py:434
|
#: ImageBrowser.py:562
|
||||||
msgid "Login:"
|
msgid "Login:"
|
||||||
msgstr "Login:"
|
msgstr "Login:"
|
||||||
|
|
||||||
#: ImageBrowser.py:440
|
#: ImageBrowser.py:568
|
||||||
msgid "Hasło:"
|
msgid "Hasło:"
|
||||||
msgstr "Password:"
|
msgstr "Password:"
|
||||||
|
|
||||||
#: ImageBrowser.py:446
|
#: ImageBrowser.py:574
|
||||||
msgid "Base URL:"
|
msgid "Base URL:"
|
||||||
msgstr "Base URL:"
|
msgstr "Base URL:"
|
||||||
|
|
||||||
#: ImageBrowser.py:452
|
#: ImageBrowser.py:580
|
||||||
msgid "Default Tags:"
|
msgid "Default Tags:"
|
||||||
msgstr "Default Tags:"
|
msgstr "Default Tags:"
|
||||||
|
|
||||||
#: ImageBrowser.py:458
|
#: ImageBrowser.py:586
|
||||||
msgid "Browser:"
|
msgid "Browser:"
|
||||||
msgstr "Browser:"
|
msgstr "Browser:"
|
||||||
|
|
||||||
#: ImageBrowser.py:472
|
#: ImageBrowser.py:600
|
||||||
msgid "Language:"
|
msgid "Language:"
|
||||||
msgstr "Language:"
|
msgstr "Language:"
|
||||||
|
|
||||||
#: ImageBrowser.py:504
|
#: ImageBrowser.py:632
|
||||||
msgid "Zapisz"
|
msgid "Zapisz"
|
||||||
msgstr "Save"
|
msgstr "Save"
|
||||||
|
|
||||||
#: ImageBrowser.py:546
|
#: ImageBrowser.py:674
|
||||||
msgid "PNG Tags"
|
msgid "PNG Tags"
|
||||||
msgstr "PNG Tags"
|
msgstr "PNG Tags"
|
||||||
|
|
||||||
#: ImageBrowser.py:558
|
#: ImageBrowser.py:686
|
||||||
msgid "Tagger Tags"
|
msgid "Tagger Tags"
|
||||||
msgstr "Tagger Tags"
|
msgstr "Tagger Tags"
|
||||||
|
|
||||||
#: ImageBrowser.py:572
|
#: ImageBrowser.py:700
|
||||||
msgid "Manual Tags"
|
msgid "Manual Tags"
|
||||||
msgstr "Manual Tags"
|
msgstr "Manual Tags"
|
||||||
|
|
||||||
#: ImageBrowser.py:580
|
#: ImageBrowser.py:708
|
||||||
msgid "Final Tags"
|
msgid "Final Tags"
|
||||||
msgstr "Final Tags"
|
msgstr "Final Tags"
|
||||||
|
|
||||||
#: ImageBrowser.py:605
|
#: ImageBrowser.py:733
|
||||||
msgid "Wyświetl"
|
msgid "Wyświetl"
|
||||||
msgstr "Display"
|
msgstr "Display"
|
||||||
|
|
||||||
#: ImageBrowser.py:622
|
#: ImageBrowser.py:750
|
||||||
msgid "Przetworzono tagi:"
|
msgid "Przetworzono tagi:"
|
||||||
msgstr "Processed tags:"
|
msgstr "Processed tags:"
|
||||||
|
|
||||||
#: ImageBrowser.py:622 ImageBrowser.py:623 ImageBrowser.py:624
|
#: ImageBrowser.py:750 ImageBrowser.py:751 ImageBrowser.py:752
|
||||||
msgid "plików"
|
msgid "plików"
|
||||||
msgstr "files"
|
msgstr "files"
|
||||||
|
|
||||||
#: ImageBrowser.py:623
|
#: ImageBrowser.py:751
|
||||||
msgid "Zweryfikowano status uploadu:"
|
msgid "Zweryfikowano status uploadu:"
|
||||||
msgstr "Upload status verified:"
|
msgstr "Upload status verified:"
|
||||||
|
|
||||||
#: ImageBrowser.py:624
|
#: ImageBrowser.py:752
|
||||||
msgid "Zuploadowano:"
|
msgid "Zuploadowano:"
|
||||||
msgstr "Uploaded:"
|
msgstr "Uploaded:"
|
||||||
|
|
||||||
#: ImageBrowser.py:652
|
#: ImageBrowser.py:780
|
||||||
msgid "Wybierz folder z obrazkami PNG"
|
msgid "Wybierz folder z obrazkami PNG"
|
||||||
msgstr "Select folder with PNG images"
|
msgstr "Select folder with PNG images"
|
||||||
|
|
||||||
#: ImageBrowser.py:683
|
#: ImageBrowser.py:813
|
||||||
msgid "Informacja"
|
msgid "Informacja"
|
||||||
msgstr "Information"
|
msgstr "Information"
|
||||||
|
|
||||||
#: ImageBrowser.py:683
|
#: ImageBrowser.py:813
|
||||||
msgid "Brak plików PNG w wybranym folderze."
|
msgid "Brak plików PNG w wybranym folderze."
|
||||||
msgstr "No PNG files in the selected folder."
|
msgstr "No PNG files in the selected folder."
|
||||||
|
|
||||||
#: ImageBrowser.py:766
|
#: ImageBrowser.py:896
|
||||||
msgid "Błąd podczas sprawdzania paczki uploadu:"
|
msgid "Błąd podczas sprawdzania paczki uploadu:"
|
||||||
msgstr "Error while checking upload package:"
|
msgstr "Error while checking upload package:"
|
||||||
|
|
||||||
#: ImageBrowser.py:842
|
#: ImageBrowser.py:972
|
||||||
msgid "Błąd przy obliczaniu MD5:"
|
msgid "Błąd przy obliczaniu MD5:"
|
||||||
msgstr "Error calculating MD5:"
|
msgstr "Error calculating MD5:"
|
||||||
|
|
||||||
#: ImageBrowser.py:898
|
#: ImageBrowser.py:1028
|
||||||
msgid "Błąd"
|
msgid "Błąd"
|
||||||
msgstr "Error"
|
msgstr "Error"
|
||||||
|
|
||||||
#: ImageBrowser.py:898
|
#: ImageBrowser.py:1028
|
||||||
msgid "Nie można załadować obrazka:"
|
msgid "Nie można załadować obrazka:"
|
||||||
msgstr "Unable to load image:"
|
msgstr "Unable to load image:"
|
||||||
|
|
||||||
#: ImageBrowser.py:1108 ImageBrowser.py:1118
|
#: ImageBrowser.py:1238 ImageBrowser.py:1248
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Warning: Tag '{tag}' not found in implication graph"
|
msgid "Warning: Tag '{tag}' not found in implication graph"
|
||||||
msgstr "Warning: Tag '{tag}' not found in implication graph"
|
msgstr "Warning: Tag '{tag}' not found in implication graph"
|
||||||
|
|
||||||
#: ImageBrowser.py:1348
|
#: ImageBrowser.py:1478
|
||||||
msgid "Tagger przetwarza..."
|
msgid "Tagger przetwarza..."
|
||||||
msgstr "Tagger processing..."
|
msgstr "Tagger processing..."
|
||||||
|
|
||||||
#: ImageBrowser.py:1373
|
#: ImageBrowser.py:1503
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Wysyłam plik {base_file_name}..."
|
msgid "Wysyłam plik {base_file_name}..."
|
||||||
msgstr "Sending file {base_file_name}..."
|
msgstr "Sending file {base_file_name}..."
|
||||||
|
|
||||||
#: ImageBrowser.py:1414
|
#: ImageBrowser.py:1544
|
||||||
msgid "Wysyłanie zakończone powodzeniem!"
|
msgid "Wysyłanie zakończone powodzeniem!"
|
||||||
msgstr "Upload completed successfully!"
|
msgstr "Upload completed successfully!"
|
||||||
|
|
||||||
#: ImageBrowser.py:1418 ImageBrowser.py:1427
|
#: ImageBrowser.py:1548 ImageBrowser.py:1557
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Wysyłanie zakończone błędem.\n"
|
"Wysyłanie zakończone błędem.\n"
|
||||||
"Status: {status_code}\n"
|
"Status: {status_code}\n"
|
||||||
"Treść: {text}"
|
"Treść: {text}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Upload failed.\nStatus: {status_code}\nContent: {text}"
|
"Upload failed.\n"
|
||||||
|
"Status: {status_code}\n"
|
||||||
|
"Content: {text}"
|
||||||
|
|
||||||
#: ImageBrowser.py:1433 ImageBrowser.py:1436
|
#: ImageBrowser.py:1563 ImageBrowser.py:1566
|
||||||
msgid "Wysyłanie"
|
msgid "Wysyłanie"
|
||||||
msgstr "Uploading"
|
msgstr "Uploading"
|
||||||
|
|
||||||
#: ImageBrowser.py:1449
|
#: ImageBrowser.py:1579
|
||||||
msgid "Błąd wysyłania"
|
msgid "Błąd wysyłania"
|
||||||
msgstr "Upload error"
|
msgstr "Upload error"
|
||||||
|
|
||||||
#: ImageBrowser.py:1469
|
#: ImageBrowser.py:1599
|
||||||
msgid "Błąd edycji"
|
msgid "Błąd edycji"
|
||||||
msgstr "Edit error"
|
msgstr "Edit error"
|
||||||
|
|
||||||
#: ImageBrowser.py:1469
|
#: ImageBrowser.py:1599
|
||||||
msgid "Post nie został znaleziony dla tego pliku"
|
msgid "Post nie został znaleziony dla tego pliku"
|
||||||
msgstr "Post not found for this file"
|
msgstr "Post not found for this file"
|
||||||
|
|
||||||
#: ImageBrowser.py:1479
|
#: ImageBrowser.py:1609
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Aktualizuję tagi dla {base_file_name}..."
|
msgid "Aktualizuję tagi dla {base_file_name}..."
|
||||||
msgstr "Updating tags for {base_file_name}..."
|
msgstr "Updating tags for {base_file_name}..."
|
||||||
|
|
||||||
#: ImageBrowser.py:1489 ImageBrowser.py:1499 ImageBrowser.py:1530
|
#: ImageBrowser.py:1619 ImageBrowser.py:1629 ImageBrowser.py:1660
|
||||||
msgid "Operacja anulowana"
|
msgid "Operacja anulowana"
|
||||||
msgstr "Operation cancelled"
|
msgstr "Operation cancelled"
|
||||||
|
|
||||||
#: ImageBrowser.py:1540
|
#: ImageBrowser.py:1670
|
||||||
msgid "Tagi zostały zaktualizowane!"
|
msgid "Tagi zostały zaktualizowane!"
|
||||||
msgstr "Tags have been updated!"
|
msgstr "Tags have been updated!"
|
||||||
|
|
||||||
#: ImageBrowser.py:1542
|
#: ImageBrowser.py:1672
|
||||||
msgid "Sukces edycji"
|
msgid "Sukces edycji"
|
||||||
msgstr "Edit successful"
|
msgstr "Edit successful"
|
||||||
|
|
||||||
#: ImageBrowser.py:1548
|
#: ImageBrowser.py:1678
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Błąd podczas aktualizacji tagów\n"
|
"Błąd podczas aktualizacji tagów\n"
|
||||||
"Status: {code}"
|
"Status: {code}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Error updating tags\nStatus: {code}"
|
"Error updating tags\n"
|
||||||
|
"Status: {code}"
|
||||||
|
|
||||||
#: ImageBrowser.py:1552
|
#: ImageBrowser.py:1682
|
||||||
msgid "Treść:"
|
msgid "Treść:"
|
||||||
msgstr "Content:"
|
msgstr "Content:"
|
||||||
|
|
||||||
#: ImageBrowser.py:1556
|
#: ImageBrowser.py:1686
|
||||||
msgid "Krytyczny błąd edycji"
|
msgid "Krytyczny błąd edycji"
|
||||||
msgstr "Critical edit error"
|
msgstr "Critical edit error"
|
||||||
|
|
||||||
#: ImageBrowser.py:1568
|
#: ImageBrowser.py:1698
|
||||||
msgid "Potwierdzenie"
|
msgid "Potwierdzenie"
|
||||||
msgstr "Confirmation"
|
msgstr "Confirmation"
|
||||||
|
|
||||||
#: ImageBrowser.py:1570
|
#: ImageBrowser.py:1700
|
||||||
msgid ""
|
msgid ""
|
||||||
"Czy na pewno chcesz wrzucić wszystkie niewrzucone pliki?\n"
|
"Czy na pewno chcesz wrzucić wszystkie niewrzucone pliki?\n"
|
||||||
"Każdy z nich zostanie oznaczony tagiem 'meta:auto_upload'.\n"
|
"Każdy z nich zostanie oznaczony tagiem 'meta:auto_upload'.\n"
|
||||||
@ -346,17 +391,18 @@ msgstr ""
|
|||||||
"Each will be tagged with 'meta:auto_upload'.\n"
|
"Each will be tagged with 'meta:auto_upload'.\n"
|
||||||
"Make sure the tags are correct!"
|
"Make sure the tags are correct!"
|
||||||
|
|
||||||
#: ImageBrowser.py:1589
|
#: ImageBrowser.py:1724
|
||||||
msgid "Anulowano operację!"
|
msgid "Anulowano operację!"
|
||||||
msgstr "Operation cancelled!"
|
msgstr "Operation cancelled!"
|
||||||
|
|
||||||
#: ImageBrowser.py:1597
|
#: ImageBrowser.py:1732
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Wysyłanie {file_path} z tagami: {final_tags} i ratingiem: {final_rating}"
|
"Wysyłanie {file_path} z tagami: {final_tags} i ratingiem: {final_rating}"
|
||||||
msgstr "Uploading {file_path} with tags: {final_tags} and rating: {final_rating}"
|
msgstr ""
|
||||||
|
"Uploading {file_path} with tags: {final_tags} and rating: {final_rating}"
|
||||||
|
|
||||||
#: ImageBrowser.py:1608
|
#: ImageBrowser.py:1748
|
||||||
msgid "Przesłano pliki!"
|
msgid "Przesłano pliki!"
|
||||||
msgstr "Files have been uploaded!"
|
msgstr "Files have been uploaded!"
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Kapitanbooru Uploader 0.4.4\n"
|
"Project-Id-Version: Kapitanbooru Uploader 0.5.0\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-03-02 00:39+0100\n"
|
"POT-Creation-Date: 2025-03-11 00:35+0100\n"
|
||||||
"Language: pl\n"
|
"Language: pl\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@ -17,8 +17,7 @@ msgstr "Błąd przy otwieraniu przeglądarki:"
|
|||||||
|
|
||||||
#: common.py:72
|
#: common.py:72
|
||||||
msgid "Login succeeded, but expected cookies were not set."
|
msgid "Login succeeded, but expected cookies were not set."
|
||||||
msgstr ""
|
msgstr "Logowanie powiodło się, ale oczekiwane ciasteczka nie zostały ustawione."
|
||||||
"Logowanie powiodło się, ale oczekiwane ciasteczka nie zostały ustawione."
|
|
||||||
|
|
||||||
#: common.py:74
|
#: common.py:74
|
||||||
msgid "Login successful. Cookies stored in session."
|
msgid "Login successful. Cookies stored in session."
|
||||||
@ -45,284 +44,324 @@ msgstr "Znaleziono auth_token:"
|
|||||||
msgid "auth_token not found in the HTML page."
|
msgid "auth_token not found in the HTML page."
|
||||||
msgstr "Nie znaleziono auth_token w stronie HTML."
|
msgstr "Nie znaleziono auth_token w stronie HTML."
|
||||||
|
|
||||||
#: ImageBrowser.py:30
|
#: ImageBrowser.py:33
|
||||||
msgid "Processing..."
|
msgid "Processing..."
|
||||||
msgstr "Przetwarzanie..."
|
msgstr "Przetwarzanie..."
|
||||||
|
|
||||||
#: ImageBrowser.py:34
|
#: ImageBrowser.py:37
|
||||||
msgid "Processing, please wait..."
|
msgid "Processing, please wait..."
|
||||||
msgstr "Przetwarzanie, proszę czekać..."
|
msgstr "Przetwarzanie, proszę czekać..."
|
||||||
|
|
||||||
#: ImageBrowser.py:263
|
#: ImageBrowser.py:244
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Update check failed: {error}"
|
||||||
|
msgstr "Sprawdzenie aktualizacji nie powiodło się: {error}"
|
||||||
|
|
||||||
|
#: ImageBrowser.py:246
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Malformed pyproject.toml: {error}"
|
||||||
|
msgstr "Nieprawidłowy plik pyproject.toml: {error}"
|
||||||
|
|
||||||
|
#: ImageBrowser.py:249
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Unexpected error during update check: {error}"
|
||||||
|
msgstr "Nieoczekiwany błąd podczas sprawdzania aktualizacji: {error}"
|
||||||
|
|
||||||
|
#: ImageBrowser.py:256
|
||||||
|
msgid "Update Available"
|
||||||
|
msgstr "Aktualizacja dostępna"
|
||||||
|
|
||||||
|
#: ImageBrowser.py:258
|
||||||
|
#, python-brace-format
|
||||||
|
msgid ""
|
||||||
|
"A new version {new_version} is available!\n"
|
||||||
|
"You have version {current_version}.\n"
|
||||||
|
"\n"
|
||||||
|
"Update using: {update_command}"
|
||||||
|
msgstr ""
|
||||||
|
"Dostępna jest nowa wersja {new_version}!\n"
|
||||||
|
"Masz wersję {current_version}.\n"
|
||||||
|
"\n"
|
||||||
|
"Aktualizuj za pomocą: {update_command}"
|
||||||
|
|
||||||
|
#: ImageBrowser.py:367
|
||||||
msgid "Błąd przy otwieraniu pliku"
|
msgid "Błąd przy otwieraniu pliku"
|
||||||
msgstr "Błąd przy otwieraniu pliku"
|
msgstr "Błąd przy otwieraniu pliku"
|
||||||
|
|
||||||
#: ImageBrowser.py:305
|
#: ImageBrowser.py:409
|
||||||
msgid "Tagger przetworzył:"
|
msgid "Tagger przetworzył:"
|
||||||
msgstr "Tagger przetworzył:"
|
msgstr "Tagger przetworzył:"
|
||||||
|
|
||||||
#: ImageBrowser.py:308
|
#: ImageBrowser.py:412
|
||||||
msgid "Błąd Taggera dla"
|
msgid "Błąd Taggera dla"
|
||||||
msgstr "Błąd Taggera dla"
|
msgstr "Błąd Taggera dla"
|
||||||
|
|
||||||
#: ImageBrowser.py:334
|
#: ImageBrowser.py:438
|
||||||
msgid "Otwórz folder"
|
msgid "Otwórz folder"
|
||||||
msgstr "Otwórz folder"
|
msgstr "Otwórz folder"
|
||||||
|
|
||||||
#: ImageBrowser.py:337 ImageBrowser.py:600 ImageBrowser.py:814
|
#: ImageBrowser.py:441 ImageBrowser.py:728 ImageBrowser.py:944
|
||||||
#: ImageBrowser.py:822
|
#: ImageBrowser.py:952
|
||||||
msgid "Wyślij"
|
msgid "Wyślij"
|
||||||
msgstr "Wyślij"
|
msgstr "Wyślij"
|
||||||
|
|
||||||
#: ImageBrowser.py:340 ImageBrowser.py:807
|
#: ImageBrowser.py:444 ImageBrowser.py:937
|
||||||
msgid "Wyślij wszystko"
|
msgid "Wyślij wszystko"
|
||||||
msgstr "Wyślij wszystko"
|
msgstr "Wyślij wszystko"
|
||||||
|
|
||||||
#: ImageBrowser.py:344 ImageBrowser.py:808 ImageBrowser.py:814
|
#: ImageBrowser.py:448 ImageBrowser.py:938 ImageBrowser.py:944
|
||||||
msgid "Podmień tagi"
|
msgid "Podmień tagi"
|
||||||
msgstr "Podmień tagi"
|
msgstr "Podmień tagi"
|
||||||
|
|
||||||
#: ImageBrowser.py:347 ImageBrowser.py:809
|
#: ImageBrowser.py:451 ImageBrowser.py:939
|
||||||
msgid "Otwórz post"
|
msgid "Otwórz post"
|
||||||
msgstr "Otwórz post"
|
msgstr "Otwórz post"
|
||||||
|
|
||||||
#: ImageBrowser.py:350
|
#: ImageBrowser.py:454
|
||||||
msgid "Zakończ"
|
msgid "Zakończ"
|
||||||
msgstr "Zakończ"
|
msgstr "Zakończ"
|
||||||
|
|
||||||
#: ImageBrowser.py:352
|
#: ImageBrowser.py:456
|
||||||
msgid "Plik"
|
msgid "Plik"
|
||||||
msgstr "Plik"
|
msgstr "Plik"
|
||||||
|
|
||||||
#: ImageBrowser.py:356 ImageBrowser.py:430
|
#: ImageBrowser.py:460 ImageBrowser.py:557
|
||||||
msgid "Ustawienia"
|
msgid "Ustawienia"
|
||||||
msgstr "Ustawienia"
|
msgstr "Ustawienia"
|
||||||
|
|
||||||
#: ImageBrowser.py:359
|
#: ImageBrowser.py:463
|
||||||
msgid "Wyczyść cache Taggera"
|
msgid "Wyczyść cache Taggera"
|
||||||
msgstr "Wyczyść cache Taggera"
|
msgstr "Wyczyść cache Taggera"
|
||||||
|
|
||||||
#: ImageBrowser.py:362
|
#: ImageBrowser.py:466
|
||||||
msgid "Zregeneruj bazę tagów"
|
msgid "Zregeneruj bazę tagów"
|
||||||
msgstr "Zregeneruj bazę tagów"
|
msgstr "Zregeneruj bazę tagów"
|
||||||
|
|
||||||
#: ImageBrowser.py:364
|
#: ImageBrowser.py:468
|
||||||
msgid "Opcje"
|
msgid "Opcje"
|
||||||
msgstr "Opcje"
|
msgstr "Opcje"
|
||||||
|
|
||||||
#: ImageBrowser.py:367
|
#: ImageBrowser.py:471
|
||||||
msgid "About"
|
msgid "About"
|
||||||
msgstr "O programie"
|
msgstr "O programie"
|
||||||
|
|
||||||
#: ImageBrowser.py:368
|
#: ImageBrowser.py:472
|
||||||
msgid "Help"
|
msgid "Help"
|
||||||
msgstr "Pomoc"
|
msgstr "Pomoc"
|
||||||
|
|
||||||
#: ImageBrowser.py:373
|
#: ImageBrowser.py:477
|
||||||
msgid "About Kapitanbooru Uploader"
|
msgid "About Kapitanbooru Uploader"
|
||||||
msgstr "O programie Kapitanbooru Uploader"
|
msgstr "O programie Kapitanbooru Uploader"
|
||||||
|
|
||||||
#: ImageBrowser.py:386
|
#: ImageBrowser.py:494
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "A new version {new_version} is available!"
|
||||||
|
msgstr "Dostępna jest nowa wersja {new_version}!"
|
||||||
|
|
||||||
|
#: ImageBrowser.py:501
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Current version: {version}"
|
||||||
|
msgstr "Obecna wersja: {version}"
|
||||||
|
|
||||||
|
#: ImageBrowser.py:503
|
||||||
msgid "A GUI application for uploading images to KapitanBooru."
|
msgid "A GUI application for uploading images to KapitanBooru."
|
||||||
msgstr "Aplikacja GUI do przesyłania obrazów do KapitanBooru."
|
msgstr "Aplikacja GUI do przesyłania obrazów do KapitanBooru."
|
||||||
|
|
||||||
#: ImageBrowser.py:387
|
#: ImageBrowser.py:504
|
||||||
msgid "Features include image upload, tag management, automatic"
|
msgid "Features include image upload, tag management, automatic"
|
||||||
msgstr "Funkcje obejmują przesyłanie obrazów, zarządzanie tagami, automatyczne"
|
msgstr "Funkcje obejmują przesyłanie obrazów, zarządzanie tagami, automatyczne"
|
||||||
|
|
||||||
#: ImageBrowser.py:388
|
#: ImageBrowser.py:505
|
||||||
msgid "tagging with wdtagger, and cache management."
|
msgid "tagging with wdtagger, and cache management."
|
||||||
msgstr "tagowanie za pomocą wdtagger oraz zarządzanie cache."
|
msgstr "tagowanie za pomocą wdtagger oraz zarządzanie cache."
|
||||||
|
|
||||||
#: ImageBrowser.py:390
|
#: ImageBrowser.py:507
|
||||||
msgid "Authors:"
|
msgid "Authors:"
|
||||||
msgstr "Autorzy:"
|
msgstr "Autorzy:"
|
||||||
|
|
||||||
#: ImageBrowser.py:393
|
#: ImageBrowser.py:510
|
||||||
msgid "License: MIT License"
|
msgid "License: MIT License"
|
||||||
msgstr "Licencja: MIT License"
|
msgstr "Licencja: MIT License"
|
||||||
|
|
||||||
#: ImageBrowser.py:396
|
#: ImageBrowser.py:521
|
||||||
msgid "Repository:"
|
msgid "Repository:"
|
||||||
msgstr "Repozytorium:"
|
msgstr "Repozytorium:"
|
||||||
|
|
||||||
#: ImageBrowser.py:397
|
#: ImageBrowser.py:530
|
||||||
msgid "Website:"
|
msgid "Website:"
|
||||||
msgstr "Strona internetowa:"
|
msgstr "Strona internetowa:"
|
||||||
|
|
||||||
#: ImageBrowser.py:414
|
#: ImageBrowser.py:541
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Zamknij"
|
msgstr "Zamknij"
|
||||||
|
|
||||||
#: ImageBrowser.py:422 ImageBrowser.py:425
|
#: ImageBrowser.py:549 ImageBrowser.py:552
|
||||||
msgid "Cache"
|
msgid "Cache"
|
||||||
msgstr "Cache"
|
msgstr "Cache"
|
||||||
|
|
||||||
#: ImageBrowser.py:422
|
#: ImageBrowser.py:549
|
||||||
msgid "Cache Taggera zostało wyczyszczone."
|
msgid "Cache Taggera zostało wyczyszczone."
|
||||||
msgstr "Cache Taggera zostało wyczyszczone."
|
msgstr "Cache Taggera zostało wyczyszczone."
|
||||||
|
|
||||||
#: ImageBrowser.py:425
|
#: ImageBrowser.py:552
|
||||||
msgid "Błąd przy czyszczeniu cache:"
|
msgid "Błąd przy czyszczeniu cache:"
|
||||||
msgstr "Błąd przy czyszczeniu cache:"
|
msgstr "Błąd przy czyszczeniu cache:"
|
||||||
|
|
||||||
#: ImageBrowser.py:434
|
#: ImageBrowser.py:562
|
||||||
msgid "Login:"
|
msgid "Login:"
|
||||||
msgstr "Login:"
|
msgstr "Login:"
|
||||||
|
|
||||||
#: ImageBrowser.py:440
|
#: ImageBrowser.py:568
|
||||||
msgid "Hasło:"
|
msgid "Hasło:"
|
||||||
msgstr "Hasło:"
|
msgstr "Hasło:"
|
||||||
|
|
||||||
#: ImageBrowser.py:446
|
#: ImageBrowser.py:574
|
||||||
msgid "Base URL:"
|
msgid "Base URL:"
|
||||||
msgstr "Base URL:"
|
msgstr "Base URL:"
|
||||||
|
|
||||||
#: ImageBrowser.py:452
|
#: ImageBrowser.py:580
|
||||||
msgid "Default Tags:"
|
msgid "Default Tags:"
|
||||||
msgstr "Domyślne tagi:"
|
msgstr "Domyślne tagi:"
|
||||||
|
|
||||||
#: ImageBrowser.py:458
|
#: ImageBrowser.py:586
|
||||||
msgid "Browser:"
|
msgid "Browser:"
|
||||||
msgstr "Przeglądarka:"
|
msgstr "Przeglądarka:"
|
||||||
|
|
||||||
#: ImageBrowser.py:472
|
#: ImageBrowser.py:600
|
||||||
msgid "Language:"
|
msgid "Language:"
|
||||||
msgstr "Język:"
|
msgstr "Język:"
|
||||||
|
|
||||||
#: ImageBrowser.py:504
|
#: ImageBrowser.py:632
|
||||||
msgid "Zapisz"
|
msgid "Zapisz"
|
||||||
msgstr "Zapisz"
|
msgstr "Zapisz"
|
||||||
|
|
||||||
#: ImageBrowser.py:546
|
#: ImageBrowser.py:674
|
||||||
msgid "PNG Tags"
|
msgid "PNG Tags"
|
||||||
msgstr "Tagi PNG"
|
msgstr "Tagi PNG"
|
||||||
|
|
||||||
#: ImageBrowser.py:558
|
#: ImageBrowser.py:686
|
||||||
msgid "Tagger Tags"
|
msgid "Tagger Tags"
|
||||||
msgstr "Tagi Taggera"
|
msgstr "Tagi Taggera"
|
||||||
|
|
||||||
#: ImageBrowser.py:572
|
#: ImageBrowser.py:700
|
||||||
msgid "Manual Tags"
|
msgid "Manual Tags"
|
||||||
msgstr "Tagi ręczne"
|
msgstr "Tagi ręczne"
|
||||||
|
|
||||||
#: ImageBrowser.py:580
|
#: ImageBrowser.py:708
|
||||||
msgid "Final Tags"
|
msgid "Final Tags"
|
||||||
msgstr "Ostateczne tagi"
|
msgstr "Ostateczne tagi"
|
||||||
|
|
||||||
#: ImageBrowser.py:605
|
#: ImageBrowser.py:733
|
||||||
msgid "Wyświetl"
|
msgid "Wyświetl"
|
||||||
msgstr "Wyświetl"
|
msgstr "Wyświetl"
|
||||||
|
|
||||||
#: ImageBrowser.py:622
|
#: ImageBrowser.py:750
|
||||||
msgid "Przetworzono tagi:"
|
msgid "Przetworzono tagi:"
|
||||||
msgstr "Przetworzono tagi:"
|
msgstr "Przetworzono tagi:"
|
||||||
|
|
||||||
#: ImageBrowser.py:622 ImageBrowser.py:623 ImageBrowser.py:624
|
#: ImageBrowser.py:750 ImageBrowser.py:751 ImageBrowser.py:752
|
||||||
msgid "plików"
|
msgid "plików"
|
||||||
msgstr "plików"
|
msgstr "plików"
|
||||||
|
|
||||||
#: ImageBrowser.py:623
|
#: ImageBrowser.py:751
|
||||||
msgid "Zweryfikowano status uploadu:"
|
msgid "Zweryfikowano status uploadu:"
|
||||||
msgstr "Zweryfikowano status uploadu:"
|
msgstr "Zweryfikowano status uploadu:"
|
||||||
|
|
||||||
#: ImageBrowser.py:624
|
#: ImageBrowser.py:752
|
||||||
msgid "Zuploadowano:"
|
msgid "Zuploadowano:"
|
||||||
msgstr "Zuploadowano:"
|
msgstr "Zuploadowano:"
|
||||||
|
|
||||||
#: ImageBrowser.py:652
|
#: ImageBrowser.py:780
|
||||||
msgid "Wybierz folder z obrazkami PNG"
|
msgid "Wybierz folder z obrazkami PNG"
|
||||||
msgstr "Wybierz folder z obrazami PNG"
|
msgstr "Wybierz folder z obrazami PNG"
|
||||||
|
|
||||||
#: ImageBrowser.py:683
|
#: ImageBrowser.py:813
|
||||||
msgid "Informacja"
|
msgid "Informacja"
|
||||||
msgstr "Informacja"
|
msgstr "Informacja"
|
||||||
|
|
||||||
#: ImageBrowser.py:683
|
#: ImageBrowser.py:813
|
||||||
msgid "Brak plików PNG w wybranym folderze."
|
msgid "Brak plików PNG w wybranym folderze."
|
||||||
msgstr "Brak plików PNG w wybranym folderze."
|
msgstr "Brak plików PNG w wybranym folderze."
|
||||||
|
|
||||||
#: ImageBrowser.py:766
|
#: ImageBrowser.py:896
|
||||||
msgid "Błąd podczas sprawdzania paczki uploadu:"
|
msgid "Błąd podczas sprawdzania paczki uploadu:"
|
||||||
msgstr "Błąd podczas sprawdzania paczki uploadu:"
|
msgstr "Błąd podczas sprawdzania paczki uploadu:"
|
||||||
|
|
||||||
#: ImageBrowser.py:842
|
#: ImageBrowser.py:972
|
||||||
msgid "Błąd przy obliczaniu MD5:"
|
msgid "Błąd przy obliczaniu MD5:"
|
||||||
msgstr "Błąd przy obliczaniu MD5:"
|
msgstr "Błąd przy obliczaniu MD5:"
|
||||||
|
|
||||||
#: ImageBrowser.py:898
|
#: ImageBrowser.py:1028
|
||||||
msgid "Błąd"
|
msgid "Błąd"
|
||||||
msgstr "Błąd"
|
msgstr "Błąd"
|
||||||
|
|
||||||
#: ImageBrowser.py:898
|
#: ImageBrowser.py:1028
|
||||||
msgid "Nie można załadować obrazka:"
|
msgid "Nie można załadować obrazka:"
|
||||||
msgstr "Nie można załadować obrazka:"
|
msgstr "Nie można załadować obrazka:"
|
||||||
|
|
||||||
#: ImageBrowser.py:1108 ImageBrowser.py:1118
|
#: ImageBrowser.py:1238 ImageBrowser.py:1248
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Warning: Tag '{tag}' not found in implication graph"
|
msgid "Warning: Tag '{tag}' not found in implication graph"
|
||||||
msgstr "Ostrzeżenie: Tag '{tag}' nie został znaleziony w grafie implikacji"
|
msgstr "Ostrzeżenie: Tag '{tag}' nie został znaleziony w grafie implikacji"
|
||||||
|
|
||||||
#: ImageBrowser.py:1348
|
#: ImageBrowser.py:1478
|
||||||
msgid "Tagger przetwarza..."
|
msgid "Tagger przetwarza..."
|
||||||
msgstr "Tagger przetwarza..."
|
msgstr "Tagger przetwarza..."
|
||||||
|
|
||||||
#: ImageBrowser.py:1373
|
#: ImageBrowser.py:1503
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Wysyłam plik {base_file_name}..."
|
msgid "Wysyłam plik {base_file_name}..."
|
||||||
msgstr "Wysyłam plik {base_file_name}..."
|
msgstr "Wysyłam plik {base_file_name}..."
|
||||||
|
|
||||||
#: ImageBrowser.py:1414
|
#: ImageBrowser.py:1544
|
||||||
#, fuzzy
|
|
||||||
msgid "Wysyłanie zakończone powodzeniem!"
|
msgid "Wysyłanie zakończone powodzeniem!"
|
||||||
msgstr "Upload zakończony powodzeniem!"
|
msgstr "Wysyłanie zakończone powodzeniem!"
|
||||||
|
|
||||||
#: ImageBrowser.py:1418 ImageBrowser.py:1427
|
#: ImageBrowser.py:1548 ImageBrowser.py:1557
|
||||||
#, fuzzy, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Wysyłanie zakończone błędem.\n"
|
"Wysyłanie zakończone błędem.\n"
|
||||||
"Status: {status_code}\n"
|
"Status: {status_code}\n"
|
||||||
"Treść: {text}"
|
"Treść: {text}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Upload zakończony błędem.\n"
|
"Wysyłanie zakończone błędem.\n"
|
||||||
"Status: {status_code}\n"
|
"Status: {status_code}\n"
|
||||||
"Treść: {text}"
|
"Treść: {text}"
|
||||||
|
|
||||||
#: ImageBrowser.py:1433 ImageBrowser.py:1436
|
#: ImageBrowser.py:1563
|
||||||
msgid "Wysyłanie"
|
msgid "Wysyłanie"
|
||||||
msgstr ""
|
msgstr "Wysyłanie"
|
||||||
|
|
||||||
#: ImageBrowser.py:1449
|
#: ImageBrowser.py:1579
|
||||||
#, fuzzy
|
|
||||||
msgid "Błąd wysyłania"
|
msgid "Błąd wysyłania"
|
||||||
msgstr "Błąd edycji"
|
msgstr "Błąd wysyłania"
|
||||||
|
|
||||||
#: ImageBrowser.py:1469
|
#: ImageBrowser.py:1599
|
||||||
msgid "Błąd edycji"
|
msgid "Błąd edycji"
|
||||||
msgstr "Błąd edycji"
|
msgstr "Błąd edycji"
|
||||||
|
|
||||||
#: ImageBrowser.py:1469
|
#: ImageBrowser.py:1599
|
||||||
msgid "Post nie został znaleziony dla tego pliku"
|
msgid "Post nie został znaleziony dla tego pliku"
|
||||||
msgstr "Post nie został znaleziony dla tego pliku"
|
msgstr "Post nie został znaleziony dla tego pliku"
|
||||||
|
|
||||||
#: ImageBrowser.py:1479
|
#: ImageBrowser.py:1609
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Aktualizuję tagi dla {base_file_name}..."
|
msgid "Aktualizuję tagi dla {base_file_name}..."
|
||||||
msgstr "Aktualizuję tagi dla {base_file_name}..."
|
msgstr "Aktualizuję tagi dla {base_file_name}..."
|
||||||
|
|
||||||
#: ImageBrowser.py:1489 ImageBrowser.py:1499 ImageBrowser.py:1530
|
#: ImageBrowser.py:1619 ImageBrowser.py:1629 ImageBrowser.py:1660
|
||||||
msgid "Operacja anulowana"
|
msgid "Operacja anulowana"
|
||||||
msgstr "Operacja anulowana"
|
msgstr "Operacja anulowana"
|
||||||
|
|
||||||
#: ImageBrowser.py:1540
|
#: ImageBrowser.py:1670
|
||||||
msgid "Tagi zostały zaktualizowane!"
|
msgid "Tagi zostały zaktualizowane!"
|
||||||
msgstr "Tagi zostały zaktualizowane!"
|
msgstr "Tagi zostały zaktualizowane!"
|
||||||
|
|
||||||
#: ImageBrowser.py:1542
|
#: ImageBrowser.py:1672
|
||||||
msgid "Sukces edycji"
|
msgid "Sukces edycji"
|
||||||
msgstr "Sukces edycji"
|
msgstr "Sukces edycji"
|
||||||
|
|
||||||
#: ImageBrowser.py:1548
|
#: ImageBrowser.py:1678
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Błąd podczas aktualizacji tagów\n"
|
"Błąd podczas aktualizacji tagów\n"
|
||||||
@ -331,19 +370,19 @@ msgstr ""
|
|||||||
"Błąd podczas aktualizacji tagów\n"
|
"Błąd podczas aktualizacji tagów\n"
|
||||||
"Status: {code}"
|
"Status: {code}"
|
||||||
|
|
||||||
#: ImageBrowser.py:1552
|
#: ImageBrowser.py:1682
|
||||||
msgid "Treść:"
|
msgid "Treść:"
|
||||||
msgstr "Treść:"
|
msgstr "Treść:"
|
||||||
|
|
||||||
#: ImageBrowser.py:1556
|
#: ImageBrowser.py:1686
|
||||||
msgid "Krytyczny błąd edycji"
|
msgid "Krytyczny błąd edycji"
|
||||||
msgstr "Krytyczny błąd edycji"
|
msgstr "Krytyczny błąd edycji"
|
||||||
|
|
||||||
#: ImageBrowser.py:1568
|
#: ImageBrowser.py:1698
|
||||||
msgid "Potwierdzenie"
|
msgid "Potwierdzenie"
|
||||||
msgstr "Potwierdzenie"
|
msgstr "Potwierdzenie"
|
||||||
|
|
||||||
#: ImageBrowser.py:1570
|
#: ImageBrowser.py:1700
|
||||||
msgid ""
|
msgid ""
|
||||||
"Czy na pewno chcesz wrzucić wszystkie niewrzucone pliki?\n"
|
"Czy na pewno chcesz wrzucić wszystkie niewrzucone pliki?\n"
|
||||||
"Każdy z nich zostanie oznaczony tagiem 'meta:auto_upload'.\n"
|
"Każdy z nich zostanie oznaczony tagiem 'meta:auto_upload'.\n"
|
||||||
@ -353,18 +392,18 @@ msgstr ""
|
|||||||
"Każdy z nich zostanie oznaczony tagiem 'meta:auto_upload'.\n"
|
"Każdy z nich zostanie oznaczony tagiem 'meta:auto_upload'.\n"
|
||||||
"Upewnij się, że tagi są poprawne!"
|
"Upewnij się, że tagi są poprawne!"
|
||||||
|
|
||||||
#: ImageBrowser.py:1589
|
#: ImageBrowser.py:1724
|
||||||
msgid "Anulowano operację!"
|
msgid "Anulowano operację!"
|
||||||
msgstr "Operacja anulowana!"
|
msgstr "Operacja anulowana!"
|
||||||
|
|
||||||
#: ImageBrowser.py:1597
|
#: ImageBrowser.py:1732
|
||||||
#, fuzzy, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Wysyłanie {file_path} z tagami: {final_tags} i ratingiem: {final_rating}"
|
"Wysyłanie {file_path} z tagami: {final_tags} i ratingiem: {final_rating}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Wysyłanie {file_path} z tagami: {final_tags} i ratingiem: {final_rating}"
|
"Wysyłanie {file_path} z tagami: {final_tags} i ratingiem: {final_rating}"
|
||||||
|
|
||||||
#: ImageBrowser.py:1608
|
#: ImageBrowser.py:1748
|
||||||
msgid "Przesłano pliki!"
|
msgid "Przesłano pliki!"
|
||||||
msgstr "Pliki zostały przesłane!"
|
msgstr "Pliki zostały przesłane!"
|
||||||
|
|
||||||
@ -497,19 +536,3 @@ msgstr "Błąd podczas odczytu tag_aliases:"
|
|||||||
#: tag_processing.py:181
|
#: tag_processing.py:181
|
||||||
msgid "Błąd podczas odczytu tags:"
|
msgid "Błąd podczas odczytu tags:"
|
||||||
msgstr "Błąd podczas odczytu tags:"
|
msgstr "Błąd podczas odczytu tags:"
|
||||||
|
|
||||||
#, python-brace-format
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "Upload zakończony błędem.\n"
|
|
||||||
#~ "Status: 409\n"
|
|
||||||
#~ "Treść: {error}"
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "Upload zakończony błędem.\n"
|
|
||||||
#~ "Status: 409\n"
|
|
||||||
#~ "Treść: {error}"
|
|
||||||
|
|
||||||
#~ msgid "Upload"
|
|
||||||
#~ msgstr "Upload"
|
|
||||||
|
|
||||||
#~ msgid "Błąd uploadu"
|
|
||||||
#~ msgstr "Błąd uploadu"
|
|
||||||
|
@ -4,3 +4,4 @@ pywin32==308
|
|||||||
Requests==2.32.3
|
Requests==2.32.3
|
||||||
wdtagger==0.13.2
|
wdtagger==0.13.2
|
||||||
bs4==0.0.2
|
bs4==0.0.2
|
||||||
|
tomli==2.2.1
|
@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "kapitanbooru-uploader"
|
name = "kapitanbooru-uploader"
|
||||||
version = "0.4.4"
|
version = "0.5.0"
|
||||||
description = "A GUI application for uploading images to KapitanBooru"
|
description = "A GUI application for uploading images to KapitanBooru"
|
||||||
authors = [
|
authors = [
|
||||||
{name = "Michał Leśniak", email = "kapitan@mlesniak.pl"}
|
{name = "Michał Leśniak", email = "kapitan@mlesniak.pl"}
|
||||||
@ -15,7 +15,8 @@ dependencies = [
|
|||||||
"pywin32==308",
|
"pywin32==308",
|
||||||
"requests==2.32.3",
|
"requests==2.32.3",
|
||||||
"wdtagger==0.13.2",
|
"wdtagger==0.13.2",
|
||||||
"bs4==0.0.2"
|
"bs4==0.0.2",
|
||||||
|
"tomli==2.2.1"
|
||||||
]
|
]
|
||||||
requires-python = ">=3.13"
|
requires-python = ">=3.13"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user