From ac6029fa2941134503067e21df11872a95cd3ae4 Mon Sep 17 00:00:00 2001 From: Behrokh Satarnejad <62008897+bsatarnejad@users.noreply.github.com> Date: Fri, 13 Mar 2026 12:59:25 +0100 Subject: [PATCH 1/3] [72678] Screenshot overlaps with CKeditor tool bar when scrolling (#22304) Fix CKEditor image overlapping sticky toolbar --- frontend/src/global_styles/content/editor/_ckeditor.sass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/global_styles/content/editor/_ckeditor.sass b/frontend/src/global_styles/content/editor/_ckeditor.sass index 7086e840bae..d9b59e95d1a 100644 --- a/frontend/src/global_styles/content/editor/_ckeditor.sass +++ b/frontend/src/global_styles/content/editor/_ckeditor.sass @@ -94,7 +94,7 @@ opce-ckeditor-augmented-textarea .op-ckeditor--attachments .document-editor__toolbar position: sticky top: 0 - z-index: 2 + z-index: 3 // Reset these styles explicitly when the editor is opened inside a Dialog, as position: sticky opens a separate stacking context. // In case the dialog has multiple editors below each other, these different context interfere and the paragraph dropdown of an editor will be behind the editor below it. From 084888dd1bcb6426fb5f802c7ca0601708fe7755 Mon Sep 17 00:00:00 2001 From: Markus Kahl Date: Fri, 13 Mar 2026 12:54:04 +0000 Subject: [PATCH 2/3] add curl again because we rely on it downstream --- docker/prod/setup/preinstall-common.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/docker/prod/setup/preinstall-common.sh b/docker/prod/setup/preinstall-common.sh index b857c907732..e69d0a6a058 100755 --- a/docker/prod/setup/preinstall-common.sh +++ b/docker/prod/setup/preinstall-common.sh @@ -94,7 +94,6 @@ apt-get purge -yq --auto-remove \ # curl/wget are only needed during installation in this stage. apt-get purge -yq --auto-remove \ - curl \ wget rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* From 7fb3dc8809409ba823484152ec270f5919940d7f Mon Sep 17 00:00:00 2001 From: OpenProject Actions CI Date: Sat, 14 Mar 2026 03:50:52 +0000 Subject: [PATCH 3/3] update locales from crowdin [ci skip] --- config/locales/crowdin/fr.seeders.yml | 2 +- config/locales/crowdin/fr.yml | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/config/locales/crowdin/fr.seeders.yml b/config/locales/crowdin/fr.seeders.yml index b3e98234eb6..f9014f51e5b 100644 --- a/config/locales/crowdin/fr.seeders.yml +++ b/config/locales/crowdin/fr.seeders.yml @@ -154,7 +154,7 @@ fr: 5. *Activez d'autres modules* : → Accédez à [Paramètres du projet → Modules]({{opSetting:base_url}}/projects/demo-project/settings/modules). 6. *Complétez vos tâches dans le projet* : → Accédez à [Lots de travaux → Tâches]({{opSetting:base_url}}/projects/demo-project/work_packages/details/##wp.id:set_date_and_location_of_conference/overview?query_id=##query.id:demo_project__query__tasks). - Vous trouverez ici nos [Guides de l'utilisateur] (https://www.openproject.org/docs/user-guide/). + Vous trouverez ici nos [Guides de l'utilisateur](https://www.openproject.org/docs/user-guide/). Si vous avez des questions ou si avez besoin d'aide, n'hésitez pas à nous contacter : [support[at]openproject.com](mailto:support@openproject.com). item_5: options: diff --git a/config/locales/crowdin/fr.yml b/config/locales/crowdin/fr.yml index 5267965c65d..e2c69e65117 100644 --- a/config/locales/crowdin/fr.yml +++ b/config/locales/crowdin/fr.yml @@ -185,8 +185,8 @@ fr: imported: "Mode révision" reverting: "Rétablissement en cours" revert_error: "Erreur lors de la restauration" - revert_cancelling: "Cancelling revert" - revert_cancelled: "Revert cancelled" + revert_cancelling: "Annulation de la réversion" + revert_cancelled: "Annulation de l'annulation" reverted: "Restauré" finalizing: "Finalisation" finalizing_error: "Erreur lors de la finalisation" @@ -615,13 +615,13 @@ fr: op_dry_validation: or: "ou" errors: - unexpected_key: "is not allowed." + unexpected_key: "n'est pas autorisé." array?: "doit être un tableau." decimal?: "doit être une décimale." defined: "ne doit pas être défini." eql?: "doit être égal à %{left}." filled?: "doit être rempli." - format?: "is in invalid format." + format?: "est dans un format non valide." greater_or_equal_zero: "doit être supérieur ou égal à 0." gteq?: "doit être supérieur ou égal à %{num}." hash?: "doit être un hachage." @@ -648,9 +648,9 @@ fr: parent: not_descendant: "doit être un descendant de la racine de la hiérarchie." str?: "doit être une chaîne de caractères." - time?: "must be a time." + time?: "doit être un moment." type?: "doit être de type : %{type}." - uri?: "is not a valid URI." + uri?: "n’est pas une URL valide." rules: copy_workflow_from: "Type de copie du flux de travail" enabled: "Activé" @@ -1035,7 +1035,7 @@ fr: no_results_user: "Aucun utilisateur n'a été trouvé" invite_user: "Invité :" no_results_placeholder: "Aucun utilisateur fictif n'a été trouvé" - create_new_placeholder: "Créer un nouveau utilisateur fictif :" + create_new_placeholder: "Créer un nouvel utilisateur fictif :" no_results_group: "Aucun groupe n'a été trouvé" invite_to_project: "Inviter à rejoindre %{project_name}" required: @@ -5055,7 +5055,7 @@ fr: text_notice_too_many_values_are_inperformant: "Remarque : L'affichage de plus de 100 articles par page peut augmenter le temps de chargement de la page." text_notice_security_badge_displayed_html: > Remarque : si cette option est activée, un badge indiquant l'état de votre installation s'affichera dans le panneau %{information_panel_label} administration et sur la page d'accueil. Il n'est affiché que pour les administrateurs.
Le badge vérifiera votre version actuelle d'OpenProject par rapport à la base de données officielle d'OpenProject pour vous avertir de toute mise à jour ou vulnérabilité connue. Pour plus d'informations sur ce que la vérification fournit, quelles données sont nécessaires pour fournir les mises à jour disponibles, et comment désactiver cette vérification, veuillez visiter la documentation de configuration. - text_own_membership_delete_confirmation: "Vous êtes sur le point de retirer tout ou partie de vos permissions et ne pourrez peut-être plus modifier le projet par la suite.\nÊtes vous sûr de vouloir continuer?" + text_own_membership_delete_confirmation: "Vous êtes sur le point de retirer tout ou partie de vos permissions et ne pourrez peut-être plus modifier le projet par la suite.\nVoulez-vous vraiment continuer?" text_permanent_delete_confirmation_checkbox_label: "Je comprends que cette suppression ne peut pas être annulée" text_permanent_remove_confirmation_checkbox_label: "Je comprends que cette suppression ne peut pas être annulée" text_plugin_assets_writable: "Répertoire des « plugin assets » est accessible en écriture" @@ -5077,7 +5077,7 @@ fr: text_wrote: "a écrit" text_warn_on_leaving_unsaved: "Le lot de travaux contient du texte non sauvegardé qui sera perdu si vous quittez cette page." text_what_did_you_change_click_to_add_comment: "Qu’avez-vous changé ? Cliquez ici pour ajouter un commentaire" - text_wiki_destroy_confirmation: "Êtes vous sur de vouloir supprimer ce wiki et tout son contenu?" + text_wiki_destroy_confirmation: "Voulez-vous vraiment supprimer ce wiki et tout son contenu?" text_wiki_page_destroy_children: "Supprimer les pages enfants et toute leur descendance" text_wiki_page_destroy_question: "Cette page possède %{descendants} page(s) enfant et descendant(s). Que voulez vous faire?" text_wiki_page_nullify_children: "Garder les pages enfants en tant que pages d'origine" @@ -5134,7 +5134,7 @@ fr: all: "tous" active: "actif" activate: "Activer" - activate_and_reset_failed_logins: "Activer et réinitialiser les connexions echouées" + activate_and_reset_failed_logins: "Activer et réinitialiser les connexions échouées" authentication_provider: "Fournisseur d'authentification" identity_url_text: "L'identifiant unique interne fourni par le fournisseur d'authentification." authentication_settings_disabled_due_to_external_authentication: > @@ -5157,7 +5157,7 @@ fr: no_login: "Cet utilisateur s'authentifie avec un mot de passe. Tant que cela est désactivé, il ne peut s'authentifier." password_change_unsupported: Le changement de mot de passe n'est pas supporté. registered: "enregistré" - reset_failed_logins: "Réinitialiser les connexions echouées" + reset_failed_logins: "Réinitialiser les connexions échouées" status_user_and_brute_force: "%{user} et %{brute_force}" status_change: "Changement de statut" text_change_disabled_for_provider_login: "Le nom et l'adresse électronique sont définis par votre fournisseur d'accès et ne peuvent donc pas être modifiés."