@things-factory/figure-ui 10.1.208 → 10.1.210
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.
- package/client/modeller/data-interface.ts +5 -5
- package/client/modeller/editor.ts +74 -57
- package/client/modeller/fasten-geometry.ts +2 -1
- package/client/modeller/figure-links.ts +26 -120
- package/client/modeller/figure-size-editor.ts +196 -0
- package/client/modeller/joint-drag.ts +25 -21
- package/client/modeller/joint-fan.ts +4 -3
- package/client/modeller/links.ts +36 -24
- package/client/modeller/motion-ends.ts +10 -6
- package/client/modeller/size-response.ts +95 -0
- package/dist-client/modeller/data-interface.d.ts +1 -1
- package/dist-client/modeller/data-interface.js +5 -5
- package/dist-client/modeller/data-interface.js.map +1 -1
- package/dist-client/modeller/editor.d.ts +9 -1
- package/dist-client/modeller/editor.js +80 -58
- package/dist-client/modeller/editor.js.map +1 -1
- package/dist-client/modeller/fasten-geometry.js +1 -1
- package/dist-client/modeller/fasten-geometry.js.map +1 -1
- package/dist-client/modeller/figure-links.d.ts +1 -4
- package/dist-client/modeller/figure-links.js +26 -107
- package/dist-client/modeller/figure-links.js.map +1 -1
- package/dist-client/modeller/figure-size-editor.d.ts +27 -0
- package/dist-client/modeller/figure-size-editor.js +221 -0
- package/dist-client/modeller/figure-size-editor.js.map +1 -0
- package/dist-client/modeller/joint-drag.d.ts +1 -1
- package/dist-client/modeller/joint-drag.js +27 -22
- package/dist-client/modeller/joint-drag.js.map +1 -1
- package/dist-client/modeller/joint-fan.js +4 -3
- package/dist-client/modeller/joint-fan.js.map +1 -1
- package/dist-client/modeller/links.d.ts +9 -6
- package/dist-client/modeller/links.js +33 -21
- package/dist-client/modeller/links.js.map +1 -1
- package/dist-client/modeller/motion-ends.d.ts +4 -1
- package/dist-client/modeller/motion-ends.js +10 -6
- package/dist-client/modeller/motion-ends.js.map +1 -1
- package/dist-client/modeller/size-response.d.ts +29 -0
- package/dist-client/modeller/size-response.js +99 -0
- package/dist-client/modeller/size-response.js.map +1 -0
- package/dist-client/route.d.ts +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/docs/evidence/2026-10-24/current-size-panel.png +0 -0
- package/docs/evidence/2026-10-24/integrated-size.png +0 -0
- package/docs/evidence/2026-10-24/multipart-response.png +0 -0
- package/docs/evidence/2026-10-24/repeat-layout.png +0 -0
- package/docs/evidence/2026-10-24/repeat-shared-style.png +0 -0
- package/docs/evidence/2026-10-24/size-in-layout.png +0 -0
- package/docs/evidence/2026-10-24/size-shared-style.png +0 -0
- package/docs/evidence/2026-10-24/width-preview.png +0 -0
- package/docs/multipart-response-review-2026-10-24.md +77 -0
- package/docs/response-authoring-2026-10-24.md +46 -0
- package/docs/size-and-repeat-ux-2026-10-24.md +67 -0
- package/package.json +7 -7
- package/test/attachment-size-contract.test.ts +47 -0
- package/test/browser/acceptance-page.js +1 -1
- package/test/browser/detail-page.js +1 -1
- package/test/browser/detail-tabs-page.js +1 -1
- package/test/browser/editing-page.js +1 -1
- package/test/browser/editing.check.mjs +28 -14
- package/test/browser/links.check.mjs +41 -22
- package/test/browser/modeller-page.js +1 -1
- package/test/browser/modeller-revision.check.mjs +21 -7
- package/test/browser/modeller.check.mjs +51 -39
- package/test/browser/multipart-response-page.js +8 -0
- package/test/browser/parts.check.mjs +2 -1
- package/test/browser/product-page.js +1 -1
- package/test/browser/props.check.mjs +17 -14
- package/test/browser/response-page.js +12 -0
- package/test/browser/row-preview.check.mjs +3 -3
- package/test/browser/screen.check.mjs +57 -13
- package/test/browser/serve-response.mjs +24 -0
- package/test/clip-ai-proposal.test.ts +1 -1
- package/test/clip-consent.test.ts +2 -2
- package/test/command-preview.test.ts +7 -7
- package/test/joint-drag.test.ts +6 -6
- package/test/joint-frames.test.ts +33 -32
- package/test/joints.ts +1 -6
- package/test/links.test.ts +21 -20
- package/test/multipart-response-fixture.js +17 -0
- package/test/multipart-response.test.ts +37 -0
- package/test/refusals.test.ts +2 -2
- package/test/resize-with-placement.test.ts +23 -1
- package/test/size-response.test.ts +49 -0
- package/test/size-source-pairing.test.ts +66 -0
- package/translations/en.json +44 -10
- package/translations/es.json +44 -10
- package/translations/ja.json +44 -10
- package/translations/ko.json +49 -15
- package/translations/ms.json +44 -10
- package/translations/zh.json +44 -10
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* What a size follows when it is made to follow (ADR-0159 3): what its part hangs from, along the axis its own lies
|
|
3
|
+
* on as it stands -- read from figure-model (`figureAxisPairsOf`), never paired by letter.
|
|
4
|
+
*/
|
|
5
|
+
import { test } from 'node:test'
|
|
6
|
+
import assert from 'node:assert/strict'
|
|
7
|
+
import { addFigureBox, addFigurePrimitive, applyFigureAuthoring, createFigureAsset } from '@hatiolab/figure-model'
|
|
8
|
+
import type { FigureAsset, FigureAuthoringAction } from '@hatiolab/figure-model'
|
|
9
|
+
|
|
10
|
+
import { revisionOf } from './revision-of.ts'
|
|
11
|
+
import { sameSizeSource, sizeRelationOf, sizeRelationSteps, sourceMeasureOf, suggestedSizeSource } from '../client/modeller/size-response.ts'
|
|
12
|
+
import { measureNow } from '../client/modeller/links.ts'
|
|
13
|
+
|
|
14
|
+
/** A frame on the floor, 1000 wide, 100 high, 600 deep, and a roller on its top turned `turn` about X. */
|
|
15
|
+
function bed(turn = 90): FigureAsset {
|
|
16
|
+
let a = addFigureBox(createFigureAsset('Bed'), { id: 'frame', size: { x: 1000, y: 100, z: 600 }, position: { x: 0, y: 50, z: 0 } })
|
|
17
|
+
a = addFigurePrimitive(a, { id: 'roller', kind: 'cylinder', dimensions: { radius: 30, length: 500 }, rotation: { x: turn, y: 0, z: 0 }, position: { x: 0, y: 150, z: 0 } } as never)
|
|
18
|
+
a = applyFigureAuthoring(a, { kind: 'attach', part: 'frame', to: { plane: 'mounting-plane' } })
|
|
19
|
+
return applyFigureAuthoring(a, { kind: 'attach', part: 'roller', to: { part: 'frame', face: 'top' } })
|
|
20
|
+
}
|
|
21
|
+
const run = (a: FigureAsset, steps: FigureAuthoringAction[]) => steps.reduce((x, s) => applyFigureAuthoring(x, s), a)
|
|
22
|
+
const lengthOf = (a: FigureAsset, design: Record<string, number> = {}) =>
|
|
23
|
+
measureNow(revisionOf({ ...a, designInputs: { ...a.designInputs, ...design } }), 'roller', 'y')
|
|
24
|
+
/** The frame's depth: its own size along Z. */
|
|
25
|
+
const depthOf = (_: FigureAsset) => 'frame.size.z'
|
|
26
|
+
|
|
27
|
+
test('a roller laid on its side follows the frame\'s depth with its length, not its height', () => {
|
|
28
|
+
assert.deepEqual(suggestedSizeSource(bed(), 'roller', 'y'), { of: 'part', part: 'frame', axis: 'z' })
|
|
29
|
+
/* Its diameter lies along the frame's width. */
|
|
30
|
+
assert.deepEqual(suggestedSizeSource(bed(), 'roller', 'x'), { of: 'part', part: 'frame', axis: 'x' })
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
test('made to follow by its gap, the length keeps 100 mm short of the frame\'s depth as the frame grows', () => {
|
|
34
|
+
const a = bed()
|
|
35
|
+
const b = run(a, sizeRelationSteps(revisionOf(a), 'roller', 'y', suggestedSizeSource(a, 'roller', 'y')!, 'difference'))
|
|
36
|
+
assert.equal(lengthOf(b), 500, 'it stands as it stood')
|
|
37
|
+
assert.ok(depthOf(b) in b.designInputs, `the frame's depth is an input: ${Object.keys(b.designInputs)}`)
|
|
38
|
+
assert.equal(lengthOf(b, { [depthOf(b)]: 900 }), 800, 'the frame 300 deeper: the roller 300 longer')
|
|
39
|
+
assert.equal(sizeRelationOf(revisionOf(b), 'roller', 'y').mode, 'difference')
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
test('made to follow by its ratio, it keeps its share', () => {
|
|
43
|
+
const a = bed()
|
|
44
|
+
const b = run(a, sizeRelationSteps(revisionOf(a), 'roller', 'y', suggestedSizeSource(a, 'roller', 'y')!, 'ratio'))
|
|
45
|
+
assert.equal(Math.round(lengthOf(b, { [depthOf(b)]: 1200 })!), 1000, '500 of 600 is 1000 of 1200')
|
|
46
|
+
})
|
|
47
|
+
|
|
48
|
+
test('standing on the floor turned a quarter, a part follows the figure along the axis it lies on', () => {
|
|
49
|
+
let a = addFigureBox(createFigureAsset('Beam'), { id: 'beam', size: { x: 100, y: 50, z: 800 }, position: { x: 0, y: 25, z: 0 }, rotation: { x: 0, y: 90, z: 0 } } as never)
|
|
50
|
+
a = applyFigureAuthoring(a, { kind: 'attach', part: 'beam', to: { plane: 'mounting-plane' } })
|
|
51
|
+
assert.deepEqual(suggestedSizeSource(a, 'beam', 'z'), { of: 'instance', axis: 'x' })
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
test('at an angle, nothing is suggested for the axes that lie at it: the author picks', () => {
|
|
55
|
+
assert.equal(suggestedSizeSource(bed(30), 'roller', 'y'), undefined)
|
|
56
|
+
assert.deepEqual(suggestedSizeSource(bed(30), 'roller', 'x'), { of: 'part', part: 'frame', axis: 'x' }, 'the axis it turns about still lies along X')
|
|
57
|
+
})
|
|
58
|
+
|
|
59
|
+
test('the source as it measures now, and when two sources are one', () => {
|
|
60
|
+
const r = revisionOf(bed())
|
|
61
|
+
assert.equal(sourceMeasureOf(r, { of: 'part', part: 'frame', axis: 'z' }), 600)
|
|
62
|
+
assert.ok(sameSizeSource({ of: 'part', part: 'frame', axis: 'z' }, { of: 'part', part: 'frame', axis: 'z' }))
|
|
63
|
+
assert.ok(!sameSizeSource({ of: 'part', part: 'frame', axis: 'z' }, { of: 'part', part: 'frame', axis: 'y' }))
|
|
64
|
+
assert.ok(!sameSizeSource({ of: 'instance', axis: 'z' }, { of: 'part', part: 'frame', axis: 'z' }))
|
|
65
|
+
assert.ok(!sameSizeSource(undefined, { of: 'instance', axis: 'z' }))
|
|
66
|
+
})
|
package/translations/en.json
CHANGED
|
@@ -52,9 +52,9 @@
|
|
|
52
52
|
"figure.text.scale-position-explained": "keeps this place as a share of the figure size — at twice the size it is twice as far.",
|
|
53
53
|
"figure.text.repeat-member": "copy {index} of {count} made by repeating {name}.",
|
|
54
54
|
"figure.label.detail-none": "none",
|
|
55
|
-
"figure.label.repeat": "
|
|
56
|
-
"figure.text.repeat-fits-length": "
|
|
57
|
-
"figure.text.repeat-fixed-count": "
|
|
55
|
+
"figure.label.repeat": "Repeat layout",
|
|
56
|
+
"figure.text.repeat-fits-length": "Parts fill the parent length at the chosen centre spacing.",
|
|
57
|
+
"figure.text.repeat-fixed-count": "Centre spacing is calculated automatically to keep the count.",
|
|
58
58
|
"figure.text.repeat-what-pitch-gives": "{count} at a length of {length} mm · placed up to {longest} mm long ({limit} in a row).",
|
|
59
59
|
"figure.text.repeat-pitch-too-small": "the pitch must be at least {min} mm: at the authored length of {length} mm it would make more than {limit}.",
|
|
60
60
|
"figure.text.row-copies-over-limit": "At this pitch the row has {count} copies. A row takes up to {limit}. Widen the pitch.",
|
|
@@ -76,6 +76,7 @@
|
|
|
76
76
|
"figure.text.gizmo-joint-turned-slide": "the {joint} joint only slides. use the move handle.",
|
|
77
77
|
"figure.text.gizmo-joint-origin-follows": "the {joint} joint's place follows another part. change it under place in the properties tab.",
|
|
78
78
|
"figure.text.gizmo-joint-off-axis": "the {joint} joint turns only about {axis}. use the {axis} rotate handle.",
|
|
79
|
+
"figure.text.gizmo-joint-several-axes": "the {joint} joint moves on several axes, so it cannot be dragged. adjust its values on the motion tab.",
|
|
79
80
|
"figure.text.gizmo-size-follows": "{part}'s {axis} size follows another measure. change it under size in the responsive tab.",
|
|
80
81
|
"figure.text.gizmo-fastening-places": "{part} is fastened to a face of another part, which places it. detach it first to move it.",
|
|
81
82
|
"figure.text.size-range-leaves-out-size": "the {axis} range on a drawing, {range} mm, does not hold its size now, {at} mm.",
|
|
@@ -697,12 +698,12 @@
|
|
|
697
698
|
"figure.label.face-opening-left": "opening left",
|
|
698
699
|
"figure.label.face-opening-right": "opening right",
|
|
699
700
|
"figure.label.face-opening-top": "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": "
|
|
701
|
+
"figure.label.repeat-fills": "Keep spacing",
|
|
702
|
+
"figure.button.make-repeat": "Apply repeat layout",
|
|
703
|
+
"figure.button.remove-repeat": "Remove repeat layout",
|
|
704
|
+
"figure.label.row-basis": "Layout rule",
|
|
705
|
+
"figure.label.row-by-count": "Keep count",
|
|
706
|
+
"figure.text.row-count-spreads": "Distribute the chosen count evenly along the parent length. Centre spacing is calculated automatically.",
|
|
706
707
|
"figure.text.row-blocked-unfastened": "Fasten {part} to another part to arrange it in a row along that part.",
|
|
707
708
|
"figure.text.row-blocked-on-plane": "Fasten it to another part, not the mounting plane, to arrange it in a row along that part.",
|
|
708
709
|
"figure.text.row-blocked-at-origin": "It stands at another part's origin. Fasten it to a face of that part to arrange it in a row along it.",
|
|
@@ -1184,5 +1185,38 @@
|
|
|
1184
1185
|
"figure.text.board-size-range-explained": "A drawing can resize it within these ranges. An empty field is as far as the parts allow; a number typed narrows it to that. Only the parts that follow its size grow with it; the rest stay as they are.",
|
|
1185
1186
|
"figure.text.board-size-followers": "parts that change with its size: {parts}",
|
|
1186
1187
|
"figure.text.board-size-followers-more": "{first} and {rest} more",
|
|
1187
|
-
"figure.text.board-size-no-followers": "no part changes with its size"
|
|
1188
|
+
"figure.text.board-size-no-followers": "no part changes with its size",
|
|
1189
|
+
"figure.button.resize-follow": "Scale proportionally",
|
|
1190
|
+
"figure.button.resize-follow-axis": "Scale {dimension} proportionally",
|
|
1191
|
+
"figure.text.resize-follow-axis": "Follow the figure size at the current proportion. Other dimensions stay unchanged.",
|
|
1192
|
+
"figure.label.size-axis": "axis",
|
|
1193
|
+
"figure.label.size-measure": "size (mm)",
|
|
1194
|
+
"figure.label.size-follows": "follows",
|
|
1195
|
+
"figure.label.size-source": "source",
|
|
1196
|
+
"figure.label.size-source-axis": "source axis",
|
|
1197
|
+
"figure.label.size-diameter": "diameter",
|
|
1198
|
+
"figure.label.size-figure": "figure",
|
|
1199
|
+
"figure.label.size-ratio": "keep the ratio",
|
|
1200
|
+
"figure.label.size-difference": "keep the gap",
|
|
1201
|
+
"figure.label.size-existing-rule": "existing formula",
|
|
1202
|
+
"figure.label.size-pick-source": "pick a source",
|
|
1203
|
+
"figure.button.size-other-source": "another source",
|
|
1204
|
+
"figure.text.size-ratio-result": "{pct}% of {source} {size} mm — changes by the same ratio when the source does.",
|
|
1205
|
+
"figure.text.size-difference-less": "{gap} mm less than {source} {size} mm — keeps that gap when the source changes.",
|
|
1206
|
+
"figure.text.size-difference-more": "{gap} mm more than {source} {size} mm — keeps that gap when the source changes.",
|
|
1207
|
+
"figure.text.size-difference-same": "the same as {source} {size} mm — changes as the source does.",
|
|
1208
|
+
"figure.text.size-custom-rule": "set by an existing formula. pick a source or a way and it changes from the size it is now.",
|
|
1209
|
+
"figure.text.size-uniform": "the whole figure grows and shrinks by one ratio.",
|
|
1210
|
+
"figure.text.size-invalid": "enter a size above 0.",
|
|
1211
|
+
"figure.text.size-unavailable-source": "this source's size cannot be followed.",
|
|
1212
|
+
"figure.text.size-unpaired": "it lies at an angle, so the axis to follow cannot be told. pick a source and an axis.",
|
|
1213
|
+
"figure.label.repeat-inactive": "Not applied",
|
|
1214
|
+
"figure.label.repeat-active": "Applied",
|
|
1215
|
+
"figure.label.tab-arrangement": "Layout",
|
|
1216
|
+
"figure.text.repeat-intro": "Repeat this part along the length of the part it is attached to.",
|
|
1217
|
+
"figure.text.repeat-direction": "Direction uses the attached parent’s axes.",
|
|
1218
|
+
"figure.text.repeat-draft": "Preview only. Apply to confirm this layout.",
|
|
1219
|
+
"figure.text.repeat-mode-pitch": "Keep spacing · Count changes with the parent length.",
|
|
1220
|
+
"figure.text.repeat-mode-count": "Keep count · Spacing changes with the parent length.",
|
|
1221
|
+
"figure.text.repeat-remove-explained": "Removing the layout leaves the original part."
|
|
1188
1222
|
}
|
package/translations/es.json
CHANGED
|
@@ -52,9 +52,9 @@
|
|
|
52
52
|
"figure.text.scale-position-explained": "mantiene esta posición como fracción del tamaño de la figura: con el doble de tamaño queda al doble de distancia.",
|
|
53
53
|
"figure.text.repeat-member": "copia {index} de {count} creada al repetir {name}.",
|
|
54
54
|
"figure.label.detail-none": "ninguno",
|
|
55
|
-
"figure.label.repeat": "
|
|
56
|
-
"figure.text.repeat-fits-length": "
|
|
57
|
-
"figure.text.repeat-fixed-count": "
|
|
55
|
+
"figure.label.repeat": "Distribución repetida",
|
|
56
|
+
"figure.text.repeat-fits-length": "Las piezas ocupan la longitud de referencia con la separación elegida.",
|
|
57
|
+
"figure.text.repeat-fixed-count": "La separación se calcula para mantener la cantidad.",
|
|
58
58
|
"figure.text.repeat-what-pitch-gives": "{count} con una longitud de {length} mm · se colocan hasta {longest} mm de longitud ({limit} en una fila).",
|
|
59
59
|
"figure.text.repeat-pitch-too-small": "el pitch debe ser de al menos {min} mm: con la longitud definida de {length} mm se superarían {limit}.",
|
|
60
60
|
"figure.text.row-copies-over-limit": "Con este paso la fila tiene {count} copias. Una fila admite hasta {limit}. Amplíe el paso.",
|
|
@@ -76,6 +76,7 @@
|
|
|
76
76
|
"figure.text.gizmo-joint-turned-slide": "la articulación {joint} solo se desliza. use el control de desplazamiento.",
|
|
77
77
|
"figure.text.gizmo-joint-origin-follows": "la posición de la articulación {joint} sigue a otra pieza. cámbiela en sujeción, en la pestaña de movimiento.",
|
|
78
78
|
"figure.text.gizmo-joint-off-axis": "la articulación {joint} solo gira alrededor de {axis}. use el control de rotación de {axis}.",
|
|
79
|
+
"figure.text.gizmo-joint-several-axes": "la articulación {joint} se mueve en varios ejes, así que no se puede arrastrar. ajuste sus valores en la pestaña de movimiento.",
|
|
79
80
|
"figure.text.gizmo-size-follows": "el tamaño en {axis} de {part} sigue a otra medida. cámbielo en tamaños, en la pestaña de movimiento.",
|
|
80
81
|
"figure.text.gizmo-fastening-places": "{part} está sujeta a una cara de otra pieza, que determina su posición. sepárela primero para moverla.",
|
|
81
82
|
"figure.text.size-range-leaves-out-size": "el rango {axis} en un plano, {range} mm, no incluye su tamaño actual, {at} mm.",
|
|
@@ -697,12 +698,12 @@
|
|
|
697
698
|
"figure.label.face-opening-left": "abertura izquierda",
|
|
698
699
|
"figure.label.face-opening-right": "abertura derecha",
|
|
699
700
|
"figure.label.face-opening-top": "abertura superior",
|
|
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": "
|
|
701
|
+
"figure.label.repeat-fills": "Mantener separación",
|
|
702
|
+
"figure.button.make-repeat": "Aplicar distribución",
|
|
703
|
+
"figure.button.remove-repeat": "Quitar distribución",
|
|
704
|
+
"figure.label.row-basis": "Regla de distribución",
|
|
705
|
+
"figure.label.row-by-count": "Mantener cantidad",
|
|
706
|
+
"figure.text.row-count-spreads": "Distribuya la cantidad elegida uniformemente. La separación se calcula automáticamente.",
|
|
706
707
|
"figure.text.row-blocked-unfastened": "Sujete {part} a otra pieza para disponerla en fila a lo largo de esa pieza.",
|
|
707
708
|
"figure.text.row-blocked-on-plane": "Sujétela a otra pieza, no al plano de montaje, para disponerla en fila a lo largo de esa pieza.",
|
|
708
709
|
"figure.text.row-blocked-at-origin": "Está en el origen de otra pieza. Sujétela a una cara de esa pieza para disponerla en fila a lo largo de ella.",
|
|
@@ -1184,5 +1185,38 @@
|
|
|
1184
1185
|
"figure.text.board-size-range-explained": "Un plano puede cambiar su tamaño dentro de estos rangos. Un campo vacío llega hasta donde permiten las piezas; un número lo limita a ese valor. Solo crecen las piezas que siguen su tamaño; las demás quedan igual.",
|
|
1185
1186
|
"figure.text.board-size-followers": "piezas que cambian con su tamaño: {parts}",
|
|
1186
1187
|
"figure.text.board-size-followers-more": "{first} y {rest} más",
|
|
1187
|
-
"figure.text.board-size-no-followers": "ninguna pieza cambia con su tamaño"
|
|
1188
|
+
"figure.text.board-size-no-followers": "ninguna pieza cambia con su tamaño",
|
|
1189
|
+
"figure.button.resize-follow": "Cambiar proporcionalmente",
|
|
1190
|
+
"figure.button.resize-follow-axis": "Cambiar {dimension} proporcionalmente",
|
|
1191
|
+
"figure.text.resize-follow-axis": "Seguir el tamaño de la figura manteniendo la proporción actual. Las otras dimensiones no cambian.",
|
|
1192
|
+
"figure.label.size-axis": "eje",
|
|
1193
|
+
"figure.label.size-measure": "tamaño (mm)",
|
|
1194
|
+
"figure.label.size-follows": "sigue",
|
|
1195
|
+
"figure.label.size-source": "referencia",
|
|
1196
|
+
"figure.label.size-source-axis": "eje de referencia",
|
|
1197
|
+
"figure.label.size-diameter": "diámetro",
|
|
1198
|
+
"figure.label.size-figure": "figura",
|
|
1199
|
+
"figure.label.size-ratio": "mantener la proporción",
|
|
1200
|
+
"figure.label.size-difference": "mantener la holgura",
|
|
1201
|
+
"figure.label.size-existing-rule": "fórmula existente",
|
|
1202
|
+
"figure.label.size-pick-source": "elija una referencia",
|
|
1203
|
+
"figure.button.size-other-source": "otra referencia",
|
|
1204
|
+
"figure.text.size-ratio-result": "{pct}% de {source} {size} mm — cambia en la misma proporción cuando cambia la referencia.",
|
|
1205
|
+
"figure.text.size-difference-less": "{gap} mm menos que {source} {size} mm — mantiene esa diferencia cuando cambia la referencia.",
|
|
1206
|
+
"figure.text.size-difference-more": "{gap} mm más que {source} {size} mm — mantiene esa diferencia cuando cambia la referencia.",
|
|
1207
|
+
"figure.text.size-difference-same": "igual que {source} {size} mm — cambia como la referencia.",
|
|
1208
|
+
"figure.text.size-custom-rule": "lo fija una fórmula existente. elija una referencia o un modo y cambiará a partir del tamaño actual.",
|
|
1209
|
+
"figure.text.size-uniform": "toda la figura crece y se reduce en una sola proporción.",
|
|
1210
|
+
"figure.text.size-invalid": "introduzca un tamaño mayor que 0.",
|
|
1211
|
+
"figure.text.size-unavailable-source": "no se puede seguir el tamaño de esta referencia.",
|
|
1212
|
+
"figure.text.size-unpaired": "está en ángulo, así que no se sabe qué eje seguir. elija una referencia y un eje.",
|
|
1213
|
+
"figure.label.repeat-inactive": "Sin aplicar",
|
|
1214
|
+
"figure.label.repeat-active": "Aplicada",
|
|
1215
|
+
"figure.label.tab-arrangement": "Distribución",
|
|
1216
|
+
"figure.text.repeat-intro": "Repita esta pieza a lo largo de la pieza a la que está unida.",
|
|
1217
|
+
"figure.text.repeat-direction": "La dirección usa los ejes de la pieza de unión.",
|
|
1218
|
+
"figure.text.repeat-draft": "Vista previa. Pulse Aplicar para confirmar.",
|
|
1219
|
+
"figure.text.repeat-mode-pitch": "Mantener separación · La cantidad cambia con la longitud de referencia.",
|
|
1220
|
+
"figure.text.repeat-mode-count": "Mantener cantidad · La separación cambia con la longitud de referencia.",
|
|
1221
|
+
"figure.text.repeat-remove-explained": "Al quitar la distribución queda la pieza original."
|
|
1188
1222
|
}
|
package/translations/ja.json
CHANGED
|
@@ -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 が入っていません。",
|
|
@@ -697,12 +698,12 @@
|
|
|
697
698
|
"figure.label.face-opening-left": "開口部 左",
|
|
698
699
|
"figure.label.face-opening-right": "開口部 右",
|
|
699
700
|
"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": "
|
|
701
|
+
"figure.label.repeat-fills": "間隔を維持",
|
|
702
|
+
"figure.button.make-repeat": "繰り返し配置を適用",
|
|
703
|
+
"figure.button.remove-repeat": "繰り返し配置を解除",
|
|
704
|
+
"figure.label.row-basis": "配置方式",
|
|
705
|
+
"figure.label.row-by-count": "個数を維持",
|
|
706
|
+
"figure.text.row-count-spreads": "指定した個数を接続先の長さに均等配置します。中心間隔は自動計算します。",
|
|
706
707
|
"figure.text.row-blocked-unfastened": "{part} を別の部品に取り付けると、その部品に沿って列に並べられます。",
|
|
707
708
|
"figure.text.row-blocked-on-plane": "取付平面ではなく別の部品に取り付けると、その部品に沿って列に並べられます。",
|
|
708
709
|
"figure.text.row-blocked-at-origin": "別の部品の基準点に置かれているため、列に並べられません。その部品の面に取り付けると列に並べられます。",
|
|
@@ -1184,5 +1185,38 @@
|
|
|
1184
1185
|
"figure.text.board-size-range-explained": "図面でこの範囲内にサイズを変えられます。空欄は部品が許す限りで、数値を入れるとその値に狭まります。サイズに従う部品だけが一緒に伸び、ほかはそのままです。",
|
|
1185
1186
|
"figure.text.board-size-followers": "サイズに従って変わる部品: {parts}",
|
|
1186
1187
|
"figure.text.board-size-followers-more": "{first} ほか {rest} 個",
|
|
1187
|
-
"figure.text.board-size-no-followers": "サイズに従って変わる部品なし"
|
|
1188
|
+
"figure.text.board-size-no-followers": "サイズに従って変わる部品なし",
|
|
1189
|
+
"figure.button.resize-follow": "比例して変更",
|
|
1190
|
+
"figure.button.resize-follow-axis": "{dimension}を比例して変更",
|
|
1191
|
+
"figure.text.resize-follow-axis": "現在の比率を保って図形サイズに追従します。他の寸法は変更しません。",
|
|
1192
|
+
"figure.label.size-axis": "軸",
|
|
1193
|
+
"figure.label.size-measure": "サイズ (mm)",
|
|
1194
|
+
"figure.label.size-follows": "追従",
|
|
1195
|
+
"figure.label.size-source": "相手",
|
|
1196
|
+
"figure.label.size-source-axis": "相手の軸",
|
|
1197
|
+
"figure.label.size-diameter": "直径",
|
|
1198
|
+
"figure.label.size-figure": "図形",
|
|
1199
|
+
"figure.label.size-ratio": "比率を保つ",
|
|
1200
|
+
"figure.label.size-difference": "差を保つ",
|
|
1201
|
+
"figure.label.size-existing-rule": "既存の式",
|
|
1202
|
+
"figure.label.size-pick-source": "相手を選んでください",
|
|
1203
|
+
"figure.button.size-other-source": "別の相手",
|
|
1204
|
+
"figure.text.size-ratio-result": "{source} {size} mm の {pct}% — 相手が変わると同じ比率で変わります。",
|
|
1205
|
+
"figure.text.size-difference-less": "{source} {size} mm より {gap} mm 小さく — 相手が変わってもこの差を保ちます。",
|
|
1206
|
+
"figure.text.size-difference-more": "{source} {size} mm より {gap} mm 大きく — 相手が変わってもこの差を保ちます。",
|
|
1207
|
+
"figure.text.size-difference-same": "{source} {size} mm と同じ — 相手と同じだけ変わります。",
|
|
1208
|
+
"figure.text.size-custom-rule": "既存の式で決まります。相手や方式を選ぶと、今のサイズを基準に変わります。",
|
|
1209
|
+
"figure.text.size-uniform": "図形全体が一つの比率で拡大・縮小します。",
|
|
1210
|
+
"figure.text.size-invalid": "サイズは 0 より大きい数を入力してください。",
|
|
1211
|
+
"figure.text.size-unavailable-source": "この相手のサイズには追従できません。",
|
|
1212
|
+
"figure.text.size-unpaired": "斜めに置かれているため、追従する軸を決められません。相手と軸を選んでください。",
|
|
1213
|
+
"figure.label.repeat-inactive": "未適用",
|
|
1214
|
+
"figure.label.repeat-active": "適用済み",
|
|
1215
|
+
"figure.label.tab-arrangement": "配置",
|
|
1216
|
+
"figure.text.repeat-intro": "接続先の長さに沿って同じ部品を繰り返し配置します。",
|
|
1217
|
+
"figure.text.repeat-direction": "方向は接続先の軸です。",
|
|
1218
|
+
"figure.text.repeat-draft": "プレビューです。適用ボタンで確定します。",
|
|
1219
|
+
"figure.text.repeat-mode-pitch": "間隔を維持 · 接続先の長さに応じて個数が変わります。",
|
|
1220
|
+
"figure.text.repeat-mode-count": "個数を維持 · 接続先の長さに応じて間隔が変わります。",
|
|
1221
|
+
"figure.text.repeat-remove-explained": "解除すると元の部品が一つ残ります。"
|
|
1188
1222
|
}
|
package/translations/ko.json
CHANGED
|
@@ -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 가 들어가지 않습니다.",
|
|
@@ -697,17 +698,17 @@
|
|
|
697
698
|
"figure.label.face-opening-left": "개구부 왼쪽",
|
|
698
699
|
"figure.label.face-opening-right": "개구부 오른쪽",
|
|
699
700
|
"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": "곡면 위 한 점에 붙어 있어
|
|
701
|
+
"figure.label.repeat-fills": "피치 유지",
|
|
702
|
+
"figure.button.make-repeat": "반복 배치 적용",
|
|
703
|
+
"figure.button.remove-repeat": "반복 배치 해제",
|
|
704
|
+
"figure.label.row-basis": "배치 기준",
|
|
705
|
+
"figure.label.row-by-count": "개수 유지",
|
|
706
|
+
"figure.text.row-count-spreads": "정한 개수를 상대 길이에 고르게 놓습니다. 피치는 자동으로 정해집니다.",
|
|
707
|
+
"figure.text.row-blocked-unfastened": "{part}을(를) 다른 부품에 붙이면 그 부품을 따라 반복 배치할 수 있습니다.",
|
|
708
|
+
"figure.text.row-blocked-on-plane": "장착 평면이 아니라 다른 부품에 붙여야 그 부품을 따라 반복 배치할 수 있습니다.",
|
|
709
|
+
"figure.text.row-blocked-at-origin": "다른 부품의 기준점에 놓여 있어 반복 배치할 수 없습니다. 그 부품의 면에 붙이면 반복 배치할 수 있습니다.",
|
|
710
|
+
"figure.text.row-blocked-holds-parts": "이 부품에 붙은 부품이 있어 반복 배치할 수 없습니다. 먼저 반복 배치한 뒤 붙이면 복사본마다 함께 붙습니다.",
|
|
711
|
+
"figure.text.row-blocked-on-surface": "곡면 위 한 점에 붙어 있어 반복 배치할 수 없습니다. 면에 붙이면 반복 배치할 수 있습니다.",
|
|
711
712
|
"figure.text.aim-self": "{part} 자신에는 붙일 수 없습니다.",
|
|
712
713
|
"figure.text.aim-cannot": "{part}에는 붙일 면이나 곡면이 없습니다.",
|
|
713
714
|
"figure.text.aim-not-here": "{part}의 해당 위치에는 부착할 수 없습니다. 부착할 면을 선택해 주세요.",
|
|
@@ -1184,5 +1185,38 @@
|
|
|
1184
1185
|
"figure.text.board-size-range-explained": "도면에서 변경할 수 있는 크기 범위입니다. 비워 두면 부품에서 허용하는 범위를 사용하고, 값을 입력하면 해당 범위로 제한합니다. 크기 연동이 설정된 부품만 함께 조정되며, 나머지 부품의 크기는 유지됩니다.",
|
|
1185
1186
|
"figure.text.board-size-followers": "크기를 따라 바뀌는 부품: {parts}",
|
|
1186
1187
|
"figure.text.board-size-followers-more": "{first} 외 {rest}개",
|
|
1187
|
-
"figure.text.board-size-no-followers": "크기를 따라 바뀌는 부품 없음"
|
|
1188
|
+
"figure.text.board-size-no-followers": "크기를 따라 바뀌는 부품 없음",
|
|
1189
|
+
"figure.button.resize-follow": "비례 변경",
|
|
1190
|
+
"figure.button.resize-follow-axis": "{dimension} 비례 변경",
|
|
1191
|
+
"figure.text.resize-follow-axis": "현재 치수의 비율을 유지하며 도형 크기를 따라갑니다. 다른 치수는 바꾸지 않습니다.",
|
|
1192
|
+
"figure.label.size-axis": "축",
|
|
1193
|
+
"figure.label.size-measure": "크기 (mm)",
|
|
1194
|
+
"figure.label.size-follows": "따라감",
|
|
1195
|
+
"figure.label.size-source": "상대",
|
|
1196
|
+
"figure.label.size-source-axis": "상대 축",
|
|
1197
|
+
"figure.label.size-diameter": "지름",
|
|
1198
|
+
"figure.label.size-figure": "도형",
|
|
1199
|
+
"figure.label.size-ratio": "비율 유지",
|
|
1200
|
+
"figure.label.size-difference": "간격 유지",
|
|
1201
|
+
"figure.label.size-existing-rule": "기존 식",
|
|
1202
|
+
"figure.label.size-pick-source": "상대를 고르세요",
|
|
1203
|
+
"figure.button.size-other-source": "다른 상대",
|
|
1204
|
+
"figure.text.size-ratio-result": "{source} {size} mm의 {pct}% — 상대가 바뀌면 같은 비율로 바뀝니다.",
|
|
1205
|
+
"figure.text.size-difference-less": "{source} {size} mm보다 {gap} mm 작게 — 상대가 바뀌어도 이 차이를 지킵니다.",
|
|
1206
|
+
"figure.text.size-difference-more": "{source} {size} mm보다 {gap} mm 크게 — 상대가 바뀌어도 이 차이를 지킵니다.",
|
|
1207
|
+
"figure.text.size-difference-same": "{source} {size} mm와 같게 — 상대가 바뀌면 똑같이 바뀝니다.",
|
|
1208
|
+
"figure.text.size-custom-rule": "기존 식으로 정해집니다. 상대나 방식을 고르면 지금 크기를 기준으로 바뀝니다.",
|
|
1209
|
+
"figure.text.size-uniform": "도형 전체가 한 비율로 커지고 작아집니다.",
|
|
1210
|
+
"figure.text.size-invalid": "크기는 0보다 큰 수로 넣으세요.",
|
|
1211
|
+
"figure.text.size-unavailable-source": "이 상대의 크기는 따를 수 없습니다.",
|
|
1212
|
+
"figure.text.size-unpaired": "비스듬히 놓여 따를 축을 정할 수 없습니다. 상대와 축을 고르세요.",
|
|
1213
|
+
"figure.label.repeat-inactive": "미적용",
|
|
1214
|
+
"figure.label.repeat-active": "적용됨",
|
|
1215
|
+
"figure.label.tab-arrangement": "배치",
|
|
1216
|
+
"figure.text.repeat-intro": "붙인 상대의 길이를 따라 같은 부품을 반복해서 놓습니다.",
|
|
1217
|
+
"figure.text.repeat-direction": "방향은 붙인 상대의 축입니다.",
|
|
1218
|
+
"figure.text.repeat-draft": "미리보기입니다. 적용 버튼을 눌러 확정하세요.",
|
|
1219
|
+
"figure.text.repeat-mode-pitch": "피치 유지 · 상대 길이가 바뀌면 개수가 바뀝니다.",
|
|
1220
|
+
"figure.text.repeat-mode-count": "개수 유지 · 상대 길이가 바뀌면 간격이 바뀝니다.",
|
|
1221
|
+
"figure.text.repeat-remove-explained": "해제하면 원본 부품 하나가 남습니다."
|
|
1188
1222
|
}
|
package/translations/ms.json
CHANGED
|
@@ -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": "
|
|
56
|
-
"figure.text.repeat-fits-length": "
|
|
57
|
-
"figure.text.repeat-fixed-count": "
|
|
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.",
|
|
@@ -697,12 +698,12 @@
|
|
|
697
698
|
"figure.label.face-opening-left": "bukaan kiri",
|
|
698
699
|
"figure.label.face-opening-right": "bukaan kanan",
|
|
699
700
|
"figure.label.face-opening-top": "bukaan atas",
|
|
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": "bilangan
|
|
705
|
-
"figure.text.row-count-spreads": "
|
|
701
|
+
"figure.label.repeat-fills": "Kekalkan jarak",
|
|
702
|
+
"figure.button.make-repeat": "Gunakan susunan",
|
|
703
|
+
"figure.button.remove-repeat": "Buang susunan",
|
|
704
|
+
"figure.label.row-basis": "Peraturan susunan",
|
|
705
|
+
"figure.label.row-by-count": "Kekalkan bilangan",
|
|
706
|
+
"figure.text.row-count-spreads": "Agihkan bilangan yang dipilih secara sekata. Jarak pusat dikira secara automatik.",
|
|
706
707
|
"figure.text.row-blocked-unfastened": "Lekatkan {part} pada bahagian lain untuk menyusunnya sebaris di sepanjang bahagian itu.",
|
|
707
708
|
"figure.text.row-blocked-on-plane": "Lekatkan pada bahagian lain, bukan satah pemasangan, untuk menyusunnya sebaris.",
|
|
708
709
|
"figure.text.row-blocked-at-origin": "Ia diletakkan pada titik asal bahagian lain. Lekatkan pada muka bahagian itu untuk menyusunnya sebaris.",
|
|
@@ -1184,5 +1185,38 @@
|
|
|
1184
1185
|
"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
1186
|
"figure.text.board-size-followers": "bahagian yang berubah mengikut saiznya: {parts}",
|
|
1186
1187
|
"figure.text.board-size-followers-more": "{first} dan {rest} lagi",
|
|
1187
|
-
"figure.text.board-size-no-followers": "tiada bahagian berubah mengikut saiznya"
|
|
1188
|
+
"figure.text.board-size-no-followers": "tiada bahagian berubah mengikut saiznya",
|
|
1189
|
+
"figure.button.resize-follow": "Ubah secara berkadar",
|
|
1190
|
+
"figure.button.resize-follow-axis": "Ubah {dimension} secara berkadar",
|
|
1191
|
+
"figure.text.resize-follow-axis": "Ikut saiz rajah pada perkadaran semasa. Dimensi lain tidak berubah.",
|
|
1192
|
+
"figure.label.size-axis": "paksi",
|
|
1193
|
+
"figure.label.size-measure": "saiz (mm)",
|
|
1194
|
+
"figure.label.size-follows": "mengikut",
|
|
1195
|
+
"figure.label.size-source": "sumber",
|
|
1196
|
+
"figure.label.size-source-axis": "paksi sumber",
|
|
1197
|
+
"figure.label.size-diameter": "diameter",
|
|
1198
|
+
"figure.label.size-figure": "rajah",
|
|
1199
|
+
"figure.label.size-ratio": "kekalkan nisbah",
|
|
1200
|
+
"figure.label.size-difference": "kekalkan jarak",
|
|
1201
|
+
"figure.label.size-existing-rule": "formula sedia ada",
|
|
1202
|
+
"figure.label.size-pick-source": "pilih sumber",
|
|
1203
|
+
"figure.button.size-other-source": "sumber lain",
|
|
1204
|
+
"figure.text.size-ratio-result": "{pct}% daripada {source} {size} mm — berubah dengan nisbah yang sama apabila sumber berubah.",
|
|
1205
|
+
"figure.text.size-difference-less": "{gap} mm kurang daripada {source} {size} mm — kekalkan jarak itu apabila sumber berubah.",
|
|
1206
|
+
"figure.text.size-difference-more": "{gap} mm lebih daripada {source} {size} mm — kekalkan jarak itu apabila sumber berubah.",
|
|
1207
|
+
"figure.text.size-difference-same": "sama dengan {source} {size} mm — berubah seperti sumber.",
|
|
1208
|
+
"figure.text.size-custom-rule": "ditetapkan oleh formula sedia ada. pilih sumber atau cara dan ia berubah daripada saiz sekarang.",
|
|
1209
|
+
"figure.text.size-uniform": "seluruh rajah membesar dan mengecil dengan satu nisbah.",
|
|
1210
|
+
"figure.text.size-invalid": "masukkan saiz melebihi 0.",
|
|
1211
|
+
"figure.text.size-unavailable-source": "saiz sumber ini tidak boleh diikut.",
|
|
1212
|
+
"figure.text.size-unpaired": "ia terletak senget, jadi paksi untuk diikut tidak dapat ditentukan. pilih sumber dan paksi.",
|
|
1213
|
+
"figure.label.repeat-inactive": "Belum digunakan",
|
|
1214
|
+
"figure.label.repeat-active": "Digunakan",
|
|
1215
|
+
"figure.label.tab-arrangement": "Susunan",
|
|
1216
|
+
"figure.text.repeat-intro": "Ulang bahagian ini sepanjang bahagian tempat ia dipasang.",
|
|
1217
|
+
"figure.text.repeat-direction": "Arah menggunakan paksi bahagian tempat ia dipasang.",
|
|
1218
|
+
"figure.text.repeat-draft": "Pratonton sahaja. Tekan Gunakan untuk mengesahkan.",
|
|
1219
|
+
"figure.text.repeat-mode-pitch": "Kekalkan jarak · Bilangan berubah mengikut panjang rujukan.",
|
|
1220
|
+
"figure.text.repeat-mode-count": "Kekalkan bilangan · Jarak berubah mengikut panjang rujukan.",
|
|
1221
|
+
"figure.text.repeat-remove-explained": "Membuang susunan meninggalkan satu bahagian asal."
|
|
1188
1222
|
}
|
package/translations/zh.json
CHANGED
|
@@ -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。",
|
|
@@ -697,12 +698,12 @@
|
|
|
697
698
|
"figure.label.face-opening-left": "开口 左侧",
|
|
698
699
|
"figure.label.face-opening-right": "开口 右侧",
|
|
699
700
|
"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": "
|
|
701
|
+
"figure.label.repeat-fills": "保持间距",
|
|
702
|
+
"figure.button.make-repeat": "应用重复排列",
|
|
703
|
+
"figure.button.remove-repeat": "取消重复排列",
|
|
704
|
+
"figure.label.row-basis": "排列方式",
|
|
705
|
+
"figure.label.row-by-count": "保持数量",
|
|
706
|
+
"figure.text.row-count-spreads": "按指定数量沿所连接部件的长度均匀排列,中心间距自动计算。",
|
|
706
707
|
"figure.text.row-blocked-unfastened": "将 {part} 附着到另一个部件后,即可沿该部件排成一列。",
|
|
707
708
|
"figure.text.row-blocked-on-plane": "需附着到另一个部件而不是安装平面,才能沿该部件排成一列。",
|
|
708
709
|
"figure.text.row-blocked-at-origin": "放在另一个部件的基准点上,无法排成一列。附着到该部件的面上后即可排成一列。",
|
|
@@ -1184,5 +1185,38 @@
|
|
|
1184
1185
|
"figure.text.board-size-range-explained": "可在图纸上按此范围调整尺寸。空栏表示部件允许的范围,输入数字则缩小到该值。只有跟随尺寸的部件会一起伸缩,其余保持不变。",
|
|
1185
1186
|
"figure.text.board-size-followers": "随尺寸变化的部件:{parts}",
|
|
1186
1187
|
"figure.text.board-size-followers-more": "{first} 等 {rest} 个",
|
|
1187
|
-
"figure.text.board-size-no-followers": "没有随尺寸变化的部件"
|
|
1188
|
+
"figure.text.board-size-no-followers": "没有随尺寸变化的部件",
|
|
1189
|
+
"figure.button.resize-follow": "按比例变化",
|
|
1190
|
+
"figure.button.resize-follow-axis": "{dimension}按比例变化",
|
|
1191
|
+
"figure.text.resize-follow-axis": "保持当前比例随图形尺寸变化。其他尺寸不变。",
|
|
1192
|
+
"figure.label.size-axis": "轴",
|
|
1193
|
+
"figure.label.size-measure": "尺寸 (mm)",
|
|
1194
|
+
"figure.label.size-follows": "跟随",
|
|
1195
|
+
"figure.label.size-source": "对象",
|
|
1196
|
+
"figure.label.size-source-axis": "对象轴",
|
|
1197
|
+
"figure.label.size-diameter": "直径",
|
|
1198
|
+
"figure.label.size-figure": "图形",
|
|
1199
|
+
"figure.label.size-ratio": "保持比例",
|
|
1200
|
+
"figure.label.size-difference": "保持间距",
|
|
1201
|
+
"figure.label.size-existing-rule": "现有公式",
|
|
1202
|
+
"figure.label.size-pick-source": "请选择对象",
|
|
1203
|
+
"figure.button.size-other-source": "其他对象",
|
|
1204
|
+
"figure.text.size-ratio-result": "{source} {size} mm 的 {pct}% — 对象变化时按相同比例变化。",
|
|
1205
|
+
"figure.text.size-difference-less": "比 {source} {size} mm 小 {gap} mm — 对象变化时保持此差值。",
|
|
1206
|
+
"figure.text.size-difference-more": "比 {source} {size} mm 大 {gap} mm — 对象变化时保持此差值。",
|
|
1207
|
+
"figure.text.size-difference-same": "与 {source} {size} mm 相同 — 随对象同样变化。",
|
|
1208
|
+
"figure.text.size-custom-rule": "由现有公式决定。选择对象或方式后,将以当前尺寸为基准改变。",
|
|
1209
|
+
"figure.text.size-uniform": "整个图形按一个比例放大缩小。",
|
|
1210
|
+
"figure.text.size-invalid": "请输入大于 0 的尺寸。",
|
|
1211
|
+
"figure.text.size-unavailable-source": "无法跟随此对象的尺寸。",
|
|
1212
|
+
"figure.text.size-unpaired": "它斜放着,无法确定要跟随的轴。请选择对象和轴。",
|
|
1213
|
+
"figure.label.repeat-inactive": "未应用",
|
|
1214
|
+
"figure.label.repeat-active": "已应用",
|
|
1215
|
+
"figure.label.tab-arrangement": "排列",
|
|
1216
|
+
"figure.text.repeat-intro": "沿所连接部件的长度重复排列相同部件。",
|
|
1217
|
+
"figure.text.repeat-direction": "方向使用所连接部件的轴。",
|
|
1218
|
+
"figure.text.repeat-draft": "当前为预览。点击应用确认。",
|
|
1219
|
+
"figure.text.repeat-mode-pitch": "保持间距 · 数量随所连接部件的长度变化。",
|
|
1220
|
+
"figure.text.repeat-mode-count": "保持数量 · 间距随所连接部件的长度变化。",
|
|
1221
|
+
"figure.text.repeat-remove-explained": "取消排列后保留一个原始部件。"
|
|
1188
1222
|
}
|