@things-factory/figure-service 10.1.161 → 10.1.165

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 (113) hide show
  1. package/dist-server/service/figure/figure-format.js +14 -14
  2. package/dist-server/service/figure/figure-format.js.map +1 -1
  3. package/dist-server/tsconfig.tsbuildinfo +1 -1
  4. package/package.json +8 -8
  5. package/recipes/air-cylinder/guide.ko.md +1 -1
  6. package/recipes/air-shower/guide.ko.md +1 -1
  7. package/recipes/barrier-gate/guide.ko.md +1 -1
  8. package/recipes/base-frame/guide.ko.md +1 -1
  9. package/recipes/belt-surface/guide.ko.md +1 -1
  10. package/recipes/bin-row/guide.ko.md +1 -1
  11. package/recipes/bollard-row/guide.ko.md +1 -1
  12. package/recipes/buzzer/guide.ko.md +1 -1
  13. package/recipes/cabinet-doors/guide.ko.md +1 -1
  14. package/recipes/cable-tray/guide.ko.md +1 -1
  15. package/recipes/camera-mount/guide.ko.md +1 -1
  16. package/recipes/canopy/guide.ko.md +1 -1
  17. package/recipes/cart/guide.ko.md +1 -1
  18. package/recipes/cart-handle/guide.ko.md +1 -1
  19. package/recipes/casters-four/guide.ko.md +1 -1
  20. package/recipes/ceiling-rail-carriage/guide.ko.md +1 -1
  21. package/recipes/chain-rails/guide.ko.md +1 -1
  22. package/recipes/charging-station/guide.ko.md +1 -1
  23. package/recipes/column-row/guide.ko.md +1 -1
  24. package/recipes/control-cabinet/guide.ko.md +1 -1
  25. package/recipes/conveyor-skirts/guide.ko.md +1 -1
  26. package/recipes/counter-display/guide.ko.md +1 -1
  27. package/recipes/dock-bumpers/guide.ko.md +1 -1
  28. package/recipes/dock-leveler/guide.ko.md +2 -2
  29. package/recipes/double-hinged-door/guide.ko.md +1 -1
  30. package/recipes/drawer-stack/guide.ko.md +1 -1
  31. package/recipes/drip-tray/guide.ko.md +1 -1
  32. package/recipes/duct-fan/guide.ko.md +1 -1
  33. package/recipes/emergency-stop/guide.ko.md +1 -1
  34. package/recipes/end-covers/guide.ko.md +1 -1
  35. package/recipes/ffu-row/guide.ko.md +1 -1
  36. package/recipes/fire-extinguisher/guide.ko.md +1 -1
  37. package/recipes/first-aid-box/guide.ko.md +1 -1
  38. package/recipes/floor-zone/guide.ko.md +2 -2
  39. package/recipes/folding-door/guide.ko.md +1 -1
  40. package/recipes/fork/guide.ko.md +1 -1
  41. package/recipes/gantry-frame/guide.ko.md +1 -1
  42. package/recipes/gripper-2f/guide.ko.md +1 -1
  43. package/recipes/guard-cover/guide.ko.md +1 -1
  44. package/recipes/handrail/guide.ko.md +1 -1
  45. package/recipes/hatch/guide.ko.md +1 -1
  46. package/recipes/hinged-door/guide.ko.md +1 -1
  47. package/recipes/hmi-monitor/guide.ko.md +1 -1
  48. package/recipes/hopper/guide.ko.md +1 -1
  49. package/recipes/interlock-switch/guide.ko.md +1 -1
  50. package/recipes/junction-box/guide.ko.md +1 -1
  51. package/recipes/ladder/guide.ko.md +1 -1
  52. package/recipes/legs-four/guide.ko.md +1 -1
  53. package/recipes/leveling-feet/guide.ko.md +1 -1
  54. package/recipes/lift-updown/guide.ko.md +1 -1
  55. package/recipes/light-curtain/guide.ko.md +1 -1
  56. package/recipes/limit-switch/guide.ko.md +1 -1
  57. package/recipes/linear-guide/guide.ko.md +1 -1
  58. package/recipes/locker-row/guide.ko.md +1 -1
  59. package/recipes/motor-box/guide.ko.md +1 -1
  60. package/recipes/observation-window/guide.ko.md +1 -1
  61. package/recipes/operator-panel/guide.ko.md +1 -1
  62. package/recipes/pallet/guide.ko.md +1 -1
  63. package/recipes/partition-wall/guide.ko.md +1 -1
  64. package/recipes/pass-box/guide.ko.md +1 -1
  65. package/recipes/peg-board/guide.ko.md +1 -1
  66. package/recipes/photo-sensor-pair/guide.ko.md +1 -1
  67. package/recipes/pipe-run/guide.ko.md +1 -1
  68. package/recipes/platform/guide.ko.md +1 -1
  69. package/recipes/power-box/guide.ko.md +1 -1
  70. package/recipes/pressure-gauge/guide.ko.md +1 -1
  71. package/recipes/pull-cord/guide.ko.md +1 -1
  72. package/recipes/pump/guide.ko.md +1 -1
  73. package/recipes/pusher/guide.ko.md +1 -1
  74. package/recipes/robot-plinth/guide.ko.md +1 -1
  75. package/recipes/roll-up-shutter/guide.ko.md +1 -1
  76. package/recipes/roller-row/guide.ko.md +1 -1
  77. package/recipes/room-shell/guide.ko.md +1 -1
  78. package/recipes/rotating-beacon/guide.ko.md +1 -1
  79. package/recipes/safety-fence/guide.ko.md +1 -1
  80. package/recipes/safety-mat/guide.ko.md +1 -1
  81. package/recipes/safety-sign-stand/guide.ko.md +1 -1
  82. package/recipes/scanner-mount/guide.ko.md +1 -1
  83. package/recipes/selector-switch/guide.ko.md +1 -1
  84. package/recipes/shelf-tiers/guide.ko.md +1 -1
  85. package/recipes/side-guides/guide.ko.md +1 -1
  86. package/recipes/sign-board/guide.ko.md +1 -1
  87. package/recipes/signal-tower-3/guide.ko.md +1 -1
  88. package/recipes/sliding-door/guide.ko.md +1 -1
  89. package/recipes/stairs/guide.ko.md +1 -1
  90. package/recipes/status-lamp/guide.ko.md +1 -1
  91. package/recipes/stopper/guide.ko.md +1 -1
  92. package/recipes/suction-pads/guide.ko.md +1 -1
  93. package/recipes/tank/guide.ko.md +1 -1
  94. package/recipes/telescopic-arm/guide.ko.md +1 -1
  95. package/recipes/toe-board/guide.ko.md +1 -1
  96. package/recipes/tote/guide.ko.md +1 -1
  97. package/recipes/traffic-cones/guide.ko.md +1 -1
  98. package/recipes/transfer-belts/guide.ko.md +1 -1
  99. package/recipes/tray-stack/guide.ko.md +1 -1
  100. package/recipes/trough/guide.ko.md +1 -1
  101. package/recipes/turntable/guide.ko.md +1 -1
  102. package/recipes/valve-handle/guide.ko.md +1 -1
  103. package/recipes/waste-bin/guide.ko.md +1 -1
  104. package/recipes/work-light/guide.ko.md +1 -1
  105. package/recipes/workbench-top/guide.ko.md +1 -1
  106. package/server/service/figure/figure-format.test.ts +9 -1
  107. package/server/service/figure/figure-format.ts +14 -14
  108. package/translations/en.json +14 -14
  109. package/translations/es.json +15 -15
  110. package/translations/ja.json +14 -14
  111. package/translations/ko.json +36 -36
  112. package/translations/ms.json +14 -14
  113. package/translations/zh.json +14 -14
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 설비에 전원 인입함을 달 때 씁니다.
3
+ 설비에 전원 인입함을 달 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 설비나 배관에 압력 게이지를 달 때 씁니다.
3
+ 설비나 배관에 압력 게이지를 달 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 컨베이어를 따라 당기면 멈추는 비상 풀 코드를 걸 때 씁니다.
3
+ 컨베이어를 따라 당기면 멈추는 비상 풀 코드를 걸 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 배관 계통의 펌프 자리에 모터와 펌프 몸체를 한 번에 올릴 때 씁니다.
3
+ 배관 계통의 펌프 자리에 모터와 펌프 몸체를 한 번에 올릴 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 컨베이어 위 물건을 옆으로 밀어내 갈라 보낼 때 씁니다.
3
+ 컨베이어 위 물건을 옆으로 밀어내 갈라 보낼 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 로봇 팔 · 협동로봇을 올릴 받침대를 세울 때 씁니다.
3
+ 로봇 팔 · 협동로봇을 올릴 받침대를 세울 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 창고, 하역장 출입구에 위로 올라가는 셔터를 달 때 씁니다.
3
+ 창고, 하역장 출입구에 위로 올라가는 셔터를 달 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 롤러 컨베이어, 리프트 테이블, 틸트 트레이처럼 윗면에 롤러가 줄지어 있는 설비를 만들 때 씁니다. 부품이 길어지면 롤러가 저절로 더 들어갑니다.
3
+ 롤러 컨베이어, 리프트 테이블, 틸트 트레이처럼 윗면에 롤러가 줄지어 있는 설비를 만들 때 사용합니다. 부품이 길어지면 롤러가 저절로 더 들어갑니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 바닥 하나로 방(클린룸 · 드라이룸 · 창고 구획)의 벽과 천장을 한 번에 세울 때 씁니다.
3
+ 바닥 하나로 방(클린룸 · 드라이룸 · 창고 구획)의 벽과 천장을 한 번에 세울 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 경고용 회전 경광등을 달 때 씁니다.
3
+ 경고용 회전 경광등을 달 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 로봇 셀, 위험 구역 둘레에 안전 펜스를 칠 때 씁니다.
3
+ 로봇 셀, 위험 구역 둘레에 안전 펜스를 칠 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 설비 앞 바닥에 밟으면 멈추는 안전 매트를 깔 때 씁니다.
3
+ 설비 앞 바닥에 밟으면 멈추는 안전 매트를 깔 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 작업 구역 · 통행로에 세워 두는 안전 표지를 보일 때 씁니다.
3
+ 작업 구역 · 통행로에 세워 두는 안전 표지를 보일 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 컨베이어 위에서 바코드 · 비전 스캐너가 내려다보게 할 때 씁니다.
3
+ 컨베이어 위에서 바코드 · 비전 스캐너가 내려다보게 할 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 조작반의 자동 · 수동 같은 모드 선택 스위치를 보일 때 씁니다.
3
+ 조작반의 자동 · 수동 같은 모드 선택 스위치를 보일 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 벽면이나 랙 뒤판에 선반을 여러 단 달 때 씁니다.
3
+ 벽면이나 랙 뒤판에 선반을 여러 단 달 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 컨베이어 위로 흐르는 물건이 옆으로 떨어지지 않게 양쪽 가이드를 댈 때 씁니다.
3
+ 컨베이어 위로 흐르는 물건이 옆으로 떨어지지 않게 양쪽 가이드를 댈 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 설비나 구역의 이름표, 안내판을 달 때 씁니다.
3
+ 설비나 구역의 이름표, 안내판을 달 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 설비 상태를 알리는 3단 시그널타워(빨강·노랑·초록)를 달 때 씁니다.
3
+ 설비 상태를 알리는 3단 시그널타워(빨강·노랑·초록)를 달 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 드라이룸, 클린룸, 챔버, 창고처럼 사람이나 대차가 드나드는 방에 출입문을 달 때 씁니다. 문이 방 크기를 따라가므로 방을 보드에서 키우거나 줄여도 문이 제자리에 맞게 남습니다.
3
+ 드라이룸, 클린룸, 챔버, 창고처럼 사람이나 대차가 드나드는 방에 출입문을 달 때 사용합니다. 문이 방 크기를 따라가므로 방을 보드에서 키우거나 줄여도 문이 제자리에 맞게 남습니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 메자닌 · 작업대 · 설비 점검대로 오르는 계단을 보일 때 씁니다.
3
+ 메자닌 · 작업대 · 설비 점검대로 오르는 계단을 보일 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 설비나 구역에 켜고 끄는 상태 램프 하나를 달 때 씁니다.
3
+ 설비나 구역에 켜고 끄는 상태 램프 하나를 달 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 컨베이어 위 물건을 한 자리에서 멈출 때 씁니다. 조립·검사 위치 앞에 둡니다.
3
+ 컨베이어 위 물건을 한 자리에서 멈출 때 사용합니다. 조립·검사 위치 앞에 둡니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 판이나 상자를 흡착으로 드는 헤드에 흡착 패드를 줄지어 달 때 씁니다.
3
+ 판이나 상자를 흡착으로 드는 헤드에 흡착 패드를 줄지어 달 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 받침 위에 원통 탱크를 세울 때 씁니다.
3
+ 받침 위에 원통 탱크를 세울 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 셔틀이나 스태커의 두 단 텔레스코픽 암을 만들 때 씁니다.
3
+ 셔틀이나 스태커의 두 단 텔레스코픽 암을 만들 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 발판 가장자리에 발끝막이를 댈 때 씁니다.
3
+ 발판 가장자리에 발끝막이를 댈 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 선반이나 대차 위에 부품 상자(토트)를 올릴 때 씁니다.
3
+ 선반이나 대차 위에 부품 상자(토트)를 올릴 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 작업 구역 · 하역장 · 통행로를 콘으로 막거나 표시할 때 씁니다.
3
+ 작업 구역 · 하역장 · 통행로를 콘으로 막거나 표시할 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 컨베이어 위 물건을 옆 라인으로 넘기는 직교 이송을 만들 때 씁니다.
3
+ 컨베이어 위 물건을 옆 라인으로 넘기는 직교 이송을 만들 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 대차 · 작업대 위에 부품 트레이를 여러 단 쌓아 둔 모습을 보일 때 씁니다.
3
+ 대차 · 작업대 위에 부품 트레이를 여러 단 쌓아 둔 모습을 보일 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 칩, 냉각수, 부스러기를 받는 홈통을 놓을 때 씁니다.
3
+ 칩, 냉각수, 부스러기를 받는 홈통을 놓을 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 물건의 방향을 바꾸는 턴테이블을 만들 때 씁니다.
3
+ 물건의 방향을 바꾸는 턴테이블을 만들 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 배관 위의 밸브와 핸들을 보일 때 씁니다.
3
+ 배관 위의 밸브와 핸들을 보일 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 작업장 폐기물 · 분리수거 통을 둘 때 씁니다.
3
+ 작업장 폐기물 · 분리수거 통을 둘 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 작업대 위를 비추는 작업등을 달 때 씁니다.
3
+ 작업대 위를 비추는 작업등을 달 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -1,6 +1,6 @@
1
1
  ## 언제 쓰나
2
2
 
3
- 작업대, 테이블에 두꺼운 상판을 올릴 때 씁니다.
3
+ 작업대, 테이블에 두꺼운 상판을 올릴 때 사용합니다.
4
4
 
5
5
  ## 넣는 순서
6
6
 
@@ -288,7 +288,7 @@ describe('figure-format — 판을 알아보는 문', () => {
288
288
  expect(finding?.blocking).toBe(true)
289
289
  expect(finding!.message).toBe(`'${placeholder}' 타입은 처음 저장할 때 붙은 임시 타입입니다.`)
290
290
  /* 화면의 칸 이름은 「타입」이다(`figure.label.figure-type`). */
291
- expect(finding!.how).toContain('타입 칸')
291
+ expect(finding!.how).toContain('타입 항목')
292
292
  expect(inspectSource(figureSource(), null, translatorOf(KO), 'ROLLER_CONVEYOR').blocked).toBe(false)
293
293
  })
294
294
 
@@ -353,6 +353,14 @@ describe('figure-format — 판을 알아보는 문', () => {
353
353
  for (const code of ['occupancy-changed', 'contact-face-changed', 'public-input-gone', 'public-input-range-narrowed', 'public-input-added', 'state-input-joints-changed', 'joint-axis-changed', 'joint-motion-unit-changed', 'joint-child-changed', 'joint-list-unread', 'carrier-gone', 'carrier-type-changed', 'carrier-dimensions-changed', 'carrier-added'])
354
354
  for (const dict of [KO, EN]) for (const field of ['message', 'why']) expect(dict[`figure.gate.contract.${code}.${field}`]).toBeTruthy()
355
355
  })
356
+ it('the data changes have their sentences under figure-model 0.6.6\'s codes, in all six languages', () => {
357
+ /* 0.6.6 named them for data fields and bindings (data interface 2); a sentence under the old code is never found. */
358
+ const codes = ['data-field-gone', 'data-field-kind-changed', 'data-field-narrowed', 'data-field-added', 'data-field-label-changed', 'data-field-default-changed', 'data-bindings-changed']
359
+ for (const lang of ['ko', 'en', 'ja', 'zh', 'es', 'ms']) {
360
+ const dict = require(`../../../translations/${lang}.json`) as Record<string, string>
361
+ for (const code of codes) for (const field of ['message', 'why']) expect([lang, code, field, !!dict[`figure.gate.contract.${code}.${field}`]]).toEqual([lang, code, field, true])
362
+ }
363
+ })
356
364
  })
357
365
 
358
366
  /* ADR-0104 decision 4: off the middle of its room is said at release, never refused. */
@@ -502,42 +502,42 @@ function figureContractWording(change: FigureContractChange, say: Say): Pick<Gat
502
502
  why: say(key('why'), {}, 'Live data with this code finds this figure once the type map takes this release.')
503
503
  }
504
504
  /* What a consumer's data mapping and a board's motion selection lean on (ADR-0051 §2.2, §3.2). */
505
- case 'data-property-gone':
505
+ case 'data-field-gone':
506
506
  return {
507
- message: say(key('message'), v, `The data property '${v.id}' is gone.`),
507
+ message: say(key('message'), v, `The data field '${v.id}' is gone.`),
508
508
  why: say(key('why'), {}, 'Boards map their data onto this id. After this release that data moves nothing.'),
509
509
  ...gone
510
510
  }
511
- case 'data-property-kind-changed':
511
+ case 'data-field-kind-changed':
512
512
  return {
513
- message: say(key('message'), v, `The data property '${v.id}' changed from ${v.before} to ${v.after}.`),
513
+ message: say(key('message'), v, `The data field '${v.id}' changed from ${v.before} to ${v.after}.`),
514
514
  why: say(key('why'), {}, 'Mapped data was written for the old kind or unit. After this release the same data is refused or means something else.'),
515
515
  ...gone
516
516
  }
517
- case 'data-property-narrowed':
517
+ case 'data-field-narrowed':
518
518
  return {
519
- message: say(key('message'), v, `The data property '${v.id}' takes less: ${v.before} → ${v.after}.`),
519
+ message: say(key('message'), v, `The data field '${v.id}' takes less: ${v.before} → ${v.after}.`),
520
520
  why: say(key('why'), {}, 'Data with a value it no longer takes is refused whole, and the figure keeps what it showed.'),
521
521
  ...gone
522
522
  }
523
- case 'data-property-added':
523
+ case 'data-field-added':
524
524
  return {
525
- message: say(key('message'), v, `The data property '${v.id}' is new.`),
525
+ message: say(key('message'), v, `The data field '${v.id}' is new.`),
526
526
  why: say(key('why'), {}, 'Until a board maps data onto it, it stands at its default.')
527
527
  }
528
- case 'data-property-label-changed':
528
+ case 'data-field-label-changed':
529
529
  return {
530
- message: say(key('message'), v, `The data property '${v.id}' is now called '${v.after}'.`),
530
+ message: say(key('message'), v, `The data field '${v.id}' is now called '${v.after}'.`),
531
531
  why: say(key('why'), {}, 'Mappings name the id, so they keep working.')
532
532
  }
533
- case 'data-property-default-changed':
533
+ case 'data-field-default-changed':
534
534
  return {
535
- message: say(key('message'), v, `The default of the data property '${v.id}' changed from ${v.before} to ${v.after}.`),
535
+ message: say(key('message'), v, `The default of the data field '${v.id}' changed from ${v.before} to ${v.after}.`),
536
536
  why: say(key('why'), {}, 'A placed figure with no data or saved value for it stands differently after this release.')
537
537
  }
538
- case 'data-connections-changed':
538
+ case 'data-bindings-changed':
539
539
  return {
540
- message: say(key('message'), v, 'What the data properties move changed.'),
540
+ message: say(key('message'), v, 'What the data moves (its bindings) changed.'),
541
541
  why: say(key('why'), {}, 'The same data gives another pose, colour or clip after this release.')
542
542
  }
543
543
  case 'motion-group-gone':
@@ -117,20 +117,20 @@
117
117
  "error.figure-mesh-too-large": "the file is larger than {max} MB, the most a board downloads for one part. make it smaller and upload it again.",
118
118
  "error.figure-mesh-missing": "this figure uses a mesh file this domain does not hold ({hash}). upload the file again.",
119
119
  "error.figure-package-mesh-missing": "{ref} uses a mesh file this server does not hold ({hash}); it cannot be packaged.",
120
- "figure.gate.contract.data-property-gone.message": "The data property '{id}' is gone.",
121
- "figure.gate.contract.data-property-gone.why": "Boards map their data onto this id. After this release that data moves nothing.",
122
- "figure.gate.contract.data-property-kind-changed.message": "The data property '{id}' changed from {before} to {after}.",
123
- "figure.gate.contract.data-property-kind-changed.why": "Mapped data was written for the old kind or unit. After this release the same data is refused or means something else.",
124
- "figure.gate.contract.data-property-narrowed.message": "The data property '{id}' takes less: {before} → {after}.",
125
- "figure.gate.contract.data-property-narrowed.why": "Data with a value it no longer takes is refused whole, and the figure keeps what it showed.",
126
- "figure.gate.contract.data-property-added.message": "The data property '{id}' is new.",
127
- "figure.gate.contract.data-property-added.why": "Until a board maps data onto it, it stands at its default.",
128
- "figure.gate.contract.data-property-label-changed.message": "The data property '{id}' is now called '{after}'.",
129
- "figure.gate.contract.data-property-label-changed.why": "Mappings name the id, so they keep working.",
130
- "figure.gate.contract.data-property-default-changed.message": "The default of the data property '{id}' changed from {before} to {after}.",
131
- "figure.gate.contract.data-property-default-changed.why": "A placed figure with no data or saved value for it stands differently after this release.",
132
- "figure.gate.contract.data-connections-changed.message": "What the data properties move changed.",
133
- "figure.gate.contract.data-connections-changed.why": "The same data gives another pose, colour or clip after this release.",
120
+ "figure.gate.contract.data-field-gone.message": "The data field '{id}' is gone.",
121
+ "figure.gate.contract.data-field-gone.why": "Boards map their data onto this id. After this release that data moves nothing.",
122
+ "figure.gate.contract.data-field-kind-changed.message": "The data field '{id}' changed from {before} to {after}.",
123
+ "figure.gate.contract.data-field-kind-changed.why": "Mapped data was written for the old kind or unit. After this release the same data is refused or means something else.",
124
+ "figure.gate.contract.data-field-narrowed.message": "The data field '{id}' takes less: {before} → {after}.",
125
+ "figure.gate.contract.data-field-narrowed.why": "Data with a value it no longer takes is refused whole, and the figure keeps what it showed.",
126
+ "figure.gate.contract.data-field-added.message": "The data field '{id}' is new.",
127
+ "figure.gate.contract.data-field-added.why": "Until a board maps data onto it, it stands at its default.",
128
+ "figure.gate.contract.data-field-label-changed.message": "The data field '{id}' is now called '{after}'.",
129
+ "figure.gate.contract.data-field-label-changed.why": "Mappings name the id, so they keep working.",
130
+ "figure.gate.contract.data-field-default-changed.message": "The default of the data field '{id}' changed from {before} to {after}.",
131
+ "figure.gate.contract.data-field-default-changed.why": "A placed figure with no data or saved value for it stands differently after this release.",
132
+ "figure.gate.contract.data-bindings-changed.message": "What the data moves (its bindings) changed.",
133
+ "figure.gate.contract.data-bindings-changed.why": "The same data gives another pose, colour or clip after this release.",
134
134
  "figure.gate.contract.motion-group-gone.message": "The motion group '{group}' is gone.",
135
135
  "figure.gate.contract.motion-group-gone.why": "Boards and data choose its clip by this id. After this release that choice does nothing.",
136
136
  "figure.gate.contract.motion-group-clip-removed.message": "The motion group '{group}' no longer holds '{clip}'.",
@@ -63,7 +63,7 @@
63
63
  "figure.gate.contract.binding-added.why": "Las instancias colocadas aún no lo conocen y se quedan como están.",
64
64
  "figure.gate.contract.capability-gone.message": "La capacidad '{name}' ya no existe.",
65
65
  "figure.gate.contract.capability-gone.why": "Las escenas asocian comportamientos mediante este nombre. Las instancias colocadas pierden lo que hacía.",
66
- "figure.gate.contract.capability-added.message": "La capacidad '{name}' es nueva.",
66
+ "figure.gate.contract.capability-added.message": "La capacidad '{name}' es nuevo.",
67
67
  "figure.gate.contract.capability-added.why": "Amplía lo que puede hacer la figura. Las instancias colocadas se quedan como están.",
68
68
  "figure.gate.contract.occupancy-changed.message": "Cambió el espacio que ocupa la figura: {before} → {after}.",
69
69
  "figure.gate.contract.occupancy-changed.why": "Quien usa la figura la coloca según este espacio. Quien pase a esta publicación verá que ocupa el nuevo espacio.",
@@ -117,20 +117,20 @@
117
117
  "error.figure-mesh-too-large": "el archivo supera los {max} MB, lo máximo que un tablero descarga para una pieza. redúzcalo y vuelva a subirlo.",
118
118
  "error.figure-mesh-missing": "esta figura usa un archivo de malla que este dominio no tiene ({hash}). vuelva a subir el archivo.",
119
119
  "error.figure-package-mesh-missing": "{ref} usa un archivo de malla que este servidor no tiene ({hash}); no se puede empaquetar.",
120
- "figure.gate.contract.data-property-gone.message": "La propiedad de datos '{id}' ya no existe.",
121
- "figure.gate.contract.data-property-gone.why": "Los tableros asignan sus datos a este id. Tras esta publicación esos datos no mueven nada.",
122
- "figure.gate.contract.data-property-kind-changed.message": "La propiedad de datos '{id}' cambió de {before} a {after}.",
123
- "figure.gate.contract.data-property-kind-changed.why": "Los datos asignados se escribieron para el tipo o la unidad anterior. Tras esta publicación se rechazan o significan otra cosa.",
124
- "figure.gate.contract.data-property-narrowed.message": "La propiedad de datos '{id}' admite menos: {before} → {after}.",
125
- "figure.gate.contract.data-property-narrowed.why": "Los datos con un valor que ya no admite se rechazan enteros y la figura conserva lo que mostraba.",
126
- "figure.gate.contract.data-property-added.message": "La propiedad de datos '{id}' es nueva.",
127
- "figure.gate.contract.data-property-added.why": "Hasta que un tablero le asigne datos, queda en su valor predeterminado.",
128
- "figure.gate.contract.data-property-label-changed.message": "La propiedad de datos '{id}' se llama ahora '{after}'.",
129
- "figure.gate.contract.data-property-label-changed.why": "Las asignaciones usan el id, así que siguen funcionando.",
130
- "figure.gate.contract.data-property-default-changed.message": "El valor predeterminado de la propiedad '{id}' cambió de {before} a {after}.",
131
- "figure.gate.contract.data-property-default-changed.why": "Una figura colocada sin datos ni valor guardado se verá distinta tras esta publicación.",
132
- "figure.gate.contract.data-connections-changed.message": "Cambió lo que mueven las propiedades de datos.",
133
- "figure.gate.contract.data-connections-changed.why": "Los mismos datos dan otra postura, color o clip tras esta publicación.",
120
+ "figure.gate.contract.data-field-gone.message": "El campo de datos '{id}' ya no existe.",
121
+ "figure.gate.contract.data-field-gone.why": "Los tableros asignan sus datos a este id. Tras esta publicación esos datos no mueven nada.",
122
+ "figure.gate.contract.data-field-kind-changed.message": "El campo de datos '{id}' cambió de {before} a {after}.",
123
+ "figure.gate.contract.data-field-kind-changed.why": "Los datos asignados se escribieron para el tipo o la unidad anterior. Tras esta publicación se rechazan o significan otra cosa.",
124
+ "figure.gate.contract.data-field-narrowed.message": "El campo de datos '{id}' admite menos: {before} → {after}.",
125
+ "figure.gate.contract.data-field-narrowed.why": "Los datos con un valor que ya no admite se rechazan enteros y la figura conserva lo que mostraba.",
126
+ "figure.gate.contract.data-field-added.message": "El campo de datos '{id}' es nuevo.",
127
+ "figure.gate.contract.data-field-added.why": "Hasta que un tablero le asigne datos, queda en su valor predeterminado.",
128
+ "figure.gate.contract.data-field-label-changed.message": "El campo de datos '{id}' se llama ahora '{after}'.",
129
+ "figure.gate.contract.data-field-label-changed.why": "Las asignaciones usan el id, así que siguen funcionando.",
130
+ "figure.gate.contract.data-field-default-changed.message": "El valor predeterminado del campo de datos '{id}' cambió de {before} a {after}.",
131
+ "figure.gate.contract.data-field-default-changed.why": "Una figura colocada sin datos ni valor guardado se verá distinta tras esta publicación.",
132
+ "figure.gate.contract.data-bindings-changed.message": "Cambió lo que mueven los datos (sus enlaces).",
133
+ "figure.gate.contract.data-bindings-changed.why": "Los mismos datos dan otra postura, color o clip tras esta publicación.",
134
134
  "figure.gate.contract.motion-group-gone.message": "El grupo de movimiento '{group}' ya no existe.",
135
135
  "figure.gate.contract.motion-group-gone.why": "Tableros y datos eligen su clip por este id. Tras esta publicación esa elección no hace nada.",
136
136
  "figure.gate.contract.motion-group-clip-removed.message": "El grupo '{group}' ya no contiene '{clip}'.",
@@ -117,20 +117,20 @@
117
117
  "error.figure-mesh-too-large": "ファイルが {max} MB を超えています。ボードが部品 1 つにダウンロードする上限です。小さくして再度アップロードしてください。",
118
118
  "error.figure-mesh-missing": "この図形が使うメッシュファイル({hash})がこのドメインにありません。ファイルを再度アップロードしてください。",
119
119
  "error.figure-package-mesh-missing": "{ref} が使うメッシュファイル({hash})がこのサーバーにないため、パッケージにできません。",
120
- "figure.gate.contract.data-property-gone.message": "データ属性 '{id}' がなくなりました。",
121
- "figure.gate.contract.data-property-gone.why": "ボードはデータをこのIDに対応させます。このリリース以降、そのデータは何も動かしません。",
122
- "figure.gate.contract.data-property-kind-changed.message": "データ属性 '{id}' が {before} から {after} に変わりました。",
123
- "figure.gate.contract.data-property-kind-changed.why": "対応したデータは以前の種類や単位で書かれています。このリリース以降、同じデータは拒否されるか別の意味になります。",
124
- "figure.gate.contract.data-property-narrowed.message": "データ属性 '{id}' が受け取る値が減りました: {before} → {after}。",
125
- "figure.gate.contract.data-property-narrowed.why": "受け取らなくなった値を含むデータは全体が拒否され、Figureは直前の姿を保ちます。",
126
- "figure.gate.contract.data-property-added.message": "データ属性 '{id}' が新しく追加されました。",
127
- "figure.gate.contract.data-property-added.why": "ボードがデータを対応させるまで既定値のままです。",
128
- "figure.gate.contract.data-property-label-changed.message": "データ属性 '{id}' の名前が '{after}' になりました。",
129
- "figure.gate.contract.data-property-label-changed.why": "対応はIDで行うので、そのまま動作します。",
130
- "figure.gate.contract.data-property-default-changed.message": "データ属性 '{id}' の既定値が {before} から {after} に変わりました。",
131
- "figure.gate.contract.data-property-default-changed.why": "データや保存値がないFigureは、このリリース以降は違う姿になります。",
132
- "figure.gate.contract.data-connections-changed.message": "データ属性が動かす対象が変わりました。",
133
- "figure.gate.contract.data-connections-changed.why": "このリリース以降、同じデータが別の姿勢・色・クリップになります。",
120
+ "figure.gate.contract.data-field-gone.message": "データフィールド '{id}' がなくなりました。",
121
+ "figure.gate.contract.data-field-gone.why": "ボードはデータをこのIDに対応させます。このリリース以降、そのデータは何も動かしません。",
122
+ "figure.gate.contract.data-field-kind-changed.message": "データフィールド '{id}' が {before} から {after} に変わりました。",
123
+ "figure.gate.contract.data-field-kind-changed.why": "対応したデータは以前の種類や単位で書かれています。このリリース以降、同じデータは拒否されるか別の意味になります。",
124
+ "figure.gate.contract.data-field-narrowed.message": "データフィールド '{id}' が受け取る値が減りました: {before} → {after}。",
125
+ "figure.gate.contract.data-field-narrowed.why": "受け取らなくなった値を含むデータは全体が拒否され、Figureは直前の姿を保ちます。",
126
+ "figure.gate.contract.data-field-added.message": "データフィールド '{id}' が新しく追加されました。",
127
+ "figure.gate.contract.data-field-added.why": "ボードがデータを対応させるまで既定値のままです。",
128
+ "figure.gate.contract.data-field-label-changed.message": "データフィールド '{id}' の名前が '{after}' になりました。",
129
+ "figure.gate.contract.data-field-label-changed.why": "対応はIDで行うので、そのまま動作します。",
130
+ "figure.gate.contract.data-field-default-changed.message": "データフィールド '{id}' の既定値が {before} から {after} に変わりました。",
131
+ "figure.gate.contract.data-field-default-changed.why": "データや保存値がないFigureは、このリリース以降は違う姿になります。",
132
+ "figure.gate.contract.data-bindings-changed.message": "データが動かす対象(バインディング)が変わりました。",
133
+ "figure.gate.contract.data-bindings-changed.why": "このリリース以降、同じデータが別の姿勢・色・クリップになります。",
134
134
  "figure.gate.contract.motion-group-gone.message": "モーショングループ '{group}' がなくなりました。",
135
135
  "figure.gate.contract.motion-group-gone.why": "ボードとデータはこのIDでクリップを選びます。このリリース以降、その選択は何もしません。",
136
136
  "figure.gate.contract.motion-group-clip-removed.message": "モーショングループ '{group}' から '{clip}' が外れました。",