- Einladen per einmaligem 6-stelligem Code (7 Tage gültig), wahlweise als Mitglied oder Pflanzen-Sitter - Beitritt über Cloud Function joinHousehold (Transaktion, Admin-Rechte) - Security Rules: Sitter dürfen an Pflanzen nur Bestätigungs-Felder ändern; invites nur erstellen, nie lesen - Haushalts-Screen: Mitgliederliste mit Rollen, Einladen, Beitreten mit Wechsel-Warnung - UI-Gating: Sitter sehen keine Anlegen-/Bearbeiten-/Löschen-Aktionen - Bestätigungen speichern den Namen (lastWateredBy/lastFertilizedBy), Anzeige im Profil - Tests: Members-Map im Seed, neuer Sitter-Test Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
364 lines
7.8 KiB
Dart
364 lines
7.8 KiB
Dart
// ignore: unused_import
|
||
import 'package:intl/intl.dart' as intl;
|
||
import 'app_localizations.dart';
|
||
|
||
// ignore_for_file: type=lint
|
||
|
||
/// The translations for German (`de`).
|
||
class AppLocalizationsDe extends AppLocalizations {
|
||
AppLocalizationsDe([String locale = 'de']) : super(locale);
|
||
|
||
@override
|
||
String get appTitle => 'LeafItToMe';
|
||
|
||
@override
|
||
String get menuToday => 'Heute';
|
||
|
||
@override
|
||
String get menuPlants => 'Meine Pflanzen';
|
||
|
||
@override
|
||
String get menuLocations => 'Stellplätze';
|
||
|
||
@override
|
||
String get menuHousehold => 'Haushalt';
|
||
|
||
@override
|
||
String get menuSettings => 'Einstellungen';
|
||
|
||
@override
|
||
String get todayTitle => 'Heute';
|
||
|
||
@override
|
||
String get todayAllDone => 'Alles versorgt!';
|
||
|
||
@override
|
||
String get todayEmptyHint => 'Heute stehen keine Aufgaben an.';
|
||
|
||
@override
|
||
String todayNextTask(String date) {
|
||
return 'Nächste Aufgabe: $date';
|
||
}
|
||
|
||
@override
|
||
String todayOpenTasks(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count offene Aufgaben',
|
||
one: '1 offene Aufgabe',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String taskWaterTitle(String name) {
|
||
return '$name gießen';
|
||
}
|
||
|
||
@override
|
||
String taskFertilizeTitle(String name) {
|
||
return '$name düngen';
|
||
}
|
||
|
||
@override
|
||
String get taskDueToday => 'Heute fällig';
|
||
|
||
@override
|
||
String taskOverdue(int days) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
days,
|
||
locale: localeName,
|
||
other: 'Seit $days Tagen überfällig',
|
||
one: 'Seit gestern überfällig',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get taskDone => 'Erledigt';
|
||
|
||
@override
|
||
String taskDoneConfirmation(String name) {
|
||
return '$name als erledigt markiert.';
|
||
}
|
||
|
||
@override
|
||
String get addPlant => 'Pflanze hinzufügen';
|
||
|
||
@override
|
||
String get plantsTitle => 'Meine Pflanzen';
|
||
|
||
@override
|
||
String get plantsEmpty => 'Noch keine Pflanzen angelegt.';
|
||
|
||
@override
|
||
String get plantsEmptyHint =>
|
||
'Lege deine erste Pflanze über den Button unten an.';
|
||
|
||
@override
|
||
String get plantDetailTitle => 'Pflanzenprofil';
|
||
|
||
@override
|
||
String get nicknameLabel => 'Spitzname';
|
||
|
||
@override
|
||
String get speciesLabel => 'Pflanzenart';
|
||
|
||
@override
|
||
String get locationLabel => 'Stellplatz';
|
||
|
||
@override
|
||
String get locationNone => 'Kein Stellplatz';
|
||
|
||
@override
|
||
String wateringEvery(int days) {
|
||
return 'Gießen: alle $days Tage';
|
||
}
|
||
|
||
@override
|
||
String fertilizingEvery(int days) {
|
||
return 'Düngen: alle $days Tage';
|
||
}
|
||
|
||
@override
|
||
String get wateringIntervalLabel => 'Gieß-Intervall (Tage)';
|
||
|
||
@override
|
||
String get fertilizingIntervalLabel => 'Dünge-Intervall (Tage)';
|
||
|
||
@override
|
||
String lastWatered(String date) {
|
||
return 'Zuletzt gegossen: $date';
|
||
}
|
||
|
||
@override
|
||
String lastFertilized(String date) {
|
||
return 'Zuletzt gedüngt: $date';
|
||
}
|
||
|
||
@override
|
||
String get never => 'noch nie';
|
||
|
||
@override
|
||
String get save => 'Speichern';
|
||
|
||
@override
|
||
String get cancel => 'Abbrechen';
|
||
|
||
@override
|
||
String get delete => 'Löschen';
|
||
|
||
@override
|
||
String deletePlantQuestion(String name) {
|
||
return '$name wirklich löschen?';
|
||
}
|
||
|
||
@override
|
||
String get requiredField => 'Bitte ausfüllen';
|
||
|
||
@override
|
||
String get invalidNumber => 'Bitte eine Zahl größer 0 eingeben';
|
||
|
||
@override
|
||
String get locationsTitle => 'Stellplätze';
|
||
|
||
@override
|
||
String get locationsEmpty => 'Noch keine Stellplätze angelegt.';
|
||
|
||
@override
|
||
String get addLocation => 'Stellplatz hinzufügen';
|
||
|
||
@override
|
||
String get locationNameLabel => 'Name des Stellplatzes';
|
||
|
||
@override
|
||
String locationPlantCount(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count Pflanzen',
|
||
one: '1 Pflanze',
|
||
zero: 'Keine Pflanzen',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get householdTitle => 'Haushalt';
|
||
|
||
@override
|
||
String get householdMembers => 'Mitglieder';
|
||
|
||
@override
|
||
String get roleMember => 'Mitglied';
|
||
|
||
@override
|
||
String get roleSitter => 'Pflanzen-Sitter';
|
||
|
||
@override
|
||
String get meLabel => 'Ich';
|
||
|
||
@override
|
||
String get inviteTitle => 'Einladen';
|
||
|
||
@override
|
||
String get inviteMember => 'Mitglied einladen';
|
||
|
||
@override
|
||
String get inviteSitter => 'Pflanzen-Sitter einladen';
|
||
|
||
@override
|
||
String get inviteExplanation =>
|
||
'Mitglieder haben volle Rechte. Pflanzen-Sitter sehen die Pläne und können Aufgaben abhaken, aber nichts ändern.';
|
||
|
||
@override
|
||
String get inviteCodeTitle => 'Einladungscode';
|
||
|
||
@override
|
||
String get 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.';
|
||
|
||
@override
|
||
String get copyCode => 'Code kopieren';
|
||
|
||
@override
|
||
String get codeCopied => 'Code kopiert.';
|
||
|
||
@override
|
||
String get joinTitle => 'Haushalt beitreten';
|
||
|
||
@override
|
||
String get joinCodeLabel => 'Einladungscode eingeben';
|
||
|
||
@override
|
||
String get joinButton => 'Beitreten';
|
||
|
||
@override
|
||
String get joinWarningTitle => 'Haushalt wechseln?';
|
||
|
||
@override
|
||
String get joinWarningBody =>
|
||
'Du trittst einem anderen Haushalt bei. Die Pflanzen deines bisherigen Haushalts siehst du danach nicht mehr.';
|
||
|
||
@override
|
||
String joinSuccess(String name) {
|
||
return 'Willkommen im Haushalt „$name“!';
|
||
}
|
||
|
||
@override
|
||
String get joinErrorInvalid => 'Dieser Code ist ungültig oder abgelaufen.';
|
||
|
||
@override
|
||
String get joinErrorUsed => 'Dieser Code wurde bereits verwendet.';
|
||
|
||
@override
|
||
String doneBy(String name) {
|
||
return ' · von $name';
|
||
}
|
||
|
||
@override
|
||
String get settingsTitle => 'Einstellungen';
|
||
|
||
@override
|
||
String get settingsAppearance => 'Erscheinungsbild';
|
||
|
||
@override
|
||
String get themeSystem => 'System';
|
||
|
||
@override
|
||
String get themeLight => 'Hell';
|
||
|
||
@override
|
||
String get themeDark => 'Dunkel';
|
||
|
||
@override
|
||
String get settingsTextSize => 'Schriftgröße';
|
||
|
||
@override
|
||
String get textSizeNormal => 'Normal';
|
||
|
||
@override
|
||
String get textSizeLarge => 'Groß';
|
||
|
||
@override
|
||
String get textSizeXLarge => 'Sehr groß';
|
||
|
||
@override
|
||
String get settingsHighContrast => 'Hoher Kontrast';
|
||
|
||
@override
|
||
String get settingsReminderTime => 'Erinnerungszeit';
|
||
|
||
@override
|
||
String get settingsReminderTimeHint =>
|
||
'Zu dieser Uhrzeit erinnert dich LeafItToMe an offene Aufgaben.';
|
||
|
||
@override
|
||
String get settingsAccount => 'Konto';
|
||
|
||
@override
|
||
String get logout => 'Abmelden';
|
||
|
||
@override
|
||
String get loginSubtitle => 'Melde dich an, um deine Pflanzen zu versorgen.';
|
||
|
||
@override
|
||
String get emailLabel => 'E-Mail-Adresse';
|
||
|
||
@override
|
||
String get passwordLabel => 'Passwort';
|
||
|
||
@override
|
||
String get signInButton => 'Anmelden';
|
||
|
||
@override
|
||
String get signUpButton => 'Konto erstellen';
|
||
|
||
@override
|
||
String get switchToSignUp => 'Neu hier? Konto erstellen';
|
||
|
||
@override
|
||
String get switchToSignIn => 'Du hast schon ein Konto? Anmelden';
|
||
|
||
@override
|
||
String get authErrorInvalidCredential =>
|
||
'E-Mail-Adresse oder Passwort ist falsch.';
|
||
|
||
@override
|
||
String get authErrorEmailInUse =>
|
||
'Mit dieser E-Mail-Adresse gibt es bereits ein Konto.';
|
||
|
||
@override
|
||
String get authErrorWeakPassword =>
|
||
'Das Passwort muss mindestens 6 Zeichen lang sein.';
|
||
|
||
@override
|
||
String get authErrorInvalidEmail =>
|
||
'Bitte gib eine gültige E-Mail-Adresse ein.';
|
||
|
||
@override
|
||
String get authErrorGeneric =>
|
||
'Das hat leider nicht geklappt. Bitte versuche es erneut.';
|
||
|
||
@override
|
||
String get takePhoto => 'Foto aufnehmen';
|
||
|
||
@override
|
||
String get fromGallery => 'Aus der Galerie';
|
||
|
||
@override
|
||
String get recognizing => 'Pflanze wird erkannt …';
|
||
|
||
@override
|
||
String recognitionSuccess(String name) {
|
||
return 'Erkannt: $name';
|
||
}
|
||
|
||
@override
|
||
String get recognitionFailed =>
|
||
'Die Erkennung hat nicht geklappt – du kannst die Angaben auch von Hand eintragen.';
|
||
|
||
@override
|
||
String get saveError => 'Speichern fehlgeschlagen. Bitte versuche es erneut.';
|
||
}
|