Merge pull request 'update config and language files to version Engelsystem 3.6' (#1) from featrue/v3.6 into main

Reviewed-on: #1
pull/2/head
Pascal 2 weeks ago
commit 0b0fa28772
  1. 148
      config/config.php
  2. 59
      resources/lang/de_DE/additional.po
  3. 496
      resources/lang/de_DE/default.po

@ -2,21 +2,22 @@
declare(strict_types=1); declare(strict_types=1);
// To change settings create a config.php // To change or overwrite some settings, create a config.php
return [ return [
// MySQL-Connection Settings // MySQL-Connection Settings
'database' => [ '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'), 'database' => env('MYSQL_DATABASE', 'engelsystem'),
'username' => env('MYSQL_USER', 'root'), 'username' => env('MYSQL_USER', 'root'),
'password' => env('MYSQL_PASSWORD', ''), 'password' => env_secret('MYSQL_PASSWORD', ''),
], ],
// For accessing /metrics (and /stats) // For accessing /metrics (and /stats)
'api_key' => env('API_KEY', ''), '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), 'maintenance' => (bool) env('MAINTENANCE', false),
// Application name (not the event name) // Application name (not the event name)
@ -26,42 +27,49 @@ return [
'environment' => env('ENVIRONMENT', 'production'), 'environment' => env('ENVIRONMENT', 'production'),
// Application URL and base path to use instead of the auto-detected one // Application URL and base path to use instead of the auto-detected one
'url' => env('APP_URL', null), 'url' => env('APP_URL'),
// Header links // Header links
// Available link placeholders: %lang% // 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' => [ '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',
// 'Name' => ['URL', 'permission'], // 'some.key' => ['URL', 'permission'],
//'Foo' => ['https://foo.bar/batz-%lang%.html', 'logout'], // Permission: for logged-in users //'Foo' => ['https://foo.bar/batz-%lang%.html', 'logout'], // Permission: for logged-in users
], ],
// Footer links // 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' => [ 'footer_items' => [
// Name can be a translation string, permission is a engelsystem privilege // Name can be a translation string, permission is a engelsystem privilege
// 'Name' => 'URL', // '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'], 'faq.faq' => [env('FAQ_URL', '/faq'), 'faq.view'],
// Contact email address, linked on every page // Contact email address, linked on every page
// 'Contact' => env('CONTACT_EMAIL', 'mailto:ticket@c3heaven.de'), // 'Contact' => env('CONTACT_EMAIL', 'mailto:ticket@c3heaven.de'),
], ],
// Text displayed on the FAQ page, rendered as markdown // Other ways to ask the heaven
'faq_text' => env('FAQ_TEXT', null), // 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 // Link to documentation/help
'documentation_url' => env('DOCUMENTATION_URL', 'https://engelsystem.de/doc/'), 'documentation_url' => env('DOCUMENTATION_URL', 'https://engelsystem.de/doc/'),
// Email config // Email config
'email' => [ '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'), 'driver' => env('MAIL_DRIVER', 'mail'),
'from' => [ 'from' => [
// From address of all emails // From address of all emails
@ -71,19 +79,23 @@ return [
'host' => env('MAIL_HOST', 'localhost'), 'host' => env('MAIL_HOST', 'localhost'),
'port' => env('MAIL_PORT', 587), 'port' => env('MAIL_PORT', 587),
// If tls transport encryption should be used // If tls transport encryption should be enabled
'tls' => env('MAIL_TLS', null), 'tls' => env('MAIL_TLS'),
'username' => env('MAIL_USERNAME'), 'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'), 'password' => env_secret('MAIL_PASSWORD'),
'sendmail' => env('MAIL_SENDMAIL', '/usr/sbin/sendmail -bs'), 'sendmail' => env('MAIL_SENDMAIL', '/usr/sbin/sendmail -bs'),
], ],
# Your privacy@ contact address // Your privacy@ contact address
'privacy_email' => env('PRIVACY_EMAIL', null), '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 // Initial admin password, configured on first migration
'setup_admin_password' => env('SETUP_ADMIN_PASSWORD', null), 'setup_admin_password' => env_secret('SETUP_ADMIN_PASSWORD'),
// Setup external authentication providers
'oauth' => [ 'oauth' => [
// '[name]' => [config] // '[name]' => [config]
/* /*
@ -131,19 +143,24 @@ return [
'groups' => 'groups', 'groups' => 'groups',
// Groups to team (angeltype) mapping (optional) // Groups to team (angeltype) mapping (optional)
'teams' => [ 'teams' => [
'/Lorem' => 4, // 4 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 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), 'theme' => env('THEME', 17),
// Supported themes // 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' => [ 'themes' => [
18 => [
'name' => 'Engelsystem 38c3 (2024) - Lila, Lachs und Kurven',
'type' => 'dark',
'navbar_classes' => 'navbar-dark',
],
17 => [ 17 => [
'name' => 'Engelsystem 37c3 (2023)', 'name' => 'Engelsystem 37c3 (2023)',
'type' => 'dark', '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 // Must be one of news, meetings, user_shifts, angeltypes, questions
'home_site' => env('HOME_SITE', 'news'), 'home_site' => env('HOME_SITE', 'news'),
@ -246,6 +263,9 @@ return [
// Users are able to sign up // Users are able to sign up
'registration_enabled' => (bool) env('REGISTRATION_ENABLED', true), '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
'required_user_fields' => [ 'required_user_fields' => [
'pronoun' => (bool) env('PRONOUN_REQUIRED', false), 'pronoun' => (bool) env('PRONOUN_REQUIRED', false),
@ -256,75 +276,83 @@ return [
'dect' => (bool) env('DECT_REQUIRED', false), '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), 'signup_requires_arrival' => (bool) env('SIGNUP_REQUIRES_ARRIVAL', false),
// Whether newly-registered user should automatically be marked as arrived // Whether newly-registered users should automatically be marked as arrived
'autoarrive' => (bool) env('ANGEL_AUTOARRIVE', true), '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 // Only allow shift signup this number of hours in advance
// Setting this to 0 disables the feature // Setting this to 0 disables the feature
'signup_advance_hours' => env('SIGNUP_ADVANCE_HOURS', 0), 'signup_advance_hours' => env('SIGNUP_ADVANCE_HOURS', 0),
// Allow signup this many minutes after the start of the shift. // 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), 'signup_post_minutes' => env('SIGNUP_POST_MINUTES', 0),
// Allow signup this fraction of the shift length after the start of the shift. // 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 // Example: If it 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 it is set to 0.5, signup is allowed 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. // 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), '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), 'last_unsubscribe' => env('LAST_UNSUBSCRIBE', 3),
// Define the algorithm to use for `password_verify()` // 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 // See https://secure.php.net/manual/en/password.constants.php for a complete list
'password_algorithm' => env('PASSWORD_ALGORITHM', PASSWORD_DEFAULT), 'password_algorithm' => env('PASSWORD_ALGORITHM', PASSWORD_DEFAULT),
// The minimum length for passwords // 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. // 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 // This is useful when using oauth, disabling it also disables normal registration without oauth
// registration without oauth.
'enable_password' => (bool) env('ENABLE_PASSWORD', true), 'enable_password' => (bool) env('ENABLE_PASSWORD', true),
// Whether the DECT field should be enabled // Whether the DECT field should be enabled
'enable_dect' => (bool) env('ENABLE_DECT', true), '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), 'enable_mobile_show' => (bool) env('ENABLE_MOBILE_SHOW', false),
// Regular expression describing a FALSE username. // Regular expression describing a FALSE username.
// Per default usernames must only contain alphanumeric chars, "-", "_" or ".". // Per default usernames must only contain alphanumeric chars, "-", "_" or ".".
'username_regex' => (string) env('USERNAME_REGEX', '/([^\p{L}\p{N}_.-]+)/ui'), 'username_regex' => (string) env('USERNAME_REGEX', '/([^\p{L}\p{N}_.-]+)/ui'),
// Enables first name and last name // Enable first name and last name
'enable_user_name' => (bool) env('ENABLE_USER_NAME', false), 'enable_full_name' => (bool) env('ENABLE_FULL_NAME', false),
// Show a users first name and last name instead of username // Show a users first name and last name instead of username
'display_full_name' => env('DISPLAY_FULL_NAME', false) 'display_full_name' => env('DISPLAY_FULL_NAME', false)
&& env('ENABLE_USER_NAME', false), && env('ENABLE_FULL_NAME', false),
// Enable displaying the pronoun fields // Enable displaying the pronoun fields
'enable_pronoun' => (bool) env('ENABLE_PRONOUN', true), '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), '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: // Resembles the Goodie Type. There are three options:
// 'none' => no goodie at all // 'none' => no goodie at all
// 'goodie' => a goodie which has no sizing options // 'goodie' => a goodie which has no sizing options
// 'tshirt' => goodie that is called tshirt and has sizing options // 'tshirt' => goodie that is called tshirt and has sizing options
'goodie_type' => env('GOODIE_TYPE', 'goodie'), 'goodie_type' => env('GOODIE_TYPE', 'goodie'),
// Enables the food voucher in the user profile // Enable (food) vouchers
'enable_voucher' => (bool) env('ENABLE_VOUCHER', true), '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), 'max_freeloadable_shifts' => env('MAX_FREELOADABLE_SHIFTS', 2),
// Hide columns in backend user view. Possible values are any sortable parameters of the table. // Hide columns in backend user view. Possible values are any sortable parameters of the table.
@ -333,11 +361,12 @@ return [
// Local timezone // Local timezone
'timezone' => env('TIMEZONE', 'Europe/Berlin'), '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' => [ 'night_shifts' => [
'enabled' => (bool) env('NIGHT_SHIFTS', true), // Disable to weigh every shift the same 'enabled' => (bool) env('NIGHT_SHIFTS', true), // Disable to weigh every shift the same
'start' => env('NIGHT_SHIFTS_START', 2), 'start' => env('NIGHT_SHIFTS_START', 2), // Starting from hour
'end' => env('NIGHT_SHIFTS_END', 6), 'end' => env('NIGHT_SHIFTS_END', 8), // Ends at (without including) hour
'multiplier' => env('NIGHT_SHIFTS_MULTIPLIER', 2), 'multiplier' => env('NIGHT_SHIFTS_MULTIPLIER', 2),
], ],
@ -347,18 +376,20 @@ return [
'shifts_per_voucher' => env('SHIFTS_PER_VOUCHER', 0), 'shifts_per_voucher' => env('SHIFTS_PER_VOUCHER', 0),
'hours_per_voucher' => env('HOURS_PER_VOUCHER', 2), 'hours_per_voucher' => env('HOURS_PER_VOUCHER', 2),
// 'Y-m-d' formatted // '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) # Instruction in accordance with § 43 Para. 1 of the German Infection Protection Act (IfSG)
'ifsg_enabled' => (bool) env('IFSG_ENABLED', false), 'ifsg_enabled' => (bool) env('IFSG_ENABLED', false),
# Instruction only onsite in accordance with § 43 Para. 1 of the German Infection Protection Act (IfSG) # 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) 'ifsg_light_enabled' => env('IFSG_LIGHT_ENABLED', false) && env('IFSG_ENABLED', false),
&& env('IFSG_ENABLED', false),
// Available locales in /resources/lang/ // 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' => [ 'locales' => [
'de_DE' => 'Deutsch', 'de_DE' => 'Deutsch',
], ],
@ -367,7 +398,7 @@ return [
'default_locale' => env('DEFAULT_LOCALE', 'de_DE'), 'default_locale' => env('DEFAULT_LOCALE', 'de_DE'),
// Available T-Shirt sizes // 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' => [ 'tshirt_sizes' => [
'S' => 'Small Straight-Cut', 'S' => 'Small Straight-Cut',
'S-F' => 'Small Fitted-Cut', 'S-F' => 'Small Fitted-Cut',
@ -382,11 +413,14 @@ return [
'4XL' => '4XLarge Straight-Cut', '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. // 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. // 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…) // 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' => [ 'metrics' => [
// User work buckets in seconds // User work buckets in seconds
@ -417,7 +451,7 @@ return [
// Add additional headers // Add additional headers
'add_headers' => (bool) env('ADD_HEADERS', true), 'add_headers' => (bool) env('ADD_HEADERS', true),
// Predefined headers // 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' => [ 'headers' => [
'X-Content-Type-Options' => 'nosniff', 'X-Content-Type-Options' => 'nosniff',
'X-Frame-Options' => 'sameorigin', 'X-Frame-Options' => 'sameorigin',

@ -85,9 +85,6 @@ msgstr "Das Programm konnte nicht abgerufen werden."
msgid "schedule.import.read-error" msgid "schedule.import.read-error"
msgstr "Das Programm konnte nicht gelesen werden." msgstr "Das Programm konnte nicht gelesen werden."
msgid "schedule.import.invalid-shift-type"
msgstr "Der Schichttyp konnte nicht gefunden werden."
msgid "schedule.import.success" msgid "schedule.import.success"
msgstr "Das Programm wurde erfolgreich importiert." 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" msgid "oauth.temporarily_unavailable"
msgstr "Der OAuth-Provider ist aufgrund Überlastung oder Wartung temporär nicht in der Lage, die Anfrage zu erfüllen" 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" msgid "settings.profile.planned_arrival_date.invalid"
msgstr "Bitte gib Dein geplantes Ankunftsdatum an. " msgstr "Bitte gib Dein geplantes Ankunftsdatum an. "
"Es sollte nach dem Aufbaubeginn und vor dem Abbauende liegen." "Es sollte nach dem Aufbaubeginn und vor dem Abbauende liegen."
@ -210,6 +201,15 @@ msgstr "Frage erstellt."
msgid "question.edit.success" msgid "question.edit.success"
msgstr "Frage erfolgreich bearbeitet." 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" msgid "notification.news.new"
msgstr "Neue News: %s" msgstr "Neue News: %s"
@ -226,7 +226,7 @@ msgid "notification.messages.new"
msgstr "Neue private Nachricht von %s" msgstr "Neue private Nachricht von %s"
msgid "notification.messages.new.text" 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" msgid "notification.angeltype.confirmed"
msgstr "Du wurdest als %s bestätigt" msgstr "Du wurdest als %s bestätigt"
@ -296,8 +296,47 @@ msgstr "Der Name wird bereits verwendet."
msgid "registration.disabled" msgid "registration.disabled"
msgstr "Die Registrierung ist deaktiviert." msgstr "Die Registrierung ist deaktiviert."
msgid "registration.successful.supporter"
msgstr "Registrierung erfolgreich."
msgid "registration.successful" msgid "registration.successful"
msgstr "Registrierung erfolgreich. Du kannst dich jetzt anmelden!" msgstr "Registrierung erfolgreich. Du kannst dich jetzt anmelden!"
msgid "shifts.history.delete.success" msgid "shifts.history.delete.success"
msgstr "Schichten erfolgreich gelöscht." 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."

@ -54,7 +54,7 @@ msgid "page.419.title"
msgstr "Autorisierung ist abgelaufen" msgstr "Autorisierung ist abgelaufen"
msgid "page.419.text" 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" msgid "general.date"
msgstr "d.m.Y" msgstr "d.m.Y"
@ -90,7 +90,7 @@ msgid "form.submit"
msgstr "Absenden" msgstr "Absenden"
msgid "form.send_notification" msgid "form.send_notification"
msgstr "Benachrichtigungen versenden" msgstr "%d Benachrichtigungen versenden"
msgid "credits.source" msgid "credits.source"
msgstr "Quellcode" msgstr "Quellcode"
@ -168,16 +168,19 @@ msgstr "Mindestlänge %d Zeichen"
msgid "form.recover" msgid "form.recover"
msgstr "Wiederherstellen" msgstr "Wiederherstellen"
msgid "Angeltype %s deleted." msgid "Angel type %s deleted."
msgstr "Elfentyp %s gelöscht." msgstr "Elfentyp %s gelöscht."
msgid "Delete angeltype %s" msgid "Delete angel type %s"
msgstr "Lösche Elfentyp %s" msgstr "Lösche Elfentyp %s"
msgid "Please check the name. Maybe it already exists." msgid "Please check the name. Maybe it already exists."
msgstr "Bitte überprüfe den Namen. Vielleicht ist er bereits vergeben." 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" msgstr "Elfentyp erstellen"
msgid "Edit %s" msgid "Edit %s"
@ -189,41 +192,17 @@ msgstr "Team %s"
msgid "%s (not \"%s\")" msgid "%s (not \"%s\")"
msgstr "%s (kein \"%s\")" msgstr "%s (kein \"%s\")"
msgid "View" msgid "%s (already in shift)"
msgstr "%s (bereits eingetragen)"
msgid "form.view"
msgstr "Ansehen" msgstr "Ansehen"
msgid "Leave" msgid "Leave"
msgstr "Verlassen" msgstr "Verlassen"
msgid "Join" msgid "Join"
msgstr "Mitmachen" msgstr "Beitreten"
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."
msgid "Public Dashboard" msgid "Public Dashboard"
msgstr "Öffentliches Dashboard" msgstr "Öffentliches Dashboard"
@ -234,13 +213,13 @@ msgstr "Zufällige Schicht"
msgid "%s has been subscribed to the shift." msgid "%s has been subscribed to the shift."
msgstr "%s wurde in die Schicht eingetragen." 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." msgstr "User ist nicht im Elfentyp."
msgid "This shift is already occupied." msgid "This shift is already occupied."
msgstr "Die Schicht ist schon voll." 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." msgstr "Du musst bestätigtes Mitglied des Elfentyps sein."
msgid "This shift collides with one of your shifts." msgid "This shift collides with one of your shifts."
@ -279,9 +258,6 @@ msgstr ""
msgid "Please select a location." msgid "Please select a location."
msgstr "Bitte einen Ort auswählen." 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." msgid "Please enter a valid starting time for the shifts."
msgstr "Bitte gib eine korrekte Startzeit für die Schichten ein." 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." msgid "This page is much more comfortable with javascript."
msgstr "Diese Seite ist mit JavaScript viel komfortabler." msgstr "Diese Seite ist mit JavaScript viel komfortabler."
msgid "Shifttype" msgid "Shift type"
msgstr "Schichttyp" msgstr "Schichttyp"
msgid "title.title" msgid "title.title"
@ -309,70 +285,64 @@ msgstr "Titel"
msgid "Location:" msgid "Location:"
msgstr "Ort:" msgstr "Ort:"
msgid "Start:"
msgstr "Start:"
msgid "End:"
msgstr "Ende:"
msgid "Needed angels" msgid "Needed angels"
msgstr "Benötigte Elfen" msgstr "Benötigte Elfen"
msgid "Shift deleted." msgid "Shift deleted."
msgstr "Schicht gelöscht." msgstr "Schicht gelöscht."
msgid "Do you want to delete the shift %s from %s to %s?" 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?" msgstr "Möchtest Du die Schicht \"%s\" von %s bis %s löschen?"
msgid "Shift could not be found." msgid "Shift could not be found."
msgstr "Schicht konnte nicht gefunden werden." msgstr "Schicht konnte nicht gefunden werden."
msgid "There is %d unconfirmed angeltype." msgid "There are unconfirmed angels in %d angel type. Angel type that needs approval:"
msgid_plural "There are %d unconfirmed angeltypes." msgid_plural "There are unconfirmed angels in %d angel types. Angel types that need approvals:"
msgstr[0] "Es gibt %d nicht freigeschalteten Elfentypen!" msgstr[0] "Es gibt nicht freigeschaltete Elfen in %d Elfentypen! Elfentyp der bestätigt werden muss:"
msgstr[1] "Es gibt %d nicht freigeschaltete Elfentypen!" msgstr[1] "Es gibt nicht freigeschaltete Elfen in %d Elfentypen! Elfentypen die bestätigt werden müssen:"
msgid "Angel types which need approvals:"
msgstr "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." 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." msgstr "Alle Benutzer mit Elfentyp %s abgelehnt."
msgid "Deny all users" msgid "Deny all users"
msgstr "Alle Benutzer ablehnen" 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." 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." msgstr "Alle Benutzer für Elfentyp %s freigeschaltet."
msgid "Confirm all users" msgid "Confirm all users"
msgstr "Alle Benutzer bestätigen" 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." 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." 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" 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." msgstr "Du darfst diesen Benutzer nicht von diesem Elfentyp entfernen."
msgid "User %s removed from %s." msgid "User \"%s\" removed from \"%s\"."
msgstr "Benutzer %s von %s entfernt." msgstr "Benutzer \"%s\" von \"%s\" entfernt."
msgid "Remove angeltype" msgid "Edit certificates"
msgstr "Elfentyp löschen" msgstr "Zertifikate bearbeiten"
msgid "You are not allowed to set supporter rights." msgid "You successfully left \"%2$s\"."
msgstr "Du darfst keine Supporterrechte bearbeiten." msgstr "Du hast erfolgreich \"%2$s\" verlassen."
msgid "Leave angel type"
msgstr "Elfentyp verlassen"
msgid "No supporter update given." msgid "No supporter update given."
msgstr "Kein Update für Supporterrechte gegeben." msgstr "Kein Update für Supporterrechte gegeben."
@ -392,7 +362,7 @@ msgstr "Supporterrechte entfernen"
msgid "User %s added to %s." msgid "User %s added to %s."
msgstr "Benutzer %s zu %s hinzugefügt." msgstr "Benutzer %s zu %s hinzugefügt."
msgid "Add user to angeltype" msgid "Add user to angel type"
msgstr "Benutzer zu Elfentyp hinzufügen" msgstr "Benutzer zu Elfentyp hinzufügen"
msgid "You are already a %s." msgid "You are already a %s."
@ -401,8 +371,8 @@ msgstr "Du bist bereits %s."
msgid "You joined %s." msgid "You joined %s."
msgstr "Du bist %s beigetreten." msgstr "Du bist %s beigetreten."
msgid "Become a %s" msgid "Join %s"
msgstr "Werde ein %s" msgstr "%s beitreten"
msgid "You cannot delete yourself." msgid "You cannot delete yourself."
msgstr "Du kannst Dich nicht selber löschen." msgstr "Du kannst Dich nicht selber löschen."
@ -483,7 +453,7 @@ msgid "Apply"
msgstr "Anwenden" msgstr "Anwenden"
msgid "Angel has been marked as active." msgid "Angel has been marked as active."
msgstr "Elf wurde als aktiv markiert." msgstr "Elfen wurde als aktiv markiert."
msgid "Angel not found." msgid "Angel not found."
msgstr "Elf nicht gefunden." msgstr "Elf nicht gefunden."
@ -497,17 +467,26 @@ msgstr "Elf hat ein T-Shirt bekommen."
msgid "Angel has got no T-shirt." msgid "Angel has got no T-shirt."
msgstr "Elf hat kein T-Shirt bekommen." msgstr "Elf hat kein T-Shirt bekommen."
msgid "set active" msgid "Angel has no valid T-shirt size. T-shirt was not set."
msgstr "setze aktiv" msgstr "Elf hat keine valide T-Shirt Größe. T-Shirt wurde nicht gespeichert."
msgid "Remove active" msgid "This Angel has no valid T-shirt size, therefore it's not possible to hand out a T-shirt."
msgstr "entferne aktiv" msgstr "Dieser Elf hat keine valide T-Shirt Größe, weswegen kein T-Shirt ausgegeben werden kann."
msgid "Got T-shirt" msgid "Set active"
msgstr "T-Shirt bekommen" msgstr "Setze aktiv"
msgid "Remove active"
msgstr "Entferne aktiv"
msgid "Remove T-shirt" 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" msgid "Sum"
msgstr "Summe" msgstr "Summe"
@ -518,7 +497,7 @@ msgstr "Suche Elfen:"
msgid "Show all shifts" msgid "Show all shifts"
msgstr "Alle Schichten anzeigen" 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?" msgstr "Wie viele Elfen sollten aktiv sein?"
msgid "Size" msgid "Size"
@ -527,20 +506,23 @@ msgstr "Größe"
msgid "No." msgid "No."
msgstr "Nr." msgstr "Nr."
msgid "Shifts" msgid "general.shifts"
msgstr "Schichten" msgstr "Schichten"
msgid "Length" msgid "Length"
msgstr "Länge" msgstr "Länge"
msgid "Active?" msgid "Length (in minutes)"
msgstr "Aktiv?" msgstr "Länge (in Minuten)"
msgid "Active"
msgstr "Aktiv"
msgid "Forced" msgid "Forced"
msgstr "Erzwungen" msgstr "Erzwungen"
msgid "T-shirt?" msgid "T-shirt"
msgstr "T-Shirt?" msgstr "T-Shirt"
msgid "T-shirt statistic" msgid "T-shirt statistic"
msgstr "T-Shirt Statistik" msgstr "T-Shirt Statistik"
@ -548,6 +530,9 @@ msgstr "T-Shirt Statistik"
msgid "Given T-shirts" msgid "Given T-shirts"
msgstr "Ausgegebene T-Shirts" msgstr "Ausgegebene T-Shirts"
msgid "Configured T-shirts"
msgstr "Konfigurierte T-Shirts"
msgid "Arrive angels" msgid "Arrive angels"
msgstr "Ankommende Elfen" msgstr "Ankommende Elfen"
@ -560,12 +545,12 @@ msgstr "Elf wurde als angekommen markiert."
msgid "Reset" msgid "Reset"
msgstr "Zurücksetzen" msgstr "Zurücksetzen"
msgid "Reset arrival state for %s?"
msgstr "Angekommen-Status für %s zurücksetzen?"
msgid "Planned arrival" msgid "Planned arrival"
msgstr "Geplanter Ankunftstag" msgstr "Geplanter Ankunftstag"
msgid "Arrived?"
msgstr "Angekommen?"
msgid "Arrival date" msgid "Arrival date"
msgstr "Ankunftsdatum" msgstr "Ankunftsdatum"
@ -590,19 +575,31 @@ msgstr "Geplante Abreise-Statistik"
msgid "Free angels" msgid "Free angels"
msgstr "Freie Elfen" msgstr "Freie Elfen"
msgid "Angeltype" msgid "Angel type"
msgstr "Elfentyp" msgstr "Elfentyp"
msgid "shift.next" msgid "shift.next"
msgstr "Nächste Schicht" 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" msgid "Last shift"
msgstr "Letzte Schicht" msgstr "Letzte Schicht"
msgid "general.dect" msgid "general.dect"
msgstr "DECT" msgstr "DECT"
msgid "Grouprights" msgid "Group rights"
msgstr "Gruppenrechte" msgstr "Gruppenrechte"
msgid "general.name" msgid "general.name"
@ -629,9 +626,6 @@ msgstr "Fragen beantworten"
msgid "There are unanswered questions!" msgid "There are unanswered questions!"
msgstr "Es gibt unbeantwortete Fragen!" msgstr "Es gibt unbeantwortete Fragen!"
msgid "Locations"
msgstr "Orte"
msgid "general.description" msgid "general.description"
msgstr "Beschreibung" msgstr "Beschreibung"
@ -737,22 +731,8 @@ msgstr "User bearbeiten"
msgid "general.datetime" msgid "general.datetime"
msgstr "d.m.Y H:i" msgstr "d.m.Y H:i"
msgid "Key changed." msgid "API Settings"
msgstr "Key geändert." msgstr "API Einstellungen"
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 "Please enter a freeload comment!" msgid "Please enter a freeload comment!"
msgstr "Gib bitte einen Schwänz-Kommentar ein!" 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." msgstr "Die Administratoren haben noch keine Schichten angelegt."
msgid "" msgid ""
"The administration has not configured any angeltypes yet - or you are not " "The administration has not configured any angel types yet - or you are not "
"subscribed to any angeltype." "subscribed to any angel type."
msgstr "" msgstr ""
"Die Administratoren haben noch keine Elfentypen konfiguriert - oder Du hast " "Die Administratoren haben noch keine Elfentypen konfiguriert - oder Du hast "
"noch keine Elfentypen ausgewählt." "noch keine Elfentypen ausgewählt."
@ -789,7 +769,7 @@ msgid "Occupancy"
msgstr "Belegung" msgstr "Belegung"
msgid "" 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 "" msgstr ""
"Die Schichten, die hier angezeigt werden, sind von Deinen Einstellungen " "Die Schichten, die hier angezeigt werden, sind von Deinen Einstellungen "
"(Elfentypen/Aufgaben) abhängig!" "(Elfentypen/Aufgaben) abhängig!"
@ -822,16 +802,13 @@ msgid "iCal export and API"
msgstr "iCal Export und API" msgstr "iCal Export und API"
msgid "" msgid ""
"Export your own shifts. <a href=\"%s\">iCal format</a> or <a href=\"%s" "Export your own shifts formatted as <a href=\"%s\" target=\"_blank\">iCal</a> or "
"\">JSON format</a> available (please keep secret, otherwise <a href=\"%s" "<a href=\"%s\" target=\"_blank\">JSON</a> (please keep the link secret, otherwise you have to reset the api key "
"\">reset the api key</a>)." "<a href=\"%s\">in your settings</a>)."
msgstr "" msgstr ""
"Exportiere Deine Schichten. <a href=\"%s\">iCal Format</a> oder <a href=\"%s" "Exportiere Deine Schichten im <a href=\"%s\" target=\"_blank\">iCal</a> oder <a href=\"%s"
"\">JSON Format</a> verfügbar (Link bitte geheimhalten, sonst <a href=\"%s" "\" target=\"_blank\">JSON</a> Format (Link bitte geheimhalten, sonst musst du den API-Key in "
"\">API-Key zurücksetzen</a>)." "<a href=\"%s\">deinen Einstellungen</a> zurücksetzen)."
msgid "Show API Key"
msgstr "API Key anzeigen"
msgid "All" msgid "All"
msgstr "Alle" msgstr "Alle"
@ -845,9 +822,6 @@ msgstr "Abmelden"
msgid "Admin" msgid "Admin"
msgstr "Admin" msgstr "Admin"
msgid "Manage locations"
msgstr "Orte verwalten"
msgid "No data found." msgid "No data found."
msgstr "Nichts gefunden." msgstr "Nichts gefunden."
@ -860,7 +834,7 @@ msgstr "Supporter"
msgid "Member" msgid "Member"
msgstr "Mitglied" 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?" msgstr "Möchtest Du den Elfentypen %s löschen?"
msgid "angeltypes.restricted" msgid "angeltypes.restricted"
@ -896,18 +870,24 @@ msgstr "Kontakt"
msgid "Primary contact person/desk for user questions." msgid "Primary contact person/desk for user questions."
msgstr "Ansprechpartner für Fragen." msgstr "Ansprechpartner für Fragen."
msgid "my driving license" msgid "My driving license"
msgstr "Meine Führerschein-Infos" 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 "" 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!" "information!"
msgstr "" msgstr ""
"Dieser Elfentyp benötigt Führerschein-Infos. Bitte trage Deine Führerschein-" "Dieser Elfentyp benötigt Führerschein-Infos. Bitte trage Deine Führerschein-"
"Infos ein!" "Infos ein!"
msgid "" 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." "to get confirmed."
msgstr "" msgstr ""
"Du bist noch nicht für diesen Elfentyp bestätigt. Bitte gehe zur Einführung " "Du bist noch nicht für diesen Elfentyp bestätigt. Bitte gehe zur Einführung "
@ -937,7 +917,7 @@ msgstr "Supporter"
msgid "Members" msgid "Members"
msgstr "Mitglieder" msgstr "Mitglieder"
msgid "Add" msgid "general.add"
msgstr "Hinzufügen" msgstr "Hinzufügen"
msgid "Confirm all" msgid "Confirm all"
@ -949,33 +929,6 @@ msgstr "Alle ablehnen"
msgid "Membership" msgid "Membership"
msgstr "Mitgliedschaft" 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" msgid "Angels needed in the next 3 hrs"
msgstr "Benötigte Elfen in den nächsten 3 Stunden" msgstr "Benötigte Elfen in den nächsten 3 Stunden"
@ -1003,14 +956,14 @@ msgstr "Meine Schicht"
msgid "Help needed" msgid "Help needed"
msgstr "Hilfe benötigt" 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" msgstr "Andere Elfentypen benötigt / kollidiert mit meinen Schichten"
msgid "Shift is full" msgid "Shift is full"
msgstr "Schicht ist voll" msgstr "Schicht ist voll"
msgid "Shift is running/ended or you have not arrived" msgid "Shift is running/has ended, you have not arrived or signup is blocked otherwise"
msgstr "Schicht läuft/vorbei oder du bist noch nicht angekommen" msgstr "Schicht läuft/ist vorbei, du bist noch nicht angekommen oder das eintragen ist blockiert"
msgid "Add more angels" msgid "Add more angels"
msgstr "Mehr Elfen hinzufügen" msgstr "Mehr Elfen hinzufügen"
@ -1027,13 +980,10 @@ msgid "ended"
msgstr "vorbei" msgstr "vorbei"
msgid "please arrive for signup" msgid "please arrive for signup"
msgstr "Ankommen zum Eintragen" msgstr "Komme an um dich einzutragen"
msgid "not yet" msgid "not yet possible"
msgstr "noch nicht" msgstr "noch nicht möglich"
msgid "Become %s"
msgstr "Werde ein %s"
msgid "m-d" msgid "m-d"
msgstr "d.m." msgstr "d.m."
@ -1065,14 +1015,17 @@ msgstr "Schicht Anmeldung"
msgid "Freeloaded" msgid "Freeloaded"
msgstr "Geschwänzt" msgstr "Geschwänzt"
msgid "Freeload comment (Only for shift coordination):" msgid "Freeloaded by %s"
msgstr "Schwänzer Kommentar (Nur für die Schicht-Koordination):" 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" msgid "Edit shift entry"
msgstr "Schichteintrag bearbeiten" msgstr "Schichteintrag bearbeiten"
msgid "Angel:" msgid "Angel:"
msgstr "Elf:" msgstr "Elfen:"
msgid "Date, Duration:" msgid "Date, Duration:"
msgstr "Termin, Dauer:" msgstr "Termin, Dauer:"
@ -1092,9 +1045,8 @@ msgstr "bearbeitet am %s von %s"
msgid "History ID: %s" msgid "History ID: %s"
msgstr "Historien-ID: %s" msgstr "Historien-ID: %s"
msgid "This shift is in the far future and becomes available for signup at %s." msgid "This shift is in the far future. It becomes available for signup at %s."
msgstr "" msgstr "Diese Schicht liegt in der fernen Zukunft. Du kannst dich ab %s eintragen."
"Diese Schicht liegt in der fernen Zukunft und du kannst dich ab %s eintragen."
msgid "Do you really want to add supporter rights for %s to %s?" msgid "Do you really want to add supporter rights for %s to %s?"
msgstr "Sollen %s %s als neuen Supporter bekommen?" 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?" msgid "Do you really want to confirm %s for %s?"
msgstr "Möchtest Du wirklich %s für %s bestätigen?" msgstr "Möchtest Du wirklich %s für %s bestätigen?"
msgid "Do you really want to delete %s from %s?" msgid "Do you really want to remove \"%s\" from \"%s\"?"
msgstr "Möchtest Du wirklich %s von %s entfernen?" 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?" msgid "Do you really want to add %s to %s?"
msgstr "Möchtest Du wirklich %s zu %s hinzufügen?" msgstr "Möchtest Du wirklich %s zu %s hinzufügen?"
msgid "Do you want to become a %2$s?" msgid "Do you want to join %2$s?"
msgstr "Möchtest Du ein %2$s werden?" msgstr "Möchtest Du %2$s beitreten?"
msgid "Confirm user" msgid "Confirm user"
msgstr "Benutzer bestätigen" msgstr "Benutzer bestätigen"
@ -1131,10 +1086,10 @@ msgstr "Zurück zum Profil"
msgid "" msgid ""
"Do you really want to delete the user including all his shifts and every " "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 "" msgstr ""
"Möchtest Du wirklich den Elf inklusive aller seiner Schichten und allen " "Möchtest Du wirklich den Elfen inklusive aller seiner Schichten und allen "
"anderen seiner Daten löschen?" "anderen seiner Daten löschen? Alle erstellten Schichten, News, Antworten usw. werden auf dich übertragen."
msgid "Your password" msgid "Your password"
msgstr "Dein Passwort" msgstr "Dein Passwort"
@ -1148,15 +1103,9 @@ msgstr "Elf kann noch %d Gutscheine bekommen und ist FA."
msgid "Number of vouchers given out" msgid "Number of vouchers given out"
msgstr "Anzahl Gutscheine bekommen" msgstr "Anzahl Gutscheine bekommen"
msgid "Voucher"
msgstr "Gutschein"
msgid "Freeloads" msgid "Freeloads"
msgstr "Schwänzereien" msgstr "Schwänzereien"
msgid "T-shirt"
msgstr "T-Shirt"
msgid "Last login" msgid "Last login"
msgstr "Letzter Login" msgstr "Letzter Login"
@ -1211,8 +1160,8 @@ msgstr "iCal Export"
msgid "JSON Export" msgid "JSON Export"
msgstr "JSON Export" msgstr "JSON Export"
msgid "Your night shifts between %d and %d am count twice for the %s score." msgid "Night shifts between %d and %d am are multiplied by %d for the %s score."
msgstr "Deine Nachtschichten zwischen %d und %d Uhr zählen für den %s Score doppelt." msgstr "Nachtschichten zwischen %d und %d Uhr werden für den %4$s Score mit %3$d multipliziert."
msgid "" msgid ""
"Go to the <a href=\"%s\">shifts table</a> to sign yourself up for some " "Go to the <a href=\"%s\">shifts table</a> 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-" "Bitte gib Dein geplantes Abreisedatum an, damit wir ein Gefühl für die Abbau-"
"Planung bekommen." "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" msgid "tshirt.required.hint"
msgstr "Bitte gib eine T-Shirt-Größe in deinen Einstellungen an." 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." "dass der Elf bereits sein T-Shirt erhalten hat."
msgid "Here you can reset the password of this angel:" 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:" msgid "Here you can define the user groups of the angel:"
msgstr "Hier kannst du die Benutzergruppen des Elfs definieren:" msgstr "Hier kannst du die Benutzergruppen des Elfs definieren:"
@ -1354,12 +1296,6 @@ msgstr "Goodie Statistik"
msgid "Remove goodie" msgid "Remove goodie"
msgstr "Goodie entfernen" msgstr "Goodie entfernen"
msgid "Got goodie"
msgstr "Goodie bekommen"
msgid "Goodie?"
msgstr "Goodie?"
msgid "Angel has got a goodie." msgid "Angel has got a goodie."
msgstr "Elf hat ein Goodie bekommen." msgstr "Elf hat ein Goodie bekommen."
@ -1410,6 +1346,12 @@ msgstr "Pflichtfeld"
msgid "form.user_select" msgid "form.user_select"
msgstr "Wähle einen User" msgstr "Wähle einen User"
msgid "form.tags"
msgstr "Tags"
msgid "form.tags.info"
msgstr "Komma separierte Liste von Tags"
msgid "schedule.import" msgid "schedule.import"
msgstr "Programm importieren" msgstr "Programm importieren"
@ -1535,7 +1477,7 @@ msgid "news.comments.delete.title"
msgstr "Kommentar \"%s\" löschen" msgstr "Kommentar \"%s\" löschen"
msgid "notification.news.updated.introduction" msgid "notification.news.updated.introduction"
msgstr "Die News %1$s wurde aktualisiert" msgstr "Die News \"%1$s\" wurde aktualisiert"
msgid "notification.news.updated.text" msgid "notification.news.updated.text"
msgstr "Du kannst sie dir unter %3$s anschauen." 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" msgid "settings.profile.email_shiftinfo"
msgstr "Das %s darf mir E-Mails senden (z.B. wenn sich meine Schichten ändern)." 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" msgid "settings.profile.email_news"
msgstr "Benachrichtige mich bei neuen 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" msgid "settings.profile.email_by_human_allowed"
msgstr "Erlaube Himmel-Elfen mich per E-Mail zu kontaktieren." 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, " 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." "dass mein Nick, E-Mail-Adresse, geleistete Arbeit und T-Shirt-Größe solange gespeichert werden."
msgid "settings.profile.privacy" msgid "settings.profile.privacy"
msgstr "Dies kann jederzeit durch eine E-Mail an <a href=\"mailto:%s\">%1$s</a> widerrufen werden." msgstr ""
"Diese Zustimmung kann während des Events in den Profil-Einstellungen, sowie, auch nach dem Event, "
"per E-Mail an <a href=\"mailto:%s\">%1$s</a>, widerrufen werden."
msgid "settings.profile.shirt_size" msgid "settings.profile.shirt_size"
msgstr "T-Shirt-Größe" 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" msgid "settings.profile.angeltypes.info"
msgstr "Du kannst deine Elfentypen <a href=\"%s\">auf der Elfentypen-Seite</a> verwalten." msgstr "Du kannst deine Elfentypen <a href=\"%s\">auf der Elfentypen-Seite</a> verwalten."
msgid "profile.my_shifts"
msgstr "Meine Schichten"
msgid "settings.profile"
msgstr "Profil"
msgid "settings.password" msgid "settings.password"
msgstr "Passwort" msgstr "Passwort"
@ -1708,11 +1679,31 @@ msgstr "Gabelstapler"
msgid "settings.certificates.ifsg_light" msgid "settings.certificates.ifsg_light"
msgstr "Ich wurde vor Ort nach IfSG §43 (Frikadellendiplom light) belehrt." 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" msgid "settings.certificates.ifsg"
msgstr "Ich habe eine Belehrung nach §43 IfSG (Frikadellendiplom) bei meinem Gesundheitsamt " 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. " "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." "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" msgid "settings.certificates.success"
msgstr "Zertifikate wurden erfolgreich aktualisiert." msgstr "Zertifikate wurden erfolgreich aktualisiert."
@ -1760,9 +1751,12 @@ msgstr "API"
msgid "settings.api.about" msgid "settings.api.about"
msgstr "" 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" "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 " "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!" "und Änderungen in deinem Namen durch zu führen!"
@ -1814,18 +1808,15 @@ msgstr "FAQ Eintrag bearbeiten"
msgid "faq.add" msgid "faq.add"
msgstr "FAQ Eintrag erstellen" msgstr "FAQ Eintrag erstellen"
msgid "faq.question"
msgstr "Frage"
msgid "faq.message"
msgstr "Antwort"
msgid "faq.delete.title" msgid "faq.delete.title"
msgstr "FAQ \"%s\" löschen" msgstr "FAQ \"%s\" löschen"
msgid "question.questions" msgid "question.questions"
msgstr "Fragen" msgstr "Fragen"
msgid "question.admin"
msgstr "Fragen beantworten"
msgid "question.faq_link" msgid "question.faq_link"
msgstr "Hast du eine generelle Frage? Vielleicht ist diese schon in den <a href=\"%s\">FAQ</a> beantwortet." msgstr "Hast du eine generelle Frage? Vielleicht ist diese schon in den <a href=\"%s\">FAQ</a> beantwortet."
@ -1844,6 +1835,21 @@ msgstr "Antwort"
msgid "question.delete.title" msgid "question.delete.title"
msgstr "Frage \"%s\" löschen" 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" msgid "user.edit.shirt"
msgstr "T-Shirt bearbeiten" msgstr "T-Shirt bearbeiten"
@ -1917,7 +1923,8 @@ msgid "angeltypes.about"
msgstr "Teams-/Aufgabenbeschreibung" msgstr "Teams-/Aufgabenbeschreibung"
msgid "angeltypes.about.text" 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 <a href=\"%s\">FAQ</a> nach."
msgid "angeltypes.restricted.hint" msgid "angeltypes.restricted.hint"
msgstr "Dieser Elfentyp benötigt eine Einweisung bei einem Einführungstreffen. " 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" msgid "angeltypes.can-change-later"
msgstr "Du kannst Deine Auswahl später in den Einstellungen ändern." msgstr "Du kannst Deine Auswahl später in den Einstellungen ändern."
msgid "angeltypes.email"
msgstr "E-Mail"
msgid "angeltypes.hide_on_shift_view" msgid "angeltypes.hide_on_shift_view"
msgstr "Auf Schicht-Ansicht ausblenden" msgstr "Auf Schicht-Ansicht ausblenden"
@ -1975,6 +1979,12 @@ msgstr "Schichttyp \"%s\" löschen"
msgid "shifttype.required_angels" msgid "shifttype.required_angels"
msgstr "Benötigte Elfen (bei Fahrplan import)" 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" msgid "event.day"
msgstr "Tag %1$d" msgstr "Tag %1$d"
@ -1993,6 +2003,11 @@ msgstr "Eventdaten"
msgid "registration.what_todo" msgid "registration.what_todo"
msgstr "Was möchtest Du machen?" msgstr "Was möchtest Du machen?"
msgid "registration.jobs"
msgstr ""
"Weitere Informationen wie Du uns helfen kannst findest du in der "
"<a href=\"%s\" target=\"_blank\">Teams-/Aufgabenbeschreibung</a>."
msgid "registration.register" msgid "registration.register"
msgstr "Registrieren" msgstr "Registrieren"
@ -2033,7 +2048,7 @@ msgid "user.info.hint"
msgstr "" msgstr ""
"Wird auf der Benutzer Seite für Schichtkoordinatoren und Admins angezeigt. " "Wird auf der Benutzer Seite für Schichtkoordinatoren und Admins angezeigt. "
"Wenn ein Elf nicht als angekommen markiert ist, " "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" msgid "user_info.not_arrived_hint"
msgstr "Wenn du dich für Schichten eintragen willst, komm gerne im Himmel vorbei." 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" msgid "notification.shift.updated.shift"
msgstr "Die aktualisierte Schicht:" 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"

Loading…
Cancel
Save