@things-factory/figure-ui 10.1.208 → 10.1.211

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 (92) hide show
  1. package/client/modeller/data-interface.ts +5 -5
  2. package/client/modeller/editor.ts +97 -88
  3. package/client/modeller/fasten-geometry.ts +2 -1
  4. package/client/modeller/figure-links.ts +87 -157
  5. package/client/modeller/figure-size-editor.ts +233 -0
  6. package/client/modeller/joint-drag.ts +25 -21
  7. package/client/modeller/joint-fan.ts +4 -3
  8. package/client/modeller/links.ts +87 -36
  9. package/client/modeller/live.ts +33 -0
  10. package/client/modeller/motion-ends.ts +10 -6
  11. package/client/modeller/size-response.ts +95 -0
  12. package/dist-client/modeller/data-interface.d.ts +1 -1
  13. package/dist-client/modeller/data-interface.js +5 -5
  14. package/dist-client/modeller/data-interface.js.map +1 -1
  15. package/dist-client/modeller/editor.d.ts +14 -1
  16. package/dist-client/modeller/editor.js +103 -89
  17. package/dist-client/modeller/editor.js.map +1 -1
  18. package/dist-client/modeller/fasten-geometry.js +1 -1
  19. package/dist-client/modeller/fasten-geometry.js.map +1 -1
  20. package/dist-client/modeller/figure-links.d.ts +3 -4
  21. package/dist-client/modeller/figure-links.js +91 -145
  22. package/dist-client/modeller/figure-links.js.map +1 -1
  23. package/dist-client/modeller/figure-size-editor.d.ts +29 -0
  24. package/dist-client/modeller/figure-size-editor.js +262 -0
  25. package/dist-client/modeller/figure-size-editor.js.map +1 -0
  26. package/dist-client/modeller/joint-drag.d.ts +1 -1
  27. package/dist-client/modeller/joint-drag.js +27 -22
  28. package/dist-client/modeller/joint-drag.js.map +1 -1
  29. package/dist-client/modeller/joint-fan.js +4 -3
  30. package/dist-client/modeller/joint-fan.js.map +1 -1
  31. package/dist-client/modeller/links.d.ts +21 -9
  32. package/dist-client/modeller/links.js +85 -35
  33. package/dist-client/modeller/links.js.map +1 -1
  34. package/dist-client/modeller/live.d.ts +14 -0
  35. package/dist-client/modeller/live.js +31 -0
  36. package/dist-client/modeller/live.js.map +1 -1
  37. package/dist-client/modeller/motion-ends.d.ts +4 -1
  38. package/dist-client/modeller/motion-ends.js +10 -6
  39. package/dist-client/modeller/motion-ends.js.map +1 -1
  40. package/dist-client/modeller/size-response.d.ts +29 -0
  41. package/dist-client/modeller/size-response.js +99 -0
  42. package/dist-client/modeller/size-response.js.map +1 -0
  43. package/dist-client/tsconfig.tsbuildinfo +1 -1
  44. package/docs/evidence/2026-10-24/current-size-panel.png +0 -0
  45. package/docs/evidence/2026-10-24/integrated-size.png +0 -0
  46. package/docs/evidence/2026-10-24/multipart-response.png +0 -0
  47. package/docs/evidence/2026-10-24/repeat-layout.png +0 -0
  48. package/docs/evidence/2026-10-24/repeat-shared-style.png +0 -0
  49. package/docs/evidence/2026-10-24/size-in-layout.png +0 -0
  50. package/docs/evidence/2026-10-24/size-shared-style.png +0 -0
  51. package/docs/evidence/2026-10-24/width-preview.png +0 -0
  52. package/docs/multipart-response-review-2026-10-24.md +77 -0
  53. package/docs/response-authoring-2026-10-24.md +46 -0
  54. package/docs/size-and-repeat-ux-2026-10-24.md +67 -0
  55. package/package.json +7 -7
  56. package/test/attachment-size-contract.test.ts +47 -0
  57. package/test/browser/acceptance-page.js +1 -1
  58. package/test/browser/detail-page.js +1 -1
  59. package/test/browser/detail-tabs-page.js +1 -1
  60. package/test/browser/editing-page.js +1 -1
  61. package/test/browser/editing.check.mjs +66 -14
  62. package/test/browser/links.check.mjs +41 -22
  63. package/test/browser/modeller-page.js +1 -1
  64. package/test/browser/modeller-revision.check.mjs +21 -7
  65. package/test/browser/modeller.check.mjs +106 -39
  66. package/test/browser/multipart-response-page.js +8 -0
  67. package/test/browser/parts.check.mjs +2 -1
  68. package/test/browser/product-page.js +1 -1
  69. package/test/browser/props.check.mjs +17 -14
  70. package/test/browser/response-page.js +12 -0
  71. package/test/browser/row-preview.check.mjs +3 -3
  72. package/test/browser/screen.check.mjs +57 -13
  73. package/test/browser/serve-response.mjs +24 -0
  74. package/test/clip-ai-proposal.test.ts +1 -1
  75. package/test/clip-consent.test.ts +2 -2
  76. package/test/command-preview.test.ts +7 -7
  77. package/test/joint-drag.test.ts +6 -6
  78. package/test/joint-frames.test.ts +33 -32
  79. package/test/joints.ts +1 -6
  80. package/test/links.test.ts +60 -20
  81. package/test/multipart-response-fixture.js +17 -0
  82. package/test/multipart-response.test.ts +37 -0
  83. package/test/refusals.test.ts +2 -2
  84. package/test/resize-with-placement.test.ts +23 -1
  85. package/test/size-response.test.ts +49 -0
  86. package/test/size-source-pairing.test.ts +66 -0
  87. package/translations/en.json +47 -10
  88. package/translations/es.json +47 -10
  89. package/translations/ja.json +47 -10
  90. package/translations/ko.json +52 -15
  91. package/translations/ms.json +47 -10
  92. package/translations/zh.json +47 -10
@@ -52,9 +52,9 @@
52
52
  "figure.text.scale-position-explained": "今の位置を図形サイズの割合として保ちます。2 倍のサイズなら 2 倍の距離に置かれます。",
53
53
  "figure.text.repeat-member": "{name} を {count} 個繰り返したうちの {index} 番目です。",
54
54
  "figure.label.detail-none": "なし",
55
- "figure.label.repeat": "列に並べる",
56
- "figure.text.repeat-fits-length": "図形の長さに合わせ、この間隔で入るだけ置かれます。",
57
- "figure.text.repeat-fixed-count": "個数が固定された繰り返しのため、間隔はまだ変更できません。",
55
+ "figure.label.repeat": "繰り返し配置",
56
+ "figure.text.repeat-fits-length": "接続先の長さに合わせ、指定した中心間隔で配置します。",
57
+ "figure.text.repeat-fixed-count": "個数を維持するよう中心間隔を自動計算します。",
58
58
  "figure.text.repeat-what-pitch-gives": "長さ {length} mm で {count} 個 · 最大 {longest} mm まで置けます (1 列 {limit} 個)。",
59
59
  "figure.text.repeat-pitch-too-small": "pitch は {min} mm 以上にしてください。作成した長さ {length} mm で {limit} 個を超えるためです。",
60
60
  "figure.text.row-copies-over-limit": "この間隔では列が {count} 個になります。1 列は {limit} 個までです。間隔を広げてください。",
@@ -76,6 +76,7 @@
76
76
  "figure.text.gizmo-joint-turned-slide": "{joint} 関節はスライドのみです。移動ハンドルを使ってください。",
77
77
  "figure.text.gizmo-joint-origin-follows": "{joint} 関節の位置は他の部品に従います。動きタブの取り付けで変えてください。",
78
78
  "figure.text.gizmo-joint-off-axis": "{joint} 関節は {axis} 軸でのみ回ります。{axis} の回転ハンドルを使ってください。",
79
+ "figure.text.gizmo-joint-several-axes": "{joint} 関節は軸が複数あるため、ドラッグで動かせません。動きタブの操作値で調整してください。",
79
80
  "figure.text.gizmo-size-follows": "{part} の {axis} 寸法は他の寸法に従います。動きタブの寸法で変えてください。",
80
81
  "figure.text.gizmo-fastening-places": "{part} は他の部品の面に付いていて、その面が位置を決めます。動かすには先に外してください。",
81
82
  "figure.text.size-range-leaves-out-size": "図面での {axis} の範囲 {range} mm に現在のサイズ {at} mm が入っていません。",
@@ -593,6 +594,9 @@
593
594
  "figure.label.control-start": "start",
594
595
  "figure.label.travel-follows": "travel follows",
595
596
  "figure.button.add-motion": "Add motion",
597
+ "figure.button.add-axis": "軸を追加",
598
+ "figure.button.remove-axis": "軸を削除",
599
+ "figure.label.motion-axis-n": "軸 {n}",
596
600
  "figure.button.remove-motion": "Remove motion",
597
601
  "figure.label.room": "Room it takes up",
598
602
  "figure.text.room-explained": "Bounds computed from the parts are a proposal. Nothing is declared until you confirm, and a declaration never widens on its own.",
@@ -697,12 +701,12 @@
697
701
  "figure.label.face-opening-left": "開口部 左",
698
702
  "figure.label.face-opening-right": "開口部 右",
699
703
  "figure.label.face-opening-top": "開口部 上",
700
- "figure.label.repeat-fills": "長さを満たすだけ(pitch を決める)",
701
- "figure.button.make-repeat": "列に並べる",
702
- "figure.button.remove-repeat": "列をなくす",
703
- "figure.label.row-basis": "いくつ並べるか",
704
- "figure.label.row-by-count": "個数を決める",
705
- "figure.text.row-count-spreads": "個数を決めると長さの中で均等に広がります。間隔はプレビューで確認してください。",
704
+ "figure.label.repeat-fills": "間隔を維持",
705
+ "figure.button.make-repeat": "繰り返し配置を適用",
706
+ "figure.button.remove-repeat": "繰り返し配置を解除",
707
+ "figure.label.row-basis": "配置方式",
708
+ "figure.label.row-by-count": "個数を維持",
709
+ "figure.text.row-count-spreads": "指定した個数を接続先の長さに均等配置します。中心間隔は自動計算します。",
706
710
  "figure.text.row-blocked-unfastened": "{part} を別の部品に取り付けると、その部品に沿って列に並べられます。",
707
711
  "figure.text.row-blocked-on-plane": "取付平面ではなく別の部品に取り付けると、その部品に沿って列に並べられます。",
708
712
  "figure.text.row-blocked-at-origin": "別の部品の基準点に置かれているため、列に並べられません。その部品の面に取り付けると列に並べられます。",
@@ -1184,5 +1188,38 @@
1184
1188
  "figure.text.board-size-range-explained": "図面でこの範囲内にサイズを変えられます。空欄は部品が許す限りで、数値を入れるとその値に狭まります。サイズに従う部品だけが一緒に伸び、ほかはそのままです。",
1185
1189
  "figure.text.board-size-followers": "サイズに従って変わる部品: {parts}",
1186
1190
  "figure.text.board-size-followers-more": "{first} ほか {rest} 個",
1187
- "figure.text.board-size-no-followers": "サイズに従って変わる部品なし"
1191
+ "figure.text.board-size-no-followers": "サイズに従って変わる部品なし",
1192
+ "figure.button.resize-follow": "比例して変更",
1193
+ "figure.button.resize-follow-axis": "{dimension}を比例して変更",
1194
+ "figure.text.resize-follow-axis": "現在の比率を保って図形サイズに追従します。他の寸法は変更しません。",
1195
+ "figure.label.size-axis": "軸",
1196
+ "figure.label.size-measure": "サイズ (mm)",
1197
+ "figure.label.size-follows": "追従",
1198
+ "figure.label.size-source": "相手",
1199
+ "figure.label.size-source-axis": "相手の軸",
1200
+ "figure.label.size-diameter": "直径",
1201
+ "figure.label.size-figure": "図形",
1202
+ "figure.label.size-ratio": "比率を保つ",
1203
+ "figure.label.size-difference": "差を保つ",
1204
+ "figure.label.size-existing-rule": "既存の式",
1205
+ "figure.label.size-pick-source": "相手を選んでください",
1206
+ "figure.button.size-other-source": "別の相手",
1207
+ "figure.text.size-ratio-result": "{source} {size} mm の {pct}% — 相手が変わると同じ比率で変わります。",
1208
+ "figure.text.size-difference-less": "{source} {size} mm より {gap} mm 小さく — 相手が変わってもこの差を保ちます。",
1209
+ "figure.text.size-difference-more": "{source} {size} mm より {gap} mm 大きく — 相手が変わってもこの差を保ちます。",
1210
+ "figure.text.size-difference-same": "{source} {size} mm と同じ — 相手と同じだけ変わります。",
1211
+ "figure.text.size-custom-rule": "既存の式で決まります。相手や方式を選ぶと、今のサイズを基準に変わります。",
1212
+ "figure.text.size-uniform": "図形全体が一つの比率で拡大・縮小します。",
1213
+ "figure.text.size-invalid": "サイズは 0 より大きい数を入力してください。",
1214
+ "figure.text.size-unavailable-source": "この相手のサイズには追従できません。",
1215
+ "figure.text.size-unpaired": "斜めに置かれているため、追従する軸を決められません。相手と軸を選んでください。",
1216
+ "figure.label.repeat-inactive": "未適用",
1217
+ "figure.label.repeat-active": "適用済み",
1218
+ "figure.label.tab-arrangement": "配置",
1219
+ "figure.text.repeat-intro": "接続先の長さに沿って同じ部品を繰り返し配置します。",
1220
+ "figure.text.repeat-direction": "方向は接続先の軸です。",
1221
+ "figure.text.repeat-draft": "プレビューです。適用ボタンで確定します。",
1222
+ "figure.text.repeat-mode-pitch": "間隔を維持 · 接続先の長さに応じて個数が変わります。",
1223
+ "figure.text.repeat-mode-count": "個数を維持 · 接続先の長さに応じて間隔が変わります。",
1224
+ "figure.text.repeat-remove-explained": "解除すると元の部品が一つ残ります。"
1188
1225
  }
@@ -52,9 +52,9 @@
52
52
  "figure.text.scale-position-explained": "현재 위치를 도형 크기에 대한 비율로 설정합니다. 도형 크기가 두 배가 되면 기준점과의 거리도 두 배가 됩니다.",
53
53
  "figure.text.repeat-member": "{name} 되풀이 {count}개 중 {index}번째입니다.",
54
54
  "figure.label.detail-none": "없음",
55
- "figure.label.repeat": "줄로 배열",
56
- "figure.text.repeat-fits-length": "도형 길이에 맞춰 이 간격으로 들어가는 만큼 놓입니다.",
57
- "figure.text.repeat-fixed-count": "개수가 고정된 되풀이라 간격은 아직 바꿀 수 없습니다.",
55
+ "figure.label.repeat": "반복 배치",
56
+ "figure.text.repeat-fits-length": "상대 길이를 따라 정한 피치로 놓입니다.",
57
+ "figure.text.repeat-fixed-count": "개수를 지키도록 피치가 자동으로 정해집니다.",
58
58
  "figure.text.repeat-what-pitch-gives": "길이 {length} mm 에서 {count}개 · 최대 길이 {longest} mm 까지 놓입니다 (한 줄 {limit}개).",
59
59
  "figure.text.repeat-pitch-too-small": "피치는 {min} mm 이상이어야 합니다. 저작한 길이 {length} mm 에서 {limit}개를 넘기 때문입니다.",
60
60
  "figure.text.row-copies-over-limit": "간격이 좁아 줄이 {count}개가 됩니다. 한 줄은 {limit}개까지입니다. 간격을 넓혀 주세요.",
@@ -76,6 +76,7 @@
76
76
  "figure.text.gizmo-joint-turned-slide": "{joint} 관절은 미끄러지기만 합니다. 이동 손잡이로 움직이세요.",
77
77
  "figure.text.gizmo-joint-origin-follows": "{joint} 관절의 위치는 다른 부품을 기준으로 결정됩니다. 속성 탭의 「자리」에서 바꾸세요.",
78
78
  "figure.text.gizmo-joint-off-axis": "{joint} 관절은 {axis}축으로만 돕니다. {axis} 회전 손잡이를 쓰세요.",
79
+ "figure.text.gizmo-joint-several-axes": "{joint} 관절은 축이 여럿이라 끌어서 움직일 수 없습니다. 움직임 탭의 조작값으로 조정해 주세요.",
79
80
  "figure.text.gizmo-size-follows": "{part}의 {axis} 치수는 다른 치수를 따라 정해집니다. 반응형 탭의 「크기」에서 바꾸세요.",
80
81
  "figure.text.gizmo-fastening-places": "{part} 부품은 다른 부품의 면에 부착되어 있습니다. 위치를 직접 변경하려면 부착 관계를 먼저 해제해 주세요.",
81
82
  "figure.text.size-range-leaves-out-size": "도면에서의 {axis} 범위 {range} mm 에 지금 크기 {at} mm 가 들어가지 않습니다.",
@@ -593,6 +594,9 @@
593
594
  "figure.label.control-start": "시작값",
594
595
  "figure.label.travel-follows": "이동 거리가 따르는 것",
595
596
  "figure.button.add-motion": "움직임 추가",
597
+ "figure.button.add-axis": "축 추가",
598
+ "figure.button.remove-axis": "축 삭제",
599
+ "figure.label.motion-axis-n": "축 {n}",
596
600
  "figure.button.remove-motion": "움직임 삭제",
597
601
  "figure.label.room": "차지하는 공간",
598
602
  "figure.text.room-explained": "부품에서 계산한 경계는 권장 범위입니다. 확인 후 공간 선언에 반영됩니다. 모델을 변경해도 선언된 범위는 자동으로 확장되지 않습니다.",
@@ -697,17 +701,17 @@
697
701
  "figure.label.face-opening-left": "개구부 왼쪽",
698
702
  "figure.label.face-opening-right": "개구부 오른쪽",
699
703
  "figure.label.face-opening-top": "개구부 위",
700
- "figure.label.repeat-fills": "길이를 채우는 만큼 (피치를 정함)",
701
- "figure.button.make-repeat": "줄로 배열하기",
702
- "figure.button.remove-repeat": "줄 배열 삭제",
703
- "figure.label.row-basis": "몇 개로 배열할지",
704
- "figure.label.row-by-count": "개수를 정함",
705
- "figure.text.row-count-spreads": "개수를 설정하면 지정한 길이 안에 부품이 균등하게 배치됩니다. 간격은 미리보기에서 확인해 주세요.",
706
- "figure.text.row-blocked-unfastened": "{part}을(를) 다른 부품에 붙이면 그 부품을 따라 줄로 배열할 수 있습니다.",
707
- "figure.text.row-blocked-on-plane": "장착 평면이 아니라 다른 부품에 붙여야 그 부품을 따라 줄로 배열할 수 있습니다.",
708
- "figure.text.row-blocked-at-origin": "다른 부품의 기준점에 놓여 있어 줄로 배열할 수 없습니다. 그 부품의 면에 붙이면 줄로 배열할 수 있습니다.",
709
- "figure.text.row-blocked-holds-parts": "이 부품에 붙은 부품이 있어 줄로 배열할 수 없습니다. 먼저 줄로 배열한 뒤 붙이면 복사본마다 함께 붙습니다.",
710
- "figure.text.row-blocked-on-surface": "곡면 위 한 점에 붙어 있어 줄로 배열할 수 없습니다. 면에 붙이면 줄로 배열할 수 있습니다.",
704
+ "figure.label.repeat-fills": "피치 유지",
705
+ "figure.button.make-repeat": "반복 배치 적용",
706
+ "figure.button.remove-repeat": "반복 배치 해제",
707
+ "figure.label.row-basis": "배치 기준",
708
+ "figure.label.row-by-count": "개수 유지",
709
+ "figure.text.row-count-spreads": "정한 개수를 상대 길이에 고르게 놓습니다. 피치는 자동으로 정해집니다.",
710
+ "figure.text.row-blocked-unfastened": "{part}을(를) 다른 부품에 붙이면 그 부품을 따라 반복 배치할 수 있습니다.",
711
+ "figure.text.row-blocked-on-plane": "장착 평면이 아니라 다른 부품에 붙여야 그 부품을 따라 반복 배치할 수 있습니다.",
712
+ "figure.text.row-blocked-at-origin": "다른 부품의 기준점에 놓여 있어 반복 배치할 수 없습니다. 그 부품의 면에 붙이면 반복 배치할 수 있습니다.",
713
+ "figure.text.row-blocked-holds-parts": "이 부품에 붙은 부품이 있어 반복 배치할 수 없습니다. 먼저 반복 배치한 뒤 붙이면 복사본마다 함께 붙습니다.",
714
+ "figure.text.row-blocked-on-surface": "곡면 위 한 점에 붙어 있어 반복 배치할 수 없습니다. 면에 붙이면 반복 배치할 수 있습니다.",
711
715
  "figure.text.aim-self": "{part} 자신에는 붙일 수 없습니다.",
712
716
  "figure.text.aim-cannot": "{part}에는 붙일 면이나 곡면이 없습니다.",
713
717
  "figure.text.aim-not-here": "{part}의 해당 위치에는 부착할 수 없습니다. 부착할 면을 선택해 주세요.",
@@ -1184,5 +1188,38 @@
1184
1188
  "figure.text.board-size-range-explained": "도면에서 변경할 수 있는 크기 범위입니다. 비워 두면 부품에서 허용하는 범위를 사용하고, 값을 입력하면 해당 범위로 제한합니다. 크기 연동이 설정된 부품만 함께 조정되며, 나머지 부품의 크기는 유지됩니다.",
1185
1189
  "figure.text.board-size-followers": "크기를 따라 바뀌는 부품: {parts}",
1186
1190
  "figure.text.board-size-followers-more": "{first} 외 {rest}개",
1187
- "figure.text.board-size-no-followers": "크기를 따라 바뀌는 부품 없음"
1191
+ "figure.text.board-size-no-followers": "크기를 따라 바뀌는 부품 없음",
1192
+ "figure.button.resize-follow": "비례 변경",
1193
+ "figure.button.resize-follow-axis": "{dimension} 비례 변경",
1194
+ "figure.text.resize-follow-axis": "현재 치수의 비율을 유지하며 도형 크기를 따라갑니다. 다른 치수는 바꾸지 않습니다.",
1195
+ "figure.label.size-axis": "축",
1196
+ "figure.label.size-measure": "크기 (mm)",
1197
+ "figure.label.size-follows": "따라감",
1198
+ "figure.label.size-source": "상대",
1199
+ "figure.label.size-source-axis": "상대 축",
1200
+ "figure.label.size-diameter": "지름",
1201
+ "figure.label.size-figure": "도형",
1202
+ "figure.label.size-ratio": "비율 유지",
1203
+ "figure.label.size-difference": "간격 유지",
1204
+ "figure.label.size-existing-rule": "기존 식",
1205
+ "figure.label.size-pick-source": "상대를 고르세요",
1206
+ "figure.button.size-other-source": "다른 상대",
1207
+ "figure.text.size-ratio-result": "{source} {size} mm의 {pct}% — 상대가 바뀌면 같은 비율로 바뀝니다.",
1208
+ "figure.text.size-difference-less": "{source} {size} mm보다 {gap} mm 작게 — 상대가 바뀌어도 이 차이를 지킵니다.",
1209
+ "figure.text.size-difference-more": "{source} {size} mm보다 {gap} mm 크게 — 상대가 바뀌어도 이 차이를 지킵니다.",
1210
+ "figure.text.size-difference-same": "{source} {size} mm와 같게 — 상대가 바뀌면 똑같이 바뀝니다.",
1211
+ "figure.text.size-custom-rule": "기존 식으로 정해집니다. 상대나 방식을 고르면 지금 크기를 기준으로 바뀝니다.",
1212
+ "figure.text.size-uniform": "도형 전체가 한 비율로 커지고 작아집니다.",
1213
+ "figure.text.size-invalid": "크기는 0보다 큰 수로 넣으세요.",
1214
+ "figure.text.size-unavailable-source": "이 상대의 크기는 따를 수 없습니다.",
1215
+ "figure.text.size-unpaired": "비스듬히 놓여 따를 축을 정할 수 없습니다. 상대와 축을 고르세요.",
1216
+ "figure.label.repeat-inactive": "미적용",
1217
+ "figure.label.repeat-active": "적용됨",
1218
+ "figure.label.tab-arrangement": "배치",
1219
+ "figure.text.repeat-intro": "붙인 상대의 길이를 따라 같은 부품을 반복해서 놓습니다.",
1220
+ "figure.text.repeat-direction": "방향은 붙인 상대의 축입니다.",
1221
+ "figure.text.repeat-draft": "미리보기입니다. 적용 버튼을 눌러 확정하세요.",
1222
+ "figure.text.repeat-mode-pitch": "피치 유지 · 상대 길이가 바뀌면 개수가 바뀝니다.",
1223
+ "figure.text.repeat-mode-count": "개수 유지 · 상대 길이가 바뀌면 간격이 바뀝니다.",
1224
+ "figure.text.repeat-remove-explained": "해제하면 원본 부품 하나가 남습니다."
1188
1225
  }
@@ -52,9 +52,9 @@
52
52
  "figure.text.scale-position-explained": "menyimpan kedudukan ini sebagai bahagian saiz figura — pada saiz dua kali, jaraknya dua kali.",
53
53
  "figure.text.repeat-member": "salinan ke-{index} daripada {count} yang dibuat dengan mengulang {name}.",
54
54
  "figure.label.detail-none": "tiada",
55
- "figure.label.repeat": "disusun sebaris",
56
- "figure.text.repeat-fits-length": "seberapa banyak salinan yang muat pada panjang figura dengan jarak ini.",
57
- "figure.text.repeat-fixed-count": "ulangan dengan bilangan tetap; jaraknya belum boleh ditetapkan.",
55
+ "figure.label.repeat": "Susunan berulang",
56
+ "figure.text.repeat-fits-length": "Bahagian mengisi panjang rujukan pada jarak pusat yang dipilih.",
57
+ "figure.text.repeat-fixed-count": "Jarak pusat dikira untuk mengekalkan bilangan.",
58
58
  "figure.text.repeat-what-pitch-gives": "{count} pada panjang {length} mm · boleh diletakkan sehingga {longest} mm ({limit} sebaris).",
59
59
  "figure.text.repeat-pitch-too-small": "pitch mesti sekurang-kurangnya {min} mm: pada panjang asal {length} mm ia akan melebihi {limit}.",
60
60
  "figure.text.row-copies-over-limit": "Pada jarak ini barisan mempunyai {count} salinan. Satu barisan mengambil sehingga {limit}. Lebarkan jarak.",
@@ -76,6 +76,7 @@
76
76
  "figure.text.gizmo-joint-turned-slide": "sendi {joint} hanya menggelongsor. gunakan pemegang alih.",
77
77
  "figure.text.gizmo-joint-origin-follows": "kedudukan sendi {joint} mengikut bahagian lain. ubahnya di bawah pelekatan dalam tab gerakan.",
78
78
  "figure.text.gizmo-joint-off-axis": "sendi {joint} hanya berputar pada paksi {axis}. gunakan pemegang putar {axis}.",
79
+ "figure.text.gizmo-joint-several-axes": "sendi {joint} bergerak pada beberapa paksi, jadi ia tidak boleh diseret. laraskan nilainya pada tab gerakan.",
79
80
  "figure.text.gizmo-size-follows": "saiz {axis} {part} mengikut ukuran lain. ubahnya di bawah saiz dalam tab gerakan.",
80
81
  "figure.text.gizmo-fastening-places": "{part} dilekatkan pada muka bahagian lain, yang menentukan kedudukannya. tanggalkan dahulu untuk menggerakkannya.",
81
82
  "figure.text.size-range-leaves-out-size": "julat {axis} pada lukisan, {range} mm, tidak merangkumi saiznya sekarang, {at} mm.",
@@ -593,6 +594,9 @@
593
594
  "figure.label.control-start": "start",
594
595
  "figure.label.travel-follows": "travel follows",
595
596
  "figure.button.add-motion": "Add motion",
597
+ "figure.button.add-axis": "Tambah paksi",
598
+ "figure.button.remove-axis": "Buang paksi",
599
+ "figure.label.motion-axis-n": "Paksi {n}",
596
600
  "figure.button.remove-motion": "Remove motion",
597
601
  "figure.label.room": "Room it takes up",
598
602
  "figure.text.room-explained": "Bounds computed from the parts are a proposal. Nothing is declared until you confirm, and a declaration never widens on its own.",
@@ -697,12 +701,12 @@
697
701
  "figure.label.face-opening-left": "bukaan kiri",
698
702
  "figure.label.face-opening-right": "bukaan kanan",
699
703
  "figure.label.face-opening-top": "bukaan atas",
700
- "figure.label.repeat-fills": "sebanyak yang memenuhi panjang (tetapkan pitch)",
701
- "figure.button.make-repeat": "susun sebaris",
702
- "figure.button.remove-repeat": "buang baris",
703
- "figure.label.row-basis": "berapa banyak",
704
- "figure.label.row-by-count": "bilangan tetap",
705
- "figure.text.row-count-spreads": "Bilangan tetap disebarkan sekata sepanjang panjang. Semak jaraknya dalam pratonton.",
704
+ "figure.label.repeat-fills": "Kekalkan jarak",
705
+ "figure.button.make-repeat": "Gunakan susunan",
706
+ "figure.button.remove-repeat": "Buang susunan",
707
+ "figure.label.row-basis": "Peraturan susunan",
708
+ "figure.label.row-by-count": "Kekalkan bilangan",
709
+ "figure.text.row-count-spreads": "Agihkan bilangan yang dipilih secara sekata. Jarak pusat dikira secara automatik.",
706
710
  "figure.text.row-blocked-unfastened": "Lekatkan {part} pada bahagian lain untuk menyusunnya sebaris di sepanjang bahagian itu.",
707
711
  "figure.text.row-blocked-on-plane": "Lekatkan pada bahagian lain, bukan satah pemasangan, untuk menyusunnya sebaris.",
708
712
  "figure.text.row-blocked-at-origin": "Ia diletakkan pada titik asal bahagian lain. Lekatkan pada muka bahagian itu untuk menyusunnya sebaris.",
@@ -1184,5 +1188,38 @@
1184
1188
  "figure.text.board-size-range-explained": "Lukisan boleh mengubah saiznya dalam julat ini. Medan kosong ialah setakat yang dibenarkan bahagian; nombor yang ditaip menyempitkannya ke nilai itu. Hanya bahagian yang mengikut saiznya turut membesar; yang lain kekal.",
1185
1189
  "figure.text.board-size-followers": "bahagian yang berubah mengikut saiznya: {parts}",
1186
1190
  "figure.text.board-size-followers-more": "{first} dan {rest} lagi",
1187
- "figure.text.board-size-no-followers": "tiada bahagian berubah mengikut saiznya"
1191
+ "figure.text.board-size-no-followers": "tiada bahagian berubah mengikut saiznya",
1192
+ "figure.button.resize-follow": "Ubah secara berkadar",
1193
+ "figure.button.resize-follow-axis": "Ubah {dimension} secara berkadar",
1194
+ "figure.text.resize-follow-axis": "Ikut saiz rajah pada perkadaran semasa. Dimensi lain tidak berubah.",
1195
+ "figure.label.size-axis": "paksi",
1196
+ "figure.label.size-measure": "saiz (mm)",
1197
+ "figure.label.size-follows": "mengikut",
1198
+ "figure.label.size-source": "sumber",
1199
+ "figure.label.size-source-axis": "paksi sumber",
1200
+ "figure.label.size-diameter": "diameter",
1201
+ "figure.label.size-figure": "rajah",
1202
+ "figure.label.size-ratio": "kekalkan nisbah",
1203
+ "figure.label.size-difference": "kekalkan jarak",
1204
+ "figure.label.size-existing-rule": "formula sedia ada",
1205
+ "figure.label.size-pick-source": "pilih sumber",
1206
+ "figure.button.size-other-source": "sumber lain",
1207
+ "figure.text.size-ratio-result": "{pct}% daripada {source} {size} mm — berubah dengan nisbah yang sama apabila sumber berubah.",
1208
+ "figure.text.size-difference-less": "{gap} mm kurang daripada {source} {size} mm — kekalkan jarak itu apabila sumber berubah.",
1209
+ "figure.text.size-difference-more": "{gap} mm lebih daripada {source} {size} mm — kekalkan jarak itu apabila sumber berubah.",
1210
+ "figure.text.size-difference-same": "sama dengan {source} {size} mm — berubah seperti sumber.",
1211
+ "figure.text.size-custom-rule": "ditetapkan oleh formula sedia ada. pilih sumber atau cara dan ia berubah daripada saiz sekarang.",
1212
+ "figure.text.size-uniform": "seluruh rajah membesar dan mengecil dengan satu nisbah.",
1213
+ "figure.text.size-invalid": "masukkan saiz melebihi 0.",
1214
+ "figure.text.size-unavailable-source": "saiz sumber ini tidak boleh diikut.",
1215
+ "figure.text.size-unpaired": "ia terletak senget, jadi paksi untuk diikut tidak dapat ditentukan. pilih sumber dan paksi.",
1216
+ "figure.label.repeat-inactive": "Belum digunakan",
1217
+ "figure.label.repeat-active": "Digunakan",
1218
+ "figure.label.tab-arrangement": "Susunan",
1219
+ "figure.text.repeat-intro": "Ulang bahagian ini sepanjang bahagian tempat ia dipasang.",
1220
+ "figure.text.repeat-direction": "Arah menggunakan paksi bahagian tempat ia dipasang.",
1221
+ "figure.text.repeat-draft": "Pratonton sahaja. Tekan Gunakan untuk mengesahkan.",
1222
+ "figure.text.repeat-mode-pitch": "Kekalkan jarak · Bilangan berubah mengikut panjang rujukan.",
1223
+ "figure.text.repeat-mode-count": "Kekalkan bilangan · Jarak berubah mengikut panjang rujukan.",
1224
+ "figure.text.repeat-remove-explained": "Membuang susunan meninggalkan satu bahagian asal."
1188
1225
  }
@@ -52,9 +52,9 @@
52
52
  "figure.text.scale-position-explained": "把当前位置保持为图形尺寸的比例——尺寸加倍,距离也加倍。",
53
53
  "figure.text.repeat-member": "重复 {name} 得到的 {count} 个中的第 {index} 个。",
54
54
  "figure.label.detail-none": "无",
55
- "figure.label.repeat": "排成一列",
56
- "figure.text.repeat-fits-length": "按此间距沿图形长度放入尽可能多的副本。",
57
- "figure.text.repeat-fixed-count": "这是固定数量的重复,暂时无法更改间距。",
55
+ "figure.label.repeat": "重复排列",
56
+ "figure.text.repeat-fits-length": "沿所连接部件的长度按指定中心间距排列。",
57
+ "figure.text.repeat-fixed-count": "自动计算中心间距以保持数量。",
58
58
  "figure.text.repeat-what-pitch-gives": "长度 {length} mm 时 {count} 个 · 最长可放到 {longest} mm (一排 {limit} 个)。",
59
59
  "figure.text.repeat-pitch-too-small": "pitch 须不小于 {min} mm:在原始长度 {length} mm 下会超过 {limit} 个。",
60
60
  "figure.text.row-copies-over-limit": "此间距下一排有 {count} 个。一排最多 {limit} 个。请加大间距。",
@@ -76,6 +76,7 @@
76
76
  "figure.text.gizmo-joint-turned-slide": "{joint} 关节只能滑动。请使用移动手柄。",
77
77
  "figure.text.gizmo-joint-origin-follows": "{joint} 关节的位置跟随其他部件。请在运动标签的固定中修改。",
78
78
  "figure.text.gizmo-joint-off-axis": "{joint} 关节只绕 {axis} 轴旋转。请使用 {axis} 旋转手柄。",
79
+ "figure.text.gizmo-joint-several-axes": "{joint} 关节有多个轴,无法拖动。请在运动选项卡中调整其控制值。",
79
80
  "figure.text.gizmo-size-follows": "{part} 的 {axis} 尺寸跟随其他尺寸。请在运动标签的尺寸中修改。",
80
81
  "figure.text.gizmo-fastening-places": "{part} 贴在另一个部件的面上,由该面决定位置。要移动请先分离。",
81
82
  "figure.text.size-range-leaves-out-size": "图纸上的 {axis} 范围 {range} mm 不包含当前尺寸 {at} mm。",
@@ -593,6 +594,9 @@
593
594
  "figure.label.control-start": "start",
594
595
  "figure.label.travel-follows": "travel follows",
595
596
  "figure.button.add-motion": "Add motion",
597
+ "figure.button.add-axis": "添加轴",
598
+ "figure.button.remove-axis": "删除轴",
599
+ "figure.label.motion-axis-n": "轴 {n}",
596
600
  "figure.button.remove-motion": "Remove motion",
597
601
  "figure.label.room": "Room it takes up",
598
602
  "figure.text.room-explained": "Bounds computed from the parts are a proposal. Nothing is declared until you confirm, and a declaration never widens on its own.",
@@ -697,12 +701,12 @@
697
701
  "figure.label.face-opening-left": "开口 左侧",
698
702
  "figure.label.face-opening-right": "开口 右侧",
699
703
  "figure.label.face-opening-top": "开口 顶部",
700
- "figure.label.repeat-fills": "填满长度的数量(设定 pitch)",
701
- "figure.button.make-repeat": "排成一列",
702
- "figure.button.remove-repeat": "取消排列",
703
- "figure.label.row-basis": "排列数量",
704
- "figure.label.row-by-count": "指定数量",
705
- "figure.text.row-count-spreads": "指定数量后会在长度内均匀分布。请在预览中确认间距。",
704
+ "figure.label.repeat-fills": "保持间距",
705
+ "figure.button.make-repeat": "应用重复排列",
706
+ "figure.button.remove-repeat": "取消重复排列",
707
+ "figure.label.row-basis": "排列方式",
708
+ "figure.label.row-by-count": "保持数量",
709
+ "figure.text.row-count-spreads": "按指定数量沿所连接部件的长度均匀排列,中心间距自动计算。",
706
710
  "figure.text.row-blocked-unfastened": "将 {part} 附着到另一个部件后,即可沿该部件排成一列。",
707
711
  "figure.text.row-blocked-on-plane": "需附着到另一个部件而不是安装平面,才能沿该部件排成一列。",
708
712
  "figure.text.row-blocked-at-origin": "放在另一个部件的基准点上,无法排成一列。附着到该部件的面上后即可排成一列。",
@@ -1184,5 +1188,38 @@
1184
1188
  "figure.text.board-size-range-explained": "可在图纸上按此范围调整尺寸。空栏表示部件允许的范围,输入数字则缩小到该值。只有跟随尺寸的部件会一起伸缩,其余保持不变。",
1185
1189
  "figure.text.board-size-followers": "随尺寸变化的部件:{parts}",
1186
1190
  "figure.text.board-size-followers-more": "{first} 等 {rest} 个",
1187
- "figure.text.board-size-no-followers": "没有随尺寸变化的部件"
1191
+ "figure.text.board-size-no-followers": "没有随尺寸变化的部件",
1192
+ "figure.button.resize-follow": "按比例变化",
1193
+ "figure.button.resize-follow-axis": "{dimension}按比例变化",
1194
+ "figure.text.resize-follow-axis": "保持当前比例随图形尺寸变化。其他尺寸不变。",
1195
+ "figure.label.size-axis": "轴",
1196
+ "figure.label.size-measure": "尺寸 (mm)",
1197
+ "figure.label.size-follows": "跟随",
1198
+ "figure.label.size-source": "对象",
1199
+ "figure.label.size-source-axis": "对象轴",
1200
+ "figure.label.size-diameter": "直径",
1201
+ "figure.label.size-figure": "图形",
1202
+ "figure.label.size-ratio": "保持比例",
1203
+ "figure.label.size-difference": "保持间距",
1204
+ "figure.label.size-existing-rule": "现有公式",
1205
+ "figure.label.size-pick-source": "请选择对象",
1206
+ "figure.button.size-other-source": "其他对象",
1207
+ "figure.text.size-ratio-result": "{source} {size} mm 的 {pct}% — 对象变化时按相同比例变化。",
1208
+ "figure.text.size-difference-less": "比 {source} {size} mm 小 {gap} mm — 对象变化时保持此差值。",
1209
+ "figure.text.size-difference-more": "比 {source} {size} mm 大 {gap} mm — 对象变化时保持此差值。",
1210
+ "figure.text.size-difference-same": "与 {source} {size} mm 相同 — 随对象同样变化。",
1211
+ "figure.text.size-custom-rule": "由现有公式决定。选择对象或方式后,将以当前尺寸为基准改变。",
1212
+ "figure.text.size-uniform": "整个图形按一个比例放大缩小。",
1213
+ "figure.text.size-invalid": "请输入大于 0 的尺寸。",
1214
+ "figure.text.size-unavailable-source": "无法跟随此对象的尺寸。",
1215
+ "figure.text.size-unpaired": "它斜放着,无法确定要跟随的轴。请选择对象和轴。",
1216
+ "figure.label.repeat-inactive": "未应用",
1217
+ "figure.label.repeat-active": "已应用",
1218
+ "figure.label.tab-arrangement": "排列",
1219
+ "figure.text.repeat-intro": "沿所连接部件的长度重复排列相同部件。",
1220
+ "figure.text.repeat-direction": "方向使用所连接部件的轴。",
1221
+ "figure.text.repeat-draft": "当前为预览。点击应用确认。",
1222
+ "figure.text.repeat-mode-pitch": "保持间距 · 数量随所连接部件的长度变化。",
1223
+ "figure.text.repeat-mode-count": "保持数量 · 间距随所连接部件的长度变化。",
1224
+ "figure.text.repeat-remove-explained": "取消排列后保留一个原始部件。"
1188
1225
  }