@things-factory/figure-ui 10.1.46 → 10.1.47

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 (138) hide show
  1. package/client/modeller/angle-dial.ts +70 -0
  2. package/client/modeller/figure-settings.ts +328 -0
  3. package/client/modeller/figure-v3-capability.ts +137 -0
  4. package/client/modeller/figure-v3-clips.ts +253 -0
  5. package/client/modeller/figure-v3-controls.ts +212 -0
  6. package/client/modeller/figure-v3-links.ts +61 -81
  7. package/client/modeller/figure-v3-material.ts +108 -35
  8. package/client/modeller/figure-v3-parts.ts +96 -3
  9. package/client/modeller/figure-v3-preview.ts +326 -0
  10. package/client/modeller/figure-v3-properties.ts +29 -57
  11. package/client/modeller/figure-v3-verdict.ts +598 -60
  12. package/client/modeller/figure-view.ts +152 -0
  13. package/client/modeller/side-panel-styles.ts +326 -0
  14. package/client/modeller/v3-canvas.ts +221 -263
  15. package/client/modeller/v3-clips.ts +89 -0
  16. package/client/modeller/v3-controls.ts +54 -0
  17. package/client/modeller/v3-editor.ts +531 -223
  18. package/client/modeller/v3-fields.ts +62 -0
  19. package/client/modeller/v3-help.ts +41 -0
  20. package/client/modeller/v3-keys.ts +34 -0
  21. package/client/modeller/v3-links.ts +93 -9
  22. package/client/modeller/v3-live.ts +79 -0
  23. package/client/modeller/v3-maturity.ts +415 -0
  24. package/client/modeller/v3-palette.ts +45 -0
  25. package/client/modeller/v3-preview-model.ts +54 -0
  26. package/client/modeller/v3-stage-model.ts +159 -0
  27. package/client/pages/figure-list-page.ts +4 -4
  28. package/client/pages/figure-v3-modeller-page.ts +66 -134
  29. package/dist-client/modeller/angle-dial.d.ts +32 -0
  30. package/dist-client/modeller/angle-dial.js +41 -0
  31. package/dist-client/modeller/angle-dial.js.map +1 -0
  32. package/dist-client/modeller/figure-settings.d.ts +39 -0
  33. package/dist-client/modeller/figure-settings.js +317 -0
  34. package/dist-client/modeller/figure-settings.js.map +1 -0
  35. package/dist-client/modeller/figure-v3-capability.d.ts +22 -0
  36. package/dist-client/modeller/figure-v3-capability.js +141 -0
  37. package/dist-client/modeller/figure-v3-capability.js.map +1 -0
  38. package/dist-client/modeller/figure-v3-clips.d.ts +31 -0
  39. package/dist-client/modeller/figure-v3-clips.js +268 -0
  40. package/dist-client/modeller/figure-v3-clips.js.map +1 -0
  41. package/dist-client/modeller/figure-v3-controls.d.ts +36 -0
  42. package/dist-client/modeller/figure-v3-controls.js +226 -0
  43. package/dist-client/modeller/figure-v3-controls.js.map +1 -0
  44. package/dist-client/modeller/figure-v3-links.d.ts +5 -2
  45. package/dist-client/modeller/figure-v3-links.js +64 -82
  46. package/dist-client/modeller/figure-v3-links.js.map +1 -1
  47. package/dist-client/modeller/figure-v3-material.d.ts +5 -2
  48. package/dist-client/modeller/figure-v3-material.js +109 -35
  49. package/dist-client/modeller/figure-v3-material.js.map +1 -1
  50. package/dist-client/modeller/figure-v3-parts.d.ts +10 -0
  51. package/dist-client/modeller/figure-v3-parts.js +88 -3
  52. package/dist-client/modeller/figure-v3-parts.js.map +1 -1
  53. package/dist-client/modeller/figure-v3-preview.d.ts +34 -0
  54. package/dist-client/modeller/figure-v3-preview.js +322 -0
  55. package/dist-client/modeller/figure-v3-preview.js.map +1 -0
  56. package/dist-client/modeller/figure-v3-properties.d.ts +2 -2
  57. package/dist-client/modeller/figure-v3-properties.js +29 -57
  58. package/dist-client/modeller/figure-v3-properties.js.map +1 -1
  59. package/dist-client/modeller/figure-v3-verdict.d.ts +31 -17
  60. package/dist-client/modeller/figure-v3-verdict.js +579 -59
  61. package/dist-client/modeller/figure-v3-verdict.js.map +1 -1
  62. package/dist-client/modeller/figure-view.d.ts +118 -0
  63. package/dist-client/modeller/figure-view.js +78 -0
  64. package/dist-client/modeller/figure-view.js.map +1 -0
  65. package/dist-client/modeller/side-panel-styles.d.ts +23 -0
  66. package/dist-client/modeller/side-panel-styles.js +326 -0
  67. package/dist-client/modeller/side-panel-styles.js.map +1 -0
  68. package/dist-client/modeller/v3-canvas.d.ts +29 -37
  69. package/dist-client/modeller/v3-canvas.js +188 -260
  70. package/dist-client/modeller/v3-canvas.js.map +1 -1
  71. package/dist-client/modeller/v3-clips.d.ts +39 -0
  72. package/dist-client/modeller/v3-clips.js +58 -0
  73. package/dist-client/modeller/v3-clips.js.map +1 -0
  74. package/dist-client/modeller/v3-controls.d.ts +28 -0
  75. package/dist-client/modeller/v3-controls.js +28 -0
  76. package/dist-client/modeller/v3-controls.js.map +1 -0
  77. package/dist-client/modeller/v3-editor.d.ts +58 -1
  78. package/dist-client/modeller/v3-editor.js +555 -218
  79. package/dist-client/modeller/v3-editor.js.map +1 -1
  80. package/dist-client/modeller/v3-fields.d.ts +30 -0
  81. package/dist-client/modeller/v3-fields.js +46 -0
  82. package/dist-client/modeller/v3-fields.js.map +1 -0
  83. package/dist-client/modeller/v3-help.d.ts +18 -0
  84. package/dist-client/modeller/v3-help.js +37 -0
  85. package/dist-client/modeller/v3-help.js.map +1 -0
  86. package/dist-client/modeller/v3-keys.d.ts +14 -0
  87. package/dist-client/modeller/v3-keys.js +23 -0
  88. package/dist-client/modeller/v3-keys.js.map +1 -0
  89. package/dist-client/modeller/v3-links.d.ts +30 -1
  90. package/dist-client/modeller/v3-links.js +94 -8
  91. package/dist-client/modeller/v3-links.js.map +1 -1
  92. package/dist-client/modeller/v3-live.d.ts +31 -0
  93. package/dist-client/modeller/v3-live.js +58 -0
  94. package/dist-client/modeller/v3-live.js.map +1 -0
  95. package/dist-client/modeller/v3-maturity.d.ts +120 -0
  96. package/dist-client/modeller/v3-maturity.js +317 -0
  97. package/dist-client/modeller/v3-maturity.js.map +1 -0
  98. package/dist-client/modeller/v3-palette.d.ts +7 -0
  99. package/dist-client/modeller/v3-palette.js +42 -0
  100. package/dist-client/modeller/v3-palette.js.map +1 -0
  101. package/dist-client/modeller/v3-preview-model.d.ts +32 -0
  102. package/dist-client/modeller/v3-preview-model.js +48 -0
  103. package/dist-client/modeller/v3-preview-model.js.map +1 -0
  104. package/dist-client/modeller/v3-stage-model.d.ts +31 -0
  105. package/dist-client/modeller/v3-stage-model.js +121 -0
  106. package/dist-client/modeller/v3-stage-model.js.map +1 -0
  107. package/dist-client/pages/figure-list-page.js +4 -4
  108. package/dist-client/pages/figure-list-page.js.map +1 -1
  109. package/dist-client/pages/figure-v3-modeller-page.d.ts +2 -6
  110. package/dist-client/pages/figure-v3-modeller-page.js +64 -136
  111. package/dist-client/pages/figure-v3-modeller-page.js.map +1 -1
  112. package/dist-client/tsconfig.chk.tsbuildinfo +1 -0
  113. package/dist-client/tsconfig.scratch-fm.tsbuildinfo +1 -1
  114. package/dist-client/tsconfig.tsbuildinfo +1 -1
  115. package/package.json +6 -6
  116. package/test/v3-clips.test.ts +70 -0
  117. package/test/v3-controls.test.ts +68 -0
  118. package/test/v3-fields.test.ts +62 -0
  119. package/test/v3-gizmo.test.ts +3 -5
  120. package/test/v3-keys.test.ts +37 -0
  121. package/test/v3-layout.test.ts +78 -0
  122. package/test/v3-links.test.ts +77 -6
  123. package/test/v3-live.test.ts +99 -0
  124. package/test/v3-material.test.ts +6 -0
  125. package/test/v3-maturity.test.ts +268 -0
  126. package/test/v3-parts-wiring.test.ts +3 -1
  127. package/test/v3-preview.test.ts +42 -0
  128. package/test/v3-properties.test.ts +4 -2
  129. package/test/v3-scene-canvas.test.ts +85 -0
  130. package/test/v3-stage-model.test.ts +25 -0
  131. package/test/v3-theme.test.ts +16 -25
  132. package/test/v3-verdict.test.ts +12 -6
  133. package/test/v3-view.test.ts +20 -0
  134. package/translations/en.json +84 -5
  135. package/translations/ja.json +86 -7
  136. package/translations/ko.json +84 -5
  137. package/translations/ms.json +86 -7
  138. package/translations/zh.json +86 -7
@@ -15,6 +15,8 @@
15
15
  "figure.button.duplicate-part": "duplicate",
16
16
  "figure.button.fit-base-to-parts": "fit to parts",
17
17
  "figure.button.fix-position": "fix here",
18
+ "figure.button.scale-position": "in proportion",
19
+ "figure.button.remeasure-range": "measure again",
18
20
  "figure.button.mirror-x": "mirror X",
19
21
  "figure.button.mirror-z": "mirror Z",
20
22
  "figure.button.move-part-down": "move down",
@@ -24,7 +26,6 @@
24
26
  "figure.button.pivot-set": "set",
25
27
  "figure.button.pose-as-default": "make this the default pose",
26
28
  "figure.button.preview-fix": "preview fix · {part} {axis} face: {from} → {to}",
27
- "figure.button.redo": "redo",
28
29
  "figure.button.release-figure": "release",
29
30
  "figure.button.restore-released-base": "restore the previous model width",
30
31
  "figure.button.keep-changed-appearance": "publish with the adjusted width",
@@ -43,6 +44,7 @@
43
44
  "figure.label.gizmo-scale": "size",
44
45
  "figure.label.gizmo-translate": "move",
45
46
  "figure.label.position-worked-out": "moves with the figure size",
47
+ "figure.label.position-in-proportion": "in proportion to the figure size",
46
48
  "figure.label.primitive-rounded-box": "rounded box",
47
49
  "figure.text.catalog-needs-a-save": "can be set once the figure is saved.",
48
50
  "figure.text.declared-space-declared": "declared from the parts.",
@@ -50,6 +52,8 @@
50
52
  "figure.text.fasten-would-loop": "that part is already fastened to this one, so it cannot be fastened the other way.",
51
53
  "figure.text.follow-would-loop": "that dimension already follows this part, so the two cannot follow each other.",
52
54
  "figure.text.links-need-a-box": "size following works on box-shaped parts, fastening on boxes and cylinders.",
55
+ "figure.text.scale-position-explained": "keeps this place as a share of the figure size — at twice the size it is twice as far.",
56
+ "figure.text.instance-range-can-widen": "measured again after the parts changed: {ranges} mm.",
53
57
  "figure.text.mounting-face-needs-space": "declare the space first to choose one.",
54
58
  "figure.text.part-is-referenced": "'{part}' cannot be deleted: another part is fastened to it or follows its size. Undo that link first.",
55
59
  "figure.text.part-name-invalid": "'{name}' cannot be a part name. Start with a letter and use letters, digits, - and _.",
@@ -58,7 +62,6 @@
58
62
  "figure.text.recommended-fix-explained": "{n} changes rechecked against every resize case. They apply to this draft only; review and save when ready.",
59
63
  "figure.text.show-affected-parts": "show affected parts",
60
64
  "figure.button.to-floor": "to floor",
61
- "figure.button.undo": "undo",
62
65
  "figure.label.accepts": "accepts",
63
66
  "figure.label.anchor": "anchored face",
64
67
  "figure.label.anchor-advanced": "advanced proportional sizing",
@@ -110,11 +113,12 @@
110
113
  "figure.label.axis-scale-short": "scale",
111
114
  "figure.label.axis-width": "width",
112
115
  "figure.label.base-box": "base box (mm)",
113
- "figure.label.budget-groups": "material groups",
116
+ "figure.label.budget-groups": "groups (draw calls)",
114
117
  "figure.label.budget-independent": "independently moved parts",
115
118
  "figure.label.budget-parts": "part count",
116
119
  "figure.label.budget-surface": "surfaces outside the palette",
117
120
  "figure.label.budget-transparent": "transparent materials",
121
+ "figure.label.budget-triangles": "triangles",
118
122
  "figure.label.budgets": "budgets",
119
123
  "figure.label.by-axis": "maturity by item",
120
124
  "figure.label.candidate-review": "candidate review",
@@ -137,6 +141,8 @@
137
141
  "figure.label.detail-level": "detail level",
138
142
  "figure.label.distinct-materials": "distinct materials",
139
143
  "figure.label.distinct-shapes": "distinct shapes",
144
+ "figure.label.draw-calls": "draw calls",
145
+ "figure.label.vertex-buffers": "vertex buffers",
140
146
  "figure.label.draft": "draft",
141
147
  "figure.label.emissive": "emissive",
142
148
  "figure.label.emissive-color": "lit color",
@@ -253,6 +259,7 @@
253
259
  "figure.label.repeat-count": "count",
254
260
  "figure.label.repeat-pitch": "pitch",
255
261
  "figure.label.reuse-trend": "reuse trend",
262
+ "figure.label.instance-count": "instance count",
256
263
  "figure.label.role-in-capability": "role in the capability",
257
264
  "figure.label.role-port-in": "inbound port",
258
265
  "figure.label.role-port-out": "outbound port",
@@ -308,6 +315,12 @@
308
315
  "figure.text.bound-by-triangles": "triangles reach the limit first ({per} per instance, {budget} per drawing).",
309
316
  "figure.text.budget-measured-on": "Measured on {gpu}, {on}. A figure standing still costs nothing — only what is on screen and redrawn counts.",
310
317
  "figure.text.budget-not-measured-yet": "this target has not been measured yet.",
318
+ "figure.text.budgets-not-in-v3": "off-palette surfaces and the part-count limit are not in the V3 format, so they are not shown.",
319
+ "figure.text.trend-chart-title": "drawing cost by instance count",
320
+ "figure.text.trend-chart-lead": "flat lines stay the same as instances grow. instances of the same size share them.",
321
+ "figure.text.trend-at-count": "at {n}",
322
+ "figure.text.trend-stays": "unchanged",
323
+ "figure.text.trend-flat-lines-overlap": "the flat lines overlap at {value}.",
311
324
  "figure.text.cannot-release-now": "cannot be released yet",
312
325
  "figure.text.fit-needs-parts": "there are no parts to fit to — add a shape first.",
313
326
  "figure.text.nothing-blocks-release": "nothing in the figure as it stands blocks releasing it.",
@@ -362,8 +375,12 @@
362
375
  "figure.text.floor-explained": "overlaps the coordinate ground, so it is usually off",
363
376
  "figure.text.follow-camera-explained": "turn off to fix the shadow direction",
364
377
  "figure.text.grade-decided-by": "what decided the grade",
365
- "figure.text.grade-explained": "the grade is set by the usage of the item closest to its limit.",
378
+ "figure.text.grade-explained": "the grade is the headroom against placing {target} of this figure on one screen. the item closest to its limit decides it.",
366
379
  "figure.text.grade-scale-lead": "grade scale (limit used)",
380
+ "figure.text.grade-target": "target: {target} on one screen — up to {groups} groups · {triangles} triangles each",
381
+ "figure.text.parts-budget": "{triangles} triangles · {groups} groups · {instances} on one screen",
382
+ "figure.text.parts-budget-over": "over the {budget} limit — {used} / {limit}",
383
+ "figure.text.parts-budget-open": "open maturity",
367
384
  "figure.text.headroom-percent": "{percent}% headroom",
368
385
  "figure.text.hemisphere-light-explained": "even light from sky and ground. it brightens shaded faces.",
369
386
  "figure.text.hide-all-parts": "hide all",
@@ -387,6 +404,7 @@
387
404
  "figure.text.keys-must-rise": "each key must come after the one before it.",
388
405
  "figure.text.limit-comes-from-level": "the detail level sets this limit.",
389
406
  "figure.text.maturity-blocked-no-binding": "state display is not measured yet.",
407
+ "figure.text.maturity-blocked-no-detail-level": "the V3 format has no detail level. the budgets and placement scale above take its place.",
390
408
  "figure.text.maturity-blocked-no-parts": "nothing to measure — there are no parts.",
391
409
  "figure.text.maturity-consistency-because": "checks texture use, recommended segment counts and the number of materials.",
392
410
  "figure.text.maturity-consistency-clean": "no issues",
@@ -501,6 +519,8 @@
501
519
  "figure.text.follows-explained": "What this side grows with. Stretch the figure on a board and this follows.",
502
520
  "figure.label.follows-nothing": "fixed",
503
521
  "figure.label.follows-instance": "instance size",
522
+ "figure.label.follows-instance-share": "in proportion to size",
523
+ "figure.label.instance-range": "sizes it can be placed at",
504
524
  "figure.label.follows-part": "another part",
505
525
  "figure.label.times": "times",
506
526
  "figure.label.plus": "plus (mm)",
@@ -579,5 +599,64 @@
579
599
  "figure.label.place-accepts": "Takes",
580
600
  "figure.label.place-capacity": "How many",
581
601
  "figure.text.place-accepts-needed": "Name at least one type it takes, separated by commas.",
582
- "figure.button.add-place": "Add place"
602
+ "figure.button.add-place": "Add place",
603
+ "figure.label.controls": "Controls",
604
+ "figure.text.controls-explained": "A board or a connection sets these values to pose the figure. Move a slider to try one.",
605
+ "figure.text.no-controls": "No controls yet. Adding a motion to a part makes one.",
606
+ "figure.button.keep-pose": "Keep this pose as the default",
607
+ "figure.label.control-name": "Name",
608
+ "figure.text.control-starts-at": "Starts at {value} {unit} when placed on a board.",
609
+ "figure.label.control-sweep": "Full travel time (s)",
610
+ "figure.button.whole-figure": "Whole figure",
611
+ "figure.label.places-on-part": "Places on {part}",
612
+ "figure.text.choose-a-part-to-move": "Choose a part to set how it moves.",
613
+ "figure.text.loading-figure": "Loading",
614
+ "figure.text.no-places": "No places yet. Choose a part and add one here.",
615
+ "figure.text.opening-model": "Opening the model.",
616
+ "figure.text.saved": "Saved",
617
+ "figure.text.clips-explained": "Plays controls over time. Move the bar to see the pose at a moment; make a pose with the control sliders, then add a key at that moment.",
618
+ "figure.label.clip-duration": "Length (s)",
619
+ "figure.label.clip-time": "Clip time",
620
+ "figure.label.clip-loop": "After the end",
621
+ "figure.label.clip-loop-wrap": "Repeat",
622
+ "figure.label.clip-loop-hold": "Hold the last value",
623
+ "figure.button.remove-track": "Stop playing this control",
624
+ "figure.button.remove-key": "Remove key",
625
+ "figure.button.add-key-here": "Add a key at {seconds} s ({value})",
626
+ "figure.label.add-track": "Play a control",
627
+ "figure.label.clip": "Clip",
628
+ "figure.label.new-clip": "New clip",
629
+ "figure.button.add-track": "Add",
630
+ "figure.text.add-a-shape-to-start": "Add a shape to start modelling.",
631
+ "figure.label.primitive-frustum": "Cone",
632
+ "figure.label.primitive-plate": "Plate",
633
+ "figure.label.field-width": "Width",
634
+ "figure.label.field-height": "Height",
635
+ "figure.label.field-depth": "Depth",
636
+ "figure.label.field-radius": "Radius",
637
+ "figure.label.field-length": "Length",
638
+ "figure.label.field-round": "Corner radius",
639
+ "figure.label.field-left": "Left",
640
+ "figure.label.field-right": "Right",
641
+ "figure.label.field-bottom": "Bottom",
642
+ "figure.label.field-top": "Top",
643
+ "figure.label.field-openingLeft": "Opening left",
644
+ "figure.label.field-openingRight": "Opening right",
645
+ "figure.label.field-openingTop": "Opening top",
646
+ "figure.label.field-radiusX": "Radius X",
647
+ "figure.label.field-radiusY": "Radius Y",
648
+ "figure.label.field-radiusZ": "Radius Z",
649
+ "figure.label.field-radiusTop": "Top radius",
650
+ "figure.label.field-radiusBottom": "Bottom radius",
651
+ "figure.label.group-position": "Position",
652
+ "figure.label.group-rotation": "Rotation (°)",
653
+ "figure.label.group-size": "Size",
654
+ "figure.label.group-placement-size": "Position and size",
655
+ "figure.label.group-shape": "Shape",
656
+ "figure.label.group-figure-size": "Figure size",
657
+ "figure.label.group-part": "Part",
658
+ "figure.label.group-figure": "Figure",
659
+ "figure.label.group-standing": "Where it stands",
660
+ "figure.label.group-catalog": "Catalogue",
661
+ "figure.button.control-settings": "Name, range and time"
583
662
  }
@@ -15,6 +15,8 @@
15
15
  "figure.button.duplicate-part": "duplicate",
16
16
  "figure.button.fit-base-to-parts": "部品に合わせる",
17
17
  "figure.button.fix-position": "ここに固定",
18
+ "figure.button.scale-position": "サイズに比例",
19
+ "figure.button.remeasure-range": "測り直す",
18
20
  "figure.button.mirror-x": "mirror X",
19
21
  "figure.button.mirror-z": "mirror Z",
20
22
  "figure.button.move-part-down": "move down",
@@ -24,7 +26,6 @@
24
26
  "figure.button.pivot-set": "設定",
25
27
  "figure.button.pose-as-default": "この姿勢を既定に",
26
28
  "figure.button.preview-fix": "修正案をプレビュー · {part} {axis} 固定面: {from} → {to}",
27
- "figure.button.redo": "やり直す",
28
29
  "figure.button.release-figure": "公開する",
29
30
  "figure.button.remove": "削除",
30
31
  "figure.button.remove-part": "delete",
@@ -41,6 +42,7 @@
41
42
  "figure.label.gizmo-scale": "サイズ",
42
43
  "figure.label.gizmo-translate": "移動",
43
44
  "figure.label.position-worked-out": "図形のサイズに合わせて動く",
45
+ "figure.label.position-in-proportion": "図形サイズに比例",
44
46
  "figure.label.primitive-rounded-box": "角丸ボックス",
45
47
  "figure.text.catalog-needs-a-save": "保存した後に設定できます。",
46
48
  "figure.text.declared-space-declared": "部品から宣言しました。",
@@ -48,6 +50,8 @@
48
50
  "figure.text.fasten-would-loop": "その部品はすでにこの部品に取り付けられているため、逆向きに取り付けられません。",
49
51
  "figure.text.follow-would-loop": "その寸法はすでにこの部品に追従しているため、互いに追従させられません。",
50
52
  "figure.text.links-need-a-box": "サイズ追従は箱形、取り付けは箱形と円柱の部品で使えます。",
53
+ "figure.text.scale-position-explained": "今の位置を図形サイズの割合として保ちます。2 倍のサイズなら 2 倍の距離に置かれます。",
54
+ "figure.text.instance-range-can-widen": "部品が変わったので測り直すと {ranges} mm です。",
51
55
  "figure.text.mounting-face-needs-space": "先に空間を宣言すると選べます。",
52
56
  "figure.text.part-is-referenced": "'{part}' には他の部品が取り付けられているか、そのサイズに従っているため削除できません。先にその連結を外してください。",
53
57
  "figure.text.part-name-invalid": "'{name}' は部品名に使えません。英字で始め、英字・数字・-・_ のみ使えます。",
@@ -56,7 +60,6 @@
56
60
  "figure.text.recommended-fix-explained": "すべてのサイズ変更ケースを再検査した {n} 件の修正です。下書きだけに適用され、保存前に確認できます。",
57
61
  "figure.text.show-affected-parts": "影響する部品を見る",
58
62
  "figure.button.to-floor": "to floor",
59
- "figure.button.undo": "元に戻す",
60
63
  "figure.label.accepts": "受け入れるもの",
61
64
  "figure.label.anchor": "固定する面",
62
65
  "figure.label.anchor-advanced": "advanced proportional sizing",
@@ -108,11 +111,12 @@
108
111
  "figure.label.axis-scale-short": "scale",
109
112
  "figure.label.axis-width": "width",
110
113
  "figure.label.base-box": "基準ボックス (mm)",
111
- "figure.label.budget-groups": "material groups",
114
+ "figure.label.budget-groups": "グループ(draw call)",
112
115
  "figure.label.budget-independent": "個別に動く部品",
113
116
  "figure.label.budget-parts": "part count",
114
117
  "figure.label.budget-surface": "surfaces outside the palette",
115
118
  "figure.label.budget-transparent": "transparent materials",
119
+ "figure.label.budget-triangles": "三角形",
116
120
  "figure.label.budgets": "budgets",
117
121
  "figure.label.by-axis": "項目別の成熟度",
118
122
  "figure.label.candidate-review": "candidate review",
@@ -135,6 +139,8 @@
135
139
  "figure.label.detail-level": "detail level",
136
140
  "figure.label.distinct-materials": "distinct materials",
137
141
  "figure.label.distinct-shapes": "distinct shapes",
142
+ "figure.label.draw-calls": "draw call",
143
+ "figure.label.vertex-buffers": "頂点バッファ",
138
144
  "figure.label.draft": "下書き",
139
145
  "figure.label.emissive": "emissive",
140
146
  "figure.label.emissive-color": "lit color",
@@ -251,6 +257,7 @@
251
257
  "figure.label.repeat-count": "個数",
252
258
  "figure.label.repeat-pitch": "pitch",
253
259
  "figure.label.reuse-trend": "reuse trend",
260
+ "figure.label.instance-count": "インスタンス数",
254
261
  "figure.label.role-in-capability": "能力での役割",
255
262
  "figure.label.role-port-in": "入力ポート",
256
263
  "figure.label.role-port-out": "出力ポート",
@@ -287,7 +294,7 @@
287
294
  "figure.label.triangles": "triangles",
288
295
  "figure.label.unit-none": "単位なし",
289
296
  "figure.label.unit-type-it": "直接入力…",
290
- "figure.label.weight": "weight",
297
+ "figure.label.weight": "描画コスト",
291
298
  "figure.label.what-this-does": "この Figure の役割",
292
299
  "figure.text.accepts-anything": "空欄なら何でも可",
293
300
  "figure.text.accepts-explained": "このスロットに置けるタイプです。カンマで区切り、空欄なら制限はありません。",
@@ -306,6 +313,12 @@
306
313
  "figure.text.bound-by-triangles": "三角形が先に上限に達します (1 個あたり {per}、図面あたり {budget})。",
307
314
  "figure.text.budget-measured-on": "{gpu} で {on} に測定した値です。静止している図形は負荷になりません — 画面に見えて再描画されるものだけを数えます。",
308
315
  "figure.text.budget-not-measured-yet": "this target has not been measured yet.",
316
+ "figure.text.budgets-not-in-v3": "パレット外の表面と部品数の上限は V3 形式にない項目のため表示しません。",
317
+ "figure.text.trend-chart-title": "インスタンス数による描画コスト",
318
+ "figure.text.trend-chart-lead": "平らな線はインスタンスが増えても変わらない値です。同じサイズのインスタンスが共有します。",
319
+ "figure.text.trend-at-count": "{n}個のとき",
320
+ "figure.text.trend-stays": "変化なし",
321
+ "figure.text.trend-flat-lines-overlap": "平らな線が {value} で重なっています。",
309
322
  "figure.text.cannot-release-now": "今は公開できません",
310
323
  "figure.text.fit-needs-parts": "合わせる部品がありません。先に形状を追加してください。",
311
324
  "figure.text.nothing-blocks-release": "今の形のままなら公開を妨げるものはありません。",
@@ -360,8 +373,12 @@
360
373
  "figure.text.floor-explained": "座標の下地と重なるため、通常はオフにします",
361
374
  "figure.text.follow-camera-explained": "オフにすると影の向きが固定されます",
362
375
  "figure.text.grade-decided-by": "what decided the grade",
363
- "figure.text.grade-explained": "等級は、上限に最も近い 1 項目の使用率で決まります。",
376
+ "figure.text.grade-explained": "等級は、1 画面にこの図形を {target} 台置く目標に対する余裕です。上限に最も近い 1 項目で決まります。",
364
377
  "figure.text.grade-scale-lead": "grade scale (limit used)",
378
+ "figure.text.grade-target": "1 画面 {target} 台が目標 — 1 台あたりグループ {groups} · 三角形 {triangles} まで",
379
+ "figure.text.parts-budget": "三角形 {triangles} · グループ {groups} · 1 画面 {instances} 台",
380
+ "figure.text.parts-budget-over": "{budget}の上限を超えています — {used} / {limit}",
381
+ "figure.text.parts-budget-open": "成熟度を見る",
365
382
  "figure.text.headroom-percent": "{percent}% headroom",
366
383
  "figure.text.hemisphere-light-explained": "空と床から均一に照らす光です。陰になった面を明るくします。",
367
384
  "figure.text.hide-all-parts": "hide all",
@@ -385,6 +402,7 @@
385
402
  "figure.text.keys-must-rise": "時刻は前のキーより大きくする必要があります。",
386
403
  "figure.text.limit-comes-from-level": "the detail level sets this limit.",
387
404
  "figure.text.maturity-blocked-no-binding": "状態表現はまだ測定していません。",
405
+ "figure.text.maturity-blocked-no-detail-level": "V3 形式には詳細等級がありません。上の上限と配置規模で判断します。",
388
406
  "figure.text.maturity-blocked-no-parts": "nothing to measure — there are no parts.",
389
407
  "figure.text.maturity-consistency-because": "テクスチャの使用、推奨分割数の遵守、材質の種類数を確認します。",
390
408
  "figure.text.maturity-consistency-clean": "no issues",
@@ -448,7 +466,7 @@
448
466
  "figure.text.repeat-grows-with-instance": "インスタンスがこの軸に伸びると個数が増えます。間隔はそのままです。",
449
467
  "figure.text.repeat-keeps-count": "インスタンスが伸びても個数はそのままで、コピーが大きくなります。",
450
468
  "figure.text.repeat-pitch-explained": "中心から次の中心までの距離です。部品のサイズを変えても保たれます。",
451
- "figure.text.report-appears-when-you-add-a-part": "weight and score appear once the figure has a part.",
469
+ "figure.text.report-appears-when-you-add-a-part": "三角形数、draw call、1つの図面に置ける数を表示します。部品を作ると測定します。",
452
470
  "figure.text.reuse-score-explained": "how much headroom is left in the declared limits. the one closest to its cap sets the score.",
453
471
  "figure.text.revert-to-version-confirm": "バージョン {version} に戻します。編集中の内容がそのバージョンに置き換わります。続けますか?",
454
472
  "figure.text.role-none-means-drawn": "何も選ばなければ描くだけの部品です",
@@ -497,6 +515,8 @@
497
515
  "figure.text.follows-explained": "What this side grows with. Stretch the figure on a board and this follows.",
498
516
  "figure.label.follows-nothing": "fixed",
499
517
  "figure.label.follows-instance": "instance size",
518
+ "figure.label.follows-instance-share": "サイズに比例",
519
+ "figure.label.instance-range": "置けるサイズ",
500
520
  "figure.label.follows-part": "another part",
501
521
  "figure.label.times": "times",
502
522
  "figure.label.plus": "plus (mm)",
@@ -579,5 +599,64 @@
579
599
  "figure.label.place-accepts": "受け取る種類",
580
600
  "figure.label.place-capacity": "最大個数",
581
601
  "figure.text.place-accepts-needed": "受け取る種類を一つ以上、カンマ区切りで入力してください。",
582
- "figure.button.add-place": "置き場所を追加"
602
+ "figure.button.add-place": "置き場所を追加",
603
+ "figure.label.controls": "操作値",
604
+ "figure.text.controls-explained": "ボードや連携がこの値を変えて図形の姿勢を動かします。スライダーで試せます。",
605
+ "figure.text.no-controls": "操作値はまだありません。部品の「動き」で動きを追加すると作られます。",
606
+ "figure.button.keep-pose": "今の姿勢を既定にする",
607
+ "figure.label.control-name": "名前",
608
+ "figure.text.control-starts-at": "ボードに置くと {value} {unit} から始まります。",
609
+ "figure.label.control-sweep": "端から端までの時間 (秒)",
610
+ "figure.button.whole-figure": "図形全体",
611
+ "figure.label.places-on-part": "{part} の置き場所",
612
+ "figure.text.choose-a-part-to-move": "部品を選ぶと、その動きを設定できます。",
613
+ "figure.text.loading-figure": "読み込み中",
614
+ "figure.text.no-places": "置き場所はまだありません。部品を選んでここで追加します。",
615
+ "figure.text.opening-model": "モデルを開いています。",
616
+ "figure.text.saved": "保存済み",
617
+ "figure.text.clips-explained": "操作値を時間に沿って動かします。バーを動かすとその瞬間の姿勢を表示し、操作値スライダーで姿勢を作ってからその瞬間にキーを追加します。",
618
+ "figure.label.clip-duration": "長さ (秒)",
619
+ "figure.label.clip-time": "クリップの時刻",
620
+ "figure.label.clip-loop": "終了後",
621
+ "figure.label.clip-loop-wrap": "最初から繰り返す",
622
+ "figure.label.clip-loop-hold": "最後の値を保つ",
623
+ "figure.button.remove-track": "この操作値の再生を削除",
624
+ "figure.button.remove-key": "キーを削除",
625
+ "figure.button.add-key-here": "{seconds} 秒にキーを追加 ({value})",
626
+ "figure.label.add-track": "操作値の再生を追加",
627
+ "figure.label.clip": "クリップ",
628
+ "figure.label.new-clip": "新しいクリップ",
629
+ "figure.button.add-track": "追加",
630
+ "figure.text.add-a-shape-to-start": "図形を追加してモデリングを始めましょう。",
631
+ "figure.label.primitive-frustum": "円錐",
632
+ "figure.label.primitive-plate": "板",
633
+ "figure.label.field-width": "幅",
634
+ "figure.label.field-height": "高さ",
635
+ "figure.label.field-depth": "奥行き",
636
+ "figure.label.field-radius": "半径",
637
+ "figure.label.field-length": "長さ",
638
+ "figure.label.field-round": "角の半径",
639
+ "figure.label.field-left": "左",
640
+ "figure.label.field-right": "右",
641
+ "figure.label.field-bottom": "下面",
642
+ "figure.label.field-top": "上面",
643
+ "figure.label.field-openingLeft": "開口部 左",
644
+ "figure.label.field-openingRight": "開口部 右",
645
+ "figure.label.field-openingTop": "開口部 上",
646
+ "figure.label.field-radiusX": "半径 X",
647
+ "figure.label.field-radiusY": "半径 Y",
648
+ "figure.label.field-radiusZ": "半径 Z",
649
+ "figure.label.field-radiusTop": "上面の半径",
650
+ "figure.label.field-radiusBottom": "下面の半径",
651
+ "figure.label.group-position": "位置",
652
+ "figure.label.group-rotation": "回転 (°)",
653
+ "figure.label.group-size": "サイズ",
654
+ "figure.label.group-placement-size": "位置とサイズ",
655
+ "figure.label.group-shape": "形状の寸法",
656
+ "figure.label.group-figure-size": "図形のサイズ",
657
+ "figure.label.group-part": "部品",
658
+ "figure.label.group-figure": "図形",
659
+ "figure.label.group-standing": "置き方",
660
+ "figure.label.group-catalog": "一覧情報",
661
+ "figure.button.control-settings": "名前・範囲・時間"
583
662
  }
@@ -15,6 +15,8 @@
15
15
  "figure.button.duplicate-part": "복제",
16
16
  "figure.button.fit-base-to-parts": "부품에 맞추기",
17
17
  "figure.button.fix-position": "여기에 고정",
18
+ "figure.button.scale-position": "크기에 비례",
19
+ "figure.button.remeasure-range": "다시 재기",
18
20
  "figure.button.mirror-x": "X 대칭",
19
21
  "figure.button.mirror-z": "Z 대칭",
20
22
  "figure.button.move-part-down": "아래로",
@@ -24,7 +26,6 @@
24
26
  "figure.button.pivot-set": "적기",
25
27
  "figure.button.pose-as-default": "이 자세를 기본으로",
26
28
  "figure.button.preview-fix": "수정안 미리보기 · {part} {axis} 고정 면: {from} → {to}",
27
- "figure.button.redo": "다시 실행",
28
29
  "figure.button.release-figure": "발행하기",
29
30
  "figure.button.restore-released-base": "이전 모델 폭으로 되돌리기",
30
31
  "figure.button.keep-changed-appearance": "조정된 모델 폭으로 발행",
@@ -43,6 +44,7 @@
43
44
  "figure.label.gizmo-scale": "크기",
44
45
  "figure.label.gizmo-translate": "옮기기",
45
46
  "figure.label.position-worked-out": "도형 크기를 따라 움직임",
47
+ "figure.label.position-in-proportion": "도형 크기에 비례",
46
48
  "figure.label.primitive-rounded-box": "둥근 상자",
47
49
  "figure.text.catalog-needs-a-save": "저장한 뒤에 정할 수 있습니다.",
48
50
  "figure.text.declared-space-declared": "부품으로 선언했습니다.",
@@ -50,6 +52,8 @@
50
52
  "figure.text.fasten-would-loop": "그 부품은 이미 이 부품에 붙어 있어서 거꾸로 붙일 수 없습니다.",
51
53
  "figure.text.follow-would-loop": "그 치수는 이미 이 부품을 따르고 있어서 서로 따르게 할 수 없습니다.",
52
54
  "figure.text.links-need-a-box": "크기 따르기는 상자 모양, 붙이기는 상자·원기둥 부품에서 씁니다.",
55
+ "figure.text.scale-position-explained": "지금 자리를 도형 크기의 몫으로 둡니다. 두 배 크기면 두 배 거리에 놓입니다.",
56
+ "figure.text.instance-range-can-widen": "부품이 바뀌어 다시 재면 {ranges} mm 입니다.",
53
57
  "figure.text.mounting-face-needs-space": "공간을 먼저 선언해야 고를 수 있습니다.",
54
58
  "figure.text.part-is-referenced": "'{part}' 에 다른 부품이 붙어 있거나 그 크기를 따르고 있어 지울 수 없습니다. 그 연결을 먼저 푸세요.",
55
59
  "figure.text.part-name-invalid": "'{name}' 은 부품 이름으로 쓸 수 없습니다. 영문자로 시작하고 영문자·숫자·-·_ 만 씁니다.",
@@ -58,7 +62,6 @@
58
62
  "figure.text.recommended-fix-explained": "서버가 전체 크기 변경을 다시 검사한 {n}개 수정입니다. 초안에만 적용되며 저장 전 확인할 수 있습니다.",
59
63
  "figure.text.show-affected-parts": "영향 받는 부품 보기",
60
64
  "figure.button.to-floor": "바닥에",
61
- "figure.button.undo": "실행 취소",
62
65
  "figure.label.accepts": "받는 것",
63
66
  "figure.label.anchor": "고정할 면",
64
67
  "figure.label.anchor-advanced": "고급 비율 유지",
@@ -110,11 +113,12 @@
110
113
  "figure.label.axis-scale-short": "규모",
111
114
  "figure.label.axis-width": "가로",
112
115
  "figure.label.base-box": "기준 상자 (mm)",
113
- "figure.label.budget-groups": "재질 그룹",
116
+ "figure.label.budget-groups": "묶음(draw call)",
114
117
  "figure.label.budget-independent": "따로 움직이는 부품",
115
118
  "figure.label.budget-parts": "부품 수",
116
119
  "figure.label.budget-surface": "팔레트 외 표면",
117
120
  "figure.label.budget-transparent": "투명 재질",
121
+ "figure.label.budget-triangles": "삼각형",
118
122
  "figure.label.budgets": "한도",
119
123
  "figure.label.by-axis": "항목별 성숙도",
120
124
  "figure.label.candidate-review": "후보 검토 근거",
@@ -137,6 +141,8 @@
137
141
  "figure.label.detail-level": "디테일 등급",
138
142
  "figure.label.distinct-materials": "서로 다른 재질",
139
143
  "figure.label.distinct-shapes": "서로 다른 형상",
144
+ "figure.label.draw-calls": "draw call",
145
+ "figure.label.vertex-buffers": "정점 버퍼",
140
146
  "figure.label.draft": "초안",
141
147
  "figure.label.emissive": "자체발광",
142
148
  "figure.label.emissive-color": "켜진 색",
@@ -253,6 +259,7 @@
253
259
  "figure.label.repeat-count": "개수",
254
260
  "figure.label.repeat-pitch": "한 칸 (피치)",
255
261
  "figure.label.reuse-trend": "재사용 추이",
262
+ "figure.label.instance-count": "인스턴스 수",
256
263
  "figure.label.role-in-capability": "능력에서의 역할",
257
264
  "figure.label.role-port-in": "입력 포트",
258
265
  "figure.label.role-port-out": "출력 포트",
@@ -308,6 +315,12 @@
308
315
  "figure.text.bound-by-triangles": "삼각형이 먼저 한도에 도달합니다 (1개당 {per}, 도면당 {budget}).",
309
316
  "figure.text.budget-measured-on": "{gpu} 에서 {on} 에 잰 값입니다. 가만히 서 있는 도형은 값을 치르지 않습니다 — 화면에 보이고 다시 그려지는 것만 셉니다.",
310
317
  "figure.text.budget-not-measured-yet": "아직 실측 전 목표치입니다.",
318
+ "figure.text.budgets-not-in-v3": "팔레트 외 표면과 부품 수 한도는 V3 형식에 없는 항목이라 표시하지 않습니다.",
319
+ "figure.text.trend-chart-title": "인스턴스 수에 따른 그리는 비용",
320
+ "figure.text.trend-chart-lead": "평평한 선은 인스턴스가 늘어도 그대로인 값입니다. 같은 크기의 인스턴스가 공유합니다.",
321
+ "figure.text.trend-at-count": "{n}개일 때",
322
+ "figure.text.trend-stays": "그대로",
323
+ "figure.text.trend-flat-lines-overlap": "평평한 선이 {value} 에서 겹칩니다.",
311
324
  "figure.text.cannot-release-now": "지금은 발행할 수 없습니다",
312
325
  "figure.text.fit-needs-parts": "맞출 부품이 없습니다. 먼저 도형을 추가하세요.",
313
326
  "figure.text.nothing-blocks-release": "지금 모양 그대로면 발행을 막는 것이 없습니다.",
@@ -362,8 +375,12 @@
362
375
  "figure.text.floor-explained": "좌표 바탕과 겹쳐 보통 끕니다",
363
376
  "figure.text.follow-camera-explained": "끄면 그림자 방향이 고정됩니다",
364
377
  "figure.text.grade-decided-by": "등급 결정에 영향을 준 항목",
365
- "figure.text.grade-explained": "등급은 한도에 가장 가까운 항목 하나의 사용률로 정합니다.",
378
+ "figure.text.grade-explained": "등급은 한 화면에 이 도형 {target} 대를 놓는 목표에 견준 여유입니다. 한도에 가장 가까운 항목 하나가 정합니다.",
366
379
  "figure.text.grade-scale-lead": "등급 눈금 (한도 사용률)",
380
+ "figure.text.grade-target": "한 화면 {target} 대 목표 — 한 대에 묶음 {groups} · 삼각형 {triangles} 까지",
381
+ "figure.text.parts-budget": "삼각형 {triangles} · 묶음 {groups} · 한 화면 {instances} 대",
382
+ "figure.text.parts-budget-over": "{budget} 한도를 넘었습니다 — {used} / {limit}",
383
+ "figure.text.parts-budget-open": "성숙도 보기",
367
384
  "figure.text.headroom-percent": "여유 {percent}%",
368
385
  "figure.text.hemisphere-light-explained": "하늘과 바닥에서 고르게 비추는 빛입니다. 그늘진 면을 밝힙니다.",
369
386
  "figure.text.hide-all-parts": "모두 감추기",
@@ -387,6 +404,7 @@
387
404
  "figure.text.keys-must-rise": "시각이 앞 키보다 커야 합니다.",
388
405
  "figure.text.limit-comes-from-level": "이 한도는 디테일 등급이 정합니다.",
389
406
  "figure.text.maturity-blocked-no-binding": "상태 표현은 아직 측정하지 않습니다.",
407
+ "figure.text.maturity-blocked-no-detail-level": "V3 형식에는 디테일 등급이 없습니다. 위의 한도와 배치 규모로 판단합니다.",
390
408
  "figure.text.maturity-blocked-no-parts": "부품이 없어 측정할 것이 없습니다.",
391
409
  "figure.text.maturity-consistency-because": "텍스처 사용 여부, 권장 분할 수 준수, 재질 종류 수를 확인합니다.",
392
410
  "figure.text.maturity-consistency-clean": "문제 없음",
@@ -501,6 +519,8 @@
501
519
  "figure.text.follows-explained": "이 변이 무엇을 따라 늘어나는지 정합니다. 보드에서 도형을 늘리면 그것을 따라갑니다.",
502
520
  "figure.label.follows-nothing": "고정",
503
521
  "figure.label.follows-instance": "인스턴스 크기",
522
+ "figure.label.follows-instance-share": "크기에 비례",
523
+ "figure.label.instance-range": "놓일 수 있는 크기",
504
524
  "figure.label.follows-part": "다른 부품",
505
525
  "figure.label.times": "배",
506
526
  "figure.label.plus": "더하기 (mm)",
@@ -579,5 +599,64 @@
579
599
  "figure.label.place-accepts": "받는 종류",
580
600
  "figure.label.place-capacity": "몇 개까지",
581
601
  "figure.text.place-accepts-needed": "받는 종류를 하나 이상 적어야 자리를 만들 수 있습니다. 쉼표로 나눕니다.",
582
- "figure.button.add-place": "자리 추가"
602
+ "figure.button.add-place": "자리 추가",
603
+ "figure.label.controls": "조작값",
604
+ "figure.text.controls-explained": "보드나 연결이 이 값을 바꿔 도형의 자세를 움직입니다. 슬라이더로 움직여 볼 수 있습니다.",
605
+ "figure.text.no-controls": "조작값이 없습니다. 부품의 「움직임」에서 움직임을 추가하면 생깁니다.",
606
+ "figure.button.keep-pose": "지금 자세를 기본으로",
607
+ "figure.label.control-name": "이름",
608
+ "figure.text.control-starts-at": "보드에 놓이면 {value} {unit} 에서 시작합니다.",
609
+ "figure.label.control-sweep": "끝까지 걸리는 시간 (초)",
610
+ "figure.button.whole-figure": "도형 전체",
611
+ "figure.label.places-on-part": "{part} 의 자리",
612
+ "figure.text.choose-a-part-to-move": "부품을 고르면 그 부품이 어떻게 움직이는지 정할 수 있습니다.",
613
+ "figure.text.loading-figure": "불러오는 중",
614
+ "figure.text.no-places": "아직 자리가 없습니다. 부품을 고르고 이 탭에서 추가합니다.",
615
+ "figure.text.opening-model": "모델을 여는 중입니다.",
616
+ "figure.text.saved": "저장됨",
617
+ "figure.text.clips-explained": "조작값을 시간에 따라 움직입니다. 막대를 옮기면 그 순간의 자세를 보여 주고, 조작값 슬라이더로 자세를 만든 뒤 그 순간에 키를 더합니다.",
618
+ "figure.label.clip-duration": "길이 (초)",
619
+ "figure.label.clip-time": "클립 시각",
620
+ "figure.label.clip-loop": "끝난 뒤",
621
+ "figure.label.clip-loop-wrap": "처음부터 반복",
622
+ "figure.label.clip-loop-hold": "마지막 값 유지",
623
+ "figure.button.remove-track": "이 조작값 재생 없애기",
624
+ "figure.button.remove-key": "키 없애기",
625
+ "figure.button.add-key-here": "{seconds}초에 키 추가 ({value})",
626
+ "figure.label.add-track": "조작값 재생 추가",
627
+ "figure.label.clip": "클립",
628
+ "figure.label.new-clip": "새 클립",
629
+ "figure.button.add-track": "재생 추가",
630
+ "figure.text.add-a-shape-to-start": "도형을 추가해 모델링을 시작하세요.",
631
+ "figure.label.primitive-frustum": "원뿔",
632
+ "figure.label.primitive-plate": "판",
633
+ "figure.label.field-width": "너비",
634
+ "figure.label.field-height": "높이",
635
+ "figure.label.field-depth": "깊이",
636
+ "figure.label.field-radius": "반지름",
637
+ "figure.label.field-length": "길이",
638
+ "figure.label.field-round": "모서리 반경",
639
+ "figure.label.field-left": "왼쪽",
640
+ "figure.label.field-right": "오른쪽",
641
+ "figure.label.field-bottom": "아랫면",
642
+ "figure.label.field-top": "윗면",
643
+ "figure.label.field-openingLeft": "개구부 왼쪽",
644
+ "figure.label.field-openingRight": "개구부 오른쪽",
645
+ "figure.label.field-openingTop": "개구부 윗면",
646
+ "figure.label.field-radiusX": "반지름 X",
647
+ "figure.label.field-radiusY": "반지름 Y",
648
+ "figure.label.field-radiusZ": "반지름 Z",
649
+ "figure.label.field-radiusTop": "윗면 반지름",
650
+ "figure.label.field-radiusBottom": "아랫면 반지름",
651
+ "figure.label.group-position": "위치",
652
+ "figure.label.group-rotation": "회전 (도)",
653
+ "figure.label.group-size": "크기",
654
+ "figure.label.group-placement-size": "위치와 크기",
655
+ "figure.label.group-shape": "형상 치수",
656
+ "figure.label.group-figure-size": "도형 크기",
657
+ "figure.label.group-part": "부품",
658
+ "figure.label.group-figure": "도형",
659
+ "figure.label.group-standing": "놓이는 자리",
660
+ "figure.label.group-catalog": "목록 정보",
661
+ "figure.button.control-settings": "이름 · 범위 · 시간"
583
662
  }