@arronqzy/i18n 0.1.5 → 0.1.6

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arronqzy/i18n",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "description": "Shared Chinese/English i18n for Abuilder (React + Vue)",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -27,6 +27,19 @@ export const enUS = {
27
27
  add: "Add",
28
28
  remove: "Remove",
29
29
  loading: "Loading…",
30
+ loadingWorkspace: "Loading workspace…",
31
+ savingWorkspace: "Saving workspace…",
32
+ syncingWorkspace: "Syncing workspace…",
33
+ deletingWorkspace: "Deleting workspace…",
34
+ importingPanel: "Importing panel…",
35
+ importingBlueprint: "Importing blueprint…",
36
+ exportingPanel: "Exporting…",
37
+ uploadingFile: "Processing file…",
38
+ loadingBlueprint: "Loading blueprint…",
39
+ savingBlueprint: "Saving blueprint…",
40
+ syncingBlueprint: "Syncing blueprint…",
41
+ openingPreview: "Opening preview…",
42
+ fileTooLarge: "File is too large (max {max}). Compress it and try again.",
30
43
  colorPickerAria: "{label} color picker",
31
44
  hintAria: "{label} hint",
32
45
  secondsAgo: "{sec}s ago",
@@ -167,6 +180,7 @@ export const enUS = {
167
180
  funnel: "Funnel chart",
168
181
  text: "Text",
169
182
  geometry: "Geometry",
183
+ scene3d: "3D",
170
184
  grid: "Grid layout",
171
185
  image: "Image",
172
186
  video: "Video",
@@ -241,6 +255,7 @@ export const enUS = {
241
255
  sectionVideo: "Video",
242
256
  sectionImage: "Image",
243
257
  sectionGeometry: "Geometry",
258
+ sectionScene3d: "3D scene",
244
259
  sectionGrid: "Grid layout",
245
260
  sectionGridChildSpan: "Grid child span",
246
261
  sectionReference: "Reference",
@@ -269,6 +284,75 @@ export const enUS = {
269
284
  groupImageSource: "Image source",
270
285
  groupDisplayMode: "Display mode",
271
286
  groupBasicShape: "Basic shape",
287
+ groupScene3dModels: "Models",
288
+ groupScene3dPurpose: "Scene purpose",
289
+ groupScene3dCamera: "Camera (preview initial)",
290
+ groupScene3dInteraction: "Interaction",
291
+ groupScene3dModelAnim: "Model animation",
292
+ groupScene3dCameraAnim: "Camera animation",
293
+ scene3dPlaceholder: "Upload GLB/GLTF 3D models",
294
+ scene3dUploadModels: "Upload models",
295
+ scene3dNoModels: "No models uploaded",
296
+ scene3dObjectNames: "Object names",
297
+ scene3dObjectCount: "{n} objects",
298
+ scene3dSearchObject: "Search objects",
299
+ scene3dHideObject: "Hide",
300
+ scene3dShowObject: "Show",
301
+ scene3dSoloObject: "Solo",
302
+ scene3dSoloOff: "Exit solo",
303
+ scene3dObjectTag: "Bubble tag",
304
+ scene3dHideShort: "Hide",
305
+ scene3dShowShort: "Show",
306
+ scene3dSoloShort: "Solo",
307
+ scene3dTagShort: "Tag",
308
+ scene3dObjectTagHtml: "HTML content",
309
+ scene3dObjectTagPlaceholder: "Enter HTML; it updates on the model live",
310
+ scene3dObjectTagAnchor: "Anchor",
311
+ scene3dNoObjectNames: "No object names parsed yet",
312
+ scene3dCameraPos: "Position",
313
+ scene3dCameraTarget: "Target",
314
+ scene3dCameraFov: "FOV",
315
+ scene3dCameraEditDesc: "Hold C and drag in edit mode to set the preview initial camera",
316
+ scene3dCameraEditHint: "C + mouse: adjust camera",
317
+ scene3dHoldCHint: "Hold C to adjust camera",
318
+ scene3dEnableMouseControl: "Allow mouse control in preview",
319
+ scene3dEnableMouseControlHint: "Orbit/zoom with mouse when previewing",
320
+ scene3dAutoRotate: "Auto rotate",
321
+ scene3dPurposeProduct: "Product showcase",
322
+ scene3dPurposeTwin: "Digital twin",
323
+ scene3dPurposeSandbox: "Interactive sandbox",
324
+ scene3dPurposeHint: "Applies lighting, ground and interaction defaults; you can still tweak them",
325
+ scene3dEnvironment: "Environment",
326
+ scene3dContactShadows: "Contact shadows",
327
+ scene3dShowGrid: "Ground grid",
328
+ scene3dClickToFocus: "Click to focus",
329
+ scene3dHighlightHover: "Highlight on hover",
330
+ scene3dAnimModel: "Model",
331
+ scene3dAnimObjectName: "Object name",
332
+ scene3dSelectObject: "Select object",
333
+ scene3dAnimAxis: "Axis",
334
+ scene3dAnimPivot: "Pivot",
335
+ scene3dAnimDirection: "Direction",
336
+ scene3dAnimAngle: "Angle (deg)",
337
+ scene3dAnimDuration: "Duration (s)",
338
+ scene3dAnimLoop: "Loop",
339
+ scene3dCameraAnimDefault: "Orbit shot",
340
+ scene3dCameraAnimPushIn: "Push-in shot",
341
+ scene3dCameraAnimPullBack: "Pull-back shot",
342
+ scene3dCameraAnimTruckLeft: "Truck-left shot",
343
+ scene3dCameraAnimCraneUp: "Crane-up shot",
344
+ scene3dCameraAnimOffset: "Offset",
345
+ scene3dCameraAnimSpeed: "Rotation speed (deg/s)",
346
+ scene3dCameraAnimDuration: "Duration {sec}s",
347
+ scene3dDirClockwise: "Clockwise",
348
+ scene3dDirCounter: "Counter-clockwise",
349
+ scene3dPivot_center: "Center",
350
+ scene3dPivot_left: "Left",
351
+ scene3dPivot_right: "Right",
352
+ scene3dPivot_front: "Front",
353
+ scene3dPivot_back: "Back",
354
+ scene3dPivot_top: "Top",
355
+ scene3dPivot_bottom: "Bottom",
272
356
  groupCanvasScript: "Advanced (Canvas script)",
273
357
  groupSketchOverlay: "Sketch overlay",
274
358
  groupGridParams: "Grid parameters",
@@ -455,9 +539,11 @@ export const enUS = {
455
539
  selectTextAlign: "Select alignment",
456
540
  alignLeft: "Left",
457
541
  alignCenter: "Center",
542
+ alignMiddle: "True center",
458
543
  alignRight: "Right",
459
544
  alignJustify: "Justify",
460
545
  lineHeight: "Line height",
546
+ lineHeightAuto: "Auto",
461
547
  textColor: "Text color",
462
548
  allowCanvasInput: "Allow direct input on canvas (on by default)",
463
549
  audioUrl: "Audio URL",
@@ -538,6 +624,7 @@ export const enUS = {
538
624
  doubleClickText: "Double-click to enter text",
539
625
  slotOccupied: "Slot {n} (occupied)",
540
626
  slotEmpty: "Slot {n} (empty)",
627
+ gridDropHint: "Drop a node here",
541
628
  configureAudioFirst: "Configure an audio source first",
542
629
  clickPause: "Click to pause",
543
630
  clickPlay: "Click to play",
@@ -595,7 +682,7 @@ export const enUS = {
595
682
  groupTableColumnDetail: "Column detail · {name}",
596
683
  groupTableDataHint:
597
684
  "Prefer Scope binding; you can also paste static JSON. Dynamic wins when non-empty; otherwise fall back to static; if both empty, show empty state.",
598
- groupTableAppearanceHint: "Header, stripes, row height, and base colors.",
685
+ groupTableAppearanceHint: "Header, stripes, row height, body background, and base colors.",
599
686
  groupTableColumns: "2. Columns (order & width)",
600
687
  groupTableColumnsHint:
601
688
  "Use up/down to reorder columns; edit width on the right. Select a column to configure field and widget below.",
@@ -646,7 +733,12 @@ export const enUS = {
646
733
  tableRowHeightHint: "Used by virtual scroll sizing; 28–48 is typical.",
647
734
  tableStyleColor: "Table text color",
648
735
  tableStyleFontSize: "Table font size",
736
+ tableBodyBg: "Table body background",
737
+ tableBodyBgHint: "Background of the table content area. Transparent lets the canvas or nodes behind show through; the header keeps its own background.",
738
+ tableBgTransparent: "Transparent background",
739
+ tableBgTransparentHint: "Background is transparent; no solid fill.",
649
740
  tableHeaderBg: "Header background",
741
+ tableHeaderBgHint: "Header background. Transparent lets the canvas or table body show through.",
650
742
  tableHeaderFontSize: "Header font size",
651
743
  tableColumns: "Columns",
652
744
  tableColumnsHint: "Which fields to show, header labels, widths, and cell widgets (text/tag/…).",
@@ -674,7 +766,7 @@ export const enUS = {
674
766
  tableTooltipTemplateHint:
675
767
  "Same placeholders as the display template (based on the mapped value); leave empty to use the final cell text.",
676
768
  tableWidgetProps: "Widget options",
677
- tableWidgetPropsHint: "Configure link URL, image source, progress max, etc. per widget.",
769
+ tableWidgetPropsHint: "Configure text style, plus link URL, image source, progress max, etc. per widget.",
678
770
  tableImageUrlMode: "Image URL source",
679
771
  tableImageUrlModeHint:
680
772
  "Field: use a row field as URL; Static: paste/upload/Scope template; Prefix: CDN prefix + field; Template: build with {value}/{row.xxx}.",
@@ -784,7 +876,7 @@ export const enUS = {
784
876
  "Restyle a cell when a condition matches, e.g. highlight when score > 80. Field can be empty to use this column.",
785
877
  tableAddCellStyleRule: "Add style rule",
786
878
  tableRowStyleRules: "Conditional row styles",
787
- tableRowStyleRulesHint: "Color a whole row when it matches, e.g. status = bad.",
879
+ tableRowStyleRulesHint: "Change a row's background when it matches. Set it to transparent to show the table body or canvas behind.",
788
880
  tableAddRowStyleRule: "Add row style",
789
881
  tableNoRowStyleRules: "No row style rules",
790
882
  tableConditionOp: "When",
@@ -809,7 +901,7 @@ export const enUS = {
809
901
  tableDisplayValueHint:
810
902
  "Text when matched. Templates: {current}/{value} = raw cell value, {row.field} = other columns.",
811
903
  tableBgColor: "Background",
812
- tableBgColorHint: "Background when the rule matches (#hex or rgba).",
904
+ tableBgColorHint: "Background when the rule matches (#hex, rgba, or transparent).",
813
905
  tableEmpty: "No data",
814
906
  tableColName: "Name",
815
907
  tableColStatus: "Status",
@@ -867,6 +959,7 @@ export const enUS = {
867
959
  nodeConfigLocked: "This node is locked; config fields are read-only.",
868
960
  nodeConfigLayerLocked: "This node's layer is locked; config fields are read-only.",
869
961
  readImageFailed: "Failed to read image",
962
+ readModelFailed: "Failed to read 3D model",
870
963
  readAudioFailed: "Failed to read audio",
871
964
  readVideoFailed: "Failed to read video",
872
965
  readRecordAudioFailed: "Failed to read recording",
@@ -941,6 +1034,7 @@ export const enUS = {
941
1034
  audio: "Audio",
942
1035
  reference: "Reference",
943
1036
  geometry: "Geometry",
1037
+ scene3d: "3D Scene",
944
1038
  table: "Table",
945
1039
  },
946
1040
  workspace: {
@@ -967,6 +1061,8 @@ export const enUS = {
967
1061
  previewNoNodes: "This workspace has no view nodes to preview",
968
1062
  previewHint: "Click Sync or Create workspace in the editor before previewing",
969
1063
  previewDocTitle: "Preview",
1064
+ currentBadge: "Current",
1065
+ previewingBadge: "Previewing",
970
1066
  },
971
1067
  layers: {
972
1068
  title: "Layers",
@@ -1200,6 +1296,7 @@ export const enUS = {
1200
1296
  typeAnd: "AND",
1201
1297
  typeLifecycle: "Lifecycle",
1202
1298
  typeView: "View",
1299
+ typeEvent: "Event",
1203
1300
  typeFetch: "Fetch",
1204
1301
  typeJson: "JSON",
1205
1302
  typeClock: "Clock",
@@ -1214,6 +1311,8 @@ export const enUS = {
1214
1311
  summaryNoView: "No view nodes linked",
1215
1312
  summaryViewOne: "View node {id}",
1216
1313
  summaryViewMany: "{count} view nodes linked",
1314
+ summaryEventNoView: "{events} · no view nodes linked",
1315
+ summaryEvent: "{events} · {count} view node(s)",
1217
1316
  summaryAnd: "Output when both inputs are true",
1218
1317
  phaseCreated: "Created (created)",
1219
1318
  phaseBeforeMount: "Before mount (beforeMount)",
@@ -1224,11 +1323,18 @@ export const enUS = {
1224
1323
  phaseActivated: "Activated (activated)",
1225
1324
  phaseDeactivated: "Deactivated (deactivated)",
1226
1325
  phaseBlueprintActivated: "Blueprint activated (blueprintActivated)",
1326
+ eventClick: "Click",
1327
+ eventDblclick: "Double click",
1328
+ eventContextmenu: "Context menu",
1329
+ eventMouseenter: "Mouse enter",
1330
+ eventMouseleave: "Mouse leave",
1227
1331
  dragToMove: "Drag to move",
1228
1332
  signalSentCount: "Signals sent",
1229
1333
  signalIn: "True/false signal input",
1230
1334
  signalOut: "True/false signal output",
1231
1335
  lifecycleOut: "Emit true/false when lifecycle matches",
1336
+ eventIn: "Connect a lifecycle node to register events in that phase",
1337
+ eventOut: "Emit true when a bound view event fires",
1232
1338
  andInA: "Input A (OR across edges)",
1233
1339
  andInB: "Input B (OR across edges)",
1234
1340
  andOut: "Emit true when both inputs are true",
@@ -1243,6 +1349,7 @@ export const enUS = {
1243
1349
  roleJson: "JSON node",
1244
1350
  roleLogic: "Logic node",
1245
1351
  roleClock: "Clock node",
1352
+ roleEvent: "Event node",
1246
1353
  roleView: "View node",
1247
1354
  nodeName: "Node name",
1248
1355
  configType: "Config type",
@@ -1253,10 +1360,18 @@ export const enUS = {
1253
1360
  configFetch: "Fetch",
1254
1361
  configJson: "JSON node",
1255
1362
  configClock: "Clock",
1363
+ configEvent: "Event config",
1256
1364
  configView: "View node config",
1257
1365
  linkedViewNodes: "Linked view nodes",
1258
1366
  selectViewNode: "Select view nodes",
1259
1367
  viewMultiHint: "Multi-select view canvas nodes; configure the blueprint node here. Edit view props in the view panel.",
1368
+ eventViewHint: "Pick view canvas nodes to listen to. Connect a lifecycle node on the left first; listeners register only after that phase fires.",
1369
+ eventListen: "Listen to events",
1370
+ eventNoInput: "The left input must all come from lifecycle nodes: events register in that lifecycle phase.",
1371
+ eventInputMissing: "No lifecycle node is connected. Connect a lifecycle node to the left input; events register only after that phase fires.",
1372
+ eventInputNotLifecycle: "Every input must be a lifecycle node. Remove Fetch, logic, or other non-lifecycle connections, or these events will not register.",
1373
+ eventConnectNeedLifecycle: "Event node inputs must all be lifecycle nodes. This node cannot connect to the left input.",
1374
+ eventHint: "Events register only after the connected lifecycle phase has fired. Then, when a linked view node fires a selected event, this node emits true downstream. The value is { event, node, eventType }: event snapshot, triggering node, and event type.",
1260
1375
  linkedViewCount: "{count} view node(s) linked: {names}",
1261
1376
  noViewOnCanvas: "No nodes on the view canvas",
1262
1377
  searchViewNodes: "Search view nodes…",
@@ -1288,9 +1403,14 @@ export const enUS = {
1288
1403
  fetchScopePending: "Upstream has not run yet, so value is empty; id / name / type are already available.",
1289
1404
  fetchScopeResolvedUrl: "Resolved URL",
1290
1405
  fetchScopeResolvedHeaders: "Resolved headers",
1406
+ fetchScopeResolvedBody: "Resolved body",
1291
1407
  fetchScopeUnresolved: "URL is empty after template evaluation. Make sure upstream has run and the path is correct.",
1292
1408
  fetchHeadersHint:
1293
1409
  "Enter a JSON object, e.g. {\"Authorization\":\"Bearer {scope?.value?.token}\"}. You can also set the whole field to {scope?.value?.headers} to use an upstream object as headers.",
1410
+ fetchBodyHint:
1411
+ "Text starting with { or [ is parsed as JSON. Use {scope?...} to insert upstream data: inside a string it is text; at a value position it becomes a JSON literal. The result must be valid JSON.",
1412
+ fetchHeadersInvalidJson: "Headers are not valid JSON: {error}",
1413
+ fetchBodyInvalidJson: "Request body is not valid JSON: {error}",
1294
1414
  swaggerUrlOptional: "Swagger document URL (optional)",
1295
1415
  abortParse: "Abort parsing",
1296
1416
  abortSwaggerAria: "Abort Swagger parsing",
@@ -27,6 +27,19 @@ export const zhCN = {
27
27
  add: "新增",
28
28
  remove: "移除",
29
29
  loading: "加载中…",
30
+ loadingWorkspace: "正在加载工作区…",
31
+ savingWorkspace: "正在保存工作区…",
32
+ syncingWorkspace: "正在同步工作区…",
33
+ deletingWorkspace: "正在删除工作区…",
34
+ importingPanel: "正在导入面板…",
35
+ importingBlueprint: "正在导入蓝图…",
36
+ exportingPanel: "正在导出…",
37
+ uploadingFile: "正在处理文件…",
38
+ loadingBlueprint: "正在加载蓝图…",
39
+ savingBlueprint: "正在保存蓝图…",
40
+ syncingBlueprint: "正在同步蓝图…",
41
+ openingPreview: "正在打开预览…",
42
+ fileTooLarge: "文件过大(最大 {max}),请压缩后再试。",
30
43
  colorPickerAria: "{label}调色盘",
31
44
  hintAria: "{label}说明",
32
45
  secondsAgo: "{sec}秒前",
@@ -165,6 +178,7 @@ export const zhCN = {
165
178
  funnel: "漏斗图",
166
179
  text: "文本",
167
180
  geometry: "几何",
181
+ scene3d: "三维",
168
182
  grid: "网格布局",
169
183
  image: "图片",
170
184
  video: "视频",
@@ -239,6 +253,7 @@ export const zhCN = {
239
253
  sectionVideo: "视频配置",
240
254
  sectionImage: "图片配置",
241
255
  sectionGeometry: "几何配置",
256
+ sectionScene3d: "三维场景配置",
242
257
  sectionGrid: "网格布局配置",
243
258
  sectionGridChildSpan: "网格子节点占位",
244
259
  sectionReference: "引用组件配置",
@@ -267,6 +282,75 @@ export const zhCN = {
267
282
  groupImageSource: "图片来源",
268
283
  groupDisplayMode: "显示方式",
269
284
  groupBasicShape: "基础形状",
285
+ groupScene3dModels: "模型资源",
286
+ groupScene3dPurpose: "场景用途",
287
+ groupScene3dCamera: "相机(预览初始)",
288
+ groupScene3dInteraction: "交互",
289
+ groupScene3dModelAnim: "模型动画",
290
+ groupScene3dCameraAnim: "相机动画",
291
+ scene3dPlaceholder: "请上传 GLB/GLTF 等三维模型",
292
+ scene3dUploadModels: "上传模型",
293
+ scene3dNoModels: "尚未上传模型",
294
+ scene3dObjectNames: "节点名称",
295
+ scene3dObjectCount: "{n} 个节点",
296
+ scene3dSearchObject: "搜索节点",
297
+ scene3dHideObject: "隐藏",
298
+ scene3dShowObject: "显示",
299
+ scene3dSoloObject: "单独显示",
300
+ scene3dSoloOff: "取消单独显示",
301
+ scene3dObjectTag: "气泡标签",
302
+ scene3dHideShort: "隐",
303
+ scene3dShowShort: "显",
304
+ scene3dSoloShort: "独",
305
+ scene3dTagShort: "标",
306
+ scene3dObjectTagHtml: "HTML 内容",
307
+ scene3dObjectTagPlaceholder: "输入 HTML,会实时显示在模型上",
308
+ scene3dObjectTagAnchor: "出现位置",
309
+ scene3dNoObjectNames: "尚未解析到节点 name",
310
+ scene3dCameraPos: "位置",
311
+ scene3dCameraTarget: "目标",
312
+ scene3dCameraFov: "视野 FOV",
313
+ scene3dCameraEditDesc: "编辑模式下按住 C 并拖拽可调整相机,保存后即作为预览初始视角",
314
+ scene3dCameraEditHint: "C + 鼠标:调整相机",
315
+ scene3dHoldCHint: "按住 C 可调整相机",
316
+ scene3dEnableMouseControl: "预览允许鼠标操控",
317
+ scene3dEnableMouseControlHint: "开启后预览页可用鼠标旋转/缩放场景",
318
+ scene3dAutoRotate: "自动旋转",
319
+ scene3dPurposeProduct: "产品展示",
320
+ scene3dPurposeTwin: "数字孪生",
321
+ scene3dPurposeSandbox: "交互沙盘",
322
+ scene3dPurposeHint: "会套用对应的灯光、地面与交互默认值,仍可再微调",
323
+ scene3dEnvironment: "环境光",
324
+ scene3dContactShadows: "接触阴影",
325
+ scene3dShowGrid: "地面网格",
326
+ scene3dClickToFocus: "点击模型聚焦",
327
+ scene3dHighlightHover: "悬停高亮",
328
+ scene3dAnimModel: "模型",
329
+ scene3dAnimObjectName: "节点 name",
330
+ scene3dSelectObject: "选择节点",
331
+ scene3dAnimAxis: "旋转轴",
332
+ scene3dAnimPivot: "旋转基点",
333
+ scene3dAnimDirection: "方向",
334
+ scene3dAnimAngle: "角度(度)",
335
+ scene3dAnimDuration: "时长(秒)",
336
+ scene3dAnimLoop: "循环",
337
+ scene3dCameraAnimDefault: "环绕镜头",
338
+ scene3dCameraAnimPushIn: "推近镜头",
339
+ scene3dCameraAnimPullBack: "拉远镜头",
340
+ scene3dCameraAnimTruckLeft: "横移镜头",
341
+ scene3dCameraAnimCraneUp: "升降镜头",
342
+ scene3dCameraAnimOffset: "位移",
343
+ scene3dCameraAnimSpeed: "旋转速度(度/秒)",
344
+ scene3dCameraAnimDuration: "时长 {sec}s",
345
+ scene3dDirClockwise: "顺时针",
346
+ scene3dDirCounter: "逆时针",
347
+ scene3dPivot_center: "中心",
348
+ scene3dPivot_left: "左侧",
349
+ scene3dPivot_right: "右侧",
350
+ scene3dPivot_front: "前方",
351
+ scene3dPivot_back: "后方",
352
+ scene3dPivot_top: "顶部",
353
+ scene3dPivot_bottom: "底部",
270
354
  groupCanvasScript: "高级(Canvas 脚本)",
271
355
  groupSketchOverlay: "手绘叠加",
272
356
  groupGridParams: "网格参数",
@@ -453,9 +537,11 @@ export const zhCN = {
453
537
  selectTextAlign: "选择对齐方式",
454
538
  alignLeft: "左对齐",
455
539
  alignCenter: "居中",
540
+ alignMiddle: "居正中心",
456
541
  alignRight: "右对齐",
457
542
  alignJustify: "两端对齐",
458
543
  lineHeight: "行高",
544
+ lineHeightAuto: "自动",
459
545
  textColor: "文字颜色",
460
546
  allowCanvasInput: "允许在画布内直接输入(默认开启)",
461
547
  audioUrl: "音频 URL",
@@ -536,6 +622,7 @@ export const zhCN = {
536
622
  doubleClickText: "双击输入文本",
537
623
  slotOccupied: "槽位 {n}(已占用)",
538
624
  slotEmpty: "槽位 {n}(空)",
625
+ gridDropHint: "拖入节点",
539
626
  configureAudioFirst: "请先配置音频源",
540
627
  clickPause: "点击暂停",
541
628
  clickPlay: "点击播放",
@@ -593,7 +680,7 @@ export const zhCN = {
593
680
  groupTableColumnDetail: "列详情 · {name}",
594
681
  groupTableDataHint:
595
682
  "优先用蓝图 Scope 绑定数据;也可粘贴静态 JSON。动态有数据时用动态,动态为空则回退静态;都没有则显示暂无数据。",
596
- groupTableAppearanceHint: "控制表头、斑马纹、行高与基础颜色。",
683
+ groupTableAppearanceHint: "控制表头、斑马纹、行高、主体背景与基础颜色。",
597
684
  groupTableColumns: "2. 列(顺序与宽度)",
598
685
  groupTableColumnsHint:
599
686
  "用上下箭头调整列顺序;右侧改列宽。点选一列后在下方编辑字段与展示方式。",
@@ -644,7 +731,12 @@ export const zhCN = {
644
731
  tableRowHeightHint: "虚拟滚动按此高度估算;建议 28–48。",
645
732
  tableStyleColor: "表格文字色",
646
733
  tableStyleFontSize: "表格字号",
734
+ tableBodyBg: "表格主体背景",
735
+ tableBodyBgHint: "表格内容区背景。开启透明后可露出画布或下层节点;表头仍用自己的背景色。",
736
+ tableBgTransparent: "背景透明",
737
+ tableBgTransparentHint: "当前为透明,不再铺实色底。",
647
738
  tableHeaderBg: "表头背景色",
739
+ tableHeaderBgHint: "表头背景。开启透明后可露出画布或表格主体。",
648
740
  tableHeaderFontSize: "表头字号",
649
741
  tableColumns: "列配置",
650
742
  tableColumnsHint: "定义展示哪些字段、表头文案、宽度,以及单元格用文本/标签等哪种展示方式。",
@@ -672,7 +764,7 @@ export const zhCN = {
672
764
  tableTooltipTemplateHint:
673
765
  "与显示模版相同占位符(基于映射后的值);留空则使用单元格最终显示文案。",
674
766
  tableWidgetProps: "组件参数",
675
- tableWidgetPropsHint: "按展示方式配置链接地址、图片来源、进度最大值等。",
767
+ tableWidgetPropsHint: "按展示方式配置文字样式,以及链接地址、图片来源、进度最大值等。",
676
768
  tableImageUrlMode: "图片地址来源",
677
769
  tableImageUrlModeHint:
678
770
  "列字段:用行里的字段当 URL;固定地址:粘贴/上传/Scope 模版;前缀拼接:CDN 前缀 + 字段;模版:用 {value}/{row.xxx} 拼出完整地址。",
@@ -782,7 +874,7 @@ export const zhCN = {
782
874
  "当单元格满足条件时改背景色等。例如分数大于 80 时高亮。可指定字段,留空则用当前列字段。",
783
875
  tableAddCellStyleRule: "添加样式规则",
784
876
  tableRowStyleRules: "整行条件样式",
785
- tableRowStyleRulesHint: "当整行满足条件时给该行上色。例如 status 等于 bad 时整行标红。",
877
+ tableRowStyleRulesHint: "当整行满足条件时改背景。可设为透明,让该行透出表格主体或画布。",
786
878
  tableAddRowStyleRule: "添加行样式",
787
879
  tableNoRowStyleRules: "暂无行样式规则",
788
880
  tableConditionOp: "当满足",
@@ -807,7 +899,7 @@ export const zhCN = {
807
899
  tableDisplayValueHint:
808
900
  "条件命中后的显示文案,支持模版:{current}/{value} 为原始值,{row.字段名} 为同行其它字段。",
809
901
  tableBgColor: "背景色",
810
- tableBgColorHint: "条件命中后应用的背景色,支持 #hexrgba",
902
+ tableBgColorHint: "条件命中后应用的背景色,支持 #hexrgba,也可设为透明。",
811
903
  tableEmpty: "暂无数据",
812
904
  tableColName: "名称", tableColStatus: "状态",
813
905
  tableColScore: "分数",
@@ -864,6 +956,7 @@ export const zhCN = {
864
956
  nodeConfigLocked: "当前节点已锁定,配置项不可编辑。",
865
957
  nodeConfigLayerLocked: "当前节点所在图层已锁定,配置项不可编辑。",
866
958
  readImageFailed: "读取图片失败",
959
+ readModelFailed: "读取三维模型失败",
867
960
  readAudioFailed: "读取音频失败",
868
961
  readVideoFailed: "读取视频失败",
869
962
  readRecordAudioFailed: "录音读取失败",
@@ -938,6 +1031,7 @@ export const zhCN = {
938
1031
  audio: "音频",
939
1032
  reference: "引用组件",
940
1033
  geometry: "几何",
1034
+ scene3d: "三维",
941
1035
  table: "表格",
942
1036
  },
943
1037
  workspace: {
@@ -964,6 +1058,8 @@ export const zhCN = {
964
1058
  previewNoNodes: "当前工作区没有可预览的视图节点",
965
1059
  previewHint: "请先在编辑器中点击「同步」或「创建工作区」后再预览",
966
1060
  previewDocTitle: "预览",
1061
+ currentBadge: "当前",
1062
+ previewingBadge: "预览中",
967
1063
  },
968
1064
  layers: {
969
1065
  title: "图层",
@@ -1197,6 +1293,7 @@ export const zhCN = {
1197
1293
  typeAnd: "并运算",
1198
1294
  typeLifecycle: "生命周期",
1199
1295
  typeView: "视图",
1296
+ typeEvent: "事件",
1200
1297
  typeFetch: "数据源获取",
1201
1298
  typeJson: "JSON 节点",
1202
1299
  typeClock: "时钟",
@@ -1211,6 +1308,8 @@ export const zhCN = {
1211
1308
  summaryNoView: "未关联视图节点",
1212
1309
  summaryViewOne: "视图节点 {id}",
1213
1310
  summaryViewMany: "已关联 {count} 个视图节点",
1311
+ summaryEventNoView: "{events} · 未关联视图节点",
1312
+ summaryEvent: "{events} · {count} 个视图节点",
1214
1313
  summaryAnd: "两路输入均为真时输出",
1215
1314
  phaseCreated: "已创建 (created)",
1216
1315
  phaseBeforeMount: "挂载前 (beforeMount)",
@@ -1221,11 +1320,18 @@ export const zhCN = {
1221
1320
  phaseActivated: "已激活 (activated)",
1222
1321
  phaseDeactivated: "已停用 (deactivated)",
1223
1322
  phaseBlueprintActivated: "蓝图激活 (blueprintActivated)",
1323
+ eventClick: "单击 (click)",
1324
+ eventDblclick: "双击 (dblclick)",
1325
+ eventContextmenu: "右键 (contextmenu)",
1326
+ eventMouseenter: "移入 (mouseenter)",
1327
+ eventMouseleave: "移出 (mouseleave)",
1224
1328
  dragToMove: "拖拽移动",
1225
1329
  signalSentCount: "已发送信号次数",
1226
1330
  signalIn: "真/假信号输入",
1227
1331
  signalOut: "真/假信号输出",
1228
1332
  lifecycleOut: "生命周期满足时输出真/假信号",
1333
+ eventIn: "接入生命周期后,在该阶段注册事件",
1334
+ eventOut: "视图事件触发时输出真信号",
1229
1335
  andInA: "输入 A(多连线为或)",
1230
1336
  andInB: "输入 B(多连线为或)",
1231
1337
  andOut: "两路均为真时输出真信号",
@@ -1240,6 +1346,7 @@ export const zhCN = {
1240
1346
  roleJson: "JSON 节点",
1241
1347
  roleLogic: "逻辑节点",
1242
1348
  roleClock: "时钟节点",
1349
+ roleEvent: "事件节点",
1243
1350
  roleView: "视图节点",
1244
1351
  nodeName: "节点名称",
1245
1352
  configType: "配置类型",
@@ -1250,10 +1357,18 @@ export const zhCN = {
1250
1357
  configFetch: "数据源获取",
1251
1358
  configJson: "JSON 节点",
1252
1359
  configClock: "时钟",
1360
+ configEvent: "事件配置",
1253
1361
  configView: "视图节点配置",
1254
1362
  linkedViewNodes: "关联视图节点",
1255
1363
  selectViewNode: "选择视图节点",
1256
1364
  viewMultiHint: "可多选视图画布节点;关联后仍在此配置蓝图节点,视图属性请在视图面板中编辑。",
1365
+ eventViewHint: "选择要监听的视图画布节点。需先从左侧接入生命周期节点;对应阶段触发后才会注册监听。",
1366
+ eventListen: "监听事件",
1367
+ eventNoInput: "左侧输入必须全部连接生命周期节点,表示在对应生命周期阶段注册这些事件。",
1368
+ eventInputMissing: "尚未接入生命周期节点。请从生命周期节点连到左侧输入口,对应阶段触发后才会注册事件。",
1369
+ eventInputNotLifecycle: "输入端必须全部是生命周期节点。请去掉 Fetch、逻辑等非生命周期连线,否则这些事件不会注册。",
1370
+ eventConnectNeedLifecycle: "事件节点的输入必须全部是生命周期节点,不能从当前节点连入。",
1371
+ eventHint: "接入的生命周期阶段触发后才会注册。之后当关联的视图节点发生所选事件时,向下游发出真信号。输出值为 { event, node, eventType }:触发事件快照、触发节点、事件类型。",
1257
1372
  linkedViewCount: "已关联 {count} 个视图节点:{names}",
1258
1373
  noViewOnCanvas: "视图画布暂无节点",
1259
1374
  searchViewNodes: "搜索视图节点…",
@@ -1285,9 +1400,14 @@ export const zhCN = {
1285
1400
  fetchScopePending: "上游尚未执行,value 暂空;id / name / type 已可引用。",
1286
1401
  fetchScopeResolvedUrl: "解析后的 URL",
1287
1402
  fetchScopeResolvedHeaders: "解析后的请求头",
1403
+ fetchScopeResolvedBody: "解析后的请求体",
1288
1404
  fetchScopeUnresolved: "模板解析后请求 URL 为空,请确认上游已执行且路径正确",
1289
1405
  fetchHeadersHint:
1290
1406
  "填写 JSON 对象,例如 {\"Authorization\":\"Bearer {scope?.value?.token}\"}。也可整段写成 {scope?.value?.headers},用上游输出的对象作为请求头。",
1407
+ fetchBodyHint:
1408
+ "以 { 或 [ 开头时按 JSON 解析。可用 {scope?...} 插入上游数据:写在字符串内当作文本,写在值位置则插入 JSON 字面量。解析后必须是合法 JSON。",
1409
+ fetchHeadersInvalidJson: "请求头不是有效 JSON:{error}",
1410
+ fetchBodyInvalidJson: "请求体不是有效 JSON:{error}",
1291
1411
  swaggerUrlOptional: "Swagger 文档 URL(可选)",
1292
1412
  abortParse: "中止解析",
1293
1413
  abortSwaggerAria: "中止 Swagger 解析",