################################################# getopt.py: ################################################# do_longs: "option --%s requires argument": "Option --%s benötigt ein Argument" "option --%s must not have an argument": "Option --%s darf kein Argument haben" long_has_args: "option --%s not recognized": "Option --%s unbekannt" "option --%s not a unique prefix": "Option --%s ist kein eindeutiger Prefix" do_shorts: "option -%s requires argument": "Option -%s benötigt ein Argument" short_has_arg: "option -%s not recognized": "Option -%s unbekannt" ################################################# kleinanzeigen_bot/__main__.py: ################################################# module: "[INFO] Captcha detected. Sleeping %s before restart...": "[INFO] Captcha erkannt. Warte %s h bis zum Neustart..." ################################################# kleinanzeigen_bot/__init__.py: ################################################# module: "Direct execution not supported. Use 'pdm run app'": "Direkte Ausführung nicht unterstützt. Bitte 'pdm run app' verwenden" create_default_config: "Config file %s already exists. Aborting creation.": "Konfigurationsdatei %s existiert bereits. Erstellung abgebrochen." configure_file_logging: "Logging to [%s]...": "Protokollierung in [%s]..." "App version: %s": "App Version: %s" "Python version: %s": "Python Version: %s" __check_ad_changed: "Hash comparison for [%s]:": "Hash-Vergleich für [%s]:" " Stored hash: %s": " Gespeicherter Hash: %s" " Current hash: %s": " Aktueller Hash: %s" "Changes detected in ad [%s], will republish": "Änderungen in Anzeige [%s] erkannt, wird erneut veröffentlicht" load_ads: "Searching for ad config files...": "Suche nach Anzeigendateien..." " -> found %s": "-> %s gefunden" "ad config file": "Anzeigendatei" "Start fetch task for the ad(s) with id(s):": "Starte Abrufaufgabe für die Anzeige(n) mit ID(s):" " -> SKIPPED: inactive ad [%s]": " -> ÜBERSPRUNGEN: inaktive Anzeige [%s]" " -> SKIPPED: ad [%s] is not in list of given ids.": " -> ÜBERSPRUNGEN: Anzeige [%s] ist nicht in der Liste der angegebenen IDs." " -> SKIPPED: ad [%s] is not new. already has an id assigned.": " -> ÜBERSPRUNGEN: Anzeige [%s] ist nicht neu. Eine ID wurde bereits zugewiesen." "Category [%s] unknown. Using category [%s] with ID [%s] instead.": "Kategorie [%s] unbekannt. Verwende stattdessen Kategorie [%s] mit ID [%s]." "Loaded %s": "%s geladen" "ad": "Anzeige" load_config: "config": "Konfiguration" " -> found %s": "-> %s gefunden" "category": "Kategorie" check_and_wait_for_captcha: "# Captcha present! Please solve the captcha.": "# Captcha vorhanden! Bitte lösen Sie das Captcha." "Captcha recognized - auto-restart enabled, abort run...": "Captcha erkannt - Auto-Neustart aktiviert, Durchlauf wird beendet..." "Press a key to continue...": "Eine Taste drücken, um fortzufahren..." login: "Checking if already logged in...": "Überprüfe, ob bereits eingeloggt..." "Current page URL after opening homepage: %s": "Aktuelle Seiten-URL nach dem Öffnen der Startseite: %s" "Already logged in as [%s]. Skipping login.": "Bereits eingeloggt als [%s]. Überspringe Anmeldung." "Opening login page...": "Öffne Anmeldeseite..." "First login attempt did not succeed, trying second login attempt": "Erster Anmeldeversuch war nicht erfolgreich, versuche zweiten Anmeldeversuch" "Second login attempt succeeded": "Zweiter Anmeldeversuch erfolgreich" "Second login attempt also failed - login may not have succeeded": "Zweiter Anmeldeversuch ebenfalls fehlgeschlagen - Anmeldung möglicherweise nicht erfolgreich" is_logged_in: "Starting login detection (timeout: %.1fs base, %.1fs effective with multiplier/backoff)": "Starte Login-Erkennung (Timeout: %.1fs Basis, %.1fs effektiv mit Multiplikator/Backoff)" "Login detected via .mr-medium element": "Login erkannt über .mr-medium Element" "Timeout waiting for .mr-medium element after %.1fs": "Timeout beim Warten auf .mr-medium Element nach %.1fs" "Login detected via #user-email element": "Login erkannt über #user-email Element" "Timeout waiting for #user-email element after %.1fs": "Timeout beim Warten auf #user-email Element nach %.1fs" "No login detected - neither .mr-medium nor #user-email found with username": "Kein Login erkannt - weder .mr-medium noch #user-email mit Benutzername gefunden" handle_after_login_logic: "# Device verification message detected. Please follow the instruction displayed in the Browser.": "# Nachricht zur Geräteverifizierung erkannt. Bitte den Anweisungen im Browser folgen." "Press ENTER when done...": "EINGABETASTE drücken, wenn erledigt..." "Handling GDPR disclaimer...": "Verarbeite DSGVO-Hinweis..." delete_ads: "Processing %s/%s: '%s' from [%s]...": "Verarbeite %s/%s: '%s' von [%s]..." "DONE: Deleted %s": "FERTIG: %s gelöscht" "ad": "Anzeige" delete_ad: "Deleting ad '%s' if already present...": "Lösche Anzeige '%s', falls bereits vorhanden..." "Expected CSRF Token not found in HTML content!": "Erwartetes CSRF-Token wurde im HTML-Inhalt nicht gefunden!" " -> deleting %s '%s'...": " -> lösche %s '%s'..." extend_ads: "No ads need extension at this time.": "Keine Anzeigen müssen derzeit verlängert werden." "DONE: No ads extended.": "FERTIG: Keine Anzeigen verlängert." "DONE: Extended %s": "FERTIG: %s verlängert" "ad": "Anzeige" " -> SKIPPED: ad '%s' is not published yet": " -> ÜBERSPRUNGEN: Anzeige '%s' ist noch nicht veröffentlicht" " -> SKIPPED: ad '%s' (ID: %s) not found in published ads": " -> ÜBERSPRUNGEN: Anzeige '%s' (ID: %s) nicht gefunden" " -> SKIPPED: ad '%s' is not active (state: %s)": " -> ÜBERSPRUNGEN: Anzeige '%s' ist nicht aktiv (Status: %s)" " -> SKIPPED: ad '%s' has no endDate in API response": " -> ÜBERSPRUNGEN: Anzeige '%s' hat kein Ablaufdatum in API-Antwort" " -> ad '%s' expires in %d days, will extend": " -> Anzeige '%s' läuft in %d Tagen ab, wird verlängert" " -> SKIPPED: ad '%s' expires in %d days (can only extend within 8 days)": " -> ÜBERSPRUNGEN: Anzeige '%s' läuft in %d Tagen ab (Verlängern nur innerhalb von 8 Tagen möglich)" "Processing %s/%s: '%s' from [%s]...": "Verarbeite %s/%s: '%s' aus [%s]..." extend_ad: "Extending ad '%s' (ID: %s)...": "Verlängere Anzeige '%s' (ID: %s)..." " -> FAILED: Could not find extend button for ad ID %s": " -> FEHLER: 'Verlängern'-Button für Anzeigen-ID %s nicht gefunden" " -> No confirmation dialog found, extension may have completed directly": " -> Kein Bestätigungsdialog gefunden" " -> SUCCESS: ad extended with ID %s": " -> ERFOLG: Anzeige mit ID %s verlängert" " -> FAILED: Timeout while extending ad '%s': %s": " -> FEHLER: Zeitüberschreitung beim Verlängern der Anzeige '%s': %s" " -> FAILED: Could not persist extension for ad '%s': %s": " -> FEHLER: Verlängerung der Anzeige '%s' konnte nicht gespeichert werden: %s" find_and_click_extend_button: "Found extend button on page %s": "'Verlängern'-Button auf Seite %s gefunden" finalize_installation_mode: "Config file: %s": "Konfigurationsdatei: %s" "First run detected, prompting user for installation mode": "Erster Start erkannt, frage Benutzer nach Installationsmodus" "Installation mode: %s": "Installationsmodus: %s" publish_ads: "Processing %s/%s: '%s' from [%s]...": "Verarbeite %s/%s: '%s' von [%s]..." "Skipping because ad is reserved": "Überspringen, da Anzeige reserviert ist" " -> Could not confirm publishing for '%s', but ad may be online": " -> Veröffentlichung für '%s' konnte nicht bestätigt werden, aber Anzeige ist möglicherweise online" "Attempt %s/%s failed for '%s': %s. Retrying...": "Versuch %s/%s fehlgeschlagen für '%s': %s. Erneuter Versuch..." "All %s attempts failed for '%s': %s. Skipping ad.": "Alle %s Versuche fehlgeschlagen für '%s': %s. Überspringe Anzeige." "DONE: (Re-)published %s (%s failed after retries)": "FERTIG: %s (erneut) veröffentlicht (%s fehlgeschlagen nach Wiederholungen)" "DONE: (Re-)published %s": "FERTIG: %s (erneut) veröffentlicht" "ad": "Anzeige" apply_auto_price_reduction: "Auto price reduction is enabled for [%s] but no price is configured.": "Automatische Preisreduzierung ist für [%s] aktiviert, aber es wurde kein Preis konfiguriert." "Auto price reduction is enabled for [%s] but min_price equals price (%s) - no reductions will occur.": "Automatische Preisreduzierung ist für [%s] aktiviert, aber min_price entspricht dem Preis (%s) - es werden keine Reduktionen auftreten." "Auto price reduction applied: %s -> %s after %s reduction cycles": "Automatische Preisreduzierung angewendet: %s -> %s nach %s Reduktionszyklen" "Auto price reduction kept price %s after attempting %s reduction cycles": "Automatische Preisreduzierung hat Preis %s beibehalten nach dem Versuch von %s Reduktionszyklen" _repost_cycle_ready: "Auto price reduction delayed for [%s]: waiting %s more reposts (completed %s, applied %s reductions)": "Automatische Preisreduzierung für [%s] verzögert: Warte %s weitere erneute Veröffentlichungen (abgeschlossen %s, angewendet %s Reduktionen)" "Auto price reduction already applied for [%s]: %s reductions match %s eligible reposts": "Automatische Preisreduzierung für [%s] bereits angewendet: %s Reduktionen entsprechen %s berechtigten erneuten Veröffentlichungen" _day_delay_elapsed: "Auto price reduction delayed for [%s]: waiting %s days (elapsed %s)": "Automatische Preisreduzierung für [%s] verzögert: Warte %s Tage (vergangen %s)" "Auto price reduction delayed for [%s]: waiting %s days but publish timestamp missing": "Automatische Preisreduzierung für [%s] verzögert: Warte %s Tage, aber Zeitstempel der Veröffentlichung fehlt" publish_ad: "Publishing ad '%s'...": "Veröffentliche Anzeige '%s'..." "Updating ad '%s'...": "Aktualisiere Anzeige '%s'..." "Failed to set shipping attribute for type '%s'!": "Fehler beim setzen des Versandattributs für den Typ '%s'!" "Shipping step skipped - reason: NOT_APPLICABLE": "Versandschritt übersprungen: Versand nicht anwendbar (Status = NOT_APPLICABLE)" "# Payment form detected! Please proceed with payment.": "# Bestellformular gefunden! Bitte mit der Bezahlung fortfahren." " -> SUCCESS: ad published with ID %s": " -> ERFOLG: Anzeige mit ID %s veröffentlicht" " -> SUCCESS: ad updated with ID %s": " -> ERFOLG: Anzeige mit ID %s aktualisiert" " -> effective ad meta:": " -> effektive Anzeigen-Metadaten:" "Press a key to continue...": "Eine Taste drücken, um fortzufahren..." update_ads: "Processing %s/%s: '%s' from [%s]...": "Verarbeite %s/%s: '%s' von [%s]..." "Skipping because ad is reserved": "Überspringen, da Anzeige reserviert ist" "DONE: updated %s": "FERTIG: %s aktualisiert" "ad": "Anzeige" __set_condition: "Unable to close condition dialog!": "Kann den Dialog für Artikelzustand nicht schließen!" "Unable to open condition dialog and select condition [%s]": "Zustandsdialog konnte nicht geöffnet und Zustand [%s] nicht ausgewählt werden" "Unable to select condition [%s]": "Zustand [%s] konnte nicht ausgewählt werden" __set_contact_fields: "Could not set contact street.": "Kontaktstraße konnte nicht gesetzt werden." "Could not set contact name.": "Kontaktname konnte nicht gesetzt werden." "Could not set contact location: %s": "Kontaktort konnte nicht gesetzt werden: %s" "Could not set contact zipcode: %s": "Kontakt-PLZ konnte nicht gesetzt werden: %s" "No city dropdown option matched location: %s": "Kein Eintrag im Orts-Dropdown passte zum Ort: %s" ? "Phone number field not present on page. This is expected for many private accounts; commercial accounts may still support phone numbers." : "Telefonnummernfeld auf der Seite nicht vorhanden. Dies ist bei vielen privaten Konten zu erwarten; gewerbliche Konten unterstützen Telefonnummern möglicherweise weiterhin." __upload_images: " -> found %s": "-> %s gefunden" "image": "Bild" " -> uploading image [%s]": " -> Lade Bild [%s] hoch" " -> waiting for %s to be processed...": " -> Warte auf Verarbeitung von %s..." " -> all images uploaded successfully": " -> Alle Bilder erfolgreich hochgeladen" "Image upload timeout exceeded": "Zeitüberschreitung beim Hochladen der Bilder" "Not all images were uploaded within timeout. Expected %(expected)d, found %(found)d thumbnails.": "Nicht alle Bilder wurden innerhalb der Zeitüberschreitung hochgeladen. Erwartet: %(expected)d, gefunden: %(found)d Miniaturansichten." check_thumbnails_uploaded: " -> %d of %d images processed": " -> %d von %d Bildern verarbeitet" __check_ad_republication: " -> SKIPPED: ad [%s] was last published %d days ago. republication is only required every %s days": " -> ÜBERSPRUNGEN: Anzeige [%s] wurde zuletzt vor %d Tagen veröffentlicht. Erneute Veröffentlichung ist erst nach %s Tagen erforderlich" __set_special_attributes: "Found %i special attributes": "%i spezielle Attribute gefunden" "Setting special attribute [%s] to [%s]...": "Setze spezielles Attribut [%s] auf [%s]..." "Successfully set attribute field [%s] to [%s]...": "Attributfeld [%s] erfolgreich auf [%s] gesetzt..." "Attribute field '%s' could not be found.": "Attributfeld '%s' konnte nicht gefunden werden." "Failed to set attribute '%s'": "Fehler beim Setzen des Attributs '%s'" "Attribute field '%s' seems to be a select...": "Attributfeld '%s' scheint ein Auswahlfeld zu sein..." "Failed to set attribute field '%s' via known input types.": "Fehler beim Setzen des Attributfelds '%s' über bekannte Eingabetypen." "Attribute field '%s' seems to be a checkbox...": "Attributfeld '%s' scheint eine Checkbox zu sein..." "Attribute field '%s' seems to be a text input...": "Attributfeld '%s' scheint ein Texteingabefeld zu sein..." "Attribute field '%s' seems to be a Combobox (i.e. text input with filtering dropdown)...": "Attributfeld '%s' scheint eine Combobox zu sein (d.h. Texteingabefeld mit Dropdown-Filter)..." download_ads: "Scanning your ad overview...": "Scanne Anzeigenübersicht..." "%s found.": "%s gefunden." "ad": "Anzeige" "Starting download of all ads...": "Starte den Download aller Anzeigen..." "%d of %d ads were downloaded from your profile.": "%d von %d Anzeigen wurden aus Ihrem Profil heruntergeladen." "Starting download of not yet downloaded ads...": "Starte den Download noch nicht heruntergeladener Anzeigen..." "The ad with id %d has already been saved.": "Die Anzeige mit der ID %d wurde bereits gespeichert." "%s were downloaded from your profile.": "%s wurden aus Ihrem Profil heruntergeladen." "new ad": "neue Anzeige" "Starting download of ad(s) with the id(s):": "Starte Download der Anzeige(n) mit den ID(s):" "Downloaded ad with id %d": "Anzeige mit der ID %d heruntergeladen" "The page with the id %d does not exist!": "Die Seite mit der ID %d existiert nicht!" parse_args: "Use --help to display available options.": "Mit --help können die verfügbaren Optionen angezeigt werden." "More than one command given: %s": "Mehr als ein Befehl angegeben: %s" run: "DONE: No configuration errors found.": "FERTIG: Keine Konfigurationsfehler gefunden." "DONE: No active ads found.": "FERTIG: Keine aktiven Anzeigen gefunden." "You provided no ads selector. Defaulting to \"due\".": "Es wurden keine Anzeigen-Selektor angegeben. Es wird \"due\" verwendet." "DONE: No new/outdated ads found.": "FERTIG: Keine neuen/veralteten Anzeigen gefunden." "DONE: No ads to delete found.": "FERTIG: Keine zu löschenden Anzeigen gefunden." "DONE: No changed ads found.": "FERTIG: Keine geänderten Anzeigen gefunden." "Extending all ads within 8-day window...": "Verlängere alle Anzeigen innerhalb des 8-Tage-Zeitfensters..." "DONE: No ads found to extend.": "FERTIG: Keine Anzeigen zum Verlängern gefunden." "You provided no ads selector. Defaulting to \"new\".": "Es wurden keine Anzeigen-Selektor angegeben. Es wird \"new\" verwendet." "You provided no ads selector. Defaulting to \"changed\".": "Es wurden keine Anzeigen-Selektor angegeben. Es wird \"changed\" verwendet." "Unknown command: %s": "Unbekannter Befehl: %s" fill_login_data_and_send: "Logging in as [%s]...": "Anmeldung als [%s]..." __set_shipping: "Unable to close shipping dialog!": "Versanddialog konnte nicht geschlossen werden!" __set_shipping_options: "Unable to close shipping dialog!": "Versanddialog konnte nicht geschlossen werden!" update_content_hashes: "DONE: Updated [content_hash] in %s": "FERTIG: [content_hash] in %s aktualisiert." "Processing %s/%s: '%s' from [%s]...": "Verarbeite %s/%s: '%s' von [%s]..." "ad": "Anzeige" ################################################# kleinanzeigen_bot/extract.py: ################################################# download_ad: "Using download directory: %s": "Verwende Download-Verzeichnis: %s" _download_and_save_image_sync: "Failed to download image %s: %s": "Fehler beim Herunterladen des Bildes %s: %s" _download_images_from_ad_page: "Found %s.": "%s gefunden." "Downloaded %s.": "%s heruntergeladen." "No image area found. Continuing without downloading images.": "Keine Bildbereiche gefunden. Fahre ohne Bilder-Download fort." extract_ad_id_from_ad_url: "Failed to extract ad ID from URL '%s': %s": "Fehler beim Extrahieren der Anzeigen-ID aus der URL '%s': %s" extract_own_ads_urls: "No ad URLs were extracted.": "Es wurden keine Anzeigen-URLs extrahiert." extract_page_refs: "Could not find ad list container or items on page %s.": "Anzeigenlistencontainer oder Elemente auf Seite %s nicht gefunden." "Error extracting refs on page %s: %s": "Fehler beim Extrahieren der Referenzen auf Seite %s: %s" "Found %s ad items on page %s.": "%s Anzeigen-Elemente auf Seite %s gefunden." "Successfully extracted %s refs from page %s.": "%s Referenzen von Seite %s erfolgreich extrahiert." navigate_to_ad_page: "There is no ad under the given ID.": "Es gibt keine Anzeige unter der angegebenen ID." "A popup appeared!": "Ein Popup ist erschienen!" _extract_ad_page_info_with_directory_handling: "Extracting title from ad %s: \"%s\"": "Extrahiere Titel aus Anzeige %s: \"%s\"" "Deleting current folder of ad %s...": "Lösche aktuellen Ordner der Anzeige %s..." "New directory for ad created at %s.": "Neues Verzeichnis für Anzeige erstellt unter %s." "Renaming folder from %s to %s for ad %s...": "Benenne Ordner von %s zu %s für Anzeige %s um..." "Using existing folder for ad %s at %s.": "Verwende bestehenden Ordner für Anzeige %s unter %s." _extract_contact_from_ad_page: "No street given in the contact.": "Keine Straße in den Kontaktdaten angegeben." _extract_category_from_ad_page: "Breadcrumb container 'vap-brdcrmb' not found; cannot extract ad category: %s": "Breadcrumb-Container 'vap-brdcrmb' nicht gefunden; kann Anzeigenkategorie nicht extrahieren: %s" "Falling back to legacy breadcrumb selectors; collected ids: %s": "Weiche auf ältere Breadcrumb-Selektoren aus; gesammelte IDs: %s" "Legacy breadcrumb selectors not found within %.1f seconds (collected ids: %s)": "Ältere Breadcrumb-Selektoren nicht innerhalb von %.1f Sekunden gefunden (gesammelte IDs: %s)" "Unable to locate breadcrumb fallback selectors within %(seconds).1f seconds.": "Ältere Breadcrumb-Selektoren konnten nicht innerhalb von %(seconds).1f Sekunden gefunden werden." _extract_sell_directly_from_ad_page: "Could not extract ad ID from URL: %s": "Konnte Anzeigen-ID nicht aus der URL extrahieren: %s" ################################################# kleinanzeigen_bot/utils/i18n.py: ################################################# _detect_locale: "Error detecting language on Windows": "Fehler bei der Spracherkennung unter Windows" ################################################# kleinanzeigen_bot/utils/error_handlers.py: ################################################# on_sigint: "Aborted on user request.": "Auf Benutzeranfrage abgebrochen." on_exception: "%s: %s": "%s: %s" "Unknown exception occurred (missing exception info): ex_type=%s, ex=%s": "Unbekannter Fehler aufgetreten (fehlende Fehlerinformation): ex_type=%s, ex_value=%s" ################################################# kleinanzeigen_bot/utils/loggers.py: ################################################# format: "CRITICAL": "KRITISCH" "ERROR": "FEHLER" "WARNING": "WARNUNG" ################################################# kleinanzeigen_bot/utils/dicts.py: ################################################# load_dict_if_exists: "Loading %s[%s]...": "Lade %s[%s]..." "Unsupported file type. The filename \"%s\" must end with *.json, *.yaml, or *.yml": "Nicht unterstützter Dateityp. Der Dateiname \"%s\" muss mit *.json, *.yaml oder *.yml enden" save_dict: "Saving [%s]...": "Speichere [%s]..." load_dict_from_module: "Loading %s[%s.%s]...": "Lade %s[%s.%s]..." ################################################# kleinanzeigen_bot/utils/pydantics.py: ################################################# __get_message_template: "Object has no attribute '{attribute}'": "Objekt hat kein Attribut '{attribute}'" "Invalid JSON: {error}": "Ungültiges JSON: {error}" "JSON input should be string, bytes or bytearray": "JSON-Eingabe sollte eine Zeichenkette, Bytes oder Bytearray sein" "Cannot check `{method_name}` when validating from json, use a JsonOrPython validator instead": "Kann `{method_name}` beim Validieren von JSON nicht prüfen, verwende stattdessen einen JsonOrPython-Validator" "Recursion error - cyclic reference detected": "Rekursionsfehler – zirkuläre Referenz erkannt" "Field required": "Feld erforderlich" "Field is frozen": "Feld ist gesperrt" "Instance is frozen": "Instanz ist gesperrt" "Extra inputs are not permitted": "Zusätzliche Eingaben sind nicht erlaubt" "Keys should be strings": "Schlüssel sollten Zeichenketten sein" "Error extracting attribute: {error}": "Fehler beim Extrahieren des Attributs: {error}" "Input should be a valid dictionary or instance of {class_name}": "Eingabe sollte ein gültiges Wörterbuch oder eine Instanz von {class_name} sein" "Input should be a valid dictionary or object to extract fields from": "Eingabe sollte ein gültiges Wörterbuch oder Objekt sein, um Felder daraus zu extrahieren" "Input should be a dictionary or an instance of {class_name}": "Eingabe sollte ein Wörterbuch oder eine Instanz von {class_name} sein" "Input should be an instance of {class_name}": "Eingabe sollte eine Instanz von {class_name} sein" "Input should be None": "Eingabe sollte None sein" "Input should be greater than {gt}": "Eingabe sollte größer als {gt} sein" "Input should be greater than or equal to {ge}": "Eingabe sollte größer oder gleich {ge} sein" "Input should be less than {lt}": "Eingabe sollte kleiner als {lt} sein" "Input should be less than or equal to {le}": "Eingabe sollte kleiner oder gleich {le} sein" "Input should be a multiple of {multiple_of}": "Eingabe sollte ein Vielfaches von {multiple_of} sein" "Input should be a finite number": "Eingabe sollte eine endliche Zahl sein" "{field_type} should have at least {min_length} item{expected_plural} after validation, not {actual_length}": "{field_type} sollte nach der Validierung mindestens {min_length} Element{expected_plural} haben, nicht {actual_length}" "{field_type} should have at most {max_length} item{expected_plural} after validation, not {actual_length}": "{field_type} sollte nach der Validierung höchstens {max_length} Element{expected_plural} haben, nicht {actual_length}" "Input should be iterable": "Eingabe sollte iterierbar sein" "Error iterating over object, error: {error}": "Fehler beim Iterieren des Objekts: {error}" "Input should be a valid string": "Eingabe sollte eine gültige Zeichenkette sein" "Input should be a string, not an instance of a subclass of str": "Eingabe sollte ein String sein, keine Instanz einer Unterklasse von str" "Input should be a valid string, unable to parse raw data as a unicode string": "Eingabe sollte eine gültige Zeichenkette sein, Rohdaten können nicht als Unicode-String geparst werden" "String should have at least {min_length} character{expected_plural}": "String sollte mindestens {min_length} Zeichen{expected_plural} haben" "String should have at most {max_length} character{expected_plural}": "String sollte höchstens {max_length} Zeichen{expected_plural} haben" "String should match pattern '{pattern}'": "String sollte dem Muster '{pattern}' entsprechen" "Input should be {expected}": "Eingabe sollte {expected} sein" "Input should be a valid dictionary": "Eingabe sollte ein gültiges Wörterbuch sein" "Input should be a valid mapping, error: {error}": "Eingabe sollte eine gültige Zuordnung sein, Fehler: {error}" "Input should be a valid list": "Eingabe sollte eine gültige Liste sein" "Input should be a valid tuple": "Eingabe sollte ein gültiges Tupel sein" "Input should be a valid set": "Eingabe sollte eine gültige Menge sein" "Set items should be hashable": "Elemente einer Menge sollten hashbar sein" "Input should be a valid boolean": "Eingabe sollte ein gültiger Boolescher Wert sein" "Input should be a valid boolean, unable to interpret input": "Eingabe sollte ein gültiger Boolescher Wert sein, Eingabe kann nicht interpretiert werden" "Input should be a valid integer": "Eingabe sollte eine gültige Ganzzahl sein" "Input should be a valid integer, unable to parse string as an integer": "Eingabe sollte eine gültige Ganzzahl sein, Zeichenkette konnte nicht als Ganzzahl geparst werden" "Input should be a valid integer, got a number with a fractional part": "Eingabe sollte eine gültige Ganzzahl sein, Zahl hat einen Dezimalteil" "Unable to parse input string as an integer, exceeded maximum size": "Zeichenkette konnte nicht als Ganzzahl geparst werden, maximale Größe überschritten" "Input should be a valid number": "Eingabe sollte eine gültige Zahl sein" "Input should be a valid number, unable to parse string as a number": "Eingabe sollte eine gültige Zahl sein, Zeichenkette kann nicht als Zahl geparst werden" "Input should be a valid bytes": "Eingabe sollte gültige Bytes sein" "Data should have at least {min_length} byte{expected_plural}": "Daten sollten mindestens {min_length} Byte{expected_plural} enthalten" "Data should have at most {max_length} byte{expected_plural}": "Daten sollten höchstens {max_length} Byte{expected_plural} enthalten" "Data should be valid {encoding}: {encoding_error}": "Daten sollten gültiges {encoding} sein: {encoding_error}" "Value error, {error}": "Wertfehler: {error}" "Assertion failed, {error}": "Assertion fehlgeschlagen: {error}" "Input should be a valid date": "Eingabe sollte ein gültiges Datum sein" "Input should be a valid date in the format YYYY-MM-DD, {error}": "Eingabe sollte ein gültiges Datum im Format YYYY-MM-DD sein: {error}" "Input should be a valid date or datetime, {error}": "Eingabe sollte ein gültiges Datum oder eine gültige Datums-Uhrzeit sein: {error}" "Datetimes provided to dates should have zero time - e.g. be exact dates": "Datetime-Werte für Datum sollten keine Uhrzeit enthalten – also exakte Daten sein" "Date should be in the past": "Datum sollte in der Vergangenheit liegen" "Date should be in the future": "Datum sollte in der Zukunft liegen" "Input should be a valid time": "Eingabe sollte eine gültige Uhrzeit sein" "Input should be in a valid time format, {error}": "Eingabe sollte in einem gültigen Zeitformat sein: {error}" "Input should be a valid datetime": "Eingabe sollte ein gültiges Datum mit Uhrzeit sein" "Input should be a valid datetime, {error}": "Eingabe sollte ein gültiges Datum mit Uhrzeit sein: {error}" "Invalid datetime object, got {error}": "Ungültiges Datetime-Objekt: {error}" "Input should be a valid datetime or date, {error}": "Eingabe sollte ein gültiges Datum oder Datum mit Uhrzeit sein: {error}" "Input should be in the past": "Eingabe sollte in der Vergangenheit liegen" "Input should be in the future": "Eingabe sollte in der Zukunft liegen" "Input should not have timezone info": "Eingabe sollte keine Zeitzonen-Information enthalten" "Input should have timezone info": "Eingabe sollte Zeitzonen-Information enthalten" "Timezone offset of {tz_expected} required, got {tz_actual}": "Zeitzonen-Offset von {tz_expected} erforderlich, erhalten: {tz_actual}" "Input should be a valid timedelta": "Eingabe sollte ein gültiges Zeitdelta sein" "Input should be a valid timedelta, {error}": "Eingabe sollte ein gültiges Zeitdelta sein: {error}" "Input should be a valid frozenset": "Eingabe sollte ein gültiges Frozenset sein" "Input should be an instance of {class}": "Eingabe sollte eine Instanz von {class} sein" "Input should be a subclass of {class}": "Eingabe sollte eine Unterklasse von {class} sein" "Input should be callable": "Eingabe sollte aufrufbar sein" "Input tag '{tag}' found using {discriminator} does not match any of the expected tags: {expected_tags}": "Eingabe-Tag '{tag}', ermittelt durch {discriminator}, stimmt mit keinem der erwarteten Tags überein: {expected_tags}" "Unable to extract tag using discriminator {discriminator}": "Tag kann mit {discriminator} nicht extrahiert werden" "Arguments must be a tuple, list or a dictionary": "Argumente müssen ein Tupel, eine Liste oder ein Wörterbuch sein" "Missing required argument": "Erforderliches Argument fehlt" "Unexpected keyword argument": "Unerwartetes Schlüsselwort-Argument" "Missing required keyword only argument": "Erforderliches keyword-only-Argument fehlt" "Unexpected positional argument": "Unerwartetes Positionsargument" "Missing required positional only argument": "Erforderliches positional-only-Argument fehlt" "Got multiple values for argument": "Mehrere Werte für Argument erhalten" "URL input should be a string or URL": "URL-Eingabe sollte eine Zeichenkette oder URL sein" "Input should be a valid URL, {error}": "Eingabe sollte eine gültige URL sein: {error}" "Input violated strict URL syntax rules, {error}": "Eingabe hat strikte URL-Syntaxregeln verletzt: {error}" "URL should have at most {max_length} character{expected_plural}": "URL sollte höchstens {max_length} Zeichen{expected_plural} haben" "URL scheme should be {expected_schemes}": "URL-Schema sollte {expected_schemes} sein" "UUID input should be a string, bytes or UUID object": "UUID-Eingabe sollte eine Zeichenkette, Bytes oder ein UUID-Objekt sein" "Input should be a valid UUID, {error}": "Eingabe sollte eine gültige UUID sein: {error}" "UUID version {expected_version} expected": "UUID-Version {expected_version} erwartet" "Decimal input should be an integer, float, string or Decimal object": "Decimal-Eingabe sollte eine Ganzzahl, Gleitkommazahl, Zeichenkette oder ein Decimal-Objekt sein" "Input should be a valid decimal": "Eingabe sollte ein gültiges Decimal sein" "Decimal input should have no more than {max_digits} digit{expected_plural} in total": "Decimal-Eingabe sollte insgesamt nicht mehr als {max_digits} Ziffer{expected_plural} haben" "Decimal input should have no more than {decimal_places} decimal place{expected_plural}": "Decimal-Eingabe sollte nicht mehr als {decimal_places} Dezimalstelle{expected_plural} haben" "Decimal input should have no more than {whole_digits} digit{expected_plural} before the decimal point": "Decimal-Eingabe sollte vor dem Dezimalpunkt nicht mehr als {whole_digits} Ziffer{expected_plural} haben" ? "Input should be a valid python complex object, a number, or a valid complex string following the rules at https://docs.python.org/3/library/functions.html#complex" : "Eingabe sollte ein gültiges Python-komplexes Objekt, eine Zahl oder eine gültige komplexe Zeichenkette sein, gemäß https://docs.python.org/3/library/functions.html#complex" "Input should be a valid complex string following the rules at https://docs.python.org/3/library/functions.html#complex": "Eingabe sollte eine gültige komplexe Zeichenkette sein, gemäß https://docs.python.org/3/library/functions.html#complex" format_validation_error: "validation error": "Validationsfehler" "%s for [%s]:": "%s für %s" "' or '": "' oder '" ################################################# kleinanzeigen_bot/utils/web_scraping_mixin.py: ################################################# create_browser_session: "Creating Browser session...": "Erstelle Browser-Sitzung..." "Using existing browser process at %s:%s": "Verwende existierenden Browser-Prozess unter %s:%s" "New Browser session is %s": "Neue Browser-Sitzung ist %s" " -> Browser binary location: %s": " -> Browser-Programmpfad: %s" " -> Browser profile name: %s": " -> Browser-Profilname: %s" " -> Browser user data dir: %s": " -> Browser-Benutzerdatenverzeichnis: %s" " -> Custom Browser argument: %s": " -> Benutzerdefiniertes Browser-Argument: %s" "Ignoring empty --user-data-dir= argument; falling back to configured user_data_dir.": "Ignoriere leeres --user-data-dir= Argument; verwende konfiguriertes user_data_dir." "Configured browser.user_data_dir (%s) does not match --user-data-dir argument (%s); using the argument value.": "Konfiguriertes browser.user_data_dir (%s) stimmt nicht mit --user-data-dir Argument (%s) überein; verwende Argument-Wert." "Remote debugging detected, but browser configuration looks invalid: %s": "Remote-Debugging erkannt, aber Browser-Konfiguration scheint ungültig: %s" " -> Setting chrome prefs [%s]...": " -> Setze Chrome-Einstellungen [%s]..." " -> Adding Browser extension: [%s]": " -> Füge Browser-Erweiterung hinzu: [%s]" "Failed to connect to browser. This error often occurs when:": "Fehler beim Verbinden mit dem Browser. Dieser Fehler tritt häufig auf, wenn:" "Failed to start browser. This error often occurs when:": "Fehler beim Starten des Browsers. Dieser Fehler tritt häufig auf, wenn:" "1. Running as root user (try running as regular user)": "1. Als Root-Benutzer ausgeführt wird (versuchen Sie es als normaler Benutzer)" "2. Browser profile is locked or in use by another process": "2. Das Browser-Profil gesperrt oder von einem anderen Prozess verwendet wird" "3. Insufficient permissions to access the browser profile": "3. Unzureichende Berechtigungen für den Zugriff auf das Browser-Profil" "4. Browser is not properly started with remote debugging enabled": "4. Der Browser nicht ordnungsgemäß mit aktiviertem Remote-Debugging gestartet wurde" "4. Browser binary is not executable or missing": "4. Die Browser-Binärdatei nicht ausführbar oder fehlend ist" "5. Check if any antivirus or security software is blocking the browser": "5. Überprüfen Sie, ob Antiviren- oder Sicherheitssoftware den Browser blockiert" "Troubleshooting steps:": "Schritte zur Fehlerbehebung:" "1. Close all browser instances and try again": "1. Schließen Sie alle Browser-Instanzen und versuchen Sie es erneut" "2. Remove the user_data_dir configuration temporarily": "2. Entfernen Sie die user_data_dir-Konfiguration vorübergehend" "3. Start browser manually with: %s --remote-debugging-port=%d": "3. Starten Sie den Browser manuell mit: %s --remote-debugging-port=%d" "3. Try running without profile configuration": "3. Versuchen Sie es ohne Profil-Konfiguration" "4. Check browser binary permissions: %s": "4. Überprüfen Sie die Browser-Binärdatei-Berechtigungen: %s" "4. Check if any antivirus or security software is blocking the connection": "4. Überprüfen Sie, ob Antiviren- oder Sicherheitssoftware die Verbindung blockiert" web_check: "Unsupported attribute: %s": "Nicht unterstütztes Attribut: %s" web_select: "Option not found by value or displayed text: %s": "Option nicht gefunden nach Wert oder angezeigtem Text: %s" web_select_combobox: "Combobox input field does not have 'aria-controls' attribute.": "Das Eingabefeld der Combobox hat kein 'aria-controls'-Attribut." "Combobox missing aria-controls attribute": "Combobox fehlt aria-controls Attribut" "No matching option found in combobox: '%s'": "Keine passende Option in Combobox gefunden: '%s'" _navigate_paginated_ad_overview: "Failed to open ad overview page at %s: timeout": "Fehler beim Öffnen der Anzeigenübersichtsseite unter %s: Zeitüberschreitung" "Scroll timeout on page %s (non-critical, continuing)": "Zeitüberschreitung beim Scrollen auf Seite %s (nicht kritisch, wird fortgesetzt)" "Page action timed out on page %s": "Seitenaktion hat auf Seite %s eine Zeitüberschreitung erreicht" "Ad list container not found. Maybe no ads present?": "Anzeigenlistencontainer nicht gefunden. Vielleicht sind keine Anzeigen vorhanden?" "Multiple ad pages detected.": "Mehrere Anzeigenseiten erkannt." "No pagination controls found. Assuming single page.": "Keine Paginierungssteuerung gefunden. Es wird von einer einzelnen Seite ausgegangen." "Processing page %s...": "Verarbeite Seite %s..." "Navigating to page %s...": "Navigiere zu Seite %s..." "Last page reached (no enabled 'Naechste' button found).": "Letzte Seite erreicht (kein aktivierter 'Naechste'-Button gefunden)." "No pagination controls found. Assuming last page.": "Keine Paginierungssteuerung gefunden. Es wird von der letzten Seite ausgegangen." close_browser_session: "Closing Browser session...": "Schließe Browser-Sitzung..." get_compatible_browser: "Installed browser could not be detected": "Installierter Browser konnte nicht erkannt werden" "Installed browser for OS %s could not be detected": "Installierter Browser für Betriebssystem %s konnte nicht erkannt werden" web_open: " => skipping, [%s] is already open": " => überspringe, [%s] ist bereits geöffnet" " -> Opening [%s]...": " -> Öffne [%s]..." web_request: " -> HTTP %s [%s]...": " -> HTTP %s [%s]..." _web_find_once: "Unsupported selector type: %s": "Nicht unterstützter Selektor-Typ: %s" _web_find_all_once: "Unsupported selector type: %s": "Nicht unterstützter Selektor-Typ: %s" diagnose_browser_issues: "=== Browser Connection Diagnostics ===": "=== Browser-Verbindungsdiagnose ===" "=== End Diagnostics ===": "=== Ende der Diagnose ===" "(ok) Browser binary exists: %s": "(Ok) Browser-Binärdatei existiert: %s" "(ok) Browser binary is executable": "(Ok) Browser-Binärdatei ist ausführbar" "(ok) Auto-detected browser: %s": "(Ok) Automatisch erkannter Browser: %s" "(ok) User data directory exists: %s": "(Ok) Benutzerdatenverzeichnis existiert: %s" "(ok) User data directory is readable and writable": "(Ok) Benutzerdatenverzeichnis ist lesbar und beschreibbar" "(ok) Remote debugging port is open": "(Ok) Remote-Debugging-Port ist offen" "(fail) Browser binary not found: %s": "(Fehler) Browser-Binärdatei nicht gefunden: %s" "(fail) Browser binary is not executable": "(Fehler) Browser-Binärdatei ist nicht ausführbar" "(fail) No compatible browser found": "(Fehler) Kein kompatibler Browser gefunden" "(fail) User data directory permissions issue": "(Fehler) Benutzerdatenverzeichnis-Berechtigungsproblem" "(info) User data directory does not exist (will be created): %s": "(Info) Benutzerdatenverzeichnis existiert nicht (wird erstellt): %s" "(info) Remote debugging port configured: %d": "(Info) Remote-Debugging-Port konfiguriert: %d" "(info) Remote debugging port is not open": "(Info) Remote-Debugging-Port ist nicht offen" "(warn) Unable to inspect browser processes: %s": "(Warnung) Browser-Prozesse konnten nicht überprüft werden: %s" "(info) No browser processes currently running": "(Info) Derzeit keine Browser-Prozesse aktiv" "(fail) Running as root - this can cause browser issues": "(Fehler) Läuft als Root - dies kann Browser-Probleme verursachen" "(info) Found %d browser processes running": "(Info) %d Browser-Prozesse aktiv gefunden" " - PID %d: %s (remote debugging enabled)": " - PID %d: %s (Remote-Debugging aktiviert)" " - PID %d: %s (remote debugging NOT enabled)": " - PID %d: %s (Remote-Debugging NICHT aktiviert)" "(ok) Remote debugging API accessible - Browser: %s": "(ok) Remote-Debugging-API zugänglich - Browser: %s" "(fail) Remote debugging port is open but API not accessible: %s": "(Fehler) Remote-Debugging-Port ist offen, aber API nicht zugänglich: %s" " This might indicate a browser update issue or configuration problem": " Dies könnte auf ein Browser-Update-Problem oder Konfigurationsproblem hinweisen" _validate_chrome_136_configuration: " -> %s 136+ configuration validation failed: %s": " -> %s 136+ Konfigurationsvalidierung fehlgeschlagen: %s" " -> %s 136+ configuration validation passed": " -> %s 136+ Konfigurationsvalidierung bestanden" _validate_chrome_version_configuration: " -> %s 136+ detected: %s": " -> %s 136+ erkannt: %s" " -> %s version detected: %s (pre-136, no special validation required)": " -> %s-Version erkannt: %s (vor 136, keine besondere Validierung erforderlich)" " -> Browser version detection failed, skipping validation: %s": " -> Browser-Versionserkennung fehlgeschlagen, Validierung wird übersprungen: %s" " -> Unexpected error during browser version validation, skipping: %s": " -> Unerwarteter Fehler bei Browser-Versionsvalidierung, wird übersprungen: %s" _diagnose_chrome_version_issues: "(info) %s version from binary: %s (major: %d)": "(Info) %s-Version von Binärdatei: %s (Hauptversion: %d)" "(info) %s version from remote debugging: %s (major: %d)": "(Info) %s-Version von Remote-Debugging: %s (Hauptversion: %d)" "(info) %s 136+ detected - security validation required": "(Info) %s 136+ erkannt - Sicherheitsvalidierung erforderlich" "(info) %s pre-136 detected - no special security requirements": "(Info) %s vor 136 erkannt - keine besonderen Sicherheitsanforderungen" "(info) Remote %s 136+ detected - validating configuration": "(Info) Remote %s 136+ erkannt - validiere Konfiguration" "(fail) %s 136+ configuration validation failed: %s": "(Fehler) %s 136+ Konfigurationsvalidierung fehlgeschlagen: %s" "(ok) %s 136+ configuration validation passed": "(Ok) %s 136+ Konfigurationsvalidierung bestanden" "(info) Chrome/Edge 136+ security changes require --user-data-dir for remote debugging": "(Info) Chrome/Edge 136+ Sicherheitsänderungen erfordern --user-data-dir für Remote-Debugging" " See: https://developer.chrome.com/blog/remote-debugging-port": " Siehe: https://developer.chrome.com/blog/remote-debugging-port" " -> Browser version diagnostics failed: %s": " -> Browser-Versionsdiagnose fehlgeschlagen: %s" " -> Unexpected error during browser version diagnostics: %s": " -> Unerwarteter Fehler bei Browser-Versionsdiagnose: %s" " Solution: Add --user-data-dir=/path/to/directory to browser arguments": " Lösung: Fügen Sie --user-data-dir=/pfad/zum/verzeichnis zu Browser-Argumenten hinzu" " And user_data_dir: \"/path/to/directory\" to your configuration": " Und user_data_dir: \"/pfad/zum/verzeichnis\" zu Ihrer Konfiguration" ################################################# kleinanzeigen_bot/update_checker.py: ################################################# _resolve_commitish: "Could not resolve commit '%s': %s": "Konnte Commit '%s' nicht aufloesen: %s" check_for_updates: "A new version is available: %s from %s UTC (current: %s from %s UTC, channel: %s)": "Eine neue Version ist verfügbar: %s vom %s UTC (aktuell: %s vom %s UTC, Kanal: %s)" "Could not determine commit dates for comparison.": "Konnte Commit-Daten für den Vergleich nicht ermitteln." "Could not determine local commit hash.": "Konnte lokalen Commit-Hash nicht ermitteln." "Could not determine local version.": "Konnte lokale Version nicht ermitteln." "Could not determine release commit hash.": "Konnte Release-Commit-Hash nicht ermitteln." "Could not get releases: %s": "Konnte Releases nicht abrufen: %s" ? "Release notes:\n%s" : "Release-Notizen:\n%s" "You are on the latest version: %s (compared to %s in channel %s)": "Sie verwenden die neueste Version: %s (verglichen mit %s im Kanal %s)" "Latest release from GitHub is a prerelease, but 'latest' channel expects a stable release.": "Die neueste GitHub-Version ist eine Vorabversion, aber der 'latest'-Kanal erwartet eine stabile Version." "No prerelease found for 'preview' channel.": "Keine Vorabversion für den 'preview'-Kanal gefunden." "Unknown update channel: %s": "Unbekannter Update-Kanal: %s" ? "You are on a different commit than the release for channel '%s' (tag: %s). This may mean you are ahead, behind, or on a different branch. Local commit: %s (%s UTC), Release commit: %s (%s UTC)" : "Sie befinden sich auf einem anderen Commit als das Release für Kanal '%s' (Tag: %s). Dies kann bedeuten, dass Sie voraus, hinterher oder auf einem anderen Branch sind. Lokaler Commit: %s (%s UTC), Release-Commit: %s (%s UTC)" ################################################# kleinanzeigen_bot/model/config_model.py: ################################################# _validate_config: "strategy must be specified when auto_price_reduction is enabled": "strategy muss angegeben werden, wenn auto_price_reduction aktiviert ist" "amount must be specified when auto_price_reduction is enabled": "amount muss angegeben werden, wenn auto_price_reduction aktiviert ist" "min_price must be specified when auto_price_reduction is enabled": "min_price muss angegeben werden, wenn auto_price_reduction aktiviert ist" "Percentage reduction amount must not exceed %s": "Prozentuale Reduktionsmenge darf %s nicht überschreiten" ################################################# kleinanzeigen_bot/model/ad_model.py: ################################################# _validate_auto_price_reduction_constraints: "price must be specified when auto_price_reduction is enabled": "price muss angegeben werden, wenn auto_price_reduction aktiviert ist" "min_price must not exceed price": "min_price darf price nicht überschreiten" calculate_auto_price: "min_price must be specified when auto_price_reduction is enabled": "min_price muss angegeben werden, wenn auto_price_reduction aktiviert ist" ################################################# kleinanzeigen_bot/model/update_check_state.py: ################################################# _parse_timestamp: "Invalid timestamp format in state file: %s": "Ungültiges Zeitstempel-Format in der Statusdatei: %s" load: "Failed to load update check state: %s": "Fehler beim Laden des Update-Prüfstatus: %s" "Migrating update check state from version %d to %d": "Migriere Update-Prüfstatus von Version %d zu %d" save: "Failed to save update check state: %s": "Fehler beim Speichern des Update-Prüfstatus: %s" "Permission denied when saving update check state to %s": "Keine Berechtigung zum Speichern des Update-Prüfstatus in %s" should_check: "Falling back to default interval: 1d (preview channel). Please fix your config to avoid this warning.": "Falle auf das Standardintervall zurück: 1 Tag (Vorschaukanal). Bitte korrigieren Sie Ihre Konfiguration, um diese Warnung zu vermeiden." "Falling back to default interval: 7d (latest channel). Please fix your config to avoid this warning.": "Falle auf das Standardintervall zurück: 7 Tage (Stabiler Kanal). Bitte korrigieren Sie Ihre Konfiguration, um diese Warnung zu vermeiden." "Interval is zero: %s. Minimum interval is 1d. Using default interval for this run.": "Intervall ist null: %s. Das Mindestintervall beträgt 1 Tag. Es wird das Standardintervall für diesen Durchlauf verwendet." "Interval too long: %s. Maximum interval is 30d. Using default interval for this run.": "Intervall zu lang: %s. Das maximale Intervall beträgt 30 Tage. Es wird das Standardintervall für diesen Durchlauf verwendet." "Interval too short: %s. Minimum interval is 1d. Using default interval for this run.": "Intervall zu kurz: %s. Das Mindestintervall beträgt 1 Tag. Es wird das Standardintervall für diesen Durchlauf verwendet." "Invalid interval format or unsupported unit: %s. Using default interval for this run.": "Ungültiges Intervallformat oder nicht unterstützte Einheit: %s. Es wird das Standardintervall für diesen Durchlauf verwendet." "Negative interval: %s. Minimum interval is 1d. Using default interval for this run.": "Negatives Intervall: %s. Das Mindestintervall beträgt 1 Tag. Es wird das Standardintervall für diesen Durchlauf verwendet." ################################################# kleinanzeigen_bot/utils/xdg_paths.py: ################################################# _ensure_directory: "Failed to create %s %s: %s": "Fehler beim Erstellen von %s %s: %s" detect_installation_mode: "Detected installation mode: %s": "Erkannter Installationsmodus: %s" "No existing installation found": "Keine bestehende Installation gefunden" prompt_installation_mode: "Non-interactive mode detected, defaulting to portable installation": "Nicht-interaktiver Modus erkannt, Standard-Installation: portabel" "Choose installation type:": "Installationstyp wählen:" "[1] Portable (current directory)": "[1] Portabel (aktuelles Verzeichnis)" "[2] System-wide (XDG directories)": "[2] Systemweit (XDG-Verzeichnisse)" "Enter 1 or 2: ": "1 oder 2 eingeben: " "Defaulting to portable installation mode": "Standard-Installationsmodus: portabel" "User selected installation mode: %s": "Benutzer hat Installationsmodus gewählt: %s" "Invalid choice. Please enter 1 or 2.": "Ungültige Auswahl. Bitte 1 oder 2 eingeben."