From 8a52bfea693874a6c2ecd62a2ed59a97456000c9 Mon Sep 17 00:00:00 2001 From: "Weblate (bot)" Date: Sat, 21 Dec 2024 19:31:30 +0100 Subject: [PATCH 1/9] translations: fix German, add Polish (#650) * Translated using Weblate (German) Currently translated at 93.6% (133 of 142 strings) Translated using Weblate (German) Currently translated at 87.3% (124 of 142 strings) Co-authored-by: Hosted Weblate Co-authored-by: Jann Stute Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ Translation: TagStudio/Strings * Translated using Weblate (Polish) Currently translated at 95.7% (136 of 142 strings) Translated using Weblate (Polish) Currently translated at 23.2% (33 of 142 strings) Added translation using Weblate (Polish) Co-authored-by: Hosted Weblate Co-authored-by: qronikarz Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pl/ Translation: TagStudio/Strings --------- Co-authored-by: Jann Stute Co-authored-by: qronikarz --- tagstudio/resources/translations/de.json | 35 ++++-- tagstudio/resources/translations/pl.json | 138 +++++++++++++++++++++++ 2 files changed, 165 insertions(+), 8 deletions(-) create mode 100644 tagstudio/resources/translations/pl.json diff --git a/tagstudio/resources/translations/de.json b/tagstudio/resources/translations/de.json index ed4c48a5..998341f3 100644 --- a/tagstudio/resources/translations/de.json +++ b/tagstudio/resources/translations/de.json @@ -10,16 +10,17 @@ "dialog.refresh_directories": "Verzeichnisse werden aktualisiert", "dialog.save_library": "Bibliothek speichern", "dialog.scan_directories": "Überprüfe Verzeichnisse auf neue Dateien...\nBereite vor...", - "dialog.scan_directories.new_files": "Verzeichnisse nach neuen Dateien durchsuchen...\n%{x + 1} Datei%{„s“ if x + 1 != 1 else „“} Gesucht, %{len(self.lib.files_not_in_library)} Neue Dateien gefunden", + "dialog.scan_directories.new_files": "Durchsuche Verzeichnisse nach neuen Dateien...\n%{x + 1} Datei%{„en“ if x + 1 != 1 else „“} durchsucht, %{len(self.lib.files_not_in_library)} Neue Datei%{„en“ if len(self.lib.files_not_in_library) != 1 else „“} gefunden", "file_extension.add_extension": "Erweiterung hinzufügen", + "file_extension.list_mode": "Listen Modus:", "file_opener.command_not_found": "Konnte %{command_name} nicht im System PATH finden", "file_opener.not_found": "Datei nicht gefunden:", "file_opener.open_file": "Datei öffnen:}", - "fix_dupes.advice_label": "Nach der Spiegelung können Sie DupeGuru verwenden, um die unerwünschten Dateien zu löschen. Verwenden Sie anschliessend die Funktion „Unverknüpfte Einträge reparieren“ im Menü „Extras“ von TagStudio, um die unverknüpften Einträge zu löschen.", - "fix_dupes.fix_dupes": "Doppelte Dateien korrigieren", + "fix_dupes.advice_label": "Nach dem Kopiervorgang kann DupeGuru benutzt werden und ungewollte Dateien zu löschen. Anschließend kann TagStudios \"Unverknüpfte Einträge reparieren\" Funktion im \"Werkzeuge\" Menü benutzt werden um die nicht verknüpften Einträge zu löschen.", + "fix_dupes.fix_dupes": "Duplizierte Dateien korrigieren", "fix_dupes.load_file": "DupeGuru-Datei laden", - "fix_dupes.mirror_description": "Spiegeln die Eingabedaten für jeden doppelten Abgleichsatz, indem Sie alle Daten kombinieren, ohne Felder zu entfernen oder zu duplizieren. Bei diesem Vorgang werden keine Dateien oder Daten gelöscht.", - "fix_dupes.mirror_entries": "Spiegelnde Einträge", + "fix_dupes.mirror_description": "Kopiert die Eintragsdaten in jeder Duplikatsmenge, wobei alle Daten kombiniert werden ohne Felder zu entfernen oder zu duplizieren. Diese Operation wird keine Dateien oder Daten löschen.", + "fix_dupes.mirror_entries": "Einträge kopieren", "fix_dupes.name_filter": "DupeGuru-Dateien (*.dupeguru)", "fix_dupes.no_file_match": "Übereinstimmungen mit doppelten Dateien: N/A", "fix_dupes.no_file_selected": "Keine DupeGuru-Datei ausgewählt", @@ -35,6 +36,9 @@ "fix_unlinked.scan_library.label": "Bibliothek nach nicht verknüpften Einträgen durchsuchen...", "fix_unlinked.scan_library.title": "Bibliothek wird scannen", "fix_unlinked.search_and_relink": "Suche && Neuverbindung", + "folders_to_tags.description": "Erstellt Tags basierend auf der Verzeichnisstruktur und wendet sie auf die Einträge an.\nDer folgende Verzeichnisbaum zeigt welche Tags erstellt werden würden und auf welche Einträge sie angewendet werden würden.", + "folders_to_tags.folders_to_tags": "Wandele Ordner zu Tags um", + "folders_to_tags.title": "Aus Verzeichnissen Tags erstellen", "generic.add": "hinzufügen", "generic.aliases": "Aliase", "generic.apply": "anwenden", @@ -45,7 +49,7 @@ "generic.done": "Fertig", "generic.exclude": "ausschliessen", "generic.file_extension": "Dateierweiterungen", - "generic.include": "einschliessen", + "generic.include": "Inklusive", "generic.mirror": "Spiegel", "generic.name": "Name", "generic.open_all": "Alle öffnen", @@ -62,6 +66,7 @@ "home.search": "Suchen", "home.search_entries": "Nach Einträgen suchen", "home.thumbnail_size": "Grösse des Vorschaubildes", + "landing.open_button": "Bibliothek öffnen/erstellen %{open_shortcut_text}", "library.Artist": "Künstler", "library.anthology": "Anthologie", "library.archived": "Archivierungsdatum", @@ -101,14 +106,25 @@ "menu.window": "Fenster", "merge.merge_dupe_entries": "Zusammenführen von doppelten Einträgen", "merge.window_title": "Zusammenführen von doppelten Einträgen", + "mirror_entities.are_you_sure": "Sind Sie sich sicher, dass Sie die folgenden %{len(self.lib.dupe_files)} Einträge kopieren wollen?", + "mirror_entities.label": "Kopiere 1/%{count} Einträge...", + "mirror_entities.title": "Einträge werden kopiert", "open_library.library_creation_return_code": "Bibliothekserstellung Rückgabecode:", "open_library.no_tagstudio_library_found": "Keine vorhandene TagStudio-Bibliothek unter '%{Pfad}' gefunden. Eine wird erstellt.", "open_library.title": "Bibliothek", "preview.dimensions": "Abmessungen", "preview.recent": "Aktuelle Bibliotheken", + "preview_panel.confirm_remove": "Wollen Sie dieses \"%{self.lib.get_field_attr(field, \"name\")}\" Feld wirklich entfernen?", + "preview_panel.edit_name": "Bearbeiten", + "preview_panel.missing_location": "Dateiort fehlt", + "preview_panel.mixed_data": "Gemischte Daten", + "preview_panel.no_items_selected": "Keine Elemente ausgewählt", + "preview_panel.unknown_field_type": "Unbekannter Feld Typ", + "preview_panel.update_widgets": "[ENTRY PANEL] UPDATE WIDGETS (%{self.driver.selected})", "progression.running_macros.new_entries": "Ausführen von Makros bei neuen Einträgen", - "progression.running_macros.one_new_entry": "Ausführen konfigurierter Makros für 1/%{len(new_ids)} neue Einträge", - "progression.running_macros.several_new_entry": "Ausführen konfigurierter Makros für %{x + 1}/%{len(new_ids)} neue Einträge", + "progression.running_macros.one_new_entry": "Führe konfigurierte Makros für 1/%{len(new_ids)} neue Einträge aus", + "progression.running_macros.several_new_entry": "Führe konfigurierte Makros für %{x + 1}/%{len(new_ids)} neue Einträge aus", + "relink_unlinked.attempt_relink": "Versuche %{x[0]+1}/%{len(self.lib.missing_files)} Einträge wieder zu verknüpfen - %{self.fixed} bereits erfolgreich wieder verknüpft", "relink_unlinked.title": "Einträge werden neuverknüpft", "splash.open_library": "Die Bibliothek wird geöffnet", "status.backup_success": "Bibliotheks-Backup gespeichert unter:", @@ -118,8 +134,11 @@ "status.save_success": "Bibliothek gespeichert und geschlossen!", "status.search_library_query": "Suche in der Bibliothek nach", "tag.add": "Hinzufüge Tag", + "tag.add_search": "Zur Suche hinzufügen", "tag.library": "Bibliothek Tags", "tag.new": "Neuer Tag", + "tag.search_for_tag": "Nach Tag suchen", + "text_line_edit.unknown_event_type": "Unbekannter Event Typ: %{event}", "tooltip.open_library": "Ctrl+O", "tooltip.save_library": "Ctrl+S" } diff --git a/tagstudio/resources/translations/pl.json b/tagstudio/resources/translations/pl.json new file mode 100644 index 00000000..34f06461 --- /dev/null +++ b/tagstudio/resources/translations/pl.json @@ -0,0 +1,138 @@ +{ + "add_field.add": "Dodaj pole", + "build_tags.add_parent_tags": "Dodaj tagi nadrzędne", + "build_tags.parent_tags": "Tagi nadrzędne", + "delete_unlinked.confirm": "Jesteś pewien że chesz usunąć następujące %{len(self.lib.missing_files)} wpisy?", + "delete_unlinked.delete_entries": "Usuwanie wpisów", + "delete_unlinked.delete_unlinked": "Usuń odłączone wpisy", + "delete_unlinked.deleting_number_entries": "Usuwanie %{x[0]+1}/{len(self.lib.missing_files)} odłączonych wpisów", + "dialog.open_create_library": "Otwórz/Stwórz bibliotekę", + "dialog.refresh_directories": "Odświeżanie katalogów", + "dialog.save_library": "Zapisz bibliotekę", + "dialog.scan_directories": "Skanowanie katalogów w poszukiwaniu nowych plików\nPrzygotowywanie...", + "dialog.scan_directories.new_files": "Skanowanie katalogów w celu znalezienia nowych plików...\n%{x + 1} File%{\"s\" if x + 1 != 1 else \"\"} Przeszukano, Znaleziono %{len(self.lib.files_not_in_library)} nowych plików", + "file_extension.add_extension": "Dodaj rozszerzenie", + "file_extension.list_mode": "Tryb listy:", + "file_opener.not_found": "Nie znaleziono pliku:", + "fix_dupes.advice_label": "Po odzwierciedlaniu możesz użyć DupeGuru żeby usunąć niechciane pliki. Później użyj funkcji TagStudio \"Napraw odłączone wpisy\" w menu narzędzi w celu usunięcia odłączonych wpisów.", + "fix_dupes.fix_dupes": "Napraw zduplikowane pliki", + "fix_dupes.load_file": "Wczytaj plik DupeGuru", + "fix_dupes.mirror_description": "Odzwierciedla dane wpisu w każdym zduplikowanym zestawie, łącząc wszystkie dane nie usuwając i nie duplikując pól. Ta operacja nie usunie żadnych plików ani danych.", + "fix_dupes.mirror_entries": "Odzwierciedl wpisy", + "fix_dupes.name_filter": "Pliki DupeGuru (*.dupeguru)", + "fix_dupes.no_file_match": "Dopasowania zduplikowanych plików: Brak", + "fix_dupes.no_file_selected": "Nie wybrano pliku DupeGuru", + "fix_dupes.number_file_match": "Dopasowania zduplikowanych plików: %{count}", + "fix_dupes.open_result_files": "Otwórz plik wyników DupeGuru", + "fix_unlinked.delete_unlinked": "Usuń odłączone wpisy", + "fix_unlinked.description": "Każdy wpis w bibliotece jest połączony z plikiem w jednym z twoich katalogów. Jeśli połączony plik jest przeniesiony poza TagStudio albo usunięty to jest uważany za odłączony. Odłączone wpisy mogą być automatycznie połączone ponownie przez szukanie twoich katalogów, ręczne ponowne łączenie przez użytkownika lub usunięte jeśli zajdzie taka potrzeba.", + "fix_unlinked.duplicate_description": "Zduplikowane wpisy są zdefiniowane jako wielokrotne wpisy które wskazują na ten sam plik na dysku. Złączenie ich złączy tagi i metadane ze wszystkich duplikatów w jeden wpis. Nie mylić tego ze \"zduplikowanymi plikami\" które są duplikatami samych plików poza TagStudio.", + "fix_unlinked.fix_unlinked": "Napraw odłączone wpisy", + "fix_unlinked.manual_relink": "Ręczne ponowne łączenie", + "fix_unlinked.merge_dupes": "Złącz zduplikowane wpisy", + "fix_unlinked.refresh_dupes": "Odśwież zduplikowane wpisy", + "fix_unlinked.scan_library.label": "Skanowanie biblioteki dla odłączonych wpisów...", + "fix_unlinked.scan_library.title": "Skanowanie biblioteki", + "folders_to_tags.folders_to_tags": "Konwertowanie folderów na tagi", + "folders_to_tags.title": "Stwórz tagi z folderów", + "generic.add": "Dodaj", + "generic.aliases": "Aliasy", + "generic.apply": "Zastosuj", + "generic.cancel": "Anuluj", + "generic.close_all": "Zamknij wszystkie", + "generic.color": "Kolor", + "generic.delete": "Usuń", + "generic.done": "Zrobione", + "generic.exclude": "Wyklucz", + "generic.file_extension": "Rozszerzenia pliku", + "generic.include": "Uwzględnij", + "generic.mirror": "Odzwierciedl", + "generic.name": "Nazwa", + "generic.open_all": "Otwórz wszystkie", + "generic.open_file": "Otwórz plik", + "generic.open_file_explorer": "Otwórz plik w przeglądarce plików", + "generic.refresh_all": "Odśwież wszystko", + "generic.remove_field": "Usuń pole", + "generic.search_tags": "Przeszukaj tagi", + "generic.shorthand": "Skrót", + "home.base_title": "TagStudio Alfa", + "home.include_all_tags": "I (zawiera wszystkie tagi)", + "home.include_any_tag": "Lub (zawiera dowolny tag)", + "home.main_window": "Główne okno", + "home.search": "Szukaj", + "home.search_entries": "Przeszukaj wpisy", + "home.thumbnail_size": "Rozmiar miniaturek", + "landing.open_button": "Otwórz/Stwórz bibliotekę %{open_shortcut_text}", + "library.Artist": "Artysta", + "library.anthology": "Antologia", + "library.archived": "Data zarchiwizowania", + "library.author": "Autor", + "library.book": "Książka", + "library.comic": "Komiks", + "library.comments": "Komentarze", + "library.composer": "Kompozytor", + "library.content_tags": "Tagi zawartości", + "library.date": "Data", + "library.date_created": "Data utworzenia", + "library.date_modified": "Data modyfikacji", + "library.date_published": "Data opublikowania", + "library.date_released": "Data wydania", + "library.date_taken": "Data zrobienia", + "library.date_uploaded": "Data przesłania", + "library.description": "Opis", + "library.favorite": "Ulubione", + "library.guest_artist": "Gościnny artysta", + "library.magazine": "Magazyn", + "library.manga": "Manga", + "library.meta_tags": "Meta tagi", + "library.notes": "Notatki", + "library.publisher": "Wydawca", + "library.series": "Seria", + "library.source": "Źródło", + "library.tags": "Tagi", + "library.title": "Tytuł", + "library.url": "URL", + "library.volume": "Tom", + "menu.edit": "Edytuj", + "menu.file": "Plik", + "menu.help": "Pomoc", + "menu.macros": "Makra", + "menu.tools": "Narzędzia", + "menu.window": "Okno", + "merge.merge_dupe_entries": "Łączenie zduplikowanych wpisów", + "merge.window_title": "Łączenie zduplikowanych wpisów", + "mirror_entities.are_you_sure": "Jesteś pewien że chcesz odzwierciedlić następujące %{len(self.lib.dupe_files)} wpisy?", + "mirror_entities.label": "Odzwierciedlanie 1/%{count} wpisów...", + "mirror_entities.title": "Odzwierciedlanie wpisów", + "open_library.library_creation_return_code": "Kod zwrotny tworzenia biblioteki:", + "open_library.no_tagstudio_library_found": "Nie znaleziono żadnej istniejącej biblioteki TagStudio w '%{path}'. Tworzenie nowej.", + "open_library.title": "Biblioteka", + "preview.dimensions": "Wymiary", + "preview.recent": "Ostatnie biblioteki", + "preview_panel.confirm_remove": "Jesteś pewien że chcesz usunąć pole \"%{self.lib.get_field_attr(field, \"name\")}\" ?", + "preview_panel.edit_name": "Edytuj", + "preview_panel.missing_location": "Brak lokalizacji", + "preview_panel.mixed_data": "Mieszane dane", + "preview_panel.no_items_selected": "Nie wybrano żadnych pozycji", + "preview_panel.unknown_field_type": "Nieznany typ pola", + "preview_panel.update_widgets": "[PANEL WEJŚCIOWY] AKTUALIZUJ WIDŻETY", + "progression.running_macros.new_entries": "Stosowanie makr na nowych wpisach", + "progression.running_macros.one_new_entry": "Stosowanie skonfigurowanych makr na 1/%{len(new_ids)} nowym wpisie", + "progression.running_macros.several_new_entry": "Stosowanie skonfigurowanych makr na 1/%{len(new_ids)} nowych wpisach", + "relink_unlinked.attempt_relink": "Próbowanie ponownego łączenia %{x[0]+1}/%{len(self.lib.missing_files)} wpisów, %{self.fixed} poprawnie połączono ponownie", + "relink_unlinked.title": "Ponowne łączenie wpisów", + "splash.open_library": "Otwieranie biblioteki", + "status.backup_success": "Kopia zapasowa biblioteki zapisana w:", + "status.number_results_found": "Znaleziono %{len(all_items)} wyników dla \"%{query}\" (%{format_timespan(end_time - start_time)})", + "status.results_found": "Wyniki", + "status.save_success": "Biblioteka zapisana i zamknięta!", + "status.search_library_query": "Przeszukiwanie biblioteki dla", + "tag.add": "Dodaj tag", + "tag.add_search": "Dodaj do wyszukiwania", + "tag.library": "Biblioteka tagów", + "tag.new": "Nowy tag", + "tag.search_for_tag": "Szukaj dla tagu", + "text_line_edit.unknown_event_type": "Nieznany typ zdarzenia: %{event}", + "tooltip.open_library": "Ctrl+O", + "tooltip.save_library": "Ctrl+S" +} From f4b30c15ce834f7baf24edbb9b8b4a88e8c9c99f Mon Sep 17 00:00:00 2001 From: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> Date: Sat, 21 Dec 2024 14:50:47 -0800 Subject: [PATCH 2/9] refactor(translations): fix + normalize translation keys --- tagstudio/resources/translations/de.json | 142 ++++++++++---------- tagstudio/resources/translations/en.json | 142 ++++++++++---------- tagstudio/resources/translations/es.json | 142 ++++++++++---------- tagstudio/resources/translations/fil.json | 92 ++++++------- tagstudio/resources/translations/fr.json | 142 ++++++++++---------- tagstudio/resources/translations/hu.json | 142 ++++++++++---------- tagstudio/resources/translations/it.json | 8 +- tagstudio/resources/translations/nb_NO.json | 94 ++++++------- tagstudio/resources/translations/pl.json | 140 +++++++++---------- tagstudio/resources/translations/pt_BR.json | 142 ++++++++++---------- tagstudio/resources/translations/ru.json | 142 ++++++++++---------- tagstudio/resources/translations/sv.json | 104 +++++++------- tagstudio/resources/translations/ta.json | 142 ++++++++++---------- tagstudio/resources/translations/tok.json | 142 ++++++++++---------- tagstudio/resources/translations/tr.json | 142 ++++++++++---------- 15 files changed, 929 insertions(+), 929 deletions(-) diff --git a/tagstudio/resources/translations/de.json b/tagstudio/resources/translations/de.json index 998341f3..3bf25ab1 100644 --- a/tagstudio/resources/translations/de.json +++ b/tagstudio/resources/translations/de.json @@ -1,64 +1,64 @@ { - "add_field.add": "Feld hinzufügen", - "build_tags.add_parent_tags": "Übergeordnete Tags hinzufügen", - "build_tags.parent_tags": "Übergeordnete Tags", - "delete_unlinked.confirm": "Sind Sie sicher, dass Sie die folgenden %{len(self.lib.missing_files)}-Einträge löschen wollen?", - "delete_unlinked.delete_entries": "Einträge am Löschen", - "delete_unlinked.delete_unlinked": "Unverknüpfte Einträge löschen", - "delete_unlinked.deleting_number_entries": "Löschen von %{x[0]+1}/{len(self.lib.missing_files)} Unverknüpften Einträgen", + "library.field.add": "Feld hinzufügen", + "tag.parent_tags.add": "Übergeordnete Tags hinzufügen", + "tag.parent_tags": "Übergeordnete Tags", + "entries.unlinked.delete.confirm": "Sind Sie sicher, dass Sie die folgenden %{len(self.lib.missing_files)}-Einträge löschen wollen?", + "entries.unlinked.delete.deleting": "Einträge am Löschen", + "entries.unlinked.delete": "Unverknüpfte Einträge löschen", + "entries.unlinked.delete.deleting_count": "Löschen von %{x[0]+1}/{len(self.lib.missing_files)} Unverknüpften Einträgen", "dialog.open_create_library": "Bibliothek öffnen/erstellen", - "dialog.refresh_directories": "Verzeichnisse werden aktualisiert", + "library.refresh.title": "Verzeichnisse werden aktualisiert", "dialog.save_library": "Bibliothek speichern", - "dialog.scan_directories": "Überprüfe Verzeichnisse auf neue Dateien...\nBereite vor...", - "dialog.scan_directories.new_files": "Durchsuche Verzeichnisse nach neuen Dateien...\n%{x + 1} Datei%{„en“ if x + 1 != 1 else „“} durchsucht, %{len(self.lib.files_not_in_library)} Neue Datei%{„en“ if len(self.lib.files_not_in_library) != 1 else „“} gefunden", - "file_extension.add_extension": "Erweiterung hinzufügen", - "file_extension.list_mode": "Listen Modus:", + "library.refresh.scanning_preparing": "Überprüfe Verzeichnisse auf neue Dateien...\nBereite vor...", + "library.refresh.scanning": "Durchsuche Verzeichnisse nach neuen Dateien...\n%{x + 1} Datei%{„en“ if x + 1 != 1 else „“} durchsucht, %{len(self.lib.files_not_in_library)} Neue Datei%{„en“ if len(self.lib.files_not_in_library) != 1 else „“} gefunden", + "ignore_list.add_extension": "Erweiterung hinzufügen", + "ignore_list.mode.label": "Listen Modus:", "file_opener.command_not_found": "Konnte %{command_name} nicht im System PATH finden", - "file_opener.not_found": "Datei nicht gefunden:", + "file.not_found": "Datei nicht gefunden:", "file_opener.open_file": "Datei öffnen:}", - "fix_dupes.advice_label": "Nach dem Kopiervorgang kann DupeGuru benutzt werden und ungewollte Dateien zu löschen. Anschließend kann TagStudios \"Unverknüpfte Einträge reparieren\" Funktion im \"Werkzeuge\" Menü benutzt werden um die nicht verknüpften Einträge zu löschen.", - "fix_dupes.fix_dupes": "Duplizierte Dateien korrigieren", - "fix_dupes.load_file": "DupeGuru-Datei laden", - "fix_dupes.mirror_description": "Kopiert die Eintragsdaten in jeder Duplikatsmenge, wobei alle Daten kombiniert werden ohne Felder zu entfernen oder zu duplizieren. Diese Operation wird keine Dateien oder Daten löschen.", - "fix_dupes.mirror_entries": "Einträge kopieren", - "fix_dupes.name_filter": "DupeGuru-Dateien (*.dupeguru)", - "fix_dupes.no_file_match": "Übereinstimmungen mit doppelten Dateien: N/A", - "fix_dupes.no_file_selected": "Keine DupeGuru-Datei ausgewählt", - "fix_dupes.number_file_match": "Übereinstimmungen mit doppelten Dateien: %{count}", - "fix_dupes.open_result_files": "DupeGuru Ergebnisdatei öffnen", + "file.duplicates.dupeguru.advice": "Nach dem Kopiervorgang kann DupeGuru benutzt werden und ungewollte Dateien zu löschen. Anschließend kann TagStudios \"Unverknüpfte Einträge reparieren\" Funktion im \"Werkzeuge\" Menü benutzt werden um die nicht verknüpften Einträge zu löschen.", + "file.duplicates.fix": "Duplizierte Dateien korrigieren", + "file.duplicates.dupeguru.load_file": "DupeGuru-Datei laden", + "file.duplicates.mirror.description": "Kopiert die Eintragsdaten in jeder Duplikatsmenge, wobei alle Daten kombiniert werden ohne Felder zu entfernen oder zu duplizieren. Diese Operation wird keine Dateien oder Daten löschen.", + "file.duplicates.mirror_entries": "Einträge kopieren", + "file.duplicates.dupeguru.file_extension": "DupeGuru-Dateien (*.dupeguru)", + "file.duplicates.matches_uninitialized": "Übereinstimmungen mit doppelten Dateien: N/A", + "file.duplicates.dupeguru.no_file": "Keine DupeGuru-Datei ausgewählt", + "file.duplicates.matches": "Übereinstimmungen mit doppelten Dateien: %{count}", + "file.duplicates.dupeguru.open_file": "DupeGuru Ergebnisdatei öffnen", "fix_unlinked.delete_unlinked": "Nicht verknüpfte Einträge löschen", - "fix_unlinked.description": "Jeder Bibliothekseintrag ist mit einer Datei in einem Ihrer Verzeichnisse verknüpft. Wenn eine Datei, die mit einem Eintrag verknüpft ist, ausserhalb von TagStudio verschoben oder gelöscht wird, gilt sie als nicht verknüpft. Nicht verknüpfte Einträge können durch Durchsuchen Ihrer Verzeichnisse automatisch neu verknüpft, vom Benutzer manuell neu verknüpft oder auf Wunsch gelöscht werden.", - "fix_unlinked.duplicate_description": "Doppelte Einträge sind definiert als mehrere Einträge, die auf dieselbe Datei auf der Festplatte verweisen. Durch das Zusammenführen dieser Einträge werden die Tags und Metadaten aller Duplikate zu einem einzigen konsolidierten Eintrag zusammengefasst. Diese sind nicht zu verwechseln mit „doppelten Dateien“, die Duplikate Ihrer Dateien selbst außerhalb von TagStudio sind.", - "fix_unlinked.fix_unlinked": "Unverknüpfte Einträge reparieren", - "fix_unlinked.manual_relink": "Manuelle Neuverknüpfung", + "entries.unlinked.description": "Jeder Bibliothekseintrag ist mit einer Datei in einem Ihrer Verzeichnisse verknüpft. Wenn eine Datei, die mit einem Eintrag verknüpft ist, ausserhalb von TagStudio verschoben oder gelöscht wird, gilt sie als nicht verknüpft. Nicht verknüpfte Einträge können durch Durchsuchen Ihrer Verzeichnisse automatisch neu verknüpft, vom Benutzer manuell neu verknüpft oder auf Wunsch gelöscht werden.", + "entries.duplicates.description": "Doppelte Einträge sind definiert als mehrere Einträge, die auf dieselbe Datei auf der Festplatte verweisen. Durch das Zusammenführen dieser Einträge werden die Tags und Metadaten aller Duplikate zu einem einzigen konsolidierten Eintrag zusammengefasst. Diese sind nicht zu verwechseln mit „doppelten Dateien“, die Duplikate Ihrer Dateien selbst außerhalb von TagStudio sind.", + "entries.unlinked.title": "Unverknüpfte Einträge reparieren", + "entries.unlinked.relink.manual": "Manuelle Neuverknüpfung", "fix_unlinked.merge_dupes": "Doppelte Einträge zusammenführen", - "fix_unlinked.refresh_dupes": "Doppelte Einträge aktualisieren", - "fix_unlinked.scan_library.label": "Bibliothek nach nicht verknüpften Einträgen durchsuchen...", - "fix_unlinked.scan_library.title": "Bibliothek wird scannen", - "fix_unlinked.search_and_relink": "Suche && Neuverbindung", + "entries.duplicate.refresh": "Doppelte Einträge aktualisieren", + "entries.unlinked.scanning": "Bibliothek nach nicht verknüpften Einträgen durchsuchen...", + "library.scan_library.title": "Bibliothek wird scannen", + "entries.unlinked.search_and_relink": "Suche && Neuverbindung", "folders_to_tags.description": "Erstellt Tags basierend auf der Verzeichnisstruktur und wendet sie auf die Einträge an.\nDer folgende Verzeichnisbaum zeigt welche Tags erstellt werden würden und auf welche Einträge sie angewendet werden würden.", - "folders_to_tags.folders_to_tags": "Wandele Ordner zu Tags um", + "folders_to_tags.converting": "Wandele Ordner zu Tags um", "folders_to_tags.title": "Aus Verzeichnissen Tags erstellen", "generic.add": "hinzufügen", - "generic.aliases": "Aliase", + "tag.aliases": "Aliase", "generic.apply": "anwenden", "generic.cancel": "Abbrechen", "generic.close_all": "Alle schliessen", - "generic.color": "Farbe", + "tag.color": "Farbe", "generic.delete": "Löschen", "generic.done": "Fertig", - "generic.exclude": "ausschliessen", - "generic.file_extension": "Dateierweiterungen", - "generic.include": "Inklusive", - "generic.mirror": "Spiegel", - "generic.name": "Name", - "generic.open_all": "Alle öffnen", - "generic.open_file": "Datei öffnen", - "generic.open_file_explorer": "Datei im Explorer öffnen", - "generic.refresh_all": "Alle aktualisieren", - "generic.remove_field": "Feld entfernen", - "generic.search_tags": "Tags suchen", - "generic.shorthand": "Kürzel", + "ignore_list.mode.exclude": "ausschliessen", + "ignore_list.title": "Dateierweiterungen", + "ignore_list.mode.include": "Inklusive", + "entries.mirror": "Spiegel", + "tag.name": "Name", + "folders_to_tags.open_all": "Alle öffnen", + "file.open_file": "Datei öffnen", + "file.open_location.generic": "Datei im Explorer öffnen", + "entries.unlinked.refresh_all": "Alle aktualisieren", + "library.field.remove": "Feld entfernen", + "home.search_tags": "Tags suchen", + "tag.shorthand": "Kürzel", "home.base_title": "TagStudio Alpha", "home.include_all_tags": "Und (enthält alle Tags)", "home.include_any_tag": "Oder (enthält alle Tags)", @@ -78,8 +78,8 @@ "library.composer": "Komponist", "library.content_tags": "Inhalt Tags", "library.date": "Datum", - "library.date_created": "Erstellungsdatum", - "library.date_modified": "Datum geändert", + "file.date_created": "Erstellungsdatum", + "file.date_modified": "Datum geändert", "library.date_published": "Datum des Publizierten", "library.date_released": "Veröffentlichungsdatum", "library.date_taken": "Aufnahmedatum", @@ -94,7 +94,7 @@ "library.publisher": "Herausgeber", "library.series": "Serie", "library.source": "Quelle", - "library.tags": "Tags", + "entries.tags": "Tags", "library.title": "Titel", "library.url": "URL", "library.volume": "Band", @@ -105,37 +105,37 @@ "menu.tools": "Werkzeuge", "menu.window": "Fenster", "merge.merge_dupe_entries": "Zusammenführen von doppelten Einträgen", - "merge.window_title": "Zusammenführen von doppelten Einträgen", - "mirror_entities.are_you_sure": "Sind Sie sich sicher, dass Sie die folgenden %{len(self.lib.dupe_files)} Einträge kopieren wollen?", - "mirror_entities.label": "Kopiere 1/%{count} Einträge...", - "mirror_entities.title": "Einträge werden kopiert", + "entries.duplicate.merge.label": "Zusammenführen von doppelten Einträgen", + "entries.mirror.confirmation": "Sind Sie sich sicher, dass Sie die folgenden %{len(self.lib.dupe_files)} Einträge kopieren wollen?", + "entries.mirror.label": "Kopiere 1/%{count} Einträge...", + "entries.mirror.title": "Einträge werden kopiert", "open_library.library_creation_return_code": "Bibliothekserstellung Rückgabecode:", "open_library.no_tagstudio_library_found": "Keine vorhandene TagStudio-Bibliothek unter '%{Pfad}' gefunden. Eine wird erstellt.", - "open_library.title": "Bibliothek", - "preview.dimensions": "Abmessungen", - "preview.recent": "Aktuelle Bibliotheken", - "preview_panel.confirm_remove": "Wollen Sie dieses \"%{self.lib.get_field_attr(field, \"name\")}\" Feld wirklich entfernen?", - "preview_panel.edit_name": "Bearbeiten", - "preview_panel.missing_location": "Dateiort fehlt", - "preview_panel.mixed_data": "Gemischte Daten", - "preview_panel.no_items_selected": "Keine Elemente ausgewählt", + "library.name": "Bibliothek", + "file.dimensions": "Abmessungen", + "generic.recent_libraries": "Aktuelle Bibliotheken", + "library.field.confirm_remove": "Wollen Sie dieses \"%{self.lib.get_field_attr(field, \"name\")}\" Feld wirklich entfernen?", + "generic.edit": "Bearbeiten", + "library.missing": "Dateiort fehlt", + "library.field.mixed_data": "Gemischte Daten", + "preview.no_selection": "Keine Elemente ausgewählt", "preview_panel.unknown_field_type": "Unbekannter Feld Typ", "preview_panel.update_widgets": "[ENTRY PANEL] UPDATE WIDGETS (%{self.driver.selected})", - "progression.running_macros.new_entries": "Ausführen von Makros bei neuen Einträgen", + "macros.running.dialog.title": "Ausführen von Makros bei neuen Einträgen", "progression.running_macros.one_new_entry": "Führe konfigurierte Makros für 1/%{len(new_ids)} neue Einträge aus", - "progression.running_macros.several_new_entry": "Führe konfigurierte Makros für %{x + 1}/%{len(new_ids)} neue Einträge aus", - "relink_unlinked.attempt_relink": "Versuche %{x[0]+1}/%{len(self.lib.missing_files)} Einträge wieder zu verknüpfen - %{self.fixed} bereits erfolgreich wieder verknüpft", - "relink_unlinked.title": "Einträge werden neuverknüpft", + "macros.running.dialog.new_entries": "Führe konfigurierte Makros für %{x + 1}/%{len(new_ids)} neue Einträge aus", + "entries.unlinked.relink.attempting": "Versuche %{x[0]+1}/%{len(self.lib.missing_files)} Einträge wieder zu verknüpfen - %{self.fixed} bereits erfolgreich wieder verknüpft", + "entries.unlinked.relink.title": "Einträge werden neuverknüpft", "splash.open_library": "Die Bibliothek wird geöffnet", - "status.backup_success": "Bibliotheks-Backup gespeichert unter:", + "status.library_backup_success": "Bibliotheks-Backup gespeichert unter:", "status.enumerate_query": "Abfrage:%{Abfrage}, Rahmen: %{i}, Länge: %{len(f)}", "status.number_results_found": "%{len(all_items)} Ergebnisse gefunden für „%{query}“ (%{format_timespan(end_time - start_time)})", - "status.results_found": "Ergebnisse", - "status.save_success": "Bibliothek gespeichert und geschlossen!", - "status.search_library_query": "Suche in der Bibliothek nach", + "status.results": "Ergebnisse", + "status.library_save_success": "Bibliothek gespeichert und geschlossen!", + "status.library_search_query": "Suche in der Bibliothek nach", "tag.add": "Hinzufüge Tag", - "tag.add_search": "Zur Suche hinzufügen", - "tag.library": "Bibliothek Tags", + "tag.add_to_search": "Zur Suche hinzufügen", + "tag_manager.title": "Bibliothek Tags", "tag.new": "Neuer Tag", "tag.search_for_tag": "Nach Tag suchen", "text_line_edit.unknown_event_type": "Unbekannter Event Typ: %{event}", diff --git a/tagstudio/resources/translations/en.json b/tagstudio/resources/translations/en.json index 0f9b61e0..2e1c54b4 100644 --- a/tagstudio/resources/translations/en.json +++ b/tagstudio/resources/translations/en.json @@ -14,24 +14,24 @@ "menu.help": "Help", "tag.new": "New Tag", "tag.add": "Add Tag", - "tag.library": "Library Tags", - "merge.window_title": "Merging Duplicate Entries", + "tag_manager.title": "Library Tags", + "entries.duplicate.merge.label": "Merging Duplicate Entries", "merge.merge_dupe_entries": "Merging Duplicate Entries", - "preview.dimensions": "Dimensions", - "preview.recent": "Recent Libraries", + "file.dimensions": "Dimensions", + "generic.recent_libraries": "Recent Libraries", "library.title": "Title", "library.author": "Author", "library.Artist": "Artist", "library.url": "URL", "library.description": "Description", "library.notes": "Notes", - "library.tags": "Tags", + "entries.tags": "Tags", "library.content_tags": "Content Tags", "library.meta_tags": "Meta Tags", "library.collation": "Collation", "library.date": "Date", - "library.date_created": "Date Created", - "library.date_modified": "Date Modified", + "file.date_created": "Date Created", + "file.date_modified": "Date Modified", "library.date_taken": "Date Taken", "library.date_published": "Date Published", "library.archived": "Date Archived", @@ -52,93 +52,93 @@ "library.comments": "Comments", "open_library.no_tagstudio_library_found": "No existing TagStudio library found at '%{path}'. Creating one.", "open_library.library_creation_return_code": "Library Creation Return Code:", - "open_library.title": "Library", + "library.name": "Library", "dialog.open_create_library": "Open/Create Library", "splash.open_library": "Opening Library", - "status.save_success": "Library Saved and Closed!", - "status.backup_success": "Library Backup Saved at:", - "status.search_library_query": "Searching Library for", + "status.library_save_success": "Library Saved and Closed!", + "status.library_backup_success": "Library Backup Saved at:", + "status.library_search_query": "Searching Library for", "status.enumerate_query": "Query:%{query}, Frame: %{i}, Length: %{len(f)}", "status.number_results_found": "%{len(all_items)} Results Found for \"%{query}\" (%{format_timespan(end_time - start_time)})", - "status.results_found": "Results", + "status.results": "Results", "dialog.save_library": "Save Library", - "dialog.refresh_directories": "Refreshing Directories", - "dialog.scan_directories": "Scanning Directories for New Files...\nPreparing...", - "dialog.scan_directories.new_files": "Scanning Directories for New Files...\n%{x + 1} File%{\"s\" if x + 1 != 1 else \"\"} Searched, %{len(self.lib.files_not_in_library)} New Files Found", + "library.refresh.title": "Refreshing Directories", + "library.refresh.scanning_preparing": "Scanning Directories for New Files...\nPreparing...", + "library.refresh.scanning": "Scanning Directories for New Files...\n%{x + 1} File%{\"s\" if x + 1 != 1 else \"\"} Searched, %{len(self.lib.files_not_in_library)} New Files Found", "tooltip.open_library": "Ctrl+O", "tooltip.save_library": "Ctrl+S", - "progression.running_macros.new_entries": "Running Macros on New Entries", + "macros.running.dialog.title": "Running Macros on New Entries", "progression.running_macros.one_new_entry": "Running Configured Macros on 1/%{len(new_ids)} New Entries", - "progression.running_macros.several_new_entry": "Running Configured Macros on %{x + 1}/%{len(new_ids)} New Entries", + "macros.running.dialog.new_entries": "Running Configured Macros on %{x + 1}/%{len(new_ids)} New Entries", "file_opener.open_file": "Opening file:}", - "file_opener.not_found": "File not found:", + "file.not_found": "File not found:", "file_opener.command_not_found": "Could not find %{command_name} on system PATH", - "add_field.add": "Add Field", - "generic.remove_field": "Remove Field", - "generic.file_extension": "File Extensions", - "generic.open_file": "Open file", - "generic.open_file_explorer": "Open file in explorer", + "library.field.add": "Add Field", + "library.field.remove": "Remove Field", + "ignore_list.title": "File Extensions", + "file.open_file": "Open file", + "file.open_location.generic": "Open file in explorer", "generic.cancel": "Cancel", "generic.add": "Add", - "generic.name": "Name", - "generic.shorthand": "Shorthand", - "generic.aliases": "Aliases", - "generic.color": "Color", + "tag.name": "Name", + "tag.shorthand": "Shorthand", + "tag.aliases": "Aliases", + "tag.color": "Color", "generic.delete": "Delete", - "generic.exclude": "Exclude", - "generic.include": "Include", + "ignore_list.mode.exclude": "Exclude", + "ignore_list.mode.include": "Include", "generic.done": "Done", - "generic.open_all": "Open All", + "folders_to_tags.open_all": "Open All", "generic.close_all": "Close All", - "generic.refresh_all": "Refresh All", + "entries.unlinked.refresh_all": "Refresh All", "generic.apply": "Apply", - "generic.mirror": "Mirror", - "generic.search_tags": "Search Tags", - "build_tags.parent_tags": "Parent Tags", - "build_tags.add_parent_tags": "Add Parent Tags", - "delete_unlinked.delete_unlinked": "Delete Unlinked Entries", - "delete_unlinked.confirm": "Are you sure you want to delete the following %{len(self.lib.missing_files)} entries?", - "delete_unlinked.delete_entries": "Deleting Entries", - "delete_unlinked.deleting_number_entries": "Deleting %{x[0]+1}/{len(self.lib.missing_files)} Unlinked Entries", - "file_extension.add_extension": "Add Extension", - "file_extension.list_mode": "List Mode:", - "fix_dupes.fix_dupes": "Fix Duplicate Files", - "fix_dupes.no_file_selected": "No DupeGuru File Selected", - "fix_dupes.load_file": "Load DupeGuru File", - "fix_dupes.mirror_entries": "Mirror Entries", - "fix_dupes.mirror_description": "Mirror the Entry data across each duplicate match set, combining all data while not removing or duplicating fields. This operation will not delete any files or data.", - "fix_dupes.advice_label": "After mirroring, you're free to use DupeGuru to delete the unwanted files. Afterwards, use TagStudio's \"Fix Unlinked Entries\" feature in the Tools menu in order to delete the unlinked Entries.", - "fix_dupes.open_result_files": "Open DupeGuru Results File", - "fix_dupes.name_filter": "DupeGuru Files (*.dupeguru)", - "fix_dupes.no_file_match": "Duplicate File Matches: N/A", - "fix_dupes.number_file_match": "Duplicate File Matches: %{count}", - "fix_unlinked.fix_unlinked": "Fix Unlinked Entries", - "fix_unlinked.description": "Each library entry is linked to a file in one of your directories. If a file linked to an entry is moved or deleted outside of TagStudio, it is then considered unlinked. Unlinked entries may be automatically relinked via searching your directories, manually relinked by the user, or deleted if desired.", - "fix_unlinked.duplicate_description": "Duplicate entries are defined as multiple entries which point to the same file on disk. Merging these will combine the tags and metadata from all duplicates into a single consolidated entry. These are not to be confused with \"duplicate files\", which are duplicates of your files themselves outside of TagStudio.", - "fix_unlinked.search_and_relink": "Search && Relink", - "fix_unlinked.refresh_dupes": "Refresh Duplicate Entries", + "entries.mirror": "Mirror", + "home.search_tags": "Search Tags", + "tag.parent_tags": "Parent Tags", + "tag.parent_tags.add": "Add Parent Tags", + "entries.unlinked.delete": "Delete Unlinked Entries", + "entries.unlinked.delete.confirm": "Are you sure you want to delete the following %{len(self.lib.missing_files)} entries?", + "entries.unlinked.delete.deleting": "Deleting Entries", + "entries.unlinked.delete.deleting_count": "Deleting %{x[0]+1}/{len(self.lib.missing_files)} Unlinked Entries", + "ignore_list.add_extension": "Add Extension", + "ignore_list.mode.label": "List Mode:", + "file.duplicates.fix": "Fix Duplicate Files", + "file.duplicates.dupeguru.no_file": "No DupeGuru File Selected", + "file.duplicates.dupeguru.load_file": "Load DupeGuru File", + "file.duplicates.mirror_entries": "Mirror Entries", + "file.duplicates.mirror.description": "Mirror the Entry data across each duplicate match set, combining all data while not removing or duplicating fields. This operation will not delete any files or data.", + "file.duplicates.dupeguru.advice": "After mirroring, you're free to use DupeGuru to delete the unwanted files. Afterwards, use TagStudio's \"Fix Unlinked Entries\" feature in the Tools menu in order to delete the unlinked Entries.", + "file.duplicates.dupeguru.open_file": "Open DupeGuru Results File", + "file.duplicates.dupeguru.file_extension": "DupeGuru Files (*.dupeguru)", + "file.duplicates.matches_uninitialized": "Duplicate File Matches: N/A", + "file.duplicates.matches": "Duplicate File Matches: %{count}", + "entries.unlinked.title": "Fix Unlinked Entries", + "entries.unlinked.description": "Each library entry is linked to a file in one of your directories. If a file linked to an entry is moved or deleted outside of TagStudio, it is then considered unlinked. Unlinked entries may be automatically relinked via searching your directories, manually relinked by the user, or deleted if desired.", + "entries.duplicates.description": "Duplicate entries are defined as multiple entries which point to the same file on disk. Merging these will combine the tags and metadata from all duplicates into a single consolidated entry. These are not to be confused with \"duplicate files\", which are duplicates of your files themselves outside of TagStudio.", + "entries.unlinked.search_and_relink": "Search && Relink", + "entries.duplicate.refresh": "Refresh Duplicate Entries", "fix_unlinked.merge_dupes": "Merge Duplicate Entries", - "fix_unlinked.manual_relink": "Manual Relink", + "entries.unlinked.relink.manual": "Manual Relink", "fix_unlinked.delete_unlinked": "Delete Unlinked Entries", - "fix_unlinked.scan_library.title": "Scanning Library", - "fix_unlinked.scan_library.label": "Scanning Library for Unlinked Entries...", - "folders_to_tags.folders_to_tags": "Converting folders to Tags", + "library.scan_library.title": "Scanning Library", + "entries.unlinked.scanning": "Scanning Library for Unlinked Entries...", + "folders_to_tags.converting": "Converting folders to Tags", "folders_to_tags.title": "Create Tags From Folders", "folders_to_tags.description": "Creates tags based on your folder structure and applies them to your entries.\n The structure below shows all the tags that will be created and what entries they will be applied to.", - "mirror_entities.are_you_sure": "Are you sure you want to mirror the following %{len(self.lib.dupe_files)} Entries?", - "mirror_entities.title": "Mirroring Entries", - "mirror_entities.label": "Mirroring 1/%{count} Entries...", - "relink_unlinked.title": "Relinking Entries", - "relink_unlinked.attempt_relink": "Attempting to Relink %{x[0]+1}/%{len(self.lib.missing_files)} Entries, %{self.fixed} Successfully Relinked", + "entries.mirror.confirmation": "Are you sure you want to mirror the following %{len(self.lib.dupe_files)} Entries?", + "entries.mirror.title": "Mirroring Entries", + "entries.mirror.label": "Mirroring 1/%{count} Entries...", + "entries.unlinked.relink.title": "Relinking Entries", + "entries.unlinked.relink.attempting": "Attempting to Relink %{x[0]+1}/%{len(self.lib.missing_files)} Entries, %{self.fixed} Successfully Relinked", "landing.open_button": "Open/Create Library %{open_shortcut_text}", - "preview_panel.missing_location": "Location is missing", + "library.missing": "Location is missing", "preview_panel.update_widgets": "[ENTRY PANEL] UPDATE WIDGETS (%{self.driver.selected})", - "preview_panel.no_items_selected": "No Items Selected", - "preview_panel.confirm_remove": "Are you sure you want to remove this \"%{self.lib.get_field_attr(field, \"name\")}\" field?", - "preview_panel.mixed_data": "Mixed Data", - "preview_panel.edit_name": "Edit", + "preview.no_selection": "No Items Selected", + "library.field.confirm_remove": "Are you sure you want to remove this \"%{self.lib.get_field_attr(field, \"name\")}\" field?", + "library.field.mixed_data": "Mixed Data", + "generic.edit": "Edit", "preview_panel.unknown_field_type": "Unknown Field Type", "tag.search_for_tag": "Search for Tag", - "tag.add_search": "Add to Search", + "tag.add_to_search": "Add to Search", "text_line_edit.unknown_event_type": "unknown event type: %{event}" } diff --git a/tagstudio/resources/translations/es.json b/tagstudio/resources/translations/es.json index f0b4a52e..5032d9e4 100644 --- a/tagstudio/resources/translations/es.json +++ b/tagstudio/resources/translations/es.json @@ -1,64 +1,64 @@ { - "add_field.add": "Añadir campo", - "build_tags.add_parent_tags": "Añadir etiquetas principales", - "build_tags.parent_tags": "Etiquetas principales", - "delete_unlinked.confirm": "¿Está seguro de que desea eliminar las siguientes %{len(self.lib.missing_files)} entradas?", - "delete_unlinked.delete_entries": "Eliminando entradas", - "delete_unlinked.delete_unlinked": "Eliminar entradas no vinculadas", - "delete_unlinked.deleting_number_entries": "Eliminando %{x[0]+1}/{len(self.lib.missing_files)} entradas no vinculadas", + "library.field.add": "Añadir campo", + "tag.parent_tags.add": "Añadir etiquetas principales", + "tag.parent_tags": "Etiquetas principales", + "entries.unlinked.delete.confirm": "¿Está seguro de que desea eliminar las siguientes %{len(self.lib.missing_files)} entradas?", + "entries.unlinked.delete.deleting": "Eliminando entradas", + "entries.unlinked.delete": "Eliminar entradas no vinculadas", + "entries.unlinked.delete.deleting_count": "Eliminando %{x[0]+1}/{len(self.lib.missing_files)} entradas no vinculadas", "dialog.open_create_library": "Abrir/Crear biblioteca", - "dialog.refresh_directories": "Refrescar directorios", + "library.refresh.title": "Refrescar directorios", "dialog.save_library": "Guardar la biblioteca", - "dialog.scan_directories": "Buscar archivos nuevos en los directorios...\nPreparando...", - "dialog.scan_directories.new_files": "Buscando archivos nuevos en los directorios...\n%{x + 1} Archivo%{\"s\" if x + 1 != 1 else \"\"} Buscado, %{len(self.lib.files_not_in_library)} Archivos nuevos encontrados", - "file_extension.add_extension": "Añadir extensión", - "file_extension.list_mode": "Modo de lista:", + "library.refresh.scanning_preparing": "Buscar archivos nuevos en los directorios...\nPreparando...", + "library.refresh.scanning": "Buscando archivos nuevos en los directorios...\n%{x + 1} Archivo%{\"s\" if x + 1 != 1 else \"\"} Buscado, %{len(self.lib.files_not_in_library)} Archivos nuevos encontrados", + "ignore_list.add_extension": "Añadir extensión", + "ignore_list.mode.label": "Modo de lista:", "file_opener.command_not_found": "No se pudo encontrar %{command_name} en el PATH del sistema", - "file_opener.not_found": "Archivo no encontrado:", + "file.not_found": "Archivo no encontrado:", "file_opener.open_file": "Abriendo archivo :}", - "fix_dupes.advice_label": "Después de la duplicación, puede utilizar DupeGuru para eliminar los archivos no deseados. Luego, utilice la función \"Reparar entradas no vinculadas\" de TagStudio en el menú Herramientas para eliminar las entradas no vinculadas.", - "fix_dupes.fix_dupes": "Reparar archivos duplicados", - "fix_dupes.load_file": "Cargar archivo DupeGuru", - "fix_dupes.mirror_description": "Reflejar los datos de entrada en cada conjunto de coincidencias duplicadas, combinando todos los datos sin eliminar ni duplicar campos. Esta operación no eliminará ningún archivos ni dato.", - "fix_dupes.mirror_entries": "Reflejar entradas", - "fix_dupes.name_filter": "Archivos DupeGuru (*.dupeguru)", - "fix_dupes.no_file_match": "Coincidencias de archivos duplicados: N/D", - "fix_dupes.no_file_selected": "No se ha seleccionado ningún archivo DupeGuru", - "fix_dupes.number_file_match": "Coincidencias de archivos duplicados: %{count}", - "fix_dupes.open_result_files": "Abrir el archivo de resultados de DupeGuru", + "file.duplicates.dupeguru.advice": "Después de la duplicación, puede utilizar DupeGuru para eliminar los archivos no deseados. Luego, utilice la función \"Reparar entradas no vinculadas\" de TagStudio en el menú Herramientas para eliminar las entradas no vinculadas.", + "file.duplicates.fix": "Reparar archivos duplicados", + "file.duplicates.dupeguru.load_file": "Cargar archivo DupeGuru", + "file.duplicates.mirror.description": "Reflejar los datos de entrada en cada conjunto de coincidencias duplicadas, combinando todos los datos sin eliminar ni duplicar campos. Esta operación no eliminará ningún archivos ni dato.", + "file.duplicates.mirror_entries": "Reflejar entradas", + "file.duplicates.dupeguru.file_extension": "Archivos DupeGuru (*.dupeguru)", + "file.duplicates.matches_uninitialized": "Coincidencias de archivos duplicados: N/D", + "file.duplicates.dupeguru.no_file": "No se ha seleccionado ningún archivo DupeGuru", + "file.duplicates.matches": "Coincidencias de archivos duplicados: %{count}", + "file.duplicates.dupeguru.open_file": "Abrir el archivo de resultados de DupeGuru", "fix_unlinked.delete_unlinked": "Borrar entradas no vinculadas", - "fix_unlinked.description": "Cada entrada de la biblioteca está vinculada a un archivo en uno de sus directorios. Si un archivo vinculado a una entrada se mueve o se elimina fuera de TagStudio, se considerará desvinculado. Las entradas no vinculadas se pueden volver a vincular automáticamente mediante una búsqueda en sus directorios, el usuario puede volver a vincularlas manualmente o eliminarlas si así lo desea.", - "fix_unlinked.duplicate_description": "Las entradas duplicadas se definen como múltiples entradas que apuntan al mismo archivo en el disco. Al fusionarlas, se combinarán las etiquetas y los metadatos de todos los duplicados en una única entrada consolidada. No deben confundirse con los \"archivos duplicados\", que son duplicados de sus archivos fuera de TagStudio.", - "fix_unlinked.fix_unlinked": "Corregir entradas no vinculadas", - "fix_unlinked.manual_relink": "Reenlace manual", + "entries.unlinked.description": "Cada entrada de la biblioteca está vinculada a un archivo en uno de sus directorios. Si un archivo vinculado a una entrada se mueve o se elimina fuera de TagStudio, se considerará desvinculado. Las entradas no vinculadas se pueden volver a vincular automáticamente mediante una búsqueda en sus directorios, el usuario puede volver a vincularlas manualmente o eliminarlas si así lo desea.", + "entries.duplicates.description": "Las entradas duplicadas se definen como múltiples entradas que apuntan al mismo archivo en el disco. Al fusionarlas, se combinarán las etiquetas y los metadatos de todos los duplicados en una única entrada consolidada. No deben confundirse con los \"archivos duplicados\", que son duplicados de sus archivos fuera de TagStudio.", + "entries.unlinked.title": "Corregir entradas no vinculadas", + "entries.unlinked.relink.manual": "Reenlace manual", "fix_unlinked.merge_dupes": "Fusionar entradas duplicadas", - "fix_unlinked.refresh_dupes": "Recargar entradas duplicadas", - "fix_unlinked.scan_library.label": "Buscando entradas no enlazadas en la biblioteca...", - "fix_unlinked.scan_library.title": "Escaneando la biblioteca", - "fix_unlinked.search_and_relink": "Buscar y volver a vincular", + "entries.duplicate.refresh": "Recargar entradas duplicadas", + "entries.unlinked.scanning": "Buscando entradas no enlazadas en la biblioteca...", + "library.scan_library.title": "Escaneando la biblioteca", + "entries.unlinked.search_and_relink": "Buscar y volver a vincular", "folders_to_tags.description": "Crea etiquetas basadas en su estructura de carpetas y las aplica a sus entradas.\n La siguiente estructura muestra todas las etiquetas que se crearán y a qué entradas se aplicarán.", - "folders_to_tags.folders_to_tags": "Convertir carpetas en etiquetas", + "folders_to_tags.converting": "Convertir carpetas en etiquetas", "folders_to_tags.title": "Crear etiquetas a partir de carpetas", "generic.add": "Añadir", - "generic.aliases": "Alias", + "tag.aliases": "Alias", "generic.apply": "Aplicar", "generic.cancel": "Cancelar", "generic.close_all": "Cerrar todo", - "generic.color": "Color", + "tag.color": "Color", "generic.delete": "Borrar", "generic.done": "Donar", - "generic.exclude": "Excluir", - "generic.file_extension": "Extensiones del archivo", - "generic.include": "Incluir", - "generic.mirror": "Espejo", - "generic.name": "Nombre", - "generic.open_all": "Abrir todo", - "generic.open_file": "Abrir archivo", - "generic.open_file_explorer": "Abrir archivo en el explorador", - "generic.refresh_all": "Recargar todo", - "generic.remove_field": "Eliminar campo", - "generic.search_tags": "Buscar etiquetas", - "generic.shorthand": "Taquigrafía", + "ignore_list.mode.exclude": "Excluir", + "ignore_list.title": "Extensiones del archivo", + "ignore_list.mode.include": "Incluir", + "entries.mirror": "Espejo", + "tag.name": "Nombre", + "folders_to_tags.open_all": "Abrir todo", + "file.open_file": "Abrir archivo", + "file.open_location.generic": "Abrir archivo en el explorador", + "entries.unlinked.refresh_all": "Recargar todo", + "library.field.remove": "Eliminar campo", + "home.search_tags": "Buscar etiquetas", + "tag.shorthand": "Taquigrafía", "home.base_title": "TagStudio Alfa", "home.include_all_tags": "Y (Incluye todas las etiquetas)", "home.include_any_tag": "O (Incluye cualquier etiqueta)", @@ -78,8 +78,8 @@ "library.composer": "Compositor", "library.content_tags": "Etiquetas del contenido", "library.date": "Fecha", - "library.date_created": "Fecha de creación", - "library.date_modified": "Fecha de modificación", + "file.date_created": "Fecha de creación", + "file.date_modified": "Fecha de modificación", "library.date_published": "Fecha de publicación", "library.date_released": "Fecha de lanzamiento", "library.date_taken": "Fecha de realización", @@ -94,7 +94,7 @@ "library.publisher": "Editor", "library.series": "Series", "library.source": "Fuente", - "library.tags": "Etiquetas", + "entries.tags": "Etiquetas", "library.title": "Título", "library.url": "URL", "library.volume": "Volumen", @@ -105,37 +105,37 @@ "menu.tools": "Herramientas", "menu.window": "Ventana", "merge.merge_dupe_entries": "Fusionando entradas duplicadas", - "merge.window_title": "Fusionando entradas duplicadas", - "mirror_entities.are_you_sure": "¿Estás seguro de que quieres reflejar las siguientes %{len(self.lib.dupe_files)} entradas?", - "mirror_entities.label": "Reflejando 1/%{count} Entradas...", - "mirror_entities.title": "Entradas reflejadas", + "entries.duplicate.merge.label": "Fusionando entradas duplicadas", + "entries.mirror.confirmation": "¿Estás seguro de que quieres reflejar las siguientes %{len(self.lib.dupe_files)} entradas?", + "entries.mirror.label": "Reflejando 1/%{count} Entradas...", + "entries.mirror.title": "Entradas reflejadas", "open_library.library_creation_return_code": "Código de retorno de creación de biblioteca:", "open_library.no_tagstudio_library_found": "No se encontró ninguna biblioteca TagStudio existente en '%{path}'. Se está creando una.", - "open_library.title": "Biblioteca", - "preview.dimensions": "Dimensiones", - "preview.recent": "Bibliotecas recientes", - "preview_panel.confirm_remove": "¿Está seguro de que desea eliminar este campo \"%{self.lib.get_field_attr(field, \"name\")}\"?", - "preview_panel.edit_name": "Editar", - "preview_panel.missing_location": "Falta la ubicación", - "preview_panel.mixed_data": "Datos variados", - "preview_panel.no_items_selected": "No hay elementos seleccionados", + "library.name": "Biblioteca", + "file.dimensions": "Dimensiones", + "generic.recent_libraries": "Bibliotecas recientes", + "library.field.confirm_remove": "¿Está seguro de que desea eliminar este campo \"%{self.lib.get_field_attr(field, \"name\")}\"?", + "generic.edit": "Editar", + "library.missing": "Falta la ubicación", + "library.field.mixed_data": "Datos variados", + "preview.no_selection": "No hay elementos seleccionados", "preview_panel.unknown_field_type": "Tipo de campo desconocido", "preview_panel.update_widgets": "[PANEL DE ENTRADA] ACTUALIZAR WIDGETS (%{self.driver.selected})", - "progression.running_macros.new_entries": "Ejecución de macros en entradas nuevas", + "macros.running.dialog.title": "Ejecución de macros en entradas nuevas", "progression.running_macros.one_new_entry": "Ejecución de macros configurados en 1/%{len(new_ids)} entradas nuevas", - "progression.running_macros.several_new_entry": "Ejecución de macros configurados en %{x + 1}/%{len(new_ids)} entradas nuevas", - "relink_unlinked.attempt_relink": "Intentando volver a vincular %{x[0]+1}/%{len(self.lib.missing_files)} Entradas, %{self.fixed} Reenlazado correctamente", - "relink_unlinked.title": "Volver a vincular las entradas", + "macros.running.dialog.new_entries": "Ejecución de macros configurados en %{x + 1}/%{len(new_ids)} entradas nuevas", + "entries.unlinked.relink.attempting": "Intentando volver a vincular %{x[0]+1}/%{len(self.lib.missing_files)} Entradas, %{self.fixed} Reenlazado correctamente", + "entries.unlinked.relink.title": "Volver a vincular las entradas", "splash.open_library": "Abriendo la biblioteca", - "status.backup_success": "Copia de seguridad de la biblioteca guardada en:", + "status.library_backup_success": "Copia de seguridad de la biblioteca guardada en:", "status.enumerate_query": "Consulta:%{query}, Cuadro: %{i}, Longitud: %{len(f)}", "status.number_results_found": "%{len(all_items)} Resultados encontrados para \"%{query}\" (%{format_timespan(end_time - start_time)})", - "status.results_found": "Resultados", - "status.save_success": "¡Biblioteca guardada y cerrada!", - "status.search_library_query": "Buscando en la biblioteca", + "status.results": "Resultados", + "status.library_save_success": "¡Biblioteca guardada y cerrada!", + "status.library_search_query": "Buscando en la biblioteca", "tag.add": "Añadir etiqueta", - "tag.add_search": "Añadir a la búsqueda", - "tag.library": "Etiquetas de la biblioteca", + "tag.add_to_search": "Añadir a la búsqueda", + "tag_manager.title": "Etiquetas de la biblioteca", "tag.new": "Nueva etiqueta", "tag.search_for_tag": "Buscar por etiqueta", "text_line_edit.unknown_event_type": "tipo de suceso desconocido: %{event}", diff --git a/tagstudio/resources/translations/fil.json b/tagstudio/resources/translations/fil.json index 4f129b95..e9a9e9bc 100644 --- a/tagstudio/resources/translations/fil.json +++ b/tagstudio/resources/translations/fil.json @@ -1,46 +1,46 @@ { - "add_field.add": "Magdagdag ng Field", - "build_tags.add_parent_tags": "Magdagdag ng Mga Parent Tag", - "build_tags.parent_tags": "Mga Parent Tag", - "delete_unlinked.confirm": "Sigurado ka ba gusto mong burahin ang (mga) sumusunod na %{len(self.lib.missing_files)} entry?", - "delete_unlinked.delete_entries": "Binubura ang Mga Entry", - "delete_unlinked.delete_unlinked": "Burahin ang Mga Hindi Naka-link na Entry", - "delete_unlinked.deleting_number_entries": "Binubura ang %{x[0]+1}/{len(self.lib.missing_files)} (mga) Naka-unlink na Entry", + "library.field.add": "Magdagdag ng Field", + "tag.parent_tags.add": "Magdagdag ng Mga Parent Tag", + "tag.parent_tags": "Mga Parent Tag", + "entries.unlinked.delete.confirm": "Sigurado ka ba gusto mong burahin ang (mga) sumusunod na %{len(self.lib.missing_files)} entry?", + "entries.unlinked.delete.deleting": "Binubura ang Mga Entry", + "entries.unlinked.delete": "Burahin ang Mga Hindi Naka-link na Entry", + "entries.unlinked.delete.deleting_count": "Binubura ang %{x[0]+1}/{len(self.lib.missing_files)} (mga) Naka-unlink na Entry", "dialog.open_create_library": "Magbukas/Gumawa ng Library", - "dialog.refresh_directories": "Nire-refresh ang Mga Direktoryo", + "library.refresh.title": "Nire-refresh ang Mga Direktoryo", "dialog.save_library": "I-save ang Library", - "dialog.scan_directories": "Sina-scan ang Mga Direktoryo para sa Mga Bagong File...\nNaghahanda...", - "dialog.scan_directories.new_files": "Sina-scan ang Mga Direktoryo para sa Mga Bagong File...\n%{x + 1} %{\"mga\" if x + 1 != 1 else \"\"} File na nahanap, %{len(self.lib.files_not_in_library)} Mga Bagong File na Nahanap", - "file_extension.add_extension": "Magdagdag ng Extension", - "file_extension.list_mode": "Mode ng Pag-lista:", + "library.refresh.scanning_preparing": "Sina-scan ang Mga Direktoryo para sa Mga Bagong File...\nNaghahanda...", + "library.refresh.scanning": "Sina-scan ang Mga Direktoryo para sa Mga Bagong File...\n%{x + 1} %{\"mga\" if x + 1 != 1 else \"\"} File na nahanap, %{len(self.lib.files_not_in_library)} Mga Bagong File na Nahanap", + "ignore_list.add_extension": "Magdagdag ng Extension", + "ignore_list.mode.label": "Mode ng Pag-lista:", "file_opener.command_not_found": "Hindi mahanap ang %{command_name} sa system PATH", - "file_opener.not_found": "Hindi nahanap ang file:", + "file.not_found": "Hindi nahanap ang file:", "file_opener.open_file": "Binubuksan ang file:}", - "fix_dupes.fix_dupes": "Ayusin ang Mga Duplicate na File", - "fix_dupes.load_file": "Mag-load ng DupeGuru File", - "fix_dupes.mirror_description": "Mirror the Entry data across each duplicate match set, combining all data while not removing or duplicating fields. This operation will not delete any files or data.", - "fix_dupes.mirror_entries": "Mga Entry ng Salamin", - "fix_dupes.no_file_selected": "Walang DupeGuru na File na Napili", + "file.duplicates.fix": "Ayusin ang Mga Duplicate na File", + "file.duplicates.dupeguru.load_file": "Mag-load ng DupeGuru File", + "file.duplicates.mirror.description": "Mirror the Entry data across each duplicate match set, combining all data while not removing or duplicating fields. This operation will not delete any files or data.", + "file.duplicates.mirror_entries": "Mga Entry ng Salamin", + "file.duplicates.dupeguru.no_file": "Walang DupeGuru na File na Napili", "generic.add": "Magdagdag", - "generic.aliases": "Mga Alyas", + "tag.aliases": "Mga Alyas", "generic.apply": "I-apply", "generic.cancel": "Kanselahin", "generic.close_all": "Isara Lahat", - "generic.color": "Kulay", + "tag.color": "Kulay", "generic.delete": "Burahin", "generic.done": "Tapos na", - "generic.exclude": "Huwag isama", - "generic.file_extension": "Mga File Extension", - "generic.include": "Isama", - "generic.mirror": "Salamin", - "generic.name": "Pangalan", - "generic.open_all": "Buksan Lahat", - "generic.open_file": "Buksan ang file", - "generic.open_file_explorer": "Buksan ang file sa explorer", - "generic.refresh_all": "I-refresh Lahat", - "generic.remove_field": "Tanggalin ang Field", - "generic.search_tags": "Maghanap ng Mga Tag", - "generic.shorthand": "Shorthand", + "ignore_list.mode.exclude": "Huwag isama", + "ignore_list.title": "Mga File Extension", + "ignore_list.mode.include": "Isama", + "entries.mirror": "Salamin", + "tag.name": "Pangalan", + "folders_to_tags.open_all": "Buksan Lahat", + "file.open_file": "Buksan ang file", + "file.open_location.generic": "Buksan ang file sa explorer", + "entries.unlinked.refresh_all": "I-refresh Lahat", + "library.field.remove": "Tanggalin ang Field", + "home.search_tags": "Maghanap ng Mga Tag", + "tag.shorthand": "Shorthand", "home.base_title": "TagStudio Alpha", "home.include_all_tags": "And (sinasama ang Lahat ng Mga Tag)", "home.include_any_tag": "Or (Sinasama ang Anumang Tag)", @@ -59,8 +59,8 @@ "library.composer": "Kompositor", "library.content_tags": "Mga Tag ng Content", "library.date": "Petsa", - "library.date_created": "Petsa na Ginawa", - "library.date_modified": "Binago Noong", + "file.date_created": "Petsa na Ginawa", + "file.date_modified": "Binago Noong", "library.date_published": "Petsa na Inilabas", "library.date_released": "Petsa na na-release", "library.date_taken": "Kinuha Noong", @@ -75,7 +75,7 @@ "library.publisher": "Tagapaglathala", "library.series": "Serye", "library.source": "Pinagmulan", - "library.tags": "Mga Tag", + "entries.tags": "Mga Tag", "library.title": "Paksa", "library.url": "URL", "library.volume": "Volume", @@ -86,24 +86,24 @@ "menu.tools": "Mga tool", "menu.window": "Window", "merge.merge_dupe_entries": "Sinasama ang mga Duplicate na Entry", - "merge.window_title": "Sinasama ang mga Duplicate na Entry", + "entries.duplicate.merge.label": "Sinasama ang mga Duplicate na Entry", "open_library.library_creation_return_code": "Return Code ng Paggawa ng Library:", "open_library.no_tagstudio_library_found": "Walang umiiral na TagStudio library na nahanap sa '%{path}'. Gumagawa ng isa.", - "open_library.title": "Library", - "preview.dimensions": "Laki", - "preview.recent": "Mga Kamakailang Library", - "progression.running_macros.new_entries": "Tumatakbo ng Mga Macro sa Mga Bagong Entry", + "library.name": "Library", + "file.dimensions": "Laki", + "generic.recent_libraries": "Mga Kamakailang Library", + "macros.running.dialog.title": "Tumatakbo ng Mga Macro sa Mga Bagong Entry", "progression.running_macros.one_new_entry": "Tinatakbo ang Mga Naka-configure na Macro sa 1/%{len(new_ids)} Mga Bagong Entry", - "progression.running_macros.several_new_entry": "Tinatakbo ang Mga Naka-configure na Macro sa %{x + 1}/%{len(new_ids)} Mga Bagong Entry", + "macros.running.dialog.new_entries": "Tinatakbo ang Mga Naka-configure na Macro sa %{x + 1}/%{len(new_ids)} Mga Bagong Entry", "splash.open_library": "Binubuksan ang Library", - "status.backup_success": "Na-save ang Library Backup sa:", + "status.library_backup_success": "Na-save ang Library Backup sa:", "status.enumerate_query": "Query:%{query}, Frame: %{i}, Haba: %{len(f)}", "status.number_results_found": "%{len(all_items)} Nakahanap ng Mga Resulta para sa \"%{query}\" (%{format_timespan(end_time - start_time)})", - "status.results_found": "Mga Resulta", - "status.save_success": "Sinave at Sinara ang Library!", - "status.search_library_query": "Hinahanap ang library para sa", + "status.results": "Mga Resulta", + "status.library_save_success": "Sinave at Sinara ang Library!", + "status.library_search_query": "Hinahanap ang library para sa", "tag.add": "Magdagdag ng Tag", - "tag.library": "Mga Tag ng Library", + "tag_manager.title": "Mga Tag ng Library", "tag.new": "Bagong Tag", "tooltip.open_library": "Ctrl+O", "tooltip.save_library": "Ctrl+S" diff --git a/tagstudio/resources/translations/fr.json b/tagstudio/resources/translations/fr.json index 09b68742..616871f7 100644 --- a/tagstudio/resources/translations/fr.json +++ b/tagstudio/resources/translations/fr.json @@ -1,64 +1,64 @@ { - "add_field.add": "Ajouter un Champ", - "build_tags.add_parent_tags": "Ajouter des Labels Parents", - "build_tags.parent_tags": "Labels Parent", - "delete_unlinked.confirm": "Êtes-vous sûr de vouloir supprimer les %{len(self.lib.missing_files)} entrées suivantes  ?", - "delete_unlinked.delete_entries": "Suppression des Entrées", - "delete_unlinked.delete_unlinked": "Supprimer les Entrées non Liées", - "delete_unlinked.deleting_number_entries": "Suppression des Entrées non Liées %{x[0]+1}/{len(self.lib.missing_files)}", + "library.field.add": "Ajouter un Champ", + "tag.parent_tags.add": "Ajouter des Labels Parents", + "tag.parent_tags": "Labels Parent", + "entries.unlinked.delete.confirm": "Êtes-vous sûr de vouloir supprimer les %{len(self.lib.missing_files)} entrées suivantes  ?", + "entries.unlinked.delete.deleting": "Suppression des Entrées", + "entries.unlinked.delete": "Supprimer les Entrées non Liées", + "entries.unlinked.delete.deleting_count": "Suppression des Entrées non Liées %{x[0]+1}/{len(self.lib.missing_files)}", "dialog.open_create_library": "Ouvrir/Créer une Bibliothèque", - "dialog.refresh_directories": "Rafraîchissement des Dossiers", + "library.refresh.title": "Rafraîchissement des Dossiers", "dialog.save_library": "Sauvegarder la Bibliothèque", - "dialog.scan_directories": "Recherche de Nouveaux Fichiers dans les Dossiers...\nPréparation...", - "dialog.scan_directories.new_files": "Recherche de Nouveaux Fichiers dans les Dossiers...\n%{x + 1} Fichiers%{\"s\" if x + 1 != 1 else \"\"} Recherchés, %{len(self.lib.files_not_in_library)} Nouveaux Fichiers Trouvés", - "file_extension.add_extension": "Ajouter une Extension", - "file_extension.list_mode": "Mode Liste :", + "library.refresh.scanning_preparing": "Recherche de Nouveaux Fichiers dans les Dossiers...\nPréparation...", + "library.refresh.scanning": "Recherche de Nouveaux Fichiers dans les Dossiers...\n%{x + 1} Fichiers%{\"s\" if x + 1 != 1 else \"\"} Recherchés, %{len(self.lib.files_not_in_library)} Nouveaux Fichiers Trouvés", + "ignore_list.add_extension": "Ajouter une Extension", + "ignore_list.mode.label": "Mode Liste :", "file_opener.command_not_found": "Impossible de trouver %{command_name} dans le CHEMIN système", - "file_opener.not_found": "Fichier non trouvé:", + "file.not_found": "Fichier non trouvé:", "file_opener.open_file": "Ouverture du Fichier:}", - "fix_dupes.advice_label": "Après réplication, vous êtes libre d'utiliser DupeGuru pour supprimer des fichiers non désirés. Ensuite, utilisez la fonctionnalité \"Réparation des Entrées non Liées\" de TagStudio dans le menu Outils pour supprimer les Entrées non liées.", - "fix_dupes.fix_dupes": "Réparer les Fichiers en Double", - "fix_dupes.load_file": "Charger un Fichier DupeGuru", - "fix_dupes.mirror_description": "Repliquer les données d'entrée dans chaque jeu de correspondances en double, en combinant toutes les données sans supprimer ni dupliquer de champs. Cette opération ne supprime aucun fichier ni aucune donnée.", - "fix_dupes.mirror_entries": "Répliquer les Entrées", - "fix_dupes.name_filter": "Fichiers DupeGuru (*.dupeguru)", - "fix_dupes.no_file_match": "Dupliquer les Correspondances de Fichier : N/A", - "fix_dupes.no_file_selected": "Aucun Fichier DupeGuru Sélectionné", - "fix_dupes.number_file_match": "Dupliquer les Correspondances de Fichier : %{count}", - "fix_dupes.open_result_files": "Ouvrire les Fichiers de Résultats de DupeGuru", + "file.duplicates.dupeguru.advice": "Après réplication, vous êtes libre d'utiliser DupeGuru pour supprimer des fichiers non désirés. Ensuite, utilisez la fonctionnalité \"Réparation des Entrées non Liées\" de TagStudio dans le menu Outils pour supprimer les Entrées non liées.", + "file.duplicates.fix": "Réparer les Fichiers en Double", + "file.duplicates.dupeguru.load_file": "Charger un Fichier DupeGuru", + "file.duplicates.mirror.description": "Repliquer les données d'entrée dans chaque jeu de correspondances en double, en combinant toutes les données sans supprimer ni dupliquer de champs. Cette opération ne supprime aucun fichier ni aucune donnée.", + "file.duplicates.mirror_entries": "Répliquer les Entrées", + "file.duplicates.dupeguru.file_extension": "Fichiers DupeGuru (*.dupeguru)", + "file.duplicates.matches_uninitialized": "Dupliquer les Correspondances de Fichier : N/A", + "file.duplicates.dupeguru.no_file": "Aucun Fichier DupeGuru Sélectionné", + "file.duplicates.matches": "Dupliquer les Correspondances de Fichier : %{count}", + "file.duplicates.dupeguru.open_file": "Ouvrire les Fichiers de Résultats de DupeGuru", "fix_unlinked.delete_unlinked": "Supprimer les Entrées non Liées", - "fix_unlinked.description": "Chaque entrée dans la bibliothèque est liée à un fichier dans l'un de vos dossiers. Si un fichier lié à une entrée est déplacé ou supprimé en dehors de TagStudio, il est alors considéré non lié. Les entrées non liées peuvent être automatiquement reliées via la recherche dans vos dossiers, reliées manuellement par l'utilisateur, ou supprimées si désiré.", - "fix_unlinked.duplicate_description": "Les entrées dupliquées sont définies comme des entrées multiple qui pointent vers le même fichier sur le disque. Les fusionner va combiner les labels et metadatas de tous les duplicatas vers une seule entrée consolidée. Elles ne doivent pas être confondues avec les \"fichiers en doublon\", qui sont des doublons de vos fichiers en dehors de TagStudio.", - "fix_unlinked.fix_unlinked": "Réparation des Entrées non Liées", - "fix_unlinked.manual_relink": "Reliage Manuel", + "entries.unlinked.description": "Chaque entrée dans la bibliothèque est liée à un fichier dans l'un de vos dossiers. Si un fichier lié à une entrée est déplacé ou supprimé en dehors de TagStudio, il est alors considéré non lié. Les entrées non liées peuvent être automatiquement reliées via la recherche dans vos dossiers, reliées manuellement par l'utilisateur, ou supprimées si désiré.", + "entries.duplicates.description": "Les entrées dupliquées sont définies comme des entrées multiple qui pointent vers le même fichier sur le disque. Les fusionner va combiner les labels et metadatas de tous les duplicatas vers une seule entrée consolidée. Elles ne doivent pas être confondues avec les \"fichiers en doublon\", qui sont des doublons de vos fichiers en dehors de TagStudio.", + "entries.unlinked.title": "Réparation des Entrées non Liées", + "entries.unlinked.relink.manual": "Reliage Manuel", "fix_unlinked.merge_dupes": "Fusionner les Entrées en Doublon", - "fix_unlinked.refresh_dupes": "Rafraichir les Entrées en Doublon", - "fix_unlinked.scan_library.label": "Balayage de la Bibliothèque pour trouver des Entrées non Liées...", - "fix_unlinked.scan_library.title": "Balayage de la Bibliothèque", - "fix_unlinked.search_and_relink": "Rechercher && Relier", + "entries.duplicate.refresh": "Rafraichir les Entrées en Doublon", + "entries.unlinked.scanning": "Balayage de la Bibliothèque pour trouver des Entrées non Liées...", + "library.scan_library.title": "Balayage de la Bibliothèque", + "entries.unlinked.search_and_relink": "Rechercher && Relier", "folders_to_tags.description": "Créé des labels basés sur votre arborescence de dossier et les applique à vos entrées.\nLa structure ci-dessous affiche tous les labels qui seront créés et à quelles entrées ils seront appliqués.", - "folders_to_tags.folders_to_tags": "Conversion des dossiers en Labels", + "folders_to_tags.converting": "Conversion des dossiers en Labels", "folders_to_tags.title": "Créer un Label à partir d'un Dossier", "generic.add": "Ajouter", - "generic.aliases": "Alias", + "tag.aliases": "Alias", "generic.apply": "Appliquer", "generic.cancel": "Annuler", "generic.close_all": "Tout Fermer", - "generic.color": "Couleur", + "tag.color": "Couleur", "generic.delete": "Supprimer", "generic.done": "Terminé", - "generic.exclude": "Exclure", - "generic.file_extension": "Extensions de Fichiers", - "generic.include": "Inclure", - "generic.mirror": "Refléter", - "generic.name": "Nom", - "generic.open_all": "Tout Ouvrir", - "generic.open_file": "Ouvrir un Fichier", - "generic.open_file_explorer": "Ouvrir un Fichier dans l'Explorateur", - "generic.refresh_all": "Tout Rafraîchir", - "generic.remove_field": "Supprimer un Champ", - "generic.search_tags": "Recherche de Labels", - "generic.shorthand": "Abrégé", + "ignore_list.mode.exclude": "Exclure", + "ignore_list.title": "Extensions de Fichiers", + "ignore_list.mode.include": "Inclure", + "entries.mirror": "Refléter", + "tag.name": "Nom", + "folders_to_tags.open_all": "Tout Ouvrir", + "file.open_file": "Ouvrir un Fichier", + "file.open_location.generic": "Ouvrir un Fichier dans l'Explorateur", + "entries.unlinked.refresh_all": "Tout Rafraîchir", + "library.field.remove": "Supprimer un Champ", + "home.search_tags": "Recherche de Labels", + "tag.shorthand": "Abrégé", "home.base_title": "TagStudio Alpha", "home.include_all_tags": "Et (Inclus tous les Labels)", "home.include_any_tag": "Ou (Inclus N'importe quel Label)", @@ -78,8 +78,8 @@ "library.composer": "Compositeur", "library.content_tags": "Labels de Contenu", "library.date": "Date", - "library.date_created": "Date de Création", - "library.date_modified": "Date de Modification", + "file.date_created": "Date de Création", + "file.date_modified": "Date de Modification", "library.date_published": "Date de Publication", "library.date_released": "Date de Sortie", "library.date_taken": "Date de Capture", @@ -94,7 +94,7 @@ "library.publisher": "Éditeur", "library.series": "Séries", "library.source": "Source", - "library.tags": "Labels", + "entries.tags": "Labels", "library.title": "Titre", "library.url": "URL", "library.volume": "Volume", @@ -105,37 +105,37 @@ "menu.tools": "Outils", "menu.window": "Fenêtre", "merge.merge_dupe_entries": "Fusionner les duplicatas", - "merge.window_title": "Fusionner les duplicatas", - "mirror_entities.are_you_sure": "Êtes-vous sûr de vouloir répliquer les %{len(self.lib.dupe_files)} Entrées suivantes ?", - "mirror_entities.label": "Réplication de 1/%{count} Entrées...", - "mirror_entities.title": "Réplication des Entrées", + "entries.duplicate.merge.label": "Fusionner les duplicatas", + "entries.mirror.confirmation": "Êtes-vous sûr de vouloir répliquer les %{len(self.lib.dupe_files)} Entrées suivantes ?", + "entries.mirror.label": "Réplication de 1/%{count} Entrées...", + "entries.mirror.title": "Réplication des Entrées", "open_library.library_creation_return_code": "Code de Retour de la Création de bibliothèque:", "open_library.no_tagstudio_library_found": "Aucune bibliothèque TagStudio trouvé au chemin '%{path}'. Création d'une bibliothèque.", - "open_library.title": "Bibliothèque", - "preview.dimensions": "Dimensions", - "preview.recent": "Bibliothèques Récentes", - "preview_panel.confirm_remove": "Êtes-vous sûr de vouloir supprimer le champ \"%{self.lib.get_field_attr(field, \"name\")}\" ?", - "preview_panel.edit_name": "Éditer", - "preview_panel.missing_location": "Emplacement Manquant", - "preview_panel.mixed_data": "Données Mélangées", - "preview_panel.no_items_selected": "Pas d'Objet Selectionné", + "library.name": "Bibliothèque", + "file.dimensions": "Dimensions", + "generic.recent_libraries": "Bibliothèques Récentes", + "library.field.confirm_remove": "Êtes-vous sûr de vouloir supprimer le champ \"%{self.lib.get_field_attr(field, \"name\")}\" ?", + "generic.edit": "Éditer", + "library.missing": "Emplacement Manquant", + "library.field.mixed_data": "Données Mélangées", + "preview.no_selection": "Pas d'Objet Selectionné", "preview_panel.unknown_field_type": "Type de Champ Inconnu", "preview_panel.update_widgets": "[PANEL D'ENTRÉE] MISE À JOUR DES WIDGETS (%{self.driver.selected})", - "progression.running_macros.new_entries": "Exécution des Macros sur les Nouvelles Entrées", + "macros.running.dialog.title": "Exécution des Macros sur les Nouvelles Entrées", "progression.running_macros.one_new_entry": "Éxecution des Macros Configurées sur 1/%{len(new_ids)} Nouvelles Entrées", - "progression.running_macros.several_new_entry": "Éxectution des Macros Configurées sur %{x + 1}/%{len(new_ids)} Nouvelles Entrées", - "relink_unlinked.attempt_relink": "Tentative de Reliage de %{x[0]+1}/%{len(self.lib.missing_files)} Entrées, %{self.fixed} ont été Reliées avec Succès", - "relink_unlinked.title": "Reliage des Entrées", + "macros.running.dialog.new_entries": "Éxectution des Macros Configurées sur %{x + 1}/%{len(new_ids)} Nouvelles Entrées", + "entries.unlinked.relink.attempting": "Tentative de Reliage de %{x[0]+1}/%{len(self.lib.missing_files)} Entrées, %{self.fixed} ont été Reliées avec Succès", + "entries.unlinked.relink.title": "Reliage des Entrées", "splash.open_library": "Ouverture de la Bilbliothèque", - "status.backup_success": "Bibliothèque sauvegardée au chemin  :", + "status.library_backup_success": "Bibliothèque sauvegardée au chemin  :", "status.enumerate_query": "Requête:%{query}, Image: %{i}, Longueur: %{len(f)}", "status.number_results_found": "%{len(all_items)} Résultats Trouvés pour \"%{query}\" (%{format_timespan(end_time - start_time)})", - "status.results_found": "Résultats", - "status.save_success": "Bibliothèque Sauvegardée et Fermée !", - "status.search_library_query": "Recherche dans la Bibliothèque pour", + "status.results": "Résultats", + "status.library_save_success": "Bibliothèque Sauvegardée et Fermée !", + "status.library_search_query": "Recherche dans la Bibliothèque pour", "tag.add": "Ajouter un Label", - "tag.add_search": "Ajouter à la Recherche", - "tag.library": "Labels de la Bibliothèque", + "tag.add_to_search": "Ajouter à la Recherche", + "tag_manager.title": "Labels de la Bibliothèque", "tag.new": "Nouveau Label", "tag.search_for_tag": "Recherche de Label", "text_line_edit.unknown_event_type": "Type d'évenement inconnu : %{event}", diff --git a/tagstudio/resources/translations/hu.json b/tagstudio/resources/translations/hu.json index 892ab95d..69038445 100644 --- a/tagstudio/resources/translations/hu.json +++ b/tagstudio/resources/translations/hu.json @@ -1,64 +1,64 @@ { - "add_field.add": "Új mező", - "build_tags.add_parent_tags": "Új szülőcímke", - "build_tags.parent_tags": "Szülőcímkék", - "delete_unlinked.confirm": "Biztosan törölni akarja az alábbi %{len(self.lib.missing_files)} elemet?", - "delete_unlinked.delete_entries": "Elemek törlése", - "delete_unlinked.delete_unlinked": "Kapcsolat nélküli elemek törlése", - "delete_unlinked.deleting_number_entries": "{len(self.lib.missing_files)}/%{x[0]+1}. kapcsolat nélküli elem törlése", + "library.field.add": "Új mező", + "tag.parent_tags.add": "Új szülőcímke", + "tag.parent_tags": "Szülőcímkék", + "entries.unlinked.delete.confirm": "Biztosan törölni akarja az alábbi %{len(self.lib.missing_files)} elemet?", + "entries.unlinked.delete.deleting": "Elemek törlése", + "entries.unlinked.delete": "Kapcsolat nélküli elemek törlése", + "entries.unlinked.delete.deleting_count": "{len(self.lib.missing_files)}/%{x[0]+1}. kapcsolat nélküli elem törlése", "dialog.open_create_library": "Könyvtár megnyitása/létrehozása", - "dialog.refresh_directories": "Mappák frissítése", + "library.refresh.title": "Mappák frissítése", "dialog.save_library": "Könyvtár mentése", - "dialog.scan_directories": "Új fájlok keresése a mappákban…\nElőkészítés…", - "dialog.scan_directories.new_files": "Új fájlok keresése a mappákban…\n%{x + 1} fájl megvizsgálva; ebből %{len(self.lib.files_not_in_library)} új", - "file_extension.add_extension": "Kiterjesztés hozzáadása", - "file_extension.list_mode": "Listázott elemek módja:", + "library.refresh.scanning_preparing": "Új fájlok keresése a mappákban…\nElőkészítés…", + "library.refresh.scanning": "Új fájlok keresése a mappákban…\n%{x + 1} fájl megvizsgálva; ebből %{len(self.lib.files_not_in_library)} új", + "ignore_list.add_extension": "Kiterjesztés hozzáadása", + "ignore_list.mode.label": "Listázott elemek módja:", "file_opener.command_not_found": "A(z) „%{command_name}”-parancs nem szerepel a rendszer PATH-változójában.", - "file_opener.not_found": "Az alábbi fájl nem található:", + "file.not_found": "Az alábbi fájl nem található:", "file_opener.open_file": "Fájl megnyitása:", - "fix_dupes.advice_label": "A tükrözés befejezése után a DupeGuruval kitörölheti a nem kívánt fájlokat. Ezt követően, a TagStudio „Kapcsolat nélküli elemek javítása” funkciójával eltávolíthatja az árván maradt elemeket.", - "fix_dupes.fix_dupes": "Egyező fájlok egyesítése", - "fix_dupes.load_file": "DupeGuru fájl betöltése", - "fix_dupes.mirror_description": "Az összes adat átmásolása minden összetartozó fájl között, ezzel kiegészítve a hiányzó címkéket eltávolítás és duplikálás nélkül. Ez a folyamat nem fog adatokat vagy fájlokat törölni.", - "fix_dupes.mirror_entries": "Elemek tükrözése", - "fix_dupes.name_filter": "DupeGuru-fájlok (*.dupeguru)", - "fix_dupes.no_file_match": "Nincsenek egyező fájlok", - "fix_dupes.no_file_selected": "Nincs kiválasztott DupeGuru-fájl.", - "fix_dupes.number_file_match": "%{count} egyező fájl", - "fix_dupes.open_result_files": "DupeGuru-fájl megnyitása", + "file.duplicates.dupeguru.advice": "A tükrözés befejezése után a DupeGuruval kitörölheti a nem kívánt fájlokat. Ezt követően, a TagStudio „Kapcsolat nélküli elemek javítása” funkciójával eltávolíthatja az árván maradt elemeket.", + "file.duplicates.fix": "Egyező fájlok egyesítése", + "file.duplicates.dupeguru.load_file": "DupeGuru fájl betöltése", + "file.duplicates.mirror.description": "Az összes adat átmásolása minden összetartozó fájl között, ezzel kiegészítve a hiányzó címkéket eltávolítás és duplikálás nélkül. Ez a folyamat nem fog adatokat vagy fájlokat törölni.", + "file.duplicates.mirror_entries": "Elemek tükrözése", + "file.duplicates.dupeguru.file_extension": "DupeGuru-fájlok (*.dupeguru)", + "file.duplicates.matches_uninitialized": "Nincsenek egyező fájlok", + "file.duplicates.dupeguru.no_file": "Nincs kiválasztott DupeGuru-fájl.", + "file.duplicates.matches": "%{count} egyező fájl", + "file.duplicates.dupeguru.open_file": "DupeGuru-fájl megnyitása", "fix_unlinked.delete_unlinked": "Kapcsolat nélküli elemek törlése", - "fix_unlinked.description": "A könyvtár minden eleme egy fájllal van összekapcsolva a számítógépen. Ha egy kapcsolt fájl a TagSudión kívül kerül áthelyezésre vagy törésre, akkor ez a kapcsolat megszakad. Ezeket a kapcsolat nélküli elemeket a program megpróbálhatja automatikusan megkeresni, de Ön is kézileg újra összekapcsolhatja vagy törölheti őket.", - "fix_unlinked.duplicate_description": "Ha több elem ugyanazzal a fájllal van összekapcsolva, akkor egyezőnek számítanak. Ha egyesíti őket, akkor egy olyan elem lesz létrehozva, ami az eredeti elemek összes adatát tartalmazza. Ezeket nem szabad összetéveszteni az „egyező fájlokkal”, amelyek a TagStudión kívüli azonos tartalmú fájlok.", - "fix_unlinked.fix_unlinked": "Kapcsolat nélküli elemek javítása", - "fix_unlinked.manual_relink": "Újra összekapcsolás kézileg", + "entries.unlinked.description": "A könyvtár minden eleme egy fájllal van összekapcsolva a számítógépen. Ha egy kapcsolt fájl a TagSudión kívül kerül áthelyezésre vagy törésre, akkor ez a kapcsolat megszakad. Ezeket a kapcsolat nélküli elemeket a program megpróbálhatja automatikusan megkeresni, de Ön is kézileg újra összekapcsolhatja vagy törölheti őket.", + "entries.duplicates.description": "Ha több elem ugyanazzal a fájllal van összekapcsolva, akkor egyezőnek számítanak. Ha egyesíti őket, akkor egy olyan elem lesz létrehozva, ami az eredeti elemek összes adatát tartalmazza. Ezeket nem szabad összetéveszteni az „egyező fájlokkal”, amelyek a TagStudión kívüli azonos tartalmú fájlok.", + "entries.unlinked.title": "Kapcsolat nélküli elemek javítása", + "entries.unlinked.relink.manual": "Újra összekapcsolás kézileg", "fix_unlinked.merge_dupes": "Egyező elemek egyesítése", - "fix_unlinked.refresh_dupes": "Egyező elemek frissítése", - "fix_unlinked.scan_library.label": "Kapcsolat nélküli elemek keresése a könyvtárban…", - "fix_unlinked.scan_library.title": "Könyvtár vizsgálata", - "fix_unlinked.search_and_relink": "Keresés és újra összekapcsolás", + "entries.duplicate.refresh": "Egyező elemek frissítése", + "entries.unlinked.scanning": "Kapcsolat nélküli elemek keresése a könyvtárban…", + "library.scan_library.title": "Könyvtár vizsgálata", + "entries.unlinked.search_and_relink": "Keresés és újra összekapcsolás", "folders_to_tags.description": "Címkék automatikus létrehozása a létező mappastruktúra alapján.\nAz alábbi mappafán megtekintheti a létrehozandó címkéket, és hogy mely elemekre lesznek alkalmazva.", - "folders_to_tags.folders_to_tags": "Mappák címkékké alakítása", + "folders_to_tags.converting": "Mappák címkékké alakítása", "folders_to_tags.title": "Címkék létrehozása mappák alapján", "generic.add": "Hozzáadás", - "generic.aliases": "Áljelek", + "tag.aliases": "Áljelek", "generic.apply": "Alkalmaz", "generic.cancel": "Mégse", "generic.close_all": "Összes bezárása", - "generic.color": "Szín", + "tag.color": "Szín", "generic.delete": "Törlés", "generic.done": "Kész", - "generic.exclude": "Elrejtés", - "generic.file_extension": "Kiterjesztések", - "generic.include": "Mutatás", - "generic.mirror": "Tükrözés", - "generic.name": "Név", - "generic.open_all": "Összes megnyitása", - "generic.open_file": "Fájl megnyitása", - "generic.open_file_explorer": "Fájl megnyitása Intézőben", - "generic.refresh_all": "Összes frissítése", - "generic.remove_field": "Mező eltávolítása", - "generic.search_tags": "Címkék keresése", - "generic.shorthand": "Rövidítés", + "ignore_list.mode.exclude": "Elrejtés", + "ignore_list.title": "Kiterjesztések", + "ignore_list.mode.include": "Mutatás", + "entries.mirror": "Tükrözés", + "tag.name": "Név", + "folders_to_tags.open_all": "Összes megnyitása", + "file.open_file": "Fájl megnyitása", + "file.open_location.generic": "Fájl megnyitása Intézőben", + "entries.unlinked.refresh_all": "Összes frissítése", + "library.field.remove": "Mező eltávolítása", + "home.search_tags": "Címkék keresése", + "tag.shorthand": "Rövidítés", "home.base_title": "TagStudio Alfa", "home.include_all_tags": "És (az összes keresett címkét tartalmazza)", "home.include_any_tag": "Vagy (valamelyik keresett címkét tartalmazza)", @@ -78,8 +78,8 @@ "library.composer": "Zeneszerző", "library.content_tags": "Tartalomcímkék", "library.date": "Dátum", - "library.date_created": "Létrehozás dátuma", - "library.date_modified": "Módosítás dátuma", + "file.date_created": "Létrehozás dátuma", + "file.date_modified": "Módosítás dátuma", "library.date_published": "Közzététel dátuma", "library.date_released": "Kiadás dátuma", "library.date_taken": "Készítés dátuma", @@ -94,7 +94,7 @@ "library.publisher": "Kiadó", "library.series": "Sorozat", "library.source": "Forrás", - "library.tags": "Címkék", + "entries.tags": "Címkék", "library.title": "Cím", "library.url": "Hivatkozás", "library.volume": "Kötet", @@ -105,37 +105,37 @@ "menu.tools": "Eszközök", "menu.window": "Ablak", "merge.merge_dupe_entries": "Egyező elemek egyesítése", - "merge.window_title": "Egyező elemek egyesítése", - "mirror_entities.are_you_sure": "Biztosan tükrözni akarja az alábbi adatokat %{len(self.lib.dupe_files)} különböző elemre?", - "mirror_entities.label": "%{count}/1 elem tükrözése folyamatban…", - "mirror_entities.title": "Elemek tükrözése", + "entries.duplicate.merge.label": "Egyező elemek egyesítése", + "entries.mirror.confirmation": "Biztosan tükrözni akarja az alábbi adatokat %{len(self.lib.dupe_files)} különböző elemre?", + "entries.mirror.label": "%{count}/1 elem tükrözése folyamatban…", + "entries.mirror.title": "Elemek tükrözése", "open_library.library_creation_return_code": "A könyvtárlétrehozási folyamat visszatérési kódja:", "open_library.no_tagstudio_library_found": "A program nem talált létező TagStudio-könyvtárat az alábbi elérési úton: „%{path}”. Ezen a helyen egy új könyvtár lesz létrehozva.", - "open_library.title": "Könyvtár", - "preview.dimensions": "Méret", - "preview.recent": "Legutóbbi könytárak", - "preview_panel.confirm_remove": "Biztosan el akarja távolítani a(z) „%{self.lib.get_field_attr(field, \"name\")}”-mezőt?", - "preview_panel.edit_name": "Szerkesztés", - "preview_panel.missing_location": "Hiányzó hely", - "preview_panel.mixed_data": "Kevert adatok", - "preview_panel.no_items_selected": "Nincs kijelölt elem", + "library.name": "Könyvtár", + "file.dimensions": "Méret", + "generic.recent_libraries": "Legutóbbi könytárak", + "library.field.confirm_remove": "Biztosan el akarja távolítani a(z) „%{self.lib.get_field_attr(field, \"name\")}”-mezőt?", + "generic.edit": "Szerkesztés", + "library.missing": "Hiányzó hely", + "library.field.mixed_data": "Kevert adatok", + "preview.no_selection": "Nincs kijelölt elem", "preview_panel.unknown_field_type": "Ismeretlen mezőtípus", "preview_panel.update_widgets": "[ENTRY PANEL] UPDATE WIDGETS (%{self.driver.selected})", - "progression.running_macros.new_entries": "Makrók futtatása az új elemeken", + "macros.running.dialog.title": "Makrók futtatása az új elemeken", "progression.running_macros.one_new_entry": "Korábban beállított makrók futtatása %{len(new_ids)}/1 új elemen", - "progression.running_macros.several_new_entry": "Korábban beállított makrók futtatása %{len(new_ids)}/%{x + 1} új elemen", - "relink_unlinked.attempt_relink": "%{len(self.lib.missing_files)}/%{x[0]+1} elem újra összekapcsolásának megkísérlése; %{self.fixed} elem sikeresen újra összekapcsolva", - "relink_unlinked.title": "Elemek újra összekapcsolása", + "macros.running.dialog.new_entries": "Korábban beállított makrók futtatása %{len(new_ids)}/%{x + 1} új elemen", + "entries.unlinked.relink.attempting": "%{len(self.lib.missing_files)}/%{x[0]+1} elem újra összekapcsolásának megkísérlése; %{self.fixed} elem sikeresen újra összekapcsolva", + "entries.unlinked.relink.title": "Elemek újra összekapcsolása", "splash.open_library": "Könyvtár megnyitása", - "status.backup_success": "A biztonsági mentés létrehozása megtörtént az alábbi elérési úton:", + "status.library_backup_success": "A biztonsági mentés létrehozása megtörtént az alábbi elérési úton:", "status.enumerate_query": "Keresési kifejezés: %{query}; %{i}. képokcka; Hossz: %{len(f)}", "status.number_results_found": "%{len(all_items)} találat az alábbi kifejezésre: „%{query}” (%{format_timespan(end_time - start_time)})", - "status.results_found": "találat", - "status.save_success": "A könyvtár mentése és bezárása sikeresen megtörtént.", - "status.search_library_query": "Az alábbi kifejezés keresése a könyvtárban:", + "status.results": "találat", + "status.library_save_success": "A könyvtár mentése és bezárása sikeresen megtörtént.", + "status.library_search_query": "Az alábbi kifejezés keresése a könyvtárban:", "tag.add": "Címke hozzáadása", - "tag.add_search": "Keresési kifejezés kiegészítése", - "tag.library": "Könyvtárcímkék", + "tag.add_to_search": "Keresési kifejezés kiegészítése", + "tag_manager.title": "Könyvtárcímkék", "tag.new": "Új címke", "tag.search_for_tag": "Címke keresése", "text_line_edit.unknown_event_type": "Ismeretlen eseménytípus: %{event}", diff --git a/tagstudio/resources/translations/it.json b/tagstudio/resources/translations/it.json index 94642e48..b4110d10 100644 --- a/tagstudio/resources/translations/it.json +++ b/tagstudio/resources/translations/it.json @@ -1,9 +1,9 @@ { "generic.add": "Aggiungi", "generic.cancel": "Annulla", - "generic.color": "Colore", + "tag.color": "Colore", "generic.delete": "Elimina", - "generic.name": "Nome", + "tag.name": "Nome", "home.base_title": "TagStudio Alfa", "home.main_window": "Finestra principale", "home.search": "Cerca", @@ -13,7 +13,7 @@ "library.title": "Titolo", "menu.file": "File", "menu.window": "Finestra", - "preview.recent": "Librerias Recenti", + "generic.recent_libraries": "Librerias Recenti", "tag.add": "Aggiungi Tag", "tag.new": "Nuovo Tag" -} +} \ No newline at end of file diff --git a/tagstudio/resources/translations/nb_NO.json b/tagstudio/resources/translations/nb_NO.json index 1d7b93ac..7d6fd26e 100644 --- a/tagstudio/resources/translations/nb_NO.json +++ b/tagstudio/resources/translations/nb_NO.json @@ -1,43 +1,43 @@ { - "add_field.add": "Legg til felt", - "delete_unlinked.confirm": "Slett følgende %{len(self.lib.missing_files)} oppføringer?", - "delete_unlinked.delete_entries": "Sletting av oppføringer", - "delete_unlinked.deleting_number_entries": "Sletter %{x[0]+1}/{len(self.lib.missing_files)} ulenkede oppføringer", + "library.field.add": "Legg til felt", + "entries.unlinked.delete.confirm": "Slett følgende %{len(self.lib.missing_files)} oppføringer?", + "entries.unlinked.delete.deleting": "Sletting av oppføringer", + "entries.unlinked.delete.deleting_count": "Sletter %{x[0]+1}/{len(self.lib.missing_files)} ulenkede oppføringer", "dialog.open_create_library": "Åpne/opprett bibliotek", "dialog.save_library": "Lagre bibliotek", - "file_extension.add_extension": "Legg til utvidelse", - "file_extension.list_mode": "Listemodus:", - "file_opener.not_found": "Fant ikke filen:", + "ignore_list.add_extension": "Legg til utvidelse", + "ignore_list.mode.label": "Listemodus:", + "file.not_found": "Fant ikke filen:", "file_opener.open_file": "Åpner fil :}", - "fix_dupes.fix_dupes": "Fiks duplikatfiler", - "fix_dupes.load_file": "Last inn DupeGuru-fil", - "fix_dupes.mirror_entries": "Speil oppføringer", - "fix_dupes.name_filter": "DupeGuru-filer (*.dupeguru)", - "fix_dupes.no_file_selected": "Ingen DupeGuru-fil valgt", - "fix_dupes.open_result_files": "Åpne DupeGuru-resultatfil", - "fix_unlinked.fix_unlinked": "Fiks ulenkede oppføringer", - "fix_unlinked.scan_library.label": "Skanner bibliotek for ulenkede oppføringer …", - "fix_unlinked.scan_library.title": "Skanning av bibliotek", - "folders_to_tags.folders_to_tags": "Konverterer mapper til etiketter", + "file.duplicates.fix": "Fiks duplikatfiler", + "file.duplicates.dupeguru.load_file": "Last inn DupeGuru-fil", + "file.duplicates.mirror_entries": "Speil oppføringer", + "file.duplicates.dupeguru.file_extension": "DupeGuru-filer (*.dupeguru)", + "file.duplicates.dupeguru.no_file": "Ingen DupeGuru-fil valgt", + "file.duplicates.dupeguru.open_file": "Åpne DupeGuru-resultatfil", + "entries.unlinked.title": "Fiks ulenkede oppføringer", + "entries.unlinked.scanning": "Skanner bibliotek for ulenkede oppføringer …", + "library.scan_library.title": "Skanning av bibliotek", + "folders_to_tags.converting": "Konverterer mapper til etiketter", "folders_to_tags.title": "Opprett etiketter fra mapper", "generic.add": "Legg til", "generic.apply": "Bruk", "generic.cancel": "Avbryt", "generic.close_all": "Lukk alle", - "generic.color": "Farge", + "tag.color": "Farge", "generic.delete": "Slett", "generic.done": "Ferdig", - "generic.exclude": "Utelat", - "generic.file_extension": "Filutvidelse", - "generic.include": "Inkluder", - "generic.mirror": "Speil", - "generic.name": "Navn", - "generic.open_all": "Åpne alle", - "generic.open_file": "Åpne fil", - "generic.open_file_explorer": "Åpne fil i utforsker", - "generic.refresh_all": "Gjenoppfrisk alle", - "generic.remove_field": "Fjern felt", - "generic.search_tags": "Søk etter etiketter", + "ignore_list.mode.exclude": "Utelat", + "ignore_list.title": "Filutvidelse", + "ignore_list.mode.include": "Inkluder", + "entries.mirror": "Speil", + "tag.name": "Navn", + "folders_to_tags.open_all": "Åpne alle", + "file.open_file": "Åpne fil", + "file.open_location.generic": "Åpne fil i utforsker", + "entries.unlinked.refresh_all": "Gjenoppfrisk alle", + "library.field.remove": "Fjern felt", + "home.search_tags": "Søk etter etiketter", "home.main_window": "Hovedvindu", "home.search": "Søk", "home.search_entries": "Søk etter oppføringer", @@ -51,8 +51,8 @@ "library.comments": "Kommentarer", "library.content_tags": "Innholdsetiketter", "library.date": "Dato", - "library.date_created": "Dato opprettet", - "library.date_modified": "Endringsdato", + "file.date_created": "Dato opprettet", + "file.date_modified": "Endringsdato", "library.date_published": "Publiseringsdato", "library.date_released": "Slippdato", "library.date_taken": "Dato knipset", @@ -67,7 +67,7 @@ "library.publisher": "Utgiver", "library.series": "Serie", "library.source": "Kilde", - "library.tags": "Etiketter", + "entries.tags": "Etiketter", "library.url": "Nettadresse", "menu.edit": "Rediger", "menu.file": "Fil", @@ -76,24 +76,24 @@ "menu.tools": "Verktøy", "menu.window": "Vindu", "merge.merge_dupe_entries": "Fletter duplikatoppføringer …", - "merge.window_title": "Fletter duplikatoppføringer …", - "open_library.title": "Bibliotek", - "preview.dimensions": "Dimensjoner", - "preview.recent": "Nylige bibliotek", - "preview_panel.confirm_remove": "Fjern dette «%{self.lib.get_field_attr(field, \"name\")}»-feltet?", - "preview_panel.edit_name": "Rediger", - "preview_panel.missing_location": "Posisjon mangler", - "preview_panel.mixed_data": "Blandet data", - "preview_panel.no_items_selected": "Ingen elementer valgt", + "entries.duplicate.merge.label": "Fletter duplikatoppføringer …", + "library.name": "Bibliotek", + "file.dimensions": "Dimensjoner", + "generic.recent_libraries": "Nylige bibliotek", + "library.field.confirm_remove": "Fjern dette «%{self.lib.get_field_attr(field, \"name\")}»-feltet?", + "generic.edit": "Rediger", + "library.missing": "Posisjon mangler", + "library.field.mixed_data": "Blandet data", + "preview.no_selection": "Ingen elementer valgt", "preview_panel.unknown_field_type": "Ukjent felttype", "splash.open_library": "Åpner bibliotek …", - "status.backup_success": "Kopi av bibliotek lagret i:", - "status.results_found": "Resultat", - "status.save_success": "Bibliotek lagret og lukket.", - "status.search_library_query": "Søker i biblioteket etter", + "status.library_backup_success": "Kopi av bibliotek lagret i:", + "status.results": "Resultat", + "status.library_save_success": "Bibliotek lagret og lukket.", + "status.library_search_query": "Søker i biblioteket etter", "tag.add": "Legg til etikett", - "tag.add_search": "Legg til søk", - "tag.library": "Biblioteksetiketter", + "tag.add_to_search": "Legg til søk", + "tag_manager.title": "Biblioteksetiketter", "tag.new": "Ny etikett", "tag.search_for_tag": "Søk etter etikett", "text_line_edit.unknown_event_type": "ukjent begivenhetstype: %{event}", diff --git a/tagstudio/resources/translations/pl.json b/tagstudio/resources/translations/pl.json index 34f06461..fd88b7cc 100644 --- a/tagstudio/resources/translations/pl.json +++ b/tagstudio/resources/translations/pl.json @@ -1,60 +1,60 @@ { - "add_field.add": "Dodaj pole", - "build_tags.add_parent_tags": "Dodaj tagi nadrzędne", - "build_tags.parent_tags": "Tagi nadrzędne", - "delete_unlinked.confirm": "Jesteś pewien że chesz usunąć następujące %{len(self.lib.missing_files)} wpisy?", - "delete_unlinked.delete_entries": "Usuwanie wpisów", - "delete_unlinked.delete_unlinked": "Usuń odłączone wpisy", - "delete_unlinked.deleting_number_entries": "Usuwanie %{x[0]+1}/{len(self.lib.missing_files)} odłączonych wpisów", + "library.field.add": "Dodaj pole", + "tag.parent_tags.add": "Dodaj tagi nadrzędne", + "tag.parent_tags": "Tagi nadrzędne", + "entries.unlinked.delete.confirm": "Jesteś pewien że chesz usunąć następujące %{len(self.lib.missing_files)} wpisy?", + "entries.unlinked.delete.deleting": "Usuwanie wpisów", + "entries.unlinked.delete": "Usuń odłączone wpisy", + "entries.unlinked.delete.deleting_count": "Usuwanie %{x[0]+1}/{len(self.lib.missing_files)} odłączonych wpisów", "dialog.open_create_library": "Otwórz/Stwórz bibliotekę", - "dialog.refresh_directories": "Odświeżanie katalogów", + "library.refresh.title": "Odświeżanie katalogów", "dialog.save_library": "Zapisz bibliotekę", - "dialog.scan_directories": "Skanowanie katalogów w poszukiwaniu nowych plików\nPrzygotowywanie...", - "dialog.scan_directories.new_files": "Skanowanie katalogów w celu znalezienia nowych plików...\n%{x + 1} File%{\"s\" if x + 1 != 1 else \"\"} Przeszukano, Znaleziono %{len(self.lib.files_not_in_library)} nowych plików", - "file_extension.add_extension": "Dodaj rozszerzenie", - "file_extension.list_mode": "Tryb listy:", - "file_opener.not_found": "Nie znaleziono pliku:", - "fix_dupes.advice_label": "Po odzwierciedlaniu możesz użyć DupeGuru żeby usunąć niechciane pliki. Później użyj funkcji TagStudio \"Napraw odłączone wpisy\" w menu narzędzi w celu usunięcia odłączonych wpisów.", - "fix_dupes.fix_dupes": "Napraw zduplikowane pliki", - "fix_dupes.load_file": "Wczytaj plik DupeGuru", - "fix_dupes.mirror_description": "Odzwierciedla dane wpisu w każdym zduplikowanym zestawie, łącząc wszystkie dane nie usuwając i nie duplikując pól. Ta operacja nie usunie żadnych plików ani danych.", - "fix_dupes.mirror_entries": "Odzwierciedl wpisy", - "fix_dupes.name_filter": "Pliki DupeGuru (*.dupeguru)", - "fix_dupes.no_file_match": "Dopasowania zduplikowanych plików: Brak", - "fix_dupes.no_file_selected": "Nie wybrano pliku DupeGuru", - "fix_dupes.number_file_match": "Dopasowania zduplikowanych plików: %{count}", - "fix_dupes.open_result_files": "Otwórz plik wyników DupeGuru", + "library.refresh.scanning_preparing": "Skanowanie katalogów w poszukiwaniu nowych plików\nPrzygotowywanie...", + "library.refresh.scanning": "Skanowanie katalogów w celu znalezienia nowych plików...\n%{x + 1} File%{\"s\" if x + 1 != 1 else \"\"} Przeszukano, Znaleziono %{len(self.lib.files_not_in_library)} nowych plików", + "ignore_list.add_extension": "Dodaj rozszerzenie", + "ignore_list.mode.label": "Tryb listy:", + "file.not_found": "Nie znaleziono pliku:", + "file.duplicates.dupeguru.advice": "Po odzwierciedlaniu możesz użyć DupeGuru żeby usunąć niechciane pliki. Później użyj funkcji TagStudio \"Napraw odłączone wpisy\" w menu narzędzi w celu usunięcia odłączonych wpisów.", + "file.duplicates.fix": "Napraw zduplikowane pliki", + "file.duplicates.dupeguru.load_file": "Wczytaj plik DupeGuru", + "file.duplicates.mirror.description": "Odzwierciedla dane wpisu w każdym zduplikowanym zestawie, łącząc wszystkie dane nie usuwając i nie duplikując pól. Ta operacja nie usunie żadnych plików ani danych.", + "file.duplicates.mirror_entries": "Odzwierciedl wpisy", + "file.duplicates.dupeguru.file_extension": "Pliki DupeGuru (*.dupeguru)", + "file.duplicates.matches_uninitialized": "Dopasowania zduplikowanych plików: Brak", + "file.duplicates.dupeguru.no_file": "Nie wybrano pliku DupeGuru", + "file.duplicates.matches": "Dopasowania zduplikowanych plików: %{count}", + "file.duplicates.dupeguru.open_file": "Otwórz plik wyników DupeGuru", "fix_unlinked.delete_unlinked": "Usuń odłączone wpisy", - "fix_unlinked.description": "Każdy wpis w bibliotece jest połączony z plikiem w jednym z twoich katalogów. Jeśli połączony plik jest przeniesiony poza TagStudio albo usunięty to jest uważany za odłączony. Odłączone wpisy mogą być automatycznie połączone ponownie przez szukanie twoich katalogów, ręczne ponowne łączenie przez użytkownika lub usunięte jeśli zajdzie taka potrzeba.", - "fix_unlinked.duplicate_description": "Zduplikowane wpisy są zdefiniowane jako wielokrotne wpisy które wskazują na ten sam plik na dysku. Złączenie ich złączy tagi i metadane ze wszystkich duplikatów w jeden wpis. Nie mylić tego ze \"zduplikowanymi plikami\" które są duplikatami samych plików poza TagStudio.", - "fix_unlinked.fix_unlinked": "Napraw odłączone wpisy", - "fix_unlinked.manual_relink": "Ręczne ponowne łączenie", + "entries.unlinked.description": "Każdy wpis w bibliotece jest połączony z plikiem w jednym z twoich katalogów. Jeśli połączony plik jest przeniesiony poza TagStudio albo usunięty to jest uważany za odłączony. Odłączone wpisy mogą być automatycznie połączone ponownie przez szukanie twoich katalogów, ręczne ponowne łączenie przez użytkownika lub usunięte jeśli zajdzie taka potrzeba.", + "entries.duplicates.description": "Zduplikowane wpisy są zdefiniowane jako wielokrotne wpisy które wskazują na ten sam plik na dysku. Złączenie ich złączy tagi i metadane ze wszystkich duplikatów w jeden wpis. Nie mylić tego ze \"zduplikowanymi plikami\" które są duplikatami samych plików poza TagStudio.", + "entries.unlinked.title": "Napraw odłączone wpisy", + "entries.unlinked.relink.manual": "Ręczne ponowne łączenie", "fix_unlinked.merge_dupes": "Złącz zduplikowane wpisy", - "fix_unlinked.refresh_dupes": "Odśwież zduplikowane wpisy", - "fix_unlinked.scan_library.label": "Skanowanie biblioteki dla odłączonych wpisów...", - "fix_unlinked.scan_library.title": "Skanowanie biblioteki", - "folders_to_tags.folders_to_tags": "Konwertowanie folderów na tagi", + "entries.duplicate.refresh": "Odśwież zduplikowane wpisy", + "entries.unlinked.scanning": "Skanowanie biblioteki dla odłączonych wpisów...", + "library.scan_library.title": "Skanowanie biblioteki", + "folders_to_tags.converting": "Konwertowanie folderów na tagi", "folders_to_tags.title": "Stwórz tagi z folderów", "generic.add": "Dodaj", - "generic.aliases": "Aliasy", + "tag.aliases": "Aliasy", "generic.apply": "Zastosuj", "generic.cancel": "Anuluj", "generic.close_all": "Zamknij wszystkie", - "generic.color": "Kolor", + "tag.color": "Kolor", "generic.delete": "Usuń", "generic.done": "Zrobione", - "generic.exclude": "Wyklucz", - "generic.file_extension": "Rozszerzenia pliku", - "generic.include": "Uwzględnij", - "generic.mirror": "Odzwierciedl", - "generic.name": "Nazwa", - "generic.open_all": "Otwórz wszystkie", - "generic.open_file": "Otwórz plik", - "generic.open_file_explorer": "Otwórz plik w przeglądarce plików", - "generic.refresh_all": "Odśwież wszystko", - "generic.remove_field": "Usuń pole", - "generic.search_tags": "Przeszukaj tagi", - "generic.shorthand": "Skrót", + "ignore_list.mode.exclude": "Wyklucz", + "ignore_list.title": "Rozszerzenia pliku", + "ignore_list.mode.include": "Uwzględnij", + "entries.mirror": "Odzwierciedl", + "tag.name": "Nazwa", + "folders_to_tags.open_all": "Otwórz wszystkie", + "file.open_file": "Otwórz plik", + "file.open_location.generic": "Otwórz plik w przeglądarce plików", + "entries.unlinked.refresh_all": "Odśwież wszystko", + "library.field.remove": "Usuń pole", + "home.search_tags": "Przeszukaj tagi", + "tag.shorthand": "Skrót", "home.base_title": "TagStudio Alfa", "home.include_all_tags": "I (zawiera wszystkie tagi)", "home.include_any_tag": "Lub (zawiera dowolny tag)", @@ -73,8 +73,8 @@ "library.composer": "Kompozytor", "library.content_tags": "Tagi zawartości", "library.date": "Data", - "library.date_created": "Data utworzenia", - "library.date_modified": "Data modyfikacji", + "file.date_created": "Data utworzenia", + "file.date_modified": "Data modyfikacji", "library.date_published": "Data opublikowania", "library.date_released": "Data wydania", "library.date_taken": "Data zrobienia", @@ -89,7 +89,7 @@ "library.publisher": "Wydawca", "library.series": "Seria", "library.source": "Źródło", - "library.tags": "Tagi", + "entries.tags": "Tagi", "library.title": "Tytuł", "library.url": "URL", "library.volume": "Tom", @@ -100,36 +100,36 @@ "menu.tools": "Narzędzia", "menu.window": "Okno", "merge.merge_dupe_entries": "Łączenie zduplikowanych wpisów", - "merge.window_title": "Łączenie zduplikowanych wpisów", - "mirror_entities.are_you_sure": "Jesteś pewien że chcesz odzwierciedlić następujące %{len(self.lib.dupe_files)} wpisy?", - "mirror_entities.label": "Odzwierciedlanie 1/%{count} wpisów...", - "mirror_entities.title": "Odzwierciedlanie wpisów", + "entries.duplicate.merge.label": "Łączenie zduplikowanych wpisów", + "entries.mirror.confirmation": "Jesteś pewien że chcesz odzwierciedlić następujące %{len(self.lib.dupe_files)} wpisy?", + "entries.mirror.label": "Odzwierciedlanie 1/%{count} wpisów...", + "entries.mirror.title": "Odzwierciedlanie wpisów", "open_library.library_creation_return_code": "Kod zwrotny tworzenia biblioteki:", "open_library.no_tagstudio_library_found": "Nie znaleziono żadnej istniejącej biblioteki TagStudio w '%{path}'. Tworzenie nowej.", - "open_library.title": "Biblioteka", - "preview.dimensions": "Wymiary", - "preview.recent": "Ostatnie biblioteki", - "preview_panel.confirm_remove": "Jesteś pewien że chcesz usunąć pole \"%{self.lib.get_field_attr(field, \"name\")}\" ?", - "preview_panel.edit_name": "Edytuj", - "preview_panel.missing_location": "Brak lokalizacji", - "preview_panel.mixed_data": "Mieszane dane", - "preview_panel.no_items_selected": "Nie wybrano żadnych pozycji", + "library.name": "Biblioteka", + "file.dimensions": "Wymiary", + "generic.recent_libraries": "Ostatnie biblioteki", + "library.field.confirm_remove": "Jesteś pewien że chcesz usunąć pole \"%{self.lib.get_field_attr(field, \"name\")}\" ?", + "generic.edit": "Edytuj", + "library.missing": "Brak lokalizacji", + "library.field.mixed_data": "Mieszane dane", + "preview.no_selection": "Nie wybrano żadnych pozycji", "preview_panel.unknown_field_type": "Nieznany typ pola", "preview_panel.update_widgets": "[PANEL WEJŚCIOWY] AKTUALIZUJ WIDŻETY", - "progression.running_macros.new_entries": "Stosowanie makr na nowych wpisach", + "macros.running.dialog.title": "Stosowanie makr na nowych wpisach", "progression.running_macros.one_new_entry": "Stosowanie skonfigurowanych makr na 1/%{len(new_ids)} nowym wpisie", - "progression.running_macros.several_new_entry": "Stosowanie skonfigurowanych makr na 1/%{len(new_ids)} nowych wpisach", - "relink_unlinked.attempt_relink": "Próbowanie ponownego łączenia %{x[0]+1}/%{len(self.lib.missing_files)} wpisów, %{self.fixed} poprawnie połączono ponownie", - "relink_unlinked.title": "Ponowne łączenie wpisów", + "macros.running.dialog.new_entries": "Stosowanie skonfigurowanych makr na 1/%{len(new_ids)} nowych wpisach", + "entries.unlinked.relink.attempting": "Próbowanie ponownego łączenia %{x[0]+1}/%{len(self.lib.missing_files)} wpisów, %{self.fixed} poprawnie połączono ponownie", + "entries.unlinked.relink.title": "Ponowne łączenie wpisów", "splash.open_library": "Otwieranie biblioteki", - "status.backup_success": "Kopia zapasowa biblioteki zapisana w:", + "status.library_backup_success": "Kopia zapasowa biblioteki zapisana w:", "status.number_results_found": "Znaleziono %{len(all_items)} wyników dla \"%{query}\" (%{format_timespan(end_time - start_time)})", - "status.results_found": "Wyniki", - "status.save_success": "Biblioteka zapisana i zamknięta!", - "status.search_library_query": "Przeszukiwanie biblioteki dla", + "status.results": "Wyniki", + "status.library_save_success": "Biblioteka zapisana i zamknięta!", + "status.library_search_query": "Przeszukiwanie biblioteki dla", "tag.add": "Dodaj tag", - "tag.add_search": "Dodaj do wyszukiwania", - "tag.library": "Biblioteka tagów", + "tag.add_to_search": "Dodaj do wyszukiwania", + "tag_manager.title": "Biblioteka tagów", "tag.new": "Nowy tag", "tag.search_for_tag": "Szukaj dla tagu", "text_line_edit.unknown_event_type": "Nieznany typ zdarzenia: %{event}", diff --git a/tagstudio/resources/translations/pt_BR.json b/tagstudio/resources/translations/pt_BR.json index 82482bc9..20deb4f2 100644 --- a/tagstudio/resources/translations/pt_BR.json +++ b/tagstudio/resources/translations/pt_BR.json @@ -1,64 +1,64 @@ { - "add_field.add": "Adicionar Campo", - "build_tags.add_parent_tags": "Adicionar Rótulo Pai", - "build_tags.parent_tags": "Rótulos Pai", - "delete_unlinked.confirm": "Tem certeza que deseja deletar as seguintes %{len(self.lib.missing_files)} entradas?", - "delete_unlinked.delete_entries": "Deletando Entradas", - "delete_unlinked.delete_unlinked": "Deletar Entradas Não Linkada", - "delete_unlinked.deleting_number_entries": "Deletando %{x[0]+1}/{len(self.lib.missing_files)} Entradas Não Linkadas", + "library.field.add": "Adicionar Campo", + "tag.parent_tags.add": "Adicionar Rótulo Pai", + "tag.parent_tags": "Rótulos Pai", + "entries.unlinked.delete.confirm": "Tem certeza que deseja deletar as seguintes %{len(self.lib.missing_files)} entradas?", + "entries.unlinked.delete.deleting": "Deletando Entradas", + "entries.unlinked.delete": "Deletar Entradas Não Linkada", + "entries.unlinked.delete.deleting_count": "Deletando %{x[0]+1}/{len(self.lib.missing_files)} Entradas Não Linkadas", "dialog.open_create_library": "Abrir/Criar Biblioteca", - "dialog.refresh_directories": "Atualizando Diretórios", + "library.refresh.title": "Atualizando Diretórios", "dialog.save_library": "Salvar Biblioteca", - "dialog.scan_directories": "Escaneando Diretórios por Novos Arquivos...\nPreparando...", - "dialog.scan_directories.new_files": "Escaneando Diretórios por Novos Arquivos...\n%{x + 1} Arquivo%{\"s\" if x + 1 != 1 else \"\"} Pesquisado%{\"s\" if x + 1 != 1 else \"\"}, %{len(self.lib.files_not_in_library)} Novo(s) Arquivo(s) Encontrado(s)", - "file_extension.add_extension": "Adicionar Extensão", - "file_extension.list_mode": "Modo de Lista:", + "library.refresh.scanning_preparing": "Escaneando Diretórios por Novos Arquivos...\nPreparando...", + "library.refresh.scanning": "Escaneando Diretórios por Novos Arquivos...\n%{x + 1} Arquivo%{\"s\" if x + 1 != 1 else \"\"} Pesquisado%{\"s\" if x + 1 != 1 else \"\"}, %{len(self.lib.files_not_in_library)} Novo(s) Arquivo(s) Encontrado(s)", + "ignore_list.add_extension": "Adicionar Extensão", + "ignore_list.mode.label": "Modo de Lista:", "file_opener.command_not_found": "Não foi possível encontrar %{command_name} na PATH do sistema", - "file_opener.not_found": "Arquivo não encontrado:", + "file.not_found": "Arquivo não encontrado:", "file_opener.open_file": "Abrindo Arquivo:", - "fix_dupes.advice_label": "Após espelhagem, você estará livre para usar DupeGuru para deletar arquivos indesejados. Após, use a função \"Consertar Entradas Não Linkadas\" do TagStudio no menu de Ferramentas para deletar entradas não linkadas.", - "fix_dupes.fix_dupes": "Corrigir Arquivos Duplicados", - "fix_dupes.load_file": "Carregar Aquivo DupeGuru", - "fix_dupes.mirror_description": "Espelhe os ados de entrada em cada conjunto de correspondência duplicado, combinando todos os dados sem remover ou duplicar campos. Esta operação não excluirá nenhum arquivo ou dado.", - "fix_dupes.mirror_entries": "Entradas Espelhadas", - "fix_dupes.name_filter": "Arquivos DupeGuru (*.dupeguru)", - "fix_dupes.no_file_match": "Correspondências de Arquivos Duplicados: N/A", - "fix_dupes.no_file_selected": "Nenhum Arquivo DupeGuru Selecionado", - "fix_dupes.number_file_match": "Correspondências de Arquivos Duplicados: %{count}", - "fix_dupes.open_result_files": "Abrir Arquivo de Resultados do DupeGuru", + "file.duplicates.dupeguru.advice": "Após espelhagem, você estará livre para usar DupeGuru para deletar arquivos indesejados. Após, use a função \"Consertar Entradas Não Linkadas\" do TagStudio no menu de Ferramentas para deletar entradas não linkadas.", + "file.duplicates.fix": "Corrigir Arquivos Duplicados", + "file.duplicates.dupeguru.load_file": "Carregar Aquivo DupeGuru", + "file.duplicates.mirror.description": "Espelhe os ados de entrada em cada conjunto de correspondência duplicado, combinando todos os dados sem remover ou duplicar campos. Esta operação não excluirá nenhum arquivo ou dado.", + "file.duplicates.mirror_entries": "Entradas Espelhadas", + "file.duplicates.dupeguru.file_extension": "Arquivos DupeGuru (*.dupeguru)", + "file.duplicates.matches_uninitialized": "Correspondências de Arquivos Duplicados: N/A", + "file.duplicates.dupeguru.no_file": "Nenhum Arquivo DupeGuru Selecionado", + "file.duplicates.matches": "Correspondências de Arquivos Duplicados: %{count}", + "file.duplicates.dupeguru.open_file": "Abrir Arquivo de Resultados do DupeGuru", "fix_unlinked.delete_unlinked": "Escluir Entradas Não Linkadas", - "fix_unlinked.description": "Cada entrada na biblioteca está linkada a um arquivo em um dos seus diretórios. Se um arquivo linkado a uma entrada for movido ou deletado fora do TagStudio, ele é então considerado não linkado. Entradas não linkadas podem ser automaticamente re-linkadas por buscas nos seus diretórios, manualmente re-linkadas pelo usuário, ou deletada se for desejada.", - "fix_unlinked.duplicate_description": "Entradas duplicadas são definidas como multiplas entradas que levam ao mesmo arquivo no disco. Mergir essas entradas irá combinar as tags e metadados de todas as duplicatas em uma única entrada consolidada. Não confundir com \"Arquivos Duplicados\" que são duplicatas dos seus arquivos fora do TagStudio.", - "fix_unlinked.fix_unlinked": "Corrigir Entradas Não Linkadas", - "fix_unlinked.manual_relink": "Relink Manual", + "entries.unlinked.description": "Cada entrada na biblioteca está linkada a um arquivo em um dos seus diretórios. Se um arquivo linkado a uma entrada for movido ou deletado fora do TagStudio, ele é então considerado não linkado. Entradas não linkadas podem ser automaticamente re-linkadas por buscas nos seus diretórios, manualmente re-linkadas pelo usuário, ou deletada se for desejada.", + "entries.duplicates.description": "Entradas duplicadas são definidas como multiplas entradas que levam ao mesmo arquivo no disco. Mergir essas entradas irá combinar as tags e metadados de todas as duplicatas em uma única entrada consolidada. Não confundir com \"Arquivos Duplicados\" que são duplicatas dos seus arquivos fora do TagStudio.", + "entries.unlinked.title": "Corrigir Entradas Não Linkadas", + "entries.unlinked.relink.manual": "Relink Manual", "fix_unlinked.merge_dupes": "Mesclar Entradas Duplicadas", - "fix_unlinked.refresh_dupes": "Atualizar Entradas Duplicadas", - "fix_unlinked.scan_library.label": "Escaneando Bibliotecada para Entradas Não Linkadas...", - "fix_unlinked.scan_library.title": "Escaneando Biblioteca", - "fix_unlinked.search_and_relink": "Buscar && Relinkar", + "entries.duplicate.refresh": "Atualizar Entradas Duplicadas", + "entries.unlinked.scanning": "Escaneando Bibliotecada para Entradas Não Linkadas...", + "library.scan_library.title": "Escaneando Biblioteca", + "entries.unlinked.search_and_relink": "Buscar && Relinkar", "folders_to_tags.description": "Cria rótulos baseado na sua estrutura de arquivos e aplica elas nas suas entradas\nA estrutura abaixo mostra todos os rótulos que irão ser criados e a quais entradas eles serão aplicados.", - "folders_to_tags.folders_to_tags": "Convertendo pastas para Rótulos", + "folders_to_tags.converting": "Convertendo pastas para Rótulos", "folders_to_tags.title": "Criar rótulos a partir das pastas", "generic.add": "Adicionar", - "generic.aliases": "Alias", + "tag.aliases": "Alias", "generic.apply": "Aplicar", "generic.cancel": "Cancelar", "generic.close_all": "Fechar Tudo", - "generic.color": "Cor", + "tag.color": "Cor", "generic.delete": "Deletar", "generic.done": "Completo", - "generic.exclude": "Excluir", - "generic.file_extension": "Extensões de Arquivo", - "generic.include": "Incluir", - "generic.mirror": "Espelho", - "generic.name": "Nome", - "generic.open_all": "Abrir Tudo", - "generic.open_file": "Abrir arquivo", - "generic.open_file_explorer": "Abrir no explorador de arquivos", - "generic.refresh_all": "Atualizar_Tudo", - "generic.remove_field": "Remover Campo", - "generic.search_tags": "Buscar Rótulos", - "generic.shorthand": "Taquigrafia", + "ignore_list.mode.exclude": "Excluir", + "ignore_list.title": "Extensões de Arquivo", + "ignore_list.mode.include": "Incluir", + "entries.mirror": "Espelho", + "tag.name": "Nome", + "folders_to_tags.open_all": "Abrir Tudo", + "file.open_file": "Abrir arquivo", + "file.open_location.generic": "Abrir no explorador de arquivos", + "entries.unlinked.refresh_all": "Atualizar_Tudo", + "library.field.remove": "Remover Campo", + "home.search_tags": "Buscar Rótulos", + "tag.shorthand": "Taquigrafia", "home.base_title": "TagStudio Alfa", "home.include_all_tags": "E (Inclui todos os rótulos)", "home.include_any_tag": "Ou (Inclui qualquer rótulo)", @@ -78,8 +78,8 @@ "library.composer": "Compositor", "library.content_tags": "Rótulos de conteúdo", "library.date": "Data", - "library.date_created": "Data de Criação", - "library.date_modified": "Dada de Modificação", + "file.date_created": "Data de Criação", + "file.date_modified": "Dada de Modificação", "library.date_published": "Data de Publicação", "library.date_released": "Data de Lançamento", "library.date_taken": "Data de Criação", @@ -94,7 +94,7 @@ "library.publisher": "Editora", "library.series": "Séries", "library.source": "Fonte", - "library.tags": "Rótulos", + "entries.tags": "Rótulos", "library.title": "Título", "library.url": "URL", "library.volume": "Volume", @@ -105,37 +105,37 @@ "menu.tools": "Ferramentas", "menu.window": "Janela", "merge.merge_dupe_entries": "Mesclando Entradas Duplicadas", - "merge.window_title": "Mesclando Entradas Duplicadas", - "mirror_entities.are_you_sure": "Tem certeza que você deseja espelhar os seguintes %{len(self.lib.dupe_files)} entradas?", - "mirror_entities.label": "Espelhando 1/%{count} Entradas...", - "mirror_entities.title": "Espelhando Entradas", + "entries.duplicate.merge.label": "Mesclando Entradas Duplicadas", + "entries.mirror.confirmation": "Tem certeza que você deseja espelhar os seguintes %{len(self.lib.dupe_files)} entradas?", + "entries.mirror.label": "Espelhando 1/%{count} Entradas...", + "entries.mirror.title": "Espelhando Entradas", "open_library.library_creation_return_code": "Código de Retorno da Criação da Biblioteca:", "open_library.no_tagstudio_library_found": "Nenhuma biblioteca do TagStudio existente foi encontrada em '%{path}'. Criando uma.", - "open_library.title": "Biblioteca", - "preview.dimensions": "Dimensões", - "preview.recent": "Bibliotecas recentes", - "preview_panel.confirm_remove": "Você tem certeza de que quer remover o campo \"%{self.lib.get_field_attr(field, \"name\")}\"?", - "preview_panel.edit_name": "Editar", - "preview_panel.missing_location": "Localização Ausente", - "preview_panel.mixed_data": "Dados Mistos", - "preview_panel.no_items_selected": "Nenhum Item Selecionado", + "library.name": "Biblioteca", + "file.dimensions": "Dimensões", + "generic.recent_libraries": "Bibliotecas recentes", + "library.field.confirm_remove": "Você tem certeza de que quer remover o campo \"%{self.lib.get_field_attr(field, \"name\")}\"?", + "generic.edit": "Editar", + "library.missing": "Localização Ausente", + "library.field.mixed_data": "Dados Mistos", + "preview.no_selection": "Nenhum Item Selecionado", "preview_panel.unknown_field_type": "Tipo de Campo Desconhecido", "preview_panel.update_widgets": "[ENTRY PANEL] ATULIZAR WIDGETS (%{self.driver.selected})", - "progression.running_macros.new_entries": "Executando Macros nas Novas Entradas", + "macros.running.dialog.title": "Executando Macros nas Novas Entradas", "progression.running_macros.one_new_entry": "Executando Macros Configurados em 1/%{len(new_ids)} Novas Entradas", - "progression.running_macros.several_new_entry": "Executando Macros Configurados em %{x + 1}/%{len(new_ids)} Novas Entradas", - "relink_unlinked.attempt_relink": "Tentando Relinkar %{x[0]+1}/%{len(self.lib.missing_files)} Entradas, %{self.fixed} Relinkadas com Sucesso", - "relink_unlinked.title": "Relinkando Entradas", + "macros.running.dialog.new_entries": "Executando Macros Configurados em %{x + 1}/%{len(new_ids)} Novas Entradas", + "entries.unlinked.relink.attempting": "Tentando Relinkar %{x[0]+1}/%{len(self.lib.missing_files)} Entradas, %{self.fixed} Relinkadas com Sucesso", + "entries.unlinked.relink.title": "Relinkando Entradas", "splash.open_library": "Abrindo Biblioteca", - "status.backup_success": "Backup da Biblioteca Salvo em:", + "status.library_backup_success": "Backup da Biblioteca Salvo em:", "status.enumerate_query": "Busca:%{query}, Quadro: %{i}, Tamanho: %{len(f)}", "status.number_results_found": "%{len(all_items)} Resultados Encontrados para \"%{query}\" (%{format_timespan(end_time - start_time)})", - "status.results_found": "Resultados", - "status.save_success": "Biblioteca Salva e Fechada!", - "status.search_library_query": "Procurando na Biblioteca por", + "status.results": "Resultados", + "status.library_save_success": "Biblioteca Salva e Fechada!", + "status.library_search_query": "Procurando na Biblioteca por", "tag.add": "Adicionar Rótulo", - "tag.add_search": "Adicionar a Pesquisa", - "tag.library": "Rótulos da biblioteca", + "tag.add_to_search": "Adicionar a Pesquisa", + "tag_manager.title": "Rótulos da biblioteca", "tag.new": "Novo Rótulo", "tag.search_for_tag": "Procurar por Rótulo", "text_line_edit.unknown_event_type": "tipo de evento desconhecido: %{event}", diff --git a/tagstudio/resources/translations/ru.json b/tagstudio/resources/translations/ru.json index 25dc7c39..49a61f90 100644 --- a/tagstudio/resources/translations/ru.json +++ b/tagstudio/resources/translations/ru.json @@ -1,64 +1,64 @@ { - "add_field.add": "Добавить Категорию", - "build_tags.add_parent_tags": "Добавить Теги-родители", - "build_tags.parent_tags": "Теги-родители", - "delete_unlinked.confirm": "Вы уверены в том, что желаете удалить %{len(self.lib.missing_files)} записи?", - "delete_unlinked.delete_entries": "Удаление записей", - "delete_unlinked.delete_unlinked": "Удалить откреплённые записи", - "delete_unlinked.deleting_number_entries": "Удалено %{x[0]+1}/{len(self.lib.missing_files)} откреплённых записей", + "library.field.add": "Добавить Категорию", + "tag.parent_tags.add": "Добавить Теги-родители", + "tag.parent_tags": "Теги-родители", + "entries.unlinked.delete.confirm": "Вы уверены в том, что желаете удалить %{len(self.lib.missing_files)} записи?", + "entries.unlinked.delete.deleting": "Удаление записей", + "entries.unlinked.delete": "Удалить откреплённые записи", + "entries.unlinked.delete.deleting_count": "Удалено %{x[0]+1}/{len(self.lib.missing_files)} откреплённых записей", "dialog.open_create_library": "Открыть/Создать Библиотеку", - "dialog.refresh_directories": "Обновление Каталога", + "library.refresh.title": "Обновление Каталога", "dialog.save_library": "Сохранить Библиотеку", - "dialog.scan_directories": "Сканирование каталога на наличие новых файлов...\nПодготовка...", - "dialog.scan_directories.new_files": "Сканирование на наличие новых файлов...\n%{x + 1} File%{\"s\" if x + 1 != 1 else \"\"} Searched, %{len(self.lib.files_not_in_library)} Найдены новые файлы", - "file_extension.add_extension": "Добавить расширение", - "file_extension.list_mode": "Список режимов:", + "library.refresh.scanning_preparing": "Сканирование каталога на наличие новых файлов...\nПодготовка...", + "library.refresh.scanning": "Сканирование на наличие новых файлов...\n%{x + 1} File%{\"s\" if x + 1 != 1 else \"\"} Searched, %{len(self.lib.files_not_in_library)} Найдены новые файлы", + "ignore_list.add_extension": "Добавить расширение", + "ignore_list.mode.label": "Список режимов:", "file_opener.command_not_found": "Не смог найти %{command_name} в системе PATH", - "file_opener.not_found": "Файл не найден:", + "file.not_found": "Файл не найден:", "file_opener.open_file": "Открытие файла:}", - "fix_dupes.advice_label": "После отзеркаливания, вы можете использовать DupeGuru, чтобы удалить ненужные файлы. После этого, используйте функцию \"Исправить откреплённые записи\" внутри панели \"Инструменты\" TagStudio, чтобы удалить откреплённые записи.", - "fix_dupes.fix_dupes": "Исправить дубликаты", - "fix_dupes.load_file": "Загрузить файл DupeGuru", - "fix_dupes.mirror_description": "Отзеркалить данные записи внутри каждого указанного набора дубликатов, объединяя все данные внутри без удаления или дублирования категорий. Эта операция не удалит какие-либо файлы или данные.", - "fix_dupes.mirror_entries": "Отзеркалить записи", - "fix_dupes.name_filter": "Файлы DupeGuru (*.dupeguru)", - "fix_dupes.no_file_match": "Совпадение файлов дубликатов: N/A", - "fix_dupes.no_file_selected": "Файл DupeGuru не выбран", - "fix_dupes.number_file_match": "Совпадения файлов дубликатов: %{count}", - "fix_dupes.open_result_files": "Открыть файл результатов DupeGuru", + "file.duplicates.dupeguru.advice": "После отзеркаливания, вы можете использовать DupeGuru, чтобы удалить ненужные файлы. После этого, используйте функцию \"Исправить откреплённые записи\" внутри панели \"Инструменты\" TagStudio, чтобы удалить откреплённые записи.", + "file.duplicates.fix": "Исправить дубликаты", + "file.duplicates.dupeguru.load_file": "Загрузить файл DupeGuru", + "file.duplicates.mirror.description": "Отзеркалить данные записи внутри каждого указанного набора дубликатов, объединяя все данные внутри без удаления или дублирования категорий. Эта операция не удалит какие-либо файлы или данные.", + "file.duplicates.mirror_entries": "Отзеркалить записи", + "file.duplicates.dupeguru.file_extension": "Файлы DupeGuru (*.dupeguru)", + "file.duplicates.matches_uninitialized": "Совпадение файлов дубликатов: N/A", + "file.duplicates.dupeguru.no_file": "Файл DupeGuru не выбран", + "file.duplicates.matches": "Совпадения файлов дубликатов: %{count}", + "file.duplicates.dupeguru.open_file": "Открыть файл результатов DupeGuru", "fix_unlinked.delete_unlinked": "Удалить откреплённые записи", - "fix_unlinked.description": "Каждая запись в библиотеке привязана к файлу, находящегося внутри той или иной папки. Если файл, к которому была привязана запись, был удалён или перемещён без использования TagStudio, то запись становиться \"откреплённой\". Откреплённые записи могут быть прикреплены обратно через автоматический рескан, вручную прикреплены обратно пользователем, либо же удалены если в них нет надобности.", - "fix_unlinked.duplicate_description": "Записи-дубликаты это несколько записей, которые одновременно привязаны к одному файлу. Объединение таких дубликатов соединит все теги и мета данные из этих записей в одну. Записи-дубликаты не стоит путать с несколькими копиями самого файла, которые могут существовать вне TagStudio.", - "fix_unlinked.fix_unlinked": "Исправить откреплённые записи", - "fix_unlinked.manual_relink": "Ручная привязка", + "entries.unlinked.description": "Каждая запись в библиотеке привязана к файлу, находящегося внутри той или иной папки. Если файл, к которому была привязана запись, был удалён или перемещён без использования TagStudio, то запись становиться \"откреплённой\". Откреплённые записи могут быть прикреплены обратно через автоматический рескан, вручную прикреплены обратно пользователем, либо же удалены если в них нет надобности.", + "entries.duplicates.description": "Записи-дубликаты это несколько записей, которые одновременно привязаны к одному файлу. Объединение таких дубликатов соединит все теги и мета данные из этих записей в одну. Записи-дубликаты не стоит путать с несколькими копиями самого файла, которые могут существовать вне TagStudio.", + "entries.unlinked.title": "Исправить откреплённые записи", + "entries.unlinked.relink.manual": "Ручная привязка", "fix_unlinked.merge_dupes": "Объединить записи дубликаты", - "fix_unlinked.refresh_dupes": "Обновить записи дубликаты", - "fix_unlinked.scan_library.label": "Сканирование Библиотеки на наличие откреплённых записей...", - "fix_unlinked.scan_library.title": "Сканирование Библиотеки", - "fix_unlinked.search_and_relink": "Поиск и Привязка", + "entries.duplicate.refresh": "Обновить записи дубликаты", + "entries.unlinked.scanning": "Сканирование Библиотеки на наличие откреплённых записей...", + "library.scan_library.title": "Сканирование Библиотеки", + "entries.unlinked.search_and_relink": "Поиск и Привязка", "folders_to_tags.description": "Создаёт теги для записей согласно имеющейся иерархии папок.\nВнизу указаны все теги, которые будут созданы, а также записи к которым они будут применены.", - "folders_to_tags.folders_to_tags": "Конвертировать папки в теги", + "folders_to_tags.converting": "Конвертировать папки в теги", "folders_to_tags.title": "Создать теги из папок", "generic.add": "Добавить", - "generic.aliases": "Псевдонимы", + "tag.aliases": "Псевдонимы", "generic.apply": "Применить", "generic.cancel": "Отмена", "generic.close_all": "Закрыть Всё", - "generic.color": "Цвет", + "tag.color": "Цвет", "generic.delete": "Удалить", "generic.done": "Завершено", - "generic.exclude": "Исключить", - "generic.file_extension": "Расширения Файлов", - "generic.include": "Включить", - "generic.mirror": "Отзеркалить", - "generic.name": "Имя", - "generic.open_all": "Открыть Всё", - "generic.open_file": "Открыть файл", - "generic.open_file_explorer": "Открыть файл в проводнике", - "generic.refresh_all": "Обновить Всё", - "generic.remove_field": "Удалить Категорию", - "generic.search_tags": "Поиск тегов", - "generic.shorthand": "Сокращённое название", + "ignore_list.mode.exclude": "Исключить", + "ignore_list.title": "Расширения Файлов", + "ignore_list.mode.include": "Включить", + "entries.mirror": "Отзеркалить", + "tag.name": "Имя", + "folders_to_tags.open_all": "Открыть Всё", + "file.open_file": "Открыть файл", + "file.open_location.generic": "Открыть файл в проводнике", + "entries.unlinked.refresh_all": "Обновить Всё", + "library.field.remove": "Удалить Категорию", + "home.search_tags": "Поиск тегов", + "tag.shorthand": "Сокращённое название", "home.base_title": "TagStudio Альфа Версия", "home.include_all_tags": "И (Файл содержит все теги)", "home.include_any_tag": "Или (Файл содержит любой из тегов)", @@ -78,8 +78,8 @@ "library.composer": "Композитор", "library.content_tags": "Теги содержимого", "library.date": "Дата", - "library.date_created": "Дата создания", - "library.date_modified": "Дата изменения", + "file.date_created": "Дата создания", + "file.date_modified": "Дата изменения", "library.date_published": "Дата публикации", "library.date_released": "Дата выпуска", "library.date_taken": "Дата съёмки", @@ -94,7 +94,7 @@ "library.publisher": "Издатель", "library.series": "Серии", "library.source": "Источники", - "library.tags": "Теги", + "entries.tags": "Теги", "library.title": "Название", "library.url": "URL", "library.volume": "Том", @@ -105,37 +105,37 @@ "menu.tools": "Инструменты", "menu.window": "Окно", "merge.merge_dupe_entries": "Объединить повторяющиеся записи", - "merge.window_title": "Объединить повторяющиеся записи", - "mirror_entities.are_you_sure": "Вы уверенны, что хотите отзеркалить следующие %{len(self.lib.dupe_files)} записи?", - "mirror_entities.label": "Отзеркаливание 1/%{count} записей...", - "mirror_entities.title": "Отзеркаливание записей", + "entries.duplicate.merge.label": "Объединить повторяющиеся записи", + "entries.mirror.confirmation": "Вы уверенны, что хотите отзеркалить следующие %{len(self.lib.dupe_files)} записи?", + "entries.mirror.label": "Отзеркаливание 1/%{count} записей...", + "entries.mirror.title": "Отзеркаливание записей", "open_library.library_creation_return_code": "Возвратный код создания библиотеки:", "open_library.no_tagstudio_library_found": "Существующая библиотека TagStudio не найдена внутри '%{path}'. Создаём новую.", - "open_library.title": "Библиотека", - "preview.dimensions": "Соотношения сторон", - "preview.recent": "Недавние библиотеки", - "preview_panel.confirm_remove": "Вы уверенны, что хотите удалить эту категорию \"%{self.lib.get_field_attr(field, \"name\")}\"?", - "preview_panel.edit_name": "Редактировать", - "preview_panel.missing_location": "Путь не найден", - "preview_panel.mixed_data": "Смешанные данные", - "preview_panel.no_items_selected": "Ничего не выбрано", + "library.name": "Библиотека", + "file.dimensions": "Соотношения сторон", + "generic.recent_libraries": "Недавние библиотеки", + "library.field.confirm_remove": "Вы уверенны, что хотите удалить эту категорию \"%{self.lib.get_field_attr(field, \"name\")}\"?", + "generic.edit": "Редактировать", + "library.missing": "Путь не найден", + "library.field.mixed_data": "Смешанные данные", + "preview.no_selection": "Ничего не выбрано", "preview_panel.unknown_field_type": "Неизвестный тип категории", "preview_panel.update_widgets": "[ENTRY PANEL] ОБНОВИТЬ ВИДЖЕТЫ (%{self.driver.selected})", - "progression.running_macros.new_entries": "Использование макросов на новых файлах", + "macros.running.dialog.title": "Использование макросов на новых файлах", "progression.running_macros.one_new_entry": "Запуск сконфигурированных макросов в 1/%{len(new_ids)} Новые файлы", - "progression.running_macros.several_new_entry": "Запуск сконфигурированных макросов в %{x + 1}/%{len(new_ids)} Новые файлы", - "relink_unlinked.attempt_relink": "Пытаемся вновь привязать %{x[0]+1}/%{len(self.lib.missing_files)} записей, %{self.fixed} Успешно привязано", - "relink_unlinked.title": "Привязка записей", + "macros.running.dialog.new_entries": "Запуск сконфигурированных макросов в %{x + 1}/%{len(new_ids)} Новые файлы", + "entries.unlinked.relink.attempting": "Пытаемся вновь привязать %{x[0]+1}/%{len(self.lib.missing_files)} записей, %{self.fixed} Успешно привязано", + "entries.unlinked.relink.title": "Привязка записей", "splash.open_library": "Открытие Библиотеки", - "status.backup_success": "Резервная копия библиотеки сохранена по адресу:", + "status.library_backup_success": "Резервная копия библиотеки сохранена по адресу:", "status.enumerate_query": "Query:%{query}, Frame: %{i}, Length: %{len(f)}", "status.number_results_found": "%{len(all_items)} Было найдено \"%{query}\" (%{format_timespan(end_time - start_time)})", - "status.results_found": "Результаты", - "status.save_success": "Библиотека сохранена и закрыта!", - "status.search_library_query": "Поиск по библиотеке", + "status.results": "Результаты", + "status.library_save_success": "Библиотека сохранена и закрыта!", + "status.library_search_query": "Поиск по библиотеке", "tag.add": "Добавить тег", - "tag.add_search": "Добавить к поисковому запросу", - "tag.library": "Библиотека тегов", + "tag.add_to_search": "Добавить к поисковому запросу", + "tag_manager.title": "Библиотека тегов", "tag.new": "Новый тег", "tag.search_for_tag": "Поиск тега", "text_line_edit.unknown_event_type": "unknown event type: %{event}", diff --git a/tagstudio/resources/translations/sv.json b/tagstudio/resources/translations/sv.json index 3f4457a6..51661445 100644 --- a/tagstudio/resources/translations/sv.json +++ b/tagstudio/resources/translations/sv.json @@ -1,50 +1,50 @@ { - "add_field.add": "Lägg till fält", - "build_tags.add_parent_tags": "Lägg till förälderetikett", - "build_tags.parent_tags": "Förälderetiketter", - "delete_unlinked.delete_entries": "Tar bort poster", + "library.field.add": "Lägg till fält", + "tag.parent_tags.add": "Lägg till förälderetikett", + "tag.parent_tags": "Förälderetiketter", + "entries.unlinked.delete.deleting": "Tar bort poster", "dialog.open_create_library": "Öppna/skapa bibliotek", - "dialog.refresh_directories": "Uppdaterar kataloger", + "library.refresh.title": "Uppdaterar kataloger", "dialog.save_library": "Spara bibliotek", - "dialog.scan_directories": "Skannar kataloger efter nya filer...\nFörbereder...", - "file_extension.add_extension": "Lägg till tillägg", - "file_opener.not_found": "Kunde inte hitta filen:", + "library.refresh.scanning_preparing": "Skannar kataloger efter nya filer...\nFörbereder...", + "ignore_list.add_extension": "Lägg till tillägg", + "file.not_found": "Kunde inte hitta filen:", "file_opener.open_file": "Öppnar fil:}", - "fix_dupes.fix_dupes": "Fixa dubbla filer", - "fix_dupes.mirror_entries": "Spegla poster", + "file.duplicates.fix": "Fixa dubbla filer", + "file.duplicates.mirror_entries": "Spegla poster", "fix_unlinked.delete_unlinked": "Ta bort olänkade poster", - "fix_unlinked.description": "Varje post i biblioteket är länkad till en fil i en av dina kataloger. Om en fil länkad till en post är flyttad eller borttagen utanför TagStudio blir den olänkad. Olänkade poster kan automatiskt bli omlänkade genom att söka genom dina kataloger, manuellt omlänkade av användaren eller tas bort om så önskas.", - "fix_unlinked.duplicate_description": "Dubbla poster är definierade som flera poster som pekar på samma fil på datorn. Genom att slå ihop dessa poster kommer deras etiketter och metadata från dubbletterna att kombineras till en post. Dessa ska inte förväxlas med \"dubbla filer\", som är dubbletter av dina filer utanför TagStudio.", - "fix_unlinked.fix_unlinked": "Fixa olänkade poster", - "fix_unlinked.manual_relink": "Länka om manuellt", + "entries.unlinked.description": "Varje post i biblioteket är länkad till en fil i en av dina kataloger. Om en fil länkad till en post är flyttad eller borttagen utanför TagStudio blir den olänkad. Olänkade poster kan automatiskt bli omlänkade genom att söka genom dina kataloger, manuellt omlänkade av användaren eller tas bort om så önskas.", + "entries.duplicates.description": "Dubbla poster är definierade som flera poster som pekar på samma fil på datorn. Genom att slå ihop dessa poster kommer deras etiketter och metadata från dubbletterna att kombineras till en post. Dessa ska inte förväxlas med \"dubbla filer\", som är dubbletter av dina filer utanför TagStudio.", + "entries.unlinked.title": "Fixa olänkade poster", + "entries.unlinked.relink.manual": "Länka om manuellt", "fix_unlinked.merge_dupes": "Slå ihop dubbla poster", - "fix_unlinked.refresh_dupes": "Uppdatera dubbla poster", - "fix_unlinked.scan_library.label": "Skannar bibliotek efter olänkade poster...", - "fix_unlinked.scan_library.title": "Skannar bibliotek", - "fix_unlinked.search_and_relink": "Sök && Länka om", + "entries.duplicate.refresh": "Uppdatera dubbla poster", + "entries.unlinked.scanning": "Skannar bibliotek efter olänkade poster...", + "library.scan_library.title": "Skannar bibliotek", + "entries.unlinked.search_and_relink": "Sök && Länka om", "folders_to_tags.description": "Skapar etiketter baserat på din mappstruktur och tillämpar dem till dina poster.\nStrukturen nedan visar vilka etiketter som kommer skapas och vilka filer de kommer tillämpas på.", - "folders_to_tags.folders_to_tags": "Konverterar mappar till etiketter", + "folders_to_tags.converting": "Konverterar mappar till etiketter", "folders_to_tags.title": "Skapa etiketter från mappar", "generic.add": "Lägg till", - "generic.aliases": "Alias", + "tag.aliases": "Alias", "generic.apply": "Tillämpa", "generic.cancel": "Avbryt", "generic.close_all": "Stäng alla", - "generic.color": "Färg", + "tag.color": "Färg", "generic.delete": "Ta bort", "generic.done": "Klar", - "generic.exclude": "Exkludera", - "generic.file_extension": "Filnamnstillägg", - "generic.include": "Inkludera", - "generic.mirror": "Spegla", - "generic.name": "Namn", - "generic.open_all": "Öppna alla", - "generic.open_file": "Öppna fil", - "generic.open_file_explorer": "Öppna fil i utforskaren", - "generic.refresh_all": "Uppdatera alla", - "generic.remove_field": "Ta bort fält", - "generic.search_tags": "Sök etikett", - "generic.shorthand": "Förkortning", + "ignore_list.mode.exclude": "Exkludera", + "ignore_list.title": "Filnamnstillägg", + "ignore_list.mode.include": "Inkludera", + "entries.mirror": "Spegla", + "tag.name": "Namn", + "folders_to_tags.open_all": "Öppna alla", + "file.open_file": "Öppna fil", + "file.open_location.generic": "Öppna fil i utforskaren", + "entries.unlinked.refresh_all": "Uppdatera alla", + "library.field.remove": "Ta bort fält", + "home.search_tags": "Sök etikett", + "tag.shorthand": "Förkortning", "home.base_title": "TagStudio Alfa", "home.include_all_tags": "Och (Inkluderar alla etiketter)", "home.include_any_tag": "Eller (Inkluderar alla etiketter)", @@ -63,8 +63,8 @@ "library.composer": "Kompositör", "library.content_tags": "Innehållsetiketter", "library.date": "Datum", - "library.date_created": "Skapad den", - "library.date_modified": "Senast ändrad", + "file.date_created": "Skapad den", + "file.date_modified": "Senast ändrad", "library.date_published": "Publiceringsdatum", "library.date_released": "Utgivningsdatum", "library.date_uploaded": "Uppladdningsdatum", @@ -78,7 +78,7 @@ "library.publisher": "Utgivare", "library.series": "Serie", "library.source": "Källa", - "library.tags": "Etiketter", + "entries.tags": "Etiketter", "library.title": "Titel", "library.url": "URL", "library.volume": "Volym", @@ -89,24 +89,24 @@ "menu.tools": "Verktyg", "menu.window": "Fönster", "merge.merge_dupe_entries": "Slår ihop dubbla poster", - "merge.window_title": "Slår ihop dubbla poster", - "mirror_entities.title": "Speglar poster", - "open_library.title": "Bibliotek", - "preview.dimensions": "Dimensioner", - "preview.recent": "Senaste biblioteken", - "preview_panel.edit_name": "Redigera", - "preview_panel.missing_location": "Platsen saknas", - "preview_panel.no_items_selected": "Inga valda objekt", - "progression.running_macros.new_entries": "Kör makros på nya poster", - "relink_unlinked.title": "Länkar om poster", + "entries.duplicate.merge.label": "Slår ihop dubbla poster", + "entries.mirror.title": "Speglar poster", + "library.name": "Bibliotek", + "file.dimensions": "Dimensioner", + "generic.recent_libraries": "Senaste biblioteken", + "generic.edit": "Redigera", + "library.missing": "Platsen saknas", + "preview.no_selection": "Inga valda objekt", + "macros.running.dialog.title": "Kör makros på nya poster", + "entries.unlinked.relink.title": "Länkar om poster", "splash.open_library": "Öppnar bibliotek", - "status.backup_success": "Bibliotekets säkerhetskopia sparad i:", - "status.results_found": "Resultat", - "status.save_success": "Bibliotek sparat och stängt!", - "status.search_library_query": "Söker i biblioteket efter", + "status.library_backup_success": "Bibliotekets säkerhetskopia sparad i:", + "status.results": "Resultat", + "status.library_save_success": "Bibliotek sparat och stängt!", + "status.library_search_query": "Söker i biblioteket efter", "tag.add": "Lägg till etikett", - "tag.add_search": "Lägg till i Sök", - "tag.library": "Biblioteksetiketter", + "tag.add_to_search": "Lägg till i Sök", + "tag_manager.title": "Biblioteksetiketter", "tag.new": "Ny etikett", "tag.search_for_tag": "Sök efter etikett", "tooltip.open_library": "Ctrl+O", diff --git a/tagstudio/resources/translations/ta.json b/tagstudio/resources/translations/ta.json index e1be874d..dfb746b9 100644 --- a/tagstudio/resources/translations/ta.json +++ b/tagstudio/resources/translations/ta.json @@ -1,64 +1,64 @@ { - "add_field.add": "புலத்தைச் சேர்க்க", - "build_tags.add_parent_tags": "பெற்றோர் குறிச்சொற்களைச் சேர்க்க", - "build_tags.parent_tags": "பெற்றோர் குறிச்சொற்கள்", - "delete_unlinked.confirm": "பின்வரும் உள்ளீடுகளை நிச்சயமாக நீக்க விரும்புகிறீர்களா %{len(self.lib.missing_files)}?", - "delete_unlinked.delete_entries": "உள்ளீடுகள் நீக்கப்படுகிறது", - "delete_unlinked.delete_unlinked": "இணைக்கப்படாத உள்ளீடுகளை நீக்கு", - "delete_unlinked.deleting_number_entries": "%{x[0]+1}/{len(self.lib.missing_files)} இணைக்கப்படாத உள்ளீடுகள் நீக்கப்படுகிறது", + "library.field.add": "புலத்தைச் சேர்க்க", + "tag.parent_tags.add": "பெற்றோர் குறிச்சொற்களைச் சேர்க்க", + "tag.parent_tags": "பெற்றோர் குறிச்சொற்கள்", + "entries.unlinked.delete.confirm": "பின்வரும் உள்ளீடுகளை நிச்சயமாக நீக்க விரும்புகிறீர்களா %{len(self.lib.missing_files)}?", + "entries.unlinked.delete.deleting": "உள்ளீடுகள் நீக்கப்படுகிறது", + "entries.unlinked.delete": "இணைக்கப்படாத உள்ளீடுகளை நீக்கு", + "entries.unlinked.delete.deleting_count": "%{x[0]+1}/{len(self.lib.missing_files)} இணைக்கப்படாத உள்ளீடுகள் நீக்கப்படுகிறது", "dialog.open_create_library": "நூலகத்தைத் திற/உருவாக்கு", - "dialog.refresh_directories": "கோப்பகங்கள் புதுப்பிக்கப்படுகின்றன", + "library.refresh.title": "கோப்பகங்கள் புதுப்பிக்கப்படுகின்றன", "dialog.save_library": "நூலகத்தைச் சேமி", - "dialog.scan_directories": "புதிய கோப்புகளுக்கான அடைவுகள் சோதனை செய்யப்படுகின்றது...\nதயாராகிறது...", - "dialog.scan_directories.new_files": "புதிய கோப்புகளுக்கான அடைவுகள் சோதனை செய்யப்படுகின்றது...\n%{x + 1} கோப்பு%{\"s\" if x + 1 != 1 else \"\"} தேடப்பட்டது, %{len(self.lib.files_not_in_library)} புதிய கோப்புகள் கிடைத்தன", - "file_extension.add_extension": "நீட்டிப்பைச் சேர்க்க", - "file_extension.list_mode": "பட்டியல் முறை:", + "library.refresh.scanning_preparing": "புதிய கோப்புகளுக்கான அடைவுகள் சோதனை செய்யப்படுகின்றது...\nதயாராகிறது...", + "library.refresh.scanning": "புதிய கோப்புகளுக்கான அடைவுகள் சோதனை செய்யப்படுகின்றது...\n%{x + 1} கோப்பு%{\"s\" if x + 1 != 1 else \"\"} தேடப்பட்டது, %{len(self.lib.files_not_in_library)} புதிய கோப்புகள் கிடைத்தன", + "ignore_list.add_extension": "நீட்டிப்பைச் சேர்க்க", + "ignore_list.mode.label": "பட்டியல் முறை:", "file_opener.command_not_found": "%{command_name} ஐ system PATH இல் கண்டுபிடிக்க முடியவில்லை", - "file_opener.not_found": "கோப்பு கிடைக்கவில்லை:", + "file.not_found": "கோப்பு கிடைக்கவில்லை:", "file_opener.open_file": "கோப்பைத் திறக்கிறது:}", - "fix_dupes.advice_label": "படிமம் முடிந்தவுடன், தேவையற்ற கோப்புகளை நீக்க DupeGuru ஐ பயன்படுத்தலாம். அதற்குப் பிறகு, இணைக்காத நுழைவுகளை நீக்க 'டாக் ஸ்டுடியோ' வின் 'இணைக்கப்படாத உள்ளீடுகளைச் சரிசெய்' அம்சத்தைக் கருவிகள் பட்டியில் பயன்படுத்தவும்.", - "fix_dupes.fix_dupes": "நகல் கோப்புகளைச் சரிசெய்", - "fix_dupes.load_file": "DupeGuru கோப்பை ஏற்றவும்", - "fix_dupes.mirror_description": "ஒவ்வொரு மறுநுழைவு பொருத்தத் தொகுப்பிலும் நுழைவு தரவுகளைப் பிரதிபலிக்கவும், அனைத்து தரவுகளையும் இணைக்கவும், எந்தத் தகவல்களையும் நீக்காமலும் மறு செய்யாமலும். இந்தச் செயலில் எந்தக் கோப்புகள் அல்லது தரவுகளும் நீக்கப்பட மாட்டாது.", - "fix_dupes.mirror_entries": "படிம நுழைவுகள்", - "fix_dupes.name_filter": "DupeGuru கோப்புகள் (*.dupeguru)", - "fix_dupes.no_file_match": "நகல் கோப்பு பொருத்தங்கள்: ஒன்றும் இல்லை", - "fix_dupes.no_file_selected": "DupeGuru கோப்பு எதுவும் தேர்ந்தெடுக்கப்படவில்லை", - "fix_dupes.number_file_match": "நகல் கோப்பு பொருத்தங்கள்: %{count}", - "fix_dupes.open_result_files": "DupeGuru முடிவுகள் கோப்பைத் திறக்க", + "file.duplicates.dupeguru.advice": "படிமம் முடிந்தவுடன், தேவையற்ற கோப்புகளை நீக்க DupeGuru ஐ பயன்படுத்தலாம். அதற்குப் பிறகு, இணைக்காத நுழைவுகளை நீக்க 'டாக் ஸ்டுடியோ' வின் 'இணைக்கப்படாத உள்ளீடுகளைச் சரிசெய்' அம்சத்தைக் கருவிகள் பட்டியில் பயன்படுத்தவும்.", + "file.duplicates.fix": "நகல் கோப்புகளைச் சரிசெய்", + "file.duplicates.dupeguru.load_file": "DupeGuru கோப்பை ஏற்றவும்", + "file.duplicates.mirror.description": "ஒவ்வொரு மறுநுழைவு பொருத்தத் தொகுப்பிலும் நுழைவு தரவுகளைப் பிரதிபலிக்கவும், அனைத்து தரவுகளையும் இணைக்கவும், எந்தத் தகவல்களையும் நீக்காமலும் மறு செய்யாமலும். இந்தச் செயலில் எந்தக் கோப்புகள் அல்லது தரவுகளும் நீக்கப்பட மாட்டாது.", + "file.duplicates.mirror_entries": "படிம நுழைவுகள்", + "file.duplicates.dupeguru.file_extension": "DupeGuru கோப்புகள் (*.dupeguru)", + "file.duplicates.matches_uninitialized": "நகல் கோப்பு பொருத்தங்கள்: ஒன்றும் இல்லை", + "file.duplicates.dupeguru.no_file": "DupeGuru கோப்பு எதுவும் தேர்ந்தெடுக்கப்படவில்லை", + "file.duplicates.matches": "நகல் கோப்பு பொருத்தங்கள்: %{count}", + "file.duplicates.dupeguru.open_file": "DupeGuru முடிவுகள் கோப்பைத் திறக்க", "fix_unlinked.delete_unlinked": "இணைக்கப்படாத உள்ளீடுகளை நீக்கு", - "fix_unlinked.description": "ஒவ்வொரு புத்தககல்லரி நுழைவும் உங்கள் அடைவுகளில் உள்ள ஒரு கோப்புடன் இணைக்கப்பட்டுள்ளது. டாக் ஸ்டுடியோ-வைத் தவிர கோப்புகள் நகர்த்தப்பட்டால் அல்லது நீக்கப்பட்டால், அவை இணைக்கப்படாதவையாகக் கருதப்படும். இணைக்கப்படாத நுழைவுகளை உங்கள் அடைவுகளில் தேடுவதன் மூலம் தானாகவே மீண்டும் இணைக்கலாம், பயனர் கைமுறையாக இணைக்கலாம் அல்லது விருப்பப்படி நீக்கலாம்.", - "fix_unlinked.duplicate_description": "மறுநுழைவுகள் என்பது, ஒரே கோப்பை குறிக்கும் பல நுழைவுகளை குறிக்கும். இவற்றை இணைப்பதால், அனைத்து மறுநுழைவுகளின் குறிச்சொற்களும் மெட்டாடேட்டாவும் ஒரே ஒட்டுமொத்த நுழைவாகச் சேர்க்கப்படும். இவற்றை 'மறுகோப்புகள்' என்பதுடன் குழப்பக் கூடாது, ஏனெனில் அவை டாக் ஸ்டுடியோவுக்கு வெளியேயுள்ள கோப்புகளின் நகல்களாகும்.", - "fix_unlinked.fix_unlinked": "இணைக்கப்படாத உள்ளீடுகளைச் சரிசெய்யவும்", - "fix_unlinked.manual_relink": "கைமுறை மறு இணைப்பு", + "entries.unlinked.description": "ஒவ்வொரு புத்தககல்லரி நுழைவும் உங்கள் அடைவுகளில் உள்ள ஒரு கோப்புடன் இணைக்கப்பட்டுள்ளது. டாக் ஸ்டுடியோ-வைத் தவிர கோப்புகள் நகர்த்தப்பட்டால் அல்லது நீக்கப்பட்டால், அவை இணைக்கப்படாதவையாகக் கருதப்படும். இணைக்கப்படாத நுழைவுகளை உங்கள் அடைவுகளில் தேடுவதன் மூலம் தானாகவே மீண்டும் இணைக்கலாம், பயனர் கைமுறையாக இணைக்கலாம் அல்லது விருப்பப்படி நீக்கலாம்.", + "entries.duplicates.description": "மறுநுழைவுகள் என்பது, ஒரே கோப்பை குறிக்கும் பல நுழைவுகளை குறிக்கும். இவற்றை இணைப்பதால், அனைத்து மறுநுழைவுகளின் குறிச்சொற்களும் மெட்டாடேட்டாவும் ஒரே ஒட்டுமொத்த நுழைவாகச் சேர்க்கப்படும். இவற்றை 'மறுகோப்புகள்' என்பதுடன் குழப்பக் கூடாது, ஏனெனில் அவை டாக் ஸ்டுடியோவுக்கு வெளியேயுள்ள கோப்புகளின் நகல்களாகும்.", + "entries.unlinked.title": "இணைக்கப்படாத உள்ளீடுகளைச் சரிசெய்யவும்", + "entries.unlinked.relink.manual": "கைமுறை மறு இணைப்பு", "fix_unlinked.merge_dupes": "நகல் உள்ளீடுகளை ஒன்றிணை", - "fix_unlinked.refresh_dupes": "நகல் உள்ளீடுகளைப் புதுப்பி", - "fix_unlinked.scan_library.label": "இணைக்கப்படாத நுழைவுகளை புத்தககல்லரியில் சோதனை செய்யப்படுகிறது...", - "fix_unlinked.scan_library.title": "புத்தககல்லரி சோதனை செய்யப்படுகிறது", - "fix_unlinked.search_and_relink": "தேடல் && மீண்டும் இணை", + "entries.duplicate.refresh": "நகல் உள்ளீடுகளைப் புதுப்பி", + "entries.unlinked.scanning": "இணைக்கப்படாத நுழைவுகளை புத்தககல்லரியில் சோதனை செய்யப்படுகிறது...", + "library.scan_library.title": "புத்தககல்லரி சோதனை செய்யப்படுகிறது", + "entries.unlinked.search_and_relink": "தேடல் && மீண்டும் இணை", "folders_to_tags.description": "உங்கள் அடைவு கட்டமைப்பின் அடிப்படையில் குறிச்சொற்களை உருவாக்கி, அவற்றை உங்கள் நுழைவுகளில் பயன்படுத்துகிறது.\nகீழே காணப்படும் கட்டமைப்பானது உருவாக்கப்படும் அனைத்து குறிச்சொற்களையும், அவை எந்த நுழைவுகளில் பயன்படுத்தப்படும் என்பதையும் காட்டுகிறது.", - "folders_to_tags.folders_to_tags": "கோப்புறைகளை குறிச்சொற்களாக மாற்றப்படுகிறது", + "folders_to_tags.converting": "கோப்புறைகளை குறிச்சொற்களாக மாற்றப்படுகிறது", "folders_to_tags.title": "கோப்புறைகளிலிருந்து குறிச்சொற்களை உருவாக்கு", "generic.add": "சேர்", - "generic.aliases": "மாற்றுப்பெயர்கள்", + "tag.aliases": "மாற்றுப்பெயர்கள்", "generic.apply": "விண்ணப்பிக்க", "generic.cancel": "ரத்து செய்", "generic.close_all": "அனைத்தையும் மூடு", - "generic.color": "நிறம்", + "tag.color": "நிறம்", "generic.delete": "நீக்கு", "generic.done": "முடிந்தது", - "generic.exclude": "தவிர்", - "generic.file_extension": "கோப்பு நீட்டிப்புகள்", - "generic.include": "உள்ளடக்கு", - "generic.mirror": "படிமம்", - "generic.name": "பெயர்", - "generic.open_all": "அனைத்தையும் திற", - "generic.open_file": "கோப்பைத் திறக்கவும்", - "generic.open_file_explorer": "Explorer இல் கோப்பைத் திறக்கவும்", - "generic.refresh_all": "அனைத்தையும் புதுப்பி", - "generic.remove_field": "புலத்தை அகற்று", - "generic.search_tags": "குறிச்சொற்களைத் தேடு", - "generic.shorthand": "சுருக்கெழுத்து", + "ignore_list.mode.exclude": "தவிர்", + "ignore_list.title": "கோப்பு நீட்டிப்புகள்", + "ignore_list.mode.include": "உள்ளடக்கு", + "entries.mirror": "படிமம்", + "tag.name": "பெயர்", + "folders_to_tags.open_all": "அனைத்தையும் திற", + "file.open_file": "கோப்பைத் திறக்கவும்", + "file.open_location.generic": "Explorer இல் கோப்பைத் திறக்கவும்", + "entries.unlinked.refresh_all": "அனைத்தையும் புதுப்பி", + "library.field.remove": "புலத்தை அகற்று", + "home.search_tags": "குறிச்சொற்களைத் தேடு", + "tag.shorthand": "சுருக்கெழுத்து", "home.base_title": "TagStudio ஆல்பா", "home.include_all_tags": "மற்றும் (அனைத்து குறிச்சொற்களையும் உள்ளடக்கியது)", "home.include_any_tag": "அல்லது (எந்தக் குறிச்சொல்லையும் உள்ளடக்கியது)", @@ -78,8 +78,8 @@ "library.composer": "இசையமைப்பாளர்", "library.content_tags": "உள்ளடக்கக் குறிச்சொற்கள்", "library.date": "தேதி", - "library.date_created": "உருவாக்கப்பட்ட தேதி", - "library.date_modified": "மாற்றப்பட்ட தேதி", + "file.date_created": "உருவாக்கப்பட்ட தேதி", + "file.date_modified": "மாற்றப்பட்ட தேதி", "library.date_published": "வெளியிடப்பட்ட தேதி", "library.date_released": "வெளியான தேதி", "library.date_taken": "எடுக்கப்பட்ட தேதி", @@ -94,7 +94,7 @@ "library.publisher": "பதிப்பாளர்", "library.series": "தொடர்", "library.source": "ஆதாரம்", - "library.tags": "குறிச்சொற்கள்", + "entries.tags": "குறிச்சொற்கள்", "library.title": "தலைப்பு", "library.url": "இணைய முகவரி", "library.volume": "தொகுப்பு", @@ -105,37 +105,37 @@ "menu.tools": "கருவிகள்", "menu.window": "சாளரம்", "merge.merge_dupe_entries": "மறுநுழைவுகளை ஒன்றுசேர்த்தல்", - "merge.window_title": "மறுநுழைவுகளை ஒன்றுசேர்த்தல்", - "mirror_entities.are_you_sure": "பின்வரும் உள்ளீடுகளைப் பிரதிபலிக்க விரும்புகிறீர்களா %{len(self.lib.dupe_files)}?", - "mirror_entities.label": "1/%{count} உள்ளீடுகளைப் பிரதிபலிக்கப்படுகின்றது...", - "mirror_entities.title": "உள்ளீடுகள் பிரதிபழிக்கப்படுகின்றது", + "entries.duplicate.merge.label": "மறுநுழைவுகளை ஒன்றுசேர்த்தல்", + "entries.mirror.confirmation": "பின்வரும் உள்ளீடுகளைப் பிரதிபலிக்க விரும்புகிறீர்களா %{len(self.lib.dupe_files)}?", + "entries.mirror.label": "1/%{count} உள்ளீடுகளைப் பிரதிபலிக்கப்படுகின்றது...", + "entries.mirror.title": "உள்ளீடுகள் பிரதிபழிக்கப்படுகின்றது", "open_library.library_creation_return_code": "நூலக உருவாக்கம் திரும்பக் குறியீடு:", "open_library.no_tagstudio_library_found": "'%{path}' இல் ஏற்கனவே உள்ள டாக் ஸ்டுடியோ புத்தககல்லரி காணப்படவில்லை. ஒன்று உருவாக்கப்படுகிறது.", - "open_library.title": "நூலகம்", - "preview.dimensions": "பரிமாணங்கள்", - "preview.recent": "சமீபத்திய நூலகங்கள்", - "preview_panel.confirm_remove": "இந்த \"%{self.lib.get_field_attr(field, \"name\")}\" புலத்தை நிச்சயமாக அகற்ற விரும்புகிறீர்களா?", - "preview_panel.edit_name": "திருத்து", - "preview_panel.missing_location": "இடம் காணவில்லை", - "preview_panel.mixed_data": "கலப்பு தரவு", - "preview_panel.no_items_selected": "உருப்படிகள் எதுவும் தேர்ந்தெடுக்கப்படவில்லை", + "library.name": "நூலகம்", + "file.dimensions": "பரிமாணங்கள்", + "generic.recent_libraries": "சமீபத்திய நூலகங்கள்", + "library.field.confirm_remove": "இந்த \"%{self.lib.get_field_attr(field, \"name\")}\" புலத்தை நிச்சயமாக அகற்ற விரும்புகிறீர்களா?", + "generic.edit": "திருத்து", + "library.missing": "இடம் காணவில்லை", + "library.field.mixed_data": "கலப்பு தரவு", + "preview.no_selection": "உருப்படிகள் எதுவும் தேர்ந்தெடுக்கப்படவில்லை", "preview_panel.unknown_field_type": "அறியப்படாத புல வகை", "preview_panel.update_widgets": "[நுழைவு குழு] விட்ஜெட்டுகளை புதுப்பிக்கவும் (%{self.driver.selected})", - "progression.running_macros.new_entries": "புதிய நுழைவுகளில் செயல்முறைகளை இயக்கப்படுகின்றது", + "macros.running.dialog.title": "புதிய நுழைவுகளில் செயல்முறைகளை இயக்கப்படுகின்றது", "progression.running_macros.one_new_entry": "1/ இல் கட்டமைக்கப்பட்ட செயல்முறைகளை இயக்கப்படுகிறது %{len(new_ids)} புதிய பதிவுகள்", - "progression.running_macros.several_new_entry": "%{x + 1} இல் கட்டமைக்கப்பட்ட செயல்முறைகளை இயக்கப்படுகிறது / %{len(new_ids)} புதிய பதிவுகள்", - "relink_unlinked.attempt_relink": "%{x[0]+1}/%{len(self.lib.missing_files)} உள்ளீடுகளை மீண்டும் இணைக்க முயற்சிக்கிறது, %{self.fixed} மீண்டும் இணைக்கப்பட்டது", - "relink_unlinked.title": "உள்ளீடுகள் மீண்டும் இணைக்கப்படுகின்றது", + "macros.running.dialog.new_entries": "%{x + 1} இல் கட்டமைக்கப்பட்ட செயல்முறைகளை இயக்கப்படுகிறது / %{len(new_ids)} புதிய பதிவுகள்", + "entries.unlinked.relink.attempting": "%{x[0]+1}/%{len(self.lib.missing_files)} உள்ளீடுகளை மீண்டும் இணைக்க முயற்சிக்கிறது, %{self.fixed} மீண்டும் இணைக்கப்பட்டது", + "entries.unlinked.relink.title": "உள்ளீடுகள் மீண்டும் இணைக்கப்படுகின்றது", "splash.open_library": "நூலகம் திறக்கப்படுகின்றது", - "status.backup_success": "நூலக காப்புப் பிரதி சேமிக்கப்பட்டது:", + "status.library_backup_success": "நூலக காப்புப் பிரதி சேமிக்கப்பட்டது:", "status.enumerate_query": "வினவு:%{query}, சட்டகம்: %{i}, நீளம்: %{len(f)}", "status.number_results_found": "\"%{query}\" இல் %{len(all_items)} முடிவுகள் கிடைத்தன (%{format_timespan(end_time - start_time)})", - "status.results_found": "முடிவுகள்", - "status.save_success": "நூலகம் சேமிக்கப்பட்டு மூடப்பட்டது!", - "status.search_library_query": "நூலகத்தைத் தேடுகிறது", + "status.results": "முடிவுகள்", + "status.library_save_success": "நூலகம் சேமிக்கப்பட்டு மூடப்பட்டது!", + "status.library_search_query": "நூலகத்தைத் தேடுகிறது", "tag.add": "குறிச்சொல் சேர்க்க", - "tag.add_search": "தேடலில் சேர்", - "tag.library": "நூலக குறிச்சொற்கள்", + "tag.add_to_search": "தேடலில் சேர்", + "tag_manager.title": "நூலக குறிச்சொற்கள்", "tag.new": "புதிய குறிச்சொல்", "tag.search_for_tag": "குறிச்சொல்லைத் தேடு", "text_line_edit.unknown_event_type": "அறியப்படாத நிகழ்வு வகை: %{event}", diff --git a/tagstudio/resources/translations/tok.json b/tagstudio/resources/translations/tok.json index 3832c5a5..b5ebdf2a 100644 --- a/tagstudio/resources/translations/tok.json +++ b/tagstudio/resources/translations/tok.json @@ -1,64 +1,64 @@ { - "add_field.add": "pana e sona", - "build_tags.add_parent_tags": "o pana e poki mama", - "build_tags.parent_tags": "poki mama", - "delete_unlinked.confirm": "mi weka e ijo %{len(self.lib.missing_files)}. ni li pona anu seme?", - "delete_unlinked.delete_entries": "mi weka e ijo", - "delete_unlinked.delete_unlinked": "o weka e ijo pi ijo lon ala", - "delete_unlinked.deleting_number_entries": "mi weka e ijo %{x[0]+1}/{len(self.lib.missing_files)} pi ijo lon ala", + "library.field.add": "pana e sona", + "tag.parent_tags.add": "o pana e poki mama", + "tag.parent_tags": "poki mama", + "entries.unlinked.delete.confirm": "mi weka e ijo %{len(self.lib.missing_files)}. ni li pona anu seme?", + "entries.unlinked.delete.deleting": "mi weka e ijo", + "entries.unlinked.delete": "o weka e ijo pi ijo lon ala", + "entries.unlinked.delete.deleting_count": "mi weka e ijo %{x[0]+1}/{len(self.lib.missing_files)} pi ijo lon ala", "dialog.open_create_library": "open/sin e tomo", - "dialog.refresh_directories": "mi kama jo e sin lon tomo", + "library.refresh.title": "mi kama jo e sin lon tomo", "dialog.save_library": "awen e tomo", - "dialog.scan_directories": "mi alasa e ijo sin lon tomo...\nmi kama pona...", - "dialog.scan_directories.new_files": "mi alasa e ijo sin lon tomo...\nmi lukin e ijo %{x + 1}. ijo %{len(self.lib.files_not_in_library)} li sin", - "file_extension.add_extension": "o pana e nimi anpa", - "file_extension.list_mode": "nasin kulupu:", + "library.refresh.scanning_preparing": "mi alasa e ijo sin lon tomo...\nmi kama pona...", + "library.refresh.scanning": "mi alasa e ijo sin lon tomo...\nmi lukin e ijo %{x + 1}. ijo %{len(self.lib.files_not_in_library)} li sin", + "ignore_list.add_extension": "o pana e nimi anpa", + "ignore_list.mode.label": "nasin kulupu:", "file_opener.command_not_found": "mi ken ala alasa e toki lawa '%{command_name}' lon PATH", - "file_opener.not_found": "mi ken ala alasa e ijo:", + "file.not_found": "mi ken ala alasa e ijo:", "file_opener.open_file": "mi open e ijo:}", - "fix_dupes.advice_label": "jasima li pini la, sina ken kepeken ilo DupeGuru. ilo DupeGuru li ken weka e ijo ike. ni li pini la, o kepeken e nasin \"o pona e ijo pi ijo lon ala\" lon ilo TagStudio. ni li weka e ijo pi ijo lon ala.", - "fix_dupes.fix_dupes": "pona e ijo sama", - "fix_dupes.load_file": "o kama sona e ijo DupeGuru", - "fix_dupes.mirror_description": "o jasima e sona kama lon kulupu sama ale. sona ale li kama wan li weka ala li kama mute ala. ni li weka ala e sona e ijo.", - "fix_dupes.mirror_entries": "o jasima e ijo", - "fix_dupes.name_filter": "ijo DupeGuru (*.dupeguru)", - "fix_dupes.no_file_match": "ijo sama: ala", - "fix_dupes.no_file_selected": "sina o anu e ijo DupeGuru", - "fix_dupes.number_file_match": "ijo sama: %{count}", - "fix_dupes.open_result_files": "o open e sona pini tan ilo DupeGuru", + "file.duplicates.dupeguru.advice": "jasima li pini la, sina ken kepeken ilo DupeGuru. ilo DupeGuru li ken weka e ijo ike. ni li pini la, o kepeken e nasin \"o pona e ijo pi ijo lon ala\" lon ilo TagStudio. ni li weka e ijo pi ijo lon ala.", + "file.duplicates.fix": "pona e ijo sama", + "file.duplicates.dupeguru.load_file": "o kama sona e ijo DupeGuru", + "file.duplicates.mirror.description": "o jasima e sona kama lon kulupu sama ale. sona ale li kama wan li weka ala li kama mute ala. ni li weka ala e sona e ijo.", + "file.duplicates.mirror_entries": "o jasima e ijo", + "file.duplicates.dupeguru.file_extension": "ijo DupeGuru (*.dupeguru)", + "file.duplicates.matches_uninitialized": "ijo sama: ala", + "file.duplicates.dupeguru.no_file": "sina o anu e ijo DupeGuru", + "file.duplicates.matches": "ijo sama: %{count}", + "file.duplicates.dupeguru.open_file": "o open e sona pini tan ilo DupeGuru", "fix_unlinked.delete_unlinked": "o weka e ijo pi ijo lon ala", - "fix_unlinked.description": "ijo ale li jo e ijo lon. ona li tawa anu weka, ona li jo ala e ijo lon. ijo pi ijo lon li ken alasa e tomo li ken kama jo e ijo lon. ante la sina ken pana ijo lon tawa ijo. ante la sina ken weka e ijo.", - "fix_unlinked.duplicate_description": "ken la, ijo mute li jo e ijo lon sama. ni li \"ijo sama\". sina wan e ona la, ijo sama li kama wan li jo e sona ale tan ijo sama ale.", - "fix_unlinked.fix_unlinked": "o pona e ijo pi ijo lon ala", - "fix_unlinked.manual_relink": "sina o pana e ijo lon tawa ijo", + "entries.unlinked.description": "ijo ale li jo e ijo lon. ona li tawa anu weka, ona li jo ala e ijo lon. ijo pi ijo lon li ken alasa e tomo li ken kama jo e ijo lon. ante la sina ken pana ijo lon tawa ijo. ante la sina ken weka e ijo.", + "entries.duplicates.description": "ken la, ijo mute li jo e ijo lon sama. ni li \"ijo sama\". sina wan e ona la, ijo sama li kama wan li jo e sona ale tan ijo sama ale.", + "entries.unlinked.title": "o pona e ijo pi ijo lon ala", + "entries.unlinked.relink.manual": "sina o pana e ijo lon tawa ijo", "fix_unlinked.merge_dupes": "o kama wan e ijo sama", - "fix_unlinked.refresh_dupes": "o kama jo e sona tan ijo sama", - "fix_unlinked.scan_library.label": "mi o alasa e ijo pi ijo lon ala...", - "fix_unlinked.scan_library.title": "mi o lukin e tomo", - "fix_unlinked.search_and_relink": "o alasa o pana e ijo lon tawa ijo", + "entries.duplicate.refresh": "o kama jo e sona tan ijo sama", + "entries.unlinked.scanning": "mi o alasa e ijo pi ijo lon ala...", + "library.scan_library.title": "mi o lukin e tomo", + "entries.unlinked.search_and_relink": "o alasa o pana e ijo lon tawa ijo", "folders_to_tags.description": "ni li pali e poki tan poki tona li pana e poki sin tawa ijo lon tomo.\n ilo ni li pali e anpa.", - "folders_to_tags.folders_to_tags": "mi o pali e poki tan poki tomo", + "folders_to_tags.converting": "mi o pali e poki tan poki tomo", "folders_to_tags.title": "o pali e poki tan poki tomo", "generic.add": "o pana", - "generic.aliases": "nimi ante", + "tag.aliases": "nimi ante", "generic.apply": "o pana", "generic.cancel": "o ala", "generic.close_all": "weka e ale", - "generic.color": "kule", + "tag.color": "kule", "generic.delete": "o weka", "generic.done": "pona", - "generic.exclude": "o kepeken ala", - "generic.file_extension": "nimi lon nimi ijo anpa", - "generic.include": "o kepeken", - "generic.mirror": "jasima", - "generic.name": "nimi", - "generic.open_all": "open e ale", - "generic.open_file": "open e ijo", - "generic.open_file_explorer": "open e ijo lon ilo alasa", - "generic.refresh_all": "o kama jo sin tan ale", - "generic.remove_field": "weka e sona", - "generic.search_tags": "o alasa e poki", - "generic.shorthand": "nimi lili", + "ignore_list.mode.exclude": "o kepeken ala", + "ignore_list.title": "nimi lon nimi ijo anpa", + "ignore_list.mode.include": "o kepeken", + "entries.mirror": "jasima", + "tag.name": "nimi", + "folders_to_tags.open_all": "open e ale", + "file.open_file": "open e ijo", + "file.open_location.generic": "open e ijo lon ilo alasa", + "entries.unlinked.refresh_all": "o kama jo sin tan ale", + "library.field.remove": "weka e sona", + "home.search_tags": "o alasa e poki", + "tag.shorthand": "nimi lili", "home.base_title": "ilo TagStudio pi pini ala", "home.include_all_tags": "AND (kepeken poki ale)", "home.include_any_tag": "OR (kepeken poki wan. poki ale li ken)", @@ -78,8 +78,8 @@ "library.composer": "jan pali pi kalama musi", "library.content_tags": "poki pi jo ijo", "library.date": "tenpo", - "library.date_created": "tenpo pi kama sin", - "library.date_modified": "tenpo pi kama ante", + "file.date_created": "tenpo pi kama sin", + "file.date_modified": "tenpo pi kama ante", "library.date_published": "tenpo pana", "library.date_released": "tenpo pi kama open", "library.date_taken": "tenpo lanpan", @@ -94,7 +94,7 @@ "library.publisher": "jan esun", "library.series": "kulupu", "library.source": "tan", - "library.tags": "poki", + "entries.tags": "poki", "library.title": "nimi", "library.url": "nimi linluwi", "library.volume": "nanpa", @@ -105,37 +105,37 @@ "menu.tools": "ilo", "menu.window": "lipu", "merge.merge_dupe_entries": "ijo sama li kama wan", - "merge.window_title": "ijo sama li kama wan", - "mirror_entities.are_you_sure": "mi jasima e ijo %{len(self.lib.dupe_files)}. ni li pona anu seme?", - "mirror_entities.label": "mi jasima e ijo 1/%{count}...", - "mirror_entities.title": "mi jasima e ijo", + "entries.duplicate.merge.label": "ijo sama li kama wan", + "entries.mirror.confirmation": "mi jasima e ijo %{len(self.lib.dupe_files)}. ni li pona anu seme?", + "entries.mirror.label": "mi jasima e ijo 1/%{count}...", + "entries.mirror.title": "mi jasima e ijo", "open_library.library_creation_return_code": "tomo li open li toki e ni:", "open_library.no_tagstudio_library_found": "tomo lon '%{path}' li lon ala. mi pali e tomo.", - "open_library.title": "tomo", - "preview.dimensions": "suli", - "preview.recent": "tomo pi tenpo poka", - "preview_panel.confirm_remove": "sina weka e sona poki \"%{self.lib.get_field_attr(field, \"name\")}\". ni li pona anu seme?", - "preview_panel.edit_name": "ante", - "preview_panel.missing_location": "ma li lon ala", - "preview_panel.mixed_data": "sona ante", - "preview_panel.no_items_selected": "ijo ala li anu", + "library.name": "tomo", + "file.dimensions": "suli", + "generic.recent_libraries": "tomo pi tenpo poka", + "library.field.confirm_remove": "sina weka e sona poki \"%{self.lib.get_field_attr(field, \"name\")}\". ni li pona anu seme?", + "generic.edit": "ante", + "library.missing": "ma li lon ala", + "library.field.mixed_data": "sona ante", + "preview.no_selection": "ijo ala li anu", "preview_panel.unknown_field_type": "mi sona ala e kule pi sona poki", "preview_panel.update_widgets": "[LIPU OPEN] O SIN E LIPU LILI (%{self.driver.selected})", - "progression.running_macros.new_entries": "mi pali lon ijo sin", + "macros.running.dialog.title": "mi pali lon ijo sin", "progression.running_macros.one_new_entry": "mi pali lon ijo sin 1/%{len(new_ids)}", - "progression.running_macros.several_new_entry": "mi pali lon ijo sin %{x + 1}/%{len(new_ids)}", - "relink_unlinked.attempt_relink": "mi o pana e ijo lon tawa ijo %{x[0]+1}/%{len(self.lib.missing_files)}. mi pana e ijo lon tawa ijo %{self.fixed}", - "relink_unlinked.title": "mi pana e ijo lon tawa ijo", + "macros.running.dialog.new_entries": "mi pali lon ijo sin %{x + 1}/%{len(new_ids)}", + "entries.unlinked.relink.attempting": "mi o pana e ijo lon tawa ijo %{x[0]+1}/%{len(self.lib.missing_files)}. mi pana e ijo lon tawa ijo %{self.fixed}", + "entries.unlinked.relink.title": "mi pana e ijo lon tawa ijo", "splash.open_library": "mi open e tomo", - "status.backup_success": "tomo sama li lon:", + "status.library_backup_success": "tomo sama li lon:", "status.enumerate_query": "seme: %{query}. sitelen: %{i}. nanpa: %{len(f)}", "status.number_results_found": "%{len(all_items)} mi jo e ijo \"%{query}\" (%{format_timespan(end_time - start_time)})", - "status.results_found": "jo", - "status.save_success": "tomo li awen li weka!", - "status.search_library_query": "mi alasa e", + "status.results": "jo", + "status.library_save_success": "tomo li awen li weka!", + "status.library_search_query": "mi alasa e", "tag.add": "o pana e poki", - "tag.add_search": "pana tawa alasa", - "tag.library": "poki tomo", + "tag.add_to_search": "pana tawa alasa", + "tag_manager.title": "poki tomo", "tag.new": "poki sin", "tag.search_for_tag": "o alasa e poki", "text_line_edit.unknown_event_type": "mi sona ala e ni: %{event}", diff --git a/tagstudio/resources/translations/tr.json b/tagstudio/resources/translations/tr.json index 92c149b7..c1d266f6 100644 --- a/tagstudio/resources/translations/tr.json +++ b/tagstudio/resources/translations/tr.json @@ -1,64 +1,64 @@ { - "add_field.add": "Alan Ekle", - "build_tags.add_parent_tags": "Üst Etiketler Ekle", - "build_tags.parent_tags": "Üst Etiketler", - "delete_unlinked.confirm": "%{len(self.lib.missing_files) tane kayıtları silmek istediğinden emin misin?", - "delete_unlinked.delete_entries": "Kayıtlar Siliniyor", - "delete_unlinked.delete_unlinked": "Kopuk Kayıtları Sil", - "delete_unlinked.deleting_number_entries": "%{x[0]+1}/{len(self.lib.missing_files)} Kopuk Kayıt Siliniyor", + "library.field.add": "Alan Ekle", + "tag.parent_tags.add": "Üst Etiketler Ekle", + "tag.parent_tags": "Üst Etiketler", + "entries.unlinked.delete.confirm": "%{len(self.lib.missing_files) tane kayıtları silmek istediğinden emin misin?", + "entries.unlinked.delete.deleting": "Kayıtlar Siliniyor", + "entries.unlinked.delete": "Kopuk Kayıtları Sil", + "entries.unlinked.delete.deleting_count": "%{x[0]+1}/{len(self.lib.missing_files)} Kopuk Kayıt Siliniyor", "dialog.open_create_library": "Kütüphane Aç/Oluştur", - "dialog.refresh_directories": "Dizinler Yenileniyor", + "library.refresh.title": "Dizinler Yenileniyor", "dialog.save_library": "Kütüphaneyi Kaydet", - "dialog.scan_directories": "Yeni Dosyalar için Dizinler Taranıyor...\nHazırlanıyor...", - "dialog.scan_directories.new_files": "Yeni Dosyalar için Dizinler Taranıyor...\n%{x + 1} File%{\"s\" if x + 1 != 1 else \"\"} Arandı, %{len(self.lib.files_not_in_library)} Yeni Dosya Bulundu", - "file_extension.add_extension": "Dosya Uzantısı Ekle", - "file_extension.list_mode": "Listeleme Modu:", + "library.refresh.scanning_preparing": "Yeni Dosyalar için Dizinler Taranıyor...\nHazırlanıyor...", + "library.refresh.scanning": "Yeni Dosyalar için Dizinler Taranıyor...\n%{x + 1} File%{\"s\" if x + 1 != 1 else \"\"} Arandı, %{len(self.lib.files_not_in_library)} Yeni Dosya Bulundu", + "ignore_list.add_extension": "Dosya Uzantısı Ekle", + "ignore_list.mode.label": "Listeleme Modu:", "file_opener.command_not_found": "Sistem PATH'inde %{command_name} komutu bulunamadı", - "file_opener.not_found": "Dosya bulunamadı:", + "file.not_found": "Dosya bulunamadı:", "file_opener.open_file": "Dosya açılıyor:}", - "fix_dupes.advice_label": "Yansıtma işleminden sonra, DupeGuru'yu kullanarak istenmeyen dosyaları silebilirsin. İşlem sonrasında, kopuk kayıtları silmek için TagStudio'nun Araçlar menüsünden \"Kopuk Kayıtları Düzelt\" özelliğini kullanabilirsin.", - "fix_dupes.fix_dupes": "Yinelenen Dosyaları Düzelt", - "fix_dupes.load_file": "DupeGuru Dosyasını Yükle", - "fix_dupes.mirror_description": "Kayıt verilerini bulunan her bir yinelemeye yansıtır, alanları kopyalamadan veya silmeden tüm verileri birleştirir. Bu operasyon herhangi bir dosya veya veri silmeyecek.", - "fix_dupes.mirror_entries": "Kayıtları Yansıt", - "fix_dupes.name_filter": "DupeGuru Dosyaları (*.dupeguru)", - "fix_dupes.no_file_match": "Bulunan Yinelenen Dosyalar: Yok", - "fix_dupes.no_file_selected": "Seçili DupeGuru Dosyası Yok", - "fix_dupes.number_file_match": "Bulunan Yinelenen Dosyalar: %{count}", - "fix_dupes.open_result_files": "DupeGuru Sonuçlar Dosyasını Aç", + "file.duplicates.dupeguru.advice": "Yansıtma işleminden sonra, DupeGuru'yu kullanarak istenmeyen dosyaları silebilirsin. İşlem sonrasında, kopuk kayıtları silmek için TagStudio'nun Araçlar menüsünden \"Kopuk Kayıtları Düzelt\" özelliğini kullanabilirsin.", + "file.duplicates.fix": "Yinelenen Dosyaları Düzelt", + "file.duplicates.dupeguru.load_file": "DupeGuru Dosyasını Yükle", + "file.duplicates.mirror.description": "Kayıt verilerini bulunan her bir yinelemeye yansıtır, alanları kopyalamadan veya silmeden tüm verileri birleştirir. Bu operasyon herhangi bir dosya veya veri silmeyecek.", + "file.duplicates.mirror_entries": "Kayıtları Yansıt", + "file.duplicates.dupeguru.file_extension": "DupeGuru Dosyaları (*.dupeguru)", + "file.duplicates.matches_uninitialized": "Bulunan Yinelenen Dosyalar: Yok", + "file.duplicates.dupeguru.no_file": "Seçili DupeGuru Dosyası Yok", + "file.duplicates.matches": "Bulunan Yinelenen Dosyalar: %{count}", + "file.duplicates.dupeguru.open_file": "DupeGuru Sonuçlar Dosyasını Aç", "fix_unlinked.delete_unlinked": "Kopuk Kayıtları Sil", - "fix_unlinked.description": "Kütüphanenizdeki her bir kayıt, dizinlerinizden bir tane dosya ile eşleştirilmektedir. Eğer bir kayıta bağlı dosya TagStudio dışında taşınır veya silinirse, o dosya artık kopuk olarak sayılır. Kopuk kayıtlar dizinlerinizde arama yapılırken otomatik olarak tekrar eşleştirilebilir, manuel olarak sizin tarafınızdan eşleştirilebilir veya isteğiniz üzere silinebilir.", - "fix_unlinked.duplicate_description": "Yinelenen kayıtlar, diskinizde aynı dosyaya işaret eden birden fazla kayıt olarak tanımlanmaktadır. Bu kayıtları birleştirdiğinizde, yinelenen tüm kayıtların içerisindeki etiketler ve metadata bilgisi tek bir tane kayıt üzerinde birleştirilecektir. Bu, \"yinelenen dosyalar\" ile karıştırılmamalıdır. Yinelenen dosyalar, TagStudio'nun dışında birden fazla kere bulunan dosyalarınızdır.", - "fix_unlinked.fix_unlinked": "Kopuk Kayıtları Düzelt", - "fix_unlinked.manual_relink": "Manuel Yeniden Eşleştirme", + "entries.unlinked.description": "Kütüphanenizdeki her bir kayıt, dizinlerinizden bir tane dosya ile eşleştirilmektedir. Eğer bir kayıta bağlı dosya TagStudio dışında taşınır veya silinirse, o dosya artık kopuk olarak sayılır. Kopuk kayıtlar dizinlerinizde arama yapılırken otomatik olarak tekrar eşleştirilebilir, manuel olarak sizin tarafınızdan eşleştirilebilir veya isteğiniz üzere silinebilir.", + "entries.duplicates.description": "Yinelenen kayıtlar, diskinizde aynı dosyaya işaret eden birden fazla kayıt olarak tanımlanmaktadır. Bu kayıtları birleştirdiğinizde, yinelenen tüm kayıtların içerisindeki etiketler ve metadata bilgisi tek bir tane kayıt üzerinde birleştirilecektir. Bu, \"yinelenen dosyalar\" ile karıştırılmamalıdır. Yinelenen dosyalar, TagStudio'nun dışında birden fazla kere bulunan dosyalarınızdır.", + "entries.unlinked.title": "Kopuk Kayıtları Düzelt", + "entries.unlinked.relink.manual": "Manuel Yeniden Eşleştirme", "fix_unlinked.merge_dupes": "Yinelenen Kayıtları Birleştir", - "fix_unlinked.refresh_dupes": "Yinelenen Kayıtları Yenile", - "fix_unlinked.scan_library.label": "Kütüphane Kopuk Kayıtlar için Taranıyor...", - "fix_unlinked.scan_library.title": "Kütüphane Taranıyor", - "fix_unlinked.search_and_relink": "Ara && Yeniden Eşleştir", + "entries.duplicate.refresh": "Yinelenen Kayıtları Yenile", + "entries.unlinked.scanning": "Kütüphane Kopuk Kayıtlar için Taranıyor...", + "library.scan_library.title": "Kütüphane Taranıyor", + "entries.unlinked.search_and_relink": "Ara && Yeniden Eşleştir", "folders_to_tags.description": "Klasörlerinin yapısına bakarak etiketler oluşturur ve bu etiketleri kayıtlarına uygular.\nAşağıdaki yapı, oluşturulacak tüm etiketleri ve o etiketlerin hangi kayıtlarına uygulanacağını göstermektedir.", - "folders_to_tags.folders_to_tags": "Klasörler Etiketlere Dönüştürülüyor", + "folders_to_tags.converting": "Klasörler Etiketlere Dönüştürülüyor", "folders_to_tags.title": "Klasörlerden Etiketler Oluştur", "generic.add": "Ekle", - "generic.aliases": "Takma Adlar", + "tag.aliases": "Takma Adlar", "generic.apply": "Uygula", "generic.cancel": "İptal", "generic.close_all": "Tümünü Kapat", - "generic.color": "Renk", + "tag.color": "Renk", "generic.delete": "Sil", "generic.done": "Tamamlandı", - "generic.exclude": "Hariç Tut", - "generic.file_extension": "Dosya Uzantıları", - "generic.include": "Dahil Et", - "generic.mirror": "Yansıt", - "generic.name": "İsim", - "generic.open_all": "Tümünü Aç", - "generic.open_file": "Dosya aç", - "generic.open_file_explorer": "Dosyayı Dosya Gezgininde Aç", - "generic.refresh_all": "Tümünü Yenile", - "generic.remove_field": "Alan Kaldır", - "generic.search_tags": "Etiketleri Araştır", - "generic.shorthand": "Kısaltma", + "ignore_list.mode.exclude": "Hariç Tut", + "ignore_list.title": "Dosya Uzantıları", + "ignore_list.mode.include": "Dahil Et", + "entries.mirror": "Yansıt", + "tag.name": "İsim", + "folders_to_tags.open_all": "Tümünü Aç", + "file.open_file": "Dosya aç", + "file.open_location.generic": "Dosyayı Dosya Gezgininde Aç", + "entries.unlinked.refresh_all": "Tümünü Yenile", + "library.field.remove": "Alan Kaldır", + "home.search_tags": "Etiketleri Araştır", + "tag.shorthand": "Kısaltma", "home.base_title": "TagStudio Alpha", "home.include_all_tags": "Ve (Tüm Etiketleri Dikkate Alır)", "home.include_any_tag": "Veya (Herhangi Bir Etiketi Dikkate Alır)", @@ -78,8 +78,8 @@ "library.composer": "Besteci", "library.content_tags": "İçerik Etiketleri", "library.date": "Tarih", - "library.date_created": "Oluşturulma Tarihi", - "library.date_modified": "Değiştirilme Tarihi", + "file.date_created": "Oluşturulma Tarihi", + "file.date_modified": "Değiştirilme Tarihi", "library.date_published": "Yayınlanma Tarihi", "library.date_released": "Çıkış Tarihi", "library.date_taken": "Alınma Tarihi", @@ -94,7 +94,7 @@ "library.publisher": "Yayımcı", "library.series": "Dizi", "library.source": "Kaynak", - "library.tags": "Etiketler", + "entries.tags": "Etiketler", "library.title": "Başlık", "library.url": "URL", "library.volume": "Ses Seviyesi", @@ -105,37 +105,37 @@ "menu.tools": "Araçlar", "menu.window": "Pencere", "merge.merge_dupe_entries": "Yinelenen Kayıtlar Birleştiriliyor", - "merge.window_title": "Yinelenen Kayıtlar Birleştiriliyor", - "mirror_entities.are_you_sure": "%{len(self.lib.dupe_files)} kaydı yansıtmak istediğinden emin misin?", - "mirror_entities.label": "1/%{count} Kayıt Yansıtılıyor...", - "mirror_entities.title": "Kayıtlar Yansıtılıyor", + "entries.duplicate.merge.label": "Yinelenen Kayıtlar Birleştiriliyor", + "entries.mirror.confirmation": "%{len(self.lib.dupe_files)} kaydı yansıtmak istediğinden emin misin?", + "entries.mirror.label": "1/%{count} Kayıt Yansıtılıyor...", + "entries.mirror.title": "Kayıtlar Yansıtılıyor", "open_library.library_creation_return_code": "Kütüphane Oluşturmaktan Dönen Kod:", "open_library.no_tagstudio_library_found": "'%{path}' konumunda herhangi bir TagStudio kütüphanesi bulunamadı. Yeni bir tane oluşturuluyor.", - "open_library.title": "Kütüphane", - "preview.dimensions": "Ölçüler", - "preview.recent": "Son Kütüphaneler", - "preview_panel.confirm_remove": "Bu \"%{self.lib.get_field_attr(field, \"name\")}\" alanını silmek istediğinden emin misin?", - "preview_panel.edit_name": "Düzenle", - "preview_panel.missing_location": "Lokasyon bulunamadı", - "preview_panel.mixed_data": "Karışık Veri", - "preview_panel.no_items_selected": "Hiçbir Öğe Seçilmedi", + "library.name": "Kütüphane", + "file.dimensions": "Ölçüler", + "generic.recent_libraries": "Son Kütüphaneler", + "library.field.confirm_remove": "Bu \"%{self.lib.get_field_attr(field, \"name\")}\" alanını silmek istediğinden emin misin?", + "generic.edit": "Düzenle", + "library.missing": "Lokasyon bulunamadı", + "library.field.mixed_data": "Karışık Veri", + "preview.no_selection": "Hiçbir Öğe Seçilmedi", "preview_panel.unknown_field_type": "Bilinmeyen Alan Türü", "preview_panel.update_widgets": "[KAYIT PANELİ] WIDGET'LARI GÜNCELLE (%{self.driver.selected})", - "progression.running_macros.new_entries": "Yeni Kayıtlar Üzerinde Makrolar Çalıştırılıyor", + "macros.running.dialog.title": "Yeni Kayıtlar Üzerinde Makrolar Çalıştırılıyor", "progression.running_macros.one_new_entry": "1/%{len(new_ids)} Tane Yeni Kayıtlarda Yapılandırılmış Makrolar Çalıştırılıyor", - "progression.running_macros.several_new_entry": "%{x + 1}/%{len(new_ids)} Tane Yeni Kayıt Üzerinde Yapılandırılmış Makrolar Çalıştırılıyor", - "relink_unlinked.attempt_relink": "%{x[0]+1}/%{len(self.lib.missing_files)} Kayıt Yeniden Eşleştirilmeye Çalışılıyor, %{self.fixed} Başarıyla Yeniden Eşleştirildi", - "relink_unlinked.title": "Kayıtlar Yeniden Eşleştiriliyor", + "macros.running.dialog.new_entries": "%{x + 1}/%{len(new_ids)} Tane Yeni Kayıt Üzerinde Yapılandırılmış Makrolar Çalıştırılıyor", + "entries.unlinked.relink.attempting": "%{x[0]+1}/%{len(self.lib.missing_files)} Kayıt Yeniden Eşleştirilmeye Çalışılıyor, %{self.fixed} Başarıyla Yeniden Eşleştirildi", + "entries.unlinked.relink.title": "Kayıtlar Yeniden Eşleştiriliyor", "splash.open_library": "Kütüphane Açılıyor", - "status.backup_success": "Kütüphane Yedeklemesi Şuraya Kaydedildi:", + "status.library_backup_success": "Kütüphane Yedeklemesi Şuraya Kaydedildi:", "status.enumerate_query": "Sorgu:%{query}, Kare: %{i}, Uzunluk: %{len(f)}", "status.number_results_found": "\"%{query}\" (%{format_timespan(end_time - start_time)}) Sorgusu için %{len(all_items)} Sonuç Bulundu", - "status.results_found": "Sonuçlar", - "status.save_success": "Kütüphane Kaydedildi ve Çıkış Yapıldı!", - "status.search_library_query": "Kütüphane Aranıyor", + "status.results": "Sonuçlar", + "status.library_save_success": "Kütüphane Kaydedildi ve Çıkış Yapıldı!", + "status.library_search_query": "Kütüphane Aranıyor", "tag.add": "Etiket Ekle", - "tag.add_search": "Aramaya Ekle", - "tag.library": "Kütüphane Etiketleri", + "tag.add_to_search": "Aramaya Ekle", + "tag_manager.title": "Kütüphane Etiketleri", "tag.new": "Yeni Etiket", "tag.search_for_tag": "Etiket Ara", "text_line_edit.unknown_event_type": "bilinmeyen event türü: %{event}", From b3f393e59b413ff6fb87d2b88c198a24a7808ac7 Mon Sep 17 00:00:00 2001 From: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> Date: Sat, 21 Dec 2024 14:53:56 -0800 Subject: [PATCH 3/9] style(translations): sort en.json keys --- tagstudio/resources/translations/en.json | 252 +++++++++++------------ 1 file changed, 126 insertions(+), 126 deletions(-) diff --git a/tagstudio/resources/translations/en.json b/tagstudio/resources/translations/en.json index 2e1c54b4..d344374e 100644 --- a/tagstudio/resources/translations/en.json +++ b/tagstudio/resources/translations/en.json @@ -1,144 +1,144 @@ { - "home.base_title": "TagStudio Alpha", - "home.main_window": "Main Window", - "home.include_all_tags": "And (Includes All Tags)", - "home.include_any_tag": "Or (Includes Any Tag)", - "home.thumbnail_size": "Thumbnail Size", - "home.search_entries": "Search Entries", - "home.search": "Search", - "menu.file": "File", - "menu.edit": "Edit", - "menu.tools": "Tools", - "menu.macros": "Macros", - "menu.window": "Window", - "menu.help": "Help", - "tag.new": "New Tag", - "tag.add": "Add Tag", - "tag_manager.title": "Library Tags", + "dialog.open_create_library": "Open/Create Library", + "dialog.save_library": "Save Library", "entries.duplicate.merge.label": "Merging Duplicate Entries", - "merge.merge_dupe_entries": "Merging Duplicate Entries", - "file.dimensions": "Dimensions", - "generic.recent_libraries": "Recent Libraries", - "library.title": "Title", - "library.author": "Author", - "library.Artist": "Artist", - "library.url": "URL", - "library.description": "Description", - "library.notes": "Notes", + "entries.duplicate.refresh": "Refresh Duplicate Entries", + "entries.duplicates.description": "Duplicate entries are defined as multiple entries which point to the same file on disk. Merging these will combine the tags and metadata from all duplicates into a single consolidated entry. These are not to be confused with \"duplicate files\", which are duplicates of your files themselves outside of TagStudio.", + "entries.mirror.confirmation": "Are you sure you want to mirror the following %{len(self.lib.dupe_files)} Entries?", + "entries.mirror.label": "Mirroring 1/%{count} Entries...", + "entries.mirror.title": "Mirroring Entries", + "entries.mirror": "Mirror", "entries.tags": "Tags", - "library.content_tags": "Content Tags", - "library.meta_tags": "Meta Tags", - "library.collation": "Collation", - "library.date": "Date", + "entries.unlinked.delete.confirm": "Are you sure you want to delete the following %{len(self.lib.missing_files)} entries?", + "entries.unlinked.delete.deleting_count": "Deleting %{x[0]+1}/{len(self.lib.missing_files)} Unlinked Entries", + "entries.unlinked.delete.deleting": "Deleting Entries", + "entries.unlinked.delete": "Delete Unlinked Entries", + "entries.unlinked.description": "Each library entry is linked to a file in one of your directories. If a file linked to an entry is moved or deleted outside of TagStudio, it is then considered unlinked. Unlinked entries may be automatically relinked via searching your directories, manually relinked by the user, or deleted if desired.", + "entries.unlinked.refresh_all": "Refresh All", + "entries.unlinked.relink.attempting": "Attempting to Relink %{x[0]+1}/%{len(self.lib.missing_files)} Entries, %{self.fixed} Successfully Relinked", + "entries.unlinked.relink.manual": "Manual Relink", + "entries.unlinked.relink.title": "Relinking Entries", + "entries.unlinked.scanning": "Scanning Library for Unlinked Entries...", + "entries.unlinked.search_and_relink": "Search && Relink", + "entries.unlinked.title": "Fix Unlinked Entries", + "file_opener.command_not_found": "Could not find %{command_name} on system PATH", + "file_opener.open_file": "Opening file:}", "file.date_created": "Date Created", "file.date_modified": "Date Modified", - "library.date_taken": "Date Taken", - "library.date_published": "Date Published", - "library.archived": "Date Archived", - "library.favorite": "Favorite", - "library.book": "Book", - "library.comic": "Comic", - "library.series": "Series", - "library.manga": "Manga", - "library.source": "Source", - "library.date_uploaded": "Date Uploaded", - "library.date_released": "Date Released", - "library.volume": "Volume", - "library.anthology": "Anthology", - "library.magazine": "Magazine", - "library.publisher": "Publisher", - "library.guest_artist": "Guest Artist", - "library.composer": "Composer", - "library.comments": "Comments", - "open_library.no_tagstudio_library_found": "No existing TagStudio library found at '%{path}'. Creating one.", - "open_library.library_creation_return_code": "Library Creation Return Code:", - "library.name": "Library", - "dialog.open_create_library": "Open/Create Library", - "splash.open_library": "Opening Library", - "status.library_save_success": "Library Saved and Closed!", - "status.library_backup_success": "Library Backup Saved at:", - "status.library_search_query": "Searching Library for", - "status.enumerate_query": "Query:%{query}, Frame: %{i}, Length: %{len(f)}", - "status.number_results_found": "%{len(all_items)} Results Found for \"%{query}\" (%{format_timespan(end_time - start_time)})", - "status.results": "Results", - "dialog.save_library": "Save Library", - "library.refresh.title": "Refreshing Directories", - "library.refresh.scanning_preparing": "Scanning Directories for New Files...\nPreparing...", - "library.refresh.scanning": "Scanning Directories for New Files...\n%{x + 1} File%{\"s\" if x + 1 != 1 else \"\"} Searched, %{len(self.lib.files_not_in_library)} New Files Found", - "tooltip.open_library": "Ctrl+O", - "tooltip.save_library": "Ctrl+S", - "macros.running.dialog.title": "Running Macros on New Entries", - "progression.running_macros.one_new_entry": "Running Configured Macros on 1/%{len(new_ids)} New Entries", - "macros.running.dialog.new_entries": "Running Configured Macros on %{x + 1}/%{len(new_ids)} New Entries", - "file_opener.open_file": "Opening file:}", - "file.not_found": "File not found:", - "file_opener.command_not_found": "Could not find %{command_name} on system PATH", - "library.field.add": "Add Field", - "library.field.remove": "Remove Field", - "ignore_list.title": "File Extensions", - "file.open_file": "Open file", - "file.open_location.generic": "Open file in explorer", - "generic.cancel": "Cancel", - "generic.add": "Add", - "tag.name": "Name", - "tag.shorthand": "Shorthand", - "tag.aliases": "Aliases", - "tag.color": "Color", - "generic.delete": "Delete", - "ignore_list.mode.exclude": "Exclude", - "ignore_list.mode.include": "Include", - "generic.done": "Done", - "folders_to_tags.open_all": "Open All", - "generic.close_all": "Close All", - "entries.unlinked.refresh_all": "Refresh All", - "generic.apply": "Apply", - "entries.mirror": "Mirror", - "home.search_tags": "Search Tags", - "tag.parent_tags": "Parent Tags", - "tag.parent_tags.add": "Add Parent Tags", - "entries.unlinked.delete": "Delete Unlinked Entries", - "entries.unlinked.delete.confirm": "Are you sure you want to delete the following %{len(self.lib.missing_files)} entries?", - "entries.unlinked.delete.deleting": "Deleting Entries", - "entries.unlinked.delete.deleting_count": "Deleting %{x[0]+1}/{len(self.lib.missing_files)} Unlinked Entries", - "ignore_list.add_extension": "Add Extension", - "ignore_list.mode.label": "List Mode:", - "file.duplicates.fix": "Fix Duplicate Files", - "file.duplicates.dupeguru.no_file": "No DupeGuru File Selected", - "file.duplicates.dupeguru.load_file": "Load DupeGuru File", - "file.duplicates.mirror_entries": "Mirror Entries", - "file.duplicates.mirror.description": "Mirror the Entry data across each duplicate match set, combining all data while not removing or duplicating fields. This operation will not delete any files or data.", + "file.dimensions": "Dimensions", "file.duplicates.dupeguru.advice": "After mirroring, you're free to use DupeGuru to delete the unwanted files. Afterwards, use TagStudio's \"Fix Unlinked Entries\" feature in the Tools menu in order to delete the unlinked Entries.", - "file.duplicates.dupeguru.open_file": "Open DupeGuru Results File", "file.duplicates.dupeguru.file_extension": "DupeGuru Files (*.dupeguru)", + "file.duplicates.dupeguru.load_file": "Load DupeGuru File", + "file.duplicates.dupeguru.no_file": "No DupeGuru File Selected", + "file.duplicates.dupeguru.open_file": "Open DupeGuru Results File", + "file.duplicates.fix": "Fix Duplicate Files", "file.duplicates.matches_uninitialized": "Duplicate File Matches: N/A", "file.duplicates.matches": "Duplicate File Matches: %{count}", - "entries.unlinked.title": "Fix Unlinked Entries", - "entries.unlinked.description": "Each library entry is linked to a file in one of your directories. If a file linked to an entry is moved or deleted outside of TagStudio, it is then considered unlinked. Unlinked entries may be automatically relinked via searching your directories, manually relinked by the user, or deleted if desired.", - "entries.duplicates.description": "Duplicate entries are defined as multiple entries which point to the same file on disk. Merging these will combine the tags and metadata from all duplicates into a single consolidated entry. These are not to be confused with \"duplicate files\", which are duplicates of your files themselves outside of TagStudio.", - "entries.unlinked.search_and_relink": "Search && Relink", - "entries.duplicate.refresh": "Refresh Duplicate Entries", - "fix_unlinked.merge_dupes": "Merge Duplicate Entries", - "entries.unlinked.relink.manual": "Manual Relink", + "file.duplicates.mirror_entries": "Mirror Entries", + "file.duplicates.mirror.description": "Mirror the Entry data across each duplicate match set, combining all data while not removing or duplicating fields. This operation will not delete any files or data.", + "file.not_found": "File not found:", + "file.open_file": "Open file", + "file.open_location.generic": "Open file in explorer", "fix_unlinked.delete_unlinked": "Delete Unlinked Entries", - "library.scan_library.title": "Scanning Library", - "entries.unlinked.scanning": "Scanning Library for Unlinked Entries...", + "fix_unlinked.merge_dupes": "Merge Duplicate Entries", "folders_to_tags.converting": "Converting folders to Tags", - "folders_to_tags.title": "Create Tags From Folders", "folders_to_tags.description": "Creates tags based on your folder structure and applies them to your entries.\n The structure below shows all the tags that will be created and what entries they will be applied to.", - "entries.mirror.confirmation": "Are you sure you want to mirror the following %{len(self.lib.dupe_files)} Entries?", - "entries.mirror.title": "Mirroring Entries", - "entries.mirror.label": "Mirroring 1/%{count} Entries...", - "entries.unlinked.relink.title": "Relinking Entries", - "entries.unlinked.relink.attempting": "Attempting to Relink %{x[0]+1}/%{len(self.lib.missing_files)} Entries, %{self.fixed} Successfully Relinked", + "folders_to_tags.open_all": "Open All", + "folders_to_tags.title": "Create Tags From Folders", + "generic.add": "Add", + "generic.apply": "Apply", + "generic.cancel": "Cancel", + "generic.close_all": "Close All", + "generic.delete": "Delete", + "generic.done": "Done", + "generic.edit": "Edit", + "generic.recent_libraries": "Recent Libraries", + "home.base_title": "TagStudio Alpha", + "home.include_all_tags": "And (Includes All Tags)", + "home.include_any_tag": "Or (Includes Any Tag)", + "home.main_window": "Main Window", + "home.search_entries": "Search Entries", + "home.search_tags": "Search Tags", + "home.search": "Search", + "home.thumbnail_size": "Thumbnail Size", + "ignore_list.add_extension": "Add Extension", + "ignore_list.mode.exclude": "Exclude", + "ignore_list.mode.include": "Include", + "ignore_list.mode.label": "List Mode:", + "ignore_list.title": "File Extensions", "landing.open_button": "Open/Create Library %{open_shortcut_text}", - "library.missing": "Location is missing", - "preview_panel.update_widgets": "[ENTRY PANEL] UPDATE WIDGETS (%{self.driver.selected})", - "preview.no_selection": "No Items Selected", + "library.anthology": "Anthology", + "library.archived": "Date Archived", + "library.Artist": "Artist", + "library.author": "Author", + "library.book": "Book", + "library.collation": "Collation", + "library.comic": "Comic", + "library.comments": "Comments", + "library.composer": "Composer", + "library.content_tags": "Content Tags", + "library.date_published": "Date Published", + "library.date_released": "Date Released", + "library.date_taken": "Date Taken", + "library.date_uploaded": "Date Uploaded", + "library.date": "Date", + "library.description": "Description", + "library.favorite": "Favorite", + "library.field.add": "Add Field", "library.field.confirm_remove": "Are you sure you want to remove this \"%{self.lib.get_field_attr(field, \"name\")}\" field?", "library.field.mixed_data": "Mixed Data", - "generic.edit": "Edit", + "library.field.remove": "Remove Field", + "library.guest_artist": "Guest Artist", + "library.magazine": "Magazine", + "library.manga": "Manga", + "library.meta_tags": "Meta Tags", + "library.missing": "Location is missing", + "library.name": "Library", + "library.notes": "Notes", + "library.publisher": "Publisher", + "library.refresh.scanning_preparing": "Scanning Directories for New Files...\nPreparing...", + "library.refresh.scanning": "Scanning Directories for New Files...\n%{x + 1} File%{\"s\" if x + 1 != 1 else \"\"} Searched, %{len(self.lib.files_not_in_library)} New Files Found", + "library.refresh.title": "Refreshing Directories", + "library.scan_library.title": "Scanning Library", + "library.series": "Series", + "library.source": "Source", + "library.title": "Title", + "library.url": "URL", + "library.volume": "Volume", + "macros.running.dialog.new_entries": "Running Configured Macros on %{x + 1}/%{len(new_ids)} New Entries", + "macros.running.dialog.title": "Running Macros on New Entries", + "menu.edit": "Edit", + "menu.file": "File", + "menu.help": "Help", + "menu.macros": "Macros", + "menu.tools": "Tools", + "menu.window": "Window", + "merge.merge_dupe_entries": "Merging Duplicate Entries", + "open_library.library_creation_return_code": "Library Creation Return Code:", + "open_library.no_tagstudio_library_found": "No existing TagStudio library found at '%{path}'. Creating one.", "preview_panel.unknown_field_type": "Unknown Field Type", - "tag.search_for_tag": "Search for Tag", + "preview_panel.update_widgets": "[ENTRY PANEL] UPDATE WIDGETS (%{self.driver.selected})", + "preview.no_selection": "No Items Selected", + "progression.running_macros.one_new_entry": "Running Configured Macros on 1/%{len(new_ids)} New Entries", + "splash.open_library": "Opening Library", + "status.enumerate_query": "Query:%{query}, Frame: %{i}, Length: %{len(f)}", + "status.library_backup_success": "Library Backup Saved at:", + "status.library_save_success": "Library Saved and Closed!", + "status.library_search_query": "Searching Library for", + "status.number_results_found": "%{len(all_items)} Results Found for \"%{query}\" (%{format_timespan(end_time - start_time)})", + "status.results": "Results", + "tag_manager.title": "Library Tags", "tag.add_to_search": "Add to Search", - "text_line_edit.unknown_event_type": "unknown event type: %{event}" + "tag.add": "Add Tag", + "tag.aliases": "Aliases", + "tag.color": "Color", + "tag.name": "Name", + "tag.new": "New Tag", + "tag.parent_tags.add": "Add Parent Tags", + "tag.parent_tags": "Parent Tags", + "tag.search_for_tag": "Search for Tag", + "tag.shorthand": "Shorthand", + "text_line_edit.unknown_event_type": "unknown event type: %{event}", + "tooltip.open_library": "Ctrl+O", + "tooltip.save_library": "Ctrl+S" } From 45b45f5846c0de6654e5383d3472580f22f75b8e Mon Sep 17 00:00:00 2001 From: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> Date: Sat, 21 Dec 2024 15:01:29 -0800 Subject: [PATCH 4/9] translations: remove unused keys, add missing ones --- tagstudio/resources/translations/en.json | 104 ++++++++++------------- 1 file changed, 46 insertions(+), 58 deletions(-) diff --git a/tagstudio/resources/translations/en.json b/tagstudio/resources/translations/en.json index d344374e..32cae501 100644 --- a/tagstudio/resources/translations/en.json +++ b/tagstudio/resources/translations/en.json @@ -1,7 +1,9 @@ { - "dialog.open_create_library": "Open/Create Library", - "dialog.save_library": "Save Library", + "app.git": "Git Commit", + "app.pre_release": "Pre-Release", + "edit.tag_manager": "Manage Tags", "entries.duplicate.merge.label": "Merging Duplicate Entries", + "entries.duplicate.merge": "Merge Duplicate Entries", "entries.duplicate.refresh": "Refresh Duplicate Entries", "entries.duplicates.description": "Duplicate entries are defined as multiple entries which point to the same file on disk. Merging these will combine the tags and metadata from all duplicates into a single consolidated entry. These are not to be confused with \"duplicate files\", which are duplicates of your files themselves outside of TagStudio.", "entries.mirror.confirmation": "Are you sure you want to mirror the following %{len(self.lib.dupe_files)} Entries?", @@ -13,7 +15,7 @@ "entries.unlinked.delete.deleting_count": "Deleting %{x[0]+1}/{len(self.lib.missing_files)} Unlinked Entries", "entries.unlinked.delete.deleting": "Deleting Entries", "entries.unlinked.delete": "Delete Unlinked Entries", - "entries.unlinked.description": "Each library entry is linked to a file in one of your directories. If a file linked to an entry is moved or deleted outside of TagStudio, it is then considered unlinked. Unlinked entries may be automatically relinked via searching your directories, manually relinked by the user, or deleted if desired.", + "entries.unlinked.description": "Each library entry is linked to a file in one of your directories. If a file linked to an entry is moved or deleted outside of TagStudio, it is then considered unlinked. Unlinked entries may be automatically relinked via searching your directories or deleted if desired.", "entries.unlinked.refresh_all": "Refresh All", "entries.unlinked.relink.attempting": "Attempting to Relink %{x[0]+1}/%{len(self.lib.missing_files)} Entries, %{self.fixed} Successfully Relinked", "entries.unlinked.relink.manual": "Manual Relink", @@ -21,8 +23,10 @@ "entries.unlinked.scanning": "Scanning Library for Unlinked Entries...", "entries.unlinked.search_and_relink": "Search && Relink", "entries.unlinked.title": "Fix Unlinked Entries", - "file_opener.command_not_found": "Could not find %{command_name} on system PATH", - "file_opener.open_file": "Opening file:}", + "field.copy": "Copy Field", + "field.edit": "Edit Field", + "field.paste": "Paste Field", + "file.date_added": "Date Added", "file.date_created": "Date Created", "file.date_modified": "Date Modified", "file.dimensions": "Dimensions", @@ -36,11 +40,14 @@ "file.duplicates.matches": "Duplicate File Matches: %{count}", "file.duplicates.mirror_entries": "Mirror Entries", "file.duplicates.mirror.description": "Mirror the Entry data across each duplicate match set, combining all data while not removing or duplicating fields. This operation will not delete any files or data.", - "file.not_found": "File not found:", + "file.duration": "Length", + "file.not_found": "File Not Found", + "file.open_file_with": "Open file with", "file.open_file": "Open file", - "file.open_location.generic": "Open file in explorer", - "fix_unlinked.delete_unlinked": "Delete Unlinked Entries", - "fix_unlinked.merge_dupes": "Merge Duplicate Entries", + "file.open_location.generic": "Show file in explorer", + "file.open_location.mac": "Reveal in Finder", + "file.open_location.windows": "Show in File Explorer", + "folders_to_tags.close_all": "Close All", "folders_to_tags.converting": "Converting folders to Tags", "folders_to_tags.description": "Creates tags based on your folder structure and applies them to your entries.\n The structure below shows all the tags that will be created and what entries they will be applied to.", "folders_to_tags.open_all": "Open All", @@ -48,84 +55,62 @@ "generic.add": "Add", "generic.apply": "Apply", "generic.cancel": "Cancel", - "generic.close_all": "Close All", + "generic.copy": "Copy", + "generic.cut": "Cut", "generic.delete": "Delete", "generic.done": "Done", "generic.edit": "Edit", + "generic.navigation.back": "Back", + "generic.navigation.next": "Next", + "generic.paste": "Paste", "generic.recent_libraries": "Recent Libraries", - "home.base_title": "TagStudio Alpha", - "home.include_all_tags": "And (Includes All Tags)", - "home.include_any_tag": "Or (Includes Any Tag)", - "home.main_window": "Main Window", + "help.visit_github": "Visit GitHub Repository", "home.search_entries": "Search Entries", + "home.search_library": "Search Library", "home.search_tags": "Search Tags", "home.search": "Search", "home.thumbnail_size": "Thumbnail Size", "ignore_list.add_extension": "Add Extension", "ignore_list.mode.exclude": "Exclude", "ignore_list.mode.include": "Include", - "ignore_list.mode.label": "List Mode:", + "ignore_list.mode.label": "List Mode", "ignore_list.title": "File Extensions", - "landing.open_button": "Open/Create Library %{open_shortcut_text}", - "library.anthology": "Anthology", - "library.archived": "Date Archived", - "library.Artist": "Artist", - "library.author": "Author", - "library.book": "Book", - "library.collation": "Collation", - "library.comic": "Comic", - "library.comments": "Comments", - "library.composer": "Composer", - "library.content_tags": "Content Tags", - "library.date_published": "Date Published", - "library.date_released": "Date Released", - "library.date_taken": "Date Taken", - "library.date_uploaded": "Date Uploaded", - "library.date": "Date", - "library.description": "Description", - "library.favorite": "Favorite", "library.field.add": "Add Field", "library.field.confirm_remove": "Are you sure you want to remove this \"%{self.lib.get_field_attr(field, \"name\")}\" field?", "library.field.mixed_data": "Mixed Data", "library.field.remove": "Remove Field", - "library.guest_artist": "Guest Artist", - "library.magazine": "Magazine", - "library.manga": "Manga", - "library.meta_tags": "Meta Tags", - "library.missing": "Location is missing", + "library.missing": "Library Location is Missing", "library.name": "Library", - "library.notes": "Notes", - "library.publisher": "Publisher", "library.refresh.scanning_preparing": "Scanning Directories for New Files...\nPreparing...", "library.refresh.scanning": "Scanning Directories for New Files...\n%{x + 1} File%{\"s\" if x + 1 != 1 else \"\"} Searched, %{len(self.lib.files_not_in_library)} New Files Found", "library.refresh.title": "Refreshing Directories", "library.scan_library.title": "Scanning Library", - "library.series": "Series", - "library.source": "Source", - "library.title": "Title", - "library.url": "URL", - "library.volume": "Volume", "macros.running.dialog.new_entries": "Running Configured Macros on %{x + 1}/%{len(new_ids)} New Entries", "macros.running.dialog.title": "Running Macros on New Entries", + "menu.edit.ignore_list": "Ignore Files and Folders", "menu.edit": "Edit", + "menu.file.new_library": "New Library", + "menu.file.open_create_library": "Open/Create Library", + "menu.file.open_library": "Open Library", + "menu.file.save_library": "Save Library", "menu.file": "File", "menu.help": "Help", "menu.macros": "Macros", + "menu.select": "Select", "menu.tools": "Tools", + "menu.view": "View", "menu.window": "Window", - "merge.merge_dupe_entries": "Merging Duplicate Entries", - "open_library.library_creation_return_code": "Library Creation Return Code:", - "open_library.no_tagstudio_library_found": "No existing TagStudio library found at '%{path}'. Creating one.", - "preview_panel.unknown_field_type": "Unknown Field Type", - "preview_panel.update_widgets": "[ENTRY PANEL] UPDATE WIDGETS (%{self.driver.selected})", "preview.no_selection": "No Items Selected", - "progression.running_macros.one_new_entry": "Running Configured Macros on 1/%{len(new_ids)} New Entries", - "splash.open_library": "Opening Library", - "status.enumerate_query": "Query:%{query}, Frame: %{i}, Length: %{len(f)}", + "select.all": "Select All", + "select.clear": "Clear Selection", + "settings.open_library_on_start": "Open Library on Start", + "settings.show_filenames_in_grid": "Show Filenames in Grid", + "settings.show_recent_libraries": "Show Recent Libraries", + "splash.opening_library": "Opening Library", "status.library_backup_success": "Library Backup Saved at:", "status.library_save_success": "Library Saved and Closed!", "status.library_search_query": "Searching Library for", - "status.number_results_found": "%{len(all_items)} Results Found for \"%{query}\" (%{format_timespan(end_time - start_time)})", + "status.results_found": "{results.total_count} Results Found", "status.results": "Results", "tag_manager.title": "Library Tags", "tag.add_to_search": "Add to Search", @@ -134,11 +119,14 @@ "tag.color": "Color", "tag.name": "Name", "tag.new": "New Tag", - "tag.parent_tags.add": "Add Parent Tags", + "tag.parent_tags.add": "Add Parent Tag(s)", + "tag.parent_tags.description": "This tag can be treated as a substitute for any of these Parent Tags in searches.", "tag.parent_tags": "Parent Tags", "tag.search_for_tag": "Search for Tag", "tag.shorthand": "Shorthand", - "text_line_edit.unknown_event_type": "unknown event type: %{event}", - "tooltip.open_library": "Ctrl+O", - "tooltip.save_library": "Ctrl+S" + "view.size.0": "Mini", + "view.size.1": "Small", + "view.size.2": "Medium", + "view.size.3": "Large", + "view.size.4": "Extra Large" } From b209abb1a423c78c59986dad8a3217cb92cc6c00 Mon Sep 17 00:00:00 2001 From: "Weblate (bot)" Date: Sun, 22 Dec 2024 02:29:49 +0100 Subject: [PATCH 5/9] translations: propagate en.json key changes (#654) * Update translation files Updated by "Cleanup translation files" add-on in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ Translation: TagStudio/Strings * Update translation files Updated by "Cleanup translation files" add-on in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ Translation: TagStudio/Strings * Update translation files Updated by "Cleanup translation files" add-on in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ Translation: TagStudio/Strings * Update translation files Updated by "Cleanup translation files" add-on in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ Translation: TagStudio/Strings * Update translation files Updated by "Cleanup translation files" add-on in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ Translation: TagStudio/Strings * Update translation files Updated by "Cleanup translation files" add-on in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ Translation: TagStudio/Strings * Update translation files Updated by "Cleanup translation files" add-on in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ Translation: TagStudio/Strings * Update translation files Updated by "Cleanup translation files" add-on in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ Translation: TagStudio/Strings * Update translation files Updated by "Cleanup translation files" add-on in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ Translation: TagStudio/Strings * Update translation files Updated by "Cleanup translation files" add-on in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ Translation: TagStudio/Strings * Update translation files Updated by "Cleanup translation files" add-on in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ Translation: TagStudio/Strings * Update translation files Updated by "Cleanup translation files" add-on in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ Translation: TagStudio/Strings * Update translation files Updated by "Cleanup translation files" add-on in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ Translation: TagStudio/Strings * Update translation files Updated by "Cleanup translation files" add-on in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ Translation: TagStudio/Strings * Update translation files Updated by "Cleanup translation files" add-on in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ Translation: TagStudio/Strings --- tagstudio/resources/translations/da.json | 7 +- tagstudio/resources/translations/de.json | 190 +++++++------------- tagstudio/resources/translations/es.json | 190 +++++++------------- tagstudio/resources/translations/fil.json | 136 +++++--------- tagstudio/resources/translations/fr.json | 190 +++++++------------- tagstudio/resources/translations/hu.json | 190 +++++++------------- tagstudio/resources/translations/it.json | 14 +- tagstudio/resources/translations/nb_NO.json | 105 ++++------- tagstudio/resources/translations/pl.json | 182 +++++++------------ tagstudio/resources/translations/pt_BR.json | 190 +++++++------------- tagstudio/resources/translations/ru.json | 190 +++++++------------- tagstudio/resources/translations/sv.json | 145 ++++++--------- tagstudio/resources/translations/ta.json | 190 +++++++------------- tagstudio/resources/translations/tok.json | 190 +++++++------------- tagstudio/resources/translations/tr.json | 190 +++++++------------- 15 files changed, 825 insertions(+), 1474 deletions(-) diff --git a/tagstudio/resources/translations/da.json b/tagstudio/resources/translations/da.json index fc59c8d6..0967ef42 100644 --- a/tagstudio/resources/translations/da.json +++ b/tagstudio/resources/translations/da.json @@ -1,6 +1 @@ -{ - "home.base_title": "TagStudio Alfa", - "home.include_all_tags": "Og (inkluderer alle tags)", - "home.include_any_tag": "Og (inkluderer envher tag)", - "home.main_window": "Hovedvindue" -} +{} diff --git a/tagstudio/resources/translations/de.json b/tagstudio/resources/translations/de.json index 3bf25ab1..275f826c 100644 --- a/tagstudio/resources/translations/de.json +++ b/tagstudio/resources/translations/de.json @@ -1,144 +1,92 @@ { - "library.field.add": "Feld hinzufügen", - "tag.parent_tags.add": "Übergeordnete Tags hinzufügen", - "tag.parent_tags": "Übergeordnete Tags", + "entries.duplicate.merge.label": "Zusammenführen von doppelten Einträgen", + "entries.duplicate.refresh": "Doppelte Einträge aktualisieren", + "entries.duplicates.description": "Doppelte Einträge sind definiert als mehrere Einträge, die auf dieselbe Datei auf der Festplatte verweisen. Durch das Zusammenführen dieser Einträge werden die Tags und Metadaten aller Duplikate zu einem einzigen konsolidierten Eintrag zusammengefasst. Diese sind nicht zu verwechseln mit „doppelten Dateien“, die Duplikate Ihrer Dateien selbst außerhalb von TagStudio sind.", + "entries.mirror": "Spiegel", + "entries.mirror.confirmation": "Sind Sie sich sicher, dass Sie die folgenden %{len(self.lib.dupe_files)} Einträge kopieren wollen?", + "entries.mirror.label": "Kopiere 1/%{count} Einträge...", + "entries.mirror.title": "Einträge werden kopiert", + "entries.tags": "Tags", + "entries.unlinked.delete": "Unverknüpfte Einträge löschen", "entries.unlinked.delete.confirm": "Sind Sie sicher, dass Sie die folgenden %{len(self.lib.missing_files)}-Einträge löschen wollen?", "entries.unlinked.delete.deleting": "Einträge am Löschen", - "entries.unlinked.delete": "Unverknüpfte Einträge löschen", "entries.unlinked.delete.deleting_count": "Löschen von %{x[0]+1}/{len(self.lib.missing_files)} Unverknüpften Einträgen", - "dialog.open_create_library": "Bibliothek öffnen/erstellen", - "library.refresh.title": "Verzeichnisse werden aktualisiert", - "dialog.save_library": "Bibliothek speichern", - "library.refresh.scanning_preparing": "Überprüfe Verzeichnisse auf neue Dateien...\nBereite vor...", - "library.refresh.scanning": "Durchsuche Verzeichnisse nach neuen Dateien...\n%{x + 1} Datei%{„en“ if x + 1 != 1 else „“} durchsucht, %{len(self.lib.files_not_in_library)} Neue Datei%{„en“ if len(self.lib.files_not_in_library) != 1 else „“} gefunden", - "ignore_list.add_extension": "Erweiterung hinzufügen", - "ignore_list.mode.label": "Listen Modus:", - "file_opener.command_not_found": "Konnte %{command_name} nicht im System PATH finden", - "file.not_found": "Datei nicht gefunden:", - "file_opener.open_file": "Datei öffnen:}", - "file.duplicates.dupeguru.advice": "Nach dem Kopiervorgang kann DupeGuru benutzt werden und ungewollte Dateien zu löschen. Anschließend kann TagStudios \"Unverknüpfte Einträge reparieren\" Funktion im \"Werkzeuge\" Menü benutzt werden um die nicht verknüpften Einträge zu löschen.", - "file.duplicates.fix": "Duplizierte Dateien korrigieren", - "file.duplicates.dupeguru.load_file": "DupeGuru-Datei laden", - "file.duplicates.mirror.description": "Kopiert die Eintragsdaten in jeder Duplikatsmenge, wobei alle Daten kombiniert werden ohne Felder zu entfernen oder zu duplizieren. Diese Operation wird keine Dateien oder Daten löschen.", - "file.duplicates.mirror_entries": "Einträge kopieren", - "file.duplicates.dupeguru.file_extension": "DupeGuru-Dateien (*.dupeguru)", - "file.duplicates.matches_uninitialized": "Übereinstimmungen mit doppelten Dateien: N/A", - "file.duplicates.dupeguru.no_file": "Keine DupeGuru-Datei ausgewählt", - "file.duplicates.matches": "Übereinstimmungen mit doppelten Dateien: %{count}", - "file.duplicates.dupeguru.open_file": "DupeGuru Ergebnisdatei öffnen", - "fix_unlinked.delete_unlinked": "Nicht verknüpfte Einträge löschen", "entries.unlinked.description": "Jeder Bibliothekseintrag ist mit einer Datei in einem Ihrer Verzeichnisse verknüpft. Wenn eine Datei, die mit einem Eintrag verknüpft ist, ausserhalb von TagStudio verschoben oder gelöscht wird, gilt sie als nicht verknüpft. Nicht verknüpfte Einträge können durch Durchsuchen Ihrer Verzeichnisse automatisch neu verknüpft, vom Benutzer manuell neu verknüpft oder auf Wunsch gelöscht werden.", - "entries.duplicates.description": "Doppelte Einträge sind definiert als mehrere Einträge, die auf dieselbe Datei auf der Festplatte verweisen. Durch das Zusammenführen dieser Einträge werden die Tags und Metadaten aller Duplikate zu einem einzigen konsolidierten Eintrag zusammengefasst. Diese sind nicht zu verwechseln mit „doppelten Dateien“, die Duplikate Ihrer Dateien selbst außerhalb von TagStudio sind.", - "entries.unlinked.title": "Unverknüpfte Einträge reparieren", - "entries.unlinked.relink.manual": "Manuelle Neuverknüpfung", - "fix_unlinked.merge_dupes": "Doppelte Einträge zusammenführen", - "entries.duplicate.refresh": "Doppelte Einträge aktualisieren", - "entries.unlinked.scanning": "Bibliothek nach nicht verknüpften Einträgen durchsuchen...", - "library.scan_library.title": "Bibliothek wird scannen", - "entries.unlinked.search_and_relink": "Suche && Neuverbindung", - "folders_to_tags.description": "Erstellt Tags basierend auf der Verzeichnisstruktur und wendet sie auf die Einträge an.\nDer folgende Verzeichnisbaum zeigt welche Tags erstellt werden würden und auf welche Einträge sie angewendet werden würden.", - "folders_to_tags.converting": "Wandele Ordner zu Tags um", - "folders_to_tags.title": "Aus Verzeichnissen Tags erstellen", - "generic.add": "hinzufügen", - "tag.aliases": "Aliase", - "generic.apply": "anwenden", - "generic.cancel": "Abbrechen", - "generic.close_all": "Alle schliessen", - "tag.color": "Farbe", - "generic.delete": "Löschen", - "generic.done": "Fertig", - "ignore_list.mode.exclude": "ausschliessen", - "ignore_list.title": "Dateierweiterungen", - "ignore_list.mode.include": "Inklusive", - "entries.mirror": "Spiegel", - "tag.name": "Name", - "folders_to_tags.open_all": "Alle öffnen", - "file.open_file": "Datei öffnen", - "file.open_location.generic": "Datei im Explorer öffnen", "entries.unlinked.refresh_all": "Alle aktualisieren", - "library.field.remove": "Feld entfernen", - "home.search_tags": "Tags suchen", - "tag.shorthand": "Kürzel", - "home.base_title": "TagStudio Alpha", - "home.include_all_tags": "Und (enthält alle Tags)", - "home.include_any_tag": "Oder (enthält alle Tags)", - "home.main_window": "Hauptfenster", - "home.search": "Suchen", - "home.search_entries": "Nach Einträgen suchen", - "home.thumbnail_size": "Grösse des Vorschaubildes", - "landing.open_button": "Bibliothek öffnen/erstellen %{open_shortcut_text}", - "library.Artist": "Künstler", - "library.anthology": "Anthologie", - "library.archived": "Archivierungsdatum", - "library.author": "Autor", - "library.book": "Buch", - "library.collation": "Zusammenstellung", - "library.comic": "Comicheft", - "library.comments": "Kommentare", - "library.composer": "Komponist", - "library.content_tags": "Inhalt Tags", - "library.date": "Datum", + "entries.unlinked.relink.attempting": "Versuche %{x[0]+1}/%{len(self.lib.missing_files)} Einträge wieder zu verknüpfen - %{self.fixed} bereits erfolgreich wieder verknüpft", + "entries.unlinked.relink.manual": "Manuelle Neuverknüpfung", + "entries.unlinked.relink.title": "Einträge werden neuverknüpft", + "entries.unlinked.scanning": "Bibliothek nach nicht verknüpften Einträgen durchsuchen...", + "entries.unlinked.search_and_relink": "Suche && Neuverbindung", + "entries.unlinked.title": "Unverknüpfte Einträge reparieren", "file.date_created": "Erstellungsdatum", "file.date_modified": "Datum geändert", - "library.date_published": "Datum des Publizierten", - "library.date_released": "Veröffentlichungsdatum", - "library.date_taken": "Aufnahmedatum", - "library.date_uploaded": "Hochladedatum", - "library.description": "Beschreibung", - "library.favorite": "Favoriten", - "library.guest_artist": "Gastkünstler", - "library.magazine": "Zeitschrift", - "library.manga": "Manga", - "library.meta_tags": "Meta Tags", - "library.notes": "Notizen", - "library.publisher": "Herausgeber", - "library.series": "Serie", - "library.source": "Quelle", - "entries.tags": "Tags", - "library.title": "Titel", - "library.url": "URL", - "library.volume": "Band", + "file.dimensions": "Abmessungen", + "file.duplicates.dupeguru.advice": "Nach dem Kopiervorgang kann DupeGuru benutzt werden und ungewollte Dateien zu löschen. Anschließend kann TagStudios \"Unverknüpfte Einträge reparieren\" Funktion im \"Werkzeuge\" Menü benutzt werden um die nicht verknüpften Einträge zu löschen.", + "file.duplicates.dupeguru.file_extension": "DupeGuru-Dateien (*.dupeguru)", + "file.duplicates.dupeguru.load_file": "DupeGuru-Datei laden", + "file.duplicates.dupeguru.no_file": "Keine DupeGuru-Datei ausgewählt", + "file.duplicates.dupeguru.open_file": "DupeGuru Ergebnisdatei öffnen", + "file.duplicates.fix": "Duplizierte Dateien korrigieren", + "file.duplicates.matches": "Übereinstimmungen mit doppelten Dateien: %{count}", + "file.duplicates.matches_uninitialized": "Übereinstimmungen mit doppelten Dateien: N/A", + "file.duplicates.mirror.description": "Kopiert die Eintragsdaten in jeder Duplikatsmenge, wobei alle Daten kombiniert werden ohne Felder zu entfernen oder zu duplizieren. Diese Operation wird keine Dateien oder Daten löschen.", + "file.duplicates.mirror_entries": "Einträge kopieren", + "file.not_found": "Datei nicht gefunden:", + "file.open_file": "Datei öffnen", + "file.open_location.generic": "Datei im Explorer öffnen", + "folders_to_tags.converting": "Wandele Ordner zu Tags um", + "folders_to_tags.description": "Erstellt Tags basierend auf der Verzeichnisstruktur und wendet sie auf die Einträge an.\nDer folgende Verzeichnisbaum zeigt welche Tags erstellt werden würden und auf welche Einträge sie angewendet werden würden.", + "folders_to_tags.open_all": "Alle öffnen", + "folders_to_tags.title": "Aus Verzeichnissen Tags erstellen", + "generic.add": "hinzufügen", + "generic.apply": "anwenden", + "generic.cancel": "Abbrechen", + "generic.delete": "Löschen", + "generic.done": "Fertig", + "generic.edit": "Bearbeiten", + "generic.recent_libraries": "Aktuelle Bibliotheken", + "home.search": "Suchen", + "home.search_entries": "Nach Einträgen suchen", + "home.search_tags": "Tags suchen", + "home.thumbnail_size": "Grösse des Vorschaubildes", + "ignore_list.add_extension": "Erweiterung hinzufügen", + "ignore_list.mode.exclude": "ausschliessen", + "ignore_list.mode.include": "Inklusive", + "ignore_list.mode.label": "Listen Modus:", + "ignore_list.title": "Dateierweiterungen", + "library.field.add": "Feld hinzufügen", + "library.field.confirm_remove": "Wollen Sie dieses \"%{self.lib.get_field_attr(field, \"name\")}\" Feld wirklich entfernen?", + "library.field.mixed_data": "Gemischte Daten", + "library.field.remove": "Feld entfernen", + "library.missing": "Dateiort fehlt", + "library.name": "Bibliothek", + "library.refresh.scanning": "Durchsuche Verzeichnisse nach neuen Dateien...\n%{x + 1} Datei%{„en“ if x + 1 != 1 else „“} durchsucht, %{len(self.lib.files_not_in_library)} Neue Datei%{„en“ if len(self.lib.files_not_in_library) != 1 else „“} gefunden", + "library.refresh.scanning_preparing": "Überprüfe Verzeichnisse auf neue Dateien...\nBereite vor...", + "library.refresh.title": "Verzeichnisse werden aktualisiert", + "library.scan_library.title": "Bibliothek wird scannen", + "macros.running.dialog.new_entries": "Führe konfigurierte Makros für %{x + 1}/%{len(new_ids)} neue Einträge aus", + "macros.running.dialog.title": "Ausführen von Makros bei neuen Einträgen", "menu.edit": "Bearbeiten", "menu.file": "Datei", "menu.help": "Hilfe", "menu.macros": "Makros", "menu.tools": "Werkzeuge", "menu.window": "Fenster", - "merge.merge_dupe_entries": "Zusammenführen von doppelten Einträgen", - "entries.duplicate.merge.label": "Zusammenführen von doppelten Einträgen", - "entries.mirror.confirmation": "Sind Sie sich sicher, dass Sie die folgenden %{len(self.lib.dupe_files)} Einträge kopieren wollen?", - "entries.mirror.label": "Kopiere 1/%{count} Einträge...", - "entries.mirror.title": "Einträge werden kopiert", - "open_library.library_creation_return_code": "Bibliothekserstellung Rückgabecode:", - "open_library.no_tagstudio_library_found": "Keine vorhandene TagStudio-Bibliothek unter '%{Pfad}' gefunden. Eine wird erstellt.", - "library.name": "Bibliothek", - "file.dimensions": "Abmessungen", - "generic.recent_libraries": "Aktuelle Bibliotheken", - "library.field.confirm_remove": "Wollen Sie dieses \"%{self.lib.get_field_attr(field, \"name\")}\" Feld wirklich entfernen?", - "generic.edit": "Bearbeiten", - "library.missing": "Dateiort fehlt", - "library.field.mixed_data": "Gemischte Daten", "preview.no_selection": "Keine Elemente ausgewählt", - "preview_panel.unknown_field_type": "Unbekannter Feld Typ", - "preview_panel.update_widgets": "[ENTRY PANEL] UPDATE WIDGETS (%{self.driver.selected})", - "macros.running.dialog.title": "Ausführen von Makros bei neuen Einträgen", - "progression.running_macros.one_new_entry": "Führe konfigurierte Makros für 1/%{len(new_ids)} neue Einträge aus", - "macros.running.dialog.new_entries": "Führe konfigurierte Makros für %{x + 1}/%{len(new_ids)} neue Einträge aus", - "entries.unlinked.relink.attempting": "Versuche %{x[0]+1}/%{len(self.lib.missing_files)} Einträge wieder zu verknüpfen - %{self.fixed} bereits erfolgreich wieder verknüpft", - "entries.unlinked.relink.title": "Einträge werden neuverknüpft", - "splash.open_library": "Die Bibliothek wird geöffnet", "status.library_backup_success": "Bibliotheks-Backup gespeichert unter:", - "status.enumerate_query": "Abfrage:%{Abfrage}, Rahmen: %{i}, Länge: %{len(f)}", - "status.number_results_found": "%{len(all_items)} Ergebnisse gefunden für „%{query}“ (%{format_timespan(end_time - start_time)})", - "status.results": "Ergebnisse", "status.library_save_success": "Bibliothek gespeichert und geschlossen!", "status.library_search_query": "Suche in der Bibliothek nach", + "status.results": "Ergebnisse", "tag.add": "Hinzufüge Tag", "tag.add_to_search": "Zur Suche hinzufügen", - "tag_manager.title": "Bibliothek Tags", + "tag.aliases": "Aliase", + "tag.color": "Farbe", + "tag.name": "Name", "tag.new": "Neuer Tag", + "tag.parent_tags": "Übergeordnete Tags", + "tag.parent_tags.add": "Übergeordnete Tags hinzufügen", "tag.search_for_tag": "Nach Tag suchen", - "text_line_edit.unknown_event_type": "Unbekannter Event Typ: %{event}", - "tooltip.open_library": "Ctrl+O", - "tooltip.save_library": "Ctrl+S" + "tag.shorthand": "Kürzel", + "tag_manager.title": "Bibliothek Tags" } diff --git a/tagstudio/resources/translations/es.json b/tagstudio/resources/translations/es.json index 5032d9e4..c908121f 100644 --- a/tagstudio/resources/translations/es.json +++ b/tagstudio/resources/translations/es.json @@ -1,144 +1,92 @@ { - "library.field.add": "Añadir campo", - "tag.parent_tags.add": "Añadir etiquetas principales", - "tag.parent_tags": "Etiquetas principales", + "entries.duplicate.merge.label": "Fusionando entradas duplicadas", + "entries.duplicate.refresh": "Recargar entradas duplicadas", + "entries.duplicates.description": "Las entradas duplicadas se definen como múltiples entradas que apuntan al mismo archivo en el disco. Al fusionarlas, se combinarán las etiquetas y los metadatos de todos los duplicados en una única entrada consolidada. No deben confundirse con los \"archivos duplicados\", que son duplicados de sus archivos fuera de TagStudio.", + "entries.mirror": "Espejo", + "entries.mirror.confirmation": "¿Estás seguro de que quieres reflejar las siguientes %{len(self.lib.dupe_files)} entradas?", + "entries.mirror.label": "Reflejando 1/%{count} Entradas...", + "entries.mirror.title": "Entradas reflejadas", + "entries.tags": "Etiquetas", + "entries.unlinked.delete": "Eliminar entradas no vinculadas", "entries.unlinked.delete.confirm": "¿Está seguro de que desea eliminar las siguientes %{len(self.lib.missing_files)} entradas?", "entries.unlinked.delete.deleting": "Eliminando entradas", - "entries.unlinked.delete": "Eliminar entradas no vinculadas", "entries.unlinked.delete.deleting_count": "Eliminando %{x[0]+1}/{len(self.lib.missing_files)} entradas no vinculadas", - "dialog.open_create_library": "Abrir/Crear biblioteca", - "library.refresh.title": "Refrescar directorios", - "dialog.save_library": "Guardar la biblioteca", - "library.refresh.scanning_preparing": "Buscar archivos nuevos en los directorios...\nPreparando...", - "library.refresh.scanning": "Buscando archivos nuevos en los directorios...\n%{x + 1} Archivo%{\"s\" if x + 1 != 1 else \"\"} Buscado, %{len(self.lib.files_not_in_library)} Archivos nuevos encontrados", - "ignore_list.add_extension": "Añadir extensión", - "ignore_list.mode.label": "Modo de lista:", - "file_opener.command_not_found": "No se pudo encontrar %{command_name} en el PATH del sistema", - "file.not_found": "Archivo no encontrado:", - "file_opener.open_file": "Abriendo archivo :}", - "file.duplicates.dupeguru.advice": "Después de la duplicación, puede utilizar DupeGuru para eliminar los archivos no deseados. Luego, utilice la función \"Reparar entradas no vinculadas\" de TagStudio en el menú Herramientas para eliminar las entradas no vinculadas.", - "file.duplicates.fix": "Reparar archivos duplicados", - "file.duplicates.dupeguru.load_file": "Cargar archivo DupeGuru", - "file.duplicates.mirror.description": "Reflejar los datos de entrada en cada conjunto de coincidencias duplicadas, combinando todos los datos sin eliminar ni duplicar campos. Esta operación no eliminará ningún archivos ni dato.", - "file.duplicates.mirror_entries": "Reflejar entradas", - "file.duplicates.dupeguru.file_extension": "Archivos DupeGuru (*.dupeguru)", - "file.duplicates.matches_uninitialized": "Coincidencias de archivos duplicados: N/D", - "file.duplicates.dupeguru.no_file": "No se ha seleccionado ningún archivo DupeGuru", - "file.duplicates.matches": "Coincidencias de archivos duplicados: %{count}", - "file.duplicates.dupeguru.open_file": "Abrir el archivo de resultados de DupeGuru", - "fix_unlinked.delete_unlinked": "Borrar entradas no vinculadas", "entries.unlinked.description": "Cada entrada de la biblioteca está vinculada a un archivo en uno de sus directorios. Si un archivo vinculado a una entrada se mueve o se elimina fuera de TagStudio, se considerará desvinculado. Las entradas no vinculadas se pueden volver a vincular automáticamente mediante una búsqueda en sus directorios, el usuario puede volver a vincularlas manualmente o eliminarlas si así lo desea.", - "entries.duplicates.description": "Las entradas duplicadas se definen como múltiples entradas que apuntan al mismo archivo en el disco. Al fusionarlas, se combinarán las etiquetas y los metadatos de todos los duplicados en una única entrada consolidada. No deben confundirse con los \"archivos duplicados\", que son duplicados de sus archivos fuera de TagStudio.", - "entries.unlinked.title": "Corregir entradas no vinculadas", - "entries.unlinked.relink.manual": "Reenlace manual", - "fix_unlinked.merge_dupes": "Fusionar entradas duplicadas", - "entries.duplicate.refresh": "Recargar entradas duplicadas", - "entries.unlinked.scanning": "Buscando entradas no enlazadas en la biblioteca...", - "library.scan_library.title": "Escaneando la biblioteca", - "entries.unlinked.search_and_relink": "Buscar y volver a vincular", - "folders_to_tags.description": "Crea etiquetas basadas en su estructura de carpetas y las aplica a sus entradas.\n La siguiente estructura muestra todas las etiquetas que se crearán y a qué entradas se aplicarán.", - "folders_to_tags.converting": "Convertir carpetas en etiquetas", - "folders_to_tags.title": "Crear etiquetas a partir de carpetas", - "generic.add": "Añadir", - "tag.aliases": "Alias", - "generic.apply": "Aplicar", - "generic.cancel": "Cancelar", - "generic.close_all": "Cerrar todo", - "tag.color": "Color", - "generic.delete": "Borrar", - "generic.done": "Donar", - "ignore_list.mode.exclude": "Excluir", - "ignore_list.title": "Extensiones del archivo", - "ignore_list.mode.include": "Incluir", - "entries.mirror": "Espejo", - "tag.name": "Nombre", - "folders_to_tags.open_all": "Abrir todo", - "file.open_file": "Abrir archivo", - "file.open_location.generic": "Abrir archivo en el explorador", "entries.unlinked.refresh_all": "Recargar todo", - "library.field.remove": "Eliminar campo", - "home.search_tags": "Buscar etiquetas", - "tag.shorthand": "Taquigrafía", - "home.base_title": "TagStudio Alfa", - "home.include_all_tags": "Y (Incluye todas las etiquetas)", - "home.include_any_tag": "O (Incluye cualquier etiqueta)", - "home.main_window": "Ventana principal", - "home.search": "Buscar", - "home.search_entries": "Buscar entradas", - "home.thumbnail_size": "Tamaño de la miniatura", - "landing.open_button": "Abrir/Crear biblioteca %{open_shortcut_text}", - "library.Artist": "Artista", - "library.anthology": "Antología", - "library.archived": "Fecha de archivo", - "library.author": "Autor", - "library.book": "Libro", - "library.collation": "Recopilación", - "library.comic": "Tebeo", - "library.comments": "Comentarios", - "library.composer": "Compositor", - "library.content_tags": "Etiquetas del contenido", - "library.date": "Fecha", + "entries.unlinked.relink.attempting": "Intentando volver a vincular %{x[0]+1}/%{len(self.lib.missing_files)} Entradas, %{self.fixed} Reenlazado correctamente", + "entries.unlinked.relink.manual": "Reenlace manual", + "entries.unlinked.relink.title": "Volver a vincular las entradas", + "entries.unlinked.scanning": "Buscando entradas no enlazadas en la biblioteca...", + "entries.unlinked.search_and_relink": "Buscar y volver a vincular", + "entries.unlinked.title": "Corregir entradas no vinculadas", "file.date_created": "Fecha de creación", "file.date_modified": "Fecha de modificación", - "library.date_published": "Fecha de publicación", - "library.date_released": "Fecha de lanzamiento", - "library.date_taken": "Fecha de realización", - "library.date_uploaded": "Fecha de carga", - "library.description": "Descripción", - "library.favorite": "Favorito", - "library.guest_artist": "Artista invitado", - "library.magazine": "Revista", - "library.manga": "Manga", - "library.meta_tags": "Etiquetas de metadatos", - "library.notes": "Notas", - "library.publisher": "Editor", - "library.series": "Series", - "library.source": "Fuente", - "entries.tags": "Etiquetas", - "library.title": "Título", - "library.url": "URL", - "library.volume": "Volumen", + "file.dimensions": "Dimensiones", + "file.duplicates.dupeguru.advice": "Después de la duplicación, puede utilizar DupeGuru para eliminar los archivos no deseados. Luego, utilice la función \"Reparar entradas no vinculadas\" de TagStudio en el menú Herramientas para eliminar las entradas no vinculadas.", + "file.duplicates.dupeguru.file_extension": "Archivos DupeGuru (*.dupeguru)", + "file.duplicates.dupeguru.load_file": "Cargar archivo DupeGuru", + "file.duplicates.dupeguru.no_file": "No se ha seleccionado ningún archivo DupeGuru", + "file.duplicates.dupeguru.open_file": "Abrir el archivo de resultados de DupeGuru", + "file.duplicates.fix": "Reparar archivos duplicados", + "file.duplicates.matches": "Coincidencias de archivos duplicados: %{count}", + "file.duplicates.matches_uninitialized": "Coincidencias de archivos duplicados: N/D", + "file.duplicates.mirror.description": "Reflejar los datos de entrada en cada conjunto de coincidencias duplicadas, combinando todos los datos sin eliminar ni duplicar campos. Esta operación no eliminará ningún archivos ni dato.", + "file.duplicates.mirror_entries": "Reflejar entradas", + "file.not_found": "Archivo no encontrado:", + "file.open_file": "Abrir archivo", + "file.open_location.generic": "Abrir archivo en el explorador", + "folders_to_tags.converting": "Convertir carpetas en etiquetas", + "folders_to_tags.description": "Crea etiquetas basadas en su estructura de carpetas y las aplica a sus entradas.\n La siguiente estructura muestra todas las etiquetas que se crearán y a qué entradas se aplicarán.", + "folders_to_tags.open_all": "Abrir todo", + "folders_to_tags.title": "Crear etiquetas a partir de carpetas", + "generic.add": "Añadir", + "generic.apply": "Aplicar", + "generic.cancel": "Cancelar", + "generic.delete": "Borrar", + "generic.done": "Donar", + "generic.edit": "Editar", + "generic.recent_libraries": "Bibliotecas recientes", + "home.search": "Buscar", + "home.search_entries": "Buscar entradas", + "home.search_tags": "Buscar etiquetas", + "home.thumbnail_size": "Tamaño de la miniatura", + "ignore_list.add_extension": "Añadir extensión", + "ignore_list.mode.exclude": "Excluir", + "ignore_list.mode.include": "Incluir", + "ignore_list.mode.label": "Modo de lista:", + "ignore_list.title": "Extensiones del archivo", + "library.field.add": "Añadir campo", + "library.field.confirm_remove": "¿Está seguro de que desea eliminar este campo \"%{self.lib.get_field_attr(field, \"name\")}\"?", + "library.field.mixed_data": "Datos variados", + "library.field.remove": "Eliminar campo", + "library.missing": "Falta la ubicación", + "library.name": "Biblioteca", + "library.refresh.scanning": "Buscando archivos nuevos en los directorios...\n%{x + 1} Archivo%{\"s\" if x + 1 != 1 else \"\"} Buscado, %{len(self.lib.files_not_in_library)} Archivos nuevos encontrados", + "library.refresh.scanning_preparing": "Buscar archivos nuevos en los directorios...\nPreparando...", + "library.refresh.title": "Refrescar directorios", + "library.scan_library.title": "Escaneando la biblioteca", + "macros.running.dialog.new_entries": "Ejecución de macros configurados en %{x + 1}/%{len(new_ids)} entradas nuevas", + "macros.running.dialog.title": "Ejecución de macros en entradas nuevas", "menu.edit": "Editar", "menu.file": "Archivo", "menu.help": "Ayuda", "menu.macros": "Macro", "menu.tools": "Herramientas", "menu.window": "Ventana", - "merge.merge_dupe_entries": "Fusionando entradas duplicadas", - "entries.duplicate.merge.label": "Fusionando entradas duplicadas", - "entries.mirror.confirmation": "¿Estás seguro de que quieres reflejar las siguientes %{len(self.lib.dupe_files)} entradas?", - "entries.mirror.label": "Reflejando 1/%{count} Entradas...", - "entries.mirror.title": "Entradas reflejadas", - "open_library.library_creation_return_code": "Código de retorno de creación de biblioteca:", - "open_library.no_tagstudio_library_found": "No se encontró ninguna biblioteca TagStudio existente en '%{path}'. Se está creando una.", - "library.name": "Biblioteca", - "file.dimensions": "Dimensiones", - "generic.recent_libraries": "Bibliotecas recientes", - "library.field.confirm_remove": "¿Está seguro de que desea eliminar este campo \"%{self.lib.get_field_attr(field, \"name\")}\"?", - "generic.edit": "Editar", - "library.missing": "Falta la ubicación", - "library.field.mixed_data": "Datos variados", "preview.no_selection": "No hay elementos seleccionados", - "preview_panel.unknown_field_type": "Tipo de campo desconocido", - "preview_panel.update_widgets": "[PANEL DE ENTRADA] ACTUALIZAR WIDGETS (%{self.driver.selected})", - "macros.running.dialog.title": "Ejecución de macros en entradas nuevas", - "progression.running_macros.one_new_entry": "Ejecución de macros configurados en 1/%{len(new_ids)} entradas nuevas", - "macros.running.dialog.new_entries": "Ejecución de macros configurados en %{x + 1}/%{len(new_ids)} entradas nuevas", - "entries.unlinked.relink.attempting": "Intentando volver a vincular %{x[0]+1}/%{len(self.lib.missing_files)} Entradas, %{self.fixed} Reenlazado correctamente", - "entries.unlinked.relink.title": "Volver a vincular las entradas", - "splash.open_library": "Abriendo la biblioteca", "status.library_backup_success": "Copia de seguridad de la biblioteca guardada en:", - "status.enumerate_query": "Consulta:%{query}, Cuadro: %{i}, Longitud: %{len(f)}", - "status.number_results_found": "%{len(all_items)} Resultados encontrados para \"%{query}\" (%{format_timespan(end_time - start_time)})", - "status.results": "Resultados", "status.library_save_success": "¡Biblioteca guardada y cerrada!", "status.library_search_query": "Buscando en la biblioteca", + "status.results": "Resultados", "tag.add": "Añadir etiqueta", "tag.add_to_search": "Añadir a la búsqueda", - "tag_manager.title": "Etiquetas de la biblioteca", + "tag.aliases": "Alias", + "tag.color": "Color", + "tag.name": "Nombre", "tag.new": "Nueva etiqueta", + "tag.parent_tags": "Etiquetas principales", + "tag.parent_tags.add": "Añadir etiquetas principales", "tag.search_for_tag": "Buscar por etiqueta", - "text_line_edit.unknown_event_type": "tipo de suceso desconocido: %{event}", - "tooltip.open_library": "Ctrl+O", - "tooltip.save_library": "Ctrl+S" + "tag.shorthand": "Taquigrafía", + "tag_manager.title": "Etiquetas de la biblioteca" } diff --git a/tagstudio/resources/translations/fil.json b/tagstudio/resources/translations/fil.json index e9a9e9bc..1ca5e76e 100644 --- a/tagstudio/resources/translations/fil.json +++ b/tagstudio/resources/translations/fil.json @@ -1,110 +1,64 @@ { - "library.field.add": "Magdagdag ng Field", - "tag.parent_tags.add": "Magdagdag ng Mga Parent Tag", - "tag.parent_tags": "Mga Parent Tag", + "entries.duplicate.merge.label": "Sinasama ang mga Duplicate na Entry", + "entries.mirror": "Salamin", + "entries.tags": "Mga Tag", + "entries.unlinked.delete": "Burahin ang Mga Hindi Naka-link na Entry", "entries.unlinked.delete.confirm": "Sigurado ka ba gusto mong burahin ang (mga) sumusunod na %{len(self.lib.missing_files)} entry?", "entries.unlinked.delete.deleting": "Binubura ang Mga Entry", - "entries.unlinked.delete": "Burahin ang Mga Hindi Naka-link na Entry", "entries.unlinked.delete.deleting_count": "Binubura ang %{x[0]+1}/{len(self.lib.missing_files)} (mga) Naka-unlink na Entry", - "dialog.open_create_library": "Magbukas/Gumawa ng Library", - "library.refresh.title": "Nire-refresh ang Mga Direktoryo", - "dialog.save_library": "I-save ang Library", - "library.refresh.scanning_preparing": "Sina-scan ang Mga Direktoryo para sa Mga Bagong File...\nNaghahanda...", - "library.refresh.scanning": "Sina-scan ang Mga Direktoryo para sa Mga Bagong File...\n%{x + 1} %{\"mga\" if x + 1 != 1 else \"\"} File na nahanap, %{len(self.lib.files_not_in_library)} Mga Bagong File na Nahanap", - "ignore_list.add_extension": "Magdagdag ng Extension", - "ignore_list.mode.label": "Mode ng Pag-lista:", - "file_opener.command_not_found": "Hindi mahanap ang %{command_name} sa system PATH", - "file.not_found": "Hindi nahanap ang file:", - "file_opener.open_file": "Binubuksan ang file:}", - "file.duplicates.fix": "Ayusin ang Mga Duplicate na File", - "file.duplicates.dupeguru.load_file": "Mag-load ng DupeGuru File", - "file.duplicates.mirror.description": "Mirror the Entry data across each duplicate match set, combining all data while not removing or duplicating fields. This operation will not delete any files or data.", - "file.duplicates.mirror_entries": "Mga Entry ng Salamin", - "file.duplicates.dupeguru.no_file": "Walang DupeGuru na File na Napili", - "generic.add": "Magdagdag", - "tag.aliases": "Mga Alyas", - "generic.apply": "I-apply", - "generic.cancel": "Kanselahin", - "generic.close_all": "Isara Lahat", - "tag.color": "Kulay", - "generic.delete": "Burahin", - "generic.done": "Tapos na", - "ignore_list.mode.exclude": "Huwag isama", - "ignore_list.title": "Mga File Extension", - "ignore_list.mode.include": "Isama", - "entries.mirror": "Salamin", - "tag.name": "Pangalan", - "folders_to_tags.open_all": "Buksan Lahat", - "file.open_file": "Buksan ang file", - "file.open_location.generic": "Buksan ang file sa explorer", "entries.unlinked.refresh_all": "I-refresh Lahat", - "library.field.remove": "Tanggalin ang Field", - "home.search_tags": "Maghanap ng Mga Tag", - "tag.shorthand": "Shorthand", - "home.base_title": "TagStudio Alpha", - "home.include_all_tags": "And (sinasama ang Lahat ng Mga Tag)", - "home.include_any_tag": "Or (Sinasama ang Anumang Tag)", - "home.main_window": "Main na Window", - "home.search": "Maghanap", - "home.search_entries": "Mga Entry sa Paghahanap", - "home.thumbnail_size": "Laki ng Thumbnail", - "library.Artist": "Artista", - "library.anthology": "Antolohiya", - "library.archived": "Petsa na Na-archve", - "library.author": "Awtor", - "library.book": "Aklat", - "library.collation": "Collation", - "library.comic": "Komik", - "library.comments": "Mga Komento", - "library.composer": "Kompositor", - "library.content_tags": "Mga Tag ng Content", - "library.date": "Petsa", "file.date_created": "Petsa na Ginawa", "file.date_modified": "Binago Noong", - "library.date_published": "Petsa na Inilabas", - "library.date_released": "Petsa na na-release", - "library.date_taken": "Kinuha Noong", - "library.date_uploaded": "Petsa na Na-upload", - "library.description": "Paglalarawan", - "library.favorite": "Paborito", - "library.guest_artist": "Bisitang Artista", - "library.magazine": "Magasin", - "library.manga": "Manga", - "library.meta_tags": "Mga Meta Tag", - "library.notes": "Mga tala", - "library.publisher": "Tagapaglathala", - "library.series": "Serye", - "library.source": "Pinagmulan", - "entries.tags": "Mga Tag", - "library.title": "Paksa", - "library.url": "URL", - "library.volume": "Volume", + "file.dimensions": "Laki", + "file.duplicates.dupeguru.load_file": "Mag-load ng DupeGuru File", + "file.duplicates.dupeguru.no_file": "Walang DupeGuru na File na Napili", + "file.duplicates.fix": "Ayusin ang Mga Duplicate na File", + "file.duplicates.mirror.description": "Mirror the Entry data across each duplicate match set, combining all data while not removing or duplicating fields. This operation will not delete any files or data.", + "file.duplicates.mirror_entries": "Mga Entry ng Salamin", + "file.not_found": "Hindi nahanap ang file:", + "file.open_file": "Buksan ang file", + "file.open_location.generic": "Buksan ang file sa explorer", + "folders_to_tags.open_all": "Buksan Lahat", + "generic.add": "Magdagdag", + "generic.apply": "I-apply", + "generic.cancel": "Kanselahin", + "generic.delete": "Burahin", + "generic.done": "Tapos na", + "generic.recent_libraries": "Mga Kamakailang Library", + "home.search": "Maghanap", + "home.search_entries": "Mga Entry sa Paghahanap", + "home.search_tags": "Maghanap ng Mga Tag", + "home.thumbnail_size": "Laki ng Thumbnail", + "ignore_list.add_extension": "Magdagdag ng Extension", + "ignore_list.mode.exclude": "Huwag isama", + "ignore_list.mode.include": "Isama", + "ignore_list.mode.label": "Mode ng Pag-lista:", + "ignore_list.title": "Mga File Extension", + "library.field.add": "Magdagdag ng Field", + "library.field.remove": "Tanggalin ang Field", + "library.name": "Library", + "library.refresh.scanning": "Sina-scan ang Mga Direktoryo para sa Mga Bagong File...\n%{x + 1} %{\"mga\" if x + 1 != 1 else \"\"} File na nahanap, %{len(self.lib.files_not_in_library)} Mga Bagong File na Nahanap", + "library.refresh.scanning_preparing": "Sina-scan ang Mga Direktoryo para sa Mga Bagong File...\nNaghahanda...", + "library.refresh.title": "Nire-refresh ang Mga Direktoryo", + "macros.running.dialog.new_entries": "Tinatakbo ang Mga Naka-configure na Macro sa %{x + 1}/%{len(new_ids)} Mga Bagong Entry", + "macros.running.dialog.title": "Tumatakbo ng Mga Macro sa Mga Bagong Entry", "menu.edit": "I-edit", "menu.file": "File", "menu.help": "Tulong", "menu.macros": "Mga macro", "menu.tools": "Mga tool", "menu.window": "Window", - "merge.merge_dupe_entries": "Sinasama ang mga Duplicate na Entry", - "entries.duplicate.merge.label": "Sinasama ang mga Duplicate na Entry", - "open_library.library_creation_return_code": "Return Code ng Paggawa ng Library:", - "open_library.no_tagstudio_library_found": "Walang umiiral na TagStudio library na nahanap sa '%{path}'. Gumagawa ng isa.", - "library.name": "Library", - "file.dimensions": "Laki", - "generic.recent_libraries": "Mga Kamakailang Library", - "macros.running.dialog.title": "Tumatakbo ng Mga Macro sa Mga Bagong Entry", - "progression.running_macros.one_new_entry": "Tinatakbo ang Mga Naka-configure na Macro sa 1/%{len(new_ids)} Mga Bagong Entry", - "macros.running.dialog.new_entries": "Tinatakbo ang Mga Naka-configure na Macro sa %{x + 1}/%{len(new_ids)} Mga Bagong Entry", - "splash.open_library": "Binubuksan ang Library", "status.library_backup_success": "Na-save ang Library Backup sa:", - "status.enumerate_query": "Query:%{query}, Frame: %{i}, Haba: %{len(f)}", - "status.number_results_found": "%{len(all_items)} Nakahanap ng Mga Resulta para sa \"%{query}\" (%{format_timespan(end_time - start_time)})", - "status.results": "Mga Resulta", "status.library_save_success": "Sinave at Sinara ang Library!", "status.library_search_query": "Hinahanap ang library para sa", + "status.results": "Mga Resulta", "tag.add": "Magdagdag ng Tag", - "tag_manager.title": "Mga Tag ng Library", + "tag.aliases": "Mga Alyas", + "tag.color": "Kulay", + "tag.name": "Pangalan", "tag.new": "Bagong Tag", - "tooltip.open_library": "Ctrl+O", - "tooltip.save_library": "Ctrl+S" + "tag.parent_tags": "Mga Parent Tag", + "tag.parent_tags.add": "Magdagdag ng Mga Parent Tag", + "tag.shorthand": "Shorthand", + "tag_manager.title": "Mga Tag ng Library" } diff --git a/tagstudio/resources/translations/fr.json b/tagstudio/resources/translations/fr.json index 616871f7..4c878ea3 100644 --- a/tagstudio/resources/translations/fr.json +++ b/tagstudio/resources/translations/fr.json @@ -1,144 +1,92 @@ { - "library.field.add": "Ajouter un Champ", - "tag.parent_tags.add": "Ajouter des Labels Parents", - "tag.parent_tags": "Labels Parent", + "entries.duplicate.merge.label": "Fusionner les duplicatas", + "entries.duplicate.refresh": "Rafraichir les Entrées en Doublon", + "entries.duplicates.description": "Les entrées dupliquées sont définies comme des entrées multiple qui pointent vers le même fichier sur le disque. Les fusionner va combiner les labels et metadatas de tous les duplicatas vers une seule entrée consolidée. Elles ne doivent pas être confondues avec les \"fichiers en doublon\", qui sont des doublons de vos fichiers en dehors de TagStudio.", + "entries.mirror": "Refléter", + "entries.mirror.confirmation": "Êtes-vous sûr de vouloir répliquer les %{len(self.lib.dupe_files)} Entrées suivantes ?", + "entries.mirror.label": "Réplication de 1/%{count} Entrées...", + "entries.mirror.title": "Réplication des Entrées", + "entries.tags": "Labels", + "entries.unlinked.delete": "Supprimer les Entrées non Liées", "entries.unlinked.delete.confirm": "Êtes-vous sûr de vouloir supprimer les %{len(self.lib.missing_files)} entrées suivantes  ?", "entries.unlinked.delete.deleting": "Suppression des Entrées", - "entries.unlinked.delete": "Supprimer les Entrées non Liées", "entries.unlinked.delete.deleting_count": "Suppression des Entrées non Liées %{x[0]+1}/{len(self.lib.missing_files)}", - "dialog.open_create_library": "Ouvrir/Créer une Bibliothèque", - "library.refresh.title": "Rafraîchissement des Dossiers", - "dialog.save_library": "Sauvegarder la Bibliothèque", - "library.refresh.scanning_preparing": "Recherche de Nouveaux Fichiers dans les Dossiers...\nPréparation...", - "library.refresh.scanning": "Recherche de Nouveaux Fichiers dans les Dossiers...\n%{x + 1} Fichiers%{\"s\" if x + 1 != 1 else \"\"} Recherchés, %{len(self.lib.files_not_in_library)} Nouveaux Fichiers Trouvés", - "ignore_list.add_extension": "Ajouter une Extension", - "ignore_list.mode.label": "Mode Liste :", - "file_opener.command_not_found": "Impossible de trouver %{command_name} dans le CHEMIN système", - "file.not_found": "Fichier non trouvé:", - "file_opener.open_file": "Ouverture du Fichier:}", - "file.duplicates.dupeguru.advice": "Après réplication, vous êtes libre d'utiliser DupeGuru pour supprimer des fichiers non désirés. Ensuite, utilisez la fonctionnalité \"Réparation des Entrées non Liées\" de TagStudio dans le menu Outils pour supprimer les Entrées non liées.", - "file.duplicates.fix": "Réparer les Fichiers en Double", - "file.duplicates.dupeguru.load_file": "Charger un Fichier DupeGuru", - "file.duplicates.mirror.description": "Repliquer les données d'entrée dans chaque jeu de correspondances en double, en combinant toutes les données sans supprimer ni dupliquer de champs. Cette opération ne supprime aucun fichier ni aucune donnée.", - "file.duplicates.mirror_entries": "Répliquer les Entrées", - "file.duplicates.dupeguru.file_extension": "Fichiers DupeGuru (*.dupeguru)", - "file.duplicates.matches_uninitialized": "Dupliquer les Correspondances de Fichier : N/A", - "file.duplicates.dupeguru.no_file": "Aucun Fichier DupeGuru Sélectionné", - "file.duplicates.matches": "Dupliquer les Correspondances de Fichier : %{count}", - "file.duplicates.dupeguru.open_file": "Ouvrire les Fichiers de Résultats de DupeGuru", - "fix_unlinked.delete_unlinked": "Supprimer les Entrées non Liées", "entries.unlinked.description": "Chaque entrée dans la bibliothèque est liée à un fichier dans l'un de vos dossiers. Si un fichier lié à une entrée est déplacé ou supprimé en dehors de TagStudio, il est alors considéré non lié. Les entrées non liées peuvent être automatiquement reliées via la recherche dans vos dossiers, reliées manuellement par l'utilisateur, ou supprimées si désiré.", - "entries.duplicates.description": "Les entrées dupliquées sont définies comme des entrées multiple qui pointent vers le même fichier sur le disque. Les fusionner va combiner les labels et metadatas de tous les duplicatas vers une seule entrée consolidée. Elles ne doivent pas être confondues avec les \"fichiers en doublon\", qui sont des doublons de vos fichiers en dehors de TagStudio.", - "entries.unlinked.title": "Réparation des Entrées non Liées", - "entries.unlinked.relink.manual": "Reliage Manuel", - "fix_unlinked.merge_dupes": "Fusionner les Entrées en Doublon", - "entries.duplicate.refresh": "Rafraichir les Entrées en Doublon", - "entries.unlinked.scanning": "Balayage de la Bibliothèque pour trouver des Entrées non Liées...", - "library.scan_library.title": "Balayage de la Bibliothèque", - "entries.unlinked.search_and_relink": "Rechercher && Relier", - "folders_to_tags.description": "Créé des labels basés sur votre arborescence de dossier et les applique à vos entrées.\nLa structure ci-dessous affiche tous les labels qui seront créés et à quelles entrées ils seront appliqués.", - "folders_to_tags.converting": "Conversion des dossiers en Labels", - "folders_to_tags.title": "Créer un Label à partir d'un Dossier", - "generic.add": "Ajouter", - "tag.aliases": "Alias", - "generic.apply": "Appliquer", - "generic.cancel": "Annuler", - "generic.close_all": "Tout Fermer", - "tag.color": "Couleur", - "generic.delete": "Supprimer", - "generic.done": "Terminé", - "ignore_list.mode.exclude": "Exclure", - "ignore_list.title": "Extensions de Fichiers", - "ignore_list.mode.include": "Inclure", - "entries.mirror": "Refléter", - "tag.name": "Nom", - "folders_to_tags.open_all": "Tout Ouvrir", - "file.open_file": "Ouvrir un Fichier", - "file.open_location.generic": "Ouvrir un Fichier dans l'Explorateur", "entries.unlinked.refresh_all": "Tout Rafraîchir", - "library.field.remove": "Supprimer un Champ", - "home.search_tags": "Recherche de Labels", - "tag.shorthand": "Abrégé", - "home.base_title": "TagStudio Alpha", - "home.include_all_tags": "Et (Inclus tous les Labels)", - "home.include_any_tag": "Ou (Inclus N'importe quel Label)", - "home.main_window": "Fenêtre Principale", - "home.search": "Rechercher", - "home.search_entries": "Recherche", - "home.thumbnail_size": "Taille de la miniature", - "landing.open_button": "Ouvrir/Créer une Bibliothèque %{open_shortcut_text}", - "library.Artist": "Artiste", - "library.anthology": "Anthologie", - "library.archived": "Date d'Archivage", - "library.author": "Auteur", - "library.book": "Livre", - "library.collation": "Collage", - "library.comic": "Bande Dessinée", - "library.comments": "Commentaires", - "library.composer": "Compositeur", - "library.content_tags": "Labels de Contenu", - "library.date": "Date", + "entries.unlinked.relink.attempting": "Tentative de Reliage de %{x[0]+1}/%{len(self.lib.missing_files)} Entrées, %{self.fixed} ont été Reliées avec Succès", + "entries.unlinked.relink.manual": "Reliage Manuel", + "entries.unlinked.relink.title": "Reliage des Entrées", + "entries.unlinked.scanning": "Balayage de la Bibliothèque pour trouver des Entrées non Liées...", + "entries.unlinked.search_and_relink": "Rechercher && Relier", + "entries.unlinked.title": "Réparation des Entrées non Liées", "file.date_created": "Date de Création", "file.date_modified": "Date de Modification", - "library.date_published": "Date de Publication", - "library.date_released": "Date de Sortie", - "library.date_taken": "Date de Capture", - "library.date_uploaded": "Date de Mise en Ligne", - "library.description": "Description", - "library.favorite": "Favori", - "library.guest_artist": "Artiste Invité", - "library.magazine": "Magazine", - "library.manga": "Manga", - "library.meta_tags": "Label Meta", - "library.notes": "Notes", - "library.publisher": "Éditeur", - "library.series": "Séries", - "library.source": "Source", - "entries.tags": "Labels", - "library.title": "Titre", - "library.url": "URL", - "library.volume": "Volume", + "file.dimensions": "Dimensions", + "file.duplicates.dupeguru.advice": "Après réplication, vous êtes libre d'utiliser DupeGuru pour supprimer des fichiers non désirés. Ensuite, utilisez la fonctionnalité \"Réparation des Entrées non Liées\" de TagStudio dans le menu Outils pour supprimer les Entrées non liées.", + "file.duplicates.dupeguru.file_extension": "Fichiers DupeGuru (*.dupeguru)", + "file.duplicates.dupeguru.load_file": "Charger un Fichier DupeGuru", + "file.duplicates.dupeguru.no_file": "Aucun Fichier DupeGuru Sélectionné", + "file.duplicates.dupeguru.open_file": "Ouvrire les Fichiers de Résultats de DupeGuru", + "file.duplicates.fix": "Réparer les Fichiers en Double", + "file.duplicates.matches": "Dupliquer les Correspondances de Fichier : %{count}", + "file.duplicates.matches_uninitialized": "Dupliquer les Correspondances de Fichier : N/A", + "file.duplicates.mirror.description": "Repliquer les données d'entrée dans chaque jeu de correspondances en double, en combinant toutes les données sans supprimer ni dupliquer de champs. Cette opération ne supprime aucun fichier ni aucune donnée.", + "file.duplicates.mirror_entries": "Répliquer les Entrées", + "file.not_found": "Fichier non trouvé:", + "file.open_file": "Ouvrir un Fichier", + "file.open_location.generic": "Ouvrir un Fichier dans l'Explorateur", + "folders_to_tags.converting": "Conversion des dossiers en Labels", + "folders_to_tags.description": "Créé des labels basés sur votre arborescence de dossier et les applique à vos entrées.\nLa structure ci-dessous affiche tous les labels qui seront créés et à quelles entrées ils seront appliqués.", + "folders_to_tags.open_all": "Tout Ouvrir", + "folders_to_tags.title": "Créer un Label à partir d'un Dossier", + "generic.add": "Ajouter", + "generic.apply": "Appliquer", + "generic.cancel": "Annuler", + "generic.delete": "Supprimer", + "generic.done": "Terminé", + "generic.edit": "Éditer", + "generic.recent_libraries": "Bibliothèques Récentes", + "home.search": "Rechercher", + "home.search_entries": "Recherche", + "home.search_tags": "Recherche de Labels", + "home.thumbnail_size": "Taille de la miniature", + "ignore_list.add_extension": "Ajouter une Extension", + "ignore_list.mode.exclude": "Exclure", + "ignore_list.mode.include": "Inclure", + "ignore_list.mode.label": "Mode Liste :", + "ignore_list.title": "Extensions de Fichiers", + "library.field.add": "Ajouter un Champ", + "library.field.confirm_remove": "Êtes-vous sûr de vouloir supprimer le champ \"%{self.lib.get_field_attr(field, \"name\")}\" ?", + "library.field.mixed_data": "Données Mélangées", + "library.field.remove": "Supprimer un Champ", + "library.missing": "Emplacement Manquant", + "library.name": "Bibliothèque", + "library.refresh.scanning": "Recherche de Nouveaux Fichiers dans les Dossiers...\n%{x + 1} Fichiers%{\"s\" if x + 1 != 1 else \"\"} Recherchés, %{len(self.lib.files_not_in_library)} Nouveaux Fichiers Trouvés", + "library.refresh.scanning_preparing": "Recherche de Nouveaux Fichiers dans les Dossiers...\nPréparation...", + "library.refresh.title": "Rafraîchissement des Dossiers", + "library.scan_library.title": "Balayage de la Bibliothèque", + "macros.running.dialog.new_entries": "Éxectution des Macros Configurées sur %{x + 1}/%{len(new_ids)} Nouvelles Entrées", + "macros.running.dialog.title": "Exécution des Macros sur les Nouvelles Entrées", "menu.edit": "Édition", "menu.file": "Fichier", "menu.help": "Aide", "menu.macros": "Macros", "menu.tools": "Outils", "menu.window": "Fenêtre", - "merge.merge_dupe_entries": "Fusionner les duplicatas", - "entries.duplicate.merge.label": "Fusionner les duplicatas", - "entries.mirror.confirmation": "Êtes-vous sûr de vouloir répliquer les %{len(self.lib.dupe_files)} Entrées suivantes ?", - "entries.mirror.label": "Réplication de 1/%{count} Entrées...", - "entries.mirror.title": "Réplication des Entrées", - "open_library.library_creation_return_code": "Code de Retour de la Création de bibliothèque:", - "open_library.no_tagstudio_library_found": "Aucune bibliothèque TagStudio trouvé au chemin '%{path}'. Création d'une bibliothèque.", - "library.name": "Bibliothèque", - "file.dimensions": "Dimensions", - "generic.recent_libraries": "Bibliothèques Récentes", - "library.field.confirm_remove": "Êtes-vous sûr de vouloir supprimer le champ \"%{self.lib.get_field_attr(field, \"name\")}\" ?", - "generic.edit": "Éditer", - "library.missing": "Emplacement Manquant", - "library.field.mixed_data": "Données Mélangées", "preview.no_selection": "Pas d'Objet Selectionné", - "preview_panel.unknown_field_type": "Type de Champ Inconnu", - "preview_panel.update_widgets": "[PANEL D'ENTRÉE] MISE À JOUR DES WIDGETS (%{self.driver.selected})", - "macros.running.dialog.title": "Exécution des Macros sur les Nouvelles Entrées", - "progression.running_macros.one_new_entry": "Éxecution des Macros Configurées sur 1/%{len(new_ids)} Nouvelles Entrées", - "macros.running.dialog.new_entries": "Éxectution des Macros Configurées sur %{x + 1}/%{len(new_ids)} Nouvelles Entrées", - "entries.unlinked.relink.attempting": "Tentative de Reliage de %{x[0]+1}/%{len(self.lib.missing_files)} Entrées, %{self.fixed} ont été Reliées avec Succès", - "entries.unlinked.relink.title": "Reliage des Entrées", - "splash.open_library": "Ouverture de la Bilbliothèque", "status.library_backup_success": "Bibliothèque sauvegardée au chemin  :", - "status.enumerate_query": "Requête:%{query}, Image: %{i}, Longueur: %{len(f)}", - "status.number_results_found": "%{len(all_items)} Résultats Trouvés pour \"%{query}\" (%{format_timespan(end_time - start_time)})", - "status.results": "Résultats", "status.library_save_success": "Bibliothèque Sauvegardée et Fermée !", "status.library_search_query": "Recherche dans la Bibliothèque pour", + "status.results": "Résultats", "tag.add": "Ajouter un Label", "tag.add_to_search": "Ajouter à la Recherche", - "tag_manager.title": "Labels de la Bibliothèque", + "tag.aliases": "Alias", + "tag.color": "Couleur", + "tag.name": "Nom", "tag.new": "Nouveau Label", + "tag.parent_tags": "Labels Parent", + "tag.parent_tags.add": "Ajouter des Labels Parents", "tag.search_for_tag": "Recherche de Label", - "text_line_edit.unknown_event_type": "Type d'évenement inconnu : %{event}", - "tooltip.open_library": "Ctrl+O", - "tooltip.save_library": "Ctrl+S" + "tag.shorthand": "Abrégé", + "tag_manager.title": "Labels de la Bibliothèque" } diff --git a/tagstudio/resources/translations/hu.json b/tagstudio/resources/translations/hu.json index 69038445..e4a62474 100644 --- a/tagstudio/resources/translations/hu.json +++ b/tagstudio/resources/translations/hu.json @@ -1,144 +1,92 @@ { - "library.field.add": "Új mező", - "tag.parent_tags.add": "Új szülőcímke", - "tag.parent_tags": "Szülőcímkék", + "entries.duplicate.merge.label": "Egyező elemek egyesítése", + "entries.duplicate.refresh": "Egyező elemek frissítése", + "entries.duplicates.description": "Ha több elem ugyanazzal a fájllal van összekapcsolva, akkor egyezőnek számítanak. Ha egyesíti őket, akkor egy olyan elem lesz létrehozva, ami az eredeti elemek összes adatát tartalmazza. Ezeket nem szabad összetéveszteni az „egyező fájlokkal”, amelyek a TagStudión kívüli azonos tartalmú fájlok.", + "entries.mirror": "Tükrözés", + "entries.mirror.confirmation": "Biztosan tükrözni akarja az alábbi adatokat %{len(self.lib.dupe_files)} különböző elemre?", + "entries.mirror.label": "%{count}/1 elem tükrözése folyamatban…", + "entries.mirror.title": "Elemek tükrözése", + "entries.tags": "Címkék", + "entries.unlinked.delete": "Kapcsolat nélküli elemek törlése", "entries.unlinked.delete.confirm": "Biztosan törölni akarja az alábbi %{len(self.lib.missing_files)} elemet?", "entries.unlinked.delete.deleting": "Elemek törlése", - "entries.unlinked.delete": "Kapcsolat nélküli elemek törlése", "entries.unlinked.delete.deleting_count": "{len(self.lib.missing_files)}/%{x[0]+1}. kapcsolat nélküli elem törlése", - "dialog.open_create_library": "Könyvtár megnyitása/létrehozása", - "library.refresh.title": "Mappák frissítése", - "dialog.save_library": "Könyvtár mentése", - "library.refresh.scanning_preparing": "Új fájlok keresése a mappákban…\nElőkészítés…", - "library.refresh.scanning": "Új fájlok keresése a mappákban…\n%{x + 1} fájl megvizsgálva; ebből %{len(self.lib.files_not_in_library)} új", - "ignore_list.add_extension": "Kiterjesztés hozzáadása", - "ignore_list.mode.label": "Listázott elemek módja:", - "file_opener.command_not_found": "A(z) „%{command_name}”-parancs nem szerepel a rendszer PATH-változójában.", - "file.not_found": "Az alábbi fájl nem található:", - "file_opener.open_file": "Fájl megnyitása:", - "file.duplicates.dupeguru.advice": "A tükrözés befejezése után a DupeGuruval kitörölheti a nem kívánt fájlokat. Ezt követően, a TagStudio „Kapcsolat nélküli elemek javítása” funkciójával eltávolíthatja az árván maradt elemeket.", - "file.duplicates.fix": "Egyező fájlok egyesítése", - "file.duplicates.dupeguru.load_file": "DupeGuru fájl betöltése", - "file.duplicates.mirror.description": "Az összes adat átmásolása minden összetartozó fájl között, ezzel kiegészítve a hiányzó címkéket eltávolítás és duplikálás nélkül. Ez a folyamat nem fog adatokat vagy fájlokat törölni.", - "file.duplicates.mirror_entries": "Elemek tükrözése", - "file.duplicates.dupeguru.file_extension": "DupeGuru-fájlok (*.dupeguru)", - "file.duplicates.matches_uninitialized": "Nincsenek egyező fájlok", - "file.duplicates.dupeguru.no_file": "Nincs kiválasztott DupeGuru-fájl.", - "file.duplicates.matches": "%{count} egyező fájl", - "file.duplicates.dupeguru.open_file": "DupeGuru-fájl megnyitása", - "fix_unlinked.delete_unlinked": "Kapcsolat nélküli elemek törlése", "entries.unlinked.description": "A könyvtár minden eleme egy fájllal van összekapcsolva a számítógépen. Ha egy kapcsolt fájl a TagSudión kívül kerül áthelyezésre vagy törésre, akkor ez a kapcsolat megszakad. Ezeket a kapcsolat nélküli elemeket a program megpróbálhatja automatikusan megkeresni, de Ön is kézileg újra összekapcsolhatja vagy törölheti őket.", - "entries.duplicates.description": "Ha több elem ugyanazzal a fájllal van összekapcsolva, akkor egyezőnek számítanak. Ha egyesíti őket, akkor egy olyan elem lesz létrehozva, ami az eredeti elemek összes adatát tartalmazza. Ezeket nem szabad összetéveszteni az „egyező fájlokkal”, amelyek a TagStudión kívüli azonos tartalmú fájlok.", - "entries.unlinked.title": "Kapcsolat nélküli elemek javítása", - "entries.unlinked.relink.manual": "Újra összekapcsolás kézileg", - "fix_unlinked.merge_dupes": "Egyező elemek egyesítése", - "entries.duplicate.refresh": "Egyező elemek frissítése", - "entries.unlinked.scanning": "Kapcsolat nélküli elemek keresése a könyvtárban…", - "library.scan_library.title": "Könyvtár vizsgálata", - "entries.unlinked.search_and_relink": "Keresés és újra összekapcsolás", - "folders_to_tags.description": "Címkék automatikus létrehozása a létező mappastruktúra alapján.\nAz alábbi mappafán megtekintheti a létrehozandó címkéket, és hogy mely elemekre lesznek alkalmazva.", - "folders_to_tags.converting": "Mappák címkékké alakítása", - "folders_to_tags.title": "Címkék létrehozása mappák alapján", - "generic.add": "Hozzáadás", - "tag.aliases": "Áljelek", - "generic.apply": "Alkalmaz", - "generic.cancel": "Mégse", - "generic.close_all": "Összes bezárása", - "tag.color": "Szín", - "generic.delete": "Törlés", - "generic.done": "Kész", - "ignore_list.mode.exclude": "Elrejtés", - "ignore_list.title": "Kiterjesztések", - "ignore_list.mode.include": "Mutatás", - "entries.mirror": "Tükrözés", - "tag.name": "Név", - "folders_to_tags.open_all": "Összes megnyitása", - "file.open_file": "Fájl megnyitása", - "file.open_location.generic": "Fájl megnyitása Intézőben", "entries.unlinked.refresh_all": "Összes frissítése", - "library.field.remove": "Mező eltávolítása", - "home.search_tags": "Címkék keresése", - "tag.shorthand": "Rövidítés", - "home.base_title": "TagStudio Alfa", - "home.include_all_tags": "És (az összes keresett címkét tartalmazza)", - "home.include_any_tag": "Vagy (valamelyik keresett címkét tartalmazza)", - "home.main_window": "Fő ablak", - "home.search": "Keresés", - "home.search_entries": "Tételek keresése", - "home.thumbnail_size": "Indexkép mérete", - "landing.open_button": "Könyvtár megnyitása/létrehozása %{open_shortcut_text}", - "library.Artist": "Előadó", - "library.anthology": "Gyűjtemény", - "library.archived": "Archiválás dátuma", - "library.author": "Szerző", - "library.book": "Könyv", - "library.collation": "Rendezés", - "library.comic": "Képregény", - "library.comments": "Megjegyzés", - "library.composer": "Zeneszerző", - "library.content_tags": "Tartalomcímkék", - "library.date": "Dátum", + "entries.unlinked.relink.attempting": "%{len(self.lib.missing_files)}/%{x[0]+1} elem újra összekapcsolásának megkísérlése; %{self.fixed} elem sikeresen újra összekapcsolva", + "entries.unlinked.relink.manual": "Újra összekapcsolás kézileg", + "entries.unlinked.relink.title": "Elemek újra összekapcsolása", + "entries.unlinked.scanning": "Kapcsolat nélküli elemek keresése a könyvtárban…", + "entries.unlinked.search_and_relink": "Keresés és újra összekapcsolás", + "entries.unlinked.title": "Kapcsolat nélküli elemek javítása", "file.date_created": "Létrehozás dátuma", "file.date_modified": "Módosítás dátuma", - "library.date_published": "Közzététel dátuma", - "library.date_released": "Kiadás dátuma", - "library.date_taken": "Készítés dátuma", - "library.date_uploaded": "Feltöltés dátuma", - "library.description": "Leírás", - "library.favorite": "Kedvenc", - "library.guest_artist": "Társelőadó", - "library.magazine": "Magazin", - "library.manga": "Manga", - "library.meta_tags": "Metacímkék", - "library.notes": "Jegyzetek", - "library.publisher": "Kiadó", - "library.series": "Sorozat", - "library.source": "Forrás", - "entries.tags": "Címkék", - "library.title": "Cím", - "library.url": "Hivatkozás", - "library.volume": "Kötet", + "file.dimensions": "Méret", + "file.duplicates.dupeguru.advice": "A tükrözés befejezése után a DupeGuruval kitörölheti a nem kívánt fájlokat. Ezt követően, a TagStudio „Kapcsolat nélküli elemek javítása” funkciójával eltávolíthatja az árván maradt elemeket.", + "file.duplicates.dupeguru.file_extension": "DupeGuru-fájlok (*.dupeguru)", + "file.duplicates.dupeguru.load_file": "DupeGuru fájl betöltése", + "file.duplicates.dupeguru.no_file": "Nincs kiválasztott DupeGuru-fájl.", + "file.duplicates.dupeguru.open_file": "DupeGuru-fájl megnyitása", + "file.duplicates.fix": "Egyező fájlok egyesítése", + "file.duplicates.matches": "%{count} egyező fájl", + "file.duplicates.matches_uninitialized": "Nincsenek egyező fájlok", + "file.duplicates.mirror.description": "Az összes adat átmásolása minden összetartozó fájl között, ezzel kiegészítve a hiányzó címkéket eltávolítás és duplikálás nélkül. Ez a folyamat nem fog adatokat vagy fájlokat törölni.", + "file.duplicates.mirror_entries": "Elemek tükrözése", + "file.not_found": "Az alábbi fájl nem található:", + "file.open_file": "Fájl megnyitása", + "file.open_location.generic": "Fájl megnyitása Intézőben", + "folders_to_tags.converting": "Mappák címkékké alakítása", + "folders_to_tags.description": "Címkék automatikus létrehozása a létező mappastruktúra alapján.\nAz alábbi mappafán megtekintheti a létrehozandó címkéket, és hogy mely elemekre lesznek alkalmazva.", + "folders_to_tags.open_all": "Összes megnyitása", + "folders_to_tags.title": "Címkék létrehozása mappák alapján", + "generic.add": "Hozzáadás", + "generic.apply": "Alkalmaz", + "generic.cancel": "Mégse", + "generic.delete": "Törlés", + "generic.done": "Kész", + "generic.edit": "Szerkesztés", + "generic.recent_libraries": "Legutóbbi könytárak", + "home.search": "Keresés", + "home.search_entries": "Tételek keresése", + "home.search_tags": "Címkék keresése", + "home.thumbnail_size": "Indexkép mérete", + "ignore_list.add_extension": "Kiterjesztés hozzáadása", + "ignore_list.mode.exclude": "Elrejtés", + "ignore_list.mode.include": "Mutatás", + "ignore_list.mode.label": "Listázott elemek módja:", + "ignore_list.title": "Kiterjesztések", + "library.field.add": "Új mező", + "library.field.confirm_remove": "Biztosan el akarja távolítani a(z) „%{self.lib.get_field_attr(field, \"name\")}”-mezőt?", + "library.field.mixed_data": "Kevert adatok", + "library.field.remove": "Mező eltávolítása", + "library.missing": "Hiányzó hely", + "library.name": "Könyvtár", + "library.refresh.scanning": "Új fájlok keresése a mappákban…\n%{x + 1} fájl megvizsgálva; ebből %{len(self.lib.files_not_in_library)} új", + "library.refresh.scanning_preparing": "Új fájlok keresése a mappákban…\nElőkészítés…", + "library.refresh.title": "Mappák frissítése", + "library.scan_library.title": "Könyvtár vizsgálata", + "macros.running.dialog.new_entries": "Korábban beállított makrók futtatása %{len(new_ids)}/%{x + 1} új elemen", + "macros.running.dialog.title": "Makrók futtatása az új elemeken", "menu.edit": "Szerkesztés", "menu.file": "Fájl", "menu.help": "Súgó", "menu.macros": "Makrók", "menu.tools": "Eszközök", "menu.window": "Ablak", - "merge.merge_dupe_entries": "Egyező elemek egyesítése", - "entries.duplicate.merge.label": "Egyező elemek egyesítése", - "entries.mirror.confirmation": "Biztosan tükrözni akarja az alábbi adatokat %{len(self.lib.dupe_files)} különböző elemre?", - "entries.mirror.label": "%{count}/1 elem tükrözése folyamatban…", - "entries.mirror.title": "Elemek tükrözése", - "open_library.library_creation_return_code": "A könyvtárlétrehozási folyamat visszatérési kódja:", - "open_library.no_tagstudio_library_found": "A program nem talált létező TagStudio-könyvtárat az alábbi elérési úton: „%{path}”. Ezen a helyen egy új könyvtár lesz létrehozva.", - "library.name": "Könyvtár", - "file.dimensions": "Méret", - "generic.recent_libraries": "Legutóbbi könytárak", - "library.field.confirm_remove": "Biztosan el akarja távolítani a(z) „%{self.lib.get_field_attr(field, \"name\")}”-mezőt?", - "generic.edit": "Szerkesztés", - "library.missing": "Hiányzó hely", - "library.field.mixed_data": "Kevert adatok", "preview.no_selection": "Nincs kijelölt elem", - "preview_panel.unknown_field_type": "Ismeretlen mezőtípus", - "preview_panel.update_widgets": "[ENTRY PANEL] UPDATE WIDGETS (%{self.driver.selected})", - "macros.running.dialog.title": "Makrók futtatása az új elemeken", - "progression.running_macros.one_new_entry": "Korábban beállított makrók futtatása %{len(new_ids)}/1 új elemen", - "macros.running.dialog.new_entries": "Korábban beállított makrók futtatása %{len(new_ids)}/%{x + 1} új elemen", - "entries.unlinked.relink.attempting": "%{len(self.lib.missing_files)}/%{x[0]+1} elem újra összekapcsolásának megkísérlése; %{self.fixed} elem sikeresen újra összekapcsolva", - "entries.unlinked.relink.title": "Elemek újra összekapcsolása", - "splash.open_library": "Könyvtár megnyitása", "status.library_backup_success": "A biztonsági mentés létrehozása megtörtént az alábbi elérési úton:", - "status.enumerate_query": "Keresési kifejezés: %{query}; %{i}. képokcka; Hossz: %{len(f)}", - "status.number_results_found": "%{len(all_items)} találat az alábbi kifejezésre: „%{query}” (%{format_timespan(end_time - start_time)})", - "status.results": "találat", "status.library_save_success": "A könyvtár mentése és bezárása sikeresen megtörtént.", "status.library_search_query": "Az alábbi kifejezés keresése a könyvtárban:", + "status.results": "találat", "tag.add": "Címke hozzáadása", "tag.add_to_search": "Keresési kifejezés kiegészítése", - "tag_manager.title": "Könyvtárcímkék", + "tag.aliases": "Áljelek", + "tag.color": "Szín", + "tag.name": "Név", "tag.new": "Új címke", + "tag.parent_tags": "Szülőcímkék", + "tag.parent_tags.add": "Új szülőcímke", "tag.search_for_tag": "Címke keresése", - "text_line_edit.unknown_event_type": "Ismeretlen eseménytípus: %{event}", - "tooltip.open_library": "Ctrl+O", - "tooltip.save_library": "Ctrl+S" + "tag.shorthand": "Rövidítés", + "tag_manager.title": "Könyvtárcímkék" } diff --git a/tagstudio/resources/translations/it.json b/tagstudio/resources/translations/it.json index b4110d10..6ce64de2 100644 --- a/tagstudio/resources/translations/it.json +++ b/tagstudio/resources/translations/it.json @@ -1,19 +1,13 @@ { "generic.add": "Aggiungi", "generic.cancel": "Annulla", - "tag.color": "Colore", "generic.delete": "Elimina", - "tag.name": "Nome", - "home.base_title": "TagStudio Alfa", - "home.main_window": "Finestra principale", + "generic.recent_libraries": "Librerias Recenti", "home.search": "Cerca", - "library.Artist": "Artista", - "library.book": "Libro", - "library.description": "Descrizione", - "library.title": "Titolo", "menu.file": "File", "menu.window": "Finestra", - "generic.recent_libraries": "Librerias Recenti", "tag.add": "Aggiungi Tag", + "tag.color": "Colore", + "tag.name": "Nome", "tag.new": "Nuovo Tag" -} \ No newline at end of file +} diff --git a/tagstudio/resources/translations/nb_NO.json b/tagstudio/resources/translations/nb_NO.json index 7d6fd26e..294f9f74 100644 --- a/tagstudio/resources/translations/nb_NO.json +++ b/tagstudio/resources/translations/nb_NO.json @@ -1,102 +1,67 @@ { - "library.field.add": "Legg til felt", + "entries.duplicate.merge.label": "Fletter duplikatoppføringer …", + "entries.mirror": "Speil", + "entries.tags": "Etiketter", "entries.unlinked.delete.confirm": "Slett følgende %{len(self.lib.missing_files)} oppføringer?", "entries.unlinked.delete.deleting": "Sletting av oppføringer", "entries.unlinked.delete.deleting_count": "Sletter %{x[0]+1}/{len(self.lib.missing_files)} ulenkede oppføringer", - "dialog.open_create_library": "Åpne/opprett bibliotek", - "dialog.save_library": "Lagre bibliotek", - "ignore_list.add_extension": "Legg til utvidelse", - "ignore_list.mode.label": "Listemodus:", - "file.not_found": "Fant ikke filen:", - "file_opener.open_file": "Åpner fil :}", - "file.duplicates.fix": "Fiks duplikatfiler", - "file.duplicates.dupeguru.load_file": "Last inn DupeGuru-fil", - "file.duplicates.mirror_entries": "Speil oppføringer", + "entries.unlinked.refresh_all": "Gjenoppfrisk alle", + "entries.unlinked.scanning": "Skanner bibliotek for ulenkede oppføringer …", + "entries.unlinked.title": "Fiks ulenkede oppføringer", + "file.date_created": "Dato opprettet", + "file.date_modified": "Endringsdato", + "file.dimensions": "Dimensjoner", "file.duplicates.dupeguru.file_extension": "DupeGuru-filer (*.dupeguru)", + "file.duplicates.dupeguru.load_file": "Last inn DupeGuru-fil", "file.duplicates.dupeguru.no_file": "Ingen DupeGuru-fil valgt", "file.duplicates.dupeguru.open_file": "Åpne DupeGuru-resultatfil", - "entries.unlinked.title": "Fiks ulenkede oppføringer", - "entries.unlinked.scanning": "Skanner bibliotek for ulenkede oppføringer …", - "library.scan_library.title": "Skanning av bibliotek", + "file.duplicates.fix": "Fiks duplikatfiler", + "file.duplicates.mirror_entries": "Speil oppføringer", + "file.not_found": "Fant ikke filen:", + "file.open_file": "Åpne fil", + "file.open_location.generic": "Åpne fil i utforsker", "folders_to_tags.converting": "Konverterer mapper til etiketter", + "folders_to_tags.open_all": "Åpne alle", "folders_to_tags.title": "Opprett etiketter fra mapper", "generic.add": "Legg til", "generic.apply": "Bruk", "generic.cancel": "Avbryt", - "generic.close_all": "Lukk alle", - "tag.color": "Farge", "generic.delete": "Slett", "generic.done": "Ferdig", - "ignore_list.mode.exclude": "Utelat", - "ignore_list.title": "Filutvidelse", - "ignore_list.mode.include": "Inkluder", - "entries.mirror": "Speil", - "tag.name": "Navn", - "folders_to_tags.open_all": "Åpne alle", - "file.open_file": "Åpne fil", - "file.open_location.generic": "Åpne fil i utforsker", - "entries.unlinked.refresh_all": "Gjenoppfrisk alle", - "library.field.remove": "Fjern felt", - "home.search_tags": "Søk etter etiketter", - "home.main_window": "Hovedvindu", + "generic.edit": "Rediger", + "generic.recent_libraries": "Nylige bibliotek", "home.search": "Søk", "home.search_entries": "Søk etter oppføringer", + "home.search_tags": "Søk etter etiketter", "home.thumbnail_size": "Miniatyrbildestørrelse", - "landing.open_button": "Åpne/opprett bibliotek %{open_shortcut_text}", - "library.Artist": "Artist", - "library.archived": "Arkiveringsdato", - "library.author": "Forfatter", - "library.book": "Bok", - "library.comic": "Tegneserie", - "library.comments": "Kommentarer", - "library.content_tags": "Innholdsetiketter", - "library.date": "Dato", - "file.date_created": "Dato opprettet", - "file.date_modified": "Endringsdato", - "library.date_published": "Publiseringsdato", - "library.date_released": "Slippdato", - "library.date_taken": "Dato knipset", - "library.date_uploaded": "Opplastingsdato", - "library.description": "Beskrivelse", - "library.favorite": "Favoritt", - "library.guest_artist": "Gjesteartist", - "library.magazine": "Magasin", - "library.manga": "Manga", - "library.meta_tags": "Metaetiketter", - "library.notes": "Notater", - "library.publisher": "Utgiver", - "library.series": "Serie", - "library.source": "Kilde", - "entries.tags": "Etiketter", - "library.url": "Nettadresse", + "ignore_list.add_extension": "Legg til utvidelse", + "ignore_list.mode.exclude": "Utelat", + "ignore_list.mode.include": "Inkluder", + "ignore_list.mode.label": "Listemodus:", + "ignore_list.title": "Filutvidelse", + "library.field.add": "Legg til felt", + "library.field.confirm_remove": "Fjern dette «%{self.lib.get_field_attr(field, \"name\")}»-feltet?", + "library.field.mixed_data": "Blandet data", + "library.field.remove": "Fjern felt", + "library.missing": "Posisjon mangler", + "library.name": "Bibliotek", + "library.scan_library.title": "Skanning av bibliotek", "menu.edit": "Rediger", "menu.file": "Fil", "menu.help": "Hjelp", "menu.macros": "Makroer", "menu.tools": "Verktøy", "menu.window": "Vindu", - "merge.merge_dupe_entries": "Fletter duplikatoppføringer …", - "entries.duplicate.merge.label": "Fletter duplikatoppføringer …", - "library.name": "Bibliotek", - "file.dimensions": "Dimensjoner", - "generic.recent_libraries": "Nylige bibliotek", - "library.field.confirm_remove": "Fjern dette «%{self.lib.get_field_attr(field, \"name\")}»-feltet?", - "generic.edit": "Rediger", - "library.missing": "Posisjon mangler", - "library.field.mixed_data": "Blandet data", "preview.no_selection": "Ingen elementer valgt", - "preview_panel.unknown_field_type": "Ukjent felttype", - "splash.open_library": "Åpner bibliotek …", "status.library_backup_success": "Kopi av bibliotek lagret i:", - "status.results": "Resultat", "status.library_save_success": "Bibliotek lagret og lukket.", "status.library_search_query": "Søker i biblioteket etter", + "status.results": "Resultat", "tag.add": "Legg til etikett", "tag.add_to_search": "Legg til søk", - "tag_manager.title": "Biblioteksetiketter", + "tag.color": "Farge", + "tag.name": "Navn", "tag.new": "Ny etikett", "tag.search_for_tag": "Søk etter etikett", - "text_line_edit.unknown_event_type": "ukjent begivenhetstype: %{event}", - "tooltip.open_library": "Ctrl+O", - "tooltip.save_library": "Ctrl+S" + "tag_manager.title": "Biblioteksetiketter" } diff --git a/tagstudio/resources/translations/pl.json b/tagstudio/resources/translations/pl.json index fd88b7cc..c3ccdc07 100644 --- a/tagstudio/resources/translations/pl.json +++ b/tagstudio/resources/translations/pl.json @@ -1,138 +1,90 @@ { - "library.field.add": "Dodaj pole", - "tag.parent_tags.add": "Dodaj tagi nadrzędne", - "tag.parent_tags": "Tagi nadrzędne", + "entries.duplicate.merge.label": "Łączenie zduplikowanych wpisów", + "entries.duplicate.refresh": "Odśwież zduplikowane wpisy", + "entries.duplicates.description": "Zduplikowane wpisy są zdefiniowane jako wielokrotne wpisy które wskazują na ten sam plik na dysku. Złączenie ich złączy tagi i metadane ze wszystkich duplikatów w jeden wpis. Nie mylić tego ze \"zduplikowanymi plikami\" które są duplikatami samych plików poza TagStudio.", + "entries.mirror": "Odzwierciedl", + "entries.mirror.confirmation": "Jesteś pewien że chcesz odzwierciedlić następujące %{len(self.lib.dupe_files)} wpisy?", + "entries.mirror.label": "Odzwierciedlanie 1/%{count} wpisów...", + "entries.mirror.title": "Odzwierciedlanie wpisów", + "entries.tags": "Tagi", + "entries.unlinked.delete": "Usuń odłączone wpisy", "entries.unlinked.delete.confirm": "Jesteś pewien że chesz usunąć następujące %{len(self.lib.missing_files)} wpisy?", "entries.unlinked.delete.deleting": "Usuwanie wpisów", - "entries.unlinked.delete": "Usuń odłączone wpisy", "entries.unlinked.delete.deleting_count": "Usuwanie %{x[0]+1}/{len(self.lib.missing_files)} odłączonych wpisów", - "dialog.open_create_library": "Otwórz/Stwórz bibliotekę", - "library.refresh.title": "Odświeżanie katalogów", - "dialog.save_library": "Zapisz bibliotekę", - "library.refresh.scanning_preparing": "Skanowanie katalogów w poszukiwaniu nowych plików\nPrzygotowywanie...", - "library.refresh.scanning": "Skanowanie katalogów w celu znalezienia nowych plików...\n%{x + 1} File%{\"s\" if x + 1 != 1 else \"\"} Przeszukano, Znaleziono %{len(self.lib.files_not_in_library)} nowych plików", - "ignore_list.add_extension": "Dodaj rozszerzenie", - "ignore_list.mode.label": "Tryb listy:", - "file.not_found": "Nie znaleziono pliku:", - "file.duplicates.dupeguru.advice": "Po odzwierciedlaniu możesz użyć DupeGuru żeby usunąć niechciane pliki. Później użyj funkcji TagStudio \"Napraw odłączone wpisy\" w menu narzędzi w celu usunięcia odłączonych wpisów.", - "file.duplicates.fix": "Napraw zduplikowane pliki", - "file.duplicates.dupeguru.load_file": "Wczytaj plik DupeGuru", - "file.duplicates.mirror.description": "Odzwierciedla dane wpisu w każdym zduplikowanym zestawie, łącząc wszystkie dane nie usuwając i nie duplikując pól. Ta operacja nie usunie żadnych plików ani danych.", - "file.duplicates.mirror_entries": "Odzwierciedl wpisy", - "file.duplicates.dupeguru.file_extension": "Pliki DupeGuru (*.dupeguru)", - "file.duplicates.matches_uninitialized": "Dopasowania zduplikowanych plików: Brak", - "file.duplicates.dupeguru.no_file": "Nie wybrano pliku DupeGuru", - "file.duplicates.matches": "Dopasowania zduplikowanych plików: %{count}", - "file.duplicates.dupeguru.open_file": "Otwórz plik wyników DupeGuru", - "fix_unlinked.delete_unlinked": "Usuń odłączone wpisy", "entries.unlinked.description": "Każdy wpis w bibliotece jest połączony z plikiem w jednym z twoich katalogów. Jeśli połączony plik jest przeniesiony poza TagStudio albo usunięty to jest uważany za odłączony. Odłączone wpisy mogą być automatycznie połączone ponownie przez szukanie twoich katalogów, ręczne ponowne łączenie przez użytkownika lub usunięte jeśli zajdzie taka potrzeba.", - "entries.duplicates.description": "Zduplikowane wpisy są zdefiniowane jako wielokrotne wpisy które wskazują na ten sam plik na dysku. Złączenie ich złączy tagi i metadane ze wszystkich duplikatów w jeden wpis. Nie mylić tego ze \"zduplikowanymi plikami\" które są duplikatami samych plików poza TagStudio.", - "entries.unlinked.title": "Napraw odłączone wpisy", - "entries.unlinked.relink.manual": "Ręczne ponowne łączenie", - "fix_unlinked.merge_dupes": "Złącz zduplikowane wpisy", - "entries.duplicate.refresh": "Odśwież zduplikowane wpisy", - "entries.unlinked.scanning": "Skanowanie biblioteki dla odłączonych wpisów...", - "library.scan_library.title": "Skanowanie biblioteki", - "folders_to_tags.converting": "Konwertowanie folderów na tagi", - "folders_to_tags.title": "Stwórz tagi z folderów", - "generic.add": "Dodaj", - "tag.aliases": "Aliasy", - "generic.apply": "Zastosuj", - "generic.cancel": "Anuluj", - "generic.close_all": "Zamknij wszystkie", - "tag.color": "Kolor", - "generic.delete": "Usuń", - "generic.done": "Zrobione", - "ignore_list.mode.exclude": "Wyklucz", - "ignore_list.title": "Rozszerzenia pliku", - "ignore_list.mode.include": "Uwzględnij", - "entries.mirror": "Odzwierciedl", - "tag.name": "Nazwa", - "folders_to_tags.open_all": "Otwórz wszystkie", - "file.open_file": "Otwórz plik", - "file.open_location.generic": "Otwórz plik w przeglądarce plików", "entries.unlinked.refresh_all": "Odśwież wszystko", - "library.field.remove": "Usuń pole", - "home.search_tags": "Przeszukaj tagi", - "tag.shorthand": "Skrót", - "home.base_title": "TagStudio Alfa", - "home.include_all_tags": "I (zawiera wszystkie tagi)", - "home.include_any_tag": "Lub (zawiera dowolny tag)", - "home.main_window": "Główne okno", - "home.search": "Szukaj", - "home.search_entries": "Przeszukaj wpisy", - "home.thumbnail_size": "Rozmiar miniaturek", - "landing.open_button": "Otwórz/Stwórz bibliotekę %{open_shortcut_text}", - "library.Artist": "Artysta", - "library.anthology": "Antologia", - "library.archived": "Data zarchiwizowania", - "library.author": "Autor", - "library.book": "Książka", - "library.comic": "Komiks", - "library.comments": "Komentarze", - "library.composer": "Kompozytor", - "library.content_tags": "Tagi zawartości", - "library.date": "Data", + "entries.unlinked.relink.attempting": "Próbowanie ponownego łączenia %{x[0]+1}/%{len(self.lib.missing_files)} wpisów, %{self.fixed} poprawnie połączono ponownie", + "entries.unlinked.relink.manual": "Ręczne ponowne łączenie", + "entries.unlinked.relink.title": "Ponowne łączenie wpisów", + "entries.unlinked.scanning": "Skanowanie biblioteki dla odłączonych wpisów...", + "entries.unlinked.title": "Napraw odłączone wpisy", "file.date_created": "Data utworzenia", "file.date_modified": "Data modyfikacji", - "library.date_published": "Data opublikowania", - "library.date_released": "Data wydania", - "library.date_taken": "Data zrobienia", - "library.date_uploaded": "Data przesłania", - "library.description": "Opis", - "library.favorite": "Ulubione", - "library.guest_artist": "Gościnny artysta", - "library.magazine": "Magazyn", - "library.manga": "Manga", - "library.meta_tags": "Meta tagi", - "library.notes": "Notatki", - "library.publisher": "Wydawca", - "library.series": "Seria", - "library.source": "Źródło", - "entries.tags": "Tagi", - "library.title": "Tytuł", - "library.url": "URL", - "library.volume": "Tom", + "file.dimensions": "Wymiary", + "file.duplicates.dupeguru.advice": "Po odzwierciedlaniu możesz użyć DupeGuru żeby usunąć niechciane pliki. Później użyj funkcji TagStudio \"Napraw odłączone wpisy\" w menu narzędzi w celu usunięcia odłączonych wpisów.", + "file.duplicates.dupeguru.file_extension": "Pliki DupeGuru (*.dupeguru)", + "file.duplicates.dupeguru.load_file": "Wczytaj plik DupeGuru", + "file.duplicates.dupeguru.no_file": "Nie wybrano pliku DupeGuru", + "file.duplicates.dupeguru.open_file": "Otwórz plik wyników DupeGuru", + "file.duplicates.fix": "Napraw zduplikowane pliki", + "file.duplicates.matches": "Dopasowania zduplikowanych plików: %{count}", + "file.duplicates.matches_uninitialized": "Dopasowania zduplikowanych plików: Brak", + "file.duplicates.mirror.description": "Odzwierciedla dane wpisu w każdym zduplikowanym zestawie, łącząc wszystkie dane nie usuwając i nie duplikując pól. Ta operacja nie usunie żadnych plików ani danych.", + "file.duplicates.mirror_entries": "Odzwierciedl wpisy", + "file.not_found": "Nie znaleziono pliku:", + "file.open_file": "Otwórz plik", + "file.open_location.generic": "Otwórz plik w przeglądarce plików", + "folders_to_tags.converting": "Konwertowanie folderów na tagi", + "folders_to_tags.open_all": "Otwórz wszystkie", + "folders_to_tags.title": "Stwórz tagi z folderów", + "generic.add": "Dodaj", + "generic.apply": "Zastosuj", + "generic.cancel": "Anuluj", + "generic.delete": "Usuń", + "generic.done": "Zrobione", + "generic.edit": "Edytuj", + "generic.recent_libraries": "Ostatnie biblioteki", + "home.search": "Szukaj", + "home.search_entries": "Przeszukaj wpisy", + "home.search_tags": "Przeszukaj tagi", + "home.thumbnail_size": "Rozmiar miniaturek", + "ignore_list.add_extension": "Dodaj rozszerzenie", + "ignore_list.mode.exclude": "Wyklucz", + "ignore_list.mode.include": "Uwzględnij", + "ignore_list.mode.label": "Tryb listy:", + "ignore_list.title": "Rozszerzenia pliku", + "library.field.add": "Dodaj pole", + "library.field.confirm_remove": "Jesteś pewien że chcesz usunąć pole \"%{self.lib.get_field_attr(field, \"name\")}\" ?", + "library.field.mixed_data": "Mieszane dane", + "library.field.remove": "Usuń pole", + "library.missing": "Brak lokalizacji", + "library.name": "Biblioteka", + "library.refresh.scanning": "Skanowanie katalogów w celu znalezienia nowych plików...\n%{x + 1} File%{\"s\" if x + 1 != 1 else \"\"} Przeszukano, Znaleziono %{len(self.lib.files_not_in_library)} nowych plików", + "library.refresh.scanning_preparing": "Skanowanie katalogów w poszukiwaniu nowych plików\nPrzygotowywanie...", + "library.refresh.title": "Odświeżanie katalogów", + "library.scan_library.title": "Skanowanie biblioteki", + "macros.running.dialog.new_entries": "Stosowanie skonfigurowanych makr na 1/%{len(new_ids)} nowych wpisach", + "macros.running.dialog.title": "Stosowanie makr na nowych wpisach", "menu.edit": "Edytuj", "menu.file": "Plik", "menu.help": "Pomoc", "menu.macros": "Makra", "menu.tools": "Narzędzia", "menu.window": "Okno", - "merge.merge_dupe_entries": "Łączenie zduplikowanych wpisów", - "entries.duplicate.merge.label": "Łączenie zduplikowanych wpisów", - "entries.mirror.confirmation": "Jesteś pewien że chcesz odzwierciedlić następujące %{len(self.lib.dupe_files)} wpisy?", - "entries.mirror.label": "Odzwierciedlanie 1/%{count} wpisów...", - "entries.mirror.title": "Odzwierciedlanie wpisów", - "open_library.library_creation_return_code": "Kod zwrotny tworzenia biblioteki:", - "open_library.no_tagstudio_library_found": "Nie znaleziono żadnej istniejącej biblioteki TagStudio w '%{path}'. Tworzenie nowej.", - "library.name": "Biblioteka", - "file.dimensions": "Wymiary", - "generic.recent_libraries": "Ostatnie biblioteki", - "library.field.confirm_remove": "Jesteś pewien że chcesz usunąć pole \"%{self.lib.get_field_attr(field, \"name\")}\" ?", - "generic.edit": "Edytuj", - "library.missing": "Brak lokalizacji", - "library.field.mixed_data": "Mieszane dane", "preview.no_selection": "Nie wybrano żadnych pozycji", - "preview_panel.unknown_field_type": "Nieznany typ pola", - "preview_panel.update_widgets": "[PANEL WEJŚCIOWY] AKTUALIZUJ WIDŻETY", - "macros.running.dialog.title": "Stosowanie makr na nowych wpisach", - "progression.running_macros.one_new_entry": "Stosowanie skonfigurowanych makr na 1/%{len(new_ids)} nowym wpisie", - "macros.running.dialog.new_entries": "Stosowanie skonfigurowanych makr na 1/%{len(new_ids)} nowych wpisach", - "entries.unlinked.relink.attempting": "Próbowanie ponownego łączenia %{x[0]+1}/%{len(self.lib.missing_files)} wpisów, %{self.fixed} poprawnie połączono ponownie", - "entries.unlinked.relink.title": "Ponowne łączenie wpisów", - "splash.open_library": "Otwieranie biblioteki", "status.library_backup_success": "Kopia zapasowa biblioteki zapisana w:", - "status.number_results_found": "Znaleziono %{len(all_items)} wyników dla \"%{query}\" (%{format_timespan(end_time - start_time)})", - "status.results": "Wyniki", "status.library_save_success": "Biblioteka zapisana i zamknięta!", "status.library_search_query": "Przeszukiwanie biblioteki dla", + "status.results": "Wyniki", "tag.add": "Dodaj tag", "tag.add_to_search": "Dodaj do wyszukiwania", - "tag_manager.title": "Biblioteka tagów", + "tag.aliases": "Aliasy", + "tag.color": "Kolor", + "tag.name": "Nazwa", "tag.new": "Nowy tag", + "tag.parent_tags": "Tagi nadrzędne", + "tag.parent_tags.add": "Dodaj tagi nadrzędne", "tag.search_for_tag": "Szukaj dla tagu", - "text_line_edit.unknown_event_type": "Nieznany typ zdarzenia: %{event}", - "tooltip.open_library": "Ctrl+O", - "tooltip.save_library": "Ctrl+S" + "tag.shorthand": "Skrót", + "tag_manager.title": "Biblioteka tagów" } diff --git a/tagstudio/resources/translations/pt_BR.json b/tagstudio/resources/translations/pt_BR.json index 20deb4f2..4055f4a9 100644 --- a/tagstudio/resources/translations/pt_BR.json +++ b/tagstudio/resources/translations/pt_BR.json @@ -1,144 +1,92 @@ { - "library.field.add": "Adicionar Campo", - "tag.parent_tags.add": "Adicionar Rótulo Pai", - "tag.parent_tags": "Rótulos Pai", + "entries.duplicate.merge.label": "Mesclando Entradas Duplicadas", + "entries.duplicate.refresh": "Atualizar Entradas Duplicadas", + "entries.duplicates.description": "Entradas duplicadas são definidas como multiplas entradas que levam ao mesmo arquivo no disco. Mergir essas entradas irá combinar as tags e metadados de todas as duplicatas em uma única entrada consolidada. Não confundir com \"Arquivos Duplicados\" que são duplicatas dos seus arquivos fora do TagStudio.", + "entries.mirror": "Espelho", + "entries.mirror.confirmation": "Tem certeza que você deseja espelhar os seguintes %{len(self.lib.dupe_files)} entradas?", + "entries.mirror.label": "Espelhando 1/%{count} Entradas...", + "entries.mirror.title": "Espelhando Entradas", + "entries.tags": "Rótulos", + "entries.unlinked.delete": "Deletar Entradas Não Linkada", "entries.unlinked.delete.confirm": "Tem certeza que deseja deletar as seguintes %{len(self.lib.missing_files)} entradas?", "entries.unlinked.delete.deleting": "Deletando Entradas", - "entries.unlinked.delete": "Deletar Entradas Não Linkada", "entries.unlinked.delete.deleting_count": "Deletando %{x[0]+1}/{len(self.lib.missing_files)} Entradas Não Linkadas", - "dialog.open_create_library": "Abrir/Criar Biblioteca", - "library.refresh.title": "Atualizando Diretórios", - "dialog.save_library": "Salvar Biblioteca", - "library.refresh.scanning_preparing": "Escaneando Diretórios por Novos Arquivos...\nPreparando...", - "library.refresh.scanning": "Escaneando Diretórios por Novos Arquivos...\n%{x + 1} Arquivo%{\"s\" if x + 1 != 1 else \"\"} Pesquisado%{\"s\" if x + 1 != 1 else \"\"}, %{len(self.lib.files_not_in_library)} Novo(s) Arquivo(s) Encontrado(s)", - "ignore_list.add_extension": "Adicionar Extensão", - "ignore_list.mode.label": "Modo de Lista:", - "file_opener.command_not_found": "Não foi possível encontrar %{command_name} na PATH do sistema", - "file.not_found": "Arquivo não encontrado:", - "file_opener.open_file": "Abrindo Arquivo:", - "file.duplicates.dupeguru.advice": "Após espelhagem, você estará livre para usar DupeGuru para deletar arquivos indesejados. Após, use a função \"Consertar Entradas Não Linkadas\" do TagStudio no menu de Ferramentas para deletar entradas não linkadas.", - "file.duplicates.fix": "Corrigir Arquivos Duplicados", - "file.duplicates.dupeguru.load_file": "Carregar Aquivo DupeGuru", - "file.duplicates.mirror.description": "Espelhe os ados de entrada em cada conjunto de correspondência duplicado, combinando todos os dados sem remover ou duplicar campos. Esta operação não excluirá nenhum arquivo ou dado.", - "file.duplicates.mirror_entries": "Entradas Espelhadas", - "file.duplicates.dupeguru.file_extension": "Arquivos DupeGuru (*.dupeguru)", - "file.duplicates.matches_uninitialized": "Correspondências de Arquivos Duplicados: N/A", - "file.duplicates.dupeguru.no_file": "Nenhum Arquivo DupeGuru Selecionado", - "file.duplicates.matches": "Correspondências de Arquivos Duplicados: %{count}", - "file.duplicates.dupeguru.open_file": "Abrir Arquivo de Resultados do DupeGuru", - "fix_unlinked.delete_unlinked": "Escluir Entradas Não Linkadas", "entries.unlinked.description": "Cada entrada na biblioteca está linkada a um arquivo em um dos seus diretórios. Se um arquivo linkado a uma entrada for movido ou deletado fora do TagStudio, ele é então considerado não linkado. Entradas não linkadas podem ser automaticamente re-linkadas por buscas nos seus diretórios, manualmente re-linkadas pelo usuário, ou deletada se for desejada.", - "entries.duplicates.description": "Entradas duplicadas são definidas como multiplas entradas que levam ao mesmo arquivo no disco. Mergir essas entradas irá combinar as tags e metadados de todas as duplicatas em uma única entrada consolidada. Não confundir com \"Arquivos Duplicados\" que são duplicatas dos seus arquivos fora do TagStudio.", - "entries.unlinked.title": "Corrigir Entradas Não Linkadas", - "entries.unlinked.relink.manual": "Relink Manual", - "fix_unlinked.merge_dupes": "Mesclar Entradas Duplicadas", - "entries.duplicate.refresh": "Atualizar Entradas Duplicadas", - "entries.unlinked.scanning": "Escaneando Bibliotecada para Entradas Não Linkadas...", - "library.scan_library.title": "Escaneando Biblioteca", - "entries.unlinked.search_and_relink": "Buscar && Relinkar", - "folders_to_tags.description": "Cria rótulos baseado na sua estrutura de arquivos e aplica elas nas suas entradas\nA estrutura abaixo mostra todos os rótulos que irão ser criados e a quais entradas eles serão aplicados.", - "folders_to_tags.converting": "Convertendo pastas para Rótulos", - "folders_to_tags.title": "Criar rótulos a partir das pastas", - "generic.add": "Adicionar", - "tag.aliases": "Alias", - "generic.apply": "Aplicar", - "generic.cancel": "Cancelar", - "generic.close_all": "Fechar Tudo", - "tag.color": "Cor", - "generic.delete": "Deletar", - "generic.done": "Completo", - "ignore_list.mode.exclude": "Excluir", - "ignore_list.title": "Extensões de Arquivo", - "ignore_list.mode.include": "Incluir", - "entries.mirror": "Espelho", - "tag.name": "Nome", - "folders_to_tags.open_all": "Abrir Tudo", - "file.open_file": "Abrir arquivo", - "file.open_location.generic": "Abrir no explorador de arquivos", "entries.unlinked.refresh_all": "Atualizar_Tudo", - "library.field.remove": "Remover Campo", - "home.search_tags": "Buscar Rótulos", - "tag.shorthand": "Taquigrafia", - "home.base_title": "TagStudio Alfa", - "home.include_all_tags": "E (Inclui todos os rótulos)", - "home.include_any_tag": "Ou (Inclui qualquer rótulo)", - "home.main_window": "Janela Principal", - "home.search": "Buscar", - "home.search_entries": "Buscar Entradas", - "home.thumbnail_size": "Tamanho de miniatura", - "landing.open_button": "Abrir/Criar Bliblioteca %{open_shortcut_text}", - "library.Artist": "Artista", - "library.anthology": "Coletânea", - "library.archived": "Data de Arquivação", - "library.author": "Autor", - "library.book": "Livro", - "library.collation": "Colagem", - "library.comic": "Quadrinho", - "library.comments": "Comentários", - "library.composer": "Compositor", - "library.content_tags": "Rótulos de conteúdo", - "library.date": "Data", + "entries.unlinked.relink.attempting": "Tentando Relinkar %{x[0]+1}/%{len(self.lib.missing_files)} Entradas, %{self.fixed} Relinkadas com Sucesso", + "entries.unlinked.relink.manual": "Relink Manual", + "entries.unlinked.relink.title": "Relinkando Entradas", + "entries.unlinked.scanning": "Escaneando Bibliotecada para Entradas Não Linkadas...", + "entries.unlinked.search_and_relink": "Buscar && Relinkar", + "entries.unlinked.title": "Corrigir Entradas Não Linkadas", "file.date_created": "Data de Criação", "file.date_modified": "Dada de Modificação", - "library.date_published": "Data de Publicação", - "library.date_released": "Data de Lançamento", - "library.date_taken": "Data de Criação", - "library.date_uploaded": "Data de Envio", - "library.description": "Descrição", - "library.favorite": "Favorito", - "library.guest_artist": "Artista Convidado", - "library.magazine": "Revista", - "library.manga": "Manga", - "library.meta_tags": "Meta Rótulos", - "library.notes": "Notas", - "library.publisher": "Editora", - "library.series": "Séries", - "library.source": "Fonte", - "entries.tags": "Rótulos", - "library.title": "Título", - "library.url": "URL", - "library.volume": "Volume", + "file.dimensions": "Dimensões", + "file.duplicates.dupeguru.advice": "Após espelhagem, você estará livre para usar DupeGuru para deletar arquivos indesejados. Após, use a função \"Consertar Entradas Não Linkadas\" do TagStudio no menu de Ferramentas para deletar entradas não linkadas.", + "file.duplicates.dupeguru.file_extension": "Arquivos DupeGuru (*.dupeguru)", + "file.duplicates.dupeguru.load_file": "Carregar Aquivo DupeGuru", + "file.duplicates.dupeguru.no_file": "Nenhum Arquivo DupeGuru Selecionado", + "file.duplicates.dupeguru.open_file": "Abrir Arquivo de Resultados do DupeGuru", + "file.duplicates.fix": "Corrigir Arquivos Duplicados", + "file.duplicates.matches": "Correspondências de Arquivos Duplicados: %{count}", + "file.duplicates.matches_uninitialized": "Correspondências de Arquivos Duplicados: N/A", + "file.duplicates.mirror.description": "Espelhe os ados de entrada em cada conjunto de correspondência duplicado, combinando todos os dados sem remover ou duplicar campos. Esta operação não excluirá nenhum arquivo ou dado.", + "file.duplicates.mirror_entries": "Entradas Espelhadas", + "file.not_found": "Arquivo não encontrado:", + "file.open_file": "Abrir arquivo", + "file.open_location.generic": "Abrir no explorador de arquivos", + "folders_to_tags.converting": "Convertendo pastas para Rótulos", + "folders_to_tags.description": "Cria rótulos baseado na sua estrutura de arquivos e aplica elas nas suas entradas\nA estrutura abaixo mostra todos os rótulos que irão ser criados e a quais entradas eles serão aplicados.", + "folders_to_tags.open_all": "Abrir Tudo", + "folders_to_tags.title": "Criar rótulos a partir das pastas", + "generic.add": "Adicionar", + "generic.apply": "Aplicar", + "generic.cancel": "Cancelar", + "generic.delete": "Deletar", + "generic.done": "Completo", + "generic.edit": "Editar", + "generic.recent_libraries": "Bibliotecas recentes", + "home.search": "Buscar", + "home.search_entries": "Buscar Entradas", + "home.search_tags": "Buscar Rótulos", + "home.thumbnail_size": "Tamanho de miniatura", + "ignore_list.add_extension": "Adicionar Extensão", + "ignore_list.mode.exclude": "Excluir", + "ignore_list.mode.include": "Incluir", + "ignore_list.mode.label": "Modo de Lista:", + "ignore_list.title": "Extensões de Arquivo", + "library.field.add": "Adicionar Campo", + "library.field.confirm_remove": "Você tem certeza de que quer remover o campo \"%{self.lib.get_field_attr(field, \"name\")}\"?", + "library.field.mixed_data": "Dados Mistos", + "library.field.remove": "Remover Campo", + "library.missing": "Localização Ausente", + "library.name": "Biblioteca", + "library.refresh.scanning": "Escaneando Diretórios por Novos Arquivos...\n%{x + 1} Arquivo%{\"s\" if x + 1 != 1 else \"\"} Pesquisado%{\"s\" if x + 1 != 1 else \"\"}, %{len(self.lib.files_not_in_library)} Novo(s) Arquivo(s) Encontrado(s)", + "library.refresh.scanning_preparing": "Escaneando Diretórios por Novos Arquivos...\nPreparando...", + "library.refresh.title": "Atualizando Diretórios", + "library.scan_library.title": "Escaneando Biblioteca", + "macros.running.dialog.new_entries": "Executando Macros Configurados em %{x + 1}/%{len(new_ids)} Novas Entradas", + "macros.running.dialog.title": "Executando Macros nas Novas Entradas", "menu.edit": "Editar", "menu.file": "Arquivo", "menu.help": "Ajuda", "menu.macros": "Macros", "menu.tools": "Ferramentas", "menu.window": "Janela", - "merge.merge_dupe_entries": "Mesclando Entradas Duplicadas", - "entries.duplicate.merge.label": "Mesclando Entradas Duplicadas", - "entries.mirror.confirmation": "Tem certeza que você deseja espelhar os seguintes %{len(self.lib.dupe_files)} entradas?", - "entries.mirror.label": "Espelhando 1/%{count} Entradas...", - "entries.mirror.title": "Espelhando Entradas", - "open_library.library_creation_return_code": "Código de Retorno da Criação da Biblioteca:", - "open_library.no_tagstudio_library_found": "Nenhuma biblioteca do TagStudio existente foi encontrada em '%{path}'. Criando uma.", - "library.name": "Biblioteca", - "file.dimensions": "Dimensões", - "generic.recent_libraries": "Bibliotecas recentes", - "library.field.confirm_remove": "Você tem certeza de que quer remover o campo \"%{self.lib.get_field_attr(field, \"name\")}\"?", - "generic.edit": "Editar", - "library.missing": "Localização Ausente", - "library.field.mixed_data": "Dados Mistos", "preview.no_selection": "Nenhum Item Selecionado", - "preview_panel.unknown_field_type": "Tipo de Campo Desconhecido", - "preview_panel.update_widgets": "[ENTRY PANEL] ATULIZAR WIDGETS (%{self.driver.selected})", - "macros.running.dialog.title": "Executando Macros nas Novas Entradas", - "progression.running_macros.one_new_entry": "Executando Macros Configurados em 1/%{len(new_ids)} Novas Entradas", - "macros.running.dialog.new_entries": "Executando Macros Configurados em %{x + 1}/%{len(new_ids)} Novas Entradas", - "entries.unlinked.relink.attempting": "Tentando Relinkar %{x[0]+1}/%{len(self.lib.missing_files)} Entradas, %{self.fixed} Relinkadas com Sucesso", - "entries.unlinked.relink.title": "Relinkando Entradas", - "splash.open_library": "Abrindo Biblioteca", "status.library_backup_success": "Backup da Biblioteca Salvo em:", - "status.enumerate_query": "Busca:%{query}, Quadro: %{i}, Tamanho: %{len(f)}", - "status.number_results_found": "%{len(all_items)} Resultados Encontrados para \"%{query}\" (%{format_timespan(end_time - start_time)})", - "status.results": "Resultados", "status.library_save_success": "Biblioteca Salva e Fechada!", "status.library_search_query": "Procurando na Biblioteca por", + "status.results": "Resultados", "tag.add": "Adicionar Rótulo", "tag.add_to_search": "Adicionar a Pesquisa", - "tag_manager.title": "Rótulos da biblioteca", + "tag.aliases": "Alias", + "tag.color": "Cor", + "tag.name": "Nome", "tag.new": "Novo Rótulo", + "tag.parent_tags": "Rótulos Pai", + "tag.parent_tags.add": "Adicionar Rótulo Pai", "tag.search_for_tag": "Procurar por Rótulo", - "text_line_edit.unknown_event_type": "tipo de evento desconhecido: %{event}", - "tooltip.open_library": "Ctrl+O", - "tooltip.save_library": "Ctrl+S" + "tag.shorthand": "Taquigrafia", + "tag_manager.title": "Rótulos da biblioteca" } diff --git a/tagstudio/resources/translations/ru.json b/tagstudio/resources/translations/ru.json index 49a61f90..a0bbd4ff 100644 --- a/tagstudio/resources/translations/ru.json +++ b/tagstudio/resources/translations/ru.json @@ -1,144 +1,92 @@ { - "library.field.add": "Добавить Категорию", - "tag.parent_tags.add": "Добавить Теги-родители", - "tag.parent_tags": "Теги-родители", + "entries.duplicate.merge.label": "Объединить повторяющиеся записи", + "entries.duplicate.refresh": "Обновить записи дубликаты", + "entries.duplicates.description": "Записи-дубликаты это несколько записей, которые одновременно привязаны к одному файлу. Объединение таких дубликатов соединит все теги и мета данные из этих записей в одну. Записи-дубликаты не стоит путать с несколькими копиями самого файла, которые могут существовать вне TagStudio.", + "entries.mirror": "Отзеркалить", + "entries.mirror.confirmation": "Вы уверенны, что хотите отзеркалить следующие %{len(self.lib.dupe_files)} записи?", + "entries.mirror.label": "Отзеркаливание 1/%{count} записей...", + "entries.mirror.title": "Отзеркаливание записей", + "entries.tags": "Теги", + "entries.unlinked.delete": "Удалить откреплённые записи", "entries.unlinked.delete.confirm": "Вы уверены в том, что желаете удалить %{len(self.lib.missing_files)} записи?", "entries.unlinked.delete.deleting": "Удаление записей", - "entries.unlinked.delete": "Удалить откреплённые записи", "entries.unlinked.delete.deleting_count": "Удалено %{x[0]+1}/{len(self.lib.missing_files)} откреплённых записей", - "dialog.open_create_library": "Открыть/Создать Библиотеку", - "library.refresh.title": "Обновление Каталога", - "dialog.save_library": "Сохранить Библиотеку", - "library.refresh.scanning_preparing": "Сканирование каталога на наличие новых файлов...\nПодготовка...", - "library.refresh.scanning": "Сканирование на наличие новых файлов...\n%{x + 1} File%{\"s\" if x + 1 != 1 else \"\"} Searched, %{len(self.lib.files_not_in_library)} Найдены новые файлы", - "ignore_list.add_extension": "Добавить расширение", - "ignore_list.mode.label": "Список режимов:", - "file_opener.command_not_found": "Не смог найти %{command_name} в системе PATH", - "file.not_found": "Файл не найден:", - "file_opener.open_file": "Открытие файла:}", - "file.duplicates.dupeguru.advice": "После отзеркаливания, вы можете использовать DupeGuru, чтобы удалить ненужные файлы. После этого, используйте функцию \"Исправить откреплённые записи\" внутри панели \"Инструменты\" TagStudio, чтобы удалить откреплённые записи.", - "file.duplicates.fix": "Исправить дубликаты", - "file.duplicates.dupeguru.load_file": "Загрузить файл DupeGuru", - "file.duplicates.mirror.description": "Отзеркалить данные записи внутри каждого указанного набора дубликатов, объединяя все данные внутри без удаления или дублирования категорий. Эта операция не удалит какие-либо файлы или данные.", - "file.duplicates.mirror_entries": "Отзеркалить записи", - "file.duplicates.dupeguru.file_extension": "Файлы DupeGuru (*.dupeguru)", - "file.duplicates.matches_uninitialized": "Совпадение файлов дубликатов: N/A", - "file.duplicates.dupeguru.no_file": "Файл DupeGuru не выбран", - "file.duplicates.matches": "Совпадения файлов дубликатов: %{count}", - "file.duplicates.dupeguru.open_file": "Открыть файл результатов DupeGuru", - "fix_unlinked.delete_unlinked": "Удалить откреплённые записи", "entries.unlinked.description": "Каждая запись в библиотеке привязана к файлу, находящегося внутри той или иной папки. Если файл, к которому была привязана запись, был удалён или перемещён без использования TagStudio, то запись становиться \"откреплённой\". Откреплённые записи могут быть прикреплены обратно через автоматический рескан, вручную прикреплены обратно пользователем, либо же удалены если в них нет надобности.", - "entries.duplicates.description": "Записи-дубликаты это несколько записей, которые одновременно привязаны к одному файлу. Объединение таких дубликатов соединит все теги и мета данные из этих записей в одну. Записи-дубликаты не стоит путать с несколькими копиями самого файла, которые могут существовать вне TagStudio.", - "entries.unlinked.title": "Исправить откреплённые записи", - "entries.unlinked.relink.manual": "Ручная привязка", - "fix_unlinked.merge_dupes": "Объединить записи дубликаты", - "entries.duplicate.refresh": "Обновить записи дубликаты", - "entries.unlinked.scanning": "Сканирование Библиотеки на наличие откреплённых записей...", - "library.scan_library.title": "Сканирование Библиотеки", - "entries.unlinked.search_and_relink": "Поиск и Привязка", - "folders_to_tags.description": "Создаёт теги для записей согласно имеющейся иерархии папок.\nВнизу указаны все теги, которые будут созданы, а также записи к которым они будут применены.", - "folders_to_tags.converting": "Конвертировать папки в теги", - "folders_to_tags.title": "Создать теги из папок", - "generic.add": "Добавить", - "tag.aliases": "Псевдонимы", - "generic.apply": "Применить", - "generic.cancel": "Отмена", - "generic.close_all": "Закрыть Всё", - "tag.color": "Цвет", - "generic.delete": "Удалить", - "generic.done": "Завершено", - "ignore_list.mode.exclude": "Исключить", - "ignore_list.title": "Расширения Файлов", - "ignore_list.mode.include": "Включить", - "entries.mirror": "Отзеркалить", - "tag.name": "Имя", - "folders_to_tags.open_all": "Открыть Всё", - "file.open_file": "Открыть файл", - "file.open_location.generic": "Открыть файл в проводнике", "entries.unlinked.refresh_all": "Обновить Всё", - "library.field.remove": "Удалить Категорию", - "home.search_tags": "Поиск тегов", - "tag.shorthand": "Сокращённое название", - "home.base_title": "TagStudio Альфа Версия", - "home.include_all_tags": "И (Файл содержит все теги)", - "home.include_any_tag": "Или (Файл содержит любой из тегов)", - "home.main_window": "Основное Окно", - "home.search": "Поиск", - "home.search_entries": "Поисковые запросы", - "home.thumbnail_size": "Размер иконок", - "landing.open_button": "Открыть/Создать Библиотеку %{open_shortcut_text}", - "library.Artist": "Художник", - "library.anthology": "Антология", - "library.archived": "Дата архивации", - "library.author": "Автор", - "library.book": "Книги", - "library.collation": "Сопоставление", - "library.comic": "Комиксы", - "library.comments": "Комментарии", - "library.composer": "Композитор", - "library.content_tags": "Теги содержимого", - "library.date": "Дата", + "entries.unlinked.relink.attempting": "Пытаемся вновь привязать %{x[0]+1}/%{len(self.lib.missing_files)} записей, %{self.fixed} Успешно привязано", + "entries.unlinked.relink.manual": "Ручная привязка", + "entries.unlinked.relink.title": "Привязка записей", + "entries.unlinked.scanning": "Сканирование Библиотеки на наличие откреплённых записей...", + "entries.unlinked.search_and_relink": "Поиск и Привязка", + "entries.unlinked.title": "Исправить откреплённые записи", "file.date_created": "Дата создания", "file.date_modified": "Дата изменения", - "library.date_published": "Дата публикации", - "library.date_released": "Дата выпуска", - "library.date_taken": "Дата съёмки", - "library.date_uploaded": "Дата загрузки", - "library.description": "Описание", - "library.favorite": "Избранное", - "library.guest_artist": "Соавтор", - "library.magazine": "Журнал", - "library.manga": "Манга", - "library.meta_tags": "Мета Теги", - "library.notes": "Заметки", - "library.publisher": "Издатель", - "library.series": "Серии", - "library.source": "Источники", - "entries.tags": "Теги", - "library.title": "Название", - "library.url": "URL", - "library.volume": "Том", + "file.dimensions": "Соотношения сторон", + "file.duplicates.dupeguru.advice": "После отзеркаливания, вы можете использовать DupeGuru, чтобы удалить ненужные файлы. После этого, используйте функцию \"Исправить откреплённые записи\" внутри панели \"Инструменты\" TagStudio, чтобы удалить откреплённые записи.", + "file.duplicates.dupeguru.file_extension": "Файлы DupeGuru (*.dupeguru)", + "file.duplicates.dupeguru.load_file": "Загрузить файл DupeGuru", + "file.duplicates.dupeguru.no_file": "Файл DupeGuru не выбран", + "file.duplicates.dupeguru.open_file": "Открыть файл результатов DupeGuru", + "file.duplicates.fix": "Исправить дубликаты", + "file.duplicates.matches": "Совпадения файлов дубликатов: %{count}", + "file.duplicates.matches_uninitialized": "Совпадение файлов дубликатов: N/A", + "file.duplicates.mirror.description": "Отзеркалить данные записи внутри каждого указанного набора дубликатов, объединяя все данные внутри без удаления или дублирования категорий. Эта операция не удалит какие-либо файлы или данные.", + "file.duplicates.mirror_entries": "Отзеркалить записи", + "file.not_found": "Файл не найден:", + "file.open_file": "Открыть файл", + "file.open_location.generic": "Открыть файл в проводнике", + "folders_to_tags.converting": "Конвертировать папки в теги", + "folders_to_tags.description": "Создаёт теги для записей согласно имеющейся иерархии папок.\nВнизу указаны все теги, которые будут созданы, а также записи к которым они будут применены.", + "folders_to_tags.open_all": "Открыть Всё", + "folders_to_tags.title": "Создать теги из папок", + "generic.add": "Добавить", + "generic.apply": "Применить", + "generic.cancel": "Отмена", + "generic.delete": "Удалить", + "generic.done": "Завершено", + "generic.edit": "Редактировать", + "generic.recent_libraries": "Недавние библиотеки", + "home.search": "Поиск", + "home.search_entries": "Поисковые запросы", + "home.search_tags": "Поиск тегов", + "home.thumbnail_size": "Размер иконок", + "ignore_list.add_extension": "Добавить расширение", + "ignore_list.mode.exclude": "Исключить", + "ignore_list.mode.include": "Включить", + "ignore_list.mode.label": "Список режимов:", + "ignore_list.title": "Расширения Файлов", + "library.field.add": "Добавить Категорию", + "library.field.confirm_remove": "Вы уверенны, что хотите удалить эту категорию \"%{self.lib.get_field_attr(field, \"name\")}\"?", + "library.field.mixed_data": "Смешанные данные", + "library.field.remove": "Удалить Категорию", + "library.missing": "Путь не найден", + "library.name": "Библиотека", + "library.refresh.scanning": "Сканирование на наличие новых файлов...\n%{x + 1} File%{\"s\" if x + 1 != 1 else \"\"} Searched, %{len(self.lib.files_not_in_library)} Найдены новые файлы", + "library.refresh.scanning_preparing": "Сканирование каталога на наличие новых файлов...\nПодготовка...", + "library.refresh.title": "Обновление Каталога", + "library.scan_library.title": "Сканирование Библиотеки", + "macros.running.dialog.new_entries": "Запуск сконфигурированных макросов в %{x + 1}/%{len(new_ids)} Новые файлы", + "macros.running.dialog.title": "Использование макросов на новых файлах", "menu.edit": "Редактировать", "menu.file": "Файл", "menu.help": "Помощь", "menu.macros": "Макросы", "menu.tools": "Инструменты", "menu.window": "Окно", - "merge.merge_dupe_entries": "Объединить повторяющиеся записи", - "entries.duplicate.merge.label": "Объединить повторяющиеся записи", - "entries.mirror.confirmation": "Вы уверенны, что хотите отзеркалить следующие %{len(self.lib.dupe_files)} записи?", - "entries.mirror.label": "Отзеркаливание 1/%{count} записей...", - "entries.mirror.title": "Отзеркаливание записей", - "open_library.library_creation_return_code": "Возвратный код создания библиотеки:", - "open_library.no_tagstudio_library_found": "Существующая библиотека TagStudio не найдена внутри '%{path}'. Создаём новую.", - "library.name": "Библиотека", - "file.dimensions": "Соотношения сторон", - "generic.recent_libraries": "Недавние библиотеки", - "library.field.confirm_remove": "Вы уверенны, что хотите удалить эту категорию \"%{self.lib.get_field_attr(field, \"name\")}\"?", - "generic.edit": "Редактировать", - "library.missing": "Путь не найден", - "library.field.mixed_data": "Смешанные данные", "preview.no_selection": "Ничего не выбрано", - "preview_panel.unknown_field_type": "Неизвестный тип категории", - "preview_panel.update_widgets": "[ENTRY PANEL] ОБНОВИТЬ ВИДЖЕТЫ (%{self.driver.selected})", - "macros.running.dialog.title": "Использование макросов на новых файлах", - "progression.running_macros.one_new_entry": "Запуск сконфигурированных макросов в 1/%{len(new_ids)} Новые файлы", - "macros.running.dialog.new_entries": "Запуск сконфигурированных макросов в %{x + 1}/%{len(new_ids)} Новые файлы", - "entries.unlinked.relink.attempting": "Пытаемся вновь привязать %{x[0]+1}/%{len(self.lib.missing_files)} записей, %{self.fixed} Успешно привязано", - "entries.unlinked.relink.title": "Привязка записей", - "splash.open_library": "Открытие Библиотеки", "status.library_backup_success": "Резервная копия библиотеки сохранена по адресу:", - "status.enumerate_query": "Query:%{query}, Frame: %{i}, Length: %{len(f)}", - "status.number_results_found": "%{len(all_items)} Было найдено \"%{query}\" (%{format_timespan(end_time - start_time)})", - "status.results": "Результаты", "status.library_save_success": "Библиотека сохранена и закрыта!", "status.library_search_query": "Поиск по библиотеке", + "status.results": "Результаты", "tag.add": "Добавить тег", "tag.add_to_search": "Добавить к поисковому запросу", - "tag_manager.title": "Библиотека тегов", + "tag.aliases": "Псевдонимы", + "tag.color": "Цвет", + "tag.name": "Имя", "tag.new": "Новый тег", + "tag.parent_tags": "Теги-родители", + "tag.parent_tags.add": "Добавить Теги-родители", "tag.search_for_tag": "Поиск тега", - "text_line_edit.unknown_event_type": "unknown event type: %{event}", - "tooltip.open_library": "Ctrl+O", - "tooltip.save_library": "Ctrl+S" + "tag.shorthand": "Сокращённое название", + "tag_manager.title": "Библиотека тегов" } diff --git a/tagstudio/resources/translations/sv.json b/tagstudio/resources/translations/sv.json index 51661445..9e3c292d 100644 --- a/tagstudio/resources/translations/sv.json +++ b/tagstudio/resources/translations/sv.json @@ -1,114 +1,73 @@ { - "library.field.add": "Lägg till fält", - "tag.parent_tags.add": "Lägg till förälderetikett", - "tag.parent_tags": "Förälderetiketter", - "entries.unlinked.delete.deleting": "Tar bort poster", - "dialog.open_create_library": "Öppna/skapa bibliotek", - "library.refresh.title": "Uppdaterar kataloger", - "dialog.save_library": "Spara bibliotek", - "library.refresh.scanning_preparing": "Skannar kataloger efter nya filer...\nFörbereder...", - "ignore_list.add_extension": "Lägg till tillägg", - "file.not_found": "Kunde inte hitta filen:", - "file_opener.open_file": "Öppnar fil:}", - "file.duplicates.fix": "Fixa dubbla filer", - "file.duplicates.mirror_entries": "Spegla poster", - "fix_unlinked.delete_unlinked": "Ta bort olänkade poster", - "entries.unlinked.description": "Varje post i biblioteket är länkad till en fil i en av dina kataloger. Om en fil länkad till en post är flyttad eller borttagen utanför TagStudio blir den olänkad. Olänkade poster kan automatiskt bli omlänkade genom att söka genom dina kataloger, manuellt omlänkade av användaren eller tas bort om så önskas.", - "entries.duplicates.description": "Dubbla poster är definierade som flera poster som pekar på samma fil på datorn. Genom att slå ihop dessa poster kommer deras etiketter och metadata från dubbletterna att kombineras till en post. Dessa ska inte förväxlas med \"dubbla filer\", som är dubbletter av dina filer utanför TagStudio.", - "entries.unlinked.title": "Fixa olänkade poster", - "entries.unlinked.relink.manual": "Länka om manuellt", - "fix_unlinked.merge_dupes": "Slå ihop dubbla poster", + "entries.duplicate.merge.label": "Slår ihop dubbla poster", "entries.duplicate.refresh": "Uppdatera dubbla poster", - "entries.unlinked.scanning": "Skannar bibliotek efter olänkade poster...", - "library.scan_library.title": "Skannar bibliotek", - "entries.unlinked.search_and_relink": "Sök && Länka om", - "folders_to_tags.description": "Skapar etiketter baserat på din mappstruktur och tillämpar dem till dina poster.\nStrukturen nedan visar vilka etiketter som kommer skapas och vilka filer de kommer tillämpas på.", - "folders_to_tags.converting": "Konverterar mappar till etiketter", - "folders_to_tags.title": "Skapa etiketter från mappar", - "generic.add": "Lägg till", - "tag.aliases": "Alias", - "generic.apply": "Tillämpa", - "generic.cancel": "Avbryt", - "generic.close_all": "Stäng alla", - "tag.color": "Färg", - "generic.delete": "Ta bort", - "generic.done": "Klar", - "ignore_list.mode.exclude": "Exkludera", - "ignore_list.title": "Filnamnstillägg", - "ignore_list.mode.include": "Inkludera", + "entries.duplicates.description": "Dubbla poster är definierade som flera poster som pekar på samma fil på datorn. Genom att slå ihop dessa poster kommer deras etiketter och metadata från dubbletterna att kombineras till en post. Dessa ska inte förväxlas med \"dubbla filer\", som är dubbletter av dina filer utanför TagStudio.", "entries.mirror": "Spegla", - "tag.name": "Namn", - "folders_to_tags.open_all": "Öppna alla", - "file.open_file": "Öppna fil", - "file.open_location.generic": "Öppna fil i utforskaren", + "entries.mirror.title": "Speglar poster", + "entries.tags": "Etiketter", + "entries.unlinked.delete.deleting": "Tar bort poster", + "entries.unlinked.description": "Varje post i biblioteket är länkad till en fil i en av dina kataloger. Om en fil länkad till en post är flyttad eller borttagen utanför TagStudio blir den olänkad. Olänkade poster kan automatiskt bli omlänkade genom att söka genom dina kataloger, manuellt omlänkade av användaren eller tas bort om så önskas.", "entries.unlinked.refresh_all": "Uppdatera alla", - "library.field.remove": "Ta bort fält", - "home.search_tags": "Sök etikett", - "tag.shorthand": "Förkortning", - "home.base_title": "TagStudio Alfa", - "home.include_all_tags": "Och (Inkluderar alla etiketter)", - "home.include_any_tag": "Eller (Inkluderar alla etiketter)", - "home.main_window": "Huvudfönster", - "home.search": "Sök", - "home.search_entries": "Sök poster", - "home.thumbnail_size": "Miniatyrbildsstorlek", - "library.Artist": "Artist", - "library.anthology": "Antologi", - "library.archived": "Arkiveringsdatum", - "library.author": "Författare", - "library.book": "Bok", - "library.collation": "Kollation", - "library.comic": "Serietidning", - "library.comments": "Kommentarer", - "library.composer": "Kompositör", - "library.content_tags": "Innehållsetiketter", - "library.date": "Datum", + "entries.unlinked.relink.manual": "Länka om manuellt", + "entries.unlinked.relink.title": "Länkar om poster", + "entries.unlinked.scanning": "Skannar bibliotek efter olänkade poster...", + "entries.unlinked.search_and_relink": "Sök && Länka om", + "entries.unlinked.title": "Fixa olänkade poster", "file.date_created": "Skapad den", "file.date_modified": "Senast ändrad", - "library.date_published": "Publiceringsdatum", - "library.date_released": "Utgivningsdatum", - "library.date_uploaded": "Uppladdningsdatum", - "library.description": "Beskrivning", - "library.favorite": "Favorit", - "library.guest_artist": "Gästartist", - "library.magazine": "Magasin", - "library.manga": "Manga", - "library.meta_tags": "Meta-etiketter", - "library.notes": "Anteckningar", - "library.publisher": "Utgivare", - "library.series": "Serie", - "library.source": "Källa", - "entries.tags": "Etiketter", - "library.title": "Titel", - "library.url": "URL", - "library.volume": "Volym", + "file.dimensions": "Dimensioner", + "file.duplicates.fix": "Fixa dubbla filer", + "file.duplicates.mirror_entries": "Spegla poster", + "file.not_found": "Kunde inte hitta filen:", + "file.open_file": "Öppna fil", + "file.open_location.generic": "Öppna fil i utforskaren", + "folders_to_tags.converting": "Konverterar mappar till etiketter", + "folders_to_tags.description": "Skapar etiketter baserat på din mappstruktur och tillämpar dem till dina poster.\nStrukturen nedan visar vilka etiketter som kommer skapas och vilka filer de kommer tillämpas på.", + "folders_to_tags.open_all": "Öppna alla", + "folders_to_tags.title": "Skapa etiketter från mappar", + "generic.add": "Lägg till", + "generic.apply": "Tillämpa", + "generic.cancel": "Avbryt", + "generic.delete": "Ta bort", + "generic.done": "Klar", + "generic.edit": "Redigera", + "generic.recent_libraries": "Senaste biblioteken", + "home.search": "Sök", + "home.search_entries": "Sök poster", + "home.search_tags": "Sök etikett", + "home.thumbnail_size": "Miniatyrbildsstorlek", + "ignore_list.add_extension": "Lägg till tillägg", + "ignore_list.mode.exclude": "Exkludera", + "ignore_list.mode.include": "Inkludera", + "ignore_list.title": "Filnamnstillägg", + "library.field.add": "Lägg till fält", + "library.field.remove": "Ta bort fält", + "library.missing": "Platsen saknas", + "library.name": "Bibliotek", + "library.refresh.scanning_preparing": "Skannar kataloger efter nya filer...\nFörbereder...", + "library.refresh.title": "Uppdaterar kataloger", + "library.scan_library.title": "Skannar bibliotek", + "macros.running.dialog.title": "Kör makros på nya poster", "menu.edit": "Redigera", "menu.file": "Fil", "menu.help": "Hjälp", "menu.macros": "Makron", "menu.tools": "Verktyg", "menu.window": "Fönster", - "merge.merge_dupe_entries": "Slår ihop dubbla poster", - "entries.duplicate.merge.label": "Slår ihop dubbla poster", - "entries.mirror.title": "Speglar poster", - "library.name": "Bibliotek", - "file.dimensions": "Dimensioner", - "generic.recent_libraries": "Senaste biblioteken", - "generic.edit": "Redigera", - "library.missing": "Platsen saknas", "preview.no_selection": "Inga valda objekt", - "macros.running.dialog.title": "Kör makros på nya poster", - "entries.unlinked.relink.title": "Länkar om poster", - "splash.open_library": "Öppnar bibliotek", "status.library_backup_success": "Bibliotekets säkerhetskopia sparad i:", - "status.results": "Resultat", "status.library_save_success": "Bibliotek sparat och stängt!", "status.library_search_query": "Söker i biblioteket efter", + "status.results": "Resultat", "tag.add": "Lägg till etikett", "tag.add_to_search": "Lägg till i Sök", - "tag_manager.title": "Biblioteksetiketter", + "tag.aliases": "Alias", + "tag.color": "Färg", + "tag.name": "Namn", "tag.new": "Ny etikett", + "tag.parent_tags": "Förälderetiketter", + "tag.parent_tags.add": "Lägg till förälderetikett", "tag.search_for_tag": "Sök efter etikett", - "tooltip.open_library": "Ctrl+O", - "tooltip.save_library": "Ctrl+S" + "tag.shorthand": "Förkortning", + "tag_manager.title": "Biblioteksetiketter" } diff --git a/tagstudio/resources/translations/ta.json b/tagstudio/resources/translations/ta.json index dfb746b9..8a58a6de 100644 --- a/tagstudio/resources/translations/ta.json +++ b/tagstudio/resources/translations/ta.json @@ -1,144 +1,92 @@ { - "library.field.add": "புலத்தைச் சேர்க்க", - "tag.parent_tags.add": "பெற்றோர் குறிச்சொற்களைச் சேர்க்க", - "tag.parent_tags": "பெற்றோர் குறிச்சொற்கள்", + "entries.duplicate.merge.label": "மறுநுழைவுகளை ஒன்றுசேர்த்தல்", + "entries.duplicate.refresh": "நகல் உள்ளீடுகளைப் புதுப்பி", + "entries.duplicates.description": "மறுநுழைவுகள் என்பது, ஒரே கோப்பை குறிக்கும் பல நுழைவுகளை குறிக்கும். இவற்றை இணைப்பதால், அனைத்து மறுநுழைவுகளின் குறிச்சொற்களும் மெட்டாடேட்டாவும் ஒரே ஒட்டுமொத்த நுழைவாகச் சேர்க்கப்படும். இவற்றை 'மறுகோப்புகள்' என்பதுடன் குழப்பக் கூடாது, ஏனெனில் அவை டாக் ஸ்டுடியோவுக்கு வெளியேயுள்ள கோப்புகளின் நகல்களாகும்.", + "entries.mirror": "படிமம்", + "entries.mirror.confirmation": "பின்வரும் உள்ளீடுகளைப் பிரதிபலிக்க விரும்புகிறீர்களா %{len(self.lib.dupe_files)}?", + "entries.mirror.label": "1/%{count} உள்ளீடுகளைப் பிரதிபலிக்கப்படுகின்றது...", + "entries.mirror.title": "உள்ளீடுகள் பிரதிபழிக்கப்படுகின்றது", + "entries.tags": "குறிச்சொற்கள்", + "entries.unlinked.delete": "இணைக்கப்படாத உள்ளீடுகளை நீக்கு", "entries.unlinked.delete.confirm": "பின்வரும் உள்ளீடுகளை நிச்சயமாக நீக்க விரும்புகிறீர்களா %{len(self.lib.missing_files)}?", "entries.unlinked.delete.deleting": "உள்ளீடுகள் நீக்கப்படுகிறது", - "entries.unlinked.delete": "இணைக்கப்படாத உள்ளீடுகளை நீக்கு", "entries.unlinked.delete.deleting_count": "%{x[0]+1}/{len(self.lib.missing_files)} இணைக்கப்படாத உள்ளீடுகள் நீக்கப்படுகிறது", - "dialog.open_create_library": "நூலகத்தைத் திற/உருவாக்கு", - "library.refresh.title": "கோப்பகங்கள் புதுப்பிக்கப்படுகின்றன", - "dialog.save_library": "நூலகத்தைச் சேமி", - "library.refresh.scanning_preparing": "புதிய கோப்புகளுக்கான அடைவுகள் சோதனை செய்யப்படுகின்றது...\nதயாராகிறது...", - "library.refresh.scanning": "புதிய கோப்புகளுக்கான அடைவுகள் சோதனை செய்யப்படுகின்றது...\n%{x + 1} கோப்பு%{\"s\" if x + 1 != 1 else \"\"} தேடப்பட்டது, %{len(self.lib.files_not_in_library)} புதிய கோப்புகள் கிடைத்தன", - "ignore_list.add_extension": "நீட்டிப்பைச் சேர்க்க", - "ignore_list.mode.label": "பட்டியல் முறை:", - "file_opener.command_not_found": "%{command_name} ஐ system PATH இல் கண்டுபிடிக்க முடியவில்லை", - "file.not_found": "கோப்பு கிடைக்கவில்லை:", - "file_opener.open_file": "கோப்பைத் திறக்கிறது:}", - "file.duplicates.dupeguru.advice": "படிமம் முடிந்தவுடன், தேவையற்ற கோப்புகளை நீக்க DupeGuru ஐ பயன்படுத்தலாம். அதற்குப் பிறகு, இணைக்காத நுழைவுகளை நீக்க 'டாக் ஸ்டுடியோ' வின் 'இணைக்கப்படாத உள்ளீடுகளைச் சரிசெய்' அம்சத்தைக் கருவிகள் பட்டியில் பயன்படுத்தவும்.", - "file.duplicates.fix": "நகல் கோப்புகளைச் சரிசெய்", - "file.duplicates.dupeguru.load_file": "DupeGuru கோப்பை ஏற்றவும்", - "file.duplicates.mirror.description": "ஒவ்வொரு மறுநுழைவு பொருத்தத் தொகுப்பிலும் நுழைவு தரவுகளைப் பிரதிபலிக்கவும், அனைத்து தரவுகளையும் இணைக்கவும், எந்தத் தகவல்களையும் நீக்காமலும் மறு செய்யாமலும். இந்தச் செயலில் எந்தக் கோப்புகள் அல்லது தரவுகளும் நீக்கப்பட மாட்டாது.", - "file.duplicates.mirror_entries": "படிம நுழைவுகள்", - "file.duplicates.dupeguru.file_extension": "DupeGuru கோப்புகள் (*.dupeguru)", - "file.duplicates.matches_uninitialized": "நகல் கோப்பு பொருத்தங்கள்: ஒன்றும் இல்லை", - "file.duplicates.dupeguru.no_file": "DupeGuru கோப்பு எதுவும் தேர்ந்தெடுக்கப்படவில்லை", - "file.duplicates.matches": "நகல் கோப்பு பொருத்தங்கள்: %{count}", - "file.duplicates.dupeguru.open_file": "DupeGuru முடிவுகள் கோப்பைத் திறக்க", - "fix_unlinked.delete_unlinked": "இணைக்கப்படாத உள்ளீடுகளை நீக்கு", "entries.unlinked.description": "ஒவ்வொரு புத்தககல்லரி நுழைவும் உங்கள் அடைவுகளில் உள்ள ஒரு கோப்புடன் இணைக்கப்பட்டுள்ளது. டாக் ஸ்டுடியோ-வைத் தவிர கோப்புகள் நகர்த்தப்பட்டால் அல்லது நீக்கப்பட்டால், அவை இணைக்கப்படாதவையாகக் கருதப்படும். இணைக்கப்படாத நுழைவுகளை உங்கள் அடைவுகளில் தேடுவதன் மூலம் தானாகவே மீண்டும் இணைக்கலாம், பயனர் கைமுறையாக இணைக்கலாம் அல்லது விருப்பப்படி நீக்கலாம்.", - "entries.duplicates.description": "மறுநுழைவுகள் என்பது, ஒரே கோப்பை குறிக்கும் பல நுழைவுகளை குறிக்கும். இவற்றை இணைப்பதால், அனைத்து மறுநுழைவுகளின் குறிச்சொற்களும் மெட்டாடேட்டாவும் ஒரே ஒட்டுமொத்த நுழைவாகச் சேர்க்கப்படும். இவற்றை 'மறுகோப்புகள்' என்பதுடன் குழப்பக் கூடாது, ஏனெனில் அவை டாக் ஸ்டுடியோவுக்கு வெளியேயுள்ள கோப்புகளின் நகல்களாகும்.", - "entries.unlinked.title": "இணைக்கப்படாத உள்ளீடுகளைச் சரிசெய்யவும்", - "entries.unlinked.relink.manual": "கைமுறை மறு இணைப்பு", - "fix_unlinked.merge_dupes": "நகல் உள்ளீடுகளை ஒன்றிணை", - "entries.duplicate.refresh": "நகல் உள்ளீடுகளைப் புதுப்பி", - "entries.unlinked.scanning": "இணைக்கப்படாத நுழைவுகளை புத்தககல்லரியில் சோதனை செய்யப்படுகிறது...", - "library.scan_library.title": "புத்தககல்லரி சோதனை செய்யப்படுகிறது", - "entries.unlinked.search_and_relink": "தேடல் && மீண்டும் இணை", - "folders_to_tags.description": "உங்கள் அடைவு கட்டமைப்பின் அடிப்படையில் குறிச்சொற்களை உருவாக்கி, அவற்றை உங்கள் நுழைவுகளில் பயன்படுத்துகிறது.\nகீழே காணப்படும் கட்டமைப்பானது உருவாக்கப்படும் அனைத்து குறிச்சொற்களையும், அவை எந்த நுழைவுகளில் பயன்படுத்தப்படும் என்பதையும் காட்டுகிறது.", - "folders_to_tags.converting": "கோப்புறைகளை குறிச்சொற்களாக மாற்றப்படுகிறது", - "folders_to_tags.title": "கோப்புறைகளிலிருந்து குறிச்சொற்களை உருவாக்கு", - "generic.add": "சேர்", - "tag.aliases": "மாற்றுப்பெயர்கள்", - "generic.apply": "விண்ணப்பிக்க", - "generic.cancel": "ரத்து செய்", - "generic.close_all": "அனைத்தையும் மூடு", - "tag.color": "நிறம்", - "generic.delete": "நீக்கு", - "generic.done": "முடிந்தது", - "ignore_list.mode.exclude": "தவிர்", - "ignore_list.title": "கோப்பு நீட்டிப்புகள்", - "ignore_list.mode.include": "உள்ளடக்கு", - "entries.mirror": "படிமம்", - "tag.name": "பெயர்", - "folders_to_tags.open_all": "அனைத்தையும் திற", - "file.open_file": "கோப்பைத் திறக்கவும்", - "file.open_location.generic": "Explorer இல் கோப்பைத் திறக்கவும்", "entries.unlinked.refresh_all": "அனைத்தையும் புதுப்பி", - "library.field.remove": "புலத்தை அகற்று", - "home.search_tags": "குறிச்சொற்களைத் தேடு", - "tag.shorthand": "சுருக்கெழுத்து", - "home.base_title": "TagStudio ஆல்பா", - "home.include_all_tags": "மற்றும் (அனைத்து குறிச்சொற்களையும் உள்ளடக்கியது)", - "home.include_any_tag": "அல்லது (எந்தக் குறிச்சொல்லையும் உள்ளடக்கியது)", - "home.main_window": "பிரதான சாளரம்", - "home.search": "தேடு", - "home.search_entries": "தேடல் உள்ளீடுகள்", - "home.thumbnail_size": "சின்னப்பட அளவு", - "landing.open_button": "நூலகத்தைத் திற/உருவாக்கு %{open_shortcut_text}", - "library.Artist": "கலைஞர்", - "library.anthology": "தொகுப்பியல்", - "library.archived": "காப்பகப்படுத்தப்பட்ட தேதி", - "library.author": "ஆக்கியோன்", - "library.book": "புத்தகம்", - "library.collation": "தொகுத்தல்", - "library.comic": "நகைச்சுவை", - "library.comments": "கருத்துகள்", - "library.composer": "இசையமைப்பாளர்", - "library.content_tags": "உள்ளடக்கக் குறிச்சொற்கள்", - "library.date": "தேதி", + "entries.unlinked.relink.attempting": "%{x[0]+1}/%{len(self.lib.missing_files)} உள்ளீடுகளை மீண்டும் இணைக்க முயற்சிக்கிறது, %{self.fixed} மீண்டும் இணைக்கப்பட்டது", + "entries.unlinked.relink.manual": "கைமுறை மறு இணைப்பு", + "entries.unlinked.relink.title": "உள்ளீடுகள் மீண்டும் இணைக்கப்படுகின்றது", + "entries.unlinked.scanning": "இணைக்கப்படாத நுழைவுகளை புத்தககல்லரியில் சோதனை செய்யப்படுகிறது...", + "entries.unlinked.search_and_relink": "தேடல் && மீண்டும் இணை", + "entries.unlinked.title": "இணைக்கப்படாத உள்ளீடுகளைச் சரிசெய்யவும்", "file.date_created": "உருவாக்கப்பட்ட தேதி", "file.date_modified": "மாற்றப்பட்ட தேதி", - "library.date_published": "வெளியிடப்பட்ட தேதி", - "library.date_released": "வெளியான தேதி", - "library.date_taken": "எடுக்கப்பட்ட தேதி", - "library.date_uploaded": "பதிவேற்றிய தேதி", - "library.description": "விளக்கம்", - "library.favorite": "பிடித்தது", - "library.guest_artist": "விருந்தினர் கலைஞர்", - "library.magazine": "இதழ்", - "library.manga": "மங்கா", - "library.meta_tags": "மெட்டா குறிச்சொற்கள்", - "library.notes": "குறிப்புகள்", - "library.publisher": "பதிப்பாளர்", - "library.series": "தொடர்", - "library.source": "ஆதாரம்", - "entries.tags": "குறிச்சொற்கள்", - "library.title": "தலைப்பு", - "library.url": "இணைய முகவரி", - "library.volume": "தொகுப்பு", + "file.dimensions": "பரிமாணங்கள்", + "file.duplicates.dupeguru.advice": "படிமம் முடிந்தவுடன், தேவையற்ற கோப்புகளை நீக்க DupeGuru ஐ பயன்படுத்தலாம். அதற்குப் பிறகு, இணைக்காத நுழைவுகளை நீக்க 'டாக் ஸ்டுடியோ' வின் 'இணைக்கப்படாத உள்ளீடுகளைச் சரிசெய்' அம்சத்தைக் கருவிகள் பட்டியில் பயன்படுத்தவும்.", + "file.duplicates.dupeguru.file_extension": "DupeGuru கோப்புகள் (*.dupeguru)", + "file.duplicates.dupeguru.load_file": "DupeGuru கோப்பை ஏற்றவும்", + "file.duplicates.dupeguru.no_file": "DupeGuru கோப்பு எதுவும் தேர்ந்தெடுக்கப்படவில்லை", + "file.duplicates.dupeguru.open_file": "DupeGuru முடிவுகள் கோப்பைத் திறக்க", + "file.duplicates.fix": "நகல் கோப்புகளைச் சரிசெய்", + "file.duplicates.matches": "நகல் கோப்பு பொருத்தங்கள்: %{count}", + "file.duplicates.matches_uninitialized": "நகல் கோப்பு பொருத்தங்கள்: ஒன்றும் இல்லை", + "file.duplicates.mirror.description": "ஒவ்வொரு மறுநுழைவு பொருத்தத் தொகுப்பிலும் நுழைவு தரவுகளைப் பிரதிபலிக்கவும், அனைத்து தரவுகளையும் இணைக்கவும், எந்தத் தகவல்களையும் நீக்காமலும் மறு செய்யாமலும். இந்தச் செயலில் எந்தக் கோப்புகள் அல்லது தரவுகளும் நீக்கப்பட மாட்டாது.", + "file.duplicates.mirror_entries": "படிம நுழைவுகள்", + "file.not_found": "கோப்பு கிடைக்கவில்லை:", + "file.open_file": "கோப்பைத் திறக்கவும்", + "file.open_location.generic": "Explorer இல் கோப்பைத் திறக்கவும்", + "folders_to_tags.converting": "கோப்புறைகளை குறிச்சொற்களாக மாற்றப்படுகிறது", + "folders_to_tags.description": "உங்கள் அடைவு கட்டமைப்பின் அடிப்படையில் குறிச்சொற்களை உருவாக்கி, அவற்றை உங்கள் நுழைவுகளில் பயன்படுத்துகிறது.\nகீழே காணப்படும் கட்டமைப்பானது உருவாக்கப்படும் அனைத்து குறிச்சொற்களையும், அவை எந்த நுழைவுகளில் பயன்படுத்தப்படும் என்பதையும் காட்டுகிறது.", + "folders_to_tags.open_all": "அனைத்தையும் திற", + "folders_to_tags.title": "கோப்புறைகளிலிருந்து குறிச்சொற்களை உருவாக்கு", + "generic.add": "சேர்", + "generic.apply": "விண்ணப்பிக்க", + "generic.cancel": "ரத்து செய்", + "generic.delete": "நீக்கு", + "generic.done": "முடிந்தது", + "generic.edit": "திருத்து", + "generic.recent_libraries": "சமீபத்திய நூலகங்கள்", + "home.search": "தேடு", + "home.search_entries": "தேடல் உள்ளீடுகள்", + "home.search_tags": "குறிச்சொற்களைத் தேடு", + "home.thumbnail_size": "சின்னப்பட அளவு", + "ignore_list.add_extension": "நீட்டிப்பைச் சேர்க்க", + "ignore_list.mode.exclude": "தவிர்", + "ignore_list.mode.include": "உள்ளடக்கு", + "ignore_list.mode.label": "பட்டியல் முறை:", + "ignore_list.title": "கோப்பு நீட்டிப்புகள்", + "library.field.add": "புலத்தைச் சேர்க்க", + "library.field.confirm_remove": "இந்த \"%{self.lib.get_field_attr(field, \"name\")}\" புலத்தை நிச்சயமாக அகற்ற விரும்புகிறீர்களா?", + "library.field.mixed_data": "கலப்பு தரவு", + "library.field.remove": "புலத்தை அகற்று", + "library.missing": "இடம் காணவில்லை", + "library.name": "நூலகம்", + "library.refresh.scanning": "புதிய கோப்புகளுக்கான அடைவுகள் சோதனை செய்யப்படுகின்றது...\n%{x + 1} கோப்பு%{\"s\" if x + 1 != 1 else \"\"} தேடப்பட்டது, %{len(self.lib.files_not_in_library)} புதிய கோப்புகள் கிடைத்தன", + "library.refresh.scanning_preparing": "புதிய கோப்புகளுக்கான அடைவுகள் சோதனை செய்யப்படுகின்றது...\nதயாராகிறது...", + "library.refresh.title": "கோப்பகங்கள் புதுப்பிக்கப்படுகின்றன", + "library.scan_library.title": "புத்தககல்லரி சோதனை செய்யப்படுகிறது", + "macros.running.dialog.new_entries": "%{x + 1} இல் கட்டமைக்கப்பட்ட செயல்முறைகளை இயக்கப்படுகிறது / %{len(new_ids)} புதிய பதிவுகள்", + "macros.running.dialog.title": "புதிய நுழைவுகளில் செயல்முறைகளை இயக்கப்படுகின்றது", "menu.edit": "திருத்து", "menu.file": "கோப்பு", "menu.help": "உதவி", "menu.macros": "செயல்முறை", "menu.tools": "கருவிகள்", "menu.window": "சாளரம்", - "merge.merge_dupe_entries": "மறுநுழைவுகளை ஒன்றுசேர்த்தல்", - "entries.duplicate.merge.label": "மறுநுழைவுகளை ஒன்றுசேர்த்தல்", - "entries.mirror.confirmation": "பின்வரும் உள்ளீடுகளைப் பிரதிபலிக்க விரும்புகிறீர்களா %{len(self.lib.dupe_files)}?", - "entries.mirror.label": "1/%{count} உள்ளீடுகளைப் பிரதிபலிக்கப்படுகின்றது...", - "entries.mirror.title": "உள்ளீடுகள் பிரதிபழிக்கப்படுகின்றது", - "open_library.library_creation_return_code": "நூலக உருவாக்கம் திரும்பக் குறியீடு:", - "open_library.no_tagstudio_library_found": "'%{path}' இல் ஏற்கனவே உள்ள டாக் ஸ்டுடியோ புத்தககல்லரி காணப்படவில்லை. ஒன்று உருவாக்கப்படுகிறது.", - "library.name": "நூலகம்", - "file.dimensions": "பரிமாணங்கள்", - "generic.recent_libraries": "சமீபத்திய நூலகங்கள்", - "library.field.confirm_remove": "இந்த \"%{self.lib.get_field_attr(field, \"name\")}\" புலத்தை நிச்சயமாக அகற்ற விரும்புகிறீர்களா?", - "generic.edit": "திருத்து", - "library.missing": "இடம் காணவில்லை", - "library.field.mixed_data": "கலப்பு தரவு", "preview.no_selection": "உருப்படிகள் எதுவும் தேர்ந்தெடுக்கப்படவில்லை", - "preview_panel.unknown_field_type": "அறியப்படாத புல வகை", - "preview_panel.update_widgets": "[நுழைவு குழு] விட்ஜெட்டுகளை புதுப்பிக்கவும் (%{self.driver.selected})", - "macros.running.dialog.title": "புதிய நுழைவுகளில் செயல்முறைகளை இயக்கப்படுகின்றது", - "progression.running_macros.one_new_entry": "1/ இல் கட்டமைக்கப்பட்ட செயல்முறைகளை இயக்கப்படுகிறது %{len(new_ids)} புதிய பதிவுகள்", - "macros.running.dialog.new_entries": "%{x + 1} இல் கட்டமைக்கப்பட்ட செயல்முறைகளை இயக்கப்படுகிறது / %{len(new_ids)} புதிய பதிவுகள்", - "entries.unlinked.relink.attempting": "%{x[0]+1}/%{len(self.lib.missing_files)} உள்ளீடுகளை மீண்டும் இணைக்க முயற்சிக்கிறது, %{self.fixed} மீண்டும் இணைக்கப்பட்டது", - "entries.unlinked.relink.title": "உள்ளீடுகள் மீண்டும் இணைக்கப்படுகின்றது", - "splash.open_library": "நூலகம் திறக்கப்படுகின்றது", "status.library_backup_success": "நூலக காப்புப் பிரதி சேமிக்கப்பட்டது:", - "status.enumerate_query": "வினவு:%{query}, சட்டகம்: %{i}, நீளம்: %{len(f)}", - "status.number_results_found": "\"%{query}\" இல் %{len(all_items)} முடிவுகள் கிடைத்தன (%{format_timespan(end_time - start_time)})", - "status.results": "முடிவுகள்", "status.library_save_success": "நூலகம் சேமிக்கப்பட்டு மூடப்பட்டது!", "status.library_search_query": "நூலகத்தைத் தேடுகிறது", + "status.results": "முடிவுகள்", "tag.add": "குறிச்சொல் சேர்க்க", "tag.add_to_search": "தேடலில் சேர்", - "tag_manager.title": "நூலக குறிச்சொற்கள்", + "tag.aliases": "மாற்றுப்பெயர்கள்", + "tag.color": "நிறம்", + "tag.name": "பெயர்", "tag.new": "புதிய குறிச்சொல்", + "tag.parent_tags": "பெற்றோர் குறிச்சொற்கள்", + "tag.parent_tags.add": "பெற்றோர் குறிச்சொற்களைச் சேர்க்க", "tag.search_for_tag": "குறிச்சொல்லைத் தேடு", - "text_line_edit.unknown_event_type": "அறியப்படாத நிகழ்வு வகை: %{event}", - "tooltip.open_library": "Ctrl+O", - "tooltip.save_library": "Ctrl+S" + "tag.shorthand": "சுருக்கெழுத்து", + "tag_manager.title": "நூலக குறிச்சொற்கள்" } diff --git a/tagstudio/resources/translations/tok.json b/tagstudio/resources/translations/tok.json index b5ebdf2a..c0056156 100644 --- a/tagstudio/resources/translations/tok.json +++ b/tagstudio/resources/translations/tok.json @@ -1,144 +1,92 @@ { - "library.field.add": "pana e sona", - "tag.parent_tags.add": "o pana e poki mama", - "tag.parent_tags": "poki mama", + "entries.duplicate.merge.label": "ijo sama li kama wan", + "entries.duplicate.refresh": "o kama jo e sona tan ijo sama", + "entries.duplicates.description": "ken la, ijo mute li jo e ijo lon sama. ni li \"ijo sama\". sina wan e ona la, ijo sama li kama wan li jo e sona ale tan ijo sama ale.", + "entries.mirror": "jasima", + "entries.mirror.confirmation": "mi jasima e ijo %{len(self.lib.dupe_files)}. ni li pona anu seme?", + "entries.mirror.label": "mi jasima e ijo 1/%{count}...", + "entries.mirror.title": "mi jasima e ijo", + "entries.tags": "poki", + "entries.unlinked.delete": "o weka e ijo pi ijo lon ala", "entries.unlinked.delete.confirm": "mi weka e ijo %{len(self.lib.missing_files)}. ni li pona anu seme?", "entries.unlinked.delete.deleting": "mi weka e ijo", - "entries.unlinked.delete": "o weka e ijo pi ijo lon ala", "entries.unlinked.delete.deleting_count": "mi weka e ijo %{x[0]+1}/{len(self.lib.missing_files)} pi ijo lon ala", - "dialog.open_create_library": "open/sin e tomo", - "library.refresh.title": "mi kama jo e sin lon tomo", - "dialog.save_library": "awen e tomo", - "library.refresh.scanning_preparing": "mi alasa e ijo sin lon tomo...\nmi kama pona...", - "library.refresh.scanning": "mi alasa e ijo sin lon tomo...\nmi lukin e ijo %{x + 1}. ijo %{len(self.lib.files_not_in_library)} li sin", - "ignore_list.add_extension": "o pana e nimi anpa", - "ignore_list.mode.label": "nasin kulupu:", - "file_opener.command_not_found": "mi ken ala alasa e toki lawa '%{command_name}' lon PATH", - "file.not_found": "mi ken ala alasa e ijo:", - "file_opener.open_file": "mi open e ijo:}", - "file.duplicates.dupeguru.advice": "jasima li pini la, sina ken kepeken ilo DupeGuru. ilo DupeGuru li ken weka e ijo ike. ni li pini la, o kepeken e nasin \"o pona e ijo pi ijo lon ala\" lon ilo TagStudio. ni li weka e ijo pi ijo lon ala.", - "file.duplicates.fix": "pona e ijo sama", - "file.duplicates.dupeguru.load_file": "o kama sona e ijo DupeGuru", - "file.duplicates.mirror.description": "o jasima e sona kama lon kulupu sama ale. sona ale li kama wan li weka ala li kama mute ala. ni li weka ala e sona e ijo.", - "file.duplicates.mirror_entries": "o jasima e ijo", - "file.duplicates.dupeguru.file_extension": "ijo DupeGuru (*.dupeguru)", - "file.duplicates.matches_uninitialized": "ijo sama: ala", - "file.duplicates.dupeguru.no_file": "sina o anu e ijo DupeGuru", - "file.duplicates.matches": "ijo sama: %{count}", - "file.duplicates.dupeguru.open_file": "o open e sona pini tan ilo DupeGuru", - "fix_unlinked.delete_unlinked": "o weka e ijo pi ijo lon ala", "entries.unlinked.description": "ijo ale li jo e ijo lon. ona li tawa anu weka, ona li jo ala e ijo lon. ijo pi ijo lon li ken alasa e tomo li ken kama jo e ijo lon. ante la sina ken pana ijo lon tawa ijo. ante la sina ken weka e ijo.", - "entries.duplicates.description": "ken la, ijo mute li jo e ijo lon sama. ni li \"ijo sama\". sina wan e ona la, ijo sama li kama wan li jo e sona ale tan ijo sama ale.", - "entries.unlinked.title": "o pona e ijo pi ijo lon ala", - "entries.unlinked.relink.manual": "sina o pana e ijo lon tawa ijo", - "fix_unlinked.merge_dupes": "o kama wan e ijo sama", - "entries.duplicate.refresh": "o kama jo e sona tan ijo sama", - "entries.unlinked.scanning": "mi o alasa e ijo pi ijo lon ala...", - "library.scan_library.title": "mi o lukin e tomo", - "entries.unlinked.search_and_relink": "o alasa o pana e ijo lon tawa ijo", - "folders_to_tags.description": "ni li pali e poki tan poki tona li pana e poki sin tawa ijo lon tomo.\n ilo ni li pali e anpa.", - "folders_to_tags.converting": "mi o pali e poki tan poki tomo", - "folders_to_tags.title": "o pali e poki tan poki tomo", - "generic.add": "o pana", - "tag.aliases": "nimi ante", - "generic.apply": "o pana", - "generic.cancel": "o ala", - "generic.close_all": "weka e ale", - "tag.color": "kule", - "generic.delete": "o weka", - "generic.done": "pona", - "ignore_list.mode.exclude": "o kepeken ala", - "ignore_list.title": "nimi lon nimi ijo anpa", - "ignore_list.mode.include": "o kepeken", - "entries.mirror": "jasima", - "tag.name": "nimi", - "folders_to_tags.open_all": "open e ale", - "file.open_file": "open e ijo", - "file.open_location.generic": "open e ijo lon ilo alasa", "entries.unlinked.refresh_all": "o kama jo sin tan ale", - "library.field.remove": "weka e sona", - "home.search_tags": "o alasa e poki", - "tag.shorthand": "nimi lili", - "home.base_title": "ilo TagStudio pi pini ala", - "home.include_all_tags": "AND (kepeken poki ale)", - "home.include_any_tag": "OR (kepeken poki wan. poki ale li ken)", - "home.main_window": "lipu suli", - "home.search": "alasa", - "home.search_entries": "ijo alasa", - "home.thumbnail_size": "suli sitelen", - "landing.open_button": "open/sin e tomo %{open_shortcut_text}", - "library.Artist": "jan pali sitelen", - "library.anthology": "kulupu toki", - "library.archived": "tenpo pi kama awen", - "library.author": "jan pali toki", - "library.book": "lipu toki", - "library.collation": "poki ijo", - "library.comic": "lipu sitelen", - "library.comments": "toki isipin", - "library.composer": "jan pali pi kalama musi", - "library.content_tags": "poki pi jo ijo", - "library.date": "tenpo", + "entries.unlinked.relink.attempting": "mi o pana e ijo lon tawa ijo %{x[0]+1}/%{len(self.lib.missing_files)}. mi pana e ijo lon tawa ijo %{self.fixed}", + "entries.unlinked.relink.manual": "sina o pana e ijo lon tawa ijo", + "entries.unlinked.relink.title": "mi pana e ijo lon tawa ijo", + "entries.unlinked.scanning": "mi o alasa e ijo pi ijo lon ala...", + "entries.unlinked.search_and_relink": "o alasa o pana e ijo lon tawa ijo", + "entries.unlinked.title": "o pona e ijo pi ijo lon ala", "file.date_created": "tenpo pi kama sin", "file.date_modified": "tenpo pi kama ante", - "library.date_published": "tenpo pana", - "library.date_released": "tenpo pi kama open", - "library.date_taken": "tenpo lanpan", - "library.date_uploaded": "tenpo pi kama lon lipu", - "library.description": "toki ni", - "library.favorite": "pona mute", - "library.guest_artist": "jan pali namako", - "library.magazine": "lipu sitelen toki", - "library.manga": "kulupu pi lipu sitelen", - "library.meta_tags": "poki pi sona ijo", - "library.notes": "toki sina", - "library.publisher": "jan esun", - "library.series": "kulupu", - "library.source": "tan", - "entries.tags": "poki", - "library.title": "nimi", - "library.url": "nimi linluwi", - "library.volume": "nanpa", + "file.dimensions": "suli", + "file.duplicates.dupeguru.advice": "jasima li pini la, sina ken kepeken ilo DupeGuru. ilo DupeGuru li ken weka e ijo ike. ni li pini la, o kepeken e nasin \"o pona e ijo pi ijo lon ala\" lon ilo TagStudio. ni li weka e ijo pi ijo lon ala.", + "file.duplicates.dupeguru.file_extension": "ijo DupeGuru (*.dupeguru)", + "file.duplicates.dupeguru.load_file": "o kama sona e ijo DupeGuru", + "file.duplicates.dupeguru.no_file": "sina o anu e ijo DupeGuru", + "file.duplicates.dupeguru.open_file": "o open e sona pini tan ilo DupeGuru", + "file.duplicates.fix": "pona e ijo sama", + "file.duplicates.matches": "ijo sama: %{count}", + "file.duplicates.matches_uninitialized": "ijo sama: ala", + "file.duplicates.mirror.description": "o jasima e sona kama lon kulupu sama ale. sona ale li kama wan li weka ala li kama mute ala. ni li weka ala e sona e ijo.", + "file.duplicates.mirror_entries": "o jasima e ijo", + "file.not_found": "mi ken ala alasa e ijo:", + "file.open_file": "open e ijo", + "file.open_location.generic": "open e ijo lon ilo alasa", + "folders_to_tags.converting": "mi o pali e poki tan poki tomo", + "folders_to_tags.description": "ni li pali e poki tan poki tona li pana e poki sin tawa ijo lon tomo.\n ilo ni li pali e anpa.", + "folders_to_tags.open_all": "open e ale", + "folders_to_tags.title": "o pali e poki tan poki tomo", + "generic.add": "o pana", + "generic.apply": "o pana", + "generic.cancel": "o ala", + "generic.delete": "o weka", + "generic.done": "pona", + "generic.edit": "ante", + "generic.recent_libraries": "tomo pi tenpo poka", + "home.search": "alasa", + "home.search_entries": "ijo alasa", + "home.search_tags": "o alasa e poki", + "home.thumbnail_size": "suli sitelen", + "ignore_list.add_extension": "o pana e nimi anpa", + "ignore_list.mode.exclude": "o kepeken ala", + "ignore_list.mode.include": "o kepeken", + "ignore_list.mode.label": "nasin kulupu:", + "ignore_list.title": "nimi lon nimi ijo anpa", + "library.field.add": "pana e sona", + "library.field.confirm_remove": "sina weka e sona poki \"%{self.lib.get_field_attr(field, \"name\")}\". ni li pona anu seme?", + "library.field.mixed_data": "sona ante", + "library.field.remove": "weka e sona", + "library.missing": "ma li lon ala", + "library.name": "tomo", + "library.refresh.scanning": "mi alasa e ijo sin lon tomo...\nmi lukin e ijo %{x + 1}. ijo %{len(self.lib.files_not_in_library)} li sin", + "library.refresh.scanning_preparing": "mi alasa e ijo sin lon tomo...\nmi kama pona...", + "library.refresh.title": "mi kama jo e sin lon tomo", + "library.scan_library.title": "mi o lukin e tomo", + "macros.running.dialog.new_entries": "mi pali lon ijo sin %{x + 1}/%{len(new_ids)}", + "macros.running.dialog.title": "mi pali lon ijo sin", "menu.edit": "ante", "menu.file": "ijo", "menu.help": "mi jo e toki seme", "menu.macros": "ilo pali", "menu.tools": "ilo", "menu.window": "lipu", - "merge.merge_dupe_entries": "ijo sama li kama wan", - "entries.duplicate.merge.label": "ijo sama li kama wan", - "entries.mirror.confirmation": "mi jasima e ijo %{len(self.lib.dupe_files)}. ni li pona anu seme?", - "entries.mirror.label": "mi jasima e ijo 1/%{count}...", - "entries.mirror.title": "mi jasima e ijo", - "open_library.library_creation_return_code": "tomo li open li toki e ni:", - "open_library.no_tagstudio_library_found": "tomo lon '%{path}' li lon ala. mi pali e tomo.", - "library.name": "tomo", - "file.dimensions": "suli", - "generic.recent_libraries": "tomo pi tenpo poka", - "library.field.confirm_remove": "sina weka e sona poki \"%{self.lib.get_field_attr(field, \"name\")}\". ni li pona anu seme?", - "generic.edit": "ante", - "library.missing": "ma li lon ala", - "library.field.mixed_data": "sona ante", "preview.no_selection": "ijo ala li anu", - "preview_panel.unknown_field_type": "mi sona ala e kule pi sona poki", - "preview_panel.update_widgets": "[LIPU OPEN] O SIN E LIPU LILI (%{self.driver.selected})", - "macros.running.dialog.title": "mi pali lon ijo sin", - "progression.running_macros.one_new_entry": "mi pali lon ijo sin 1/%{len(new_ids)}", - "macros.running.dialog.new_entries": "mi pali lon ijo sin %{x + 1}/%{len(new_ids)}", - "entries.unlinked.relink.attempting": "mi o pana e ijo lon tawa ijo %{x[0]+1}/%{len(self.lib.missing_files)}. mi pana e ijo lon tawa ijo %{self.fixed}", - "entries.unlinked.relink.title": "mi pana e ijo lon tawa ijo", - "splash.open_library": "mi open e tomo", "status.library_backup_success": "tomo sama li lon:", - "status.enumerate_query": "seme: %{query}. sitelen: %{i}. nanpa: %{len(f)}", - "status.number_results_found": "%{len(all_items)} mi jo e ijo \"%{query}\" (%{format_timespan(end_time - start_time)})", - "status.results": "jo", "status.library_save_success": "tomo li awen li weka!", "status.library_search_query": "mi alasa e", + "status.results": "jo", "tag.add": "o pana e poki", "tag.add_to_search": "pana tawa alasa", - "tag_manager.title": "poki tomo", + "tag.aliases": "nimi ante", + "tag.color": "kule", + "tag.name": "nimi", "tag.new": "poki sin", + "tag.parent_tags": "poki mama", + "tag.parent_tags.add": "o pana e poki mama", "tag.search_for_tag": "o alasa e poki", - "text_line_edit.unknown_event_type": "mi sona ala e ni: %{event}", - "tooltip.open_library": "Ctrl+O", - "tooltip.save_library": "Ctrl+S" + "tag.shorthand": "nimi lili", + "tag_manager.title": "poki tomo" } diff --git a/tagstudio/resources/translations/tr.json b/tagstudio/resources/translations/tr.json index c1d266f6..e50fabd9 100644 --- a/tagstudio/resources/translations/tr.json +++ b/tagstudio/resources/translations/tr.json @@ -1,144 +1,92 @@ { - "library.field.add": "Alan Ekle", - "tag.parent_tags.add": "Üst Etiketler Ekle", - "tag.parent_tags": "Üst Etiketler", + "entries.duplicate.merge.label": "Yinelenen Kayıtlar Birleştiriliyor", + "entries.duplicate.refresh": "Yinelenen Kayıtları Yenile", + "entries.duplicates.description": "Yinelenen kayıtlar, diskinizde aynı dosyaya işaret eden birden fazla kayıt olarak tanımlanmaktadır. Bu kayıtları birleştirdiğinizde, yinelenen tüm kayıtların içerisindeki etiketler ve metadata bilgisi tek bir tane kayıt üzerinde birleştirilecektir. Bu, \"yinelenen dosyalar\" ile karıştırılmamalıdır. Yinelenen dosyalar, TagStudio'nun dışında birden fazla kere bulunan dosyalarınızdır.", + "entries.mirror": "Yansıt", + "entries.mirror.confirmation": "%{len(self.lib.dupe_files)} kaydı yansıtmak istediğinden emin misin?", + "entries.mirror.label": "1/%{count} Kayıt Yansıtılıyor...", + "entries.mirror.title": "Kayıtlar Yansıtılıyor", + "entries.tags": "Etiketler", + "entries.unlinked.delete": "Kopuk Kayıtları Sil", "entries.unlinked.delete.confirm": "%{len(self.lib.missing_files) tane kayıtları silmek istediğinden emin misin?", "entries.unlinked.delete.deleting": "Kayıtlar Siliniyor", - "entries.unlinked.delete": "Kopuk Kayıtları Sil", "entries.unlinked.delete.deleting_count": "%{x[0]+1}/{len(self.lib.missing_files)} Kopuk Kayıt Siliniyor", - "dialog.open_create_library": "Kütüphane Aç/Oluştur", - "library.refresh.title": "Dizinler Yenileniyor", - "dialog.save_library": "Kütüphaneyi Kaydet", - "library.refresh.scanning_preparing": "Yeni Dosyalar için Dizinler Taranıyor...\nHazırlanıyor...", - "library.refresh.scanning": "Yeni Dosyalar için Dizinler Taranıyor...\n%{x + 1} File%{\"s\" if x + 1 != 1 else \"\"} Arandı, %{len(self.lib.files_not_in_library)} Yeni Dosya Bulundu", - "ignore_list.add_extension": "Dosya Uzantısı Ekle", - "ignore_list.mode.label": "Listeleme Modu:", - "file_opener.command_not_found": "Sistem PATH'inde %{command_name} komutu bulunamadı", - "file.not_found": "Dosya bulunamadı:", - "file_opener.open_file": "Dosya açılıyor:}", - "file.duplicates.dupeguru.advice": "Yansıtma işleminden sonra, DupeGuru'yu kullanarak istenmeyen dosyaları silebilirsin. İşlem sonrasında, kopuk kayıtları silmek için TagStudio'nun Araçlar menüsünden \"Kopuk Kayıtları Düzelt\" özelliğini kullanabilirsin.", - "file.duplicates.fix": "Yinelenen Dosyaları Düzelt", - "file.duplicates.dupeguru.load_file": "DupeGuru Dosyasını Yükle", - "file.duplicates.mirror.description": "Kayıt verilerini bulunan her bir yinelemeye yansıtır, alanları kopyalamadan veya silmeden tüm verileri birleştirir. Bu operasyon herhangi bir dosya veya veri silmeyecek.", - "file.duplicates.mirror_entries": "Kayıtları Yansıt", - "file.duplicates.dupeguru.file_extension": "DupeGuru Dosyaları (*.dupeguru)", - "file.duplicates.matches_uninitialized": "Bulunan Yinelenen Dosyalar: Yok", - "file.duplicates.dupeguru.no_file": "Seçili DupeGuru Dosyası Yok", - "file.duplicates.matches": "Bulunan Yinelenen Dosyalar: %{count}", - "file.duplicates.dupeguru.open_file": "DupeGuru Sonuçlar Dosyasını Aç", - "fix_unlinked.delete_unlinked": "Kopuk Kayıtları Sil", "entries.unlinked.description": "Kütüphanenizdeki her bir kayıt, dizinlerinizden bir tane dosya ile eşleştirilmektedir. Eğer bir kayıta bağlı dosya TagStudio dışında taşınır veya silinirse, o dosya artık kopuk olarak sayılır. Kopuk kayıtlar dizinlerinizde arama yapılırken otomatik olarak tekrar eşleştirilebilir, manuel olarak sizin tarafınızdan eşleştirilebilir veya isteğiniz üzere silinebilir.", - "entries.duplicates.description": "Yinelenen kayıtlar, diskinizde aynı dosyaya işaret eden birden fazla kayıt olarak tanımlanmaktadır. Bu kayıtları birleştirdiğinizde, yinelenen tüm kayıtların içerisindeki etiketler ve metadata bilgisi tek bir tane kayıt üzerinde birleştirilecektir. Bu, \"yinelenen dosyalar\" ile karıştırılmamalıdır. Yinelenen dosyalar, TagStudio'nun dışında birden fazla kere bulunan dosyalarınızdır.", - "entries.unlinked.title": "Kopuk Kayıtları Düzelt", - "entries.unlinked.relink.manual": "Manuel Yeniden Eşleştirme", - "fix_unlinked.merge_dupes": "Yinelenen Kayıtları Birleştir", - "entries.duplicate.refresh": "Yinelenen Kayıtları Yenile", - "entries.unlinked.scanning": "Kütüphane Kopuk Kayıtlar için Taranıyor...", - "library.scan_library.title": "Kütüphane Taranıyor", - "entries.unlinked.search_and_relink": "Ara && Yeniden Eşleştir", - "folders_to_tags.description": "Klasörlerinin yapısına bakarak etiketler oluşturur ve bu etiketleri kayıtlarına uygular.\nAşağıdaki yapı, oluşturulacak tüm etiketleri ve o etiketlerin hangi kayıtlarına uygulanacağını göstermektedir.", - "folders_to_tags.converting": "Klasörler Etiketlere Dönüştürülüyor", - "folders_to_tags.title": "Klasörlerden Etiketler Oluştur", - "generic.add": "Ekle", - "tag.aliases": "Takma Adlar", - "generic.apply": "Uygula", - "generic.cancel": "İptal", - "generic.close_all": "Tümünü Kapat", - "tag.color": "Renk", - "generic.delete": "Sil", - "generic.done": "Tamamlandı", - "ignore_list.mode.exclude": "Hariç Tut", - "ignore_list.title": "Dosya Uzantıları", - "ignore_list.mode.include": "Dahil Et", - "entries.mirror": "Yansıt", - "tag.name": "İsim", - "folders_to_tags.open_all": "Tümünü Aç", - "file.open_file": "Dosya aç", - "file.open_location.generic": "Dosyayı Dosya Gezgininde Aç", "entries.unlinked.refresh_all": "Tümünü Yenile", - "library.field.remove": "Alan Kaldır", - "home.search_tags": "Etiketleri Araştır", - "tag.shorthand": "Kısaltma", - "home.base_title": "TagStudio Alpha", - "home.include_all_tags": "Ve (Tüm Etiketleri Dikkate Alır)", - "home.include_any_tag": "Veya (Herhangi Bir Etiketi Dikkate Alır)", - "home.main_window": "Ana Pencere", - "home.search": "Ara", - "home.search_entries": "library", - "home.thumbnail_size": "Küçük Resim Boyutu", - "landing.open_button": "Kütüphane Aç/Oluştur %{open_shortcut_text}", - "library.Artist": "Sanatçı", - "library.anthology": "Antoloji", - "library.archived": "Arşivlenme Tarihi", - "library.author": "Sahibi", - "library.book": "Kitap", - "library.collation": "Sıralama", - "library.comic": "Dergi", - "library.comments": "Yorumlar", - "library.composer": "Besteci", - "library.content_tags": "İçerik Etiketleri", - "library.date": "Tarih", + "entries.unlinked.relink.attempting": "%{x[0]+1}/%{len(self.lib.missing_files)} Kayıt Yeniden Eşleştirilmeye Çalışılıyor, %{self.fixed} Başarıyla Yeniden Eşleştirildi", + "entries.unlinked.relink.manual": "Manuel Yeniden Eşleştirme", + "entries.unlinked.relink.title": "Kayıtlar Yeniden Eşleştiriliyor", + "entries.unlinked.scanning": "Kütüphane Kopuk Kayıtlar için Taranıyor...", + "entries.unlinked.search_and_relink": "Ara && Yeniden Eşleştir", + "entries.unlinked.title": "Kopuk Kayıtları Düzelt", "file.date_created": "Oluşturulma Tarihi", "file.date_modified": "Değiştirilme Tarihi", - "library.date_published": "Yayınlanma Tarihi", - "library.date_released": "Çıkış Tarihi", - "library.date_taken": "Alınma Tarihi", - "library.date_uploaded": "Yüklenme Tarihi", - "library.description": "Açıklama", - "library.favorite": "Favori", - "library.guest_artist": "Konuk Sanatçı", - "library.magazine": "Magazin", - "library.manga": "Manga", - "library.meta_tags": "Meta Etiketler", - "library.notes": "Notlar", - "library.publisher": "Yayımcı", - "library.series": "Dizi", - "library.source": "Kaynak", - "entries.tags": "Etiketler", - "library.title": "Başlık", - "library.url": "URL", - "library.volume": "Ses Seviyesi", + "file.dimensions": "Ölçüler", + "file.duplicates.dupeguru.advice": "Yansıtma işleminden sonra, DupeGuru'yu kullanarak istenmeyen dosyaları silebilirsin. İşlem sonrasında, kopuk kayıtları silmek için TagStudio'nun Araçlar menüsünden \"Kopuk Kayıtları Düzelt\" özelliğini kullanabilirsin.", + "file.duplicates.dupeguru.file_extension": "DupeGuru Dosyaları (*.dupeguru)", + "file.duplicates.dupeguru.load_file": "DupeGuru Dosyasını Yükle", + "file.duplicates.dupeguru.no_file": "Seçili DupeGuru Dosyası Yok", + "file.duplicates.dupeguru.open_file": "DupeGuru Sonuçlar Dosyasını Aç", + "file.duplicates.fix": "Yinelenen Dosyaları Düzelt", + "file.duplicates.matches": "Bulunan Yinelenen Dosyalar: %{count}", + "file.duplicates.matches_uninitialized": "Bulunan Yinelenen Dosyalar: Yok", + "file.duplicates.mirror.description": "Kayıt verilerini bulunan her bir yinelemeye yansıtır, alanları kopyalamadan veya silmeden tüm verileri birleştirir. Bu operasyon herhangi bir dosya veya veri silmeyecek.", + "file.duplicates.mirror_entries": "Kayıtları Yansıt", + "file.not_found": "Dosya bulunamadı:", + "file.open_file": "Dosya aç", + "file.open_location.generic": "Dosyayı Dosya Gezgininde Aç", + "folders_to_tags.converting": "Klasörler Etiketlere Dönüştürülüyor", + "folders_to_tags.description": "Klasörlerinin yapısına bakarak etiketler oluşturur ve bu etiketleri kayıtlarına uygular.\nAşağıdaki yapı, oluşturulacak tüm etiketleri ve o etiketlerin hangi kayıtlarına uygulanacağını göstermektedir.", + "folders_to_tags.open_all": "Tümünü Aç", + "folders_to_tags.title": "Klasörlerden Etiketler Oluştur", + "generic.add": "Ekle", + "generic.apply": "Uygula", + "generic.cancel": "İptal", + "generic.delete": "Sil", + "generic.done": "Tamamlandı", + "generic.edit": "Düzenle", + "generic.recent_libraries": "Son Kütüphaneler", + "home.search": "Ara", + "home.search_entries": "library", + "home.search_tags": "Etiketleri Araştır", + "home.thumbnail_size": "Küçük Resim Boyutu", + "ignore_list.add_extension": "Dosya Uzantısı Ekle", + "ignore_list.mode.exclude": "Hariç Tut", + "ignore_list.mode.include": "Dahil Et", + "ignore_list.mode.label": "Listeleme Modu:", + "ignore_list.title": "Dosya Uzantıları", + "library.field.add": "Alan Ekle", + "library.field.confirm_remove": "Bu \"%{self.lib.get_field_attr(field, \"name\")}\" alanını silmek istediğinden emin misin?", + "library.field.mixed_data": "Karışık Veri", + "library.field.remove": "Alan Kaldır", + "library.missing": "Lokasyon bulunamadı", + "library.name": "Kütüphane", + "library.refresh.scanning": "Yeni Dosyalar için Dizinler Taranıyor...\n%{x + 1} File%{\"s\" if x + 1 != 1 else \"\"} Arandı, %{len(self.lib.files_not_in_library)} Yeni Dosya Bulundu", + "library.refresh.scanning_preparing": "Yeni Dosyalar için Dizinler Taranıyor...\nHazırlanıyor...", + "library.refresh.title": "Dizinler Yenileniyor", + "library.scan_library.title": "Kütüphane Taranıyor", + "macros.running.dialog.new_entries": "%{x + 1}/%{len(new_ids)} Tane Yeni Kayıt Üzerinde Yapılandırılmış Makrolar Çalıştırılıyor", + "macros.running.dialog.title": "Yeni Kayıtlar Üzerinde Makrolar Çalıştırılıyor", "menu.edit": "Düzenle", "menu.file": "Dosya", "menu.help": "Yardım", "menu.macros": "Makrolar", "menu.tools": "Araçlar", "menu.window": "Pencere", - "merge.merge_dupe_entries": "Yinelenen Kayıtlar Birleştiriliyor", - "entries.duplicate.merge.label": "Yinelenen Kayıtlar Birleştiriliyor", - "entries.mirror.confirmation": "%{len(self.lib.dupe_files)} kaydı yansıtmak istediğinden emin misin?", - "entries.mirror.label": "1/%{count} Kayıt Yansıtılıyor...", - "entries.mirror.title": "Kayıtlar Yansıtılıyor", - "open_library.library_creation_return_code": "Kütüphane Oluşturmaktan Dönen Kod:", - "open_library.no_tagstudio_library_found": "'%{path}' konumunda herhangi bir TagStudio kütüphanesi bulunamadı. Yeni bir tane oluşturuluyor.", - "library.name": "Kütüphane", - "file.dimensions": "Ölçüler", - "generic.recent_libraries": "Son Kütüphaneler", - "library.field.confirm_remove": "Bu \"%{self.lib.get_field_attr(field, \"name\")}\" alanını silmek istediğinden emin misin?", - "generic.edit": "Düzenle", - "library.missing": "Lokasyon bulunamadı", - "library.field.mixed_data": "Karışık Veri", "preview.no_selection": "Hiçbir Öğe Seçilmedi", - "preview_panel.unknown_field_type": "Bilinmeyen Alan Türü", - "preview_panel.update_widgets": "[KAYIT PANELİ] WIDGET'LARI GÜNCELLE (%{self.driver.selected})", - "macros.running.dialog.title": "Yeni Kayıtlar Üzerinde Makrolar Çalıştırılıyor", - "progression.running_macros.one_new_entry": "1/%{len(new_ids)} Tane Yeni Kayıtlarda Yapılandırılmış Makrolar Çalıştırılıyor", - "macros.running.dialog.new_entries": "%{x + 1}/%{len(new_ids)} Tane Yeni Kayıt Üzerinde Yapılandırılmış Makrolar Çalıştırılıyor", - "entries.unlinked.relink.attempting": "%{x[0]+1}/%{len(self.lib.missing_files)} Kayıt Yeniden Eşleştirilmeye Çalışılıyor, %{self.fixed} Başarıyla Yeniden Eşleştirildi", - "entries.unlinked.relink.title": "Kayıtlar Yeniden Eşleştiriliyor", - "splash.open_library": "Kütüphane Açılıyor", "status.library_backup_success": "Kütüphane Yedeklemesi Şuraya Kaydedildi:", - "status.enumerate_query": "Sorgu:%{query}, Kare: %{i}, Uzunluk: %{len(f)}", - "status.number_results_found": "\"%{query}\" (%{format_timespan(end_time - start_time)}) Sorgusu için %{len(all_items)} Sonuç Bulundu", - "status.results": "Sonuçlar", "status.library_save_success": "Kütüphane Kaydedildi ve Çıkış Yapıldı!", "status.library_search_query": "Kütüphane Aranıyor", + "status.results": "Sonuçlar", "tag.add": "Etiket Ekle", "tag.add_to_search": "Aramaya Ekle", - "tag_manager.title": "Kütüphane Etiketleri", + "tag.aliases": "Takma Adlar", + "tag.color": "Renk", + "tag.name": "İsim", "tag.new": "Yeni Etiket", + "tag.parent_tags": "Üst Etiketler", + "tag.parent_tags.add": "Üst Etiketler Ekle", "tag.search_for_tag": "Etiket Ara", - "text_line_edit.unknown_event_type": "bilinmeyen event türü: %{event}", - "tooltip.open_library": "Ctrl+O", - "tooltip.save_library": "Ctrl+S" + "tag.shorthand": "Kısaltma", + "tag_manager.title": "Kütüphane Etiketleri" } From 4c3ff42169e90e5d053d14eb724032ea9abd2b94 Mon Sep 17 00:00:00 2001 From: SkeleyM <86805089+SkeleyM@users.noreply.github.com> Date: Sun, 22 Dec 2024 20:21:04 +0000 Subject: [PATCH 6/9] fix: show correct unlinked files count (#653) --- tagstudio/src/qt/modals/fix_unlinked.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tagstudio/src/qt/modals/fix_unlinked.py b/tagstudio/src/qt/modals/fix_unlinked.py index 3c4627df..7c580d3f 100644 --- a/tagstudio/src/qt/modals/fix_unlinked.py +++ b/tagstudio/src/qt/modals/fix_unlinked.py @@ -144,4 +144,4 @@ class FixUnlinkedEntriesModal(QWidget): # disable buttons if there are no files to fix self.search_button.setDisabled(self.missing_count == 0) self.delete_button.setDisabled(self.missing_count == 0) - self.missing_count_label.setText(f"Unlinked Entries: {count}") + self.missing_count_label.setText(f"Unlinked Entries: {self.missing_count}") From 9eed3b64d98dd442b7f0f3d1d4c8510f70dd0e27 Mon Sep 17 00:00:00 2001 From: Jann Stute <46534683+Computerdores@users.noreply.github.com> Date: Sun, 22 Dec 2024 22:58:10 +0100 Subject: [PATCH 7/9] feat: implement search equivalence of "jpg" and "jpeg" filetypes (#649) * feat: implement search equivalence of "jpg" and "jpeg" filetypes in an extensible manner * docs: update completion for search features on roadmap * fix: move FILETYPE_EQUIVALENTS to media_types.py --- docs/updates/roadmap.md | 16 ++++++++-------- tagstudio/src/core/library/alchemy/visitors.py | 13 +++++++++++-- tagstudio/src/core/media_types.py | 2 ++ 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/docs/updates/roadmap.md b/docs/updates/roadmap.md index e204bc3b..7a8e2557 100644 --- a/docs/updates/roadmap.md +++ b/docs/updates/roadmap.md @@ -86,13 +86,13 @@ Features are broken up into the following priority levels, with nested prioritie - [ ] GPS Location [LOW] - [ ] Custom field names [HIGH] [#18](https://github.com/TagStudioDev/TagStudio/issues/18) - [ ] Search engine [HIGH] [#325](https://github.com/TagStudioDev/TagStudio/issues/325) - - [ ] Boolean operators [HIGH] [#225](https://github.com/TagStudioDev/TagStudio/issues/225), [#314](https://github.com/TagStudioDev/TagStudio/issues/314) + - [x] Boolean operators [HIGH] [#225](https://github.com/TagStudioDev/TagStudio/issues/225), [#314](https://github.com/TagStudioDev/TagStudio/issues/314) - [ ] Tag objects + autocomplete [HIGH] [#476 (Autocomplete)](https://github.com/TagStudioDev/TagStudio/issues/476) - - [ ] Filename search [HIGH] - - [ ] Filetype search [HIGH] - - [ ] Search by extension (e.g. ".jpg", ".png") [HIGH] - - [ ] Optional consolidation of extension synonyms (i.e. ".jpg" can equal ".jpeg") [LOW] - - [ ] Search by media type (e.g. "image", "video", "document") [MEDIUM] + - [x] Filename search [HIGH] + - [x] Filetype search [HIGH] + - [x] Search by extension (e.g. ".jpg", ".png") [HIGH] + - [x] Optional consolidation of extension synonyms (i.e. ".jpg" can equal ".jpeg") [LOW] + - [x] Search by media type (e.g. "image", "video", "document") [MEDIUM] - [ ] Field content search [HIGH] [#272](https://github.com/TagStudioDev/TagStudio/issues/272) - [ ] HAS operator for composition tags [HIGH] - [ ] OCR search [LOW] @@ -172,12 +172,12 @@ These version milestones are rough estimations for when the previous core featur - [ ] [Tag Categories](../library/tag_categories.md) [HIGH] - [ ] Property available for tags that allow the tag and any inheriting from it to be displayed separately in the preview panel under a title [HIGH] - [ ] Search engine [HIGH] - - [ ] Boolean operators [HIGH] + - [x] Boolean operators [HIGH] - [ ] Tag objects + autocomplete [HIGH] - [x] Filename search [HIGH] - [x] Filetype search [HIGH] - [x] Search by extension (e.g. ".jpg", ".png") [HIGH] - - [ ] Optional consolidation of extension synonyms (i.e. ".jpg" can equal ".jpeg") [LOW] + - [x] Optional consolidation of extension synonyms (i.e. ".jpg" can equal ".jpeg") [LOW] - [x] Search by media type (e.g. "image", "video", "document") [MEDIUM] - [ ] Field content search [HIGH] - [ ] Sortable results [HIGH] diff --git a/tagstudio/src/core/library/alchemy/visitors.py b/tagstudio/src/core/library/alchemy/visitors.py index 6f73a45a..1756bb08 100644 --- a/tagstudio/src/core/library/alchemy/visitors.py +++ b/tagstudio/src/core/library/alchemy/visitors.py @@ -3,7 +3,7 @@ from typing import TYPE_CHECKING from sqlalchemy import and_, distinct, func, or_, select from sqlalchemy.orm import Session from sqlalchemy.sql.expression import BinaryExpression, ColumnExpressionArgument -from src.core.media_types import MediaCategories +from src.core.media_types import FILETYPE_EQUIVALENTS, MediaCategories from src.core.query_lang import BaseVisitor from src.core.query_lang.ast import AST, ANDList, Constraint, ConstraintType, Not, ORList, Property @@ -17,6 +17,13 @@ else: Library = None # don't import .library because of circular imports +def get_filetype_equivalency_list(item: str) -> list[str] | set[str]: + for s in FILETYPE_EQUIVALENTS: + if item in s: + return s + return [item] + + class SQLBoolExpressionBuilder(BaseVisitor[ColumnExpressionArgument]): def __init__(self, lib: Library) -> None: super().__init__() @@ -73,7 +80,9 @@ class SQLBoolExpressionBuilder(BaseVisitor[ColumnExpressionArgument]): break return Entry.suffix.in_(map(lambda x: x.replace(".", ""), extensions)) elif node.type == ConstraintType.FileType: - return Entry.suffix.ilike(node.value) + return or_( + *[Entry.suffix.ilike(ft) for ft in get_filetype_equivalency_list(node.value)] + ) elif node.type == ConstraintType.Special: # noqa: SIM102 unnecessary once there is a second special constraint if node.value.lower() == "untagged": return ~Entry.id.in_( diff --git a/tagstudio/src/core/media_types.py b/tagstudio/src/core/media_types.py index 78755aac..be9ebdbd 100644 --- a/tagstudio/src/core/media_types.py +++ b/tagstudio/src/core/media_types.py @@ -10,6 +10,8 @@ from pathlib import Path logging.basicConfig(format="%(message)s", level=logging.INFO) +FILETYPE_EQUIVALENTS = [set(["jpg", "jpeg"])] + class MediaType(str, Enum): """Names of media types.""" From dc2eed431b97e43cec44c16b5f8b4dc1f15203ec Mon Sep 17 00:00:00 2001 From: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> Date: Sun, 22 Dec 2024 22:11:18 -0800 Subject: [PATCH 8/9] add `.sqlite-journal` to `.gitignore` --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 595a3290..e5f2d946 100644 --- a/.gitignore +++ b/.gitignore @@ -262,6 +262,7 @@ compile_commands.json tagstudio/tests/fixtures/library/* tagstudio/tests/fixtures/json_library/.TagStudio/*.sqlite TagStudio.ini +*.sqlite-journal .envrc .direnv From 82c659c8a4b5acb1cbb727341cc6d187047fd23e Mon Sep 17 00:00:00 2001 From: DandyDev01 <37933054+DandyDev01@users.noreply.github.com> Date: Sun, 22 Dec 2024 23:14:37 -0700 Subject: [PATCH 9/9] feat(ui): new tag alias UI (#534) * updated parents and aliases to use the flowLaout in the build tag panel added shortcuts for adding and removing aliases and updated the alias ui to always show remove button and not cover alias aliases use flowlayout wrote test for buildTagPanel removeSelectedAlias parent tags now use flowlayout in build tag panel moved buttons for adding aliases and parents to be at the end of the flowLayout * added aliases and subtags to search results * aliases now use a table, removed unnecessary keyboard shortcuts * reverted subtags to regular list from flowlayout * chor remove redundant lambda * feat: added display names for tags * fix: aliases table enter/return and backspace work as expected, display names work as expected, adding aliases outputs them in order * format * fix: add parent button on build tag panel * fix: empty aliases where not being removed all the time * fix: alias name changes would be discarded when a new alias was created or an alias was removed * fix: removed display names, as they didn't display properly and should be added in a different PR * fix: mypy * fix: added missing session.expunge_all session.expunge_all() on line 621 was removed, added it back. * fix: parent_tags relationship in Tag class parent_tags primaryJoin and secondaryJoin where in the wrong order. They have been switched back to the proper order. * fix: pillow_jxl import was missing * fix: ruff * fix: type hint fixes * fix: fix the type hint fixes --------- Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> --- tagstudio/src/core/library/alchemy/library.py | 13 +- tagstudio/src/qt/modals/build_tag.py | 319 ++++++++---------- tagstudio/src/qt/modals/tag_database.py | 4 +- tagstudio/src/qt/ts_qt.py | 5 +- tagstudio/tests/qt/test_build_tag_panel.py | 45 +-- 5 files changed, 161 insertions(+), 225 deletions(-) diff --git a/tagstudio/src/core/library/alchemy/library.py b/tagstudio/src/core/library/alchemy/library.py index 043d9262..186cd797 100644 --- a/tagstudio/src/core/library/alchemy/library.py +++ b/tagstudio/src/core/library/alchemy/library.py @@ -619,6 +619,7 @@ class Library: ) session.expunge_all() + return res def get_all_child_tag_ids(self, tag_id: int) -> list[int]: @@ -901,9 +902,9 @@ class Library: def add_tag( self, tag: Tag, - subtag_ids: set[int] | None = None, - alias_names: set[str] | None = None, - alias_ids: set[int] | None = None, + subtag_ids: list[int] | set[int] | None = None, + alias_names: list[str] | set[str] | None = None, + alias_ids: list[int] | set[int] | None = None, ) -> Tag | None: with Session(self.engine, expire_on_commit=False) as session: try: @@ -1077,9 +1078,9 @@ class Library: def update_tag( self, tag: Tag, - subtag_ids: set[int] | None = None, - alias_names: set[str] | None = None, - alias_ids: set[int] | None = None, + subtag_ids: list[int] | set[int] | None = None, + alias_names: list[str] | set[str] | None = None, + alias_ids: list[int] | set[int] | None = None, ) -> None: """Edit a Tag in the Library.""" self.add_tag(tag, subtag_ids, alias_names, alias_ids) diff --git a/tagstudio/src/qt/modals/build_tag.py b/tagstudio/src/qt/modals/build_tag.py index fcb786ae..4a96d177 100644 --- a/tagstudio/src/qt/modals/build_tag.py +++ b/tagstudio/src/qt/modals/build_tag.py @@ -3,43 +3,58 @@ # Created for TagStudio: https://github.com/CyanVoxel/TagStudio -import math +import sys from typing import cast import structlog -from PySide6 import QtCore from PySide6.QtCore import Qt, Signal -from PySide6.QtGui import ( - QAction, -) from PySide6.QtWidgets import ( QApplication, QComboBox, + QFrame, QLabel, QLineEdit, QPushButton, + QScrollArea, + QTableWidget, QVBoxLayout, QWidget, ) from src.core.library import Library, Tag from src.core.library.alchemy.enums import TagColor from src.core.palette import ColorType, UiColor, get_tag_color, get_ui_color -from src.qt.flowlayout import FlowLayout from src.qt.modals.tag_search import TagSearchPanel from src.qt.widgets.panel import PanelModal, PanelWidget -from src.qt.widgets.tag import TagAliasWidget, TagWidget +from src.qt.widgets.tag import TagWidget logger = structlog.get_logger(__name__) +class CustomTableItem(QLineEdit): + def __init__(self, text, on_return, on_backspace, parent=None): + super().__init__(parent) + self.setText(text) + self.on_return = on_return + self.on_backspace = on_backspace + + def set_id(self, id): + self.id = id + + def keyPressEvent(self, event): # noqa: N802 + if event.key() == Qt.Key.Key_Return or event.key() == Qt.Key.Key_Enter: + self.on_return() + elif event.key() == Qt.Key.Key_Backspace and self.text().strip() == "": + self.on_backspace() + else: + super().keyPressEvent(event) + + class BuildTagPanel(PanelWidget): on_edit = Signal(Tag) def __init__(self, library: Library, tag: Tag | None = None): super().__init__() self.lib = library - # self.callback = callback - # self.tag_id = tag_id self.setMinimumSize(300, 400) self.root_layout = QVBoxLayout(self) @@ -86,43 +101,16 @@ class BuildTagPanel(PanelWidget): self.aliases_title.setText("Aliases") self.aliases_layout.addWidget(self.aliases_title) - self.aliases_flow_widget = QWidget() - self.aliases_flow_layout = FlowLayout(self.aliases_flow_widget) - self.aliases_flow_layout.setContentsMargins(0, 0, 0, 0) - self.aliases_flow_layout.enable_grid_optimizations(value=False) + self.aliases_table = QTableWidget(0, 2) + self.aliases_table.horizontalHeader().setVisible(False) + self.aliases_table.verticalHeader().setVisible(False) + self.aliases_table.horizontalHeader().setStretchLastSection(True) + self.aliases_table.setColumnWidth(0, 35) self.alias_add_button = QPushButton() - self.alias_add_button.setMinimumSize(23, 23) - self.alias_add_button.setMaximumSize(23, 23) self.alias_add_button.setText("+") - self.alias_add_button.setToolTip("CTRL + A") - self.alias_add_button.setShortcut( - QtCore.QKeyCombination( - QtCore.Qt.KeyboardModifier(QtCore.Qt.KeyboardModifier.ControlModifier), - QtCore.Qt.Key.Key_A, - ) - ) - self.alias_add_button.setStyleSheet( - f"QPushButton{{" - f"background: #1e1e1e;" - f"color: #FFFFFF;" - f"font-weight: bold;" - f"border-color: #333333;" - f"border-radius: 6px;" - f"border-style:solid;" - f"border-width:{math.ceil(self.devicePixelRatio())}px;" - f"padding-bottom: 5px;" - f"font-size: 20px;" - f"}}" - f"QPushButton::hover" - f"{{" - f"border-color: #CCCCCC;" - f"background: #555555;" - f"}}" - ) - self.alias_add_button.clicked.connect(lambda: self.add_alias_callback()) - self.aliases_flow_layout.addWidget(self.alias_add_button) + self.alias_add_button.clicked.connect(self.add_alias_callback) # Subtags ------------------------------------------------------------ @@ -137,42 +125,25 @@ class BuildTagPanel(PanelWidget): self.subtags_title.setText("Parent Tags") self.subtags_layout.addWidget(self.subtags_title) - self.subtag_flow_widget = QWidget() - self.subtag_flow_layout = FlowLayout(self.subtag_flow_widget) - self.subtag_flow_layout.setContentsMargins(0, 0, 0, 0) - self.subtag_flow_layout.enable_grid_optimizations(value=False) + self.scroll_contents = QWidget() + self.subtags_scroll_layout = QVBoxLayout(self.scroll_contents) + self.subtags_scroll_layout.setContentsMargins(6, 0, 6, 0) + self.subtags_scroll_layout.setAlignment(Qt.AlignmentFlag.AlignTop) + + self.scroll_area = QScrollArea() + # self.scroll_area.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOn) + self.scroll_area.setWidgetResizable(True) + self.scroll_area.setFrameShadow(QFrame.Shadow.Plain) + self.scroll_area.setFrameShape(QFrame.Shape.NoFrame) + self.scroll_area.setWidget(self.scroll_contents) + # self.scroll_area.setMinimumHeight(60) + + self.subtags_layout.addWidget(self.scroll_area) self.subtags_add_button = QPushButton() self.subtags_add_button.setCursor(Qt.CursorShape.PointingHandCursor) self.subtags_add_button.setText("+") - self.subtags_add_button.setToolTip("CTRL + P") - self.subtags_add_button.setMinimumSize(23, 23) - self.subtags_add_button.setMaximumSize(23, 23) - self.subtags_add_button.setShortcut( - QtCore.QKeyCombination( - QtCore.Qt.KeyboardModifier(QtCore.Qt.KeyboardModifier.ControlModifier), - QtCore.Qt.Key.Key_P, - ) - ) - self.subtags_add_button.setStyleSheet( - f"QPushButton{{" - f"background: #1e1e1e;" - f"color: #FFFFFF;" - f"font-weight: bold;" - f"border-color: #333333;" - f"border-radius: 6px;" - f"border-style:solid;" - f"border-width:{math.ceil(self.devicePixelRatio())}px;" - f"padding-bottom: 5px;" - f"font-size: 20px;" - f"}}" - f"QPushButton::hover" - f"{{" - f"border-color: #CCCCCC;" - f"background: #555555;" - f"}}" - ) - self.subtag_flow_layout.addWidget(self.subtags_add_button) + self.subtags_layout.addWidget(self.subtags_add_button) exclude_ids: list[int] = list() if tag is not None: @@ -182,11 +153,6 @@ class BuildTagPanel(PanelWidget): tsp.tag_chosen.connect(lambda x: self.add_subtag_callback(x)) self.add_tag_modal = PanelModal(tsp, "Add Parent Tags", "Add Parent Tags") self.subtags_add_button.clicked.connect(self.add_tag_modal.show) - # self.subtags_layout.addWidget(self.subtags_add_button) - - # self.subtags_field = TagBoxWidget() - # self.subtags_field.setMinimumHeight(60) - # self.subtags_layout.addWidget(self.subtags_field) # Shorthand ------------------------------------------------------------ self.color_widget = QWidget() @@ -218,65 +184,59 @@ class BuildTagPanel(PanelWidget): ) ) self.color_layout.addWidget(self.color_field) - remove_selected_alias_action = QAction("remove selected alias", self) - remove_selected_alias_action.triggered.connect(self.remove_selected_alias) - remove_selected_alias_action.setShortcut( - QtCore.QKeyCombination( - QtCore.Qt.KeyboardModifier(QtCore.Qt.KeyboardModifier.ControlModifier), - QtCore.Qt.Key.Key_D, - ) - ) - self.addAction(remove_selected_alias_action) # Add Widgets to Layout ================================================ self.root_layout.addWidget(self.name_widget) self.root_layout.addWidget(self.shorthand_widget) self.root_layout.addWidget(self.aliases_widget) - self.root_layout.addWidget(self.aliases_flow_widget) + self.root_layout.addWidget(self.aliases_table) + self.root_layout.addWidget(self.alias_add_button) self.root_layout.addWidget(self.subtags_widget) - self.root_layout.addWidget(self.subtag_flow_widget) self.root_layout.addWidget(self.color_widget) - # self.parent().done.connect(self.update_tag) - self.subtag_ids: set[int] = set() - self.alias_ids: set[int] = set() - self.alias_names: set[str] = set() - self.new_alias_names: dict = dict() + self.subtag_ids: list[int] = [] + self.alias_ids: list[int] = [] + self.alias_names: list[str] = [] + self.new_alias_names: dict = {} + self.new_item_id = sys.maxsize self.set_tag(tag or Tag(name="New Tag")) if tag is None: self.name_field.selectAll() - def keyPressEvent(self, event): # noqa: N802 - if event.key() == Qt.Key_Return or event.key() == Qt.Key_Enter: # type: ignore - focused_widget = QApplication.focusWidget() - if isinstance(focused_widget.parent(), TagAliasWidget): - self.add_alias_callback() - - def remove_selected_alias(self): - count = self.aliases_flow_layout.count() - if count <= 0: - return - + def backspace(self): focused_widget = QApplication.focusWidget() + row = self.aliases_table.rowCount() - if focused_widget is None: + if isinstance(focused_widget, CustomTableItem) is False: + return + remove_row = 0 + for i in range(0, row): + item = self.aliases_table.cellWidget(i, 1) + if ( + isinstance(item, CustomTableItem) + and cast(CustomTableItem, item).id == cast(CustomTableItem, focused_widget).id + ): + cast(QPushButton, self.aliases_table.cellWidget(i, 0)).click() + remove_row = i + break + + if self.aliases_table.rowCount() <= 0: return - if isinstance(focused_widget.parent(), TagAliasWidget): - cast(TagAliasWidget, focused_widget.parent()).on_remove.emit() + if remove_row == 0: + remove_row = 1 - count = self.aliases_flow_layout.count() - if count > 1: - cast( - TagAliasWidget, self.aliases_flow_layout.itemAt(count - 2).widget() - ).text_field.setFocus() - else: - self.alias_add_button.setFocus() + self.aliases_table.cellWidget(remove_row - 1, 1).setFocus() + + def enter(self): + focused_widget = QApplication.focusWidget() + if isinstance(focused_widget, CustomTableItem): + self.add_alias_callback() def add_subtag_callback(self, tag_id: int): logger.info("add_subtag_callback", tag_id=tag_id) - self.subtag_ids.add(tag_id) + self.subtag_ids.append(tag_id) self.set_subtags() def remove_subtag_callback(self, tag_id: int): @@ -286,76 +246,71 @@ class BuildTagPanel(PanelWidget): def add_alias_callback(self): logger.info("add_alias_callback") - # bug passing in the text for a here means when the text changes - # the remove callback uses what a whas initialy assigned - new_field = TagAliasWidget() - id = new_field.__hash__() - new_field.id = id - new_field.on_remove.connect(lambda a="": self.remove_alias_callback(a, id)) - new_field.setMaximumHeight(25) - new_field.setMinimumHeight(25) + id = self.new_item_id - self.alias_ids.add(id) + self.alias_ids.append(id) self.new_alias_names[id] = "" - self.aliases_flow_layout.addWidget(new_field) - new_field.text_field.setFocus() - self.aliases_flow_layout.addWidget(self.alias_add_button) + + self.new_item_id -= 1 + + self._set_aliases() + + row = self.aliases_table.rowCount() - 1 + item = self.aliases_table.cellWidget(row, 1) + item.setFocus() def remove_alias_callback(self, alias_name: str, alias_id: int | None = None): logger.info("remove_alias_callback") + self.alias_ids.remove(alias_id) self._set_aliases() def set_subtags(self): - while self.subtag_flow_layout.itemAt(1): - self.subtag_flow_layout.takeAt(0).widget().deleteLater() + while self.subtags_scroll_layout.itemAt(0): + self.subtags_scroll_layout.takeAt(0).widget().deleteLater() + c = QWidget() + layout = QVBoxLayout(c) + layout.setContentsMargins(0, 0, 0, 0) + layout.setSpacing(3) for tag_id in self.subtag_ids: tag = self.lib.get_tag(tag_id) tw = TagWidget(tag, has_edit=False, has_remove=True) tw.on_remove.connect(lambda t=tag_id: self.remove_subtag_callback(t)) - self.subtag_flow_layout.addWidget(tw) - - self.subtag_flow_layout.addWidget(self.subtags_add_button) + layout.addWidget(tw) + self.subtags_scroll_layout.addWidget(c) def add_aliases(self): - fields: set[TagAliasWidget] = set() - for i in range(0, self.aliases_flow_layout.count() - 1): - widget = self.aliases_flow_layout.itemAt(i).widget() + names: set[str] = set() + for i in range(0, self.aliases_table.rowCount()): + widget = self.aliases_table.cellWidget(i, 1) - if not isinstance(widget, TagAliasWidget): - return + names.add(cast(CustomTableItem, widget).text()) - field: TagAliasWidget = cast(TagAliasWidget, widget) - fields.add(field) + remove: set[str] = set(self.alias_names) - names - remove: set[str] = self.alias_names - set([a.text_field.text() for a in fields]) + self.alias_names = list(set(self.alias_names) - remove) - self.alias_names = self.alias_names - remove - - for field in fields: + for name in names: # add new aliases - if field.text_field.text() != "": - self.alias_names.add(field.text_field.text()) + if name.strip() != "" and name not in set(self.alias_names): + self.alias_names.append(name) + elif name.strip() == "" and name in set(self.alias_names): + self.alias_names.remove(name) def _update_new_alias_name_dict(self): - for i in range(0, self.aliases_flow_layout.count() - 1): - widget = self.aliases_flow_layout.itemAt(i).widget() - - if not isinstance(widget, TagAliasWidget): - return - - field: TagAliasWidget = cast(TagAliasWidget, widget) - text_field_text = field.text_field.text() - - self.new_alias_names[field.id] = text_field_text + row = self.aliases_table.rowCount() + logger.info(row) + for i in range(0, self.aliases_table.rowCount()): + widget = self.aliases_table.cellWidget(i, 1) + self.new_alias_names[widget.id] = widget.text() # type: ignore def _set_aliases(self): self._update_new_alias_name_dict() - while self.aliases_flow_layout.itemAt(1): - self.aliases_flow_layout.takeAt(0).widget().deleteLater() + while self.aliases_table.rowCount() > 0: + self.aliases_table.removeRow(0) self.alias_names.clear() @@ -364,43 +319,45 @@ class BuildTagPanel(PanelWidget): alias_name = alias.name if alias else self.new_alias_names[alias_id] - new_field = TagAliasWidget( - alias_id, - alias_name, - lambda a=alias_name, id=alias_id: self.remove_alias_callback(a, id), - ) - new_field.setMaximumHeight(25) - new_field.setMinimumHeight(25) - self.aliases_flow_layout.addWidget(new_field) - self.alias_names.add(alias_name) + # handel when an alias name changes + if alias_id in self.new_alias_names: + alias_name = self.new_alias_names[alias_id] - self.aliases_flow_layout.addWidget(self.alias_add_button) + self.alias_names.append(alias_name) + + remove_btn = QPushButton("-") + remove_btn.clicked.connect( + lambda a=alias_name, id=alias_id: self.remove_alias_callback(a, id) + ) + + row = self.aliases_table.rowCount() + new_item = CustomTableItem(alias_name, self.enter, self.backspace) + new_item.set_id(alias_id) + + new_item.editingFinished.connect(lambda item=new_item: self._alias_name_change(item)) + + self.aliases_table.insertRow(row) + self.aliases_table.setCellWidget(row, 1, new_item) + self.aliases_table.setCellWidget(row, 0, remove_btn) + + def _alias_name_change(self, item: CustomTableItem): + self.new_alias_names[item.id] = item.text() def set_tag(self, tag: Tag): self.tag = tag - self.tag = tag - logger.info("setting tag", tag=tag) self.name_field.setText(tag.name) self.shorthand_field.setText(tag.shorthand or "") for alias_id in tag.alias_ids: - self.alias_ids.add(alias_id) + self.alias_ids.append(alias_id) self._set_aliases() for subtag in tag.subtag_ids: - self.subtag_ids.add(subtag) - - for alias_id in tag.alias_ids: - self.alias_ids.add(alias_id) - - self._set_aliases() - - for subtag in tag.subtag_ids: - self.subtag_ids.add(subtag) + self.subtag_ids.append(subtag) self.set_subtags() diff --git a/tagstudio/src/qt/modals/tag_database.py b/tagstudio/src/qt/modals/tag_database.py index 168420d5..bc5cfce9 100644 --- a/tagstudio/src/qt/modals/tag_database.py +++ b/tagstudio/src/qt/modals/tag_database.py @@ -165,7 +165,9 @@ class TagDatabasePanel(PanelWidget): self.edit_modal.show() def edit_tag_callback(self, btp: BuildTagPanel): - self.lib.update_tag(btp.build_tag(), btp.subtag_ids, btp.alias_names, btp.alias_ids) + self.lib.update_tag( + btp.build_tag(), set(btp.subtag_ids), set(btp.alias_names), set(btp.alias_ids) + ) self.update_tags(self.search_field.text()) def showEvent(self, event: QShowEvent) -> None: # noqa N802 diff --git a/tagstudio/src/qt/ts_qt.py b/tagstudio/src/qt/ts_qt.py index 4a568b57..2c238807 100644 --- a/tagstudio/src/qt/ts_qt.py +++ b/tagstudio/src/qt/ts_qt.py @@ -635,7 +635,10 @@ class QtDriver(DriverMixin, QObject): self.modal.saved.connect( lambda: ( self.lib.add_tag( - panel.build_tag(), panel.subtag_ids, panel.alias_names, panel.alias_ids + panel.build_tag(), + set(panel.subtag_ids), + set(panel.alias_names), + set(panel.alias_ids), ), self.modal.hide(), ) diff --git a/tagstudio/tests/qt/test_build_tag_panel.py b/tagstudio/tests/qt/test_build_tag_panel.py index 9026b475..87971bcc 100644 --- a/tagstudio/tests/qt/test_build_tag_panel.py +++ b/tagstudio/tests/qt/test_build_tag_panel.py @@ -1,9 +1,5 @@ -from typing import cast - -from PySide6.QtWidgets import QApplication, QMainWindow from src.core.library.alchemy.models import Tag from src.qt.modals.build_tag import BuildTagPanel -from src.qt.widgets.tag import TagAliasWidget def test_build_tag_panel_add_sub_tag_callback(library, generate_tag): @@ -43,29 +39,6 @@ import os os.environ["QT_QPA_PLATFORM"] = "offscreen" -def test_build_tag_panel_remove_selected_alias(library, generate_tag): - app = QApplication.instance() or QApplication([]) - - window = QMainWindow() - parent_tag = library.add_tag(generate_tag("xxx", id=123)) - panel = BuildTagPanel(library, parent_tag) - panel.setParent(window) - - panel.add_alias_callback() - window.show() - - assert panel.aliases_flow_layout.count() == 2 - - alias_widget = panel.aliases_flow_layout.itemAt(0).widget() - alias_widget.text_field.setFocus() - - app.processEvents() - - panel.remove_selected_alias() - - assert panel.aliases_flow_layout.count() == 1 - - def test_build_tag_panel_add_alias_callback(library, generate_tag): tag = library.add_tag(generate_tag("xxx", id=123)) assert tag @@ -74,7 +47,7 @@ def test_build_tag_panel_add_alias_callback(library, generate_tag): panel.add_alias_callback() - assert panel.aliases_flow_layout.count() == 2 + assert panel.aliases_table.rowCount() == 1 def test_build_tag_panel_remove_alias_callback(library, generate_tag): @@ -112,7 +85,7 @@ def test_build_tag_panel_set_subtags(library, generate_tag): panel: BuildTagPanel = BuildTagPanel(library, child) assert len(panel.subtag_ids) == 1 - assert panel.subtag_flow_layout.count() == 2 + assert panel.subtags_scroll_layout.count() == 1 def test_build_tag_panel_add_aliases(library, generate_tag): @@ -128,19 +101,19 @@ def test_build_tag_panel_add_aliases(library, generate_tag): panel: BuildTagPanel = BuildTagPanel(library, tag) - widget = panel.aliases_flow_layout.itemAt(0).widget() + widget = panel.aliases_table.cellWidget(0, 1) alias_names: set[str] = set() - alias_names.add(cast(TagAliasWidget, widget).text_field.text()) + alias_names.add(widget.text()) - widget = panel.aliases_flow_layout.itemAt(1).widget() - alias_names.add(cast(TagAliasWidget, widget).text_field.text()) + widget = panel.aliases_table.cellWidget(1, 1) + alias_names.add(widget.text()) assert "alias" in alias_names assert "alias_2" in alias_names - old_text = cast(TagAliasWidget, widget).text_field.text() - cast(TagAliasWidget, widget).text_field.setText("alias_update") + old_text = widget.text() + widget.setText("alias_update") panel.add_aliases() @@ -161,7 +134,7 @@ def test_build_tag_panel_set_aliases(library, generate_tag): panel: BuildTagPanel = BuildTagPanel(library, tag) - assert panel.aliases_flow_layout.count() == 2 + assert panel.aliases_table.rowCount() == 1 assert len(panel.alias_names) == 1 assert len(panel.alias_ids) == 1