diff --git a/covas_mobile/lib/classes/MyDrawer.dart b/covas_mobile/lib/classes/MyDrawer.dart index 6272d76..8fcf62c 100644 --- a/covas_mobile/lib/classes/MyDrawer.dart +++ b/covas_mobile/lib/classes/MyDrawer.dart @@ -170,6 +170,15 @@ class MyDrawer extends StatelessWidget with ShowAlertDialog { Navigator.of(context).pop(); }, ), + ListTile( + leading: Icon(Icons.flag_outlined), + title: Text(loc?.german ?? 'German'), + onTap: () { + Provider.of(context, listen: false) + .setLocale(const Locale('de')); + Navigator.of(context).pop(); + }, + ), ], ), ), diff --git a/covas_mobile/lib/l10n/app_de.arb b/covas_mobile/lib/l10n/app_de.arb new file mode 100644 index 0000000..7c76c02 --- /dev/null +++ b/covas_mobile/lib/l10n/app_de.arb @@ -0,0 +1,132 @@ +{ + "@@locale": "de", + "menu_list": "Veranstaltungsmenü", + "language": "Sprache", + "home": "Startseite", + "settings": "Einstellungen", + "update_profile": "Profil aktualisieren", + "about": "Über", + "log_out": "Abmelden", + "french": "Französisch", + "english": "Englisch", + "german": "Deutsch", + "select_language": "Sprache auswählen", + "search_item": "Nach Element suchen", + "search_tag": "Nach Schlagwörtern suchen", + "search_geographical": "Nach geografischer Zone suchen", + "show_date_field": "Datumsfelder anzeigen", + "hide_date_field": "Datumsfelder ausblenden", + "no_data": "Keine Daten verfügbar", + "search": "Suchen", + "no_events": "Keine Veranstaltungen für diesen Ort verfügbar.", + "start_date": "Anfangsdatum", + "end_date": "Enddatum", + "failed_suggestions": "Vorschläge konnten nicht geladen werden", + "error": "Fehler", + "password_different": "Ein anderes Passwort eingeben", + "create": "Erstellung", + "user_create": "Benutzer wurde erstellt", + "user_update": "Benutzer wurde aktualisiert", + "request_error": "Fehlerhafte Anfrage", + "incorrect_password": "Falsches Passwort", + "unknown_user": "Unbekannter Benutzer", + "disabled_user": "Benutzer deaktiviert", + "invalid_token": "Ungültiger Token", + "internal_error_server": "Interner Serverfehler", + "unknown_error_auth": "Unbekannter Authentifizierungsfehler", + "required_input": "Pflichtfeld", + "create_profile": "Profil erstellen", + "edit_pseudo": "Benutzernamen bearbeiten", + "password": "Passwort", + "enter_password": "Passwort eingeben", + "password_confirmed": "Passwort bestätigt", + "last_name": "Nachname", + "first_name": "Vorname", + "email": "E-Mail", + "edit_last_name": "Nachnamen bearbeiten", + "edit_first_name": "Vornamen bearbeiten", + "edit_email": "E-Mail-Adresse bearbeiten", + "birth_date": "Geburtsdatum", + "edit_birth": "Geburtsdatum bearbeiten", + "create_profile_button": "Profil erstellen", + "take_picture": "Foto aufnehmen", + "error_ia": "Google KI konnte das Bild nicht analysieren. Bitte ein anderes versuchen.", + "no_data_geo": "Keine geografischen Daten", + "response_status_update": "Statuscode-Antwort aktualisieren", + "error_token": "Token-Fehler", + "error_format": "Vom KI geliefertes Datenformat ist fehlerhaft", + "display_picture": "Bild anzeigen", + "analyze_image": "Bildanalyse läuft", + "loading_progress": "Ladefortschritt", + "error_event": "Veranstaltungsfehler", + "no_future_event": "Keine zukünftigen Veranstaltungen", + "error_user": "Benutzerfehler", + "empty_input": "Eingabefeld leer", + "info_event": "Veranstaltungsinfo", + "event_already": "Veranstaltung existiert bereits", + "picture_error": "Bildfehler", + "no_picture_published": "Kein Bild veröffentlicht", + "event_update": "Veranstaltung aktualisiert", + "location": "Ort", + "add_event": "Veranstaltung hinzufügen oder aktualisieren", + "edit_image": "Bilder bearbeiten", + "name": "Name", + "edit_event_name": "Veranstaltungsname bearbeiten", + "start_time": "Startzeit", + "end_time": "Endzeit", + "select_date": "Zum Auswählen eines Datums klicken", + "select_time": "Zum Auswählen einer Uhrzeit klicken", + "tag": "Schlagwörter", + "already_tag": "Dieses Schlagwort ist bereits vorhanden", + "enter_tag": "Ein Schlagwort eingeben", + "organizer": "Veranstalter", + "already_organiser": "Veranstalter bereits vorhanden", + "enter_organizer": "Veranstalter eingeben", + "description": "Beschreibung", + "describe_event": "Veranstaltung beschreiben", + "add": "Hinzufügen", + "different_password_error": "Passwörter stimmen nicht überein", + "update": "Aktualisieren", + "updated": "Aktualisiert", + "settings_updated": "Einstellungen aktualisiert", + "define_kilometer": "Kilometer definieren", + "email_sent": "E-Mail wurde gesendet", + "forgot_password": "Passwort vergessen", + "enter_email": "E-Mail eingeben", + "send_email": "E-Mail senden", + "invalid_cache": "Ungültiger Cache", + "item_date": "Datum : ", + "item_maps": "Karte : ", + "item_organizer": "Veranstalter : ", + "item_description": "Beschreibung : ", + "item_tags": "Schlagwörter : ", + "failed_auth": "Authentifizierung fehlgeschlagen", + "login_page": "Anmeldeseite", + "pseudo": "Benutzername", + "enter_existing_pseudo": "Vorhandenen Benutzernamen eingeben", + "remembr_me": "Angemeldet bleiben", + "new_user": "Neuer Benutzer? Konto erstellen", + "sign_in": "Anmelden", + "map_token": "Mapbox-Zugangstoken ist nicht verfügbar", + "geo_disabled": "Standortdienste sind deaktiviert.", + "permission_denied": "Standortberechtigungen wurden verweigert.", + "enable_permission": "Standortberechtigungen dauerhaft verweigert. Bitte in den Einstellungen aktivieren.", + "no_last_position": "Keine letzte bekannte Position verfügbar.", + "failed_location": "Standort konnte nicht ermittelt werden", + "failed_fetch": "Route konnte nicht abgerufen werden", + "invalid_coordinates_symbol": "Ungültige Koordinaten, Symbol kann nicht hinzugefügt werden.", + "error_symbol": "Fehler beim Hinzufügen des Symbols.", + "position_not_init": "Benutzerposition noch nicht initialisiert. Erneut versuchen.", + "invalid_coordinates": "Ungültige Koordinaten.", + "walking": "Zu Fuß", + "cycling": "Mit dem Fahrrad", + "driving": "Mit dem Auto", + "get_direction": "Wegbeschreibung und Markierungen anzeigen", + "missing_token": "Zugangstoken fehlt", + "geocoding_error": "Fehler bei der Geokodierung", + "no_found_place": "Kein Ort gefunden", + "upload_error": "Fehler beim Hochladen des Bildes", + "event_added": "Veranstaltung hinzugefügt", + "unknown_error": "Unbekannter Fehler", + "app_error": "Anwendungsfehler" +} diff --git a/covas_mobile/lib/l10n/app_en.arb b/covas_mobile/lib/l10n/app_en.arb index 87c6c52..361954d 100644 --- a/covas_mobile/lib/l10n/app_en.arb +++ b/covas_mobile/lib/l10n/app_en.arb @@ -9,6 +9,7 @@ "log_out": "Log out", "french": "French", "english": "English", +"german": "German", "select_language": "Select language", "search_item": "Search by item", "search_tag": "Search by tags", diff --git a/covas_mobile/lib/l10n/app_fr.arb b/covas_mobile/lib/l10n/app_fr.arb index b25d67d..5cdada9 100644 --- a/covas_mobile/lib/l10n/app_fr.arb +++ b/covas_mobile/lib/l10n/app_fr.arb @@ -9,6 +9,7 @@ "log_out": "Se déconnecter", "french": "Français", "english": "Anglais", +"german": "Allemand", "select_language": "Selectionne la langue", "search_item": "Recherche par item", "search_tag": "Recherche par tags", diff --git a/covas_mobile/lib/locale_provider.dart b/covas_mobile/lib/locale_provider.dart index b8c9c7a..4f5ac79 100644 --- a/covas_mobile/lib/locale_provider.dart +++ b/covas_mobile/lib/locale_provider.dart @@ -17,5 +17,6 @@ class L10n { static final all = [ const Locale('en'), const Locale('fr'), + const Locale('de') ]; } diff --git a/covas_mobile/lib/main.dart b/covas_mobile/lib/main.dart index 11346a0..c2af5df 100644 --- a/covas_mobile/lib/main.dart +++ b/covas_mobile/lib/main.dart @@ -26,10 +26,7 @@ class MyApp extends StatelessWidget { return MaterialApp( debugShowCheckedModeBanner: false, locale: localeProvider.locale, // <-- utilise la locale courante - supportedLocales: const [ - Locale('en'), - Locale('fr'), - ], + supportedLocales: const [Locale('en'), Locale('fr'), Locale('de')], localizationsDelegates: AppLocalizations.localizationsDelegates, home: LoginDemo(), );