Skip to content

Commit acf4d38

Browse files
os-muskclaude
andauthored
fix(platform-objects): nine es-ES and ja-JP metadata-form leaves say what their source says (#16819)
* fix(platform-objects): nine es-ES and ja-JP metadata-form leaves say what their source says The English source for these nine leaves moved after es-ES and ja-JP were translated from it. Bundle merge fills gaps only, so a present-but-stale translation is never refreshed, and the recorded-source-hash table drops a leaf's entry as soon as a translator writes real text -- which makes every one of these nine LEGACY-TRUSTED and invisible to the staleness instrument. Each leaf is rewritten from what the source says now, not from the zh-CN repair: the two have different causes and their correct target text differs. `action.fields.body.helpText` adopts the rendering the sibling leaf `hook.fields.body.helpText` already carries for the same source sentence. Key sets are unchanged (773 leaves, identical across all four bundles). Claude-Session: https://claude.ai/code/session_01ADLdAs2pVcH17h9tZKWMBg Co-authored-by: Claude <noreply@anthropic.com> * chore(platform-objects): record the digest the extractor now writes, and the changeset `email_template.fields.variables.helpText` is a JSON shape example — language-neutral, so the faithful es-ES and ja-JP rendering is the source verbatim. That makes each leaf a byte copy of its source, which is exactly the condition under which `os i18n extract` records a source digest, so both tables gain one entry. Generator output, not a hand-edit: the entry records a TRUE fact (the leaf is a copy of the CURRENT source), which is the opposite of the false claim the file header warns against. Its effect is to move this one leaf OUT of LEGACY-TRUSTED and INTO the staleness instrument's coverage — if the JSON example is ever revised, this leaf now reports stale instead of silently serving the superseded revision. Claude-Session: https://claude.ai/code/session_01ADLdAs2pVcH17h9tZKWMBg Co-authored-by: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent ce478db commit acf4d38

5 files changed

Lines changed: 58 additions & 18 deletions

File tree

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
"@objectstack/platform-objects": patch
3+
---
4+
5+
fix(platform-objects): nine es-ES and ja-JP metadata-form leaves say what their source says
6+
7+
Nine leaves of `metadataForms` served a superseded English source revision in both es-ES
8+
and ja-JP. Each was a faithful translation of the sentence the source carried when it was
9+
extracted; the English moved afterwards and bundle merge fills gaps only, so a
10+
present-but-stale leaf is never refreshed by re-extraction.
11+
12+
The nine, by the test the census applies — does the string assert something the source
13+
does not, or drop a distinct concept the source names:
14+
15+
- `object.fields.fields.trackHistory.helpText` said "keep change history" in both. The
16+
source says `Summarize this field on the record activity timeline` — a different
17+
feature, not a loose translation.
18+
- `object.fields.isSystem.helpText` dropped `defaults sharing to public`.
19+
- `view.fields.filter.helpText` dropped the whole clause after the dash — the shared
20+
visual builder and its field-type-aware operators and value inputs.
21+
- `action.fields.body.helpText` said "JavaScript code to run", losing the L1-expression /
22+
L2-sandboxed-body distinction. It now reads as the sibling leaf
23+
`hook.fields.body.helpText` already renders that same source sentence in both locales.
24+
- `action.sections.advanced.description` asserted bulk operations, which the source does
25+
not name.
26+
- `page.fields.type.helpText` asserted the page-kind enum the source stopped listing and
27+
dropped the "List / Interface binds a source view into a curated surface" sentence.
28+
- `report.sections.basics.description` said "data source" where the source says report
29+
type.
30+
- `report.fields.columns.helpText` said "columns to show in the report", losing both
31+
`Dimension names across` and `matrix only`.
32+
- `email_template.fields.variables.helpText` described a list of variable names; the
33+
source is a JSON shape example, which is language-neutral and is now carried verbatim.
34+
35+
Values only — the key set is unchanged at 773 leaves, identical across all four bundles.
36+
The recorded-source-hash table is untouched and needs no entry: it records a digest only
37+
while a leaf is still a byte copy of its source, so all nine, being real translations,
38+
carry no entry and are LEGACY-TRUSTED by construction.

packages/platform-objects/src/apps/translations/es-ES.metadata-forms.generated.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ export const esESMetadataForms: NonNullable<TranslationData['metadataForms']> =
5858
},
5959
isSystem: {
6060
label: "Integrado del sistema",
61-
helpText: "Objeto de sistema (protegido contra eliminación)"
61+
helpText: "Objeto de sistema (protegido contra eliminación; el uso compartido predeterminado es público)"
6262
},
6363
fields: {
6464
label: "Campos",
@@ -210,7 +210,7 @@ export const esESMetadataForms: NonNullable<TranslationData['metadataForms']> =
210210
},
211211
"fields.trackHistory": {
212212
label: "Seguimiento de historial",
213-
helpText: "Conservar historial de cambios"
213+
helpText: "Resume este campo en la cronología de actividad del registro"
214214
},
215215
"fields.visibleWhen": {
216216
label: "Visible When",
@@ -666,7 +666,7 @@ export const esESMetadataForms: NonNullable<TranslationData['metadataForms']> =
666666
},
667667
filter: {
668668
label: "Filtro",
669-
helpText: "Condiciones de filtro"
669+
helpText: "Condiciones de filtro — el mismo constructor visual que la barra de herramientas de la lista, con operadores y entradas de valor según el tipo de campo"
670670
},
671671
sort: {
672672
label: "Orden",
@@ -786,7 +786,7 @@ export const esESMetadataForms: NonNullable<TranslationData['metadataForms']> =
786786
},
787787
type: {
788788
label: "Tipo",
789-
helpText: "Tipo de página: list / record / home / app / utility. Cómo se ve una página de lista (grid / kanban / calendar) es una visualización configurada en Interface, no un tipo de página."
789+
helpText: "Tipo de página. \"List / Interface\" vincula una vista de origen a una superficie curada — cómo se ve (grid / kanban / calendar / …) es una visualización configurada en Interface, no un tipo de página."
790790
},
791791
template: {
792792
label: "Plantilla",
@@ -1049,7 +1049,7 @@ export const esESMetadataForms: NonNullable<TranslationData['metadataForms']> =
10491049
},
10501050
advanced: {
10511051
label: "Avanzado",
1052-
description: "Operaciones masivas, exposición a IA y forma de solicitud API."
1052+
description: "Exposición a IA y forma de la solicitud API."
10531053
}
10541054
},
10551055
fields: {
@@ -1087,7 +1087,7 @@ export const esESMetadataForms: NonNullable<TranslationData['metadataForms']> =
10871087
},
10881088
body: {
10891089
label: "Cuerpo",
1090-
helpText: "Código JavaScript que ejecutar"
1090+
helpText: "Una expresión L1 o un body JS L2 en sandbox"
10911091
},
10921092
"body.language": {
10931093
label: "Language",
@@ -1164,7 +1164,7 @@ export const esESMetadataForms: NonNullable<TranslationData['metadataForms']> =
11641164
sections: {
11651165
basics: {
11661166
label: "Aspectos básicos",
1167-
description: "Identidad y fuente de datos."
1167+
description: "Identidad y tipo de informe."
11681168
},
11691169
dataset_binding: {
11701170
label: "Dataset binding",
@@ -1208,7 +1208,7 @@ export const esESMetadataForms: NonNullable<TranslationData['metadataForms']> =
12081208
},
12091209
columns: {
12101210
label: "Columnas",
1211-
helpText: "Columnas que mostrar en el informe"
1211+
helpText: "Nombres de dimensión en horizontal (solo matrix)"
12121212
},
12131213
order: {
12141214
label: "Orden",
@@ -1427,7 +1427,7 @@ export const esESMetadataForms: NonNullable<TranslationData['metadataForms']> =
14271427
},
14281428
variables: {
14291429
label: "Variables de plantilla",
1430-
helpText: "Lista de nombres de variable referenciados en subject/body"
1430+
helpText: "[{ \"name\": \"user.name\", \"type\": \"string\", \"required\": true, \"description\": \"...\" }]"
14311431
},
14321432
fromOverride: {
14331433
label: "Sobrescritura de remitente",

packages/platform-objects/src/apps/translations/es-ES.source-hashes.generated.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ export const esESGeneratedSourceHashes: Readonly<Record<string, string>> = {
6363
"metadataForms.dataset.sections.source.label": "8fe786e8e29c8cec",
6464
"metadataForms.doc.description": "f233af60238b0879",
6565
"metadataForms.doc.label": "3f35cf5088b999ad",
66+
"metadataForms.email_template.fields.variables.helpText": "27197774c2cda633",
6667
"metadataForms.field.fields.placeholder.helpText": "07cecac0844860be",
6768
"metadataForms.field.fields.placeholder.label": "44d62b55b63fe718",
6869
"metadataForms.field.fields.rows.helpText": "66755b9447e67a15",

packages/platform-objects/src/apps/translations/ja-JP.metadata-forms.generated.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ export const jaJPMetadataForms: NonNullable<TranslationData['metadataForms']> =
5858
},
5959
isSystem: {
6060
label: "システム組み込み",
61-
helpText: "システムオブジェクト(削除から保護)"
61+
helpText: "システムオブジェクト(削除から保護。共有の既定は公開)"
6262
},
6363
fields: {
6464
label: "フィールド",
@@ -210,7 +210,7 @@ export const jaJPMetadataForms: NonNullable<TranslationData['metadataForms']> =
210210
},
211211
"fields.trackHistory": {
212212
label: "履歴追跡",
213-
helpText: "変更履歴を保持"
213+
helpText: "レコードのアクティビティタイムラインでこのフィールドを要約する"
214214
},
215215
"fields.visibleWhen": {
216216
label: "Visible When",
@@ -666,7 +666,7 @@ export const jaJPMetadataForms: NonNullable<TranslationData['metadataForms']> =
666666
},
667667
filter: {
668668
label: "フィルター",
669-
helpText: "フィルター条件"
669+
helpText: "フィルター条件 — リストツールバーと同じビジュアルビルダー。演算子と値入力はフィールドタイプに応じて変わります"
670670
},
671671
sort: {
672672
label: "並び替え",
@@ -786,7 +786,7 @@ export const jaJPMetadataForms: NonNullable<TranslationData['metadataForms']> =
786786
},
787787
type: {
788788
label: "型",
789-
helpText: "ページの種類 — list / record / home / app / utility。リストページの見せ方(grid / kanban / calendar)はページタイプではなく、Interface で設定するビジュアライゼーションです。"
789+
helpText: "ページの種類。\"List / Interface\" はソースビューをキュレーションされたサーフェスにバインドします。見せ方(grid / kanban / calendar / …)はページタイプではなく、Interface で設定するビジュアライゼーションです。"
790790
},
791791
template: {
792792
label: "テンプレート",
@@ -1049,7 +1049,7 @@ export const jaJPMetadataForms: NonNullable<TranslationData['metadataForms']> =
10491049
},
10501050
advanced: {
10511051
label: "詳細",
1052-
description: "一括操作、AI 公開、API リクエスト形状。"
1052+
description: "AI 公開と API リクエスト形状。"
10531053
}
10541054
},
10551055
fields: {
@@ -1087,7 +1087,7 @@ export const jaJPMetadataForms: NonNullable<TranslationData['metadataForms']> =
10871087
},
10881088
body: {
10891089
label: "本文",
1090-
helpText: "実行する JavaScript コード"
1090+
helpText: "L1 式または L2 サンドボックス JS body"
10911091
},
10921092
"body.language": {
10931093
label: "Language",
@@ -1164,7 +1164,7 @@ export const jaJPMetadataForms: NonNullable<TranslationData['metadataForms']> =
11641164
sections: {
11651165
basics: {
11661166
label: "基本",
1167-
description: "ID とデータソース。"
1167+
description: "ID とレポートタイプ。"
11681168
},
11691169
dataset_binding: {
11701170
label: "Dataset binding",
@@ -1208,7 +1208,7 @@ export const jaJPMetadataForms: NonNullable<TranslationData['metadataForms']> =
12081208
},
12091209
columns: {
12101210
label: "列",
1211-
helpText: "レポートに表示する列"
1211+
helpText: "横方向のディメンション名(matrix のみ)"
12121212
},
12131213
order: {
12141214
label: "並び順",
@@ -1427,7 +1427,7 @@ export const jaJPMetadataForms: NonNullable<TranslationData['metadataForms']> =
14271427
},
14281428
variables: {
14291429
label: "変数",
1430-
helpText: "subject/body で参照する変数名リスト"
1430+
helpText: "[{ \"name\": \"user.name\", \"type\": \"string\", \"required\": true, \"description\": \"...\" }]"
14311431
},
14321432
fromOverride: {
14331433
label: "送信者オーバーライド",

packages/platform-objects/src/apps/translations/ja-JP.source-hashes.generated.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ export const jaJPGeneratedSourceHashes: Readonly<Record<string, string>> = {
6363
"metadataForms.dataset.sections.source.label": "8fe786e8e29c8cec",
6464
"metadataForms.doc.description": "f233af60238b0879",
6565
"metadataForms.doc.label": "3f35cf5088b999ad",
66+
"metadataForms.email_template.fields.variables.helpText": "27197774c2cda633",
6667
"metadataForms.field.fields.placeholder.helpText": "07cecac0844860be",
6768
"metadataForms.field.fields.placeholder.label": "44d62b55b63fe718",
6869
"metadataForms.field.fields.rows.helpText": "66755b9447e67a15",

0 commit comments

Comments
 (0)