@things-factory/figure-ui 10.1.222 → 10.1.224

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.
Files changed (59) hide show
  1. package/client/modeller/canvas.ts +2 -2
  2. package/client/modeller/consumer-capabilities.ts +66 -0
  3. package/client/modeller/data-interface.ts +230 -80
  4. package/client/modeller/editor.ts +14 -7
  5. package/client/modeller/figure-capability-panel.ts +145 -1
  6. package/client/modeller/figure-data-panel.ts +495 -188
  7. package/client/modeller/figure-links.ts +130 -12
  8. package/client/modeller/figure-preview.ts +19 -2
  9. package/client/modeller/figure-slot-layout-panel.ts +7 -3
  10. package/client/modeller/links.ts +58 -0
  11. package/client/modeller/refusals.ts +12 -4
  12. package/client/modeller/slot-layout-host.ts +76 -5
  13. package/dist-client/modeller/canvas.js +2 -2
  14. package/dist-client/modeller/canvas.js.map +1 -1
  15. package/dist-client/modeller/consumer-capabilities.d.ts +29 -0
  16. package/dist-client/modeller/consumer-capabilities.js +60 -0
  17. package/dist-client/modeller/consumer-capabilities.js.map +1 -0
  18. package/dist-client/modeller/data-interface.d.ts +83 -17
  19. package/dist-client/modeller/data-interface.js +194 -82
  20. package/dist-client/modeller/data-interface.js.map +1 -1
  21. package/dist-client/modeller/editor.d.ts +5 -2
  22. package/dist-client/modeller/editor.js +16 -5
  23. package/dist-client/modeller/editor.js.map +1 -1
  24. package/dist-client/modeller/figure-capability-panel.d.ts +12 -0
  25. package/dist-client/modeller/figure-capability-panel.js +123 -1
  26. package/dist-client/modeller/figure-capability-panel.js.map +1 -1
  27. package/dist-client/modeller/figure-data-panel.d.ts +57 -13
  28. package/dist-client/modeller/figure-data-panel.js +461 -180
  29. package/dist-client/modeller/figure-data-panel.js.map +1 -1
  30. package/dist-client/modeller/figure-links.d.ts +11 -0
  31. package/dist-client/modeller/figure-links.js +137 -16
  32. package/dist-client/modeller/figure-links.js.map +1 -1
  33. package/dist-client/modeller/figure-preview.d.ts +4 -0
  34. package/dist-client/modeller/figure-preview.js +19 -1
  35. package/dist-client/modeller/figure-preview.js.map +1 -1
  36. package/dist-client/modeller/figure-slot-layout-panel.js +6 -4
  37. package/dist-client/modeller/figure-slot-layout-panel.js.map +1 -1
  38. package/dist-client/modeller/links.d.ts +22 -0
  39. package/dist-client/modeller/links.js +48 -0
  40. package/dist-client/modeller/links.js.map +1 -1
  41. package/dist-client/modeller/refusals.js +14 -6
  42. package/dist-client/modeller/refusals.js.map +1 -1
  43. package/dist-client/modeller/slot-layout-host.d.ts +28 -3
  44. package/dist-client/modeller/slot-layout-host.js +68 -6
  45. package/dist-client/modeller/slot-layout-host.js.map +1 -1
  46. package/dist-client/tsconfig.tsbuildinfo +1 -1
  47. package/package.json +9 -9
  48. package/test/browser/data-table-page.js +9 -0
  49. package/test/browser/links.check.mjs +25 -3
  50. package/test/consumer-capabilities.test.ts +116 -0
  51. package/test/data-motion.test.ts +94 -27
  52. package/test/links.test.ts +15 -0
  53. package/test/slot-layout-host.test.ts +63 -5
  54. package/translations/en.json +81 -23
  55. package/translations/es.json +81 -23
  56. package/translations/ja.json +81 -23
  57. package/translations/ko.json +81 -23
  58. package/translations/ms.json +81 -23
  59. package/translations/zh.json +81 -23
@@ -626,13 +626,16 @@
626
626
  "figure.text.release-ready": "발행할 수 있습니다",
627
627
  "figure.text.places-need-a-box": "적재 위치는 상자 모양 부품의 면에 지정할 수 있습니다.",
628
628
  "figure.button.remove-place": "적재 위치 삭제",
629
+ "figure.button.edit-place": "고치기",
630
+ "figure.button.save-place": "적재 위치 저장",
631
+ "figure.button.cancel-place-edit": "취소",
629
632
  "figure.text.place-explained": "보드에서 물건을 이 부품의 어느 면에 놓거나 집을지 정합니다. 부품이 움직이면 물건도 따라갑니다.",
630
633
  "figure.text.place-needs-holding": "이 피규어에는 물품 수용 기능이 선언되지 않았습니다. 적재 위치를 추가해도 보드에서 물품을 배치할 수 없습니다.",
631
634
  "figure.button.declare-holding": "물건을 담는 피규어로",
632
635
  "figure.label.place-name": "이름",
633
636
  "figure.label.place-accepts": "받는 종류",
634
637
  "figure.label.place-capacity": "몇 개까지",
635
- "figure.text.place-accepts-needed": "적재 위치에 수용 가능한 유형을 하나 이상 입력해 주세요. 여러 유형은 쉼표로 구분합니다.",
638
+ "figure.text.place-accepts-any": "비우면 모든 아이템",
636
639
  "figure.button.add-place": "적재 위치 추가",
637
640
  "figure.label.controls": "조작값",
638
641
  "figure.text.controls-explained": "보드나 연결이 이 값을 바꿔 피규어의 자세를 움직입니다. 슬라이더로 움직여 볼 수 있습니다.",
@@ -989,7 +992,7 @@
989
992
  "figure.text.slot-anchor-pick": "화면에서 부품을 선택하면 윗면 또는 아랫면을 적재 기준면으로 추가합니다. 기준면이 움직이면 적재 위치도 함께 이동합니다.",
990
993
  "figure.button.apply-slot-anchors": "이름·기준면 적용",
991
994
  "figure.button.remove-slot-layout": "적재 위치 배치 삭제",
992
- "figure.text.slot-accepts-required": "각 적재 위치에 수용 가능한 유형을 하나 이상 입력해 주세요.",
995
+ "figure.text.slot-accepts-empty-list": "받는 타입 목록이 비었습니다. 모든 아이템을 받으려면 「모든 타입」을 고릅니다.",
993
996
  "figure.text.slot-layout-label-missing": "적재 위치 배치의 이름을 입력해 주세요.",
994
997
  "figure.text.slot-anchors-missing": "기준면을 하나 이상 더해야 합니다.",
995
998
  "figure.text.slot-anchor-duplicate": "기준면 이름 {anchor} 이 두 번 쓰였습니다.",
@@ -1051,7 +1054,7 @@
1051
1054
  "figure.text.data-guessed-replaces": "필드 {count}개를 찾았습니다. 바꾸면 지금 데이터 형식을 대신합니다.",
1052
1055
  "figure.button.data-use-guessed": "이 형식으로 바꾸기",
1053
1056
  "figure.label.data-bindings": "연결",
1054
- "figure.text.data-bindings-explained": "데이터 값을 피규어의 동작에 연결합니다. 원본 값, 값별 매핑, 구간별 매핑 또는 배율 변환을 적용할 수 있습니다. 행을 선택하면 변환 규칙을 수정할 수 있습니다.",
1057
+ "figure.text.data-bindings-explained": "데이터 값을 피규어에 연결합니다. 숫자는 그대로, 배율, 구간 표로, 글자와 참/거짓은 코드 표로 보입니다. 표는 값마다 부품의 색과 효과, 조작값, 동작 그룹을 함께 정합니다. 행을 선택하면 수정할 수 있습니다.",
1055
1058
  "figure.label.data-field": "데이터 값",
1056
1059
  "figure.label.data-behavior": "작동",
1057
1060
  "figure.label.data-behavior-state": "조작값 {name}",
@@ -1059,18 +1062,12 @@
1059
1062
  "figure.label.data-behavior-motion-clip": "{name} 클립",
1060
1063
  "figure.label.data-behavior-motion-speed": "{name} 배속",
1061
1064
  "figure.label.data-behavior-motion-paused": "{name} 멈춤",
1062
- "figure.label.data-behavior-status": "상태 표시 {name}",
1063
1065
  "figure.label.data-behavior-pose": "위치 {name}",
1064
1066
  "figure.label.data-behavior-items": "아이템 {name}",
1065
1067
  "figure.label.data-axis-x": "X",
1066
1068
  "figure.label.data-axis-y": "높이(Y)",
1067
1069
  "figure.label.data-axis-z": "Z",
1068
1070
  "figure.label.data-axis-heading": "방향",
1069
- "figure.label.data-rule": "변환",
1070
- "figure.label.data-rule-value": "값 그대로",
1071
- "figure.label.data-rule-map": "값마다",
1072
- "figure.label.data-rule-range": "구간마다",
1073
- "figure.label.data-rule-scale": "배율과 더하기",
1074
1071
  "figure.label.data-seconds": "이동 시간(초)",
1075
1072
  "figure.label.data-paused": "멈춤",
1076
1073
  "figure.label.data-playing": "재생",
@@ -1102,12 +1099,6 @@
1102
1099
  "figure.button.data-add-rotation": "회전 만들기",
1103
1100
  "figure.label.data-none": "없음",
1104
1101
  "figure.button.remove-data-binding": "연결 삭제",
1105
- "figure.label.data-ports": "상태 표시",
1106
- "figure.text.data-ports-explained": "상태 코드를 시각적으로 표시하는 연결점입니다. 색상은 보드의 상태 템플릿에서 결정합니다. 여기서는 색상 토큰과 점멸·발광을 적용할 부품을 선택합니다.",
1107
- "figure.label.data-port-tokens": "색 토큰",
1108
- "figure.label.data-port-parts": "부품",
1109
- "figure.button.add-data-port": "상태 표시 추가",
1110
- "figure.button.remove-data-port": "상태 표시 삭제",
1111
1102
  "figure.label.data-items-count": "아이템 {count}개",
1112
1103
  "figure.text.data-value-not-a-list": "{path}: 목록이 아닙니다.",
1113
1104
  "figure.text.data-value-value-unknown": "{path}: 값 목록에 없는 값입니다.",
@@ -1133,7 +1124,6 @@
1133
1124
  "figure.text.data-behavior-absent-motion-clip": "{id} 동작 그룹이 없습니다.",
1134
1125
  "figure.text.data-behavior-absent-motion-speed": "{id} 동작 그룹이 없습니다.",
1135
1126
  "figure.text.data-behavior-absent-motion-paused": "{id} 동작 그룹이 없습니다.",
1136
- "figure.text.data-behavior-absent-status": "{id} 상태 표시가 없습니다.",
1137
1127
  "figure.text.data-behavior-absent-items": "{id} 자리가 없습니다.",
1138
1128
  "figure.text.data-behavior-duplicate": "{a} 연결과 {b} 연결이 같은 작동 {id}을 움직입니다. 작동 하나에 연결은 하나입니다.",
1139
1129
  "figure.text.data-rule-kind": "이 변환은 이 값과 작동에 사용할 수 없습니다.",
@@ -1141,12 +1131,7 @@
1141
1131
  "figure.text.data-rule-range": "결과가 {min} ~ {max}가 됩니다. 작동은 {low} ~ {high}만 받습니다.",
1142
1132
  "figure.text.data-rule-cases": "{value}는 이 값에 없는 경우입니다.",
1143
1133
  "figure.text.data-rule-output": "{value}는 작동이 받는 값이 아닙니다.",
1144
- "figure.text.data-rule-default": "매핑되지 않은 값에도 결과가 반환되도록 기본값을 설정해 주세요.",
1145
- "figure.text.data-port-invalid-label": "상태 표시 이름을 적습니다.",
1146
- "figure.text.data-port-invalid-token": "이 피규어의 색 토큰이나 부품을 하나 이상 고릅니다.",
1147
- "figure.text.data-port-invalid-part": "{id}는 이 피규어의 부품이 아닙니다.",
1148
- "figure.text.data-port-invalid-group": "{id} 동작 그룹이 없습니다.",
1149
- "figure.text.data-port-bound": "{port} 상태 표시를 읽는 연결을 먼저 삭제합니다: {bindings}.",
1134
+ "figure.text.data-rule-default": "모든 값에 줄이 있도록 그 밖의 값 줄을 둡니다.",
1150
1135
  "figure.text.data-value-not-a-record": "{path}: 객체가 아닙니다.",
1151
1136
  "figure.text.data-value-type-mismatch": "{path}: 값 종류가 맞지 않습니다.",
1152
1137
  "figure.text.data-value-out-of-range": "{path}: 범위를 벗어났습니다.",
@@ -1224,5 +1209,78 @@
1224
1209
  "figure.text.repeat-draft": "미리보기입니다. 적용 버튼을 눌러 확정하세요.",
1225
1210
  "figure.text.repeat-mode-pitch": "피치 유지 · 상대 길이가 바뀌면 개수가 바뀝니다.",
1226
1211
  "figure.text.repeat-mode-count": "개수 유지 · 상대 길이가 바뀌면 간격이 바뀝니다.",
1227
- "figure.text.repeat-remove-explained": "해제하면 원본 부품 하나가 남습니다."
1212
+ "figure.text.repeat-remove-explained": "해제하면 원본 부품 하나가 남습니다.",
1213
+ "figure.label.state-size": "상태에 따라 크기",
1214
+ "figure.text.state-size-row": "{control} {min}–{max} {unit} → {from}–{to} mm",
1215
+ "figure.button.state-size-fix": "고정으로 되돌리기",
1216
+ "figure.label.state-size-measure": "치수",
1217
+ "figure.label.state-size-unit": "단위",
1218
+ "figure.label.state-unit-percent": "%",
1219
+ "figure.label.state-unit-ratio": "비율",
1220
+ "figure.label.state-unit-mm": "mm",
1221
+ "figure.label.state-size-at-min": "가장 작을 때",
1222
+ "figure.label.state-size-at-max": "가장 클 때",
1223
+ "figure.button.add-state-size": "상태에 따라 크기 추가",
1224
+ "figure.text.summary-size-state": "{axes} {control} 값에 따라 바뀝니다.",
1225
+ "figure.label.follows-state": "{control} 값에 따라",
1226
+ "figure.label.data-case-value": "값",
1227
+ "figure.button.add-data-case": "값 추가",
1228
+ "figure.button.remove-data-case": "값 삭제",
1229
+ "figure.button.add-data-default": "그 밖의 값 줄 추가",
1230
+ "figure.button.data-add-selected-part": "고른 부품 {part} 추가",
1231
+ "figure.button.data-clear-result": "지우기",
1232
+ "figure.label.data-column-clip": "클립",
1233
+ "figure.label.data-column-color": "색",
1234
+ "figure.label.data-column-effect": "효과",
1235
+ "figure.label.data-column-paused": "멈춤",
1236
+ "figure.label.data-column-speed": "배속",
1237
+ "figure.label.data-column-values": "값",
1238
+ "figure.label.data-effect-blink": "깜빡임",
1239
+ "figure.label.data-effect-glow": "빛남",
1240
+ "figure.label.data-effect-none": "없음",
1241
+ "figure.label.data-legend-role": "범례 역할",
1242
+ "figure.label.data-legend-swappable": "쓰는 쪽이 범례로 바꿀 수 있음",
1243
+ "figure.label.data-method": "방법",
1244
+ "figure.label.data-method-code": "코드 표",
1245
+ "figure.label.data-method-ranges": "구간 표",
1246
+ "figure.label.data-method-scale": "배율",
1247
+ "figure.label.data-method-value": "그대로",
1248
+ "figure.label.data-new-field": "새 필드",
1249
+ "figure.label.data-sample-legend": "샘플 범례",
1250
+ "figure.label.data-table-legend": "범례 {name}",
1251
+ "figure.label.data-table-own": "피규어 표",
1252
+ "figure.label.data-target-group": "동작 그룹",
1253
+ "figure.label.data-target-inputs": "조작값",
1254
+ "figure.label.data-target-parts": "부품",
1255
+ "figure.text.data-legend-explained": "보드나 fmsim에서 이 역할의 범례를 고르면 그 범례가 이 표를 통째로 대신합니다. 고르지 않으면 이 표로 보입니다.",
1256
+ "figure.text.data-legend-invalid": "범례 역할 {role}에는 영문 소문자, 숫자, -만 씁니다.",
1257
+ "figure.text.data-note-code-unmatched": "{binding}: 값 {value}에 맞는 줄이 없습니다.",
1258
+ "figure.text.data-note-legend-absent": "{binding}: 고른 범례가 장면에 없어 다음 순서의 표로 보입니다.",
1259
+ "figure.text.data-note-not-a-look": "{binding}: {key} 줄을 읽을 수 없습니다({value}).",
1260
+ "figure.text.data-note-not-a-table": "{binding}: 범례가 표가 아니어서 피규어 표로 보입니다.",
1261
+ "figure.text.data-note-not-an-interval": "{binding}: {key}는 구간이 아닙니다.",
1262
+ "figure.text.data-note-not-taken": "{binding}: {key} 줄의 {column} {value}을(를) 받지 않았습니다.",
1263
+ "figure.text.data-note-resolver-failed": "{binding}: 범례를 읽지 못했습니다({value}).",
1264
+ "figure.text.data-range-close-last": "마지막 구간의 미만을 적으면 그 값에서 다음 구간이 이어집니다.",
1265
+ "figure.text.data-rule-overlap": "{value} 구간이 다른 구간과 겹칩니다. 값 하나에 줄은 하나입니다.",
1266
+ "figure.text.data-sample-legend-explained": "역할마다 범례 JSON을 붙여 넣으면 보드가 그 범례를 준 것처럼 보입니다. 저장되지 않습니다.",
1267
+ "figure.text.data-table-entry-clip": "{key} 줄: {value}는 이 동작 그룹의 클립이 아닙니다.",
1268
+ "figure.text.data-table-entry-color": "{key} 줄: 색은 #RRGGBB로 적습니다.",
1269
+ "figure.text.data-table-entry-column": "{key} 줄: {id} 칸을 받을 대상이 없습니다.",
1270
+ "figure.text.data-table-entry-effect": "{key} 줄: 효과는 깜빡임이나 빛남이고, 횟수는 0보다 큽니다.",
1271
+ "figure.text.data-table-entry-paused": "{key} 줄: 멈춤은 참이나 거짓입니다.",
1272
+ "figure.text.data-table-entry-speed": "{key} 줄: 배속은 0에서 3까지입니다.",
1273
+ "figure.text.data-table-entry-values": "{key} 줄: {id} 값 {value}는 받을 수 없습니다.",
1274
+ "figure.text.data-table-needs-target": "표가 보일 부품, 조작값, 동작 그룹 가운데 하나 이상을 고릅니다.",
1275
+ "figure.text.data-table-target-group": "{id} 동작 그룹이 없습니다.",
1276
+ "figure.text.data-table-target-input": "{id} 조작값이 없거나 두 번 골랐습니다.",
1277
+ "figure.text.data-table-target-none": "표가 보일 대상을 하나 이상 고릅니다.",
1278
+ "figure.text.data-table-target-part": "{id} 부품이 없거나 두 번 골랐습니다.",
1279
+ "figure.label.product-capabilities": "제품 능력",
1280
+ "figure.text.product-capability-needs": "먼저 있어야 하는 것: {needs}",
1281
+ "figure.text.product-capability-unknown": "이 모델러가 모르는 제품 능력 {name}이 붙어 있습니다.",
1282
+ "figure.button.product-capability-remove": "빼기",
1283
+ "figure.text.data-capability-fields": "{name} 능력이 읽는 데이터: {fields}.",
1284
+ "figure.text.data-binding-rests": "{where} 에서는 {name} 능력이 맡음 — 이 연결은 쉼",
1285
+ "figure.text.data-binding-rests-targets": "{where} 에서는 {name} 능력이 맡음 — 쉬는 대상: {targets}"
1228
1286
  }
@@ -626,13 +626,16 @@
626
626
  "figure.text.release-ready": "Ready to release",
627
627
  "figure.text.places-need-a-box": "Tempat diletakkan pada muka bahagian berbentuk kotak.",
628
628
  "figure.button.remove-place": "Buang tempat",
629
+ "figure.button.edit-place": "Ubah",
630
+ "figure.button.save-place": "Simpan tempat",
631
+ "figure.button.cancel-place-edit": "Batal",
629
632
  "figure.text.place-explained": "Tentukan muka bahagian ini tempat papan meletakkan atau memegang barang. Apabila bahagian bergerak, barang ikut bergerak.",
630
633
  "figure.text.place-needs-holding": "Rajah ini tidak mengisytiharkan bahawa ia memegang barang, jadi papan tidak menyerahkan apa-apa ke tempatnya.",
631
634
  "figure.button.declare-holding": "Jadikan ia memegang barang",
632
635
  "figure.label.place-name": "Nama",
633
636
  "figure.label.place-accepts": "Jenis diterima",
634
637
  "figure.label.place-capacity": "Berapa banyak",
635
- "figure.text.place-accepts-needed": "Namakan sekurang-kurangnya satu jenis yang diterima, dipisahkan dengan koma.",
638
+ "figure.text.place-accepts-any": "kosong: sebarang item",
636
639
  "figure.button.add-place": "Tambah tempat",
637
640
  "figure.label.controls": "Kawalan",
638
641
  "figure.text.controls-explained": "Papan atau sambungan menetapkan nilai ini untuk menggerakkan rajah. Gerakkan peluncur untuk mencuba.",
@@ -989,7 +992,7 @@
989
992
  "figure.text.slot-anchor-pick": "pilih bahagian pada kanvas untuk menambah bahagian atas atau bawahnya sebagai muka rujukan. slot pada bahagian yang bergerak turut bergerak.",
990
993
  "figure.button.apply-slot-anchors": "guna nama dan muka rujukan",
991
994
  "figure.button.remove-slot-layout": "buang susun atur slot",
992
- "figure.text.slot-accepts-required": "setiap slot mesti menamakan sekurang-kurangnya satu jenis yang diterimanya.",
995
+ "figure.text.slot-accepts-empty-list": "senarai jenis yang diterima kosong; pilih sebarang jenis untuk menerima sebarang item.",
993
996
  "figure.text.slot-layout-label-missing": "susun atur slot memerlukan nama.",
994
997
  "figure.text.slot-anchors-missing": "tambah sekurang-kurangnya satu muka rujukan.",
995
998
  "figure.text.slot-anchor-duplicate": "nama muka rujukan {anchor} digunakan dua kali.",
@@ -1051,7 +1054,7 @@
1051
1054
  "figure.text.data-guessed-replaces": "{count} medan ditemui. Menggunakannya menggantikan bentuk data semasa.",
1052
1055
  "figure.button.data-use-guessed": "guna bentuk ini",
1053
1056
  "figure.label.data-bindings": "ikatan",
1054
- "figure.text.data-bindings-explained": "Satu nilai data menggerakkan satu perkara figure: seperti adanya, satu hasil setiap nilai, setiap julat, atau berskala. Klik baris untuk mengubahnya.",
1057
+ "figure.text.data-bindings-explained": "Menyambung nilai data kepada figura. Nombor dipaparkan seadanya, berskala atau melalui jadual julat; teks atau benar/palsu melalui jadual kod. Jadual menetapkan, bagi setiap nilai, warna dan kesan bahagian, kawalan dan kumpulan gerakan sekali gus. Pilih baris untuk menyuntingnya.",
1055
1058
  "figure.label.data-field": "nilai data",
1056
1059
  "figure.label.data-behavior": "tingkah laku",
1057
1060
  "figure.label.data-behavior-state": "kawalan {name}",
@@ -1059,18 +1062,12 @@
1059
1062
  "figure.label.data-behavior-motion-clip": "klip {name}",
1060
1063
  "figure.label.data-behavior-motion-speed": "kelajuan {name}",
1061
1064
  "figure.label.data-behavior-motion-paused": "{name} dijeda",
1062
- "figure.label.data-behavior-status": "status {name}",
1063
1065
  "figure.label.data-behavior-pose": "kedudukan {name}",
1064
1066
  "figure.label.data-behavior-items": "item {name}",
1065
1067
  "figure.label.data-axis-x": "X",
1066
1068
  "figure.label.data-axis-y": "ketinggian (Y)",
1067
1069
  "figure.label.data-axis-z": "Z",
1068
1070
  "figure.label.data-axis-heading": "arah",
1069
- "figure.label.data-rule": "peraturan",
1070
- "figure.label.data-rule-value": "seperti adanya",
1071
- "figure.label.data-rule-map": "setiap nilai",
1072
- "figure.label.data-rule-range": "setiap julat",
1073
- "figure.label.data-rule-scale": "skala dan ofset",
1074
1071
  "figure.label.data-seconds": "masa gerak (s)",
1075
1072
  "figure.label.data-paused": "dijeda",
1076
1073
  "figure.label.data-playing": "dimainkan",
@@ -1102,12 +1099,6 @@
1102
1099
  "figure.button.data-add-rotation": "buat putaran",
1103
1100
  "figure.label.data-none": "tiada",
1104
1101
  "figure.button.remove-data-binding": "buang ikatan",
1105
- "figure.label.data-ports": "paparan status",
1106
- "figure.text.data-ports-explained": "Tempat kod status dipaparkan. Templat status papan memilih warna; di sini pilih token warna yang menerimanya dan bahagian yang berkelip atau bercahaya.",
1107
- "figure.label.data-port-tokens": "token warna",
1108
- "figure.label.data-port-parts": "bahagian",
1109
- "figure.button.add-data-port": "tambah paparan status",
1110
- "figure.button.remove-data-port": "buang paparan status",
1111
1102
  "figure.label.data-items-count": "{count} item",
1112
1103
  "figure.text.data-value-not-a-list": "{path}: bukan senarai.",
1113
1104
  "figure.text.data-value-value-unknown": "{path}: bukan salah satu nilainya.",
@@ -1133,7 +1124,6 @@
1133
1124
  "figure.text.data-behavior-absent-motion-clip": "Tiada kumpulan gerakan {id}.",
1134
1125
  "figure.text.data-behavior-absent-motion-speed": "Tiada kumpulan gerakan {id}.",
1135
1126
  "figure.text.data-behavior-absent-motion-paused": "Tiada kumpulan gerakan {id}.",
1136
- "figure.text.data-behavior-absent-status": "Tiada paparan status {id}.",
1137
1127
  "figure.text.data-behavior-absent-items": "Tiada tempat {id}.",
1138
1128
  "figure.text.data-behavior-duplicate": "Ikatan {a} dan {b} kedua-duanya menggerakkan {id}; satu ikatan bagi setiap tingkah laku.",
1139
1129
  "figure.text.data-rule-kind": "Peraturan ini tidak sesuai untuk nilai dan tingkah laku ini.",
@@ -1141,12 +1131,7 @@
1141
1131
  "figure.text.data-rule-range": "Hasilnya {min} hingga {max}; tingkah laku menerima {low} hingga {high}.",
1142
1132
  "figure.text.data-rule-cases": "{value} bukan salah satu nilai ini.",
1143
1133
  "figure.text.data-rule-output": "{value} bukan sesuatu yang diterima tingkah laku.",
1144
- "figure.text.data-rule-default": "Tetapkan hasil untuk nilai lain, supaya setiap nilai ada hasil.",
1145
- "figure.text.data-port-invalid-label": "Tulis nama untuk paparan status.",
1146
- "figure.text.data-port-invalid-token": "Pilih satu atau lebih token warna atau bahagian figure ini.",
1147
- "figure.text.data-port-invalid-part": "{id} bukan bahagian figure ini.",
1148
- "figure.text.data-port-invalid-group": "Tiada kumpulan gerakan {id}.",
1149
- "figure.text.data-port-bound": "Buang dahulu ikatan yang membaca paparan status {port}: {bindings}.",
1134
+ "figure.text.data-rule-default": "Tambah baris untuk nilai lain supaya setiap nilai ada barisnya.",
1150
1135
  "figure.text.data-value-not-a-record": "{path}: bukan objek.",
1151
1136
  "figure.text.data-value-type-mismatch": "{path}: jenis nilai salah.",
1152
1137
  "figure.text.data-value-out-of-range": "{path}: di luar julat.",
@@ -1224,5 +1209,78 @@
1224
1209
  "figure.text.repeat-draft": "Pratonton sahaja. Tekan Gunakan untuk mengesahkan.",
1225
1210
  "figure.text.repeat-mode-pitch": "Kekalkan jarak · Bilangan berubah mengikut panjang rujukan.",
1226
1211
  "figure.text.repeat-mode-count": "Kekalkan bilangan · Jarak berubah mengikut panjang rujukan.",
1227
- "figure.text.repeat-remove-explained": "Membuang susunan meninggalkan satu bahagian asal."
1212
+ "figure.text.repeat-remove-explained": "Membuang susunan meninggalkan satu bahagian asal.",
1213
+ "figure.label.state-size": "Saiz mengikut keadaan",
1214
+ "figure.text.state-size-row": "{control} {min}–{max} {unit} → {from}–{to} mm",
1215
+ "figure.button.state-size-fix": "Kembali tetap",
1216
+ "figure.label.state-size-measure": "Ukuran",
1217
+ "figure.label.state-size-unit": "Unit",
1218
+ "figure.label.state-unit-percent": "%",
1219
+ "figure.label.state-unit-ratio": "nisbah",
1220
+ "figure.label.state-unit-mm": "mm",
1221
+ "figure.label.state-size-at-min": "Pada minimum",
1222
+ "figure.label.state-size-at-max": "Pada maksimum",
1223
+ "figure.button.add-state-size": "Tambah saiz mengikut keadaan",
1224
+ "figure.text.summary-size-state": "{axes} berubah mengikut {control}.",
1225
+ "figure.label.follows-state": "mengikut {control}",
1226
+ "figure.label.data-case-value": "Nilai",
1227
+ "figure.button.add-data-case": "Tambah nilai",
1228
+ "figure.button.remove-data-case": "Buang nilai",
1229
+ "figure.button.add-data-default": "Tambah baris untuk nilai lain",
1230
+ "figure.button.data-add-selected-part": "Tambah bahagian dipilih {part}",
1231
+ "figure.button.data-clear-result": "Kosongkan",
1232
+ "figure.label.data-column-clip": "Klip",
1233
+ "figure.label.data-column-color": "Warna",
1234
+ "figure.label.data-column-effect": "Kesan",
1235
+ "figure.label.data-column-paused": "Jeda",
1236
+ "figure.label.data-column-speed": "Kelajuan",
1237
+ "figure.label.data-column-values": "Nilai",
1238
+ "figure.label.data-effect-blink": "Berkelip",
1239
+ "figure.label.data-effect-glow": "Bercahaya",
1240
+ "figure.label.data-effect-none": "Tiada",
1241
+ "figure.label.data-legend-role": "Peranan petunjuk",
1242
+ "figure.label.data-legend-swappable": "Pengguna boleh menggantinya dengan petunjuk",
1243
+ "figure.label.data-method": "Kaedah",
1244
+ "figure.label.data-method-code": "Jadual kod",
1245
+ "figure.label.data-method-ranges": "Jadual julat",
1246
+ "figure.label.data-method-scale": "Berskala",
1247
+ "figure.label.data-method-value": "Seadanya",
1248
+ "figure.label.data-new-field": "Medan baharu",
1249
+ "figure.label.data-sample-legend": "Petunjuk sampel",
1250
+ "figure.label.data-table-legend": "petunjuk {name}",
1251
+ "figure.label.data-table-own": "jadual figura",
1252
+ "figure.label.data-target-group": "Kumpulan gerakan",
1253
+ "figure.label.data-target-inputs": "Kawalan",
1254
+ "figure.label.data-target-parts": "Bahagian",
1255
+ "figure.text.data-legend-explained": "Apabila papan atau fmsim memilih petunjuk bagi peranan ini, petunjuk itu menggantikan seluruh jadual ini. Jika tidak, jadual ini dipaparkan.",
1256
+ "figure.text.data-legend-invalid": "Peranan petunjuk {role} hanya menerima huruf kecil, digit dan -.",
1257
+ "figure.text.data-note-code-unmatched": "{binding}: tiada baris bagi nilai {value}.",
1258
+ "figure.text.data-note-legend-absent": "{binding}: petunjuk yang dipilih tiada dalam adegan; yang berikutnya dipaparkan.",
1259
+ "figure.text.data-note-not-a-look": "{binding}: baris {key} tidak dapat dibaca ({value}).",
1260
+ "figure.text.data-note-not-a-table": "{binding}: petunjuk bukan jadual; jadual figura dipaparkan.",
1261
+ "figure.text.data-note-not-an-interval": "{binding}: {key} bukan julat.",
1262
+ "figure.text.data-note-not-taken": "{binding}: {column} {value} pada baris {key} tidak diambil.",
1263
+ "figure.text.data-note-resolver-failed": "{binding}: petunjuk tidak dapat dibaca ({value}).",
1264
+ "figure.text.data-range-close-last": "Isikan hujung atas julat terakhir, dan julat seterusnya bermula di situ.",
1265
+ "figure.text.data-rule-overlap": "Julat {value} bertindih dengan yang lain. Satu nilai satu baris.",
1266
+ "figure.text.data-sample-legend-explained": "Tampal petunjuk dalam JSON bagi sesuatu peranan untuk melihat figura seperti papan yang memberi petunjuk itu. Tidak disimpan.",
1267
+ "figure.text.data-table-entry-clip": "Baris {key}: {value} bukan klip kumpulan gerakan ini.",
1268
+ "figure.text.data-table-entry-color": "Baris {key}: warna ialah #RRGGBB.",
1269
+ "figure.text.data-table-entry-column": "Baris {key}: tiada sasaran menerima {id}.",
1270
+ "figure.text.data-table-entry-effect": "Baris {key}: kesan ialah berkelip atau bercahaya, lebih daripada 0 sesaat.",
1271
+ "figure.text.data-table-entry-paused": "Baris {key}: jeda ialah benar atau palsu.",
1272
+ "figure.text.data-table-entry-speed": "Baris {key}: kelajuan ialah 0 hingga 3.",
1273
+ "figure.text.data-table-entry-values": "Baris {key}: {id} tidak menerima {value}.",
1274
+ "figure.text.data-table-needs-target": "Pilih sekurang-kurangnya satu bahagian, kawalan atau kumpulan gerakan untuk jadual.",
1275
+ "figure.text.data-table-target-group": "Tiada kumpulan gerakan {id}.",
1276
+ "figure.text.data-table-target-input": "Kawalan {id} tiada atau dipilih dua kali.",
1277
+ "figure.text.data-table-target-none": "Pilih sekurang-kurangnya satu sasaran untuk jadual.",
1278
+ "figure.text.data-table-target-part": "Bahagian {id} tiada atau dipilih dua kali.",
1279
+ "figure.label.product-capabilities": "Keupayaan produk",
1280
+ "figure.text.product-capability-needs": "Perlu dahulu: {needs}",
1281
+ "figure.text.product-capability-unknown": "Figura memakai {name}, keupayaan produk yang modeler ini tidak kenal.",
1282
+ "figure.button.product-capability-remove": "Buang",
1283
+ "figure.text.data-capability-fields": "Data yang {name} baca sendiri: {fields}.",
1284
+ "figure.text.data-binding-rests": "Dalam {where} keupayaan {name} mengambil alih — sambungan ini berehat",
1285
+ "figure.text.data-binding-rests-targets": "Dalam {where} keupayaan {name} mengambil alih: {targets} — sasaran itu berehat"
1228
1286
  }
@@ -626,13 +626,16 @@
626
626
  "figure.text.release-ready": "Ready to release",
627
627
  "figure.text.places-need-a-box": "位置设在方盒形部件的面上。",
628
628
  "figure.button.remove-place": "删除位置",
629
+ "figure.button.edit-place": "修改",
630
+ "figure.button.save-place": "保存位置",
631
+ "figure.button.cancel-place-edit": "取消",
629
632
  "figure.text.place-explained": "决定在看板上物品放在或夹在这个部件的哪个面上。部件移动时,物品也随之移动。",
630
633
  "figure.text.place-needs-holding": "这个图形没有声明可以容纳物品,所以即使设了位置,看板也不会把物品交给它。",
631
634
  "figure.button.declare-holding": "设为可容纳物品的图形",
632
635
  "figure.label.place-name": "名称",
633
636
  "figure.label.place-accepts": "接收类型",
634
637
  "figure.label.place-capacity": "最多数量",
635
- "figure.text.place-accepts-needed": "至少填写一个接收类型,用逗号分隔。",
638
+ "figure.text.place-accepts-any": "留空则为任何物品",
636
639
  "figure.button.add-place": "添加位置",
637
640
  "figure.label.controls": "控制值",
638
641
  "figure.text.controls-explained": "看板或连接通过设置这些值来改变图形的姿态。拖动滑块即可试用。",
@@ -989,7 +992,7 @@
989
992
  "figure.text.slot-anchor-pick": "在画面上选择部件,即可将其顶面或底面加为基准面。基准面在运动部件上时,位置随之移动。",
990
993
  "figure.button.apply-slot-anchors": "应用名称和基准面",
991
994
  "figure.button.remove-slot-layout": "删除位置布局",
992
- "figure.text.slot-accepts-required": "每个位置必须至少写明一种可接收的类型。",
995
+ "figure.text.slot-accepts-empty-list": "可接收类型列表为空;要接收任何物品,请选择“任何类型”。",
993
996
  "figure.text.slot-layout-label-missing": "位置布局需要名称。",
994
997
  "figure.text.slot-anchors-missing": "至少需要添加一个基准面。",
995
998
  "figure.text.slot-anchor-duplicate": "基准面名称 {anchor} 被使用了两次。",
@@ -1051,7 +1054,7 @@
1051
1054
  "figure.text.data-guessed-replaces": "找到 {count} 个字段。替换后将取代当前数据结构。",
1052
1055
  "figure.button.data-use-guessed": "替换为此结构",
1053
1056
  "figure.label.data-bindings": "绑定",
1054
- "figure.text.data-bindings-explained": "一个数据值驱动 Figure 的一个动作:原值、按值、按区间或按倍率传递。点击一行可修改转换。",
1057
+ "figure.text.data-bindings-explained": "将数据值连接到人偶。数字按原样、倍率或区间表显示;文字和真/假按代码表显示。表按值同时决定部件的颜色与效果、控制值和动作组。选择一行即可编辑。",
1055
1058
  "figure.label.data-field": "数据值",
1056
1059
  "figure.label.data-behavior": "动作",
1057
1060
  "figure.label.data-behavior-state": "控制值 {name}",
@@ -1059,18 +1062,12 @@
1059
1062
  "figure.label.data-behavior-motion-clip": "{name} 片段",
1060
1063
  "figure.label.data-behavior-motion-speed": "{name} 倍速",
1061
1064
  "figure.label.data-behavior-motion-paused": "{name} 暂停",
1062
- "figure.label.data-behavior-status": "状态显示 {name}",
1063
1065
  "figure.label.data-behavior-pose": "位置 {name}",
1064
1066
  "figure.label.data-behavior-items": "物品 {name}",
1065
1067
  "figure.label.data-axis-x": "X",
1066
1068
  "figure.label.data-axis-y": "高度 (Y)",
1067
1069
  "figure.label.data-axis-z": "Z",
1068
1070
  "figure.label.data-axis-heading": "朝向",
1069
- "figure.label.data-rule": "转换",
1070
- "figure.label.data-rule-value": "原值",
1071
- "figure.label.data-rule-map": "按值",
1072
- "figure.label.data-rule-range": "按区间",
1073
- "figure.label.data-rule-scale": "倍率与偏移",
1074
1071
  "figure.label.data-seconds": "移动时间 (秒)",
1075
1072
  "figure.label.data-paused": "暂停",
1076
1073
  "figure.label.data-playing": "播放",
@@ -1102,12 +1099,6 @@
1102
1099
  "figure.button.data-add-rotation": "生成旋转",
1103
1100
  "figure.label.data-none": "无",
1104
1101
  "figure.button.remove-data-binding": "删除绑定",
1105
- "figure.label.data-ports": "状态显示",
1106
- "figure.text.data-ports-explained": "显示状态代码的位置。颜色由看板的状态模板决定,这里选择接收颜色的颜色令牌以及闪烁或发光的部件。",
1107
- "figure.label.data-port-tokens": "颜色令牌",
1108
- "figure.label.data-port-parts": "部件",
1109
- "figure.button.add-data-port": "添加状态显示",
1110
- "figure.button.remove-data-port": "删除状态显示",
1111
1102
  "figure.label.data-items-count": "{count} 个物品",
1112
1103
  "figure.text.data-value-not-a-list": "{path}:不是列表。",
1113
1104
  "figure.text.data-value-value-unknown": "{path}:不在取值列表中。",
@@ -1133,7 +1124,6 @@
1133
1124
  "figure.text.data-behavior-absent-motion-clip": "没有动作组 {id}。",
1134
1125
  "figure.text.data-behavior-absent-motion-speed": "没有动作组 {id}。",
1135
1126
  "figure.text.data-behavior-absent-motion-paused": "没有动作组 {id}。",
1136
- "figure.text.data-behavior-absent-status": "没有状态显示 {id}。",
1137
1127
  "figure.text.data-behavior-absent-items": "没有位置 {id}。",
1138
1128
  "figure.text.data-behavior-duplicate": "绑定 {a} 和 {b} 驱动同一个动作 {id};一个动作只能有一个绑定。",
1139
1129
  "figure.text.data-rule-kind": "此转换不适用于此值和动作。",
@@ -1141,12 +1131,7 @@
1141
1131
  "figure.text.data-rule-range": "结果为 {min} ~ {max};动作只接受 {low} ~ {high}。",
1142
1132
  "figure.text.data-rule-cases": "{value} 不是此值的取值。",
1143
1133
  "figure.text.data-rule-output": "{value} 不是动作接受的值。",
1144
- "figure.text.data-rule-default": "请设置其他值的结果,使每个值都有结果。",
1145
- "figure.text.data-port-invalid-label": "请填写状态显示名称。",
1146
- "figure.text.data-port-invalid-token": "请选择此 Figure 的一个或多个颜色令牌或部件。",
1147
- "figure.text.data-port-invalid-part": "{id} 不是此 Figure 的部件。",
1148
- "figure.text.data-port-invalid-group": "没有动作组 {id}。",
1149
- "figure.text.data-port-bound": "请先删除读取状态显示 {port} 的绑定:{bindings}。",
1134
+ "figure.text.data-rule-default": "请添加其他值的行,使每个值都有对应行。",
1150
1135
  "figure.text.data-value-not-a-record": "{path}:不是对象。",
1151
1136
  "figure.text.data-value-type-mismatch": "{path}:值的类型不符。",
1152
1137
  "figure.text.data-value-out-of-range": "{path}:超出范围。",
@@ -1224,5 +1209,78 @@
1224
1209
  "figure.text.repeat-draft": "当前为预览。点击应用确认。",
1225
1210
  "figure.text.repeat-mode-pitch": "保持间距 · 数量随所连接部件的长度变化。",
1226
1211
  "figure.text.repeat-mode-count": "保持数量 · 间距随所连接部件的长度变化。",
1227
- "figure.text.repeat-remove-explained": "取消排列后保留一个原始部件。"
1212
+ "figure.text.repeat-remove-explained": "取消排列后保留一个原始部件。",
1213
+ "figure.label.state-size": "按状态改变尺寸",
1214
+ "figure.text.state-size-row": "{control} {min}–{max} {unit} → {from}–{to} mm",
1215
+ "figure.button.state-size-fix": "恢复为固定",
1216
+ "figure.label.state-size-measure": "尺寸",
1217
+ "figure.label.state-size-unit": "单位",
1218
+ "figure.label.state-unit-percent": "%",
1219
+ "figure.label.state-unit-ratio": "比例",
1220
+ "figure.label.state-unit-mm": "mm",
1221
+ "figure.label.state-size-at-min": "最小时",
1222
+ "figure.label.state-size-at-max": "最大时",
1223
+ "figure.button.add-state-size": "添加按状态改变尺寸",
1224
+ "figure.text.summary-size-state": "{axes}随{control}的值变化。",
1225
+ "figure.label.follows-state": "随{control}的值",
1226
+ "figure.label.data-case-value": "值",
1227
+ "figure.button.add-data-case": "添加值",
1228
+ "figure.button.remove-data-case": "删除值",
1229
+ "figure.button.add-data-default": "添加其他值的行",
1230
+ "figure.button.data-add-selected-part": "添加所选部件 {part}",
1231
+ "figure.button.data-clear-result": "清除",
1232
+ "figure.label.data-column-clip": "片段",
1233
+ "figure.label.data-column-color": "颜色",
1234
+ "figure.label.data-column-effect": "效果",
1235
+ "figure.label.data-column-paused": "暂停",
1236
+ "figure.label.data-column-speed": "倍速",
1237
+ "figure.label.data-column-values": "值",
1238
+ "figure.label.data-effect-blink": "闪烁",
1239
+ "figure.label.data-effect-glow": "发光",
1240
+ "figure.label.data-effect-none": "无",
1241
+ "figure.label.data-legend-role": "图例角色",
1242
+ "figure.label.data-legend-swappable": "使用方可换成图例",
1243
+ "figure.label.data-method": "方式",
1244
+ "figure.label.data-method-code": "代码表",
1245
+ "figure.label.data-method-ranges": "区间表",
1246
+ "figure.label.data-method-scale": "倍率",
1247
+ "figure.label.data-method-value": "原样",
1248
+ "figure.label.data-new-field": "新字段",
1249
+ "figure.label.data-sample-legend": "示例图例",
1250
+ "figure.label.data-table-legend": "图例 {name}",
1251
+ "figure.label.data-table-own": "人偶自身的表",
1252
+ "figure.label.data-target-group": "动作组",
1253
+ "figure.label.data-target-inputs": "控制值",
1254
+ "figure.label.data-target-parts": "部件",
1255
+ "figure.text.data-legend-explained": "当看板或 fmsim 为此角色选择图例时,该图例整体替代此表;未选择时按此表显示。",
1256
+ "figure.text.data-legend-invalid": "图例角色 {role} 只能使用小写字母、数字和 -。",
1257
+ "figure.text.data-note-code-unmatched": "{binding}:没有与值 {value} 对应的行。",
1258
+ "figure.text.data-note-legend-absent": "{binding}:场景中没有所选图例,按下一顺序的表显示。",
1259
+ "figure.text.data-note-not-a-look": "{binding}:无法读取 {key} 行({value})。",
1260
+ "figure.text.data-note-not-a-table": "{binding}:图例不是表,按人偶自身的表显示。",
1261
+ "figure.text.data-note-not-an-interval": "{binding}:{key} 不是区间。",
1262
+ "figure.text.data-note-not-taken": "{binding}:{key} 行的{column} {value} 未被采用。",
1263
+ "figure.text.data-note-resolver-failed": "{binding}:无法读取图例({value})。",
1264
+ "figure.text.data-range-close-last": "填写最后一个区间的上限后,下一个区间从该值开始。",
1265
+ "figure.text.data-rule-overlap": "区间 {value} 与其他区间重叠。一个值只对应一行。",
1266
+ "figure.text.data-sample-legend-explained": "为某个角色粘贴图例 JSON,即可按看板给出该图例时的样子显示。不会保存。",
1267
+ "figure.text.data-table-entry-clip": "{key} 行:{value} 不是此动作组的片段。",
1268
+ "figure.text.data-table-entry-color": "{key} 行:颜色须为 #RRGGBB。",
1269
+ "figure.text.data-table-entry-column": "{key} 行:没有接收 {id} 的对象。",
1270
+ "figure.text.data-table-entry-effect": "{key} 行:效果为闪烁或发光,频率须大于 0。",
1271
+ "figure.text.data-table-entry-paused": "{key} 行:暂停须为真或假。",
1272
+ "figure.text.data-table-entry-speed": "{key} 行:倍速须在 0 到 3 之间。",
1273
+ "figure.text.data-table-entry-values": "{key} 行:{id} 不能接收值 {value}。",
1274
+ "figure.text.data-table-needs-target": "请为此表至少选择一个部件、控制值或动作组。",
1275
+ "figure.text.data-table-target-group": "没有动作组 {id}。",
1276
+ "figure.text.data-table-target-input": "控制值 {id} 不存在或被选了两次。",
1277
+ "figure.text.data-table-target-none": "请为此表至少选择一个对象。",
1278
+ "figure.text.data-table-target-part": "部件 {id} 不存在或被选了两次。",
1279
+ "figure.label.product-capabilities": "产品能力",
1280
+ "figure.text.product-capability-needs": "需先具备:{needs}",
1281
+ "figure.text.product-capability-unknown": "人偶带有本建模器不认识的产品能力 {name}。",
1282
+ "figure.button.product-capability-remove": "移除",
1283
+ "figure.text.data-capability-fields": "{name} 能力自己读取的数据:{fields}。",
1284
+ "figure.text.data-binding-rests": "在 {where} 中由 {name} 能力负责 — 此连接暂停",
1285
+ "figure.text.data-binding-rests-targets": "在 {where} 中由 {name} 能力负责 — 暂停的对象:{targets}"
1228
1286
  }