diff --git a/kapitanbooru_uploader/Core.py b/kapitanbooru_uploader/Core.py index fd0588b..071239f 100644 --- a/kapitanbooru_uploader/Core.py +++ b/kapitanbooru_uploader/Core.py @@ -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 diff --git a/kapitanbooru_uploader/ImageBrowser.py b/kapitanbooru_uploader/ImageBrowser.py index 4978386..c03505b 100644 --- a/kapitanbooru_uploader/ImageBrowser.py +++ b/kapitanbooru_uploader/ImageBrowser.py @@ -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) diff --git a/kapitanbooru_uploader/locales/en/LC_MESSAGES/messages.po b/kapitanbooru_uploader/locales/en/LC_MESSAGES/messages.po index 9be29a2..c8cbd02 100644 --- a/kapitanbooru_uploader/locales/en/LC_MESSAGES/messages.po +++ b/kapitanbooru_uploader/locales/en/LC_MESSAGES/messages.po @@ -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" diff --git a/kapitanbooru_uploader/locales/pl/LC_MESSAGES/messages.po b/kapitanbooru_uploader/locales/pl/LC_MESSAGES/messages.po index 29ace32..bda7fc2 100644 --- a/kapitanbooru_uploader/locales/pl/LC_MESSAGES/messages.po +++ b/kapitanbooru_uploader/locales/pl/LC_MESSAGES/messages.po @@ -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" diff --git a/pyproject.toml b/pyproject.toml index 6c4693b..f11ae93 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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 = [