Bump version to 0.9.4; update localization files and adjust index references in Core and ImageBrowser
All checks were successful
Gitea/kapitanbooru-uploader/pipeline/head This commit looks good

This commit is contained in:
2025-06-26 18:01:13 +02:00
parent 88288c7e22
commit aa6dd9e583
5 changed files with 199 additions and 199 deletions

View File

@@ -35,7 +35,7 @@ class Core:
"""
def __init__(self, settings: Settings, gui_mode: bool = True):
self.version = "0.9.3"
self.version = "0.9.4"
self.acknowledged_version = parse_version(self.version)
self.settings = settings
self.tags_repo = TagsRepo(settings)
@@ -70,7 +70,6 @@ class Core:
self.image_files_md5 = []
self.current_index = None
self.image_cache = None
self.tagger_thread_idx = 0
self.tagger = wdt.Tagger()
# Liczniki statusu

View File

@@ -59,6 +59,7 @@ class ImageBrowser(tk.Tk):
# Słowniki przechowujące stany tagów (dla PNG i Taggera)
self.png_tags_states = {}
self.tagger_tags_states = {}
self.tagger_thread_idx = 0
self.create_menu()
self.create_widgets()
@@ -80,7 +81,7 @@ class ImageBrowser(tk.Tk):
lambda idx=idx: self.listbox.itemconfig(idx, {"bg": "lightgray"}),
)
# Jeśli aktualnie wybrany plik, zmień przycisk
if self.current_index == idx:
if self.core.current_index == idx:
self.after(0, self.update_button_states)
def _schedule_update_check(self):
@@ -552,7 +553,7 @@ class ImageBrowser(tk.Tk):
for file in self.core.image_files:
self.listbox.insert(tk.END, os.path.basename(file))
if self.core.image_files:
self.current_index = 0
self.core.current_index = 0
self.listbox.select_set(0)
self.show_image(0)
self.update_button_states()
@@ -585,12 +586,12 @@ class ImageBrowser(tk.Tk):
- Buttons: upload_button, view_post_button
Dependencies:
- Relies on self.current_index to determine selection state
- Relies on self.core.current_index to determine selection state
- Checks self.uploaded against self.image_files for post existence
"""
has_current = self.current_index is not None
has_current = self.core.current_index is not None
post_id = (
self.core.uploaded.get(self.core.image_files[self.current_index])
self.core.uploaded.get(self.core.image_files[self.core.current_index])
if has_current
else None
)
@@ -620,9 +621,9 @@ class ImageBrowser(tk.Tk):
def view_current_post(self):
"""Otwiera w przeglądarce URL posta."""
if self.current_index is None:
if self.core.current_index is None:
return
post_id = self.core.uploaded.get(self.core.image_files[self.current_index])
post_id = self.core.uploaded.get(self.core.image_files[self.core.current_index])
if post_id:
url = self.core.settings.base_url.rstrip("/") + "/post/view/" + str(post_id)
open_webbrowser(url, self.core.settings)
@@ -635,7 +636,7 @@ class ImageBrowser(tk.Tk):
if not self.listbox.curselection():
return
index = self.listbox.curselection()[0]
self.current_index = index
self.core.current_index = index
self.show_image(index)
self.update_button_states()
@@ -645,7 +646,7 @@ class ImageBrowser(tk.Tk):
Wysyła POST z obrazkiem, tagami i ratingiem.
Po zakończeniu uploadu, ustawia przycisk na "Wyświetl".
"""
file_path = self.core.image_files[self.current_index]
file_path = self.core.image_files[self.core.current_index]
if self.core.uploaded.get(file_path, False):
# Jeśli plik już uploadowany, ustaw przycisk na "Wyświetl"
self.update_button_states()
@@ -708,7 +709,7 @@ class ImageBrowser(tk.Tk):
Modyfikuje obrazek na serwerze.
Wysyła POST z md5 obrazka, tagami i ratingiem.
"""
file_path = self.core.image_files[self.current_index]
file_path = self.core.image_files[self.core.current_index]
if not self.core.uploaded.get(file_path, False):
self.update_button_states()
return
@@ -799,12 +800,12 @@ class ImageBrowser(tk.Tk):
"""
Przełącza na poprzedni obraz
"""
if self.current_index is None:
if self.core.current_index is None:
return
new_index = self.current_index - 1
new_index = self.core.current_index - 1
if new_index < 0:
new_index = len(self.core.image_files) - 1
self.current_index = new_index
self.core.current_index = new_index
self.listbox.select_clear(0, tk.END)
self.listbox.select_set(new_index)
self.listbox.activate(new_index)
@@ -815,12 +816,12 @@ class ImageBrowser(tk.Tk):
"""
Przełącza na następny obraz
"""
if self.current_index is None:
if self.core.current_index is None:
return
new_index = self.current_index + 1
new_index = self.core.current_index + 1
if new_index >= len(self.core.image_files):
new_index = 0
self.current_index = new_index
self.core.current_index = new_index
self.listbox.select_clear(0, tk.END)
self.listbox.select_set(new_index)
self.listbox.activate(new_index)
@@ -1145,14 +1146,14 @@ class ImageBrowser(tk.Tk):
Jeśli wynik jest już w cache, wykorzystuje go; w przeciwnym razie uruchamia Taggera
i zapisuje wynik do cache.
"""
if self.current_index is None:
if self.core.current_index is None:
return
# Ustaw komunikat, że Tagger pracuje
self.tagger_tags_text.config(state=tk.NORMAL)
self.tagger_tags_text.delete("1.0", tk.END)
self.tagger_tags_text.insert("1.0", _("Tagger przetwarza..."))
self.tagger_tags_text.config(state=tk.DISABLED)
file_path = self.core.image_files[self.current_index]
file_path = self.core.image_files[self.core.current_index]
result = self.core.get_tagger_results(file_path, lambda: self.after(0, self.update_status_bar))
new_rating = self.core.map_tagger_rating(result)
self.rating_var.set(new_rating)

View File

@@ -1,8 +1,8 @@
msgid ""
msgstr ""
"Project-Id-Version: Kapitanbooru Uploader 0.9.3\n"
"Project-Id-Version: Kapitanbooru Uploader 0.9.4\n"
"Report-Msgid-Bugs-To: kapitan@mlesniak.pl\n"
"POT-Creation-Date: 2025-06-26 17:51+0200\n"
"POT-Creation-Date: 2025-06-26 18:00+0200\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -43,56 +43,56 @@ msgstr "Found auth_token:"
msgid "auth_token not found in the HTML page."
msgstr "auth_token not found in the HTML page."
#: Core.py:196
#: Core.py:195
msgid "Błąd przy otwieraniu pliku"
msgstr "Error opening file"
#: Core.py:238
#: Core.py:237
msgid "Tagger przetworzył:"
msgstr "Tagger processed:"
#: Core.py:241
#: Core.py:240
msgid "Błąd Taggera dla"
msgstr "Tagger error for"
#: Core.py:296
#: Core.py:295
msgid "Error computing MD5:"
msgstr "Error computing MD5:"
#: Core.py:421
#: Core.py:420
msgid "Błąd podczas sprawdzania paczki uploadu:"
msgstr "Error while checking upload package:"
#: Core.py:430
#: Core.py:429
msgid "Plik nie istnieje:"
msgstr "File does not exist:"
#: Core.py:436
#: Core.py:435
msgid "Tagi dla pliku"
msgstr "Tags for file"
#: Core.py:445
#: Core.py:444
msgid "Błąd podczas autotagowania pliku"
msgstr "Error during file autotagowania"
#: Core.py:452
#: Core.py:451
msgid "Podana ścieżka nie jest katalogiem:"
msgstr "Given path is not a directory:"
#: Core.py:460
#: Core.py:459
msgid "Brak obrazów do przetworzenia w katalogu:"
msgstr "No images to process in directory:"
#: Core.py:483
#: Core.py:482
#, python-brace-format
msgid "Wysyłam plik {base_file_name}..."
msgstr "Uploading file {base_file_name}..."
#: Core.py:518
#: Core.py:517
msgid "Wysyłanie zakończone powodzeniem!"
msgstr "Upload completed successfully!"
#: Core.py:522 Core.py:531
#: Core.py:521 Core.py:530
#, python-brace-format
msgid ""
"Wysyłanie zakończone błędem.\n"
@@ -103,52 +103,52 @@ msgstr ""
"Status: {status_code}\n"
"Content: {text}"
#: Core.py:540 Core.py:546 ImageBrowser.py:663 ImageBrowser.py:666
#: ImageBrowser.py:1186 ImageBrowser.py:1189
#: Core.py:539 Core.py:545 ImageBrowser.py:664 ImageBrowser.py:667
#: ImageBrowser.py:1187 ImageBrowser.py:1190
msgid "Wysyłanie"
msgstr "Uploading"
#: Core.py:558
#: Core.py:557
msgid "Błąd wysyłania pliku"
msgstr "Upload error"
#: Core.py:588
#: Core.py:587
msgid "Anulowano operację!"
msgstr "Operation cancelled!"
#: Core.py:598
#: Core.py:597
#, python-brace-format
msgid ""
"Wysyłanie {file_path} z tagami: {final_tags} i ratingiem: {final_rating}"
msgstr ""
"Uploading {file_path} with tags: {final_tags} and rating: {final_rating}"
#: Core.py:617
#: Core.py:616
msgid "Przesłano pliki!"
msgstr "Files have been uploaded!"
#: Core.py:638 Core.py:642
#: Core.py:637 Core.py:641
msgid "Post nie został znaleziony dla tego pliku"
msgstr "Post not found for this file"
#: Core.py:653
#: Core.py:652
#, python-brace-format
msgid "Aktualizuję tagi dla {base_file_name}..."
msgstr "Updating tags for {base_file_name}..."
#: Core.py:663 Core.py:673 Core.py:698
#: Core.py:662 Core.py:672 Core.py:697
msgid "Operacja anulowana"
msgstr "Operation cancelled"
#: Core.py:708
#: Core.py:707
msgid "Tagi zostały zaktualizowane!"
msgstr "Tags have been updated!"
#: Core.py:713 ImageBrowser.py:728
#: Core.py:712 ImageBrowser.py:729
msgid "Sukces edycji"
msgstr "Edit successful"
#: Core.py:720
#: Core.py:719
#, python-brace-format
msgid ""
"Błąd podczas aktualizacji tagów\n"
@@ -157,38 +157,38 @@ msgstr ""
"Error updating tags\n"
"Status: {code}"
#: Core.py:724
#: Core.py:723
msgid "Treść:"
msgstr "Content:"
#: Core.py:728 ImageBrowser.py:725
#: Core.py:727 ImageBrowser.py:726
msgid "Błąd edycji"
msgstr "Edit error"
#: Core.py:734
#: Core.py:733
msgid "Krytyczny błąd edycji"
msgstr "Critical edit error"
#: ImageBrowser.py:120
#: ImageBrowser.py:121
#, python-brace-format
msgid "Update check failed: {error}"
msgstr "Update check failed: {error}"
#: ImageBrowser.py:122
#: ImageBrowser.py:123
#, python-brace-format
msgid "Malformed pyproject.toml: {error}"
msgstr "Malformed pyproject.toml: {error}"
#: ImageBrowser.py:125
#: ImageBrowser.py:126
#, python-brace-format
msgid "Unexpected error during update check: {error}"
msgstr "Unexpected error during update check: {error}"
#: ImageBrowser.py:132
#: ImageBrowser.py:133
msgid "Update Available"
msgstr "Update Available"
#: ImageBrowser.py:134
#: ImageBrowser.py:135
#, python-brace-format
msgid ""
"A new version {new_version} is available!\n"
@@ -201,219 +201,219 @@ msgstr ""
"\n"
"Update using: {update_command}"
#: ImageBrowser.py:191
#: ImageBrowser.py:192
msgid "Otwórz folder"
msgstr "Open folder"
#: ImageBrowser.py:194 ImageBrowser.py:492 ImageBrowser.py:610
#: ImageBrowser.py:618
#: ImageBrowser.py:195 ImageBrowser.py:493 ImageBrowser.py:611
#: ImageBrowser.py:619
msgid "Wyślij"
msgstr "Upload"
#: ImageBrowser.py:197 ImageBrowser.py:603
#: ImageBrowser.py:198 ImageBrowser.py:604
msgid "Wyślij wszystko"
msgstr "Upload all"
#: ImageBrowser.py:201 ImageBrowser.py:604 ImageBrowser.py:610
#: ImageBrowser.py:202 ImageBrowser.py:605 ImageBrowser.py:611
msgid "Podmień tagi"
msgstr "Replace tags"
#: ImageBrowser.py:204 ImageBrowser.py:605
#: ImageBrowser.py:205 ImageBrowser.py:606
msgid "Otwórz post"
msgstr "Open post"
#: ImageBrowser.py:207
#: ImageBrowser.py:208
msgid "Zakończ"
msgstr "Finish"
#: ImageBrowser.py:209
#: ImageBrowser.py:210
msgid "Plik"
msgstr "File"
#: ImageBrowser.py:213 ImageBrowser.py:314
#: ImageBrowser.py:214 ImageBrowser.py:315
msgid "Ustawienia"
msgstr "Settings"
#: ImageBrowser.py:216
#: ImageBrowser.py:217
msgid "Wyczyść cache Taggera"
msgstr "Clear Tagger cache"
#: ImageBrowser.py:219
#: ImageBrowser.py:220
msgid "Zregeneruj bazę tagów"
msgstr "Regenerate tag database"
#: ImageBrowser.py:221
#: ImageBrowser.py:222
msgid "Opcje"
msgstr "Options"
#: ImageBrowser.py:224
#: ImageBrowser.py:225
msgid "About"
msgstr "About"
#: ImageBrowser.py:225
#: ImageBrowser.py:226
msgid "Help"
msgstr "Help"
#: ImageBrowser.py:230
#: ImageBrowser.py:231
msgid "About Kapitanbooru Uploader"
msgstr "About Kapitanbooru Uploader"
#: ImageBrowser.py:247
#: ImageBrowser.py:248
#, python-brace-format
msgid "A new version {new_version} is available!"
msgstr "A new version {new_version} is available!"
#: ImageBrowser.py:254
#: ImageBrowser.py:255
#, python-brace-format
msgid "Current version: {version}"
msgstr "Current version: {version}"
#: ImageBrowser.py:256
#: ImageBrowser.py:257
msgid "A GUI application for uploading images to KapitanBooru."
msgstr "A GUI application for uploading images to KapitanBooru."
#: ImageBrowser.py:257
#: ImageBrowser.py:258
msgid "Features include image upload, tag management, automatic"
msgstr "Features include image upload, tag management, automatic"
#: ImageBrowser.py:258
#: ImageBrowser.py:259
msgid "tagging with wdtagger, and cache management."
msgstr "tagging with wdtagger, and cache management."
#: ImageBrowser.py:260
#: ImageBrowser.py:261
msgid "Authors:"
msgstr "Authors:"
#: ImageBrowser.py:263
#: ImageBrowser.py:264
msgid "License: MIT License"
msgstr "License: MIT License"
#: ImageBrowser.py:276
#: ImageBrowser.py:277
msgid "Repository:"
msgstr "Repository:"
#: ImageBrowser.py:285
#: ImageBrowser.py:286
msgid "Website:"
msgstr "Website:"
#: ImageBrowser.py:296
#: ImageBrowser.py:297
msgid "Close"
msgstr "Close"
#: ImageBrowser.py:306 ImageBrowser.py:309
#: ImageBrowser.py:307 ImageBrowser.py:310
msgid "Cache"
msgstr "Cache"
#: ImageBrowser.py:306
#: ImageBrowser.py:307
msgid "Cache Taggera zostało wyczyszczone."
msgstr "Tagger cache has been cleared."
#: ImageBrowser.py:309
#: ImageBrowser.py:310
msgid "Błąd przy czyszczeniu cache:"
msgstr "Error clearing cache:"
#: ImageBrowser.py:319
#: ImageBrowser.py:320
msgid "Login:"
msgstr "Login:"
#: ImageBrowser.py:325
#: ImageBrowser.py:326
msgid "Hasło:"
msgstr "Password:"
#: ImageBrowser.py:331
#: ImageBrowser.py:332
msgid "Base URL:"
msgstr "Base URL:"
#: ImageBrowser.py:337
#: ImageBrowser.py:338
msgid "Default Tags:"
msgstr "Default Tags:"
#: ImageBrowser.py:343
#: ImageBrowser.py:344
msgid "Browser:"
msgstr "Browser:"
#: ImageBrowser.py:357
#: ImageBrowser.py:358
msgid "Language:"
msgstr "Language:"
#: ImageBrowser.py:393
#: ImageBrowser.py:394
msgid "Zapisz"
msgstr "Save"
#: ImageBrowser.py:435
#: ImageBrowser.py:436
msgid "PNG Tags"
msgstr "PNG Tags"
#: ImageBrowser.py:447
#: ImageBrowser.py:448
msgid "Tagger Tags"
msgstr "Tagger Tags"
#: ImageBrowser.py:461
#: ImageBrowser.py:462
msgid "Manual Tags"
msgstr "Manual Tags"
#: ImageBrowser.py:472
#: ImageBrowser.py:473
msgid "Final Tags"
msgstr "Final Tags"
#: ImageBrowser.py:497
#: ImageBrowser.py:498
msgid "Wyświetl"
msgstr "Display"
#: ImageBrowser.py:514
#: ImageBrowser.py:515
msgid "Przetworzono tagi:"
msgstr "Processed tags:"
#: ImageBrowser.py:514 ImageBrowser.py:515 ImageBrowser.py:516
#: ImageBrowser.py:515 ImageBrowser.py:516 ImageBrowser.py:517
msgid "plików"
msgstr "files"
#: ImageBrowser.py:515
#: ImageBrowser.py:516
msgid "Zweryfikowano status uploadu:"
msgstr "Upload status verified:"
#: ImageBrowser.py:516
#: ImageBrowser.py:517
msgid "Zuploadowano:"
msgstr "Uploaded:"
#: ImageBrowser.py:545
#: ImageBrowser.py:546
msgid "Wybierz folder z obrazkami PNG, JPEG, WebP, AVIF i GIF"
msgstr "Select folder with PNG, JPEG, WebP, AVIF, and GIF images"
#: ImageBrowser.py:561
#: ImageBrowser.py:562
msgid "Informacja"
msgstr "Information"
#: ImageBrowser.py:562
#: ImageBrowser.py:563
msgid "Brak plików PNG, JPEG, WebP, AVIF lub GIF w wybranym folderze."
msgstr "No PNG, JPEG, WebP, AVIF or GIF files in the selected folder."
#: ImageBrowser.py:669 ImageBrowser.py:1192
#: ImageBrowser.py:670 ImageBrowser.py:1193
msgid "Błąd wysyłania"
msgstr "Upload error"
#: ImageBrowser.py:704
#: ImageBrowser.py:705
msgid "Błąd"
msgstr "Error"
#: ImageBrowser.py:704
#: ImageBrowser.py:705
msgid "Nie można załadować obrazka:"
msgstr "Unable to load image:"
#: ImageBrowser.py:932 ImageBrowser.py:944
#: ImageBrowser.py:933 ImageBrowser.py:945
#, python-brace-format
msgid "Warning: Tag '{tag}' not found in implication graph"
msgstr "Warning: Tag '{tag}' not found in implication graph"
#: ImageBrowser.py:1153
#: ImageBrowser.py:1154
msgid "Tagger przetwarza..."
msgstr "Tagger processing..."
#: ImageBrowser.py:1170
#: ImageBrowser.py:1171
msgid "Potwierdzenie"
msgstr "Confirmation"
#: ImageBrowser.py:1172
#: ImageBrowser.py:1173
msgid ""
"Czy na pewno chcesz wrzucić wszystkie niewrzucone pliki?\n"
"Każdy z nich zostanie oznaczony tagiem 'meta:auto_upload'.\n"

View File

@@ -1,8 +1,8 @@
msgid ""
msgstr ""
"Project-Id-Version: Kapitanbooru Uploader 0.9.3\n"
"Project-Id-Version: Kapitanbooru Uploader 0.9.4\n"
"Report-Msgid-Bugs-To: kapitan@mlesniak.pl\n"
"POT-Creation-Date: 2025-06-26 17:51+0200\n"
"POT-Creation-Date: 2025-06-26 18:00+0200\n"
"Language: pl\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -45,56 +45,56 @@ msgstr "Znaleziono auth_token:"
msgid "auth_token not found in the HTML page."
msgstr "Nie znaleziono auth_token w stronie HTML."
#: Core.py:196
#: Core.py:195
msgid "Błąd przy otwieraniu pliku"
msgstr "Błąd przy otwieraniu pliku"
#: Core.py:238
#: Core.py:237
msgid "Tagger przetworzył:"
msgstr "Tagger przetworzył:"
#: Core.py:241
#: Core.py:240
msgid "Błąd Taggera dla"
msgstr "Błąd Taggera dla"
#: Core.py:296
#: Core.py:295
msgid "Error computing MD5:"
msgstr "Błąd przy obliczaniu MD5:"
#: Core.py:421
#: Core.py:420
msgid "Błąd podczas sprawdzania paczki uploadu:"
msgstr "Błąd podczas sprawdzania paczki uploadu:"
#: Core.py:430
#: Core.py:429
msgid "Plik nie istnieje:"
msgstr ""
#: Core.py:436
#: Core.py:435
msgid "Tagi dla pliku"
msgstr ""
#: Core.py:445
#: Core.py:444
msgid "Błąd podczas autotagowania pliku"
msgstr "Błąd podczas autotagowania pliku"
#: Core.py:452
#: Core.py:451
msgid "Podana ścieżka nie jest katalogiem:"
msgstr ""
#: Core.py:460
#: Core.py:459
msgid "Brak obrazów do przetworzenia w katalogu:"
msgstr ""
#: Core.py:483
#: Core.py:482
#, python-brace-format
msgid "Wysyłam plik {base_file_name}..."
msgstr "Wysyłam plik {base_file_name}..."
#: Core.py:518
#: Core.py:517
msgid "Wysyłanie zakończone powodzeniem!"
msgstr "Wysyłanie zakończone powodzeniem!"
#: Core.py:522 Core.py:531
#: Core.py:521 Core.py:530
#, python-brace-format
msgid ""
"Wysyłanie zakończone błędem.\n"
@@ -105,52 +105,52 @@ msgstr ""
"Status: {status_code}\n"
"Treść: {text}"
#: Core.py:540 Core.py:546 ImageBrowser.py:663 ImageBrowser.py:666
#: ImageBrowser.py:1186 ImageBrowser.py:1189
#: Core.py:539 Core.py:545 ImageBrowser.py:664 ImageBrowser.py:667
#: ImageBrowser.py:1187 ImageBrowser.py:1190
msgid "Wysyłanie"
msgstr "Wysyłanie"
#: Core.py:558
#: Core.py:557
msgid "Błąd wysyłania pliku"
msgstr "Błąd wysyłania pliku"
#: Core.py:588
#: Core.py:587
msgid "Anulowano operację!"
msgstr "Operacja anulowana!"
#: Core.py:598
#: Core.py:597
#, python-brace-format
msgid ""
"Wysyłanie {file_path} z tagami: {final_tags} i ratingiem: {final_rating}"
msgstr ""
"Wysyłanie {file_path} z tagami: {final_tags} i ratingiem: {final_rating}"
#: Core.py:617
#: Core.py:616
msgid "Przesłano pliki!"
msgstr "Pliki zostały przesłane!"
#: Core.py:638 Core.py:642
#: Core.py:637 Core.py:641
msgid "Post nie został znaleziony dla tego pliku"
msgstr "Post nie został znaleziony dla tego pliku"
#: Core.py:653
#: Core.py:652
#, python-brace-format
msgid "Aktualizuję tagi dla {base_file_name}..."
msgstr "Aktualizuję tagi dla {base_file_name}..."
#: Core.py:663 Core.py:673 Core.py:698
#: Core.py:662 Core.py:672 Core.py:697
msgid "Operacja anulowana"
msgstr "Operacja anulowana"
#: Core.py:708
#: Core.py:707
msgid "Tagi zostały zaktualizowane!"
msgstr "Tagi zostały zaktualizowane!"
#: Core.py:713 ImageBrowser.py:728
#: Core.py:712 ImageBrowser.py:729
msgid "Sukces edycji"
msgstr "Sukces edycji"
#: Core.py:720
#: Core.py:719
#, python-brace-format
msgid ""
"Błąd podczas aktualizacji tagów\n"
@@ -159,38 +159,38 @@ msgstr ""
"Błąd podczas aktualizacji tagów\n"
"Status: {code}"
#: Core.py:724
#: Core.py:723
msgid "Treść:"
msgstr "Treść:"
#: Core.py:728 ImageBrowser.py:725
#: Core.py:727 ImageBrowser.py:726
msgid "Błąd edycji"
msgstr "Błąd edycji"
#: Core.py:734
#: Core.py:733
msgid "Krytyczny błąd edycji"
msgstr "Krytyczny błąd edycji"
#: ImageBrowser.py:120
#: ImageBrowser.py:121
#, python-brace-format
msgid "Update check failed: {error}"
msgstr "Sprawdzenie aktualizacji nie powiodło się: {error}"
#: ImageBrowser.py:122
#: ImageBrowser.py:123
#, python-brace-format
msgid "Malformed pyproject.toml: {error}"
msgstr "Nieprawidłowy plik pyproject.toml: {error}"
#: ImageBrowser.py:125
#: ImageBrowser.py:126
#, python-brace-format
msgid "Unexpected error during update check: {error}"
msgstr "Nieoczekiwany błąd podczas sprawdzania aktualizacji: {error}"
#: ImageBrowser.py:132
#: ImageBrowser.py:133
msgid "Update Available"
msgstr "Aktualizacja dostępna"
#: ImageBrowser.py:134
#: ImageBrowser.py:135
#, python-brace-format
msgid ""
"A new version {new_version} is available!\n"
@@ -203,219 +203,219 @@ msgstr ""
"\n"
"Aktualizuj za pomocą: {update_command}"
#: ImageBrowser.py:191
#: ImageBrowser.py:192
msgid "Otwórz folder"
msgstr "Otwórz folder"
#: ImageBrowser.py:194 ImageBrowser.py:492 ImageBrowser.py:610
#: ImageBrowser.py:618
#: ImageBrowser.py:195 ImageBrowser.py:493 ImageBrowser.py:611
#: ImageBrowser.py:619
msgid "Wyślij"
msgstr "Wyślij"
#: ImageBrowser.py:197 ImageBrowser.py:603
#: ImageBrowser.py:198 ImageBrowser.py:604
msgid "Wyślij wszystko"
msgstr "Wyślij wszystko"
#: ImageBrowser.py:201 ImageBrowser.py:604 ImageBrowser.py:610
#: ImageBrowser.py:202 ImageBrowser.py:605 ImageBrowser.py:611
msgid "Podmień tagi"
msgstr "Podmień tagi"
#: ImageBrowser.py:204 ImageBrowser.py:605
#: ImageBrowser.py:205 ImageBrowser.py:606
msgid "Otwórz post"
msgstr "Otwórz post"
#: ImageBrowser.py:207
#: ImageBrowser.py:208
msgid "Zakończ"
msgstr "Zakończ"
#: ImageBrowser.py:209
#: ImageBrowser.py:210
msgid "Plik"
msgstr "Plik"
#: ImageBrowser.py:213 ImageBrowser.py:314
#: ImageBrowser.py:214 ImageBrowser.py:315
msgid "Ustawienia"
msgstr "Ustawienia"
#: ImageBrowser.py:216
#: ImageBrowser.py:217
msgid "Wyczyść cache Taggera"
msgstr "Wyczyść cache Taggera"
#: ImageBrowser.py:219
#: ImageBrowser.py:220
msgid "Zregeneruj bazę tagów"
msgstr "Zregeneruj bazę tagów"
#: ImageBrowser.py:221
#: ImageBrowser.py:222
msgid "Opcje"
msgstr "Opcje"
#: ImageBrowser.py:224
#: ImageBrowser.py:225
msgid "About"
msgstr "O programie"
#: ImageBrowser.py:225
#: ImageBrowser.py:226
msgid "Help"
msgstr "Pomoc"
#: ImageBrowser.py:230
#: ImageBrowser.py:231
msgid "About Kapitanbooru Uploader"
msgstr "O programie Kapitanbooru Uploader"
#: ImageBrowser.py:247
#: ImageBrowser.py:248
#, python-brace-format
msgid "A new version {new_version} is available!"
msgstr "Dostępna jest nowa wersja {new_version}!"
#: ImageBrowser.py:254
#: ImageBrowser.py:255
#, python-brace-format
msgid "Current version: {version}"
msgstr "Obecna wersja: {version}"
#: ImageBrowser.py:256
#: ImageBrowser.py:257
msgid "A GUI application for uploading images to KapitanBooru."
msgstr "Aplikacja GUI do przesyłania obrazów do KapitanBooru."
#: ImageBrowser.py:257
#: ImageBrowser.py:258
msgid "Features include image upload, tag management, automatic"
msgstr "Funkcje obejmują przesyłanie obrazów, zarządzanie tagami, automatyczne"
#: ImageBrowser.py:258
#: ImageBrowser.py:259
msgid "tagging with wdtagger, and cache management."
msgstr "tagowanie za pomocą wdtagger oraz zarządzanie cache."
#: ImageBrowser.py:260
#: ImageBrowser.py:261
msgid "Authors:"
msgstr "Autorzy:"
#: ImageBrowser.py:263
#: ImageBrowser.py:264
msgid "License: MIT License"
msgstr "Licencja: MIT License"
#: ImageBrowser.py:276
#: ImageBrowser.py:277
msgid "Repository:"
msgstr "Repozytorium:"
#: ImageBrowser.py:285
#: ImageBrowser.py:286
msgid "Website:"
msgstr "Strona internetowa:"
#: ImageBrowser.py:296
#: ImageBrowser.py:297
msgid "Close"
msgstr "Zamknij"
#: ImageBrowser.py:306 ImageBrowser.py:309
#: ImageBrowser.py:307 ImageBrowser.py:310
msgid "Cache"
msgstr "Cache"
#: ImageBrowser.py:306
#: ImageBrowser.py:307
msgid "Cache Taggera zostało wyczyszczone."
msgstr "Cache Taggera zostało wyczyszczone."
#: ImageBrowser.py:309
#: ImageBrowser.py:310
msgid "Błąd przy czyszczeniu cache:"
msgstr "Błąd przy czyszczeniu cache:"
#: ImageBrowser.py:319
#: ImageBrowser.py:320
msgid "Login:"
msgstr "Login:"
#: ImageBrowser.py:325
#: ImageBrowser.py:326
msgid "Hasło:"
msgstr "Hasło:"
#: ImageBrowser.py:331
#: ImageBrowser.py:332
msgid "Base URL:"
msgstr "Base URL:"
#: ImageBrowser.py:337
#: ImageBrowser.py:338
msgid "Default Tags:"
msgstr "Domyślne tagi:"
#: ImageBrowser.py:343
#: ImageBrowser.py:344
msgid "Browser:"
msgstr "Przeglądarka:"
#: ImageBrowser.py:357
#: ImageBrowser.py:358
msgid "Language:"
msgstr "Język:"
#: ImageBrowser.py:393
#: ImageBrowser.py:394
msgid "Zapisz"
msgstr "Zapisz"
#: ImageBrowser.py:435
#: ImageBrowser.py:436
msgid "PNG Tags"
msgstr "Tagi PNG"
#: ImageBrowser.py:447
#: ImageBrowser.py:448
msgid "Tagger Tags"
msgstr "Tagi Taggera"
#: ImageBrowser.py:461
#: ImageBrowser.py:462
msgid "Manual Tags"
msgstr "Tagi ręczne"
#: ImageBrowser.py:472
#: ImageBrowser.py:473
msgid "Final Tags"
msgstr "Ostateczne tagi"
#: ImageBrowser.py:497
#: ImageBrowser.py:498
msgid "Wyświetl"
msgstr "Wyświetl"
#: ImageBrowser.py:514
#: ImageBrowser.py:515
msgid "Przetworzono tagi:"
msgstr "Przetworzono tagi:"
#: ImageBrowser.py:514 ImageBrowser.py:515 ImageBrowser.py:516
#: ImageBrowser.py:515 ImageBrowser.py:516 ImageBrowser.py:517
msgid "plików"
msgstr "plików"
#: ImageBrowser.py:515
#: ImageBrowser.py:516
msgid "Zweryfikowano status uploadu:"
msgstr "Zweryfikowano status uploadu:"
#: ImageBrowser.py:516
#: ImageBrowser.py:517
msgid "Zuploadowano:"
msgstr "Zuploadowano:"
#: ImageBrowser.py:545
#: ImageBrowser.py:546
msgid "Wybierz folder z obrazkami PNG, JPEG, WebP, AVIF i GIF"
msgstr "Wybierz folder z obrazkami PNG, JPEG, WebP, AVIF i GIF"
#: ImageBrowser.py:561
#: ImageBrowser.py:562
msgid "Informacja"
msgstr "Informacja"
#: ImageBrowser.py:562
#: ImageBrowser.py:563
msgid "Brak plików PNG, JPEG, WebP, AVIF lub GIF w wybranym folderze."
msgstr "Brak plików PNG, JPEG, WebP, AVIF lub GIF w wybranym folderze."
#: ImageBrowser.py:669 ImageBrowser.py:1192
#: ImageBrowser.py:670 ImageBrowser.py:1193
msgid "Błąd wysyłania"
msgstr "Błąd wysyłania"
#: ImageBrowser.py:704
#: ImageBrowser.py:705
msgid "Błąd"
msgstr "Błąd"
#: ImageBrowser.py:704
#: ImageBrowser.py:705
msgid "Nie można załadować obrazka:"
msgstr "Nie można załadować obrazka:"
#: ImageBrowser.py:932 ImageBrowser.py:944
#: ImageBrowser.py:933 ImageBrowser.py:945
#, python-brace-format
msgid "Warning: Tag '{tag}' not found in implication graph"
msgstr "Ostrzeżenie: Tag '{tag}' nie został znaleziony w grafie implikacji"
#: ImageBrowser.py:1153
#: ImageBrowser.py:1154
msgid "Tagger przetwarza..."
msgstr "Tagger przetwarza..."
#: ImageBrowser.py:1170
#: ImageBrowser.py:1171
msgid "Potwierdzenie"
msgstr "Potwierdzenie"
#: ImageBrowser.py:1172
#: ImageBrowser.py:1173
msgid ""
"Czy na pewno chcesz wrzucić wszystkie niewrzucone pliki?\n"
"Każdy z nich zostanie oznaczony tagiem 'meta:auto_upload'.\n"

View File

@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "kapitanbooru-uploader"
version = "0.9.3"
version = "0.9.4"
description = "A GUI application for uploading images to KapitanBooru"
authors = [{ name = "Michał Leśniak", email = "kapitan@mlesniak.pl" }]
dependencies = [