From f11fb28d7a6f3f51f95e69744d0837c023f3aa87 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 14 Aug 2026 15:49:14 +0000 Subject: [PATCH 1/2] fix(plugin-security): say "unique per organization" in sys_position's es-ES/ja-JP/zh-CN help The en bundle and the object source already state that sys_position.name is unique per organization -- the declared index is { fields: ['name'], unique: 'organization' }. The three other shipped locales still asserted bare, unqualified uniqueness, telling an admin in Setup that the machine name had to be free installation-wide, which the index does not enforce. Each locale's leaf now matches the source description, examples included (sales_manager, hr_specialist -- the superseded admin, editor, viewer are gone), and follows the idiom PR #8599 landed in the same files for sys_permission_set. Leaf string values only; no bundle structure was hand-edited. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01XeQRiAa7vYRVX5Fog7Zby8 --- .../sys-position-bundle-locales-per-organization.md | 9 +++++++++ .../src/translations/es-ES.objects.generated.ts | 2 +- .../src/translations/ja-JP.objects.generated.ts | 2 +- .../src/translations/zh-CN.objects.generated.ts | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 .changeset/sys-position-bundle-locales-per-organization.md diff --git a/.changeset/sys-position-bundle-locales-per-organization.md b/.changeset/sys-position-bundle-locales-per-organization.md new file mode 100644 index 0000000000..7666082a8c --- /dev/null +++ b/.changeset/sys-position-bundle-locales-per-organization.md @@ -0,0 +1,9 @@ +--- +"@objectstack/plugin-security": patch +--- + +Correct `sys_position.name`'s translated help text in the `es-ES`, `ja-JP` and `zh-CN` bundles to say the machine name is unique **per organization** + +The English bundle and the object source both already state that a position's machine name is unique per organization — the declared index is `{ fields: ['name'], unique: 'organization' }`. The three other shipped locales still asserted bare, unqualified uniqueness, so an admin reading Setup in Spanish, Japanese or Chinese was told the name had to be free installation-wide, which the declared index does not enforce. Each locale's leaf value now matches the source description, including its current examples (`sales_manager`, `hr_specialist` rather than the superseded `admin`, `editor`, `viewer`). + +Leaf string values only — no bundle structure was hand-edited. diff --git a/packages/plugins/plugin-security/src/translations/es-ES.objects.generated.ts b/packages/plugins/plugin-security/src/translations/es-ES.objects.generated.ts index 9cf0076fe5..e7f569b0a4 100644 --- a/packages/plugins/plugin-security/src/translations/es-ES.objects.generated.ts +++ b/packages/plugins/plugin-security/src/translations/es-ES.objects.generated.ts @@ -19,7 +19,7 @@ export const esESObjects: NonNullable = { }, name: { label: "Nombre de API", - help: "Nombre técnico único del puesto (p. ej. admin, editor, viewer)." + help: "Nombre técnico del puesto, único por organización (p. ej. sales_manager, hr_specialist)." }, description: { label: "Descripción" diff --git a/packages/plugins/plugin-security/src/translations/ja-JP.objects.generated.ts b/packages/plugins/plugin-security/src/translations/ja-JP.objects.generated.ts index 40348de3e6..dc3e686e7a 100644 --- a/packages/plugins/plugin-security/src/translations/ja-JP.objects.generated.ts +++ b/packages/plugins/plugin-security/src/translations/ja-JP.objects.generated.ts @@ -19,7 +19,7 @@ export const jaJPObjects: NonNullable = { }, name: { label: "API 名", - help: "ポジションの一意の機械名(例: admin、editor、viewer)" + help: "ポジションのマシン名(組織ごとに一意。例: sales_manager、hr_specialist)" }, description: { label: "説明" diff --git a/packages/plugins/plugin-security/src/translations/zh-CN.objects.generated.ts b/packages/plugins/plugin-security/src/translations/zh-CN.objects.generated.ts index 9ffe5ddeaa..587a38f52a 100644 --- a/packages/plugins/plugin-security/src/translations/zh-CN.objects.generated.ts +++ b/packages/plugins/plugin-security/src/translations/zh-CN.objects.generated.ts @@ -19,7 +19,7 @@ export const zhCNObjects: NonNullable = { }, name: { label: "API 名称", - help: "岗位的唯一机器名称(例如 admin、editor、viewer)" + help: "岗位的机器名称,在每个组织内唯一(例如 sales_manager、hr_specialist)" }, description: { label: "描述" From 31aeb70f64ce03082022c492476fe69b29fc6cc8 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 14 Aug 2026 16:42:12 +0000 Subject: [PATCH 2/2] fix(plugin-security): qualify the clone-dialog uniqueness text too (es-ES/ja-JP/zh-CN) sys_position states the machine-name uniqueness rule in TWO places, and #8468 corrected both at source: the field description (sys-position.object.ts:184) and the clone_position action's name param helpText (:116). The first commit corrected the field help; this one corrects the clone dialog, which is the text an admin reads at the exact moment they type a new API name. Each locale's :99 now matches its own :277 -- the sys_permission_set clone param that PR #8599 already landed -- which is the right target because `en` is byte-identical at both lines. No new phrasing was invented; these are strings the repo has already accepted. Folded in on PM instruction: the second leaf was always inside #8601's stated scope ("correct sys_position's leaf values in all four shipped locales"), and a separate PR would touch the identical three files. Closes #8718. Leaf string values only; no bundle structure was hand-edited. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01XeQRiAa7vYRVX5Fog7Zby8 --- .../sys-position-bundle-locales-per-organization.md | 9 +++++++-- .../src/translations/es-ES.objects.generated.ts | 2 +- .../src/translations/ja-JP.objects.generated.ts | 2 +- .../src/translations/zh-CN.objects.generated.ts | 2 +- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.changeset/sys-position-bundle-locales-per-organization.md b/.changeset/sys-position-bundle-locales-per-organization.md index 7666082a8c..3f7a188ddf 100644 --- a/.changeset/sys-position-bundle-locales-per-organization.md +++ b/.changeset/sys-position-bundle-locales-per-organization.md @@ -2,8 +2,13 @@ "@objectstack/plugin-security": patch --- -Correct `sys_position.name`'s translated help text in the `es-ES`, `ja-JP` and `zh-CN` bundles to say the machine name is unique **per organization** +Correct `sys_position`'s translated uniqueness text in the `es-ES`, `ja-JP` and `zh-CN` bundles to say the machine name is unique **per organization** -The English bundle and the object source both already state that a position's machine name is unique per organization — the declared index is `{ fields: ['name'], unique: 'organization' }`. The three other shipped locales still asserted bare, unqualified uniqueness, so an admin reading Setup in Spanish, Japanese or Chinese was told the name had to be free installation-wide, which the declared index does not enforce. Each locale's leaf value now matches the source description, including its current examples (`sales_manager`, `hr_specialist` rather than the superseded `admin`, `editor`, `viewer`). +The English bundle and the object source both already state that a position's machine name is unique per organization — the declared index is `{ fields: ['name'], unique: 'organization' }`. The three other shipped locales still asserted bare, unqualified uniqueness, so an admin reading Setup in Spanish, Japanese or Chinese was told the name had to be free installation-wide, which the declared index does not enforce. + +Both places `sys_position` states the rule are corrected: + +- `fields.name.help`, the field help in the object's detail and edit views. It now also carries the source's current examples (`sales_manager`, `hr_specialist` rather than the superseded `admin`, `editor`, `viewer`). +- `actions.clone_position.params.name.helpText`, the help on the Clone Position dialog's API-name input — the text an admin reads at the moment they type a new name. Leaf string values only — no bundle structure was hand-edited. diff --git a/packages/plugins/plugin-security/src/translations/es-ES.objects.generated.ts b/packages/plugins/plugin-security/src/translations/es-ES.objects.generated.ts index e7f569b0a4..21556f3328 100644 --- a/packages/plugins/plugin-security/src/translations/es-ES.objects.generated.ts +++ b/packages/plugins/plugin-security/src/translations/es-ES.objects.generated.ts @@ -96,7 +96,7 @@ export const esESObjects: NonNullable = { }, name: { label: "Nuevo nombre de API", - helpText: "Nombre de máquina snake_case único" + helpText: "Nombre de máquina snake_case, único por organización" } } } diff --git a/packages/plugins/plugin-security/src/translations/ja-JP.objects.generated.ts b/packages/plugins/plugin-security/src/translations/ja-JP.objects.generated.ts index dc3e686e7a..1bc4556e15 100644 --- a/packages/plugins/plugin-security/src/translations/ja-JP.objects.generated.ts +++ b/packages/plugins/plugin-security/src/translations/ja-JP.objects.generated.ts @@ -96,7 +96,7 @@ export const jaJPObjects: NonNullable = { }, name: { label: "新しい API 名", - helpText: "一意の snake_case マシン名" + helpText: "snake_case マシン名(組織ごとに一意)" } } } diff --git a/packages/plugins/plugin-security/src/translations/zh-CN.objects.generated.ts b/packages/plugins/plugin-security/src/translations/zh-CN.objects.generated.ts index 587a38f52a..a3d94f928e 100644 --- a/packages/plugins/plugin-security/src/translations/zh-CN.objects.generated.ts +++ b/packages/plugins/plugin-security/src/translations/zh-CN.objects.generated.ts @@ -96,7 +96,7 @@ export const zhCNObjects: NonNullable = { }, name: { label: "新 API 名称", - helpText: "唯一的 snake_case 机器名称" + helpText: "snake_case 机器名称,在每个组织内唯一" } } }