################################################# 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..." "Already logged in as [%s]. Skipping login.": "Bereits eingeloggt als [%s]. Überspringe Anmeldung." "Opening login page...": "Öffne Anmeldeseite..." 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'..." publish_ads: "Processing %s/%s: '%s' from [%s]...": "Verarbeite %s/%s: '%s' von [%s]..." "Skipping because ad is reserved": "Überspringen, da Anzeige reserviert ist" "DONE: (Re-)published %s": "FERTIG: %s (erneut) veröffentlicht" "ad": "Anzeige" 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:" "Could not set city from location": "Stadt konnte nicht aus dem Standort gesetzt werden" "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" __upload_images: " -> found %s": "-> %s gefunden" "image": "Bild" " -> uploading image [%s]": " -> Lade Bild [%s] hoch" __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." "Attribute field '%s' seems to be a select...": "Attributfeld '%s' scheint ein Auswahlfeld zu sein..." "Attribute field '%s' is not of kind radio button.": "Attributfeld '%s' ist kein Radiobutton." "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..." 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." "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: "Created ads directory at ./%s.": "Verzeichnis für Anzeigen erstellt unter ./%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: "Ad list container #my-manageitems-adlist not found. Maybe no ads present?": "Anzeigenlistencontainer #my-manageitems-adlist nicht gefunden. Vielleicht sind keine Anzeigen vorhanden?" "Multiple ad pages detected.": "Mehrere Anzeigenseiten erkannt." "Next button found but is disabled. Assuming single effective page.": "Weiter-Button gefunden, aber deaktiviert. Es wird von einer einzelnen effektiven Seite ausgegangen." "No \"Naechste\" button found within pagination. Assuming single page.": "Kein \"Nächste\"-Button in der Paginierung gefunden. Es wird von einer einzelnen Seite ausgegangen." "No pagination controls found. Assuming single page.": "Keine Paginierungssteuerung gefunden. Es wird von einer einzelnen Seite ausgegangen." "Assuming single page due to error during pagination check.": "Es wird von einer einzelnen Seite ausgegangen wegen eines Fehlers bei der Paginierungsprüfung." "Navigating to next page...": "Navigiere zur nächsten Seite..." "Last ad overview page explored (no enabled \"Naechste\" button found).": "Letzte Anzeigenübersichtsseite erkundet (kein aktivierter \"Nächste\"-Button gefunden)." "No pagination controls found after scrolling/waiting. Assuming last page.": "Keine Paginierungssteuerung nach dem Scrollen/Warten gefunden. Es wird von der letzten Seite ausgegangen." "No ad URLs were extracted.": "Es wurden keine Anzeigen-URLs extrahiert." "Could not find ad list container or items on page %s.": "Anzeigenlistencontainer oder Elemente auf Seite %s nicht gefunden." "Error during pagination detection: %s": "Fehler bei der Paginierungserkennung: %s" "Error during pagination navigation: %s": "Fehler bei der Paginierungsnavigation: %s" "Error extracting refs on page %s: %s": "Fehler beim Extrahieren der Referenzen auf Seite %s: %s" "Extracting ads from page %s...": "Extrahiere Anzeigen von Seite %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." ################################################# 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]..." " from ": " von " "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" " -> 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_find: "Unsupported selector type: %s": "Nicht unterstützter Selektor-Typ: %s" web_find_all: "Unsupported selector type: %s": "Nicht unterstützter Selektor-Typ: %s" 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]..." 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" "(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 %s (major: %d)": "(Info) %s-Version von Binärdatei: %s %s (Hauptversion: %d)" "(info) %s version from remote debugging: %s %s (major: %d)": "(Info) %s-Version von Remote-Debugging: %s %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: ################################################# _get_commit_date: "Could not get commit date: %s": "Konnte Commit-Datum nicht ermitteln: %s" _get_release_commit: "Could not get release commit: %s": "Konnte Release-Commit nicht ermitteln: %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" "Failed to get commit dates: %s": "Fehler beim Abrufen der Commit-Daten: %s" "Failed to get release commit: %s": "Fehler beim Abrufen des Release-Commits: %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/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."