diff --git a/.changeset/stale-fill-i18n-leaf-repair.md b/.changeset/stale-fill-i18n-leaf-repair.md new file mode 100644 index 0000000000..856df7b691 --- /dev/null +++ b/.changeset/stale-fill-i18n-leaf-repair.md @@ -0,0 +1,31 @@ +--- +"@objectstack/platform-objects": patch +"@objectstack/plugin-webhooks": patch +"@objectstack/service-messaging": patch +--- + +fix(i18n): re-translate the five leaves that served a superseded source revision (#12065) + +`os i18n extract` merges gaps only, so a revised source string leaves the previous +revision standing in every translated locale — in sync by key, green under +`check:i18n` and counted as translated by `check:i18n-coverage`. The five leaves +`check:i18n-stale-fill` froze in its baseline are re-translated here from the +**current** `en` source, and the baseline is ratcheted to empty in the same change. + +User-visible admin/Setup help text changes in `es-ES`, `ja-JP` and `zh-CN`: + +- `dataset.fields.measures.helpText` (metadata forms) — all three locales promised a + `"certified"` governance flag that was removed from the declaration in 16.0. +- `sys_webhook.fields.method.help` — all three locales served the pre-revision method + enumeration after the source became a prose description. +- `sys_webhook.pluralLabel` — `ja-JP` was an untranslated Latin fill and is now + Japanese; `zh-CN` keeps `Webhook`, which is the term this bundle's own Chinese prose + uses and which carries no plural inflection. +- `sys_http_delivery.fields.attempts.help` — `es-ES` / `ja-JP` held an English fill and + `zh-CN` a translation of the same superseded source; all three now carry the + PARKED / terminal-row clause the source documents. +- `sys_notification_subscription.fields.principal.help` — the selector list was missing + the `owner_of:object:id` and bare-email forms in all three locales. + +No schema, export or runtime behaviour changes: translated-locale leaf values only, +plus the shrink-only ratchet baseline. diff --git a/packages/platform-objects/src/apps/translations/es-ES.metadata-forms.generated.ts b/packages/platform-objects/src/apps/translations/es-ES.metadata-forms.generated.ts index f4c653ee68..3667dc2b0b 100644 --- a/packages/platform-objects/src/apps/translations/es-ES.metadata-forms.generated.ts +++ b/packages/platform-objects/src/apps/translations/es-ES.metadata-forms.generated.ts @@ -1260,7 +1260,7 @@ export const esESMetadataForms: NonNullable = }, measures: { label: "Measures", - helpText: "Each: name, aggregate, field (optional for count), display format/currency, and a “certified” governance flag" + helpText: "Cada medida: nombre, agregación, campo (opcional para count) y formato de visualización/moneda" } } }, diff --git a/packages/platform-objects/src/apps/translations/ja-JP.metadata-forms.generated.ts b/packages/platform-objects/src/apps/translations/ja-JP.metadata-forms.generated.ts index 7b60ed3afb..6fa058ac70 100644 --- a/packages/platform-objects/src/apps/translations/ja-JP.metadata-forms.generated.ts +++ b/packages/platform-objects/src/apps/translations/ja-JP.metadata-forms.generated.ts @@ -1260,7 +1260,7 @@ export const jaJPMetadataForms: NonNullable = }, measures: { label: "Measures", - helpText: "Each: name, aggregate, field (optional for count), display format/currency, and a “certified” governance flag" + helpText: "各メジャー:名前、集計関数、フィールド(count の場合は省略可)、表示形式/通貨" } } }, diff --git a/packages/platform-objects/src/apps/translations/zh-CN.metadata-forms.generated.ts b/packages/platform-objects/src/apps/translations/zh-CN.metadata-forms.generated.ts index 923e4f64c6..dd82161eeb 100644 --- a/packages/platform-objects/src/apps/translations/zh-CN.metadata-forms.generated.ts +++ b/packages/platform-objects/src/apps/translations/zh-CN.metadata-forms.generated.ts @@ -1260,7 +1260,7 @@ export const zhCNMetadataForms: NonNullable = }, measures: { label: "Measures", - helpText: "Each: name, aggregate, field (optional for count), display format/currency, and a “certified” governance flag" + helpText: "每个度量:名称、聚合函数、字段(count 时可省略)、显示格式/货币" } } }, diff --git a/packages/plugins/plugin-webhooks/src/translations/es-ES.objects.generated.ts b/packages/plugins/plugin-webhooks/src/translations/es-ES.objects.generated.ts index 065eaec46c..2b379aad99 100644 --- a/packages/plugins/plugin-webhooks/src/translations/es-ES.objects.generated.ts +++ b/packages/plugins/plugin-webhooks/src/translations/es-ES.objects.generated.ts @@ -51,7 +51,7 @@ export const esESObjects: NonNullable = { }, method: { label: "Método HTTP", - help: "GET / POST / PUT / PATCH / DELETE", + help: "Método HTTP utilizado en la solicitud de callback.", options: { get: "GET", post: "POST", diff --git a/packages/plugins/plugin-webhooks/src/translations/ja-JP.objects.generated.ts b/packages/plugins/plugin-webhooks/src/translations/ja-JP.objects.generated.ts index 1fbad9f155..019bd7b786 100644 --- a/packages/plugins/plugin-webhooks/src/translations/ja-JP.objects.generated.ts +++ b/packages/plugins/plugin-webhooks/src/translations/ja-JP.objects.generated.ts @@ -17,7 +17,7 @@ import type { TranslationData } from '@objectstack/spec/system'; export const jaJPObjects: NonNullable = { sys_webhook: { label: "Webhook", - pluralLabel: "Webhook", + pluralLabel: "ウェブフック", description: "送信 HTTP Webhook サブスクリプション。defineWebhook() またはスタジオエディタで作成し、HTTP コネクタプラグインが実行します。", fields: { id: { @@ -51,7 +51,7 @@ export const jaJPObjects: NonNullable = { }, method: { label: "HTTP メソッド", - help: "GET / POST / PUT / PATCH / DELETE", + help: "コールバックリクエストで使用する HTTP メソッド", options: { get: "GET", post: "POST", diff --git a/packages/plugins/plugin-webhooks/src/translations/zh-CN.objects.generated.ts b/packages/plugins/plugin-webhooks/src/translations/zh-CN.objects.generated.ts index a48589537c..7c53645cb9 100644 --- a/packages/plugins/plugin-webhooks/src/translations/zh-CN.objects.generated.ts +++ b/packages/plugins/plugin-webhooks/src/translations/zh-CN.objects.generated.ts @@ -51,7 +51,7 @@ export const zhCNObjects: NonNullable = { }, method: { label: "HTTP 方法", - help: "GET / POST / PUT / PATCH / DELETE", + help: "回调请求使用的 HTTP 方法", options: { get: "GET", post: "POST", diff --git a/packages/services/service-messaging/src/translations/es-ES.objects.generated.ts b/packages/services/service-messaging/src/translations/es-ES.objects.generated.ts index 662487ca3f..da564ef664 100644 --- a/packages/services/service-messaging/src/translations/es-ES.objects.generated.ts +++ b/packages/services/service-messaging/src/translations/es-ES.objects.generated.ts @@ -238,7 +238,7 @@ export const esESObjects: NonNullable = { }, principal: { label: "Principal", - help: "Subscriber selector: 'role:x' | 'team:x' | 'user:id' | bare user id." + help: "Selector de suscriptor: 'role:x' | 'team:x' | 'user:id' | 'owner_of:object:id' | un correo electrónico | un id de usuario sin prefijo." }, enabled: { label: "Enabled", @@ -356,7 +356,7 @@ export const esESObjects: NonNullable = { }, attempts: { label: "Attempts", - help: "Number of attempts made so far" + help: "Número de intentos realizados hasta ahora. Un 0 en una fila en estado terminal significa que la entrega quedó en PARKED — nunca se envió y no admite reenvío (#8069); consulta `error` para ver la causa." }, claimed_by: { label: "Claimed By" diff --git a/packages/services/service-messaging/src/translations/ja-JP.objects.generated.ts b/packages/services/service-messaging/src/translations/ja-JP.objects.generated.ts index 4ed091e539..7a98675f39 100644 --- a/packages/services/service-messaging/src/translations/ja-JP.objects.generated.ts +++ b/packages/services/service-messaging/src/translations/ja-JP.objects.generated.ts @@ -238,7 +238,7 @@ export const jaJPObjects: NonNullable = { }, principal: { label: "Principal", - help: "Subscriber selector: 'role:x' | 'team:x' | 'user:id' | bare user id." + help: "サブスクライバーセレクター: 'role:x' | 'team:x' | 'user:id' | 'owner_of:object:id' | メールアドレス | プレフィックスなしのユーザー ID。" }, enabled: { label: "Enabled", @@ -356,7 +356,7 @@ export const jaJPObjects: NonNullable = { }, attempts: { label: "Attempts", - help: "Number of attempts made so far" + help: "これまでの試行回数。終了状態の行で 0 の場合、その配信は PARKED — 一度も送信されず、再配信もできません(#8069);原因は `error` を参照してください。" }, claimed_by: { label: "Claimed By" diff --git a/packages/services/service-messaging/src/translations/zh-CN.objects.generated.ts b/packages/services/service-messaging/src/translations/zh-CN.objects.generated.ts index bc8ebd85d8..1ec7c88828 100644 --- a/packages/services/service-messaging/src/translations/zh-CN.objects.generated.ts +++ b/packages/services/service-messaging/src/translations/zh-CN.objects.generated.ts @@ -238,7 +238,7 @@ export const zhCNObjects: NonNullable = { }, principal: { label: "主体", - help: "订阅者选择器:'role:x' | 'team:x' | 'user:id' | 裸用户 ID。" + help: "订阅者选择器:'role:x' | 'team:x' | 'user:id' | 'owner_of:object:id' | 邮箱地址 | 裸用户 ID。" }, enabled: { label: "启用", @@ -356,7 +356,7 @@ export const zhCNObjects: NonNullable = { }, attempts: { label: "尝试次数", - help: "迄今已尝试的次数" + help: "迄今已尝试的次数。终态行上为 0 表示该投递被 PARKED——从未发送,且不可重投(#8069);原因见 `error`。" }, claimed_by: { label: "认领节点" diff --git a/scripts/i18n-stale-fill-baseline.json b/scripts/i18n-stale-fill-baseline.json index 7f3dce93ad..0967ef424b 100644 --- a/scripts/i18n-stale-fill-baseline.json +++ b/scripts/i18n-stale-fill-baseline.json @@ -1,7 +1 @@ -{ - "packages/platform-objects/src/apps/translations/metadata-forms.generated.ts#dataset.fields.measures.helpText": "REAL DRIFT, pre-existing. All three locales serve a superseded draft that still promises a \"certified\" governance flag the source no longer mentions. Repair = re-translate from the current source; tracked outside this gate's card (#11671 is tooling-only and must not repair bundles).", - "packages/plugins/plugin-webhooks/src/translations/objects.generated.ts#sys_webhook.fields.method.help": "REAL DRIFT, pre-existing. All three locales serve the pre-revision enumeration (\"GET / POST / PUT / PATCH / DELETE\") after the source became a prose description. Repair = re-translate from the current source.", - "packages/plugins/plugin-webhooks/src/translations/objects.generated.ts#sys_webhook.pluralLabel": "REAL DRIFT, pre-existing. zh-CN and ja-JP hold the singular \"Webhook\" after the source pluralised to \"Webhooks\" — and neither is a translation at all, both are Latin fills. Repair = translate the plural label.", - "packages/services/service-messaging/src/translations/objects.generated.ts#sys_http_delivery.fields.attempts.help": "REAL DRIFT, pre-existing. es-ES and ja-JP hold the pre-#8069 English fill; the source has since gained the PARKED/terminal-row clause. zh-CN is a genuine translation of that same superseded source and is invisible to this gate — see the module note on what cross-locale agreement cannot see.", - "packages/services/service-messaging/src/translations/objects.generated.ts#sys_notification_subscription.fields.principal.help": "REAL DRIFT, pre-existing. es-ES and ja-JP hold a superseded selector list, missing the `owner_of:object:id` and bare-email forms the source now documents. Repair = re-translate from the current source." -} +{}