Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .changeset/19403-page-interface-panel-en-echoes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
'@objectstack/platform-objects': patch
---

Decide the `page` Interface panel's en-echoes per leaf and render the decided ones in `zh-CN` / `ja-JP` / `es-ES`

`page.fields['interfaceConfig*']` and the `page.sections.interface` heading shipped their English source byte-for-byte in all three translated metadata-form catalogs — 15 keys, 30 string leaves, the panel every list page is authored on. Each leaf was judged on its own evidence rather than translated wholesale: the `view` panel is the authored twin for most of them, `Interface`, `Airtable`, the `interfaceConfig` key names, the `Grid / Kanban / Calendar` renderer tokens and the `filter-mode` option labels stay English, and `interfaceConfig.source` departs from both of this catalog's same-string precedents because it names the page's data binding rather than source code or provenance.

The verdicts and their reasons are pinned in `page-interface-panel-echo-decisions.test.ts`, whose population is derived from the `en` catalog, so a re-fill or a key added to the panel is red on the day it lands.
Original file line number Diff line number Diff line change
Expand Up @@ -781,8 +781,8 @@ export const esESMetadataForms: NonNullable<TranslationData['metadataForms']> =
description: "Regiones de página y componentes colocados en ellas."
},
interface: {
label: "Interface (list pages)",
description: "Interface mode (Airtable parity): the page defines its own data surface directly — columns, filters, visualizations and toolbar — no inheriting from a separate view."
label: "Interface (páginas de lista)",
description: "Modo Interface (paridad con Airtable): la página define directamente su propia superficie de datos — columnas, filtros, visualizaciones y barra de herramientas — sin heredar de una vista aparte."
},
advanced: {
label: "Avanzado",
Expand Down Expand Up @@ -852,24 +852,24 @@ export const esESMetadataForms: NonNullable<TranslationData['metadataForms']> =
label: "Componentes"
},
interfaceConfig: {
label: "Interface Config",
helpText: "The page IS the view: source picks the object, columns/filterBy are defined directly here; appearance.allowedVisualizations whitelists renderers (one entry = locked); userActions toggles the toolbar."
label: "Configuración de Interface",
helpText: "La página ES la vista: source elige el objeto, columns/filterBy se definen directamente aquí; appearance.allowedVisualizations restringe los renderizadores (una sola entrada = bloqueado); userActions conmuta la barra de herramientas."
},
"interfaceConfig.source": {
label: "Source",
helpText: "Object this page reads from"
label: "Origen de datos",
helpText: "Objeto del que lee esta página"
},
"interfaceConfig.columns": {
label: "Columns",
helpText: "Columns to show — defined directly on the page (blank = all object fields)"
label: "Columnas",
helpText: "Columnas que mostrar — definidas directamente en la página (en blanco = todos los campos del objeto)"
},
"interfaceConfig.filterBy": {
label: "Filter By",
helpText: "Always-on base filter for the page — same visual builder as the list toolbar."
label: "Filtrar por",
helpText: "Filtro base siempre activo para la página — el mismo constructor visual que la barra de herramientas de la lista."
},
"interfaceConfig.sort": {
label: "Sort",
helpText: "Default sort order for the page, defined directly on the page."
label: "Orden",
helpText: "Orden predeterminado de la página, definido directamente en la página."
},
"interfaceConfig.sort.field": {
label: "Campo"
Expand All @@ -878,40 +878,40 @@ export const esESMetadataForms: NonNullable<TranslationData['metadataForms']> =
label: "Dirección"
},
"interfaceConfig.levels": {
label: "Levels",
helpText: "Hierarchy levels to display (tree-like sources)"
label: "Niveles",
helpText: "Niveles de jerarquía que mostrar (orígenes de tipo árbol)"
},
"interfaceConfig.appearance": {
label: "Appearance",
helpText: "Allowed visualizations (Grid / Kanban / Calendar / …) and description visibility"
label: "Apariencia",
helpText: "Visualizaciones permitidas (Grid / Kanban / Calendar / …) y visibilidad de la descripción"
},
"interfaceConfig.userFilters": {
label: "User Filters",
helpText: "End-user filter bar: None (no bar) / Tabs (named presets) / Dropdown (per-field). None removes the config."
label: "Filtros de usuario",
helpText: "Barra de filtros para el usuario final: None (sin barra) / Tabs (preajustes con nombre) / Dropdown (por campo). None elimina la configuración."
},
"interfaceConfig.userActions": {
label: "User Actions",
helpText: "Toolbar toggles (search, sort, filter, row height)"
label: "Acciones de usuario",
helpText: "Conmutadores de la barra de herramientas (buscar, ordenar, filtrar, altura de fila)"
},
"interfaceConfig.addRecord": {
label: "Add Record",
helpText: "Add-record entry point"
label: "Agregar registro",
helpText: "Punto de entrada para agregar registros"
},
"interfaceConfig.buttons": {
label: "Buttons",
helpText: "Toolbar buttons — pick from this object's actions"
label: "Botones",
helpText: "Botones de la barra de herramientas — elige entre las acciones de este objeto"
},
"interfaceConfig.recordAction": {
label: "Record Action",
helpText: "How clicking a record opens its detail"
label: "Acción de registro",
helpText: "Cómo se abre el detalle al hacer clic en un registro"
},
"interfaceConfig.showRecordCount": {
label: "Show Record Count",
helpText: "Show the record count bar"
label: "Mostrar recuento de registros",
helpText: "Mostrar la barra de recuento de registros"
},
"interfaceConfig.allowPrinting": {
label: "Allow Printing",
helpText: "Allow users to print this page"
label: "Permitir impresión",
helpText: "Permitir que los usuarios impriman esta página"
},
isDefault: {
label: "Predeterminado",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,36 +136,6 @@ export const esESGeneratedSourceHashes: Readonly<Record<string, string>> = {
"metadataForms.object.fields.lifecycle.ttl.label": "e37616f70b0d157a",
"metadataForms.object.fields.validations.helpText": "1f6e59e364995ce8",
"metadataForms.object.fields.validations.label": "06fc6dd288348779",
"metadataForms.page.fields.interfaceConfig.addRecord.helpText": "3eb7b86c3a630db9",
"metadataForms.page.fields.interfaceConfig.addRecord.label": "01068706d8b5418a",
"metadataForms.page.fields.interfaceConfig.allowPrinting.helpText": "b8fa84e13cd1432c",
"metadataForms.page.fields.interfaceConfig.allowPrinting.label": "3d0f3f6f51215492",
"metadataForms.page.fields.interfaceConfig.appearance.helpText": "a6118f268ea9f841",
"metadataForms.page.fields.interfaceConfig.appearance.label": "e71255d10680838c",
"metadataForms.page.fields.interfaceConfig.buttons.helpText": "bdc9b266702b27d8",
"metadataForms.page.fields.interfaceConfig.buttons.label": "213eb6a492478539",
"metadataForms.page.fields.interfaceConfig.columns.helpText": "f2330254ad68acb8",
"metadataForms.page.fields.interfaceConfig.columns.label": "c849ea0a39dedbb6",
"metadataForms.page.fields.interfaceConfig.filterBy.helpText": "a73677b167a7379e",
"metadataForms.page.fields.interfaceConfig.filterBy.label": "141e52c71ef928bc",
"metadataForms.page.fields.interfaceConfig.helpText": "d99664c5cd130355",
"metadataForms.page.fields.interfaceConfig.label": "ebcdc9f327772aac",
"metadataForms.page.fields.interfaceConfig.levels.helpText": "6d33feacb82984ff",
"metadataForms.page.fields.interfaceConfig.levels.label": "f90c5b5c1457e991",
"metadataForms.page.fields.interfaceConfig.recordAction.helpText": "2356903762168e64",
"metadataForms.page.fields.interfaceConfig.recordAction.label": "b6e738e297b43df0",
"metadataForms.page.fields.interfaceConfig.showRecordCount.helpText": "23de51872ec0e7a5",
"metadataForms.page.fields.interfaceConfig.showRecordCount.label": "3f45f6242141d01a",
"metadataForms.page.fields.interfaceConfig.sort.helpText": "15ebb2c0a3d2390e",
"metadataForms.page.fields.interfaceConfig.sort.label": "4c590a0ed0c02eff",
"metadataForms.page.fields.interfaceConfig.source.helpText": "f3351049c2af63e7",
"metadataForms.page.fields.interfaceConfig.source.label": "8fe786e8e29c8cec",
"metadataForms.page.fields.interfaceConfig.userActions.helpText": "f720e5e6f4f35dae",
"metadataForms.page.fields.interfaceConfig.userActions.label": "3aea42abc7d6ffd0",
"metadataForms.page.fields.interfaceConfig.userFilters.helpText": "8791bc40505cac7d",
"metadataForms.page.fields.interfaceConfig.userFilters.label": "7e2bbb262bd29aa1",
"metadataForms.page.sections.interface.description": "7e60b977279a05dc",
"metadataForms.page.sections.interface.label": "e2280abc5267ddec",
"metadataForms.report.fields.drilldown.helpText": "778174eac8057764",
"metadataForms.report.fields.drilldown.label": "25ae77d240ced5f5",
"metadataForms.report.fields.runtimeFilter.helpText": "eb9ba8aeb55b7d40",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -781,8 +781,8 @@ export const jaJPMetadataForms: NonNullable<TranslationData['metadataForms']> =
description: "ページ領域とそこに配置するコンポーネント。"
},
interface: {
label: "Interface (list pages)",
description: "Interface mode (Airtable parity): the page defines its own data surface directly — columns, filters, visualizations and toolbar — no inheriting from a separate view."
label: "Interface(リストページ)",
description: "Interface モード(Airtable 互換):ページが自身のデータサーフェスを直接定義します——列、フィルター、可視化、ツールバー——独立したビューを継承しません。"
},
advanced: {
label: "詳細",
Expand Down Expand Up @@ -852,24 +852,24 @@ export const jaJPMetadataForms: NonNullable<TranslationData['metadataForms']> =
label: "コンポーネント"
},
interfaceConfig: {
label: "Interface Config",
helpText: "The page IS the view: source picks the object, columns/filterBy are defined directly here; appearance.allowedVisualizations whitelists renderers (one entry = locked); userActions toggles the toolbar."
label: "Interface 設定",
helpText: "ページ自体がビューです:source でオブジェクトを選び、columns/filterBy はここで直接定義します。appearance.allowedVisualizations が使用可能なレンダラーを限定し(1 件のみならロック)、userActions がツールバーを切り替えます。"
},
"interfaceConfig.source": {
label: "Source",
helpText: "Object this page reads from"
label: "ソース",
helpText: "このページがデータを読み取るオブジェクト"
},
"interfaceConfig.columns": {
label: "Columns",
helpText: "Columns to show — defined directly on the page (blank = all object fields)"
label: "列",
helpText: "表示する列——ページ上で直接定義します(空欄はオブジェクトの全フィールド)"
},
"interfaceConfig.filterBy": {
label: "Filter By",
helpText: "Always-on base filter for the page — same visual builder as the list toolbar."
label: "フィルター条件",
helpText: "ページに常時適用される基本フィルター——リストツールバーと同じビジュアルビルダー。"
},
"interfaceConfig.sort": {
label: "Sort",
helpText: "Default sort order for the page, defined directly on the page."
label: "並び替え",
helpText: "ページの既定の並び順。ページ上で直接定義します。"
},
"interfaceConfig.sort.field": {
label: "フィールド"
Expand All @@ -878,40 +878,40 @@ export const jaJPMetadataForms: NonNullable<TranslationData['metadataForms']> =
label: "並び方向"
},
"interfaceConfig.levels": {
label: "Levels",
helpText: "Hierarchy levels to display (tree-like sources)"
label: "階層レベル",
helpText: "表示する階層レベル(ツリー状のソース)"
},
"interfaceConfig.appearance": {
label: "Appearance",
helpText: "Allowed visualizations (Grid / Kanban / Calendar / …) and description visibility"
label: "外観",
helpText: "使用可能な可視化(Grid / Kanban / Calendar / …)と説明の表示可否"
},
"interfaceConfig.userFilters": {
label: "User Filters",
helpText: "End-user filter bar: None (no bar) / Tabs (named presets) / Dropdown (per-field). None removes the config."
label: "ユーザーフィルター",
helpText: "エンドユーザー用フィルターバー:None(バーなし)/ Tabs(名前付きプリセット)/ Dropdown(フィールド単位)。None は設定を削除します。"
},
"interfaceConfig.userActions": {
label: "User Actions",
helpText: "Toolbar toggles (search, sort, filter, row height)"
label: "ユーザーアクション",
helpText: "ツールバーの切り替え(検索、並べ替え、フィルター、行の高さ)"
},
"interfaceConfig.addRecord": {
label: "Add Record",
helpText: "Add-record entry point"
label: "レコードを追加",
helpText: "レコード追加の入口"
},
"interfaceConfig.buttons": {
label: "Buttons",
helpText: "Toolbar buttons — pick from this object's actions"
label: "ボタン",
helpText: "ツールバーのボタン——このオブジェクトのアクションから選択します"
},
"interfaceConfig.recordAction": {
label: "Record Action",
helpText: "How clicking a record opens its detail"
label: "レコードアクション",
helpText: "レコードをクリックしたときに詳細をどう開くか"
},
"interfaceConfig.showRecordCount": {
label: "Show Record Count",
helpText: "Show the record count bar"
label: "レコード数を表示",
helpText: "レコード数バーを表示します"
},
"interfaceConfig.allowPrinting": {
label: "Allow Printing",
helpText: "Allow users to print this page"
label: "印刷を許可",
helpText: "ユーザーがこのページを印刷できるようにします"
},
isDefault: {
label: "既定",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,36 +136,6 @@ export const jaJPGeneratedSourceHashes: Readonly<Record<string, string>> = {
"metadataForms.object.fields.lifecycle.ttl.label": "e37616f70b0d157a",
"metadataForms.object.fields.validations.helpText": "1f6e59e364995ce8",
"metadataForms.object.fields.validations.label": "06fc6dd288348779",
"metadataForms.page.fields.interfaceConfig.addRecord.helpText": "3eb7b86c3a630db9",
"metadataForms.page.fields.interfaceConfig.addRecord.label": "01068706d8b5418a",
"metadataForms.page.fields.interfaceConfig.allowPrinting.helpText": "b8fa84e13cd1432c",
"metadataForms.page.fields.interfaceConfig.allowPrinting.label": "3d0f3f6f51215492",
"metadataForms.page.fields.interfaceConfig.appearance.helpText": "a6118f268ea9f841",
"metadataForms.page.fields.interfaceConfig.appearance.label": "e71255d10680838c",
"metadataForms.page.fields.interfaceConfig.buttons.helpText": "bdc9b266702b27d8",
"metadataForms.page.fields.interfaceConfig.buttons.label": "213eb6a492478539",
"metadataForms.page.fields.interfaceConfig.columns.helpText": "f2330254ad68acb8",
"metadataForms.page.fields.interfaceConfig.columns.label": "c849ea0a39dedbb6",
"metadataForms.page.fields.interfaceConfig.filterBy.helpText": "a73677b167a7379e",
"metadataForms.page.fields.interfaceConfig.filterBy.label": "141e52c71ef928bc",
"metadataForms.page.fields.interfaceConfig.helpText": "d99664c5cd130355",
"metadataForms.page.fields.interfaceConfig.label": "ebcdc9f327772aac",
"metadataForms.page.fields.interfaceConfig.levels.helpText": "6d33feacb82984ff",
"metadataForms.page.fields.interfaceConfig.levels.label": "f90c5b5c1457e991",
"metadataForms.page.fields.interfaceConfig.recordAction.helpText": "2356903762168e64",
"metadataForms.page.fields.interfaceConfig.recordAction.label": "b6e738e297b43df0",
"metadataForms.page.fields.interfaceConfig.showRecordCount.helpText": "23de51872ec0e7a5",
"metadataForms.page.fields.interfaceConfig.showRecordCount.label": "3f45f6242141d01a",
"metadataForms.page.fields.interfaceConfig.sort.helpText": "15ebb2c0a3d2390e",
"metadataForms.page.fields.interfaceConfig.sort.label": "4c590a0ed0c02eff",
"metadataForms.page.fields.interfaceConfig.source.helpText": "f3351049c2af63e7",
"metadataForms.page.fields.interfaceConfig.source.label": "8fe786e8e29c8cec",
"metadataForms.page.fields.interfaceConfig.userActions.helpText": "f720e5e6f4f35dae",
"metadataForms.page.fields.interfaceConfig.userActions.label": "3aea42abc7d6ffd0",
"metadataForms.page.fields.interfaceConfig.userFilters.helpText": "8791bc40505cac7d",
"metadataForms.page.fields.interfaceConfig.userFilters.label": "7e2bbb262bd29aa1",
"metadataForms.page.sections.interface.description": "7e60b977279a05dc",
"metadataForms.page.sections.interface.label": "e2280abc5267ddec",
"metadataForms.report.fields.drilldown.helpText": "778174eac8057764",
"metadataForms.report.fields.drilldown.label": "25ae77d240ced5f5",
"metadataForms.report.fields.runtimeFilter.helpText": "eb9ba8aeb55b7d40",
Expand Down
Loading
Loading