@things-factory/figure-ui 10.1.168 → 10.1.170

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 (123) hide show
  1. package/client/figure-assistant.ts +10 -1
  2. package/client/modeller/affected-parts.ts +11 -0
  3. package/client/modeller/ai-proposal.ts +40 -9
  4. package/client/modeller/canvas.ts +15 -1
  5. package/client/modeller/editor-styles.ts +98 -6
  6. package/client/modeller/editor.ts +212 -53
  7. package/client/modeller/fasten-geometry.ts +19 -0
  8. package/client/modeller/figure-fasten-drawing.ts +4 -3
  9. package/client/modeller/figure-links.ts +80 -37
  10. package/client/modeller/figure-material-panel.ts +20 -1
  11. package/client/modeller/figure-preview.ts +117 -8
  12. package/client/modeller/figure-properties.ts +1 -2
  13. package/client/modeller/figure-section-panel.ts +5 -0
  14. package/client/modeller/figure-verdict.ts +9 -2
  15. package/client/modeller/gate-findings.ts +12 -4
  16. package/client/modeller/group-menu.ts +57 -0
  17. package/client/modeller/links.ts +22 -1
  18. package/client/modeller/modeller-keys.ts +6 -0
  19. package/client/modeller/preview-size.ts +32 -0
  20. package/client/modeller/product-session.ts +23 -9
  21. package/client/modeller/refusals.ts +14 -0
  22. package/client/modeller/stage-model.ts +11 -0
  23. package/client/pages/figure-modeller-page.ts +15 -6
  24. package/dist-client/figure-assistant.d.ts +6 -0
  25. package/dist-client/figure-assistant.js +9 -1
  26. package/dist-client/figure-assistant.js.map +1 -1
  27. package/dist-client/modeller/affected-parts.d.ts +6 -0
  28. package/dist-client/modeller/affected-parts.js +12 -0
  29. package/dist-client/modeller/affected-parts.js.map +1 -0
  30. package/dist-client/modeller/ai-proposal.d.ts +15 -5
  31. package/dist-client/modeller/ai-proposal.js +39 -10
  32. package/dist-client/modeller/ai-proposal.js.map +1 -1
  33. package/dist-client/modeller/canvas.d.ts +3 -0
  34. package/dist-client/modeller/canvas.js +12 -1
  35. package/dist-client/modeller/canvas.js.map +1 -1
  36. package/dist-client/modeller/editor-styles.js +98 -6
  37. package/dist-client/modeller/editor-styles.js.map +1 -1
  38. package/dist-client/modeller/editor.d.ts +42 -1
  39. package/dist-client/modeller/editor.js +220 -51
  40. package/dist-client/modeller/editor.js.map +1 -1
  41. package/dist-client/modeller/fasten-geometry.d.ts +27 -0
  42. package/dist-client/modeller/fasten-geometry.js +14 -0
  43. package/dist-client/modeller/fasten-geometry.js.map +1 -1
  44. package/dist-client/modeller/figure-fasten-drawing.js +4 -3
  45. package/dist-client/modeller/figure-fasten-drawing.js.map +1 -1
  46. package/dist-client/modeller/figure-links.d.ts +3 -1
  47. package/dist-client/modeller/figure-links.js +84 -38
  48. package/dist-client/modeller/figure-links.js.map +1 -1
  49. package/dist-client/modeller/figure-material-panel.d.ts +8 -1
  50. package/dist-client/modeller/figure-material-panel.js +24 -1
  51. package/dist-client/modeller/figure-material-panel.js.map +1 -1
  52. package/dist-client/modeller/figure-preview.d.ts +12 -0
  53. package/dist-client/modeller/figure-preview.js +116 -5
  54. package/dist-client/modeller/figure-preview.js.map +1 -1
  55. package/dist-client/modeller/figure-properties.js +1 -2
  56. package/dist-client/modeller/figure-properties.js.map +1 -1
  57. package/dist-client/modeller/figure-section-panel.d.ts +1 -1
  58. package/dist-client/modeller/figure-section-panel.js +5 -0
  59. package/dist-client/modeller/figure-section-panel.js.map +1 -1
  60. package/dist-client/modeller/figure-verdict.d.ts +1 -0
  61. package/dist-client/modeller/figure-verdict.js +8 -2
  62. package/dist-client/modeller/figure-verdict.js.map +1 -1
  63. package/dist-client/modeller/gate-findings.d.ts +3 -1
  64. package/dist-client/modeller/gate-findings.js +8 -4
  65. package/dist-client/modeller/gate-findings.js.map +1 -1
  66. package/dist-client/modeller/group-menu.d.ts +18 -0
  67. package/dist-client/modeller/group-menu.js +52 -0
  68. package/dist-client/modeller/group-menu.js.map +1 -0
  69. package/dist-client/modeller/links.d.ts +5 -0
  70. package/dist-client/modeller/links.js +21 -1
  71. package/dist-client/modeller/links.js.map +1 -1
  72. package/dist-client/modeller/modeller-keys.js +7 -0
  73. package/dist-client/modeller/modeller-keys.js.map +1 -1
  74. package/dist-client/modeller/preview-size.d.ts +23 -0
  75. package/dist-client/modeller/preview-size.js +32 -0
  76. package/dist-client/modeller/preview-size.js.map +1 -0
  77. package/dist-client/modeller/product-session.d.ts +0 -1
  78. package/dist-client/modeller/product-session.js +22 -9
  79. package/dist-client/modeller/product-session.js.map +1 -1
  80. package/dist-client/modeller/refusals.d.ts +1 -5
  81. package/dist-client/modeller/refusals.js +14 -1
  82. package/dist-client/modeller/refusals.js.map +1 -1
  83. package/dist-client/modeller/stage-model.d.ts +11 -0
  84. package/dist-client/modeller/stage-model.js +11 -0
  85. package/dist-client/modeller/stage-model.js.map +1 -1
  86. package/dist-client/pages/figure-modeller-page.d.ts +3 -0
  87. package/dist-client/pages/figure-modeller-page.js +18 -5
  88. package/dist-client/pages/figure-modeller-page.js.map +1 -1
  89. package/dist-client/route.d.ts +1 -1
  90. package/dist-client/tsconfig.tsbuildinfo +1 -1
  91. package/package.json +8 -8
  92. package/test/ai-proposal.test.ts +43 -4
  93. package/test/browser/editing-page.js +3 -1
  94. package/test/browser/editing.check.mjs +2 -1
  95. package/test/browser/links-page.js +1 -0
  96. package/test/browser/links.check.mjs +20 -5
  97. package/test/browser/modeller.check.mjs +6 -0
  98. package/test/browser/more-open.js +11 -0
  99. package/test/browser/parts.check.mjs +11 -1
  100. package/test/browser/places-mesh.check.mjs +9 -3
  101. package/test/browser/product-page.check.mjs +9 -4
  102. package/test/browser/props.check.mjs +224 -0
  103. package/test/browser/screen-page.js +17 -0
  104. package/test/browser/screen.check.mjs +171 -29
  105. package/test/browser/section-page.js +1 -0
  106. package/test/browser/section.check.mjs +6 -0
  107. package/test/command-preview.test.ts +2 -2
  108. package/test/fasten-geometry.test.ts +15 -0
  109. package/test/fields.test.ts +4 -2
  110. package/test/figure-assistant-surface.test.ts +38 -0
  111. package/test/first-minute.test.ts +15 -2
  112. package/test/layout.test.ts +1 -1
  113. package/test/preview-size.test.ts +33 -0
  114. package/test/refusals.test.ts +1 -1
  115. package/test/resize-with-placement.test.ts +1 -1
  116. package/test/stage-model.test.ts +11 -1
  117. package/test/verdict.test.ts +7 -0
  118. package/translations/en.json +43 -27
  119. package/translations/es.json +24 -8
  120. package/translations/ja.json +25 -9
  121. package/translations/ko.json +56 -40
  122. package/translations/ms.json +25 -9
  123. package/translations/zh.json +25 -9
@@ -7,6 +7,7 @@
7
7
  "figure.button.cancel": "cancel",
8
8
  "figure.button.center-x": "to X centre",
9
9
  "figure.button.center-z": "to Z centre",
10
+ "figure.button.change-fastening": "Change",
10
11
  "figure.button.close": "close",
11
12
  "figure.button.delete-figure": "delete",
12
13
  "figure.button.discard": "discard",
@@ -16,6 +17,9 @@
16
17
  "figure.button.scale-position": "in proportion",
17
18
  "figure.button.remeasure-range": "measure again",
18
19
  "figure.button.scale-uniformly": "grow by one ratio",
20
+ "figure.label.group-menu": "More actions",
21
+ "figure.label.group-more": "More",
22
+ "figure.label.group-place": "Place",
19
23
  "figure.text.sizing-uniform-proposed": "this figure has joints. growing it by one ratio keeps the joints together at any size.",
20
24
  "figure.text.sizing-uniform-explained": "grows the whole figure by the geometric mean of the three sizes a board gives it. the feet stay on the floor; room left above the figure stays empty.",
21
25
  "figure.button.mirror-x": "across X",
@@ -31,8 +35,8 @@
31
35
  "figure.button.revert": "revert",
32
36
  "figure.button.save": "save",
33
37
  "figure.button.see-the-trend-chart": "see the trend chart",
34
- "figure.button.snap": "snap to grid",
35
- "figure.label.declared-space": "declared space",
38
+ "figure.button.snap": "align to grid",
39
+ "figure.label.declared-space": "space it takes",
36
40
  "figure.label.follows-expression": "set by an expression",
37
41
  "figure.label.gizmo-rotate": "turn",
38
42
  "figure.label.gizmo-scale": "size",
@@ -41,8 +45,8 @@
41
45
  "figure.label.position-in-proportion": "in proportion to the figure size",
42
46
  "figure.label.primitive-rounded-box": "rounded box",
43
47
  "figure.text.catalog-needs-a-save": "can be set once the figure is saved.",
44
- "figure.text.declared-space-declared": "declared from the parts.",
45
- "figure.text.declared-space-none": "not declared yet.",
48
+ "figure.text.declared-space-declared": "fitted to the parts",
49
+ "figure.text.declared-space-none": "not set",
46
50
  "figure.text.fasten-would-loop": "that part is already fastened to this one, so it cannot be fastened the other way.",
47
51
  "figure.text.follow-would-loop": "that dimension already follows this part, so the two cannot follow each other.",
48
52
  "figure.text.links-need-a-box": "size following works on box-shaped parts, fastening on boxes and cylinders.",
@@ -263,8 +267,8 @@
263
267
  "figure.label.shown-always": "always",
264
268
  "figure.label.shown-while": "while {control} is at least",
265
269
  "figure.label.shown-at-least": "at least",
266
- "figure.button.follow-size": "Match model size",
267
- "figure.text.size-declared-to-follow": "the figure size to follow was set from its parts: {x} × {y} × {z} mm.",
270
+ "figure.button.follow-size": "Fit to the figure size",
271
+ "figure.text.size-declared-to-follow": "the figure size was set from its parts: {x} × {y} × {z} mm.",
268
272
  "figure.label.recipes": "recipes",
269
273
  "figure.text.recipe-needs-a-part": "choose the part to put it on first.",
270
274
  "figure.button.insert-recipe": "put in",
@@ -326,7 +330,7 @@
326
330
  "figure.label.release": "release",
327
331
  "figure.label.release-verdict": "release check",
328
332
  "figure.label.released-versions": "released versions",
329
- "figure.label.repeat-axis": "axis it repeats along",
333
+ "figure.label.repeat-axis": "direction",
330
334
  "figure.label.repeat-count": "count",
331
335
  "figure.label.repeat-gap": "pitch (centre to centre)",
332
336
  "figure.label.repeat-pitch": "pitch (centre to centre)",
@@ -337,8 +341,8 @@
337
341
  "figure.label.scene-floor": "floor",
338
342
  "figure.label.scene-reference": "scene reference",
339
343
  "figure.label.scene-reference-floor": "floor",
340
- "figure.label.scene-reference-inverted": "inverted (ceiling)",
341
- "figure.label.scene-reference-space": "space",
344
+ "figure.label.scene-reference-inverted": "ceiling",
345
+ "figure.label.scene-reference-space": "centre",
342
346
  "figure.label.segments": "segments",
343
347
  "figure.label.shape": "shape",
344
348
  "figure.label.shape-detail": "shape detail",
@@ -412,8 +416,8 @@
412
416
  "figure.text.expand-properties-pane": "expand the property pane",
413
417
  "figure.text.figure-display-name": "display name",
414
418
  "figure.text.figure-name-example": "e.g. overhead hoist transport",
415
- "figure.text.figure-type-example": "e.g. OHT, AGV_LIFTER",
416
- "figure.text.figure-type-placeholder": "Figure type identifier (e.g. OHT)",
419
+ "figure.text.figure-type-example": "e.g. agv-lifter",
420
+ "figure.text.figure-type-placeholder": "e.g. agv-lifter",
417
421
  "figure.text.find-by-this-tag": "find by this tag",
418
422
  "figure.text.fits-n-instances": "up to {n}",
419
423
  "figure.text.floor-explained": "overlaps the coordinate ground, so it is usually off",
@@ -496,8 +500,8 @@
496
500
  "figure.text.thumbnail-not-made-yet": "no thumbnail yet",
497
501
  "figure.text.triangle-count": "{count} triangles",
498
502
  "figure.text.type-name-already-taken": "the type name {type} is already in use. pick another one.",
499
- "figure.text.type-name-cannot-change": "the type name cannot be changed after creation.",
500
- "figure.text.type-name-will-not-release": "this name cannot be released. use capitals, digits and single underscores, 3 to 32 characters (e.g. AGV_LIFTER).",
503
+ "figure.text.type-name-cannot-change": "the identifier cannot change once released.",
504
+ "figure.text.type-name-will-not-release": "this name cannot be released. start with a lower-case letter and use lower-case letters, digits and hyphens, 2 to 64 characters (e.g. agv-lifter).",
501
505
  "figure.text.unit-is-a-word-not-a-rule": "a display unit (e.g. mm, deg, %). it is not used in calculation.",
502
506
  "figure.text.unsaved-changes": "unsaved",
503
507
  "figure.text.version-number": "v{version}",
@@ -513,8 +517,8 @@
513
517
  "figure.label.follows": "Follows",
514
518
  "figure.text.follows-explained": "What this side grows with. Stretch the figure on a board and this follows.",
515
519
  "figure.label.follows-nothing": "fixed",
516
- "figure.label.follows-instance": "instance size",
517
- "figure.label.follows-instance-share": "in proportion to size",
520
+ "figure.label.follows-instance": "same as the figure {axis} size",
521
+ "figure.label.follows-instance-share": "in proportion to the figure {axis} size",
518
522
  "figure.label.follows-part": "another part",
519
523
  "figure.label.times": "times",
520
524
  "figure.label.plus": "plus (mm)",
@@ -588,7 +592,7 @@
588
592
  "figure.label.room-range": "over its whole motion",
589
593
  "figure.button.propose-room": "Compute bounds",
590
594
  "figure.button.confirm-room": "Declare these bounds",
591
- "figure.label.room-undeclared": "not declared yet",
595
+ "figure.label.room-undeclared": "not set",
592
596
  "figure.label.room-declared": "Declared now",
593
597
  "figure.label.mounting-face": "Mounting face",
594
598
  "figure.text.mounting-face-explained": "The face the figure is mounted on. A separate choice from the room it takes up.",
@@ -665,7 +669,7 @@
665
669
  "figure.label.group-size": "Size",
666
670
  "figure.label.group-placement-size": "Position and size",
667
671
  "figure.label.group-shape": "Shape",
668
- "figure.label.group-figure-size": "Figure size",
672
+ "figure.label.group-figure-size": "Size",
669
673
  "figure.label.group-part": "Part",
670
674
  "figure.label.group-figure": "Figure",
671
675
  "figure.label.group-standing": "Where it stands",
@@ -707,11 +711,12 @@
707
711
  "figure.text.row-ends-unknown": "What is left at the ends could not be read.",
708
712
  "figure.text.row-companions": "copied along: {parts}",
709
713
  "figure.label.twist": "twist (°)",
710
- "figure.text.instance-size-undeclared": "the figure has no size, so a board cannot resize it.",
711
- "figure.button.declare-instance-size": "declare the figure size",
714
+ "figure.text.instance-size-undeclared": "set a range and a drawing can resize it.",
715
+ "figure.button.declare-instance-size": "set the range it stretches over",
712
716
  "figure.text.proposal-applied": "applied {n} commands as one step.",
713
717
  "figure.text.proposal-saved-into": "Saved into: {names}",
714
718
  "figure.text.proposal-needs-modeller": "this proposal can be applied only while its figure is open in the modeller.",
719
+ "figure.text.proposal-empty": "this proposal has no commands, so nothing was applied. ask again.",
715
720
  "figure.text.proposal-new-figure-unsaved": "a new figure is being made, so the proposal was not applied. save or discard it, then run it again.",
716
721
  "figure.text.proposal-not-opened": "a new figure could not be opened in the modeller, so the proposal was not applied.",
717
722
  "figure.text.proposal-refused": "the modeller did not apply the proposal: {reason}",
@@ -754,6 +759,11 @@
754
759
  "figure.text.removal-bindings": "{places} went with it.",
755
760
  "figure.text.removal-mounting-face": "The mounting face is released.",
756
761
  "figure.text.edit-refused": "This edit cannot be made. ({code})",
762
+ "figure.text.session-not-open": "open the model first.",
763
+ "figure.text.session-saving": "wait for the save to finish, then edit.",
764
+ "figure.text.session-version-missing": "an AI edit needs the model version it was asked on.",
765
+ "figure.text.session-new-figure-touched": "this can be used only on a new model not yet edited.",
766
+ "figure.text.session-proposal-key": "the proposal's identifier is not valid.",
757
767
  "figure.text.edit-refused-node-limit": "The figure is too large to add more. It holds up to {max} nodes.",
758
768
  "figure.text.document-too-large": "The figure is {at} KiB, over the {max} KiB it can be saved at.",
759
769
  "figure.text.document-too-large-unmeasured": "The figure is over the {max} KiB it can be saved at.",
@@ -775,7 +785,7 @@
775
785
  "figure.label.resize-advanced": "Choose size response",
776
786
  "figure.text.resize-all-following": "This part changes with the model size.",
777
787
  "figure.text.resize-uniform-warning": "This equipment uses uniform scaling, which takes precedence over individual axis changes. Switching this mode is not yet available.",
778
- "figure.text.preview-setup": "Not resizing as expected? Choose a part to set which dimensions follow and where it stays attached. Preview controls do not change the saved model.",
788
+ "figure.text.preview-setup": "Not resizing as expected? Choose a part to set which dimensions follow and where it stays attached.",
779
789
  "figure.label.resize-part": "Part to configure",
780
790
  "figure.button.configure-size": "Configure this part’s resizing",
781
791
  "figure.text.resize-room-unchanged": "Size response applied. The declared space was not changed.",
@@ -910,7 +920,7 @@
910
920
  "figure.button.discard-and-continue": "Discard and continue",
911
921
  "figure.text.revert-needs-server-source": "The model on the server is not confirmed, so nothing was reverted. Open the model again.",
912
922
  "figure.text.revert-unconfirmed": "No answer came from the server, so the result is not known. Press again to check it with the same request.",
913
- "figure.label.figure-identifier": "Model identifier",
923
+ "figure.label.figure-identifier": "Identifier",
914
924
  "figure.text.identifier-suggested": "A suggested identifier. It can be changed until the figure is released, and not after.",
915
925
  "figure.text.release-state-released": "Released · v{version}",
916
926
  "figure.text.release-state-draft-over": "Draft · boards use v{version}",
@@ -932,7 +942,7 @@
932
942
  "figure.label.section-cavity-top": "the inside seen along the push",
933
943
  "figure.label.section-cavity-side": "cut along the push",
934
944
  "figure.label.fasten-mode-meet": "set on it",
935
- "figure.label.fasten-mode-flush": "flush with it",
945
+ "figure.label.fasten-mode-flush": "fasten flush",
936
946
  "figure.label.fasten-mode-centre": "centre on it",
937
947
  "figure.text.fasten-off-face": "It does not touch {face}.",
938
948
  "figure.text.fasten-past-edges": "It comes past the edges: {sides}",
@@ -943,10 +953,10 @@
943
953
  "figure.label.measure-y": "height",
944
954
  "figure.label.measure-z": "depth",
945
955
  "figure.label.measure-diameter": "diameter",
946
- "figure.text.summary-size-follows": "Its {axes} follows the model's size.",
947
- "figure.text.summary-size-follows-plus": "Its {axes} is the model's size plus {plus} mm.",
948
- "figure.text.summary-size-share": "Its {axes} is {pct}% of the model's {whole}.",
949
- "figure.text.summary-size-share-plus": "Its {axes} is {pct}% of the model's {whole} plus {plus} mm.",
956
+ "figure.text.summary-size-follows": "Its {axes} follows the figure's size.",
957
+ "figure.text.summary-size-follows-plus": "Its {axes} is the figure's size plus {plus} mm.",
958
+ "figure.text.summary-size-share": "Its {axes} is {pct}% of the figure's {whole}.",
959
+ "figure.text.summary-size-share-plus": "Its {axes} is {pct}% of the figure's {whole} plus {plus} mm.",
950
960
  "figure.text.summary-size-part": "Its {axes} equals {other}'s {measure}.",
951
961
  "figure.text.summary-size-part-plus": "Its {axes} is {other}'s {measureWord} plus {plus} mm.",
952
962
  "figure.text.summary-size-part-share": "Its {axes} is {pct}% of {other}'s {measureWord}.",
@@ -1182,5 +1192,11 @@
1182
1192
  "figure.label.namespace": "Namespace",
1183
1193
  "figure.text.namespace-fixed": "Figures have been made under this namespace, so it cannot change.",
1184
1194
  "figure.text.namespace-empty-takes-subdomain": "Left empty, the subdomain {subdomain} is used. It cannot change once a figure is made.",
1185
- "figure.text.namespace-subdomain-unusable": "The subdomain {subdomain} cannot be a namespace. Enter one, for example hatiolab.com."
1195
+ "figure.text.namespace-subdomain-unusable": "The subdomain {subdomain} cannot be a namespace. Enter one, for example hatiolab.com.",
1196
+ "figure.label.follows-part-axis": "{part}'s {axis}",
1197
+ "figure.text.size-and-space-declared-to-follow": "the figure size was set from its parts, {x} × {y} × {z} mm, and the space it takes was fitted to them.",
1198
+ "figure.button.release-blocked": "{count} blocks release",
1199
+ "figure.label.preview-way-one": "one",
1200
+ "figure.label.preview-way-eight": "eight sizes",
1201
+ "figure.text.preview-needs-space": "set the space it takes to try other sizes."
1186
1202
  }
@@ -7,6 +7,7 @@
7
7
  "figure.button.cancel": "cancelar",
8
8
  "figure.button.center-x": "al centro de X",
9
9
  "figure.button.center-z": "al centro de Z",
10
+ "figure.button.change-fastening": "Cambiar",
10
11
  "figure.button.close": "cerrar",
11
12
  "figure.button.delete-figure": "eliminar",
12
13
  "figure.button.discard": "descartar",
@@ -16,6 +17,9 @@
16
17
  "figure.button.scale-position": "en proporción",
17
18
  "figure.button.remeasure-range": "volver a medir",
18
19
  "figure.button.scale-uniformly": "escalar con una sola proporción",
20
+ "figure.label.group-menu": "Más acciones",
21
+ "figure.label.group-more": "Más",
22
+ "figure.label.group-place": "Posición",
19
23
  "figure.text.sizing-uniform-proposed": "esta figura tiene articulaciones. escalarla con una sola proporción mantiene unidas las articulaciones en cualquier tamaño.",
20
24
  "figure.text.sizing-uniform-explained": "escala toda la figura según la media geométrica de los tres tamaños que le asigna un tablero. los pies quedan en el suelo; el espacio que sobra encima de la figura queda vacío.",
21
25
  "figure.button.mirror-x": "al otro lado de X",
@@ -337,8 +341,8 @@
337
341
  "figure.label.scene-floor": "suelo",
338
342
  "figure.label.scene-reference": "referencia de la escena",
339
343
  "figure.label.scene-reference-floor": "suelo",
340
- "figure.label.scene-reference-inverted": "invertido (techo)",
341
- "figure.label.scene-reference-space": "espacio",
344
+ "figure.label.scene-reference-inverted": "techo",
345
+ "figure.label.scene-reference-space": "centro",
342
346
  "figure.label.segments": "segmentos",
343
347
  "figure.label.shape": "forma",
344
348
  "figure.label.shape-detail": "detalle de la forma",
@@ -412,8 +416,8 @@
412
416
  "figure.text.expand-properties-pane": "expandir el panel de propiedades",
413
417
  "figure.text.figure-display-name": "nombre visible",
414
418
  "figure.text.figure-name-example": "p. ej. transporte por polipasto aéreo",
415
- "figure.text.figure-type-example": "p. ej. OHT, AGV_LIFTER",
416
- "figure.text.figure-type-placeholder": "Identificador del tipo de figura (p. ej. OHT)",
419
+ "figure.text.figure-type-example": "p. ej. agv-lifter",
420
+ "figure.text.figure-type-placeholder": "p. ej. agv-lifter",
417
421
  "figure.text.find-by-this-tag": "buscar por esta etiqueta",
418
422
  "figure.text.fits-n-instances": "hasta {n}",
419
423
  "figure.text.floor-explained": "se superpone al suelo de coordenadas, por lo que suele estar desactivado",
@@ -497,7 +501,7 @@
497
501
  "figure.text.triangle-count": "{count} triángulos",
498
502
  "figure.text.type-name-already-taken": "el nombre de tipo {type} ya está en uso. elija otro.",
499
503
  "figure.text.type-name-cannot-change": "el nombre de tipo no se puede cambiar después de crearlo.",
500
- "figure.text.type-name-will-not-release": "este nombre no se puede publicar. use mayúsculas, dígitos y guiones bajos no consecutivos, de 3 a 32 caracteres (p. ej. AGV_LIFTER).",
504
+ "figure.text.type-name-will-not-release": "este nombre no se puede publicar. empiece con una letra minúscula y use minúsculas, dígitos y guiones, de 2 a 64 caracteres (p. ej. agv-lifter).",
501
505
  "figure.text.unit-is-a-word-not-a-rule": "una unidad de visualización (p. ej. mm, deg, %). no se usa en los cálculos.",
502
506
  "figure.text.unsaved-changes": "sin guardar",
503
507
  "figure.text.version-number": "v{version}",
@@ -513,8 +517,8 @@
513
517
  "figure.label.follows": "Sigue",
514
518
  "figure.text.follows-explained": "Con qué crece este lado. Estire la figura en un tablero y esto la sigue.",
515
519
  "figure.label.follows-nothing": "fijo",
516
- "figure.label.follows-instance": "tamaño de la instancia",
517
- "figure.label.follows-instance-share": "en proporción al tamaño",
520
+ "figure.label.follows-instance": "igual al tamaño {axis} de la figura",
521
+ "figure.label.follows-instance-share": "proporcional al tamaño {axis} de la figura",
518
522
  "figure.label.follows-part": "otra pieza",
519
523
  "figure.label.times": "veces",
520
524
  "figure.label.plus": "más (mm)",
@@ -712,6 +716,7 @@
712
716
  "figure.text.proposal-applied": "se aplicaron {n} comandos como un solo paso.",
713
717
  "figure.text.proposal-saved-into": "Guardado en: {names}",
714
718
  "figure.text.proposal-needs-modeller": "esta propuesta solo se puede aplicar mientras su figura esté abierta en el modelador.",
719
+ "figure.text.proposal-empty": "esta propuesta no tiene comandos, por lo que no se aplicó. vuelva a pedirla.",
715
720
  "figure.text.proposal-new-figure-unsaved": "se está creando una nueva figura, por lo que no se aplicó la propuesta. guárdela o descártela y vuelva a ejecutarla.",
716
721
  "figure.text.proposal-not-opened": "no se pudo abrir una nueva figura en el modelador, por lo que no se aplicó la propuesta.",
717
722
  "figure.text.proposal-refused": "el modelador no aplicó la propuesta: {reason}",
@@ -754,6 +759,11 @@
754
759
  "figure.text.removal-bindings": "{places} se eliminaron con ella.",
755
760
  "figure.text.removal-mounting-face": "La cara de montaje se ha liberado.",
756
761
  "figure.text.edit-refused": "No se puede realizar esta edición. ({code})",
762
+ "figure.text.session-not-open": "abra primero el modelo.",
763
+ "figure.text.session-saving": "espere a que termine de guardarse y luego edite.",
764
+ "figure.text.session-version-missing": "una edición de IA necesita la versión del modelo en la que se pidió.",
765
+ "figure.text.session-new-figure-touched": "solo se puede usar en un modelo nuevo que aún no se ha editado.",
766
+ "figure.text.session-proposal-key": "el identificador de la propuesta no es válido.",
757
767
  "figure.text.edit-refused-node-limit": "La figura es demasiado grande para añadir más. Admite hasta {max} nodos.",
758
768
  "figure.text.document-too-large": "La figura ocupa {at} KiB, más que los {max} KiB con los que se puede guardar.",
759
769
  "figure.text.document-too-large-unmeasured": "La figura supera los {max} KiB con los que se puede guardar.",
@@ -1182,5 +1192,11 @@
1182
1192
  "figure.label.namespace": "Namespace",
1183
1193
  "figure.text.namespace-fixed": "Ya hay figuras creadas con este namespace, por lo que no puede cambiar.",
1184
1194
  "figure.text.namespace-empty-takes-subdomain": "Si se deja vacío, se usa el subdominio {subdomain}. No puede cambiar una vez creada una figura.",
1185
- "figure.text.namespace-subdomain-unusable": "El subdominio {subdomain} no puede ser un namespace. Escriba uno, por ejemplo hatiolab.com."
1195
+ "figure.text.namespace-subdomain-unusable": "El subdominio {subdomain} no puede ser un namespace. Escriba uno, por ejemplo hatiolab.com.",
1196
+ "figure.label.follows-part-axis": "{axis} de {part}",
1197
+ "figure.text.size-and-space-declared-to-follow": "el tamaño de la figura se fijó a partir de sus piezas, {x} × {y} × {z} mm, y el espacio que ocupa se ajustó a ellas.",
1198
+ "figure.button.release-blocked": "{count} impide publicar",
1199
+ "figure.label.preview-way-one": "una",
1200
+ "figure.label.preview-way-eight": "ocho tamaños",
1201
+ "figure.text.preview-needs-space": "defina el espacio que ocupa para probar otros tamaños."
1186
1202
  }
@@ -7,6 +7,7 @@
7
7
  "figure.button.cancel": "キャンセル",
8
8
  "figure.button.center-x": "X 中央へ",
9
9
  "figure.button.center-z": "Z 中央へ",
10
+ "figure.button.change-fastening": "変更",
10
11
  "figure.button.close": "close",
11
12
  "figure.button.delete-figure": "delete",
12
13
  "figure.button.discard": "discard",
@@ -16,6 +17,9 @@
16
17
  "figure.button.scale-position": "サイズに比例",
17
18
  "figure.button.remeasure-range": "測り直す",
18
19
  "figure.button.scale-uniformly": "一つの比率で拡大",
20
+ "figure.label.group-menu": "その他の操作",
21
+ "figure.label.group-more": "その他",
22
+ "figure.label.group-place": "位置",
19
23
  "figure.text.sizing-uniform-proposed": "関節のある図形です。一つの比率で拡大すると、どのサイズでも関節が離れません。",
20
24
  "figure.text.sizing-uniform-explained": "ボードが与えた 3 軸サイズの幾何平均の比率で図形全体を拡大します。足は床に置き、箱の上の余りは空けたままにします。",
21
25
  "figure.button.mirror-x": "X 反対側に",
@@ -336,9 +340,9 @@
336
340
  "figure.label.same-as-off": "same as unlit",
337
341
  "figure.label.scene-floor": "floor",
338
342
  "figure.label.scene-reference": "シーン座標の基準",
339
- "figure.label.scene-reference-floor": "床基準 (floor)",
340
- "figure.label.scene-reference-inverted": "天井基準 (inverted)",
341
- "figure.label.scene-reference-space": "中心基準 (space)",
343
+ "figure.label.scene-reference-floor": "床",
344
+ "figure.label.scene-reference-inverted": "天井",
345
+ "figure.label.scene-reference-space": "中心",
342
346
  "figure.label.segments": "segments",
343
347
  "figure.label.shape": "shape",
344
348
  "figure.label.shape-detail": "shape detail",
@@ -412,8 +416,8 @@
412
416
  "figure.text.expand-properties-pane": "expand the property pane",
413
417
  "figure.text.figure-display-name": "display name",
414
418
  "figure.text.figure-name-example": "例: オーバーヘッドホイストトランスポート",
415
- "figure.text.figure-type-example": "例: OHT, AGV_LIFTER",
416
- "figure.text.figure-type-placeholder": "Figure 識別タイプ (例: OHT)",
419
+ "figure.text.figure-type-example": "例: agv-lifter",
420
+ "figure.text.figure-type-placeholder": "例: agv-lifter",
417
421
  "figure.text.find-by-this-tag": "find by this tag",
418
422
  "figure.text.fits-n-instances": "up to {n}",
419
423
  "figure.text.floor-explained": "座標の下地と重なるため、通常はオフにします",
@@ -497,7 +501,7 @@
497
501
  "figure.text.triangle-count": "{count} triangles",
498
502
  "figure.text.type-name-already-taken": "the type name {type} is already in use. pick another one — it cannot be changed later.",
499
503
  "figure.text.type-name-cannot-change": "タイプ名は作成後に変更できません。",
500
- "figure.text.type-name-will-not-release": "この名前では発行できません。英大文字・数字・アンダースコア (連続不可) で 3〜32 文字を入力してください (例: AGV_LIFTER)。",
504
+ "figure.text.type-name-will-not-release": "この名前では発行できません。英小文字で始め、英小文字・数字・ハイフン(-)で 2〜64 文字を入力してください (例: agv-lifter)。",
501
505
  "figure.text.unit-is-a-word-not-a-rule": "表示用の単位です (例: mm · deg · %)。値の計算には使いません。",
502
506
  "figure.text.unsaved-changes": "unsaved",
503
507
  "figure.text.version-number": "バージョン {version}",
@@ -513,8 +517,8 @@
513
517
  "figure.label.follows": "Follows",
514
518
  "figure.text.follows-explained": "What this side grows with. Stretch the figure on a board and this follows.",
515
519
  "figure.label.follows-nothing": "fixed",
516
- "figure.label.follows-instance": "instance size",
517
- "figure.label.follows-instance-share": "サイズに比例",
520
+ "figure.label.follows-instance": "図形の {axis} サイズと同じ",
521
+ "figure.label.follows-instance-share": "図形の {axis} サイズに比例",
518
522
  "figure.label.follows-part": "another part",
519
523
  "figure.label.times": "times",
520
524
  "figure.label.plus": "plus (mm)",
@@ -712,6 +716,7 @@
712
716
  "figure.text.proposal-applied": "{n} 個のコマンドを 1 ステップとして適用しました。",
713
717
  "figure.text.proposal-saved-into": "保存された図形に含まれています: {names}",
714
718
  "figure.text.proposal-needs-modeller": "この提案は、その図形がモデラーで開いているときだけ適用できます。",
719
+ "figure.text.proposal-empty": "この提案にはコマンドがないため、適用しませんでした。もう一度依頼してください。",
715
720
  "figure.text.proposal-new-figure-unsaved": "作成中の新しい図形があるため、提案を適用しませんでした。保存または破棄してから、もう一度実行してください。",
716
721
  "figure.text.proposal-not-opened": "新しい図形をモデラーで開けなかったため、提案を適用しませんでした。",
717
722
  "figure.text.proposal-refused": "モデラーは提案を適用しませんでした: {reason}",
@@ -754,6 +759,11 @@
754
759
  "figure.text.removal-bindings": "{places} も一緒に削除しました。",
755
760
  "figure.text.removal-mounting-face": "取付面が外れました。",
756
761
  "figure.text.edit-refused": "この編集はできません。({code})",
762
+ "figure.text.session-not-open": "先にモデルを正しく開いてください。",
763
+ "figure.text.session-saving": "保存が終わってから編集してください。",
764
+ "figure.text.session-version-missing": "AI の編集には、依頼した時点のモデルのバージョンが必要です。",
765
+ "figure.text.session-new-figure-touched": "まだ編集していない新しいモデルにだけ使えます。",
766
+ "figure.text.session-proposal-key": "提案の識別子が正しくありません。",
757
767
  "figure.text.edit-refused-node-limit": "図形が大きいためこれ以上追加できません。ノードは {max} 個までです。",
758
768
  "figure.text.document-too-large": "図形が {at} KiB で、保存できる上限 {max} KiB を超えています。",
759
769
  "figure.text.document-too-large-unmeasured": "図形が保存できる上限 {max} KiB を超えています。",
@@ -1182,5 +1192,11 @@
1182
1192
  "figure.label.namespace": "名前空間",
1183
1193
  "figure.text.namespace-fixed": "この名前空間で Figure を作成済みのため変更できません。",
1184
1194
  "figure.text.namespace-empty-takes-subdomain": "空欄ならサブドメイン {subdomain} を使います。Figure を作成すると変更できません。",
1185
- "figure.text.namespace-subdomain-unusable": "サブドメイン {subdomain} は名前空間に使えません。例: hatiolab.com"
1195
+ "figure.text.namespace-subdomain-unusable": "サブドメイン {subdomain} は名前空間に使えません。例: hatiolab.com",
1196
+ "figure.label.follows-part-axis": "{part} の {axis}",
1197
+ "figure.text.size-and-space-declared-to-follow": "図形サイズを部品から {x} × {y} × {z} mm にし、占有空間も部品に合わせました。",
1198
+ "figure.button.release-blocked": "発行不可 {count}",
1199
+ "figure.label.preview-way-one": "1 台",
1200
+ "figure.label.preview-way-eight": "8 サイズ",
1201
+ "figure.text.preview-needs-space": "占有空間を決めるとサイズを変えて試せます。"
1186
1202
  }