@object-ui/i18n 11.0.0 → 11.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # @object-ui/i18n
2
2
 
3
+ ## 11.3.0
4
+
5
+ ### Patch Changes
6
+
7
+ - d88c8ec: fix(data-table): surface inline-edit save failures instead of swallowing them
8
+
9
+ A rejected inline-edit save (e.g. a 400 validation failure like an invalid
10
+ status transition) was caught with only `console.error` — the toolbar stayed
11
+ stuck, the cell kept the unsaved value, and the author got no feedback. Now the
12
+ data-table shows the server's reason in the toolbar (with an alert icon) and
13
+ tints the affected row(s) destructive so it's clear which rows didn't persist.
14
+ The pending edit is kept for retry; the error clears on a successful save or on
15
+ cancel. Adds the `table.saveFailed` string across all locales.
16
+
17
+ ## 11.2.0
18
+
19
+ ## 11.1.0
20
+
21
+ ### Patch Changes
22
+
23
+ - 6726a2b: First-run UX polish (objectstack-ai/objectui#2038) — copy improvements found via the ObjectOS Cloud signup walkthrough:
24
+
25
+ - **"Organization" → "Workspace"** across the org picker (`organizations.*` strings, en + zh). The create flow + WorkspaceSwitcher already say "workspace"; the picker ("Your Organizations / No organizations yet") was the lone holdout. Now consistent.
26
+ - **Non-admin empty state** — "There are no applications available to you yet. Please contact your workspace administrator." → "Your workspace is being set up — apps your admin shares with you will show up here." (less dead-end, en + zh).
27
+ - **Cold-start reassurance** — new `console.loadingHint` line under the LoadingScreen steps: "Setting up a new environment can take a few moments." (en + zh).
28
+ - **Signup value-prop** — register subtitle "Enter your information to get started" → "Create your account to start building." (en + zh).
29
+
3
30
  ## 7.3.0
4
31
 
5
32
  ## 7.2.0
@@ -137,6 +137,7 @@ declare const ar: {
137
137
  open: string;
138
138
  search: string;
139
139
  modified: string;
140
+ saveFailed: string;
140
141
  selected: string;
141
142
  edit: string;
142
143
  delete: string;
@@ -137,6 +137,7 @@ const ar = {
137
137
  open: "فتح",
138
138
  search: "بحث...",
139
139
  modified: "{{count}} صف(صفوف) معدّل(ة)",
140
+ saveFailed: 'فشل الحفظ',
140
141
  selected: "{{count}} محدد(ة)",
141
142
  edit: "تعديل",
142
143
  delete: "حذف",
@@ -137,6 +137,7 @@ declare const de: {
137
137
  open: string;
138
138
  search: string;
139
139
  modified: string;
140
+ saveFailed: string;
140
141
  selected: string;
141
142
  edit: string;
142
143
  delete: string;
@@ -137,6 +137,7 @@ const de = {
137
137
  open: "Öffnen",
138
138
  search: "Suchen...",
139
139
  modified: "{{count}} Zeile geändert",
140
+ saveFailed: 'Speichern fehlgeschlagen',
140
141
  selected: "{{count}} ausgewählt",
141
142
  edit: "Bearbeiten",
142
143
  delete: "Löschen",
@@ -94,6 +94,10 @@ declare const en: {
94
94
  readonly saveSuccess: "Saved successfully";
95
95
  readonly saveError: "Failed to save";
96
96
  readonly unsavedChanges: "You have unsaved changes. Are you sure you want to leave?";
97
+ readonly discardTitle: "Discard changes?";
98
+ readonly discardMessage: "You have unsaved changes. If you close this form now, your edits will be lost.";
99
+ readonly keepEditing: "Keep editing";
100
+ readonly discard: "Discard";
97
101
  readonly stepOf: "Step {{current}} of {{total}}";
98
102
  readonly createTitle: "Create {{object}}";
99
103
  readonly editTitle: "Edit {{object}}";
@@ -140,6 +144,7 @@ declare const en: {
140
144
  readonly open: "Open";
141
145
  readonly search: "Search...";
142
146
  readonly modified: "{{count}} row modified";
147
+ readonly saveFailed: "Save failed";
143
148
  readonly selected: "{{count}} selected";
144
149
  readonly edit: "Edit";
145
150
  readonly delete: "Delete";
@@ -1031,6 +1036,7 @@ declare const en: {
1031
1036
  readonly loadingConfig: "Loading configuration";
1032
1037
  readonly preparingWorkspace: "Preparing workspace";
1033
1038
  };
1039
+ readonly loadingHint: "Setting up a new environment can take a few moments.";
1034
1040
  readonly error: {
1035
1041
  readonly connectionFailed: "Cannot connect to server";
1036
1042
  readonly serverUnreachable: "The server at {{url}} is unreachable.";
@@ -1104,6 +1110,8 @@ declare const en: {
1104
1110
  readonly conversationReady: "Conversation ready";
1105
1111
  readonly preparingConversation: "Preparing a new conversation";
1106
1112
  readonly offlineDemoMode: "Offline demo mode — agent list unavailable";
1113
+ readonly sendFailedRateLimited: "You're sending messages too quickly. Your message is kept below — wait a moment and try again.";
1114
+ readonly sendFailedGeneric: "Couldn't send your message. It's kept below — please try again.";
1107
1115
  readonly askAgent: "Ask {{agent}}...";
1108
1116
  readonly assistant: "Assistant";
1109
1117
  readonly loadingAgents: "Loading agents...";
@@ -1432,7 +1440,7 @@ declare const en: {
1432
1440
  };
1433
1441
  readonly register: {
1434
1442
  readonly title: "Create an account";
1435
- readonly description: "Enter your information to get started";
1443
+ readonly description: "Create your account to start building.";
1436
1444
  readonly nameLabel: "Name";
1437
1445
  readonly namePlaceholder: "John Doe";
1438
1446
  readonly emailLabel: "Email";
@@ -1641,7 +1649,7 @@ declare const en: {
1641
1649
  readonly welcomeAdminDescriptionNoBuild: "Set up your first application from the Administration menu on the left. Once you have data, the AI assistant can help you explore it.";
1642
1650
  readonly welcomeAdminDescriptionNoAi: "Set up your first application from the Administration menu on the left.";
1643
1651
  readonly noAppsTitle: "No applications yet";
1644
- readonly noAppsDescription: "There are no applications available to you yet. Please contact your workspace administrator.";
1652
+ readonly noAppsDescription: "Your workspace is being set up — apps your admin shares with you will show up here.";
1645
1653
  readonly buildWithAI: "Build with AI";
1646
1654
  readonly askAI: "Ask AI";
1647
1655
  readonly recoveryReminder: {
@@ -1788,6 +1796,9 @@ declare const en: {
1788
1796
  readonly publishing: "Publishing…";
1789
1797
  readonly exit: "Exit preview";
1790
1798
  readonly changes: "Changes";
1799
+ readonly sampleDataTitle: "Sample data appears once you publish";
1800
+ readonly sampleDataBody: "You’re previewing your app’s structure. Publish to load example records and make it live.";
1801
+ readonly publishCta: "Publish to see it live";
1791
1802
  };
1792
1803
  readonly changes: {
1793
1804
  readonly title: "Pending changes";
@@ -1883,18 +1894,18 @@ declare const en: {
1883
1894
  readonly language: "Language";
1884
1895
  };
1885
1896
  readonly organizations: {
1886
- readonly mine: "My Organizations";
1897
+ readonly mine: "My Workspaces";
1887
1898
  readonly create: "Create workspace";
1888
- readonly title: "Organizations";
1889
- readonly heading: "Your Organizations";
1890
- readonly subtitle: "Select an organization to continue, or create a new one.";
1891
- readonly searchPlaceholder: "Search for an organization";
1892
- readonly new: "New organization";
1893
- readonly current: "Current organization";
1899
+ readonly title: "Workspaces";
1900
+ readonly heading: "Your Workspaces";
1901
+ readonly subtitle: "Select a workspace to continue, or create a new one.";
1902
+ readonly searchPlaceholder: "Search for a workspace";
1903
+ readonly new: "New workspace";
1904
+ readonly current: "Current workspace";
1894
1905
  readonly manage: "Manage";
1895
- readonly emptyTitle: "No organizations yet";
1896
- readonly emptyDescription: "Create your first organization to get started.";
1897
- readonly noMatches: "No organizations match your search.";
1906
+ readonly emptyTitle: "No workspaces yet";
1907
+ readonly emptyDescription: "Create your first workspace to get started.";
1908
+ readonly noMatches: "No workspaces match your search.";
1898
1909
  };
1899
1910
  readonly notifications: {
1900
1911
  readonly regionLabel: "Notifications";
@@ -94,6 +94,10 @@ const en = {
94
94
  saveSuccess: 'Saved successfully',
95
95
  saveError: 'Failed to save',
96
96
  unsavedChanges: 'You have unsaved changes. Are you sure you want to leave?',
97
+ discardTitle: 'Discard changes?',
98
+ discardMessage: 'You have unsaved changes. If you close this form now, your edits will be lost.',
99
+ keepEditing: 'Keep editing',
100
+ discard: 'Discard',
97
101
  stepOf: 'Step {{current}} of {{total}}',
98
102
  createTitle: 'Create {{object}}',
99
103
  editTitle: 'Edit {{object}}',
@@ -140,6 +144,7 @@ const en = {
140
144
  open: 'Open',
141
145
  search: 'Search...',
142
146
  modified: '{{count}} row modified',
147
+ saveFailed: 'Save failed',
143
148
  selected: '{{count}} selected',
144
149
  edit: 'Edit',
145
150
  delete: 'Delete',
@@ -1044,6 +1049,7 @@ const en = {
1044
1049
  loadingConfig: 'Loading configuration',
1045
1050
  preparingWorkspace: 'Preparing workspace',
1046
1051
  },
1052
+ loadingHint: 'Setting up a new environment can take a few moments.',
1047
1053
  error: {
1048
1054
  connectionFailed: 'Cannot connect to server',
1049
1055
  serverUnreachable: 'The server at {{url}} is unreachable.',
@@ -1117,6 +1123,8 @@ const en = {
1117
1123
  conversationReady: 'Conversation ready',
1118
1124
  preparingConversation: 'Preparing a new conversation',
1119
1125
  offlineDemoMode: 'Offline demo mode — agent list unavailable',
1126
+ sendFailedRateLimited: "You're sending messages too quickly. Your message is kept below — wait a moment and try again.",
1127
+ sendFailedGeneric: "Couldn't send your message. It's kept below — please try again.",
1120
1128
  askAgent: 'Ask {{agent}}...',
1121
1129
  assistant: 'Assistant',
1122
1130
  loadingAgents: 'Loading agents...',
@@ -1448,7 +1456,7 @@ const en = {
1448
1456
  },
1449
1457
  register: {
1450
1458
  title: 'Create an account',
1451
- description: 'Enter your information to get started',
1459
+ description: 'Create your account to start building.',
1452
1460
  nameLabel: 'Name',
1453
1461
  namePlaceholder: 'John Doe',
1454
1462
  emailLabel: 'Email',
@@ -1657,7 +1665,7 @@ const en = {
1657
1665
  welcomeAdminDescriptionNoBuild: 'Set up your first application from the Administration menu on the left. Once you have data, the AI assistant can help you explore it.',
1658
1666
  welcomeAdminDescriptionNoAi: 'Set up your first application from the Administration menu on the left.',
1659
1667
  noAppsTitle: 'No applications yet',
1660
- noAppsDescription: 'There are no applications available to you yet. Please contact your workspace administrator.',
1668
+ noAppsDescription: 'Your workspace is being set up — apps your admin shares with you will show up here.',
1661
1669
  buildWithAI: 'Build with AI',
1662
1670
  askAI: 'Ask AI',
1663
1671
  recoveryReminder: {
@@ -1804,6 +1812,12 @@ const en = {
1804
1812
  publishing: 'Publishing…',
1805
1813
  exit: 'Exit preview',
1806
1814
  changes: 'Changes',
1815
+ // Magic-moment hint: a freshly-built draft renders empty (dashboards at 0,
1816
+ // lists "Nothing here yet") because seed/sample rows only load on publish.
1817
+ // Say so plainly so an empty preview never reads as a broken build.
1818
+ sampleDataTitle: 'Sample data appears once you publish',
1819
+ sampleDataBody: 'You’re previewing your app’s structure. Publish to load example records and make it live.',
1820
+ publishCta: 'Publish to see it live',
1807
1821
  },
1808
1822
  changes: {
1809
1823
  title: 'Pending changes',
@@ -1899,18 +1913,18 @@ const en = {
1899
1913
  language: 'Language',
1900
1914
  },
1901
1915
  organizations: {
1902
- mine: 'My Organizations',
1916
+ mine: 'My Workspaces',
1903
1917
  create: 'Create workspace',
1904
- title: 'Organizations',
1905
- heading: 'Your Organizations',
1906
- subtitle: 'Select an organization to continue, or create a new one.',
1907
- searchPlaceholder: 'Search for an organization',
1908
- new: 'New organization',
1909
- current: 'Current organization',
1918
+ title: 'Workspaces',
1919
+ heading: 'Your Workspaces',
1920
+ subtitle: 'Select a workspace to continue, or create a new one.',
1921
+ searchPlaceholder: 'Search for a workspace',
1922
+ new: 'New workspace',
1923
+ current: 'Current workspace',
1910
1924
  manage: 'Manage',
1911
- emptyTitle: 'No organizations yet',
1912
- emptyDescription: 'Create your first organization to get started.',
1913
- noMatches: 'No organizations match your search.',
1925
+ emptyTitle: 'No workspaces yet',
1926
+ emptyDescription: 'Create your first workspace to get started.',
1927
+ noMatches: 'No workspaces match your search.',
1914
1928
  },
1915
1929
  notifications: {
1916
1930
  regionLabel: 'Notifications',
@@ -137,6 +137,7 @@ declare const es: {
137
137
  open: string;
138
138
  search: string;
139
139
  modified: string;
140
+ saveFailed: string;
140
141
  selected: string;
141
142
  edit: string;
142
143
  delete: string;
@@ -137,6 +137,7 @@ const es = {
137
137
  open: "Abrir",
138
138
  search: "Buscar...",
139
139
  modified: "{{count}} filas modificadas",
140
+ saveFailed: 'Error al guardar',
140
141
  selected: "{{count}} seleccionados",
141
142
  edit: "Editar",
142
143
  delete: "Eliminar",
@@ -137,6 +137,7 @@ declare const fr: {
137
137
  open: string;
138
138
  search: string;
139
139
  modified: string;
140
+ saveFailed: string;
140
141
  selected: string;
141
142
  edit: string;
142
143
  delete: string;
@@ -137,6 +137,7 @@ const fr = {
137
137
  open: "Ouvrir",
138
138
  search: "Rechercher...",
139
139
  modified: "{{count}} ligne(s) modifiée(s)",
140
+ saveFailed: 'Échec de l’enregistrement',
140
141
  selected: "{{count}} sélectionné(s)",
141
142
  edit: "Modifier",
142
143
  delete: "Supprimer",
@@ -106,6 +106,10 @@ export declare const builtInLocales: {
106
106
  readonly saveSuccess: "Saved successfully";
107
107
  readonly saveError: "Failed to save";
108
108
  readonly unsavedChanges: "You have unsaved changes. Are you sure you want to leave?";
109
+ readonly discardTitle: "Discard changes?";
110
+ readonly discardMessage: "You have unsaved changes. If you close this form now, your edits will be lost.";
111
+ readonly keepEditing: "Keep editing";
112
+ readonly discard: "Discard";
109
113
  readonly stepOf: "Step {{current}} of {{total}}";
110
114
  readonly createTitle: "Create {{object}}";
111
115
  readonly editTitle: "Edit {{object}}";
@@ -152,6 +156,7 @@ export declare const builtInLocales: {
152
156
  readonly open: "Open";
153
157
  readonly search: "Search...";
154
158
  readonly modified: "{{count}} row modified";
159
+ readonly saveFailed: "Save failed";
155
160
  readonly selected: "{{count}} selected";
156
161
  readonly edit: "Edit";
157
162
  readonly delete: "Delete";
@@ -1043,6 +1048,7 @@ export declare const builtInLocales: {
1043
1048
  readonly loadingConfig: "Loading configuration";
1044
1049
  readonly preparingWorkspace: "Preparing workspace";
1045
1050
  };
1051
+ readonly loadingHint: "Setting up a new environment can take a few moments.";
1046
1052
  readonly error: {
1047
1053
  readonly connectionFailed: "Cannot connect to server";
1048
1054
  readonly serverUnreachable: "The server at {{url}} is unreachable.";
@@ -1116,6 +1122,8 @@ export declare const builtInLocales: {
1116
1122
  readonly conversationReady: "Conversation ready";
1117
1123
  readonly preparingConversation: "Preparing a new conversation";
1118
1124
  readonly offlineDemoMode: "Offline demo mode — agent list unavailable";
1125
+ readonly sendFailedRateLimited: "You're sending messages too quickly. Your message is kept below — wait a moment and try again.";
1126
+ readonly sendFailedGeneric: "Couldn't send your message. It's kept below — please try again.";
1119
1127
  readonly askAgent: "Ask {{agent}}...";
1120
1128
  readonly assistant: "Assistant";
1121
1129
  readonly loadingAgents: "Loading agents...";
@@ -1444,7 +1452,7 @@ export declare const builtInLocales: {
1444
1452
  };
1445
1453
  readonly register: {
1446
1454
  readonly title: "Create an account";
1447
- readonly description: "Enter your information to get started";
1455
+ readonly description: "Create your account to start building.";
1448
1456
  readonly nameLabel: "Name";
1449
1457
  readonly namePlaceholder: "John Doe";
1450
1458
  readonly emailLabel: "Email";
@@ -1653,7 +1661,7 @@ export declare const builtInLocales: {
1653
1661
  readonly welcomeAdminDescriptionNoBuild: "Set up your first application from the Administration menu on the left. Once you have data, the AI assistant can help you explore it.";
1654
1662
  readonly welcomeAdminDescriptionNoAi: "Set up your first application from the Administration menu on the left.";
1655
1663
  readonly noAppsTitle: "No applications yet";
1656
- readonly noAppsDescription: "There are no applications available to you yet. Please contact your workspace administrator.";
1664
+ readonly noAppsDescription: "Your workspace is being set up — apps your admin shares with you will show up here.";
1657
1665
  readonly buildWithAI: "Build with AI";
1658
1666
  readonly askAI: "Ask AI";
1659
1667
  readonly recoveryReminder: {
@@ -1800,6 +1808,9 @@ export declare const builtInLocales: {
1800
1808
  readonly publishing: "Publishing…";
1801
1809
  readonly exit: "Exit preview";
1802
1810
  readonly changes: "Changes";
1811
+ readonly sampleDataTitle: "Sample data appears once you publish";
1812
+ readonly sampleDataBody: "You’re previewing your app’s structure. Publish to load example records and make it live.";
1813
+ readonly publishCta: "Publish to see it live";
1803
1814
  };
1804
1815
  readonly changes: {
1805
1816
  readonly title: "Pending changes";
@@ -1895,18 +1906,18 @@ export declare const builtInLocales: {
1895
1906
  readonly language: "Language";
1896
1907
  };
1897
1908
  readonly organizations: {
1898
- readonly mine: "My Organizations";
1909
+ readonly mine: "My Workspaces";
1899
1910
  readonly create: "Create workspace";
1900
- readonly title: "Organizations";
1901
- readonly heading: "Your Organizations";
1902
- readonly subtitle: "Select an organization to continue, or create a new one.";
1903
- readonly searchPlaceholder: "Search for an organization";
1904
- readonly new: "New organization";
1905
- readonly current: "Current organization";
1911
+ readonly title: "Workspaces";
1912
+ readonly heading: "Your Workspaces";
1913
+ readonly subtitle: "Select a workspace to continue, or create a new one.";
1914
+ readonly searchPlaceholder: "Search for a workspace";
1915
+ readonly new: "New workspace";
1916
+ readonly current: "Current workspace";
1906
1917
  readonly manage: "Manage";
1907
- readonly emptyTitle: "No organizations yet";
1908
- readonly emptyDescription: "Create your first organization to get started.";
1909
- readonly noMatches: "No organizations match your search.";
1918
+ readonly emptyTitle: "No workspaces yet";
1919
+ readonly emptyDescription: "Create your first workspace to get started.";
1920
+ readonly noMatches: "No workspaces match your search.";
1910
1921
  };
1911
1922
  readonly notifications: {
1912
1923
  readonly regionLabel: "Notifications";
@@ -2397,6 +2408,10 @@ export declare const builtInLocales: {
2397
2408
  readonly saveSuccess: "保存成功";
2398
2409
  readonly saveError: "保存失败";
2399
2410
  readonly unsavedChanges: "您有未保存的更改,确定要离开吗?";
2411
+ readonly discardTitle: "放弃更改?";
2412
+ readonly discardMessage: "您有未保存的更改。如果现在关闭此表单,您的编辑将会丢失。";
2413
+ readonly keepEditing: "继续编辑";
2414
+ readonly discard: "放弃";
2400
2415
  readonly stepOf: "第{{current}}步,共{{total}}步";
2401
2416
  readonly createTitle: "新建{{object}}";
2402
2417
  readonly editTitle: "编辑{{object}}";
@@ -2443,6 +2458,7 @@ export declare const builtInLocales: {
2443
2458
  readonly open: "打开";
2444
2459
  readonly search: "搜索...";
2445
2460
  readonly modified: "{{count}} 行已修改";
2461
+ readonly saveFailed: "保存失败";
2446
2462
  readonly selected: "已选择 {{count}} 项";
2447
2463
  readonly edit: "编辑";
2448
2464
  readonly delete: "删除";
@@ -3334,6 +3350,7 @@ export declare const builtInLocales: {
3334
3350
  readonly loadingConfig: "正在加载配置";
3335
3351
  readonly preparingWorkspace: "正在准备工作区";
3336
3352
  };
3353
+ readonly loadingHint: "初始化新环境可能需要几秒钟。";
3337
3354
  readonly error: {
3338
3355
  readonly connectionFailed: "无法连接到服务器";
3339
3356
  readonly serverUnreachable: "无法访问服务器 {{url}}。";
@@ -3406,6 +3423,8 @@ export declare const builtInLocales: {
3406
3423
  readonly conversationReady: "对话已就绪";
3407
3424
  readonly preparingConversation: "正在准备新对话";
3408
3425
  readonly offlineDemoMode: "离线演示模式 — 无法获取助手列表";
3426
+ readonly sendFailedRateLimited: "发送过于频繁,请稍候再试。你的消息已保留在输入框中。";
3427
+ readonly sendFailedGeneric: "消息发送失败,请重试。你的消息已保留在输入框中。";
3409
3428
  readonly askAgent: "向 {{agent}} 提问...";
3410
3429
  readonly assistant: "助手";
3411
3430
  readonly loadingAgents: "正在加载助手...";
@@ -3732,7 +3751,7 @@ export declare const builtInLocales: {
3732
3751
  };
3733
3752
  readonly register: {
3734
3753
  readonly title: "创建账户";
3735
- readonly description: "输入您的信息以开始使用";
3754
+ readonly description: "创建账号,开始搭建。";
3736
3755
  readonly nameLabel: "姓名";
3737
3756
  readonly namePlaceholder: "张三";
3738
3757
  readonly emailLabel: "邮箱";
@@ -3954,7 +3973,7 @@ export declare const builtInLocales: {
3954
3973
  readonly welcomeAdminDescriptionNoBuild: "从左侧的「管理」菜单创建你的第一个应用。有了数据后,AI 助手可以帮你查询和分析。";
3955
3974
  readonly welcomeAdminDescriptionNoAi: "从左侧的「管理」菜单创建你的第一个应用。";
3956
3975
  readonly noAppsTitle: "还没有应用";
3957
- readonly noAppsDescription: "当前还没有可用的应用。请联系你的工作区管理员。";
3976
+ readonly noAppsDescription: "工作区正在准备中——管理员共享给你的应用会显示在这里。";
3958
3977
  readonly buildWithAI: "用 AI 搭建";
3959
3978
  readonly askAI: "问 AI";
3960
3979
  readonly recoveryReminder: {
@@ -4101,6 +4120,9 @@ export declare const builtInLocales: {
4101
4120
  readonly publishing: "发布中…";
4102
4121
  readonly exit: "退出预览";
4103
4122
  readonly changes: "变更";
4123
+ readonly sampleDataTitle: "示例数据将在发布后出现";
4124
+ readonly sampleDataBody: "您正在预览应用的结构。发布后即可载入示例数据并正式上线。";
4125
+ readonly publishCta: "发布以查看实际效果";
4104
4126
  };
4105
4127
  readonly changes: {
4106
4128
  readonly title: "待发布的变更";
@@ -4196,18 +4218,18 @@ export declare const builtInLocales: {
4196
4218
  readonly language: "语言";
4197
4219
  };
4198
4220
  readonly organizations: {
4199
- readonly mine: "我的组织";
4221
+ readonly mine: "我的工作区";
4200
4222
  readonly create: "创建工作区";
4201
- readonly title: "组织";
4202
- readonly heading: "您的组织";
4203
- readonly subtitle: "选择一个组织以继续,或新建一个组织。";
4204
- readonly searchPlaceholder: "搜索组织";
4205
- readonly new: "新建组织";
4206
- readonly current: "当前组织";
4223
+ readonly title: "工作区";
4224
+ readonly heading: "您的工作区";
4225
+ readonly subtitle: "选择一个工作区以继续,或新建一个。";
4226
+ readonly searchPlaceholder: "搜索工作区";
4227
+ readonly new: "新建工作区";
4228
+ readonly current: "当前工作区";
4207
4229
  readonly manage: "管理";
4208
- readonly emptyTitle: "尚无组织";
4209
- readonly emptyDescription: "创建您的第一个组织以开始使用。";
4210
- readonly noMatches: "没有匹配的组织。";
4230
+ readonly emptyTitle: "尚无工作区";
4231
+ readonly emptyDescription: "创建您的第一个工作区以开始使用。";
4232
+ readonly noMatches: "没有匹配的工作区。";
4211
4233
  };
4212
4234
  readonly notifications: {
4213
4235
  readonly regionLabel: "通知";
@@ -4744,6 +4766,7 @@ export declare const builtInLocales: {
4744
4766
  open: string;
4745
4767
  search: string;
4746
4768
  modified: string;
4769
+ saveFailed: string;
4747
4770
  selected: string;
4748
4771
  edit: string;
4749
4772
  delete: string;
@@ -6779,6 +6802,7 @@ export declare const builtInLocales: {
6779
6802
  open: string;
6780
6803
  search: string;
6781
6804
  modified: string;
6805
+ saveFailed: string;
6782
6806
  selected: string;
6783
6807
  edit: string;
6784
6808
  delete: string;
@@ -8814,6 +8838,7 @@ export declare const builtInLocales: {
8814
8838
  open: string;
8815
8839
  search: string;
8816
8840
  modified: string;
8841
+ saveFailed: string;
8817
8842
  selected: string;
8818
8843
  edit: string;
8819
8844
  delete: string;
@@ -10849,6 +10874,7 @@ export declare const builtInLocales: {
10849
10874
  open: string;
10850
10875
  search: string;
10851
10876
  modified: string;
10877
+ saveFailed: string;
10852
10878
  selected: string;
10853
10879
  edit: string;
10854
10880
  delete: string;
@@ -12884,6 +12910,7 @@ export declare const builtInLocales: {
12884
12910
  open: string;
12885
12911
  search: string;
12886
12912
  modified: string;
12913
+ saveFailed: string;
12887
12914
  selected: string;
12888
12915
  edit: string;
12889
12916
  delete: string;
@@ -14919,6 +14946,7 @@ export declare const builtInLocales: {
14919
14946
  open: string;
14920
14947
  search: string;
14921
14948
  modified: string;
14949
+ saveFailed: string;
14922
14950
  selected: string;
14923
14951
  edit: string;
14924
14952
  delete: string;
@@ -16954,6 +16982,7 @@ export declare const builtInLocales: {
16954
16982
  open: string;
16955
16983
  search: string;
16956
16984
  modified: string;
16985
+ saveFailed: string;
16957
16986
  selected: string;
16958
16987
  edit: string;
16959
16988
  delete: string;
@@ -18989,6 +19018,7 @@ export declare const builtInLocales: {
18989
19018
  open: string;
18990
19019
  search: string;
18991
19020
  modified: string;
19021
+ saveFailed: string;
18992
19022
  selected: string;
18993
19023
  edit: string;
18994
19024
  delete: string;
@@ -137,6 +137,7 @@ declare const ja: {
137
137
  open: string;
138
138
  search: string;
139
139
  modified: string;
140
+ saveFailed: string;
140
141
  selected: string;
141
142
  edit: string;
142
143
  delete: string;
@@ -137,6 +137,7 @@ const ja = {
137
137
  open: "開く",
138
138
  search: "検索...",
139
139
  modified: "{{count}} 行が変更されました",
140
+ saveFailed: '保存に失敗しました',
140
141
  selected: "{{count}} 件選択中",
141
142
  edit: "編集",
142
143
  delete: "削除",
@@ -137,6 +137,7 @@ declare const ko: {
137
137
  open: string;
138
138
  search: string;
139
139
  modified: string;
140
+ saveFailed: string;
140
141
  selected: string;
141
142
  edit: string;
142
143
  delete: string;
@@ -137,6 +137,7 @@ const ko = {
137
137
  open: "열기",
138
138
  search: "검색...",
139
139
  modified: "{{count}}개 행 수정됨",
140
+ saveFailed: '저장 실패',
140
141
  selected: "{{count}}개 선택됨",
141
142
  edit: "편집",
142
143
  delete: "삭제",
@@ -137,6 +137,7 @@ declare const pt: {
137
137
  open: string;
138
138
  search: string;
139
139
  modified: string;
140
+ saveFailed: string;
140
141
  selected: string;
141
142
  edit: string;
142
143
  delete: string;
@@ -137,6 +137,7 @@ const pt = {
137
137
  open: "Abrir",
138
138
  search: "Pesquisar...",
139
139
  modified: "{{count}} linha(s) modificada(s)",
140
+ saveFailed: 'Falha ao salvar',
140
141
  selected: "{{count}} selecionado(s)",
141
142
  edit: "Editar",
142
143
  delete: "Excluir",
@@ -137,6 +137,7 @@ declare const ru: {
137
137
  open: string;
138
138
  search: string;
139
139
  modified: string;
140
+ saveFailed: string;
140
141
  selected: string;
141
142
  edit: string;
142
143
  delete: string;
@@ -137,6 +137,7 @@ const ru = {
137
137
  open: "Открыть",
138
138
  search: "Поиск...",
139
139
  modified: "{{count}} строк изменено",
140
+ saveFailed: 'Не удалось сохранить',
140
141
  selected: "{{count}} выбрано",
141
142
  edit: "Редактировать",
142
143
  delete: "Удалить",
@@ -94,6 +94,10 @@ declare const zh: {
94
94
  readonly saveSuccess: "保存成功";
95
95
  readonly saveError: "保存失败";
96
96
  readonly unsavedChanges: "您有未保存的更改,确定要离开吗?";
97
+ readonly discardTitle: "放弃更改?";
98
+ readonly discardMessage: "您有未保存的更改。如果现在关闭此表单,您的编辑将会丢失。";
99
+ readonly keepEditing: "继续编辑";
100
+ readonly discard: "放弃";
97
101
  readonly stepOf: "第{{current}}步,共{{total}}步";
98
102
  readonly createTitle: "新建{{object}}";
99
103
  readonly editTitle: "编辑{{object}}";
@@ -140,6 +144,7 @@ declare const zh: {
140
144
  readonly open: "打开";
141
145
  readonly search: "搜索...";
142
146
  readonly modified: "{{count}} 行已修改";
147
+ readonly saveFailed: "保存失败";
143
148
  readonly selected: "已选择 {{count}} 项";
144
149
  readonly edit: "编辑";
145
150
  readonly delete: "删除";
@@ -1031,6 +1036,7 @@ declare const zh: {
1031
1036
  readonly loadingConfig: "正在加载配置";
1032
1037
  readonly preparingWorkspace: "正在准备工作区";
1033
1038
  };
1039
+ readonly loadingHint: "初始化新环境可能需要几秒钟。";
1034
1040
  readonly error: {
1035
1041
  readonly connectionFailed: "无法连接到服务器";
1036
1042
  readonly serverUnreachable: "无法访问服务器 {{url}}。";
@@ -1103,6 +1109,8 @@ declare const zh: {
1103
1109
  readonly conversationReady: "对话已就绪";
1104
1110
  readonly preparingConversation: "正在准备新对话";
1105
1111
  readonly offlineDemoMode: "离线演示模式 — 无法获取助手列表";
1112
+ readonly sendFailedRateLimited: "发送过于频繁,请稍候再试。你的消息已保留在输入框中。";
1113
+ readonly sendFailedGeneric: "消息发送失败,请重试。你的消息已保留在输入框中。";
1106
1114
  readonly askAgent: "向 {{agent}} 提问...";
1107
1115
  readonly assistant: "助手";
1108
1116
  readonly loadingAgents: "正在加载助手...";
@@ -1429,7 +1437,7 @@ declare const zh: {
1429
1437
  };
1430
1438
  readonly register: {
1431
1439
  readonly title: "创建账户";
1432
- readonly description: "输入您的信息以开始使用";
1440
+ readonly description: "创建账号,开始搭建。";
1433
1441
  readonly nameLabel: "姓名";
1434
1442
  readonly namePlaceholder: "张三";
1435
1443
  readonly emailLabel: "邮箱";
@@ -1651,7 +1659,7 @@ declare const zh: {
1651
1659
  readonly welcomeAdminDescriptionNoBuild: "从左侧的「管理」菜单创建你的第一个应用。有了数据后,AI 助手可以帮你查询和分析。";
1652
1660
  readonly welcomeAdminDescriptionNoAi: "从左侧的「管理」菜单创建你的第一个应用。";
1653
1661
  readonly noAppsTitle: "还没有应用";
1654
- readonly noAppsDescription: "当前还没有可用的应用。请联系你的工作区管理员。";
1662
+ readonly noAppsDescription: "工作区正在准备中——管理员共享给你的应用会显示在这里。";
1655
1663
  readonly buildWithAI: "用 AI 搭建";
1656
1664
  readonly askAI: "问 AI";
1657
1665
  readonly recoveryReminder: {
@@ -1798,6 +1806,9 @@ declare const zh: {
1798
1806
  readonly publishing: "发布中…";
1799
1807
  readonly exit: "退出预览";
1800
1808
  readonly changes: "变更";
1809
+ readonly sampleDataTitle: "示例数据将在发布后出现";
1810
+ readonly sampleDataBody: "您正在预览应用的结构。发布后即可载入示例数据并正式上线。";
1811
+ readonly publishCta: "发布以查看实际效果";
1801
1812
  };
1802
1813
  readonly changes: {
1803
1814
  readonly title: "待发布的变更";
@@ -1893,18 +1904,18 @@ declare const zh: {
1893
1904
  readonly language: "语言";
1894
1905
  };
1895
1906
  readonly organizations: {
1896
- readonly mine: "我的组织";
1907
+ readonly mine: "我的工作区";
1897
1908
  readonly create: "创建工作区";
1898
- readonly title: "组织";
1899
- readonly heading: "您的组织";
1900
- readonly subtitle: "选择一个组织以继续,或新建一个组织。";
1901
- readonly searchPlaceholder: "搜索组织";
1902
- readonly new: "新建组织";
1903
- readonly current: "当前组织";
1909
+ readonly title: "工作区";
1910
+ readonly heading: "您的工作区";
1911
+ readonly subtitle: "选择一个工作区以继续,或新建一个。";
1912
+ readonly searchPlaceholder: "搜索工作区";
1913
+ readonly new: "新建工作区";
1914
+ readonly current: "当前工作区";
1904
1915
  readonly manage: "管理";
1905
- readonly emptyTitle: "尚无组织";
1906
- readonly emptyDescription: "创建您的第一个组织以开始使用。";
1907
- readonly noMatches: "没有匹配的组织。";
1916
+ readonly emptyTitle: "尚无工作区";
1917
+ readonly emptyDescription: "创建您的第一个工作区以开始使用。";
1918
+ readonly noMatches: "没有匹配的工作区。";
1908
1919
  };
1909
1920
  readonly notifications: {
1910
1921
  readonly regionLabel: "通知";
@@ -94,6 +94,10 @@ const zh = {
94
94
  saveSuccess: '保存成功',
95
95
  saveError: '保存失败',
96
96
  unsavedChanges: '您有未保存的更改,确定要离开吗?',
97
+ discardTitle: '放弃更改?',
98
+ discardMessage: '您有未保存的更改。如果现在关闭此表单,您的编辑将会丢失。',
99
+ keepEditing: '继续编辑',
100
+ discard: '放弃',
97
101
  stepOf: '第{{current}}步,共{{total}}步',
98
102
  createTitle: '新建{{object}}',
99
103
  editTitle: '编辑{{object}}',
@@ -140,6 +144,7 @@ const zh = {
140
144
  open: '打开',
141
145
  search: '搜索...',
142
146
  modified: '{{count}} 行已修改',
147
+ saveFailed: '保存失败',
143
148
  selected: '已选择 {{count}} 项',
144
149
  edit: '编辑',
145
150
  delete: '删除',
@@ -1044,6 +1049,7 @@ const zh = {
1044
1049
  loadingConfig: '正在加载配置',
1045
1050
  preparingWorkspace: '正在准备工作区',
1046
1051
  },
1052
+ loadingHint: '初始化新环境可能需要几秒钟。',
1047
1053
  error: {
1048
1054
  connectionFailed: '无法连接到服务器',
1049
1055
  serverUnreachable: '无法访问服务器 {{url}}。',
@@ -1116,6 +1122,8 @@ const zh = {
1116
1122
  conversationReady: '对话已就绪',
1117
1123
  preparingConversation: '正在准备新对话',
1118
1124
  offlineDemoMode: '离线演示模式 — 无法获取助手列表',
1125
+ sendFailedRateLimited: '发送过于频繁,请稍候再试。你的消息已保留在输入框中。',
1126
+ sendFailedGeneric: '消息发送失败,请重试。你的消息已保留在输入框中。',
1119
1127
  askAgent: '向 {{agent}} 提问...',
1120
1128
  assistant: '助手',
1121
1129
  loadingAgents: '正在加载助手...',
@@ -1450,7 +1458,7 @@ const zh = {
1450
1458
  },
1451
1459
  register: {
1452
1460
  title: '创建账户',
1453
- description: '输入您的信息以开始使用',
1461
+ description: '创建账号,开始搭建。',
1454
1462
  nameLabel: '姓名',
1455
1463
  namePlaceholder: '张三',
1456
1464
  emailLabel: '邮箱',
@@ -1672,7 +1680,7 @@ const zh = {
1672
1680
  welcomeAdminDescriptionNoBuild: '从左侧的「管理」菜单创建你的第一个应用。有了数据后,AI 助手可以帮你查询和分析。',
1673
1681
  welcomeAdminDescriptionNoAi: '从左侧的「管理」菜单创建你的第一个应用。',
1674
1682
  noAppsTitle: '还没有应用',
1675
- noAppsDescription: '当前还没有可用的应用。请联系你的工作区管理员。',
1683
+ noAppsDescription: '工作区正在准备中——管理员共享给你的应用会显示在这里。',
1676
1684
  buildWithAI: '用 AI 搭建',
1677
1685
  askAI: '问 AI',
1678
1686
  recoveryReminder: {
@@ -1819,6 +1827,11 @@ const zh = {
1819
1827
  publishing: '发布中…',
1820
1828
  exit: '退出预览',
1821
1829
  changes: '变更',
1830
+ // 魔法时刻提示:刚搭好的草稿因为种子/示例数据要发布后才载入,预览里
1831
+ // 仪表板显示 0、列表显示“暂无内容”。直接说明,避免把空预览误当成搭坏了。
1832
+ sampleDataTitle: '示例数据将在发布后出现',
1833
+ sampleDataBody: '您正在预览应用的结构。发布后即可载入示例数据并正式上线。',
1834
+ publishCta: '发布以查看实际效果',
1822
1835
  },
1823
1836
  changes: {
1824
1837
  title: '待发布的变更',
@@ -1914,18 +1927,18 @@ const zh = {
1914
1927
  language: '语言',
1915
1928
  },
1916
1929
  organizations: {
1917
- mine: '我的组织',
1930
+ mine: '我的工作区',
1918
1931
  create: '创建工作区',
1919
- title: '组织',
1920
- heading: '您的组织',
1921
- subtitle: '选择一个组织以继续,或新建一个组织。',
1922
- searchPlaceholder: '搜索组织',
1923
- new: '新建组织',
1924
- current: '当前组织',
1932
+ title: '工作区',
1933
+ heading: '您的工作区',
1934
+ subtitle: '选择一个工作区以继续,或新建一个。',
1935
+ searchPlaceholder: '搜索工作区',
1936
+ new: '新建工作区',
1937
+ current: '当前工作区',
1925
1938
  manage: '管理',
1926
- emptyTitle: '尚无组织',
1927
- emptyDescription: '创建您的第一个组织以开始使用。',
1928
- noMatches: '没有匹配的组织。',
1939
+ emptyTitle: '尚无工作区',
1940
+ emptyDescription: '创建您的第一个工作区以开始使用。',
1941
+ noMatches: '没有匹配的工作区。',
1929
1942
  },
1930
1943
  notifications: {
1931
1944
  regionLabel: '通知',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@object-ui/i18n",
3
- "version": "11.0.0",
3
+ "version": "11.3.0",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "license": "MIT",
@@ -30,7 +30,7 @@
30
30
  }
31
31
  },
32
32
  "dependencies": {
33
- "i18next": "^26.3.1",
33
+ "i18next": "^26.3.3",
34
34
  "react-i18next": "^17.0.8"
35
35
  },
36
36
  "peerDependencies": {