diff --git a/config/config.php b/config/config.php index a60fde5..c75a6d7 100644 --- a/config/config.php +++ b/config/config.php @@ -2,21 +2,22 @@ declare(strict_types=1); -// To change settings create a config.php +// To change or overwrite some settings, create a config.php return [ // MySQL-Connection Settings 'database' => [ - 'host' => env('MYSQL_HOST', (env('CI', false) ? 'mariadb' : 'localhost')), + 'driver' => env('MYSQL_TYPE', 'mysql'), // mysql or mariadb + 'host' => env('MYSQL_HOST', 'localhost'), 'database' => env('MYSQL_DATABASE', 'engelsystem'), 'username' => env('MYSQL_USER', 'root'), - 'password' => env('MYSQL_PASSWORD', ''), + 'password' => env_secret('MYSQL_PASSWORD', ''), ], // For accessing /metrics (and /stats) 'api_key' => env('API_KEY', ''), - // Enable maintenance mode (show a static page) + // Enable maintenance mode (show a static page to all users) 'maintenance' => (bool) env('MAINTENANCE', false), // Application name (not the event name) @@ -26,42 +27,49 @@ return [ 'environment' => env('ENVIRONMENT', 'production'), // Application URL and base path to use instead of the auto-detected one - 'url' => env('APP_URL', null), + 'url' => env('APP_URL'), // Header links // Available link placeholders: %lang% - // To disable a header_item in the config.php, you can set its value to null + // To disable a header_item in config.php, you can set its value to null 'header_items' => [ - // Name can be a translation string, permission is a engelsystem privilege + // Name can be a translation string, permission is an engelsystem privilege // 'Name' => 'URL', - // 'Name' => ['URL', 'permission'], + // 'some.key' => ['URL', 'permission'], //'Foo' => ['https://foo.bar/batz-%lang%.html', 'logout'], // Permission: for logged-in users ], // Footer links - // To disable a footer item in the config.php, you can set its value to null + // To disable a footer item in config.php, you can set its value to null 'footer_items' => [ // Name can be a translation string, permission is a engelsystem privilege // 'Name' => 'URL', - // 'Name' => ['URL', 'permission'], + // 'some.key' => ['URL', 'permission'], - // URL to the angel faq and job description + // URL to faq page 'faq.faq' => [env('FAQ_URL', '/faq'), 'faq.view'], // Contact email address, linked on every page // 'Contact' => env('CONTACT_EMAIL', 'mailto:ticket@c3heaven.de'), ], - // Text displayed on the FAQ page, rendered as markdown - 'faq_text' => env('FAQ_TEXT', null), + // Other ways to ask the heaven + // Multiple contact options / links are possible, analogue to footer_items + 'contact_options' => [ + // E-mail address + // 'general.email' => env('CONTACT_EMAIL', 'mailto:ticket@c3heaven.de'), + ], + + // Additional text displayed on the FAQ page, rendered as markdown + 'faq_text' => env('FAQ_TEXT'), // Link to documentation/help 'documentation_url' => env('DOCUMENTATION_URL', 'https://engelsystem.de/doc/'), // Email config 'email' => [ - // Can be mail, smtp, sendmail or log or an symfony mailer dsn string like smtps://[usr]:[pass]@smtp.foo.bar:465 + // Can be mail, smtp, sendmail, log or an symfony mailer dsn string like smtps://[usr]:[pass]@smtp.foo.bar:465 'driver' => env('MAIL_DRIVER', 'mail'), 'from' => [ // From address of all emails @@ -71,19 +79,23 @@ return [ 'host' => env('MAIL_HOST', 'localhost'), 'port' => env('MAIL_PORT', 587), - // If tls transport encryption should be used - 'tls' => env('MAIL_TLS', null), + // If tls transport encryption should be enabled + 'tls' => env('MAIL_TLS'), 'username' => env('MAIL_USERNAME'), - 'password' => env('MAIL_PASSWORD'), + 'password' => env_secret('MAIL_PASSWORD'), 'sendmail' => env('MAIL_SENDMAIL', '/usr/sbin/sendmail -bs'), ], - # Your privacy@ contact address - 'privacy_email' => env('PRIVACY_EMAIL', null), + // Your privacy@ contact address + 'privacy_email' => env('PRIVACY_EMAIL'), + + // Show opt-in on user profile and registration pages to save some personal data after the event + 'enable_email_goodie' => (bool) env('ENABLE_EMAIL_GOODIE', false), - // Initial admin password - 'setup_admin_password' => env('SETUP_ADMIN_PASSWORD', null), + // Initial admin password, configured on first migration + 'setup_admin_password' => env_secret('SETUP_ADMIN_PASSWORD'), + // Setup external authentication providers 'oauth' => [ // '[name]' => [config] /* @@ -131,19 +143,24 @@ return [ 'groups' => 'groups', // Groups to team (angeltype) mapping (optional) 'teams' => [ - '/Lorem' => 4, // 4 being the ID of the angeltype - '/Foo Mod' => ['id' => 5, 'supporter' => true], // 5 being the ID of the angeltype + '/Lorem' => 4, // 4 being the ID of the team (angeltype) + '/Foo Mod' => ['id' => 5, 'supporter' => true], // 5 being the ID of the team (angeltype) ], ], */ ], - // Default theme, 1=style1.css + // Default theme, 1 = theme1.scss etc. 'theme' => env('THEME', 17), // Supported themes - // To disable a theme in the config.php, you can set its value to null + // To disable a theme in config.php, you can set its value to null 'themes' => [ + 18 => [ + 'name' => 'Engelsystem 38c3 (2024) - Lila, Lachs und Kurven', + 'type' => 'dark', + 'navbar_classes' => 'navbar-dark', + ], 17 => [ 'name' => 'Engelsystem 37c3 (2023)', 'type' => 'dark', @@ -236,7 +253,7 @@ return [ ], ], - // Redirect to this site after logging in or when pressing the top-left button + // Redirect to this site after logging in or when clicking the page name // Must be one of news, meetings, user_shifts, angeltypes, questions 'home_site' => env('HOME_SITE', 'news'), @@ -246,6 +263,9 @@ return [ // Users are able to sign up 'registration_enabled' => (bool) env('REGISTRATION_ENABLED', true), + // URL to external registration page, linked from login page + 'external_registration_url' => env('EXTERNAL_REGISTRATION_URL'), + // Required user fields 'required_user_fields' => [ 'pronoun' => (bool) env('PRONOUN_REQUIRED', false), @@ -256,75 +276,83 @@ return [ 'dect' => (bool) env('DECT_REQUIRED', false), ], - // Only arrived angels can sign up for shifts + // Only arrived users can sign up for shifts 'signup_requires_arrival' => (bool) env('SIGNUP_REQUIRES_ARRIVAL', false), - // Whether newly-registered user should automatically be marked as arrived - 'autoarrive' => (bool) env('ANGEL_AUTOARRIVE', true), + // Whether newly-registered users should automatically be marked as arrived + 'autoarrive' => (bool) env('AUTOARRIVE', false), + + // Supporters of a team (angeltype) can promote other users of the team (angeltype) to supporter + 'supporters_can_promote' => (bool) env('SUPPORTERS_CAN_PROMOTE', false), // Only allow shift signup this number of hours in advance // Setting this to 0 disables the feature 'signup_advance_hours' => env('SIGNUP_ADVANCE_HOURS', 0), // Allow signup this many minutes after the start of the shift. - // If signup_post_fraction is set, first applies that before adding the number of minutes specified by this. + // If signup_post_fraction is set, it's first applied before adding the number of minutes specified here. 'signup_post_minutes' => env('SIGNUP_POST_MINUTES', 0), // Allow signup this fraction of the shift length after the start of the shift. - // Example: If this is set to 1, signup is allowed until the end of a shift - // If this is set to 0.5, signup is allowd for the first half of a shift - // If signup_post_minutes is set, first applies this and then adds the signup_post_minutes on top. + // Example: If it is set to 1, signup is allowed until the end of a shift + // If it is set to 0.5, signup is allowed for the first half of a shift + // If signup_post_minutes is set, this is first applied and then the signup_post_minutes added on top. 'signup_post_fraction' => env('SIGNUP_POST_FRACTION', 0), - // Number of hours that an angel has to sign out own shifts + // Number of hours that a user can sign out of own shifts beforehand 'last_unsubscribe' => env('LAST_UNSUBSCRIBE', 3), // Define the algorithm to use for `password_verify()` - // If the user uses an old algorithm the password will be converted to the new format + // If a user password is hashed with an old algorithm, the password will be converted to the new format on login // See https://secure.php.net/manual/en/password.constants.php for a complete list 'password_algorithm' => env('PASSWORD_ALGORITHM', PASSWORD_DEFAULT), // The minimum length for passwords - 'min_password_length' => env('PASSWORD_MINIMUM_LENGTH', 8), + 'password_min_length' => env('PASSWORD_MIN_LENGTH', 8), - // Whether the Password field should be enabled on registration. - // This is useful when using oauth, disabling it also disables normal - // registration without oauth. + // Whether the login and registration via password should be enabled (login will be hidden if false) + // This is useful when using oauth, disabling it also disables normal registration without oauth 'enable_password' => (bool) env('ENABLE_PASSWORD', true), // Whether the DECT field should be enabled 'enable_dect' => (bool) env('ENABLE_DECT', true), - // Whether the mobile number can be shown to other users + // Whether the mobile number will be shown to other users 'enable_mobile_show' => (bool) env('ENABLE_MOBILE_SHOW', false), // Regular expression describing a FALSE username. // Per default usernames must only contain alphanumeric chars, "-", "_" or ".". 'username_regex' => (string) env('USERNAME_REGEX', '/([^\p{L}\p{N}_.-]+)/ui'), - // Enables first name and last name - 'enable_user_name' => (bool) env('ENABLE_USER_NAME', false), + // Enable first name and last name + 'enable_full_name' => (bool) env('ENABLE_FULL_NAME', false), // Show a users first name and last name instead of username 'display_full_name' => env('DISPLAY_FULL_NAME', false) - && env('ENABLE_USER_NAME', false), + && env('ENABLE_FULL_NAME', false), // Enable displaying the pronoun fields 'enable_pronoun' => (bool) env('ENABLE_PRONOUN', true), - // Enables the planned arrival/leave date + // Enable the planned arrival/leave date 'enable_planned_arrival' => (bool) env('ENABLE_PLANNED_ARRIVAL', true), + // Whether force active should be enabled + 'enable_force_active' => (bool) env('ENABLE_FORCE_ACTIVE', true), + + // Allow users with sufficient permission to add worklogs for themselves + 'enable_self_worklog' => (bool) env('ENABLE_SELF_WORKLOG', true), + // Resembles the Goodie Type. There are three options: // 'none' => no goodie at all // 'goodie' => a goodie which has no sizing options // 'tshirt' => goodie that is called tshirt and has sizing options 'goodie_type' => env('GOODIE_TYPE', 'goodie'), - // Enables the food voucher in the user profile + // Enable (food) vouchers 'enable_voucher' => (bool) env('ENABLE_VOUCHER', true), - // Number of shifts to freeload until angel is locked for shift signup. + // Number of shifts to freeload until a user is locked from shift signup. 'max_freeloadable_shifts' => env('MAX_FREELOADABLE_SHIFTS', 2), // Hide columns in backend user view. Possible values are any sortable parameters of the table. @@ -333,11 +361,12 @@ return [ // Local timezone 'timezone' => env('TIMEZONE', 'Europe/Berlin'), - // Multiply 'night shifts' and freeloaded shifts (start or end between 2 and 6 exclusive) by 2 + // Multiply 'night shifts' and freeloaded shifts (start or end between 2 and 8 exclusive) by 2 in goodie score + // Goodies must be enabled to use this feature 'night_shifts' => [ 'enabled' => (bool) env('NIGHT_SHIFTS', true), // Disable to weigh every shift the same - 'start' => env('NIGHT_SHIFTS_START', 2), - 'end' => env('NIGHT_SHIFTS_END', 6), + 'start' => env('NIGHT_SHIFTS_START', 2), // Starting from hour + 'end' => env('NIGHT_SHIFTS_END', 8), // Ends at (without including) hour 'multiplier' => env('NIGHT_SHIFTS_MULTIPLIER', 2), ], @@ -347,18 +376,20 @@ return [ 'shifts_per_voucher' => env('SHIFTS_PER_VOUCHER', 0), 'hours_per_voucher' => env('HOURS_PER_VOUCHER', 2), // 'Y-m-d' formatted - 'voucher_start' => env('VOUCHER_START', null) ?: null, + 'voucher_start' => env('VOUCHER_START') ?: null, ], + // Enable Driving License + 'driving_license_enabled' => (bool) env('DRIVING_LICENSE_ENABLED', true), + # Instruction in accordance with § 43 Para. 1 of the German Infection Protection Act (IfSG) 'ifsg_enabled' => (bool) env('IFSG_ENABLED', false), # Instruction only onsite in accordance with § 43 Para. 1 of the German Infection Protection Act (IfSG) - 'ifsg_light_enabled' => (bool) env('IFSG_LIGHT_ENABLED', false) - && env('IFSG_ENABLED', false), + 'ifsg_light_enabled' => env('IFSG_LIGHT_ENABLED', false) && env('IFSG_ENABLED', false), // Available locales in /resources/lang/ - // To disable a locale in the config.php, you can set its value to null + // To disable a locale in config.php, you can set its value to null 'locales' => [ 'de_DE' => 'Deutsch', ], @@ -367,7 +398,7 @@ return [ 'default_locale' => env('DEFAULT_LOCALE', 'de_DE'), // Available T-Shirt sizes - // To disable a t-shirt size in the config.php, you can set its value to null + // To disable a t-shirt size in config.php, you can set its value to null 'tshirt_sizes' => [ 'S' => 'Small Straight-Cut', 'S-F' => 'Small Fitted-Cut', @@ -382,11 +413,14 @@ return [ '4XL' => '4XLarge Straight-Cut', ], + // T-shirt Size-Guide link + 'tshirt_link' => env('TSHIRT_LINK'), + // Whether to show the current day of the event (-2, -1, 0, 1, 2…) in footer and on the dashboard. // The event start date has to be set for it to appear. - 'enable_show_day_of_event' => false, + 'enable_day_of_event' => (bool) env('ENABLE_DAY_OF_EVENT', false), // If true there will be a day 0 (-1, 0, 1…). If false there won't (-1, 1…) - 'event_has_day0' => true, + 'event_has_day0' => (bool) env('EVENT_HAS_DAY0', true), 'metrics' => [ // User work buckets in seconds @@ -417,7 +451,7 @@ return [ // Add additional headers 'add_headers' => (bool) env('ADD_HEADERS', true), // Predefined headers - // To disable a header in the config.php, you can set its value to null + // To disable a header in config.php, you can set its value to null 'headers' => [ 'X-Content-Type-Options' => 'nosniff', 'X-Frame-Options' => 'sameorigin', diff --git a/resources/lang/de_DE/additional.po b/resources/lang/de_DE/additional.po index fb183ca..b1104d2 100644 --- a/resources/lang/de_DE/additional.po +++ b/resources/lang/de_DE/additional.po @@ -85,9 +85,6 @@ msgstr "Das Programm konnte nicht abgerufen werden." msgid "schedule.import.read-error" msgstr "Das Programm konnte nicht gelesen werden." -msgid "schedule.import.invalid-shift-type" -msgstr "Der Schichttyp konnte nicht gefunden werden." - msgid "schedule.import.success" msgstr "Das Programm wurde erfolgreich importiert." @@ -172,12 +169,6 @@ msgstr "Der OAuth-Provider ist aufgrund eines unerwarteten Fehlers nicht in der msgid "oauth.temporarily_unavailable" msgstr "Der OAuth-Provider ist aufgrund Überlastung oder Wartung temporär nicht in der Lage, die Anfrage zu erfüllen" -msgid "profile.my-shifts" -msgstr "Meine Schichten" - -msgid "settings.profile" -msgstr "Profil" - msgid "settings.profile.planned_arrival_date.invalid" msgstr "Bitte gib Dein geplantes Ankunftsdatum an. " "Es sollte nach dem Aufbaubeginn und vor dem Abbauende liegen." @@ -210,6 +201,15 @@ msgstr "Frage erstellt." msgid "question.edit.success" msgstr "Frage erfolgreich bearbeitet." +msgid "tag.edit.duplicate" +msgstr "Ein Tag mit dem Namen existiert bereits!" + +msgid "tag.edit.success" +msgstr "Der Tag wurde erfolgreich aktualisiert." + +msgid "tag.delete.success" +msgstr "Tag erfolgreich gelöscht." + msgid "notification.news.new" msgstr "Neue News: %s" @@ -226,7 +226,7 @@ msgid "notification.messages.new" msgstr "Neue private Nachricht von %s" msgid "notification.messages.new.text" -msgstr "Du hast eine neue private Nachricht von %s bekommen. Du kannst sie dir unter %s anschauen." +msgstr "Du hast eine neue private Nachricht von \"%s\" bekommen. Du kannst sie dir unter %s anschauen." msgid "notification.angeltype.confirmed" msgstr "Du wurdest als %s bestätigt" @@ -296,8 +296,47 @@ msgstr "Der Name wird bereits verwendet." msgid "registration.disabled" msgstr "Die Registrierung ist deaktiviert." +msgid "registration.successful.supporter" +msgstr "Registrierung erfolgreich." + msgid "registration.successful" msgstr "Registrierung erfolgreich. Du kannst dich jetzt anmelden!" msgid "shifts.history.delete.success" msgstr "Schichten erfolgreich gelöscht." + +msgid "config.event" +msgstr "Event" + +msgid "config.name" +msgstr "Event Name" + +msgid "config.name.info" +msgstr "Der Event Name wird auf der Startseite angezeigt." + +msgid "config.welcome_msg" +msgstr "Event Willkommens-Nachricht" + +msgid "config.welcome_msg.info" +msgstr "Die Willkommens-Nachricht wird nach der Registrierung angezeigt. Du kannst Markdown benutzen." + +msgid "config.buildup_start" +msgstr "Aufbau Datum" + +msgid "config.event_start" +msgstr "Event Start Datum" + +msgid "config.event_end" +msgstr "Event Ende Datum" + +msgid "config.teardown_end" +msgstr "Abbau Ende Datum" + +msgid "validation.event_start.after" +msgstr "Event Start muss nach dem Aufbau liegen." + +msgid "validation.event_end.after" +msgstr "Event Ende muss nach dem Event Start liegen." + +msgid "validation.teardown_end.after" +msgstr "Abbau Ende muss nach dem Event Ende liegen." diff --git a/resources/lang/de_DE/default.po b/resources/lang/de_DE/default.po index d38fe63..4ca022e 100644 --- a/resources/lang/de_DE/default.po +++ b/resources/lang/de_DE/default.po @@ -54,7 +54,7 @@ msgid "page.419.title" msgstr "Autorisierung ist abgelaufen" msgid "page.419.text" -msgstr "Das angegebene CSRF Token ist ungültig oder abgelaufen" +msgstr "Das angegebene CSRF Token ist ungültig oder abgelaufen. Bitte versuche es erneut." msgid "general.date" msgstr "d.m.Y" @@ -90,7 +90,7 @@ msgid "form.submit" msgstr "Absenden" msgid "form.send_notification" -msgstr "Benachrichtigungen versenden" +msgstr "%d Benachrichtigungen versenden" msgid "credits.source" msgstr "Quellcode" @@ -168,16 +168,19 @@ msgstr "Mindestlänge %d Zeichen" msgid "form.recover" msgstr "Wiederherstellen" -msgid "Angeltype %s deleted." +msgid "Angel type %s deleted." msgstr "Elfentyp %s gelöscht." -msgid "Delete angeltype %s" +msgid "Delete angel type %s" msgstr "Lösche Elfentyp %s" msgid "Please check the name. Maybe it already exists." msgstr "Bitte überprüfe den Namen. Vielleicht ist er bereits vergeben." -msgid "Create angeltype" +msgid "Angel type saved." +msgstr "Elfentyp wurde gespeichert." + +msgid "Create angel type" msgstr "Elfentyp erstellen" msgid "Edit %s" @@ -189,41 +192,17 @@ msgstr "Team %s" msgid "%s (not \"%s\")" msgstr "%s (kein \"%s\")" -msgid "View" +msgid "%s (already in shift)" +msgstr "%s (bereits eingetragen)" + +msgid "form.view" msgstr "Ansehen" msgid "Leave" msgstr "Verlassen" msgid "Join" -msgstr "Mitmachen" - -msgid "Event config" -msgstr "Event Einstellungen" - -msgid "Please enter buildup start date." -msgstr "Bitte gib das Aufbau Start Datum an." - -msgid "Please enter event start date." -msgstr "Bitte gib das Event Start Datum an." - -msgid "Please enter event end date." -msgstr "Bitte gib das Event Ende Datum an." - -msgid "Please enter teardown end date." -msgstr "Bitte gib das Abbau Ende Datum an." - -msgid "The buildup start date has to be before the event start date." -msgstr "Das Aufbau Start Datum muss vor dem Event Start Datum liegen." - -msgid "The event start date has to be before the event end date." -msgstr "Das Event Start Datum muss vor dem Event End Datum liegen." - -msgid "The event end date has to be before the teardown end date." -msgstr "Das Event Ende Datum muss vor dem Abbau Ende Datum liegen." - -msgid "The buildup start date has to be before the teardown end date." -msgstr "Das Aufbau Start Datum muss vor dem Abbau Ende Datum liegen." +msgstr "Beitreten" msgid "Public Dashboard" msgstr "Öffentliches Dashboard" @@ -234,13 +213,13 @@ msgstr "Zufällige Schicht" msgid "%s has been subscribed to the shift." msgstr "%s wurde in die Schicht eingetragen." -msgid "User is not in angeltype." +msgid "User is not in angel type." msgstr "User ist nicht im Elfentyp." msgid "This shift is already occupied." msgstr "Die Schicht ist schon voll." -msgid "You need be accepted member of the angeltype." +msgid "You need be accepted member of the angel type." msgstr "Du musst bestätigtes Mitglied des Elfentyps sein." msgid "This shift collides with one of your shifts." @@ -279,9 +258,6 @@ msgstr "" msgid "Please select a location." msgstr "Bitte einen Ort auswählen." -msgid "Please select a shifttype." -msgstr "Bitte einen Schichttyp wählen." - msgid "Please enter a valid starting time for the shifts." msgstr "Bitte gib eine korrekte Startzeit für die Schichten ein." @@ -300,7 +276,7 @@ msgstr "Schicht aktualisiert." msgid "This page is much more comfortable with javascript." msgstr "Diese Seite ist mit JavaScript viel komfortabler." -msgid "Shifttype" +msgid "Shift type" msgstr "Schichttyp" msgid "title.title" @@ -309,70 +285,64 @@ msgstr "Titel" msgid "Location:" msgstr "Ort:" -msgid "Start:" -msgstr "Start:" - -msgid "End:" -msgstr "Ende:" - msgid "Needed angels" msgstr "Benötigte Elfen" msgid "Shift deleted." msgstr "Schicht gelöscht." -msgid "Do you want to delete the shift %s from %s to %s?" -msgstr "Möchtest Du die Schicht %s von %s bis %s löschen?" +msgid "Do you want to delete the shift \"%s\" from %s to %s?" +msgstr "Möchtest Du die Schicht \"%s\" von %s bis %s löschen?" msgid "Shift could not be found." msgstr "Schicht konnte nicht gefunden werden." -msgid "There is %d unconfirmed angeltype." -msgid_plural "There are %d unconfirmed angeltypes." -msgstr[0] "Es gibt %d nicht freigeschalteten Elfentypen!" -msgstr[1] "Es gibt %d nicht freigeschaltete Elfentypen!" - -msgid "Angel types which need approvals:" -msgstr "Elfentypen die bestätigt werden müssen:" +msgid "There are unconfirmed angels in %d angel type. Angel type that needs approval:" +msgid_plural "There are unconfirmed angels in %d angel types. Angel types that need approvals:" +msgstr[0] "Es gibt nicht freigeschaltete Elfen in %d Elfentypen! Elfentyp der bestätigt werden muss:" +msgstr[1] "Es gibt nicht freigeschaltete Elfen in %d Elfentypen! Elfentypen die bestätigt werden müssen:" -msgid "You are not allowed to delete all users for this angeltype." +msgid "You are not allowed to delete all users for this angel type." msgstr "Du darfst nicht alle Benutzer von diesem Elfentyp entfernen." -msgid "Denied all users for angeltype %s." +msgid "Denied all users for angel type %s." msgstr "Alle Benutzer mit Elfentyp %s abgelehnt." msgid "Deny all users" msgstr "Alle Benutzer ablehnen" -msgid "You are not allowed to confirm all users for this angeltype." +msgid "You are not allowed to confirm all users for this angel type." msgstr "Du darfst nicht alle Benutzer für diesen Elfentyp freischalten." -msgid "Confirmed all users for angeltype %s." +msgid "Confirmed all users for angel type %s." msgstr "Alle Benutzer für Elfentyp %s freigeschaltet." msgid "Confirm all users" msgstr "Alle Benutzer bestätigen" -msgid "You are not allowed to confirm this users angeltype." +msgid "You are not allowed to confirm this users angel type." msgstr "Du darfst diesen Benutzer nicht für diesen Elfentyp freischalten." -msgid "%s confirmed for angeltype %s." +msgid "%s confirmed for angel type %s." msgstr "%s für Elfentyp %s freigeschaltet." -msgid "Confirm angeltype for user" +msgid "Confirm angel type for user" msgstr "Elfentyp für Benutzer bestätigen" -msgid "You are not allowed to delete this users angeltype." +msgid "You are not allowed to delete this users angel type." msgstr "Du darfst diesen Benutzer nicht von diesem Elfentyp entfernen." -msgid "User %s removed from %s." -msgstr "Benutzer %s von %s entfernt." +msgid "User \"%s\" removed from \"%s\"." +msgstr "Benutzer \"%s\" von \"%s\" entfernt." -msgid "Remove angeltype" -msgstr "Elfentyp löschen" +msgid "Edit certificates" +msgstr "Zertifikate bearbeiten" -msgid "You are not allowed to set supporter rights." -msgstr "Du darfst keine Supporterrechte bearbeiten." +msgid "You successfully left \"%2$s\"." +msgstr "Du hast erfolgreich \"%2$s\" verlassen." + +msgid "Leave angel type" +msgstr "Elfentyp verlassen" msgid "No supporter update given." msgstr "Kein Update für Supporterrechte gegeben." @@ -392,7 +362,7 @@ msgstr "Supporterrechte entfernen" msgid "User %s added to %s." msgstr "Benutzer %s zu %s hinzugefügt." -msgid "Add user to angeltype" +msgid "Add user to angel type" msgstr "Benutzer zu Elfentyp hinzufügen" msgid "You are already a %s." @@ -401,8 +371,8 @@ msgstr "Du bist bereits %s." msgid "You joined %s." msgstr "Du bist %s beigetreten." -msgid "Become a %s" -msgstr "Werde ein %s" +msgid "Join %s" +msgstr "%s beitreten" msgid "You cannot delete yourself." msgstr "Du kannst Dich nicht selber löschen." @@ -483,7 +453,7 @@ msgid "Apply" msgstr "Anwenden" msgid "Angel has been marked as active." -msgstr "Elf wurde als aktiv markiert." +msgstr "Elfen wurde als aktiv markiert." msgid "Angel not found." msgstr "Elf nicht gefunden." @@ -497,17 +467,26 @@ msgstr "Elf hat ein T-Shirt bekommen." msgid "Angel has got no T-shirt." msgstr "Elf hat kein T-Shirt bekommen." -msgid "set active" -msgstr "setze aktiv" +msgid "Angel has no valid T-shirt size. T-shirt was not set." +msgstr "Elf hat keine valide T-Shirt Größe. T-Shirt wurde nicht gespeichert." -msgid "Remove active" -msgstr "entferne aktiv" +msgid "This Angel has no valid T-shirt size, therefore it's not possible to hand out a T-shirt." +msgstr "Dieser Elf hat keine valide T-Shirt Größe, weswegen kein T-Shirt ausgegeben werden kann." -msgid "Got T-shirt" -msgstr "T-Shirt bekommen" +msgid "Set active" +msgstr "Setze aktiv" + +msgid "Remove active" +msgstr "Entferne aktiv" msgid "Remove T-shirt" -msgstr "entferne T-Shirt" +msgstr "Entferne T-Shirt" + +msgid "Goodie actions" +msgstr "Goodie Aktionen" + +msgid "T-shirt actions" +msgstr "T-Shirt Aktionen" msgid "Sum" msgstr "Summe" @@ -518,7 +497,7 @@ msgstr "Suche Elfen:" msgid "Show all shifts" msgstr "Alle Schichten anzeigen" -msgid "How much angels should be active?" +msgid "How many angels should be active?" msgstr "Wie viele Elfen sollten aktiv sein?" msgid "Size" @@ -527,20 +506,23 @@ msgstr "Größe" msgid "No." msgstr "Nr." -msgid "Shifts" +msgid "general.shifts" msgstr "Schichten" msgid "Length" msgstr "Länge" -msgid "Active?" -msgstr "Aktiv?" +msgid "Length (in minutes)" +msgstr "Länge (in Minuten)" + +msgid "Active" +msgstr "Aktiv" msgid "Forced" msgstr "Erzwungen" -msgid "T-shirt?" -msgstr "T-Shirt?" +msgid "T-shirt" +msgstr "T-Shirt" msgid "T-shirt statistic" msgstr "T-Shirt Statistik" @@ -548,6 +530,9 @@ msgstr "T-Shirt Statistik" msgid "Given T-shirts" msgstr "Ausgegebene T-Shirts" +msgid "Configured T-shirts" +msgstr "Konfigurierte T-Shirts" + msgid "Arrive angels" msgstr "Ankommende Elfen" @@ -560,12 +545,12 @@ msgstr "Elf wurde als angekommen markiert." msgid "Reset" msgstr "Zurücksetzen" +msgid "Reset arrival state for %s?" +msgstr "Angekommen-Status für %s zurücksetzen?" + msgid "Planned arrival" msgstr "Geplanter Ankunftstag" -msgid "Arrived?" -msgstr "Angekommen?" - msgid "Arrival date" msgstr "Ankunftsdatum" @@ -590,19 +575,31 @@ msgstr "Geplante Abreise-Statistik" msgid "Free angels" msgstr "Freie Elfen" -msgid "Angeltype" +msgid "Angel type" msgstr "Elfentyp" msgid "shift.next" msgstr "Nächste Schicht" +msgid "general.shift" +msgstr "Schicht" + +msgid "shift.angeltype_source" +msgstr "Benötigte Elfen von: %s" + +msgid "shift.angeltype_source.shift_type" +msgstr "Programm %s via Schichttyp %s" + +msgid "shift.angeltype_source.location" +msgstr "Programm %s via Ort %s" + msgid "Last shift" msgstr "Letzte Schicht" msgid "general.dect" msgstr "DECT" -msgid "Grouprights" +msgid "Group rights" msgstr "Gruppenrechte" msgid "general.name" @@ -629,9 +626,6 @@ msgstr "Fragen beantworten" msgid "There are unanswered questions!" msgstr "Es gibt unbeantwortete Fragen!" -msgid "Locations" -msgstr "Orte" - msgid "general.description" msgstr "Beschreibung" @@ -737,22 +731,8 @@ msgstr "User bearbeiten" msgid "general.datetime" msgstr "d.m.Y H:i" -msgid "Key changed." -msgstr "Key geändert." - -msgid "Reset API key" -msgstr "API-Key zurücksetzen" - -msgid "" -"If you reset the key, the url to your iCal- and JSON-export and your atom/rss " -"feed changes! You have to update it in every application using one of these " -"exports." -msgstr "" -"Wenn du den API-Key zurücksetzt, ändert sich die URL zu deinem iCal-, JSON-" -"Export und Atom/RSS Feed! Du musst diesen überall ändern, wo er in Benutzung ist." - -msgid "Continue" -msgstr "Fortfahren" +msgid "API Settings" +msgstr "API Einstellungen" msgid "Please enter a freeload comment!" msgstr "Gib bitte einen Schwänz-Kommentar ein!" @@ -770,8 +750,8 @@ msgid "The administration has not configured any shifts yet." msgstr "Die Administratoren haben noch keine Schichten angelegt." msgid "" -"The administration has not configured any angeltypes yet - or you are not " -"subscribed to any angeltype." +"The administration has not configured any angel types yet - or you are not " +"subscribed to any angel type." msgstr "" "Die Administratoren haben noch keine Elfentypen konfiguriert - oder Du hast " "noch keine Elfentypen ausgewählt." @@ -789,7 +769,7 @@ msgid "Occupancy" msgstr "Belegung" msgid "" -"The tasks shown here are influenced by the angeltypes you joined already!" +"The tasks shown here are influenced by the angel types you joined already!" msgstr "" "Die Schichten, die hier angezeigt werden, sind von Deinen Einstellungen " "(Elfentypen/Aufgaben) abhängig!" @@ -822,16 +802,13 @@ msgid "iCal export and API" msgstr "iCal Export und API" msgid "" -"Export your own shifts. iCal format or JSON format available (please keep secret, otherwise reset the api key)." +"Export your own shifts formatted as iCal or " +"JSON (please keep the link secret, otherwise you have to reset the api key " +"in your settings)." msgstr "" -"Exportiere Deine Schichten. iCal Format oder JSON Format verfügbar (Link bitte geheimhalten, sonst API-Key zurücksetzen)." - -msgid "Show API Key" -msgstr "API Key anzeigen" +"Exportiere Deine Schichten im iCal oder JSON Format (Link bitte geheimhalten, sonst musst du den API-Key in " +"deinen Einstellungen zurücksetzen)." msgid "All" msgstr "Alle" @@ -845,9 +822,6 @@ msgstr "Abmelden" msgid "Admin" msgstr "Admin" -msgid "Manage locations" -msgstr "Orte verwalten" - msgid "No data found." msgstr "Nichts gefunden." @@ -860,7 +834,7 @@ msgstr "Supporter" msgid "Member" msgstr "Mitglied" -msgid "Do you want to delete angeltype %s?" +msgid "Do you want to delete angel type %s?" msgstr "Möchtest Du den Elfentypen %s löschen?" msgid "angeltypes.restricted" @@ -896,18 +870,24 @@ msgstr "Kontakt" msgid "Primary contact person/desk for user questions." msgstr "Ansprechpartner für Fragen." -msgid "my driving license" +msgid "My driving license" msgstr "Meine Führerschein-Infos" +msgid "angeltype.ifsg.required.info.preview" +msgstr "Dieser Elfentyp benötigt eine Gesundheitsbelehrung." + +msgid "angeltype.driving_license.required.info.preview" +msgstr "Dieser Elfentyp benötigt Führerschein-Infos." + msgid "" -"This angeltype requires a driver license. Please enter your driver license " +"This angel type requires a driver license. Please enter your driver license " "information!" msgstr "" "Dieser Elfentyp benötigt Führerschein-Infos. Bitte trage Deine Führerschein-" "Infos ein!" msgid "" -"You are unconfirmed for this angeltype. Please go to the introduction for %s " +"You are unconfirmed for this angel type. Please go to the introduction for %s " "to get confirmed." msgstr "" "Du bist noch nicht für diesen Elfentyp bestätigt. Bitte gehe zur Einführung " @@ -937,7 +917,7 @@ msgstr "Supporter" msgid "Members" msgstr "Mitglieder" -msgid "Add" +msgid "general.add" msgstr "Hinzufügen" msgid "Confirm all" @@ -949,33 +929,6 @@ msgstr "Alle ablehnen" msgid "Membership" msgstr "Mitgliedschaft" -msgid "Event Name" -msgstr "Event Name" - -msgid "Event Name is shown on the start page." -msgstr "Event Name wird auf der Startseite angezeigt." - -msgid "Event Welcome Message" -msgstr "Event Willkommens-Nachricht" - -msgid "" -"Welcome message is shown after successful registration. You can use markdown." -msgstr "" -"Die Willkommens-Nachricht wird nach einer erfolgreichen Registrierung " -"angezeigt. Du kannst Markdown benutzen." - -msgid "Buildup date" -msgstr "Aufbau Datum" - -msgid "Event start date" -msgstr "Event Start Datum" - -msgid "Teardown end date" -msgstr "Abbau Ende Datum" - -msgid "Event end date" -msgstr "Event Ende Datum" - msgid "Angels needed in the next 3 hrs" msgstr "Benötigte Elfen in den nächsten 3 Stunden" @@ -1003,14 +956,14 @@ msgstr "Meine Schicht" msgid "Help needed" msgstr "Hilfe benötigt" -msgid "Other angeltype needed / collides with my shifts" +msgid "Other angel type needed / collides with my shifts" msgstr "Andere Elfentypen benötigt / kollidiert mit meinen Schichten" msgid "Shift is full" msgstr "Schicht ist voll" -msgid "Shift is running/ended or you have not arrived" -msgstr "Schicht läuft/vorbei oder du bist noch nicht angekommen" +msgid "Shift is running/has ended, you have not arrived or signup is blocked otherwise" +msgstr "Schicht läuft/ist vorbei, du bist noch nicht angekommen oder das eintragen ist blockiert" msgid "Add more angels" msgstr "Mehr Elfen hinzufügen" @@ -1027,13 +980,10 @@ msgid "ended" msgstr "vorbei" msgid "please arrive for signup" -msgstr "Ankommen zum Eintragen" +msgstr "Komme an um dich einzutragen" -msgid "not yet" -msgstr "noch nicht" - -msgid "Become %s" -msgstr "Werde ein %s" +msgid "not yet possible" +msgstr "noch nicht möglich" msgid "m-d" msgstr "d.m." @@ -1065,14 +1015,17 @@ msgstr "Schicht Anmeldung" msgid "Freeloaded" msgstr "Geschwänzt" -msgid "Freeload comment (Only for shift coordination):" -msgstr "Schwänzer Kommentar (Nur für die Schicht-Koordination):" +msgid "Freeloaded by %s" +msgstr "Geschwänzt gesetzt durch %s" + +msgid "Freeload comment (Only for shift coordination and supporters):" +msgstr "Schwänzer Kommentar (Nur für Supporter und die Schicht-Koordination):" msgid "Edit shift entry" msgstr "Schichteintrag bearbeiten" msgid "Angel:" -msgstr "Elf:" +msgstr "Elfen:" msgid "Date, Duration:" msgstr "Termin, Dauer:" @@ -1092,9 +1045,8 @@ msgstr "bearbeitet am %s von %s" msgid "History ID: %s" msgstr "Historien-ID: %s" -msgid "This shift is in the far future and becomes available for signup at %s." -msgstr "" -"Diese Schicht liegt in der fernen Zukunft und du kannst dich ab %s eintragen." +msgid "This shift is in the far future. It becomes available for signup at %s." +msgstr "Diese Schicht liegt in der fernen Zukunft. Du kannst dich ab %s eintragen." msgid "Do you really want to add supporter rights for %s to %s?" msgstr "Sollen %s %s als neuen Supporter bekommen?" @@ -1111,14 +1063,17 @@ msgstr "Möchtest Du wirklich alle Benutzer als %s bestätigen?" msgid "Do you really want to confirm %s for %s?" msgstr "Möchtest Du wirklich %s für %s bestätigen?" -msgid "Do you really want to delete %s from %s?" -msgstr "Möchtest Du wirklich %s von %s entfernen?" +msgid "Do you really want to remove \"%s\" from \"%s\"?" +msgstr "Möchtest Du wirklich \"%s\" von \"%s\" entfernen?" + +msgid "Do you really want to leave \"%2$s\"?" +msgstr "Möchtest Du \"%2$s\" wirklich verlassen?" msgid "Do you really want to add %s to %s?" msgstr "Möchtest Du wirklich %s zu %s hinzufügen?" -msgid "Do you want to become a %2$s?" -msgstr "Möchtest Du ein %2$s werden?" +msgid "Do you want to join %2$s?" +msgstr "Möchtest Du %2$s beitreten?" msgid "Confirm user" msgstr "Benutzer bestätigen" @@ -1131,10 +1086,10 @@ msgstr "Zurück zum Profil" msgid "" "Do you really want to delete the user including all his shifts and every " -"other piece of his data?" +"other piece of his data? All created shifts, news, answers etc. will be reassigned to you." msgstr "" -"Möchtest Du wirklich den Elf inklusive aller seiner Schichten und allen " -"anderen seiner Daten löschen?" +"Möchtest Du wirklich den Elfen inklusive aller seiner Schichten und allen " +"anderen seiner Daten löschen? Alle erstellten Schichten, News, Antworten usw. werden auf dich übertragen." msgid "Your password" msgstr "Dein Passwort" @@ -1148,15 +1103,9 @@ msgstr "Elf kann noch %d Gutscheine bekommen und ist FA." msgid "Number of vouchers given out" msgstr "Anzahl Gutscheine bekommen" -msgid "Voucher" -msgstr "Gutschein" - msgid "Freeloads" msgstr "Schwänzereien" -msgid "T-shirt" -msgstr "T-Shirt" - msgid "Last login" msgstr "Letzter Login" @@ -1211,8 +1160,8 @@ msgstr "iCal Export" msgid "JSON Export" msgstr "JSON Export" -msgid "Your night shifts between %d and %d am count twice for the %s score." -msgstr "Deine Nachtschichten zwischen %d und %d Uhr zählen für den %s Score doppelt." +msgid "Night shifts between %d and %d am are multiplied by %d for the %s score." +msgstr "Nachtschichten zwischen %d und %d Uhr werden für den %4$s Score mit %3$d multipliziert." msgid "" "Go to the shifts table to sign yourself up for some " @@ -1262,13 +1211,6 @@ msgstr "" "Bitte gib Dein geplantes Abreisedatum an, damit wir ein Gefühl für die Abbau-" "Planung bekommen." -msgid "" -"You freeloaded at least %s shifts. Shift signup is locked. Please go to " -"heavens desk to be unlocked again." -msgstr "" -"Du hast mindestens %s Schichten geschwänzt. Schicht-Registrierung ist " -"gesperrt. Bitte gehe zum Himmelsschreibtisch um wieder entsperrt zu werden." - msgid "tshirt.required.hint" msgstr "Bitte gib eine T-Shirt-Größe in deinen Einstellungen an." @@ -1303,7 +1245,7 @@ msgstr "" "dass der Elf bereits sein T-Shirt erhalten hat." msgid "Here you can reset the password of this angel:" -msgstr "Hier kannst du das Passwort für diesen Elf zurücksetzen:" +msgstr "Hier kannst du das Passwort für diesen Elfen zurücksetzen:" msgid "Here you can define the user groups of the angel:" msgstr "Hier kannst du die Benutzergruppen des Elfs definieren:" @@ -1354,12 +1296,6 @@ msgstr "Goodie Statistik" msgid "Remove goodie" msgstr "Goodie entfernen" -msgid "Got goodie" -msgstr "Goodie bekommen" - -msgid "Goodie?" -msgstr "Goodie?" - msgid "Angel has got a goodie." msgstr "Elf hat ein Goodie bekommen." @@ -1410,6 +1346,12 @@ msgstr "Pflichtfeld" msgid "form.user_select" msgstr "Wähle einen User" +msgid "form.tags" +msgstr "Tags" + +msgid "form.tags.info" +msgstr "Komma separierte Liste von Tags" + msgid "schedule.import" msgstr "Programm importieren" @@ -1535,7 +1477,7 @@ msgid "news.comments.delete.title" msgstr "Kommentar \"%s\" löschen" msgid "notification.news.updated.introduction" -msgstr "Die News %1$s wurde aktualisiert" +msgstr "Die News \"%1$s\" wurde aktualisiert" msgid "notification.news.updated.text" msgstr "Du kannst sie dir unter %3$s anschauen." @@ -1606,6 +1548,13 @@ msgstr "Diese E-Mail-Adresse ist bereits vergeben." msgid "settings.profile.email_shiftinfo" msgstr "Das %s darf mir E-Mails senden (z.B. wenn sich meine Schichten ändern)." +msgid "registration.email_system" +msgstr "Das %s darf mir E-Mails senden " +"(z.B. wenn sich meine Schichten ändern, ich neue private Nachrichten bekomme oder es neue News gibt)." + +msgid "registration.email_system.info" +msgstr "Genauere Einstellungen sind in deinem Profil möglich." + msgid "settings.profile.email_news" msgstr "Benachrichtige mich bei neuen News." @@ -1615,19 +1564,41 @@ msgstr "Benachrichtige mich bei neuen privaten Nachrichten." msgid "settings.profile.email_by_human_allowed" msgstr "Erlaube Himmel-Elfen mich per E-Mail zu kontaktieren." -msgid "settings.profile.email_goody" +msgid "settings.profile.email_goodie" +msgstr "Um gegebenenfalls Voucher für das nächste gleichartige Event zu erhalten stimme ich zu, " +"dass mein Nick, E-Mail-Adresse und geleistete Arbeit solange gespeichert werden." + +msgid "settings.profile.email_tshirt" msgstr "Um gegebenenfalls Voucher für das nächste gleichartige Event zu erhalten stimme ich zu, " "dass mein Nick, E-Mail-Adresse, geleistete Arbeit und T-Shirt-Größe solange gespeichert werden." msgid "settings.profile.privacy" -msgstr "Dies kann jederzeit durch eine E-Mail an %1$s widerrufen werden." +msgstr "" +"Diese Zustimmung kann während des Events in den Profil-Einstellungen, sowie, auch nach dem Event, " +"per E-Mail an %1$s, widerrufen werden." msgid "settings.profile.shirt_size" msgstr "T-Shirt-Größe" +msgid "settings.profile.shirt_size.hint" +msgstr "Ein straight-cut T-Shirt hat breite Schultern und einen fast quadratischen Körper. " +"Ein fitted-cut (tailliertes) T-Shirt hat eine geschwungene Seitennaht, die an der Taille schmaler " +"ist und einen größeren Brust- sowie Hüft-Umfang hat. " +"Normalerweise fallen fitted-cut (taillierte) T-Shirts kleiner aus als straight-cut T-Shirts in der gleichen Größe, " +"außerdem sind die Größen von Marke zu Marke unterscheiden." + +msgid "settings.profile.shirt.link" +msgstr "Mehr Informationen" + msgid "settings.profile.angeltypes.info" msgstr "Du kannst deine Elfentypen auf der Elfentypen-Seite verwalten." +msgid "profile.my_shifts" +msgstr "Meine Schichten" + +msgid "settings.profile" +msgstr "Profil" + msgid "settings.password" msgstr "Passwort" @@ -1708,11 +1679,31 @@ msgstr "Gabelstapler" msgid "settings.certificates.ifsg_light" msgstr "Ich wurde vor Ort nach IfSG §43 (Frikadellendiplom light) belehrt." +msgid "settings.certificates.ifsg_light_admin" +msgstr "Wurde vor Ort nach IfSG §43 (Frikadellendiplom light) belehrt." + msgid "settings.certificates.ifsg" msgstr "Ich habe eine Belehrung nach §43 IfSG (Frikadellendiplom) bei meinem Gesundheitsamt " "erhalten und innerhalb von 3 Monaten die Zweitbelehrung durch uns oder meinen Arbeitgeber/Koch/Verein bekommen. " "Zusätzlich ist die Zweitbelehrung nicht älter als zwei Jahre." +msgid "settings.certificates.ifsg_admin" +msgstr "Hat eine Belehrung nach §43 IfSG (Frikadellendiplom) vom Gesundheitsamt " +"erhalten und innerhalb von 3 Monaten die Zweitbelehrung durch uns oder einen Arbeitgeber/Koch/Verein bekommen. " +"Zusätzlich ist die Zweitbelehrung nicht älter als zwei Jahre." + +msgid "settings.certificates.confirmed" +msgstr "Zertifikat bestätigt" + +msgid "settings.certificates.ifsg_confirmed.hint" +msgstr "Deine Gesundheitsbelehrung wurde bestätigt, du kannst deine Angaben nicht mehr selber ändern." + +msgid "settings.certificates.drive_confirmed.hint" +msgstr "Dein Führerschein wurde bestätigt, du kannst deine Angaben nicht mehr selber ändern." + +msgid "settings.certificates.confirmation.info" +msgstr "Du hast persönlich überprüft, dass die Zertifizierung / Bescheinigung den Anforderungen genügt." + msgid "settings.certificates.success" msgstr "Zertifikate wurden erfolgreich aktualisiert." @@ -1760,9 +1751,12 @@ msgstr "API" msgid "settings.api.about" msgstr "" -"Die API erlaubt es dir, über externe Programme, mit dem Elfensystem zu interagieren. " +"Die API erlaubt es dir, über externe Programme, mit dem %s zu interagieren. " "Sie ist noch nicht vollständig, wir arbeiten aber daran sie zu erweitern.\n" -"Der API Einstiegspunkt befindet sich unter `%s` und ist in der [OpenAPI Spezifikation](%s) beschrieben.\n" +"Der Einstiegspunkt der API befindet sich unter `%s` und ist in der [OpenAPI Spezifikation](%s) beschrieben." + +msgid "settings.api.about.warning" +msgstr "" "Teile deinen persönlichen API Key mit niemandem, er erlaubt es deine persönlichen Daten einzusehen " "und Änderungen in deinem Namen durch zu führen!" @@ -1814,18 +1808,15 @@ msgstr "FAQ Eintrag bearbeiten" msgid "faq.add" msgstr "FAQ Eintrag erstellen" -msgid "faq.question" -msgstr "Frage" - -msgid "faq.message" -msgstr "Antwort" - msgid "faq.delete.title" msgstr "FAQ \"%s\" löschen" msgid "question.questions" msgstr "Fragen" +msgid "question.admin" +msgstr "Fragen beantworten" + msgid "question.faq_link" msgstr "Hast du eine generelle Frage? Vielleicht ist diese schon in den FAQ beantwortet." @@ -1844,6 +1835,21 @@ msgstr "Antwort" msgid "question.delete.title" msgstr "Frage \"%s\" löschen" +msgid "question.contact_options" +msgstr "Weitere Kontaktmöglichkeiten: " + +msgid "tag.tags" +msgstr "Tags" + +msgid "tag.edit" +msgstr "Tag bearbeiten" + +msgid "tag.add" +msgstr "Tag erstellen" + +msgid "tag.delete.title" +msgstr "Tag \"%s\" löschen" + msgid "user.edit.shirt" msgstr "T-Shirt bearbeiten" @@ -1917,7 +1923,8 @@ msgid "angeltypes.about" msgstr "Teams-/Aufgabenbeschreibung" msgid "angeltypes.about.text" -msgstr "Hier findest Du die Liste der Teams und ihrer Aufgaben. Wenn Du weitere Fragen hast, schaue in den FAQ nach." +msgstr "Hier findest Du die Liste der Teams und ihrer Aufgaben. Wenn Du weitere Fragen hast, " +"schaue in den FAQ nach." msgid "angeltypes.restricted.hint" msgstr "Dieser Elfentyp benötigt eine Einweisung bei einem Einführungstreffen. " @@ -1926,9 +1933,6 @@ msgstr "Dieser Elfentyp benötigt eine Einweisung bei einem Einführungstreffen. msgid "angeltypes.can-change-later" msgstr "Du kannst Deine Auswahl später in den Einstellungen ändern." -msgid "angeltypes.email" -msgstr "E-Mail" - msgid "angeltypes.hide_on_shift_view" msgstr "Auf Schicht-Ansicht ausblenden" @@ -1975,6 +1979,12 @@ msgstr "Schichttyp \"%s\" löschen" msgid "shifttype.required_angels" msgstr "Benötigte Elfen (bei Fahrplan import)" +msgid "shifttype.edit.signup_advance_hours" +msgstr "Selbsteintragen im voraus in Stunden" + +msgid "shifttype.edit.signup_advance_hours.info" +msgstr "Anzahl Stunden vor Schicht start in welchen die Eintragung möglich ist" + msgid "event.day" msgstr "Tag %1$d" @@ -1993,6 +2003,11 @@ msgstr "Eventdaten" msgid "registration.what_todo" msgstr "Was möchtest Du machen?" +msgid "registration.jobs" +msgstr "" +"Weitere Informationen wie Du uns helfen kannst findest du in der " +"Teams-/Aufgabenbeschreibung." + msgid "registration.register" msgstr "Registrieren" @@ -2033,7 +2048,7 @@ msgid "user.info.hint" msgstr "" "Wird auf der Benutzer Seite für Schichtkoordinatoren und Admins angezeigt. " "Wenn ein Elf nicht als angekommen markiert ist, " -"entfernt eine Benutzer Info die nicht-angekommen Nachricht im Systemmenü des Elfs." +"entfernt eine Benutzer Info die nicht-angekommen Nachricht im Systemmenü des Elfen." msgid "user_info.not_arrived_hint" msgstr "Wenn du dich für Schichten eintragen willst, komm gerne im Himmel vorbei." @@ -2064,3 +2079,50 @@ msgstr "Schicht Ort wurde von %s nach %s verschoben" msgid "notification.shift.updated.shift" msgstr "Die aktualisierte Schicht:" + +msgid "admin_shifts.no_locations" +msgstr "Es wurde noch kein Ort erstellt. Ohne können keine Schichten erstellt werden." + +msgid "admin_shifts.no_shifttypes" +msgstr "Es wurde noch kein Schichttyp erstellt. Ohne können keine Schichten erstellt werden." + +msgid "admin_shifts.no_angeltypes" +msgstr "Es wurde noch kein Elfentyp erstellt. Ohne können keine Schichten erstellt werden." + +msgid "shift.sign_out.hint" +msgstr "Du kannst dich bis %s Stunden vor dem Start der Schicht austragen. " +"Wenn du nicht zu deiner Schicht kommen kannst, lass dich vom Himmel austragen." + +msgid "Password reset in progress" +msgstr "Passwort zurücksetzen aktiv" + +msgid "freeload.info.goodie" +msgstr "Du warst bei dieser Schicht nicht anwesend. " +"Die doppelte Länge der Schicht wurde von deinem %s abgezogen. " +"Bitte wende dich bei Fragen an den Himmel." + +msgid "freeload.info" +msgstr "Du warst bei dieser Schicht nicht anwesend. " +"Bitte wende dich bei Fragen an den Himmel." + +msgid "freeload.freeloader.info" +msgstr "" +"Du warst bei mindestens %s Schichten nicht anwesend. Deshalb ist die Schicht-Registrierung " +"gesperrt. Bitte gehe zum Himmel um wieder entsperrt zu werden." + +msgid "freeload.freeloaded.info.goodie" +msgstr "" +"War ein Elf bei einer Schicht nicht anwesend, " +"wird die doppelte Länge der Schicht von dem %s abgezogen. " +"Bei %s geschwänzten Schichten wird die Schicht-Registration für den Elf gesperrt." + +msgid "freeload.freeloaded.info" +msgstr "" +"Der Elf war bei einer Schicht nicht anwesend. " +"Bei %s geschwänzten Schichten wird die Schicht-Registration für den Elf gesperrt." + +msgid "config.config" +msgstr "Konfiguration" + +msgid "config.edit.success" +msgstr "Konfiguration erfolgreich angepasst"