Skip to content

Commit 4405a8b

Browse files
committed
docs(i18n): list the bulkActions and datasets groups in the translations guide
The "What you can translate" table is this page's inventory of the bundle surface, and it omitted two groups that shipped live in 17.3.0 (#14253): `objects.<name>._views.<view>.bulkActions.<def>.*` and `datasets.<name>.*`. The word `dataset` did not occur on the page at all. Both are declared in `packages/spec/src/system/translation.zod.ts`, read by `translateView` (via `translateBulkActionDefs` against `config.bulkActionDefs`) and by `translateDataset`, and emitted by `os i18n extract` — so an author scanning the inventory concluded two live surfaces were not translatable. Adds one bulk-action row, two dataset rows, and the short callout the `datasets` group needs (the page introduced no dataset concept anywhere). Also names `dataset` in the resolved-metadata-types sentence, which listed six of the seven entries in `METADATA_DOCUMENT_TRANSLATORS` — the same omission, one paragraph down from the table. The `_validations` row is untouched; it landed with #14402. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012zGPuVVX3deAx9LdjK8jCk
1 parent ef60224 commit 4405a8b

1 file changed

Lines changed: 21 additions & 2 deletions

File tree

content/docs/ui/translations.mdx

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,20 +66,24 @@ export default defineStack({
6666
| Field labels, help text, placeholders | `objects.<name>.fields.<field>.label` / `help` / `placeholder` |
6767
| Picklist option labels | `objects.<name>.fields.<field>.options.<value>` |
6868
| View titles, descriptions, empty states | `objects.<name>._views.<view>` |
69+
| Bulk-action copy on a list view (button, confirm prompt, dialog fields) | `objects.<name>._views.<view>.bulkActions.<def>.label` / `.confirmText` / `.confirmLabel` / `.params.<param>.label` / `.help` / `.placeholder` — a bulk param's hint is `help`, not `helpText` |
6970
| Action labels, confirm text, success messages | `objects.<name>._actions.<action>` |
7071
| Action result dialogs (title / description / acknowledge / field labels) | `objects.<name>._actions.<action>.resultDialog` |
7172
| Form sections | `objects.<name>._sections.<section>` |
7273
| Custom validation-rule messages | `objects.<name>._validations.<rule>.message` |
7374
| App navigation | `apps.<app>.navigation.<id>.label` |
7475
| Dashboard label / description | `dashboards.<name>.label` / `description` |
7576
| Dashboard widget title / description / sub-caption | `dashboards.<name>.widgets.<widgetId>.title` / `description` / `subCaption` |
77+
| Analytics dataset label / description | `datasets.<name>.label` / `description` |
78+
| Dataset dimension and measure labels | `datasets.<name>.dimensions.<dimension>.label` / `datasets.<name>.measures.<measure>.label` |
7679
| Page labels and `page:header` copy | `pages.<name>.label` / `description` / `title` / `subtitle` |
7780
| Screen-flow wizards (flow label, screen headings, screen field copy) | `flows.<flow>.label` / `flows.<flow>.screens.<node_id>.title` / `.fields.<field>.label` / `.placeholder` — see the boundary note below |
7881
| Global actions, settings, messages | `globalActions`, `settings`, `messages` |
7982

8083
The metadata types resolved per request are **object, view, action, app,
81-
dashboard, and page** — a field's labels are translated as part of its object
82-
document, and so are the labels of any actions the object declares inline
84+
dashboard, dataset, and page** — a field's labels are translated as part of
85+
its object document, and so are the labels of any actions the object declares
86+
inline
8387
(#3370). Before that, an object document went out with its authored action
8488
labels untouched: `sys_approval_request`'s Approve / Reject rendered in English
8589
in a zh-CN workspace for every consumer except the Console, which happened to
@@ -95,6 +99,21 @@ translates `widget.description`, `subCaption` translates
9599
`widget.options.description`, and neither reaches the other's field.
96100
</Callout>
97101

102+
<Callout type="info">
103+
**Dataset copy is keyed at the top level, not under the dashboard
104+
(#14253).** A dataset is the analytics definition — its dimensions and its
105+
measures — that widgets bind to by reference, and a measure's label is drawn
106+
*on the dashboard*: under every metric tile and on every chart axis. It gets
107+
its own `datasets.<name>` group rather than a slot under `dashboards.<name>`
108+
because the same measure is drawn by many widgets across many dashboards —
109+
keying it per presentation would ask for the same string once per widget, and
110+
would leave a dataset no dashboard references unaddressable. Below the
111+
dataset the copy is `label` and nothing else: a dimension and a measure each
112+
declare exactly one display string, so `description` belongs to the dataset
113+
itself and writing one on a dimension or measure is rejected with a message
114+
saying so.
115+
</Callout>
116+
98117
<Callout type="info">
99118
**Page headers are keyed by page name (#3589).** A page's `page:header`
100119
component has no stable id, so its `properties.title` / `properties.subtitle`

0 commit comments

Comments
 (0)