diff --git a/backend/src/baserow/contrib/builder/locale/de/LC_MESSAGES/django.po b/backend/src/baserow/contrib/builder/locale/de/LC_MESSAGES/django.po index b7b567f5a2..5582e91a13 100644 --- a/backend/src/baserow/contrib/builder/locale/de/LC_MESSAGES/django.po +++ b/backend/src/baserow/contrib/builder/locale/de/LC_MESSAGES/django.po @@ -3,16 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-18 13:32+0000\n" +"POT-Creation-Date: 2025-11-25 13:02+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" -"Language: \n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -20,39 +19,44 @@ msgstr "" #: src/baserow/contrib/builder/builder_beta_init_application.py:45 msgid "Homepage" -msgstr "" +msgstr "Startseite" #: src/baserow/contrib/builder/builder_beta_init_application.py:46 msgid "Examples" -msgstr "" +msgstr "Beispiele" #: src/baserow/contrib/builder/builder_beta_init_application.py:47 msgid "Customers" -msgstr "" +msgstr "Kunden" #: src/baserow/contrib/builder/builder_beta_init_application.py:48 msgid "List rows" -msgstr "" +msgstr "Zeilen auflisten" #: src/baserow/contrib/builder/builder_beta_init_application.py:49 msgid "Local Baserow" -msgstr "" +msgstr "Lokales Baserow" #: src/baserow/contrib/builder/builder_beta_init_application.py:50 msgid "Name" -msgstr "" +msgstr "Name" #: src/baserow/contrib/builder/builder_beta_init_application.py:51 msgid "Last name" -msgstr "" +msgstr "Nachname" + +#: src/baserow/contrib/builder/data_providers/data_provider_types.py:621 +#, python-format +msgid "%(user_source_name)s member" +msgstr "%(user_source_name)s-Mitglied" -#: src/baserow/contrib/builder/data_sources/service.py:128 +#: src/baserow/contrib/builder/data_sources/service.py:158 msgid "Data source" -msgstr "" +msgstr "Datenquelle" -#: src/baserow/contrib/builder/elements/element_types.py:184 -#: src/baserow/contrib/builder/elements/element_types.py:189 -#: src/baserow/contrib/builder/elements/element_types.py:194 +#: src/baserow/contrib/builder/elements/mixins.py:612 +#: src/baserow/contrib/builder/elements/mixins.py:617 +#: src/baserow/contrib/builder/elements/mixins.py:622 #, python-format msgid "Column %(count)s" -msgstr "" +msgstr "Spalte %(count)s" diff --git a/backend/src/baserow/contrib/database/locale/de/LC_MESSAGES/django.po b/backend/src/baserow/contrib/database/locale/de/LC_MESSAGES/django.po index 040337ed1d..2e1fd81e60 100644 --- a/backend/src/baserow/contrib/database/locale/de/LC_MESSAGES/django.po +++ b/backend/src/baserow/contrib/database/locale/de/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-18 13:32+0000\n" +"POT-Creation-Date: 2026-03-16 21:52+0000\n" "PO-Revision-Date: 2024-01-31 13:43+0000\n" "Last-Translator: SWEETGOOD \n" "Language-Team: German \n" "Language-Team: German " +"Der Name des MCP-Endpunkts (%(endpoint_id)s) wurde von " +"\"%(original_endpoint_name)s\" in \"%(endpoint_name)s\" geändert" + +#: src/baserow/core/mcp/actions.py:108 +msgid "Delete MCP endpoint" +msgstr "MCP-Endpunkt löschen" + +#: src/baserow/core/mcp/actions.py:109 +#, python-format +msgid "" +"The MCP Endpoint \"%(endpoint_name)s\" (%(endpoint_id)s) has been deleted" +msgstr "" +"Der MCP-Endpunkt \"%(endpoint_name)s\" (%(endpoint_id)s) wurde gelöscht" + +#: src/baserow/core/notification_types.py:92 +#, python-format +msgid "%(user)s accepted your invitation to collaborate on %(workspace_name)s." +msgstr "" +"%(user)s hat Ihre Einladung, am Arbeitsbereich %(workspace_name)s " "mitzuarbeiten, angenommen." -#: src/baserow/core/notification_types.py:135 +#: src/baserow/core/notification_types.py:133 #, python-format -msgid "%(user)s rejected your invitation to collaborate to %(workspace_name)s." +msgid "%(user)s rejected your invitation to collaborate on %(workspace_name)s." msgstr "" "%(user)s hat Ihre Einladung, am Arbeitsbereich %(workspace_name)s " "mitzuarbeiten, abgelehnt." @@ -248,11 +330,11 @@ msgstr "" "Snapshot \"%(snapshot_name)s\" (%(snapshot_id)s) für Anwendung \"" "%(application_name)s\" (%(application_id)s) erstellt." -#: src/baserow/core/snapshots/actions.py:68 +#: src/baserow/core/snapshots/actions.py:72 msgid "Restore Snapshot" msgstr "Snapshot wiederherstellen" -#: src/baserow/core/snapshots/actions.py:70 +#: src/baserow/core/snapshots/actions.py:74 #, python-format msgid "" "Snapshot \"%(snapshot_name)s\" (%(snapshot_id)s) restored from application " @@ -263,11 +345,11 @@ msgstr "" "%(original_application_name)s\" (%(original_application_id)s) zu Anwendung \"" "%(application_name)s\" (%(application_id)s) wiederhergestellt." -#: src/baserow/core/snapshots/actions.py:124 +#: src/baserow/core/snapshots/actions.py:133 msgid "Delete Snapshot" msgstr "Snapshot löschen" -#: src/baserow/core/snapshots/actions.py:126 +#: src/baserow/core/snapshots/actions.py:135 #, python-format msgid "" "Snapshot \"%(snapshot_name)s\" (%(snapshot_id)s) deleted for application " @@ -276,101 +358,78 @@ msgstr "" "Snapshot \"%(snapshot_name)s\" (%(snapshot_id)s) für Anwendung \"" "%(application_name)s\" (%(application_id)s) gelöscht." -#: src/baserow/core/templates/baserow/core/group_invitation.html:144 -#: src/baserow/core/templates/baserow/core/workspace_invitation.html:144 -msgid "Invitation" -msgstr "Einladung" - -#: src/baserow/core/templates/baserow/core/group_invitation.html:149 -#, python-format -msgid "" -"%(first_name)s has invited you to collaborate on " -"%(group_name)s." -msgstr "" -"%(first_name)s hat Sie eingeladen, am Arbeitsbereich " -"%(group_name)s mitzuarbeiten." - -#: src/baserow/core/templates/baserow/core/group_invitation.html:163 -#: src/baserow/core/templates/baserow/core/workspace_invitation.html:167 -msgid "Accept invitation" -msgstr "Einladung annehmen" - -#: src/baserow/core/templates/baserow/core/group_invitation.html:177 -#: src/baserow/core/templates/baserow/core/notifications_summary.html:212 -#: src/baserow/core/templates/baserow/core/user/account_deleted.html:154 -#: src/baserow/core/templates/baserow/core/user/account_deletion_cancelled.html:154 -#: src/baserow/core/templates/baserow/core/user/account_deletion_scheduled.html:159 -#: src/baserow/core/templates/baserow/core/user/reset_password.html:177 -#: src/baserow/core/templates/baserow/core/workspace_invitation.html:181 -msgid "" -"Baserow is an open source no-code database tool which allows you to " -"collaborate on projects, customers and more. It gives you the powers of a " -"developer without leaving your browser." -msgstr "" -"Baserow ist eine Open Source No-Code-Datenbank, die Ihnen die Zusammenarbeit " -"an Projekten, Kunden und mehr ermöglicht. Sie gibt Ihnen direkt in Ihrem " -"Browser die Fähigkeiten eines Entwicklers." - -#: src/baserow/core/templates/baserow/core/notifications_summary.html:146 +#: src/baserow/core/templates/baserow/core/notifications_summary.html:173 #, python-format msgid "You have %(counter)s new notification" msgid_plural "You have %(counter)s new notifications" msgstr[0] "Sie haben %(counter)s neue Benachrichtigung" msgstr[1] "Sie haben %(counter)s neue Benachrichtigungen" -#: src/baserow/core/templates/baserow/core/notifications_summary.html:187 +#: src/baserow/core/templates/baserow/core/notifications_summary.html:214 #, python-format msgid "Plus %(counter)s more notification." msgid_plural "Plus %(counter)s more notifications." msgstr[0] "Plus %(counter)s weitere Benachrichtigung." msgstr[1] "Plus %(counter)s weitere Benachrichtigungen." -#: src/baserow/core/templates/baserow/core/notifications_summary.html:198 -msgid "View in Baserow" -msgstr "In Baserow anzeigen" +#: src/baserow/core/templates/baserow/core/notifications_summary.html:220 +#: src/baserow/core/templates/baserow/core/user/account_deleted.html:184 +#: src/baserow/core/templates/baserow/core/user/account_deletion_cancelled.html:184 +#: src/baserow/core/templates/baserow/core/user/account_deletion_scheduled.html:189 +#: src/baserow/core/templates/baserow/core/user/change_email_confirmation.html:207 +#: src/baserow/core/templates/baserow/core/user/reset_password.html:207 +#: src/baserow/core/templates/baserow/core/workspace_invitation.html:209 +msgid "" +"Baserow is an open source no-code database tool which allows you to " +"collaborate on projects, customers and more. It gives you the powers of a " +"developer without leaving your browser." +msgstr "" +"Baserow ist eine Open Source No-Code-Datenbank, die Ihnen die Zusammenarbeit " +"an Projekten, Kunden und mehr ermöglicht. Sie gibt Ihnen direkt in Ihrem " +"Browser die Fähigkeiten eines Entwicklers." -#: src/baserow/core/templates/baserow/core/user/account_deleted.html:144 +#: src/baserow/core/templates/baserow/core/user/account_deleted.html:173 msgid "Account permanently deleted" msgstr "Konto dauerhaft gelöscht" -#: src/baserow/core/templates/baserow/core/user/account_deleted.html:149 +#: src/baserow/core/templates/baserow/core/user/account_deleted.html:178 #, python-format msgid "" -"Your account (%(username)s) on Baserow (%(public_web_frontend_hostname)s) " +"Your account (%(username)s) on Baserow (%(baserow_embedded_share_hostname)s) " "has been permanently deleted." msgstr "" -"Ihr Konto (%(username)s) auf Baserow (%(public_web_frontend_hostname)s) " +"Ihr Konto (%(username)s) auf Baserow (%(baserow_embedded_share_hostname)s) " "wurde endgültig gelöscht." -#: src/baserow/core/templates/baserow/core/user/account_deletion_cancelled.html:144 +#: src/baserow/core/templates/baserow/core/user/account_deletion_cancelled.html:173 msgid "Account deletion cancelled" msgstr "Kontolöschung aufgehoben" -#: src/baserow/core/templates/baserow/core/user/account_deletion_cancelled.html:149 +#: src/baserow/core/templates/baserow/core/user/account_deletion_cancelled.html:178 #, python-format msgid "" -"Your account (%(username)s) on Baserow (%(public_web_frontend_hostname)s) " +"Your account (%(username)s) on Baserow (%(baserow_embedded_share_hostname)s) " "was pending deletion, but you've logged in so this operation has been " "cancelled." msgstr "" -"Ihr Konto (%(username)s) auf Baserow (%(public_web_frontend_hostname)s) war " -"zur Löschung vorgesehen, aber Sie haben sich angemeldet, so dass dieser " +"Ihr Konto (%(username)s) auf Baserow (%(baserow_embedded_share_hostname)s) " +"war zur Löschung vorgesehen, aber Sie haben sich angemeldet, so dass dieser " "Vorgang abgebrochen wurde." -#: src/baserow/core/templates/baserow/core/user/account_deletion_scheduled.html:144 +#: src/baserow/core/templates/baserow/core/user/account_deletion_scheduled.html:173 msgid "Account pending deletion" msgstr "Zur Löschung anstehendes Konto" -#: src/baserow/core/templates/baserow/core/user/account_deletion_scheduled.html:149 +#: src/baserow/core/templates/baserow/core/user/account_deletion_scheduled.html:178 #, python-format msgid "" -"Your account (%(username)s) on Baserow (%(public_web_frontend_hostname)s) " +"Your account (%(username)s) on Baserow (%(baserow_embedded_share_hostname)s) " "will be permanently deleted in %(days_left)s days." msgstr "" -"Ihr Konto (%(username)s) bei Baserow (%(public_web_frontend_hostname)s) wird " -"in %(days_left)s Tagen endgültig gelöscht." +"Ihr Konto (%(username)s) bei Baserow (%(baserow_embedded_share_hostname)s) " +"wird in %(days_left)s Tagen endgültig gelöscht." -#: src/baserow/core/templates/baserow/core/user/account_deletion_scheduled.html:154 +#: src/baserow/core/templates/baserow/core/user/account_deletion_scheduled.html:183 msgid "" "If you've changed your mind and want to cancel your account deletion, you " "just have to login again." @@ -378,23 +437,73 @@ msgstr "" "Wenn Sie es sich anders überlegt haben und die Löschung Ihres Kontos " "rückgängig machen wollen, müssen Sie sich einfach erneut anmelden." -#: src/baserow/core/templates/baserow/core/user/reset_password.html:144 -#: src/baserow/core/templates/baserow/core/user/reset_password.html:163 +#: src/baserow/core/templates/baserow/core/user/change_email_confirmation.html:173 +msgid "Confirm email address change" +msgstr "Änderung der E-Mail-Adresse bestätigen" + +#: src/baserow/core/templates/baserow/core/user/change_email_confirmation.html:178 +#, python-format +msgid "" +"A request was made to change the email address for your Baserow account from " +"%(old_email)s to %(new_email)s on Baserow " +"(%(baserow_embedded_share_hostname)s). If you did not authorize this, you " +"may simply ignore this email." +msgstr "" +"Es wurde eine Anfrage gestellt, die E-Mail-Adresse Ihres Baserow-Kontos von " +"%(old_email)s in %(new_email)s auf Baserow " +"(%(baserow_embedded_share_hostname)s) zu ändern. Wenn Sie dies nicht " +"autorisiert haben, können Sie diese E-Mail einfach ignorieren." + +#: src/baserow/core/templates/baserow/core/user/change_email_confirmation.html:183 +#, python-format +msgid "" +"To confirm your email address change, simply click the button below. This " +"link will expire in %(hours)s hours." +msgstr "" +"Um die Änderung Ihrer E-Mail-Adresse zu bestätigen, klicken Sie einfach auf " +"die unten stehende Schaltfläche. Dieser Link läuft in %(hours)s Stunden ab." + +#: src/baserow/core/templates/baserow/core/user/change_email_confirmation.html:192 +msgid "Confirm email change" +msgstr "E-Mail-Änderung bestätigen" + +#: src/baserow/core/templates/baserow/core/user/email_pending_verification.html:178 +msgid "Thank you for using Baserow" +msgstr "Vielen Dank, dass Sie Baserow nutzen" + +#: src/baserow/core/templates/baserow/core/user/email_pending_verification.html:183 +msgid "" +"To keep your account secure, please take a moment to verify your email by " +"clicking the button below. Your email address will be used to assist you in " +"changing your Baserow password should you ever need to in the future." +msgstr "" +"Um Ihr Konto zu schützen, nehmen Sie sich bitte einen Moment Zeit, um Ihre " +"E-Mail-Adresse zu verifizieren, indem Sie auf die unten stehende " +"Schaltfläche klicken. Ihre E-Mail-Adresse wird verwendet, um Sie zu " +"unterstützen, falls Sie Ihr Baserow-Passwort in Zukunft einmal ändern " +"müssen." + +#: src/baserow/core/templates/baserow/core/user/email_pending_verification.html:192 +msgid "Confirm" +msgstr "Bestätigen" + +#: src/baserow/core/templates/baserow/core/user/reset_password.html:173 +#: src/baserow/core/templates/baserow/core/user/reset_password.html:192 msgid "Reset password" msgstr "Passwort zurücksetzen" -#: src/baserow/core/templates/baserow/core/user/reset_password.html:149 +#: src/baserow/core/templates/baserow/core/user/reset_password.html:178 #, python-format msgid "" "A password reset was requested for your account (%(username)s) on Baserow " -"(%(public_web_frontend_hostname)s). If you did not authorize this, you may " -"simply ignore this email." +"(%(baserow_embedded_share_hostname)s). If you did not authorize this, you " +"may simply ignore this email." msgstr "" -"Ein Passwort-Reset wurde bei Baserow (%(public_web_frontend_hostname)s) für " -"Ihr Konto ( %(username)s) beantragt. Wenn Sie dies nicht angefordert haben, " -"können Sie diese E-Mail einfach ignorieren." +"Ein Passwort-Reset wurde bei Baserow (%(baserow_embedded_share_hostname)s) " +"für Ihr Konto (%(username)s) beantragt. Wenn Sie dies nicht angefordert " +"haben, können Sie diese E-Mail einfach ignorieren." -#: src/baserow/core/templates/baserow/core/user/reset_password.html:154 +#: src/baserow/core/templates/baserow/core/user/reset_password.html:183 #, python-format msgid "" "To continue with your password reset, simply click the button below, and you " @@ -405,20 +514,28 @@ msgstr "" "auf die unten stehende Schaltfläche um Ihr Passwort zu ändern. Dieser Link " "läuft in %(hours)s Stunden ab." -#: src/baserow/core/templates/baserow/core/workspace_invitation.html:149 +#: src/baserow/core/templates/baserow/core/workspace_invitation.html:173 +msgid "Invitation" +msgstr "Einladung" + +#: src/baserow/core/templates/baserow/core/workspace_invitation.html:178 #, python-format msgid "" -"%(first_name)s has invited you to collaborate on " -"%(workspace_name)s." +"%(first_name)s has invited you to collaborate on " +"%(workspace_name)s." msgstr "" "%(first_name)s hat Sie eingeladen, am Arbeitsbereich " "%(workspace_name)s mitzuarbeiten." -#: src/baserow/core/trash/actions.py:20 +#: src/baserow/core/templates/baserow/core/workspace_invitation.html:194 +msgid "Accept invitation" +msgstr "Einladung annehmen" + +#: src/baserow/core/trash/actions.py:21 msgid "Empty trash" msgstr "Papierkorb leeren" -#: src/baserow/core/trash/actions.py:22 +#: src/baserow/core/trash/actions.py:23 #, python-format msgid "" "Trash for application \"%(application_name)s\" (%(application_id)s) has been " @@ -427,7 +544,7 @@ msgstr "" "Der Papierkorb für die Anwendung \"%(application_name)s\" " "(%(application_id)s) wurde geleert" -#: src/baserow/core/trash/actions.py:79 +#: src/baserow/core/trash/actions.py:84 #, python-format msgid "" "Trash for workspace \"%(workspace_name)s\" (%(workspace_id)s) has been " @@ -436,11 +553,11 @@ msgstr "" "Der Papierkorb für den Arbeitsbereich \"%(workspace_name)s\" " "(%(workspace_id)s) wurde geleert." -#: src/baserow/core/trash/actions.py:90 +#: src/baserow/core/trash/actions.py:95 msgid "Restore from trash" msgstr "Aus dem Papierkorb wiederherstellen" -#: src/baserow/core/trash/actions.py:91 +#: src/baserow/core/trash/actions.py:96 #, python-format msgid "" "Item of type \"%(item_type)s\" (%(item_id)s) has been restored from trash" @@ -448,35 +565,59 @@ msgstr "" "Element des Typs \"%(item_type)s\" (%(item_id)s) wurde aus dem Papierkorb " "wiederhergestellt" -#: src/baserow/core/user/actions.py:23 +#: src/baserow/core/two_factor_auth/actions.py:19 +msgid "Configure two-factor authentication" +msgstr "Zwei-Faktor-Authentifizierung konfigurieren" + +#: src/baserow/core/two_factor_auth/actions.py:21 +#, python-format +msgid "" +"User \"%(user_email)s\" (%(user_id)s) configured %(provider_type)s (enabled " +"%(is_enabled)s) two-factor authentication." +msgstr "" +"Benutzer \"%(user_email)s\" (%(user_id)s) hat %(provider_type)s (aktiviert " +"%(is_enabled)s) Zwei-Faktor-Authentifizierung konfiguriert." + +#: src/baserow/core/two_factor_auth/actions.py:71 +msgid "Disable two-factor authentication" +msgstr "Zwei-Faktor-Authentifizierung deaktivieren" + +#: src/baserow/core/two_factor_auth/actions.py:72 +#, python-format +msgid "" +"User \"%(user_email)s\" (%(user_id)s) disabled two-factor authentication." +msgstr "" +"Benutzer \"%(user_email)s\" (%(user_id)s) hat die " +"Zwei-Faktor-Authentifizierung deaktiviert." + +#: src/baserow/core/user/actions.py:25 msgid "Create User" msgstr "Benutzer erstellen" -#: src/baserow/core/user/actions.py:25 +#: src/baserow/core/user/actions.py:27 #, python-format msgid "" -"User \"%(user_email)s\" (%(user_id)s) created via \"%(auth_provider_type)s" -"\" (%(auth_provider_id)s) auth provider (invitation: " -"%(with_invitation_token)s)" +"User \"%(user_email)s\" (%(user_id)s) created via \"%(auth_provider_type)s\" " +"(%(auth_provider_id)s) auth provider (invitation: %(with_invitation_token)s)" msgstr "" "Benutzer \"%(user_email)s\" (%(user_id)s) über \"%(auth_provider_type)s\" " "(%(auth_provider_id)s) auth provider (Einladung: %(with_invitation_token)s) " "erstellt" -#: src/baserow/core/user/actions.py:110 +#: src/baserow/core/user/actions.py:119 msgid "Update User" msgstr "Benutzer aktualisieren" -#: src/baserow/core/user/actions.py:111 +#: src/baserow/core/user/actions.py:120 #, python-format msgid "User \"%(user_email)s\" (%(user_id)s) updated" msgstr "Benutzer \"%(user_email)s\" (%(user_id)s) aktualisiert" -#: src/baserow/core/user/actions.py:163 +#: src/baserow/core/user/actions.py:184 msgid "Schedule user deletion" msgstr "Planen Sie die Löschung von Benutzern" -#: src/baserow/core/user/actions.py:165 +#: src/baserow/core/user/actions.py:186 #, python-format msgid "" "User \"%(user_email)s\" (%(user_id)s) scheduled to be deleted after grace " @@ -485,11 +626,11 @@ msgstr "" "Benutzer \"%(user_email)s\" (%(user_id)s) soll nach der Karenzzeit gelöscht " "werden" -#: src/baserow/core/user/actions.py:196 +#: src/baserow/core/user/actions.py:220 msgid "Cancel user deletion" msgstr "Benutzerlöschung abbrechen" -#: src/baserow/core/user/actions.py:198 +#: src/baserow/core/user/actions.py:222 #, python-format msgid "" "User \"%(user_email)s\" (%(user_id)s) logged in cancelling the deletion " @@ -498,48 +639,94 @@ msgstr "" "Benutzer \"%(user_email)s\" (%(user_id)s) hat sich angemeldet und den " "Löschvorgang abgebrochen" -#: src/baserow/core/user/actions.py:229 +#: src/baserow/core/user/actions.py:256 msgid "Sign In User" msgstr "Benutzer anmelden" -#: src/baserow/core/user/actions.py:231 +#: src/baserow/core/user/actions.py:258 #, python-format msgid "" -"User \"%(user_email)s\" (%(user_id)s) signed in via \"%(auth_provider_type)s" -"\" (%(auth_provider_id)s) auth provider" +"User \"%(user_email)s\" (%(user_id)s) signed in via " +"\"%(auth_provider_type)s\" (%(auth_provider_id)s) auth provider" msgstr "" "Benutzer \"%(user_email)s\" (%(user_id)s) über \"%(auth_provider_type)s\" " "(%(auth_provider_id)s) auth provider angemeldet" -#: src/baserow/core/user/actions.py:283 +#: src/baserow/core/user/actions.py:327 msgid "Send reset user password" msgstr "Zurückgesetztes Benutzerpasswort senden" -#: src/baserow/core/user/actions.py:284 +#: src/baserow/core/user/actions.py:328 #, python-format msgid "User \"%(user_email)s\" (%(user_id)s) requested to reset password" msgstr "" "Benutzer \"%(user_email)s\" (%(user_id)s) hat sein Passwort zurückgesetzt" -#: src/baserow/core/user/actions.py:314 +#: src/baserow/core/user/actions.py:361 msgid "Change user password" msgstr "Passwort zurücksetzen" -#: src/baserow/core/user/actions.py:315 +#: src/baserow/core/user/actions.py:362 #, python-format msgid "User \"%(user_email)s\" (%(user_id)s) changed password" msgstr "Benutzer \"%(user_email)s\" (%(user_id)s) hat sein Passwort geändert" -#: src/baserow/core/user/actions.py:351 +#: src/baserow/core/user/actions.py:401 msgid "Reset user password" msgstr "Passwort zurücksetzen" -#: src/baserow/core/user/actions.py:352 +#: src/baserow/core/user/actions.py:402 #, python-format msgid "User \"%(user_email)s\" (%(user_id)s) reset password" msgstr "" "Benutzer \"%(user_email)s\" (%(user_id)s) hat das Passwort zurückgesetzt" +#: src/baserow/core/user/actions.py:438 +msgid "Send verify email" +msgstr "E-Mail-Verifizierung senden" + +#: src/baserow/core/user/actions.py:439 +#, python-format +msgid "User \"%(user_email)s\" (%(user_id)s) requested to verify email" +msgstr "" +"Benutzer \"%(user_email)s\" (%(user_id)s) hat eine E-Mail-Verifizierung " +"angefordert" + +#: src/baserow/core/user/actions.py:472 +msgid "Verify email" +msgstr "E-Mail verifizieren" + +#: src/baserow/core/user/actions.py:473 +#, python-format +msgid "User \"%(user_email)s\" (%(user_id)s) verify email" +msgstr "Benutzer \"%(user_email)s\" (%(user_id)s) E-Mail verifizieren" + +#: src/baserow/core/user/actions.py:510 +msgid "Send change email confirmation" +msgstr "Bestätigung der E-Mail-Änderung senden" + +#: src/baserow/core/user/actions.py:512 +#, python-format +msgid "" +"User \"%(user_email)s\" (%(user_id)s) requested to change email to " +"\"%(new_email)s\"" +msgstr "" +"Benutzer \"%(user_email)s\" (%(user_id)s) hat angefordert, die E-Mail in " +"\"%(new_email)s\" zu ändern" + +#: src/baserow/core/user/actions.py:558 +msgid "Change email" +msgstr "E-Mail ändern" + +#: src/baserow/core/user/actions.py:560 +#, python-format +msgid "" +"User \"%(old_email)s\" (%(user_id)s) changed email to \"%(new_email)s\" by " +"using the token." +msgstr "" +"Benutzer \"%(old_email)s\" (%(user_id)s) hat die E-Mail mit dem Token in " +"\"%(new_email)s\" geändert." + #: src/baserow/core/user/emails.py:16 msgid "Reset password - Baserow" msgstr "Passwort zurücksetzen - Baserow" @@ -556,7 +743,6 @@ msgstr "Konto dauerhaft gelöscht - Baserow" msgid "Account deletion cancelled - Baserow" msgstr "Kontolöschung abgebrochen - Baserow" -#: src/baserow/core/user/handler.py:248 -#, python-format -msgid "%(name)s's workspace" -msgstr "%(name)s's Arbeitsbereich" +#: src/baserow/core/user/emails.py:94 +msgid "Confirm email address change - Baserow" +msgstr "Änderung der E-Mail-Adresse bestätigen - Baserow" diff --git a/backend/src/baserow/locale/de/LC_MESSAGES/django.po b/backend/src/baserow/locale/de/LC_MESSAGES/django.po index 77391c2cc7..c1bbd50203 100755 --- a/backend/src/baserow/locale/de/LC_MESSAGES/django.po +++ b/backend/src/baserow/locale/de/LC_MESSAGES/django.po @@ -3,25 +3,239 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-18 13:32+0000\n" +"POT-Creation-Date: 2026-03-16 21:52+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" -"Language: \n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/baserow/api/authentication.py:25 +#: src/baserow/api/authentication.py:26 msgid "Token contained no recognizable user identification" -msgstr "" +msgstr "Das Token enthielt keine erkennbare Benutzerkennung" -#: src/baserow/api/authentication.py:33 +#: src/baserow/api/authentication.py:34 msgid "User not found" +msgstr "Benutzer nicht gefunden" + +#: src/baserow/contrib/automation/action_scopes.py:10 +#: src/baserow/contrib/automation/actions.py:4 +#, python-format +msgid "in automation \"%(automation_name)s\" (%(automation_id)s)." +msgstr "in Automatisierung \"%(automation_name)s\" (%(automation_id)s)." + +#: src/baserow/contrib/automation/action_scopes.py:14 +#, python-format +msgid "" +"of type (%(node_type)s) in automation \"%(automation_name)s\" " +"(%(automation_id)s)." +msgstr "" +"vom Typ (%(node_type)s) in Automatisierung \"%(automation_name)s\" " +"(%(automation_id)s)." + +#: src/baserow/contrib/automation/actions.py:8 +#, python-format +msgid "" +"in workflow (%(workflow_id)s) in automation \"%(automation_name)s\" " +"(%(automation_id)s)." msgstr "" +"in Workflow (%(workflow_id)s) in Automatisierung \"%(automation_name)s\" " +"(%(automation_id)s)." + +#: src/baserow/contrib/automation/automation_init_application.py:29 +msgid "Workflow" +msgstr "Workflow" + +#: src/baserow/contrib/automation/automation_init_application.py:30 +msgid "Local Baserow" +msgstr "Lokales Baserow" + +#: src/baserow/contrib/automation/nodes/actions.py:25 +msgid "Create automation node" +msgstr "Automatisierungsknoten erstellen" + +#: src/baserow/contrib/automation/nodes/actions.py:26 +#, python-format +msgid "Node (%(node_id)s) created" +msgstr "Knoten (%(node_id)s) erstellt" + +#: src/baserow/contrib/automation/nodes/actions.py:90 +msgid "Update automation node" +msgstr "Automatisierungsknoten aktualisieren" + +#: src/baserow/contrib/automation/nodes/actions.py:91 +#, python-format +msgid "Node (%(node_id)s) updated" +msgstr "Knoten (%(node_id)s) aktualisiert" + +#: src/baserow/contrib/automation/nodes/actions.py:159 +msgid "Delete automation node" +msgstr "Automatisierungsknoten löschen" + +#: src/baserow/contrib/automation/nodes/actions.py:160 +#, python-format +msgid "Node (%(node_id)s) deleted" +msgstr "Knoten (%(node_id)s) gelöscht" + +#: src/baserow/contrib/automation/nodes/actions.py:217 +msgid "Duplicate automation node" +msgstr "Automatisierungsknoten duplizieren" + +#: src/baserow/contrib/automation/nodes/actions.py:218 +#, python-format +msgid "Node (%(node_id)s) duplicated" +msgstr "Knoten (%(node_id)s) dupliziert" + +#: src/baserow/contrib/automation/nodes/actions.py:289 +msgid "Replace automation node" +msgstr "Automatisierungsknoten ersetzen" + +#: src/baserow/contrib/automation/nodes/actions.py:291 +#, python-format +msgid "" +"Node (%(node_id)s) changed from a type of %(original_node_type)s to " +"%(node_type)s" +msgstr "" +"Knoten (%(node_id)s) wurde vom Typ %(original_node_type)s zu " +"%(node_type)s geändert" + +#: src/baserow/contrib/automation/nodes/actions.py:377 +msgid "Moved automation node" +msgstr "Automatisierungsknoten verschoben" + +#: src/baserow/contrib/automation/nodes/actions.py:378 +#, python-format +msgid "Node (%(node_id)s) moved" +msgstr "Knoten (%(node_id)s) verschoben" + +#: src/baserow/contrib/automation/nodes/node_types.py:260 +msgid "Branch" +msgstr "Verzweigung" + +#: src/baserow/contrib/automation/workflows/actions.py:28 +msgid "Create automation workflow" +msgstr "Automatisierungs-Workflow erstellen" + +#: src/baserow/contrib/automation/workflows/actions.py:29 +#, python-format +msgid "Workflow \"%(workflow_name)s\" (%(workflow_id)s) created" +msgstr "Workflow \"%(workflow_name)s\" (%(workflow_id)s) erstellt" + +#: src/baserow/contrib/automation/workflows/actions.py:90 +msgid "Update automation workflow" +msgstr "Automatisierungs-Workflow aktualisieren" + +#: src/baserow/contrib/automation/workflows/actions.py:91 +#, python-format +msgid "Workflow \"%(workflow_name)s\" (%(workflow_id)s) updated" +msgstr "Workflow \"%(workflow_name)s\" (%(workflow_id)s) aktualisiert" + +#: src/baserow/contrib/automation/workflows/actions.py:170 +msgid "Delete workflow" +msgstr "Workflow löschen" + +#: src/baserow/contrib/automation/workflows/actions.py:171 +#, python-format +msgid "Workflow \"%(workflow_name)s\" (%(workflow_id)s) deleted" +msgstr "Workflow \"%(workflow_name)s\" (%(workflow_id)s) gelöscht" + +#: src/baserow/contrib/automation/workflows/actions.py:227 +msgid "Duplicate automation workflow" +msgstr "Automatisierungs-Workflow duplizieren" + +#: src/baserow/contrib/automation/workflows/actions.py:229 +#, python-format +msgid "" +"Workflow \"%(workflow_name)s\" (%(workflow_id)s) duplicated " +"from\"%(original_workflow_name)s\" (%(original_workflow_id)s) " +msgstr "" +"Workflow \"%(workflow_name)s\" (%(workflow_id)s) dupliziert " +"von\"%(original_workflow_name)s\" (%(original_workflow_id)s) " + +#: src/baserow/contrib/automation/workflows/actions.py:299 +msgid "Order workflows" +msgstr "Workflows sortieren" + +#: src/baserow/contrib/automation/workflows/actions.py:300 +msgid "Workflow order changed" +msgstr "Workflow-Reihenfolge geändert" + +#: src/baserow/contrib/dashboard/actions.py:3 +#, python-format +msgid "in dashboard \"%(dashboard_name)s\" (%(dashboard_id)s)." +msgstr "in Dashboard \"%(dashboard_name)s\" (%(dashboard_id)s)." + +#: src/baserow/contrib/dashboard/data_sources/actions.py:19 +msgid "Update dashboard data source" +msgstr "Dashboard-Datenquelle aktualisieren" + +#: src/baserow/contrib/dashboard/data_sources/actions.py:20 +#, python-format +msgid "Data source \"%(data_source_name)s\" (%(data_source_id)s) updated" +msgstr "Datenquelle \"%(data_source_name)s\" (%(data_source_id)s) aktualisiert" + +#: src/baserow/contrib/dashboard/data_sources/service.py:148 +msgid "Data source" +msgstr "Datenquelle" + +#: src/baserow/contrib/dashboard/widgets/actions.py:20 +msgid "Create widget" +msgstr "Widget erstellen" + +#: src/baserow/contrib/dashboard/widgets/actions.py:21 +#, python-format +msgid "Widget \"%(widget_title)s\" (%(widget_id)s) created" +msgstr "Widget \"%(widget_title)s\" (%(widget_id)s) erstellt" + +#: src/baserow/contrib/dashboard/widgets/actions.py:83 +msgid "Update widget" +msgstr "Widget aktualisieren" + +#: src/baserow/contrib/dashboard/widgets/actions.py:84 +#, python-format +msgid "Widget \"%(widget_title)s\" (%(widget_id)s) updated" +msgstr "Widget \"%(widget_title)s\" (%(widget_id)s) aktualisiert" + +#: src/baserow/contrib/dashboard/widgets/actions.py:154 +msgid "Delete widget" +msgstr "Widget löschen" + +#: src/baserow/contrib/dashboard/widgets/actions.py:155 +#, python-format +msgid "Widget \"%(widget_title)s\" (%(widget_id)s) deleted" +msgstr "Widget \"%(widget_title)s\" (%(widget_id)s) gelöscht" + +#: src/baserow/contrib/integrations/core/service_types.py:1062 +msgid "Branch taken" +msgstr "Genommene Verzweigung" + +#: src/baserow/contrib/integrations/core/service_types.py:1067 +msgid "Label" +msgstr "Bezeichnung" + +#: src/baserow/contrib/integrations/core/service_types.py:1069 +msgid "The label of the branch that matched the condition." +msgstr "Die Bezeichnung der Verzweigung, die mit der Bedingung übereinstimmte." + +#: src/baserow/contrib/integrations/core/service_types.py:1438 +msgid "Previous scheduled run" +msgstr "Vorheriger geplanter Lauf" + +#: src/baserow/contrib/integrations/core/service_types.py:1442 +msgid "Next scheduled run" +msgstr "Nächster geplanter Lauf" + +#: src/baserow/contrib/integrations/local_baserow/service_types.py:1688 +msgid "No rows found" +msgstr "Keine Zeilen gefunden" + +#: src/baserow/contrib/integrations/slack/service_types.py:166 +msgid "OK" +msgstr "OK" diff --git a/changelog/entries/unreleased/bug/5288_fix_hidden_primary_field_in_grid_view.json b/changelog/entries/unreleased/bug/5288_fix_hidden_primary_field_in_grid_view.json new file mode 100644 index 0000000000..d2d3cdf779 --- /dev/null +++ b/changelog/entries/unreleased/bug/5288_fix_hidden_primary_field_in_grid_view.json @@ -0,0 +1,9 @@ +{ + "type": "bug", + "message": "Fixed a bug where changing the primary field to a hidden field could keep it hidden in the grid view.", + "issue_origin": "github", + "issue_number": 5288, + "domain": "database", + "bullet_points": [], + "created_at": "2026-04-30" +} diff --git a/enterprise/backend/src/baserow_enterprise/locale/de/LC_MESSAGES/django.po b/enterprise/backend/src/baserow_enterprise/locale/de/LC_MESSAGES/django.po index 6c0714e3e4..8cdbccf29b 100644 --- a/enterprise/backend/src/baserow_enterprise/locale/de/LC_MESSAGES/django.po +++ b/enterprise/backend/src/baserow_enterprise/locale/de/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-26 15:50+0000\n" +"POT-Creation-Date: 2026-03-16 22:06+0000\n" "PO-Revision-Date: 2024-01-31 13:43+0000\n" "Last-Translator: SWEETGOOD \n" "Language-Team: German Private Apps und erstellen Sie eine neue private App. Weisen Sie die folgenden Bereiche zu: crm.objects.contacts.read, crm.schemas.contacts.read, und crm.objects.custom.read. Klicken Sie abschließend auf App erstellen, um das Token zu generieren." + "accessTokenHelper": "Um ein Zugriffstoken für eine private App in HubSpot zu erstellen, klicken Sie in der oberen Leiste auf Settings, navigieren Sie zu Integrations > Private Apps und erstellen Sie eine neue private App. Weisen Sie die folgenden Scopes zu: crm.objects.contacts.read, crm.schemas.contacts.read und crm.objects.custom.read. Klicken Sie abschließend auf Create app, um das Token zu generieren." + }, + "samlAuthLink": { + "placeholderWithSaml": "{login} mit SAML", + "provideEmail": "Geben Sie die E-Mail-Adresse Ihres SAML-Kontos ein", + "emailPlaceholder": "Geben Sie Ihre E-Mail ein..." }, "configureDataSyncModal": { "periodicInterval": "Periodische Einstellungen" }, + "configureDataSyncPeriodicInterval": { + "title": "Periodische Einstellungen", + "saved": "Gespeichert", + "deactivatedTitle": "Periodische Datensynchronisation deaktiviert", + "deactivatedText": "Die periodische Datensynchronisation wurde deaktiviert, weil sie zu oft hintereinander fehlgeschlagen ist. Bitte versuchen Sie, manuell zu synchronisieren. Wenn es wie erwartet funktioniert, klicken Sie auf die Schaltfläche zum Aktivieren.", + "activate": "Periodische Synchronisation aktivieren", + "enterprise": "Periodische Datensynchronisation ist eine Advanced/Enterprise-Funktion.", + "more": "Weitere Informationen" + }, "dataSyncPeriodicIntervalForm": { "intervalLabel": "Intervall", - "intervalHelper": "Wie häufig der automatische Datenabgleich erfolgen soll.", + "intervalHelper": "Wie häufig die Datensynchronisation automatisch erfolgen soll.", "manual": "Manuell", "daily": "Täglich", "hourly": "Stündlich", - "whenHelper": "Geben Sie die genaue Stunde, Minute und Sekunde an, zu der die Daten abgeglichen werden sollen.", + "whenHelper": "Geben Sie die genaue Stunde, Minute und Sekunde an, zu der die Datensynchronisation erfolgen soll.", + "whenHourlyHelper": "Geben Sie die genaue Minute und Sekunde an, zu der die Datensynchronisation erfolgen soll.", + "hour": "Stunde", "minute": "Minute", - "second": "Sekunde", - "hour": "Stunde" + "second": "Sekunde" }, "oidcAuthLink": { "placeholderWithOIDC": "{login} mit {provider}" }, - "advanced": { - "license": "Advanced" - }, - "dataScanner": { - "title": "Daten-Scanner", - "scansTab": "Scans", - "resultsTab": "Ergebnisse", - "createScan": "Daten-Scanner erstellen" + "chartWidget": { + "name": "Diagramm", + "bar": "Balkendiagramm", + "line": "Liniendiagramm" + }, + "pieChartWidget": { + "name": "Kreisdiagramm", + "pie": "Kreisdiagramm", + "doughnut": "Ringdiagramm", + "polarArea": "Polarbereichsdiagramm" + }, + "groupedAggregateRowsDataSourceForm": { + "series": "Reihen", + "addSeries": "Reihe hinzufügen", + "data": "Daten", + "sourceFieldLabel": "Quelle", + "viewFieldLabel": "Ansicht", + "notSelected": "Nicht ausgewählt" + }, + "aggregationSeriesForm": { + "aggregationFieldLabel": "Feld", + "aggregationTypeLabel": "Zusammenfassung", + "deleteSeries": "Reihe löschen", + "chartType": "Diagrammtyp", + "barChart": "Balken", + "lineChart": "Linie", + "pieChart": "Kreis", + "doughnutChart": "Ring", + "polarAreaChart": "Polarbereich" + }, + "aggregationGroupByForm": { + "groupByFieldLabel": "Gruppieren nach", + "groupByNone": "Keine", + "groupByRowId": "Zeilen-ID" + }, + "aggregationSortByForm": { + "sortByFieldLabel": "Sortieren nach", + "none": "Keine", + "ascending": "Aufsteigend", + "descending": "Absteigend" + }, + "periodicDataSyncDeactivatedNotification": { + "failure": "Die periodische Datensynchronisation für {name} wurde deaktiviert, weil sie zu oft hintereinander fehlgeschlagen ist.", + "licenseUnavailable": "Die periodische Datensynchronisation für {name} wurde deaktiviert, weil der Arbeitsbereich keine gültige Lizenz mehr hat. Bitte aktualisieren Sie Ihre Lizenz, um die automatische Synchronisation wiederherzustellen." + }, + "twoWaySyncUpdateFailed": { + "title": "Bidirektionales Synchronisations-Update für {name} fehlgeschlagen: {error}" + }, + "twoWaySyncDeactivated": { + "title": "Bidirektionale Synchronisation für {name} deaktiviert, weil ein Update zu oft hintereinander fehlgeschlagen ist. Bitte synchronisieren Sie manuell und reaktivieren Sie, wenn das Problem behoben ist." + }, + "webhook": { + "rowsEnterVieweventType": "Zeilen treten in Ansicht ein" + }, + "webhookForm": { + "triggerWhenRowsEnterView": "Wird ausgelöst, wenn Zeilen in die Ansicht eintreten.", + "helpTriggerWhenRowsEnterView": "Wird nur ausgelöst, wenn `Zeilen treten in Ansicht ein` ausgewählt ist und Zeilen, die nun den Filtern entsprechen, in die Ansicht eintreten." + }, + "fileInputElementForm": { + "defaultNameTitle": "Initialer Dateiname|Initiale Dateinamen", + "defaultNamePlaceholder": "Geben Sie einen Dateinamen ein...|Geben Sie Dateinamen ein...", + "defaultNameHelp": "Die Anzahl der Namen muss mit der Anzahl der URLs übereinstimmen.", + "defaultUrlTitle": "Initiale Datei-URL|Initiale Datei-URLs", + "defaultUrlPlaceholder": "Geben Sie eine Standard-URL ein...|Geben Sie Standard-URLs ein..", + "helpTextTitle": "Hilfetext", + "helpTextPlaceholder": "Leer lassen für Standard...", + "multiple": "Mehrere Dateien?", + "required": "Erforderlich", + "fileTypes": "Dateitypen", + "fileTypesHelper": "Wählen Sie, welche Dateierweiterungen für die Dateieingabe erlaubt sind (eine pro Zeile) (z.B. jpg, png, svg, pdf). Sie können image/*, video/* oder audio/* angeben, um alle Dateien dieser Typen zuzulassen. Leer lassen, um alle Dateitypen zuzulassen.", + "preview": "Bildvorschau?", + "maxFileSize": "Maximale Dateigröße", + "maxFileSizePlaceholder": "Geben Sie eine Zahl ein...", + "addFileType": "Dateityp hinzufügen" + }, + "fileInputElement": { + "defaultHelpText": "Dateien hierher ziehen und ablegen oder zum Auswählen klicken", + "fileSizeExceeded": "Datei zu groß. Maximal {max}MB." + }, + "fieldPermissionModal": { + "title": "Feldberechtigungen bearbeiten", + "description": "Wählen Sie, wer Werte in {fieldName} bearbeiten kann.", + "question": "Wer kann dieses Feld bearbeiten?", + "editorTitle": "Bearbeiter und höher (Standard)", + "editorDescription": "Benutzer mit den Rollen Bearbeiter, Ersteller und Administrator", + "builderTitle": "Ersteller und höher", + "builderDescription": "Benutzer mit den Rollen Ersteller und Administrator", + "adminTitle": "Nur Administratoren", + "adminDescription": "Benutzer mit Administratorrollen", + "nobodyTitle": "Niemand", + "nobodyDescription": "Keine Benutzer", + "allowInForms": "Erlauben, dass dieses Feld in Zeilen gesetzt wird, die über Formulare erstellt werden", + "linkRowWarning": "Dies ist ein 'Verknüpfung mit Tabelle'-Feld. Um sicherzustellen, dass die Werte nicht über die verknüpfte Tabelle geändert werden können, stellen Sie bitte sicher, dass auch die richtigen Berechtigungen für die verknüpfte Tabelle festgelegt sind." + }, + "builderSettingTypes": { + "customCode": "Benutzerdefiniertes CSS/JS" + }, + "customCodeSettingForm": { + "customCSS": "Benutzerdefiniertes CSS", + "customJS": "Benutzerdefiniertes JavaScript", + "customCSSPlaceholder": "Geben Sie benutzerdefinierten CSS-Code ein...", + "customJSPlaceholder": "Geben Sie benutzerdefinierten JS-Code ein...", + "externalScripts": "Externe Skripte / Stylesheets", + "noScript": "Erweitern Sie Ihre Anwendung mit externen Skripten oder Stylesheets", + "customCodeTitle": "Benutzerdefinierter Code", + "customCodeHelp": "Benutzerdefinierter Code ist nur in der Vorschau oder in veröffentlichten Anwendungen sichtbar. Die Ergebnisse sind im Editor nicht sichtbar.", + "addExternalScript": "Externes Skript hinzufügen" + }, + "customCodeSettingScriptForm": { + "type": "Typ", + "loadType": "Ladetyp", + "url": "URL", + "urlPlaceholder": "Geben Sie die Skript-URL ein...", + "crossorigin": "Cross-Origin", + "includeCredentials": "Anmeldeinformationen einschließen", + "typeCSS": "CSS", + "typeJS": "Javascript", + "loadTypeNone": "Normal", + "loadTypeDefer": "Defer", + "loadTypeAsync": "Async", + "crossoriginTypeNone": "Normal", + "crossoriginTypeAnonymous": "Anonym", + "crossoriginTypeCredentials": "Anmeldeinformationen verwenden" + }, + "elementType": { + "errorUserSourceHasNoLoginOption": "Die ausgewählte Benutzerquelle hat keine Anmeldeoption", + "errorUserSourceMissing": "Keine Benutzerquelle ausgewählt" + }, + "fieldPermissionsMenuItem": { + "label": "Feldberechtigungen bearbeiten" + }, + "enterpriseTwoWaySyncStrategyType": { + "realtimePushDescription": "Ermöglicht die direkte Bearbeitung der Zellwerte in Baserow und überträgt sie in Echtzeit an die Datensynchronisationsquelle. Beachten Sie, dass die Änderungen nicht in Echtzeit gezogen werden, da sie auf den Abschluss der (periodischen) Synchronisationsaktion angewiesen sind. Es wird dringend empfohlen, Backups der PostgreSQL-Datenbank zu erstellen, um versehentliche Änderungen zu vermeiden." + }, + "dateDependencyModal": { + "errorTitle": "Datumsabhängigkeit", + "dependencyFieldTooltip": "Datumsabhängigkeiten konfigurieren", + "dependencyFieldTooltipError": "Eine Feldregel enthält einen Fehler", + "contextMenuItemLabel": "Datumsabhängigkeiten konfigurieren", + "title": "Datumsabhängigkeit für {tableName}", + "description": "Geben Sie an, welche Zeilen von anderen abhängen. Wenn eine Zeile umgeplant wird, werden ihre abhängigen Zeilen automatisch angepasst.", + "enableDateDependency": "Datumsabhängigkeiten für Projekte aktivieren", + "startDateFieldLabel": "Startdatum", + "endDateFieldLabel": "Enddatum", + "durationFieldLabel": "Dauer", + "durationFieldHint": "Dieses Feld muss das Format „d h“ verwenden.", + "dependencyLinkrowFieldLabel": "Vorgänger", + "dependencyLinkrowFieldHint": "Verwenden Sie ein Verknüpfung-mit-Tabelle-Feld, um eine Zeile mit ihren Vorgängern zu verbinden.", + "dependencyBufferTypeLabel": "Logik der Umplanung", + "durationBufferLabel": "Zeitpuffer", + "dependencyConnectionTypeLabel": "Typ", + "advancedSettingsLabel": "Erweiterte Einstellungen", + "includeWeekendsLabel": "Wochenenden bei der Berechnung der Dauer einbeziehen", + "dependencyFieldForReaderTooltip": "Dieses Feld ist in der Datumsabhängigkeits-Feldregel enthalten", + "fieldInvalidTitle": "Datumsabhängigkeits-Feldfehler", + "addNewField": "Neues Feld hinzufügen", + "linkRowFieldTitle": "Eltern" + }, + "dateDependency": { + "invalidChildRow": "Nachfolgerzeile ist ungültig", + "invalidParentRow": "Vorgängerzeile ist ungültig", + "invalidParentEndDateAfterChildStartDate": "Das Enddatum der Vorgängerzeile liegt nach dem Startdatum des Nachfolgers", + "invalidStartDateEmpty": "Startdatum ist leer", + "invalidEndDateEmpty": "Enddatum ist leer", + "invalidEndDateBeforeStartDate": "Enddatum liegt vor dem Startdatum", + "invalidDurationEmpty": "Dauer ist leer", + "invalidDurationValue": "Dauerwert ist nicht gültig", + "invalidDurationMismatch": "Dauerwert stimmt nicht überein" + }, + "viewOwnershipType": { + "restricted": "Eingeschränkt", + "restrictedDescription": "Bearbeiter und niedriger können nur die gefilterten Daten und sichtbaren Felder sehen. Es ist möglich, die Mitglieder zu verwalten." + }, + "databaseStep": { + "ai": "Kuma AI" + }, + "aiDatabaseOnboardingForm": { + "label": "Beschreiben Sie Ihre Datenbank", + "placeholder": "z.B. Erstellen Sie eine Lösung für Projektmanagement", + "description": "Beschreiben Sie, was Sie verfolgen möchten. Kuma erstellt die Tabellen und Felder.", + "exampleProjectTrackerName": "Projekt-Tracker", + "exampleProjectTrackerPrompt": "Erstellen Sie einen Projekt-Tracker mit Projekten, Aufgaben, Verantwortlichen, Status, Priorität, Fälligkeitsdaten und Abhängigkeiten.", + "exampleProductRoadmapName": "Produkt-Roadmap", + "exampleProductRoadmapPrompt": "Erstellen Sie eine Produkt-Roadmap mit Initiativen, Funktionen, Eigentümern, Status, Priorität, Zielquartal und Versionshinweisen.", + "exampleCompanyAssetTrackerName": "Firmen-Asset-Tracker", + "exampleCompanyAssetTrackerPrompt": "Erstellen Sie einen Asset-Tracker mit Assets, Kategorien, Seriennummern, Kaufdatum, Zugewiesen an, Standort und Garantieablauf.", + "exampleTeamCheckInsName": "Team-Check-ins", + "exampleTeamCheckInsPrompt": "Erstellen Sie einen wöchentlichen Team-Check-in-Tracker mit Teammitgliedern, Datum, Erfolgen, Hindernissen, Stimmung, Prioritäten und Folgemaßnahmen.", + "exampleBugTrackerName": "Bug-Tracker", + "exampleBugTrackerPrompt": "Erstellen Sie einen Bug-Tracker mit Bugs, Schweregrad, Status, Schritten zur Reproduktion, Umgebung, Melder, Zuständigem und Fix-Version." + }, + "aiDatabaseOnboardingStepType": { + "prompt": "Erstellen Sie eine Datenbank inklusive Tabellen, Feldern, Beispielzeilen und Beispielansichten, die dieser Beschreibung entsprechen: {prompt}" + }, + "assistantOnboardingMessage": { + "instructing": "Kuma wird angewiesen, Ihre Datenbank zu erstellen." } } diff --git a/enterprise/web-frontend/modules/baserow_enterprise/locales/es.json b/enterprise/web-frontend/modules/baserow_enterprise/locales/es.json index aeb5b64fa8..bb70f36659 100644 --- a/enterprise/web-frontend/modules/baserow_enterprise/locales/es.json +++ b/enterprise/web-frontend/modules/baserow_enterprise/locales/es.json @@ -308,7 +308,7 @@ "support": "Apoyo directo", "dataSync": "Sincronizar datos", "ssoContent": "Habilita inicios de sesión seguros y sin interrupciones con SAML, Google, Facebook, GitHub, GitLab o OpenID Connect. Admite varios proveedores a la vez. Ten en cuenta que tanto Baserow como herramienta, como el sistema de autenticación del creador de aplicaciones, soportan SSO.", - "rbacContent": "Gestiona permisos con precisión. Asigna roles como administrador, creador, editor, comentarista o espectador a nivel de espacio de trabajo, base de datos o tabla. También puedes gestionar el acceso por equipo.", + "rbacContent": "Gestiona permisos con precisión. Asigna roles como administrador, creador, editor, comentarista o espectador a nivel de espacio de trabajo, base de datos, tabla y vista. También puedes gestionar el acceso por equipo.", "auditLogsContent": "Rastrea todo lo que ocurre. Visualiza un historial completo de acciones en tu instancia o espacio de trabajo, filtrable por usuario, acción y más.", "dataSyncContent": "Mantén automáticamente las tablas actualizadas sincronizándolas con otras tablas de Baserow o con fuentes externas como Jira, GitHub, GitLab o HubSpot. También permite sincronizar de forma periódica y habilita la sincronización bidireccional de datos para los tipos de sincronización compatibles.", "coBrandingContent": "Personaliza la interfaz de Baserow con tu propio logo. Ten en cuenta que se añade “powered by Baserow”.", @@ -815,7 +815,7 @@ "resultsCountColumn": "Resultados", "viewResults": "Ver resultados", "results": "Ver {count} resultado|Ver {count} resultados", - "noResults": "Aún no hay resultados", + "noResults": "No se encontraron resultados", "resolveResult": "Resolver", "resultResolved": "Resuelto", "exportToCsv": "Exportar a CSV", @@ -828,7 +828,10 @@ "emptyTitle": "Aún no hay escaneos de datos", "emptyResultsTitle": "No se encontraron resultados", "emptyDescription": "Un escáner de datos te permite escanear automáticamente toda la instancia o espacios de trabajo específicos para verificar si se están utilizando patrones (como IBAN) o texto predefinido (como IDs médicas) en cualquier lugar.", - "emptyResultsDescription": "Aún no hay resultados de escaneo. Los resultados aparecerán aquí una vez que se haya ejecutado un escaneo de datos y se hayan encontrado coincidencias." + "emptyResultsDescription": "Aún no hay resultados de escaneo. Los resultados aparecerán aquí una vez que se haya ejecutado un escaneo de datos y se hayan encontrado coincidencias.", + "wholeWordsLabel": "Coincidencia", + "wholeWordsCheckbox": "Coincidir solo palabras completas", + "wholeWordsHelp": "Cuando está habilitado, el escáner solo coincide con palabras o tokens completos. Por ejemplo, 'DDDD' coincide con '1234' pero no con '12345'." }, "deleteDataScanModal": { "title": "Eliminar escaneo de datos", diff --git a/enterprise/web-frontend/modules/baserow_enterprise/locales/it.json b/enterprise/web-frontend/modules/baserow_enterprise/locales/it.json index ef8de14d3a..861ace450a 100644 --- a/enterprise/web-frontend/modules/baserow_enterprise/locales/it.json +++ b/enterprise/web-frontend/modules/baserow_enterprise/locales/it.json @@ -9,7 +9,7 @@ "overflowWarning": "Le licenze disponibili sono terminate. Imposta gli utenti come \"viewers\" per liberare le licenze necessarie." }, "clientHandler": { - "cannotDisableAllAuthProvidersTitle": "Ultimo provider attivo", + "cannotDisableAllAuthProvidersTitle": "Ultimo provider attivato", "cannotDisableAllAuthProvidersDescription": "Non è possibile disabilitare o cancellare l'ultimo provider attivo." }, "trashType": { @@ -388,5 +388,47 @@ }, "fileInputElementForm": { "fileTypesHelper": "Scegli quali estensioni di file sono consentite (una per riga) dall'input file (ad esempio jpg, png, svg, pdf). Puoi specificare image/*, video/* o audio/* per consentire tutti i file di questi tipi. Lascia vuoto per permettere tutti i tipi di file." + }, + "dataScanner": { + "wholeWordsCheckbox": "Riconosci solo parole intere", + "wholeWordsHelp": "Quando è attiva, la funzione di scansione rileva solo parole o token completi. Ad esempio, 'DDDD' corrisponde a '1234' ma non a '12345'.", + "workspaceScopeLabel": "Spazi di lavoro da scansionare", + "scanAllWorkspaces": "Scansiona tutti gli spazi di lavoro", + "filterByScan": "Filtra per scansionare", + "allScans": "Tutte le scansioni", + "scanNameColumn": "Scansiona", + "workspaceColumn": "Spazio di lavoro", + "databaseColumn": "Database", + "tableColumn": "Tabella", + "fieldColumn": "Campo", + "rowIdColumn": "ID Riga", + "matchedValueColumn": "Valore abbinato", + "firstIdentifiedColumn": "Prima identificazione", + "clearFilters": "Rimuovi filtri", + "addWorkspace": "Aggiungi uno spazio di lavoro", + "scanTypePattern": "Modello", + "scanTypeListOfValues": "Lista di valori", + "scanTypeListTable": "Tabella Baserow", + "lastRunColumn": "Ultima esecuzione", + "resultsCountColumn": "Risultati", + "viewResults": "Vedi risultati", + "results": "Visualizza {count} risultato|Visualizza i {count} risultati", + "noResults": "Nessun risultato trovato", + "resolveResult": "Risolvi", + "resultResolved": "Risolto", + "exportToCsv": "Esporta in CSV", + "exportModalTitle": "Esporta risultati in CSV", + "exportFilename": "risultati_scansione_dati_{date}.csv", + "exportFailedTitle": "Esportazione fallita", + "exportFailedDescription": "Il processo di esportazione è fallito. Per favore riprova.", + "exportCancelledTitle": "Esportazione cancellata", + "exportCancelledDescription": "Il processo di esportazione è stato cancellato.", + "emptyTitle": "Nessuna scansione dati ad ora", + "emptyDescription": "Una scansione dati ti permette di scansionare automaticamente l'intera istanza o specifici spazi di lavoro per verificare se modelli (come IBAN) o testo predefinito (come identificativi univoci) siano in uso.", + "emptyResultsTitle": "Nessun risultato trovato", + "emptyResultsDescription": "Non ci sono ancora risultati di scansione. I risultati appariranno qui dopo l'esecuzione di una scansione e l'individuazione di un riscontro." + }, + "deleteDataScanModal": { + "title": "Annulla scansione dati" } } diff --git a/enterprise/web-frontend/modules/baserow_enterprise/locales/ko.json b/enterprise/web-frontend/modules/baserow_enterprise/locales/ko.json index 372f13561b..265f8f1082 100644 --- a/enterprise/web-frontend/modules/baserow_enterprise/locales/ko.json +++ b/enterprise/web-frontend/modules/baserow_enterprise/locales/ko.json @@ -311,7 +311,7 @@ "chartWidget": "차트 위젯", "advancedWebhooks": "고급 웹훅", "ssoContent": "SAML, Google, Facebook, GitHub, GitLab, 또는 OpenID Connect를 통해 안전하고 간편한 로그인을 활성화하세요. 여러 인증 제공자를 동시에 지원합니다. Baserow 자체와 애플리케이션 빌더의 인증 시스템 모두 SSO(Single Sign-On)를 지원합니다.", - "rbacContent": "정밀하게 권한을 관리하세요. 작업공간, 데이터베이스, 또는 테이블 수준에서 관리자, 빌더, 편집자, 댓글 작성자, 보기 전용 사용자와 같은 역할을 지정할 수 있습니다. 팀 단위로 접근 권한을 관리하는 것도 가능합니다.", + "rbacContent": "권한을 정밀하게 관리하세요. 작업 공간, 데이터베이스, 테이블 및 보기 수준에서 관리자, 작성자, 편집자, 댓글 작성자 또는 보기 사용자 등의 역할을 할당할 수 있습니다. 팀별 액세스 관리도 가능합니다.", "advancedWebhooksContent": "행이 특정 보기에 들어올 때 웹훅을 트리거하세요. 필터 조건을 기반으로 워크플로를 자동화하는 데 유용합니다.", "auditLogsContent": "무슨 일이 일어났는지 모두 추적할 수 있어요. 인스턴스나 워크스페이스에서 이루어진 모든 작업 기록을 확인하고, 사용자나 작업 유형 등으로 손쉽게 필터링할 수 있습니다.", "dataSyncContent": "다른 Baserow 테이블이나 Jira, GitHub, GitLab, HubSpot 등의 외부 소스와 동기화하여 테이블을 자동으로 최신 상태로 유지합니다. 또한, 주기적인 동기화를 지원하고, 지원되는 데이터 동기화 유형에 대한 양방향 데이터 동기화를 지원합니다.", @@ -815,12 +815,12 @@ "resultsCountColumn": "결과", "viewResults": "결과 보기", "results": "{count} 결과 보기|{count} 결과 보기", - "noResults": "아직 결과가 없습니다", + "noResults": "검색 결과가 없습니다", "resolveResult": "해결하다", "resultResolved": "해결됨", "exportToCsv": "CSV 파일로 내보내기", "exportModalTitle": "결과를 CSV 파일로 내보내기", - "exportFilename": "data_scan_results_{date}.csv", + "exportFilename": "데이터_스캔_결과_{date}.csv", "exportFailedTitle": "내보내기 실패", "exportFailedDescription": "내보내기 작업이 실패했습니다. 다시 시도해 주세요.", "exportCancelledTitle": "내보내기 취소됨", @@ -830,7 +830,10 @@ "emptyResultsTitle": "검색 결과가 없습니다", "emptyResultsDescription": "아직 스캔 결과가 없습니다. 데이터 스캔이 실행되고 일치하는 항목이 발견되면 여기에 결과가 표시됩니다.", "neverRun": "실행하지 않음", - "runNow": "지금 실행" + "runNow": "지금 실행", + "wholeWordsLabel": "매칭", + "wholeWordsCheckbox": "단어 전체만 일치시키세요", + "wholeWordsHelp": "이 기능을 활성화하면 스캐너는 완전한 단어 또는 토큰만 일치시킵니다. 예를 들어 'DDDD'는 '1234'와 일치하지만 '12345'와는 일치하지 않습니다." }, "deleteDataScanModal": { "title": "데이터 삭제 스캔", diff --git a/premium/backend/src/baserow_premium/locale/de/LC_MESSAGES/django.po b/premium/backend/src/baserow_premium/locale/de/LC_MESSAGES/django.po index e4d3341e1d..d4e6f7bb69 100644 --- a/premium/backend/src/baserow_premium/locale/de/LC_MESSAGES/django.po +++ b/premium/backend/src/baserow_premium/locale/de/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-31 17:07+0000\n" +"POT-Creation-Date: 2026-03-16 21:52+0000\n" "PO-Revision-Date: 2023-03-07 14:56+0000\n" "Last-Translator: Alexander Haller \n" "Language-Team: German ", - "textError": "Der Wert ist ungültig.", - "textPlaceholder": "Text eingeben..." + "textError": "Der Wert ist ungültig." }, "textElement": { - "noValue": "Leerer Absatz...", "missingValue": "Fehlender Text...", "emptyValue": "Leerer Text..." }, @@ -187,200 +242,190 @@ "textFormatTypePlain": "Klartext", "textFormatTypeMarkdown": "Markdown" }, - "dataProviderType": { - "currentRecord": "Datenquelle", - "pageParameter": "Parameter", - "dataSource": "Datensätze", - "formData": "Formulardaten", - "user": "Benutzer", - "previousAction": "Vorherige Aktion", - "dataSourceContext": "Verfügbare Optionen" + "orientations": { + "label": "Ausrichtung", + "horizontal": "Horizontal", + "vertical": "Vertikal" + }, + "menuElement": { + "missingValue": "Fehlender Menüpunkt", + "separator": "Trenner", + "spacer": "Abstandshalter", + "missingLinkValue": "Fehlender Link-Name...", + "emptyLinkValue": "Leerer Link-Name...", + "missingButtonValue": "Fehlender Button-Name...", + "emptyButtonValue": "Leerer Button-Name..." + }, + "menuElementForm": { + "menuItemsLabel": "Menüpunkte", + "addMenuItemLink": "Hinzufügen...", + "alignment": "Ausrichtung", + "menuItemDefaultName": "Seite", + "menuItemLabelLabel": "Bezeichnung", + "menuItemTypeLabel": "Typ", + "menuItemTypeSeparator": "Trenner", + "menuItemVariantLabel": "Variante", + "menuItemVariantLink": "Verknüpfung", + "menuItemVariantButton": "Button", + "namePlaceholder": "Seite", + "addSubLink": "Unterlink hinzufügen", + "menuItemSubLinkDefaultName": "Unterlink", + "menuItemAddLink": "Verknüpfung", + "menuItemAddButton": "Button", + "menuItemAddSeparator": "Trenner", + "menuItemAddSpacer": "Abstandshalter", + "eventDescription": "Um Aktionen für diesen Button zu konfigurieren, öffnen Sie die Registerkarte „Ereignisse“ dieses Elements.", + "noMenuItemsMessage": "Klicken Sie auf 'Hinzufügen', um Ihren ersten Menüpunkt hinzuzufügen." + }, + "simpleContainerElementForm": { + "noConfigurationOptions": "Das Container-Element verfügt über keine Konfigurationsoptionen." }, - "pageErrors": { - "errorStartingSlash": "Ein Pfad muss mit '/' beginnen", - "errorUniquePathParams": "Pfad-Parameter müssen eindeutig sein.", - "errorPathNotUnique": "Es existiert bereits ein Pfad mit diesem Namen", - "errorValidPathCharacters": "Der Pfad enthält ungültige Zeichen", - "errorNameNotUnique": "Es existiert bereits eine Seite mit diesem Namen", - "errorUniqueValidQueryParams": "Die Namen der Abfrageparameter müssen eindeutig und gültig sein.", - "errorNameNotUniqueDescription": "Bitte geben Sie einen eindeutigen Namen für die Seite ein" + "imageElement": { + "missingValue": "Fehlender Alternativ-Text...", + "emptyValue": "Leerer Alternativ-Text..." }, - "publishActionModal": { - "title": "Veröffentlichen", - "publish": "Veröffentlichen", - "publishSucceedDescription": "Die Seite wurde erfolgreich veröffentlicht.", - "publishSucceedTitle": "Seite veröffentlicht", - "description": "Schalten Sie Ihre Anwendung live, indem Sie sie in einer der Domänen veröffentlichen. Beachten Sie, dass Ihre Anwendung mehrere Domänen haben kann, auf welchen jeweils eine andere Version der Anwendung läuft.", - "publishFailedTitle": "Veröffentlichung der Seite fehlgeschlagen", - "openInNewTab": "In neuem Tab öffnen", - "noDomain": "Sie benötigen mindestens eine Domäne, um Ihre Anwendung zu veröffentlichen.", - "publishFailedDescription": "Die Veröffentlichung der Seite ist fehlgeschlagen. Bitte versuchen Sie es später erneut.", - "importingState": "Importiere", - "publishSucceedLink": "Seite anzeigen", - "addDomain": "Domain hinzufügen" + "generalForm": { + "labelTitle": "Bezeichnung", + "labelPlaceholder": "Bezeichnung eingeben", + "valueTitle": "Wert", + "defaultValueTitle": "Standardwert", + "defaultValuePlaceholder": "Standardwert eingeben", + "valuePlaceholder": "Wert eingeben", + "placeholderTitle": "Platzhalter", + "placeholderPlaceholder": "Geben Sie einen Platzhalter ein", + "requiredTitle": "Erforderlich", + "validationTitle": "Überprüfung" }, - "pageActionTypes": { - "publish": "Veröffentlichen", - "preview": "Vorschau" + "inputTextElementForm": { + "multilineTitle": "Mehrzeilig", + "rowsTitle": "Zeilenanzahl", + "rowsPlaceholder": "Geben Sie die Anzahl der Zeilen für diese Eingabe ein", + "validationTypeAnyLabel": "Jeglich(e)", + "validationTypeAnyDescription": "Erlaubt die Eingabe eines beliebigen Wertes.", + "validationTypeIntegerLabel": "Zahl", + "validationTypeIntegerDescription": "Erzwinge einen Zahlenwert in diesem Eingabefeld (akzeptiert Ganzzahlen und Dezimalzahlen).", + "validationTypeEmailLabel": "E-Mailadresse", + "validationTypeEmailDescription": "Erzwinge eine E-Mailadresse in diesem Eingabefeld.", + "inputType": "Eingabetyp", + "inputTypeTextLabel": "Text", + "inputTypePasswordLabel": "Passwort", + "passwordTypeWarning": "Passwörter sind sensible Daten. Bitte geben Sie acht, wie Sie Passwörter in Ihrer Anwendung behandeln und speichern." + }, + "dateTimePickerElementForm": { + "includeTime": "Zeit einbeziehen", + "invalidDateError": "Ungültiges Datum. Bitte stellen Sie sicher, dass das eingegebene Datum dem angegebenen Format entspricht." + }, + "imageElementForm": { + "fileLabel": "Bild", + "invalidUrlError": "URL ist ungültig", + "altTextTitle": "Alternativer Text", + "altTextDescription": "Wird von Screen-Readern verwendet und angezeigt, wenn das Bild nicht geladen werden kann", + "fileSourceTypeUpload": "Hochladen", + "fileSourceTypeURL": "URL", + "urlWarning": "Hinweis: Bitte vergewissern Sie sich, dass Sie die Kontrolle über die eingegebene URL haben oder dieser vertrauen.", + "uploadFileButton": "Datei hochladen" + }, + "iframeElementForm": { + "missingValue": "Fehlende IFrame-Quelle...", + "emptyValue": "Leere IFrame-Quelle...", + "sourceTypeLabel": "Quellen-Typ", + "urlLabel": "URL", + "urlPlaceholder": "Link zur externen Ressource, welche eingebettet werden soll", + "urlHelp": "Hinweis: Bitte vergewissern Sie sich, dass Sie die Kontrolle über die eingegebene URL haben oder dieser vertrauen.", + "embedLabel": "Einbetten", + "embedPlaceholder": "Reiner HTML-Inhalt, der eingebettet werden soll", + "heightLabel": "Höhe (px)", + "heightPlaceholder": "Höhe in Pixeln" + }, + "columnElementForm": { + "columnAmountTitle": "Layout", + "verticalAlignment": "Vertikale Ausrichtung", + "columnAmountName": "keine Spalten | 1 Spalte | {columnAmount} Spalten", + "columnGapTitle": "Abstand zwischen den Spalten", + "columnGapPlaceholder": "Geben Sie den Abstand zwischen den Spalten ein..." }, "domainSettings": { - "noDomainMessage": "Sie haben noch keine Domäne mit dieser Anwendung verknüpft. Sie müssen eine Domäne hinzufügen, um Ihre Anwendung veröffentlichen zu können. Sie können verschiedene Versionen Ihrer Anwendung für jede hier aufgeführte Domäne veröffentlichen.", - "addDomain": "Domäne hinzufügen", "titleOverview": "Domänen", - "titleAddDomain": "Domäne hinzufügen" + "titleAddDomain": "Domäne hinzufügen", + "addDomain": "Domäne hinzufügen", + "noDomainMessage": "Sie haben noch keine Domäne mit dieser Anwendung verknüpft. Sie müssen eine Domäne hinzufügen, um Ihre Anwendung veröffentlichen zu können. Sie können verschiedene Versionen Ihrer Anwendung für jede hier aufgeführte Domäne veröffentlichen." }, - "domainCard": { - "detailLabel": "Details anzeigen", - "refresh": "Einstellungen neu laden" + "userSourceSettings": { + "titleAddUserSource": "Neue Benutzerquelle", + "titleUpdateUserSource": "Benutzerquelle bearbeiten", + "noUserSourceMessage": "Sie haben noch keine Benutzerquelle zu dieser Anwendung hinzugefügt. Sie müssen eine Benutzerquelle hinzufügen, wenn Sie möchten, dass die Benutzer Ihre Anwendung authentifizieren können.", + "titleOverview": "Benutzerquellen", + "addUserSource": "Benutzerquelle hinzufügen" + }, + "themeSettings": { + "titleOverview": "Theme" + }, + "generalSettings": { + "titleOverview": "Allgemein", + "labelForm": "Favicon", + "labelDescription": "Wählen Sie eine 128x128 Pixel große ICO-, PNG-, GIF- oder JPEG-Datei.", + "labelButton": "Favicon hochladen", + "cantUploadFaviconTitle": "Konnte die Favicon-Datei nicht hochladen", + "cantUploadFaviconDescription": "Leider konnte kein Favicon-Bild hochgeladen werden. Bitte stellen Sie sicher, dass die Bilddatei eindeutig ist und in einem der unterstützten Bildformate vorliegt.", + "cantUpdateApplicationTitle": "Konnte die Anwendung nicht aktualisieren", + "cantUpdateApplicationDescription": "Entschuldigung, konnte die Anwendung nicht aktualisieren." + }, + "dnsStatus": { + "description": "Rufe die DNS-Einstellungen deiner Domäne auf und mache folgende Änderungen", + "typeHeader": "Art", + "hostHeader": "Host", + "valueHeader": "Wert" + }, + "domainForm": { + "invalidDomain": "Der angegebene Name der Domäne ist ungültig", + "notUniqueDomain": "Die angegebene Domäne wird bereits verwendet" }, "customDomainForm": { "domainNameLabel": "Domänen-Name" }, + "subDomainForm": { + "domainNameLabel": "Domänen-Name" + }, "subDomainDetails": { "text": "Die DNS-Einstellungen der Domäne sind bereits konfiguriert und überprüft worden. Es funktioniert, ohne dass zusätzliche Änderungen vorgenommen werden müssen." }, + "domainCard": { + "refresh": "Einstellungen neu laden", + "detailLabel": "Details anzeigen", + "unpublishedDomainWarning": "Bitte veröffentlichen Sie die Anwendung, um sie auf dieser Domäne verfügbar zu machen." + }, "domainTypes": { - "subDomain": "Subdomain von {domain}", "customName": "Benutzerdefinierte Domäne", - "subDomainName": "Subdomain" - }, - "domainForm": { - "notUniqueDomain": "Die angegebene Domäne wird bereits verwendet", - "invalidDomain": "Der angegebene Name der Domäne ist ungültig" - }, - "formDataProviderType": { - "nodeMissing": "Fehlt" - }, - "lastPublishedDomainDate": { - "lastPublished": "Zuletzt veröffentlicht:", - "neverPublished": "nie" - }, - "subDomainForm": { - "domainNameLabel": "Domänen-Name" - }, - "dnsStatus": { - "description": "Rufe die DNS-Einstellungen deiner Domäne auf und mache folgende Änderungen", - "hostHeader": "Host", - "valueHeader": "Wert", - "typeHeader": "Art" - }, - "pathParamTypes": { - "textName": "Text", - "numericName": "Numerisch" - }, - "currentRecordDataProviderType": { - "index": "Index", - "firstPartName": "Datenquelle: {name}" + "subDomainName": "Subdomain", + "subDomain": "Subdomain von {domain}" }, - "updateUserSourceForm": { - "integrationFieldLabel": "Integration", - "nameFieldPlaceholder": "Einen Namen eingeben...", - "nameFieldLabel": "Name", - "authTitle": "Authentifizierung" - }, - "upsertRowWorkflowActionForm": { - "rowIdPlaceholder": "Wählen Sie eine Zeilen-ID aus", - "noTableSelectedMessage": "Wählen Sie eine Tabelle, um mit der Konfiguration Ihrer Felder zu beginnen.", - "rowIdLabel": "Zeilen-ID", - "fieldMappingPlaceholder": "Wählen Sie einen Feldwert", - "integrationDropdownLabel": "Integration" - }, - "checkboxElementForm": { - "labelTitle": "Bezeichnung", - "valueTitle": "Standardwert", - "requiredTitle": "Erforderlich" + "linkElement": { + "missingValue": "Fehlender Link-Text...", + "emptyValue": "Leerer Link-Text..." }, - "linkElementForm": { + "linkNavigationSelection": { + "navigateTo": "Navigieren zu", + "navigateToCustom": "Benutzerdefinierte URL", + "paramPlaceholder": "Geben Sie einen Wert ein...", + "urlPlaceholder": "Geben Sie eine URL ein...", + "url": "Ziel-URL", + "paramsInErrorDescription": "Die gespeicherten Parameter stimmen nicht mit den Seitenparametern überein. Die Seite wurde wahrscheinlich gelöscht oder aktualisiert.", + "paramsInErrorButton": "Parameter aktualisieren", "target": "Öffnen in...", "targetSelf": "Gleicher Tab", - "targetNewTab": "Neuer Tab", + "targetNewTab": "Neuer Tab" + }, + "linkElementForm": { "text": "Text", "textPlaceholder": "Text eingeben...", "variant": "Variante", "variantLink": "Verknüpfung", - "buttonColor": "Buttonfarbe", - "variantButton": "Button" - }, - "dataSourceForm": { - "namePlaceholder": "Quellenname", - "servicePlaceholder": "Wählen Sie einen Dienst aus", - "integrationPlaceholder": "Wählen Sie eine Integration aus", - "errorUniqueName": "Der Name der Datenquelle muss eindeutig sein.", - "nameLabel": "Name", - "actionLabel": "Aktion", - "integrationLabel": "Integration" - }, - "dataSourceContext": { - "addDataSource": "Neue Datenquelle hinzufügen", - "noDataSourceTitle": "Sie haben noch keine Datenquellen hinzugefügt.", - "noDataSourceMessage": "Datenquellen können verwendet werden, um Daten aus internen oder externen Quellen abzurufen und auf der Seite anzuzeigen.", - "pageDataSourceTitle": "Für diese Seite", - "pageDataSourceDescription": "Wird abgerufen, wenn der Benutzer auf diese Seite navigiert.", - "sharedDataSourceTitle": "Zwischen Seiten geteilt", - "sharedDataSourceDescription": "Ist auf jeder Seite verfügbar und wird einmalig beim ersten Laden der Seite abgerufen." - }, - "imageElement": { - "emptyState": "Kein alternativer Text festgelegt...", - "emptyValue": "Leerer Alternativ-Text...", - "missingValue": "Fehlender Alternativ-Text..." - }, - "imageElementForm": { - "fileSourceTypeURL": "URL", - "fileLabel": "Bild", - "invalidUrlError": "URL ist ungültig", - "fileSourceTypeUpload": "Hochladen", - "altTextTitle": "Alternativer Text", - "uploadFileButton": "Datei hochladen", - "altTextDescription": "Wird von Screen-Readern verwendet und angezeigt, wenn das Bild nicht geladen werden kann", - "urlWarning": "Hinweis: Bitte vergewissern Sie sich, dass Sie die Kontrolle über die eingegebene URL haben oder dieser vertrauen.", - "maxWidthLabel": "Maximale Breite", - "maxHeightLabel": "Maximale Höhe", - "maxHeightPlaceholder": "Geben Sie eine maximale Höhe in Pixeln ein.", - "maxWidthPlaceholder": "Geben Sie eine maximale Breite in Prozent an.", - "imageConstraintsLabel": "Beschränkungen", - "imageConstraintCoverDisabled": "Nicht verfügbar mit leerer maximaler Höhe.", - "imageConstraintFullWidth": "Auf maximale Breite ausweiten", - "imageConstraintContainDisabled": "Nicht verfügbar mit gesetzter maximaler Höhe.", - "imageConstraintCover": "Cover", - "imageConstraintContain": "Contain" - }, - "columnElementForm": { - "columnAmountTitle": "Layout", - "columnGapPlaceholder": "Geben Sie den Abstand zwischen den Spalten ein...", - "columnAmountName": "keine Spalten | 1 Spalte | {columnAmount} Spalten", - "columnGapTitle": "Abstand zwischen den Spalten", - "verticalAlignment": "Vertikale Ausrichtung" - }, - "linkElement": { - "noValue": "Unbenannt..." - }, - "horizontalAlignmentSelector": { - "alignmentRight": "Rechtsbündig", - "alignmentCenter": "Zentrieren", - "alignmentLeft": "Links", - "alignment": "Horizontale Ausrichtung" - }, - "verticalAlignmentSelector": { - "alignment": "Vertikale Ausrichtung", - "alignmentTop": "Oben", - "alignmentBottom": "Unten", - "alignmentCenter": "Mittig" - }, - "elementForms": { - "textInputPlaceholder": "Text eingeben...", - "invalidFormula": "Die Formel ist ungültig", - "urlInputPlaceholder": "URL eingeben..." - }, - "userSourceSettings": { - "addUserSource": "Benutzerquelle hinzufügen", - "titleUpdateUserSource": "Benutzerquelle bearbeiten", - "titleOverview": "Benutzerquellen", - "noUserSourceMessage": "Sie haben noch keine Benutzerquelle zu dieser Anwendung hinzugefügt. Sie müssen eine Benutzerquelle hinzufügen, wenn Sie möchten, dass die Benutzer Ihre Anwendung authentifizieren können.", - "titleAddUserSource": "Neue Benutzerquelle" + "variantButton": "Button", + "buttonColor": "Buttonfarbe" }, "widthSelector": { - "widthAuto": "Auto", "width": "Breite", + "widthAuto": "Auto", "widthFull": "Volle Breite" }, "backgroundTypes": { @@ -388,20 +433,70 @@ "color": "Farbe" }, "widthTypes": { - "full": "Volle Breite", + "fullBleed": "Voller Beschnitt", + "fullWidth": "Volle Breite", "normal": "Normal", - "small": "Schmal", "medium": "Mittel", - "fullWidth": "Volle Breite", - "fullBleed": "Voller Beschnitt" + "small": "Schmal" + }, + "horizontalAlignmentSelector": { + "alignmentLeft": "Links", + "alignmentCenter": "Zentrieren", + "alignmentRight": "Rechtsbündig" + }, + "verticalAlignmentSelector": { + "alignmentTop": "Oben", + "alignmentCenter": "Mittig", + "alignmentBottom": "Unten" }, "pageSettingsTypes": { "pageName": "Seite" }, + "pageVisibilitySettingsTypes": { + "pageName": "Sichtbarkeit", + "logInPageWarningTitle": "Die Anmeldeseite ist nicht festgelegt", + "logInPagewarningMessage": "Wenn ein anonymer Benutzer versucht, auf diese Seite zuzugreifen, wird er zu einer Anmeldeseite weitergeleitet. Bitte legen Sie die Anmeldeseite in den allgemeinen Einstellungen der Anwendung fest.", + "logInPageInfoTitle": "Anonyme Benutzer werden weitergeleitet", + "logInPageInfoMessage": "Anonyme Benutzer, die versuchen, auf diese Seite zuzugreifen, werden zur Seite {logInPageName} weitergeleitet." + }, "pageSettings": { - "pageUpdatedDescription": "Die Seiteneinstellungen wurden geändert.", "title": "Seite", - "pageUpdatedTitle": "Geändert" + "pageUpdatedTitle": "Geändert", + "pageUpdatedDescription": "Die Seiteneinstellungen wurden geändert." + }, + "pageVisibilitySettings": { + "title": "Sichtbarkeit", + "allVisitors": "Alle Besucher", + "loggedInVisitors": "Eingeloggte Besucher", + "description": "Wer darf diese Seite sehen" + }, + "pageForm": { + "defaultName": "Seite", + "nameTitle": "Name", + "nameSubtitle": "Eindeutiger Name der Seite", + "namePlaceholder": "Geben Sie einen Namen ein...", + "pathTitle": "Pfad", + "addAnotherParameter": "Einen weiteren Abfrageparameter hinzufügen", + "addParameter": "Einen Abfrageparameter hinzufügen", + "queryParamsSubtitleTutorial": "Abfrageparameter können verwendet werden, um Daten abhängig von dem angegebenen Parameter dynamisch zu laden.", + "pathSubtitle": "Ein Parameter kann über :parameter hinzugefügt werden", + "pathPlaceholder": "Geben Sie einen Pfad ein...", + "pathParamsTitle": "Pfad-Parameter", + "queryParamsTitle": "Abfrageparameter", + "pathParamsSubtitle": "Werden durch :parameter im Pfad definiert", + "pathParamsSubtitleTutorial": "Pfad-Parameter können verwendet werden, um Daten dynamisch zu laden, abhängig von dem angegebenen Parameter. Fügen Sie :parameter zum Pfad hinzu, um einen hinzuzufügen." + }, + "pathParamTypes": { + "textName": "Text", + "numericName": "Numerisch" + }, + "queryParamTypes": { + "textName": "Text", + "numericName": "Numerisch" + }, + "pageEditor": { + "title": "Anwendungs-Builder", + "pageNotFound": "Seite nicht gefunden" }, "publicPage": { "siteNotFound": "Seite nicht gefunden", @@ -411,178 +506,210 @@ "authorizedToastTitle": "Authentifizierung erforderlich", "authorizedToastMessage": "Sie müssen angemeldet sein, um auf diese Seite zugreifen zu können. Bitte loggen Sie sich ein, um fortzufahren." }, + "integrationSettings": { + "title": "Integrationen", + "noIntegrationMessage": "Sie haben noch keine Integrationen erstellt. Diese können hinzugefügt werden, indem Sie eine Datenquelle, Aktion oder Benutzer-Authentifizierung hinzufügen.", + "integrationMessage": "Sie können neue Integrationen erstellen, indem Sie eine Datenquelle, Aktion oder Benutzer-Authentifizierung hinzufügen." + }, + "dataSourceForm": { + "namePlaceholder": "Quellenname", + "nameLabel": "Name", + "actionLabel": "Aktion", + "integrationLabel": "Integration", + "servicePlaceholder": "Wählen Sie einen Dienst aus", + "integrationPlaceholder": "Wählen Sie eine Integration aus", + "errorUniqueName": "Der Name der Datenquelle muss eindeutig sein." + }, + "dataSourceContext": { + "addDataSource": "Neue Datenquelle hinzufügen", + "noDataSourceTitle": "Sie haben noch keine Datenquellen hinzugefügt.", + "noDataSourceMessage": "Datenquellen können verwendet werden, um Daten aus internen oder externen Quellen abzurufen und auf der Seite anzuzeigen.", + "sharedDataSourceTitle": "Zwischen Seiten geteilt", + "pageDataSourceTitle": "Für diese Seite", + "sharedDataSourceDescription": "Ist auf jeder Seite verfügbar und wird einmalig beim ersten Laden der Seite abgerufen.", + "pageDataSourceDescription": "Wird abgerufen, wenn der Benutzer auf diese Seite navigiert." + }, + "dataSourceItem": { + "notConfigured": "Nicht konfiguriert" + }, + "dataSourceItemContext": { + "shareBetweenPages": "Teilen zwischen Seiten", + "unshareBetweenPages": "Freigabe auf anderen Seiten aufheben" + }, + "dataSourceCreateEditModal": { + "editTitle": "Datenquelle bearbeiten", + "createTitle": "Datenquelle erstellen", + "sharedWarning": "Diese Datenquelle wird gemeinsam genutzt, so dass sich Ihre Änderungen auf mehrere Seiten auswirken können." + }, "defaultStyleForm": { - "backgroundLabel": "Hintergrund", - "backgroundColor": "Hintergrundfarbe", - "widthLabel": "Breite", "boxTop": "Oben", "boxBottom": "Unten", "boxLeft": "Links", "boxRight": "Rechts", + "backgroundLabel": "Hintergrund", + "backgroundColor": "Hintergrundfarbe", + "widthLabel": "Breite", "backgroundImage": "Bild", - "backgroundImageMode": "Füllmodus" + "backgroundImageMode": "Füllmodus", + "cssClasses": "CSS-Klassen", + "cssClassesHelp": "Geben Sie eine durch Leerzeichen getrennte Liste von Klassen für dieses Element ein, die im generierten HTML erscheinen.", + "cssClassesPlaceholder": "CSS-Klassen eingeben..." }, "styleBoxForm": { + "borderColor": "Rahmenfarbe", "borderLabel": "Größe", "paddingLabel": "Innenabstand", - "borderColor": "Rahmenfarbe", "marginLabel": "Rand" }, - "mainThemeConfigBlock": { - "colorsLabel": "Farben", - "primaryColor": "Primär", - "headingLabel": "Überschrift {i} (h{i})", - "secondaryColor": "Sekundär", - "typography": "Typografie", - "headingValue": "Überschrift " - }, - "tableElementForm": { - "itemsPerPage": "Elemente pro Seite", - "fieldValuePlaceholder": "Wert eingeben...", - "fields": "Felder", - "fieldDefaultName": "Spalte", - "dataSource": "Datenquelle", - "fieldValueLabel": "Wert", - "addField": "Feld hinzufügen", - "fieldType": "Typ", - "itemsPerPagePlaceholder": "Wert eingeben...", - "selectSourceFirst": "Wählen Sie eine Datenquelle und/oder Eigenschaft, um mit der Konfiguration Ihrer Felder zu beginnen.", - "buttonColor": "Buttonfarbe", - "refreshFieldsFromDataSource": "Felder aus der Datenquelle aktualisieren", - "orientation": "Ausrichtung", - "name": "Name", - "propertySelectorMissingArrays": "Keine Felder mit mehreren Werten gefunden, die als Zeilen verwendet werden können.", - "orientationHorizontal": "Horizontal", - "orientationVertical": "Vertikal", - "buttonLoadMoreLabel": "Mehr anzeigen-Beschriftung" + "radiusStyleForm": { + "cornerRadiusLabel": "Eckradius", + "backgroundRadiusLabel": "Hintergrund", + "borderRadiusLabel": "Rahmen" }, - "tableElement": { - "empty": "Es wurden keine Elemente gefunden.", - "showMore": "Mehr anzeigen" + "themeConfigBlockType": { + "color": "Farben", + "page": "Seite", + "typography": "Typografie", + "button": "Button", + "link": "Verknüpfung", + "image": "Bild", + "input": "Eingabefeld", + "table": "Tabelle" }, - "workflowActionTypes": { - "createRowLabel": "Zeile erstellen", - "openPageLabel": "Seite öffnen", - "updateRowLabel": "Zeile aktualisieren", - "notificationLabel": "Benachrichtigung anzeigen", - "logoutLabel": "Abmelden", - "refreshDataSourceLabel": "Datenquelle aktualisieren" + "colorThemeConfigBlock": { + "transparent": "Transparent", + "primaryColor": "Primär", + "secondaryColor": "Sekundär", + "borderColor": "Rahmen", + "successColor": "Erfolgreich", + "warningColor": "Warnung", + "errorColor": "Fehler", + "customColors": "Benutzerdefinierte Farben", + "addCustomColor": "Benutzerdefinierte Farbe hinzufügen", + "customColorPrefix": "Benutzerdefiniert" }, - "notificationWorkflowActionForm": { - "titleLabel": "Titel", - "titlePlaceholder": "Text eingeben...", - "descriptionLabel": "Beschreibung", - "descriptionPlaceholder": "Text eingeben..." + "pageThemeConfigBlock": { + "backgroundColor": "Hintergrundfarbe", + "backgroundImage": "Hintergrundbild", + "backgroundMode": "Hintergrundmodus" }, - "openPageWorkflowActionForm": { - "urlPlaceholder": "Text eingeben...", - "urlLabel": "URL" + "colorThemeConfigBlockType": { + "transparent": "Transparent", + "primary": "Primär", + "secondary": "Sekundär", + "border": "Rahmen", + "success": "Erfolgreich", + "warning": "Warnung", + "error": "Fehler" }, - "event": { - "addAction": "Aktion hinzufügen" + "typographyThemeConfigBlock": { + "headingLabel": "Überschrift {i} (h{i})", + "headingValue": "Überschrift ", + "color": "Farbe", + "size": "Größe", + "weight": "Gewicht", + "textAlignment": "Ausrichtung", + "bodyLabel": "Body", + "decoration": "Textdekoration", + "fontFamily": "Schriftart" }, - "collectionFieldType": { - "text": "Text", - "link": "Verknüpfung", - "boolean": "Boolesch", - "tags": "Tags" - }, - "linkFieldForm": { - "fieldLinkNamePlaceholder": "Wert eingeben...", - "fieldValueLabel": "URL", - "fieldLinkNameLabel": "Verknüpfungstext", - "fieldValuePlaceholder": "Wert eingeben...", - "buttonColor": "Buttonfarbe" - }, - "createUserSourceForm": { - "userSourceType": "Typ", - "userSourceIntegration": "Integration", - "userSourceName": "Name" - }, - "formContainerElementForm": { - "submitButtonLabel": "Absenden-Button", - "submitButtonPlaceholder": "Wert eingeben...", - "buttonColor": "Buttonfarbe", - "resetToInitialValuesTitle": "Nach der Übermittlung auf Standardwerte zurücksetzen", - "resetToInitialValuesDescription": "Wenn diese Option aktiviert ist, werden die Standardwerte des Formulars verwendet, um das Formular nach erfolgreicher Übermittlung zurückzusetzen. Falls der Haken nicht gesetzt ist, bleiben die Werte des Benutzers erhalten." - }, - "dispatchWorkflowActionError": { - "defaultTitle": "Ereignisfehler", - "defaultMessage": "Beim Auslösen des Ereignisses ist ein Fehler aufgetreten.", - "formDataInvalidTitle": "Ungültiges Formular", - "formDataInvalidMessage": "Ein oder mehrere Felder enthalten ungültige Werte." - }, - "textFieldForm": { - "fieldValuePlaceholder": "Wert eingeben...", - "fieldValueLabel": "Wert" - }, - "generalForm": { - "valuePlaceholder": "Geben Sie einen Standardwert ein (optional)", - "placeholderPlaceholder": "Geben Sie einen Platzhalter ein (optional)", - "requiredTitle": "Erforderlich", - "labelPlaceholder": "Geben Sie eine Bezeichnung ein (optional)", - "labelTitle": "Bezeichnung", - "valueTitle": "Standardwert", - "placeholderTitle": "Platzhalter", - "validationTitle": "Überprüfung" + "fontWeightType": { + "thin": "Dünn", + "extraLight": "Extra-leicht", + "light": "Leicht", + "regular": "Regulär", + "medium": "Mittel", + "semiBold": "Semi-Bold", + "bold": "Fett", + "extraBold": "Extra-Bold", + "black": "Black", + "extraBlack": "Extra-Black" }, - "iframeElementForm": { - "urlHelp": "Hinweis: Bitte vergewissern Sie sich, dass Sie die Kontrolle über die eingegebene URL haben oder dieser vertrauen.", - "empty": "Leerer iFrame...", - "sourceTypeLabel": "Quellen-Typ", - "urlPlaceholder": "Link zur externen Ressource, welche eingebettet werden soll", - "embedLabel": "Einbetten", - "embedPlaceholder": "Reiner HTML-Inhalt, der eingebettet werden soll", - "heightLabel": "Höhe (px)", - "heightPlaceholder": "Höhe in Pixeln", - "urlLabel": "URL", - "missingValue": "Fehlende IFrame-Quelle...", - "emptyValue": "Leere IFrame-Quelle..." + "buttonThemeConfigBlock": { + "backgroundColor": "Hintergrundfarbe", + "button": "Button", + "defaultState": "Standard-Zustand", + "hoverState": "Hover-Zustand", + "activeState": "Aktiver Zustand", + "textAlignment": "Textausrichtung", + "alignment": "Ausrichtung", + "width": "Breite", + "textColor": "Textfarbe", + "borderColor": "Rahmenfarbe", + "borderSize": "Rahmengröße", + "borderRadius": "Rahmen-Radius", + "padding": "Innenabstand", + "fontFamily": "Schriftart", + "size": "Schriftgröße", + "weight": "Schriftgewicht" }, - "linkNavigationSelection": { - "navigateToCustom": "Benutzerdefinierte URL", - "paramPlaceholder": "Geben Sie einen Wert ein...", - "urlPlaceholder": "Geben Sie eine URL ein...", - "navigateTo": "Navigieren zu", - "url": "Ziel-URL", - "paramsInErrorDescription": "Die gespeicherten Parameter stimmen nicht mit den Seitenparametern überein. Die Seite wurde wahrscheinlich gelöscht oder aktualisiert.", - "paramsInErrorButton": "Parameter aktualisieren", - "targetSelf": "Gleicher Tab", - "targetNewTab": "Neuer Tab", - "target": "Öffnen in..." + "linkThemeConfigBlock": { + "color": "Farbe", + "link": "Link", + "defaultState": "Standard-Zustand", + "hoverState": "Hover-Zustand", + "activeState": "Aktiver Zustand", + "alignment": "Ausrichtung", + "fontFamily": "Schriftart", + "size": "Schriftgröße", + "weight": "Schriftgewicht", + "decoration": "Textdekoration" }, - "integrationSettings": { - "noIntegrationMessage": "Sie haben noch keine Integrationen erstellt. Diese können hinzugefügt werden, indem Sie eine Datenquelle, Aktion oder Benutzer-Authentifizierung hinzufügen.", - "title": "Integrationen", - "integrationMessage": "Sie können neue Integrationen erstellen, indem Sie eine Datenquelle, Aktion oder Benutzer-Authentifizierung hinzufügen." + "inputThemeConfigBlock": { + "label": "Beschriftung", + "input": "Eingabe", + "backgroundColor": "Hintergrundfarbe", + "textColor": "Textfarbe", + "borderColor": "Rahmenfarbe", + "borderSize": "Rahmengröße", + "borderRadius": "Rahmen-Radius", + "padding": "Innenabstand", + "fontFamily": "Schriftart", + "size": "Schriftgröße", + "weight": "Schriftgewicht" }, - "pagePreview": { - "emptyMessage": "Anklicken, um ein Element zu erstellen", - "footer": "FUSSBEREICH", - "header": "KOPFBEREICH" + "imageThemeConfigBlock": { + "alignment": "Ausrichtung", + "maxWidthLabel": "Maximale Breite", + "maxHeightLabel": "Maximale Höhe", + "maxHeightPlaceholder": "Geben Sie die maximale Höhe ein", + "maxWidthPlaceholder": "Geben Sie die maximale Breite ein", + "imageConstraintsLabel": "Beschränkungen", + "imageConstraintFullWidth": "Auf maximale Breite ausweiten", + "imageConstraintCover": "Cover", + "imageConstraintCoverDisabled": "Nicht verfügbar bei leerer maximaler Höhe.", + "imageConstraintContain": "Contain", + "imageConstraintContainDisabled": "Nicht verfügbar mit maximaler Höhe.", + "imageBorderRadiusLabel": "Randradius", + "imageBorderRadiusPlaceholder": "Geben Sie den Bildrand-Radius ein." }, - "inputTextElementForm": { - "multilineTitle": "Mehrzeilig", - "rowsTitle": "Zeilenanzahl", - "rowsPlaceholder": "Geben Sie die Anzahl der Zeilen für diese Eingabe ein", - "validationTypeAnyLabel": "Jeglich(e)", - "validationTypeIntegerLabel": "Zahl", - "validationTypeAnyDescription": "Erlaubt die Eingabe eines beliebigen Wertes.", - "validationTypeIntegerDescription": "Erzwinge einen Zahlenwert in diesem Eingabefeld.", - "validationTypeEmailLabel": "E-Mailadresse", - "validationTypeEmailDescription": "Erzwinge eine E-Mailadresse in diesem Eingabefeld.", - "inputType": "Eingabetyp", - "inputTypeTextLabel": "Text", - "passwordTypeWarning": "Passwörter sind sensible Daten. Bitte geben Sie acht, wie Sie Passwörter in Ihrer Anwendung behandeln und speichern.", - "inputTypePasswordLabel": "Passwort" + "tableThemeConfigBlock": { + "borderColor": "Rahmenfarbe", + "backgroundAlternateColor": "Gerade Zeilenfarbe", + "backgroundColor": "Hintergrundfarbe", + "textColor": "Textfarbe", + "borderSize": "Rahmengröße", + "borderRadius": "Rahmen-Radius", + "padding": "Innenabstand", + "fontFamily": "Schriftart", + "size": "Größe", + "fontSize": "Schriftgröße", + "fontWeight": "Schriftgewicht", + "table": "Tabelle", + "header": "Kopfbereich", + "alignment": "Ausrichtung", + "cells": "Zellen", + "separators": "Trennelemente", + "verticalSeparatorColor": "Vertikale Farbe", + "verticalSeparatorSize": "Vertikale Größe", + "horizontalSeparatorColor": "Horizontale Farbe", + "horizontalSeparatorSize": "Horizontale Größe" }, "buttonElementForm": { - "valuePlaceholder": "Text eingeben...", - "buttonColor": "Buttonfarbe", - "valueLabel": "Button-Text" + "valueLabel": "Button-Text", + "valuePlaceholder": "Text eingeben..." }, "buttonElement": { - "noValue": "Unbenannt...", "missingValue": "Fehlender Button-Text...", "emptyValue": "Leerer Button-Text..." }, @@ -597,51 +724,135 @@ "fontSidePanelForm": { "label": "Schriftfarbe" }, - "dropdownOptionSelector": { - "label": "Optionen", - "value": "Wert", - "addOption": "Option hinzufügen", - "name": "Name" + "choiceElementForm": { + "multiple": "Mehrere Werte zulassen", + "display": "Anzeige", + "dropdown": "Drop-Down", + "checkbox": "Kontrollfeld", + "radio": "Option" }, - "linkField": { - "details": "Details" + "dropdown": { + "empty": "Keine Optionen verfügbar" }, - "userSourceUsersContext": { - "searchPlaceholder": "Benutzer suchen", - "anonymous": "Anonym", - "unnamed": "Unbenannt", - "noEmail": "Keine E-Mailadresse" + "tableElementForm": { + "dataSource": "Datenquelle", + "fields": "Felder", + "fieldValueLabel": "Wert", + "addField": "Feld hinzufügen", + "fieldValuePlaceholder": "Wert eingeben...", + "itemsPerPage": "Elemente pro Seite", + "fieldDefaultName": "Spalte", + "name": "Name", + "noName": "Kein Name", + "fieldType": "Typ", + "itemsPerPagePlaceholder": "Wert eingeben...", + "selectSourceFirst": "Wählen Sie eine Datenquelle und/oder Eigenschaft, um mit der Konfiguration Ihrer Felder zu beginnen.", + "buttonColor": "Buttonfarbe", + "refreshFieldsFromDataSource": "Felder aus der Datenquelle aktualisieren", + "buttonLoadMoreLabel": "Mehr anzeigen-Beschriftung", + "propertySelectorMissingArrays": "Keine Felder mit mehreren Werten gefunden, die als Zeilen verwendet werden können." }, - "imageInput": { - "labelDescription": "Standardbeschreibung", - "labelButton": "Hochladen" + "tableElement": { + "showMore": "Mehr anzeigen" }, - "generalSettings": { - "labelDescription": "Wählen Sie eine 128x128 Pixel große ICO-, PNG-, GIF- oder JPEG-Datei.", - "titleOverview": "Allgemein", - "labelForm": "Favicon", - "cantUploadFaviconTitle": "Konnte die Favicon-Datei nicht hochladen", - "labelButton": "Favicon hochladen", - "cantUpdateApplicationTitle": "Konnte die Anwendung nicht aktualisieren", - "cantUploadFaviconDescription": "Leider konnte kein Favicon-Bild hochgeladen werden. Bitte stellen Sie sicher, dass die Bilddatei eindeutig ist und in einem der unterstützten Bildformate vorliegt.", - "cantUpdateApplicationDescription": "Entschuldigung, konnte die Anwendung nicht aktualisieren." + "abTable": { + "loading": "Wird geladen...", + "empty": "Es wurden keine Elemente gefunden." }, "repeatElement": { + "empty": "Es wurden keine Elemente gefunden.", "showMore": "Mehr anzeigen", "missingDataSourceTooltip": "Wählen Sie eine Datenquelle, um mit dem Hinzufügen von Elementen zu beginnen.", - "empty": "Es wurden keine Elemente gefunden.", - "emptyState": "Keine Einträge gefunden.", - "missingSchemaPropertyTooltip": "Wählen Sie eine Eigenschaft, um mit dem Hinzufügen von Elementen zu beginnen." + "missingSchemaPropertyTooltip": "Wählen Sie eine Eigenschaft, um mit dem Hinzufügen von Elementen zu beginnen.", + "emptyState": "Keine Einträge gefunden." + }, + "collectionElementForm": { + "noDataSourceMessage": "Wählen Sie eine Datenquelle mit mehreren Zeilen, um alle Ergebnisse aufzulisten, oder eine einzeilige Datenquelle, um eine Eigenschaft innerhalb dieser Zeile auszuwählen.", + "noSchemaPropertyMessage": "Wählen Sie eine Eigenschaft in der Datenquelle, die Sie als Listendaten für Ihr Element verwenden möchten.", + "propertyOptionLabel": "Benutzeraktionen" + }, + "propertyOptionForm": { + "fieldHeading": "Feld", + "filterHeading": "Filter", + "sortHeading": "Sortierung", + "searchHeading": "Suche", + "optionUnavailable": "Nicht verfügbar", + "noPropertiesAvailable": "Keine Felder verfügbar.", + "formDescription": "Wählen Sie aus, welche Eigenschaften innerhalb der Datenquelle dieses Elements von Seitenbesuchern gefiltert, sortiert und durchsucht werden können." }, "repeatElementForm": { "dataSource": "Datenquelle", "itemsPerPage": "Elemente pro Seite", + "itemsPerPagePlaceholder": "Wert eingeben...", "itemsPerRowLabel": "Elemente pro Zeile", - "orientationHorizontal": "Horizontal", + "itemsPerRowDescription": "Anzahl der Spalten pro Zeile und Gerätetyp.", + "buttonLoadMoreLabel": "Mehr anzeigen-Beschriftung", + "toggleEditorRepetitionsLabel": "Wiederholungen vorübergehend deaktivieren", + "propertySelectorMissingArrays": "Keine Felder mit mehreren Werten gefunden, mit denen wiederholt werden kann.", + "gapLabel": "Abstand zwischen Wiederholungen", + "gapVerticalLabel": "Vertikal", + "gapHorizontalLabel": "Horizontal" + }, + "recordSelectorElement": { + "emptyAdhocState": "Keine Datensätze gefunden, die '{query}' entsprechen.", + "emptyState": "Keine Einträge gefunden." + }, + "recordSelectorElementForm": { + "selectRecordsFrom": "Datensätze auswählen aus", + "noDataSourceMessage": "Wählen Sie eine Datenquelle mit mehreren Zeilen, um alle Ergebnisse aufzulisten.", + "optionNameSuffix": "Suffix für Optionsnamen", + "optionNameSuffixPlaceholder": "Geben Sie ein Suffix ein...", + "optionNameSuffixHelper": "Dieses Suffix wird beim Öffnen des Dropdowns an jeden Optionsnamen angehängt und hilft dabei, sie zu unterscheiden.", + "itemsPerPage": "Elemente pro Seite", "itemsPerPagePlaceholder": "Wert eingeben...", - "itemsPerRowDescription": "Legen Sie für jeden Gerätetyp fest, wie viele Wiederholungen pro Zeile erfolgen sollen.", - "orientationLabel": "Ausrichtung", - "orientationVertical": "Vertikal" + "multipleLabel": "Mehrere Werte zulassen", + "record": "Datensatz {id}" + }, + "currentRecordDataProviderType": { + "index": "Index", + "firstPartName": "Datenquelle: {name}", + "schemaProperty": "{prefixName}: {schemaProperty}" + }, + "workflowActionTypes": { + "notificationLabel": "Benachrichtigung anzeigen", + "openPageLabel": "Seite öffnen", + "logoutLabel": "Abmelden", + "refreshDataSourceLabel": "Datenquelle aktualisieren", + "httpRequest": "HTTP-Anfrage senden", + "errorNavigateToPageMissing": "Fehlende Eigenschaft \"Navigieren zu\"", + "errorPageParameterInError": "Mindestens ein Seitenparameter ist falsch konfiguriert", + "errorNavigationUrlMissing": "Fehlende Eigenschaft \"Navigations-URL\"", + "errorDataSourceMissing": "Keine Datenquelle ausgewählt" + }, + "notificationWorkflowActionForm": { + "titleLabel": "Titel", + "titlePlaceholder": "Text eingeben...", + "descriptionLabel": "Beschreibung", + "descriptionPlaceholder": "Text eingeben..." + }, + "event": { + "addAction": "Aktion hinzufügen" + }, + "collectionFieldType": { + "boolean": "Boolesch", + "button": "Button", + "text": "Text", + "link": "Verknüpfung", + "tags": "Tags", + "image": "Bild", + "rating": "Bewertung", + "errorValueMissing": "Fehlende Eigenschaft \"Wert\"" + }, + "textFieldForm": { + "fieldValueLabel": "Wert", + "fieldValuePlaceholder": "Wert eingeben..." + }, + "linkFieldForm": { + "fieldValueLabel": "URL", + "fieldValuePlaceholder": "Wert eingeben...", + "fieldLinkNameLabel": "Verknüpfungstext", + "fieldLinkNamePlaceholder": "Wert eingeben...", + "buttonColor": "Buttonfarbe" }, "tagsFieldForm": { "fieldValuesLabel": "Werte", @@ -649,39 +860,111 @@ "fieldColorsLabel": "Farben", "fieldColorsPlaceholder": "Farben eingeben..." }, + "linkField": { + "details": "Details" + }, + "imageFieldForm": { + "fieldSrcLabel": "Bildquelle", + "fieldSrcPlaceholder": "Wert eingeben", + "fieldAltLabel": "Alternativer Text", + "fieldAltPlaceholder": "Wert eingeben...", + "fieldAltHelp": "Wird von Screen-Readern verwendet und angezeigt, wenn das Bild nicht geladen werden kann" + }, + "createUserSourceForm": { + "userSourceType": "Typ", + "userSourceIntegration": "Integration", + "userSourceName": "Name" + }, + "updateUserSourceForm": { + "nameFieldLabel": "Name", + "nameFieldPlaceholder": "Einen Namen eingeben...", + "authTitle": "Authentifizierung", + "integrationFieldLabel": "Integration", + "addProvider": "Anbieter hinzufügen" + }, + "builderLoginPageForm": { + "pageDropdownLabel": "Anmeldeseite", + "pageDropdownPlaceholder": "Wählen Sie eine Seite aus", + "pageDropdownDescription": "Wählen Sie die Anmeldeseite aus, zu der nicht angemeldete Benutzer weitergeleitet werden sollen, wenn sie versuchen, auf eine geschützte Seite zuzugreifen." + }, "formContainerElement": { - "submitDeactivatedText": "Füllen Sie alle erforderlichen Felder aus, um das Formular abzusenden" + "submitDeactivatedText": "Füllen Sie alle erforderlichen Felder aus, um das Formular abzusenden", + "defaultSubmitButtonLabel": "Absenden" + }, + "formContainerElementForm": { + "submitButtonLabel": "Absenden-Button", + "submitButtonPlaceholder": "Wert eingeben...", + "buttonColor": "Buttonfarbe", + "resetToInitialValuesTitle": "Nach der Übermittlung auf Standardwerte zurücksetzen", + "resetToInitialValuesDescription": "Wenn diese Option aktiviert ist, werden die Standardwerte des Formulars verwendet, um das Formular nach erfolgreicher Übermittlung zurückzusetzen. Falls der Haken nicht gesetzt ist, bleiben die Werte des Benutzers erhalten." }, - "authFormElementForm": { - "userSource": "Benutzerquelle" + "choiceOptionSelector": { + "label": "Optionen", + "value": "Optionswerte", + "valuePlaceholder": "Wert eingeben", + "name": "Optionsnamen", + "namePlaceholder": "Name eingeben", + "addOption": "Option hinzufügen", + "addOptionDescription": "Klicken Sie auf 'Option hinzufügen', um Ihrem Dropdown Optionen hinzuzufügen", + "optionType": "Optionstyp", + "manual": "Manuell", + "dataSource": "Datenquelle", + "formulas": "Formeln" }, - "authFormElement": { - "email": "E-Mailadresse", - "password": "Passwort", - "emailPlaceholder": "Geben Sie ihre E-Mailadresse ein...", - "passwordPlaceholder": "Geben Sie ihr Passwort ein...", - "selectOrConfigureUserSourceFirst": "Wählen Sie eine Benutzerquelle, um dieses Anmelde-Element zu verwenden." + "fieldMappingContext": { + "enableField": "Feld aktivieren", + "disableField": "Feld deaktivieren" + }, + "checkboxElementForm": { + "labelTitle": "Optionsname", + "valueTitle": "Standardwert", + "requiredTitle": "Erforderlich" + }, + "choiceElement": { + "addOptions": "Fügen Sie Optionen hinzu, um dieses Element zu verwenden..." + }, + "userSourceUsersContext": { + "searchPlaceholder": "Benutzer suchen", + "anonymous": "Anonym", + "unnamed": "Unbenannt", + "noEmail": "Keine E-Mailadresse" }, "userSelector": { "viewAs": "Anzeigen als: {user}", - "anonymous": "Anonym" + "anonymous": "Anonym", + "member": "{prefix} Mitglied" }, "visibilityForm": { "allVisitors": "Alle Besucher", "loggedInVisitors": "Eingeloggte Besucher", "notLoggedInVisitors": "Ausgeloggte Besucher", - "warningTitle": "Wir verbessern kontinuierlich die Sicherheit", - "warningMessage": "Im Moment wird die Sichtbarkeit nur in der Benutzeroberfläche angewendet, die zugrunde liegenden Daten sind weiterhin über die API zugänglich. Weitere Informationen zur Datensicherheit entnehmen Sie bitte der <a href='https://baserow.io/user-docs/application-builder-element-visibility#note-accessing-hidden-data-via-api'>Dokumentation</a>." - }, - "dispatchDataSourceError": { - "defaultTitle": "Datenladefehler", - "defaultMessage": "Beim Laden der Daten für diese Seite ist ein Fehler aufgetreten." + "warningTitle": "Dies ist eine Sicherheitsfunktion", + "warningMessage": "Sehen Sie die {link}, um mehr über den Schutz der Daten zu erfahren.", + "documentationLink": "Dokumentation", + "excludedRolesLabel": "alle Rollen außer", + "switchAllowLabel": "Erlauben", + "switchDisallowLabel": "Verbieten", + "rolesSelectAll": "Alle auswählen", + "rolesDeselectAll": "Alle abwählen", + "rolesSelectHint": "Wählen Sie eine oder mehrere Rollen aus", + "roleTypesHint": "Wählen Sie einen Rollentyp aus", + "roleTypeAllowAllRoles": "Alle Rollen", + "roleTypeAllowAllRolesExcept": "Rollen verbieten...", + "roleTypeDisallowAllRolesExcept": "Rollen erlauben...", + "rolesAllMembersOf": "Alle Mitglieder von {name}", + "noRole": "Keine Rolle", + "errorFetchingRolesTitle": "Konnte Benutzerrollen nicht abrufen", + "errorFetchingRolesMessage": "Beim Abrufen der Benutzerrollen ist ein Fehler aufgetreten.", + "visibilityCondition": "Sichtbarkeitsbedingung", + "visibilityConditionHelper": "Wenn das Ergebnis dieser Formel wahr ist und die obige Besucherauswahl wahr ist, wird das Element sichtbar sein. Diese Bedingung wirkt sich nur auf die Sichtbarkeit des Elements aus. Um Daten stattdessen aus der Server-Antwort auszuschließen, verwenden Sie die obige Filteroption für Benutzerrollen.", + "visibilityConditionPlaceholder": "Bedingung..." }, "userDataProviderType": { "isAuthenticated": "Ist authentifiziert", "id": "ID", "email": "E-Mailadresse", - "username": "Benutzername" + "username": "Benutzername", + "role": "Rolle" }, "buttonField": { "noLabel": "Unbenannt..." @@ -690,218 +973,105 @@ "infoMessage": "Um Aktionen für diese Schaltfläche zu konfigurieren, öffnen Sie die Registerkarte „Ereignisse“ des aktuellen Elements.", "labelPlaceholder": "Geben Sie eine Bezeichnung ein..." }, - "themeConfigBlockType": { - "color": "Farben", - "button": "Button", - "page": "Seite", - "typography": "Typografie", - "link": "Verknüpfung", - "image": "Bild", - "table": "Tabelle", - "input": "Eingabefeld" - }, - "pageThemeConfigBlock": { - "backgroundImage": "Hintergrundbild", - "backgroundMode": "Hintergrundmodus", - "backgroundColor": "Hintergrundfarbe" - }, - "colorThemeConfigBlockType": { - "primary": "Primär", - "secondary": "Sekundär", - "border": "Rahmen", - "transparent": "Transparent", - "warning": "Warnung", - "success": "Erfolgreich", - "error": "Fehler" - }, - "colorThemeConfigBlock": { - "transparent": "Transparent", - "secondaryColor": "Sekundär", - "primaryColor": "Primär", - "warningColor": "Warnung", - "borderColor": "Rahmen", - "successColor": "Erfolgreich", - "errorColor": "Fehler", - "customColors": "Benutzerdefinierte Farben", - "addCustomColor": "Benutzerdefinierte Farbe hinzufügen", - "customColorPrefix": "Benutzerdefiniert" - }, - "typographyThemeConfigBlock": { - "headingValue": "Überschrift ", - "size": "Größe", - "headingLabel": "Überschrift {i} (h{i})", - "color": "Farbe", - "textAlignment": "Ausrichtung", - "weight": "Gewicht", - "bodyLabel": "Body", - "fontFamily": "Schriftart" - }, - "common": { - "timeFormatTitle": "Zeitformat", - "dateFormatTitle": "Datumsformat", - "dateFormatEU": "Europäisch", - "dateFormatUS": "US-amerikanisch", - "dateFormatISO": "ISO-Format", - "timeFormat24Hour": "24-Stunden", - "timeFormat12Hour": "12 Stunden" - }, - "dateTimePickerElementForm": { - "includeTime": "Zeit einbeziehen", - "invalidDateError": "Ungültiges Datum. Bitte stellen Sie sicher, dass das eingegebene Datum dem angegebenen Format entspricht." - }, - "choiceElementForm": { - "multiple": "Mehrere Werte zulassen", - "checkbox": "Kontrollfeld", - "radio": "Option", + "resetButton": { + "reset": "Auf Standard-Theme-Wert zurücksetzen" + }, + "backgroundModes": { + "fill": "Füllen", + "tile": "Kachel", + "fit": "Anpassen" + }, + "customStyle": { + "backToElement": "Zurück zur Elementkonfiguration", + "configureThemeOverrides": "Theme-Überschreibungen für dieses Element konfigurieren" + }, + "serviceSchemaPropertySelector": { + "label": "Eigenschaft", + "noProperties": "Keine Eigenschaften verfügbar" + }, + "userSourceDropdown": { + "label": "Benutzerquelle", + "addUserSource": "Neue Benutzerquelle hinzufügen", + "noUserSources": "Keine Benutzerquellen verfügbar" + }, + "dataSourceDropdown": { + "label": "Datenquelle", + "noDataSources": "Keine Datenquellen verfügbar", + "noSharedDataSources": "Keine geteilten Datenquellen verfügbar", + "shared": "geteilt", + "pageOnly": "diese Seite", + "addNew": "Neue Datenquelle hinzufügen" + }, + "multiPageContainerElementForm": { + "pagePosition": "Position", + "behaviour": "Verhalten", "display": "Anzeige", - "dropdown": "Drop-Down" - }, - "dataSourceItem": { - "notConfigured": "Nicht konfiguriert" - }, - "dataSourceCreateEditModal": { - "createTitle": "Datenquelle erstellen", - "sharedWarning": "Diese Datenquelle wird gemeinsam genutzt, so dass sich Ihre Änderungen auf mehrere Seiten auswirken können.", - "editTitle": "Datenquelle bearbeiten" - }, - "buttonThemeConfigBlock": { - "borderRadius": "Rahmen-Radius", - "size": "Schriftgröße", - "padding": "Innenabstand", - "weight": "Schriftgewicht", - "textColor": "Textfarbe", - "borderColor": "Rahmenfarbe", - "borderSize": "Rahmengröße", - "fontFamily": "Schriftart", - "backgroundColor": "Hintergrundfarbe", - "alignment": "Ausrichtung", - "width": "Breite", - "button": "Button", - "defaultState": "Standard-Zustand", - "hoverState": "Hover-Zustand", - "textAlignment": "Textausrichtung" - }, - "linkThemeConfigBlock": { + "selectAll": "Alle auswählen", + "deselectAll": "Alle abwählen" + }, + "pageShareType": { + "all": "Auf allen Seiten", + "only": "Nur auf ausgewählten Seiten", + "except": "Ausgewählte Seiten ausschließen" + }, + "authProviderWithModal": { + "authProviderInError": "Bitte bearbeiten Sie diesen Anbieter, um den Fehler zu beheben.", + "title": "Anbieter bearbeiten: {name}" + }, + "textDecorationSelector": { + "underline": "Unterstrichen", + "stroke": "Durchgestrichen", + "italic": "Kursiv", + "uppercase": "Großbuchstaben" + }, + "ratingFieldForm": { + "maxValue": "Maximaler Wert", "color": "Farbe", - "link": "Link", - "hoverState": "Hover-Zustand", - "alignment": "Ausrichtung", - "fontFamily": "Schriftart", - "defaultState": "Standard-Zustand", - "size": "Schriftgröße", - "weight": "Schriftgewicht" - }, - "inputThemeConfigBlock": { - "input": "Eingabe", - "backgroundColor": "Hintergrundfarbe", - "label": "Beschriftung", - "borderSize": "Rahmengröße", - "borderRadius": "Rahmen-Radius", - "borderColor": "Rahmenfarbe", - "textColor": "Textfarbe", - "padding": "Innenabstand", - "weight": "Schriftgewicht", - "fontFamily": "Schriftart", - "size": "Schriftgröße" - }, - "tableThemeConfigBlock": { - "fontSize": "Schriftgröße", - "table": "Tabelle", - "horizontalSeparatorSize": "Horizontale Größe", - "separators": "Trennelemente", - "verticalSeparatorColor": "Vertikale Farbe", - "backgroundAlternateColor": "Gerade Zeilenfarbe", - "padding": "Innenabstand", - "backgroundColor": "Hintergrundfarbe", - "header": "Kopfbereich", - "alignment": "Ausrichtung", - "cells": "Zellen", - "fontFamily": "Schriftart", - "size": "Größe", - "verticalSeparatorSize": "Vertikale Größe", - "horizontalSeparatorColor": "Horizontale Farbe", - "borderSize": "Rahmengröße", - "borderRadius": "Rahmen-Radius", - "fontWeight": "Schriftgewicht", - "borderColor": "Rahmenfarbe", - "textColor": "Textfarbe" - }, - "abTable": { - "loading": "Wird geladen...", - "empty": "Es wurden keine Elemente gefunden." - }, - "collectionElementForm": { - "noSchemaPropertyMessage": "Wählen Sie eine Eigenschaft in der Datenquelle, die Sie als Listendaten für Ihr Element verwenden möchten.", - "noDataSourceMessage": "Wählen Sie eine Datenquelle mit mehreren Zeilen, um alle Ergebnisse aufzulisten, oder eine einzeilige Datenquelle, um eine Eigenschaft innerhalb dieser Zeile auszuwählen." - }, - "dropdown": { - "empty": "Keine Optionen verfügbar" - }, - "pageVisibilitySettings": { - "allVisitors": "Alle Besucher", - "loggedInVisitors": "Eingeloggte Besucher", - "description": "Wer darf diese Seite sehen" - }, - "queryParamTypes": { - "textName": "Text", - "numericName": "Numerisch" - }, - "pageEditor": { - "pageNotFound": "Seite nicht gefunden" - }, - "dataSourceItemContext": { - "shareBetweenPages": "Teilen zwischen Seiten", - "unshareBetweenPages": "Freigabe auf anderen Seiten aufheben" - }, - "radiusStyleForm": { - "cornerRadiusLabel": "Eckradius", - "backgroundRadiusLabel": "Hintergrund", - "borderRadiusLabel": "Rahmen" - }, - "fontWeightType": { - "light": "Leicht", - "thin": "Dünn", - "extraLight": "Extra-leicht", - "regular": "Regulär", - "medium": "Mittel", - "semiBold": "Semi-Bold", - "bold": "Fett", - "extraBold": "Extra-Bold", - "black": "Black", - "extraBlack": "Extra-Black" - }, - "imageThemeConfigBlock": { - "imageBorderRadiusLabel": "Randradius", - "imageBorderRadiusPlaceholder": "Geben Sie den Bildrand-Radius ein.", - "maxWidthLabel": "Maximale Breite", - "maxHeightLabel": "Maximale Höhe", - "maxHeightPlaceholder": "Geben Sie die maximale Höhe ein", - "maxWidthPlaceholder": "Geben Sie die maximale Breite ein", - "alignment": "Ausrichtung", - "imageConstraintCoverDisabled": "Nicht verfügbar bei leerer maximaler Höhe.", - "imageConstraintContain": "Contain", - "imageConstraintsLabel": "Beschränkungen", - "imageConstraintFullWidth": "Auf maximale Breite ausweiten", - "imageConstraintCover": "Cover", - "imageConstraintContainDisabled": "Nicht verfügbar mit maximaler Höhe." - }, - "builderToast": { - "details": "Details", - "defaultTitle": "Unerwarteter Fehler", - "defaultMessage": "Ein unerwarteter Fehler ist aufgetreten. Bitte versuchen Sie es später erneut.", - "invalidContextTitle": "Ungültige Anfrage", - "invalidContextMessage": "Die Anfrage ist ungültig.", - "InvalidContentTitle": "Ungültiges Formular", - "invalidContentMessage": "Ein oder mehrere Felder enthalten ungültige Werte.", - "serviceMisconfiguredTitle": "Unvollständige Konfiguration", - "serviceMisconfiguredMessage": "Bitte prüfen Sie die Konfiguration.", - "errorWorkflowActionDispatch": "Die Aktion \"{name}\" ist fehlgeschlagen: ", - "errorDataSourceDispatch": "Fehler beim Laden der Daten von \"{name}\": " - }, - "addElementCategory": { - "suggestedElement": "Vorgeschlagene Elemente", - "baseElement": "Grundelemente", - "layoutElement": "Layout-Elemente", - "formElement": "Formularelemente" + "style": "Stil", + "star": "Stern", + "heart": "Herz", + "thumbsUp": "Daumen hoch", + "flag": "Flagge", + "value": "Wert" + }, + "ratingElementForm": { + "maxValue": "Maximum", + "color": "Farbe", + "ratingStyle": "Stil", + "star": "Stern", + "heart": "Herz", + "smile": "Smiley", + "thumbsUp": "Daumen hoch", + "flag": "Flagge" + }, + "automationSettingsModal": { + "title": "Workflow" + }, + "abFileInput": { + "delete": "Löschen" + }, + "elementsGuidedTourStep": { + "title": "Fügen Sie Elemente zu Ihrer Seite hinzu", + "content": "Jede Anwendung benötigt Komponenten! Fügen Sie Elemente wie Tabellen, Formulare, Buttons und mehr hinzu, um Ihre Anwendung zum Leben zu erwecken." + }, + "dataGuidedTourStep": { + "title": "Verbinden Sie Ihre Daten", + "content": "Verknüpfen Sie hier Ihre Baserow-Tabellen, um Ihre Daten dynamisch in verschiedenen Elementen anzuzeigen, zu filtern und zu aktualisieren." + }, + "previewGuidedTourStep": { + "title": "Ihr Steuerungszentrum", + "content": "Hier konfigurieren Sie die Seiten Ihrer Anwendung. Fügen Sie Elemente hinzu, sehen Sie sich das Ergebnis in der Vorschau an und strukturieren Sie Ihre Anwendung genau so, wie Sie es möchten." + }, + "devicesGuidedTourStep": { + "title": "Vorschau auf verschiedenen Geräten", + "content": "Wechseln Sie zwischen Desktop-, Tablet- und Mobil-Vorschauen, um zu sehen, wie Ihre Anwendung auf verschiedenen Bildschirmgrößen aussieht. Stellen Sie sicher, dass Ihr Design auf allen Geräten perfekt funktioniert!" + }, + "sidePanelGuidedTourStep": { + "title": "Seitenpanel: Elemente anpassen", + "content": "**Allgemein-Tab** – Konfigurieren Sie das ausgewählte Element.\n\n**Style-Tab** – Passen Sie Innenabstand, Außenabstand, Rahmen und mehr an.\n\n**Sichtbarkeit-Tab** – Steuern Sie, wer dieses Element sehen kann: eingeloggte Benutzer, ausgeloggte Benutzer oder bestimmte Rollen.\n\n**Ereignisse-Tab** – Wenn das Element Aktionen unterstützt, konfigurieren Sie diese hier für dynamische Interaktivität." + }, + "previewPublishGuidedTourStep": { + "title": "Vorschau & Veröffentlichung Ihrer Anwendung", + "content": "Klicken Sie auf **Vorschau**, um Ihre Anwendung privat zu testen. Wenn Sie bereit sind, klicken Sie auf **Veröffentlichen**, um sie über eine Domäne mit der Öffentlichkeit zu teilen." } } diff --git a/web-frontend/modules/builder/locales/es.json b/web-frontend/modules/builder/locales/es.json index fa3f08d0c5..60c840dc08 100644 --- a/web-frontend/modules/builder/locales/es.json +++ b/web-frontend/modules/builder/locales/es.json @@ -272,7 +272,8 @@ "moveDown": "Bajar", "moveUp": "Subir", "moveLeft": "Mover a la izquierda", - "selectParent": "Seleccionar padre" + "selectParent": "Seleccionar padre", + "drag": "Arrastrar para reordenar" }, "pageHeaderItemTypes": { "labelVariables": "Variables", diff --git a/web-frontend/modules/builder/locales/ko.json b/web-frontend/modules/builder/locales/ko.json index cb4c6b8947..c30d1de282 100644 --- a/web-frontend/modules/builder/locales/ko.json +++ b/web-frontend/modules/builder/locales/ko.json @@ -163,7 +163,8 @@ "moveDown": "아래로 이동", "moveLeft": "왼쪽으로 이동", "moveRight": "오른쪽으로 이동", - "selectParent": "부모 선택" + "selectParent": "부모 선택", + "drag": "드래그하여 순서를 변경하세요" }, "duplicatePageJobType": { "duplicating": "복제 중", diff --git a/web-frontend/modules/core/locales/de.json b/web-frontend/modules/core/locales/de.json index a88e41ce6a..60d5d143f2 100644 --- a/web-frontend/modules/core/locales/de.json +++ b/web-frontend/modules/core/locales/de.json @@ -3,33 +3,60 @@ "page": "Seite", "of": "von {pages}" }, + "workspaceSearch": { + "title": "Suche", + "searchEverything": "Suchen...", + "searching": "Wird gesucht...", + "noResults": "Keine Ergebnisse gefunden", + "noResultsSubtitle": "Wir konnten nichts finden, das „{searchTerm}“ entspricht", + "welcome": "Alles in Ihrem Arbeitsbereich durchsuchen", + "welcomeSubtitle": "Verwenden Sie das Suchfeld oben, um Anwendungen, Tabellen, Felder und mehr zu finden", + "navigate": "Navigieren", + "select": "Auswählen", + "close": "Schließen", + "empty": "(leer)", + "types": { + "applications": "Anwendungen", + "tables": "Tabellen", + "fields": "Felder", + "rows": "Zeilen" + } + }, "copied": { "label": "Kopiert!" }, + "action": { + "cancel": "Abbrechen", + "submit": "Senden" + }, "sidebarApplication": { - "renameApplication": "Umbenennen {type}", - "viewTrash": "Papierkorb anzeigen", - "deleteApplication": "Löschen {type}", - "duplicateApplication": "duplizieren {type}", - "snapshots": "Snapshots", "rename": "Umbenennen", + "duplicate": "Duplizieren", + "viewTrash": "Papierkorb anzeigen", "delete": "Löschen", - "duplicate": "Duplizieren" + "snapshots": "Snapshots" + }, + "duplicateApplicationJobType": { + "duplicating": "Duplizieren", + "duplicatedTitle": "Anwendung dupliziert" + }, + "InstallTemplateJobType": { + "installing": "Installieren", + "installedTitle": "Vorlage installiert" }, "sidebar": { "createWorkspace": "Arbeitsbereich erstellen", + "addNewWorkspace": "Neuen Arbeitsbereich hinzufügen", "inviteOthers": "Andere einladen", + "members": "Mitglieder", "logoff": "Abmelden", "errorNoWorkspace": "Sie haben keine Arbeitsbereiche.", - "admin": "Administrator", + "adminTools": "Administrations-Tools", + "home": "Startseite", "dashboard": "Dashboard", "trash": "Papierkorb", "settings": "Meine Einstellungen", - "members": "Mitglieder", "notifications": "Benachrichtigungen", - "addNewWorkspace": "Neuen Arbeitsbereich hinzufügen", - "adminTools": "Administrations-Tools", - "home": "Startseite", "adminSettings": "Administrations-Einstellungen", "general": "Allgemein", "people": "Personen", @@ -45,9 +72,72 @@ "changedDescription": "Ihre Kontoinformationen wurden geändert.", "submitButton": "Konto aktualisieren" }, + "twoFactorAuthSettings": { + "title": "Zwei-Faktor-Authentifizierung", + "loadingError": "Die Zwei-Faktor-Konfiguration konnte nicht geladen werden." + }, + "disableTwoFactorAuth": { + "title": "Sind Sie sicher, dass Sie 2FA deaktivieren möchten?", + "description": "Ihr Konto verliert eine zusätzliche Sicherheitsebene. Falls jemand Ihr Passwort herausfindet, könnte er sich möglicherweise an Ihrem Konto anmelden.", + "cancel": "Aktiviert lassen", + "disable": "Deaktivieren", + "successTitle": "Die Zwei-Faktor-Authentifizierung wurde deaktiviert", + "errorWrongPasswordTitle": "Falsches Passwort", + "errorWrongPasswordMessage": "Das eingegebene Passwort stimmt nicht mit Ihrem Passwort überein." + }, + "enableTwoFactorOptions": { + "cancel": "Abbrechen", + "continue": "Fortfahren" + }, + "saveBackupCode": { + "description": "Wenn Sie keinen Zugriff mehr auf Ihre Authentifizierungs-App oder Ihr Telefon haben und keine Authentifizierungscodes empfangen oder erzeugen können, können Sie diesen Backup-Code verwenden. Sie können ihn nur einmal verwenden. Stellen Sie sicher, dass Sie ihn aufschreiben oder an einem sicheren Ort kopieren, sodass Sie ohne Anmeldung darauf zugreifen können.", + "backupCodes": "Backup-Codes", + "copy": "Kopieren", + "continue": "Fortfahren", + "backupCodesCopiedTitle": "Kopiert!", + "backupCodesCopiedMessage": "Backup-Codes in die Zwischenablage kopiert." + }, + "totpAuthType": { + "name": "Authentifizierungs-App", + "description": "Verwenden Sie eine App, um Codes für die Zwei-Faktor-Authentifizierung zu erhalten. Wir empfehlen Apps wie Google Authenticator, Authy und Microsoft Authenticator.", + "enabledDescription": "Sie erhalten die Verifizierungscodes über eine Authentifizierungs-App. Um eine andere App oder Methode einzurichten, deaktivieren Sie einfach 2FA und richten Sie es erneut ein.", + "sideLabel": "Empfohlen" + }, + "twoFactorEnabled": { + "enabled": "Aktiviert", + "disable": "2FA deaktivieren" + }, + "totpLogin": { + "backupCodesTitle": "Backup-Code eingeben", + "backupCodesDescription": "Melden Sie sich mit Ihrem einmal verwendbaren Backup-Code an.", + "authenticate": "Authentifizieren", + "goBack": "Zurück", + "totpTitle": "Zwei-Faktor-Authentifizierung", + "totpDescription": "Geben Sie den Code aus Ihrer Authentifizierungs-App ein.", + "verify": "Verifizieren", + "useBackupCode": "Backup-Code verwenden", + "verificationFailed": "Verifizierung fehlgeschlagen", + "verificationFailedDescription": "Der eingegebene Code ist nicht korrekt.", + "loginExpired": "Anmeldung abgelaufen", + "loginExpiredDescription": "Bitte geben Sie Ihr Passwort erneut ein.", + "rateLimit": "Zu viele Versuche." + }, "settingsModal": { "title": "Meine Einstellungen" }, + "notificationPanel": { + "title": "Benachrichtigungen", + "markAllAsRead": "Alle als gelesen markieren", + "clearAll": "Alle leeren", + "noNotificationTitle": "Sie haben keine Benachrichtigungen", + "noNotification": "Wir benachrichtigen Sie über wichtige Updates und jedes Mal, wenn Sie auf Baserow erwähnt werden.", + "newNotificationsAvailable": "Es gibt neue Benachrichtigungen", + "refresh": "Aktualisieren" + }, + "clearAllNotificationsConfirmModal": { + "title": "Sind Sie sicher, dass Sie alle Benachrichtigungen leeren möchten?", + "message": "Alle Benachrichtigungen werden dauerhaft gelöscht und Sie können sie nicht mehr sehen." + }, "passwordSettings": { "title": "Passwort ändern", "changedTitle": "Passwort geändert", @@ -61,6 +151,40 @@ "errorInvalidOldPasswordTitle": "Ungültiges Passwort", "errorInvalidOldPasswordMessage": "Sie konnten Ihr Passwort nicht ändern, weil Ihr altes Passwort ungültig ist." }, + "emailSettings": { + "title": "E-Mail-Adresse ändern", + "successTitle": "Bestätigungs-E-Mail gesendet", + "successDescription": "Wir haben eine Bestätigungs-E-Mail an Ihre neue Adresse gesendet. Bitte überprüfen Sie Ihren Posteingang und klicken Sie auf den Link, um die Änderung der E-Mail-Adresse abzuschließen.", + "currentEmailLabel": "Aktuelle E-Mail-Adresse", + "newEmailLabel": "Neue E-Mail-Adresse", + "passwordLabel": "Aktuelles Passwort", + "submitButton": "Bestätigungs-E-Mail senden", + "errorInvalidPasswordTitle": "Ungültiges Passwort", + "errorInvalidPasswordMessage": "Die Änderung der E-Mail-Adresse konnte nicht angefordert werden, da Ihr Passwort nicht korrekt ist.", + "errorEmailExistsTitle": "E-Mail-Adresse existiert bereits", + "errorEmailExistsMessage": "Die Änderung der E-Mail-Adresse konnte nicht angefordert werden, da bereits ein Konto mit dieser E-Mail-Adresse existiert.", + "errorNotAllowedTitle": "Änderung der E-Mail-Adresse nicht zulässig", + "errorNotAllowedMessage": "Sie können Ihre E-Mail-Adresse nicht ändern, da Ihr Konto die Single-Sign-On-Authentifizierung (SSO) verwendet." + }, + "deleteAccountSettings": { + "title": "Konto löschen", + "description": "Sie können die Löschung Ihres Kontos planen, indem Sie Ihr aktuelles Passwort eingeben und auf die Schaltfläche klicken. Ihr Konto wird nach {days} Tagen endgültig gelöscht. Wenn Sie sich in der Zwischenzeit erneut anmelden, wird die Löschung Ihres Kontos rückgängig gemacht.", + "workspaceNoticeDescription": "Wenn Ihr Konto endgültig gelöscht wird, werden auch alle Arbeitsbereiche und zugehörigen Daten gelöscht, für die Sie der letzte aktive Benutzer mit Admin-Rechten sind. Die unten aufgeführten Arbeitsbereiche werden gelöscht, weil Sie der einzige Administrator sind. Um zu verhindern, dass sie gelöscht werden, müssen Sie vor dem Löschen Ihres Kontos einem anderen Benutzer Adminrechte erteilen.", + "orphanWorkspaces": "Wird nach Ablauf der Schonfrist ebenfalls endgültig gelöscht", + "orphanWorkspaceMemberCount": "Für niemanden freigegeben|für einen Benutzer freigegeben|freigegeben für {count} Benutzer", + "password": "Passwort", + "passwordConfirm": "Passwort wiederholen", + "repeatPasswordMatchError": "Dieses Feld muss mit dem ersten Passwortfeld übereinstimmen.", + "submitButton": "Konto löschen", + "errorInvalidPasswordTitle": "Ungültiges Passwort", + "errorInvalidPasswordMessage": "Ihr Konto konnte nicht gelöscht werden, da Ihr Passwort ungültig ist.", + "errorUserIsLastAdminTitle": "Letzter Administrator", + "errorUserIsLastAdminMessage": "Ihr Konto konnte nicht gelöscht werden, da Sie der letzte Administrator dieser Baserow-Instanz sind.", + "accountDeletedSuccessTitle": "Kontolöschung geplant", + "accountDeletedSuccessMessage": "Ihr Konto wurde zur Löschung vorgesehen.", + "workspaceLoadingError": "Die Arbeitsbereichprüfung ist fehlgeschlagen", + "workspaceLoadingErrorDescription": "Die Überprüfung der zu löschenden Arbeitsbereiche ist fehlgeschlagen, bitte aktualisieren Sie die Seite." + }, "error": { "alreadyExistsTitle": "Benutzer existiert bereits", "alreadyExistsMessage": "Es existiert bereits ein Benutzer mit der angegebenen E-Mail-Adresse.", @@ -68,6 +192,8 @@ "invalidEmail": "Bitte geben Sie eine gültige E-Mail-Adresse ein.", "disabledAccountTitle": "Konto deaktiviert", "disabledAccountMessage": "Dieses Benutzerkonto wurde deaktiviert.", + "captchaVerificationFailedTitle": "Captcha-Verifizierung fehlgeschlagen", + "captchaVerificationFailedMessage": "Die Captcha-Verifizierung ist fehlgeschlagen. Bitte versuchen Sie es erneut.", "incorrectCredentialTitle": "Inkorrekte Zugangsdaten", "incorrectCredentialMessage": "Die angegebene E-Mail-Adresse oder das Passwort ist falsch.", "inputRequired": "Eine Eingabe ist erforderlich.", @@ -91,52 +217,154 @@ "message": "Sind Sie sicher, dass Sie den Arbeitsbereich {workspace} verlassen wollen? Sie können dann nicht mehr auf die zugehörigen Anwendungen zugreifen. Wenn Sie wieder Zugang erhalten möchten, muss einer der Administratoren Sie erneut einladen. Wenn Sie den Arbeitsbereich verlassen, wird sie nicht gelöscht. Alle anderen Mitglieder haben weiterhin Zugang zu ihr. Es ist nicht möglich, einen Arbeitsbereich zu verlassen, wenn Sie der letzte Administrator sind, da der Arbeitsbereich dann nicht mehr gepflegt wird.", "leave": "Arbeitsbereich verlassen" }, + "exportWorkspaceModal": { + "title": "Exportieren", + "description": "Ihre Daten werden als ZIP-Datei exportiert, die in andere Baserow-Instanzen importiert werden kann.", + "exportSettings": "Einstellungen exportieren", + "export": "Daten exportieren", + "reset": "Von vorne beginnen", + "cancel": "Abbrechen", + "download": "Herunterladen", + "exportingState": "Exportiere...", + "exportingTableState": "Exportiere: {table}", + "exportingCreateArchiveState": "Erstelle Archiv", + "noExports": "Für diesen Arbeitsbereich gibt es noch keine Exporte.", + "created": "erstellt" + }, + "exportWorkspaceForm": { + "exportSettingsLabel": "Einstellungen exportieren", + "selectDataToExport": "Zu exportierende Daten auswählen", + "selectAll": "Alles auswählen", + "deselectAll": "Alle abwählen", + "onlyStructureLabel": "Nur die Struktur exportieren", + "onlyStructureDescription": "Wenn diese Option aktiviert ist, wird nur die Struktur der Anwendungen exportiert. Die Daten werden nicht enthalten sein." + }, + "importWorkspaceModal": { + "title": "Baserow-Daten importieren", + "description": "Sie können bestehende Baserow-Daten importieren, indem Sie die .zip-Datei einer anderen Baserow-Instanz hochladen.", + "import": "Daten importieren", + "upload": "Hochladen", + "uploadAndImport": "Hochladen & Importieren", + "cancel": "Abbrechen", + "done": "Abgeschlossen", + "close": "Schließen", + "retry": "Wiederholen", + "uploading": "Hochladen...", + "chooseFile": "Datei auswählen", + "selectApplications": "Zu importierende Daten auswählen", + "deselectAll": "Alle abwählen", + "selectAll": "Alle auswählen", + "databases": "Datenbanken", + "applications": "Anwendungen", + "successTitle": "Baserow-Daten erfolgreich importiert", + "successMessage": "{count} Anwendungen importiert", + "signatureVerificationNote": "Es ist nicht möglich, eine ZIP-Datei aus einer nicht vertrauenswürdigen Quelle zu importieren.", + "invalidResourceTitle": "Ungültige Ressource", + "invalidResourceMessage": "Die bereitgestellte Datei ist kein gültiger Baserow-Export.", + "untrustedPublicKeyTitle": "Nicht vertrauenswürdige Signatur", + "untrustedPublicKeyMessage": "Die bereitgestellte Datei wurde mit einem nicht vertrauenswürdigen öffentlichen Schlüssel signiert. Bitten Sie Ihren Administrator, den öffentlichen Schlüssel zur Liste der vertrauenswürdigen Schlüssel hinzuzufügen oder die Signaturprüfung zu deaktivieren, um diese Datei importieren zu können.", + "importingState": "Importiere...", + "importingTableStructure": "Erstelle: {table}", + "importingTableData": "Importiere Daten: {table}" + }, + "importWorkspaceForm": { + "selectApplicationsToImport": "Zu importierende Anwendungen auswählen" + }, "dashboardWorkspace": { - "showMembers": "Mitglieder", "createApplication": "Neu erstellen" }, + "dashboardVerifyEmail": { + "title": "Bitte prüfen Sie Ihre Mailbox und klicken Sie auf den Link, um Ihre E-Mailadresse zu bestätigen.", + "resendConfirmationEmail": "Bestätigungs-E-Mail erneut versenden" + }, + "resendEmailVerification": { + "confirmationEmailSentTitle": "Bestätigungs-E-Mail versendet", + "confirmationEmailSentDescription": "Die Bestätigungs-E-Mail wurde versendet." + }, + "verifyEmailAddress": { + "confirmation": "Ihre E-Mailadresse wurde bestätigt.", + "goToDashboard": "Zum Dashboard", + "invalidToken": "Kein gültiger Bestätigungs-Token.", + "disabledPasswordProvider": "Der Passwortauthentifizierungs-Provider wurde deaktiviert.", + "emailMismatchWarning": "Bitte beachten Sie, dass die bestätigte E-Mailadresse nicht zu dem Konto gehört, welches Sie gerade verwenden." + }, + "emailNotVerified": { + "title": "Bestätigung der E-Mailadresse notwendig", + "description": "Bitte überprüfen Sie Ihre Mailbox und klicken Sie auf den darin enthaltenen Bestätigungslink. Nach der Verifizierung wird Ihr Konto aktiviert.", + "resend": "Bestätigungs-E-Mail erneut versenden" + }, "workspaceInvitation": { "title": "Einladung", "message": "{by} hat Sie eingeladen, dem {workspace} beizutreten.", - "reject": "Abgelehnt", - "accept": "Akzeptiert" - }, - "workspaceMemberModal": { - "membersModalTitle": "{workspace} Mitglieder", - "userDescription": "{user} - beigetreten vor {since}", - "invitationDescription": "eingeladen vor {since}", - "sendInvite": "Einladung senden", - "userAlreadyInWorkspaceTitle": "Der Benutzer ist bereits Mitglied des Arbeitsbereichs.", - "userAlreadyInWorkspaceText": "Es ist nicht möglich, eine Einladung zu senden, wenn der Benutzer bereits Mitglied des Arbeitsbereichs ist.", - "userDescriptionPendingDeletion": "{user} - zur Löschung anstehend" + "reject": "Ablehnen", + "accept": "Akzeptieren" }, "workspaceInviteForm": { "invitationFormTitle": "Einladen per E-Mail", - "optionalMessagePlaceholder": "Optionale Nachricht", "errorInvalidEmail": "Bitte geben Sie eine gültige E-Mail Adresse ein.", - "errorTooLongMessage": "Nachrichten sind auf {amount} Zeichen begrenzt.", "additionalRoles": "Zusätzliche Rollen" }, - "workspacesContext": { - "search": "Suche nach Arbeitsbereichen", - "noResults": "Keine Ergebnisse gefunden", - "createWorkspace": "Arbeitsbereich erstellen" - }, "workspaceContext": { "renameWorkspace": "Arbeitsbereich umbenennen", + "exportWorkspace": "Daten exportieren", + "importWorkspace": "Daten importieren", + "settings": "Einstellungen", "members": "Mitglieder", + "auditLog": "Audit-Log", "viewTrash": "Papierkorb ansehen", "leaveWorkspace": "Arbeitsbereich verlassen", - "deleteWorkspace": "Arbeitsbereich löschen", - "auditLog": "Audit-Log", - "settings": "Einstellungen", - "importWorkspace": "Daten importieren", - "exportWorkspace": "Daten exportieren" + "deleteWorkspace": "Arbeitsbereich löschen" + }, + "workspaceSettingsModal": { + "title": "Arbeitsbereich-Einstellungen" + }, + "workspaceSettingType": { + "generativeAI": "Generative KI" + }, + "generativeAIModelType": { + "openai": "OpenAI", + "openaiApiKeyLabel": "API-Schlüssel", + "openaiApiKeyDescription": "Geben Sie einen OpenAI-API-Schlüssel an, wenn Sie die Integration aktivieren möchten. [Anleitung zum Erhalt eines API-Schlüssels](https://help.openai.com/en/articles/4936850-where-do-i-find-my-openai-api-key).", + "openaiOrganization": "Organisation (optional)", + "openaiModelsLabel": "Aktivierte Modelle", + "openaiModelsDescription": "Geben Sie eine durch Kommata getrennte Liste von [OpenAI-Modellen](https://platform.openai.com/docs/models/continuous-model-upgrades) an, die in Baserow verwendet werden können. (z. B. `gpt-3.5-turbo,gpt-4`)", + "openaiBaseUrl": "Basis-URL", + "openaiBaseUrlDescription": "Verwendet standardmäßig die Standard-OpenAI-Basis-URL, wenn leer. Kann optional auf https://eu.api.openai.com/v1, https://<your-resource-name>.openai.azure.com oder eine andere OpenAI-kompatible API geändert werden.", + "anthropic": "Anthropic", + "anthropicApiKeyLabel": "API-Schlüssel", + "anthropicApiKeyDescription": "Geben Sie einen Anthropic-API-Schlüssel an, wenn Sie die Integration aktivieren möchten. [Anweisungen zum Erhalt eines API-Schlüssels](https://docs.anthropic.com/en/api/getting-started).", + "anthropicModelsLabel": "Aktivierte Modelle", + "anthropicModelsDescription": "Geben Sie eine durch Kommata getrennte Liste von [Anthropic-Modellen](https://docs.anthropic.com/en/docs/about-claude/models) an, die in Baserow verwendet werden können. (z.B. `claude-3-5-sonnet-20241022,claude-3-opus-20240229`)", + "mistral": "Mistral", + "mistralApiKeyLabel": "API-Schlüssel", + "mistralApiKeyDescription": "Geben Sie einen Mistral-API-Schlüssel an, wenn Sie die Integration aktivieren möchten. [Anleitung zum Erhalt eines API-Schlüssels](https://docs.mistral.ai/getting-started/quickstart/).", + "mistralModelsLabel": "Aktivierte Modelle", + "mistralModelsDescription": "Geben Sie eine durch Kommata getrennte Liste von [Mistral-Modellen](https://docs.mistral.ai/getting-started/models/models_overview/) an, die in Baserow verwendet werden können. (z.B. `mistral-large-latest, mistral-small-latest`)", + "ollama": "Ollama", + "ollamaHostLabel": "Host", + "ollamaHostDescription": "Geben Sie den Hostnamen Ihres [Ollama](https://ollama.com/)-Servers an. Dieser läuft normalerweise lokal auf Ihrem eigenen Gerät.", + "ollamaModelsLabel": "Aktivierte Modelle", + "ollamaModelsDescription": "Geben Sie eine durch Kommata getrennte Liste von [bei Ollama installierten Modellen](https://ollama.com/library) an. Beachten Sie, dass das Modell heruntergeladen und installiert werden muss, bevor es verwendet werden kann. (z.B. `llama2,mistral`)", + "openRouter": "OpenRouter", + "openRouterApiKeyLabel": "API-Schlüssel", + "openRouterApiKeyDescription": "Geben Sie einen OpenRouter-API-Schlüssel an, wenn Sie die Integration aktivieren möchten. [Einen API-Schlüssel erhalten](https://openrouter.ai/settings/keys).", + "openRouterOrganization": "Organisation (optional)", + "openRouterModelsLabel": "Aktivierte Modelle", + "openRouterModelsDescription": "Geben Sie eine durch Kommata getrennte Liste von [OpenRouter-Modellen](https://openrouter.ai/models) an, die in Baserow verwendet werden können. (z.B. `openai/gpt-4o,anthropic/claude-3-haiku`)" + }, + "generativeAIWorkspaceSettings": { + "title": "Generative-KI-Einstellungen", + "description": "Diese Einstellungen können verwendet werden, um optional die generative KI-Konfiguration auf Arbeitsbereichsebene festzulegen. Funktionen wie das KI-Feld können deaktiviert werden, weil ihnen ein API-Schlüssel für eines der unterstützten Modelle fehlt. Indem Sie die Einstellungen hier vornehmen, können Sie diese Funktionen aktivieren. Wenn Sie einen Wert leer lassen, werden die globalen Instanzeinstellungen wiederhergestellt. Beachten Sie, dass diese Einstellungen im Arbeitsbereich gleichermaßen für alle gelten.", + "changedTitle": "Einstellungen erfolgreich aktualisiert", + "changedDescription": "Die Einstellungen wurden aktualisiert und werden nun in diesem Arbeitsbereich verwendet.", + "submitButton": "Einstellungen aktualisieren", + "openSettings": "Einstellungen öffnen", + "hideSettings": "Einstellungen ausblenden" }, "createWorkspaceModal": { "createNew": "Neuen Arbeitsbereich erstellen", - "add": "Arbeitsbereich hinzufügen", "defaultName": "Unbenannter Arbeitsbereich", + "add": "Arbeitsbereich hinzufügen", "permissionDeniedTitle": "Erlaubnis verweigert", "permissionDeniedBody": "Sie haben nicht die erforderliche Berechtigung, um einen neuen Arbeitsbereich zu erstellen." }, @@ -148,8 +376,8 @@ "use": "Verwenden Sie diese Vorlage" }, "trashSidebar": { - "title": "Papierkorb", - "unnamedWorkspace": "Unbenannter Arbeitsbereich {id}" + "unnamedWorkspace": "Unbenannter Arbeitsbereich {id}", + "workspaces": "Arbeitsbereiche" }, "trashContents": { "message": "Gelöschte Objekte aus der Vergangenheit wiederherstellen {duration}", @@ -164,15 +392,15 @@ "messageIsTrashed": "Dadurch werden sie und ihr gesamter Inhalt endgültig gelöscht. Danach können sie nicht mehr wiederhergestellt werden.", "messageIsNotTrashed": "Dadurch werden die aufgelisteten Elemente dauerhaft gelöscht. Danach können sie nicht mehr wiederhergestellt werden.", "buttonIsTrashed": "Dauerhaft löschen", - "buttonIsNotTrashed": "leer" + "buttonIsNotTrashed": "Leeren" }, "trashEntry": { "deletedUser": "Ein gelöschter Benutzer", "fromParent": "von {parent}", "name": "{user} gelöscht {type} {title} {parent}", "restore": "Wiederherstellen", - "unnamed": "Unbenannt {type} {id}", - "andMore": "... und {count} mehr" + "andMore": "... und {count} mehr", + "unnamed": "Unbenannt {type} {id}" }, "trashModal": { "emptyTitle": "Keine Arbeitsbereiche gefunden", @@ -193,35 +421,82 @@ "clickOrDrop": "Klicken Sie hier oder legen Sie Ihre Dateien ab", "retry": "Erneut versuchen" }, + "uploadFileDropzone": { + "drop": "Hier ablegen", + "clickOrDrop": "Klicken Sie hier oder legen Sie Ihre Dateien ab", + "errorTooManyFilesTitle": "Zu viele Dateien", + "errorTooManyFilesMessage": "Sie können nur eine einzelne Datei hochladen", + "errorWrongFileTypeTitle": "Falscher Dateityp", + "errorWrongFileTypeMessage": "Sie können keine Datei vom Typ {type} hochladen" + }, "createApplicationContext": { "fromTemplate": "Von Vorlage", "fromTemplateDesc": "Starten Sie zügig mit einer unserer empfohlenen Vorlagen", "table": "Tabelle", - "tableDesc": "Erstellen Sie einen neuen Ort, um die Daten in Ihrer Datenbank zu verwalten." + "tableDesc": "Erstellen Sie einen neuen Ort, um die Daten in Ihrer Datenbank zu verwalten.", + "importWorkspace": "Daten importieren", + "importWorkspaceDesc": "Bestehende Daten aus einer Baserow-Instanz hinzufügen." }, "applicationForm": { "nameLabel": "Name", "namePlaceholder": "Geben Sie den Namen ein..." }, - "connectingNotification": { + "connectingToast": { "title": "Wiederverbindung", - "content": "Wiederherstellung der Verbindung mit dem Server." + "content": "Echtzeit-Aktualisierungen werden wiederhergestellt." }, - "failedConnectingNotification": { + "failedConnectingToast": { "title": "Fehlgeschlagen", - "content": "Die Verbindung zum Server ist fehlgeschlagen. Bitte aktualisieren Sie die Seite.", + "content": "Echtzeit-Aktualisierungen konnten nicht wiederhergestellt werden. Bitte aktualisieren Sie die Seite, um fortzufahren.", + "action": "Seite aktualisieren" + }, + "authorizationErrorToast": { + "title": "Autorisierungsfehler", + "content": "Anscheinend sind Sie nicht berechtigt, diese Ressource anzuzeigen.", "action": "Seite aktualisieren" }, - "restoreNotification": { - "restore": "Gelöschten {type} wiederherstellen" + "userSessionExpiredToast": { + "title": "Sitzung abgelaufen", + "content": "Sie wurden abgemeldet, weil Ihr Authentifizierungstoken abgelaufen ist. Bitte loggen Sie sich erneut ein." }, - "copyingNotification": { + "userPasswordChangedToast": { + "title": "Passwort geändert", + "content": "Ihr Passwort wurde geändert. Bitte melden Sie sich erneut an." + }, + "restoreToast": { + "restore": "{type} (gelöscht) wiederherstellen" + }, + "copyingToast": { "title": "Kopieren...", - "content": "Vorbereiten ihre Daten" + "content": "Aufbereitung Ihrer Daten" }, - "pastingNotification": { + "PastingToast": { "title": "Einfügen...", - "content": "Vorbereiten ihre Daten" + "content": "Aufbereitung Ihrer Daten" + }, + "clearingToast": { + "title": "Leeren...", + "content": "Vorbereitung Ihrer Daten" + }, + "undoRedoToast": { + "undoingTitle": "Rückgängig machen...", + "undoingText": "Aktion rückgängig machen", + "undoneTitle": "Rückgängig gemacht", + "undoneText": "Aktion ist rückgängig gemacht", + "noMoreUndo": "Keine weiteren Aktionen zum Rückgängig machen", + "skippingUndoDueToError": "Rückgängig machen hat aufgrund eines unbekannten Fehlers nicht funktioniert, überspringe es daher.", + "redoingTitle": "Wiederherstellen...", + "redoingText": "Ihre Aktion wird wiederhergestellt", + "redoneTitle": "Wiederhergestellt", + "redoneText": "Aktion ist wiederhergestellt", + "noMoreRedo": "Keine weiteren Aktionen zum erneuten Ausführen", + "skippingRedoDueToError": "Wieder ausführen hat aufgrund eines unbekannten Fehler nicht funktioniert, überspringen.", + "failed": "Fehlgeschlagen" + }, + "permissionsUpdatedToast": { + "title": "Berechtigungen aktualisiert", + "content": "Dies kann sich darauf auswirken, worauf Sie Zugriff haben, bitte laden Sie die Seite neu.", + "action": "Neu laden" }, "errorLayout": { "notFound": "Die Seite, die Sie suchen, wurde nicht gefunden. Dies könnte daran liegen, dass die URL nicht korrekt ist oder dass Sie keine Berechtigung haben, diese Seite anzuzeigen.", @@ -236,38 +511,40 @@ "alertTitle": "Wir benötigen Ihre Hilfe!", "alertText": "Indem Sie Baserow teilen, helfen Sie uns, das Produkt weiter zu verbessern und für Ihre Zwecke nützlicher zu machen.", "tweetContent": "Entdecken Sie {'@'}baserow, ein Open-Source-Datenbank-Tool ohne Code und eine Alternative zu Airtable!", - "redditTitle": "Baserow - Eine Open-Source No-Code-Datenbank", - "noWorkspaceTitle": "Keine Arbeitsbereiche gefunden", - "noWorkspaceText": "Sie sind kein Mitglied eines Arbeitsbereichs. Anwendungen wie Datenbanken gehören zu einem Arbeitsbereich. Um sie zu erstellen, müssen Sie also einen Arbeitsbereich erstellen.", - "createWorkspace": "Arbeitsbereich erstellen", + "redditTitle": "'Baserow - Eine Open-Source No-Code-Datenbank", "becomeGithubSponsor": "Werden Sie ein GitHub-Sponsor", - "starOnGitlab": "Geben sie uns einen Stern auf GitLab", + "starOnGitHub": "Geben Sie uns einen Stern auf GitHub", "shareOnTwitter": "Tweet über Baserow", "shareOnReddit": "Teilen auf Reddit", "shareOnFacebook": "Teilen auf Facebook", "shareOnLinkedIn": "Teilen auf LinkedIn", - "noWorkspaceTextWithoutCreatePermission": "Sie sind kein Mitglied eines Arbeitsbereichs. Anwendungen wie Datenbanken gehören zu einer Arbeitsbereich. Um sie zu erstellen, müssen Sie also zuerst von einem Administrator in einen Arbeitsbereich eingeladen werden.", - "tutorialsMessage": "Erkunden Sie das Potential von Baserow", + "suggestedTemplates": "Vorgeschlagene Vorlagen", + "resources": "Ressourcen", + "knowledgeBase": "Wissensdatenbank", + "knowledgeBaseMessage": "Finden Sie Antworten auf all Ihre Fragen", "tutorials": "Tutorials", - "apiDocumentationMessage": "Erfahren Sie mehr über unseren Quelltext", + "tutorialsMessage": "Erkunden Sie das Potential von Baserow", "apiDocumentation": "API-Dokumentation", + "apiDocumentationMessage": "Erfahren Sie mehr über unseren Quelltext", "emptyWorkspace": "Dieser Arbeitsbereich ist leer", "emptyWorkspaceMessage": "Starten Sie, indem Sie eine neue Datenbank oder Anwendung erstellen.", "addNew": "Neu hinzufügen...", "noWorkspace": "Kein Arbeitsbereich", - "noWorkspaceDescription": "Legen Sie los, indem Sie einen neuen Arbeitsbereich anlegen", - "suggestedTemplates": "Vorgeschlagene Vorlagen", - "resources": "Ressourcen", - "knowledgeBase": "Wissensdatenbank", - "knowledgeBaseMessage": "Finden Sie Antworten auf all Ihre Fragen" + "noWorkspaceDescription": "Legen Sie los, indem Sie einen neuen Arbeitsbereich anlegen" + }, + "dashboardApplication": { + "createdAt": "erstellt" + }, + "templateCard": { + "viewMore": "Mehr anzeigen" }, "login": { "title": "Willkommen zurück", + "emailPlaceholder": "Geben Sie Ihre E-Mail Adresse ein..", + "passwordPlaceholder": "Geben Sie Ihr Passwort ein..", "forgotPassword": "Vergessen?", "signUpText": "Neu bei Baserow?", - "emailPlaceholder": "Geben Sie Ihre E-Mail Adresse ein.", - "passwordPlaceholder": "Geben Sie Ihr Passwort ein..", - "signUp": "Anmelden", + "signUp": "Registrieren", "displayPasswordLogin": "Anmelden mit E-Mail und Passwort", "redirecting": "Weiterleiten an Authentifizierungsanbieter..." }, @@ -275,15 +552,32 @@ "title": "Passwort zurücksetzen", "newPassword": "Neues Passwort", "repeatNewPassword": "Wiederholung des neuen Passworts", + "repeatPasswordPlaceholder": "Wiederholen Sie Ihr neues Passwort", "submit": "Passwort ändern", "changed": "Passwort geändert", + "message": "Sie können sich jetzt mit Ihrem neuen Passwort bei Baserow anmelden.", "errorInvalidLinkTitle": "Ungültiger Link", "errorInvalidLinkMessage": "Das Passwort konnte nicht zurückgesetzt werden, da der Link ungültig ist.", "errorLinkExpiredTitle": "Link abgelaufen", "errorLinkExpiredMessage": "Der Link zum Zurücksetzen des Passworts ist abgelaufen. Bitte fordern Sie ein neues an.", + "errorLinkAlreadyUsedTitle": "Link bereits verwendet", + "errorLinkAlreadyUsedMessage": "Dieser Link zum Zurücksetzen des Passworts wurde bereits verwendet. Bitte fordern Sie einen neuen an.", "disabled": "Passwort-Zurücksetzung ist deaktiviert", - "disabledMessage": "Es ist nicht möglich, ein Passwort zurückzusetzen, da es deaktiviert wurde.", - "message": "Sie können sich jetzt mit Ihrem neuen Passwort bei Baserow anmelden." + "disabledMessage": "Es ist nicht möglich, ein Passwort zurückzusetzen, da es deaktiviert wurde." + }, + "changeEmail": { + "title": "Änderung der E-Mail-Adresse bestätigen", + "submit": "Änderung der E-Mail-Adresse bestätigen", + "changed": "E-Mail-Adresse geändert", + "message": "Ihre E-Mail-Adresse wurde erfolgreich geändert. Sie können sich jetzt mit Ihrer neuen E-Mail-Adresse bei Baserow anmelden.", + "errorInvalidLinkTitle": "Ungültiger Link", + "errorInvalidLinkMessage": "Die E-Mail-Adresse konnte nicht geändert werden, da der Link ungültig ist.", + "errorLinkExpiredTitle": "Link abgelaufen", + "errorLinkExpiredMessage": "Der Link zur Änderung der E-Mail-Adresse ist abgelaufen. Bitte fordern Sie einen neuen über Ihre Kontoeinstellungen an.", + "errorEmailExistsTitle": "E-Mail-Adresse existiert bereits", + "errorEmailExistsMessage": "Die E-Mail-Adresse konnte nicht geändert werden, da bereits ein Konto mit dieser E-Mail-Adresse existiert.", + "errorEmailAlreadyChangedTitle": "E-Mail-Adresse bereits geändert", + "errorEmailAlreadyChangedMessage": "Die E-Mail-Adresse wurde bereits in die angeforderte Adresse geändert." }, "signup": { "headTitle": "Konto erstellen", @@ -292,93 +586,77 @@ "disabledMessage": "Es ist nicht möglich, ein Konto zu erstellen, da es deaktiviert wurde.", "requireFirstUser": "Willkommen in Baserow!", "requireFirstUserMessage": "Bitte füllen Sie das untenstehende Formular aus, um den Admin-Benutzer zu erstellen.", + "emailPlaceholder": "Geben Sie Ihre E-Mail Adresse ein..", "namePlaceholder": "Geben Sie Ihren Namen ein..", - "emailPlaceholder": "Geben Sie Ihre E-Mail Adresse ein.", - "passwordPlaceholder": "Geben Sie Ihr Passwort ein.", - "loginText": "Sie haben bereits ein Konto?", + "passwordPlaceholder": "Geben Sie Ihr Passwort ein..", "passwordRepeatPlaceholder": "Bestätigen Sie Ihr Passwort..", - "login": "Einloggen", - "privacyPolicy": "Datenschutzerklärung", - "terms": "Nutzungsbedingungen", - "agreeTerms": "Mit der Erstellung eines Kontos erklären Sie sich einverstanden mit {0} {1} {2}" + "loginText": "Sie haben bereits ein Konto?", + "login": "Einloggen" }, "forgotPassword": { "title": "Passwort vergessen", "message": "Geben Sie Ihre E-Mail-Adresse ein, damit wir Ihnen einen Link zum Zurücksetzen Ihres Passworts zusenden können.", "submit": "Link senden", + "confirmationTitle": "Rufen Sie Ihre E-Mails ab", "confirmation": "Wir haben eine E-Mail an {email} gesendet, die einen Link zum Zurücksetzen Ihres Baserow-Passworts enthält.", "disabled": "Passwort-Zurücksetzung ist deaktiviert", "disabledMessage": "Es ist nicht möglich, ein Passwort zurückzusetzen, da es deaktiviert wurde.", "loginText": "Sie haben bereits ein Konto und ein Passwort?", - "confirmationTitle": "Rufen Sie Ihre E-Mails ab", "goBack": "Zurück" }, "settings": { "settingsTitle": "Administrator-Einstellungen", "baserowInstanceId": "Instanz-ID", "instanceIdDescription": "Die Instanz-ID ist die eindeutige Kennung Ihrer Baserow-Kopie.", + "baserowVersion": "Baserow-Version", + "baserowVersionDescription": "Die Versionsnummer dieser Instanz.", "accountRestrictions": "Konto-Einschränkungen", "settingAllowResetPasswordName": "Erlaube das Zurücksetzen des Passworts", - "settingAllowResetPasswordDescription": "Standardmäßig ist das Zurücksetzen des Passworts aktiviert. Wenn Sie diese Einstellung deaktivieren, können Benutzer nicht mehr ihr Passwort via Link zurücksetzen.", + "settingAllowResetPasswordDescription": "Standardmäßig können Benutzer einen Link zum Zurücksetzen des Passworts anfordern.", "settingAllowResetPasswordWarning": "Bitte beachten Sie, dass sie sich selbst aus dem System aussperren könnten und der Zugang nicht mehr hergestellt werden kann, falls sie ihr Passwort vergessen.", "settingAllowNewAccountsName": "Erstellen neuer Konten zulassen", "settingAllowNewAccountsDescription": "Standardmäßig kann sich jeder Benutzer, der Ihre Baserow-Domain besucht, für ein neues Konto anmelden.", - "enabled": "aktiviert", "settingAllowSignupsViaWorkspaceInvitationsName": "Erlaube Registrierungen durch Arbeitsbereicheinladungen", "settingAllowSignupsViaWorkspaceInvitationDescription": "Auch wenn die Erstellung von neuen Konten deaktiviert ist können Nutzer:innen durch Setzen dieser Option Nutzer:innen ein Konto erstellen.", - "settingUserDeletionGraceDelayDescription": "Dies ist die Anzahl der Tage ohne Anmeldung, nach denen ein zur Löschung vorgesehenes Konto endgültig gelöscht wird.", - "userDeletionGraceDelay": "Benutzerlöschung", - "settingUserDeletionGraceDelay": "Gnadenfrist löschen", - "invalidAccountDeletionGraceDelay": "Dieser Wert ist erforderlich und muss eine positive ganze Zahl kleiner als 32000 sein", "settingAllowNonStaffCreateWorkspaceOperation": "Jedem die Möglichkeit geben, neue Arbeitsbereiche zu erstellen", "settingAllowNonStaffCreateWorkspaceOperationDescription": "Standardmäßig kann jeder neue Arbeitsbereiche erstellen. Deaktivieren Sie diese Option, damit nur Mitglieder neue Arbeitsbereiche erstellen können.", "settingAllowNonStaffCreateWorkspaceOperationWarning": "Für neue Benutzer wird automatisch ein Arbeitsbereich erstellt, in der sie Administrator sind.", - "maintenance": "Wartung", "settingTrackWorkspaceUsage": "Arbeitsbereichnutzung verfolgen", "settingTrackWorkspaceUsageDescription": "Aktiviert einen nächtlichen Job, der die Zeilen- und Dateinutzung pro Arbeitsbereich zählt und auf der Verwaltungsseite für Premium-Arbeitsbereiche angezeigt wird.", - "emailVerificationNoVerification": "Keine Verifizierung", "userSettings": "Benutzer", + "settingUserDeletionGraceDelay": "Gnadenfrist löschen", + "settingUserDeletionGraceDelayDescription": "Dies ist die Anzahl der Tage ohne Anmeldung, nach denen ein zur Löschung vorgesehenes Konto endgültig gelöscht wird.", + "invalidAccountDeletionGraceDelay": "Dieser Wert ist erforderlich und muss eine positive ganze Zahl kleiner als 32000 sein", + "enabled": "aktiviert", + "maintenance": "Wartung", "emailVerification": "E-Mail-Verifizierung", "emailVerificationDescription": "Gibt an, ob E-Mailadressen bestätigt werden müssen.", + "emailVerificationNoVerification": "Keine Verifizierung", "emailVerificationRecommended": "Empfohlen", "emailVerificationEnforced": "Erzwungen", - "settingsVerifyImportSignatureDescription": "Wenn diese Funktion aktiviert ist, wird die Signatur der importierten Daten überprüft um sicherzustellen, dass die Daten nicht manipuliert wurden.", - "baserowVersion": "Baserow-Version", "settingsVerifyImportSignature": "Import-Signatur prüfen", - "baserowVersionDescription": "Die Versionsnummer dieser Instanz." - }, - "undoRedoNotification": { - "redoingText": "Deine Aktion wird wieder hergestellt", - "redoneTitle": "Wieder ausgeführt", - "skippingUndoDueToError": "Rückgängig machen hat aufgrund eines unbekannten Fehlers nicht funktioniert, überspringen.", - "redoingTitle": "Wiederherstellen...", - "failed": "Fehlgeschlagen", - "undoingTitle": "Rückgängig machen...", - "undoingText": "Deine Aktion rückgängig machen", - "undoneTitle": "Rückgängig gemacht", - "undoneText": "Aktion ist rückgängig gemacht", - "noMoreUndo": "Keine Aktionen zum rückgängig machen übrig", - "noMoreRedo": "Keine Aktionen zum wieder-ausführen übrig", - "redoneText": "Aktion wurde wieder ausgeführt", - "skippingRedoDueToError": "Wieder ausführen hat aufgrund eines unbekannten Fehler nicht funktioniert, überspringen." - }, - "AuthorizationErrorNotification": { - "title": "Autorisierungsfehler", - "content": "Anscheinend sind Sie nicht berechtigt, diese Ressource anzuzeigen.", - "action": "Seite neu laden" + "settingsVerifyImportSignatureDescription": "Wenn diese Funktion aktiviert ist, wird die Signatur der importierten Daten überprüft um sicherzustellen, dass die Daten nicht manipuliert wurden." }, "formSidebar": { + "fields": "Felder", + "rowEditableBy": "Zeilen über Felder aktualisieren", + "rowEditableByDescription": "Die Zeilen in dieser Tabelle können über dieses Formular über die folgenden Felder zur Zeilenbearbeitung aktualisiert werden:", "actions": { "addAll": "Alle hinzufügen", "removeAll": "Alle entfernen", "addField": "Feld hinzufügen" }, + "notifyUserOnSubmit": "Benachrichtigung nach dem Absenden erhalten", "fieldsDescription": "Alle Felder sind im Formular.", - "prefillInfoLink": "Werte dynamisch vorausfüllen", + "prefillOrHideInfoLink": "Dynamisches Vorfüllen oder Ausblenden", "modal": { "title": "Felder dynamisch ausfüllen oder ausblenden", "descriptionPartOne": "Formular können vorausgefüllt werden, um dem Benutzer zu helfen das Formular schneller auszufüllen.", "descriptionPartTwo": "Alle Felder die im Formular verfügbar sind, können vorausgefüllt werden.", + "howToHide": { + "title": "Wie man ein Feld ausblendet", + "description": "Wenn Sie ein Feld dynamisch ausblenden möchten, können Sie dies mit Abfrageparametern tun, die Sie der öffentlichen von-URL hinzufügen. Diesen Abfrageparametern wird das Präfix `hide_` vorangestellt, um Kollisionen mit potenziellen künftigen Abfrageparametern zu vermeiden." + }, "howToPrefill": { "title": "Wie man ein Formular vorausfüllt", "description": "Wenn Sie ein Formular vorausfüllen wollen, können sie das mit einem Query Paremeter in der URL des Öffentlichen Formulares. Diese Query Parameter haben einen prefix von 'prefill' um potentielle Kollisionen mit anderen Query Parametern zu vermeiden." @@ -386,7 +664,7 @@ "format": { "title": "Format", "description": "Das Format der Query Parameter is das Folgende:", - "codeSnippet": "?prefill_<feld_name>=<wert>" + "codeSnippet": "?prefill_<field_name>=<value>" }, "example": { "title": "Beispiel", @@ -396,7 +674,7 @@ "spaces": { "title": "Leerzeichen", "description": "Leerzeichen in Feldern werden mit einem '+' ersetzt, um Probleme mit den Query Parametern zu vermeiden.", - "codeSnippet": "?prefill_mein+Feld=Mike" + "codeSnippet": "?prefill_my+field=Mike" }, "multipleValues": { "title": "Mehrere Werte", @@ -409,93 +687,47 @@ "ratingField": { "title": "Bewertungsfeld", "description": "Ein Bewertungsfeld akzeptiert eine Nummer welche bestimmt wie viele Sterne ausgefüllt werden sollen.", - "codeSnippet": "?prefill_Bewertung=3" + "codeSnippet": "?prefill_rating=3" }, "linkRowField": { "title": "Zeilenlinkfeld", "description": "Ein Zeilenlinkfeld kann jeden Wert akzeptieren welcher im Dropdown zu sehen ist.", - "codeSnippet": "?prefill_zeilenlinkfeld=Mike" + "codeSnippet": "?prefill_link+row=Mike" }, "selectField": { "title": "Einzel/Mehrfachauswahlfeld", "description": "Ein Einzelauswahlfeld akzeptiert jeden Wert der im Dropdown sichtbar ist. Das selbe gilt für das Mehrfachauswahlfeld, allerdings kann dieses auch mehrere Werte akzeptieren.", - "codeSnippet": "?prefill_Einzelauswahlfeld=Mike" + "codeSnippet": "?prefill_single+select=Mike" }, "dateField": { "title": "Datumsfeld", "description": "Ein Datumsfeld kann ein Datum in den folgenden Formaten akzeptieren und wir das Datenformat des Feldes benutzen um den Wert richtig darzustellen.", "codeSnippet": "\n// Standards\nISO_8601\n\n// Generelle Formate\n'YYYY-MM-DD',\n'YYYY-MM-DD hh:mm A',\n'YYYY-MM-DD HH:mm',\n\n// EU\n'DD/MM/YYYY', \n'DD/MM/YYYY hh:mm A', \n'DD/MM/YYYY HH:mm'\n\n// US\n'MM/DD/YYYY', \n'MM/DD/YYYY hh:mm A', \n'MM/DD/YYYY HH:mm'" } - }, - "howToHide": { - "description": "Wenn Sie ein Feld dynamisch ausblenden möchten, können Sie dies mit Abfrageparametern tun, die Sie der öffentlichen von-URL hinzufügen. Diesen Abfrageparametern wird das Präfix `hide_` vorangestellt, um Kollisionen mit potenziellen künftigen Abfrageparametern zu vermeiden.", - "title": "Wie man ein Feld ausblendet" } - }, - "prefillOrHideInfoLink": "Dynamisches Vorfüllen oder Ausblenden", - "notifyUserOnSubmit": "Benachrichtigung nach dem Absenden erhalten" - }, - "deleteAccountSettings": { - "workspaceNotice": "Verwaiste Arbeitsbereiche werden gelöscht", - "workspaceNoticeDescription": "Wenn Ihr Konto endgültig gelöscht wird, werden auch alle Arbeitsbereiche und zugehörigen Daten gelöscht, für die Sie der letzte aktive Benutzer mit Admin-Rechten sind. Die unten aufgeführten Arbeitsbereiche werden gelöscht, weil Sie der einzige Administrator sind. Um zu verhindern, dass sie gelöscht werden, müssen Sie vor dem Löschen Ihres Kontos einem anderen Benutzer Adminrechte erteilen.", - "passwordConfirm": "Passwort wiederholen", - "repeatPasswordMatchError": "Dieses Feld muss mit dem ersten Passwortfeld übereinstimmen.", - "submitButton": "Konto löschen", - "errorInvalidPasswordMessage": "Ihr Konto konnte nicht gelöscht werden, da Ihr Passwort ungültig ist.", - "orphanWorkspaceMemberCount": "Für niemanden freigegeben|für einen Benutzer freigegeben|freigegeben für {count} Benutzer", - "password": "Passwort", - "errorUserIsLastAdminTitle": "Letzter Administrator", - "errorUserIsLastAdminMessage": "Ihr Konto konnte nicht gelöscht werden, da Sie der letzte Administrator dieser Baserow-Instanz sind.", - "title": "Konto löschen", - "description": "Sie können die Löschung Ihres Kontos planen, indem Sie Ihr aktuelles Passwort eingeben und auf die Schaltfläche klicken. Ihr Konto wird nach {days} Tagen endgültig gelöscht. Wenn Sie sich in der Zwischenzeit erneut anmelden, wird die Löschung Ihres Kontos rückgängig gemacht.", - "accountDeletedSuccessTitle": "Kontolöschung geplant", - "accountDeletedSuccessMessage": "Ihr Konto wurde zur Löschung vorgesehen.", - "orphanWorkspaces": "Wird nach Ablauf der Schonfrist ebenfalls endgültig gelöscht", - "errorInvalidPasswordTitle": "Ungültiges Passwort", - "workspaceLoadingError": "Die Arbeitsbereichprüfung ist fehlgeschlagen", - "workspaceLoadingErrorDescription": "Die Überprüfung der zu löschenden Arbeitsbereiche ist fehlgeschlagen, bitte aktualisieren Sie die Seite." - }, - "dashboardSidebar": { - "links": "Links", - "workspaces": "Arbeitsbereiche", - "knowledgeBase": "Wissensdatenbank", - "tutorials": "Anleitungen", - "userSettings": "Benutzereinstellungen", - "trash": "Papierkorb", - "logoff": "Ausloggen" - }, - "clearingNotification": { - "content": "Aufbereitung Ihrer Daten", - "title": "Ausräumen..." + } }, "job": { "statePending": "Warten auf den Start...", "stateStarted": "Gestartet...", "stateFinished": "Abgeschlossen", + "stateCanceled": "Abgebrochen", "stateFailed": "Gescheitert", - "errorJobAlreadyRunningTitle": "Wird bereits ausgeführt", - "errorJobAlreadyRunningDescription": "Es läuft bereits ein anderer Importauftrag. Sie müssen warten, bis dieser beendet ist, bevor Sie einen weiteren Auftrag starten.", + "errorJobCannotBeCancelledTitle": "Abbrechen nicht möglich", "errorJobCannotBeCancelledDescription": "Es ist nicht möglich, den Auftrag abzubrechen, da er bereits abgeschlossen ist.\nBitte löschen Sie den ersten Snapshot in der untenstehenden Liste, um ihn zu entfernen.", - "errorJobCannotBeCancelledTitle": "Abbrechen nicht möglich" + "errorJobAlreadyRunningTitle": "Wird bereits ausgeführt", + "errorJobAlreadyRunningDescription": "Es läuft bereits ein anderer Importauftrag. Sie müssen warten, bis dieser beendet ist, bevor Sie einen weiteren Auftrag starten." }, "datetime": { + "secondsAgo": "Gerade eben | vor 1 Sekunde | vor {n} Sekunden", + "minutesAgo": "vor 0 Minuten | vor 1 Minute | vor {n} Minuten", + "hoursAgo": "vor 0 Stunden | vor 1 Stunde | vor {n} Stunden", "daysAgo": "vor 0 Tagen | vor 1 Tag | vor {n} Tagen", "monthsAgo": "vor 0 Monaten | vor 1 Monat | vor {n} Monaten", "yearsAgo": "vor 0 Jahren | vor 1 Jahr | vor {n} Jahren", - "hoursAgo": "vor 0 Stunden | vor 1 Stunde | vor {n} Stunden", - "secondsAgo": "Gerade eben | vor 1 Sekunde | {n} Sekunden zuvor", - "minutesAgo": "vor 0 Minuten | vor 1 Minute | vor {n} Minuten", "lessThanMinuteAgo": "vor weniger als einer Minute", "justNow": "gerade eben" }, - "duplicateApplicationJobType": { - "duplicating": "Duplizieren", - "duplicatedTitle": "Anwendung dupliziert" - }, - "InstallTemplateJobType": { - "installing": "Installieren", - "installedTitle": "Vorlage installiert" - }, "crudTableSearch": { "search": "Suchen" }, @@ -504,44 +736,49 @@ "invitesTabTitle": "Einladungen", "membersTable": { "title": "{userAmount} Mitglieder in {workspaceName}", - "actions": { - "copyEmail": "E-Mail kopieren", - "remove": "Aus dem Arbeitsbereich entfernen" - }, "inviteMember": "Mitglied einladen", "columns": { "name": "Name", "email": "E-Mail", "role": "Standard-Rolle", - "teams": "Teams", "highestRole": "Höchste Rolle", - "highestRoleHelpText": "Die höchste Rolle, die diesem Benutzer direkt oder von einem Team für etwas in diesem Arbeitsbereich zugewiesen wurde" + "highestRoleHelpText": "Die höchste Rolle, die diesem Benutzer direkt oder von einem Team für etwas in diesem Arbeitsbereich zugewiesen wurde", + "highestRoleInstanceHelpText": "Die höchste Rolle, die dieser Benutzer in der Instanz hat", + "teams": "Teams", + "2fa": "2FA" + }, + "actions": { + "copyEmail": "E-Mail kopieren", + "remove": "Aus dem Arbeitsbereich entfernen" } }, "invitesTable": { + "title": "{invitesAmount} Ausstehende Einladungen in {workspaceName}", "columns": { "email": "E-Mail", - "message": "Nachricht", "role": "Standardrolle" }, "actions": { "copyEmail": "E-Mail kopieren", "remove": "Einladung abbrechen" - }, - "title": "{invitesAmount} Ausstehende Einladungen in {workspaceName}" + } }, "membersInviteModal": { "title": "Arbeitsbereichmitglieder einladen", "submit": "Einladung senden", + "helpIconText": "Die ausgewählte Rolle wird die Standardrolle des Benutzers in diesem Arbeitsbereich.", "errors": { "userAlreadyInWorkspace": { "title": "Der Benutzer ist bereits Mitglied des Arbeitsbereichs.", "text": "Es ist nicht möglich, eine Einladung zu senden, wenn der Benutzer bereits Mitglied des Arbeitsbereich ist." } - }, - "helpIconText": "Die ausgewählte Rolle wird die Standardrolle des Benutzers in diesem Arbeitsbereich." + } } }, + "memberSelectionList": { + "searchPlaceholder": "Finden...", + "selectedAmountLabel": "{count} ausgewählt" + }, "memberAssignmentModalFooter": { "invite": "{count} einladen", "deselectAll": "Alle abwählen", @@ -552,19 +789,6 @@ "confirmation": "Sind Sie sicher, dass Sie {name} aus {workspaceName} entfernen möchten? Diese Aktion kann nicht rückgängig gemacht werden.", "remove": "Entfernen" }, - "UserSessionExpiredNotification": { - "title": "Sitzung abgelaufen", - "content": "Sie wurden abgemeldet, weil Ihr Authentifizierungstoken abgelaufen ist. Bitte loggen Sie sich erneut ein." - }, - "memberSelectionList": { - "searchPlaceholder": "Finden...", - "selectedAmountLabel": "{count} ausgewählt" - }, - "permissionsUpdatedNotification": { - "content": "Dies könnte Ihren Zugang beeinträchtigen, bitte laden Sie die Seite neu.", - "action": "Neu laden", - "title": "Berechtigungen aktualisiert" - }, "editRoleContext": { "billableRolesLink": "Dokumentation zu abrechenbaren Rollen", "additionalRoles": "Zusätzliche Rollen" @@ -572,279 +796,165 @@ "highestPaidRoleField": { "billable": "Verrechenbar" }, - "uploadFileDropzone": { - "errorWrongFileTypeMessage": "Sie können keine Datei vom Typ {type} hochladen", - "errorTooManyFilesTitle": "Zu viele Dateien", - "drop": "Hier fallen lassen", - "errorWrongFileTypeTitle": "Falscher Datei Typ", - "errorTooManyFilesMessage": "Sie können nur eine einzelne Datei hochladen", - "clickOrDrop": "Klicken Sie hier oder legen Sie Ihre Dateien ab" - }, - "notificationPanel": { - "markAllAsRead": "Alle als gelesen markieren", - "title": "Mitteilungen", - "noNotification": "Wir benachrichtigen Sie über wichtige Updates und jedes Mal, wenn Sie auf Baserow erwähnt werden.", - "clearAll": "Alle leeren", - "noNotificationTitle": "Sie haben keine Benachrichtigungen", - "newNotificationsAvailable": "Es gibt neue Benachrichtigungen", - "refresh": "Aktualisieren" - }, - "clearAllNotificationsConfirmModal": { - "title": "Sind Sie sicher, dass Sie alle Benachrichtigungen leeren möchten?", - "message": "Alle Benachrichtigungen werden dauerhaft gelöscht und Sie können sie nicht mehr sehen." - }, - "connectingToast": { - "title": "Wiederverbindung", - "content": "Wiederherstellung der Verbindung mit dem Server." - }, - "failedConnectingToast": { - "content": "Die Verbindung zum Server ist fehlgeschlagen. Bitte aktualisieren Sie die Seite.", - "title": "Fehlgeschlagen", - "action": "Seite aktualisieren" - }, - "userSessionExpiredToast": { - "content": "Sie wurden abgemeldet, weil Ihr Authentifizierungstoken abgelaufen ist. Bitte loggen Sie sich erneut ein.", - "title": "Sitzung abgelaufen" - }, - "restoreToast": { - "restore": "{type} (gelöscht) wiederherstellen" - }, - "copyingToast": { - "title": "Kopieren...", - "content": "Aufbereitung Ihrer Daten" - }, - "undoRedoToast": { - "noMoreUndo": "Keine weiteren Aktionen zum Rückgängig machen", - "redoneText": "Aktion ist wiederhergestellt", - "skippingRedoDueToError": "Wieder ausführen hat aufgrund eines unbekannten Fehler nicht funktioniert, überspringen.", - "failed": "Fehlgeschlagen", - "undoingTitle": "Rückgängig machen...", - "undoingText": "Aktion rückgängig machen", - "undoneTitle": "Rückgängig gemacht", - "undoneText": "Aktion ist rückgängig gemacht", - "skippingUndoDueToError": "Rückgängig machen hat aufgrund eines unbekannten Fehlers nicht funktioniert, überspringe es daher.", - "redoingText": "Ihre Aktion wird wiederhergestellt", - "redoingTitle": "Wiederherstellen...", - "redoneTitle": "Wiederhergestellt", - "noMoreRedo": "Keine weiteren Aktionen zum erneuten Ausführen" - }, - "permissionsUpdatedToast": { - "content": "Dies kann sich darauf auswirken, worauf Sie Zugriff haben, bitte laden Sie die Seite neu.", - "action": "Neu laden", - "title": "Berechtigungen aktualisiert" - }, "integrationCreateEditModal": { "createTitle": "Neue Integration", - "warningTitle": "Warnung", - "editTitle": "Integration bearbeiten" + "editTitle": "Integration bearbeiten", + "warningTitle": "Warnung" }, "integrationEditForm": { - "name": "Integrationsname", + "name": "Name", "namePlaceholder": "Geben Sie den Namen der Integration ein..." }, - "dropdown": { - "empty": "Keine Stücke verfügbar" - }, - "styleBoxForm": { - "paddingError": "Der Wert muss eine ganze Zahl zwischen 0 und 200 sein." - }, - "workspaceInvitationRejectedNotification": { - "title": "{sender} hat Ihre Einladung zur Teilnahme an {workspaceName} abgelehnt", - "deletedUser": "Gelöschter Benutzer" - }, - "authorizationErrorToast": { - "content": "Anscheinend sind Sie nicht berechtigt, diese Ressource anzuzeigen.", - "title": "Autorisierungsfehler", - "action": "Seite aktualisieren" - }, - "clearingToast": { - "title": "Leeren...", - "content": "Vorbereitung Ihrer Daten" - }, - "PastingToast": { - "title": "Einfügen...", - "content": "Aufbereitung Ihrer Daten" + "integrationDropdown": { + "addIntegration": "Neue Integration hinzufügen", + "noIntegrations": "Keine Integrationen gefunden.", + "selectTypeFirst": "Wählen Sie zuerst den Typ aus", + "integrationPlaceholder": "Wählen Sie eine Integration aus" }, - "styleSidePanel": { - "paddingTop": "Padding top", - "paddingBottom": "Padding bottom" + "dropdown": { + "empty": "Keine Einträge verfügbar" }, "richTextEditorMentionsList": { "notFound": "Keine Benutzer gefunden" }, "workspaceInvitationAcceptedNotification": { "title": "{sender} hat Ihre Einladung angenommen, {workspaceName} beizutreten", - "deletedUser": "Gelöschter Benutzer" + "deletedUser": "Ein gelöschter Benutzer" + }, + "workspaceInvitationRejectedNotification": { + "title": "{sender} hat Ihre Einladung zur Teilnahme an {workspaceName} abgelehnt", + "deletedUser": "Ein gelöschter Benutzer" }, "workspaceInvitationCreatedNotification": { "title": "{sender} hat Sie eingeladen, {workspaceName} beizutreten", - "deletedUser": "Gelöschter Benutzer" + "deletedUser": "Ein gelöschter Benutzer" }, "versionUpgradeNotification": { "title": "{version} ist da! Sehen Sie sich an, was es Neues gibt." }, - "userPasswordChangedToast": { - "title": "Passwort geändert", - "content": "Ihr Passwort wurde geändert. Bitte melden Sie sich erneut an." - }, "emailNotifications": { - "submitButton": "Häufigkeit ändern", + "title": "E-Mailbenachrichtigungen", "label": "Erwähnungen, Kommentare und andere Benachrichtigungen", + "description": "Stellen Sie die Häufigkeit ein, mit der E-Mails an Ihren Posteingang gesendet werden.", + "instant": "Sofort", "daily": "Täglich", - "title": "E-Mailbenachrichtigungen", - "never": "Nie", "weekly": "Wöchentlich", - "description": "Stelle die Häufigkeit ein, mit der E-Mails versendet werden sollen.", - "instant": "Sofort" - }, - "dataExplorer": { - "emptyText": "Keine Daten gefunden", - "noMatchingNodesText": "Es wurden keine passenden Datenanbieter gefunden.", - "noProvidersText": "Es wurden keine Datenanbieter gefunden. Um loszulegen, können Sie zum Beispiel eine Datenquelle oder einen Seitenparameter hinzufügen." - }, - "integrationDropdown": { - "noIntegrations": "Keine Integrationen gefunden.", - "addIntegration": "Neue Integration hinzufügen", - "integrationPlaceholder": "Wähle eine Integration aus", - "selectTypeFirst": "Wähle zuerst den Typ aus" + "never": "Nie", + "submitButton": "Häufigkeit ändern" }, "formulaInputField": { - "errorInvalidFormula": "Die Formel ist ungültig." - }, - "generativeAIWorkspaceSettings": { - "description": "Diese Einstellungen können verwendet werden, um optional die generative KI-Konfiguration auf Arbeitsbereichsebene festzulegen. Funktionen wie das KI-Feld können deaktiviert werden, weil ihnen ein API-Schlüssel für eines der unterstützten Modelle fehlt. Indem Sie die Einstellungen hier vornehmen, können Sie diese Funktionen aktivieren. Wenn Sie einen Wert leer lassen, werden die globalen Instanzeinstellungen wiederhergestellt. Beachten Sie, dass diese Einstellungen im Arbeitsbereich gleichermaßen für alle gelten.", - "title": "Generative-KI-Einstellungen", - "submitButton": "Einstellungen aktualisieren", - "changedTitle": "Einstellungen erfolgreich aktualisiert", - "changedDescription": "Die Einstellungen wurden aktualisiert und werden nun in diesem Arbeitsbereich verwendet." - }, - "verifyEmailAddress": { - "invalidToken": "Kein gültiger Bestätigungs-Token.", - "disabledPasswordProvider": "Der Passwortauthentifizierungs-Provider wurde deaktiviert.", - "confirmation": "Ihre E-Mailadresse wurde bestätigt.", - "goToDashboard": "Zum Dashboard", - "emailMismatchWarning": "Bitte beachten Sie, dass die bestätigte E-Mailadresse nicht zu dem Konto gehört, welches Sie gerade verwenden." - }, - "resendEmailVerification": { - "confirmationEmailSentDescription": "Die Bestätigungs-E-Mail wurde versendet.", - "confirmationEmailSentTitle": "Bestätigungs-E-Mail versendet" - }, - "dashboardVerifyEmail": { - "title": "Bitte prüfen Sie Ihre Mailbox und klicken Sie auf den Link, um Ihre E-Mailadresse zu bestätigen.", - "resendConfirmationEmail": "Bestätigungs-E-Mail erneut versenden" - }, - "generativeAIModelType": { - "openaiOrganization": "Organisation (optional)", - "openaiModelsLabel": "Aktivierte Modelle", - "openaiModelsDescription": "Geben Sie eine durch Kommata getrennte Liste von [OpenAI-Modellen] (https://platform.openai.com/docs/models/continuous-model-upgrades) an, die in Baserow verwendet werden können. (z. B. `gpt-3.5-turbo,gpt-4`)", - "ollamaModelsDescription": "Geben Sie eine durch Kommata getrennte Liste von [bei Ollama installierten Modellen](https://ollama.com/library) an. Beachten Sie, dass das Modell heruntergeladen und installiert werden muss, bevor es verwendet werden kann. (z.B. `llama2,mistral`)", - "openaiApiKeyLabel": "API-Schlüssel", - "openaiApiKeyDescription": "Geben Sie einen OpenAI-API-Schlüssel an, wenn Sie die Integration aktivieren möchten. [Anleitung zum Erhalt eines API-Schlüssels] (https://help.openai.com/en/articles/4936850-where-do-i-find-my-openai-api-key).", - "openai": "OpenAI", - "ollamaHostDescription": "Geben Sie den Hostnamen Ihres [Ollama](https://ollama.com/)-Servers an. Dieser läuft normalerweise lokal auf Ihrem eigenen Gerät.", - "ollamaModelsLabel": "Aktivierte Modelle", - "ollama": "Ollama", - "ollamaHostLabel": "Host", - "anthropic": "Anthropic", - "anthropicApiKeyLabel": "API-Schlüssel", - "anthropicModelsLabel": "Aktivierte Modelle", - "mistral": "Mistral", - "mistralApiKeyLabel": "API-Schlüssel", - "anthropicApiKeyDescription": "Geben Sie einen Anthropic-API-Schlüssel an, wenn Sie die Integration aktivieren möchten. [Anweisungen zum Erhalt eines API-Schlüssels](https://docs.anthropic.com/en/api/getting-started).", - "anthropicModelsDescription": "Geben Sie eine durch Kommata getrennte Liste von [Anthropic-Modellen](https://docs.anthropic.com/en/docs/about-claude/models) an, die in Baserow verwendet werden können. (z.B. `claude-3-5-sonnet-20241022,claude-3-opus-20240229`)", - "mistralApiKeyDescription": "Geben Sie einen Mistral-API-Schlüssel an, wenn Sie die Integration aktivieren möchten. [Anleitung zum Erhalt eines API-Schlüssels](https://docs.mistral.ai/getting-started/quickstart/).", - "mistralModelsLabel": "Aktivierte Modelle", - "mistralModelsDescription": "Geben Sie eine durch Kommata getrennte Liste von [Mistral-Modellen](https://docs.mistral.ai/getting-started/models/models_overview/) an, die in Baserow verwendet werden können. (z.B. `mistral-large-latest, mistral-small-latest`)", - "openRouterApiKeyDescription": "Geben Sie einen OpenRouter-API-Schlüssel an, wenn Sie die Integration aktivieren möchten. [Einen API-Schlüssel erhalten](https://openrouter.ai/settings/keys).", - "openRouter": "OpenRouter", - "openRouterApiKeyLabel": "API-Schlüssel", - "openRouterOrganization": "Organisation (optional)", - "openRouterModelsLabel": "Aktivierte Modelle" - }, - "emailNotVerified": { - "title": "Bestätigung der E-Mailadresse notwendig", - "description": "Bitte überprüfen Sie Ihre Mailbox und klicken Sie auf den darin enthaltenen Bestätigungslink. Nach der Verifizierung wird Ihr Konto aktiviert.", - "resend": "Bestätigungs-E-Mail erneut versenden" + "errorInvalidFormula": "Die Formel ist ungültig.", + "advancedFormulaMode": "Erweiterter Formelmodus", + "invalidFormulaTitle": "Ungültige Formel", + "invalidSyntax": "Keine gültige Expertenformel, bitte überprüfen Sie die Syntax." + }, + "formulaInputErrorContext": { + "viewFullError": "Vollständigen Fehler anzeigen" + }, + "formulaInputExplorerContext": { + "variables": "Variablen", + "functions": "Funktionen", + "operators": "Operatoren", + "search": "Suchen", + "useRegularInputModalTitle": "Reguläre Eingabe für dieses Feld verwenden?", + "useSimpleInput": "In den Basismodus wechseln", + "useSimpleInputModalTitle": "In den Basismodus wechseln?", + "useAdvancedInput": "In den Expertenmodus wechseln", + "useAdvancedInputModalTitle": "In den Expertenmodus wechseln?", + "modalMessage": "Beim Wechsel in einen anderen Modus wird die aktuelle Formel gelöscht. Sind Sie sicher, dass Sie fortfahren möchten?" + }, + "formulaParserErrors": { + "invalidArgCountMin": "Die Funktion '{funcType}' erwartet mindestens {minArgs} Argumente.", + "invalidArgCountExact": "Die Funktion '{funcType}' erwartet genau {minArgs} Argumente.", + "invalidArgCountRange": "Die Funktion '{funcType}' erwartet zwischen {minArgs} und {maxArgs} Argumenten." }, - "workspaceSettingsModal": { - "title": "Arbeitsbereich-Einstellungen" + "dataExplorer": { + "noMatchingNodesText": "Es wurden keine passenden Ergebnisse gefunden.", + "noProvidersText": "Es wurden keine Datenanbieter gefunden. Um loszulegen, können Sie zum Beispiel eine Datenquelle oder einen Seitenparameter hinzufügen." }, - "workspaceSettingType": { - "generativeAI": "Generative KI" + "dataExplorerNode": { + "showMore": "Mehr Wiederholungen anzeigen", + "selectNode": "Auswählen" }, "richTextEditorBubbleMenu": { "bold": "Fett", "italic": "Kursiv", - "linkEditPlaceholder": "Verknüpfungs-URL...", - "linkEditDone": "Fertig", "underline": "Unterstrichen", + "strikethrough": "Durchgestrichen", "link": "Verknüpfung", - "strikethrough": "Durchgestrichen" + "linkEditPlaceholder": "Verknüpfungs-URL...", + "linkEditDone": "Fertig" }, "richTextEditorFloatingMenu": { - "orderedList": "Nummerierte Liste", - "unorderedList": "Liste", - "code": "Code", - "taskList": "Aufgabenliste", - "heading3": "Überschrift 3", "hierarchy": "Hierarchie", - "paragraph": "Absatz", "lists": "Listen", + "paragraph": "Absatz", "heading1": "Überschrift 1", - "heading2": "Überschrift 2" + "heading2": "Überschrift 2", + "heading3": "Überschrift 3", + "orderedList": "Nummerierte Liste", + "unorderedList": "Aufzählungsliste", + "code": "Code", + "taskList": "Aufgabenliste" }, "selectAIModelForm": { "AIType": "KI-Typ", - "AIModel": "KI-Modell" + "AIModel": "KI-Modell", + "fileField": "Dateifeld", + "temperatureLabel": "Temperatur", + "temperatureDescription": "Die Temperatur eines LLM, ein Parameter zwischen 0 und {max}, passt die Zufälligkeit der Antworten an – niedrigere Werte führen zu fokussierten Antworten, während höhere Werte die Kreativität erhöhen." }, "onboarding": { - "failedDescription": "Die Einführung wurde nicht vollständig abgeschlossen, auch wenn einige Teile davon bereits abgeschlossen sind.", - "failedTryAgain": "Erneut versuchen", - "failedSkip": "Einführung überspringen", "title": "Einführung", "creating": "Erstellen Ihres ersten Arbeitsbereichs", - "cancel": "Ich möchte bei der Einrichtung keine Unterstützung", "continue": "Fortfahren", "skip": "Vorerst überspringen", - "failedTitle": "Etwas ist schiefgegangen" - }, - "inviteStep": { - "title": "Mitarbeitende einladen", - "description": "Sie können später noch mehr hinzufügen.", - "collaboratorsLabel": "Mitarbeitende" + "cancel": "Ich möchte bei der Einrichtung keine Unterstützung", + "failedTitle": "Etwas ist schiefgegangen", + "failedDescription": "Die Einführung wurde nicht vollständig abgeschlossen, auch wenn einige Teile davon bereits abgeschlossen sind.", + "failedTryAgain": "Erneut versuchen", + "failedSkip": "Einführung überspringen" }, "moreStep": { "title": "Erzählen Sie uns etwas mehr", - "roleOrJob": "Rolle oder Job-Bezeichnung...", + "how": "Wie haben Sie von uns erfahren?", + "howSearchEngine": "Suchmaschine (Google/Bing)", + "howSocialMedia": "Soziale Medien", + "howOnlineAds": "Online-Werbung", + "howContent": "Inhalte (Blog/Newsletter/Video)", + "howReviewSite": "Bewertungsseite / Marktplatz", + "howFriend": "Von einem Freund", + "howColleague": "Von einem Kollegen", + "howEvent": "Veranstaltung oder Webinar", + "howSales": "Vertriebsansprache", + "howOther": "Sonstiges", "country": "Land", - "people": "Wie viele Personen sind Teil Ihres Teams?", "share": "Ich bin einverstanden, dies mit dem Baserow-Team zu teilen" }, "teamStep": { "description": "Zu welchem Team gehören Sie?", - "financeTeam": "Finanzwesen", - "creativeProductionTeam": "Kreativbereich", - "salesAndAccountManagementTeam": "Vertrieb & Kundenbetreuung", - "otherPersonalTeam": "Sonstiges / Persönlich", "marketingTeam": "Marketing", - "title": "Lassen Sie uns gemeinsam Ihren ersten Arbeitsbereich einrichten!", - "itAndSupportTeam": "IT & Support", "productAndDesignTeam": "Produkt & Design", "engineeringTeam": "Technik", "operationsTeam": "Betrieb", + "itAndSupportTeam": "IT & Support", "hrAndLegalTeam": "Personal- & Rechtsabteilung", + "financeTeam": "Finanzwesen", + "creativeProductionTeam": "Kreativbereich", + "salesAndAccountManagementTeam": "Vertrieb & Kundenbetreuung", "customerServiceTeam": "Kundenservice", - "manufacturingTeam": "Fertigung" + "manufacturingTeam": "Fertigung", + "otherPersonalTeam": "Sonstiges / Persönlich" }, - "workspaceStep": { - "title": "Erstellen Sie Ihren Arbeitsbereich", - "workspaceLabel": "Name des Arbeitsbereichs" + "colorInput": { + "default": "Standard" }, - "dashboardApplication": { - "createdAt": "erstellt" + "colorPickerContext": { + "pickColorPlaceholder": "Oder wählen Sie eine vordefinierte Farbe" }, - "templateCard": { - "viewMore": "Mehr anzeigen" + "imageInput": { + "labelDescription": "Wählen Sie ein Bild zum Hochladen aus...", + "labelButton": "Hochladen" }, "user": { "isStaff": "Ist Personal", @@ -880,12 +990,11 @@ "delete": "Arbeitsbereich {name} löschen" }, "activeUsers": { - "newUsers": "Neuer Benutzer", - "activeUsers": "Aktive Nutzer" + "newUsers": "Neue Benutzer", + "activeUsers": "Aktive Benutzer" }, "usersAdminTable": { "allUsers": "Alle Benutzer", - "id": "ID", "username": "Benutzername", "name": "Name", "workspaces": "Arbeitsbereiche", @@ -908,7 +1017,7 @@ }, "userForm": { "fullName": "Vollständiger Name", - "email": "Email", + "email": "E-Mail", "isActive": "Ist aktiv", "warning": { "changeEmail": "Die Änderung der E-Mail-Adresse des Benutzers bedeutet, dass er sich mit der neuen E-Mail-Adresse anmelden muss, wenn er sich anmeldet. Dies muss dem Benutzer mitgeteilt werden.", @@ -921,7 +1030,7 @@ } }, "changeUserPasswordModal": { - "changePassword": "Passwort für {Benutzername} ändern" + "changePassword": "Passwort für {username} ändern" }, "deleteUserModal": { "title": "Löschen {username}", @@ -934,12 +1043,16 @@ "delete": "Benutzer löschen", "edit": "Bearbeiten { username }" }, + "twoFactorAuthField": { + "enabled": "Aktiviert", + "disabled": "Deaktiviert" + }, "adminDashboard": { "title": "Dashboard", "totals": "Summen", "totalUsers": "Anzahl der Benutzer", "totalWorkspaces": "Gesamtzahl der Arbeitsbereiche", - "totalApplications": "Gesamtanzahl der Anträge", + "totalApplications": "Gesamtanzahl der Anwendungen", "newUsers": "Neue Benutzer", "newUsers24h": "Neue Benutzer in den letzten 24 Stunden", "newUsers7days": "Neue Benutzer in den letzten 7 Tagen", @@ -950,80 +1063,93 @@ "activeUsers30days": "Aktive Benutzer in den letzten 30 Tagen", "viewAll": "Alle anzeigen" }, - "exportWorkspaceModal": { - "title": "Exportieren", - "description": "Ihre Daten werden als ZIP-Datei exportiert, die in andere Baserow-Instanzen importiert werden kann.", - "exportSettings": "Einstellungen exportieren", - "export": "Daten exportieren", - "reset": "Von vorne beginnen", - "cancel": "Abbrechen", - "download": "Herunterladen", - "noExports": "Für diesen Arbeitsbereich gibt es noch keine Exporte.", - "created": "erstellt", - "exportingState": "Exportiere", - "exportingTableState": "Exportiere Tabelle: {table}", - "exportingCreateArchiveState": "Erstelle Archiv" + "formGroup": { + "protectedField": "Dieses Feld ist geschützt. Klicken Sie hier, um es zu ändern.", + "cancelProtectedField": "Änderung abbrechen" }, - "exportWorkspaceForm": { - "onlyStructureLabel": "Nur die Struktur exportieren", - "onlyStructureDescription": "Wenn diese Option aktiviert ist, wird nur die Struktur der Anwendungen exportiert. Die Daten werden nicht enthalten sein.", - "exportSettingsLabel": "Einstellungen exportieren", - "selectDataToExport": "Zu exportierende Daten auswählen", - "selectAll": "Alles auswählen", - "deselectAll": "Alle abwählen" + "userSourceType": { + "userCountSummary": "{count} Benutzer ({lastUpdated})" }, - "importWorkspaceModal": { - "databases": "Datenbanken", - "untrustedPublicKeyMessage": "Die bereitgestellte Datei wurde mit einem nicht vertrauenswürdigen öffentlichen Schlüssel signiert. Bitten Sie Ihren Administrator, den öffentlichen Schlüssel zur Liste der vertrauenswürdigen Schlüssel hinzuzufügen oder die Signaturprüfung zu deaktivieren, um diese Datei importieren zu können.", - "retry": "Wiederholen", - "description": "Sie können bestehende Baserow-Daten importieren, indem Sie die .zip-Datei einer anderen Baserow-Instanz hochladen.", - "import": "Daten importieren", - "upload": "Hochladen", - "cancel": "Abbrechen", - "done": "Abgeschlossen", - "close": "Schließen", - "uploading": "Hochladen...", - "chooseFile": "Datei auswählen", - "selectApplications": "Zu importierende Daten auswählen", - "deselectAll": "Alle abwählen", - "selectAll": "Alle auswählen", - "applications": "Anwendungen", - "successTitle": "Baserow-Daten erfolgreich importiert", - "successMessage": "{count} Anwendungen importiert", - "signatureVerificationNote": "Es ist nicht möglich, eine ZIP-Datei aus einer nicht vertrauenswürdigen Quelle zu importieren.", - "invalidResourceTitle": "Ungültige Ressource", - "invalidResourceMessage": "Die bereitgestellte Datei ist kein gültiger Baserow-Export.", - "untrustedPublicKeyTitle": "Nicht vertrauenswürdige Signatur", - "importingState": "Importiere", - "title": "Baserow-Daten importieren", - "uploadAndImport": "Hochladen & Importieren", - "importingTableStructure": "Erstelle: {table}", - "importingTableData": "Importiere Daten: {table}" + "guidedTourStep": { + "step": "{step} von {totalSteps}", + "gotIt": "Verstanden", + "next": "Weiter", + "back": "Zurück" }, - "importWorkspaceForm": { - "selectApplicationsToImport": "Zu importierende Anwendungen auswählen" + "welcomeGuidedTourStep": { + "title": "Willkommen bei Baserow", + "content": "Lassen Sie uns einen kurzen Rundgang machen, um Sie mit den Grundlagen vertraut zu machen. In nur wenigen Klicks lernen Sie, wie Sie Ihre Daten mühelos organisieren und visualisieren können", + "buttonText": "Tour starten" }, - "workspaceSearch": { - "title": "Suche", - "searchEverything": "Suchen...", - "searching": "Wird gesucht...", - "noResults": "Keine Ergebnisse gefunden", - "noResultsSubtitle": "Wir konnten nichts finden, das „{searchTerm}“ entspricht", - "welcome": "Alles in Ihrem Workspace durchsuchen", - "welcomeSubtitle": "Verwenden Sie das Suchfeld oben, um Anwendungen, Tabellen, Felder und mehr zu finden", - "navigate": "Navigieren", - "select": "Auswählen", - "close": "Schließen", - "empty": "(leer)", - "types": { - "applications": "Anwendungen", - "tables": "Tabellen", - "fields": "Felder", - "rows": "Zeilen" - } + "controlCenterGuidedTourStep": { + "title": "Ihre Baserow-Schaltzentrale", + "content": "Die linke Seitenleiste hilft Ihnen, Ihren Arbeitsbereich zu verwalten:\n\n- Startseite – Greifen Sie auf Ihr Haupt-Dashboard zu.\n- Benachrichtigungen – Bleiben Sie über Änderungen und Erwähnungen informiert.\n- Mitglieder einladen – Arbeiten Sie zusammen, indem Sie Teammitglieder hinzufügen.\n- Papierkorb – Listen Sie alle gelöschten Elemente auf und stellen Sie sie wieder her." }, - "action": { - "cancel": "Abbrechen", - "submit": "Senden" + "createNewGuidedTourStep": { + "title": "Neue Datenbank oder Anwendung erstellen", + "content": "Klicken Sie auf „Neu hinzufügen…“, um eine neue Datenbank, Anwendung oder ein neues Dashboard für Ihr Projekt, Ihre Abteilung oder Ihr Team einzurichten." + }, + "mcpEndpointSettings": { + "title": "MCP-Server", + "createEndpoint": "Endpunkt erstellen", + "createNewTitle": "MCP-Server-Endpunkt erstellen", + "backToOverview": "Zurück", + "noEndpointsMessage": "Es wurden keine MCP-Server-Endpunkte (Model Context Protocol) hinzugefügt. Diese können verwendet werden, um direkt mit einem LLM wie Claude zu integrieren und dem LLM zu erlauben, Aktionen direkt in Baserow auszuführen. Erstellen Sie einen Server-Endpunkt, um zu beginnen." + }, + "mcpEndpointForm": { + "nameLabel": "Name", + "workspaceLabel": "Arbeitsbereich" + }, + "mcpEndpoint": { + "detailLabel": "Weitere Details", + "endpointURLIntro": "Die MCP-Server-URL (Model Context Protocol) kann zu jedem Client hinzugefügt werden, der MCP-Server unterstützt. Es handelt sich um einen eindeutigen Endpunkt, der dem LLM in Ihrem Auftrag direkten Zugriff auf Aktionen im Arbeitsbereich gewährt.", + "reveal": "Vollständige URL anzeigen", + "warning": "Behandeln Sie Ihre MCP-URL wie ein Passwort, da sie die Möglichkeit hat, Daten in Baserow zu ändern.", + "claudeInstructions": "Drei einfache Schritte, um mit Claude Desktop und dem Baserow MCP zu beginnen.\n\n1. Öffnen Sie die Claude Desktop-Einstellungen über die Navigationsleiste. (⌘+,)\n1. Wechseln Sie zur Registerkarte „Develop“ und klicken Sie auf „Edit Config“.\n1. Fügen Sie die folgende JSON-Konfiguration in `claude_desktop_config.json` ein.", + "cursorInstructions": "Drei einfache Schritte, um mit Cursor und dem Baserow MCP zu beginnen.\n\n1. Öffnen Sie die Cursor-Einstellungen (⇧+⌘+J)\n1. Navigieren Sie zur Registerkarte „MCP“ und klicken Sie auf „Add MCP Server“\n1. Fügen Sie die folgende JSON-Konfiguration hinzu.", + "windsurfInstructions": "Zwei einfache Schritte, um MCP mit Cascade in Windsurf einzurichten.\n\n1. Navigieren Sie zu Windsurf - Settings -> Advanced Settings oder Command Palette -> Open Windsurf settings page.\n1. Scrollen Sie nach unten zum Abschnitt Cascade. Dort finden Sie die Option, einen neuen Server hinzuzufügen, vorhandene Server anzuzeigen, und eine Schaltfläche, um die JSON-Konfigurationsdatei `mcp_config.json` direkt anzuzeigen. Fügen Sie das Folgende hinzu:" + }, + "coreHTTPTriggerServiceForm": { + "title": "Webhook-URL", + "urlVersion": "Version", + "urlVersionPublished": "Veröffentlicht", + "urlVersionTest": "Test", + "copyUrl": "Webhook-URL kopieren", + "urlCopied": "Webhook-URL in die Zwischenablage kopiert", + "description": "Dieser Webhook empfängt HTTP-Anfragen und löst den Workflow mit den Anfragedaten als Nutzlast aus.", + "methodsOptionLabel": "Erlaubte HTTP-Methoden", + "methodsOptionDescription": "Steuert, welche HTTP-Methoden für diesen Webhook erlaubt sind. Das Ausschließen von GET reduziert die Wahrscheinlichkeit, dass der Webhook versehentlich ausgelöst wird.", + "methodsOptionAll": "Alle", + "methodsOptionExcludeGet": "GET ausschließen" + }, + "twoFactorAuthEmpty": { + "title": "Sie haben 2FA noch nicht aktiviert", + "description": "Fügen Sie Ihrem Konto eine zusätzliche Sicherheitsebene hinzu.", + "enable": "2FA aktivieren", + "notAllowedTitle": "2FA nicht aktiviert", + "notAllowedDescription": "Das Hinzufügen von 2FA ist nur bei passwortbasierten Konten möglich." + }, + "nodeHelpTooltip": { + "exampleLabel": "Beispiel", + "result": "Ergebnis: {result}" + }, + "enableWithQRCode": { + "scanQRCode": "QR-Code scannen", + "scanQRCodeDescription": "Scannen Sie den Code mit einer App wie Google Authenticator, Authy oder Microsoft Authenticator.", + "clickToCopy": "Alternativ können Sie hier klicken, um den Code zu kopieren.", + "secretCopiedTitle": "Geheimnis kopiert", + "secretCopiedMessage": "TOTP-Geheimnis in die Zwischenablage kopiert.", + "enterCode": "Geben Sie den angezeigten Code ein", + "enterCodeDescription": "Geben Sie den 6-stelligen Code ein, der von der App angezeigt wird, um zu bestätigen, dass Sie sie korrekt eingerichtet haben.", + "verificationFailed": "Verifizierung fehlgeschlagen", + "verificationFailedDescription": "Der eingegebene Code ist nicht gültig.", + "provisioningFailed": "Bereitstellung fehlgeschlagen", + "checkSuccess": "Zwei-Faktor-Authentifizierung erfolgreich aktiviert" + }, + "adminUsers": { + "title": "Benutzer" + }, + "adminWorkspaces": { + "title": "Arbeitsbereiche" } } diff --git a/web-frontend/modules/core/locales/es.json b/web-frontend/modules/core/locales/es.json index a2601d74fc..b09d5eb3dd 100644 --- a/web-frontend/modules/core/locales/es.json +++ b/web-frontend/modules/core/locales/es.json @@ -281,7 +281,10 @@ "errorLinkExpiredMessage": "El enlace de restablecimiento de contraseña ha caducado. Solicite otro.", "disabled": "El restablecimiento de la contraseña está desactivado", "disabledMessage": "No es posible restablecer la contraseña porque ha sido desactivada.", - "message": "Ya puede iniciar sesión en Baserow con su nueva contraseña." + "message": "Ya puede iniciar sesión en Baserow con su nueva contraseña.", + "repeatPasswordPlaceholder": "Repite tu nueva contraseña", + "errorLinkAlreadyUsedTitle": "Enlace ya utilizado", + "errorLinkAlreadyUsedMessage": "Este enlace de restablecimiento de contraseña ya ha sido utilizado. Por favor, solicita uno nuevo." }, "signup": { "headTitle": "Crear una cuenta", diff --git a/web-frontend/modules/core/locales/ko.json b/web-frontend/modules/core/locales/ko.json index 94d32e889d..89ac534bce 100644 --- a/web-frontend/modules/core/locales/ko.json +++ b/web-frontend/modules/core/locales/ko.json @@ -474,7 +474,10 @@ "errorLinkExpiredTitle": "링크 만료", "errorLinkExpiredMessage": "비밀번호 재설정 링크가 만료되었습니다. 다른 링크를 요청하세요.", "disabled": "비밀번호 재설정이 비활성화됨", - "disabledMessage": "비밀번호를 재설정할 수 없습니다. 비활성화되었습니다." + "disabledMessage": "비밀번호를 재설정할 수 없습니다. 비활성화되었습니다.", + "repeatPasswordPlaceholder": "새 비밀번호를 다시 입력하세요", + "errorLinkAlreadyUsedTitle": "링크가 이미 사용되었습니다", + "errorLinkAlreadyUsedMessage": "이 비밀번호 재설정 링크는 이미 사용되었습니다. 새 링크를 요청해 주세요." }, "signup": { "headTitle": "계정 생성", diff --git a/web-frontend/modules/dashboard/locales/de.json b/web-frontend/modules/dashboard/locales/de.json index 3b4525ebf0..0315fc7436 100644 --- a/web-frontend/modules/dashboard/locales/de.json +++ b/web-frontend/modules/dashboard/locales/de.json @@ -33,7 +33,7 @@ "aggregateRowsDataSourceForm": { "data": "Daten", "sourceFieldLabel": "Quelle", - "viewFieldLabel": "Anzeigen", + "viewFieldLabel": "Ansicht", "notSelected": "Nicht ausgewählt", "aggregationFieldLabel": "Feld", "aggregationTypeLabel": "Zusammenfassung" diff --git a/web-frontend/modules/database/components/view/grid/GridView.vue b/web-frontend/modules/database/components/view/grid/GridView.vue index 96719025c1..a037284a87 100644 --- a/web-frontend/modules/database/components/view/grid/GridView.vue +++ b/web-frontend/modules/database/components/view/grid/GridView.vue @@ -455,11 +455,8 @@ import GridViewFreezeHandle from '@baserow/modules/database/components/view/grid import GridViewRowDragging from '@baserow/modules/database/components/view/grid/GridViewRowDragging' import RowEditModal from '@baserow/modules/database/components/row/RowEditModal' import gridViewHelpers from '@baserow/modules/database/mixins/gridViewHelpers' -import { - filterHiddenFieldsFunction, - filterVisibleFieldsFunction, - sortFieldsByOrderAndIdFunction, -} from '@baserow/modules/database/utils/view' +import { sortFieldsByOrderAndIdFunction } from '@baserow/modules/database/utils/view' +import { filterGridViewVisibleFieldsFunction } from '@baserow/modules/database/components/view/grid/utils' import viewHelpers from '@baserow/modules/database/mixins/viewHelpers' import { isElement } from '@baserow/modules/core/utils/dom' import viewDecoration from '@baserow/modules/database/mixins/viewDecoration' @@ -548,7 +545,7 @@ export default { rightVisibleFields() { const fieldOptions = this.fieldOptions return this.rightFields - .filter(filterVisibleFieldsFunction(fieldOptions)) + .filter(filterGridViewVisibleFieldsFunction(fieldOptions)) .sort(sortFieldsByOrderAndIdFunction(fieldOptions, true)) }, /** @@ -556,8 +553,9 @@ export default { */ hiddenFields() { const fieldOptions = this.fieldOptions + const isFieldVisible = filterGridViewVisibleFieldsFunction(fieldOptions) return this.rightFields - .filter(filterHiddenFieldsFunction(fieldOptions)) + .filter((field) => !isFieldVisible(field)) .sort(sortFieldsByOrderAndIdFunction(fieldOptions)) }, viewHasGroupBys() { @@ -585,7 +583,8 @@ export default { }, /** * Returns the fields that should be displayed in the frozen left section. - * Takes the first N *visible* fields in sort order (primary always first). + * Takes the first N fields visible in the grid in sort order. The primary + * field is always included, even if its field options mark it as hidden. */ leftFields() { if (!this.hasFrozenColumns) { @@ -594,7 +593,7 @@ export default { const fieldOptions = this.fieldOptions const sorted = this.fields .slice() - .filter(filterVisibleFieldsFunction(fieldOptions)) + .filter(filterGridViewVisibleFieldsFunction(fieldOptions)) .sort(sortFieldsByOrderAndIdFunction(fieldOptions, true)) return sorted.slice(0, this.frozenColumnCount) }, @@ -1790,7 +1789,7 @@ export default { const fieldOptions = this.fieldOptions const sorted = this.fields .slice() - .filter(filterVisibleFieldsFunction(fieldOptions)) + .filter(filterGridViewVisibleFieldsFunction(fieldOptions)) .sort(sortFieldsByOrderAndIdFunction(fieldOptions, true)) const frozenWidth = sorted .slice(0, this.frozenColumnCount) diff --git a/web-frontend/modules/database/components/view/grid/GridViewFreezeHandle.vue b/web-frontend/modules/database/components/view/grid/GridViewFreezeHandle.vue index 0e2cb6672f..0cb921d3b8 100644 --- a/web-frontend/modules/database/components/view/grid/GridViewFreezeHandle.vue +++ b/web-frontend/modules/database/components/view/grid/GridViewFreezeHandle.vue @@ -32,10 +32,8 @@