Merge branch 'release/12.4' into 44962-re-think-and-harmonize-the-icon-used-for-premium-enterprise-features

pull/11723/head
Behrokh Satarnejad 2 years ago committed by GitHub
commit 5ef78a05e1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 12
      app/services/users/set_attributes_service.rb
  2. 64
      config/locales/crowdin/de.yml
  3. 14
      config/locales/crowdin/es.yml
  4. 110
      config/locales/crowdin/js-de.yml
  5. 20
      config/locales/crowdin/js-es.yml
  6. 4
      config/locales/en.yml
  7. 4
      config/locales/js-en.yml
  8. 4
      frontend/src/app/features/calendar/te-calendar/te-calendar.component.ts
  9. 1
      frontend/src/app/features/work-packages/components/wp-card-view/wp-single-card/wp-single-card.component.sass
  10. 12
      frontend/src/app/shared/components/modals/preview-modal/wp-preview-modal/wp-preview.modal.html
  11. 2
      frontend/src/app/shared/components/modals/preview-modal/wp-preview-modal/wp-preview.modal.ts
  12. 4
      modules/boards/config/locales/crowdin/js-de.yml
  13. 2
      modules/boards/config/locales/crowdin/js-es.yml
  14. 4
      modules/grids/config/locales/crowdin/js-de.yml
  15. 2
      modules/grids/config/locales/crowdin/js-es.yml
  16. 6
      modules/storages/config/locales/crowdin/js-de.yml
  17. 2
      modules/team_planner/config/locales/crowdin/js-de.yml
  18. 12
      spec/requests/api/v3/user/create_form_resource_spec.rb
  19. 7
      spec/services/users/set_attributes_service_spec.rb

@ -48,9 +48,8 @@ module Users
def set_default_attributes(params)
# Assign values other than mail to new_user when invited
if model.invited? && model.valid_attribute?(:mail)
assign_invited_attributes!(params)
end
assign_name_attributes_from_mail(params) if model.invited? && model.valid_attribute?(:mail)
assign_default_language
model.notification_settings.build unless model.notification_settings.any?
end
@ -62,16 +61,19 @@ module Users
end
# rubocop:disable Metrics/AbcSize
def assign_invited_attributes!(params)
def assign_name_attributes_from_mail(params)
placeholder = placeholder_name(params[:mail])
model.login = model.login.presence || params[:mail]
model.firstname = model.firstname.presence || placeholder.first
model.lastname = model.lastname.presence || placeholder.last
model.language = model.language.presence || Setting.default_language
end
# rubocop:enable Metrics/AbcSize
def assign_default_language
model.language = model.language.presence || Setting.default_language
end
##
# Creates a placeholder name for the user based on their email address.
# For the unlikely case that the local or domain part of the email address

@ -49,7 +49,7 @@ de:
main-menu-border-color: "Rahmenfarbe des Hauptmenüs"
custom_colors: "Benutzerdefinierte Farben"
customize: "Passen Sie Ihre OpenProject Installation mit Ihrem eigenen Logo und eigenen Farben an."
enterprise_notice: "As a special 'Thank you!' for their financial contribution to develop OpenProject, this tiny feature is only available for Enterprise edition support subscribers."
enterprise_notice: "Als ein besonderes Dankeschön für Ihre finanzielle Unterstützung in der Entwicklung von OpenProject ist diese Funktionalität nur in Verknüpfung mit einem Enterprise-Edition Abonnement verfügbar."
enterprise_more_info: "Hinweis: Das verwendete Logo wird öffentlich zugänglich sein."
manage_colors: "Farbauswahloptionen bearbeiten"
instructions:
@ -64,15 +64,15 @@ de:
main-menu-bg-color: "Hintergrundfarbe des Menüs in der linken Seitenleiste."
theme_warning: Das Ändern des Themes wird Ihr benutzerdefiniertes Design überschreiben. Alle Änderungen werden dann verloren gehen. Sind Sie sicher, dass Sie fortfahren möchten?
enterprise:
upgrade_to_ee: "Upgrade to the Enterprise edition"
add_token: "Upload an Enterprise edition support token"
upgrade_to_ee: "Auf Enterprise-Edition upgraden"
add_token: "Enterprise-Edition Support Token hochladen"
delete_token_modal:
text: "Are you sure you want to remove the current Enterprise edition token used?"
text: "Sind Sie sicher, dass Sie das aktuelle Enterprise Edition-Token entfernen möchten?"
title: "Token löschen"
replace_token: "Aktuellen Enterprise-Edition Support Token ersetzen"
order: "Order Enterprise on-premises edition"
paste: "Paste your Enterprise edition support token"
required_for_feature: "This feature is only available with an active Enterprise edition support token."
order: "Enterprise on-premises bestellen"
paste: "Enterprise-Edition Support Token hier einfügen"
required_for_feature: "Diese Funktion ist nur mit einem aktiven Enterprise-Edition-Support Token verfügbar."
enterprise_link: "Klicken Sie hier für weitere Informationen."
start_trial: 'Kostenlose Testversion starten'
book_now: 'Jetzt buchen'
@ -80,7 +80,7 @@ de:
buttons:
upgrade: "Jetzt Upgrade durchführen"
contact: "Kontaktieren Sie uns für eine Demo"
enterprise_info_html: "is an Enterprise <span class='spot-icon spot-icon_enterprise-badge'></span> feature."
enterprise_info_html: "ist ein Enterprise <span class='spot-icon spot-icon_enterprise-badge'></span> Add-on."
upgrade_info: "Bitte steigen Sie auf einen kostenpflichtigen Plan um, um diese Funktion zu aktivieren und in Ihrem Team zu verwenden."
journal_aggregation:
explanation:
@ -136,7 +136,7 @@ de:
Wenn Sie dieses Häkchen setzen, erstellt OpenProject automatisch neue Benutzer aus ihren zugehörigen LDAP-Einträgen, wenn sie sich zuerst mit OpenProject anmelden.
Lassen Sie sie deaktiviert, um nur existierenden Konten in OpenProject die Authentifizierung über LDAP zu ermöglichen!
connection_encryption: 'Verbindungsverschlüsselung'
encryption_details: 'LDAPS / STARTTLS options'
encryption_details: 'LDAPS / STARTTLS Optionen'
system_account: 'Systemkonto'
system_account_legend: |
OpenProject benötigt lesenden Zugriff über ein LDAP-Systemkonto, um Benutzer und Gruppen in Ihrem LDAP-Baum zu suchen.
@ -149,16 +149,16 @@ de:
plain: 'keine'
simple_tls: 'LDAPS'
start_tls: 'STARTTLS'
plain_description: "Opens an unencrypted connection to the LDAP server. Not recommended for production."
simple_tls_description: "Use LDAPS. Requires a separate port on the LDAP server. This mode is often deprecated, we recommend using STARTTLS whenever possible."
start_tls_description: "Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections."
plain_description: "Öffnet eine unverschlüsselte Verbindung zum LDAP-Server. Wird für Produktionsumgebungen nicht empfohlen."
simple_tls_description: "LDAPS verwenden. Benötigt einen separaten Port auf dem LDAP-Server. Dieser Modus ist oft veraltet, wir empfehlen STARTTLS zu verwenden, wann immer dies möglich ist."
start_tls_description: "Sendet einen STARTTLS-Befehl nach der Verbindung zum Standard-LDAP-Port. Empfohlen für verschlüsselte Verbindungen."
section_more_info_link_html: >
Dieser Abschnitt betrifft die Verbindungssicherheit dieser LDAP-Authentifizierungsquelle. Besuchen Sie für weitere Informationen die <a href="%{link}">Net::LDAP Dokumentation</a>.
tls_options:
verify_peer: "Verify SSL certificate"
verify_peer: "SSL-Zertifikat überprüfen"
verify_peer_description_html: >
Enables strict SSL verification of the certificate trusted chain. <br/> <strong>Warning:</strong> Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks.
tls_certificate_description: "If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string."
Aktiviert die strikte SSL-Überprüfung der vertrauenswürdigen Zertifikatskette. <br/> <strong>Warnung:</strong> Ausstellen dieser Option deaktiviert die SSL-Überprüfung des LDAP-Serverzertifikats. Ihre Verbindung wird anfällig für Man-In-The-Middle (MITM) Angriffe.
tls_certificate_description: "Wenn sich das LDAP-Server-Zertifikat nicht in den vertrauenswürdigen Quellen dieses Systems befindet, können Sie es hier manuell hinzufügen. Fügen Sie an dieser Stelle ein oder mehrere PEM X509 Zertifkate ein."
forums:
show:
no_results_title_text: Zur Zeit existieren keine Forumseinträge für dieses Forum.
@ -317,7 +317,7 @@ de:
settings: "Einstellungen"
form_configuration: "Formularkonfiguration"
more_info_text_html: >
Enterprise edition allows you to customize form configuration with these additional features: <br> <ul class="%{list_styling_class}"> <li><b>Add new attribute groups</b></li> <li><b>Rename attribute groups</b></li> <li><b>Add a table of related work packages</b></li> </ul>
Mit der Enterprise Edition können Sie die Formularkonfiguration mit diesen zusätzlichen Funktionen anpassen: <br> <ul class="%{list_styling_class}"> <li><b>Neue Attributgruppen hinzufügen</b></li> <li><b>Attributgruppen umbenennen</b></li> </li> <li><b>Eine Tabelle mit verwandten Arbeitspaketen hinzufügen</b></li> </ul>
projects: "Projekte"
enabled_projects: "Aktivierte Projekte"
edit_query: "Tabelle bearbeiten"
@ -420,7 +420,7 @@ de:
host: "Host"
onthefly: "Benutzer automatisch erzeugen"
port: "Port"
tls_certificate_string: "LDAP server SSL certificate"
tls_certificate_string: "LDAP-Server SSL-Zertifikat"
changeset:
repository: "Projektarchiv"
comment:
@ -582,7 +582,7 @@ de:
confirmation: "stimmt nicht mit %{attribute} überein."
could_not_be_copied: "%{dependency} konnte nicht (vollständig) kopiert werden."
does_not_exist: "existiert nicht."
error_enterprise_only: "%{action} is only available in the OpenProject Enterprise edition"
error_enterprise_only: "ist nur in OpenProject Enterprise on-premises verfügbar"
error_unauthorized: "kann nicht zugegriffen werden."
error_readonly: "wurde versucht zu beschreiben, ist aber nicht beschreibbar."
email: "ist keine gültige E-Mail-Adresse."
@ -632,7 +632,7 @@ de:
auth_source:
attributes:
tls_certificate_string:
invalid_certificate: "The provides SSL certificate is invalid: %{additional_message}"
invalid_certificate: "Das zur Verfügung gestellte SSL-Zertifikat ist ungültig: %{additional_message}"
format: "%{message}"
attachment:
attributes:
@ -766,8 +766,8 @@ de:
watcher:
attributes:
user_id:
not_allowed_to_view: "is not allowed to view this resource."
locked: "is locked."
not_allowed_to_view: "darf diese Ressource nicht sehen."
locked: "ist gesperrt."
wiki_page:
attributes:
slug:
@ -1284,7 +1284,7 @@ de:
error_cookie_missing: 'Das OpenProject Cookie fehlt. Bitte stellen Sie sicher, dass Cookies aktiviert sind, da diese Applikation ohne aktivierte Cookies nicht korrekt funktioniert.'
error_custom_option_not_found: "Option ist nicht vorhanden."
error_enterprise_activation_user_limit: "Ihr Konto konnte nicht aktiviert werden (Nutzerlimit erreicht). Bitte kontaktieren Sie Ihren Administrator um Zugriff zu erhalten."
error_enterprise_token_invalid_domain: "The Enterprise edition is not active. Your Enterprise token's domain (%{actual}) does not match the system's host name (%{expected})."
error_enterprise_token_invalid_domain: "Die Enterprise-Edition ist nicht aktiv. Die aktuelle Domain (%{actual}) entspricht nicht dem erwarteten Hostnamen (%{expected})."
error_failed_to_delete_entry: 'Fehler beim Löschen dieses Eintrags.'
error_in_dependent: "Fehler beim Versuch, abhängiges Objekt zu ändern: %{dependent_class} #%{related_id} - %{related_subject}: %{error}" #%{related_id} - %{related_subject}: %{error}"
error_in_new_dependent: "Fehler beim Versuch, abhängiges Objekt zu erstellen: %{dependent_class} - %{related_subject}: %{error}"
@ -1372,10 +1372,10 @@ de:
blocks:
community: "OpenProject Community"
upsale:
title: "Upgrade to Enterprise edition"
title: "Auf Enterprise-Edition upgraden"
more_info: "Weitere Informationen"
links:
upgrade_enterprise_edition: "Upgrade to Enterprise edition"
upgrade_enterprise_edition: "Auf Enterprise-Edition upgraden"
postgres_migration: "Migration Ihrer Installation zu PostgreSQL"
user_guides: "Benutzerhandbuch"
faq: "Häufig gestellte Fragen"
@ -1591,7 +1591,7 @@ de:
label_enumerations: "Aufzählungen"
label_enterprise: "Enterprise"
label_enterprise_active_users: "%{current}/%{limit} gebuchte aktive Nutzer"
label_enterprise_edition: "Enterprise edition"
label_enterprise_edition: "Enterprise Edition"
label_environment: "Umgebung"
label_estimates_and_time: "Schätzungen & Zeiten"
label_equals: "ist"
@ -2033,8 +2033,8 @@ de:
mentioned: 'Erwähnt'
subscribed: 'alle'
prefix: 'Erhalten aufgrund Benachrichtigungseinstellung: %{reason}'
date_alert_start_date: 'Date alert'
date_alert_due_date: 'Date alert'
date_alert_start_date: 'Datums-Erinnerung'
date_alert_due_date: 'Datums-Erinnerung'
see_all: 'Alle anzeigen'
updated_at: 'Aktualisiert %{timestamp} von %{user} '
mail_body_account_activation_request: "Ein neuer Benutzer (%{value}) hat sich registriert. Sein Konto wartet auf Ihre Genehmigung:"
@ -2606,11 +2606,11 @@ de:
text_custom_field_hint_activate_per_project_and_type: >
Benutzerdefinierte Felder müssen jeweils in Arbeitspaket-Typ und Projekt aktiviert werden.
text_wp_custom_field_html: >
The Enterprise edition will add these additional features for work packages' custom fields: <br> <ul> <li><b>Allow multi-select for custom fields of type List or User</b></li> </ul>
Die Enterprise Edition fügt diese zusätzlichen Funktionen für benutzerdefinierte Felder von Arbeitspaketen hinzu: <br> <ul> <li><b>Erlaubt Mehrfachauswahl für benutzerdefinierte Felder der Typenliste oder Benutzer</b></li> </ul>
text_wp_status_read_only_html: >
The Enterprise edition will add these additional features for work packages' statuses fields: <br> <ul> <li><b>Allow to mark work packages to read-only for specific statuses</b></li> </ul>
Die Enterprise Edition fügt diese zusätzlichen Funktionen für die Statusfelder der Arbeitspakete hinzu: <br> <ul> <li><b>Erlaubt die Markierung von Arbeitspaketen als read-only für bestimmte Status</b></li> </ul>
text_project_custom_field_html: >
The Enterprise edition will add these additional features for projects' custom fields: <br> <ul> <li><b>Add custom fields for projects to your Project list to create a project portfolio view</b></li> </ul>
Die Enterprise Edition fügt diese zusätzlichen Funktionen für die benutzerdefinierten Felder der Projekte hinzu: <br> <ul> <li><b>Fügt benutzerdefinierte Felder für Projekte zu Ihrer Projektliste hinzu, um eine Portfolioansicht zu erstellen</b></li> </ul>
text_custom_logo_instructions: >
Ein weißes Logo mit transparentem Hintergrund wird empfohlen. Für ein optimales Ergebnis für konventionelle und Retina-Displays sollte die Bildabmessungen 460 x 110 Pixel betragen.
text_custom_favicon_instructions: >
@ -2911,7 +2911,7 @@ de:
warning_user_limit_reached: >
Nutzerlimit erreicht. Sie können keine weiteren Nutzer aktivieren. Bitte <a href="%{upgrade_url}">upgraden Sie Ihren Tarif</a> oder blockieren Sie Mitglieder, um Platz für weitere Nutzer zu schaffen.
warning_user_limit_reached_instructions: >
You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users.
Du hast dein Nutzerlimit erreicht (%{current}/%{max} active users). Bitte kontaktiere sales@openproject.com um deinen Enterprise Edition Plan upzugraden und weitere Nutzer hinzuzufügen.
warning_protocol_mismatch_html: >
warning_bar:
@ -2952,7 +2952,7 @@ de:
api_v3:
attributes:
lock_version: "Version sperren"
property: 'Property'
property: 'Eigenschaft'
errors:
code_400: "Ungültige Anfrage: %{message}"
code_401: "Sie müssen sich authentifizieren, um auf die Ressource zugreifen zu können."

@ -80,7 +80,7 @@ es:
buttons:
upgrade: "Actualizar ahora"
contact: "Contáctenos para una demostración"
enterprise_info_html: "es una característica de la versión Enterprise <span class='spot-icon spot-icon_enterprise-badge'></span>."
enterprise_info_html: "es una funcionalidad de la versión Enterprise <span class='spot-icon spot-icon_enterprise-badge'></span>."
upgrade_info: "Actualice a un plan de pago para activarlo y empezar a usarlo en su equipo."
journal_aggregation:
explanation:
@ -1221,7 +1221,7 @@ es:
default_type_bug: "Error"
default_type_deliverable: "Entregable"
default_type_epic: "Epico"
default_type_feature: "Característica"
default_type_feature: "Funcionalidad"
default_type_milestone: "Avance"
default_type_phase: "Fase"
default_type_task: "Tarea"
@ -1260,11 +1260,11 @@ es:
ee:
upsale:
form_configuration:
description: "Personalice la configuración del formulario con estas características adicionales:"
description: "Personalice la configuración del formulario con estas funcionalidades adicionales:"
add_groups: "Añadir nuevos grupos de atributos"
rename_groups: "Cambiar nombre de grupos de atributos"
project_filters:
description_html: "Filtrar y ordenar en campos personalizados es una característica de edición empresarial."
description_html: "Filtrar y ordenar en campos personalizados es una funcionalidad de edición Enterprise."
enumeration_activities: "Actividades de seguimiento del tiempo"
enumeration_work_package_priorities: "Prioridades del paquete de trabajo"
enumeration_reported_project_statuses: "Estatus del proyecto reportado"
@ -1719,7 +1719,7 @@ es:
label_name: "Nombre"
label_never: "Nunca"
label_new: "Nuevo"
label_new_features: "Nuevas características"
label_new_features: "Nuevas funcionalidades"
label_new_statuses_allowed: "Nuevos estados permitidos"
label_news_singular: "Noticias"
label_news_added: "Noticias añadidas"
@ -1973,7 +1973,7 @@ es:
zero: "0 abiertos"
label_x_projects:
one: "1 proyecto"
other: "%{count} projectos"
other: "%{count} proyectos"
zero: "sin proyectos"
label_yesterday: "ayer"
label_role_type: "Tipo"
@ -2731,7 +2731,7 @@ es:
enable_type_in_project: 'Habilitar tipo "%{type}"'
end: "Final"
errors:
not_implemented: "La línea de tiempo no puede procesarse porque utiliza una característica que no se ha implementado todavía."
not_implemented: "La línea de tiempo no puede procesarse porque utiliza una funcionalidad que no se ha implementado todavía."
report_comparison: "La línea de tiempo no puede hacer las comparaciones configuradas. Consulte la sección pertinente en la configuración, re-iniciarla puede ayudar a resolver este problema."
report_epicfail: "No se pudo cargar la línea de tiempo debido a un error inesperado."
report_timeout: "No se pudo cargar la línea de tiempo en una cantidad razonable de tiempo."

@ -223,34 +223,34 @@ de:
status_label: "Status: "
status_confirmed: "bestätigt"
status_waiting: "E-Mail gesendet - Warten auf Bestätigung"
test_ee: "Test the Enterprise edition 14 days for free"
quick_overview: "Get a quick overview of project management and team collaboration with OpenProject Enterprise edition."
test_ee: "Testen Sie die Enterprise Edition 14 Tage kostenlos"
quick_overview: "Erhalten Sie einen schnellen Überblick über Projektmanagement und Teamzusammenarbeit mit der OpenProject Enterprise Edition."
upsale:
become_hero: "Werde zum Held!"
enterprise_info_html: "%{feature_title} is an Enterprise <span class='spot-icon spot-icon_enterprise-badge'></span> feature."
upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team."
enterprise_info_html: "ist ein Enterprise <span class='spot-icon spot-icon_enterprise-badge'></span> Add-on."
upgrade_info: "Bitte steigen Sie auf einen kostenpflichtigen Plan um, um dieses Add-on zu aktivieren und in Ihrem Team zu verwenden."
benefits:
description: "What are the benefits of the Enterprise on-premises edition?"
description: "Was sind die Vorteile von Enterprise on-premises?"
high_security: "Sicherheitsfunktionen"
high_security_text: "Single sign on (SAML, OpenID Connect, CAS), LDAP groups."
high_security_text: "Single Sign on (SAML, OpenID Connect, CAS), LDAP Gruppen."
installation: "Installations-Support"
installation_text: "Erfahrene Software-Ingenieure führen Sie durch den gesamten Installations- und Einrichtungsprozess in Ihrer eigenen Infrastruktur."
premium_features: "Enterprise add-ons"
premium_features: "Enterprise Add-ons"
premium_features_text: "Agile Boards, benutzerdefinierte Farben und Logo, Graphen, intelligente Workflows mit benutzerdefinierten Aktionen, Volltextsuche für Anhänge von Arbeitspaketen und Mehrfachauswahl benutzerdefinierter Felder."
professional_support: "Professioneller Support"
professional_support_text: "Sie bekommen zuverlässigen und persönlichen Support von Experten, die sich mit dem Einsatz von OpenProject in geschäftskritischen Umgebungen auskennen."
button_start_trial: "Kostenlose Testversion starten"
button_upgrade: "Jetzt Upgrade durchführen"
button_contact_us: "Contact us for a demo"
button_contact_us: "Kontaktieren Sie uns für eine Demo"
button_book_now: "Jetzt buchen"
confidence: >
OpenProject bietet eine bewährte und hoch-skalierbare Projektmanagement-Software für Unternehmen - mit Open Source und open mind.
link_quote: "Angebot anfordern"
more_info: "Weitere Informationen"
text: >
The OpenProject Enterprise edition builds on top of the Community edition. It includes enterprise add-ons and professional support mainly aimed at organizations with more than 10 users that manage business critical projects with OpenProject.
Die OpenProject Enterprise Edition baut auf der Community Edition auf. Sie umfasst Enterprise Add-ons und professionelle Unterstützung und richtet sich primär an Organisationen mit mehr als 10 Benutzern, die unternehmenskritische Projekte mit OpenProject verwalten.
unlimited: "Unbegrenzt"
you_contribute: "Developers need to pay their bills, too. By upgrading to the Enterprise edition, you will be supporting this open source community effort and contributing to its development, maintenance and continuous improvement."
you_contribute: "Auch Software-Entwickler müssen ihre Rechnungen bezahlen. Durch ein Upgrade auf die Enterprise Edition unterstützen Sie diese Open-Source-Community und tragen zur Entwicklung, Wartung und kontinuierlichen Verbesserung von OpenProject bei."
custom_actions:
date:
specific: 'am'
@ -280,7 +280,7 @@ de:
two: "Zweites Sortierkriterium"
three: "Drittes Sortierkriterium"
upsale_for_more: "Erweiterte Filter erlauben es Ihnen auch nach Dateinamen und Inhalten von Arbeitspaket-Anhängen zu filtern. Um diese Funktion zu nutzen, upgraden Sie bitte auf einen unserer kostenpflichtigen Enterprise-Pläne."
upsale_link: 'Enterprise edition.'
upsale_link: 'Enterprise Edition'
general_text_no: "nein"
general_text_yes: "ja"
general_text_No: "Nein"
@ -301,13 +301,13 @@ de:
#Otherwise, e.g. chinese might still have the translations for 10.0 in the 12.0 release.
'12_4':
standard:
learn_about_link: https://www.openproject.org/blog/openproject-12-4-release
learn_about_link: https://www.openproject.org/de/blog/openproject-12-4-release
new_features_html: >
The release contains various new features and improvements: <br> <ul class="%{list_styling_class}"> <li>Activate notification date alerts for upcoming dates and overdue tasks.</li> <li>We release two-factor authentication (2FA) for the Community edition.</li> <li>The work week display option is now also added to the team planner.</li> <li>List up to 3 people in a notification card when multiple people were involved in the changes.</li> </ul>
Die Version enthält verschiedene neue Funktionen und Verbesserungen: <br> <ul class="%{list_styling_class}"> <li>Datums-Erinnerungen für anstehende Termine und überfällige Aufgaben aktivieren.</li> <li>Wir stellen Zwei-Faktor-Authentifizierung (2FA) für die Community Edition zur Verfügung.</li> <li>Der Teamplaner erhält eine zusätzliche Arbeitswochen-Ansicht.</li> <li>Bis bis zu drei Personen werden in einer Benachrichtigungskarte aufgelistet, wenn mehrere Personen an den Änderungen beteiligt waren.</li> </ul>
bim:
learn_about_link: https://www.openproject.org/blog/openproject-12-4-release
learn_about_link: https://www.openproject.org/de/blog/openproject-12-4-release
new_features_html: >
The release contains various new features and improvements: <br> <ul class="%{list_styling_class}"> <li>Activate notification date alerts for upcoming dates and overdue tasks.</li> <li>We release two-factor authentication (2FA) for the Community edition.</li> <li>The work week display option is now also added to the team planner.</li> <li>List up to 3 people in a notification card when multiple people were involved in the changes.</li> </ul>
Die Version enthält verschiedene neue Funktionen und Verbesserungen: <br> <ul class="%{list_styling_class}"> <li>Datums-Erinnerungen für anstehende Termine und überfällige Aufgaben aktivieren.</li> <li>Wir stellen Zwei-Faktor-Authentifizierung (2FA) für die Community Edition zur Verfügung.</li> <li>Der Teamplaner erhält eine zusätzliche Arbeitswochen-Ansicht.</li> <li>Bis bis zu drei Personen werden in einer Benachrichtigungskarte aufgelistet, wenn mehrere Personen an den Änderungen beteiligt waren.</li> </ul>
label_activate: "Aktiviere"
label_assignee: 'Zugewiesen an'
label_add_column_after: "Spalte danach hinzufügen"
@ -399,7 +399,7 @@ de:
label_no_data: "Nichts anzuzeigen"
label_no_due_date: "kein Endtermin"
label_no_start_date: "kein Startdatum"
label_no_date: "no date"
label_no_date: "Kein Datum"
label_no_value: "Kein Wert"
label_none: "keine"
label_not_contains: "enthält nicht"
@ -548,18 +548,18 @@ de:
commented: 'kommentiert'
processed: 'verarbeitet'
prioritized: 'priorisiert'
dateAlert: 'Date alert'
dateAlert: 'Datums-Erinnerung'
date_alerts:
milestone_date: 'Milestone date'
overdue: 'Overdue'
overdue_since: 'since %{difference_in_days}'
property_today: 'is today'
property_is: 'is in %{difference_in_days}'
property_was: 'was %{difference_in_days} ago'
property_is_deleted: 'is deleted'
milestone_date: 'Datum des Meilensteins'
overdue: 'Überfällig'
overdue_since: 'seit %{difference_in_days}'
property_today: 'ist heute'
property_is: 'ist in %{difference_in_days}'
property_was: 'war vor %{difference_in_days}'
property_is_deleted: 'wurde gelöscht'
upsale:
title: 'Date alerts'
description: 'With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline.'
title: 'Datums-Erinnerungen'
description: 'Mit Datums-Erinnerungen werden Sie über bevorstehende Start- oder Endtermine informiert, so dass Sie nie einen wichtigen Termin verpassen oder übersehen.'
facets:
unread: 'Ungelesen'
unread_title: 'Ungelesene anzeigen'
@ -588,34 +588,34 @@ de:
menu:
accountable: 'Verantwortlich'
by_project: 'Ungelesen pro Projekt'
by_reason: 'Reason'
by_reason: 'Grund'
inbox: 'Eingang'
mentioned: 'Erwähnt'
watched: 'Beobachter'
date_alert: 'Date alert'
date_alert: 'Datums-Erinnerung'
settings:
change_notification_settings: 'Um Ihre Benachrichtigungseinstellungen anzuzeigen und zu ändern, <a target="_blank" href="%{url}">klicken Sie hier</a>'
title: "Benachrichtigungseinstellungen"
notify_me: "Benachrichtige mich"
reminders:
no_notification: No notification
no_notification: Keine Benachrichtigung
timeframes:
normal:
PT0S: same day
P1D: 1 day before
P3D: 3 days before
P7D: a week before
PT0S: am selben Tag
P1D: 1 Tag vorher
P3D: 3 Tage vorher
P7D: eine Woche vorher
overdue:
P1D: every day
P3D: every 3 days
P7D: every week
P1D: jeden Tag
P3D: alle 3 Tage
P7D: jede Woche
reasons:
mentioned:
title: 'Mentioned'
title: 'Erwähnt'
description: 'Jedes Mal eine Benachrichtigung erhalten, wenn ich irgendwo erwähnt werde'
assignee: 'Zugewiesen an'
responsible: 'Verantwortlich'
watched: 'Watcher'
watched: 'Beobachter'
work_package_commented: 'Alle neuen Kommentare'
work_package_created: 'Neue Arbeitspakete'
work_package_processed: 'Änderungen am Status'
@ -623,21 +623,21 @@ de:
work_package_scheduled: 'Alle Datumsänderungen'
global:
immediately:
title: 'Participating'
description: 'Notifications for all activities in work packages you are involved in (assignee, accountable or watcher).'
title: 'Beteiligt'
description: 'Benachrichtigungen für alle Aktivitäten in Arbeitspaketen, an denen Sie beteiligt sind (Beauftragter, Verantwortlicher oder Beobachter).'
delayed:
title: 'Non-participating'
description: 'Additional notifications for activities in all projects.'
title: 'Nicht beteiligt'
description: 'Zusätzliche Benachrichtigungen für Aktivitäten in allen Projekten.'
date_alerts:
title: 'Date alerts'
description: 'Automatic notifications when important dates are approaching for open work packages you are involved in (assignee, accountable or watcher).'
teaser_text: 'With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline.'
start_date: Start date
due_date: Finish date
overdue: When overdue
title: 'Datums-Erinnerungen'
description: 'Automatische Benachrichtigungen, wenn wichtige Termine für offene Arbeitspakete bevorstehen, an denen Sie beteiligt (z. B. zugewiesen, verantwortlich oder Beobachter) sind.'
teaser_text: 'Mit Datums-Erinnerungen werden Sie über bevorstehende Start- oder Endtermine informiert, so dass Sie nie einen wichtigen Termin verpassen oder übersehen.'
start_date: Anfangstermin
due_date: Endtermin
overdue: Wenn überfällig
project_specific:
title: 'Projektspezifische Benachrichtigungseinstellungen'
description: 'These project-specific settings override default settings above.'
description: 'Diese projektspezifischen Einstellungen überschreiben die Standardeinstellungen oben'
add: 'Einstellung für Projekt hinzufügen'
already_selected: 'Dieses Projekt ist bereits ausgewählt'
remove: 'Projektspezifische Einstellungen entfernen'
@ -708,8 +708,8 @@ de:
reset_title: "Formularkonfiguration zurücksetzen"
confirm_reset: >
Achtung: Wollen Sie die Formkonfiguration wirklich zurücksetzen? Alle Attribute und Gruppen werden auf ihre Standardwerte zurück gesetzt und ALLE benutzerdefinierten Felder entfernt.
upgrade_to_ee: "Upgrade to Enterprise on-premises edition"
upgrade_to_ee_text: "Wow! If you need this feature you are a super pro! Would you mind supporting us OpenSource developers by becoming an Enterprise edition client?"
upgrade_to_ee: "Enterprise on-premises bestellen"
upgrade_to_ee_text: "Wow! Wenn du dieses Feature benötigst, bist du ein super Pro! Würdest du uns OpenProject-Entwickler unterstützen, indem du ein Enterprise Edition-Kunde wirst?"
more_information: "Weitere Informationen"
nevermind: "Nein danke"
edit:
@ -856,7 +856,7 @@ de:
zooms: "Zoomstufe"
outlines: "Hierarchie-Stufe"
upsale:
ee_only: 'Enterprise edition feature'
ee_only: 'Enterprise Add-on'
wiki_formatting:
strong: "Fett"
italic: "Kursiv"
@ -1047,7 +1047,7 @@ de:
upsale:
attribute_highlighting: 'Sollen bestimmte Arbeitspakete aus der Menge herausstechen?'
relation_columns: 'Möchten Sie Beziehungen als Spalten in der Arbeitspaketliste sehen können?'
check_out_link: 'Check out the Enterprise edition.'
check_out_link: 'Schauen Sie sich die Enterprise Edition an.'
relation_filters:
filter_work_packages_by_relation_type: 'Arbeitspakete nach Beziehungs-Typ filtern'
tabs:
@ -1191,9 +1191,9 @@ de:
description: 'Berechtigungen basierend auf der zugewiesenen Rolle im ausgewählten Projekt'
placeholder:
title: 'Platzhalter-Benutzer'
title_no_ee: 'Placeholder user (Enterprise edition only feature)'
title_no_ee: 'Platzhalter-Benutzer (nur Enterprise Edition)'
description: 'Hat keinen Zugriff auf das Projekt und es werden keine E-Mails verschickt.'
description_no_ee: 'Has no access to the project and no emails are sent out. <br>Check out the <a href="%{eeHref}" target="_blank">Enterprise edition</a>'
description_no_ee: 'Hat keinen Zugriff auf das Projekt und es werden keine E-Mails versendet. <br>Schau dir die <a href="%{eeHref}" target="_blank">Enterprise Edition an</a>'
principal:
label:
name_or_email: 'Name oder E-Mail-Adresse'

@ -228,11 +228,11 @@ es:
quick_overview: "Get a quick overview of project management and team collaboration with OpenProject Enterprise edition."
upsale:
become_hero: "¡Conviértete en un héroe!"
enterprise_info_html: "%{feature_title} es una característica de la versión Enterprise <span class='spot-icon spot-icon_enterprise-badge'></span>."
enterprise_info_html: "%{feature_title} es una funcionalidad de la versión Enterprise <span class='spot-icon spot-icon_enterprise-badge'></span>."
upgrade_info: "Actualice a un plan de pago para activarla y empiece a usarla en su equipo."
benefits:
description: "What are the benefits of the Enterprise on-premises edition?"
high_security: "Características de seguridad"
high_security: "Funcionalidades de seguridad"
high_security_text: "Inicio de sesión único (SAML, OpenID Connect, CAS), grupos LDAP."
installation: "Ayuda en la instalación"
installation_text: "Nuestros ingenieros de software especializados le guiarán en todo el proceso de instalación y configuración en su propia infraestructura."
@ -280,8 +280,8 @@ es:
one: "Primer criterio de ordenación"
two: "Segundo criterio de ordenación"
three: "Tercer criterio de ordenación"
upsale_for_more: "Los filtros avanzados te permiten también filtrar los nombres de los archivos y el contenido de los archivos adjuntos del paquete de trabajo. Por favor, actualice a un plan de pago para utilizar esta característica."
upsale_link: 'Enterprise edition.'
upsale_for_more: "Los filtros avanzados te permiten también filtrar los nombres de los archivos y el contenido de los archivos adjuntos del paquete de trabajo. Por favor, actualice a un plan de pago para utilizar esta funcionalidad."
upsale_link: 'Edición Enterprise.'
general_text_no: "no"
general_text_yes: "sí"
general_text_No: "No"
@ -296,8 +296,8 @@ es:
homescreen:
blocks:
new_features:
text_new_features: "Obtenga información sobre nuevas características y actualizaciones de productos."
learn_about: "Más información sobre las nuevas características"
text_new_features: "Obtenga información sobre nuevas funcionalidades y actualizaciones de productos."
learn_about: "Más información sobre las nuevas funcionalidades"
#Include the version to invalidate outdated translations in other locales.
#Otherwise, e.g. chinese might still have the translations for 10.0 in the 12.0 release.
'12_4':
@ -508,7 +508,7 @@ es:
project_selection: 'Haga clic en uno de los proyectos de demostración que hemos preparado. Los datos de demostración solo están disponibles en inglés actualmente. <br> El <b>proyecto general de demostración</b> es la opción recomendada para la gestión de proyectos clásica, mientras que el <b>proyecto de Scrum</b> es más adecuado para la gestión de proyectos Agile.'
quick_add_button: 'Haga clic en el icono del signo más (+) en el menú de navegación del encabezado para <b>crear un proyecto</b> o <b>invitar a compañeros</b>.'
sidebar_arrow: "Usa la flecha de retorno en la esquina superior izquierda para regresar al <b>menú principal</b> del proyecto."
welcome: 'Realice un paseo de introducción de tres minutos para conocer las <b>características más importantes</b>. <br> Le recomendamos que complete todos los pasos. Puede volver a iniciar el paseo en cualquier momento.'
welcome: 'Realice un paseo de introducción de tres minutos para conocer las <b>funcionalidades más importantes</b>. <br> Le recomendamos que complete todos los pasos. Puede volver a iniciar el paseo en cualquier momento.'
wiki: 'En la <b>wiki</b>, puede elaborar documentos y compartir conocimientos con su equipo.'
backlogs:
overview: "Administre su trabajo en la vista de <b>trabajos pendientes</b>."
@ -518,7 +518,7 @@ es:
task_board: "En el panel de tareas, se muestra el <b>progreso de este sprint</b>. Haga clic en el icono del signo más (+) junto a una historia de usuario para añadir nuevas tareas o impedimentos. <br> Puede actualizar el estado mediante las funciones de arrastrar y colocar."
boards:
overview: 'Seleccione los <b>paneles</b> para cambiar la vista y gestione su proyecto con la vista de paneles Agile.'
lists_kanban: 'Aquí puede crear varias listas (columnas) en el panel. Por ejemplo, esta característica le permite crear un <b>panel Kanban</b>.'
lists_kanban: 'Aquí puede crear varias listas (columnas) en el panel. Por ejemplo, esta funcionalidad le permite crear un <b>panel Kanban</b>.'
lists_basic: 'Aquí puede crear varias listas (columnas) en el panel Agile.'
add: 'Haga clic en el icono del signo más (+) para <b>crear una tarjeta</b> o <b>añadir una tarjeta existente</b> a la lista en el panel.'
drag: 'Arrastre y coloque las tarjetas en una lista específica para cambiar el orden o moverlas a otra lista. <br> Para ver los detalles, haga clic en el icono de información (i) de la esquina superior derecha o haga doble clic en una tarjeta.'
@ -857,7 +857,7 @@ es:
zooms: "Nivel de zoom"
outlines: "Nivel de jerarquía"
upsale:
ee_only: 'Enterprise edition feature'
ee_only: 'Funcionalidad de la edición Enterprise'
wiki_formatting:
strong: "Negrita"
italic: "Cursiva"
@ -1192,7 +1192,7 @@ es:
description: 'Permisos basados en el rol asignado en el proyecto seleccionado'
placeholder:
title: 'Usuario de marcador de posición'
title_no_ee: 'Placeholder user (Enterprise edition only feature)'
title_no_ee: 'Usuario de marcador de posición (funcionalidad solo edición Enterprise)'
description: 'No tiene acceso al proyecto y no se enviarán correos electrónicos.'
description_no_ee: 'Has no access to the project and no emails are sent out. <br>Check out the <a href="%{eeHref}" target="_blank">Enterprise edition</a>'
principal:

@ -89,7 +89,7 @@ en:
buttons:
upgrade: "Upgrade now"
contact: "Contact us for a demo"
enterprise_info_html: "is an Enterprise <span class='spot-icon spot-icon_enterprise-addons'></span> feature."
enterprise_info_html: "is an Enterprise <span class='spot-icon spot-icon_enterprise-addons'></span> add-on."
upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team."
journal_aggregation:
explanation:
@ -1319,7 +1319,7 @@ en:
add_groups: "Add new attribute groups"
rename_groups: "Rename attributes groups"
project_filters:
description_html: "Filtering and sorting on custom fields is an enterprise edition feature."
description_html: "Filtering and sorting on custom fields is an enterprise edition add-on."
enumeration_activities: "Time tracking activities"
enumeration_work_package_priorities: "Work package priorities"

@ -252,7 +252,7 @@ en:
quick_overview: "Get a quick overview of project management and team collaboration with OpenProject Enterprise edition."
upsale:
become_hero: "Become a hero!"
enterprise_info_html: "%{feature_title} is an Enterprise <span class='spot-icon spot-icon_enterprise-addons'></span> feature."
enterprise_info_html: "%{feature_title} is an Enterprise <span class='spot-icon spot-icon_enterprise-addons'></span> add-on."
upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team."
benefits:
description: "What are the benefits of the Enterprise on-premises edition?"
@ -930,7 +930,7 @@ en:
zooms: "Zoom level"
outlines: "Hierarchy level"
upsale:
ee_only: 'Enterprise edition feature'
ee_only: 'Enterprise edition add-on'
wiki_formatting:
strong: "Strong"
italic: "Italic"

@ -505,8 +505,12 @@ export class TimeEntryCalendarComponent {
}
private removeTooltip(event:CalendarViewEvent):void {
const target = jQuery(event.el);
if (target.tooltip('instance')) {
jQuery(event.el).tooltip('disable');
}
}
private prependDuration(event:CalendarViewEvent):void {
const timeEntry = event.event.extendedProps.entry as TimeEntryResource;

@ -96,6 +96,7 @@
grid-area: subject
@include text-shortener(false)
&-assignee
margin-right: auto
grid-area: avatar
max-width: 140px
color: $spot-color-basic-gray-3

@ -1,6 +1,10 @@
<div class="op-wp-preview-modal" wp-isolated-query-space *ngIf="workPackage">
<wp-single-card [workPackage]="workPackage"
<div
class="op-wp-preview-modal" wp-isolated-query-space
*ngIf="workPackage"
>
<wp-single-card
[workPackage]="workPackage"
orientation="horizontal"
(stateLinkClicked)="openStateLink($event)">
</wp-single-card>
(stateLinkClicked)="openStateLink($event)"
></wp-single-card>
</div>

@ -74,7 +74,7 @@ export class WpPreviewModalComponent extends OpModalComponent implements OnInit
this.workPackage = workPackage;
this.cdRef.detectChanges();
const modal = jQuery(this.elementRef.nativeElement).find('.op-wp-preview-modal');
const modal = jQuery(this.elementRef.nativeElement);
this.reposition(modal, this.locals.event.target);
});
}

@ -7,7 +7,7 @@ de:
label_unnamed_list: 'Unbenannte Liste'
label_board_type: 'Board-Typ'
upsale:
teaser_text: 'Would you like to automate your workflows with Boards? Advanced boards are an Enterprise add-on. Please upgrade to a paid plan.'
teaser_text: 'Möchten Sie Ihre Workflows mit Boards automatisieren? Erweiterte Boards sind ein Enterprise Add-on. Bitte upgraden Sie auf ein kostenpflichtiges Abonnement.'
upgrade: 'Jetzt Upgrade durchführen'
lists:
delete: 'Liste löschen'
@ -62,7 +62,7 @@ de:
status: Status
version: Version
subproject: Unterprojekt
subtasks: Parent-child
subtasks: Eltern-Kind
basic: Einfach
select_attribute: "Aktionsattribut"
add_list_modal:

@ -62,7 +62,7 @@ es:
status: Estado
version: Versión
subproject: Subproyecto
subtasks: Parent-child
subtasks: Padre-hijo
basic: Básico
select_attribute: "Atributo de acción"
add_list_modal:

@ -5,8 +5,8 @@ de:
remove: 'Widget entfernen'
configure: 'Widget konfigurieren'
upsale:
text: "Some widgets, like the work package graph widget, are only available in the Enterprise edition."
link: 'Enterprise edition.'
text: "Einige Widgets wie das Arbeitspaket-Graphen Widget sind nur in der Enterprise Edition verfügbar."
link: 'Enterprise Edition'
widgets:
custom_text:
title: 'Benutzerdefinierter Text'

@ -6,7 +6,7 @@ es:
configure: 'Configurar widget'
upsale:
text: "Some widgets, like the work package graph widget, are only available in the Enterprise edition."
link: 'Enterprise edition.'
link: 'Edición Enterprise.'
widgets:
custom_text:
title: 'Texto personalizado'

@ -29,9 +29,9 @@ de:
Sind Sie sicher, dass Sie die Verknüpfung der Datei aus diesem Arbeitspaket entfernen möchten? Das Entfernen der Verknüpfung wirkt sich nicht auf die Originaldatei aus und entfernt nur die Verbindung zu diesem Arbeitspaket.
remove_short: "Link entfernen"
select: "Dateien auswählen"
select_all: "Select all"
select_all: "Alle auswählen"
selection_none: "Dateien zum Verlinken auswählen"
selection_any: "%{number} Dateien verknüpfen"
not_allowed_tooltip: "Bitte melden Sie sich bei Nextcloud an, um auf diese Datei zuzugreifen"
already_linked_file: "This file is already linked to this work package."
already_linked_directory: "This directory is already linked to this work package."
already_linked_file: "Die Datei ist bereits mit diesem Arbeitspaket verknüpft."
already_linked_directory: "Das Verzeichnis ist bereits mit diesem Arbeitspaket verknüpft."

@ -12,7 +12,7 @@ de:
remove_assignee: 'Zugewiesenen Benutzer entfernen'
two_weeks: '2 Wochen'
one_week: '1 Woche'
work_week: 'Work week'
work_week: 'Arbeitswoche'
today: 'Heute'
drag_here_to_remove: 'Hierher ziehen, um den zugewiesenen Benutzer zu entfernen und die Start- und Enddaten zu löschen.'
cannot_drag_here: 'Das Arbeitspaket kann aufgrund von Berechtigungen oder Beschränkungen nicht entfernt werden.'

@ -51,7 +51,10 @@ describe ::API::V3::Users::CreateFormAPI, content_type: :json do
{}
end
it 'returns a payload with validation errors', :aggregate_failures do
# rubocop:disable RSpec/ExampleLength
it 'returns a payload with validation errors',
:aggregate_failures,
with_settings: { default_language: :es } do
expect(response.status).to eq(200)
expect(response.body).to be_json_eql('Form'.to_json).at_path('_type')
@ -62,7 +65,7 @@ describe ::API::V3::Users::CreateFormAPI, content_type: :json do
.to be_json_eql(''.to_json)
.at_path('_embedded/payload/email')
expect(body)
.to be_json_eql(''.to_json)
.to be_json_eql('es'.to_json)
.at_path('_embedded/payload/language')
expect(body)
.to be_json_eql('active'.to_json)
@ -74,22 +77,19 @@ describe ::API::V3::Users::CreateFormAPI, content_type: :json do
expect(body)
.to have_json_path('_embedded/validationErrors/password')
expect(body)
.to have_json_path('_embedded/validationErrors/login')
expect(body)
.to have_json_path('_embedded/validationErrors/email')
expect(body)
.to have_json_path('_embedded/validationErrors/firstName')
expect(body)
.to have_json_path('_embedded/validationErrors/lastName')
expect(body)
.not_to have_json_path('_links/commit')
end
# rubocop:enable RSpec/ExampleLength
end
describe 'inviting a user' do

@ -94,6 +94,13 @@ describe Users::SetAttributesService, type: :model do
.to(all(be_a(NotificationSetting).and(be_new_record)))
end
it 'sets the default language', with_settings: { default_language: 'de' } do
call
expect(model_instance.language)
.to eql 'de'
end
context 'with params' do
let(:params) do
{

Loading…
Cancel
Save