Skip to content

[Studio UI] Align action labels with the add/new and delete/remove rules - #4043

Open
idaiv wants to merge 4 commits into
2026.xfrom
labels-unifying
Open

[Studio UI] Align action labels with the add/new and delete/remove rules#4043
idaiv wants to merge 4 commits into
2026.xfrom
labels-unifying

Conversation

@idaiv

@idaiv idaiv commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Changes in this pull request

Refs #645

Applies the labelling rules from #645 to wording that still contradicted them. Casing is untouched — #4031 already settled that, and its Title Case for context menus is preserved throughout.

Add/Create → New (11 keys)

Creation dialogs that used both verbs at once (Add new ...) or one the ruleset does not define (Create new ...). The ruleset gives New for creating from scratch, "directly or in a modal".

Key Before After
data-object.create-data-object Add new object of type X New object of type X
data-object.create-variant Add new variant of type X New variant of type X
user-management.add-user Add new user New user
user-management.add-folder Add new folder New folder
roles.add-role Add new role New role
roles.add-folder Add new folder New folder
class-definition.create-new Create new class definition New class definition
field-collection.create-new Create new field collection New field collection
object-brick.create-new Create new object brick New object brick
select-option.create-new Create new select option New select option
field-definitions.create-new-class-definition Create new custom layout New custom layout

The icons already agreed with this — folder-plus, shield-plus, and an add-user glyph that is a person with a plus. A plus means New, so the words were the only mismatch.

Remove → Delete (5 keys)

Each renders a trash icon, calls a delete endpoint, and warns the action cannot be undone, while the label said Remove.

Key Before After Why
document.site.remove-site Remove site Delete site trash, documentDeleteSite, "cannot be undone"
tree.actions.remove-folder Remove Folder Delete folder trash; siblings already read Delete user / Delete role
image-thumbnails.transformations.remove Remove Delete trash
video-thumbnails.transformations.remove Remove Delete trash, same control as above
notifications.remove-all Remove all Delete all trash, deleteNotificationsForUser()

Supporting strings in those same dialogs follow: the site confirmation now says permanently delete, its confirm button is t(delete) instead of t(remove), and the folder/user success toasts say deleted.

Bug: four keys missing from every locale

roles.remove-folder, user-management.remove-folder and both .text counterparts are referenced by the folder-delete modals but were absent from all 7 locale files, so the dialog rendered the raw keys as its title and body. Added, worded to match the neighbouring user/role delete dialogs.

Additional info

Deliberately unchanged

  • Casing[Studio UI] Apply sentence case to buttons, modals, and toggles acros… #4031 is merged; context menus keep Title Case.
  • Create on modal confirm buttons — the ruleset covers trigger labels, not confirm buttons, and the codebase applies it consistently.
  • tags.columns.actions, crop.remove, bulk-import.remove-file — these genuinely leave the thing in the system, so Remove is correct.

Translations are derived from the existing strings rather than re-invented, and match each locales established delete term (Löschen, Eliminar, Supprimer, Elimina, Slett, Ta bort). German also moves accusative → nominative once the verb drops (Neuen Benutzer hinzufügenNeuer Benutzer), which a mechanical strip would have got wrong.

Scope: 24 keys (20 reworded, 4 added) × 7 locales, plus one code line. Key parity is equal across locales.

Verification: eslint ✅ · tsc --noEmit

Not verified: no visual review of the changed labels in the running UI.

idaiv and others added 2 commits August 28, 2026 10:41
Applies the labelling rules from #645 to wording that still contradicted them,
without touching casing — #4031 already settled that, and its Title Case for
context menus is preserved.

Add vs New. Eleven creation dialogs were labelled "Add new ..." or
"Create new ...", using both verbs at once or one the ruleset does not define.
The ruleset gives "New" for creating from scratch, in a modal included, so they
now read "New object of type X", "New user", "New class definition" and so on.
The icons already agreed with this — folder-plus, shield-plus and an add-user
glyph that is a person with a plus — so the words were the only mismatch.

Delete vs Remove. Five actions rendered a trash icon, called a delete endpoint
and warned that the action cannot be undone, while their label said Remove:
the site tree action, the folder tree action, both thumbnail transformation
lists and the notification toolbar. Their tree-action siblings already read
"Delete user" and "Delete role", so "Delete" is what matches both the icon and
the neighbouring wording. The site dialog's confirmation text and confirm
button, and the folder and user success messages, are aligned with it.

Untouched: tags, crop and bulk-import removals, which genuinely leave the thing
in the system, and "Create" on modal confirm buttons, which the ruleset does not
cover and the codebase applies consistently.

Also adds roles.remove-folder, user-management.remove-folder and their .text
counterparts. Both folder-delete modals reference them, but they were missing
from all seven locale files, so the dialog rendered the raw keys as its title
and body.

Refs #645

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings August 28, 2026 10:59
@idaiv idaiv added this to the 2026.3.0 milestone Aug 28, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Aligns creation and deletion labels with issue #645 across all supported locales.

Changes:

  • Rewords creation and deletion actions.
  • Adds missing folder-deletion translations.
  • Uses “Delete” for site-confirmation actions.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
translations/studio.en.yaml Updates English labels and missing keys.
translations/studio.de.yaml Updates German translations.
translations/studio.es.yaml Updates Spanish translations.
translations/studio.fr.yaml Updates French translations.
translations/studio.it.yaml Updates Italian translations.
translations/studio.no.yaml Updates Norwegian translations.
translations/studio.sv.yaml Updates Swedish translations.
assets/js/src/core/modules/document/actions/site/use-site-actions.tsx Changes site confirmation to “Delete.”

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread translations/studio.en.yaml Outdated
Comment thread translations/studio.sv.yaml Outdated
@pimcore-deployments

Copy link
Copy Markdown
Collaborator

🌐 Translations synced automatically

The key changes below were generated for all target languages, passed the
mechanical validation gate (key parity, order, placeholders, types, plurals),
and are being committed to this branch by the workflow (check the run status
if the commit is not visible).
Please review the generated translations.

Added (4):

  • user-management.remove-folder
  • user-management.remove-folder.text
  • roles.remove-folder
  • roles.remove-folder.text

Re-translated (English value changed) (8):

  • document.site.remove-site (es, fr)
  • image-thumbnails.transformations.remove (es, fr, sv)
  • notifications.remove-all (fr, sv)
  • roles.remove-folder.success (fr, sv)
  • tree.actions.remove-folder (es, fr, sv)
  • user-management.remove-folder.success (fr, sv)
  • user-management.remove-user.success (fr, sv)
  • video-thumbnails.transformations.remove (es, fr, sv)

♻️ Existing translations kept (verify these)

These keys changed in English but kept their existing translations — confirm they still fit the new English wording.

  • document.site.remove-site (es, fr)
  • image-thumbnails.transformations.remove (es, fr, sv)
  • notifications.remove-all (fr, sv)
  • roles.remove-folder.success (fr, sv)
  • tree.actions.remove-folder (es, fr, sv)
  • user-management.remove-folder.success (fr, sv)
  • user-management.remove-user.success (fr, sv)
  • video-thumbnails.transformations.remove (es, fr, sv)

⚠️ Ambiguous keys (review carefully)

Translation Report

Stale-pair review (no textual change needed)

stale.json flagged these changed-key/language pairs as still reflecting the
pre-change English. On inspection, the existing translations already use the
glossary-pinned "Delete" term (Supprimer/Eliminar/Ta bort), which is
also the correct rendering of the new English text — French, Spanish, and
Swedish don't lexically distinguish "Remove" from "Delete" in these phrasings,
so the stored value is identical either way. Left unchanged rather than
rewriting already-correct text:

  • document.site.remove-site (es, fr) → "Delete site"
  • image-thumbnails.transformations.remove (es, fr, sv) → "Delete"
  • notifications.remove-all (fr, sv) → "Delete all"
  • roles.remove-folder.success (fr, sv) → "Folder deleted successfully"
  • tree.actions.remove-folder (es, fr, sv) → "Delete folder"
  • user-management.remove-folder.success (fr, sv) → "Folder deleted successfully"
  • user-management.remove-user.success (fr, sv) → "User deleted successfully"
  • video-thumbnails.transformations.remove (es, fr, sv) → "Delete"

Alternative considered: introduce a distinct "Remove"-flavored synonym to
force a visible diff. Rejected — it would violate the glossary/guideline
rule of one target term per English term (Delete → Supprimer/Eliminar/Ta bort
everywhere) and paraphrase for no reason.

Unfixable legacy error (not attempted)

yes/no keys in every studio.{locale}.yaml are unquoted and get parsed
as YAML booleans, which validate_translations.py flags as "non-string key
(needs quoting)". studio.en.yaml has the identical unquoted yes/no keys
and is off-limits to edit in this run. Quoting the keys only in translation
files changes their parsed type from boolean to string, which then trips a
different error ("extra key not in English") because the parsed key no
longer matches English's boolean-parsed key. Since fixing this requires
changing studio.en.yaml, it was left as pre-existing baseline drift.

🧹 Pre-existing translation errors (backlog partly cleared)

18 validation error(s) predating this PR were present at the merge base. This run also fixed 6 of them; 12 still remain. The remainder is not blocking — later runs keep chipping at it.

idaiv and others added 2 commits August 28, 2026 11:04
tree.actions.remove-folder is a tree context-menu item, so it keeps Title Case
per #4031 — the verb change should not have altered casing, which the PR
description itself said it would not.

The Swedish site strings use "sajt", as its siblings use-as-site and edit-site
already do; "webbplats" introduced a second term for the same noun. Swedish is
the only locale where this drifted — every other one already matched.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@sonarqubecloud

Copy link
Copy Markdown

@idaiv
idaiv requested a review from vin0401 August 28, 2026 11:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants