# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: Vogelalbum\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-10-10 12:07+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: dex/admin.py:28 msgid "" "Der Detector holt sich diese Werte selbst — er fragt /api/config/ mit seinem Token und übernimmt Änderungen im laufenden Betrieb, ohne " "Neustart. Eine Stream-Adresse, die auf seiner Kommandozeile steht, behält " "aber Vorrang." msgstr "The detector fetches these values itself — it asks /api/config/ with its token and applies changes while running, without a restart. A stream address given on its command line still takes precedence." #: dex/admin.py:38 msgid "" "Das Livebild kommt vom Live-Verteiler des Detectors, nicht von der Kamera " "selbst — die liefert nur einen Stream, und den braucht die Erkennung. " "Starten mit python -m detector watch … --live-port 8131." msgstr "The live image comes from the detector's relay, not from the camera itself — the camera serves only one stream, and the recognition needs it. Start it with python -m detector watch … --live-port 8131." #: dex/admin.py:61 msgid "gesperrt (VOGELALBUM_LIVE_ERLAUBT=0)" msgstr "locked (VOGELALBUM_LIVE_ERLAUBT=0)" #: dex/admin.py:63 msgid "aus" msgstr "off" #: dex/admin.py:65 msgid "an, aber keine Adresse" msgstr "on, but no address" #: dex/admin.py:67 msgid "an, aber Kamera stillgelegt" msgstr "on, but camera disabled" #: dex/admin.py:68 msgid "an" msgstr "on" #: dex/models.py:551 msgid "Gewicht" msgstr "Weight" #: dex/models.py:552 msgid "Spannweite" msgstr "Wingspan" #: dex/models.py:557 msgid "Größe" msgstr "Length" #: dex/models.py:558 msgid "Seltenheit" msgstr "Rarity" #: dex/scoring.py:25 msgid "Nestling" msgstr "Nestling" #: dex/scoring.py:26 msgid "Ästling" msgstr "Fledgling" #: dex/scoring.py:27 msgid "Spatzenkenner" msgstr "Sparrow Spotter" #: dex/scoring.py:28 msgid "Meisenmeister" msgstr "Tit Master" #: dex/scoring.py:29 msgid "Federfuchser" msgstr "Feather Nerd" #: dex/scoring.py:30 msgid "Amselflüsterer" msgstr "Blackbird Whisperer" #: dex/scoring.py:31 msgid "Spechtspäher" msgstr "Woodpecker Watcher" #: dex/scoring.py:32 msgid "Falkenauge" msgstr "Falcon Eye" #: dex/scoring.py:33 msgid "Vogelmeister" msgstr "Bird Master" #: dex/scoring.py:34 msgid "Legende des Vogelhauses" msgstr "Legend of the Feeder" #: dex/scoring.py:112 msgid "Erster Gast" msgstr "First Guest" #: dex/scoring.py:113 msgid "Die allererste Sichtung im Vogelhaus." msgstr "The very first sighting at the feeder." #: dex/scoring.py:114 msgid "Fünf Freunde" msgstr "High Five" #: dex/scoring.py:115 msgid "5 verschiedene Arten gesammelt." msgstr "5 different species collected." #: dex/scoring.py:116 msgid "Zweistellig" msgstr "Double Digits" #: dex/scoring.py:117 msgid "10 verschiedene Arten gesammelt." msgstr "10 different species collected." #: dex/scoring.py:118 msgid "Sammler" msgstr "Collector" #: dex/scoring.py:119 msgid "25 verschiedene Arten gesammelt." msgstr "25 different species collected." #: dex/scoring.py:120 msgid "Vogelalbum-Meister" msgstr "Vogelalbum Master" #: dex/scoring.py:121 msgid "40 verschiedene Arten gesammelt." msgstr "40 different species collected." #: dex/scoring.py:122 msgid "Frühaufsteher" msgstr "Early Bird" #: dex/scoring.py:123 msgid "Eine Sichtung vor 6 Uhr morgens." msgstr "A sighting before 6 in the morning." #: dex/scoring.py:124 msgid "Nachtschicht" msgstr "Night Shift" #: dex/scoring.py:125 msgid "Eine Sichtung nach 21 Uhr." msgstr "A sighting after 9 in the evening." #: dex/scoring.py:126 msgid "Volles Haus" msgstr "Full House" #: dex/scoring.py:127 msgid "5 verschiedene Arten an einem Tag." msgstr "5 different species in one day." #: dex/scoring.py:128 msgid "Stammgast" msgstr "Regular" #: dex/scoring.py:129 msgid "7 Tage in Folge mindestens eine Sichtung." msgstr "At least one sighting on 7 consecutive days." #: dex/scoring.py:130 msgid "Dauergast" msgstr "Long Stay" #: dex/scoring.py:131 msgid "Ein Besuch, der länger als eine Minute dauerte." msgstr "A visit lasting longer than a minute." #: dex/scoring.py:132 msgid "Hundert Besuche" msgstr "One Hundred Visits" #: dex/scoring.py:133 msgid "100 Sichtungen aufgezeichnet." msgstr "100 sightings recorded." #: dex/scoring.py:134 msgid "Tausend Besuche" msgstr "One Thousand Visits" #: dex/scoring.py:135 msgid "1000 Sichtungen aufgezeichnet." msgstr "1000 sightings recorded." #: dex/scoring.py:136 msgid "Klopfgeist" msgstr "The Knocker" #: dex/scoring.py:137 msgid "Ein Specht war da." msgstr "A woodpecker came by." #: dex/scoring.py:138 msgid "Greifvogel-Alarm" msgstr "Raptor Alert" #: dex/scoring.py:139 msgid "Ein Greifvogel oder eine Eule vor der Linse." msgstr "A bird of prey or an owl in front of the lens." #: dex/scoring.py:140 msgid "Seltener Gast" msgstr "Rare Guest" #: dex/scoring.py:141 msgid "Eine Art der Stufe 'Selten' oder höher." msgstr "A species rated 'Rare' or above." #: dex/templatetags/dex_extras.py:76 #, python-format msgid "heute, %(uhrzeit)s" msgstr "today, %(uhrzeit)s" #: dex/templatetags/dex_extras.py:78 #, python-format msgid "gestern, %(uhrzeit)s" msgstr "yesterday, %(uhrzeit)s" #: dex/templatetags/dex_extras.py:80 #, python-format msgid "%(wochentag)s, %(uhrzeit)s" msgstr "%(wochentag)s, %(uhrzeit)s" #: dex/templatetags/dex_extras.py:84 #, python-format msgid "%(datum)s, %(uhrzeit)s" msgstr "%(datum)s, %(uhrzeit)s" #: dex/views.py:47 msgid "Noch wartet die Kamera" msgstr "The camera is still waiting" #: dex/views.py:52 msgid "Wer war heute zu Gast?" msgstr "Who stopped by today?" #: dex/views.py:54 msgid "Zuletzt gestern zu Gast" msgstr "Last visitor: yesterday" #: dex/views.py:56 #, python-format msgid "Zuletzt am %(wochentag)s zu Gast" msgstr "Last visitor: %(wochentag)s" #: dex/views.py:59 #, python-format msgid "Zuletzt am %(datum)s zu Gast" msgstr "Last visitor: %(datum)s" #: dex/views.py:400 msgid "Bitte mindestens ein Bild auswählen." msgstr "Please select at least one image." #: templates/dex/badges.html:4 templates/dex/badges.html:39 #: templates/dex/base.html:81 msgid "Abzeichen" msgstr "Badges" #: templates/dex/badges.html:39 #, python-format msgid "%(n)s verdient" msgstr "%(n)s earned" #: templates/dex/base.html:7 msgid "" "Vögel erkennen, sammeln und katalogisieren — auf dem eigenen Server, ohne " "Cloud." msgstr "Identify, collect and catalogue birds — on your own server, without a cloud." #: templates/dex/base.html:74 templates/dex/live.html:4 #: templates/dex/live.html:8 msgid "Live" msgstr "Live" #: templates/dex/base.html:78 msgid "Übersicht" msgstr "Overview" #: templates/dex/base.html:79 templates/dex/dex.html:4 msgid "Sammlung" msgstr "Collection" #: templates/dex/base.html:80 templates/dex/sightings.html:4 #: templates/dex/sightings.html:28 msgid "Sichtungen" msgstr "Sightings" #: templates/dex/base.html:97 msgid "Zwischen hellem und dunklem Modus wechseln" msgstr "Switch between light and dark mode" #: templates/dex/base.html:122 templates/dex/base.html:123 msgid "Einstellungen" msgstr "Settings" #: templates/dex/base.html:139 templates/dex/home.html:42 #, python-format msgid "%(xp)s XP · noch %(rest)s XP bis Level %(lvl)s" msgstr "%(xp)s XP · %(rest)s XP to level %(lvl)s" #: templates/dex/base.html:143 msgid "Arten gesammelt" msgstr "species collected" #: templates/dex/base.html:168 msgid "Dieses Vogelalbum füllt sich von allein." msgstr "This bird album fills itself." #: templates/dex/base.html:169 msgid "" "Eine Kamera am Futterhaus, der Rest passiert auf deinem eigenen Server — " "ohne Cloud, ohne Konto, ohne Abo. Freie Software zum Nachbauen." msgstr "A camera at the feeder, everything else happens on your own server — no cloud, no account, no subscription. Free software, built to be rebuilt." #: templates/dex/base.html:172 msgid "Projekt ansehen" msgstr "View the project" #: templates/dex/dex.html:8 msgid "Die Sammlung" msgstr "The Collection" #: templates/dex/dex.html:10 #, python-format msgid "%(a)s von %(b)s Arten" msgstr "%(a)s of %(b)s species" #: templates/dex/dex.html:22 templates/dex/species.html:80 msgid "Lebensraum" msgstr "Habitat" #: templates/dex/dex.html:27 msgid "Alle" msgstr "All" #: templates/dex/dex.html:36 msgid "Stufe" msgstr "Tier" #: templates/dex/dex.html:38 msgid "Alle Stufen" msgstr "All tiers" #: templates/dex/dex.html:46 msgid "Gruppe" msgstr "Group" #: templates/dex/dex.html:48 msgid "Alle Gruppen" msgstr "All groups" #: templates/dex/dex.html:55 msgid "Anwenden" msgstr "Apply" #: templates/dex/dex.html:58 msgid "Zurücksetzen" msgstr "Reset" #: templates/dex/dex.html:70 msgid "Noch nicht gesichtet" msgstr "Not yet sighted" #: templates/dex/dex.html:95 msgid "Keine Art passt zu dieser Auswahl." msgstr "No species matches this selection." #: templates/dex/hochladen.html:4 templates/dex/hochladen.html:76 msgid "Fotos hochladen" msgstr "Upload photos" #: templates/dex/hochladen.html:85 msgid "" "Ein Vogel unterwegs? Foto hier einliefern — der Detector bestimmt es beim " "nächsten Durchgang und trägt es in die Sammlung ein." msgstr "Spotted a bird? Hand in a photo here — the detector identifies it on its next pass and adds it to the collection." #: templates/dex/hochladen.html:90 #, python-format msgid "%(n)s Foto angenommen. Es wartet auf den Detector." msgid_plural "%(n)s Fotos angenommen. Sie warten auf den Detector." msgstr[0] "%(n)s photo accepted. It is waiting for the detector." msgstr[1] "%(n)s photos accepted. They are waiting for the detector." #: templates/dex/hochladen.html:101 msgid "Bilder" msgstr "Images" #: templates/dex/hochladen.html:109 msgid "Mehrere Bilder auf einmal sind möglich. Jedes wird einzeln bestimmt." msgstr "You can pick several images at once. Each one is identified separately." #: templates/dex/hochladen.html:114 msgid "Gerät" msgstr "Device" #: templates/dex/hochladen.html:116 msgid "— ohne Zuordnung —" msgstr "— unassigned —" #: templates/dex/hochladen.html:125 msgid "Ort (freiwillig)" msgstr "Location (optional)" #: templates/dex/hochladen.html:127 msgid "Breite, z. B. 49.49" msgstr "Latitude, e.g. 49.49" #: templates/dex/hochladen.html:128 msgid "Länge, z. B. 8.47" msgstr "Longitude, e.g. 8.47" #: templates/dex/hochladen.html:131 msgid "" "Wird auf etwa einen Kilometer gerundet gespeichert — die Gegend, nicht die " "Adresse." msgstr "Stored rounded to about a kilometre — the area, not the address." #: templates/dex/hochladen.html:136 msgid "Hochladen" msgstr "Upload" #: templates/dex/hochladen.html:142 msgid "Warten auf Bestimmung" msgstr "Awaiting identification" #: templates/dex/hochladen.html:154 msgid "Noch nicht bestimmt" msgstr "Not identified yet" #: templates/dex/hochladen.html:160 msgid "Bleiben die Bilder länger stehen, läuft der Detector nicht." msgstr "If images sit here for a while, the detector is not running." #: templates/dex/home.html:4 msgid "Vogelalbum — Übersicht" msgstr "Vogelalbum — Overview" #: templates/dex/home.html:33 msgid "" "Jeder Vogel wird bestimmt, gezählt und gesammelt — aus dem Kamerabild oder " "vom Handyfoto. Alles auf dem eigenen Server." msgstr "Every bird is identified, counted and collected — from a camera frame or a photo off your phone. All on your own server." #: templates/dex/home.html:46 templates/dex/widget.html:37 msgid "Arten" msgstr "species" #: templates/dex/home.html:59 msgid "ZULETZT" msgstr "LATEST" #: templates/dex/home.html:67 msgid "Noch kein Gast aufgezeichnet." msgstr "No visitor recorded yet." #: templates/dex/home.html:68 msgid "Der erste bestimmte Vogel steht hier." msgstr "The first identified bird shows up here." #: templates/dex/home.html:75 msgid "Neu in der Sammlung" msgstr "New in the collection" #: templates/dex/home.html:75 msgid "letzte 7 Tage" msgstr "last 7 days" #: templates/dex/home.html:92 msgid "Neu" msgstr "New" #: templates/dex/home.html:100 msgid "Zuletzt zu Besuch" msgstr "Latest visitors" #: templates/dex/home.html:101 #, python-format msgid "%(n)s Besuche insgesamt" msgstr "%(n)s visits in total" #: templates/dex/home.html:120 templates/dex/sightings.html:75 #: templates/dex/species.html:127 msgid "Erstfang" msgstr "First catch" #: templates/dex/home.html:129 msgid "Noch keine Sichtung aufgezeichnet." msgstr "No sightings recorded yet." #: templates/dex/home.html:130 msgid "" "Sobald der Detector einen Vogel erkennt oder das erste Foto eingeliefert " "ist, erscheint hier der erste Gast." msgstr "As soon as the detector spots a bird or the first photo is handed in, the first visitor appears here." #: templates/dex/home.html:135 msgid "Stammgäste" msgstr "Regulars" #: templates/dex/live.html:10 #, python-format msgid "%(n)s Kamera" msgid_plural "%(n)s Kameras" msgstr[0] "%(n)s camera" msgstr[1] "%(n)s cameras" #: templates/dex/live.html:51 msgid "" "Bleibt das Bild schwarz, läuft der Detector nicht — die Erkennung verteilt " "das Livebild aus ihrem eigenen Bildstrom." msgstr "If the image stays black the detector is not running — the live view is relayed from the recognition's own frame stream." #: templates/dex/sightings.html:28 templates/dex/species.html:114 #, python-format msgid "%(n)s insgesamt" msgstr "%(n)s in total" #: templates/dex/sightings.html:35 msgid "Foto hochladen" msgstr "Upload photo" #: templates/dex/sightings.html:40 templates/dex/species.html:114 msgid "Alle Besuche" msgstr "All visits" #: templates/dex/sightings.html:41 msgid "Nur bestimmte Arten" msgstr "Identified only" #: templates/dex/sightings.html:46 msgid "Alle Kameras" msgstr "All cameras" #: templates/dex/sightings.html:71 msgid "von Hand" msgstr "by hand" #: templates/dex/sightings.html:73 msgid "Unbestimmt" msgstr "Unidentified" #: templates/dex/sightings.html:84 msgid "Alternativen" msgstr "Alternatives" #: templates/dex/sightings.html:99 msgid "Neuer" msgstr "Newer" #: templates/dex/sightings.html:100 msgid "Älter" msgstr "Older" #: templates/dex/sightings.html:103 msgid "Noch nichts aufgezeichnet." msgstr "Nothing recorded yet." #: templates/dex/species.html:28 msgid "Bestes eigenes Foto" msgstr "Best own photo" #: templates/dex/species.html:30 msgid "Referenzfoto — diese Art war noch nicht vor unserer Kamera." msgstr "Reference photo — this species has not been in front of our camera yet." #: templates/dex/species.html:32 msgid "Foto" msgstr "Photo" #: templates/dex/species.html:50 #, python-format msgid "%(n)s× seen" msgid_plural "%(n)s× seen" msgstr[0] "%(n)s× seen" msgstr[1] "%(n)s× seen" #: templates/dex/species.html:69 templates/dex/species.html:74 msgid "Steckbrief" msgstr "Profile" #: templates/dex/species.html:83 msgid "Nahrung" msgstr "Diet" #: templates/dex/species.html:86 msgid "Stimme" msgstr "Voice" #: templates/dex/species.html:89 msgid "Zugverhalten" msgstr "Migration" #: templates/dex/species.html:94 msgid "Verwechslungsgefahr" msgstr "Easily confused with" #: templates/dex/species.html:94 msgid "Arten, die man nicht auf Anhieb unterscheidet" msgstr "species you will not tell apart at a glance" #: templates/dex/species.html:106 #, python-format msgid "Wann ist %(n)s da?" msgstr "When does the %(n)s show up?" #: templates/dex/species.html:106 msgid "Besuche über den Tag" msgstr "visits across the day" #: templates/dex/species.html:110 msgid "0 Uhr" msgstr "midnight" #: templates/dex/species.html:130 #, python-format msgid "%(a)s von %(b)s Bildern mit Vogel" msgstr "%(a)s of %(b)s frames with a bird" #: templates/dex/species.html:143 msgid "Noch nicht gesammelt." msgstr "Not collected yet." #: templates/dex/species.html:144 #, python-format msgid "" "Sobald %(n)s vor der Kamera landet, wird dieser Eintrag freigeschaltet — mit " "eurem eigenen Foto." msgstr "Once a %(n)s lands in front of the camera this entry unlocks — with your own photo." #: templates/dex/widget.html:25 msgid "Zuletzt gesehen" msgstr "Last seen" #: templates/dex/widget.html:27 msgid "sicher" msgstr "confident" #: templates/dex/widget.html:32 msgid "Noch kein Gast" msgstr "No visitor yet" #~ msgid "" #~ "Vogelalbum · Arterkennung auf dem eigenen Server. Keine Cloud, keine " #~ "fremden Dienste." #~ msgstr "" #~ "Vogelalbum · Species recognition on your own server. No cloud, no third-" #~ "party services." #~ msgid "" #~ "Eine Kamera am Vogelhaus, die Erkennung auf dem eigenen Server. Jeder " #~ "Gast wird bestimmt, gezählt und gesammelt." #~ msgstr "" #~ "A camera at the bird house, recognition on your own server. Every visitor " #~ "is identified, counted and collected." #~ msgid "Sobald sich etwas im Vogelhaus rührt, steht er hier." #~ msgstr "As soon as something stirs at the bird house, it will show up here." #~ msgid "Zuletzt im Vogelhaus" #~ msgstr "Latest at the feeder" #~ msgid "Besuche heute" #~ msgstr "Visits today" #~ msgid "Arten heute" #~ msgstr "Species today"