leafittome/lib/l10n/app_de.arb
cschlaefke 798912cb03 V2.x: Anmelden mit Apple (iOS + Android)
- AuthRepository.signInWithApple() via eingebautem AppleAuthProvider
  (nativ auf iOS, Web-Flow über Firebase-Handler auf Android, ohne Zusatzpaket)
- Haushalts-Bootstrap in gemeinsamen Helper _bootstrapHouseholdIfNeeded
  ausgelagert; beim ersten Apple-Login wird Profil + Haushalt idempotent angelegt
- LoginScreen: "oder"-Trenner + "Mit Apple anmelden"-Button, Abbruch ohne Fehlermeldung
- l10n: signInWithApple, orDivider, authErrorAppleFailed
- iOS: Entitlement com.apple.developer.applesignin ergänzt
- Doku: firebase-einrichtung.md Schritt 7 (Apple-Login) mit Portal-/Console-Anleitung

Noch offen: Apple-Portal (Services-ID, Sign-in-Key), Firebase-Console-Provider,
Xcode-Capability — danach Ende-zu-Ende auf iOS+Android testen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-20 16:52:49 +02:00

226 lines
7.6 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"@@locale": "de",
"appTitle": "LeafItToMe",
"menuToday": "Heute",
"menuPlants": "Meine Pflanzen",
"menuLocations": "Stellplätze",
"menuHousehold": "Haushalt",
"menuSettings": "Einstellungen",
"todayTitle": "Heute",
"todayAllDone": "Alles versorgt!",
"todayEmptyHint": "Heute stehen keine Aufgaben an.",
"todayNextTask": "Nächste Aufgabe: {date}",
"@todayNextTask": {
"placeholders": {
"date": { "type": "String" }
}
},
"todayOpenTasks": "{count, plural, one{1 offene Aufgabe} other{{count} offene Aufgaben}}",
"@todayOpenTasks": {
"placeholders": {
"count": { "type": "int" }
}
},
"taskWaterTitle": "{name} gießen",
"@taskWaterTitle": {
"placeholders": {
"name": { "type": "String" }
}
},
"taskFertilizeTitle": "{name} düngen",
"@taskFertilizeTitle": {
"placeholders": {
"name": { "type": "String" }
}
},
"taskDueToday": "Heute fällig",
"taskOverdue": "{days, plural, one{Seit gestern überfällig} other{Seit {days} Tagen überfällig}}",
"@taskOverdue": {
"placeholders": {
"days": { "type": "int" }
}
},
"taskDone": "Erledigt",
"taskDoneConfirmation": "{name} als erledigt markiert.",
"@taskDoneConfirmation": {
"placeholders": {
"name": { "type": "String" }
}
},
"addPlant": "Pflanze hinzufügen",
"plantsTitle": "Meine Pflanzen",
"plantsEmpty": "Noch keine Pflanzen angelegt.",
"plantsEmptyHint": "Lege deine erste Pflanze über den Button unten an.",
"plantDetailTitle": "Pflanzenprofil",
"nicknameLabel": "Spitzname",
"speciesLabel": "Pflanzenart",
"locationLabel": "Stellplatz",
"locationNone": "Kein Stellplatz",
"wateringEvery": "Gießen: alle {days} Tage",
"@wateringEvery": {
"placeholders": {
"days": { "type": "int" }
}
},
"fertilizingEvery": "Düngen: alle {days} Tage",
"@fertilizingEvery": {
"placeholders": {
"days": { "type": "int" }
}
},
"wateringIntervalLabel": "Gieß-Intervall (Tage)",
"fertilizingIntervalLabel": "Dünge-Intervall (Tage)",
"lastWatered": "Zuletzt gegossen: {date}",
"@lastWatered": {
"placeholders": {
"date": { "type": "String" }
}
},
"lastFertilized": "Zuletzt gedüngt: {date}",
"@lastFertilized": {
"placeholders": {
"date": { "type": "String" }
}
},
"never": "noch nie",
"save": "Speichern",
"cancel": "Abbrechen",
"delete": "Löschen",
"deletePlantQuestion": "{name} wirklich löschen?",
"@deletePlantQuestion": {
"placeholders": {
"name": { "type": "String" }
}
},
"requiredField": "Bitte ausfüllen",
"invalidNumber": "Bitte eine Zahl größer 0 eingeben",
"locationsTitle": "Stellplätze",
"locationsEmpty": "Noch keine Stellplätze angelegt.",
"addLocation": "Stellplatz hinzufügen",
"locationNameLabel": "Name des Stellplatzes",
"locationPlantCount": "{count, plural, =0{Keine Pflanzen} one{1 Pflanze} other{{count} Pflanzen}}",
"@locationPlantCount": {
"placeholders": {
"count": { "type": "int" }
}
},
"householdTitle": "Haushalt",
"myHouseholds": "Meine Haushalte",
"activeHouseholdLabel": "Aktiv",
"switchHouseholdSuccess": "Du bist jetzt im Haushalt „{name}“.",
"@switchHouseholdSuccess": {
"placeholders": {
"name": { "type": "String" }
}
},
"householdMembers": "Mitglieder",
"roleMember": "Mitglied",
"roleSitter": "Pflanzen-Sitter",
"ownerLabel": "Besitzer",
"ownerIsMe": "Dein Haushalt",
"ownerIs": "Besitzer: {name}",
"@ownerIs": {
"placeholders": {
"name": { "type": "String" }
}
},
"renameHousehold": "Haushalt umbenennen",
"householdNameLabel": "Name des Haushalts",
"saveButton": "Speichern",
"leaveHousehold": "Haushalt verlassen",
"leaveHouseholdConfirmTitle": "Haushalt verlassen?",
"leaveHouseholdConfirmBody": "Du verlierst den Zugriff auf „{name}“ und alle Pflanzen darin. Ein neuer Beitritt ist nur mit einem neuen Einladungscode möglich.",
"@leaveHouseholdConfirmBody": {
"placeholders": {
"name": { "type": "String" }
}
},
"leftHousehold": "Du hast den Haushalt „{name}“ verlassen.",
"@leftHousehold": {
"placeholders": {
"name": { "type": "String" }
}
},
"removeMemberConfirmTitle": "Mitglied entfernen?",
"removeMemberConfirmBody": "{name} verliert sofort den Zugriff auf diesen Haushalt und alle Pflanzen darin.",
"@removeMemberConfirmBody": {
"placeholders": {
"name": { "type": "String" }
}
},
"removeMemberAction": "Entfernen",
"memberRemoved": "{name} wurde aus dem Haushalt entfernt.",
"@memberRemoved": {
"placeholders": {
"name": { "type": "String" }
}
},
"meLabel": "Ich",
"inviteTitle": "Einladen",
"inviteMember": "Mitglied einladen",
"inviteSitter": "Pflanzen-Sitter einladen",
"inviteExplanation": "Mitglieder haben volle Rechte. Pflanzen-Sitter sehen die Pläne und können Aufgaben abhaken, aber nichts ändern.",
"inviteCodeTitle": "Einladungscode",
"inviteCodeHint": "Gib diesen Code an die Person weiter. Sie trägt ihn in ihrer App unter „Haushalt“ ein. Der Code ist 7 Tage gültig und einmal verwendbar.",
"copyCode": "Code kopieren",
"codeCopied": "Code kopiert.",
"joinTitle": "Haushalt beitreten",
"joinCodeLabel": "Einladungscode eingeben",
"joinButton": "Beitreten",
"joinWarningTitle": "Haushalt beitreten?",
"joinWarningBody": "Du trittst dem Haushalt bei und wechselst direkt dorthin. Deine bisherigen Haushalte bleiben erhalten unter „Meine Haushalte“ kannst du jederzeit zurückwechseln.",
"joinSuccess": "Willkommen im Haushalt „{name}“!",
"@joinSuccess": {
"placeholders": {
"name": { "type": "String" }
}
},
"joinErrorInvalid": "Dieser Code ist ungültig oder abgelaufen.",
"joinErrorUsed": "Dieser Code wurde bereits verwendet.",
"doneBy": " · von {name}",
"@doneBy": {
"placeholders": {
"name": { "type": "String" }
}
},
"settingsTitle": "Einstellungen",
"settingsAppearance": "Erscheinungsbild",
"themeSystem": "System",
"themeLight": "Hell",
"themeDark": "Dunkel",
"settingsTextSize": "Schriftgröße",
"textSizeNormal": "Normal",
"textSizeLarge": "Groß",
"textSizeXLarge": "Sehr groß",
"settingsHighContrast": "Hoher Kontrast",
"settingsReminderTime": "Erinnerungszeit",
"settingsReminderTimeHint": "Zu dieser Uhrzeit erinnert dich LeafItToMe an offene Aufgaben.",
"settingsAccount": "Konto",
"logout": "Abmelden",
"loginSubtitle": "Melde dich an, um deine Pflanzen zu versorgen.",
"emailLabel": "E-Mail-Adresse",
"passwordLabel": "Passwort",
"signInButton": "Anmelden",
"signUpButton": "Konto erstellen",
"switchToSignUp": "Neu hier? Konto erstellen",
"switchToSignIn": "Du hast schon ein Konto? Anmelden",
"orDivider": "oder",
"signInWithApple": "Mit Apple anmelden",
"authErrorAppleFailed": "Die Anmeldung mit Apple hat nicht geklappt. Bitte versuche es erneut.",
"authErrorInvalidCredential": "E-Mail-Adresse oder Passwort ist falsch.",
"authErrorEmailInUse": "Mit dieser E-Mail-Adresse gibt es bereits ein Konto.",
"authErrorWeakPassword": "Das Passwort muss mindestens 6 Zeichen lang sein.",
"authErrorInvalidEmail": "Bitte gib eine gültige E-Mail-Adresse ein.",
"authErrorGeneric": "Das hat leider nicht geklappt. Bitte versuche es erneut.",
"takePhoto": "Foto aufnehmen",
"fromGallery": "Aus der Galerie",
"recognizing": "Pflanze wird erkannt …",
"recognitionSuccess": "Erkannt: {name}",
"@recognitionSuccess": {
"placeholders": {
"name": { "type": "String" }
}
},
"recognitionFailed": "Die Erkennung hat nicht geklappt du kannst die Angaben auch von Hand eintragen.",
"saveError": "Speichern fehlgeschlagen. Bitte versuche es erneut."
}