diff --git a/ui/v2.5/src/App.tsx b/ui/v2.5/src/App.tsx index e8e32cced4b..9e95d2fbd42 100644 --- a/ui/v2.5/src/App.tsx +++ b/ui/v2.5/src/App.tsx @@ -102,6 +102,17 @@ const AppContainer: React.FC> = PatchFunction( } ) as React.FC; +function translateLanguageLocale(l: string) { + // intl doesn't support all locales, so we need to map some to supported ones + switch (l) { + case "nn-NO": + // use other Norwegian locale for intl + return "nb-NO"; + default: + return l; + } +} + export const App: React.FC = () => { const config = useConfiguration(); const [saveUI] = useConfigureUI(); @@ -110,6 +121,7 @@ export const App: React.FC = () => { const language = config.data?.configuration?.interface?.language ?? defaultLocale; + const intlLanguage = translateLanguageLocale(language); // use en-GB as default messages if any messages aren't found in the chosen language const [messages, setMessages] = useState<{}>(); @@ -279,7 +291,7 @@ export const App: React.FC = () => { {messages ? ( diff --git a/ui/v2.5/src/components/Settings/SettingsInterfacePanel/SettingsInterfacePanel.tsx b/ui/v2.5/src/components/Settings/SettingsInterfacePanel/SettingsInterfacePanel.tsx index c174847c982..f041decd303 100644 --- a/ui/v2.5/src/components/Settings/SettingsInterfacePanel/SettingsInterfacePanel.tsx +++ b/ui/v2.5/src/components/Settings/SettingsInterfacePanel/SettingsInterfacePanel.tsx @@ -211,22 +211,28 @@ export const SettingsInterfacePanel: React.FC = PatchComponent( + + + + + - - + + + diff --git a/ui/v2.5/src/locales/README.md b/ui/v2.5/src/locales/README.md index 04477974ca6..ddf3ecb855f 100644 --- a/ui/v2.5/src/locales/README.md +++ b/ui/v2.5/src/locales/README.md @@ -1,3 +1,28 @@ Use `en-GB.json` by default. This should have _all_ message IDs in it. Only add to other json files if the value is different to `en-GB` since it will fall back to use it if the message ID is not found in the chosen language. -Try to keep message IDs in alphabetical order for ease of reference. \ No newline at end of file +Try to keep message IDs in alphabetical order for ease of reference. + +# Merging translations from Codeberg Weblate + +1. (**first time only**) Add remote for the Codeberg Weblate repository: +```bash +git remote add weblate_codeberg https://translate.codeberg.org/git/stash/stash/ +``` +2. (optional) Lock the Weblate repository. +3. Fetch the Weblate repository: +```bash +git fetch weblate_codeberg develop +``` +4. Create and/or checkout a branch to hold the Weblate translations: +```bash +git checkout -b codeberg_weblate +``` +5. Reset the branch to the Weblate repository's `develop` branch: +```bash +git reset --hard weblate_codeberg/develop +``` +6. Push the branch to your github account: +```bash +git push origin codeberg_weblate +``` +7. Create a pull request to merge the Weblate translations into the main repository. diff --git a/ui/v2.5/src/locales/cs-CZ.json b/ui/v2.5/src/locales/cs-CZ.json index 1384be8657b..5d90603f6d0 100644 --- a/ui/v2.5/src/locales/cs-CZ.json +++ b/ui/v2.5/src/locales/cs-CZ.json @@ -180,7 +180,10 @@ "show_male_label": "Ukázat mužské účinkující", "source": "Zdroj", "mark_organized_desc": "Po kliknutí na tlačítko Uložit okamžitě označte scénu jako Uspořádanou.", - "mark_organized_label": "Označit jako Uspořádané při uložení" + "mark_organized_label": "Označit jako Uspořádané při uložení", + "errors": { + "blacklist_duplicate": "Duplikovat položku blacklistu" + } }, "noun_query": "Dotaz", "results": { @@ -533,7 +536,7 @@ "transcodes": "Transkódy scén" }, "generate_sprites_during_scan_tooltip": "Sada obrázků zobrazená pod videopřehrávačem pro snadnou navigaci.", - "generate_video_covers_during_scan": "Generuj obaly scén", + "generate_video_covers_during_scan": "Generovat obaly scén", "anonymise_database": "Vytvoří kopii databáze do adresáře záloh, anonymizuje všechna citlivá data. To pak může být poskytnuto ostatním pro účely odstraňování problémů a debuggování. Původní databáze se nemění. Anonymizovaná databáze používá formát názvu souboru {filename_format}.", "optimise_database": "Pokusit se zlepšit výkon analyzováním a opětovným sestavením celého databázového souboru.", "generate_clip_previews_during_scan": "Generování náhledů pro obrázkové klipy", @@ -542,7 +545,7 @@ "rescan_tooltip": "Znovu skenovat každý soubor v cestě. Používá se k vynucení aktualizace metadat souboru a opětovnému skenování zip souborů." }, "tools": { - "scene_duplicate_checker": "Kontrola na duplikaci scén", + "scene_duplicate_checker": "Detektor duplicitních scén", "scene_filename_parser": { "add_field": "Přidat pole", "capitalize_title": "Převést titul na kapitálky", @@ -558,7 +561,7 @@ "whitespace_chars": "Whitespace znaky", "whitespace_chars_desc": "Tyto znaky v názvu budou nahrazeny prázdným znakem (mezerou)" }, - "scene_tools": "Nástroje scény" + "scene_tools": "Nástroje pro scény" }, "ui": { "abbreviate_counters": { @@ -606,17 +609,17 @@ "star_precision": { "label": "Přesnost hvězd hodnocení", "options": { - "full": "Plná", + "full": "Plné", "half": "Poloviční", - "quarter": "Čtvrtinová", - "tenth": "Desetina" + "quarter": "Čtvrtinové", + "tenth": "Desetiné" } }, "type": { "label": "Typ hodnocení", "options": { - "decimal": "Desetinný", - "stars": "Hvězdy" + "decimal": "Desetinné", + "stars": "Hvězdičky" } } }, @@ -987,7 +990,8 @@ "required": "${path} je vyžadované pole", "unique": "${path} musí být jedinečná", "blank": "${path} nesmí být prázdná", - "date_invalid_form": "${path} musí být ve formátu YYYY-MM-DD (Rok-Měsíc-Den)" + "date_invalid_form": "${path} musí být ve formátu YYYY-MM-DD (Rok-Měsíc-Den)", + "end_time_before_start_time": "Čas ukončení musí být větší nebo roven času zahájení" }, "type": "Typ", "twitter": "Twitter", @@ -1165,7 +1169,9 @@ "errors": { "something_went_wrong_description": "Pokud to vypadá na problém s vašemi vstupy, pokračujte kliknutím na tlačítko Zpět a opravte je. Jinak upozorněte na chybu na {githubLink} nebo vyhledejte pomoc na {discordLink}.", "something_went_wrong": "Ach ne! Něco se pokazilo!", - "something_went_wrong_while_setting_up_your_system": "Při nastavování systému se něco pokazilo. Zde je chyba, kterou jsme obdrželi: {error}" + "something_went_wrong_while_setting_up_your_system": "Při nastavování systému se něco pokazilo. Zde je chyba, kterou jsme obdrželi: {error}", + "unable_to_retrieve_system_status": "Nelze načíst stav systému: {error}", + "unexpected_error": "Došlo k neočekávané chybě: {error}" }, "folder": { "up_dir": "Nahoru o adresář", @@ -1226,7 +1232,13 @@ "header": "Chyba", "loading_type": "Chyba při načítání {type}", "invalid_javascript_string": "Neplatný kód javascriptu : {error}", - "invalid_json_string": "Neplatný string JSON: {error}" + "invalid_json_string": "Neplatný string JSON: {error}", + "custom_fields": { + "field_name_required": "Název pole je povinný", + "field_name_whitespace": "Název pole nesmí obsahovat mezery ani na začátku ani na konci", + "duplicate_field": "Název pole musí být jedinečný", + "field_name_length": "Název pole musí být kratší než 65 znaků" + } }, "eye_color": "Barva očí", "fake_tits": "Falešná prsa", @@ -1256,7 +1268,8 @@ "isMissing": "Chybí", "last_played_at": "Naposledy přehráno", "loading": { - "generic": "Načítání…" + "generic": "Načítání…", + "plugins": "Znovu načíst pluginy…" }, "library": "Knihovna", "marker_count": "Počet Značek", @@ -1336,7 +1349,7 @@ "primary_file": "Primární soubor", "primary_tag": "Primární tag", "queue": "Fronta", - "random": "Náhodný", + "random": "Náhodně", "last_o_at": "Poslední O", "o_history": "Historie O", "odate_recorded_no": "Žádný Datum O Nezaznamenán", @@ -1369,7 +1382,7 @@ "scene_updated_at": "Scéna aktualizována", "scenes": "Scény", "scenes_updated_at": "Scéna aktualizována", - "second": "Druhá", + "second": "Sekunda", "seconds": "Sekund", "settings": "Nastavení", "empty_server": "Chcete-li na této stránce zobrazit doporučení, přidejte na svůj server nějaké scény.", @@ -1491,5 +1504,17 @@ "sub_group_count": "Počet podskupin", "include_sub_studio_content": "Zahrnout obsah podstudií", "include_sub_tag_content": "Zahrnout obsah podtagů", - "include_sub_groups": "Zahrnout podskupiny" + "include_sub_groups": "Zahrnout podskupiny", + "time_end": "Čas ukončení", + "criterion_modifier_values": { + "any": "Jakýkoli", + "any_of": "Jakýkoli z", + "none": "Žádný", + "only": "Pouze" + }, + "custom_fields": { + "title": "Uživatelská pole", + "value": "Hodnota", + "field": "Pole" + } } diff --git a/ui/v2.5/src/locales/de-DE.json b/ui/v2.5/src/locales/de-DE.json index 4cc7b95f894..582148f4108 100644 --- a/ui/v2.5/src/locales/de-DE.json +++ b/ui/v2.5/src/locales/de-DE.json @@ -140,7 +140,7 @@ "reset_cover": "Titelbild zurücksetzen", "remove_from_containing_group": "Von Gruppe entfernen", "reset_play_duration": "Spieldauer zurücksetzten", - "reset_resume_time": "Forschritt zurücksetzten", + "reset_resume_time": "Fortschritt zurücksetzten", "add_sub_groups": "Untergruppen hinzufügen" }, "actions_name": "Aktionen", @@ -191,7 +191,10 @@ "show_male_label": "Männliche Darsteller anzeigen", "source": "Quelle", "mark_organized_label": "Beim speichern als organisiert markieren", - "mark_organized_desc": "Markiere die Szene nach dem klicken auf Speichern als organisiert." + "mark_organized_desc": "Markiere die Szene nach dem klicken auf Speichern als organisiert.", + "errors": { + "blacklist_duplicate": "Blacklist item duplizieren" + } }, "noun_query": "Anfrage", "results": { @@ -405,7 +408,7 @@ "video_ext_head": "Videodateiformate", "video_head": "Video", "plugins_path": { - "heading": "Plugins Pfad", + "heading": "Dateipfad für Plugins", "description": "Speicherort der Plugin-Konfigurationsdateien" } }, @@ -509,7 +512,8 @@ "skip_single_name_performers_tooltip": "Wenn dies nicht aktiviert ist, werden Darsteller, die oft generisch sind, wie Samantha oder Olga, abgeglichen", "tag_skipped_matches": "Übersprungenes Tag passt zu", "tag_skipped_matches_tooltip": "Erstellen Sie ein Tag wie 'Identifizieren: Mehrere Übereinstimmungen“, nach denen Sie in der Scene Tagger-Ansicht filtern und die richtige Übereinstimmung von Hand auswählen können", - "tag_skipped_performers": "Setze folgenden Tag bei übersprungenen Darstellern" + "tag_skipped_performers": "Setze folgenden Tag bei übersprungenen Darstellern", + "tag_skipped_performer_tooltip": "Erstelle einen Tag wie ‘zu identifizieren: Darsteller:in mit einem Namen‘ sodass du in der Scene Tagger Ansicht danach filtern und entscheiden kannst, wie mit diesen Darstellern:innen umgegangen werden soll" }, "import_from_exported_json": "Import aus exportiertem JSON im Metadatenverzeichnis. Löscht die vorhandene Datenbank.", "incremental_import": "Inkrementeller Import aus einer Export-ZIP-Datei.", @@ -546,7 +550,10 @@ "sprites": "Sprites der Szenen" }, "generate_sprites_during_scan_tooltip": "Die Anzahl an Bilder, die unter dem Video Player, zur einfacheren Navigation, angezeigt werden.", - "optimise_database_warning": "Achtung: Während diese Aufgabe ausgeführt wird, schlagen alle Operationen, die die Datenbank verändern, fehl, und je nach Größe Ihrer Datenbank kann es mehrere Minuten dauern, bis sie abgeschlossen ist. Außerdem wird mindestens so viel freier Speicherplatz benötigt, wie Ihre Datenbank groß ist, empfohlen wird jedoch das 1,5-fache." + "optimise_database_warning": "Achtung: Während diese Aufgabe ausgeführt wird, schlagen alle Operationen, die die Datenbank verändern, fehl, und je nach Größe Ihrer Datenbank kann es mehrere Minuten dauern, bis sie abgeschlossen ist. Außerdem wird mindestens so viel freier Speicherplatz benötigt, wie Ihre Datenbank groß ist, empfohlen wird jedoch das 1,5-fache.", + "optimise_database": "Versucht die Performance zu verbessern, indem die Datenbank analysiert und dann neu strukturiert wird.", + "rescan": "Dateien erneut scannen", + "rescan_tooltip": "Alle Dateien im Pfad neu scannen. Erzwingt das Erneuern von Metadaten und das erneute Scannen von ZIP Archiven." }, "tools": { "scene_duplicate_checker": "Duplikatsprüfung für Szenen", @@ -695,7 +702,7 @@ } }, "preview_type": { - "description": "Konfiguration für Szenenwand", + "description": "Die Standardoption sind Video (mp4) Vorschaubilder. Für geringeren CPU-Verbrauch beim Durchsuchen kannst du die animierten Bilder (webp) Vorschaubilder verwenden. Diese müssen jedoch zusätzlich zu den Video-Vorschaubildern erstellt werden und sind größere Dateien.", "heading": "Vorschautyp", "options": { "animated": "Animiertes Bild", @@ -727,7 +734,10 @@ "vr_tag": { "description": "Der VR-Knopf wird nur für Szenen mit diesem Tag angezeigt.", "heading": "VR Tag" - } + }, + "show_ab_loop_controls": "Die Steuerungselemente des AB-Loop-Plugins anzeigen", + "disable_mobile_media_auto_rotate": "Deaktiviere das automatische Drehen von Vollbildmedien auf Mobilgeräten", + "enable_chromecast": "Chromecast aktivieren" } }, "scene_wall": { @@ -767,7 +777,26 @@ } } }, - "title": "Benutzeroberfläche" + "title": "Benutzeroberfläche", + "detail": { + "compact_expanded_details": { + "heading": "Erweiterte Details einklappen", + "description": "Wenn aktiviert, wird diese Option mehr Details anzeigen und dabei einen kompakten beibehalten" + }, + "enable_background_image": { + "heading": "Aktiviere Hintergrundbild", + "description": "Hintergrundbild auf Detailseite anzeigen." + }, + "heading": "Detailseite", + "show_all_details": { + "description": "Wenn aktiviert, werden alle Inhaltsdetails standardmäßig angezeigt, und jedes Detail passt in eine einzelne Spalte", + "heading": "Alle Details anzeigen" + } + }, + "use_stash_hosted_funscript": { + "description": "Wenn aktiviert, werden Funscripts direkt von Stash an dein Handy-Gerät gesendet, ohne Handy-Server von Drittanbietern zu verwenden. Erfordert, dass Stash von deinem Handy-Gerät aus zugänglich ist und ein API-Schlüssel generiert wurde, falls Stash mit Zugangsdaten konfiguriert ist.", + "heading": "Funscripts direkt bereitstellen" + } }, "advanced_mode": "Fortgeschrittener Modus" }, @@ -780,7 +809,8 @@ "performers": "{count, plural, one {Darsteller} other {Darsteller}}", "scenes": "{count, plural, one {Szene} other {Szenen}}", "studios": "{count, plural, one {Studio} other {Studios}}", - "tags": "{count, plural, one {Tag} other {Tags}}" + "tags": "{count, plural, one {Tag} other {Tags}}", + "groups": "{count, plural, one {Gruppe} other {Gruppen}}" }, "country": "Land", "cover_image": "Titelbild", @@ -891,7 +921,7 @@ "marker_image_previews": "Animierte Vorschau für Markierungen", "marker_image_previews_tooltip": "Animierte WebP-Vorschau für Markierungen, nur erforderlich, wenn der Vorschautyp auf Animiertes Bild eingestellt ist.", "marker_screenshots": "Screenshots für Markierungen", - "marker_screenshots_tooltip": "Statische JPG-Bilder für Markierungen, nur erforderlich, wenn der Vorschautyp auf Statisches Bild eingestellt ist.", + "marker_screenshots_tooltip": "Statische JPG-Bilder für Markierungen", "markers": "Vorschau für Markierungen", "markers_tooltip": "20-Sekunden-Videos, die zum angegebenen Zeitpunkt beginnen.", "override_preview_generation_options": "Überschreibe Optionen zur Erstellung von Vorschauen", @@ -911,11 +941,13 @@ "preview_seg_duration_desc": "Dauer jedes Vorschausegments in Sekunden.", "preview_seg_duration_head": "Vorschau der Segmentdauer", "sprites": "Szenen-Scrubber Sprites", - "sprites_tooltip": "Sprites (für den Szenen-Scrubber)", + "sprites_tooltip": "Die Reihe von Bildern, die unter dem Video-Player angezeigt wird, um eine einfache Navigation zu ermöglichen.", "transcodes": "Transkodierung", "transcodes_tooltip": "MP4-Konvertierung von nicht unterstützten Videoformaten", "video_previews": "Vorschau", - "video_previews_tooltip": "Videovorschauen, die abgespielt werden, wenn man den Mauszeiger über eine Szene bewegt" + "video_previews_tooltip": "Videovorschauen, die abgespielt werden, wenn man den Mauszeiger über eine Szene bewegt", + "image_thumbnails": "Vorschaubilder", + "phash_tooltip": "Zur Duplikatbereinigung und Szenenerkennung" }, "scenes_found": "{count} Szenen gefunden", "scrape_entity_query": "{entity_type} Scrape-Abfrage", @@ -923,7 +955,10 @@ "scrape_results_existing": "Vorhanden", "scrape_results_scraped": "Gescraped", "set_image_url_title": "Bild URL", - "unsaved_changes": "Nicht gespeicherte Änderungen. Bist du sicher dass du die Seite verlassen willst?" + "unsaved_changes": "Nicht gespeicherte Änderungen. Bist du sicher dass du die Seite verlassen willst?", + "clear_play_history_confirm": "Bist du sicher, dass du den Wiedergabeverlauf löschen möchtest?", + "performers_found": "{count} Darsteller:innen gefunden", + "clear_o_history_confirm": "Möchten Sie wirklich den O-Verlauf löschen?" }, "dimensions": "Maße", "director": "Regisseur", @@ -951,7 +986,14 @@ "medium": "Mittel" }, "search_accuracy_label": "Suchgenauigkeit", - "title": "Szenen-Duplikate" + "title": "Szenen-Duplikate", + "only_select_matching_codecs": "Nur auswählen, wenn alle Codecs in der Duplikatgruppe übereinstimmen", + "select_all_but_largest_file": "Wähle jede Datei in jeder Duplikatgruppe aus, außer der größten Datei", + "select_all_but_largest_resolution": "Wähle jede Datei in jeder Duplikatgruppe aus, außer der Datei mit der höchsten Auflösung", + "select_none": "Nichts auswählen", + "select_oldest": "Wähle die älteste Datei in der Duplikatgruppe aus", + "select_options": "Optionen auswählen…", + "select_youngest": "Wähle die jüngste Datei in der Duplikatgruppe aus" }, "duplicated_phash": "Dopplung (phash)", "duration": "Dauer", @@ -980,7 +1022,17 @@ "errors": { "image_index_greater_than_zero": "Bilderindex muss größer 0 sein", "lazy_component_error_help": "Sollten Sie kürzlich ein Update für Stash durchgeführt haben, laden Sie bitte die Seite neu oder löschen Sie den Browser-Cache.", - "something_went_wrong": "Etwas ist schief gelaufen." + "something_went_wrong": "Etwas ist schief gelaufen.", + "header": "Fehler", + "invalid_json_string": "Ungültiger JSON-Text: {error}", + "custom_fields": { + "duplicate_field": "Der Feldname muss einzigartig sein", + "field_name_length": "Der Feldname muss weniger als 65 Zeichen lang sein", + "field_name_required": "Der Feldname ist erforderlich", + "field_name_whitespace": "Feldname kann nicht mit Leerzeichen anfangen oder aufhören" + }, + "invalid_javascript_string": "Ungültiger JavaScript-Code: {error}", + "loading_type": "Ladefehler {type}" }, "ethnicity": "Ethnizität", "existing_value": "vorhandener Wert", @@ -1049,7 +1101,8 @@ "last_played_at": "Zuletzt Abgespielt Am", "library": "Bibliothek", "loading": { - "generic": "Wird geladen…" + "generic": "Wird geladen…", + "plugins": "Lade Plugins…" }, "marker_count": "Anzahl an Markierungen", "markers": "Markierungen", @@ -1068,7 +1121,8 @@ "play_count": "Anzahl Wiedergaben", "play_duration": "Abspielzeit", "stream": "Stream", - "video_codec": "Video-Codec" + "video_codec": "Video-Codec", + "o_count": "O Anzahl" }, "megabits_per_second": "{value} Megabit pro Sekunde", "metadata": "Metadaten", @@ -1082,7 +1136,8 @@ "first": "Erste", "last": "Letzte", "next": "Nächste", - "previous": "Vorherige" + "previous": "Vorherige", + "current_total": "{current} von {total}" }, "parent_of": "Übergeordnet von {children}", "parent_studios": "Übergeordnete Studios", @@ -1177,7 +1232,8 @@ "database_file_path": "Dateipfad der Datenbank", "generated_directory": "Ordner der generierten Hilfsdateien", "nearly_there": "Fast geschafft!", - "stash_library_directories": "Stash Bibliotheks-Ordner" + "stash_library_directories": "Stash Bibliotheks-Ordner", + "blobs_use_database": "" }, "creating": { "creating_your_system": "Erstelle dein System" @@ -1185,7 +1241,9 @@ "errors": { "something_went_wrong": "Oh nein! Etwas ist schief gelaufen!", "something_went_wrong_description": "Es sieht so aus, als gäbe es Probleme mit deinen Eingaben, klicke Zurück und repariere sie. Falls du nicht weißt was du falsch gemacht hast, helfen wir gerne auf {discordLink}. Solltest du dir sicher sein einen Bug gefunden zu haben, schau doch mal auf {githubLink} vorbei.", - "something_went_wrong_while_setting_up_your_system": "Etwas lief bei der Erstellung des Systems falsch. Hier ist die Fehlermeldung: {error}" + "something_went_wrong_while_setting_up_your_system": "Etwas lief bei der Erstellung des Systems falsch. Hier ist die Fehlermeldung: {error}", + "unable_to_retrieve_system_status": "Systemstatus konnte nicht abgerufen werden: {error}", + "unexpected_error": "Ein unerwarteter Error ist aufgetreten: {error}" }, "folder": { "file_path": "Dateipfad", @@ -1223,7 +1281,9 @@ "where_can_stash_store_its_generated_content": "Wo darf Stash seine generierten Hilfsdateien abspeichern?", "where_can_stash_store_its_generated_content_description": "Um Thumbnails, Previews und Sprites zur Verfügung zu stellen, generiert Stash diese aus deinen Videos und Bildern. Das schließt auch Transkodierungen von nicht unterstützten Dateiformaten mit ein. Standardmäßig wird Stash diese im Ordner generated abspeichern, der sich am Ort der Konfigurationsdatei befindet. Wenn du das ändern möchtest, gebe bitte einen absoluten oder relativen (gegenüber der aktuellen working directory) Pfad an. Stash wird den Ordner erstellen, sollte er noch nicht existieren.", "where_is_your_porn_located": "Wo finden wir deine Porno-Kollektion?", - "where_is_your_porn_located_description": "Füge Ordner hinzu in denen sich deine Porno-Videos und -Bilder befinden. Stash wird diese Ordner nutzen, um Videos und Bilder in das System einzupflegen." + "where_is_your_porn_located_description": "Füge Ordner hinzu in denen sich deine Porno-Videos und -Bilder befinden. Stash wird diese Ordner nutzen, um Videos und Bilder in das System einzupflegen.", + "path_to_blobs_directory_empty_for_default": "Pfad zum Verzeichnis der blobs (standardmäßig leer)", + "store_blobs_in_database": "blobs in der Datenbank speichern" }, "stash_setup_wizard": "Einrichtungshelfer für Stash", "success": { @@ -1236,16 +1296,20 @@ "support_us": "Unterstütze uns", "thanks_for_trying_stash": "Danke fürs Ausprobieren von Stash!", "welcome_contrib": "Außerdem sind Beiträge in Form von Code (Bug-Fixes, Verbesserungen, Features), Tests, Bug-Reports, Ideen für Features und Verbesserungen, sowie User-Support immer willkommen. Details dazu im entsprechenden Kapitel des In-App-Benutzerhandbuchs.", - "your_system_has_been_created": "Geschafft! Dein System wurde erstellt!" + "your_system_has_been_created": "Geschafft! Dein System wurde erstellt!", + "download_ffmpeg": "ffmpeg herunterladen", + "missing_ffmpeg": "Die erforderliche ffmpeg-Binärdatei fehlt. Du kannst sie automatisch in deinem Konfigurationsverzeichnis herunterladen, indem du das Kästchen unten auswählst. Alternativ kannst du Pfade zu den ffmpeg- und ffprobe-Binärdateien in den Systemeinstellungen angeben. Diese Binärdateien müssen vorhanden sein, damit Stash funktioniert." }, "welcome": { "config_path_logic_explained": "Stash versucht zunächst seine Konfigurationsdatei (config.yml) in dem aktuellen Arbeitsverzeichnis zu finden, wenn das nicht gelingt fällt es auf $HOME/.stash/config.yml (bei Windows ist das %USERPROFILE%\\.stash\\config.yml) zurück. Du kannst Stash auch einen Pfad beim Start durch die Kommandozeilen-Option -c '' or --config '' vorgeben.", - "in_current_stash_directory": "Im Verzeichnis $HOME/.stash", - "in_the_current_working_directory": "Im aktuellen Arbeitsverzeichnis", + "in_current_stash_directory": "Im Verzeichnis $HOME/.stash:", + "in_the_current_working_directory": "Im {path}, dem derzeitigen Arbeitsverzeichnis:", "next_step": "Nachdem das alles aus dem Weg ist, sind wir jetzt bereit ein neues System zu erstellen. Wähle dazu zunächst aus wo du die Konfigurationsdatei speichern möchtest und klicke auf Weiter.", "store_stash_config": "Wo möchtest du die Stash Konfigurationsdatei speichern?", "unable_to_locate_config": "Wenn du das hier liest, konnte Stash keine existierende Konfiguration finden. Dieser Wizard wird dich deshalb durch den Prozess führen, eine neue Konfiguration anzulegen.", - "unexpected_explained": "Wenn du diesen Wizard nicht erwartest, starte Stash im korrekten Arbeitsverzeichnis neu oder setze den Pfad zur Konfigurationsdatei mit der Kommandozeilenoption -c." + "unexpected_explained": "Wenn du diesen Wizard nicht erwartest, starte Stash im korrekten Arbeitsverzeichnis neu oder setze den Pfad zur Konfigurationsdatei mit der Kommandozeilenoption -c.", + "in_the_current_working_directory_disabled_macos": "Nicht unterstützt, wenn Stash.app ausgeführt wird

Führe stash-macos aus, um im Arbeitsverzeichnis einzurichten", + "in_the_current_working_directory_disabled": "Im {path}, dem Arbeitsverzeichnis:" }, "welcome_specific_config": { "config_path": "Stash wird den folgenden Pfad für die Konfigurationsdatei verwenden: {path}", @@ -1262,13 +1326,18 @@ "selected_stash_box": "Ausgewählter Stash-Box Endpunkt", "submission_failed": "Einreichen fehlgeschlagen", "submission_successful": "Einreichen erfolgreich", - "submit_update": "Existiert bereits in {endpoint_name}" + "submit_update": "Existiert bereits in {endpoint_name}", + "source": "Stash-Box Quelle" }, "statistics": "Statistiken", "stats": { "image_size": "Bildspeicher", "scenes_duration": "Szenendauer", - "scenes_size": "Szenenspeicher" + "scenes_size": "Szenenspeicher", + "scenes_played": "Szenen Abgespielt", + "total_o_count": "Insgesamt Anzahl der Os", + "total_play_count": "Gesamtanzahl der Wiedergaben", + "total_play_duration": "Spieldauer insgesamt" }, "status": "Status: {statusText}", "studio": "Studio", @@ -1295,7 +1364,7 @@ "merged_scenes": "Zusammengefasste Szene", "merged_tags": "Zusammengeführte Tags", "reassign_past_tense": "Datei neu zugewiesen", - "removed_entity": "{count, plural, one {{singularEntity}} other {{pluralEntity}}} gelöscht", + "removed_entity": "{count, plural, one {{singularEntity}} other {{pluralEntity}}} entfernt", "rescanning_entity": "Erneutes Scannen von {count, plural, one {{singularEntity}} other {{pluralEntity}}}…", "saved_entity": "{entity} gespeichert", "started_auto_tagging": "Automatisches Tagging gestartet", @@ -1311,7 +1380,10 @@ "url": "URL", "validation": { "date_invalid_form": "${path} muss die Form YYYY-MM-DD haben", - "required": "${path} ist ein notwendiges Feld" + "required": "${path} ist ein notwendiges Feld", + "end_time_before_start_time": "Der Endzeitpunkt muss nach oder am Startzeitpunkt sein", + "unique": "${path} muss einzigartig sein", + "blank": "${path} darf nicht leer sein" }, "videos": "Videos", "view_all": "Alle ansehen", @@ -1319,5 +1391,130 @@ "weight_kg": "Gewicht (kg)", "years_old": "Jahre alt", "zip_file_count": "Anzahl der Zip-Dateien", - "audio_codec": "Audio Codec" + "audio_codec": "Audio Codec", + "group": "Gruppe", + "groups": "Gruppen", + "time_end": "Endzeitpunkt", + "studio_tagger": { + "create_or_tag_parent_studios": "Fehlende übergeordnete Studios erstellen oder bestehende übergeordnete Studios taggen", + "update_studio": "Studio Updaten", + "any_names_entered_will_be_queried": "Alle eingetragenen Namen werden bei der stash-box Instanz nachgeschlagen und hinzugefügt, wenn gefunden. Nur exakte Übereinstimmungen werden als Treffer gewertet.", + "config": { + "these_fields_will_not_be_changed_when_updating_studios": "Diese Felder werden nicht geändert, wenn Studios aktualisiert werden.", + "no_instances_found": "Keine Instanz gefunden", + "edit_excluded_fields": "Abgewählte Felder bearbeiten", + "excluded_fields": "Abgewähltes Feld:", + "no_fields_are_excluded": "Keine Felder sind abgewählt", + "active_stash-box_instance": "Aktive stash-box Instanz:", + "create_parent_desc": "Erstelle fehlende übergeordnete Studios oder tagge und aktualisiere Daten/Bilder für bestehende übergeordnete Studios mit genau passenden Namen", + "create_parent_label": "Übergeordnete Studios erstellen" + }, + "network_error": "Netzwerkfehler", + "query_all_studios_in_the_database": "Alle Studios in der Datenbank", + "refresh_tagged_studios": "Getaggte Studios aktualisieren", + "refreshing_will_update_the_data": "Aktualisieren wird die daten von allen getaggten Studios der stash-box Instanz updaten.", + "add_new_studios": "Neue Studios hinzufügen", + "batch_add_studios": "Stapelverarbeitung: Studios hinzufügen", + "batch_update_studios": "Stapelverarbeitung: Studios updaten", + "current_page": "Aktuelle Seite", + "failed_to_save_studio": "Speichern des Studios \"{studio}\" Fehlgeschlagen", + "status_tagging_job_queued": "Status: Tagging Job in der Warteschlange", + "studio_already_tagged": "Studio schon getaggt", + "studio_names_separated_by_comma": "Studionamen mit Komma trennen", + "studio_selection": "Ausgewählte Studios", + "to_use_the_studio_tagger": "Um den Studiotagger zu benutzen, muss eine stash-box Instanz konfiguriert werden.", + "untagged_studios": "Nicht getaggte Studios", + "update_studios": "Studios Updaten", + "updating_untagged_studios_description": "Das Aktualisieren von nicht getaggten Studios versucht, alle Studios abzugleichen, die keine stashid haben, und deren Metadaten zu aktualisieren.", + "status_tagging_studios": "Status: Studios am Taggen", + "number_of_studios_will_be_processed": "Es wird/werden {studio_count} Studio(s) verarbeitet", + "studio_successfully_tagged": "Studios erfolgreich getaggt", + "tag_status": "Tag Status", + "name_already_exists": "Name existiert bereits", + "no_results_found": "Keine Ergebnisse gefunden." + }, + "parent_studio": "Übergeordnetes Studio", + "package_manager": { + "edit_source": "Quelle bearbeiten", + "no_packages": "Keine Pakete gefunden", + "package": "Paket", + "selected_only": "Nur Auswahl", + "show_all": "Zeige Alles", + "confirm_uninstall": "Bist du sicher, dass du {number} Pakete deinstallieren möchtest?", + "description": "Beschreibung", + "hide_unselected": "Nicht ausgewählte ausblenden", + "install": "Installieren", + "installed_version": "Installierte Version", + "latest_version": "Aktuellste Version", + "no_sources": "Es sind keine Quellen konfiguriert", + "no_upgradable": "Keine aktualisierbaren Pakete gefunden", + "required_by": "Von {packages} benötigt", + "source": { + "local_path": { + "heading": "Lokaler Dateipfad", + "description": "Relativer Pfad zum Speichern von Paketen für diese Quelle. Beachten Sie, dass eine Änderung, das manuelle verschieben der Pakete erfordert." + }, + "name": "Name", + "url": "Quellen URL" + }, + "uninstall": "Deinstallieren", + "unknown": "", + "update": "Update", + "version": "Version", + "check_for_updates": "Nach Updates suchen", + "confirm_delete_source": "Sind Sie sicher, dass Sie die Quelle {name} ({url}) löschen wollen?", + "add_source": "Quelle hinzufügen" + }, + "photographer": "Fotograf", + "playdate_recorded_no": "Keine Wiedergabedaten gespeichert", + "urls": "URLs", + "play_history": "Wiedergabeverlauf", + "plays": "{value} wiedergaben", + "primary_tag": "Haupt-Tag", + "studio_count": "Studio Anzahl", + "unknown_date": "Unbekanntes Datum", + "criterion_modifier_values": { + "only": "Einzige", + "any": "Beliebig", + "any_of": "Irgendeine von", + "none": "Keine" + }, + "o_count": "O Anzahl", + "studio_tags": "Studio Tags", + "custom_fields": { + "title": "Benutzerdefinierte Felder", + "value": "Wert", + "field": "Feld" + }, + "distance": "Distanz", + "group_count": "Gruppenanzahl", + "group_scene_number": "Szenennummer", + "include_sub_group_content": "Inhalt von Untergruppen einschließen", + "sub_group": "Untergruppe", + "sub_group_count": "Untergruppen Anzahl", + "sub_group_of": "Untergruppen von {parent}", + "sub_group_order": "Untergruppen Ordnung", + "subsidiary_studio_count": "Anzahl der Tochterstudios", + "sub_groups": "Untergruppen", + "tag_parent_tooltip": "Hat die übergeordneten Tags", + "time": "Zeit", + "video_codec": "Video Codec", + "connection_monitor": { + "websocket_connection_failed": "WebSocket-Verbindung konnte nicht hergestellt werden: Sieh dir die Browser-Konsole für Details an", + "websocket_connection_reestablished": "Websocket-Verbindung wiederhergestellt" + }, + "containing_group": "Enthaltende Gruppe", + "containing_groups": "Enthaltende Gruppen", + "include_sub_tag_content": "Inhalt von Untertags einschließen", + "index_of_total": "{index} von {total}", + "include_sub_studio_content": "Inhalt von Unterstudios einschließen", + "last_o_at": "Letztes O", + "o_history": "O Verlauf", + "odate_recorded_no": "Kein O Datum Aufgezeichnet", + "orientation": "Orientierung", + "containing_group_count": "Enthaltende Gruppen Anzahl", + "history": "Verlauf", + "tag_sub_tag_tooltip": "Hat Untertags", + "include_sub_groups": "Untergruppen einbeziehen", + "studio_and_parent": "Studio & Mutterstudio" } diff --git a/ui/v2.5/src/locales/en-US.json b/ui/v2.5/src/locales/en-US.json index d511ea8089a..1f4f31fc5d1 100644 --- a/ui/v2.5/src/locales/en-US.json +++ b/ui/v2.5/src/locales/en-US.json @@ -1,23 +1,30 @@ { - "actions": { - "customise": "Customize" - }, - "config": { - "tools": { - "scene_filename_parser": { - "ignore_organized": "Ignore organized scenes" - } + "actions": { + "customise": "Customize", + "add_sub_groups": "Add Sub-Groups", + "add": "Add", + "add_directory": "Add Directory", + "add_entity": "Add {entityType}", + "add_manual_date": "Add manual date", + "add_o": "Add O", + "add_play": "Add play" }, - "ui": { - "custom_locales": { - "heading": "Custom localization", - "option_label": "Custom localization enabled" - } - } - }, - "eye_color": "Eye Color", - "favourite": "Favorite", - "hair_color": "Hair Color", - "organized": "Organized", - "performer_favorite": "Performer Favorited" + "config": { + "tools": { + "scene_filename_parser": { + "ignore_organized": "Ignore organized scenes" + } + }, + "ui": { + "custom_locales": { + "heading": "Custom localization", + "option_label": "Custom localization enabled" + } + } + }, + "eye_color": "Eye Color", + "favourite": "Favorite", + "hair_color": "Hair Color", + "organized": "Organized", + "performer_favorite": "Performer Favorited" } diff --git a/ui/v2.5/src/locales/es-ES.json b/ui/v2.5/src/locales/es-ES.json index 3221602c0be..f120aff0c2d 100644 --- a/ui/v2.5/src/locales/es-ES.json +++ b/ui/v2.5/src/locales/es-ES.json @@ -137,7 +137,8 @@ "remove_date": "Eliminar fecha", "view_history": "Ver historial", "add_sub_groups": "Añadir Subgrupos", - "remove_from_containing_group": "Eliminar del grupo" + "remove_from_containing_group": "Eliminar del grupo", + "reset_play_duration": "Reiniciar la duración de la reproducción" }, "actions_name": "Acciones", "age": "Edad", diff --git a/ui/v2.5/src/locales/et-EE.json b/ui/v2.5/src/locales/et-EE.json index fade224d1f9..8be0d9693b3 100644 --- a/ui/v2.5/src/locales/et-EE.json +++ b/ui/v2.5/src/locales/et-EE.json @@ -1362,7 +1362,8 @@ "date_invalid_form": "${path} peab olema AAAA-KK-PP vormis", "required": "${path} on nõutud väli", "blank": "${path} ei tohi olla tühi", - "unique": "${path} peab olema kordumatu" + "unique": "${path} peab olema kordumatu", + "end_time_before_start_time": "Lõpuaeg peab olema suurem või võrdne algusajaga" }, "videos": "Videod", "view_all": "Vaata Kõiki", @@ -1490,5 +1491,13 @@ "sub_groups": "Alamgrupid", "include_sub_tag_content": "Sisalda alamsiltide sisu", "include_sub_studio_content": "Sisalda alamstuudiote sisu", - "o_count": "O Arv" + "o_count": "O Arv", + "include_sub_groups": "Sisalda alam-gruppe", + "time_end": "Lõpuaeg", + "criterion_modifier_values": { + "any": "Kõik", + "any_of": "Järgnevast", + "none": "Mitte Ükski", + "only": "Ainult" + } } diff --git a/ui/v2.5/src/locales/fr-FR.json b/ui/v2.5/src/locales/fr-FR.json index d930b93f28f..74d65d687ad 100644 --- a/ui/v2.5/src/locales/fr-FR.json +++ b/ui/v2.5/src/locales/fr-FR.json @@ -192,7 +192,10 @@ "set_tag_label": "Définir les étiquettes", "show_male_desc": "Cocher si les performeurs masculins seront disponibles pour le marquage.", "show_male_label": "Montrer les performeurs masculins", - "source": "Source" + "source": "Source", + "errors": { + "blacklist_duplicate": "Élément de liste noire en double" + } }, "noun_query": "Requête", "results": { @@ -920,7 +923,7 @@ "marker_image_previews": "Aperçus animés des marqueurs", "marker_image_previews_tooltip": "Génère également des aperçus animés (webp), uniquement requis lorsque le mode de prévisualisation Scène/Mur de marqueurs est défini sur Image animée. Lors de la navigation, ils utilisent moins de ressources CPU que les aperçus vidéo, mais sont générés en complément de ceux-ci et constituent des fichiers plus volumineux.", "marker_screenshots": "Captures d'écran des marqueurs", - "marker_screenshots_tooltip": "Images JPG statiques des marqueurs, requis uniquement si le mode d'aperçu est défini sur Image statique.", + "marker_screenshots_tooltip": "Images JPG statiques des marqueurs", "markers": "Aperçus des marqueurs", "markers_tooltip": "Vidéos de 20 secondes qui débutent au repère temporel donné.", "override_preview_generation_options": "Remplacer les options de génération d'aperçu", @@ -1024,7 +1027,13 @@ "something_went_wrong": "Quelque chose n'a pas fonctionné.", "header": "Erreur", "invalid_javascript_string": "Code javascript invalide : {error}", - "invalid_json_string": "Chaine JSON invalide : {error}" + "invalid_json_string": "Chaine JSON invalide : {error}", + "custom_fields": { + "duplicate_field": "Le nom du champ doit être unique", + "field_name_whitespace": "Le nom du champ ne doit pas contenir d'espace en début ou en fin de ligne", + "field_name_length": "Le nom du champ doit comporter moins de 65 caractères", + "field_name_required": "Le nom du champ est requis" + } }, "ethnicity": "Ethnicité", "existing_value": "valeur existante", @@ -1094,7 +1103,8 @@ "last_played_at": "Dernière lecture le", "library": "Bibliothèque", "loading": { - "generic": "Chargement…" + "generic": "Chargement…", + "plugins": "Chargement des plugins…" }, "marker_count": "Nombre de marqueurs", "markers": "Marqueurs", @@ -1234,7 +1244,9 @@ "errors": { "something_went_wrong": "Oh non ! Quelque chose a mal tourné !", "something_went_wrong_description": "Si cela ressemble à un problème avec vos saisies, continuez et cliquez sur retour pour les corriger. Sinon, créez un bogue sur {githubLink} ou demandez de l'aide sur {discordLink}.", - "something_went_wrong_while_setting_up_your_system": "Un problème est survenu lors de la configuration de votre système. Voici l'erreur que nous avons reçue : {error}" + "something_went_wrong_while_setting_up_your_system": "Un problème est survenu lors de la configuration de votre système. Voici l'erreur que nous avons reçue : {error}", + "unexpected_error": "Une erreur inattendue s'est produite : {error}", + "unable_to_retrieve_system_status": "Impossible de récupérer l'état du système : {error}" }, "folder": { "file_path": "Chemin de fichier", @@ -1413,7 +1425,8 @@ "date_invalid_form": "${path} doit être au format AAAA-MM-JJ", "required": "${path} est un champ requis", "blank": "${path} ne doit pas être vide", - "unique": "${path} doit être unique" + "unique": "${path} doit être unique", + "end_time_before_start_time": "L'heure de fin doit être supérieure ou égale à l'heure de début" }, "video_codec": "Codec vidéo", "videos": "Vidéos", @@ -1491,5 +1504,17 @@ "sub_group_of": "Groupe affilié de {parent}", "sub_group": "Groupe affilié", "sub_group_count": "Nombre de groupes affiliés", - "include_sub_groups": "Inclure les groupes affiliés" + "include_sub_groups": "Inclure les groupes affiliés", + "criterion_modifier_values": { + "none": "Aucun", + "only": "Uniquement", + "any_of": "Tous les", + "any": "Tous" + }, + "time_end": "Heure de fin", + "custom_fields": { + "field": "Champ", + "title": "Champs personnalisés", + "value": "Valeur" + } } diff --git a/ui/v2.5/src/locales/hi.json b/ui/v2.5/src/locales/hi-IN.json similarity index 100% rename from ui/v2.5/src/locales/hi.json rename to ui/v2.5/src/locales/hi-IN.json diff --git a/ui/v2.5/src/locales/index.ts b/ui/v2.5/src/locales/index.ts index 1031033b59a..86c1a607e31 100644 --- a/ui/v2.5/src/locales/index.ts +++ b/ui/v2.5/src/locales/index.ts @@ -13,21 +13,27 @@ export const localeCountries = { fa: () => import("i18n-iso-countries/langs/fa.json"), fi: () => import("i18n-iso-countries/langs/fi.json"), fr: () => import("i18n-iso-countries/langs/fr.json"), + hi: () => import("i18n-iso-countries/langs/hi.json"), hu: () => import("i18n-iso-countries/langs/hu.json"), hr: () => import("i18n-iso-countries/langs/hr.json"), id: () => import("i18n-iso-countries/langs/id.json"), it: () => import("i18n-iso-countries/langs/it.json"), ja: () => import("i18n-iso-countries/langs/ja.json"), ko: () => import("i18n-iso-countries/langs/ko.json"), + lv: () => import("i18n-iso-countries/langs/lv.json"), + nb: () => import("i18n-iso-countries/langs/nb.json"), nl: () => import("i18n-iso-countries/langs/nl.json"), + nn: () => import("i18n-iso-countries/langs/nn.json"), pl: () => import("i18n-iso-countries/langs/pl.json"), pt: () => import("i18n-iso-countries/langs/pt.json"), ro: () => import("i18n-iso-countries/langs/ro.json"), ru: () => import("i18n-iso-countries/langs/ru.json"), + sk: () => import("i18n-iso-countries/langs/sk.json"), sv: () => import("i18n-iso-countries/langs/sv.json"), th: () => import("i18n-iso-countries/langs/th.json"), tr: () => import("i18n-iso-countries/langs/tr.json"), uk: () => import("i18n-iso-countries/langs/uk.json"), + vi: () => import("i18n-iso-countries/langs/vi.json"), zh: () => import("i18n-iso-countries/langs/zh.json"), tw: () => import("src/locales/countryNames/zh-TW.json"), // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -59,23 +65,28 @@ export const localeLoader = { faIR: () => import("./fa-IR.json"), fiFI: () => import("./fi-FI.json"), frFR: () => import("./fr-FR.json"), + hiIN: () => import("./hi-IN.json"), hrHR: () => import("./hr-HR.json"), huHU: () => import("./hu-HU.json"), idID: () => import("./id-ID.json"), itIT: () => import("./it-IT.json"), jaJP: () => import("./ja-JP.json"), koKR: () => import("./ko-KR.json"), - // nbNO: () => import("./nb-NO.json"), + lvLV: () => import("./lv-LV.json"), + nbNO: () => import("./nb-NO.json"), // neNP: () => import("./ne-NP.json"), + nnNO: () => import("./nn-NO.json"), nlNL: () => import("./nl-NL.json"), plPL: () => import("./pl-PL.json"), ptBR: () => import("./pt-BR.json"), roRO: () => import("./ro-RO.json"), ruRU: () => import("./ru-RU.json"), + skSK: () => import("./sk-SK.json"), svSE: () => import("./sv-SE.json"), thTH: () => import("./th-TH.json"), trTR: () => import("./tr-TR.json"), ukUA: () => import("./uk-UA.json"), + viVN: () => import("./vi-VN.json"), zhCN: () => import("./zh-CN.json"), zhTW: () => import("./zh-TW.json"), // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/ui/v2.5/src/locales/ja-JP.json b/ui/v2.5/src/locales/ja-JP.json index 4dbba51c465..ae7589796b2 100644 --- a/ui/v2.5/src/locales/ja-JP.json +++ b/ui/v2.5/src/locales/ja-JP.json @@ -139,7 +139,9 @@ "add_sub_groups": "サブグループを追加", "remove_from_containing_group": "グループから削除", "set_cover": "カバーをセット", - "view_history": "履歴を表示する" + "view_history": "履歴を表示する", + "reset_resume_time": "再開時間をリセットする", + "reset_cover": "標準カバーに復元" }, "actions_name": "操作", "age": "年齢", @@ -178,7 +180,10 @@ "show_male_label": "男優を表示", "source": "ソース", "mark_organized_desc": "保存ボタンをクリック後に、すぐにシーンが「分類済み」になります。", - "mark_organized_label": "分類済みにして保存" + "mark_organized_label": "分類済みにして保存", + "errors": { + "blacklist_duplicate": "ブラックリスト項目が重複しています" + } }, "noun_query": "クエリ", "results": { @@ -252,7 +257,8 @@ "until_restart": "再起動まで", "video_sort_order": "デフォルトの動画ソート順序", "video_sort_order_desc": "動画をデフォルト順でソートします。", - "server_port": "サーバーポート番号" + "server_port": "サーバーポート番号", + "server_port_desc": "DLNA サーバーのポートを変更後は、 DLNA を再起動する必要があります。" }, "general": { "auth": { @@ -534,7 +540,9 @@ "overwrite_existing": "既存のblobsをスクリーンショットデータで上書きする" }, "optimise_database": "データベースファイル全体を分析して再構築することで、パフォーマンスの向上を試みます。", - "optimise_database_warning": "警告: このタスクの実行中、データベースを変更する操作はすべて失敗します。データベースのサイズによっては、完了までに数分かかる場合があります。また、最低でもデータベースのサイズと同等のディスクの空き容量が必要ですが、1.5倍程度が推奨されます。" + "optimise_database_warning": "警告: このタスクの実行中、データベースを変更する操作はすべて失敗します。データベースのサイズによっては、完了までに数分かかる場合があります。また、最低でもデータベースのサイズと同等のディスクの空き容量が必要ですが、1.5倍程度が推奨されます。", + "rescan": "ファイルのリスキャン", + "rescan_tooltip": "パス内のすべてのファイルを再スキャンします。ファイルのメタデータを強制的に更新し、zip ファイルを再スキャンするために使用されます。" }, "tools": { "scene_duplicate_checker": "シーン重複チェッカー", @@ -646,6 +654,10 @@ "write_image_thumbnails": { "description": "画像のサムネイルをオンザフライでディスクに書き込みます", "heading": "画像のサムネイルを書き込む" + }, + "create_image_clips_from_videos": { + "heading": "ビデオ拡張子を画像クリップとしてスキャン", + "description": "ライブラリでビデオが無効になっている場合、ビデオ ファイル (ビデオ拡張子で終わるファイル) はイメージ クリップとしてスキャンされます。" } } }, @@ -702,7 +714,9 @@ "heading": "デフォルトでプレイリストを続行" }, "show_scrubber": "スクラバーを表示", - "track_activity": "アクティビティを追跡" + "track_activity": "アクティビティを追跡", + "disable_mobile_media_auto_rotate": "モバイル機器でフル画面再生時の画面回転を無効化", + "enable_chromecast": "クロームキャスト機能の有効化" } }, "scene_wall": { diff --git a/ui/v2.5/src/locales/ko-KR.json b/ui/v2.5/src/locales/ko-KR.json index fb32e6f403c..60f942e827a 100644 --- a/ui/v2.5/src/locales/ko-KR.json +++ b/ui/v2.5/src/locales/ko-KR.json @@ -1231,7 +1231,9 @@ "errors": { "something_went_wrong": "오류가 발생했습니다!", "something_went_wrong_description": "작성했던 내용에 문제가 있는 것 같다면, 뒤로 가서 수정해주세요. 그렇지 않다면, {githubLink}에 버그를 제보하거나 {discordLink}에서 해결 방법을 찾아보세요.", - "something_went_wrong_while_setting_up_your_system": "시스템을 설정하던 도중 오류가 발생했습니다. 오류 내용은 다음과 같습니다: {error}" + "something_went_wrong_while_setting_up_your_system": "시스템을 설정하던 도중 오류가 발생했습니다. 오류 내용은 다음과 같습니다: {error}", + "unable_to_retrieve_system_status": "시스템 상태를 복구할 수 없습니다: {error}", + "unexpected_error": "예상치 못한 오류가 발생했습니다: {error}" }, "folder": { "file_path": "파일 경로", @@ -1370,7 +1372,8 @@ "date_invalid_form": "${path}는 YYYY-MM-DD 형태여야 합니다", "required": "${path}는 필수 항목입니다", "unique": "${path}은(는) 유일해야 합니다", - "blank": "${path}를 빈 칸으로 둘 수 없습니다" + "blank": "${path}를 빈 칸으로 둘 수 없습니다", + "end_time_before_start_time": "종료 시간은 시작 시간보다 크거나 같아야 합니다" }, "videos": "비디오", "view_all": "모두 보기", @@ -1490,5 +1493,7 @@ "sub_group": "서브그룹", "sub_group_of": "{parent}의 서브그룹", "include_sub_studio_content": "서브스튜디오 컨텐츠 포함", - "include_sub_tag_content": "서브태그 컨텐츠 포함" + "include_sub_tag_content": "서브태그 컨텐츠 포함", + "time_end": "종료 시간", + "include_sub_groups": "서브그룹 포함" } diff --git a/ui/v2.5/src/locales/lv.json b/ui/v2.5/src/locales/lv-LV.json similarity index 59% rename from ui/v2.5/src/locales/lv.json rename to ui/v2.5/src/locales/lv-LV.json index ff9c5366c48..b90c34df23f 100644 --- a/ui/v2.5/src/locales/lv.json +++ b/ui/v2.5/src/locales/lv-LV.json @@ -60,7 +60,55 @@ "created_entity": "Izveidots {entity_type}: {entity_name}", "customise": "Pielāgot", "delete_file": "Dzēst failu", - "delete_file_and_funscript": "Dzēst failu (un funskriptu)" + "delete_file_and_funscript": "Dzēst failu (un funskriptu)", + "add_sub_groups": "Pievienot apakšgrupas", + "from_file": "No Faila…", + "from_url": "No URL…", + "disallow": "Neatļaut", + "download": "Lejupielādēt", + "download_anonymised": "Lejupielādēt anonīmi", + "download_backup": "Lejupielādēt Dublējumu", + "edit": "Rediģēt", + "edit_entity": "Rediģēt {entityType}", + "enable": "Iepējot", + "encoding_image": "Konstruē bildi…", + "export_all": "Eksportēt visu…", + "find": "Atrast", + "finish": "Pabeigt", + "generate": "Ģenerēt", + "hash_migration": "hasha migrācija", + "hide_configuration": "Paslēpt Konfigurāciju", + "identify": "Identificēt", + "ignore": "Ignorēt", + "import": "Importēt…", + "hide": "Paslēpt", + "make_primary": "Padarīt primāro", + "merge_from": "Apvienot no", + "merge_into": "Apvienot ar", + "migrate_blobs": "Migrēt Blobus", + "next_action": "Nākamais", + "not_running": "nestrādā", + "open_in_external_player": "Atvērt ārējā atskaņotājā", + "open_random": "Atvērt nejaušu", + "optimise_database": "Optimizēt Datubāzi", + "overwrite": "Pārrakstīt", + "play_random": "Atskaņot nejaušu", + "play_selected": "Atskaņot izvēlēto", + "preview": "Priekšskatīt", + "previous_action": "Atpakaļ", + "reload": "Pārlādēt", + "reload_plugins": "Pārlādēt spraudņus", + "refresh": "Atsvaidzināt", + "disable": "Atspējot", + "export": "Eksportēt", + "logout": "Izrakstīties", + "full_export": "Pilns Eksports", + "full_import": "Pilns Imports", + "generate_thumb_default": "Ģenerēt Noklusējuma Sīktēlu", + "generate_thumb_from_current": "Ģenerēt sīktēlu no pašreizējā", + "import_from_file": "Importēt no faila", + "merge": "Apvienot", + "migrate_scene_screenshots": "Migrēt Video Ekrānšāviņus" }, "unknown_date": "Nezināms datums", "twitter": "Twitter", diff --git a/ui/v2.5/src/locales/nb_NO.json b/ui/v2.5/src/locales/nb-NO.json similarity index 95% rename from ui/v2.5/src/locales/nb_NO.json rename to ui/v2.5/src/locales/nb-NO.json index a6a72d8a049..9a385bd3f4b 100644 --- a/ui/v2.5/src/locales/nb_NO.json +++ b/ui/v2.5/src/locales/nb-NO.json @@ -139,7 +139,9 @@ "rescan": "Skann på nytt", "reshuffle": "Stokk om", "rename_gen_files": "Gi nytt navn til genererte filer", - "selective_auto_tag": "Selektiv Automatisk Tagging" + "selective_auto_tag": "Selektiv Automatisk Tagging", + "set_image": "Velg bilde…", + "selective_clean": "Selektiv Rens" }, "component_tagger": { "config": { @@ -160,7 +162,13 @@ "query_mode_path": "Filbane", "query_mode_path_desc": "Bruker hele filbanen", "set_cover_desc": "Bytt ut scenens omslag hvis en finnes.", - "source": "Kilde" + "source": "Kilde", + "set_cover_label": "Velg scene omslag bilde", + "set_tag_label": "Velg tagg", + "errors": { + "blacklist_duplicate": "Dupliser svartelist gjenstand" + }, + "set_tag_desc": "Legg til tagg til scene, enten ved overskriving eller fusjonering med eksisterende tags i scenen." } }, "config": { @@ -249,5 +257,6 @@ "CUT": "Omskåret", "UNCUT": "Ikke omskåret" }, - "birth_year": "Fødselsår" + "birth_year": "Fødselsår", + "all": "alle" } diff --git a/ui/v2.5/src/locales/nl-NL.json b/ui/v2.5/src/locales/nl-NL.json index be241fc3f4e..211d199ee9e 100644 --- a/ui/v2.5/src/locales/nl-NL.json +++ b/ui/v2.5/src/locales/nl-NL.json @@ -1,122 +1,153 @@ { "actions": { "add": "Toevoegen", - "add_directory": "Directory toevoegen", - "add_entity": "Voeg toe {entityType}", - "add_to_entity": "Voeg toe aan {entityType}", + "add_directory": "Nieuwe map", + "add_entity": "{entityType} toevoegen", + "add_to_entity": "Toevoegen aan {entityType}", "allow": "Toestaan", "allow_temporarily": "Tijdelijk toestaan", "apply": "Toepassen", - "auto_tag": "Automatisch taggen", - "backup": "Backup", - "browse_for_image": "Bladeren voor beeld …", - "cancel": "Afbreken", - "clean": "Opschonen", + "auto_tag": "Automatisch labelen", + "backup": "Reservekopie", + "browse_for_image": "Kies een afbeelding…", + "cancel": "Annuleren", + "clean": "Opruimen", "clear": "Wissen", - "clear_back_image": "Wis achtergrond afbeelding", - "clear_front_image": "Wis voorgrond afbeelding", - "clear_image": "Wis afbeelding", + "clear_back_image": "Achtergrondafbeelding wissen", + "clear_front_image": "Voorgrondafbeelding wissen", + "clear_image": "Afbeelding wissen", "close": "Sluiten", "confirm": "Bevestigen", "continue": "Doorgaan", "create": "Maken", - "create_entity": "Maak {entityType}", - "create_marker": "Maak Marker", - "created_entity": "Aangemaakt {entity_type}: {entity_name}", + "create_entity": "{entityType} maken", + "create_marker": "Markering toevoegen", + "created_entity": "{entity_type} aangemaakt: {entity_name}", "customise": "Aanpassen", - "delete": "Verwijder", - "delete_entity": "Verwijder {entityType}", - "delete_file": "Verwijder bestand", - "delete_file_and_funscript": "Verwijder bestand (en funscript)", - "delete_generated_supporting_files": "Verwijder gegenereerde ondersteuningsbestanden", + "delete": "Verwijderen", + "delete_entity": "{entityType} verwijderen", + "delete_file": "Bestand verwijderen", + "delete_file_and_funscript": "Bestand (en funscript) verwijderen", + "delete_generated_supporting_files": "Gegenereerde ondersteuningsbestanden verwijderen", "disallow": "Niet toestaan", - "download": "Download", - "download_backup": "Download Backup", - "edit": "Bewerk", - "edit_entity": "Wijzig {entityType}", - "export": "Exporteer", - "export_all": "Exporteer Alles…", - "find": "Zoek", + "download": "Downloaden", + "download_backup": "Reservekopie ophalen", + "edit": "Bewerken", + "edit_entity": "{entityType} bewerken", + "export": "Exporteren", + "export_all": "Alles exporteren…", + "find": "Zoeken", "finish": "Klaar", - "from_file": "Vanuit bestand…", - "from_url": "Via een URL…", - "full_export": "Volledige Export", - "full_import": "Volledige Import", - "generate": "Genereer", - "generate_thumb_default": "Genereer standaard thumbnail", - "generate_thumb_from_current": "Genereer thumbnail van huidige", - "hash_migration": "hash migratie", + "from_file": "Uit bestand…", + "from_url": "Van url…", + "full_export": "Volledige export", + "full_import": "Volledige import", + "generate": "Genereren", + "generate_thumb_default": "Standaardminiatuur genereren", + "generate_thumb_from_current": "Miniatuur van huidige genereren", + "hash_migration": "controlesommigratie", "hide": "Verbergen", - "hide_configuration": "Verberg Configuratie", - "identify": "Identificeer", + "hide_configuration": "Instellingen verbergen", + "identify": "Identificeren", "ignore": "Negeren", "import": "Importeren…", - "import_from_file": "Importeer uit bestand", - "logout": "Log uit", + "import_from_file": "Importeren uit bestand", + "logout": "Uitloggen", "merge": "Samenvoegen", "merge_from": "Samenvoegen uit", - "merge_into": "Samenvoegen tot", + "merge_into": "Samenvoegen naar", "next_action": "Volgende", - "not_running": "Niet werkend", - "open_in_external_player": "Open in externe speler", - "open_random": "Open Willekeurig", + "not_running": "niet actief", + "open_in_external_player": "Openen in externe speler", + "open_random": "Willekeurig openen", "overwrite": "Overschrijven", - "play_random": "Speel Willekeurig", - "play_selected": "Speel geselecteerde", + "play_random": "Willekeurig afspelen", + "play_selected": "Selectie afspelen", "preview": "Voorvertoning", "previous_action": "Terug", - "refresh": "Verversen", - "reload_plugins": "Invoegtoepassingen opnieuw laden", - "reload_scrapers": "Herlaad Scrapers", + "refresh": "Vernieuwen", + "reload_plugins": "Plug-ins herladen", + "reload_scrapers": "Scrapers herladen", "remove": "Verwijderen", - "remove_from_gallery": "Verwijder van Galerij", - "rename_gen_files": "Hernoem gegenereerde bestanden", - "rescan": "Scan opnieuw", - "reshuffle": "Herschudden", - "running": "Wordt uitgevoerd", + "remove_from_gallery": "Verwijderen uit galerij", + "rename_gen_files": "Gegenereerde bestandsnamen wijzigen", + "rescan": "Opnieuw doorzoeken", + "reshuffle": "Willekeurige volgorde", + "running": "actief", "save": "Opslaan", - "save_delete_settings": "Gebruik deze opties als standaard bij verwijderen", - "save_filter": "Sla filter op", - "scan": "Scannen", - "scrape": "Schrapen", - "scrape_query": "Schraap opdracht", - "scrape_scene_fragment": "Schraap via fragment", - "scrape_with": "Schraap met…", - "search": "Zoek", - "select_all": "Selecteer Alles", - "select_entity": "Selecteer {entityType}", - "select_folders": "Selecteer bestandsmappen", - "select_none": "Selecteer Niets", - "selective_auto_tag": "Selectieve automatische Tag", - "selective_clean": "Selectief Opkuisen", - "selective_scan": "Selectief Aftasten", - "set_as_default": "Stel als standaard in", - "set_back_image": "Achtergrond afbeelding…", - "set_front_image": "Voorgrond afbeelding…", - "set_image": "Zet afbeelding…", - "show": "Toon", - "show_configuration": "Toon Configuratie", + "save_delete_settings": "Opties standaard gebruiken bij verwijderen", + "save_filter": "Filter bewaren", + "scan": "Doorzoeken", + "scrape": "Scrapen", + "scrape_query": "Scrapeopdracht", + "scrape_scene_fragment": "Scrapen op fragment", + "scrape_with": "Scrapen met…", + "search": "Zoeken", + "select_all": "Alles selecteren", + "select_entity": "{entityType} selecteren", + "select_folders": "Mappen selecteren", + "select_none": "Niets selecteren", + "selective_auto_tag": "Selectief automatisch label", + "selective_clean": "Selectief opruimen", + "selective_scan": "Selectief doorzoeken", + "set_as_default": "Instellen als standaard", + "set_back_image": "Achtergrondafbeelding…", + "set_front_image": "Voorgrondafbeelding…", + "set_image": "Afbeelding instellen…", + "show": "Tonen", + "show_configuration": "Instellingen tonen", "skip": "Overslaan", - "stop": "Stop", + "stop": "Stoppen", "submit": "Opslaan", - "submit_stash_box": "Opslaan naar Stash-Box", + "submit_stash_box": "Opslaan in Stash-Box", "submit_update": "Update opslaan", "tasks": { - "clean_confirm_message": "Weet je zeker dat je wil opschonen? Dit verwijderd database informatie en gegenereerde bestanden voor alle scènes en galerijen die niet langer meer op schijf gevonden kunnen worden.", - "dry_mode_selected": "\"droog\" mode geselecteerd. Er zal niets verwijderd worden, er wordt alleen gelogd.", - "import_warning": "Weet je zeker dat je wil importeren? Dit zal de database verwijderen en herimporteren vanuit je geëxporteerde metadata." + "clean_confirm_message": "Weet je zeker dat je wilt opruimen? Hierdoor wordt de databankinformatie en gegenereerde bestanden opgeruimd van alle scènes en galerijen die niet meer op de schijf zijn aangetroffen.", + "dry_mode_selected": "Voorvertoningsmodus gekozen. Er zal niets verwijderd worden; alleen gelogd.", + "import_warning": "Weet je zeker dat je wilt importeren? Hierdoor wordt de databank verwijderd en opnieuw geïmporteerd uit geëxporteerde metagegevens." }, - "temp_disable": "Schakel tijdelijk uit…", - "temp_enable": "Schakel tijdelijk in…", + "temp_disable": "Tijdelijk uitschakelen…", + "temp_enable": "Tijdelijk inschakelen…", "unset": "Uitgeschakeld", - "use_default": "Gebruik standaard", - "view_random": "Bekijk Willekeurig" + "use_default": "Standaard gebruiken", + "view_random": "Willekeurig tonen", + "reset_play_duration": "Afspeelduur herstellen", + "reset_resume_time": "Hervattijd herstellen", + "reset_cover": "Standaardomslag herstellen", + "anonymise": "Anonimiseren", + "assign_stashid_to_parent_studio": "Stash-id toevoegen aan studio en metagegevens bijwerken", + "add_sub_groups": "Subgroepen maken", + "choose_date": "Kies een datum", + "clear_date_data": "Datumgegevens wissen", + "create_chapters": "Hoofdstuk maken", + "create_parent_studio": "Hoofdstudio toevoegen", + "disable": "Uitschakelen", + "download_anonymised": "Anoniem downloaden", + "enable": "Inschakelen", + "encoding_image": "Bezig met converteren…", + "migrate_blobs": "Blobs migreren", + "migrate_scene_screenshots": "Scèneschermfoto's migreren", + "optimise_database": "Databank optimaliseren", + "reassign": "Opnieuw toewijzen", + "remove_date": "Datum wissen", + "remove_from_containing_group": "Verwijderen uit groep", + "set_cover": "Gebruiken als omslag", + "split": "Splitsen", + "view_history": "Geschiedenis tonen", + "add_play": "Toevoegen aan afspeellijst", + "add_manual_date": "Datum invoeren", + "add_o": "O toevoegen", + "clean_generated": "Gegenereerde bestanden wissen", + "make_primary": "Als primair aanduiden", + "reload": "Herladen", + "copy_to_clipboard": "Kopiëren naar klembord", + "swap": "Omwisselen" }, "actions_name": "Acties", "age": "Leeftijd", "aliases": "Aliassen", "all": "alle", - "also_known_as": "Ook bekend als", + "also_known_as": "Pseudoniem", "ascending": "Oplopend", "average_resolution": "Gemiddelde resolutie", "birth_year": "Geboortejaar", @@ -126,121 +157,129 @@ "career_length": "Duur van carrière", "component_tagger": { "config": { - "active_instance": "Actieve stash-box installatie:", - "blacklist_desc": "Items in zwarte lijst worden uitgesloten van zoekopdrachten. Merk op dat het reguliere uitdrukkingen zijn en ook hoofdletterongevoelig. Bepaalde tekens hebben een backslash nodig als ontsnappingsteken: {chars_require_escape}", + "active_instance": "Actieve stash-boxinstallatie:", + "blacklist_desc": "Items op de zwarte lijst worden uitgesloten van zoekopdrachten. Merk op dat het reguliere uitdrukkingen zijn en hoofdletterongevoelig. Bepaalde tekens hebben een achterwaartse schuine streep nodig: {chars_require_escape}", "blacklist_label": "Zwarte lijst", - "query_mode_auto": "Auto", - "query_mode_auto_desc": "Gebruikt metadata indien aanwezig, of bestandsnaam", + "query_mode_auto": "Automatisch", + "query_mode_auto_desc": "Gebruikt metagegevens (indien aanwezig) of bestandsnaam", "query_mode_dir": "Map", "query_mode_dir_desc": "Gebruikt enkel de map van het videobestand", "query_mode_filename": "Bestandsnaam", - "query_mode_filename_desc": "Gebruikt alleen bestandsnaam", - "query_mode_label": "Uitvraagmodus", - "query_mode_metadata": "Metadata", - "query_mode_metadata_desc": "Gebruikt alleen metadata", - "query_mode_path": "Pad", - "query_mode_path_desc": "Gebruikt volledige bestandspad", - "set_cover_desc": "Vervang de scène omslag als er een gevonden is.", - "set_cover_label": "Zet scène omslagafbeelding", - "set_tag_desc": "Voeg tags toe aan de scène, door ze te overschrijven of samen te voegen met bestaande tags in de scène.", + "query_mode_filename_desc": "Gebruikt alleen de bestandsnaam", + "query_mode_label": "Opvraagmodus", + "query_mode_metadata": "Metagegevens", + "query_mode_metadata_desc": "Gebruikt alleen de metagegevens", + "query_mode_path": "Locatie", + "query_mode_path_desc": "Gebruikt de volledige bestandslocatie", + "set_cover_desc": "Vervang de scèneomslag als er een aangetroffen is.", + "set_cover_label": "Scèneomslag instellen", + "set_tag_desc": "Voorzie een scène van labels door ze te overschrijven of samen te voegen met reeds aanwezige.", "set_tag_label": "Labels instellen", - "show_male_desc": "Schakel tussen of mannelijke performers beschikbaar zullen zijn om te taggen.", - "show_male_label": "Toon mannelijke performers", - "source": "Bron" + "show_male_desc": "Geef aan of mannen gelabeld mogen worden.", + "show_male_label": "Mannen tonen", + "source": "Bron", + "mark_organized_label": "Markeren als geordend na opslaan", + "mark_organized_desc": "Markeer een scène als geordend na klikken op opslaan." }, - "noun_query": "Vraag", + "noun_query": "Zoekvraag", "results": { "duration_off": "De duur is minstens {number}s", - "duration_unknown": "Duur onbekend", - "fp_found": "{fpCount, plural, =0 {Geen nieuwe vingerafdrukken gevonden} other {# nieuwe vingerafdruk overeenkomsten gevonden}}", - "fp_matches": "Duur is een overeenkomst", - "fp_matches_multi": "Duur wedstrijden {matchCount}/{durationsLength} vingerafdruk(ken)", - "hash_matches": "{hash_type} is een overeenkomst", - "match_failed_already_tagged": "Scène al getagd", - "match_failed_no_result": "Geen resultaten gevonden", - "match_success": "Scene succesvol getagd", - "phash_matches": "{count} PHashes wedstrijd", + "duration_unknown": "Onbekende duur", + "fp_found": "{fpCount, plural, =0 {Geen nieuwe vingerafdrukken gevonden} other {# nieuwe vingerafdrukken gevonden}}", + "fp_matches": "De duur komt overeen", + "fp_matches_multi": "De duur komt overeen {matchCount}/{durationsLength} met het aantal vingerafdrukken", + "hash_matches": "{hash_type} komt overeen", + "match_failed_already_tagged": "Deze scène is al gelabeld", + "match_failed_no_result": "Er zijn geen zoekresultaten", + "match_success": "De scène is gelabeld", + "phash_matches": "{count} PHashes komen overeen", "unnamed": "Naamloos" }, - "verb_match_fp": "Vingerafdrukken vergelijken", - "verb_matched": "Bijpassend", - "verb_scrape_all": "Bekijk alle", - "verb_submit_fp": "Indienen {fpCount, plural, one{# Fingerprint} other{# Fingerprints}}", + "verb_match_fp": "Overeenkomen met vingerafdrukken", + "verb_matched": "Overeenkomstig", + "verb_scrape_all": "Alles scrapen", + "verb_submit_fp": "{fpCount, plural, one{# vingerafdruk} other{# vingerafdrukken}} indienen", "verb_toggle_config": "{toggle} {configuration}", - "verb_toggle_unmatched": "{toggle} ongeëvenaarde scènes" + "verb_toggle_unmatched": "{toggle} niet-overeenkomende scènes" }, "config": { "about": { - "build_hash": "Bouw hash:", + "build_hash": "Controlesom van bouwsel:", "build_time": "Bouwtijd:", - "check_for_new_version": "Controleren op nieuwe versie", - "latest_version": "Laatste versie", - "latest_version_build_hash": "Nieuwste versie Bouw Hash:", + "check_for_new_version": "Controleren op updates", + "latest_version": "Nieuwste versie", + "latest_version_build_hash": "Controlesome van nieuwste versie:", "new_version_notice": "[NIEUW]", - "stash_discord": "Word lid van ons {url} kanaal", + "stash_discord": "Neem deel aan ons {url}-kanaal", "stash_home": "Stash thuis bij {url}", "stash_open_collective": "Steun ons via {url}", - "stash_wiki": "Stash {url} pagina", - "version": "Versie" + "stash_wiki": "Stash {url}-pagina", + "version": "Versie", + "release_date": "Uitgebracht op:" }, "application_paths": { - "heading": "aplicatie pad" + "heading": "Programmalocaties" }, "categories": { "about": "Over", - "interface": "Interface", + "interface": "Vormgeving", "logs": "Logboeken", - "metadata_providers": "Metadata voorzieners", - "plugins": "Plugins", - "scraping": "Schraper", + "metadata_providers": "Metagegevensdiensten", + "plugins": "Plug-ins", + "scraping": "Scraping", "security": "Beveiliging", "services": "Diensten", "system": "Systeem", "tasks": "Taken", - "tools": "Gereedschap" + "tools": "Hulpmiddelen", + "changelog": "Wijzigingslog" }, "dlna": { - "allow_temp_ip": "Toestaan {tempIP}", - "allowed_ip_addresses": "Toegestane IP-adressen", - "allowed_ip_temporarily": "Tijdelijk toegestane IP", - "default_ip_whitelist": "Standaard IP witte lijst", - "default_ip_whitelist_desc": "Standaard IP-adressen staan toegang tot DLNA toe. Gebruik {wildcard} om alle IP-adressen toe te staan.", + "allow_temp_ip": "{tempIP} toestaan", + "allowed_ip_addresses": "Toegestane ip-adressen", + "allowed_ip_temporarily": "Tijdelijk toegestaan ip-adres", + "default_ip_whitelist": "Standaard witte lijst met ip-adressen", + "default_ip_whitelist_desc": "Standaard ip-adressen hebben toegang tot DLNA. Gebruik {wildcard} om alle ip-adressen toe te staan.", "disabled_dlna_temporarily": "DLNA tijdelijk uitschakelen", - "disallowed_ip": "Niet-toegestane IP", + "disallowed_ip": "Geweigerd ip-adres", "enabled_by_default": "Standaard ingeschakeld", "enabled_dlna_temporarily": "DLNA tijdelijk toegestaan", - "network_interfaces": "Gebruikersinterface", - "network_interfaces_desc": "Interfaces om de DLNA-server aan bloot te stellen. Een lege lijst resulteert in uitvoering op alle interfaces. Vereist een herstart van DLNA na wijziging.", - "recent_ip_addresses": "Recentelijk IP-adressen", - "server_display_name": "Naam serverweergave", - "server_display_name_desc": "Weergavenaam voor de DLNA-server. Wordt standaard ingesteld op {server_naam} indien leeg.", + "network_interfaces": "Interfaces", + "network_interfaces_desc": "Interfaces om de DLNA-server aan bloot te stellen. Een lege lijst resulteert in uitvoering op alle interfaces. Herstart DLNA om de wijzigingen toe te passen.", + "recent_ip_addresses": "Recente ip-adressen", + "server_display_name": "Servernaam", + "server_display_name_desc": "De weergavenaam van de DLNA-server. Wordt standaard ingesteld op {server_naam} indien leeg.", "successfully_cancelled_temporary_behaviour": "Tijdelijk gedrag geannuleerd", - "until_restart": "tot de herstart" + "until_restart": "tot aan herstart", + "server_port_desc": "De poort waarop de DLNA-server draait. Herstart DLNA om de wijzigingen toe te passen.", + "video_sort_order": "Standaard sorteervolgorde", + "video_sort_order_desc": "De standaard sorteervolgorde van video's.", + "server_port": "Serverpoort" }, "general": { "auth": { - "api_key": "API Sleutel", - "api_key_desc": "API sleutel voor externe systemen. Alleen vereist wanneer gebruikersnaam/wachtwoord is geconfigureerd. Gebruikersnaam moet worden opgeslagen voordat API sleutel wordt gegenereerd.", - "authentication": "Authenticatie", - "clear_api_key": "Duidelijke API sleutel", + "api_key": "Api-sleutel", + "api_key_desc": "De api-sleutel van externe systemen. Alleen vereist indien gebruikersnaam en wachtwoord zijn ingesteld. De gebruikersnaam moet worden bewaard voordat api-sleutel wordt gegenereerd.", + "authentication": "Verificatie", + "clear_api_key": "Api-sleutel wissen", "credentials": { - "description": "Credentials om toegang to stash te beperken.", + "description": "Inloggegevens om de toegang tot je verzameling te beperken.", "heading": "Inloggegevens" }, - "generate_api_key": "Maak een API-sleutel", + "generate_api_key": "Api-sleutel genereren", "log_file": "Logboek", - "log_file_desc": "Pad naar het bestand waar naar te loggen. Laat leeg om niet logboek niet naar bestand te schrijven. Herstarten nodig.", - "log_http": "HTTP toegang loggen", - "log_http_desc": "Log HTTP toegangsmeldingen naar de terminal. Vereist een herstart.", - "log_to_terminal": "Log naar het scherm", - "log_to_terminal_desc": "Log naar het scherm en naar een bestand. Altijd aan als loggen naar bestand is uitgeschakeld. Vereist een herstart.", - "maximum_session_age": "Maximale sessie lengte", - "maximum_session_age_desc": "Maximale tijd voordat een aanmeldsessie is verlopen, in seconden.", + "log_file_desc": "De locatie van het bestand waarin gelogd dient te worden. Laat leeg om niet te loggen. Herstart vereist.", + "log_http": "Http-toegang loggen", + "log_http_desc": "Log http-toegangsmeldingen naar de terminal. Herstart vereist.", + "log_to_terminal": "Loggen naar terminal", + "log_to_terminal_desc": "Log zowel naar de terminal als naar een bestand. Altijd aan als loggen naar bestand is uitgeschakeld. Herstart vereist.", + "maximum_session_age": "Maximale ouderdom van sessie", + "maximum_session_age_desc": "De maximale tijd voordat een sessie verloopt, in seconden. Herstart vereist.", "password": "Wachtwoord", - "password_desc": "Wachtwoord om Stash te openen. Laat leeg om aanmelden uit te schakelen", - "stash-box_integration": "Stash-box integratie", + "password_desc": "Wachtwoord om je verzameling te openen. Laat leeg om inloggen uit te schakelen", + "stash-box_integration": "Stash-boxintegratie", "username": "Gebruikersnaam", - "username_desc": "Gebruikersnaam om Stash te openen. Laat leeg om aanmelden uit te schakelen" + "username_desc": "Gebruikersnaam om je verzameling te openen. Laat leeg om inloggen uit te schakelen" }, "cache_location": "Map voor de cache", "cache_path_head": "Cache pad", @@ -296,7 +335,11 @@ "sqlite_location": "Bestandspad voor de SQLite database (vereist een herstart)", "video_ext_desc": "Komma gescheiden lijst van bestandsextensie die worden aangemerkt als video.", "video_ext_head": "Video extensies", - "video_head": "Video" + "video_head": "Video", + "backup_directory_path": { + "description": "Maplocatie met SQLite-databankreservekopieën", + "heading": "Reservekopiemap" + } }, "library": { "exclusions": "Uitzonderingen", @@ -542,7 +585,8 @@ "heading": "Diavoorstellingsvertraging (in seconden)" }, "title": "Gebruikers interface" - } + }, + "advanced_mode": "Geavanceerde modus" }, "configuration": "Configuratie", "countables": { @@ -981,5 +1025,18 @@ "videos": "Video's", "view_all": "Alles weergeven", "weight": "Gewicht", - "years_old": "jaar oud" + "years_old": "jaar oud", + "appears_with": "Te zien met", + "audio_codec": "Audiocodec", + "between_and": "en", + "blobs_storage_type": { + "database": "Databank", + "filesystem": "Bestandssysteem" + }, + "chapters": "Hoofdstukken", + "circumcised": "Besneden", + "circumcised_types": { + "CUT": "Ja", + "UNCUT": "Nee" + } } diff --git a/ui/v2.5/src/locales/nn.json b/ui/v2.5/src/locales/nn-NO.json similarity index 70% rename from ui/v2.5/src/locales/nn.json rename to ui/v2.5/src/locales/nn-NO.json index 0ad8388e3d7..81d94cf8ebb 100644 --- a/ui/v2.5/src/locales/nn.json +++ b/ui/v2.5/src/locales/nn-NO.json @@ -37,7 +37,55 @@ "play_random": "Spel av tilfeldig", "submit_update": "Send inn oppdatering", "view_random": "Vis tilfeldig", - "add_directory": "Legg til mappe" + "add_directory": "Legg til mappe", + "add_sub_groups": "Legg til undergrupper", + "clear_image": "Fjern bilete", + "find": "Finn", + "finish": "Fullfør", + "from_file": "Frå fil …", + "from_url": "Frå nettadresse …", + "full_export": "Fullstendig eksportering", + "full_import": "Fullstendig importering", + "generate": "Generer", + "hash_migration": "hash-migrering", + "next_action": "Neste", + "not_running": "køyrer ikkje", + "open_in_external_player": "Opna i ekstern avspelar", + "optimise_database": "Optimiser database", + "overwrite": "Skriv over", + "play_selected": "Spel av valde", + "preview": "Førehandsvis", + "previous_action": "Tilbake", + "reassign": "Tilordna på nytt", + "refresh": "Oppdater", + "reload_plugins": "Last inn tillegg på nytt", + "reload": "Last på nytt", + "remove_from_containing_group": "Fjern frå gruppe", + "remove_from_gallery": "Fjern frå galleri", + "rename_gen_files": "Endra namn på genererte filer", + "rescan": "Skann på nytt", + "anonymise": "Anonymiser", + "clear_back_image": "Fjern baksidebilete", + "clear_front_image": "Fjern framsidebilete", + "download": "Last ned", + "download_backup": "Last ned reservekopi", + "edit": "Rediger", + "edit_entity": "Rediger {entityType}", + "enable": "Slå på", + "export": "Eksporter", + "export_all": "Eksporter alle …", + "ignore": "Ignorer", + "import": "Importer …", + "identify": "Identifiser", + "import_from_file": "Importer frå fil", + "logout": "Logg ut", + "make_primary": "Set som føretrekt", + "merge": "Flett", + "merge_into": "Flett inn i", + "migrate_scene_screenshots": "Migrer skjermbilete av scener", + "download_anonymised": "Last ned anonymisert", + "disallow": "Ikkje tillat", + "merge_from": "Flett frå" }, "countables": { "groups": "{count, plural, one {Gruppe} other {Grupper}}", @@ -81,7 +129,9 @@ "previews_desc": "Førehandsvisingar og miniatyrbilete av scener", "image_thumbnails_desc": "Miniatyrbilete og -klipp", "transcodes": "Omkodingar av scener" - } + }, + "anonymise_and_download": "Opprettar ein anonymisert kopi av databasen og lastar ned den ferdige fila.", + "anonymise_database": "Anonymiserer sensitive data og opprettar ein kopi av databasen i mappa «backups». Han kan då delast med andre for å kunna brukast til feilsøking. Den opphavlege databasen vert ikkje endra. Filnamnet til den anonymiserte databasen vert i formatet {filename_format}." }, "ui": { "editing": { @@ -97,6 +147,9 @@ }, "about": { "release_date": "Utgjevingsdato:" + }, + "categories": { + "plugins": "Tillegg" } }, "dupe_check": { @@ -170,5 +223,11 @@ }, "zip_file_count": "Tal på zippa filer", "image_count": "Tal på bilete", - "scene_count": "Tal på scener" + "scene_count": "Tal på scener", + "sub_groups": "Undergrupper", + "include_sub_groups": "Ta med undergrupper", + "sub_group": "Undergruppe", + "sub_group_count": "Tal på undergrupper", + "sub_group_of": "Undergruppe av {parent}", + "sub_group_order": "Undergruppesortert" } diff --git a/ui/v2.5/src/locales/pl-PL.json b/ui/v2.5/src/locales/pl-PL.json index 1ca3b12f502..79449780185 100644 --- a/ui/v2.5/src/locales/pl-PL.json +++ b/ui/v2.5/src/locales/pl-PL.json @@ -134,7 +134,14 @@ "clean_generated": "Wyczyść wygenerowane pliki", "clear_date_data": "Wyczyść dane daty", "create_parent_studio": "Utwórz studio nadrzędne", - "remove_date": "Usuń datę" + "remove_date": "Usuń datę", + "reset_play_duration": "Resetuj czas odtwarzania", + "reset_resume_time": "Resetuj czas wznowienia", + "set_cover": "Ustaw jako okładkę", + "remove_from_containing_group": "Usuń z grupy", + "reset_cover": "Przywróć domyślną okładkę", + "add_sub_groups": "Dodaj podgrupy", + "view_history": "Zobacz historię" }, "actions_name": "Działania", "age": "Wiek", @@ -257,7 +264,9 @@ "successfully_cancelled_temporary_behaviour": "Pomyślnie anulowano zachowanie tymczasowe", "until_restart": "do ponownego uruchomienia", "video_sort_order": "Domyślna kolejność sortowania wideo", - "video_sort_order_desc": "Ustaw domyślną kolejność sortowania filmów." + "video_sort_order_desc": "Ustaw domyślną kolejność sortowania filmów.", + "server_port": "Port serwera", + "server_port_desc": "Port, na którym uruchomiony będzie serwer DLNA.\nWymaga restartu DLNA w przypadku zmiany." }, "general": { "auth": { @@ -1259,7 +1268,9 @@ "url": "URL", "validation": { "date_invalid_form": "${path} musi być w formacie RRRR-MM-DD", - "required": "${path} jest wymagana" + "required": "${path} jest wymagana", + "unique": "${path} musi być unikalny", + "blank": "${path} nie może być puste" }, "videos": "Filmy wideo", "view_all": "Pokaż wszystko", @@ -1267,5 +1278,12 @@ "weight_kg": "Waga (kg)", "years_old": "lat(a)", "zip_file_count": "Liczba plików zip", - "audio_codec": "Kodek audio" + "audio_codec": "Kodek audio", + "sub_group": "Podgrupa", + "sub_group_count": "Ilość Podgrup", + "sub_group_of": "Podgrupa {parent}", + "sub_group_order": "Kolejność podgrup", + "sub_groups": "Podgrupy", + "unknown_date": "Nieznana data", + "video_codec": "Kodek Wideo" } diff --git a/ui/v2.5/src/locales/sk-SK.json b/ui/v2.5/src/locales/sk-SK.json new file mode 100644 index 00000000000..1cc9cd2c741 --- /dev/null +++ b/ui/v2.5/src/locales/sk-SK.json @@ -0,0 +1,33 @@ +{ + "actions": { + "cancel": "Zrušiť", + "next_action": "Ďaľšie", + "add_directory": "Pridať priečinok", + "add_sub_groups": "Pridať podskupiny", + "allow": "Povoliť", + "allow_temporarily": "Dočasne povoliť", + "anonymise": "Zanonymizovať", + "backup": "Záloha", + "choose_date": "Vybrať dátum", + "confirm": "Potvrdiť", + "continue": "Pokračovať", + "create": "Vytvoriť", + "create_chapters": "Nová kapitola", + "delete": "Vymazať", + "find": "Nájsť", + "identify": "Identifikovať", + "logout": "Odhlásiť", + "optimise_database": "Optimalizovať databázu", + "overwrite": "Prepísať", + "add": "Pridať", + "customise": "Prispôsobiť", + "export": "Exportovať", + "export_all": "Exportovať všetko…", + "add_entity": "Pridať {entityType}", + "add_manual_date": "Pridať dátum manuálne", + "add_o": "Pridať O", + "add_to_entity": "Pridať do {entityType}", + "apply": "Použiť", + "assign_stashid_to_parent_studio": "Priraďte Stash ID existujúcemu rodičovskému štúdiu a aktualizujte metadáta" + } +} diff --git a/ui/v2.5/src/locales/sv-SE.json b/ui/v2.5/src/locales/sv-SE.json index a077f07aaf5..955213f2c6f 100644 --- a/ui/v2.5/src/locales/sv-SE.json +++ b/ui/v2.5/src/locales/sv-SE.json @@ -192,7 +192,10 @@ "set_tag_label": "Tagga", "show_male_desc": "Välj huruvida manliga stjärnor kommer vara tillgängliga att tagga.", "show_male_label": "Visa manliga stjärnor", - "source": "Källa" + "source": "Källa", + "errors": { + "blacklist_duplicate": "Duplicera svartlistat objekt" + } }, "noun_query": "Query", "results": { @@ -920,7 +923,7 @@ "marker_image_previews": "Markörer Animerad bildförhandsvisning", "marker_image_previews_tooltip": "Generera också Animerad (webp) föhandsvisning, krävs bara när Förhandsvisning i Scen/Markörvägg är Animerad Bild. Vid surfande använder de mindre CPU än videoförhandsvisngar, men genereras bredvid de och är större filer.", "marker_screenshots": "Markörskärmklipp", - "marker_screenshots_tooltip": "Markör statiska JPG-bilder, krävs bara om Typ av Förhandsvisning är Statisk Bild.", + "marker_screenshots_tooltip": "Markör statiska JPG-bilder", "markers": "Markörförhandsvisningar", "markers_tooltip": "20-sekunders videor som börjar vid angiven tidsstämpel.", "override_preview_generation_options": "Åsidosätt Inställningar för Förhandsvisningsgeneration", @@ -1024,7 +1027,13 @@ "something_went_wrong": "Något gick fel.", "header": "Fel", "invalid_javascript_string": "Ogiltig javascriptkod: {error}", - "invalid_json_string": "Ogiltig JSON-sträng: {error}" + "invalid_json_string": "Ogiltig JSON-sträng: {error}", + "custom_fields": { + "duplicate_field": "Fältnamn måste vara unikt", + "field_name_length": "Fältnamnet måste vara kortare än 65 karaktärer", + "field_name_required": "Fältnamn är obligatoriskt", + "field_name_whitespace": "Fältnamn kan inte börja eller sluta med blanksteg" + } }, "ethnicity": "Etnicitet", "existing_value": "existerande värde", @@ -1094,7 +1103,8 @@ "last_played_at": "Senast spelad", "library": "Bibliotek", "loading": { - "generic": "Laddar…" + "generic": "Laddar…", + "plugins": "Laddar tillägg…" }, "marker_count": "Antal Markörer", "markers": "Markörer", @@ -1234,7 +1244,9 @@ "errors": { "something_went_wrong": "Nej! Något gick fel!", "something_went_wrong_description": "Om det här ser ut som ett problem med dina inputs, klicka bakåt för att fixa det. Annars, vänligen skapa en buggvarning på {githublink} eller hitta hjälp på {githublink}.", - "something_went_wrong_while_setting_up_your_system": "Något gick fel i uppstarten av ditt system. Här är felet vi fick: {error}" + "something_went_wrong_while_setting_up_your_system": "Något gick fel i uppstarten av ditt system. Här är felet vi fick: {error}", + "unexpected_error": "Ett oförväntat fel inträffade: {error}", + "unable_to_retrieve_system_status": "Misslyckades med att hämta systemstatus: {error}" }, "folder": { "file_path": "Filsökväg", @@ -1412,7 +1424,8 @@ "date_invalid_form": "${path} måste vara i formatet ÅÅÅÅ-MM-DD", "required": "${path} är ett obligatoriskt fält", "unique": "${path} måste vara unik", - "blank": "${path} får inte lämnas tom" + "blank": "${path} får inte lämnas tom", + "end_time_before_start_time": "Sluttiden måste var större eller lika med starttiden" }, "video_codec": "Videocodec", "videos": "Videor", @@ -1490,5 +1503,18 @@ "sub_group_of": "Undergrupp av {parent}", "sub_group_order": "Ordning av Undergrupper", "sub_groups": "Undergrupper", - "sub_group": "Undergrupp" + "sub_group": "Undergrupp", + "include_sub_groups": "Inkludera undergrupper", + "time_end": "Sluttid", + "criterion_modifier_values": { + "any": "Någon", + "any_of": "Någon av", + "none": "Ingen", + "only": "Bara" + }, + "custom_fields": { + "field": "Fält", + "title": "Skäddarsydda Fält", + "value": "Värde" + } } diff --git a/ui/v2.5/src/locales/tr-TR.json b/ui/v2.5/src/locales/tr-TR.json index 35465e1b0d5..98c750acfc0 100644 --- a/ui/v2.5/src/locales/tr-TR.json +++ b/ui/v2.5/src/locales/tr-TR.json @@ -36,16 +36,16 @@ "find": "Bul", "finish": "Bitir", "from_file": "Dosyadan…", - "from_url": "Internetten…", + "from_url": "URL'den…", "full_export": "Tam Dışa Aktarım", - "full_import": "Tam İçe Aktarım", + "full_import": "Tam İçe Aktarma", "generate": "Oluştur", "generate_thumb_default": "Varsayılan küçük resim oluştur", "generate_thumb_from_current": "Mevcut görüntüden küçük resim oluştur", "hash_migration": "hash taşıma", "hide": "Gizle", "identify": "Tanımla", - "ignore": "Yoksay", + "ignore": "Yok Say", "import": "İçe Aktar…", "import_from_file": "Dosyadan içe aktar", "merge": "Birleştir", @@ -61,7 +61,7 @@ "previous_action": "Geri", "refresh": "Yenile", "reload_plugins": "Eklentileri yeniden yükle", - "reload_scrapers": "Veri Toplayıcıları yeniden yükle", + "reload_scrapers": "Veri toplayıcıları yeniden yükle", "remove": "Kaldır", "rename_gen_files": "Oluşturulan dosyaları yeniden adlandır", "rescan": "Yeniden tara", @@ -73,7 +73,7 @@ "scan": "Tara", "scrape": "Veri Topla", "scrape_query": "Veri Toplama sorgusu", - "scrape_scene_fragment": "Sahneye göre Veri Topla", + "scrape_scene_fragment": "Parçalara göre veri topla", "scrape_with": "Bununla Veri Topla…", "search": "Ara", "select_all": "Tümünü Seç", @@ -92,12 +92,52 @@ "tasks": { "clean_confirm_message": "Temizlemek istediğinize emin misiniz? Dosya sisteminde bulunamayan tüm içerikler için veritabanı bilgileri ve oluşturulan verilerin tamamı temizlenecek.", "dry_mode_selected": "Deneme Modu aktif. Silme işlemi yapılmayacak, sadece ne yapılacağı gösterilecek.", - "import_warning": "İçe aktarmak istediğinize emin misiniz? Veritabanı silinecek ve dışa aktarılmış bilgilerden yeniden tanımlanacak." + "import_warning": "İçe aktarmak istediğinize emin misiniz? Bu, veritabanını silecek ve dışa aktarılan üstverilerinizden yeniden içe aktaracaktır." }, "temp_disable": "Geçici olarak devre dışı bırak…", "temp_enable": "Geçici olarak etkinleştir…", "use_default": "Varsayılanı kullan", - "view_random": "Rastgele Göster" + "view_random": "Rastgele Göster", + "reset_cover": "Varsayılan Kapağı Geri Yükle", + "reset_play_duration": "Oynatma süresini sıfırla", + "add_sub_groups": "Alt Grup Ekle", + "copy_to_clipboard": "Panoya kopyala", + "enable": "Etkinleştir", + "create_chapters": "Bölüm Oluştur", + "edit_entity": "Düzenle {entityType}", + "remove_date": "Tarihi kaldır", + "reassign": "Yeniden ata", + "remove_from_gallery": "Galeriden Kaldır", + "select_entity": "Seç {entityType}", + "set_cover": "Kapak Olarak Ayarla", + "show_configuration": "Yapılandırmayı Göster", + "submit": "Gönder", + "submit_stash_box": "Stash-Box'a Gönder", + "submit_update": "Güncellemeyi gönder", + "view_history": "Geçmişi görüntüle", + "anonymise": "Anonimleştirme", + "customise": "Özelleştir", + "delete_file_and_funscript": "Dosyayı sil (funscript dahil)", + "disable": "Devre dışı bırak", + "hide_configuration": "Yapılandırmayı Gizle", + "logout": "Çıkış yap", + "make_primary": "Birincil Yap", + "choose_date": "Bir tarih seç", + "reload": "Yeniden yükle", + "remove_from_containing_group": "Gruptan Kaldır", + "clean_generated": "Oluşturulan dosyaları temizle", + "open_in_external_player": "Harici oynatıcıda aç", + "clear_date_data": "Tarih verisini temizle", + "optimise_database": "Veritabanını Optimize Et", + "create_parent_studio": "Ana stüdyo oluştur", + "migrate_scene_screenshots": "Sahne Ekran Görüntülerini Aktar", + "add_o": "O Ekle", + "add_play": "Oynatma ekle", + "migrate_blobs": "Blob'ları Aktar", + "assign_stashid_to_parent_studio": "Mevcut ana stüdyoya Stash ID atayın ve üstverileri güncelleyin", + "download_anonymised": "Anonim olarak indir", + "add_manual_date": "Elle tarih ekle", + "reset_resume_time": "Devam etme süresini sıfırla" }, "actions_name": "Eylemler", "age": "Yaş", @@ -109,30 +149,33 @@ "birth_year": "Doğum Yılı", "birthdate": "Doğum Tarihi", "bitrate": "Bit Hızı", - "career_length": "Kariyer Süresi", + "career_length": "Kariyer Uzunluğu", "component_tagger": { "config": { "active_instance": "Aktif stash-box:", "blacklist_desc": "Kara listeye alınan kelimeler sorguya eklenmez. Sözkonusu kelimeler kurallı ifadelerdir (regex) ve büyük-küçük harf ayrımına duyarlı değillerdir. Belirli karakterler ters bölü işaretiyle ayrılmalıdır: {chars_require_escape}", "blacklist_label": "Kara liste", "query_mode_auto": "Otomatik", - "query_mode_auto_desc": "Varsa üst veri veya dosya adını kullanır", + "query_mode_auto_desc": "Varsa üstverileri veya dosya adını kullanır", "query_mode_dir": "Dizin", "query_mode_dir_desc": "Yalnızca video dosyasının dizinini kullanır", "query_mode_filename": "Dosya adı", "query_mode_filename_desc": "Sadece dosya adını kullanır", "query_mode_label": "Sorgu Modu", "query_mode_metadata": "Üst veri", - "query_mode_metadata_desc": "Sadece üst veri bilgisini kullanır", - "query_mode_path": "Konum", - "query_mode_path_desc": "Dosya yolunu kullanır", + "query_mode_metadata_desc": "Sadece üstverileri kullanır", + "query_mode_path": "Yol", + "query_mode_path_desc": "Tüm dosya yolunu kullanır", "set_cover_desc": "Eğer bulunursa sahne kapak resmini değiştir.", "set_cover_label": "Sahne için kapak resmi seç", "set_tag_desc": "Sahneye etiket ekle (varolan etiketlerle birleştir veya üzerine yaz).", "set_tag_label": "Etiketleri düzenle", - "show_male_desc": "Erkek oyunculara etiket ekleme işlemini aç/kapat.", + "show_male_desc": "Erkek oyuncuları etiketleme işlemini aç/kapat.", "show_male_label": "Erkek oyuncuları göster", - "source": "Kaynak" + "source": "Kaynak", + "errors": { + "blacklist_duplicate": "Yinelenen kara liste öğesi" + } }, "noun_query": "Sorgu", "results": { @@ -165,48 +208,58 @@ "new_version_notice": "[YENİ]", "stash_discord": "{url} kanalımıza katılın", "stash_home": "{url} üzerinde Stash sayfası", - "stash_open_collective": "Bizi {url} üzerinden destekleyin", + "stash_open_collective": "Bizi {url} aracılığıyla destekleyin", "stash_wiki": "Stash {url} sayfası", - "version": "Sürüm" + "version": "Sürüm", + "release_date": "Yayın tarihi:" }, "application_paths": { - "heading": "Uygulama Dizinleri" + "heading": "Uygulama Yolları" }, "categories": { "about": "Hakkında", "interface": "Arayüz", "logs": "Kayıtlar", - "metadata_providers": "Üst Veri Sağlayıcılar", + "metadata_providers": "Üstveri Sağlayıcılar", "plugins": "Eklentiler", "scraping": "Veri Toplama", "security": "Güvenlik", "services": "Servisler", "system": "Sistem", "tasks": "Görevler", - "tools": "Araçlar" + "tools": "Araçlar", + "changelog": "Sürüm Notları" }, "dlna": { "allow_temp_ip": "{tempIP} IP adresine izin ver", "allowed_ip_addresses": "İzinli IP adresleri", - "default_ip_whitelist": "Öntanımlı izinli IP'ler", - "default_ip_whitelist_desc": "DLNA erişimi için izin verilen IP'ler. {wildcard} kullanarak tüm IP adreslerine izin verebilirsiniz.", + "default_ip_whitelist": "Varsayılan IP Beyaz Listesi", + "default_ip_whitelist_desc": "Varsayılan IP adresleri DLNA'e erişme izni verir. Tüm IP adreslerine izin vermek için {wildcard} kullanın.", "enabled_by_default": "Varsayılan olarak etkin", "network_interfaces": "Arayüzler", - "network_interfaces_desc": "DLNA erişimi için izin verilecek ağ arayüzleri. Boş bırakmak tüm arayüzlerden yayın yapılmasını sağlar. Değişikliğin ardından DLNA yeniden başlatılmalıdır.", - "recent_ip_addresses": "Son kullanılan IP adresleri", + "network_interfaces_desc": "DLNA sunucusunu göstermek için arayüzler. Listeyi boş bırakmak tüm arabirimler üzerinde çalışmayla sonuçlanır. Değişiklikten sonra DLNA'in yeniden başlatılması gerekir.", + "recent_ip_addresses": "Son IP adresleri", "server_display_name": "Sunucunun Görünen Adı", "server_display_name_desc": "DLNA sunucusu için kullanılacak isim. Boş ise {server_name} kullanılır.", - "until_restart": "yeniden başlatana kadar" + "until_restart": "yeniden başlatana kadar", + "disallowed_ip": "İzin verilmeyen IP", + "successfully_cancelled_temporary_behaviour": "Geçici davranış başarıyla iptal edildi", + "video_sort_order": "Varsayılan Video Sıralama Düzeni", + "server_port": "Sunucu Bağlantı Noktası", + "disabled_dlna_temporarily": "DLNA geçici olarak devre dışı bırakıldı", + "enabled_dlna_temporarily": "DLNA geçici olarak etkinleştirildi", + "video_sort_order_desc": "Videoları varsayılan olarak sıralayın.", + "server_port_desc": "DLNA sunucusunun çalıştırılacağı bağlantı noktası. Değiştirdikten sonra DLNA'in yeniden başlatılması gerekir." }, "general": { "auth": { "api_key": "API Anahtarı", - "api_key_desc": "Harici sistemler için API anahtarı. Yalnızca kullanıcı adı/parola ayarlı ise zorunludur. Kullanıcı adı API anahtarı oluşturulmadan önce kaydedilmelidir.", - "authentication": "Yetkilendirme", + "api_key_desc": "Harici sistemler için API anahtarı. Yalnızca kullanıcı adı ya da şifre yapılandırıldığında gereklidir. API anahtarı oluşturulmadan önce kullanıcı adı kaydedilmelidir.", + "authentication": "Kimlik Doğrulama", "clear_api_key": "API anahtarını temizle", "credentials": { "description": "Stash erişimini kısıtlamak için giriş bilgileri.", - "heading": "Giriş bilgileri" + "heading": "Giriş Bilgileri" }, "generate_api_key": "API anahtarı oluştur", "log_file": "Kayıt dosyası", @@ -216,21 +269,21 @@ "log_to_terminal": "Terminale kaydet", "log_to_terminal_desc": "Dosyanın yanı sıra terminale de kayıt gösterir. Dosyaya kayıt kapalı ise her zaman etkindir. Yeniden başlatma gerektirir.", "maximum_session_age": "Maksimum Oturum Süresi", - "maximum_session_age_desc": "Oturumun sonlanmaması için izin verilen süre, saniye cinsinden.", + "maximum_session_age_desc": "Oturumun süresi dolmadan önce maksimum boşta kalma süresi (saniye cinsinden). Yeniden başlatma gerektirir.", "password": "Parola", - "password_desc": "Stash'a erişim için parola. Kullanıcı yetkilendirme yapmak istemiyorsanız boş bırakın", + "password_desc": "Stash'e erişim için parola. Kullanıcı kimlik doğrulamasını devre dışı bırakmak için boş bırakın", "stash-box_integration": "Stash-box entegrasyonu", "username": "Kullanıcı adı", - "username_desc": "Stash'a erişim için kullanıcı adı. Kullanıcı yetkilendirme yapmak istemiyorsanız boş bırakın" + "username_desc": "Stash'e erişim için kullanıcı adı. Kullanıcı kimlik doğrulamasını devre dışı bırakmak için boş bırakın" }, - "cache_location": "Önbellek dizininin konumu", - "cache_path_head": "Önbellek Dizini", + "cache_location": "Önbellek dizininin konumudur. HLS (Apple cihazlarında olduğu gibi) veya DASH kullanılarak akış yapılıyorsa gereklidir.", + "cache_path_head": "Önbellek Yolu", "calculate_md5_and_ohash_desc": "oshash'in yanısıra MD5 checksum'ı da hesapla. Bu özelliği etkinleştirmek tarama işlemini yavaşlatacaktır. MD5 hesaplamasını devre dışı bırakmak için dosya adı imzası (hash) oshash olarak ayarlanmalıdır.", "calculate_md5_and_ohash_label": "Videolar için MD5 hesapla", "check_for_insecure_certificates": "Güvensiz sertifikaları kontrol et", - "check_for_insecure_certificates_desc": "Bazı siteler güvensiz SSL sertifikası kullanıyor olabilir. Bu seçenek kapalı ise veri çekici sertifika doğrulama adımını yapmaz. Veri çekerken sertifika hatası alıyorsanız bu işareti kaldırabilirsiniz.", + "check_for_insecure_certificates_desc": "Bazı siteler güvensiz SSL sertifikası kullanıyor olabilir. Bu seçenek kapalı ise veri toplayıcı sertifika doğrulama adımını yapmaz. Veri toplarken sertifika hatası alıyorsanız bu işareti kaldırabilirsiniz.", "chrome_cdp_path": "Chrome CDP yolu", - "chrome_cdp_path_desc": "Çalıştırılabilir Chrome dosyasının yolu veya uzak Chrome bağlantı adresi (http:// veya https:// ile başlayan, örneğin http://localhost:9222/json/version).", + "chrome_cdp_path_desc": "Chrome yürütülebilir dosyasının dosya yolu veya bir Chrome örneğinin uzak adresi (http:// veya https:// ile başlayan, örneğin http://localhost:9222/json/version).", "create_galleries_from_folders_desc": "Seçili ise resim içeren dizinlerden galeriler oluşturur.", "create_galleries_from_folders_label": "Resim içeren dizinlerden galeri oluştur", "db_path_head": "Veritabanı Yolu", @@ -244,7 +297,7 @@ "generated_file_naming_hash_desc": "Oluşturulacak dosya isimleri için MD5 veya oshash kullanın. Bu değeri değiştirmek, tüm sahneler için MD5/oshash hesaplaması gerektirir. Bu değeri değiştirdikten sonra mevcut tüm ek dosyalar yeniden oluşturulacak veya yer değiştirecektir. Yer değiştirme işlemleri için Görevler sayfasını ziyaret edin.", "generated_file_naming_hash_head": "Oluşturulan dosya adı imzası", "generated_files_location": "Oluşturulan ek dosyalar için dizin konumu (yer işaretleri, sahne önizlemeler, küçük resimler vb.)", - "generated_path_head": "Oluşturulan Dizin Konumu", + "generated_path_head": "Oluşturulan Yolu", "hashing": "Dosya imzası hesaplama (Hashing)", "image_ext_desc": "Resim olarak tanımlanacak dosya uzantıları listesi (virgülle ayrılmış).", "image_ext_head": "Resim Dosyası Uzantıları", @@ -253,27 +306,87 @@ "logging": "Kayıt Tutma", "maximum_streaming_transcode_size_desc": "Dönüştürülmüş video yayınları için maksimum boyut", "maximum_streaming_transcode_size_head": "Maksimum yayınlanacak dönüştürülmüş video boyutu", - "maximum_transcode_size_desc": "Dönüştürülmüş videoların maksimum boyutu", + "maximum_transcode_size_desc": "Dönüştürülmüş videolar için maksimum boyut", "maximum_transcode_size_head": "Maksimum dönüştürülmüş video boyutu", "metadata_path": { - "description": "Tam dışa verme veya Tam içe aktarma işlemi için dizin konumu", - "heading": "Üst Veri Konumu" + "description": "Tam bir dışa veya içe aktarma gerçekleştirirken kullanılan dizin konumu", + "heading": "Üstveri Yolu" }, - "number_of_parallel_task_for_scan_generation_desc": "Otomatik algılama için 0 olarak ayarlayın. Uyarı: Gerekenden fazla görev çalıştırmak %100 CPU kullanımına, performans düşüşüne ve diğer sorunlara yol açar.", - "number_of_parallel_task_for_scan_generation_head": "Eş zamanlı olarak çalıştırılacak Tarama/Oluşturma görev sayısı", - "parallel_scan_head": "Eş zamanlı Tarama/Oluşturma", + "number_of_parallel_task_for_scan_generation_desc": "Otomatik algılama için 0 olarak ayarlayın. Uyarı: %100 işlemci kullanımına ulaşmak için gerekenden daha fazla görev çalıştırmak, performansı düşürecek ve potansiyel olarak başka sorunlara neden olacaktır.", + "number_of_parallel_task_for_scan_generation_head": "Tarama/oluşturma için paralel görev sayısı", + "parallel_scan_head": "Paralel Tarama/Oluşturma", "preview_generation": "Önizleme Oluşturma", - "scraper_user_agent": "Veri Toplama Kimliği (User Agent)", + "scraper_user_agent": "Veri Toplama Kimliği", "scraper_user_agent_desc": "Veri Toplama sırasında HTTP istekleri için kullanılacak Kimliği (User Agent)", "scrapers_path": { - "description": "Veri Toplama yapılandırma dosyaları için dizin konumu", - "heading": "Veri Toplama Dosyaları Dizin Konumu" + "description": "Veri toplayıcı yapılandırma dosyalarının dizin konumu", + "heading": "Veri Toplayıcı Yolu" }, "scraping": "Veri Toplama", "sqlite_location": "SQLite veritabanı için dizin konumu (değiştirirseniz yeniden başlatma gerekir)", "video_ext_desc": "Video olarak işlem görecek dosya uzantı listesi (virgülle ayrılmış).", "video_ext_head": "Video Uzantıları", - "video_head": "Video" + "video_head": "Video", + "database": "Veritabanı", + "funscript_heatmap_draw_range": "Oluşturulan ısı haritalarına aralığı dahil et", + "blobs_storage": { + "heading": "İkili veri depolama türü" + }, + "ffmpeg": { + "hardware_acceleration": { + "heading": "FFmpeg donanım kodlaması", + "desc": "Canlı video dönüştürme için mevcut donanımı kullanır." + }, + "download_ffmpeg": { + "heading": "FFmpeg'i indir", + "description": "FFmpeg'i yapılandırma dizinine indirir ve ffmpeg ve ffprobe yollarını yapılandırma dizininden çözümlemek için temizler." + }, + "ffmpeg_path": { + "heading": "FFmpeg Yürütülebilir Yolu", + "description": "Ffmpeg yürütülebilir dosyasının yolu (yalnızca klasörün değil). Boşsa, ffmpeg ortamdan $PATH yapılandırma dizini veya $HOME/.stash aracılığıyla çözümlenecektir" + }, + "ffprobe_path": { + "heading": "FFprobe Yürütülebilir Yolu", + "description": "Ffprobe yürütülebilir dosyasının yolu (yalnızca klasörün değil). Boşsa, ffprobe ortamdan $PATH yapılandırma dizini veya $HOME/.stash aracılığıyla çözümlenecektir" + }, + "transcode": { + "output_args": { + "heading": "FFmpeg Video Dönüştürme Çıkış Değişkenleri", + "desc": "Gelişmiş: Video oluştururken çıkış alanından önce ffmpeg'e iletilecek ek değişkenler." + }, + "input_args": { + "desc": "Gelişmiş: Video oluştururken giriş alanından önce ffmpeg'e iletilecek ek değişkenler.", + "heading": "FFmpeg Video Dönüştürme Giriş Değişkenleri" + } + }, + "live_transcode": { + "output_args": { + "heading": "FFmpeg Canlı Video Dönüştürme Çıkış Değişkenleri", + "desc": "Gelişmiş: Canlı video dönüştürme sırasında çıkış alanından önce ffmpeg'e iletilecek ek değişkenler." + }, + "input_args": { + "heading": "FFmpeg Canlı Video Dönüştürme Giriş Değişkenleri", + "desc": "Gelişmiş: Canlı video dönüştürme sırasında giriş alanından önce ffmpeg'e iletilecek ek değişkenler." + } + } + }, + "gallery_cover_regex_label": "Galeri kapak deseni", + "plugins_path": { + "description": "Eklenti yapılandırma dosyalarının dizin konumu", + "heading": "Eklenti Yolu" + }, + "blobs_path": { + "heading": "İkili veri dosya sistemi yolu" + }, + "gallery_cover_regex_desc": "Regexp, bir resmi galeri kapağı olarak tanımlamak için kullanılır", + "backup_directory_path": { + "heading": "Yedek Dizin Yolu", + "description": "SQLite veritabanı dosya yedekleri için dizin konumu" + }, + "python_path": { + "heading": "Python Yürütülebilir Yolu", + "description": "Python yürütülebilir dosyasının yolu (yalnızca klasörün değil). Komut dosyası veri kazıyıcılar ve eklentiler için kullanılır. Boşsa, python ortamdan çözümlenecektir" + } }, "library": { "exclusions": "Dışta Tutulanlar", @@ -285,7 +398,9 @@ }, "plugins": { "hooks": "Kancalar", - "triggers_on": "Tetikleyiciler açık" + "triggers_on": "Şunda tetiklenir", + "installed_plugins": "Yüklü Eklentiler", + "available_plugins": "Kullanılabilir Eklentiler" }, "scraping": { "entity_metadata": "{entityType} Üst Verisi", @@ -296,7 +411,9 @@ "scrapers": "Veri Toplayıcılar", "search_by_name": "Ada göre ara", "supported_types": "Desteklenen türler", - "supported_urls": "Internet Adresleri" + "supported_urls": "İnternet Adresleri", + "installed_scrapers": "Yüklü Veri Toplayıcılar", + "available_scrapers": "Kullanılabilir Veri Toplayıcılar" }, "stashbox": { "add_instance": "Stash-box oturumu ekle", @@ -304,17 +421,17 @@ "description": "Stash-box, sahne ve oyuncuları parmak izleri ve dosya adlarına göre otomatik olarak tanımlamaya yardımcı olur.\nBağlantı noktası and API anahtarı, hesabınız sekmesinde stash-box oturumu bölümünden bulunabilir. Birden fazla oturum açacaksanız isim eklemeniz gerekmektedir.", "endpoint": "Bağlantı Noktası", "graphql_endpoint": "GraphQL bağlantı noktası", - "name": "İsim", + "name": "Ad", "title": "Stash-box Bağlantı Noktaları" }, "system": { - "transcoding": "Dönüştürme" + "transcoding": "Video Dönüştürme" }, "tasks": { "added_job_to_queue": "{operation_name} işlem kuyruğuna eklendi", "auto_tag": { - "auto_tagging_all_paths": "Tüm konumlar otomatik olarak etiketleniyor", - "auto_tagging_paths": "Bu konumlar otomatik olarak etiketleniyor" + "auto_tagging_all_paths": "Tüm yollar otomatik etiketleniyor", + "auto_tagging_paths": "Aşağıdaki yollar otomatik etiketleniyor" }, "auto_tag_based_on_filenames": "İçeriği dosya adlarına göre otomatik etiketle.", "auto_tagging": "Otomatik Etiketleme", @@ -326,7 +443,7 @@ "defaults_set": "Varsayılanlar ayarlandı. Bundan sonra Görevler sayfasındaki {action} düğmesi bu varsayılanları kullanacak.", "dont_include_file_extension_as_part_of_the_title": "Dosya uzantısını başlıkta gösterme", "empty_queue": "Şu anda çalışan bir görev yok.", - "export_to_json": "Veritabanı içeriğini JSON olarak Üst Veri dizinine kaydeder.", + "export_to_json": "Veritabanı içeriğini üstveri dizininde JSON biçiminde dışa aktarır.", "generate": { "generating_from_paths": "Bu dizinlerdeki sahneler için oluşturuluyor", "generating_scenes": "{num} {scene} için oluşturuluyor" @@ -335,7 +452,7 @@ "generate_phashes_during_scan": "Algısal dosya imzası oluştur", "generate_phashes_during_scan_tooltip": "Tekrarlayan verilerin silinmesi ve sahne tanımlaması için.", "generate_previews_during_scan": "Hareketli resim önizlemeleri oluştur", - "generate_previews_during_scan_tooltip": "Önizleme türü Hareketli Görüntü olarak ayarlanmışsa hareketli WebP önizlemeleri oluştur.", + "generate_previews_during_scan_tooltip": "Ayrıca hareketli (webp) önizlemeler oluşturun, yalnızca Sahne/İşaretleyici Duvarı Önizleme Türü, Hareketli Görüntü olarak ayarlandığında gereklidir. Gezinirken video önizlemelerinden daha az CPU kullanırlar, ancak bunlara ek olarak oluşturulurlar ve daha büyük dosyalardır.", "generate_sprites_during_scan": "Basit hareketli resimler oluştur", "generate_thumbnails_during_scan": "Resimler için küçük önizleme resimleri oluştur", "generate_video_previews_during_scan": "Önizlemeler oluştur", @@ -345,7 +462,7 @@ "and_create_missing": "ve eksik olanı oluştur", "create_missing": "Eksik olanı oluştur", "default_options": "Varsayılan Seçenekler", - "description": "Sahne üst verisini stash-box ve veri toplama kaynakları kullanarak otomatik olarak belirle.", + "description": "Sahne üstverisini stash-box ve veri toplama kaynaklarını kullanarak otomatik olarak belirle.", "explicit_set_description": "Bu seçenekler yok saymayı özellikle belirtmediğiniz sürece kullanılacaktır.", "field": "Alan", "field_behaviour": "{strategy} {field}", @@ -359,10 +476,12 @@ "source": "Kaynak", "source_options": "{source} Seçenekleri", "sources": "Kaynaklar", - "strategy": "Strateji" + "strategy": "Strateji", + "skip_multiple_matches": "Birden fazla sonucu olan eşleşmeleri atla", + "skip_multiple_matches_tooltip": "Bu etkinleştirilmezse ve birden fazla sonuç döndürülürse, eşleşmesi için rastgele bir sonuç seçilecektir" }, - "import_from_exported_json": "Üst Veri dizinine kaydedilen JSON dosyasından içeri aktar. Mevcut veritabanını tamamen siler.", - "incremental_import": "Tarih sırasına göre dışa aktarılan ZIP dosyasından içeri aktar.", + "import_from_exported_json": "Üstveri dizinindeki dışa aktarılan JSON'dan içe aktarır. Mevcut veritabanını siler.", + "incremental_import": "Sağlanan bir dışa aktarma zip dosyasından artımlı içe aktarır.", "job_queue": "Görev Kuyruğu", "maintenance": "Bakım", "migrate_hash_files": "Oluşturulan dosya adı imzası, varolan dosya imza biçimleriyle değiştirildikten sonra kullanıldı.", @@ -370,14 +489,39 @@ "only_dry_run": "Sadece genel tarama yap. Hiçbir şeyi silme", "plugin_tasks": "Eklenti Görevleri", "scan": { - "scanning_all_paths": "Tüm dizin konumlarını tarıyor", - "scanning_paths": "Bu dizin konumlarını tarıyor" + "scanning_all_paths": "Tüm yollar taranıyor", + "scanning_paths": "Aşağıdaki yollar taranıyor" }, "scan_for_content_desc": "Yeni içerik için tara ve veritabanına ekle.", - "set_name_date_details_from_metadata_if_present": "Gömülü üst veriden isim, tarih ve detayları ayarla" + "set_name_date_details_from_metadata_if_present": "Gömülü dosya üstverilerinden ad, tarih ve ayrıntıları ayarlayın", + "clean_generated": { + "description": "İlgili veritabanı girişi olmadan oluşturulan dosyaları kaldırır.", + "markers": "İşaretleyici Önizlemeleri", + "previews": "Sahne Önizlemeleri", + "blob_files": "Blob dosyaları", + "transcodes": "Sahne Video Dönüştürmeleri", + "image_thumbnails": "Resim Küçük Resimleri", + "previews_desc": "Sahne önizlemeleri ve küçük resimler", + "image_thumbnails_desc": "Resim küçük resimleri ve klipler" + }, + "migrate_blobs": { + "delete_old": "Eski verileri sil" + }, + "rescan": "Dosyaları yeniden tara", + "generate_video_covers_during_scan": "Sahne kapakları oluştur", + "generate_sprites_during_scan_tooltip": "Kolay gezinme için video oynatıcının altında görüntülenen resim dizisi.", + "optimise_database": "Tüm veritabanı dosyasını analiz ederek ve ardından yeniden oluşturarak performansı artırmaya çalışın.", + "optimise_database_warning": "Uyarı: Bu görev çalışırken, veritabanını değiştiren tüm işlemler başarısız olacaktır ve veritabanınızın boyutuna bağlı olarak tamamlanması birkaç dakika sürebilir. Ayrıca veritabanınızın büyüklüğü kadar boş disk alanı gerektirir, ancak 1,5 katı önerilir.", + "anonymise_and_download": "Veritabanının anonimleştirilmiş bir kopyasını oluşturur ve elde edilen dosyayı indirir.", + "anonymise_database": "Tüm hassas verileri anonimleştirerek veritabanının bir kopyasını yedekler dizinine alır. Bu daha sonra sorun giderme ve hata ayıklama amacıyla başkalarına sağlanabilir. Orijinal veritabanı değiştirilmez. Anonimleştirilmiş veritabanı {filename_format} dosya adı biçimini kullanır.", + "migrate_scene_screenshots": { + "delete_files": "Ekran görüntülerini sil" + }, + "rescan_tooltip": "Yoldaki her dosyayı yeniden tarayın. Dosya üstverilerini güncellemeyi zorlamak ve zip dosyalarını yeniden taramak için kullanılır.", + "generate_clip_previews_during_scan": "Resim klipleri için önizlemeler oluştur" }, "tools": { - "scene_duplicate_checker": "Kopya Sahne Denetçisi", + "scene_duplicate_checker": "Yinelenen Sahne Denetleyicisi", "scene_filename_parser": { "add_field": "Alan Ekle", "capitalize_title": "Başlığın ilk harflerini büyük harf yap", @@ -386,7 +530,7 @@ "filename": "Dosya adı", "filename_pattern": "Dosya adı Kuralı", "ignore_organized": "Düzenlenmiş sahneleri yoksay", - "ignored_words": "Yoksayılan kelimeler", + "ignored_words": "Yok sayılan kelimeler", "matches_with": "{i} ile eşleşen", "select_parser_recipe": "Derleyici Tarifi Seç", "title": "Sahne Dosya Adı Derleyicisi", @@ -398,9 +542,9 @@ "ui": { "basic_settings": "Temel Seçenekler", "custom_css": { - "description": "Değişikliklerin geçerli olması için sayfa yeniden yüklenmelidir.", - "heading": "İsteğe Uyarlanmış CSS", - "option_label": "İsteğe Uyarlanmış CSS etkinleştirildi" + "description": "Değişikliklerin geçerli olması için sayfa yeniden yüklenmelidir. Özel CSS ile Stash'in gelecekteki sürümleri arasında uyumluluk garantisi yoktur.", + "heading": "Özel CSS", + "option_label": "Özel CSS etkin" }, "delete_options": { "description": "Resimleri, galerileri ve sahneleri silerken kullanılacak varsayılan seçenekler.", @@ -411,16 +555,39 @@ } }, "desktop_integration": { - "desktop_integration": "Masaüstü Bütünleştirmesi", - "skip_opening_browser": "Web Tarayıcısını Açma", - "skip_opening_browser_on_startup": "Başlangıçta web tarayıcısının otomatik olarak açılmasını engeller" + "desktop_integration": "Masaüstü Entegrasyonu", + "skip_opening_browser": "Tarayıcıyı Açmayı Atla", + "skip_opening_browser_on_startup": "Başlangıçta tarayıcıyı otomatik açmayı atla", + "notifications_enabled": "Bildirimleri Etkinleştir", + "send_desktop_notifications_for_events": "Etkinlikler için masaüstü bildirimleri gönder" }, "editing": { "disable_dropdown_create": { - "description": "Açılır menülerden yeni veri oluşturma özelliğini kapatır", + "description": "Açılır menülerden yeni nesne oluşturma özelliğini kaldır", "heading": "Açılır menüden yeni veri oluşturmayı devre dışı bırak" }, - "heading": "Düzenleme" + "heading": "Düzenleme", + "rating_system": { + "type": { + "label": "Derecelendirme Sistemi Türü", + "options": { + "decimal": "Ondalık", + "stars": "Yıldızlar" + } + }, + "star_precision": { + "options": { + "half": "Yarım", + "quarter": "Çeyrek", + "tenth": "Onda bir", + "full": "Dolu" + }, + "label": "Derecelendirme Yıldızı Hassasiyeti" + } + }, + "max_options_shown": { + "label": "Seçili açılır menüde gösterilecek maksimum öğe sayısı" + } }, "funscript_offset": { "description": "Etkileşimli komut oynatmaları için milisaniye cinsinden süre farkı.", @@ -436,16 +603,19 @@ "write_image_thumbnails": { "description": "Resim önizlemelerini oluşturulma anında diske kaydet", "heading": "Resim önizlemelerini kaydet" + }, + "create_image_clips_from_videos": { + "heading": "Video Uzantılarını Resim Klibi Olarak Tara" } } }, - "interactive_options": "Etkileşimli Sahne Seçenekleri", + "interactive_options": "Etkileşimli Seçenekler", "language": { "heading": "Dil" }, "max_loop_duration": { "description": "Sahne oynatıcısı videoyu yeniden oynatırken ara vereceği süre - Aralıksız yeniden oynatmak için 0 seçin", - "heading": "Yeniden oynatma sırasında ara verilecek maksimum süre" + "heading": "Maksimum döngü süresi" }, "menu_items": { "description": "Gezinti çubuğunda farklı türdeki içerikleri göster veya gizle", @@ -454,13 +624,13 @@ "performers": { "options": { "image_location": { - "description": "Varsayılan oyuncu resimleri için isteğe bağlı dizin konumu. Varolan konumu kullanmak için boş bırakın", - "heading": "İsteğe Bağlı Oyuncu Resim Konumu" + "description": "Varsayılan oyuncu resimleri için özel yol. Yerleşik varsayılanları kullanmak için boş bırak", + "heading": "Özel Oyuncu Resmi Yolu" } } }, "preview_type": { - "description": "Duvar görünümündeki öğeler için ayarlar", + "description": "Varsayılan seçenek video (mp4) önizlemeleridir. Gezinirken daha az CPU kullanımı için hareketli görüntü (webp) önizlemelerini kullanabilirsiniz. Ancak bunların video önizlemelerine ek olarak oluşturulması gerekir ve daha büyük dosyalardır.", "heading": "Önizleme Türü", "options": { "animated": "Hareketli Resim", @@ -471,7 +641,7 @@ "scene_list": { "heading": "Sahne Listesi", "options": { - "show_studio_as_text": "Stüdyoları düz metin olarak göster" + "show_studio_as_text": "Stüdyo katmanını metin olarak görüntüle" } }, "scene_player": { @@ -483,13 +653,22 @@ "heading": "Seçilen oynatılırken videoyu otomatik başlat" }, "continue_playlist_default": { - "description": "Kuyruktaki video bitince sıradaki sahneyi oynat", + "description": "Video bitince sıradaki sahneyi oynat", "heading": "Varsayılan olarak oynatma listesine devam et" - } + }, + "always_start_from_beginning": "Videoyu her zaman baştan başlat", + "vr_tag": { + "heading": "VR Etiketi", + "description": "VR butonu yalnızca bu etikete sahip sahneler için görüntülenecektir." + }, + "track_activity": "Sahne Oynatma Geçmişi'ni etkinleştir", + "enable_chromecast": "Chromecast'i Etkinleştir", + "show_ab_loop_controls": "AB Loop eklenti kontrollerini göster", + "show_scrubber": "Video İlerleme Çubuğunu Göster" } }, "scene_wall": { - "heading": "Sahne / Yer İmi Duvarı", + "heading": "Sahne / İşaretleyici Duvarı", "options": { "display_title": "Başlık ve etiketleri göster", "toggle_sound": "Sesi etkinleştir" @@ -497,21 +676,84 @@ }, "slideshow_delay": { "description": "Galeri sayfasında Duvar görünümü seçilirse slayt gösterisi yapılabilir", - "heading": "Slayt Gösterisi Geciktirme" + "heading": "Slayt Gösterisi Gecikmesi (saniye)" }, - "title": "Kullanıcı Arayüzü" - } + "title": "Kullanıcı Arayüzü", + "detail": { + "heading": "Ayrıntı Sayfası", + "enable_background_image": { + "heading": "Arka plan resmini etkinleştir", + "description": "Ayrıntı sayfasında arka plan resmini göster." + }, + "show_all_details": { + "heading": "Tüm ayrıntıları göster", + "description": "Etkinleştirildiğinde, varsayılan olarak tüm içerik ayrıntıları gösterilecek ve her ayrıntı öğesi tek bir sütuna sığacak" + } + }, + "custom_javascript": { + "heading": "Özel Javascript", + "option_label": "Özel Javascript etkin", + "description": "Değişikliklerin etkili olması için sayfanın yeniden yüklenmesi gerekir. Özel Javascript ile Stash'in gelecekteki sürümleri arasında uyumluluk garantisi yoktur." + }, + "custom_locales": { + "heading": "Özel yerelleştirme", + "option_label": "Özel yerelleştirme etkin", + "description": "Bireysel yerel ayar dizelerini geçersiz kılın. Ana liste için https://github.com/stashapp/stash/blob/develop/ui/v2.5/src/locales/en-GB.json adresine bakın. Değişikliklerin etkili olması için sayfanın yeniden yüklenmesi gerekir." + }, + "studio_panel": { + "heading": "Stüdyo görünümü", + "options": { + "show_child_studio_content": { + "heading": "Alt stüdyo içeriğini görüntüle", + "description": "Stüdyo görünümündeyken alt stüdyolardaki içeriği de görüntüleyin" + } + } + }, + "tag_panel": { + "options": { + "show_child_tagged_content": { + "heading": "Alt etiket içeriğini görüntüle", + "description": "Etiket görünümündeyken alt etiketlerdeki içeriği de görüntüleyin" + } + }, + "heading": "Etiket görünümü" + }, + "abbreviate_counters": { + "heading": "Sayaçları kısalt", + "description": "Kartlarda ve ayrıntı görünümü sayfalarında sayaçları kısalt, örneğin “1831”, “1.8K” olarak biçimlendirilecektir." + }, + "minimum_play_percent": { + "description": "Bir sahnenin oynatma sayısı artırılmadan önce oynatılması gereken sürenin yüzdesi.", + "heading": "Minimum Oynatma Yüzdesi" + }, + "image_wall": { + "heading": "Resim Duvarı", + "margin": "Kenar boşluğu (piksel)", + "direction": "Yön" + }, + "handy_connection": { + "connect": "Bağlan", + "status": { + "heading": "Handy Bağlantı Durumu" + } + }, + "use_stash_hosted_funscript": { + "heading": "Funscript'leri doğrudan sun" + } + }, + "advanced_mode": "Gelişmiş Mod" }, "configuration": "Yapılandırma", "countables": { "files": "{count, plural, one {Dosya} other {Dosyalar}}", "galleries": "{count, plural, one {Galeri} other {Galeriler}}", "images": "{count, plural, one {Resim} other {Resimler}}", - "markers": "{count, plural, one {Yer İmi} other {Yer İmleri}}", + "markers": "{count, plural, one {İşaretleyici} other {İşaretleyiciler}}", "performers": "{count, plural, one {Oyuncu} other {Oyuncular}}", "scenes": "{count, plural, one {Sahne} other {Sahneler}}", "studios": "{count, plural, one {Stüdyo} other {Stüdyolar}}", - "tags": "{count, plural, one {Etiket} other {Etiketler}}" + "tags": "{count, plural, one {Etiket} other {Etiketler}}", + "groups": "{count, plural, one {Grup} other {Gruplar}}" }, "country": "Ülke", "cover_image": "Kapak Resmi", @@ -535,7 +777,10 @@ "not_between": "arasında olmayan", "not_equals": "eşit değildir", "not_matches_regex": "kurallı ifadeyle eşleşmeyen", - "not_null": "boş olmayan" + "not_null": "boş olmayan", + "format_string_excludes": "{criterion} {modifierString} {valueString} (hariç {excludedString})", + "format_string_excludes_depth": "{criterion} {modifierString} {valueString} (hariç {excludedString}) (+{depth, plural, =-1 {tüm} other {{depth}}})", + "format_string_depth": "{criterion} {modifierString} {valueString} (+{depth, plural, =-1 {tüm} other {{derinlik}}})" }, "custom": "İsteğe Bağlı", "date": "Tarih", @@ -573,11 +818,12 @@ "label": "Sığdırmak için büyüt" }, "scroll_mode": { - "description": "Geçici olarak başka mod kullanmak için Shift tuşuna basın.", + "description": "Geçici olarak diğer modu kullanmak için Shift tuşuna basılı tutun.", "label": "Kaydırma Modu", "pan_y": "Y Ekseninde Çevir", "zoom": "Yakınlaştırma" - } + }, + "page_header": "Sayfa {page} / {total}" }, "merge_tags": { "destination": "Hedef Noktası", @@ -586,36 +832,41 @@ "overwrite_filter_confirm": "Kayıtlı {entityName} sorgusunun üzerine yazmak istediğinizden emin misiniz?", "scene_gen": { "force_transcodes": "Dönüştürülmüş video oluşturmayı zorla", - "force_transcodes_tooltip": "Dönüştürülmüş video dosyaları, web tarayıcınız desteklenmeyen bir videoyu görüntülemeye çalışırken oluşturulur. Bu seçeneği işaretlerseniz, web tarayıcınız o videoyu desteklese bile yine de dönüştürülmüş video dosyası oluşturur.", + "force_transcodes_tooltip": "Varsayılan olarak, video yalnızca video dosyası tarayıcı tarafından desteklenmediğinde dönüştürülür. Etkinleştirildiğinde, video dosyası tarayıcı tarafından destekleniyorsa bile video dönüştürülür.", "image_previews": "Hareketli Resim Önizlemeleri", - "image_previews_tooltip": "Hareketli WebP önizlemeleri, Önizleme Türü sadece Hareketli Resim olarak seçilmişse gereklidir.", + "image_previews_tooltip": "Ayrıca hareketli (webp) önizlemeler oluşturun, yalnızca Sahne/İşaretleyici Duvarı Önizleme Türü, Hareketli Görüntü olarak ayarlandığında gereklidir. Gezinirken video önizlemelerinden daha az CPU kullanırlar, ancak bunlara ek olarak oluşturulurlar ve daha büyük dosyalardır.", "interactive_heatmap_speed": "Etkileşimli sahneler için ısı haritaları ve hız kayıtları oluştur", - "marker_image_previews": "Yer İmi Hareketli Resim Önizlemeleri", + "marker_image_previews": "İşaretleyici Hareketli Resim Önizlemeleri", "marker_image_previews_tooltip": "Hareketli Yer İmi WebP önizlemeleri, Önizleme Türü sadece Hareketli Resim olarak seçilmişse gereklidir.", - "marker_screenshots": "Yer İmi Ekran Görüntüleri", + "marker_screenshots": "İşaretleyici Ekran Görüntüleri", "marker_screenshots_tooltip": "Yer İmi hareketsiz JPG resimleri, Önizleme Türü sadece Hareketsiz Resim olarak seçilmişse gereklidir.", - "markers": "Yer İmi Önizlemeleri", + "markers": "İşaretleyici Önizlemeleri", "markers_tooltip": "Belirlenen zamandan itibaren başlayan 20 saniyelik videolar.", "overwrite": "Varolan oluşturulmuş dosyaların üzerine yaz", "phash": "Algısal dosya imzaları (kopya dosyaları tespit için)", - "preview_exclude_end_time_desc": "Sahne önizlemelerinden son x saniyeyi çıkarır. Bu değer, saniye cinsinden veya toplam sahne uzunluğunun yüzdesi (örneğin %2) cinsinden belirlenebilir.", - "preview_exclude_end_time_head": "Son bölümü çıkar", - "preview_exclude_start_time_desc": "Sahne önizlemelerinden ilk x saniyeyi çıkarır. Bu değer, saniye cinsinden veya toplam sahne uzunluğunun yüzdesi (örneğin %2) cinsinden belirlenebilir.", - "preview_exclude_start_time_head": "İlk bölümü çıkar", + "preview_exclude_end_time_desc": "Sahne önizlemelerinde son x saniyeyi hariç tut. Bu, saniye cinsinden bir değer veya toplam sahne süresinin yüzdesi (örneğin %2) olabilir.", + "preview_exclude_end_time_head": "Bitiş zamanını hariç tut", + "preview_exclude_start_time_desc": "Sahne önizlemelerinde ilk x saniyeyi hariç tut. Bu, saniye cinsinden bir değer veya toplam sahne süresinin yüzdesi (örneğin %2) olabilir.", + "preview_exclude_start_time_head": "Başlangıç zamanını hariç tut", "preview_generation_options": "Önizleme Oluşturma Seçenekleri", "preview_options": "Önizleme Seçenekleri", - "preview_preset_desc": "Bu ön ayar, oluşturulacak önizleme boyutunu, kalitesini ve düzenleme süresini belirler. \"Yavaş\" dışındaki ayarların kullanılması tavsiye edilmez.", + "preview_preset_desc": "Ön ayar; önizleme oluşturmanın boyutunu, kalitesini ve kodlama süresini düzenler. “Yavaş” dışındaki ön ayarların azalan getirileri vardır ve tavsiye edilmez.", "preview_preset_head": "Düzenleme ön ayarı önizlemesi", "preview_seg_count_desc": "Önizleme dosyalarındaki bölüm sayısı.", "preview_seg_count_head": "Önizlemedeki bölüm sayısı", - "preview_seg_duration_desc": "Saniye cinsinden her önizleme bölümünün süresi.", + "preview_seg_duration_desc": "Her önizleme bölümünün saniye cinsinden süresi.", "preview_seg_duration_head": "Bölüm önizleme süresi", "sprites": "Basit Sahne Hareketli Görüntüleri", - "sprites_tooltip": "Hareketli Görüntüler (basit sahne hareketli görüntüleri için)", + "sprites_tooltip": "Kolay gezinme için video oynatıcının altında görüntülenen resim seti.", "transcodes": "Dönüştürülmüş Videolar", - "transcodes_tooltip": "Desteklenmeyen video biçimleri için MP4 dönüştürmeleri", + "transcodes_tooltip": "MP4 video dönüştürmeleri tüm içerikler için önceden oluşturulur; yavaş CPU'lar için kullanışlıdır ancak çok daha fazla disk alanı gerektirir", "video_previews": "Önizlemeler", - "video_previews_tooltip": "Fare sahne üzerinde iken video önizlemeleri" + "video_previews_tooltip": "Fare sahne üzerinde iken video önizlemeleri", + "covers": "Sahne kapakları", + "override_preview_generation_options": "Önizleme Oluşturma Seçeneklerini Geçersiz Kıl", + "image_thumbnails": "Resim Önizlemeleri", + "override_preview_generation_options_desc": "Bu işlem için Önizleme Oluşturma Seçeneklerini geçersiz kılın. Varsayılanlar Sistem -> Önizleme Oluşturma bölümünde ayarlanır.", + "clip_previews": "Resim Klibi Önizlemeleri" }, "scenes_found": "{count} sahne bulundu", "scrape_entity_query": "{entity_type} Veri Toplama Sorgusu", @@ -623,7 +874,27 @@ "scrape_results_existing": "Mevcut", "scrape_results_scraped": "Toplanan", "set_image_url_title": "Resim Internet Adresi", - "unsaved_changes": "Değişiklikler kaydedilmedi. Sayfadan ayrılmak istediğinize emin misiniz?" + "unsaved_changes": "Değişiklikler kaydedilmedi. Sayfadan ayrılmak istediğinize emin misiniz?", + "clear_play_history_confirm": "Oynatma geçmişini temizlemek istediğinize emin misiniz?", + "merge": { + "source": "Kaynak" + }, + "dont_show_until_updated": "Sonraki güncellemeye kadar gösterme", + "clear_o_history_confirm": "O geçmişini temizlemek istediğinize emin misiniz?", + "imagewall": { + "direction": { + "description": "Sütun veya satır tabanlı düzen.", + "row": "Satır", + "column": "Sütun" + }, + "margin_desc": "Her resmin etrafındaki kenar boşluğu piksellerinin sayısı." + }, + "performers_found": "{count} oyuncu bulundu", + "create_new_entity": "Yeni {entity} oluştur", + "reassign_files": { + "destination": "Şuraya yeniden ata" + }, + "reassign_entity_title": "{count, plural, one {Yeniden ata {singularEntity}} other {Yeniden ata {pluralEntity}}}" }, "dimensions": "Boyutlar", "director": "Yönetmen", @@ -645,18 +916,29 @@ "medium": "Orta" }, "search_accuracy_label": "Arama Kesinliği", - "title": "Kopya Sahneler" + "title": "Yinelenen Sahneler", + "duration_options": { + "equal": "Eşit" + }, + "duration_diff": "Maksimum Süre Farkı", + "select_all_but_largest_file": "En büyük dosya hariç, yinelenen her gruptaki her dosyayı seç", + "select_all_but_largest_resolution": "En yüksek çözünürlüğe sahip dosya hariç, yinelenen her gruptaki her dosyayı seç", + "select_none": "Hiçbirini seçme", + "select_oldest": "Yinelenen gruptaki en eski dosyayı seç", + "select_options": "Seçme Ayarları…", + "select_youngest": "Yinelenen gruptaki en yeni dosyayı seç", + "only_select_matching_codecs": "Yalnızca yinelenen gruptaki tüm kodlayıcılar eşleşiyorsa seç" }, "duration": "Süre", "effect_filters": { "aspect": "Yön", "blue": "Mavi", - "blur": "Bulanıklaştır", + "blur": "Bulanıklık", "brightness": "Parlaklık", - "contrast": "Zıtlık", + "contrast": "Kontrast", "gamma": "Gamma", "green": "Yeşil", - "hue": "Ton", + "hue": "Renk tonu", "name": "Filtreler", "name_transforms": "Dönüşümler", "red": "Kırmızı", @@ -665,7 +947,7 @@ "rotate": "Döndür", "rotate_left_and_scale": "Sola Döndür & Boyutlandır", "rotate_right_and_scale": "Sağa Döndür & Boyutlandır", - "saturation": "Canlılık", + "saturation": "Doygunluk", "scale": "Boyutlandır", "warmth": "Sıcaklık" }, @@ -676,19 +958,19 @@ "favourite": "Favori", "file": "dosya", "file_info": "Dosya Bilgisi", - "file_mod_time": "Dosya Düzenleme Tarihi", + "file_mod_time": "Dosya Değiştirme Tarihi", "files": "dosyalar", "filesize": "Dosya Boyutu", "filter": "Filtre", "filter_name": "Filtre adı", "filters": "Filtreler", - "framerate": "Resim Karesi Hızı", - "frames_per_second": "Saniyede {value} resim", + "framerate": "Kare Hızı", + "frames_per_second": "{value} fps", "galleries": "Galeriler", "gallery": "Galeri", "gallery_count": "Galeri Sayısı", "hair_color": "Saç Rengi", - "hasMarkers": "Yer İmi Var", + "hasMarkers": "İşaretleyicileri Var", "height": "Boy", "help": "Yardım", "image": "Resim", @@ -696,17 +978,17 @@ "images": "Resimler", "include_parent_tags": "Bir üst etiketleri de ekle", "include_sub_studios": "Bağlı stüdyoları da ekle", - "include_sub_tags": "Bir alt etiketleri de ekle", + "include_sub_tags": "Alt etiketleri dahil et", "instagram": "Instagram", "interactive": "Etkileşimli", "interactive_speed": "Etkileşim hızı", "isMissing": "Eksik", - "library": "Kitaplık", + "library": "Kütüphane", "loading": { "generic": "Yükleniyor…" }, - "marker_count": "Yer İmi Sayısı", - "markers": "Yer İmleri", + "marker_count": "İşaretleyici Sayısı", + "markers": "İşaretleyiciler", "measurements": "Beden Ölçüleri", "media_info": { "audio_codec": "Ses Kodlayıcı", @@ -720,11 +1002,14 @@ }, "phash": "PHash", "stream": "Yayınla", - "video_codec": "Video Kodlayıcı" + "video_codec": "Video Kodlayıcı", + "play_duration": "Oynatma Süresi", + "play_count": "Oynatma Sayısı", + "o_count": "O Sayısı" }, - "megabits_per_second": "Saniyede {value} megabit", + "megabits_per_second": "{value} mbps", "metadata": "Üst Veri", - "name": "İsim", + "name": "Ad", "new": "Yeni", "none": "Hiçbiri", "o_counter": "O-Sayacı", @@ -734,20 +1019,21 @@ "first": "İlk", "last": "Son", "next": "Sonraki", - "previous": "Önceki" + "previous": "Önceki", + "current_total": "{current} / {total}" }, "parent_of": "{children} öğesinin üstü", "parent_studios": "Üst Stüdyolar", "parent_tag_count": "Üst Etiket Sayısı", "parent_tags": "Üst Etiketler", "part_of": "{parent} öğesinin parçası", - "path": "Konum", + "path": "Yol", "performer": "Oyuncu", "performer_count": "Oyuncu Sayısı", "performer_image": "Oyuncu Resmi", "performer_tags": "Oyuncu Etiketleri", "performers": "Oyuncular", - "piercings": "Piercings", + "piercings": "Piercing'ler", "queue": "Oynatma Listesi", "random": "Rastgele", "rating": "Derecelendirme", @@ -762,7 +1048,8 @@ "search_filter": { "name": "Filtre", "saved_filters": "Kaydedilmiş filtreler", - "update_filter": "Filtreyi Güncelle" + "update_filter": "Filtreyi Güncelle", + "edit_filter": "Filtreyi Düzenle" }, "seconds": "Saniye", "settings": "Ayarlar", @@ -770,10 +1057,12 @@ "confirm": { "almost_ready": "Ayarlamaları neredeyse tamamlamak üzereyiz. Lütfen bu ayarları onaylayın. Eğer düzenleme yapmak isterseniz geri giderek ayarları değiştirebilirsiniz. Herşey tamamsa Onayla tuşuna basın.", "configuration_file_location": "Yapılandırma dosyası konumu:", - "database_file_path": "Veritabanı dosya konumu", + "database_file_path": "Veritabanı dosya yolu", "generated_directory": "Oluşturulan dizin", "nearly_there": "Bitmek üzere!", - "stash_library_directories": "Stash kitaplık dizinleri" + "stash_library_directories": "Stash kütüphane dizinleri", + "blobs_directory": "İkili veri dizini", + "cache_directory": "Önbellek dizini" }, "creating": { "creating_your_system": "Sisteminiz oluşturuluyor" @@ -781,12 +1070,15 @@ "errors": { "something_went_wrong": "Hata! Birşeyler yanlış gitti!", "something_went_wrong_description": "Hatanın sizin belirlediğiniz özel ayarlardan kaynaklanıyor olabilir, lütfen geriye giderek o ayarları değiştirin. Tekrar hata alırsanız {githubLink} veya {discordLink} adreslerini kullanarak sorunu bildirin (Şimdilik yalnızca İngilizce).", - "something_went_wrong_while_setting_up_your_system": "Sisteminizi ayarlarken birşeyler yanlış gitti ve bu hata mesajını aldık: {error}" + "something_went_wrong_while_setting_up_your_system": "Sisteminizi ayarlarken birşeyler yanlış gitti ve bu hata mesajını aldık: {error}", + "unexpected_error": "Beklenmeyen bir hata oluştu: {error}", + "unable_to_retrieve_system_status": "Sistem durumu alınamıyor: {error}" }, "folder": { - "up_dir": "Bir dizin üste çık" + "up_dir": "Bir dizin üste çık", + "file_path": "Dosya dizini" }, - "github_repository": "Github repository", + "github_repository": "Github deposu", "migrate": { "backup_database_path_leave_empty_to_disable_backup": "Veritabanı yedekleme konumu (yedeklemeyi devre dışı bırakmak için bu alanı boş bırakın):", "backup_recommended": "Yer değiştirme işlemi yapmadan önce varolan veritabanınızı yedeklemeniz önerilir. Eğer isterseniz otomatik olarak {defaultBackupPath} konumuna veritabanınızın bir yedeğini oluşturabiliriz.", @@ -797,20 +1089,27 @@ "migration_irreversible_warning": "Veritabanı şema yer değiştirme işlemi geri alınamaz. Veritabanınız yer değiştirme işlemi tamamlandıktan sonra önceki Stash sürümleriyle uyumsuz olacaktır.", "migration_required": "Yer değiştirme işlemi gerekli", "perform_schema_migration": "Şema yer değiştirme işlemi uygula", - "schema_too_old": "Mevcut Stash veritabanı şema sürümünüz {databaseSchema} ve {appSchema} sürümü ile değiştirilmesi gerekiyor. Stash'ın bu sürümü değiştirme işlemi yapılmadan çalışmayacaktır." + "schema_too_old": "Mevcut Stash veritabanı şema sürümünüz {databaseSchema} ve {appSchema} sürümü ile değiştirilmesi gerekiyor. Stash'ın bu sürümü değiştirme işlemi yapılmadan çalışmayacaktır.", + "migration_notes": "Geçiş Notları" }, "paths": { "database_filename_empty_for_default": "veritabanı adı (varsayılan için boş bırakın)", "description": "Sırada porno koleksiyonunuzun hangi dizinde olduğunun, stash veritabanının ve oluşturulan ek dosyaların nereye kaydedileceğinin belirlenmesi var. Bu ayarları sonradan değiştirebilirsiniz.", "path_to_generated_directory_empty_for_default": "oluşturulan ek dosyalar için dizin konumu (varsayılan için boş bırakın)", - "set_up_your_paths": "Konumlarınızı belirleyin", - "stash_alert": "Herhangi bir kitaplık konumu seçilmedi. Stash'a hiçbir şey eklenmeyecek. Emin misiniz?", + "set_up_your_paths": "Yollarınızı ayarlayın", + "stash_alert": "Herhangi bir kütüphane konumu seçilmedi. Hiçbir medya Stash'e taranamayacak. Emin misiniz?", "where_can_stash_store_its_database": "Stash veritabanı nereye kaydedilsin?", "where_can_stash_store_its_database_description": "Stash porno arşiviniz için SQLite veritabanı kullanır. Bu veritabanı, varsayılan olarak stash-go.sqlite dizininde, yapılandırma dosyasıyla aynı yerde oluşturulur. Bu dizini değiştirmek isterseniz, yapılandırma dosyasının bulunduğu dizinin tam konumunu girin.", "where_can_stash_store_its_generated_content": "Stash için oluşturulan ek dosyalar nereye kaydedilsin?", "where_can_stash_store_its_generated_content_description": "Stash, önizlemeler için küçük hareketli resimler ve videolar oluşturur. Ayrıca web tarayıcınızın desteklemediği video dosyaları için dönüştürülmüş video dosyaları da oluşturulur. Bu amaçla, varsayılan olarak yapılandırma dosyasının bulunduğu generated dizini kullanılır. Bu dizini değiştirmek isterseniz, yapılandırma dosyasının bulunduğu dizinin tam konumunu girin. Eğer dizin bulunamazsa otomatik olarak oluşturulacaktır.", "where_is_your_porn_located": "Porno koleksiyonunuz hangi dizinde?", - "where_is_your_porn_located_description": "Fotoğraf ve videoların bulunduğu dizinleri ekleyin. Stash, tarama sırasında bu dizinleri kullanacaktır." + "where_is_your_porn_located_description": "Fotoğraf ve videoların bulunduğu dizinleri ekleyin. Stash, tarama sırasında bu dizinleri kullanacaktır.", + "where_can_stash_store_blobs": "Stash veritabanı ikili verilerini nerede saklayabilir?", + "where_can_stash_store_cache_files": "Stash önbellek dosyalarını nerede saklayabilir?", + "path_to_cache_directory_empty_for_default": "önbellek dizini yolu (varsayılan için boş bırakın)", + "store_blobs_in_database": "Blob'ları veritabanında depola", + "path_to_blobs_directory_empty_for_default": "blobs dizini yolu (varsayılan için boş bırakın)", + "where_can_stash_store_cache_files_description": "Stash, HLS/DASH canlı video dönüştürme gibi bazı işlevlerin çalışabilmesi için geçici dosyalara yönelik bir önbellek dizini gerektirir. Varsayılan olarak, Stash yapılandırma dosyanızı içeren dizin içinde bir cache dizini oluşturacaktır. Bunu değiştirmek istiyorsanız, lütfen mutlak veya göreceli (geçerli çalışma dizinine) bir yol girin. Mevcut değilse, Stash bu dizini oluşturacaktır." }, "stash_setup_wizard": "Stash Kurulum Sihirbazı", "success": { @@ -823,11 +1122,13 @@ "support_us": "Bizi destekleyin", "thanks_for_trying_stash": "Stash'i denediğiniz için teşekkürler!", "welcome_contrib": "Ayrıca her türlü kod katkınızı (hata düzeltme, geliştirme, yeni özellikler ekleme), uygulamayla ilgili her türlü görüş-öneri-yorum-sorunuzu bekliyoruz. Ayrıntıları uygulama içindeki Yardım belgesinde bulabilirsiniz.", - "your_system_has_been_created": "Sistem oluşturma başarılı!" + "your_system_has_been_created": "Sistem oluşturma başarılı!", + "download_ffmpeg": "Ffmpeg'i indir", + "missing_ffmpeg": "Gerekli ffmpeg ikili dosyası eksik. Aşağıdaki kutuyu işaretleyerek yapılandırma dizininize otomatik olarak indirebilirsiniz. Alternatif olarak, Sistem Ayarlarında ffmpeg ve ffprobe ikili dosyalarına yollar sağlayabilirsiniz. Stash'in çalışması için bu ikili dosyaların mevcut olması gerekir." }, "welcome": { "config_path_logic_explained": "Stash (config.yml) yapılandırma dosyasını ilk olarak mevcut dizinde bulmaya çalışır. Eğer bulamazsa, $HOME/.stash/config.yml dizinini (Windows işletim sistemi için %USERPROFILE%\\.stash\\config.yml dizini) araştırır. Öte yandan -c '' veya --config '' seçeneklerini kullanarak özelleştirilmiş bir yapılandırma dosyası da kullanabilirsiniz.", - "in_current_stash_directory": "$HOME/.stash dizini altında", + "in_current_stash_directory": "{path} yolunda:", "in_the_current_working_directory": "Mevcut dizinde", "next_step": "Eğer yeni bir sistem oluşturmak için hazırsanız, yapılandırma dosyasının nereye kaydedileceğini seçin ve Sonraki düğmesine basın.", "store_stash_config": "Stash yapılandırmasını nereye kaydetmek istiyorsunuz?", @@ -842,11 +1143,15 @@ "welcome_to_stash": "Stash uygulamasına hoşgeldiniz" }, "stash_id": "Stash Kimliği (ID)", - "stash_ids": "Stash Kimlikleri (ID)", + "stash_ids": "Stash Kimliği", "stats": { "image_size": "Toplam resim boyutu", "scenes_duration": "Toplam sahne süresi", - "scenes_size": "Toplam sahne boyutu" + "scenes_size": "Toplam sahne boyutu", + "total_play_count": "Toplam Oynatma Sayısı", + "total_play_duration": "Toplam Oynatma Süresi", + "scenes_played": "Oynatılan Sahneler", + "total_o_count": "Toplam O Sayısı" }, "status": "Durum: {statusText}", "studio": "Stüdyo", @@ -875,14 +1180,244 @@ "started_auto_tagging": "Otomatik etiketleme başladı", "started_generating": "Oluşturma işlemi başladı", "started_importing": "İçe aktarma başladı", - "updated_entity": "{entity} güncellendi" + "updated_entity": "{entity} güncellendi", + "merged_scenes": "Birleştirilmiş sahneler", + "reassign_past_tense": "Dosya yeniden atandı" }, "total": "Toplam", "true": "Doğru", "twitter": "Twitter", - "updated_at": "Güncellenme Zamanı", - "url": "Internet Adresi (URL)", + "updated_at": "Güncellenme Tarihi", + "url": "URL", "videos": "Videolar", "weight": "Kilo", - "years_old": "yaşında" + "years_old": "yaşında", + "between_and": "ve", + "connection_monitor": { + "websocket_connection_reestablished": "Websocket bağlantısı yeniden kuruldu", + "websocket_connection_failed": "Websocket bağlantısı kurulamıyor: Ayrıntılar için tarayıcı konsoluna bakın" + }, + "image_index": "Resim #", + "stash_id_endpoint": "Stash ID Uç Noktası", + "studio_tagger": { + "add_new_studios": "Yeni Stüdyo Ekle", + "batch_add_studios": "Toplu Stüdyo Ekle", + "config": { + "excluded_fields": "Hariç tutulan alanlar:", + "edit_excluded_fields": "Hariç Tutulan Alanları Düzenle", + "no_fields_are_excluded": "Hiçbir alan hariç tutulmadı", + "create_parent_label": "Ana stüdyo oluştur", + "these_fields_will_not_be_changed_when_updating_studios": "Stüdyolar güncellenirken bu alanlar değişmeyecektir." + }, + "batch_update_studios": "Stüdyoları Toplu Güncelle", + "failed_to_save_studio": "Stüdyo kaydedilemedi \"{studio}\"", + "query_all_studios_in_the_database": "Veritabanındaki tüm stüdyolar", + "status_tagging_studios": "Durum: Stüdyolar etiketleniyor", + "current_page": "Geçerli sayfa", + "create_or_tag_parent_studios": "Eksik olan ana stüdyoları oluştur ya da mevcut ana stüdyoları etiketle", + "no_results_found": "Sonuç bulunamadı.", + "number_of_studios_will_be_processed": "{studio_count} stüdyo işlenecek", + "network_error": "Ağ Hatası", + "refresh_tagged_studios": "Etiketli stüdyoları yenile", + "update_studio": "Stüdyoyu Güncelle", + "studio_already_tagged": "Stüdyo zaten etiketlenmiş", + "update_studios": "Stüdyoları Güncelle", + "studio_selection": "Stüdyo seçimi", + "studio_successfully_tagged": "Stüdyo başarıyla etiketlendi", + "tag_status": "Etiket Durumu", + "untagged_studios": "Etiketlenmemiş stüdyolar", + "updating_untagged_studios_description": "Etiketlenmemiş stüdyoları güncellemek, stashid'si olmayan tüm stüdyoları eşleştirmeye ve üstverileri güncellemeye çalışacaktır.", + "name_already_exists": "Ad zaten mevcut" + }, + "blobs_storage_type": { + "database": "Veritabanı", + "filesystem": "Dosya sistemi" + }, + "orientation": "Yönelim", + "package_manager": { + "add_source": "Kaynak Ekle", + "check_for_updates": "Güncelleştirmeleri Denetle", + "description": "Açıklama", + "edit_source": "Kaynağı Düzenle", + "hide_unselected": "Seçili olmayanları gizle", + "no_packages": "Paket bulunamadı", + "install": "Yükle", + "no_sources": "Hiçbir kaynak yapılandırılamadı", + "installed_version": "Kurulu Sürüm", + "latest_version": "Son Sürüm", + "no_upgradable": "Yükseltilebilir paket bulunamadı", + "package": "Paket", + "show_all": "Tümünü göster", + "source": { + "name": "Ad", + "url": "Kaynak URL'si", + "local_path": { + "heading": "Yerel Dizin", + "description": "Bu kaynak için paketlerin depolanacağı ilgili yol. Bunu değiştirmenin, paketlerin elle taşınmasını gerektirdiğini unutmayın." + } + }, + "uninstall": "Kaldır", + "unknown": "", + "update": "Güncelle", + "version": "Sürüm", + "confirm_delete_source": "Kaynağı silmek istediğinize emin misiniz {name} ({url})?", + "required_by": "{packages} için gerekli" + }, + "penis": "Penis", + "penis_length": "Penis Uzunluğu", + "penis_length_cm": "Penis Uzunluğu (cm)", + "performer_age": "Oyuncu Yaşı", + "performer_tagger": { + "config": { + "excluded_fields": "Hariç tutulan alanlar:", + "edit_excluded_fields": "Hariç Tutulan Alanları Düzenle", + "no_fields_are_excluded": "Hiçbir alan hariç tutulmadı", + "these_fields_will_not_be_changed_when_updating_performers": "Oyuncular güncellenirken bu alanlar değiştirilmeyecektir." + }, + "current_page": "Geçerli sayfa", + "network_error": "Ağ Hatası", + "no_results_found": "Sonuç bulunamadı.", + "tag_status": "Etiket Durumu", + "status_tagging_job_queued": "Durum: Etiketleme işi kuyruğa alındı", + "batch_add_performers": "Toplu Oyuncu Ekle", + "batch_update_performers": "Toplu Oyuncu Güncelle", + "failed_to_save_performer": "Oyuncu kaydedilemedi \"{performer}\"", + "number_of_performers_will_be_processed": "{performer_count} oyuncu işlenecek", + "performer_selection": "Oyuncu seçimi", + "performer_successfully_tagged": "Oyuncu başarıyla etiketlendi:", + "update_performer": "Oyuncuyu Güncelle", + "update_performers": "Oyuncuları Güncelle", + "untagged_performers": "Etiketlenmemiş oyuncular", + "query_all_performers_in_the_database": "Veritabanındaki tüm oyuncular", + "name_already_exists": "Ad zaten mevcut", + "status_tagging_performers": "Durum: Oyuncular etiketleniyor", + "updating_untagged_performers_description": "Etiketlenmemiş oyuncuları güncellemek, stashid'si olmayan tüm oyuncuları eşleştirmeye ve üstverileri güncellemeye çalışacaktır.", + "add_new_performers": "Yeni Oyuncular Ekle", + "refresh_tagged_performers": "Etiketlenmiş oyuncuları yenile", + "performer_already_tagged": "Oyuncu zaten etikelenmiş" + }, + "photographer": "Fotoğrafçı", + "play_count": "Oynatma Sayısı", + "play_duration": "Oynatma Süresi", + "play_history": "Oynatma Geçmişi", + "plays": "{value} oynatma", + "primary_file": "Birincil dosya", + "release_notes": "Sürüm Notları", + "scene_code": "Stüdyo Kodu", + "scene_created_at": "Sahne Oluşturulma Tarihi", + "scene_date": "Sahne Tarihi", + "stashbox": { + "submission_failed": "Gönderim başarısız oldu", + "submission_successful": "Gönderim başarılı", + "selected_stash_box": "Seçilen Stash-Box uç noktası", + "source": "Stash-Box Kaynağı", + "go_review_draft": "Taslağı incelemek için {endpoint_name} adresine gidin." + }, + "statistics": "İstatistikler", + "studio_count": "Stüdyo Sayısı", + "primary_tag": "Birincil Etiket", + "include_sub_studio_content": "Alt stüdyo içeriğini dahil et", + "include_sub_tag_content": "Alt etiket içeriğini dahil et", + "include_sub_groups": "Alt grupları dahil et", + "include_sub_group_content": "Alt grup içeriğini dahil et", + "second": "Saniye", + "file_count": "Dosya Sayısı", + "files_amount": "{value} dosya", + "height_cm": "Boy (cm)", + "errors": { + "header": "Hata", + "invalid_javascript_string": "Geçersiz javascript kodu: {error}", + "loading_type": "{type} yüklenirken hata oluştu", + "something_went_wrong": "Bir şeyler ters gitti.", + "lazy_component_error_help": "Stash'i yakın zamanda güncellediyseniz, lütfen sayfayı yeniden yükleyin ya da tarayıcınızın önbelleğini temizleyin.", + "invalid_json_string": "Geçersiz JSON dizesi: {error}" + }, + "sub_group_order": "Alt Grup Sırası", + "validation": { + "end_time_before_start_time": "Bitiş zamanı, başlangıç zamanından büyük veya ona eşit olmalıdır", + "blank": "${path} boş olmamalıdır", + "date_invalid_form": "${path} YYYY-AA-GG biçiminde olmalıdır", + "required": "${path} zorunlu bir alandır", + "unique": "${path} benzersiz olmalıdır" + }, + "description": "Açıklama", + "sub_groups": "Alt Gruplar", + "sub_group": "Alt Grup", + "sub_group_count": "Alt Grup Sayısı", + "date_format": "YYYY-AA-GG", + "datetime_format": "YYYY-AA-GG SS:DD", + "folder": "Klasör", + "front_page": { + "types": { + "premade_filter": "Hazır Filtre", + "saved_filter": "Kayıtlı Filtre" + } + }, + "handy_connection_status": { + "connecting": "Bağlanıyor", + "disconnected": "Bağlantı kesildi", + "error": "Handy'e bağlanırken hata oluştu", + "ready": "Hazır", + "uploading": "Komut dosyası yükleniyor" + }, + "o_count": "O Sayısı", + "o_history": "O Geçmişi", + "parent_studio": "Ana Stüdyo", + "perceptual_similarity": "Algısal Benzerlik (pHash)", + "recently_released_objects": "Yeni Çıkanlar {objects}", + "studio_and_parent": "Stüdyo & Ana Stüdyo", + "studio_tags": "Stüdyo Etiketleri", + "subsidiary_studio_count": "Bağlı Stüdyo Sayısı", + "type": "Tür", + "urls": "İnternet Adresleri", + "unknown_date": "Bilinmeyen tarih", + "video_codec": "Görüntü Çözücü", + "view_all": "Tümünü Görüntüle", + "weight_kg": "Ağırlık (kg)", + "containing_group": "İçeren Grup", + "containing_groups": "İçerdiği Gruplar", + "empty_server": "Bu sayfadaki önerileri görüntülemek için sunucunuza bazı sahneler ekleyin.", + "recently_added_objects": "Son Eklenenler {objects}", + "zip_file_count": "Zip Dosyası Sayısı", + "last_played_at": "Son Oynatma Tarihi", + "criterion_modifier_values": { + "only": "Sadece" + }, + "history": "Geçmiş", + "existing_value": "mevcut değer", + "gender": "Cinsiyet", + "gender_types": { + "FEMALE": "Kadın", + "INTERSEX": "İnterseks", + "MALE": "Erkek", + "NON_BINARY": "Non-Binary", + "TRANSGENDER_FEMALE": "Transseksüel Kadın", + "TRANSGENDER_MALE": "Transseksüel Erkek" + }, + "group": "Grup", + "group_count": "Grup Sayısı", + "group_scene_number": "Sahne Numarası", + "groups": "Gruplar", + "audio_codec": "Ses Kodlayıcı", + "chapters": "Bölümler", + "circumcised": "Sünnet", + "appears_with": "Birlikte Oynadıkları", + "circumcised_types": { + "CUT": "Sünnetli", + "UNCUT": "Sünnetsiz" + }, + "index_of_total": "{index}/{total}", + "performer_favorite": "Oyuncu Favorilere Eklendi", + "scene_updated_at": "Sahne Güncelleme Tarihi", + "ignore_auto_tag": "Otomatik Etiketi Yok Say", + "playdate_recorded_no": "Oynatma Tarihi Kaydedilmedi", + "duplicated_phash": "Yinelenen (pHash)", + "captions": "Alt yazılar", + "containing_group_count": "İçerdiği Grup Sayısı", + "last_o_at": "Son O Tarihi", + "sub_group_of": "{parent} öğesinin alt grubu", + "time_end": "Bitiş Zamanı", + "custom_fields": { + "value": "Değer" + } } diff --git a/ui/v2.5/src/locales/uk-UA.json b/ui/v2.5/src/locales/uk-UA.json index cc3487d4cd0..05612f2cb8e 100644 --- a/ui/v2.5/src/locales/uk-UA.json +++ b/ui/v2.5/src/locales/uk-UA.json @@ -9,7 +9,7 @@ "apply": "Застосувати", "auto_tag": "Авто-тегування", "backup": "Резервна Копія", - "browse_for_image": "Вибрати Картинки", + "browse_for_image": "Обрати зображення…", "cancel": "Відмінити", "clean": "Почистити", "clear": "Очистити", @@ -102,7 +102,46 @@ "temp_disable": "Тимчасово відключити…", "temp_enable": "Тимчасово включити…", "use_default": "Використовувати за замовчуванням", - "view_random": "Дивитися випадкове" + "view_random": "Дивитися випадкове", + "swap": "Обмін", + "add_sub_groups": "Додати суб-групу", + "encoding_image": "Кодування зображення…", + "migrate_scene_screenshots": "Мігрувати скріншоти Сцен", + "optimise_database": "Оптимізувати Базу даних", + "add_manual_date": "Додати дату вручну", + "add_o": "Додати O", + "add_play": "Додати перегляд", + "anonymise": "Анонімізувати", + "create_chapters": "Створити Розділ", + "create_parent_studio": "Створити батьківську студію", + "download_anonymised": "Завантажити анонімізовано", + "enable": "Включити", + "disable": "Вимкнути", + "migrate_blobs": "Мігрувати Blobs", + "reload": "Перезавантажити", + "remove_date": "Видалити дату", + "split": "Розділити", + "submit_stash_box": "Надіслати до Stash-Box", + "view_history": "Переглянути історію", + "reassign": "Перепризначити", + "set_cover": "Встановити як обкладинку", + "reset_play_duration": "Скинути тривалість відтворення", + "reset_resume_time": "Скинути час відновлення відтворення", + "reset_cover": "Відновити обкладинку за замовчуванням", + "tasks": { + "import_warning": "Ви впевнені, що хочете імпортувати? Це видалить базу даних і повторно імпортує дані з вашого експортованого метаданих.", + "clean_confirm_message": "Ви впевнені, що хочете виконати очищення? Це видалить інформацію з бази даних і згенерований вміст для всіх сцен і галерей, які більше не знайдені у файловій системі.", + "dry_mode_selected": "Вибрано тестовий режим. Видалення не буде виконано, лише ведення журналу." + }, + "remove_from_containing_group": "Видалити з Групи", + "choose_date": "Обрати дату", + "assign_stashid_to_parent_studio": "Призначити Stash ID існуючій батьківській студії та оновити метадані", + "clean_generated": "Очистити згенеровані файли", + "clear_date_data": "Очистити дані дати", + "copy_to_clipboard": "Копіювати до буфера обміну", + "set_back_image": "Зворотне зображення…", + "set_front_image": "Переднє зображення…", + "unset": "Скинути" }, "actions_name": "Дії", "age": "Вік", @@ -126,12 +165,41 @@ "query_mode_path": "Шлях", "query_mode_path_desc": "Використовує повний путь до файлу", "set_tag_label": "Встановити теги", - "source": "Джерело" + "source": "Джерело", + "blacklist_desc": "Елементи чорного списку виключаються з запитів. Зверніть увагу, що вони є регулярними виразами і нечутливі до регістру. Певні символи необхідно екранувати зворотнім слешем: {chars_require_escape}", + "mark_organized_desc": "Негайно позначити сцену як Організовану після натискання кнопки Зберегти.", + "mark_organized_label": "Позначати як організоване під час збереження", + "query_mode_dir": "Каталог", + "query_mode_label": "Режим запиту", + "set_tag_desc": "Додайте мітки до сцени, або замінивши, або об'єднавши з існуючими мітками на сцені.", + "show_male_desc": "Перемикати, чи будуть доступні чоловічі виконавці для позначення.", + "set_cover_desc": "Замінити обкладинку сцени, якщо вона знайдена.", + "set_cover_label": "Встановити обкладинку сцени", + "show_male_label": "Показати чоловічих виконавців", + "errors": { + "blacklist_duplicate": "Дублікат елемента чорного списку" + } }, "results": { "duration_unknown": "Тривалість невідома", - "match_failed_no_result": "Результати відсутні" - } + "match_failed_no_result": "Результати відсутні", + "phash_matches": "{count} PHashes співпадає", + "unnamed": "Без назви", + "duration_off": "Тривалість відрізняється щонайменше на {number}s", + "fp_matches": "Тривалість збігається", + "fp_matches_multi": "Тривалість збігається з {matchCount}/{durationsLength} відбитками", + "hash_matches": "{hash_type} збігається", + "match_failed_already_tagged": "Сцена вже позначена", + "match_success": "Сцена успішно позначена", + "fp_found": "{fpCount, plural, =0 {Нових збігів відбитків не знайдено} other {Знайдено # нових збігів відбитків}}" + }, + "verb_match_fp": "Порівняти відбитки", + "verb_matched": "Співпадінь", + "verb_scrape_all": "Скрейпити все", + "verb_toggle_config": "{toggle} {configuration}", + "verb_toggle_unmatched": "{toggle} не співпавші сцени", + "verb_submit_fp": "Надіслати {fpCount, plural, one{# Fingerprint} other{# Fingerprints}}", + "noun_query": "Запит" }, "config": { "about": { @@ -139,7 +207,14 @@ "latest_version": "Найновіша версія", "stash_discord": "Приєднуйтесь до нашого {url} каналу", "stash_open_collective": "Підтримати нас на {url}", - "version": "Версія" + "version": "Версія", + "release_date": "Дата релізу:", + "stash_home": "Домівка Stash {url}", + "build_time": "Дата збірки:", + "build_hash": "Геш збірки:", + "latest_version_build_hash": "Геш збірки останньої версії:", + "new_version_notice": "[НОВЕ]", + "stash_wiki": "Stash {url} сторінка" }, "categories": { "changelog": "Список змін", @@ -151,7 +226,9 @@ "services": "Сервіси", "system": "Система", "tasks": "Задачі", - "tools": "Інструменти" + "tools": "Інструменти", + "about": "Про програму", + "scraping": "Збирання даних" }, "dlna": { "allow_temp_ip": "Дозволити {tempIP}", @@ -165,7 +242,15 @@ "recent_ip_addresses": "Нещодавні IP-адреси", "server_display_name_desc": "Відображуване ім'я DLNA-сервера. Якщо пусте, {server_name} буде використано за замовчуванням.", "successfully_cancelled_temporary_behaviour": "Тимчасова поведінка успішно скасована", - "until_restart": "до рестарту" + "until_restart": "до рестарту", + "enabled_dlna_temporarily": "Включити DLNA тимчасово", + "disabled_dlna_temporarily": "Вимкнути DLNA тимчасово", + "server_display_name": "Відображуване ім'я серверу", + "server_port": "Порт серверу", + "network_interfaces_desc": "Інтерфейси для доступу до сервера DLNA. Порожній список призводить до запуску на всіх інтерфейсах. Потрібно перезапустити DLNA після зміни.", + "server_port_desc": "Порт для запуску сервера DLNA. Потрібен перезапуск DLNA після зміни.", + "video_sort_order_desc": "Порядок сортування відео за замовчуванням.", + "video_sort_order": "Порядок сортування відео за замовчуванням" }, "general": { "auth": { @@ -184,38 +269,1152 @@ "password": "Пароль", "stash-box_integration": "Інтеграція stash-box", "username": "Ім'я користувача", - "username_desc": "Ім'я користувача для доступу до Stash. Залишіть пустим, щоб вимкнути аутентифікацію" + "username_desc": "Ім'я користувача для доступу до Stash. Залишіть пустим, щоб вимкнути аутентифікацію", + "maximum_session_age_desc": "Максимальний час простою до завершення сесії входу, в секундах. Потрібен перезапуск.", + "credentials": { + "description": "Облікові дані для обмеження доступу до Stash.", + "heading": "Облікові дані" + }, + "password_desc": "Пароль для доступу до Stash. Залиште порожнім, щоб вимкнути аутентифікацію користувача" }, "backup_directory_path": { "description": "Директорія для зберігання резервних копій бази даних SQLite", "heading": "Шлях до директорії з резервними копіями" }, - "cache_location": "Шлях до директорії з кешем", + "cache_location": "Розташування каталогу кешу. Обов'язково, якщо використовується потокова передача через HLS (наприклад, на пристроях Apple) або DASH.", "cache_path_head": "Шлях кешу", "calculate_md5_and_ohash_label": "Рахувати контрольну суму MD5 для відео", "check_for_insecure_certificates": "Перевірити на ненадійні сертифікати", "chrome_cdp_path": "Шлях до Chrome CDP", - "chrome_cdp_path_desc": "Шлях до виконуваного файлу Chrome, або видаленна адреса (починається з http:// або https://, наприклад, http://localhost:9222/json/version) до екземпляру Chrome", + "chrome_cdp_path_desc": "Шлях до виконуваного файлу Chrome, або видаленна адреса (починається з http:// або https://, наприклад, http://localhost:9222/json/version) до екземпляру Chrome.", "create_galleries_from_folders_desc": "Якщо так, то створює галереї з папок із зображеннями.", "create_galleries_from_folders_label": "Створити галереї з папок із зображеннями", "db_path_head": "Шлях до бази даних", "excluded_image_gallery_patterns_head": "Виключені паттерни Зображень/Галерей", "excluded_video_patterns_head": "Виключені паттерни для відео", - "gallery_ext_desc": "Розділений комою список розширень файлів, які можуть бути ідентифіковані, як ZIP-файли галерей", + "gallery_ext_desc": "Розділений комою список розширень файлів, які можуть бути ідентифіковані, як ZIP-файли галерей.", "gallery_ext_head": "Розширення ZIP-файлів з галереями", "generated_path_head": "Згенерований Шлях", "image_ext_desc": "Розділений комою список розширень файлів, які можуть бути ідентифікованими, як зображення.", "image_ext_head": "Розширення Зображень", "include_audio_head": "Включити аудіо", "metadata_path": { - "heading": "Шлях до мета-інформації" + "heading": "Шлях до мета-інформації", + "description": "Розташування каталогу, що використовується під час виконання повного експорту або імпорту" }, "number_of_parallel_task_for_scan_generation_head": "Кількість паралельних задач для сканування/генерації", "parallel_scan_head": "Паралельне сканування/генерація", - "preview_generation": "Генерація прев'ю" + "preview_generation": "Генерація прев'ю", + "scraper_user_agent_desc": "Рядок User-Agent, що використовується під час виконання HTTP-запитів сканування", + "scrapers_path": { + "description": "Розташування каталогу файлів конфігурації сканерів", + "heading": "Шлях до сканерів" + }, + "scraping": "Збирання даних", + "generated_file_naming_hash_desc": "Використовуйте MD5 або oshash для генерації імен файлів. Зміна цього параметра вимагає, щоб усі сцени мали заповнене відповідне значення MD5/oshash. Після зміни цього параметра існуючі згенеровані файли потрібно буде перенести або згенерувати заново. Перейдіть на сторінку Завдання (Tasks) для виконання міграції.", + "sqlite_location": "Розташування файлу для бази даних SQLite (вимагає перезапуску). УВАГА: зберігання бази даних на іншій системі, ніж сервер Stash (наприклад, через мережу), не підтримується!", + "blobs_storage": { + "description": "Місце зберігання двійкових даних, таких як обкладинки сцен, зображення виконавців, студій і тегів. Після зміни цього параметра існуючі дані потрібно перенести, використовуючи завдання \"Migrate Blobs\". Перейдіть на сторінку Завдання (Tasks) для виконання міграції.", + "heading": "Тип зберігання бінарних даних" + }, + "blobs_path": { + "description": "Де у файловій системі зберігати двійкові дані. Застосовується лише при використанні типу зберігання блобів Filesystem. УВАГА: зміна цього параметра вимагає ручного переміщення існуючих даних.", + "heading": "Шлях до файлової системи бінарних даних" + }, + "calculate_md5_and_ohash_desc": "Обчислювати контрольну суму MD5 додатково до oshash. Увімкнення цієї функції сповільнить початкове сканування. Хеш для назви файлу повинен бути встановлений на oshash, щоб вимкнути обчислення MD5.", + "ffmpeg": { + "ffmpeg_path": { + "description": "Шлях до виконуваного файлу ffmpeg (а не лише до папки). Якщо залишити порожнім, ffmpeg буде визначено з середовища через $PATH, каталог конфігурації або $HOME/.stash", + "heading": "Шлях до виконуваного файлу FFmpeg" + }, + "download_ffmpeg": { + "description": "Завантажує FFmpeg до каталогу конфігурації та очищує шляхи ffmpeg і ffprobe, щоб вони визначалися з каталогу конфігурації.", + "heading": "Завантажити FFmpeg" + }, + "ffprobe_path": { + "description": "Шлях до виконуваного файлу ffprobe (а не лише до папки). Якщо залишити порожнім, ffprobe буде визначено з середовища через $PATH, каталог конфігурації або $HOME/.stash", + "heading": "Шлях до виконуваного файлу FFprobe" + }, + "transcode": { + "output_args": { + "desc": "Розширені: Додаткові аргументи для передачі ffmpeg перед полем виводу під час генерації відео.", + "heading": "Вихідні аргументи для транскодування FFmpeg" + }, + "input_args": { + "desc": "Розширені: Додаткові аргументи для передачі ffmpeg перед полем вводу під час генерації відео.", + "heading": "Вхідні аргументи для транскодування FFmpeg" + } + }, + "hardware_acceleration": { + "desc": "Використовує доступне обладнання для кодування відео для живого транскодування.", + "heading": "Апаратне кодування FFmpeg" + }, + "live_transcode": { + "input_args": { + "desc": "Розширені: Додаткові аргументи для передачі ffmpeg перед полем вводу під час живого транскодування відео.", + "heading": "Вхідні аргументи для Live Transcode FFmpeg" + }, + "output_args": { + "desc": "Розширені: Додаткові аргументи для передачі ffmpeg перед полем виводу під час живого транскодування відео.", + "heading": "Вихідні аргументи для Live Transcode FFmpeg" + } + } + }, + "funscript_heatmap_draw_range_desc": "Відобразити діапазон руху на осі y створеної теплової карти. Існуючі теплові карти потрібно буде перегенерувати після зміни.", + "maximum_transcode_size_desc": "Максимальний розмір для згенерованих транскодувань", + "generated_files_location": "Розташування каталогу для згенерованих файлів (позначки сцен, попередні перегляди сцен, спрайти тощо)", + "maximum_transcode_size_head": "Максимальний розмір транскодування", + "check_for_insecure_certificates_desc": "Деякі сайти використовують ненадійні SSL-сертифікати. Якщо прапорець знято, скрейпер пропускає перевірку таких сертифікатів і дозволяє збір даних із цих сайтів. Якщо під час скрейпінгу виникає помилка сертифіката, зніміть цей прапорець.", + "excluded_image_gallery_patterns_desc": "Регулярні вирази для файлів/шляхів зображень і галерей, які потрібно виключити зі сканування та додати до очищення", + "directory_locations_to_your_content": "Розташування каталогів із вашим контентом", + "database": "База даних", + "excluded_video_patterns_desc": "Регулярні вирази для відеофайлів/шляхів, які потрібно виключити зі сканування та додати до очищення", + "funscript_heatmap_draw_range": "Включити діапазон у згенеровані теплові карти", + "gallery_cover_regex_desc": "Регулярний вираз, що використовується для ідентифікації зображення як обкладинки галереї", + "gallery_cover_regex_label": "Шаблон обкладинки галереї", + "generated_file_naming_hash_head": "Геш імені згенерованого файлу", + "include_audio_desc": "Включати аудіопотік під час створення попередніх переглядів.", + "maximum_streaming_transcode_size_desc": "Максимальний розмір для транскодованих потоків", + "logging": "Журналювання", + "number_of_parallel_task_for_scan_generation_desc": "Встановіть 0 для автоматичного визначення. Увага: виконання більшої кількості завдань, ніж потрібно для досягнення 100% завантаження CPU, знижує продуктивність і може викликати інші проблеми.", + "python_path": { + "description": "Шлях до виконуваного файлу python (а не лише до папки). Використовується для скриптів-збирачів та плагінів. Якщо залишити порожнім, python буде визначено з середовища", + "heading": "Шлях до виконуваного файлу Python" + }, + "plugins_path": { + "description": "Розташування каталогу файлів конфігурації плагінів", + "heading": "Шлях до плагінів" + }, + "video_ext_head": "Розширення відео", + "hashing": "Гешування", + "heatmap_generation": "Генерація теплової карти для Funscript", + "maximum_streaming_transcode_size_head": "Максимальний розмір транскодування для стрімінгу", + "video_head": "Відео", + "scraper_user_agent": "User Agent сканера", + "video_ext_desc": "Список розширень файлів, розділений комами, які будуть ідентифіковані як відео." + }, + "advanced_mode": "Розширений режим", + "tasks": { + "identify": { + "source_options": "{source} Опції", + "strategy": "Стратегія", + "and_create_missing": "і створити відсутні", + "description": "Автоматично налаштовувати метадані сцени за допомогою stash-box та джерел сканера.", + "create_missing": "Створити відсутні", + "default_options": "Опції за замовчуванням", + "explicit_set_description": "Наступні параметри будуть використані, якщо не перевизначені в параметрах, що стосуються конкретного джерела.", + "field": "Поле", + "heading": "Ідентифікувати", + "identifying_from_paths": "Ідентифікація сцен за наступними шляхами", + "identifying_scenes": "Ідентифікація {num} {scene}", + "include_male_performers": "Включати чоловічих виконавців", + "skip_multiple_matches_tooltip": "Якщо це не ввімкнено і повертається більше одного результату, буде випадково вибрано один для відповідності", + "skip_multiple_matches": "Пропустити збіги, які мають більше ніж один результат", + "source": "Джерело", + "skip_single_name_performers_tooltip": "Якщо це не ввімкнено, виконавці з поширеними іменами, такими як Samantha або Olga, будуть співставлятися", + "skip_single_name_performers": "Пропустити виконавців з одним ім'ям без уточнень", + "tag_skipped_matches_tooltip": "Створіть тег на кшталт 'Identify: Multiple Matches', який можна відфільтрувати у перегляді Scene Tagger і вручну вибрати правильний збіг", + "tag_skipped_performer_tooltip": "Створіть тег на кшталт 'Identify: Single Name Performer', який можна відфільтрувати у перегляді Scene Tagger і вибрати, як обробляти таких виконавців", + "sources": "Джерела", + "field_behaviour": "{strategy} {field}", + "field_options": "Опції полів", + "tag_skipped_matches": "Позначити пропущені збіги як", + "set_organized": "Встановити прапорець впорядкованості", + "set_cover_images": "Встановити обкладинки", + "tag_skipped_performers": "Позначити пропущених виконавців як" + }, + "generate_previews_during_scan_tooltip": "Також створюйте анімовані (webp) прев’ю, необхідні лише тоді, коли тип прев’ю для стінки сцен/маркерів встановлено як анімоване зображення. Під час перегляду вони використовують менше ресурсів CPU, ніж відео-прев’ю, але створюються додатково до них і займають більше місця.", + "anonymise_database": "Створює копію бази даних у директорії резервних копій (backups), анонімізуючи всі конфіденційні дані. Цю копію можна надати іншим для вирішення проблем та налагодження. Оригінальна база даних не змінюється. Анонімізована база даних використовує формат імені файлу {filename_format}.", + "generate_video_previews_during_scan": "Генерувати попередні перегляди", + "generate_sprites_during_scan_tooltip": "Набір зображень, що відображаються нижче відеоплеєра для зручної навігації.", + "set_name_date_details_from_metadata_if_present": "Встановити ім'я, дату, деталі з вбудованих метаданих файлу", + "anonymise_and_download": "Створює анонімізовану копію бази даних та завантажує отриманий файл.", + "added_job_to_queue": "Додано {operation_name} до черги завдань", + "anonymising_database": "Анонімізація бази даних", + "auto_tag_based_on_filenames": "Автоматично додавати мітки до контенту на основі шляхів до файлів.", + "auto_tag": { + "auto_tagging_paths": "Автоматичне додавання міток для наступних шляхів", + "auto_tagging_all_paths": "Автоматичне додавання міток для всіх шляхів" + }, + "auto_tagging": "Автоматичне додавання міток", + "backing_up_database": "Резервне копіювання бази даних", + "backup_and_download": "Виконує резервне копіювання бази даних і завантажує отриманий файл.", + "clean_generated": { + "description": "Видаляє згенеровані файли без відповідного запису в базі даних.", + "blob_files": "Blob файли", + "image_thumbnails": "Ескізи зображень", + "markers": "Попередні перегляди позначок", + "image_thumbnails_desc": "Ескізи зображень та кліпи", + "sprites": "Спрайти сцен", + "previews_desc": "Попередні перегляди сцен та ескізи", + "previews": "Попередні перегляди сцен", + "transcodes": "Транскодування сцен" + }, + "cleanup_desc": "Перевірте відсутні файли та видаліть їх з бази даних. Це необоротна дія.", + "defaults_set": "Параметри за замовчуванням встановлені та будуть використовуватися при натисканні кнопки {action} на сторінці Завдань.", + "empty_queue": "Наразі жодне завдання не виконується.", + "dont_include_file_extension_as_part_of_the_title": "Не включати розширення файлу як частину заголовка", + "export_to_json": "Експортує вміст бази даних у формат JSON у каталозі метаданих.", + "generate": { + "generating_from_paths": "Генерація для сцен із наступних шляхів", + "generating_scenes": "Генерація для {num} {scene}" + }, + "generate_clip_previews_during_scan": "Генерувати попередній перегляд для кліпів із зображеннями", + "generate_desc": "Генерувати допоміжні зображення, спрайти, відео, vtt та інші файли.", + "generate_phashes_during_scan": "Генерувати перцептуальні геші", + "generate_phashes_during_scan_tooltip": "Для дедуплікації та ідентифікації сцен.", + "generate_previews_during_scan": "Генерувати анімовані попередні перегляди зображень", + "generate_sprites_during_scan": "Генерувати спрайти для скрубера", + "generate_video_covers_during_scan": "Генерувати обкладинки сцен", + "generate_video_previews_during_scan_tooltip": "Генерувати попередні перегляди відео, які відтворюються при наведенні на сцену", + "generate_thumbnails_during_scan": "Генерувати ескізи для зображень", + "generated_content": "Згенерований контент", + "maintenance": "Обслуговування", + "incremental_import": "Інкрементальний імпорт з наданого ZIP-файлу експорту.", + "import_from_exported_json": "Імпорт з експортованого JSON у каталозі метаданих. Очищає наявну базу даних.", + "migrate_hash_files": "Використовується після зміни гешу іменування згенерованих файлів для перейменування існуючих згенерованих файлів у новий формат гешу.", + "migrate_scene_screenshots": { + "description": "Перенесіть скріншоти сцен у нову систему зберігання блобів. Цю міграцію слід виконати після оновлення існуючої системи до версії 0.20. За бажанням можна видалити старі скріншоти після міграції.", + "overwrite_existing": "Перезаписати існуючі blobs даними скриншотів", + "delete_files": "Видалити файли знімків екрана" + }, + "migrations": "Міграції", + "optimise_database": "Спробувати покращити продуктивність, аналізуючи та потім перебудовуючи весь файл бази даних.", + "only_dry_run": "Виконати лише тестовий прогон. Нічого не видаляти.", + "optimise_database_warning": "Увага: під час виконання цього завдання будь-які операції, які змінюють базу даних, зазнають невдачі, і залежно від розміру вашої бази даних, це може зайняти кілька хвилин. Також потрібно щонайменше стільки ж вільного місця на диску, скільки займає ваша база даних, але рекомендується мати 1.5x від цього обсягу.", + "scan_for_content_desc": "Сканувати на наявність нового контенту та додавати його до бази даних.", + "rescan_tooltip": "Пересканувати кожен файл у вказаному шляху. Використовується для примусового оновлення метаданих файлів і пересканування zip-файлів.", + "migrate_blobs": { + "description": "Мігруйте блоби до поточної системи зберігання блобів. Цю міграцію слід виконати після зміни системи зберігання блобів. За бажанням можна видалити старі дані після міграції.", + "delete_old": "Видалити старі дані" + }, + "backup_database": "Виконує резервне копіювання бази даних у каталог резервних копій із форматом імені файлу {filename_format}", + "data_management": "Управління даними", + "job_queue": "Черга Завдань", + "scan": { + "scanning_all_paths": "Сканування всіх шляхів", + "scanning_paths": "Сканування наступних шляхів" + }, + "plugin_tasks": "Завдання Плагінів", + "rescan": "Пересканувати файли" + }, + "library": { + "exclusions": "Виключення", + "gallery_and_image_options": "Опції галереї та зображення", + "media_content_extensions": "Розширення медіа контенту" + }, + "tools": { + "scene_filename_parser": { + "escape_chars": "Використовуйте \\ для екранування літеральних символів", + "filename": "Ім'я файлу", + "whitespace_chars_desc": "Ці символи будуть замінені на пробіли в заголовку", + "capitalize_title": "Зробити Заголовок з Великої Літери", + "display_fields": "Відображення Полів", + "add_field": "Додати Поле", + "filename_pattern": "Шаблон Імені Файлу", + "ignore_organized": "Ігнорувати впорядковані сцени", + "ignored_words": "Проігноровані слова", + "whitespace_chars": "Символи Пробілів", + "matches_with": "Збіги з {i}", + "select_parser_recipe": "Вибрати Рецепт Парсера", + "title": "Парсер Імені Файлу Сцени" + }, + "scene_tools": "Інструменти Сцени", + "scene_duplicate_checker": "Перевірка сцен на дублікати" + }, + "ui": { + "scene_player": { + "options": { + "continue_playlist_default": { + "description": "Відтворювати наступну сцену в черзі після завершення відео", + "heading": "Продовжити відтворення плейлиста за замовчуванням" + }, + "auto_start_video_on_play_selected": { + "description": "Автоматично запускати відтворення відео сцени при відтворенні з черги, або при відтворенні вибраних чи випадкових сцен зі сторінки Scenes", + "heading": "Автоматично запускати відео при виборі відтворення" + }, + "disable_mobile_media_auto_rotate": "Вимкнути автоматичне обертання медіа у повноекранному режимі на мобільних пристроях", + "show_ab_loop_controls": "Показувати елементи керування плагіна AB Loop", + "vr_tag": { + "description": "Кнопка VR буде відображатися лише для сцен з цією міткою.", + "heading": "Тег VR" + }, + "always_start_from_beginning": "Завжди починати відтворення відео з початку", + "enable_chromecast": "Увімкнути Chromecast", + "show_scrubber": "Показати скруббер", + "track_activity": "Увімкнути історію відтворення сцен", + "auto_start_video": "Автозапуск відео" + }, + "heading": "Плеєр сцени" + }, + "handy_connection_key": { + "description": "Зручний ключ підключення для використання з інтерактивними сценами. Встановлення цього ключа дозволить Stash ділитися інформацією про поточну сцену з handyfeeling.com", + "heading": "Ключ з'єднання Handy" + }, + "scroll_attempts_before_change": { + "description": "Кількість спроб прокрутки перед переходом до наступного/попереднього елемента. Застосовується лише для режиму прокрутки Pan Y.", + "heading": "Спроби прокрутки перед переходом" + }, + "custom_locales": { + "description": "Замініть окремі рядки локалі. Дивіться https://github.com/stashapp/stash/blob/develop/ui/v2.5/src/locales/en-GB.json для основного списку. Сторінку потрібно перезавантажити, щоб зміни набрали чинності.", + "heading": "Користувацька Локалізація", + "option_label": "Увімкнено Користувацьку Локалізацію" + }, + "scene_list": { + "options": { + "show_studio_as_text": "Відображати накладення студії як текст" + }, + "heading": "Вигляд сітки" + }, + "editing": { + "max_options_shown": { + "label": "Максимальна кількість елементів для відображення у випадаючих списках" + }, + "disable_dropdown_create": { + "description": "Видалити можливість створювати нові об'єкти з випадаючих списків", + "heading": "Вимкнути створення через випадаюче меню" + }, + "heading": "Редагування", + "rating_system": { + "type": { + "label": "Тип Системи Оцінювання", + "options": { + "decimal": "Десяткова", + "stars": "Зірки" + } + }, + "star_precision": { + "options": { + "tenth": "0.1", + "half": "Половина", + "full": "Повний", + "quarter": "Чверть" + }, + "label": "Точність Зірок Оцінки" + } + } + }, + "studio_panel": { + "options": { + "show_child_studio_content": { + "description": "У перегляді студії відображати контент з підстудій також", + "heading": "Відображати вміст підстудій" + } + }, + "heading": "Перегляд студії" + }, + "images": { + "options": { + "create_image_clips_from_videos": { + "heading": "Сканувати відеофайли з розширеннями як кліпи зображень", + "description": "Коли у бібліотеці вимкнено Відео, відеофайли (файли з розширеннями відео) будуть скануватися як кліпи зображень." + }, + "write_image_thumbnails": { + "description": "Записувати ескізи зображень на диск під час їх генерації в реальному часі", + "heading": "Записати ескізи зображень" + } + }, + "heading": "Зображення" + }, + "delete_options": { + "options": { + "delete_generated_supporting_files": "Видаляти згенеровані допоміжні файли за замовчуванням", + "delete_file": "Видаляти файл за замовчуванням" + }, + "description": "Налаштування за замовчуванням при видаленні зображень, галерей та сцен.", + "heading": "Видалити Опції" + }, + "funscript_offset": { + "description": "Зміщення часу в мілісекундах для відтворення інтерактивних скриптів.", + "heading": "Зміщення Funscript (мс)" + }, + "abbreviate_counters": { + "description": "Скорочувати лічильники на картках і сторінках перегляду деталей, наприклад, \"1831\" буде відформатовано до \"1.8K\".", + "heading": "Скоротити Лічильники" + }, + "custom_javascript": { + "description": "Сторінку потрібно перезавантажити, щоб зміни набрали чинності. Сумісність між власним Javascript і майбутніми версіями Stash не гарантується.", + "heading": "Користувацький Javascript", + "option_label": "Увімкнено Користувацький Javascript" + }, + "minimum_play_percent": { + "description": "Відсоток часу, який сцена повинна бути відтворена, щоб її кількість переглядів була збільшена.", + "heading": "Мінімальний відсоток відтворення" + }, + "show_tag_card_on_hover": { + "description": "Показувати картку мітки при наведенні на бейджі міток", + "heading": "Підказки інструменту картки тегів" + }, + "use_stash_hosted_funscript": { + "description": "Коли ця опція ввімкнена, funscripts будуть передаватися безпосередньо зі Stash на ваш пристрій Handy без використання стороннього сервера Handy. Це вимагає, щоб Stash був доступний з вашого пристрою Handy, а також щоб було згенеровано API-ключ, якщо для Stash налаштовані облікові дані.", + "heading": "Безпосередньо подавати funscripts" + }, + "slideshow_delay": { + "description": "Слайдшоу доступне в галереях під час перегляду в режимі стіни", + "heading": "Затримка слайд-шоу (секунди)" + }, + "custom_css": { + "description": "Сторінку потрібно перезавантажити, щоб зміни набрали чинності. Сумісність між власним CSS і майбутніми версіями Stash не гарантується.", + "heading": "Користувацький CSS", + "option_label": "Увімкнено Користувацький CSS" + }, + "desktop_integration": { + "send_desktop_notifications_for_events": "Надсилати сповіщення на робочий стіл про події", + "skip_opening_browser_on_startup": "Пропустити автоматичне відкриття браузера під час запуску", + "desktop_integration": "Інтеграція з Робочим Столом", + "notifications_enabled": "Увімкнути Сповіщення", + "skip_opening_browser": "Пропустити Відкриття Браузера" + }, + "menu_items": { + "description": "Показати або приховати різні типи контенту на панелі навігації", + "heading": "Пункти меню" + }, + "tag_panel": { + "options": { + "show_child_tagged_content": { + "description": "У перегляді міток відображати контент з підміток також", + "heading": "Відображати вміст підтега" + } + }, + "heading": "Перегляд тегів" + }, + "detail": { + "show_all_details": { + "description": "Якщо увімкнено, всі деталі контенту будуть відображатися за замовчуванням, і кожен елемент деталей буде поміщатися в один стовпець", + "heading": "Показати всі деталі" + }, + "compact_expanded_details": { + "description": "При увімкненні ця опція відображатиме розширені деталі, зберігаючи компактне представлення", + "heading": "Компактні розгорнуті деталі" + }, + "enable_background_image": { + "description": "Відображати фонове зображення на сторінці деталей.", + "heading": "Увімкнути фонове зображення" + }, + "heading": "Сторінка Деталей" + }, + "preview_type": { + "description": "За замовчуванням використовуються відео-прев’ю (mp4). Для меншого навантаження на CPU під час перегляду можна використовувати анімовані зображення (webp) як прев’ю. Однак їх потрібно генерувати додатково до відео-прев’ю, і вони займають більше місця на диску.", + "options": { + "animated": "Анімоване зображення", + "static": "Статичне зображення" + }, + "heading": "Тип попереднього перегляду" + }, + "max_loop_duration": { + "description": "Максимальна тривалість сцени, за якої програвач сцени буде зациклювати відео – 0 для вимкнення", + "heading": "Максимальна тривалість повторюваного сегмента" + }, + "performers": { + "options": { + "image_location": { + "description": "Користувацький шлях для зображень виконавців за замовчуванням. Залиште порожнім, щоб використовувати вбудовані значення за замовчуванням", + "heading": "Користувацький шлях до зображення виконавця" + } + } + }, + "image_lightbox": { + "heading": "Лайтбокс зображень" + }, + "image_wall": { + "direction": "Напрямок", + "heading": "Стіна зображень", + "margin": "Поле (пікселі)" + }, + "interactive_options": "Інтерактивні Опції", + "language": { + "heading": "Мова" + }, + "basic_settings": "Основні Налаштування", + "handy_connection": { + "server_offset": { + "heading": "Зміщення сервера" + }, + "connect": "Підключити", + "status": { + "heading": "Статус з'єднання Handy" + }, + "sync": "Синхронізувати" + }, + "scene_wall": { + "heading": "Стіна Сцен / Маркерів", + "options": { + "display_title": "Відображати заголовок та теги", + "toggle_sound": "Увімкнути звук" + } + }, + "title": "Користувацький інтерфейс" + }, + "plugins": { + "hooks": "Хуки", + "available_plugins": "Доступні плагіни", + "installed_plugins": "Встановлені плагіни", + "triggers_on": "Тригери увімкнені" + }, + "logs": { + "log_level": "Рівень журналу" + }, + "scraping": { + "excluded_tag_patterns_desc": "Регулярні вирази імен тегів для виключення з результатів збирання даних", + "available_scrapers": "Доступні сканери", + "entity_metadata": "Метадані {entityType}", + "entity_scrapers": "Сканери {entityType}", + "scraper": "Сканер", + "scrapers": "Сканери", + "excluded_tag_patterns_head": "Виключені шаблони тегів", + "installed_scrapers": "Встановлені сканери", + "supported_types": "Підтримувані типи", + "supported_urls": "URL-адреси", + "search_by_name": "Пошук за назвою" + }, + "stashbox": { + "add_instance": "Додати екземпляр stash-box", + "title": "Кінцеві точки Stash-box", + "description": "Stash-box забезпечує автоматичне додавання тегів до сцен та виконавців на основі відбитків і назв файлів.\nАдресу кінцевої точки (Endpoint) та API-ключ можна знайти на сторінці вашого облікового запису в інстанції Stash-box. Імена обов'язкові, якщо додано більше однієї інстанції.", + "endpoint": "Кінцева точка", + "name": "Назва", + "graphql_endpoint": "Кінцева точка GraphQL", + "api_key": "API ключ" + }, + "system": { + "transcoding": "Транскодування" + }, + "application_paths": { + "heading": "Шляхи до програм" } }, "video_codec": "Відео кодек", "videos": "Відео", - "weight": "Вага" + "weight": "Вага", + "average_resolution": "Середня роздільна здатність", + "between_and": "та", + "ascending": "За зростанням", + "audio_codec": "Аудіокодек", + "blobs_storage_type": { + "database": "База даних", + "filesystem": "Файлова система" + }, + "captions": "Заголовки", + "sub_tag_of": "Вкладені мітки {parent}", + "dupe_check": { + "options": { + "exact": "Точний", + "high": "Висока", + "low": "Низька", + "medium": "Середнє" + }, + "only_select_matching_codecs": "Вибирати тільки якщо всі кодеки збігаються в групі дублікатів", + "select_oldest": "Виберіть найстарший файл у групі дублікатів", + "description": "Рівні нижче 'Exact' можуть вимагати більше часу для обчислення. На рівнях з нижчою точністю також можуть виникати хибні спрацьовування.", + "found_sets": "{setCount, plural, one{Знайдений # набір дублікатів.} other {Знайдено # наборів дублікатів.}}", + "select_all_but_largest_resolution": "Виберіть кожен файл у кожній групі дублікатів, крім файлу з найвищою роздільною здатністю", + "select_youngest": "Виберіть найновіший файл у групі дублікатів", + "select_all_but_largest_file": "Вибрати всі файли в кожній групі дублікатів, крім найбільшого файлу", + "select_options": "Опції вибору…", + "select_none": "Зняти вибір", + "duration_diff": "Максимальна різниця в тривалості", + "search_accuracy_label": "Точність пошуку", + "title": "Дубльовані сцени" + }, + "sub_tags": "Вкладені мітки", + "package_manager": { + "uninstall": "Видалити", + "description": "Опис", + "package": "Пакунок", + "unknown": "<невідомо>", + "update": "Оновити", + "version": "Версія", + "install": "Встановити", + "source": { + "name": "Назва", + "local_path": { + "description": "Відносний шлях для зберігання пакетів для цього джерела. Зверніть увагу, що зміна цього параметра вимагає ручного переміщення пакетів." + } + }, + "confirm_uninstall": "Ви впевнені, що хочете видалити {number} пакунків?", + "confirm_delete_source": "Ви впевнені, що хочете видалити джерело {name} ({url})?", + "no_upgradable": "Не знайдено пакунків для оновлення", + "no_packages": "Пакунків не знайдено", + "no_sources": "Джерела не налаштовані", + "required_by": "Необхідно для {packages}", + "check_for_updates": "Перевірити наявність оновлень" + }, + "effect_filters": { + "name_transforms": "Перетворення", + "red": "Червоний", + "rotate": "Поворот", + "hue": "Відтінок", + "name": "Фільтри", + "saturation": "Насиченість", + "scale": "Масштаб", + "warmth": "Теплота", + "blur": "Розмиття", + "brightness": "Яскравість", + "contrast": "Контраст", + "gamma": "Гамма", + "green": "Зелений", + "blue": "Синій", + "rotate_left_and_scale": "Повернути ліворуч і масштабувати", + "rotate_right_and_scale": "Повернути праворуч і масштабувати", + "reset_filters": "Скинути фільтри", + "reset_transforms": "Скинути трансформації" + }, + "duration": "Тривалість", + "errors": { + "header": "Помилка", + "image_index_greater_than_zero": "Індекс зображення має бути більшим за 0", + "lazy_component_error_help": "Якщо ви нещодавно оновили Stash, будь ласка, перезавантажте сторінку або очистіть кеш браузера.", + "custom_fields": { + "field_name_whitespace": "Назва поля не може містити пробіли на початку або в кінці", + "field_name_required": "Назва поля є обов'язковою", + "field_name_length": "Назва поля повинна містити менше ніж 65 символів", + "duplicate_field": "Назва поля повинна бути унікальною" + }, + "invalid_javascript_string": "Невірний код JavaScript: {error}", + "invalid_json_string": "Невірний рядок JSON: {error}", + "loading_type": "Помилка завантаження {type}", + "something_went_wrong": "Щось пішло не так." + }, + "pagination": { + "first": "Перша", + "next": "Наступна", + "previous": "Попередня", + "last": "Остання", + "current_total": "{current} з {total}" + }, + "ethnicity": "Етнічність", + "false": "Ні", + "favourite": "Улюблене", + "file": "файл", + "files": "файли", + "filter": "Фільтрувати", + "filters": "Фільтри", + "folder": "Тека", + "galleries": "Галереї", + "gallery": "Галерея", + "gender": "Стать", + "gender_types": { + "FEMALE": "Жіноча", + "MALE": "Чоловіча", + "INTERSEX": "Інтерсекс" + }, + "groups": "Групи", + "handy_connection_status": { + "connecting": "Підключення", + "disconnected": "Роз'єднано", + "ready": "Готово", + "error": "Помилка підключення до Handy", + "syncing": "Синхронізація з сервером" + }, + "height": "Зріст", + "help": "Допомога", + "history": "Історія", + "images": "Зображення", + "interactive": "Інтерактивне", + "library": "Бібліотека", + "markers": "Позначки", + "measurements": "Виміри", + "media_info": { + "phash": "PHash", + "stream": "Потік", + "checksum": "Контрольна сума", + "hash": "Геш", + "performer_card": { + "age_context": "{age} {years_old} у цій сцені" + } + }, + "metadata": "Метадані", + "new": "Нове", + "name": "Імʼя", + "none": "Відсутньо", + "operations": "Операції", + "orientation": "Орієнтація", + "path": "Шлях", + "penis": "Пеніс", + "performer": "Виконавець", + "performers": "Виконавці", + "photographer": "Фотограф", + "piercings": "Пірсинг", + "queue": "Черга", + "random": "Випадково", + "rating": "Рейтинг", + "scenes": "Сцени", + "statistics": "Статистика", + "studio_tagger": { + "tag_status": "Статус мітки", + "update_studios": "Оновити студії", + "update_studio": "Оновити студію", + "to_use_the_studio_tagger": "Для використання тегера студій необхідно налаштувати екземпляр stash-box.", + "any_names_entered_will_be_queried": "Будь-які введені імена будуть запитані з віддаленого екземпляра Stash-Box і додані, якщо знайдено. Будуть враховуватися лише точні збіги.", + "config": { + "create_parent_desc": "Створити відсутні батьківські студії або позначити та оновити дані/зображення для існуючих батьківських студій з точним збігом імен", + "these_fields_will_not_be_changed_when_updating_studios": "Ці поля не будуть змінені під час оновлення студій.", + "no_instances_found": "Інстанцій не знайдено", + "no_fields_are_excluded": "Жодне поле не виключено", + "excluded_fields": "Виключені поля:", + "edit_excluded_fields": "Редагувати виключені поля", + "create_parent_label": "Створити батьківські студії", + "active_stash-box_instance": "Активний екземпляр stash-box:" + }, + "updating_untagged_studios_description": "Оновлення невідмічених студій спробує знайти відповідність для студій без stashid і оновити метадані.", + "refreshing_will_update_the_data": "Оновлення оновить дані будь-яких студій, позначених мітками, з екземпляра stash-box.", + "create_or_tag_parent_studios": "Створити відсутні або позначити існуючі батьківські студії", + "failed_to_save_studio": "Не вдалося зберегти студію \"{studio}\"", + "number_of_studios_will_be_processed": "Будуть оброблені {studio_count} студії", + "query_all_studios_in_the_database": "Усі студії в базі даних", + "studio_names_separated_by_comma": "Імена студій, розділені комою", + "add_new_studios": "Додати нові студії", + "name_already_exists": "Ім'я вже існує", + "refresh_tagged_studios": "Оновити затеговані студії", + "studio_successfully_tagged": "Студію успішно затеговано", + "network_error": "Помилка мережі", + "current_page": "Поточна сторінка", + "untagged_studios": "Не затеговані студії", + "studio_selection": "Вибір студії", + "studio_already_tagged": "Студія вже затегована", + "batch_update_studios": "Пакетне оновлення студій", + "batch_add_studios": "Пакетне додавання студій", + "status_tagging_studios": "Статус: Тегування студій", + "status_tagging_job_queued": "Статус: Завдання тегування додано до черги", + "no_results_found": "Результатів не знайдено." + }, + "sub_tag_count": "Кількість вкладених міток", + "studios": "Студії", + "studio_tags": "Мітки студії", + "time": "Час", + "title": "Заголовок", + "tag_sub_tag_tooltip": "Має вкладені мітки", + "tattoos": "Татуювання", + "tags": "Мітки", + "group": "Група", + "image": "Зображення", + "loading": { + "generic": "Завантаження…", + "plugins": "Завантаження плагінів…" + }, + "o_counter": "O-Лічильник", + "performer_tagger": { + "status_tagging_job_queued": "Статус: Задача проставлення міток в черзі", + "number_of_performers_will_be_processed": "Будуть оброблені {performer_count} виконавців", + "any_names_entered_will_be_queried": "Будь-які введені імена будуть запитані з віддаленого екземпляра Stash-Box і додані, якщо знайдено. Будуть враховуватися лише точні збіги.", + "config": { + "these_fields_will_not_be_changed_when_updating_performers": "Ці поля не будуть змінені під час оновлення виконавців.", + "active_stash-box_instance": "Активний екземпляр stash-box:", + "edit_excluded_fields": "Редагувати виключені поля", + "excluded_fields": "Виключені поля:", + "no_instances_found": "Екземпляри не знайдено", + "no_fields_are_excluded": "Жодне поле не виключено" + }, + "failed_to_save_performer": "Не вдалося зберегти виконавця \"{performer}\"", + "performer_names_separated_by_comma": "Імена виконавців, розділені комою", + "refreshing_will_update_the_data": "Оновлення оновить дані будь-яких виконавців, позначених мітками, з екземпляра stash-box.", + "query_all_performers_in_the_database": "Усі виконавці в базі даних", + "updating_untagged_performers_description": "Оновлення невідмічених виконавців спробує знайти відповідність для виконавців без stashid і оновити метадані.", + "to_use_the_performer_tagger": "Для використання тегера виконавців необхідно налаштувати екземпляр stash-box.", + "update_performers": "Оновити виконавців", + "add_new_performers": "Додати нових виконавців", + "batch_update_performers": "Пакетне оновлення виконавців", + "batch_add_performers": "Пакетне додавання виконавців", + "current_page": "Поточна сторінка", + "name_already_exists": "Ім'я вже існує", + "network_error": "Помилка мережі", + "no_results_found": "Результатів не знайдено.", + "performer_selection": "Вибір виконавця", + "refresh_tagged_performers": "Оновити затегованих виконавців", + "tag_status": "Статус тегування", + "status_tagging_performers": "Статус: Тегування виконавців", + "update_performer": "Оновити виконавця", + "untagged_performers": "Не затеговані виконавці", + "performer_successfully_tagged": "Виконавець успішно затегований:", + "performer_already_tagged": "Виконавець вже затегований" + }, + "resolution": "Роздільна здатність", + "scene": "Сцена", + "search_filter": { + "name": "Фільтр", + "saved_filters": "Збережені фільтри", + "edit_filter": "Редагувати фільтр", + "update_filter": "Оновити фільтр" + }, + "studio": "Студія", + "total": "Всього", + "true": "Так", + "twitter": "Twitter", + "type": "Тип", + "url": "Посилання", + "urls": "Посилання", + "sub_groups": "Вкладені групи", + "tag_parent_tooltip": "Має батьківські мітки", + "tag_count": "Кількість міток", + "instagram": "Instagram", + "sub_group": "Вкладена група", + "criterion_modifier_values": { + "only": "Лише", + "any": "Будь яке", + "none": "Жодного", + "any_of": "Будь-який з" + }, + "second": "Секунда", + "seconds": "Секунди", + "settings": "Налаштування", + "tag": "Мітка", + "synopsis": "Синопсис", + "dialogs": { + "delete_gallery_files": "Видалити папку галереї/zip-файл та всі зображення, які не прив'язані до жодної іншої галереї.", + "overwrite_filter_confirm": "Ви впевнені, що хочете перезаписати існуючий збережений запит {entityName}?", + "scene_gen": { + "marker_image_previews_tooltip": "Також створюйте анімовані (webp) прев’ю, які необхідні лише тоді, коли тип прев’ю для стіни сцен/маркерів встановлено на Анімоване зображення. Під час перегляду вони споживають менше ресурсів CPU, ніж відео-прев’ю, але генеруються додатково до них і займають більше місця на диску.", + "transcodes_tooltip": "MP4-транскоди будуть попередньо згенеровані для всього контенту; корисно для повільних процесорів, але вимагає набагато більше дискового простору", + "preview_preset_desc": "Пресет регулює розмір, якість і час кодування під час створення попереднього перегляду. Пресети, повільніші за «slow», мають зменшену віддачу і не рекомендуються.", + "override_preview_generation_options_desc": "Перевизначити параметри генерації попереднього перегляду для цієї операції. Параметри за замовчуванням встановлені в Система -> Генерація попереднього перегляду.", + "phash_tooltip": "Для дедуплікації та ідентифікації сцен", + "preview_seg_duration_desc": "Тривалість кожного сегмента попереднього перегляду, у секундах.", + "video_previews_tooltip": "Попередні перегляди відео, які відтворюються при наведенні на сцену", + "markers": "Попередні перегляди позначок", + "preview_exclude_start_time_desc": "Виключити перші x секунд із попереднього перегляду сцени. Це може бути значення в секундах або відсоток (наприклад, 2%) від загальної тривалості сцени.", + "image_previews_tooltip": "Також генеруйте анімовані (webp) прев’ю, які потрібні лише в тому випадку, якщо тип прев’ю для стіни сцен/маркерів встановлено як Анімоване зображення. Під час перегляду вони споживають менше ресурсів CPU, ніж відео-прев’ю, але створюються додатково до них і займають більше місця.", + "force_transcodes_tooltip": "За замовчуванням перекодування створюються лише тоді, коли відеофайл не підтримується браузером. Якщо цю опцію увімкнено, перекодування будуть створюватися навіть тоді, коли відеофайл, здається, підтримується браузером.", + "interactive_heatmap_speed": "Генерувати теплові карти та швидкості для інтерактивних сцен", + "preview_exclude_end_time_desc": "Виключити останні x секунд із попереднього перегляду сцени. Це може бути значення в секундах або відсоток (наприклад, 2%) від загальної тривалості сцени.", + "preview_seg_count_desc": "Кількість сегментів у файлах попереднього перегляду.", + "markers_tooltip": "20-секундні відео, які починаються з вказаного таймкоду.", + "sprites_tooltip": "Набір зображень, що відображаються під відеоплеєром для зручної навігації.", + "preview_seg_count_head": "Кількість сегментів у попередньому перегляді", + "override_preview_generation_options": "Перезаписати параметри генерації попереднього перегляду", + "phash": "Перцептивні геші", + "marker_screenshots_tooltip": "Статичні зображення маркерів у форматі JPG", + "preview_exclude_start_time_head": "Виключити час початку", + "preview_seg_duration_head": "Тривалість сегмента попереднього перегляду", + "sprites": "Спрайти скрубера сцени", + "overwrite": "Перезаписати існуючі файли", + "covers": "Обкладинки сцен", + "preview_options": "Параметри попереднього перегляду", + "image_thumbnails": "Ескізи зображень", + "marker_image_previews": "Попередні перегляди анімованих зображень маркерів", + "clip_previews": "Попередні перегляди вирізів зображень", + "force_transcodes": "Примусова генерація транскодування", + "image_previews": "Попередні перегляди анімованих зображень", + "preview_exclude_end_time_head": "Виключити час завершення", + "preview_generation_options": "Параметри генерації попереднього перегляду", + "preview_preset_head": "Налаштування попереднього перегляду кодування", + "marker_screenshots": "Знімки екрана маркерів" + }, + "delete_entity_simple_desc": "{count, plural, one {Ви впевнені, що хочете видалити цей {singularEntity}?} other {Ви впевнені, що хочете видалити ці {pluralEntity}?}}", + "delete_object_desc": "Ви впевнені, що хочете видалити {count, plural, one {цей {singularEntity}} other {ці {pluralEntity}}}?", + "delete_object_title": "Видалити {count, plural, one {{singularEntity}} other {{pluralEntity}}}", + "delete_galleries_extra": "…плюс будь-які зображення, які не прикріплені до жодної іншої галереї.", + "clear_play_history_confirm": "Ви впевнені, що хочете очистити історію переглядів?", + "edit_entity_title": "Редагувати {count, plural, one {{singularEntity}} other {{pluralEntity}}}", + "export_include_related_objects": "Включати пов'язані об'єкти в експорт", + "imagewall": { + "margin_desc": "Кількість пікселів відступу навколо кожного зображення.", + "direction": { + "description": "Макет на основі стовпців або рядків." + } + }, + "lightbox": { + "scale_up": { + "description": "Масштабувати менші зображення для заповнення екрана", + "label": "Масштабувати для відповідності" + }, + "scroll_mode": { + "description": "Утримуйте Shift, щоб тимчасово використовувати інший режим.", + "label": "Режим прокручування", + "pan_y": "Нахил по осі Y" + }, + "reset_zoom_on_nav": "Скинути рівень масштабу під час зміни зображення", + "delay": "Затримка (сек)", + "display_mode": { + "label": "Режим відображення", + "fit_to_screen": "Підігнати до екрану", + "fit_horizontally": "Підігнати по горизонталі" + }, + "page_header": "Сторінка {page} / {total}" + }, + "unsaved_changes": "Незбережені зміни. Ви впевнені, що хочете покинути сторінку?", + "delete_alert": "Наступні {count, plural, one {{singularEntity}} other {{pluralEntity}}} будуть видалені назавжди:", + "reassign_entity_title": "{count, plural, one {Перепризначити {singularEntity}} other {Перепризначити {pluralEntity}}}", + "merge": { + "empty_results": "Значення поля призначення залишаться без змін." + }, + "clear_o_history_confirm": "Ви впевнені, що хочете очистити історію O?", + "delete_entity_desc": "{count, plural, one {Ви впевнені, що хочете видалити цей {singularEntity}? Якщо файл також не буде видалено, цей {singularEntity} буде повторно додано під час сканування.} other {Ви впевнені, що хочете видалити ці {pluralEntity}? Якщо файли також не будуть видалені, ці {pluralEntity} будуть повторно додані під час сканування.}}", + "delete_confirm": "Ви впевнені, що хочете видалити {entityName}?", + "dont_show_until_updated": "Не показувати до наступного оновлення", + "performers_found": "Знайдено {count} виконавців", + "create_new_entity": "Створити новий {entity}", + "set_image_url_title": "URL зображення", + "reassign_files": { + "destination": "Переназначити на" + }, + "scenes_found": "Знайдено {count} сцен", + "scrape_entity_query": "Запит на скрейпінг {entity_type}", + "scrape_entity_title": "Результати скрейпінгу {entity_type}" + }, + "setup": { + "errors": { + "unable_to_retrieve_system_status": "Не вдалося отримати стан системи: {error}", + "unexpected_error": "Сталася непередбачена помилка: {error}", + "something_went_wrong_description": "Якщо це схоже на проблему з вашими введеними даними, натисніть «Назад», щоб виправити їх. В іншому випадку повідомте про помилку на {githubLink} або зверніться за допомогою до {discordLink}.", + "something_went_wrong": "Ой ні! Щось пішло не так!", + "something_went_wrong_while_setting_up_your_system": "Щось пішло не так під час налаштування вашої системи. Ось отримана помилка: {error}" + }, + "paths": { + "where_can_stash_store_blobs_description": "Stash може зберігати двійкові дані, такі як обкладинки сцен, зображення виконавців, студій і тегів, або в базі даних, або у файловій системі. За замовчуванням ці дані зберігатимуться у файловій системі в підкаталозі blobs, розташованому в директорії з вашим конфігураційним файлом. Якщо ви хочете змінити цей шлях, введіть абсолютний або відносний (щодо поточної робочої директорії) шлях. Stash створить цю директорію, якщо вона ще не існує.", + "where_can_stash_store_its_generated_content_description": "Для створення ескізів, прев’ю та спрайтів Stash генерує зображення і відео. Це також включає перекодування для форматів файлів, які не підтримуються. За замовчуванням Stash створює директорію generated у каталозі з вашим конфігураційним файлом. Якщо ви хочете змінити місце зберігання згенерованих медіафайлів, введіть абсолютний або відносний (щодо поточної робочої директорії) шлях. Stash створить цю директорію, якщо вона ще не існує.", + "where_can_stash_store_its_database_warning": "УВАГА: зберігання бази даних на іншій системі, ніж та, з якої запущено Stash (наприклад, зберігання бази даних на NAS при запуску сервера Stash на іншому комп’ютері), є непідтримуваним! SQLite не призначена для використання в мережі, і спроба зробити це може дуже легко призвести до пошкодження всієї вашої бази даних.", + "stash_alert": "Не вибрано жодних шляхів бібліотеки. Жодний медіаконтент не зможе бути відсканований у Stash. Ви впевнені?", + "database_filename_empty_for_default": "Ім'я файлу бази даних (залиште порожнім для значення за замовчуванням)", + "description": "Тепер нам потрібно визначити, де знаходиться ваша колекція, а також де зберігати базу даних Stash, згенеровані файли та файли кешу. Ці налаштування можна змінити пізніше, якщо це буде потрібно.", + "path_to_blobs_directory_empty_for_default": "шлях до каталогу blobs (залиште порожнім для значення за замовчуванням)", + "path_to_cache_directory_empty_for_default": "шлях до каталогу кешу (залиште порожнім для значення за замовчуванням)", + "path_to_generated_directory_empty_for_default": "шлях до каталогу generated (залиште порожнім для значення за замовчуванням)", + "where_can_stash_store_blobs_description_addendum": "Альтернативно ви можете зберігати ці дані в базі даних. Примітка: Це збільшить розмір файлу бази даних і час міграції бази даних.", + "where_can_stash_store_blobs": "Де Stash може зберігати бінарні дані бази даних?", + "where_can_stash_store_cache_files": "Де Stash може зберігати файли кешу?", + "where_can_stash_store_its_database": "Де Stash може зберігати свою базу даних?", + "where_can_stash_store_its_database_description": "Stash використовує базу даних SQLite для зберігання метаданих вашої колекції. За замовчуванням вона буде створена як stash-go.sqlite у каталозі, що містить ваш конфігураційний файл. Якщо ви хочете змінити це, введіть абсолютне або відносне (щодо поточної робочої директорії) ім'я файлу.", + "where_is_your_porn_located": "Де знаходиться ваше порно?", + "where_is_your_porn_located_description": "Додайте каталоги, що містять ваші порно-відео та зображення. Stash використовуватиме ці каталоги для пошуку відео та зображень під час сканування.", + "where_can_stash_store_cache_files_description": "Для роботи деяких функцій, таких як HLS/DASH трансляція в реальному часі, Stash потребує кеш-директорію для тимчасових файлів. За замовчуванням Stash створює директорію cache у каталозі з вашим конфігураційним файлом. Якщо ви хочете змінити це розташування, введіть абсолютний або відносний (щодо поточної робочої директорії) шлях. Stash створить цю директорію, якщо вона ще не існує.", + "where_can_stash_store_its_generated_content": "Де Stash може зберігати свій згенерований контент?", + "store_blobs_in_database": "Зберігати блоби в базі даних", + "set_up_your_paths": "Налаштуйте ваші шляхи" + }, + "success": { + "in_app_manual_explained": "Ми рекомендуємо вам ознайомитися з вбудованим посібником, який можна відкрити, натиснувши на іконку у верхньому правому куті екрана, що виглядає так: {icon}", + "next_config_step_two": "Коли ви будете задоволені цими налаштуваннями, ви можете почати сканування вашого контенту в Stash, натиснувши {localized_task}, а потім {localized_scan}.", + "open_collective": "Перегляньте наш {open_collective_link}, щоб дізнатися, як ви можете сприяти подальшому розвитку Stash.", + "welcome_contrib": "Ми також вітаємо внески у вигляді коду (виправлення помилок, покращення та нові функції), тестування, звітів про помилки, пропозицій щодо покращень і нових функцій, а також підтримки користувачів. Деталі можна знайти в розділі \"Contribution\" у вбудованому посібнику.", + "your_system_has_been_created": "Успіх! Вашу систему було створено!", + "missing_ffmpeg": "Відсутній необхідний двійковий файл ffmpeg. Ви можете автоматично завантажити його у вашу конфігураційну директорію, відзначивши прапорець нижче. Альтернативно, ви можете вказати шляхи до двійкових файлів ffmpeg та ffprobe у системних налаштуваннях. Ці файли повинні бути присутніми для коректної роботи Stash.", + "help_links": "Якщо у вас виникнуть проблеми, запитання чи пропозиції, не соромтеся відкрити проблему у {githubLink} або звернутися до спільноти у {discordLink}.", + "next_config_step_one": "Далі ви перейдете на сторінку Налаштувань. На цій сторінці ви зможете налаштувати, які файли включати та виключати, встановити ім’я користувача та пароль для захисту вашої системи, а також налаштувати багато інших параметрів.", + "download_ffmpeg": "Завантажити ffmpeg", + "getting_help": "Отримати допомогу", + "support_us": "Підтримайте нас", + "thanks_for_trying_stash": "Дякуємо що спробували Stash!" + }, + "welcome_specific_config": { + "config_path": "Stash буде використовувати наступний шлях до файлу конфігурації: {path}", + "unable_to_locate_specified_config": "Якщо ви читаєте це, значить, Stash не зміг знайти конфігураційний файл, вказаний у командному рядку або середовищі. Цей майстер допоможе вам у процесі налаштування нового конфігураційного файлу.", + "next_step": "Коли будете готові продовжити налаштування нової системи, натисніть Далі." + }, + "migrate": { + "backup_database_path_leave_empty_to_disable_backup": "Шлях до резервної копії бази даних (залиште порожнім, щоб вимкнути резервне копіювання):", + "backup_recommended": "Рекомендується зробити резервну копію вашої існуючої бази даних перед міграцією. Ми можемо зробити це за вас, створивши копію вашої бази даних у {defaultBackupPath}.", + "migration_failed_help": "Будь ласка, внесіть необхідні виправлення та спробуйте ще раз. Інакше створіть звіт про помилку у {githubLink} або зверніться за допомогою до {discordLink}.", + "migration_irreversible_warning": "Процес міграції схеми не є зворотним. Після виконання міграції ваша база даних буде несумісна з попередніми версіями Stash.", + "schema_too_old": "Ваша поточна база даних Stash має версію схеми {databaseSchema} і потребує оновлення до версії {appSchema}. Ця версія Stash не працюватиме без оновлення бази даних. Якщо ви не бажаєте виконувати міграцію, вам доведеться перейти на версію, яка відповідає версії вашої схеми бази даних.", + "migration_failed_error": "Під час міграції бази даних сталася наступна помилка:", + "perform_schema_migration": "Виконати міграцію схеми", + "migration_required": "Необхідна міграція", + "migration_notes": "Примітки до міграції", + "migrating_database": "Міграція бази даних", + "migration_failed": "Міграція не вдалася" + }, + "welcome": { + "config_path_logic_explained": "Stash спочатку намагається знайти свій конфігураційний файл (config.yml) у поточній робочій директорії, і якщо не знаходить його там, використовує резервний шлях {fallback_path}. Ви також можете змусити Stash використовувати конкретний конфігураційний файл, запустивши його з опціями -c '' або --config ''.", + "in_the_current_working_directory": "У {path}, робочий каталог, наразі:", + "next_step": "Тепер, коли все налаштовано, якщо ви готові продовжити налаштування нової системи, будь ласка, виберіть місце, де ви хочете зберігати свій конфігураційний файл.", + "in_the_current_working_directory_disabled_macos": "Не підтримується під час запуску Stash.app,

запустіть stash-macos, щоб налаштувати в робочому каталозі", + "store_stash_config": "Де ви хочете зберігати конфігурацію Stash?", + "in_the_current_working_directory_disabled": "У {path}, робочий каталог:", + "unable_to_locate_config": "Якщо ви це читаєте, значить Stash не зміг знайти існуючу конфігурацію. Цей майстер допоможе вам у процесі налаштування нової конфігурації.", + "unexpected_explained": "Якщо цей екран з'явився несподівано, спробуйте перезапустити Stash у правильному робочому каталозі або з прапором -c.", + "in_current_stash_directory": "У директорії {path}:" + }, + "confirm": { + "almost_ready": "Ми майже готові завершити налаштування. Будь ласка, підтвердіть наступні параметри. Ви можете натиснути «Назад», щоб змінити щось некоректне. Якщо все виглядає правильно, натисніть «Підтвердити», щоб створити вашу систему.", + "blobs_directory": "Директорія бінарних даних", + "cache_directory": "Директорія кешу", + "configuration_file_location": "Місцезнаходження файлу конфігурації:", + "stash_library_directories": "Директорії бібліотеки Stash", + "nearly_there": "Майже готово!", + "generated_directory": "Папка згенерованих допоміжних файлів", + "database_file_path": "Шлях до файлу бази даних", + "blobs_use_database": "<використовувана база даних>" + }, + "stash_setup_wizard": "Майстер налаштування Stash", + "creating": { + "creating_your_system": "Створення вашої системи" + }, + "folder": { + "file_path": "Шлях до файлу", + "up_dir": "На один рівень вище" + }, + "welcome_to_stash": "Ласкаво просимо до Stash", + "github_repository": "Репозиторій Github" + }, + "validation": { + "required": "${path} є обов'язковим полем", + "date_invalid_form": "${path} має бути у форматі YYYY-MM-DD", + "end_time_before_start_time": "Час завершення має бути більшим або рівним часу початку", + "blank": "${path} не може бути порожнім", + "unique": "${path} повинен бути унікальним" + }, + "countables": { + "performers": "{count, plural, one {Виконавець} other {Виконавці}}", + "studios": "{count, plural, one {Студія} other {Студії}}", + "tags": "{count, plural, one {Мітка} other {Мітки}}", + "galleries": "{count, plural, one {Галерея} other {Галереї}}", + "groups": "{count, plural, one {Група} other {Групи}}", + "scenes": "{count, plural, one {Сцена} other {Сцени}}", + "files": "{count, plural, one {Файл} other {Файли}}", + "images": "{count, plural, one {Зображення} other {Зображення}}", + "markers": "{count, plural, one {Позначка} other {Позначки}}" + }, + "criterion_modifier": { + "format_string_depth": "{criterion} {modifierString} {valueString} (+{глибина, plural, =-1 {all} other {{глибина}}})", + "format_string": "{criterion} {modifierString} {valueString}", + "matches_regex": "відповідає регулярному виразу", + "not_between": "не між", + "less_than": "менше ніж", + "not_null": "не є null", + "not_matches_regex": "не відповідає регулярному виразу", + "not_equals": "не є", + "greater_than": "більше ніж", + "includes_all": "включає все", + "is_null": "є null" + }, + "toast": { + "rescanning_entity": "Повторне сканування {count, plural, one {{singularEntity}} other {{pluralEntity}}}…", + "added_entity": "Додано {count, plural, one {{singularEntity}} other {{pluralEntity}}}", + "added_generation_job_to_queue": "Додано завдання на генерацію до черги", + "image_index_too_large": "Помилка: Індекс зображення більший за кількість зображень у галереї", + "delete_past_tense": "Видалено {count, plural, one {{singularEntity}} other {{pluralEntity}}}", + "removed_entity": "Вилучено {count, plural, one {{singularEntity}} other {{pluralEntity}}}", + "created_entity": "Створено {entity}", + "started_auto_tagging": "Розпочато автоматичне тегування", + "started_generating": "Розпочато генерування", + "saved_entity": "Збережено {entity}", + "reassign_past_tense": "Файл перепризначено", + "merged_tags": "Теги об'єднано", + "started_importing": "Розпочато імпорт", + "updated_entity": "Оновлено {entity}", + "merged_scenes": "Сцени об'єднано", + "generating_screenshot": "Генерація знімка екрана…", + "default_filter_set": "Встановлено фільтр за замовчуванням" + }, + "empty_server": "Додайте кілька сцен на ваш сервер, щоб переглядати рекомендації на цій сторінці.", + "appears_with": "З'являється з", + "chapters": "Розділи", + "circumcised_types": { + "CUT": "Обрізаний", + "UNCUT": "Необрізаний" + }, + "circumcised": "Обрізаний", + "career_length": "Тривалість кар'єри", + "hasMarkers": "Має позначки", + "stashbox": { + "go_review_draft": "Перейдіть до {endpoint_name}, щоб переглянути чернетку.", + "selected_stash_box": "Вибраний ендпоінт Stash-Box", + "source": "Stash-Box джерело", + "submission_successful": "Надсилання успішне", + "submit_update": "Вже існує в {endpoint_name}", + "submission_failed": "Надсилання не вдалося" + }, + "connection_monitor": { + "websocket_connection_failed": "Не вдалося встановити з'єднання через websocket: дивіться консоль браузера для деталей", + "websocket_connection_reestablished": "З'єднання Websocket відновлено" + }, + "time_end": "Час завершення", + "created_at": "Створено", + "criterion": { + "greater_than": "Більше ніж", + "less_than": "Менше ніж" + }, + "containing_group": "Група, що містить", + "cover_image": "Обкладинка зображення", + "duplicated_phash": "Дубльовано (pHash)", + "custom_fields": { + "title": "Користувацькі поля", + "field": "Поле", + "value": "Значення" + }, + "death_date": "Дата смерті", + "developmentVersion": "Розробницька версія", + "datetime_format": "РРРР-ММ-ДД ГГ:ХХ", + "existing_value": "існуюче значення", + "ignore_auto_tag": "Ігнорувати автоматичне тегування", + "performer_image": "Зображення виконавця", + "sceneTagger": "Тегувальник сцен", + "stats": { + "total_play_count": "Загальна кількість відтворень", + "total_o_count": "Загальна кількість O", + "scenes_size": "Розмір сцен", + "scenes_played": "Відтворені сцени", + "scenes_duration": "Тривалість сцен", + "image_size": "Розмір зображень", + "total_play_duration": "Загальна тривалість відтворення" + }, + "studio_depth": "Рівні (залиште порожнім для всіх)", + "studio_count": "Кількість студій", + "studio_and_parent": "Студія та батьківська студія", + "sub_group_of": "Підгрупа {parent}", + "sub_group_count": "Кількість підгруп", + "updated_at": "Оновлено в", + "unknown_date": "Невідома дата", + "years_old": "років", + "weight_kg": "Вага (кг)", + "view_all": "Переглянути все", + "zip_file_count": "Кількість файлів ZIP", + "eye_color": "Колір очей", + "fake_tits": "Штучні груди", + "file_count": "Кількість файлів", + "file_mod_time": "Час модифікації файлу", + "files_amount": "{value} файлів", + "include_parent_tags": "Включити батьківські теги", + "include_sub_studios": "Включити дочірні студії", + "last_o_at": "Останній O о", + "last_played_at": "Останнє відтворення", + "parent_studio": "Батьківська студія", + "parent_studios": "Батьківські студії", + "parent_tag_count": "Кількість батьківських тегів", + "parent_tags": "Батьківські теги", + "penis_length_cm": "Довжина пеніса (см)", + "penis_length": "Довжина пеніса", + "part_of": "Частина {parent}", + "performer_age": "Вік виконавця", + "perceptual_similarity": "Перцептивна схожість (pHash)", + "performer_count": "Кількість виконавців", + "performer_favorite": "Виконавець у вибраних", + "performer_tags": "Теги виконавця", + "playdate_recorded_no": "Дата відтворення не зафіксована", + "play_history": "Історія відтворень", + "play_duration": "Тривалість відтворення", + "recently_added_objects": "Нещодавно додано {objects}", + "primary_tag": "Основний тег", + "scene_tags": "Теги сцени", + "stash_id_endpoint": "Кінцева точка Stash ID", + "stash_id": "Stash ID", + "stash_ids": "Stash ідентифікатори", + "include_sub_group_content": "Включати вміст підгрупи", + "parent_of": "Батько {children}", + "scene_updated_at": "Оновлено сцену", + "scenes_updated_at": "Сцена оновлена в", + "include_sub_tag_content": "Включати вміст підтега", + "include_sub_studio_content": "Включати вміст підстудії", + "containing_groups": "Містить групи", + "containing_group_count": "Кількість груп, що містять", + "death_year": "Рік смерті", + "file_info": "Інформація про файл", + "resume_time": "Час відновлення", + "release_notes": "Примітки до релізу", + "recently_released_objects": "Нещодавно випущено {objects}", + "play_count": "Кількість відтворень", + "scene_created_at": "Сцена створена", + "scene_count": "Кількість сцен", + "scene_code": "Код студії", + "status": "Статус: {statusText}", + "sub_group_order": "Порядок підгрупи", + "index_of_total": "{index} з {total}", + "include_sub_groups": "Включати підгрупи", + "odate_recorded_no": "Дата O не зафіксована", + "scene_id": "ID сцени", + "scene_date": "Дата сцени", + "primary_file": "Основний файл", + "plays": "{value} відтворень", + "subsidiary_studios": "Дочірні студії", + "subsidiary_studio_count": "Кількість дочірніх студій" } diff --git a/ui/v2.5/src/locales/vi-VN.json b/ui/v2.5/src/locales/vi-VN.json new file mode 100644 index 00000000000..72749ca6476 --- /dev/null +++ b/ui/v2.5/src/locales/vi-VN.json @@ -0,0 +1,182 @@ +{ + "actions": { + "download_backup": "Tải xuống sao lưu", + "edit": "Hiệu chỉnh", + "edit_entity": "Hiệu chỉnh {entityType}", + "enable": "Cho phép", + "add_directory": "Thêm Thư mục", + "add_entity": "Thêm {entityType}", + "add_sub_groups": "Thêm nhóm phụ đề", + "add_o": "Thêm O", + "add_play": "Thêm Phát", + "add_to_entity": "Thêm vào {entityType}", + "allow": "Cho phép", + "allow_temporarily": "Cho phép tạm thời", + "anonymise": "Ẩn danh", + "apply": "Áp dụng", + "auto_tag": "Tag tự động", + "backup": "Sao lưu", + "browse_for_image": "Đường dẫn ảnh…", + "cancel": "Hủy bỏ", + "choose_date": "Chọn ngày", + "clean": "Làm sạch", + "clean_generated": "Làm sạch files đã tạo", + "clear_date_data": "Xóa dữ liệu ngày", + "clear_front_image": "Xóa ảnh bìa trước", + "clear_image": "Xóa ảnh", + "close": "Đóng", + "confirm": "Xác nhận", + "continue": "Tiếp tục", + "copy_to_clipboard": "Chép vào bộ nhớ tạm", + "create": "Tạo", + "create_chapters": "Tạo chapter", + "create_marker": "Tạo Maker", + "create_parent_studio": "Tạo studio", + "created_entity": "Tạo {entity_type}: {entity_name}", + "customise": "Tùy chỉnh", + "delete": "Xóa", + "delete_entity": "Xóa {entityType}", + "delete_file": "Xóa file", + "delete_file_and_funscript": "Xóa file (và script)", + "disable": "Vô hiệu hóa", + "disallow": "Không cho phép", + "download": "Tải xuống", + "export": "Xuất", + "find": "Tìm kiếm", + "finish": "Hoàn thành", + "from_file": "Từ file…", + "from_url": "Từ URL…", + "full_export": "Xuất đầy đủ", + "delete_generated_supporting_files": "Xóa các tập tin hỗ trợ đã tạo", + "generate": "Tạo", + "assign_stashid_to_parent_studio": "Gán Stash ID cho studio hiện có và cập nhật dữ liệu", + "full_import": "Nhập đầy đủ", + "import": "Nhập…", + "migrate_scene_screenshots": "Nối ảnh chụp Scene", + "generate_thumb_default": "Tạo thumbnail mặc định", + "add": "Thêm", + "clear_back_image": "Xóa ảnh bìa", + "download_anonymised": "Tải xuống ẩn danh", + "encoding_image": "Đang mã hóa ảnh…", + "export_all": "Xuất tất cả…", + "remove_from_gallery": "Xóa từ Thư viện", + "generate_thumb_from_current": "Tạo thumbnail từ hiện tại", + "hash_migration": "nối hash", + "hide": "Ẩn", + "hide_configuration": "Ẩn cấu hình", + "identify": "Xác thực", + "ignore": "Bỏ qua", + "import_from_file": "Nhập từ file", + "logout": "Đăng xuất", + "make_primary": "Chính", + "merge": "Nối", + "merge_from": "Nối từ", + "merge_into": "Nối vào", + "migrate_blobs": "Nối Blobs", + "next_action": "Kế tiếp", + "not_running": "không khởi chạy", + "open_in_external_player": "Mở bằng trình phát bên ngoài", + "open_random": "Mở ngẫu nhiên", + "optimise_database": "Tối ưu Database", + "overwrite": "Ghi đè", + "play_random": "Phát ngẫu nhiên", + "play_selected": "Phát tệp đã chọn", + "preview": "Xem trước", + "previous_action": "Quay lại", + "refresh": "Làm tươi", + "reload": "Tải lại", + "reload_plugins": "Tải lại plugins", + "reload_scrapers": "Tải lại scrapers", + "remove": "Xóa", + "remove_date": "Xóa ngày", + "remove_from_containing_group": "Xóa từ Nhóm", + "rename_gen_files": "Đổi tên file đã tạo", + "rescan": "Quét lại", + "reset_play_duration": "Reset thời gian đã phát", + "reset_resume_time": "Reset thời gian phát tiếp", + "reset_cover": "Khôi phục ảnh bìa mặc định", + "reshuffle": "Xáo trộn lại", + "running": "đang chạy", + "save": "Lưu", + "save_filter": "Lưu bộ lọc", + "scan": "Quét", + "scrape": "Scrape", + "scrape_query": "Truy vấn scrape", + "scrape_scene_fragment": "Scrape theo mảnh", + "scrape_with": "Scrape với…", + "search": "Tìm kiếm", + "select_all": "Chọn tất cả", + "add_manual_date": "Thêm ngày thủ công", + "clear": "Xóa", + "create_entity": "Tạo {entityType}", + "reassign": "Gán lại", + "save_delete_settings": "Sử dụng các tùy chọn này theo mặc định khi xóa", + "select_folders": "Chọn thư mục", + "select_none": "Không chọn", + "selective_auto_tag": "Chọn Tag tự động", + "selective_clean": "Không chọn", + "selective_scan": "Chọn Scan", + "set_as_default": "Đặt mặc định", + "set_back_image": "Ảnh sau…", + "set_cover": "Đặt làm ảnh bìa", + "set_image": "Đặt ảnh…", + "show": "Hiển thị", + "show_configuration": "Hiển thị cấu hình", + "skip": "Bỏ qua", + "split": "Chia", + "stop": "Dừng", + "submit": "Gửi", + "submit_stash_box": "Gửi đến Stash-Box", + "submit_update": "Gửi cập nhật", + "swap": "Đổi", + "tasks": { + "dry_mode_selected": "Chế độ thử nghiệm đã được chọn. Sẽ không có việc xóa thực tế nào diễn ra, chỉ ghi lại nhật ký.", + "clean_confirm_message": "Bạn có chắc chắn muốn làm sạch không? Thao tác này sẽ xóa thông tin cơ sở dữ liệu và nội dung đã tạo cho tất cả các cảnh và bộ sưu tập không còn tồn tại trong hệ thống tệp.", + "import_warning": "Bạn có chắc chắn muốn nhập không? Thao tác này sẽ xóa cơ sở dữ liệu và nhập lại từ siêu dữ liệu đã xuất của bạn." + }, + "temp_disable": "Tạm thời vô hiệu hóa…", + "temp_enable": "Tạm thời kích hoạt…", + "unset": "Bỏ thiết lập", + "use_default": "Dùng mặc định", + "view_history": "Xem lịch sử", + "view_random": "Xem ngẫu nhiên", + "set_front_image": "Ảnh trước…", + "select_entity": "Chọn {entityType}" + }, + "actions_name": "Hành động", + "age": "Tuổi", + "aliases": "Bí danh", + "all": "tất cả", + "also_known_as": "Còn được biết đến là", + "appears_with": "Xuất hiện với", + "ascending": "Tăng dần", + "audio_codec": "Bộ giải mã âm thanh", + "average_resolution": "Độ phân giải trung bình", + "between_and": "và", + "birth_year": "Năm sinh", + "birthdate": "Ngày sinh", + "bitrate": "Bit Rate", + "blobs_storage_type": { + "database": "Cơ sở dữ liệu", + "filesystem": "Files hệ thống" + }, + "captions": "Tiêu đề", + "career_length": "Tuổi nghề", + "chapters": "Chapters", + "circumcised_types": { + "CUT": "Cắt", + "UNCUT": "Không cắt" + }, + "circumcised": "Cắt bao quy đầu", + "component_tagger": { + "config": { + "blacklist_desc": "Các mục trong danh sách đen sẽ bị loại trừ khỏi các truy vấn. Lưu ý rằng chúng là các biểu thức chính quy và không phân biệt chữ hoa chữ thường. Một số ký tự cần phải được thoát bằng dấu gạch chéo ngược: {chars_require_escape}", + "blacklist_label": "Danh sách đen", + "mark_organized_desc": "Ngay lập tức đánh dấu cảnh là Đã tổ chức sau khi nhấn nút Lưu.", + "active_instance": "Phiên bản stash-box đang hoạt động:", + "mark_organized_label": "Đánh dấu là Đã tổ chức khi lưu.", + "query_mode_auto": "Tự động", + "query_mode_auto_desc": "Sử dụng siêu dữ liệu nếu có, hoặc tên tệp." + } + } +} diff --git a/ui/v2.5/src/locales/zh-CN.json b/ui/v2.5/src/locales/zh-CN.json index 2262043efb6..8d272960d32 100644 --- a/ui/v2.5/src/locales/zh-CN.json +++ b/ui/v2.5/src/locales/zh-CN.json @@ -191,7 +191,10 @@ "show_male_label": "展示男演员标签", "source": "源", "mark_organized_label": "保存时标记为已整理", - "mark_organized_desc": "点击保存按钮后,立即将短片标记为 \"已整理\"。" + "mark_organized_desc": "点击保存按钮后,立即将短片标记为 \"已整理\"。", + "errors": { + "blacklist_duplicate": "重复黑名单项目" + } }, "noun_query": "查询", "results": { @@ -917,7 +920,7 @@ "marker_image_previews": "标记动图预览", "marker_image_previews_tooltip": "同时生成动图(webp)预览,仅当短片/标记墙预览类型设置为动图时才需要。浏览时,它们使用的CPU比视频预览少,但会额外生成更大的文件。", "marker_screenshots": "标记的屏幕截图", - "marker_screenshots_tooltip": "标记使用静态JPG图,仅用于预览类型设为【静图】时。", + "marker_screenshots_tooltip": "标记使用静态JPG 图像", "markers": "标记预览", "markers_tooltip": "从给出的时间码开始20秒的视频.", "override_preview_generation_options": "覆盖预览生成选项", @@ -1023,7 +1026,13 @@ "header": "错误", "loading_type": "加载 {type} 出错", "invalid_javascript_string": "无效的javascript代码:{error}", - "invalid_json_string": "无效的JSON字符串:{error}" + "invalid_json_string": "无效的JSON字符串:{error}", + "custom_fields": { + "field_name_required": "需要提供字段名称", + "field_name_whitespace": "字段名称不能有前导或尾随空格", + "duplicate_field": "字段名称必须唯一", + "field_name_length": "字段名称必须少于 65 个字符" + } }, "ethnicity": "人种", "existing_value": "现值", @@ -1092,7 +1101,8 @@ "last_played_at": "最后播放在", "library": "收藏库", "loading": { - "generic": "加载中…" + "generic": "加载中…", + "plugins": "加载插件中……" }, "marker_count": "标记数量", "markers": "标记", @@ -1228,7 +1238,9 @@ "errors": { "something_went_wrong": "天啊!出错啦!", "something_went_wrong_description": "如果看上去是你输入的问题,请点击“回去”以修正。又或者,在{githubLink}提出这个毛病,或者在{discordLink}寻求帮助。", - "something_went_wrong_while_setting_up_your_system": "在设立你的系统时出错。以下是错误信息:{error}" + "something_went_wrong_while_setting_up_your_system": "在设立你的系统时出错。以下是错误信息:{error}", + "unable_to_retrieve_system_status": "无法检索系统状态: {error}", + "unexpected_error": "发生意外错误: {error}" }, "folder": { "file_path": "文件路径", @@ -1367,7 +1379,8 @@ "date_invalid_form": "${path} 的格式必须为 YYYY-MM-DD", "required": "${path} 是必填字段", "blank": "${path}不能为空", - "unique": "${path}不能相同" + "unique": "${path}不能相同", + "end_time_before_start_time": "结束时间必须晚于或等于开始时间" }, "videos": "视频", "view_all": "查看全部", @@ -1491,5 +1504,17 @@ "sub_group_of": "{parent}的子集合", "sub_group_order": "子集合排序", "sub_groups": "子集合", - "include_sub_groups": "包括子组" + "include_sub_groups": "包括子组", + "time_end": "结束时间", + "criterion_modifier_values": { + "any": "任意", + "any_of": "其中任意", + "none": "无", + "only": "仅" + }, + "custom_fields": { + "field": "字段", + "title": "自定义字段", + "value": "数值" + } } diff --git a/ui/v2.5/src/locales/zh-TW.json b/ui/v2.5/src/locales/zh-TW.json index e9041f571bc..264973de36b 100644 --- a/ui/v2.5/src/locales/zh-TW.json +++ b/ui/v2.5/src/locales/zh-TW.json @@ -6,7 +6,7 @@ "add_to_entity": "新增至{entityType}", "allow": "允許", "allow_temporarily": "暫時允許", - "anonymise": "匿名化", + "anonymise": "匿名處理", "apply": "套用", "auto_tag": "自動套用標籤", "backup": "備份", @@ -141,7 +141,7 @@ "reset_resume_time": "重置恢復時間", "set_cover": "設為封面", "remove_from_containing_group": "從群組中刪除", - "add_sub_groups": "新增子組" + "add_sub_groups": "新增子分類" }, "actions_name": "動作", "age": "年齡", @@ -185,7 +185,10 @@ "show_male_label": "顯示男優", "source": "來源", "mark_organized_desc": "點選儲存後立即將短片標為已整理。", - "mark_organized_label": "儲存時標記為已整理" + "mark_organized_label": "儲存時標記為已整理", + "errors": { + "blacklist_duplicate": "複製黑名單項目" + } }, "noun_query": "關鍵字", "results": { @@ -1073,7 +1076,8 @@ "last_played_at": "上次播放於", "library": "收藏庫", "loading": { - "generic": "載入中…" + "generic": "載入中…", + "plugins": "正在載入外掛程式…" }, "marker_count": "章節標記數量", "markers": "章節標記", @@ -1192,7 +1196,7 @@ "settings": "設定", "setup": { "confirm": { - "almost_ready": "我們快要設定完了,請確認以下設定是否正確。若有任何不正確的內容,您可以回上一步進行修改。若一切看起來正確,請點選下方的「確認」按鈕以完成設定。", + "almost_ready": "設定即將完成,請再次確認以下設定是否正確。若有任何不正確的內容,您可以按下「上一步」以進行修改。若一切無誤,請點選下方的「確認」按鈕以完成設定。", "configuration_file_location": "設定檔案路徑:", "database_file_path": "資料庫檔案路徑", "generated_directory": "生成媒體路徑", @@ -1208,7 +1212,9 @@ "errors": { "something_went_wrong": "噢不!好像出了些問題!", "something_went_wrong_description": "如果您所輸入的資料看起來有問題,請點選上一步返回以更正您的資料。否則,請在 {githubLink} 上提出錯誤或在 {discordLink} 中尋求幫助。", - "something_went_wrong_while_setting_up_your_system": "設定系統時出了些問題。以下是我們收到的錯誤:{error}" + "something_went_wrong_while_setting_up_your_system": "設定系統時出了些問題。以下是我們收到的錯誤:{error}", + "unexpected_error": "發生一個無法辨認的錯誤: {error}", + "unable_to_retrieve_system_status": "無法取得系統狀態" }, "folder": { "file_path": "檔案路徑", @@ -1370,7 +1376,13 @@ "invalid_json_string": "無效的 JSON 字串: {error}", "something_went_wrong": "出错了。", "loading_type": "載入{type}時出錯", - "lazy_component_error_help": "如果您最近升級了 Stash,請重新載入頁面或清除瀏覽器cache。" + "lazy_component_error_help": "如果您最近升級了 Stash,請重新載入頁面或清除瀏覽器cache。", + "custom_fields": { + "field_name_length": "欄位名稱必須少於 65 個字元", + "duplicate_field": "已經有其他同名的欄位", + "field_name_required": "必須輸入欄位名稱", + "field_name_whitespace": "欄位名稱的開頭與結尾不可有空白" + } }, "group": "群組", "group_count": "群組計數", @@ -1475,7 +1487,8 @@ "required": "${path}是必填欄位", "date_invalid_form": "${path}必須是YYYY-MM-DD形式", "unique": "${path}必須是唯一的", - "blank": "${path}不能為空" + "blank": "${path}不能為空", + "end_time_before_start_time": "結束時間必須大於或等於開始時間" }, "video_codec": "影片編碼", "tag_sub_tag_tooltip": "有子標籤", @@ -1490,5 +1503,18 @@ "sub_group_order": "子組順序", "sub_groups": "子組", "containing_group": "包含群組", - "sub_group": "子組" + "sub_group": "子組", + "criterion_modifier_values": { + "none": "不存在", + "only": "僅", + "any_of": "其中任意", + "any": "任意" + }, + "include_sub_groups": "包括子組", + "time_end": "結束時間", + "custom_fields": { + "field": "欄位", + "title": "自訂欄位", + "value": "值" + } }