Compare commits

..

122 Commits

Author SHA1 Message Date
CamWight d78895de4d Where a drawing stands: drawing.status in one read (#4894 WE2) (#11352)
drawing.status says each view's status (current, out of date, placeholder or
failed, with why) from what the sheet page last drew, and each dimension's in the
words inspect uses, reading each body once for the call. Nothing is drawn.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 04:41:33 -05:00
CamWight 112e0a3d9c Paper text in SVG: a run's glyph outlines on the writer's grid, filled nonzero (#4890 B2a) (#9708)
The walk puts a text run on the grid as its glyphs' outlines, placed by the run
(`TextRun::outlines`), each loop walked as a fill's: `GridItem::Text`, with the run's
index among its group's items, so a writer that sets real text (PDF) finds it in paint
order. SVG writes one path a run, filled black with its default nonzero rule, so text
looks the same without the font and never reflows. The sheet PNG refuses text by name
until B2b, and its refusal test says so.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 02:09:25 -05:00
CamWight eb0b427a36 Drawings WE3-WE5: commands report where each object sits on a sheet, and select and delete views, dimensions and balloons (#4894) (#11047)
* Where a sheet's objects sit: bounds beside the scene (#4894 WE3)

The sheet scene now says where its border and each view sit on paper: the box
round what each draws, and a view's boundary, so one that can't be drawn can
still be picked. It is worked out once per assembly, beside the scene rather
than in it, so no writer sees it and the page needn't inspect each view.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Selected drawing objects: a view, dimension or balloon in the selection (#4894 WE4)

select.set takes {type: drawing, drawing, object} for the drawing open. It adds no
undo step and changes nothing saved, and a selected object leaves the selection
when an undo takes it or its drawing closes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Delete on a sheet: views, dimensions and balloons in one step (#4894 WE5)

selection.delete now works with a drawing open: a view goes with its dimensions
and balloons as one undo step, and one with views projected from it is refused,
naming them, unless they are selected too or contents: delete takes them. A sheet's
delete and this one share the record's one removal rule.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Tests: a view's box holds what it draws, and what's chosen goes in any order (#4894 WE3, WE5)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 00:59:41 -05:00
CamWight ba69e5488c Drawings WE1: Inspect Drawing lists each sheet's views, with their names, dimensions and balloons (#4894) (#11350)
* Where a sheet's objects sit: bounds beside the scene (#4894 WE3)

The sheet scene now says where its border and each view sit on paper: the box
round what each draws, and a view's boundary, so one that can't be drawn can
still be picked. It is worked out once per assembly, beside the scene rather
than in it, so no writer sees it and the page needn't inspect each view.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Selected drawing objects: a view, dimension or balloon in the selection (#4894 WE4)

select.set takes {type: drawing, drawing, object} for the drawing open. It adds no
undo step and changes nothing saved, and a selected object leaves the selection
when an undo takes it or its drawing closes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Delete on a sheet: views, dimensions and balloons in one step (#4894 WE5)

selection.delete now works with a drawing open: a view goes with its dimensions
and balloons as one undo step, and one with views projected from it is refused,
naming them, unless they are selected too or contents: delete takes them. A sheet's
delete and this one share the record's one removal rule.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Tests: a view's box holds what it draws, and what's chosen goes in any order (#4894 WE3, WE5)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* What's on each sheet: drawing.inspect lists its views (#4894 WE1)

Each sheet in drawing.inspect now lists its views: each base view by id, followed
by those projected from it, with what it is called and its dimensions and balloons.
It is one pass over the record with no model read, so the Browser can read it once
per revision.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 00:59:36 -05:00
CamWight 9308095744 Paper text in the browser: Japanese through the font the web app fetches (#4890 F6) (#10516)
The browser has no font folders, so `font_dirs` is empty there. The first
kana or Han a text's font lacks asks for the font the web app already
fetches on demand (BIZ UDPGothic); no new file. The text is pending until
it comes, then sets whatever it has a glyph for. If the fetch fails, or
the font lacks a character, that character is refused by name, and the
refusal says the web covers Japanese for now.

The web app starts the fetch through its existing loader, once, when a
text waits for the font, and hands the font over when it arrives.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 21:59:34 -05:00
CamWight 5bf3940c04 Sheet tables on paper: a table's lines (#3874, #4890 W10.7, D3a) (#7745)
TableLayout::paper gives a placed table's lines as one paper group of
the kind it is (parts_list or revision_table), so both sheet tables reach
paper through one function:

- the outline as one closed stroke, outline_line_mm wide;
- a stroke cell_line_mm wide across the whole table at each row boundary
  inside the outline, the heading's too, from the top whichever side the
  heading is on;
- a stroke down the whole table at each column boundary inside it.

Each line is drawn once, centred on its edge, on the layout's own
corners. The cells' text follows once the paper scene has text (D3b,
after #4813); hatch clearance waits for hatching.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 21:53:06 -05:00
CamWight 2f483a00c0 Drawing text F4: a character missing from the chosen font is drawn with another installed font (#4890) (#10515)
* Drawings: the font a drawing's text is set in, by family (#4890 F1)

A drawing names the font family its text is set in (`font`, saved only when
set; a pending drawing-format file). `drawing.create` and `drawing.set` take
it, and `drawing.inspect` reports it, with `font_note` when this computer sets
the text in the built-in font instead ("Futura isn't on this computer: set in
Liberation Sans"). Drawings name fonts by family, so they travel: a font file
is refused.

Paper text finds the family among the installed fonts as sketch text does
(`paper_text_in` for given folders), admits each face once a process, and
sets a family that is missing or can't be set on paper in the built-in font.
Bold takes the family's bold face; the serif flag comes from the face's OS/2
family class. The fixed list of drawing fonts is gone.

New drawings made in the app take the interface font when it is a family.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Paper text: any face with outlines is set, and says how a PDF may carry it (#4890 F2)

A face is admitted for paper whatever its tables lack:
- a variable face is set at its default instance, which is what a PDF draws;
- its cap height is the one sketch text scales it by (OS/2, else the top of
  its `H`, else 70 % of the em);
- its PostScript name is what a PDF name can hold of its own, else of its
  family and style, else `Font-` and the start of its id;
- without a `post` table it has no italic angle, and a fixed pitch when every
  glyph advances alike;
- its stem width is measured across its `l`, else taken from its weight.
A bitmap or colour-only face, with no outlines to fill, is refused by name.

`Font.embed` says how a PDF may carry the face, from its embedding permissions:
a subset, the whole face (no subsetting), or not at all (restricted, bitmap
embedding only, or CFF2 outlines), when the PDF draws the runs' outlines with
their text beside them. Which characters a PDF name may hold is now one rule,
`is_postscript_char`, that the record's check and sketch share.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Paper text: a font's family, for readers that pick fonts by family (#4890 F2)

`Font.family` is the face's own family name: its typographic family (name
ID 16), else its family (ID 1), read from the face itself (in a collection,
not the first face), without control characters and at most 255 characters;
empty when it has neither. A DXF text style picks a font by it; `Font.id`
stays the identity, so two faces of one family are still two fonts
(@0xlillith on #4890). The name lookup PostScript names use is one function
now, shared by both.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Fonts: one list of fallback fonts per script, in sketch (#4890 F3)

The interface's lists of fonts to try for a script move down to
`sketch::fonts::fallback`, so drawings can use the same ones. Each row is
a family and the files it's known to be in. The interface reads the files
in the order it always did, so what it finds is unchanged.

- `CRAFT_FONTS_DIR` joins `font_dirs`, as the interface already has it:
  `SOLIDCRAFT_FONT_DIRS`, else the pack, then the system's folders.
- `font_files` sorts the files within each folder, so a search doesn't
  depend on how the system lists a folder.
- The Windows folder search takes its names from the Japanese list
  instead of its own copy of them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Paper text: a character its font lacks falls back to a font that has it (#4890 F4)

A text on paper was refused for any character its font lacks. Now each
such character falls back to an installed font that has it: the script's
list in `sketch::fonts::fallback` first, Han by the drawing's language,
then the first face in sorted order with outlines and the character.

- Runs split by direction, then by font. Every font takes the same em
  size, on the line's baseline and pitch. A space, a digit or punctuation
  stays with the run it follows when that font has it; a mark stays with
  its letter. A font fallen back to is shaped, with the drawing's
  language. Its nearest style is used: bold or italic isn't refused.
- A line its own font has all of is set as it was.
- A character no font has is still refused by name.
- The last-resort search reads each file's character map alone, stays
  within `MAX_FONT_FILES`, and keeps its answers, misses too, for the
  process.
- `paper_text_now` is for the window's thread: the search runs on a thread
  of its own (`font-search`) and it refuses with `FontPending` until the
  answers are in. `paper_text` searches where it's called.
- `paper_fallback_notes` names what fell back, for a drawing's status,
  from the answers so far: it looks for no font.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 21:27:16 -05:00
Nathan Dane d5fd14135f Add the native Drawing workspace UI scaffold (#5349)
* docs: plan drawing workspace UI implementation

* assets: add drawing icon drafts for owner review

* feat(ui): add drawing workspace scaffold with shared ribbon and docked settings

Expose planned Drawing tools without introducing drawing documents, paper rendering or CAD behavior. Reuse existing source BOM, properties and flat-pattern services; retain placeholders for unapproved icon drafts.

Validation: full UI, kernel, icon, clippy, wasm and layout checks passed. Full cargo xtask ci reports three geometry failures that also reproduce on unchanged drawings base 3b982ca: counterbored chamfered-disc ring cut, robustness seed 36 and seed 71. No geometry source or golden fixtures changed.

* Preserve default icon palette in Drawing scaffold tests

* Preserve Drawing providers and complete scaffold translations
2026-11-01 21:45:05 -05:00
CamWight 85be50df0d Reference parts: a view shows them by percent, not by a margin (#5866 V5c) (#10713)
reference_margin_mm becomes reference_shown_percent, 0 to 100. At 0 the
boundary is the model's box, as before, and no reference part is measured.
At 100 it holds the model and all the view's reference parts. Between, each
side moves on its own, so a part on one side grows only that side.

The model's middle now places a view, not the middle of what it shows, so a
view stays lined up with its projected views as its box grows. With nothing
grown the two are the same point and the picture is the same.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 18:36:53 -05:00
CamWight 71edae80df Drawing views made by command: drawing.view.base and drawing.view.projected (#4816) (#9254)
* Drawing views made by command: drawing.view.base and drawing.view.projected (#4816)

drawing.view.base {sheet, view?, scale?, position_mm?, the view settings?} adds a base view of the
drawing's design to a sheet. Without a scale it takes the largest ISO 5455 preset at which it lies
inside the sheet's drawing space, centred where it goes, its margin included, as the snapshot fits
it; that scale is saved as the view's own (1:1 with nothing to measure).

drawing.view.projected {parent, side, place?} adds a view projected from a saved view, on its
parent's sheet, following its parent's scale and display settings. Without a place it is lined up
with its parent, its boundary 20 mm past the parent's (DEFAULT_GAP_MM, until a drawing style
gives it).

Each is one undo step through edit_drawing, refused with nothing changed when the record's rules
refuse it; the reply gives the view, its sheet, its scale, its boundary and, when it leaves the
sheet's drawing space, itself as outside (it isn't moved back in). Unknown fields are refused.

One rule, one place: whether a view leaves its drawing space is drawing_view::leaves, and the sheet
of an id is drawing_view::sheet, used by outside() and both commands.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing views made by command: a build fix, and each view one undo step, tested (#4816)

From the review of the view create commands:
- drawing.view.base measures the shown bodies (`measure` takes them, not the session), so it builds.
- The nothing-to-measure case is a design with one sketch and no bodies, as the other view tests
  make it: drawing.create refuses an empty design.
- The schema test gives drawing.view.base its own key list (it takes no snapshot-only keys).
- Every view a test makes is checked to be one undo step, not only the first: a second step made
  under the first (a nested edit) still let one undo take the view away.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 17:12:38 -05:00
CamWight 93baf88e2d Paper scene: pictures in the sheet PNG and SVG (#5624, W17b S5) (#7591)
* Paper scene: one walk onto a writer's number grid, for every writer (#4890, C4)

The SVG writer kept its own number grid: each coordinate whole nanometres, every joint written once,
a closed path ending exactly on its first point, slivers merged into the next piece and a path's
last piece kept. PDF, PNG and the Drawing workspace's canvas need the same rules, so they move into
`geom::paper::grid`, and the SVG writer only formats what the walk gives it.

- `Grid`: `per_mm` steps a millimetre. `Grid::NANOMETRE` (six decimals of a millimetre) is SVG's.
  `Grid::new` takes 1 to 1e9; a power of two keeps every number exact as a binary float, which a
  writer of 32-bit numbers such as PDF can use.
- `Prepared::on_grid(grid) -> OnGrid`: each group's items as paths of `Piece`s (lines, arcs of at
  most a quarter turn, cubics, parabolas), y up as in the scene, a closed path's closing line left
  to the writer's close, and a report of widths snapped and pieces merged. Slivers are measured in
  the grid's own steps, so a coarser grid merges more.
- The SVG writer flips y on the whole numbers it's given and writes the same bytes as before.
  `SvgReport` is the grid's report.
- Ellipses, hyperbolas and Béziers above degree 3 are still refused (A3b), now by the walk.

DXF stays on its own number rule for now: it writes exact entities (ELLIPSE, SPLINE) and is being
reworked under #5318 to #5321; whether its polylines take a grid is decided there.

Tests: every SVG test unchanged, bytes included; the grid's rounding and its bounds; the A3 border
on the grid (y up, closing line left out, fill loops closed); slivers in the grid's own steps, with
the merge boundary both ways (10 and 11 steps, a 6-8 and a 7-8 step); an arc's quarters with their
radius and turn in steps; a width under half a step made one step; an ellipse refused.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Paper scene: a sheet PNG at a chosen dpi and colour (#4890 A4)

A new writer, io::paper::paper_png, that reads the shared walk on the
nanometre grid, the one the SVG writer uses, so a PNG draws the same joints,
closures and merges. Neither the walk nor the SVG writer changes.

- Curves are flattened within 1/8 px by geom::paper::flatten, which turns
  each walked piece back into its Seg2 (an arc's centre from its ends, radius
  and direction) and takes Seg2::chords' steps. chords is the bound
  Seg2::polyline already used (the chord's bulge for arcs, Wang's bound for
  the rest), moved out of polyline unchanged so both read one rule.
  polyline itself doesn't fit: it floors an arc's tolerance at a millionth of
  its radius and caps a piece at 4096 steps, coarser than asked without a
  word (0.1 mm, 9 px, on a 100 m arc at 2400 dpi). Over 2^20 points a path,
  or 2^24 a sheet, is refused instead. tiny-skia only gets lines: its own
  flattening stops at 64 lines a curve, more than a pixel off on a large arc
  at a high dpi.
- 25 to 2400 dpi (300 by default). 8-bit greyscale (the default), 1-bit
  black and white (no anti-aliasing, every line at least a pixel wide), 24-bit
  colour, or 32-bit colour with transparent paper.
- The file records its dpi (pHYs) and sRGB, so it prints at the sheet's size.
- Each line is stroked once, then the sheet is drawn in bands of 16 MiB of
  pixels streamed into the file, so memory doesn't grow with the sheet. Each
  band also draws a row above and below that isn't written: tiny-skia starts
  an edge a little differently where a clip cuts it (one subsample, 16
  levels, in a few pixels), so no written row sits on a cut and the bytes are
  the same whatever the band.
- A line under a pixel wide (in greyscale and colour) is drawn as tiny-skia's
  hairline, its coverage scaled by its width: its stroked outline would fall
  between the rows the rasteriser samples and vanish.

Tests: the pixel size and pHYs of A4 at 300 and 25 dpi; a line's and a fill's
pixels at 254 dpi (butt ends, the fill's hole); each colour's PNG type, ink
and paper; a hairline between two rows' centres that is light grey in
greyscale and stays one pixel in black and white, and a bar a fifth of a pixel
wide that black and white inks by its centre; a closed outline joined at its
start; a 40 mm circle round to the pixel at 600 dpi; the same bytes drawn 1, 3
or 7 rows at a time or all at once, and again; the refusals; the flattener's
bounds and counts, and its point cap at the exact boundary; the scene-JSON
fuzz through the PNG writer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Geom: the pixel grid of a paper rectangle (#5624, W17b S1)

One rule for where a picture's pixels lie on paper, shared by the picture renderer and the writers
that place it: anchored at the rectangle's lower-left corner, rounded outward (W = ceil(w / p - 1e-9)
with p = 25.4 / dpi), so the overhang is at the top and the right; rows run top-down. At most
65,536 px a side; nothing caps the total, as pictures are drawn in tiles and strips.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Paper scene: pictures, and a sheet's pixel grid and windows (#5624, W17b S3; #4890 A9)

A picture on a sheet is `Item::Picture`: the rectangle it sits in, the name of its pixels
(`source`, opaque as a group's object id is) and its opacity. The pixels stay out of the scene: a
writer asks a `Pictures` provider for them on the grid it draws on. A PNG at 1200 dpi then gets a
shaded view drawn at 1200 dpi, not one stretched, and a scene stays small, plain data.

The pixel grid gains the two rules a sheet needs, beside the rectangle's own grid:
- `PixelGrid::sheet`: the whole sheet's grid, anchored at its top-left corner, as an image of
  the sheet is drawn.
- `PixelGrid::window`: the columns and rows a rectangle meets; a side on a pixel edge takes no
  sliver beyond it. A picture drawn into its window of the sheet grid is placed by copying whole
  pixels.

`Picture::grid` is a picture's own grid at a dpi, for SVG and PDF to embed. `Scene::validate`
counts a picture as one record. It refuses a rectangle outside the coordinate bound or without
area, and an opacity that isn't above 0 and at most 1. `Aabb2` is read and written as
`{min, max}`.

On the walk (C4), which S3 follows here: `GridItem::Picture` passes a picture through with its rectangle in
millimetres, since the pixel grid places its pixels, and the SVG and PNG writers refuse it ("not supported yet:
pictures (A9)") until their own slices. `GridItem`, `GridGroup` and `OnGrid` are `PartialEq` only, as a
picture holds numbers that aren't `Eq`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Paper scene: pictures in a sheet PNG (#5624, W17b S5)

The sheet PNG writer draws the scene's pictures (S3's Item::Picture) where
the scene orders them, between its lines and fills, from a Pictures provider.

- The PNG is now the sheet's pixel grid (PixelGrid::sheet, S1): anchored at
  the sheet's top-left corner and rounded outward, so nothing is clipped.
  210 mm at 300 dpi is 2481 px (it was 2480, rounded to the nearest). A side
  over 65,536 px is refused and the refusal names the limit ("a sheet PNG
  side of ... px at ... dpi is over the limit of 65536 px"); an A0 sheet
  fits up to about 1400 dpi.
- A picture fills exactly its window of that grid, so it registers with the
  lines drawn over the same rectangle. Each band asks the provider for just
  its own rows, as straight-alpha sRGB RGBA, and the bytes are checked: too
  few or too many, or the provider's error, refuse the PNG with the picture's
  source named. paper::NoPictures refuses every picture.
- Pictures are asked for at most MAX_PICTURE_DPI (1200): above it, on the
  grid k = ceil(dpi / 1200) times coarser, whose pixels each fill exactly
  k x k of the sheet's (both grids share the top-left anchor), so a 2400 dpi
  export doesn't ask a renderer for four times the pixels.
- Source-over in sRGB, the picture's alpha times its opacity; transparent
  paper keeps the alpha. In black and white each picture pixel is dithered
  with an 8 x 8 ordered (Bayer) matrix at its place on the sheet, so bands
  don't show; lines stay solid. PngReport says whether anything was
  dithered.
- In the writer a picture is one more shape a band draws, beside A4's
  outlines, fills and hairlines; the walk's picture arm passes pictures
  through, and the SVG writer still refuses them (A9).

Tests: a picture's exact window and its register with a fill over the same
rectangle, also on a sheet 100.8 px high (the grid anchored at its top);
pictures keep their place in the paint order; opacity scales the alpha (on
white and transparent paper, and the picture's own half alpha); above 1200
dpi a coarser picture's pixels are each copied 2 x 2; black and white
dithers half of mid grey and keeps a line over it solid, whatever the band;
a provider's short rows, its error and no provider are refused, and a
picture off the sheet asks for nothing; the bands test draws three pictures
1, 3 or 7 rows at a time, the same bytes and each picture row asked for
once; the sheet sizes on the outward grid and the 65,536 px refusal; the PNG
fuzz with a picture.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Paper scene: pictures in a sheet SVG (#5624, W17b S5)

A picture is an <image> holding a PNG as a data URI, on the picture's own
pixel grid (Picture::grid) at the picture resolution the caller gives,
25 to 1200 dpi: paper_svg(scene, pictures, picture_dpi), the same shape as
paper_png. Only its window over the sheet is embedded and asked for, so it
never costs more pixels than the sheet holds; one off the sheet is left out.
Its x, y, width and height are the grid's own pixel edges put on the
nanometre grid every line is on, so a line on its edge has its number.
Opacity below 1 is written, in millionths as lengths are.

The PNG writer gives the embed its encoder settings (sRGB, the dpi
recorded) and its provider check, now one function each, and streams the
picture a band of rows at a time, refused once it passes the room left
under the file's 64 MiB.

Tests: the 1182 x 591 px grid at 300 dpi and its edges, a line on the
edge, paint order and opacity, the crop and the picture off the sheet, the
bands, and each refusal; the SVG fuzz case gains a picture.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 14:01:08 -05:00
CamWight 4060069fcd Drawing views: shaded snapshots and their pictures' parts (#5624, W17b S4) (#9798)
* Paper scene: one walk onto a writer's number grid, for every writer (#4890, C4)

The SVG writer kept its own number grid: each coordinate whole nanometres, every joint written once,
a closed path ending exactly on its first point, slivers merged into the next piece and a path's
last piece kept. PDF, PNG and the Drawing workspace's canvas need the same rules, so they move into
`geom::paper::grid`, and the SVG writer only formats what the walk gives it.

- `Grid`: `per_mm` steps a millimetre. `Grid::NANOMETRE` (six decimals of a millimetre) is SVG's.
  `Grid::new` takes 1 to 1e9; a power of two keeps every number exact as a binary float, which a
  writer of 32-bit numbers such as PDF can use.
- `Prepared::on_grid(grid) -> OnGrid`: each group's items as paths of `Piece`s (lines, arcs of at
  most a quarter turn, cubics, parabolas), y up as in the scene, a closed path's closing line left
  to the writer's close, and a report of widths snapped and pieces merged. Slivers are measured in
  the grid's own steps, so a coarser grid merges more.
- The SVG writer flips y on the whole numbers it's given and writes the same bytes as before.
  `SvgReport` is the grid's report.
- Ellipses, hyperbolas and Béziers above degree 3 are still refused (A3b), now by the walk.

DXF stays on its own number rule for now: it writes exact entities (ELLIPSE, SPLINE) and is being
reworked under #5318 to #5321; whether its polylines take a grid is decided there.

Tests: every SVG test unchanged, bytes included; the grid's rounding and its bounds; the A3 border
on the grid (y up, closing line left out, fill loops closed); slivers in the grid's own steps, with
the merge boundary both ways (10 and 11 steps, a 6-8 and a 7-8 step); an arc's quarters with their
radius and turn in steps; a width under half a step made one step; an ellipse refused.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Paper scene: a sheet PNG at a chosen dpi and colour (#4890 A4)

A new writer, io::paper::paper_png, that reads the shared walk on the
nanometre grid, the one the SVG writer uses, so a PNG draws the same joints,
closures and merges. Neither the walk nor the SVG writer changes.

- Curves are flattened within 1/8 px by geom::paper::flatten, which turns
  each walked piece back into its Seg2 (an arc's centre from its ends, radius
  and direction) and takes Seg2::chords' steps. chords is the bound
  Seg2::polyline already used (the chord's bulge for arcs, Wang's bound for
  the rest), moved out of polyline unchanged so both read one rule.
  polyline itself doesn't fit: it floors an arc's tolerance at a millionth of
  its radius and caps a piece at 4096 steps, coarser than asked without a
  word (0.1 mm, 9 px, on a 100 m arc at 2400 dpi). Over 2^20 points a path,
  or 2^24 a sheet, is refused instead. tiny-skia only gets lines: its own
  flattening stops at 64 lines a curve, more than a pixel off on a large arc
  at a high dpi.
- 25 to 2400 dpi (300 by default). 8-bit greyscale (the default), 1-bit
  black and white (no anti-aliasing, every line at least a pixel wide), 24-bit
  colour, or 32-bit colour with transparent paper.
- The file records its dpi (pHYs) and sRGB, so it prints at the sheet's size.
- Each line is stroked once, then the sheet is drawn in bands of 16 MiB of
  pixels streamed into the file, so memory doesn't grow with the sheet. Each
  band also draws a row above and below that isn't written: tiny-skia starts
  an edge a little differently where a clip cuts it (one subsample, 16
  levels, in a few pixels), so no written row sits on a cut and the bytes are
  the same whatever the band.
- A line under a pixel wide (in greyscale and colour) is drawn as tiny-skia's
  hairline, its coverage scaled by its width: its stroked outline would fall
  between the rows the rasteriser samples and vanish.

Tests: the pixel size and pHYs of A4 at 300 and 25 dpi; a line's and a fill's
pixels at 254 dpi (butt ends, the fill's hole); each colour's PNG type, ink
and paper; a hairline between two rows' centres that is light grey in
greyscale and stays one pixel in black and white, and a bar a fifth of a pixel
wide that black and white inks by its centre; a closed outline joined at its
start; a 40 mm circle round to the pixel at 600 dpi; the same bytes drawn 1, 3
or 7 rows at a time or all at once, and again; the refusals; the flattener's
bounds and counts, and its point cap at the exact boundary; the scene-JSON
fuzz through the PNG writer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Geom: the pixel grid of a paper rectangle (#5624, W17b S1)

One rule for where a picture's pixels lie on paper, shared by the picture renderer and the writers
that place it: anchored at the rectangle's lower-left corner, rounded outward (W = ceil(w / p - 1e-9)
with p = 25.4 / dpi), so the overhang is at the top and the right; rows run top-down. At most
65,536 px a side; nothing caps the total, as pictures are drawn in tiles and strips.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Paper scene: pictures, and a sheet's pixel grid and windows (#5624, W17b S3; #4890 A9)

A picture on a sheet is `Item::Picture`: the rectangle it sits in, the name of its pixels
(`source`, opaque as a group's object id is) and its opacity. The pixels stay out of the scene: a
writer asks a `Pictures` provider for them on the grid it draws on. A PNG at 1200 dpi then gets a
shaded view drawn at 1200 dpi, not one stretched, and a scene stays small, plain data.

The pixel grid gains the two rules a sheet needs, beside the rectangle's own grid:
- `PixelGrid::sheet`: the whole sheet's grid, anchored at its top-left corner, as an image of
  the sheet is drawn.
- `PixelGrid::window`: the columns and rows a rectangle meets; a side on a pixel edge takes no
  sliver beyond it. A picture drawn into its window of the sheet grid is placed by copying whole
  pixels.

`Picture::grid` is a picture's own grid at a dpi, for SVG and PDF to embed. `Scene::validate`
counts a picture as one record. It refuses a rectangle outside the coordinate bound or without
area, and an opacity that isn't above 0 and at most 1. `Aabb2` is read and written as
`{min, max}`.

On the walk (C4), which S3 follows here: `GridItem::Picture` passes a picture through with its rectangle in
millimetres, since the pixel grid places its pixels, and the SVG and PNG writers refuse it ("not supported yet:
pictures (A9)") until their own slices. `GridItem`, `GridGroup` and `OnGrid` are `PartialEq` only, as a
picture holds numbers that aren't `Eq`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Paper scene: pictures in a sheet PNG (#5624, W17b S5)

The sheet PNG writer draws the scene's pictures (S3's Item::Picture) where
the scene orders them, between its lines and fills, from a Pictures provider.

- The PNG is now the sheet's pixel grid (PixelGrid::sheet, S1): anchored at
  the sheet's top-left corner and rounded outward, so nothing is clipped.
  210 mm at 300 dpi is 2481 px (it was 2480, rounded to the nearest). A side
  over 65,536 px is refused and the refusal names the limit ("a sheet PNG
  side of ... px at ... dpi is over the limit of 65536 px"); an A0 sheet
  fits up to about 1400 dpi.
- A picture fills exactly its window of that grid, so it registers with the
  lines drawn over the same rectangle. Each band asks the provider for just
  its own rows, as straight-alpha sRGB RGBA, and the bytes are checked: too
  few or too many, or the provider's error, refuse the PNG with the picture's
  source named. paper::NoPictures refuses every picture.
- Pictures are asked for at most MAX_PICTURE_DPI (1200): above it, on the
  grid k = ceil(dpi / 1200) times coarser, whose pixels each fill exactly
  k x k of the sheet's (both grids share the top-left anchor), so a 2400 dpi
  export doesn't ask a renderer for four times the pixels.
- Source-over in sRGB, the picture's alpha times its opacity; transparent
  paper keeps the alpha. In black and white each picture pixel is dithered
  with an 8 x 8 ordered (Bayer) matrix at its place on the sheet, so bands
  don't show; lines stay solid. PngReport says whether anything was
  dithered.
- In the writer a picture is one more shape a band draws, beside A4's
  outlines, fills and hairlines; the walk's picture arm passes pictures
  through, and the SVG writer still refuses them (A9).

Tests: a picture's exact window and its register with a fill over the same
rectangle, also on a sheet 100.8 px high (the grid anchored at its top);
pictures keep their place in the paint order; opacity scales the alpha (on
white and transparent paper, and the picture's own half alpha); above 1200
dpi a coarser picture's pixels are each copied 2 x 2; black and white
dithers half of mid grey and keeps a line over it solid, whatever the band;
a provider's short rows, its error and no provider are refused, and a
picture off the sheet asks for nothing; the bands test draws three pictures
1, 3 or 7 rows at a time, the same bytes and each picture row asked for
once; the sheet sizes on the outward grid and the 65,536 px refusal; the PNG
fuzz with a picture.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Paper scene: pictures in a sheet SVG (#5624, W17b S5)

A picture is an <image> holding a PNG as a data URI, on the picture's own
pixel grid (Picture::grid) at the picture resolution the caller gives,
25 to 1200 dpi: paper_svg(scene, pictures, picture_dpi), the same shape as
paper_png. Only its window over the sheet is embedded and asked for, so it
never costs more pixels than the sheet holds; one off the sheet is left out.
Its x, y, width and height are the grid's own pixel edges put on the
nanometre grid every line is on, so a line on its edge has its number.
Opacity below 1 is written, in millionths as lengths are.

The PNG writer gives the embed its encoder settings (sRGB, the dpi
recorded) and its provider check, now one function each, and streams the
picture a band of rows at a time, refused once it passes the room left
under the file's 64 MiB.

Tests: the 1182 x 591 px grid at 300 dpi and its edges, a line on the
edge, paint order and opacity, the crop and the picture off the sheet, the
bands, and each refusal; the SVG fuzz case gains a picture.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing views: shaded snapshots and their pictures' parts (#5624, W17b S4)

drawing.view.snapshot takes `shaded` as a display or reference style and,
when a picture is drawn, says which: picture {pixels, dpi, rect_mm}, the
boundary's pixel grid at the sheet's dpi or 1200, the lower, since lines
may export finer. It renders nothing. A shaded part's own lines are left
out of the reply, as its picture draws it; it still hides what lies behind
it. shaded_visible and shaded_visible_hidden stay refused until the view's
exact lines (W06), and shaded with `scene` (and on a sheet) until the
paper scene draws pictures.

- engine::drawing_picture: the pictures a view draws, bottom first, and how
  each body takes part in each (painted, depth only, left out). The model
  always hides reference parts behind it; reference parts hide the model
  only when reference_hides_model is on; shaded reference parts that don't
  get a picture of their own under the model's, so they never cover it.
- product_scene::extract_where: the scene for the bodies a caller picks;
  extract keeps the browser's eye, a drawing draws every body.

Tests: every style and hide case, reference parts through a subassembly
and a part, the picture's size at 300, 1200 and 2400 dpi, a view with
nothing shaded, the hidden body in the filtered scene, and which lines a
shaded model or shaded reference parts leave.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 14:01:04 -05:00
CamWight a4c9bc380f Paper scene: text runs and their fonts, as records with their rules (#4890 B1a) (#9512)
`Item::Text` is a run of placed glyphs in one font, with its logical text and the clusters that
tie the two together, and `Scene.fonts` the table of the fonts the runs use (as posted on #4890,
with each glyph's `hmtx` advance). `Scene::validate` holds them to the posted rules. Writers never
parse a font.
- A run names its font by the font's id (a hash of its face's bytes and index), so groups laid
  out apart name a font alike whichever machine's font it is; `Scene::add_fonts` joins their
  tables at assembly, kept in order of id, so the same input gives the same bytes.
- A font's bytes never go through serde: a scene read from JSON is refused until they come from
  the font of the id it names.
- `TextRun::outlines` places the glyph outlines on the sheet, for the writers to fill nonzero.
The SVG writer refuses text by name until B2. `Scene::new` builds a scene without text, so the
next field doesn't touch every caller again.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 13:15:32 -05:00
CamWight f219d9b795 Paper text: a text laid out by sketch's rule, as the scene's runs and their drawing font (#4890 B1b) (#9513)
* Paper scene: text runs and their fonts, as records with their rules (#4890 B1a)

`Item::Text` is a run of placed glyphs in one font, with its logical text and the clusters that
tie the two together, and `Scene.fonts` the table of the fonts the runs use (as posted on #4890,
with each glyph's `hmtx` advance). `Scene::validate` holds them to the posted rules. Writers never
parse a font.
- A run names its font by the font's id (a hash of its face's bytes and index), so groups laid
  out apart name a font alike whichever machine's font it is; `Scene::add_fonts` joins their
  tables at assembly, kept in order of id, so the same input gives the same bytes.
- A font's bytes never go through serde: a scene read from JSON is refused until they come from
  the font of the id it names.
- `TextRun::outlines` places the glyph outlines on the sheet, for the writers to fill nonzero.
The SVG writer refuses text by name until B2. `Scene::new` builds a scene without text, so the
next field doesn't touch every caller again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Paper text: a text laid out by sketch's rule, as the scene's runs and their drawing font (#4890 B1b)

`paper_text` lays a text out with `TextMetrics`, the rule sketch text draws and measures with, and
returns the paper scene's runs of placed glyphs (B1a) with the font they are set in, holding the
glyphs they place: each one's `hmtx` advance and its outline in font units.
- Drawings are set in bundled fonts only (`DRAWING_FONTS`: Liberation Sans for now). A font is
  admitted once: a static face with a PostScript name, a cap height and a `post` table, its stem
  width measured across its `l`, and its id hashed then. A run names its font by that id.
- A character the font has no glyph for is refused by name; bold is refused; an italic leans as
  sketch text's made-up italic does; text on paper follows no path.
- Lines break a pitch apart and align as sketch text's do. A line with right-to-left characters
  is a run per direction, shaped, with clusters from the shaper; any other is one run, a
  character to a glyph.
`TextMetrics` keeps one layout: it now reports each glyph's cluster and the line's runs, and the
glyph outline walk gives loops of `Seg2`, which sketch text turns into the geometry it drew before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Paper text: the fonts a text uses, each once (#4890 F0)

`paper_text` returns its runs with the list of fonts they use, each once in order of id (so the
same text gives the same list) and each holding exactly the glyphs its runs place, where it
returned one font. Still one drawing font today; the list is the shape a text set in several
fonts (a Latin, Arabic or CJK line) needs, and `Scene::add_fonts` already takes it as it is.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 13:15:28 -05:00
CamWight 21888e8000 Drawing views: reference parts in a view's lines and thin on paper (#5866, V5) (#10520)
* Reference parts in a drawing view's lines (V5a, #5866)

A body placed through an occurrence that counts as reference is a reference
part: one rule, Document::reference_occurrences. Its lines say so in replies.
With reference_hides_model off (the default) the model's lines skip reference
parts at the one occlusion test, and reference lines test against everything.
The two roles merge apart, so a reference line never takes a model line's
place on one stretch. Extents come from the model parts when there are any. A
sketch curve is the model's: a reference part hides it only as it hides the model.

One thing the plan didn't name: reference lines stop at the view's boundary
(extents and reference margin) when model parts are there too, which is what
the margin is for; a part much bigger than the model would otherwise run off
the sheet.

Hidden reference lines in a scene are refused until dashed lines (V7b), as the
model's are.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Reference parts on paper: thin, under the model's lines (V5b, #5866)

Saved views and the snapshot's scene alike, 0.25 mm until the drawing styles
slice sets widths by kind of line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Reference parts: tests the planted faults asked for (#5866 V5)

A reference line against a model line on one stretch, and against another reference part; one part
placed through a reference assembly and on its own; a dimension on a reference part's edge; undoing
and redoing a change of type, set on the occurrence or its component; and a saved view's setting.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* A test reads any other paper item as no stroke (#5866 V5)

Naming Fill alone would stop compiling when #7590 adds a kind of item, with
no conflict for git to show.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 11:51:20 -05:00
CamWight 9b73ec8d9d Display units: every length unit of the expression table shows its own numbers (#4896) (#7809)
A drawing's fixed unit may be any length unit of the expression unit
table (expr::UNITS: um, inch, yd, mil and the rest besides a design's
five), but the display functions knew only the five and showed the
others' measurements as millimetres. unit_scale now reads the same
table, so the two can't drift apart again; the five keep exactly the
scales they had (1 over 10, 1000, 25.4 and 304.8). The inch rule (a
fourth digit when it means something) follows an inch's size, so
`inch` reads as `in` does.

A design's own units are only the five, so nothing it shows changes.
The test that pinned `inch` to millimetres becomes one that checks
every length unit of the table shows its own numbers; angle names
(`deg`, `rad`) and other text keep the millimetre fallback.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 05:38:22 -04:00
CamWight 0d4739fffb Drawing dimensions: between two cylinders' silhouettes (#4896, W20b) (#9251)
* Drawing dimensions: a hole's or an arc's centre as a point to measure from (#4896, W20c)

A linear dimension's point can be the centre of a circle or an arc, saved as its one edge's name
with `centre`. It is found again as construction geometry finds a round edge's centre
(`construct::as_circle`), in 3D, so any view can measure it; a split edge is ambiguous, and an edge
that is no longer round can't be measured. `drawing.dimension.add` takes `{centre: edge}` wherever
a corner goes, and refuses a straight edge.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing dimensions: a chain of distances along one line (#4896, W20c)

A chain dimension runs through 3 to 64 points in order (corners or hole centres) and reads the
distance from each to the next along one line as the view shows it: horizontal, vertical, along a
direction, or aligned from the first point to the last. The line runs the way the first point to
the last goes, and a point out of order is refused, never moved, so the members add up to the
overall from the first point to the last (`drawing_measure::chain`). It reads projected only (true
lengths of points off one line don't add up) and shows its members' numbers, never a text instead.
`drawing.dimension.add` takes `{chain: {points, direction?}}` and counts the points before looking
any up; `drawing.dimension.edit` changes its direction; inspect lists its members, its value being
the overall.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing dimensions: a whole cylinder's diameter between its silhouettes (#4896, W20b)

A cylinder dimension saves a face by name (ModelFace, as ModelEdge names an edge) and reads Ø
between the cylinder's two silhouettes, which any view but one along its axis shows 2r apart
(`drawing_measure::silhouette_side`). The face, or the pieces it was cut into, must lie on one
cylinder (the kernel's own condition for faces on a common cylinder); every face of the body on
it counts, since the kernel builds a whole cylinder as two half faces; and both silhouettes must
lie on those faces, so a fillet's quarter round is refused. `Document::face_reference` picks a
face by a point on it or by its index; `drawing.dimension.add` takes `{cylinder: {face}}`, edit
refuses its settings, and inspect can list face candidates.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing dimensions: between two cylinders' silhouettes (#4896, W20b)

A dimension between a silhouette of one cylinder and a silhouette of another, as the view shows
them. Each is named by a face of its cylinder and by its side: the one nearer the other cylinder
on the view, or the one farther (SilhouetteSide). So it keeps to them whichever way round the
view shows the cylinders.

- geom: drawing_measure::between_silhouettes takes the two cylinders (Cylinder, now geom's: the
  type doc kept privately), their sides and a direction as a linear dimension takes it (aligned:
  square to the silhouettes). The silhouettes must be parallel on the view and the axes apart
  there. Foreshortened when the axes aren't parallel in the model, or the silhouettes lie at
  different depths.
- doc: DimensionKind::Silhouettes { a, b: Silhouette { face, side }, direction }, read as the
  view shows it. Each silhouette must lie on its cylinder's faces (Lookup::on_cylinder, now shared
  with the cylinder kind). Document::silhouettes_kind makes two silhouettes of one cylinder of
  one body that cylinder's diameter (which takes no direction), else the distance between them.
- engine: drawing.dimension.add takes {silhouettes: {a, b: {face, side}, direction?}};
  drawing.dimension.edit changes its direction only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 04:49:53 -04:00
CamWight 693cf911f1 Recovery: unsaved drawing work survives a crash (#3890, K9′) (#9289)
* Recovery: a change to a drawing alone is autosaved and recovered (#3890, K9')

A design's drawings are part of its document (K3b), so the autosave already sees a drawing's
change as unsaved work and writes it with the design, and recovery reads it back. This test
holds that: with the model saved, a change to a drawing's properties alone is autosaved, and the
recovered design has the drawing as changed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Recovery: a drawing that breaks a rule is left out of the autosave and the crash copy, named (#3890)

Reading a design refuses it whole for one drawing that breaks a rule of the record, so an autosave
or a crash report's design holding one never opened again: all the unsaved work was lost. Both
copies now keep the rest of the design (drawing::openable) and name each drawing left out and the
rule: the autosave as its error, the crash report in its notes. A design's save error names the
drawing it couldn't save too (Drawing::label).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Recovery: a copy that must open keeps a design's drawing rules too (#3890)

drawing::openable now leaves out what a read refuses at the design's level as well: the later of
two drawings with one id, and the drawings past MAX_DRAWINGS, each named with its rule. So an
autosave never keeps a stale copy over a drawing problem. The id rule is take_id, which
check_in_design uses too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Recovery: a drawing too large to save is left out too, and the status line names it (#3890)

The autosave and the crash copy already leave out a drawing that breaks a rule of the record.
A drawing too large to save failed the whole autosave instead; `openable` now leaves it out the
same way, before its id, so the rest of the design is kept. Nothing is skipped silently: the
autosave's error names each drawing left out, and the status line shows it.

Tests: a drawing left out takes no id from a later one; an autosave leaves out one too large to
save; an autosave keeps what is hidden; the status line names a drawing the autosave left out.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 00:56:45 -04:00
CamWight b21c377296 A lost dimension keeps its last value after the design is reopened (#4896 W19d) (#9764)
Dimension::last_good saves the value the session last read, written only when
there is one, and a save takes it from the session's reads as it takes what is
hidden: no read touches the document, makes an undo step or asks to be saved.
drawing.dimension.inspect answers this session's read first, else the file's.
resolve_dimensions never sees it, so a lost dimension stays lost. A value past
the drawing format's limit is left out of the save, not written into a file that
then can't open.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 18:59:15 -04:00
CamWight 878bc1b421 A point on a curved edge finds it, between the edge's chords (#4896) (#9765)
An edge given as a point looked along the edge's mesh lines, within a point's tolerance, so a point on a
circle or an arc that fell between two chords found no edge: a radial dimension on most points of a rim
said "no edge at". A point off every chord now takes the edge whose chords are within what its body was
meshed to, and only when no edge passes through the point itself, so a point on a straight edge beside
a curve is still that edge.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 18:59:11 -04:00
CamWight 562bb379a5 Dimension layout: sizes for paper, and text above the line (#4896, W19c) (#9193)
* Dimension layout: sizes for paper, and text above the line (#4896, W19c)

A dimension's sizes become a parameter, so a drawing can lay its
dimensions out in paper millimetres with the same code as a sketch:
DimSizes { arrow, gap, overshoot, offset, above } and
dim_layout_sized. dim_layout and dim_layout_reaching keep their
signatures and use DimSizes::screen(px), today's 9, 3, 4 and 22 px;
the other default text places stay the same fractions of the offset
(18, 48 and 20 to 22), and default_text takes its 22 from the same
place. A size that isn't a finite number above 0 (or is beyond MAX_COORD,
the largest length a sketch takes) falls back to its 1 px value, as a
bad px does today.

`above` puts a linear dimension's text above an unbroken dimension
line (ISO 129-1), running along the line and reading from the bottom
or the right; DimLayout::text_dir gives its direction (level for text
in the line). The arrows go inside or out by the same test, with the
text's length along the line; a leader to text outside runs on under
it.

On main, #7056 moved the four default places into
default_text_offset(frame, px). This leaves those lines as they are,
so when main next comes into drawings the layout's arms call it with
this px (the offset's 22nd), and lib.rs's export line takes both lists.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Format the dimension layout's re-exports (#4896, W19c)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 13:59:49 -04:00
bherbruck 1a47ac13de Merge pull request #9467 from tangency-labs/sync/main-into-drawings-1030
Sync main into drawings (Oct 30)
2026-10-30 10:29:35 -04:00
bherbruck 1c957c105d Translate the drawings' new messages into the complete catalogs (ar, he, vi)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 10:15:28 -04:00
CamWight ec527a32ab geom: arrowheads and leaders on paper (#4890 D1a) (#9466)
`paper::annotate` places the marks that point at things on a sheet as plain
strokes and fills in sheet millimetres: open, closed and filled arrowheads,
the oblique stroke and the dot, and leaders (points, a landing line in the
reading direction, a terminator at the first point). Every size is the
caller's; ISO 128-2's dot and landing ratios and ISO 129-1's 15° to 90°
arrowhead angle are constants beside them. A closed or filled arrowhead stops
its line at the base. Dimension layout stays W19c's (#4896) and the datum
triangle the datum symbol's (#7257).

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 09:59:02 -04:00
bherbruck d01de87552 Merge main into drawings (Oct 30)
Brings the 1,270 commits on main since the drawings branch last met it,
including the first drawings landing (#8249), into drawings.

Merged with the drawings snapshot that #8249 landed (ebafe0748) as the
merge base, so only the drawings work after that landing is replayed on
top of main. Main's structure wins; drawings' additions are kept and
adapted to main's APIs (metadata Owner/KEYS table, checked! without a
contract argument, Snapshot visibility, crash journal outcome, the
part-properties normalisation, model_body_components, io helpers).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 09:54:08 -04:00
github-actions[bot] ab67126eec Regenerate generated files and fold pending files [skip ci] 2026-10-30 12:31:20 +00:00
Nathan Dane 3b8cbc4e22 Viewport: surface analysis status items and legend keys (#8547) (#8556) 2026-10-30 12:12:19 +00:00
Frank f59f6698f1 Ribbon drop-downs as a grid of large icons, as an option (#4739) (#5012)
* Ribbon drop-downs as a grid of large icons, as an option (#4739)

Preferences > Interface gets two settings, both off by default:

- Menus: List | Large icons. With Large icons a panel's drop-down shows its
  commands as rows of up to five icons at 32 px (twice the list's), keeping
  the list's group headings and order. The name, shortcut and help are in
  the tooltip, as on a ribbon button. Arrow keys move across and between
  rows; a click starts the command; right-click and drag pin it as before.
  Resting on an icon for two seconds arms a pin in its corner; a quicker
  click anywhere starts the command, so nothing is pinned by accident. A
  pinned command shows its pin.
- "Leave pinned commands out of the drop-down menus": a drop-down (list or
  grid) leaves out the commands the ribbon shows as buttons; a panel too
  narrow for its buttons lists them again, and a menu is never left empty.

No icon artwork or colours change. Sketch > Create keeps its family list.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Sketch > Create in the large-icon grid: every variant under its family (#4739)

With Menus: Large icons, Sketch > Create showed its family sub-menus as
plain text rows (Line, Rectangle, Circle, ...), unlike every other menu. It
now shows every variant as a large icon under its family's heading, then the
other tools under "More". The list keeps its family sub-menus.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Large-icon menus: groups side by side, no footer (#4739)

A menu of two or more headed groups (Sketch > Create's families, Model >
Modify's Edges, Faces, Bodies, Specialise) puts the groups side by side, each
heading over a column of its icons, at most two across. Menus without groups,
or one too wide for the window, keep rows of up to five. The pinning note
under the large-icon menus goes: the tooltips and right-click menus say it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Large-icon menus: a separator line between groups side by side (#4739)

As between the ribbon's sections: a 1 px line in the theme's border colour.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Large-icon menus: at most three rows, growing to the right (#4739)

A menu fills five columns, more when that would take over three rows (Model >
Create: 7 x 3); in grouped menus a group too big for three rows gets more
columns. Only a window too narrow for that wraps into more rows. A test checks
every panel's menu of every tab.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Large-icon menus: group headings centred over their icons (#4739)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drop-down group headings: smaller than the drop-down's header, not in capitals (#4739)

Edges, Faces, Bodies (and Sketch > Create's families) were drawn in capitals
at font_small, which reads larger than the drop-down's own header
(font_caption). They now use font_micro, written as named, in the list and the
large-icon grid. Review feedback on #5012.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Large-icon menus: start a command from the grid at its icon, as main's rows do (#4739)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Ribbon icon grid strings: a pending locale file, with ar, he and vi (#4739)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Large-icon menus: commands in no group stand apart, so a left-out group doesn't move them (#4739)

With Convert to Sheet Metal pinned and left out of Model > Modify, its
Specialise group went and Delete, in no group, moved under Bodies.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 11:59:08 +00:00
Rick Morgans bd1525dcfb Expressions: hyperbolic functions sinh, cosh, tanh and their inverses (#9332) (#9334)
* claim: #9332

* Expressions: hyperbolic functions sinh, cosh, tanh and their inverses (#9332)

`sinh`, `cosh`, `tanh` and `asinh` take a unit-less number and give one,
as `exp` does; `acosh` refuses x < 1 and `atanh` refuses |x| >= 1, worded
as `asin` and `ln` refuse what lies outside their domain. They are in the
expression help (`FUNCTIONS`, the parameter autocomplete), the
hostile-expression fuzz tokens, the parameters and equation-curve guides,
and the checking skill's list of functions. Horn flares (Salmon's hypex
`cosh h + T sinh h`), catenaries and the tractrix can now be written as
they are stated instead of expanded into `exp`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 11:13:59 +00:00
kaltenbrunnermarkus 1e5eb1e3b8 Sketch: find profiles island by island, so dragging in a large imported logo stays smooth (#6896) (#9313)
* claim: #6896

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013WUFq6QFBqmZjxwaKy2J1M

* Sketch: find profiles island by island and say when the search is cut short (#6896)

Every live drag frame ran the profile search over the whole sketch: every
spline piece of a large imported logo was sampled, checked for crossings
and traced again, about 100 ms per frame at 6,000 degrees of freedom.

Profile curves are now split into islands whose enlarged piece boxes do
not touch (the margin exceeds every tolerance the search uses), each
island's loops are found on their own and cached by a fingerprint of its
geometry, and the loops are nested into profiles over the whole sketch in
the order a single search finds them, so profiles, ids, holes and
whole-boundary certificates stay the same. The end-near-crossing lookup
covers its whole reach, independent of the grid's cell size.

The 50,000-piece limit now holds per island, and a sketch that still
exceeds it gets a warning instead of silently missing profiles.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013WUFq6QFBqmZjxwaKy2J1M

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 11:13:52 +00:00
ABDULLAH a1483d63c1 Arabic: plural wording in the Discard autosaves title (#9354)
recovery.discard_all_title read "discard {count} of the autosave"; it now names the autosaves as a plural.
2026-10-30 11:10:28 +00:00
semmelrinde 491687d4c1 Sketch: the cursor snaps On a spline, ellipse or conic while drawing, as on a line or circle (#9321) (#9343)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 11:10:25 +00:00
Rick Morgans 66bd64cc5e Engine: one contract check for a call, used by the preflight, the bridge and the app (#9339)
`schema::issues(id, params)` looks up the command's typed contract and
lists what is wrong with the parameters (none without a contract or for
an unknown id). The batch preflight, the MCP bridge's pre-send check and
the app's check of a design-switching command each did that lookup
themselves; they now call it. No behaviour change.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 10:21:06 +00:00
jeromehzl f9146cdd58 Hole: a Hole at sketch points hides its sketch as an Extrude does (#9082) (#9211)
sketch_consumed knew Extrude, Revolve and the sheet metal flanges but not
a Hole drilled at a sketch's points, so that sketch stayed drawn inside the
holes. A Multiple hole now counts as using its sketch; Edit Feature shows
its points while the dialog is open. Single holes keep their sketch shown,
since a hidden sketch offers no points to snap to.
2026-10-30 09:37:53 +00:00
github-actions[bot] 23e7ac767e Regenerate generated files and fold pending files [skip ci] 2026-10-30 09:58:59 +00:00
phanoob 3ac7a196c9 Recover unsaved design?: Discard all, with a confirmation (#9299) (#9300)
* claim: #9299

* Recover unsaved design?: Discard all, with a confirmation (#9299)

A Discard all button at the left of the window's footer, away from Later.
It asks first ("Discard 7 autosaves? This cannot be undone.", Discard all /
Cancel), then discards every listed autosave the way its own Discard button
does (doc.recovery_discard on each id). Cancel goes back to the list
unchanged. The button publishes the handle recovery:discard_all.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 09:26:04 +00:00
Logan Night 202e713cf1 Preferences: search finds settings in rows without a label (#9265) (#9318)
* claim: #9265

Co-Authored-By: Claude Code <noreply@anthropic.com>

* Preferences: a setting in a row with no label is found by the words it shows (#9265)

A search hid a row by its label before its controls were drawn. Seven checkbox rows and two segmented rows on the Interface page have no label, so "status bar", "search results" and "reveal on hover" found nothing. A hidden row with no label now keeps the words of its controls, as a dropdown keeps its value, and is drawn when they match. Each such row has a key of its own, so its neighbours are not drawn with it.

Co-Authored-By: Claude Code <noreply@anthropic.com>

---------

Co-authored-by: Claude Code <noreply@anthropic.com>
2026-10-30 09:25:24 +00:00
N3MI-DG 63923da2ca Viewport: an opened design is framed at the home view, in the middle of the view (#9195) (#9204)
* claim: #9195

* Viewport: an opened design is framed at the home view, in the middle of the view (#9195)

A fit the viewport cannot frame yet is kept and asked again on the next frame instead
of being consumed and lost, so a design opened from the Home screen or by launching on
a file no longer comes up at the default camera, wherever its own coordinates put it.

Framing then centres the model on the view rather than on the free rectangle between
the floating controls: `Layout` carries `middle`, the view without the panels, computed
before the compass, the navigation bar and the OK/Cancel corner join the obstacles. The
model is still sized to `drawable`, so it stays clear of every control, but only a panel
moves it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* Viewport: keep the centred fit clear of the controls, and frame --sample (#9195)

The fit framed the model into a rectangle the size of `drawable` centred on `middle`, which is
not inside `drawable`, so the model could sit under the compass, the navigation bar or the
render product frame. The model is now sized to `drawable` as before, and only the room left
over in it moves the model towards the middle of the view.

`s27_move_triad` turns the Z ring on its far side: the model now sits further right, and the
Move dialog that docks on the right afterwards covered the ring's old grab point.

A launch with `--sample` builds the design straight into the session and never asked for a
fit; it now comes up at the home view, framed, like an opened design.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Viewport tests: the cursor orbit's pivot keeps the pixel it was picked on (#9195)

With the model now centred on the view, one of the test's perspective drag points lands within
the pick tolerance of the box's top edge, and the pick snaps the pivot onto that edge, a few
pixels from the cursor. The orbit keeps that point still, as it should; the test compared it
with the cursor instead of with where it started.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-10-30 09:14:18 +00:00
jeromehzl 7e22aed739 View ribbon: Visual style and Navigation tool offer their choices instead of an error (#8868) (#9127)
Both commands need a choice, but start_with_variant_memory only special-
cased the parameterless display toggles, so a click on the ribbon (or
command search, a shortcut, ui.start) ran them with {} and showed only
the engine's "style must be ..." / "tool must be ..." error.

They now open a short menu, the way Units does: under the ribbon row
that started it (a second click closes it), or in the middle of the view.
Visual style lists the four styles with the current one checked; the
Navigation tool lists Orbit, Pan and Zoom, and picking the latched one
releases it, as its navigation-bar button does. The four styles come
from one list shared with the navigation bar's menu.
2026-10-30 09:04:39 +00:00
jeromehzl 966b10e731 Sketch: a feature on a failed sketch names that sketch (#9075) (#9276)
A sketch that failed (a dimension set negative by a parameter) left every
feature built on it with "unknown sketch 1 (it must come earlier in the
timeline)", which points at the timeline order. The evaluation now notes
the features that failed earlier in the pass, and a feature whose input
sketch is one of them fails with "sketch `Sketch1` failed: <its error>".
That result is never cached, since the cache key holds neither the
sketch's name nor its error: a second failing value or a rename shows
up at once.
2026-10-30 09:03:46 +00:00
github-actions[bot] 99eda4cd1b Regenerate generated files and fold pending files [skip ci] 2026-10-30 09:24:07 +00:00
jeromehzl 47292bb2bd Preferences: the window covers the ribbon behind it (#9078) (#9243)
A page window (Preferences) filled its frame with
dialog_body.gamma_multiply(0.97), which also scales the alpha, so the
ribbon's labels showed through its title bar, search field and heading.
It now uses the opaque dialog_body, as every other window does; the
navigation bar keeps its own translucent resting fill.
2026-10-30 09:01:33 +00:00
semmelrinde 37dc878f31 Shell: test the interface scale raised in a narrow window, the crash #9271 fixed (#9315)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 08:58:15 +00:00
Igor Bronovskyi 7da02460d8 i18n(uk): add pending translations for strings added in upstream (#8977)
* i18n(uk): add pending translations for missing strings

* i18n(uk): add pending translations for new strings from upstream

* i18n(uk): improve pending translations

* i18n(uk): professional translation of all pending strings

* i18n(uk): finish the pending translations for 29 October

Every value in uk-sync-29oct.json is now Ukrainian except the seven symbols
and formulas that must stay unchanged: the modifier keys, HDR and the three
inertia tensors.

Terminology follows uk.json: spot light is "прожектор", directional light is
"спрямоване", body is "тіло", render is "рендеринг". Camera orientation keeps
тангаж, рискання and крен.

Removes history-origin-bodies.json, which was empty after its content moved
into this file.
2026-10-30 08:39:45 +00:00
P'tite Tête f73f4da665 fix: Find a folded folder's mark in one pass over a long history (#9294)
- worst_status searched the history and the results for each feature of a folded folder, the square of the history's length every frame
- A folder of 16 features or more now finds places and results in tables built once, first of an id winning as feature_index and Model::result do
- Frame on a 4,880-body design: 20.4 ms -> 7.9 ms (M4 Max, release, headless)
- Test a_folders_mark_is_the_worst_of_its_features_own

Co-authored-by: P'tite Tête <asso@ptitetete.com>
2026-10-30 08:16:36 +00:00
github-actions[bot] ef5985f841 Regenerate generated files and fold pending files [skip ci] 2026-10-30 08:22:05 +00:00
Ahmad Khan 71bb4f7c98 Docs: a beginner's page for equation curves, with pictures and examples (#9282)
A new user guide page, Equation curves, under Sketching: the first curve step by step, Explicit and
Parametric explained with tables of rules to type (a line, a parabola, a wave, a circle, a spiral),
radians, parameters with the involute of a base circle, building a part (a closed flower curve
extruded), editing, and common mistakes. The technical details stay in a short section for scripts
and agents.

Seven pictures, rendered by `cargo xtask book` from new scripts in docs/book/scripts/equation-*.json
(gitignored output, attributed in attribution/pending/docs-equation-curves.md). The Sketching page
keeps a short summary and links to the new page.
2026-10-30 07:54:27 +00:00
Rick Morgans 92af4a21c8 Control channel: a per-request param_check level, applied and confirmed by the app (#9184) (#9185)
* claim: #9184

* Control channel: a request's own param_check level, applied and confirmed by the app (#9184)

`engine.execute`, `engine.batch` and `engine.script` take an optional
`param_check: "off"|"warn"|"strict"` in their params. The app runs the
request at that level through the same `run_checked` path and batch
preflight a headless session uses, puts its own level back, and every
reply says the level it ran at as `param_check` beside `ok`. A command
that switches designs keeps the app's level; any other word is refused.
Readings and exports answered on a copy off the window thread keep the
level too.

`control.capabilities`, answered at once on the control-server thread,
lists what the channel does beyond the methods every version has:
`{"param_check": ["off", "warn", "strict"]}`. An older app answers
"unknown method".

The MCP bridge asks it once per connection. When the app lists the
level, every call and batch goes with it and the app checks against its
own commands; otherwise the bridge checks before sending, as #9073 does.
At strict, a reply that doesn't say the app checked the call is an error,
and the next calls are checked by the bridge. Also: `add_param_warnings`
takes the reply by `&mut`, and `with_param_check` sits beside
`Remote::new`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Control channel: a design-switching command is checked at the request's level

Review fixes for #9184. `component.edit_in_place`, `component.finish_edit`,
`view.next_tab` and `view.previous_tab` ran at the app's own level and
echoed `off`, so a misspelt call went through at strict. They now have
their parameters checked at the request's level before they run (and
still run at the app's own level, as each design keeps its own), and the
reply echoes the requested level. The MCP bridge at strict now requires
the echo to match its level, not just to be there. `param_check` is read
only by `engine.execute`, `engine.batch` and `engine.script`; other
methods ignore it. The off-thread test now shows the design change
computing off the window thread before it is refused.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 07:24:41 +00:00
ABDULLAH 5d6c5bab39 Arabic: sketch and spline terms in the construction line help and hints (#9269) 2026-10-30 07:05:00 +00:00
semmelrinde 8251be9c06 Shell: content kept outside a changed viewport no longer turns inside out and crashes the Render frame overlay (#9271)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 07:01:16 +00:00
Steve Jason 3d744cc8a2 A formula that is a bare number gets the design unit (#9261) 2026-10-30 06:42:04 +00:00
github-actions[bot] 1447bc772a Regenerate generated files and fold pending files [skip ci] 2026-10-30 06:56:11 +00:00
semmelrinde 7b24a1dc1e Sketch corners: a round that would use up an arc, or where the curves meet smoothly, is refused (#8813)
* Sketch corners: a round that would use up a whole arc is refused

A quarter arc of radius 5 running into a line along it, rounded with
radius 5, put the round's tangent point at the arc's other end and left
an arc of no length. round_corner now skips a round whose tangent point
falls on either curve's other end; with none left it says that radius
does not fit, as for two lines (found by a local trim fuzzer).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Sketch corners: a round where the curves meet smoothly is refused

A line running on from an arc's end along its tangent (off only by rounding)
has no corner, but the round's tangent points landed within 1e-7 mm of it and
the round came out as an arc of no length (found by a local trim fuzzer). The
corner test's line met its arc this way too and was checking that output; it
now meets the arc at a corner.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 06:23:17 +00:00
Nathan Dane d95f40ac88 Ribbon: pressed state for commands that stay on (#8546) (#8555)
* claim: #8546

* Ribbon: pressed state for commands that stay on (#8546)
2026-10-30 06:20:31 +00:00
austin62jake 82ac9a6b03 sketch.inspect: each profile loop names a curve once, not once per segment (#9179) (#9186)
* claim: #9179

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019FAWPuFoh9qxn2uS2j53QZ

* sketch.inspect: each profile loop names a curve once, not once per segment (#9179)

A profile records one curve id per piece its loop walks, and a conic or
spline is walked as many short pieces, so sketch.inspect listed a single
Bezier curve 50 times in a profile's `curves` and as often in a hole loop.
The reply now names each curve of a loop once, in the order the loop walks
them (solidcraft_sketch::distinct_curves, as delete and profile references
already do). The solved profiles keep their per-piece lists.

The lists are now a profile pick as they stand: a whole_boundaries pick
refuses a curve named twice, and the regression test extrudes the wall
from the reply's lists.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019FAWPuFoh9qxn2uS2j53QZ

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-30 06:14:06 +00:00
Homero Thompson 6ab46b6488 fix(#7058): the selection tools reach the geometry an SVG import leaves in the document (#7368)
An SVG import leaves a sketch with regions and no body. The marquee (box select) took only the bodies, so the imported geometry was unreachable with the selection tools: a marquee over it selected nothing, and a click on a region did not take it either.

The marquee now takes the regions of the shown sketches when the design has no body. A design that already has a body keeps the old exclusive behaviour: the marquee takes the bodies alone, not the regions of the sketches that are shown. A dialog that asks for edges or faces (the Patch dialog) never takes the regions: they are neither.
2026-10-30 06:03:16 +00:00
Matthew Knutson 991082fbaf Typed contracts for the construction axes, points and planes (#2829) (#7750)
* claim: #2829 (construct.* contracts)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Typed contracts for the construction axes, points and planes

The 19 construct.* commands get input contracts and FeatureResult as
their output, with shared types for references, planes, a plane or
face base, an axis line and a construction plane's name, each calling
the reader its handler uses (split out of geo, plane_param, the face
capture and named_axis_line).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 06:03:04 +00:00
github-actions[bot] 4d338ba2eb Regenerate generated files and fold pending files [skip ci] 2026-10-30 06:02:42 +00:00
AsTechEvolves 94b399e98f Preference: keep the view when a sketch opens; Look At faces it on request (#9188) (#9190)
* claim: #9188

* Preference: keep the view when a sketch opens, Look At faces it on request (#9188)

Preferences > Sketch > "Turn to face a sketch when it opens" (on by default,
so nothing changes unless it is turned off). Off: creating or editing a
sketch leaves the view as it is, a sketch started on a face no longer
re-centres on the picked point, and Look At (the palette button, Ctrl+8)
still turns to face the sketch. The control channel sets it as
`ui.prefs {"sketch_open_look_at": false}`.

Changes a default: no

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 05:32:56 +00:00
Homero Thompson 5aa41703f7 Control channel: ui.home refuses a sample index that names no sample (#9087) (#9212)
* claim: #9087

* fix(#9087): ui.home refuses a sample index that names no sample

The control channel passed the sample index straight to open_sample, which drops an index that names no sample and says nothing. The request then replied ok, so an agent could not tell a typo from a sample that had opened.

The index is checked before it reaches open_sample: an index that names no sample is refused with the valid range in the error. A sample that exists still opens, as before.
2026-10-30 05:27:06 +00:00
austin62jake d9aa73b597 Measure: an exact circle's or arc's length agrees with its circumference (#9086) (#9227)
* claim: #9086 (edge lengths)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Measure: an exact circle's or arc's length agrees with its circumference (#9086)

Measure gave a circle's or an arc's length_mm as the length of the
polyline drawn for it, which runs inside the curve, while the same reply
gave its circumference or arc_length from the exact circle. When the edge
is known exactly (the kernel's circle, or a sketch's own circle or arc),
length_mm is now its radius times its angle. A circle fitted to a mesh
body's polyline keeps the polyline's length.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-30 05:27:00 +00:00
github-actions[bot] 6e4e94a8a8 Regenerate generated files and fold pending files [skip ci] 2026-10-30 05:30:32 +00:00
github-actions[bot] ae2a5b2c0d Regenerate generated files and fold pending files [skip ci] 2026-10-30 05:24:44 +00:00
CamWight fefca6bfa0 Drawing export: a sheet of the open drawing as SVG, from its scene (#4890 A7) (#9137)
* Drawing sheets on paper: the drawing border, grid and marks (#4890 A6, #3875)

SheetLayout::paper gives what a sheet's drawing border draws as paper
groups of kind drawing_border, in order, each left out when empty:

- the drawing border, one closed stroke drawing_border_line_mm wide
  (0.7 mm in the built-in profile, ISO 5457);
- the grid: the grid reference border, closed, and a mark at each edge
  between two fields from the drawing border out to it, on all four
  sides, GRID_LINE_MM (0.35 mm, ISO 5457's grid line width as the
  drawings study's section 11.3 gives it) wide; none without fields or
  with the grid reference border on the drawing border;
- the centring marks, as the layout places them, in the drawing
  border's width, as the profile says;
- the trimming marks, each rectangle filled.

The grid's labels are text and come once the paper scene has text
(#4813). Only the function, its constant and its tests are added.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing sheets on paper: one sheet's scene, its border then its views by id (#4890 W10, #3890 W15)

`drawing_scene::build` draws one sheet of a drawing as one paper scene, the
one the sheet page and every export will draw, and `drawing.scene {sheet}`
answers it (in_drawing, noundo, doc_only, typed contract and output schema).
In paint order: the sheet's drawing border groups as `SheetLayout::paper`
gives them (object: the sheet), then each view on the sheet by id (object:
the view), its visible lines as `paper_group` makes them.

- A view's lines are worked out centred on the view and then moved to its
  centre, exactly (each point plus the centre), so the same lines on the same
  centre are the same bytes. They match the snapshot's within rounding.
- The shown set is worked out once per sheet. No model is evaluated.
- A view with nothing to measure is a placeholder, and one that can't be
  drawn yet (shaded, or hidden lines) fails with the snapshot's reason. Each
  draws nothing, and the sheet's other views are still drawn.
- A view is placed only while the sheet stays within the paper scene's
  100,000 records. One that would pass the limit fails and says so, and later
  views that fit are still drawn. Each view's lines are placed as they are
  drawn, so at most one view's lines are held beside the scene.
- A view above 100:1 takes a coarser chord rather than asking the mesh for
  chords below its floor. A saved view has no chord setting to give.

One rule, one place:
- the snapshot's two style refusals are `drawing_view::not_drawable`;
- a group's record count is `paper::Group::records`, which `Scene::validate`
  now counts with;
- the stats reply is `From<Stats>`;
- both paper scene schemas come from `paper_scene_schema`.

Tests: the border then the views by id, byte for byte against the layout,
with hand-worked outlines and lengths; the command's reply and its schema; the
SVG's group order; each view against the snapshot, and one of many lines (a
block with eight holes, from above); an empty sheet; a failed and a
placeholder view; no evaluation; refusals; the record limit at exactly 100,000
and one past it; a 200:1 view.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing sheets on paper: the provider the sheet page draws through (#4890 W10, #3890 W15)

The sheet page asks for a sheet every frame, so it draws through a provider
that keeps each view's lines between frames, instead of through `build`.

- `drawing_scene::extract(session, sheet)` returns the last scene at once,
  with each view as it was last drawn and the ones out of date. Nothing is
  drawn there. When the drawing, the world state and the views drawn are all
  as they were, it returns the same answer without looking at the sheet.
- `drawing_scene::step(session)` draws the first out-of-date view of the
  sheet last extracted and says whether more wait: a short piece of work for
  the UI's tick, one view's projection.
- `generation` comes from one counter for every session. It goes up only
  when a sheet's scene is assembled again, so a page never sees one number for
  two scenes, even across closing and opening its drawing.

The cache is the session's view state, beside the record: never saved, never
an undo step. `Session::execute` drops it when a command closes the drawing or
opens another. One entry per view, keyed by the world state it was drawn from
(held in the entry and compared with `Arc::ptr_eq`) and the view as it resolves.
A drawing-only edit keeps the world state, so a move, and its undo, project
nothing: the same centred lines are moved to the new centre. The shown set is
worked out once per world state. Views no longer in the drawing are forgotten
when a scene is assembled again.

Tests:
- a new cache gives the border with both views out of date;
- each step draws one view, in id order, until the scene is `build`'s, byte for
  byte;
- the generation stays put while nothing changes;
- a move and its undo project nothing, and the views move by exactly the move;
- after a model change (a checkpoint restored) the last scene shows, and a view
  listed as up to date always draws as `build` does;
- closing drops the cache, and the scene after reopening has a new generation;
- seeded mixes of moves, setting edits, undos, redos, extracts and steps
  always end at `build`'s scene.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing export: a sheet of the open drawing as SVG, from its scene (#4890 A7)

drawing.export {sheet, format?, path?} writes one sheet of the open
drawing from drawing_scene::build's scene, the scene the sheet page
draws, so a file shows what the page does: its drawing border, then
each view's visible lines, through the SVG writer. With a path (a .svg
file, checked by vfs::check before and again just before writing, as
the view DXF is) the file is written atomically; without one the reply
holds the SVG. The reply gives its size, what the writer snapped or
merged, and each view's status as drawing.scene reports it.

A sheet with a view that failed isn't written: the refusal names each
such view with why. A placeholder view (nothing to measure) draws
nothing and is exported all the same. PNG and DXF are "not supported
yet": they come with the sheet PNG writer (#4890 A4) and the shared DXF
writer (#5319). No undo step; no model is evaluated.

One rule, one place: the scene's sheet look-up is
drawing_scene::sheet_id, and a view's reply entry is
From<ViewState> for SheetSceneView, both used by drawing.scene and
drawing.export. The scene tests' drawing fixture is open to the crate's
tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 01:20:10 -04:00
CamWight 6a2bdbf144 Bill of materials: virtual components and a typed quantity (#3874, P6) (#9226)
`bom_quantity` is a part property of any component: what one placement of it means, an expression
evaluated with the design's parameters (pieces without a unit, else a length). A row's `quantity`
is what its placements add up to, with `quantity_unit`; pieces beside a length, or a quantity that
no longer evaluates, give none and say why. A quantity is a parameter user: a rename follows it, and
a parameter it uses can't be deleted. The CSV gains a `quantity` column at the end.

`virtual` marks a component with no geometry (grease, paint, a label): listed with its quantity,
weighing nothing. It can't be the active component, and one check after each undoable outermost
command refuses any change that puts a body, a sketch or a placed component into one, whichever
command made it. A file a damaged virtual component already fills opens, and other changes go on.

Mass, volume and area quantities wait for the expression units of #4811.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 01:15:51 -04:00
railconstr 81cbcef31c Sketch: add construction-line toolkit (#8239) (#8679)
Co-authored-by: railconstr <335242259+railconstr@users.noreply.github.com>
2026-10-30 05:02:54 +00:00
semmelrinde e3d9090e6c Russian: translate the 580 messages the catalog lacks, Render panels included (batch 7) (#9231)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 04:54:25 +00:00
CamWight 413c145c56 Bill of materials: stable item numbers, saved with the design (#3874) (#7779)
* Bill of materials types on one occurrence (#3874)

An occurrence can count in the bill of materials as another type than its
component, for that occurrence only: `bom_type` on the occurrence, set with
occurrence.bom_type (one undo step; it changes no geometry, so nothing is
evaluated). An occurrence without it counts as its component, so older
designs need no step; the format change is one pending file
(occurrence-bom-type.rs).

assembly.bom counts each placement by its own type: a purchased placement of
a kit part is one row without the kit's contents, a phantom placement lists
what it holds where it sits, and one component placed as two types gives a
row for each. Paste New keeps the types; Paste Instance counts as the
component. The compact list and the locales (en, de, ja, ko, zh) carry it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Bill of materials rows: material, and mass when asked (#3874)

Every row of assembly.bom (and every part folded into a row) names the
physical materials of its definitions' own bodies, each once, with "; "
between several. An unassigned body's is Default. A subassembly or an
empty component has none of its own.

With mass: true each row also carries mass_g, what one of its parts
weighs as the row stands for it, so the rows of any list add up to the
assembly once:
- at the top level, all it holds;
- in parts only, its own bodies, because what it holds is listed beside
  it; but a folded part's row is the kit (all it holds), a purchased part
  is all it holds, and an inseparable one all but its purchased parts;
- a reference placement adds nothing, nor does anything inside it.
It is null when nothing in the part has a body, a body can't be
measured or measures a negative volume (inside out, such as an open mesh
facing the origin), or the definitions sharing the row's part number
weigh differently.

Measuring runs the kernel, so it is asked for: the Bill of Materials
window re-runs assembly.bom after every change and doesn't ask (0.2 ms
without mass, 135 ms with it on a bolted bracket). Placements are rigid,
so each definition is weighed once however often it is placed, and each
body is measured once with measure_mass (the same volume as measure,
without the topology counts' tessellation).

A body's material and its density now follow one rule:
Document::body_material (new, beside Document::density) is the material
its mass is worked out with, named as the library or the design spells
it: the assigned one when it is known and has a usable density, else
DEFAULT_MATERIAL (new, beside DEFAULT_DENSITY). Document::density is
that material's density, with the same values as before. So a damaged
file's unknown or broken material reads as Default, as it weighs, and a
hand-edited "steel" reads as Steel. The bill of materials uses both; the
other places that read a body's material or spell "Default"
(component.properties, inspect and others) move to them in a separate
cleanup PR for #4783, which brings the same two functions to main.

Document::body_owners returns each body's owner in order, so the rows
find their bodies in one pass. It no longer repeats the owner rule:
model_body_component, legacy_body_component and body_owners go through
the rule written once, given how to find a feature's component (the
timeline for one body; body_owners still builds its map once). The CSV
columns are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Physical properties: a reference placement adds nothing (#3874)

component.properties and occurrence.properties now leave out a placement
that counts as a reference in the bill of materials (its occurrence's
bom_type, else its component's: a fixture shown for context), and
everything inside it: no body entry, mass, volume, area, centre of mass
or bounding box, and it isn't in placement_count. That is the bill of
materials' rule, so a reference part is in neither the parts list nor
the assembly's mass, and every bill of materials list still adds up to
the assembly's Properties. The placement asked for counts whatever its
type: a reference fixture's own Properties still measure it and what it
holds, as a component's own bill of materials lists what it holds.

Only the totals change. The placements walk that face picking, sketches
on placed faces and the occurrence path lookup use stays complete, so a
reference fixture's faces can still be picked.

The type an occurrence counts as is now written once:
Document::occurrence_bom_types (new, beside BomType) gives each
occurrence's type in their order, looking each component up once. The
bill of materials, occurrence.bom_type's reply and the physical
properties use it, in place of the two copies in the bill of materials.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Bill of materials: one module of typed rows in doc (#3874)

The bill of materials now lives in solidcraft_doc::bom as the typed rows
of a bill of materials view. assembly.bom's JSON and CSV and the Bill of
Materials window present those rows; parts lists, item numbers and
balloons are to read them too.

- list(tree, request) walks the placements below the assembly once. One
  rule (classify) decides for each placement whether it is counted in a
  row, how what it holds is walked and what its row stands for when
  weighed, from the type it counts as, the view and the component's
  shape. "An inseparable part's purchased parts are listed beside it" is
  written there once, and the mass walk reads it.
- A row carries its identity (RowKey: the rows it is listed under and
  its lowest member, a component and the type it counts as), its item,
  count, each, the placements it counts by occurrence path, what it
  stands for (Holds), its part properties, materials, mass and children.
- Mass is a Mass: not asked, grams, or unknown with the reason (nothing
  to weigh, unmeasurable, the definitions differ). Each definition is
  weighed once for each kind of row and kept in the Tree. The assembly's
  total is weighed from the design the same way, not added up from rows,
  so it is known even when a row's definitions weigh differently.
- Bom::row_of(tree, path) finds the row a placement is counted in (a nut
  inside a purchased bolt is in the bolt's), or says why there is none:
  no such placement, a reference, or no row of its own.
- rows_deep() lists each row followed by its children (1, 1.1, 1.2, 2);
  Request::default() is assembly.bom {}; View and Group carry the
  commands' words.

What changes, beside that the output is otherwise the same:
- One placement budget (100,000) and one depth limit (64 levels) cover
  the whole list. A folded part's contents used to be walked under a
  budget of their own, so a design past the limit was listed with
  group_children; it is refused now, as it already was without it.
- Kits are compared by what they hold (part, type and count), not as
  text: a part without a part number whose id is 12 no longer reads as a
  part numbered "#12", nor a part numbered "P×1\nQ" as a P and a Q. Kits
  holding the same parts through different definitions (two bolt
  definitions, each with its own nut definition of one part number) are
  one row, and its children count every bolt's placements, where they
  showed the first bolt's definitions only.
- A folded part's row always stands for all it holds. It used to stand
  for its own bodies when nothing inside it was listed, which differs
  only for a phantom with bodies of its own inside it.
- An inseparable part's row in parts only names the material of what it
  stands for (its steel blocks read Steel) where it was blank, and a
  subassembly whose parts share one material names it at the top level.
- A damaged file's component placed inside itself is refused at the first
  level too, since naming a row's material walks inside it, as weighing
  it already did.
- A row's body count saturates, so a compact assembly with more placed
  bodies than a count holds (a block placed 2^64 times) is weighed
  instead of overflowing.

Materials follow Cameron's rule for a row that stands for an assembly
(C3, 2026-10-23): a part's row lists its own bodies' materials, as before;
a row that weighs what is placed inside it (a subassembly at the top level,
a purchased or inseparable part with parts inside it, a folded part) names
a material only when everything it stands for shares it, else none. A frame
of steel and aluminium parts reads blank, and a bought bearing of steel
parts reads steel. One walk (adding) decides what is placed inside a row's
part for both its mass and its materials, and each definition's materials
are read once.

Components are looked up by id once per list; they were searched for
each row and each kit. The window reads the rows directly instead of
running assembly.bom after every change, so it no longer adds an entry
to the crash journal each time it refreshes. The engine keeps the
command, its parameters and the files.

Tests check rows. The module's own: an empty assembly, one part, a row
named by its lowest member through part-number edits, one part number
of two types, a phantom in a phantom, a reference at the root and its
own list, the 64-level limit, the budget hit exactly with and without
folding, kits told apart by what they hold and the types they hold it as, a folded part's contents not
folded again, row_of for every type, every placement in one row or
none, a damaged file's missing component and cycle, the mass agreement
rule (moved from the engine with row_mass) and what adds to a row. In
the engine: the material rule for every kind of row, the JSON against the
rows for every option, why a mass is
unknown, the total against component.properties in every view, what a
row stands for and its placements, and the overflow. The assembly.bom
tests from #1888 on pass unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Bill of materials: structured, all levels (#3874)

P4: `assembly.bom {levels: "all"}` lists the assembly's direct contents, each subassembly a row with
its own rows listed under it, to any depth (items 1, 1.1, 1.1.1), each child counted `each` per one
of its parent and `count` in all.

- `doc::bom::View::AllLevels` goes through the one rule (`classify`) the other views use: a
  normal subassembly is a row holding what it holds, listed under it as all levels again; a
  phantom has no row and what it holds joins the level it sits in, merged with the same parts
  there; a purchased part is a row with nothing under it unless `show_purchased_contents`
  (Request::purchased_contents) asks for its contents; an inseparable part is a row with nothing
  under it; a reference counts nowhere.
- The rows under a row are the folded-part rows already built (kits), so subassemblies with one
  part number and different contents are different rows, and no second nested builder is written.
  All levels gathers every level as it gathers the first; a folded part's contents are still
  gathered by part number in the other views.
- The JSON and CSV already nest to any depth; `show_purchased_contents` is echoed with the other
  options. Each row's mass still adds up to the assembly at the top.

Tests, worked by hand: four bolts and a two-bolt subassembly placed twice (8 bolts in parts only;
in all levels the subassembly twice with 2 bolts each, 4 in all, beside the top's 4); three levels
deep (2 x 3 x 2: counts 2, 6, 12, items 1, 1.1, 1.1.1, the CSV in that order); each type (a
phantom's bolt merged into its subassembly's, purchased with and without its contents,
inseparable, reference); two subassemblies of one part number with different contents as two
rows; `levels: "deep"`, a flag that isn't one, and an assembly over 100,000 placements refused.
D's test that a folded part's contents are listed as parts only lists them now names the two views
it holds for, and checks all levels' nested rows (the subassembly inside the folded part a row with
its own rows).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Bill of materials: parts with one part number are one row only when they hold the same to any depth (#3874)

The kit compare looked one level down: two parts with one part number whose contents differed two
levels below merged into one row, and the children that only one of them held came out at each 0.

Each placement now has a kit, a number interned from what it holds (each child's part, type and
own kit), built in one pass from the last entry back: an entry's children come after it in the
walk, so their kits are known first. Rows are told apart by that number.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Bill of materials: a phantom's own bodies are a row of their own (#3874)

A phantom had no row, and its own bodies were weighed in the assembly's total but in no row, so
the rows didn't add up. Its own bodies, when it has any, are now a row of the phantom's type that
stands for them alone, as a subassembly's own bodies are in parts only; what it holds still counts
where it is placed. Inside an inseparable part in parts only, nothing changes: the part's row
weighs them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Bill of materials: the assembly's total mass in assembly.bom (#3874)

`list` weighed the assembly as a whole (from the design, not added up from rows) and the command
dropped it. `assembly.bom` now gives it as `total_mass_g`, and so does a JSON file it writes, only
when `mass: true` (null when it isn't known).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Bill of materials: all levels as JSON lists its rows one after another (#3874)

All levels nested each level's rows in the row above it: two JSON containers a level, so the
64 levels a list may hold came to 129, past the 128 that serde_json (and so the MCP server and
the control channel) reads. In all levels `assembly.bom` now gives the rows one after another,
each followed by the rows under it (items 1, 1.1, 1.1.1), as its CSV does; a row listed under
another still reads its item as text and gives `each`. A folded part's contents, one level, stay
inside its row as `children`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Bill of materials: a row whose definitions weigh something and nothing differs (#3874)

A row gathering a definition with bodies and one with none (one part number on a steel block and
on an empty assembly) said there was nothing to weigh. Their masses differ, so it says so; only a
row where none of them has a body has nothing to weigh.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Bill of materials: definitions agree on a mass within the measurement accuracy (#3874)

A row's definitions had to weigh the same to 1e-9, but the kernel measures a volume from
tessellations, and one part modelled another way is tessellated differently: a pin made as a
cylinder and as a revolved rectangle measured 1.05e-5 apart, so it read as two masses. The bill of
materials now has its own `bom::MEASURE_ACCURACY` (1e-4: ten times that gap, with its doc on what
it follows: the kernel's `measure` gives one solid's volume to about that, relative, however the
solid was modelled), and a row's definitions agree within it. A pin 0.1% wider (0.2% heavier) still
differs. The kernel is unchanged: its work is paused while it is being replaced.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Bill of materials guide: all levels, purchased contents and this round's changes (#3874)

The guide had no `levels: "all"` or `show_purchased_contents`. It now has both, with how all
levels tells subassemblies apart and lists its rows as JSON, a phantom's own bodies as a row, the
assembly's `total_mass_g`, and definitions that agree on a mass within the measurement.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Bill of materials: materials are bodies', as the code says (#3874)

The rule stays as built (a row that stands for an assembly names a material only when everything
in it shares one), but its comment and the guide said a material set on a component is set on
all its bodies. `material.assign` takes bodies only: a component has no material of its own yet.
The module notes now say so, and where component materials will join the rule.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Bill of materials: a body's volume measured once with the evaluated model (#3874)

`assembly.bom` measured each definition's bodies anew for every list, and `component.properties`
measured each placed body again. A body's measure depends on nothing but the body, so the evaluated
model keeps its volume (`ModelBody::volume`, shared by clones, as its outline box is), and both
commands weigh that one measurement: the same grams to the bit. A body offset scales it by the size
of its determinant (`mat_volume_scale`) instead of copying the B-rep to measure it. The physical
properties still measure the placed body for its area, centre, box and counts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Bill of materials: row keys, what rows stand for, members and row_of stay in doc (#3874)

Nothing outside `doc` reads them yet: `RowKey`, `Unlisted`, `Holds`, a row's `key`, `stands_for`
and `members`, and `Bom::row_of` are crate-private until item numbers and balloons need them, so
they can still change without breaking another crate. The engine test that read them is covered
by doc's own (`row_of_finds_the_row_a_placement_is_counted_in`, `every_placement_is_in_one_row_or_none`).
`Unknown` stays public: `Mass::Unknown` carries it, and a public enum can't carry a private type.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Assemblies: one fallible placement walk for totals that cover the whole assembly (#3874)

The physical properties walked the placements twice in their own code, with the 64 levels and
100,000 placements written as literals, and the bill of materials gave the same refusal in words
of its own. `Document::placements_below` is that walk once, from any placement, refusing what is
past `MAX_PLACEMENT_DEPTH` or `MAX_PLACEMENTS` (never walking it in part), and both use its
refusal: "the assembly is deeper than 64 levels or has more than 100000 placements". The physical
properties now allow 100,000 placements below the start, as the bill of materials does (they
stopped at 99,999).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Bill of materials: the same rows for less work (#3874)

- Part numbers are borrowed from their definitions (`Part<'a>::Number(&'a str)`) instead of copied
  for every placement grouped and every kit.
- A row's members, the placements' paths, are built only when the list is asked for them
  (`list_with`, for item numbers, balloons and `row_of`): the walk then keeps paths and moves each
  into its one row instead of copying it. A list made for its rows alone builds no paths at all.
- `row_of` reads an index of member paths, built once with the list, instead of scanning every
  row's members for each placement asked about.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* occurrence.bom_type: input and output schemas (#3874, #4035)

`OccurrenceBomTypeParams` takes the occurrence (an id or a name), its path when given and the
type (one of the five, `same_as_component` or null), each read by the handler's own reader: the
path through `cmd::path_ids`, split out of `occurrence_path`, the type through
`cmd::occurrence_bom_type`, split out of the handler. The handler builds its reply from
`OccurrenceBomTypeResult` ({occurrence, bom_type, effective, changed}).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Bill of materials tests: all levels presented at every depth, and its caps (#3874)

- `assembly_bom_presents_the_typed_rows` now covers all levels (with mass, purchased contents and
  by definition) and the total mass, on a three-level design with a purchased gearbox holding a
  gear, comparing every field of every row down to 1.1.1.1.
- All levels lists 100,000 placements and 64 levels, and refuses 100,001 and 65.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Bill of materials: static materials, typed in for a component (#3874)

A value the bill of materials works out can now be typed in by hand for a component (a static
value, Cameron's choice of word). Material comes first:
`component.metadata.set {component, material}` takes any text up to MAX_TEXT_BYTES, and
`component.metadata` reads it back as `material`. It is shown wherever the component is listed,
at every level and in every view, over the materials worked out from its own bodies or an
assembly's blank, and the row carries `static: ["material"]`. Clearing it (empty text or null)
brings the worked-out material back.

It is kept the way `bom_type` is: a part property in the component's metadata (`material`), so
there is no format change and older releases keep it. `PART_ONLY` names both keys in one place:
Design Properties doesn't list them and `document.metadata.set` refuses them. Another tool's
non-text value is kept and reads as no static material.

The bill of materials says one thing about the part everywhere: a static material also stands for
the part in the one material an assembly around it shares (two parts typed in as S355 make their
frame read S355; S355 beside plain steel reads blank). A phantom's row is its own bodies, so its
static material names those only, and what it holds keeps its own. A row gathering several
definitions takes the first one's that has a static material, as its description does. It only
names: mass still comes from the bodies.

The CSV gets a `material` column at the end, so the other columns keep their places: what the row
shows, the static material or the worked-out ones joined with "; ".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Bill of materials: stable item numbers, saved with the design (#3874, P5a)

A numbered parts list keeps each row's item number under the row's key in
`assembly.item_numbers`, so a row keeps its number when others are added,
removed or reordered. New rows take the next number after the highest at
their level; Renumber restarts a view in list or item order and leaves
locked rows alone; duplicates are marked; numbers change no geometry and
are part properties in the undo history.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 00:29:25 -04:00
SilentWolf75 b8e93270b4 Sketch: align view to plane when editing a rotated component sketch (#9029) (#9042)
* claim: #9029

Co-authored-by: Cursor <cursoragent@cursor.com>

* Square sketch axes when looking at a turned plane (#9029)

Look At only yaw-aligned sketches facing world up/down, so a sketch on a rotated component stayed tilted on screen. Roll (or yaw at the poles) so the sketch's x runs right and y is upright.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-30 04:27:24 +00:00
SilentWolf75 ef628d1c86 Canvas: pick Calibrate points on the image (#9108) (#9208)
* claim: #9108

Co-authored-by: Cursor <cursoragent@cursor.com>

* Canvas calibrate: pick Point A and B with viewport clicks (#9108).

The Calibrate card only had typed coordinates, so users could not mark the image. Clicks on the canvas now fill A then B, with on-image markers and a short hint.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Calibrate canvas: ja/zh/ar/he/vi strings for the click hints

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: bherbruck <brennen.herbruck@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 04:25:52 +00:00
SilentWolf75 d93b1cb282 Sketch Trim: prefer free curves over projected edges (#8979) (#9224)
* claim: #8979

Co-authored-by: Cursor <cursoragent@cursor.com>

* Sketch Trim: prefer free curves over projected edges (#8979).

When Trim/Extend/Break is active, linked face edges yield to nearby drawn curves, and the refuse message names Break Link.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-30 04:25:45 +00:00
CamWight b708170028 Drawing W07: a view's lines, on paper, for the occurrences it shows (#5866) (#8970)
* View DXF: its lines come from one module both view commands share (#5866, W07 V1)

The view DXF (file.export_view_dxf) finds its lines in four files private to the command: the
export meshes, the projection, the hidden-line scene and the progress stages. Drawing views
(W07's drawing.view) need the same lines, so the four move to engine/src/mesh_lines, with
three changes that let a caller other than the DXF use them:
- prepare takes the bodies to draw from its caller (the DXF passes the shown ones), and
  names the caller's command in its errors;
- the lines are seen from a View (an origin, a right/up/back basis and, for perspective, the
  eye's distance) instead of a viewport Camera; the DXF builds one from its camera, with the
  same arithmetic as before;
- a sketch's polyline (Part) belongs to the module, so the sketch code no longer defines what
  the scene draws.

The DXF writing stays in cmd/view_dxf.rs, with connect (the dashed-line joining), and the stage
names and cancellation text stay the DXF's. Nothing else changes: the module is the DXF's own
code, moved, and the DXF writes the same bytes as before for every case checked (see the PR).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* View DXF: the sketch runs go once the lines are made, and a box's outline pinned (#5866, review)

From the review of #6482:
- The sketch runs (up to 4,000,000 points) are dropped once the lines are made, as they were
  before the move, instead of living through the DXF writing.
- `mesh_lines::prepare`'s doc says which errors name the command: those about the placements.
  A body with no exportable surface, the memory budget and cancellation come back as the meshing
  stage's own.
- A new test pins the lines themselves by hand: a plain 40 x 30 x 10 box seen from the front is
  its 40 x 10 outline. Every line lies along a side, they add up to the 100 mm perimeter, and
  nothing is hidden.
- The shared-geometry test hides the definition's first placement: the other two are still
  drawn from the one shared mesh.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing views: the bodies a view shows, worked out once per request (#5866, W07 V3)

A view's extents and, next, its lines read one list: each body the design places, with the
occurrences that place it and its definition's body name, in the world state's order. Choosing
occurrences and hiding parts (V4) and the reference split (V5) become filters on it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing views: a view's lines from the mesh projection, each named by what drew it (#5866, W07 V3)

drawing.view.snapshot now returns its lines: every shown body's edges and silhouettes from the
view DXF's mesh projection, seen orthographically on the view's basis, in pieces of one visibility
on the sheet. Each line names its occurrence path, its body and its source (an edge, as model.edges
numbers it, with whether it is a tangent edge, or a silhouette across a face). They are marked
approximate and sampled (Cameron's choice, 2026-10-27): the exact lines (W06) take over per body
after the kernel swap (V8).

- display_style visible or visible_hidden; tangent_edges hide or show; chord_mm, the paper chord
  the meshes are asked for (0.001 to 1, 0.01 by default). The model chord is chord_mm over the
  scale: the view DXF's 1 mm cap doesn't apply, so a view below 1:100 keeps its chord on paper;
  its 0.0001 mm floor does, and a chord under it is refused with the chord_mm that would do.
- max_error_mm is a check, never a setting (the accuracy rule on #5866): refused while any piece
  is sampled, with the count of pieces short of it.
- The three view DXF changes moved here from V1: each segment keeps its owner (its placement and
  its edge or silhouette face); a stretch two sources share belongs to the nearest visible one,
  else the nearest hidden one (level ones in owner order), ends where that changes, and counts as
  covered; the triangles keep their faces for that. The view DXF asks for neither, so it merges and
  writes as before. (Nearest, not first: a hole seen end on has its bottom rim under its top one,
  and by owner order the bottom rim took the stretches it shows through, cutting the top rim up.)
- A mesh side between two faces every edge between which is drawn is no silhouette: it lies on one
  of those edges, already drawn from its own curve. (Seen end on, a hole's wall faces neither way,
  and the side it shares with the top face drew stray chords just inside the rim.) The triangles
  keep their faces for it in both commands (4 bytes each, in the memory budget); without them the
  view DXF drew a hole's rim twice, and a view DXF test now finds every line drawn once.
- A triangle seen edge on, its normal at most 1e-3 (cosine) toward the view, faces away whatever
  sign the mesh's own error gives it, so no silhouette lies between two of them. (Seen end on, a
  bend's surface drew its rows as chords beside its arcs: a 60° bend's outer arc 1.76 times over.
  A view DXF test now finds each of its arcs drawn once.)
- Mesh positions within the tolerance weld: a position takes the key of the first one within it,
  in its own rounding cell or a neighbouring one. (The faces round a hole's rim are meshed apart,
  their copies of a rim vertex up to about 1e-7 mm apart, and copies either side of a cell
  boundary never met: each copy's side was a boundary, drawn as a silhouette.) The view DXF takes
  these three rules too; they change its lines only where a side lies along a drawn edge, a
  triangle is seen edge on or a weld was missed. The sample designs' view DXFs lose lines, and
  each line they gain lies within 0.0011 mm of an old one.
- One source's stretches join into runs within twice the tolerance the lines were merged at: the
  merge drops spans up to that long, so a stretch can stop that short of a corner on either side.
- The tangent test is a stadium of cubic segments: the kernel marks a join smooth only between
  faces swept from cubic segments, and one between two pieces of one surface is a seam, never
  drawn; a fillet's round keeps its edges, as the viewport draws them.

compile fix by the personal PC

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing views: a circle facing the view is drawn as its exact arc (#5866, W07 V3)

An edge that is a circle, or part of one, in a plane parallel to the view
is drawn as its exact arc from Body::planar_edges instead of the mesh's
chords. Where the mesh projection says its visibility changes, the arc is
cut there: a piece that runs along all of the edge is analytic, a cut
piece keeps the mesh's sampled accuracy; its ends may stop within the
stretches' join tolerance of the edge's own, as the merge leaves them.
planar_edges is asked once per shared mesh and placement turn, for the
curved edges only; a part placed again the same way takes the arcs
shifted on the view's plane.

compile fix by the personal PC

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing views: a view's visible lines as a paper scene group (#5866, W07 V7a)

The paper scene gains a kind for views (ObjectKind::View, layer VIEW).
drawing_view::paper_group turns a view's lines into its group: each
visible piece one stroke, 0.5 mm wide until D2 sets widths by kind of
line, closed when it ends where it starts; a line with no length is left
out and an arc too short to sweep is its chord. W14 calls it for saved
views.

drawing.view.snapshot takes scene: true and replies with the lines as a
paper scene of its sheet, checked by Scene::validate before it is
returned. Hidden lines need dashed strokes (A5, #7430), so scene with
visible_hidden is refused until V7b.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing views: a view draws the occurrences its source names and hide leaves out (#5866, W07 V4)

drawing.view.snapshot takes source: {occurrences: [[ids]]}, the occurrence
subtrees it draws ([] the design's own bodies; every body when not given),
and hide: [[ids]], subtrees left out. A body is drawn when its path is under
a source path and under no hide path, so a hidden path wins over a source
path above it. The rule is one filter on the shown set (ShownSet::keep), so
the extents, the lines and the paper scene follow it; each body costs one
look-up per head of its path, at most 64.

Each path is checked by Session::occurrence_placement as it is (each id in
its parent, no id twice, 1 to 64 ids), with at most 1000 paths in each list
and 4096 ids in all. [] in hide and a choice that leaves nothing are
refused. M2's occurrence tree will make the check one step per id later,
inside occurrence_placement.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing views: a bend seen end on draws its arcs once at any angle (#5866, W07 V4b)

A triangle whose surface is seen edge on at each of its corners (the mesh's own normals, at most
1e-3 toward the view) now faces away, whatever lean its facet has. A thin triangle's facet leans by
the mesh's chord error over its own width, which can be far past the 1e-3 a facet may lean and
still count as edge on. Seen end on, a 90° bend's surface is meshed with its edges' samples at its
ends and its rows at even angles inside, 1.667 mm in; the triangles that join the two lean 1.1e-3
to 5.8e-3, so each one facing the view among its neighbours facing away drew silhouettes along its
sides: chords beside the arcs, 1.14 times the inner arc and 1.69 times the outer. The view DXF
takes the rule too.

The export meshes keep their normals for it: 24 bytes a vertex, a position's size again, counted
in the export's 512 MB mesh budget, so the largest view that budget takes is about 30%
smaller. A mesh without normals keeps its facets' facing.

Tests: the bend test takes a 90° bend beside the 60° one; each bend circle's lines add up to its
arc, less only what sampling takes off.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 00:25:05 -04:00
CamWight 8679063629 Drawing revisions: rows added, edited and deleted by command, and listed by drawing.inspect (#3874) (#9150)
* cell: rules both kinds of table share (#3874)

Sheet tables (parts lists first) use the title blocks' cell content, so
the rules both read live in cell.rs:

- Source::Row: the row of a sheet table a cell is on. A title block has
  no rows, so its validation refuses a cell that reads one.
- Warning::Width: a word wider than its value box, shown whole, never
  cut: the width warning that measured text brings.
- is_snake_case moves here from title_block.rs: table columns are named
  by the same rule as cells. check_text is shared the same way.

Tests: a title block cell reading a row is refused, beside other parts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 640cc3e0f5)

* Sheet tables: the parts-list table model and layout (#3874, P7a)

A Table is a sheet table's definition: its columns, the side its heading
is on (top, or at the bottom with the first row just above it, ISO
7573), its row height (7 mm by default), text height, line widths, a
filter and overrides. A column's cells are the title blocks' cell
content read against each row: row fields and text. Rows are input, in
their listed order, with their values worked out and formatted, so a
filter (parts, assemblies, purchased, text per column ignoring case)
hides rows and never changes a count or a quantity.

Table::layout places it with a text measurer, from the right end of the
heading's outer edge:
- a column without a set width is as wide as its widest line, padding and
  line insets added; a set width is kept;
- every cell in a set-width column breaks between words to fit, and its
  row grows to hold its lines, 10/7 cap heights apart (ISO 3098-0); a
  word wider than its column is shown whole with Warning::Width;
- a row field the row doesn't have shows "-"; an override shows its text
  and keeps the value it replaces, an empty one is a blank cell, and one
  for a row that has gone is kept;
- cells sit inside their lines as a title block's do.

Limits, refused and never truncated: 10,000 rows and overrides, 64
columns, 1 MiB of text in all (each cell's text counted before it is
built), 256-byte keys, a measured width that isn't finite and at least
0, a table off the paper's coordinates.

Nothing is saved or drawn yet: the real measurer, DXF and CSV output and
the command come with P7b.

Tests: hand-worked cell corners and text anchors with a fixed-width
measurer, the heading at the top and at the bottom; wrapping and the
row it grows; a word too wide; overrides, blanks, "-"; each filter
leaving every shown value as given; JSON round trip, defaults and
unknown fields; every limit and one past it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 0c5180267d)

* Revision record and table (#3874, W31, P14a)

A drawing's revisions as data (geom::revision): one RevisionRecord for
the whole drawing, or per sheet with each sheet numbered apart.

- A row holds what people type: revision, description, designer,
  checker and date. Adding a row fills in only the next revision;
  nothing fills in a date, a checker or an approval.
- Numbers run from 1, or 0; letters run A to Y without I, O, Q, S, X
  and Z, then AA, AB. The next revision follows the highest in its scope
  among the rows and the issued history, so an issued revision is never
  given out again. A typed revision is kept as typed; in letters one
  with a skipped letter is accepted with a SkippedLetter warning.
- Rows are added, hidden and deleted; issue() appends a copy of a row to
  the issued history, which nothing removes or changes (private, read
  through issued()). Row and tag ids come from the caller (the
  design's random ids), never from a counter, so two people adding rows
  never take the same id; an id in use is refused.
- Triangular tags bind to a row id and show its revision or their own
  text; deleting a row reports its tags, which keep the revision they
  showed, marked lost.
- The revision table is the sheet table (table()): Revision,
  Description, Designer, Checker, Date, heading at the top; hidden rows
  are left out. The table's rows and a title block's revision fields
  (newest(), hidden rows included) read RevisionRow::field, one path.

This is the drawing's revision only: the model's revision and the
export time are kept apart. Release, approval and frozen snapshots
(G16/G22) are not in this slice. Nothing is placed or saved on a sheet
yet (W12, W15).

Tests: numbering both ways with the skips and past Y and YY, typed
revisions and the warning, the next after issued and deleted rows, per
sheet; add fills in nothing else; history kept through hide and
delete; tags reported and lost; the title block's fields and the table
rows from one function, laid out by the sheet table; JSON round trip,
unknown fields and damaged records refused; the caps; an id in use refused.

- An issued copy keeps the model version it was issued against
  (model_version, given to issue(); none until version control gives
  versions, #2869), so the release step has its field here. It is read
  by the label rule, like the revision.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit fa7849ada7)

* Drawing revisions: rows added, edited, deleted and listed by command (#3874, W31)

A drawing saves one revision record for all its sheets (Drawing::revisions, behind an Arc as the
sheets are, so an undo step shares it; validated with the drawing; its ids among the drawing's ids
in use), in the order its rows were added, the newest last. Pending drawing format: revisions.

- drawing.revision.add {set?}: a row with the next revision, after the highest the drawing has
  given, and any texts given: one undo step.
- drawing.revision.edit {row, set: {revision?, description?, designer?, checker?, date?,
  hidden?}}: the texts as typed (a revision is one line) and what changed; a revision in letters
  with a letter the lettering skips is kept and warned about.
- drawing.revision.delete {row}: the row, and the tags it leaves showing the revision they had.
- drawing.revision.list: every row, the oldest first, and the revision a new row gets.

An id's text form (13 characters of lowercase Crockford base32) moves down to solidcraft_geom::ids,
with an option helper, so the revision record (geom) writes its row and tag ids as every drawing id
is written; solidcraft_doc::ids gives them on, beside IdSource.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing revisions: listed by drawing.inspect, a table row keyed by its id's text, and a record per sheet tested (#3874, W31)

The rows show in drawing.inspect beside the sheets, as `revisions: {rows, next}`, from the same
function the revision commands answer with; drawing.revision.list goes, so a drawing's rows have one
place to be read. A revision table's row is keyed by its id as a file writes it, the one spelling
every drawing id has (a table's cell overrides name a row by its key). A record kept per sheet whose
rows keep its own rules is refused by the drawing, so that rule has a test of its own.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 00:22:51 -04:00
Derek Van Allen a66a517c40 Persistent naming: a proposal from a second implementation (#7990)
* Persistent naming: a proposal from a second implementation

A design proposal for the persistent-naming failures still open (#4341,
#5198, #5308, #5857, #5858, #5860, #5861), from building persistent naming
in Form Studio: fall back by lineage, never by geometry alone; a suppressed
maker is not a lost reference; names saved as structured one-level values;
ordinals from the feature, not the kernel's face order; split picks resolve
to all pieces; body identity apart from the display name. Documentation
only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Persistent naming proposal: body identity follows the #5308 plan

Change 6 now agrees with bluecmd's plan on #5308: an id minted from
next_id and stored per feature slot, better than the derived identity
the first version proposed. It adds that a stored id is only as stable
as the slot assignment, which today follows each lump's least face
name, and gives the lineage signature from the #5308 discussion.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 04:17:54 +00:00
semmelrinde f3ee34d372 English: American spelling throughout the base catalog, British only in English (UK), and "1 body" (#9085) (#9194)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 04:16:23 +00:00
SilentWolf75 c94d1e9894 Inspect: keep analysis legends clear of left History (#4515) (#9210)
* claim: #4515

Co-authored-by: Cursor <cursoragent@cursor.com>

* Inspect: keep analysis legends clear of a left History (#4515).

Draft, Accessibility and Curvature legends were painted at the viewport's left edge under a left History sidebar. Place them in the free workspace content instead.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-30 03:59:33 +00:00
kaltenbrunnermarkus 46a2d6b53c ui-egui offscreen tests pick their GPU by SOLIDCRAFT_GPU (#9052)
offscreen_device() asked wgpu for its default adapter and ignored the
SOLIDCRAFT_GPU policy that headless pictures follow, so with
SOLIDCRAFT_GPU=software the ui-egui offscreen tests still opened the
hardware GPU. Under hardware or software the adapter now comes from
solidcraft_gpu::select (new pick_among, which pick uses too); under cpu
there is none; unset (auto) keeps wgpu's default adapter as before.

Part of #9040.


Claude-Session: https://claude.ai/code/session_013WUFq6QFBqmZjxwaKy2J1M

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 03:55:09 +00:00
austin62jake c9935007e8 Sketch: the Sketch Grid box in the Sketch panel turns the sketch's grid off (#9147) (#9187)
* claim: #9147

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Sketch: the Sketch Grid box in the Sketch panel turns the sketch's grid off (#9147)

The box sets the open sketch's hide_grid, but the viewport drew the grid
whenever a sketch was open, so hide_grid only reached the ground grid and
the box did nothing. An open sketch now shows its grid whatever the Grid
switch says, unless its own Sketch Grid option is off; the window guides
that renders and the control channel use follow the same rule.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-30 03:55:05 +00:00
ABDULLAH 7b9d37c787 Arabic: Off wording in the recent snap note matches the other preference notes (#9215) 2026-10-30 03:52:57 +00:00
CamWight f87b66d759 Drawing balloons: the record, its rules and its commands (#3874) (#9126)
* Drawing balloons: the record, its rules and the sheet hooks (#3874)

A balloon points at a part placed in its view's model by an edge of it, saved
by name as a dimension's edge is (ModelEdge), with the occurrence path as the
part it numbers, and sits at a place on paper from its view's centre. The
dimension module's reference checks and strict lookup are shared, not copied.
Balloons go with their sheet, list in on_sheet and take ids from the drawing.
One pending drawing format file; a drawing without balloons saves as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing balloons: add, edit and inspect, with their schemas (#3874)

drawing.balloon.add puts a balloon on a saved view, pointing at a placed part
by an edge picked as a dimension's is and saved by name; edit moves it on
paper; inspect says where it stands with the model now, with the arrow's
point on its edge's middle. Add and edit are one undo step each, and none of
them evaluates the model. The status words come from one function shared with
the dimension commands.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing balloons: a copied view takes its balloons, and views and sheets list them (#3874)

A view's balloons are part of what it shows, so copying a view copies them,
with ids of their own, as its dimensions are copied. drawing.view.inspect
lists a view's balloons, and deleting a sheet names the balloons on it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 23:49:00 -04:00
JK3D 8a6a064d37 Headless pictures: draw counts come back with the picture they count (#7521) (#7522)
* claim: #7521

* fix: headless pictures return their draw counts with the picture

`the_renderer_counts_what_it_draws` drew with `Capturer::rgba` and then
read `Capturer::last_stats()`. The capturer is shared with the binary's
other tests, which draw on it from parallel threads, so another picture
could land between the two calls and the test read its counts (e.g. 10224
triangles for the empty design).

`Capturer::rgba_with_stats` returns the picture and its counts, read while
the call still holds the device. `last_stats()` is removed; this test was
its only caller (the performance overlay reads the viewport renderer's own
stats handle).

New test `pictures_drawn_at_once_each_count_their_own` draws empty and box
designs from eight threads on the shared capturer. Against the old pair it
failed 25 of 40 full runs of the `capture` binary; it passes with the new
call.

* fix: a headless picture waits for its read-back's answer

A picture maps its read-back buffer, waits for its submission with
`device.poll(PollType::Wait)`, and then checked once with `try_recv`
whether the map callback had run. wgpu calls a finished mapping's
callback from whichever thread next maintains the device, in a poll or
in any `queue.submit`, after it lets go of the device. When another
thread got there first, the wait returned with the mapping done but its
callback not yet called, and the picture failed with "not supported yet:
reading a picture back without waiting for the browser", the error meant
for a browser.

On the shared capturer, the other thread is another picture's device
check (`probe_lost` submits nothing before it takes the capturer's lock),
so the `capture` tests failed now and then: `bad_picture_sizes_are_errors`
(its last 8 x 8 picture), `pictures_show_a_plain_cut_without_the_hatch`,
`pictures_blend_a_line_that_is_not_opaque`. In the app, the window's
frames are submitted on the device its thumbnails and `ui.render`
pictures are drawn on.

A native picture now waits for the answer, up to the picture timeout; a
browser still answers later, on its own.

New test `pictures_read_back_while_another_thread_uses_the_device`: 2,000
small pictures while another thread polls their device. Without the fix
it failed 19 of 20 runs (1 to 7 pictures each); with it, 150 of 150 runs
pass. `bad_picture_sizes_are_errors` now prints the error it gets.
2026-10-30 03:19:33 +00:00
github-actions[bot] f35f3197c3 Regenerate generated files and fold pending files [skip ci] 2026-10-30 04:44:58 +00:00
github-actions[bot] 78499f44af Regenerate generated files and fold pending files [skip ci] 2026-10-30 04:36:06 +00:00
semmelrinde 5b5201f1a6 Galician: translate the 386 messages the catalog lacks, Render Light and Frame stages included (batch 7) (#9162)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 03:02:11 +00:00
semmelrinde f28ff15ffb Hungarian: translate the 386 messages the catalog lacks, Render Light and Frame stages included (batch 7) (#9154)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 03:01:02 +00:00
semmelrinde 4f8bbec9fb French: translate the 356 messages the catalog lacks, Render Light and Frame stages included (batch 7) (#9153)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 03:00:21 +00:00
semmelrinde 77ebf1326c Italian: translate the 377 messages the catalog lacks, Render Light and Frame stages included (batch 7) (#9155)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 03:00:09 +00:00
github-actions[bot] fdc95337cf Regenerate generated files and fold pending files [skip ci] 2026-10-30 04:11:55 +00:00
github-actions[bot] 0e053e5e61 Regenerate generated files and fold pending files [skip ci] 2026-10-30 04:02:58 +00:00
semmelrinde 6bbb4276c0 Romanian: translate the 386 messages the catalog lacks, Render Light and Frame stages included (batch 7) (#9151)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 03:00:02 +00:00
semmelrinde 6d641c87c4 Malay: translate the 386 messages the catalog lacks, Render Light and Frame stages included (batch 7) (#9160)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 02:59:47 +00:00
semmelrinde 553f5fb9b8 Czech: translate the 386 messages the catalog lacks, Render Light and Frame stages included (batch 7) (#9152)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 02:59:46 +00:00
semmelrinde 88dd699715 Swedish: translate the 386 messages the catalog lacks, Render Light and Frame stages included (batch 7) (#9157)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 02:59:38 +00:00
semmelrinde c092e0551b Dutch: translate the 383 messages the catalog lacks, Render Light and Frame stages included (batch 7) (#9156)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 02:59:14 +00:00
semmelrinde c320dc421c Turkish: translate the 369 messages the catalog lacks, Render Light and Frame stages included (batch 7) (#9158)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 02:58:58 +00:00
semmelrinde 0f489a5777 Croatian: translate the 384 messages the catalog lacks, Render Light and Frame stages included (batch 7) (#9165)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 02:58:49 +00:00
semmelrinde 3df709be63 Norwegian Bokmål: translate the 386 messages the catalog lacks, Render Light and Frame stages included (batch 7) (#9163)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 02:58:45 +00:00
semmelrinde 875ac2ce49 Traditional Chinese: translate the 385 messages the catalog lacks, Render Light and Frame stages included (batch 7) (#9159)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 02:58:31 +00:00
semmelrinde 698275874f Indonesian: translate the 386 messages the catalog lacks, Render Light and Frame stages included (batch 7) (#9161)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 02:58:10 +00:00
semmelrinde 0d4470cd8c Bosnian: translate the 384 messages the catalog lacks, Render Light and Frame stages included (batch 7) (#9164)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 02:57:53 +00:00
semmelrinde 5dfc3481c1 Serbian: translate the 384 messages the catalog lacks, Render Light and Frame stages included (batch 7) (#9166)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 02:57:11 +00:00
bherbruck 8f1b456275 Release 0.27.1 (#9181)
* Release 0.27.1

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Render job test: wait for the cancelled job's reservation to be released

The worker drops a job's reservation just after the job turns terminal, so
checking admitted bytes right after wait_timeout raced (10 of 40 local runs
failed). Poll with a deadline, as dielectric_tests does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 23:34:23 -04:00
CamWight a09c24e9bf Drawing dimensions: a circle's or an arc's radius and diameter (#4896, W20a) (#8959)
* Drawings saved inside the design's file, in both forms (#3890)

K3b of the drawing storage plan, after #7098: a drawing lives in the file of the design it draws
(bherbruck's proposal, Cameron's choice), so the separate drawing file goes.

- `Document.drawings`: the design's drawings, each its own record of the drawing family
  (`solidcraft-drawing/N`), each behind its own `Arc`. Every reader and writer of a design now
  carries them: save, Save As, autosave and recovery, crash copies, the CLI.
- A design container keeps each drawing in its own entry, `drawings/<id>.json` (Deflate), beside
  `document.json`, which holds nothing of them: its bytes, and the model cache keyed to them, are
  the same with drawings or without. A plain JSON design keeps them inline under `drawings`.
- Each drawing is read by its own family's rules, taken out of the design's JSON before the design's
  own checks. One a build can't read (a newer number, a change it doesn't know, damage) refuses the
  whole design, never dropped. So does an entry under `drawings/` that isn't a drawing's, one whose
  record has another id, drawings inline in a container's `document.json`, two drawings with one
  id, or more than 1,000 (counted before any is read). A design is never saved with two drawings of
  one id.
- Drawings are listed by name, then id: no stored order, nothing to merge when two people add
  drawings.
- A drawing has an `id`, unique among its design's drawings (`Drawing::new` takes the ids already
  taken). Its source is the design it is in: at most one, an id and no path.
- One pending design change, `drawings`: the last release refuses a design saved with it, so it
  never opens one and saves it without its drawings. One pending drawing change, `in-design`, for
  the record's new shape.
- Gone: `read_drawing`, `read_drawing_file`, `write_drawing_container`, `file_kind`, `FileKind`,
  `DRAWING_EXT` and `is_drawing_path`. `read_document`, `read_design` and the container writer are
  as they were before #7098, with the drawings added.

Tests: a design's drawings round-trip through both forms byte for byte, with `document.json` and
`container.json` the same with drawings or without; their order; every refusal above; a drawing's
properties kept as other tools wrote them while a sheet's number out of range is refused; the
drawing's id among its objects', a new drawing's id none of the design's; a design with two
drawings of one id not saved; mutation fuzz of a design with drawings in both forms.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing commands on the design's own drawings, each drawing its own undo (#3890)

K4' of the drawing storage plan, on K3b (a drawing lives in its design's file): make, list, open,
close and delete a design's drawings, and read and change the open one's settings and properties.
It replaces #3891's drawing sessions, which held a drawing as a file of its own.

- `drawing.create {name?, language?, units?}` adds a drawing of the design (one ISO A3 landscape
  sheet with the ISO border, the design its one source) and opens it; refused on an empty design.
  `drawing.list`, `drawing.open {drawing}`, `drawing.close`, `drawing.delete {drawing}`.
  `drawing.inspect`, `drawing.set`, `drawing.properties`, `.properties.set`, `.properties.remove`
  work on the open drawing. Labels in en, ja and zh.
- The open drawing is the session's (`Session::open_drawing`, kept in checkpoints), and the part
  gate keeps the parts apart: a command says the part it works on, the model unless it says
  otherwise (`.in_drawing()`, `.any_part()`). While a drawing is open the model's commands wait
  ("a drawing is open: close it to change the model"); the drawing's run only while one is.
  Files, recovery, undo and redo, checkpoints, selection, diagnostics, the command list and
  choosing a drawing work either way. `CommandSpec::allowed` is the one check running a command,
  running it inside another and listing it make.
- `Session::drawing` and `Session::edit_drawing` are the open drawing's one way in: an edit is kept
  when it changed something and still keeps the record's rules, in a new design whose other
  drawings are shared.
- A change that only touches drawings evaluates nothing: `Document::differs_only_in_drawings`
  joins the render-only path, as render settings and part properties do. A model edit shares
  every drawing, so it pays nothing for the check.
- Undo per part: a step records the part it changed (`Snapshot::part`: a drawing, or the model
  and its list of drawings). Undo and redo go through the open part's steps only. A drawing's
  step puts back only that drawing; the model's step puts back the design as it was, keeping each
  drawing it had as it is now. Making and deleting a drawing are the model's steps. A new step
  ends what could be redone in its own part only. `Snapshot::of` is the one place a step is
  taken.
- An agent's message that changed several parts keeps their steps apart, rather than merging them
  into one step that would undo only one part.
- `cmd::metadata`'s rules for reading, setting and removing properties are written once
  (`reading`, `setting`, `removing`) and used by the design's and the drawing's commands.
- `drawing::sort` is the one place the drawings' order (by name, then id) is kept;
  `Document::put_drawing` adds or replaces one in that order.

Tests: making, listing, opening, closing and deleting; what making one refuses, at the cap too; the
gate both ways, inside another command and in the command list; drawing edits as undo steps that
evaluate nothing over 100 rounds; undo and redo per part with model and drawing steps interleaved;
redo ended per part; the order by name, then id, after renames; delete and its undo; refused
changes; checkpoints; save and open in both forms; properties; hostile values for every command
that runs with a drawing open, from the registry; a fuzz of the steps in any order.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Unknown-command tests: the closest id first (#3890)

drawing.open now joins doc.open in the suggestion for `file.open`, as the rule says: both end in
the same word. The engine's and the CLI's tests check that doc.open comes first and let other
close ids follow, as the `solid.extrud` line beside them already does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Model bodies: their extents seen on a plane, for a drawing view's size (#5866)

ModelBody::mesh_bounds_in(plane) is the box of a body's mesh in a plane's own coordinates
(Plane::to_local), beside mesh_bounds and in the same way: a body meshed already is measured from
its own mesh, and a placement of a part from its definition's shared mesh, with the placement
folded into the plane's two axes once (two dot products a point), so no moved copy is made. W07's drawing.view measures a view's extents with it.

Tests: a 100 x 50 x 20 block seen on the three principal pairs of axes and from an isometric
corner (150/sqrt(2) by 190/sqrt(6), worked by hand), a plane away from the origin, and every
placement in the shared-mesh test against its moved mesh, still without a moved copy, and the
same again from its own mesh once it is meshed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing views: projected views in first or third angle, lined up with their parent (#4816, W17a)

W17a's second slice: the principal views derived from a base view.

- `ProjectedSide` (left, right, above, below): the side of its parent a
  projected view sits on.
- `projected_basis(parent, side, projection)`: in third angle a view shows
  the side of the model it sits on (one to the right looks from the right), in
  first angle the side away from it (ISO 5456-2). It's the parent's basis
  turned a quarter turn about one of its paper axes, through its origin, with
  no -0. From the front view it gives exactly the named views: right, left, top
  and bottom in third angle; left, right, bottom and top in first.
- `ViewFrame::aligned(side, projection, centre, position_mm)`: a projected
  view at its parent's scale, lined up with it, so it moves only along the free
  axis.
- The projection is S2's `cell::Projection`, the value the title block's
  symbol reads, so a drawing has one first-or-third setting.

Tests: the front view's projections are the named views in both angles, with
no -0; from every named view and a leaning one, a projected view looks from
its side and keeps the parent's other axis and origin, four turns or a turn
and its opposite bring the parent back; a box's corners line up across
aligned views in both angles; hostile parents, centres and positions refused.

Corner (isometric) projected views wait for one convention check on first
angle. The derivation graph (projected from, aligned to, cycles refused) moves
to the view record in the drawing file, where the view ids live.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing dimensions: measurement on view frames (#4896, W19a)

`geom::drawing_measure` is what a dimension on a view reads, in model mm or radians, from model
points and edges and the view's basis: one rule for every dimension. The view's scale and place
on the sheet never enter.

- `linear`: horizontal and vertical along the view's paper x and y, aligned as the view shows
  the segment, or along a direction picked on the view; a true reading is the segment's own
  length (aligned only).
- `angle`: from the view's horizontal or vertical, a model axis as the view shows it, or
  another edge, from 0 to π as each line is oriented; a true reading is between model lines.
- `foreshortened` says a measured line isn't parallel to the view's plane.
- Refused with a reason: points that aren't finite or are past 1e12 mm, an invalid basis, a
  zero-length segment, a line seen end-on, a zero direction, a zero reading, parallel lines,
  and a true reading where there is none. `drawing_view`'s `PARALLEL` and `require` are shared.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* drawing.view.snapshot: a view's scale, place and boundary on its sheet (#5866, W07 V2)

The first slice of W07: one orthographic view of the design, worked out and returned as data,
before any line is drawn, so scripts can lay views out by their boundaries.

- `drawing.view.snapshot` takes the view's settings, the sheet it goes on (A3 landscape at
  300 dpi when not given) and where its centre goes (the sheet's centre when not given). With no
  scale it takes the largest ISO 5455 scale at which the view, centred there, lies inside the
  sheet's drawing border. It returns the resolved view, the scale (and whether it was fitted),
  the extents on the view's plane, the boundary on the sheet and what it was drawn from.
  Read-only and not undoable; it opens nothing and saves nothing.
- Every body the design places is in the view, wherever its occurrences place it; the browser's
  eye counts for nothing (`engine::drawing_view::extents`, from P2's `mesh_bounds_in`). A design
  whose assembly walk stops at its limits (deeper than 64 levels, or past 100,000 placements) is
  refused rather than drawn with parts left out: `Document::placements_complete`, beside the walk,
  says whether every placement it holds had its occurrences walked.
- `doc::drawing_view::ViewSettings` is the view's one parameter set: the view (named, or a
  direction and an up), the scale, the two visual styles, the reference settings and tangent
  edges. A saved view (W12) keeps the same fields; no scale is written as none, not null, so
  what it writes reads back as the snapshot's parameters.
- `render::VisualStyle` names the five styles: visible, visible_hidden, shaded, shaded_visible
  and shaded_visible_hidden. The shaded ones are refused as not supported yet until the drawing
  renderer (#5624).
- The command has a typed contract (input and output schemas). Its handler reads the contract's
  own type through `schema::read`, in the contract check's own words, so the check's levels give
  one message for one mistake and an unknown field is refused by name. The reply includes the
  sheet, its defaults filled in.

Tests: the 100 x 50 x 20 block's boundary in the front, top, right and isometric views at 1:2,
worked by hand; the fitted scale on A3 and A4 and near the border; scale, position and margin;
the browser's eye ignored; the design untouched; each hostile setting refused; the walk's
depth limit one level either side; the contract's keys the same as the settings' own.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing views in the drawing record: base and projected views, and the projection (#4816)

E4 of the view-boundary plan, with #4816's derivation graph (plan on #4816).
A drawing now saves its views, as one pending drawing-format change
(`drawing/format/pending/sheet-views.rs`):

- `Drawing.views`: each view an object of the drawing, on one of its sheets.
  A base view draws a source from a direction (`ViewDirection`, as
  `drawing.view.snapshot` takes it); a projected view sits on one side of its
  parent. Its place is a point of the sheet, or, lined up with its parent, only
  how far along the free axis, as the other comes from the parent. A projected
  view's source and basis come from its chain, so neither is saved.
- `ViewOverrides` beside V2's settings: what a view sets itself, each setting
  on its own (scale, display style, reference style, reference parts hide the
  model, tangent edges); none is written when left out. Each view has its own
  reference margin.
- `Drawing.projection`: first or third angle (S2's `cell::Projection`). Third
  angle is the type's own default (Cameron, 2026-10-26), for a drawing that
  doesn't say and for a new one until a template or a preference chooses.
- The rules, checked on reading and after every edit: a view is on one of the
  drawing's sheets; a base view draws one of its sources, has a scale and a
  direction that makes a view; every parent is a view, no chain of parents
  loops, and a chain is at most 32 views; a lined-up view is on its parent's
  sheet; a place is on paper; at most 4,096 views. A view's id is the
  drawing's, never another object's.
- `Drawing::resolve_view`: one rule for every reader. It turns the base view's
  basis down the chain (`projected_basis`, in the drawing's projection) and
  takes each setting from the nearest view that sets it, then the default,
  saying who gave it.
- geom's `is_paper_coordinate`: the one rule for a view's place on paper, now
  used by `ViewFrame::new` and the record.

The record tests' seed drawing has views, so its round trip and mutation tests
cover them; their unknown-field examples no longer use `views`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Engine tests: one temporary folder helper and the schema check for every test module (#4816)

The view tests use the drawing tests' temporary folder and the schema tests' `conforms`, which were
private to their modules. `Folder` moves to the engine's test module and `conforms` is open to the
crate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing views: inspect and edit a saved view (#4816, W17c)

E5 of the view-boundary plan (plan on #4816): what the view's window reads and
writes, for the views of a drawing (E4). Both are drawing commands with
input and output schemas, and neither evaluates a model.

- `drawing.view.inspect {view}`: its kind (base or projected), sheet, source,
  parent and side, its direction as resolved (named only when it is exactly a
  named view), its place, and each setting as {value, from, parent?, set}:
  where the value comes from (the view, a parent by id, the default) and what
  the view saves itself. A projected view says whether its display settings
  follow its parent (`linked`: true, false or "partly"). `choices` gives the
  display styles and the preset scales, so a window keeps no list of its own.
- `drawing.view.edit {view, set}`: one undo step. Each setting takes a value,
  or null to follow the parent (a base view keeps a scale); the margin, a base
  view's direction and the place change too. `linked: false` saves the display
  settings at the values they have, `linked: true` clears them so they follow.
  The reply names the fields changed and the views projected from it whose
  settings changed with it. The record's rules hold after every edit; an edit
  that changes nothing is no step.

The contract test keeps the edit's fields and the record's (ViewOverrides) one
list. The view's boundary comes with the next slice, which works out where each
saved view sits on its sheet from its design's extents.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing views: where a saved view sits on its sheet (#4816)

`Drawing::view_centre` gives a view's centre on its sheet: its point, or, lined up with its
parent, its own place along the free axis and the parent's centre across it. The free axis is
one rule on `ProjectedSide` (`along`, `on_free_axis`), which `ViewFrame::aligned` uses too.

`engine::drawing_view::on_sheet` puts a saved view on its sheet: its design's extents on its
plane, grown by its reference margin, at its scale, round its centre. The snapshot and saved
views share `measure` (refusing an assembly past the walk's limit or one with no bodies) and
`boundary`. With nothing to measure (the design has no bodies or places more than a view walks) a
view gets a 20 x 20 mm placeholder round its centre. A view's source is the design the drawing
is in, so the session's own model is what it measures.

`drawing.view.inspect` adds `boundary_mm` and `extents` (status `placeholder` and why, when there
is nothing to measure). It still evaluates no model.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Projection of new drawings: a preference, and drawing.set takes the projection (#4816)

A drawing's views follow its projection, first or third angle (third when nothing chooses).
`drawing.inspect` now shows it and `drawing.set {projection}` changes it as one undo step.
Preferences > Design gets a Drawings section with "Projection of new drawings"
(First angle / Third angle). A new drawing takes it as a new design takes "Units of new
designs": the app sets it after `drawing.create`, with no undo step of its own. A saved
value this version doesn't know reads as third angle; asked for over the control channel,
it is refused.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing sheets: one edit, one lookup, a border that lays out, and schemas (#3875)

The sheet commands change the drawing through `Session::edit_drawing`, so the same settings or
order again leave no undo step, and answer from one reply type. A sheet is looked up by id or
name on `Drawing` (`sheet_index`), where later commands that name sheets find it too.

A sheet's border must lay out on it: the record's check runs the border's own layout, the one
rule drawing uses, so a 15 x 15 mm sheet with the ISO border is refused when it is made, not
when it is drawn. `excluded` must be an object of `count` and `print`: a mistyped key changed
nothing unseen. A new sheet documents nothing and leaves nothing out unless told, and the add's
parameter documentation says it takes `documents` and `excluded` too.

The drawing's properties sit behind an `Arc`, as its sheets do, so an undo step shares them.

Each sheet command has an input and an output schema (#4035). A flattened part of a contract
reports its keys as the parent's own (`schema::flattened`, which `FeatureCommon` now uses).
The tests add the missing cases: 1000 sheets and the 1001st, `after` by id and unknown, the
resolution's bounds, a name two sheets share, the same order and settings again, an undone
delete in place, and the add's reset of what it documents and leaves out.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing ids: one id source per session, its seed kept for replays (#3890)

The drawing commands drew ids from a fresh random source each time, so a crash replay of a drawing
could never find what an earlier command made by its id. A session now has one id source
(`Session::ids`), kept across a file change, from which `drawing.create` draws its drawing's,
sheet's and source's ids: seeded alike and run alike, a session gives the same ids, and a failed
command draws none, so a replay of what succeeded draws the same. The crash journal keeps the seed
at each base and `replay.json` carries it, which `solidcraft-cli crashes replay` seeds the replay
with (`Session::seed_ids`).

Tests: two sessions seeded alike make a drawing with the same ids, another seed other ids.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing sheets: add, change, reorder and delete a drawing's sheets (#3875)

W18 S4: the sheets of a drawing, on the drawing session K4 made (#3890). Each command is one undo
step of the drawing and names a sheet by its id or, when only one has it, its name.

- `drawing.sheet.add {after?, name?, size?, orientation?, dpi?}`: a new sheet after the one named
  (the last when not), taking that sheet's paper, border and resolution, with a name of its own
  ("Sheet 2") and nothing documented yet.
- `drawing.sheet.set {sheet, name?, size?, orientation?, dpi?, documents?, excluded?}`: one
  setting at a time, the rest kept; `documents: null` clears what it documents, and `excluded`
  changes only the flags it gives.
- `drawing.sheet.reorder {sheets}`: every sheet's id once, in the new order.
- `drawing.sheet.delete {sheet}`: a drawing keeps at least one sheet.
- Every change goes through the drawing's own rules (`Drawing::validate`), so what a saved file
  would refuse is refused here. Changing a sheet's paper changes only the paper: regrowing its
  border and moving what is on it is S5's. Labels in en, ja and zh.

Tests: a new sheet copying the paper it follows, after a named sheet too, and undone; each setting
changed with the others kept; nine refusals (resolution, sizes, orientation, name, an unknown
source, a flag, an unknown sheet, no sheet named) with the drawing unchanged; reordering, and four
orders that aren't every id once; a name two sheets share refused in favour of the id; the last
sheet kept.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing sheets: a new sheet's id from the session's id source (#3875)

`drawing.sheet.add` draws its id from `Session::ids` (#3890's one id source per session), so a
crash replay of "add a sheet, then change it by id" finds the sheet: seeded alike and run alike, a
session adds sheets with the same ids, and a failed add draws none.

Tests: two sessions seeded alike add the same sheet ids, another seed others, a failed add none.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing views: move or copy a view to a sheet (#4816)

`drawing.view.move_to_sheet {view, sheet, position_mm?, break_alignment?}` puts a saved view on
another sheet as one undo step, keeping its id, direction, source and settings. The views lined
up with it go with it and keep their places beside it; a view placed apart stays. Without a
position it keeps its place. A view lined up with its parent moves only with `break_alignment`,
and is then placed apart: at the position, else the sheet's centre. Its own sheet changes
nothing.

`drawing.view.copy_to_sheet {view, sheet, position_mm?, with_linked?}` makes new views, each
following none of the views it was copied from (Cameron's rule). A view with views lined up
with it needs `with_linked`: true copies them too, lined up with the copy; false copies it
alone. A projected view copied alone becomes a base view, looking the way it did (by name when
it is exactly a named view) with the settings it had as its own. The copy goes to the position,
else the sheet's centre.

A lined-up view's centre comes from the places alone: its place along the free axis, and its
parent's centre across it. So the views that travel with a view are shifted along their free
axis, and nothing needs the design's extents. `descendants` takes which views it follows, so the
edit's followers and the views lined up with a view are one walk.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing views: move and copy take a view's centre from the record (#4816)

Moving or copying a view to a sheet worked out a view's centre with its own copy of the
lined-up rule. It now uses `Drawing::view_centre`, and a lined-up view's place moves along
its free axis by `ProjectedSide::along`, so the rule is written once.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing sheets: a change of paper lists the views it leaves outside, and moves none (#3875)

W18 S5, its first part. `Sheet::drawing_space` is where a sheet's drawing goes: inside its
drawing border, or the whole paper with none. Nothing on a sheet is saved against the border,
so a change of paper regrows the border and its zones by itself.

`engine::drawing_view::outside` lists the views whose boundary (`on_sheet`) leaves their sheet's
drawing space, sides included. `drawing.sheet.set` lists them after a change of paper (size or
orientation; nothing else moves the space, so nothing else is measured), and moving or copying a
view to a sheet lists those it puts outside there. None is moved: where a view goes stays the
author's choice. A view with nothing to measure is listed by its placeholder, with why.

Tests: the drawing space with the ISO border, a filing margin and no border, and margins that
leave none; A3 to A4 either way up listing the right and top views with their boundaries and
moving nothing; a border through a view's edge leaving it inside, 0.1 mm less paper putting it
outside; a change of name checking nothing; undo; a move to a smaller sheet listed and a copy
that fits not; a placeholder listed as `past_walk_limit`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing ids and the sheet border: the tests the slices left out (#3890, #4816, #3875)

What the slices' planted faults found untested, now each caught by a test:
- a file change keeps the session's id source: a drawing made after `file.new` draws the same ids
  in two sessions seeded alike;
- a copied view's ids come from the session's id source, seeded alike giving the same copies;
- a crash report's replay carries the session's id seed, from a caught panic (the seed when the
  command started) and from the journal of an unclean exit (the seed at its base);
- a view short of the sheet's border by less than a rounding is still inside it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing views: listed by id, whatever order they were added in (#4816)

The record's rule says a drawing saves its later records by id, never in
the order they were added in. Views were kept, and saved, in the order they
were added, so the same views added in another order saved as other bytes.

- `Drawing::add_views` adds views where their ids put them. It is the one way
  views are added: `drawing.view.copy` uses it, and so do the test fixtures.
- `Drawing::validate` checks the order, so every edit keeps it.
- Reading puts a file's views in id order before it checks the record. The
  order means nothing, so a file in another order (saved before views went by
  id, or edited by hand) isn't damaged: it opens, and saves by id.
- What a command lists in the drawing's order (the views a change of paper
  leaves outside, an edit's followers) now comes by id.

No format change: no release has saved a view (the views change is still
pending).

Tests:
- views added out of id order are listed and saved by id;
- the same views added the other way round make the same drawing and the same
  bytes, which read back as saved;
- a file that lists them the other way round reads by id, as the same
  drawing, and saves as those bytes;
- an edit that leaves them in another order breaks the record's rule;
- the existing tests now index the file by id order, and the engine's lists
  are by id.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing dimensions: the dimension record, saved by name on a view (#4896, W19b)

A drawing saves its dimensions: each on one of its views, measuring named
corners or edges of the view's model (a linear distance between two corners,
a straight edge's length, or the angle between two edges), with the direction
and reading W19a measures with, how far its line sits from what it measures,
where its text sits on paper, its decimals and any text shown instead of the
number. A reference names its body, the feature that made the body and its
occurrence path, never a picked point. Nothing worked out is saved.

- Dimensions are listed by id, read in that order whatever order a file has,
  as views are: one helper pair (add_by_id, in_id_order) now keeps both lists.
- One cap for the names a saved model reference keeps
  (MAX_REFERENCE_NAME_BYTES, used where 512 was written three times), and the
  corner's edge cap shared with construct's vertex references.
- LinearDirection and Reading save as snake_case words; a direction along a
  line saves as its two coordinates.
- A direction along a line is at most 1e9 each way (format::MAX_REAL, the
  limit the file's number check holds every real number to): a whole number
  past it passes that check, reads as a real, and would save as one the next
  read refuses (found by the mutation test).
- One pending drawing-format file (dimensions.rs).

Tests: what each dimension saves and reads back as the same bytes, a file in
another order reads by id, an older drawing has none; every rule on both sides
of its cap, unknown fields at every level, the id rule, and the count cap; the
plate fixture carries one dimension of each kind, so the existing round-trip
and mutation tests cover them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Edges and corners by name: the matching step and the shared ends, each in one place (#4896, W19b)

A dimension finds an edge by name the way a fillet does, but never takes
the piece nearest an old pick, and finds a corner where its named edges
meet, refusing to choose between two. Both steps are split out of the code
that already does them, so there is one rule each:

- BodyEdges: a body's edge and face names, worked out once for every name
  looked up on it, and `matching(name)`: the edge with that name, else the
  one edge between the faces it names, else the pieces of it. locate_edge
  now calls it and then takes the piece nearest the pick, as before.
- construct::shared_ends: the ends every named edge has, each once.
  named_vertex keeps the one nearest its point, as before.

No behaviour change: every caller of locate_edge, find_edge and the vertex
references gets the same results. The existing naming, joint and
construction tests cover both paths; three new ones pin what they left
open: a vertex only where every named edge ends, the piece of a split
edge nearest the pick, and a lone match through the stem of a face taken
as a piece, with the warning.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* A body's frame through an occurrence path, in one place (#4896, W19b)

Document::body_frame_at(body, path): the placement the path leads to,
then the body's offset, without expanding every assembly instance. It is
what EmbossFace::body_frame composed for its saved path; that now calls
it, and drawing dimensions use it for the occurrence path they save. No
behaviour change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing dimensions found again in the model, strictly (#4896, W19b)

Document::resolve_dimensions(model, drawing, ids) works out each dimension
as the model has it now:

- An edge by its name, or the one edge between the faces it names
  (BodyEdges::matching), never the piece nearest an old pick. A corner is
  the one end all its named edges, or their pieces, share; two shared ends
  are ambiguous, never "the nearer one".
- The body by its name and the feature that made it, placed through the
  saved occurrence path (Document::body_frame_at). A same-named body made
  by another feature isn't it.
- Status: ok; overridden (the text given is shown, the value still worked
  out); ambiguous (the candidates, at most 16, none chosen); suppressed (its
  feature is suppressed or rolled back, read from the evaluation's own
  skipped mark); lost (why); unmeasurable (found, but the view can't
  measure it so, in W19a's words, such as a line seen end-on).
- The value comes from W19a on the view's basis. An angle is the smaller one
  between the two lines, or pi minus it on its other side, whichever way the
  kernel runs the edges; a split edge's pieces on one line are still that
  line. A split edge's length is ambiguous.
- The text: the override, else length_number in the drawing's unit (or the
  design's) with the dimension's decimals, or degrees for an angle.
- The cost: each body named is looked up once per call, and its edge names
  worked out once, however many dimensions name it. A body none names isn't
  touched.

Not saved: nothing here changes the drawing. The last good value of a lost
dimension needs the session, so it comes with the commands (W19d).

Tests (engine, an 80 x 40 x 30 box, values by hand): front and right view
values, foreshortening and text, the drawing's own unit, several at once
and an unknown id; a change and its undo; a chamfer's 45 and 135 degrees,
and end-on in the front view; lost after a fillet and back on undo,
suppressed and back, a path to no occurrence, a new box with the same body
name; a notched edge's length ambiguous with both pieces while its end
corners still read 80 and its angle to the left edge 90 degrees, neither
exact; an angle on a piece of an edge whose slot is then suppressed still
reads 90 degrees, found through the stem of the face it was cut from, so
not exact; one edge named twice gives two corner candidates;
an override shown while the value follows the model.

Not covered by a test here: a part placed twice through real occurrences
(only a path to no occurrence is); the once-per-body cost (not measured).
A drawing unit outside display_units' five (um, yd, km, mil, nm, inch, µm)
shows millimetre numbers, the formatter's existing fallback; named as its
own follow-up.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing sheets: a sheet with anything on it goes only with it, when asked (#3875)

drawing.sheet.delete refuses a sheet with anything on it, and its
error names what is there: its views and the dimensions in them, the
first few ids of each. With `contents: "delete"` the sheet goes with
everything on it as one undo step, which an undo brings back whole.

What is on a sheet is said once, in the record (Drawing::on_sheet),
and Drawing::remove_sheet takes the sheet out with exactly that; each
later kind of record on a sheet (a sheet's own sketches) adds itself
there, so delete covers it with no change here. drawing.sheet.set's
list of a sheet's views uses the same function.

Nothing on another sheet goes with it: a view there projected from one
of the sheet's views would lose its parent, so the delete is refused
naming those views, to be moved or deleted first.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing views: a view found by id by halves, in one place (#4816)

The views are listed by id, so Drawing::view and Drawing::view_index
find one by halves instead of walking the list. Every lookup by id
uses them: a view's chain of parents (so resolving a view no longer
walks the list once for each parent), the views' rules (which no
longer build a map of every view to check each chain), a dimension's
view, and the engine's view commands and outside check.

The rules check the id order before anything looks a view up, so a
file with its views out of order is still refused as before.

Measured on a drawing of 4096 views (1024 chains of a base view and
three views projected one from another), median of 30 runs: 4096
lookups by id took 6.85 ms by a linear find and take 105 us by
halves; the rules' check took 1.77 ms and takes 1.45 ms.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing views: a damaged chain names the view whose parent is missing (#4816)

A view whose chain of parents breaks further up was refused with "its
parent X isn't one of the drawing's views", naming a view that isn't
its parent. Further up the chain, the refusal now names the view whose
parent is missing: "its chain of parents reaches view Y, whose parent
X isn't one of the drawing's views". A missing parent of the view
itself reads as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing dimensions: add one to a view, and read it back (#4896, W19d)

drawing.dimension.add puts a dimension on a saved view of the open
drawing; drawing.dimension.inspect reads one back with what it
measures now. Adding is one undo step of the drawing; neither
evaluates the model.

What a dimension measures is picked and saved by name, never by the
point picked. Document::edge_reference and corner_reference turn a
pick into the record's names: an edge is a point on it in the design's
frame or {body, index} (its index among the body's edges as the model
lists them, as an ambiguous dimension's candidates are given), and a
corner is a point or the edges that meet there, each with the
occurrence path its body is placed through. A pick that doesn't name
one thing is refused, saying what it found: no edge, a point on
several edges, a corner of more than one body, edges that don't meet.
Each body's edges are placed in the design's frame once per pick, and
only the body picked has its edge names worked out.

The kind is given as the record saves it ({linear: {a, b, direction?,
reading?}}, {length: …}, {angle: …}), read by the record's own types,
so a command and a file read the same words. A new dimension's line is
10 mm from what it measures (until a dimension style gives it), shows
2 decimals, and its text is centred on its line; the text's default
place at its centred point (Q58) comes with the layout on paper.

The inspect reply has the record, the status (ok, overridden,
ambiguous, suppressed, lost or unmeasurable, with why), the value
(model mm, or degrees for an angle), whether it is foreshortened, the
text, whether every name was found by exact history, and an ambiguous
dimension's candidates.

One rule, one place: the corner rule's point tolerance is
construct::point_tolerance, shared by the picks; a dimension by id is
Drawing::dimension, which the resolver uses too.

Not here yet: edit, the view's list of its dimensions, the layout on
paper and the last good value (the next slices); delete waits with
view delete for the drawing UI's choice of one delete command or one
for each kind.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing dimensions: change a dimension's settings (#4896, W19d)

drawing.dimension.edit {dimension, set} changes what a dimension
shows and where, as drawing.view.edit changes a view: the offset of
its line, its text's place, its decimals, the text shown instead of
its number (null shows the number again), and its kind's direction,
reading or other side. The reply names the fields that changed. The
same values again change nothing and add no undo step (the drawing is
put back only when it differs). What a dimension measures isn't a
setting: to measure something else, add a new one.

A setting its kind hasn't got is refused (an angle has no direction,
only an angle has an other side); every changed record passes the
check a file read runs, so an edit can't save what opening the file
would refuse. A dimension's place in the list is
Drawing::dimension_index, which Drawing::dimension now uses too, as a
view's is.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing views: inspect lists a view's dimensions (#4896, W19d)

drawing.view.inspect answers `dimensions`: the ids of the view's
dimensions, in id order, so a caller can find them and read each with
drawing.dimension.inspect.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing views: a copied view takes copies of its dimensions (#4896, W19d)

drawing.view.copy_to_sheet copies each copied view's dimensions with
it, each with an id of its own on the copy, in the same undo step:
they are part of what the view shows (the W19d plan's question 1, its
recommended answer). A dimension's text placed `at` a point is from its
view's centre, so it keeps its place on the copy. A moved view keeps
its own dimensions as they are: they name the view by id.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing dimensions: the last good value, in memory (#4896, W19d)

A dimension that can't be measured now (its edge filleted away, its
corner gone) gives `last_good`: the value it last read this session,
as `value` gives it (model mm, or degrees for an angle). Each value a
dimension reads is kept by drawing and dimension in the session, and a
scratch copy keeps the session's. It is never saved (the W19b plan's
question 3), so a design's drawings don't change with every model
edit, and after reopening a lost dimension shows no number.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing dimensions: hostile values anywhere in the commands' params (#4896, W19d)

A hostile value in each place of drawing.dimension.add, .edit and
.inspect's parameters, at every depth (the kind, its picks and paths, a
corner's edges, the edit's settings), with 1 000-item lists, the
largest index and 600-byte text besides the engine's shared hostile
values: no panic, and the drawing keeps its rules. The engine's own
hostile test sends only its list of key names, none of which these
commands read.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing dimensions: a new dimension's defaults, tested (#4896, W19d)

The offset (10 mm), the text's place (centred) and the decimals (2) a
dimension is added with when not told.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* A plane carried by a transform, in one place

`assembly::map_plane` is public and gives `None` for a transform that flattens the plane; its two
copies (the occurrence mapping, which keeps the plane as it was, and the face anchor's, which
refuses) now call it and keep their own fallback. W20a's radial dimensions use it to carry a
view's plane into a body's frame.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing dimensions: a circle's or an arc's radius and diameter (#4896, W20a)

A radial dimension saves its edge by name and whether it shows the diameter. It reads the edge's
exact circle in the view's plane through the edge (`Body::planar_edges`, as the view draws it), so
a view that doesn't see the circle face on can't measure it; its text is R or Ø before the number.
`drawing.dimension.add` takes `{radial: {edge, diameter?}}`, a diameter by default for a whole
circle or half a turn or more (a hole's rim is two halves), and refuses a dimension of any kind its
view can't measure; `drawing.dimension.edit` switches `diameter`, keeping the id.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 22:56:06 -04:00
bherbruck b596bfc730 Bottom bar: keep active toggles readable when the selected fill is as dark as the accent (#9168) (#9171)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 22:42:27 -04:00
Colin Faulkingham d11d268597 Render: reject excessive pixel work during preflight (#5088) (#5728)
* claim: #5088

* fix: reject excessive render pixel work during preflight (#5088)
2026-10-30 01:35:12 +00:00
github-actions[bot] 4b0ba62c69 Regenerate generated files and fold pending files [skip ci] 2026-10-30 01:13:55 +00:00
taylorhayis 313d2bdb41 Sketch: snap where two recent centre and midpoint guides meet (#8694) (#8744)
* Sketch: snap where two recent centre and midpoint guides meet (#8694)

The alignment guide remembered one reference and did not move the cursor. Keep the previous centre or midpoint as well, and snap a drawing point to where their guides cross.

* Sketch: keep the recent-guide crossing snap off until asked (#8694)

The crossing snap was on whenever alignment guides were. Give it its own Sketch preference, off by default, so the guides stay visual until someone turns the snap on.

* Sketch recent snap: ar/he/vi strings and clippy borrow fixes

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: bherbruck <brennen.herbruck@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 00:40:05 +00:00
Colin Faulkingham 079f6e61e6 Sketch: show no geometry for an empty sketch (#9077) (#9104)
* claim: #9077

* Sketch: show no geometry for empty viewport sketches (#9077)
2026-10-30 00:33:47 +00:00
Rick Morgans 4a781b8cd8 MCP: --param-check checks calls to the running app (#9072) (#9073)
* claim: #9072

* MCP: --param-check checks calls to the running app (#9072)

`mcp --connect` (and `mcp` once it bridges to an app) took
`--param-check` and forwarded every call unchecked, while the app's own
session is always off. `Remote` now checks each `engine.execute` and
`engine.batch` against this server's command contracts before sending:
`strict` refuses a call, or a batch with such a step, without sending
anything, and `warn` adds `param_warnings` to the app's reply (each
step's result in a batch). A command with no contract here goes to the
app unchecked. `Auto` carries the headless session's level over when it
bridges to a late app. `batch_preflight::contracts` is the contract half
of the existing preflight, for a runner in another process.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 00:33:42 +00:00
semmelrinde 87206f20c8 Theme: the System theme leaves the window to follow the system appearance (#8983) (#9103)
theme::apply always sets egui's theme to light or dark, and egui's own window
sync then told the native window to be light or dark. A macOS window told so
keeps that appearance and no longer reports the system appearance changing,
so with Theme set to System the app stayed light after macOS turned dark. The
app now syncs the window itself: the system's appearance while the theme
follows it, the theme's own otherwise (for the title bar).

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 23:51:07 +00:00
Logan Night 5a24d4095a Sketch: an old edge-on projection keeps its line when it is re-resolved (#9025) (#9097)
* claim: #9025

Co-Authored-By: Claude Code <noreply@anthropic.com>

* Sketch: an old edge-on projection keeps its line when it is re-resolved (#9025)

A face seen edge-on was saved as two lines on the same two points, one each way, and is one line now. Re-resolving the link dropped both lines and built a new one under a new id, so an offset that names the first line as its source failed with "an offset source vanished or changed shape". Keep the first line and drop only the second.

Co-Authored-By: Claude Code <noreply@anthropic.com>

---------

Co-authored-by: Claude Code <noreply@anthropic.com>
2026-10-29 23:50:29 +00:00
Mateusz Sych ebafe07487 Drawing W06a: exact orthographic hidden lines for the analytic subset (#2455) (#2457)
* Drawing W06a: exact orthographic hidden lines for the analytic subset (#2455)

crates/geom/src/hlr (L0): prepare once per body, then hidden_lines for a
scene of placed bodies. Edges and face silhouettes are projected from their
exact curves, split where projections cross, and each piece is classified by
rays toward the viewer against the trimmed faces: visible, hidden or
explicitly uncertain, never guessed. Planes, cylinders, cones, spheres and
tori are supported whether stored as analytic records, revolutions or spline
patches; freeform faces are reported and make what they could hide
uncertain. Screen geometry is Seg2 with the W01a accuracy vocabulary: exact
lines and conic arcs where the projection is exact, bounded chords
otherwise. docs/drawing-hlr.md holds the contract and its limits.

* geom/hlr: handle the brep records main gained in #3093

Main's exact model storage (#3093) added Curve::SurfaceIntersection,
Surface::PlaneThrough and Surface::PlacedRevolution, and the HLR matches on
the records no longer compiled. A plane through three points is a plane: it
is trimmed and intersected as one, and a box stored that way draws the same
bits as one with axis-stored planes. The procedural intersection curve and
the placed revolution (whose affine placement may scale it unevenly) are
refused by prepare as not supported yet, until the kernel adapter handles
them. The records' positions move with the body's centre like the others.

* geom/hlr: pad plane faces' boxes, so a plane record off by rounding still hides

Plane faces took the box of their boundary chords unpadded, flat along the
normal. When the plane record and its edges disagree by rounding (a unit cube's
top plane one ulp above its edges, a 100 mm cube's 1e-11), the ray toward the
viewer reached the plane just outside that box, the slab test culled the hit,
and the back edges came out Visible with no doubt. Every face's box is now
padded by 1e-6 of its size, as curved faces' boxes already were. Reported by
DevonHope on #2457.

* geom/hlr: limits from review: trim samples, scene extent, crossing pairs, surface groups

From DevonHope's review of #2457:
- Options::trim_samples must be 1 to MAX_TRIM_SAMPLES (4096).
- Placed bodies must stay within MAX_COORDINATE (1e12 mm, as section and brep
  bound stored numbers). Placements 1e200 apart made the scene's size infinite
  and every tolerance taken from it with it, so everything came out Visible.
- The crossing search counts its candidate pairs before it starts and meets
  each pair only in the first grid cell the two segments share, instead of
  keeping a set of the pairs met, which could outgrow wasm's 4 GB before the
  500 million pair budget tripped. The same pairs in the same order.
- prepare groups faces on one quadric or torus by comparing each face with
  the faces of its kind whose size agrees to the tolerance (sorted), not with
  every face; at most 50 million comparisons. prepare_cancellable polls a
  cancel callback between edges, faces and comparisons.

* geom/hlr: boundary chords on a grid, and no fine pass over coincident curved chords

The cost items of DevonHope's review of #2457:
- Every ray hit asked how far it lies from its face's boundary by scanning all
  of the face's chords (4096 per circle; a plate's face with 256 holes has
  about a million). The chords are now bucketed on a uniform grid over the
  boundary's box, cells at least as long as the longest chord, and the test
  looks only at the cells around the point. It finds exactly the chords the
  scan finds.
- Chords of two curved curves that lie on each other end to end (aligned holes
  seen along their axes) were cut into 16 by 16 pieces and intersected, to
  find crossings that are only noise within the curves' tolerance. They are
  now skipped; visibility changes where a coincident run starts or ends, and
  chords that only partly overlap still find those.
- Fixtures: a plate with holes, coaxial cylinders seen along their axis, and
  300 placements.

* geom/hlr: pad boxes by the body's coordinates too; coincident chords only to rounding

Review of the previous commits found two holes:
- The padding grew with the face's size, but rounding grows with where the body
  was modelled: a 0.001 mm cube 1e7 mm out, its top plane one step (1.9e-9 mm)
  above its edges, still had its hit culled. The pad now adds 1e-12 of the
  body's offset.
- Two chords were taken for coincident when their ends lay within each other's
  sag, which in a coarse scene can hide real crossings: an arc can bulge across
  a line 1 mm off its chord twice. Only chords that coincide to rounding are
  skipped now; identical projections, the costly case, still are.

* geom/hlr: coincident curves meeting at shared sample points do not cross

Timing the review's scenes showed that skipping coincident chords was not
enough: chords of two coincident curves also touch end to end at every sample
point they share, and each touch was a crossing to refine and split at. 64
coaxial cylinders seen along their axis gave 8.3 million crossings (19 s), 64
cylinders one behind another along the line of sight 4.2 million (214 s;
before these commits the crossing budget refused it). A touch at a shared
sample point is now dropped when the two curves also coincide, to rounding, on
both sides of it. Where a coincident run starts or ends one side differs, and
the touch is kept.

* geom/hlr: the own-face margin allows for rounding where a body was modelled

The far 0.001 mm cube of the previous commit showed a second effect of records
rounded at large coordinates: its top plane, one ulp (1.9e-9 mm) above its
edges, hid the top edges themselves, because a ray leaving an edge met its own
face 3.2e-9 mm along, past the own-face margin of 1e-6 of the face (1.4e-9).
The margin now also covers 1e-14 of the body's offset (about 45 ulps of its
coordinates), which only matters for parts far smaller than their distance
from the origin.

* geom/hlr: no parity test for a hit on the boundary, where it is uncertain anyway

* docs/drawing-hlr: the fixtures of the review's second round

---------

Co-authored-by: MateuszSychXpl <151755914+MateuszSychXpl@users.noreply.github.com>
2026-10-27 00:20:17 -04:00
CamWight 3575c99750 Drawing W18 S2: title blocks as data (#3875) (#3877)
* Title blocks: what a cell shows and where its text goes (#3875)

geom::cell holds a title-block cell's content: parts of text and fields
(component, drawing, sheet, revision or prompt, by key, with an optional
unit and decimals kept as written for the resolver to check), at most 64
parts and 4096 bytes of text, with no control character but a line break.
Beside it are a resolved value (live, overridden and drifted, or missing,
with "-" for each part that couldn't be read and why), an override with
the value it replaced, and the projection a drawing's views use (first or
third angle), which the title block's symbol will read.

A fit warns and never cuts: a count of characters, not bytes, with its own
count for text in Chinese, Japanese, Korean or Yi characters.

The cell text rule places a label and a value: the label's baseline 1 mm
plus its cap height below the cell's top, the value box under it inset by
1 mm, one line centred in the box, and wrapped or several lines down from
its top at the font's pitch, with a warning when the last falls below the
box. Wrapping by width, width warnings and glyphs a font lacks need the
text measured, so they wait for the paper scene's text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Title blocks: definitions and their place on a sheet (#3875)

geom::title_block holds a title block's definition: its size (1 to 1000
mm a side), its outline and cell line widths, and up to 64 cells. Each cell
has a snake-case name of its own, a rectangle measured from the block's
lower-right corner, an optional one-line label with its cap height, and a
value: text from cell content, with its cap height, alignment and fit, or
the projection symbol, which reads the drawing's projection and is never
fixed in the block.

validate() checks a definition on its own, as when one is read: cells
inside the block and not overlapping (touching is fine), label and value
cap heights that fit, and the content's own limits. layout() puts the
block on the drawing border's lower-right corner of a sheet, refusing one
that doesn't fit, and gives each cell's rectangle, its label's place and
its value box by the cell text rule. On A3 landscape a 180 x 54 mm block
runs from (230, 10) to (410, 64); it fits A5 landscape and every larger
sheet, but not A5 upright.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Cell text: a value box lies within the paper's coordinates (#3875)

place_lines took any finite, ordered value box, but centring one far out (min x 1e308, max x
1.1e308) overflows: the anchor came back infinite, with no warning. 0xlillith found it in review
of #3877.

The paper scene already bounds every coordinate it holds by MAX_COORDINATE_MM (twenty times
the longest sheet side). That limit is now public, and place_lines keeps its box inside it, so
its anchor is always finite: one rule for what a paper coordinate may be.

Tests: the hostile-box test refuses both overflow cases from the review and a box just past the
limit on each side, and places lines in a box the size of the whole paper limit. The fuzz test's
numbers now include values past the limit (1.1e5, ±1e308).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Title blocks: padding from the lines' inner edges, one label rule, nothing unread (#3875)

A cell's text is padded from the inner edge of its lines: each side of a cell moves in by half
the line drawn on it (the outline's on the block's edges, a cell line's inside), so a wide
outline never covers the text. Before, the padding ran from the line's centre.

The label's one-line rule lives with the cell text rules (`cell::check_label`), where parts
lists will find it. The cell types nothing read yet (`Override`, `Resolved`, `State`,
`Problem`, `Reason` and `MISSING`) wait for the resolver that will read them.

The tests check the exact thresholds inside the lines (a label that leaves no room, a value
that just fits), pick each of the lines, alignment and wrapping on their own so every
combination comes up, and lay fuzzed blocks out on every standard sheet, either way, with and
without the filing margin.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Title blocks: the drawing border's line, descenders, room where the block sits (#3875)

From DevonHope's review of #3877:
- Each cell's lines are clamped to the inner edge of the drawing border's line. That line runs
  along the block's right and bottom edges, and along any other edge it reaches, as when the
  block fills the border. Aabb2::intersection, the 2D twin of Aabb3's, does the clamping.
- layout checks each cell's room again where the block sits (place_cells, which validate runs
  at the origin), so rounding at the real corner can't turn a cell inside out.
- The cell text rule counts descenders, at 3/10 of the cap height (ISO 3098's lettering B).
  They may reach into the padding under a value box, never past it to a line. place_lines
  warns Height when they would, and validate asks it whether one line fits.
- The module doc no longer links to a private function.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 00:18:05 -04:00
CamWight de7bf4fc4d Drawing W17a: view definitions as data (#4816) (#4817)
* claim: #4816

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing views as data: named views, scales and the map onto paper (#4816, W17a P1)

What a drawing view is, before anything draws it (geom::drawing_view):
- NamedView: the six principal views and the isometric views from the four upper corners, each
  an exact basis (a Plane whose normal points back at the viewer), never taken from a camera,
  whose pitch clamp would tilt a top view, with no -0 to write out; `iso` reads as the
  front-right one.
- basis_looking: any other view from its direction, an up and an origin (paper x = direction x up,
  paper y = x x direction), refusing a zero direction, an up along it, or an origin that isn't
  finite or within 1e12 mm. W07's
  {direction, up, origin} view reads through it.
- Scale: paper : model as two positive numbers, read and written as "1:2", from 1:100000 to
  1000:1; Scale::fit picks the largest ISO 5455 preset (50:1 to 1:10000) at which a view fits a
  space (W07's "fits the page" default), compared as size x paper <= room x model so an exact
  fit at a reduction isn't lost to rounding.
- ViewFrame: a view's basis, scale and place on paper, the point of its plane at `centre`
  landing at `position_mm`. Its paper map moves the view's curves and their accuracy onto
  paper (paper error = scale x model error); `boundary` maps a box of its plane onto paper from
  its four corners.

In geom, where Seg2 lives:
- Similarity2 and Seg2::similar (new): scale, turn and shift a segment exactly, an arc staying an
  arc. Similarity2::new refuses a scale that isn't above 0 and works the turn out once, not per
  point;
- Seg2::map_controls: a segment's control points mapped by any function. It was doc's
  sheet::map_controls; its four callers in doc use the method now, unchanged.

CurveAccuracy::scaled gives a curve's accuracy at another scale.

Tests: each named view's basis and viewer side, and the same bases from a direction and up; a 50 mm cube in every principal view at 1:1 and
1:2, and in isometric (edges 50 x sqrt(2/3), outline 50 x sqrt(2)); the view's centre on its
position (W07's 100 x 20 front view on A3 at 2:1); scales read, written and refused; the fitted
scale, an exact fit at 1:5 and ISO's smallest; no -0 in any named view's axes; an origin refused by
its own message; hostile bases, centres and positions; every segment kind moved by a similarity,
and the similarities refused; scaled accuracy.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing views: the bottom view pinned, square near parallel, bounded scales and boxes (#4816)

From DevonHope's review of #4817:
- The tests pin all six principal views exactly. The direction-and-up test uses literal ups,
  so a bottom view turned half round now fails it.
- basis_looking squares x to the direction before normalising. Near the 1e-9 threshold the
  normal was up to 8.8e-9 rad off; now it is about 1e-16.
- Scale::fit fits nothing for a size or room that is negative or not finite. A size of 0 still
  sets no limit that way.
- Each side of a scale is 1e-6 to 1e6, so a scale writes at most 49 characters.
- ViewFrame::boundary returns a Result. It refuses a box that is inside out or not finite on
  paper, instead of dropping a corner.
- paper_map, boundary and seg_to_paper say which coordinates they take.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 00:18:01 -04:00
CamWight f18616e19c Paper scene: SVG of a sheet, its lines, arcs, cubics and fills (#4890 A3a) (#7032)
The first export of a paper scene, as SVG first (jyviko and 0xlillith on #4890), from the research
in the plan's §16. A3b adds ellipses, hyperbolas and Béziers above degree 3, which this refuses as
"not supported yet".

- `geom::paper::Prepared`: writers read a scene through `Scene::prepare`, which checks it first, so
  none reads one unchecked. Clipping goes there too, once (A8).
- `geom::paper::arc_pieces`: an arc's ends in pieces of at most a quarter turn, the last its own end.
  A half turn drawn from its ends is ill-conditioned: rounded to the nanometre (six decimals of a millimetre) its
  centre moves up to 1e-2 mm, where a quarter turn's stays under 1e-6 mm.
- `io::paper::paper_svg`: one user unit a millimetre, the size in mm on the root; y flipped by
  writing the height less y, so the file's numbers are page coordinates and an anticlockwise arc
  has sweep flag 0; lines `L`, arcs `A` (never large-arc), cubics `C`, parabolas `Q`; fills
  black and even-odd; one path per item; groups as `data-object` and `data-kind` (object ids can't
  be XML ids). No background, so cutters see only the marks.
- Numbers are whole nanometres (six decimals of a millimetre): no exponent, no "-0", the same bytes every time. They are the
  writer's own state too, so a joint is written once and a closed path ends exactly on its first
  point. Numbers are written straight onto the document, with no text made per number. A width
  under half a nanometre is written as one, and a piece too short for the grid is merged into the
  next, both counted in the report; a path's last piece has no next, so it is kept however short
  (unless it has no length). Output over 64 MiB is refused.

Tests: the A3 drawing border's whole document; quarter, 270°, clockwise and whole-turn arcs, and a
circle of two halves giving the same four quarters; the quarter-turn boundary both sides; cubics and
parabolas, and the conics refused; the number format; a closed path whose start and end round
apart; a sliver merged; an open path's short last line and arc kept, and one of no length dropped; read back through our own SVG reader (lines exactly, the arc as an arc);
the scene's JSON mutated into the writer (never a panic).

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 16:54:42 -04:00
CamWight 657c733166 Drawing files: a drawing saved as a container or as plain JSON, never read as a design (#3890) (#7098)
* File format families: drawings share the design format's versioning (#3890)

The format code works for a family of files: its own tag, its own numbers and
its own folder of change files, with one reading of a file's format, one
refusal of a file a newer build saved and one upgrade for every family. Designs
(solidcraft/N) are one family and keep everything they had: FORMAT and FORMATS
are as they were, and pending_names, format_string, version_of and read mean
what they did. Drawings (solidcraft-drawing/N) are the other, with format 1 as
their first record and each later change one file in
crates/doc/src/drawing/format/pending/, as design changes are. Nothing saved
changes.

A design tag never reads as a drawing's or the other way round, and a file that
names no format is a design from before format strings, never a drawing. Every
refusal names its family; a design's read word for word as before. A design
listing a pending change this build doesn't have is now refused as a newer
build's before its content is checked, as a newer number already was, so a
newer build's fields never read as damage. The list reader is
take_names(v, key, noun), the shape #4811 uses for its own list.

For the maintainer, the release step changes: scripts/fold-format-pending.sh
now folds every family that crates/doc/build.rs lists (FAMILIES), each into
its own next number: designs into crates/doc/src/format/v<N>/ as before,
drawings into crates/doc/src/drawing/format/v<N>/ from 2. With nothing pending
in a family it says so and moves nothing. Its test folds a drawing change into
v2 beside the design changes. docs/releasing.md, CONTRIBUTING.md and AGENTS.md say so.

build.rs lists each family's changes from its own folder, each folder's
versions contiguous from its own base.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing record: format 1 of the drawing family (#3890)

A drawing is now a record of its own (crates/doc/src/drawing.rs): its name,
the designs it draws (sources: an id and the design file's path, relative to
the drawing's folder as a linked design's is), its properties under the design
metadata's rules, its units (each design's own, or one length unit of the
expression unit table), its content language (a BCP 47 tag) and its sheets.
A sheet holds its paper, a copy of its drawing border's profile, the
resolution its pictures are rendered at (300 dpi unless it says, 25 to 2400),
the component it documents and whether it is left out of the sheet count or
of printing. This is format 1 of the drawing family; each later kind of
record adds one file in crates/doc/src/drawing/format/pending/.

The rules: one id counter for every object, raised above the largest id when
a file is read and never rewound; every reference is an id that must resolve,
or the file is damaged and refused, never patched; 1 to 1,000 sheets, at most
64 sources, names of 1 to 256 bytes, paths of 1 to 4,096 bytes without NUL.
The same drawing always saves as the same bytes.

Drawing::from_json reads at most 16 MiB of text, then runs the family's format
check, the number check, the upgrade, the typed record (unknown fields refused
everywhere) and Drawing::validate. The number check is now one function every
family calls, Family::check_numbers, told which field holds other tools' data;
a design's refusals read as before.

Nothing saves or opens a drawing yet: the container is the next step.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing ids: random and collision-free from format 1 (#3890)

A drawing's objects now take random ids, the form jyviko chose on #3890 from
#1017: no counter, so objects added on two branches never share an id and
never edit one line. The allocator is one module for drawings now and designs
later (#626 Phase 3), crates/doc/src/ids.rs: an IdSource gives nonzero u64s by
splitmix64 from a seed, each checked against the ids in use and drawn again
when it is one, or when it is 0. A run never draws a number twice, so at most
one draw per id in use comes before a free one, and a seeded run over a file
the same seed made still gets a new id. IdSource::seeded gives the same ids
for tests and replays; IdSource::from_entropy seeds a session from the
standard library's hash keys, the time and a count, with no new dependency.

In a file an id is 13 characters of Crockford base32, lowercase
(0000000000001 to fzzzzzzzzzzzz): ids::encode writes it and ids::decode reads
only that spelling, case-sensitive, so an id has one form to search for.
Anything else, 0 included, makes the drawing damaged. The drawing loses
next_id (a file that holds one is refused), and Drawing::new and allocate_id
take the IdSource. Messages name ids as the file writes them. The component a
sheet documents stays its design's own number until designs move over.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing record: a drawing too large to reopen isn't saved (#3890)

from_json reads at most MAX_DRAWING_BYTES (16 MiB), but to_json had no limit. Other tools'
properties are kept as they came, and indenting them can grow a drawing read in at about 4 MB
past 16 MiB (two million zeros in one array), so the next read refused what the save had just
written. 0xlillith found it in review of #3891.

to_json now returns a Result and refuses JSON longer than a read takes ("drawing too large to
save (at most 16 MiB)"), so every drawing saved opens again. Nothing writes drawing files yet, so
the error reaches the future file writer before it publishes anything.

Test: that case is refused, and a smaller compact drawing saves and reopens unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing files: a drawing saved as a container or as plain JSON, never read as a design (#3890)

K3 of the drawing storage plan (W11.2): the file a drawing is saved in. Nothing writes one from a
command yet; opening and saving come with K5.

- A drawing container is a design container holding `drawing.json` (Deflate, as `document.json`)
  in place of `document.json`, and `container.json` says so:
  {"content": "drawing", "format": "solidcraft-container/1"}. A design's `container.json` is as it
  was, with no `content`. The plain JSON form is the drawing's own text. Both give the same bytes
  every save, so a drawing can live in version control as text.
- `io::file_kind` tells a design from a drawing by `container.json` or by the JSON's format. The
  design reader refuses a drawing ("this file is a SolidCraft drawing, not a design: open it as a
  drawing") and the drawing reader a design; plain JSON only asks when it isn't a design, so
  reading a design costs nothing more. A container's content this build doesn't know, or a drawing
  container that also holds a design's `document.json`, is refused.
- `read_drawing` (bytes, either form), `read_drawing_file` (one seekable handle, the design
  reader's checks) and `write_drawing_container`; `DRAWING_EXT` (`scdwg`) and
  `is_drawing_path` beside the design's.
- The container writer's set-up and finish, the file opening and the container sniffing move into
  one function each, which designs and drawings both use. The container's own checks (budgets,
  entries, the ZIP directory) are the design container's, word for word.

Tests: a drawing round-trips through both forms byte for byte, and the container holds exactly
`container.json` and `drawing.json`; `file_kind` on both forms of both kinds; each reader refuses
the other's file; unknown content, a stray `document.json`, a missing drawing, an unknown
container version and a damaged drawing refused; both forms from disk, and a directory refused;
mutation fuzz of both forms (an error or a drawing, never a panic).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 16:18:29 -04:00
CamWight 4c4f25115b Bill of materials types: phantom, reference, purchased and inseparable (#3874) (#5107)
* Bill of materials types: phantom, reference, purchased and inseparable (#3874)

A component's bill of materials type is a part property (`bom_type` in its metadata, set with
component.metadata.set and read by component.metadata, as part_number is), so older releases
keep it and no format change is needed. It isn't a design property: the Design Properties
dialog doesn't list it and document.metadata.set refuses it. A word this build doesn't know
reads as normal and is kept.

assembly.bom counts by type: a phantom has no row and what it holds counts where it is placed,
in the same rows as the same parts there; a reference counts nowhere, and nothing inside it
does; purchased and inseparable components are one row, and in parts only an inseparable
component's purchased parts are listed too. Rows of one part number but different types are
different rows. Rows and children carry bom_type. With no types set the rows are as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Glossary: bill of materials and bill of materials type (#3874)

The bill of materials types are a new idea, so the glossary gets their
term, with the five types, and "normal" gets its fourth meaning in the
table of words with more than one meaning.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Bill of materials types: a plain line for each (#3874)

The guide's table and the glossary entry say what each type is for in
plain words: something you make, something just to group, something to
use as a reference, something you buy, something made as one piece.
The names stay the five standard ones.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Bill of materials: kits fold together only when their contents' types match (#3874)

With group_children, two kits with one part number share a row when what they hold reads the
same. That reading (kit_key) compared each child by part number and count, but not by its bill
of materials type, though rows themselves are told apart by type. So a kit holding a made bolt
and a kit holding a bought one, both KIT, folded into one KIT x2 row listing the first kit's
bolt twice: the other type was lost, and which one depended on creation order. 0xlillith found
it in review of #5107.

kit_key now includes each child's type. Equal part number, type and contents still fold.

Test: two KIT kits each holding a BOLT fold into one row of two; once one bolt is purchased they
are two rows, each listing its own bolt. Planted fault (the type left out of the key): caught.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 11:05:56 -04:00
CamWight 672ef13eb8 Drawing sheets: no centring or trimming mark longer than the largest sheet's side (#3875) (#6410)
A border profile capped every length at 5000 mm (the largest sheet's side) but two: a
centring mark's reach inside the drawing border and a trimming mark's length. A file could
give either a huge whole number, such as 18446744073709551615. The read's number check passes
whole numbers, so the profile took it as 1.8e19 mm, and saving wrote it as a decimal the next
read refused: a drawing that saved but didn't open again. K2's fuzz test of drawing files
(#3890) found it.

Both now take the cap the margins have, `MAX_SIDE_MM`, in `validate`, so the file is refused
when it's read. Layout's own checks against the sheet are unchanged, so a 5000 mm mark still
validates and is refused only on a sheet too small for it.

Tests: the hostile-profile test refuses 5000.000001 mm and 1.8e19 mm for each mark, and takes
5000 mm on its own; 4 planted faults (each cap removed or made one short) are all caught.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 19:59:28 -04:00
CamWight 4c63a88fc3 Drawing sheets: centring marks across the whole margin (#3875) (#5554)
The built-in sheet's centring marks now run from the trimmed sheet's edge to the drawing border.
From the grid reference border, as before, a mark was the same length as a grid field mark, and on
A3 it sat on one (the sheet's centre falls on a field edge), so it no longer read as a mark once the
grid reference border's outline is left out (Cameron, after the prototype on #3875).

- DrawingBorderProfile.centring_mark_start: sheet_edge (the built-in's, and when not given) or
  grid_border (ISO 5457's figure 5); ISO's full border in the tests asks for grid_border.
- A mark still needs a length: one that stops on the drawing border needs room outside it on the
  side it starts from, every margin for sheet_edge, the grid reference border for grid_border.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 11:48:17 -04:00
CamWight 5e23f58f62 Paper scene: plain records of what is drawn on a sheet (#4890 A1) (#5513)
geom::paper holds what a sheet shows as plain data: groups of strokes and fills, each group tagged
with the object that drew it (an opaque id) and its kind, with one validation pass over a bounded
record count. Seg2's checks and the coordinate rule move into profile.rs so section and paper share
them, and drawing_sheet takes its side and line limits from paper, so each limit is written once.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 10:23:18 -04:00
Benny1496 01a542d6e8 Drawing W23a workshop plate oracle fixtures (#4950) (#4962)
* test(oracle): reviewer-aligned parameterized workshop plate fixtures (#4950)

Independent analytic W23 expected values and seven verified models,
including four R10 corners and the 2 mm tangent top chamfer.
Document accepted Drawing states and commit regenerated docs/oracle.md
from successful workflow run #29 (90/90 pass).

* fix(oracle): correct W23 chamfer centroid and clarify drawing session ownership
2026-10-23 07:35:28 -04:00
CamWight f0cc73eb83 Drawing sheets: sizes, the ISO 5457 border and its marks (#3875) (#5108)
* Drawing sheets: sizes and the ISO 5457 border (#3875)

A sheet is a paper size and an orientation: ISO A0 to A5, Letter, Legal,
ANSI A to F, architectural A to E1, or a custom size (finite, above 0 and
at most 5,000 mm a side), landscape by default and either way for every
size.

A border profile is the rule for its border, and layout() works it out
for a sheet: the frame inside the margins, and the reference fields with
their labels. The ISO profile has a 20 mm filing margin on the left and
10 mm elsewhere, a 0.7 mm frame, fields of 50 mm out from the centre
lines with the corner fields taking what's left, rows lettered from the
top without I and O (AA, AB and on past Z), columns numbered from the
left, and an A4 sheet labelled on its top and right only. A profile can
divide the frame equally instead, or have no grid.

The records sit in geom, next to the section records, so saving,
rendering and export can all use them. Nothing is saved or drawn yet:
there is no command and no format change. Margins that leave no drawing
space, values that aren't finite, fields outside 1 to 1000 mm, more than
200 equal fields and unknown JSON fields are refused.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing sheets: ISO 5457's centring and trimming marks (#3875)

A drawing border profile now also holds the grid reference border and the
centring and trimming marks, either of which can be left out. The ISO
profile follows ISO 5457:1999 (read in its identical adoption,
IS 10711:2001):
- the grid reference border 5 mm outside the drawing border on every
  side, with the field labels between the two;
- four centring marks on the sheet's centre lines, from the grid
  reference border to 10 mm inside the drawing border;
- at each corner a trimming mark of two overlapping 10 x 5 mm
  rectangles, in the margin outside the grid reference border.

The labelled sides are now a rule worked out for each sheet: ISO 5457's
(the top and right of A4, all four sides of the others) or fixed sides.
So one profile labels every size correctly. validate() checks what
doesn't depend on the sheet, for when a profile is read; layout() calls
it, then checks the rest against the sheet.

Refused:
- a grid reference border that isn't finite, is negative or is wider
  than a margin;
- a centring mark that isn't above 0, would reach past the sheet's
  centre lines, or is on a drawing border those lines miss;
- a trimming mark that isn't above 0, is wider than it is long, is
  wider than the margin left outside the grid reference border, or is
  longer than half the sheet's shorter side.

The grid rule's JSON is now externally tagged ("none",
{"from_centre": {"field_mm": 50}}), as the sheet size is, so an unknown
field is refused in every form; the internally tagged "none" ignored
one. Nothing is saved yet, so the shape change costs nothing.

The names follow the glossary, and ISO 5457's "drawing sheets": the
module is drawing_sheet (was sheet, which means sheet metal elsewhere
here), DrawingBorderProfile and SheetLayout (were BorderProfile and
BorderLayout), sheet_border and drawing_border (were paper and frame),
and Sheet::size_mm (was paper_mm). The first part of S1 is still a draft,
so the renames are made here rather than in a commit of their own.

The extra centring marks ISO 5457 asks for on sheets larger than A0
aren't here yet. Still nothing is saved or drawn.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drawing sheets: a lighter built-in border, the filing margin a choice (#3875)

Cameron's decisions after seeing the sheet in the app, 2026-10-23:
- No trimming marks in the built-in profile: the filled corner blocks
  take a lot of ink. trimming_mark_mm stays, so a profile can still ask
  for them.
- Centring marks stop at the drawing border: from the grid reference
  border to the drawing border, never into the drawing area (on A4 they
  crossed the tables). centring_mark_mm keeps its meaning, how far a
  mark reaches inside the drawing border, and now takes 0, the built-in
  value, as grid_border_mm already takes 0 for "on the drawing border".
  A mark of no length (a reach of 0 with no grid reference border) is
  refused.
- Margins of 10 mm all round. ISO 5457's 20 mm filing margin on the
  left, for drawings that get bound, is a named choice: filing_margin,
  off when not given. On, it stands in for margins.left_mm, which is
  kept, and still checked, for when it's off again. The 20 mm is
  FILING_MARGIN_MM, and validate() and layout() both take the margins
  from one helper, laid_out_margins().

A3 landscape is now 400 x 277 at (10, 10), with eight 50 mm columns.
With the filing margin it is 390 x 277 at (20, 10) again, the same as a
20 mm left margin set by hand. A profile with all three choices on
(ISO 5457's full border) lays out exactly as the built-in profile did
before, and the tests keep the old hand values for it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 03:01:08 -04:00
401 changed files with 49541 additions and 2703 deletions
+18
View File
@@ -610,6 +610,24 @@ Original SolidCraft drawings, Open for owner review; no runtime assignments.
| assets/icons/ui/design/svg/flat/status_pin.svg | SolidCraft contributors | Original analytic pin icon for persistent viewport results | MIT OR Apache-2.0 |
| assets/locales/pending/render-wear.json | SolidCraft contributors | Original UI labels and translations | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/equation_curve.svg | SolidCraft contributors | two-tone modelling icon master (64 grid), original SolidCraft artwork | MIT OR Apache-2.0 |
| assets/locales/pending/sketch-recent-snap.json | SolidCraft contributors | Original preference messages for the recent centre and midpoint snap | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/construction_line.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/construction_line_horizontal.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/construction_line_vertical.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/construction_line_angle.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/construction_line_parallel.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/construction_line_perpendicular.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/construction_line_tangent_external.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/construction_line_tangent_at.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/construction_line_tangent_two.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/construction_line_bisector.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| docs/book/src/generated/equation-circle.png | SolidCraft contributors | rendered by `cargo xtask book` (`solidcraft-cli snapshot docs/book/scripts/equation-circle.json`; gitignored) | MIT OR Apache-2.0 |
| docs/book/src/generated/equation-flower.png | SolidCraft contributors | rendered by `cargo xtask book` (`solidcraft-cli snapshot docs/book/scripts/equation-flower.json`; gitignored) | MIT OR Apache-2.0 |
| docs/book/src/generated/equation-involute.png | SolidCraft contributors | rendered by `cargo xtask book` (`solidcraft-cli snapshot docs/book/scripts/equation-involute.json`; gitignored) | MIT OR Apache-2.0 |
| docs/book/src/generated/equation-line.png | SolidCraft contributors | rendered by `cargo xtask book` (`solidcraft-cli snapshot docs/book/scripts/equation-line.json`; gitignored) | MIT OR Apache-2.0 |
| docs/book/src/generated/equation-parabola.png | SolidCraft contributors | rendered by `cargo xtask book` (`solidcraft-cli snapshot docs/book/scripts/equation-parabola.json`; gitignored) | MIT OR Apache-2.0 |
| docs/book/src/generated/equation-spiral.png | SolidCraft contributors | rendered by `cargo xtask book` (`solidcraft-cli snapshot docs/book/scripts/equation-spiral.json`; gitignored) | MIT OR Apache-2.0 |
| docs/book/src/generated/equation-wave.png | SolidCraft contributors | rendered by `cargo xtask book` (`solidcraft-cli snapshot docs/book/scripts/equation-wave.json`; gitignored) | MIT OR Apache-2.0 |
## Code adapted from sibling projects
Generated
+21 -17
View File
@@ -4210,7 +4210,7 @@ dependencies = [
[[package]]
name = "solidcraft"
version = "0.27.0"
version = "0.27.1"
dependencies = [
"block2 0.6.2",
"eframe",
@@ -4246,11 +4246,11 @@ dependencies = [
[[package]]
name = "solidcraft-3dx-client"
version = "0.27.0"
version = "0.27.1"
[[package]]
name = "solidcraft-cli"
version = "0.27.0"
version = "0.27.1"
dependencies = [
"image",
"log",
@@ -4262,7 +4262,7 @@ dependencies = [
[[package]]
name = "solidcraft-derive"
version = "0.27.0"
version = "0.27.1"
dependencies = [
"proc-macro2",
"quote",
@@ -4271,7 +4271,7 @@ dependencies = [
[[package]]
name = "solidcraft-doc"
version = "0.27.0"
version = "0.27.1"
dependencies = [
"log",
"serde",
@@ -4288,7 +4288,7 @@ dependencies = [
[[package]]
name = "solidcraft-engine"
version = "0.27.0"
version = "0.27.1"
dependencies = [
"image",
"log",
@@ -4309,7 +4309,7 @@ dependencies = [
[[package]]
name = "solidcraft-geom"
version = "0.27.0"
version = "0.27.1"
dependencies = [
"serde",
"serde_json",
@@ -4318,7 +4318,7 @@ dependencies = [
[[package]]
name = "solidcraft-gpu"
version = "0.27.0"
version = "0.27.1"
dependencies = [
"image",
"log",
@@ -4338,7 +4338,7 @@ dependencies = [
[[package]]
name = "solidcraft-io"
version = "0.27.0"
version = "0.27.1"
dependencies = [
"cadmpeg-core",
"cadmpeg-ir",
@@ -4348,6 +4348,7 @@ dependencies = [
"gethostname",
"gltf",
"log",
"png",
"quick-xml",
"rustix 1.1.5",
"serde",
@@ -4356,13 +4357,15 @@ dependencies = [
"solidcraft-doc",
"solidcraft-geom",
"solidcraft-kernel",
"solidcraft-sketch",
"thiserror 2.0.21",
"tiny-skia",
"zip",
]
[[package]]
name = "solidcraft-kernel"
version = "0.27.0"
version = "0.27.1"
dependencies = [
"log",
"proptest",
@@ -4382,7 +4385,7 @@ dependencies = [
[[package]]
name = "solidcraft-mcp"
version = "0.27.0"
version = "0.27.1"
dependencies = [
"serde_json",
"solidcraft-engine",
@@ -4391,7 +4394,7 @@ dependencies = [
[[package]]
name = "solidcraft-render"
version = "0.27.0"
version = "0.27.1"
dependencies = [
"image",
"moxcms",
@@ -4405,11 +4408,12 @@ dependencies = [
[[package]]
name = "solidcraft-sketch"
version = "0.27.0"
version = "0.27.1"
dependencies = [
"harfrust",
"serde",
"serde_json",
"sha2 0.10.9",
"solidcraft-geom",
"thiserror 2.0.21",
"ttf-parser",
@@ -4418,14 +4422,14 @@ dependencies = [
[[package]]
name = "solidcraft-space-mouse"
version = "0.27.0"
version = "0.27.1"
dependencies = [
"serde",
]
[[package]]
name = "solidcraft-ui-egui"
version = "0.27.0"
version = "0.27.1"
dependencies = [
"arboard",
"egui",
@@ -4455,7 +4459,7 @@ dependencies = [
[[package]]
name = "solidcraft-web"
version = "0.27.0"
version = "0.27.1"
dependencies = [
"eframe",
"egui",
@@ -5998,7 +6002,7 @@ checksum = "e450f9b2ed1dff33c94c12589a87338689467b9c4f5d8a5710bd09a847d2c8a7"
[[package]]
name = "xtask"
version = "0.27.0"
version = "0.27.1"
dependencies = [
"proc-macro2",
"serde",
+1 -1
View File
@@ -5,7 +5,7 @@ members = ["crates/*", "apps/*", "xtask"]
exclude = ["vendor"]
[workspace.package]
version = "0.27.0"
version = "0.27.1"
edition = "2024"
license = "MIT OR Apache-2.0"
rust-version = "1.95"
+6
View File
@@ -173,6 +173,12 @@ and the [foundation ledger](docs/drawing-foundations.md) track the bounded imple
packages. The first geometry increment defines validated section records in a plane-local
frame; the ledger separates that contract from section producers and the Drawing workspace.
Drawing UI scaffold: the native workspace now supplies the shared four-tab ribbon,
source Browser, compact dockable sheet strip and resizable Sheet Settings/options
panel. Planned tools remain unavailable; only existing source services execute.
Drawing files and paper rendering are still deferred. See the
[UI implementation roadmap](docs/drawing-workspace-ui.md).
Desktop view DXF export runs in the file-operation worker with five-stage progress and
cooperative cancellation. Curve tolerance (0.0001–1 mm, default 0.01 mm) is remembered alongside
the hidden-edge setting. Cancelled exports preserve the model and the previous destination;
+4
View File
@@ -63,6 +63,10 @@ fn replay(report: &Value) -> Result<(), String> {
Some(d) => super::load(d)?,
None => solidcraft_engine::Session::default(),
};
// The ids the session drew from there, so the commands give the same objects the same ids.
if let Some(seed) = script["ids"].as_u64() {
s.seed_ids(seed);
}
std::panic::set_hook(Box::new(|info| {
let loc = info.location().map_or_else(|| "(unknown)".to_string(), |l| format!("{}:{}", l.file(), l.line()));
let msg = info.payload_as_str().unwrap_or("(not a text message)").to_string();
+4 -6
View File
@@ -720,11 +720,8 @@ fn cmd_mcp(args: &[String]) -> Result<(), String> {
eprintln!("solidcraft mcp: the design's folder is left out because {why}; add it with --allow-path if you mean it");
}
}
// How a headless session treats calls that break a command's parameter contract.
// How calls that break a command's parameter contract are treated, headless or bridged.
let param_check = parse_param_check("mcp", args)?;
if param_check != solidcraft_engine::schema::ParamCheck::Off && flag(args, "--connect").is_some() {
eprintln!("solidcraft mcp: --param-check applies to headless sessions; calls to the app are not checked yet");
}
let backend: Box<dyn solidcraft_mcp::Backend> = match (flag(args, "--connect"), flag(args, "--in")) {
(Some(_), Some(_)) => return Err("mcp: use either --connect or --in, not both".into()),
(Some(addr), None) => {
@@ -732,7 +729,7 @@ fn cmd_mcp(args: &[String]) -> Result<(), String> {
return Err(format!("mcp: --connect wants HOST:PORT, such as 127.0.0.1:7878, not `{addr}`"));
};
// Serve without the app too: the tools connect once it runs, and say it isn't until then.
let mut remote = solidcraft_mcp::Remote::new(addr, flag(args, "--token"));
let mut remote = solidcraft_mcp::Remote::new(addr, flag(args, "--token")).with_param_check(param_check);
if let Err(e) = remote.try_connect() {
eprintln!(
"solidcraft mcp: no SolidCraft app at {addr} yet ({e}); start it with `solidcraft --control {port}` \
@@ -752,7 +749,8 @@ fn cmd_mcp(args: &[String]) -> Result<(), String> {
let auto = !args.iter().any(|a| a == "--headless");
if auto && let Some(port) = discover_app() {
eprintln!("solidcraft mcp: bridged to the running app at 127.0.0.1:{port} (--headless starts a session of its own)");
return serve_mcp(Box::new(solidcraft_mcp::Remote::new(&format!("127.0.0.1:{port}"), flag(args, "--token"))), scope);
let remote = solidcraft_mcp::Remote::new(&format!("127.0.0.1:{port}"), flag(args, "--token")).with_param_check(param_check);
return serve_mcp(Box::new(remote), scope);
}
let mut headless = solidcraft_mcp::Headless::default();
headless.session.param_check = param_check;
+3 -2
View File
@@ -458,12 +458,13 @@ fn snapshot_runs_its_script_on_the_in_design() {
}
}
/// An unknown command's error suggests the id that was meant.
/// An unknown command's error suggests the id that was meant first; other close ids (such as
/// `drawing.open`) may follow it.
#[test]
fn unknown_command_suggests_the_closest_id() {
let output = cli().args(["exec", "file.open"]).output().unwrap();
assert_eq!(output.status.code(), Some(1));
assert!(String::from_utf8_lossy(&output.stderr).contains("did you mean `doc.open`?"), "{}", String::from_utf8_lossy(&output.stderr));
assert!(String::from_utf8_lossy(&output.stderr).contains("did you mean `doc.open`"), "{}", String::from_utf8_lossy(&output.stderr));
}
/// #1833: `--timings` reports each command's time instead of the measurement, `--profile` adds
+6 -3
View File
@@ -681,11 +681,13 @@ mod web {
if let Some(res) = done {
let installed = match res {
Ok(bytes) => {
solidcraft_engine::sketch::fallback::provide_web_font(bytes.clone());
self.cjk_bytes = Some(bytes);
true
}
Err(err) => {
log::warn!("failed to fetch CJK font from {JAPANESE_FONT_PATH}: {err}");
solidcraft_engine::sketch::fallback::web_font_failed();
false
}
};
@@ -720,10 +722,11 @@ mod web {
self.font_language.clone_from(&self.app.preferences.language);
}
/// CJK text on screen with no CJK font yet (an English UI showing a Japanese name):
/// fetch the font, so the text does not stay tofu (#720).
/// CJK text on screen with no CJK font yet (an English UI showing a Japanese name), or a
/// drawing's text waiting for one: fetch the font, so the text does not stay tofu (#720).
fn watch_text_for_font(&mut self, ctx: &egui::Context) {
if self.font.watching_text() && solidcraft_ui_egui::fonts::painted_cjk(ctx) && self.font.text_needs_font() {
let wanted = solidcraft_ui_egui::fonts::painted_cjk(ctx) || solidcraft_engine::sketch::fallback::web_font_wanted();
if self.font.watching_text() && wanted && self.font.text_needs_font() {
self.fetch_font(ctx);
}
}
+22 -3
View File
@@ -475,6 +475,14 @@ fn send_events(design: &DesignWatch, lines: &Lines, stop: &AtomicBool, mut seen:
}
}
/// What this app's control channel does beyond the methods every version has, for a client to
/// find out before it relies on it (an older app answers `control.capabilities` with "unknown
/// method"). `param_check`: the levels `engine.execute`, `engine.batch` and `engine.script` take
/// as a request's own parameter check (#9184).
fn capabilities() -> Value {
json!({"param_check": solidcraft_engine::schema::ParamCheck::ALL.map(|l| l.name())})
}
/// Write `reply` on the connection: through its subscription once it has one.
fn answer(out: &mut TcpStream, events: Option<&Subscription>, reply: &Value) -> std::io::Result<()> {
match events {
@@ -535,15 +543,20 @@ fn serve_with(
let id = msg.get("id").cloned().unwrap_or(Value::Null);
let method = msg.get("method").and_then(Value::as_str).unwrap_or("").to_string();
let params = msg.get("params").cloned().unwrap_or(json!({}));
// A request that timed out may have finished since (#1618). `control.running` only
// looks, so it leaves that reply where it is.
let late = pending.as_ref().filter(|_| method != "control.running").and_then(|p| match p.reply.try_recv() {
// A request that timed out may have finished since (#1618). `control.running` and
// `control.capabilities` only look, so they leave that reply where it is.
let late = pending.as_ref().filter(|_| !matches!(method.as_str(), "control.running" | "control.capabilities")).and_then(|p| match p
.reply
.try_recv()
{
Ok(reply) => Some(reply),
Err(TryRecvError::Disconnected) => Some(json!({"ok": false, "error": "the app ended the request without a reply"})),
Err(TryRecvError::Empty) => None,
});
let mut r = if method == "control.running" {
json!({"ok": true, "result": running.result(connection)})
} else if method == "control.capabilities" {
json!({"ok": true, "result": capabilities()})
} else if method == "control.pending" {
match (pending.take(), late) {
(None, _) => json!({"ok": true, "result": {"pending": null}}),
@@ -750,6 +763,9 @@ mod tests {
let mut watcher = open();
let (r, rows) = running(&mut watcher, &|_| true);
assert!(r["ok"] == true && rows.is_empty(), "idle: {r}");
// What the app's control channel does beyond the methods every version has (#9184).
let r = watcher(json!({"id": 0, "method": "control.capabilities", "token": token}));
assert_eq!((&r["ok"], &r["result"]["param_check"]), (&json!(true), &json!(["off", "warn", "strict"])), "{r}");
let mut export = open();
let path = "/private/part.step";
@@ -781,6 +797,9 @@ mod tests {
let own: Vec<&Value> = r["result"]["running"].as_array().unwrap().iter().filter(|row| row["self"] == true).collect();
assert_eq!(own.len(), 1, "{r}");
assert_eq!(own[0]["command"], "file.export", "{r}");
// So may it ask what the app can do: answered at once, not refused as busy.
let r = export(json!({"id": 8, "method": "control.capabilities"}));
assert_eq!(r["result"]["param_check"], json!(["off", "warn", "strict"]), "{r}");
gate_tx.send(()).unwrap();
assert_eq!(queued.join().unwrap()["result"], "engine.batch");
+4
View File
@@ -1016,6 +1016,10 @@ fn main() -> eframe::Result {
app.session.doc_mut().name = "Sample Plate".into();
app.session.mark_saved();
app.session.undo.clear();
// Built straight into the session, so nothing asked for a fit: frame it at the
// home view as any opened design is (#9195). The fit waits for the first layout.
app.cam.set_view(solidcraft_engine::render::StandardView::Iso);
app.fit_view();
}
// Lock files next to open designs: a design open on another computer says so (#5467),
// the files given at launch included.
-1
View File
@@ -17,7 +17,6 @@ assets/
ui/design/tools/ # authoring bases, checks and included review app
ui/source/ # Rust viewport glyphs, markers and navigation
branding/web/source/og.png # shared social preview card
branding/logo/ # print/web logo files; guide in branding/README.md
styles/ui/palettes.rs # light/dark defaults
styles/web/loading.css # web loading/canvas styles
appearances/library.rs # built-in visual presets
-73
View File
@@ -1,73 +0,0 @@
# SolidCraft brand kit
Logo files for stickers, shirts, the web and social posts. Everything in `logo/` is drawn
from the app icon (`assets/icons/app/macos/source/SolidCraft.icon/Assets/03-solid-blue-cutout.svg`),
which is also the last frame of the loading animation (`assets/styles/web/loading-logo.svg`).
The SVGs are plain paths: no scripts, fonts, animation or external links, so any printer can use them.
## Files
| File | Use it for |
|---|---|
| `logo/solidcraft-mark.svg` | The mark in full colour. First choice for stickers, print and the web. |
| `logo/solidcraft-mark-mono-black.svg` | One-colour print on light material: screen-printed shirts, stamps, engraving, vinyl. |
| `logo/solidcraft-mark-mono-white.svg` | One-colour print on dark material, such as a white print on a dark shirt. |
| `logo/solidcraft-mark-512.png`, `-1024.png`, `-2048.png` | Transparent square PNGs for places that don't take SVG: avatars, social posts, slides, print shops that ask for a bitmap (send the 2048). |
| `logo/solidcraft-wordmark.svg` | The name on its own, outlined to paths. |
| `logo/solidcraft-lockup-horizontal.svg` | Mark and name side by side: headers, banners, shirt fronts, wide stickers. |
| `web/source/og.png` | The existing link preview card for the docs site. |
The gaps between the faces are part of the logo. In the colour and one-colour files they are
transparent, so the material shows through. For a die-cut sticker, cut around the outer shape
and let the backing colour (white is best) fill the gaps.
## Colours
The mark's five faces each use a two-stop gradient from the icon source:
| Face | From | To |
|---|---|---|
| Top | `#51adff` | `#2b83f1` |
| Left | `#258df5` | `#1461da` |
| Right | `#1b66cf` | `#124596` |
| Lower step (top) | `#459fff` | `#2379e7` |
| Upper step (inner side) | `#1d63c6` | `#15499e` |
Other colours, all already used in the project:
| Colour | Hex | Where it comes from |
|---|---|---|
| Wordmark blue | `#15499e` | loading logo `--word` |
| Interface accent | `#2678da` | light theme `accent` token (`assets/styles/ui/palettes.rs`) |
| Light background | `#e8ebf0` | web loading screen (`assets/styles/web/loading.css`) |
| Dark background | `#1f232b` | dark theme `file_background` token |
| Black / white | `#000000` / `#ffffff` | one-colour versions only |
If a printer can't do gradients, use the one-colour files, or fill every face with `#2678da`.
## Clear space and size
- Keep empty space around the mark of at least one fifth of its height on every side. Treat
the lockup the same way, measured from the mark.
- Smallest mark: 16 px tall on screen, 12 mm tall in print. Below that the gaps fill in.
- Smallest lockup: 120 px wide on screen, 40 mm wide in print.
## Don'ts
- Don't recolour it outside the colours above.
- Don't stretch, squash, rotate, skew or crop it. Scale it evenly.
- Don't add shadows, outlines, glows, bevels or other effects.
- Don't fill or close the gaps between the faces, or move the faces apart.
- Don't rearrange the lockup, retype the name in another font, or put the mark on a busy
background where it loses contrast.
## Name and logo
The SolidCraft code and these files are licensed MIT OR Apache-2.0 (see the [README](../../README.md#licence)),
so you may copy and change them. The name SolidCraft and this logo identify the SolidCraft
project. Use them to refer to the project, for example in an article, a talk, or a sticker for a
meetup. If you publish a fork or a modified build, give it its own name and logo so people
don't mistake it for SolidCraft.
The wordmark is set in IBM Plex Sans Bold (SIL Open Font License 1.1, the interface font in
`assets/fonts/ibm-plex-sans/`) and outlined, so you don't need the font to print it.
@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="116.406 53.364 2748.71 904.436" width="2749" height="904" role="img"><title>SolidCraft</title><defs><linearGradient id="sc1" x1="619.14" y1="179.734" x2="694.687" y2="396.761" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1d63c6"/><stop offset="1" stop-color="#15499e"/></linearGradient><linearGradient id="sc2" x1="619.14" y1="413.244" x2="790.839" y2="605.547" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#459fff"/><stop offset="1" stop-color="#2379e7"/></linearGradient><linearGradient id="sc3" x1="632.876" y1="399.508" x2="783.971" y2="968.175" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1b66cf"/><stop offset="1" stop-color="#124596"/></linearGradient><linearGradient id="sc4" x1="207.063" y1="303.357" x2="426.837" y2="968.175" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#258df5"/><stop offset="1" stop-color="#1461da"/></linearGradient><linearGradient id="sc5" x1="385.63" y1="53.364" x2="522.989" y2="510.769" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#51adff"/><stop offset="1" stop-color="#2b83f1"/></linearGradient></defs><g><path d="M547.883 282.66 L709.797 188.211 L709.797 375.985 Z" fill="url(#sc1)"/><path d="M727.797 593.626 L727.797 407.136 L889.571 500.381 Z" fill="url(#sc2)"/><path d="M530 521.17 L691.797 427.912 L691.797 655.928 L907.594 531.545 L907.594 740.159 L530 957.8 Z" fill="url(#sc3)"/><path d="M116.406 510.769 L116.406 303.529 L494 521.17 L494 957.8 L314.203 854.167 L314.203 624.777 Z" fill="url(#sc4)"/><path d="M134.374 272.334 L512 53.364 L691.828 157.015 L476.117 282.846 L673.752 396.761 L512 489.993 Z" fill="url(#sc5)"/></g><path fill="#15499e" transform="translate(1092.78 632.20) scale(0.36281)" d="M303 12Q212 12 147.5 -20Q83 -52 38 -101L138 -202Q173 -162 217.5 -142Q262 -122 313 -122Q369 -122 396 -145Q423 -168 423 -206Q423 -225 416.5 -240.5Q410 -256 392.5 -266.5Q375 -277 342 -281L273 -290Q200 -300 152.5 -326.5Q105 -353 82 -396.5Q59 -440 59 -498Q59 -561 90.5 -608.5Q122 -656 180.5 -683Q239 -710 321 -710Q400 -710 460 -684.5Q520 -659 563 -612L462 -510Q437 -539 401.5 -557.5Q366 -576 312 -576Q261 -576 236 -558Q211 -540 211 -508Q211 -484 219.5 -469Q228 -454 246.5 -446Q265 -438 294 -433L363 -422Q435 -411 482 -385Q529 -359 552 -317Q575 -275 575 -215Q575 -148 543.5 -97Q512 -46 451 -17Q390 12 303 12ZM926 12Q849 12 794 -21.5Q739 -55 709.5 -117Q680 -179 680 -263Q680 -348 709.5 -409Q739 -470 794 -503.5Q849 -537 926 -537Q1003 -537 1058 -503.5Q1113 -470 1142.5 -409Q1172 -348 1172 -263Q1172 -179 1142.5 -117Q1113 -55 1058 -21.5Q1003 12 926 12ZM926 -105Q970 -105 994 -132.5Q1018 -160 1018 -209V-316Q1018 -366 994 -393Q970 -420 926 -420Q883 -420 858.5 -393Q834 -366 834 -316V-209Q834 -160 858.5 -132.5Q883 -105 926 -105ZM1511 0H1444Q1368 0 1332.5 -37Q1297 -74 1297 -144V-740H1445V-115H1511ZM1694 -581Q1649 -581 1628.5 -602Q1608 -623 1608 -654V-676Q1608 -708 1628.5 -728.5Q1649 -749 1694 -749Q1739 -749 1759.5 -728.5Q1780 -708 1780 -676V-654Q1780 -623 1759.5 -602Q1739 -581 1694 -581ZM1620 0V-525H1768V0ZM2248 0V-88H2243Q2232 -45 2192.5 -16.5Q2153 12 2102 12Q2036 12 1991 -19.5Q1946 -51 1923 -112.5Q1900 -174 1900 -263Q1900 -352 1923 -413Q1946 -474 1991 -505.5Q2036 -537 2102 -537Q2153 -537 2192.5 -509Q2232 -481 2243 -437H2248V-740H2396V0ZM2151 -108Q2179 -108 2201 -117Q2223 -126 2235.5 -143.5Q2248 -161 2248 -185V-340Q2248 -364 2235.5 -381.5Q2223 -399 2201 -408Q2179 -417 2151 -417Q2109 -417 2081.5 -387.5Q2054 -358 2054 -308V-217Q2054 -168 2081.5 -138Q2109 -108 2151 -108ZM2844 12Q2750 12 2680.5 -28Q2611 -68 2573 -147Q2535 -226 2535 -344Q2535 -462 2573 -543.5Q2611 -625 2680.5 -667.5Q2750 -710 2844 -710Q2940 -710 3003.5 -670Q3067 -630 3105 -546L2974 -478Q2961 -522 2930.5 -548.5Q2900 -575 2844 -575Q2777 -575 2736.5 -531.5Q2696 -488 2696 -405V-293Q2696 -211 2736.5 -167Q2777 -123 2844 -123Q2900 -123 2933.5 -153.5Q2967 -184 2983 -227L3107 -155Q3068 -76 3004 -32Q2940 12 2844 12ZM3373 0H3225V-525H3373V-411H3378Q3384 -440 3400 -466Q3416 -492 3443.5 -508.5Q3471 -525 3512 -525H3538V-387H3501Q3458 -387 3429.5 -379.5Q3401 -372 3387 -355Q3373 -338 3373 -307ZM4105 0H4023Q3996 0 3972.5 -13.5Q3949 -27 3935 -53.5Q3921 -80 3921 -117V-130L3953 -92H3917Q3905 -41 3864 -14.5Q3823 12 3763 12Q3684 12 3642 -30.5Q3600 -73 3600 -141Q3600 -197 3627.5 -233Q3655 -269 3705.5 -287Q3756 -305 3825 -305H3908V-338Q3908 -376 3888 -398.5Q3868 -421 3821 -421Q3777 -421 3751 -402Q3725 -383 3708 -359L3620 -437Q3652 -484 3701 -510.5Q3750 -537 3832 -537Q3943 -537 3999.5 -487.5Q4056 -438 4056 -345V-115H4105ZM3908 -221H3836Q3793 -221 3771 -206Q3749 -191 3749 -162V-147Q3749 -119 3767 -105Q3785 -91 3818 -91Q3843 -91 3863 -98Q3883 -105 3895.5 -120Q3908 -135 3908 -159ZM4250 0V-410H4176V-525H4250V-587Q4250 -663 4290.5 -701.5Q4331 -740 4407 -740H4503V-625H4398V-525H4503V-410H4398V0ZM4877 0H4789Q4713 0 4673 -39Q4633 -78 4633 -153V-410H4559V-525H4596Q4626 -525 4637 -539.5Q4648 -554 4648 -581V-667H4781V-525H4885V-410H4781V-115H4877Z"/></svg>

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="116.406 53.364 791.188 904.436" width="791" height="904" role="img"><title>SolidCraft</title><g fill="#000000"><path d="M547.883 282.66 L709.797 188.211 L709.797 375.985 Z"/><path d="M727.797 593.626 L727.797 407.136 L889.571 500.381 Z"/><path d="M530 521.17 L691.797 427.912 L691.797 655.928 L907.594 531.545 L907.594 740.159 L530 957.8 Z"/><path d="M116.406 510.769 L116.406 303.529 L494 521.17 L494 957.8 L314.203 854.167 L314.203 624.777 Z"/><path d="M134.374 272.334 L512 53.364 L691.828 157.015 L476.117 282.846 L673.752 396.761 L512 489.993 Z"/></g></svg>

Before

Width:  |  Height:  |  Size: 612 B

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="116.406 53.364 791.188 904.436" width="791" height="904" role="img"><title>SolidCraft</title><g fill="#ffffff"><path d="M547.883 282.66 L709.797 188.211 L709.797 375.985 Z"/><path d="M727.797 593.626 L727.797 407.136 L889.571 500.381 Z"/><path d="M530 521.17 L691.797 427.912 L691.797 655.928 L907.594 531.545 L907.594 740.159 L530 957.8 Z"/><path d="M116.406 510.769 L116.406 303.529 L494 521.17 L494 957.8 L314.203 854.167 L314.203 624.777 Z"/><path d="M134.374 272.334 L512 53.364 L691.828 157.015 L476.117 282.846 L673.752 396.761 L512 489.993 Z"/></g></svg>

Before

Width:  |  Height:  |  Size: 612 B

-1
View File
@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="116.406 53.364 791.188 904.436" width="791" height="904" role="img"><title>SolidCraft</title><defs><linearGradient id="sc1" x1="619.14" y1="179.734" x2="694.687" y2="396.761" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1d63c6"/><stop offset="1" stop-color="#15499e"/></linearGradient><linearGradient id="sc2" x1="619.14" y1="413.244" x2="790.839" y2="605.547" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#459fff"/><stop offset="1" stop-color="#2379e7"/></linearGradient><linearGradient id="sc3" x1="632.876" y1="399.508" x2="783.971" y2="968.175" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1b66cf"/><stop offset="1" stop-color="#124596"/></linearGradient><linearGradient id="sc4" x1="207.063" y1="303.357" x2="426.837" y2="968.175" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#258df5"/><stop offset="1" stop-color="#1461da"/></linearGradient><linearGradient id="sc5" x1="385.63" y1="53.364" x2="522.989" y2="510.769" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#51adff"/><stop offset="1" stop-color="#2b83f1"/></linearGradient></defs><g><path d="M547.883 282.66 L709.797 188.211 L709.797 375.985 Z" fill="url(#sc1)"/><path d="M727.797 593.626 L727.797 407.136 L889.571 500.381 Z" fill="url(#sc2)"/><path d="M530 521.17 L691.797 427.912 L691.797 655.928 L907.594 531.545 L907.594 740.159 L530 957.8 Z" fill="url(#sc3)"/><path d="M116.406 510.769 L116.406 303.529 L494 521.17 L494 957.8 L314.203 854.167 L314.203 624.777 Z" fill="url(#sc4)"/><path d="M134.374 272.334 L512 53.364 L691.828 157.015 L476.117 282.846 L673.752 396.761 L512 489.993 Z" fill="url(#sc5)"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="38.0 -749.0 4847.0 761.0" width="4847" height="761" role="img"><title>SolidCraft</title><path fill="#15499e" d="M303 12Q212 12 147.5 -20Q83 -52 38 -101L138 -202Q173 -162 217.5 -142Q262 -122 313 -122Q369 -122 396 -145Q423 -168 423 -206Q423 -225 416.5 -240.5Q410 -256 392.5 -266.5Q375 -277 342 -281L273 -290Q200 -300 152.5 -326.5Q105 -353 82 -396.5Q59 -440 59 -498Q59 -561 90.5 -608.5Q122 -656 180.5 -683Q239 -710 321 -710Q400 -710 460 -684.5Q520 -659 563 -612L462 -510Q437 -539 401.5 -557.5Q366 -576 312 -576Q261 -576 236 -558Q211 -540 211 -508Q211 -484 219.5 -469Q228 -454 246.5 -446Q265 -438 294 -433L363 -422Q435 -411 482 -385Q529 -359 552 -317Q575 -275 575 -215Q575 -148 543.5 -97Q512 -46 451 -17Q390 12 303 12ZM926 12Q849 12 794 -21.5Q739 -55 709.5 -117Q680 -179 680 -263Q680 -348 709.5 -409Q739 -470 794 -503.5Q849 -537 926 -537Q1003 -537 1058 -503.5Q1113 -470 1142.5 -409Q1172 -348 1172 -263Q1172 -179 1142.5 -117Q1113 -55 1058 -21.5Q1003 12 926 12ZM926 -105Q970 -105 994 -132.5Q1018 -160 1018 -209V-316Q1018 -366 994 -393Q970 -420 926 -420Q883 -420 858.5 -393Q834 -366 834 -316V-209Q834 -160 858.5 -132.5Q883 -105 926 -105ZM1511 0H1444Q1368 0 1332.5 -37Q1297 -74 1297 -144V-740H1445V-115H1511ZM1694 -581Q1649 -581 1628.5 -602Q1608 -623 1608 -654V-676Q1608 -708 1628.5 -728.5Q1649 -749 1694 -749Q1739 -749 1759.5 -728.5Q1780 -708 1780 -676V-654Q1780 -623 1759.5 -602Q1739 -581 1694 -581ZM1620 0V-525H1768V0ZM2248 0V-88H2243Q2232 -45 2192.5 -16.5Q2153 12 2102 12Q2036 12 1991 -19.5Q1946 -51 1923 -112.5Q1900 -174 1900 -263Q1900 -352 1923 -413Q1946 -474 1991 -505.5Q2036 -537 2102 -537Q2153 -537 2192.5 -509Q2232 -481 2243 -437H2248V-740H2396V0ZM2151 -108Q2179 -108 2201 -117Q2223 -126 2235.5 -143.5Q2248 -161 2248 -185V-340Q2248 -364 2235.5 -381.5Q2223 -399 2201 -408Q2179 -417 2151 -417Q2109 -417 2081.5 -387.5Q2054 -358 2054 -308V-217Q2054 -168 2081.5 -138Q2109 -108 2151 -108ZM2844 12Q2750 12 2680.5 -28Q2611 -68 2573 -147Q2535 -226 2535 -344Q2535 -462 2573 -543.5Q2611 -625 2680.5 -667.5Q2750 -710 2844 -710Q2940 -710 3003.5 -670Q3067 -630 3105 -546L2974 -478Q2961 -522 2930.5 -548.5Q2900 -575 2844 -575Q2777 -575 2736.5 -531.5Q2696 -488 2696 -405V-293Q2696 -211 2736.5 -167Q2777 -123 2844 -123Q2900 -123 2933.5 -153.5Q2967 -184 2983 -227L3107 -155Q3068 -76 3004 -32Q2940 12 2844 12ZM3373 0H3225V-525H3373V-411H3378Q3384 -440 3400 -466Q3416 -492 3443.5 -508.5Q3471 -525 3512 -525H3538V-387H3501Q3458 -387 3429.5 -379.5Q3401 -372 3387 -355Q3373 -338 3373 -307ZM4105 0H4023Q3996 0 3972.5 -13.5Q3949 -27 3935 -53.5Q3921 -80 3921 -117V-130L3953 -92H3917Q3905 -41 3864 -14.5Q3823 12 3763 12Q3684 12 3642 -30.5Q3600 -73 3600 -141Q3600 -197 3627.5 -233Q3655 -269 3705.5 -287Q3756 -305 3825 -305H3908V-338Q3908 -376 3888 -398.5Q3868 -421 3821 -421Q3777 -421 3751 -402Q3725 -383 3708 -359L3620 -437Q3652 -484 3701 -510.5Q3750 -537 3832 -537Q3943 -537 3999.5 -487.5Q4056 -438 4056 -345V-115H4105ZM3908 -221H3836Q3793 -221 3771 -206Q3749 -191 3749 -162V-147Q3749 -119 3767 -105Q3785 -91 3818 -91Q3843 -91 3863 -98Q3883 -105 3895.5 -120Q3908 -135 3908 -159ZM4250 0V-410H4176V-525H4250V-587Q4250 -663 4290.5 -701.5Q4331 -740 4407 -740H4503V-625H4398V-525H4503V-410H4398V0ZM4877 0H4789Q4713 0 4673 -39Q4633 -78 4633 -153V-410H4559V-525H4596Q4626 -525 4637 -539.5Q4648 -554 4648 -581V-667H4781V-525H4885V-410H4781V-115H4877Z"/></svg>

Before

Width:  |  Height:  |  Size: 3.3 KiB

+4 -1
View File
@@ -204,7 +204,10 @@ constraint = [
"c_polygon", "c_smooth", "c_symmetry", "c_tangent",
]
construction = [
"centerline", "construction", "infinite",
"centerline", "construction", "construction_line", "construction_line_angle",
"construction_line_bisector", "construction_line_horizontal", "construction_line_parallel",
"construction_line_perpendicular", "construction_line_tangent_at", "construction_line_tangent_external",
"construction_line_tangent_two", "construction_line_vertical", "infinite",
]
mesh = [
"mesh_body",
@@ -70,6 +70,16 @@ configuration_table false
conic false
constrainer false
construction false
construction_line false
construction_line_angle false
construction_line_bisector false
construction_line_horizontal false
construction_line_parallel false
construction_line_perpendicular false
construction_line_tangent_at false
construction_line_tangent_external false
construction_line_tangent_two false
construction_line_vertical false
contact_all false
contact_new false
contact_off false
@@ -168,6 +178,7 @@ pattern_rect false
perforate false
perspective false
pipe false
placeholder true
plane false
plane_along_path false
plane_angle false
@@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Construction line through two points</title>
<path d="M8 52L56 12" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round" stroke-dasharray="10 5"/>
<circle cx="20" cy="42" r="5.8" fill="#ffffff"/>
<circle cx="20" cy="42" r="3.4" fill="#236ead"/>
<circle cx="44" cy="22" r="5.8" fill="#ffffff"/>
<circle cx="44" cy="22" r="3.4" fill="#236ead"/>
</svg>

After

Width:  |  Height:  |  Size: 472 B

@@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Construction line at an angle</title>
<path d="M10.26 48.66L58.26 48.66" fill="none" stroke="#6f879c" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M28.65 33.23A24 24 0 0 1 34.26 48.66" fill="none" stroke="#6f879c" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M10.26 48.66L54.26 11.66" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round"/>
<circle cx="10.26" cy="48.66" r="5.8" fill="#ffffff"/>
<circle cx="10.26" cy="48.66" r="3.4" fill="#236ead"/>
</svg>

After

Width:  |  Height:  |  Size: 646 B

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Angle bisector</title>
<path d="M13.92 12.18L9.92 52.17L54.92 44.17" fill="none" stroke="#6f879c" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M12.11 30.29A22 22 0 0 1 31.58 48.33" fill="none" stroke="#6f879c" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M9.92 52.17L47.3 11.83" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 526 B

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Horizontal construction line</title>
<path d="M8 32L56 32" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round" stroke-dasharray="10 5"/>
<circle cx="32" cy="32" r="5.8" fill="#ffffff"/>
<circle cx="32" cy="32" r="3.4" fill="#236ead"/>
</svg>

After

Width:  |  Height:  |  Size: 362 B

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Parallel construction line</title>
<path d="M9 37L41 9" fill="none" stroke="#6f879c" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M23 55L55 27" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round" stroke-dasharray="10 5"/>
</svg>

After

Width:  |  Height:  |  Size: 380 B

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Perpendicular construction line</title>
<path d="M8 44L56 44" fill="none" stroke="#6f879c" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M32 8L32 56" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M32 34L42 34L42 44" fill="none" stroke="#6f879c" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 490 B

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Tangent at a curve point</title>
<circle cx="32" cy="34.26" r="17" fill="none" stroke="#6f879c" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M8 17.26L56 17.26" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round"/>
<circle cx="32" cy="17.26" r="5.8" fill="#ffffff"/>
<circle cx="32" cy="17.26" r="3.4" fill="#236ead"/>
</svg>

After

Width:  |  Height:  |  Size: 480 B

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Tangent through an external point</title>
<circle cx="21.74" cy="38.77" r="14" fill="none" stroke="#6f879c" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M53.6 8.23L28.55 55.9" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round"/>
<circle cx="51.74" cy="11.77" r="5.8" fill="#ffffff"/>
<circle cx="51.74" cy="11.77" r="3.4" fill="#236ead"/>
</svg>

After

Width:  |  Height:  |  Size: 502 B

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Common tangent to two curves</title>
<circle cx="20" cy="33.59" r="12" fill="none" stroke="#6f879c" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<circle cx="46" cy="33.59" r="8" fill="none" stroke="#6f879c" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M6 19.27L58 27.36" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 509 B

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Vertical construction line</title>
<path d="M32 8L32 56" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round" stroke-dasharray="10 5"/>
<circle cx="32" cy="32" r="5.8" fill="#ffffff"/>
<circle cx="32" cy="32" r="3.4" fill="#236ead"/>
</svg>

After

Width:  |  Height:  |  Size: 360 B

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Align drawing annotations</title>
<path d="M12 6L12 58" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M22.5 12L51.5 12A2.5 2.5 0 0 1 54 14.5L54 17.5A2.5 2.5 0 0 1 51.5 20L22.5 20A2.5 2.5 0 0 1 20 17.5L20 14.5A2.5 2.5 0 0 1 22.5 12Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M22.5 28L40.5 28A2.5 2.5 0 0 1 43 30.5L43 33.5A2.5 2.5 0 0 1 40.5 36L22.5 36A2.5 2.5 0 0 1 20 33.5L20 30.5A2.5 2.5 0 0 1 22.5 28Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M22.5 44L47.5 44A2.5 2.5 0 0 1 50 46.5L50 49.5A2.5 2.5 0 0 1 47.5 52L22.5 52A2.5 2.5 0 0 1 20 49.5L20 46.5A2.5 2.5 0 0 1 22.5 44Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 962 B

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Align drawing views</title>
<path d="M10.5 24L23.5 24A2.5 2.5 0 0 1 26 26.5L26 43.5A2.5 2.5 0 0 1 23.5 46L10.5 46A2.5 2.5 0 0 1 8 43.5L8 26.5A2.5 2.5 0 0 1 10.5 24Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M39.5 12L52.5 12A2.5 2.5 0 0 1 55 14.5L55 43.5A2.5 2.5 0 0 1 52.5 46L39.5 46A2.5 2.5 0 0 1 37 43.5L37 14.5A2.5 2.5 0 0 1 39.5 12Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M6 52L58 52" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M17 29L17 40M46 18L46 39" fill="none" stroke="#6f879c" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 846 B

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Drawing balloon</title>
<path d="M9.5 37L29.5 37A2.5 2.5 0 0 1 32 39.5L32 52.5A2.5 2.5 0 0 1 29.5 55L9.5 55A2.5 2.5 0 0 1 7 52.5L7 39.5A2.5 2.5 0 0 1 9.5 37Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M20 45L35 30L40 25" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M15 50L19 37L28 45Z" fill="#236ead"/>
<circle cx="45" cy="17" r="12" fill="#b9ddf8" stroke="#236ead" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 651 B

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Base drawing view</title>
<path d="M9.5 10L54.5 10A2.5 2.5 0 0 1 57 12.5L57 51.5A2.5 2.5 0 0 1 54.5 54L9.5 54A2.5 2.5 0 0 1 7 51.5L7 12.5A2.5 2.5 0 0 1 9.5 10Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M17.5 19L42.5 19A2.5 2.5 0 0 1 45 21.5L45 39.5A2.5 2.5 0 0 1 42.5 42L17.5 42A2.5 2.5 0 0 1 15 39.5L15 21.5A2.5 2.5 0 0 1 17.5 19Z" fill="#b9ddf8" stroke="#236ead" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<circle cx="30" cy="30.5" r="6" fill="none" stroke="#236ead" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M47 46L53 46M50 43L50 49" fill="none" stroke="#6f879c" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 851 B

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Drawing centre mark</title>
<circle cx="32" cy="32" r="18" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M32 6L32 21M32 27L32 37M32 43L32 58M6 32L21 32M27 32L37 32M43 32L58 32" fill="none" stroke="#236ead" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 420 B

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Check drawing</title>
<path d="M14.5 7L49.5 7A2.5 2.5 0 0 1 52 9.5L52 54.5A2.5 2.5 0 0 1 49.5 57L14.5 57A2.5 2.5 0 0 1 12 54.5L12 9.5A2.5 2.5 0 0 1 14.5 7Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M21 19L42 19M21 29L35 29" fill="none" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M27 44L37 53L57 30" fill="none" stroke="#ffffff" stroke-width="6.25" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M27 44L37 53L57 30" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 730 B

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Drawing datum</title>
<path d="M6 53L58 53" fill="none" stroke="#6f879c" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M32 52L24 38L40 38Z" fill="#236ead"/>
<path d="M32 38L32 27" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M21.5 7L42.5 7A2.5 2.5 0 0 1 45 9.5L45 24.5A2.5 2.5 0 0 1 42.5 27L21.5 27A2.5 2.5 0 0 1 19 24.5L19 9.5A2.5 2.5 0 0 1 21.5 7Z" fill="#b9ddf8" stroke="#236ead" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 631 B

@@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Detail drawing view</title>
<path d="M9.5 11L30.5 11A2.5 2.5 0 0 1 33 13.5L33 45.5A2.5 2.5 0 0 1 30.5 48L9.5 48A2.5 2.5 0 0 1 7 45.5L7 13.5A2.5 2.5 0 0 1 9.5 11Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M13 18L23 18L23 33L29 33" fill="none" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<circle cx="23" cy="30" r="9" fill="none" stroke="#6f879c" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M31 35L39 41" fill="none" stroke="#6f879c" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<circle cx="47" cy="46" r="12" fill="#b9ddf8" stroke="#236ead" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M40 39L46 39L46 48L53 48" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 1000 B

@@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Drawing dimension</title>
<path d="M10 10L10 55M54 10L54 55" fill="none" stroke="#6f879c" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M10 14L54 14L54 36L10 36Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M20 49L44 49" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M11 49L23 43L23 55Z" fill="#236ead"/>
<path d="M53 49L41 55L41 43Z" fill="#236ead"/>
</svg>

After

Width:  |  Height:  |  Size: 598 B

@@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Edit drawing table</title>
<path d="M10.5 10L53.5 10A2.5 2.5 0 0 1 56 12.5L56 51.5A2.5 2.5 0 0 1 53.5 54L10.5 54A2.5 2.5 0 0 1 8 51.5L8 12.5A2.5 2.5 0 0 1 10.5 10Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M10 12L54 12L54 23L10 23Z" fill="#b8c3cf"/>
<path d="M8 24L56 24M8 39L56 39M23 24L23 54" fill="none" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M25 26L54 26L54 37L25 37Z" fill="#b9ddf8"/>
<path d="M32 32L47 32M42 27L47 32L42 37" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 741 B

@@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Hole callout</title>
<circle cx="18" cy="43" r="13" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<circle cx="18" cy="43" r="6" fill="none" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M27 35L39 22L57 22" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M23 40L27 28L34 35Z" fill="#236ead"/>
<circle cx="44" cy="10" r="4.5" fill="none" stroke="#236ead" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M39 16L49 4" fill="none" stroke="#236ead" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 794 B

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Insert drawing image</title>
<path d="M9.5 11L54.5 11A2.5 2.5 0 0 1 57 13.5L57 50.5A2.5 2.5 0 0 1 54.5 53L9.5 53A2.5 2.5 0 0 1 7 50.5L7 13.5A2.5 2.5 0 0 1 9.5 11Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<circle cx="43" cy="23" r="5" fill="#b9ddf8" stroke="#236ead" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M10 45L24 27L36 41L42 34L54 47Z" fill="#b9ddf8" stroke="#236ead" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 622 B

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Drawing leader</title>
<path d="M8.5 34L33.5 34A2.5 2.5 0 0 1 36 36.5L36 51.5A2.5 2.5 0 0 1 33.5 54L8.5 54A2.5 2.5 0 0 1 6 51.5L6 36.5A2.5 2.5 0 0 1 8.5 34Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M18 45L39 18L56 18" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M15 49L19 35L26 41Z" fill="#236ead"/>
</svg>

After

Width:  |  Height:  |  Size: 516 B

@@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Drawing parts list</title>
<path d="M10.5 10L53.5 10A2.5 2.5 0 0 1 56 12.5L56 51.5A2.5 2.5 0 0 1 53.5 54L10.5 54A2.5 2.5 0 0 1 8 51.5L8 12.5A2.5 2.5 0 0 1 10.5 10Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M10 12L54 12L54 23L10 23Z" fill="#b8c3cf"/>
<path d="M8 24L56 24M8 39L56 39M23 24L23 54" fill="none" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<circle cx="15.5" cy="31.5" r="3.5" fill="#b9ddf8" stroke="#236ead" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<circle cx="15.5" cy="46.5" r="3.5" fill="#b9ddf8" stroke="#236ead" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M30 31L48 31M30 46L48 46" fill="none" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 958 B

@@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Print drawing</title>
<path d="M18.5 7L45.5 7A2.5 2.5 0 0 1 48 9.5L48 29.5A2.5 2.5 0 0 1 45.5 32L18.5 32A2.5 2.5 0 0 1 16 29.5L16 9.5A2.5 2.5 0 0 1 18.5 7Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M8.5 24L55.5 24A2.5 2.5 0 0 1 58 26.5L58 49.5A2.5 2.5 0 0 1 55.5 52L8.5 52A2.5 2.5 0 0 1 6 49.5L6 26.5A2.5 2.5 0 0 1 8.5 24Z" fill="#b8c3cf" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<circle cx="48" cy="32" r="2.5" fill="#236ead" stroke="#236ead" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M18.5 37L45.5 37A2.5 2.5 0 0 1 48 39.5L48 55.5A2.5 2.5 0 0 1 45.5 58L18.5 58A2.5 2.5 0 0 1 16 55.5L16 39.5A2.5 2.5 0 0 1 18.5 37Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M23 44L41 44M23 51L36 51" fill="none" stroke="#236ead" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Projected drawing view</title>
<path d="M9.5 33L31.5 33A2.5 2.5 0 0 1 34 35.5L34 52.5A2.5 2.5 0 0 1 31.5 55L9.5 55A2.5 2.5 0 0 1 7 52.5L7 35.5A2.5 2.5 0 0 1 9.5 33Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<circle cx="20.5" cy="44" r="5" fill="none" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M9.5 8L31.5 8A2.5 2.5 0 0 1 34 10.5L34 19.5A2.5 2.5 0 0 1 31.5 22L9.5 22A2.5 2.5 0 0 1 7 19.5L7 10.5A2.5 2.5 0 0 1 9.5 8Z" fill="#b9ddf8" stroke="#236ead" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M9 25L9 30M32 25L32 30M38 44L54 44" fill="none" stroke="#6f879c" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round" stroke-dasharray="3 5"/>
<path d="M44 28L44 13" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M44 7L48 14L40 14Z" fill="#236ead"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

@@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Browse drawing resources</title>
<path d="M15 7L51 7A3 3 0 0 1 54 10L54 48A3 3 0 0 1 51 51L15 51A3 3 0 0 1 12 48L12 10A3 3 0 0 1 15 7Z" fill="#b8c3cf" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M10 12L46 12A3 3 0 0 1 49 15L49 53A3 3 0 0 1 46 56L10 56A3 3 0 0 1 7 53L7 15A3 3 0 0 1 10 12Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M14 20L42 20L42 47L14 47Z" fill="none" stroke="#6f879c" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M14 38L42 38M28 38L28 47" fill="none" stroke="#6f879c" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M22 27L34 27L34 36L22 36Z" fill="#b9ddf8" stroke="#236ead" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 933 B

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Add drawing revision</title>
<path d="M14.5 7L49.5 7A2.5 2.5 0 0 1 52 9.5L52 54.5A2.5 2.5 0 0 1 49.5 57L14.5 57A2.5 2.5 0 0 1 12 54.5L12 9.5A2.5 2.5 0 0 1 14.5 7Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M20 19L43 19M20 29L37 29" fill="none" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M43 33L58 57L28 57Z" fill="#ffffff" stroke="#ffffff" stroke-width="4.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M43 33L58 57L28 57Z" fill="#b9ddf8" stroke="#236ead" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 745 B

@@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Drawing revision table</title>
<path d="M10.5 10L53.5 10A2.5 2.5 0 0 1 56 12.5L56 51.5A2.5 2.5 0 0 1 53.5 54L10.5 54A2.5 2.5 0 0 1 8 51.5L8 12.5A2.5 2.5 0 0 1 10.5 10Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M10 12L54 12L54 23L10 23Z" fill="#b8c3cf"/>
<path d="M8 24L56 24M8 39L56 39M23 24L23 54" fill="none" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M15 27L10 35L20 35ZM15 42L10 50L20 50Z" fill="#236ead"/>
<path d="M31 31L49 31M31 46L49 46" fill="none" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 752 B

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Section drawing view</title>
<path d="M8 15L56 15L56 50L37 50L37 27L27 27L27 50L8 50Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M10 38L26 22M10 25L20 15M10 50L24 36M39 35L54 20M39 48L54 33M49 50L56 43" fill="none" stroke="#236ead" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 450 B

@@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Space drawing annotations</title>
<path d="M28.5 9L53.5 9A2.5 2.5 0 0 1 56 11.5L56 14.5A2.5 2.5 0 0 1 53.5 17L28.5 17A2.5 2.5 0 0 1 26 14.5L26 11.5A2.5 2.5 0 0 1 28.5 9Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M28.5 28L53.5 28A2.5 2.5 0 0 1 56 30.5L56 33.5A2.5 2.5 0 0 1 53.5 36L28.5 36A2.5 2.5 0 0 1 26 33.5L26 30.5A2.5 2.5 0 0 1 28.5 28Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M28.5 47L53.5 47A2.5 2.5 0 0 1 56 49.5L56 52.5A2.5 2.5 0 0 1 53.5 55L28.5 55A2.5 2.5 0 0 1 26 52.5L26 49.5A2.5 2.5 0 0 1 28.5 47Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M15 19L15 25M15 38L15 44" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M15 14L10 21L20 21ZM15 30L10 23L20 23ZM15 33L10 40L20 40ZM15 49L10 42L20 42Z" fill="#236ead"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Update drawing</title>
<path d="M14.5 7L49.5 7A2.5 2.5 0 0 1 52 9.5L52 54.5A2.5 2.5 0 0 1 49.5 57L14.5 57A2.5 2.5 0 0 1 12 54.5L12 9.5A2.5 2.5 0 0 1 14.5 7Z" fill="#e2e8ef" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M22.5 16L41.5 16A2.5 2.5 0 0 1 44 18.5L44 28.5A2.5 2.5 0 0 1 41.5 31L22.5 31A2.5 2.5 0 0 1 20 28.5L20 18.5A2.5 2.5 0 0 1 22.5 16Z" fill="#b8c3cf" stroke="#34465b" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M38 35A11 11 0 1 0 45 45" fill="none" stroke="#ffffff" stroke-width="6.25" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M38 35A11 11 0 1 0 45 45" fill="none" stroke="#236ead" stroke-width="4.25" stroke-linejoin="round" stroke-linecap="round"/>
<path d="M44 40L32 37L40 28Z" fill="#236ead"/>
</svg>

After

Width:  |  Height:  |  Size: 900 B

+46
View File
@@ -775,6 +775,8 @@
"at the face": "عند الوجه",
"bom.group_children": "الأجزاء الفرعية في صف الجزء الأصلي",
"browser.body_name": "جسم {number}",
"browser.calibrate_click_a": "انقر على الصورة لتحديد النقطة A، أو اكتب إحداثياتها.",
"browser.calibrate_click_b": "انقر على الصورة لتحديد النقطة B، أو اكتب إحداثياتها.",
"browser.calibrate_title": "معايرة: {name}",
"browser.capture_many": "تم تحريك {count} مكوّنات دون تثبيت مواضعها.",
"browser.capture_note": "التثبيت يحتفظ بالموضع الجديد، والإرجاع يعيده كما كان.",
@@ -1101,6 +1103,16 @@
"cmd.sheet_refold": "إعادة الطي",
"cmd.sheet_rules": "قائمة قواعد الصفائح المعدنية",
"cmd.sheet_unfold": "فرد",
"cmd.sketch.construction_line": "خط إنشائي",
"cmd.sketch.construction_line.angle": "خط إنشائي بزاوية",
"cmd.sketch.construction_line.bisector": "منصف الزاوية",
"cmd.sketch.construction_line.horizontal": "خط إنشائي أفقي",
"cmd.sketch.construction_line.parallel": "خط إنشائي موازٍ",
"cmd.sketch.construction_line.perpendicular": "خط إنشائي عمودي",
"cmd.sketch.construction_line.tangent_at": "مماس عند نقطة على المنحنى",
"cmd.sketch.construction_line.tangent_external": "مماس يمر بنقطة خارجية",
"cmd.sketch.construction_line.tangent_two": "مماس مشترك",
"cmd.sketch.construction_line.vertical": "خط إنشائي رأسي",
"cmd.sketch_arc3d": "قوس ثلاثي الأبعاد",
"cmd.sketch_arc_center_point": "قوس بنقطة مركز",
"cmd.sketch_arc_tangent": "قوس مماسي",
@@ -1389,6 +1401,16 @@
"help.occurrence.move": "يحرّك جزءًا في التجميع فقط ضمن درجات الحرية التي تسمح بها مفاصله. حدد وجهًا للجزء، ثم اسحب سهمًا أو قوسًا متاحًا.",
"help.parameters.change": "يفتح جدول القيم المسماة والتعبيرات التي تتحكم في أبعاد التصميم. استخدمه لتغيير مقاس في مكان واحد فتتبعه كل الميزات التي تستخدمه.",
"help.pointcloud.insert": "أدرج مسحًا بصيغة PLY أو XYZ أو PTS كسحابة نقاط بجانب النموذج. استخدمه كمرجع عند النمذجة انطلاقًا من بيانات القياس.",
"help.sketch.construction_line": "أنشئ خطًا إنشائيًا لا نهائيًا يمر بنقطتين. استخدمه لتخطيط الرسم دون تقسيم مقاطعه.",
"help.sketch.construction_line.angle": "أنشئ خطًا إنشائيًا لا نهائيًا بزاوية من محور X للرسم. اختر النقطة ثم اكتب الزاوية، أو اختر اتجاهه.",
"help.sketch.construction_line.bisector": "اختر خطين مستقيمين متقاطعين في الرسم، ثم اختر أحد منصفي الزاوية. يتبع الناتج الخطين اللذين أُنشئ منهما.",
"help.sketch.construction_line.horizontal": "أنشئ خطًا إنشائيًا أفقيًا لا نهائيًا يمر بنقطة. يحافظ القيد الأفقي على الاتجاه بعد التعديلات.",
"help.sketch.construction_line.parallel": "اختر خطًا مستقيمًا في الرسم ثم ضع خطًا إنشائيًا لا نهائيًا موازيًا له. انقر بزر الفأرة الأيمن لتغيير المرجع.",
"help.sketch.construction_line.perpendicular": "اختر خطًا مستقيمًا في الرسم ثم ضع خطًا إنشائيًا لا نهائيًا عموديًا عليه. انقر بزر الفأرة الأيمن لتغيير المرجع.",
"help.sketch.construction_line.tangent_at": "أنشئ مماسًا عند نقطة على دائرة أو قوس دائري، أو عند نهاية منحنى شريحي مفتوح أو قطع مخروطي مفتوح. اختر المنحنى ثم نقطة التماس.",
"help.sketch.construction_line.tangent_external": "اختر دائرة أو قوسًا دائريًا، ثم نقطة خارجية وحل المماس. تعرض المعاينة نقاط التماس الواقعة على القوس المرسوم فقط.",
"help.sketch.construction_line.tangent_two": "اختر دائرتين أو قوسين دائريين ثم اختر مماسًا مشتركًا من المعاينة. يجب أن تقع نقطتا التماس على المنحنيين المرسومين.",
"help.sketch.construction_line.vertical": "أنشئ خطًا إنشائيًا رأسيًا لا نهائيًا يمر بنقطة. يحافظ القيد الرأسي على الاتجاه بعد التعديلات.",
"help.sketch.equation_curve": "يرسم منحنى من صيغ على مدى: x(t) و y(t)، أو y = f(x). يمكن أن تستخدم الصيغ المعلمات فيتبعها المنحنى: استخدمه لموجة جيبية أو لولب أو منحنى انفلات لسن ترس.",
"help.solid.align": "يحرّك الأجسام المحددة بحيث تلتقي نقطة أو وجه أو مستوى منها بنقطة أو وجه أو مستوى في مكان آخر. استخدمه لوضع قطعة ملاصقة لأخرى دون قياس المسافة.",
"help.solid.chamfer": "يقطع الحواف المحددة بشطفة مستوية بالمسافة التي تحددها. استخدمه لكسر الحواف الحادة أو لتسهيل إدخال مسمار أو برغي.",
@@ -1906,6 +1928,9 @@
"prefs.max_file_size_step": "ملفات STEP والاستيراد",
"prefs.max_file_size_web": "يفتح تطبيق الويب ملفات STEP والاستيراد حتى 512 MB والتصاميم حتى 256 MB؛ لا يتسع تبويب المتصفح لملفات أكبر. يمكن رفع هذه الحدود في تطبيق سطح المكتب.",
"prefs.megabytes": "MB",
"prefs.menu_grid": "أيقونات كبيرة",
"prefs.menu_list": "قائمة",
"prefs.menus": "القوائم",
"prefs.minutes": "دقائق",
"prefs.minutes_suffix": " دقيقة",
"prefs.mouse": "الفأرة ولوحة اللمس",
@@ -1925,6 +1950,8 @@
"prefs.origin_plane_names": "أسماء مستويات الأصل",
"prefs.origin_plane_names_note": "الأسماء المعروضة في المستعرض والحوارات والقوائم. {top} هو XY و{front} هو XZ و{right} هو YZ، والمحور Z للأعلى. تحتفظ الأوامر والسكربتات والتصاميم المحفوظة بـ XY وXZ وYZ.",
"prefs.overall_speed": "السرعة العامة",
"prefs.persistent_ribbon_pressed": "تمييز أوامر الشريط النشطة",
"prefs.persistent_ribbon_pressed_help": "تمييز أوامر الشريط أثناء تفعيل تأثيراتها. أوقف هذا الخيار للاحتفاظ بالمظهر المحايد السابق ومساعدة الأوامر.",
"prefs.perspective_fov": "مجال الرؤية",
"prefs.placement": "الموضع",
"prefs.prefer_free_sketch_points": "تفضيل نقاط الرسم القابلة للتحريك عند تداخل النقاط",
@@ -1974,11 +2001,16 @@
"prefs.sketch_align_points_note": "أثناء الرسم، تتحاذى النقطة أفقيًا مع نقطة رسم وعموديًا مع نقطة أخرى في الوقت نفسه، مع خط إرشادي منقط، وتحتفظ النقرة بالمحاذاتين. عند الإيقاف: مع النقطة السابقة فقط، محور واحد في كل مرة.",
"prefs.sketch_conflict_colour": "الهندسة المتعارضة بلون التعارض",
"prefs.sketch_conflict_colour_note": "عندما تتعارض قيود الرسم، تُرسم المنحنيات والنقاط التي يمسكها قيد فاشل بلون التعارض أيضًا، لا رمزه أو بُعده فقط. عند الإيقاف: تحتفظ بألوانها المعتادة.",
"prefs.sketch_construction_lines": "أدوات الخطوط الإنشائية الموسعة",
"prefs.sketch_exit_view": "عند انتهاء الرسم",
"prefs.sketch_exit_view.keep": "إبقاء العرض الحالي",
"prefs.sketch_exit_view.previous": "العودة إلى العرض السابق",
"prefs.sketch_exit_view.unless_rotated": "العودة ما لم يُدوَّر العرض",
"prefs.sketch_exit_view_note": "أين ينتقل العرض بعد إنهاء الرسم أو الإلغاء أو الضغط على Esc مرتين.",
"prefs.sketch_open_look_at": "توجيه العرض نحو الرسم عند فتحه",
"prefs.sketch_open_look_at_note": "عند الإيقاف: إنشاء الرسم أو تحريره يُبقي العرض كما هو. يوجّه «النظر إلى» العرض نحو الرسم عند الحاجة.",
"prefs.sketch_recent_snap": "الالتقاط التلقائي إلى المراكز ونقاط المنتصف الأخيرة",
"prefs.sketch_recent_snap_note": "أثناء الرسم، يلتقط المؤشر الموضع الذي يتقاطع فيه دليلا آخر مركزي دائرتين أو نقطتي منتصف حافتين مستقيمتين. عند الإيقاف: تبقى تلك الأدلة للعرض فقط ولا يتحرك المؤشر.",
"prefs.sketch_selection": "الرسم والتحديد",
"prefs.sketch_selection_heading": "الرسم والتحديد",
"prefs.sketch_selection_note": "كيف تلتقط الرسومات وكيف تحدد النقرات.",
@@ -2052,6 +2084,10 @@
"properties.title": "الخصائص: {name}",
"recovery.days_ago": "قبل {count} يوم",
"recovery.detail": "{file} · {features} ميزة · حُفظ تلقائيًا {when}",
"recovery.discard_all": "تجاهل الكل",
"recovery.discard_all_detail": "لا يمكن التراجع عن هذا الإجراء.",
"recovery.discard_all_title": "تجاهل {count} من عمليات الحفظ التلقائي؟",
"recovery.discard_all_title_one": "تجاهل حفظ تلقائي واحد؟",
"recovery.hours_ago": "قبل {count} ساعة",
"recovery.just_now": "الآن",
"recovery.min_ago": "قبل {count} دقيقة",
@@ -3971,6 +4007,15 @@
"ui.constant": "ثابت",
"ui.constraints_conflict": "تعارض في القيود",
"ui.construction": "مساعد",
"ui.construction.angle_hint": "خط إنشائي: انقر نقطة ثم أدخل زاوية أو اختر اتجاهًا",
"ui.construction.bisector_hint": "منصف زاوية: اختر خطين مستقيمين متقاطعين ثم الحل المطلوب",
"ui.construction.common_hint": "مماس مشترك: اختر دائرتين/قوسين ثم الحل المطلوب",
"ui.construction.contact_hint": "مماس: اختر دائرة/قوسًا أو منحنى شريحيًا/قطعًا مخروطيًا مفتوحًا ثم نقطة التماس (للمنحنيات الحرة: النهايات فقط)",
"ui.construction.external_hint": "مماس: اختر دائرة أو قوسًا ثم نقطة خارجية ثم الحل المطلوب",
"ui.construction.free_hint": "خط إنشائي: انقر نقطتين؛ انقر بزر الفأرة الأيمن للبدء من جديد",
"ui.construction.point_hint": "خط إنشائي: انقر نقطة المرور",
"ui.construction.reference_hint": "خط إنشائي: اختر خطًا مستقيمًا ثم نقطة؛ انقر بزر الفأرة الأيمن لتغيير المرجع",
"ui.construction.ribbon_label": "خطوط مساعدة",
"ui.context_menu": "القائمة السياقية",
"ui.continuity_g0": "G0 تجعّد",
"ui.continuity_g1": "G1 مماس",
@@ -4437,6 +4482,7 @@
"ui.revolve": "دوران",
"ui.ribbon_exit": "خروج",
"ui.ribbon_labels": "إظهار النص تحت أيقونات الشريط",
"ui.ribbon_menus_skip_pinned": "استبعاد الأوامر المثبتة من القوائم المنسدلة",
"ui.ribbon_pin_footer": "الأوامر المثبتة تظهر في الشريط. مرّر المؤشر على صف لتثبيته أو إلغاء تثبيته.",
"ui.ribbon_workspace": "مساحة العمل",
"ui.right": "يمين",
+395
View File
@@ -206,6 +206,7 @@
"Edges": "Ivice",
"Edit": "Uredi",
"Edit Profile Sketch": "Uredi skicu profila",
"Edit shortcuts": "Uredi prečice",
"Enable rule": "Omogući pravilo",
"Enabled": "Omogućeno",
"End Radius": "Krajnji poluprečnik",
@@ -468,6 +469,7 @@
"Radius": "Poluprečnik",
"Radius Fit": "Uklapanje poluprečnika",
"Ratio": "Omjer",
"Read-only list: shortcuts can't be changed here.": "Popis samo za čitanje: prečice se ovdje ne mogu mijenjati.",
"Reattach selected face": "Ponovo pričvrsti izabrano lice",
"Recover": "Oporavi",
"Recover unsaved design?": "Oporaviti nesačuvani dizajn?",
@@ -652,6 +654,7 @@
"Third point": "Treća tačka",
"This child is shared. Deleting it removes it from every copy of its parent.": "Ovaj podređeni element je dijeljen. Brisanjem se uklanja iz svake kopije njegovog roditelja.",
"This child is shared. Position changes apply to every copy of its parent.": "Ovaj podređeni element je dijeljen. Promjene položaja primjenjuju se na svaku kopiju njegovog roditelja.",
"This component is inside a subassembly placed more than once: aligning it moves it in every placement.": "Ova komponenta je unutar podsklopa koji je postavljen više puta: njeno poravnavanje pomjera je u svakom postavljanju.",
"This face cannot provide a durable attachment. Choose another face or explicitly use a fixed plane.": "Ovo lice ne može dati trajno pričvršćenje. Izaberite drugo lice ili izričito koristite fiksnu ravan.",
"This image is not attached to GitHub yet. Copy or save it, then attach it on GitHub.": "Ova slika još nije priložena na GitHubu. Kopirajte je ili sačuvajte, a zatim je priložite na GitHubu.",
"Thread depth": "Dubina navoja",
@@ -793,6 +796,11 @@
"cam.roller": "Valjak",
"cam.roller_pick": "Valjak (neobavezno)",
"cam.tip_pick": "Vrh (neobavezno)",
"camera.shot_pitch": "Nagib",
"camera.shot_roll": "Valjanje",
"camera.shot_yaw": "Skretanje",
"canvas.decal_place_hint": "Kliknite lice da postavite naljepnicu",
"canvas.place_hint": "Kliknite ravan ili lice da postavite platno",
"choose a profile": "izaberite profil",
"choose the cam's and the follower's joints": "izaberite spojeve brijega i pratioca",
"choose the joints to couple": "izaberite spojeve koje treba spregnuti",
@@ -800,9 +808,12 @@
"click sketch curves": "kliknite na krive skice",
"cmd.appearance_assign": "Izgled",
"cmd.appearance_chain": "Lanac izgleda",
"cmd.appearance_copy": "Kopiraj izgled",
"cmd.appearance_favorite": "Omiljeni izgled",
"cmd.appearance_library": "Biblioteka izgleda",
"cmd.appearance_list": "Popis izgleda",
"cmd.appearance_paint": "Oboji izgledom",
"cmd.appearance_paste": "Zalijepi izgled",
"cmd.appearance_pick_up": "Preuzmi izgled",
"cmd.appearance_replace": "Zamijeni izgled",
"cmd.assembly_bom": "Sastavnica",
@@ -813,6 +824,7 @@
"cmd.browser_move": "Premjesti stavke stabla modela",
"cmd.browser_order": "Poredaj stavke stabla modela",
"cmd.browser_rename_group": "Preimenuj grupu",
"cmd.browser_reparent": "Premjesti u komponentu",
"cmd.browser_ungroup": "Razgrupiši",
"cmd.browser_visibility": "Prikaži/sakrij",
"cmd.canvas_calibrate": "Kalibriši platno",
@@ -839,7 +851,9 @@
"cmd.component_metadata": "Svojstva dijela",
"cmd.component_metadata_set": "Promijeni svojstva dijela",
"cmd.component_move_bodies": "Premjesti tijela u komponentu",
"cmd.component_move_features": "Premjesti operacije u komponentu",
"cmd.component_move_sketches": "Premjesti skice u komponentu",
"cmd.component_paste_from_design": "Zalijepi iz drugog dizajna",
"cmd.component_paste_new": "Zalijepi kao novo",
"cmd.component_properties": "Fizička svojstva komponente",
"cmd.component_relink": "Ponovo poveži izvor",
@@ -976,6 +990,7 @@
"cmd.motion_trace": "Trag kretanja",
"cmd.motion_trace_edit": "Uredi trag kretanja",
"cmd.motion_trace_keep": "Zadrži trag kretanja",
"cmd.occurrence_align": "Poravnaj primjerak",
"cmd.occurrence_copy": "Zalijepi (primjerak)",
"cmd.occurrence_drag": "Povuci primjerak",
"cmd.occurrence_ground": "Učvrsti",
@@ -1033,11 +1048,17 @@
"cmd.render_library_surface_unbind": "Ukloni vezu površine",
"cmd.render_library_targets": "Pronađi ciljeve biblioteke renderovanja",
"cmd.render_lights_add": "Dodaj svjetlo",
"cmd.render_lights_duplicate": "Dupliciraj svjetlo renderovanja",
"cmd.render_lights_list": "Popis svjetala renderovanja",
"cmd.render_lights_mute": "Isključi svjetlo",
"cmd.render_lights_remove": "Ukloni svjetlo renderovanja",
"cmd.render_lights_set": "Postavi svjetlo renderovanja",
"cmd.render_lights_solo": "Samo ovo svjetlo",
"cmd.render_optics_bind": "Sačuvaj optičku vezu",
"cmd.render_optics_unbind": "Ukloni optičku vezu",
"cmd.render_output_size": "Postavi veličinu izlaza renderovanja",
"cmd.render_preflight": "Provjeri zahtjev za renderovanje",
"cmd.render_preflight_copy": "Kopiraj izvještaj provjere renderovanja",
"cmd.render_preset_apply": "Primijeni izvorni studio",
"cmd.render_preset_resolve": "Pregledaj izvorni studio",
"cmd.render_quality_prepare": "Pregledaj fiksni budžet uzorkovanja",
@@ -1060,6 +1081,13 @@
"cmd.render_start": "Renderuj sliku",
"cmd.render_status": "Napredak renderovanja",
"cmd.select_clear": "Poništi izbor",
"cmd.settings_profile_apply": "Primijeni profil postavki",
"cmd.settings_profile_delete": "Izbriši profil postavki",
"cmd.settings_profile_export": "Izvezi profil postavki",
"cmd.settings_profile_import": "Uvezi profil postavki",
"cmd.settings_profile_list": "Profili postavki",
"cmd.settings_profile_rename": "Preimenuj profil postavki",
"cmd.settings_profile_save": "Sačuvaj profil postavki",
"cmd.sheet_convert": "Pretvori u lim",
"cmd.sheet_export_bend_table": "Izvezi tabelu savijanja",
"cmd.sheet_export_dxf": "Izvezi razvijeni oblik kao DXF",
@@ -1073,6 +1101,16 @@
"cmd.sheet_refold": "Ponovo presavij",
"cmd.sheet_rules": "Popis pravila za lim",
"cmd.sheet_unfold": "Razvij",
"cmd.sketch.construction_line": "Pomoćna prava",
"cmd.sketch.construction_line.angle": "Pomoćna prava pod uglom",
"cmd.sketch.construction_line.bisector": "Simetrala ugla",
"cmd.sketch.construction_line.horizontal": "Horizontalna pomoćna prava",
"cmd.sketch.construction_line.parallel": "Paralelna pomoćna prava",
"cmd.sketch.construction_line.perpendicular": "Okomita pomoćna prava",
"cmd.sketch.construction_line.tangent_at": "Tangenta u tački krive",
"cmd.sketch.construction_line.tangent_external": "Tangenta kroz vanjsku tačku",
"cmd.sketch.construction_line.tangent_two": "Zajednička tangenta",
"cmd.sketch.construction_line.vertical": "Vertikalna pomoćna prava",
"cmd.sketch_arc3d": "3D luk",
"cmd.sketch_arc_center_point": "Luk iz centra",
"cmd.sketch_arc_tangent": "Tangentni luk",
@@ -1105,6 +1143,8 @@
"cmd.sketch_drawing_bounds": "Veličina crteža",
"cmd.sketch_edit": "Uredi skicu",
"cmd.sketch_edit_text": "Uredi tekst",
"cmd.sketch_equation_curve": "Kriva iz jednačine",
"cmd.sketch_equation_curve_edit": "Uredi krivu iz jednačine",
"cmd.sketch_export_dxf": "Sačuvaj kao DXF",
"cmd.sketch_finish_auto_constrain": "Završi s automatskim ograničenjima",
"cmd.sketch_fit_curves_to_section": "Uklopi krive u presjek mreže",
@@ -1201,6 +1241,7 @@
"cmd.view.render_browser": "Stablo renderovanja",
"cmd.view.render_dock": "Premjesti panel renderovanja",
"cmd.view.render_focus": "Prikaz fokusa renderovanja",
"cmd.view.status_items": "Stavke statusa prozora prikaza",
"cmd.view_ambient_occlusion": "Ambijentalna okluzija",
"cmd.view_angle_readout": "Uglovi prikaza",
"cmd.view_apply": "Vrati imenovani prikaz",
@@ -1222,6 +1263,7 @@
"cmd.view_normal_to": "Okomito na izbor",
"cmd.view_previous_tab": "Prethodna kartica",
"cmd.view_rename": "Preimenuj imenovani prikaz",
"cmd.view_render_frame": "Pomoćne linije kadra renderovanja",
"cmd.view_right": "Pogled zdesna",
"cmd.view_save": "Novi imenovani prikaz",
"cmd.view_shots_strip": "Traka kadrova",
@@ -1232,10 +1274,14 @@
"color.copy": "Kliknite da kopirate vrijednosti boje",
"color.edit": "Kliknite da uredite boju",
"color.gamma": "Prikaz vrijednosti boje u gama prostoru 0-255",
"color.hex": "Hex",
"color.hex_help": "Unesite #rrggbb ili #rrggbbaa; šest cifara zadržava neprozirnost",
"color.hex_hint": "#rrggbb",
"color.hue": "Nijansa",
"color.linear": "Prikaz vrijednosti boje u linearnom prostoru 0-1",
"color.saturation_value": "Zasićenost i vrijednost",
"color.selected": "Izabrana boja",
"config.column_filter_empty": "Nema odgovarajućih kolona",
"contact.components_count": "Komponente: {count}",
"contact.enabled_label": "omogućeno",
"coupling.gear_1": "Zupčanik 1",
@@ -1350,8 +1396,10 @@
"help.material.assign": "Određuje od čega su izabrana tijela napravljena, npr. čelik, aluminij ili ABS. Koristite ga da masa i težina odgovaraju stvarnom dijelu.",
"help.mit": "MIT licenca",
"help.notice": "NOTICE",
"help.occurrence.move": "Pomjera dio sklopa samo duž stepeni slobode koje dozvoljavaju njegovi spojevi. Izaberite lice dijela, a zatim prevucite dostupnu strelicu ili luk.",
"help.parameters.change": "Otvara tabelu imenovanih vrijednosti i izraza koji upravljaju kotama dizajna. Koristite je da promijenite mjeru na jednom mjestu, a sve operacije koje je koriste je slijede.",
"help.pointcloud.insert": "Umetnite PLY, XYZ ili PTS skeniranje kao oblak tačaka uz model. Koristite ga kao referencu pri izradi modela iz izmjerenih podataka.",
"help.sketch.equation_curve": "Crta krivu iz formula: x(t) i y(t) ili y = f(x), u zadanom rasponu. Formule mogu koristiti parametre i kriva ih prati: koristite je za sinusoidu, spiralu ili evolventu zupca zupčanika.",
"help.solid.align": "Pomjera izabrana tijela tako da se tačka, lice ili ravan na njima poklopi s tačkom, licem ili ravni negdje drugdje. Koristite ga da postavite dio uz drugi bez mjerenja odmaka.",
"help.solid.chamfer": "Odsijeca izabrane ivice ravnim skošenjem zadate udaljenosti. Koristite ga da ublažite oštre ivice ili olakšate uvođenje zatika ili vijka.",
"help.solid.combine": "Spaja tijela, oduzima ih od ciljnog tijela ili zadržava samo zajedničku zapreminu, a može zadržati i alatna tijela. Koristite ga da spojite dijelove, da jednim oblikom odsiječete drugi ili da pronađete gdje se dva tijela preklapaju.",
@@ -1480,6 +1528,21 @@
"joint.one_component": "Ovi dijelovi su tijela jedne komponente: {bodies}. Spoj pomjera jednu komponentu u odnosu na drugu, pa svaki dio treba svoju komponentu.",
"joint.rigid_group_one_component": "Sva tijela ({count}) su u jednoj komponenti (ili u samom dizajnu): prvo koristite {command}.",
"joint.rigid_group_select_components": "Izaberite dvije ili više komponenti.",
"joint_move.blocked_hint": "Provjerite vrstu spoja (npr. Kruti), učvršćenje, granice spoja i vrijednosti koje pokreću parametri.",
"joint_move.blocked_title": "Ovaj dio se ne može pomjeriti",
"joint_move.coarse": "Korak rotacije blizu ose (°)",
"joint_move.distance": "Udaljenost od početka",
"joint_move.done": "Gotovo",
"joint_move.fine": "Korak rotacije dalje od ose (°)",
"joint_move.fixed": "Ovaj dio nema pomičnu osu spoja.",
"joint_move.help": "Pomjeri — prevucite strelicu ili prsten. Esc otkazuje trenutno povlačenje.",
"joint_move.legacy_hint": "Isključite da biste koristili prethodni panel Pomjeri.",
"joint_move.precision": "Povucite izvan isprekidane vodilje za finu rotaciju.",
"joint_move.rotation": "Rotacija od početka",
"joint_move.select": "Izaberite lice ili jedan dio sklopa, a zatim izaberite Pomjeri.",
"joint_move.settings": "Pomjeranje u sklopu",
"joint_move.step": "Korak",
"joint_move.use_handles": "Koristi ručice kretanja spojeva za Pomjeri u sklopu",
"keymap.command_id": "ID komande",
"keymap.empty": "Nema odgovarajućih komandi",
"keymap.use_anyway": "Ipak koristi {key} ovdje",
@@ -1574,6 +1637,8 @@
"nav.maya.help": "Alt+lijevo povlačenje orbitira, Alt+srednje pomjera, Alt+desno zumira; srednje povlačenje također pomjera",
"nav.openscad.help": "Povlačenje lijevim dugmetom po praznom prostoru orbitira, Shift+povlačenje lijevim bira okvirom, povlačenje geometrije skice je uređuje; povlačenje desnim ili srednjim dugmetom pomjera, Shift+desno ili Shift+srednje zumira",
"nav.perspective.sketch": "Uređivanje skice koristi ortografski prikaz. Završite skicu da prebacite na perspektivu.",
"nav.right_drag_orbits.help": "Isključeno: povlačenje desnim dugmetom ne dira kameru, a desno dugme samo otvara kontekstni meni. Izbor mapiranja miša SolidWorks to isključuje.",
"nav.right_drag_orbits.label": "Povlačenje desnim dugmetom orbitira",
"nav.solidworks.help": "Povlačenje srednjim dugmetom orbitira, Ctrl+srednje pomjera, Shift+srednje zumira, povlačenje desnim orbitira",
"nav.tinkercad.help": "Povlačenje desnim dugmetom orbitira, povlačenje srednjim ili Shift+desnim pomjera",
"nav.touchpad.help": "Držite Shift i pomjerajte pokazivač za pomjeranje prikaza; držite Alt/Option i pomjerajte ga za orbitiranje. Dugme miša nije potrebno. Vertikalno skrolovanje zumira.",
@@ -1595,6 +1660,9 @@
"navbar.custom.customise": "Prilagodi navigacijsku traku…",
"navbar.custom.design": "Dizajn",
"navbar.custom.duplicate": "Ovo mjesto je već na traci.",
"navbar.custom.edge": "Rub",
"navbar.custom.edge_bottom": "Dolje",
"navbar.custom.edge_top": "Gore",
"navbar.custom.fade": "Izblijedi",
"navbar.custom.full": "Uklonite jedno mjesto da biste dodali drugo.",
"navbar.custom.hidden_design": "Skriveno u Dizajnu",
@@ -1701,6 +1769,7 @@
"parts.dimension.thickness": "Debljina",
"parts.dimension.width": "Širina",
"parts.family.bearing": "Kuglični ležaj s dubokim žlijebom (omotač)",
"parts.family.button_head_cap_screw": "Vijak s poluokruglom glavom i imbusom",
"parts.family.dowel_pin": "Cilindrični zatik",
"parts.family.hex_bolt": "Vijak sa šestougaonom glavom",
"parts.family.hex_nut": "Šestougaona matica",
@@ -1759,6 +1828,9 @@
"prefs.bottom_centre": "Dolje u sredini",
"prefs.bottom_right": "Dolje desno",
"prefs.browser": "Stablo modela",
"prefs.browser_reveal_on_hover": "Prikaži pri prelasku mišem",
"prefs.browser_show_note": "Prikazano drži stablo modela na ekranu. Prikaži pri prelasku mišem drži ga skrivenim dok pokazivač ne pređe preko njegovog mjesta ili tankog jezička na njegovom lijevom rubu, a ostaje otvoreno dok je pokazivač u njemu ili dok je otvoren neki meni iz njega.",
"prefs.browser_shown": "Prikazano",
"prefs.built_in": "Ugrađeno",
"prefs.button_left": "Povlačenje lijevim dugmetom",
"prefs.button_middle": "Povlačenje srednjim dugmetom",
@@ -1829,6 +1901,8 @@
"prefs.layout_note": "Kompaktno pričvršćuje panele uz ivice prozora. Prozirnost stabla modela dostupna je u opciji Plutajuće. Stranu Asistenta promijenite na stranici Asistent.",
"prefs.left": "Lijevo",
"prefs.left_click": "Lijevi klik",
"prefs.line_drag_draws_one": "Pritisak i povlačenje crta jednu liniju",
"prefs.line_drag_draws_one_note": "U alatu Linija pritisak, povlačenje i puštanje crta jednu liniju od mjesta pritiska do mjesta puštanja i tu se završava. Klikovi i dalje crtaju lanac. Isključeno: povlačenje postavlja tačku tamo gdje se pusti, kao i klik.",
"prefs.linked_designs": "Povezani dizajni",
"prefs.live_input": "Ulaz uživo",
"prefs.live_preview": "Pregled uživo",
@@ -1861,14 +1935,36 @@
"prefs.origin_plane_names": "Nazivi ravni ishodišta",
"prefs.origin_plane_names_note": "Nazivi prikazani u stablu modela, dijalozima i listama. {top} je XY, {front} je XZ, a {right} je YZ, sa Z prema gore. Komande, skripte i sačuvani dizajni zadržavaju XY, XZ i YZ.",
"prefs.overall_speed": "Ukupna brzina",
"prefs.perspective_fov": "Vidno polje",
"prefs.placement": "Postavljanje",
"prefs.prefer_free_sketch_points": "Daj prednost pokretnim tačkama skice kada se tačke preklapaju",
"prefs.preview_choices": "Pregled vaših izbora",
"prefs.profile_active": "Aktivni profil",
"prefs.profile_applied": "Profil je primijenjen.",
"prefs.profile_changed": "Postavke su promijenjene otkako je profil sačuvan. Sačuvaj ih upisuje u profil.",
"prefs.profile_deleted": "Profil je izbrisan.",
"prefs.profile_export": "Izvezi…",
"prefs.profile_exported": "Profil je izvezen.",
"prefs.profile_imported": "Profil je uvezen. Izaberite ga pod Aktivni profil da se prebacite na njega.",
"prefs.profile_name_hint": "Naziv profila, npr. Laptop",
"prefs.profile_rename": "Preimenuj",
"prefs.profile_renamed": "Profil je preimenovan.",
"prefs.profile_save": "Sačuvaj",
"prefs.profile_saved": "Trenutne postavke su sačuvane u profil.",
"prefs.profile_skipped": "Profil je primijenjen; postavke koje su zadržale trenutnu vrijednost: {n} (pogledajte zapisnik).",
"prefs.profiles": "Profili postavki",
"prefs.profiles_note": "Prečice, traka s alatima, navigacija, radijalni meni i postavke interfejsa čuvaju se zajedno pod jednim nazivom i mijenjaju odjednom.",
"prefs.project_options_dialog": "Dijalog opcija za projektovanje",
"prefs.project_options_dialog_note": "Uključeno: prije projektovanja izaberite Geometrija ili Tijela i Veza projekcije. Isključeno: zadržava se prethodni tok rada s direktnim izborom.",
"prefs.quality_default": "podrazumijevano",
"prefs.quality_fastest": "najbrže",
"prefs.quality_slowest": "najsporije",
"prefs.quality_smoother": "glađe",
"prefs.render_previous_geometry_budget": "Koristi prethodni budžet geometrije za pregled renderovanja",
"prefs.render_previous_geometry_budget_help": "Vraća prethodno fiksno ograničenje geometrije (512 MiB na 64-bitnim desktop računarima, 128 MiB drugdje) umjesto budžeta prema uređaju.",
"prefs.reports_saved": "Sačuvano: {n}",
"prefs.ribbon_reveal": "Prikaži rezultate pretrage na traci",
"prefs.ribbon_reveal_note": "Zadržavanje pokazivača iznad rezultata u Pretraži komande pokazuje gdje se komanda nalazi na traci: njenu karticu, njeno dugme ili njen red u padajućem meniju panela. Komanda pokrenuta iz pretrage tamo trepće, a pokrenuta komanda iz padajućeg menija označava svoj panel.",
"prefs.right_click": "Desni klik",
"prefs.saving": "Automatsko čuvanje i oporavak",
"prefs.scale_note": "Također Ctrl + / Ctrl − u prozoru. Dugmad su 28 px pri 100%.",
@@ -1882,6 +1978,10 @@
"prefs.shift_add_ctrl_toggle": "Shift samo dodaje; Ctrl / Cmd uključuje i isključuje",
"prefs.shift_add_note": "Uključeno: Shift dodaje, Ctrl / Cmd uključuje i isključuje. Isključeno (podrazumijevano): oba uključuju i isključuju.",
"prefs.shortcuts": "Prečice",
"prefs.single_surface_analysis": "Koristi samo jednu analizu površi",
"prefs.single_surface_analysis_help": "Kada je isključeno, sjenčenje površi i Kontinuitet mogu ostati uključeni zajedno. Uključivanje zadržava posljednju pokrenutu ili promijenjenu analizu.",
"prefs.sketch_align_points": "Poravnaj s drugim tačkama skice tokom crtanja",
"prefs.sketch_align_points_note": "Tokom crtanja tačka se istovremeno poravnava vodoravno s jednom tačkom skice i okomito s drugom, uz tačkastu pomoćnu liniju, a klik zadržava oba poravnanja. Isključeno: samo s prethodnom tačkom, po jedna osa.",
"prefs.sketch_conflict_colour": "Geometrija u sukobu u boji sukoba",
"prefs.sketch_conflict_colour_note": "Dok su ograničenja skice u sukobu, krive i tačke koje drži ograničenje koje ne uspijeva crtaju se također u boji sukoba, ne samo njegov simbol ili kota. Isključeno: zadržavaju uobičajene boje.",
"prefs.sketch_exit_view": "Kada se skica završi",
@@ -1889,6 +1989,8 @@
"prefs.sketch_exit_view.previous": "Vrati se na prethodni prikaz",
"prefs.sketch_exit_view.unless_rotated": "Vrati se osim ako je rotirano",
"prefs.sketch_exit_view_note": "Kuda prikaz ide nakon Završi skicu, Otkaži ili dvostrukog Esc.",
"prefs.sketch_recent_snap": "Automatski privlači na nedavne centre i središnje tačke",
"prefs.sketch_recent_snap_note": "Tokom crtanja pokazivač se privlači tamo gdje se sijeku pomoćne linije dvaju posljednjih centara krugova ili središnjih tačaka pravih ivica. Isključeno: te pomoćne linije služe samo za prikaz i pokazivač se ne pomjera.",
"prefs.sketch_selection": "Skica i izbor",
"prefs.sketch_selection_heading": "Skica i izbor",
"prefs.sketch_selection_note": "Kako se skice privlače i kako klikovi biraju.",
@@ -1933,7 +2035,14 @@
"prefs.toast_place": "Obavještenja",
"prefs.toggle_item": "Dodaj stavku ili je ponovo ukloni",
"prefs.toolbar": "Traka s alatima",
"prefs.toolbar_tabs": "Kartice trake s alatima",
"prefs.top": "Gore",
"prefs.trackpad_zoom_modifier": "Zumiranje skrolovanjem s dva prsta uz držanje tipke",
"prefs.trackpad_zoom_modifier.alt": "⌥ / Alt",
"prefs.trackpad_zoom_modifier.cmd": "⌘",
"prefs.trackpad_zoom_modifier.ctrl": "Ctrl",
"prefs.trackpad_zoom_modifier.help": "Držite samo ovu tipku da zumirate prema pokazivaču vertikalnim skrolovanjem. Isključeno zadržava postojeće ponašanje skrolovanja.",
"prefs.trackpad_zoom_modifier.off": "Isključeno",
"prefs.translucent": "Prozirno",
"prefs.under_browser": "Ispod stabla modela",
"prefs.under_cursor": "Ispod pokazivača",
@@ -1943,9 +2052,14 @@
"prefs.view_confirm_corner": "U redu i Otkaži u uglu prikaza",
"prefs.view_confirm_corner_note": "Dok je otvoren dijalog ili skica, kvačica i krstić gore desno u prikazu rade isto što i dugmad U redu i Otkaži u dijalogu, odnosno završavaju i otkazuju skicu. Navigator prikaza pomjera se ispod njih.",
"prefs.viewport": "Prozor prikaza",
"prefs.viewport_background": "Pozadina",
"prefs.viewport_background_colour": "Boja",
"prefs.viewport_background_theme": "Gradijent teme",
"prefs.wheel": "Točkić",
"prefs.wheel_trackpad": "Točkić i trackpad",
"prefs.workspace": "Radni prostor",
"prefs.zoom_stop_at_model": "Zaustavi zumiranje na modelu",
"prefs.zoom_stop_at_model_tip": "3D miš i aplikacija uređaja zumiraju prema površini u sredini prikaza; zumiranje povlačenjem drži tačku na kojoj je povlačenje počelo. Isključeno: zumiranje može proći kroz model. Točkić i štipanje zasebno koriste Zumiranje prema pokazivaču",
"prefs.zoom_toward_cursor": "Zumiranje prema pokazivaču",
"properties.title": "Svojstva: {name}",
"recovery.days_ago": "prije {count} dana",
@@ -2034,6 +2148,7 @@
"render.appearance_editor.weight": "Težina",
"render.appearance_physics_separate": "Vizuelni izgled ne dodjeljuje gustinu, toplotne podatke niti druga inženjerska svojstva.",
"render.appearances": "Izgledi",
"render.assign_help": "Kliknite za primjenu na izbor; prevucite za pregled i ispustite ili kliknite kada ništa nije izabrano da bojite.",
"render.availability_native": "Izvorni sastav; pregledajte prije primjene",
"render.availability_projection": "Podržana projekcija; pogledajte opseg i izostavke",
"render.availability_reference": "Referentni podaci; nije automatska dodjela",
@@ -2072,6 +2187,7 @@
"render.bloom_threshold": "Prag linearnih svijetlih dijelova",
"render.browse_capabilities": "Pregledaj kompletan katalog mogućnosti",
"render.browse_environments": "Pregledaj izvorna HDR okruženja",
"render.browse_looks": "Pregledaj…",
"render.browse_native_scenes": "Pregledaj izvorne studije",
"render.browse_physical": "Pregledaj fizičke reference",
"render.browse_quality": "Pregledaj specifikacije kvaliteta",
@@ -2095,6 +2211,82 @@
"render.check_opaque": "Prozirnost: samo neprozirne površi; alfa pozadine je podržana.",
"render.check_sorted_alpha": "Prozirnost: aproksimacija sortirane alfe.",
"render.check_transmission": "Prozirnost: fizička transmisija.",
"render.children.absolute_floor": "Apsolutni donji prag",
"render.children.adaptive": "Adaptivno",
"render.children.add_look_reason": "Dodajte izgled da biste uredili njegovo uključivanje i jačinu.",
"render.children.all_shots": "Svi kadrovi",
"render.children.bloom": "Sjaj",
"render.children.check": "Provjera",
"render.children.check_now": "Provjeri sada",
"render.children.chromatic": "Hromatski pomak",
"render.children.compact": "Kompaktno",
"render.children.contrast": "Kontrast",
"render.children.copy_image": "Kopiraj",
"render.children.copy_job": "Kopiraj JSON posla",
"render.children.copy_request": "Kopiraj JSON zahtjeva",
"render.children.coverage_error": "Greška pokrivenosti",
"render.children.cpu": "CPU praćenje zraka",
"render.children.denoise": "Smanji šum na završenoj slici",
"render.children.depth": "Dubina putanje",
"render.children.distortion": "Izobličenje",
"render.children.edge_samples": "Uzorci ivica",
"render.children.effects_banner": "Ovi efekti zahtijevaju GPU praćenje putanja. Otvaranje ovoga nikad ne mijenja metodu.",
"render.children.enable_adaptive": "Omogućite nezavisne probne uzorke da biste uredili adaptivna ograničenja.",
"render.children.enable_bloom": "Omogućite sjaj da biste uredili njegovu jačinu, prag i poluprečnik.",
"render.children.finishing": "Završna obrada",
"render.children.flare": "Odsjaj",
"render.children.fresnel": "Fresnelovi slojevi",
"render.children.ghosts": "Duhovi prstenova",
"render.children.glass": "Transport kroz staklo",
"render.children.go_to": "Idi na {editor}",
"render.children.grain": "Zrno",
"render.children.halo": "Oreol",
"render.children.hdr": "HDR",
"render.children.keep_master": "Zadrži sirovi linearni master",
"render.children.last_result": "Posljednje: {number} · {width} × {height} · {phase}",
"render.children.lens_effects": "Efekti objektiva",
"render.children.look_summary": "{tone} · izgledi: {count}",
"render.children.looks": "Kreativni izgledi",
"render.children.memory": "Memorija",
"render.children.method": "Metoda",
"render.children.minimum": "Minimum",
"render.children.needs_cpu": "Potrebno je CPU praćenje zraka. Otvaranje ovoga nikad ne mijenja metodu.",
"render.children.nested": "Potvrđeni ugniježđeni dielektrici",
"render.children.not_checked": "Nije provjereno",
"render.children.path": "Praćenje putanja",
"render.children.pilots": "Probni uzorci",
"render.children.preview": "Podaci pregleda",
"render.children.progressive_reason": "Izaberite Progresivno da biste uredili broj uzoraka i sjeme.",
"render.children.radius": "Poluprečnik",
"render.children.reflect_depth": "Dubina refleksije",
"render.children.reflect_samples": "Uzorci refleksije",
"render.children.regrade": "Ponovna gradacija",
"render.children.relative_error": "Relativna greška",
"render.children.render": "Renderovanje",
"render.children.render_shot": "Renderuj kadar",
"render.children.renderer": "Renderer",
"render.children.renderers": "Rendereri",
"render.children.request": "Ovaj zahtjev",
"render.children.reset_finishing": "Resetuj završnu obradu",
"render.children.review_quality": "Pregledaj specifikaciju kvaliteta…",
"render.children.rgb_gain": "RGB pojačanje",
"render.children.samples": "Uzorci",
"render.children.sampling": "Uzorkovanje",
"render.children.saturation": "Zasićenost",
"render.children.scene_summary": "Tijela: {bodies} · trouglovi: {triangles}",
"render.children.seed": "Sjeme",
"render.children.sharpening": "Izoštravanje",
"render.children.single_image": "Jedna slika",
"render.children.soft_focus": "Meki fokus",
"render.children.streak": "Pruga",
"render.children.strength": "Jačina",
"render.children.studio": "Studio",
"render.children.threshold": "Prag",
"render.children.tone": "Ton",
"render.children.under_hood": "Ispod haube",
"render.children.vignette": "Vinjeta",
"render.children.workstation": "Radna stanica",
"render.choose_look": "Prvo izaberite izgled u Izgledima",
"render.chromatic_offset": "Hromatski pomak ivica",
"render.clear_stage": "Ukloni sačuvanu scenu",
"render.copy_request": "Kopiraj JSON",
@@ -2346,8 +2538,33 @@
"render.flare_strength": "Jačina odsjaja svijetlih dijelova",
"render.flare_threshold": "Linearni prag odsjaja scene",
"render.fold_browser": "Skupi stablo modela",
"render.frame_aspect": "Omjer",
"render.frame_centre_mark": "Oznaka centra",
"render.frame_copy_limit": "Nema slobodnog naziva za duplikat kadra",
"render.frame_copy_name": "{name} kopija {number}",
"render.frame_custom": "Prilagođeno",
"render.frame_distance_unit": " × veličina",
"render.frame_duplicate": "Dupliciraj",
"render.frame_exposure": "Ekspozicija",
"render.frame_fov": "Vidno polje",
"render.frame_guides": "Pomoćne linije",
"render.frame_invalid_aspect": "Neispravan predložak omjera",
"render.frame_lens": "FOV {fov}° · ≈ {mm} mm",
"render.frame_name": "Naziv",
"render.frame_output_size": "Veličina izlaza",
"render.frame_photo": "3:2 · Fotografija",
"render.frame_portrait": "4:5 · Portret",
"render.frame_presets": "Predlošci kadra",
"render.frame_presets_pending": "Stiže s uređivačem kadrova",
"render.frame_projection": "Projekcija",
"render.frame_render_shot": "Renderuj ovaj kadar",
"render.frame_rule_thirds": "Pravilo trećina",
"render.frame_safe_area": "Sigurna zona",
"render.frame_shot_title": "Kadar · {name}",
"render.frame_square": "1:1 · Kvadrat",
"render.frame_tall": "9:16 · Vertikalno",
"render.frame_thirds": "Trećine",
"render.frame_wide": "16:9 · Široki ekran",
"render.gpu_depth": "Maksimalna dubina putanje",
"render.gpu_options_help": "Uzorci, dubina, sjeme i ekspozicija čuvaju se s ovom postavkom. Čuva se samo aktivna metoda slike.",
"render.gpu_path_failed": "GPU praćenje putanja nije dostupno",
@@ -2375,6 +2592,7 @@
"render.heading_results": "REZULTATI",
"render.heading_shots": "KADROVI",
"render.hide_shots_label": "Sakrij traku kadrova",
"render.hover_look": "{object} · {look} · kliknite za izbor",
"render.image_advanced": "Napredne GPU kontrole",
"render.image_cancelled": "Renderovanje je otkazano",
"render.image_cancelling": "Otkazivanje",
@@ -2521,17 +2739,95 @@
"render.library_uniform_ack": "Koristi jednoličnu aproksimaciju bez prostornih ili naprednih efekata",
"render.library_usable": "Izvršne projekcije",
"render.library_users": "Korisnici",
"render.light_aim": "Usmjeri na",
"render.light_anchor_pending": "Promjena koordinatnog sistema svjetla još nije podržana.",
"render.light_azimuth": "Azimut",
"render.light_backend_limit": "Izaberite CPU praćenje zraka ili izričit GPU studio da biste uređivali svjetla. Svjetla starog GPU studija ostaju samo za čitanje.",
"render.light_behaviour": "PONAŠANJE",
"render.light_default_fill": "Popunjavajuće",
"render.light_default_key": "Glavno",
"render.light_default_number": "Svjetlo {number}",
"render.light_default_rim": "Rubno",
"render.light_delete": "Izbriši",
"render.light_distance": "Udaljenost",
"render.light_duplicate": "Dupliciraj",
"render.light_elevation": "Elevacija",
"render.light_gpu_punctual": "Tačkasta svjetla i reflektori dostupni su uz CPU praćenje zraka.",
"render.light_hard_shadow": "Ovo svjetlo ima oštre sjene; mekoća emitera nije dostupna.",
"render.light_intensity": "Intenzitet",
"render.light_missing": "Ovo svjetlo više ne postoji. Izaberite svjetlo u stablu modela.",
"render.light_place_highlight": "Postavi prema odsjaju",
"render.light_place_pending": "Postavljanje prema odsjaju zahtijeva izbor svjetla u prozoru prikaza i još nije podržano.",
"render.light_position": "POLOŽAJ",
"render.light_preview_help": "Prikaz uživo je bez sjena; površinska svjetla koriste aproksimaciju uzorkom iz centra. Renderovanje koristi potpuni model svjetla.",
"render.light_product_centre": "Centar proizvoda",
"render.light_size": "Veličina",
"render.light_softness": "Mekoća",
"render.light_temperature": "Temperatura boje",
"render.light_temperature_help": "Približna nijansa crnog tijela; čuva se kao linearni RGB.",
"render.light_type": "Vrsta",
"render.light_type_area": "Površinsko",
"render.light_type_point": "Tačkasto",
"render.light_type_spot": "Reflektor",
"render.light_type_sun": "Sunce",
"render.light_view_only": "Samo ovo svjetlo i isključivanje svjetla utiču na ovaj prikaz i njegova renderovanja; nikad se ne čuvaju u dizajnu.",
"render.light_world_origin": "Ishodište svijeta",
"render.lighting_aim_point": "Tačka usmjeravanja",
"render.lighting_apply": "Primijeni postavku",
"render.lighting_area_samples": "Uzorci površinskog svjetla",
"render.lighting_budget": "Budžet",
"render.lighting_budget_help": "Brojevi su samo za čitanje. Dodajte, duplicirajte ili izbrišite svjetla da ih promijenite; metoda određuje ograničenja.",
"render.lighting_colour": "Boja",
"render.lighting_consent": "Zamijeni usmjerena svjetla ovom postavkom",
"render.lighting_custom": "Prilagođena svjetla",
"render.lighting_custom_help": "Izbor opcije Prilagođeno pretvara postavku u svjetla koja se mogu uređivati, svako u svom redu u stablu.",
"render.lighting_direction": "Smjer X Y Z",
"render.lighting_direction_help": "Ili upišite smjer prema svjetlu (X Y Z).",
"render.lighting_distance_unit": " × veličina",
"render.lighting_edge_u": "Vektor stranice U",
"render.lighting_edge_v": "Vektor stranice V",
"render.lighting_falloff": "Slabljenje",
"render.lighting_falloff_help": "Intenzitet se navodi na referentnoj udaljenosti.",
"render.lighting_height": "Visina V",
"render.lighting_minimum": "Minimum",
"render.lighting_mute": "Isključi ovo svjetlo",
"render.lighting_point": "Tačka",
"render.lighting_preset": "Postavka studija",
"render.lighting_preset_cpu": "Usmjerene postavke studija zahtijevaju CPU praćenje zraka. GPU osvjetljenje koristi izričita sunčeva i površinska svjetla.",
"render.lighting_preset_row": "Postavka",
"render.lighting_radiance": "Radijansa",
"render.lighting_reference": "Referenca",
"render.lighting_review_help": "Zamjenjuje popis usmjerenih svjetala. Zadržava tačkasta i površinska svjetla, okruženje, sjene, kameru i sve ostale postavke kadra.",
"render.lighting_review_title": "Pregledaj postavku osvjetljenja",
"render.lighting_samples_cpu": "Uzorci površinskog svjetla primjenjuju se na CPU praćenje zraka.",
"render.lighting_samples_need_area": "Dodajte CPU površinsko svjetlo da biste postavili uzorke površinskog svjetla.",
"render.lighting_samples_reason": "Uzorci površinskog svjetla moraju biti 1, 4, 16 ili 64.",
"render.lighting_shadow_cpu": "Prekidač sjena zahtijeva CPU praćenje zraka. GPU praćenje putanja uvijek baca sjene.",
"render.lighting_shadows": "Baci sjene",
"render.lighting_shadows_section": "Sjene i uzorkovanje",
"render.lighting_shape": "Oblik",
"render.lighting_solo": "Samo ovo svjetlo",
"render.lighting_source": "Izvor",
"render.lighting_source_section": "Izvor svjetla",
"render.lighting_spot_preserved": "Ovo tačkasto svjetlo zadržava sačuvani konus reflektora dok mu se ne promijeni vrsta.",
"render.lighting_sun_distance": "Smjer sunca ne zavisi od udaljenosti i tačke usmjeravanja.",
"render.lighting_unsupported": "nepodržano",
"render.lighting_used": "{used} od {limit}",
"render.lighting_width": "Širina U",
"render.lighting_world_position": "Svjetski X Y Z",
"render.lights_fixed_to": "Svjetla vezana za",
"render.linear_help": "Zadržava 32-bitni float RGBA master prije uklanjanja šuma, ekspozicije, mapiranja tonova, filtera i pozadine. Linearni sRGB/D65; pomnožen pokrivenošću. Dodatna memorija se izričito odobrava. Bez kompresije i dodatnih prolaza.",
"render.linear_retain": "Zadrži sirovi linearni EXR",
"render.linear_unavailable": "Izabrani završeni kadar nema zadržani EXR. Omogućite zadržavanje prije renderovanja; stariji PNG ne može vratiti sirovu radijansu.",
"render.look_add": "Dodaj izgled boje",
"render.look_applied": "Primijenjeno: {name}",
"render.look_bleach": "Po uzoru na bleach bypass",
"render.look_cool": "Hladno",
"render.look_cyanotype": "Po uzoru na cijanotipiju",
"render.look_faded": "Izblijedjeli otisak",
"render.look_material": "Materijal",
"render.look_mono": "Jednobojno",
"render.look_pasted": "Izgled je zalijepljen",
"render.look_sepia": "Sepija",
"render.look_strength": "Jačina izgleda",
"render.look_teal_orange": "Tirkizno / narandžasto",
@@ -2607,9 +2903,11 @@
"render.output_advanced": "Napredno",
"render.output_backend_ready": "Spremno",
"render.output_check": "Provjeri",
"render.output_check_failed": "Provjera · greška",
"render.output_check_help": "Pokrenite provjeru da pregledate ovaj zahtjev bez pokretanja renderovanja.",
"render.output_check_summary": "Provjera · Napomene: {count}",
"render.output_copy": "Kopiraj",
"render.output_copy_report": "Kopiraj izvještaj",
"render.output_destination": "Odredište",
"render.output_destination_help": "Odredišnu datoteku birate pri izvozu završene slike.",
"render.output_dimensions": "Veličina",
@@ -2619,6 +2917,7 @@
"render.output_fit": "Uklopi",
"render.output_format": "Format",
"render.output_format_status": "PNG je tačna završena slika za prikaz. Neobavezni GPU EXR zadržava sirovu linearnu radijansu scene u formatu FLOAT32 prije filtera prikaza. Izvoz nikad ne zamjenjuje keš pregleda ni drugi posao.",
"render.output_grading": "Gradacija",
"render.output_image": "Slika",
"render.output_largest": "Najviše {width} × {height}",
"render.output_lock_ratio": "Zaključaj omjer stranica",
@@ -2628,6 +2927,8 @@
"render.output_quality_waiting": "čeka se specifikacija kvaliteta",
"render.output_ratio_refused": "Povezana dimenzija premašuje ograničenje veličine ove metode. Prethodna veličina se zadržava; otključajte omjer ili izaberite manju vrijednost.",
"render.output_ready": "Spremno za renderovanje",
"render.output_run_check": "Pokreni provjeru",
"render.output_size_limit": "{method}: do {dimension} px po strani i {pixels} piksela. Najveća veličina koja staje: {width} × {height}.",
"render.output_size_ok": "Veličina u redu · {width} × {height} px",
"render.output_swap_orientation": "Zamijeni širinu i visinu",
"render.output_tools_inspector": "Veličinu i format uredite u inspektoru Izlaz.",
@@ -2644,6 +2945,7 @@
"render.page_output": "Izlaz",
"render.page_scene": "Scena",
"render.paint_label": "Oboji",
"render.painting_with": "Bojenje izgledom: {name}",
"render.passive_stage": "Podloga i pasivna scena",
"render.passive_stage_help": "Konačni pasivni paneli pripadaju samo renderovanim slikama. Ne dodaju CAD tijela ni masu. Postavljanje je fiksno nakon primjene; presijecanje granica proizvoda se odbija. CPU ne daje difuzno odbijeno osvjetljenje.",
"render.perspective": "Perspektivna kamera",
@@ -2665,6 +2967,7 @@
"render.pick_help": "Izaberite Tijelo, Lice ili Komponenta. Kliknite prazan prostor da očistite izbor; Shift ili Ctrl dodaje ili uključuje/isključuje. Isticanja se pojavljuju samo u živom prikazu proizvoda.",
"render.pick_label": "Izaberi",
"render.pick_up_label": "Preuzmi",
"render.pick_up_prompt": "Kliknite objekt da preuzmete njegov izgled",
"render.pick_waiting": "Izbor proizvoda još nije podržan.",
"render.post_contrast": "Kontrast",
"render.post_gain_b": "Pojačanje plave",
@@ -2704,13 +3007,17 @@
"render.radial_distortion": "Radijalno izobličenje",
"render.radial_fit": "Uklopi proizvod",
"render.radial_save": "Sačuvaj kadar",
"render.recent_looks": "Nedavni izgledi",
"render.regrade_action": "Ponovna gradacija sirovog mastera (bez uklanjanja šuma)",
"render.regrade_help": "Pravi zaseban PNG iz izabranog završenog sirovog mastera, koristeći ove kontrole prikaza. Ne prati zrake, ne mijenja zabilježenu veličinu, kameru ni svjetla i ne prepisuje EXR. Uklanjanje šuma se ne primjenjuje ponovo: sirovi masteri ne čuvaju njegove vodilje. Izvedena slika se i dalje može izvesti istim kontrolama posla.",
"render.regrade_label": "Ponovna gradacija",
"render.reload_settings": "Ponovo učitaj sačuvane postavke",
"render.remove_override": "Ukloni nadjačavanje",
"render.replace_all": "Zamijeni sve",
"render.replace_ground": "Potvrdi zamjenu postojeće scene",
"render.replace_label": "Zamijeni",
"render.replace_saved_surface": "Zamijeni postojeću sačuvanu vezu za ovaj cilj",
"render.replace_with": "Zamijeni sa",
"render.restore_camera": "Vrati sačuvanu kameru",
"render.result_actual": "100%",
"render.result_actual_help": "Jedan piksel slike po pikselu ekrana.",
@@ -2762,14 +3069,28 @@
"render.saved_surface_remove": "Ukloni sačuvanu vezu",
"render.saved_surfaces": "Sačuvane veze površina",
"render.saved_surfaces_help": "Fiksirane ugrađene mape prate izabrani primjerak u lokalnim milimetrima. Zamijenjen ili nedostajući cilj je greška, nikad automatska ponovna dodjela.",
"render.scene_all_shots": "Svi kadrovi ({count})",
"render.scene_apply": "Primijeni pregledani studio",
"render.scene_batch_reason": "Za Svi kadrovi potreban je red čekanja za renderovanje sačuvanih kadrova, koji još nije dostupan.",
"render.scene_check_now": "Provjeri sada",
"render.scene_check_passed": "Provjera uspješna · napomene: {notes}",
"render.scene_check_stale": "Provjera je zastarjela · provjerite ponovo",
"render.scene_check_unchecked": "Još nije provjereno · 0 napomena",
"render.scene_consent": "Potvrdi zamjenu osvjetljenja, okruženja, ekspozicije i scene",
"render.scene_light_summary": "{environment} · svjetla: {lights}",
"render.scene_look_summary": "Izgledi: {looks} · nadjačavanja: {overrides}",
"render.scene_open_check": "Otvori provjeru",
"render.scene_preserved_fields": "Kamera, uzorkovanje, dimenzije, optičke veze, CAD geometrija i inženjerski materijali se čuvaju.",
"render.scene_preserves_design": "Sastavite osvjetljenje i pasivnu scenu za vidljivi predmet. Geometrija, inženjerski materijali i kamera ostaju odvojeni.",
"render.scene_ready": "Spremno za renderovanje",
"render.scene_reminder": "Scena čuva dizajn. Geometrija, inženjerska svojstva i CAD nikad se ne mijenjaju iz Renderovanja.",
"render.scene_reminders": "Podsjetnici",
"render.scene_renderer_ready": "{renderer}: spremno",
"render.scene_replaces": "Zamjenjuje",
"render.scene_review": "Razriješi i pregledaj",
"render.scene_review_help": "Pregledajte kompletnu izvornu kompoziciju prije primjene. Nevezane napredne SCENE specifikacije se ne zamjenjuju.",
"render.scene_scope_details": "Opseg kompozicije",
"render.scene_stages": "Faze",
"render.search_appearances": "Pretraži {count} izgleda",
"render.setup_legacy_environment": "Ova starija postavka koristi naslijeđenu rotaciju ili intenzitet okruženja. Te vrijednosti se zadržavaju; izričito ih pretvorite prije čuvanja punog posla slike.",
"render.setup_name": "Naziv postavke",
@@ -2782,7 +3103,22 @@
"render.shell_tab_camera": "KAMERA RENDERA",
"render.shell_tab_lighting": "OSVJETLJENJE",
"render.shell_tab_scene": "SCENA RENDERA",
"render.shot_aperture": "Otvor blende",
"render.shot_distance": "Udaljenost",
"render.shot_dof": "Dubinska oštrina",
"render.shot_duplicate": "Dupliciraj sačuvani kadar",
"render.shot_edit_output": "Uredi u Izlazu",
"render.shot_exposure_reason": "Ekspozicija zahtijeva CPU praćenje zraka ili GPU praćenje putanja.",
"render.shot_exposure_section": "Ekspozicija",
"render.shot_focus_distance": "Udaljenost fokusa",
"render.shot_fov_reason": "Vidno polje zahtijeva perspektivnu projekciju.",
"render.shot_frame_subject": "Uokviri predmet",
"render.shot_invalid_camera": "Vrijednosti kamere moraju biti konačne i unutar raspona.",
"render.shot_lens": "Objektiv",
"render.shot_lens_enable_reason": "Omogućite dubinsku oštrinu da biste uredili otvor blende i udaljenost fokusa.",
"render.shot_lens_gpu_reason": "Dubinska oštrina zahtijeva GPU praćenje putanja.",
"render.shot_lens_perspective_reason": "Dubinska oštrina zahtijeva perspektivnu projekciju.",
"render.shot_look_selection": "Usmjeri na izbor",
"render.shot_manager": "Sačuvani kadrovi",
"render.shot_new_name": "Naziv novog kadra",
"render.shot_remove": "Ukloni sačuvani kadar",
@@ -2790,6 +3126,9 @@
"render.shot_remove_title": "Ukloniti sačuvani kadar?",
"render.shot_rename": "Preimenuj sačuvani kadar",
"render.shot_saved_only": "Prvo sačuvajte trenutni nacrt. Dupliciranje i preimenovanje čuvaju tačne sačuvane opcije i reference na resurse.",
"render.shot_selection_reason": "Izaberite tijelo ili lice prema kojem treba usmjeriti kameru.",
"render.shot_size": "Veličina",
"render.shot_target": "Cilj",
"render.shots_camera_changed": "Kamera je promijenjena od čuvanja ovog kadra",
"render.shots_name_help": "Unesite jedinstven naziv za trenutni kadar.",
"render.shots_no_result": "Još nema renderovanja",
@@ -3052,6 +3391,7 @@
"select an axis": "izaberite osu",
"select an axis, a straight or circular edge, or a cylinder, cone or torus face first": "prvo izaberite osu, pravu ili kružnu ivicu, ili lice cilindra, konusa ili torusa",
"select bodies first": "prvo izaberite tijela",
"select components first": "prvo izaberite komponente",
"select corner points, or the two lines of one corner": "izaberite tačke uglova ili dvije linije jednog ugla",
"select one corner point, or the two lines of one corner": "izaberite jednu tačku ugla ili dvije linije jednog ugla",
"select sheet edges first": "prvo izaberite ivice lima",
@@ -3070,6 +3410,7 @@
"settings.double_click_components": "Dvaput kliknite komponentu da je aktivirate ili da uredite povezanu komponentu na mjestu",
"settings.frame_rate_details_note": "Dodaje graf vremena posljednjih kadrova s brojem iscrtanih trouglova, histogram vremena kadrova i šta je GPU nacrtao. Kliknite broj kadrova u sekundi u prikazu da ih prikažete ili sakrijete.",
"settings.frame_rate_note": "Prikazuje broj kadrova u sekundi u donjem desnom uglu prikaza.",
"settings.insert_lists_open_designs": "Umetni dizajn prvo navodi dizajne otvorene na drugim karticama",
"settings.measure_axis_distances": "Prikaži udaljenosti X/Y/Z",
"settings.measure_axis_distances_help": "Prikazuj komponente udaljenosti po svjetskim osama uz ukupnu udaljenost dok je Mjerenje otvoreno.",
"settings.msaa_applies_on_restart": "Uglađivanje ivica primjenjuje se pri sljedećem pokretanju SolidCrafta",
@@ -3094,6 +3435,10 @@
"shortcut.unpin": "Otkači",
"sketch is missing": "skica nedostaje",
"sketch.degrees_of_freedom": "Stepeni slobode: {count}",
"sketch.dimension_added_driven": "Skica već određuje tu kotu, pa je dodana kao zavisna (referentna) kota",
"sketch.dimension_applied": "Kota je primijenjena",
"sketch.dimension_applied_defined": "Kota je primijenjena; parametar `{name}` je definisan",
"sketch.dimension_applied_renamed": "Kota je primijenjena; parametar je nazvan `{name}`",
"sketch.dof_left": "Preostali stepeni slobode: {count}",
"sketch.dof_left_one": "Preostali stepeni slobode: {count}",
"sketch.draw_curves": "Crtaj kao {linetype}",
@@ -3128,6 +3473,8 @@
"sketch_text.use_font_file": "Koristi datoteku fonta {path}",
"solid": "puno",
"status.editing": "Uređivanje: {name}",
"status.navigation": "Mapiranje miša: {mapping}",
"status.navigation_tip": "Kako miš pomjera prikaz. Kliknite da izaberete drugo mapiranje",
"status.under_constrained": "Nedovoljno ograničeno (stepeni slobode: {count})",
"status.under_constrained_one": "Nedovoljno ograničeno ({count} stepen slobode)",
"status.units_tip": "Jedinice dizajna. Kliknite da ih promijenite",
@@ -3161,8 +3508,10 @@
"timeline.delete_folders_tip": "Zadrži njihove operacije i ugniježđene foldere u vremenskoj traci",
"timeline.delete_folders_with_features_tip": "Izbriši foldere sa svim operacijama u njima i njihove ugniježđene foldere",
"timeline.delete_many": "Izbriši izabrane operacije: {count}",
"timeline.edited_rolled_back": "Operacija {name} je promijenjena, ali je iza oznake vraćanja, pa se ne gradi: pomjerite oznaku iza nje da vidite rezultat",
"timeline.feature_error": "Greška: {message}",
"timeline.feature_hint": "Dvaput kliknite za uređivanje · povucite za promjenu redoslijeda · desni klik za više",
"timeline.feature_rolled_back": "Vraćeno: iza oznake vraćanja, pa se ne gradi",
"timeline.feature_warning": "Upozorenje: {message}",
"timeline.group": "Novi folder operacija",
"timeline.move_many": "Premjesti stavke vremenske trake",
@@ -3244,6 +3593,10 @@
"ui.3d_mouse_offer": "Kalibracija 3D miša ispravlja zamijenjene ili obrnute ose i podešava njegovu brzinu i osjećaj.",
"ui.3d_mouse_offer_never": "Ne prikazuj više",
"ui.3d_mouse_offer_swap": "Prebaci na Hidraw (direktni drajver)",
"ui.3d_mouse_orbit": "Orbitiranje",
"ui.3d_mouse_orbit_classic": "Klasično",
"ui.3d_mouse_orbit_tip": "Prema modelu: 3D miš okreće prikaz oko dijela modela koji je u sredini prikaza kada okretanje počne, označenog blijedom kuglom. Klasično: oko centra prikaza",
"ui.3d_mouse_orbit_traced": "Prema modelu",
"ui.3d_mouse_reading": "Očitanje",
"ui.3d_mouse_reset_axes": "Resetuj dodjelu osa",
"ui.3d_mouse_reset_view": "Resetuj prikaz",
@@ -3630,6 +3983,7 @@
"ui.constant": "Konstantno",
"ui.constraints_conflict": "Ograničenja su u sukobu",
"ui.construction": "Pomoćna",
"ui.construction.ribbon_label": "Pomoćne",
"ui.context_menu": "Kontekstni meni",
"ui.continuity_g0": "G0 pregib",
"ui.continuity_g1": "G1 tangentno",
@@ -3670,6 +4024,7 @@
"ui.design_properties.part_number": "Broj dijela",
"ui.design_properties.project": "Projekat",
"ui.design_properties.revision": "Revizija",
"ui.design_saved": "Sačuvano: {path}",
"ui.diameter": "Prečnik",
"ui.dimension": "Kota",
"ui.direct_interaction": "Direktna interakcija",
@@ -3720,6 +4075,14 @@
"ui.end_scale": "Krajnje skaliranje",
"ui.entities": "Elementi",
"ui.equal": "Jednakost",
"ui.equation_end": "Kraj",
"ui.equation_explicit": "Eksplicitno",
"ui.equation_form": "Oblik",
"ui.equation_note": "Varijabla je običan broj: sin(t) je uzima u radijanima. Rezultat bez jedinice je u jedinici dizajna.",
"ui.equation_parametric": "Parametarski",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Ekvivalentni poluprečnik",
"ui.expand": "Proširi",
"ui.exportDxf": "Izvezi DXF…",
@@ -3785,6 +4148,7 @@
"ui.heading_design": "DIZAJN",
"ui.heading_draft": "NAGIB",
"ui.heading_edit": "UREDI",
"ui.heading_equation_curve": "KRIVA IZ JEDNAČINE",
"ui.heading_extrude": "EKSTRUDIRAJ",
"ui.heading_fillet": "ZAOBLJENJE",
"ui.heading_finish_editing": "ZAVRŠI UREĐIVANJE",
@@ -3876,6 +4240,10 @@
"ui.import_ellipsis": "Uvezi…",
"ui.infinite": "Beskonačno",
"ui.insert": "Umetni",
"ui.insert_design.browse": "Pregledaj…",
"ui.insert_design.open_designs": "Otvoreni dizajni",
"ui.insert_design.saved_file": "{name} ima nesačuvane promjene, pa je umetnuta njegova sačuvana datoteka. Sačuvajte ga, a zatim pokrenite Ažuriraj veze da unesete promjene.",
"ui.insert_design.unsaved": "Nesačuvane promjene",
"ui.inspect": "Pregledaj",
"ui.intersect": "Presjek",
"ui.isolate": "Izoluj",
@@ -4025,6 +4393,18 @@
"ui.project": "Projektuj",
"ui.project_face_edges_sketch": "Projektuj ivice lica u nove skice",
"ui.properties": "Svojstva",
"ui.properties.copy_matrix": "Kopiraj matricu",
"ui.properties.first_moments": "Statički momenti",
"ui.properties.inertia": "Moment inercije",
"ui.properties.inertia_note": "Oko centra mase, u svjetskim osama (g·{unit}²)",
"ui.properties.inertia_unavailable": "Nije dostupno: mreža jednog tijela nije zatvorena.",
"ui.properties.inertia_x": "Ixx, Ixy, Ixz",
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Mjerenje…",
"ui.properties.measuring_failed": "Mjerenje je zaustavljeno prije završetka.",
"ui.properties.principal_axis": "Glavna osa {number}",
"ui.properties.principal_moments": "Glavni momenti",
"ui.pull_direction": "Smjer vađenja iz kalupa",
"ui.quality": "Kvalitet",
"ui.quantity": "Broj",
@@ -4087,6 +4467,7 @@
"ui.select": "Izaberi",
"ui.selectOther": "Izaberi drugo…",
"ui.selectTangentChain": "Izaberi tangentni lanac",
"ui.select_all": "Izaberi sve",
"ui.selection": "Izbor",
"ui.selection_modifiers": "Modifikatori izbora",
"ui.selection_shift_add_only": "Shift+klik dodaje bez uklanjanja",
@@ -4123,7 +4504,11 @@
"ui.sketch": "Skica",
"ui.sketch_dimension": "Kota skice",
"ui.sketch_grid": "Mreža skice",
"ui.sketch_intersect_geometry": "Geometrija",
"ui.sketch_intersect_projection_link": "Veza projekcije",
"ui.sketch_intersect_selection_filter": "Filter izbora",
"ui.sketch_modifiers": "Modifikatori skice",
"ui.sketch_project_geometry": "Geometrija",
"ui.sketch_scale": "Skaliranje skice",
"ui.sketches": "Skice",
"ui.slice": "Presijeci",
@@ -4170,6 +4555,11 @@
"ui.symmetric": "Simetrično",
"ui.symmetry": "Simetrija",
"ui.system": "Sistem",
"ui.tab_assemble": "Sklopi",
"ui.tab_manage": "Upravljanje",
"ui.tab_sheet_metal": "Lim",
"ui.tab_view": "Prikaz",
"ui.tab_weldments": "Zavarene konstrukcije",
"ui.tangent": "Tangentno",
"ui.taper_angle": "Ugao suženja",
"ui.tapped": "S navojem",
@@ -4185,6 +4575,7 @@
"ui.tip_angle": "Ugao vrha",
"ui.to_object": "Do objekta",
"ui.tool_direction": "Smjer alata",
"ui.toolbar_tabs_hidden": "Sve kartice trake s alatima su skrivene. Kliknite + ili kliknite desnim dugmetom ovdje da prikažete jednu.",
"ui.top": "Odozgo",
"ui.top_diameter": "Gornji prečnik",
"ui.top_radius": "Gornji poluprečnik",
@@ -4231,6 +4622,7 @@
"ui.visual_shaded_with_edges": "Osjenčeno s ivicama",
"ui.visual_style": "Vizuelni stil",
"ui.visual_wireframe": "Žičani model",
"ui.wheel_zoom_speed": "Brzina zumiranja točkićem miša",
"ui.width": "Širina",
"ui.window_system": "Sistem prozora",
"ui.window_system_auto": "Automatski",
@@ -4284,6 +4676,9 @@
"update.prefs_managed": "Ovo je SolidCraft {version}, kojim upravlja {manager}. Provjera pita GitHub za najnovije izdanje i ne šalje ništa drugo; ažurirajte SolidCraft u {manager}.",
"update.prefs_note": "Ovo je SolidCraft {version} ({kind}). Provjera pita GitHub za najnovije izdanje i ne šalje ništa drugo.",
"update.prefs_web": "Ponovo učitajte stranicu da dobijete najnoviju web aplikaciju. Ako mreža nije dostupna ili se ažuriranje ne može preuzeti na vrijeme, otvara se sačuvana verzija; preuzimanje u toku nastavlja se za sljedeće ponovno učitavanje.",
"update.refresh_checking": "Provjera najnovijeg izdanja…",
"update.refresh_fallback": "Provjera novijeg izdanja nije uspjela; ažurira se na verziju {version}, pronađenu ranije.",
"update.refresh_selected": "Ažuriranje na {version}.",
"update.release_page": "Otvori stranicu izdanja",
"update.restart": "Ponovo pokreni sada",
"update.restart_later": "Kasnije",
+397
View File
@@ -204,6 +204,7 @@
"Edges": "Hrany",
"Edit": "Upravit",
"Edit Profile Sketch": "Upravit náčrt profilu",
"Edit shortcuts": "Upravit zkratky",
"Enable rule": "Povolit pravidlo",
"Enabled": "Povoleno",
"End Radius": "Koncový poloměr",
@@ -466,6 +467,7 @@
"Radius": "Poloměr",
"Radius Fit": "Proložení poloměrem",
"Ratio": "Poměr",
"Read-only list: shortcuts can't be changed here.": "Seznam jen pro čtení: zkratky zde nelze měnit.",
"Reattach selected face": "Znovu připojit k vybrané ploše",
"Recover": "Obnovit",
"Recover unsaved design?": "Obnovit neuložený návrh?",
@@ -649,6 +651,7 @@
"Third point": "Třetí bod",
"This child is shared. Deleting it removes it from every copy of its parent.": "Tento potomek je sdílený. Smazáním jej odeberete ze všech kopií jeho rodiče.",
"This child is shared. Position changes apply to every copy of its parent.": "Tento potomek je sdílený. Změny polohy se projeví ve všech kopiích jeho rodiče.",
"This component is inside a subassembly placed more than once: aligning it moves it in every placement.": "Tato komponenta je uvnitř podsestavy umístěné vícekrát: její zarovnání ji posune ve všech umístěních.",
"This face cannot provide a durable attachment. Choose another face or explicitly use a fixed plane.": "Tato plocha nemůže poskytnout trvalé připojení. Zvolte jinou plochu nebo výslovně použijte pevnou rovinu.",
"This image is not attached to GitHub yet. Copy or save it, then attach it on GitHub.": "Tento obrázek ještě není přiložen na GitHubu. Zkopírujte ho nebo uložte a na GitHubu ho přiložte.",
"Thread depth": "Hloubka závitu",
@@ -790,6 +793,11 @@
"cam.roller": "Kladka",
"cam.roller_pick": "Kladka (volitelné)",
"cam.tip_pick": "Hrot (volitelné)",
"camera.shot_pitch": "Náklon",
"camera.shot_roll": "Natočení",
"camera.shot_yaw": "Stáčení",
"canvas.decal_place_hint": "Kliknutím na plochu umístíte obtisk",
"canvas.place_hint": "Kliknutím na rovinu nebo plochu umístíte plátno",
"choose a profile": "vyberte profil",
"choose the cam's and the follower's joints": "vyberte klouby vačky a zdvihátka",
"choose the joints to couple": "vyberte klouby ke spřažení",
@@ -797,9 +805,12 @@
"click sketch curves": "klikněte na křivky náčrtu",
"cmd.appearance_assign": "Vzhled",
"cmd.appearance_chain": "Řetězec vzhledů",
"cmd.appearance_copy": "Kopírovat styl",
"cmd.appearance_favorite": "Oblíbený styl",
"cmd.appearance_library": "Knihovna vzhledů",
"cmd.appearance_list": "Seznam vzhledů",
"cmd.appearance_paint": "Nanést vzhled",
"cmd.appearance_paste": "Vložit styl",
"cmd.appearance_pick_up": "Převzít vzhled",
"cmd.appearance_replace": "Nahradit vzhled",
"cmd.assembly_bom": "Kusovník",
@@ -810,6 +821,7 @@
"cmd.browser_move": "Přesunout položky prohlížeče",
"cmd.browser_order": "Seřadit položky prohlížeče",
"cmd.browser_rename_group": "Přejmenovat skupinu",
"cmd.browser_reparent": "Přesunout do komponenty",
"cmd.browser_ungroup": "Zrušit skupinu",
"cmd.browser_visibility": "Zobrazit/skrýt",
"cmd.canvas_calibrate": "Kalibrovat plátno",
@@ -836,7 +848,9 @@
"cmd.component_metadata": "Vlastnosti dílu",
"cmd.component_metadata_set": "Změnit vlastnosti dílu",
"cmd.component_move_bodies": "Přesunout tělesa do komponenty",
"cmd.component_move_features": "Přesunout prvky do komponenty",
"cmd.component_move_sketches": "Přesunout náčrty do komponenty",
"cmd.component_paste_from_design": "Vložit z jiného návrhu",
"cmd.component_paste_new": "Vložit jako nové",
"cmd.component_properties": "Fyzikální vlastnosti komponenty",
"cmd.component_relink": "Znovu propojit zdroj",
@@ -973,6 +987,7 @@
"cmd.motion_trace": "Stopa pohybu",
"cmd.motion_trace_edit": "Upravit stopu pohybu",
"cmd.motion_trace_keep": "Ponechat stopu pohybu",
"cmd.occurrence_align": "Zarovnat výskyt",
"cmd.occurrence_copy": "Vložit (instance)",
"cmd.occurrence_drag": "Táhnout výskyt",
"cmd.occurrence_ground": "Ukotvit",
@@ -1030,11 +1045,17 @@
"cmd.render_library_surface_unbind": "Odebrat přiřazení povrchu",
"cmd.render_library_targets": "Najít cíle renderovací knihovny",
"cmd.render_lights_add": "Přidat světlo",
"cmd.render_lights_duplicate": "Duplikovat světlo renderu",
"cmd.render_lights_list": "Seznam světel renderu",
"cmd.render_lights_mute": "Ztlumit světlo",
"cmd.render_lights_remove": "Odebrat světlo renderu",
"cmd.render_lights_set": "Nastavit světlo renderu",
"cmd.render_lights_solo": "Sólo světlo",
"cmd.render_optics_bind": "Uložit optické přiřazení",
"cmd.render_optics_unbind": "Odebrat optické přiřazení",
"cmd.render_output_size": "Nastavit velikost výstupu vykreslení",
"cmd.render_preflight": "Zkontrolovat požadavek na render",
"cmd.render_preflight_copy": "Kopírovat zprávu o kontrole renderu",
"cmd.render_preset_apply": "Použít nativní studio",
"cmd.render_preset_resolve": "Zkontrolovat nativní studio",
"cmd.render_quality_prepare": "Zkontrolovat pevný rozpočet vzorkování",
@@ -1057,6 +1078,13 @@
"cmd.render_start": "Renderovat obrázek",
"cmd.render_status": "Průběh renderu",
"cmd.select_clear": "Zrušit výběr",
"cmd.settings_profile_apply": "Použít profil nastavení",
"cmd.settings_profile_delete": "Smazat profil nastavení",
"cmd.settings_profile_export": "Exportovat profil nastavení",
"cmd.settings_profile_import": "Importovat profil nastavení",
"cmd.settings_profile_list": "Profily nastavení",
"cmd.settings_profile_rename": "Přejmenovat profil nastavení",
"cmd.settings_profile_save": "Uložit profil nastavení",
"cmd.sheet_convert": "Převést na plech",
"cmd.sheet_export_bend_table": "Exportovat tabulku ohybů",
"cmd.sheet_export_dxf": "Exportovat rozvin do DXF",
@@ -1070,6 +1098,16 @@
"cmd.sheet_refold": "Znovu ohnout",
"cmd.sheet_rules": "Seznam pravidel pro plech",
"cmd.sheet_unfold": "Rozvinout",
"cmd.sketch.construction_line": "Konstrukční přímka",
"cmd.sketch.construction_line.angle": "Konstrukční přímka pod úhlem",
"cmd.sketch.construction_line.bisector": "Osa úhlu",
"cmd.sketch.construction_line.horizontal": "Vodorovná konstrukční přímka",
"cmd.sketch.construction_line.parallel": "Rovnoběžná konstrukční přímka",
"cmd.sketch.construction_line.perpendicular": "Kolmá konstrukční přímka",
"cmd.sketch.construction_line.tangent_at": "Tečna v bodě křivky",
"cmd.sketch.construction_line.tangent_external": "Tečna vedená vnějším bodem",
"cmd.sketch.construction_line.tangent_two": "Společná tečna",
"cmd.sketch.construction_line.vertical": "Svislá konstrukční přímka",
"cmd.sketch_arc3d": "3D oblouk",
"cmd.sketch_arc_center_point": "Oblouk ze středu",
"cmd.sketch_arc_tangent": "Tečný oblouk",
@@ -1102,6 +1140,8 @@
"cmd.sketch_drawing_bounds": "Velikost výkresu",
"cmd.sketch_edit": "Upravit náčrt",
"cmd.sketch_edit_text": "Upravit text",
"cmd.sketch_equation_curve": "Křivka z rovnice",
"cmd.sketch_equation_curve_edit": "Upravit křivku z rovnice",
"cmd.sketch_export_dxf": "Uložit jako DXF",
"cmd.sketch_finish_auto_constrain": "Dokončit s automatickými vazbami",
"cmd.sketch_fit_curves_to_section": "Proložit křivky řezem sítě",
@@ -1198,6 +1238,7 @@
"cmd.view.render_browser": "Prohlížeč renderu",
"cmd.view.render_dock": "Přesunout panel renderu",
"cmd.view.render_focus": "Soustředěný pohled na render",
"cmd.view.status_items": "Stavové položky pohledu",
"cmd.view_ambient_occlusion": "Okolní zastínění",
"cmd.view_angle_readout": "Úhly pohledu",
"cmd.view_apply": "Obnovit pojmenovaný pohled",
@@ -1219,6 +1260,7 @@
"cmd.view_normal_to": "Kolmo k výběru",
"cmd.view_previous_tab": "Předchozí karta",
"cmd.view_rename": "Přejmenovat pojmenovaný pohled",
"cmd.view_render_frame": "Vodítka rámce renderu",
"cmd.view_right": "Pohled zprava",
"cmd.view_save": "Nový pojmenovaný pohled",
"cmd.view_shots_strip": "Pás záběrů",
@@ -1229,10 +1271,14 @@
"color.copy": "Kliknutím zkopírujete hodnoty barvy",
"color.edit": "Kliknutím upravíte barvu",
"color.gamma": "Hodnoty barvy v gama prostoru 0–255",
"color.hex": "Hex",
"color.hex_help": "Zadejte #rrggbb nebo #rrggbbaa; šest číslic zachová neprůhlednost",
"color.hex_hint": "#rrggbb",
"color.hue": "Odstín",
"color.linear": "Hodnoty barvy v lineárním prostoru 0–1",
"color.saturation_value": "Sytost a jas",
"color.selected": "Vybraná barva",
"config.column_filter_empty": "Žádné odpovídající sloupce",
"contact.components_count": "Počet komponent: {count}",
"contact.enabled_label": "povoleno",
"coupling.gear_1": "Kolo 1",
@@ -1346,8 +1392,10 @@
"help.material.assign": "Určí, z čeho jsou vybraná tělesa vyrobena, například z oceli, hliníku nebo ABS. Hodí se k tomu, aby hmotnost a tíha odpovídaly skutečnému dílu.",
"help.mit": "Licence MIT",
"help.notice": "NOTICE",
"help.occurrence.move": "Posouvá díl sestavy jen v těch stupních volnosti, které povolují jeho klouby. Vyberte plochu dílu a pak táhněte za dostupnou šipku nebo oblouk.",
"help.parameters.change": "Otevře tabulku pojmenovaných hodnot a výrazů, které řídí rozměry návrhu. Hodí se ke změně rozměru na jednom místě, kterou převezmou všechny prvky, jež jej používají.",
"help.pointcloud.insert": "Vložte sken PLY, XYZ nebo PTS jako mračno bodů vedle modelu. Použijte ho jako referenci při tvorbě modelu z naměřených dat.",
"help.sketch.equation_curve": "Nakreslí křivku podle vzorců: x(t) a y(t), nebo y = f(x), v zadaném rozsahu. Vzorce mohou používat parametry a křivka se podle nich mění: použijte ji pro sinusovku, spirálu nebo evolventu zubu ozubeného kola.",
"help.solid.align": "Posune vybraná tělesa tak, aby se bod, plocha nebo rovina na nich setkala s bodem, plochou nebo rovinou jinde. Hodí se k přiložení dílu k jinému bez měření odsazení.",
"help.solid.chamfer": "Zkosí vybrané hrany plochým sražením o zadanou vzdálenost. Hodí se k otupení ostrých hran nebo ke snadnějšímu zasunutí kolíku či šroubu.",
"help.solid.combine": "Sjednotí tělesa, vyjme je z cílového tělesa nebo ponechá jen společný objem; nástrojová tělesa lze ponechat. Hodí se ke slučování dílů, k vyříznutí jednoho tvaru druhým nebo k nalezení místa, kde se dvě tělesa překrývají.",
@@ -1474,6 +1522,21 @@
"joint.one_component": "Tyto díly jsou tělesy jedné komponenty: {bodies}. Kloub pohybuje jednou komponentou vůči druhé, takže každý díl potřebuje vlastní komponentu.",
"joint.rigid_group_one_component": "Těchto {count} těles patří do jedné komponenty (nebo přímo do návrhu): nejprve použijte {command}.",
"joint.rigid_group_select_components": "Vyberte dvě nebo více komponent.",
"joint_move.blocked_hint": "Zkontrolujte typ kloubu (např. Pevný), ukotvení, limity kloubu a hodnoty řízené parametry.",
"joint_move.blocked_title": "Tento díl nelze posunout",
"joint_move.coarse": "Krok otáčení blízko osy (°)",
"joint_move.distance": "Vzdálenost od začátku",
"joint_move.done": "Hotovo",
"joint_move.fine": "Krok otáčení daleko od osy (°)",
"joint_move.fixed": "Tento díl nemá žádnou pohyblivou osu kloubu.",
"joint_move.help": "Posunout — táhněte za šipku nebo prstenec. Esc zruší aktuální tažení.",
"joint_move.legacy_hint": "Vypnutím použijete předchozí panel Posunout.",
"joint_move.precision": "Pro jemné otáčení táhněte mimo čárkované vodítko.",
"joint_move.rotation": "Otočení od začátku",
"joint_move.select": "Vyberte plochu nebo jeden díl sestavy a pak zvolte Posunout.",
"joint_move.settings": "Posun v sestavě",
"joint_move.step": "Krok",
"joint_move.use_handles": "Pro Posunout v sestavě používat úchyty pohybu kloubů",
"keymap.command_id": "ID příkazu",
"keymap.empty": "Žádné odpovídající příkazy",
"keymap.use_anyway": "Přesto zde použít {key}",
@@ -1568,6 +1631,8 @@
"nav.maya.help": "Alt+tažení levým tlačítkem otáčí, Alt+prostřední tlačítko posouvá, Alt+pravé tlačítko přibližuje; tažení prostředním tlačítkem také posouvá",
"nav.openscad.help": "Tažení levým tlačítkem na prázdném místě otáčí, Shift+tažení levým vybírá obdélníkem, tažení geometrie náčrtu ji upravuje; tažení pravým nebo prostředním tlačítkem posouvá, Shift+tažení pravým nebo prostředním přibližuje",
"nav.perspective.sketch": "Úpravy náčrtu používají ortografický pohled. Dokončením náčrtu přepnete na perspektivu.",
"nav.right_drag_orbits.help": "Vypnuto: tažení pravým tlačítkem kameru nemění a pravé tlačítko jen otevírá kontextovou nabídku. Volba přiřazení myši SolidWorks tuto možnost vypne.",
"nav.right_drag_orbits.label": "Tažení pravým tlačítkem otáčí",
"nav.solidworks.help": "Tažení prostředním tlačítkem otáčí, Ctrl+prostřední posouvá, Shift+prostřední přibližuje, tažení pravým tlačítkem otáčí",
"nav.tinkercad.help": "Tažení pravým tlačítkem otáčí, tažení prostředním tlačítkem nebo Shift+pravým posouvá",
"nav.touchpad.help": "Podržením Shift a pohybem ukazatele posouváte; podržením Alt/Option a pohybem otáčíte. Tlačítko myši není potřeba. Svislé posouvání přibližuje.",
@@ -1589,6 +1654,9 @@
"navbar.custom.customise": "Přizpůsobit navigační lištu…",
"navbar.custom.design": "Návrh",
"navbar.custom.duplicate": "Tato pozice už na liště je.",
"navbar.custom.edge": "Okraj",
"navbar.custom.edge_bottom": "Dole",
"navbar.custom.edge_top": "Nahoře",
"navbar.custom.fade": "Zeslabit",
"navbar.custom.full": "Pro přidání další pozice jednu odeberte.",
"navbar.custom.hidden_design": "Skryto v Návrhu",
@@ -1695,6 +1763,7 @@
"parts.dimension.thickness": "Tloušťka",
"parts.dimension.width": "Šířka",
"parts.family.bearing": "Kuličkové ložisko s hlubokou drážkou (obalový tvar)",
"parts.family.button_head_cap_screw": "Šroub s půlkulovou hlavou a vnitřním šestihranem",
"parts.family.dowel_pin": "Válcový kolík (lícovaný)",
"parts.family.hex_bolt": "Šroub se šestihrannou hlavou",
"parts.family.hex_nut": "Šestihranná matice",
@@ -1751,6 +1820,9 @@
"prefs.bottom_centre": "Dole uprostřed",
"prefs.bottom_right": "Vpravo dole",
"prefs.browser": "Prohlížeč",
"prefs.browser_reveal_on_hover": "Odkrýt při najetí myší",
"prefs.browser_show_note": "Zobrazeno ponechá prohlížeč na obrazovce. Odkrýt při najetí myší jej skryje, dokud ukazatel nenajede na jeho místo nebo na tenký jazýček u jeho levého okraje, a prohlížeč zůstane otevřený, dokud je ukazatel uvnitř něj nebo je otevřená některá z jeho nabídek.",
"prefs.browser_shown": "Zobrazeno",
"prefs.built_in": "Vestavěný",
"prefs.button_left": "Tažení levým tlačítkem",
"prefs.button_middle": "Tažení prostředním tlačítkem",
@@ -1821,6 +1893,8 @@
"prefs.layout_note": "Kompaktní ukotví panely k okrajům okna. Průsvitnost prohlížeče je k dispozici v režimu Plovoucí. Stranu asistenta změníte na stránce Asistent.",
"prefs.left": "Vlevo",
"prefs.left_click": "Levé kliknutí",
"prefs.line_drag_draws_one": "Stisknutí a tažení nakreslí jednu úsečku",
"prefs.line_drag_draws_one_note": "V nástroji Úsečka nakreslí stisknutí, tažení a puštění jednu úsečku od místa stisknutí po místo puštění a tím kreslení skončí. Kliknutí stále kreslí řetězec. Vypnuto: tažení umístí bod tam, kde tlačítko pustíte, stejně jako kliknutí.",
"prefs.linked_designs": "Propojené návrhy",
"prefs.live_input": "Živý vstup",
"prefs.live_preview": "Živý náhled",
@@ -1853,14 +1927,36 @@
"prefs.origin_plane_names": "Názvy rovin počátku",
"prefs.origin_plane_names_note": "Názvy zobrazené v prohlížeči, dialozích a seznamech. {top} je XY, {front} je XZ a {right} je YZ, osa Z směřuje nahoru. Příkazy, skripty a uložené návrhy zachovávají XY, XZ a YZ.",
"prefs.overall_speed": "Celková rychlost",
"prefs.perspective_fov": "Zorný úhel",
"prefs.placement": "Umístění",
"prefs.prefer_free_sketch_points": "Při překrytí bodů upřednostnit pohyblivé body náčrtu",
"prefs.preview_choices": "Náhled vašich voleb",
"prefs.profile_active": "Aktivní profil",
"prefs.profile_applied": "Profil byl použit.",
"prefs.profile_changed": "Nastavení se od uložení profilu změnila. Uložit je do něj zapíše.",
"prefs.profile_deleted": "Profil byl smazán.",
"prefs.profile_export": "Exportovat…",
"prefs.profile_exported": "Profil byl exportován.",
"prefs.profile_imported": "Profil byl importován. Chcete-li se na něj přepnout, vyberte ho v části Aktivní profil.",
"prefs.profile_name_hint": "Název profilu, např. Notebook",
"prefs.profile_rename": "Přejmenovat",
"prefs.profile_renamed": "Profil byl přejmenován.",
"prefs.profile_save": "Uložit",
"prefs.profile_saved": "Aktuální nastavení byla uložena do profilu.",
"prefs.profile_skipped": "Profil byl použit; počet nastavení, která si ponechala aktuální hodnotu: {n} (viz protokol).",
"prefs.profiles": "Profily nastavení",
"prefs.profiles_note": "Zkratky, panel nástrojů, navigace, kruhová nabídka a nastavení rozhraní, uložené společně pod jedním názvem a přepínané najednou.",
"prefs.project_options_dialog": "Dialog možností promítnutí",
"prefs.project_options_dialog_note": "Zapnuto: před promítnutím zvolte Geometrie nebo Tělesa a Propojení promítnutí. Vypnuto: zachová se předchozí postup s přímým výběrem.",
"prefs.quality_default": "výchozí",
"prefs.quality_fastest": "nejrychlejší",
"prefs.quality_slowest": "nejpomalejší",
"prefs.quality_smoother": "hladší",
"prefs.render_previous_geometry_budget": "Použít předchozí rozpočet geometrie náhledu renderu",
"prefs.render_previous_geometry_budget_help": "Obnoví předchozí pevný limit geometrie (512 MiB na 64bitovém desktopu, 128 MiB jinde) místo rozpočtu podle zařízení.",
"prefs.reports_saved": "{n} uloženo",
"prefs.ribbon_reveal": "Ukazovat výsledky hledání na pásu karet",
"prefs.ribbon_reveal_note": "Najetí na výsledek v Hledat příkazy ukáže, kde se příkaz na pásu karet nachází: jeho kartu, tlačítko nebo řádek v rozbalovací nabídce panelu. Příkaz spuštěný z hledání tam zabliká a běžící příkaz z rozbalovací nabídky označí svůj panel.",
"prefs.right_click": "Pravé kliknutí",
"prefs.saving": "Automatické ukládání a obnovení",
"prefs.scale_note": "Také Ctrl + / Ctrl − v okně. Tlačítka mají při 100 % 28 px.",
@@ -1874,6 +1970,10 @@
"prefs.shift_add_ctrl_toggle": "Shift jen přidává; Ctrl / Cmd přepíná",
"prefs.shift_add_note": "Zapnuto: Shift přidává, Ctrl / Cmd přepíná. Vypnuto (výchozí): obojí přepíná.",
"prefs.shortcuts": "Zkratky",
"prefs.single_surface_analysis": "Používat jen jednu analýzu povrchu",
"prefs.single_surface_analysis_help": "Když je vypnuto, mohou stínování povrchu a Spojitost zůstat zapnuté současně. Zapnutím zůstane jen naposledy spuštěná nebo změněná analýza.",
"prefs.sketch_align_points": "Při kreslení zarovnávat s jinými body náčrtu",
"prefs.sketch_align_points_note": "Při kreslení se bod zarovná vodorovně s jedním bodem náčrtu a zároveň svisle s jiným, s tečkovaným vodítkem, a kliknutí zachová obě zarovnání. Vypnuto: jen s předchozím bodem, vždy v jedné ose.",
"prefs.sketch_conflict_colour": "Konfliktní geometrie v barvě konfliktu",
"prefs.sketch_conflict_colour_note": "Dokud jsou vazby náčrtu v konfliktu, vykreslují se v barvě konfliktu i křivky a body, které selhávající vazba drží, nejen její symbol nebo kóta. Vypnuto: ponechají si obvyklé barvy.",
"prefs.sketch_exit_view": "Po ukončení náčrtu",
@@ -1881,6 +1981,8 @@
"prefs.sketch_exit_view.previous": "Vrátit se k předchozímu pohledu",
"prefs.sketch_exit_view.unless_rotated": "Vrátit, pokud nebyl pohled otočen",
"prefs.sketch_exit_view_note": "Kam se pohled přesune po příkazu Dokončit náčrt, Zrušit nebo dvojitém Esc.",
"prefs.sketch_recent_snap": "Automaticky přichytávat k nedávným středům a středním bodům",
"prefs.sketch_recent_snap_note": "Při kreslení se kurzor přichytí tam, kde se kříží vodítka dvou posledních středů kružnic nebo středů rovných hran. Vypnuto: tato vodítka se jen zobrazují a kurzor se nepohne.",
"prefs.sketch_selection": "Náčrt a výběr",
"prefs.sketch_selection_heading": "Náčrt a výběr",
"prefs.sketch_selection_note": "Jak se v náčrtu přichytává a jak kliknutí vybírá.",
@@ -1918,7 +2020,14 @@
"prefs.toast_place": "Oznámení",
"prefs.toggle_item": "Přidat položku, nebo ji znovu odebrat",
"prefs.toolbar": "Panel nástrojů",
"prefs.toolbar_tabs": "Karty panelu nástrojů",
"prefs.top": "Nahoře",
"prefs.trackpad_zoom_modifier": "Přibližovat posouváním dvěma prsty při podržení",
"prefs.trackpad_zoom_modifier.alt": "⌥ / Alt",
"prefs.trackpad_zoom_modifier.cmd": "⌘",
"prefs.trackpad_zoom_modifier.ctrl": "Ctrl",
"prefs.trackpad_zoom_modifier.help": "Podržením pouze této klávesy přibližujete svislým posouváním k ukazateli. Vypnuto ponechá stávající chování posouvání.",
"prefs.trackpad_zoom_modifier.off": "Vypnuto",
"prefs.translucent": "Průsvitné",
"prefs.under_browser": "Pod prohlížečem",
"prefs.under_cursor": "Pod kurzorem",
@@ -1928,9 +2037,14 @@
"prefs.view_confirm_corner": "OK a Zrušit v rohu pohledu",
"prefs.view_confirm_corner_note": "Když je otevřen dialog nebo náčrt, zaškrtnutí a křížek vpravo nahoře v pohledu provedou totéž co OK a Zrušit v dialogu, nebo náčrt dokončí a zruší. Navigátor pohledu se posune pod ně.",
"prefs.viewport": "Zobrazovací okno",
"prefs.viewport_background": "Pozadí",
"prefs.viewport_background_colour": "Barva",
"prefs.viewport_background_theme": "Přechod motivu",
"prefs.wheel": "Kolečko",
"prefs.wheel_trackpad": "Kolečko a trackpad",
"prefs.workspace": "Pracovní prostředí",
"prefs.zoom_stop_at_model": "Zastavit přiblížení u modelu",
"prefs.zoom_stop_at_model_tip": "3D myš a aplikace zařízení přibližují k povrchu uprostřed pohledu; přiblížení tažením drží bod, kde tažení začalo. Vypnuto: přiblížení může projít modelem. Kolečko a sevření prstů se řídí zvlášť volbou Přibližovat ke kurzoru",
"prefs.zoom_toward_cursor": "Přiblížení směrem ke kurzoru",
"properties.title": "Vlastnosti: {name}",
"recovery.days_ago": "před {count} dny",
@@ -2019,6 +2133,7 @@
"render.appearance_editor.weight": "Váha",
"render.appearance_physics_separate": "Vizuální vzhled nepřiřazuje hustotu, tepelné údaje ani jiné inženýrské vlastnosti.",
"render.appearances": "Vzhledy",
"render.assign_help": "Kliknutím použijete na výběr; tažením zobrazíte náhled a puštěním jej použijete, nebo kliknutím bez výběru zahájíte nanášení.",
"render.availability_native": "Nativní kompozice; před použitím zkontrolujte",
"render.availability_projection": "Podporované promítnutí; viz rozsah a vynechané části",
"render.availability_reference": "Referenční data; nejde o automatické přiřazení",
@@ -2057,6 +2172,7 @@
"render.bloom_threshold": "Lineární práh jasů",
"render.browse_capabilities": "Zobrazit úplný katalog možností",
"render.browse_environments": "Procházet původní prostředí HDR",
"render.browse_looks": "Procházet…",
"render.browse_native_scenes": "Procházet nativní studia",
"render.browse_physical": "Zobrazit fyzikální reference",
"render.browse_quality": "Zobrazit specifikace kvality",
@@ -2080,6 +2196,82 @@
"render.check_opaque": "Průhlednost: pouze neprůhledné povrchy; alfa pozadí je podporována.",
"render.check_sorted_alpha": "Průhlednost: aproximace seřazenou alfou.",
"render.check_transmission": "Průhlednost: fyzikální prostup světla.",
"render.children.absolute_floor": "Absolutní práh",
"render.children.adaptive": "Adaptivní",
"render.children.add_look_reason": "Chcete-li upravit zapnutí a sílu stylu, přidejte styl.",
"render.children.all_shots": "Všechny záběry",
"render.children.bloom": "Záře",
"render.children.check": "Kontrola",
"render.children.check_now": "Zkontrolovat nyní",
"render.children.chromatic": "Chromatický posun",
"render.children.compact": "Kompaktní",
"render.children.contrast": "Kontrast",
"render.children.copy_image": "Kopírovat",
"render.children.copy_job": "Kopírovat JSON úlohy",
"render.children.copy_request": "Kopírovat JSON požadavku",
"render.children.coverage_error": "Chyba pokrytí",
"render.children.cpu": "Trasování paprsků CPU",
"render.children.denoise": "Potlačit šum v hotovém obrazu",
"render.children.depth": "Hloubka cesty",
"render.children.distortion": "Zkreslení",
"render.children.edge_samples": "Vzorky hran",
"render.children.effects_banner": "Tyto efekty vyžadují trasování cest GPU. Otevření této části nikdy nezmění metodu.",
"render.children.enable_adaptive": "Chcete-li upravit adaptivní meze, zapněte nezávislé pilotní vzorky.",
"render.children.enable_bloom": "Chcete-li upravit sílu, práh a poloměr záře, zapněte záři.",
"render.children.finishing": "Finální úpravy",
"render.children.flare": "Odlesk",
"render.children.fresnel": "Fresnelovy vrstvy",
"render.children.ghosts": "Prstence duchů",
"render.children.glass": "Transport světla ve skle",
"render.children.go_to": "Přejít na: {editor}",
"render.children.grain": "Zrno",
"render.children.halo": "Halo",
"render.children.hdr": "HDR",
"render.children.keep_master": "Zachovat surový lineární master",
"render.children.last_result": "Poslední: {number} · {width} × {height} · {phase}",
"render.children.lens_effects": "Efekty objektivu",
"render.children.look_summary": "{tone} · stylů: {count}",
"render.children.looks": "Kreativní styly",
"render.children.memory": "Paměť",
"render.children.method": "Metoda",
"render.children.minimum": "Minimum",
"render.children.needs_cpu": "Vyžaduje trasování paprsků CPU. Otevření této části nikdy nezmění metodu.",
"render.children.nested": "Ověřená vnořená dielektrika",
"render.children.not_checked": "Nezkontrolováno",
"render.children.path": "Trasování cest",
"render.children.pilots": "Pilotní vzorky",
"render.children.preview": "Data náhledu",
"render.children.progressive_reason": "Chcete-li upravit počet vzorků a semeno, zvolte Progresivní.",
"render.children.radius": "Poloměr",
"render.children.reflect_depth": "Hloubka odrazů",
"render.children.reflect_samples": "Vzorky odrazu",
"render.children.regrade": "Nová korekce barev",
"render.children.relative_error": "Relativní chyba",
"render.children.render": "Renderovat",
"render.children.render_shot": "Renderovat záběr",
"render.children.renderer": "Vykreslovač",
"render.children.renderers": "Vykreslovače",
"render.children.request": "Tento požadavek",
"render.children.reset_finishing": "Obnovit finální úpravy",
"render.children.review_quality": "Zkontrolovat specifikaci kvality…",
"render.children.rgb_gain": "Zesílení RGB",
"render.children.samples": "Vzorky",
"render.children.sampling": "Vzorkování",
"render.children.saturation": "Sytost",
"render.children.scene_summary": "těles: {bodies} · trojúhelníků: {triangles}",
"render.children.seed": "Semeno",
"render.children.sharpening": "Doostření",
"render.children.single_image": "Jeden obrázek",
"render.children.soft_focus": "Měkké ostření",
"render.children.streak": "Pruh",
"render.children.strength": "Síla",
"render.children.studio": "Studio",
"render.children.threshold": "Práh",
"render.children.tone": "Tón",
"render.children.under_hood": "Pod kapotou",
"render.children.vignette": "Vinětace",
"render.children.workstation": "Pracovní stanice",
"render.choose_look": "Nejprve vyberte styl ve Vzhledech",
"render.chromatic_offset": "Chromatický posun hran",
"render.clear_stage": "Odebrat uloženou scénografii",
"render.copy_request": "Kopírovat JSON",
@@ -2331,8 +2523,33 @@
"render.flare_strength": "Síla odlesku v jasných partiích",
"render.flare_threshold": "Práh odlesku ve scénově lineárním prostoru",
"render.fold_browser": "Sbalit prohlížeč",
"render.frame_aspect": "Poměr stran",
"render.frame_centre_mark": "Značka středu",
"render.frame_copy_limit": "Není k dispozici žádný volný název pro kopii záběru",
"render.frame_copy_name": "{name} kopie {number}",
"render.frame_custom": "Vlastní",
"render.frame_distance_unit": " × velikost",
"render.frame_duplicate": "Duplikovat",
"render.frame_exposure": "Expozice",
"render.frame_fov": "Zorný úhel",
"render.frame_guides": "Vodítka",
"render.frame_invalid_aspect": "Neplatná předvolba poměru stran",
"render.frame_lens": "Zorný úhel {fov}° · ≈ {mm} mm",
"render.frame_name": "Název",
"render.frame_output_size": "Velikost výstupu",
"render.frame_photo": "3:2 · Fotografie",
"render.frame_portrait": "4:5 · Portrét",
"render.frame_presets": "Předvolby rámce",
"render.frame_presets_pending": "Přijde s editorem záběru",
"render.frame_projection": "Projekce",
"render.frame_render_shot": "Renderovat tento záběr",
"render.frame_rule_thirds": "Pravidlo třetin",
"render.frame_safe_area": "Bezpečná oblast",
"render.frame_shot_title": "Záběr · {name}",
"render.frame_square": "1:1 · Čtverec",
"render.frame_tall": "9:16 · Na výšku",
"render.frame_thirds": "Třetiny",
"render.frame_wide": "16:9 · Širokoúhlý",
"render.gpu_depth": "Maximální hloubka cesty",
"render.gpu_options_help": "Tyto volby platí pro tuto úlohu. Expozice vychází z uloženého nastavení.",
"render.gpu_path_failed": "Trasování cest GPU není dostupné",
@@ -2360,6 +2577,7 @@
"render.heading_results": "VÝSLEDKY",
"render.heading_shots": "ZÁBĚRY",
"render.hide_shots_label": "Skrýt pás záběrů",
"render.hover_look": "{object} · {look} · kliknutím vyberete",
"render.image_advanced": "Pokročilé nastavení GPU",
"render.image_cancelled": "Render zrušen",
"render.image_cancelling": "Rušení",
@@ -2506,17 +2724,95 @@
"render.library_uniform_ack": "Použít jednotnou aproximaci bez prostorových nebo pokročilých efektů",
"render.library_usable": "Spustitelná promítnutí",
"render.library_users": "Použito na",
"render.light_aim": "Mířit na",
"render.light_anchor_pending": "Změna souřadnicového systému světla zatím není podporována.",
"render.light_azimuth": "Azimut",
"render.light_backend_limit": "Chcete-li upravovat světla, zvolte trasování paprsků CPU nebo výslovné studio GPU. Světla starších studií GPU zůstávají jen pro čtení.",
"render.light_behaviour": "CHOVÁNÍ",
"render.light_default_fill": "Doplňkové",
"render.light_default_key": "Hlavní",
"render.light_default_number": "Světlo {number}",
"render.light_default_rim": "Obrysové",
"render.light_delete": "Smazat",
"render.light_distance": "Vzdálenost",
"render.light_duplicate": "Duplikovat",
"render.light_elevation": "Elevace",
"render.light_gpu_punctual": "Bodová světla a reflektory jsou k dispozici s trasováním paprsků CPU.",
"render.light_hard_shadow": "Toto světlo má ostré stíny; měkkost zářiče není k dispozici.",
"render.light_intensity": "Intenzita",
"render.light_missing": "Toto světlo už neexistuje. Vyberte světlo v prohlížeči.",
"render.light_place_highlight": "Umístit podle odlesku",
"render.light_place_pending": "Umístění podle odlesku vyžaduje výběr světla v pohledu a zatím není podporováno.",
"render.light_position": "POLOHA",
"render.light_preview_help": "Živý pohled je bez stínů; plošná světla používají aproximaci vzorkem ve středu. Render používá úplný model světla.",
"render.light_product_centre": "Střed produktu",
"render.light_size": "Velikost",
"render.light_softness": "Měkkost",
"render.light_temperature": "Barevná teplota",
"render.light_temperature_help": "Přibližný odstín záření černého tělesa; ukládá se jako lineární RGB.",
"render.light_type": "Typ",
"render.light_type_area": "Plošné",
"render.light_type_point": "Bodové",
"render.light_type_spot": "Reflektor",
"render.light_type_sun": "Slunce",
"render.light_view_only": "Sólo a ztlumení ovlivňují tento pohled a jeho rendery; nikdy se neukládají do návrhu.",
"render.light_world_origin": "Počátek světa",
"render.lighting_aim_point": "Cílový bod",
"render.lighting_apply": "Použít předvolbu",
"render.lighting_area_samples": "Vzorky plošného světla",
"render.lighting_budget": "Rozpočet",
"render.lighting_budget_help": "Počty jsou jen pro čtení. Změníte je přidáním, duplikováním nebo smazáním světel; meze určuje metoda.",
"render.lighting_colour": "Barva",
"render.lighting_consent": "Nahradit směrová světla touto předvolbou",
"render.lighting_custom": "Vlastní světla",
"render.lighting_custom_help": "Volbou Vlastní se předvolba změní na upravitelná světla, každé na vlastním řádku stromu.",
"render.lighting_direction": "Směr X Y Z",
"render.lighting_direction_help": "Nebo zadejte směr ke světlu (X Y Z).",
"render.lighting_distance_unit": " × velikost",
"render.lighting_edge_u": "Vektor strany U",
"render.lighting_edge_v": "Vektor strany V",
"render.lighting_falloff": "Útlum",
"render.lighting_falloff_help": "Intenzita je uvedena pro referenční vzdálenost.",
"render.lighting_height": "Výška V",
"render.lighting_minimum": "Minimum",
"render.lighting_mute": "Ztlumit toto světlo",
"render.lighting_point": "Bod",
"render.lighting_preset": "Předvolba studia",
"render.lighting_preset_cpu": "Směrové předvolby studia vyžadují trasování paprsků CPU. Osvětlení GPU používá výslovně zadaná světla Slunce a Plošné.",
"render.lighting_preset_row": "Předvolba",
"render.lighting_radiance": "Zář",
"render.lighting_reference": "Reference",
"render.lighting_review_help": "Nahradí seznam směrových světel. Zachová bodová a plošná světla, prostředí, stíny, kameru a všechna ostatní nastavení záběru.",
"render.lighting_review_title": "Zkontrolovat předvolbu osvětlení",
"render.lighting_samples_cpu": "Vzorky plošného světla platí pro trasování paprsků CPU.",
"render.lighting_samples_need_area": "Chcete-li nastavit vzorky plošného světla, přidejte plošné světlo CPU.",
"render.lighting_samples_reason": "Vzorky plošného světla musí být 1, 4, 16 nebo 64.",
"render.lighting_shadow_cpu": "Přepínač stínů vyžaduje trasování paprsků CPU. Trasování cest GPU vrhá stíny vždy.",
"render.lighting_shadows": "Vrhat stíny",
"render.lighting_shadows_section": "Stíny a vzorkování",
"render.lighting_shape": "Tvar",
"render.lighting_solo": "Sólo pro toto světlo",
"render.lighting_source": "Zdroj",
"render.lighting_source_section": "Zdroj světla",
"render.lighting_spot_preserved": "Toto bodové světlo si ponechá uložený kužel reflektoru, dokud se nezmění jeho typ.",
"render.lighting_sun_distance": "Směr slunce nezávisí na vzdálenosti ani na cílovém bodě.",
"render.lighting_unsupported": "nepodporováno",
"render.lighting_used": "{used} z {limit}",
"render.lighting_width": "Šířka U",
"render.lighting_world_position": "Svět X Y Z",
"render.lights_fixed_to": "Světla pevně vázána na",
"render.linear_help": "Uchovává 32bitový master RGBA s plovoucí desetinnou čárkou před odstraněním šumu, expozicí, mapováním tónů, filtry a pozadím. Lineární sRGB/D65; premultiplikováno pokrytím. Dodatečná paměť se povoluje výslovně. Bez komprese a bez dalších průchodů.",
"render.linear_retain": "Zachovat surový lineární EXR",
"render.linear_unavailable": "Vybraný dokončený snímek nemá zachovaný EXR. Zapněte uchování před renderováním; starší PNG nemůže obnovit surovou radianci.",
"render.look_add": "Přidat barevný styl",
"render.look_applied": "Použito: {name}",
"render.look_bleach": "Inspirováno technikou bleach bypass",
"render.look_cool": "Studený",
"render.look_cyanotype": "Inspirováno kyanotypií",
"render.look_faded": "Vybledlý tisk",
"render.look_material": "Materiál",
"render.look_mono": "Monochromatický",
"render.look_pasted": "Styl vložen",
"render.look_sepia": "Sépie",
"render.look_strength": "Síla stylu",
"render.look_teal_orange": "Modrozelená / oranžová",
@@ -2592,9 +2888,11 @@
"render.output_advanced": "Rozšířené",
"render.output_backend_ready": "Připraveno",
"render.output_check": "Kontrola",
"render.output_check_failed": "Kontrola · chyba",
"render.output_check_help": "Spusťte Kontrolu a požadavek si prohlédněte bez zahájení vykreslování.",
"render.output_check_summary": "Kontrola · Poznámky: {count}",
"render.output_copy": "Kopírovat",
"render.output_copy_report": "Kopírovat zprávu",
"render.output_destination": "Cíl",
"render.output_destination_help": "Cílový soubor vyberte při exportu hotového obrázku.",
"render.output_dimensions": "Velikost",
@@ -2604,6 +2902,7 @@
"render.output_fit": "Přizpůsobit",
"render.output_format": "Formát",
"render.output_format_status": "PNG je přesný dokončený obraz. Volitelné GPU EXR uchovává lineární FLOAT32 radianci před filtry. Export nikdy nenahrazuje výsledek náhledem nebo jinou úlohou.",
"render.output_grading": "Korekce barev",
"render.output_image": "Obrázek",
"render.output_largest": "max. {width} × {height}",
"render.output_lock_ratio": "Zamknout poměr stran",
@@ -2613,6 +2912,8 @@
"render.output_quality_waiting": "čeká na specifikaci kvality",
"render.output_ratio_refused": "Svázaný rozměr překračuje limit velikosti této metody. Předchozí velikost zůstává zachována; odemkněte poměr nebo zvolte menší hodnotu.",
"render.output_ready": "Připraveno k vykreslení",
"render.output_run_check": "Spustit kontrolu",
"render.output_size_limit": "{method}: nejvýše {dimension} px na stranu a {pixels} pixelů. Největší vyhovující velikost: {width} × {height}.",
"render.output_size_ok": "Velikost je v pořádku · {width} × {height} px",
"render.output_swap_orientation": "Prohodit šířku a výšku",
"render.output_tools_inspector": "Velikost a formát upravte v inspektoru Výstup.",
@@ -2629,6 +2930,7 @@
"render.page_output": "Výstup",
"render.page_scene": "Scéna",
"render.paint_label": "Nátěr",
"render.painting_with": "Nanáší se: {name}",
"render.passive_stage": "Podlaha a pasivní scénografie",
"render.passive_stage_help": "Konečné pasivní panely patří pouze k vykresleným obrazům. Nepřidávají žádná tělesa CAD ani hmotnost. Umístění je po použití pevné; při průniku s hranicemi modelu se použití odmítne. Vykreslování na CPU neposkytuje difuzní odražené osvětlení.",
"render.perspective": "Perspektivní kamera",
@@ -2650,6 +2952,7 @@
"render.pick_help": "Vyberte těleso, plochu nebo komponentu. Kliknutím do prázdného místa výběr zrušíte; Shift nebo Ctrl přidává či přepíná. Zvýraznění se zobrazí jen v živém zobrazení produktu.",
"render.pick_label": "Vybrat",
"render.pick_up_label": "Převzít",
"render.pick_up_prompt": "Kliknutím na objekt převezmete jeho styl",
"render.pick_waiting": "Výběr v zobrazení produktu zatím není podporován.",
"render.post_contrast": "Kontrast",
"render.post_gain_b": "Zesílení modré",
@@ -2689,13 +2992,17 @@
"render.radial_distortion": "Radiální zkreslení",
"render.radial_fit": "Přizpůsobit produkt",
"render.radial_save": "Uložit záběr",
"render.recent_looks": "Nedávné styly",
"render.regrade_action": "Znovu korigovat barvy surového masteru (bez odšumění)",
"render.regrade_help": "Vytvoří samostatný PNG z vybraného dokončeného surového masteru pomocí těchto prezentačních nastavení. Nesleduje paprsky, nemění zachycenou velikost, kameru ani světla a nepřepisuje soubor EXR. Odšumění se znovu nepoužije: surové mastery neuchovávají jeho pomocné vrstvy. Odvozený obraz lze dál exportovat týmiž ovládacími prvky úlohy.",
"render.regrade_label": "Nová korekce barev",
"render.reload_settings": "Znovu načíst uložené nastavení",
"render.remove_override": "Odebrat přepsání",
"render.replace_all": "Nahradit vše",
"render.replace_ground": "Potvrdit nahrazení stávající scénografie",
"render.replace_label": "Nahradit",
"render.replace_saved_surface": "Nahradit stávající uložené přiřazení povrchu pro tento cíl",
"render.replace_with": "Nahradit za",
"render.restore_camera": "Obnovit uloženou kameru",
"render.result_actual": "100%",
"render.result_actual_help": "Jeden pixel obrázku na jeden pixel obrazovky.",
@@ -2747,14 +3054,28 @@
"render.saved_surface_remove": "Odebrat uložené přiřazení",
"render.saved_surfaces": "Uložená přiřazení povrchů",
"render.saved_surfaces_help": "Připnuté vestavěné mapy sledují vybraný výskyt v lokálních milimetrech. Nahrazený nebo chybějící cíl je chyba, nikdy automatické přeřazení.",
"render.scene_all_shots": "Všechny záběry ({count})",
"render.scene_apply": "Použít zkontrolované studiové nastavení",
"render.scene_batch_reason": "Všechny záběry vyžadují frontu renderování uložených záběrů, která zatím není k dispozici.",
"render.scene_check_now": "Zkontrolovat nyní",
"render.scene_check_passed": "Kontrola prošla · poznámek: {notes}",
"render.scene_check_stale": "Kontrola je zastaralá · zkontrolujte znovu",
"render.scene_check_unchecked": "Zatím nezkontrolováno · 0 poznámek",
"render.scene_consent": "Potvrdit nahrazení osvětlení, prostředí, expozice a scénografie",
"render.scene_light_summary": "{environment} · světel: {lights}",
"render.scene_look_summary": "stylů: {looks} · přepsání: {overrides}",
"render.scene_open_check": "Otevřít kontrolu",
"render.scene_preserved_fields": "Kamera, vzorkování, rozměry, optická přiřazení, geometrie CAD a technické materiály zůstanou zachovány.",
"render.scene_preserves_design": "Vytvoří osvětlení a pasivní scénografii pro viditelný objekt. Geometrie, technické materiály a kamera zůstávají oddělené.",
"render.scene_ready": "Připraveno k vykreslení",
"render.scene_reminder": "Scéna zachovává návrh. Geometrie, inženýrské vlastnosti ani CAD se z renderu nikdy nemění.",
"render.scene_reminders": "Připomínky",
"render.scene_renderer_ready": "{renderer}: připraveno",
"render.scene_replaces": "Nahrazuje",
"render.scene_review": "Vyřešit a zkontrolovat",
"render.scene_review_help": "Před použitím zkontrolujte celou nativní kompozici. Nenavázané pokročilé specifikace SCENE se nedosazují.",
"render.scene_scope_details": "Rozsah kompozice",
"render.scene_stages": "Fáze",
"render.search_appearances": "Hledat mezi {count} vzhledy",
"render.setup_legacy_environment": "Toto starší nastavení používá zastaralé natočení nebo intenzitu prostředí. Tyto hodnoty zůstávají zachovány; před uložením úplné úlohy obrazu je výslovně převeďte.",
"render.setup_name": "Název nastavení",
@@ -2767,7 +3088,22 @@
"render.shell_tab_camera": "KAMERA RENDERU",
"render.shell_tab_lighting": "OSVĚTLENÍ",
"render.shell_tab_scene": "SCÉNA RENDERU",
"render.shot_aperture": "Clona",
"render.shot_distance": "Vzdálenost",
"render.shot_dof": "Hloubka ostrosti",
"render.shot_duplicate": "Duplikovat uložený záběr",
"render.shot_edit_output": "Upravit ve Výstupu",
"render.shot_exposure_reason": "Expozice vyžaduje trasování paprsků CPU nebo trasování cest GPU.",
"render.shot_exposure_section": "Expozice",
"render.shot_focus_distance": "Zaostřovací vzdálenost",
"render.shot_fov_reason": "Zorný úhel vyžaduje perspektivní projekci.",
"render.shot_frame_subject": "Zarámovat objekt",
"render.shot_invalid_camera": "Hodnoty kamery musí být konečné a v povoleném rozsahu.",
"render.shot_lens": "Objektiv",
"render.shot_lens_enable_reason": "Chcete-li upravit clonu a zaostřovací vzdálenost, zapněte hloubku ostrosti.",
"render.shot_lens_gpu_reason": "Hloubka ostrosti vyžaduje trasování cest GPU.",
"render.shot_lens_perspective_reason": "Hloubka ostrosti vyžaduje perspektivní projekci.",
"render.shot_look_selection": "Zamířit na výběr",
"render.shot_manager": "Uložené záběry",
"render.shot_new_name": "Název nového záběru",
"render.shot_remove": "Odebrat uložený záběr",
@@ -2775,6 +3111,9 @@
"render.shot_remove_title": "Odebrat uložený záběr?",
"render.shot_rename": "Přejmenovat uložený záběr",
"render.shot_saved_only": "Nejprve uložte aktuální koncept. Duplikace a přejmenování zachovají přesné uložené volby a odkazy na zdroje.",
"render.shot_selection_reason": "Vyberte těleso nebo plochu, na kterou se má zamířit.",
"render.shot_size": "Velikost",
"render.shot_target": "Cíl",
"render.shots_camera_changed": "Kamera se od uložení tohoto záběru změnila",
"render.shots_name_help": "Zadejte jedinečný název aktuálního záběru.",
"render.shots_no_result": "Zatím žádný render",
@@ -2997,6 +3336,13 @@
"render.wait_pick_up": "zatím nepodporováno: výběr produktu a odebírání vzorků vzhledu",
"render.wait_replace": "zatím nepodporováno: nahrazení všech použití vzhledu",
"render.wait_solo": "zatím nepodporováno: viditelnost světel a ovládání sóla",
"render.wear_applies_to": "Platí pro",
"render.wear_layer_count": "Vrstev: {count}",
"render.wear_layer_one": "{count} vrstva",
"render.wear_layers": "Vrstvy",
"render.wear_no_layers": "Žádné vrstvy",
"render.wear_selected_layer": "Vybraná vrstva",
"render.wear_title": "Opotřebení",
"sample.bracket.about": "Základní příruba s okrajovými přírubami a lemem podle pravidla 2 mm",
"sample.bracket.name": "Plechový držák",
"sample.enclosure.about": "Skořepinová krabička s osazením, nálitky pro šrouby, opěrkou a zacvakávacím spojem",
@@ -3030,6 +3376,7 @@
"select an axis": "vyberte osu",
"select an axis, a straight or circular edge, or a cylinder, cone or torus face first": "nejprve vyberte osu, přímou nebo kruhovou hranu, nebo plochu válce, kužele či anuloidu",
"select bodies first": "nejprve vyberte tělesa",
"select components first": "nejprve vyberte komponenty",
"select corner points, or the two lines of one corner": "vyberte rohové body nebo dvě úsečky jednoho rohu",
"select one corner point, or the two lines of one corner": "vyberte jeden rohový bod nebo dvě úsečky jednoho rohu",
"select sheet edges first": "nejprve vyberte hrany plechu",
@@ -3048,6 +3395,7 @@
"settings.double_click_components": "Dvojitým kliknutím na komponentu ji aktivujete, propojenou komponentu upravíte na místě",
"settings.frame_rate_details_note": "Přidá graf časů posledních snímků s vykreslenými trojúhelníky, histogram časů snímků a to, co vykreslila GPU. Kliknutím na snímkovou frekvenci v pohledu je zobrazíte nebo skryjete.",
"settings.frame_rate_note": "Zobrazuje snímky za sekundu v pravém dolním rohu pohledu.",
"settings.insert_lists_open_designs": "Vložit návrh nabízí nejprve návrhy otevřené na jiných kartách",
"settings.measure_axis_distances": "Zobrazit vzdálenosti X/Y/Z",
"settings.measure_axis_distances_help": "Při otevřeném měření zobrazit kromě celkové vzdálenosti i složky ve směru os.",
"settings.msaa_applies_on_restart": "Vyhlazování se projeví při příštím spuštění SolidCraftu",
@@ -3072,6 +3420,10 @@
"shortcut.unpin": "Odepnout",
"sketch is missing": "náčrt chybí",
"sketch.degrees_of_freedom": "Stupně volnosti: {count}",
"sketch.dimension_added_driven": "Náčrt už tuto hodnotu určuje, proto byla kóta přidána jako řízená (referenční)",
"sketch.dimension_applied": "Kóta použita",
"sketch.dimension_applied_defined": "Kóta použita; definován parametr `{name}`",
"sketch.dimension_applied_renamed": "Kóta použita; parametr pojmenován `{name}`",
"sketch.dof_left": "Zbývající stupně volnosti: {count}",
"sketch.dof_left_one": "Zbývá {count} stupeň volnosti",
"sketch.draw_curves": "Kreslit jako {linetype}",
@@ -3106,6 +3458,8 @@
"sketch_text.use_font_file": "Použít soubor písma {path}",
"solid": "těleso",
"status.editing": "Upravuje se {name}",
"status.navigation": "Přiřazení myši: {mapping}",
"status.navigation_tip": "Jak myš pohybuje pohledem. Kliknutím zvolíte jiné přiřazení",
"status.under_constrained": "Nedourčeno (stupňů volnosti: {count})",
"status.under_constrained_one": "Nedourčeno ({count} stupeň volnosti)",
"status.units_tip": "Jednotky návrhu. Kliknutím je změníte",
@@ -3139,8 +3493,10 @@
"timeline.delete_folders_tip": "Ponechá jejich prvky a vnořené složky v historii",
"timeline.delete_folders_with_features_tip": "Smaže složky se všemi prvky v nich a jejich vnořenými složkami",
"timeline.delete_many": "Smazat vybrané prvky: {count}",
"timeline.edited_rolled_back": "Prvek {name} se změnil, ale leží za značkou historie, takže se nesestavuje: chcete-li vidět výsledek, přesuňte značku za něj",
"timeline.feature_error": "Chyba: {message}",
"timeline.feature_hint": "Dvojklikem upravíte · přetažením změníte pořadí · pravým tlačítkem zobrazíte další možnosti",
"timeline.feature_rolled_back": "Vráceno zpět: za značkou historie, proto se nesestavuje",
"timeline.feature_warning": "Upozornění: {message}",
"timeline.group": "Nová složka prvků",
"timeline.move_many": "Přesunout položky časové osy",
@@ -3220,6 +3576,10 @@
"ui.3d_mouse_offer": "Kalibrace 3D myši opraví prohozené nebo obrácené osy a nastaví její rychlost a pocit z ovládání.",
"ui.3d_mouse_offer_never": "Už nezobrazovat",
"ui.3d_mouse_offer_swap": "Přepnout na Hidraw (přímý ovladač)",
"ui.3d_mouse_orbit": "Otáčení",
"ui.3d_mouse_orbit_classic": "Klasické",
"ui.3d_mouse_orbit_tip": "Sledované: 3D myš otáčí pohled kolem té části modelu, která je na začátku otáčení uprostřed pohledu, označené slabou kuličkou. Klasické: kolem středu pohledu",
"ui.3d_mouse_orbit_traced": "Sledované",
"ui.3d_mouse_reading": "Hodnoty",
"ui.3d_mouse_reset_axes": "Obnovit přiřazení os",
"ui.3d_mouse_reset_view": "Obnovit pohled",
@@ -3604,6 +3964,7 @@
"ui.constant": "Konstantní",
"ui.constraints_conflict": "Konflikt vazeb",
"ui.construction": "Konstrukční",
"ui.construction.ribbon_label": "Pom. přímky",
"ui.context_menu": "Místní nabídka",
"ui.continuity_g0": "G0 hrana",
"ui.continuity_g1": "G1 tečně",
@@ -3695,6 +4056,14 @@
"ui.end_scale": "Koncové měřítko",
"ui.entities": "Prvky",
"ui.equal": "Rovnost",
"ui.equation_end": "Konec",
"ui.equation_explicit": "Explicitní",
"ui.equation_form": "Tvar",
"ui.equation_note": "Proměnná je prosté číslo: sin(t) ji bere v radiánech. Výsledek bez jednotky je v jednotce návrhu.",
"ui.equation_parametric": "Parametrický",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Ekvivalentní poloměr",
"ui.expand": "Rozbalit",
"ui.exportDxf": "Exportovat DXF…",
@@ -3760,6 +4129,7 @@
"ui.heading_design": "NÁVRH",
"ui.heading_draft": "ÚKOS",
"ui.heading_edit": "UPRAVIT",
"ui.heading_equation_curve": "KŘIVKA Z ROVNICE",
"ui.heading_extrude": "VYSUNUTÍ",
"ui.heading_fillet": "ZAOBLENÍ",
"ui.heading_finish_editing": "DOKONČIT ÚPRAVY",
@@ -3851,6 +4221,10 @@
"ui.import_ellipsis": "Importovat…",
"ui.infinite": "Nekonečná",
"ui.insert": "Vložit",
"ui.insert_design.browse": "Procházet…",
"ui.insert_design.open_designs": "Otevřené návrhy",
"ui.insert_design.saved_file": "{name} obsahuje neuložené změny, proto byl vložen jeho uložený soubor. Uložte jej a pak použijte Aktualizovat odkazy, aby se změny převzaly.",
"ui.insert_design.unsaved": "Neuložené změny",
"ui.inspect": "Analýza",
"ui.intersect": "Průnik",
"ui.isolate": "Izolovat",
@@ -4000,6 +4374,18 @@
"ui.project": "Promítnout",
"ui.project_face_edges_sketch": "Promítat hrany plochy do nových náčrtů",
"ui.properties": "Vlastnosti",
"ui.properties.copy_matrix": "Kopírovat matici",
"ui.properties.first_moments": "Statické momenty",
"ui.properties.inertia": "Moment setrvačnosti",
"ui.properties.inertia_note": "K těžišti, v osách světa (g·{unit}²)",
"ui.properties.inertia_unavailable": "Není k dispozici: síť některého tělesa není uzavřená.",
"ui.properties.inertia_x": "Ixx, Ixy, Ixz",
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Měření…",
"ui.properties.measuring_failed": "Měření se zastavilo před dokončením.",
"ui.properties.principal_axis": "Hlavní osa {number}",
"ui.properties.principal_moments": "Hlavní momenty setrvačnosti",
"ui.pull_direction": "Směr vyjímání",
"ui.quality": "Kvalita",
"ui.quantity": "Počet",
@@ -4062,6 +4448,7 @@
"ui.select": "Vybrat",
"ui.selectOther": "Vybrat jiné…",
"ui.selectTangentChain": "Vybrat tečný řetězec",
"ui.select_all": "Vybrat vše",
"ui.selection": "Výběr",
"ui.selection_modifiers": "Modifikátory výběru",
"ui.selection_shift_add_only": "Shift+klik pouze přidává",
@@ -4098,7 +4485,11 @@
"ui.sketch": "Náčrt",
"ui.sketch_dimension": "Kóta náčrtu",
"ui.sketch_grid": "Mřížka náčrtu",
"ui.sketch_intersect_geometry": "Geometrie",
"ui.sketch_intersect_projection_link": "Propojení promítnutí",
"ui.sketch_intersect_selection_filter": "Filtr výběru",
"ui.sketch_modifiers": "Modifikátory náčrtu",
"ui.sketch_project_geometry": "Geometrie",
"ui.sketch_scale": "Měřítko náčrtu",
"ui.sketches": "Náčrty",
"ui.slice": "Řez",
@@ -4149,6 +4540,7 @@
"ui.tab_manage": "Správa",
"ui.tab_sheet_metal": "Plech",
"ui.tab_view": "Pohled",
"ui.tab_weldments": "Svařence",
"ui.tangent": "Tečnost",
"ui.taper_angle": "Úhel zúžení",
"ui.tapped": "Se závitem",
@@ -4164,6 +4556,7 @@
"ui.tip_angle": "Úhel špičky",
"ui.to_object": "K objektu",
"ui.tool_direction": "Směr nástroje",
"ui.toolbar_tabs_hidden": "Všechny karty panelu nástrojů jsou skryté. Kliknutím na + nebo kliknutím pravým tlačítkem sem některou zobrazíte.",
"ui.top": "Shora",
"ui.top_diameter": "Horní průměr",
"ui.top_radius": "Horní poloměr",
@@ -4210,6 +4603,7 @@
"ui.visual_shaded_with_edges": "Stínovaný s hranami",
"ui.visual_style": "Vizuální styl",
"ui.visual_wireframe": "Drátový model",
"ui.wheel_zoom_speed": "Rychlost přiblížení kolečkem myši",
"ui.width": "Šířka",
"ui.window_system": "Okenní systém",
"ui.window_system_auto": "Automaticky",
@@ -4261,6 +4655,9 @@
"update.prefs_label": "Aktualizace",
"update.prefs_note": "Toto je SolidCraft {version} ({kind}). Kontrola se dotáže GitHubu na nejnovější verzi a nic dalšího neodesílá.",
"update.prefs_web": "Znovu načtěte stránku, abyste získali nejnovější webovou aplikaci. Pokud síť není dostupná nebo se aktualizace nestihne včas stáhnout, otevře se uložená verze; probíhající stahování pokračuje pro další načtení.",
"update.refresh_checking": "Hledání nejnovější verze…",
"update.refresh_fallback": "Novější verzi se nepodařilo ověřit; aktualizuje se na dříve nalezenou verzi {version}.",
"update.refresh_selected": "Aktualizace na {version}.",
"update.release_page": "Otevřít stránku vydání",
"update.restart": "Restartovat nyní",
"update.restart_later": "Později",
+11
View File
@@ -852,6 +852,16 @@
"cmd.sheet_refold": "Buk tilbage",
"cmd.sheet_rules": "Vis pladeregler",
"cmd.sheet_unfold": "Fold ud",
"cmd.sketch.construction_line": "Hjælpelinje",
"cmd.sketch.construction_line.angle": "Hjælpelinje med vinkel",
"cmd.sketch.construction_line.bisector": "Vinkelhalveringslinje",
"cmd.sketch.construction_line.horizontal": "Vandret hjælpelinje",
"cmd.sketch.construction_line.parallel": "Parallel hjælpelinje",
"cmd.sketch.construction_line.perpendicular": "Vinkelret hjælpelinje",
"cmd.sketch.construction_line.tangent_at": "Tangent i kurvepunkt",
"cmd.sketch.construction_line.tangent_external": "Tangent gennem eksternt punkt",
"cmd.sketch.construction_line.tangent_two": "Fælles tangent",
"cmd.sketch.construction_line.vertical": "Lodret hjælpelinje",
"cmd.sketch_arc_center_point": "Bue med centrum",
"cmd.sketch_arc_tangent": "Tangentbue",
"cmd.sketch_arc_three_point": "Trepunktsbue",
@@ -1903,6 +1913,7 @@
"ui.constant": "Konstant",
"ui.constraints_conflict": "Bindinger er i konflikt",
"ui.construction": "Konstruktionsgeometri",
"ui.construction.ribbon_label": "Hjælpelinjer",
"ui.context_menu": "Genvejsmenu",
"ui.continuity_g0": "G0-knæk",
"ui.continuity_g1": "G1-tangentkontinuitet",
+51
View File
@@ -803,6 +803,8 @@
"cmd.appearance_pick_up": "Aussehen aufnehmen",
"cmd.appearance_replace": "Erscheinungsbild ersetzen",
"cmd.assembly_bom": "Stückliste",
"cmd.assembly_bom_item_set": "Positionsnummer ändern",
"cmd.assembly_bom_renumber": "Positionen neu nummerieren",
"cmd.body_rename": "Körper umbenennen",
"cmd.browser_collapse_all": "Alles einklappen",
"cmd.browser_expand_all": "Alles ausklappen",
@@ -975,6 +977,7 @@
"cmd.motion_trace": "Bewegungsbahn",
"cmd.motion_trace_edit": "Bewegungsbahn bearbeiten",
"cmd.motion_trace_keep": "Bewegungsbahn behalten",
"cmd.occurrence_bom_type": "Stücklistentyp",
"cmd.occurrence_copy": "Einfügen (Instanz)",
"cmd.occurrence_drag": "Instanz ziehen",
"cmd.occurrence_ground": "Festsetzen",
@@ -1085,6 +1088,16 @@
"cmd.sheet_refold": "Wieder falten",
"cmd.sheet_rules": "Blechregeln auflisten",
"cmd.sheet_unfold": "Entfalten",
"cmd.sketch.construction_line": "Konstruktionslinie",
"cmd.sketch.construction_line.angle": "Konstruktionslinie unter Winkel",
"cmd.sketch.construction_line.bisector": "Winkelhalbierende",
"cmd.sketch.construction_line.horizontal": "Horizontale Konstruktionslinie",
"cmd.sketch.construction_line.parallel": "Parallele Konstruktionslinie",
"cmd.sketch.construction_line.perpendicular": "Senkrechte Konstruktionslinie",
"cmd.sketch.construction_line.tangent_at": "Tangente an Kurvenpunkt",
"cmd.sketch.construction_line.tangent_external": "Tangente durch äußeren Punkt",
"cmd.sketch.construction_line.tangent_two": "Gemeinsame Tangente",
"cmd.sketch.construction_line.vertical": "Vertikale Konstruktionslinie",
"cmd.sketch_arc3d": "3D-Bogen",
"cmd.sketch_arc_center_point": "Mittelpunkt-Kreisbogen",
"cmd.sketch_arc_tangent": "Tangentialbogen",
@@ -1367,6 +1380,16 @@
"help.mit": "MIT-Lizenz",
"help.notice": "NOTICE",
"help.pointcloud.insert": "Fügt einen PLY-, XYZ- oder PTS-Scan als Punktwolke neben dem Modell ein. Verwenden Sie ihn als Referenz beim Modellieren anhand von Messdaten.",
"help.sketch.construction_line": "Erstellt eine unendliche Konstruktionslinie durch zwei Punkte, ohne Skizzenprofile zu teilen.",
"help.sketch.construction_line.angle": "Erstellt eine unendliche Konstruktionslinie in einem Winkel zur Skizzen-X-Achse. Punkt wählen und Winkel eingeben oder Richtung wählen.",
"help.sketch.construction_line.bisector": "Zwei sich schneidende gerade Skizzenlinien wählen, dann eine der beiden Winkelhalbierenden. Das Ergebnis folgt den Ausgangslinien.",
"help.sketch.construction_line.horizontal": "Erstellt eine unendliche horizontale Konstruktionslinie durch einen Punkt. Die Horizontalbedingung bleibt bei späteren Änderungen erhalten.",
"help.sketch.construction_line.parallel": "Gerade Skizzenlinie wählen, dann eine parallele unendliche Konstruktionslinie platzieren. Rechtsklick wählt eine andere Referenz.",
"help.sketch.construction_line.perpendicular": "Gerade Skizzenlinie wählen, dann eine senkrechte unendliche Konstruktionslinie platzieren. Rechtsklick wählt eine andere Referenz.",
"help.sketch.construction_line.tangent_at": "Erstellt eine Tangente an einem Punkt eines Kreises oder Kreisbogens oder an einem Endpunkt eines offenen Splines oder Kegelschnitts. Kurve wählen, dann Berührpunkt.",
"help.sketch.construction_line.tangent_external": "Kreis oder Kreisbogen wählen, dann einen äußeren Punkt und eine Tangentenlösung. Die Vorschau zeigt nur Berührpunkte auf dem gezeichneten Bogen.",
"help.sketch.construction_line.tangent_two": "Zwei Kreise oder Kreisbögen wählen, dann eine gemeinsame Tangente in der Vorschau. Die Berührpunkte müssen auf den gezeichneten Kurven liegen.",
"help.sketch.construction_line.vertical": "Erstellt eine unendliche vertikale Konstruktionslinie durch einen Punkt. Die Vertikalbedingung bleibt bei späteren Änderungen erhalten.",
"help.sketch.equation_curve": "Zeichnet eine Kurve aus Formeln über einen Bereich: x(t) und y(t) oder y = f(x). Die Formeln können Parameter verwenden, und die Kurve folgt ihnen: für eine Sinuswelle, eine Spirale oder die Evolvente eines Zahnrads.",
"help.solid.chamfer": "Schneidet die gewählten Kanten mit einer ebenen Fase im eingestellten Abstand ab. Damit brechen Sie scharfe Kanten oder erleichtern das Einführen eines Stifts oder einer Schraube.",
"help.solid.combine": "Kombiniert Körper: vereinigt sie, zieht sie von einem Zielkörper ab oder behält nur das gemeinsame Volumen; die Werkzeugkörper können erhalten bleiben. Damit fügen Sie Teile zusammen, schneiden eine Form mit einer anderen aus oder finden, wo sich zwei Körper überschneiden.",
@@ -1797,6 +1820,7 @@
"prefs.dialogs_left_column": "In der linken Spalte",
"prefs.dialogs_note": "Wo Befehlsdialoge öffnen: am Rand der Ansicht angedockt oder in der linken Spalte anstelle von Browser und Verlauf, die beim Schließen des Dialogs wie zuvor zurückkehren.",
"prefs.display": "Anzeige",
"prefs.drawings": "Zeichnungen",
"prefs.edges": "Kanten und Schattierung",
"prefs.extend": "Erweitern",
"prefs.extra_navigation": "Mit Strg und gedrückter linker Maustaste auf einer freien Fläche drehen. Leertaste gedrückt halten, um die Ansicht zu verschieben.",
@@ -1850,9 +1874,14 @@
"prefs.max_file_size_step": "STEP- und Importdateien",
"prefs.max_file_size_web": "Die Web-App öffnet STEP- und Importdateien bis 512 MB und Designs bis 256 MB: Ein Browser-Tab kann keine größeren Dateien aufnehmen. In der Desktop-App lassen sich diese Grenzen erhöhen.",
"prefs.megabytes": "MB",
"prefs.menu_grid": "Große Symbole",
"prefs.menu_list": "Liste",
"prefs.menus": "Menüs",
"prefs.minutes_suffix": " min",
"prefs.origin_plane_names": "Namen der Ursprungsebenen",
"prefs.origin_plane_names_note": "Namen in Browser, Dialogen und Listen. {top} ist XY, {front} ist XZ und {right} ist YZ, mit Z nach oben. Befehle, Skripte und gespeicherte Konstruktionen behalten XY, XZ und YZ.",
"prefs.persistent_ribbon_pressed": "Aktive Menübandbefehle hervorheben",
"prefs.persistent_ribbon_pressed_help": "Hebt Befehle im Menüband hervor, solange ihre Effekte eingeschaltet sind. Deaktivieren Sie diese Option, um die bisherige neutrale Darstellung und Befehlshilfe beizubehalten.",
"prefs.perspective_fov": "Sichtfeld",
"prefs.profile_active": "Aktives Profil",
"prefs.profile_applied": "Profil angewendet.",
@@ -1881,6 +1910,11 @@
"prefs.sketch_align_points_note": "Beim Zeichnen richtet sich ein Punkt zugleich waagerecht an einem Skizzenpunkt und senkrecht an einem anderen aus, mit einer gepunkteten Hilfslinie; der Klick behält beide Ausrichtungen. Aus: nur am vorherigen Punkt, jeweils eine Achse.",
"prefs.sketch_conflict_colour": "Widersprüchliche Geometrie in der Konfliktfarbe",
"prefs.sketch_conflict_colour_note": "Solange die Bedingungen einer Skizze im Konflikt stehen, werden auch die Kurven und Punkte, die eine nicht erfüllte Bedingung hält, in der Konfliktfarbe gezeichnet, nicht nur ihr Symbol oder ihre Bemaßung. Aus: Sie behalten ihre üblichen Farben.",
"prefs.sketch_construction_lines": "Erweiterte Konstruktionslinien-Werkzeuge",
"prefs.sketch_open_look_at": "Beim Öffnen einer Skizze auf sie ausrichten",
"prefs.sketch_open_look_at_note": "Aus: Beim Erstellen oder Bearbeiten einer Skizze bleibt die Ansicht, wie sie ist. „Ansehen“ richtet die Ansicht bei Bedarf auf die Skizze aus.",
"prefs.sketch_recent_snap": "Automatisch an zuletzt verwendete Mittelpunkte fangen",
"prefs.sketch_recent_snap_note": "Fängt den Zeiger beim Zeichnen dort ein, wo sich die Hilfslinien der beiden zuletzt verwendeten Kreismittelpunkte oder Kantenmitten kreuzen. Aus: die Hilfslinien bleiben sichtbar und der Zeiger bewegt sich nicht.",
"prefs.sketch_state_icons": "Skizzensymbole in der Farbe ihres Zustands",
"prefs.sketch_state_icons_note": "Im Verlauf und im Browser nimmt das Symbol einer Skizze die Farbe ihres Zustands an (unterbestimmt, vollständig bestimmt oder im Konflikt), und ihr Tooltip nennt den Zustand. Aus: Alle Skizzen haben dasselbe Symbol.",
"prefs.sketch_tab_always": "Registerkarte Skizze immer zeigen",
@@ -1920,6 +1954,10 @@
"properties.title": "Eigenschaften: {name}",
"recovery.days_ago": "vor {count} Tagen",
"recovery.detail": "{file} · {features} Merkmale · automatisch gespeichert {when}",
"recovery.discard_all": "Alle verwerfen",
"recovery.discard_all_detail": "Dies kann nicht rückgängig gemacht werden.",
"recovery.discard_all_title": "{count} automatische Sicherungen verwerfen?",
"recovery.discard_all_title_one": "1 automatische Sicherung verwerfen?",
"recovery.hours_ago": "vor {count} Std.",
"recovery.just_now": "gerade eben",
"recovery.min_ago": "vor {count} Min.",
@@ -3317,6 +3355,15 @@
"ui.constant": "Konstant",
"ui.constraints_conflict": "Bedingungen konfliktreich",
"ui.construction": "Konstruktionslinie",
"ui.construction.angle_hint": "Konstruktionslinie: Punkt anklicken, dann Winkel eingeben oder Richtung wählen",
"ui.construction.bisector_hint": "Winkelhalbierende: zwei sich schneidende Geraden wählen, dann gewünschte Lösung",
"ui.construction.common_hint": "Gemeinsame Tangente: zwei Kreise/Bögen wählen, dann gewünschte Lösung",
"ui.construction.contact_hint": "Tangente: Kreis/Bogen oder offenen Spline/Kegelschnitt wählen, dann Berührpunkt (Freiformkurven: Endpunkte)",
"ui.construction.external_hint": "Tangente: Kreis oder Bogen, äußeren Punkt, dann gewünschte Lösung wählen",
"ui.construction.free_hint": "Konstruktionslinie: zwei Punkte anklicken; Rechtsklick beginnt neu",
"ui.construction.point_hint": "Konstruktionslinie: Durchgangspunkt anklicken",
"ui.construction.reference_hint": "Konstruktionslinie: Gerade wählen, dann Punkt; Rechtsklick wechselt die Referenz",
"ui.construction.ribbon_label": "Hilfslinien",
"ui.context_menu": "Kontextmenü",
"ui.continuity_g0": "G0 Knick",
"ui.continuity_g1": "G1 Tangente",
@@ -3437,6 +3484,7 @@
"ui.fine": "Fein",
"ui.finest": "Sehr fein",
"ui.finish_sketch": "Skizze beenden",
"ui.first_angle": "Erster Winkel",
"ui.fit": "Einpassen",
"ui.fix_unfix": "Fixieren/Lösen",
"ui.flat": "Flach",
@@ -3695,6 +3743,7 @@
"ui.profiles": "Profile",
"ui.project": "Projizieren",
"ui.project_face_edges_sketch": "Flächenkanten in neue Skizzen projizieren",
"ui.projection_of_new_drawings": "Projektion neuer Zeichnungen",
"ui.properties": "Eigenschaften",
"ui.properties.copy_matrix": "Matrix kopieren",
"ui.properties.first_moments": "Statische Momente",
@@ -3750,6 +3799,7 @@
"ui.revolve": "Drehen",
"ui.ribbon_exit": "Beenden",
"ui.ribbon_labels": "Text unter den Symbolen im Menüband anzeigen",
"ui.ribbon_menus_skip_pinned": "Angeheftete Befehle nicht in den Aufklappmenüs wiederholen",
"ui.ribbon_pin_footer": "Angeheftete Befehle erscheinen im Menüband. Fahren Sie über eine Zeile, um sie anzuheften oder zu lösen.",
"ui.ribbon_workspace": "Arbeitsbereich",
"ui.right": "Rechts",
@@ -3850,6 +3900,7 @@
"ui.text": "Text",
"ui.theme": "Design",
"ui.thickness": "Dicke",
"ui.third_angle": "Dritter Winkel",
"ui.thread": "Gewinde",
"ui.tie_ends": "Verknüpfen",
"ui.tie_ends_tip": "Alle unverknüpften Enden mit Abhängigkeiten versehen",
+74
View File
@@ -1,22 +1,42 @@
{
"A Single hole snaps to the middle of its face and to the centres of its round edges": "A Single hole snaps to the middle of its face and to the centres of its round edges",
"Base Center": "Base Centre",
"Center X": "Centre X",
"Center Y": "Centre Y",
"Center of mass": "Centre of mass",
"Centre to centre": "Centre to centre",
"Circle center": "Circle centre",
"Colour": "Colour",
"Copy all licences": "Copy all licences",
"Customize Toolbar": "Customise Toolbar",
"Customize…": "Customise…",
"Face center": "Face centre",
"Favorites": "Favourites",
"Favourite": "Favourite",
"Mass Center": "Mass Centre",
"Modeled": "Modelled",
"Select the centre the pattern turns around first": "Select the centre the pattern turns around first",
"Snap to face and edge centres": "Snap to face and edge centres",
"Specialise": "Specialise",
"cmd.appearance_favorite": "Favourite Look",
"cmd.component_cycle_color": "Cycle Component Colour",
"cmd.construct_point_center": "Point At Centre Of Circle/Sphere/Torus",
"cmd.inspect_center_of_mass": "Centre of Mass",
"cmd.inspect_colored_components": "Enable Component Colours",
"cmd.inspect_colored_components_disable": "Disable Component Colours",
"cmd.parameters_favorite": "Favourite Parameter",
"cmd.render_aging_describe": "Layered Surface Aging",
"cmd.render_effects_describe": "Lens and Creative Effects",
"cmd.sketch.construction_line": "Construction Line",
"cmd.sketch.construction_line.angle": "Construction Line at Angle",
"cmd.sketch.construction_line.bisector": "Angle Bisector",
"cmd.sketch.construction_line.horizontal": "Horizontal Construction Line",
"cmd.sketch.construction_line.parallel": "Parallel Construction Line",
"cmd.sketch.construction_line.perpendicular": "Perpendicular Construction Line",
"cmd.sketch.construction_line.tangent_at": "Tangent at Curve Point",
"cmd.sketch.construction_line.tangent_external": "Tangent through External Point",
"cmd.sketch.construction_line.tangent_two": "Common Tangent",
"cmd.sketch.construction_line.vertical": "Vertical Construction Line",
"cmd.sketch_arc_center_point": "Centre Point Arc",
"cmd.sketch_circle_center": "Centre Diameter Circle",
"cmd.sketch_rectangle_center": "Centre Rectangle",
@@ -28,7 +48,26 @@
"color.gamma": "Showing colour values in 0-255 gamma space",
"color.linear": "Showing colour values in 0-1 linear space",
"color.selected": "Selected colour",
"dxf.cancelled": "DXF export cancelled",
"dxf.cancelling": "Cancelling DXF export",
"help.apache": "Apache licence 2.0",
"help.appearance.assign": "Gives the selected bodies, faces or components a colour or a material look, without changing their weight. Use it to tell parts apart or to preview a finish.",
"help.face.delete": "Removes the selected faces and lets the neighbouring faces close the gap, or leaves the gap open as a surface. Use it to take off a rounded edge, a hole or a boss that is in the way.",
"help.font_details": "The interface uses egui's built-in fonts (Ubuntu Light and Hack, under the Ubuntu Font Licence and the MIT/Bitstream Vera licence; Noto Emoji and the emoji icon font, under the OFL and MIT). Sketch text uses Liberation Sans (SIL OFL 1.1). The Crafting Apps' optional font pack, craft-fonts (BIZ UDPGothic, Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC, Noto Sans Arabic; SIL OFL 1.1), is not bundled in SolidCraft builds.",
"help.licences": "Licences",
"help.material.assign": "Sets what the selected bodies are made of, such as steel, aluminium or ABS. Use it so that the mass and weight match the real part.",
"help.mit": "MIT licence",
"help.solid.draft": "Tilts the selected faces by the angle you set, measured from a neutral plane. Use it on moulded or cast parts so that they slide out of the mould.",
"help.solid.revolve": "Spins a sketch profile around an axis to make a round solid. Use it for shafts, knobs, bowls and any part that is round about a centre line.",
"help.solid.split_body": "Cuts a body into separate bodies with a plane, the face of another body or a sketch line. Use it to make parts that are printed, machined or coloured on their own.",
"help.solid.split_face": "Divides the selected faces along a plane, the face of another body or sketch curves, without cutting the body. Use it to give part of a face its own draft, colour or offset.",
"help.third_party": "Third-party licences",
"home.new_mm_hint": "Millimetres · opens in Design",
"navbar.custom.customise": "Customise navigation bar…",
"navbar.custom.position_centre": "Centre",
"navbar.description.separator": "A thin line that groups neighbouring slots.",
"pattern.alignment_hint": "Counts include the original. Centre balances copies; Flip chooses the extra side for even totals.",
"prefs.bottom_centre": "Bottom centre",
"prefs.logo_theme": "Theme's colours",
"prefs.max_file_size": "Largest file to open",
"prefs.max_file_size_design": "Design files",
@@ -39,6 +78,9 @@
"prefs.megabytes": "MB",
"prefs.sketch_conflict_colour": "Conflicting geometry in the conflict colour",
"prefs.sketch_conflict_colour_note": "While a sketch's constraints conflict, the curves and points a failing constraint holds are drawn in the conflict colour too, not only its glyph or dimension. Off: they keep their usual colours.",
"prefs.sketch_construction_lines": "Extended construction line tools",
"prefs.sketch_recent_snap": "Auto snap to recent centres and midpoints",
"prefs.sketch_recent_snap_note": "While drawing, snap the cursor where the guides of the two most recent circle centres or straight-edge midpoints cross. Off: those guides stay visual and the cursor does not move.",
"prefs.sketch_state_icons": "Sketch icons in the colour of their state",
"prefs.sketch_state_icons_note": "In History and the browser, a sketch's icon takes the colour of its state (under constrained, fully constrained or conflicting) and its tooltip names the state. Off: every sketch has the same icon.",
"prefs.sketch_tracking_guides": "Centre and midpoint alignment guides",
@@ -50,6 +92,7 @@
"prefs.theme_follow_note": "Reloaded whenever another tool rewrites it. Choosing a theme stops following it.",
"prefs.theme_follow_off": "Off",
"prefs.theme_follow_stop": "Stop following",
"prefs.trackpad_zoom_modifier.help": "Hold only this key to zoom at the pointer with vertical scroll. Off keeps the existing scroll behaviour.",
"prefs.view": "View behaviour",
"prefs.viewport_background_colour": "Colour",
"render.aging_add": "Add aging layer",
@@ -79,6 +122,7 @@
"render.aging_target_help": "A named target must still match its captured index and name. Global masks are world-anchored; they do not follow moving parts. This is neither cavity detection nor true edge wear. Filter the list to reach additional bodies.",
"render.aging_target_search": "Filter body names",
"render.aging_upward": "Upward-facing deposition",
"render.appearance_editor.base_colour": "Base colour",
"render.backdrop_first": "Start / centre colour",
"render.backdrop_second": "End / edge colour",
"render.backdrop_x": "Centre X",
@@ -95,21 +139,31 @@
"render.base_color": "Base colour · sRGB",
"render.bloom_help": "Creative output-only glow from positive linear highlights, spread with three normalised box passes. Radius is in output pixels. Added in linear display light before sRGB; not a lens, volumetric effect or convergence improvement. The raw EXR is unchanged.",
"render.chromatic_offset": "Chromatic edge offset",
"render.cpu_area_editor_help": "Full side vectors in millimeters; U cross V points towards the emitting side. This differs from GPU half-edge vectors.",
"render.cpu_light_help": "Up to eight directional lights. An empty custom list turns them off; selecting a preset restores its lights. Colours are linear RGB and intensity is relative, not watts.",
"render.cpu_linear_color": "Linear colour (R, G, B)",
"render.effects_gpu_only": "These effects require GPU path tracing. Changing the page never switches the renderer automatically.",
"render.effects_help": "Combine ordered colour looks and image-space lens effects. Rendering and raw-master regrading use the same saved settings. Raw EXR stays unchanged. These are original artistic controls, not calibrated lens or branded-film emulations.",
"render.effects_reset_lens": "Reset lens effects",
"render.effects_seed": "Pattern seed",
"render.env_colour": "Colour",
"render.environment.radial_only": "Centre and radius apply to Radial mode.",
"render.error_finish_gesture": "finish the modelling gesture before previewing",
"render.error_finish_operation": "finish the current modelling operation before entering Render",
"render.film_grain": "Photographic grain",
"render.flare_ghosts": "Ghost rings per source",
"render.flare_halo": "Flare halo",
"render.flare_streak": "Anamorphic-style streak",
"render.flare_strength": "Highlight flare strength",
"render.flare_threshold": "Scene-linear flare threshold",
"render.frame_centre_mark": "Centre mark",
"render.hdr_primaries_declared": "The source declares its colour primaries.",
"render.hdr_primaries_srgb": "Colour primaries: sRGB/D65",
"render.hdr_primaries_undeclared": "The source does not declare primaries; review the renderer colour requirements.",
"render.image_cancelled": "Render cancelled",
"render.image_cancelling": "Cancelling",
"render.image_scene_stale": "Finish the modelling gesture or refresh the scene before checking or starting an image.",
"render.inspector_colour": "Colour",
"render.layer_down": "Move down",
"render.layer_enabled": "Layer enabled",
"render.layer_remove": "Remove layer",
@@ -124,6 +178,11 @@
"render.library_rig_help": "Fit once at an explicit centre and physical extent. Complete rigs include passive cards; calibration blockers still refuse. Conservative emitter/card clearance is checked before saving.",
"render.library_source_preview_help": "Authored base-colour source map. This is not a rendered or measured material preview.",
"render.library_unfavorite": "Remove favourite",
"render.light_behaviour": "BEHAVIOUR",
"render.light_preview_help": "Live view is unshadowed; Area lights use a centre-sample approximation. Render uses the complete light model.",
"render.light_product_centre": "Product centre",
"render.light_temperature": "Colour temperature",
"render.lighting_colour": "Colour",
"render.look_add": "Add colour look",
"render.look_bleach": "Bleach-bypass-inspired",
"render.look_cool": "Cool",
@@ -147,30 +206,45 @@
"render.radial_distortion": "Radial distortion",
"render.ribbon_aging": "Aging",
"render.ribbon_effects": "Effects",
"render.ribbon_studios_help": "Browse implemented studio compositions and review their replacements before applying. Concept-only scenes remain labelled.",
"render.sharpening": "Detail sharpening",
"render.soft_focus": "Soft focus",
"render.stage_panels.centre": "Centre",
"render.stage_panels.source_note": "Authored base-colour source map. Not a measured material.",
"render.studio_area_help": "Up to four one-sided rectangles. Orthogonal half-edges U and V define size; U × V faces the lit side. Coordinates are world-space millimetres.",
"render.studio_center": "Centre X, Y, Z (mm)",
"render.studio_hdr_help": "Radiance .hdr, 2:1 panorama, up to 2048 × 1024. EXR is unavailable. The colour assumption applies only when primaries are unspecified.",
"sketch_text.align_center": "Centre",
"ui.3d_mouse_kind_cap": "Return to Centre",
"ui.3d_mouse_looks_like_cap": "The reading stays put while you hold it, the way a Return to Centre device does.",
"ui.3d_mouse_orbit_tip": "Traced: the 3D mouse turns the view around the part of the model in the middle of the view when the turn begins, marked by a faint ball. Classic: around the view's centre",
"ui.3d_mouse_step_pull": "Pull the cap towards you, hold it, then let go.",
"ui.3d_mouse_switch_cap": "Calibrate as Return to Centre",
"ui.agent_chat_minimize": "Minimise to a strip",
"ui.ai_mode_edits_note": "Modelling commands run without asking; saving, opening, exporting and other file or destructive actions still ask.",
"ui.center": "Centre",
"ui.center_arc_follows_cursor": "Centre point arc follows the cursor's direction",
"ui.center_arc_follows_cursor_tip": "A centre point arc runs clockwise or counter-clockwise the way the cursor goes round its centre. Off: always counter-clockwise from the start.",
"ui.centerline": "Centreline",
"ui.colour_vision": "Colour vision",
"ui.colour_vision_note": "Changes the colours that carry a meaning: sketch states, axes, bends, analyses and icons. If you use Windows colour filters, keep this Off.",
"ui.colour_vision_off_tip": "The theme's own colours",
"ui.construction.ribbon_label": "X-Lines",
"ui.customizeToolbar": "Customise Toolbar…",
"ui.default_modelling_orientation": "Default modelling orientation",
"ui.design_properties.license": "Licence",
"ui.design_properties.organization": "Organisation",
"ui.export_keymap_tip": "Keys, S box favourites and the toolbar, as a file",
"ui.layout_compact": "Compact",
"ui.layout_floating": "Floating",
"ui.material_review.claims": "Sources and licences are unverified claims. Missing values remain unknown.",
"ui.point_cloud_color_by": "Colour By",
"ui.point_cloud_file_colors": "File Colours",
"ui.point_cloud_no_file_colors": "The file has no colours",
"ui.point_cloud_single_color": "Single Colour",
"ui.properties.inertia_note": "About the centre of mass, in world axes (g·{unit}²)",
"ui.ribbon_labels": "Show text under ribbon icons",
"ui.view_centre": "View centre",
"ui.workspace_layout": "Workspace layout",
"ui.zoom_to_cursor_tip": "The wheel zooms towards the point under the cursor (off: towards the view's centre)",
"update.prefs_flatpak": "Flatpak updates this copy ({version}): run {command} or use your software centre. SolidCraft doesn't check."
+149 -66
View File
@@ -6,7 +6,7 @@
"2. Attach your screenshot: copy and paste it, or save and upload the PNG.": "2. Attach your screenshot: copy and paste it, or save and upload the PNG.",
"2D": "2D",
"3. Click Submit new issue on GitHub to send your report.": "3. Click Submit new issue on GitHub to send your report.",
"A Single hole snaps to the middle of its face and to the centres of its round edges": "A Single hole snaps to the middle of its face and to the centres of its round edges",
"A Single hole snaps to the middle of its face and to the centres of its round edges": "A Single hole snaps to the middle of its face and to the centers of its round edges",
"A new configuration, a copy of the active one": "A new configuration, a copy of the active one",
"A placed Single hole has a handle to drag it, and picking its face again moves the hole there instead of taking it out": "A placed Single hole has a handle to drag it, and picking its face again moves the hole there instead of taking it out",
"A short title for the problem (optional)": "A short title for the problem (optional)",
@@ -100,7 +100,7 @@
"Center X": "Center X",
"Center Y": "Center Y",
"Center of mass": "Center of mass",
"Centre to centre": "Centre to centre",
"Centre to centre": "Center to center",
"Centroid": "Centroid",
"Chamfer Type": "Chamfer Type",
"Channel": "Channel",
@@ -117,7 +117,7 @@
"Close draft": "Close draft",
"Collapse": "Collapse",
"Collisions": "Collisions",
"Colour": "Colour",
"Colour": "Color",
"Command": "Command",
"Comment": "Comment",
"Component 1": "Component 1",
@@ -137,7 +137,7 @@
"Copies the definition only. Assign it from Physical Material when ready.": "Copies the definition only. Assign it from Physical Material when ready.",
"Copy Error Message": "Copy Error Message",
"Copy Warning Message": "Copy Warning Message",
"Copy all licences": "Copy all licences",
"Copy all licences": "Copy all licenses",
"Copy diagnostic information": "Copy diagnostic information",
"Copy report": "Copy report",
"Copy screenshot": "Copy screenshot",
@@ -244,7 +244,7 @@
"Factor must be a positive number": "Factor must be a positive number",
"Fastener": "Fastener",
"Favorites": "Favorites",
"Favourite": "Favourite",
"Favourite": "Favorite",
"Feature": "Feature",
"Files from many CAD programs have Y up, so they open lying on their back here (Z up).": "Files from many CAD programs have Y up, so they open lying on their back here (Z up).",
"Filter": "Filter",
@@ -563,7 +563,7 @@
"Select bodies or faces instead": "Select bodies or faces instead",
"Select edges": "Select edges",
"Select points of the sketch being edited": "Select points of the sketch being edited",
"Select the centre the pattern turns around first": "Select the centre the pattern turns around first",
"Select the centre the pattern turns around first": "Select the center the pattern turns around first",
"Select the curves to offset first": "Select the curves to offset first",
"Select the mirror line": "Select the mirror line",
"Select the sketch curves or points to mirror first": "Select the sketch curves or points to mirror first",
@@ -592,12 +592,12 @@
"Sketch points": "Sketch points",
"Slider": "Slider",
"Slot width": "Slot width",
"Snap to face and edge centres": "Snap to face and edge centres",
"Snap to face and edge centres": "Snap to face and edge centers",
"SolidCraft cannot submit reports directly. Submit on GitHub; no token is needed in the app.": "SolidCraft cannot submit reports directly. Submit on GitHub; no token is needed in the app.",
"SolidCraft closed before these designs were saved. Their last autosave can be opened.": "SolidCraft closed before these designs were saved. Their last autosave can be opened.",
"Spacing 2 must be a non-zero number": "Spacing 2 must be a non-zero number",
"Spacing must be a non-zero number": "Spacing must be a non-zero number",
"Specialise": "Specialise",
"Specialise": "Specialize",
"Speed": "Speed",
"Splitting tool": "Splitting tool",
"Square": "Square",
@@ -775,6 +775,8 @@
"at the face": "at the face",
"bom.group_children": "Sub-parts in their part's row",
"browser.body_name": "Body{number}",
"browser.calibrate_click_a": "Click the image for Point A, or type its coordinates.",
"browser.calibrate_click_b": "Click the image for Point B, or type its coordinates.",
"browser.calibrate_title": "Calibrate: {name}",
"browser.capture_many": "{count} components were moved but their positions aren't captured.",
"browser.capture_note": "Capture keeps the new position; Revert puts it back.",
@@ -809,7 +811,7 @@
"cmd.appearance_assign": "Appearance",
"cmd.appearance_chain": "Appearance Chain",
"cmd.appearance_copy": "Copy Look",
"cmd.appearance_favorite": "Favourite Look",
"cmd.appearance_favorite": "Favorite Look",
"cmd.appearance_library": "Appearance Library",
"cmd.appearance_list": "List Appearances",
"cmd.appearance_paint": "Paint Appearance",
@@ -817,6 +819,8 @@
"cmd.appearance_pick_up": "Pick Up Appearance",
"cmd.appearance_replace": "Replace Appearance",
"cmd.assembly_bom": "Bill of Materials",
"cmd.assembly_bom_item_set": "Change Item Number",
"cmd.assembly_bom_renumber": "Renumber Items",
"cmd.body_rename": "Rename Body",
"cmd.browser_collapse_all": "Collapse All",
"cmd.browser_expand_all": "Expand All",
@@ -907,6 +911,36 @@
"cmd.document_metadata_set": "Change Design Properties",
"cmd.document_revision": "Design Revision",
"cmd.document_units": "Change Design Units",
"cmd.drawing_balloon_add": "Add Balloon",
"cmd.drawing_balloon_edit": "Edit Balloon",
"cmd.drawing_balloon_inspect": "Inspect Balloon",
"cmd.drawing_close": "Close Drawing",
"cmd.drawing_create": "Create Drawing",
"cmd.drawing_delete": "Delete Drawing",
"cmd.drawing_dimension_add": "Add Drawing Dimension",
"cmd.drawing_dimension_edit": "Edit Drawing Dimension",
"cmd.drawing_dimension_inspect": "Inspect Drawing Dimension",
"cmd.drawing_export": "Export Sheet",
"cmd.drawing_inspect": "Inspect Drawing",
"cmd.drawing_list": "List Drawings",
"cmd.drawing_open": "Open Drawing",
"cmd.drawing_properties": "Drawing Properties",
"cmd.drawing_properties_remove": "Remove Drawing Property",
"cmd.drawing_properties_set": "Change Drawing Properties",
"cmd.drawing_revision_add": "Add Revision",
"cmd.drawing_revision_delete": "Delete Revision",
"cmd.drawing_revision_edit": "Edit Revision",
"cmd.drawing_scene": "Draw Sheet",
"cmd.drawing_set": "Drawing Settings",
"cmd.drawing_sheet_add": "Add Sheet",
"cmd.drawing_sheet_delete": "Delete Sheet",
"cmd.drawing_sheet_reorder": "Reorder Sheets",
"cmd.drawing_sheet_set": "Sheet Settings",
"cmd.drawing_view_copy_to_sheet": "Copy View to Sheet",
"cmd.drawing_view_edit": "Edit Drawing View",
"cmd.drawing_view_inspect": "Inspect Drawing View",
"cmd.drawing_view_move_to_sheet": "Move View to Sheet",
"cmd.drawing_view_snapshot": "Drawing View Snapshot",
"cmd.edit_checkpoint": "Checkpoint",
"cmd.edit_repeat": "Repeat Last Command",
"cmd.edit_restore_checkpoint": "Restore Checkpoint",
@@ -991,6 +1025,7 @@
"cmd.motion_trace_edit": "Edit Motion Trace",
"cmd.motion_trace_keep": "Keep Motion Trace",
"cmd.occurrence_align": "Align Occurrence",
"cmd.occurrence_bom_type": "Bill of Materials Type",
"cmd.occurrence_copy": "Paste (Instance)",
"cmd.occurrence_drag": "Drag Occurrence",
"cmd.occurrence_ground": "Ground",
@@ -1003,7 +1038,7 @@
"cmd.parameters_complete": "Complete Expression",
"cmd.parameters_delete": "Delete Parameter",
"cmd.parameters_export": "Export Parameters",
"cmd.parameters_favorite": "Favourite Parameter",
"cmd.parameters_favorite": "Favorite Parameter",
"cmd.parameters_graph": "Parameter Graph",
"cmd.parameters_import": "Import Parameters",
"cmd.parameters_list": "List Parameters",
@@ -1101,6 +1136,16 @@
"cmd.sheet_refold": "Refold",
"cmd.sheet_rules": "List Sheet Metal Rules",
"cmd.sheet_unfold": "Unfold",
"cmd.sketch.construction_line": "Construction Line",
"cmd.sketch.construction_line.angle": "Construction Line at Angle",
"cmd.sketch.construction_line.bisector": "Angle Bisector",
"cmd.sketch.construction_line.horizontal": "Horizontal Construction Line",
"cmd.sketch.construction_line.parallel": "Parallel Construction Line",
"cmd.sketch.construction_line.perpendicular": "Perpendicular Construction Line",
"cmd.sketch.construction_line.tangent_at": "Tangent at Curve Point",
"cmd.sketch.construction_line.tangent_external": "Tangent through External Point",
"cmd.sketch.construction_line.tangent_two": "Common Tangent",
"cmd.sketch.construction_line.vertical": "Vertical Construction Line",
"cmd.sketch_arc3d": "3D Arc",
"cmd.sketch_arc_center_point": "Center Point Arc",
"cmd.sketch_arc_tangent": "Tangent Arc",
@@ -1340,8 +1385,8 @@
"drive.stopped_by_loop": "Stopped at {value}: the loop through {joint} can't close any further",
"drive.unconnected": "Moves nothing: {part} is not connected to anything grounded",
"dxf.cancel_wait": "Waiting for the export to stop…",
"dxf.cancelled": "DXF export cancelled",
"dxf.cancelling": "Cancelling DXF export",
"dxf.cancelled": "DXF export canceled",
"dxf.cancelling": "Canceling DXF export",
"dxf.exporting": "Exporting DXF",
"dxf.invalid_tolerance": "Curve tolerance must be between 0.0001 and 1 mm.",
"dxf.progress.index": "Preparing surfaces (2/5)",
@@ -1372,28 +1417,38 @@
"fits the face, e.g. M8": "fits the face, e.g. M8",
"from the profile": "from the profile",
"from the rule": "from the rule",
"help.apache": "Apache licence 2.0",
"help.appearance.assign": "Gives the selected bodies, faces or components a colour or a material look, without changing their weight. Use it to tell parts apart or to preview a finish.",
"help.apache": "Apache license 2.0",
"help.appearance.assign": "Gives the selected bodies, faces or components a color or a material look, without changing their weight. Use it to tell parts apart or to preview a finish.",
"help.attributions": "Attributions (ATTRIBUTION.md)",
"help.build": "Version {version} · commit {commit} · built {date}",
"help.component.finish_edit": "Saves the part you are editing in place, returns to its assembly and updates the assembly from it. Use it when your changes to the linked part are done.",
"help.connect_note": "Restart each assistant to load the SolidCraft server. Each file was backed up as .bak before it changed.",
"help.connect_title": "Connect AI assistants",
"help.face.delete": "Removes the selected faces and lets the neighbouring faces close the gap, or leaves the gap open as a surface. Use it to take off a rounded edge, a hole or a boss that is in the way.",
"help.font_details": "The interface uses egui's built-in fonts (Ubuntu Light and Hack, under the Ubuntu Font Licence and the MIT/Bitstream Vera licence; Noto Emoji and the emoji icon font, under the OFL and MIT). Sketch text uses Liberation Sans (SIL OFL 1.1). The Crafting Apps' optional font pack, craft-fonts (BIZ UDPGothic, Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC, Noto Sans Arabic; SIL OFL 1.1), is not bundled in SolidCraft builds.",
"help.face.delete": "Removes the selected faces and lets the neighboring faces close the gap, or leaves the gap open as a surface. Use it to take off a rounded edge, a hole or a boss that is in the way.",
"help.font_details": "The interface uses egui's built-in fonts (Ubuntu Light and Hack, under the Ubuntu Font Licence and the MIT/Bitstream Vera license; Noto Emoji and the emoji icon font, under the OFL and MIT). Sketch text uses Liberation Sans (SIL OFL 1.1). The Crafting Apps' optional font pack, craft-fonts (BIZ UDPGothic, Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC, Noto Sans Arabic; SIL OFL 1.1), is not bundled in SolidCraft builds.",
"help.fonts": "Fonts",
"help.licences": "Licences",
"help.material.assign": "Sets what the selected bodies are made of, such as steel, aluminium or ABS. Use it so that the mass and weight match the real part.",
"help.mit": "MIT licence",
"help.licences": "Licenses",
"help.material.assign": "Sets what the selected bodies are made of, such as steel, aluminum or ABS. Use it so that the mass and weight match the real part.",
"help.mit": "MIT license",
"help.notice": "NOTICE",
"help.occurrence.move": "Moves an assembly part only along freedoms allowed by its joints. Select a part face, then drag an available arrow or arc.",
"help.parameters.change": "Opens the table of named values and expressions that drive the dimensions of the design. Use it to change a size in one place and let every feature that uses it follow.",
"help.pointcloud.insert": "Insert a PLY, XYZ or PTS scan as a point cloud alongside the model. Use it as a reference when building a model from measured data.",
"help.sketch.construction_line": "Create an infinite construction line through two points. Use it to lay out a sketch without splitting profiles.",
"help.sketch.construction_line.angle": "Create an infinite construction line at an angle from sketch X. Pick the point and type the angle, or pick its direction.",
"help.sketch.construction_line.bisector": "Pick two intersecting straight sketch lines, then choose either angle bisector. The result follows its source lines.",
"help.sketch.construction_line.horizontal": "Create an infinite horizontal construction line through a point. Its horizontal constraint follows later edits.",
"help.sketch.construction_line.parallel": "Pick a straight sketch line, then place a parallel infinite construction line. Right-click to choose another reference.",
"help.sketch.construction_line.perpendicular": "Pick a straight sketch line, then place a perpendicular infinite construction line. Right-click to choose another reference.",
"help.sketch.construction_line.tangent_at": "Create a tangent at a point on a circle or circular arc, or an endpoint of an open spline or conic. Pick the curve, then its contact point.",
"help.sketch.construction_line.tangent_external": "Pick a circle or circular arc, then an external point and a tangent solution. The previews show only contacts on the drawn arc.",
"help.sketch.construction_line.tangent_two": "Pick two circles or circular arcs, then choose a common tangent in the preview. Contacts must lie on the drawn curves.",
"help.sketch.construction_line.vertical": "Create an infinite vertical construction line through a point. Its vertical constraint follows later edits.",
"help.sketch.equation_curve": "Draws a curve from formulas: x(t) and y(t), or y = f(x), over a range. The formulas can use parameters and the curve follows them: use it for a sine wave, a spiral or a gear tooth's involute.",
"help.solid.align": "Moves the selected bodies so that a point, face or plane on them meets a point, face or plane elsewhere. Use it to place a part against another one without measuring the offset.",
"help.solid.chamfer": "Cuts the selected edges with a flat bevel of the distance you set. Use it to break sharp edges or to ease the entry of a pin or screw.",
"help.solid.combine": "Joins bodies, cuts them out of a target body, or keeps only the volume they share, and can keep the tool bodies. Use it to merge parts, to cut one shape with another or to find where two bodies overlap.",
"help.solid.draft": "Tilts the selected faces by the angle you set, measured from a neutral plane. Use it on moulded or cast parts so that they slide out of the mould.",
"help.solid.draft": "Tilts the selected faces by the angle you set, measured from a neutral plane. Use it on molded or cast parts so that they slide out of the mold.",
"help.solid.extrude": "Pushes a sketch profile into 3D along a distance, adding or removing material. Use it to turn a flat outline into a block, a boss or a pocket.",
"help.solid.fillet": "Rounds the selected edges with a smooth circular blend of the radius you set. Use it to soften sharp edges for strength, comfort or looks.",
"help.solid.hole": "Drills a round hole of the diameter you set at a chosen point on a face. Use it for screw clearances, pins and other simple round openings.",
@@ -1406,13 +1461,13 @@
"help.solid.press_pull": "Adds or removes material as you drag a face, or rounds edges as you drag them. Use it for quick changes straight on the model.",
"help.solid.remove": "Takes the selected bodies out of the design from this point in the timeline on; earlier steps keep them. Use it to drop a helper body, such as a cutting tool you no longer need.",
"help.solid.replace_face": "Moves the selected flat faces onto a plane or onto a parallel face, and the body grows or shrinks to meet it. Use it to bring a face flush with another part or a construction plane.",
"help.solid.revolve": "Spins a sketch profile around an axis to make a round solid. Use it for shafts, knobs, bowls and any part that is round about a centre line.",
"help.solid.revolve": "Spins a sketch profile around an axis to make a round solid. Use it for shafts, knobs, bowls and any part that is round about a center line.",
"help.solid.scale": "Makes the selected bodies larger or smaller by a factor, the same in every direction or one per axis. Use it to resize an imported shape or to allow for shrinkage.",
"help.solid.shell": "Hollows out a solid, leaving walls of the thickness you set, and can open the faces you pick. Use it for boxes, covers and other thin-walled parts.",
"help.solid.split_body": "Cuts a body into separate bodies with a plane, the face of another body or a sketch line. Use it to make parts that are printed, machined or coloured on their own.",
"help.solid.split_face": "Divides the selected faces along a plane, the face of another body or sketch curves, without cutting the body. Use it to give part of a face its own draft, colour or offset.",
"help.solid.split_body": "Cuts a body into separate bodies with a plane, the face of another body or a sketch line. Use it to make parts that are printed, machined or colored on their own.",
"help.solid.split_face": "Divides the selected faces along a plane, the face of another body or sketch curves, without cutting the body. Use it to give part of a face its own draft, color or offset.",
"help.solid.sweep": "Drags a sketch profile along a path to make a solid. Use it for pipes, rails, handles and any part of constant section that follows a curve.",
"help.third_party": "Third-party licences",
"help.third_party": "Third-party licenses",
"help.timeline.compute_all": "Rebuilds every feature in the timeline from the start. Use it to refresh the model and to see which features fail.",
"help.timeline.delete": "Deletes the selected features from the timeline; deleting a sketch also deletes the features built from it. Use it to remove a step that is no longer wanted.",
"help.timeline.play": "Replay the remaining features one at a time, with a half-second pause after each rebuild. Run this command again or press Escape to stop; Go to end jumps immediately.",
@@ -1466,7 +1521,7 @@
"home.new_inches": "New design, inches",
"home.new_inches_hint": "Inches · opens in Design",
"home.new_mm": "New design",
"home.new_mm_hint": "Millimetres · opens in Design",
"home.new_mm_hint": "Millimeters · opens in Design",
"home.open": "Open…",
"home.open_hint": "A .sc design ({shortcut})",
"home.open_now": "Open now",
@@ -1647,7 +1702,7 @@
"navbar.custom.buttons": "Buttons",
"navbar.custom.compact": "Compact",
"navbar.custom.count": "{count} of 16 slots",
"navbar.custom.customise": "Customise navigation bar…",
"navbar.custom.customise": "Customize navigation bar…",
"navbar.custom.design": "Design",
"navbar.custom.duplicate": "This slot is already on the bar.",
"navbar.custom.edge": "Edge",
@@ -1667,7 +1722,7 @@
"navbar.custom.labels": "Icons and labels",
"navbar.custom.left": "Move left",
"navbar.custom.position": "Position",
"navbar.custom.position_centre": "Centre",
"navbar.custom.position_centre": "Center",
"navbar.custom.position_left": "Left",
"navbar.custom.position_right": "Right",
"navbar.custom.preview_as": "Preview as",
@@ -1696,7 +1751,7 @@
"navbar.description.orbit": "Turns the view around the model.",
"navbar.description.pan": "Slides the view sideways, up or down.",
"navbar.description.projection": "Switches between orthographic and perspective views.",
"navbar.description.separator": "A thin line that groups neighbouring slots.",
"navbar.description.separator": "A thin line that groups neighboring slots.",
"navbar.description.spin": "Keeps the view turning until you click or press a key.",
"navbar.description.visual_style": "Switches how the model is drawn: shaded, wireframe or with hidden edges.",
"navbar.description.zoom": "Moves the view closer to or further from the model.",
@@ -1815,7 +1870,7 @@
"prefs.bodies_folders_never": "Never",
"prefs.bodies_folders_several": "Several bodies only",
"prefs.bottom": "Bottom",
"prefs.bottom_centre": "Bottom centre",
"prefs.bottom_centre": "Bottom center",
"prefs.bottom_right": "Bottom right",
"prefs.browser": "Browser",
"prefs.browser_reveal_on_hover": "Reveal on hover",
@@ -1848,6 +1903,7 @@
"prefs.dialogs_left_column": "In the left column",
"prefs.dialogs_note": "Where command dialogs open: docked at the view's edge, or in the left column in place of the browser and the History, which come back as they were when the dialog closes.",
"prefs.display": "Display",
"prefs.drawings": "Drawings",
"prefs.edges": "Edges and shading",
"prefs.extend": "Extend",
"prefs.extra_navigation": "Ctrl+left drag on empty space orbits; hold Space to pan.",
@@ -1906,6 +1962,9 @@
"prefs.max_file_size_step": "STEP and import files",
"prefs.max_file_size_web": "The web app opens STEP and import files up to 512 MB and designs up to 256 MB: a browser tab can't hold larger files. The desktop app can raise these limits.",
"prefs.megabytes": "MB",
"prefs.menu_grid": "Large icons",
"prefs.menu_list": "List",
"prefs.menus": "Menus",
"prefs.minutes": "minutes",
"prefs.minutes_suffix": " min",
"prefs.mouse": "Mouse and trackpad",
@@ -1925,6 +1984,8 @@
"prefs.origin_plane_names": "Origin plane names",
"prefs.origin_plane_names_note": "Names shown in the browser, dialogs and lists. {top} is XY, {front} is XZ and {right} is YZ, with Z up. Commands, scripts and saved designs keep XY, XZ and YZ.",
"prefs.overall_speed": "Overall speed",
"prefs.persistent_ribbon_pressed": "Highlight active ribbon commands",
"prefs.persistent_ribbon_pressed_help": "Highlight ribbon commands while their effects are on. Turn off to keep the previous neutral appearance and command help.",
"prefs.perspective_fov": "Field of view",
"prefs.placement": "Placement",
"prefs.prefer_free_sketch_points": "Prefer movable sketch points when points overlap",
@@ -1974,11 +2035,16 @@
"prefs.sketch_align_points_note": "While drawing, a point lines up horizontally with one sketch point and vertically with another at the same time, with a dotted guide, and the click keeps both alignments. Off: only with the previous point, one axis at a time.",
"prefs.sketch_conflict_colour": "Conflicting geometry in the conflict color",
"prefs.sketch_conflict_colour_note": "While a sketch's constraints conflict, the curves and points a failing constraint holds are drawn in the conflict color too, not only its glyph or dimension. Off: they keep their usual colors.",
"prefs.sketch_construction_lines": "Extended construction line tools",
"prefs.sketch_exit_view": "When a sketch ends",
"prefs.sketch_exit_view.keep": "Keep the current view",
"prefs.sketch_exit_view.previous": "Return to the previous view",
"prefs.sketch_exit_view.unless_rotated": "Return unless rotated",
"prefs.sketch_exit_view_note": "Where the view goes after Finish Sketch, Cancel or a double Esc.",
"prefs.sketch_open_look_at": "Turn to face a sketch when it opens",
"prefs.sketch_open_look_at_note": "Off: creating or editing a sketch leaves the view as it is. Look At faces the sketch when you want it.",
"prefs.sketch_recent_snap": "Auto snap to recent centers and midpoints",
"prefs.sketch_recent_snap_note": "While drawing, snap the cursor where the guides of the two most recent circle centers or straight-edge midpoints cross. Off: those guides stay visual and the cursor does not move.",
"prefs.sketch_selection": "Sketch & selection",
"prefs.sketch_selection_heading": "Sketch and selection",
"prefs.sketch_selection_note": "How sketches snap and how clicks select.",
@@ -2029,7 +2095,7 @@
"prefs.trackpad_zoom_modifier.alt": "⌥ / Alt",
"prefs.trackpad_zoom_modifier.cmd": "⌘",
"prefs.trackpad_zoom_modifier.ctrl": "Ctrl",
"prefs.trackpad_zoom_modifier.help": "Hold only this key to zoom at the pointer with vertical scroll. Off keeps the existing scroll behaviour.",
"prefs.trackpad_zoom_modifier.help": "Hold only this key to zoom at the pointer with vertical scroll. Off keeps the existing scroll behavior.",
"prefs.trackpad_zoom_modifier.off": "Off",
"prefs.translucent": "Translucent",
"prefs.under_browser": "Under browser",
@@ -2052,6 +2118,10 @@
"properties.title": "Properties: {name}",
"recovery.days_ago": "{count} days ago",
"recovery.detail": "{file} · {features} features · autosaved {when}",
"recovery.discard_all": "Discard all",
"recovery.discard_all_detail": "This cannot be undone.",
"recovery.discard_all_title": "Discard {count} autosaves?",
"recovery.discard_all_title_one": "Discard 1 autosave?",
"recovery.hours_ago": "{count} h ago",
"recovery.just_now": "just now",
"recovery.min_ago": "{count} min ago",
@@ -2074,13 +2144,13 @@
"render.aging_class_any": "All opaque material classes",
"render.aging_class_dielectric": "Nonmetallic surfaces only",
"render.aging_class_metal": "Metallic surfaces only",
"render.aging_color": "Layer colour · sRGB",
"render.aging_color": "Layer color · sRGB",
"render.aging_coverage": "Coverage",
"render.aging_dust": "Deposited dust",
"render.aging_empty": "No aging layers: the original surfaces remain unchanged.",
"render.aging_fading": "Faded coating",
"render.aging_grime": "Grime & staining",
"render.aging_help": "Combine up to eight optical layers, in order. Rust and patina are authored appearances, not age/corrosion simulations. Scale is in world millimetres. No geometry, mass or engineering property is changed; glass and passive stages are excluded.",
"render.aging_help": "Combine up to eight optical layers, in order. Rust and patina are authored appearances, not age/corrosion simulations. Scale is in world millimeters. No geometry, mass or engineering property is changed; glass and passive stages are excluded.",
"render.aging_metallic": "Layer metallic fraction",
"render.aging_origin": "Field origin · world mm",
"render.aging_patina": "Copper-green patina",
@@ -2096,7 +2166,7 @@
"render.all_controls_help": "Dense inspection of all current controls. Section pages provide focused editing without changing the underlying request.",
"render.all_shots_label": "All Shots",
"render.appearance_editor.absorption": "Absorption",
"render.appearance_editor.base_colour": "Base colour",
"render.appearance_editor.base_colour": "Base color",
"render.appearance_editor.body_reason": "Optical bindings target one whole body. Pick Body to edit these controls.",
"render.appearance_editor.boundary": "Boundary",
"render.appearance_editor.box": "Box",
@@ -2160,7 +2230,7 @@
"render.background_not_light": "Background color is presentation, not an additional lighting source.",
"render.background_regrade": "Apply to retained raw master",
"render.background_stage_occlusion": "This shot includes physical stage geometry. A large floor or wall can fill the frame and hide a camera-only background. Clear or resize the stage deliberately, or change its physical reflectance. Regrading cannot remove captured geometry.",
"render.background_workflow": "Choose the background you intend: a camera-only colour/gradient, a physical stage that receives light, or HDR illumination. They are independent. Live Preview is a modelling view; render a new image or regrade a retained master to see camera finishing.",
"render.background_workflow": "Choose the background you intend: a camera-only color/gradient, a physical stage that receives light, or HDR illumination. They are independent. Live Preview is a modeling view; render a new image or regrade a retained master to see camera finishing.",
"render.base_appearance": "Editable body appearance",
"render.base_apply": "Apply body appearance",
"render.base_apply_help": "One undoable visual assignment to the reviewed exact body. Existing face-specific looks and engineering materials remain separate.",
@@ -2281,7 +2351,7 @@
"render.cpu_aa_help": "Spatial samples: more samples improve edges and increase render time.",
"render.cpu_area_add": "Add rectangular CPU light",
"render.cpu_area_editor": "CPU rectangular lights",
"render.cpu_area_editor_help": "Full side vectors in millimeters; U cross V points towards the emitting side. This differs from GPU half-edge vectors.",
"render.cpu_area_editor_help": "Full side vectors in millimeters; U cross V points toward the emitting side. This differs from GPU half-edge vectors.",
"render.cpu_area_full_u": "Full U side · mm",
"render.cpu_area_full_v": "Full V side · mm",
"render.cpu_area_samples": "Area-light samples",
@@ -2370,7 +2440,7 @@
"render.draft_confirm_help": "The current render draft has unapplied edits. Save them before switching, discard them explicitly, or keep editing.",
"render.draft_confirm_title": "Preserve edited render settings",
"render.effects_gpu_only": "These effects require GPU path tracing. Changing the page never switches the renderer automatically.",
"render.effects_help": "Combine ordered colour looks and image-space lens effects. Rendering and raw-master regrading use the same saved settings. Raw EXR stays unchanged. These are original artistic controls, not calibrated lens or branded-film emulations.",
"render.effects_help": "Combine ordered color looks and image-space lens effects. Rendering and raw-master regrading use the same saved settings. Raw EXR stays unchanged. These are original artistic controls, not calibrated lens or branded-film emulations.",
"render.effects_reset_lens": "Reset lens effects",
"render.effects_seed": "Pattern seed",
"render.emitted_axis": "Emitted axis",
@@ -2381,7 +2451,7 @@
"render.env_change": "Change",
"render.env_choose_source": "Choose an environment in Studios and Environments before editing the lighting.",
"render.env_clear": "Clear",
"render.env_colour": "Colour",
"render.env_colour": "Color",
"render.env_environments": "Environments",
"render.env_ground": "Ground",
"render.env_ground_pending": "Physical ground receives shadows as a finite diffuse surface. Shadow-only catching and ground reflections are not supported yet.",
@@ -2436,7 +2506,7 @@
"render.environment.primaries": "Treat unspecified primaries as linear sRGB",
"render.environment.primaries_gpu": "Interpreting unspecified primaries needs GPU path tracing.",
"render.environment.radial": "Radial",
"render.environment.radial_only": "Centre and radius apply to Radial mode.",
"render.environment.radial_only": "Center and radius apply to Radial mode.",
"render.environment.reflectance": "Reflectance",
"render.environment.remove": "Remove stage",
"render.environment.remove_confirm": "Remove the saved stage?",
@@ -2468,8 +2538,8 @@
"render.error_duplicate_face": "duplicate product face appearance",
"render.error_export_document": "The render export document changed while choosing its destination",
"render.error_face_cap": "product preview exceeds the face-appearance admission cap",
"render.error_finish_gesture": "finish the modelling gesture before previewing",
"render.error_finish_operation": "finish the current modelling operation before entering Render",
"render.error_finish_gesture": "finish the modeling gesture before previewing",
"render.error_finish_operation": "finish the current modeling operation before entering Render",
"render.error_fixed_preview": "fixed studio preview requires exposure 0, environment rotation 0 and intensity 1",
"render.error_geometry_size": "product geometry size overflow",
"render.error_glass_recipe": "unknown glass recipe",
@@ -2527,7 +2597,7 @@
"render.flare_threshold": "Scene-linear flare threshold",
"render.fold_browser": "Fold Browser",
"render.frame_aspect": "Aspect",
"render.frame_centre_mark": "Centre mark",
"render.frame_centre_mark": "Center mark",
"render.frame_copy_limit": "No available duplicate shot name",
"render.frame_copy_name": "{name} copy {number}",
"render.frame_custom": "Custom",
@@ -2582,8 +2652,8 @@
"render.hide_shots_label": "Hide Shots strip",
"render.hover_look": "{object} · {look} · click to select",
"render.image_advanced": "Advanced GPU controls",
"render.image_cancelled": "Render cancelled",
"render.image_cancelling": "Cancelling",
"render.image_cancelled": "Render canceled",
"render.image_cancelling": "Canceling",
"render.image_completed": "Image ready to export",
"render.image_encoding": "Encoding PNG",
"render.image_export": "Export completed image",
@@ -2600,7 +2670,7 @@
"render.image_reduce": "Try a smaller image or simpler scene.",
"render.image_running": "Rendering image",
"render.image_samples": "Samples per pixel",
"render.image_scene_stale": "Finish the modelling gesture or refresh the scene before checking or starting an image.",
"render.image_scene_stale": "Finish the modeling gesture or refresh the scene before checking or starting an image.",
"render.image_stale": "This image uses the scene captured before subsequent changes.",
"render.image_start": "Start Render",
"render.image_supported": "Render request is supported; the queue and memory pool are checked again at start.",
@@ -2619,7 +2689,7 @@
"render.inspector_applies_to": "Applies to",
"render.inspector_both_users": "Both users",
"render.inspector_chain": "Where this look comes from",
"render.inspector_colour": "Colour",
"render.inspector_colour": "Color",
"render.inspector_edit": "Edit",
"render.inspector_finish": "Finish",
"render.inspector_from_material": "From Material",
@@ -2731,7 +2801,7 @@
"render.light_anchor_pending": "Changing the light coordinate frame is not supported yet.",
"render.light_azimuth": "Azimuth",
"render.light_backend_limit": "Choose CPU ray tracing or an explicit GPU studio to edit lights. Legacy GPU studio lights remain read-only.",
"render.light_behaviour": "BEHAVIOUR",
"render.light_behaviour": "BEHAVIOR",
"render.light_default_fill": "Fill",
"render.light_default_key": "Key",
"render.light_default_number": "Light {number}",
@@ -2747,11 +2817,11 @@
"render.light_place_highlight": "Place by highlight",
"render.light_place_pending": "Highlight placement needs viewport light picking and is not supported yet.",
"render.light_position": "POSITION",
"render.light_preview_help": "Live view is unshadowed; Area lights use a centre-sample approximation. Render uses the complete light model.",
"render.light_product_centre": "Product centre",
"render.light_preview_help": "Live view is unshadowed; Area lights use a center-sample approximation. Render uses the complete light model.",
"render.light_product_centre": "Product center",
"render.light_size": "Size",
"render.light_softness": "Softness",
"render.light_temperature": "Colour temperature",
"render.light_temperature": "Color temperature",
"render.light_temperature_help": "Approximate blackbody tint; saved as linear RGB.",
"render.light_type": "Type",
"render.light_type_area": "Area",
@@ -2765,7 +2835,7 @@
"render.lighting_area_samples": "Area samples",
"render.lighting_budget": "Budget",
"render.lighting_budget_help": "Counts are read-only. Add, duplicate or delete lights to change them; the method sets the limits.",
"render.lighting_colour": "Colour",
"render.lighting_colour": "Color",
"render.lighting_consent": "Replace the directional lights with this preset",
"render.lighting_custom": "Custom lights",
"render.lighting_custom_help": "Choosing Custom turns the preset into editable lights, one row each in the tree.",
@@ -2807,7 +2877,7 @@
"render.linear_help": "Keeps a 32-bit float RGBA master before denoising, exposure, tone mapping, filters and backdrop. Linear sRGB/D65; coverage-premultiplied. Additional memory is admitted explicitly. No compression or extra passes.",
"render.linear_retain": "Retain raw linear EXR",
"render.linear_unavailable": "The selected completed frame has no retained EXR. Enable retention before rendering; an older PNG cannot recover raw radiance.",
"render.look_add": "Add colour look",
"render.look_add": "Add color look",
"render.look_applied": "Applied {name}",
"render.look_bleach": "Bleach-bypass-inspired",
"render.look_cool": "Cool",
@@ -3047,7 +3117,7 @@
"render.ribbon_saved_camera": "Saved Camera",
"render.ribbon_shots": "Shots",
"render.ribbon_studios": "Studios",
"render.ribbon_studios_help": "Browse implemented studio compositions and review their replacements before applying. Concept-only scenes remain labelled.",
"render.ribbon_studios_help": "Browse implemented studio compositions and review their replacements before applying. Concept-only scenes remain labeled.",
"render.ribbon_surface_maps": "Surface Maps",
"render.sampling_title": "Adaptive and transmission sampling",
"render.save_continue": "Save and continue",
@@ -3158,7 +3228,7 @@
"render.stage_panels.badge_specification": "spec only",
"render.stage_panels.candidate_summary": "Candidates: {count} sourced values. Grade and finish need review.",
"render.stage_panels.captured_bounds": "Use captured scene bounds",
"render.stage_panels.centre": "Centre",
"render.stage_panels.centre": "Center",
"render.stage_panels.depth": "depth",
"render.stage_panels.environments": "Environments",
"render.stage_panels.extent": "Extent",
@@ -3213,7 +3283,7 @@
"render.stage_panels.scope": "Scope",
"render.stage_panels.search_studios": "Search studios",
"render.stage_panels.search_surfaces": "Search surfaces and references",
"render.stage_panels.source_note": "Authored base-colour source map. Not a measured material.",
"render.stage_panels.source_note": "Authored base-color source map. Not a measured material.",
"render.stage_panels.specifications": "Specifications · read-only",
"render.stage_panels.studio_ack": "Confirm replacing lighting, environment, exposure and stage",
"render.stage_panels.studio_note": "Click to review. Applying replaces lighting, environment and stage only after you confirm. Lights stay editable.",
@@ -3243,7 +3313,7 @@
"render.studio_ambient_rgb": "Constant environment radiance (linear RGB)",
"render.studio_aperture": "Aperture radius",
"render.studio_area": "Area light",
"render.studio_area_help": "Up to four one-sided rectangles. Orthogonal half-edges U and V define size; U × V faces the lit side. Coordinates are world-space millimetres.",
"render.studio_area_help": "Up to four one-sided rectangles. Orthogonal half-edges U and V define size; U × V faces the lit side. Coordinates are world-space millimeters.",
"render.studio_center": "Center X, Y, Z (mm)",
"render.studio_denoise": "Reduce noise in the finished image",
"render.studio_denoise_help": "Final edge-aware filter; fine detail can soften. Glass and sharp specular surfaces bypass the filter.",
@@ -3583,7 +3653,7 @@
"ui.3d_mouse_offer_swap": "Swap to Hidraw (Direct Driver)",
"ui.3d_mouse_orbit": "Orbit",
"ui.3d_mouse_orbit_classic": "Classic",
"ui.3d_mouse_orbit_tip": "Traced: the 3D mouse turns the view around the part of the model in the middle of the view when the turn begins, marked by a faint ball. Classic: around the view's centre",
"ui.3d_mouse_orbit_tip": "Traced: the 3D mouse turns the view around the part of the model in the middle of the view when the turn begins, marked by a faint ball. Classic: around the view's center",
"ui.3d_mouse_orbit_traced": "Traced",
"ui.3d_mouse_reading": "Reading",
"ui.3d_mouse_reset_axes": "Reset axis assignment",
@@ -3711,7 +3781,7 @@
"ui.agent_chat_left": "Left",
"ui.agent_chat_limit": "The agent reached the limit of {limit} changes for one message. Send another message to let it go on.",
"ui.agent_chat_login_found": "login found",
"ui.agent_chat_minimize": "Minimise to a strip",
"ui.agent_chat_minimize": "Minimize to a strip",
"ui.agent_chat_mode_all": "All",
"ui.agent_chat_mode_ask": "Ask",
"ui.agent_chat_mode_edits": "Edits",
@@ -3828,7 +3898,7 @@
"ui.ai_mode_ask": "Ask every time",
"ui.ai_mode_ask_note": "Every change to the design, and every file action, waits for your Allow.",
"ui.ai_mode_edits": "Auto-allow model edits",
"ui.ai_mode_edits_note": "Modelling commands run without asking; saving, opening, exporting and other file or destructive actions still ask.",
"ui.ai_mode_edits_note": "Modeling commands run without asking; saving, opening, exporting and other file or destructive actions still ask.",
"ui.ai_mode_global": "As set above",
"ui.ai_model": "Model",
"ui.ai_model_hint": "qwen3:14b",
@@ -3946,15 +4016,15 @@
"ui.coincident": "Coincident",
"ui.collapse": "Collapse",
"ui.collinear": "Collinear",
"ui.colour_vision": "Colour vision",
"ui.colour_vision": "Color vision",
"ui.colour_vision_deutan": "Deutan",
"ui.colour_vision_deutan_tip": "For a weak or missing green sense",
"ui.colour_vision_failed": "Failed",
"ui.colour_vision_fixed": "Fixed",
"ui.colour_vision_mode": "Mode",
"ui.colour_vision_note": "Changes the colours that carry a meaning: sketch states, axes, bends, analyses and icons. If you use Windows colour filters, keep this Off.",
"ui.colour_vision_note": "Changes the colors that carry a meaning: sketch states, axes, bends, analyses and icons. If you use Windows color filters, keep this Off.",
"ui.colour_vision_off": "Off",
"ui.colour_vision_off_tip": "The theme's own colours",
"ui.colour_vision_off_tip": "The theme's own colors",
"ui.colour_vision_projected": "Projected",
"ui.colour_vision_protan": "Protan",
"ui.colour_vision_protan_tip": "For a weak or missing red sense",
@@ -3971,6 +4041,15 @@
"ui.constant": "Constant",
"ui.constraints_conflict": "Constraints conflict",
"ui.construction": "Construction",
"ui.construction.angle_hint": "Construction line: click a point, then type an angle or pick a direction",
"ui.construction.bisector_hint": "Bisector: pick two intersecting straight lines, then the desired solution",
"ui.construction.common_hint": "Common tangent: pick two circles/arcs, then the desired solution",
"ui.construction.contact_hint": "Tangent: pick a circle/arc or open spline/conic, then the contact point (free-form curves: endpoints)",
"ui.construction.external_hint": "Tangent: pick a circle or arc, an external point, then the desired solution",
"ui.construction.free_hint": "Construction line: click two points; right-click to restart",
"ui.construction.point_hint": "Construction line: click the point to pass through",
"ui.construction.reference_hint": "Construction line: pick a straight line, then a point; right-click to change the reference",
"ui.construction.ribbon_label": "X-Lines",
"ui.context_menu": "Context menu",
"ui.continuity_g0": "G0 crease",
"ui.continuity_g1": "G1 tangent",
@@ -3996,7 +4075,7 @@
"ui.cut": "Cut",
"ui.cylinder": "Cylinder",
"ui.dark": "Dark",
"ui.default_modelling_orientation": "Default modelling orientation",
"ui.default_modelling_orientation": "Default modeling orientation",
"ui.delete": "Delete",
"ui.depth": "Depth",
"ui.design": "Design",
@@ -4074,7 +4153,7 @@
"ui.expand": "Expand",
"ui.exportDxf": "Export DXF…",
"ui.export_ellipsis_keymap": "Export…",
"ui.export_keymap_tip": "Keys, S box favourites and the toolbar, as a file",
"ui.export_keymap_tip": "Keys, S box favorites and the toolbar, as a file",
"ui.extend": "Extend",
"ui.extent_type": "Extent Type",
"ui.extract_component": "Extract to File…",
@@ -4095,6 +4174,7 @@
"ui.fine": "Fine",
"ui.finest": "Finest",
"ui.finish_sketch": "Finish Sketch",
"ui.first_angle": "First angle",
"ui.fit": "Fit",
"ui.fix_unfix": "Fix/Unfix",
"ui.flat": "Flat",
@@ -4259,7 +4339,7 @@
"ui.manipulator_free_alt_tip": "On: Alt/Option or Ctrl/Cmd on extrude / gizmo arrows disables value snapping. Off: Ctrl/Cmd only.",
"ui.manufacture": "Manufacture",
"ui.material_review.axes": "Material-local axes; no body orientation is assigned.",
"ui.material_review.claims": "Sources and licences are unverified claims. Missing values remain unknown.",
"ui.material_review.claims": "Sources and licenses are unverified claims. Missing values remain unknown.",
"ui.material_review.compressive_strength": "Compressive strength",
"ui.material_review.conditions": "Stated conditions",
"ui.material_review.density": "Density",
@@ -4379,6 +4459,7 @@
"ui.profiles": "Profiles",
"ui.project": "Project",
"ui.project_face_edges_sketch": "Project face edges into new sketches",
"ui.projection_of_new_drawings": "Projection of new drawings",
"ui.properties": "Properties",
"ui.properties.copy_matrix": "Copy matrix",
"ui.properties.first_moments": "First moments",
@@ -4437,6 +4518,7 @@
"ui.revolve": "Revolve",
"ui.ribbon_exit": "Exit",
"ui.ribbon_labels": "Show text under ribbon icons",
"ui.ribbon_menus_skip_pinned": "Leave pinned commands out of the drop-down menus",
"ui.ribbon_pin_footer": "Pinned commands show on the ribbon. Hover a row to pin or unpin it.",
"ui.ribbon_workspace": "Workspace",
"ui.right": "Right",
@@ -4553,6 +4635,7 @@
"ui.text": "Text",
"ui.theme": "Theme",
"ui.thickness": "Thickness",
"ui.third_angle": "Third angle",
"ui.thread": "Thread",
"ui.tie_ends": "Tie",
"ui.tie_ends_tip": "Constrain all untied ends",
@@ -4597,7 +4680,7 @@
"ui.view_angles_readout": "Pitch {pitch} · Yaw {yaw} · Roll {roll}",
"ui.view_angles_roll": "Roll",
"ui.view_angles_yaw": "Yaw",
"ui.view_centre": "View centre",
"ui.view_centre": "View center",
"ui.viewport_status_clear": "Turn off {name}",
"ui.viewport_status_clear_hint": "Turn off {name} · Esc",
"ui.viewport_status_key": "Show key for {name}",
@@ -4634,7 +4717,7 @@
"ui.y_up": "Y up",
"ui.z_up": "Z up",
"ui.zoom": "Zoom",
"ui.zoom_to_cursor_tip": "The wheel zooms toward the point under the cursor (off: toward the view's centre)",
"ui.zoom_to_cursor_tip": "The wheel zooms toward the point under the cursor (off: toward the view's center)",
"ui.zoom_to_the_cursor": "Zoom to the cursor",
"update.available": "SolidCraft {version} is available",
"update.button": "Update",
+11
View File
@@ -1048,6 +1048,16 @@
"cmd.sheet_refold": "Volver a plegar",
"cmd.sheet_rules": "Listar reglas de chapa",
"cmd.sheet_unfold": "Desplegar",
"cmd.sketch.construction_line": "Recta de construcción",
"cmd.sketch.construction_line.angle": "Recta de construcción con ángulo",
"cmd.sketch.construction_line.bisector": "Bisectriz",
"cmd.sketch.construction_line.horizontal": "Recta de construcción horizontal",
"cmd.sketch.construction_line.parallel": "Recta de construcción paralela",
"cmd.sketch.construction_line.perpendicular": "Recta de construcción perpendicular",
"cmd.sketch.construction_line.tangent_at": "Tangente en un punto de la curva",
"cmd.sketch.construction_line.tangent_external": "Tangente por un punto exterior",
"cmd.sketch.construction_line.tangent_two": "Tangente común",
"cmd.sketch.construction_line.vertical": "Recta de construcción vertical",
"cmd.sketch_arc3d": "Arco 3D",
"cmd.sketch_arc_center_point": "Arco de centro y punto",
"cmd.sketch_arc_tangent": "Arco tangente",
@@ -3028,6 +3038,7 @@
"ui.constant": "Constante",
"ui.constraints_conflict": "Conflicto entre restricciones",
"ui.construction": "Construcción",
"ui.construction.ribbon_label": "Líneas aux.",
"ui.context_menu": "Menú contextual",
"ui.continuity_g0": "G0 arista",
"ui.continuity_g1": "G1 tangencia",
+371
View File
@@ -204,6 +204,7 @@
"Edges": "Arêtes",
"Edit": "Modifier",
"Edit Profile Sketch": "Modifier l'esquisse du profil",
"Edit shortcuts": "Modifier les raccourcis",
"Enable rule": "Activer la règle",
"Enabled": "Activé",
"End Radius": "Rayon final",
@@ -466,6 +467,7 @@
"Radius": "Rayon",
"Radius Fit": "Ajustement du rayon",
"Ratio": "Rapport",
"Read-only list: shortcuts can't be changed here.": "Liste en lecture seule : les raccourcis ne peuvent pas être modifiés ici.",
"Reattach selected face": "Rattacher la face sélectionnée",
"Recover": "Récupérer",
"Recover unsaved design?": "Récupérer la conception non enregistrée ?",
@@ -649,6 +651,7 @@
"Third point": "Troisième point",
"This child is shared. Deleting it removes it from every copy of its parent.": "Cet enfant est partagé. Le supprimer le retire de toutes les copies de son parent.",
"This child is shared. Position changes apply to every copy of its parent.": "Cet enfant est partagé. Les changements de position s'appliquent à toutes les copies de son parent.",
"This component is inside a subassembly placed more than once: aligning it moves it in every placement.": "Ce composant se trouve dans un sous-assemblage placé plusieurs fois : l'aligner le déplace dans chaque placement.",
"This face cannot provide a durable attachment. Choose another face or explicitly use a fixed plane.": "Cette face ne peut pas fournir de rattachement durable. Choisissez une autre face ou utilisez explicitement un plan fixe.",
"This image is not attached to GitHub yet. Copy or save it, then attach it on GitHub.": "Cette image n'est pas encore jointe sur GitHub. Copiez-la ou enregistrez-la, puis joignez-la sur GitHub.",
"Thread depth": "Profondeur de filetage",
@@ -790,6 +793,11 @@
"cam.roller": "Galet",
"cam.roller_pick": "Galet (facultatif)",
"cam.tip_pick": "Pointe (facultatif)",
"camera.shot_pitch": "Tangage",
"camera.shot_roll": "Roulis",
"camera.shot_yaw": "Lacet",
"canvas.decal_place_hint": "Cliquez sur une face pour placer la décalcomanie",
"canvas.place_hint": "Cliquez sur un plan ou une face pour placer le canevas",
"choose a profile": "choisir un profilé",
"choose the cam's and the follower's joints": "choisir les liaisons de la came et du suiveur",
"choose the joints to couple": "choisir les liaisons à coupler",
@@ -797,9 +805,12 @@
"click sketch curves": "cliquer sur des courbes d'esquisse",
"cmd.appearance_assign": "Apparence",
"cmd.appearance_chain": "Chaîne d'apparences",
"cmd.appearance_copy": "Copier l'aspect",
"cmd.appearance_favorite": "Aspect favori",
"cmd.appearance_library": "Bibliothèque d'apparences",
"cmd.appearance_list": "Lister les apparences",
"cmd.appearance_paint": "Peindre l'apparence",
"cmd.appearance_paste": "Coller l'aspect",
"cmd.appearance_pick_up": "Prélever l'apparence",
"cmd.appearance_replace": "Remplacer l'apparence",
"cmd.assembly_bom": "Nomenclature",
@@ -810,6 +821,7 @@
"cmd.browser_move": "Déplacer des éléments du navigateur",
"cmd.browser_order": "Réordonner les éléments du navigateur",
"cmd.browser_rename_group": "Renommer le groupe",
"cmd.browser_reparent": "Déplacer vers le composant",
"cmd.browser_ungroup": "Dissocier",
"cmd.browser_visibility": "Afficher/Masquer",
"cmd.canvas_calibrate": "Étalonner le canevas",
@@ -836,7 +848,9 @@
"cmd.component_metadata": "Propriétés de la pièce",
"cmd.component_metadata_set": "Modifier les propriétés de la pièce",
"cmd.component_move_bodies": "Déplacer les corps vers le composant",
"cmd.component_move_features": "Déplacer les fonctions vers le composant",
"cmd.component_move_sketches": "Déplacer les esquisses vers le composant",
"cmd.component_paste_from_design": "Coller depuis une autre conception",
"cmd.component_paste_new": "Coller comme nouveau",
"cmd.component_properties": "Propriétés physiques du composant",
"cmd.component_relink": "Relier à nouveau la source",
@@ -973,6 +987,7 @@
"cmd.motion_trace": "Trajectoire de mouvement",
"cmd.motion_trace_edit": "Modifier la trajectoire de mouvement",
"cmd.motion_trace_keep": "Conserver la trajectoire de mouvement",
"cmd.occurrence_align": "Aligner l'occurrence",
"cmd.occurrence_copy": "Coller (instance)",
"cmd.occurrence_drag": "Faire glisser l'occurrence",
"cmd.occurrence_ground": "Fixer",
@@ -1030,11 +1045,17 @@
"cmd.render_library_surface_unbind": "Supprimer l'association de surface",
"cmd.render_library_targets": "Trouver les cibles de la bibliothèque de rendu",
"cmd.render_lights_add": "Ajouter une lumière",
"cmd.render_lights_duplicate": "Dupliquer la lumière de rendu",
"cmd.render_lights_list": "Lister les lumières de rendu",
"cmd.render_lights_mute": "Éteindre la lumière",
"cmd.render_lights_remove": "Supprimer la lumière de rendu",
"cmd.render_lights_set": "Définir la lumière de rendu",
"cmd.render_lights_solo": "Lumière en solo",
"cmd.render_optics_bind": "Enregistrer l'association optique",
"cmd.render_optics_unbind": "Supprimer l'association optique",
"cmd.render_output_size": "Définir la taille de sortie du rendu",
"cmd.render_preflight": "Vérifier la demande de rendu",
"cmd.render_preflight_copy": "Copier le rapport de vérification du rendu",
"cmd.render_preset_apply": "Appliquer le studio natif",
"cmd.render_preset_resolve": "Examiner le studio natif",
"cmd.render_quality_prepare": "Examiner le budget d'échantillonnage fixe",
@@ -1057,6 +1078,13 @@
"cmd.render_start": "Rendu d'image",
"cmd.render_status": "Progression du rendu",
"cmd.select_clear": "Effacer la sélection",
"cmd.settings_profile_apply": "Appliquer le profil de réglages",
"cmd.settings_profile_delete": "Supprimer le profil de réglages",
"cmd.settings_profile_export": "Exporter le profil de réglages",
"cmd.settings_profile_import": "Importer un profil de réglages",
"cmd.settings_profile_list": "Profils de réglages",
"cmd.settings_profile_rename": "Renommer le profil de réglages",
"cmd.settings_profile_save": "Enregistrer le profil de réglages",
"cmd.sheet_convert": "Convertir en tôlerie",
"cmd.sheet_export_bend_table": "Exporter la table des plis",
"cmd.sheet_export_dxf": "Exporter la mise à plat en DXF",
@@ -1070,6 +1098,16 @@
"cmd.sheet_refold": "Replier",
"cmd.sheet_rules": "Lister les règles de tôlerie",
"cmd.sheet_unfold": "Déplier",
"cmd.sketch.construction_line": "Droite de construction",
"cmd.sketch.construction_line.angle": "Droite de construction inclinée",
"cmd.sketch.construction_line.bisector": "Bissectrice",
"cmd.sketch.construction_line.horizontal": "Droite de construction horizontale",
"cmd.sketch.construction_line.parallel": "Droite de construction parallèle",
"cmd.sketch.construction_line.perpendicular": "Droite de construction perpendiculaire",
"cmd.sketch.construction_line.tangent_at": "Tangente en un point de la courbe",
"cmd.sketch.construction_line.tangent_external": "Tangente passant par un point extérieur",
"cmd.sketch.construction_line.tangent_two": "Tangente commune",
"cmd.sketch.construction_line.vertical": "Droite de construction verticale",
"cmd.sketch_arc3d": "Arc 3D",
"cmd.sketch_arc_center_point": "Arc par centre",
"cmd.sketch_arc_tangent": "Arc tangent",
@@ -1102,6 +1140,8 @@
"cmd.sketch_drawing_bounds": "Taille du dessin",
"cmd.sketch_edit": "Modifier l'esquisse",
"cmd.sketch_edit_text": "Modifier le texte",
"cmd.sketch_equation_curve": "Courbe par équation",
"cmd.sketch_equation_curve_edit": "Modifier la courbe par équation",
"cmd.sketch_export_dxf": "Enregistrer en DXF",
"cmd.sketch_finish_auto_constrain": "Terminer avec contraintes automatiques",
"cmd.sketch_fit_curves_to_section": "Ajuster des courbes à la section du maillage",
@@ -1198,6 +1238,7 @@
"cmd.view.render_browser": "Navigateur de rendu",
"cmd.view.render_dock": "Déplacer le panneau de rendu",
"cmd.view.render_focus": "Vue de rendu ciblée",
"cmd.view.status_items": "Éléments d'état de la vue 3D",
"cmd.view_ambient_occlusion": "Occlusion ambiante",
"cmd.view_angle_readout": "Angles de vue",
"cmd.view_apply": "Restaurer la vue nommée",
@@ -1219,6 +1260,7 @@
"cmd.view_normal_to": "Vue normale à la sélection",
"cmd.view_previous_tab": "Onglet précédent",
"cmd.view_rename": "Renommer la vue nommée",
"cmd.view_render_frame": "Guides de cadrage du rendu",
"cmd.view_right": "Vue de droite",
"cmd.view_save": "Nouvelle vue nommée",
"cmd.view_shots_strip": "Bande des prises de vue",
@@ -1229,10 +1271,14 @@
"color.copy": "Cliquer pour copier les valeurs de couleur",
"color.edit": "Cliquer pour modifier la couleur",
"color.gamma": "Valeurs de couleur affichées en espace gamma 0-255",
"color.hex": "Hex",
"color.hex_help": "Saisissez #rrggbb ou #rrggbbaa ; six chiffres conservent l'opacité",
"color.hex_hint": "#rrggbb",
"color.hue": "Teinte",
"color.linear": "Valeurs de couleur affichées en espace linéaire 0-1",
"color.saturation_value": "Saturation et valeur",
"color.selected": "Couleur sélectionnée",
"config.column_filter_empty": "Aucune colonne correspondante",
"contact.components_count": "{count} composants",
"contact.enabled_label": "activé",
"coupling.gear_1": "Engrenage 1",
@@ -1349,6 +1395,7 @@
"help.occurrence.move": "Déplace une pièce d’assemblage selon les seules libertés permises par ses liaisons. Sélectionnez une face de la pièce, puis faites glisser une flèche ou un arc disponible.",
"help.parameters.change": "Ouvre le tableau des valeurs nommées et des expressions qui pilotent les cotes de la conception. À utiliser pour changer une dimension à un seul endroit et faire suivre toutes les fonctions qui l'utilisent.",
"help.pointcloud.insert": "Insère un scan PLY, XYZ ou PTS sous forme de nuage de points à côté du modèle. Utilisez-le comme référence pour construire un modèle à partir de données mesurées.",
"help.sketch.equation_curve": "Dessine une courbe à partir de formules : x(t) et y(t), ou y = f(x), sur un intervalle. Les formules peuvent utiliser des paramètres et la courbe les suit : à utiliser pour une sinusoïde, une spirale ou la développante d'une dent d'engrenage.",
"help.solid.align": "Déplace les corps sélectionnés pour qu'un de leurs points, faces ou plans rejoigne un point, une face ou un plan ailleurs. À utiliser pour poser une pièce contre une autre sans mesurer le décalage.",
"help.solid.chamfer": "Coupe les arêtes sélectionnées par un biseau plat de la distance indiquée. À utiliser pour casser des arêtes vives ou faciliter l'entrée d'une goupille ou d'une vis.",
"help.solid.combine": "Joint des corps, les retire d'un corps cible ou ne garde que le volume qu'ils ont en commun, et peut conserver les corps outils. À utiliser pour fusionner des pièces, tailler une forme avec une autre ou repérer où deux corps se recouvrent.",
@@ -1584,6 +1631,8 @@
"nav.maya.help": "Alt+glisser gauche fait orbiter, Alt+milieu fait un panoramique, Alt+droit zoome ; glisser avec le milieu fait aussi un panoramique",
"nav.openscad.help": "Glisser avec le gauche dans le vide fait orbiter, Maj+glisser gauche sélectionne par rectangle, glisser la géométrie d'esquisse la modifie ; glisser avec le droit ou le milieu fait un panoramique, Maj+droit ou Maj+milieu zoome",
"nav.perspective.sketch": "La modification d'une esquisse utilise la vue orthographique. Terminer l'esquisse pour passer en perspective.",
"nav.right_drag_orbits.help": "Désactivé : glisser avec le droit ne touche pas la caméra et le bouton droit ouvre seulement le menu contextuel. Choisir l'affectation des boutons de la souris SolidWorks le désactive.",
"nav.right_drag_orbits.label": "Glisser avec le droit fait orbiter",
"nav.solidworks.help": "Glisser avec le milieu fait orbiter, Ctrl+milieu fait un panoramique, Maj+milieu zoome, glisser avec le droit fait orbiter",
"nav.tinkercad.help": "Glisser avec le droit fait orbiter, glisser avec le milieu ou Maj+droit fait un panoramique",
"nav.touchpad.help": "Maintenir Maj et déplacer le pointeur pour faire un panoramique ; maintenir Alt/Option et le déplacer pour orbiter. Aucun bouton de souris n'est nécessaire. Le défilement vertical zoome.",
@@ -1714,6 +1763,7 @@
"parts.dimension.thickness": "Épaisseur",
"parts.dimension.width": "Largeur",
"parts.family.bearing": "Roulement à billes à gorge profonde (enveloppe)",
"parts.family.button_head_cap_screw": "Vis à tête bombée à six pans creux",
"parts.family.dowel_pin": "Goupille cylindrique",
"parts.family.hex_bolt": "Vis à tête hexagonale",
"parts.family.hex_nut": "Écrou hexagonal",
@@ -1843,6 +1893,8 @@
"prefs.layout_note": "Compacte : ancre les panneaux aux bords de la fenêtre. La transparence du navigateur est disponible en mode Flottante. Changez le côté de l'assistant dans la page Assistant.",
"prefs.left": "Gauche",
"prefs.left_click": "Clic gauche",
"prefs.line_drag_draws_one": "Appuyer et glisser trace une seule ligne",
"prefs.line_drag_draws_one_note": "Dans l'outil Ligne, appuyer, faire glisser puis relâcher trace une seule ligne, du point d'appui au point de relâchement, et le tracé s'arrête là. Les clics tracent toujours une chaîne. Désactivé : un glissement place un point là où il est relâché, comme un clic.",
"prefs.linked_designs": "Conceptions liées",
"prefs.live_input": "Saisie en direct",
"prefs.live_preview": "Aperçu en direct",
@@ -1875,14 +1927,36 @@
"prefs.origin_plane_names": "Noms des plans d'origine",
"prefs.origin_plane_names_note": "Noms affichés dans le navigateur, les boîtes de dialogue et les listes. {top} est XY, {front} est XZ et {right} est YZ, avec Z vers le haut. Les commandes, les scripts et les conceptions enregistrées gardent XY, XZ et YZ.",
"prefs.overall_speed": "Vitesse globale",
"prefs.perspective_fov": "Champ de vision",
"prefs.placement": "Placement",
"prefs.prefer_free_sketch_points": "Privilégier les points d'esquisse déplaçables quand des points se superposent",
"prefs.preview_choices": "Aperçu de vos choix",
"prefs.profile_active": "Profil actif",
"prefs.profile_applied": "Profil appliqué.",
"prefs.profile_changed": "Les réglages ont changé depuis l'enregistrement du profil. Enregistrer les y conserve.",
"prefs.profile_deleted": "Profil supprimé.",
"prefs.profile_export": "Exporter…",
"prefs.profile_exported": "Profil exporté.",
"prefs.profile_imported": "Profil importé. Choisissez-le sous Profil actif pour basculer dessus.",
"prefs.profile_name_hint": "Nom du profil, par ex. Portable",
"prefs.profile_rename": "Renommer",
"prefs.profile_renamed": "Profil renommé.",
"prefs.profile_save": "Enregistrer",
"prefs.profile_saved": "Réglages actuels enregistrés dans le profil.",
"prefs.profile_skipped": "Profil appliqué ; {n} réglage(s) ont conservé leur valeur actuelle (voir le journal).",
"prefs.profiles": "Profils de réglages",
"prefs.profiles_note": "Raccourcis, barre d'outils, navigation, menu radial et réglages de l'interface, regroupés sous un nom et changés d'un coup.",
"prefs.project_options_dialog": "Boîte de dialogue des options de projection",
"prefs.project_options_dialog_note": "Activé : choisir Géométrie ou Corps et Lien de projection avant de projeter. Désactivé : conserver l'ancien fonctionnement par sélection directe.",
"prefs.quality_default": "par défaut",
"prefs.quality_fastest": "le plus rapide",
"prefs.quality_slowest": "le plus lent",
"prefs.quality_smoother": "plus fluide",
"prefs.render_previous_geometry_budget": "Utiliser l'ancien budget de géométrie de l'aperçu Rendu",
"prefs.render_previous_geometry_budget_help": "Rétablir l'ancienne limite fixe de géométrie (512 Mio sur un ordinateur 64 bits, 128 Mio ailleurs) au lieu du budget basé sur l'appareil.",
"prefs.reports_saved": "Enregistrés : {n}",
"prefs.ribbon_reveal": "Montrer les résultats de recherche dans le ruban",
"prefs.ribbon_reveal_note": "Survoler un résultat dans Rechercher des commandes montre où se trouve la commande dans le ruban : son onglet, son bouton ou sa ligne dans le menu déroulant d'un panneau. Une commande lancée depuis la recherche y clignote, et une commande en cours issue d'un menu déroulant signale son panneau.",
"prefs.right_click": "Clic droit",
"prefs.saving": "Enregistrement automatique et récupération",
"prefs.scale_note": "Également Ctrl + / Ctrl − dans la fenêtre. Les boutons font 28 px à 100 %.",
@@ -1896,6 +1970,10 @@
"prefs.shift_add_ctrl_toggle": "Maj ajoute seulement ; Ctrl / Cmd bascule",
"prefs.shift_add_note": "Activé : Maj ajoute, Ctrl / Cmd bascule. Désactivé (par défaut) : les deux basculent.",
"prefs.shortcuts": "Raccourcis",
"prefs.single_surface_analysis": "Utiliser une seule analyse de surface",
"prefs.single_surface_analysis_help": "Désactivé, l'ombrage de surface et Continuité peuvent rester actifs ensemble. Activé, seule la dernière analyse lancée ou modifiée est conservée.",
"prefs.sketch_align_points": "S'aligner sur d'autres points d'esquisse pendant le dessin",
"prefs.sketch_align_points_note": "Pendant le dessin, un point s'aligne à la fois horizontalement sur un point d'esquisse et verticalement sur un autre, avec un guide en pointillés, et le clic conserve les deux alignements. Désactivé : uniquement sur le point précédent, un axe à la fois.",
"prefs.sketch_conflict_colour": "Géométrie en conflit dans la couleur de conflit",
"prefs.sketch_conflict_colour_note": "Tant que les contraintes d'une esquisse sont en conflit, les courbes et les points que retient une contrainte en échec sont aussi dessinés dans la couleur de conflit, et pas seulement son symbole ou sa cote. Désactivé : ils gardent leurs couleurs habituelles.",
"prefs.sketch_exit_view": "À la fin d'une esquisse",
@@ -1903,6 +1981,8 @@
"prefs.sketch_exit_view.previous": "Revenir à la vue précédente",
"prefs.sketch_exit_view.unless_rotated": "Revenir, sauf si la vue a été tournée",
"prefs.sketch_exit_view_note": "Où va la vue après Terminer l'esquisse, Annuler ou un double Échap.",
"prefs.sketch_recent_snap": "Accrocher automatiquement aux centres et points milieux récents",
"prefs.sketch_recent_snap_note": "Pendant le dessin, le curseur s'accroche là où se croisent les guides des deux derniers centres de cercle ou points milieux de segment droit. Désactivé : ces guides restent purement visuels et le curseur ne bouge pas.",
"prefs.sketch_selection": "Esquisse et sélection",
"prefs.sketch_selection_heading": "Esquisse et sélection",
"prefs.sketch_selection_note": "Comment les esquisses s'accrochent et comment les clics sélectionnent.",
@@ -1940,7 +2020,14 @@
"prefs.toast_place": "Notifications",
"prefs.toggle_item": "Ajouter l'élément, ou le retirer à nouveau",
"prefs.toolbar": "Barre d'outils",
"prefs.toolbar_tabs": "Onglets de la barre d'outils",
"prefs.top": "Haut",
"prefs.trackpad_zoom_modifier": "Zoomer avec le défilement à deux doigts en maintenant",
"prefs.trackpad_zoom_modifier.alt": "⌥ / Alt",
"prefs.trackpad_zoom_modifier.cmd": "⌘",
"prefs.trackpad_zoom_modifier.ctrl": "Ctrl",
"prefs.trackpad_zoom_modifier.help": "Maintenir seulement cette touche pour zoomer vers le pointeur avec le défilement vertical. Désactivé conserve le comportement de défilement existant.",
"prefs.trackpad_zoom_modifier.off": "Désactivé",
"prefs.translucent": "Translucide",
"prefs.under_browser": "Sous le navigateur",
"prefs.under_cursor": "Sous le curseur",
@@ -1956,10 +2043,16 @@
"prefs.wheel": "Molette",
"prefs.wheel_trackpad": "Molette et pavé tactile",
"prefs.workspace": "Espace de travail",
"prefs.zoom_stop_at_model": "Arrêter le zoom au modèle",
"prefs.zoom_stop_at_model_tip": "La souris 3D et l'application du périphérique zooment vers la surface au milieu de la vue ; le zoom par glissement garde le point où le glissement a commencé. Désactivé : le zoom peut traverser le modèle. La molette et le pincement utilisent Zoom vers le curseur séparément",
"prefs.zoom_toward_cursor": "Zoom, vers le curseur",
"properties.title": "Propriétés : {name}",
"recovery.days_ago": "il y a {count} j",
"recovery.detail": "{file} · {features} entités · enregistrement auto {when}",
"recovery.discard_all": "Tout abandonner",
"recovery.discard_all_detail": "Cette action est irréversible.",
"recovery.discard_all_title": "Abandonner {count} sauvegardes automatiques ?",
"recovery.discard_all_title_one": "Abandonner 1 sauvegarde automatique ?",
"recovery.hours_ago": "il y a {count} h",
"recovery.just_now": "à l’instant",
"recovery.min_ago": "il y a {count} min",
@@ -2044,6 +2137,7 @@
"render.appearance_editor.weight": "Poids",
"render.appearance_physics_separate": "L'apparence visuelle n'affecte ni masse volumique, ni données thermiques, ni autres propriétés techniques.",
"render.appearances": "Apparences",
"render.assign_help": "Cliquez pour appliquer à la sélection ; faites glisser pour prévisualiser et déposer, ou cliquez sans sélection pour peindre.",
"render.availability_native": "Composition native ; à examiner avant d'appliquer",
"render.availability_projection": "Projection prise en charge ; voir la portée et les omissions",
"render.availability_reference": "Données de référence ; pas une affectation automatique",
@@ -2082,6 +2176,7 @@
"render.bloom_threshold": "Seuil des hautes lumières linéaires du halo",
"render.browse_capabilities": "Inspecter le catalogue complet des capacités",
"render.browse_environments": "Parcourir les environnements HDR d'origine",
"render.browse_looks": "Parcourir…",
"render.browse_native_scenes": "Parcourir les studios natifs",
"render.browse_physical": "Inspecter les références physiques",
"render.browse_quality": "Inspecter les spécifications de qualité",
@@ -2105,6 +2200,82 @@
"render.check_opaque": "Transparence : surfaces opaques uniquement ; l'alpha de l'arrière-plan est pris en charge.",
"render.check_sorted_alpha": "Transparence : approximation alpha triée.",
"render.check_transmission": "Transparence : transmission physique.",
"render.children.absolute_floor": "Plancher absolu",
"render.children.adaptive": "Adaptatif",
"render.children.add_look_reason": "Ajoutez un look pour modifier son activation et son intensité.",
"render.children.all_shots": "Toutes les prises de vue",
"render.children.bloom": "Halo lumineux",
"render.children.check": "Vérification",
"render.children.check_now": "Vérifier maintenant",
"render.children.chromatic": "Chromatique",
"render.children.compact": "Compact",
"render.children.contrast": "Contraste",
"render.children.copy_image": "Copier",
"render.children.copy_job": "Copier le JSON de la tâche",
"render.children.copy_request": "Copier le JSON de la requête",
"render.children.coverage_error": "Erreur de couverture",
"render.children.cpu": "Lancer de rayons CPU",
"render.children.denoise": "Réduire le bruit de l'image finale",
"render.children.depth": "Profondeur des chemins",
"render.children.distortion": "Distorsion",
"render.children.edge_samples": "Échantillons de bord",
"render.children.effects_banner": "Ces effets nécessitent le tracé de chemins GPU. Ouvrir cette section ne change jamais la méthode.",
"render.children.enable_adaptive": "Activez les pilotes indépendants pour modifier les limites adaptatives.",
"render.children.enable_bloom": "Activez le halo lumineux pour modifier son intensité, son seuil et son rayon.",
"render.children.finishing": "Finition",
"render.children.flare": "Flare",
"render.children.fresnel": "Strates de Fresnel",
"render.children.ghosts": "Anneaux fantômes",
"render.children.glass": "Transport dans le verre",
"render.children.go_to": "Aller à {editor}",
"render.children.grain": "Grain",
"render.children.halo": "Halo",
"render.children.hdr": "HDR",
"render.children.keep_master": "Conserver le master linéaire brut",
"render.children.last_result": "Dernier : {number} · {width} × {height} · {phase}",
"render.children.lens_effects": "Effets d'objectif",
"render.children.look_summary": "{tone} · {count} looks",
"render.children.looks": "Looks créatifs",
"render.children.memory": "Mémoire",
"render.children.method": "Méthode",
"render.children.minimum": "Minimum",
"render.children.needs_cpu": "Nécessite le lancer de rayons CPU. Ouvrir cette section ne change jamais la méthode.",
"render.children.nested": "Diélectriques imbriqués certifiés",
"render.children.not_checked": "Non vérifié",
"render.children.path": "Tracé de chemins",
"render.children.pilots": "Échantillons pilotes",
"render.children.preview": "Charge de l'aperçu",
"render.children.progressive_reason": "Choisissez Progressif pour modifier son nombre d'échantillons et sa graine.",
"render.children.radius": "Rayon",
"render.children.reflect_depth": "Profondeur de réflexion",
"render.children.reflect_samples": "Échantillons de réflexion",
"render.children.regrade": "Réétalonnage",
"render.children.relative_error": "Erreur relative",
"render.children.render": "Rendu",
"render.children.render_shot": "Rendre la prise de vue",
"render.children.renderer": "Moteur de rendu",
"render.children.renderers": "Moteurs de rendu",
"render.children.request": "Cette requête",
"render.children.reset_finishing": "Réinitialiser la finition",
"render.children.review_quality": "Examiner une spécification de qualité…",
"render.children.rgb_gain": "Gain RVB",
"render.children.samples": "Échantillons",
"render.children.sampling": "Échantillonnage",
"render.children.saturation": "Saturation",
"render.children.scene_summary": "{bodies} corps · {triangles} triangles",
"render.children.seed": "Graine",
"render.children.sharpening": "Accentuation",
"render.children.single_image": "Image unique",
"render.children.soft_focus": "Flou artistique",
"render.children.streak": "Traînée",
"render.children.strength": "Intensité",
"render.children.studio": "Studio",
"render.children.threshold": "Seuil",
"render.children.tone": "Tons",
"render.children.under_hood": "Sous le capot",
"render.children.vignette": "Vignettage",
"render.children.workstation": "Station de travail",
"render.choose_look": "Choisissez d'abord un aspect dans Apparences",
"render.chromatic_offset": "Décalage chromatique des bords",
"render.clear_stage": "Supprimer le décor enregistré",
"render.copy_request": "Copier le JSON",
@@ -2356,8 +2527,33 @@
"render.flare_strength": "Intensité du flare des hautes lumières",
"render.flare_threshold": "Seuil du flare en linéaire scène",
"render.fold_browser": "Réduire le navigateur",
"render.frame_aspect": "Format",
"render.frame_centre_mark": "Repère central",
"render.frame_copy_limit": "Aucun nom disponible pour dupliquer la prise de vue",
"render.frame_copy_name": "{name} copie {number}",
"render.frame_custom": "Personnalisé",
"render.frame_distance_unit": " × taille",
"render.frame_duplicate": "Dupliquer",
"render.frame_exposure": "Exposition",
"render.frame_fov": "Champ de vision",
"render.frame_guides": "Guides",
"render.frame_invalid_aspect": "Préréglage de format non valide",
"render.frame_lens": "Champ {fov}° · ≈ {mm} mm",
"render.frame_name": "Nom",
"render.frame_output_size": "Taille de sortie",
"render.frame_photo": "3:2 · Photo",
"render.frame_portrait": "4:5 · Portrait",
"render.frame_presets": "Préréglages de cadre",
"render.frame_presets_pending": "Arrive avec l'éditeur de prises de vue",
"render.frame_projection": "Projection",
"render.frame_render_shot": "Rendre cette prise de vue",
"render.frame_rule_thirds": "Règle des tiers",
"render.frame_safe_area": "Zone de sécurité",
"render.frame_shot_title": "Prise de vue · {name}",
"render.frame_square": "1:1 · Carré",
"render.frame_tall": "9:16 · Vertical",
"render.frame_thirds": "Tiers",
"render.frame_wide": "16:9 · Écran large",
"render.gpu_depth": "Profondeur maximale des chemins",
"render.gpu_options_help": "Les échantillons, la profondeur, la graine et l'exposition sont enregistrés avec ce préréglage. Seule la méthode d'image active est enregistrée.",
"render.gpu_path_failed": "Traceur de chemins GPU indisponible",
@@ -2385,6 +2581,7 @@
"render.heading_results": "RÉSULTATS",
"render.heading_shots": "PRISES DE VUE",
"render.hide_shots_label": "Masquer la bande des prises de vue",
"render.hover_look": "{object} · {look} · cliquer pour sélectionner",
"render.image_advanced": "Réglages GPU avancés",
"render.image_cancelled": "Rendu annulé",
"render.image_cancelling": "Annulation",
@@ -2531,17 +2728,95 @@
"render.library_uniform_ack": "Utiliser l'approximation uniforme sans effets spatiaux ni avancés",
"render.library_usable": "Projections exécutables",
"render.library_users": "Utilisations",
"render.light_aim": "Viser",
"render.light_anchor_pending": "Le changement du repère des lumières n'est pas encore pris en charge.",
"render.light_azimuth": "Azimut",
"render.light_backend_limit": "Choisissez le lancer de rayons CPU ou un studio GPU explicite pour modifier les lumières. Les lumières des anciens studios GPU restent en lecture seule.",
"render.light_behaviour": "COMPORTEMENT",
"render.light_default_fill": "Appoint",
"render.light_default_key": "Principale",
"render.light_default_number": "Lumière {number}",
"render.light_default_rim": "Contour",
"render.light_delete": "Supprimer",
"render.light_distance": "Distance",
"render.light_duplicate": "Dupliquer",
"render.light_elevation": "Élévation",
"render.light_gpu_punctual": "Les lumières ponctuelles et les spots sont disponibles avec le lancer de rayons CPU.",
"render.light_hard_shadow": "Cette lumière a des ombres nettes ; la douceur de l'émetteur n'est pas disponible.",
"render.light_intensity": "Intensité",
"render.light_missing": "Cette lumière n'existe plus. Sélectionnez une lumière dans le navigateur.",
"render.light_place_highlight": "Placer selon le reflet",
"render.light_place_pending": "Le placement selon le reflet nécessite la sélection des lumières dans la vue 3D et n'est pas encore pris en charge.",
"render.light_position": "POSITION",
"render.light_preview_help": "La vue en direct est sans ombres ; les lumières surfaciques utilisent une approximation par échantillon central. Le rendu utilise le modèle d'éclairage complet.",
"render.light_product_centre": "Centre du produit",
"render.light_size": "Taille",
"render.light_softness": "Douceur",
"render.light_temperature": "Température de couleur",
"render.light_temperature_help": "Teinte approximative de corps noir ; enregistrée en RVB linéaire.",
"render.light_type": "Type",
"render.light_type_area": "Surfacique",
"render.light_type_point": "Ponctuelle",
"render.light_type_spot": "Spot",
"render.light_type_sun": "Soleil",
"render.light_view_only": "Le solo et l'extinction agissent sur cette vue et ses rendus ; ils ne sont jamais enregistrés dans la conception.",
"render.light_world_origin": "Origine du monde",
"render.lighting_aim_point": "Point visé",
"render.lighting_apply": "Appliquer le préréglage",
"render.lighting_area_samples": "Échantillons surfaciques",
"render.lighting_budget": "Budget",
"render.lighting_budget_help": "Les nombres sont en lecture seule. Ajoutez, dupliquez ou supprimez des lumières pour les modifier ; la méthode fixe les limites.",
"render.lighting_colour": "Couleur",
"render.lighting_consent": "Remplacer les lumières directionnelles par ce préréglage",
"render.lighting_custom": "Lumières personnalisées",
"render.lighting_custom_help": "Choisir Personnalisé transforme le préréglage en lumières modifiables, chacune sur sa propre ligne de l'arborescence.",
"render.lighting_direction": "Direction X Y Z",
"render.lighting_direction_help": "Ou saisissez une direction vers la lumière (X Y Z).",
"render.lighting_distance_unit": " × taille",
"render.lighting_edge_u": "Vecteur du côté U",
"render.lighting_edge_v": "Vecteur du côté V",
"render.lighting_falloff": "Atténuation",
"render.lighting_falloff_help": "L'intensité est donnée à la distance de référence.",
"render.lighting_height": "Hauteur V",
"render.lighting_minimum": "Minimum",
"render.lighting_mute": "Éteindre cette lumière",
"render.lighting_point": "Point",
"render.lighting_preset": "Préréglage de studio",
"render.lighting_preset_cpu": "Les préréglages de studio directionnels nécessitent le lancer de rayons CPU. L'éclairage GPU utilise des lumières Soleil et Surfacique explicites.",
"render.lighting_preset_row": "Préréglage",
"render.lighting_radiance": "Radiance",
"render.lighting_reference": "Référence",
"render.lighting_review_help": "Remplace la liste des lumières directionnelles. Conserve les lumières ponctuelles et surfaciques, l'environnement, les ombres, la caméra et tous les autres réglages de la prise de vue.",
"render.lighting_review_title": "Examiner le préréglage d'éclairage",
"render.lighting_samples_cpu": "Les échantillons de lumière surfacique s'appliquent au lancer de rayons CPU.",
"render.lighting_samples_need_area": "Ajoutez une lumière surfacique CPU pour définir les échantillons surfaciques.",
"render.lighting_samples_reason": "Les échantillons surfaciques doivent valoir 1, 4, 16 ou 64.",
"render.lighting_shadow_cpu": "L'interrupteur des ombres nécessite le lancer de rayons CPU. Le tracé de chemins GPU projette toujours des ombres.",
"render.lighting_shadows": "Projeter des ombres",
"render.lighting_shadows_section": "Ombres et échantillonnage",
"render.lighting_shape": "Forme",
"render.lighting_solo": "Mettre cette lumière en solo",
"render.lighting_source": "Source",
"render.lighting_source_section": "Source de lumière",
"render.lighting_spot_preserved": "Cette lumière ponctuelle conserve son cône de spot enregistré tant que son type n'est pas changé.",
"render.lighting_sun_distance": "La direction du soleil ne dépend ni de la distance ni du point visé.",
"render.lighting_unsupported": "non pris en charge",
"render.lighting_used": "{used} sur {limit}",
"render.lighting_width": "Largeur U",
"render.lighting_world_position": "Monde X Y Z",
"render.lights_fixed_to": "Lumières fixées à",
"render.linear_help": "Conserve un master RVBA en flottant 32 bits avant le débruitage, l'exposition, le mappage des tons, les filtres et l'arrière-plan. sRVB/D65 linéaire ; prémultiplié par la couverture. La mémoire supplémentaire est admise explicitement. Pas de compression ni de passes supplémentaires.",
"render.linear_retain": "Conserver l'EXR linéaire brut",
"render.linear_unavailable": "L'image terminée sélectionnée n'a pas d'EXR conservé. Activez la conservation avant le rendu ; un ancien PNG ne permet pas de récupérer la radiance brute.",
"render.look_add": "Ajouter un look colorimétrique",
"render.look_applied": "Appliqué : {name}",
"render.look_bleach": "Inspiration traitement sans blanchiment (bleach bypass)",
"render.look_cool": "Froid",
"render.look_cyanotype": "Inspiration cyanotype",
"render.look_faded": "Tirage délavé",
"render.look_material": "Matériau",
"render.look_mono": "Monochrome",
"render.look_pasted": "Aspect collé",
"render.look_sepia": "Sépia",
"render.look_strength": "Intensité du look",
"render.look_teal_orange": "Bleu canard / orange",
@@ -2617,9 +2892,11 @@
"render.output_advanced": "Avancé",
"render.output_backend_ready": "Prêt",
"render.output_check": "Vérifier",
"render.output_check_failed": "Vérification · erreur",
"render.output_check_help": "Lancez Vérifier pour examiner cette requête sans démarrer de rendu.",
"render.output_check_summary": "Vérification · Remarques : {count}",
"render.output_copy": "Copier",
"render.output_copy_report": "Copier le rapport",
"render.output_destination": "Destination",
"render.output_destination_help": "Choisissez le fichier de destination lors de l'export de l'image terminée.",
"render.output_dimensions": "Taille",
@@ -2629,6 +2906,7 @@
"render.output_fit": "Cadrer",
"render.output_format": "Format",
"render.output_format_status": "Le PNG est l'image d'affichage terminée exacte. L'EXR GPU facultatif conserve la radiance brute FLOAT32 en linéaire scène, avant les filtres d'affichage. L'export ne substitue jamais le cache d'aperçu ni une autre tâche.",
"render.output_grading": "Étalonnage",
"render.output_image": "Image",
"render.output_largest": "{width} × {height} max",
"render.output_lock_ratio": "Verrouiller le rapport d'aspect",
@@ -2638,6 +2916,8 @@
"render.output_quality_waiting": "en attente du contrat de qualité",
"render.output_ratio_refused": "La dimension liée dépasse la taille limite de cette méthode. La taille précédente est conservée ; déverrouillez le rapport ou choisissez une valeur plus petite.",
"render.output_ready": "Prêt à lancer le rendu",
"render.output_run_check": "Lancer la vérification",
"render.output_size_limit": "{method} : jusqu'à {dimension} px par côté et {pixels} pixels. Plus grande taille possible : {width} × {height}.",
"render.output_size_ok": "Taille correcte · {width} × {height} px",
"render.output_swap_orientation": "Permuter largeur et hauteur",
"render.output_tools_inspector": "Modifier la taille et le format dans l'inspecteur Sortie.",
@@ -2654,6 +2934,7 @@
"render.page_output": "Sortie",
"render.page_scene": "Scène",
"render.paint_label": "Peindre",
"render.painting_with": "Peinture avec {name}",
"render.passive_stage": "Sol et décor passif",
"render.passive_stage_help": "Les panneaux passifs finis n'appartiennent qu'aux images rendues. Ils n'ajoutent ni corps CAO ni masse. Leur placement est figé après application ; un recoupement avec les limites du produit est refusé. Le CPU ne fournit pas d'éclairage diffus par rebond.",
"render.perspective": "Caméra en perspective",
@@ -2675,6 +2956,7 @@
"render.pick_help": "Choisir Corps, Face ou Composant. Cliquer dans le vide pour effacer ; Maj ou Ctrl ajoute ou inverse. Les surbrillances n'apparaissent que dans la vue produit en direct.",
"render.pick_label": "Sélectionner",
"render.pick_up_label": "Prélever",
"render.pick_up_prompt": "Cliquez sur un objet pour prélever son aspect",
"render.pick_waiting": "La sélection de produits n'est pas encore prise en charge.",
"render.post_contrast": "Contraste",
"render.post_gain_b": "Gain bleu",
@@ -2714,13 +2996,17 @@
"render.radial_distortion": "Distorsion radiale",
"render.radial_fit": "Cadrer le produit",
"render.radial_save": "Enregistrer la prise de vue",
"render.recent_looks": "Aspects récents",
"render.regrade_action": "Réétalonner le master brut (sans débruitage)",
"render.regrade_help": "Crée un PNG distinct à partir du master brut terminé sélectionné, avec ces réglages de présentation. Ne trace aucun rayon, ne change ni la taille, ni la caméra, ni les lumières capturées, et n'écrase pas l'EXR. Le débruitage n'est pas réappliqué : les masters bruts ne conservent pas ses guides. Le résultat reste exportable par les mêmes réglages de tâche.",
"render.regrade_label": "Réétalonner",
"render.reload_settings": "Recharger les réglages enregistrés",
"render.remove_override": "Retirer la surcharge",
"render.replace_all": "Tout remplacer",
"render.replace_ground": "Confirmer le remplacement du décor existant",
"render.replace_label": "Remplacer",
"render.replace_saved_surface": "Remplacer une association enregistrée existante pour cette cible",
"render.replace_with": "Remplacer par",
"render.restore_camera": "Restaurer la caméra enregistrée",
"render.result_actual": "100 %",
"render.result_actual_help": "Un pixel d'image par pixel d'affichage.",
@@ -2772,14 +3058,28 @@
"render.saved_surface_remove": "Supprimer l'association enregistrée",
"render.saved_surfaces": "Associations de surface enregistrées",
"render.saved_surfaces_help": "Les textures intégrées épinglées suivent l'occurrence sélectionnée en millimètres locaux. Une cible remplacée ou manquante est une erreur, jamais une réaffectation automatique.",
"render.scene_all_shots": "Toutes les prises de vue ({count})",
"render.scene_apply": "Appliquer le studio examiné",
"render.scene_batch_reason": "Le rendu de toutes les prises de vue nécessite la file de rendu des prises de vue enregistrées, qui n'est pas encore disponible.",
"render.scene_check_now": "Vérifier maintenant",
"render.scene_check_passed": "Vérification réussie · {notes} remarques",
"render.scene_check_stale": "Vérification périmée · vérifiez à nouveau",
"render.scene_check_unchecked": "Pas encore vérifié · 0 remarque",
"render.scene_consent": "Confirmer le remplacement de l'éclairage, de l'environnement, de l'exposition et du décor",
"render.scene_light_summary": "{environment} · {lights} lumières",
"render.scene_look_summary": "{looks} aspects · {overrides} surcharges",
"render.scene_open_check": "Ouvrir la vérification",
"render.scene_preserved_fields": "La caméra, l'échantillonnage, les dimensions, les associations optiques, la géométrie CAO et les matériaux techniques sont conservés.",
"render.scene_preserves_design": "Composer un éclairage et un décor passif pour le sujet visible. La géométrie, les matériaux techniques et la caméra restent distincts.",
"render.scene_ready": "Prêt à lancer le rendu",
"render.scene_reminder": "Scène préserve la conception. La géométrie, les propriétés techniques et la CAO ne sont jamais modifiées depuis Rendu.",
"render.scene_reminders": "Rappels",
"render.scene_renderer_ready": "{renderer} prêt",
"render.scene_replaces": "Remplace",
"render.scene_review": "Résoudre et examiner",
"render.scene_review_help": "Examinez la composition native complète avant d'appliquer. Les spécifications SCENE avancées non liées ne sont pas substituées.",
"render.scene_scope_details": "Portée de la composition",
"render.scene_stages": "Étapes",
"render.search_appearances": "Rechercher parmi {count} apparences",
"render.setup_legacy_environment": "Ce préréglage ancien utilise une rotation ou une intensité d'environnement héritée. Ces valeurs sont conservées ; convertissez-les explicitement avant d'enregistrer une tâche d'image complète.",
"render.setup_name": "Nom du préréglage",
@@ -2792,7 +3092,22 @@
"render.shell_tab_camera": "CAMÉRA DE RENDU",
"render.shell_tab_lighting": "ÉCLAIRAGE",
"render.shell_tab_scene": "SCÈNE DE RENDU",
"render.shot_aperture": "Ouverture",
"render.shot_distance": "Distance",
"render.shot_dof": "Profondeur de champ",
"render.shot_duplicate": "Dupliquer la prise de vue enregistrée",
"render.shot_edit_output": "Modifier dans Sortie",
"render.shot_exposure_reason": "L'exposition nécessite le lancer de rayons CPU ou le tracé de chemins GPU.",
"render.shot_exposure_section": "Exposition",
"render.shot_focus_distance": "Distance de mise au point",
"render.shot_fov_reason": "Le champ de vision nécessite une projection en perspective.",
"render.shot_frame_subject": "Cadrer le sujet",
"render.shot_invalid_camera": "Les valeurs de la caméra doivent être finies et dans les limites.",
"render.shot_lens": "Objectif",
"render.shot_lens_enable_reason": "Activez la profondeur de champ pour modifier l'ouverture et la distance de mise au point.",
"render.shot_lens_gpu_reason": "La profondeur de champ nécessite le tracé de chemins GPU.",
"render.shot_lens_perspective_reason": "La profondeur de champ nécessite une projection en perspective.",
"render.shot_look_selection": "Viser la sélection",
"render.shot_manager": "Prises de vue enregistrées",
"render.shot_new_name": "Nom de la nouvelle prise de vue",
"render.shot_remove": "Supprimer la prise de vue enregistrée",
@@ -2800,6 +3115,9 @@
"render.shot_remove_title": "Supprimer la prise de vue enregistrée ?",
"render.shot_rename": "Renommer la prise de vue enregistrée",
"render.shot_saved_only": "Enregistrez d'abord le brouillon actuel. Dupliquer et renommer conservent exactement les options enregistrées et les références aux ressources.",
"render.shot_selection_reason": "Sélectionnez un corps ou une face à viser.",
"render.shot_size": "Taille",
"render.shot_target": "Cible",
"render.shots_camera_changed": "La caméra a changé depuis l'enregistrement de cette prise de vue",
"render.shots_name_help": "Saisissez un nom unique pour la prise de vue actuelle.",
"render.shots_no_result": "Aucun rendu pour l'instant",
@@ -3022,6 +3340,13 @@
"render.wait_pick_up": "pas encore pris en charge : la sélection de produits et le prélèvement d'apparences",
"render.wait_replace": "pas encore pris en charge : le remplacement de toutes les utilisations d'une apparence",
"render.wait_solo": "pas encore pris en charge : la visibilité des lumières et les contrôles solo",
"render.wear_applies_to": "S'applique à",
"render.wear_layer_count": "{count} couches",
"render.wear_layer_one": "{count} couche",
"render.wear_layers": "Couches",
"render.wear_no_layers": "Aucune couche",
"render.wear_selected_layer": "Couche sélectionnée",
"render.wear_title": "Usure",
"sample.bracket.about": "Tôle de base avec bords tombés et un ourlet, selon une règle de 2 mm",
"sample.bracket.name": "Équerre en tôle",
"sample.enclosure.about": "Boîte en coque avec lèvre, bossages de vis, appui et clip",
@@ -3055,6 +3380,7 @@
"select an axis": "sélectionner un axe",
"select an axis, a straight or circular edge, or a cylinder, cone or torus face first": "sélectionner d'abord un axe, une arête droite ou circulaire, ou une face cylindrique, conique ou torique",
"select bodies first": "sélectionner d'abord des corps",
"select components first": "sélectionner d'abord des composants",
"select corner points, or the two lines of one corner": "sélectionner des points de coin, ou les deux lignes d'un coin",
"select one corner point, or the two lines of one corner": "sélectionner un point de coin, ou les deux lignes d'un coin",
"select sheet edges first": "sélectionner d'abord des arêtes de tôle",
@@ -3073,6 +3399,7 @@
"settings.double_click_components": "Double-cliquez sur un composant pour l'activer, ou pour modifier sur place un composant lié",
"settings.frame_rate_details_note": "Ajoute un graphe des temps des dernières images avec les triangles dessinés superposés, un histogramme des temps d'image et ce que le GPU a dessiné. Cliquez sur la fréquence d'images dans la vue pour les afficher ou les masquer.",
"settings.frame_rate_note": "Affiche les images par seconde dans le coin inférieur droit de la vue.",
"settings.insert_lists_open_designs": "Insérer une conception liste d'abord les conceptions ouvertes dans d'autres onglets",
"settings.measure_axis_distances": "Afficher les cotes X/Y/Z",
"settings.measure_axis_distances_help": "Afficher les cotes suivant les axes du repère global en plus de la distance totale pendant la mesure.",
"settings.msaa_applies_on_restart": "L'anticrénelage s'appliquera au prochain démarrage de SolidCraft",
@@ -3097,6 +3424,10 @@
"shortcut.unpin": "Désépingler",
"sketch is missing": "l'esquisse est manquante",
"sketch.degrees_of_freedom": "{count} degrés de liberté",
"sketch.dimension_added_driven": "L'esquisse détermine déjà cette cote ; elle a donc été ajoutée comme cote pilotée (de référence)",
"sketch.dimension_applied": "Cote appliquée",
"sketch.dimension_applied_defined": "Cote appliquée ; paramètre `{name}` défini",
"sketch.dimension_applied_renamed": "Cote appliquée ; paramètre nommé `{name}`",
"sketch.dof_left": "{count} degrés de liberté restants",
"sketch.dof_left_one": "{count} degré de liberté restant",
"sketch.draw_curves": "Dessiner en {linetype}",
@@ -3249,6 +3580,10 @@
"ui.3d_mouse_offer": "Calibrer votre souris 3D corrige les axes échangés ou inversés et règle sa vitesse et sa sensation.",
"ui.3d_mouse_offer_never": "Ne plus afficher",
"ui.3d_mouse_offer_swap": "Passer à Hidraw (pilote direct)",
"ui.3d_mouse_orbit": "Orbite",
"ui.3d_mouse_orbit_classic": "Classique",
"ui.3d_mouse_orbit_tip": "Ciblée : la souris 3D fait tourner la vue autour de la partie du modèle située au milieu de la vue au début de la rotation, marquée par une boule discrète. Classique : autour du centre de la vue",
"ui.3d_mouse_orbit_traced": "Ciblée",
"ui.3d_mouse_reading": "Lecture",
"ui.3d_mouse_reset_axes": "Réinitialiser l'attribution des axes",
"ui.3d_mouse_reset_view": "Réinitialiser la vue",
@@ -3633,6 +3968,7 @@
"ui.constant": "Constant",
"ui.constraints_conflict": "Contraintes en conflit",
"ui.construction": "Construction",
"ui.construction.ribbon_label": "Lignes aux.",
"ui.context_menu": "Menu contextuel",
"ui.continuity_g0": "G0 angle vif",
"ui.continuity_g1": "G1 tangence",
@@ -3724,6 +4060,14 @@
"ui.end_scale": "Échelle finale",
"ui.entities": "Entités",
"ui.equal": "Égalité",
"ui.equation_end": "Fin",
"ui.equation_explicit": "Explicite",
"ui.equation_form": "Forme",
"ui.equation_note": "La variable est un simple nombre : sin(t) la prend en radians. Un résultat sans unité est dans l'unité de la conception.",
"ui.equation_parametric": "Paramétrique",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Rayon équivalent",
"ui.expand": "Développer",
"ui.exportDxf": "Exporter en DXF…",
@@ -3789,6 +4133,7 @@
"ui.heading_design": "DESIGN",
"ui.heading_draft": "DÉPOUILLE",
"ui.heading_edit": "ÉDITION",
"ui.heading_equation_curve": "COURBE PAR ÉQUATION",
"ui.heading_extrude": "EXTRUSION",
"ui.heading_fillet": "CONGÉ",
"ui.heading_finish_editing": "TERMINER LA MODIFICATION",
@@ -3880,6 +4225,10 @@
"ui.import_ellipsis": "Importer…",
"ui.infinite": "Infinie",
"ui.insert": "Insérer",
"ui.insert_design.browse": "Parcourir…",
"ui.insert_design.open_designs": "Conceptions ouvertes",
"ui.insert_design.saved_file": "{name} contient des modifications non enregistrées ; c'est donc son fichier enregistré qui a été inséré. Enregistrez-le, puis utilisez Mettre à jour les liens pour intégrer les modifications.",
"ui.insert_design.unsaved": "Modifications non enregistrées",
"ui.inspect": "Inspecter",
"ui.intersect": "Intersection",
"ui.isolate": "Isoler",
@@ -4029,6 +4378,18 @@
"ui.project": "Projeter",
"ui.project_face_edges_sketch": "Projeter les arêtes de la face dans les nouvelles esquisses",
"ui.properties": "Propriétés",
"ui.properties.copy_matrix": "Copier la matrice",
"ui.properties.first_moments": "Moments statiques",
"ui.properties.inertia": "Moment d'inertie",
"ui.properties.inertia_note": "Par rapport au centre de gravité, dans les axes du monde (g·{unit}²)",
"ui.properties.inertia_unavailable": "Non disponible : le maillage d'un corps n'est pas fermé.",
"ui.properties.inertia_x": "Ixx, Ixy, Ixz",
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Mesure en cours…",
"ui.properties.measuring_failed": "La mesure s'est arrêtée avant la fin.",
"ui.properties.principal_axis": "Axe principal {number}",
"ui.properties.principal_moments": "Moments principaux",
"ui.pull_direction": "Direction de démoulage",
"ui.quality": "Qualité",
"ui.quantity": "Quantité",
@@ -4128,7 +4489,11 @@
"ui.sketch": "Esquisse",
"ui.sketch_dimension": "Cote d'esquisse",
"ui.sketch_grid": "Grille d'esquisse",
"ui.sketch_intersect_geometry": "Géométrie",
"ui.sketch_intersect_projection_link": "Lien de projection",
"ui.sketch_intersect_selection_filter": "Filtre de sélection",
"ui.sketch_modifiers": "Modificateurs d’esquisse",
"ui.sketch_project_geometry": "Géométrie",
"ui.sketch_scale": "Échelle d'esquisse",
"ui.sketches": "Esquisses",
"ui.slice": "Trancher",
@@ -4179,6 +4544,7 @@
"ui.tab_manage": "Gérer",
"ui.tab_sheet_metal": "Tôlerie",
"ui.tab_view": "Vue",
"ui.tab_weldments": "Mécano-soudure",
"ui.tangent": "Tangence",
"ui.taper_angle": "Angle de dépouille",
"ui.tapped": "Taraudé",
@@ -4194,6 +4560,7 @@
"ui.tip_angle": "Angle de pointe",
"ui.to_object": "Jusqu'à l'objet",
"ui.tool_direction": "Direction de l'outil",
"ui.toolbar_tabs_hidden": "Tous les onglets de la barre d'outils sont masqués. Cliquez sur + ou faites un clic droit ici pour en afficher un.",
"ui.top": "Dessus",
"ui.top_diameter": "Diamètre supérieur",
"ui.top_radius": "Rayon supérieur",
@@ -4240,6 +4607,7 @@
"ui.visual_shaded_with_edges": "Ombré avec arêtes",
"ui.visual_style": "Style visuel",
"ui.visual_wireframe": "Filaire",
"ui.wheel_zoom_speed": "Vitesse du zoom à la molette",
"ui.width": "Largeur",
"ui.window_system": "Système de fenêtrage",
"ui.window_system_auto": "Automatique",
@@ -4291,6 +4659,9 @@
"update.prefs_label": "Mises à jour",
"update.prefs_note": "Ceci est SolidCraft {version} ({kind}). Une vérification interroge GitHub sur la dernière version et n'envoie rien d'autre.",
"update.prefs_web": "Rechargez la page pour obtenir la dernière version de l'application web. Si le réseau est indisponible ou si la mise à jour ne peut pas finir de se télécharger à temps, la version enregistrée s'ouvre à la place ; un téléchargement en cours se poursuit pour le prochain rechargement.",
"update.refresh_checking": "Recherche de la dernière version…",
"update.refresh_fallback": "Impossible de rechercher une version plus récente ; mise à jour vers {version}, trouvée plus tôt.",
"update.refresh_selected": "Mise à jour vers {version}.",
"update.release_page": "Ouvrir la page de la version",
"update.restart": "Redémarrer maintenant",
"update.restart_later": "Plus tard",
+397
View File
@@ -204,6 +204,7 @@
"Edges": "Arestas",
"Edit": "Editar",
"Edit Profile Sketch": "Editar o bosquexo do perfil",
"Edit shortcuts": "Editar os atallos",
"Enable rule": "Activar a regra",
"Enabled": "Activado",
"End Radius": "Raio final",
@@ -466,6 +467,7 @@
"Radius": "Raio",
"Radius Fit": "Axuste do raio",
"Ratio": "Proporción",
"Read-only list: shortcuts can't be changed here.": "Lista de só lectura: aquí non se poden cambiar os atallos.",
"Reattach selected face": "Volver ancorar a cara seleccionada",
"Recover": "Recuperar",
"Recover unsaved design?": "Recuperar o deseño sen gardar?",
@@ -649,6 +651,7 @@
"Third point": "Terceiro punto",
"This child is shared. Deleting it removes it from every copy of its parent.": "Este fillo está compartido. Eliminalo quítao de todas as copias do seu pai.",
"This child is shared. Position changes apply to every copy of its parent.": "Este fillo está compartido. Os cambios de posición aplícanse a todas as copias do seu pai.",
"This component is inside a subassembly placed more than once: aligning it moves it in every placement.": "Este compoñente está dentro dunha subensamblaxe colocada máis dunha vez: aliñalo móveo en todas as colocacións.",
"This face cannot provide a durable attachment. Choose another face or explicitly use a fixed plane.": "Esta cara non pode ofrecer unha ancoraxe duradeira. Escolle outra cara ou usa expresamente un plano fixo.",
"This image is not attached to GitHub yet. Copy or save it, then attach it on GitHub.": "Esta imaxe aínda non está anexada a GitHub. Copia ou garda a imaxe e despois anéxaa en GitHub.",
"Thread depth": "Profundidade da rosca",
@@ -790,6 +793,11 @@
"cam.roller": "Rolete",
"cam.roller_pick": "Rolete (opcional)",
"cam.tip_pick": "Punta (opcional)",
"camera.shot_pitch": "Cabeceo",
"camera.shot_roll": "Balanceo",
"camera.shot_yaw": "Guiñada",
"canvas.decal_place_hint": "Fai clic nunha cara para colocar a calcomanía",
"canvas.place_hint": "Fai clic nun plano ou nunha cara para colocar o lenzo",
"choose a profile": "escolle un perfil",
"choose the cam's and the follower's joints": "escolle as unións da leva e do seguidor",
"choose the joints to couple": "escolle as unións que acoplar",
@@ -797,9 +805,12 @@
"click sketch curves": "fai clic en curvas do bosquexo",
"cmd.appearance_assign": "Aparencia",
"cmd.appearance_chain": "Cadea de aparencias",
"cmd.appearance_copy": "Copiar o estilo",
"cmd.appearance_favorite": "Estilo favorito",
"cmd.appearance_library": "Biblioteca de aparencias",
"cmd.appearance_list": "Listar as aparencias",
"cmd.appearance_paint": "Pintar aparencia",
"cmd.appearance_paste": "Pegar o estilo",
"cmd.appearance_pick_up": "Tomar aparencia",
"cmd.appearance_replace": "Substituír aparencia",
"cmd.assembly_bom": "Lista de materiais",
@@ -810,6 +821,7 @@
"cmd.browser_move": "Mover elementos do navegador",
"cmd.browser_order": "Ordenar elementos do navegador",
"cmd.browser_rename_group": "Renomear o grupo",
"cmd.browser_reparent": "Mover ao compoñente",
"cmd.browser_ungroup": "Desagrupar",
"cmd.browser_visibility": "Mostrar/Ocultar",
"cmd.canvas_calibrate": "Calibrar o lenzo",
@@ -836,7 +848,9 @@
"cmd.component_metadata": "Propiedades da peza",
"cmd.component_metadata_set": "Cambiar as propiedades da peza",
"cmd.component_move_bodies": "Mover corpos ao compoñente",
"cmd.component_move_features": "Mover operacións ao compoñente",
"cmd.component_move_sketches": "Mover bosquexos ao compoñente",
"cmd.component_paste_from_design": "Pegar desde outro deseño",
"cmd.component_paste_new": "Pegar como novo",
"cmd.component_properties": "Propiedades físicas do compoñente",
"cmd.component_relink": "Volver ligar a orixe",
@@ -973,6 +987,7 @@
"cmd.motion_trace": "Traxectoria do movemento",
"cmd.motion_trace_edit": "Editar a traxectoria do movemento",
"cmd.motion_trace_keep": "Manter a traxectoria do movemento",
"cmd.occurrence_align": "Aliñar a aparición",
"cmd.occurrence_copy": "Pegar (instancia)",
"cmd.occurrence_drag": "Arrastrar a aparición",
"cmd.occurrence_ground": "Fixar ao chan",
@@ -1030,11 +1045,17 @@
"cmd.render_library_surface_unbind": "Quitar a vinculación da superficie",
"cmd.render_library_targets": "Buscar destinos da biblioteca de render",
"cmd.render_lights_add": "Engadir luz",
"cmd.render_lights_duplicate": "Duplicar a luz do render",
"cmd.render_lights_list": "Listar as luces do render",
"cmd.render_lights_mute": "Silenciar a luz",
"cmd.render_lights_remove": "Quitar a luz do render",
"cmd.render_lights_set": "Definir a luz do render",
"cmd.render_lights_solo": "Luz en solo",
"cmd.render_optics_bind": "Gardar a vinculación óptica",
"cmd.render_optics_unbind": "Quitar a vinculación óptica",
"cmd.render_output_size": "Definir o tamaño de saída do render",
"cmd.render_preflight": "Comprobar a solicitude de render",
"cmd.render_preflight_copy": "Copiar o informe da comprobación do render",
"cmd.render_preset_apply": "Aplicar o Studio nativo",
"cmd.render_preset_resolve": "Revisar o Studio nativo",
"cmd.render_quality_prepare": "Revisar o orzamento fixo de mostraxe",
@@ -1057,6 +1078,13 @@
"cmd.render_start": "Renderizar imaxe",
"cmd.render_status": "Progreso do render",
"cmd.select_clear": "Borrar a selección",
"cmd.settings_profile_apply": "Aplicar o perfil de axustes",
"cmd.settings_profile_delete": "Eliminar o perfil de axustes",
"cmd.settings_profile_export": "Exportar o perfil de axustes",
"cmd.settings_profile_import": "Importar un perfil de axustes",
"cmd.settings_profile_list": "Perfís de axustes",
"cmd.settings_profile_rename": "Renomear o perfil de axustes",
"cmd.settings_profile_save": "Gardar o perfil de axustes",
"cmd.sheet_convert": "Converter en chapa",
"cmd.sheet_export_bend_table": "Exportar a táboa de dobras",
"cmd.sheet_export_dxf": "Exportar o desenvolvemento como DXF",
@@ -1070,6 +1098,16 @@
"cmd.sheet_refold": "Volver dobrar",
"cmd.sheet_rules": "Listar as regras de chapa",
"cmd.sheet_unfold": "Despregar",
"cmd.sketch.construction_line": "Recta de construción",
"cmd.sketch.construction_line.angle": "Recta de construción con ángulo",
"cmd.sketch.construction_line.bisector": "Bisectriz",
"cmd.sketch.construction_line.horizontal": "Recta de construción horizontal",
"cmd.sketch.construction_line.parallel": "Recta de construción paralela",
"cmd.sketch.construction_line.perpendicular": "Recta de construción perpendicular",
"cmd.sketch.construction_line.tangent_at": "Tanxente nun punto da curva",
"cmd.sketch.construction_line.tangent_external": "Tanxente por un punto exterior",
"cmd.sketch.construction_line.tangent_two": "Tanxente común",
"cmd.sketch.construction_line.vertical": "Recta de construción vertical",
"cmd.sketch_arc3d": "Arco 3D",
"cmd.sketch_arc_center_point": "Arco por punto central",
"cmd.sketch_arc_tangent": "Arco tanxente",
@@ -1102,6 +1140,8 @@
"cmd.sketch_drawing_bounds": "Tamaño do debuxo",
"cmd.sketch_edit": "Editar o bosquexo",
"cmd.sketch_edit_text": "Editar o texto",
"cmd.sketch_equation_curve": "Curva de ecuación",
"cmd.sketch_equation_curve_edit": "Editar a curva de ecuación",
"cmd.sketch_export_dxf": "Gardar como DXF",
"cmd.sketch_finish_auto_constrain": "Rematar con restrición automática",
"cmd.sketch_fit_curves_to_section": "Axustar curvas a unha sección de malla",
@@ -1198,6 +1238,7 @@
"cmd.view.render_browser": "Navegador de render",
"cmd.view.render_dock": "Mover o panel de render",
"cmd.view.render_focus": "Vista de foco do render",
"cmd.view.status_items": "Elementos de estado da ventá gráfica",
"cmd.view_ambient_occlusion": "Oclusión ambiental",
"cmd.view_angle_readout": "Ángulos da vista",
"cmd.view_apply": "Restaurar a vista con nome",
@@ -1219,6 +1260,7 @@
"cmd.view_normal_to": "Normal á selección",
"cmd.view_previous_tab": "Lapela anterior",
"cmd.view_rename": "Renomear a vista con nome",
"cmd.view_render_frame": "Guías de encadre do render",
"cmd.view_right": "Vista dereita",
"cmd.view_save": "Vista con nome nova",
"cmd.view_shots_strip": "Franxa de tomas",
@@ -1229,10 +1271,14 @@
"color.copy": "Preme para copiar os valores da cor",
"color.edit": "Preme para editar a cor",
"color.gamma": "Mostrando os valores da cor no espazo gamma 0-255",
"color.hex": "Hex",
"color.hex_help": "Escribe #rrggbb ou #rrggbbaa; con seis díxitos consérvase a opacidade",
"color.hex_hint": "#rrggbb",
"color.hue": "Ton",
"color.linear": "Mostrando os valores da cor no espazo lineal 0-1",
"color.saturation_value": "Saturación e valor",
"color.selected": "Cor seleccionada",
"config.column_filter_empty": "Non hai columnas que coincidan",
"contact.components_count": "{count} compoñentes",
"contact.enabled_label": "activado",
"coupling.gear_1": "Engrenaxe 1",
@@ -1346,8 +1392,10 @@
"help.material.assign": "Define de que material están feitos os corpos seleccionados, como aceiro, aluminio ou ABS. Úsao para que a masa e o peso coincidan coa peza real.",
"help.mit": "Licenza MIT",
"help.notice": "NOTICE",
"help.occurrence.move": "Move unha peza da ensamblaxe só segundo os graos de liberdade que permiten as súas unións. Selecciona unha cara da peza e despois arrastra unha frecha ou un arco dispoñible.",
"help.parameters.change": "Abre a táboa de valores con nome e expresións que controlan as cotas do deseño. Úsao para cambiar un tamaño nun só lugar e que o sigan todas as operacións que o usan.",
"help.pointcloud.insert": "Insire unha dixitalización PLY, XYZ ou PTS como nube de puntos xunto ao modelo. Úsaa como referencia ao construír un modelo a partir de datos medidos.",
"help.sketch.equation_curve": "Debuxa unha curva a partir de fórmulas: x(t) e y(t), ou y = f(x), nun intervalo. As fórmulas poden usar parámetros e a curva segue os seus cambios: úsaa para unha onda senoidal, unha espiral ou a evolvente do dente dunha engrenaxe.",
"help.solid.align": "Move os corpos seleccionados para que un punto, cara ou plano deles coincida cun punto, cara ou plano doutro lugar. Úsao para colocar unha peza contra outra sen medir o desprazamento.",
"help.solid.chamfer": "Corta as arestas seleccionadas cun bisel plano da distancia que indiques. Úsao para romper arestas vivas ou para facilitar a entrada dun pasador ou dun parafuso.",
"help.solid.combine": "Une corpos, córtaos dun corpo de destino ou conserva só o volume que comparten, e pode manter os corpos ferramenta. Úsao para fusionar pezas, para cortar unha forma con outra ou para atopar onde se solapan dous corpos.",
@@ -1474,6 +1522,21 @@
"joint.one_component": "Estas pezas son corpos dun mesmo compoñente: {bodies}. Unha unión move un compoñente respecto doutro, así que cada peza precisa o seu propio compoñente.",
"joint.rigid_group_one_component": "Estes {count} corpos están todos nun só compoñente (ou no propio deseño): usa primeiro {command}.",
"joint.rigid_group_select_components": "Selecciona dous ou máis compoñentes.",
"joint_move.blocked_hint": "Comproba o tipo de unión (como Ríxida), a fixación ao chan, os límites da unión e os valores controlados por parámetros.",
"joint_move.blocked_title": "Non se pode mover esta peza",
"joint_move.coarse": "Paso de rotación preto do eixe (°)",
"joint_move.distance": "Distancia desde o inicio",
"joint_move.done": "Feito",
"joint_move.fine": "Paso de rotación lonxe do eixe (°)",
"joint_move.fixed": "Esta peza non ten ningún eixe de unión móbil.",
"joint_move.help": "Mover — arrastra unha frecha ou un anel. Esc cancela o arrastre actual.",
"joint_move.legacy_hint": "Desactívao para usar o panel Mover anterior.",
"joint_move.precision": "Tira cara a fóra da guía descontinua para unha rotación fina.",
"joint_move.rotation": "Rotación desde o inicio",
"joint_move.select": "Selecciona unha cara ou unha peza da ensamblaxe e despois escolle Mover.",
"joint_move.settings": "Mover na ensamblaxe",
"joint_move.step": "Paso",
"joint_move.use_handles": "Usar asas de movemento das unións para Mover na ensamblaxe",
"keymap.command_id": "ID do comando",
"keymap.empty": "Non hai comandos coincidentes",
"keymap.use_anyway": "Usar {key} aquí de todos os xeitos",
@@ -1568,6 +1631,8 @@
"nav.maya.help": "Alt+arrastrar co botón esquerdo orbita, Alt+botón central desprázase, Alt+botón dereito fai zoom; arrastrar co botón central tamén desprázase",
"nav.openscad.help": "Arrastrar co botón esquerdo sobre un espazo baleiro orbita, Shift+arrastrar co botón esquerdo selecciona por caixa, arrastrar a xeometría do bosquexo edítaa; arrastrar co botón dereito ou central desprázase, Shift+arrastrar co botón dereito ou central fai zoom",
"nav.perspective.sketch": "A edición de bosquexos usa a vista ortogonal. Remata o bosquexo para cambiar á perspectiva.",
"nav.right_drag_orbits.help": "Desactivado: arrastrar co botón dereito non move a cámara e o botón dereito só abre o menú contextual. Escoller a asignación do rato de SolidWorks desactívao.",
"nav.right_drag_orbits.label": "Arrastrar co botón dereito orbita",
"nav.solidworks.help": "Arrastrar co botón central orbita, Ctrl+botón central desprázase, Shift+botón central fai zoom, arrastrar co botón dereito orbita",
"nav.tinkercad.help": "Arrastrar co botón dereito orbita, arrastrar co botón central ou Shift+botón dereito desprázase",
"nav.touchpad.help": "Mantén Maiús e move o punteiro para desprazar; mantén Alt/Opción e móveo para orbitar. Non fai falta ningún botón do rato. O desprazamento vertical fai zoom.",
@@ -1589,6 +1654,9 @@
"navbar.custom.customise": "Personalizar a barra de navegación…",
"navbar.custom.design": "Deseño",
"navbar.custom.duplicate": "Este elemento xa está na barra.",
"navbar.custom.edge": "Bordo",
"navbar.custom.edge_bottom": "Inferior",
"navbar.custom.edge_top": "Superior",
"navbar.custom.fade": "Esvaecer",
"navbar.custom.full": "Quita un elemento para engadir outro.",
"navbar.custom.hidden_design": "Oculto en Deseño",
@@ -1695,6 +1763,7 @@
"parts.dimension.thickness": "Espesor",
"parts.dimension.width": "Largura",
"parts.family.bearing": "Rodamento rígido de bólas (envolvente)",
"parts.family.button_head_cap_screw": "Parafuso de cabeza abombada con hexágono interior",
"parts.family.dowel_pin": "Pasador paralelo (espiga)",
"parts.family.hex_bolt": "Parafuso / perno de cabeza hexagonal",
"parts.family.hex_nut": "Porca hexagonal",
@@ -1751,6 +1820,9 @@
"prefs.bottom_centre": "Inferior centro",
"prefs.bottom_right": "Inferior dereita",
"prefs.browser": "Navegador",
"prefs.browser_reveal_on_hover": "Mostrar ao pasar o punteiro",
"prefs.browser_show_note": "Visible mantén o navegador na pantalla. Con Mostrar ao pasar o punteiro, queda oculto ata que o punteiro pasa polo seu lugar ou pola lapela estreita do seu bordo esquerdo, e segue aberto mentres o punteiro está dentro del ou hai aberto un menú del.",
"prefs.browser_shown": "Visible",
"prefs.built_in": "Integrado",
"prefs.button_left": "Arrastrar co botón esquerdo",
"prefs.button_middle": "Arrastrar co botón central",
@@ -1821,6 +1893,8 @@
"prefs.layout_note": "Compacta acopla os paneis aos bordos da xanela. A translucidez do navegador está dispoñible en Flotante. Cambia o lado do Asistente na páxina do Asistente.",
"prefs.left": "Esquerda",
"prefs.left_click": "Clic esquerdo",
"prefs.line_drag_draws_one": "Premer e arrastrar debuxa unha liña",
"prefs.line_drag_draws_one_note": "Na ferramenta Liña, premer, arrastrar e soltar debuxa unha liña desde onde se preme ata onde se solta, e remata alí. Os clics seguen debuxando unha cadea. Desactivado: un arrastre coloca un punto onde se solta, como fai un clic.",
"prefs.linked_designs": "Deseños ligados",
"prefs.live_input": "Entrada en directo",
"prefs.live_preview": "Vista previa en directo",
@@ -1853,14 +1927,36 @@
"prefs.origin_plane_names": "Nomes dos planos de orixe",
"prefs.origin_plane_names_note": "Nomes que se mostran no navegador, nos diálogos e nas listas. {top} é XY, {front} é XZ e {right} é YZ, co eixe Z cara arriba. Os comandos, os scripts e os deseños gardados manteñen XY, XZ e YZ.",
"prefs.overall_speed": "Velocidade xeral",
"prefs.perspective_fov": "Campo de visión",
"prefs.placement": "Colocación",
"prefs.prefer_free_sketch_points": "Preferir os puntos de bosquexo móbiles cando os puntos se solapan",
"prefs.preview_choices": "Vista previa das túas opcións",
"prefs.profile_active": "Perfil activo",
"prefs.profile_applied": "Perfil aplicado.",
"prefs.profile_changed": "Os axustes cambiaron desde que se gardou o perfil. Gardar consérvaos nel.",
"prefs.profile_deleted": "Perfil eliminado.",
"prefs.profile_export": "Exportar…",
"prefs.profile_exported": "Perfil exportado.",
"prefs.profile_imported": "Perfil importado. Escólleo en Perfil activo para cambiar a el.",
"prefs.profile_name_hint": "Nome do perfil, p. ex. Portátil",
"prefs.profile_rename": "Renomear",
"prefs.profile_renamed": "Perfil renomeado.",
"prefs.profile_save": "Gardar",
"prefs.profile_saved": "Gardáronse os axustes actuais no perfil.",
"prefs.profile_skipped": "Perfil aplicado; {n} axuste(s) conservaron o seu valor actual (consulta o rexistro).",
"prefs.profiles": "Perfís de axustes",
"prefs.profiles_note": "Os atallos, a barra de ferramentas, a navegación, o menú radial e os axustes da interface, gardados xuntos baixo un nome e cambiados dunha vez.",
"prefs.project_options_dialog": "Diálogo de opcións de Proxectar",
"prefs.project_options_dialog_note": "Activado: escolle Xeometría ou Corpos e Ligazón de proxección antes de proxectar. Desactivado: mantén o fluxo de traballo anterior de selección directa.",
"prefs.quality_default": "predeterminado",
"prefs.quality_fastest": "máis rápido",
"prefs.quality_slowest": "máis lento",
"prefs.quality_smoother": "máis suave",
"prefs.render_previous_geometry_budget": "Usar o orzamento de xeometría anterior da vista previa de Render",
"prefs.render_previous_geometry_budget_help": "Restaura o límite fixo de xeometría anterior (512 MiB en escritorio de 64 bits, 128 MiB noutros casos) en lugar do orzamento baseado no dispositivo.",
"prefs.reports_saved": "{n} gardados",
"prefs.ribbon_reveal": "Mostrar os resultados da busca na cinta",
"prefs.ribbon_reveal_note": "Ao pasar o punteiro sobre un resultado en Buscar ordes, móstrase onde está a orde na cinta: a súa lapela, o seu botón ou a súa fila no despregable dun panel. Unha orde iniciada desde a busca escintila alí, e unha orde en execución desde un despregable marca o seu panel.",
"prefs.right_click": "Clic dereito",
"prefs.saving": "Gardado automático e recuperación",
"prefs.scale_note": "Tamén Ctrl + / Ctrl − na xanela. Os botóns miden 28 px ao 100%.",
@@ -1874,6 +1970,10 @@
"prefs.shift_add_ctrl_toggle": "Shift só engade; Ctrl / Cmd alterna",
"prefs.shift_add_note": "Activado: Shift engade, Ctrl / Cmd alterna. Desactivado (predeterminado): ambos alternan.",
"prefs.shortcuts": "Atallos",
"prefs.single_surface_analysis": "Usar unha única análise de superficie",
"prefs.single_surface_analysis_help": "Cando está desactivado, o sombreado de superficie e Continuidade poden estar activos á vez. Ao activalo, mantense a última análise iniciada ou cambiada.",
"prefs.sketch_align_points": "Aliñar con outros puntos do bosquexo ao debuxar",
"prefs.sketch_align_points_note": "Ao debuxar, un punto alíñase en horizontal cun punto do bosquexo e en vertical con outro á vez, cunha guía punteada, e o clic conserva os dous aliñamentos. Desactivado: só co punto anterior, un eixe de cada vez.",
"prefs.sketch_conflict_colour": "Xeometría en conflito na cor de conflito",
"prefs.sketch_conflict_colour_note": "Mentres as restricións dun bosquexo están en conflito, as curvas e os puntos que suxeita unha restrición que falla tamén se debuxan na cor de conflito, non só o seu símbolo ou a súa cota. Desactivado: manteñen as súas cores habituais.",
"prefs.sketch_exit_view": "Ao rematar un bosquexo",
@@ -1881,6 +1981,8 @@
"prefs.sketch_exit_view.previous": "Volver á vista anterior",
"prefs.sketch_exit_view.unless_rotated": "Volver, salvo que se xirase",
"prefs.sketch_exit_view_note": "A onde vai a vista despois de Finalizar o bosquexo, Cancelar ou un dobre Esc.",
"prefs.sketch_recent_snap": "Axustar automaticamente aos centros e puntos medios recentes",
"prefs.sketch_recent_snap_note": "Ao debuxar, o cursor axústase onde se cruzan as guías dos dous últimos centros de círculo ou puntos medios de liña recta. Desactivado: esas guías só se mostran e o cursor non se move.",
"prefs.sketch_selection": "Bosquexo e selección",
"prefs.sketch_selection_heading": "Bosquexo e selección",
"prefs.sketch_selection_note": "Como se axustan os bosquexos e como seleccionan os clics.",
@@ -1918,7 +2020,14 @@
"prefs.toast_place": "Avisos",
"prefs.toggle_item": "Engade o elemento ou quítao de novo",
"prefs.toolbar": "Barra de ferramentas",
"prefs.toolbar_tabs": "Lapelas da barra de ferramentas",
"prefs.top": "Superior",
"prefs.trackpad_zoom_modifier": "Zoom co desprazamento con dous dedos mantendo premida a tecla",
"prefs.trackpad_zoom_modifier.alt": "⌥ / Alt",
"prefs.trackpad_zoom_modifier.cmd": "⌘",
"prefs.trackpad_zoom_modifier.ctrl": "Ctrl",
"prefs.trackpad_zoom_modifier.help": "Mantén premida só esta tecla para facer zoom no punteiro co desprazamento vertical. Desactivado mantén o comportamento actual do desprazamento.",
"prefs.trackpad_zoom_modifier.off": "Desactivado",
"prefs.translucent": "Translúcido",
"prefs.under_browser": "Baixo o navegador",
"prefs.under_cursor": "Baixo o cursor",
@@ -1928,9 +2037,14 @@
"prefs.view_confirm_corner": "Aceptar e Cancelar na esquina da vista",
"prefs.view_confirm_corner_note": "Mentres hai un diálogo ou un bosquexo aberto, unha marca de verificación e unha cruz na parte superior dereita da vista fan o mesmo que Aceptar e Cancelar do diálogo, ou finalizan e cancelan o bosquexo. O navegador da vista desprázase cara abaixo, debaixo delas.",
"prefs.viewport": "Ventá gráfica",
"prefs.viewport_background": "Fondo",
"prefs.viewport_background_colour": "Cor",
"prefs.viewport_background_theme": "Degradado do tema",
"prefs.wheel": "Roda",
"prefs.wheel_trackpad": "Roda e panel táctil",
"prefs.workspace": "Espazo de traballo",
"prefs.zoom_stop_at_model": "Deter o zoom no modelo",
"prefs.zoom_stop_at_model_tip": "O rato 3D e a aplicación do dispositivo fan zoom cara á superficie do medio da vista; o zoom por arrastre mantén o punto onde comezou o arrastre. Desactivado: o zoom pode atravesar o modelo. A roda e a pinza usan Zoom cara ao cursor por separado",
"prefs.zoom_toward_cursor": "Zoom cara ao cursor",
"properties.title": "Propiedades: {name}",
"recovery.days_ago": "hai {count} días",
@@ -2019,6 +2133,7 @@
"render.appearance_editor.weight": "Peso",
"render.appearance_physics_separate": "A aparencia visual non asigna densidade, datos térmicos nin outras propiedades de enxeñaría.",
"render.appearances": "Aparencias",
"render.assign_help": "Fai clic para aplicar á selección; arrastra para previsualizar e solta, ou fai clic sen nada seleccionado para pintar.",
"render.availability_native": "Composición nativa; revísaa antes de aplicar",
"render.availability_projection": "Proxección admitida; consulta o alcance e as omisións",
"render.availability_reference": "Datos de referencia; non é unha asignación automática",
@@ -2057,6 +2172,7 @@
"render.bloom_threshold": "Limiar de realce lineal",
"render.browse_capabilities": "Inspeccionar o catálogo completo de capacidades",
"render.browse_environments": "Explorar contornos HDR orixinais",
"render.browse_looks": "Explorar…",
"render.browse_native_scenes": "Explorar estudios nativos",
"render.browse_physical": "Inspeccionar referencias físicas",
"render.browse_quality": "Inspeccionar especificacións de calidade",
@@ -2080,6 +2196,82 @@
"render.check_opaque": "Transparencia: só superficies opacas; admítese o alfa do fondo.",
"render.check_sorted_alpha": "Transparencia: aproximación alfa ordenada.",
"render.check_transmission": "Transparencia: transmisión física.",
"render.children.absolute_floor": "Límite inferior absoluto",
"render.children.adaptive": "Adaptativa",
"render.children.add_look_reason": "Engade un estilo para editar o seu estado de activación e a súa intensidade.",
"render.children.all_shots": "Todas as tomas",
"render.children.bloom": "Resplandor",
"render.children.check": "Comprobar",
"render.children.check_now": "Comprobar agora",
"render.children.chromatic": "Cromático",
"render.children.compact": "Compacto",
"render.children.contrast": "Contraste",
"render.children.copy_image": "Copiar",
"render.children.copy_job": "Copiar o JSON do traballo",
"render.children.copy_request": "Copiar o JSON da solicitude",
"render.children.coverage_error": "Erro de cobertura",
"render.children.cpu": "Trazado de raios na CPU",
"render.children.denoise": "Reducir o ruído na imaxe final",
"render.children.depth": "Profundidade de camiño",
"render.children.distortion": "Distorsión",
"render.children.edge_samples": "Mostras de bordo",
"render.children.effects_banner": "Estes efectos necesitan trazado de camiños na GPU. Abrir isto nunca cambia o método.",
"render.children.enable_adaptive": "Activa os pilotos independentes para editar os límites adaptativos.",
"render.children.enable_bloom": "Activa o resplandor para editar a súa intensidade, o limiar e o raio.",
"render.children.finishing": "Acabado",
"render.children.flare": "Destello",
"render.children.fresnel": "Estratos de Fresnel",
"render.children.ghosts": "Aneis fantasma",
"render.children.glass": "Transporte no vidro",
"render.children.go_to": "Ir a {editor}",
"render.children.grain": "Gran",
"render.children.halo": "Halo",
"render.children.hdr": "HDR",
"render.children.keep_master": "Conservar o máster lineal en bruto",
"render.children.last_result": "Último: {number} · {width} × {height} · {phase}",
"render.children.lens_effects": "Efectos de lente",
"render.children.look_summary": "{tone} · {count} estilos",
"render.children.looks": "Estilos creativos",
"render.children.memory": "Memoria",
"render.children.method": "Método",
"render.children.minimum": "Mínimo",
"render.children.needs_cpu": "Necesita trazado de raios na CPU. Abrir isto nunca cambia o método.",
"render.children.nested": "Dieléctricos aniñados certificados",
"render.children.not_checked": "Sen comprobar",
"render.children.path": "Trazado de camiños",
"render.children.pilots": "Mostras piloto",
"render.children.preview": "Datos da vista previa",
"render.children.progressive_reason": "Escolle Progresivo para editar o seu número de mostras e a semente.",
"render.children.radius": "Raio",
"render.children.reflect_depth": "Profundidade de reflexión",
"render.children.reflect_samples": "Mostras de reflexión",
"render.children.regrade": "Recorrección de cor",
"render.children.relative_error": "Erro relativo",
"render.children.render": "Renderizado",
"render.children.render_shot": "Renderizar a toma",
"render.children.renderer": "Motor de render",
"render.children.renderers": "Motores de render",
"render.children.request": "Esta solicitude",
"render.children.reset_finishing": "Restablecer o acabado",
"render.children.review_quality": "Revisar unha especificación de calidade…",
"render.children.rgb_gain": "Ganancia RGB",
"render.children.samples": "Mostras",
"render.children.sampling": "Mostraxe",
"render.children.saturation": "Saturación",
"render.children.scene_summary": "{bodies} corpos · {triangles} triángulos",
"render.children.seed": "Semente",
"render.children.sharpening": "Enfoque",
"render.children.single_image": "Imaxe única",
"render.children.soft_focus": "Enfoque suave",
"render.children.streak": "Raia",
"render.children.strength": "Intensidade",
"render.children.studio": "Studio",
"render.children.threshold": "Limiar",
"render.children.tone": "Ton",
"render.children.under_hood": "Detalles internos",
"render.children.vignette": "Viñeta",
"render.children.workstation": "Estación de traballo",
"render.choose_look": "Escolle primeiro un estilo en Aparencias",
"render.chromatic_offset": "Desprazamento cromático dos bordos",
"render.clear_stage": "Quitar o escenario gardado",
"render.copy_request": "Copiar JSON",
@@ -2331,8 +2523,33 @@
"render.flare_strength": "Intensidade do destello dos realces",
"render.flare_threshold": "Limiar do destello lineal da escena",
"render.fold_browser": "Contraer o navegador",
"render.frame_aspect": "Proporción",
"render.frame_centre_mark": "Marca central",
"render.frame_copy_limit": "Non hai ningún nome dispoñible para a toma duplicada",
"render.frame_copy_name": "{name} copia {number}",
"render.frame_custom": "Personalizada",
"render.frame_distance_unit": " × tamaño",
"render.frame_duplicate": "Duplicar",
"render.frame_exposure": "Exposición",
"render.frame_fov": "Campo de visión",
"render.frame_guides": "Guías",
"render.frame_invalid_aspect": "Axuste predefinido de proporción non válido",
"render.frame_lens": "FOV {fov}° · ≈ {mm} mm",
"render.frame_name": "Nome",
"render.frame_output_size": "Tamaño de saída",
"render.frame_photo": "3:2 · Foto",
"render.frame_portrait": "4:5 · Retrato",
"render.frame_presets": "Axustes predefinidos de encadre",
"render.frame_presets_pending": "Chegará co editor de Tomas",
"render.frame_projection": "Proxección",
"render.frame_render_shot": "Renderizar esta toma",
"render.frame_rule_thirds": "Regra dos terzos",
"render.frame_safe_area": "Área segura",
"render.frame_shot_title": "Toma · {name}",
"render.frame_square": "1:1 · Cadrado",
"render.frame_tall": "9:16 · Vertical",
"render.frame_thirds": "Terzos",
"render.frame_wide": "16:9 · Panorámico",
"render.gpu_depth": "Profundidade máxima de traxectoria",
"render.gpu_options_help": "As mostras, a profundidade, a semente e a exposición gárdanse con esta configuración. Só se garda o método de imaxe activo.",
"render.gpu_path_failed": "Trazador de traxectorias na GPU non dispoñible",
@@ -2360,6 +2577,7 @@
"render.heading_results": "RESULTADOS",
"render.heading_shots": "TOMAS",
"render.hide_shots_label": "Ocultar a franxa de tomas",
"render.hover_look": "{object} · {look} · fai clic para seleccionar",
"render.image_advanced": "Controis avanzados da GPU",
"render.image_cancelled": "Render cancelado",
"render.image_cancelling": "Cancelando",
@@ -2506,17 +2724,95 @@
"render.library_uniform_ack": "Usar a aproximación uniforme sen efectos espaciais nin avanzados",
"render.library_usable": "Proxeccións executables",
"render.library_users": "Usado por",
"render.light_aim": "Apuntar a",
"render.light_anchor_pending": "Aínda non se admite cambiar o sistema de coordenadas da luz.",
"render.light_azimuth": "Acimut",
"render.light_backend_limit": "Escolle o trazado de raios na CPU ou unha iluminación de estudio explícita na GPU para editar as luces. As luces de estudio antigas da GPU seguen sendo só de lectura.",
"render.light_behaviour": "COMPORTAMENTO",
"render.light_default_fill": "Recheo",
"render.light_default_key": "Principal",
"render.light_default_number": "Luz {number}",
"render.light_default_rim": "Contraluz",
"render.light_delete": "Eliminar",
"render.light_distance": "Distancia",
"render.light_duplicate": "Duplicar",
"render.light_elevation": "Elevación",
"render.light_gpu_punctual": "As luces puntuais e de foco están dispoñibles co trazado de raios na CPU.",
"render.light_hard_shadow": "Esta luz ten sombras duras; a suavidade do emisor non está dispoñible.",
"render.light_intensity": "Intensidade",
"render.light_missing": "Esta luz xa non existe. Selecciona unha luz no navegador.",
"render.light_place_highlight": "Colocar polo realce",
"render.light_place_pending": "A colocación polo realce necesita escoller luces na ventá gráfica e aínda non se admite.",
"render.light_position": "POSICIÓN",
"render.light_preview_help": "A vista en directo non ten sombras; as luces de área usan unha aproximación cunha mostra no centro. O render usa o modelo de luz completo.",
"render.light_product_centre": "Centro do produto",
"render.light_size": "Tamaño",
"render.light_softness": "Suavidade",
"render.light_temperature": "Temperatura de cor",
"render.light_temperature_help": "Ton aproximado de corpo negro; gárdase como RGB lineal.",
"render.light_type": "Tipo",
"render.light_type_area": "Área",
"render.light_type_point": "Puntual",
"render.light_type_spot": "Foco",
"render.light_type_sun": "Sol",
"render.light_view_only": "O solo e o silenciamento afectan a esta vista e aos seus renders; nunca se gardan no deseño.",
"render.light_world_origin": "Orixe do mundo",
"render.lighting_aim_point": "Punto de mira",
"render.lighting_apply": "Aplicar o axuste predefinido",
"render.lighting_area_samples": "Mostras de área",
"render.lighting_budget": "Orzamento",
"render.lighting_budget_help": "As cantidades son só de lectura. Engade, duplica ou elimina luces para cambialas; o método define os límites.",
"render.lighting_colour": "Cor",
"render.lighting_consent": "Substituír as luces direccionais por este axuste predefinido",
"render.lighting_custom": "Luces personalizadas",
"render.lighting_custom_help": "Ao escoller Luces personalizadas, o axuste predefinido convértese en luces editables, cada unha nunha fila da árbore.",
"render.lighting_direction": "Dirección X Y Z",
"render.lighting_direction_help": "Ou escribe unha dirección cara á luz (X Y Z).",
"render.lighting_distance_unit": " × tamaño",
"render.lighting_edge_u": "Vector do lado U",
"render.lighting_edge_v": "Vector do lado V",
"render.lighting_falloff": "Atenuación",
"render.lighting_falloff_help": "A intensidade indícase á distancia de referencia.",
"render.lighting_height": "Altura V",
"render.lighting_minimum": "Mínima",
"render.lighting_mute": "Silenciar esta luz",
"render.lighting_point": "Punto",
"render.lighting_preset": "Axuste predefinido de estudio",
"render.lighting_preset_cpu": "Os axustes predefinidos de estudio direccionais requiren trazado de raios na CPU. A iluminación da GPU usa luces explícitas de tipo Sol e Área.",
"render.lighting_preset_row": "Axuste predefinido",
"render.lighting_radiance": "Radiancia",
"render.lighting_reference": "Referencia",
"render.lighting_review_help": "Substitúe a lista de luces direccionais. Mantén as luces puntuais e de área, a contorna, as sombras, a cámara e todos os demais axustes da toma.",
"render.lighting_review_title": "Revisar o axuste predefinido de iluminación",
"render.lighting_samples_cpu": "As mostras de luz de área aplícanse ao trazado de raios na CPU.",
"render.lighting_samples_need_area": "Engade unha luz de área da CPU para definir as mostras de área.",
"render.lighting_samples_reason": "As mostras de área deben ser 1, 4, 16 ou 64.",
"render.lighting_shadow_cpu": "O interruptor de sombras require trazado de raios na CPU. O trazado de camiños na GPU sempre proxecta sombras.",
"render.lighting_shadows": "Proxectar sombras",
"render.lighting_shadows_section": "Sombras e mostraxe",
"render.lighting_shape": "Forma",
"render.lighting_solo": "Pór esta luz en solo",
"render.lighting_source": "Fonte",
"render.lighting_source_section": "Fonte de luz",
"render.lighting_spot_preserved": "Esta luz puntual conserva o seu cono de foco gardado ata que se cambie o seu tipo.",
"render.lighting_sun_distance": "A dirección do sol non depende da distancia nin do punto de mira.",
"render.lighting_unsupported": "non admitido",
"render.lighting_used": "{used} de {limit}",
"render.lighting_width": "Largura U",
"render.lighting_world_position": "Mundo X Y Z",
"render.lights_fixed_to": "Luces fixadas a",
"render.linear_help": "Conserva un máster RGBA de coma flotante de 32 bits antes da eliminación de ruído, a exposición, o mapeado tonal, os filtros e o telón de fondo. sRGB lineal/D65; premultiplicado pola cobertura. A memoria adicional admítese de forma explícita. Sen compresión nin pasadas adicionais.",
"render.linear_retain": "Conservar o EXR lineal en bruto",
"render.linear_unavailable": "O fotograma completado seleccionado non ten ningún EXR conservado. Activa a conservación antes de renderizar; un PNG anterior non pode recuperar a radiancia en bruto.",
"render.look_add": "Engadir estilo de cor",
"render.look_applied": "Aplicouse {name}",
"render.look_bleach": "Inspirado no bleach bypass",
"render.look_cool": "Fría",
"render.look_cyanotype": "Inspirado na cianotipia",
"render.look_faded": "Copia desvaída",
"render.look_material": "Material",
"render.look_mono": "Monocromo",
"render.look_pasted": "Estilo pegado",
"render.look_sepia": "Sepia",
"render.look_strength": "Intensidade do estilo",
"render.look_teal_orange": "Verde azulado / laranxa",
@@ -2592,9 +2888,11 @@
"render.output_advanced": "Avanzado",
"render.output_backend_ready": "Listo",
"render.output_check": "Comprobar",
"render.output_check_failed": "Comprobar · erro",
"render.output_check_help": "Executa Comprobar para revisar esta solicitude sen iniciar un render.",
"render.output_check_summary": "Comprobar · Notas: {count}",
"render.output_copy": "Copiar",
"render.output_copy_report": "Copiar o informe",
"render.output_destination": "Destino",
"render.output_destination_help": "Escolle o ficheiro de destino ao exportar a imaxe completada.",
"render.output_dimensions": "Tamaño",
@@ -2604,6 +2902,7 @@
"render.output_fit": "Axustar",
"render.output_format": "Formato",
"render.output_format_status": "O PNG é a imaxe de visualización completada exacta. O EXR opcional da GPU conserva a radiancia FLOAT32 lineal da escena en bruto antes dos filtros de visualización. A exportación nunca substitúe a caché da vista previa nin un traballo diferente.",
"render.output_grading": "Corrección de cor",
"render.output_image": "Imaxe",
"render.output_largest": "{width} × {height} máx.",
"render.output_lock_ratio": "Bloquear a proporción de aspecto",
@@ -2613,6 +2912,8 @@
"render.output_quality_waiting": "agardando polo contrato de calidade",
"render.output_ratio_refused": "A dimensión ligada supera o límite de tamaño deste método. Consérvase o tamaño anterior; desbloquea a proporción ou escolle un valor menor.",
"render.output_ready": "Listo para renderizar",
"render.output_run_check": "Executar a comprobación",
"render.output_size_limit": "{method}: ata {dimension} px por lado e {pixels} píxeles. Tamaño máximo que cabe: {width} × {height}.",
"render.output_size_ok": "Tamaño correcto · {width} × {height} px",
"render.output_swap_orientation": "Intercambiar largura e altura",
"render.output_tools_inspector": "Edita o tamaño e o formato no inspector de Saída.",
@@ -2629,6 +2930,7 @@
"render.page_output": "Saída",
"render.page_scene": "Escena",
"render.paint_label": "Pintura",
"render.painting_with": "Pintando con {name}",
"render.passive_stage": "Chan e escenario pasivo",
"render.passive_stage_help": "Os paneis pasivos finitos pertencen só ás imaxes renderizadas. Non engaden corpos CAD nin masa. A colocación queda fixada despois de aplicar; rexéitanse os paneis que intersequen cos límites do produto. A CPU non ofrece iluminación de rebote difusa.",
"render.perspective": "Cámara en perspectiva",
@@ -2650,6 +2952,7 @@
"render.pick_help": "Escolle Corpo, Cara ou Compoñente. Fai clic no espazo baleiro para borrar a escolla; Shift ou Ctrl engade ou alterna. Os realces só aparecen na vista de produto en directo.",
"render.pick_label": "Escoller",
"render.pick_up_label": "Coller",
"render.pick_up_prompt": "Fai clic nun obxecto para coller o seu estilo",
"render.pick_waiting": "A escolla de produto aínda non é compatible.",
"render.post_contrast": "Contraste",
"render.post_gain_b": "Ganancia do azul",
@@ -2689,13 +2992,17 @@
"render.radial_distortion": "Distorsión radial",
"render.radial_fit": "Encadrar o produto",
"render.radial_save": "Gardar toma",
"render.recent_looks": "Estilos recentes",
"render.regrade_action": "Corrixir a cor de novo do máster en bruto (sen eliminación de ruído)",
"render.regrade_help": "Crea un PNG separado a partir do máster en bruto completado que está seleccionado, usando estes controis de presentación. Non traza raios, non cambia o tamaño, a cámara nin as luces capturados e non sobrescribe o EXR. A eliminación de ruído non se volve aplicar: os másters en bruto non conservan as súas guías. O derivado segue sendo exportable cos mesmos controis da tarefa.",
"render.regrade_label": "Recorrección de cor",
"render.reload_settings": "Volver cargar os axustes gardados",
"render.remove_override": "Quitar a anulación",
"render.replace_all": "Substituír todo",
"render.replace_ground": "Confirmar a substitución do escenario existente",
"render.replace_label": "Substituír",
"render.replace_saved_surface": "Substituír unha vinculación gardada existente para este destino",
"render.replace_with": "Substituír por",
"render.restore_camera": "Restaurar a cámara gardada",
"render.result_actual": "100%",
"render.result_actual_help": "Un píxel da imaxe por píxel da pantalla.",
@@ -2747,14 +3054,28 @@
"render.saved_surface_remove": "Quitar a vinculación gardada",
"render.saved_surfaces": "Vinculacións de superficie gardadas",
"render.saved_surfaces_help": "Os mapas integrados fixados seguen a instancia seleccionada en milímetros locais. Un destino substituído ou que falta é un erro, nunca unha reasignación automática.",
"render.scene_all_shots": "Todas as tomas ({count})",
"render.scene_apply": "Aplicar o Studio revisado",
"render.scene_batch_reason": "Todas as tomas necesita a cola de renderizado das tomas gardadas, que aínda non está dispoñible.",
"render.scene_check_now": "Comprobar agora",
"render.scene_check_passed": "Comprobación superada · {notes} notas",
"render.scene_check_stale": "Comprobación desactualizada · comproba de novo",
"render.scene_check_unchecked": "Aínda sen comprobar · 0 notas",
"render.scene_consent": "Confirmar a substitución da iluminación, o contorno, a exposición e o escenario",
"render.scene_light_summary": "{environment} · {lights} luces",
"render.scene_look_summary": "{looks} estilos · {overrides} anulacións",
"render.scene_open_check": "Abrir Comprobar",
"render.scene_preserved_fields": "Consérvanse a cámara, a mostraxe, as dimensións, as vinculacións ópticas, a xeometría CAD e os materiais de enxeñaría.",
"render.scene_preserves_design": "Compón a iluminación e un escenario pasivo para o suxeito visible. A xeometría, os materiais de enxeñaría e a cámara permanecen á parte.",
"render.scene_ready": "Listo para renderizar",
"render.scene_reminder": "Escena conserva o deseño. A xeometría, as propiedades de enxeñaría e o CAD nunca se cambian desde Render.",
"render.scene_reminders": "Lembretes",
"render.scene_renderer_ready": "{renderer} listo",
"render.scene_replaces": "Substitúe",
"render.scene_review": "Resolver e revisar",
"render.scene_review_help": "Revisa a composición nativa completa antes de aplicala. As especificacións SCENE avanzadas sen vincular non se substitúen por outras.",
"render.scene_scope_details": "Alcance da composición",
"render.scene_stages": "Etapas",
"render.search_appearances": "Buscar {count} aparencias",
"render.setup_legacy_environment": "Esta configuración antiga usa a rotación ou a intensidade do contorno herdadas. Eses valores consérvanse; conviértenos explicitamente antes de gardar unha tarefa de imaxe completa.",
"render.setup_name": "Nome da configuración",
@@ -2767,7 +3088,22 @@
"render.shell_tab_camera": "CÁMARA DO RENDERIZADO",
"render.shell_tab_lighting": "ILUMINACIÓN",
"render.shell_tab_scene": "ESCENA DO RENDERIZADO",
"render.shot_aperture": "Apertura",
"render.shot_distance": "Distancia",
"render.shot_dof": "Profundidade de campo",
"render.shot_duplicate": "Duplicar a toma gardada",
"render.shot_edit_output": "Editar en Saída",
"render.shot_exposure_reason": "A exposición necesita trazado de raios na CPU ou trazado de camiños na GPU.",
"render.shot_exposure_section": "Exposición",
"render.shot_focus_distance": "Distancia de enfoque",
"render.shot_fov_reason": "O campo de visión necesita proxección en perspectiva.",
"render.shot_frame_subject": "Encadrar o suxeito",
"render.shot_invalid_camera": "Os valores da cámara deben ser finitos e estar dentro do intervalo.",
"render.shot_lens": "Lente",
"render.shot_lens_enable_reason": "Activa a profundidade de campo para editar a apertura e a distancia de enfoque.",
"render.shot_lens_gpu_reason": "A profundidade de campo necesita trazado de camiños na GPU.",
"render.shot_lens_perspective_reason": "A profundidade de campo necesita proxección en perspectiva.",
"render.shot_look_selection": "Mirar cara á selección",
"render.shot_manager": "Tomas gardadas",
"render.shot_new_name": "Nome da toma nova",
"render.shot_remove": "Quitar a toma gardada",
@@ -2775,6 +3111,9 @@
"render.shot_remove_title": "Quitar a toma gardada?",
"render.shot_rename": "Renomear a toma gardada",
"render.shot_saved_only": "Garda primeiro o borrador actual. Duplicar e renomear conservan exactamente as opcións gardadas e as referencias aos recursos.",
"render.shot_selection_reason": "Selecciona un corpo ou unha cara cara aos que apuntar.",
"render.shot_size": "Tamaño",
"render.shot_target": "Destino",
"render.shots_camera_changed": "A cámara cambiou desde que se gardou esta toma",
"render.shots_name_help": "Escribe un nome único para a toma actual.",
"render.shots_no_result": "Aínda sen renderizado",
@@ -2997,6 +3336,13 @@
"render.wait_pick_up": "aínda non se admite: a selección de produtos e a mostraxe de aparencias",
"render.wait_replace": "aínda non se admite: substituír todos os usos dunha aparencia",
"render.wait_solo": "aínda non se admite: a visibilidade das luces e os controis de solo",
"render.wear_applies_to": "Aplícase a",
"render.wear_layer_count": "{count} capas",
"render.wear_layer_one": "{count} capa",
"render.wear_layers": "Capas",
"render.wear_no_layers": "Sen capas",
"render.wear_selected_layer": "Capa seleccionada",
"render.wear_title": "Desgaste",
"sample.bracket.about": "Pestana base con pestanas de aresta e un dobradillo cunha regra de 2 mm",
"sample.bracket.name": "Escuadra de chapa",
"sample.enclosure.about": "Caixa baleirada cun beizo, saíntes para parafusos, un apoio e un encaixe a presión",
@@ -3030,6 +3376,7 @@
"select an axis": "selecciona un eixe",
"select an axis, a straight or circular edge, or a cylinder, cone or torus face first": "selecciona primeiro un eixe, unha aresta recta ou circular, ou unha cara de cilindro, cono ou toro",
"select bodies first": "selecciona primeiro os corpos",
"select components first": "selecciona primeiro os compoñentes",
"select corner points, or the two lines of one corner": "selecciona puntos de esquina ou as dúas liñas dunha esquina",
"select one corner point, or the two lines of one corner": "selecciona un punto de esquina ou as dúas liñas dunha esquina",
"select sheet edges first": "selecciona primeiro as arestas da chapa",
@@ -3048,6 +3395,7 @@
"settings.double_click_components": "Fai dobre clic nun compoñente para activalo, ou para editar in situ un compoñente ligado",
"settings.frame_rate_details_note": "Engade un gráfico dos tempos dos últimos fotogramas cos triángulos debuxados por riba, un histograma dos tempos de fotograma e o que debuxou a GPU. Fai clic nas imaxes por segundo da vista para mostralos ou ocultalos.",
"settings.frame_rate_note": "Mostra as imaxes por segundo na esquina inferior dereita da vista.",
"settings.insert_lists_open_designs": "Inserir deseño lista primeiro os deseños abertos noutras lapelas",
"settings.measure_axis_distances": "Mostrar as distancias en X/Y/Z",
"settings.measure_axis_distances_help": "Mostra as compoñentes da distancia segundo os eixes do mundo xunto á distancia total mentres Medir está aberto.",
"settings.msaa_applies_on_restart": "O antialiasing aplicarase a próxima vez que se inicie SolidCraft",
@@ -3072,6 +3420,10 @@
"shortcut.unpin": "Desafixar",
"sketch is missing": "falta o bosquexo",
"sketch.degrees_of_freedom": "{count} graos de liberdade",
"sketch.dimension_added_driven": "O bosquexo xa determina esa cota, así que se engadiu como cota conducida (de referencia)",
"sketch.dimension_applied": "Cota aplicada",
"sketch.dimension_applied_defined": "Cota aplicada; definiuse o parámetro `{name}`",
"sketch.dimension_applied_renamed": "Cota aplicada; parámetro chamado `{name}`",
"sketch.dof_left": "Quedan {count} graos de liberdade",
"sketch.dof_left_one": "Queda {count} grao de liberdade",
"sketch.draw_curves": "Debuxar como {linetype}",
@@ -3106,6 +3458,8 @@
"sketch_text.use_font_file": "Usar o ficheiro de tipo de letra {path}",
"solid": "sólido",
"status.editing": "Editando {name}",
"status.navigation": "Asignación do rato: {mapping}",
"status.navigation_tip": "Como move a vista o rato. Fai clic para escoller outra asignación",
"status.under_constrained": "Subrestrinxido ({count} graos de liberdade)",
"status.under_constrained_one": "Subrestrinxido ({count} grao de liberdade)",
"status.units_tip": "As unidades do deseño. Fai clic para cambialas",
@@ -3139,8 +3493,10 @@
"timeline.delete_folders_tip": "Mantén as súas operacións e os cartafoles aniñados no historial",
"timeline.delete_folders_with_features_tip": "Elimina os cartafoles con todas as operacións que conteñen e os seus cartafoles aniñados",
"timeline.delete_many": "Eliminar {count} operacións seleccionadas",
"timeline.edited_rolled_back": "{name} cambiou, pero está despois do marcador do historial, así que non se constrúe: move o marcador despois del para ver o resultado",
"timeline.feature_error": "Erro: {message}",
"timeline.feature_hint": "Dobre clic para editar · arrastra para reordenar · clic dereito para máis",
"timeline.feature_rolled_back": "Retrocedida: está despois do marcador do historial, así que non se constrúe",
"timeline.feature_warning": "Aviso: {message}",
"timeline.group": "Cartafol de operacións novo",
"timeline.move_many": "Mover elementos da liña de tempo",
@@ -3220,6 +3576,10 @@
"ui.3d_mouse_offer": "Calibrar o teu rato 3D corrixe os eixes trocados ou invertidos e axusta a súa velocidade e sensación.",
"ui.3d_mouse_offer_never": "Non mostrar de novo",
"ui.3d_mouse_offer_swap": "Cambiar a Hidraw (controlador directo)",
"ui.3d_mouse_orbit": "Órbita",
"ui.3d_mouse_orbit_classic": "Clásica",
"ui.3d_mouse_orbit_tip": "Trazada: o rato 3D xira a vista arredor da parte do modelo que está no medio da vista cando comeza o xiro, marcada cunha bóla tenue. Clásica: arredor do centro da vista",
"ui.3d_mouse_orbit_traced": "Trazada",
"ui.3d_mouse_reading": "Lectura",
"ui.3d_mouse_reset_axes": "Restablecer asignación de eixes",
"ui.3d_mouse_reset_view": "Restablecer vista",
@@ -3604,6 +3964,7 @@
"ui.constant": "Constante",
"ui.constraints_conflict": "Conflito de restricións",
"ui.construction": "Construción",
"ui.construction.ribbon_label": "Liñas aux.",
"ui.context_menu": "Menú contextual",
"ui.continuity_g0": "G0 aresta",
"ui.continuity_g1": "G1 tanxente",
@@ -3695,6 +4056,14 @@
"ui.end_scale": "Escala final",
"ui.entities": "Entidades",
"ui.equal": "Igual",
"ui.equation_end": "Fin",
"ui.equation_explicit": "Explícita",
"ui.equation_form": "Forma",
"ui.equation_note": "A variable é un número sen unidade: sin(t) tómaa en radiáns. Un resultado sen unidade está na unidade do deseño.",
"ui.equation_parametric": "Paramétrica",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Raio equivalente",
"ui.expand": "Expandir",
"ui.exportDxf": "Exportar DXF…",
@@ -3760,6 +4129,7 @@
"ui.heading_design": "DESEÑO",
"ui.heading_draft": "ÁNGULO DE DESMOLDAXE",
"ui.heading_edit": "EDITAR",
"ui.heading_equation_curve": "CURVA DE ECUACIÓN",
"ui.heading_extrude": "EXTRUÍR",
"ui.heading_fillet": "ARREDONDAMENTO",
"ui.heading_finish_editing": "REMATAR A EDICIÓN",
@@ -3851,6 +4221,10 @@
"ui.import_ellipsis": "Importar…",
"ui.infinite": "Infinito",
"ui.insert": "Inserir",
"ui.insert_design.browse": "Explorar…",
"ui.insert_design.open_designs": "Deseños abertos",
"ui.insert_design.saved_file": "{name} ten cambios sen gardar, así que se inseriu o seu ficheiro gardado. Gárdao e despois usa Actualizar as ligazóns para incorporar os cambios.",
"ui.insert_design.unsaved": "Cambios sen gardar",
"ui.inspect": "Inspeccionar",
"ui.intersect": "Intersecar",
"ui.isolate": "Illar",
@@ -4000,6 +4374,18 @@
"ui.project": "Proxectar",
"ui.project_face_edges_sketch": "Proxectar as arestas da cara en bosquexos novos",
"ui.properties": "Propiedades",
"ui.properties.copy_matrix": "Copiar a matriz",
"ui.properties.first_moments": "Momentos de primeira orde",
"ui.properties.inertia": "Momento de inercia",
"ui.properties.inertia_note": "Respecto ao centro de masas, nos eixes do mundo (g·{unit}²)",
"ui.properties.inertia_unavailable": "Non dispoñible: a malla dun corpo non está pechada.",
"ui.properties.inertia_x": "Ixx, Ixy, Ixz",
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Medindo…",
"ui.properties.measuring_failed": "A medición detívose antes de rematar.",
"ui.properties.principal_axis": "Eixe principal {number}",
"ui.properties.principal_moments": "Momentos principais",
"ui.pull_direction": "Dirección de extracción",
"ui.quality": "Calidade",
"ui.quantity": "Cantidade",
@@ -4062,6 +4448,7 @@
"ui.select": "Seleccionar",
"ui.selectOther": "Seleccionar outro…",
"ui.selectTangentChain": "Seleccionar cadea tanxente",
"ui.select_all": "Seleccionar todo",
"ui.selection": "Selección",
"ui.selection_modifiers": "Modificadores de selección",
"ui.selection_shift_add_only": "Maiús+clic engade sen quitar",
@@ -4098,7 +4485,11 @@
"ui.sketch": "Bosquexo",
"ui.sketch_dimension": "Cota do bosquexo",
"ui.sketch_grid": "Grella do bosquexo",
"ui.sketch_intersect_geometry": "Xeometría",
"ui.sketch_intersect_projection_link": "Ligazón de proxección",
"ui.sketch_intersect_selection_filter": "Filtro de selección",
"ui.sketch_modifiers": "Modificadores de bosquexo",
"ui.sketch_project_geometry": "Xeometría",
"ui.sketch_scale": "Escala do bosquexo",
"ui.sketches": "Bosquexos",
"ui.slice": "Laminar",
@@ -4149,6 +4540,7 @@
"ui.tab_manage": "Xestionar",
"ui.tab_sheet_metal": "Chapa",
"ui.tab_view": "Vista",
"ui.tab_weldments": "Soldadura",
"ui.tangent": "Tanxente",
"ui.taper_angle": "Ángulo de conicidade",
"ui.tapped": "Roscado",
@@ -4164,6 +4556,7 @@
"ui.tip_angle": "Ángulo da punta",
"ui.to_object": "Ata o obxecto",
"ui.tool_direction": "Dirección da ferramenta",
"ui.toolbar_tabs_hidden": "Todas as lapelas da barra de ferramentas están ocultas. Fai clic en + ou fai clic co botón dereito aquí para mostrar unha.",
"ui.top": "Superior",
"ui.top_diameter": "Diámetro superior",
"ui.top_radius": "Raio superior",
@@ -4210,6 +4603,7 @@
"ui.visual_shaded_with_edges": "Sombreado con arestas",
"ui.visual_style": "Estilo visual",
"ui.visual_wireframe": "Arames",
"ui.wheel_zoom_speed": "Velocidade do zoom coa roda do rato",
"ui.width": "Largura",
"ui.window_system": "Sistema de xanelas",
"ui.window_system_auto": "Automático",
@@ -4261,6 +4655,9 @@
"update.prefs_label": "Actualizacións",
"update.prefs_note": "Esta é a versión {version} de SolidCraft ({kind}). Unha comprobación pídelle a GitHub a última versión e non envía nada máis.",
"update.prefs_web": "Recarga a páxina para obter a última versión da aplicación web. Se a rede non está dispoñible ou a actualización non pode rematar de descargarse a tempo, ábrese a versión gardada; unha descarga en curso continúa para a seguinte recarga.",
"update.refresh_checking": "Buscando a versión máis recente…",
"update.refresh_fallback": "Non se puido buscar unha versión máis recente; actualizando a {version}, atopada antes.",
"update.refresh_selected": "Actualizando a {version}.",
"update.release_page": "Abrir a páxina da versión",
"update.restart": "Reiniciar agora",
"update.restart_later": "Máis tarde",
+46
View File
@@ -775,6 +775,8 @@
"at the face": "על הפאה",
"bom.group_children": "תת-חלקים בשורת החלק שלהם",
"browser.body_name": "גוף{number}",
"browser.calibrate_click_a": "לחצו על התמונה כדי לבחור את נקודה A, או הקלידו את הקואורדינטות שלה.",
"browser.calibrate_click_b": "לחצו על התמונה כדי לבחור את נקודה B, או הקלידו את הקואורדינטות שלה.",
"browser.calibrate_title": "כיול: {name}",
"browser.capture_many": "{count} רכיבים הוזזו, אך המיקומים שלהם לא נלכדו.",
"browser.capture_note": "לכידה שומרת את המיקום החדש; החזרה מחזירה את המיקום הקודם.",
@@ -1101,6 +1103,16 @@
"cmd.sheet_refold": "קיפול מחדש",
"cmd.sheet_rules": "רשימת כללי פח",
"cmd.sheet_unfold": "פתיחת קיפול",
"cmd.sketch.construction_line": "ישר עזר",
"cmd.sketch.construction_line.angle": "ישר עזר בזווית",
"cmd.sketch.construction_line.bisector": "חוצה זווית",
"cmd.sketch.construction_line.horizontal": "ישר עזר אופקי",
"cmd.sketch.construction_line.parallel": "ישר עזר מקביל",
"cmd.sketch.construction_line.perpendicular": "ישר עזר ניצב",
"cmd.sketch.construction_line.tangent_at": "משיק בנקודה על העקומה",
"cmd.sketch.construction_line.tangent_external": "משיק דרך נקודה חיצונית",
"cmd.sketch.construction_line.tangent_two": "משיק משותף",
"cmd.sketch.construction_line.vertical": "ישר עזר אנכי",
"cmd.sketch_arc3d": "קשת תלת־ממדית",
"cmd.sketch_arc_center_point": "קשת מרכז ונקודה",
"cmd.sketch_arc_tangent": "קשת משיקה",
@@ -1389,6 +1401,16 @@
"help.occurrence.move": "מזיז חלק בהרכבה רק בכיוונים שהמפרקים שלו מאפשרים. בחרו פאה של החלק, ואז גררו חץ או קשת זמינים.",
"help.parameters.change": "פתיחת הטבלה של ערכים בעלי שם וביטויים שקובעים את מידות התכנון. כך משנים מידה במקום אחד וכל הפיצ'רים שמשתמשים בה מתעדכנים.",
"help.pointcloud.insert": "הוספת סריקה בפורמט PLY, XYZ או PTS כענן נקודות לצד המודל. משמש כעזר למידול על סמך נתוני מדידה.",
"help.sketch.construction_line": "יצירת ישר עזר אינסופי דרך שתי נקודות, לתכנון הסקיצה בלי לפצל את הפרופילים.",
"help.sketch.construction_line.angle": "יצירת ישר עזר אינסופי בזווית מציר X של הסקיצה. יש לבחור נקודה ולהקליד זווית או לבחור כיוון.",
"help.sketch.construction_line.bisector": "יש לבחור שני ישרים נחתכים בסקיצה ואז אחד משני חוצי הזווית. התוצאה עוקבת אחר עריכת ישרי המקור.",
"help.sketch.construction_line.horizontal": "יצירת ישר עזר אופקי אינסופי דרך נקודה. האילוץ האופקי נשמר בעריכות מאוחרות יותר.",
"help.sketch.construction_line.parallel": "יש לבחור ישר בסקיצה ואז למקם ישר עזר אינסופי מקביל. לחיצה ימנית מאפשרת לבחור ייחוס אחר.",
"help.sketch.construction_line.perpendicular": "יש לבחור ישר בסקיצה ואז למקם ישר עזר אינסופי ניצב. לחיצה ימנית מאפשרת לבחור ייחוס אחר.",
"help.sketch.construction_line.tangent_at": "יצירת משיק בנקודה על מעגל או קשת מעגלית, או בנקודת קצה של ספליין פתוח או חתך חרוט פתוח. יש לבחור את העקומה ואז את נקודת ההשקה.",
"help.sketch.construction_line.tangent_external": "יש לבחור מעגל או קשת מעגלית, נקודה חיצונית ואז פתרון למשיק. התצוגה המקדימה מציגה רק נקודות השקה על הקשת המצוירת.",
"help.sketch.construction_line.tangent_two": "יש לבחור שני מעגלים או קשתות מעגליות ואז משיק משותף בתצוגה המקדימה. נקודות ההשקה חייבות להיות על העקומות המצוירות.",
"help.sketch.construction_line.vertical": "יצירת ישר עזר אנכי אינסופי דרך נקודה. האילוץ האנכי נשמר בעריכות מאוחרות יותר.",
"help.sketch.equation_curve": "משרטט עקומה מנוסחאות על פני טווח: x(t) ו־y(t), או y = f(x). הנוסחאות יכולות להשתמש בפרמטרים והעקומה עוקבת אחריהם: לגל סינוס, לספירלה או לאבולבנטה של שן גלגל שיניים.",
"help.solid.align": "הזזת הגופים שנבחרו כך שנקודה, פאה או מישור שלהם יפגשו נקודה, פאה או מישור במקום אחר. מתאים להצמדת חלק לחלק אחר בלי למדוד את המרחק.",
"help.solid.chamfer": "חיתוך המקצועות שנבחרו בשיפוע ישר במרחק שנקבע. כך שוברים מקצועות חדים או מקלים על הכנסה של פין או בורג.",
@@ -1906,6 +1928,9 @@
"prefs.max_file_size_step": "קובצי STEP וייבוא",
"prefs.max_file_size_web": "יישום הדפדפן פותח קובצי STEP וייבוא עד 512 MB וקובצי תכן עד 256 MB: לשונית דפדפן אינה יכולה להכיל קבצים גדולים יותר. ביישום למחשב ניתן להעלות מגבלות אלה.",
"prefs.megabytes": "MB",
"prefs.menu_grid": "סמלים גדולים",
"prefs.menu_list": "רשימה",
"prefs.menus": "תפריטים",
"prefs.minutes": "דקות",
"prefs.minutes_suffix": " דק'",
"prefs.mouse": "עכבר ומשטח מגע",
@@ -1925,6 +1950,8 @@
"prefs.origin_plane_names": "שמות מישורי הראשית",
"prefs.origin_plane_names_note": "השמות המוצגים בדפדפן, בתיבות הדו־שיח וברשימות. {top} הוא XY, {front} הוא XZ ו־{right} הוא YZ, כש־Z למעלה. פקודות, סקריפטים ותכנונים שמורים שומרים על XY, XZ ו־YZ.",
"prefs.overall_speed": "מהירות כללית",
"prefs.persistent_ribbon_pressed": "הדגשת פקודות פעילות ברצועת הכלים",
"prefs.persistent_ribbon_pressed_help": "הדגשת פקודות ברצועת הכלים כל עוד ההשפעות שלהן פעילות. כבו אפשרות זו כדי לשמור על המראה הניטרלי הקודם ועל עזרת הפקודות.",
"prefs.perspective_fov": "שדה ראייה",
"prefs.placement": "מיקום",
"prefs.prefer_free_sketch_points": "העדפת נקודות סקיצה ניתנות להזזה כשנקודות חופפות",
@@ -1974,11 +2001,16 @@
"prefs.sketch_align_points_note": "בזמן השרטוט, נקודה מתיישרת אופקית עם נקודת סקיצה אחת ואנכית עם אחרת בו-זמנית, עם קו עזר מנוקד, והלחיצה שומרת את שני היישורים. כבוי: רק עם הנקודה הקודמת, ציר אחד בכל פעם.",
"prefs.sketch_conflict_colour": "גאומטריה סותרת בצבע הסתירה",
"prefs.sketch_conflict_colour_note": "כשאילוצי סקיצה סותרים, העקומות והנקודות שאילוץ כושל מחזיק מצוירות גם הן בצבע הסתירה, לא רק הסמל או המידה שלו. כבוי: הן שומרות על צבעיהן הרגילים.",
"prefs.sketch_construction_lines": "כלי ישרי עזר מורחבים",
"prefs.sketch_exit_view": "בסיום סקיצה",
"prefs.sketch_exit_view.keep": "שמירה על התצוגה הנוכחית",
"prefs.sketch_exit_view.previous": "חזרה לתצוגה הקודמת",
"prefs.sketch_exit_view.unless_rotated": "חזרה אלא אם התצוגה סובבה",
"prefs.sketch_exit_view_note": "לאן התצוגה עוברת אחרי סיום סקיצה, ביטול או Esc כפול.",
"prefs.sketch_open_look_at": "הפניית התצוגה אל הסקיצה בפתיחתה",
"prefs.sketch_open_look_at_note": "כבוי: יצירה או עריכה של סקיצה משאירות את התצוגה כפי שהיא. «מבט אל» מפנה את התצוגה אל הסקיצה כשרוצים.",
"prefs.sketch_recent_snap": "הצמדה אוטומטית למרכזים ולנקודות אמצע אחרונים",
"prefs.sketch_recent_snap_note": "בזמן שרטוט, הסמן נצמד למקום שבו נחתכים קווי העזר של שני מרכזי המעגלים או נקודות האמצע של קצוות ישרים האחרונים. כבוי: קווי העזר נשארים לתצוגה בלבד והסמן אינו זז.",
"prefs.sketch_selection": "סקיצה ובחירה",
"prefs.sketch_selection_heading": "סקיצה ובחירה",
"prefs.sketch_selection_note": "איך סקיצות נצמדות ואיך לחיצות בוחרות.",
@@ -2052,6 +2084,10 @@
"properties.title": "מאפיינים: {name}",
"recovery.days_ago": "לפני {count} ימים",
"recovery.detail": "{file} · {features} פיצ'רים · נשמר אוטומטית {when}",
"recovery.discard_all": "השלכת הכול",
"recovery.discard_all_detail": "לא ניתן לבטל פעולה זו.",
"recovery.discard_all_title": "להשליך {count} שמירות אוטומטיות?",
"recovery.discard_all_title_one": "להשליך שמירה אוטומטית אחת?",
"recovery.hours_ago": "לפני {count} שע'",
"recovery.just_now": "זה עתה",
"recovery.min_ago": "לפני {count} דק'",
@@ -3971,6 +4007,15 @@
"ui.constant": "קבוע",
"ui.constraints_conflict": "התנגשות בין אילוצים",
"ui.construction": "עזר",
"ui.construction.angle_hint": "ישר עזר: בחירת נקודה ואז הקלדת זווית או בחירת כיוון",
"ui.construction.bisector_hint": "חוצה זווית: בחירת שני ישרים נחתכים ואז הפתרון הרצוי",
"ui.construction.common_hint": "משיק משותף: בחירת שני מעגלים/קשתות ואז הפתרון הרצוי",
"ui.construction.contact_hint": "משיק: בחירת מעגל/קשת או ספליין/חתך חרוט פתוח ואז נקודת השקה (לעקומות חופשיות: קצוות בלבד)",
"ui.construction.external_hint": "משיק: בחירת מעגל או קשת, נקודה חיצונית ואז הפתרון הרצוי",
"ui.construction.free_hint": "ישר עזר: לחיצה על שתי נקודות; לחיצה ימנית להתחלה מחדש",
"ui.construction.point_hint": "ישר עזר: לחיצה על נקודת המעבר",
"ui.construction.reference_hint": "ישר עזר: בחירת ישר ואז נקודה; לחיצה ימנית להחלפת הייחוס",
"ui.construction.ribbon_label": "קווי עזר",
"ui.context_menu": "תפריט הקשר",
"ui.continuity_g0": "G0 שבר",
"ui.continuity_g1": "G1 משיק",
@@ -4437,6 +4482,7 @@
"ui.revolve": "סיבוב",
"ui.ribbon_exit": "יציאה",
"ui.ribbon_labels": "הצגת טקסט מתחת לסמלי רצועת הכלים",
"ui.ribbon_menus_skip_pinned": "השמטת פקודות מוצמדות מהתפריטים הנפתחים",
"ui.ribbon_pin_footer": "פקודות מוצמדות מוצגות ברצועת הכלים. יש לרחף מעל שורה כדי להצמיד אותה או לבטל את הצמדתה.",
"ui.ribbon_workspace": "סביבת עבודה",
"ui.right": "ימין",
+395
View File
@@ -206,6 +206,7 @@
"Edges": "Bridovi",
"Edit": "Uredi",
"Edit Profile Sketch": "Uredi skicu profila",
"Edit shortcuts": "Uredi prečace",
"Enable rule": "Omogući pravilo",
"Enabled": "Omogućeno",
"End Radius": "Krajnji polumjer",
@@ -468,6 +469,7 @@
"Radius": "Polumjer",
"Radius Fit": "Uklapanje polumjera",
"Ratio": "Omjer",
"Read-only list: shortcuts can't be changed here.": "Popis samo za čitanje: prečaci se ovdje ne mogu mijenjati.",
"Reattach selected face": "Ponovno pričvrsti odabrano lice",
"Recover": "Oporavi",
"Recover unsaved design?": "Oporaviti nespremljeni dizajn?",
@@ -652,6 +654,7 @@
"Third point": "Treća točka",
"This child is shared. Deleting it removes it from every copy of its parent.": "Ovaj podređeni element je dijeljen. Brisanjem se uklanja iz svake kopije njegova roditelja.",
"This child is shared. Position changes apply to every copy of its parent.": "Ovaj podređeni element je dijeljen. Promjene položaja primjenjuju se na svaku kopiju njegova roditelja.",
"This component is inside a subassembly placed more than once: aligning it moves it in every placement.": "Ova se komponenta nalazi unutar podsklopa postavljenog više puta: njezino poravnavanje pomiče je u svakom postavljanju.",
"This face cannot provide a durable attachment. Choose another face or explicitly use a fixed plane.": "Ovo lice ne može dati trajno pričvršćenje. Odaberite drugo lice ili izričito upotrijebite fiksnu ravninu.",
"This image is not attached to GitHub yet. Copy or save it, then attach it on GitHub.": "Ova slika još nije priložena na GitHubu. Kopirajte je ili spremite, a zatim je priložite na GitHubu.",
"Thread depth": "Dubina navoja",
@@ -793,6 +796,11 @@
"cam.roller": "Valjak",
"cam.roller_pick": "Valjak (neobavezno)",
"cam.tip_pick": "Vrh (neobavezno)",
"camera.shot_pitch": "Nagib",
"camera.shot_roll": "Valjanje",
"camera.shot_yaw": "Skretanje",
"canvas.decal_place_hint": "Kliknite lice kako biste postavili naljepnicu",
"canvas.place_hint": "Kliknite ravninu ili lice kako biste postavili platno",
"choose a profile": "odaberite profil",
"choose the cam's and the follower's joints": "odaberite spojeve brijega i sljedbenika",
"choose the joints to couple": "odaberite spojeve koje treba povezati",
@@ -800,9 +808,12 @@
"click sketch curves": "kliknite krivulje skice",
"cmd.appearance_assign": "Izgled",
"cmd.appearance_chain": "Lanac izgleda",
"cmd.appearance_copy": "Kopiraj izgled",
"cmd.appearance_favorite": "Omiljeni izgled",
"cmd.appearance_library": "Biblioteka izgleda",
"cmd.appearance_list": "Popis izgleda",
"cmd.appearance_paint": "Oboji izgledom",
"cmd.appearance_paste": "Zalijepi izgled",
"cmd.appearance_pick_up": "Preuzmi izgled",
"cmd.appearance_replace": "Zamijeni izgled",
"cmd.assembly_bom": "Sastavnica",
@@ -813,6 +824,7 @@
"cmd.browser_move": "Premjesti stavke stabla modela",
"cmd.browser_order": "Poredaj stavke stabla modela",
"cmd.browser_rename_group": "Preimenuj grupu",
"cmd.browser_reparent": "Premjesti u komponentu",
"cmd.browser_ungroup": "Razgrupiraj",
"cmd.browser_visibility": "Prikaži/sakrij",
"cmd.canvas_calibrate": "Kalibriraj platno",
@@ -839,7 +851,9 @@
"cmd.component_metadata": "Svojstva dijela",
"cmd.component_metadata_set": "Promijeni svojstva dijela",
"cmd.component_move_bodies": "Premjesti tijela u komponentu",
"cmd.component_move_features": "Premjesti značajke u komponentu",
"cmd.component_move_sketches": "Premjesti skice u komponentu",
"cmd.component_paste_from_design": "Zalijepi iz drugog dizajna",
"cmd.component_paste_new": "Zalijepi kao novo",
"cmd.component_properties": "Fizička svojstva komponente",
"cmd.component_relink": "Ponovno poveži izvor",
@@ -976,6 +990,7 @@
"cmd.motion_trace": "Trag kretanja",
"cmd.motion_trace_edit": "Uredi trag kretanja",
"cmd.motion_trace_keep": "Zadrži trag kretanja",
"cmd.occurrence_align": "Poravnaj primjerak",
"cmd.occurrence_copy": "Zalijepi (primjerak)",
"cmd.occurrence_drag": "Povuci primjerak",
"cmd.occurrence_ground": "Učvrsti",
@@ -1033,11 +1048,17 @@
"cmd.render_library_surface_unbind": "Ukloni vezu površine",
"cmd.render_library_targets": "Pronađi ciljeve biblioteke renderiranja",
"cmd.render_lights_add": "Dodaj svjetlo",
"cmd.render_lights_duplicate": "Dupliciraj svjetlo renderiranja",
"cmd.render_lights_list": "Popis svjetala renderiranja",
"cmd.render_lights_mute": "Isključi svjetlo",
"cmd.render_lights_remove": "Ukloni svjetlo renderiranja",
"cmd.render_lights_set": "Postavi svjetlo renderiranja",
"cmd.render_lights_solo": "Samo ovo svjetlo",
"cmd.render_optics_bind": "Spremi optičku vezu",
"cmd.render_optics_unbind": "Ukloni optičku vezu",
"cmd.render_output_size": "Postavi veličinu izlaza renderiranja",
"cmd.render_preflight": "Provjeri zahtjev za renderiranje",
"cmd.render_preflight_copy": "Kopiraj izvješće provjere renderiranja",
"cmd.render_preset_apply": "Primijeni izvorni studio",
"cmd.render_preset_resolve": "Pregledaj izvorni studio",
"cmd.render_quality_prepare": "Pregledaj fiksni proračun uzorkovanja",
@@ -1060,6 +1081,13 @@
"cmd.render_start": "Renderiraj sliku",
"cmd.render_status": "Napredak renderiranja",
"cmd.select_clear": "Poništi odabir",
"cmd.settings_profile_apply": "Primijeni profil postavki",
"cmd.settings_profile_delete": "Izbriši profil postavki",
"cmd.settings_profile_export": "Izvezi profil postavki",
"cmd.settings_profile_import": "Uvezi profil postavki",
"cmd.settings_profile_list": "Profili postavki",
"cmd.settings_profile_rename": "Preimenuj profil postavki",
"cmd.settings_profile_save": "Spremi profil postavki",
"cmd.sheet_convert": "Pretvori u lim",
"cmd.sheet_export_bend_table": "Izvezi tablicu savijanja",
"cmd.sheet_export_dxf": "Izvezi razvijeni oblik kao DXF",
@@ -1073,6 +1101,16 @@
"cmd.sheet_refold": "Ponovno presavij",
"cmd.sheet_rules": "Popis pravila za lim",
"cmd.sheet_unfold": "Razvij",
"cmd.sketch.construction_line": "Pomoćni pravac",
"cmd.sketch.construction_line.angle": "Pomoćni pravac pod kutom",
"cmd.sketch.construction_line.bisector": "Simetrala kuta",
"cmd.sketch.construction_line.horizontal": "Vodoravni pomoćni pravac",
"cmd.sketch.construction_line.parallel": "Paralelni pomoćni pravac",
"cmd.sketch.construction_line.perpendicular": "Pomoćni pravac okomit na pravac",
"cmd.sketch.construction_line.tangent_at": "Tangenta u točki krivulje",
"cmd.sketch.construction_line.tangent_external": "Tangenta kroz vanjsku točku",
"cmd.sketch.construction_line.tangent_two": "Zajednička tangenta",
"cmd.sketch.construction_line.vertical": "Okomiti pomoćni pravac",
"cmd.sketch_arc3d": "3D luk",
"cmd.sketch_arc_center_point": "Luk iz središta",
"cmd.sketch_arc_tangent": "Tangentni luk",
@@ -1105,6 +1143,8 @@
"cmd.sketch_drawing_bounds": "Veličina crteža",
"cmd.sketch_edit": "Uredi skicu",
"cmd.sketch_edit_text": "Uredi tekst",
"cmd.sketch_equation_curve": "Krivulja iz jednadžbe",
"cmd.sketch_equation_curve_edit": "Uredi krivulju iz jednadžbe",
"cmd.sketch_export_dxf": "Spremi kao DXF",
"cmd.sketch_finish_auto_constrain": "Završi s automatskim ograničenjima",
"cmd.sketch_fit_curves_to_section": "Uklopi krivulje u presjek mreže",
@@ -1201,6 +1241,7 @@
"cmd.view.render_browser": "Stablo renderiranja",
"cmd.view.render_dock": "Premjesti panel renderiranja",
"cmd.view.render_focus": "Fokusni prikaz renderiranja",
"cmd.view.status_items": "Statusne stavke prozora prikaza",
"cmd.view_ambient_occlusion": "Ambijentalna okluzija",
"cmd.view_angle_readout": "Kutovi prikaza",
"cmd.view_apply": "Vrati imenovani prikaz",
@@ -1222,6 +1263,7 @@
"cmd.view_normal_to": "Okomito na odabir",
"cmd.view_previous_tab": "Prethodna kartica",
"cmd.view_rename": "Preimenuj imenovani prikaz",
"cmd.view_render_frame": "Vodilice kadra renderiranja",
"cmd.view_right": "Pogled zdesna",
"cmd.view_save": "Novi imenovani prikaz",
"cmd.view_shots_strip": "Traka kadrova",
@@ -1232,10 +1274,14 @@
"color.copy": "Kliknite za kopiranje vrijednosti boje",
"color.edit": "Kliknite za uređivanje boje",
"color.gamma": "Prikaz vrijednosti boje u gama prostoru 0-255",
"color.hex": "Hex",
"color.hex_help": "Unesite #rrggbb ili #rrggbbaa; šest znamenki zadržava neprozirnost",
"color.hex_hint": "#rrggbb",
"color.hue": "Nijansa",
"color.linear": "Prikaz vrijednosti boje u linearnom prostoru 0-1",
"color.saturation_value": "Zasićenost i vrijednost",
"color.selected": "Odabrana boja",
"config.column_filter_empty": "Nema odgovarajućih stupaca",
"contact.components_count": "Komponente: {count}",
"contact.enabled_label": "omogućeno",
"coupling.gear_1": "Zupčanik 1",
@@ -1350,8 +1396,10 @@
"help.material.assign": "Određuje od čega su odabrana tijela izrađena, npr. čelik, aluminij ili ABS. Upotrijebite ga kako bi masa i težina odgovarale stvarnom dijelu.",
"help.mit": "MIT licenca",
"help.notice": "NOTICE",
"help.occurrence.move": "Pomiče dio sklopa samo u stupnjevima slobode koje dopuštaju njegovi spojevi. Odaberite lice dijela, a zatim povucite dostupnu strelicu ili luk.",
"help.parameters.change": "Otvara tablicu imenovanih vrijednosti i izraza koji upravljaju kotama dizajna. Upotrijebite je kako biste promijenili mjeru na jednom mjestu, a sve značajke koje je koriste je slijede.",
"help.pointcloud.insert": "Umetnite PLY, XYZ ili PTS skeniranje kao oblak točaka uz model. Koristite ga kao referencu pri izradi modela iz izmjerenih podataka.",
"help.sketch.equation_curve": "Crta krivulju prema formulama: x(t) i y(t) ili y = f(x), u zadanom rasponu. Formule mogu koristiti parametre i krivulja ih prati: upotrijebite je za sinusoidu, spiralu ili evolventu zuba zupčanika.",
"help.solid.align": "Pomiče odabrana tijela tako da se točka, lice ili ravnina na njima poklopi s točkom, licem ili ravninom negdje drugdje. Upotrijebite ga kako biste postavili dio uz drugi bez mjerenja odmaka.",
"help.solid.chamfer": "Odsijeca odabrane bridove ravnim skošenjem zadane udaljenosti. Koristite ga kako biste ublažili oštre bridove ili olakšali uvođenje zatika ili vijka.",
"help.solid.combine": "Spaja tijela, oduzima ih od ciljnog tijela ili zadržava samo zajednički volumen, a može zadržati i alatna tijela. Koristite ga kako biste spojili dijelove, jednim oblikom odrezali drugi ili pronašli gdje se dva tijela preklapaju.",
@@ -1480,6 +1528,21 @@
"joint.one_component": "Ovi dijelovi su tijela jedne komponente: {bodies}. Spoj pomiče jednu komponentu u odnosu na drugu, pa svaki dio treba vlastitu komponentu.",
"joint.rigid_group_one_component": "Sva tijela ({count}) nalaze se u jednoj komponenti (ili u samom dizajnu): najprije upotrijebite {command}.",
"joint.rigid_group_select_components": "Odaberite dvije ili više komponenti.",
"joint_move.blocked_hint": "Provjerite vrstu spoja (npr. Kruti), učvršćenje, granice spoja i vrijednosti kojima upravljaju parametri.",
"joint_move.blocked_title": "Ovaj dio nije moguće pomaknuti",
"joint_move.coarse": "Korak rotacije blizu osi (°)",
"joint_move.distance": "Udaljenost od početka",
"joint_move.done": "Gotovo",
"joint_move.fine": "Korak rotacije daleko od osi (°)",
"joint_move.fixed": "Ovaj dio nema pomičnu os spoja.",
"joint_move.help": "Pomakni — povucite strelicu ili prsten. Esc poništava trenutno povlačenje.",
"joint_move.legacy_hint": "Isključite kako biste koristili prethodni panel Pomakni.",
"joint_move.precision": "Povucite izvan isprekidane vodilice za finu rotaciju.",
"joint_move.rotation": "Rotacija od početka",
"joint_move.select": "Odaberite lice ili jedan dio sklopa, a zatim odaberite Pomakni.",
"joint_move.settings": "Pomicanje u sklopu",
"joint_move.step": "Korak",
"joint_move.use_handles": "Koristi ručice kretanja spojeva za Pomakni u sklopu",
"keymap.command_id": "ID naredbe",
"keymap.empty": "Nema odgovarajućih naredbi",
"keymap.use_anyway": "Ipak upotrijebi {key} ovdje",
@@ -1574,6 +1637,8 @@
"nav.maya.help": "Alt+povlačenje lijevom tipkom orbitira, Alt+srednja tipka pomiče, Alt+desna tipka zumira; povlačenje srednjom tipkom također pomiče",
"nav.openscad.help": "Povlačenje lijevom tipkom po praznom prostoru orbitira, Shift+povlačenje lijevom odabire okvirom, povlačenje geometrije skice uređuje je; povlačenje desnom ili srednjom tipkom pomiče, Shift+desna ili Shift+srednja zumira",
"nav.perspective.sketch": "Uređivanje skice koristi ortografski prikaz. Završite skicu kako biste prešli na perspektivu.",
"nav.right_drag_orbits.help": "Isključeno: povlačenje desnom tipkom ne dira kameru, a desna tipka samo otvara kontekstni izbornik. Odabir mapiranja miša SolidWorks isključuje ovu opciju.",
"nav.right_drag_orbits.label": "Povlačenje desnom tipkom orbitira",
"nav.solidworks.help": "Povlačenje srednjom tipkom orbitira, Ctrl+srednja pomiče, Shift+srednja zumira, povlačenje desnom orbitira",
"nav.tinkercad.help": "Povlačenje desnom tipkom orbitira, povlačenje srednjom ili Shift+desnom pomiče",
"nav.touchpad.help": "Držite Shift i pomičite pokazivač za pomicanje prikaza; držite Alt/Option i pomičite ga za orbitiranje. Tipka miša nije potrebna. Okomito pomicanje zumira.",
@@ -1595,6 +1660,9 @@
"navbar.custom.customise": "Prilagodi navigacijsku traku…",
"navbar.custom.design": "Dizajn",
"navbar.custom.duplicate": "Ovo mjesto je već na traci.",
"navbar.custom.edge": "Rub",
"navbar.custom.edge_bottom": "Dolje",
"navbar.custom.edge_top": "Gore",
"navbar.custom.fade": "Izblijedi",
"navbar.custom.full": "Uklonite jedno mjesto kako biste dodali drugo.",
"navbar.custom.hidden_design": "Skriveno u Dizajnu",
@@ -1701,6 +1769,7 @@
"parts.dimension.thickness": "Debljina",
"parts.dimension.width": "Širina",
"parts.family.bearing": "Kuglični ležaj s dubokim utorom (ovojni oblik)",
"parts.family.button_head_cap_screw": "Vijak s poluokruglom glavom i unutarnjim šesterokutom",
"parts.family.dowel_pin": "Cilindrični zatik",
"parts.family.hex_bolt": "Vijak sa šesterokutnom glavom",
"parts.family.hex_nut": "Šesterokutna matica",
@@ -1759,6 +1828,9 @@
"prefs.bottom_centre": "Dolje u sredini",
"prefs.bottom_right": "Dolje desno",
"prefs.browser": "Stablo modela",
"prefs.browser_reveal_on_hover": "Prikaži pri prelasku mišem",
"prefs.browser_show_note": "Prikazano drži stablo modela na zaslonu. Prikaži pri prelasku mišem skriva ga dok pokazivač ne dođe na njegovo mjesto ili na tanku karticu uz njegov lijevi rub, a ostaje otvoreno dok je pokazivač unutar njega ili dok je otvoren izbornik iz njega.",
"prefs.browser_shown": "Prikazano",
"prefs.built_in": "Ugrađeno",
"prefs.button_left": "Povlačenje lijevom tipkom",
"prefs.button_middle": "Povlačenje srednjom tipkom",
@@ -1829,6 +1901,8 @@
"prefs.layout_note": "Kompaktno pričvršćuje panele uz rubove prozora. Prozirnost stabla modela dostupna je u opciji Plutajuće. Stranu Asistenta promijenite na stranici Asistent.",
"prefs.left": "Lijevo",
"prefs.left_click": "Lijevi klik",
"prefs.line_drag_draws_one": "Pritisak i povlačenje crta jednu liniju",
"prefs.line_drag_draws_one_note": "U alatu Linija pritisak, povlačenje i otpuštanje crta jednu liniju od mjesta pritiska do mjesta otpuštanja i ondje završava. Klikovi i dalje crtaju lanac. Isključeno: povlačenje postavlja točku ondje gdje se otpusti, kao i klik.",
"prefs.linked_designs": "Povezani dizajni",
"prefs.live_input": "Ulaz uživo",
"prefs.live_preview": "Pregled uživo",
@@ -1861,14 +1935,36 @@
"prefs.origin_plane_names": "Nazivi ravnina ishodišta",
"prefs.origin_plane_names_note": "Nazivi prikazani u stablu modela, dijalozima i popisima. {top} je XY, {front} je XZ, a {right} je YZ, sa Z prema gore. Naredbe, skripte i spremljeni dizajni zadržavaju XY, XZ i YZ.",
"prefs.overall_speed": "Ukupna brzina",
"prefs.perspective_fov": "Vidno polje",
"prefs.placement": "Postavljanje",
"prefs.prefer_free_sketch_points": "Daj prednost pomičnim točkama skice kad se točke preklapaju",
"prefs.preview_choices": "Pregled vaših odabira",
"prefs.profile_active": "Aktivni profil",
"prefs.profile_applied": "Profil je primijenjen.",
"prefs.profile_changed": "Postavke su se promijenile otkako je profil spremljen. Spremi ih zadržava u njemu.",
"prefs.profile_deleted": "Profil je izbrisan.",
"prefs.profile_export": "Izvezi…",
"prefs.profile_exported": "Profil je izvezen.",
"prefs.profile_imported": "Profil je uvezen. Odaberite ga pod Aktivni profil kako biste se prebacili na njega.",
"prefs.profile_name_hint": "Naziv profila, npr. Prijenosnik",
"prefs.profile_rename": "Preimenuj",
"prefs.profile_renamed": "Profil je preimenovan.",
"prefs.profile_save": "Spremi",
"prefs.profile_saved": "Trenutne postavke spremljene su u profil.",
"prefs.profile_skipped": "Profil je primijenjen; postavke koje su zadržale trenutnu vrijednost: {n} (pogledajte zapisnik).",
"prefs.profiles": "Profili postavki",
"prefs.profiles_note": "Prečaci, alatna traka, navigacija, radijalni izbornik i postavke sučelja, spremljeni zajedno pod jednim nazivom i mijenjani odjednom.",
"prefs.project_options_dialog": "Dijalog opcija projiciranja",
"prefs.project_options_dialog_note": "Uključeno: prije projiciranja odaberite Geometrija ili Tijela i Veza projekcije. Isključeno: zadržava se prethodni način rada s izravnim odabirom.",
"prefs.quality_default": "zadano",
"prefs.quality_fastest": "najbrže",
"prefs.quality_slowest": "najsporije",
"prefs.quality_smoother": "glađe",
"prefs.render_previous_geometry_budget": "Koristi prethodni proračun geometrije za pregled renderiranja",
"prefs.render_previous_geometry_budget_help": "Vrati prethodnu fiksnu granicu geometrije (512 MiB na 64-bitnom desktopu, 128 MiB drugdje) umjesto proračuna prema uređaju.",
"prefs.reports_saved": "Spremljeno: {n}",
"prefs.ribbon_reveal": "Prikaži rezultate pretraživanja na vrpci",
"prefs.ribbon_reveal_note": "Zadržavanje pokazivača iznad rezultata u Pretraži naredbe pokazuje gdje se naredba nalazi na vrpci: njezinu karticu, gumb ili redak u padajućem izborniku panela. Naredba pokrenuta iz pretraživanja ondje zatreperi, a pokrenuta naredba iz padajućeg izbornika označava svoj panel.",
"prefs.right_click": "Desni klik",
"prefs.saving": "Automatsko spremanje i oporavak",
"prefs.scale_note": "Također Ctrl + / Ctrl − u prozoru. Gumbi su 28 px pri 100 %.",
@@ -1882,6 +1978,10 @@
"prefs.shift_add_ctrl_toggle": "Shift samo dodaje; Ctrl / Cmd uključuje i isključuje",
"prefs.shift_add_note": "Uključeno: Shift dodaje, Ctrl / Cmd uključuje i isključuje. Isključeno (zadano): oba uključuju i isključuju.",
"prefs.shortcuts": "Prečaci",
"prefs.single_surface_analysis": "Koristi samo jednu analizu ploha",
"prefs.single_surface_analysis_help": "Kad je isključeno, sjenčanje ploha i Kontinuitet mogu ostati uključeni zajedno. Kad je uključeno, zadržava se posljednja pokrenuta ili promijenjena analiza.",
"prefs.sketch_align_points": "Poravnaj s drugim točkama skice tijekom crtanja",
"prefs.sketch_align_points_note": "Tijekom crtanja točka se istodobno poravnava vodoravno s jednom točkom skice i okomito s drugom, uz točkastu vodilicu, a klik zadržava oba poravnanja. Isključeno: samo s prethodnom točkom, po jedna os.",
"prefs.sketch_conflict_colour": "Geometrija u sukobu u boji sukoba",
"prefs.sketch_conflict_colour_note": "Dok su ograničenja skice u sukobu, krivulje i točke koje drži neuspjelo ograničenje crtaju se i u boji sukoba, a ne samo njegov simbol ili kota. Isključeno: zadržavaju uobičajene boje.",
"prefs.sketch_exit_view": "Kad se skica završi",
@@ -1889,6 +1989,8 @@
"prefs.sketch_exit_view.previous": "Vrati se na prethodni prikaz",
"prefs.sketch_exit_view.unless_rotated": "Vrati se osim ako je rotirano",
"prefs.sketch_exit_view_note": "Kamo prikaz ide nakon Završi skicu, Odustani ili dvostrukog Esc.",
"prefs.sketch_recent_snap": "Automatski privlači na nedavna središta i središnje točke",
"prefs.sketch_recent_snap_note": "Tijekom crtanja pokazivač se privlači ondje gdje se sijeku vodilice dvaju posljednjih središta kružnica ili središnjih točaka ravnih bridova. Isključeno: te vodilice služe samo za prikaz i pokazivač se ne pomiče.",
"prefs.sketch_selection": "Skica i odabir",
"prefs.sketch_selection_heading": "Skica i odabir",
"prefs.sketch_selection_note": "Kako se skice privlače i kako klikovi odabiru.",
@@ -1933,7 +2035,14 @@
"prefs.toast_place": "Obavijesti",
"prefs.toggle_item": "Dodaj stavku ili je ponovno ukloni",
"prefs.toolbar": "Alatna traka",
"prefs.toolbar_tabs": "Kartice alatne trake",
"prefs.top": "Gore",
"prefs.trackpad_zoom_modifier": "Zumiranje pomicanjem s dva prsta uz držanje tipke",
"prefs.trackpad_zoom_modifier.alt": "⌥ / Alt",
"prefs.trackpad_zoom_modifier.cmd": "⌘",
"prefs.trackpad_zoom_modifier.ctrl": "Ctrl",
"prefs.trackpad_zoom_modifier.help": "Držite samo ovu tipku kako biste okomitim pomicanjem zumirali prema pokazivaču. Isključeno zadržava postojeće ponašanje pomicanja.",
"prefs.trackpad_zoom_modifier.off": "Isključeno",
"prefs.translucent": "Prozirno",
"prefs.under_browser": "Ispod stabla modela",
"prefs.under_cursor": "Ispod pokazivača",
@@ -1943,9 +2052,14 @@
"prefs.view_confirm_corner": "U redu i Odustani u kutu prikaza",
"prefs.view_confirm_corner_note": "Dok je otvoren dijalog ili skica, kvačica i križić gore desno u prikazu rade isto što i gumbi U redu i Odustani u dijalogu, odnosno završavaju i poništavaju skicu. Navigator prikaza pomiče se ispod njih.",
"prefs.viewport": "Prozor prikaza",
"prefs.viewport_background": "Pozadina",
"prefs.viewport_background_colour": "Boja",
"prefs.viewport_background_theme": "Gradijent teme",
"prefs.wheel": "Kotačić",
"prefs.wheel_trackpad": "Kotačić i dodirna pločica",
"prefs.workspace": "Radni prostor",
"prefs.zoom_stop_at_model": "Zaustavi zumiranje na modelu",
"prefs.zoom_stop_at_model_tip": "3D miš i aplikacija uređaja zumiraju prema površini u sredini prikaza; zumiranje povlačenjem zadržava točku na kojoj je povlačenje počelo. Isključeno: zumiranje može proći kroz model. Kotačić i štipanje zasebno koriste Zumiranje prema pokazivaču",
"prefs.zoom_toward_cursor": "Zumiranje prema pokazivaču",
"properties.title": "Svojstva: {name}",
"recovery.days_ago": "prije {count} dana",
@@ -2034,6 +2148,7 @@
"render.appearance_editor.weight": "Težina",
"render.appearance_physics_separate": "Vizualni izgled ne dodjeljuje gustoću, toplinske podatke niti druga inženjerska svojstva.",
"render.appearances": "Izgledi",
"render.assign_help": "Kliknite za primjenu na odabir; povucite za pregled i ispustite ili, kad ništa nije odabrano, kliknite za bojenje.",
"render.availability_native": "Izvorni sastav; pregledajte prije primjene",
"render.availability_projection": "Podržana projekcija; pogledajte opseg i izostavke",
"render.availability_reference": "Referentni podaci; nije automatska dodjela",
@@ -2072,6 +2187,7 @@
"render.bloom_threshold": "Prag linearnih svijetlih dijelova",
"render.browse_capabilities": "Pregledaj potpuni katalog mogućnosti",
"render.browse_environments": "Pregledaj izvorna HDR okruženja",
"render.browse_looks": "Pregledaj…",
"render.browse_native_scenes": "Pregledaj izvorne studije",
"render.browse_physical": "Pregledaj fizičke reference",
"render.browse_quality": "Pregledaj specifikacije kvalitete",
@@ -2095,6 +2211,82 @@
"render.check_opaque": "Prozirnost: samo neprozirne površine; alfa pozadine je podržana.",
"render.check_sorted_alpha": "Prozirnost: sortirana aproksimacija alfe.",
"render.check_transmission": "Prozirnost: fizičko propuštanje svjetlosti.",
"render.children.absolute_floor": "Apsolutni donji prag",
"render.children.adaptive": "Prilagodljivo",
"render.children.add_look_reason": "Dodajte izgled kako biste uredili njegovo uključeno stanje i jačinu.",
"render.children.all_shots": "Svi kadrovi",
"render.children.bloom": "Sjaj",
"render.children.check": "Provjera",
"render.children.check_now": "Provjeri sada",
"render.children.chromatic": "Kromatski pomak",
"render.children.compact": "Kompaktno",
"render.children.contrast": "Kontrast",
"render.children.copy_image": "Kopiraj",
"render.children.copy_job": "Kopiraj JSON posla",
"render.children.copy_request": "Kopiraj JSON zahtjeva",
"render.children.coverage_error": "Pogreška pokrivenosti",
"render.children.cpu": "CPU praćenje zraka",
"render.children.denoise": "Smanji šum na dovršenoj slici",
"render.children.depth": "Dubina putanje",
"render.children.distortion": "Izobličenje",
"render.children.edge_samples": "Uzorci rubova",
"render.children.effects_banner": "Ovi efekti zahtijevaju GPU praćenje putanja. Otvaranje ovoga nikad ne mijenja metodu.",
"render.children.enable_adaptive": "Omogućite neovisne probne uzorke kako biste uredili prilagodljiva ograničenja.",
"render.children.enable_bloom": "Omogućite sjaj kako biste uredili njegovu jačinu, prag i polumjer.",
"render.children.finishing": "Završna obrada",
"render.children.flare": "Odsjaj",
"render.children.fresnel": "Fresnelovi slojevi",
"render.children.ghosts": "Duhovi prstenova",
"render.children.glass": "Prijenos kroz staklo",
"render.children.go_to": "Idi na {editor}",
"render.children.grain": "Zrno",
"render.children.halo": "Oreol",
"render.children.hdr": "HDR",
"render.children.keep_master": "Zadrži sirovi linearni master",
"render.children.last_result": "Posljednje: {number} · {width} × {height} · {phase}",
"render.children.lens_effects": "Efekti objektiva",
"render.children.look_summary": "{tone} · izgledi: {count}",
"render.children.looks": "Kreativni izgledi",
"render.children.memory": "Memorija",
"render.children.method": "Metoda",
"render.children.minimum": "Minimum",
"render.children.needs_cpu": "Zahtijeva CPU praćenje zraka. Otvaranje ovoga nikad ne mijenja metodu.",
"render.children.nested": "Potvrđeni ugniježđeni dielektrici",
"render.children.not_checked": "Nije provjereno",
"render.children.path": "Praćenje putanja",
"render.children.pilots": "Probni uzorci",
"render.children.preview": "Podaci pregleda",
"render.children.progressive_reason": "Odaberite CPU progresivno kako biste uredili broj uzoraka i sjeme.",
"render.children.radius": "Polumjer",
"render.children.reflect_depth": "Dubina refleksije",
"render.children.reflect_samples": "Uzorci refleksije",
"render.children.regrade": "Ponovna gradacija",
"render.children.relative_error": "Relativna pogreška",
"render.children.render": "Renderiranje",
"render.children.render_shot": "Renderiraj kadar",
"render.children.renderer": "Iscrtavač",
"render.children.renderers": "Iscrtavači",
"render.children.request": "Ovaj zahtjev",
"render.children.reset_finishing": "Vrati zadanu završnu obradu",
"render.children.review_quality": "Pregledaj specifikaciju kvalitete…",
"render.children.rgb_gain": "RGB pojačanje",
"render.children.samples": "Uzorci",
"render.children.sampling": "Uzorkovanje",
"render.children.saturation": "Zasićenost",
"render.children.scene_summary": "Tijela: {bodies} · trokuti: {triangles}",
"render.children.seed": "Sjeme",
"render.children.sharpening": "Izoštravanje",
"render.children.single_image": "Jedna slika",
"render.children.soft_focus": "Meki fokus",
"render.children.streak": "Pruga",
"render.children.strength": "Jačina",
"render.children.studio": "Studio",
"render.children.threshold": "Prag",
"render.children.tone": "Ton",
"render.children.under_hood": "Ispod haube",
"render.children.vignette": "Vinjeta",
"render.children.workstation": "Radna stanica",
"render.choose_look": "Najprije odaberite izgled u Izgledima",
"render.chromatic_offset": "Kromatski pomak rubova",
"render.clear_stage": "Ukloni spremljenu scenu",
"render.copy_request": "Kopiraj JSON",
@@ -2346,8 +2538,33 @@
"render.flare_strength": "Jačina odsjaja svijetlih dijelova",
"render.flare_threshold": "Linearni prag odsjaja scene",
"render.fold_browser": "Sažmi stablo modela",
"render.frame_aspect": "Omjer",
"render.frame_centre_mark": "Oznaka središta",
"render.frame_copy_limit": "Nema dostupnog naziva za duplikat kadra",
"render.frame_copy_name": "{name} kopija {number}",
"render.frame_custom": "Prilagođeno",
"render.frame_distance_unit": " × veličina",
"render.frame_duplicate": "Dupliciraj",
"render.frame_exposure": "Ekspozicija",
"render.frame_fov": "Vidno polje",
"render.frame_guides": "Vodilice",
"render.frame_invalid_aspect": "Neispravan unaprijed zadani omjer",
"render.frame_lens": "Vidno polje {fov}° · ≈ {mm} mm",
"render.frame_name": "Naziv",
"render.frame_output_size": "Veličina izlaza",
"render.frame_photo": "3:2 · Fotografija",
"render.frame_portrait": "4:5 · Portret",
"render.frame_presets": "Unaprijed zadani kadrovi",
"render.frame_presets_pending": "Stiže s uređivačem kadrova",
"render.frame_projection": "Projekcija",
"render.frame_render_shot": "Renderiraj ovaj kadar",
"render.frame_rule_thirds": "Pravilo trećina",
"render.frame_safe_area": "Sigurno područje",
"render.frame_shot_title": "Kadar · {name}",
"render.frame_square": "1:1 · Kvadrat",
"render.frame_tall": "9:16 · Okomito",
"render.frame_thirds": "Trećine",
"render.frame_wide": "16:9 · Široki zaslon",
"render.gpu_depth": "Maksimalna dubina putanje",
"render.gpu_options_help": "Uzorci, dubina, sjeme i ekspozicija spremaju se s ovom postavkom. Sprema se samo aktivna metoda slike.",
"render.gpu_path_failed": "GPU praćenje putanja nije dostupno",
@@ -2375,6 +2592,7 @@
"render.heading_results": "REZULTATI",
"render.heading_shots": "KADROVI",
"render.hide_shots_label": "Sakrij traku kadrova",
"render.hover_look": "{object} · {look} · kliknite za odabir",
"render.image_advanced": "Napredne GPU kontrole",
"render.image_cancelled": "Renderiranje je prekinuto",
"render.image_cancelling": "Prekidanje",
@@ -2521,17 +2739,95 @@
"render.library_uniform_ack": "Upotrijebi jednoličnu aproksimaciju bez prostornih ili naprednih efekata",
"render.library_usable": "Izvršne projekcije",
"render.library_users": "Korisnici",
"render.light_aim": "Usmjeri prema",
"render.light_anchor_pending": "Promjena koordinatnog sustava svjetla još nije podržana.",
"render.light_azimuth": "Azimut",
"render.light_backend_limit": "Odaberite CPU praćenje zraka ili izričiti GPU studio kako biste uređivali svjetla. Svjetla starog GPU studija ostaju samo za čitanje.",
"render.light_behaviour": "PONAŠANJE",
"render.light_default_fill": "Popunjavajuće",
"render.light_default_key": "Glavno",
"render.light_default_number": "Svjetlo {number}",
"render.light_default_rim": "Rubno",
"render.light_delete": "Izbriši",
"render.light_distance": "Udaljenost",
"render.light_duplicate": "Dupliciraj",
"render.light_elevation": "Elevacija",
"render.light_gpu_punctual": "Točkasta svjetla i reflektori dostupni su uz CPU praćenje zraka.",
"render.light_hard_shadow": "Ovo svjetlo ima oštre sjene; mekoća emitera nije dostupna.",
"render.light_intensity": "Intenzitet",
"render.light_missing": "Ovo svjetlo više ne postoji. Odaberite svjetlo u stablu modela.",
"render.light_place_highlight": "Postavi prema odsjaju",
"render.light_place_pending": "Postavljanje prema odsjaju zahtijeva odabir svjetla u prozoru prikaza i još nije podržano.",
"render.light_position": "POLOŽAJ",
"render.light_preview_help": "Prikaz uživo je bez sjena; površinska svjetla koriste aproksimaciju s uzorkom u središtu. Renderiranje koristi potpuni model svjetla.",
"render.light_product_centre": "Središte proizvoda",
"render.light_size": "Veličina",
"render.light_softness": "Mekoća",
"render.light_temperature": "Temperatura boje",
"render.light_temperature_help": "Približna nijansa crnog tijela; sprema se kao linearni RGB.",
"render.light_type": "Vrsta",
"render.light_type_area": "Površinsko",
"render.light_type_point": "Točkasto",
"render.light_type_spot": "Reflektor",
"render.light_type_sun": "Sunce",
"render.light_view_only": "Samo ovo svjetlo i isključivanje svjetla utječu na ovaj prikaz i njegova renderiranja; nikad se ne spremaju u dizajn.",
"render.light_world_origin": "Ishodište svijeta",
"render.lighting_aim_point": "Točka usmjeravanja",
"render.lighting_apply": "Primijeni postavku",
"render.lighting_area_samples": "Uzorci površinskog svjetla",
"render.lighting_budget": "Proračun",
"render.lighting_budget_help": "Brojevi su samo za čitanje. Dodajte, duplicirajte ili izbrišite svjetla kako biste ih promijenili; metoda određuje ograničenja.",
"render.lighting_colour": "Boja",
"render.lighting_consent": "Zamijeni usmjerena svjetla ovom postavkom",
"render.lighting_custom": "Prilagođena svjetla",
"render.lighting_custom_help": "Odabirom opcije Prilagođeno postavka se pretvara u svjetla koja se mogu uređivati, svako u svom retku u stablu.",
"render.lighting_direction": "Smjer X Y Z",
"render.lighting_direction_help": "Ili upišite smjer prema svjetlu (X Y Z).",
"render.lighting_distance_unit": " × veličina",
"render.lighting_edge_u": "Vektor stranice U",
"render.lighting_edge_v": "Vektor stranice V",
"render.lighting_falloff": "Slabljenje",
"render.lighting_falloff_help": "Intenzitet je naveden za referentnu udaljenost.",
"render.lighting_height": "Visina V",
"render.lighting_minimum": "Minimum",
"render.lighting_mute": "Isključi ovo svjetlo",
"render.lighting_point": "Točka",
"render.lighting_preset": "Postavka studija",
"render.lighting_preset_cpu": "Usmjerene postavke studija zahtijevaju CPU praćenje zraka. GPU osvjetljenje koristi izričita svjetla vrste Sunce i Površinsko.",
"render.lighting_preset_row": "Postavka",
"render.lighting_radiance": "Radijancija",
"render.lighting_reference": "Referenca",
"render.lighting_review_help": "Zamjenjuje popis usmjerenih svjetala. Zadržava točkasta i površinska svjetla, okruženje, sjene, kameru i sve ostale postavke kadra.",
"render.lighting_review_title": "Pregledaj postavku osvjetljenja",
"render.lighting_samples_cpu": "Uzorci površinskog svjetla primjenjuju se na CPU praćenje zraka.",
"render.lighting_samples_need_area": "Dodajte CPU površinsko svjetlo kako biste postavili uzorke površinskog svjetla.",
"render.lighting_samples_reason": "Uzorci površinskog svjetla moraju biti 1, 4, 16 ili 64.",
"render.lighting_shadow_cpu": "Prekidač sjena zahtijeva CPU praćenje zraka. GPU praćenje putanja uvijek baca sjene.",
"render.lighting_shadows": "Baci sjene",
"render.lighting_shadows_section": "Sjene i uzorkovanje",
"render.lighting_shape": "Oblik",
"render.lighting_solo": "Samo ovo svjetlo",
"render.lighting_source": "Izvor",
"render.lighting_source_section": "Izvor svjetla",
"render.lighting_spot_preserved": "Ovo točkasto svjetlo zadržava spremljeni stožac reflektora dok mu se ne promijeni vrsta.",
"render.lighting_sun_distance": "Smjer sunca ne ovisi o udaljenosti i točki usmjeravanja.",
"render.lighting_unsupported": "nepodržano",
"render.lighting_used": "{used} od {limit}",
"render.lighting_width": "Širina U",
"render.lighting_world_position": "Svjetski X Y Z",
"render.lights_fixed_to": "Svjetla vezana za",
"render.linear_help": "Zadržava 32-bitni float RGBA master prije uklanjanja šuma, ekspozicije, mapiranja tonova, filtara i pozadine. Linearni sRGB/D65; pomnožen pokrivenošću. Dodatna memorija izričito se odobrava. Bez sažimanja i dodatnih prolaza.",
"render.linear_retain": "Zadrži sirovi linearni EXR",
"render.linear_unavailable": "Odabrani dovršeni kadar nema zadržani EXR. Omogućite zadržavanje prije renderiranja; stariji PNG ne može vratiti sirovu radijanciju.",
"render.look_add": "Dodaj izgled boje",
"render.look_applied": "Primijenjeno: {name}",
"render.look_bleach": "Po uzoru na bleach bypass",
"render.look_cool": "Hladno",
"render.look_cyanotype": "Po uzoru na cijanotipiju",
"render.look_faded": "Izblijedjeli otisak",
"render.look_material": "Materijal",
"render.look_mono": "Jednobojno",
"render.look_pasted": "Izgled je zalijepljen",
"render.look_sepia": "Sepija",
"render.look_strength": "Jačina izgleda",
"render.look_teal_orange": "Tirkizno / narančasto",
@@ -2607,9 +2903,11 @@
"render.output_advanced": "Napredno",
"render.output_backend_ready": "Spremno",
"render.output_check": "Provjeri",
"render.output_check_failed": "Provjera · pogreška",
"render.output_check_help": "Pokrenite Provjeri da pregledate ovaj zahtjev bez pokretanja renderiranja.",
"render.output_check_summary": "Provjera · Napomene: {count}",
"render.output_copy": "Kopiraj",
"render.output_copy_report": "Kopiraj izvješće",
"render.output_destination": "Odredište",
"render.output_destination_help": "Odaberite odredišnu datoteku pri izvozu dovršene slike.",
"render.output_dimensions": "Veličina",
@@ -2619,6 +2917,7 @@
"render.output_fit": "Uklopi",
"render.output_format": "Format",
"render.output_format_status": "PNG je točna dovršena slika za prikaz. Neobavezni GPU EXR zadržava sirovu linearnu radijanciju scene u formatu FLOAT32 prije filtara prikaza. Izvoz nikad ne zamjenjuje predmemoriju pregleda ni drugi posao.",
"render.output_grading": "Gradacija",
"render.output_image": "Slika",
"render.output_largest": "najviše {width} × {height}",
"render.output_lock_ratio": "Zaključaj omjer stranica",
@@ -2628,6 +2927,8 @@
"render.output_quality_waiting": "čeka definiciju kvalitete",
"render.output_ratio_refused": "Povezana dimenzija premašuje ograničenje veličine ove metode. Prethodna veličina zadržava se; otključajte omjer ili odaberite manju vrijednost.",
"render.output_ready": "Spremno za renderiranje",
"render.output_run_check": "Pokreni provjeru",
"render.output_size_limit": "{method}: do {dimension} px po strani i {pixels} piksela. Najveća veličina koja stane: {width} × {height}.",
"render.output_size_ok": "Veličina u redu · {width} × {height} px",
"render.output_swap_orientation": "Zamijeni širinu i visinu",
"render.output_tools_inspector": "Veličinu i format uredite u inspektoru Izlaz.",
@@ -2644,6 +2945,7 @@
"render.page_output": "Izlaz",
"render.page_scene": "Scena",
"render.paint_label": "Oboji",
"render.painting_with": "Bojenje izgledom: {name}",
"render.passive_stage": "Podloga i pasivna scena",
"render.passive_stage_help": "Konačni pasivni paneli pripadaju samo renderiranim slikama. Ne dodaju CAD tijela ni masu. Postavljanje je fiksno nakon primjene; presijecanje granica proizvoda odbija se. CPU ne daje difuzno odbijeno osvjetljenje.",
"render.perspective": "Perspektivna kamera",
@@ -2665,6 +2967,7 @@
"render.pick_help": "Odaberite Tijelo, Lice ili Komponenta. Kliknite prazan prostor kako biste očistili odabir; Shift ili Ctrl dodaje ili uključuje/isključuje. Isticanja se pojavljuju samo u živom prikazu proizvoda.",
"render.pick_label": "Odaberi",
"render.pick_up_label": "Preuzmi",
"render.pick_up_prompt": "Kliknite objekt kako biste preuzeli njegov izgled",
"render.pick_waiting": "Odabir proizvoda još nije podržan.",
"render.post_contrast": "Kontrast",
"render.post_gain_b": "Pojačanje plave",
@@ -2704,13 +3007,17 @@
"render.radial_distortion": "Radijalno izobličenje",
"render.radial_fit": "Uklopi proizvod",
"render.radial_save": "Spremi kadar",
"render.recent_looks": "Nedavni izgledi",
"render.regrade_action": "Ponovna gradacija sirovog mastera (bez uklanjanja šuma)",
"render.regrade_help": "Izrađuje zaseban PNG iz odabranog dovršenog sirovog mastera, koristeći ove kontrole prikaza. Ne prati zrake, ne mijenja zabilježenu veličinu, kameru ni svjetla i ne prebrisuje EXR. Uklanjanje šuma ne primjenjuje se ponovno: sirovi masteri ne čuvaju njegove vodilje. Izvedena slika i dalje se može izvesti istim kontrolama posla.",
"render.regrade_label": "Ponovna gradacija",
"render.reload_settings": "Ponovno učitaj spremljene postavke",
"render.remove_override": "Ukloni nadjačavanje",
"render.replace_all": "Zamijeni sve",
"render.replace_ground": "Potvrdi zamjenu postojeće scene",
"render.replace_label": "Zamijeni",
"render.replace_saved_surface": "Zamijeni postojeću spremljenu vezu za ovaj cilj",
"render.replace_with": "Zamijeni s",
"render.restore_camera": "Vrati spremljenu kameru",
"render.result_actual": "100%",
"render.result_actual_help": "Jedan piksel slike po pikselu zaslona.",
@@ -2762,14 +3069,28 @@
"render.saved_surface_remove": "Ukloni spremljenu vezu",
"render.saved_surfaces": "Spremljene veze površina",
"render.saved_surfaces_help": "Fiksirane ugrađene mape prate odabrani primjerak u lokalnim milimetrima. Zamijenjen ili nedostajući cilj pogreška je, nikad automatska ponovna dodjela.",
"render.scene_all_shots": "Svi kadrovi ({count})",
"render.scene_apply": "Primijeni pregledani studio",
"render.scene_batch_reason": "Opcija Svi kadrovi zahtijeva red čekanja za renderiranje spremljenih kadrova, koji još nije dostupan.",
"render.scene_check_now": "Provjeri sada",
"render.scene_check_passed": "Provjera uspješna · napomene: {notes}",
"render.scene_check_stale": "Provjera je zastarjela · provjerite ponovno",
"render.scene_check_unchecked": "Još nije provjereno · 0 napomena",
"render.scene_consent": "Potvrdi zamjenu osvjetljenja, okruženja, ekspozicije i scene",
"render.scene_light_summary": "{environment} · svjetla: {lights}",
"render.scene_look_summary": "Izgledi: {looks} · nadjačavanja: {overrides}",
"render.scene_open_check": "Otvori provjeru",
"render.scene_preserved_fields": "Kamera, uzorkovanje, dimenzije, optičke veze, CAD geometrija i inženjerski materijali čuvaju se.",
"render.scene_preserves_design": "Sastavite osvjetljenje i pasivnu scenu za vidljivi predmet. Geometrija, inženjerski materijali i kamera ostaju odvojeni.",
"render.scene_ready": "Spremno za renderiranje",
"render.scene_reminder": "Scena čuva dizajn. Geometrija, inženjerska svojstva i CAD nikad se ne mijenjaju iz Renderiranja.",
"render.scene_reminders": "Podsjetnici",
"render.scene_renderer_ready": "{renderer}: spremno",
"render.scene_replaces": "Zamjenjuje",
"render.scene_review": "Razriješi i pregledaj",
"render.scene_review_help": "Pregledajte potpunu izvornu kompoziciju prije primjene. Nevezane napredne SCENE specifikacije ne zamjenjuju se.",
"render.scene_scope_details": "Opseg kompozicije",
"render.scene_stages": "Faze",
"render.search_appearances": "Pretraži izglede ({count})",
"render.setup_legacy_environment": "Ova starija postavka koristi naslijeđenu rotaciju ili intenzitet okruženja. Te vrijednosti zadržavaju se; izričito ih pretvorite prije spremanja punog posla slike.",
"render.setup_name": "Naziv postavke",
@@ -2782,7 +3103,22 @@
"render.shell_tab_camera": "KAMERA RENDERA",
"render.shell_tab_lighting": "OSVJETLJENJE",
"render.shell_tab_scene": "SCENA RENDERA",
"render.shot_aperture": "Otvor blende",
"render.shot_distance": "Udaljenost",
"render.shot_dof": "Dubinska oštrina",
"render.shot_duplicate": "Dupliciraj spremljeni kadar",
"render.shot_edit_output": "Uredi u Izlazu",
"render.shot_exposure_reason": "Ekspozicija zahtijeva CPU praćenje zraka ili GPU praćenje putanja.",
"render.shot_exposure_section": "Ekspozicija",
"render.shot_focus_distance": "Udaljenost fokusa",
"render.shot_fov_reason": "Vidno polje zahtijeva perspektivnu projekciju.",
"render.shot_frame_subject": "Uokviri predmet",
"render.shot_invalid_camera": "Vrijednosti kamere moraju biti konačne i unutar raspona.",
"render.shot_lens": "Objektiv",
"render.shot_lens_enable_reason": "Omogućite dubinsku oštrinu kako biste uredili otvor blende i udaljenost fokusa.",
"render.shot_lens_gpu_reason": "Dubinska oštrina zahtijeva GPU praćenje putanja.",
"render.shot_lens_perspective_reason": "Dubinska oštrina zahtijeva perspektivnu projekciju.",
"render.shot_look_selection": "Pogledaj odabir",
"render.shot_manager": "Spremljeni kadrovi",
"render.shot_new_name": "Naziv novog kadra",
"render.shot_remove": "Ukloni spremljeni kadar",
@@ -2790,6 +3126,9 @@
"render.shot_remove_title": "Ukloniti spremljeni kadar?",
"render.shot_rename": "Preimenuj spremljeni kadar",
"render.shot_saved_only": "Najprije spremite trenutni nacrt. Dupliciranje i preimenovanje čuvaju točne spremljene opcije i reference na resurse.",
"render.shot_selection_reason": "Odaberite tijelo ili lice prema kojem se usmjerava.",
"render.shot_size": "Veličina",
"render.shot_target": "Cilj",
"render.shots_camera_changed": "Kamera je promijenjena otkako je ovaj kadar spremljen",
"render.shots_name_help": "Upišite jedinstven naziv trenutnog kadra.",
"render.shots_no_result": "Još nema renderiranja",
@@ -3052,6 +3391,7 @@
"select an axis": "odaberite os",
"select an axis, a straight or circular edge, or a cylinder, cone or torus face first": "prvo odaberite os, ravan ili kružni brid ili lice valjka, stošca ili torusa",
"select bodies first": "prvo odaberite tijela",
"select components first": "najprije odaberite komponente",
"select corner points, or the two lines of one corner": "odaberite točke kutova ili dvije linije jednog kuta",
"select one corner point, or the two lines of one corner": "odaberite jednu točku kuta ili dvije linije jednog kuta",
"select sheet edges first": "prvo odaberite bridove lima",
@@ -3070,6 +3410,7 @@
"settings.double_click_components": "Dvaput kliknite komponentu kako biste je aktivirali ili uredili povezanu komponentu na mjestu",
"settings.frame_rate_details_note": "Dodaje graf vremena posljednjih okvira s brojem iscrtanih trokuta, histogram vremena okvira i što je GPU iscrtao. Kliknite broj okvira u sekundi u prikazu kako biste ih prikazali ili sakrili.",
"settings.frame_rate_note": "Prikazuje broj okvira u sekundi u donjem desnom kutu prikaza.",
"settings.insert_lists_open_designs": "Umetni dizajn najprije navodi dizajne otvorene u drugim karticama",
"settings.measure_axis_distances": "Prikaži udaljenosti X/Y/Z",
"settings.measure_axis_distances_help": "Prikazuj komponente udaljenosti po svjetskim osima uz ukupnu udaljenost dok je Mjerenje otvoreno.",
"settings.msaa_applies_on_restart": "Zaglađivanje rubova primjenjuje se pri sljedećem pokretanju SolidCrafta",
@@ -3094,6 +3435,10 @@
"shortcut.unpin": "Otkvači",
"sketch is missing": "skica nedostaje",
"sketch.degrees_of_freedom": "Stupnjevi slobode: {count}",
"sketch.dimension_added_driven": "Skica već određuje tu kotu, pa je dodana kao referentna kota",
"sketch.dimension_applied": "Kota je primijenjena",
"sketch.dimension_applied_defined": "Kota je primijenjena; definiran je parametar `{name}`",
"sketch.dimension_applied_renamed": "Kota je primijenjena; parametar je nazvan `{name}`",
"sketch.dof_left": "Preostali stupnjevi slobode: {count}",
"sketch.dof_left_one": "Preostali stupnjevi slobode: {count}",
"sketch.draw_curves": "Crtaj kao {linetype}",
@@ -3128,6 +3473,8 @@
"sketch_text.use_font_file": "Upotrijebi datoteku fonta {path}",
"solid": "puno",
"status.editing": "Uređivanje: {name}",
"status.navigation": "Mapiranje miša: {mapping}",
"status.navigation_tip": "Kako miš pomiče prikaz. Kliknite za odabir drugog mapiranja",
"status.under_constrained": "Nedovoljno ograničeno (stupnjevi slobode: {count})",
"status.under_constrained_one": "Nedovoljno ograničeno (stupanj slobode: {count})",
"status.units_tip": "Jedinice dizajna. Kliknite za promjenu",
@@ -3161,8 +3508,10 @@
"timeline.delete_folders_tip": "Zadrži njihove značajke i ugniježđene mape u vremenskoj traci",
"timeline.delete_folders_with_features_tip": "Izbriši mape sa svim značajkama u njima i njihove ugniježđene mape",
"timeline.delete_many": "Izbriši odabrane značajke: {count}",
"timeline.edited_rolled_back": "Značajka {name} je promijenjena, ali je nakon oznake vraćanja pa se ne gradi: pomaknite oznaku iza nje kako biste vidjeli rezultat",
"timeline.feature_error": "Pogreška: {message}",
"timeline.feature_hint": "Dvaput kliknite za uređivanje · povucite za promjenu redoslijeda · desni klik za više",
"timeline.feature_rolled_back": "Vraćeno: nalazi se nakon oznake vraćanja, pa se ne gradi",
"timeline.feature_warning": "Upozorenje: {message}",
"timeline.group": "Nova mapa značajki",
"timeline.move_many": "Premjesti stavke vremenske trake",
@@ -3244,6 +3593,10 @@
"ui.3d_mouse_offer": "Kalibracija 3D miša ispravlja zamijenjene ili obrnute osi i postavlja njegovu brzinu i osjećaj.",
"ui.3d_mouse_offer_never": "Ne prikazuj više",
"ui.3d_mouse_offer_swap": "Prebaci na Hidraw (izravno)",
"ui.3d_mouse_orbit": "Orbitiranje",
"ui.3d_mouse_orbit_classic": "Klasično",
"ui.3d_mouse_orbit_tip": "Praćeno: 3D miš okreće prikaz oko dijela modela koji je u sredini prikaza kad okretanje počne, označenog blijedom kuglom. Klasično: oko središta prikaza",
"ui.3d_mouse_orbit_traced": "Praćeno",
"ui.3d_mouse_reading": "Očitanje",
"ui.3d_mouse_reset_axes": "Vrati zadanu dodjelu osi",
"ui.3d_mouse_reset_view": "Vrati prikaz",
@@ -3630,6 +3983,7 @@
"ui.constant": "Konstantno",
"ui.constraints_conflict": "Ograničenja su u sukobu",
"ui.construction": "Pomoćna",
"ui.construction.ribbon_label": "Pomoćne",
"ui.context_menu": "Kontekstni izbornik",
"ui.continuity_g0": "G0 pregib",
"ui.continuity_g1": "G1 tangentno",
@@ -3670,6 +4024,7 @@
"ui.design_properties.part_number": "Broj dijela",
"ui.design_properties.project": "Projekt",
"ui.design_properties.revision": "Revizija",
"ui.design_saved": "Spremljeno: {path}",
"ui.diameter": "Promjer",
"ui.dimension": "Kota",
"ui.direct_interaction": "Izravna interakcija",
@@ -3720,6 +4075,14 @@
"ui.end_scale": "Krajnje skaliranje",
"ui.entities": "Elementi",
"ui.equal": "Jednakost",
"ui.equation_end": "Kraj",
"ui.equation_explicit": "Eksplicitni",
"ui.equation_form": "Oblik",
"ui.equation_note": "Varijabla je običan broj: sin(t) je uzima u radijanima. Rezultat bez jedinice izražen je u jedinici dizajna.",
"ui.equation_parametric": "Parametarski",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Ekvivalentni polumjer",
"ui.expand": "Proširi",
"ui.exportDxf": "Izvezi DXF…",
@@ -3785,6 +4148,7 @@
"ui.heading_design": "DIZAJN",
"ui.heading_draft": "NAGIB",
"ui.heading_edit": "UREDI",
"ui.heading_equation_curve": "KRIVULJA IZ JEDNADŽBE",
"ui.heading_extrude": "EKSTRUDIRAJ",
"ui.heading_fillet": "ZAOBLJENJE",
"ui.heading_finish_editing": "ZAVRŠI UREĐIVANJE",
@@ -3876,6 +4240,10 @@
"ui.import_ellipsis": "Uvezi…",
"ui.infinite": "Beskonačno",
"ui.insert": "Umetni",
"ui.insert_design.browse": "Pregledaj…",
"ui.insert_design.open_designs": "Otvoreni dizajni",
"ui.insert_design.saved_file": "{name} ima nespremljene promjene, pa je umetnuta njegova spremljena datoteka. Spremite ga, a zatim pokrenite Ažuriraj veze kako biste unijeli promjene.",
"ui.insert_design.unsaved": "Nespremljene promjene",
"ui.inspect": "Pregledaj",
"ui.intersect": "Presjek",
"ui.isolate": "Izoliraj",
@@ -4025,6 +4393,18 @@
"ui.project": "Projiciraj",
"ui.project_face_edges_sketch": "Projiciraj bridove lica u nove skice",
"ui.properties": "Svojstva",
"ui.properties.copy_matrix": "Kopiraj matricu",
"ui.properties.first_moments": "Statički momenti",
"ui.properties.inertia": "Moment tromosti",
"ui.properties.inertia_note": "Oko središta mase, u svjetskim osima (g·{unit}²)",
"ui.properties.inertia_unavailable": "Nije dostupno: mreža tijela nije zatvorena.",
"ui.properties.inertia_x": "Ixx, Ixy, Ixz",
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Mjerenje…",
"ui.properties.measuring_failed": "Mjerenje je zaustavljeno prije završetka.",
"ui.properties.principal_axis": "Glavna os {number}",
"ui.properties.principal_moments": "Glavni momenti tromosti",
"ui.pull_direction": "Smjer vađenja iz kalupa",
"ui.quality": "Kvaliteta",
"ui.quantity": "Broj",
@@ -4087,6 +4467,7 @@
"ui.select": "Odaberi",
"ui.selectOther": "Odaberi drugo…",
"ui.selectTangentChain": "Odaberi tangentni lanac",
"ui.select_all": "Odaberi sve",
"ui.selection": "Odabir",
"ui.selection_modifiers": "Modifikatori odabira",
"ui.selection_shift_add_only": "Shift+klik dodaje bez uklanjanja",
@@ -4123,7 +4504,11 @@
"ui.sketch": "Skica",
"ui.sketch_dimension": "Kota skice",
"ui.sketch_grid": "Mreža skice",
"ui.sketch_intersect_geometry": "Geometrija",
"ui.sketch_intersect_projection_link": "Veza projekcije",
"ui.sketch_intersect_selection_filter": "Filtar odabira",
"ui.sketch_modifiers": "Modifikatori skice",
"ui.sketch_project_geometry": "Geometrija",
"ui.sketch_scale": "Skaliranje skice",
"ui.sketches": "Skice",
"ui.slice": "Presijeci",
@@ -4170,6 +4555,11 @@
"ui.symmetric": "Simetrično",
"ui.symmetry": "Simetrija",
"ui.system": "Sustav",
"ui.tab_assemble": "Sklopi",
"ui.tab_manage": "Upravljanje",
"ui.tab_sheet_metal": "Lim",
"ui.tab_view": "Prikaz",
"ui.tab_weldments": "Zavarene konstrukcije",
"ui.tangent": "Tangentno",
"ui.taper_angle": "Kut suženja",
"ui.tapped": "S navojem",
@@ -4185,6 +4575,7 @@
"ui.tip_angle": "Kut vrha",
"ui.to_object": "Do objekta",
"ui.tool_direction": "Smjer alata",
"ui.toolbar_tabs_hidden": "Sve kartice alatne trake su skrivene. Kliknite + ili ovdje desnom tipkom kako biste prikazali jednu.",
"ui.top": "Odozgo",
"ui.top_diameter": "Gornji promjer",
"ui.top_radius": "Gornji polumjer",
@@ -4231,6 +4622,7 @@
"ui.visual_shaded_with_edges": "Osjenčano s bridovima",
"ui.visual_style": "Vizualni stil",
"ui.visual_wireframe": "Žičani model",
"ui.wheel_zoom_speed": "Brzina zumiranja kotačićem miša",
"ui.width": "Širina",
"ui.window_system": "Sustav prozora",
"ui.window_system_auto": "Automatski",
@@ -4284,6 +4676,9 @@
"update.prefs_managed": "Ovo je SolidCraft {version}, kojim upravlja {manager}. Provjera pita GitHub za najnovije izdanje i ne šalje ništa drugo; ažurirajte SolidCraft u {manager}.",
"update.prefs_note": "Ovo je SolidCraft {version} ({kind}). Provjera pita GitHub za najnovije izdanje i ne šalje ništa drugo.",
"update.prefs_web": "Ponovno učitajte stranicu kako biste dobili najnoviju web aplikaciju. Ako mreža nije dostupna ili se ažuriranje ne može preuzeti na vrijeme, otvara se spremljena verzija; preuzimanje u tijeku nastavlja se za sljedeće ponovno učitavanje.",
"update.refresh_checking": "Provjera najnovijeg izdanja…",
"update.refresh_fallback": "Nije moguće provjeriti postoji li novije izdanje; ažurira se na {version}, pronađeno ranije.",
"update.refresh_selected": "Ažuriranje na {version}.",
"update.release_page": "Otvori stranicu izdanja",
"update.restart": "Ponovno pokreni sada",
"update.restart_later": "Kasnije",
+397
View File
@@ -204,6 +204,7 @@
"Edges": "Élek",
"Edit": "Szerkesztés",
"Edit Profile Sketch": "Profilvázlat szerkesztése",
"Edit shortcuts": "Billentyűparancsok szerkesztése",
"Enable rule": "Szabály engedélyezése",
"Enabled": "Engedélyezve",
"End Radius": "Végi sugár",
@@ -466,6 +467,7 @@
"Radius": "Sugár",
"Radius Fit": "Sugár illesztése",
"Ratio": "Arány",
"Read-only list: shortcuts can't be changed here.": "Csak olvasható lista: a billentyűparancsok itt nem módosíthatók.",
"Reattach selected face": "Kijelölt lap újrarögzítése",
"Recover": "Helyreállítás",
"Recover unsaved design?": "Helyreállítja a nem mentett tervet?",
@@ -649,6 +651,7 @@
"Third point": "Harmadik pont",
"This child is shared. Deleting it removes it from every copy of its parent.": "Ez a gyermekelem közös. Törlése eltávolítja a szülő minden másolatából.",
"This child is shared. Position changes apply to every copy of its parent.": "Ez a gyermekelem közös. A pozícióváltozások a szülő minden másolatára érvényesek.",
"This component is inside a subassembly placed more than once: aligning it moves it in every placement.": "Ez a komponens egy többször elhelyezett részösszeállításban van: az igazítása minden elhelyezésben elmozdítja.",
"This face cannot provide a durable attachment. Choose another face or explicitly use a fixed plane.": "Ez a lap nem biztosít tartós rögzítést. Válasszon másik lapot, vagy használjon kifejezetten rögzített síkot.",
"This image is not attached to GitHub yet. Copy or save it, then attach it on GitHub.": "Ez a kép még nincs csatolva a GitHubhoz. Másolja vagy mentse el, majd csatolja a GitHubon.",
"Thread depth": "Menetmélység",
@@ -790,6 +793,11 @@
"cam.roller": "Görgő",
"cam.roller_pick": "Görgő (opcionális)",
"cam.tip_pick": "Csúcs (opcionális)",
"camera.shot_pitch": "Billentés",
"camera.shot_roll": "Gördülés",
"camera.shot_yaw": "Elfordulás",
"canvas.decal_place_hint": "Kattintson egy lapra a matrica elhelyezéséhez",
"canvas.place_hint": "Kattintson egy síkra vagy lapra a vászon elhelyezéséhez",
"choose a profile": "válasszon profilt",
"choose the cam's and the follower's joints": "válassza ki a bütyök és a követő csuklóit",
"choose the joints to couple": "válassza ki az összekapcsolandó csuklókat",
@@ -797,9 +805,12 @@
"click sketch curves": "kattintson vázlatgörbékre",
"cmd.appearance_assign": "Megjelenés",
"cmd.appearance_chain": "Megjelenéslánc",
"cmd.appearance_copy": "Stílus másolása",
"cmd.appearance_favorite": "Stílus kedvencnek jelölése",
"cmd.appearance_library": "Megjelenéstár",
"cmd.appearance_list": "Megjelenések listázása",
"cmd.appearance_paint": "Megjelenés festése",
"cmd.appearance_paste": "Stílus beillesztése",
"cmd.appearance_pick_up": "Megjelenés felvétele",
"cmd.appearance_replace": "Megjelenés cseréje",
"cmd.assembly_bom": "Anyagjegyzék",
@@ -810,6 +821,7 @@
"cmd.browser_move": "Böngészőelemek áthelyezése",
"cmd.browser_order": "Böngészőelemek rendezése",
"cmd.browser_rename_group": "Csoport átnevezése",
"cmd.browser_reparent": "Áthelyezés komponensbe",
"cmd.browser_ungroup": "Csoport szétbontása",
"cmd.browser_visibility": "Megjelenítés/elrejtés",
"cmd.canvas_calibrate": "Vászon kalibrálása",
@@ -836,7 +848,9 @@
"cmd.component_metadata": "Alkatrésztulajdonságok",
"cmd.component_metadata_set": "Alkatrésztulajdonságok módosítása",
"cmd.component_move_bodies": "Testek áthelyezése komponensbe",
"cmd.component_move_features": "Elemek áthelyezése komponensbe",
"cmd.component_move_sketches": "Vázlatok áthelyezése komponensbe",
"cmd.component_paste_from_design": "Beillesztés másik tervből",
"cmd.component_paste_new": "Beillesztés újként",
"cmd.component_properties": "Komponens fizikai tulajdonságai",
"cmd.component_relink": "Forrás újrakötése",
@@ -973,6 +987,7 @@
"cmd.motion_trace": "Mozgásnyom",
"cmd.motion_trace_edit": "Mozgásnyom szerkesztése",
"cmd.motion_trace_keep": "Mozgásnyom megtartása",
"cmd.occurrence_align": "Előfordulás igazítása",
"cmd.occurrence_copy": "Beillesztés (példány)",
"cmd.occurrence_drag": "Előfordulás húzása",
"cmd.occurrence_ground": "Rögzítés a földhöz",
@@ -1030,11 +1045,17 @@
"cmd.render_library_surface_unbind": "Felületkötés eltávolítása",
"cmd.render_library_targets": "Renderkönyvtár célpontjainak keresése",
"cmd.render_lights_add": "Fényforrás hozzáadása",
"cmd.render_lights_duplicate": "Renderfény kettőzése",
"cmd.render_lights_list": "Renderfények listázása",
"cmd.render_lights_mute": "Fényforrás némítása",
"cmd.render_lights_remove": "Renderfény eltávolítása",
"cmd.render_lights_set": "Renderfény beállítása",
"cmd.render_lights_solo": "Szólófény",
"cmd.render_optics_bind": "Optikai kötés mentése",
"cmd.render_optics_unbind": "Optikai kötés eltávolítása",
"cmd.render_output_size": "Render kimeneti méretének beállítása",
"cmd.render_preflight": "Renderkérés ellenőrzése",
"cmd.render_preflight_copy": "Renderellenőrzési jelentés másolása",
"cmd.render_preset_apply": "Natív Studio alkalmazása",
"cmd.render_preset_resolve": "Natív Studio áttekintése",
"cmd.render_quality_prepare": "Rögzített mintavételi keret áttekintése",
@@ -1057,6 +1078,13 @@
"cmd.render_start": "Kép renderelése",
"cmd.render_status": "Renderelés előrehaladása",
"cmd.select_clear": "Kijelölés törlése",
"cmd.settings_profile_apply": "Beállításprofil alkalmazása",
"cmd.settings_profile_delete": "Beállításprofil törlése",
"cmd.settings_profile_export": "Beállításprofil exportálása",
"cmd.settings_profile_import": "Beállításprofil importálása",
"cmd.settings_profile_list": "Beállításprofilok",
"cmd.settings_profile_rename": "Beállításprofil átnevezése",
"cmd.settings_profile_save": "Beállításprofil mentése",
"cmd.sheet_convert": "Átalakítás lemezzé",
"cmd.sheet_export_bend_table": "Hajlítási táblázat exportálása",
"cmd.sheet_export_dxf": "Lapminta exportálása DXF-ként",
@@ -1070,6 +1098,16 @@
"cmd.sheet_refold": "Újrahajlítás",
"cmd.sheet_rules": "Lemezszabályok listázása",
"cmd.sheet_unfold": "Kiterítés",
"cmd.sketch.construction_line": "Szerkesztőegyenes",
"cmd.sketch.construction_line.angle": "Adott szögű szerkesztőegyenes",
"cmd.sketch.construction_line.bisector": "Szögfelező",
"cmd.sketch.construction_line.horizontal": "Vízszintes szerkesztőegyenes",
"cmd.sketch.construction_line.parallel": "Párhuzamos szerkesztőegyenes",
"cmd.sketch.construction_line.perpendicular": "Merőleges szerkesztőegyenes",
"cmd.sketch.construction_line.tangent_at": "Érintő a görbe pontjában",
"cmd.sketch.construction_line.tangent_external": "Érintő külső pontból",
"cmd.sketch.construction_line.tangent_two": "Közös érintő",
"cmd.sketch.construction_line.vertical": "Függőleges szerkesztőegyenes",
"cmd.sketch_arc3d": "3D ív",
"cmd.sketch_arc_center_point": "Középpontos ív",
"cmd.sketch_arc_tangent": "Érintő ív",
@@ -1102,6 +1140,8 @@
"cmd.sketch_drawing_bounds": "Rajzméret",
"cmd.sketch_edit": "Vázlat szerkesztése",
"cmd.sketch_edit_text": "Szöveg szerkesztése",
"cmd.sketch_equation_curve": "Egyenletgörbe",
"cmd.sketch_equation_curve_edit": "Egyenletgörbe szerkesztése",
"cmd.sketch_export_dxf": "Mentés DXF-ként",
"cmd.sketch_finish_auto_constrain": "Befejezés automatikus kényszerezéssel",
"cmd.sketch_fit_curves_to_section": "Görbék illesztése a hálómetszethez",
@@ -1198,6 +1238,7 @@
"cmd.view.render_browser": "Renderböngésző",
"cmd.view.render_dock": "Renderpanel áthelyezése",
"cmd.view.render_focus": "Renderfókusz nézet",
"cmd.view.status_items": "Nézetablak állapotelemei",
"cmd.view_ambient_occlusion": "Környezeti takarás",
"cmd.view_angle_readout": "Nézetszögek",
"cmd.view_apply": "Elnevezett nézet visszaállítása",
@@ -1219,6 +1260,7 @@
"cmd.view_normal_to": "Merőleges a kijelölésre",
"cmd.view_previous_tab": "Előző lap",
"cmd.view_rename": "Elnevezett nézet átnevezése",
"cmd.view_render_frame": "Renderkeret segédvonalai",
"cmd.view_right": "Jobb oldali nézet",
"cmd.view_save": "Új elnevezett nézet",
"cmd.view_shots_strip": "Felvételsáv",
@@ -1229,10 +1271,14 @@
"color.copy": "Kattintson a színértékek másolásához",
"color.edit": "Kattintson a szín szerkesztéséhez",
"color.gamma": "Színértékek megjelenítése 0–255 gamma térben",
"color.hex": "Hex",
"color.hex_help": "Adja meg: #rrggbb vagy #rrggbbaa; hat számjegy esetén az átlátszatlanság megmarad",
"color.hex_hint": "#rrggbb",
"color.hue": "Árnyalat",
"color.linear": "Színértékek megjelenítése 0–1 lineáris térben",
"color.saturation_value": "Telítettség és érték",
"color.selected": "Kijelölt szín",
"config.column_filter_empty": "Nincs egyező oszlop",
"contact.components_count": "{count} komponens",
"contact.enabled_label": "engedélyezve",
"coupling.gear_1": "1. fogaskerék",
@@ -1346,8 +1392,10 @@
"help.material.assign": "Megadja, miből készültek a kijelölt testek, például acélból, alumíniumból vagy ABS-ből. Használja, hogy a tömeg és a súly megegyezzen a valódi alkatrészével.",
"help.mit": "MIT licenc",
"help.notice": "NOTICE",
"help.occurrence.move": "Az összeállítás egy alkatrészét csak a csuklói által megengedett szabadságfokok mentén mozgatja. Jelölje ki az alkatrész egy lapját, majd húzza az egyik elérhető nyilat vagy ívet.",
"help.parameters.change": "Megnyitja a terv méreteit vezérlő elnevezett értékek és kifejezések táblázatát. Használja egy méret egy helyen való módosítására, hogy az azt használó összes elem kövesse.",
"help.pointcloud.insert": "PLY, XYZ vagy PTS szkennelést szúr be pontfelhőként a modell mellé. Használja referenciaként, amikor mért adatokból épít modellt.",
"help.sketch.equation_curve": "Görbét rajzol képletekből: x(t) és y(t), vagy y = f(x) alapján, egy tartományon. A képletek paramétereket is használhatnak, és a görbe követi őket: használja szinuszhullámhoz, spirálhoz vagy fogaskerékfog evolvenséhez.",
"help.solid.align": "Úgy mozgatja a kijelölt testeket, hogy egy rajtuk lévő pont, lap vagy sík találkozzon máshol lévő ponttal, lappal vagy síkkal. Használja egy alkatrész másikhoz illesztésére az eltolás lemérése nélkül.",
"help.solid.chamfer": "A kijelölt éleket lapos letöréssel vágja le a megadott távolságban. Használja éles élek tompítására, illetve egy csap vagy csavar bevezetésének megkönnyítésére.",
"help.solid.combine": "Egyesíti a testeket, kivágja őket egy céltestből, vagy csak a közös térfogatukat tartja meg, és megtarthatja a szerszámtesteket. Használja alkatrészek összeolvasztására, egy alak másikkal való kivágására, vagy két test átfedésének megkeresésére.",
@@ -1474,6 +1522,21 @@
"joint.one_component": "Ezek az alkatrészek egyetlen komponens testei: {bodies}. A csukló egy komponenst mozgat a másikhoz képest, ezért minden alkatrésznek saját komponens kell.",
"joint.rigid_group_one_component": "Mind a(z) {count} test egyetlen komponensben van (vagy magában a tervben): előbb használja a(z) {command} parancsot.",
"joint.rigid_group_select_components": "Jelöljön ki két vagy több komponenst.",
"joint_move.blocked_hint": "Ellenőrizze a csukló típusát (például Merev), a földhöz rögzítést, a csuklókorlátokat és a paraméterrel vezérelt értékeket.",
"joint_move.blocked_title": "Ez az alkatrész nem mozgatható",
"joint_move.coarse": "Forgatási lépés a tengely közelében (°)",
"joint_move.distance": "Távolság a kezdőponttól",
"joint_move.done": "Kész",
"joint_move.fine": "Forgatási lépés a tengelytől távol (°)",
"joint_move.fixed": "Ennek az alkatrésznek nincs mozgatható csuklótengelye.",
"joint_move.help": "Mozgatás – húzzon egy nyilat vagy gyűrűt. Az Esc megszakítja az aktuális húzást.",
"joint_move.legacy_hint": "Kapcsolja ki az előző Mozgatás panel használatához.",
"joint_move.precision": "Finom forgatáshoz húzza a szaggatott segédvonalon kívülre.",
"joint_move.rotation": "Elforgatás a kezdettől",
"joint_move.select": "Jelöljön ki egy lapot vagy az összeállítás egy alkatrészét, majd válassza a Mozgatás parancsot.",
"joint_move.settings": "Összeállítás mozgatása",
"joint_move.step": "Lépés",
"joint_move.use_handles": "Csuklómozgató fogantyúk használata az összeállítás mozgatásához",
"keymap.command_id": "Parancsazonosító",
"keymap.empty": "Nincs egyező parancs",
"keymap.use_anyway": "{key} használata itt mégis",
@@ -1568,6 +1631,8 @@
"nav.maya.help": "Alt+bal húzás: keringés, Alt+középső húzás: pásztázás, Alt+jobb húzás: nagyítás; a középső húzás is pásztáz",
"nav.openscad.help": "Bal húzás üres helyen: keringés, Shift+bal húzás: kijelölés kerettel, a vázlatgeometria húzása szerkeszt; jobb vagy középső húzás: pásztázás, Shift+jobb vagy Shift+középső húzás: nagyítás",
"nav.perspective.sketch": "A vázlatszerkesztés ortografikus nézetet használ. A perspektívára váltáshoz fejezze be a vázlatot.",
"nav.right_drag_orbits.help": "Ki: a jobb gombos húzás nem mozgatja a kamerát, és a jobb gomb csak a helyi menüt nyitja meg. A SolidWorks egérkiosztás kiválasztása kikapcsolja.",
"nav.right_drag_orbits.label": "Jobb gombos húzás: keringés",
"nav.solidworks.help": "Középső húzás: keringés, Ctrl+középső húzás: pásztázás, Shift+középső húzás: nagyítás, jobb húzás: keringés",
"nav.tinkercad.help": "Jobb húzás: keringés, középső vagy Shift+jobb húzás: pásztázás",
"nav.touchpad.help": "Tartsa lenyomva a Shiftet, és mozgassa a mutatót a pásztázáshoz; tartsa lenyomva az Alt/Option billentyűt, és mozgassa a keringéshez. Egérgomb nem szükséges. A függőleges görgetés nagyít.",
@@ -1589,6 +1654,9 @@
"navbar.custom.customise": "Navigációs sáv testreszabása…",
"navbar.custom.design": "Tervezés",
"navbar.custom.duplicate": "Ez a hely már szerepel a sávon.",
"navbar.custom.edge": "Szél",
"navbar.custom.edge_bottom": "Alul",
"navbar.custom.edge_top": "Felül",
"navbar.custom.fade": "Elhalványítás",
"navbar.custom.full": "Újabb hely hozzáadásához távolítson el egyet.",
"navbar.custom.hidden_design": "Rejtett a Tervezésben",
@@ -1695,6 +1763,7 @@
"parts.dimension.thickness": "Vastagság",
"parts.dimension.width": "Szélesség",
"parts.family.bearing": "Mélyhornyú golyóscsapágy (befoglaló méret)",
"parts.family.button_head_cap_screw": "Belső kulcsnyílású lencsefejű csavar",
"parts.family.dowel_pin": "Hengeres illesztőcsap",
"parts.family.hex_bolt": "Hatlapfejű csavar",
"parts.family.hex_nut": "Hatlapú anya",
@@ -1751,6 +1820,9 @@
"prefs.bottom_centre": "Alsó közép",
"prefs.bottom_right": "Jobb alsó",
"prefs.browser": "Böngésző",
"prefs.browser_reveal_on_hover": "Megjelenítés rámutatáskor",
"prefs.browser_show_note": "A Megjelenítve beállítás a képernyőn tartja a böngészőt. A Megjelenítés rámutatáskor elrejti, amíg a mutató a helye vagy a bal szélén lévő keskeny fül fölé nem kerül, és nyitva marad, amíg a mutató rajta van, vagy amíg egy belőle nyitott menü nyitva van.",
"prefs.browser_shown": "Megjelenítve",
"prefs.built_in": "Beépített",
"prefs.button_left": "Húzás bal gombbal",
"prefs.button_middle": "Húzás középső gombbal",
@@ -1821,6 +1893,8 @@
"prefs.layout_note": "A Kompakt a paneleket az ablak széleihez rögzíti. A Böngésző áttetszősége Lebegő módban érhető el. Az Asszisztens oldalát az Asszisztens oldalon módosíthatja.",
"prefs.left": "Bal",
"prefs.left_click": "Bal kattintás",
"prefs.line_drag_draws_one": "Lenyomás és húzás egy vonalat rajzol",
"prefs.line_drag_draws_one_note": "A Vonal eszközben a lenyomás, húzás és felengedés egyetlen vonalat rajzol a lenyomás helyétől a felengedés helyéig, és ott véget ér. A kattintások továbbra is láncot rajzolnak. Ki: a húzás a felengedés helyén pontot helyez el, ahogy a kattintás.",
"prefs.linked_designs": "Kapcsolt tervek",
"prefs.live_input": "Élő bevitel",
"prefs.live_preview": "Élő előnézet",
@@ -1853,14 +1927,36 @@
"prefs.origin_plane_names": "Origósíkok nevei",
"prefs.origin_plane_names_note": "A Böngészőben, a párbeszédablakokban és a listákban megjelenő nevek. A {top} az XY, a {front} az XZ, a {right} pedig az YZ, a Z felfelé mutat. A parancsok, szkriptek és mentett tervek az XY, XZ és YZ jelölést tartják meg.",
"prefs.overall_speed": "Összsebesség",
"prefs.perspective_fov": "Látószög",
"prefs.placement": "Elhelyezés",
"prefs.prefer_free_sketch_points": "Átfedő pontoknál a mozgatható vázlatpontok előnyben részesítése",
"prefs.preview_choices": "A választások előnézete",
"prefs.profile_active": "Aktív profil",
"prefs.profile_applied": "Profil alkalmazva.",
"prefs.profile_changed": "A beállítások a profil mentése óta megváltoztak. A Mentés eltárolja őket a profilban.",
"prefs.profile_deleted": "Profil törölve.",
"prefs.profile_export": "Exportálás…",
"prefs.profile_exported": "Profil exportálva.",
"prefs.profile_imported": "Profil importálva. Az átváltáshoz válassza ki az Aktív profil alatt.",
"prefs.profile_name_hint": "Profilnév, pl. Laptop",
"prefs.profile_rename": "Átnevezés",
"prefs.profile_renamed": "Profil átnevezve.",
"prefs.profile_save": "Mentés",
"prefs.profile_saved": "Az aktuális beállítások a profilba mentve.",
"prefs.profile_skipped": "Profil alkalmazva; {n} beállítás megtartotta az aktuális értékét (lásd a naplót).",
"prefs.profiles": "Beállításprofilok",
"prefs.profiles_note": "A billentyűparancsok, az eszköztár, a navigáció, a körmenü és a felület beállításai egy név alatt együtt tárolva, egyszerre váltva.",
"prefs.project_options_dialog": "Vetítési beállítások párbeszédpanel",
"prefs.project_options_dialog_note": "Be: vetítés előtt válassza ki a Geometria vagy a Testek lehetőséget és a Vetítési kapcsolatot. Ki: az előző, közvetlen kijelöléses munkamenet marad.",
"prefs.quality_default": "alapértelmezett",
"prefs.quality_fastest": "leggyorsabb",
"prefs.quality_slowest": "leglassabb",
"prefs.quality_smoother": "simább",
"prefs.render_previous_geometry_budget": "Korábbi geometriakeret használata a renderelési előnézethez",
"prefs.render_previous_geometry_budget_help": "A korábbi rögzített geometriakorlát visszaállítása (64 bites asztali gépen 512 MiB, máshol 128 MiB) az eszközalapú keret helyett.",
"prefs.reports_saved": "{n} mentve",
"prefs.ribbon_reveal": "Keresési találatok megmutatása a menüszalagon",
"prefs.ribbon_reveal_note": "Ha a Parancsok keresése egy találata fölé viszi a mutatót, megjelenik, hol található a parancs a menüszalagon: a füle, a gombja vagy a sora egy panel legördülő listájában. A keresésből indított parancs ott felvillan, a legördülő listából futó parancs pedig megjelöli a panelját.",
"prefs.right_click": "Jobb kattintás",
"prefs.saving": "Automatikus mentés és helyreállítás",
"prefs.scale_note": "Az ablakban a Ctrl + / Ctrl − is használható. A gombok 100%-on 28 px-esek.",
@@ -1874,6 +1970,10 @@
"prefs.shift_add_ctrl_toggle": "A Shift csak hozzáad; a Ctrl / Cmd átkapcsol",
"prefs.shift_add_note": "Be: a Shift hozzáad, a Ctrl / Cmd átkapcsol. Ki (alapértelmezett): mindkettő átkapcsol.",
"prefs.shortcuts": "Billentyűparancsok",
"prefs.single_surface_analysis": "Egyetlen felületelemzés használata",
"prefs.single_surface_analysis_help": "Kikapcsolva a felületárnyalás és a Folytonosság egyszerre bekapcsolva maradhat. Bekapcsolva a legutóbb indított vagy módosított elemzés marad meg.",
"prefs.sketch_align_points": "Igazodás más vázlatpontokhoz rajzolás közben",
"prefs.sketch_align_points_note": "Rajzolás közben egy pont egyszerre igazodhat vízszintesen az egyik vázlatponthoz és függőlegesen egy másikhoz, pontozott segédvonallal, és a kattintás mindkét igazítást megtartja. Ki: csak az előző ponthoz, egyszerre egy tengely mentén.",
"prefs.sketch_conflict_colour": "Ütköző geometria az ütközés színével",
"prefs.sketch_conflict_colour_note": "Amíg egy vázlat kényszerei ütköznek, a hibás kényszer által megfogott görbék és pontok is az ütközés színével jelennek meg, nem csak a kényszer szimbóluma vagy mérete. Kikapcsolva: megtartják szokásos színüket.",
"prefs.sketch_exit_view": "Vázlat befejezésekor",
@@ -1881,6 +1981,8 @@
"prefs.sketch_exit_view.previous": "Visszatérés az előző nézethez",
"prefs.sketch_exit_view.unless_rotated": "Visszatérés, ha nem lett forgatva",
"prefs.sketch_exit_view_note": "Hová kerül a nézet a Vázlat befejezése, a Mégse vagy a dupla Esc után.",
"prefs.sketch_recent_snap": "Automatikus illesztés a legutóbbi középpontokhoz és felezőpontokhoz",
"prefs.sketch_recent_snap_note": "Rajzolás közben a kurzor oda illeszkedik, ahol a két legutóbbi pont (kör középpontja vagy egyenes él felezőpontja) segédvonalai keresztezik egymást. Kikapcsolva: ezek a segédvonalak csak megjelennek, és a kurzor nem mozdul el.",
"prefs.sketch_selection": "Vázlat és kijelölés",
"prefs.sketch_selection_heading": "Vázlat és kijelölés",
"prefs.sketch_selection_note": "Hogyan illeszkednek a vázlatok, és hogyan jelölnek ki a kattintások.",
@@ -1918,7 +2020,14 @@
"prefs.toast_place": "Értesítések",
"prefs.toggle_item": "Az elem hozzáadása, vagy újbóli eltávolítása",
"prefs.toolbar": "Eszköztár",
"prefs.toolbar_tabs": "Eszköztár fülei",
"prefs.top": "Felső",
"prefs.trackpad_zoom_modifier": "Kétujjas görgetéses nagyítás módosítóbillentyűje",
"prefs.trackpad_zoom_modifier.alt": "⌥ / Alt",
"prefs.trackpad_zoom_modifier.cmd": "⌘",
"prefs.trackpad_zoom_modifier.ctrl": "Ctrl",
"prefs.trackpad_zoom_modifier.help": "Csak ezt a billentyűt tartsa lenyomva, hogy függőleges görgetéssel a mutatónál nagyítson. A Ki megtartja a jelenlegi görgetési viselkedést.",
"prefs.trackpad_zoom_modifier.off": "Ki",
"prefs.translucent": "Áttetsző",
"prefs.under_browser": "A Böngésző alatt",
"prefs.under_cursor": "A kurzor alatt",
@@ -1928,9 +2037,14 @@
"prefs.view_confirm_corner": "OK és Mégse a nézet sarkában",
"prefs.view_confirm_corner_note": "Amíg egy párbeszédablak vagy vázlat nyitva van, a nézet jobb felső részén egy pipa és egy kereszt a párbeszédablak OK és Mégse gombját működteti, illetve befejezi vagy megszakítja a vázlatot. A nézetnavigátor lejjebb kerül alattuk.",
"prefs.viewport": "Nézetablak",
"prefs.viewport_background": "Háttér",
"prefs.viewport_background_colour": "Szín",
"prefs.viewport_background_theme": "A téma színátmenete",
"prefs.wheel": "Görgő",
"prefs.wheel_trackpad": "Görgő és érintőpad",
"prefs.workspace": "Munkaterület",
"prefs.zoom_stop_at_model": "Nagyítás megállítása a modellnél",
"prefs.zoom_stop_at_model_tip": "A 3D-egér és az eszközalkalmazás a nézet közepén lévő felület felé nagyít; a húzásos nagyítás a húzás kezdőpontját tartja meg. Ki: a nagyítás áthaladhat a modellen. A görgő és a csippentés ettől függetlenül a Nagyítás a kurzorhoz beállítást követi",
"prefs.zoom_toward_cursor": "Nagyítás a kurzor irányába",
"properties.title": "Tulajdonságok: {name}",
"recovery.days_ago": "{count} napja",
@@ -2019,6 +2133,7 @@
"render.appearance_editor.weight": "Súly",
"render.appearance_physics_separate": "A vizuális megjelenés nem rendel hozzá sűrűséget, hőtani adatot vagy más mérnöki tulajdonságot.",
"render.appearances": "Megjelenések",
"render.assign_help": "Kattintással a kijelölésre alkalmazza; húzással előnézetet kap és ráejtheti, kijelölés nélküli kattintással pedig festhet.",
"render.availability_native": "Natív összeállítás; alkalmazás előtt tekintse át",
"render.availability_projection": "Támogatott vetítés; lásd a hatókört és a kihagyásokat",
"render.availability_reference": "Referenciaadat; nem automatikus hozzárendelés",
@@ -2057,6 +2172,7 @@
"render.bloom_threshold": "Lineáris csúcsfény-küszöb",
"render.browse_capabilities": "Teljes képességkatalógus megtekintése",
"render.browse_environments": "Eredeti HDR-környezetek böngészése",
"render.browse_looks": "Tallózás…",
"render.browse_native_scenes": "Natív stúdiók böngészése",
"render.browse_physical": "Fizikai referenciák megtekintése",
"render.browse_quality": "Minőségi specifikációk megtekintése",
@@ -2080,6 +2196,82 @@
"render.check_opaque": "Átlátszóság: csak átlátszatlan felületek; a háttér alfa-csatornája támogatott.",
"render.check_sorted_alpha": "Átlátszóság: rendezett alfa-közelítés.",
"render.check_transmission": "Átlátszóság: fizikai áteresztés.",
"render.children.absolute_floor": "Abszolút küszöb",
"render.children.adaptive": "Adaptív",
"render.children.add_look_reason": "Adjon hozzá egy stílust az engedélyezett állapotának és erősségének szerkesztéséhez.",
"render.children.all_shots": "Összes felvétel",
"render.children.bloom": "Bloom",
"render.children.check": "Ellenőrzés",
"render.children.check_now": "Ellenőrzés most",
"render.children.chromatic": "Kromatikus",
"render.children.compact": "Kompakt",
"render.children.contrast": "Kontraszt",
"render.children.copy_image": "Másolás",
"render.children.copy_job": "Feladat JSON másolása",
"render.children.copy_request": "Kérés JSON másolása",
"render.children.coverage_error": "Lefedettségi hiba",
"render.children.cpu": "CPU-s sugárkövetés",
"render.children.denoise": "Zaj csökkentése a kész képen",
"render.children.depth": "Útmélység",
"render.children.distortion": "Torzítás",
"render.children.edge_samples": "Élminták",
"render.children.effects_banner": "Ezekhez az effektekhez GPU-s útkövetés szükséges. A megnyitás soha nem változtatja meg a módszert.",
"render.children.enable_adaptive": "Az adaptív korlátok szerkesztéséhez engedélyezze a független próbamintákat.",
"render.children.enable_bloom": "Az erősség, a küszöb és a sugár szerkesztéséhez engedélyezze a bloomot.",
"render.children.finishing": "Utómunka",
"render.children.flare": "Lencsefény",
"render.children.fresnel": "Fresnel-rétegzés",
"render.children.ghosts": "Szellemgyűrűk",
"render.children.glass": "Fényátvitel üvegben",
"render.children.go_to": "Ugrás: {editor}",
"render.children.grain": "Szemcsézet",
"render.children.halo": "Fényudvar",
"render.children.hdr": "HDR",
"render.children.keep_master": "Nyers lineáris mesterkép megőrzése",
"render.children.last_result": "Utolsó: {number} · {width} × {height} · {phase}",
"render.children.lens_effects": "Lencseeffektusok",
"render.children.look_summary": "{tone} · {count} stílus",
"render.children.looks": "Kreatív stílusok",
"render.children.memory": "Memória",
"render.children.method": "Módszer",
"render.children.minimum": "Minimum",
"render.children.needs_cpu": "CPU-s sugárkövetést igényel. A megnyitás soha nem változtatja meg a módszert.",
"render.children.nested": "Igazolt egymásba ágyazott dielektrikumok",
"render.children.not_checked": "Nincs ellenőrizve",
"render.children.path": "Útkövetés",
"render.children.pilots": "Próbaminták",
"render.children.preview": "Előnézeti adatok",
"render.children.progressive_reason": "A mintaszám és a kezdőérték szerkesztéséhez válassza a Progresszív módot.",
"render.children.radius": "Sugár",
"render.children.reflect_depth": "Tükröződési mélység",
"render.children.reflect_samples": "Tükröződési minták",
"render.children.regrade": "Újbóli színkorrekció",
"render.children.relative_error": "Relatív hiba",
"render.children.render": "Renderelés",
"render.children.render_shot": "Felvétel renderelése",
"render.children.renderer": "Renderelő",
"render.children.renderers": "Renderelők",
"render.children.request": "Ez a kérés",
"render.children.reset_finishing": "Utómunka visszaállítása",
"render.children.review_quality": "Minőségi specifikáció áttekintése…",
"render.children.rgb_gain": "RGB-erősítés",
"render.children.samples": "Minták",
"render.children.sampling": "Mintavételezés",
"render.children.saturation": "Telítettség",
"render.children.scene_summary": "{bodies} test · {triangles} háromszög",
"render.children.seed": "Kezdőérték",
"render.children.sharpening": "Élesítés",
"render.children.single_image": "Egyetlen kép",
"render.children.soft_focus": "Lágy fókusz",
"render.children.streak": "Csík",
"render.children.strength": "Erősség",
"render.children.studio": "Studio",
"render.children.threshold": "Küszöb",
"render.children.tone": "Tónus",
"render.children.under_hood": "A motorháztető alatt",
"render.children.vignette": "Vignetta",
"render.children.workstation": "Munkaállomás",
"render.choose_look": "Először válasszon stílust a Megjelenések között",
"render.chromatic_offset": "Kromatikus éleltolás",
"render.clear_stage": "Mentett díszlet eltávolítása",
"render.copy_request": "JSON másolása",
@@ -2331,8 +2523,33 @@
"render.flare_strength": "Fénycsúcsok lencsefény-erőssége",
"render.flare_threshold": "Lencsefény küszöbértéke (jelenet-lineáris)",
"render.fold_browser": "Böngésző összecsukása",
"render.frame_aspect": "Képarány",
"render.frame_centre_mark": "Középjel",
"render.frame_copy_limit": "Nincs elérhető név a felvétel másolatához",
"render.frame_copy_name": "{name} – másolat {number}",
"render.frame_custom": "Egyéni",
"render.frame_distance_unit": " × méret",
"render.frame_duplicate": "Kettőzés",
"render.frame_exposure": "Expozíció",
"render.frame_fov": "Látószög",
"render.frame_guides": "Segédvonalak",
"render.frame_invalid_aspect": "Érvénytelen képarány-előbeállítás",
"render.frame_lens": "Látószög {fov}° · ≈ {mm} mm",
"render.frame_name": "Név",
"render.frame_output_size": "Kimeneti méret",
"render.frame_photo": "3:2 · Fotó",
"render.frame_portrait": "4:5 · Portré",
"render.frame_presets": "Képkivágási előbeállítások",
"render.frame_presets_pending": "A Felvétel szerkesztővel érkezik",
"render.frame_projection": "Vetítés",
"render.frame_render_shot": "E felvétel renderelése",
"render.frame_rule_thirds": "Harmadolási szabály",
"render.frame_safe_area": "Biztonságos terület",
"render.frame_shot_title": "Felvétel · {name}",
"render.frame_square": "1:1 · Négyzet",
"render.frame_tall": "9:16 · Álló",
"render.frame_thirds": "Harmadok",
"render.frame_wide": "16:9 · Szélesvásznú",
"render.gpu_depth": "Maximális útvonalmélység",
"render.gpu_options_help": "A mintaszám, a mélység, a kezdőérték és az expozíció ezzel a beállítással együtt mentődik. Csak az aktív képalkotási módszer mentődik.",
"render.gpu_path_failed": "A GPU-s útkövető nem érhető el",
@@ -2360,6 +2577,7 @@
"render.heading_results": "EREDMÉNYEK",
"render.heading_shots": "FELVÉTELEK",
"render.hide_shots_label": "Felvételsáv elrejtése",
"render.hover_look": "{object} · {look} · kattintson a kijelöléshez",
"render.image_advanced": "Speciális GPU-vezérlők",
"render.image_cancelled": "Renderelés megszakítva",
"render.image_cancelling": "Megszakítás",
@@ -2506,17 +2724,95 @@
"render.library_uniform_ack": "Egységes közelítés használata térbeli vagy speciális effektek nélkül",
"render.library_usable": "Futtatható vetületek",
"render.library_users": "Használó testek",
"render.light_aim": "Célzás erre",
"render.light_anchor_pending": "A fények koordináta-rendszerének módosítása még nem támogatott.",
"render.light_azimuth": "Azimut",
"render.light_backend_limit": "A fények szerkesztéséhez válasszon CPU-s sugárkövetést vagy egy kifejezett GPU-stúdiót. A régi GPU-stúdiófények csak olvashatók maradnak.",
"render.light_behaviour": "VISELKEDÉS",
"render.light_default_fill": "Derítőfény",
"render.light_default_key": "Főfény",
"render.light_default_number": "Fény {number}",
"render.light_default_rim": "Kontúrfény",
"render.light_delete": "Törlés",
"render.light_distance": "Távolság",
"render.light_duplicate": "Kettőzés",
"render.light_elevation": "Magassági szög",
"render.light_gpu_punctual": "A pont- és spotfények CPU-s sugárkövetéssel érhetők el.",
"render.light_hard_shadow": "Ennek a fénynek éles árnyékai vannak; a fényforrás lágysága nem érhető el.",
"render.light_intensity": "Intenzitás",
"render.light_missing": "Ez a fény már nem létezik. Jelöljön ki egy fényt a Böngészőben.",
"render.light_place_highlight": "Elhelyezés csúcsfény alapján",
"render.light_place_pending": "A csúcsfény szerinti elhelyezéshez fénykijelölés szükséges a nézetablakban, ez még nem támogatott.",
"render.light_position": "POZÍCIÓ",
"render.light_preview_help": "Az élő nézet árnyék nélküli; a területi fények középponti mintás közelítést használnak. A renderelés a teljes fénymodellt használja.",
"render.light_product_centre": "Termék középpontja",
"render.light_size": "Méret",
"render.light_softness": "Lágyság",
"render.light_temperature": "Színhőmérséklet",
"render.light_temperature_help": "Közelítő feketetest-színezet; lineáris RGB-ként mentődik.",
"render.light_type": "Típus",
"render.light_type_area": "Területi fény",
"render.light_type_point": "Pontfény",
"render.light_type_spot": "Spotfény",
"render.light_type_sun": "Nap",
"render.light_view_only": "A szóló és a némítás erre a nézetre és a belőle készült renderekre hat; soha nem mentődik a tervbe.",
"render.light_world_origin": "Világ origója",
"render.lighting_aim_point": "Célpont",
"render.lighting_apply": "Előbeállítás alkalmazása",
"render.lighting_area_samples": "Területi minták",
"render.lighting_budget": "Keret",
"render.lighting_budget_help": "A darabszámok csak olvashatók. Módosításukhoz adjon hozzá, kettőzzön vagy töröljön fényeket; a korlátokat a módszer határozza meg.",
"render.lighting_colour": "Szín",
"render.lighting_consent": "Az irányfények cseréje erre az előbeállításra",
"render.lighting_custom": "Egyéni fények",
"render.lighting_custom_help": "Az Egyéni választása az előbeállítást szerkeszthető fényekké alakítja, mindegyiket egy-egy sorként a fában.",
"render.lighting_direction": "Irány X Y Z",
"render.lighting_direction_help": "Vagy írjon be egy, a fény felé mutató irányt (X Y Z).",
"render.lighting_distance_unit": " × méret",
"render.lighting_edge_u": "U oldalvektor",
"render.lighting_edge_v": "V oldalvektor",
"render.lighting_falloff": "Csillapítás",
"render.lighting_falloff_help": "Az intenzitás a referenciatávolságra vonatkozik.",
"render.lighting_height": "V magasság",
"render.lighting_minimum": "Minimum",
"render.lighting_mute": "Fény némítása",
"render.lighting_point": "Pont",
"render.lighting_preset": "Stúdió-előbeállítás",
"render.lighting_preset_cpu": "Az irányfényes stúdió-előbeállításokhoz CPU-s sugárkövetés szükséges. A GPU-s megvilágítás kifejezett Nap- és területi fényeket használ.",
"render.lighting_preset_row": "Előbeállítás",
"render.lighting_radiance": "Sugársűrűség",
"render.lighting_reference": "Referencia",
"render.lighting_review_help": "Lecseréli az irányfények listáját. Megtartja a pont- és területi fényeket, a környezetet, az árnyékokat, a kamerát és a felvétel összes többi beállítását.",
"render.lighting_review_title": "Megvilágítási előbeállítás áttekintése",
"render.lighting_samples_cpu": "A területi fények mintái a CPU-s sugárkövetésre vonatkoznak.",
"render.lighting_samples_need_area": "A területi minták beállításához adjon hozzá egy CPU-s területi fényt.",
"render.lighting_samples_reason": "A területi minták száma 1, 4, 16 vagy 64 lehet.",
"render.lighting_shadow_cpu": "Az árnyékkapcsolóhoz CPU-s sugárkövetés szükséges. A GPU-s útkövetés mindig vet árnyékot.",
"render.lighting_shadows": "Árnyékvetés",
"render.lighting_shadows_section": "Árnyékok és mintavételezés",
"render.lighting_shape": "Alak",
"render.lighting_solo": "Szóló: csak ez a fény",
"render.lighting_source": "Forrás",
"render.lighting_source_section": "Fényforrás",
"render.lighting_spot_preserved": "Ez a pontfény megtartja a mentett spotfénykúpját, amíg a típusát meg nem változtatják.",
"render.lighting_sun_distance": "A Nap iránya független a távolságtól és a célponttól.",
"render.lighting_unsupported": "nem támogatott",
"render.lighting_used": "{used} / {limit}",
"render.lighting_width": "U szélesség",
"render.lighting_world_position": "Világ X Y Z",
"render.lights_fixed_to": "Fények rögzítve ehhez",
"render.linear_help": "32 bites lebegőpontos RGBA-mastert őriz meg a zajszűrés, az expozíció, a tónusleképezés, a szűrők és a háttér előtt. Lineáris sRGB/D65; lefedettséggel előreszorzott. A többletmemória csak kifejezett engedéllyel használható. Nincs tömörítés vagy további passz.",
"render.linear_retain": "Nyers lineáris EXR megőrzése",
"render.linear_unavailable": "A kiválasztott befejezett képkockához nincs megőrzött EXR. Renderelés előtt engedélyezze a megőrzést; egy korábbi PNG-ből a nyers sugárzás nem állítható vissza.",
"render.look_add": "Színstílus hozzáadása",
"render.look_applied": "Alkalmazva: {name}",
"render.look_bleach": "Bleach bypass ihletésű",
"render.look_cool": "Hideg",
"render.look_cyanotype": "Cianotípia ihletésű",
"render.look_faded": "Kifakult nyomat",
"render.look_material": "Anyag",
"render.look_mono": "Monokróm",
"render.look_pasted": "Stílus beillesztve",
"render.look_sepia": "Szépia",
"render.look_strength": "Stílus erőssége",
"render.look_teal_orange": "Kékeszöld / narancs",
@@ -2592,9 +2888,11 @@
"render.output_advanced": "Speciális",
"render.output_backend_ready": "Kész",
"render.output_check": "Ellenőrzés",
"render.output_check_failed": "Ellenőrzés · hiba",
"render.output_check_help": "Az Ellenőrzés futtatásával a kérés renderelés indítása nélkül átnézhető.",
"render.output_check_summary": "Ellenőrzés · Megjegyzések: {count}",
"render.output_copy": "Másolás",
"render.output_copy_report": "Jelentés másolása",
"render.output_destination": "Célhely",
"render.output_destination_help": "A kész kép exportálásakor válassza ki a célfájlt.",
"render.output_dimensions": "Méret",
@@ -2604,6 +2902,7 @@
"render.output_fit": "Illesztés",
"render.output_format": "Formátum",
"render.output_format_status": "A PNG a kész megjelenített kép pontos mása. A választható GPU-s EXR a megjelenítési szűrők előtti nyers, jelenetlineáris FLOAT32 sugárzást őrzi meg. Az exportálás sosem helyettesíti az előnézeti gyorsítótárat vagy egy másik feladatot.",
"render.output_grading": "Színkorrekció",
"render.output_image": "Kép",
"render.output_largest": "max. {width} × {height}",
"render.output_lock_ratio": "Képarány zárolása",
@@ -2613,6 +2912,8 @@
"render.output_quality_waiting": "várakozás a minőségi specifikációra",
"render.output_ratio_refused": "A kapcsolt méret meghaladja ennek a módszernek a mérethatárát. Az előző méret megmarad; oldja fel az arányt, vagy válasszon kisebb értéket.",
"render.output_ready": "Készen áll a renderelésre",
"render.output_run_check": "Ellenőrzés futtatása",
"render.output_size_limit": "{method}: oldalanként legfeljebb {dimension} px és összesen {pixels} képpont. A legnagyobb beleférő méret: {width} × {height}.",
"render.output_size_ok": "Méret rendben · {width} × {height} px",
"render.output_swap_orientation": "Szélesség és magasság felcserélése",
"render.output_tools_inspector": "A méretet és a formátumot a Kimenet panelen szerkesztheti.",
@@ -2629,6 +2930,7 @@
"render.page_output": "Kimenet",
"render.page_scene": "Jelenet",
"render.paint_label": "Festék",
"render.painting_with": "Festés ezzel: {name}",
"render.passive_stage": "Padló és passzív díszlet",
"render.passive_stage_help": "A véges méretű passzív panelek csak a renderelt képekhez tartoznak. Nem adnak hozzá CAD-testet vagy tömeget. Az elhelyezés alkalmazás után rögzített; ha metszik a termék határait, a program elutasítja. A CPU nem biztosít diffúz, közvetett megvilágítást.",
"render.perspective": "Perspektivikus kamera",
@@ -2650,6 +2952,7 @@
"render.pick_help": "Válasszon a Test, a Lap és a Komponens közül. Az üres területre kattintva a kijelölés törlődik; a Shift vagy a Ctrl hozzáad, illetve átkapcsol. A kiemelések csak az élő terméknézetben jelennek meg.",
"render.pick_label": "Kijelölés",
"render.pick_up_label": "Átvétel",
"render.pick_up_prompt": "Kattintson egy objektumra a stílusa felvételéhez",
"render.pick_waiting": "A termék kijelölése még nem támogatott.",
"render.post_contrast": "Kontraszt",
"render.post_gain_b": "Kék erősítés",
@@ -2689,13 +2992,17 @@
"render.radial_distortion": "Radiális torzítás",
"render.radial_fit": "Termék illesztése",
"render.radial_save": "Felvétel mentése",
"render.recent_looks": "Legutóbbi stílusok",
"render.regrade_action": "Nyers mesterkép újbóli színkorrekciója (zajszűrés nélkül)",
"render.regrade_help": "Külön PNG-t hoz létre a kiválasztott, kész nyers mesterképből, ezekkel a prezentációs beállításokkal. Nem számít sugarakat, nem módosítja a rögzített méretet, kamerát és fényeket, és nem írja felül az EXR-t. A zajszűrés nem kerül újra alkalmazásra: a nyers mesterképek nem őrzik meg a vezetőpuffereit. A származtatott kép ugyanazokkal a feladatvezérlőkkel exportálható.",
"render.regrade_label": "Újbóli színkorrekció",
"render.reload_settings": "Mentett beállítások újratöltése",
"render.remove_override": "Felülbírálás eltávolítása",
"render.replace_all": "Összes cseréje",
"render.replace_ground": "A meglévő díszlet cseréjének megerősítése",
"render.replace_label": "Csere",
"render.replace_saved_surface": "Az ehhez a célhoz tartozó meglévő mentett kötés cseréje",
"render.replace_with": "Csere erre",
"render.restore_camera": "Mentett kamera visszaállítása",
"render.result_actual": "100%",
"render.result_actual_help": "Egy képpont jut egy kijelzőképpontra.",
@@ -2747,14 +3054,28 @@
"render.saved_surface_remove": "Mentett kötés eltávolítása",
"render.saved_surfaces": "Mentett felületkötések",
"render.saved_surfaces_help": "A rögzített beépített térképek a kiválasztott előfordulást követik, helyi milliméterekben. A lecserélt vagy hiányzó cél hiba, soha nem automatikus újrahozzárendelés.",
"render.scene_all_shots": "Összes felvétel ({count})",
"render.scene_apply": "Áttekintett stúdió alkalmazása",
"render.scene_batch_reason": "Az Összes felvételhez a mentett felvételek renderelési sora szükséges, amely még nem érhető el.",
"render.scene_check_now": "Ellenőrzés most",
"render.scene_check_passed": "Ellenőrzés sikeres · {notes} megjegyzés",
"render.scene_check_stale": "Az ellenőrzés elavult · ellenőrizze újra",
"render.scene_check_unchecked": "Még nincs ellenőrizve · 0 megjegyzés",
"render.scene_consent": "A megvilágítás, a környezet, az expozíció és a díszlet cseréjének megerősítése",
"render.scene_light_summary": "{environment} · {lights} fény",
"render.scene_look_summary": "{looks} stílus · {overrides} felülbírálás",
"render.scene_open_check": "Ellenőrzés megnyitása",
"render.scene_preserved_fields": "A kamera, a mintavételezés, a méretek, az optikai kötések, a CAD-geometria és a mérnöki anyagok megmaradnak.",
"render.scene_preserves_design": "Megvilágítás és passzív díszlet összeállítása a látható tárgyhoz. A geometria, a mérnöki anyagok és a kamera külön marad.",
"render.scene_ready": "Készen áll a renderelésre",
"render.scene_reminder": "A Jelenet megőrzi a tervet. A Renderelésből soha nem módosul a geometria, a mérnöki tulajdonságok és a CAD-modell.",
"render.scene_reminders": "Emlékeztetők",
"render.scene_renderer_ready": "{renderer} kész",
"render.scene_replaces": "Lecseréli",
"render.scene_review": "Feloldás és áttekintés",
"render.scene_review_help": "Az alkalmazás előtt tekintse át a teljes natív kompozíciót. A nem kötött, speciális JELENET-specifikációk nem kerülnek helyettesítésre.",
"render.scene_scope_details": "A kompozíció hatóköre",
"render.scene_stages": "Szakaszok",
"render.search_appearances": "Keresés {count} megjelenés között",
"render.setup_legacy_environment": "Ez a régebbi beállítás örökölt környezetforgatást vagy -intenzitást használ. Ezek az értékek megmaradnak; teljes képfeladat mentése előtt kifejezetten alakítsa át őket.",
"render.setup_name": "Beállítás neve",
@@ -2767,7 +3088,22 @@
"render.shell_tab_camera": "RENDERELÉS: KAMERA",
"render.shell_tab_lighting": "MEGVILÁGÍTÁS",
"render.shell_tab_scene": "RENDERELÉS: JELENET",
"render.shot_aperture": "Rekesznyílás",
"render.shot_distance": "Távolság",
"render.shot_dof": "Mélységélesség",
"render.shot_duplicate": "Mentett felvétel kettőzése",
"render.shot_edit_output": "Szerkesztés a Kimenetben",
"render.shot_exposure_reason": "Az expozícióhoz CPU-s sugárkövetés vagy GPU-s útkövetés szükséges.",
"render.shot_exposure_section": "Expozíció",
"render.shot_focus_distance": "Fókusztávolság",
"render.shot_fov_reason": "A látószöghöz perspektivikus vetítés szükséges.",
"render.shot_frame_subject": "Tárgy kadrírozása",
"render.shot_invalid_camera": "A kameraértékeknek végesnek és a tartományon belülinek kell lenniük.",
"render.shot_lens": "Objektív",
"render.shot_lens_enable_reason": "A rekesznyílás és a fókusztávolság szerkesztéséhez engedélyezze a mélységélességet.",
"render.shot_lens_gpu_reason": "A mélységélességhez GPU-s útkövetés szükséges.",
"render.shot_lens_perspective_reason": "A mélységélességhez perspektivikus vetítés szükséges.",
"render.shot_look_selection": "Ránézés a kijelölésre",
"render.shot_manager": "Mentett felvételek",
"render.shot_new_name": "Új felvétel neve",
"render.shot_remove": "Mentett felvétel eltávolítása",
@@ -2775,6 +3111,9 @@
"render.shot_remove_title": "Eltávolítja a mentett felvételt?",
"render.shot_rename": "Mentett felvétel átnevezése",
"render.shot_saved_only": "Előbb mentse az aktuális tervezetet. A kettőzés és az átnevezés megőrzi a pontos mentett beállításokat és erőforrás-hivatkozásokat.",
"render.shot_selection_reason": "Jelöljön ki egy testet vagy lapot, amelyre célozni szeretne.",
"render.shot_size": "Méret",
"render.shot_target": "Cél",
"render.shots_camera_changed": "A kamera megváltozott a felvétel mentése óta",
"render.shots_name_help": "Adjon egyedi nevet az aktuális felvételnek.",
"render.shots_no_result": "Még nincs renderelés",
@@ -2997,6 +3336,13 @@
"render.wait_pick_up": "még nem támogatott: a termék kijelölése és a megjelenés mintavételezése",
"render.wait_replace": "még nem támogatott: egy megjelenés összes előfordulásának lecserélése",
"render.wait_solo": "még nem támogatott: a fényforrások láthatósága és a szólóvezérlők",
"render.wear_applies_to": "Alkalmazás erre",
"render.wear_layer_count": "{count} réteg",
"render.wear_layer_one": "{count} réteg",
"render.wear_layers": "Rétegek",
"render.wear_no_layers": "Nincsenek rétegek",
"render.wear_selected_layer": "Kijelölt réteg",
"render.wear_title": "Kopás",
"sample.bracket.about": "Alaplap peremekkel és szeggel 2 mm-es szabály szerint",
"sample.bracket.name": "Lemezkonzol",
"sample.enclosure.about": "Héjazott doboz perem, csavardudorok, támasz és pattintós illesztés",
@@ -3030,6 +3376,7 @@
"select an axis": "jelöljön ki egy tengelyt",
"select an axis, a straight or circular edge, or a cylinder, cone or torus face first": "először jelöljön ki egy tengelyt, egy egyenes vagy kör alakú élt, illetve egy henger-, kúp- vagy tóruszlapot",
"select bodies first": "először jelöljön ki testeket",
"select components first": "előbb jelöljön ki komponenseket",
"select corner points, or the two lines of one corner": "jelöljön ki sarokpontokat, vagy egy sarok két vonalát",
"select one corner point, or the two lines of one corner": "jelöljön ki egy sarokpontot, vagy egy sarok két vonalát",
"select sheet edges first": "először jelöljön ki lemezéleket",
@@ -3048,6 +3395,7 @@
"settings.double_click_components": "Kattintson duplán egy komponensre az aktiválásához, vagy egy kapcsolt komponens helyben szerkesztéséhez",
"settings.frame_rate_details_note": "Grafikont ad az utolsó képkockák idejéről, rajta a megrajzolt háromszögekkel, valamint hisztogramot a képkockaidőkről és azt, amit a GPU megrajzolt. A nézetben a képkockasebességre kattintva megjelenítheti vagy elrejtheti őket.",
"settings.frame_rate_note": "Megjeleníti a másodpercenkénti képkockaszámot a nézet jobb alsó sarkában.",
"settings.insert_lists_open_designs": "A Terv beszúrása először a más füleken megnyitott terveket listázza",
"settings.measure_axis_distances": "X/Y/Z távolságok megjelenítése",
"settings.measure_axis_distances_help": "A világtengely-összetevők méreteit is megjeleníti a teljes távolság mellett, amíg a Mérés nyitva van.",
"settings.msaa_applies_on_restart": "Az élsimítás a SolidCraft következő indításakor lép érvénybe",
@@ -3072,6 +3420,10 @@
"shortcut.unpin": "Rögzítés feloldása",
"sketch is missing": "a vázlat hiányzik",
"sketch.degrees_of_freedom": "{count} szabadságfok",
"sketch.dimension_added_driven": "A vázlat már meghatározza ezt a méretet, ezért vezérelt (referencia-) méretként lett hozzáadva",
"sketch.dimension_applied": "Méret alkalmazva",
"sketch.dimension_applied_defined": "Méret alkalmazva; a(z) `{name}` paraméter definiálva",
"sketch.dimension_applied_renamed": "Méret alkalmazva; a paraméter neve: `{name}`",
"sketch.dof_left": "{count} szabadságfok maradt",
"sketch.dof_left_one": "{count} szabadságfok maradt",
"sketch.draw_curves": "Rajzolás mint {linetype}",
@@ -3106,6 +3458,8 @@
"sketch_text.use_font_file": "A(z) {path} betűtípusfájl használata",
"solid": "szilárd test",
"status.editing": "Szerkesztés: {name}",
"status.navigation": "Egérkiosztás: {mapping}",
"status.navigation_tip": "Hogyan mozgatja az egér a nézetet. Kattintson másik kiosztás választásához",
"status.under_constrained": "Alulkényszerezett ({count} szabadságfok)",
"status.under_constrained_one": "Alulkényszerezett ({count} szabadságfok)",
"status.units_tip": "A terv egységei. Kattintson a módosításukhoz",
@@ -3139,8 +3493,10 @@
"timeline.delete_folders_tip": "Az elemek és a beágyazott mappák megmaradnak az előzményekben",
"timeline.delete_folders_with_features_tip": "A mappák törlése az összes bennük lévő elemmel és a beágyazott mappákkal együtt",
"timeline.delete_many": "{count} kijelölt elem törlése",
"timeline.edited_rolled_back": "{name} módosult, de az előzményjelölő után van, ezért nem épül fel: az eredmény megtekintéséhez vigye a jelölőt utána",
"timeline.feature_error": "Hiba: {message}",
"timeline.feature_hint": "Dupla kattintás: szerkesztés · húzás: átrendezés · jobb kattintás: továbbiak",
"timeline.feature_rolled_back": "Visszagörgetve: az előzményjelölő után van, ezért nem épül fel",
"timeline.feature_warning": "Figyelmeztetés: {message}",
"timeline.group": "Új elemmappa",
"timeline.move_many": "Idővonal-elemek áthelyezése",
@@ -3220,6 +3576,10 @@
"ui.3d_mouse_offer": "A 3D-egér kalibrálása kijavítja a felcserélt vagy megfordított tengelyeket, és beállítja a sebességét és az érzetét.",
"ui.3d_mouse_offer_never": "Ne jelenjen meg többé",
"ui.3d_mouse_offer_swap": "Váltás Hidrawra (közvetlen illesztőprogram)",
"ui.3d_mouse_orbit": "Keringés",
"ui.3d_mouse_orbit_classic": "Klasszikus",
"ui.3d_mouse_orbit_tip": "Célzott: a 3D-egér a nézetet a modell azon része körül forgatja, amely a forgatás kezdetekor a nézet közepén van; ezt egy halvány gömb jelöli. Klasszikus: a nézet középpontja körül",
"ui.3d_mouse_orbit_traced": "Célzott",
"ui.3d_mouse_reading": "Beolvasás",
"ui.3d_mouse_reset_axes": "Tengelykiosztás visszaállítása",
"ui.3d_mouse_reset_view": "Nézet alaphelyzetbe állítása",
@@ -3604,6 +3964,7 @@
"ui.constant": "Állandó",
"ui.constraints_conflict": "Kényszerek ütköznek",
"ui.construction": "Szerkesztő",
"ui.construction.ribbon_label": "Segédvonalak",
"ui.context_menu": "Helyi menü",
"ui.continuity_g0": "G0 törés",
"ui.continuity_g1": "G1 érintő",
@@ -3695,6 +4056,14 @@
"ui.end_scale": "Végi léptékezés",
"ui.entities": "Elemek",
"ui.equal": "Egyenlő",
"ui.equation_end": "Vég",
"ui.equation_explicit": "Explicit",
"ui.equation_form": "Alak",
"ui.equation_note": "A változó egyszerű szám: a sin(t) radiánban értelmezi. A mértékegység nélküli eredmény a terv mértékegységében értendő.",
"ui.equation_parametric": "Parametrikus",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Egyenértékű sugár",
"ui.expand": "Kibontás",
"ui.exportDxf": "DXF exportálása…",
@@ -3760,6 +4129,7 @@
"ui.heading_design": "TERVEZÉS",
"ui.heading_draft": "DŐLÉS",
"ui.heading_edit": "SZERKESZTÉS",
"ui.heading_equation_curve": "EGYENLETGÖRBE",
"ui.heading_extrude": "KIHÚZÁS",
"ui.heading_fillet": "LEKEREKÍTÉS",
"ui.heading_finish_editing": "SZERKESZTÉS BEFEJEZÉSE",
@@ -3851,6 +4221,10 @@
"ui.import_ellipsis": "Importálás…",
"ui.infinite": "Végtelen",
"ui.insert": "Beszúrás",
"ui.insert_design.browse": "Tallózás…",
"ui.insert_design.open_designs": "Megnyitott tervek",
"ui.insert_design.saved_file": "A(z) {name} nem mentett módosításokat tartalmaz, ezért a mentett fájlja lett beszúrva. Mentse el, majd a Kapcsolatok frissítése paranccsal hozza át a módosításokat.",
"ui.insert_design.unsaved": "Nem mentett módosítások",
"ui.inspect": "Vizsgálat",
"ui.intersect": "Metszet",
"ui.isolate": "Elkülönítés",
@@ -4000,6 +4374,18 @@
"ui.project": "Vetítés",
"ui.project_face_edges_sketch": "Lapélek vetítése új vázlatokba",
"ui.properties": "Tulajdonságok",
"ui.properties.copy_matrix": "Mátrix másolása",
"ui.properties.first_moments": "Elsőrendű nyomatékok",
"ui.properties.inertia": "Tehetetlenségi nyomaték",
"ui.properties.inertia_note": "A tömegközéppontra, világtengelyekben (g·{unit}²)",
"ui.properties.inertia_unavailable": "Nem érhető el: egy test hálója nem zárt.",
"ui.properties.inertia_x": "Ixx, Ixy, Ixz",
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Mérés…",
"ui.properties.measuring_failed": "A mérés leállt, mielőtt befejeződött volna.",
"ui.properties.principal_axis": "{number}. főtengely",
"ui.properties.principal_moments": "Fő tehetetlenségi nyomatékok",
"ui.pull_direction": "Húzási irány",
"ui.quality": "Minőség",
"ui.quantity": "Mennyiség",
@@ -4062,6 +4448,7 @@
"ui.select": "Kijelölés",
"ui.selectOther": "Más kijelölése…",
"ui.selectTangentChain": "Érintőlánc kijelölése",
"ui.select_all": "Összes kijelölése",
"ui.selection": "Kijelölés",
"ui.selection_modifiers": "Kijelölési módosítók",
"ui.selection_shift_add_only": "Shift+kattintás eltávolítás nélkül hozzáad",
@@ -4098,7 +4485,11 @@
"ui.sketch": "Vázlat",
"ui.sketch_dimension": "Vázlatméret",
"ui.sketch_grid": "Vázlatrács",
"ui.sketch_intersect_geometry": "Geometria",
"ui.sketch_intersect_projection_link": "Vetítési kapcsolat",
"ui.sketch_intersect_selection_filter": "Kijelölési szűrő",
"ui.sketch_modifiers": "Vázlatmódosítók",
"ui.sketch_project_geometry": "Geometria",
"ui.sketch_scale": "Vázlat léptéke",
"ui.sketches": "Vázlatok",
"ui.slice": "Szeletelés",
@@ -4149,6 +4540,7 @@
"ui.tab_manage": "Kezelés",
"ui.tab_sheet_metal": "Lemez",
"ui.tab_view": "Nézet",
"ui.tab_weldments": "Hegesztés",
"ui.tangent": "Érintő",
"ui.taper_angle": "Kúposodási szög",
"ui.tapped": "Menetes",
@@ -4164,6 +4556,7 @@
"ui.tip_angle": "Csúcsszög",
"ui.to_object": "Objektumig",
"ui.tool_direction": "Szerszám iránya",
"ui.toolbar_tabs_hidden": "Az eszköztár összes füle rejtett. Egy megjelenítéséhez kattintson a + gombra, vagy kattintson ide a jobb gombbal.",
"ui.top": "Felülnézet",
"ui.top_diameter": "Felső átmérő",
"ui.top_radius": "Felső sugár",
@@ -4210,6 +4603,7 @@
"ui.visual_shaded_with_edges": "Árnyalt élekkel",
"ui.visual_style": "Vizuális stílus",
"ui.visual_wireframe": "Drótváz",
"ui.wheel_zoom_speed": "Egérgörgős nagyítás sebessége",
"ui.width": "Szélesség",
"ui.window_system": "Ablakkezelő rendszer",
"ui.window_system_auto": "Automatikus",
@@ -4261,6 +4655,9 @@
"update.prefs_label": "Frissítések",
"update.prefs_note": "Ez a SolidCraft {version} ({kind}). A keresés a GitHubtól kéri a legújabb kiadást, és semmi mást nem küld.",
"update.prefs_web": "Töltse újra az oldalt a legújabb webalkalmazás megszerzéséhez. Ha a hálózat nem érhető el, vagy a frissítés időben nem tud letöltődni, a mentett verzió nyílik meg; a folyamatban lévő letöltés a következő újratöltéshez folytatódik.",
"update.refresh_checking": "A legújabb kiadás keresése…",
"update.refresh_fallback": "Nem sikerült újabb kiadást keresni; frissítés a korábban talált {version} verzióra.",
"update.refresh_selected": "Frissítés erre: {version}.",
"update.release_page": "Kiadási oldal megnyitása",
"update.restart": "Újraindítás most",
"update.restart_later": "Később",
+397
View File
@@ -204,6 +204,7 @@
"Edges": "Tepi",
"Edit": "Edit",
"Edit Profile Sketch": "Edit Sketsa Profil",
"Edit shortcuts": "Edit pintasan",
"Enable rule": "Aktifkan aturan",
"Enabled": "Aktif",
"End Radius": "Radius Akhir",
@@ -466,6 +467,7 @@
"Radius": "Radius",
"Radius Fit": "Fit Radius",
"Ratio": "Rasio",
"Read-only list: shortcuts can't be changed here.": "Daftar hanya-baca: pintasan tidak dapat diubah di sini.",
"Reattach selected face": "Pasang ulang muka terpilih",
"Recover": "Pulihkan",
"Recover unsaved design?": "Pulihkan desain yang belum disimpan?",
@@ -649,6 +651,7 @@
"Third point": "Titik ketiga",
"This child is shared. Deleting it removes it from every copy of its parent.": "Anak ini dibagikan. Menghapusnya akan menghilangkannya dari setiap salinan induknya.",
"This child is shared. Position changes apply to every copy of its parent.": "Anak ini dibagikan. Perubahan posisi berlaku untuk setiap salinan induknya.",
"This component is inside a subassembly placed more than once: aligning it moves it in every placement.": "Komponen ini berada di dalam subrakitan yang ditempatkan lebih dari sekali: menyejajarkannya akan memindahkannya di setiap penempatan.",
"This face cannot provide a durable attachment. Choose another face or explicitly use a fixed plane.": "Muka ini tidak dapat menyediakan lampiran yang tahan lama. Pilih muka lain atau gunakan bidang tetap secara eksplisit.",
"This image is not attached to GitHub yet. Copy or save it, then attach it on GitHub.": "Gambar ini belum dilampirkan ke GitHub. Salin atau simpan, lalu lampirkan di GitHub.",
"Thread depth": "Kedalaman ulir",
@@ -790,6 +793,11 @@
"cam.roller": "Rol",
"cam.roller_pick": "Rol (opsional)",
"cam.tip_pick": "Ujung (opsional)",
"camera.shot_pitch": "Pitch",
"camera.shot_roll": "Roll",
"camera.shot_yaw": "Yaw",
"canvas.decal_place_hint": "Klik sebuah muka untuk menempatkan decal",
"canvas.place_hint": "Klik sebuah bidang atau muka untuk menempatkan kanvas",
"choose a profile": "pilih profil",
"choose the cam's and the follower's joints": "pilih sambungan kam dan pengikutnya",
"choose the joints to couple": "pilih sambungan yang akan dikopel",
@@ -797,9 +805,12 @@
"click sketch curves": "klik kurva sketsa",
"cmd.appearance_assign": "Tampilan",
"cmd.appearance_chain": "Rantai Tampilan",
"cmd.appearance_copy": "Salin Tampilan",
"cmd.appearance_favorite": "Jadikan Tampilan Favorit",
"cmd.appearance_library": "Pustaka Tampilan",
"cmd.appearance_list": "Daftar Tampilan",
"cmd.appearance_paint": "Cat Tampilan",
"cmd.appearance_paste": "Tempel Tampilan",
"cmd.appearance_pick_up": "Ambil Tampilan",
"cmd.appearance_replace": "Ganti Tampilan",
"cmd.assembly_bom": "Daftar Material (BOM)",
@@ -810,6 +821,7 @@
"cmd.browser_move": "Pindahkan Item Penjelajah",
"cmd.browser_order": "Urutkan Item Penjelajah",
"cmd.browser_rename_group": "Ganti Nama Grup",
"cmd.browser_reparent": "Pindah ke Komponen",
"cmd.browser_ungroup": "Pisahkan Grup",
"cmd.browser_visibility": "Tampil/Sembunyi",
"cmd.canvas_calibrate": "Kalibrasi Kanvas",
@@ -836,7 +848,9 @@
"cmd.component_metadata": "Properti Part",
"cmd.component_metadata_set": "Ubah Properti Part",
"cmd.component_move_bodies": "Pindahkan Bodi ke Komponen",
"cmd.component_move_features": "Pindahkan Fitur ke Komponen",
"cmd.component_move_sketches": "Pindahkan Sketsa ke Komponen",
"cmd.component_paste_from_design": "Tempel dari Desain Lain",
"cmd.component_paste_new": "Tempel Baru",
"cmd.component_properties": "Properti Fisik Komponen",
"cmd.component_relink": "Tautkan Ulang Sumber",
@@ -973,6 +987,7 @@
"cmd.motion_trace": "Jejak Gerak",
"cmd.motion_trace_edit": "Edit Jejak Gerakan",
"cmd.motion_trace_keep": "Simpan Jejak Gerak",
"cmd.occurrence_align": "Sejajarkan Kemunculan",
"cmd.occurrence_copy": "Tempel (Instans)",
"cmd.occurrence_drag": "Seret Kemunculan",
"cmd.occurrence_ground": "Ground",
@@ -1030,11 +1045,17 @@
"cmd.render_library_surface_unbind": "Hapus Binding Permukaan",
"cmd.render_library_targets": "Cari Target Pustaka Render",
"cmd.render_lights_add": "Tambah Lampu",
"cmd.render_lights_duplicate": "Duplikasi Lampu Render",
"cmd.render_lights_list": "Daftar Lampu Render",
"cmd.render_lights_mute": "Bisukan Lampu",
"cmd.render_lights_remove": "Hapus Lampu Render",
"cmd.render_lights_set": "Atur Lampu Render",
"cmd.render_lights_solo": "Lampu Solo",
"cmd.render_optics_bind": "Simpan Binding Optik",
"cmd.render_optics_unbind": "Hapus Binding Optik",
"cmd.render_output_size": "Atur Ukuran Keluaran Render",
"cmd.render_preflight": "Periksa Permintaan Render",
"cmd.render_preflight_copy": "Salin Laporan Pemeriksaan Render",
"cmd.render_preset_apply": "Terapkan Studio Native",
"cmd.render_preset_resolve": "Tinjau Studio Native",
"cmd.render_quality_prepare": "Tinjau Anggaran Sampling Tetap",
@@ -1057,6 +1078,13 @@
"cmd.render_start": "Render Gambar",
"cmd.render_status": "Progres Render",
"cmd.select_clear": "Hapus Pilihan",
"cmd.settings_profile_apply": "Terapkan Profil Pengaturan",
"cmd.settings_profile_delete": "Hapus Profil Pengaturan",
"cmd.settings_profile_export": "Ekspor Profil Pengaturan",
"cmd.settings_profile_import": "Impor Profil Pengaturan",
"cmd.settings_profile_list": "Profil Pengaturan",
"cmd.settings_profile_rename": "Ganti Nama Profil Pengaturan",
"cmd.settings_profile_save": "Simpan Profil Pengaturan",
"cmd.sheet_convert": "Konversi ke Pelat Logam",
"cmd.sheet_export_bend_table": "Ekspor Tabel Tekukan",
"cmd.sheet_export_dxf": "Ekspor Pola Datar sebagai DXF",
@@ -1070,6 +1098,16 @@
"cmd.sheet_refold": "Lipat Ulang",
"cmd.sheet_rules": "Daftar Aturan Pelat Logam",
"cmd.sheet_unfold": "Buka Lipatan",
"cmd.sketch.construction_line": "Garis bantu",
"cmd.sketch.construction_line.angle": "Garis bantu bersudut",
"cmd.sketch.construction_line.bisector": "Garis bagi sudut",
"cmd.sketch.construction_line.horizontal": "Garis bantu horizontal",
"cmd.sketch.construction_line.parallel": "Garis bantu sejajar",
"cmd.sketch.construction_line.perpendicular": "Garis bantu tegak lurus",
"cmd.sketch.construction_line.tangent_at": "Garis singgung pada titik kurva",
"cmd.sketch.construction_line.tangent_external": "Garis singgung melalui titik luar",
"cmd.sketch.construction_line.tangent_two": "Garis singgung persekutuan",
"cmd.sketch.construction_line.vertical": "Garis bantu vertikal",
"cmd.sketch_arc3d": "Busur 3D",
"cmd.sketch_arc_center_point": "Busur Titik Pusat",
"cmd.sketch_arc_tangent": "Busur Tangen",
@@ -1102,6 +1140,8 @@
"cmd.sketch_drawing_bounds": "Ukuran Gambar",
"cmd.sketch_edit": "Edit Sketsa",
"cmd.sketch_edit_text": "Edit Teks",
"cmd.sketch_equation_curve": "Kurva Persamaan",
"cmd.sketch_equation_curve_edit": "Edit Kurva Persamaan",
"cmd.sketch_export_dxf": "Simpan Sebagai DXF",
"cmd.sketch_finish_auto_constrain": "Selesai dengan AutoConstrain",
"cmd.sketch_fit_curves_to_section": "Fit Kurva ke Penampang Mesh",
@@ -1198,6 +1238,7 @@
"cmd.view.render_browser": "Penjelajah Render",
"cmd.view.render_dock": "Pindah Dok Render",
"cmd.view.render_focus": "Tampilan Fokus Render",
"cmd.view.status_items": "Item Status Viewport",
"cmd.view_ambient_occlusion": "Ambient Occlusion",
"cmd.view_angle_readout": "Sudut Tampilan",
"cmd.view_apply": "Pulihkan Tampilan Bernama",
@@ -1219,6 +1260,7 @@
"cmd.view_normal_to": "Tegak Lurus Pilihan",
"cmd.view_previous_tab": "Tab Sebelumnya",
"cmd.view_rename": "Ganti Nama Tampilan Bernama",
"cmd.view_render_frame": "Pemandu Bingkai Render",
"cmd.view_right": "Tampilan Kanan",
"cmd.view_save": "Tampilan Bernama Baru",
"cmd.view_shots_strip": "Strip Bidikan",
@@ -1229,10 +1271,14 @@
"color.copy": "Klik untuk menyalin nilai warna",
"color.edit": "Klik untuk mengedit warna",
"color.gamma": "Menampilkan nilai warna dalam ruang gamma 0-255",
"color.hex": "Hex",
"color.hex_help": "Masukkan #rrggbb atau #rrggbbaa; enam digit mempertahankan opasitas",
"color.hex_hint": "#rrggbb",
"color.hue": "Rona",
"color.linear": "Menampilkan nilai warna dalam ruang linear 0-1",
"color.saturation_value": "Saturasi dan nilai",
"color.selected": "Warna terpilih",
"config.column_filter_empty": "Tidak ada kolom yang cocok",
"contact.components_count": "{count} komponen",
"contact.enabled_label": "aktif",
"coupling.gear_1": "Roda Gigi 1",
@@ -1346,8 +1392,10 @@
"help.material.assign": "Menetapkan bahan pembuat bodi terpilih, seperti baja, aluminium, atau ABS. Gunakan agar massa dan bobot sesuai dengan part sebenarnya.",
"help.mit": "Lisensi MIT",
"help.notice": "NOTICE",
"help.occurrence.move": "Memindahkan part rakitan hanya sepanjang kebebasan yang diizinkan oleh sambungannya. Pilih sebuah muka part, lalu seret panah atau busur yang tersedia.",
"help.parameters.change": "Membuka tabel nilai dan ekspresi bernama yang menggerakkan dimensi desain. Gunakan untuk mengubah ukuran di satu tempat dan membuat semua fitur yang memakainya mengikuti.",
"help.pointcloud.insert": "Sisipkan hasil pindai PLY, XYZ, atau PTS sebagai awan titik di samping model. Gunakan sebagai referensi saat membangun model dari data hasil pengukuran.",
"help.sketch.equation_curve": "Menggambar kurva dari rumus: x(t) dan y(t), atau y = f(x), pada suatu rentang. Rumusnya dapat memakai parameter dan kurva mengikutinya: gunakan untuk gelombang sinus, spiral, atau involut gigi roda gigi.",
"help.solid.align": "Memindahkan bodi terpilih sehingga titik, muka, atau bidang padanya bertemu titik, muka, atau bidang di tempat lain. Gunakan untuk menempatkan part pada part lain tanpa mengukur offset.",
"help.solid.chamfer": "Memotong tepi terpilih dengan bevel datar sejauh jarak yang Anda atur. Gunakan untuk menumpulkan tepi tajam atau mempermudah masuknya pin atau sekrup.",
"help.solid.combine": "Menggabungkan bodi, memotongnya dari bodi target, atau hanya menyimpan volume yang dimiliki bersama, dan dapat mempertahankan bodi alat. Gunakan untuk menyatukan part, memotong satu bentuk dengan bentuk lain, atau menemukan tempat dua bodi bertumpang tindih.",
@@ -1474,6 +1522,21 @@
"joint.one_component": "Part ini adalah bodi dari satu komponen: {bodies}. Sambungan menggerakkan satu komponen terhadap komponen lain, jadi setiap part memerlukan komponennya sendiri.",
"joint.rigid_group_one_component": "Semua {count} bodi ini berada dalam satu komponen (atau di desain itu sendiri): gunakan {command} terlebih dahulu.",
"joint.rigid_group_select_components": "Pilih dua komponen atau lebih.",
"joint_move.blocked_hint": "Periksa tipe sambungan (misalnya Kaku), status ground, batas sambungan, dan nilai yang digerakkan parameter.",
"joint_move.blocked_title": "Tidak dapat memindahkan part ini",
"joint_move.coarse": "Langkah rotasi dekat sumbu (°)",
"joint_move.distance": "Jarak dari awal",
"joint_move.done": "Selesai",
"joint_move.fine": "Langkah rotasi jauh dari sumbu (°)",
"joint_move.fixed": "Part ini tidak memiliki sumbu sambungan yang dapat digerakkan.",
"joint_move.help": "Pindah — seret panah atau cincin. Esc membatalkan seretan saat ini.",
"joint_move.legacy_hint": "Matikan untuk memakai panel Pindah sebelumnya.",
"joint_move.precision": "Tarik ke luar pemandu garis putus-putus untuk rotasi halus.",
"joint_move.rotation": "Rotasi dari awal",
"joint_move.select": "Pilih sebuah muka atau satu part rakitan, lalu pilih Pindah.",
"joint_move.settings": "Pindah di Rakitan",
"joint_move.step": "Langkah",
"joint_move.use_handles": "Gunakan handle gerak sambungan untuk Pindah di rakitan",
"keymap.command_id": "ID Perintah",
"keymap.empty": "Tidak ada perintah yang cocok",
"keymap.use_anyway": "Tetap gunakan {key} di sini",
@@ -1568,6 +1631,8 @@
"nav.maya.help": "Alt+seret kiri mengorbit, Alt+tengah menggeser, Alt+kanan memperbesar/memperkecil; seret tengah juga menggeser",
"nav.openscad.help": "Seret kiri di ruang kosong memutar orbit, Shift+seret kiri memilih dengan kotak, seret geometri sketsa mengeditnya; seret kanan atau tombol tengah menggeser, Shift+seret kanan atau Shift+seret tombol tengah memperbesar/memperkecil",
"nav.perspective.sketch": "Pengeditan sketsa memakai tampilan ortografis. Selesaikan sketsa untuk beralih ke perspektif.",
"nav.right_drag_orbits.help": "Mati: seret kanan tidak menggerakkan kamera dan tombol kanan hanya membuka menu konteks. Memilih pemetaan mouse SolidWorks akan mematikannya.",
"nav.right_drag_orbits.label": "Seret kanan untuk orbit",
"nav.solidworks.help": "Seret tombol tengah memutar orbit, Ctrl+tombol tengah menggeser, Shift+tombol tengah memperbesar/memperkecil, seret kanan memutar orbit",
"nav.tinkercad.help": "Seret kanan memutar orbit, seret tombol tengah atau Shift+kanan menggeser",
"nav.touchpad.help": "Tahan Shift dan gerakkan penunjuk untuk pan; tahan Alt/Option dan gerakkan untuk orbit. Tidak perlu tombol mouse. Gulir vertikal untuk zoom.",
@@ -1589,6 +1654,9 @@
"navbar.custom.customise": "Kustomisasi bilah navigasi…",
"navbar.custom.design": "Desain",
"navbar.custom.duplicate": "Slot ini sudah ada di bilah.",
"navbar.custom.edge": "Tepi",
"navbar.custom.edge_bottom": "Bawah",
"navbar.custom.edge_top": "Atas",
"navbar.custom.fade": "Pudar",
"navbar.custom.full": "Hapus satu slot untuk menambah yang lain.",
"navbar.custom.hidden_design": "Disembunyikan di Desain",
@@ -1695,6 +1763,7 @@
"parts.dimension.thickness": "Ketebalan",
"parts.dimension.width": "Lebar",
"parts.family.bearing": "Bearing bola alur dalam (selubung)",
"parts.family.button_head_cap_screw": "Sekrup kepala bulat (button head)",
"parts.family.dowel_pin": "Pin paralel (dowel)",
"parts.family.hex_bolt": "Baut / sekrup kepala segi enam",
"parts.family.hex_nut": "Mur segi enam",
@@ -1751,6 +1820,9 @@
"prefs.bottom_centre": "Tengah bawah",
"prefs.bottom_right": "Kanan bawah",
"prefs.browser": "Penjelajah",
"prefs.browser_reveal_on_hover": "Tampilkan saat disorot",
"prefs.browser_show_note": "Ditampilkan menjaga penjelajah tetap di layar. Tampilkan saat disorot menyembunyikannya sampai penunjuk berada di atas tempatnya atau di atas tab tipis di tepi kirinya, dan penjelajah tetap terbuka selama penunjuk ada di dalamnya atau ada menu darinya yang terbuka.",
"prefs.browser_shown": "Ditampilkan",
"prefs.built_in": "Bawaan",
"prefs.button_left": "Seret kiri",
"prefs.button_middle": "Seret tengah",
@@ -1821,6 +1893,8 @@
"prefs.layout_note": "Ringkas menempelkan panel ke tepi jendela. Translusensi penjelajah tersedia di Mengambang. Ubah sisi Asisten di halaman Asisten.",
"prefs.left": "Kiri",
"prefs.left_click": "Klik kiri",
"prefs.line_drag_draws_one": "Tekan dan seret menggambar satu garis",
"prefs.line_drag_draws_one_note": "Di alat Garis, menekan, menyeret, lalu melepas menggambar satu garis dari titik tekan hingga titik lepas, dan garis berakhir di sana. Klik tetap menggambar rantai. Mati: seretan menaruh titik di tempat dilepas, seperti klik.",
"prefs.linked_designs": "Desain tertaut",
"prefs.live_input": "Input langsung",
"prefs.live_preview": "Pratinjau langsung",
@@ -1853,14 +1927,36 @@
"prefs.origin_plane_names": "Nama bidang origin",
"prefs.origin_plane_names_note": "Nama yang ditampilkan di penjelajah, dialog, dan daftar. {top} adalah XY, {front} adalah XZ, dan {right} adalah YZ, dengan Z ke atas. Perintah, skrip, dan desain tersimpan tetap memakai XY, XZ, dan YZ.",
"prefs.overall_speed": "Kecepatan keseluruhan",
"prefs.perspective_fov": "Bidang pandang",
"prefs.placement": "Penempatan",
"prefs.prefer_free_sketch_points": "Utamakan titik sketsa yang dapat digerakkan saat titik saling tumpang tindih",
"prefs.preview_choices": "Pratinjau pilihan Anda",
"prefs.profile_active": "Profil aktif",
"prefs.profile_applied": "Profil diterapkan.",
"prefs.profile_changed": "Pengaturan berubah sejak profil disimpan. Simpan akan menyimpannya ke profil.",
"prefs.profile_deleted": "Profil dihapus.",
"prefs.profile_export": "Ekspor…",
"prefs.profile_exported": "Profil diekspor.",
"prefs.profile_imported": "Profil diimpor. Pilih di Profil aktif untuk beralih ke profil itu.",
"prefs.profile_name_hint": "Nama profil, mis. Laptop",
"prefs.profile_rename": "Ganti nama",
"prefs.profile_renamed": "Nama profil diganti.",
"prefs.profile_save": "Simpan",
"prefs.profile_saved": "Pengaturan saat ini disimpan ke profil.",
"prefs.profile_skipped": "Profil diterapkan; {n} pengaturan mempertahankan nilainya saat ini (lihat log).",
"prefs.profiles": "Profil pengaturan",
"prefs.profiles_note": "Pintasan, toolbar, navigasi, menu radial, dan pengaturan antarmuka, disimpan bersama di bawah satu nama dan diganti sekaligus.",
"prefs.project_options_dialog": "Dialog opsi Proyeksi",
"prefs.project_options_dialog_note": "Aktif: pilih Geometri atau Bodi dan Tautan Proyeksi sebelum memproyeksikan. Mati: pertahankan alur kerja pilih-langsung sebelumnya.",
"prefs.quality_default": "default",
"prefs.quality_fastest": "tercepat",
"prefs.quality_slowest": "paling lambat",
"prefs.quality_smoother": "lebih halus",
"prefs.render_previous_geometry_budget": "Gunakan anggaran geometri pratinjau Render sebelumnya",
"prefs.render_previous_geometry_budget_help": "Pulihkan batas geometri tetap sebelumnya (512 MiB di desktop 64-bit, 128 MiB di tempat lain) alih-alih anggaran berbasis perangkat.",
"prefs.reports_saved": "{n} tersimpan",
"prefs.ribbon_reveal": "Tampilkan hasil pencarian di ribbon",
"prefs.ribbon_reveal_note": "Mengarahkan kursor ke hasil di Cari perintah menunjukkan letak perintah itu di ribbon: tab-nya, tombolnya, atau barisnya di dropdown panel. Perintah yang dimulai dari pencarian berkedip di sana, dan perintah yang berjalan dari dropdown menandai panelnya.",
"prefs.right_click": "Klik kanan",
"prefs.saving": "Simpan otomatis dan pemulihan",
"prefs.scale_note": "Juga Ctrl + / Ctrl − di jendela. Tombol berukuran 28 px pada 100%.",
@@ -1874,6 +1970,10 @@
"prefs.shift_add_ctrl_toggle": "Shift hanya menambah; Ctrl / Cmd mengalihkan",
"prefs.shift_add_note": "Aktif: Shift menambah, Ctrl / Cmd mengalihkan. Nonaktif (default): keduanya mengalihkan.",
"prefs.shortcuts": "Pintasan",
"prefs.single_surface_analysis": "Gunakan satu analisis permukaan",
"prefs.single_surface_analysis_help": "Saat mati, shading permukaan dan Kontinuitas dapat tetap aktif bersamaan. Mengaktifkan ini mempertahankan analisis terakhir yang dimulai atau diubah.",
"prefs.sketch_align_points": "Sejajarkan dengan titik sketsa lain saat menggambar",
"prefs.sketch_align_points_note": "Saat menggambar, sebuah titik sejajar secara horizontal dengan satu titik sketsa dan secara vertikal dengan titik lain sekaligus, dengan pemandu titik-titik, dan klik mempertahankan kedua perataan itu. Mati: hanya dengan titik sebelumnya, satu sumbu setiap kali.",
"prefs.sketch_conflict_colour": "Geometri yang konflik dengan warna konflik",
"prefs.sketch_conflict_colour_note": "Saat batasan sketsa saling konflik, kurva dan titik yang ditahan oleh batasan yang gagal juga digambar dengan warna konflik, bukan hanya glif atau dimensinya. Mati: warnanya tetap seperti biasa.",
"prefs.sketch_exit_view": "Saat sketsa selesai",
@@ -1881,6 +1981,8 @@
"prefs.sketch_exit_view.previous": "Kembali ke tampilan sebelumnya",
"prefs.sketch_exit_view.unless_rotated": "Kembali kecuali diputar",
"prefs.sketch_exit_view_note": "Ke mana tampilan beralih setelah Selesai Sketsa, Batal, atau Esc dua kali.",
"prefs.sketch_recent_snap": "Snap otomatis ke pusat dan titik tengah terbaru",
"prefs.sketch_recent_snap_note": "Saat menggambar, kursor melakukan snap ke titik persilangan pemandu dari dua pusat lingkaran atau titik tengah tepi lurus terbaru. Mati: pemandu tersebut hanya bersifat visual dan kursor tidak bergerak.",
"prefs.sketch_selection": "Sketsa & pilihan",
"prefs.sketch_selection_heading": "Sketsa dan pilihan",
"prefs.sketch_selection_note": "Cara sketsa melakukan snap dan cara klik memilih.",
@@ -1918,7 +2020,14 @@
"prefs.toast_place": "Pemberitahuan",
"prefs.toggle_item": "Tambahkan item, atau keluarkan lagi",
"prefs.toolbar": "Toolbar",
"prefs.toolbar_tabs": "Tab toolbar",
"prefs.top": "Atas",
"prefs.trackpad_zoom_modifier": "Zoom dengan gulir dua jari sambil menahan",
"prefs.trackpad_zoom_modifier.alt": "⌥ / Alt",
"prefs.trackpad_zoom_modifier.cmd": "⌘",
"prefs.trackpad_zoom_modifier.ctrl": "Ctrl",
"prefs.trackpad_zoom_modifier.help": "Tahan hanya tombol ini untuk zoom di penunjuk dengan gulir vertikal. Mati mempertahankan perilaku gulir yang ada.",
"prefs.trackpad_zoom_modifier.off": "Mati",
"prefs.translucent": "Tembus pandang",
"prefs.under_browser": "Di bawah penjelajah",
"prefs.under_cursor": "Di bawah kursor",
@@ -1928,9 +2037,14 @@
"prefs.view_confirm_corner": "OK dan Batal di sudut tampilan",
"prefs.view_confirm_corner_note": "Saat dialog atau sketsa terbuka, tanda centang dan tanda silang di kanan atas tampilan melakukan hal yang sama seperti OK dan Batal pada dialog, atau menyelesaikan dan membatalkan sketsa. Navigator tampilan bergeser ke bawahnya.",
"prefs.viewport": "Viewport",
"prefs.viewport_background": "Latar belakang",
"prefs.viewport_background_colour": "Warna",
"prefs.viewport_background_theme": "Gradasi tema",
"prefs.wheel": "Roda",
"prefs.wheel_trackpad": "Roda dan trackpad",
"prefs.workspace": "Workspace",
"prefs.zoom_stop_at_model": "Hentikan zoom di model",
"prefs.zoom_stop_at_model_tip": "Mouse 3D dan aplikasi perangkat melakukan zoom ke arah permukaan di tengah tampilan; zoom seret menahan titik tempat seretan dimulai. Mati: zoom dapat menembus model. Roda dan cubit memakai Zoom ke kursor secara terpisah",
"prefs.zoom_toward_cursor": "Zoom, ke arah kursor",
"properties.title": "Properti: {name}",
"recovery.days_ago": "{count} hari lalu",
@@ -2019,6 +2133,7 @@
"render.appearance_editor.weight": "Bobot",
"render.appearance_physics_separate": "Tampilan visual tidak menetapkan massa jenis, data termal, atau properti rekayasa lainnya.",
"render.appearances": "Tampilan",
"render.assign_help": "Klik untuk menerapkan ke pilihan; seret untuk pratinjau lalu lepaskan, atau klik tanpa ada yang dipilih untuk mengecat.",
"render.availability_native": "Komposisi native; tinjau sebelum diterapkan",
"render.availability_projection": "Proyeksi yang didukung; lihat cakupan dan bagian yang dihilangkan",
"render.availability_reference": "Data referensi; bukan penetapan otomatis",
@@ -2057,6 +2172,7 @@
"render.bloom_threshold": "Ambang sorotan linear",
"render.browse_capabilities": "Periksa katalog kemampuan lengkap",
"render.browse_environments": "Jelajahi lingkungan HDR orisinal",
"render.browse_looks": "Jelajahi…",
"render.browse_native_scenes": "Jelajahi studio native",
"render.browse_physical": "Periksa referensi fisik",
"render.browse_quality": "Periksa spesifikasi kualitas",
@@ -2080,6 +2196,82 @@
"render.check_opaque": "Transparansi: hanya permukaan opak; alfa latar belakang didukung.",
"render.check_sorted_alpha": "Transparansi: perkiraan alfa terurut.",
"render.check_transmission": "Transparansi: transmisi fisik.",
"render.children.absolute_floor": "Batas bawah absolut",
"render.children.adaptive": "Adaptif",
"render.children.add_look_reason": "Tambahkan look untuk mengedit status aktif dan kekuatannya.",
"render.children.all_shots": "Semua bidikan",
"render.children.bloom": "Bloom",
"render.children.check": "Periksa",
"render.children.check_now": "Periksa sekarang",
"render.children.chromatic": "Kromatik",
"render.children.compact": "Ringkas",
"render.children.contrast": "Kontras",
"render.children.copy_image": "Salin",
"render.children.copy_job": "Salin JSON tugas",
"render.children.copy_request": "Salin JSON permintaan",
"render.children.coverage_error": "Galat cakupan",
"render.children.cpu": "Ray tracing CPU",
"render.children.denoise": "Kurangi noise pada gambar jadi",
"render.children.depth": "Kedalaman jalur",
"render.children.distortion": "Distorsi",
"render.children.edge_samples": "Sampel tepi",
"render.children.effects_banner": "Efek ini memerlukan path tracing GPU. Membuka bagian ini tidak pernah mengubah metode.",
"render.children.enable_adaptive": "Aktifkan pilot independen untuk mengedit batas adaptif.",
"render.children.enable_bloom": "Aktifkan bloom untuk mengedit kekuatan, ambang, dan radiusnya.",
"render.children.finishing": "Finishing",
"render.children.flare": "Flare",
"render.children.fresnel": "Strata Fresnel",
"render.children.ghosts": "Cincin ghost",
"render.children.glass": "Transport kaca",
"render.children.go_to": "Buka {editor}",
"render.children.grain": "Grain",
"render.children.halo": "Halo",
"render.children.hdr": "HDR",
"render.children.keep_master": "Simpan master linear mentah",
"render.children.last_result": "Terakhir: {number} · {width} × {height} · {phase}",
"render.children.lens_effects": "Efek lensa",
"render.children.look_summary": "{tone} · {count} look",
"render.children.looks": "Look kreatif",
"render.children.memory": "Memori",
"render.children.method": "Metode",
"render.children.minimum": "Minimum",
"render.children.needs_cpu": "Memerlukan ray tracing CPU. Membuka bagian ini tidak pernah mengubah metode.",
"render.children.nested": "Dielektrik bersarang tersertifikasi",
"render.children.not_checked": "Belum diperiksa",
"render.children.path": "Path tracing",
"render.children.pilots": "Sampel pilot",
"render.children.preview": "Payload pratinjau",
"render.children.progressive_reason": "Pilih Progresif untuk mengedit jumlah sampel dan seed-nya.",
"render.children.radius": "Radius",
"render.children.reflect_depth": "Kedalaman pantulan",
"render.children.reflect_samples": "Sampel pantulan",
"render.children.regrade": "Koreksi warna ulang",
"render.children.relative_error": "Galat relatif",
"render.children.render": "Render",
"render.children.render_shot": "Render bidikan",
"render.children.renderer": "Renderer",
"render.children.renderers": "Renderer",
"render.children.request": "Permintaan ini",
"render.children.reset_finishing": "Atur ulang finishing",
"render.children.review_quality": "Tinjau spesifikasi kualitas…",
"render.children.rgb_gain": "Gain RGB",
"render.children.samples": "Sampel",
"render.children.sampling": "Sampling",
"render.children.saturation": "Saturasi",
"render.children.scene_summary": "{bodies} bodi · {triangles} segitiga",
"render.children.seed": "Seed",
"render.children.sharpening": "Penajaman",
"render.children.single_image": "Gambar tunggal",
"render.children.soft_focus": "Fokus lembut",
"render.children.streak": "Streak",
"render.children.strength": "Kekuatan",
"render.children.studio": "Studio",
"render.children.threshold": "Ambang",
"render.children.tone": "Tone",
"render.children.under_hood": "Di balik layar",
"render.children.vignette": "Vinyet",
"render.children.workstation": "Workstation",
"render.choose_look": "Pilih look di Tampilan terlebih dahulu",
"render.chromatic_offset": "Offset tepi kromatik",
"render.clear_stage": "Hapus panggung tersimpan",
"render.copy_request": "Salin JSON",
@@ -2331,8 +2523,33 @@
"render.flare_strength": "Kekuatan flare sorotan",
"render.flare_threshold": "Ambang flare linear-adegan",
"render.fold_browser": "Lipat Penjelajah",
"render.frame_aspect": "Aspek",
"render.frame_centre_mark": "Tanda pusat",
"render.frame_copy_limit": "Tidak ada nama bidikan duplikat yang tersedia",
"render.frame_copy_name": "{name} salinan {number}",
"render.frame_custom": "Kustom",
"render.frame_distance_unit": " × ukuran",
"render.frame_duplicate": "Duplikasi",
"render.frame_exposure": "Eksposur",
"render.frame_fov": "Bidang pandang",
"render.frame_guides": "Pemandu",
"render.frame_invalid_aspect": "Preset aspek tidak valid",
"render.frame_lens": "FOV {fov}° · ≈ {mm} mm",
"render.frame_name": "Nama",
"render.frame_output_size": "Ukuran keluaran",
"render.frame_photo": "3:2 · Foto",
"render.frame_portrait": "4:5 · Potret",
"render.frame_presets": "Preset frame",
"render.frame_presets_pending": "Hadir bersama editor Bidikan",
"render.frame_projection": "Proyeksi",
"render.frame_render_shot": "Render bidikan ini",
"render.frame_rule_thirds": "Aturan sepertiga",
"render.frame_safe_area": "Area aman",
"render.frame_shot_title": "Bidikan · {name}",
"render.frame_square": "1:1 · Persegi",
"render.frame_tall": "9:16 · Vertikal",
"render.frame_thirds": "Sepertiga",
"render.frame_wide": "16:9 · Layar lebar",
"render.gpu_depth": "Kedalaman jalur maksimum",
"render.gpu_options_help": "Sampel, kedalaman, seed, dan eksposur disimpan bersama setup ini. Hanya metode gambar yang aktif yang disimpan.",
"render.gpu_path_failed": "GPU path tracer tidak tersedia",
@@ -2360,6 +2577,7 @@
"render.heading_results": "HASIL",
"render.heading_shots": "BIDIKAN",
"render.hide_shots_label": "Sembunyikan strip Bidikan",
"render.hover_look": "{object} · {look} · klik untuk memilih",
"render.image_advanced": "Kontrol GPU lanjutan",
"render.image_cancelled": "Render dibatalkan",
"render.image_cancelling": "Membatalkan",
@@ -2506,17 +2724,95 @@
"render.library_uniform_ack": "Gunakan aproksimasi seragam tanpa efek spasial atau lanjutan",
"render.library_usable": "Proyeksi yang dapat dieksekusi",
"render.library_users": "Dipakai oleh",
"render.light_aim": "Arahkan ke",
"render.light_anchor_pending": "Mengubah kerangka koordinat lampu belum didukung.",
"render.light_azimuth": "Azimut",
"render.light_backend_limit": "Pilih ray tracing CPU atau studio GPU eksplisit untuk mengedit lampu. Lampu studio GPU lama tetap hanya-baca.",
"render.light_behaviour": "PERILAKU",
"render.light_default_fill": "Fill",
"render.light_default_key": "Key",
"render.light_default_number": "Lampu {number}",
"render.light_default_rim": "Rim",
"render.light_delete": "Hapus",
"render.light_distance": "Jarak",
"render.light_duplicate": "Duplikasi",
"render.light_elevation": "Elevasi",
"render.light_gpu_punctual": "Lampu Titik dan Spot tersedia dengan ray tracing CPU.",
"render.light_hard_shadow": "Lampu ini memiliki bayangan tajam; kelembutan emitter tidak tersedia.",
"render.light_intensity": "Intensitas",
"render.light_missing": "Lampu ini sudah tidak ada. Pilih lampu di Penjelajah.",
"render.light_place_highlight": "Tempatkan menurut sorotan",
"render.light_place_pending": "Penempatan menurut sorotan memerlukan pemilihan lampu di viewport dan belum didukung.",
"render.light_position": "POSISI",
"render.light_preview_help": "Tampilan langsung tanpa bayangan; lampu Area memakai perkiraan sampel pusat. Render memakai model cahaya yang lengkap.",
"render.light_product_centre": "Pusat produk",
"render.light_size": "Ukuran",
"render.light_softness": "Kelembutan",
"render.light_temperature": "Suhu warna",
"render.light_temperature_help": "Perkiraan rona benda hitam; disimpan sebagai RGB linear.",
"render.light_type": "Tipe",
"render.light_type_area": "Area",
"render.light_type_point": "Titik",
"render.light_type_spot": "Spot",
"render.light_type_sun": "Matahari",
"render.light_view_only": "Solo dan bisu memengaruhi tampilan ini dan render-nya; keduanya tidak pernah disimpan dalam desain.",
"render.light_world_origin": "Origin dunia",
"render.lighting_aim_point": "Titik bidik",
"render.lighting_apply": "Terapkan preset",
"render.lighting_area_samples": "Sampel area",
"render.lighting_budget": "Anggaran",
"render.lighting_budget_help": "Jumlahnya hanya-baca. Tambah, duplikasi, atau hapus lampu untuk mengubahnya; metode menentukan batasnya.",
"render.lighting_colour": "Warna",
"render.lighting_consent": "Ganti lampu arah dengan preset ini",
"render.lighting_custom": "Lampu kustom",
"render.lighting_custom_help": "Memilih Kustom mengubah preset menjadi lampu yang dapat diedit, masing-masing satu baris di pohon.",
"render.lighting_direction": "Arah X Y Z",
"render.lighting_direction_help": "Atau ketik arah menuju lampu (X Y Z).",
"render.lighting_distance_unit": " × ukuran",
"render.lighting_edge_u": "Vektor sisi U",
"render.lighting_edge_v": "Vektor sisi V",
"render.lighting_falloff": "Atenuasi",
"render.lighting_falloff_help": "Intensitas dinyatakan pada jarak referensi.",
"render.lighting_height": "Tinggi V",
"render.lighting_minimum": "Minimum",
"render.lighting_mute": "Bisukan lampu ini",
"render.lighting_point": "Titik",
"render.lighting_preset": "Preset studio",
"render.lighting_preset_cpu": "Preset studio arah memerlukan ray tracing CPU. Pencahayaan GPU memakai lampu Matahari dan Area yang eksplisit.",
"render.lighting_preset_row": "Preset",
"render.lighting_radiance": "Radiance",
"render.lighting_reference": "Referensi",
"render.lighting_review_help": "Mengganti daftar lampu arah. Mempertahankan lampu titik dan area, lingkungan, bayangan, kamera, dan semua pengaturan bidikan lainnya.",
"render.lighting_review_title": "Tinjau preset pencahayaan",
"render.lighting_samples_cpu": "Sampel lampu area berlaku untuk ray tracing CPU.",
"render.lighting_samples_need_area": "Tambahkan lampu area CPU untuk mengatur sampel area.",
"render.lighting_samples_reason": "Sampel area harus 1, 4, 16 atau 64.",
"render.lighting_shadow_cpu": "Sakelar bayangan memerlukan ray tracing CPU. Path tracing GPU selalu menghasilkan bayangan.",
"render.lighting_shadows": "Buat bayangan",
"render.lighting_shadows_section": "Bayangan dan sampling",
"render.lighting_shape": "Bentuk",
"render.lighting_solo": "Jadikan lampu ini solo",
"render.lighting_source": "Sumber",
"render.lighting_source_section": "Sumber cahaya",
"render.lighting_spot_preserved": "Lampu titik ini mempertahankan kerucut spot tersimpannya sampai tipenya diubah.",
"render.lighting_sun_distance": "Arah matahari tidak bergantung pada jarak dan titik bidik.",
"render.lighting_unsupported": "tidak didukung",
"render.lighting_used": "{used} dari {limit}",
"render.lighting_width": "Lebar U",
"render.lighting_world_position": "Dunia X Y Z",
"render.lights_fixed_to": "Lampu tetap pada",
"render.linear_help": "Mempertahankan master RGBA float 32-bit sebelum denoising, eksposur, tone mapping, filter, dan latar belakang. sRGB linear/D65; premultiplied terhadap cakupan. Memori tambahan diterima secara eksplisit. Tanpa kompresi atau pass tambahan.",
"render.linear_retain": "Simpan EXR linear mentah",
"render.linear_unavailable": "Bingkai selesai yang dipilih tidak memiliki EXR yang disimpan. Aktifkan penyimpanan sebelum merender; PNG lama tidak dapat memulihkan radiance mentah.",
"render.look_add": "Tambah look warna",
"render.look_applied": "{name} diterapkan",
"render.look_bleach": "Terinspirasi bleach-bypass",
"render.look_cool": "Dingin",
"render.look_cyanotype": "Terinspirasi sianotipe",
"render.look_faded": "Cetakan pudar",
"render.look_material": "Material",
"render.look_mono": "Monokrom",
"render.look_pasted": "Look ditempel",
"render.look_sepia": "Sepia",
"render.look_strength": "Kekuatan look",
"render.look_teal_orange": "Teal / oranye",
@@ -2592,9 +2888,11 @@
"render.output_advanced": "Lanjutan",
"render.output_backend_ready": "Siap",
"render.output_check": "Periksa",
"render.output_check_failed": "Periksa · galat",
"render.output_check_help": "Jalankan Periksa untuk meninjau permintaan ini tanpa memulai render.",
"render.output_check_summary": "Periksa · Catatan: {count}",
"render.output_copy": "Salin",
"render.output_copy_report": "Salin laporan",
"render.output_destination": "Tujuan",
"render.output_destination_help": "Pilih file tujuan saat mengekspor gambar yang sudah selesai.",
"render.output_dimensions": "Ukuran",
@@ -2604,6 +2902,7 @@
"render.output_fit": "Pas",
"render.output_format": "Format",
"render.output_format_status": "PNG adalah gambar tampilan selesai yang persis. EXR GPU opsional menyimpan radiance FLOAT32 linear-adegan mentah sebelum filter tampilan. Ekspor tidak pernah menggantikan cache pratinjau atau pekerjaan lain.",
"render.output_grading": "Koreksi warna",
"render.output_image": "Gambar",
"render.output_largest": "{width} × {height} maks",
"render.output_lock_ratio": "Kunci rasio aspek",
@@ -2613,6 +2912,8 @@
"render.output_quality_waiting": "menunggu kontrak kualitas",
"render.output_ratio_refused": "Dimensi yang tertaut melebihi batas ukuran metode ini. Ukuran sebelumnya dipertahankan; buka kunci rasio atau pilih nilai yang lebih kecil.",
"render.output_ready": "Siap dirender",
"render.output_run_check": "Jalankan pemeriksaan",
"render.output_size_limit": "{method}: hingga {dimension} px per sisi dan {pixels} piksel. Ukuran terbesar yang muat: {width} × {height}.",
"render.output_size_ok": "Ukuran OK · {width} × {height} px",
"render.output_swap_orientation": "Tukar lebar dan tinggi",
"render.output_tools_inspector": "Edit ukuran dan format di Inspektor Keluaran.",
@@ -2629,6 +2930,7 @@
"render.page_output": "Keluaran",
"render.page_scene": "Adegan",
"render.paint_label": "Cat",
"render.painting_with": "Mengecat dengan {name}",
"render.passive_stage": "Lantai dan panggung pasif",
"render.passive_stage_help": "Panel pasif berhingga hanya milik gambar yang dirender. Panel ini tidak menambah bodi CAD atau massa. Penempatan menjadi tetap setelah diterapkan; batas produk yang berpotongan ditolak. CPU tidak menyediakan pencahayaan pantulan difus.",
"render.perspective": "Kamera perspektif",
@@ -2650,6 +2952,7 @@
"render.pick_help": "Pilih Bodi, Muka, atau Komponen. Klik ruang kosong untuk membersihkan; Shift atau Ctrl menambah atau mengalihkan. Sorotan hanya muncul di tampilan produk langsung.",
"render.pick_label": "Pilih",
"render.pick_up_label": "Ambil",
"render.pick_up_prompt": "Klik sebuah objek untuk mengambil look-nya",
"render.pick_waiting": "Pemilihan produk belum didukung.",
"render.post_contrast": "Kontras",
"render.post_gain_b": "Gain biru",
@@ -2689,13 +2992,17 @@
"render.radial_distortion": "Distorsi radial",
"render.radial_fit": "Fit Produk",
"render.radial_save": "Simpan Bidikan",
"render.recent_looks": "Look terbaru",
"render.regrade_action": "Koreksi warna ulang master mentah (tanpa denoise)",
"render.regrade_help": "Membuat PNG terpisah dari master mentah selesai yang dipilih, memakai kontrol presentasi ini. Tidak menelusuri sinar, tidak mengubah ukuran/kamera/lampu yang ditangkap, dan tidak menimpa EXR. Denoise tidak diterapkan lagi: master mentah tidak menyimpan panduannya. Turunan ini tetap dapat diekspor melalui kontrol tugas yang sama.",
"render.regrade_label": "Koreksi warna ulang",
"render.reload_settings": "Muat Ulang Pengaturan Tersimpan",
"render.remove_override": "Hapus Override",
"render.replace_all": "Ganti Semua",
"render.replace_ground": "Konfirmasi penggantian panggung yang ada",
"render.replace_label": "Ganti",
"render.replace_saved_surface": "Ganti binding tersimpan yang ada untuk target ini",
"render.replace_with": "Ganti dengan",
"render.restore_camera": "Pulihkan Kamera Tersimpan",
"render.result_actual": "100%",
"render.result_actual_help": "Satu piksel gambar per piksel layar.",
@@ -2747,14 +3054,28 @@
"render.saved_surface_remove": "Hapus binding tersimpan",
"render.saved_surfaces": "Binding permukaan tersimpan",
"render.saved_surfaces_help": "Peta bawaan yang disematkan mengikuti kemunculan terpilih dalam milimeter lokal. Target yang diganti atau hilang adalah galat, bukan penugasan ulang otomatis.",
"render.scene_all_shots": "Semua bidikan ({count})",
"render.scene_apply": "Terapkan studio yang sudah ditinjau",
"render.scene_batch_reason": "Semua bidikan memerlukan antrean render bidikan tersimpan, yang belum tersedia.",
"render.scene_check_now": "Periksa sekarang",
"render.scene_check_passed": "Pemeriksaan lolos · {notes} catatan",
"render.scene_check_stale": "Pemeriksaan usang · periksa lagi",
"render.scene_check_unchecked": "Belum diperiksa · 0 catatan",
"render.scene_consent": "Konfirmasi penggantian pencahayaan, lingkungan, eksposur, dan panggung",
"render.scene_light_summary": "{environment} · {lights} lampu",
"render.scene_look_summary": "{looks} look · {overrides} override",
"render.scene_open_check": "Buka Pemeriksaan",
"render.scene_preserved_fields": "Kamera, sampling, dimensi, binding optik, geometri CAD, dan material rekayasa tetap dipertahankan.",
"render.scene_preserves_design": "Susun pencahayaan dan panggung pasif untuk subjek yang terlihat. Geometri, material rekayasa, dan kamera tetap terpisah.",
"render.scene_ready": "Siap dirender",
"render.scene_reminder": "Adegan mempertahankan desain. Geometri, properti rekayasa, dan CAD tidak pernah diubah dari Render.",
"render.scene_reminders": "Pengingat",
"render.scene_renderer_ready": "{renderer} siap",
"render.scene_replaces": "Mengganti",
"render.scene_review": "Proses dan tinjau",
"render.scene_review_help": "Tinjau komposisi native secara lengkap sebelum menerapkan. Spesifikasi SCENE lanjutan yang tidak terikat tidak digantikan.",
"render.scene_scope_details": "Cakupan komposisi",
"render.scene_stages": "Tahapan",
"render.search_appearances": "Cari di {count} tampilan",
"render.setup_legacy_environment": "Setup lama ini memakai rotasi atau intensitas lingkungan versi lama. Nilai tersebut dipertahankan; konversikan secara eksplisit sebelum menyimpan tugas gambar penuh.",
"render.setup_name": "Nama setup",
@@ -2767,7 +3088,22 @@
"render.shell_tab_camera": "KAMERA RENDER",
"render.shell_tab_lighting": "PENCAHAYAAN",
"render.shell_tab_scene": "ADEGAN RENDER",
"render.shot_aperture": "Apertur",
"render.shot_distance": "Jarak",
"render.shot_dof": "Kedalaman bidang",
"render.shot_duplicate": "Duplikasi bidikan tersimpan",
"render.shot_edit_output": "Edit di Keluaran",
"render.shot_exposure_reason": "Eksposur memerlukan ray tracing CPU atau path tracing GPU.",
"render.shot_exposure_section": "Eksposur",
"render.shot_focus_distance": "Jarak fokus",
"render.shot_fov_reason": "Bidang pandang memerlukan proyeksi perspektif.",
"render.shot_frame_subject": "Bingkaikan subjek",
"render.shot_invalid_camera": "Nilai kamera harus berhingga dan dalam rentang.",
"render.shot_lens": "Lensa",
"render.shot_lens_enable_reason": "Aktifkan kedalaman bidang untuk mengedit apertur dan jarak fokus.",
"render.shot_lens_gpu_reason": "Kedalaman bidang memerlukan path tracing GPU.",
"render.shot_lens_perspective_reason": "Kedalaman bidang memerlukan proyeksi perspektif.",
"render.shot_look_selection": "Hadapkan ke pilihan",
"render.shot_manager": "Bidikan tersimpan",
"render.shot_new_name": "Nama bidikan baru",
"render.shot_remove": "Hapus bidikan tersimpan",
@@ -2775,6 +3111,9 @@
"render.shot_remove_title": "Hapus bidikan tersimpan?",
"render.shot_rename": "Ganti nama bidikan tersimpan",
"render.shot_saved_only": "Simpan draf saat ini terlebih dahulu. Duplikasi dan ganti nama mempertahankan opsi tersimpan dan referensi sumber daya secara persis.",
"render.shot_selection_reason": "Pilih bodi atau muka sebagai sasaran.",
"render.shot_size": "Ukuran",
"render.shot_target": "Target",
"render.shots_camera_changed": "Kamera berubah sejak bidikan ini disimpan",
"render.shots_name_help": "Masukkan nama unik untuk bidikan saat ini.",
"render.shots_no_result": "Belum ada render",
@@ -2997,6 +3336,13 @@
"render.wait_pick_up": "belum didukung: pemilihan produk dan pengambilan sampel tampilan",
"render.wait_replace": "belum didukung: penggantian semua pemakaian suatu tampilan",
"render.wait_solo": "belum didukung: visibilitas lampu dan kontrol solo",
"render.wear_applies_to": "Berlaku untuk",
"render.wear_layer_count": "{count} lapisan",
"render.wear_layer_one": "{count} lapisan",
"render.wear_layers": "Lapisan",
"render.wear_no_layers": "Tidak ada lapisan",
"render.wear_selected_layer": "Lapisan terpilih",
"render.wear_title": "Keausan",
"sample.bracket.about": "Flens dasar dengan flens tepi dan hem pada aturan 2 mm",
"sample.bracket.name": "Braket Pelat Logam",
"sample.enclosure.about": "Kotak shell dengan lip, boss sekrup, rest, dan snap fit",
@@ -3030,6 +3376,7 @@
"select an axis": "pilih sumbu",
"select an axis, a straight or circular edge, or a cylinder, cone or torus face first": "pilih sumbu, tepi lurus atau melingkar, atau muka silinder, kerucut, atau torus terlebih dahulu",
"select bodies first": "pilih bodi terlebih dahulu",
"select components first": "pilih komponen terlebih dahulu",
"select corner points, or the two lines of one corner": "pilih titik sudut, atau dua garis dari satu sudut",
"select one corner point, or the two lines of one corner": "pilih satu titik sudut, atau dua garis dari satu sudut",
"select sheet edges first": "pilih tepi pelat terlebih dahulu",
@@ -3048,6 +3395,7 @@
"settings.double_click_components": "Klik dua kali komponen untuk mengaktifkannya, atau untuk mengedit komponen tertaut di tempat",
"settings.frame_rate_details_note": "Menambahkan grafik waktu frame terakhir dengan segitiga yang digambar di atasnya, histogram waktu frame, dan apa yang digambar GPU. Klik frame rate di tampilan untuk menampilkan atau menyembunyikannya.",
"settings.frame_rate_note": "Menampilkan frame per detik di sudut kanan bawah tampilan.",
"settings.insert_lists_open_designs": "Sisipkan Desain mencantumkan desain yang terbuka di tab lain terlebih dahulu",
"settings.measure_axis_distances": "Tampilkan jarak X/Y/Z",
"settings.measure_axis_distances_help": "Tampilkan dimensi komponen sumbu dunia di samping jarak total saat Ukur terbuka.",
"settings.msaa_applies_on_restart": "Anti-aliasing berlaku saat SolidCraft dimulai berikutnya",
@@ -3072,6 +3420,10 @@
"shortcut.unpin": "Lepas sematan",
"sketch is missing": "sketsa tidak ditemukan",
"sketch.degrees_of_freedom": "{count} derajat kebebasan",
"sketch.dimension_added_driven": "Sketsa sudah menentukan dimensi itu, sehingga dimensi ditambahkan sebagai dimensi driven (referensi)",
"sketch.dimension_applied": "Dimensi diterapkan",
"sketch.dimension_applied_defined": "Dimensi diterapkan; parameter `{name}` didefinisikan",
"sketch.dimension_applied_renamed": "Dimensi diterapkan; parameter diberi nama `{name}`",
"sketch.dof_left": "{count} derajat kebebasan tersisa",
"sketch.dof_left_one": "{count} derajat kebebasan tersisa",
"sketch.draw_curves": "Gambar sebagai {linetype}",
@@ -3106,6 +3458,8 @@
"sketch_text.use_font_file": "Gunakan file font {path}",
"solid": "solid",
"status.editing": "Mengedit {name}",
"status.navigation": "Pemetaan mouse: {mapping}",
"status.navigation_tip": "Cara mouse menggerakkan tampilan. Klik untuk memilih pemetaan lain",
"status.under_constrained": "Kurang dibatasi ({count} derajat kebebasan)",
"status.under_constrained_one": "Kurang dibatasi ({count} derajat kebebasan)",
"status.units_tip": "Satuan desain. Klik untuk mengubahnya",
@@ -3139,8 +3493,10 @@
"timeline.delete_folders_tip": "Pertahankan fitur dan folder bersarangnya di riwayat",
"timeline.delete_folders_with_features_tip": "Hapus folder beserta setiap fitur di dalamnya dan folder bersarangnya",
"timeline.delete_many": "Hapus {count} Fitur Terpilih",
"timeline.edited_rolled_back": "{name} diubah, tetapi berada setelah penanda riwayat, sehingga tidak dibangun: pindahkan penanda melewatinya untuk melihat hasilnya",
"timeline.feature_error": "Error: {message}",
"timeline.feature_hint": "Klik dua kali untuk edit · seret untuk mengurutkan ulang · klik kanan untuk lainnya",
"timeline.feature_rolled_back": "Dimundurkan: berada setelah penanda riwayat, sehingga tidak dibangun",
"timeline.feature_warning": "Peringatan: {message}",
"timeline.group": "Folder Fitur Baru",
"timeline.move_many": "Pindahkan Item Linimasa",
@@ -3220,6 +3576,10 @@
"ui.3d_mouse_offer": "Mengkalibrasi mouse 3D memperbaiki sumbu yang tertukar atau terbalik dan mengatur kecepatan serta rasanya.",
"ui.3d_mouse_offer_never": "Jangan tampilkan lagi",
"ui.3d_mouse_offer_swap": "Beralih ke Hidraw (driver langsung)",
"ui.3d_mouse_orbit": "Orbit",
"ui.3d_mouse_orbit_classic": "Klasik",
"ui.3d_mouse_orbit_tip": "Terlacak: mouse 3D memutar tampilan mengelilingi bagian model yang ada di tengah tampilan saat putaran dimulai, ditandai dengan bola samar. Klasik: mengelilingi pusat tampilan",
"ui.3d_mouse_orbit_traced": "Terlacak",
"ui.3d_mouse_reading": "Pembacaan",
"ui.3d_mouse_reset_axes": "Atur ulang penetapan sumbu",
"ui.3d_mouse_reset_view": "Atur ulang tampilan",
@@ -3604,6 +3964,7 @@
"ui.constant": "Konstan",
"ui.constraints_conflict": "Batasan bertentangan",
"ui.construction": "Konstruksi",
"ui.construction.ribbon_label": "Garis bantu",
"ui.context_menu": "Menu konteks",
"ui.continuity_g0": "Lipatan G0",
"ui.continuity_g1": "Tangen G1",
@@ -3695,6 +4056,14 @@
"ui.end_scale": "Skala Akhir",
"ui.entities": "Entitas",
"ui.equal": "Sama",
"ui.equation_end": "Akhir",
"ui.equation_explicit": "Eksplisit",
"ui.equation_form": "Bentuk",
"ui.equation_note": "Variabelnya berupa angka biasa: sin(t) menganggapnya dalam radian. Hasil tanpa satuan memakai satuan desain.",
"ui.equation_parametric": "Parametrik",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Radius Ekuivalen",
"ui.expand": "Perluas",
"ui.exportDxf": "Ekspor DXF…",
@@ -3760,6 +4129,7 @@
"ui.heading_design": "DESAIN",
"ui.heading_draft": "DRAFT",
"ui.heading_edit": "EDIT",
"ui.heading_equation_curve": "KURVA PERSAMAAN",
"ui.heading_extrude": "EKSTRUSI",
"ui.heading_fillet": "FILLET",
"ui.heading_finish_editing": "SELESAI EDIT",
@@ -3851,6 +4221,10 @@
"ui.import_ellipsis": "Impor…",
"ui.infinite": "Tak hingga",
"ui.insert": "Sisipkan",
"ui.insert_design.browse": "Jelajahi…",
"ui.insert_design.open_designs": "Desain terbuka",
"ui.insert_design.saved_file": "{name} memiliki perubahan yang belum disimpan, sehingga file tersimpannya yang disisipkan. Simpan desain itu, lalu jalankan Perbarui Tautan untuk memasukkan perubahannya.",
"ui.insert_design.unsaved": "Perubahan belum disimpan",
"ui.inspect": "Inspeksi",
"ui.intersect": "Irisan",
"ui.isolate": "Isolasi",
@@ -4000,6 +4374,18 @@
"ui.project": "Proyeksi",
"ui.project_face_edges_sketch": "Proyeksikan tepi muka ke sketsa baru",
"ui.properties": "Properti",
"ui.properties.copy_matrix": "Salin matriks",
"ui.properties.first_moments": "Momen pertama",
"ui.properties.inertia": "Momen inersia",
"ui.properties.inertia_note": "Terhadap pusat massa, pada sumbu dunia (g·{unit}²)",
"ui.properties.inertia_unavailable": "Tidak tersedia: mesh sebuah bodi tidak tertutup.",
"ui.properties.inertia_x": "Ixx, Ixy, Ixz",
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Mengukur…",
"ui.properties.measuring_failed": "Pengukuran berhenti sebelum selesai.",
"ui.properties.principal_axis": "Sumbu utama {number}",
"ui.properties.principal_moments": "Momen utama",
"ui.pull_direction": "Arah tarik",
"ui.quality": "Kualitas",
"ui.quantity": "Jumlah",
@@ -4062,6 +4448,7 @@
"ui.select": "Pilih",
"ui.selectOther": "Pilih Lainnya…",
"ui.selectTangentChain": "Pilih Rantai Tangen",
"ui.select_all": "Pilih Semua",
"ui.selection": "Pilihan",
"ui.selection_modifiers": "Pengubah pilihan",
"ui.selection_shift_add_only": "Shift+klik menambah tanpa menghapus",
@@ -4098,7 +4485,11 @@
"ui.sketch": "Sketsa",
"ui.sketch_dimension": "Dimensi Sketsa",
"ui.sketch_grid": "Grid Sketsa",
"ui.sketch_intersect_geometry": "Geometri",
"ui.sketch_intersect_projection_link": "Tautan Proyeksi",
"ui.sketch_intersect_selection_filter": "Filter Pilihan",
"ui.sketch_modifiers": "Pengubah sketsa",
"ui.sketch_project_geometry": "Geometri",
"ui.sketch_scale": "Skala Sketsa",
"ui.sketches": "Sketsa",
"ui.slice": "Iris",
@@ -4149,6 +4540,7 @@
"ui.tab_manage": "Kelola",
"ui.tab_sheet_metal": "Pelat Logam",
"ui.tab_view": "Tampilan",
"ui.tab_weldments": "Konstruksi Las",
"ui.tangent": "Tangen",
"ui.taper_angle": "Sudut Taper",
"ui.tapped": "Bertap",
@@ -4164,6 +4556,7 @@
"ui.tip_angle": "Sudut Ujung",
"ui.to_object": "Ke Objek",
"ui.tool_direction": "Arah alat",
"ui.toolbar_tabs_hidden": "Semua tab toolbar disembunyikan. Klik + atau klik kanan di sini untuk menampilkan salah satunya.",
"ui.top": "Atas",
"ui.top_diameter": "Diameter atas",
"ui.top_radius": "Radius atas",
@@ -4210,6 +4603,7 @@
"ui.visual_shaded_with_edges": "Shaded dengan tepi",
"ui.visual_style": "Gaya visual",
"ui.visual_wireframe": "Wireframe",
"ui.wheel_zoom_speed": "Kecepatan zoom roda mouse",
"ui.width": "Lebar",
"ui.window_system": "Sistem jendela",
"ui.window_system_auto": "Otomatis",
@@ -4261,6 +4655,9 @@
"update.prefs_label": "Pembaruan",
"update.prefs_note": "Ini adalah SolidCraft {version} ({kind}). Pemeriksaan meminta rilis terbaru ke GitHub dan tidak mengirim apa pun lagi.",
"update.prefs_web": "Muat ulang halaman untuk mendapatkan aplikasi web terbaru. Jika jaringan tidak tersedia atau pembaruan tidak selesai diunduh tepat waktu, versi tersimpan akan terbuka; unduhan yang sedang berjalan berlanjut untuk muat ulang berikutnya.",
"update.refresh_checking": "Memeriksa rilis terbaru…",
"update.refresh_fallback": "Tidak dapat memeriksa rilis yang lebih baru; memperbarui ke {version} yang ditemukan sebelumnya.",
"update.refresh_selected": "Memperbarui ke {version}.",
"update.release_page": "Buka halaman rilis",
"update.restart": "Mulai ulang sekarang",
"update.restart_later": "Nanti",
+388
View File
@@ -204,6 +204,7 @@
"Edges": "Spigoli",
"Edit": "Modifica",
"Edit Profile Sketch": "Modifica schizzo del profilo",
"Edit shortcuts": "Modifica scorciatoie",
"Enable rule": "Abilita regola",
"Enabled": "Abilitato",
"End Radius": "Raggio finale",
@@ -466,6 +467,7 @@
"Radius": "Raggio",
"Radius Fit": "Adattamento del raggio",
"Ratio": "Rapporto",
"Read-only list: shortcuts can't be changed here.": "Elenco di sola lettura: qui le scorciatoie non si possono modificare.",
"Reattach selected face": "Ricollega la faccia selezionata",
"Recover": "Recupera",
"Recover unsaved design?": "Recuperare il progetto non salvato?",
@@ -649,6 +651,7 @@
"Third point": "Terzo punto",
"This child is shared. Deleting it removes it from every copy of its parent.": "Questo elemento figlio è condiviso. Eliminandolo verrà rimosso da ogni copia del padre.",
"This child is shared. Position changes apply to every copy of its parent.": "Questo elemento figlio è condiviso. Le modifiche alla posizione si applicano a ogni copia del padre.",
"This component is inside a subassembly placed more than once: aligning it moves it in every placement.": "Questo componente si trova in un sottoassieme inserito più volte: allinearlo lo sposta in ogni posizionamento.",
"This face cannot provide a durable attachment. Choose another face or explicitly use a fixed plane.": "Questa faccia non consente un collegamento persistente. Scegli un'altra faccia o usa esplicitamente un piano fisso.",
"This image is not attached to GitHub yet. Copy or save it, then attach it on GitHub.": "Questa immagine non è ancora allegata a GitHub. Copiala o salvala, poi allegala su GitHub.",
"Thread depth": "Profondità filetto",
@@ -790,6 +793,11 @@
"cam.roller": "Rullo",
"cam.roller_pick": "Rullo (facoltativo)",
"cam.tip_pick": "Punta (facoltativa)",
"camera.shot_pitch": "Beccheggio",
"camera.shot_roll": "Rollio",
"camera.shot_yaw": "Imbardata",
"canvas.decal_place_hint": "Fai clic su una faccia per posizionare la decalcomania",
"canvas.place_hint": "Fai clic su un piano o una faccia per posizionare l'immagine di riferimento",
"choose a profile": "scegli un profilo",
"choose the cam's and the follower's joints": "scegli i giunti della camma e del seguace",
"choose the joints to couple": "scegli i giunti da accoppiare",
@@ -797,9 +805,12 @@
"click sketch curves": "fare clic sulle curve dello schizzo",
"cmd.appearance_assign": "Aspetto",
"cmd.appearance_chain": "Catena degli aspetti",
"cmd.appearance_copy": "Copia aspetto",
"cmd.appearance_favorite": "Aspetto preferito",
"cmd.appearance_library": "Libreria degli aspetti",
"cmd.appearance_list": "Elenca aspetti",
"cmd.appearance_paint": "Applica aspetto",
"cmd.appearance_paste": "Incolla aspetto",
"cmd.appearance_pick_up": "Preleva aspetto",
"cmd.appearance_replace": "Sostituisci aspetto",
"cmd.assembly_bom": "Distinta base",
@@ -810,6 +821,7 @@
"cmd.browser_move": "Sposta elementi della struttura",
"cmd.browser_order": "Ordina elementi della struttura",
"cmd.browser_rename_group": "Rinomina gruppo",
"cmd.browser_reparent": "Sposta nel componente",
"cmd.browser_ungroup": "Separa gruppo",
"cmd.browser_visibility": "Mostra/Nascondi",
"cmd.canvas_calibrate": "Calibra immagine di riferimento",
@@ -836,7 +848,9 @@
"cmd.component_metadata": "Proprietà della parte",
"cmd.component_metadata_set": "Modifica proprietà della parte",
"cmd.component_move_bodies": "Sposta corpi nel componente",
"cmd.component_move_features": "Sposta lavorazioni nel componente",
"cmd.component_move_sketches": "Sposta schizzi nel componente",
"cmd.component_paste_from_design": "Incolla da un altro progetto",
"cmd.component_paste_new": "Incolla come nuovo",
"cmd.component_properties": "Proprietà fisiche del componente",
"cmd.component_relink": "Ricollega sorgente",
@@ -973,6 +987,7 @@
"cmd.motion_trace": "Traiettoria del movimento",
"cmd.motion_trace_edit": "Modifica traccia di movimento",
"cmd.motion_trace_keep": "Mantieni traiettoria del movimento",
"cmd.occurrence_align": "Allinea occorrenza",
"cmd.occurrence_copy": "Incolla (istanza)",
"cmd.occurrence_drag": "Trascina occorrenza",
"cmd.occurrence_ground": "Fissa a terra",
@@ -1030,11 +1045,17 @@
"cmd.render_library_surface_unbind": "Rimuovi associazione della superficie",
"cmd.render_library_targets": "Trova destinazioni della libreria di rendering",
"cmd.render_lights_add": "Aggiungi luce",
"cmd.render_lights_duplicate": "Duplica luce di rendering",
"cmd.render_lights_list": "Elenca luci di rendering",
"cmd.render_lights_mute": "Silenzia luce",
"cmd.render_lights_remove": "Rimuovi luce di rendering",
"cmd.render_lights_set": "Imposta luce di rendering",
"cmd.render_lights_solo": "Isola luce",
"cmd.render_optics_bind": "Salva associazione ottica",
"cmd.render_optics_unbind": "Rimuovi associazione ottica",
"cmd.render_output_size": "Imposta dimensioni di uscita del rendering",
"cmd.render_preflight": "Verifica richiesta di rendering",
"cmd.render_preflight_copy": "Copia rapporto di verifica del rendering",
"cmd.render_preset_apply": "Applica studio nativo",
"cmd.render_preset_resolve": "Verifica studio nativo",
"cmd.render_quality_prepare": "Verifica budget di campionamento fisso",
@@ -1057,6 +1078,13 @@
"cmd.render_start": "Renderizza immagine",
"cmd.render_status": "Avanzamento del rendering",
"cmd.select_clear": "Deseleziona tutto",
"cmd.settings_profile_apply": "Applica profilo delle impostazioni",
"cmd.settings_profile_delete": "Elimina profilo delle impostazioni",
"cmd.settings_profile_export": "Esporta profilo delle impostazioni",
"cmd.settings_profile_import": "Importa profilo delle impostazioni",
"cmd.settings_profile_list": "Profili delle impostazioni",
"cmd.settings_profile_rename": "Rinomina profilo delle impostazioni",
"cmd.settings_profile_save": "Salva profilo delle impostazioni",
"cmd.sheet_convert": "Converti in lamiera",
"cmd.sheet_export_bend_table": "Esporta tabella delle pieghe",
"cmd.sheet_export_dxf": "Esporta sviluppo piano come DXF",
@@ -1070,6 +1098,16 @@
"cmd.sheet_refold": "Ripiega",
"cmd.sheet_rules": "Elenca regole per lamiera",
"cmd.sheet_unfold": "Spiega",
"cmd.sketch.construction_line": "Retta di costruzione",
"cmd.sketch.construction_line.angle": "Retta di costruzione inclinata",
"cmd.sketch.construction_line.bisector": "Bisettrice",
"cmd.sketch.construction_line.horizontal": "Retta di costruzione orizzontale",
"cmd.sketch.construction_line.parallel": "Retta di costruzione parallela",
"cmd.sketch.construction_line.perpendicular": "Retta di costruzione perpendicolare",
"cmd.sketch.construction_line.tangent_at": "Tangente in un punto della curva",
"cmd.sketch.construction_line.tangent_external": "Tangente per un punto esterno",
"cmd.sketch.construction_line.tangent_two": "Tangente comune",
"cmd.sketch.construction_line.vertical": "Retta di costruzione verticale",
"cmd.sketch_arc3d": "Arco 3D",
"cmd.sketch_arc_center_point": "Arco per centro",
"cmd.sketch_arc_tangent": "Arco tangente",
@@ -1102,6 +1140,8 @@
"cmd.sketch_drawing_bounds": "Dimensioni del disegno",
"cmd.sketch_edit": "Modifica schizzo",
"cmd.sketch_edit_text": "Modifica testo",
"cmd.sketch_equation_curve": "Curva da equazione",
"cmd.sketch_equation_curve_edit": "Modifica curva da equazione",
"cmd.sketch_export_dxf": "Salva come DXF",
"cmd.sketch_finish_auto_constrain": "Termina con vincoli automatici",
"cmd.sketch_fit_curves_to_section": "Adatta curve alla sezione della mesh",
@@ -1198,6 +1238,7 @@
"cmd.view.render_browser": "Struttura del rendering",
"cmd.view.render_dock": "Sposta pannello di rendering",
"cmd.view.render_focus": "Vista focalizzata sul rendering",
"cmd.view.status_items": "Elementi di stato della vista",
"cmd.view_ambient_occlusion": "Occlusione ambientale",
"cmd.view_angle_readout": "Angoli della vista",
"cmd.view_apply": "Ripristina vista con nome",
@@ -1219,6 +1260,7 @@
"cmd.view_normal_to": "Normale alla selezione",
"cmd.view_previous_tab": "Scheda precedente",
"cmd.view_rename": "Rinomina vista con nome",
"cmd.view_render_frame": "Guide di inquadratura del rendering",
"cmd.view_right": "Vista destra",
"cmd.view_save": "Nuova vista con nome",
"cmd.view_shots_strip": "Striscia degli scatti",
@@ -1229,10 +1271,14 @@
"color.copy": "Fai clic per copiare i valori del colore",
"color.edit": "Fai clic per modificare il colore",
"color.gamma": "Valori del colore mostrati nello spazio gamma 0-255",
"color.hex": "Hex",
"color.hex_help": "Inserisci #rrggbb o #rrggbbaa; con sei cifre l'opacità resta invariata",
"color.hex_hint": "#rrggbb",
"color.hue": "Tonalità",
"color.linear": "Valori del colore mostrati nello spazio lineare 0-1",
"color.saturation_value": "Saturazione e valore",
"color.selected": "Colore selezionato",
"config.column_filter_empty": "Nessuna colonna corrispondente",
"contact.components_count": "{count} componenti",
"contact.enabled_label": "abilitato",
"coupling.gear_1": "Ruota dentata 1",
@@ -1346,8 +1392,10 @@
"help.material.assign": "Imposta di che cosa sono fatti i corpi selezionati, per esempio acciaio, alluminio o ABS. Usalo perché massa e peso corrispondano al pezzo reale.",
"help.mit": "Licenza MIT",
"help.notice": "NOTICE",
"help.occurrence.move": "Sposta una parte dell'assieme solo lungo i gradi di libertà consentiti dai suoi giunti. Seleziona una faccia della parte, poi trascina una freccia o un arco disponibile.",
"help.parameters.change": "Apre la tabella dei valori con nome e delle espressioni che guidano le quote della progettazione. Usala per cambiare una misura in un solo punto e far seguire tutte le lavorazioni che la usano.",
"help.pointcloud.insert": "Inserisci una scansione PLY, XYZ o PTS come nuvola di punti accanto al modello. Usala come riferimento quando costruisci un modello a partire da dati misurati.",
"help.sketch.equation_curve": "Disegna una curva da formule: x(t) e y(t), oppure y = f(x), su un intervallo. Le formule possono usare parametri e la curva li segue: usala per un'onda sinusoidale, una spirale o l'evolvente del dente di un ingranaggio.",
"help.solid.align": "Sposta i corpi selezionati in modo che un punto, una faccia o un piano su di essi coincida con un punto, una faccia o un piano altrove. Usalo per posizionare un pezzo contro un altro senza misurare lo scostamento.",
"help.solid.chamfer": "Taglia gli spigoli selezionati con uno smusso piano della distanza impostata. Usalo per eliminare gli spigoli vivi o per facilitare l'ingresso di un perno o di una vite.",
"help.solid.combine": "Unisce i corpi, li sottrae da un corpo di destinazione oppure tiene solo il volume che hanno in comune, e può conservare i corpi utensile. Usalo per fondere parti, per tagliare una forma con un'altra o per trovare dove due corpi si sovrappongono.",
@@ -1474,6 +1522,21 @@
"joint.one_component": "Queste parti sono corpi di un unico componente: {bodies}. Un giunto muove un componente rispetto a un altro, quindi ogni parte richiede un componente distinto.",
"joint.rigid_group_one_component": "Questi {count} corpi sono tutti in un solo componente (o nella progettazione stessa): usa prima {command}.",
"joint.rigid_group_select_components": "Seleziona due o più componenti.",
"joint_move.blocked_hint": "Controlla il tipo di giunto (ad esempio Rigido), il fissaggio a terra, i limiti del giunto e i valori comandati da parametri.",
"joint_move.blocked_title": "Impossibile spostare questa parte",
"joint_move.coarse": "Passo di rotazione vicino all'asse (°)",
"joint_move.distance": "Distanza dall'inizio",
"joint_move.done": "Fatto",
"joint_move.fine": "Passo di rotazione lontano dall'asse (°)",
"joint_move.fixed": "Questa parte non ha alcun asse di giunto mobile.",
"joint_move.help": "Sposta — trascina una freccia o un anello. Esc annulla il trascinamento in corso.",
"joint_move.legacy_hint": "Disattiva per usare il pannello Sposta precedente.",
"joint_move.precision": "Trascina oltre la guida tratteggiata per una rotazione fine.",
"joint_move.rotation": "Rotazione dall'inizio",
"joint_move.select": "Seleziona una faccia o una parte dell'assieme, poi scegli Sposta.",
"joint_move.settings": "Spostamento nell'assieme",
"joint_move.step": "Passo",
"joint_move.use_handles": "Usa le maniglie di movimento dei giunti per Sposta nell'assieme",
"keymap.command_id": "ID comando",
"keymap.empty": "Nessun comando corrispondente",
"keymap.use_anyway": "Usa comunque {key} qui",
@@ -1568,6 +1631,8 @@
"nav.maya.help": "Alt+trascinamento con il pulsante sinistro orbita, Alt+pulsante centrale esegue la panoramica, Alt+pulsante destro lo zoom; anche il trascinamento con il pulsante centrale esegue la panoramica",
"nav.openscad.help": "Il trascinamento sinistro nello spazio vuoto orbita, Shift+trascinamento sinistro seleziona con un riquadro, il trascinamento sulla geometria dello schizzo la modifica; il trascinamento destro o centrale fa la panoramica, Shift+destro o Shift+centrale fa lo zoom",
"nav.perspective.sketch": "La modifica dello schizzo usa la vista ortogonale. Termina lo schizzo per passare alla prospettiva.",
"nav.right_drag_orbits.help": "Disattivato: il trascinamento con il pulsante destro non muove la camera e il pulsante destro apre solo il menu contestuale. Scegliendo l'assegnazione del mouse SolidWorks l'opzione si disattiva.",
"nav.right_drag_orbits.label": "Orbita con il trascinamento destro",
"nav.solidworks.help": "Trascina con il tasto centrale per orbitare, Ctrl+centrale per la panoramica, Shift+centrale per lo zoom, trascina con il destro per orbitare",
"nav.tinkercad.help": "Trascina con il tasto destro per orbitare, con il centrale o Shift+destro per la panoramica",
"nav.touchpad.help": "Tieni premuto Shift e muovi il puntatore per eseguire una panoramica; tieni premuto Alt/Option e muovilo per orbitare. Non serve premere pulsanti del mouse. Lo scorrimento verticale regola lo zoom.",
@@ -1698,6 +1763,7 @@
"parts.dimension.thickness": "Spessore",
"parts.dimension.width": "Larghezza",
"parts.family.bearing": "Cuscinetto radiale a sfere (ingombro)",
"parts.family.button_head_cap_screw": "Vite a testa bombata con esagono incassato",
"parts.family.dowel_pin": "Spina cilindrica",
"parts.family.hex_bolt": "Vite a testa esagonale",
"parts.family.hex_nut": "Dado esagonale",
@@ -1754,6 +1820,9 @@
"prefs.bottom_centre": "In basso al centro",
"prefs.bottom_right": "In basso a destra",
"prefs.browser": "Struttura",
"prefs.browser_reveal_on_hover": "Mostra al passaggio del puntatore",
"prefs.browser_show_note": "Visibile mantiene la Struttura sullo schermo. Mostra al passaggio del puntatore la tiene nascosta finché il puntatore non passa sulla sua posizione o sulla sottile linguetta al suo bordo sinistro, e resta aperta finché il puntatore è al suo interno o un suo menu è aperto.",
"prefs.browser_shown": "Visibile",
"prefs.built_in": "Integrato",
"prefs.button_left": "Trascinamento sinistro",
"prefs.button_middle": "Trascinamento centrale",
@@ -1824,6 +1893,8 @@
"prefs.layout_note": "Compatta: pannelli ancorati ai bordi della finestra. La trasparenza della Struttura è disponibile in Flottante. Cambia il lato dell'Assistente nella pagina Assistente.",
"prefs.left": "Sinistra",
"prefs.left_click": "Clic sinistro",
"prefs.line_drag_draws_one": "Premi e trascina per disegnare una linea",
"prefs.line_drag_draws_one_note": "Nello strumento Linea, premere, trascinare e rilasciare disegna una linea dal punto di pressione a quello di rilascio, e il disegno termina lì. I clic disegnano comunque una catena. Disattivato: un trascinamento posiziona un punto dove viene rilasciato, come un clic.",
"prefs.linked_designs": "Progetti collegati",
"prefs.live_input": "Input in tempo reale",
"prefs.live_preview": "Anteprima dal vivo",
@@ -1856,14 +1927,36 @@
"prefs.origin_plane_names": "Nomi dei piani di origine",
"prefs.origin_plane_names_note": "Nomi mostrati nella Struttura, nelle finestre di dialogo e negli elenchi. {top} è XY, {front} è XZ e {right} è YZ, con Z verso l'alto. Comandi, script e progetti salvati mantengono XY, XZ e YZ.",
"prefs.overall_speed": "Velocità complessiva",
"prefs.perspective_fov": "Campo visivo",
"prefs.placement": "Posizione",
"prefs.prefer_free_sketch_points": "Preferisci i punti dello schizzo mobili quando i punti si sovrappongono",
"prefs.preview_choices": "Anteprima delle tue scelte",
"prefs.profile_active": "Profilo attivo",
"prefs.profile_applied": "Profilo applicato.",
"prefs.profile_changed": "Le impostazioni sono cambiate da quando il profilo è stato salvato. Salva le conserva nel profilo.",
"prefs.profile_deleted": "Profilo eliminato.",
"prefs.profile_export": "Esporta…",
"prefs.profile_exported": "Profilo esportato.",
"prefs.profile_imported": "Profilo importato. Sceglilo in Profilo attivo per passare a esso.",
"prefs.profile_name_hint": "Nome del profilo, ad es. Portatile",
"prefs.profile_rename": "Rinomina",
"prefs.profile_renamed": "Profilo rinominato.",
"prefs.profile_save": "Salva",
"prefs.profile_saved": "Impostazioni attuali salvate nel profilo.",
"prefs.profile_skipped": "Profilo applicato; {n} impostazioni hanno mantenuto il valore attuale (vedi il registro).",
"prefs.profiles": "Profili delle impostazioni",
"prefs.profiles_note": "Scorciatoie, barra degli strumenti, navigazione, menu radiale e impostazioni dell'interfaccia, raccolti sotto un nome e cambiati tutti insieme.",
"prefs.project_options_dialog": "Finestra delle opzioni di Proietta",
"prefs.project_options_dialog_note": "Attivo: scegli Geometria o Corpi e Collegamento di proiezione prima di proiettare. Disattivato: mantiene il flusso di lavoro precedente con selezione diretta.",
"prefs.quality_default": "predefinito",
"prefs.quality_fastest": "più veloce",
"prefs.quality_slowest": "più lento",
"prefs.quality_smoother": "più fluido",
"prefs.render_previous_geometry_budget": "Usa il budget di geometria precedente per l'anteprima di Rendering",
"prefs.render_previous_geometry_budget_help": "Ripristina il limite fisso di geometria precedente (512 MiB su desktop a 64 bit, 128 MiB altrove) invece del budget basato sul dispositivo.",
"prefs.reports_saved": "{n} salvati",
"prefs.ribbon_reveal": "Mostra i risultati della ricerca nella barra multifunzione",
"prefs.ribbon_reveal_note": "Passando il puntatore su un risultato in Cerca comandi si vede dove si trova il comando nella barra multifunzione: la sua scheda, il suo pulsante o la sua riga nel menu a discesa di un pannello. Un comando avviato dalla ricerca lampeggia lì, e un comando in esecuzione da un menu a discesa ne evidenzia il pannello.",
"prefs.right_click": "Clic destro",
"prefs.saving": "Salvataggio automatico e ripristino",
"prefs.scale_note": "Anche Ctrl + / Ctrl − nella finestra. I pulsanti sono 28 px al 100%.",
@@ -1877,6 +1970,10 @@
"prefs.shift_add_ctrl_toggle": "Shift solo aggiunge; Ctrl / Cmd alterna",
"prefs.shift_add_note": "Attivo: Shift aggiunge, Ctrl / Cmd alterna. Disattivo (predefinito): entrambi alternano.",
"prefs.shortcuts": "Scorciatoie",
"prefs.single_surface_analysis": "Usa una sola analisi della superficie",
"prefs.single_surface_analysis_help": "Se disattivato, l'ombreggiatura della superficie e Continuità possono restare attive insieme. Se attivato, resta solo l'ultima analisi avviata o modificata.",
"prefs.sketch_align_points": "Allinea agli altri punti dello schizzo durante il disegno",
"prefs.sketch_align_points_note": "Durante il disegno, un punto si allinea contemporaneamente in orizzontale con un punto dello schizzo e in verticale con un altro, con una guida punteggiata, e il clic mantiene entrambi gli allineamenti. Disattivato: solo con il punto precedente, un asse alla volta.",
"prefs.sketch_conflict_colour": "Geometria in conflitto nel colore di conflitto",
"prefs.sketch_conflict_colour_note": "Quando i vincoli di uno schizzo sono in conflitto, anche le curve e i punti interessati da un vincolo in errore vengono disegnati con il colore di conflitto, non solo il suo simbolo o la sua quota. Disattivato: mantengono i colori abituali.",
"prefs.sketch_exit_view": "Al termine di uno schizzo",
@@ -1884,6 +1981,8 @@
"prefs.sketch_exit_view.previous": "Torna alla vista precedente",
"prefs.sketch_exit_view.unless_rotated": "Torna, se non ruotata",
"prefs.sketch_exit_view_note": "Dove va la vista dopo Termina schizzo, Annulla o un doppio Esc.",
"prefs.sketch_recent_snap": "Aggancia automaticamente ai centri e punti medi recenti",
"prefs.sketch_recent_snap_note": "Durante il disegno, il cursore si aggancia dove si incrociano le guide degli ultimi due centri di cerchio o punti medi di segmento. Disattivato: queste guide restano solo visive e il cursore non si sposta.",
"prefs.sketch_selection": "Schizzo e selezione",
"prefs.sketch_selection_heading": "Schizzo e selezione",
"prefs.sketch_selection_note": "Come si agganciano gli schizzi e come selezionano i clic.",
@@ -1921,7 +2020,14 @@
"prefs.toast_place": "Avvisi",
"prefs.toggle_item": "Aggiungi l'elemento o toglilo di nuovo",
"prefs.toolbar": "Barra degli strumenti",
"prefs.toolbar_tabs": "Schede della barra degli strumenti",
"prefs.top": "In alto",
"prefs.trackpad_zoom_modifier": "Zoom con lo scorrimento a due dita tenendo premuto",
"prefs.trackpad_zoom_modifier.alt": "⌥ / Alt",
"prefs.trackpad_zoom_modifier.cmd": "⌘",
"prefs.trackpad_zoom_modifier.ctrl": "Ctrl",
"prefs.trackpad_zoom_modifier.help": "Tieni premuto solo questo tasto per eseguire lo zoom sul puntatore con lo scorrimento verticale. Disattivato mantiene il comportamento di scorrimento attuale.",
"prefs.trackpad_zoom_modifier.off": "Disattivato",
"prefs.translucent": "Traslucido",
"prefs.under_browser": "Sotto la Struttura",
"prefs.under_cursor": "Sotto il cursore",
@@ -1937,6 +2043,8 @@
"prefs.wheel": "Rotellina",
"prefs.wheel_trackpad": "Rotellina e trackpad",
"prefs.workspace": "Area di lavoro",
"prefs.zoom_stop_at_model": "Ferma lo zoom sul modello",
"prefs.zoom_stop_at_model_tip": "Il mouse 3D e l'app del dispositivo eseguono lo zoom verso la superficie al centro della vista; lo zoom con trascinamento mantiene il punto in cui è iniziato il trascinamento. Disattivato: lo zoom può attraversare il modello. Rotellina e pizzicamento usano separatamente Zoom verso il cursore",
"prefs.zoom_toward_cursor": "Zoom verso il cursore",
"properties.title": "Proprietà: {name}",
"recovery.days_ago": "{count} giorni fa",
@@ -2025,6 +2133,7 @@
"render.appearance_editor.weight": "Peso",
"render.appearance_physics_separate": "L'aspetto visivo non assegna densità, dati termici o altre proprietà ingegneristiche.",
"render.appearances": "Aspetti",
"render.assign_help": "Fai clic per applicare alla selezione; trascina per vedere l'anteprima e rilascia, oppure, senza nulla selezionato, fai clic per applicare con il pennello.",
"render.availability_native": "Composizione nativa; verifica prima di applicare",
"render.availability_projection": "Proiezione supportata; vedi ambito e omissioni",
"render.availability_reference": "Dati di riferimento; non è un'assegnazione automatica",
@@ -2063,6 +2172,7 @@
"render.bloom_threshold": "Soglia lineare delle alte luci",
"render.browse_capabilities": "Esamina il catalogo completo delle funzionalità",
"render.browse_environments": "Sfoglia gli ambienti HDR originali",
"render.browse_looks": "Sfoglia…",
"render.browse_native_scenes": "Sfoglia gli studi nativi",
"render.browse_physical": "Esamina i riferimenti fisici",
"render.browse_quality": "Esamina le specifiche di qualità",
@@ -2086,6 +2196,82 @@
"render.check_opaque": "Trasparenza: solo superfici opache; l'alfa dello sfondo è supportato.",
"render.check_sorted_alpha": "Trasparenza: approssimazione alfa ordinata.",
"render.check_transmission": "Trasparenza: trasmissione fisica.",
"render.children.absolute_floor": "Soglia minima assoluta",
"render.children.adaptive": "Adattivo",
"render.children.add_look_reason": "Aggiungi un look per modificarne l'attivazione e l'intensità.",
"render.children.all_shots": "Tutte le inquadrature",
"render.children.bloom": "Bloom",
"render.children.check": "Verifica",
"render.children.check_now": "Verifica ora",
"render.children.chromatic": "Scostamento cromatico",
"render.children.compact": "Compatto",
"render.children.contrast": "Contrasto",
"render.children.copy_image": "Copia",
"render.children.copy_job": "Copia JSON del lavoro",
"render.children.copy_request": "Copia JSON della richiesta",
"render.children.coverage_error": "Errore di copertura",
"render.children.cpu": "Ray tracing su CPU",
"render.children.denoise": "Riduci il rumore nell'immagine finale",
"render.children.depth": "Profondità del percorso",
"render.children.distortion": "Distorsione",
"render.children.edge_samples": "Campioni dei bordi",
"render.children.effects_banner": "Questi effetti richiedono il path tracing su GPU. Aprire questa sezione non cambia mai il metodo.",
"render.children.enable_adaptive": "Abilita i piloti indipendenti per modificare i limiti adattivi.",
"render.children.enable_bloom": "Abilita il bloom per modificarne intensità, soglia e raggio.",
"render.children.finishing": "Finitura",
"render.children.flare": "Flare",
"render.children.fresnel": "Strati di Fresnel",
"render.children.ghosts": "Anelli fantasma",
"render.children.glass": "Trasporto nel vetro",
"render.children.go_to": "Vai a {editor}",
"render.children.grain": "Grana",
"render.children.halo": "Alone",
"render.children.hdr": "HDR",
"render.children.keep_master": "Conserva il master lineare grezzo",
"render.children.last_result": "Ultimo: {number} · {width} × {height} · {phase}",
"render.children.lens_effects": "Effetti obiettivo",
"render.children.look_summary": "{tone} · {count} look",
"render.children.looks": "Look creativi",
"render.children.memory": "Memoria",
"render.children.method": "Metodo",
"render.children.minimum": "Minimo",
"render.children.needs_cpu": "Richiede il ray tracing su CPU. Aprire questa sezione non cambia mai il metodo.",
"render.children.nested": "Dielettrici annidati certificati",
"render.children.not_checked": "Non verificato",
"render.children.path": "Path tracing",
"render.children.pilots": "Campioni pilota",
"render.children.preview": "Payload dell'anteprima",
"render.children.progressive_reason": "Scegli Progressiva per modificarne il numero di campioni e il seme.",
"render.children.radius": "Raggio",
"render.children.reflect_depth": "Profondità delle riflessioni",
"render.children.reflect_samples": "Campioni di riflessione",
"render.children.regrade": "Correzione colore",
"render.children.relative_error": "Errore relativo",
"render.children.render": "Rendering",
"render.children.render_shot": "Renderizza inquadratura",
"render.children.renderer": "Motore di rendering",
"render.children.renderers": "Motori di rendering",
"render.children.request": "Questa richiesta",
"render.children.reset_finishing": "Reimposta finitura",
"render.children.review_quality": "Esamina una specifica di qualità…",
"render.children.rgb_gain": "Guadagno RGB",
"render.children.samples": "Campioni",
"render.children.sampling": "Campionamento",
"render.children.saturation": "Saturazione",
"render.children.scene_summary": "{bodies} corpi · {triangles} triangoli",
"render.children.seed": "Seme",
"render.children.sharpening": "Nitidezza",
"render.children.single_image": "Immagine singola",
"render.children.soft_focus": "Messa a fuoco morbida",
"render.children.streak": "Striatura",
"render.children.strength": "Intensità",
"render.children.studio": "Studio",
"render.children.threshold": "Soglia",
"render.children.tone": "Tono",
"render.children.under_hood": "Dettagli tecnici",
"render.children.vignette": "Vignettatura",
"render.children.workstation": "Workstation",
"render.choose_look": "Scegli prima un aspetto in Aspetti",
"render.chromatic_offset": "Scostamento cromatico dei bordi",
"render.clear_stage": "Rimuovi la scenografia salvata",
"render.copy_request": "Copia JSON",
@@ -2337,8 +2523,33 @@
"render.flare_strength": "Intensità del flare sulle alte luci",
"render.flare_threshold": "Soglia del flare lineare della scena",
"render.fold_browser": "Comprimi struttura",
"render.frame_aspect": "Proporzioni",
"render.frame_centre_mark": "Segno centrale",
"render.frame_copy_limit": "Nessun nome disponibile per l'inquadratura duplicata",
"render.frame_copy_name": "{name} copia {number}",
"render.frame_custom": "Personalizzato",
"render.frame_distance_unit": " × dimensione",
"render.frame_duplicate": "Duplica",
"render.frame_exposure": "Esposizione",
"render.frame_fov": "Campo visivo",
"render.frame_guides": "Guide",
"render.frame_invalid_aspect": "Preimpostazione delle proporzioni non valida",
"render.frame_lens": "FOV {fov}° · ≈ {mm} mm",
"render.frame_name": "Nome",
"render.frame_output_size": "Dimensioni di uscita",
"render.frame_photo": "3:2 · Foto",
"render.frame_portrait": "4:5 · Ritratto",
"render.frame_presets": "Preimpostazioni del fotogramma",
"render.frame_presets_pending": "In arrivo con l'editor delle inquadrature",
"render.frame_projection": "Proiezione",
"render.frame_render_shot": "Renderizza questa inquadratura",
"render.frame_rule_thirds": "Regola dei terzi",
"render.frame_safe_area": "Area di sicurezza",
"render.frame_shot_title": "Inquadratura · {name}",
"render.frame_square": "1:1 · Quadrato",
"render.frame_tall": "9:16 · Verticale",
"render.frame_thirds": "Terzi",
"render.frame_wide": "16:9 · Panoramico",
"render.gpu_depth": "Profondità massima del percorso",
"render.gpu_options_help": "Campioni, profondità, seed ed esposizione vengono salvati con questa impostazione. Viene salvato solo il metodo di generazione attivo.",
"render.gpu_path_failed": "Path tracer GPU non disponibile",
@@ -2366,6 +2577,7 @@
"render.heading_results": "RISULTATI",
"render.heading_shots": "INQUADRATURE",
"render.hide_shots_label": "Nascondi la barra delle inquadrature",
"render.hover_look": "{object} · {look} · fai clic per selezionare",
"render.image_advanced": "Controlli GPU avanzati",
"render.image_cancelled": "Rendering annullato",
"render.image_cancelling": "Annullamento",
@@ -2512,17 +2724,95 @@
"render.library_uniform_ack": "Usa l'approssimazione uniforme senza effetti spaziali o avanzati",
"render.library_usable": "Proiezioni eseguibili",
"render.library_users": "Usato da",
"render.light_aim": "Punta verso",
"render.light_anchor_pending": "La modifica del sistema di coordinate delle luci non è ancora supportata.",
"render.light_azimuth": "Azimut",
"render.light_backend_limit": "Scegli il ray tracing su CPU o uno studio GPU esplicito per modificare le luci. Le luci dello studio GPU di vecchio tipo restano di sola lettura.",
"render.light_behaviour": "COMPORTAMENTO",
"render.light_default_fill": "Riempimento",
"render.light_default_key": "Principale",
"render.light_default_number": "Luce {number}",
"render.light_default_rim": "Controluce",
"render.light_delete": "Elimina",
"render.light_distance": "Distanza",
"render.light_duplicate": "Duplica",
"render.light_elevation": "Elevazione",
"render.light_gpu_punctual": "Le luci puntiformi e spot sono disponibili con il ray tracing su CPU.",
"render.light_hard_shadow": "Questa luce ha ombre nette; la morbidezza dell'emettitore non è disponibile.",
"render.light_intensity": "Intensità",
"render.light_missing": "Questa luce non esiste più. Seleziona una luce nella Struttura.",
"render.light_place_highlight": "Posiziona in base al riflesso",
"render.light_place_pending": "Il posizionamento in base al riflesso richiede la selezione delle luci nella vista e non è ancora supportato.",
"render.light_position": "POSIZIONE",
"render.light_preview_help": "La vista live è senza ombre; le luci ad area usano un'approssimazione con un campione centrale. Il rendering usa il modello di luce completo.",
"render.light_product_centre": "Centro del prodotto",
"render.light_size": "Dimensioni",
"render.light_softness": "Morbidezza",
"render.light_temperature": "Temperatura di colore",
"render.light_temperature_help": "Tinta approssimata del corpo nero; salvata come RGB lineare.",
"render.light_type": "Tipo",
"render.light_type_area": "Area",
"render.light_type_point": "Puntiforme",
"render.light_type_spot": "Spot",
"render.light_type_sun": "Sole",
"render.light_view_only": "Isola e silenzia agiscono su questa vista e sui suoi rendering; non vengono mai salvati nel progetto.",
"render.light_world_origin": "Origine globale",
"render.lighting_aim_point": "Punto di mira",
"render.lighting_apply": "Applica preimpostazione",
"render.lighting_area_samples": "Campioni delle luci ad area",
"render.lighting_budget": "Budget",
"render.lighting_budget_help": "I conteggi sono di sola lettura. Aggiungi, duplica o elimina luci per cambiarli; i limiti dipendono dal metodo.",
"render.lighting_colour": "Colore",
"render.lighting_consent": "Sostituisci le luci direzionali con questa preimpostazione",
"render.lighting_custom": "Luci personalizzate",
"render.lighting_custom_help": "Scegliendo Personalizzato, la preimpostazione diventa un insieme di luci modificabili, ognuna con una riga nella struttura.",
"render.lighting_direction": "Direzione X Y Z",
"render.lighting_direction_help": "Oppure digita una direzione verso la luce (X Y Z).",
"render.lighting_distance_unit": " × dimensione",
"render.lighting_edge_u": "Vettore del lato U",
"render.lighting_edge_v": "Vettore del lato V",
"render.lighting_falloff": "Attenuazione",
"render.lighting_falloff_help": "L'intensità è indicata alla distanza di riferimento.",
"render.lighting_height": "Altezza V",
"render.lighting_minimum": "Distanza minima",
"render.lighting_mute": "Silenzia questa luce",
"render.lighting_point": "Puntiforme",
"render.lighting_preset": "Preimpostazione dello studio",
"render.lighting_preset_cpu": "Le preimpostazioni direzionali dello studio richiedono il ray tracing su CPU. L'illuminazione GPU usa luci Sole e Area esplicite.",
"render.lighting_preset_row": "Preimpostazione",
"render.lighting_radiance": "Radianza",
"render.lighting_reference": "Distanza di riferimento",
"render.lighting_review_help": "Sostituisce l'elenco delle luci direzionali. Mantiene le luci puntiformi e ad area, l'ambiente, le ombre, la camera e tutte le altre impostazioni dell'inquadratura.",
"render.lighting_review_title": "Esamina la preimpostazione di illuminazione",
"render.lighting_samples_cpu": "I campioni delle luci ad area si applicano al ray tracing su CPU.",
"render.lighting_samples_need_area": "Aggiungi una luce ad area CPU per impostare i campioni delle luci ad area.",
"render.lighting_samples_reason": "I campioni delle luci ad area devono essere 1, 4, 16 o 64.",
"render.lighting_shadow_cpu": "L'interruttore delle ombre richiede il ray tracing su CPU. Il path tracing su GPU proietta sempre le ombre.",
"render.lighting_shadows": "Proietta ombre",
"render.lighting_shadows_section": "Ombre e campionamento",
"render.lighting_shape": "Forma",
"render.lighting_solo": "Isola questa luce",
"render.lighting_source": "Sorgente",
"render.lighting_source_section": "Sorgente luminosa",
"render.lighting_spot_preserved": "Questa luce puntiforme mantiene il cono dello spot salvato finché non se ne cambia il tipo.",
"render.lighting_sun_distance": "La direzione del sole non dipende dalla distanza né dal punto di mira.",
"render.lighting_unsupported": "non supportato",
"render.lighting_used": "{used} di {limit}",
"render.lighting_width": "Larghezza U",
"render.lighting_world_position": "X Y Z globali",
"render.lights_fixed_to": "Luci fissate a",
"render.linear_help": "Mantiene un master RGBA float a 32 bit prima di riduzione del rumore, esposizione, tone mapping, filtri e sfondo. sRGB lineare/D65; con alfa premoltiplicato dalla copertura. La memoria aggiuntiva viene ammessa esplicitamente. Nessuna compressione né passate aggiuntive.",
"render.linear_retain": "Conserva EXR lineare grezzo",
"render.linear_unavailable": "L'immagine completata selezionata non ha un EXR conservato. Abilita la conservazione prima del rendering; un PNG precedente non può recuperare la radianza grezza.",
"render.look_add": "Aggiungi look cromatico",
"render.look_applied": "{name} applicato",
"render.look_bleach": "Ispirato al bleach bypass",
"render.look_cool": "Freddo",
"render.look_cyanotype": "Ispirato alla cianotipia",
"render.look_faded": "Stampa sbiadita",
"render.look_material": "Materiale",
"render.look_mono": "Monocromatico",
"render.look_pasted": "Aspetto incollato",
"render.look_sepia": "Seppia",
"render.look_strength": "Intensità del look",
"render.look_teal_orange": "Turchese / arancione",
@@ -2598,9 +2888,11 @@
"render.output_advanced": "Avanzate",
"render.output_backend_ready": "Pronto",
"render.output_check": "Verifica",
"render.output_check_failed": "Verifica · errore",
"render.output_check_help": "Esegui Verifica per esaminare questa richiesta senza avviare un rendering.",
"render.output_check_summary": "Verifica · Note: {count}",
"render.output_copy": "Copia",
"render.output_copy_report": "Copia rapporto",
"render.output_destination": "Destinazione",
"render.output_destination_help": "Scegli il file di destinazione quando esporti l'immagine completata.",
"render.output_dimensions": "Dimensioni",
@@ -2610,6 +2902,7 @@
"render.output_fit": "Adatta",
"render.output_format": "Formato",
"render.output_format_status": "Il PNG è l'immagine visualizzata completata, esattamente com'è. L'EXR GPU facoltativo conserva la radianza FLOAT32 lineare della scena, grezza, prima dei filtri di visualizzazione. L'esportazione non sostituisce mai la cache dell'anteprima né un lavoro diverso.",
"render.output_grading": "Correzione colore",
"render.output_image": "Immagine",
"render.output_largest": "max {width} × {height}",
"render.output_lock_ratio": "Blocca proporzioni",
@@ -2619,6 +2912,8 @@
"render.output_quality_waiting": "in attesa del contratto di qualità",
"render.output_ratio_refused": "La dimensione collegata supera il limite di dimensioni di questo metodo. Viene mantenuta la dimensione precedente; sblocca le proporzioni o scegli un valore più piccolo.",
"render.output_ready": "Pronto per il rendering",
"render.output_run_check": "Esegui verifica",
"render.output_size_limit": "{method}: fino a {dimension} px per lato e {pixels} pixel. Dimensioni massime consentite: {width} × {height}.",
"render.output_size_ok": "Dimensioni OK · {width} × {height} px",
"render.output_swap_orientation": "Scambia larghezza e altezza",
"render.output_tools_inspector": "Modifica dimensioni e formato nell'ispettore Uscita.",
@@ -2635,6 +2930,7 @@
"render.page_output": "Uscita",
"render.page_scene": "Scena",
"render.paint_label": "Vernice",
"render.painting_with": "Applicazione di {name} con il pennello",
"render.passive_stage": "Piano d'appoggio e scenografia passiva",
"render.passive_stage_help": "I pannelli passivi finiti appartengono solo alle immagini renderizzate. Non aggiungono corpi CAD né massa. Il posizionamento è fisso dopo l'applicazione; se intersecano l'ingombro del prodotto, vengono rifiutati. La CPU non fornisce illuminazione diffusa di rimbalzo.",
"render.perspective": "Camera prospettica",
@@ -2656,6 +2952,7 @@
"render.pick_help": "Scegli Corpo, Faccia o Componente. Fai clic nello spazio vuoto per deselezionare; Shift o Ctrl aggiunge o commuta la selezione. Le evidenziazioni compaiono solo nella vista live del prodotto.",
"render.pick_label": "Seleziona",
"render.pick_up_label": "Preleva",
"render.pick_up_prompt": "Fai clic su un oggetto per prelevarne l'aspetto",
"render.pick_waiting": "La selezione sul prodotto non è ancora supportata.",
"render.post_contrast": "Contrasto",
"render.post_gain_b": "Guadagno blu",
@@ -2695,13 +2992,17 @@
"render.radial_distortion": "Distorsione radiale",
"render.radial_fit": "Inquadra prodotto",
"render.radial_save": "Salva inquadratura",
"render.recent_looks": "Aspetti recenti",
"render.regrade_action": "Correggi il colore del master grezzo (senza riduzione del rumore)",
"render.regrade_help": "Crea un PNG separato dal master grezzo completato selezionato, usando questi controlli di presentazione. Non traccia raggi, non modifica dimensioni, camera o luci acquisite e non sovrascrive l'EXR. La riduzione del rumore non viene riapplicata: i master grezzi non conservano le sue guide. Il derivato resta esportabile con gli stessi controlli del lavoro.",
"render.regrade_label": "Correzione colore",
"render.reload_settings": "Ricarica impostazioni salvate",
"render.remove_override": "Rimuovi sostituzione",
"render.replace_all": "Sostituisci tutto",
"render.replace_ground": "Conferma la sostituzione della scenografia esistente",
"render.replace_label": "Sostituisci",
"render.replace_saved_surface": "Sostituisci un'associazione salvata esistente per questa destinazione",
"render.replace_with": "Sostituisci con",
"render.restore_camera": "Ripristina camera salvata",
"render.result_actual": "100%",
"render.result_actual_help": "Un pixel dell'immagine per ogni pixel dello schermo.",
@@ -2753,14 +3054,28 @@
"render.saved_surface_remove": "Rimuovi l'associazione salvata",
"render.saved_surfaces": "Associazioni di superficie salvate",
"render.saved_surfaces_help": "Le mappe integrate fissate seguono l'occorrenza selezionata in millimetri locali. Una destinazione sostituita o mancante è un errore, mai una riassegnazione automatica.",
"render.scene_all_shots": "Tutte le inquadrature ({count})",
"render.scene_apply": "Applica lo studio esaminato",
"render.scene_batch_reason": "Tutte le inquadrature richiede la coda di rendering delle inquadrature salvate, che non è ancora disponibile.",
"render.scene_check_now": "Verifica ora",
"render.scene_check_passed": "Verifica superata · {notes} note",
"render.scene_check_stale": "Verifica non aggiornata · verifica di nuovo",
"render.scene_check_unchecked": "Non ancora verificato · 0 note",
"render.scene_consent": "Conferma la sostituzione di illuminazione, ambiente, esposizione e scenografia",
"render.scene_light_summary": "{environment} · {lights} luci",
"render.scene_look_summary": "{looks} aspetti · {overrides} sostituzioni",
"render.scene_open_check": "Apri Verifica",
"render.scene_preserved_fields": "Camera, campionamento, dimensioni, associazioni ottiche, geometria CAD e materiali ingegneristici vengono conservati.",
"render.scene_preserves_design": "Compone l'illuminazione e un set passivo per il soggetto visibile. Geometria, materiali ingegneristici e camera restano separati.",
"render.scene_ready": "Pronto per il rendering",
"render.scene_reminder": "Scena preserva il progetto. Geometria, proprietà tecniche e CAD non vengono mai modificati da Rendering.",
"render.scene_reminders": "Promemoria",
"render.scene_renderer_ready": "{renderer} pronto",
"render.scene_replaces": "Sostituisce",
"render.scene_review": "Risolvi ed esamina",
"render.scene_review_help": "Esamina la composizione nativa completa prima di applicarla. Le specifiche SCENE avanzate non associate non vengono sostituite.",
"render.scene_scope_details": "Ambito della composizione",
"render.scene_stages": "Fasi",
"render.search_appearances": "Cerca tra {count} aspetti",
"render.setup_legacy_environment": "Questa impostazione precedente usa la rotazione o l'intensità dell'ambiente nel formato obsoleto. Questi valori vengono conservati; convertili esplicitamente prima di salvare un lavoro immagine completo.",
"render.setup_name": "Nome dell'impostazione",
@@ -2773,7 +3088,22 @@
"render.shell_tab_camera": "CAMERA RENDERING",
"render.shell_tab_lighting": "ILLUMINAZIONE",
"render.shell_tab_scene": "SCENA RENDERING",
"render.shot_aperture": "Apertura",
"render.shot_distance": "Distanza",
"render.shot_dof": "Profondità di campo",
"render.shot_duplicate": "Duplica l'inquadratura salvata",
"render.shot_edit_output": "Modifica in Uscita",
"render.shot_exposure_reason": "L'esposizione richiede il ray tracing su CPU o il path tracing su GPU.",
"render.shot_exposure_section": "Esposizione",
"render.shot_focus_distance": "Distanza di messa a fuoco",
"render.shot_fov_reason": "Il campo visivo richiede la proiezione prospettica.",
"render.shot_frame_subject": "Inquadra il soggetto",
"render.shot_invalid_camera": "I valori della camera devono essere finiti e compresi nell'intervallo.",
"render.shot_lens": "Obiettivo",
"render.shot_lens_enable_reason": "Abilita la profondità di campo per modificare apertura e distanza di messa a fuoco.",
"render.shot_lens_gpu_reason": "La profondità di campo richiede il path tracing su GPU.",
"render.shot_lens_perspective_reason": "La profondità di campo richiede la proiezione prospettica.",
"render.shot_look_selection": "Mira alla selezione",
"render.shot_manager": "Inquadrature salvate",
"render.shot_new_name": "Nome della nuova inquadratura",
"render.shot_remove": "Rimuovi l'inquadratura salvata",
@@ -2781,6 +3111,9 @@
"render.shot_remove_title": "Rimuovere l'inquadratura salvata?",
"render.shot_rename": "Rinomina l'inquadratura salvata",
"render.shot_saved_only": "Salva prima la bozza attuale. Duplica e Rinomina conservano esattamente le opzioni salvate e i riferimenti alle risorse.",
"render.shot_selection_reason": "Seleziona un corpo o una faccia a cui mirare.",
"render.shot_size": "Dimensioni",
"render.shot_target": "Punto di mira",
"render.shots_camera_changed": "La camera è cambiata da quando l'inquadratura è stata salvata",
"render.shots_name_help": "Inserisci un nome univoco per l'inquadratura corrente.",
"render.shots_no_result": "Ancora nessun rendering",
@@ -3003,6 +3336,13 @@
"render.wait_pick_up": "non ancora supportato: la selezione del prodotto e il prelievo degli aspetti",
"render.wait_replace": "non ancora supportato: la sostituzione di tutti gli usi di un aspetto",
"render.wait_solo": "non ancora supportato: la visibilità delle luci e i controlli di isolamento",
"render.wear_applies_to": "Si applica a",
"render.wear_layer_count": "{count} strati",
"render.wear_layer_one": "{count} strato",
"render.wear_layers": "Strati",
"render.wear_no_layers": "Nessuno strato",
"render.wear_selected_layer": "Strato selezionato",
"render.wear_title": "Usura",
"sample.bracket.about": "Flangia di base con flange sui bordi e un orlo, con una regola da 2 mm",
"sample.bracket.name": "Staffa in lamiera",
"sample.enclosure.about": "Scatola svuotata con labbro, risalti per viti, appoggio e aggancio a scatto",
@@ -3036,6 +3376,7 @@
"select an axis": "seleziona un asse",
"select an axis, a straight or circular edge, or a cylinder, cone or torus face first": "seleziona prima un asse, uno spigolo retto o circolare, oppure una faccia cilindrica, conica o toroidale",
"select bodies first": "seleziona prima dei corpi",
"select components first": "seleziona prima i componenti",
"select corner points, or the two lines of one corner": "seleziona punti d'angolo, oppure le due linee di un angolo",
"select one corner point, or the two lines of one corner": "seleziona un punto d'angolo, oppure le due linee di un angolo",
"select sheet edges first": "seleziona prima gli spigoli della lamiera",
@@ -3054,6 +3395,7 @@
"settings.double_click_components": "Doppio clic su un componente per attivarlo o, se è collegato, per modificarlo sul posto",
"settings.frame_rate_details_note": "Aggiunge un grafico dei tempi degli ultimi fotogrammi con i triangoli disegnati sopra, un istogramma dei tempi dei fotogrammi e ciò che la GPU ha disegnato. Fai clic sulla frequenza nella vista per mostrarli o nasconderli.",
"settings.frame_rate_note": "Mostra i fotogrammi al secondo nell'angolo inferiore destro della vista.",
"settings.insert_lists_open_designs": "Inserisci progetto elenca per primi i progetti aperti in altre schede",
"settings.measure_axis_distances": "Mostra distanze X/Y/Z",
"settings.measure_axis_distances_help": "Mostra le componenti lungo gli assi globali accanto alla distanza totale quando Misura è aperto.",
"settings.msaa_applies_on_restart": "L'antialiasing verrà applicato al prossimo avvio di SolidCraft",
@@ -3078,6 +3420,10 @@
"shortcut.unpin": "Rimuovi fissaggio",
"sketch is missing": "manca lo schizzo",
"sketch.degrees_of_freedom": "{count} gradi di libertà",
"sketch.dimension_added_driven": "Lo schizzo determina già quella quota, quindi è stata aggiunta come quota di riferimento (non di controllo)",
"sketch.dimension_applied": "Quota applicata",
"sketch.dimension_applied_defined": "Quota applicata; parametro `{name}` definito",
"sketch.dimension_applied_renamed": "Quota applicata; parametro denominato `{name}`",
"sketch.dof_left": "{count} gradi di libertà rimanenti",
"sketch.dof_left_one": "{count} grado di libertà rimanente",
"sketch.draw_curves": "Disegna come {linetype}",
@@ -3147,8 +3493,10 @@
"timeline.delete_folders_tip": "Mantieni le loro lavorazioni e le cartelle annidate nella cronologia",
"timeline.delete_folders_with_features_tip": "Elimina le cartelle con tutte le lavorazioni al loro interno e le cartelle annidate",
"timeline.delete_many": "Elimina {count} lavorazioni selezionate",
"timeline.edited_rolled_back": "{name} è cambiato, ma si trova dopo il marcatore della cronologia e quindi non viene costruito: sposta il marcatore oltre per vedere il risultato",
"timeline.feature_error": "Errore: {message}",
"timeline.feature_hint": "Doppio clic per modificare · trascina per riordinare · clic destro per altro",
"timeline.feature_rolled_back": "Riavvolta: dopo il marcatore della cronologia, quindi non costruita",
"timeline.feature_warning": "Avviso: {message}",
"timeline.group": "Nuova cartella di lavorazioni",
"timeline.move_many": "Sposta elementi della sequenza temporale",
@@ -3228,6 +3576,10 @@
"ui.3d_mouse_offer": "Calibrare il mouse 3D corregge gli assi scambiati o invertiti e imposta velocità e sensibilità.",
"ui.3d_mouse_offer_never": "Non mostrare più",
"ui.3d_mouse_offer_swap": "Passa a Hidraw (driver diretto)",
"ui.3d_mouse_orbit": "Orbita",
"ui.3d_mouse_orbit_classic": "Classica",
"ui.3d_mouse_orbit_tip": "Tracciata: il mouse 3D ruota la vista attorno alla parte del modello che si trova al centro della vista all'inizio della rotazione, indicata da una sfera tenue. Classica: attorno al centro della vista",
"ui.3d_mouse_orbit_traced": "Tracciata",
"ui.3d_mouse_reading": "Lettura",
"ui.3d_mouse_reset_axes": "Ripristina assegnazione assi",
"ui.3d_mouse_reset_view": "Ripristina vista",
@@ -3612,6 +3964,7 @@
"ui.constant": "Costante",
"ui.constraints_conflict": "Vincoli in conflitto",
"ui.construction": "Costruzione",
"ui.construction.ribbon_label": "Linee aus.",
"ui.context_menu": "Menu contestuale",
"ui.continuity_g0": "G0 spigolo vivo",
"ui.continuity_g1": "G1 tangenza",
@@ -3703,6 +4056,14 @@
"ui.end_scale": "Scala finale",
"ui.entities": "Entità",
"ui.equal": "Uguale",
"ui.equation_end": "Fine",
"ui.equation_explicit": "Esplicita",
"ui.equation_form": "Forma",
"ui.equation_note": "La variabile è un numero puro: sin(t) la interpreta in radianti. Un risultato senza unità è nell'unità del progetto.",
"ui.equation_parametric": "Parametrica",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Raggio equivalente",
"ui.expand": "Espandi",
"ui.exportDxf": "Esporta DXF…",
@@ -3768,6 +4129,7 @@
"ui.heading_design": "PROGETTAZIONE",
"ui.heading_draft": "SFORMO",
"ui.heading_edit": "MODIFICA",
"ui.heading_equation_curve": "CURVA DA EQUAZIONE",
"ui.heading_extrude": "ESTRUSIONE",
"ui.heading_fillet": "RACCORDO",
"ui.heading_finish_editing": "TERMINA MODIFICA",
@@ -3859,6 +4221,10 @@
"ui.import_ellipsis": "Importa…",
"ui.infinite": "Infinito",
"ui.insert": "Inserisci",
"ui.insert_design.browse": "Sfoglia…",
"ui.insert_design.open_designs": "Progetti aperti",
"ui.insert_design.saved_file": "{name} contiene modifiche non salvate, quindi è stato inserito il file salvato. Salvalo, poi usa Aggiorna collegamenti per includere le modifiche.",
"ui.insert_design.unsaved": "Modifiche non salvate",
"ui.inspect": "Esamina",
"ui.intersect": "Interseca",
"ui.isolate": "Isola",
@@ -4008,6 +4374,18 @@
"ui.project": "Proietta",
"ui.project_face_edges_sketch": "Proietta gli spigoli delle facce nei nuovi schizzi",
"ui.properties": "Proprietà",
"ui.properties.copy_matrix": "Copia matrice",
"ui.properties.first_moments": "Momenti del primo ordine",
"ui.properties.inertia": "Momento d'inerzia",
"ui.properties.inertia_note": "Rispetto al centro di massa, negli assi globali (g·{unit}²)",
"ui.properties.inertia_unavailable": "Non disponibile: la mesh di un corpo non è chiusa.",
"ui.properties.inertia_x": "Ixx, Ixy, Ixz",
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Misurazione…",
"ui.properties.measuring_failed": "La misurazione si è interrotta prima del termine.",
"ui.properties.principal_axis": "Asse principale {number}",
"ui.properties.principal_moments": "Momenti principali",
"ui.pull_direction": "Direzione di estrazione",
"ui.quality": "Qualità",
"ui.quantity": "Quantità",
@@ -4107,7 +4485,11 @@
"ui.sketch": "Schizzo",
"ui.sketch_dimension": "Quota dello schizzo",
"ui.sketch_grid": "Griglia dello schizzo",
"ui.sketch_intersect_geometry": "Geometria",
"ui.sketch_intersect_projection_link": "Collegamento di proiezione",
"ui.sketch_intersect_selection_filter": "Filtro di selezione",
"ui.sketch_modifiers": "Modificatori dello schizzo",
"ui.sketch_project_geometry": "Geometria",
"ui.sketch_scale": "Scala schizzo",
"ui.sketches": "Schizzi",
"ui.slice": "Genera sezioni",
@@ -4158,6 +4540,7 @@
"ui.tab_manage": "Gestisci",
"ui.tab_sheet_metal": "Lamiera",
"ui.tab_view": "Vista",
"ui.tab_weldments": "Saldature",
"ui.tangent": "Tangente",
"ui.taper_angle": "Angolo di rastremazione",
"ui.tapped": "Maschiato",
@@ -4173,6 +4556,7 @@
"ui.tip_angle": "Angolo della punta",
"ui.to_object": "Fino all'oggetto",
"ui.tool_direction": "Direzione dell'utensile",
"ui.toolbar_tabs_hidden": "Tutte le schede della barra degli strumenti sono nascoste. Fai clic su + o fai clic destro qui per mostrarne una.",
"ui.top": "Superiore",
"ui.top_diameter": "Diametro superiore",
"ui.top_radius": "Raggio superiore",
@@ -4219,6 +4603,7 @@
"ui.visual_shaded_with_edges": "Ombreggiato con spigoli",
"ui.visual_style": "Stile di visualizzazione",
"ui.visual_wireframe": "Reticolo",
"ui.wheel_zoom_speed": "Velocità di zoom della rotellina del mouse",
"ui.width": "Larghezza",
"ui.window_system": "Sistema di finestre",
"ui.window_system_auto": "Automatico",
@@ -4270,6 +4655,9 @@
"update.prefs_label": "Aggiornamenti",
"update.prefs_note": "Questa è la versione SolidCraft {version} ({kind}). Il controllo richiede a GitHub l'ultima versione e non invia altri dati.",
"update.prefs_web": "Ricarica la pagina per ottenere l'ultima versione dell'app web. Se la rete non è disponibile o l'aggiornamento non riesce a finire il download in tempo, si apre invece la versione salvata; un download in corso continua per il prossimo ricaricamento.",
"update.refresh_checking": "Ricerca della versione più recente…",
"update.refresh_fallback": "Impossibile cercare una versione più recente; aggiornamento a {version}, trovata in precedenza.",
"update.refresh_selected": "Aggiornamento a {version}.",
"update.release_page": "Apri pagina della versione",
"update.restart": "Riavvia ora",
"update.restart_later": "Più tardi",
+83
View File
@@ -775,6 +775,8 @@
"at the face": "面の位置",
"bom.group_children": "サブパーツを親パーツの行に含める",
"browser.body_name": "ボディ{number}",
"browser.calibrate_click_a": "画像をクリックして点Aを指定するか、座標を入力してください。",
"browser.calibrate_click_b": "画像をクリックして点Bを指定するか、座標を入力してください。",
"browser.calibrate_title": "尺度を設定: {name}",
"browser.capture_many": "{count}個のコンポーネントが移動されましたが、位置がキャプチャされていません。",
"browser.capture_note": "「位置をキャプチャ」で新しい位置を保持し、「位置を元に戻す」で以前の位置に戻します。",
@@ -817,6 +819,8 @@
"cmd.appearance_pick_up": "外観を取得",
"cmd.appearance_replace": "外観を置換",
"cmd.assembly_bom": "部品表",
"cmd.assembly_bom_item_set": "項目番号の変更",
"cmd.assembly_bom_renumber": "項目番号の振り直し",
"cmd.body_rename": "ボディの名前を変更",
"cmd.browser_collapse_all": "すべて折りたたむ",
"cmd.browser_expand_all": "すべて展開",
@@ -907,6 +911,36 @@
"cmd.document_metadata_set": "デザインのプロパティを変更",
"cmd.document_revision": "デザイン リビジョン",
"cmd.document_units": "デザインの単位を変更",
"cmd.drawing_balloon_add": "バルーンを追加",
"cmd.drawing_balloon_edit": "バルーンを編集",
"cmd.drawing_balloon_inspect": "バルーンを確認",
"cmd.drawing_close": "図面を閉じる",
"cmd.drawing_create": "図面を作成",
"cmd.drawing_delete": "図面を削除",
"cmd.drawing_dimension_add": "図面寸法を追加",
"cmd.drawing_dimension_edit": "図面寸法を編集",
"cmd.drawing_dimension_inspect": "図面寸法を確認",
"cmd.drawing_export": "シートを書き出す",
"cmd.drawing_inspect": "図面を確認",
"cmd.drawing_list": "図面を一覧表示",
"cmd.drawing_open": "図面を開く",
"cmd.drawing_properties": "図面のプロパティ",
"cmd.drawing_properties_remove": "図面のプロパティを削除",
"cmd.drawing_properties_set": "図面のプロパティを変更",
"cmd.drawing_revision_add": "リビジョンを追加",
"cmd.drawing_revision_delete": "リビジョンを削除",
"cmd.drawing_revision_edit": "リビジョンを編集",
"cmd.drawing_scene": "シートを描画",
"cmd.drawing_set": "図面設定",
"cmd.drawing_sheet_add": "シートを追加",
"cmd.drawing_sheet_delete": "シートを削除",
"cmd.drawing_sheet_reorder": "シートを並べ替え",
"cmd.drawing_sheet_set": "シート設定",
"cmd.drawing_view_copy_to_sheet": "ビューをシートにコピー",
"cmd.drawing_view_edit": "図面ビューを編集",
"cmd.drawing_view_inspect": "図面ビューを確認",
"cmd.drawing_view_move_to_sheet": "ビューをシートに移動",
"cmd.drawing_view_snapshot": "図面ビューのスナップショット",
"cmd.edit_checkpoint": "チェックポイント",
"cmd.edit_repeat": "最後のコマンドを繰り返す",
"cmd.edit_restore_checkpoint": "チェックポイントを復元",
@@ -991,6 +1025,7 @@
"cmd.motion_trace_edit": "モーション トレースを編集",
"cmd.motion_trace_keep": "モーション トレースを保持",
"cmd.occurrence_align": "オカレンスを整列",
"cmd.occurrence_bom_type": "部品表の種類",
"cmd.occurrence_copy": "貼り付け(インスタンス)",
"cmd.occurrence_drag": "オカレンスをドラッグ",
"cmd.occurrence_ground": "空間固定",
@@ -1101,6 +1136,16 @@
"cmd.sheet_refold": "折り戻し",
"cmd.sheet_rules": "板金ルールを一覧表示",
"cmd.sheet_unfold": "展開",
"cmd.sketch.construction_line": "補助直線",
"cmd.sketch.construction_line.angle": "角度指定の補助直線",
"cmd.sketch.construction_line.bisector": "角の二等分線",
"cmd.sketch.construction_line.horizontal": "水平補助直線",
"cmd.sketch.construction_line.parallel": "平行補助直線",
"cmd.sketch.construction_line.perpendicular": "直交補助直線",
"cmd.sketch.construction_line.tangent_at": "曲線上の点での接線",
"cmd.sketch.construction_line.tangent_external": "外部点を通る接線",
"cmd.sketch.construction_line.tangent_two": "共通接線",
"cmd.sketch.construction_line.vertical": "垂直補助直線",
"cmd.sketch_arc3d": "3D 円弧",
"cmd.sketch_arc_center_point": "中心点円弧",
"cmd.sketch_arc_tangent": "正接円弧",
@@ -1389,6 +1434,16 @@
"help.occurrence.move": "アセンブリ部品をジョイントが許す自由度だけで動かします。部品の面を選択してから、操作可能な矢印または円弧をドラッグしてください。",
"help.parameters.change": "デザインの寸法を決める名前付きの値と式の表を開きます。1か所で寸法を変え、それを使うすべてのフィーチャに反映させるときに使います。",
"help.pointcloud.insert": "PLY・XYZ・PTS形式のスキャンを点群としてモデルと一緒に挿入します。計測データを参考にモデリングするときに使います。",
"help.sketch.construction_line": "2点を通る無限の補助直線を作成します。スケッチの輪郭を分割せずに作図できます。",
"help.sketch.construction_line.angle": "スケッチのX軸に対して角度を指定し、無限の補助直線を作成します。点を選び、角度を入力するか方向を選びます。",
"help.sketch.construction_line.bisector": "交差する2本のスケッチ直線を選び、2つの角の二等分線から選びます。結果は元の直線の編集に追従します。",
"help.sketch.construction_line.horizontal": "指定点を通る無限の水平補助直線を作成します。後で編集しても水平拘束が維持されます。",
"help.sketch.construction_line.parallel": "スケッチの直線を選び、平行な無限の補助直線を配置します。右クリックで参照を選び直します。",
"help.sketch.construction_line.perpendicular": "スケッチの直線を選び、直交する無限の補助直線を配置します。右クリックで参照を選び直します。",
"help.sketch.construction_line.tangent_at": "円や円弧上の点、または開いたスプラインや円錐曲線の端点に接線を作成します。曲線を選び、接点を選びます。",
"help.sketch.construction_line.tangent_external": "円または円弧、外部点、接線の解を順に選びます。プレビューには描かれた円弧上の接点のみが表示されます。",
"help.sketch.construction_line.tangent_two": "2つの円または円弧を選び、プレビューから共通接線を選びます。接点は描かれた曲線上にある必要があります。",
"help.sketch.construction_line.vertical": "指定点を通る無限の垂直補助直線を作成します。後で編集しても垂直拘束が維持されます。",
"help.sketch.equation_curve": "x(t) と y(t)、または y = f(x) の式から、範囲を指定して曲線を描きます。式にはパラメーターを使え、曲線はその変更に追従します。正弦波、らせん、歯車のインボリュートなどに使います。",
"help.solid.align": "選択した立体を動かし、その点、面、平面を別の場所の点、面、平面に合わせます。距離を測らずに部品を別の部品に当てて配置するときに使います。",
"help.solid.chamfer": "選択した辺を、指定した距離で平らに斜めに削ります。鋭い角を落とすときや、ピンやねじを入れやすくするときに使います。",
@@ -1848,6 +1903,7 @@
"prefs.dialogs_left_column": "左の列",
"prefs.dialogs_note": "コマンドダイアログを開く場所:ビューの端にドッキングするか、左の列でブラウザーと履歴の代わりに表示します。ダイアログを閉じるとブラウザーと履歴は元どおりに戻ります。",
"prefs.display": "表示",
"prefs.drawings": "図面",
"prefs.edges": "エッジと陰影",
"prefs.extend": "拡張",
"prefs.extra_navigation": "何もない場所でCtrl+左ドラッグすると回転し、Spaceを押しながらドラッグすると移動します。",
@@ -1906,6 +1962,9 @@
"prefs.max_file_size_step": "STEP・インポートファイル",
"prefs.max_file_size_web": "ウェブ版で開けるのは STEP・インポートファイルが 512 MB、デザインが 256 MB までです。ブラウザーのタブはそれ以上のファイルを保持できません。デスクトップ版では上限を上げられます。",
"prefs.megabytes": "MB",
"prefs.menu_grid": "大きなアイコン",
"prefs.menu_list": "リスト",
"prefs.menus": "メニュー",
"prefs.minutes": "分",
"prefs.minutes_suffix": " min",
"prefs.mouse": "マウスとトラックパッド",
@@ -1925,6 +1984,8 @@
"prefs.origin_plane_names": "原点平面の名前",
"prefs.origin_plane_names_note": "ブラウザー、ダイアログ、一覧に表示される名前です。{top} は XY、{front} は XZ、{right} は YZ です (Z が上)。コマンド、スクリプト、保存されたデザインでは XY、XZ、YZ のままです。",
"prefs.overall_speed": "全体の速度",
"prefs.persistent_ribbon_pressed": "有効なリボンコマンドを強調表示",
"prefs.persistent_ribbon_pressed_help": "効果が有効な間、リボンのコマンドを強調表示します。無効にすると、従来の中立的な表示とコマンドのヘルプを保持します。",
"prefs.perspective_fov": "画角",
"prefs.placement": "配置",
"prefs.prefer_free_sketch_points": "スケッチ点が重なったときは移動可能な点を優先する",
@@ -1974,11 +2035,16 @@
"prefs.sketch_align_points_note": "描画中、点が一つのスケッチ点と水平に、別の点と垂直に同時に揃い、点線のガイドが表示されます。クリックすると両方の整列が保持されます。オフ: 直前の点にのみ、一度に一方向だけ揃えます。",
"prefs.sketch_conflict_colour": "競合するジオメトリを競合色で表示",
"prefs.sketch_conflict_colour_note": "スケッチの拘束が競合している間、満たされない拘束のグリフや寸法だけでなく、その拘束が保持する曲線と点も競合色で描画します。オフ: 通常の色のままです。",
"prefs.sketch_construction_lines": "拡張補助直線ツール",
"prefs.sketch_exit_view": "スケッチ終了時のビュー",
"prefs.sketch_exit_view.keep": "現在のビューを維持",
"prefs.sketch_exit_view.previous": "前のビューに戻る",
"prefs.sketch_exit_view.unless_rotated": "回転していなければ戻る",
"prefs.sketch_exit_view_note": "「スケッチを終了」、キャンセル、Esc の 2 回押しの後にビューが移る先です。",
"prefs.sketch_open_look_at": "スケッチを開いたときに正対させる",
"prefs.sketch_open_look_at_note": "オフ: スケッチの作成や編集でビューを動かしません。必要なときは「正面視」でスケッチに正対します。",
"prefs.sketch_recent_snap": "最近使った中心と中点へ自動スナップ",
"prefs.sketch_recent_snap_note": "作図中、直前の2つの円の中心または直線辺の中点のガイドが交わる位置にカーソルをスナップします。オフ: ガイドは表示のみで、カーソルは移動しません。",
"prefs.sketch_selection": "スケッチと選択",
"prefs.sketch_selection_heading": "スケッチと選択",
"prefs.sketch_selection_note": "スケッチのスナップとクリックによる選択。",
@@ -2052,6 +2118,10 @@
"properties.title": "プロパティ: {name}",
"recovery.days_ago": "{count}日前",
"recovery.detail": "{file} · {features}フィーチャー · 自動保存: {when}",
"recovery.discard_all": "すべて破棄",
"recovery.discard_all_detail": "この操作は元に戻せません。",
"recovery.discard_all_title": "{count} 件の自動保存を破棄しますか?",
"recovery.discard_all_title_one": "1 件の自動保存を破棄しますか?",
"recovery.hours_ago": "{count}時間前",
"recovery.just_now": "たった今",
"recovery.min_ago": "{count}分前",
@@ -3971,6 +4041,15 @@
"ui.constant": "一定",
"ui.constraints_conflict": "拘束が競合しています",
"ui.construction": "コンストラクション",
"ui.construction.angle_hint": "補助直線: 点をクリックし、角度を入力するか方向を選択",
"ui.construction.bisector_hint": "二等分線: 交差する2直線を選び、必要な解を選択",
"ui.construction.common_hint": "共通接線: 2つの円/円弧を選び、必要な解を選択",
"ui.construction.contact_hint": "接線: 円/円弧または開いたスプライン/円錐曲線を選び、接点を選択 (自由曲線は端点のみ)",
"ui.construction.external_hint": "接線: 円または円弧、外部点、必要な解の順に選択",
"ui.construction.free_hint": "補助直線: 2点をクリック。右クリックで最初から",
"ui.construction.point_hint": "補助直線: 通過点をクリック",
"ui.construction.reference_hint": "補助直線: 直線、点の順に選択。右クリックで参照を変更",
"ui.construction.ribbon_label": "補助線",
"ui.context_menu": "コンテキスト メニュー",
"ui.continuity_g0": "G0 折れ",
"ui.continuity_g1": "G1 接線",
@@ -4095,6 +4174,7 @@
"ui.fine": "細かい",
"ui.finest": "最も細かい",
"ui.finish_sketch": "スケッチを終了",
"ui.first_angle": "第一角法",
"ui.fit": "フィット",
"ui.fix_unfix": "固定/固定解除",
"ui.flat": "展開",
@@ -4379,6 +4459,7 @@
"ui.profiles": "プロファイル",
"ui.project": "投影",
"ui.project_face_edges_sketch": "新規スケッチに面のエッジを自動投影",
"ui.projection_of_new_drawings": "新規図面の投影法",
"ui.properties": "プロパティ",
"ui.properties.copy_matrix": "行列をコピー",
"ui.properties.first_moments": "一次モーメント",
@@ -4437,6 +4518,7 @@
"ui.revolve": "回転",
"ui.ribbon_exit": "終了",
"ui.ribbon_labels": "リボンのアイコンの下にテキストを表示",
"ui.ribbon_menus_skip_pinned": "ピン留めしたコマンドをドロップダウンメニューに表示しない",
"ui.ribbon_pin_footer": "ピン留めしたコマンドはリボンに表示されます。行にポインターを合わせて、ピン留めや解除ができます。",
"ui.ribbon_workspace": "ワークスペース",
"ui.right": "右側面",
@@ -4553,6 +4635,7 @@
"ui.text": "テキスト",
"ui.theme": "テーマ",
"ui.thickness": "厚さ",
"ui.third_angle": "第三角法",
"ui.thread": "ねじ",
"ui.tie_ends": "拘束",
"ui.tie_ends_tip": "未拘束をすべて拘束",
+47
View File
@@ -711,6 +711,8 @@
"cmd.appearance_pick_up": "모양 가져오기",
"cmd.appearance_replace": "모양 바꾸기",
"cmd.assembly_bom": "자재 명세서",
"cmd.assembly_bom_item_set": "항목 번호 변경",
"cmd.assembly_bom_renumber": "항목 번호 다시 매기기",
"cmd.body_rename": "바디 이름 변경",
"cmd.browser_group": "새 그룹",
"cmd.browser_move": "브라우저 항목 이동",
@@ -870,6 +872,7 @@
"cmd.motion_study": "운동 연구",
"cmd.motion_trace": "모션 궤적",
"cmd.motion_trace_keep": "모션 궤적 유지",
"cmd.occurrence_bom_type": "자재 명세서 유형",
"cmd.occurrence_copy": "붙여넣기(인스턴스)",
"cmd.occurrence_ground": "고정",
"cmd.occurrence_move": "인스턴스 이동",
@@ -958,6 +961,16 @@
"cmd.sheet_refold": "다시 접기",
"cmd.sheet_rules": "판금 규칙 목록",
"cmd.sheet_unfold": "펼치기",
"cmd.sketch.construction_line": "보조 직선",
"cmd.sketch.construction_line.angle": "각도 지정 보조 직선",
"cmd.sketch.construction_line.bisector": "각의 이등분선",
"cmd.sketch.construction_line.horizontal": "수평 보조 직선",
"cmd.sketch.construction_line.parallel": "평행 보조 직선",
"cmd.sketch.construction_line.perpendicular": "직교 보조 직선",
"cmd.sketch.construction_line.tangent_at": "곡선 위 점에서의 접선",
"cmd.sketch.construction_line.tangent_external": "외부 점을 지나는 접선",
"cmd.sketch.construction_line.tangent_two": "공통 접선",
"cmd.sketch.construction_line.vertical": "수직 보조 직선",
"cmd.sketch_arc_center_point": "중심점 호",
"cmd.sketch_arc_tangent": "접선 호",
"cmd.sketch_arc_three_point": "3점 호",
@@ -1199,6 +1212,16 @@
"help.mit": "MIT 라이선스",
"help.notice": "NOTICE",
"help.pointcloud.insert": "PLY, XYZ 또는 PTS 스캔을 모델 옆에 포인트 클라우드로 삽입합니다. 측정 데이터를 참고하여 모델링할 때 사용합니다.",
"help.sketch.construction_line": "두 점을 지나는 무한 보조 직선을 만듭니다. 스케치 프로파일을 나누지 않고 작도할 수 있습니다.",
"help.sketch.construction_line.angle": "스케치 X축을 기준으로 지정한 각도의 무한 보조 직선을 만듭니다. 점을 선택한 뒤 각도를 입력하거나 방향을 선택합니다.",
"help.sketch.construction_line.bisector": "교차하는 두 스케치 직선을 선택한 뒤 두 각의 이등분선 중 하나를 선택합니다. 결과는 원본 직선의 편집을 따릅니다.",
"help.sketch.construction_line.horizontal": "한 점을 지나는 무한 수평 보조 직선을 만듭니다. 나중에 편집해도 수평 구속이 유지됩니다.",
"help.sketch.construction_line.parallel": "스케치 직선을 선택한 뒤 평행한 무한 보조 직선을 배치합니다. 다른 참조를 선택하려면 마우스 오른쪽 버튼을 클릭합니다.",
"help.sketch.construction_line.perpendicular": "스케치 직선을 선택한 뒤 직교하는 무한 보조 직선을 배치합니다. 다른 참조를 선택하려면 마우스 오른쪽 버튼을 클릭합니다.",
"help.sketch.construction_line.tangent_at": "원이나 원호 위의 점, 또는 열린 스플라인이나 원뿔 곡선의 끝점에 접선을 만듭니다. 곡선을 선택한 뒤 접점을 선택합니다.",
"help.sketch.construction_line.tangent_external": "원 또는 원호, 외부 점, 접선 해를 차례로 선택합니다. 미리보기에는 그려진 원호 위의 접점만 표시됩니다.",
"help.sketch.construction_line.tangent_two": "두 원 또는 원호를 선택한 뒤 미리보기에서 공통 접선을 선택합니다. 접점은 그려진 곡선 위에 있어야 합니다.",
"help.sketch.construction_line.vertical": "한 점을 지나는 무한 수직 보조 직선을 만듭니다. 나중에 편집해도 수직 구속이 유지됩니다.",
"help.sketch.equation_curve": "범위에 걸쳐 수식으로 곡선을 그립니다: x(t)와 y(t), 또는 y = f(x). 수식에 매개변수를 쓸 수 있으며 곡선이 그 값을 따라갑니다. 사인파, 나선, 기어 이의 인벌류트에 사용합니다.",
"help.solid.chamfer": "선택한 모서리를 지정한 거리만큼 평평하게 깎습니다. 날카로운 모서리를 다듬거나 핀 또는 나사가 쉽게 들어가도록 할 때 사용합니다.",
"help.solid.extrude": "스케치 프로파일을 지정한 거리만큼 3D로 밀어내 재료를 더하거나 제거합니다. 평면 윤곽을 블록, 보스 또는 포켓으로 만들 때 사용합니다.",
@@ -1532,6 +1555,7 @@
"prefs.dialogs_left_column": "왼쪽 열",
"prefs.dialogs_note": "명령 대화 상자가 열리는 위치: 뷰 가장자리에 고정하거나, 왼쪽 열에서 브라우저와 이력 대신 표시합니다. 대화 상자를 닫으면 브라우저와 이력이 그대로 돌아옵니다.",
"prefs.display": "표시",
"prefs.drawings": "도면",
"prefs.edges": "모서리 및 음영",
"prefs.extend": "확장",
"prefs.extra_navigation": "Ctrl+왼쪽 드래그로 빈 공간에서 회전하고, Space를 누른 채 이동합니다.",
@@ -1592,6 +1616,8 @@
"prefs.origin_plane_names": "원점 평면 이름",
"prefs.origin_plane_names_note": "브라우저, 대화 상자, 목록에 표시되는 이름입니다. {top}은 XY, {front}는 XZ, {right}는 YZ이며 Z가 위쪽입니다. 명령, 스크립트, 저장된 디자인은 XY, XZ, YZ를 유지합니다.",
"prefs.overall_speed": "전체 속도",
"prefs.persistent_ribbon_pressed": "활성 리본 명령 강조 표시",
"prefs.persistent_ribbon_pressed_help": "효과가 켜져 있는 동안 리본 명령을 강조 표시합니다. 끄면 이전의 중립적인 모양과 명령 도움말을 유지합니다.",
"prefs.perspective_fov": "시야각",
"prefs.preview_choices": "선택 항목 미리보기",
"prefs.project_options_dialog": "Project 옵션 대화상자",
@@ -1620,6 +1646,11 @@
"prefs.sketch_align_points_note": "그리는 동안 점이 한 스케치 점과 수평으로, 다른 점과 수직으로 동시에 맞춰지고 점선 안내선이 표시됩니다. 클릭하면 두 정렬이 모두 유지됩니다. 끄기: 이전 점에만, 한 번에 한 축씩 맞춥니다.",
"prefs.sketch_conflict_colour": "충돌하는 기하를 충돌 색상으로 표시",
"prefs.sketch_conflict_colour_note": "스케치의 구속 조건이 충돌하는 동안 실패한 구속 조건의 글리프나 치수뿐 아니라 그 구속 조건이 잡고 있는 곡선과 점도 충돌 색상으로 그립니다. 끄기: 평소 색상을 유지합니다.",
"prefs.sketch_construction_lines": "확장 보조 직선 도구",
"prefs.sketch_open_look_at": "스케치를 열 때 정면으로 돌리기",
"prefs.sketch_open_look_at_note": "끄기: 스케치를 만들거나 편집해도 뷰가 그대로입니다. 필요할 때 '바라보기'로 스케치를 정면으로 봅니다.",
"prefs.sketch_recent_snap": "최근 중심과 중점에 자동 스냅",
"prefs.sketch_recent_snap_note": "그리는 동안 최근에 사용한 두 원의 중심 또는 직선 모서리 중점의 안내선이 만나는 위치로 커서를 스냅합니다. 끄기: 안내선은 보기만 하고 커서는 움직이지 않습니다.",
"prefs.sketch_selection": "스케치 및 선택",
"prefs.sketch_selection_heading": "스케치 및 선택",
"prefs.sketch_selection_note": "스케치가 스냅되는 방식과 클릭으로 선택하는 방식입니다.",
@@ -1681,6 +1712,10 @@
"properties.title": "속성: {name}",
"recovery.days_ago": "{count}일 전",
"recovery.detail": "{file} · 피처 {features}개 · {when} 자동 저장",
"recovery.discard_all": "모두 버리기",
"recovery.discard_all_detail": "이 작업은 되돌릴 수 없습니다.",
"recovery.discard_all_title": "자동 저장 {count}개를 버리시겠습니까?",
"recovery.discard_all_title_one": "자동 저장 1개를 버리시겠습니까?",
"recovery.hours_ago": "{count}시간 전",
"recovery.just_now": "방금",
"recovery.min_ago": "{count}분 전",
@@ -3066,6 +3101,15 @@
"ui.constant": "상수",
"ui.constraints_conflict": "구속 조건 충돌",
"ui.construction": "구성선",
"ui.construction.angle_hint": "보조 직선: 점 클릭 후 각도 입력 또는 방향 선택",
"ui.construction.bisector_hint": "이등분선: 교차하는 두 직선 선택 후 원하는 해 선택",
"ui.construction.common_hint": "공통 접선: 두 원/원호 선택 후 원하는 해 선택",
"ui.construction.contact_hint": "접선: 원/원호 또는 열린 스플라인/원뿔 곡선 선택 후 접점 선택 (자유 곡선은 끝점만)",
"ui.construction.external_hint": "접선: 원 또는 원호, 외부 점, 원하는 해를 차례로 선택",
"ui.construction.free_hint": "보조 직선: 두 점 클릭; 마우스 오른쪽 버튼으로 다시 시작",
"ui.construction.point_hint": "보조 직선: 통과할 점 클릭",
"ui.construction.reference_hint": "보조 직선: 직선 선택 후 점 선택; 마우스 오른쪽 버튼으로 참조 변경",
"ui.construction.ribbon_label": "보조선",
"ui.context_menu": "컨텍스트 메뉴",
"ui.continuity_g0": "G0 꺾임",
"ui.continuity_g1": "G1 접선",
@@ -3182,6 +3226,7 @@
"ui.fine": "세밀",
"ui.finest": "가장 세밀",
"ui.finish_sketch": "스케치 종료",
"ui.first_angle": "제1각법",
"ui.fit": "맞춤",
"ui.fix_unfix": "고정/고정 해제",
"ui.flat": "플랫",
@@ -3442,6 +3487,7 @@
"ui.profiles": "프로파일",
"ui.project": "투영",
"ui.project_face_edges_sketch": "면 모서리를 새 스케치로 투영",
"ui.projection_of_new_drawings": "새 도면의 투상법",
"ui.properties": "속성",
"ui.properties.copy_matrix": "행렬 복사",
"ui.properties.first_moments": "1차 모멘트",
@@ -3596,6 +3642,7 @@
"ui.text": "텍스트",
"ui.theme": "테마",
"ui.thickness": "두께",
"ui.third_angle": "제3각법",
"ui.thread": "나사산",
"ui.tie_ends": "연결",
"ui.tie_ends_tip": "연결되지 않은 모든 끝점 구속",
+397
View File
@@ -204,6 +204,7 @@
"Edges": "Tepi",
"Edit": "Sunting",
"Edit Profile Sketch": "Sunting Lakaran Profil",
"Edit shortcuts": "Sunting pintasan",
"Enable rule": "Aktifkan peraturan",
"Enabled": "Diaktifkan",
"End Radius": "Jejari Akhir",
@@ -466,6 +467,7 @@
"Radius": "Jejari",
"Radius Fit": "Padanan Jejari",
"Ratio": "Nisbah",
"Read-only list: shortcuts can't be changed here.": "Senarai baca sahaja: pintasan tidak boleh diubah di sini.",
"Reattach selected face": "Paut semula muka dipilih",
"Recover": "Pulihkan",
"Recover unsaved design?": "Pulihkan reka bentuk belum disimpan?",
@@ -649,6 +651,7 @@
"Third point": "Titik ketiga",
"This child is shared. Deleting it removes it from every copy of its parent.": "Komponen anak dikongsi. Jika dipadam, semua salinan induk turut kehilangannya.",
"This child is shared. Position changes apply to every copy of its parent.": "Komponen anak dikongsi. Kedudukan berubah pada semua salinan induk.",
"This component is inside a subassembly placed more than once: aligning it moves it in every placement.": "Komponen ini berada dalam subpemasangan yang diletakkan lebih daripada sekali: menjajarkannya akan mengalihkannya dalam setiap penempatan.",
"This face cannot provide a durable attachment. Choose another face or explicitly use a fixed plane.": "Muka ini tidak dapat kekalkan pautan. Pilih muka lain atau gunakan satah tetap.",
"This image is not attached to GitHub yet. Copy or save it, then attach it on GitHub.": "Imej ini belum dilampirkan pada GitHub. Salin atau simpannya, kemudian lampirkan di GitHub.",
"Thread depth": "Kedalaman bebenang",
@@ -790,6 +793,11 @@
"cam.roller": "Penggelek",
"cam.roller_pick": "Penggelek (tidak wajib)",
"cam.tip_pick": "Hujung (tidak wajib)",
"camera.shot_pitch": "Pic",
"camera.shot_roll": "Gelek",
"camera.shot_yaw": "Yaw",
"canvas.decal_place_hint": "Klik muka untuk meletakkan dekal",
"canvas.place_hint": "Klik satah atau muka untuk meletakkan kanvas",
"choose a profile": "pilih profil",
"choose the cam's and the follower's joints": "pilih sendi sesondol dan sendi pengikut",
"choose the joints to couple": "pilih sendi yang hendak digandingkan",
@@ -797,9 +805,12 @@
"click sketch curves": "klik lengkung lakaran",
"cmd.appearance_assign": "Penampilan",
"cmd.appearance_chain": "Rantaian Penampilan",
"cmd.appearance_copy": "Salin Gaya",
"cmd.appearance_favorite": "Tanda Gaya Kegemaran",
"cmd.appearance_library": "Koleksi Penampilan",
"cmd.appearance_list": "Senarai Penampilan",
"cmd.appearance_paint": "Cat Penampilan",
"cmd.appearance_paste": "Tampal Gaya",
"cmd.appearance_pick_up": "Ambil Penampilan",
"cmd.appearance_replace": "Gantikan Penampilan",
"cmd.assembly_bom": "Senarai Bahan",
@@ -810,6 +821,7 @@
"cmd.browser_move": "Alih Item Pelayar",
"cmd.browser_order": "Susun Item Pelayar",
"cmd.browser_rename_group": "Tukar Nama Kumpulan",
"cmd.browser_reparent": "Alih ke Komponen",
"cmd.browser_ungroup": "Nyahkumpul",
"cmd.browser_visibility": "Papar/Sembunyi",
"cmd.canvas_calibrate": "Tentukur Kanvas",
@@ -836,7 +848,9 @@
"cmd.component_metadata": "Sifat Bahagian",
"cmd.component_metadata_set": "Tukar Sifat Bahagian",
"cmd.component_move_bodies": "Alih Jasad ke Komponen",
"cmd.component_move_features": "Alih Ciri ke Komponen",
"cmd.component_move_sketches": "Alih Lakaran ke Komponen",
"cmd.component_paste_from_design": "Tampal daripada Reka Bentuk Lain",
"cmd.component_paste_new": "Tampal Baharu",
"cmd.component_properties": "Sifat Fizikal Komponen",
"cmd.component_relink": "Paut Semula Sumber",
@@ -973,6 +987,7 @@
"cmd.motion_trace": "Jejak Gerakan",
"cmd.motion_trace_edit": "Sunting Jejak Gerakan",
"cmd.motion_trace_keep": "Kekalkan Jejak Gerakan",
"cmd.occurrence_align": "Jajarkan Salinan",
"cmd.occurrence_copy": "Tampal (Salinan)",
"cmd.occurrence_drag": "Seret Salinan",
"cmd.occurrence_ground": "Tetapkan",
@@ -1030,11 +1045,17 @@
"cmd.render_library_surface_unbind": "Buang Pengikatan Permukaan",
"cmd.render_library_targets": "Cari Sasaran Koleksi Render",
"cmd.render_lights_add": "Tambah Lampu",
"cmd.render_lights_duplicate": "Gandakan Lampu Render",
"cmd.render_lights_list": "Senarai Lampu Render",
"cmd.render_lights_mute": "Senyapkan Lampu",
"cmd.render_lights_remove": "Buang Lampu Render",
"cmd.render_lights_set": "Tetapkan Lampu Render",
"cmd.render_lights_solo": "Lampu Solo",
"cmd.render_optics_bind": "Simpan Pengikatan Optik",
"cmd.render_optics_unbind": "Buang Pengikatan Optik",
"cmd.render_output_size": "Tetapkan Saiz Keluaran Render",
"cmd.render_preflight": "Semak Permintaan Render",
"cmd.render_preflight_copy": "Salin Laporan Semakan Render",
"cmd.render_preset_apply": "Gunakan Studio Asli",
"cmd.render_preset_resolve": "Semak Studio Asli",
"cmd.render_quality_prepare": "Semak Bajet Pensampelan Tetap",
@@ -1057,6 +1078,13 @@
"cmd.render_start": "Render Imej",
"cmd.render_status": "Kemajuan Render",
"cmd.select_clear": "Kosongkan Pilihan",
"cmd.settings_profile_apply": "Gunakan Profil Tetapan",
"cmd.settings_profile_delete": "Padam Profil Tetapan",
"cmd.settings_profile_export": "Eksport Profil Tetapan",
"cmd.settings_profile_import": "Import Profil Tetapan",
"cmd.settings_profile_list": "Profil Tetapan",
"cmd.settings_profile_rename": "Tukar Nama Profil Tetapan",
"cmd.settings_profile_save": "Simpan Profil Tetapan",
"cmd.sheet_convert": "Tukar kepada Logam Kepingan",
"cmd.sheet_export_bend_table": "Eksport Jadual Lenturan",
"cmd.sheet_export_dxf": "Eksport Bentangan Rata sebagai DXF",
@@ -1070,6 +1098,16 @@
"cmd.sheet_refold": "Lipat Semula",
"cmd.sheet_rules": "Senarai Peraturan Logam Kepingan",
"cmd.sheet_unfold": "Buka Lipatan",
"cmd.sketch.construction_line": "Garis binaan",
"cmd.sketch.construction_line.angle": "Garis binaan bersudut",
"cmd.sketch.construction_line.bisector": "Pembahagi dua sudut",
"cmd.sketch.construction_line.horizontal": "Garis binaan mendatar",
"cmd.sketch.construction_line.parallel": "Garis binaan selari",
"cmd.sketch.construction_line.perpendicular": "Garis binaan serenjang",
"cmd.sketch.construction_line.tangent_at": "Tangen pada titik lengkung",
"cmd.sketch.construction_line.tangent_external": "Tangen melalui titik luar",
"cmd.sketch.construction_line.tangent_two": "Tangen sepunya",
"cmd.sketch.construction_line.vertical": "Garis binaan menegak",
"cmd.sketch_arc3d": "Lengkok 3D",
"cmd.sketch_arc_center_point": "Lengkok Titik Pusat",
"cmd.sketch_arc_tangent": "Lengkok Tangen",
@@ -1102,6 +1140,8 @@
"cmd.sketch_drawing_bounds": "Saiz Lukisan",
"cmd.sketch_edit": "Sunting Lakaran",
"cmd.sketch_edit_text": "Sunting Teks",
"cmd.sketch_equation_curve": "Lengkung Persamaan",
"cmd.sketch_equation_curve_edit": "Sunting Lengkung Persamaan",
"cmd.sketch_export_dxf": "Simpan sebagai DXF",
"cmd.sketch_finish_auto_constrain": "Tamatkan dengan Kekangan Automatik",
"cmd.sketch_fit_curves_to_section": "Padankan Lengkung pada Keratan Mesh",
@@ -1198,6 +1238,7 @@
"cmd.view.render_browser": "Pelayar Render",
"cmd.view.render_dock": "Alih Dok Render",
"cmd.view.render_focus": "Pandangan Fokus Render",
"cmd.view.status_items": "Item Status Tetingkap Pandangan",
"cmd.view_ambient_occlusion": "Oklusi Ambien",
"cmd.view_angle_readout": "Sudut Pandangan",
"cmd.view_apply": "Pulihkan Pandangan",
@@ -1219,6 +1260,7 @@
"cmd.view_normal_to": "Normal pada Pilihan",
"cmd.view_previous_tab": "Tab Sebelumnya",
"cmd.view_rename": "Tukar Nama Pandangan",
"cmd.view_render_frame": "Panduan Bingkai Render",
"cmd.view_right": "Pandangan Kanan",
"cmd.view_save": "Simpan Pandangan",
"cmd.view_shots_strip": "Jalur Syot",
@@ -1229,10 +1271,14 @@
"color.copy": "Klik untuk menyalin nilai warna",
"color.edit": "Klik untuk menyunting warna",
"color.gamma": "Memaparkan nilai warna dalam ruang gamma 0-255",
"color.hex": "Heks",
"color.hex_help": "Masukkan #rrggbb atau #rrggbbaa; enam digit mengekalkan kelegapan",
"color.hex_hint": "#rrggbb",
"color.hue": "Rona",
"color.linear": "Memaparkan nilai warna dalam ruang linear 0-1",
"color.saturation_value": "Ketepuan dan nilai",
"color.selected": "Warna dipilih",
"config.column_filter_empty": "Tiada lajur yang sepadan",
"contact.components_count": "{count} komponen",
"contact.enabled_label": "diaktifkan",
"coupling.gear_1": "Gear 1",
@@ -1346,8 +1392,10 @@
"help.material.assign": "Menetapkan bahan jasad yang dipilih, seperti keluli, aluminium atau ABS. Gunakan supaya jisim dan berat sepadan dengan bahagian sebenar.",
"help.mit": "Lesen MIT",
"help.notice": "NOTIS",
"help.occurrence.move": "Mengalihkan bahagian pemasangan hanya mengikut kebebasan yang dibenarkan oleh sendinya. Pilih muka bahagian, kemudian seret anak panah atau lengkok yang tersedia.",
"help.parameters.change": "Membuka jadual nilai dan ungkapan bernama yang memacu dimensi reka bentuk. Gunakan untuk menukar saiz di satu tempat dan membiarkan setiap ciri yang menggunakannya mengikut.",
"help.pointcloud.insert": "Sisipkan imbasan PLY, XYZ atau PTS sebagai awan titik di samping model. Gunakannya sebagai rujukan semasa membina model daripada data yang diukur.",
"help.sketch.equation_curve": "Melukis lengkung daripada formula: x(t) dan y(t), atau y = f(x), dalam satu julat. Formula boleh menggunakan parameter dan lengkung akan mengikutinya: gunakannya untuk gelombang sinus, lingkaran atau involut gigi gear.",
"help.solid.align": "Mengalihkan jasad yang dipilih supaya satu titik, muka atau satah padanya bertemu satu titik, muka atau satah di tempat lain. Gunakan untuk meletakkan satu bahagian pada bahagian lain tanpa mengukur ofset.",
"help.solid.chamfer": "Memotong tepi yang dipilih dengan potongan serong rata sejauh jarak yang anda tetapkan. Gunakan untuk menumpulkan tepi tajam atau memudahkan kemasukan pin atau skru.",
"help.solid.combine": "Mencantum jasad, memotongnya daripada jasad sasaran, atau hanya mengekalkan isi padu yang dikongsi, dan boleh mengekalkan jasad alat. Gunakan untuk menggabungkan bahagian, memotong satu bentuk dengan bentuk lain atau mencari tempat dua jasad bertindih.",
@@ -1474,6 +1522,21 @@
"joint.one_component": "Jasad ini dalam satu komponen: {bodies}. Sendi menggerakkan satu komponen berbanding yang lain, jadi setiap bahagian perlu komponen sendiri.",
"joint.rigid_group_one_component": "{count} jasad ini semuanya berada dalam satu komponen (atau dalam reka bentuk itu sendiri): gunakan {command} dahulu.",
"joint.rigid_group_select_components": "Pilih dua atau lebih komponen.",
"joint_move.blocked_hint": "Semak jenis sendi (seperti Tegar), status tetap, had sendi dan nilai yang dipacu parameter.",
"joint_move.blocked_title": "Tidak dapat mengalihkan bahagian ini",
"joint_move.coarse": "Langkah putaran dekat paksi (°)",
"joint_move.distance": "Jarak dari mula",
"joint_move.done": "Selesai",
"joint_move.fine": "Langkah putaran jauh dari paksi (°)",
"joint_move.fixed": "Bahagian ini tiada paksi sendi yang boleh digerakkan.",
"joint_move.help": "Alih — seret anak panah atau gelang. Esc membatalkan seretan semasa.",
"joint_move.legacy_hint": "Matikan untuk menggunakan panel Alih sebelumnya.",
"joint_move.precision": "Tarik ke luar panduan putus-putus untuk putaran halus.",
"joint_move.rotation": "Putaran dari mula",
"joint_move.select": "Pilih muka atau satu bahagian pemasangan, kemudian pilih Alih.",
"joint_move.settings": "Alih Pemasangan",
"joint_move.step": "Langkah",
"joint_move.use_handles": "Gunakan pemegang gerakan sendi untuk Alih pemasangan",
"keymap.command_id": "ID Arahan",
"keymap.empty": "Tiada arahan yang sepadan",
"keymap.use_anyway": "Guna {key} di sini juga",
@@ -1568,6 +1631,8 @@
"nav.maya.help": "Alt+seret kiri mengorbit, Alt+seret tengah menyorot, Alt+seret kanan menzum; seret tengah juga menyorot",
"nav.openscad.help": "Seret kiri pada ruang kosong mengorbit, Shift+seret kiri memilih dengan kotak, seretan geometri lakaran menyunting; seret kanan atau tengah menyorot, Shift+seret kanan atau Shift+seret tengah menzum",
"nav.perspective.sketch": "Penyuntingan lakaran menggunakan pandangan ortografik. Siapkan lakaran untuk bertukar ke perspektif.",
"nav.right_drag_orbits.help": "Mati: seret kanan tidak menggerakkan kamera dan butang kanan hanya membuka menu konteks. Memilih pemetaan tetikus SolidWorks akan mematikannya.",
"nav.right_drag_orbits.label": "Seret kanan mengorbit",
"nav.solidworks.help": "Seret tengah mengorbit, Ctrl+tengah menyorot, Shift+tengah menzum, seret kanan mengorbit",
"nav.tinkercad.help": "Seret kanan mengorbit, seret tengah atau Shift+seret kanan menyorot",
"nav.touchpad.help": "Tahan Shift dan gerakkan kursor untuk sorot; Alt/Option untuk orbit. Tidak perlu butang tetikus. Tatal menegak untuk zum.",
@@ -1589,6 +1654,9 @@
"navbar.custom.customise": "Sesuaikan bar navigasi…",
"navbar.custom.design": "Reka",
"navbar.custom.duplicate": "Slot ini sudah ada pada bar.",
"navbar.custom.edge": "Tepi",
"navbar.custom.edge_bottom": "Bawah",
"navbar.custom.edge_top": "Atas",
"navbar.custom.fade": "Pudar",
"navbar.custom.full": "Buang satu slot untuk menambah yang lain.",
"navbar.custom.hidden_design": "Disembunyikan dalam Reka",
@@ -1695,6 +1763,7 @@
"parts.dimension.thickness": "Ketebalan",
"parts.dimension.width": "Lebar",
"parts.family.bearing": "Galas bebola alur dalam (sampul)",
"parts.family.button_head_cap_screw": "Skru kepala butang",
"parts.family.dowel_pin": "Pin selari (dowel)",
"parts.family.hex_bolt": "Bolt / skru kepala heks",
"parts.family.hex_nut": "Nat heks",
@@ -1751,6 +1820,9 @@
"prefs.bottom_centre": "Bawah tengah",
"prefs.bottom_right": "Bawah kanan",
"prefs.browser": "Pelayar",
"prefs.browser_reveal_on_hover": "Muncul apabila dilalui kursor",
"prefs.browser_show_note": "Dipaparkan mengekalkan pelayar pada skrin. Muncul apabila dilalui kursor menyembunyikannya sehingga penuding berada di atas tempatnya atau tab nipis di tepi kirinya, dan ia kekal terbuka selagi penuding berada di dalamnya atau menu daripadanya terbuka.",
"prefs.browser_shown": "Dipaparkan",
"prefs.built_in": "Terbina dalam",
"prefs.button_left": "Seret kiri",
"prefs.button_middle": "Seret tengah",
@@ -1821,6 +1893,8 @@
"prefs.layout_note": "Padat melabuhkan panel pada tepi tetingkap. Kelutsinaran pelayar tersedia dalam Terapung. Tukar sisi Pembantu pada halaman Pembantu.",
"prefs.left": "Kiri",
"prefs.left_click": "Klik kiri",
"prefs.line_drag_draws_one": "Tekan dan seret melukis satu garis",
"prefs.line_drag_draws_one_note": "Dalam alat Garis, menekan, menyeret dan melepaskan melukis satu garis dari titik tekan hingga titik lepas, dan ia tamat di situ. Klik masih melukis rantaian. Mati: seretan meletakkan titik di tempat ia dilepaskan, seperti klik.",
"prefs.linked_designs": "Reka bentuk terpaut",
"prefs.live_input": "Input langsung",
"prefs.live_preview": "Pratonton langsung",
@@ -1853,14 +1927,36 @@
"prefs.origin_plane_names": "Nama satah asal",
"prefs.origin_plane_names_note": "Nama yang dipaparkan dalam pelayar, dialog dan senarai. {top} ialah XY, {front} ialah XZ dan {right} ialah YZ, dengan Z ke atas. Arahan, skrip dan reka bentuk yang disimpan kekal menggunakan XY, XZ dan YZ.",
"prefs.overall_speed": "Kelajuan keseluruhan",
"prefs.perspective_fov": "Medan pandangan",
"prefs.placement": "Penempatan",
"prefs.prefer_free_sketch_points": "Utamakan titik lakaran yang boleh digerakkan apabila titik bertindih",
"prefs.preview_choices": "Pratonton pilihan anda",
"prefs.profile_active": "Profil aktif",
"prefs.profile_applied": "Profil digunakan.",
"prefs.profile_changed": "Tetapan telah berubah sejak profil disimpan. Simpan mengekalkannya dalam profil.",
"prefs.profile_deleted": "Profil dipadam.",
"prefs.profile_export": "Eksport…",
"prefs.profile_exported": "Profil dieksport.",
"prefs.profile_imported": "Profil diimport. Pilihnya di bawah Profil aktif untuk beralih kepadanya.",
"prefs.profile_name_hint": "Nama profil, cth. Laptop",
"prefs.profile_rename": "Tukar nama",
"prefs.profile_renamed": "Nama profil ditukar.",
"prefs.profile_save": "Simpan",
"prefs.profile_saved": "Tetapan semasa disimpan ke profil.",
"prefs.profile_skipped": "Profil digunakan; {n} tetapan mengekalkan nilai semasanya (lihat log).",
"prefs.profiles": "Profil tetapan",
"prefs.profiles_note": "Pintasan, bar alat, navigasi, menu jejarian dan tetapan antara muka, disimpan bersama di bawah satu nama dan ditukar sekali gus.",
"prefs.project_options_dialog": "Dialog pilihan Unjur",
"prefs.project_options_dialog_note": "Hidup: pilih Geometri atau Jasad dan Pautan Unjuran sebelum mengunjur. Mati: kekalkan aliran kerja pilih terus sebelumnya.",
"prefs.quality_default": "lalai",
"prefs.quality_fastest": "terpantas",
"prefs.quality_slowest": "terperlahan",
"prefs.quality_smoother": "lebih licin",
"prefs.render_previous_geometry_budget": "Gunakan bajet geometri pratonton Render sebelumnya",
"prefs.render_previous_geometry_budget_help": "Pulihkan had geometri tetap sebelumnya (512 MiB pada desktop 64-bit, 128 MiB di tempat lain) dan bukannya bajet berdasarkan peranti.",
"prefs.reports_saved": "{n} disimpan",
"prefs.ribbon_reveal": "Tunjukkan hasil carian dalam reben",
"prefs.ribbon_reveal_note": "Melalukan kursor pada hasil dalam Cari arahan menunjukkan kedudukan arahan itu dalam reben: tabnya, butangnya atau barisnya dalam senarai juntai sesuatu panel. Arahan yang dimulakan daripada carian berkelip di situ, dan arahan yang sedang berjalan daripada senarai juntai menandakan panelnya.",
"prefs.right_click": "Klik kanan",
"prefs.saving": "Simpan auto dan pemulihan",
"prefs.scale_note": "Juga Ctrl + / Ctrl − dalam tetingkap. Butang ialah 28 px pada 100%.",
@@ -1874,6 +1970,10 @@
"prefs.shift_add_ctrl_toggle": "Shift hanya menambah; Ctrl / Cmd menogol",
"prefs.shift_add_note": "Dihidupkan: Shift menambah, Ctrl / Cmd menogol. Dimatikan (lalai): kedua-duanya menogol.",
"prefs.shortcuts": "Pintasan",
"prefs.single_surface_analysis": "Gunakan satu analisis permukaan sahaja",
"prefs.single_surface_analysis_help": "Apabila dimatikan, lorekan permukaan dan Keselanjaran boleh kekal hidup bersama. Menghidupkan pilihan ini mengekalkan analisis terakhir yang dimulakan atau diubah.",
"prefs.sketch_align_points": "Selaraskan dengan titik lakaran lain semasa melukis",
"prefs.sketch_align_points_note": "Semasa melukis, titik diselaraskan secara mendatar dengan satu titik lakaran dan secara menegak dengan titik lain pada masa yang sama, dengan panduan bertitik, dan klik mengekalkan kedua-dua penjajaran. Mati: hanya dengan titik sebelumnya, satu paksi pada satu masa.",
"prefs.sketch_conflict_colour": "Geometri bercanggah dalam warna percanggahan",
"prefs.sketch_conflict_colour_note": "Apabila kekangan lakaran bercanggah, lengkung dan titik yang dipegang oleh kekangan yang gagal turut dilukis dalam warna percanggahan, bukan sahaja glifnya atau dimensinya. Mati: ia mengekalkan warna biasa.",
"prefs.sketch_exit_view": "Apabila lakaran tamat",
@@ -1881,6 +1981,8 @@
"prefs.sketch_exit_view.previous": "Kembali ke pandangan sebelumnya",
"prefs.sketch_exit_view.unless_rotated": "Kembali melainkan diputar",
"prefs.sketch_exit_view_note": "Ke mana pandangan beralih selepas Siap Lakaran, Batal atau Esc dua kali.",
"prefs.sketch_recent_snap": "Lekap auto pada pusat dan titik tengah terkini",
"prefs.sketch_recent_snap_note": "Semasa melukis, kursor melekap pada titik persilangan panduan daripada dua pusat bulatan atau titik tengah tepi lurus yang terkini. Mati: panduan itu hanya untuk paparan dan kursor tidak bergerak.",
"prefs.sketch_selection": "Lakaran & pilihan",
"prefs.sketch_selection_heading": "Lakaran dan pilihan",
"prefs.sketch_selection_note": "Cara lakaran melekap dan cara klik memilih.",
@@ -1918,7 +2020,14 @@
"prefs.toast_place": "Notis",
"prefs.toggle_item": "Tambah item, atau keluarkannya semula",
"prefs.toolbar": "Bar alat",
"prefs.toolbar_tabs": "Tab bar alat",
"prefs.top": "Atas",
"prefs.trackpad_zoom_modifier": "Zum dengan tatal dua jari sambil menahan",
"prefs.trackpad_zoom_modifier.alt": "⌥ / Alt",
"prefs.trackpad_zoom_modifier.cmd": "⌘",
"prefs.trackpad_zoom_modifier.ctrl": "Ctrl",
"prefs.trackpad_zoom_modifier.help": "Tahan kekunci ini sahaja untuk zum pada penuding dengan tatal menegak. Mati mengekalkan kelakuan tatal sedia ada.",
"prefs.trackpad_zoom_modifier.off": "Mati",
"prefs.translucent": "Lut sinar",
"prefs.under_browser": "Di bawah pelayar",
"prefs.under_cursor": "Di bawah kursor",
@@ -1928,9 +2037,14 @@
"prefs.view_confirm_corner": "OK dan Batal di sudut pandangan",
"prefs.view_confirm_corner_note": "Semasa dialog atau lakaran dibuka, tanda semak dan tanda silang di bahagian kanan atas pandangan melakukan apa yang dilakukan OK dan Batal dialog, atau menyiapkan dan membatalkan lakaran. Navigator pandangan bergerak ke bawah di bawahnya.",
"prefs.viewport": "Tetingkap pandangan",
"prefs.viewport_background": "Latar belakang",
"prefs.viewport_background_colour": "Warna",
"prefs.viewport_background_theme": "Kecerunan tema",
"prefs.wheel": "Roda",
"prefs.wheel_trackpad": "Roda dan pad jejak",
"prefs.workspace": "Ruang kerja",
"prefs.zoom_stop_at_model": "Hentikan zum pada model",
"prefs.zoom_stop_at_model_tip": "Tetikus 3D dan apl peranti mengezum ke arah permukaan di tengah pandangan; zum seret mengekalkan titik tempat seretan bermula. Mati: zum boleh menembusi model. Roda dan cubit menggunakan Zum ke kursor secara berasingan",
"prefs.zoom_toward_cursor": "Zum ke arah kursor",
"properties.title": "Sifat: {name}",
"recovery.days_ago": "{count} hari lalu",
@@ -2019,6 +2133,7 @@
"render.appearance_editor.weight": "Pemberat",
"render.appearance_physics_separate": "Penampilan visual tidak menetapkan ketumpatan, data terma atau sifat kejuruteraan lain.",
"render.appearances": "Penampilan",
"render.assign_help": "Klik untuk menggunakan pada pilihan; seret untuk pratonton dan lepaskan, atau klik tanpa apa-apa dipilih untuk mengecat.",
"render.availability_native": "Gubahan asli; semak sebelum menggunakan",
"render.availability_projection": "Unjuran disokong; lihat skop dan perkara yang ditinggalkan",
"render.availability_reference": "Data rujukan; bukan penetapan automatik",
@@ -2057,6 +2172,7 @@
"render.bloom_threshold": "Ambang serlahan linear",
"render.browse_capabilities": "Periksa katalog keupayaan lengkap",
"render.browse_environments": "Semak imbas persekitaran HDR asal",
"render.browse_looks": "Semak imbas…",
"render.browse_native_scenes": "Semak imbas studio asli",
"render.browse_physical": "Periksa rujukan fizikal",
"render.browse_quality": "Periksa spesifikasi kualiti",
@@ -2080,6 +2196,82 @@
"render.check_opaque": "Ketelusan: permukaan legap sahaja; alfa latar belakang disokong.",
"render.check_sorted_alpha": "Ketelusan: penghampiran alfa tersusun.",
"render.check_transmission": "Ketelusan: transmisi fizikal.",
"render.children.absolute_floor": "Had bawah mutlak",
"render.children.adaptive": "Adaptif",
"render.children.add_look_reason": "Tambah gaya untuk menyunting status aktif dan kekuatannya.",
"render.children.all_shots": "Semua syot",
"render.children.bloom": "Bloom",
"render.children.check": "Semak",
"render.children.check_now": "Semak sekarang",
"render.children.chromatic": "Kromatik",
"render.children.compact": "Padat",
"render.children.contrast": "Kontras",
"render.children.copy_image": "Salin",
"render.children.copy_job": "Salin JSON kerja",
"render.children.copy_request": "Salin JSON permintaan",
"render.children.coverage_error": "Ralat liputan",
"render.children.cpu": "Penjejakan sinar CPU",
"render.children.denoise": "Kurangkan hingar dalam imej siap",
"render.children.depth": "Kedalaman laluan",
"render.children.distortion": "Herotan",
"render.children.edge_samples": "Sampel tepi",
"render.children.effects_banner": "Kesan ini memerlukan penjejakan laluan GPU. Membuka bahagian ini tidak pernah mengubah kaedah.",
"render.children.enable_adaptive": "Aktifkan perintis bebas untuk menyunting had adaptif.",
"render.children.enable_bloom": "Aktifkan bloom untuk menyunting kekuatan, ambang dan jejarinya.",
"render.children.finishing": "Kemasan",
"render.children.flare": "Kilau",
"render.children.fresnel": "Strata Fresnel",
"render.children.ghosts": "Cincin bayang",
"render.children.glass": "Pengangkutan kaca",
"render.children.go_to": "Pergi ke {editor}",
"render.children.grain": "Bijian",
"render.children.halo": "Halo",
"render.children.hdr": "HDR",
"render.children.keep_master": "Kekalkan induk linear mentah",
"render.children.last_result": "Terakhir: {number} · {width} × {height} · {phase}",
"render.children.lens_effects": "Kesan kanta",
"render.children.look_summary": "{tone} · {count} gaya",
"render.children.looks": "Gaya kreatif",
"render.children.memory": "Memori",
"render.children.method": "Kaedah",
"render.children.minimum": "Minimum",
"render.children.needs_cpu": "Memerlukan penjejakan sinar CPU. Membuka bahagian ini tidak pernah mengubah kaedah.",
"render.children.nested": "Dielektrik bersarang yang disahkan",
"render.children.not_checked": "Belum disemak",
"render.children.path": "Penjejakan laluan",
"render.children.pilots": "Sampel perintis",
"render.children.preview": "Muatan pratonton",
"render.children.progressive_reason": "Pilih Progresif untuk menyunting bilangan sampel dan benihnya.",
"render.children.radius": "Jejari",
"render.children.reflect_depth": "Kedalaman pantulan",
"render.children.reflect_samples": "Sampel pantulan",
"render.children.regrade": "Gred semula warna",
"render.children.relative_error": "Ralat relatif",
"render.children.render": "Render",
"render.children.render_shot": "Render syot",
"render.children.renderer": "Enjin render",
"render.children.renderers": "Enjin render",
"render.children.request": "Permintaan ini",
"render.children.reset_finishing": "Set semula kemasan",
"render.children.review_quality": "Semak spesifikasi kualiti…",
"render.children.rgb_gain": "Gandaan RGB",
"render.children.samples": "Sampel",
"render.children.sampling": "Pensampelan",
"render.children.saturation": "Ketepuan",
"render.children.scene_summary": "{bodies} jasad · {triangles} segi tiga",
"render.children.seed": "Benih",
"render.children.sharpening": "Penajaman",
"render.children.single_image": "Imej tunggal",
"render.children.soft_focus": "Fokus lembut",
"render.children.streak": "Alur",
"render.children.strength": "Kekuatan",
"render.children.studio": "Studio",
"render.children.threshold": "Ambang",
"render.children.tone": "Ton",
"render.children.under_hood": "Di sebalik tabir",
"render.children.vignette": "Vinyet",
"render.children.workstation": "Stesen kerja",
"render.choose_look": "Pilih gaya dalam Penampilan dahulu",
"render.chromatic_offset": "Ofset tepi kromatik",
"render.clear_stage": "Buang pentas yang disimpan",
"render.copy_request": "Salin JSON",
@@ -2331,8 +2523,33 @@
"render.flare_strength": "Kekuatan kilau bahagian terang",
"render.flare_threshold": "Ambang kilau linear adegan",
"render.fold_browser": "Ringkaskan Pelayar",
"render.frame_aspect": "Nisbah aspek",
"render.frame_centre_mark": "Tanda pusat",
"render.frame_copy_limit": "Tiada nama syot pendua yang tersedia",
"render.frame_copy_name": "{name} salinan {number}",
"render.frame_custom": "Tersuai",
"render.frame_distance_unit": " × saiz",
"render.frame_duplicate": "Gandakan",
"render.frame_exposure": "Pendedahan",
"render.frame_fov": "Medan pandangan",
"render.frame_guides": "Panduan",
"render.frame_invalid_aspect": "Pratetap nisbah aspek tidak sah",
"render.frame_lens": "FOV {fov}° · ≈ {mm} mm",
"render.frame_name": "Nama",
"render.frame_output_size": "Saiz keluaran",
"render.frame_photo": "3:2 · Foto",
"render.frame_portrait": "4:5 · Potret",
"render.frame_presets": "Pratetap bingkai",
"render.frame_presets_pending": "Akan hadir bersama penyunting Syot",
"render.frame_projection": "Unjuran",
"render.frame_render_shot": "Render syot ini",
"render.frame_rule_thirds": "Peraturan satu pertiga",
"render.frame_safe_area": "Kawasan selamat",
"render.frame_shot_title": "Syot · {name}",
"render.frame_square": "1:1 · Segi empat sama",
"render.frame_tall": "9:16 · Menegak",
"render.frame_thirds": "Pertiga",
"render.frame_wide": "16:9 · Skrin lebar",
"render.gpu_depth": "Kedalaman laluan maksimum",
"render.gpu_options_help": "Sampel, kedalaman, benih dan pendedahan disimpan bersama persediaan ini. Hanya kaedah imej yang aktif disimpan.",
"render.gpu_path_failed": "Penjejak laluan GPU tidak tersedia",
@@ -2360,6 +2577,7 @@
"render.heading_results": "HASIL",
"render.heading_shots": "SYOT",
"render.hide_shots_label": "Sembunyi jalur Syot",
"render.hover_look": "{object} · {look} · klik untuk memilih",
"render.image_advanced": "Kawalan GPU lanjutan",
"render.image_cancelled": "Render dibatalkan",
"render.image_cancelling": "Membatalkan",
@@ -2506,17 +2724,95 @@
"render.library_uniform_ack": "Guna penghampiran seragam tanpa kesan ruang atau lanjutan",
"render.library_usable": "Unjuran boleh laku",
"render.library_users": "Digunakan oleh",
"render.light_aim": "Halakan ke",
"render.light_anchor_pending": "Menukar rangka koordinat lampu belum disokong lagi.",
"render.light_azimuth": "Azimut",
"render.light_backend_limit": "Pilih penjejakan sinar CPU atau studio GPU eksplisit untuk menyunting lampu. Lampu studio GPU lama kekal baca sahaja.",
"render.light_behaviour": "KELAKUAN",
"render.light_default_fill": "Pengisi",
"render.light_default_key": "Utama",
"render.light_default_number": "Lampu {number}",
"render.light_default_rim": "Pinggir",
"render.light_delete": "Padam",
"render.light_distance": "Jarak",
"render.light_duplicate": "Gandakan",
"render.light_elevation": "Elevasi",
"render.light_gpu_punctual": "Lampu Titik dan Lampu Sorot tersedia dengan penjejakan sinar CPU.",
"render.light_hard_shadow": "Lampu ini mempunyai bayang keras; kelembutan pemancar tidak tersedia.",
"render.light_intensity": "Keamatan",
"render.light_missing": "Lampu ini tidak lagi wujud. Pilih lampu dalam Pelayar.",
"render.light_place_highlight": "Letak mengikut serlahan",
"render.light_place_pending": "Peletakan mengikut serlahan memerlukan pemilihan lampu dalam tetingkap pandangan dan belum disokong.",
"render.light_position": "KEDUDUKAN",
"render.light_preview_help": "Paparan langsung tidak berbayang; lampu Kawasan menggunakan penghampiran sampel pusat. Render menggunakan model lampu yang lengkap.",
"render.light_product_centre": "Pusat produk",
"render.light_size": "Saiz",
"render.light_softness": "Kelembutan",
"render.light_temperature": "Suhu warna",
"render.light_temperature_help": "Anggaran rona jasad hitam; disimpan sebagai RGB linear.",
"render.light_type": "Jenis",
"render.light_type_area": "Kawasan",
"render.light_type_point": "Titik",
"render.light_type_spot": "Lampu sorot",
"render.light_type_sun": "Matahari",
"render.light_view_only": "Solo dan senyap mempengaruhi pandangan ini dan rendernya; ia tidak pernah disimpan dalam reka bentuk.",
"render.light_world_origin": "Titik asal dunia",
"render.lighting_aim_point": "Titik halaan",
"render.lighting_apply": "Gunakan pratetap",
"render.lighting_area_samples": "Sampel kawasan",
"render.lighting_budget": "Bajet",
"render.lighting_budget_help": "Bilangan adalah baca sahaja. Tambah, gandakan atau padam lampu untuk mengubahnya; kaedah menetapkan hadnya.",
"render.lighting_colour": "Warna",
"render.lighting_consent": "Gantikan lampu berarah dengan pratetap ini",
"render.lighting_custom": "Lampu tersuai",
"render.lighting_custom_help": "Memilih Tersuai menukar pratetap menjadi lampu yang boleh disunting, satu baris bagi setiap lampu dalam pepohon.",
"render.lighting_direction": "Arah X Y Z",
"render.lighting_direction_help": "Atau taip arah menuju lampu (X Y Z).",
"render.lighting_distance_unit": " × saiz",
"render.lighting_edge_u": "Vektor sisi U",
"render.lighting_edge_v": "Vektor sisi V",
"render.lighting_falloff": "Pelemahan",
"render.lighting_falloff_help": "Keamatan dinyatakan pada jarak rujukan.",
"render.lighting_height": "Ketinggian V",
"render.lighting_minimum": "Minimum",
"render.lighting_mute": "Senyapkan lampu ini",
"render.lighting_point": "Titik",
"render.lighting_preset": "Pratetap studio",
"render.lighting_preset_cpu": "Pratetap studio berarah memerlukan penjejakan sinar CPU. Pencahayaan GPU menggunakan lampu Matahari dan Kawasan yang eksplisit.",
"render.lighting_preset_row": "Pratetap",
"render.lighting_radiance": "Radians",
"render.lighting_reference": "Rujukan",
"render.lighting_review_help": "Menggantikan senarai lampu berarah. Mengekalkan lampu titik dan kawasan, persekitaran, bayang, kamera dan semua tetapan syot yang lain.",
"render.lighting_review_title": "Semak pratetap pencahayaan",
"render.lighting_samples_cpu": "Sampel lampu kawasan terpakai pada penjejakan sinar CPU.",
"render.lighting_samples_need_area": "Tambah lampu kawasan CPU untuk menetapkan sampel kawasan.",
"render.lighting_samples_reason": "Sampel kawasan mestilah 1, 4, 16 atau 64.",
"render.lighting_shadow_cpu": "Suis bayang memerlukan penjejakan sinar CPU. Penjejakan laluan GPU sentiasa menghasilkan bayang.",
"render.lighting_shadows": "Hasilkan bayang",
"render.lighting_shadows_section": "Bayang dan pensampelan",
"render.lighting_shape": "Bentuk",
"render.lighting_solo": "Solokan lampu ini",
"render.lighting_source": "Sumber",
"render.lighting_source_section": "Sumber cahaya",
"render.lighting_spot_preserved": "Lampu titik ini mengekalkan kon lampu sorot yang disimpan sehingga jenisnya ditukar.",
"render.lighting_sun_distance": "Arah matahari tidak bergantung pada jarak dan titik halaan.",
"render.lighting_unsupported": "tidak disokong",
"render.lighting_used": "{used} daripada {limit}",
"render.lighting_width": "Lebar U",
"render.lighting_world_position": "Dunia X Y Z",
"render.lights_fixed_to": "Lampu tetap pada",
"render.linear_help": "Menyimpan induk RGBA titik apungan 32-bit sebelum penyahhingaran, dedahan, pemetaan ton, penapis dan latar. sRGB linear/D65; didarab awal dengan liputan. Memori tambahan dibenarkan secara jelas. Tiada mampatan atau lintasan tambahan.",
"render.linear_retain": "Kekalkan EXR linear mentah",
"render.linear_unavailable": "Bingkai siap yang dipilih tidak mempunyai EXR yang dikekalkan. Aktifkan pengekalan sebelum merender; PNG lama tidak dapat memulihkan radians mentah.",
"render.look_add": "Tambah gaya warna",
"render.look_applied": "{name} digunakan",
"render.look_bleach": "Berilhamkan pintas peluntur",
"render.look_cool": "Sejuk",
"render.look_cyanotype": "Berilhamkan sianotaip",
"render.look_faded": "Cetakan pudar",
"render.look_material": "Bahan",
"render.look_mono": "Monokrom",
"render.look_pasted": "Gaya ditampal",
"render.look_sepia": "Sepia",
"render.look_strength": "Kekuatan gaya",
"render.look_teal_orange": "Hijau kebiruan / oren",
@@ -2592,9 +2888,11 @@
"render.output_advanced": "Lanjutan",
"render.output_backend_ready": "Sedia",
"render.output_check": "Semak",
"render.output_check_failed": "Semak · ralat",
"render.output_check_help": "Jalankan Semak untuk menyemak permintaan ini tanpa memulakan render.",
"render.output_check_summary": "Semak · Nota: {count}",
"render.output_copy": "Salin",
"render.output_copy_report": "Salin laporan",
"render.output_destination": "Destinasi",
"render.output_destination_help": "Pilih fail destinasi semasa mengeksport imej yang siap.",
"render.output_dimensions": "Saiz",
@@ -2604,6 +2902,7 @@
"render.output_fit": "Muatkan",
"render.output_format": "Format",
"render.output_format_status": "PNG ialah imej paparan siap yang tepat. EXR GPU pilihan menyimpan radians FLOAT32 linear adegan yang mentah sebelum penapis paparan. Eksport tidak sekali-kali menggantikan cache pratonton atau tugas yang lain.",
"render.output_grading": "Penggredan warna",
"render.output_image": "Imej",
"render.output_largest": "Maks {width} × {height}",
"render.output_lock_ratio": "Kunci nisbah aspek",
@@ -2613,6 +2912,8 @@
"render.output_quality_waiting": "menunggu kontrak kualiti",
"render.output_ratio_refused": "Dimensi terpaut melebihi had saiz kaedah ini. Saiz sebelumnya dikekalkan; buka kunci nisbah atau pilih nilai yang lebih kecil.",
"render.output_ready": "Sedia untuk merender",
"render.output_run_check": "Jalankan semakan",
"render.output_size_limit": "{method}: sehingga {dimension} px setiap sisi dan {pixels} piksel. Saiz terbesar yang muat: {width} × {height}.",
"render.output_size_ok": "Saiz OK · {width} × {height} px",
"render.output_swap_orientation": "Tukar lebar dan ketinggian",
"render.output_tools_inspector": "Sunting saiz dan format dalam pemeriksa Keluaran.",
@@ -2629,6 +2930,7 @@
"render.page_output": "Keluaran",
"render.page_scene": "Adegan",
"render.paint_label": "Cat",
"render.painting_with": "Mengecat dengan {name}",
"render.passive_stage": "Lantai dan pentas pasif",
"render.passive_stage_help": "Panel pasif terhingga hanya tergolong dalam imej yang dirender. Ia tidak menambah jasad CAD atau jisim. Penempatan menjadi tetap selepas digunakan; sempadan produk yang bersilang akan ditolak. CPU tidak menyediakan pencahayaan pantulan resap.",
"render.perspective": "Kamera perspektif",
@@ -2650,6 +2952,7 @@
"render.pick_help": "Pilih Jasad, Muka atau Komponen. Klik ruang kosong untuk mengosongkan; Shift atau Ctrl menambah atau menogol. Serlahan hanya muncul dalam paparan produk langsung.",
"render.pick_label": "Pilih",
"render.pick_up_label": "Ambil",
"render.pick_up_prompt": "Klik objek untuk mengambil gayanya",
"render.pick_waiting": "Pemilihan produk belum disokong.",
"render.post_contrast": "Kontras",
"render.post_gain_b": "Gandaan biru",
@@ -2689,13 +2992,17 @@
"render.radial_distortion": "Herotan jejarian",
"render.radial_fit": "Muatkan Produk",
"render.radial_save": "Simpan Syot",
"render.recent_looks": "Gaya terkini",
"render.regrade_action": "Gred semula warna induk mentah (tanpa penyahdesauan)",
"render.regrade_help": "Mencipta PNG berasingan daripada induk mentah siap yang dipilih, menggunakan kawalan persembahan ini. Tidak menjejak sinar, tidak mengubah saiz/kamera/lampu yang dirakam dan tidak menulis ganti EXR. Penyahdesauan tidak dikenakan semula: induk mentah tidak menyimpan panduannya. Terbitan ini kekal boleh dieksport melalui kawalan kerja yang sama.",
"render.regrade_label": "Gred semula warna",
"render.reload_settings": "Muat Semula Tetapan Tersimpan",
"render.remove_override": "Buang Pengatasan",
"render.replace_all": "Ganti Semua",
"render.replace_ground": "Sahkan penggantian pentas sedia ada",
"render.replace_label": "Ganti",
"render.replace_saved_surface": "Ganti pengikatan tersimpan sedia ada untuk sasaran ini",
"render.replace_with": "Ganti dengan",
"render.restore_camera": "Pulihkan Kamera Tersimpan",
"render.result_actual": "100%",
"render.result_actual_help": "Satu piksel imej bagi setiap piksel paparan.",
@@ -2747,14 +3054,28 @@
"render.saved_surface_remove": "Buang pengikatan tersimpan",
"render.saved_surfaces": "Pengikatan permukaan tersimpan",
"render.saved_surfaces_help": "Peta terbina dalam yang disemat mengikut kejadian yang dipilih dalam milimeter tempatan. Sasaran yang diganti atau hilang ialah ralat, bukan penugasan semula automatik.",
"render.scene_all_shots": "Semua syot ({count})",
"render.scene_apply": "Gunakan studio yang ditinjau",
"render.scene_batch_reason": "Semua syot memerlukan baris gilir render syot tersimpan, yang belum tersedia.",
"render.scene_check_now": "Semak sekarang",
"render.scene_check_passed": "Semakan lulus · {notes} nota",
"render.scene_check_stale": "Semakan sudah lapuk · semak semula",
"render.scene_check_unchecked": "Belum disemak · 0 nota",
"render.scene_consent": "Sahkan penggantian pencahayaan, persekitaran, pendedahan dan pentas",
"render.scene_light_summary": "{environment} · {lights} lampu",
"render.scene_look_summary": "{looks} gaya · {overrides} pengatasan",
"render.scene_open_check": "Buka Semak",
"render.scene_preserved_fields": "Kamera, pensampelan, dimensi, pengikatan optik, geometri CAD dan bahan kejuruteraan dikekalkan.",
"render.scene_preserves_design": "Menggubah pencahayaan dan pentas pasif untuk subjek yang kelihatan. Geometri, bahan kejuruteraan dan kamera kekal berasingan.",
"render.scene_ready": "Sedia untuk merender",
"render.scene_reminder": "Adegan mengekalkan reka bentuk. Geometri, sifat kejuruteraan dan CAD tidak pernah diubah daripada Render.",
"render.scene_reminders": "Peringatan",
"render.scene_renderer_ready": "{renderer} sedia",
"render.scene_replaces": "Menggantikan",
"render.scene_review": "Selesaikan dan tinjau",
"render.scene_review_help": "Tinjau komposisi natif yang lengkap sebelum menggunakan. Spesifikasi SCENE lanjutan yang tidak terikat tidak digantikan.",
"render.scene_scope_details": "Skop komposisi",
"render.scene_stages": "Peringkat",
"render.search_appearances": "Cari {count} penampilan",
"render.setup_legacy_environment": "Persediaan lama ini menggunakan putaran atau keamatan persekitaran warisan. Nilai itu dikekalkan; tukarkannya secara eksplisit sebelum menyimpan kerja imej penuh.",
"render.setup_name": "Nama persediaan",
@@ -2767,7 +3088,22 @@
"render.shell_tab_camera": "KAMERA RENDER",
"render.shell_tab_lighting": "PENCAHAYAAN",
"render.shell_tab_scene": "ADEGAN RENDER",
"render.shot_aperture": "Apertur",
"render.shot_distance": "Jarak",
"render.shot_dof": "Kedalaman medan",
"render.shot_duplicate": "Gandakan syot tersimpan",
"render.shot_edit_output": "Sunting dalam Keluaran",
"render.shot_exposure_reason": "Pendedahan memerlukan penjejakan sinar CPU atau penjejakan laluan GPU.",
"render.shot_exposure_section": "Pendedahan",
"render.shot_focus_distance": "Jarak fokus",
"render.shot_fov_reason": "Medan pandangan memerlukan unjuran perspektif.",
"render.shot_frame_subject": "Bingkaikan subjek",
"render.shot_invalid_camera": "Nilai kamera mestilah terhingga dan dalam julat.",
"render.shot_lens": "Lensa",
"render.shot_lens_enable_reason": "Aktifkan kedalaman medan untuk menyunting apertur dan jarak fokus.",
"render.shot_lens_gpu_reason": "Kedalaman medan memerlukan penjejakan laluan GPU.",
"render.shot_lens_perspective_reason": "Kedalaman medan memerlukan unjuran perspektif.",
"render.shot_look_selection": "Halakan ke pilihan",
"render.shot_manager": "Syot tersimpan",
"render.shot_new_name": "Nama syot baharu",
"render.shot_remove": "Buang syot tersimpan",
@@ -2775,6 +3111,9 @@
"render.shot_remove_title": "Buang syot tersimpan?",
"render.shot_rename": "Tukar nama syot tersimpan",
"render.shot_saved_only": "Simpan draf semasa dahulu. Gandakan dan tukar nama mengekalkan pilihan tersimpan dan rujukan sumber dengan tepat.",
"render.shot_selection_reason": "Pilih jasad atau muka untuk dihalakan.",
"render.shot_size": "Saiz",
"render.shot_target": "Sasaran",
"render.shots_camera_changed": "Kamera berubah sejak syot ini disimpan",
"render.shots_name_help": "Masukkan nama unik untuk syot semasa.",
"render.shots_no_result": "Belum ada render",
@@ -2997,6 +3336,13 @@
"render.wait_pick_up": "belum disokong: pemilihan produk dan pensampelan penampilan",
"render.wait_replace": "belum disokong: penggantian semua penggunaan sesuatu penampilan",
"render.wait_solo": "belum disokong: keterlihatan lampu dan kawalan solo",
"render.wear_applies_to": "Terpakai pada",
"render.wear_layer_count": "{count} lapisan",
"render.wear_layer_one": "{count} lapisan",
"render.wear_layers": "Lapisan",
"render.wear_no_layers": "Tiada lapisan",
"render.wear_selected_layer": "Lapisan dipilih",
"render.wear_title": "Kehausan",
"sample.bracket.about": "Bebibir asas dengan bebibir tepi dan kelim mengikut peraturan 2 mm",
"sample.bracket.name": "Pendakap Logam Kepingan",
"sample.enclosure.about": "Kotak berongga dengan bibir, bonggol skru, penyokong dan sambungan sentap",
@@ -3030,6 +3376,7 @@
"select an axis": "pilih paksi",
"select an axis, a straight or circular edge, or a cylinder, cone or torus face first": "pilih paksi, tepi lurus atau bulat, atau muka silinder, kon atau torus dahulu",
"select bodies first": "pilih jasad dahulu",
"select components first": "pilih komponen dahulu",
"select corner points, or the two lines of one corner": "pilih titik sudut, atau dua garis bagi satu sudut",
"select one corner point, or the two lines of one corner": "pilih satu titik sudut, atau dua garis bagi satu sudut",
"select sheet edges first": "pilih tepi kepingan dahulu",
@@ -3048,6 +3395,7 @@
"settings.double_click_components": "Klik dua kali pada komponen untuk mengaktifkannya, atau untuk menyunting komponen terpaut di tempat",
"settings.frame_rate_details_note": "Menambah graf masa bingkai terkini dengan segi tiga yang dilukis di atasnya, histogram masa bingkai dan apa yang dilukis oleh GPU. Klik kadar bingkai dalam paparan untuk memaparkan atau menyembunyikannya.",
"settings.frame_rate_note": "Papar bingkai sesaat di kanan bawah.",
"settings.insert_lists_open_designs": "Sisip Reka Bentuk menyenaraikan reka bentuk yang terbuka dalam tab lain dahulu",
"settings.measure_axis_distances": "Papar jarak X/Y/Z",
"settings.measure_axis_distances_help": "Papar jarak paksi dunia X/Y/Z bersama jarak keseluruhan semasa Ukur dibuka.",
"settings.msaa_applies_on_restart": "Antialias digunakan apabila SolidCraft dimulakan semula",
@@ -3072,6 +3420,10 @@
"shortcut.unpin": "Nyahsemat",
"sketch is missing": "lakaran tiada",
"sketch.degrees_of_freedom": "{count} darjah kebebasan",
"sketch.dimension_added_driven": "Lakaran sudah menentukan dimensi itu, jadi ia ditambah sebagai dimensi dipacu (rujukan)",
"sketch.dimension_applied": "Dimensi digunakan",
"sketch.dimension_applied_defined": "Dimensi digunakan; parameter `{name}` ditakrifkan",
"sketch.dimension_applied_renamed": "Dimensi digunakan; parameter dinamakan `{name}`",
"sketch.dof_left": "{count} darjah kebebasan berbaki",
"sketch.dof_left_one": "{count} darjah kebebasan berbaki",
"sketch.draw_curves": "Lukis sebagai {linetype}",
@@ -3106,6 +3458,8 @@
"sketch_text.use_font_file": "Gunakan fail fon {path}",
"solid": "pepejal",
"status.editing": "Menyunting {name}",
"status.navigation": "Pemetaan tetikus: {mapping}",
"status.navigation_tip": "Cara tetikus menggerakkan pandangan. Klik untuk memilih pemetaan lain",
"status.under_constrained": "Kurang terkekang ({count} darjah kebebasan)",
"status.under_constrained_one": "Kurang terkekang ({count} darjah kebebasan)",
"status.units_tip": "Unit reka bentuk. Klik untuk menukarnya",
@@ -3139,8 +3493,10 @@
"timeline.delete_folders_tip": "Kekalkan ciri dan folder bersarangnya dalam sejarah",
"timeline.delete_folders_with_features_tip": "Padam folder bersama setiap ciri di dalamnya dan folder bersarangnya",
"timeline.delete_many": "Padam {count} Ciri Terpilih",
"timeline.edited_rolled_back": "{name} berubah, tetapi ia berada selepas penanda sejarah, jadi ia tidak dibina: alihkan penanda melepasinya untuk melihat hasilnya",
"timeline.feature_error": "Ralat: {message}",
"timeline.feature_hint": "Klik dua kali untuk menyunting · seret untuk menyusun semula · klik kanan untuk lagi",
"timeline.feature_rolled_back": "Diundur: selepas penanda sejarah, jadi tidak dibina",
"timeline.feature_warning": "Amaran: {message}",
"timeline.group": "Folder Ciri Baharu",
"timeline.move_many": "Alih Item Garis Masa",
@@ -3220,6 +3576,10 @@
"ui.3d_mouse_offer": "Menentukur tetikus 3D membetulkan paksi yang bertukar atau terbalik dan menetapkan kelajuan serta rasanya.",
"ui.3d_mouse_offer_never": "Jangan tunjuk lagi",
"ui.3d_mouse_offer_swap": "Tukar ke Hidraw (pemacu terus)",
"ui.3d_mouse_orbit": "Orbit",
"ui.3d_mouse_orbit_classic": "Klasik",
"ui.3d_mouse_orbit_tip": "Dijejak: tetikus 3D memutar pandangan mengelilingi bahagian model di tengah pandangan semasa putaran bermula, ditandakan dengan bola samar. Klasik: mengelilingi pusat pandangan",
"ui.3d_mouse_orbit_traced": "Dijejak",
"ui.3d_mouse_reading": "Bacaan",
"ui.3d_mouse_reset_axes": "Tetapkan semula penetapan paksi",
"ui.3d_mouse_reset_view": "Set semula paparan",
@@ -3604,6 +3964,7 @@
"ui.constant": "Malar",
"ui.constraints_conflict": "Kekangan bercanggah",
"ui.construction": "Binaan",
"ui.construction.ribbon_label": "Garis bantu",
"ui.context_menu": "Menu konteks",
"ui.continuity_g0": "Lipatan G0",
"ui.continuity_g1": "Tangen G1",
@@ -3695,6 +4056,14 @@
"ui.end_scale": "Skala Akhir",
"ui.entities": "Entiti",
"ui.equal": "Sama",
"ui.equation_end": "Akhir",
"ui.equation_explicit": "Eksplisit",
"ui.equation_form": "Bentuk",
"ui.equation_note": "Pemboleh ubah ialah nombor biasa: sin(t) mengambilnya dalam radian. Hasil tanpa unit adalah dalam unit reka bentuk.",
"ui.equation_parametric": "Parametrik",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Jejari Setara",
"ui.expand": "Kembangkan",
"ui.exportDxf": "Eksport DXF…",
@@ -3760,6 +4129,7 @@
"ui.heading_design": "REKA",
"ui.heading_draft": "SUDUT DRAF",
"ui.heading_edit": "SUNTING",
"ui.heading_equation_curve": "LENGKUNG PERSAMAAN",
"ui.heading_extrude": "SEMPERIT",
"ui.heading_fillet": "JEJARI SUDUT",
"ui.heading_finish_editing": "SELESAI SUNTING",
@@ -3851,6 +4221,10 @@
"ui.import_ellipsis": "Import…",
"ui.infinite": "Tak Terhingga",
"ui.insert": "Sisip",
"ui.insert_design.browse": "Semak imbas…",
"ui.insert_design.open_designs": "Reka bentuk terbuka",
"ui.insert_design.saved_file": "{name} mempunyai perubahan yang belum disimpan, jadi fail tersimpannya disisipkan. Simpan reka bentuk itu, kemudian gunakan Kemas Kini Pautan untuk membawa masuk perubahan.",
"ui.insert_design.unsaved": "Perubahan belum disimpan",
"ui.inspect": "Periksa",
"ui.intersect": "Silang",
"ui.isolate": "Asingkan",
@@ -4000,6 +4374,18 @@
"ui.project": "Unjur",
"ui.project_face_edges_sketch": "Unjur tepi muka ke dalam lakaran baharu",
"ui.properties": "Sifat",
"ui.properties.copy_matrix": "Salin matriks",
"ui.properties.first_moments": "Momen pertama",
"ui.properties.inertia": "Momen inersia",
"ui.properties.inertia_note": "Terhadap pusat jisim, dalam paksi dunia (g·{unit}²)",
"ui.properties.inertia_unavailable": "Tidak tersedia: jejaring sesuatu jasad tidak tertutup.",
"ui.properties.inertia_x": "Ixx, Ixy, Ixz",
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Mengukur…",
"ui.properties.measuring_failed": "Pengukuran berhenti sebelum selesai.",
"ui.properties.principal_axis": "Paksi utama {number}",
"ui.properties.principal_moments": "Momen utama",
"ui.pull_direction": "Arah tarikan",
"ui.quality": "Kualiti",
"ui.quantity": "Kuantiti",
@@ -4062,6 +4448,7 @@
"ui.select": "Pilih",
"ui.selectOther": "Pilih Lain…",
"ui.selectTangentChain": "Pilih Rantaian Tangen",
"ui.select_all": "Pilih Semua",
"ui.selection": "Pilihan",
"ui.selection_modifiers": "Pengubah suai pilihan",
"ui.selection_shift_add_only": "Shift+klik menambah tanpa membuang",
@@ -4098,7 +4485,11 @@
"ui.sketch": "Lakaran",
"ui.sketch_dimension": "Dimensi Lakaran",
"ui.sketch_grid": "Grid Lakaran",
"ui.sketch_intersect_geometry": "Geometri",
"ui.sketch_intersect_projection_link": "Pautan Unjuran",
"ui.sketch_intersect_selection_filter": "Penapis Pilihan",
"ui.sketch_modifiers": "Pengubah suai lakaran",
"ui.sketch_project_geometry": "Geometri",
"ui.sketch_scale": "Skala Lakaran",
"ui.sketches": "Lakaran",
"ui.slice": "Hiris",
@@ -4149,6 +4540,7 @@
"ui.tab_manage": "Urus",
"ui.tab_sheet_metal": "Logam Kepingan",
"ui.tab_view": "Pandangan",
"ui.tab_weldments": "Kimpalan",
"ui.tangent": "Tangen",
"ui.taper_angle": "Sudut Tirus",
"ui.tapped": "Berbebenang",
@@ -4164,6 +4556,7 @@
"ui.tip_angle": "Sudut Hujung",
"ui.to_object": "Ke Objek",
"ui.tool_direction": "Arah alat",
"ui.toolbar_tabs_hidden": "Semua tab bar alat disembunyikan. Klik + atau klik kanan di sini untuk memaparkan satu tab.",
"ui.top": "Atas",
"ui.top_diameter": "Diameter atas",
"ui.top_radius": "Jejari atas",
@@ -4210,6 +4603,7 @@
"ui.visual_shaded_with_edges": "Berlorek dengan tepi",
"ui.visual_style": "Gaya visual",
"ui.visual_wireframe": "Rangka dawai",
"ui.wheel_zoom_speed": "Kelajuan zum roda tetikus",
"ui.width": "Lebar",
"ui.window_system": "Sistem tetingkap",
"ui.window_system_auto": "Automatik",
@@ -4261,6 +4655,9 @@
"update.prefs_label": "Kemas kini",
"update.prefs_note": "SolidCraft {version} ({kind}). Semakan hanya meminta keluaran terkini dari GitHub, tanpa data lain dihantar.",
"update.prefs_web": "Muat semula halaman untuk mendapatkan aplikasi web terkini. Jika rangkaian tidak tersedia atau kemas kini tidak dapat selesai dimuat turun tepat pada masanya, versi yang disimpan dibuka sebaliknya; muat turun yang sedang berjalan diteruskan untuk muat semula seterusnya.",
"update.refresh_checking": "Menyemak keluaran terbaharu…",
"update.refresh_fallback": "Tidak dapat menyemak keluaran yang lebih baharu; mengemas kini ke {version}, yang ditemui sebelum ini.",
"update.refresh_selected": "Mengemas kini ke {version}.",
"update.release_page": "Buka halaman keluaran",
"update.restart": "Mula semula",
"update.restart_later": "Kemudian",
+397
View File
@@ -204,6 +204,7 @@
"Edges": "Kanter",
"Edit": "Rediger",
"Edit Profile Sketch": "Rediger profilskisse",
"Edit shortcuts": "Rediger snarveier",
"Enable rule": "Aktiver regel",
"Enabled": "Aktivert",
"End Radius": "Sluttradius",
@@ -466,6 +467,7 @@
"Radius": "Radius",
"Radius Fit": "Radiustilpasning",
"Ratio": "Forhold",
"Read-only list: shortcuts can't be changed here.": "Skrivebeskyttet liste: snarveier kan ikke endres her.",
"Reattach selected face": "Knytt til valgt flate på nytt",
"Recover": "Gjenopprett",
"Recover unsaved design?": "Gjenopprette ulagret design?",
@@ -649,6 +651,7 @@
"Third point": "Tredje punkt",
"This child is shared. Deleting it removes it from every copy of its parent.": "Denne underkomponenten er delt. Hvis du sletter den, fjernes den fra alle kopier av den overordnede komponenten.",
"This child is shared. Position changes apply to every copy of its parent.": "Denne underkomponenten er delt. Posisjonsendringer gjelder for alle kopier av den overordnede komponenten.",
"This component is inside a subassembly placed more than once: aligning it moves it in every placement.": "Denne komponenten ligger i en undersammenstilling som er plassert mer enn én gang: justering flytter den i alle plasseringene.",
"This face cannot provide a durable attachment. Choose another face or explicitly use a fixed plane.": "Denne flaten kan ikke gi en varig tilknytning. Velg en annen flate eller velg å bruke et fast plan.",
"This image is not attached to GitHub yet. Copy or save it, then attach it on GitHub.": "Dette bildet er ikke lagt ved på GitHub ennå. Kopier eller lagre det, og legg det deretter ved på GitHub.",
"Thread depth": "Gjengedybde",
@@ -790,6 +793,11 @@
"cam.roller": "Rulle",
"cam.roller_pick": "Rulle (valgfritt)",
"cam.tip_pick": "Spiss (valgfritt)",
"camera.shot_pitch": "Helning",
"camera.shot_roll": "Rull",
"camera.shot_yaw": "Giring",
"canvas.decal_place_hint": "Klikk på en flate for å plassere dekalen",
"canvas.place_hint": "Klikk på et plan eller en flate for å plassere lerretet",
"choose a profile": "velg en profil",
"choose the cam's and the follower's joints": "velg leddene til kammen og følgeren",
"choose the joints to couple": "velg leddene som skal kobles",
@@ -797,9 +805,12 @@
"click sketch curves": "klikk på skissekurver",
"cmd.appearance_assign": "Utseende",
"cmd.appearance_chain": "Utseendekjede",
"cmd.appearance_copy": "Kopier stil",
"cmd.appearance_favorite": "Favorittstil",
"cmd.appearance_library": "Utseendebibliotek",
"cmd.appearance_list": "Vis utseender",
"cmd.appearance_paint": "Mal utseende",
"cmd.appearance_paste": "Lim inn stil",
"cmd.appearance_pick_up": "Plukk opp utseende",
"cmd.appearance_replace": "Erstatt utseende",
"cmd.assembly_bom": "Stykkliste",
@@ -810,6 +821,7 @@
"cmd.browser_move": "Flytt elementer i modelltreet",
"cmd.browser_order": "Ordne elementer i modelltreet",
"cmd.browser_rename_group": "Gi nytt navn til gruppe",
"cmd.browser_reparent": "Flytt til komponent",
"cmd.browser_ungroup": "Opphev gruppering",
"cmd.browser_visibility": "Vis/skjul",
"cmd.canvas_calibrate": "Kalibrer lerret",
@@ -836,7 +848,9 @@
"cmd.component_metadata": "Delegenskaper",
"cmd.component_metadata_set": "Endre delegenskaper",
"cmd.component_move_bodies": "Flytt kropper til komponent",
"cmd.component_move_features": "Flytt funksjoner til komponent",
"cmd.component_move_sketches": "Flytt skisser til komponent",
"cmd.component_paste_from_design": "Lim inn fra et annet design",
"cmd.component_paste_new": "Lim inn ny",
"cmd.component_properties": "Fysiske egenskaper for komponent",
"cmd.component_relink": "Koble kilde på nytt",
@@ -973,6 +987,7 @@
"cmd.motion_trace": "Bevegelsesspor",
"cmd.motion_trace_edit": "Rediger bevegelsesspor",
"cmd.motion_trace_keep": "Behold bevegelsesspor",
"cmd.occurrence_align": "Juster forekomst",
"cmd.occurrence_copy": "Lim inn (forekomst)",
"cmd.occurrence_drag": "Dra forekomst",
"cmd.occurrence_ground": "Fest posisjon",
@@ -1030,11 +1045,17 @@
"cmd.render_library_surface_unbind": "Fjern overflatekobling",
"cmd.render_library_targets": "Finn mål i rendringsbiblioteket",
"cmd.render_lights_add": "Legg til lys",
"cmd.render_lights_duplicate": "Dupliser rendringslys",
"cmd.render_lights_list": "Vis rendringslys",
"cmd.render_lights_mute": "Demp lys",
"cmd.render_lights_remove": "Fjern rendringslys",
"cmd.render_lights_set": "Angi rendringslys",
"cmd.render_lights_solo": "Solo-lys",
"cmd.render_optics_bind": "Lagre optisk kobling",
"cmd.render_optics_unbind": "Fjern optisk kobling",
"cmd.render_output_size": "Angi utdatastørrelse for rendring",
"cmd.render_preflight": "Kontroller rendringsforespørsel",
"cmd.render_preflight_copy": "Kopier rapport fra rendringssjekk",
"cmd.render_preset_apply": "Bruk innebygd Studio",
"cmd.render_preset_resolve": "Gjennomgå innebygd Studio",
"cmd.render_quality_prepare": "Gjennomgå fast samplingsbudsjett",
@@ -1057,6 +1078,13 @@
"cmd.render_start": "Rendre bilde",
"cmd.render_status": "Rendringsfremdrift",
"cmd.select_clear": "Tøm utvalg",
"cmd.settings_profile_apply": "Bruk innstillingsprofil",
"cmd.settings_profile_delete": "Slett innstillingsprofil",
"cmd.settings_profile_export": "Eksporter innstillingsprofil",
"cmd.settings_profile_import": "Importer innstillingsprofil",
"cmd.settings_profile_list": "Innstillingsprofiler",
"cmd.settings_profile_rename": "Gi innstillingsprofil nytt navn",
"cmd.settings_profile_save": "Lagre innstillingsprofil",
"cmd.sheet_convert": "Konverter til plate",
"cmd.sheet_export_bend_table": "Eksporter bøyetabell",
"cmd.sheet_export_dxf": "Eksporter utbretting som DXF",
@@ -1070,6 +1098,16 @@
"cmd.sheet_refold": "Brett tilbake",
"cmd.sheet_rules": "Vis plateregler",
"cmd.sheet_unfold": "Brett ut",
"cmd.sketch.construction_line": "Hjelpelinje",
"cmd.sketch.construction_line.angle": "Hjelpelinje med vinkel",
"cmd.sketch.construction_line.bisector": "Vinkelhalveringslinje",
"cmd.sketch.construction_line.horizontal": "Vannrett hjelpelinje",
"cmd.sketch.construction_line.parallel": "Parallell hjelpelinje",
"cmd.sketch.construction_line.perpendicular": "Vinkelrett hjelpelinje",
"cmd.sketch.construction_line.tangent_at": "Tangent i kurvepunkt",
"cmd.sketch.construction_line.tangent_external": "Tangent gjennom eksternt punkt",
"cmd.sketch.construction_line.tangent_two": "Felles tangent",
"cmd.sketch.construction_line.vertical": "Loddrett hjelpelinje",
"cmd.sketch_arc3d": "3D-bue",
"cmd.sketch_arc_center_point": "Senterpunktbue",
"cmd.sketch_arc_tangent": "Tangentbue",
@@ -1102,6 +1140,8 @@
"cmd.sketch_drawing_bounds": "Tegningsstørrelse",
"cmd.sketch_edit": "Rediger skisse",
"cmd.sketch_edit_text": "Rediger tekst",
"cmd.sketch_equation_curve": "Ligningskurve",
"cmd.sketch_equation_curve_edit": "Rediger ligningskurve",
"cmd.sketch_export_dxf": "Lagre som DXF",
"cmd.sketch_finish_auto_constrain": "Fullfør med automatiske bindinger",
"cmd.sketch_fit_curves_to_section": "Tilpass kurver til mesh-snitt",
@@ -1198,6 +1238,7 @@
"cmd.view.render_browser": "Rendringsutforsker",
"cmd.view.render_dock": "Flytt rendringspanel",
"cmd.view.render_focus": "Rendringsfokusvisning",
"cmd.view.status_items": "Statuselementer i visningsområdet",
"cmd.view_ambient_occlusion": "Ambient occlusion",
"cmd.view_angle_readout": "Visningsvinkler",
"cmd.view_apply": "Gjenopprett navngitt visning",
@@ -1219,6 +1260,7 @@
"cmd.view_normal_to": "Vinkelrett på valg",
"cmd.view_previous_tab": "Forrige fane",
"cmd.view_rename": "Gi nytt navn til navngitt visning",
"cmd.view_render_frame": "Hjelpelinjer for rendringsbilderute",
"cmd.view_right": "Høyrevisning",
"cmd.view_save": "Ny navngitt visning",
"cmd.view_shots_strip": "Opptaksstrimmel",
@@ -1229,10 +1271,14 @@
"color.copy": "Klikk for å kopiere fargeverdier",
"color.edit": "Klikk for å redigere farge",
"color.gamma": "Viser gammakorrigerte fargeverdier i området 0–255",
"color.hex": "Hex",
"color.hex_help": "Skriv inn #rrggbb eller #rrggbbaa; seks sifre beholder opasiteten",
"color.hex_hint": "#rrggbb",
"color.hue": "Kulør",
"color.linear": "Viser lineære fargeverdier i området 0–1",
"color.saturation_value": "Metning og lysverdi",
"color.selected": "Valgt farge",
"config.column_filter_empty": "Ingen samsvarende kolonner",
"contact.components_count": "{count} komponenter",
"contact.enabled_label": "aktivert",
"coupling.gear_1": "Tannhjul 1",
@@ -1346,8 +1392,10 @@
"help.material.assign": "Angir hva de valgte kroppene er laget av, for eksempel stål, aluminium eller ABS. Bruk det slik at masse og vekt stemmer med den virkelige delen.",
"help.mit": "MIT-lisens",
"help.notice": "NOTICE",
"help.occurrence.move": "Flytter en del i en sammenstilling bare langs frihetsgradene som leddene tillater. Velg en flate på delen, og dra deretter en tilgjengelig pil eller bue.",
"help.parameters.change": "Åpner tabellen over navngitte verdier og uttrykk som styrer målene i designet. Bruk den til å endre en størrelse ett sted og la alle funksjoner som bruker den følge med.",
"help.pointcloud.insert": "Sett inn en PLY-, XYZ- eller PTS-skanning som en punktsky ved siden av modellen. Bruk den som referanse når du bygger en modell fra måledata.",
"help.sketch.equation_curve": "Tegner en kurve ut fra formler: x(t) og y(t), eller y = f(x), over et intervall. Formlene kan bruke parametere, og kurven følger dem: bruk den til en sinusbølge, en spiral eller evolventen til en tannhjulstann.",
"help.solid.align": "Flytter de valgte kroppene slik at et punkt, en flate eller et plan på dem møter et punkt, en flate eller et plan et annet sted. Bruk det til å plassere en del mot en annen uten å måle forskyvningen.",
"help.solid.chamfer": "Lager en plan fas langs de valgte kantene med avstanden du angir. Bruk verktøyet til å fjerne skarpe kanter eller gjøre det lettere å føre inn en pinne eller skrue.",
"help.solid.combine": "Slår sammen kropper, trekker dem fra en målkropp eller beholder bare volumet de har felles, og kan beholde verktøykroppene. Bruk det til å slå sammen deler, til å skjære en form med en annen eller til å finne hvor to kropper overlapper.",
@@ -1474,6 +1522,21 @@
"joint.one_component": "Disse delene er kropper i én komponent: {bodies}. Et ledd beveger én komponent i forhold til en annen, så hver del trenger sin egen komponent.",
"joint.rigid_group_one_component": "Disse {count} kroppene ligger alle i én komponent (eller i selve designet): bruk {command} først.",
"joint.rigid_group_select_components": "Velg to eller flere komponenter.",
"joint_move.blocked_hint": "Kontroller leddtypen (for eksempel Stiv), om posisjonen er festet, leddgrenser og parameterstyrte verdier.",
"joint_move.blocked_title": "Kan ikke flytte denne delen",
"joint_move.coarse": "Rotasjonstrinn nær aksen (°)",
"joint_move.distance": "Avstand fra start",
"joint_move.done": "Ferdig",
"joint_move.fine": "Rotasjonstrinn langt fra aksen (°)",
"joint_move.fixed": "Denne delen har ingen bevegelig leddakse.",
"joint_move.help": "Flytt — dra en pil eller en ring. Esc avbryter gjeldende drag.",
"joint_move.legacy_hint": "Slå av for å bruke det forrige Flytt-panelet.",
"joint_move.precision": "Dra utenfor den stiplede hjelpelinjen for finrotasjon.",
"joint_move.rotation": "Rotasjon fra start",
"joint_move.select": "Velg en flate eller én del i sammenstillingen, og velg deretter Flytt.",
"joint_move.settings": "Flytting i sammenstilling",
"joint_move.step": "Trinn",
"joint_move.use_handles": "Bruk håndtak for leddbevegelse ved Flytt i sammenstillinger",
"keymap.command_id": "Kommando-ID",
"keymap.empty": "Ingen kommandoer samsvarer med søket",
"keymap.use_anyway": "Bruk {key} her likevel",
@@ -1568,6 +1631,8 @@
"nav.maya.help": "Alt+venstredrag roterer, Alt+midtdrag panorerer, Alt+høyredrag zoomer; midtdrag panorerer også",
"nav.openscad.help": "Venstredrag i tomt område roterer, Shift+venstredrag velger med ramme, dra i skissegeometri for å redigere; høyre- eller midtdrag panorerer, Shift+høyredrag eller Shift+midtdrag zoomer",
"nav.perspective.sketch": "Skisseredigering bruker ortografisk visning. Fullfør skissen for å bytte til perspektiv.",
"nav.right_drag_orbits.help": "Av: et høyredrag lar kameraet stå i ro, og høyre museknapp åpner bare kontekstmenyen. Når du velger SolidWorks-museoppsettet, slås dette av.",
"nav.right_drag_orbits.label": "Høyredrag roterer",
"nav.solidworks.help": "Midtdrag roterer, Ctrl+midtdrag panorerer, Shift+midtdrag zoomer, høyredrag roterer",
"nav.tinkercad.help": "Høyredrag roterer, midtdrag eller Shift+høyredrag panorerer",
"nav.touchpad.help": "Hold Shift og flytt pekeren for å panorere. Hold Alt/Option og flytt pekeren for å rotere visningen. Du trenger ikke holde inne en museknapp. Vertikal rulling zoomer.",
@@ -1589,6 +1654,9 @@
"navbar.custom.customise": "Tilpass navigasjonslinjen…",
"navbar.custom.design": "Design",
"navbar.custom.duplicate": "Dette elementet er allerede på linjen.",
"navbar.custom.edge": "Kant",
"navbar.custom.edge_bottom": "Nederst",
"navbar.custom.edge_top": "Øverst",
"navbar.custom.fade": "Tone ned",
"navbar.custom.full": "Fjern et element for å legge til et nytt.",
"navbar.custom.hidden_design": "Skjult i Design",
@@ -1695,6 +1763,7 @@
"parts.dimension.thickness": "Tykkelse",
"parts.dimension.width": "Bredde",
"parts.family.bearing": "Dypsporkulelager (ytre omriss)",
"parts.family.button_head_cap_screw": "Linsehodeskrue med innvendig sekskant",
"parts.family.dowel_pin": "Parallellstift (passtift)",
"parts.family.hex_bolt": "Sekskantbolt / sekskantskrue",
"parts.family.hex_nut": "Sekskantmutter",
@@ -1751,6 +1820,9 @@
"prefs.bottom_centre": "Nederst i midten",
"prefs.bottom_right": "Nederst til høyre",
"prefs.browser": "Modelltre",
"prefs.browser_reveal_on_hover": "Vis når pekeren er over",
"prefs.browser_show_note": "Vist holder modelltreet på skjermen. Vis når pekeren er over holder det skjult til pekeren kommer over plassen det har, eller over den tynne fanen ved venstre kant, og det forblir åpent mens pekeren er inne i det eller en meny fra det er åpen.",
"prefs.browser_shown": "Vist",
"prefs.built_in": "Innebygd",
"prefs.button_left": "Dra med venstre museknapp",
"prefs.button_middle": "Dra med midtre museknapp",
@@ -1821,6 +1893,8 @@
"prefs.layout_note": "Kompakt fester panelene til vinduskantene. Gjennomsiktig modelltre er tilgjengelig i Flytende. Endre siden for assistenten på assistentsiden.",
"prefs.left": "Venstre",
"prefs.left_click": "Venstreklikk",
"prefs.line_drag_draws_one": "Trykk og dra tegner én linje",
"prefs.line_drag_draws_one_note": "I Linje-verktøyet tegner trykk, dra og slipp én linje fra der du trykket til der du slapp, og linjen avsluttes der. Klikk tegner fortsatt en kjede. Av: et drag plasserer et punkt der det slippes, slik et klikk gjør.",
"prefs.linked_designs": "Koblede design",
"prefs.live_input": "Direkte inndata",
"prefs.live_preview": "Direkte forhåndsvisning",
@@ -1853,14 +1927,36 @@
"prefs.origin_plane_names": "Navn på origoplan",
"prefs.origin_plane_names_note": "Navn som vises i modelltreet, dialoger og lister. {top} er XY, {front} er XZ og {right} er YZ, med Z opp. Kommandoer, skript og lagrede design beholder XY, XZ og YZ.",
"prefs.overall_speed": "Samlet hastighet",
"prefs.perspective_fov": "Synsfelt",
"prefs.placement": "Plassering",
"prefs.prefer_free_sketch_points": "Foretrekk flyttbare skissepunkter når punkter overlapper",
"prefs.preview_choices": "Forhåndsvisning av valgene dine",
"prefs.profile_active": "Aktiv profil",
"prefs.profile_applied": "Profilen er brukt.",
"prefs.profile_changed": "Innstillingene er endret siden profilen ble lagret. Lagre beholder dem i profilen.",
"prefs.profile_deleted": "Profilen er slettet.",
"prefs.profile_export": "Eksporter…",
"prefs.profile_exported": "Profilen er eksportert.",
"prefs.profile_imported": "Profilen er importert. Velg den under Aktiv profil for å bytte til den.",
"prefs.profile_name_hint": "Profilnavn, f.eks. Laptop",
"prefs.profile_rename": "Gi nytt navn",
"prefs.profile_renamed": "Profilen har fått nytt navn.",
"prefs.profile_save": "Lagre",
"prefs.profile_saved": "Gjeldende innstillinger er lagret i profilen.",
"prefs.profile_skipped": "Profilen er brukt; {n} innstilling(er) beholdt sin nåværende verdi (se loggen).",
"prefs.profiles": "Innstillingsprofiler",
"prefs.profiles_note": "Snarveier, verktøylinjen, navigasjon, radialmenyen og grensesnittinnstillinger, samlet under ett navn og byttet på én gang.",
"prefs.project_options_dialog": "Dialog med alternativer for projisering",
"prefs.project_options_dialog_note": "På: velg Geometri eller Kropper og Projeksjonskobling før du projiserer. Av: behold den forrige arbeidsflyten med direkte valg.",
"prefs.quality_default": "standard",
"prefs.quality_fastest": "raskest",
"prefs.quality_slowest": "langsomst",
"prefs.quality_smoother": "jevnere",
"prefs.render_previous_geometry_budget": "Bruk forrige geometribudsjett for rendringsforhåndsvisning",
"prefs.render_previous_geometry_budget_help": "Gjenopprett den forrige faste geometrigrensen (512 MiB på 64-biters skrivebordsmaskiner, 128 MiB ellers) i stedet for budsjettet som er basert på enheten.",
"prefs.reports_saved": "{n} lagret",
"prefs.ribbon_reveal": "Vis søkeresultater på båndet",
"prefs.ribbon_reveal_note": "Når pekeren holdes over et resultat i Søk i kommandoer, vises hvor kommandoen ligger på båndet: fanen, knappen eller raden i et panels nedtrekksmeny. En kommando som startes fra søket, blinker der, og en kjørende kommando fra en nedtrekksmeny markerer panelet sitt.",
"prefs.right_click": "Høyreklikk",
"prefs.saving": "Automatisk lagring og gjenoppretting",
"prefs.scale_note": "Også Ctrl + / Ctrl − i vinduet. Knapper er 28 px ved 100 %.",
@@ -1874,6 +1970,10 @@
"prefs.shift_add_ctrl_toggle": "Shift legger bare til; Ctrl / Cmd veksler",
"prefs.shift_add_note": "På: Shift legger til, Ctrl / Cmd veksler. Av (standard): begge veksler.",
"prefs.shortcuts": "Snarveier",
"prefs.single_surface_analysis": "Bruk én overflateanalyse om gangen",
"prefs.single_surface_analysis_help": "Når dette er av, kan overflateskyggelegging og Kontinuitet være på samtidig. Når dette slås på, beholdes den siste analysen som ble startet eller endret.",
"prefs.sketch_align_points": "Juster etter andre skissepunkter under tegning",
"prefs.sketch_align_points_note": "Under tegning justeres et punkt vannrett etter ett skissepunkt og loddrett etter et annet samtidig, med en prikket hjelpelinje, og klikket beholder begge justeringene. Av: bare etter forrige punkt, én akse om gangen.",
"prefs.sketch_conflict_colour": "Motstridende geometri i konfliktfargen",
"prefs.sketch_conflict_colour_note": "Mens bindingene i en skisse er i konflikt, tegnes også kurvene og punktene som en feilende binding holder i konfliktfargen, ikke bare symbolet eller målet. Av: de beholder sine vanlige farger.",
"prefs.sketch_exit_view": "Når en skisse avsluttes",
@@ -1881,6 +1981,8 @@
"prefs.sketch_exit_view.previous": "Gå tilbake til forrige visning",
"prefs.sketch_exit_view.unless_rotated": "Gå tilbake med mindre visningen er rotert",
"prefs.sketch_exit_view_note": "Hvor visningen går etter Fullfør skisse, Avbryt eller dobbelt Esc.",
"prefs.sketch_recent_snap": "Fang automatisk til nylige sentre og midtpunkter",
"prefs.sketch_recent_snap_note": "Under tegning fanges markøren der hjelpelinjene fra de to siste sirkelsentrene eller midtpunktene på rette kanter krysser hverandre. Av: hjelpelinjene vises bare, og markøren flytter seg ikke.",
"prefs.sketch_selection": "Skisse og valg",
"prefs.sketch_selection_heading": "Skisse og valg",
"prefs.sketch_selection_note": "Hvordan skisser bruker punktfangst, og hvordan klikk velger.",
@@ -1918,7 +2020,14 @@
"prefs.toast_place": "Varsler",
"prefs.toggle_item": "Legg til elementet, eller fjern det igjen",
"prefs.toolbar": "Verktøylinje",
"prefs.toolbar_tabs": "Verktøylinjefaner",
"prefs.top": "Topp",
"prefs.trackpad_zoom_modifier": "Zoom med tofingerrulling mens du holder",
"prefs.trackpad_zoom_modifier.alt": "⌥ / Alt",
"prefs.trackpad_zoom_modifier.cmd": "⌘",
"prefs.trackpad_zoom_modifier.ctrl": "Ctrl",
"prefs.trackpad_zoom_modifier.help": "Hold bare denne tasten for å zoome mot pekeren med vertikal rulling. Av beholder den eksisterende rulleoppførselen.",
"prefs.trackpad_zoom_modifier.off": "Av",
"prefs.translucent": "Gjennomsiktig",
"prefs.under_browser": "Under modelltreet",
"prefs.under_cursor": "Under pekeren",
@@ -1928,9 +2037,14 @@
"prefs.view_confirm_corner": "OK og Avbryt i hjørnet av visningen",
"prefs.view_confirm_corner_note": "Mens en dialog eller en skisse er åpen, gjør et hakemerke og et kryss øverst til høyre i visningen det samme som OK og Avbryt i dialogen, eller fullfører og avbryter skissen. Visningsnavigatoren flyttes ned under dem.",
"prefs.viewport": "Visningsområde",
"prefs.viewport_background": "Bakgrunn",
"prefs.viewport_background_colour": "Farge",
"prefs.viewport_background_theme": "Temaets gradient",
"prefs.wheel": "Musehjul",
"prefs.wheel_trackpad": "Musehjul og styreflate",
"prefs.workspace": "Arbeidsområde",
"prefs.zoom_stop_at_model": "Stopp zoom ved modellen",
"prefs.zoom_stop_at_model_tip": "3D-musen og enhetsappen zoomer mot flaten midt i visningen; dra-zoom holder fast punktet der draget begynte. Av: zoom kan gå gjennom modellen. Hjul og knip bruker Zoom til markøren separat",
"prefs.zoom_toward_cursor": "Zoom mot pekeren",
"properties.title": "Egenskaper: {name}",
"recovery.days_ago": "for {count} dager siden",
@@ -2019,6 +2133,7 @@
"render.appearance_editor.weight": "Vekt",
"render.appearance_physics_separate": "Visuelt utseende tildeler ikke tetthet, termiske data eller andre tekniske egenskaper.",
"render.appearances": "Utseender",
"render.assign_help": "Klikk for å bruke på utvalget; dra for å forhåndsvise og slipp, eller klikk uten noe valgt for å male.",
"render.availability_native": "Innebygd sammensetning; gjennomgå før bruk",
"render.availability_projection": "Støttet projeksjon; se omfang og utelatelser",
"render.availability_reference": "Referansedata; ikke en automatisk tildeling",
@@ -2057,6 +2172,7 @@
"render.bloom_threshold": "Terskel for lineære høylys",
"render.browse_capabilities": "Inspiser hele katalogen over funksjoner",
"render.browse_environments": "Bla gjennom originale HDR-omgivelser",
"render.browse_looks": "Bla gjennom…",
"render.browse_native_scenes": "Bla gjennom innebygde studioer",
"render.browse_physical": "Inspiser fysiske referanser",
"render.browse_quality": "Inspiser kvalitetsspesifikasjoner",
@@ -2080,6 +2196,82 @@
"render.check_opaque": "Transparens: bare ugjennomsiktige flater; bakgrunnsalfa støttes.",
"render.check_sorted_alpha": "Transparens: tilnærming med sortert alfa.",
"render.check_transmission": "Transparens: fysisk transmisjon.",
"render.children.absolute_floor": "Absolutt nedre grense",
"render.children.adaptive": "Adaptiv",
"render.children.add_look_reason": "Legg til en stil for å redigere om den er aktivert, og styrken.",
"render.children.all_shots": "Alle opptak",
"render.children.bloom": "Bloom",
"render.children.check": "Sjekk",
"render.children.check_now": "Sjekk nå",
"render.children.chromatic": "Kromatisk",
"render.children.compact": "Kompakt",
"render.children.contrast": "Kontrast",
"render.children.copy_image": "Kopier",
"render.children.copy_job": "Kopier jobb-JSON",
"render.children.copy_request": "Kopier forespørsels-JSON",
"render.children.coverage_error": "Dekningsfeil",
"render.children.cpu": "CPU-strålesporing",
"render.children.denoise": "Reduser støy i det ferdige bildet",
"render.children.depth": "Banedybde",
"render.children.distortion": "Forvrengning",
"render.children.edge_samples": "Kantprøver",
"render.children.effects_banner": "Disse effektene krever GPU-banesporing. Å åpne dette endrer aldri metoden.",
"render.children.enable_adaptive": "Aktiver uavhengige pilotprøver for å redigere de adaptive grensene.",
"render.children.enable_bloom": "Aktiver bloom for å redigere styrke, terskel og radius.",
"render.children.finishing": "Etterbehandling",
"render.children.flare": "Linseflekk",
"render.children.fresnel": "Fresnel-sjikt",
"render.children.ghosts": "Spøkelsesringer",
"render.children.glass": "Glasstransport",
"render.children.go_to": "Gå til {editor}",
"render.children.grain": "Korn",
"render.children.halo": "Halo",
"render.children.hdr": "HDR",
"render.children.keep_master": "Behold rå lineær master",
"render.children.last_result": "Siste: {number} · {width} × {height} · {phase}",
"render.children.lens_effects": "Linseeffekter",
"render.children.look_summary": "{tone} · {count} stiler",
"render.children.looks": "Kreative stiler",
"render.children.memory": "Minne",
"render.children.method": "Metode",
"render.children.minimum": "Minimum",
"render.children.needs_cpu": "Krever CPU-strålesporing. Å åpne dette endrer aldri metoden.",
"render.children.nested": "Sertifiserte nestede dielektrika",
"render.children.not_checked": "Ikke sjekket",
"render.children.path": "Banesporing",
"render.children.pilots": "Pilotprøver",
"render.children.preview": "Forhåndsvisningsdata",
"render.children.progressive_reason": "Velg Progressiv for å redigere antall prøver og startverdi.",
"render.children.radius": "Radius",
"render.children.reflect_depth": "Refleksjonsdybde",
"render.children.reflect_samples": "Refleksjonsprøver",
"render.children.regrade": "Ny fargekorrigering",
"render.children.relative_error": "Relativ feil",
"render.children.render": "Rendring",
"render.children.render_shot": "Rendre opptak",
"render.children.renderer": "Rendringsmotor",
"render.children.renderers": "Rendringsmotorer",
"render.children.request": "Denne forespørselen",
"render.children.reset_finishing": "Tilbakestill etterbehandling",
"render.children.review_quality": "Gjennomgå en kvalitetsspesifikasjon…",
"render.children.rgb_gain": "RGB-forsterkning",
"render.children.samples": "Prøver",
"render.children.sampling": "Sampling",
"render.children.saturation": "Metning",
"render.children.scene_summary": "{bodies} kropper · {triangles} trekanter",
"render.children.seed": "Startverdi",
"render.children.sharpening": "Skjerping",
"render.children.single_image": "Enkeltbilde",
"render.children.soft_focus": "Mykt fokus",
"render.children.streak": "Strek",
"render.children.strength": "Styrke",
"render.children.studio": "Studio",
"render.children.threshold": "Terskel",
"render.children.tone": "Tone",
"render.children.under_hood": "Under panseret",
"render.children.vignette": "Vignettering",
"render.children.workstation": "Arbeidsstasjon",
"render.choose_look": "Velg en stil i Utseender først",
"render.chromatic_offset": "Kromatisk kantforskyvning",
"render.clear_stage": "Fjern lagret rendringsdekor",
"render.copy_request": "Kopier JSON",
@@ -2331,8 +2523,33 @@
"render.flare_strength": "Styrke på linseflekk i høylys",
"render.flare_threshold": "Terskel for linseflekk (scenelineær)",
"render.fold_browser": "Brett sammen modelltreet",
"render.frame_aspect": "Sideforhold",
"render.frame_centre_mark": "Midtmerke",
"render.frame_copy_limit": "Ingen ledige navn for duplisert opptak",
"render.frame_copy_name": "{name} kopi {number}",
"render.frame_custom": "Egendefinert",
"render.frame_distance_unit": " × størrelse",
"render.frame_duplicate": "Dupliser",
"render.frame_exposure": "Eksponering",
"render.frame_fov": "Synsfelt",
"render.frame_guides": "Hjelpelinjer",
"render.frame_invalid_aspect": "Ugyldig forhåndsinnstilling for sideforhold",
"render.frame_lens": "Synsfelt {fov}° · ≈ {mm} mm",
"render.frame_name": "Navn",
"render.frame_output_size": "Utdatastørrelse",
"render.frame_photo": "3:2 · Foto",
"render.frame_portrait": "4:5 · Portrett",
"render.frame_presets": "Forhåndsinnstillinger for bilderute",
"render.frame_presets_pending": "Kommer med opptakseditoren",
"render.frame_projection": "Projeksjon",
"render.frame_render_shot": "Rendre dette opptaket",
"render.frame_rule_thirds": "Tredjedelsregelen",
"render.frame_safe_area": "Sikkert område",
"render.frame_shot_title": "Opptak · {name}",
"render.frame_square": "1:1 · Kvadrat",
"render.frame_tall": "9:16 · Vertikal",
"render.frame_thirds": "Tredjedeler",
"render.frame_wide": "16:9 · Bredformat",
"render.gpu_depth": "Maksimal banedybde",
"render.gpu_options_help": "Prøver, dybde, startverdi og eksponering lagres med dette oppsettet. Bare den aktive bildemetoden lagres.",
"render.gpu_path_failed": "GPU-banesporing er ikke tilgjengelig",
@@ -2360,6 +2577,7 @@
"render.heading_results": "RESULTATER",
"render.heading_shots": "OPPTAK",
"render.hide_shots_label": "Skjul opptaksstripen",
"render.hover_look": "{object} · {look} · klikk for å velge",
"render.image_advanced": "Avanserte GPU-innstillinger",
"render.image_cancelled": "Rendring avbrutt",
"render.image_cancelling": "Avbryter",
@@ -2506,17 +2724,95 @@
"render.library_uniform_ack": "Bruk den ensartede tilnærmingen uten romlige eller avanserte effekter",
"render.library_usable": "Kjørbare projeksjoner",
"render.library_users": "Brukes av",
"render.light_aim": "Sikt mot",
"render.light_anchor_pending": "Det er ikke støttet ennå å endre lysets koordinatsystem.",
"render.light_azimuth": "Asimut",
"render.light_backend_limit": "Velg CPU-strålesporing eller et eksplisitt GPU-studio for å redigere lys. Eldre GPU-studiolys forblir skrivebeskyttet.",
"render.light_behaviour": "OPPFØRSEL",
"render.light_default_fill": "Fyllys",
"render.light_default_key": "Hovedlys",
"render.light_default_number": "Lys {number}",
"render.light_default_rim": "Kantlys",
"render.light_delete": "Slett",
"render.light_distance": "Avstand",
"render.light_duplicate": "Dupliser",
"render.light_elevation": "Elevasjon",
"render.light_gpu_punctual": "Punktlys og spotlys er tilgjengelige med CPU-strålesporing.",
"render.light_hard_shadow": "Dette lyset har harde skygger; mykhet for lyskilden er ikke tilgjengelig.",
"render.light_intensity": "Intensitet",
"render.light_missing": "Dette lyset finnes ikke lenger. Velg et lys i modelltreet.",
"render.light_place_highlight": "Plasser etter høylys",
"render.light_place_pending": "Plassering etter høylys krever valg av lys i visningsområdet og støttes ikke ennå.",
"render.light_position": "POSISJON",
"render.light_preview_help": "Live-visningen er uten skygger; arealys bruker en tilnærming med én prøve i midten. Rendring bruker den fullstendige lysmodellen.",
"render.light_product_centre": "Produktets senter",
"render.light_size": "Størrelse",
"render.light_softness": "Mykhet",
"render.light_temperature": "Fargetemperatur",
"render.light_temperature_help": "Omtrentlig svartlegemefarge; lagres som lineær RGB.",
"render.light_type": "Type",
"render.light_type_area": "Areal",
"render.light_type_point": "Punkt",
"render.light_type_spot": "Spot",
"render.light_type_sun": "Sol",
"render.light_view_only": "Solo og demping påvirker denne visningen og rendringene fra den; de lagres aldri i designet.",
"render.light_world_origin": "Verdens origo",
"render.lighting_aim_point": "Siktepunkt",
"render.lighting_apply": "Bruk forhåndsinnstilling",
"render.lighting_area_samples": "Arealprøver",
"render.lighting_budget": "Budsjett",
"render.lighting_budget_help": "Antallene er skrivebeskyttet. Legg til, dupliser eller slett lys for å endre dem; metoden bestemmer grensene.",
"render.lighting_colour": "Farge",
"render.lighting_consent": "Erstatt retningslysene med denne forhåndsinnstillingen",
"render.lighting_custom": "Egendefinerte lys",
"render.lighting_custom_help": "Når du velger Egendefinert, gjøres forhåndsinnstillingen om til redigerbare lys, med én rad for hvert i treet.",
"render.lighting_direction": "Retning X Y Z",
"render.lighting_direction_help": "Eller skriv inn en retning mot lyset (X Y Z).",
"render.lighting_distance_unit": " × størrelse",
"render.lighting_edge_u": "Sidevektor U",
"render.lighting_edge_v": "Sidevektor V",
"render.lighting_falloff": "Avtaking",
"render.lighting_falloff_help": "Intensiteten er oppgitt ved referanseavstanden.",
"render.lighting_height": "Høyde V",
"render.lighting_minimum": "Minimum",
"render.lighting_mute": "Demp dette lyset",
"render.lighting_point": "Punkt",
"render.lighting_preset": "Studioforhåndsinnstilling",
"render.lighting_preset_cpu": "Forhåndsinnstillinger for studio med retningslys krever CPU-strålesporing. GPU-belysning bruker eksplisitte sol- og arealys.",
"render.lighting_preset_row": "Forhåndsinnstilling",
"render.lighting_radiance": "Stråling",
"render.lighting_reference": "Referanse",
"render.lighting_review_help": "Erstatter listen over retningslys. Beholder punktlys og arealys, omgivelse, skygger, kamera og alle andre opptaksinnstillinger.",
"render.lighting_review_title": "Gjennomgå forhåndsinnstilling for belysning",
"render.lighting_samples_cpu": "Prøver for arealys gjelder for CPU-strålesporing.",
"render.lighting_samples_need_area": "Legg til et CPU-arealys for å angi arealprøver.",
"render.lighting_samples_reason": "Arealprøver må være 1, 4, 16 eller 64.",
"render.lighting_shadow_cpu": "Skyggebryteren krever CPU-strålesporing. GPU-banesporing kaster alltid skygger.",
"render.lighting_shadows": "Kast skygger",
"render.lighting_shadows_section": "Skygger og sampling",
"render.lighting_shape": "Form",
"render.lighting_solo": "Solo for dette lyset",
"render.lighting_source": "Kilde",
"render.lighting_source_section": "Lyskilde",
"render.lighting_spot_preserved": "Dette punktlyset beholder den lagrede spotlyskjeglen til typen endres.",
"render.lighting_sun_distance": "Solretningen er uavhengig av avstand og siktepunkt.",
"render.lighting_unsupported": "støttes ikke",
"render.lighting_used": "{used} av {limit}",
"render.lighting_width": "Bredde U",
"render.lighting_world_position": "Verden X Y Z",
"render.lights_fixed_to": "Lys festet til",
"render.linear_help": "Beholder en RGBA-master med 32-biters flyttall før støyreduksjon, eksponering, tonekartlegging, filtre og bakgrunn. Lineær sRGB/D65; dekningsforhåndsmultiplisert. Ekstra minne tillates eksplisitt. Ingen komprimering eller ekstra pass.",
"render.linear_retain": "Behold rå lineær EXR",
"render.linear_unavailable": "Det valgte ferdige bildet har ingen beholdt EXR. Aktiver beholdning før rendring; en eldre PNG kan ikke gjenskape rå radians.",
"render.look_add": "Legg til fargestil",
"render.look_applied": "Brukt: {name}",
"render.look_bleach": "Inspirert av bleach bypass",
"render.look_cool": "Kjølig",
"render.look_cyanotype": "Inspirert av cyanotypi",
"render.look_faded": "Falmet trykk",
"render.look_material": "Materiale",
"render.look_mono": "Monokrom",
"render.look_pasted": "Stil limt inn",
"render.look_sepia": "Sepia",
"render.look_strength": "Stilstyrke",
"render.look_teal_orange": "Blågrønn / oransje",
@@ -2592,9 +2888,11 @@
"render.output_advanced": "Avansert",
"render.output_backend_ready": "Klar",
"render.output_check": "Sjekk",
"render.output_check_failed": "Sjekk · feil",
"render.output_check_help": "Kjør Sjekk for å gå gjennom denne forespørselen uten å starte en rendring.",
"render.output_check_summary": "Sjekk · Merknader: {count}",
"render.output_copy": "Kopier",
"render.output_copy_report": "Kopier rapport",
"render.output_destination": "Destinasjon",
"render.output_destination_help": "Velg destinasjonsfilen når du eksporterer det ferdige bildet.",
"render.output_dimensions": "Størrelse",
@@ -2604,6 +2902,7 @@
"render.output_fit": "Tilpass",
"render.output_format": "Format",
"render.output_format_status": "PNG er det nøyaktige ferdige visningsbildet. Valgfri GPU-EXR beholder rå scenelineær FLOAT32-radians før visningsfiltre. Eksport erstatter aldri forhåndsvisningsbufferen eller en annen jobb.",
"render.output_grading": "Fargekorrigering",
"render.output_image": "Bilde",
"render.output_largest": "maks. {width} × {height}",
"render.output_lock_ratio": "Lås sideforhold",
@@ -2613,6 +2912,8 @@
"render.output_quality_waiting": "venter på kvalitetskontrakten",
"render.output_ratio_refused": "Det koblede målet overskrider størrelsesgrensen for denne metoden. Forrige størrelse beholdes; lås opp forholdet eller velg en mindre verdi.",
"render.output_ready": "Klar til rendring",
"render.output_run_check": "Kjør sjekk",
"render.output_size_limit": "{method}: opptil {dimension} px per side og {pixels} piksler. Største størrelse som passer: {width} × {height}.",
"render.output_size_ok": "Størrelse OK · {width} × {height} px",
"render.output_swap_orientation": "Bytt bredde og høyde",
"render.output_tools_inspector": "Rediger størrelse og format i utdatainspektøren.",
@@ -2629,6 +2930,7 @@
"render.page_output": "Utdata",
"render.page_scene": "Scene",
"render.paint_label": "Maling",
"render.painting_with": "Maler med {name}",
"render.passive_stage": "Gulv og passivt rendringsdekor",
"render.passive_stage_help": "Endelige passive paneler hører bare til rendrede bilder. De legger ikke til CAD-kropper eller masse. Plasseringen er fast etter at den er brukt; skjæring med produktets avgrensning avvises. CPU gir ikke diffus indirekte belysning.",
"render.perspective": "Perspektivkamera",
@@ -2650,6 +2952,7 @@
"render.pick_help": "Velg kropp, flate eller komponent. Klikk i tomt område for å fjerne valget; Shift eller Ctrl legger til eller veksler. Utheving vises bare i live-produktvisningen.",
"render.pick_label": "Velg",
"render.pick_up_label": "Plukk opp",
"render.pick_up_prompt": "Klikk på et objekt for å plukke opp stilen",
"render.pick_waiting": "Valg i produktvisningen støttes ikke ennå.",
"render.post_contrast": "Kontrast",
"render.post_gain_b": "Blå forsterkning",
@@ -2689,13 +2992,17 @@
"render.radial_distortion": "Radiell forvrengning",
"render.radial_fit": "Tilpass produkt",
"render.radial_save": "Lagre opptak",
"render.recent_looks": "Nylige stiler",
"render.regrade_action": "Fargekorriger råmaster på nytt (uten støyfjerning)",
"render.regrade_help": "Oppretter en separat PNG fra den valgte ferdige råmasteren med disse presentasjonskontrollene. Sporer ingen stråler, endrer ikke registrert størrelse, kamera eller lys, og overskriver ikke EXR-filen. Støyfjerning brukes ikke på nytt: råmastere beholder ikke hjelpedataene for den. Den avledede filen kan fortsatt eksporteres med de samme jobbkontrollene.",
"render.regrade_label": "Ny fargekorrigering",
"render.reload_settings": "Last inn lagrede innstillinger på nytt",
"render.remove_override": "Fjern overstyring",
"render.replace_all": "Erstatt alle",
"render.replace_ground": "Bekreft erstatning av eksisterende rendringsdekor",
"render.replace_label": "Erstatt",
"render.replace_saved_surface": "Erstatt en eksisterende lagret tilordning for dette målet",
"render.replace_with": "Erstatt med",
"render.restore_camera": "Gjenopprett lagret kamera",
"render.result_actual": "100%",
"render.result_actual_help": "Én bildepiksel per skjermpiksel.",
@@ -2747,14 +3054,28 @@
"render.saved_surface_remove": "Fjern lagret tilordning",
"render.saved_surfaces": "Lagrede overflatetilordninger",
"render.saved_surfaces_help": "Festede innebygde kart følger den valgte forekomsten i lokale millimeter. Et erstattet eller manglende mål er en feil, aldri en automatisk ny tilordning.",
"render.scene_all_shots": "Alle opptak ({count})",
"render.scene_apply": "Bruk gjennomgått studio",
"render.scene_batch_reason": "Alle opptak krever rendringskøen for lagrede opptak, som ikke er tilgjengelig ennå.",
"render.scene_check_now": "Sjekk nå",
"render.scene_check_passed": "Sjekk bestått · {notes} merknader",
"render.scene_check_stale": "Sjekken er utdatert · sjekk på nytt",
"render.scene_check_unchecked": "Ikke sjekket ennå · 0 merknader",
"render.scene_consent": "Bekreft erstatning av belysning, omgivelse, eksponering og rendringsdekor",
"render.scene_light_summary": "{environment} · {lights} lys",
"render.scene_look_summary": "{looks} stiler · {overrides} overstyringer",
"render.scene_open_check": "Åpne Sjekk",
"render.scene_preserved_fields": "Kamera, sampling, bildestørrelse, optiske tilordninger, CAD-geometri og tekniske materialer beholdes.",
"render.scene_preserves_design": "Komponer belysning og et passivt rendringsdekor for det synlige motivet. Geometri, tekniske materialer og kamera forblir adskilt.",
"render.scene_ready": "Klar til rendring",
"render.scene_reminder": "Scene bevarer designet. Geometri, tekniske egenskaper og CAD endres aldri fra Rendring.",
"render.scene_reminders": "Påminnelser",
"render.scene_renderer_ready": "{renderer} er klar",
"render.scene_replaces": "Erstatter",
"render.scene_review": "Avklar og gjennomgå",
"render.scene_review_help": "Gå gjennom hele den innebygde komposisjonen før du bruker den. Ubundne avanserte SCENE-spesifikasjoner erstattes ikke.",
"render.scene_scope_details": "Komposisjonens omfang",
"render.scene_stages": "Trinn",
"render.search_appearances": "Søk i {count} utseender",
"render.setup_legacy_environment": "Dette eldre oppsettet bruker utdatert rotasjon eller intensitet for omgivelsen. Disse verdiene beholdes; konverter dem eksplisitt før du lagrer en full bildejobb.",
"render.setup_name": "Oppsettsnavn",
@@ -2767,7 +3088,22 @@
"render.shell_tab_camera": "RENDRINGSKAMERA",
"render.shell_tab_lighting": "BELYSNING",
"render.shell_tab_scene": "RENDRINGSSCENE",
"render.shot_aperture": "Blender",
"render.shot_distance": "Avstand",
"render.shot_dof": "Dybdeskarphet",
"render.shot_duplicate": "Dupliser lagret opptak",
"render.shot_edit_output": "Rediger i Utdata",
"render.shot_exposure_reason": "Eksponering krever CPU-strålesporing eller GPU-banesporing.",
"render.shot_exposure_section": "Eksponering",
"render.shot_focus_distance": "Fokusavstand",
"render.shot_fov_reason": "Synsfelt krever perspektivprojeksjon.",
"render.shot_frame_subject": "Ramme inn motivet",
"render.shot_invalid_camera": "Kameraverdiene må være endelige og innenfor gyldig område.",
"render.shot_lens": "Linse",
"render.shot_lens_enable_reason": "Aktiver dybdeskarphet for å redigere blender og fokusavstand.",
"render.shot_lens_gpu_reason": "Dybdeskarphet krever GPU-banesporing.",
"render.shot_lens_perspective_reason": "Dybdeskarphet krever perspektivprojeksjon.",
"render.shot_look_selection": "Sikt mot utvalget",
"render.shot_manager": "Lagrede opptak",
"render.shot_new_name": "Navn på nytt opptak",
"render.shot_remove": "Fjern lagret opptak",
@@ -2775,6 +3111,9 @@
"render.shot_remove_title": "Fjerne lagret opptak?",
"render.shot_rename": "Gi nytt navn til lagret opptak",
"render.shot_saved_only": "Lagre det gjeldende utkastet først. Duplisering og omdøping beholder de nøyaktige lagrede alternativene og ressursreferansene.",
"render.shot_selection_reason": "Velg en kropp eller flate å sikte mot.",
"render.shot_size": "Størrelse",
"render.shot_target": "Mål",
"render.shots_camera_changed": "Kameraet er endret siden dette opptaket ble lagret",
"render.shots_name_help": "Skriv inn et unikt navn på det gjeldende opptaket.",
"render.shots_no_result": "Ingen rendring ennå",
@@ -2997,6 +3336,13 @@
"render.wait_pick_up": "støttes ikke ennå: valg av produkt og opptak av utseende",
"render.wait_replace": "støttes ikke ennå: erstatning av alle bruk av et utseende",
"render.wait_solo": "støttes ikke ennå: lysenes synlighet og solo-kontroller",
"render.wear_applies_to": "Gjelder for",
"render.wear_layer_count": "{count} lag",
"render.wear_layer_one": "{count} lag",
"render.wear_layers": "Lag",
"render.wear_no_layers": "Ingen lag",
"render.wear_selected_layer": "Valgt lag",
"render.wear_title": "Slitasje",
"sample.bracket.about": "Basisflens med kantflenser og kantomslag, med en plateregel for 2 mm tykkelse",
"sample.bracket.name": "Platebrakett",
"sample.enclosure.about": "Uthulet boks med leppekant, skruefester, anlegg og snap-fit",
@@ -3030,6 +3376,7 @@
"select an axis": "velg en akse",
"select an axis, a straight or circular edge, or a cylinder, cone or torus face first": "velg en akse, en rett eller sirkulær kant, eller en sylinder-, kjegle- eller torusflate først",
"select bodies first": "velg kropper først",
"select components first": "velg komponenter først",
"select corner points, or the two lines of one corner": "velg hjørnepunkter, eller de to linjene i ett hjørne",
"select one corner point, or the two lines of one corner": "velg ett hjørnepunkt, eller de to linjene i ett hjørne",
"select sheet edges first": "velg platekanter først",
@@ -3048,6 +3395,7 @@
"settings.double_click_components": "Dobbeltklikk på en komponent for å aktivere den, eller for å redigere en koblet komponent på stedet",
"settings.frame_rate_details_note": "Legger til en graf over tidene for de siste bildene med trekantene som er tegnet oppå, et histogram over bildetider og hva GPU-en tegnet. Klikk på bildefrekvensen i visningen for å vise eller skjule dem.",
"settings.frame_rate_note": "Viser bilder per sekund nederst til høyre i visningen.",
"settings.insert_lists_open_designs": "Sett inn design viser først designene som er åpne i andre faner",
"settings.measure_axis_distances": "Vis X/Y/Z-avstander",
"settings.measure_axis_distances_help": "Vis avstanden langs hver av de globale X-, Y- og Z-aksene sammen med totalavstanden mens Mål er åpen.",
"settings.msaa_applies_on_restart": "Kantutjevning brukes neste gang SolidCraft starter",
@@ -3072,6 +3420,10 @@
"shortcut.unpin": "Løsne",
"sketch is missing": "skissen mangler",
"sketch.degrees_of_freedom": "{count} frihetsgrader",
"sketch.dimension_added_driven": "Skissen bestemmer allerede dette målet, så det ble lagt til som et drevet mål (referansemål)",
"sketch.dimension_applied": "Målet er satt",
"sketch.dimension_applied_defined": "Målet er satt; parameteren `{name}` er definert",
"sketch.dimension_applied_renamed": "Målet er satt; parameteren har fått navnet `{name}`",
"sketch.dof_left": "{count} frihetsgrader igjen",
"sketch.dof_left_one": "{count} frihetsgrad igjen",
"sketch.draw_curves": "Tegn som {linetype}",
@@ -3106,6 +3458,8 @@
"sketch_text.use_font_file": "Bruk skriftfilen {path}",
"solid": "volumkropp",
"status.editing": "Redigerer {name}",
"status.navigation": "Museoppsett: {mapping}",
"status.navigation_tip": "Hvordan musen beveger visningen. Klikk for å velge et annet oppsett",
"status.under_constrained": "Underbestemt ({count} frihetsgrader)",
"status.under_constrained_one": "Underbestemt ({count} frihetsgrad)",
"status.units_tip": "Designets enheter. Klikk for å endre dem",
@@ -3139,8 +3493,10 @@
"timeline.delete_folders_tip": "Behold funksjonene og de nestede mappene i tidslinjen",
"timeline.delete_folders_with_features_tip": "Slett mappene med alle funksjonene i dem og de nestede mappene deres",
"timeline.delete_many": "Slett {count} valgte funksjoner",
"timeline.edited_rolled_back": "{name} er endret, men ligger etter tidslinjemarkøren og bygges derfor ikke: flytt markøren forbi den for å se resultatet",
"timeline.feature_error": "Feil: {message}",
"timeline.feature_hint": "Dobbeltklikk for å redigere · dra for å endre rekkefølge · høyreklikk for mer",
"timeline.feature_rolled_back": "Rullet tilbake: etter tidslinjemarkøren, så den bygges ikke",
"timeline.feature_warning": "Advarsel: {message}",
"timeline.group": "Ny funksjonsgruppe",
"timeline.move_many": "Flytt tidslinjeelementer",
@@ -3220,6 +3576,10 @@
"ui.3d_mouse_offer": "Kalibrering av 3D-musen retter opp byttede eller reverserte akser og stiller inn hastighet og følelse.",
"ui.3d_mouse_offer_never": "Ikke vis igjen",
"ui.3d_mouse_offer_swap": "Bytt til Hidraw (direkte driver)",
"ui.3d_mouse_orbit": "Rotasjon",
"ui.3d_mouse_orbit_classic": "Klassisk",
"ui.3d_mouse_orbit_tip": "Sporet: 3D-musen dreier visningen rundt den delen av modellen som er midt i visningen når dreiningen begynner, markert med en svak kule. Klassisk: rundt visningens sentrum",
"ui.3d_mouse_orbit_traced": "Sporet",
"ui.3d_mouse_reading": "Avlesning",
"ui.3d_mouse_reset_axes": "Tilbakestill aksetilordning",
"ui.3d_mouse_reset_view": "Tilbakestill visning",
@@ -3604,6 +3964,7 @@
"ui.constant": "Konstant",
"ui.constraints_conflict": "Bindinger i konflikt",
"ui.construction": "Konstruksjon",
"ui.construction.ribbon_label": "Hjelpelinjer",
"ui.context_menu": "Kontekstmeny",
"ui.continuity_g0": "G0-knekk",
"ui.continuity_g1": "G1-tangent",
@@ -3695,6 +4056,14 @@
"ui.end_scale": "Sluttskala",
"ui.entities": "Objekter",
"ui.equal": "Lik",
"ui.equation_end": "Slutt",
"ui.equation_explicit": "Eksplisitt",
"ui.equation_form": "Form",
"ui.equation_note": "Variabelen er et rent tall: sin(t) tolker det i radianer. Et resultat uten enhet er i designets enhet.",
"ui.equation_parametric": "Parametrisk",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Ekvivalent radius",
"ui.expand": "Utvid",
"ui.exportDxf": "Eksporter DXF…",
@@ -3760,6 +4129,7 @@
"ui.heading_design": "DESIGN",
"ui.heading_draft": "SLIPPVINKEL",
"ui.heading_edit": "REDIGER",
"ui.heading_equation_curve": "LIGNINGSKURVE",
"ui.heading_extrude": "EKSTRUDERING",
"ui.heading_fillet": "AVRUNDING",
"ui.heading_finish_editing": "FULLFØR REDIGERING",
@@ -3851,6 +4221,10 @@
"ui.import_ellipsis": "Importer…",
"ui.infinite": "Uendelig",
"ui.insert": "Sett inn",
"ui.insert_design.browse": "Bla gjennom…",
"ui.insert_design.open_designs": "Design som er åpne",
"ui.insert_design.saved_file": "{name} har ulagrede endringer, så den lagrede filen ble satt inn. Lagre den, og bruk deretter Oppdater koblinger for å hente inn endringene.",
"ui.insert_design.unsaved": "Ulagrede endringer",
"ui.inspect": "Inspiser",
"ui.intersect": "Snitt",
"ui.isolate": "Isoler",
@@ -4000,6 +4374,18 @@
"ui.project": "Projiser",
"ui.project_face_edges_sketch": "Projiser flatekanter inn i nye skisser",
"ui.properties": "Egenskaper",
"ui.properties.copy_matrix": "Kopier matrise",
"ui.properties.first_moments": "Førsteordens momenter",
"ui.properties.inertia": "Treghetsmoment",
"ui.properties.inertia_note": "Om massesenteret, i verdensaksene (g·{unit}²)",
"ui.properties.inertia_unavailable": "Ikke tilgjengelig: nettet til en kropp er ikke lukket.",
"ui.properties.inertia_x": "Ixx, Ixy, Ixz",
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Måler…",
"ui.properties.measuring_failed": "Målingen stoppet før den var ferdig.",
"ui.properties.principal_axis": "Hovedakse {number}",
"ui.properties.principal_moments": "Hovedtreghetsmomenter",
"ui.pull_direction": "Trekkretning",
"ui.quality": "Kvalitet",
"ui.quantity": "Antall",
@@ -4062,6 +4448,7 @@
"ui.select": "Velg",
"ui.selectOther": "Velg annet…",
"ui.selectTangentChain": "Velg tangentkjede",
"ui.select_all": "Velg alle",
"ui.selection": "Utvalg",
"ui.selection_modifiers": "Utvalgsmodifikatorer",
"ui.selection_shift_add_only": "Shift+klikk legger til uten å fjerne",
@@ -4098,7 +4485,11 @@
"ui.sketch": "Skisse",
"ui.sketch_dimension": "Skissemål",
"ui.sketch_grid": "Skisserutenett",
"ui.sketch_intersect_geometry": "Geometri",
"ui.sketch_intersect_projection_link": "Projeksjonskobling",
"ui.sketch_intersect_selection_filter": "Utvalgsfilter",
"ui.sketch_modifiers": "Skissemodifikatorer",
"ui.sketch_project_geometry": "Geometri",
"ui.sketch_scale": "Skisseskala",
"ui.sketches": "Skisser",
"ui.slice": "Snittvisning",
@@ -4149,6 +4540,7 @@
"ui.tab_manage": "Administrer",
"ui.tab_sheet_metal": "Plate",
"ui.tab_view": "Visning",
"ui.tab_weldments": "Sveisekonstruksjoner",
"ui.tangent": "Tangent",
"ui.taper_angle": "Konusvinkel",
"ui.tapped": "Gjenget",
@@ -4164,6 +4556,7 @@
"ui.tip_angle": "Spissvinkel",
"ui.to_object": "Til objekt",
"ui.tool_direction": "Verktøyretning",
"ui.toolbar_tabs_hidden": "Alle verktøylinjefaner er skjult. Klikk på + eller høyreklikk her for å vise en.",
"ui.top": "Topp",
"ui.top_diameter": "Toppdiameter",
"ui.top_radius": "Toppradius",
@@ -4210,6 +4603,7 @@
"ui.visual_shaded_with_edges": "Skyggelagt med kanter",
"ui.visual_style": "Visuell stil",
"ui.visual_wireframe": "Trådmodell",
"ui.wheel_zoom_speed": "Zoomhastighet for musehjulet",
"ui.width": "Bredde",
"ui.window_system": "Vindussystem",
"ui.window_system_auto": "Automatisk",
@@ -4261,6 +4655,9 @@
"update.prefs_label": "Oppdateringer",
"update.prefs_note": "Dette er SolidCraft {version} ({kind}). Ved en oppdateringssjekk spør programmet GitHub om den nyeste utgivelsen. Ingen andre opplysninger sendes.",
"update.prefs_web": "Last inn siden på nytt for å få den nyeste nettappen. Hvis nettverket ikke er tilgjengelig, eller oppdateringen ikke rekker å lastes ned i tide, åpnes den lagrede versjonen i stedet; en nedlasting som pågår, fortsetter til neste gang siden lastes inn på nytt.",
"update.refresh_checking": "Ser etter den nyeste utgivelsen…",
"update.refresh_fallback": "Kunne ikke se etter en nyere utgivelse; oppdaterer til {version}, som ble funnet tidligere.",
"update.refresh_selected": "Oppdaterer til {version}.",
"update.release_page": "Åpne utgivelsesside",
"update.restart": "Start på nytt nå",
"update.restart_later": "Senere",
+394
View File
@@ -204,6 +204,7 @@
"Edges": "Randen",
"Edit": "Bewerken",
"Edit Profile Sketch": "Profielschets bewerken",
"Edit shortcuts": "Sneltoetsen bewerken",
"Enable rule": "Regel inschakelen",
"Enabled": "Ingeschakeld",
"End Radius": "Eindstraal",
@@ -466,6 +467,7 @@
"Radius": "Straal",
"Radius Fit": "Straalaanpassing",
"Ratio": "Verhouding",
"Read-only list: shortcuts can't be changed here.": "Alleen-lezen lijst: sneltoetsen kunnen hier niet worden gewijzigd.",
"Reattach selected face": "Geselecteerd vlak opnieuw koppelen",
"Recover": "Herstellen",
"Recover unsaved design?": "Niet-opgeslagen ontwerp herstellen?",
@@ -649,6 +651,7 @@
"Third point": "Derde punt",
"This child is shared. Deleting it removes it from every copy of its parent.": "Dit onderliggende item wordt gedeeld. Verwijderen haalt het uit elke kopie van het bovenliggende item.",
"This child is shared. Position changes apply to every copy of its parent.": "Dit onderliggende item wordt gedeeld. Positiewijzigingen gelden voor elke kopie van het bovenliggende item.",
"This component is inside a subassembly placed more than once: aligning it moves it in every placement.": "Dit component zit in een subsamenstelling die meer dan eens is geplaatst: uitlijnen verplaatst het in elke plaatsing.",
"This face cannot provide a durable attachment. Choose another face or explicitly use a fixed plane.": "Dit vlak kan geen duurzame bevestiging bieden. Kies een ander vlak of gebruik expliciet een vast vlak.",
"This image is not attached to GitHub yet. Copy or save it, then attach it on GitHub.": "Deze afbeelding is nog niet aan GitHub toegevoegd. Kopieer of sla de afbeelding op en voeg die daarna op GitHub toe.",
"Thread depth": "Schroefdraaddiepte",
@@ -790,6 +793,11 @@
"cam.roller": "Rol",
"cam.roller_pick": "Rol (optioneel)",
"cam.tip_pick": "Punt (optioneel)",
"camera.shot_pitch": "Kanteling",
"camera.shot_roll": "Rollen",
"camera.shot_yaw": "Gieren",
"canvas.decal_place_hint": "Klik op een vlak om de sticker te plaatsen",
"canvas.place_hint": "Klik op een werkvlak of vlak om het canvas te plaatsen",
"choose a profile": "kies een profiel",
"choose the cam's and the follower's joints": "kies de verbindingen van de nok en de volger",
"choose the joints to couple": "kies de te koppelen verbindingen",
@@ -797,9 +805,12 @@
"click sketch curves": "klik op schetscurven",
"cmd.appearance_assign": "Uiterlijk",
"cmd.appearance_chain": "Uiterlijkenketen",
"cmd.appearance_copy": "Uiterlijk kopiëren",
"cmd.appearance_favorite": "Uiterlijk als favoriet",
"cmd.appearance_library": "Uiterlijkbibliotheek",
"cmd.appearance_list": "Uiterlijken weergeven",
"cmd.appearance_paint": "Uiterlijk aanbrengen",
"cmd.appearance_paste": "Uiterlijk plakken",
"cmd.appearance_pick_up": "Uiterlijk oppakken",
"cmd.appearance_replace": "Uiterlijk vervangen",
"cmd.assembly_bom": "Stuklijst",
@@ -810,6 +821,7 @@
"cmd.browser_move": "Browseritems verplaatsen",
"cmd.browser_order": "Browseritems ordenen",
"cmd.browser_rename_group": "Groep hernoemen",
"cmd.browser_reparent": "Naar component verplaatsen",
"cmd.browser_ungroup": "Groep opheffen",
"cmd.browser_visibility": "Tonen/verbergen",
"cmd.canvas_calibrate": "Canvas kalibreren",
@@ -836,7 +848,9 @@
"cmd.component_metadata": "Onderdeeleigenschappen",
"cmd.component_metadata_set": "Onderdeeleigenschappen wijzigen",
"cmd.component_move_bodies": "Lichamen naar component verplaatsen",
"cmd.component_move_features": "Kenmerken naar component verplaatsen",
"cmd.component_move_sketches": "Schetsen naar component verplaatsen",
"cmd.component_paste_from_design": "Plakken uit een ander ontwerp",
"cmd.component_paste_new": "Nieuw plakken",
"cmd.component_properties": "Fysieke eigenschappen component",
"cmd.component_relink": "Bron opnieuw koppelen",
@@ -973,6 +987,7 @@
"cmd.motion_trace": "Bewegingstraject",
"cmd.motion_trace_edit": "Bewegingstraject bewerken",
"cmd.motion_trace_keep": "Bewegingstraject behouden",
"cmd.occurrence_align": "Occurrence uitlijnen",
"cmd.occurrence_copy": "Plakken (instantie)",
"cmd.occurrence_drag": "Occurrence slepen",
"cmd.occurrence_ground": "Vastzetten",
@@ -1030,11 +1045,17 @@
"cmd.render_library_surface_unbind": "Oppervlaktekoppeling verwijderen",
"cmd.render_library_targets": "Doelen in renderbibliotheek zoeken",
"cmd.render_lights_add": "Licht toevoegen",
"cmd.render_lights_duplicate": "Renderlicht dupliceren",
"cmd.render_lights_list": "Renderlichten weergeven",
"cmd.render_lights_mute": "Licht dempen",
"cmd.render_lights_remove": "Renderlicht verwijderen",
"cmd.render_lights_set": "Renderlicht instellen",
"cmd.render_lights_solo": "Licht solo",
"cmd.render_optics_bind": "Optische koppeling opslaan",
"cmd.render_optics_unbind": "Optische koppeling verwijderen",
"cmd.render_output_size": "Renderuitvoergrootte instellen",
"cmd.render_preflight": "Renderverzoek controleren",
"cmd.render_preflight_copy": "Rapport van rendercontrole kopiëren",
"cmd.render_preset_apply": "Ingebouwde studio toepassen",
"cmd.render_preset_resolve": "Ingebouwde studio controleren",
"cmd.render_quality_prepare": "Vast samplingbudget controleren",
@@ -1057,6 +1078,13 @@
"cmd.render_start": "Afbeelding renderen",
"cmd.render_status": "Rendervoortgang",
"cmd.select_clear": "Selectie wissen",
"cmd.settings_profile_apply": "Instellingenprofiel toepassen",
"cmd.settings_profile_delete": "Instellingenprofiel verwijderen",
"cmd.settings_profile_export": "Instellingenprofiel exporteren",
"cmd.settings_profile_import": "Instellingenprofiel importeren",
"cmd.settings_profile_list": "Instellingenprofielen",
"cmd.settings_profile_rename": "Instellingenprofiel hernoemen",
"cmd.settings_profile_save": "Instellingenprofiel opslaan",
"cmd.sheet_convert": "Converteren naar plaatwerk",
"cmd.sheet_export_bend_table": "Buigtabel exporteren",
"cmd.sheet_export_dxf": "Uitslag exporteren als DXF",
@@ -1070,6 +1098,16 @@
"cmd.sheet_refold": "Opnieuw vouwen",
"cmd.sheet_rules": "Plaatwerkregels weergeven",
"cmd.sheet_unfold": "Ontvouwen",
"cmd.sketch.construction_line": "Constructielijn",
"cmd.sketch.construction_line.angle": "Constructielijn onder hoek",
"cmd.sketch.construction_line.bisector": "Bissectrice",
"cmd.sketch.construction_line.horizontal": "Horizontale constructielijn",
"cmd.sketch.construction_line.parallel": "Parallelle constructielijn",
"cmd.sketch.construction_line.perpendicular": "Loodrechte constructielijn",
"cmd.sketch.construction_line.tangent_at": "Raaklijn in punt op kromme",
"cmd.sketch.construction_line.tangent_external": "Raaklijn door extern punt",
"cmd.sketch.construction_line.tangent_two": "Gemeenschappelijke raaklijn",
"cmd.sketch.construction_line.vertical": "Verticale constructielijn",
"cmd.sketch_arc3d": "3D-boog",
"cmd.sketch_arc_center_point": "Boog met middelpunt",
"cmd.sketch_arc_tangent": "Tangentiële boog",
@@ -1102,6 +1140,8 @@
"cmd.sketch_drawing_bounds": "Tekeninggrootte",
"cmd.sketch_edit": "Schets bewerken",
"cmd.sketch_edit_text": "Tekst bewerken",
"cmd.sketch_equation_curve": "Vergelijkingscurve",
"cmd.sketch_equation_curve_edit": "Vergelijkingscurve bewerken",
"cmd.sketch_export_dxf": "Opslaan als DXF",
"cmd.sketch_finish_auto_constrain": "Afronden met autom. beperken",
"cmd.sketch_fit_curves_to_section": "Curven aanpassen aan meshdoorsnede",
@@ -1198,6 +1238,7 @@
"cmd.view.render_browser": "Renderbrowser",
"cmd.view.render_dock": "Renderdock verplaatsen",
"cmd.view.render_focus": "Renderfocusweergave",
"cmd.view.status_items": "Statusitems in de viewport",
"cmd.view_ambient_occlusion": "Ambient occlusion",
"cmd.view_angle_readout": "Weergavehoeken",
"cmd.view_apply": "Benoemde weergave herstellen",
@@ -1219,6 +1260,7 @@
"cmd.view_normal_to": "Loodrecht op selectie",
"cmd.view_previous_tab": "Vorig tabblad",
"cmd.view_rename": "Benoemde weergave hernoemen",
"cmd.view_render_frame": "Hulplijnen voor renderkader",
"cmd.view_right": "Rechteraanzicht",
"cmd.view_save": "Nieuwe benoemde weergave",
"cmd.view_shots_strip": "Opnamestrook",
@@ -1229,10 +1271,14 @@
"color.copy": "Klik om kleurwaarden te kopiëren",
"color.edit": "Klik om kleur te bewerken",
"color.gamma": "Kleurwaarden worden getoond in gammaruimte 0-255",
"color.hex": "Hex",
"color.hex_help": "Voer #rrggbb of #rrggbbaa in; met zes cijfers blijft de dekking behouden",
"color.hex_hint": "#rrggbb",
"color.hue": "Tint",
"color.linear": "Kleurwaarden worden getoond in lineaire ruimte 0-1",
"color.saturation_value": "Verzadiging en waarde",
"color.selected": "Geselecteerde kleur",
"config.column_filter_empty": "Geen overeenkomende kolommen",
"contact.components_count": "{count} componenten",
"contact.enabled_label": "ingeschakeld",
"coupling.gear_1": "Tandwiel 1",
@@ -1346,8 +1392,10 @@
"help.material.assign": "Stelt in waarvan de geselecteerde lichamen gemaakt zijn, zoals staal, aluminium of ABS. Gebruik dit zodat massa en gewicht overeenkomen met het echte onderdeel.",
"help.mit": "MIT-licentie",
"help.notice": "NOTICE",
"help.occurrence.move": "Verplaatst een onderdeel van een samenstelling alleen langs de vrijheidsgraden die zijn verbindingen toestaan. Selecteer een vlak van het onderdeel en sleep dan een beschikbare pijl of boog.",
"help.parameters.change": "Opent de tabel met benoemde waarden en expressies die de maten van het ontwerp aansturen. Gebruik dit om een maat op één plek te wijzigen, zodat elk kenmerk dat die maat gebruikt vanzelf meegaat.",
"help.pointcloud.insert": "Voeg een PLY-, XYZ- of PTS-scan in als puntenwolk naast het model. Gebruik deze als referentie bij het bouwen van een model op basis van gemeten gegevens.",
"help.sketch.equation_curve": "Tekent een curve uit formules: x(t) en y(t), of y = f(x), over een bereik. De formules kunnen parameters gebruiken en de curve volgt ze: gebruik dit voor een sinusgolf, een spiraal of de evolvente van een tandwieltand.",
"help.solid.align": "Verplaatst de geselecteerde lichamen zodat een punt, vlak of werkvlak erop samenvalt met een punt, vlak of werkvlak elders. Gebruik dit om een onderdeel tegen een ander te plaatsen zonder de afstand te meten.",
"help.solid.chamfer": "Snijdt de geselecteerde randen af met een vlakke afschuining van de ingestelde afstand. Gebruik dit om scherpe randen te breken of het inbrengen van een pen of schroef te vergemakkelijken.",
"help.solid.combine": "Voegt lichamen samen, snijdt ze uit een doellichaam of behoudt alleen het gedeelde volume, en kan de gereedschapslichamen behouden. Gebruik dit om onderdelen samen te voegen, een vorm met een andere uit te snijden of te vinden waar twee lichamen overlappen.",
@@ -1476,6 +1524,21 @@
"joint.one_component": "Deze onderdelen zijn lichamen van één component: {bodies}. Een verbinding beweegt het ene component ten opzichte van het andere, dus elk onderdeel heeft een eigen component nodig.",
"joint.rigid_group_one_component": "Deze {count} lichamen bevinden zich allemaal in één component (of in het ontwerp zelf): gebruik eerst {command}.",
"joint.rigid_group_select_components": "Selecteer twee of meer componenten.",
"joint_move.blocked_hint": "Controleer het verbindingstype (zoals Star), het vastzetten, de verbindingslimieten en door parameters aangestuurde waarden.",
"joint_move.blocked_title": "Dit onderdeel kan niet worden verplaatst",
"joint_move.coarse": "Rotatiestap dicht bij de as (°)",
"joint_move.distance": "Afstand vanaf het begin",
"joint_move.done": "Gereed",
"joint_move.fine": "Rotatiestap ver van de as (°)",
"joint_move.fixed": "Dit onderdeel heeft geen beweegbare verbindingsas.",
"joint_move.help": "Verplaatsen — sleep een pijl of ring. Esc annuleert het huidige slepen.",
"joint_move.legacy_hint": "Schakel uit om het vorige Verplaatsen-paneel te gebruiken.",
"joint_move.precision": "Trek buiten de gestreepte hulplijn voor fijne rotatie.",
"joint_move.rotation": "Rotatie vanaf het begin",
"joint_move.select": "Selecteer een vlak of één onderdeel van de samenstelling en kies dan Verplaatsen.",
"joint_move.settings": "Verplaatsen in samenstelling",
"joint_move.step": "Stap",
"joint_move.use_handles": "Bewegingsgrepen van verbindingen gebruiken voor Verplaatsen in samenstellingen",
"keymap.command_id": "Opdracht-ID",
"keymap.empty": "Geen overeenkomende opdrachten",
"keymap.use_anyway": "Toch {key} hier gebruiken",
@@ -1570,6 +1633,8 @@
"nav.maya.help": "Alt+linkerknop slepen draait, Alt+middenknop pant, Alt+rechterknop zoomt; middenknop slepen pant ook",
"nav.openscad.help": "Linkerknop slepen op lege ruimte draait, Shift+linkerknop slepen selecteert met een kader, schetsgeometrie slepen bewerkt die; rechter- of middenknop slepen pant, Shift+rechter- of Shift+middenknop slepen zoomt",
"nav.perspective.sketch": "Schetsbewerking gebruikt een orthografische weergave. Rond de schets af om naar perspectief te schakelen.",
"nav.right_drag_orbits.help": "Uit: rechts slepen laat de camera met rust en de rechtermuisknop opent alleen het contextmenu. Het kiezen van de SolidWorks-muistoewijzing schakelt dit uit.",
"nav.right_drag_orbits.label": "Rechts slepen roteert",
"nav.solidworks.help": "Middenknop slepen draait, Ctrl+middenknop pant, Shift+middenknop zoomt, rechterknop slepen draait",
"nav.tinkercad.help": "Rechterknop slepen draait, middenknop of Shift+rechterknop slepen pant",
"nav.touchpad.help": "Houd Shift ingedrukt en beweeg de aanwijzer om te pannen; houd Alt/Option ingedrukt en beweeg om te roteren. Er is geen muisknop nodig. Verticaal scrollen zoomt.",
@@ -1591,6 +1656,9 @@
"navbar.custom.customise": "Navigatiebalk aanpassen…",
"navbar.custom.design": "Ontwerp",
"navbar.custom.duplicate": "Dit item staat al op de balk.",
"navbar.custom.edge": "Rand",
"navbar.custom.edge_bottom": "Onder",
"navbar.custom.edge_top": "Boven",
"navbar.custom.fade": "Vervagen",
"navbar.custom.full": "Verwijder een item om een ander toe te voegen.",
"navbar.custom.hidden_design": "Verborgen in Ontwerp",
@@ -1697,6 +1765,7 @@
"parts.dimension.thickness": "Dikte",
"parts.dimension.width": "Breedte",
"parts.family.bearing": "Groefkogellager (omhullende)",
"parts.family.button_head_cap_screw": "Bolkopschroef met inbus",
"parts.family.dowel_pin": "Parallelpen (paspen)",
"parts.family.hex_bolt": "Zeskantbout / zeskantschroef",
"parts.family.hex_nut": "Zeskantmoer",
@@ -1753,6 +1822,9 @@
"prefs.bottom_centre": "Midden onder",
"prefs.bottom_right": "Rechtsonder",
"prefs.browser": "Browser",
"prefs.browser_reveal_on_hover": "Tonen bij aanwijzen",
"prefs.browser_show_note": "Getoond houdt de browser op het scherm. Tonen bij aanwijzen houdt hem uit beeld totdat de aanwijzer over zijn plek of over het smalle lipje aan zijn linkerrand komt, en hij blijft open zolang de aanwijzer erin staat of een menu ervan open is.",
"prefs.browser_shown": "Getoond",
"prefs.built_in": "Ingebouwd",
"prefs.button_left": "Linkerknop slepen",
"prefs.button_middle": "Middenknop slepen",
@@ -1857,14 +1929,36 @@
"prefs.origin_plane_names": "Namen van oorsprongsvlakken",
"prefs.origin_plane_names_note": "Namen die worden getoond in de browser, dialoogvensters en lijsten. {top} is XY, {front} is XZ en {right} is YZ, met Z omhoog. Opdrachten, scripts en opgeslagen ontwerpen blijven XY, XZ en YZ gebruiken.",
"prefs.overall_speed": "Totale snelheid",
"prefs.perspective_fov": "Gezichtsveld",
"prefs.placement": "Plaatsing",
"prefs.prefer_free_sketch_points": "Verplaatsbare schetspunten voorrang geven als punten overlappen",
"prefs.preview_choices": "Voorbeeld van je keuzes",
"prefs.profile_active": "Actief profiel",
"prefs.profile_applied": "Profiel toegepast.",
"prefs.profile_changed": "De instellingen zijn gewijzigd sinds het profiel is opgeslagen. Opslaan bewaart ze erin.",
"prefs.profile_deleted": "Profiel verwijderd.",
"prefs.profile_export": "Exporteren…",
"prefs.profile_exported": "Profiel geëxporteerd.",
"prefs.profile_imported": "Profiel geïmporteerd. Kies het onder Actief profiel om ernaar over te schakelen.",
"prefs.profile_name_hint": "Profielnaam, bijv. Laptop",
"prefs.profile_rename": "Hernoemen",
"prefs.profile_renamed": "Profiel hernoemd.",
"prefs.profile_save": "Opslaan",
"prefs.profile_saved": "Huidige instellingen opgeslagen in het profiel.",
"prefs.profile_skipped": "Profiel toegepast; {n} instelling(en) hebben hun huidige waarde behouden (zie het logboek).",
"prefs.profiles": "Instellingenprofielen",
"prefs.profiles_note": "Sneltoetsen, de werkbalk, navigatie, het radiaalmenu en interface-instellingen, samen bewaard onder een naam en in één keer gewisseld.",
"prefs.project_options_dialog": "Dialoogvenster voor Projecteren",
"prefs.project_options_dialog_note": "Aan: kies Geometrie of Lichamen en Projectiekoppeling voordat je projecteert. Uit: de vorige werkwijze met direct kiezen behouden.",
"prefs.quality_default": "standaard",
"prefs.quality_fastest": "snelste",
"prefs.quality_slowest": "langzaamste",
"prefs.quality_smoother": "gladder",
"prefs.render_previous_geometry_budget": "Vorig geometriebudget voor het rendervoorbeeld gebruiken",
"prefs.render_previous_geometry_budget_help": "De vorige vaste geometrielimiet herstellen (512 MiB op 64-bits desktops, elders 128 MiB) in plaats van het budget op basis van het apparaat.",
"prefs.reports_saved": "{n} opgeslagen",
"prefs.ribbon_reveal": "Zoekresultaten in het lint tonen",
"prefs.ribbon_reveal_note": "Als je de aanwijzer op een resultaat in Opdrachten zoeken houdt, zie je waar de opdracht in het lint staat: het tabblad, de knop of de rij in de vervolgkeuzelijst van een paneel. Een opdracht die vanuit de zoekfunctie is gestart, knippert daar, en een actieve opdracht uit een vervolgkeuzelijst markeert het paneel.",
"prefs.right_click": "Rechtsklik",
"prefs.saving": "Automatisch opslaan en herstel",
"prefs.scale_note": "Ook Ctrl + / Ctrl − in het venster. Knoppen zijn 28 px bij 100%.",
@@ -1878,6 +1972,10 @@
"prefs.shift_add_ctrl_toggle": "Shift voegt alleen toe; Ctrl / Cmd schakelt om",
"prefs.shift_add_note": "Aan: Shift voegt toe, Ctrl / Cmd schakelt om. Uit (standaard): beide schakelen om.",
"prefs.shortcuts": "Sneltoetsen",
"prefs.single_surface_analysis": "Eén oppervlakteanalyse tegelijk gebruiken",
"prefs.single_surface_analysis_help": "Indien uit kunnen kleuring van het oppervlak en Continuïteit tegelijk aan blijven. Als dit aan staat, blijft alleen de laatst gestarte of gewijzigde analyse actief.",
"prefs.sketch_align_points": "Uitlijnen met andere schetspunten tijdens het tekenen",
"prefs.sketch_align_points_note": "Tijdens het tekenen lijnt een punt tegelijk horizontaal uit met het ene schetspunt en verticaal met een ander, met een gestippelde hulplijn, en de klik behoudt beide uitlijningen. Uit: alleen met het vorige punt, één as tegelijk.",
"prefs.sketch_conflict_colour": "Conflicterende geometrie in de conflictkleur",
"prefs.sketch_conflict_colour_note": "Zolang de beperkingen van een schets conflicteren, worden ook de curven en punten die een niet-vervulde beperking vasthoudt in de conflictkleur getekend, niet alleen het symbool of de maat ervan. Uit: ze houden hun gewone kleuren.",
"prefs.sketch_exit_view": "Wanneer een schets eindigt",
@@ -1885,6 +1983,8 @@
"prefs.sketch_exit_view.previous": "Terug naar de vorige weergave",
"prefs.sketch_exit_view.unless_rotated": "Terug, tenzij geroteerd",
"prefs.sketch_exit_view_note": "Waar de weergave naartoe gaat na Schets afronden, Annuleren of een dubbele Esc.",
"prefs.sketch_recent_snap": "Automatisch snappen op recente cirkelmiddens en middelpunten",
"prefs.sketch_recent_snap_note": "Tijdens het tekenen snapt de cursor op het punt waar de hulplijnen van de twee meest recente cirkelmiddens of middelpunten van rechte randen elkaar kruisen. Uit: die hulplijnen worden alleen getoond en de cursor beweegt niet.",
"prefs.sketch_selection": "Schets en selectie",
"prefs.sketch_selection_heading": "Schets en selectie",
"prefs.sketch_selection_note": "Hoe schetsen snappen en hoe klikken selecteren.",
@@ -1924,7 +2024,14 @@
"prefs.toast_place": "Meldingen",
"prefs.toggle_item": "Het item toevoegen of weer weghalen",
"prefs.toolbar": "Werkbalk",
"prefs.toolbar_tabs": "Werkbalktabbladen",
"prefs.top": "Boven",
"prefs.trackpad_zoom_modifier": "Zoomen met scrollen met twee vingers bij ingedrukte toets",
"prefs.trackpad_zoom_modifier.alt": "⌥ / Alt",
"prefs.trackpad_zoom_modifier.cmd": "⌘",
"prefs.trackpad_zoom_modifier.ctrl": "Ctrl",
"prefs.trackpad_zoom_modifier.help": "Houd alleen deze toets ingedrukt om met verticaal scrollen bij de aanwijzer te zoomen. Uit behoudt het bestaande scrollgedrag.",
"prefs.trackpad_zoom_modifier.off": "Uit",
"prefs.translucent": "Doorschijnend",
"prefs.under_browser": "Onder de browser",
"prefs.under_cursor": "Onder de cursor",
@@ -1934,9 +2041,14 @@
"prefs.view_confirm_corner": "OK en Annuleren in de hoek van de weergave",
"prefs.view_confirm_corner_note": "Zolang een dialoogvenster of een schets open is, doen een vinkje en een kruisje rechtsboven in de weergave hetzelfde als OK en Annuleren van het dialoogvenster, of ze ronden de schets af of annuleren die. De weergavenavigator schuift daaronder naar beneden.",
"prefs.viewport": "Weergavevenster",
"prefs.viewport_background": "Achtergrond",
"prefs.viewport_background_colour": "Kleur",
"prefs.viewport_background_theme": "Verloop van het thema",
"prefs.wheel": "Wiel",
"prefs.wheel_trackpad": "Wiel en trackpad",
"prefs.workspace": "Werkruimte",
"prefs.zoom_stop_at_model": "Zoomen stoppen bij het model",
"prefs.zoom_stop_at_model_tip": "De 3D-muis en de apparaat-app zoomen naar het oppervlak in het midden van de weergave; slepend zoomen houdt het punt vast waar het slepen begon. Uit: zoomen kan door het model heen gaan. Wiel en knijpen gebruiken Naar de cursor zoomen apart",
"prefs.zoom_toward_cursor": "Zoomen naar de cursor",
"properties.title": "Eigenschappen: {name}",
"recovery.days_ago": "{count} dagen geleden",
@@ -2025,6 +2137,7 @@
"render.appearance_editor.weight": "Gewicht",
"render.appearance_physics_separate": "Het visuele uiterlijk kent geen dichtheid, thermische gegevens of andere technische eigenschappen toe.",
"render.appearances": "Uiterlijken",
"render.assign_help": "Klik om op de selectie toe te passen; sleep voor een voorbeeld en laat los om neer te zetten, of klik zonder selectie om te schilderen.",
"render.availability_native": "Ingebouwde samenstelling; controleren voor het toepassen",
"render.availability_projection": "Ondersteunde projectie; zie bereik en weglatingen",
"render.availability_reference": "Referentiegegevens; geen automatische toewijzing",
@@ -2063,6 +2176,7 @@
"render.bloom_threshold": "Lineaire highlightdrempel",
"render.browse_capabilities": "Volledige catalogus met mogelijkheden bekijken",
"render.browse_environments": "Originele HDR-omgevingen doorbladeren",
"render.browse_looks": "Bladeren…",
"render.browse_native_scenes": "Ingebouwde studio's doorbladeren",
"render.browse_physical": "Fysieke referenties bekijken",
"render.browse_quality": "Kwaliteitsspecificaties bekijken",
@@ -2086,6 +2200,82 @@
"render.check_opaque": "Transparantie: alleen ondoorzichtige oppervlakken; achtergrondalfa wordt ondersteund.",
"render.check_sorted_alpha": "Transparantie: benadering met gesorteerde alfa.",
"render.check_transmission": "Transparantie: fysieke transmissie.",
"render.children.absolute_floor": "Absolute ondergrens",
"render.children.adaptive": "Adaptief",
"render.children.add_look_reason": "Voeg een look toe om de aan/uit-status en sterkte ervan te bewerken.",
"render.children.all_shots": "Alle opnamen",
"render.children.bloom": "Bloom",
"render.children.check": "Controleren",
"render.children.check_now": "Nu controleren",
"render.children.chromatic": "Chromatisch",
"render.children.compact": "Compact",
"render.children.contrast": "Contrast",
"render.children.copy_image": "Kopiëren",
"render.children.copy_job": "Taak-JSON kopiëren",
"render.children.copy_request": "Aanvraag-JSON kopiëren",
"render.children.coverage_error": "Bedekkingsfout",
"render.children.cpu": "CPU-raytracing",
"render.children.denoise": "Ruis verminderen in de voltooide afbeelding",
"render.children.depth": "Paddiepte",
"render.children.distortion": "Vervorming",
"render.children.edge_samples": "Randsamples",
"render.children.effects_banner": "Deze effecten vereisen GPU-pathtracing. Dit openen verandert de methode nooit.",
"render.children.enable_adaptive": "Schakel onafhankelijke pilots in om de adaptieve limieten te bewerken.",
"render.children.enable_bloom": "Schakel bloom in om de sterkte, drempel en straal ervan te bewerken.",
"render.children.finishing": "Afwerking",
"render.children.flare": "Flare",
"render.children.fresnel": "Fresnel-strata",
"render.children.ghosts": "Spookringen",
"render.children.glass": "Glastransport",
"render.children.go_to": "Ga naar {editor}",
"render.children.grain": "Korrel",
"render.children.halo": "Halo",
"render.children.hdr": "HDR",
"render.children.keep_master": "Ruwe lineaire master bewaren",
"render.children.last_result": "Laatste: {number} · {width} × {height} · {phase}",
"render.children.lens_effects": "Lenseffecten",
"render.children.look_summary": "{tone} · {count} looks",
"render.children.looks": "Creatieve looks",
"render.children.memory": "Geheugen",
"render.children.method": "Methode",
"render.children.minimum": "Minimum",
"render.children.needs_cpu": "Vereist CPU-raytracing. Dit openen verandert de methode nooit.",
"render.children.nested": "Gecertificeerde geneste diëlektrica",
"render.children.not_checked": "Niet gecontroleerd",
"render.children.path": "Pathtracing",
"render.children.pilots": "Pilotsamples",
"render.children.preview": "Voorbeeldgegevens",
"render.children.progressive_reason": "Kies Progressief om het aantal samples en de seed ervan te bewerken.",
"render.children.radius": "Straal",
"render.children.reflect_depth": "Reflectiediepte",
"render.children.reflect_samples": "Reflectiesamples",
"render.children.regrade": "Nieuwe kleurcorrectie",
"render.children.relative_error": "Relatieve fout",
"render.children.render": "Renderen",
"render.children.render_shot": "Opname renderen",
"render.children.renderer": "Renderer",
"render.children.renderers": "Renderers",
"render.children.request": "Deze aanvraag",
"render.children.reset_finishing": "Afwerking herstellen",
"render.children.review_quality": "Een kwaliteitsspecificatie beoordelen…",
"render.children.rgb_gain": "RGB-versterking",
"render.children.samples": "Samples",
"render.children.sampling": "Sampling",
"render.children.saturation": "Verzadiging",
"render.children.scene_summary": "{bodies} lichamen · {triangles} driehoeken",
"render.children.seed": "Seed",
"render.children.sharpening": "Verscherping",
"render.children.single_image": "Enkele afbeelding",
"render.children.soft_focus": "Zachte focus",
"render.children.streak": "Streep",
"render.children.strength": "Sterkte",
"render.children.studio": "Studio",
"render.children.threshold": "Drempel",
"render.children.tone": "Toon",
"render.children.under_hood": "Onder de motorkap",
"render.children.vignette": "Vignettering",
"render.children.workstation": "Werkstation",
"render.choose_look": "Kies eerst een uiterlijk in Uiterlijken",
"render.chromatic_offset": "Chromatische randverschuiving",
"render.clear_stage": "Opgeslagen decor verwijderen",
"render.copy_request": "JSON kopiëren",
@@ -2337,8 +2527,33 @@
"render.flare_strength": "Flare-sterkte voor highlights",
"render.flare_threshold": "Flare-drempel (scènelineair)",
"render.fold_browser": "Browser samenvouwen",
"render.frame_aspect": "Beeldverhouding",
"render.frame_centre_mark": "Middenmarkering",
"render.frame_copy_limit": "Geen beschikbare naam voor de kopie van de opname",
"render.frame_copy_name": "{name} kopie {number}",
"render.frame_custom": "Aangepast",
"render.frame_distance_unit": " × grootte",
"render.frame_duplicate": "Dupliceren",
"render.frame_exposure": "Belichting",
"render.frame_fov": "Gezichtsveld",
"render.frame_guides": "Hulplijnen",
"render.frame_invalid_aspect": "Ongeldige voorinstelling voor beeldverhouding",
"render.frame_lens": "FOV {fov}° · ≈ {mm} mm",
"render.frame_name": "Naam",
"render.frame_output_size": "Uitvoergrootte",
"render.frame_photo": "3:2 · Foto",
"render.frame_portrait": "4:5 · Portret",
"render.frame_presets": "Kadervoorinstellingen",
"render.frame_presets_pending": "Komt met de Opname-editor",
"render.frame_projection": "Projectie",
"render.frame_render_shot": "Deze opname renderen",
"render.frame_rule_thirds": "Regel van derden",
"render.frame_safe_area": "Veilig gebied",
"render.frame_shot_title": "Opname · {name}",
"render.frame_square": "1:1 · Vierkant",
"render.frame_tall": "9:16 · Verticaal",
"render.frame_thirds": "Derden",
"render.frame_wide": "16:9 · Breedbeeld",
"render.gpu_depth": "Maximale paddiepte",
"render.gpu_options_help": "Samples, diepte, seed en belichting worden opgeslagen bij deze opstelling. Alleen de actieve beeldmethode wordt opgeslagen.",
"render.gpu_path_failed": "GPU-pathtracer niet beschikbaar",
@@ -2366,6 +2581,7 @@
"render.heading_results": "RESULTATEN",
"render.heading_shots": "OPNAMEN",
"render.hide_shots_label": "Opnamestrook verbergen",
"render.hover_look": "{object} · {look} · klik om te selecteren",
"render.image_advanced": "Geavanceerde GPU-instellingen",
"render.image_cancelled": "Render geannuleerd",
"render.image_cancelling": "Annuleren",
@@ -2512,17 +2728,95 @@
"render.library_uniform_ack": "De uniforme benadering gebruiken zonder ruimtelijke of geavanceerde effecten",
"render.library_usable": "Uitvoerbare projecties",
"render.library_users": "Gebruikt door",
"render.light_aim": "Richten op",
"render.light_anchor_pending": "Het wijzigen van het coördinatensysteem van het licht wordt nog niet ondersteund.",
"render.light_azimuth": "Azimut",
"render.light_backend_limit": "Kies CPU-raytracing of een expliciete GPU-studio om lichten te bewerken. Oude GPU-studiolichten blijven alleen-lezen.",
"render.light_behaviour": "GEDRAG",
"render.light_default_fill": "Vullicht",
"render.light_default_key": "Hoofdlicht",
"render.light_default_number": "Licht {number}",
"render.light_default_rim": "Randlicht",
"render.light_delete": "Verwijderen",
"render.light_distance": "Afstand",
"render.light_duplicate": "Dupliceren",
"render.light_elevation": "Elevatie",
"render.light_gpu_punctual": "Punt- en spotlichten zijn beschikbaar met CPU-raytracing.",
"render.light_hard_shadow": "Dit licht heeft harde schaduwen; zachtheid van de lichtbron is niet beschikbaar.",
"render.light_intensity": "Intensiteit",
"render.light_missing": "Dit licht bestaat niet meer. Selecteer een licht in de browser.",
"render.light_place_highlight": "Plaatsen via highlight",
"render.light_place_pending": "Plaatsen via highlight vereist het kiezen van lichten in de viewport en wordt nog niet ondersteund.",
"render.light_position": "POSITIE",
"render.light_preview_help": "De live weergave heeft geen schaduwen; vlaklichten gebruiken een benadering met één sample in het midden. Renderen gebruikt het volledige lichtmodel.",
"render.light_product_centre": "Productmidden",
"render.light_size": "Grootte",
"render.light_softness": "Zachtheid",
"render.light_temperature": "Kleurtemperatuur",
"render.light_temperature_help": "Benaderde zwartlichaamtint; opgeslagen als lineaire RGB.",
"render.light_type": "Type",
"render.light_type_area": "Oppervlak",
"render.light_type_point": "Punt",
"render.light_type_spot": "Spot",
"render.light_type_sun": "Zon",
"render.light_view_only": "Solo en dempen gelden voor deze weergave en de renders ervan; ze worden nooit in het ontwerp opgeslagen.",
"render.light_world_origin": "Wereldoorsprong",
"render.lighting_aim_point": "Richtpunt",
"render.lighting_apply": "Voorinstelling toepassen",
"render.lighting_area_samples": "Samples voor vlaklichten",
"render.lighting_budget": "Budget",
"render.lighting_budget_help": "Aantallen zijn alleen-lezen. Voeg lichten toe, dupliceer of verwijder ze om de aantallen te wijzigen; de methode bepaalt de limieten.",
"render.lighting_colour": "Kleur",
"render.lighting_consent": "De richtingslichten vervangen door deze voorinstelling",
"render.lighting_custom": "Aangepaste lichten",
"render.lighting_custom_help": "Als je Aangepast kiest, wordt de voorinstelling omgezet in bewerkbare lichten, elk met een eigen rij in de boom.",
"render.lighting_direction": "Richting X Y Z",
"render.lighting_direction_help": "Of typ een richting naar het licht (X Y Z).",
"render.lighting_distance_unit": " × grootte",
"render.lighting_edge_u": "Zijvector U",
"render.lighting_edge_v": "Zijvector V",
"render.lighting_falloff": "Afname",
"render.lighting_falloff_help": "De intensiteit geldt op de referentieafstand.",
"render.lighting_height": "Hoogte V",
"render.lighting_minimum": "Minimum",
"render.lighting_mute": "Dit licht dempen",
"render.lighting_point": "Punt",
"render.lighting_preset": "Studiovoorinstelling",
"render.lighting_preset_cpu": "Studiovoorinstellingen met richtingslichten vereisen CPU-raytracing. GPU-verlichting gebruikt expliciete zon- en vlaklichten.",
"render.lighting_preset_row": "Voorinstelling",
"render.lighting_radiance": "Straling",
"render.lighting_reference": "Referentie",
"render.lighting_review_help": "Vervangt de lijst met richtingslichten. Behoudt punt- en vlaklichten, omgeving, schaduwen, camera en alle andere opname-instellingen.",
"render.lighting_review_title": "Verlichtingsvoorinstelling controleren",
"render.lighting_samples_cpu": "Samples voor vlaklichten gelden voor CPU-raytracing.",
"render.lighting_samples_need_area": "Voeg een CPU-vlaklicht toe om samples voor vlaklichten in te stellen.",
"render.lighting_samples_reason": "Samples voor vlaklichten moeten 1, 4, 16 of 64 zijn.",
"render.lighting_shadow_cpu": "De schaduwschakelaar vereist CPU-raytracing. GPU-pathtracing werpt altijd schaduwen.",
"render.lighting_shadows": "Schaduwen werpen",
"render.lighting_shadows_section": "Schaduwen en sampling",
"render.lighting_shape": "Vorm",
"render.lighting_solo": "Dit licht solo",
"render.lighting_source": "Bron",
"render.lighting_source_section": "Lichtbron",
"render.lighting_spot_preserved": "Dit puntlicht behoudt zijn opgeslagen spotkegel totdat het type wordt gewijzigd.",
"render.lighting_sun_distance": "De zonrichting is onafhankelijk van afstand en richtpunt.",
"render.lighting_unsupported": "niet ondersteund",
"render.lighting_used": "{used} van {limit}",
"render.lighting_width": "Breedte U",
"render.lighting_world_position": "Wereld X Y Z",
"render.lights_fixed_to": "Lichten vast aan",
"render.linear_help": "Bewaart een 32-bits float-RGBA-master vóór ruisonderdrukking, belichting, tone mapping, filters en achtergrond. Lineair sRGB/D65; met voorvermenigvuldigde dekking. Extra geheugen wordt expliciet toegestaan. Geen compressie of extra passes.",
"render.linear_retain": "Ruwe lineaire EXR bewaren",
"render.linear_unavailable": "Het geselecteerde voltooide frame heeft geen bewaarde EXR. Schakel bewaren in vóór het renderen; een oudere PNG kan de ruwe radiantie niet herstellen.",
"render.look_add": "Kleurlook toevoegen",
"render.look_applied": "{name} toegepast",
"render.look_bleach": "Geïnspireerd op bleach bypass",
"render.look_cool": "Koel",
"render.look_cyanotype": "Geïnspireerd op cyanotypie",
"render.look_faded": "Vervaagde afdruk",
"render.look_material": "Materiaal",
"render.look_mono": "Monochroom",
"render.look_pasted": "Uiterlijk geplakt",
"render.look_sepia": "Sepia",
"render.look_strength": "Sterkte van look",
"render.look_teal_orange": "Teal / oranje",
@@ -2598,9 +2892,11 @@
"render.output_advanced": "Geavanceerd",
"render.output_backend_ready": "Gereed",
"render.output_check": "Controleren",
"render.output_check_failed": "Controleren · fout",
"render.output_check_help": "Voer Controleren uit om dit verzoek te bekijken zonder een render te starten.",
"render.output_check_summary": "Controleren · Opmerkingen: {count}",
"render.output_copy": "Kopiëren",
"render.output_copy_report": "Rapport kopiëren",
"render.output_destination": "Bestemming",
"render.output_destination_help": "Kies het doelbestand bij het exporteren van de voltooide afbeelding.",
"render.output_dimensions": "Grootte",
@@ -2610,6 +2906,7 @@
"render.output_fit": "Passend",
"render.output_format": "Opmaak",
"render.output_format_status": "PNG is de exacte voltooide weergaveafbeelding. Optionele GPU-EXR bewaart de ruwe scènelineaire FLOAT32-radiantie vóór weergavefilters. Exporteren vervangt nooit de voorbeeldcache of een andere taak.",
"render.output_grading": "Kleurcorrectie",
"render.output_image": "Afbeelding",
"render.output_largest": "max. {width} × {height}",
"render.output_lock_ratio": "Beeldverhouding vergrendelen",
@@ -2619,6 +2916,8 @@
"render.output_quality_waiting": "wachten op het kwaliteitscontract",
"render.output_ratio_refused": "De gekoppelde afmeting overschrijdt de groottelimiet van deze methode. De vorige grootte blijft behouden; ontgrendel de verhouding of kies een kleinere waarde.",
"render.output_ready": "Gereed om te renderen",
"render.output_run_check": "Controle uitvoeren",
"render.output_size_limit": "{method}: tot {dimension} px per zijde en {pixels} pixels. Grootste passende formaat: {width} × {height}.",
"render.output_size_ok": "Grootte OK · {width} × {height} px",
"render.output_swap_orientation": "Breedte en hoogte omwisselen",
"render.output_tools_inspector": "Bewerk grootte en bestandsindeling in de inspecteur Uitvoer.",
@@ -2635,6 +2934,7 @@
"render.page_output": "Uitvoer",
"render.page_scene": "Scène",
"render.paint_label": "Verf",
"render.painting_with": "Schilderen met {name}",
"render.passive_stage": "Vloer en passief decor",
"render.passive_stage_help": "Eindige passieve panelen horen alleen bij gerenderde afbeeldingen. Ze voegen geen CAD-lichamen of massa toe. De plaatsing staat vast na het toepassen; als ze de grenzen van het product snijden, worden ze geweigerd. CPU levert geen diffuse weerkaatste verlichting.",
"render.perspective": "Perspectiefcamera",
@@ -2656,6 +2956,7 @@
"render.pick_help": "Kies Lichaam, Vlak of Component. Klik op lege ruimte om de selectie te wissen; Shift of Ctrl voegt toe of schakelt om. Markeringen verschijnen alleen in de live productweergave.",
"render.pick_label": "Kiezen",
"render.pick_up_label": "Overnemen",
"render.pick_up_prompt": "Klik op een object om het uiterlijk ervan over te nemen",
"render.pick_waiting": "Kiezen in de productweergave wordt nog niet ondersteund.",
"render.post_contrast": "Contrast",
"render.post_gain_b": "Versterking blauw",
@@ -2695,13 +2996,17 @@
"render.radial_distortion": "Radiale vervorming",
"render.radial_fit": "Product passend maken",
"render.radial_save": "Opname opslaan",
"render.recent_looks": "Recente uiterlijken",
"render.regrade_action": "Ruwe master opnieuw kleurcorrigeren (geen ruisonderdrukking)",
"render.regrade_help": "Maakt een afzonderlijke PNG van de gekozen voltooide ruwe master met deze presentatiebesturing. Traceert geen stralen, wijzigt de vastgelegde grootte, camera en lichten niet en overschrijft de EXR niet. Ruisonderdrukking wordt niet opnieuw toegepast: ruwe masters bewaren de bijbehorende hulpkanalen niet. Het afgeleide beeld blijft exporteerbaar via dezelfde taakbesturing.",
"render.regrade_label": "Nieuwe kleurcorrectie",
"render.reload_settings": "Opgeslagen instellingen opnieuw laden",
"render.remove_override": "Overschrijving verwijderen",
"render.replace_all": "Alles vervangen",
"render.replace_ground": "Vervanging van het bestaande renderdecor bevestigen",
"render.replace_label": "Vervangen",
"render.replace_saved_surface": "Een bestaande opgeslagen koppeling voor dit doel vervangen",
"render.replace_with": "Vervangen door",
"render.restore_camera": "Opgeslagen camera herstellen",
"render.result_actual": "100%",
"render.result_actual_help": "Eén beeldpixel per schermpixel.",
@@ -2753,14 +3058,28 @@
"render.saved_surface_remove": "Opgeslagen koppeling verwijderen",
"render.saved_surfaces": "Opgeslagen oppervlaktekoppelingen",
"render.saved_surfaces_help": "Vastgemaakte ingebouwde maps volgen het gekozen exemplaar in lokale millimeters. Een vervangen of ontbrekend doel is een fout, nooit een automatische hertoewijzing.",
"render.scene_all_shots": "Alle opnamen ({count})",
"render.scene_apply": "Beoordeelde studio toepassen",
"render.scene_batch_reason": "Alle opnamen vereist de renderwachtrij voor opgeslagen opnamen, die nog niet beschikbaar is.",
"render.scene_check_now": "Nu controleren",
"render.scene_check_passed": "Controle geslaagd · {notes} opmerkingen",
"render.scene_check_stale": "Controle verouderd · controleer opnieuw",
"render.scene_check_unchecked": "Nog niet gecontroleerd · 0 opmerkingen",
"render.scene_consent": "Vervanging van verlichting, omgeving, belichting en renderdecor bevestigen",
"render.scene_light_summary": "{environment} · {lights} lichten",
"render.scene_look_summary": "{looks} uiterlijken · {overrides} overschrijvingen",
"render.scene_open_check": "Controleren openen",
"render.scene_preserved_fields": "Camera, sampling, afmetingen, optische koppelingen, CAD-geometrie en technische materialen blijven behouden.",
"render.scene_preserves_design": "Stelt verlichting en een passief decor samen voor het zichtbare onderwerp. Geometrie, technische materialen en de camera blijven afzonderlijk.",
"render.scene_ready": "Gereed om te renderen",
"render.scene_reminder": "Scène behoudt het ontwerp. Geometrie, technische eigenschappen en CAD worden vanuit Renderen nooit gewijzigd.",
"render.scene_reminders": "Herinneringen",
"render.scene_renderer_ready": "{renderer} gereed",
"render.scene_replaces": "Vervangt",
"render.scene_review": "Uitwerken en beoordelen",
"render.scene_review_help": "Bekijk de volledige native compositie voordat je toepast. Niet-gekoppelde geavanceerde SCENE-specificaties worden niet door een alternatief vervangen.",
"render.scene_scope_details": "Reikwijdte van de compositie",
"render.scene_stages": "Fasen",
"render.search_appearances": "Zoeken in {count} uiterlijken",
"render.setup_legacy_environment": "Deze oudere opstelling gebruikt verouderde omgevingsrotatie of -intensiteit. Die waarden blijven behouden; converteer ze expliciet voordat je een volledige afbeeldingstaak opslaat.",
"render.setup_name": "Naam van opstelling",
@@ -2773,7 +3092,22 @@
"render.shell_tab_camera": "RENDER-CAMERA",
"render.shell_tab_lighting": "VERLICHTING",
"render.shell_tab_scene": "RENDER-SCÈNE",
"render.shot_aperture": "Diafragma",
"render.shot_distance": "Afstand",
"render.shot_dof": "Scherptediepte",
"render.shot_duplicate": "Opgeslagen opname dupliceren",
"render.shot_edit_output": "Bewerken in Uitvoer",
"render.shot_exposure_reason": "Belichting vereist CPU-raytracing of GPU-pathtracing.",
"render.shot_exposure_section": "Belichting",
"render.shot_focus_distance": "Scherpstelafstand",
"render.shot_fov_reason": "Gezichtsveld vereist perspectiefprojectie.",
"render.shot_frame_subject": "Onderwerp in beeld brengen",
"render.shot_invalid_camera": "Camerawaarden moeten eindig zijn en binnen het bereik liggen.",
"render.shot_lens": "Lens",
"render.shot_lens_enable_reason": "Schakel scherptediepte in om diafragma en scherpstelafstand te bewerken.",
"render.shot_lens_gpu_reason": "Scherptediepte vereist GPU-pathtracing.",
"render.shot_lens_perspective_reason": "Scherptediepte vereist perspectiefprojectie.",
"render.shot_look_selection": "Naar selectie kijken",
"render.shot_manager": "Opgeslagen opnamen",
"render.shot_new_name": "Naam van nieuwe opname",
"render.shot_remove": "Opgeslagen opname verwijderen",
@@ -2781,6 +3115,9 @@
"render.shot_remove_title": "Opgeslagen opname verwijderen?",
"render.shot_rename": "Opgeslagen opname hernoemen",
"render.shot_saved_only": "Sla eerst het huidige concept op. Dupliceren en hernoemen behouden de exacte opgeslagen opties en bronverwijzingen.",
"render.shot_selection_reason": "Selecteer een lichaam of vlak om op te richten.",
"render.shot_size": "Grootte",
"render.shot_target": "Doel",
"render.shots_camera_changed": "Camera gewijzigd sinds deze opname is opgeslagen",
"render.shots_name_help": "Voer een unieke naam in voor de huidige opname.",
"render.shots_no_result": "Nog geen render",
@@ -3003,6 +3340,13 @@
"render.wait_pick_up": "nog niet ondersteund: producten kiezen en uiterlijken overnemen",
"render.wait_replace": "nog niet ondersteund: alle toepassingen van een uiterlijk vervangen",
"render.wait_solo": "nog niet ondersteund: lichtzichtbaarheid en solo-bediening",
"render.wear_applies_to": "Geldt voor",
"render.wear_layer_count": "{count} lagen",
"render.wear_layer_one": "{count} laag",
"render.wear_layers": "Lagen",
"render.wear_no_layers": "Geen lagen",
"render.wear_selected_layer": "Geselecteerde laag",
"render.wear_title": "Slijtage",
"sample.bracket.about": "Basisflens met randflenzen en een zoom op een regel van 2 mm",
"sample.bracket.name": "Plaatwerkbeugel",
"sample.enclosure.about": "Uitgeholde doos met een lip, schroefnokken, een rustvlak en een snapverbinding",
@@ -3036,6 +3380,7 @@
"select an axis": "selecteer een as",
"select an axis, a straight or circular edge, or a cylinder, cone or torus face first": "selecteer eerst een as, een rechte of cirkelvormige rand, of een cilinder-, kegel- of torusvlak",
"select bodies first": "selecteer eerst lichamen",
"select components first": "selecteer eerst componenten",
"select corner points, or the two lines of one corner": "selecteer hoekpunten, of de twee lijnen van één hoek",
"select one corner point, or the two lines of one corner": "selecteer één hoekpunt, of de twee lijnen van één hoek",
"select sheet edges first": "selecteer eerst plaatranden",
@@ -3054,6 +3399,7 @@
"settings.double_click_components": "Dubbelklik op een component om het te activeren of om een gekoppeld component ter plaatse te bewerken",
"settings.frame_rate_details_note": "Voegt een grafiek toe met de tijden van de laatste frames, met de getekende driehoeken erboven, een histogram van frametijden en wat de GPU heeft getekend. Klik op de framesnelheid in de weergave om ze te tonen of te verbergen.",
"settings.frame_rate_note": "Toont frames per seconde in de rechteronderhoek van de weergave.",
"settings.insert_lists_open_designs": "Ontwerp invoegen toont eerst de ontwerpen die in andere tabbladen open zijn",
"settings.measure_axis_distances": "X/Y/Z-afstanden tonen",
"settings.measure_axis_distances_help": "Toon de componentmaten langs de wereldassen naast de totale afstand terwijl Meten open is.",
"settings.msaa_applies_on_restart": "Anti-aliasing wordt toegepast bij de volgende start van SolidCraft",
@@ -3078,6 +3424,10 @@
"shortcut.unpin": "Losmaken",
"sketch is missing": "schets ontbreekt",
"sketch.degrees_of_freedom": "{count} vrijheidsgraden",
"sketch.dimension_added_driven": "De schets bepaalt die maat al, dus is deze toegevoegd als aangedreven maat (referentiemaat)",
"sketch.dimension_applied": "Maat toegepast",
"sketch.dimension_applied_defined": "Maat toegepast; parameter `{name}` gedefinieerd",
"sketch.dimension_applied_renamed": "Maat toegepast; parameter `{name}` genoemd",
"sketch.dof_left": "{count} vrijheidsgraden resterend",
"sketch.dof_left_one": "{count} vrijheidsgraad resterend",
"sketch.draw_curves": "Tekenen als {linetype}",
@@ -3112,6 +3462,8 @@
"sketch_text.use_font_file": "Lettertypebestand {path} gebruiken",
"solid": "solid",
"status.editing": "{name} wordt bewerkt",
"status.navigation": "Muistoewijzing: {mapping}",
"status.navigation_tip": "Hoe de muis de weergave verplaatst. Klik om een andere toewijzing te kiezen",
"status.under_constrained": "Onderbeperkt ({count} vrijheidsgraden)",
"status.under_constrained_one": "Onderbeperkt ({count} vrijheidsgraad)",
"status.units_tip": "De eenheden van het ontwerp. Klik om ze te wijzigen",
@@ -3145,8 +3497,10 @@
"timeline.delete_folders_tip": "Hun kenmerken en geneste mappen in de geschiedenis behouden",
"timeline.delete_folders_with_features_tip": "De mappen verwijderen met alle kenmerken erin en hun geneste mappen",
"timeline.delete_many": "{count} geselecteerde kenmerken verwijderen",
"timeline.edited_rolled_back": "{name} is gewijzigd, maar staat na de geschiedenismarkering en wordt dus niet opgebouwd: verplaats de markering voorbij dit kenmerk om het resultaat te zien",
"timeline.feature_error": "Fout: {message}",
"timeline.feature_hint": "Dubbelklik om te bewerken · sleep om te herschikken · rechtsklik voor meer",
"timeline.feature_rolled_back": "Teruggedraaid: na de geschiedenismarkering, dus niet opgebouwd",
"timeline.feature_warning": "Waarschuwing: {message}",
"timeline.group": "Nieuwe kenmerkmap",
"timeline.move_many": "Tijdlijnitems verplaatsen",
@@ -3226,6 +3580,10 @@
"ui.3d_mouse_offer": "Je 3D-muis kalibreren verhelpt verwisselde of omgekeerde assen en stelt snelheid en gevoel in.",
"ui.3d_mouse_offer_never": "Niet meer tonen",
"ui.3d_mouse_offer_swap": "Naar Hidraw wisselen (direct)",
"ui.3d_mouse_orbit": "Roteren",
"ui.3d_mouse_orbit_classic": "Klassiek",
"ui.3d_mouse_orbit_tip": "Getraceerd: de 3D-muis draait de weergave rond het deel van het model dat midden in de weergave ligt wanneer het draaien begint, gemarkeerd door een vage bol. Klassiek: rond het midden van de weergave",
"ui.3d_mouse_orbit_traced": "Getraceerd",
"ui.3d_mouse_reading": "Uitlezen",
"ui.3d_mouse_reset_axes": "Astoewijzing herstellen",
"ui.3d_mouse_reset_view": "Weergave resetten",
@@ -3610,6 +3968,7 @@
"ui.constant": "Constant",
"ui.constraints_conflict": "Beperkingen conflicteren",
"ui.construction": "Constructie",
"ui.construction.ribbon_label": "Hulplijnen",
"ui.context_menu": "Contextmenu",
"ui.continuity_g0": "G0-knik",
"ui.continuity_g1": "G1-tangentieel",
@@ -3701,6 +4060,14 @@
"ui.end_scale": "Eindschaal",
"ui.entities": "Elementen",
"ui.equal": "Gelijk",
"ui.equation_end": "Einde",
"ui.equation_explicit": "Expliciet",
"ui.equation_form": "Vorm",
"ui.equation_note": "De variabele is een gewoon getal: sin(t) neemt het in radialen. Een resultaat zonder eenheid is in de eenheid van het ontwerp.",
"ui.equation_parametric": "Parametrisch",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Equivalente straal",
"ui.expand": "Uitvouwen",
"ui.exportDxf": "DXF exporteren…",
@@ -3766,6 +4133,7 @@
"ui.heading_design": "ONTWERP",
"ui.heading_draft": "AANZET",
"ui.heading_edit": "BEWERKEN",
"ui.heading_equation_curve": "VERGELIJKINGSCURVE",
"ui.heading_extrude": "EXTRUDEREN",
"ui.heading_fillet": "AFRONDING",
"ui.heading_finish_editing": "BEWERKEN VOLTOOIEN",
@@ -3857,6 +4225,10 @@
"ui.import_ellipsis": "Importeren…",
"ui.infinite": "Oneindig",
"ui.insert": "Invoegen",
"ui.insert_design.browse": "Bladeren…",
"ui.insert_design.open_designs": "Open ontwerpen",
"ui.insert_design.saved_file": "{name} heeft niet-opgeslagen wijzigingen, dus is het opgeslagen bestand ingevoegd. Sla het op en gebruik daarna Koppelingen bijwerken om de wijzigingen over te nemen.",
"ui.insert_design.unsaved": "Niet-opgeslagen wijzigingen",
"ui.inspect": "Inspecteren",
"ui.intersect": "Snijden",
"ui.isolate": "Isoleren",
@@ -4006,6 +4378,18 @@
"ui.project": "Projecteren",
"ui.project_face_edges_sketch": "Vlakranden projecteren in nieuwe schetsen",
"ui.properties": "Eigenschappen",
"ui.properties.copy_matrix": "Matrix kopiëren",
"ui.properties.first_moments": "Eerste momenten",
"ui.properties.inertia": "Traagheidsmoment",
"ui.properties.inertia_note": "Ten opzichte van het zwaartepunt, in wereldassen (g·{unit}²)",
"ui.properties.inertia_unavailable": "Niet beschikbaar: de mesh van een lichaam is niet gesloten.",
"ui.properties.inertia_x": "Ixx, Ixy, Ixz",
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Meten…",
"ui.properties.measuring_failed": "Het meten is gestopt voordat het klaar was.",
"ui.properties.principal_axis": "Hoofdas {number}",
"ui.properties.principal_moments": "Hoofdtraagheidsmomenten",
"ui.pull_direction": "Trekrichting",
"ui.quality": "Kwaliteit",
"ui.quantity": "Aantal",
@@ -4105,7 +4489,11 @@
"ui.sketch": "Schets",
"ui.sketch_dimension": "Schetsmaat",
"ui.sketch_grid": "Schetsraster",
"ui.sketch_intersect_geometry": "Geometrie",
"ui.sketch_intersect_projection_link": "Projectiekoppeling",
"ui.sketch_intersect_selection_filter": "Selectiefilter",
"ui.sketch_modifiers": "Schetsmodificatoren",
"ui.sketch_project_geometry": "Geometrie",
"ui.sketch_scale": "Schetsschaal",
"ui.sketches": "Schetsen",
"ui.slice": "Slicen",
@@ -4156,6 +4544,7 @@
"ui.tab_manage": "Beheren",
"ui.tab_sheet_metal": "Plaatwerk",
"ui.tab_view": "Weergave",
"ui.tab_weldments": "Laswerk",
"ui.tangent": "Tangentieel",
"ui.taper_angle": "Tapsheidshoek",
"ui.tapped": "Met schroefdraad",
@@ -4171,6 +4560,7 @@
"ui.tip_angle": "Puntshoek",
"ui.to_object": "Tot object",
"ui.tool_direction": "Gereedschapsrichting",
"ui.toolbar_tabs_hidden": "Alle werkbalktabbladen zijn verborgen. Klik op + of klik hier met rechts om er een te tonen.",
"ui.top": "Boven",
"ui.top_diameter": "Bovendiameter",
"ui.top_radius": "Bovenstraal",
@@ -4217,6 +4607,7 @@
"ui.visual_shaded_with_edges": "Gearceerd met randen",
"ui.visual_style": "Visuele stijl",
"ui.visual_wireframe": "Draadmodel",
"ui.wheel_zoom_speed": "Zoomsnelheid van het muiswiel",
"ui.width": "Breedte",
"ui.window_system": "Venstersysteem",
"ui.window_system_auto": "Automatisch",
@@ -4268,6 +4659,9 @@
"update.prefs_label": "Updates",
"update.prefs_note": "Dit is SolidCraft {version} ({kind}). Een controle vraagt GitHub om de nieuwste release en verzendt verder niets.",
"update.prefs_web": "Laad de pagina opnieuw om de nieuwste web-app te krijgen. Als het netwerk niet beschikbaar is of de update niet op tijd kan worden gedownload, wordt de opgeslagen versie geopend; een download die bezig is, gaat door voor de volgende keer opnieuw laden.",
"update.refresh_checking": "Zoeken naar de nieuwste release…",
"update.refresh_fallback": "Kon niet controleren op een nieuwere release; bijwerken naar {version}, eerder gevonden.",
"update.refresh_selected": "Bijwerken naar {version}.",
"update.release_page": "Releasepagina openen",
"update.restart": "Nu opnieuw starten",
"update.restart_later": "Later",
@@ -0,0 +1,26 @@
{
"en": {
"cmd.drawing_status": "Drawing Status"
},
"ar": {
"cmd.drawing_status": "حالة الرسم"
},
"de": {
"cmd.drawing_status": "Zeichnungsstatus"
},
"he": {
"cmd.drawing_status": "מצב השרטוט"
},
"ja": {
"cmd.drawing_status": "図面の状態"
},
"ko": {
"cmd.drawing_status": "도면 상태"
},
"vi": {
"cmd.drawing_status": "Trạng thái bản vẽ"
},
"zh": {
"cmd.drawing_status": "绘图状态"
}
}
@@ -0,0 +1,26 @@
{
"en": {
"cmd.drawing_view_base": "Base View",
"cmd.drawing_view_projected": "Projected View"
},
"ar": {
"cmd.drawing_view_base": "العرض الأساسي",
"cmd.drawing_view_projected": "العرض المُسقط"
},
"he": {
"cmd.drawing_view_base": "תצוגת בסיס",
"cmd.drawing_view_projected": "תצוגה מוטלת"
},
"ja": {
"cmd.drawing_view_base": "ベースビュー",
"cmd.drawing_view_projected": "投影ビュー"
},
"vi": {
"cmd.drawing_view_base": "Chế độ xem cơ sở",
"cmd.drawing_view_projected": "Chế độ xem chiếu"
},
"zh": {
"cmd.drawing_view_base": "基础视图",
"cmd.drawing_view_projected": "投影视图"
}
}
@@ -0,0 +1,834 @@
{
"ar": {
"0 objects": "0 عناصر",
"ASSEMBLY": "التجميع",
"Add Drawing Revision": "إضافة مراجعة للوحة",
"Add Revision": "إضافة مراجعة",
"Add sheet (not implemented)": "إضافة ورقة (غير منفّذ)",
"Align Annotations": "محاذاة التعليقات التوضيحية",
"Align Notes": "محاذاة الملاحظات",
"Align Views": "محاذاة المساقط",
"Annotate": "إضافة تعليقات توضيحية",
"Apply (not implemented)": "تطبيق (غير منفّذ)",
"Auto (Theme)": "تلقائي (السمة)",
"Balloon": "بالون",
"Base View": "المسقط الأساسي",
"Border & template": "الإطار والقالب",
"Browse Drawing Resources": "تصفح موارد اللوحات",
"CHANGES": "التغييرات",
"Centre Mark": "علامة المركز",
"Check Drawing": "فحص اللوحة",
"Close drawing panel": "إغلاق لوحة إعدادات الرسم",
"DRAWING ANNOTATE": "تعليقات اللوحة",
"DRAWING LAYOUT": "تخطيط اللوحة",
"DRAWING PARTS": "أجزاء اللوحة",
"DRAWING REVIEW": "مراجعة اللوحة",
"Datum": "مرجع",
"Detail View": "مسقط تفصيلي",
"Dock at bottom": "إرساء في الأسفل",
"Dock at top": "إرساء في الأعلى",
"Dock beneath Browser": "إرساء أسفل المتصفح",
"Dock left": "إرساء يسارًا",
"Dock right": "إرساء يمينًا",
"Dock sheet tabs": "إرساء علامات تبويب الأوراق",
"Drafting defaults": "إعدادات الرسم الافتراضية",
"Drawing & title block": "اللوحة وخانة العنوان",
"Drawing Dimension": "بُعد اللوحة",
"Drawing Line": "خط اللوحة",
"Drawing Note": "ملاحظة اللوحة",
"Drawing defaults (not available)": "إعدادات اللوحة الافتراضية (غير متاحة)",
"Drawing files and the paper renderer are not implemented. Planned tools show their options where defined.": "لم تُنفّذ ملفات اللوحات ولا عارض الورق بعد. تعرض الأدوات المخطط لها خياراتها حيثما حُدّدت.",
"Drawing workspace": "مساحة عمل اللوحات",
"Edit Drawing Table": "تعديل جدول اللوحة",
"Edit Table": "تعديل الجدول",
"Export Drawing": "تصدير اللوحة",
"Finish the current operation before entering Drawing": "أكمل العملية الحالية قبل الدخول إلى مساحة اللوحات",
"Hole Callout": "بيان الثقب",
"Image": "صورة",
"Inherited from parent view": "موروث من المسقط الأصل",
"Insert Image": "إدراج صورة",
"Leader": "خط إشارة",
"Leader Note": "ملاحظة بخط إشارة",
"Manage sheets (not implemented)": "إدارة الأوراق (غير منفّذ)",
"Manage sheets and docking": "إدارة الأوراق والإرساء",
"NOTES": "الملاحظات",
"No drawing document": "لا يوجد مستند لوحة",
"No drawing geometry available": "لا تتوفر هندسة للوحة",
"No drawing objects": "لا توجد عناصر في اللوحة",
"No drawing sheet is available yet.": "لا تتوفر ورقة لوحة بعد.",
"No drawing view available": "لا يتوفر مسقط للوحة",
"No sheet available": "لا تتوفر ورقة",
"Not available": "غير متاح",
"Not configured": "غير مُعدّ",
"Not implemented. These options describe the planned interface; no drawing data is changed.": "غير منفّذ. تصف هذه الخيارات الواجهة المخطط لها؛ لا تتغير أي بيانات للوحة.",
"Note": "ملاحظة",
"Paper & layout": "الورق والتخطيط",
"Paper colour": "لون الورق",
"Paper colour will be available when the sheet renderer is implemented.": "سيتوفر لون الورق عند تنفيذ عارض الورقة.",
"Parent view": "المسقط الأصل",
"Parts & Tables": "الأجزاء والجداول",
"Parts List": "قائمة الأجزاء",
"Print": "طباعة",
"Print Drawing": "طباعة اللوحة",
"Profile & units": "ملف التعريف والوحدات",
"Projected View": "مسقط مشتق بالإسقاط",
"RESOURCES": "الموارد",
"REVISION": "المراجعة",
"References": "المراجع",
"Resources": "الموارد",
"Return to Design to use this command.": "عُد إلى مساحة التصميم لاستخدام هذا الأمر.",
"Review": "مراجعة",
"Revision Table": "جدول المراجعات",
"Revision Tbl.": "جدول المراجعات",
"SOURCE": "المصدر",
"SYMBOLS": "الرموز",
"Screen appearance": "مظهر الشاشة",
"Section View": "مسقط مقطعي",
"Sheet Settings": "إعدادات الورقة",
"Sheet unavailable": "الورقة غير متاحة",
"Size & orientation": "الحجم والاتجاه",
"Source BOM": "قائمة مواد المصدر",
"Source Flat": "النمط المسطح للمصدر",
"Source design": "التصميم المصدر",
"Source properties": "خصائص المصدر",
"Space": "توزيع المسافات",
"Space Annotations": "توزيع المسافات بين التعليقات التوضيحية",
"Space Notes": "توزيع المسافات بين الملاحظات",
"TABLES": "الجداول",
"Text style": "نمط النص",
"Title": "العنوان",
"Title block": "خانة العنوان",
"UI preview": "معاينة الواجهة",
"Units & precision": "الوحدات والدقة",
"Update Drawing": "تحديث اللوحة",
"View": "مسقط"
},
"he": {
"0 objects": "0 עצמים",
"ASSEMBLY": "מכלול",
"Add Drawing Revision": "הוספת גרסה לשרטוט",
"Add Revision": "הוספת גרסה",
"Add sheet (not implemented)": "הוספת גיליון (טרם מומש)",
"Align Annotations": "יישור הערות הסבר",
"Align Notes": "יישור הערות",
"Align Views": "יישור מבטים",
"Annotate": "הוספת הערות הסבר",
"Apply (not implemented)": "החלה (טרם מומש)",
"Auto (Theme)": "אוטומטי (ערכת נושא)",
"Balloon": "בלון",
"Base View": "מבט בסיס",
"Border & template": "מסגרת ותבנית",
"Browse Drawing Resources": "עיון במשאבי שרטוט",
"CHANGES": "שינויים",
"Centre Mark": "סימון מרכז",
"Check Drawing": "בדיקת שרטוט",
"Close drawing panel": "סגירת לוח השרטוט",
"DRAWING ANNOTATE": "הערות הסבר בשרטוט",
"DRAWING LAYOUT": "פריסת שרטוט",
"DRAWING PARTS": "חלקים בשרטוט",
"DRAWING REVIEW": "סקירת שרטוט",
"Datum": "ייחוס",
"Detail View": "מבט מפורט",
"Dock at bottom": "עיגון בתחתית",
"Dock at top": "עיגון בראש החלון",
"Dock beneath Browser": "עיגון מתחת לדפדפן",
"Dock left": "עיגון משמאל",
"Dock right": "עיגון מימין",
"Dock sheet tabs": "עיגון לשוניות הגיליונות",
"Drafting defaults": "ברירות מחדל לשרטוט",
"Drawing & title block": "שרטוט וטבלת כותרת",
"Drawing Dimension": "מידת שרטוט",
"Drawing Line": "קו שרטוט",
"Drawing Note": "הערת שרטוט",
"Drawing defaults (not available)": "ברירות מחדל לשרטוט (לא זמינות)",
"Drawing files and the paper renderer are not implemented. Planned tools show their options where defined.": "קובצי שרטוט ומנגנון רינדור הנייר טרם מומשו. כלים מתוכננים מציגים את האפשרויות שלהם במקומות שבהם הוגדרו.",
"Drawing workspace": "סביבת עבודה לשרטוט",
"Edit Drawing Table": "עריכת טבלת שרטוט",
"Edit Table": "עריכת טבלה",
"Export Drawing": "ייצוא שרטוט",
"Finish the current operation before entering Drawing": "יש לסיים את הפעולה הנוכחית לפני המעבר לסביבת השרטוט",
"Hole Callout": "ציון פרטי קדח",
"Image": "תמונה",
"Inherited from parent view": "בירושה ממבט האב",
"Insert Image": "הוספת תמונה",
"Leader": "קו הפניה",
"Leader Note": "הערה עם קו הפניה",
"Manage sheets (not implemented)": "ניהול גיליונות (טרם מומש)",
"Manage sheets and docking": "ניהול גיליונות ועיגון",
"NOTES": "הערות",
"No drawing document": "אין מסמך שרטוט",
"No drawing geometry available": "אין גאומטריית שרטוט זמינה",
"No drawing objects": "אין עצמים בשרטוט",
"No drawing sheet is available yet.": "אין עדיין גיליון שרטוט זמין.",
"No drawing view available": "אין מבט שרטוט זמין",
"No sheet available": "אין גיליון זמין",
"Not available": "לא זמין",
"Not configured": "לא מוגדר",
"Not implemented. These options describe the planned interface; no drawing data is changed.": "טרם מומש. האפשרויות האלה מתארות את הממשק המתוכנן; נתוני השרטוט אינם משתנים.",
"Note": "הערה",
"Paper & layout": "נייר ופריסה",
"Paper colour": "צבע הנייר",
"Paper colour will be available when the sheet renderer is implemented.": "צבע הנייר יהיה זמין כאשר ימומש מנגנון רינדור הגיליון.",
"Parent view": "מבט אב",
"Parts & Tables": "חלקים וטבלאות",
"Parts List": "רשימת חלקים",
"Print": "הדפסה",
"Print Drawing": "הדפסת שרטוט",
"Profile & units": "פרופיל ויחידות",
"Projected View": "מבט מוטל",
"RESOURCES": "משאבים",
"REVISION": "גרסה",
"References": "הפניות",
"Resources": "משאבים",
"Return to Design to use this command.": "יש לחזור לסביבת התכן כדי להשתמש בפקודה זו.",
"Review": "סקירה",
"Revision Table": "טבלת גרסאות",
"Revision Tbl.": "טבלת גרסאות",
"SOURCE": "מקור",
"SYMBOLS": "סמלים",
"Screen appearance": "מראה המסך",
"Section View": "מבט חתך",
"Sheet Settings": "הגדרות גיליון",
"Sheet unavailable": "הגיליון אינו זמין",
"Size & orientation": "גודל וכיוון",
"Source BOM": "רשימת חלקים של המקור",
"Source Flat": "פריסת המקור",
"Source design": "תכן המקור",
"Source properties": "מאפייני המקור",
"Space": "ריווח",
"Space Annotations": "ריווח הערות הסבר",
"Space Notes": "ריווח הערות",
"TABLES": "טבלאות",
"Text style": "סגנון טקסט",
"Title": "כותרת",
"Title block": "טבלת כותרת",
"UI preview": "תצוגה מקדימה של הממשק",
"Units & precision": "יחידות ודיוק",
"Update Drawing": "עדכון שרטוט",
"View": "מבט"
},
"vi": {
"0 objects": "0 đối tượng",
"ASSEMBLY": "CỤM LẮP RÁP",
"Add Drawing Revision": "Thêm lần sửa đổi bản vẽ",
"Add Revision": "Thêm lần sửa đổi",
"Add sheet (not implemented)": "Thêm tờ (chưa triển khai)",
"Align Annotations": "Căn chỉnh chú thích",
"Align Notes": "Căn chỉnh ghi chú",
"Align Views": "Căn chỉnh hình chiếu",
"Annotate": "Thêm chú thích",
"Apply (not implemented)": "Áp dụng (chưa triển khai)",
"Auto (Theme)": "Tự động (theo giao diện)",
"Balloon": "Bóng chú thích",
"Base View": "Hình chiếu cơ sở",
"Border & template": "Khung viền và mẫu",
"Browse Drawing Resources": "Duyệt tài nguyên bản vẽ",
"CHANGES": "THAY ĐỔI",
"Centre Mark": "Dấu tâm",
"Check Drawing": "Kiểm tra bản vẽ",
"Close drawing panel": "Đóng bảng bản vẽ",
"DRAWING ANNOTATE": "CHÚ THÍCH BẢN VẼ",
"DRAWING LAYOUT": "BỐ CỤC BẢN VẼ",
"DRAWING PARTS": "CHI TIẾT BẢN VẼ",
"DRAWING REVIEW": "RÀ SOÁT BẢN VẼ",
"Datum": "Chuẩn",
"Detail View": "Hình chiếu chi tiết",
"Dock at bottom": "Gắn ở cạnh dưới",
"Dock at top": "Gắn ở cạnh trên",
"Dock beneath Browser": "Gắn bên dưới cây thư mục",
"Dock left": "Gắn bên trái",
"Dock right": "Gắn bên phải",
"Dock sheet tabs": "Gắn các thẻ tờ bản vẽ",
"Drafting defaults": "Thiết lập mặc định khi lập bản vẽ",
"Drawing & title block": "Bản vẽ và khung tên",
"Drawing Dimension": "Kích thước bản vẽ",
"Drawing Line": "Đường bản vẽ",
"Drawing Note": "Ghi chú bản vẽ",
"Drawing defaults (not available)": "Thiết lập mặc định của bản vẽ (chưa có)",
"Drawing files and the paper renderer are not implemented. Planned tools show their options where defined.": "Tệp bản vẽ và bộ kết xuất trang giấy chưa được triển khai. Các công cụ dự kiến hiển thị tùy chọn ở những nơi đã được định nghĩa.",
"Drawing workspace": "Không gian làm việc bản vẽ",
"Edit Drawing Table": "Sửa bảng trong bản vẽ",
"Edit Table": "Sửa bảng",
"Export Drawing": "Xuất bản vẽ",
"Finish the current operation before entering Drawing": "Hoàn tất thao tác hiện tại trước khi chuyển sang không gian Bản vẽ",
"Hole Callout": "Chú dẫn lỗ",
"Image": "Hình ảnh",
"Inherited from parent view": "Kế thừa từ hình chiếu gốc",
"Insert Image": "Chèn hình ảnh",
"Leader": "Đường dẫn chú thích",
"Leader Note": "Ghi chú có đường dẫn",
"Manage sheets (not implemented)": "Quản lý tờ (chưa triển khai)",
"Manage sheets and docking": "Quản lý tờ và vị trí gắn",
"NOTES": "GHI CHÚ",
"No drawing document": "Không có tài liệu bản vẽ",
"No drawing geometry available": "Chưa có hình học bản vẽ",
"No drawing objects": "Không có đối tượng bản vẽ",
"No drawing sheet is available yet.": "Chưa có tờ bản vẽ nào.",
"No drawing view available": "Chưa có hình chiếu bản vẽ",
"No sheet available": "Chưa có tờ",
"Not available": "Chưa có",
"Not configured": "Chưa cấu hình",
"Not implemented. These options describe the planned interface; no drawing data is changed.": "Chưa triển khai. Các tùy chọn này mô tả giao diện dự kiến; không có dữ liệu bản vẽ nào bị thay đổi.",
"Note": "Ghi chú",
"Paper & layout": "Giấy và bố cục",
"Paper colour": "Màu giấy",
"Paper colour will be available when the sheet renderer is implemented.": "Có thể chọn màu giấy khi bộ kết xuất tờ bản vẽ được triển khai.",
"Parent view": "Hình chiếu gốc",
"Parts & Tables": "Chi tiết và bảng",
"Parts List": "Danh sách chi tiết",
"Print": "In",
"Print Drawing": "In bản vẽ",
"Profile & units": "Hồ sơ và đơn vị",
"Projected View": "Hình chiếu dẫn xuất",
"RESOURCES": "TÀI NGUYÊN",
"REVISION": "LẦN SỬA ĐỔI",
"References": "Tham chiếu",
"Resources": "Tài nguyên",
"Return to Design to use this command.": "Quay lại không gian Thiết kế để dùng lệnh này.",
"Review": "Rà soát",
"Revision Table": "Bảng sửa đổi",
"Revision Tbl.": "Bảng sửa đổi",
"SOURCE": "NGUỒN",
"SYMBOLS": "KÝ HIỆU",
"Screen appearance": "Diện mạo trên màn hình",
"Section View": "Hình cắt",
"Sheet Settings": "Cài đặt tờ",
"Sheet unavailable": "Tờ không khả dụng",
"Size & orientation": "Kích thước và hướng",
"Source BOM": "Bảng kê vật tư nguồn",
"Source Flat": "Bản trải phẳng nguồn",
"Source design": "Thiết kế nguồn",
"Source properties": "Thuộc tính nguồn",
"Space": "Giãn cách",
"Space Annotations": "Giãn cách chú thích",
"Space Notes": "Giãn cách ghi chú",
"TABLES": "BẢNG",
"Text style": "Kiểu chữ",
"Title": "Tiêu đề",
"Title block": "Khung tên",
"UI preview": "Xem trước giao diện",
"Units & precision": "Đơn vị và độ chính xác",
"Update Drawing": "Cập nhật bản vẽ",
"View": "Hình chiếu"
},
"en": {
"0 objects": "0 objects",
"ASSEMBLY": "ASSEMBLY",
"Add Drawing Revision": "Add Drawing Revision",
"Add Revision": "Add Revision",
"Add sheet (not implemented)": "Add sheet (not implemented)",
"Align Annotations": "Align Annotations",
"Align Notes": "Align Notes",
"Align Views": "Align Views",
"Annotate": "Annotate",
"Apply (not implemented)": "Apply (not implemented)",
"Auto (Theme)": "Auto (Theme)",
"Balloon": "Balloon",
"Base View": "Base View",
"Border & template": "Border & template",
"Browse Drawing Resources": "Browse Drawing Resources",
"CHANGES": "CHANGES",
"Centre Mark": "Centre Mark",
"Check Drawing": "Check Drawing",
"Close drawing panel": "Close drawing panel",
"DRAWING ANNOTATE": "DRAWING ANNOTATE",
"DRAWING LAYOUT": "DRAWING LAYOUT",
"DRAWING PARTS": "DRAWING PARTS",
"DRAWING REVIEW": "DRAWING REVIEW",
"Datum": "Datum",
"Detail View": "Detail View",
"Dock at bottom": "Dock at bottom",
"Dock at top": "Dock at top",
"Dock beneath Browser": "Dock beneath Browser",
"Dock left": "Dock left",
"Dock right": "Dock right",
"Dock sheet tabs": "Dock sheet tabs",
"Drafting defaults": "Drafting defaults",
"Drawing & title block": "Drawing & title block",
"Drawing Dimension": "Drawing Dimension",
"Drawing Line": "Drawing Line",
"Drawing Note": "Drawing Note",
"Drawing defaults (not available)": "Drawing defaults (not available)",
"Drawing files and the paper renderer are not implemented. Planned tools show their options where defined.": "Drawing files and the paper renderer are not implemented. Planned tools show their options where defined.",
"Drawing workspace": "Drawing workspace",
"Edit Drawing Table": "Edit Drawing Table",
"Edit Table": "Edit Table",
"Export Drawing": "Export Drawing",
"Finish the current operation before entering Drawing": "Finish the current operation before entering Drawing",
"Hole Callout": "Hole Callout",
"Image": "Image",
"Inherited from parent view": "Inherited from parent view",
"Insert Image": "Insert Image",
"Leader": "Leader",
"Leader Note": "Leader Note",
"Manage sheets (not implemented)": "Manage sheets (not implemented)",
"Manage sheets and docking": "Manage sheets and docking",
"NOTES": "NOTES",
"No drawing document": "No drawing document",
"No drawing geometry available": "No drawing geometry available",
"No drawing objects": "No drawing objects",
"No drawing sheet is available yet.": "No drawing sheet is available yet.",
"No drawing view available": "No drawing view available",
"No sheet available": "No sheet available",
"Not available": "Not available",
"Not configured": "Not configured",
"Not implemented. These options describe the planned interface; no drawing data is changed.": "Not implemented. These options describe the planned interface; no drawing data is changed.",
"Note": "Note",
"Paper & layout": "Paper & layout",
"Paper colour": "Paper colour",
"Paper colour will be available when the sheet renderer is implemented.": "Paper colour will be available when the sheet renderer is implemented.",
"Parent view": "Parent view",
"Parts & Tables": "Parts & Tables",
"Parts List": "Parts List",
"Print": "Print",
"Print Drawing": "Print Drawing",
"Profile & units": "Profile & units",
"Projected View": "Projected View",
"RESOURCES": "RESOURCES",
"REVISION": "REVISION",
"References": "References",
"Resources": "Resources",
"Return to Design to use this command.": "Return to Design to use this command.",
"Review": "Review",
"Revision Table": "Revision Table",
"Revision Tbl.": "Revision Tbl.",
"SOURCE": "SOURCE",
"SYMBOLS": "SYMBOLS",
"Screen appearance": "Screen appearance",
"Section View": "Section View",
"Sheet Settings": "Sheet Settings",
"Sheet unavailable": "Sheet unavailable",
"Size & orientation": "Size & orientation",
"Source BOM": "Source BOM",
"Source Flat": "Source Flat",
"Source design": "Source design",
"Source properties": "Source properties",
"Space": "Space",
"Space Annotations": "Space Annotations",
"Space Notes": "Space Notes",
"TABLES": "TABLES",
"Text style": "Text style",
"Title": "Title",
"Title block": "Title block",
"UI preview": "UI preview",
"Units & precision": "Units & precision",
"Update Drawing": "Update Drawing",
"View": "View"
},
"ja": {
"0 objects": "0個のオブジェクト",
"ASSEMBLY": "アセンブリ",
"Add Drawing Revision": "図面の改訂を追加",
"Add Revision": "改訂を追加",
"Add sheet (not implemented)": "シートを追加(未実装)",
"Align Annotations": "注釈を整列",
"Align Notes": "注記を整列",
"Align Views": "ビューを整列",
"Annotate": "注釈",
"Apply (not implemented)": "適用(未実装)",
"Auto (Theme)": "自動(テーマ)",
"Balloon": "バルーン",
"Base View": "基準ビュー",
"Border & template": "図枠とテンプレート",
"Browse Drawing Resources": "図面リソースを参照",
"CHANGES": "変更",
"Centre Mark": "中心マーク",
"Check Drawing": "図面をチェック",
"Close drawing panel": "図面パネルを閉じる",
"DRAWING ANNOTATE": "図面の注釈",
"DRAWING LAYOUT": "図面のレイアウト",
"DRAWING PARTS": "図面の部品",
"DRAWING REVIEW": "図面の確認",
"Datum": "データム",
"Detail View": "詳細ビュー",
"Dock at bottom": "下部にドッキング",
"Dock at top": "上部にドッキング",
"Dock beneath Browser": "ブラウザーの下にドッキング",
"Dock left": "左にドッキング",
"Dock right": "右にドッキング",
"Dock sheet tabs": "シートタブをドッキング",
"Drafting defaults": "製図の既定値",
"Drawing & title block": "図面と表題欄",
"Drawing Dimension": "図面寸法",
"Drawing Line": "図面の線分",
"Drawing Note": "図面の注記",
"Drawing defaults (not available)": "図面の既定値(利用不可)",
"Drawing files and the paper renderer are not implemented. Planned tools show their options where defined.": "図面ファイルと用紙レンダラーは未実装です。予定されているツールでは、設定項目が定義済みの場合に表示されます。",
"Drawing workspace": "図面ワークスペース",
"Edit Drawing Table": "図面の表を編集",
"Edit Table": "表を編集",
"Export Drawing": "図面をエクスポート",
"Finish the current operation before entering Drawing": "現在の操作を完了してから図面ワークスペースに移動してください",
"Hole Callout": "穴注記",
"Image": "画像",
"Inherited from parent view": "親ビューから継承",
"Insert Image": "画像を挿入",
"Leader": "引出線",
"Leader Note": "引出線付き注記",
"Manage sheets (not implemented)": "シートを管理(未実装)",
"Manage sheets and docking": "シートとドッキングを管理",
"NOTES": "注記",
"No drawing document": "図面ドキュメントがありません",
"No drawing geometry available": "利用可能な図面ジオメトリがありません",
"No drawing objects": "図面オブジェクトがありません",
"No drawing sheet is available yet.": "図面シートはまだ利用できません。",
"No drawing view available": "利用可能な図面ビューがありません",
"No sheet available": "利用可能なシートがありません",
"Not available": "利用不可",
"Not configured": "未設定",
"Not implemented. These options describe the planned interface; no drawing data is changed.": "未実装です。これらの設定項目は予定されているインターフェースを示すもので、図面データは変更されません。",
"Note": "注記",
"Paper & layout": "用紙とレイアウト",
"Paper colour": "用紙の色",
"Paper colour will be available when the sheet renderer is implemented.": "用紙の色はシートレンダラーの実装後に設定できます。",
"Parent view": "親ビュー",
"Parts & Tables": "部品と表",
"Parts List": "部品表",
"Print": "印刷",
"Print Drawing": "図面を印刷",
"Profile & units": "製図規格と単位",
"Projected View": "投影ビュー",
"RESOURCES": "リソース",
"REVISION": "改訂",
"References": "参照",
"Resources": "リソース",
"Return to Design to use this command.": "このコマンドを使用するには、デザインワークスペースに戻ってください。",
"Review": "確認",
"Revision Table": "改訂表",
"Revision Tbl.": "改訂表",
"SOURCE": "参照元",
"SYMBOLS": "記号",
"Screen appearance": "画面表示",
"Section View": "断面ビュー",
"Sheet Settings": "シート設定",
"Sheet unavailable": "シートを利用できません",
"Size & orientation": "サイズと向き",
"Source BOM": "参照元の部品表",
"Source Flat": "参照元の展開図",
"Source design": "参照元のデザイン",
"Source properties": "参照元のプロパティ",
"Space": "等間隔",
"Space Annotations": "注釈を等間隔に",
"Space Notes": "注記を等間隔に",
"TABLES": "表",
"Text style": "文字スタイル",
"Title": "タイトル",
"Title block": "表題欄",
"UI preview": "UIプレビュー",
"Units & precision": "単位と精度",
"Update Drawing": "図面を更新",
"View": "ビュー"
},
"zh": {
"0 objects": "0 个对象",
"ASSEMBLY": "装配",
"Add Drawing Revision": "添加图纸修订",
"Add Revision": "添加修订",
"Add sheet (not implemented)": "添加图纸页(未实现)",
"Align Annotations": "对齐标注",
"Align Notes": "对齐注释",
"Align Views": "对齐视图",
"Annotate": "标注",
"Apply (not implemented)": "应用(未实现)",
"Auto (Theme)": "自动(跟随主题)",
"Balloon": "零件序号",
"Base View": "基本视图",
"Border & template": "图框与模板",
"Browse Drawing Resources": "浏览制图资源",
"CHANGES": "更改",
"Centre Mark": "中心标记",
"Check Drawing": "检查图纸",
"Close drawing panel": "关闭制图面板",
"DRAWING ANNOTATE": "图纸标注",
"DRAWING LAYOUT": "图纸布局",
"DRAWING PARTS": "图纸零件",
"DRAWING REVIEW": "图纸审阅",
"Datum": "基准",
"Detail View": "局部放大视图",
"Dock at bottom": "停靠到底部",
"Dock at top": "停靠到顶部",
"Dock beneath Browser": "停靠到浏览器下方",
"Dock left": "停靠到左侧",
"Dock right": "停靠到右侧",
"Dock sheet tabs": "停靠图纸页选项卡",
"Drafting defaults": "制图默认设置",
"Drawing & title block": "图纸与标题栏",
"Drawing Dimension": "图纸尺寸标注",
"Drawing Line": "图纸线段",
"Drawing Note": "图纸注释",
"Drawing defaults (not available)": "图纸默认设置(不可用)",
"Drawing files and the paper renderer are not implemented. Planned tools show their options where defined.": "图纸文件和纸张渲染器尚未实现。规划中的工具会显示已定义的选项。",
"Drawing workspace": "工程图工作区",
"Edit Drawing Table": "编辑图纸表格",
"Edit Table": "编辑表格",
"Export Drawing": "导出图纸",
"Finish the current operation before entering Drawing": "请先完成当前操作,再进入工程图工作区",
"Hole Callout": "孔标注",
"Image": "图像",
"Inherited from parent view": "继承父视图",
"Insert Image": "插入图像",
"Leader": "引线",
"Leader Note": "引线注释",
"Manage sheets (not implemented)": "管理图纸页(未实现)",
"Manage sheets and docking": "管理图纸页与停靠位置",
"NOTES": "注释",
"No drawing document": "没有图纸文档",
"No drawing geometry available": "没有可用的图纸几何",
"No drawing objects": "没有图纸对象",
"No drawing sheet is available yet.": "目前尚无可用的图纸页。",
"No drawing view available": "没有可用的图纸视图",
"No sheet available": "没有可用的图纸页",
"Not available": "不可用",
"Not configured": "未配置",
"Not implemented. These options describe the planned interface; no drawing data is changed.": "尚未实现。这些选项展示规划中的界面,不会更改任何图纸数据。",
"Note": "注释",
"Paper & layout": "纸张与布局",
"Paper colour": "纸张颜色",
"Paper colour will be available when the sheet renderer is implemented.": "图纸页渲染器实现后即可设置纸张颜色。",
"Parent view": "父视图",
"Parts & Tables": "零件与表格",
"Parts List": "零件明细表",
"Print": "打印",
"Print Drawing": "打印图纸",
"Profile & units": "制图规范与单位",
"Projected View": "投影视图",
"RESOURCES": "资源",
"REVISION": "修订",
"References": "引用",
"Resources": "资源",
"Return to Design to use this command.": "请返回设计工作区使用此命令。",
"Review": "审阅",
"Revision Table": "修订表",
"Revision Tbl.": "修订表",
"SOURCE": "源设计",
"SYMBOLS": "符号",
"Screen appearance": "屏幕外观",
"Section View": "剖视图",
"Sheet Settings": "图纸页设置",
"Sheet unavailable": "图纸页不可用",
"Size & orientation": "尺寸与方向",
"Source BOM": "源设计 BOM",
"Source Flat": "源设计展开图",
"Source design": "源设计",
"Source properties": "源设计属性",
"Space": "均布",
"Space Annotations": "等间距分布标注",
"Space Notes": "等间距分布注释",
"TABLES": "表格",
"Text style": "文字样式",
"Title": "标题",
"Title block": "标题栏",
"UI preview": "界面预览",
"Units & precision": "单位与精度",
"Update Drawing": "更新图纸",
"View": "视图"
},
"de": {
"0 objects": "0 Objekte",
"ASSEMBLY": "BAUGRUPPE",
"Add Drawing Revision": "Zeichnungsrevision hinzufügen",
"Add Revision": "Revision hinzufügen",
"Add sheet (not implemented)": "Blatt hinzufügen (nicht implementiert)",
"Align Annotations": "Beschriftungen ausrichten",
"Align Notes": "Hinweise ausrichten",
"Align Views": "Ansichten ausrichten",
"Annotate": "Beschriften",
"Apply (not implemented)": "Anwenden (nicht implementiert)",
"Auto (Theme)": "Automatisch (Design)",
"Balloon": "Positionssymbol",
"Base View": "Basisansicht",
"Border & template": "Rahmen & Vorlage",
"Browse Drawing Resources": "Zeichnungsressourcen durchsuchen",
"CHANGES": "ÄNDERUNGEN",
"Centre Mark": "Mittelpunktmarkierung",
"Check Drawing": "Zeichnung prüfen",
"Close drawing panel": "Zeichnungspanel schließen",
"DRAWING ANNOTATE": "ZEICHNUNG BESCHRIFTEN",
"DRAWING LAYOUT": "ZEICHNUNGSLAYOUT",
"DRAWING PARTS": "ZEICHNUNGSTEILE",
"DRAWING REVIEW": "ZEICHNUNGSPRÜFUNG",
"Datum": "Bezug",
"Detail View": "Detailansicht",
"Dock at bottom": "Unten andocken",
"Dock at top": "Oben andocken",
"Dock beneath Browser": "Unter dem Browser andocken",
"Dock left": "Links andocken",
"Dock right": "Rechts andocken",
"Dock sheet tabs": "Blattregister andocken",
"Drafting defaults": "Vorgaben für die Zeichnungserstellung",
"Drawing & title block": "Zeichnung & Schriftfeld",
"Drawing Dimension": "Zeichnungsbemaßung",
"Drawing Line": "Zeichnungslinie",
"Drawing Note": "Zeichnungshinweis",
"Drawing defaults (not available)": "Zeichnungsvorgaben (nicht verfügbar)",
"Drawing files and the paper renderer are not implemented. Planned tools show their options where defined.": "Zeichnungsdateien und die Papierdarstellung sind noch nicht implementiert. Geplante Werkzeuge zeigen ihre Optionen an, sofern diese bereits festgelegt sind.",
"Drawing workspace": "Zeichnungsarbeitsbereich",
"Edit Drawing Table": "Zeichnungstabelle bearbeiten",
"Edit Table": "Tabelle bearbeiten",
"Export Drawing": "Zeichnung exportieren",
"Finish the current operation before entering Drawing": "Beenden Sie den aktuellen Vorgang, bevor Sie zum Zeichnungsarbeitsbereich wechseln",
"Hole Callout": "Bohrungsangabe",
"Image": "Bild",
"Inherited from parent view": "Von der übergeordneten Ansicht übernommen",
"Insert Image": "Bild einfügen",
"Leader": "Bezugslinie",
"Leader Note": "Hinweis mit Bezugslinie",
"Manage sheets (not implemented)": "Blätter verwalten (nicht implementiert)",
"Manage sheets and docking": "Blätter und Andockpositionen verwalten",
"NOTES": "HINWEISE",
"No drawing document": "Kein Zeichnungsdokument",
"No drawing geometry available": "Keine Zeichnungsgeometrie verfügbar",
"No drawing objects": "Keine Zeichnungsobjekte",
"No drawing sheet is available yet.": "Es ist noch kein Zeichnungsblatt verfügbar.",
"No drawing view available": "Keine Zeichnungsansicht verfügbar",
"No sheet available": "Kein Blatt verfügbar",
"Not available": "Nicht verfügbar",
"Not configured": "Nicht konfiguriert",
"Not implemented. These options describe the planned interface; no drawing data is changed.": "Nicht implementiert. Diese Optionen beschreiben die geplante Oberfläche; es werden keine Zeichnungsdaten geändert.",
"Note": "Hinweis",
"Paper & layout": "Papier & Layout",
"Paper colour": "Papierfarbe",
"Paper colour will be available when the sheet renderer is implemented.": "Die Papierfarbe wird verfügbar sein, sobald die Blattdarstellung implementiert ist.",
"Parent view": "Übergeordnete Ansicht",
"Parts & Tables": "Teile & Tabellen",
"Parts List": "Teileliste",
"Print": "Drucken",
"Print Drawing": "Zeichnung drucken",
"Profile & units": "Profil & Einheiten",
"Projected View": "Projizierte Ansicht",
"RESOURCES": "RESSOURCEN",
"REVISION": "REVISION",
"References": "Referenzen",
"Resources": "Ressourcen",
"Return to Design to use this command.": "Wechseln Sie zum Design-Arbeitsbereich zurück, um diesen Befehl zu verwenden.",
"Review": "Prüfen",
"Revision Table": "Revisionstabelle",
"Revision Tbl.": "Revisionstbl.",
"SOURCE": "QUELLE",
"SYMBOLS": "SYMBOLE",
"Screen appearance": "Bildschirmdarstellung",
"Section View": "Schnittansicht",
"Sheet Settings": "Blatteinstellungen",
"Sheet unavailable": "Blatt nicht verfügbar",
"Size & orientation": "Größe & Ausrichtung",
"Source BOM": "Stückliste der Quelle",
"Source Flat": "Flachmuster der Quelle",
"Source design": "Quelldesign",
"Source properties": "Eigenschaften der Quelle",
"Space": "Abstände anpassen",
"Space Annotations": "Beschriftungsabstände anpassen",
"Space Notes": "Hinweisabstände anpassen",
"TABLES": "TABELLEN",
"Text style": "Textstil",
"Title": "Titel",
"Title block": "Schriftfeld",
"UI preview": "Oberflächenvorschau",
"Units & precision": "Einheiten & Genauigkeit",
"Update Drawing": "Zeichnung aktualisieren",
"View": "Ansicht"
},
"ko": {
"0 objects": "객체 0개",
"ASSEMBLY": "조립품",
"Add Drawing Revision": "도면 리비전 추가",
"Add Revision": "리비전 추가",
"Add sheet (not implemented)": "시트 추가 (미구현)",
"Align Annotations": "주석 정렬",
"Align Notes": "메모 정렬",
"Align Views": "뷰 정렬",
"Annotate": "주석 달기",
"Apply (not implemented)": "적용 (미구현)",
"Auto (Theme)": "자동 (테마)",
"Balloon": "항목 번호 기호",
"Base View": "기본 뷰",
"Border & template": "테두리 및 템플릿",
"Browse Drawing Resources": "도면 리소스 찾아보기",
"CHANGES": "변경 사항",
"Centre Mark": "중심 표시",
"Check Drawing": "도면 검사",
"Close drawing panel": "도면 패널 닫기",
"DRAWING ANNOTATE": "도면 주석",
"DRAWING LAYOUT": "도면 배치",
"DRAWING PARTS": "도면 부품",
"DRAWING REVIEW": "도면 검토",
"Datum": "기준",
"Detail View": "상세 뷰",
"Dock at bottom": "아래쪽에 고정",
"Dock at top": "위쪽에 고정",
"Dock beneath Browser": "브라우저 아래에 고정",
"Dock left": "왼쪽에 고정",
"Dock right": "오른쪽에 고정",
"Dock sheet tabs": "시트 탭 고정",
"Drafting defaults": "도면 작성 기본 설정",
"Drawing & title block": "도면 및 표제란",
"Drawing Dimension": "도면 치수",
"Drawing Line": "도면 선",
"Drawing Note": "도면 메모",
"Drawing defaults (not available)": "도면 기본 설정 (사용 불가)",
"Drawing files and the paper renderer are not implemented. Planned tools show their options where defined.": "도면 파일과 용지 렌더러는 아직 구현되지 않았습니다. 예정된 도구는 정의된 옵션이 있는 경우 해당 옵션을 표시합니다.",
"Drawing workspace": "도면 작업 공간",
"Edit Drawing Table": "도면 표 편집",
"Edit Table": "표 편집",
"Export Drawing": "도면 내보내기",
"Finish the current operation before entering Drawing": "도면 작업 공간으로 전환하기 전에 현재 작업을 완료하세요",
"Hole Callout": "구멍 주석",
"Image": "이미지",
"Inherited from parent view": "상위 뷰에서 상속됨",
"Insert Image": "이미지 삽입",
"Leader": "지시선",
"Leader Note": "지시선 메모",
"Manage sheets (not implemented)": "시트 관리 (미구현)",
"Manage sheets and docking": "시트 및 고정 위치 관리",
"NOTES": "메모",
"No drawing document": "도면 문서 없음",
"No drawing geometry available": "사용 가능한 도면 형상 없음",
"No drawing objects": "도면 객체 없음",
"No drawing sheet is available yet.": "아직 사용 가능한 도면 시트가 없습니다.",
"No drawing view available": "사용 가능한 도면 뷰 없음",
"No sheet available": "사용 가능한 시트 없음",
"Not available": "사용 불가",
"Not configured": "설정되지 않음",
"Not implemented. These options describe the planned interface; no drawing data is changed.": "아직 구현되지 않았습니다. 이 옵션은 예정된 인터페이스를 설명하며 도면 데이터를 변경하지 않습니다.",
"Note": "메모",
"Paper & layout": "용지 및 배치",
"Paper colour": "용지 색상",
"Paper colour will be available when the sheet renderer is implemented.": "시트 렌더러가 구현되면 용지 색상을 설정할 수 있습니다.",
"Parent view": "상위 뷰",
"Parts & Tables": "부품 및 표",
"Parts List": "부품 목록",
"Print": "인쇄",
"Print Drawing": "도면 인쇄",
"Profile & units": "프로파일 및 단위",
"Projected View": "투영 뷰",
"RESOURCES": "리소스",
"REVISION": "리비전",
"References": "참조",
"Resources": "리소스",
"Return to Design to use this command.": "이 명령을 사용하려면 디자인 작업 공간으로 돌아가세요.",
"Review": "검토",
"Revision Table": "리비전 표",
"Revision Tbl.": "리비전 표",
"SOURCE": "원본",
"SYMBOLS": "기호",
"Screen appearance": "화면 모양",
"Section View": "단면 뷰",
"Sheet Settings": "시트 설정",
"Sheet unavailable": "시트 사용 불가",
"Size & orientation": "크기 및 방향",
"Source BOM": "원본 자재 명세서",
"Source Flat": "원본 전개도",
"Source design": "원본 디자인",
"Source properties": "원본 속성",
"Space": "간격 조정",
"Space Annotations": "주석 간격 조정",
"Space Notes": "메모 간격 조정",
"TABLES": "표",
"Text style": "텍스트 스타일",
"Title": "제목",
"Title block": "표제란",
"UI preview": "인터페이스 미리보기",
"Units & precision": "단위 및 정밀도",
"Update Drawing": "도면 업데이트",
"View": "뷰"
}
}
@@ -0,0 +1,119 @@
{
"ar": {
"cmd.assembly_bom_item_set": "تغيير رقم البند",
"cmd.assembly_bom_renumber": "إعادة ترقيم البنود",
"cmd.drawing_balloon_add": "إضافة بالون",
"cmd.drawing_balloon_edit": "تعديل البالون",
"cmd.drawing_balloon_inspect": "فحص البالون",
"cmd.drawing_close": "إغلاق اللوحة",
"cmd.drawing_create": "إنشاء لوحة",
"cmd.drawing_delete": "حذف اللوحة",
"cmd.drawing_dimension_add": "إضافة بُعد إلى اللوحة",
"cmd.drawing_dimension_edit": "تعديل بُعد اللوحة",
"cmd.drawing_dimension_inspect": "فحص بُعد اللوحة",
"cmd.drawing_export": "تصدير الورقة",
"cmd.drawing_inspect": "فحص اللوحة",
"cmd.drawing_list": "سرد اللوحات",
"cmd.drawing_open": "فتح اللوحة",
"cmd.drawing_properties": "خصائص اللوحة",
"cmd.drawing_properties_remove": "إزالة خاصية اللوحة",
"cmd.drawing_properties_set": "تغيير خصائص اللوحة",
"cmd.drawing_revision_add": "إضافة مراجعة",
"cmd.drawing_revision_delete": "حذف المراجعة",
"cmd.drawing_revision_edit": "تعديل المراجعة",
"cmd.drawing_scene": "رسم الورقة",
"cmd.drawing_set": "إعدادات اللوحة",
"cmd.drawing_sheet_add": "إضافة ورقة",
"cmd.drawing_sheet_delete": "حذف الورقة",
"cmd.drawing_sheet_reorder": "إعادة ترتيب الأوراق",
"cmd.drawing_sheet_set": "إعدادات الورقة",
"cmd.drawing_view_copy_to_sheet": "نسخ المسقط إلى ورقة",
"cmd.drawing_view_edit": "تعديل مسقط اللوحة",
"cmd.drawing_view_inspect": "فحص مسقط اللوحة",
"cmd.drawing_view_move_to_sheet": "نقل المسقط إلى ورقة",
"cmd.drawing_view_snapshot": "لقطة مسقط اللوحة",
"cmd.occurrence_bom_type": "نوع قائمة المواد",
"prefs.drawings": "اللوحات",
"ui.first_angle": "الزاوية الأولى",
"ui.projection_of_new_drawings": "إسقاط اللوحات الجديدة",
"ui.third_angle": "الزاوية الثالثة"
},
"he": {
"cmd.assembly_bom_item_set": "שינוי מספר פריט",
"cmd.assembly_bom_renumber": "מספור מחדש של פריטים",
"cmd.drawing_balloon_add": "הוספת בלון",
"cmd.drawing_balloon_edit": "עריכת בלון",
"cmd.drawing_balloon_inspect": "בדיקת בלון",
"cmd.drawing_close": "סגירת שרטוט",
"cmd.drawing_create": "יצירת שרטוט",
"cmd.drawing_delete": "מחיקת שרטוט",
"cmd.drawing_dimension_add": "הוספת מידה לשרטוט",
"cmd.drawing_dimension_edit": "עריכת מידת שרטוט",
"cmd.drawing_dimension_inspect": "בדיקת מידת שרטוט",
"cmd.drawing_export": "ייצוא גיליון",
"cmd.drawing_inspect": "בדיקת שרטוט",
"cmd.drawing_list": "רשימת שרטוטים",
"cmd.drawing_open": "פתיחת שרטוט",
"cmd.drawing_properties": "מאפייני שרטוט",
"cmd.drawing_properties_remove": "הסרת מאפיין שרטוט",
"cmd.drawing_properties_set": "שינוי מאפייני שרטוט",
"cmd.drawing_revision_add": "הוספת גרסה",
"cmd.drawing_revision_delete": "מחיקת גרסה",
"cmd.drawing_revision_edit": "עריכת גרסה",
"cmd.drawing_scene": "ציור גיליון",
"cmd.drawing_set": "הגדרות שרטוט",
"cmd.drawing_sheet_add": "הוספת גיליון",
"cmd.drawing_sheet_delete": "מחיקת גיליון",
"cmd.drawing_sheet_reorder": "סידור גיליונות מחדש",
"cmd.drawing_sheet_set": "הגדרות גיליון",
"cmd.drawing_view_copy_to_sheet": "העתקת מבט לגיליון",
"cmd.drawing_view_edit": "עריכת מבט שרטוט",
"cmd.drawing_view_inspect": "בדיקת מבט שרטוט",
"cmd.drawing_view_move_to_sheet": "העברת מבט לגיליון",
"cmd.drawing_view_snapshot": "תמונת מבט שרטוט",
"cmd.occurrence_bom_type": "סוג ברשימת החלקים",
"prefs.drawings": "שרטוטים",
"ui.first_angle": "זווית ראשונה",
"ui.projection_of_new_drawings": "היטל של שרטוטים חדשים",
"ui.third_angle": "זווית שלישית"
},
"vi": {
"cmd.assembly_bom_item_set": "Đổi số hạng mục",
"cmd.assembly_bom_renumber": "Đánh số lại hạng mục",
"cmd.drawing_balloon_add": "Thêm bóng chú thích",
"cmd.drawing_balloon_edit": "Sửa bóng chú thích",
"cmd.drawing_balloon_inspect": "Kiểm tra bóng chú thích",
"cmd.drawing_close": "Đóng bản vẽ",
"cmd.drawing_create": "Tạo bản vẽ",
"cmd.drawing_delete": "Xóa bản vẽ",
"cmd.drawing_dimension_add": "Thêm kích thước bản vẽ",
"cmd.drawing_dimension_edit": "Sửa kích thước bản vẽ",
"cmd.drawing_dimension_inspect": "Kiểm tra kích thước bản vẽ",
"cmd.drawing_export": "Xuất tờ",
"cmd.drawing_inspect": "Kiểm tra bản vẽ",
"cmd.drawing_list": "Liệt kê bản vẽ",
"cmd.drawing_open": "Mở bản vẽ",
"cmd.drawing_properties": "Thuộc tính bản vẽ",
"cmd.drawing_properties_remove": "Xóa thuộc tính bản vẽ",
"cmd.drawing_properties_set": "Thay đổi thuộc tính bản vẽ",
"cmd.drawing_revision_add": "Thêm lần sửa đổi",
"cmd.drawing_revision_delete": "Xóa lần sửa đổi",
"cmd.drawing_revision_edit": "Sửa lần sửa đổi",
"cmd.drawing_scene": "Vẽ tờ",
"cmd.drawing_set": "Cài đặt bản vẽ",
"cmd.drawing_sheet_add": "Thêm tờ",
"cmd.drawing_sheet_delete": "Xóa tờ",
"cmd.drawing_sheet_reorder": "Sắp xếp lại các tờ",
"cmd.drawing_sheet_set": "Cài đặt tờ",
"cmd.drawing_view_copy_to_sheet": "Sao chép hình chiếu sang tờ",
"cmd.drawing_view_edit": "Sửa hình chiếu bản vẽ",
"cmd.drawing_view_inspect": "Kiểm tra hình chiếu bản vẽ",
"cmd.drawing_view_move_to_sheet": "Chuyển hình chiếu sang tờ",
"cmd.drawing_view_snapshot": "Ảnh chụp hình chiếu bản vẽ",
"cmd.occurrence_bom_type": "Loại trong bảng kê vật tư",
"prefs.drawings": "Bản vẽ",
"ui.first_angle": "Góc chiếu thứ nhất",
"ui.projection_of_new_drawings": "Phép chiếu của bản vẽ mới",
"ui.third_angle": "Góc chiếu thứ ba"
}
}
@@ -0,0 +1,50 @@
{
"en": {
"prefs.viewport_analysis_status": "Show viewport analysis status",
"prefs.viewport_analysis_status_help": "Show active analyses above the viewport, open their legends from each item, and use Esc to turn off the newest analysis. Turn off to restore corner legends and the previous Esc behaviour.",
"ui.viewport_status_edges": "{count} edges",
"ui.viewport_status_from": "from {direction}"
},
"ar": {
"prefs.viewport_analysis_status": "إظهار حالة التحليل في منفذ العرض",
"prefs.viewport_analysis_status_help": "عرض التحليلات النشطة أعلى منفذ العرض وفتح مفتاح كل تحليل من عنصره. ينهي Esc أحدث تحليل. أوقف الخيار لاستعادة المفاتيح في الزاوية وسلوك Esc السابق.",
"ui.viewport_status_edges": "{count} حواف",
"ui.viewport_status_from": "من {direction}"
},
"de": {
"prefs.viewport_analysis_status": "Analysestatus im Ansichtsfenster anzeigen",
"prefs.viewport_analysis_status_help": "Zeigt aktive Analysen über dem Ansichtsfenster und ihre Legenden am jeweiligen Eintrag. Esc beendet die neueste Analyse. Ausschalten stellt Ecklegenden und das bisherige Esc-Verhalten wieder her.",
"ui.viewport_status_edges": "{count} Kanten",
"ui.viewport_status_from": "aus {direction}"
},
"he": {
"prefs.viewport_analysis_status": "הצגת מצב ניתוח בחלון התצוגה",
"prefs.viewport_analysis_status_help": "הצגת ניתוחים פעילים מעל חלון התצוגה ופתיחת המקרא מכל פריט. Esc מכבה את הניתוח האחרון. כיבוי האפשרות משחזר את המקרא בפינה ואת פעולת Esc הקודמת.",
"ui.viewport_status_edges": "{count} קצוות",
"ui.viewport_status_from": "מכיוון {direction}"
},
"ja": {
"prefs.viewport_analysis_status": "ビューポートの解析状態を表示",
"prefs.viewport_analysis_status_help": "有効な解析をビューポートの上部に表示し、各項目から凡例を開きます。Esc で最新の解析を解除します。無効にすると隅の凡例と従来の Esc 動作に戻ります。",
"ui.viewport_status_edges": "{count} エッジ",
"ui.viewport_status_from": "方向 {direction}"
},
"ko": {
"prefs.viewport_analysis_status": "뷰포트 해석 상태 표시",
"prefs.viewport_analysis_status_help": "활성 해석을 뷰포트 위에 표시하고 각 항목에서 범례를 엽니다. Esc로 최신 해석을 끕니다. 끄면 모서리 범례와 이전 Esc 동작으로 돌아갑니다.",
"ui.viewport_status_edges": "모서리 {count}개",
"ui.viewport_status_from": "{direction} 방향에서"
},
"vi": {
"prefs.viewport_analysis_status": "Hiện trạng thái phân tích trong khung nhìn",
"prefs.viewport_analysis_status_help": "Hiện các phân tích đang bật phía trên khung nhìn và mở chú giải từ từng mục. Esc tắt phân tích mới nhất. Tắt tùy chọn để khôi phục chú giải ở góc và hành vi Esc trước đây.",
"ui.viewport_status_edges": "{count} cạnh",
"ui.viewport_status_from": "từ {direction}"
},
"zh": {
"prefs.viewport_analysis_status": "显示视口分析状态",
"prefs.viewport_analysis_status_help": "在视口上方显示启用的分析,从各项目打开图例,并按 Esc 关闭最近启用的分析。关闭此选项可恢复角落图例和原来的 Esc 行为。",
"ui.viewport_status_edges": "{count} 条边",
"ui.viewport_status_from": "从 {direction}"
}
}
+11
View File
@@ -709,6 +709,16 @@
"cmd.sheet_refold": "Zegnij ponownie",
"cmd.sheet_rules": "Lista reguł blach",
"cmd.sheet_unfold": "Rozegnij",
"cmd.sketch.construction_line": "Prosta konstrukcyjna",
"cmd.sketch.construction_line.angle": "Prosta konstrukcyjna pod kątem",
"cmd.sketch.construction_line.bisector": "Dwusieczna kąta",
"cmd.sketch.construction_line.horizontal": "Pozioma prosta konstrukcyjna",
"cmd.sketch.construction_line.parallel": "Równoległa prosta konstrukcyjna",
"cmd.sketch.construction_line.perpendicular": "Prostopadła prosta konstrukcyjna",
"cmd.sketch.construction_line.tangent_at": "Styczna w punkcie krzywej",
"cmd.sketch.construction_line.tangent_external": "Styczna przez punkt zewnętrzny",
"cmd.sketch.construction_line.tangent_two": "Wspólna styczna",
"cmd.sketch.construction_line.vertical": "Pionowa prosta konstrukcyjna",
"cmd.sketch_arc_center_point": "Łuk ze środka",
"cmd.sketch_arc_tangent": "Łuk styczny",
"cmd.sketch_arc_three_point": "Łuk przez 3 punkty",
@@ -1739,6 +1749,7 @@
"ui.constant": "Stały",
"ui.constraints_conflict": "Konflikt wiązań",
"ui.construction": "Konstrukcyjne",
"ui.construction.ribbon_label": "Linie pom.",
"ui.context_menu": "Menu kontekstowe",
"ui.continuity_g0": "G0 załamanie",
"ui.continuity_g1": "G1 styczność",
+11
View File
@@ -815,6 +815,16 @@
"cmd.sheet_refold": "Redobrar",
"cmd.sheet_rules": "Listar regras de chapa metálica",
"cmd.sheet_unfold": "Desdobrar",
"cmd.sketch.construction_line": "Reta de construção",
"cmd.sketch.construction_line.angle": "Reta de construção em ângulo",
"cmd.sketch.construction_line.bisector": "Bissetriz",
"cmd.sketch.construction_line.horizontal": "Reta de construção horizontal",
"cmd.sketch.construction_line.parallel": "Reta de construção paralela",
"cmd.sketch.construction_line.perpendicular": "Reta de construção perpendicular",
"cmd.sketch.construction_line.tangent_at": "Tangente em um ponto da curva",
"cmd.sketch.construction_line.tangent_external": "Tangente por um ponto externo",
"cmd.sketch.construction_line.tangent_two": "Tangente comum",
"cmd.sketch.construction_line.vertical": "Reta de construção vertical",
"cmd.sketch_arc_center_point": "Arco por ponto central",
"cmd.sketch_arc_tangent": "Arco tangente",
"cmd.sketch_arc_three_point": "Arco por 3 pontos",
@@ -1864,6 +1874,7 @@
"ui.constant": "Constante",
"ui.constraints_conflict": "Restrições em conflito",
"ui.construction": "Construção",
"ui.construction.ribbon_label": "Linhas aux.",
"ui.context_menu": "Menu de contexto",
"ui.continuity_g0": "G0 vinco",
"ui.continuity_g1": "G1 tangente",
+397
View File
@@ -204,6 +204,7 @@
"Edges": "Muchii",
"Edit": "Editează",
"Edit Profile Sketch": "Editează schița profilului",
"Edit shortcuts": "Editează comenzile rapide",
"Enable rule": "Activează regula",
"Enabled": "Activat",
"End Radius": "Rază finală",
@@ -466,6 +467,7 @@
"Radius": "Rază",
"Radius Fit": "Potrivire rază",
"Ratio": "Raport",
"Read-only list: shortcuts can't be changed here.": "Listă doar pentru citire: comenzile rapide nu pot fi modificate aici.",
"Reattach selected face": "Reatașează fața selectată",
"Recover": "Recuperează",
"Recover unsaved design?": "Recuperați proiectul nesalvat?",
@@ -649,6 +651,7 @@
"Third point": "Al treilea punct",
"This child is shared. Deleting it removes it from every copy of its parent.": "Acest element copil este partajat. Ștergerea lui îl elimină din fiecare copie a părintelui.",
"This child is shared. Position changes apply to every copy of its parent.": "Acest element copil este partajat. Modificările de poziție se aplică fiecărei copii a părintelui.",
"This component is inside a subassembly placed more than once: aligning it moves it in every placement.": "Această componentă se află într-un subansamblu plasat de mai multe ori: alinierea ei o mută în fiecare plasare.",
"This face cannot provide a durable attachment. Choose another face or explicitly use a fixed plane.": "Această față nu poate oferi o atașare durabilă. Alegeți altă față sau folosiți explicit un plan fix.",
"This image is not attached to GitHub yet. Copy or save it, then attach it on GitHub.": "Această imagine nu este încă atașată la GitHub. Copiați-o sau salvați-o, apoi atașați-o pe GitHub.",
"Thread depth": "Adâncime filet",
@@ -790,6 +793,11 @@
"cam.roller": "Rolă",
"cam.roller_pick": "Rolă (opțional)",
"cam.tip_pick": "Vârf (opțional)",
"camera.shot_pitch": "Înclinare",
"camera.shot_roll": "Ruliu",
"camera.shot_yaw": "Girație",
"canvas.decal_place_hint": "Faceți clic pe o față pentru a plasa autocolantul",
"canvas.place_hint": "Faceți clic pe un plan sau pe o față pentru a plasa pânza",
"choose a profile": "alegeți un profil",
"choose the cam's and the follower's joints": "alegeți îmbinările camei și ale tachetului",
"choose the joints to couple": "alegeți îmbinările de cuplat",
@@ -797,9 +805,12 @@
"click sketch curves": "faceți clic pe curbele schiței",
"cmd.appearance_assign": "Aspect",
"cmd.appearance_chain": "Lanț de aspecte",
"cmd.appearance_copy": "Copiază aspectul",
"cmd.appearance_favorite": "Aspect favorit",
"cmd.appearance_library": "Bibliotecă de aspecte",
"cmd.appearance_list": "Listează aspectele",
"cmd.appearance_paint": "Pictează aspectul",
"cmd.appearance_paste": "Lipește aspectul",
"cmd.appearance_pick_up": "Preia aspectul",
"cmd.appearance_replace": "Înlocuiește aspectul",
"cmd.assembly_bom": "Listă de materiale",
@@ -810,6 +821,7 @@
"cmd.browser_move": "Mută elementele din navigator",
"cmd.browser_order": "Ordonează elementele din navigator",
"cmd.browser_rename_group": "Redenumește grupul",
"cmd.browser_reparent": "Mută în componentă",
"cmd.browser_ungroup": "Desfă grupul",
"cmd.browser_visibility": "Afișează/Ascunde",
"cmd.canvas_calibrate": "Calibrează pânza",
@@ -836,7 +848,9 @@
"cmd.component_metadata": "Proprietățile piesei",
"cmd.component_metadata_set": "Modifică proprietățile piesei",
"cmd.component_move_bodies": "Mută corpurile în componentă",
"cmd.component_move_features": "Mută operațiile în componentă",
"cmd.component_move_sketches": "Mută schițele în componentă",
"cmd.component_paste_from_design": "Lipește din alt proiect",
"cmd.component_paste_new": "Lipește ca nou",
"cmd.component_properties": "Proprietățile fizice ale componentei",
"cmd.component_relink": "Reface legătura sursei",
@@ -973,6 +987,7 @@
"cmd.motion_trace": "Urma mișcării",
"cmd.motion_trace_edit": "Editează urma mișcării",
"cmd.motion_trace_keep": "Păstrează urma mișcării",
"cmd.occurrence_align": "Aliniază apariția",
"cmd.occurrence_copy": "Lipește (instanță)",
"cmd.occurrence_drag": "Trage apariția",
"cmd.occurrence_ground": "Fixează",
@@ -1030,11 +1045,17 @@
"cmd.render_library_surface_unbind": "Elimină asocierea suprafeței",
"cmd.render_library_targets": "Găsește țintele bibliotecii de randare",
"cmd.render_lights_add": "Adaugă lumină",
"cmd.render_lights_duplicate": "Duplică lumina de randare",
"cmd.render_lights_list": "Listează luminile de randare",
"cmd.render_lights_mute": "Dezactivează lumina",
"cmd.render_lights_remove": "Elimină lumina de randare",
"cmd.render_lights_set": "Setează lumina de randare",
"cmd.render_lights_solo": "Lumină solo",
"cmd.render_optics_bind": "Salvează asocierea optică",
"cmd.render_optics_unbind": "Elimină asocierea optică",
"cmd.render_output_size": "Setează dimensiunea ieșirii de randare",
"cmd.render_preflight": "Verifică cererea de randare",
"cmd.render_preflight_copy": "Copiază raportul de verificare a randării",
"cmd.render_preset_apply": "Aplică Studio nativ",
"cmd.render_preset_resolve": "Verifică Studio nativ",
"cmd.render_quality_prepare": "Verifică bugetul fix de eșantionare",
@@ -1057,6 +1078,13 @@
"cmd.render_start": "Randează imaginea",
"cmd.render_status": "Progresul randării",
"cmd.select_clear": "Șterge selecția",
"cmd.settings_profile_apply": "Aplică profilul de setări",
"cmd.settings_profile_delete": "Șterge profilul de setări",
"cmd.settings_profile_export": "Exportă profilul de setări",
"cmd.settings_profile_import": "Importă profilul de setări",
"cmd.settings_profile_list": "Profiluri de setări",
"cmd.settings_profile_rename": "Redenumește profilul de setări",
"cmd.settings_profile_save": "Salvează profilul de setări",
"cmd.sheet_convert": "Convertește în tablă",
"cmd.sheet_export_bend_table": "Exportă tabelul de îndoire",
"cmd.sheet_export_dxf": "Exportă desfășurata ca DXF",
@@ -1070,6 +1098,16 @@
"cmd.sheet_refold": "Reîndoire",
"cmd.sheet_rules": "Listează regulile pentru tablă",
"cmd.sheet_unfold": "Desfășurare",
"cmd.sketch.construction_line": "Dreaptă de construcție",
"cmd.sketch.construction_line.angle": "Dreaptă de construcție la un unghi",
"cmd.sketch.construction_line.bisector": "Bisectoare",
"cmd.sketch.construction_line.horizontal": "Dreaptă de construcție orizontală",
"cmd.sketch.construction_line.parallel": "Dreaptă de construcție paralelă",
"cmd.sketch.construction_line.perpendicular": "Dreaptă de construcție perpendiculară",
"cmd.sketch.construction_line.tangent_at": "Tangentă într-un punct al curbei",
"cmd.sketch.construction_line.tangent_external": "Tangentă printr-un punct exterior",
"cmd.sketch.construction_line.tangent_two": "Tangentă comună",
"cmd.sketch.construction_line.vertical": "Dreaptă de construcție verticală",
"cmd.sketch_arc3d": "Arc 3D",
"cmd.sketch_arc_center_point": "Arc după centru",
"cmd.sketch_arc_tangent": "Arc tangent",
@@ -1102,6 +1140,8 @@
"cmd.sketch_drawing_bounds": "Dimensiunea desenului",
"cmd.sketch_edit": "Editează schița",
"cmd.sketch_edit_text": "Editează textul",
"cmd.sketch_equation_curve": "Curbă din ecuație",
"cmd.sketch_equation_curve_edit": "Editează curba din ecuație",
"cmd.sketch_export_dxf": "Salvează ca DXF",
"cmd.sketch_finish_auto_constrain": "Finalizează cu constrângere automată",
"cmd.sketch_fit_curves_to_section": "Potrivește curbe la secțiunea plasei",
@@ -1198,6 +1238,7 @@
"cmd.view.render_browser": "Navigator de randare",
"cmd.view.render_dock": "Mută panoul de randare",
"cmd.view.render_focus": "Vizualizare de randare concentrată",
"cmd.view.status_items": "Elemente de stare ale ferestrei de vizualizare",
"cmd.view_ambient_occlusion": "Ocluzie ambientală",
"cmd.view_angle_readout": "Unghiuri de vizualizare",
"cmd.view_apply": "Restabilește vizualizarea numită",
@@ -1219,6 +1260,7 @@
"cmd.view_normal_to": "Normal pe selecție",
"cmd.view_previous_tab": "Fila anterioară",
"cmd.view_rename": "Redenumește vizualizarea numită",
"cmd.view_render_frame": "Ghiduri de încadrare pentru randare",
"cmd.view_right": "Vizualizare din dreapta",
"cmd.view_save": "Vizualizare numită nouă",
"cmd.view_shots_strip": "Bandă de cadre",
@@ -1229,10 +1271,14 @@
"color.copy": "Clic pentru a copia valorile culorii",
"color.edit": "Clic pentru a edita culoarea",
"color.gamma": "Se afișează valorile culorii în spațiul gamma 0-255",
"color.hex": "Hex",
"color.hex_help": "Introduceți #rrggbb sau #rrggbbaa; cu șase cifre se păstrează opacitatea",
"color.hex_hint": "#rrggbb",
"color.hue": "Nuanță",
"color.linear": "Se afișează valorile culorii în spațiul liniar 0-1",
"color.saturation_value": "Saturație și valoare",
"color.selected": "Culoare selectată",
"config.column_filter_empty": "Nicio coloană potrivită",
"contact.components_count": "{count} componente",
"contact.enabled_label": "activat",
"coupling.gear_1": "Roată dințată 1",
@@ -1346,8 +1392,10 @@
"help.material.assign": "Stabilește din ce sunt făcute corpurile selectate, de exemplu oțel, aluminiu sau ABS. Folosiți-l pentru ca masa și greutatea să corespundă piesei reale.",
"help.mit": "Licența MIT",
"help.notice": "NOTICE",
"help.occurrence.move": "Mută o piesă din ansamblu doar pe direcțiile de mișcare permise de îmbinările sale. Selectați o față a piesei, apoi trageți o săgeată sau un arc disponibil.",
"help.parameters.change": "Deschide tabelul cu valori denumite și expresii care controlează cotele proiectului. Folosiți-l pentru a schimba o dimensiune într-un singur loc și a lăsa toate operațiile care o folosesc să o urmeze.",
"help.pointcloud.insert": "Inserați o scanare PLY, XYZ sau PTS ca nor de puncte alături de model. Folosiți-o ca referință la construirea unui model pe baza datelor măsurate.",
"help.sketch.equation_curve": "Desenează o curbă din formule: x(t) și y(t) sau y = f(x), pe un interval. Formulele pot folosi parametri, iar curba îi urmează: folosiți-o pentru o sinusoidă, o spirală sau evolventa unui dinte de roată dințată.",
"help.solid.align": "Mută corpurile selectate astfel încât un punct, o față sau un plan de pe ele să se întâlnească cu un punct, o față sau un plan din altă parte. Folosiți-l pentru a așeza o piesă lângă alta fără a măsura decalajul.",
"help.solid.chamfer": "Teșește muchiile selectate cu o înclinare plană la distanța stabilită. Folosiți-l pentru a îndepărta muchiile ascuțite sau pentru a ușura introducerea unui pin sau a unui șurub.",
"help.solid.combine": "Unește corpurile, le decupează dintr-un corp țintă sau păstrează doar volumul pe care îl au în comun și poate păstra corpurile-sculă. Folosiți-l pentru a îmbina piese, pentru a decupa o formă cu alta sau pentru a găsi unde se suprapun două corpuri.",
@@ -1474,6 +1522,21 @@
"joint.one_component": "Aceste piese sunt corpuri ale aceleiași componente: {bodies}. O îmbinare mișcă o componentă față de alta, deci fiecare piesă are nevoie de o componentă proprie.",
"joint.rigid_group_one_component": "Aceste {count} corpuri se află toate într-o singură componentă (sau în proiectul însuși): folosiți mai întâi {command}.",
"joint.rigid_group_select_components": "Selectați două sau mai multe componente.",
"joint_move.blocked_hint": "Verificați tipul îmbinării (de exemplu Rigidă), fixarea, limitele îmbinării și valorile conduse de parametri.",
"joint_move.blocked_title": "Această piesă nu poate fi mutată",
"joint_move.coarse": "Pas de rotire lângă axă (°)",
"joint_move.distance": "Distanță față de start",
"joint_move.done": "Gata",
"joint_move.fine": "Pas de rotire departe de axă (°)",
"joint_move.fixed": "Această piesă nu are nicio axă de îmbinare mobilă.",
"joint_move.help": "Mută — trageți o săgeată sau un inel. Esc anulează tragerea curentă.",
"joint_move.legacy_hint": "Dezactivați pentru a folosi panoul Mută anterior.",
"joint_move.precision": "Trageți în afara ghidului cu linie întreruptă pentru rotire fină.",
"joint_move.rotation": "Rotire față de start",
"joint_move.select": "Selectați o față sau o piesă din ansamblu, apoi alegeți Mută.",
"joint_move.settings": "Mutare în ansamblu",
"joint_move.step": "Pas",
"joint_move.use_handles": "Folosește mânerele de mișcare ale îmbinărilor pentru Mută în ansamblu",
"keymap.command_id": "ID comandă",
"keymap.empty": "Nicio comandă corespunzătoare",
"keymap.use_anyway": "Folosește totuși {key} aici",
@@ -1568,6 +1631,8 @@
"nav.maya.help": "Alt+tragere cu butonul stâng: orbitare, Alt+butonul din mijloc: panoramare, Alt+butonul drept: zoom; tragerea cu butonul din mijloc face de asemenea panoramare",
"nav.openscad.help": "Tragerea cu stânga pe spațiu gol orbitează, Shift+tragere cu stânga selectează cu casetă, tragerea geometriei schiței o editează; tragerea cu dreapta sau cu mijlocul panoramează, Shift+tragere cu dreapta sau Shift+tragere cu mijlocul face zoom",
"nav.perspective.sketch": "Editarea schiței folosește vizualizarea ortografică. Finalizați schița pentru a comuta la perspectivă.",
"nav.right_drag_orbits.help": "Dezactivat: tragerea cu dreapta nu mișcă camera, iar butonul drept doar deschide meniul contextual. Alegerea mapării de mouse SolidWorks dezactivează această opțiune.",
"nav.right_drag_orbits.label": "Tragerea cu dreapta orbitează",
"nav.solidworks.help": "Tragerea cu mijlocul orbitează, Ctrl+mijloc panoramează, Shift+mijloc face zoom, tragerea cu dreapta orbitează",
"nav.tinkercad.help": "Tragerea cu dreapta orbitează, tragerea cu mijlocul sau Shift+tragere cu dreapta panoramează",
"nav.touchpad.help": "Țineți apăsat Shift și mișcați indicatorul pentru panoramare; țineți apăsat Alt/Option și mișcați-l pentru orbitare. Nu este nevoie de butonul mouse-ului. Derularea verticală mărește/micșorează.",
@@ -1589,6 +1654,9 @@
"navbar.custom.customise": "Personalizează bara de navigare…",
"navbar.custom.design": "Proiect",
"navbar.custom.duplicate": "Acest element este deja pe bară.",
"navbar.custom.edge": "Margine",
"navbar.custom.edge_bottom": "Jos",
"navbar.custom.edge_top": "Sus",
"navbar.custom.fade": "Estompare",
"navbar.custom.full": "Eliminați un element pentru a adăuga altul.",
"navbar.custom.hidden_design": "Ascuns în Proiect",
@@ -1695,6 +1763,7 @@
"parts.dimension.thickness": "Grosime",
"parts.dimension.width": "Lățime",
"parts.family.bearing": "Rulment radial cu bile (gabarit)",
"parts.family.button_head_cap_screw": "Șurub cu cap bombat și locaș hexagonal",
"parts.family.dowel_pin": "Știft cilindric (de centrare)",
"parts.family.hex_bolt": "Șurub / bolț cu cap hexagonal",
"parts.family.hex_nut": "Piuliță hexagonală",
@@ -1751,6 +1820,9 @@
"prefs.bottom_centre": "Centru jos",
"prefs.bottom_right": "Dreapta jos",
"prefs.browser": "Navigator",
"prefs.browser_reveal_on_hover": "Afișează la survol",
"prefs.browser_show_note": "Afișat ține navigatorul pe ecran. Afișează la survol îl ține ascuns până când indicatorul ajunge pe locul lui sau pe fila subțire de la marginea lui stângă, iar navigatorul rămâne deschis cât timp indicatorul este în interiorul lui sau cât timp un meniu al lui este deschis.",
"prefs.browser_shown": "Afișat",
"prefs.built_in": "Încorporat",
"prefs.button_left": "Tragere cu butonul stâng",
"prefs.button_middle": "Tragere cu butonul din mijloc",
@@ -1821,6 +1893,8 @@
"prefs.layout_note": "Compact fixează panourile la marginile ferestrei. Transparența navigatorului este disponibilă în modul Plutitor. Schimbați partea Asistentului în pagina Asistent.",
"prefs.left": "Stânga",
"prefs.left_click": "Clic stânga",
"prefs.line_drag_draws_one": "Apăsarea și tragerea desenează o singură linie",
"prefs.line_drag_draws_one_note": "În instrumentul Linie, apăsarea, tragerea și eliberarea desenează o singură linie de la punctul apăsării la cel al eliberării, iar linia se termină acolo. Clicurile desenează în continuare un lanț. Dezactivat: o tragere plasează un punct acolo unde este eliberată, la fel ca un clic.",
"prefs.linked_designs": "Proiecte legate",
"prefs.live_input": "Intrare în timp real",
"prefs.live_preview": "Previzualizare în timp real",
@@ -1853,14 +1927,36 @@
"prefs.origin_plane_names": "Numele planelor de origine",
"prefs.origin_plane_names_note": "Nume afișate în navigator, în dialoguri și în liste. {top} este XY, {front} este XZ și {right} este YZ, cu Z în sus. Comenzile, scripturile și proiectele salvate păstrează XY, XZ și YZ.",
"prefs.overall_speed": "Viteză generală",
"prefs.perspective_fov": "Câmp vizual",
"prefs.placement": "Plasare",
"prefs.prefer_free_sketch_points": "Preferă punctele de schiță mobile când punctele se suprapun",
"prefs.preview_choices": "Previzualizarea opțiunilor alese",
"prefs.profile_active": "Profil activ",
"prefs.profile_applied": "Profil aplicat.",
"prefs.profile_changed": "Setările s-au modificat de la salvarea profilului. Salvează le păstrează în el.",
"prefs.profile_deleted": "Profil șters.",
"prefs.profile_export": "Exportă…",
"prefs.profile_exported": "Profil exportat.",
"prefs.profile_imported": "Profil importat. Alegeți-l la Profil activ pentru a trece la el.",
"prefs.profile_name_hint": "Numele profilului, de ex. Laptop",
"prefs.profile_rename": "Redenumește",
"prefs.profile_renamed": "Profil redenumit.",
"prefs.profile_save": "Salvează",
"prefs.profile_saved": "Setările curente au fost salvate în profil.",
"prefs.profile_skipped": "Profil aplicat; {n} setări și-au păstrat valoarea curentă (vedeți jurnalul).",
"prefs.profiles": "Profiluri de setări",
"prefs.profiles_note": "Comenzile rapide, bara de instrumente, navigarea, meniul radial și setările interfeței, păstrate împreună sub un nume și comutate dintr-odată.",
"prefs.project_options_dialog": "Dialog cu opțiuni de proiecție",
"prefs.project_options_dialog_note": "Activat: alegeți Geometrie sau Corpuri și Legătură de proiecție înainte de a proiecta. Dezactivat: se păstrează fluxul anterior, cu alegere directă.",
"prefs.quality_default": "implicit",
"prefs.quality_fastest": "cel mai rapid",
"prefs.quality_slowest": "cel mai lent",
"prefs.quality_smoother": "mai neted",
"prefs.render_previous_geometry_budget": "Folosește bugetul anterior de geometrie pentru previzualizarea din Randare",
"prefs.render_previous_geometry_budget_help": "Restabilește limita fixă anterioară de geometrie (512 MiB pe desktop pe 64 de biți, 128 MiB în rest) în locul bugetului bazat pe dispozitiv.",
"prefs.reports_saved": "{n} salvate",
"prefs.ribbon_reveal": "Afișează rezultatele căutării în panglică",
"prefs.ribbon_reveal_note": "Trecerea cursorului peste un rezultat din Caută comenzi arată unde se află comanda în panglică: fila, butonul sau rândul ei din lista derulantă a unui panou. O comandă pornită din căutare clipește acolo, iar o comandă în curs pornită dintr-o listă derulantă îi marchează panoul.",
"prefs.right_click": "Clic dreapta",
"prefs.saving": "Salvare automată și recuperare",
"prefs.scale_note": "Și Ctrl + / Ctrl − în fereastră. Butoanele au 28 px la 100%.",
@@ -1874,6 +1970,10 @@
"prefs.shift_add_ctrl_toggle": "Shift doar adaugă; Ctrl / Cmd comută",
"prefs.shift_add_note": "Activat: Shift adaugă, Ctrl / Cmd comută. Dezactivat (implicit): ambele comută.",
"prefs.shortcuts": "Comenzi rapide",
"prefs.single_surface_analysis": "Folosește o singură analiză de suprafață",
"prefs.single_surface_analysis_help": "Când este dezactivat, umbrirea suprafeței și Continuitatea pot rămâne active împreună. Activarea acestei opțiuni păstrează ultima analiză pornită sau modificată.",
"prefs.sketch_align_points": "Aliniază cu alte puncte de schiță în timpul desenării",
"prefs.sketch_align_points_note": "În timpul desenării, un punct se aliniază simultan pe orizontală cu un punct de schiță și pe verticală cu altul, cu un ghid punctat, iar clicul păstrează ambele alinieri. Dezactivat: doar cu punctul anterior, pe o singură axă odată.",
"prefs.sketch_conflict_colour": "Geometrie în conflict, în culoarea de conflict",
"prefs.sketch_conflict_colour_note": "Cât timp constrângerile unei schițe sunt în conflict, curbele și punctele pe care le leagă o constrângere eșuată sunt desenate și ele în culoarea de conflict, nu doar simbolul sau cota ei. Dezactivat: își păstrează culorile obișnuite.",
"prefs.sketch_exit_view": "Când se încheie o schiță",
@@ -1881,6 +1981,8 @@
"prefs.sketch_exit_view.previous": "Revino la vizualizarea anterioară",
"prefs.sketch_exit_view.unless_rotated": "Revino, dacă nu a fost rotită",
"prefs.sketch_exit_view_note": "Unde ajunge vizualizarea după Finalizează schița, Anulează sau un dublu Esc.",
"prefs.sketch_recent_snap": "Agățare automată la centrele și punctele de mijloc recente",
"prefs.sketch_recent_snap_note": "În timpul desenării, cursorul se agață acolo unde se intersectează ghidurile ultimelor două centre de cerc sau puncte de mijloc ale liniilor drepte. Dezactivat: aceste ghiduri rămân doar vizuale, iar cursorul nu se mișcă.",
"prefs.sketch_selection": "Schiță și selecție",
"prefs.sketch_selection_heading": "Schiță și selecție",
"prefs.sketch_selection_note": "Cum se agață schițele și cum selectează clicurile.",
@@ -1918,7 +2020,14 @@
"prefs.toast_place": "Notificări",
"prefs.toggle_item": "Adaugă elementul sau scoate-l din nou",
"prefs.toolbar": "Bară de instrumente",
"prefs.toolbar_tabs": "File ale barei de instrumente",
"prefs.top": "Sus",
"prefs.trackpad_zoom_modifier": "Zoom cu derularea cu două degete ținând apăsat",
"prefs.trackpad_zoom_modifier.alt": "⌥ / Alt",
"prefs.trackpad_zoom_modifier.cmd": "⌘",
"prefs.trackpad_zoom_modifier.ctrl": "Ctrl",
"prefs.trackpad_zoom_modifier.help": "Țineți apăsată doar această tastă pentru a face zoom la indicator cu derularea verticală. Dezactivat păstrează comportamentul actual al derulării.",
"prefs.trackpad_zoom_modifier.off": "Dezactivat",
"prefs.translucent": "Translucid",
"prefs.under_browser": "Sub navigator",
"prefs.under_cursor": "Sub cursor",
@@ -1928,9 +2037,14 @@
"prefs.view_confirm_corner": "OK și Anulează în colțul vizualizării",
"prefs.view_confirm_corner_note": "Cât timp este deschis un dialog sau o schiță, o bifă și o cruce în dreapta sus a vizualizării fac ce fac OK și Anulează din dialog, sau finalizează și anulează schița. Controlul de navigare al vizualizării se mută mai jos, sub ele.",
"prefs.viewport": "Fereastră de vizualizare",
"prefs.viewport_background": "Fundal",
"prefs.viewport_background_colour": "Culoare",
"prefs.viewport_background_theme": "Gradientul temei",
"prefs.wheel": "Rotiță",
"prefs.wheel_trackpad": "Rotiță și trackpad",
"prefs.workspace": "Spațiu de lucru",
"prefs.zoom_stop_at_model": "Oprește zoomul la model",
"prefs.zoom_stop_at_model_tip": "Mouse-ul 3D și aplicația dispozitivului fac zoom spre suprafața din mijlocul vizualizării; zoomul prin tragere păstrează punctul unde a început tragerea. Dezactivat: zoomul poate trece prin model. Rotița și ciupirea folosesc separat Zoom spre cursor",
"prefs.zoom_toward_cursor": "Zoom spre cursor",
"properties.title": "Proprietăți: {name}",
"recovery.days_ago": "acum {count} zile",
@@ -2019,6 +2133,7 @@
"render.appearance_editor.weight": "Pondere",
"render.appearance_physics_separate": "Aspectul vizual nu atribuie densitate, date termice sau alte proprietăți tehnice.",
"render.appearances": "Aspecte",
"render.assign_help": "Faceți clic pentru a aplica la selecție; trageți pentru a previzualiza și eliberați pentru a plasa sau faceți clic fără nimic selectat pentru a picta.",
"render.availability_native": "Compoziție nativă; verificați înainte de aplicare",
"render.availability_projection": "Proiecție acceptată; vedeți domeniul și omisiunile",
"render.availability_reference": "Date de referință; nu sunt o atribuire automată",
@@ -2057,6 +2172,7 @@
"render.bloom_threshold": "Prag liniar al zonelor luminoase",
"render.browse_capabilities": "Inspectează catalogul complet de capabilități",
"render.browse_environments": "Răsfoiește mediile HDR originale",
"render.browse_looks": "Răsfoiește…",
"render.browse_native_scenes": "Răsfoiește studiourile native",
"render.browse_physical": "Inspectează referințele fizice",
"render.browse_quality": "Inspectează specificațiile de calitate",
@@ -2080,6 +2196,82 @@
"render.check_opaque": "Transparență: doar suprafețe opace; canalul alfa al fundalului este acceptat.",
"render.check_sorted_alpha": "Transparență: aproximare alfa sortată.",
"render.check_transmission": "Transparență: transmisie fizică.",
"render.children.absolute_floor": "Prag absolut",
"render.children.adaptive": "Adaptiv",
"render.children.add_look_reason": "Adăugați un stil pentru a-i edita starea de activare și intensitatea.",
"render.children.all_shots": "Toate cadrele",
"render.children.bloom": "Bloom",
"render.children.check": "Verificare",
"render.children.check_now": "Verifică acum",
"render.children.chromatic": "Decalaj cromatic",
"render.children.compact": "Compact",
"render.children.contrast": "Contrast",
"render.children.copy_image": "Copiază",
"render.children.copy_job": "Copiază JSON-ul sarcinii",
"render.children.copy_request": "Copiază JSON-ul cererii",
"render.children.coverage_error": "Eroare de acoperire",
"render.children.cpu": "Trasare de raze pe CPU",
"render.children.denoise": "Reduce zgomotul în imaginea finală",
"render.children.depth": "Adâncimea căilor",
"render.children.distortion": "Distorsiune",
"render.children.edge_samples": "Eșantioane de margine",
"render.children.effects_banner": "Aceste efecte necesită path tracing pe GPU. Deschiderea acestei secțiuni nu schimbă niciodată metoda.",
"render.children.enable_adaptive": "Activați piloții independenți pentru a edita limitele adaptive.",
"render.children.enable_bloom": "Activați bloom pentru a-i edita intensitatea, pragul și raza.",
"render.children.finishing": "Finisare",
"render.children.flare": "Reflexie",
"render.children.fresnel": "Straturi Fresnel",
"render.children.ghosts": "Inele fantomă",
"render.children.glass": "Transport prin sticlă",
"render.children.go_to": "Mergi la {editor}",
"render.children.grain": "Granulație",
"render.children.halo": "Halou",
"render.children.hdr": "HDR",
"render.children.keep_master": "Păstrează masterul liniar brut",
"render.children.last_result": "Ultima: {number} · {width} × {height} · {phase}",
"render.children.lens_effects": "Efecte de obiectiv",
"render.children.look_summary": "{tone} · {count} stiluri",
"render.children.looks": "Stiluri creative",
"render.children.memory": "Memorie",
"render.children.method": "Metodă",
"render.children.minimum": "Minim",
"render.children.needs_cpu": "Necesită ray tracing pe CPU. Deschiderea acestei secțiuni nu schimbă niciodată metoda.",
"render.children.nested": "Dielectrice imbricate certificate",
"render.children.not_checked": "Neverificat",
"render.children.path": "Trasare de căi",
"render.children.pilots": "Eșantioane pilot",
"render.children.preview": "Date de previzualizare",
"render.children.progressive_reason": "Alegeți Progresiv pentru a edita numărul de eșantioane și sămânța.",
"render.children.radius": "Rază",
"render.children.reflect_depth": "Adâncimea reflexiei",
"render.children.reflect_samples": "Eșantioane de reflexie",
"render.children.regrade": "Recorectare de culoare",
"render.children.relative_error": "Eroare relativă",
"render.children.render": "Randare",
"render.children.render_shot": "Randează cadrul",
"render.children.renderer": "Motor de randare",
"render.children.renderers": "Motoare de randare",
"render.children.request": "Această cerere",
"render.children.reset_finishing": "Resetează finisarea",
"render.children.review_quality": "Examinează o specificație de calitate…",
"render.children.rgb_gain": "Amplificare RGB",
"render.children.samples": "Eșantioane",
"render.children.sampling": "Eșantionare",
"render.children.saturation": "Saturație",
"render.children.scene_summary": "{bodies} corpuri · {triangles} triunghiuri",
"render.children.seed": "Sămânță",
"render.children.sharpening": "Accentuare",
"render.children.single_image": "Imagine unică",
"render.children.soft_focus": "Focalizare moale",
"render.children.streak": "Dungă",
"render.children.strength": "Intensitate",
"render.children.studio": "Studio",
"render.children.threshold": "Prag",
"render.children.tone": "Ton",
"render.children.under_hood": "Detalii tehnice",
"render.children.vignette": "Vinietă",
"render.children.workstation": "Stație de lucru",
"render.choose_look": "Alegeți mai întâi un stil în Aspecte",
"render.chromatic_offset": "Decalaj cromatic al marginilor",
"render.clear_stage": "Elimină decorul salvat",
"render.copy_request": "Copiază JSON",
@@ -2331,8 +2523,33 @@
"render.flare_strength": "Intensitatea reflexiei zonelor luminoase",
"render.flare_threshold": "Prag de reflexie liniar în scenă",
"render.fold_browser": "Restrânge navigatorul",
"render.frame_aspect": "Raport de aspect",
"render.frame_centre_mark": "Marcaj central",
"render.frame_copy_limit": "Niciun nume disponibil pentru cadrul duplicat",
"render.frame_copy_name": "{name} copie {number}",
"render.frame_custom": "Personalizat",
"render.frame_distance_unit": " × dimensiune",
"render.frame_duplicate": "Duplică",
"render.frame_exposure": "Expunere",
"render.frame_fov": "Câmp vizual",
"render.frame_guides": "Ghiduri",
"render.frame_invalid_aspect": "Presetare de raport de aspect nevalidă",
"render.frame_lens": "Câmp vizual {fov}° · ≈ {mm} mm",
"render.frame_name": "Nume",
"render.frame_output_size": "Dimensiunea de ieșire",
"render.frame_photo": "3:2 · Foto",
"render.frame_portrait": "4:5 · Portret",
"render.frame_presets": "Presetări de cadru",
"render.frame_presets_pending": "Va fi disponibil odată cu editorul de cadre",
"render.frame_projection": "Proiecție",
"render.frame_render_shot": "Randează acest cadru",
"render.frame_rule_thirds": "Regula treimilor",
"render.frame_safe_area": "Zonă sigură",
"render.frame_shot_title": "Cadru · {name}",
"render.frame_square": "1:1 · Pătrat",
"render.frame_tall": "9:16 · Vertical",
"render.frame_thirds": "Treimi",
"render.frame_wide": "16:9 · Panoramic",
"render.gpu_depth": "Adâncime maximă a traseului",
"render.gpu_options_help": "Eșantioanele, adâncimea, valoarea inițială și expunerea se salvează cu această configurație. Se salvează doar metoda de imagine activă.",
"render.gpu_path_failed": "Path tracerul GPU nu este disponibil",
@@ -2360,6 +2577,7 @@
"render.heading_results": "REZULTATE",
"render.heading_shots": "CADRE",
"render.hide_shots_label": "Ascunde banda de cadre",
"render.hover_look": "{object} · {look} · clic pentru a selecta",
"render.image_advanced": "Comenzi GPU avansate",
"render.image_cancelled": "Randare anulată",
"render.image_cancelling": "Se anulează",
@@ -2506,17 +2724,95 @@
"render.library_uniform_ack": "Folosește aproximarea uniformă, fără efecte spațiale sau avansate",
"render.library_usable": "Proiecții executabile",
"render.library_users": "Folosit de",
"render.light_aim": "Îndreptată spre",
"render.light_anchor_pending": "Schimbarea sistemului de coordonate al luminii nu este încă acceptată.",
"render.light_azimuth": "Azimut",
"render.light_backend_limit": "Alegeți ray tracing pe CPU sau un studio GPU explicit pentru a edita luminile. Luminile vechi ale studioului GPU rămân doar pentru citire.",
"render.light_behaviour": "COMPORTAMENT",
"render.light_default_fill": "Umplere",
"render.light_default_key": "Principală",
"render.light_default_number": "Lumina {number}",
"render.light_default_rim": "Contur",
"render.light_delete": "Șterge",
"render.light_distance": "Distanță",
"render.light_duplicate": "Duplică",
"render.light_elevation": "Elevație",
"render.light_gpu_punctual": "Luminile punctiforme și spot sunt disponibile cu ray tracing pe CPU.",
"render.light_hard_shadow": "Această lumină are umbre dure; moliciunea sursei nu este disponibilă.",
"render.light_intensity": "Intensitate",
"render.light_missing": "Această lumină nu mai există. Selectați o lumină în Navigator.",
"render.light_place_highlight": "Plasează după reflexie",
"render.light_place_pending": "Plasarea după reflexie necesită alegerea luminii în fereastra de vizualizare și nu este încă acceptată.",
"render.light_position": "POZIȚIE",
"render.light_preview_help": "Vizualizarea live este fără umbre; luminile de suprafață folosesc o aproximare cu un eșantion central. Randarea folosește modelul complet de lumină.",
"render.light_product_centre": "Centrul produsului",
"render.light_size": "Dimensiune",
"render.light_softness": "Moliciune",
"render.light_temperature": "Temperatura culorii",
"render.light_temperature_help": "Nuanță aproximativă de corp negru; salvată ca RGB liniar.",
"render.light_type": "Tip",
"render.light_type_area": "Suprafață",
"render.light_type_point": "Punctiformă",
"render.light_type_spot": "Spot",
"render.light_type_sun": "Soare",
"render.light_view_only": "Solo și dezactivarea afectează această vizualizare și randările ei; nu sunt salvate niciodată în proiect.",
"render.light_world_origin": "Originea lumii",
"render.lighting_aim_point": "Punct de țintire",
"render.lighting_apply": "Aplică presetarea",
"render.lighting_area_samples": "Eșantioane de suprafață",
"render.lighting_budget": "Buget",
"render.lighting_budget_help": "Numerele sunt doar pentru citire. Adăugați, duplicați sau ștergeți lumini pentru a le modifica; metoda stabilește limitele.",
"render.lighting_colour": "Culoare",
"render.lighting_consent": "Înlocuiește luminile direcționale cu această presetare",
"render.lighting_custom": "Lumini personalizate",
"render.lighting_custom_help": "Alegerea opțiunii Personalizat transformă presetarea în lumini editabile, fiecare cu propriul rând în arbore.",
"render.lighting_direction": "Direcție X Y Z",
"render.lighting_direction_help": "Sau introduceți o direcție spre lumină (X Y Z).",
"render.lighting_distance_unit": " × dimensiune",
"render.lighting_edge_u": "Vectorul laturii U",
"render.lighting_edge_v": "Vectorul laturii V",
"render.lighting_falloff": "Atenuare",
"render.lighting_falloff_help": "Intensitatea este indicată la distanța de referință.",
"render.lighting_height": "Înălțime V",
"render.lighting_minimum": "Minim",
"render.lighting_mute": "Dezactivează această lumină",
"render.lighting_point": "Punct",
"render.lighting_preset": "Presetare de studio",
"render.lighting_preset_cpu": "Presetările de studio direcționale necesită ray tracing pe CPU. Iluminarea GPU folosește lumini explicite de tip Soare și Suprafață.",
"render.lighting_preset_row": "Presetare",
"render.lighting_radiance": "Radianță",
"render.lighting_reference": "Referință",
"render.lighting_review_help": "Înlocuiește lista de lumini direcționale. Păstrează luminile punctiforme și de suprafață, mediul, umbrele, camera și toate celelalte setări ale cadrului.",
"render.lighting_review_title": "Examinează presetarea de iluminare",
"render.lighting_samples_cpu": "Eșantioanele pentru luminile de suprafață se aplică la ray tracing pe CPU.",
"render.lighting_samples_need_area": "Adăugați o lumină de suprafață CPU pentru a seta eșantioanele de suprafață.",
"render.lighting_samples_reason": "Eșantioanele de suprafață trebuie să fie 1, 4, 16 sau 64.",
"render.lighting_shadow_cpu": "Comutatorul pentru umbre necesită ray tracing pe CPU. Path tracingul pe GPU aruncă întotdeauna umbre.",
"render.lighting_shadows": "Aruncă umbre",
"render.lighting_shadows_section": "Umbre și eșantionare",
"render.lighting_shape": "Formă",
"render.lighting_solo": "Solo pentru această lumină",
"render.lighting_source": "Sursă",
"render.lighting_source_section": "Sursă de lumină",
"render.lighting_spot_preserved": "Această lumină punctiformă își păstrează conul de spot salvat până la schimbarea tipului.",
"render.lighting_sun_distance": "Direcția soarelui nu depinde de distanță și de punctul de țintire.",
"render.lighting_unsupported": "neacceptat",
"render.lighting_used": "{used} din {limit}",
"render.lighting_width": "Lățime U",
"render.lighting_world_position": "Poziție în lume X Y Z",
"render.lights_fixed_to": "Luminile fixate de",
"render.linear_help": "Păstrează un master RGBA în virgulă mobilă pe 32 de biți înainte de eliminarea zgomotului, expunere, maparea tonurilor, filtre și fundal. sRGB liniar/D65; premultiplicat cu acoperirea. Memoria suplimentară este acceptată explicit. Fără compresie sau treceri suplimentare.",
"render.linear_retain": "Păstrează EXR liniar brut",
"render.linear_unavailable": "Cadrul finalizat selectat nu are un EXR păstrat. Activați păstrarea înainte de randare; un PNG mai vechi nu poate recupera radianța brută.",
"render.look_add": "Adaugă stil de culoare",
"render.look_applied": "S-a aplicat {name}",
"render.look_bleach": "Inspirat de bleach bypass",
"render.look_cool": "Rece",
"render.look_cyanotype": "Inspirat de cianotipie",
"render.look_faded": "Imprimare decolorată",
"render.look_material": "Material",
"render.look_mono": "Monocrom",
"render.look_pasted": "Stil lipit",
"render.look_sepia": "Sepia",
"render.look_strength": "Intensitatea stilului",
"render.look_teal_orange": "Turcoaz / portocaliu",
@@ -2592,9 +2888,11 @@
"render.output_advanced": "Avansat",
"render.output_backend_ready": "Gata",
"render.output_check": "Verifică",
"render.output_check_failed": "Verificare · eroare",
"render.output_check_help": "Rulați Verifică pentru a examina această cerere fără a porni o randare.",
"render.output_check_summary": "Verificare · Note: {count}",
"render.output_copy": "Copiază",
"render.output_copy_report": "Copiază raportul",
"render.output_destination": "Destinație",
"render.output_destination_help": "Alegeți fișierul de destinație la exportul imaginii finalizate.",
"render.output_dimensions": "Dimensiune",
@@ -2604,6 +2902,7 @@
"render.output_fit": "Potrivire",
"render.output_format": "Format",
"render.output_format_status": "PNG este imaginea de afișare finalizată, exact așa cum este. EXR opțional pe GPU păstrează radianța brută FLOAT32 liniară la nivel de scenă, înainte de filtrele de afișare. Exportul nu înlocuiește niciodată memoria cache a previzualizării sau o altă sarcină.",
"render.output_grading": "Corectare de culoare",
"render.output_image": "Imagine",
"render.output_largest": "max. {width} × {height}",
"render.output_lock_ratio": "Blochează raportul de aspect",
@@ -2613,6 +2912,8 @@
"render.output_quality_waiting": "se așteaptă contractul de calitate",
"render.output_ratio_refused": "Dimensiunea legată depășește limita de dimensiune a acestei metode. Dimensiunea anterioară este păstrată; deblocați raportul sau alegeți o valoare mai mică.",
"render.output_ready": "Gata de randare",
"render.output_run_check": "Rulează verificarea",
"render.output_size_limit": "{method}: până la {dimension} px pe latură și {pixels} pixeli. Cea mai mare dimensiune care încape: {width} × {height}.",
"render.output_size_ok": "Dimensiune OK · {width} × {height} px",
"render.output_swap_orientation": "Interschimbă lățimea și înălțimea",
"render.output_tools_inspector": "Editați dimensiunea și formatul în inspectorul Ieșire.",
@@ -2629,6 +2930,7 @@
"render.page_output": "Ieșire",
"render.page_scene": "Scenă",
"render.paint_label": "Vopsește",
"render.painting_with": "Se pictează cu {name}",
"render.passive_stage": "Podea și decor pasiv",
"render.passive_stage_help": "Panourile pasive finite aparțin doar imaginilor randate. Ele nu adaugă corpuri CAD sau masă. Plasarea este fixă după aplicare; o plasare care intersectează limitele produsului este refuzată. CPU nu oferă iluminare indirectă difuză.",
"render.perspective": "Cameră în perspectivă",
@@ -2650,6 +2952,7 @@
"render.pick_help": "Alegeți Corp, Față sau Componentă. Faceți clic într-un spațiu gol pentru a goli selecția; Shift sau Ctrl adaugă sau comută. Evidențierile apar doar în vizualizarea live a produsului.",
"render.pick_label": "Alege",
"render.pick_up_label": "Preia",
"render.pick_up_prompt": "Faceți clic pe un obiect pentru a-i prelua stilul",
"render.pick_waiting": "Alegerea produsului nu este încă acceptată.",
"render.post_contrast": "Contrast",
"render.post_gain_b": "Amplificare albastru",
@@ -2689,13 +2992,17 @@
"render.radial_distortion": "Distorsiune radială",
"render.radial_fit": "Încadrează produsul",
"render.radial_save": "Salvează cadrul",
"render.recent_looks": "Stiluri recente",
"render.regrade_action": "Recorectează culorile master-ului brut (fără eliminarea zgomotului)",
"render.regrade_help": "Creează un PNG separat din master-ul brut finalizat și selectat, folosind aceste comenzi de prezentare. Nu trasează raze, nu modifică dimensiunea, camera sau sursele de lumină capturate și nu suprascrie EXR-ul. Eliminarea zgomotului nu este reaplicată: master-urile brute nu rețin ghidurile acesteia. Derivatul rămâne exportabil prin aceleași comenzi ale sarcinii.",
"render.regrade_label": "Recorectare de culoare",
"render.reload_settings": "Reîncarcă setările salvate",
"render.remove_override": "Elimină suprascrierea",
"render.replace_all": "Înlocuiește tot",
"render.replace_ground": "Confirmă înlocuirea decorului existent",
"render.replace_label": "Înlocuiește",
"render.replace_saved_surface": "Înlocuiește o asociere salvată existentă pentru această țintă",
"render.replace_with": "Înlocuiește cu",
"render.restore_camera": "Restabilește camera salvată",
"render.result_actual": "100%",
"render.result_actual_help": "Un pixel de imagine pentru fiecare pixel de afișare.",
@@ -2747,14 +3054,28 @@
"render.saved_surface_remove": "Elimină asocierea salvată",
"render.saved_surfaces": "Asocieri de suprafață salvate",
"render.saved_surfaces_help": "Hărțile integrate fixate urmăresc instanța selectată, în milimetri locali. O țintă înlocuită sau lipsă este o eroare, niciodată o reatribuire automată.",
"render.scene_all_shots": "Toate cadrele ({count})",
"render.scene_apply": "Aplică studioul revizuit",
"render.scene_batch_reason": "Toate cadrele necesită coada de randare a cadrelor salvate, care nu este încă disponibilă.",
"render.scene_check_now": "Verifică acum",
"render.scene_check_passed": "Verificare reușită · {notes} note",
"render.scene_check_stale": "Verificare depășită · verificați din nou",
"render.scene_check_unchecked": "Neverificat încă · 0 note",
"render.scene_consent": "Confirmă înlocuirea iluminării, a mediului, a expunerii și a decorului",
"render.scene_light_summary": "{environment} · {lights} lumini",
"render.scene_look_summary": "{looks} stiluri · {overrides} suprascrieri",
"render.scene_open_check": "Deschide Verificare",
"render.scene_preserved_fields": "Camera, eșantionarea, dimensiunile, asocierile optice, geometria CAD și materialele de inginerie sunt păstrate.",
"render.scene_preserves_design": "Compune iluminarea și un decor pasiv pentru subiectul vizibil. Geometria, materialele de inginerie și camera rămân separate.",
"render.scene_ready": "Gata de randare",
"render.scene_reminder": "Scena păstrează proiectul. Geometria, proprietățile tehnice și CAD-ul nu sunt modificate niciodată din Randare.",
"render.scene_reminders": "Mementouri",
"render.scene_renderer_ready": "{renderer} pregătit",
"render.scene_replaces": "Înlocuiește",
"render.scene_review": "Rezolvă și revizuiește",
"render.scene_review_help": "Revizuiți compoziția nativă completă înainte de aplicare. Specificațiile avansate SCENE neasociate nu sunt substituite.",
"render.scene_scope_details": "Domeniul compoziției",
"render.scene_stages": "Etape",
"render.search_appearances": "Caută aspecte ({count})",
"render.setup_legacy_environment": "Această configurație mai veche folosește rotația sau intensitatea mediului în format vechi. Valorile sunt păstrate; convertiți-le explicit înainte de a salva o lucrare completă de imagine.",
"render.setup_name": "Numele configurării",
@@ -2767,7 +3088,22 @@
"render.shell_tab_camera": "CAMERĂ RANDARE",
"render.shell_tab_lighting": "ILUMINARE",
"render.shell_tab_scene": "SCENĂ RANDARE",
"render.shot_aperture": "Diafragmă",
"render.shot_distance": "Distanță",
"render.shot_dof": "Adâncime de câmp",
"render.shot_duplicate": "Duplică cadrul salvat",
"render.shot_edit_output": "Editează în Ieșire",
"render.shot_exposure_reason": "Expunerea necesită ray tracing pe CPU sau path tracing pe GPU.",
"render.shot_exposure_section": "Expunere",
"render.shot_focus_distance": "Distanța de focalizare",
"render.shot_fov_reason": "Câmpul vizual necesită proiecție în perspectivă.",
"render.shot_frame_subject": "Încadrează subiectul",
"render.shot_invalid_camera": "Valorile camerei trebuie să fie finite și în intervalul permis.",
"render.shot_lens": "Obiectiv",
"render.shot_lens_enable_reason": "Activați adâncimea de câmp pentru a edita diafragma și distanța de focalizare.",
"render.shot_lens_gpu_reason": "Adâncimea de câmp necesită path tracing pe GPU.",
"render.shot_lens_perspective_reason": "Adâncimea de câmp necesită proiecție în perspectivă.",
"render.shot_look_selection": "Privește spre selecție",
"render.shot_manager": "Cadre salvate",
"render.shot_new_name": "Numele noului cadru",
"render.shot_remove": "Elimină cadrul salvat",
@@ -2775,6 +3111,9 @@
"render.shot_remove_title": "Eliminați cadrul salvat?",
"render.shot_rename": "Redenumește cadrul salvat",
"render.shot_saved_only": "Salvați mai întâi ciorna curentă. Duplicarea și redenumirea păstrează exact opțiunile salvate și referințele la resurse.",
"render.shot_selection_reason": "Selectați un corp sau o față spre care să țintiți.",
"render.shot_size": "Dimensiune",
"render.shot_target": "Țintă",
"render.shots_camera_changed": "Camera s-a schimbat de când a fost salvat acest cadru",
"render.shots_name_help": "Introduceți un nume unic pentru cadrul curent.",
"render.shots_no_result": "Nicio randare încă",
@@ -2997,6 +3336,13 @@
"render.wait_pick_up": "încă neacceptat: selectarea produsului și preluarea aspectului",
"render.wait_replace": "încă neacceptat: înlocuirea tuturor utilizărilor unui aspect",
"render.wait_solo": "încă neacceptat: vizibilitatea luminilor și comenzile solo",
"render.wear_applies_to": "Se aplică la",
"render.wear_layer_count": "{count} straturi",
"render.wear_layer_one": "{count} strat",
"render.wear_layers": "Straturi",
"render.wear_no_layers": "Niciun strat",
"render.wear_selected_layer": "Stratul selectat",
"render.wear_title": "Uzură",
"sample.bracket.about": "Flanșă de bază cu flanșe pe margini și o pliere de margine, cu regulă de 2 mm",
"sample.bracket.name": "Suport din tablă",
"sample.enclosure.about": "Cutie scobită cu buză, bosaje pentru șuruburi, un reazem și o prindere cu clichet",
@@ -3030,6 +3376,7 @@
"select an axis": "selectați o axă",
"select an axis, a straight or circular edge, or a cylinder, cone or torus face first": "selectați mai întâi o axă, o muchie dreaptă sau circulară ori o față de cilindru, de con sau de tor",
"select bodies first": "selectați mai întâi corpurile",
"select components first": "selectați mai întâi componentele",
"select corner points, or the two lines of one corner": "selectați punctele colțurilor sau cele două linii ale unui colț",
"select one corner point, or the two lines of one corner": "selectați un punct de colț sau cele două linii ale unui colț",
"select sheet edges first": "selectați mai întâi muchiile tablei",
@@ -3048,6 +3395,7 @@
"settings.double_click_components": "Faceți dublu clic pe o componentă pentru a o activa sau pentru a edita pe loc una legată",
"settings.frame_rate_details_note": "Adaugă un grafic cu timpii ultimelor cadre, cu triunghiurile desenate deasupra, o histogramă a timpilor de cadru și ce a desenat GPU-ul. Faceți clic pe rata de cadre din vizualizare pentru a le afișa sau a le ascunde.",
"settings.frame_rate_note": "Afișează cadrele pe secundă în colțul din dreapta jos al vizualizării.",
"settings.insert_lists_open_designs": "Inserează proiect listează mai întâi proiectele deschise în alte file",
"settings.measure_axis_distances": "Afișează distanțele X/Y/Z",
"settings.measure_axis_distances_help": "Afișează cotele pe axele globale alături de distanța totală cât timp Măsurare este deschis.",
"settings.msaa_applies_on_restart": "Anti-aliasing se aplică la următoarea pornire a SolidCraft",
@@ -3072,6 +3420,10 @@
"shortcut.unpin": "Defixează",
"sketch is missing": "schița lipsește",
"sketch.degrees_of_freedom": "{count} grade de libertate",
"sketch.dimension_added_driven": "Schița determină deja acea cotă, așa că a fost adăugată ca o cotă condusă (de referință)",
"sketch.dimension_applied": "Cotă aplicată",
"sketch.dimension_applied_defined": "Cotă aplicată; parametrul `{name}` a fost definit",
"sketch.dimension_applied_renamed": "Cotă aplicată; parametrul a fost numit `{name}`",
"sketch.dof_left": "{count} grade de libertate rămase",
"sketch.dof_left_one": "{count} grad de libertate rămas",
"sketch.draw_curves": "Desenează ca {linetype}",
@@ -3106,6 +3458,8 @@
"sketch_text.use_font_file": "Folosește fișierul de font {path}",
"solid": "solid",
"status.editing": "Se editează {name}",
"status.navigation": "Mapare mouse: {mapping}",
"status.navigation_tip": "Cum mișcă mouse-ul vizualizarea. Faceți clic pentru a alege altă mapare",
"status.under_constrained": "Constrângeri insuficiente ({count} grade de libertate)",
"status.under_constrained_one": "Constrângeri insuficiente ({count} grad de libertate)",
"status.units_tip": "Unitățile proiectului. Faceți clic pentru a le schimba",
@@ -3139,8 +3493,10 @@
"timeline.delete_folders_tip": "Păstrează operațiile și dosarele imbricate în istoric",
"timeline.delete_folders_with_features_tip": "Șterge dosarele cu toate operațiile din ele și dosarele lor imbricate",
"timeline.delete_many": "Șterge operațiile selectate ({count})",
"timeline.edited_rolled_back": "{name} s-a modificat, dar se află după marcajul de istoric, deci nu este calculat: mutați marcajul după el pentru a vedea rezultatul",
"timeline.feature_error": "Eroare: {message}",
"timeline.feature_hint": "Dublu clic pentru a edita · trageți pentru a reordona · clic dreapta pentru mai multe",
"timeline.feature_rolled_back": "Derulat înapoi: după marcajul de istoric, deci necalculat",
"timeline.feature_warning": "Avertisment: {message}",
"timeline.group": "Dosar nou de operații",
"timeline.move_many": "Mută elementele cronologiei",
@@ -3220,6 +3576,10 @@
"ui.3d_mouse_offer": "Calibrarea mouse-ului 3D corectează axele inversate sau schimbate între ele și îi reglează viteza și senzația.",
"ui.3d_mouse_offer_never": "Nu mai afișa",
"ui.3d_mouse_offer_swap": "Treci la Hidraw (driver direct)",
"ui.3d_mouse_orbit": "Orbitare",
"ui.3d_mouse_orbit_classic": "Clasic",
"ui.3d_mouse_orbit_tip": "Pe model: mouse-ul 3D rotește vizualizarea în jurul părții modelului aflate în mijlocul vizualizării când începe rotirea, marcată de o bilă discretă. Clasic: în jurul centrului vizualizării",
"ui.3d_mouse_orbit_traced": "Pe model",
"ui.3d_mouse_reading": "Valoare citită",
"ui.3d_mouse_reset_axes": "Resetează atribuirea axelor",
"ui.3d_mouse_reset_view": "Resetează vizualizarea",
@@ -3604,6 +3964,7 @@
"ui.constant": "Constant",
"ui.constraints_conflict": "Conflict de constrângeri",
"ui.construction": "Construcție",
"ui.construction.ribbon_label": "Linii aux.",
"ui.context_menu": "Meniu contextual",
"ui.continuity_g0": "Muchie G0",
"ui.continuity_g1": "Tangent G1",
@@ -3695,6 +4056,14 @@
"ui.end_scale": "Scară finală",
"ui.entities": "Entități",
"ui.equal": "Egal",
"ui.equation_end": "Sfârșit",
"ui.equation_explicit": "Explicită",
"ui.equation_form": "Formă",
"ui.equation_note": "Variabila este un număr simplu: sin(t) o primește în radiani. Un rezultat fără unitate este în unitatea proiectului.",
"ui.equation_parametric": "Parametrică",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Rază echivalentă",
"ui.expand": "Extinde",
"ui.exportDxf": "Exportă DXF…",
@@ -3760,6 +4129,7 @@
"ui.heading_design": "PROIECT",
"ui.heading_draft": "ÎNCLINARE",
"ui.heading_edit": "EDITARE",
"ui.heading_equation_curve": "CURBĂ DIN ECUAȚIE",
"ui.heading_extrude": "EXTRUDARE",
"ui.heading_fillet": "RACORDARE",
"ui.heading_finish_editing": "FINALIZARE EDITARE",
@@ -3851,6 +4221,10 @@
"ui.import_ellipsis": "Importă…",
"ui.infinite": "Infinit",
"ui.insert": "Inserează",
"ui.insert_design.browse": "Răsfoiește…",
"ui.insert_design.open_designs": "Proiecte deschise",
"ui.insert_design.saved_file": "{name} are modificări nesalvate, așa că a fost inserat fișierul său salvat. Salvați-l, apoi folosiți Actualizează legăturile pentru a aduce modificările.",
"ui.insert_design.unsaved": "Modificări nesalvate",
"ui.inspect": "Inspectează",
"ui.intersect": "Intersecție",
"ui.isolate": "Izolează",
@@ -4000,6 +4374,18 @@
"ui.project": "Proiectează",
"ui.project_face_edges_sketch": "Proiectează muchiile feței în schițe noi",
"ui.properties": "Proprietăți",
"ui.properties.copy_matrix": "Copiază matricea",
"ui.properties.first_moments": "Momente de ordinul întâi",
"ui.properties.inertia": "Moment de inerție",
"ui.properties.inertia_note": "Față de centrul de masă, în axele lumii (g·{unit}²)",
"ui.properties.inertia_unavailable": "Indisponibil: plasa unui corp nu este închisă.",
"ui.properties.inertia_x": "Ixx, Ixy, Ixz",
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Se măsoară…",
"ui.properties.measuring_failed": "Măsurarea s-a oprit înainte de a se termina.",
"ui.properties.principal_axis": "Axa principală {number}",
"ui.properties.principal_moments": "Momente principale",
"ui.pull_direction": "Direcția de extragere",
"ui.quality": "Calitate",
"ui.quantity": "Cantitate",
@@ -4062,6 +4448,7 @@
"ui.select": "Selectează",
"ui.selectOther": "Selectează altul…",
"ui.selectTangentChain": "Selectează lanțul tangent",
"ui.select_all": "Selectează tot",
"ui.selection": "Selecție",
"ui.selection_modifiers": "Modificatori de selecție",
"ui.selection_shift_add_only": "Shift+clic adaugă fără a elimina",
@@ -4098,7 +4485,11 @@
"ui.sketch": "Schiță",
"ui.sketch_dimension": "Cota schiței",
"ui.sketch_grid": "Grila schiței",
"ui.sketch_intersect_geometry": "Geometrie",
"ui.sketch_intersect_projection_link": "Legătură de proiecție",
"ui.sketch_intersect_selection_filter": "Filtru de selecție",
"ui.sketch_modifiers": "Modificatori de schiță",
"ui.sketch_project_geometry": "Geometrie",
"ui.sketch_scale": "Scara schiței",
"ui.sketches": "Schițe",
"ui.slice": "Felie",
@@ -4149,6 +4540,7 @@
"ui.tab_manage": "Gestionare",
"ui.tab_sheet_metal": "Tablă",
"ui.tab_view": "Vizualizare",
"ui.tab_weldments": "Sudură",
"ui.tangent": "Tangent",
"ui.taper_angle": "Unghi de conicitate",
"ui.tapped": "Filetat",
@@ -4164,6 +4556,7 @@
"ui.tip_angle": "Unghiul vârfului",
"ui.to_object": "Până la obiect",
"ui.tool_direction": "Direcția sculei",
"ui.toolbar_tabs_hidden": "Toate filele barei de instrumente sunt ascunse. Faceți clic pe + sau clic dreapta aici pentru a afișa una.",
"ui.top": "Sus",
"ui.top_diameter": "Diametru superior",
"ui.top_radius": "Rază superioară",
@@ -4210,6 +4603,7 @@
"ui.visual_shaded_with_edges": "Umbrit cu muchii",
"ui.visual_style": "Stil vizual",
"ui.visual_wireframe": "Cadru de sârmă",
"ui.wheel_zoom_speed": "Viteza de zoom a rotiței mouse-ului",
"ui.width": "Lățime",
"ui.window_system": "Sistem de ferestre",
"ui.window_system_auto": "Automat",
@@ -4261,6 +4655,9 @@
"update.prefs_label": "Actualizări",
"update.prefs_note": "Aceasta este SolidCraft {version} ({kind}). O verificare cere GitHub ultima versiune și nu trimite nimic altceva.",
"update.prefs_web": "Reîncărcați pagina pentru a obține cea mai recentă aplicație web. Dacă rețeaua nu este disponibilă sau actualizarea nu poate termina descărcarea la timp, se deschide versiunea salvată; o descărcare în curs continuă pentru următoarea reîncărcare.",
"update.refresh_checking": "Se caută cea mai nouă versiune…",
"update.refresh_fallback": "Nu s-a putut verifica dacă există o versiune mai nouă; se actualizează la {version}, găsită anterior.",
"update.refresh_selected": "Se actualizează la {version}.",
"update.release_page": "Deschide pagina versiunii",
"update.restart": "Repornește acum",
"update.restart_later": "Mai târziu",
File diff suppressed because it is too large Load Diff
+395
View File
@@ -206,6 +206,7 @@
"Edges": "Ивице",
"Edit": "Измени",
"Edit Profile Sketch": "Измени скицу профила",
"Edit shortcuts": "Измени пречице",
"Enable rule": "Омогући правило",
"Enabled": "Омогућено",
"End Radius": "Крајњи полупречник",
@@ -468,6 +469,7 @@
"Radius": "Полупречник",
"Radius Fit": "Уклапање полупречника",
"Ratio": "Однос",
"Read-only list: shortcuts can't be changed here.": "Списак само за читање: пречице се овде не могу мењати.",
"Reattach selected face": "Поново причврсти изабрано лице",
"Recover": "Опорави",
"Recover unsaved design?": "Опоравити несачувани дизајн?",
@@ -652,6 +654,7 @@
"Third point": "Трећа тачка",
"This child is shared. Deleting it removes it from every copy of its parent.": "Овај подређени елемент је дељен. Брисањем се уклања из сваке копије његовог родитеља.",
"This child is shared. Position changes apply to every copy of its parent.": "Овај подређени елемент је дељен. Промене положаја примењују се на сваку копију његовог родитеља.",
"This component is inside a subassembly placed more than once: aligning it moves it in every placement.": "Ова компонента је унутар подсклопа који је постављен више пута: њено поравнање је помера у сваком постављању.",
"This face cannot provide a durable attachment. Choose another face or explicitly use a fixed plane.": "Ово лице не може дати трајно причвршћење. Изаберите друго лице или изричито користите фиксну раван.",
"This image is not attached to GitHub yet. Copy or save it, then attach it on GitHub.": "Ова слика још није приложена на GitHub-у. Копирајте је или сачувајте, а затим је приложите на GitHub-у.",
"Thread depth": "Дубина навоја",
@@ -793,6 +796,11 @@
"cam.roller": "Ваљак",
"cam.roller_pick": "Ваљак (необавезно)",
"cam.tip_pick": "Врх (необавезно)",
"camera.shot_pitch": "Нагиб",
"camera.shot_roll": "Ваљање",
"camera.shot_yaw": "Скретање",
"canvas.decal_place_hint": "Кликните лице да поставите налепницу",
"canvas.place_hint": "Кликните раван или лице да поставите платно",
"choose a profile": "изаберите профил",
"choose the cam's and the follower's joints": "изаберите спојеве брега и пратиоца",
"choose the joints to couple": "изаберите спојеве за спрезање",
@@ -800,9 +808,12 @@
"click sketch curves": "кликните на криве скице",
"cmd.appearance_assign": "Изглед",
"cmd.appearance_chain": "Ланац изгледа",
"cmd.appearance_copy": "Копирај изглед",
"cmd.appearance_favorite": "Омиљени изглед",
"cmd.appearance_library": "Библиотека изгледа",
"cmd.appearance_list": "Списак изгледа",
"cmd.appearance_paint": "Обоји изгледом",
"cmd.appearance_paste": "Налепи изглед",
"cmd.appearance_pick_up": "Преузми изглед",
"cmd.appearance_replace": "Замени изглед",
"cmd.assembly_bom": "Саставница",
@@ -813,6 +824,7 @@
"cmd.browser_move": "Премести ставке стабла модела",
"cmd.browser_order": "Поређај ставке стабла модела",
"cmd.browser_rename_group": "Преименуј групу",
"cmd.browser_reparent": "Премести у компоненту",
"cmd.browser_ungroup": "Разгрупиши",
"cmd.browser_visibility": "Прикажи/сакриј",
"cmd.canvas_calibrate": "Калибриши платно",
@@ -839,7 +851,9 @@
"cmd.component_metadata": "Својства дела",
"cmd.component_metadata_set": "Промени својства дела",
"cmd.component_move_bodies": "Премести тела у компоненту",
"cmd.component_move_features": "Премести операције у компоненту",
"cmd.component_move_sketches": "Премести скице у компоненту",
"cmd.component_paste_from_design": "Налепи из другог дизајна",
"cmd.component_paste_new": "Налепи као ново",
"cmd.component_properties": "Физичка својства компоненте",
"cmd.component_relink": "Поново повежи извор",
@@ -976,6 +990,7 @@
"cmd.motion_trace": "Траг кретања",
"cmd.motion_trace_edit": "Измени траг кретања",
"cmd.motion_trace_keep": "Задржи траг кретања",
"cmd.occurrence_align": "Поравнај примерак",
"cmd.occurrence_copy": "Налепи (примерак)",
"cmd.occurrence_drag": "Превуци примерак",
"cmd.occurrence_ground": "Учврсти",
@@ -1033,11 +1048,17 @@
"cmd.render_library_surface_unbind": "Уклони везу површине",
"cmd.render_library_targets": "Пронађи циљеве библиотеке рендеровања",
"cmd.render_lights_add": "Додај светло",
"cmd.render_lights_duplicate": "Дуплицирај светло рендеровања",
"cmd.render_lights_list": "Списак светала рендеровања",
"cmd.render_lights_mute": "Искључи светло",
"cmd.render_lights_remove": "Уклони светло рендеровања",
"cmd.render_lights_set": "Подеси светло рендеровања",
"cmd.render_lights_solo": "Само ово светло",
"cmd.render_optics_bind": "Сачувај оптичку везу",
"cmd.render_optics_unbind": "Уклони оптичку везу",
"cmd.render_output_size": "Подеси величину излаза рендеровања",
"cmd.render_preflight": "Провери захтев за рендеровање",
"cmd.render_preflight_copy": "Копирај извештај провере рендеровања",
"cmd.render_preset_apply": "Примени изворни студио",
"cmd.render_preset_resolve": "Прегледај изворни студио",
"cmd.render_quality_prepare": "Прегледај фиксни буџет узорковања",
@@ -1060,6 +1081,13 @@
"cmd.render_start": "Рендеруј слику",
"cmd.render_status": "Напредак рендеровања",
"cmd.select_clear": "Поништи избор",
"cmd.settings_profile_apply": "Примени профил подешавања",
"cmd.settings_profile_delete": "Избриши профил подешавања",
"cmd.settings_profile_export": "Извези профил подешавања",
"cmd.settings_profile_import": "Увези профил подешавања",
"cmd.settings_profile_list": "Профили подешавања",
"cmd.settings_profile_rename": "Преименуј профил подешавања",
"cmd.settings_profile_save": "Сачувај профил подешавања",
"cmd.sheet_convert": "Претвори у лим",
"cmd.sheet_export_bend_table": "Извези табелу савијања",
"cmd.sheet_export_dxf": "Извези развијени облик као DXF",
@@ -1073,6 +1101,16 @@
"cmd.sheet_refold": "Поново пресавиј",
"cmd.sheet_rules": "Списак правила за лим",
"cmd.sheet_unfold": "Развиј",
"cmd.sketch.construction_line": "Помоћна права",
"cmd.sketch.construction_line.angle": "Помоћна права под углом",
"cmd.sketch.construction_line.bisector": "Симетрала угла",
"cmd.sketch.construction_line.horizontal": "Хоризонтална помоћна права",
"cmd.sketch.construction_line.parallel": "Паралелна помоћна права",
"cmd.sketch.construction_line.perpendicular": "Нормална помоћна права",
"cmd.sketch.construction_line.tangent_at": "Тангента у тачки криве",
"cmd.sketch.construction_line.tangent_external": "Тангента кроз спољашњу тачку",
"cmd.sketch.construction_line.tangent_two": "Заједничка тангента",
"cmd.sketch.construction_line.vertical": "Вертикална помоћна права",
"cmd.sketch_arc3d": "3D лук",
"cmd.sketch_arc_center_point": "Лук из центра",
"cmd.sketch_arc_tangent": "Тангентни лук",
@@ -1105,6 +1143,8 @@
"cmd.sketch_drawing_bounds": "Величина цртежа",
"cmd.sketch_edit": "Измени скицу",
"cmd.sketch_edit_text": "Измени текст",
"cmd.sketch_equation_curve": "Крива по једначини",
"cmd.sketch_equation_curve_edit": "Измени криву по једначини",
"cmd.sketch_export_dxf": "Сачувај као DXF",
"cmd.sketch_finish_auto_constrain": "Заврши са аутоматским ограничењима",
"cmd.sketch_fit_curves_to_section": "Уклопи криве у пресек мреже",
@@ -1201,6 +1241,7 @@
"cmd.view.render_browser": "Стабло рендеровања",
"cmd.view.render_dock": "Премести панел рендеровања",
"cmd.view.render_focus": "Фокусни приказ рендеровања",
"cmd.view.status_items": "Ставке статуса у прозору приказа",
"cmd.view_ambient_occlusion": "Амбијентална оклузија",
"cmd.view_angle_readout": "Углови приказа",
"cmd.view_apply": "Врати именовани приказ",
@@ -1222,6 +1263,7 @@
"cmd.view_normal_to": "Нормално на избор",
"cmd.view_previous_tab": "Претходна картица",
"cmd.view_rename": "Преименуј именовани приказ",
"cmd.view_render_frame": "Водичи кадра рендеровања",
"cmd.view_right": "Поглед здесна",
"cmd.view_save": "Нови именовани приказ",
"cmd.view_shots_strip": "Трака кадрова",
@@ -1232,10 +1274,14 @@
"color.copy": "Кликните да копирате вредности боје",
"color.edit": "Кликните да измените боју",
"color.gamma": "Приказ вредности боје у гама простору 0-255",
"color.hex": "Hex",
"color.hex_help": "Унесите #rrggbb или #rrggbbaa; шест цифара чува непрозирност",
"color.hex_hint": "#rrggbb",
"color.hue": "Нијанса",
"color.linear": "Приказ вредности боје у линеарном простору 0-1",
"color.saturation_value": "Засићеност и вредност",
"color.selected": "Изабрана боја",
"config.column_filter_empty": "Нема одговарајућих колона",
"contact.components_count": "Компоненте: {count}",
"contact.enabled_label": "омогућено",
"coupling.gear_1": "Зупчаник 1",
@@ -1350,8 +1396,10 @@
"help.material.assign": "Одређује од чега су изабрана тела направљена, нпр. челик, алуминијум или ABS. Користите га да маса и тежина одговарају стварном делу.",
"help.mit": "MIT лиценца",
"help.notice": "NOTICE",
"help.occurrence.move": "Помера део склопа само дуж слобода које дозвољавају његови спојеви. Изаберите лице дела, а затим превуците доступну стрелицу или лук.",
"help.parameters.change": "Отвара табелу именованих вредности и израза који управљају котама дизајна. Користите је да промените меру на једном месту, а све операције које је користе је прате.",
"help.pointcloud.insert": "Уметните PLY, XYZ или PTS скенирање као облак тачака поред модела. Користите га као референцу при изради модела на основу измерених података.",
"help.sketch.equation_curve": "Црта криву из формула: x(t) и y(t), или y = f(x), у задатом опсегу. Формуле могу да користе параметре и крива их прати: користите је за синусоиду, спиралу или евольвенту зупца зупчаника.",
"help.solid.align": "Помера изабрана тела тако да се тачка, лице или раван на њима поклопи са тачком, лицем или равни негде другде. Користите га да поставите део уз други без мерења одмака.",
"help.solid.chamfer": "Одсеца изабране ивице равним скошењем задатог растојања. Користите га да ублажите оштре ивице или олакшате увођење чивије или завртња.",
"help.solid.combine": "Спаја тела, одузима их од циљног тела или задржава само заједничку запремину, а може да задржи и алатна тела. Користите га да спојите делове, да једним обликом одсечете други или да пронађете где се два тела преклапају.",
@@ -1480,6 +1528,21 @@
"joint.one_component": "Ови делови су тела једне компоненте: {bodies}. Спој помера једну компоненту у односу на другу, па сваки део треба своју компоненту.",
"joint.rigid_group_one_component": "Сва тела ({count}) су у једној компоненти (или у самом дизајну): прво користите {command}.",
"joint.rigid_group_select_components": "Изаберите две или више компоненти.",
"joint_move.blocked_hint": "Проверите врсту споја (на пример Круто), учвршћивање, границе споја и вредности које покрећу параметри.",
"joint_move.blocked_title": "Овај део се не може померити",
"joint_move.coarse": "Корак ротације близу осе (°)",
"joint_move.distance": "Растојање од почетка",
"joint_move.done": "Готово",
"joint_move.fine": "Корак ротације далеко од осе (°)",
"joint_move.fixed": "Овај део нема покретну осу споја.",
"joint_move.help": "Помери — превуците стрелицу или прстен. Esc отказује тренутно превлачење.",
"joint_move.legacy_hint": "Искључите да бисте користили претходни панел Помери.",
"joint_move.precision": "Повуците изван испрекиданог водича за фину ротацију.",
"joint_move.rotation": "Ротација од почетка",
"joint_move.select": "Изаберите лице или један део склопа, а затим изаберите Помери.",
"joint_move.settings": "Померање у склопу",
"joint_move.step": "Корак",
"joint_move.use_handles": "Користи ручице кретања спојева за померање у склопу",
"keymap.command_id": "ID команде",
"keymap.empty": "Нема одговарајућих команди",
"keymap.use_anyway": "Ипак користи {key} овде",
@@ -1574,6 +1637,8 @@
"nav.maya.help": "Alt+превлачење левим орбитира, Alt+средњи помера, Alt+десни зумира; превлачење средњим такође помера",
"nav.openscad.help": "Превлачење левим дугметом по празном простору орбитира, Shift+превлачење левим бира оквиром, превлачење геометрије скице је мења; превлачење десним или средњим дугметом помера, Shift+десно или Shift+средње зумира",
"nav.perspective.sketch": "Измена скице користи ортографски приказ. Завршите скицу да пребаците на перспективу.",
"nav.right_drag_orbits.help": "Искључено: превлачење десним дугметом не дира камеру, а десно дугме само отвара контекстни мени. Избор SolidWorks мапирања миша га искључује.",
"nav.right_drag_orbits.label": "Превлачење десним дугметом орбитира",
"nav.solidworks.help": "Превлачење средњим дугметом орбитира, Ctrl+средње помера, Shift+средње зумира, превлачење десним орбитира",
"nav.tinkercad.help": "Превлачење десним дугметом орбитира, превлачење средњим или Shift+десним помера",
"nav.touchpad.help": "Држите Shift и померајте показивач за померање приказа; држите Alt/Option и померајте га за орбитирање. Дугме миша није потребно. Вертикално скроловање зумира.",
@@ -1595,6 +1660,9 @@
"navbar.custom.customise": "Прилагоди навигациону траку…",
"navbar.custom.design": "Дизајн",
"navbar.custom.duplicate": "Ово место је већ на траци.",
"navbar.custom.edge": "Ивица",
"navbar.custom.edge_bottom": "Доле",
"navbar.custom.edge_top": "Горе",
"navbar.custom.fade": "Избледи",
"navbar.custom.full": "Уклоните једно место да бисте додали друго.",
"navbar.custom.hidden_design": "Скривено у Дизајну",
@@ -1701,6 +1769,7 @@
"parts.dimension.thickness": "Дебљина",
"parts.dimension.width": "Ширина",
"parts.family.bearing": "Куглични лежај са дубоким жлебом (габарит)",
"parts.family.button_head_cap_screw": "Завртањ са полуоблом главом и унутрашњим шестоугаоником",
"parts.family.dowel_pin": "Паралелни клин (колчић)",
"parts.family.hex_bolt": "Завртањ са шестоугаоном главом",
"parts.family.hex_nut": "Шестоугаона навртка",
@@ -1759,6 +1828,9 @@
"prefs.bottom_centre": "Доле у средини",
"prefs.bottom_right": "Доле десно",
"prefs.browser": "Стабло модела",
"prefs.browser_reveal_on_hover": "Прикажи при преласку мишем",
"prefs.browser_show_note": "Приказано држи стабло модела на екрану. Прикажи при преласку мишем га скрива док показивач не дође на његово место или на танак језичак на његовој левој ивици, а остаје отворено док је показивач у њему или док је отворен мени из њега.",
"prefs.browser_shown": "Приказано",
"prefs.built_in": "Уграђено",
"prefs.button_left": "Превлачење левим дугметом",
"prefs.button_middle": "Превлачење средњим дугметом",
@@ -1829,6 +1901,8 @@
"prefs.layout_note": "Компактно причвршћује панеле уз ивице прозора. Провидност стабла модела доступна је у опцији Плутајуће. Страну Асистента промените на страници Асистент.",
"prefs.left": "Лево",
"prefs.left_click": "Леви клик",
"prefs.line_drag_draws_one": "Притисак и превлачење цртају једну линију",
"prefs.line_drag_draws_one_note": "У алату Линија, притисак, превлачење и пуштање цртају једну линију од места притиска до места пуштања и ту се завршава. Кликови и даље цртају ланац. Искључено: превлачење поставља тачку где се пусти, као и клик.",
"prefs.linked_designs": "Повезани дизајни",
"prefs.live_input": "Улаз уживо",
"prefs.live_preview": "Преглед уживо",
@@ -1861,14 +1935,36 @@
"prefs.origin_plane_names": "Називи равни исходишта",
"prefs.origin_plane_names_note": "Називи приказани у стаблу модела, дијалозима и листама. {top} је XY, {front} је XZ, а {right} је YZ, са Z нагоре. Команде, скрипте и сачувани дизајни задржавају XY, XZ и YZ.",
"prefs.overall_speed": "Укупна брзина",
"prefs.perspective_fov": "Видно поље",
"prefs.placement": "Постављање",
"prefs.prefer_free_sketch_points": "Дај предност покретним тачкама скице када се тачке преклапају",
"prefs.preview_choices": "Преглед ваших избора",
"prefs.profile_active": "Активни профил",
"prefs.profile_applied": "Профил је примењен.",
"prefs.profile_changed": "Подешавања су промењена откако је профил сачуван. Притисните Сачувај да их задржите у њему.",
"prefs.profile_deleted": "Профил је избрисан.",
"prefs.profile_export": "Извези…",
"prefs.profile_exported": "Профил је извезен.",
"prefs.profile_imported": "Профил је увезен. Изаберите га под Активни профил да бисте прешли на њега.",
"prefs.profile_name_hint": "Назив профила, нпр. Лаптоп",
"prefs.profile_rename": "Преименуј",
"prefs.profile_renamed": "Профил је преименован.",
"prefs.profile_save": "Сачувај",
"prefs.profile_saved": "Тренутна подешавања су сачувана у профил.",
"prefs.profile_skipped": "Профил је примењен; подешавања која су задржала тренутну вредност: {n} (погледајте дневник).",
"prefs.profiles": "Профили подешавања",
"prefs.profiles_note": "Пречице, трака са алатима, навигација, радијални мени и подешавања интерфејса, чувани заједно под једним називом и мењани одједном.",
"prefs.project_options_dialog": "Дијалог опција за Пројектуј",
"prefs.project_options_dialog_note": "Укључено: пре пројектовања изаберите Геометрија или Тела и Веза пројекције. Искључено: задржава се претходни начин рада са директним избором.",
"prefs.quality_default": "подразумевано",
"prefs.quality_fastest": "најбрже",
"prefs.quality_slowest": "најспорије",
"prefs.quality_smoother": "глађе",
"prefs.render_previous_geometry_budget": "Користи претходни буџет геометрије за преглед у Рендеровању",
"prefs.render_previous_geometry_budget_help": "Враћа претходно фиксно ограничење геометрије (512 MiB на 64-битним десктоп рачунарима, 128 MiB другде) уместо буџета према уређају.",
"prefs.reports_saved": "Сачувано: {n}",
"prefs.ribbon_reveal": "Прикажи резултате претраге на траци",
"prefs.ribbon_reveal_note": "Задржавање показивача изнад резултата у Претражи команде показује где се команда налази на траци: њену картицу, њено дугме или њен ред у падајућем менију панела. Команда покренута из претраге тамо трепери, а покренута команда из падајућег менија означава свој панел.",
"prefs.right_click": "Десни клик",
"prefs.saving": "Аутоматско чување и опоравак",
"prefs.scale_note": "Такође Ctrl + / Ctrl − у прозору. Дугмад су 28 px при 100%.",
@@ -1882,6 +1978,10 @@
"prefs.shift_add_ctrl_toggle": "Shift само додаје; Ctrl / Cmd укључује и искључује",
"prefs.shift_add_note": "Укључено: Shift додаје, Ctrl / Cmd укључује и искључује. Искључено (подразумевано): оба укључују и искључују.",
"prefs.shortcuts": "Пречице",
"prefs.single_surface_analysis": "Користи само једну анализу површи",
"prefs.single_surface_analysis_help": "Када је искључено, сенчење површи и Континуитет могу остати укључени заједно. Када је укључено, остаје последња покренута или промењена анализа.",
"prefs.sketch_align_points": "Поравнај са другим тачкама скице током цртања",
"prefs.sketch_align_points_note": "Током цртања тачка се истовремено поравнава хоризонтално са једном тачком скице и вертикално са другом, уз тачкасти водич, а клик задржава оба поравнања. Искључено: само са претходном тачком, по једна оса.",
"prefs.sketch_conflict_colour": "Геометрија у сукобу у боји сукоба",
"prefs.sketch_conflict_colour_note": "Док су ограничења скице у сукобу, криве и тачке које држи ограничење које не успева исцртавају се такође у боји сукоба, а не само његов симбол или кота. Искључено: задржавају уобичајене боје.",
"prefs.sketch_exit_view": "Када се скица заврши",
@@ -1889,6 +1989,8 @@
"prefs.sketch_exit_view.previous": "Врати се на претходни приказ",
"prefs.sketch_exit_view.unless_rotated": "Врати се осим ако је ротирано",
"prefs.sketch_exit_view_note": "Куда приказ иде након Заврши скицу, Откажи или двоструког Esc.",
"prefs.sketch_recent_snap": "Аутоматски привлачи на недавне центре и средишње тачке",
"prefs.sketch_recent_snap_note": "Током цртања показивач се привлачи тамо где се секу водичи двају последњих центара кругова или средишњих тачака правих ивица. Искључено: ти водичи служе само за приказ и показивач се не помера.",
"prefs.sketch_selection": "Скица и избор",
"prefs.sketch_selection_heading": "Скица и избор",
"prefs.sketch_selection_note": "Како се скице привлаче и како кликови бирају.",
@@ -1933,7 +2035,14 @@
"prefs.toast_place": "Обавештења",
"prefs.toggle_item": "Додај ставку или је поново уклони",
"prefs.toolbar": "Трака са алатима",
"prefs.toolbar_tabs": "Картице траке са алатима",
"prefs.top": "Горе",
"prefs.trackpad_zoom_modifier": "Зумирај скроловањем са два прста док држите",
"prefs.trackpad_zoom_modifier.alt": "⌥ / Alt",
"prefs.trackpad_zoom_modifier.cmd": "⌘",
"prefs.trackpad_zoom_modifier.ctrl": "Ctrl",
"prefs.trackpad_zoom_modifier.help": "Држите само овај тастер да зумирате према показивачу вертикалним скроловањем. Искључено задржава постојеће понашање скроловања.",
"prefs.trackpad_zoom_modifier.off": "Искључено",
"prefs.translucent": "Провидно",
"prefs.under_browser": "Испод стабла модела",
"prefs.under_cursor": "Испод показивача",
@@ -1943,9 +2052,14 @@
"prefs.view_confirm_corner": "У реду и Откажи у углу приказа",
"prefs.view_confirm_corner_note": "Док је отворен дијалог или скица, квачица и крстић горе десно у приказу раде исто што и дугмад У реду и Откажи у дијалогу, односно завршавају и отказују скицу. Навигатор приказа помера се испод њих.",
"prefs.viewport": "Прозор приказа",
"prefs.viewport_background": "Позадина",
"prefs.viewport_background_colour": "Боја",
"prefs.viewport_background_theme": "Градијент теме",
"prefs.wheel": "Точкић",
"prefs.wheel_trackpad": "Точкић и додирна табла",
"prefs.workspace": "Радни простор",
"prefs.zoom_stop_at_model": "Заустави зумирање на моделу",
"prefs.zoom_stop_at_model_tip": "3D миш и апликација уређаја зумирају према површини у средини приказа; зумирање превлачењем држи тачку где је превлачење почело. Искључено: зумирање може да прође кроз модел. Точкић и штипање засебно користе Зумирање према показивачу",
"prefs.zoom_toward_cursor": "Зумирање према показивачу",
"properties.title": "Својства: {name}",
"recovery.days_ago": "пре {count} дана",
@@ -2034,6 +2148,7 @@
"render.appearance_editor.weight": "Тежина",
"render.appearance_physics_separate": "Визуелни изглед не додељује густину, топлотне податке нити друга инжењерска својства.",
"render.appearances": "Изгледи",
"render.assign_help": "Кликните да примените на избор; превуците за преглед и пустите, или кликните без избора да бојите.",
"render.availability_native": "Изворни састав; прегледајте пре примене",
"render.availability_projection": "Подржана пројекција; погледајте опсег и изоставке",
"render.availability_reference": "Референтни подаци; није аутоматска додела",
@@ -2072,6 +2187,7 @@
"render.bloom_threshold": "Праг линеарних светлих делова",
"render.browse_capabilities": "Прегледај комплетан каталог могућности",
"render.browse_environments": "Прегледај изворна HDR окружења",
"render.browse_looks": "Прегледај…",
"render.browse_native_scenes": "Прегледај изворне студије",
"render.browse_physical": "Прегледај физичке референце",
"render.browse_quality": "Прегледај спецификације квалитета",
@@ -2095,6 +2211,82 @@
"render.check_opaque": "Провидност: само непрозирне површине; алфа позадине је подржана.",
"render.check_sorted_alpha": "Провидност: апроксимација сортираном алфом.",
"render.check_transmission": "Провидност: физичко пропуштање.",
"render.children.absolute_floor": "Апсолутни доњи праг",
"render.children.adaptive": "Адаптивно",
"render.children.add_look_reason": "Додајте изглед да бисте мењали да ли је омогућен и његову јачину.",
"render.children.all_shots": "Сви кадрови",
"render.children.bloom": "Сјај",
"render.children.check": "Провера",
"render.children.check_now": "Провери сада",
"render.children.chromatic": "Хроматски помак",
"render.children.compact": "Компактно",
"render.children.contrast": "Контраст",
"render.children.copy_image": "Копирај",
"render.children.copy_job": "Копирај JSON посла",
"render.children.copy_request": "Копирај JSON захтева",
"render.children.coverage_error": "Грешка покривености",
"render.children.cpu": "CPU праћење зрака",
"render.children.denoise": "Смањи шум на завршеној слици",
"render.children.depth": "Дубина путање",
"render.children.distortion": "Изобличење",
"render.children.edge_samples": "Узорци ивица",
"render.children.effects_banner": "Ови ефекти захтевају GPU праћење путања. Отварање овога никад не мења методу.",
"render.children.enable_adaptive": "Омогућите независне пробне узорке да бисте мењали адаптивне границе.",
"render.children.enable_bloom": "Омогућите сјај да бисте мењали његову јачину, праг и полупречник.",
"render.children.finishing": "Завршна обрада",
"render.children.flare": "Одсјај",
"render.children.fresnel": "Fresnel-ови слојеви",
"render.children.ghosts": "Духови прстенова",
"render.children.glass": "Пренос кроз стакло",
"render.children.go_to": "Иди на {editor}",
"render.children.grain": "Зрно",
"render.children.halo": "Ореол",
"render.children.hdr": "HDR",
"render.children.keep_master": "Задржи сирови линеарни мастер",
"render.children.last_result": "Последњи: {number} · {width} × {height} · {phase}",
"render.children.lens_effects": "Ефекти објектива",
"render.children.look_summary": "{tone} · изгледи: {count}",
"render.children.looks": "Креативни изгледи",
"render.children.memory": "Меморија",
"render.children.method": "Метода",
"render.children.minimum": "Минимум",
"render.children.needs_cpu": "Потребно је CPU праћење зрака. Отварање овога никад не мења методу.",
"render.children.nested": "Потврђени угнежђени диелектрици",
"render.children.not_checked": "Није проверено",
"render.children.path": "Праћење путања",
"render.children.pilots": "Пробни узорци",
"render.children.preview": "Подаци прегледа",
"render.children.progressive_reason": "Изаберите Прогресивно да бисте мењали број узорака и семе.",
"render.children.radius": "Полупречник",
"render.children.reflect_depth": "Дубина рефлексије",
"render.children.reflect_samples": "Узорци рефлексије",
"render.children.regrade": "Поновна градација",
"render.children.relative_error": "Релативна грешка",
"render.children.render": "Рендеровање",
"render.children.render_shot": "Рендеруј кадар",
"render.children.renderer": "Рендерер",
"render.children.renderers": "Рендерери",
"render.children.request": "Овај захтев",
"render.children.reset_finishing": "Ресетуј завршну обраду",
"render.children.review_quality": "Прегледај спецификацију квалитета…",
"render.children.rgb_gain": "RGB појачање",
"render.children.samples": "Узорци",
"render.children.sampling": "Узорковање",
"render.children.saturation": "Засићеност",
"render.children.scene_summary": "тела: {bodies} · троуглови: {triangles}",
"render.children.seed": "Семе",
"render.children.sharpening": "Изоштравање",
"render.children.single_image": "Једна слика",
"render.children.soft_focus": "Меки фокус",
"render.children.streak": "Пруга",
"render.children.strength": "Јачина",
"render.children.studio": "Студио",
"render.children.threshold": "Праг",
"render.children.tone": "Тон",
"render.children.under_hood": "Испод хаубе",
"render.children.vignette": "Вињета",
"render.children.workstation": "Радна станица",
"render.choose_look": "Прво изаберите изглед у Изгледима",
"render.chromatic_offset": "Хроматски помак ивица",
"render.clear_stage": "Уклони сачувану сцену",
"render.copy_request": "Копирај JSON",
@@ -2346,8 +2538,33 @@
"render.flare_strength": "Јачина одсјаја светлих делова",
"render.flare_threshold": "Линеарни праг одсјаја сцене",
"render.fold_browser": "Скупи стабло модела",
"render.frame_aspect": "Однос страница",
"render.frame_centre_mark": "Ознака центра",
"render.frame_copy_limit": "Нема слободног назива за дупликат кадра",
"render.frame_copy_name": "{name} копија {number}",
"render.frame_custom": "Прилагођено",
"render.frame_distance_unit": " × величина",
"render.frame_duplicate": "Дуплицирај",
"render.frame_exposure": "Експозиција",
"render.frame_fov": "Видно поље",
"render.frame_guides": "Водичи",
"render.frame_invalid_aspect": "Неисправан унапред подешен однос страница",
"render.frame_lens": "FOV {fov}° · ≈ {mm} mm",
"render.frame_name": "Назив",
"render.frame_output_size": "Величина излаза",
"render.frame_photo": "3:2 · Фотографија",
"render.frame_portrait": "4:5 · Портрет",
"render.frame_presets": "Унапред подешени кадрови",
"render.frame_presets_pending": "Стиже са уређивачем кадрова",
"render.frame_projection": "Пројекција",
"render.frame_render_shot": "Рендеруј овај кадар",
"render.frame_rule_thirds": "Правило трећина",
"render.frame_safe_area": "Безбедна зона",
"render.frame_shot_title": "Кадар · {name}",
"render.frame_square": "1:1 · Квадрат",
"render.frame_tall": "9:16 · Усправно",
"render.frame_thirds": "Трећине",
"render.frame_wide": "16:9 · Широки екран",
"render.gpu_depth": "Максимална дубина путање",
"render.gpu_options_help": "Узорци, дубина, семе и експозиција чувају се са овим подешавањем. Чува се само активна метода слике.",
"render.gpu_path_failed": "GPU праћење путања није доступно",
@@ -2375,6 +2592,7 @@
"render.heading_results": "РЕЗУЛТАТИ",
"render.heading_shots": "КАДРОВИ",
"render.hide_shots_label": "Сакриј траку кадрова",
"render.hover_look": "{object} · {look} · кликните за избор",
"render.image_advanced": "Напредне GPU контроле",
"render.image_cancelled": "Рендеровање је отказано",
"render.image_cancelling": "Отказивање",
@@ -2521,17 +2739,95 @@
"render.library_uniform_ack": "Користи једноличну апроксимацију без просторних или напредних ефеката",
"render.library_usable": "Извршне пројекције",
"render.library_users": "Корисници",
"render.light_aim": "Усмери ка",
"render.light_anchor_pending": "Промена координатног система светла још није подржана.",
"render.light_azimuth": "Азимут",
"render.light_backend_limit": "Изаберите CPU праћење зрака или изричити GPU студио да бисте мењали светла. Светла старог GPU студија остају само за читање.",
"render.light_behaviour": "ПОНАШАЊЕ",
"render.light_default_fill": "Допунско",
"render.light_default_key": "Главно",
"render.light_default_number": "Светло {number}",
"render.light_default_rim": "Рубно",
"render.light_delete": "Избриши",
"render.light_distance": "Растојање",
"render.light_duplicate": "Дуплицирај",
"render.light_elevation": "Елевација",
"render.light_gpu_punctual": "Тачкаста светла и рефлектори доступни су уз CPU праћење зрака.",
"render.light_hard_shadow": "Ово светло има оштре сенке; мекоћа емитера није доступна.",
"render.light_intensity": "Интензитет",
"render.light_missing": "Ово светло више не постоји. Изаберите светло у стаблу модела.",
"render.light_place_highlight": "Постави према одсјају",
"render.light_place_pending": "Постављање према одсјају захтева избор светла у прозору приказа и још није подржано.",
"render.light_position": "ПОЛОЖАЈ",
"render.light_preview_help": "Приказ уживо је без сенки; површинска светла користе апроксимацију узорком из центра. Рендеровање користи потпуни модел светла.",
"render.light_product_centre": "Центар производа",
"render.light_size": "Величина",
"render.light_softness": "Мекоћа",
"render.light_temperature": "Температура боје",
"render.light_temperature_help": "Приближна нијанса црног тела; чува се као линеарни RGB.",
"render.light_type": "Врста",
"render.light_type_area": "Површинско",
"render.light_type_point": "Тачкасто",
"render.light_type_spot": "Рефлектор",
"render.light_type_sun": "Сунце",
"render.light_view_only": "Само једно светло и искључена светла утичу на овај приказ и његове рендере; никад се не чувају у дизајну.",
"render.light_world_origin": "Исходиште света",
"render.lighting_aim_point": "Тачка циљања",
"render.lighting_apply": "Примени подешавање",
"render.lighting_area_samples": "Узорци површинског светла",
"render.lighting_budget": "Буџет",
"render.lighting_budget_help": "Бројеви су само за читање. Додајте, дуплицирајте или избришите светла да бисте их променили; метода одређује ограничења.",
"render.lighting_colour": "Боја",
"render.lighting_consent": "Замени усмерена светла овим подешавањем",
"render.lighting_custom": "Прилагођена светла",
"render.lighting_custom_help": "Избор опције Прилагођено претвара подешавање у светла која се могу мењати, свако у свом реду у стаблу.",
"render.lighting_direction": "Смер X Y Z",
"render.lighting_direction_help": "Или упишите смер према светлу (X Y Z).",
"render.lighting_distance_unit": " × величина",
"render.lighting_edge_u": "Вектор странице U",
"render.lighting_edge_v": "Вектор странице V",
"render.lighting_falloff": "Слабљење",
"render.lighting_falloff_help": "Интензитет је наведен на референтном растојању.",
"render.lighting_height": "Висина V",
"render.lighting_minimum": "Минимум",
"render.lighting_mute": "Искључи ово светло",
"render.lighting_point": "Тачка",
"render.lighting_preset": "Подешавање студија",
"render.lighting_preset_cpu": "Подешавања студија са усмереним светлима захтевају CPU праћење зрака. GPU осветљење користи изричита сунчева и површинска светла.",
"render.lighting_preset_row": "Подешавање",
"render.lighting_radiance": "Радијанса",
"render.lighting_reference": "Референца",
"render.lighting_review_help": "Замењује списак усмерених светала. Задржава тачкаста и површинска светла, окружење, сенке, камеру и сва остала подешавања кадра.",
"render.lighting_review_title": "Прегледај подешавање осветљења",
"render.lighting_samples_cpu": "Узорци површинског светла важе за CPU праћење зрака.",
"render.lighting_samples_need_area": "Додајте CPU површинско светло да бисте подесили узорке површинског светла.",
"render.lighting_samples_reason": "Узорци површинског светла морају бити 1, 4, 16 или 64.",
"render.lighting_shadow_cpu": "Прекидач сенки захтева CPU праћење зрака. GPU праћење путања увек баца сенке.",
"render.lighting_shadows": "Баци сенке",
"render.lighting_shadows_section": "Сенке и узорковање",
"render.lighting_shape": "Облик",
"render.lighting_solo": "Само ово светло",
"render.lighting_source": "Извор",
"render.lighting_source_section": "Извор светла",
"render.lighting_spot_preserved": "Ово тачкасто светло задржава сачувани конус рефлектора док му се не промени врста.",
"render.lighting_sun_distance": "Смер сунца не зависи од растојања и тачке циљања.",
"render.lighting_unsupported": "неподржано",
"render.lighting_used": "{used} од {limit}",
"render.lighting_width": "Ширина U",
"render.lighting_world_position": "Светски X Y Z",
"render.lights_fixed_to": "Светла везана за",
"render.linear_help": "Задржава 32-битни флоат RGBA мастер пре уклањања шума, експозиције, мапирања тонова, филтера и позадине. Линеарни sRGB/D65; помножен покривеношћу. Додатна меморија се изричито одобрава. Без компресије и додатних пролаза.",
"render.linear_retain": "Задржи сирови линеарни EXR",
"render.linear_unavailable": "Изабрани завршени кадар нема задржани EXR. Омогућите задржавање пре рендеровања; старији PNG не може да врати сирову радијансу.",
"render.look_add": "Додај изглед боје",
"render.look_applied": "Примењено: {name}",
"render.look_bleach": "По узору на bleach bypass",
"render.look_cool": "Хладно",
"render.look_cyanotype": "По узору на цијанотипију",
"render.look_faded": "Избледели отисак",
"render.look_material": "Материјал",
"render.look_mono": "Једнобојно",
"render.look_pasted": "Изглед је налепљен",
"render.look_sepia": "Сепија",
"render.look_strength": "Јачина изгледа",
"render.look_teal_orange": "Тиркизно / наранџасто",
@@ -2607,9 +2903,11 @@
"render.output_advanced": "Напредно",
"render.output_backend_ready": "Спремно",
"render.output_check": "Провери",
"render.output_check_failed": "Провера · грешка",
"render.output_check_help": "Покрените проверу да бисте прегледали овај захтев без покретања рендеровања.",
"render.output_check_summary": "Провера · Напомене: {count}",
"render.output_copy": "Копирај",
"render.output_copy_report": "Копирај извештај",
"render.output_destination": "Одредиште",
"render.output_destination_help": "Одредишну датотеку изаберите при извозу завршене слике.",
"render.output_dimensions": "Величина",
@@ -2619,6 +2917,7 @@
"render.output_fit": "Уклопи",
"render.output_format": "Формат",
"render.output_format_status": "PNG је тачна завршена слика за приказ. Необавезни GPU EXR задржава сирову линеарну радијансу сцене у формату FLOAT32 пре филтера приказа. Извоз никад не замењује кеш прегледа ни други посао.",
"render.output_grading": "Градација",
"render.output_image": "Слика",
"render.output_largest": "Највише {width} × {height}",
"render.output_lock_ratio": "Закључај однос страница",
@@ -2628,6 +2927,8 @@
"render.output_quality_waiting": "чека се уговор о квалитету",
"render.output_ratio_refused": "Повезана димензија премашује ограничење величине ове методе. Претходна величина се задржава; откључајте однос или изаберите мању вредност.",
"render.output_ready": "Спремно за рендеровање",
"render.output_run_check": "Покрени проверу",
"render.output_size_limit": "{method}: до {dimension} px по страни и {pixels} пиксела. Највећа величина која стаје: {width} × {height}.",
"render.output_size_ok": "Величина је у реду · {width} × {height} px",
"render.output_swap_orientation": "Замени ширину и висину",
"render.output_tools_inspector": "Величину и формат измените у инспектору Излаз.",
@@ -2644,6 +2945,7 @@
"render.page_output": "Излаз",
"render.page_scene": "Сцена",
"render.paint_label": "Обоји",
"render.painting_with": "Бојење изгледом {name}",
"render.passive_stage": "Подлога и пасивна сцена",
"render.passive_stage_help": "Коначни пасивни панели припадају само рендерованим сликама. Не додају CAD тела ни масу. Постављање је фиксно након примене; пресецање граница производа се одбија. CPU не даје дифузно одбијено осветљење.",
"render.perspective": "Перспективна камера",
@@ -2665,6 +2967,7 @@
"render.pick_help": "Изаберите Тело, Лице или Компонента. Кликните празан простор да очистите избор; Shift или Ctrl додаје или укључује/искључује. Истицања се појављују само у живом приказу производа.",
"render.pick_label": "Изабери",
"render.pick_up_label": "Преузми",
"render.pick_up_prompt": "Кликните објекат да преузмете његов изглед",
"render.pick_waiting": "Избор производа још није подржан.",
"render.post_contrast": "Контраст",
"render.post_gain_b": "Појачање плаве",
@@ -2704,13 +3007,17 @@
"render.radial_distortion": "Радијално изобличење",
"render.radial_fit": "Уклопи производ",
"render.radial_save": "Сачувај кадар",
"render.recent_looks": "Недавни изгледи",
"render.regrade_action": "Поновна градација сировог мастера (без уклањања шума)",
"render.regrade_help": "Прави засебан PNG из изабраног завршеног сировог мастера, користећи ове контроле приказа. Не прати зраке, не мења забележену величину, камеру ни светла и не преписује EXR. Уклањање шума се не примењује поново: сирови мастери не чувају његове водиље. Изведена слика се и даље може извести истим контролама посла.",
"render.regrade_label": "Поновна градација",
"render.reload_settings": "Поново учитај сачувана подешавања",
"render.remove_override": "Уклони надјачавање",
"render.replace_all": "Замени све",
"render.replace_ground": "Потврди замену постојеће сцене",
"render.replace_label": "Замени",
"render.replace_saved_surface": "Замени постојећу сачувану везу за овај циљ",
"render.replace_with": "Замени са",
"render.restore_camera": "Врати сачувану камеру",
"render.result_actual": "100%",
"render.result_actual_help": "Један пиксел слике по пикселу екрана.",
@@ -2762,14 +3069,28 @@
"render.saved_surface_remove": "Уклони сачувану везу",
"render.saved_surfaces": "Сачуване везе површина",
"render.saved_surfaces_help": "Фиксиране уграђене мапе прате изабрани примерак у локалним милиметрима. Замењен или недостајући циљ је грешка, никад аутоматска поновна додела.",
"render.scene_all_shots": "Сви кадрови ({count})",
"render.scene_apply": "Примени прегледани студио",
"render.scene_batch_reason": "За Све кадрове потребан је ред чекања за рендеровање сачуваних кадрова, који још није доступан.",
"render.scene_check_now": "Провери сада",
"render.scene_check_passed": "Провера је прошла · напомене: {notes}",
"render.scene_check_stale": "Провера је застарела · проверите поново",
"render.scene_check_unchecked": "Још није проверено · напомене: 0",
"render.scene_consent": "Потврди замену осветљења, окружења, експозиције и сцене",
"render.scene_light_summary": "{environment} · светла: {lights}",
"render.scene_look_summary": "изгледи: {looks} · надјачавања: {overrides}",
"render.scene_open_check": "Отвори проверу",
"render.scene_preserved_fields": "Камера, узорковање, димензије, оптичке везе, CAD геометрија и инжењерски материјали се чувају.",
"render.scene_preserves_design": "Саставите осветљење и пасивну сцену за видљиви предмет. Геометрија, инжењерски материјали и камера остају одвојени.",
"render.scene_ready": "Спремно за рендеровање",
"render.scene_reminder": "Сцена чува дизајн. Геометрија, инжењерска својства и CAD никад се не мењају из Рендеровања.",
"render.scene_reminders": "Подсетници",
"render.scene_renderer_ready": "Спремно: {renderer}",
"render.scene_replaces": "Замењује",
"render.scene_review": "Разреши и прегледај",
"render.scene_review_help": "Прегледајте комплетну изворну композицију пре примене. Невезане напредне SCENE спецификације се не замењују.",
"render.scene_scope_details": "Опсег композиције",
"render.scene_stages": "Фазе",
"render.search_appearances": "Претражи {count} изгледа",
"render.setup_legacy_environment": "Ово старије подешавање користи наслеђену ротацију или интензитет окружења. Те вредности се задржавају; изричито их претворите пре чувања пуног посла слике.",
"render.setup_name": "Назив подешавања",
@@ -2782,7 +3103,22 @@
"render.shell_tab_camera": "КАМЕРА РЕНДЕРА",
"render.shell_tab_lighting": "ОСВЕТЉЕЊЕ",
"render.shell_tab_scene": "СЦЕНА РЕНДЕРА",
"render.shot_aperture": "Отвор бленде",
"render.shot_distance": "Растојање",
"render.shot_dof": "Дубинска оштрина",
"render.shot_duplicate": "Дуплицирај сачувани кадар",
"render.shot_edit_output": "Измени у Излазу",
"render.shot_exposure_reason": "Експозиција захтева CPU праћење зрака или GPU праћење путања.",
"render.shot_exposure_section": "Експозиција",
"render.shot_focus_distance": "Растојање фокуса",
"render.shot_fov_reason": "Видно поље захтева перспективну пројекцију.",
"render.shot_frame_subject": "Уоквири предмет",
"render.shot_invalid_camera": "Вредности камере морају бити коначне и у дозвољеном опсегу.",
"render.shot_lens": "Објектив",
"render.shot_lens_enable_reason": "Омогућите дубинску оштрину да бисте мењали отвор бленде и растојање фокуса.",
"render.shot_lens_gpu_reason": "Дубинска оштрина захтева GPU праћење путања.",
"render.shot_lens_perspective_reason": "Дубинска оштрина захтева перспективну пројекцију.",
"render.shot_look_selection": "Усмери на избор",
"render.shot_manager": "Сачувани кадрови",
"render.shot_new_name": "Назив новог кадра",
"render.shot_remove": "Уклони сачувани кадар",
@@ -2790,6 +3126,9 @@
"render.shot_remove_title": "Уклонити сачувани кадар?",
"render.shot_rename": "Преименуј сачувани кадар",
"render.shot_saved_only": "Прво сачувајте тренутни нацрт. Дуплицирање и преименовање чувају тачне сачуване опције и референце на ресурсе.",
"render.shot_selection_reason": "Изаберите тело или лице на које ћете усмерити камеру.",
"render.shot_size": "Величина",
"render.shot_target": "Циљ",
"render.shots_camera_changed": "Камера је промењена откако је овај кадар сачуван",
"render.shots_name_help": "Унесите јединствен назив за тренутни кадар.",
"render.shots_no_result": "Још нема рендера",
@@ -3052,6 +3391,7 @@
"select an axis": "изаберите осу",
"select an axis, a straight or circular edge, or a cylinder, cone or torus face first": "прво изаберите осу, праву или кружну ивицу, или лице цилиндра, конуса или торуса",
"select bodies first": "прво изаберите тела",
"select components first": "прво изаберите компоненте",
"select corner points, or the two lines of one corner": "изаберите тачке углова или две линије једног угла",
"select one corner point, or the two lines of one corner": "изаберите једну тачку угла или две линије једног угла",
"select sheet edges first": "прво изаберите ивице лима",
@@ -3070,6 +3410,7 @@
"settings.double_click_components": "Двоструки клик на компоненту је активира, а повезану компоненту мења на месту",
"settings.frame_rate_details_note": "Додаје график времена последњих кадрова са бројем исцртаних троуглова, хистограм времена кадрова и шта је GPU нацртао. Кликните број кадрова у секунди у приказу да их прикажете или сакријете.",
"settings.frame_rate_note": "Приказује број кадрова у секунди у доњем десном углу приказа.",
"settings.insert_lists_open_designs": "Уметни дизајн прво наводи дизајне отворене у другим картицама",
"settings.measure_axis_distances": "Прикажи растојања X/Y/Z",
"settings.measure_axis_distances_help": "Приказуј компоненте растојања по светским осама уз укупно растојање док је Мерење отворено.",
"settings.msaa_applies_on_restart": "Углађивање ивица примењује се при следећем покретању SolidCraft-а",
@@ -3094,6 +3435,10 @@
"shortcut.unpin": "Откачи",
"sketch is missing": "скица недостаје",
"sketch.degrees_of_freedom": "Степени слободе: {count}",
"sketch.dimension_added_driven": "Скица већ одређује ту коту, па је додата као изведена (референтна) кота",
"sketch.dimension_applied": "Кота је примењена",
"sketch.dimension_applied_defined": "Кота је примењена; параметар `{name}` је дефинисан",
"sketch.dimension_applied_renamed": "Кота је примењена; параметар је назван `{name}`",
"sketch.dof_left": "Преостали степени слободе: {count}",
"sketch.dof_left_one": "Преостали степени слободе: {count}",
"sketch.draw_curves": "Цртај као {linetype}",
@@ -3128,6 +3473,8 @@
"sketch_text.use_font_file": "Користи датотеку фонта {path}",
"solid": "пуно",
"status.editing": "Измена: {name}",
"status.navigation": "Мапирање миша: {mapping}",
"status.navigation_tip": "Како миш помера приказ. Кликните да изаберете друго мапирање",
"status.under_constrained": "Недовољно ограничено (степени слободе: {count})",
"status.under_constrained_one": "Недовољно ограничено ({count} степен слободе)",
"status.units_tip": "Јединице дизајна. Кликните да их промените",
@@ -3161,8 +3508,10 @@
"timeline.delete_folders_tip": "Задржи њихове операције и угнежђене фасцикле у временској траци",
"timeline.delete_folders_with_features_tip": "Избриши фасцикле са свим операцијама у њима и њихове угнежђене фасцикле",
"timeline.delete_many": "Избриши изабране операције: {count}",
"timeline.edited_rolled_back": "Операција {name} је промењена, али је после ознаке враћања, па није изграђена: померите ознаку иза ње да видите резултат",
"timeline.feature_error": "Грешка: {message}",
"timeline.feature_hint": "Двапут кликните за измену · превуците за промену редоследа · десни клик за више",
"timeline.feature_rolled_back": "Враћено уназад: после ознаке враћања, па није изграђено",
"timeline.feature_warning": "Упозорење: {message}",
"timeline.group": "Нова фасцикла операција",
"timeline.move_many": "Премести ставке временске траке",
@@ -3244,6 +3593,10 @@
"ui.3d_mouse_offer": "Калибрација 3D миша исправља замењене или обрнуте осе и подешава његову брзину и осећај.",
"ui.3d_mouse_offer_never": "Не приказуј више",
"ui.3d_mouse_offer_swap": "Пребаци на Hidraw (директни драјвер)",
"ui.3d_mouse_orbit": "Орбитирање",
"ui.3d_mouse_orbit_classic": "Класично",
"ui.3d_mouse_orbit_tip": "Праћено: 3D миш окреће приказ око дела модела који је у средини приказа када окретање почне, означеног бледом куглом. Класично: око центра приказа",
"ui.3d_mouse_orbit_traced": "Праћено",
"ui.3d_mouse_reading": "Очитање",
"ui.3d_mouse_reset_axes": "Ресетуј доделу оса",
"ui.3d_mouse_reset_view": "Ресетуј приказ",
@@ -3630,6 +3983,7 @@
"ui.constant": "Константно",
"ui.constraints_conflict": "Ограничења су у сукобу",
"ui.construction": "Помоћна",
"ui.construction.ribbon_label": "Пом. праве",
"ui.context_menu": "Контекстни мени",
"ui.continuity_g0": "G0 прегиб",
"ui.continuity_g1": "G1 тангентно",
@@ -3670,6 +4024,7 @@
"ui.design_properties.part_number": "Број дела",
"ui.design_properties.project": "Пројекат",
"ui.design_properties.revision": "Ревизија",
"ui.design_saved": "Сачувано: {path}",
"ui.diameter": "Пречник",
"ui.dimension": "Кота",
"ui.direct_interaction": "Директна интеракција",
@@ -3720,6 +4075,14 @@
"ui.end_scale": "Крајње скалирање",
"ui.entities": "Елементи",
"ui.equal": "Једнакост",
"ui.equation_end": "Крај",
"ui.equation_explicit": "Експлицитни",
"ui.equation_form": "Облик",
"ui.equation_note": "Променљива је обичан број: sin(t) је узима у радијанима. Резултат без јединице је у јединици дизајна.",
"ui.equation_parametric": "Параметарски",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Еквивалентни полупречник",
"ui.expand": "Прошири",
"ui.exportDxf": "Извези DXF…",
@@ -3785,6 +4148,7 @@
"ui.heading_design": "ДИЗАЈН",
"ui.heading_draft": "НАГИБ",
"ui.heading_edit": "ИЗМЕНИ",
"ui.heading_equation_curve": "КРИВА ПО ЈЕДНАЧИНИ",
"ui.heading_extrude": "ЕКСТРУДИРАЈ",
"ui.heading_fillet": "ЗАОБЉЕЊЕ",
"ui.heading_finish_editing": "ЗАВРШИ ИЗМЕНУ",
@@ -3876,6 +4240,10 @@
"ui.import_ellipsis": "Увези…",
"ui.infinite": "Бесконачно",
"ui.insert": "Уметни",
"ui.insert_design.browse": "Прегледај…",
"ui.insert_design.open_designs": "Отворени дизајни",
"ui.insert_design.saved_file": "Дизајн {name} има несачуване промене, па је уметнута његова сачувана датотека. Сачувајте га, а затим покрените Ажурирај везе да бисте унели промене.",
"ui.insert_design.unsaved": "Несачуване промене",
"ui.inspect": "Прегледај",
"ui.intersect": "Пресек",
"ui.isolate": "Изолуј",
@@ -4025,6 +4393,18 @@
"ui.project": "Пројектуј",
"ui.project_face_edges_sketch": "Пројектуј ивице лица у нове скице",
"ui.properties": "Својства",
"ui.properties.copy_matrix": "Копирај матрицу",
"ui.properties.first_moments": "Статички моменти",
"ui.properties.inertia": "Момент инерције",
"ui.properties.inertia_note": "У односу на центар масе, у светским осама (g·{unit}²)",
"ui.properties.inertia_unavailable": "Није доступно: мрежа једног тела није затворена.",
"ui.properties.inertia_x": "Ixx, Ixy, Ixz",
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Мерење…",
"ui.properties.measuring_failed": "Мерење је заустављено пре завршетка.",
"ui.properties.principal_axis": "Главна оса {number}",
"ui.properties.principal_moments": "Главни моменти",
"ui.pull_direction": "Смер вађења из калупа",
"ui.quality": "Квалитет",
"ui.quantity": "Број",
@@ -4087,6 +4467,7 @@
"ui.select": "Изабери",
"ui.selectOther": "Изабери друго…",
"ui.selectTangentChain": "Изабери тангентни ланац",
"ui.select_all": "Изабери све",
"ui.selection": "Избор",
"ui.selection_modifiers": "Модификатори избора",
"ui.selection_shift_add_only": "Shift+клик додаје без уклањања",
@@ -4123,7 +4504,11 @@
"ui.sketch": "Скица",
"ui.sketch_dimension": "Кота скице",
"ui.sketch_grid": "Мрежа скице",
"ui.sketch_intersect_geometry": "Геометрија",
"ui.sketch_intersect_projection_link": "Веза пројекције",
"ui.sketch_intersect_selection_filter": "Филтер избора",
"ui.sketch_modifiers": "Модификатори скице",
"ui.sketch_project_geometry": "Геометрија",
"ui.sketch_scale": "Скалирање скице",
"ui.sketches": "Скице",
"ui.slice": "Пресеци",
@@ -4170,6 +4555,11 @@
"ui.symmetric": "Симетрично",
"ui.symmetry": "Симетрија",
"ui.system": "Систем",
"ui.tab_assemble": "Склоп",
"ui.tab_manage": "Управљање",
"ui.tab_sheet_metal": "Лим",
"ui.tab_view": "Приказ",
"ui.tab_weldments": "Заварене конструкције",
"ui.tangent": "Тангентно",
"ui.taper_angle": "Угао сужења",
"ui.tapped": "Са навојем",
@@ -4185,6 +4575,7 @@
"ui.tip_angle": "Угао врха",
"ui.to_object": "До објекта",
"ui.tool_direction": "Смер алата",
"ui.toolbar_tabs_hidden": "Све картице траке са алатима су скривене. Кликните + или кликните десним дугметом овде да прикажете неку.",
"ui.top": "Одозго",
"ui.top_diameter": "Горњи пречник",
"ui.top_radius": "Горњи полупречник",
@@ -4231,6 +4622,7 @@
"ui.visual_shaded_with_edges": "Осенчено са ивицама",
"ui.visual_style": "Визуелни стил",
"ui.visual_wireframe": "Жичани модел",
"ui.wheel_zoom_speed": "Брзина зумирања точкићем миша",
"ui.width": "Ширина",
"ui.window_system": "Систем прозора",
"ui.window_system_auto": "Аутоматски",
@@ -4284,6 +4676,9 @@
"update.prefs_managed": "Ово је SolidCraft {version}, којим управља {manager}. Провера пита GitHub за најновије издање и не шаље ништа друго; ажурирајте SolidCraft у {manager}.",
"update.prefs_note": "Ово је SolidCraft {version} ({kind}). Провера пита GitHub за најновије издање и не шаље ништа друго.",
"update.prefs_web": "Поново учитајте страницу да добијете најновију веб апликацију. Ако мрежа није доступна или се ажурирање не може преузети на време, отвара се сачувана верзија; преузимање у току наставља се за следеће поновно учитавање.",
"update.refresh_checking": "Провера најновијег издања…",
"update.refresh_fallback": "Није било могуће проверити да ли постоји новије издање; ажурирање на верзију {version}, пронађену раније.",
"update.refresh_selected": "Ажурирање на {version}.",
"update.release_page": "Отвори страницу издања",
"update.restart": "Поново покрени сада",
"update.restart_later": "Касније",
+397
View File
@@ -204,6 +204,7 @@
"Edges": "Kanter",
"Edit": "Redigera",
"Edit Profile Sketch": "Redigera profilskiss",
"Edit shortcuts": "Redigera genvägar",
"Enable rule": "Aktivera regel",
"Enabled": "Aktiverad",
"End Radius": "Slutradie",
@@ -466,6 +467,7 @@
"Radius": "Radie",
"Radius Fit": "Radieanpassning",
"Ratio": "Förhållande",
"Read-only list: shortcuts can't be changed here.": "Skrivskyddad lista: genvägar kan inte ändras här.",
"Reattach selected face": "Återfäst markerad yta",
"Recover": "Återställ",
"Recover unsaved design?": "Återställ osparad konstruktion?",
@@ -649,6 +651,7 @@
"Third point": "Tredje punkten",
"This child is shared. Deleting it removes it from every copy of its parent.": "Det här underordnade objektet är delat. Om du tar bort det försvinner det från alla kopior av dess överordnade.",
"This child is shared. Position changes apply to every copy of its parent.": "Det här underordnade objektet är delat. Lägesändringar gäller för alla kopior av dess överordnade.",
"This component is inside a subassembly placed more than once: aligning it moves it in every placement.": "Den här komponenten ligger i en undersammanställning som är placerad mer än en gång: om du justerar den flyttas den i varje placering.",
"This face cannot provide a durable attachment. Choose another face or explicitly use a fixed plane.": "Den här ytan kan inte ge ett beständigt fäste. Välj en annan yta eller använd uttryckligen ett fast plan.",
"This image is not attached to GitHub yet. Copy or save it, then attach it on GitHub.": "Den här bilden är inte bifogad på GitHub än. Kopiera eller spara den och bifoga den sedan på GitHub.",
"Thread depth": "Gängdjup",
@@ -790,6 +793,11 @@
"cam.roller": "Rulle",
"cam.roller_pick": "Rulle (valfritt)",
"cam.tip_pick": "Spets (valfritt)",
"camera.shot_pitch": "Lutning",
"camera.shot_roll": "Rullning",
"camera.shot_yaw": "Girning",
"canvas.decal_place_hint": "Klicka på en yta för att placera dekalen",
"canvas.place_hint": "Klicka på ett plan eller en yta för att placera duken",
"choose a profile": "välj en profil",
"choose the cam's and the follower's joints": "välj kamens och följarens leder",
"choose the joints to couple": "välj lederna som ska kopplas",
@@ -797,9 +805,12 @@
"click sketch curves": "klicka på skisskurvor",
"cmd.appearance_assign": "Utseende",
"cmd.appearance_chain": "Utseendekedja",
"cmd.appearance_copy": "Kopiera utseende",
"cmd.appearance_favorite": "Favoritutseende",
"cmd.appearance_library": "Utseendebibliotek",
"cmd.appearance_list": "Lista utseenden",
"cmd.appearance_paint": "Måla utseende",
"cmd.appearance_paste": "Klistra in utseende",
"cmd.appearance_pick_up": "Plocka upp utseende",
"cmd.appearance_replace": "Ersätt utseende",
"cmd.assembly_bom": "Stycklista",
@@ -810,6 +821,7 @@
"cmd.browser_move": "Flytta webbläsarobjekt",
"cmd.browser_order": "Ordna webbläsarobjekt",
"cmd.browser_rename_group": "Byt namn på grupp",
"cmd.browser_reparent": "Flytta till komponent",
"cmd.browser_ungroup": "Dela upp grupp",
"cmd.browser_visibility": "Visa/Dölj",
"cmd.canvas_calibrate": "Kalibrera duk",
@@ -836,7 +848,9 @@
"cmd.component_metadata": "Delegenskaper",
"cmd.component_metadata_set": "Ändra delegenskaper",
"cmd.component_move_bodies": "Flytta kroppar till komponent",
"cmd.component_move_features": "Flytta funktioner till komponent",
"cmd.component_move_sketches": "Flytta skisser till komponent",
"cmd.component_paste_from_design": "Klistra in från en annan konstruktion",
"cmd.component_paste_new": "Klistra in ny",
"cmd.component_properties": "Komponentens fysiska egenskaper",
"cmd.component_relink": "Länka om källa",
@@ -973,6 +987,7 @@
"cmd.motion_trace": "Rörelsespår",
"cmd.motion_trace_edit": "Redigera rörelsespår",
"cmd.motion_trace_keep": "Behåll rörelsespår",
"cmd.occurrence_align": "Justera förekomst",
"cmd.occurrence_copy": "Klistra in (instans)",
"cmd.occurrence_drag": "Dra förekomst",
"cmd.occurrence_ground": "Fixera",
@@ -1030,11 +1045,17 @@
"cmd.render_library_surface_unbind": "Ta bort ytbindning",
"cmd.render_library_targets": "Hitta mål i renderingsbiblioteket",
"cmd.render_lights_add": "Lägg till ljus",
"cmd.render_lights_duplicate": "Duplicera renderingsljus",
"cmd.render_lights_list": "Lista renderingsljus",
"cmd.render_lights_mute": "Stäng av ljus",
"cmd.render_lights_remove": "Ta bort renderingsljus",
"cmd.render_lights_set": "Ange renderingsljus",
"cmd.render_lights_solo": "Solo-ljus",
"cmd.render_optics_bind": "Spara optikbindning",
"cmd.render_optics_unbind": "Ta bort optikbindning",
"cmd.render_output_size": "Ange utdatastorlek för rendering",
"cmd.render_preflight": "Kontrollera renderingsbegäran",
"cmd.render_preflight_copy": "Kopiera rapport från renderingskontroll",
"cmd.render_preset_apply": "Tillämpa inbyggd studio",
"cmd.render_preset_resolve": "Granska inbyggd studio",
"cmd.render_quality_prepare": "Granska fast samplingsbudget",
@@ -1057,6 +1078,13 @@
"cmd.render_start": "Rendera bild",
"cmd.render_status": "Renderingsförlopp",
"cmd.select_clear": "Rensa markering",
"cmd.settings_profile_apply": "Tillämpa inställningsprofil",
"cmd.settings_profile_delete": "Ta bort inställningsprofil",
"cmd.settings_profile_export": "Exportera inställningsprofil",
"cmd.settings_profile_import": "Importera inställningsprofil",
"cmd.settings_profile_list": "Inställningsprofiler",
"cmd.settings_profile_rename": "Byt namn på inställningsprofil",
"cmd.settings_profile_save": "Spara inställningsprofil",
"cmd.sheet_convert": "Konvertera till plåt",
"cmd.sheet_export_bend_table": "Exportera böjtabell",
"cmd.sheet_export_dxf": "Exportera plant mönster som DXF",
@@ -1070,6 +1098,16 @@
"cmd.sheet_refold": "Vik igen",
"cmd.sheet_rules": "Lista plåtregler",
"cmd.sheet_unfold": "Vik ut",
"cmd.sketch.construction_line": "Konstruktionslinje",
"cmd.sketch.construction_line.angle": "Konstruktionslinje med vinkel",
"cmd.sketch.construction_line.bisector": "Vinkelbisektris",
"cmd.sketch.construction_line.horizontal": "Horisontell konstruktionslinje",
"cmd.sketch.construction_line.parallel": "Parallell konstruktionslinje",
"cmd.sketch.construction_line.perpendicular": "Vinkelrät konstruktionslinje",
"cmd.sketch.construction_line.tangent_at": "Tangent i kurvpunkt",
"cmd.sketch.construction_line.tangent_external": "Tangent genom yttre punkt",
"cmd.sketch.construction_line.tangent_two": "Gemensam tangent",
"cmd.sketch.construction_line.vertical": "Vertikal konstruktionslinje",
"cmd.sketch_arc3d": "3D-båge",
"cmd.sketch_arc_center_point": "Båge med centrumpunkt",
"cmd.sketch_arc_tangent": "Tangentbåge",
@@ -1102,6 +1140,8 @@
"cmd.sketch_drawing_bounds": "Ritningsstorlek",
"cmd.sketch_edit": "Redigera skiss",
"cmd.sketch_edit_text": "Redigera text",
"cmd.sketch_equation_curve": "Ekvationskurva",
"cmd.sketch_equation_curve_edit": "Redigera ekvationskurva",
"cmd.sketch_export_dxf": "Spara som DXF",
"cmd.sketch_finish_auto_constrain": "Slutför med Autovillkor",
"cmd.sketch_fit_curves_to_section": "Anpassa kurvor till mesh-sektion",
@@ -1198,6 +1238,7 @@
"cmd.view.render_browser": "Renderingswebbläsare",
"cmd.view.render_dock": "Flytta renderingspanel",
"cmd.view.render_focus": "Fokusvy för rendering",
"cmd.view.status_items": "Statusobjekt i vyfönstret",
"cmd.view_ambient_occlusion": "Omgivningsocklusion",
"cmd.view_angle_readout": "Vyvinklar",
"cmd.view_apply": "Återställ namngiven vy",
@@ -1219,6 +1260,7 @@
"cmd.view_normal_to": "Normalt mot markering",
"cmd.view_previous_tab": "Föregående flik",
"cmd.view_rename": "Byt namn på namngiven vy",
"cmd.view_render_frame": "Hjälplinjer för renderingsram",
"cmd.view_right": "Vy från höger",
"cmd.view_save": "Ny namngiven vy",
"cmd.view_shots_strip": "Tagningsremsa",
@@ -1229,10 +1271,14 @@
"color.copy": "Klicka för att kopiera färgvärden",
"color.edit": "Klicka för att redigera färg",
"color.gamma": "Visar färgvärden i gammarymd 0–255",
"color.hex": "Hex",
"color.hex_help": "Ange #rrggbb eller #rrggbbaa; sex siffror behåller opaciteten",
"color.hex_hint": "#rrggbb",
"color.hue": "Nyans",
"color.linear": "Visar färgvärden i linjär rymd 0–1",
"color.saturation_value": "Mättnad och värde",
"color.selected": "Vald färg",
"config.column_filter_empty": "Inga matchande kolumner",
"contact.components_count": "{count} komponenter",
"contact.enabled_label": "aktiverad",
"coupling.gear_1": "Kugghjul 1",
@@ -1346,8 +1392,10 @@
"help.material.assign": "Anger vad de markerade kropparna är gjorda av, till exempel stål, aluminium eller ABS. Använd det så att massa och vikt stämmer med den verkliga delen.",
"help.mit": "MIT-licens",
"help.notice": "NOTICE",
"help.occurrence.move": "Flyttar en del i sammanställningen endast längs de frihetsgrader som dess leder tillåter. Markera en yta på delen och dra sedan en tillgänglig pil eller båge.",
"help.parameters.change": "Öppnar tabellen med namngivna värden och uttryck som styr konstruktionens mått. Använd den för att ändra en storlek på ett ställe och låta varje funktion som använder den följa med.",
"help.pointcloud.insert": "Infoga en skanning i formatet PLY, XYZ eller PTS som ett punktmoln vid sidan av modellen. Använd den som referens när du bygger en modell från uppmätta data.",
"help.sketch.equation_curve": "Ritar en kurva utifrån formler: x(t) och y(t), eller y = f(x), över ett intervall. Formlerna kan använda parametrar och kurvan följer dem: använd den för en sinusvåg, en spiral eller evolventen på en kugge.",
"help.solid.align": "Flyttar de markerade kropparna så att en punkt, yta eller ett plan på dem möter en punkt, yta eller ett plan någon annanstans. Använd det för att placera en del mot en annan utan att mäta förskjutningen.",
"help.solid.chamfer": "Fasar de markerade kanterna med en plan fas på det avstånd du anger. Använd det för att bryta skarpa kanter eller underlätta införandet av ett stift eller en skruv.",
"help.solid.combine": "Sammanfogar kroppar, skär bort dem från en målkropp eller behåller bara den volym de delar, och kan behålla verktygskropparna. Använd det för att slå ihop delar, skära en form med en annan eller hitta var två kroppar överlappar.",
@@ -1474,6 +1522,21 @@
"joint.one_component": "Dessa delar är kroppar i samma komponent: {bodies}. En led flyttar en komponent mot en annan, så varje del behöver en egen komponent.",
"joint.rigid_group_one_component": "De här {count} kropparna ligger alla i en enda komponent (eller i själva konstruktionen): använd {command} först.",
"joint.rigid_group_select_components": "Markera två eller flera komponenter.",
"joint_move.blocked_hint": "Kontrollera ledtypen (till exempel Styv), fixering, ledgränser och parameterstyrda värden.",
"joint_move.blocked_title": "Det går inte att flytta den här delen",
"joint_move.coarse": "Rotationssteg nära axeln (°)",
"joint_move.distance": "Avstånd från start",
"joint_move.done": "Klar",
"joint_move.fine": "Rotationssteg långt från axeln (°)",
"joint_move.fixed": "Den här delen har ingen rörlig ledaxel.",
"joint_move.help": "Flytta — dra en pil eller ring. Esc avbryter det aktuella draget.",
"joint_move.legacy_hint": "Stäng av för att använda den tidigare Flytta-panelen.",
"joint_move.precision": "Dra utanför den streckade hjälplinjen för finare rotation.",
"joint_move.rotation": "Rotation från start",
"joint_move.select": "Markera en yta eller en del i sammanställningen och välj sedan Flytta.",
"joint_move.settings": "Flytta i sammanställning",
"joint_move.step": "Steg",
"joint_move.use_handles": "Använd handtag för ledrörelse vid Flytta i sammanställning",
"keymap.command_id": "Kommando-ID",
"keymap.empty": "Inga matchande kommandon",
"keymap.use_anyway": "Använd {key} här ändå",
@@ -1568,6 +1631,8 @@
"nav.maya.help": "Alt+vänsterdrag orbiterar, Alt+mittknapp panorerar, Alt+högerknapp zoomar; mittknappsdrag panorerar också",
"nav.openscad.help": "Vänsterdrag på tomt utrymme orbiterar, Shift+vänsterdrag markerar med ruta, drag på skissgeometri redigerar; höger- eller mittdrag panorerar, Shift+höger- eller Shift+mittdrag zoomar",
"nav.perspective.sketch": "Skissredigering använder ortografisk vy. Slutför skissen för att växla till perspektiv.",
"nav.right_drag_orbits.help": "Av: ett högerdrag påverkar inte kameran och högerknappen öppnar bara snabbmenyn. Om du väljer musmappningen SolidWorks stängs det av.",
"nav.right_drag_orbits.label": "Högerdrag orbiterar",
"nav.solidworks.help": "Mittdrag orbiterar, Ctrl+mittdrag panorerar, Shift+mittdrag zoomar, högerdrag orbiterar",
"nav.tinkercad.help": "Högerdrag orbiterar, mitt- eller Shift+högerdrag panorerar",
"nav.touchpad.help": "Håll Shift och flytta pekaren för att panorera; håll Alt/Option och flytta den för att orbitera. Ingen musknapp behövs. Vertikal rullning zoomar.",
@@ -1589,6 +1654,9 @@
"navbar.custom.customise": "Anpassa navigeringsfältet…",
"navbar.custom.design": "Konstruktion",
"navbar.custom.duplicate": "Den här platsen finns redan i fältet.",
"navbar.custom.edge": "Kant",
"navbar.custom.edge_bottom": "Nederst",
"navbar.custom.edge_top": "Överst",
"navbar.custom.fade": "Tona",
"navbar.custom.full": "Ta bort en plats för att lägga till en annan.",
"navbar.custom.hidden_design": "Dold i Konstruktion",
@@ -1695,6 +1763,7 @@
"parts.dimension.thickness": "Tjocklek",
"parts.dimension.width": "Bredd",
"parts.family.bearing": "Spårkullager (ytterform)",
"parts.family.button_head_cap_screw": "Kullrig insexskruv",
"parts.family.dowel_pin": "Cylindriskt stift (passtift)",
"parts.family.hex_bolt": "Sexkantsbult / sexkantsskruv",
"parts.family.hex_nut": "Sexkantsmutter",
@@ -1751,6 +1820,9 @@
"prefs.bottom_centre": "Nere i mitten",
"prefs.bottom_right": "Nere till höger",
"prefs.browser": "Webbläsare",
"prefs.browser_reveal_on_hover": "Visa vid hovring",
"prefs.browser_show_note": "Visas håller webbläsaren på skärmen. Visa vid hovring håller den dold tills pekaren kommer över dess plats eller den smala fliken vid dess vänstra kant, och den förblir öppen medan pekaren är inuti den eller en meny från den är öppen.",
"prefs.browser_shown": "Visas",
"prefs.built_in": "Inbyggd",
"prefs.button_left": "Dra med vänsterknapp",
"prefs.button_middle": "Dra med mittknapp",
@@ -1821,6 +1893,8 @@
"prefs.layout_note": "Kompakt dockar paneler mot fönsterkanterna. Genomskinlig webbläsare finns i Flytande. Ändra assistentens sida på sidan Assistent.",
"prefs.left": "Vänster",
"prefs.left_click": "Vänsterklick",
"prefs.line_drag_draws_one": "Tryck och dra ritar en linje",
"prefs.line_drag_draws_one_note": "I verktyget Linje ritar ett tryck, ett drag och ett släpp en linje från där du tryckte till där du släppte, och där slutar den. Klick ritar fortfarande en kedja. Av: ett drag placerar en punkt där det släpps, som ett klick gör.",
"prefs.linked_designs": "Länkade konstruktioner",
"prefs.live_input": "Liveinmatning",
"prefs.live_preview": "Liveförhandsvisning",
@@ -1853,14 +1927,36 @@
"prefs.origin_plane_names": "Namn på origoplan",
"prefs.origin_plane_names_note": "Namn som visas i webbläsaren, dialoger och listor. {top} är XY, {front} är XZ och {right} är YZ, med Z uppåt. Kommandon, skript och sparade konstruktioner behåller XY, XZ och YZ.",
"prefs.overall_speed": "Total hastighet",
"prefs.perspective_fov": "Synfält",
"prefs.placement": "Placering",
"prefs.prefer_free_sketch_points": "Föredra flyttbara skisspunkter när punkter överlappar",
"prefs.preview_choices": "Förhandsvisning av dina val",
"prefs.profile_active": "Aktiv profil",
"prefs.profile_applied": "Profilen tillämpades.",
"prefs.profile_changed": "Inställningarna har ändrats sedan profilen sparades. Spara behåller dem i den.",
"prefs.profile_deleted": "Profilen togs bort.",
"prefs.profile_export": "Exportera…",
"prefs.profile_exported": "Profilen exporterades.",
"prefs.profile_imported": "Profilen importerades. Välj den under Aktiv profil för att byta till den.",
"prefs.profile_name_hint": "Profilnamn, t.ex. Bärbar dator",
"prefs.profile_rename": "Byt namn",
"prefs.profile_renamed": "Profilen fick ett nytt namn.",
"prefs.profile_save": "Spara",
"prefs.profile_saved": "De aktuella inställningarna sparades i profilen.",
"prefs.profile_skipped": "Profilen tillämpades; {n} inställning(ar) behöll sitt nuvarande värde (se loggen).",
"prefs.profiles": "Inställningsprofiler",
"prefs.profiles_note": "Genvägar, verktygsfältet, navigering, radialmenyn och gränssnittsinställningar, samlade under ett namn och växlade på en gång.",
"prefs.project_options_dialog": "Dialog med alternativ för Projicera",
"prefs.project_options_dialog_note": "På: välj Geometri eller Kroppar och Projektionslänk innan du projicerar. Av: behåll det tidigare arbetsflödet med direktval.",
"prefs.quality_default": "standard",
"prefs.quality_fastest": "snabbast",
"prefs.quality_slowest": "långsammast",
"prefs.quality_smoother": "jämnare",
"prefs.render_previous_geometry_budget": "Använd tidigare geometribudget för renderingsförhandsvisning",
"prefs.render_previous_geometry_budget_help": "Återställ den tidigare fasta geometrigränsen (512 MiB på 64-bitars dator, 128 MiB i övrigt) i stället för den enhetsbaserade budgeten.",
"prefs.reports_saved": "{n} sparade",
"prefs.ribbon_reveal": "Visa sökresultat i menyfliksområdet",
"prefs.ribbon_reveal_note": "När du håller pekaren över ett resultat i Sök kommandon visas var kommandot finns i menyfliksområdet: dess flik, dess knapp eller dess rad i en panels rullgardinsmeny. Ett kommando som startas från sökningen blinkar där, och ett pågående kommando från en rullgardinsmeny markerar sin panel.",
"prefs.right_click": "Högerklick",
"prefs.saving": "Autosparande och återställning",
"prefs.scale_note": "Även Ctrl + / Ctrl − i fönstret. Knapparna är 28 px vid 100 %.",
@@ -1874,6 +1970,10 @@
"prefs.shift_add_ctrl_toggle": "Shift lägger bara till; Ctrl / Cmd växlar",
"prefs.shift_add_note": "På: Shift lägger till, Ctrl / Cmd växlar. Av (standard): båda växlar.",
"prefs.shortcuts": "Genvägar",
"prefs.single_surface_analysis": "Använd en enda ytanalys",
"prefs.single_surface_analysis_help": "När detta är av kan ytskuggning och Kontinuitet vara på samtidigt. Om du slår på detta behålls den senast startade eller ändrade analysen.",
"prefs.sketch_align_points": "Rikta in mot andra skisspunkter vid ritning",
"prefs.sketch_align_points_note": "Vid ritning riktas en punkt in vågrätt mot en skisspunkt och lodrätt mot en annan samtidigt, med en prickad hjälplinje, och klicket behåller båda inriktningarna. Av: endast mot föregående punkt, en axel i taget.",
"prefs.sketch_conflict_colour": "Motstridig geometri i konfliktfärgen",
"prefs.sketch_conflict_colour_note": "Medan villkoren i en skiss står i konflikt ritas de kurvor och punkter som ett misslyckat villkor binder i konfliktfärgen också, inte bara dess symbol eller mått. Av: de behåller sina vanliga färger.",
"prefs.sketch_exit_view": "När en skiss avslutas",
@@ -1881,6 +1981,8 @@
"prefs.sketch_exit_view.previous": "Återgå till föregående vy",
"prefs.sketch_exit_view.unless_rotated": "Återgå om inte roterad",
"prefs.sketch_exit_view_note": "Dit vyn går efter Slutför skiss, Avbryt eller en dubbel Esc-tryckning.",
"prefs.sketch_recent_snap": "Snappa automatiskt till senaste centrum och mittpunkter",
"prefs.sketch_recent_snap_note": "Vid ritning snappar markören dit där hjälplinjerna från de två senaste cirkelcentrumen eller mittpunkterna på raka kanter korsar varandra. Av: hjälplinjerna visas bara och markören flyttas inte.",
"prefs.sketch_selection": "Skiss och markering",
"prefs.sketch_selection_heading": "Skiss och markering",
"prefs.sketch_selection_note": "Hur skisser snappar och hur klick markerar.",
@@ -1918,7 +2020,14 @@
"prefs.toast_place": "Meddelanden",
"prefs.toggle_item": "Lägg till objektet, eller ta bort det igen",
"prefs.toolbar": "Verktygsfält",
"prefs.toolbar_tabs": "Verktygsfältsflikar",
"prefs.top": "Överst",
"prefs.trackpad_zoom_modifier": "Zooma med tvåfingersrullning medan du håller ned",
"prefs.trackpad_zoom_modifier.alt": "⌥ / Alt",
"prefs.trackpad_zoom_modifier.cmd": "⌘",
"prefs.trackpad_zoom_modifier.ctrl": "Ctrl",
"prefs.trackpad_zoom_modifier.help": "Håll ned bara den här tangenten för att zooma mot pekaren med vertikal rullning. Av behåller det befintliga rullningsbeteendet.",
"prefs.trackpad_zoom_modifier.off": "Av",
"prefs.translucent": "Halvgenomskinlig",
"prefs.under_browser": "Under webbläsaren",
"prefs.under_cursor": "Under markören",
@@ -1928,9 +2037,14 @@
"prefs.view_confirm_corner": "OK och Avbryt i vyns hörn",
"prefs.view_confirm_corner_note": "Medan en dialog eller en skiss är öppen gör en bock och ett kryss uppe till höger i vyn samma sak som dialogens OK och Avbryt, eller slutför och avbryter skissen. Vynavigatorn flyttas ned under dem.",
"prefs.viewport": "Vyfönster",
"prefs.viewport_background": "Bakgrund",
"prefs.viewport_background_colour": "Färg",
"prefs.viewport_background_theme": "Temats gradient",
"prefs.wheel": "Hjul",
"prefs.wheel_trackpad": "Hjul och styrplatta",
"prefs.workspace": "Arbetsyta",
"prefs.zoom_stop_at_model": "Stoppa zoomningen vid modellen",
"prefs.zoom_stop_at_model_tip": "3D-musen och enhetsappen zoomar mot ytan mitt i vyn; dragzoom håller kvar punkten där draget började. Av: zoomningen kan gå igenom modellen. Hjul och nyp använder Zooma mot markören separat",
"prefs.zoom_toward_cursor": "Zooma mot markören",
"properties.title": "Egenskaper: {name}",
"recovery.days_ago": "för {count} dagar sedan",
@@ -2019,6 +2133,7 @@
"render.appearance_editor.weight": "Vikt",
"render.appearance_physics_separate": "Det visuella utseendet tilldelar inte densitet, termiska data eller andra tekniska egenskaper.",
"render.appearances": "Utseenden",
"render.assign_help": "Klicka för att tillämpa på markeringen; dra för att förhandsgranska och släpp, eller klicka utan något markerat för att måla.",
"render.availability_native": "Inbyggd sammansättning; granska innan du tillämpar",
"render.availability_projection": "Stödd projektion; se omfattning och utelämnanden",
"render.availability_reference": "Referensdata; inte en automatisk tilldelning",
@@ -2057,6 +2172,7 @@
"render.bloom_threshold": "Linjärt tröskelvärde för högdagrar",
"render.browse_capabilities": "Granska hela funktionskatalogen",
"render.browse_environments": "Bläddra bland originella HDR-miljöer",
"render.browse_looks": "Bläddra…",
"render.browse_native_scenes": "Bläddra bland inbyggda studior",
"render.browse_physical": "Granska fysiska referenser",
"render.browse_quality": "Granska kvalitetsspecifikationer",
@@ -2080,6 +2196,82 @@
"render.check_opaque": "Transparens: endast ogenomskinliga ytor; bakgrundsalfa stöds.",
"render.check_sorted_alpha": "Transparens: sorterad alfaapproximation.",
"render.check_transmission": "Transparens: fysisk transmission.",
"render.children.absolute_floor": "Absolut golv",
"render.children.adaptive": "Adaptiv",
"render.children.add_look_reason": "Lägg till en stil för att redigera om den är aktiverad och dess styrka.",
"render.children.all_shots": "Alla tagningar",
"render.children.bloom": "Bloom",
"render.children.check": "Kontrollera",
"render.children.check_now": "Kontrollera nu",
"render.children.chromatic": "Kromatisk",
"render.children.compact": "Kompakt",
"render.children.contrast": "Kontrast",
"render.children.copy_image": "Kopiera",
"render.children.copy_job": "Kopiera jobbet som JSON",
"render.children.copy_request": "Kopiera begäran som JSON",
"render.children.coverage_error": "Täckningsfel",
"render.children.cpu": "CPU-strålspårning",
"render.children.denoise": "Minska brus i den färdiga bilden",
"render.children.depth": "Banedjup",
"render.children.distortion": "Distorsion",
"render.children.edge_samples": "Kantprov",
"render.children.effects_banner": "De här effekterna kräver GPU-vägspårning. Att öppna detta ändrar aldrig metoden.",
"render.children.enable_adaptive": "Aktivera oberoende pilotprov för att redigera de adaptiva gränserna.",
"render.children.enable_bloom": "Aktivera bloom för att redigera dess styrka, tröskelvärde och radie.",
"render.children.finishing": "Efterbehandling",
"render.children.flare": "Reflex",
"render.children.fresnel": "Fresnel-strata",
"render.children.ghosts": "Spökringar",
"render.children.glass": "Glastransport",
"render.children.go_to": "Gå till {editor}",
"render.children.grain": "Korn",
"render.children.halo": "Halo",
"render.children.hdr": "HDR",
"render.children.keep_master": "Behåll rå linjär master",
"render.children.last_result": "Senaste: {number} · {width} × {height} · {phase}",
"render.children.lens_effects": "Linseffekter",
"render.children.look_summary": "{tone} · {count} stilar",
"render.children.looks": "Kreativa stilar",
"render.children.memory": "Minne",
"render.children.method": "Metod",
"render.children.minimum": "Minimum",
"render.children.needs_cpu": "Kräver CPU-strålspårning. Att öppna detta ändrar aldrig metoden.",
"render.children.nested": "Certifierade nästlade dielektrika",
"render.children.not_checked": "Inte kontrollerad",
"render.children.path": "Vägspårning",
"render.children.pilots": "Pilotprov",
"render.children.preview": "Förhandsvisningsdata",
"render.children.progressive_reason": "Välj Progressiv för att redigera dess antal prov och startvärde.",
"render.children.radius": "Radie",
"render.children.reflect_depth": "Reflektionsdjup",
"render.children.reflect_samples": "Reflektionsprov",
"render.children.regrade": "Ny färgkorrigering",
"render.children.relative_error": "Relativt fel",
"render.children.render": "Rendera",
"render.children.render_shot": "Rendera tagning",
"render.children.renderer": "Renderare",
"render.children.renderers": "Renderare",
"render.children.request": "Den här begäran",
"render.children.reset_finishing": "Återställ efterbehandling",
"render.children.review_quality": "Granska en kvalitetsspecifikation…",
"render.children.rgb_gain": "RGB-förstärkning",
"render.children.samples": "Prov",
"render.children.sampling": "Sampling",
"render.children.saturation": "Mättnad",
"render.children.scene_summary": "{bodies} kroppar · {triangles} trianglar",
"render.children.seed": "Startvärde",
"render.children.sharpening": "Skärpning",
"render.children.single_image": "Enstaka bild",
"render.children.soft_focus": "Mjukt fokus",
"render.children.streak": "Strimma",
"render.children.strength": "Styrka",
"render.children.studio": "Studio",
"render.children.threshold": "Tröskelvärde",
"render.children.tone": "Ton",
"render.children.under_hood": "Under huven",
"render.children.vignette": "Vinjettering",
"render.children.workstation": "Arbetsstation",
"render.choose_look": "Välj först en stil i Utseenden",
"render.chromatic_offset": "Kromatisk kantförskjutning",
"render.clear_stage": "Ta bort sparad dekor",
"render.copy_request": "Kopiera JSON",
@@ -2331,8 +2523,33 @@
"render.flare_strength": "Styrka på högdagerreflexer",
"render.flare_threshold": "Scenlinjär tröskel för reflexer",
"render.fold_browser": "Fäll ihop webbläsaren",
"render.frame_aspect": "Bildformat",
"render.frame_centre_mark": "Mittmarkering",
"render.frame_copy_limit": "Inget ledigt namn för en duplicerad tagning",
"render.frame_copy_name": "{name} kopia {number}",
"render.frame_custom": "Egen",
"render.frame_distance_unit": " × storlek",
"render.frame_duplicate": "Duplicera",
"render.frame_exposure": "Exponering",
"render.frame_fov": "Synfält",
"render.frame_guides": "Hjälplinjer",
"render.frame_invalid_aspect": "Ogiltig förinställning för bildformat",
"render.frame_lens": "Synfält {fov}° · ≈ {mm} mm",
"render.frame_name": "Namn",
"render.frame_output_size": "Utdatastorlek",
"render.frame_photo": "3:2 · Foto",
"render.frame_portrait": "4:5 · Porträtt",
"render.frame_presets": "Bildruteförinställningar",
"render.frame_presets_pending": "Kommer med tagningsredigeraren",
"render.frame_projection": "Projektion",
"render.frame_render_shot": "Rendera den här tagningen",
"render.frame_rule_thirds": "Tredjedelsregeln",
"render.frame_safe_area": "Säkert område",
"render.frame_shot_title": "Tagning · {name}",
"render.frame_square": "1:1 · Kvadrat",
"render.frame_tall": "9:16 · Stående",
"render.frame_thirds": "Tredjedelar",
"render.frame_wide": "16:9 · Bredbild",
"render.gpu_depth": "Maximalt banedjup",
"render.gpu_options_help": "Prov, djup, slumpfrö och exponering sparas med den här uppsättningen. Endast den aktiva bildmetoden sparas.",
"render.gpu_path_failed": "GPU-path tracern är inte tillgänglig",
@@ -2360,6 +2577,7 @@
"render.heading_results": "RESULTAT",
"render.heading_shots": "TAGNINGAR",
"render.hide_shots_label": "Dölj tagningsremsan",
"render.hover_look": "{object} · {look} · klicka för att markera",
"render.image_advanced": "Avancerade GPU-reglage",
"render.image_cancelled": "Renderingen avbröts",
"render.image_cancelling": "Avbryter",
@@ -2506,17 +2724,95 @@
"render.library_uniform_ack": "Använd den enhetliga approximationen utan rumsliga eller avancerade effekter",
"render.library_usable": "Körbara projektioner",
"render.library_users": "Används av",
"render.light_aim": "Rikta mot",
"render.light_anchor_pending": "Att ändra ljusens koordinatsystem stöds inte ännu.",
"render.light_azimuth": "Azimut",
"render.light_backend_limit": "Välj CPU-strålspårning eller en uttrycklig GPU-studio för att redigera ljus. Äldre GPU-studioljus förblir skrivskyddade.",
"render.light_behaviour": "BETEENDE",
"render.light_default_fill": "Fyllnadsljus",
"render.light_default_key": "Huvudljus",
"render.light_default_number": "Ljus {number}",
"render.light_default_rim": "Kantljus",
"render.light_delete": "Ta bort",
"render.light_distance": "Avstånd",
"render.light_duplicate": "Duplicera",
"render.light_elevation": "Höjdvinkel",
"render.light_gpu_punctual": "Punktljus och spotljus är tillgängliga med CPU-strålspårning.",
"render.light_hard_shadow": "Det här ljuset har hårda skuggor; strålarens mjukhet är inte tillgänglig.",
"render.light_intensity": "Intensitet",
"render.light_missing": "Det här ljuset finns inte längre. Markera ett ljus i webbläsaren.",
"render.light_place_highlight": "Placera efter högdager",
"render.light_place_pending": "Placering efter högdager kräver val av ljus i vyfönstret och stöds inte ännu.",
"render.light_position": "POSITION",
"render.light_preview_help": "Livevyn saknar skuggor; ytljus använder en approximation med ett prov i mitten. Rendering använder den fullständiga ljusmodellen.",
"render.light_product_centre": "Produktens centrum",
"render.light_size": "Storlek",
"render.light_softness": "Mjukhet",
"render.light_temperature": "Färgtemperatur",
"render.light_temperature_help": "Ungefärlig svartkroppston; sparas som linjär RGB.",
"render.light_type": "Typ",
"render.light_type_area": "Ytljus",
"render.light_type_point": "Punktljus",
"render.light_type_spot": "Spotljus",
"render.light_type_sun": "Sol",
"render.light_view_only": "Solo och avstängning påverkar den här vyn och dess renderingar; de sparas aldrig i konstruktionen.",
"render.light_world_origin": "Världens origo",
"render.lighting_aim_point": "Siktpunkt",
"render.lighting_apply": "Tillämpa förinställning",
"render.lighting_area_samples": "Prov för ytljus",
"render.lighting_budget": "Budget",
"render.lighting_budget_help": "Antalen är skrivskyddade. Lägg till, duplicera eller ta bort ljus för att ändra dem; metoden bestämmer gränserna.",
"render.lighting_colour": "Färg",
"render.lighting_consent": "Ersätt de riktade ljusen med den här förinställningen",
"render.lighting_custom": "Egna ljus",
"render.lighting_custom_help": "Om du väljer Egna ljus görs förinställningen om till redigerbara ljus, med en rad för vart och ett i trädet.",
"render.lighting_direction": "Riktning X Y Z",
"render.lighting_direction_help": "Eller skriv en riktning mot ljuset (X Y Z).",
"render.lighting_distance_unit": " × storlek",
"render.lighting_edge_u": "Sidvektor U",
"render.lighting_edge_v": "Sidvektor V",
"render.lighting_falloff": "Dämpning",
"render.lighting_falloff_help": "Intensiteten anges vid referensavståndet.",
"render.lighting_height": "Höjd V",
"render.lighting_minimum": "Minimum",
"render.lighting_mute": "Stäng av det här ljuset",
"render.lighting_point": "Punkt",
"render.lighting_preset": "Studioförinställning",
"render.lighting_preset_cpu": "Riktade studioförinställningar kräver CPU-strålspårning. GPU-belysning använder uttryckliga sol- och ytljus.",
"render.lighting_preset_row": "Förinställning",
"render.lighting_radiance": "Radians",
"render.lighting_reference": "Referens",
"render.lighting_review_help": "Ersätter listan med riktade ljus. Behåller punkt- och ytljus, miljö, skuggor, kamera och alla andra tagningsinställningar.",
"render.lighting_review_title": "Granska belysningsförinställning",
"render.lighting_samples_cpu": "Prov för ytljus gäller CPU-strålspårning.",
"render.lighting_samples_need_area": "Lägg till ett CPU-ytljus för att ställa in prov för ytljus.",
"render.lighting_samples_reason": "Prov för ytljus måste vara 1, 4, 16 eller 64.",
"render.lighting_shadow_cpu": "Skuggbrytaren kräver CPU-strålspårning. GPU-vägspårning kastar alltid skuggor.",
"render.lighting_shadows": "Kasta skuggor",
"render.lighting_shadows_section": "Skuggor och sampling",
"render.lighting_shape": "Form",
"render.lighting_solo": "Solo för det här ljuset",
"render.lighting_source": "Källa",
"render.lighting_source_section": "Ljuskälla",
"render.lighting_spot_preserved": "Det här punktljuset behåller sin sparade spotljuskon tills dess typ ändras.",
"render.lighting_sun_distance": "Solens riktning är oberoende av avstånd och siktpunkt.",
"render.lighting_unsupported": "stöds inte",
"render.lighting_used": "{used} av {limit}",
"render.lighting_width": "Bredd U",
"render.lighting_world_position": "Värld X Y Z",
"render.lights_fixed_to": "Ljus fästa vid",
"render.linear_help": "Behåller en 32-bitars flyttals-RGBA-master före brusreducering, exponering, tonmappning, filter och bakgrund. Linjär sRGB/D65; täckningsförmultiplicerad. Extra minne medges uttryckligen. Ingen komprimering eller extra pass.",
"render.linear_retain": "Behåll rå linjär EXR",
"render.linear_unavailable": "Den valda färdiga bildrutan har ingen bevarad EXR. Aktivera bevarande före rendering; en äldre PNG kan inte återskapa rå strålningstäthet.",
"render.look_add": "Lägg till färgstil",
"render.look_applied": "{name} har tillämpats",
"render.look_bleach": "Bleach bypass-inspirerad",
"render.look_cool": "Kall",
"render.look_cyanotype": "Cyanotypi-inspirerad",
"render.look_faded": "Urblekt kopia",
"render.look_material": "Material",
"render.look_mono": "Monokrom",
"render.look_pasted": "Stilen klistrades in",
"render.look_sepia": "Sepia",
"render.look_strength": "Stilstyrka",
"render.look_teal_orange": "Blågrön / orange",
@@ -2592,9 +2888,11 @@
"render.output_advanced": "Avancerat",
"render.output_backend_ready": "Redo",
"render.output_check": "Kontrollera",
"render.output_check_failed": "Kontrollera · fel",
"render.output_check_help": "Kör Kontrollera för att granska begäran utan att starta en rendering.",
"render.output_check_summary": "Kontrollera · Anmärkningar: {count}",
"render.output_copy": "Kopiera",
"render.output_copy_report": "Kopiera rapport",
"render.output_destination": "Mål",
"render.output_destination_help": "Välj målfil när den färdiga bilden exporteras.",
"render.output_dimensions": "Storlek",
@@ -2604,6 +2902,7 @@
"render.output_fit": "Anpassa",
"render.output_format": "Format",
"render.output_format_status": "PNG är den exakta färdiga visningsbilden. Valfri GPU-EXR bevarar rå scenlinjär FLOAT32-strålningstäthet före visningsfilter. Export ersätter aldrig förhandsvisningscachen eller ett annat jobb.",
"render.output_grading": "Färgkorrigering",
"render.output_image": "Bild",
"render.output_largest": "max {width} × {height}",
"render.output_lock_ratio": "Lås bildförhållandet",
@@ -2613,6 +2912,8 @@
"render.output_quality_waiting": "väntar på kvalitetskontraktet",
"render.output_ratio_refused": "Det länkade måttet överskrider den här metodens storleksgräns. Den tidigare storleken behålls; lås upp förhållandet eller välj ett mindre värde.",
"render.output_ready": "Redo att rendera",
"render.output_run_check": "Kör kontroll",
"render.output_size_limit": "{method}: upp till {dimension} px per sida och {pixels} pixlar. Största storlek som får plats: {width} × {height}.",
"render.output_size_ok": "Storleken är OK · {width} × {height} px",
"render.output_swap_orientation": "Byt bredd och höjd",
"render.output_tools_inspector": "Redigera storlek och format i inspektören Utdata.",
@@ -2629,6 +2930,7 @@
"render.page_output": "Utdata",
"render.page_scene": "Scen",
"render.paint_label": "Måla",
"render.painting_with": "Målar med {name}",
"render.passive_stage": "Golv och passivt dekor",
"render.passive_stage_help": "Ändliga passiva paneler hör endast till renderade bilder. De lägger inte till några CAD-kroppar eller någon massa. Placeringen är fast efter tillämpning; placeringar som skär produktens begränsningsvolym avvisas. CPU-vägen ger ingen diffus indirekt belysning.",
"render.perspective": "Perspektivkamera",
@@ -2650,6 +2952,7 @@
"render.pick_help": "Välj Kropp, Yta eller Komponent. Klicka i tomt utrymme för att rensa; Shift eller Ctrl lägger till eller växlar. Framhävningar visas endast i den direkta produktvyn.",
"render.pick_label": "Välj",
"render.pick_up_label": "Plocka upp",
"render.pick_up_prompt": "Klicka på ett objekt för att plocka upp dess stil",
"render.pick_waiting": "Val i produktvyn stöds inte ännu.",
"render.post_contrast": "Kontrast",
"render.post_gain_b": "Blåförstärkning",
@@ -2689,13 +2992,17 @@
"render.radial_distortion": "Radiell distorsion",
"render.radial_fit": "Anpassa produkt",
"render.radial_save": "Spara tagning",
"render.recent_looks": "Senaste stilar",
"render.regrade_action": "Färgkorrigera råmastern på nytt (ingen brusreducering)",
"render.regrade_help": "Skapar en separat PNG från den valda färdiga råmastern med de här presentationskontrollerna. Spårar inga strålar, ändrar inte den fångade storleken, kameran eller ljusen och skriver inte över EXR-filen. Brusreducering tillämpas inte på nytt: råmastrar behåller inte dess guidedata. Derivatet kan fortfarande exporteras via samma jobbkontroller.",
"render.regrade_label": "Ny färgkorrigering",
"render.reload_settings": "Läs in sparade inställningar igen",
"render.remove_override": "Ta bort åsidosättning",
"render.replace_all": "Ersätt alla",
"render.replace_ground": "Bekräfta ersättning av befintligt dekor",
"render.replace_label": "Ersätt",
"render.replace_saved_surface": "Ersätt en befintlig sparad bindning för det här målet",
"render.replace_with": "Ersätt med",
"render.restore_camera": "Återställ sparad kamera",
"render.result_actual": "100%",
"render.result_actual_help": "En bildpixel per skärmpixel.",
@@ -2747,14 +3054,28 @@
"render.saved_surface_remove": "Ta bort sparad bindning",
"render.saved_surfaces": "Sparade ytbindningar",
"render.saved_surfaces_help": "Fästa inbyggda kartor följer den valda förekomsten i lokala millimeter. Ett ersatt eller saknat mål är ett fel, aldrig en automatisk omtilldelning.",
"render.scene_all_shots": "Alla tagningar ({count})",
"render.scene_apply": "Tillämpa granskad studio",
"render.scene_batch_reason": "Alla tagningar kräver renderingskön för sparade tagningar, som inte är tillgänglig ännu.",
"render.scene_check_now": "Kontrollera nu",
"render.scene_check_passed": "Kontrollen godkänd · {notes} anmärkningar",
"render.scene_check_stale": "Kontrollen är inaktuell · kontrollera igen",
"render.scene_check_unchecked": "Inte kontrollerad än · 0 anmärkningar",
"render.scene_consent": "Bekräfta ersättning av belysning, miljö, exponering och dekor",
"render.scene_light_summary": "{environment} · {lights} ljus",
"render.scene_look_summary": "{looks} stilar · {overrides} åsidosättningar",
"render.scene_open_check": "Öppna Kontrollera",
"render.scene_preserved_fields": "Kamera, sampling, bildmått, optiska bindningar, CAD-geometri och tekniska material bevaras.",
"render.scene_preserves_design": "Komponera belysning och ett passivt dekor för det synliga motivet. Geometri, tekniska material och kameran förblir separata.",
"render.scene_ready": "Redo att rendera",
"render.scene_reminder": "Scen bevarar konstruktionen. Geometri, tekniska egenskaper och CAD ändras aldrig från Rendera.",
"render.scene_reminders": "Påminnelser",
"render.scene_renderer_ready": "{renderer} redo",
"render.scene_replaces": "Ersätter",
"render.scene_review": "Lös och granska",
"render.scene_review_help": "Granska hela den inbyggda kompositionen innan du tillämpar. Obundna avancerade SCENE-specifikationer ersätts inte.",
"render.scene_scope_details": "Kompositionens omfattning",
"render.scene_stages": "Steg",
"render.search_appearances": "Sök bland {count} utseenden",
"render.setup_legacy_environment": "Den här äldre uppsättningen använder miljörotation eller intensitet i äldre format. Värdena behålls; konvertera dem uttryckligen innan du sparar ett fullständigt bildjobb.",
"render.setup_name": "Inställningsnamn",
@@ -2767,7 +3088,22 @@
"render.shell_tab_camera": "RENDERINGSKAMERA",
"render.shell_tab_lighting": "BELYSNING",
"render.shell_tab_scene": "RENDERINGSSCEN",
"render.shot_aperture": "Bländare",
"render.shot_distance": "Avstånd",
"render.shot_dof": "Skärpedjup",
"render.shot_duplicate": "Duplicera sparad tagning",
"render.shot_edit_output": "Redigera i Utdata",
"render.shot_exposure_reason": "Exponering kräver CPU-strålspårning eller GPU-vägspårning.",
"render.shot_exposure_section": "Exponering",
"render.shot_focus_distance": "Fokusavstånd",
"render.shot_fov_reason": "Synfält kräver perspektivprojektion.",
"render.shot_frame_subject": "Rama in motivet",
"render.shot_invalid_camera": "Kameravärdena måste vara ändliga och inom intervallet.",
"render.shot_lens": "Objektiv",
"render.shot_lens_enable_reason": "Aktivera skärpedjup för att redigera bländare och fokusavstånd.",
"render.shot_lens_gpu_reason": "Skärpedjup kräver GPU-vägspårning.",
"render.shot_lens_perspective_reason": "Skärpedjup kräver perspektivprojektion.",
"render.shot_look_selection": "Titta på markeringen",
"render.shot_manager": "Sparade tagningar",
"render.shot_new_name": "Namn på ny tagning",
"render.shot_remove": "Ta bort sparad tagning",
@@ -2775,6 +3111,9 @@
"render.shot_remove_title": "Ta bort sparad tagning?",
"render.shot_rename": "Byt namn på sparad tagning",
"render.shot_saved_only": "Spara det aktuella utkastet först. Duplicera och Byt namn bevarar exakt de sparade alternativen och resursreferenserna.",
"render.shot_selection_reason": "Markera en kropp eller yta att rikta mot.",
"render.shot_size": "Storlek",
"render.shot_target": "Mål",
"render.shots_camera_changed": "Kameran har ändrats sedan tagningen sparades",
"render.shots_name_help": "Ange ett unikt namn för den aktuella tagningen.",
"render.shots_no_result": "Ingen rendering än",
@@ -2997,6 +3336,13 @@
"render.wait_pick_up": "stöds inte ännu: val av produkt och provtagning av utseende",
"render.wait_replace": "stöds inte ännu: ersättning av alla användningar av ett utseende",
"render.wait_solo": "stöds inte ännu: ljussynlighet och solokontroller",
"render.wear_applies_to": "Gäller för",
"render.wear_layer_count": "{count} skikt",
"render.wear_layer_one": "{count} skikt",
"render.wear_layers": "Skikt",
"render.wear_no_layers": "Inga skikt",
"render.wear_selected_layer": "Valt skikt",
"render.wear_title": "Slitage",
"sample.bracket.about": "Basfläns med kantflänsar och fals enligt 2 mm-regel",
"sample.bracket.name": "Plåtfäste",
"sample.enclosure.about": "Urholkad låda med läpp, skruvnav, stöd och snäppfäste",
@@ -3030,6 +3376,7 @@
"select an axis": "markera en axel",
"select an axis, a straight or circular edge, or a cylinder, cone or torus face first": "markera först en axel, en rak eller cirkulär kant, eller en cylinder-, kon- eller torusyta",
"select bodies first": "markera kroppar först",
"select components first": "markera komponenter först",
"select corner points, or the two lines of one corner": "markera hörnpunkter, eller de två linjerna i ett hörn",
"select one corner point, or the two lines of one corner": "markera en hörnpunkt, eller de två linjerna i ett hörn",
"select sheet edges first": "markera plåtkanter först",
@@ -3048,6 +3395,7 @@
"settings.double_click_components": "Dubbelklicka på en komponent för att aktivera den eller för att redigera en länkad komponent på plats",
"settings.frame_rate_details_note": "Lägger till en graf över de senaste bildrutornas tider med trianglarna ritade ovanpå, ett histogram över bildrutetider och vad GPU:n ritade. Klicka på bildfrekvensen i vyn för att visa eller dölja dem.",
"settings.frame_rate_note": "Visar bildrutor per sekund i vyns nedre högra hörn.",
"settings.insert_lists_open_designs": "Infoga konstruktion listar först konstruktionerna som är öppna i andra flikar",
"settings.measure_axis_distances": "Visa X/Y/Z-avstånd",
"settings.measure_axis_distances_help": "Visa världsaxelns komponentmått bredvid det totala avståndet medan Mät är öppet.",
"settings.msaa_applies_on_restart": "Kantutjämning tillämpas nästa gång SolidCraft startar",
@@ -3072,6 +3420,10 @@
"shortcut.unpin": "Lossa",
"sketch is missing": "skissen saknas",
"sketch.degrees_of_freedom": "{count} frihetsgrader",
"sketch.dimension_added_driven": "Skissen bestämmer redan det måttet, så det lades till som ett styrt mått (referensmått)",
"sketch.dimension_applied": "Måttet tillämpades",
"sketch.dimension_applied_defined": "Måttet tillämpades; parametern `{name}` definierades",
"sketch.dimension_applied_renamed": "Måttet tillämpades; parametern fick namnet `{name}`",
"sketch.dof_left": "{count} frihetsgrader kvar",
"sketch.dof_left_one": "{count} frihetsgrad kvar",
"sketch.draw_curves": "Rita som {linetype}",
@@ -3106,6 +3458,8 @@
"sketch_text.use_font_file": "Använd teckensnittsfilen {path}",
"solid": "solid",
"status.editing": "Redigerar {name}",
"status.navigation": "Musmappning: {mapping}",
"status.navigation_tip": "Hur musen flyttar vyn. Klicka för att välja en annan mappning",
"status.under_constrained": "Underbestämd ({count} frihetsgrader)",
"status.under_constrained_one": "Underbestämd ({count} frihetsgrad)",
"status.units_tip": "Konstruktionens enheter. Klicka för att ändra dem",
@@ -3139,8 +3493,10 @@
"timeline.delete_folders_tip": "Behåll deras funktioner och kapslade mappar i historiken",
"timeline.delete_folders_with_features_tip": "Ta bort mapparna med alla funktioner i dem och deras kapslade mappar",
"timeline.delete_many": "Ta bort {count} markerade funktioner",
"timeline.edited_rolled_back": "{name} ändrades, men den ligger efter historikmarkören och byggs därför inte: flytta markören förbi den för att se resultatet",
"timeline.feature_error": "Fel: {message}",
"timeline.feature_hint": "Dubbelklicka för att redigera · dra för att ordna om · högerklicka för mer",
"timeline.feature_rolled_back": "Tillbakarullad: efter historikmarkören, så den byggs inte",
"timeline.feature_warning": "Varning: {message}",
"timeline.group": "Ny funktionsmapp",
"timeline.move_many": "Flytta tidslinjeobjekt",
@@ -3220,6 +3576,10 @@
"ui.3d_mouse_offer": "Att kalibrera din 3D-mus rättar förväxlade eller omvända axlar och ställer in hastighet och känsla.",
"ui.3d_mouse_offer_never": "Visa inte igen",
"ui.3d_mouse_offer_swap": "Byt till Hidraw (direkt drivrutin)",
"ui.3d_mouse_orbit": "Orbit",
"ui.3d_mouse_orbit_classic": "Klassisk",
"ui.3d_mouse_orbit_tip": "Spårad: 3D-musen vrider vyn runt den del av modellen som är mitt i vyn när vridningen börjar, markerad med en svag kula. Klassisk: runt vyns centrum",
"ui.3d_mouse_orbit_traced": "Spårad",
"ui.3d_mouse_reading": "Avläsning",
"ui.3d_mouse_reset_axes": "Återställ axeltilldelning",
"ui.3d_mouse_reset_view": "Återställ vyn",
@@ -3604,6 +3964,7 @@
"ui.constant": "Konstant",
"ui.constraints_conflict": "Villkor i konflikt",
"ui.construction": "Konstruktion",
"ui.construction.ribbon_label": "Hjälplinjer",
"ui.context_menu": "Snabbmeny",
"ui.continuity_g0": "G0-veck",
"ui.continuity_g1": "G1-tangent",
@@ -3695,6 +4056,14 @@
"ui.end_scale": "Slutskala",
"ui.entities": "Objekt",
"ui.equal": "Lika",
"ui.equation_end": "Slut",
"ui.equation_explicit": "Explicit",
"ui.equation_form": "Form",
"ui.equation_note": "Variabeln är ett vanligt tal: sin(t) tolkar den i radianer. Ett resultat utan enhet anges i konstruktionens enhet.",
"ui.equation_parametric": "Parametrisk",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Ekvivalent radie",
"ui.expand": "Expandera",
"ui.exportDxf": "Exportera DXF…",
@@ -3760,6 +4129,7 @@
"ui.heading_design": "KONSTRUKTION",
"ui.heading_draft": "SLÄPPVINKEL",
"ui.heading_edit": "REDIGERA",
"ui.heading_equation_curve": "EKVATIONSKURVA",
"ui.heading_extrude": "EXTRUDERA",
"ui.heading_fillet": "AVRUNDNING",
"ui.heading_finish_editing": "SLUTFÖR REDIGERING",
@@ -3851,6 +4221,10 @@
"ui.import_ellipsis": "Importera…",
"ui.infinite": "Oändlig",
"ui.insert": "Infoga",
"ui.insert_design.browse": "Bläddra…",
"ui.insert_design.open_designs": "Öppna konstruktioner",
"ui.insert_design.saved_file": "{name} har osparade ändringar, så dess sparade fil infogades. Spara den och kör sedan Uppdatera länkar för att hämta in ändringarna.",
"ui.insert_design.unsaved": "Osparade ändringar",
"ui.inspect": "Granska",
"ui.intersect": "Skärning",
"ui.isolate": "Isolera",
@@ -4000,6 +4374,18 @@
"ui.project": "Projicera",
"ui.project_face_edges_sketch": "Projicera ytkanter i nya skisser",
"ui.properties": "Egenskaper",
"ui.properties.copy_matrix": "Kopiera matris",
"ui.properties.first_moments": "Första ordningens moment",
"ui.properties.inertia": "Tröghetsmoment",
"ui.properties.inertia_note": "Kring masscentrum, i världsaxlar (g·{unit}²)",
"ui.properties.inertia_unavailable": "Inte tillgängligt: en kropps mesh är inte sluten.",
"ui.properties.inertia_x": "Ixx, Ixy, Ixz",
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Mäter…",
"ui.properties.measuring_failed": "Mätningen avbröts innan den var klar.",
"ui.properties.principal_axis": "Huvudaxel {number}",
"ui.properties.principal_moments": "Huvudtröghetsmoment",
"ui.pull_direction": "Dragriktning",
"ui.quality": "Kvalitet",
"ui.quantity": "Antal",
@@ -4062,6 +4448,7 @@
"ui.select": "Markera",
"ui.selectOther": "Markera annan…",
"ui.selectTangentChain": "Markera tangentkedja",
"ui.select_all": "Markera alla",
"ui.selection": "Markering",
"ui.selection_modifiers": "Markeringsmodifierare",
"ui.selection_shift_add_only": "Shift+klick lägger till utan att ta bort",
@@ -4098,7 +4485,11 @@
"ui.sketch": "Skiss",
"ui.sketch_dimension": "Skissmått",
"ui.sketch_grid": "Skissrutnät",
"ui.sketch_intersect_geometry": "Geometri",
"ui.sketch_intersect_projection_link": "Projektionslänk",
"ui.sketch_intersect_selection_filter": "Markeringsfilter",
"ui.sketch_modifiers": "Skissmodifierare",
"ui.sketch_project_geometry": "Geometri",
"ui.sketch_scale": "Skissskala",
"ui.sketches": "Skisser",
"ui.slice": "Skiva",
@@ -4149,6 +4540,7 @@
"ui.tab_manage": "Hantera",
"ui.tab_sheet_metal": "Plåt",
"ui.tab_view": "Vy",
"ui.tab_weldments": "Svetsning",
"ui.tangent": "Tangent",
"ui.taper_angle": "Avsmalningsvinkel",
"ui.tapped": "Gängad",
@@ -4164,6 +4556,7 @@
"ui.tip_angle": "Spetsvinkel",
"ui.to_object": "Till objekt",
"ui.tool_direction": "Verktygsriktning",
"ui.toolbar_tabs_hidden": "Alla verktygsfältsflikar är dolda. Klicka på + eller högerklicka här för att visa en.",
"ui.top": "Ovan",
"ui.top_diameter": "Toppdiameter",
"ui.top_radius": "Toppradie",
@@ -4210,6 +4603,7 @@
"ui.visual_shaded_with_edges": "Skuggad med kanter",
"ui.visual_style": "Visuell stil",
"ui.visual_wireframe": "Trådram",
"ui.wheel_zoom_speed": "Zoomhastighet för mushjulet",
"ui.width": "Bredd",
"ui.window_system": "Fönstersystem",
"ui.window_system_auto": "Automatiskt",
@@ -4261,6 +4655,9 @@
"update.prefs_label": "Uppdateringar",
"update.prefs_note": "Detta är SolidCraft {version} ({kind}). En sökning frågar GitHub efter den senaste utgåvan och skickar inget annat.",
"update.prefs_web": "Läs in sidan igen för att få den senaste webbappen. Om nätverket inte är tillgängligt eller om uppdateringen inte hinner laddas ned i tid öppnas den sparade versionen i stället; en nedladdning som pågår fortsätter till nästa omläsning.",
"update.refresh_checking": "Söker efter den senaste utgåvan…",
"update.refresh_fallback": "Kunde inte söka efter en nyare utgåva; uppdaterar till {version}, som hittades tidigare.",
"update.refresh_selected": "Uppdaterar till {version}.",
"update.release_page": "Öppna utgåvesidan",
"update.restart": "Starta om nu",
"update.restart_later": "Senare",
+380
View File
@@ -204,6 +204,7 @@
"Edges": "Kenarlar",
"Edit": "Düzenle",
"Edit Profile Sketch": "Profil eskizini düzenle",
"Edit shortcuts": "Kısayolları düzenle",
"Enable rule": "Kuralı etkinleştir",
"Enabled": "Etkin",
"End Radius": "Bitiş yarıçapı",
@@ -466,6 +467,7 @@
"Radius": "Yarıçap",
"Radius Fit": "Yarıçap uydurma",
"Ratio": "Oran",
"Read-only list: shortcuts can't be changed here.": "Salt okunur liste: kısayollar burada değiştirilemez.",
"Reattach selected face": "Seçili yüze yeniden bağla",
"Recover": "Kurtar",
"Recover unsaved design?": "Kaydedilmemiş tasarım kurtarılsın mı?",
@@ -649,6 +651,7 @@
"Third point": "Üçüncü nokta",
"This child is shared. Deleting it removes it from every copy of its parent.": "Bu alt öğe paylaşılıyor. Silindiğinde üst öğesinin tüm kopyalarından kaldırılır.",
"This child is shared. Position changes apply to every copy of its parent.": "Bu alt öğe paylaşılıyor. Konum değişiklikleri üst öğesinin tüm kopyalarına uygulanır.",
"This component is inside a subassembly placed more than once: aligning it moves it in every placement.": "Bu bileşen, birden fazla kez yerleştirilmiş bir alt montajın içinde: onu hizalamak, onu her yerleşimde taşır.",
"This face cannot provide a durable attachment. Choose another face or explicitly use a fixed plane.": "Bu yüz kalıcı bir bağlama sağlayamaz. Başka bir yüz seçin veya açıkça sabit bir düzlem kullanın.",
"This image is not attached to GitHub yet. Copy or save it, then attach it on GitHub.": "Bu görüntü henüz GitHub'a eklenmedi. Kopyalayın veya kaydedin, ardından GitHub'a ekleyin.",
"Thread depth": "Diş derinliği",
@@ -790,6 +793,11 @@
"cam.roller": "Makara",
"cam.roller_pick": "Makara (isteğe bağlı)",
"cam.tip_pick": "Uç (isteğe bağlı)",
"camera.shot_pitch": "Yatıklık",
"camera.shot_roll": "Yuvarlanma",
"camera.shot_yaw": "Sapma",
"canvas.decal_place_hint": "Çıkartmayı yerleştirmek için bir yüze tıklayın",
"canvas.place_hint": "Tuvali yerleştirmek için bir düzleme veya yüze tıklayın",
"choose a profile": "bir profil seçin",
"choose the cam's and the follower's joints": "kamın ve izleyicinin bağlantılarını seçin",
"choose the joints to couple": "eşlenecek bağlantıları seçin",
@@ -797,9 +805,12 @@
"click sketch curves": "eskiz eğrilerine tıklayın",
"cmd.appearance_assign": "Görünüm",
"cmd.appearance_chain": "Görünüm zinciri",
"cmd.appearance_copy": "Görünümü Kopyala",
"cmd.appearance_favorite": "Favori Görünüm",
"cmd.appearance_library": "Görünüm kitaplığı",
"cmd.appearance_list": "Görünümleri listele",
"cmd.appearance_paint": "Görünümü Boya",
"cmd.appearance_paste": "Görünümü Yapıştır",
"cmd.appearance_pick_up": "Görünümü Al",
"cmd.appearance_replace": "Görünümü Değiştir",
"cmd.assembly_bom": "Malzeme listesi",
@@ -810,6 +821,7 @@
"cmd.browser_move": "Tarayıcı öğelerini taşı",
"cmd.browser_order": "Tarayıcı öğelerini sırala",
"cmd.browser_rename_group": "Grubu yeniden adlandır",
"cmd.browser_reparent": "Bileşene Taşı",
"cmd.browser_ungroup": "Grubu çöz",
"cmd.browser_visibility": "Göster/Gizle",
"cmd.canvas_calibrate": "Tuvali kalibre et",
@@ -836,7 +848,9 @@
"cmd.component_metadata": "Parça özellikleri",
"cmd.component_metadata_set": "Parça özelliklerini değiştir",
"cmd.component_move_bodies": "Gövdeleri bileşene taşı",
"cmd.component_move_features": "Özellikleri bileşene taşı",
"cmd.component_move_sketches": "Eskizleri bileşene taşı",
"cmd.component_paste_from_design": "Başka Bir Tasarımdan Yapıştır",
"cmd.component_paste_new": "Yeni olarak yapıştır",
"cmd.component_properties": "Bileşenin fiziksel özellikleri",
"cmd.component_relink": "Kaynağı yeniden bağla",
@@ -973,6 +987,7 @@
"cmd.motion_trace": "Hareket izi",
"cmd.motion_trace_edit": "Hareket İzini Düzenle",
"cmd.motion_trace_keep": "Hareket izini koru",
"cmd.occurrence_align": "Örneği Hizala",
"cmd.occurrence_copy": "Yapıştır (örnek)",
"cmd.occurrence_drag": "Tekrarı Taşı",
"cmd.occurrence_ground": "Sabitle",
@@ -1030,11 +1045,17 @@
"cmd.render_library_surface_unbind": "Yüzey Bağlamını Kaldır",
"cmd.render_library_targets": "Render Kitaplık Hedeflerini Bul",
"cmd.render_lights_add": "Işık Ekle",
"cmd.render_lights_duplicate": "Render Işığını Çoğalt",
"cmd.render_lights_list": "Render Işıklarını Listele",
"cmd.render_lights_mute": "Işığı Sustur",
"cmd.render_lights_remove": "Render Işığını Kaldır",
"cmd.render_lights_set": "Render Işığını Ayarla",
"cmd.render_lights_solo": "Işığı Solo Yap",
"cmd.render_optics_bind": "Optik Bağlamı Kaydet",
"cmd.render_optics_unbind": "Optik Bağlamı Kaldır",
"cmd.render_output_size": "Render Çıktı Boyutunu Ayarla",
"cmd.render_preflight": "Render isteğini kontrol et",
"cmd.render_preflight_copy": "Render Kontrol Raporunu Kopyala",
"cmd.render_preset_apply": "Yerli Stüdyoyu Uygula",
"cmd.render_preset_resolve": "Yerli Stüdyoyu İncele",
"cmd.render_quality_prepare": "Sabit Örnekleme Bütçesini İncele",
@@ -1057,6 +1078,13 @@
"cmd.render_start": "Resmi render et",
"cmd.render_status": "Render ilerlemesi",
"cmd.select_clear": "Seçimi temizle",
"cmd.settings_profile_apply": "Ayar Profilini Uygula",
"cmd.settings_profile_delete": "Ayar Profilini Sil",
"cmd.settings_profile_export": "Ayar Profilini Dışa Aktar",
"cmd.settings_profile_import": "Ayar Profilini İçe Aktar",
"cmd.settings_profile_list": "Ayar Profilleri",
"cmd.settings_profile_rename": "Ayar Profilini Yeniden Adlandır",
"cmd.settings_profile_save": "Ayar Profilini Kaydet",
"cmd.sheet_convert": "Sac metale dönüştür",
"cmd.sheet_export_bend_table": "Büküm tablosunu dışa aktar",
"cmd.sheet_export_dxf": "Açınımı DXF olarak dışa aktar",
@@ -1070,6 +1098,16 @@
"cmd.sheet_refold": "Yeniden katla",
"cmd.sheet_rules": "Sac metal kurallarını listele",
"cmd.sheet_unfold": "Katlamayı aç",
"cmd.sketch.construction_line": "Yardımcı doğru",
"cmd.sketch.construction_line.angle": "Açılı yardımcı doğru",
"cmd.sketch.construction_line.bisector": "Açıortay",
"cmd.sketch.construction_line.horizontal": "Yatay yardımcı doğru",
"cmd.sketch.construction_line.parallel": "Paralel yardımcı doğru",
"cmd.sketch.construction_line.perpendicular": "Dik yardımcı doğru",
"cmd.sketch.construction_line.tangent_at": "Eğri noktasındaki teğet",
"cmd.sketch.construction_line.tangent_external": "Dış noktadan geçen teğet",
"cmd.sketch.construction_line.tangent_two": "Ortak teğet",
"cmd.sketch.construction_line.vertical": "Dikey yardımcı doğru",
"cmd.sketch_arc3d": "3B Yay",
"cmd.sketch_arc_center_point": "Merkez noktalı yay",
"cmd.sketch_arc_tangent": "Teğet yay",
@@ -1102,6 +1140,8 @@
"cmd.sketch_drawing_bounds": "Çizim Boyutu",
"cmd.sketch_edit": "Eskizi düzenle",
"cmd.sketch_edit_text": "Metni düzenle",
"cmd.sketch_equation_curve": "Denklem Eğrisi",
"cmd.sketch_equation_curve_edit": "Denklem Eğrisini Düzenle",
"cmd.sketch_export_dxf": "DXF olarak kaydet",
"cmd.sketch_finish_auto_constrain": "Otomatik kısıtlamayla bitir",
"cmd.sketch_fit_curves_to_section": "Eğrileri ağ kesitine uydur",
@@ -1198,6 +1238,7 @@
"cmd.view.render_browser": "Render tarayıcısı",
"cmd.view.render_dock": "Render panelini taşı",
"cmd.view.render_focus": "Render odak görünümü",
"cmd.view.status_items": "Görünüm Alanı Durum Öğeleri",
"cmd.view_ambient_occlusion": "Ortam tıkanması",
"cmd.view_angle_readout": "Görünüm açıları",
"cmd.view_apply": "Adlandırılmış görünümü geri yükle",
@@ -1219,6 +1260,7 @@
"cmd.view_normal_to": "Seçime Dik",
"cmd.view_previous_tab": "Önceki Sekme",
"cmd.view_rename": "Adlandırılmış görünümü yeniden adlandır",
"cmd.view_render_frame": "Render Kadraj Kılavuzları",
"cmd.view_right": "Sağ Görünüm",
"cmd.view_save": "Yeni adlandırılmış görünüm",
"cmd.view_shots_strip": "Çekim Şeridi",
@@ -1229,10 +1271,14 @@
"color.copy": "Renk değerlerini kopyalamak için tıklayın",
"color.edit": "Rengi düzenlemek için tıklayın",
"color.gamma": "Renk değerleri 0-255 gama uzayında gösteriliyor",
"color.hex": "Hex",
"color.hex_help": "#rrggbb veya #rrggbbaa girin; altı hane opaklığı korur",
"color.hex_hint": "#rrggbb",
"color.hue": "Ton",
"color.linear": "Renk değerleri 0-1 doğrusal uzayda gösteriliyor",
"color.saturation_value": "Doygunluk ve değer",
"color.selected": "Seçili renk",
"config.column_filter_empty": "Eşleşen sütun yok",
"contact.components_count": "{count} bileşen",
"contact.enabled_label": "etkin",
"coupling.gear_1": "Dişli 1",
@@ -1350,6 +1396,7 @@
"help.occurrence.move": "Montaj parçasını yalnızca eklemlerinin izin verdiği serbestliklerde taşır. Bir parça yüzü seçtikten sonra kullanılabilir oku veya yayı sürükleyin.",
"help.parameters.change": "Tasarımın ölçülerini yöneten adlandırılmış değerlerin ve ifadelerin tablosunu açar. Bir ölçüyü tek yerden değiştirip onu kullanan her özelliğin buna uymasını sağlamak için kullanın.",
"help.pointcloud.insert": "PLY, XYZ veya PTS taramasını modelin yanına nokta bulutu olarak ekler. Ölçülmüş verilerden model oluştururken referans olarak kullanın.",
"help.sketch.equation_curve": "Formüllerden bir eğri çizer: bir aralık boyunca x(t) ve y(t) ya da y = f(x). Formüller parametre kullanabilir ve eğri onları izler: sinüs dalgası, spiral veya bir dişli dişinin evolventi için kullanın.",
"help.solid.align": "Seçili gövdeleri, üzerlerindeki bir nokta, yüz veya düzlem başka bir yerdeki nokta, yüz veya düzlemle buluşacak şekilde taşır. Ofseti ölçmeden bir parçayı diğerinin yanına yerleştirmek için kullanın.",
"help.solid.chamfer": "Seçili kenarları, belirlediğiniz mesafede düz bir pahla keser. Keskin kenarları kırmak veya bir pim ya da vidanın girişini kolaylaştırmak için kullanın.",
"help.solid.combine": "Gövdeleri birleştirir, bir hedef gövdeden çıkarır veya yalnızca paylaştıkları hacmi tutar ve araç gövdelerini tutabilir. Parçaları kaynaştırmak, bir şekli diğeriyle kesmek veya iki gövdenin örtüştüğü yeri bulmak için kullanın.",
@@ -1585,6 +1632,8 @@
"nav.maya.help": "Alt+sol sürükleme döndürür, Alt+orta kaydırır, Alt+sağ yakınlaştırır; orta sürükleme ayrıca kaydırır",
"nav.openscad.help": "Boşlukta sol sürükleme döndürür, Shift+sol sürükleme kutu seçimi yapar, eskiz geometrisi sürükleyerek düzenlenir; sağ veya orta sürükleme kaydırır, Shift+sağ veya Shift+orta sürükleme yakınlaştırır",
"nav.perspective.sketch": "Eskiz düzenleme dik görünüm kullanır. Perspektife geçmek için eskizi bitirin.",
"nav.right_drag_orbits.help": "Kapalı: sağ sürükleme kameraya dokunmaz ve sağ tuş yalnızca bağlam menüsünü açar. SolidWorks fare eşlemesini seçmek bunu kapatır.",
"nav.right_drag_orbits.label": "Sağ sürükleme döndürür",
"nav.solidworks.help": "Orta sürükleme döndürür, Ctrl+orta kaydırır, Shift+orta yakınlaştırır, sağ sürükleme döndürür",
"nav.tinkercad.help": "Sağ sürükleme döndürür, orta veya Shift+sağ sürükleme kaydırır",
"nav.touchpad.help": "Kaydırmak için Shift tuşunu basılı tutun ve imleci hareket ettirin; Alt/Option ile döndürün. Fare tuşu gerekmez. Dikey kaydırma yakınlaştırır.",
@@ -1606,6 +1655,9 @@
"navbar.custom.customise": "Gezinme çubuğunu özelleştir…",
"navbar.custom.design": "Tasarım",
"navbar.custom.duplicate": "Bu yuva zaten çubukta.",
"navbar.custom.edge": "Kenar",
"navbar.custom.edge_bottom": "Alt",
"navbar.custom.edge_top": "Üst",
"navbar.custom.fade": "Soldur",
"navbar.custom.full": "Başka bir yuva eklemek için bir yuvayı kaldırın.",
"navbar.custom.hidden_design": "Tasarımda gizli",
@@ -1712,6 +1764,7 @@
"parts.dimension.thickness": "Kalınlık",
"parts.dimension.width": "Genişlik",
"parts.family.bearing": "Derin oluklu bilyeli rulman (zarf)",
"parts.family.button_head_cap_screw": "Mercimek başlı alyan cıvata",
"parts.family.dowel_pin": "Silindirik pim (paralel)",
"parts.family.hex_bolt": "Altıgen başlı cıvata / vida",
"parts.family.hex_nut": "Altıgen somun",
@@ -1770,6 +1823,9 @@
"prefs.bottom_centre": "Alt orta",
"prefs.bottom_right": "Sağ alt",
"prefs.browser": "Tarayıcı",
"prefs.browser_reveal_on_hover": "Üzerine gelince göster",
"prefs.browser_show_note": "Görünür, tarayıcıyı ekranda tutar. Üzerine gelince göster, imleç onun yerine veya sol kenarındaki ince sekmeye gelene kadar onu gizli tutar; imleç içindeyken veya ondan açılan bir menü açıkken açık kalır.",
"prefs.browser_shown": "Görünür",
"prefs.built_in": "Yerleşik",
"prefs.button_left": "Sol sürükleme",
"prefs.button_middle": "Orta sürükleme",
@@ -1840,6 +1896,8 @@
"prefs.layout_note": "Sıkışık, panelleri pencere kenarlarına yerleştirir. Tarayıcı yarı saydamlığı Yüzen düzende kullanılabilir. Asistan tarafını Asistan sayfasından değiştirin.",
"prefs.left": "Sol",
"prefs.left_click": "Sol tıklama",
"prefs.line_drag_draws_one": "Basıp sürüklemek tek çizgi çizer",
"prefs.line_drag_draws_one_note": "Çizgi aracında basmak, sürüklemek ve bırakmak, basılan yerden bırakılan yere tek bir çizgi çizer ve çizim orada biter. Tıklamalar yine bir zincir çizer. Kapalı: sürükleme, tıklama gibi, bırakıldığı yere bir nokta koyar.",
"prefs.linked_designs": "Bağlı tasarımlar",
"prefs.live_input": "Canlı girdi",
"prefs.live_preview": "Canlı önizleme",
@@ -1872,14 +1930,36 @@
"prefs.origin_plane_names": "Orijin düzlemi adları",
"prefs.origin_plane_names_note": "Tarayıcıda, diyaloglarda ve listelerde gösterilen adlar. Z yukarı olmak üzere {top} XY, {front} XZ ve {right} YZ'dir. Komutlar, betikler ve kayıtlı tasarımlar XY, XZ ve YZ adlarını korur.",
"prefs.overall_speed": "Genel hız",
"prefs.perspective_fov": "Görüş alanı",
"prefs.placement": "Yerleşim",
"prefs.prefer_free_sketch_points": "Noktalar örtüştüğünde hareketli eskiz noktalarını tercih et",
"prefs.preview_choices": "Seçimlerinizin önizlemesi",
"prefs.profile_active": "Etkin profil",
"prefs.profile_applied": "Profil uygulandı.",
"prefs.profile_changed": "Profil kaydedildikten sonra ayarlar değişti. Kaydet, onları profilde saklar.",
"prefs.profile_deleted": "Profil silindi.",
"prefs.profile_export": "Dışa aktar…",
"prefs.profile_exported": "Profil dışa aktarıldı.",
"prefs.profile_imported": "Profil içe aktarıldı. Ona geçmek için Etkin profil altında seçin.",
"prefs.profile_name_hint": "Profil adı, ör. Dizüstü",
"prefs.profile_rename": "Yeniden adlandır",
"prefs.profile_renamed": "Profil yeniden adlandırıldı.",
"prefs.profile_save": "Kaydet",
"prefs.profile_saved": "Geçerli ayarlar profile kaydedildi.",
"prefs.profile_skipped": "Profil uygulandı; {n} ayar geçerli değerini korudu (günlüğe bakın).",
"prefs.profiles": "Ayar profilleri",
"prefs.profiles_note": "Kısayollar, araç çubuğu, gezinme, radyal menü ve arayüz ayarları; tek bir ad altında birlikte saklanır ve tek seferde değiştirilir.",
"prefs.project_options_dialog": "Yansıtma seçenekleri diyaloğu",
"prefs.project_options_dialog_note": "Açık: yansıtmadan önce Geometri veya Gövdeler ile Yansıtma bağını seçin. Kapalı: önceki doğrudan seçim iş akışını korur.",
"prefs.quality_default": "varsayılan",
"prefs.quality_fastest": "en hızlı",
"prefs.quality_slowest": "en yavaş",
"prefs.quality_smoother": "daha pürüzsüz",
"prefs.render_previous_geometry_budget": "Önceki Render önizleme geometri bütçesini kullan",
"prefs.render_previous_geometry_budget_help": "Cihaza dayalı bütçe yerine önceki sabit geometri sınırını (64 bit masaüstünde 512 MiB, diğer yerlerde 128 MiB) geri getirir.",
"prefs.reports_saved": "{n} kayıtlı",
"prefs.ribbon_reveal": "Arama sonuçlarını şeritte göster",
"prefs.ribbon_reveal_note": "Komutlarda ara içindeki bir sonucun üzerine gelmek, komutun şeritte nerede olduğunu gösterir: sekmesini, düğmesini veya bir panelin açılır menüsündeki satırını. Aramadan başlatılan bir komut orada yanıp söner ve bir açılır menüden çalışan bir komut panelini işaretler.",
"prefs.right_click": "Sağ tıklama",
"prefs.saving": "Otomatik kayıt ve kurtarma",
"prefs.scale_note": "Pencerede ayrıca Ctrl + / Ctrl −. Düğmeler %100'de 28 px.",
@@ -1893,6 +1973,10 @@
"prefs.shift_add_ctrl_toggle": "Shift yalnızca ekler; Ctrl / Cmd değiştirir",
"prefs.shift_add_note": "Açık: Shift ekler, Ctrl / Cmd değiştirir. Kapalı (varsayılan): ikisi de değiştirir.",
"prefs.shortcuts": "Kısayollar",
"prefs.single_surface_analysis": "Tek bir yüzey analizi kullan",
"prefs.single_surface_analysis_help": "Kapalıyken yüzey gölgelendirmesi ve Süreklilik birlikte açık kalabilir. Bunu açmak, en son başlatılan veya değiştirilen analizi tutar.",
"prefs.sketch_align_points": "Çizerken diğer eskiz noktalarıyla hizala",
"prefs.sketch_align_points_note": "Çizim sırasında bir nokta, noktalı bir kılavuzla aynı anda bir eskiz noktasıyla yatay, bir diğeriyle dikey olarak hizalanır ve tıklama her iki hizalamayı da korur. Kapalı: yalnızca önceki noktayla, her seferinde tek eksende.",
"prefs.sketch_conflict_colour": "Çakışan geometri çakışma renginde",
"prefs.sketch_conflict_colour_note": "Bir eskizin kısıtlamaları çakışırken, başarısız olan kısıtlamanın tuttuğu eğriler ve noktalar yalnızca simgesi veya ölçüsü değil, çakışma renginde de çizilir. Kapalıyken olağan renklerini korurlar.",
"prefs.sketch_exit_view": "Bir eskiz bittiğinde",
@@ -1900,6 +1984,8 @@
"prefs.sketch_exit_view.previous": "Önceki görünüme dön",
"prefs.sketch_exit_view.unless_rotated": "Döndürülmediyse dön",
"prefs.sketch_exit_view_note": "Eskizi Bitir, İptal veya çift Esc sonrası görünümün nereye gittiği.",
"prefs.sketch_recent_snap": "Son merkezlere ve orta noktalara otomatik yapış",
"prefs.sketch_recent_snap_note": "Çizim sırasında imleç, son iki daire merkezi veya düz kenar orta noktasından gelen kılavuzların kesiştiği yere yapışır. Kapalıyken bu kılavuzlar yalnızca görsel kalır ve imleç hareket etmez.",
"prefs.sketch_selection": "Eskiz ve seçim",
"prefs.sketch_selection_heading": "Eskiz ve seçim",
"prefs.sketch_selection_note": "Eskizlerin nasıl yapıştığı ve tıklamaların nasıl seçtiği.",
@@ -1937,7 +2023,14 @@
"prefs.toast_place": "Bildirimler",
"prefs.toggle_item": "Öğeyi ekleyin veya yeniden çıkarın",
"prefs.toolbar": "Araç çubuğu",
"prefs.toolbar_tabs": "Araç çubuğu sekmeleri",
"prefs.top": "Üst",
"prefs.trackpad_zoom_modifier": "İki parmakla kaydırarak yakınlaştırma tuşu",
"prefs.trackpad_zoom_modifier.alt": "⌥ / Alt",
"prefs.trackpad_zoom_modifier.cmd": "⌘",
"prefs.trackpad_zoom_modifier.ctrl": "Ctrl",
"prefs.trackpad_zoom_modifier.help": "Dikey kaydırmayla imlecin olduğu yere yakınlaştırmak için yalnızca bu tuşu basılı tutun. Kapalı, mevcut kaydırma davranışını korur.",
"prefs.trackpad_zoom_modifier.off": "Kapalı",
"prefs.translucent": "Yarı saydam",
"prefs.under_browser": "Tarayıcının altında",
"prefs.under_cursor": "İmlecin altında",
@@ -1947,9 +2040,14 @@
"prefs.view_confirm_corner": "Görünümün köşesinde Tamam ve İptal",
"prefs.view_confirm_corner_note": "Bir diyalog veya eskiz açıkken, görünümün sağ üstündeki bir onay işareti ve çarpı işareti, diyalogun Tamam ve İptal düğmelerinin ya da eskizi bitirip iptal etmenin işini yapar. Görünüm yönlendiricileri bunların altına iner.",
"prefs.viewport": "Görünüm alanı",
"prefs.viewport_background": "Arka plan",
"prefs.viewport_background_colour": "Renk",
"prefs.viewport_background_theme": "Temanın degradesi",
"prefs.wheel": "Tekerlek",
"prefs.wheel_trackpad": "Tekerlek ve trackpad",
"prefs.workspace": "Çalışma alanı",
"prefs.zoom_stop_at_model": "Yakınlaştırmayı modelde durdur",
"prefs.zoom_stop_at_model_tip": "3B fare ve cihaz uygulaması görünümün ortasındaki yüzeye doğru yakınlaştırır; sürükleyerek yakınlaştırma, sürüklemenin başladığı noktayı sabit tutar. Kapalı: yakınlaştırma modelin içinden geçebilir. Tekerlek ve iki parmakla sıkıştırma ayrı olarak İmlece doğru yakınlaştır ayarını kullanır",
"prefs.zoom_toward_cursor": "Yakınlaştırma, imlece doğru",
"properties.title": "Özellikler: {name}",
"recovery.days_ago": "{count} gün önce",
@@ -2038,6 +2136,7 @@
"render.appearance_editor.weight": "Ağırlık",
"render.appearance_physics_separate": "Görsel görünüm yoğunluk, termal veri veya diğer mühendislik özelliklerini atamaz.",
"render.appearances": "Görünümler",
"render.assign_help": "Seçime uygulamak için tıklayın; önizleyip bırakmak için sürükleyin veya hiçbir şey seçili değilken boyamak için tıklayın.",
"render.availability_native": "Yerli kompozisyon; uygulamadan önce inceleyin",
"render.availability_projection": "Desteklenen yansıtma; kapsama ve atlamalara bakın",
"render.availability_reference": "Referans verisi; otomatik atama değildir",
@@ -2076,6 +2175,7 @@
"render.bloom_threshold": "Doğrusal vurgu eşiği",
"render.browse_capabilities": "Tam yetenek kataloğunu incele",
"render.browse_environments": "Orijinal HDR ortamlarına göz at",
"render.browse_looks": "Göz at…",
"render.browse_native_scenes": "Yerli stüdyolara göz at",
"render.browse_physical": "Fiziksel referansları incele",
"render.browse_quality": "Kalite özelliklerini incele",
@@ -2099,6 +2199,82 @@
"render.check_opaque": "Saydamlık: yalnızca opak yüzeyler; arka plan alfası desteklenir.",
"render.check_sorted_alpha": "Saydamlık: sıralı alfa yaklaşımı.",
"render.check_transmission": "Saydamlık: fiziksel geçirgenlik.",
"render.children.absolute_floor": "Mutlak taban",
"render.children.adaptive": "Adaptif",
"render.children.add_look_reason": "Etkin durumunu ve şiddetini düzenlemek için bir görünüm ekleyin.",
"render.children.all_shots": "Tüm çekimler",
"render.children.bloom": "Bloom",
"render.children.check": "Kontrol",
"render.children.check_now": "Şimdi kontrol et",
"render.children.chromatic": "Kromatik",
"render.children.compact": "Sıkışık",
"render.children.contrast": "Kontrast",
"render.children.copy_image": "Kopyala",
"render.children.copy_job": "İş JSON'unu kopyala",
"render.children.copy_request": "İstek JSON'unu kopyala",
"render.children.coverage_error": "Kapsama hatası",
"render.children.cpu": "CPU ışın izleme",
"render.children.denoise": "Bitmiş görüntüdeki gürültüyü azalt",
"render.children.depth": "Yol derinliği",
"render.children.distortion": "Bozulma",
"render.children.edge_samples": "Kenar örnekleri",
"render.children.effects_banner": "Bu efektler GPU yol izleme gerektirir. Bunu açmak yöntemi asla değiştirmez.",
"render.children.enable_adaptive": "Adaptif sınırları düzenlemek için bağımsız pilotları etkinleştirin.",
"render.children.enable_bloom": "Şiddetini, eşiğini ve yarıçapını düzenlemek için bloom'u etkinleştirin.",
"render.children.finishing": "Sonlandırma",
"render.children.flare": "Flare",
"render.children.fresnel": "Fresnel tabakaları",
"render.children.ghosts": "Hayalet halkalar",
"render.children.glass": "Cam taşınımı",
"render.children.go_to": "{editor} bölümüne git",
"render.children.grain": "Gren",
"render.children.halo": "Hale",
"render.children.hdr": "HDR",
"render.children.keep_master": "Ham doğrusal ana görüntüyü sakla",
"render.children.last_result": "Son: {number} · {width} × {height} · {phase}",
"render.children.lens_effects": "Mercek efektleri",
"render.children.look_summary": "{tone} · {count} görünüm",
"render.children.looks": "Yaratıcı görünümler",
"render.children.memory": "Bellek",
"render.children.method": "Yöntem",
"render.children.minimum": "En az",
"render.children.needs_cpu": "CPU ışın izleme gerektirir. Bunu açmak yöntemi asla değiştirmez.",
"render.children.nested": "Sertifikalı iç içe dielektrikler",
"render.children.not_checked": "Kontrol edilmedi",
"render.children.path": "Yol izleme",
"render.children.pilots": "Pilot örnekler",
"render.children.preview": "Önizleme yükü",
"render.children.progressive_reason": "Örnek sayısını ve tohumunu düzenlemek için Artımlı'yı seçin.",
"render.children.radius": "Yarıçap",
"render.children.reflect_depth": "Yansıma derinliği",
"render.children.reflect_samples": "Yansıma örnekleri",
"render.children.regrade": "Yeniden derecelendir",
"render.children.relative_error": "Göreceli hata",
"render.children.render": "Render",
"render.children.render_shot": "Çekimi render et",
"render.children.renderer": "İşleyici",
"render.children.renderers": "İşleyiciler",
"render.children.request": "Bu istek",
"render.children.reset_finishing": "Sonlandırmayı sıfırla",
"render.children.review_quality": "Bir kalite özelliğini incele…",
"render.children.rgb_gain": "RGB kazancı",
"render.children.samples": "Örnekler",
"render.children.sampling": "Örnekleme",
"render.children.saturation": "Doygunluk",
"render.children.scene_summary": "{bodies} gövde · {triangles} üçgen",
"render.children.seed": "Tohum",
"render.children.sharpening": "Keskinleştirme",
"render.children.single_image": "Tek görüntü",
"render.children.soft_focus": "Yumuşak odak",
"render.children.streak": "Çizgi",
"render.children.strength": "Şiddet",
"render.children.studio": "Stüdyo",
"render.children.threshold": "Eşik",
"render.children.tone": "Ton",
"render.children.under_hood": "Perde arkası",
"render.children.vignette": "Vinyet",
"render.children.workstation": "İş istasyonu",
"render.choose_look": "Önce Görünümler'de bir görünüm seçin",
"render.chromatic_offset": "Kromatik kenar kayması",
"render.clear_stage": "Kaydedilmiş sahneyi kaldır",
"render.copy_request": "JSON kopyala",
@@ -2350,8 +2526,33 @@
"render.flare_strength": "Vurgu flare şiddeti",
"render.flare_threshold": "Sahne-doğrusal flare eşiği",
"render.fold_browser": "Tarayıcıyı daralt",
"render.frame_aspect": "En-boy oranı",
"render.frame_centre_mark": "Merkez işareti",
"render.frame_copy_limit": "Kullanılabilir bir kopya çekim adı yok",
"render.frame_copy_name": "{name} kopya {number}",
"render.frame_custom": "Özel",
"render.frame_distance_unit": " × boyut",
"render.frame_duplicate": "Çoğalt",
"render.frame_exposure": "Pozlama",
"render.frame_fov": "Görüş alanı",
"render.frame_guides": "Kılavuzlar",
"render.frame_invalid_aspect": "Geçersiz en-boy oranı ön ayarı",
"render.frame_lens": "FOV {fov}° · ≈ {mm} mm",
"render.frame_name": "Ad",
"render.frame_output_size": "Çıktı boyutu",
"render.frame_photo": "3:2 · Fotoğraf",
"render.frame_portrait": "4:5 · Portre",
"render.frame_presets": "Kadraj ön ayarları",
"render.frame_presets_pending": "Çekim düzenleyicisiyle gelecek",
"render.frame_projection": "Projeksiyon",
"render.frame_render_shot": "Bu çekimi render et",
"render.frame_rule_thirds": "Üçler kuralı",
"render.frame_safe_area": "Güvenli alan",
"render.frame_shot_title": "Çekim · {name}",
"render.frame_square": "1:1 · Kare",
"render.frame_tall": "9:16 · Dikey",
"render.frame_thirds": "Üçte birler",
"render.frame_wide": "16:9 · Geniş ekran",
"render.gpu_depth": "En fazla yol derinliği",
"render.gpu_options_help": "Örnekler, derinlik, tohum ve pozlama bu kurulumla kaydedilir. Yalnızca etkin görüntü yöntemi kaydedilir.",
"render.gpu_path_failed": "GPU yol izleyici kullanılamıyor",
@@ -2379,6 +2580,7 @@
"render.heading_results": "SONUÇLAR",
"render.heading_shots": "ÇEKİMLER",
"render.hide_shots_label": "Çekim şeridini gizle",
"render.hover_look": "{object} · {look} · seçmek için tıklayın",
"render.image_advanced": "Gelişmiş GPU kontrolleri",
"render.image_cancelled": "Render iptal edildi",
"render.image_cancelling": "İptal ediliyor",
@@ -2525,17 +2727,95 @@
"render.library_uniform_ack": "Uzamsal veya gelişmiş efektler olmadan tek biçimli yaklaşımı kullan",
"render.library_usable": "Çalıştırılabilir yansıtmalar",
"render.library_users": "Kullanan gövdeler",
"render.light_aim": "Şuna yönelt",
"render.light_anchor_pending": "Işık koordinat çerçevesini değiştirmek henüz desteklenmiyor.",
"render.light_azimuth": "Azimut",
"render.light_backend_limit": "Işıkları düzenlemek için CPU ışın izleme veya açık bir GPU stüdyosu seçin. Eski GPU stüdyo ışıkları salt okunur kalır.",
"render.light_behaviour": "DAVRANIŞ",
"render.light_default_fill": "Dolgu ışığı",
"render.light_default_key": "Ana ışık",
"render.light_default_number": "Işık {number}",
"render.light_default_rim": "Kenar ışığı",
"render.light_delete": "Sil",
"render.light_distance": "Mesafe",
"render.light_duplicate": "Çoğalt",
"render.light_elevation": "Yükseklik açısı",
"render.light_gpu_punctual": "Nokta ve Spot ışıklar CPU ışın izleme ile kullanılabilir.",
"render.light_hard_shadow": "Bu ışığın gölgeleri serttir; ışık veren yumuşaklığı kullanılamıyor.",
"render.light_intensity": "Şiddet",
"render.light_missing": "Bu ışık artık yok. Tarayıcıda bir ışık seçin.",
"render.light_place_highlight": "Vurguya göre yerleştir",
"render.light_place_pending": "Vurguya göre yerleştirme, görünüm alanında ışık seçmeyi gerektirir ve henüz desteklenmiyor.",
"render.light_position": "KONUM",
"render.light_preview_help": "Canlı görünüm gölgesizdir; Alan ışıkları merkez örnekli bir yaklaşım kullanır. Render, tam ışık modelini kullanır.",
"render.light_product_centre": "Ürün merkezi",
"render.light_size": "Boyut",
"render.light_softness": "Yumuşaklık",
"render.light_temperature": "Renk sıcaklığı",
"render.light_temperature_help": "Yaklaşık kara cisim tonu; doğrusal RGB olarak kaydedilir.",
"render.light_type": "Tür",
"render.light_type_area": "Alan",
"render.light_type_point": "Nokta",
"render.light_type_spot": "Spot",
"render.light_type_sun": "Güneş",
"render.light_view_only": "Solo ve susturma bu görünümü ve render'larını etkiler; tasarıma asla kaydedilmez.",
"render.light_world_origin": "Dünya orijini",
"render.lighting_aim_point": "Hedef noktası",
"render.lighting_apply": "Ön ayarı uygula",
"render.lighting_area_samples": "Alan örnekleri",
"render.lighting_budget": "Bütçe",
"render.lighting_budget_help": "Sayılar salt okunurdur. Değiştirmek için ışık ekleyin, çoğaltın veya silin; sınırları yöntem belirler.",
"render.lighting_colour": "Renk",
"render.lighting_consent": "Yönlü ışıkları bu ön ayarla değiştir",
"render.lighting_custom": "Özel ışıklar",
"render.lighting_custom_help": "Özel'i seçmek, ön ayarı düzenlenebilir ışıklara dönüştürür; ağaçta her biri için bir satır.",
"render.lighting_direction": "Yön X Y Z",
"render.lighting_direction_help": "Ya da ışığa doğru bir yön yazın (X Y Z).",
"render.lighting_distance_unit": " × boyut",
"render.lighting_edge_u": "Kenar U vektörü",
"render.lighting_edge_v": "Kenar V vektörü",
"render.lighting_falloff": "Zayıflama",
"render.lighting_falloff_help": "Şiddet, referans mesafede belirtilir.",
"render.lighting_height": "Yükseklik V",
"render.lighting_minimum": "En az",
"render.lighting_mute": "Bu ışığı sustur",
"render.lighting_point": "Nokta",
"render.lighting_preset": "Stüdyo ön ayarı",
"render.lighting_preset_cpu": "Yönlü stüdyo ön ayarları CPU ışın izleme gerektirir. GPU aydınlatması açık Güneş ve Alan ışıkları kullanır.",
"render.lighting_preset_row": "Ön ayar",
"render.lighting_radiance": "Işınım",
"render.lighting_reference": "Referans",
"render.lighting_review_help": "Yönlü ışık listesinin yerini alır. Nokta ve alan ışıklarını, ortamı, gölgeleri, kamerayı ve diğer tüm çekim ayarlarını korur.",
"render.lighting_review_title": "Aydınlatma ön ayarını incele",
"render.lighting_samples_cpu": "Alan ışığı örnekleri CPU ışın izlemeye uygulanır.",
"render.lighting_samples_need_area": "Alan örneklerini ayarlamak için bir CPU alan ışığı ekleyin.",
"render.lighting_samples_reason": "Alan örnekleri 1, 4, 16 veya 64 olmalıdır.",
"render.lighting_shadow_cpu": "Gölge anahtarı CPU ışın izleme gerektirir. GPU yol izleme her zaman gölge düşürür.",
"render.lighting_shadows": "Gölge düşürsün",
"render.lighting_shadows_section": "Gölgeler ve örnekleme",
"render.lighting_shape": "Şekil",
"render.lighting_solo": "Bu ışığı solo yap",
"render.lighting_source": "Kaynak",
"render.lighting_source_section": "Işık kaynağı",
"render.lighting_spot_preserved": "Bu nokta ışık, türü değiştirilene kadar kaydedilmiş spot konisini korur.",
"render.lighting_sun_distance": "Güneş yönü mesafeden ve hedef noktasından bağımsızdır.",
"render.lighting_unsupported": "desteklenmiyor",
"render.lighting_used": "{used} / {limit}",
"render.lighting_width": "Genişlik U",
"render.lighting_world_position": "Dünya X Y Z",
"render.lights_fixed_to": "Işıklar şuna sabit",
"render.linear_help": "Giderme, pozlama, ton eşleme, filtreler ve arka plandan önce 32 bit float RGBA ana görüntüyü saklar. Doğrusal sRGB/D65; kapsama ile ön çarpımlı. Ek bellek açıkça kabul edilir. Sıkıştırma veya ek geçiş yoktur.",
"render.linear_retain": "Ham doğrusal EXR'ı sakla",
"render.linear_unavailable": "Seçilen tamamlanmış karede saklanmış EXR yok. Render'dan önce saklamayı etkinleştirin; eski bir PNG ham ışınımı geri getiremez.",
"render.look_add": "Renk görünümü ekle",
"render.look_applied": "{name} uygulandı",
"render.look_bleach": "Bleach-bypass esinli",
"render.look_cool": "Soğuk",
"render.look_cyanotype": "Siyanotip esinli",
"render.look_faded": "Solmuş baskı",
"render.look_material": "Malzeme",
"render.look_mono": "Tek renk",
"render.look_pasted": "Görünüm yapıştırıldı",
"render.look_sepia": "Sepya",
"render.look_strength": "Görünüm şiddeti",
"render.look_teal_orange": "Turkuaz / turuncu",
@@ -2611,9 +2891,11 @@
"render.output_advanced": "Gelişmiş",
"render.output_backend_ready": "Hazır",
"render.output_check": "Kontrol",
"render.output_check_failed": "Kontrol · hata",
"render.output_check_help": "Render başlatmadan bu isteği gözden geçirmek için Kontrol'ü çalıştırın.",
"render.output_check_summary": "Kontrol · Notlar: {count}",
"render.output_copy": "Kopyala",
"render.output_copy_report": "Raporu kopyala",
"render.output_destination": "Hedef",
"render.output_destination_help": "Tamamlanan görüntüyü dışa aktarırken hedef dosyayı seçin.",
"render.output_dimensions": "Boyut",
@@ -2623,6 +2905,7 @@
"render.output_fit": "Sığdır",
"render.output_format": "Biçim",
"render.output_format_status": "PNG, tamamlanmış tam görüntü görüntüsüdür. İsteğe bağlı GPU EXR, görüntü filtrelerinden önce ham sahne-doğrusal FLOAT32 ışınımını saklar. Dışa aktarma, önizleme önbelleğini veya başka bir işi asla ikame etmez.",
"render.output_grading": "Derecelendirme",
"render.output_image": "Görüntü",
"render.output_largest": "En çok {width} × {height}",
"render.output_lock_ratio": "En-boy oranını kilitle",
@@ -2632,6 +2915,8 @@
"render.output_quality_waiting": "kalite sözleşmesi bekleniyor",
"render.output_ratio_refused": "Bağlı boyut, bu yöntemin boyut sınırını aşıyor. Önceki boyut korunur; oranı kilitten çıkarın veya daha küçük bir değer seçin.",
"render.output_ready": "Render için hazır",
"render.output_run_check": "Kontrolü çalıştır",
"render.output_size_limit": "{method}: kenar başına en fazla {dimension} px ve {pixels} piksel. Sığan en büyük boyut: {width} × {height}.",
"render.output_size_ok": "Boyut uygun · {width} × {height} px",
"render.output_swap_orientation": "Genişlik ve yüksekliği değiştir",
"render.output_tools_inspector": "Boyutu ve biçimi Çıktı denetçisinde düzenleyin.",
@@ -2648,6 +2933,7 @@
"render.page_output": "Çıktı",
"render.page_scene": "Sahne",
"render.paint_label": "Boya",
"render.painting_with": "{name} ile boyanıyor",
"render.passive_stage": "Zemin ve pasif sahne",
"render.passive_stage_help": "Sonlu pasif paneller yalnızca render görüntülerine aittir. CAD gövdesi veya kütle eklemezler. Uygulamadan sonra yerleşim sabittir; ürün sınırlarıyla kesişen reddedilir. CPU dağınık sekme aydınlatması sağlamaz.",
"render.perspective": "Perspektif kamera",
@@ -2669,6 +2955,7 @@
"render.pick_help": "Gövde, Yüz veya Bileşen seçin. Temizlemek için boş alana tıklayın; Shift veya Ctrl ekler ya da seçimi tersine çevirir. Vurgular yalnızca canlı ürün görünümünde görünür.",
"render.pick_label": "Seç",
"render.pick_up_label": "Al",
"render.pick_up_prompt": "Görünümünü almak için bir nesneye tıklayın",
"render.pick_waiting": "Ürün seçimi henüz desteklenmiyor.",
"render.post_contrast": "Kontrast",
"render.post_gain_b": "Mavi kazancı",
@@ -2708,13 +2995,17 @@
"render.radial_distortion": "Radyal bozulma",
"render.radial_fit": "Ürünü Sığdır",
"render.radial_save": "Çekimi Kaydet",
"render.recent_looks": "Son görünümler",
"render.regrade_action": "Ham ana görüntüyü yeniden derecelendir (giderme yok)",
"render.regrade_help": "Bu sunum kontrollerini kullanarak seçilen tamamlanmış ham ana görüntüden ayrı bir PNG oluşturur. Işın izlemez, yakalanan boyutu/kamerayı/ışıkları değiştirmez veya EXR'ın üzerine yazmaz. Giderme yeniden uygulanmaz: ham ana görüntüler onun kılavuzlarını saklamaz. Türev, aynı iş kontrollerinden dışa aktarılabilir kalır.",
"render.regrade_label": "Yeniden derecelendir",
"render.reload_settings": "Kaydedilmiş ayarları yükle",
"render.remove_override": "Geçersiz Kılmayı Kaldır",
"render.replace_all": "Tümünü Değiştir",
"render.replace_ground": "Mevcut sahnenin değiştirilmesini onayla",
"render.replace_label": "Değiştir",
"render.replace_saved_surface": "Bu hedef için mevcut kaydedilmiş bağlamın yerini al",
"render.replace_with": "Şununla değiştir",
"render.restore_camera": "Kaydedilmiş kamerayı yükle",
"render.result_actual": "%100",
"render.result_actual_help": "Ekran pikseli başına bir görüntü pikseli.",
@@ -2766,14 +3057,28 @@
"render.saved_surface_remove": "Kaydedilmiş bağlamı kaldır",
"render.saved_surfaces": "Kaydedilmiş yüzey bağlamları",
"render.saved_surfaces_help": "Sabitlenmiş yerleşik haritalar, yerel milimetrelerde seçilen tekrarı izler. Değiştirilmiş veya eksik hedef bir hatadır, asla otomatik yeniden atama değildir.",
"render.scene_all_shots": "Tüm çekimler ({count})",
"render.scene_apply": "İncelenen stüdyoyu uygula",
"render.scene_batch_reason": "Tüm çekimler, henüz kullanılamayan kayıtlı çekim render kuyruğunu gerektirir.",
"render.scene_check_now": "Şimdi kontrol et",
"render.scene_check_passed": "Kontrol geçti · {notes} not",
"render.scene_check_stale": "Kontrol güncel değil · yeniden kontrol edin",
"render.scene_check_unchecked": "Henüz kontrol edilmedi · 0 not",
"render.scene_consent": "Aydınlatma, ortam, pozlama ve sahne değiştirmeyi onayla",
"render.scene_light_summary": "{environment} · {lights} ışık",
"render.scene_look_summary": "{looks} görünüm · {overrides} geçersiz kılma",
"render.scene_open_check": "Kontrolü Aç",
"render.scene_preserved_fields": "Kamera, örnekleme, boyutlar, optik bağlamlar, CAD geometrisi ve mühendislik malzemeleri korunur.",
"render.scene_preserves_design": "Görünen konu için aydınlatma ve pasif bir sahne oluşturun. Geometri, mühendislik malzemeleri ve kamera ayrı kalır.",
"render.scene_ready": "Render için hazır",
"render.scene_reminder": "Sahne tasarımı korur. Geometri, mühendislik özellikleri ve CAD, Render'dan asla değiştirilmez.",
"render.scene_reminders": "Hatırlatmalar",
"render.scene_renderer_ready": "{renderer} hazır",
"render.scene_replaces": "Şunların yerini alır",
"render.scene_review": "Çöz ve incele",
"render.scene_review_help": "Uygulamadan önce tam yerli kompozisyonu inceleyin. Bağlanmamış gelişmiş SCENE özellikleri ikame edilmez.",
"render.scene_scope_details": "Kompozisyon kapsama alanı",
"render.scene_stages": "Aşamalar",
"render.search_appearances": "{count} görünümde ara",
"render.setup_legacy_environment": "Bu eski kurulum, eski ortam dönüşü veya şiddeti kullanıyor. O değerler korunur; tam bir görüntü işi kaydetmeden önce onları açıkça dönüştürün.",
"render.setup_name": "Kurulumun adı",
@@ -2786,7 +3091,22 @@
"render.shell_tab_camera": "RENDER KAMERASI",
"render.shell_tab_lighting": "AYDINLATMA",
"render.shell_tab_scene": "RENDER SAHNESİ",
"render.shot_aperture": "Diyafram",
"render.shot_distance": "Mesafe",
"render.shot_dof": "Alan derinliği",
"render.shot_duplicate": "Kaydedilmiş çekimi çoğalt",
"render.shot_edit_output": "Çıktı'da düzenle",
"render.shot_exposure_reason": "Pozlama, CPU ışın izleme veya GPU yol izleme gerektirir.",
"render.shot_exposure_section": "Pozlama",
"render.shot_focus_distance": "Odak mesafesi",
"render.shot_fov_reason": "Görüş alanı perspektif projeksiyon gerektirir.",
"render.shot_frame_subject": "Konuyu çerçevele",
"render.shot_invalid_camera": "Kamera değerleri sonlu ve aralık içinde olmalıdır.",
"render.shot_lens": "Mercek",
"render.shot_lens_enable_reason": "Diyaframı ve odak mesafesini düzenlemek için alan derinliğini etkinleştirin.",
"render.shot_lens_gpu_reason": "Alan derinliği GPU yol izleme gerektirir.",
"render.shot_lens_perspective_reason": "Alan derinliği perspektif projeksiyon gerektirir.",
"render.shot_look_selection": "Seçime bak",
"render.shot_manager": "Kaydedilmiş çekimler",
"render.shot_new_name": "Yeni çekim adı",
"render.shot_remove": "Kaydedilmiş çekimi kaldır",
@@ -2794,6 +3114,9 @@
"render.shot_remove_title": "Kaydedilmiş çekim kaldırılsın mı?",
"render.shot_rename": "Kaydedilmiş çekimi yeniden adlandır",
"render.shot_saved_only": "Önce geçerli taslağı kaydedin. Çoğalt ve yeniden adlandır, tam kaydedilmiş seçenekleri ve kaynak referanslarını korur.",
"render.shot_selection_reason": "Hedeflemek için bir gövde veya yüz seçin.",
"render.shot_size": "Boyut",
"render.shot_target": "Hedef",
"render.shots_camera_changed": "Bu çekim kaydedildikten sonra kamera değişti",
"render.shots_name_help": "Geçerli çekim için benzersiz bir ad girin.",
"render.shots_no_result": "Henüz render yok",
@@ -3016,6 +3339,13 @@
"render.wait_pick_up": "henüz desteklenmiyor: ürün seçimi ve görünüm örnekleme",
"render.wait_replace": "henüz desteklenmiyor: bir görünümün tüm kullanımlarını değiştirme",
"render.wait_solo": "henüz desteklenmiyor: ışık görünürlüğü ve solo denetimleri",
"render.wear_applies_to": "Uygulandığı yer",
"render.wear_layer_count": "{count} katman",
"render.wear_layer_one": "{count} katman",
"render.wear_layers": "Katmanlar",
"render.wear_no_layers": "Katman yok",
"render.wear_selected_layer": "Seçili katman",
"render.wear_title": "Aşınma",
"sample.bracket.about": "2 mm sac metal kuralına göre kenar flanşları ve bir kenet içeren taban flanşı",
"sample.bracket.name": "Sac metal köşebent",
"sample.enclosure.about": "Dudak, vida göbekleri, dayanak ve geçmeli bağlantı içeren, içi boşaltılmış blok",
@@ -3049,6 +3379,7 @@
"select an axis": "bir eksen seçin",
"select an axis, a straight or circular edge, or a cylinder, cone or torus face first": "önce bir eksen, düz veya dairesel bir kenar ya da silindir, koni veya torus yüzü seçin",
"select bodies first": "önce gövdeleri seçin",
"select components first": "önce bileşenleri seçin",
"select corner points, or the two lines of one corner": "köşe noktalarını veya bir köşenin iki çizgisini seçin",
"select one corner point, or the two lines of one corner": "bir köşe noktasını veya bir köşenin iki çizgisini seçin",
"select sheet edges first": "önce sac kenarlarını seçin",
@@ -3067,6 +3398,7 @@
"settings.double_click_components": "Bir bileşeni etkinleştirmek veya bağlı bir bileşeni yerinde düzenlemek için çift tıklayın",
"settings.frame_rate_details_note": "Son karelerin sürelerinin grafiğini üzerine çizilen üçgenlerle, bir kare süresi histogramını ve GPU'nun çizdiklerini ekler. Göstermek veya gizlemek için görünümdeki kare hızına tıklayın.",
"settings.frame_rate_note": "Görünümün sağ alt köşesinde saniyedeki kare sayısını gösterir.",
"settings.insert_lists_open_designs": "Tasarım ekle, diğer sekmelerde açık olan tasarımları önce listeler",
"settings.measure_axis_distances": "X/Y/Z mesafelerini göster",
"settings.measure_axis_distances_help": "Ölç açıkken toplam mesafenin yanında dünya ekseni bileşen ölçülerini gösterir.",
"settings.msaa_applies_on_restart": "Kenar yumuşatma, SolidCraft bir sonraki başlatıldığında uygulanır",
@@ -3091,6 +3423,10 @@
"shortcut.unpin": "Sabitlemeyi kaldır",
"sketch is missing": "eskiz eksik",
"sketch.degrees_of_freedom": "{count} serbestlik derecesi",
"sketch.dimension_added_driven": "Eskiz bu ölçüyü zaten belirliyor, bu yüzden türetilmiş (referans) ölçü olarak eklendi",
"sketch.dimension_applied": "Ölçü uygulandı",
"sketch.dimension_applied_defined": "Ölçü uygulandı; `{name}` parametresi tanımlandı",
"sketch.dimension_applied_renamed": "Ölçü uygulandı; parametreye `{name}` adı verildi",
"sketch.dof_left": "Kalan serbestlik derecesi: {count}",
"sketch.dof_left_one": "Kalan serbestlik derecesi: {count}",
"sketch.draw_curves": "{linetype} olarak çiz",
@@ -3125,6 +3461,8 @@
"sketch_text.use_font_file": "{path} yazı tipi dosyasını kullan",
"solid": "katı",
"status.editing": "{name} düzenleniyor",
"status.navigation": "Fare eşlemesi: {mapping}",
"status.navigation_tip": "Farenin görünümü nasıl hareket ettirdiği. Başka bir eşleme seçmek için tıklayın",
"status.under_constrained": "Eksik kısıtlanmış ({count} serbestlik derecesi)",
"status.under_constrained_one": "Eksik kısıtlanmış ({count} serbestlik derecesi)",
"status.units_tip": "Tasarımın birimleri. Değiştirmek için tıklayın",
@@ -3158,8 +3496,10 @@
"timeline.delete_folders_tip": "Özelliklerini ve iç içe klasörlerini geçmişte tut",
"timeline.delete_folders_with_features_tip": "Klasörleri, içlerindeki her özellikle ve iç içe klasörleriyle birlikte sil",
"timeline.delete_many": "{count} Seçili Özelliği Sil",
"timeline.edited_rolled_back": "{name} değişti, ancak geçmiş işaretçisinden sonra olduğu için oluşturulmadı: sonucu görmek için işaretçiyi onun ötesine taşıyın",
"timeline.feature_error": "Hata: {message}",
"timeline.feature_hint": "Düzenlemek için çift tıklayın · sıralamak için sürükleyin · daha fazlası için sağ tıklayın",
"timeline.feature_rolled_back": "Geri sarıldı: geçmiş işaretçisinden sonra, bu yüzden oluşturulmadı",
"timeline.feature_warning": "Uyarı: {message}",
"timeline.group": "Yeni özellik klasörü oluştur",
"timeline.move_many": "Zaman çizelgesi öğelerini taşı",
@@ -3239,6 +3579,10 @@
"ui.3d_mouse_offer": "3D farenizi kalibre etmek, yer değiştirmiş veya ters dönmüş eksenleri düzeltir; hızını ve hissini ayarlar.",
"ui.3d_mouse_offer_never": "Bir daha gösterme",
"ui.3d_mouse_offer_swap": "Hidraw'a geç (doğrudan sürücü)",
"ui.3d_mouse_orbit": "Döndürme",
"ui.3d_mouse_orbit_classic": "Klasik",
"ui.3d_mouse_orbit_tip": "İzlenen: 3B fare, dönüş başladığında görünümü, görünümün ortasındaki model kısmının etrafında döndürür; bu kısım soluk bir topla işaretlenir. Klasik: görünümün merkezi etrafında",
"ui.3d_mouse_orbit_traced": "İzlenen",
"ui.3d_mouse_reading": "Okunan değer",
"ui.3d_mouse_reset_axes": "Eksen atamasını sıfırla",
"ui.3d_mouse_reset_view": "Görünümü sıfırla",
@@ -3623,6 +3967,7 @@
"ui.constant": "Sabit",
"ui.constraints_conflict": "Kısıtlamalar çakışıyor",
"ui.construction": "Yapı çizgisi",
"ui.construction.ribbon_label": "Yardımcılar",
"ui.context_menu": "Bağlam menüsü",
"ui.continuity_g0": "G0 kırık",
"ui.continuity_g1": "G1 teğet",
@@ -3714,6 +4059,14 @@
"ui.end_scale": "Bitiş ölçeği",
"ui.entities": "Öğeler",
"ui.equal": "Eşit",
"ui.equation_end": "Bitiş",
"ui.equation_explicit": "Açık fonksiyon",
"ui.equation_form": "Biçim",
"ui.equation_note": "Değişken düz bir sayıdır: sin(t) onu radyan olarak alır. Birimi olmayan bir sonuç tasarımın birimindedir.",
"ui.equation_parametric": "Parametrik",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Eşdeğer yarıçap",
"ui.expand": "Genişlet",
"ui.exportDxf": "DXF olarak dışa aktar…",
@@ -3779,6 +4132,7 @@
"ui.heading_design": "TASARIM",
"ui.heading_draft": "KONİKLİK",
"ui.heading_edit": "DÜZENLE",
"ui.heading_equation_curve": "DENKLEM EĞRİSİ",
"ui.heading_extrude": "EKSTRÜZYON",
"ui.heading_fillet": "YUVARLATMA",
"ui.heading_finish_editing": "DÜZENLEMEYİ BİTİR",
@@ -3870,6 +4224,10 @@
"ui.import_ellipsis": "İçe aktar…",
"ui.infinite": "Sonsuz",
"ui.insert": "Ekle",
"ui.insert_design.browse": "Göz at…",
"ui.insert_design.open_designs": "Açık tasarımlar",
"ui.insert_design.saved_file": "{name} kaydedilmemiş değişiklikler içeriyor, bu yüzden kaydedilmiş dosyası eklendi. Değişiklikleri almak için onu kaydedin, ardından Bağları güncelle'yi çalıştırın.",
"ui.insert_design.unsaved": "Kaydedilmemiş değişiklikler",
"ui.inspect": "İncele",
"ui.intersect": "Kesişim",
"ui.isolate": "Yalıt",
@@ -4019,6 +4377,18 @@
"ui.project": "Yansıt",
"ui.project_face_edges_sketch": "Yüz kenarlarını yeni eskizlere yansıt",
"ui.properties": "Özellikler",
"ui.properties.copy_matrix": "Matrisi kopyala",
"ui.properties.first_moments": "Birinci momentler",
"ui.properties.inertia": "Eylemsizlik momenti",
"ui.properties.inertia_note": "Kütle merkezine göre, dünya eksenlerinde (g·{unit}²)",
"ui.properties.inertia_unavailable": "Kullanılamıyor: bir gövdenin ağı kapalı değil.",
"ui.properties.inertia_x": "Ixx, Ixy, Ixz",
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Ölçülüyor…",
"ui.properties.measuring_failed": "Ölçüm tamamlanmadan durdu.",
"ui.properties.principal_axis": "Asal eksen {number}",
"ui.properties.principal_moments": "Asal momentler",
"ui.pull_direction": "Kalıptan çıkarma yönü",
"ui.quality": "Kalite",
"ui.quantity": "Adet",
@@ -4118,7 +4488,11 @@
"ui.sketch": "Eskiz",
"ui.sketch_dimension": "Eskiz ölçüsü",
"ui.sketch_grid": "Eskiz ızgarası",
"ui.sketch_intersect_geometry": "Geometri",
"ui.sketch_intersect_projection_link": "Yansıtma bağı",
"ui.sketch_intersect_selection_filter": "Seçim filtresi",
"ui.sketch_modifiers": "Eskiz değiştiricileri",
"ui.sketch_project_geometry": "Geometri",
"ui.sketch_scale": "Eskiz ölçeği",
"ui.sketches": "Eskizler",
"ui.slice": "Dilim",
@@ -4169,6 +4543,7 @@
"ui.tab_manage": "Yönet",
"ui.tab_sheet_metal": "Sac Metal",
"ui.tab_view": "Görünüm",
"ui.tab_weldments": "Kaynak",
"ui.tangent": "Teğet",
"ui.taper_angle": "Konik açı",
"ui.tapped": "Kılavuzlu",
@@ -4184,6 +4559,7 @@
"ui.tip_angle": "Uç açısı",
"ui.to_object": "Nesneye kadar",
"ui.tool_direction": "Takım yönü",
"ui.toolbar_tabs_hidden": "Tüm araç çubuğu sekmeleri gizli. Birini göstermek için + işaretine tıklayın veya buraya sağ tıklayın.",
"ui.top": "Üst",
"ui.top_diameter": "Üst çap",
"ui.top_radius": "Üst yarıçap",
@@ -4230,6 +4606,7 @@
"ui.visual_shaded_with_edges": "Kenarlarla gölgeli",
"ui.visual_style": "Görsel stil",
"ui.visual_wireframe": "Tel kafes",
"ui.wheel_zoom_speed": "Fare tekerleği yakınlaştırma hızı",
"ui.width": "Genişlik",
"ui.window_system": "Pencere sistemi",
"ui.window_system_auto": "Otomatik",
@@ -4281,6 +4658,9 @@
"update.prefs_label": "Güncellemeler",
"update.prefs_note": "Bu, SolidCraft {version} ({kind}). Denetim, GitHub'a en yeni sürümü sorar ve başka hiçbir şey göndermez.",
"update.prefs_web": "En yeni web uygulamasını almak için sayfayı yeniden yükleyin. Ağ kullanılamazsa veya güncelleme indirmesi zamanında bitiremezse bunun yerine kaydedilmiş sürüm açılır; süren bir indirme bir sonraki yeniden yükleme için devam eder.",
"update.refresh_checking": "En yeni sürüm denetleniyor…",
"update.refresh_fallback": "Daha yeni bir sürüm denetlenemedi; daha önce bulunan {version} sürümüne güncelleniyor.",
"update.refresh_selected": "{version} sürümüne güncelleniyor.",
"update.release_page": "Sürüm sayfasını aç",
"update.restart": "Şimdi yeniden başlat",
"update.restart_later": "Daha sonra",
+389
View File
@@ -181,6 +181,8 @@
"Designs you open or save appear here.": "Проєкти, які ви відкриваєте чи зберігаєте, з'являються тут.",
"Determined by To Object. Choose Angle to edit the angular extent.": "Визначається об'єктом призначення. Виберіть «Кут», щоб редагувати кутову протяжність.",
"Diameter": "Діаметр",
"Did this assembly open the wrong way up?": "Цю збірку відкрито догори ногами?",
"Did this part open the wrong way up?": "Цю деталь відкрито догори ногами?",
"Dimension new shapes": "Проставляти розміри нових фігур",
"Direction": "Напрямок",
"Discard": "Відхилити",
@@ -204,6 +206,7 @@
"Edges": "Ребра",
"Edit": "Змінити",
"Edit Profile Sketch": "Редагувати ескіз профілю",
"Edit shortcuts": "Редагувати комбінації клавіш",
"Enable rule": "Увімкнути правило",
"Enabled": "Увімкнено",
"End Radius": "Кінцевий радіус",
@@ -466,6 +469,7 @@
"Radius": "Радіус",
"Radius Fit": "Підгонка за радіусом",
"Ratio": "Співвідношення",
"Read-only list: shortcuts can't be changed here.": "Список лише для перегляду: тут не можна змінювати комбінації клавіш",
"Reattach selected face": "Повторно приєднати вибрану грань",
"Recover": "Відновити",
"Recover unsaved design?": "Відновити незбережений проєкт?",
@@ -599,6 +603,7 @@
"Square": "Квадрат",
"Stand it up": "Вирівняти",
"Stand it up: a quarter turn about X, as one Move feature you can undo.": "Вирівняти: поворот на чверть оберту навколо X як одна операція переміщення, яку можна скасувати.",
"Stand this assembly up?": "Вирівняти збірку по вертикалі?",
"Stand this part up?": "Вирівняти цю деталь?",
"Start angle": "Початковий кут",
"Start bulge": "Роздуття початку",
@@ -649,6 +654,7 @@
"Third point": "Третя точка",
"This child is shared. Deleting it removes it from every copy of its parent.": "Цей дочірній об'єкт спільний. Його видалення прибирає його з кожної копії батьківського.",
"This child is shared. Position changes apply to every copy of its parent.": "Цей дочірній об'єкт спільний. Зміни положення застосовуються до кожної копії батьківського.",
"This component is inside a subassembly placed more than once: aligning it moves it in every placement.": "Цей компонент розташований у підзбірці, що використовується кілька разів. Вирівнювання перемістить його в усіх екземплярах.",
"This face cannot provide a durable attachment. Choose another face or explicitly use a fixed plane.": "Ця грань не може забезпечити надійну прив'язку. Виберіть іншу грань або явно використайте фіксовану площину.",
"This image is not attached to GitHub yet. Copy or save it, then attach it on GitHub.": "Це зображення ще не додано до GitHub. Скопіюйте або збережіть його, а потім додайте на GitHub.",
"Thread depth": "Глибина різьби",
@@ -790,6 +796,11 @@
"cam.roller": "Ролик",
"cam.roller_pick": "Ролик (необов'язково)",
"cam.tip_pick": "Вістря (необов'язково)",
"camera.shot_pitch": "Тангаж",
"camera.shot_roll": "Крен",
"camera.shot_yaw": "Рискання",
"canvas.decal_place_hint": "Клацніть по грані, щоб розмістити декаль",
"canvas.place_hint": "Клацніть для розміщення",
"choose a profile": "виберіть профіль",
"choose the cam's and the follower's joints": "виберіть з'єднання кулачка й штовхача",
"choose the joints to couple": "виберіть з'єднання для зв'язування",
@@ -797,9 +808,12 @@
"click sketch curves": "клацніть криві ескізу",
"cmd.appearance_assign": "Вигляд",
"cmd.appearance_chain": "Ланцюг вигляду",
"cmd.appearance_copy": "Копіювати вигляд",
"cmd.appearance_favorite": "Додати до обраного",
"cmd.appearance_library": "Бібліотека виглядів",
"cmd.appearance_list": "Список виглядів",
"cmd.appearance_paint": "Нанести вигляд",
"cmd.appearance_paste": "Вставити вигляд",
"cmd.appearance_pick_up": "Взяти вигляд",
"cmd.appearance_replace": "Замінити вигляд",
"cmd.assembly_bom": "Специфікація матеріалів",
@@ -837,6 +851,7 @@
"cmd.component_metadata_set": "Змінити властивості деталі",
"cmd.component_move_bodies": "Перемістити тіла до компонента",
"cmd.component_move_sketches": "Перемістити ескізи до компонента",
"cmd.component_paste_from_design": "Вставити з іншого проєкту як компонент",
"cmd.component_paste_new": "Вставити як новий",
"cmd.component_properties": "Фізичні властивості компонента",
"cmd.component_relink": "Переприв'язати джерело",
@@ -973,6 +988,7 @@
"cmd.motion_trace": "Траєкторія руху",
"cmd.motion_trace_edit": "Змінити траєкторію руху",
"cmd.motion_trace_keep": "Зберегти траєкторію руху",
"cmd.occurrence_align": "Вирівняти екземпляр",
"cmd.occurrence_copy": "Вставити (екземпляр)",
"cmd.occurrence_drag": "Перетягнути екземпляр",
"cmd.occurrence_ground": "Закріпити",
@@ -1030,11 +1046,17 @@
"cmd.render_library_surface_unbind": "Видалити прив'язку поверхні",
"cmd.render_library_targets": "Знайти цілі бібліотеки рендерингу",
"cmd.render_lights_add": "Додати джерело світла",
"cmd.render_lights_duplicate": "Дублювати джерело світла",
"cmd.render_lights_list": "Список джерел світла",
"cmd.render_lights_mute": "Вимкнути/увімкнути джерело світла",
"cmd.render_lights_remove": "Видалити джерело світла",
"cmd.render_lights_set": "Налаштувати джерело світла",
"cmd.render_lights_solo": "Лише це світло",
"cmd.render_optics_bind": "Зберегти оптичну прив'язку",
"cmd.render_optics_unbind": "Видалити оптичну прив'язку",
"cmd.render_output_size": "Задати розмір виведення рендерингу",
"cmd.render_preflight": "Перевірити запит на рендеринг",
"cmd.render_preflight_copy": "Копіювати дані попередньої перевірки",
"cmd.render_preset_apply": "Застосувати вбудовану студію",
"cmd.render_preset_resolve": "Переглянути вбудовану студію",
"cmd.render_quality_prepare": "Переглянути фіксований бюджет вибірки",
@@ -1070,6 +1092,16 @@
"cmd.sheet_refold": "Зігнути назад",
"cmd.sheet_rules": "Список правил листового металу",
"cmd.sheet_unfold": "Розгорнути",
"cmd.sketch.construction_line": "Допоміжна пряма",
"cmd.sketch.construction_line.angle": "Допоміжна пряма під кутом",
"cmd.sketch.construction_line.bisector": "Бісектриса",
"cmd.sketch.construction_line.horizontal": "Горизонтальна допоміжна пряма",
"cmd.sketch.construction_line.parallel": "Паралельна допоміжна пряма",
"cmd.sketch.construction_line.perpendicular": "Перпендикулярна допоміжна пряма",
"cmd.sketch.construction_line.tangent_at": "Дотична в точці кривої",
"cmd.sketch.construction_line.tangent_external": "Дотична через зовнішню точку",
"cmd.sketch.construction_line.tangent_two": "Спільна дотична",
"cmd.sketch.construction_line.vertical": "Вертикальна допоміжна пряма",
"cmd.sketch_arc3d": "3D-дуга",
"cmd.sketch_arc_center_point": "Дуга за центром",
"cmd.sketch_arc_tangent": "Дотична дуга",
@@ -1102,6 +1134,8 @@
"cmd.sketch_drawing_bounds": "Розмір креслення",
"cmd.sketch_edit": "Редагувати ескіз",
"cmd.sketch_edit_text": "Редагувати текст",
"cmd.sketch_equation_curve": "Крива за рівнянням",
"cmd.sketch_equation_curve_edit": "Редагувати криву за рівнянням",
"cmd.sketch_export_dxf": "Зберегти як DXF",
"cmd.sketch_finish_auto_constrain": "Завершити з автообмеженням",
"cmd.sketch_fit_curves_to_section": "Підігнати криві до перерізу сітки",
@@ -1198,6 +1232,7 @@
"cmd.view.render_browser": "Браузер рендерингу",
"cmd.view.render_dock": "Перемістити док рендерингу",
"cmd.view.render_focus": "Вид фокусу рендерингу",
"cmd.view.status_items": "Елементи рядка стану",
"cmd.view_ambient_occlusion": "Окружне затінення",
"cmd.view_angle_readout": "Кути виду",
"cmd.view_apply": "Відновити іменований вид",
@@ -1219,6 +1254,7 @@
"cmd.view_normal_to": "Перпендикулярно до виділення",
"cmd.view_previous_tab": "Попередня вкладка",
"cmd.view_rename": "Перейменувати іменований вид",
"cmd.view_render_frame": "Кадр візуалізації",
"cmd.view_right": "Вид справа",
"cmd.view_save": "Новий іменований вид",
"cmd.view_shots_strip": "Стрічка кадрів",
@@ -1229,10 +1265,14 @@
"color.copy": "Клацніть, щоб скопіювати значення кольору",
"color.edit": "Клацніть, щоб змінити колір",
"color.gamma": "Значення кольору в гамма-просторі 0-255",
"color.hex": "HEX-код",
"color.hex_help": "Введіть колір у форматі #RRGGBB або #RRGGBBAA",
"color.hex_hint": "#rrggbb або #rrggbbaa",
"color.hue": "Відтінок",
"color.linear": "Значення кольору в лінійному просторі 0-1",
"color.saturation_value": "Насиченість і яскравість",
"color.selected": "Вибраний колір",
"config.column_filter_empty": "Немає збігів",
"contact.components_count": "Компонентів: {count}",
"contact.enabled_label": "увімкнено",
"coupling.gear_1": "Шестерня 1",
@@ -1277,6 +1317,7 @@
"dialog.dimension_insert_hint": "Двічі клацніть інший керівний розмір, щоб вставити його назву",
"dialog.dimension_name": "Розмір: {name}",
"dialog.edit_title": "РЕДАГУВАННЯ {title}",
"dialog.no_shown_body": "Немає видимих тіл для виконання операції",
"dialog.select": "↖ Вибрати",
"dialog.selected_count": "↖ Вибрано: {count}",
"dialog.selection_guidance": "Виберіть вхідні дані, щоб змінити їх. Клацніть вибрані об'єкти, щоб прибрати їх; натискання з Ctrl/Cmd також перемикає їх. Перегляньте попередній перегляд, а потім натисніть OK.",
@@ -1346,8 +1387,10 @@
"help.material.assign": "Задає, з чого зроблено вибрані тіла, наприклад зі сталі, алюмінію чи ABS. Використовуйте, щоб маса й вага відповідали справжній деталі.",
"help.mit": "Ліцензія MIT",
"help.notice": "NOTICE",
"help.occurrence.move": "Переміщує екземпляр компонента в збірці",
"help.parameters.change": "Відкриває таблицю іменованих значень і виразів, що керують розмірами проєкту. Використовуйте, щоб змінити розмір в одному місці, а всі операції, які його використовують, підлаштувалися.",
"help.pointcloud.insert": "Вставте скан у форматі PLY, XYZ або PTS як хмару точок поряд із моделлю. Використовуйте її як довідку під час побудови моделі за виміряними даними.",
"help.sketch.equation_curve": "Створює криву за параметричними рівняннями X(t), Y(t) у площині ескізу.",
"help.solid.align": "Переміщує вибрані тіла так, щоб точка, грань чи площина на них зійшлася з точкою, гранню чи площиною деінде. Використовуйте, щоб притиснути деталь до іншої, не вимірюючи зсуву.",
"help.solid.chamfer": "Зрізає вибрані ребра плоским скосом на заданій відстані. Використовуйте, щоб притупити гострі ребра або полегшити вставляння штифта чи гвинта.",
"help.solid.combine": "Об'єднує тіла, вирізає їх із цільового тіла або залишає лише спільний для них об'єм, і може зберегти тіла-інструменти. Використовуйте, щоб з'єднати деталі, вирізати одну форму іншою або знайти, де два тіла перекриваються.",
@@ -1374,6 +1417,8 @@
"help.timeline.compute_all": "Перебудовує кожну операцію часового ланцюжка з початку. Використовуйте, щоб оновити модель і побачити, які операції завершуються помилкою.",
"help.timeline.delete": "Видаляє вибрані операції з часового ланцюжка; видалення ескізу видаляє й операції, побудовані на ньому. Використовуйте, щоб прибрати крок, який більше не потрібен.",
"help.timeline.play": "Відтворює решту операцій по одній, із паузою в півсекунди після кожного перебудування. Виконайте цю команду ще раз або натисніть Esc, щоб зупинити; «Перейти в кінець» переходить одразу.",
"history.sketch_under_constrained": "Ескіз має {count} ступенів вільності",
"history.sketch_under_constrained_one": "Ескіз має {count} ступінь вільності",
"hole_presets.confirm_delete": "Підтвердити видалення",
"hole_presets.delete": "Видалити",
"hole_presets.delete_prompt": "Видалити цей особистий набір? Наявні отвори не зміняться.",
@@ -1474,6 +1519,21 @@
"joint.one_component": "Ці деталі - тіла одного компонента: {bodies}. З'єднання рухає один компонент відносно іншого, тому кожній деталі потрібен власний компонент.",
"joint.rigid_group_one_component": "Усі ці тіла ({count}) містяться в одному компоненті (або безпосередньо в проєкті): спершу скористайтеся {command}.",
"joint.rigid_group_select_components": "Виберіть два чи більше компонентів.",
"joint_move.blocked_hint": "Переміщення заблоковано обмеженнями з'єднання",
"joint_move.blocked_title": "Переміщення неможливе",
"joint_move.coarse": "Грубо",
"joint_move.distance": "Відстань",
"joint_move.done": "Готово",
"joint_move.fine": "Точно",
"joint_move.fixed": "Фіксовано",
"joint_move.help": "Перетягуйте або використовуйте кнопки кроку для переміщення з'єднання",
"joint_move.legacy_hint": "Для цього з'єднання доступне лише застаріле керування",
"joint_move.precision": "Точність",
"joint_move.rotation": "Поворот",
"joint_move.select": "Виберіть з'єднання для переміщення",
"joint_move.settings": "Налаштування переміщення",
"joint_move.step": "Крок",
"joint_move.use_handles": "Використовувати маніпулятори",
"keymap.command_id": "ID команди",
"keymap.empty": "Немає відповідних команд",
"keymap.use_anyway": "Усе одно використовувати тут {key}",
@@ -1568,6 +1628,8 @@
"nav.maya.help": "Alt+ліва обертає, Alt+середня панорамує, Alt+права масштабує; середня також панорамує",
"nav.openscad.help": "Ліва обертає по порожньому місцю, Shift+ліва виділяє рамкою, геометрію ескізу перетягують для редагування; права або середня панорамує, Shift+права або Shift+середня масштабує",
"nav.perspective.sketch": "Редагування ескізу використовує ортографічний вид. Завершіть ескіз, щоб увімкнути перспективу.",
"nav.right_drag_orbits.help": "Перетягування правою кнопкою миші обертає вид",
"nav.right_drag_orbits.label": "Обертання правою кнопкою",
"nav.solidworks.help": "Середня обертає, Ctrl+середня панорамує, Shift+середня масштабує, права обертає",
"nav.tinkercad.help": "Права обертає, середня або Shift+права панорамує",
"nav.touchpad.help": "Утримуйте Shift і рухайте вказівник, щоб панорамувати; утримуйте Alt/Option і рухайте, щоб обертати. Кнопка миші не потрібна. Вертикальна прокрутка масштабує.",
@@ -1589,6 +1651,9 @@
"navbar.custom.customise": "Налаштувати панель навігації…",
"navbar.custom.design": "Проєктування",
"navbar.custom.duplicate": "Цей слот уже є на панелі.",
"navbar.custom.edge": "Край панелі",
"navbar.custom.edge_bottom": "Нижній край",
"navbar.custom.edge_top": "Верхній край",
"navbar.custom.fade": "Згасання",
"navbar.custom.full": "Приберіть слот, щоб додати інший.",
"navbar.custom.hidden_design": "Приховано в проєктуванні",
@@ -1695,6 +1760,7 @@
"parts.dimension.thickness": "Товщина",
"parts.dimension.width": "Ширина",
"parts.family.bearing": "Радіальний кульковий підшипник (габарит)",
"parts.family.button_head_cap_screw": "Гвинт з циліндричною головкою та внутрішнім шестигранником",
"parts.family.dowel_pin": "Циліндричний штифт",
"parts.family.hex_bolt": "Болт / гвинт із шестигранною головкою",
"parts.family.hex_nut": "Шестигранна гайка",
@@ -1741,6 +1807,8 @@
"prefs.anti_aliasing_note": "Згладжує нерівні краї.",
"prefs.applies_on_restart": "Застосовується після перезапуску",
"prefs.assistant": "Асистент",
"prefs.auto_operation": "Автоматичний режим операцій",
"prefs.auto_operation_note": "Автоматично виконувати команди без додаткових запитів там, де це безпечно",
"prefs.axes": "Осі",
"prefs.axis": "Вісь",
"prefs.bodies_folders": "Теки тіл",
@@ -1751,6 +1819,9 @@
"prefs.bottom_centre": "Внизу по центру",
"prefs.bottom_right": "Внизу праворуч",
"prefs.browser": "Браузер",
"prefs.browser_reveal_on_hover": "Показувати в браузері при наведенні",
"prefs.browser_show_note": "Налаштування відображення браузера проєкту",
"prefs.browser_shown": "Показувати браузер",
"prefs.built_in": "Вбудована",
"prefs.button_left": "Перетягування лівою кнопкою",
"prefs.button_middle": "Перетягування середньою кнопкою",
@@ -1821,6 +1892,8 @@
"prefs.layout_note": "«Компактне» прикріплює панелі до країв вікна. Прозорість браузера доступна в режимі «Плаваюче». Сторону Асистента можна змінити на сторінці «Асистент».",
"prefs.left": "Ліворуч",
"prefs.left_click": "Клацання лівою",
"prefs.line_drag_draws_one": "Перетягування відрізка малює один елемент",
"prefs.line_drag_draws_one_note": "Замість безперервного малювання при перетягуванні",
"prefs.linked_designs": "Пов'язані проєкти",
"prefs.live_input": "Поточне введення",
"prefs.live_preview": "Попередній перегляд у реальному часі",
@@ -1853,13 +1926,18 @@
"prefs.origin_plane_names": "Назви площин початку координат",
"prefs.origin_plane_names_note": "Назви, що показуються в браузері, діалогах і списках. {top} — це XY, {front} — XZ, {right} — YZ, а Z спрямована вгору. Команди, скрипти й збережені проєкти зберігають XY, XZ і YZ.",
"prefs.overall_speed": "Загальна швидкість",
"prefs.perspective_fov": "Кут огляду перспективи",
"prefs.placement": "Розміщення",
"prefs.prefer_free_sketch_points": "Надавати перевагу рухомим точкам ескізу, коли точки перекриваються",
"prefs.preview_choices": "Перегляд ваших виборів",
"prefs.project_options_dialog": "Діалог параметрів проєкту",
"prefs.project_options_dialog_note": "Відкривати діалог параметрів проєкту замість бічної панелі",
"prefs.quality_default": "типово",
"prefs.quality_fastest": "найшвидше",
"prefs.quality_slowest": "найповільніше",
"prefs.quality_smoother": "плавніше",
"prefs.render_previous_geometry_budget": "Бюджет попередньої геометрії для візуалізації",
"prefs.render_previous_geometry_budget_help": "Максимальний обсяг пам'яті для кешу геометрії попереднього стану",
"prefs.reports_saved": "Збережено: {n}",
"prefs.right_click": "Клацання правою",
"prefs.saving": "Автозбереження й відновлення",
@@ -1874,6 +1952,10 @@
"prefs.shift_add_ctrl_toggle": "Shift лише додає; Ctrl / Cmd перемикає",
"prefs.shift_add_note": "Увімкнено: Shift додає, Ctrl / Cmd перемикає. Вимкнено (типово): обидва перемикають.",
"prefs.shortcuts": "Комбінації клавіш",
"prefs.single_surface_analysis": "Аналіз окремої поверхні",
"prefs.single_surface_analysis_help": "Виконувати аналіз лише для вибраної поверхні",
"prefs.sketch_align_points": "Вирівнювати точки ескізу",
"prefs.sketch_align_points_note": "Автоматично вирівнювати точки при наближенні",
"prefs.sketch_conflict_colour": "Конфліктна геометрія кольором конфлікту",
"prefs.sketch_conflict_colour_note": "Поки обмеження ескізу суперечать одне одному, криві та точки, які утримує проблемне обмеження, також малюються кольором конфлікту, а не лише його піктограма чи розмір. Вимкнено: вони зберігають свої звичайні кольори.",
"prefs.sketch_exit_view": "Коли ескіз завершується",
@@ -1884,6 +1966,8 @@
"prefs.sketch_selection": "Ескіз і вибір",
"prefs.sketch_selection_heading": "Ескіз і вибір",
"prefs.sketch_selection_note": "Як ескізи прив'язуються й як клацання вибирають.",
"prefs.sketch_state_icons": "Піктограми стану ескізу",
"prefs.sketch_state_icons_note": "Показувати стан обмежень та ступенів вільності біля точок",
"prefs.sketch_tab_always": "Завжди показувати вкладку «Ескіз»",
"prefs.sketch_tab_always_note": "Вкладка «Ескіз» залишається на стрічці одразу після вкладки «Модель», поки жоден ескіз не відкрито. Її інструменти креслення тоді запускають ескіз на вибраній площині чи грані або на площині, яку ви виберете далі, з уже готовим інструментом.",
"prefs.sketch_tracking_guides": "Допоміжні лінії вирівнювання за центром і середньою точкою",
@@ -1893,6 +1977,11 @@
"prefs.source": "Джерело",
"prefs.speed": "Швидкість",
"prefs.stand_up_note": "Коли файл STEP або IGES відкрито з віссю Z угору, пропонувати поворот на чверть оберту навколо X.",
"prefs.stand_up_unknown": "Вирівнювання файлів з невідомою орієнтацією",
"prefs.stand_up_unknown.ask": "Запитувати",
"prefs.stand_up_unknown.note": "Визначати орієнтацію для файлів із невідомим напрямком осей",
"prefs.stand_up_unknown.off": "Не вирівнювати",
"prefs.stand_up_unknown_note": "Що робити, якщо напрямок осей файлу невідомий (Y вгору чи Z вгору)",
"prefs.status_bar": "Рядок стану",
"prefs.status_bar_note": "Тонкий рядок уздовж нижнього краю вікна показує, що саме редагується, стан відкритого ескіза (його кольором) та одиниці проєкту; клацання по одиницях змінює їх. Тоді стан ескіза більше не показується в куті виду.",
"prefs.status_done": "Готово",
@@ -1918,7 +2007,14 @@
"prefs.toast_place": "Сповіщення",
"prefs.toggle_item": "Додати або прибрати елемент",
"prefs.toolbar": "Панель інструментів",
"prefs.toolbar_tabs": "Вкладки панелі інструментів",
"prefs.top": "Верх",
"prefs.trackpad_zoom_modifier": "Масштабування прокруткою двома пальцями з утриманням",
"prefs.trackpad_zoom_modifier.alt": "⌥ / Alt",
"prefs.trackpad_zoom_modifier.cmd": "⌘",
"prefs.trackpad_zoom_modifier.ctrl": "Ctrl",
"prefs.trackpad_zoom_modifier.help": "Утримуйте лише цю клавішу, щоб масштабувати в точці курсора вертикальною прокруткою. Вимкнено — поточна поведінка прокрутки зберігається.",
"prefs.trackpad_zoom_modifier.off": "Вимк.",
"prefs.translucent": "Напівпрозорий",
"prefs.under_browser": "Під браузером",
"prefs.under_cursor": "Під курсором",
@@ -1928,9 +2024,14 @@
"prefs.view_confirm_corner": "OK і Скасувати в куті виду",
"prefs.view_confirm_corner_note": "Поки відкрито діалог або ескіз, галочка й хрестик у правому верхньому куті виду роблять те саме, що OK і Скасувати в діалозі, або завершують і скасовують ескіз. Навігатор виду зсувається нижче.",
"prefs.viewport": "Вікно перегляду",
"prefs.viewport_background": "Фон вікна перегляду",
"prefs.viewport_background_colour": "Колір",
"prefs.viewport_background_theme": "Градієнт теми",
"prefs.wheel": "Колесо",
"prefs.wheel_trackpad": "Колесо й трекпад",
"prefs.workspace": "Робоча область",
"prefs.zoom_stop_at_model": "Зупиняти масштаб на моделі",
"prefs.zoom_stop_at_model_tip": "3D-миша та застосунок пристрою масштабують до поверхні в центрі виду; масштабування перетягуванням утримує точку початку. Вимкнено: масштаб може проходити крізь модель. Колесо й стискання окремо використовують «Масштаб до курсора»",
"prefs.zoom_toward_cursor": "Масштаб до курсора",
"properties.title": "Властивості: {name}",
"recovery.days_ago": "{count} дн. тому",
@@ -2019,6 +2120,7 @@
"render.appearance_editor.weight": "Вага",
"render.appearance_physics_separate": "Візуальний вигляд не задає густину, теплові дані чи інші інженерні властивості.",
"render.appearances": "Вигляди",
"render.assign_help": "Клацніть, щоб застосувати до виділення; перетягніть для попереднього перегляду й відпустіть або клацніть без виділення, щоб нанести.",
"render.availability_native": "Вбудована композиція; перегляньте перед застосуванням",
"render.availability_projection": "Підтримувана проєкція; див. обсяг і пропуски",
"render.availability_reference": "Довідкові дані; не автоматичне призначення",
@@ -2057,6 +2159,7 @@
"render.bloom_threshold": "Лінійний поріг відблисків",
"render.browse_capabilities": "Переглянути повний каталог можливостей",
"render.browse_environments": "Переглянути оригінальні середовища HDR",
"render.browse_looks": "Огляд…",
"render.browse_native_scenes": "Переглянути вбудовані студії",
"render.browse_physical": "Переглянути фізичні еталони",
"render.browse_quality": "Переглянути специфікації якості",
@@ -2080,6 +2183,82 @@
"render.check_opaque": "Прозорість: лише непрозорі поверхні; альфа-канал фону підтримується.",
"render.check_sorted_alpha": "Прозорість: наближення з сортуванням за альфою.",
"render.check_transmission": "Прозорість: фізичне пропускання світла.",
"render.children.absolute_floor": "Абсолютний поріг",
"render.children.adaptive": "Адаптивна вибірка",
"render.children.add_look_reason": "Додайте стиль, щоб змінити його ввімкнення та силу.",
"render.children.all_shots": "Усі кадри",
"render.children.bloom": "Світіння",
"render.children.check": "Перевірити",
"render.children.check_now": "Перевірити зараз",
"render.children.chromatic": "Хроматичне",
"render.children.compact": "Компактний",
"render.children.contrast": "Контраст",
"render.children.copy_image": "Копіювати",
"render.children.copy_job": "Копіювати JSON завдання",
"render.children.copy_request": "Копіювати JSON запиту",
"render.children.coverage_error": "Похибка покриття",
"render.children.cpu": "Трасування променів на CPU",
"render.children.denoise": "Зменшення шуму",
"render.children.depth": "Глибина шляху",
"render.children.distortion": "Спотворення",
"render.children.edge_samples": "Вибірки країв",
"render.children.effects_banner": "Ці ефекти потребують трасування шляхів на GPU. Відкриття цього ніколи не змінює метод.",
"render.children.enable_adaptive": "Увімкніть незалежні проби, щоб змінити адаптивні межі.",
"render.children.enable_bloom": "Увімкніть свічення, щоб змінити його силу, поріг і радіус.",
"render.children.finishing": "Оздоблення",
"render.children.flare": "Відблиск",
"render.children.fresnel": "Шари Френеля",
"render.children.ghosts": "Кільця-привиди",
"render.children.glass": "Перенесення світла у склі",
"render.children.go_to": "Перейти до {editor}",
"render.children.grain": "Зерно",
"render.children.halo": "Гало",
"render.children.hdr": "HDR",
"render.children.keep_master": "Зберігати необроблений лінійний майстер",
"render.children.last_result": "Останній: {number} · {width} × {height} · {phase}",
"render.children.lens_effects": "Ефекти об'єктива",
"render.children.look_summary": "{tone} · стилів: {count}",
"render.children.looks": "Стилі вигляду",
"render.children.memory": "Пам'ять",
"render.children.method": "Метод",
"render.children.minimum": "Мінімум",
"render.children.needs_cpu": "Потрібне трасування променів на CPU. Відкриття цього ніколи не змінює метод.",
"render.children.nested": "Сертифіковані вкладені діелектрики",
"render.children.not_checked": "Не перевірено",
"render.children.path": "Трасування шляхів",
"render.children.pilots": "Пробні вибірки",
"render.children.preview": "Дані попереднього перегляду",
"render.children.progressive_reason": "Виберіть «Поступове», щоб змінити кількість вибірок і початкове значення.",
"render.children.radius": "Радіус",
"render.children.reflect_depth": "Глибина відбиття",
"render.children.reflect_samples": "Вибірки відбиття",
"render.children.regrade": "Повторне градуювання",
"render.children.relative_error": "Відносна похибка",
"render.children.render": "Рендеринг",
"render.children.render_shot": "Відрендерити кадр",
"render.children.renderer": "Рендерер",
"render.children.renderers": "Рендерери",
"render.children.request": "Цей запит",
"render.children.reset_finishing": "Скинути оздоблення",
"render.children.review_quality": "Переглянути специфікацію якості…",
"render.children.rgb_gain": "Підсилення RGB",
"render.children.samples": "Вибірки",
"render.children.sampling": "Дискретизація",
"render.children.saturation": "Насиченість",
"render.children.scene_summary": "Тіл: {bodies} · трикутників: {triangles}",
"render.children.seed": "Початкове значення",
"render.children.sharpening": "Підвищення різкості",
"render.children.single_image": "Одне зображення",
"render.children.soft_focus": "М'який фокус",
"render.children.streak": "Смуга",
"render.children.strength": "Сила",
"render.children.studio": "Студія",
"render.children.threshold": "Поріг",
"render.children.tone": "Тон",
"render.children.under_hood": "Технічні подробиці",
"render.children.vignette": "Віньєтування",
"render.children.workstation": "Робоча станція",
"render.choose_look": "Спершу виберіть стиль у розділі «Вигляд»",
"render.chromatic_offset": "Хроматичне зміщення країв",
"render.clear_stage": "Видалити збережену сцену",
"render.copy_request": "Копіювати JSON",
@@ -2331,8 +2510,33 @@
"render.flare_strength": "Сила відблиску яскравих місць",
"render.flare_threshold": "Поріг відблиску в лінійній сцені",
"render.fold_browser": "Згорнути браузер",
"render.frame_aspect": "Співвідношення сторін",
"render.frame_centre_mark": "Центральна позначка",
"render.frame_copy_limit": "Немає вільної назви для копії кадру",
"render.frame_copy_name": "{name} — копія {number}",
"render.frame_custom": "Власне",
"render.frame_distance_unit": " × розмір",
"render.frame_duplicate": "Дублювати",
"render.frame_exposure": "Експозиція",
"render.frame_fov": "Поле зору",
"render.frame_guides": "Напрямні",
"render.frame_invalid_aspect": "Недійсний набір співвідношення сторін",
"render.frame_lens": "FOV {fov}° · ≈ {mm} мм",
"render.frame_name": "Назва",
"render.frame_output_size": "Розмір виводу",
"render.frame_photo": "3:2 · Фото",
"render.frame_portrait": "4:5 · Портрет",
"render.frame_presets": "Набори кадрування",
"render.frame_presets_pending": "З'явиться разом із редактором кадрів",
"render.frame_projection": "Проєкція",
"render.frame_render_shot": "Відрендерити цей кадр",
"render.frame_rule_thirds": "Правило третин",
"render.frame_safe_area": "Безпечна зона",
"render.frame_shot_title": "Кадр · {name}",
"render.frame_square": "1:1 · Квадрат",
"render.frame_tall": "9:16 · Вертикальний",
"render.frame_thirds": "Третини",
"render.frame_wide": "16:9 · Широкоекранний",
"render.gpu_depth": "Максимальна глибина шляху",
"render.gpu_options_help": "Вибірки, глибина, початкове значення та експозиція зберігаються разом із цим набором налаштувань. Зберігається лише активний метод зображення.",
"render.gpu_path_failed": "Трасувальник шляхів GPU недоступний",
@@ -2360,6 +2564,7 @@
"render.heading_results": "РЕЗУЛЬТАТИ",
"render.heading_shots": "КАДРИ",
"render.hide_shots_label": "Сховати стрічку кадрів",
"render.hover_look": "{object} · {look} · клацніть, щоб вибрати",
"render.image_advanced": "Додаткові параметри GPU",
"render.image_cancelled": "Рендеринг скасовано",
"render.image_cancelling": "Скасування",
@@ -2506,17 +2711,95 @@
"render.library_uniform_ack": "Використати однорідне наближення без просторових чи розширених ефектів",
"render.library_usable": "Виконувані проєкції",
"render.library_users": "Використовують",
"render.light_aim": "Спрямувати на",
"render.light_anchor_pending": "Зміна системи координат світла поки не підтримується.",
"render.light_azimuth": "Азимут",
"render.light_backend_limit": "Виберіть трасування променів на CPU або явну студію GPU, щоб редагувати освітлення. Застарілі джерела світла студії GPU залишаються доступними лише для читання.",
"render.light_behaviour": "ПОВЕДІНКА",
"render.light_default_fill": "Заповнювальне",
"render.light_default_key": "Основне",
"render.light_default_number": "Джерело світла {number}",
"render.light_default_rim": "Контурне",
"render.light_delete": "Видалити",
"render.light_distance": "Відстань",
"render.light_duplicate": "Дублювати",
"render.light_elevation": "Кут піднесення",
"render.light_gpu_punctual": "Точкові й прожекторні джерела світла доступні з трасуванням променів на CPU.",
"render.light_hard_shadow": "Це джерело світла має жорсткі тіні; м'якість випромінювача недоступна.",
"render.light_intensity": "Інтенсивність",
"render.light_missing": "Цього джерела світла більше немає. Виберіть джерело світла в браузері.",
"render.light_place_highlight": "Розмістити за підсвічуванням",
"render.light_place_pending": "Розміщення за підсвічуванням потребує вибору джерел світла у вікні перегляду й поки не підтримується.",
"render.light_position": "ПОЛОЖЕННЯ",
"render.light_preview_help": "Живий вид без тіней; площинні джерела світла використовують наближення за центральною вибіркою. Рендеринг використовує повну модель освітлення.",
"render.light_product_centre": "Центр виробу",
"render.light_size": "Розмір",
"render.light_softness": "М'якість",
"render.light_temperature": "Колірна температура",
"render.light_temperature_help": "Наближений відтінок абсолютно чорного тіла; зберігається як лінійний RGB.",
"render.light_type": "Тип",
"render.light_type_area": "Площинне",
"render.light_type_point": "Точкове",
"render.light_type_spot": "Прожектор",
"render.light_type_sun": "Сонце",
"render.light_view_only": "«Лише це джерело» та заглушення впливають на цей вид і його рендери; вони ніколи не зберігаються в проєкті.",
"render.light_world_origin": "Світовий початок координат",
"render.lighting_aim_point": "Точка наведення",
"render.lighting_apply": "Застосувати шаблон",
"render.lighting_area_samples": "Вибірки площинного світла",
"render.lighting_budget": "Бюджет",
"render.lighting_budget_help": "Лічильники доступні лише для читання. Додавайте, дублюйте або видаляйте джерела світла, щоб змінити їх; метод задає межі.",
"render.lighting_colour": "Колір",
"render.lighting_consent": "Замінити спрямовані джерела світла цим шаблоном",
"render.lighting_custom": "Власне освітлення",
"render.lighting_custom_help": "Вибір «Власне» перетворює шаблон на редаговані джерела світла, по одному рядку в дереві.",
"render.lighting_direction": "Напрямок X Y Z",
"render.lighting_direction_help": "Або введіть напрямок до джерела світла (X Y Z).",
"render.lighting_distance_unit": " × розмір",
"render.lighting_edge_u": "Вектор сторони U",
"render.lighting_edge_v": "Вектор сторони V",
"render.lighting_falloff": "Спад",
"render.lighting_falloff_help": "Інтенсивність задано на еталонній відстані.",
"render.lighting_height": "Висота V",
"render.lighting_minimum": "Мінімум",
"render.lighting_mute": "Заглушити це джерело світла",
"render.lighting_point": "Точкове",
"render.lighting_preset": "Шаблон освітлення",
"render.lighting_preset_cpu": "Спрямовані студійні шаблони потребують трасування променів на CPU. Освітлення GPU використовує явні джерела «Сонце» та «Площинне».",
"render.lighting_preset_row": "Шаблон",
"render.lighting_radiance": "Яскравість",
"render.lighting_reference": "Еталонна відстань",
"render.lighting_review_help": "Замінює список спрямованих джерел світла. Зберігає точкові та площинні джерела, середовище, тіні, камеру й усі інші налаштування кадру.",
"render.lighting_review_title": "Переглянути шаблон освітлення",
"render.lighting_samples_cpu": "Вибірки площинного світла застосовуються до трасування променів на CPU.",
"render.lighting_samples_need_area": "Додайте площинне джерело світла CPU, щоб задати вибірки площинного світла.",
"render.lighting_samples_reason": "Вибірки площинного світла мають бути 1, 4, 16 або 64.",
"render.lighting_shadow_cpu": "Перемикач тіней потребує трасування променів на CPU. Трасування шляхів на GPU завжди відкидає тіні.",
"render.lighting_shadows": "Відкидати тіні",
"render.lighting_shadows_section": "Тіні та дискретизація",
"render.lighting_shape": "Форма",
"render.lighting_solo": "Лише це джерело світла",
"render.lighting_source": "Джерело",
"render.lighting_source_section": "Джерело світла",
"render.lighting_spot_preserved": "Це точкове джерело світла зберігає раніше заданий конус прожектора, доки не змінено його тип.",
"render.lighting_sun_distance": "Напрямок сонця не залежить від відстані та точки наведення.",
"render.lighting_unsupported": "не підтримується",
"render.lighting_used": "{used} з {limit}",
"render.lighting_width": "Ширина U",
"render.lighting_world_position": "Світові X Y Z",
"render.lights_fixed_to": "Світло прив'язане до",
"render.linear_help": "Зберігає 32-бітний float-майстер RGBA до шумозаглушення, експозиції, тональної компресії, фільтрів і тла. Лінійний sRGB/D65; попередньо помножений на покриття. Додаткова пам'ять допускається явно. Без стиснення та додаткових проходів.",
"render.linear_retain": "Зберегти необроблений лінійний EXR",
"render.linear_unavailable": "У вибраного завершеного кадру немає збереженого EXR. Увімкніть збереження перед рендерингом; старіший PNG не може відновити необроблену яскравість.",
"render.look_add": "Додати колірний стиль",
"render.look_applied": "Застосовано: {name}",
"render.look_bleach": "У дусі bleach bypass",
"render.look_cool": "Холодний",
"render.look_cyanotype": "У дусі ціанотипії",
"render.look_faded": "Вицвілий відбиток",
"render.look_material": "Матеріал",
"render.look_mono": "Монохромний",
"render.look_pasted": "Стиль вставлено",
"render.look_sepia": "Сепія",
"render.look_strength": "Сила стилю",
"render.look_teal_orange": "Бірюзовий / помаранчевий",
@@ -2592,9 +2875,11 @@
"render.output_advanced": "Додатково",
"render.output_backend_ready": "Готово",
"render.output_check": "Перевірити",
"render.output_check_failed": "Перевірка · помилка",
"render.output_check_help": "Натисніть «Перевірити», щоб переглянути запит без запуску рендерингу.",
"render.output_check_summary": "Перевірка · Примітки: {count}",
"render.output_copy": "Копіювати",
"render.output_copy_report": "Копіювати звіт",
"render.output_destination": "Файл призначення",
"render.output_destination_help": "Виберіть файл призначення під час експорту готового зображення.",
"render.output_dimensions": "Розмір",
@@ -2604,6 +2889,7 @@
"render.output_fit": "Вписати",
"render.output_format": "Формат",
"render.output_format_status": "PNG — це точне завершене зображення для показу. Необов'язковий GPU EXR зберігає необроблений сцено-лінійний радіанс FLOAT32 до фільтрів відображення. Експорт ніколи не підставляє кеш попереднього перегляду чи інше завдання.",
"render.output_grading": "Градуювання",
"render.output_image": "Зображення",
"render.output_largest": "макс. {width} × {height}",
"render.output_lock_ratio": "Зафіксувати співвідношення сторін",
@@ -2613,6 +2899,8 @@
"render.output_quality_waiting": "очікування контракту якості",
"render.output_ratio_refused": "Пов'язаний розмір перевищує обмеження цього методу. Попередній розмір збережено; розблокуйте співвідношення або виберіть менше значення.",
"render.output_ready": "Готово до рендерингу",
"render.output_run_check": "Запустити перевірку",
"render.output_size_limit": "{method}: до {dimension} px на сторону та {pixels} пікселів. Найбільший придатний розмір: {width} × {height}.",
"render.output_size_ok": "Розмір допустимий · {width} × {height} px",
"render.output_swap_orientation": "Поміняти місцями ширину та висоту",
"render.output_tools_inspector": "Змініть розмір і формат в інспекторі «Вивід».",
@@ -2629,6 +2917,7 @@
"render.page_output": "Вивід",
"render.page_scene": "Сцена",
"render.paint_label": "Нанести",
"render.painting_with": "Нанесення: {name}",
"render.passive_stage": "Земля та пасивна сцена",
"render.passive_stage_help": "Скінченні пасивні панелі існують лише на відрендерених зображеннях. Вони не додають тіл CAD чи маси. Розташування фіксується після застосування; перетин із межами виробу відхиляється. CPU не забезпечує дифузного відбитого освітлення.",
"render.perspective": "Перспективна камера",
@@ -2650,6 +2939,7 @@
"render.pick_help": "Виберіть тіло, грань або компонент. Клацніть на порожньому місці, щоб скасувати вибір; Shift або Ctrl додає чи перемикає. Підсвічування видно лише в живому виді виробу.",
"render.pick_label": "Вибір",
"render.pick_up_label": "Взяти",
"render.pick_up_prompt": "Клацніть об'єкт, щоб узяти його стиль",
"render.pick_waiting": "Вибір у виді виробу поки не підтримується.",
"render.post_contrast": "Контраст",
"render.post_gain_b": "Підсилення синього",
@@ -2689,13 +2979,17 @@
"render.radial_distortion": "Радіальне спотворення",
"render.radial_fit": "Вписати виріб",
"render.radial_save": "Зберегти кадр",
"render.recent_looks": "Недавні стилі",
"render.regrade_action": "Повторно градуювати необроблений майстер (без шумозаглушення)",
"render.regrade_help": "Створює окремий PNG із вибраного завершеного необробленого майстра за цими параметрами подачі. Не трасує промені, не змінює зафіксований розмір, камеру чи світло та не перезаписує EXR. Шумозаглушення не застосовується повторно: необроблені майстри не зберігають його допоміжних буферів. Похідне зображення можна експортувати тими самими елементами керування завданням.",
"render.regrade_label": "Корекція",
"render.reload_settings": "Перезавантажити збережені налаштування",
"render.remove_override": "Прибрати перевизначення",
"render.replace_all": "Замінити все",
"render.replace_ground": "Підтвердити заміну наявної сцени",
"render.replace_label": "Замінити",
"render.replace_saved_surface": "Замінити наявну збережену прив'язку для цієї цілі",
"render.replace_with": "Замінити на",
"render.restore_camera": "Відновити збережену камеру",
"render.result_actual": "100%",
"render.result_actual_help": "Один піксель зображення на піксель екрана.",
@@ -2747,14 +3041,28 @@
"render.saved_surface_remove": "Прибрати збережену прив'язку",
"render.saved_surfaces": "Збережені прив'язки поверхонь",
"render.saved_surfaces_help": "Закріплені вбудовані карти слідують за вибраним екземпляром у локальних міліметрах. Замінена або відсутня ціль — це помилка, а не автоматичне перепризначення.",
"render.scene_all_shots": "Усі кадри ({count})",
"render.scene_apply": "Застосувати переглянуту студію",
"render.scene_batch_reason": "Для «Усіх кадрів» потрібна черга рендерингу збережених кадрів, якої ще немає.",
"render.scene_check_now": "Перевірити зараз",
"render.scene_check_passed": "Перевірку пройдено · приміток: {notes}",
"render.scene_check_stale": "Перевірка застаріла · перевірте ще раз",
"render.scene_check_unchecked": "Ще не перевірено · приміток: 0",
"render.scene_consent": "Підтвердьте заміну освітлення, середовища, експозиції та майданчика",
"render.scene_light_summary": "{environment} · джерел світла: {lights}",
"render.scene_look_summary": "Стилів: {looks} · перевизначень: {overrides}",
"render.scene_open_check": "Відкрити перевірку",
"render.scene_preserved_fields": "Камера, вибірка, розміри, оптичні прив'язки, CAD-геометрія та інженерні матеріали зберігаються.",
"render.scene_preserves_design": "Складає освітлення та пасивний майданчик для видимого об'єкта. Геометрія, інженерні матеріали й камера залишаються окремими.",
"render.scene_ready": "Готово до рендерингу",
"render.scene_reminder": "Сцена зберігає проєкт. Геометрія, інженерні властивості та CAD-дані ніколи не змінюються з рендерингу.",
"render.scene_reminders": "Нагадування",
"render.scene_renderer_ready": "{renderer} готовий",
"render.scene_replaces": "Замінює",
"render.scene_review": "Визначити й переглянути",
"render.scene_review_help": "Перегляньте повну вбудовану композицію перед застосуванням. Непов'язані розширені специфікації SCENE не підставляються.",
"render.scene_scope_details": "Обсяг композиції",
"render.scene_stages": "Етапи",
"render.search_appearances": "Пошук серед виглядів: {count}",
"render.setup_legacy_environment": "Це старіше налаштування використовує застарілі обертання чи інтенсивність середовища. Ці значення зберігаються; явно перетворіть їх перед збереженням повного завдання зображення.",
"render.setup_name": "Назва налаштування",
@@ -2767,7 +3075,22 @@
"render.shell_tab_camera": "КАМЕРА РЕНДЕРИНГУ",
"render.shell_tab_lighting": "ОСВІТЛЕННЯ",
"render.shell_tab_scene": "СЦЕНА РЕНДЕРИНГУ",
"render.shot_aperture": "Діафрагма",
"render.shot_distance": "Відстань",
"render.shot_dof": "Глибина різкості",
"render.shot_duplicate": "Дублювати збережений кадр",
"render.shot_edit_output": "Редагувати у виводі",
"render.shot_exposure_reason": "Експозиція потребує трасування променів на CPU або трасування шляхів на GPU.",
"render.shot_exposure_section": "Експозиція",
"render.shot_focus_distance": "Відстань фокусування",
"render.shot_fov_reason": "Поле зору потребує перспективної проєкції.",
"render.shot_frame_subject": "Кадрувати об'єкт",
"render.shot_invalid_camera": "Значення камери мають бути скінченними й у межах діапазону.",
"render.shot_lens": "Об'єктив",
"render.shot_lens_enable_reason": "Увімкніть глибину різкості, щоб змінити діафрагму й відстань фокусування.",
"render.shot_lens_gpu_reason": "Глибина різкості потребує трасування шляхів на GPU.",
"render.shot_lens_perspective_reason": "Глибина різкості потребує перспективної проєкції.",
"render.shot_look_selection": "Спрямувати на виділення",
"render.shot_manager": "Збережені кадри",
"render.shot_new_name": "Назва нового кадру",
"render.shot_remove": "Прибрати збережений кадр",
@@ -2775,6 +3098,9 @@
"render.shot_remove_title": "Прибрати збережений кадр?",
"render.shot_rename": "Перейменувати збережений кадр",
"render.shot_saved_only": "Спершу збережіть поточну чернетку. Дублювання та перейменування зберігають точні збережені параметри й посилання на ресурси.",
"render.shot_selection_reason": "Виберіть тіло або грань, на яку спрямувати.",
"render.shot_size": "Розмір",
"render.shot_target": "Ціль",
"render.shots_camera_changed": "Камера змінилася після збереження цього кадру",
"render.shots_name_help": "Введіть унікальну назву поточного кадру.",
"render.shots_no_result": "Рендерингу ще немає",
@@ -2997,6 +3323,13 @@
"render.wait_pick_up": "ще не підтримується: вибір у виді виробу та взяття зразка вигляду",
"render.wait_replace": "ще не підтримується: заміна всіх використань вигляду",
"render.wait_solo": "ще не підтримується: видимість світла та режим «лише це світло»",
"render.wear_applies_to": "Застосовується до",
"render.wear_layer_count": "{count} шарів",
"render.wear_layer_one": "{count} шар",
"render.wear_layers": "Шари",
"render.wear_no_layers": "Немає шарів",
"render.wear_selected_layer": "Вибраний шар",
"render.wear_title": "Старіння",
"sample.bracket.about": "Основна полиця з кромковими полицями та загином за правилом 2 mm",
"sample.bracket.name": "Кронштейн з листового металу",
"sample.enclosure.about": "Оболонковий корпус із буртиком, бобишками під гвинти, упором і клацковим з'єднанням",
@@ -3030,6 +3363,7 @@
"select an axis": "виберіть вісь",
"select an axis, a straight or circular edge, or a cylinder, cone or torus face first": "спершу виберіть вісь, пряме або кругове ребро чи грань циліндра, конуса або тора",
"select bodies first": "спершу виберіть тіла",
"select components first": "Спочатку виберіть компоненти",
"select corner points, or the two lines of one corner": "виберіть кутові точки або дві лінії одного кута",
"select one corner point, or the two lines of one corner": "виберіть одну кутову точку або дві лінії одного кута",
"select sheet edges first": "спершу виберіть ребра листа",
@@ -3048,6 +3382,7 @@
"settings.double_click_components": "Двічі клацніть компонент, щоб активувати його або відредагувати пов'язаний компонент на місці",
"settings.frame_rate_details_note": "Додає графік часу останніх кадрів із накладеними поверх нього трикутниками, гістограму часу кадрів і те, що намалював GPU. Клацніть частоту кадрів на виді, щоб показати чи сховати їх.",
"settings.frame_rate_note": "Показує кадри за секунду в правому нижньому куті виду.",
"settings.insert_lists_open_designs": "Вставлення проєкту спершу показує проєкти, відкриті в інших вкладках",
"settings.measure_axis_distances": "Відстані X/Y/Z",
"settings.measure_axis_distances_help": "Показувати розміри вздовж світових осей разом із загальною відстанню, поки відкрите вікно вимірювання.",
"settings.msaa_applies_on_restart": "Згладжування застосується під час наступного запуску SolidCraft",
@@ -3072,6 +3407,10 @@
"shortcut.unpin": "Відкріпити",
"sketch is missing": "ескіз відсутній",
"sketch.degrees_of_freedom": "{count} ступенів вільності",
"sketch.dimension_added_driven": "Ескіз уже визначає цей розмір, тому його додано як опорний (ведений) розмір",
"sketch.dimension_applied": "Розмір застосовано",
"sketch.dimension_applied_defined": "Розмір застосовано; визначено параметр «{name}»",
"sketch.dimension_applied_renamed": "Розмір застосовано; параметр перейменовано на «{name}»",
"sketch.dof_left": "Залишилося ступенів свободи: {count}",
"sketch.dof_left_one": "Залишився {count} ступінь свободи",
"sketch.draw_curves": "Малювати як {linetype}",
@@ -3106,6 +3445,8 @@
"sketch_text.use_font_file": "Використати файл шрифту {path}",
"solid": "суцільне",
"status.editing": "Редагування: {name}",
"status.navigation": "Призначення миші: {mapping}",
"status.navigation_tip": "Як миша рухає вид. Клацніть, щоб вибрати інше призначення",
"status.under_constrained": "Недостатньо обмежено (ступенів вільності: {count})",
"status.under_constrained_one": "Недостатньо обмежено (ступенів вільності: {count})",
"status.units_tip": "Одиниці проєкту. Клацніть, щоб змінити їх",
@@ -3139,16 +3480,20 @@
"timeline.delete_folders_tip": "Зберегти їхні операції та вкладені теки в історії",
"timeline.delete_folders_with_features_tip": "Видалити теки з усіма операціями в них і вкладеними теками",
"timeline.delete_many": "Видалити вибрані операції: {count}",
"timeline.edited_rolled_back": "{name} змінено, але воно після маркера історії, тому не побудовано: перемістіть маркер далі, щоб побачити результат",
"timeline.feature_error": "Помилка: {message}",
"timeline.feature_hint": "Двічі клацніть, щоб змінити · перетягніть, щоб змінити порядок · права кнопка миші — більше",
"timeline.feature_rolled_back": "Відкочено: після маркера історії, тому не побудовано",
"timeline.feature_warning": "Попередження: {message}",
"timeline.group": "Нова тека операцій",
"timeline.move_many": "Перемістити елементи часового ланцюжка",
"timeline.move_to_group": "Перемістити операції до теки",
"timeline.rename_group": "Перейменувати теку операцій",
"timeline.reorder_many": "Перевпорядкувати операції",
"timeline.suppress_features": "Придушити операції",
"timeline.suppress_folders_tip": "Придушити або скасувати придушення всіх операцій у теках і вкладених теках",
"timeline.ungroup": "Прибрати теки операцій",
"timeline.unsuppress_features": "Скасувати придушення операцій",
"to the face": "до грані",
"to the next face": "до наступної грані",
"toolbar.customize_note": "Вкладка {tab}. Позначте команду, щоб додати її кнопку на панель інструментів. Також можна перетягнути рядок зі спадного меню панелі на панель інструментів, перетягнути кнопку за межі панелі для видалення або скористатися значком закріплення в рядку спадного меню.",
@@ -3220,6 +3565,10 @@
"ui.3d_mouse_offer": "Калібрування 3D-миші виправляє переплутані або обернені осі та налаштовує швидкість і відчуття.",
"ui.3d_mouse_offer_never": "Більше не показувати",
"ui.3d_mouse_offer_swap": "Перемкнути на Hidraw (прямий драйвер)",
"ui.3d_mouse_orbit": "Обертання",
"ui.3d_mouse_orbit_classic": "Класичне",
"ui.3d_mouse_orbit_tip": "Трасоване: 3D-миша обертає вид навколо точки на моделі в центрі екрану. Класичне: навколо центру виду",
"ui.3d_mouse_orbit_traced": "Трасоване",
"ui.3d_mouse_reading": "Показники",
"ui.3d_mouse_reset_axes": "Скинути призначення осей",
"ui.3d_mouse_reset_view": "Скинути вигляд",
@@ -3562,6 +3911,8 @@
"ui.cancel": "Скасувати",
"ui.canvases": "Полотна",
"ui.center": "Центр",
"ui.center_arc_follows_cursor": "Дуга за центром іде за напрямком курсора",
"ui.center_arc_follows_cursor_tip": "Дуга за центром іде за годинниковою або проти годинникової стрілки відповідно до руху курсора навколо центра. Вимкнено: завжди проти годинникової стрілки від початку.",
"ui.centerline": "Осьова лінія",
"ui.chain": "Ланцюг",
"ui.chamfer": "Фаска",
@@ -3604,6 +3955,7 @@
"ui.constant": "Стала",
"ui.constraints_conflict": "Конфлікт обмежень",
"ui.construction": "Конструкційна",
"ui.construction.ribbon_label": "Доп. лінії",
"ui.context_menu": "Контекстне меню",
"ui.continuity_g0": "G0 злам",
"ui.continuity_g1": "G1 дотичність",
@@ -3695,6 +4047,14 @@
"ui.end_scale": "Масштаб у кінці",
"ui.entities": "Елементи",
"ui.equal": "Рівність",
"ui.equation_end": "Кінець",
"ui.equation_explicit": "Явна",
"ui.equation_form": "Форма",
"ui.equation_note": "Змінна — звичайне число: sin(t) сприймає радіани. Результат без одиниць виміру береться в одиницях проєкту.",
"ui.equation_parametric": "Параметрична",
"ui.equation_x_of_t": "X(t)",
"ui.equation_y_of_t": "Y(t)",
"ui.equation_y_of_x": "Y(x)",
"ui.equivalent_radius": "Еквівалентний радіус",
"ui.expand": "Розгорнути",
"ui.exportDxf": "Експорт DXF…",
@@ -3760,6 +4120,7 @@
"ui.heading_design": "ПРОЄКТ",
"ui.heading_draft": "УХИЛ",
"ui.heading_edit": "РЕДАГУВАТИ",
"ui.heading_equation_curve": "КРИВА ЗА РІВНЯННЯМ",
"ui.heading_extrude": "ВИДАВЛЮВАННЯ",
"ui.heading_fillet": "ЗАОКРУГЛЕННЯ",
"ui.heading_finish_editing": "ЗАВЕРШЕННЯ РЕДАГУВАННЯ",
@@ -3851,6 +4212,10 @@
"ui.import_ellipsis": "Імпорт…",
"ui.infinite": "Нескінченна",
"ui.insert": "Вставити",
"ui.insert_design.browse": "Огляд…",
"ui.insert_design.open_designs": "Відкриті проєкти",
"ui.insert_design.saved_file": "{name} має незбережені зміни, тому вставлено його збережений файл. Збережіть його, потім оновіть зв'язки, щоб перенести зміни.",
"ui.insert_design.unsaved": "Незбережені зміни",
"ui.inspect": "Перевірити",
"ui.intersect": "Перетин",
"ui.isolate": "Ізолювати",
@@ -4000,6 +4365,18 @@
"ui.project": "Проєктувати",
"ui.project_face_edges_sketch": "Проєктувати ребра граней у нові ескізи",
"ui.properties": "Властивості",
"ui.properties.copy_matrix": "Копіювати матрицю",
"ui.properties.first_moments": "Перші моменти",
"ui.properties.inertia": "Моменти інерції",
"ui.properties.inertia_note": "Відносно центра мас, у світових осях (г·{unit}²)",
"ui.properties.inertia_unavailable": "Недоступно: сітка тіла не замкнена.",
"ui.properties.inertia_x": "Ixx, Ixy, Ixz",
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Вимірювання…",
"ui.properties.measuring_failed": "Вимірювання перервано до завершення.",
"ui.properties.principal_axis": "Головна вісь {number}",
"ui.properties.principal_moments": "Головні моменти",
"ui.pull_direction": "Напрямок витягування",
"ui.quality": "Якість",
"ui.quantity": "Кількість",
@@ -4099,7 +4476,11 @@
"ui.sketch": "Ескіз",
"ui.sketch_dimension": "Розмір ескізу",
"ui.sketch_grid": "Сітка ескізу",
"ui.sketch_intersect_geometry": "Геометрія",
"ui.sketch_intersect_projection_link": "Проєкційний зв'язок",
"ui.sketch_intersect_selection_filter": "Фільтр вибору",
"ui.sketch_modifiers": "Модифікатори ескізу",
"ui.sketch_project_geometry": "Геометрія",
"ui.sketch_scale": "Масштаб ескізу",
"ui.sketches": "Ескізи",
"ui.slice": "Розріз",
@@ -4150,6 +4531,7 @@
"ui.tab_manage": "Керування",
"ui.tab_sheet_metal": "Листовий Метал",
"ui.tab_view": "Вид",
"ui.tab_weldments": "Зварювання",
"ui.tangent": "Дотична",
"ui.taper_angle": "Кут звуження",
"ui.tapped": "З різьбою",
@@ -4165,6 +4547,7 @@
"ui.tip_angle": "Кут вістря",
"ui.to_object": "До об'єкта",
"ui.tool_direction": "Напрямок інструмента",
"ui.toolbar_tabs_hidden": "Усі вкладки панелі інструментів приховано. Клацніть + або клацніть тут правою кнопкою, щоб показати одну.",
"ui.top": "Зверху",
"ui.top_diameter": "Верхній діаметр",
"ui.top_radius": "Верхній радіус",
@@ -4211,6 +4594,7 @@
"ui.visual_shaded_with_edges": "Затінений із ребрами",
"ui.visual_style": "Стиль відображення",
"ui.visual_wireframe": "Каркас",
"ui.wheel_zoom_speed": "Швидкість масштабування колесом миші",
"ui.width": "Ширина",
"ui.window_system": "Віконна система",
"ui.window_system_auto": "Автоматично",
@@ -4255,13 +4639,18 @@
"update.installed": "SolidCraft {version} установлено. Перезапустіть, щоб скористатися.",
"update.installer_started": "Інсталятор запуститься, коли SolidCraft закриється.",
"update.later": "Нагадати пізніше",
"update.managed": "Доступне оновлення: оновіть SolidCraft у {manager}",
"update.no_notes": "Цей випуск не має приміток.",
"update.package_hint": "Ця копія походить з {kind}. Завантажте новий пакет, а потім установіть його за допомогою:",
"update.prefs_dev": "Це збірка для розробки ({version}): вона не перевіряє оновлення.",
"update.prefs_flatpak": "Flatpak оновлює цю копію ({version}): виконайте {command} або скористайтеся центром програм. SolidCraft не перевіряє.",
"update.prefs_label": "Оновлення",
"update.prefs_managed": "Це SolidCraft {version}, яким керує {manager}. Перевірка запитує в GitHub найновіший випуск і більше нічого не надсилає; оновіть SolidCraft у {manager}.",
"update.prefs_note": "Це SolidCraft {version} ({kind}). Перевірка запитує в GitHub останній випуск і більше нічого не надсилає.",
"update.prefs_web": "Перезавантажте сторінку, щоб отримати останню веб-версію застосунку. Якщо мережа недоступна або оновлення не вдається завантажити вчасно, відкривається збережена версія; завантаження, що триває, продовжується до наступного перезавантаження.",
"update.refresh_checking": "Перевірка найновішого випуску…",
"update.refresh_fallback": "Не вдалося перевірити новіший випуск; оновлення до {version}, знайденої раніше.",
"update.refresh_selected": "Оновлення до {version}.",
"update.release_page": "Відкрити сторінку випуску",
"update.restart": "Перезапустити зараз",
"update.restart_later": "Пізніше",
+46
View File
@@ -775,6 +775,8 @@
"at the face": "tại bề mặt",
"bom.group_children": "Chi tiết con trong hàng của chi tiết cha",
"browser.body_name": "Thân khối{number}",
"browser.calibrate_click_a": "Nhấp vào ảnh để chọn điểm A, hoặc nhập tọa độ của điểm đó.",
"browser.calibrate_click_b": "Nhấp vào ảnh để chọn điểm B, hoặc nhập tọa độ của điểm đó.",
"browser.calibrate_title": "Hiệu chuẩn: {name}",
"browser.capture_many": "{count} chi tiết đã được di chuyển nhưng vị trí chưa được ghi lại.",
"browser.capture_note": "Ghi vị trí sẽ giữ vị trí mới; Hoàn nguyên sẽ đặt lại như cũ.",
@@ -1101,6 +1103,16 @@
"cmd.sheet_refold": "Gập lại tấm kim loại",
"cmd.sheet_rules": "Danh sách quy tắc kim loại tấm",
"cmd.sheet_unfold": "Trải phẳng tạm thời",
"cmd.sketch.construction_line": "Đường thẳng dựng hình",
"cmd.sketch.construction_line.angle": "Đường dựng hình theo góc",
"cmd.sketch.construction_line.bisector": "Đường phân giác",
"cmd.sketch.construction_line.horizontal": "Đường dựng hình nằm ngang",
"cmd.sketch.construction_line.parallel": "Đường dựng hình song song",
"cmd.sketch.construction_line.perpendicular": "Đường dựng hình vuông góc",
"cmd.sketch.construction_line.tangent_at": "Tiếp tuyến tại điểm trên đường cong",
"cmd.sketch.construction_line.tangent_external": "Tiếp tuyến qua điểm ngoài",
"cmd.sketch.construction_line.tangent_two": "Tiếp tuyến chung",
"cmd.sketch.construction_line.vertical": "Đường dựng hình thẳng đứng",
"cmd.sketch_arc3d": "Cung tròn 3D",
"cmd.sketch_arc_center_point": "Cung tròn xác định bởi tâm và điểm",
"cmd.sketch_arc_tangent": "Cung tròn tiếp tuyến",
@@ -1389,6 +1401,16 @@
"help.occurrence.move": "Chỉ di chuyển chi tiết lắp ráp theo các bậc tự do mà khớp nối cho phép. Chọn một mặt của chi tiết, rồi kéo mũi tên hoặc cung tròn có thể sử dụng.",
"help.parameters.change": "Mở bảng các giá trị có tên và biểu thức điều khiển kích thước của thiết kế. Dùng để sửa một kích thước ở một chỗ và mọi tính năng dùng nó sẽ cập nhật theo.",
"help.pointcloud.insert": "Chèn bản quét PLY, XYZ hoặc PTS dưới dạng đám mây điểm bên cạnh mô hình. Dùng làm tham chiếu khi dựng mô hình từ dữ liệu đo.",
"help.sketch.construction_line": "Tạo đường thẳng dựng hình vô hạn qua hai điểm để bố trí phác thảo mà không chia tách biên dạng.",
"help.sketch.construction_line.angle": "Tạo đường dựng hình vô hạn theo góc so với trục X của phác thảo. Chọn điểm rồi nhập góc hoặc chọn hướng.",
"help.sketch.construction_line.bisector": "Chọn hai đường thẳng giao nhau trong phác thảo rồi chọn một trong hai đường phân giác. Kết quả thay đổi theo các đường gốc.",
"help.sketch.construction_line.horizontal": "Tạo đường dựng hình nằm ngang vô hạn qua một điểm. Ràng buộc ngang được giữ khi chỉnh sửa sau này.",
"help.sketch.construction_line.parallel": "Chọn đường thẳng trong phác thảo rồi đặt đường dựng hình vô hạn song song. Nhấp chuột phải để đổi tham chiếu.",
"help.sketch.construction_line.perpendicular": "Chọn đường thẳng trong phác thảo rồi đặt đường dựng hình vô hạn vuông góc. Nhấp chuột phải để đổi tham chiếu.",
"help.sketch.construction_line.tangent_at": "Tạo tiếp tuyến tại một điểm trên đường tròn hoặc cung tròn, hoặc tại đầu mút của spline hay đường conic hở. Chọn đường cong rồi chọn tiếp điểm.",
"help.sketch.construction_line.tangent_external": "Chọn đường tròn hoặc cung tròn, một điểm ngoài rồi chọn nghiệm tiếp tuyến. Bản xem trước chỉ hiển thị tiếp điểm trên cung đã vẽ.",
"help.sketch.construction_line.tangent_two": "Chọn hai đường tròn hoặc cung tròn rồi chọn tiếp tuyến chung trong bản xem trước. Tiếp điểm phải nằm trên các đường cong đã vẽ.",
"help.sketch.construction_line.vertical": "Tạo đường dựng hình thẳng đứng vô hạn qua một điểm. Ràng buộc đứng được giữ khi chỉnh sửa sau này.",
"help.sketch.equation_curve": "Vẽ một đường cong từ công thức trên một khoảng: x(t) và y(t), hoặc y = f(x). Công thức có thể dùng tham số và đường cong thay đổi theo: dùng cho sóng sin, đường xoắn ốc hay đường thân khai của răng bánh răng.",
"help.solid.align": "Di chuyển các khối đã chọn để một điểm, mặt hoặc mặt phẳng trên chúng gặp một điểm, mặt hoặc mặt phẳng ở nơi khác. Dùng để đặt chi tiết áp vào chi tiết khác mà không cần đo khoảng cách.",
"help.solid.chamfer": "Vát các cạnh đã chọn theo khoảng cách bạn thiết lập. Dùng để triệt tiêu cạnh sắc hoặc giúp lắp chốt, bu lông dễ dàng hơn.",
@@ -1906,6 +1928,9 @@
"prefs.max_file_size_step": "Tệp STEP và tệp nhập",
"prefs.max_file_size_web": "Ứng dụng web mở tệp STEP và tệp nhập tối đa 512 MB, thiết kế tối đa 256 MB: thẻ trình duyệt không chứa được tệp lớn hơn. Ứng dụng máy tính cho phép tăng các giới hạn này.",
"prefs.megabytes": "MB",
"prefs.menu_grid": "Biểu tượng lớn",
"prefs.menu_list": "Danh sách",
"prefs.menus": "Menu",
"prefs.minutes": "phút",
"prefs.minutes_suffix": " phút",
"prefs.mouse": "Chuột và bàn di cảm ứng",
@@ -1925,6 +1950,8 @@
"prefs.origin_plane_names": "Tên các mặt phẳng gốc",
"prefs.origin_plane_names_note": "Tên hiển thị trong trình duyệt, hộp thoại và danh sách. {top} là XY, {front} là XZ và {right} là YZ, với Z hướng lên. Lệnh, script và thiết kế đã lưu vẫn dùng XY, XZ và YZ.",
"prefs.overall_speed": "Tốc độ tổng thể",
"prefs.persistent_ribbon_pressed": "Tô sáng lệnh đang bật trên dải băng",
"prefs.persistent_ribbon_pressed_help": "Tô sáng các lệnh trên dải băng khi hiệu ứng của chúng đang bật. Tắt tùy chọn này để giữ giao diện trung tính và trợ giúp lệnh như trước.",
"prefs.perspective_fov": "Trường nhìn",
"prefs.placement": "Vị trí đặt",
"prefs.prefer_free_sketch_points": "Ưu tiên điểm phác thảo có thể di chuyển khi các điểm chồng lên nhau",
@@ -1974,11 +2001,16 @@
"prefs.sketch_align_points_note": "Khi vẽ, một điểm được căn ngang theo một điểm phác thảo và căn dọc theo điểm khác cùng lúc, kèm đường dẫn chấm; cú nhấp giữ cả hai ràng buộc căn. Tắt: chỉ căn theo điểm trước, mỗi lần một trục.",
"prefs.sketch_conflict_colour": "Hình học xung đột theo màu xung đột",
"prefs.sketch_conflict_colour_note": "Khi các ràng buộc của bản phác xung đột, các đường cong và điểm mà một ràng buộc lỗi giữ cũng được vẽ bằng màu xung đột, không chỉ ký hiệu hay kích thước của nó. Tắt: chúng giữ màu thường.",
"prefs.sketch_construction_lines": "Công cụ đường dựng hình mở rộng",
"prefs.sketch_exit_view": "Khi kết thúc phác thảo",
"prefs.sketch_exit_view.keep": "Giữ góc nhìn hiện tại",
"prefs.sketch_exit_view.previous": "Trở về góc nhìn trước đó",
"prefs.sketch_exit_view.unless_rotated": "Trở về góc nhìn trước trừ khi đã xoay",
"prefs.sketch_exit_view_note": "Góc nhìn sẽ chuyển đến đâu sau khi bấm Hoàn tất phác thảo, Hủy bỏ hoặc bấm phím Esc hai lần.",
"prefs.sketch_open_look_at": "Xoay góc nhìn trực diện phác thảo khi mở",
"prefs.sketch_open_look_at_note": "Tắt: tạo hoặc chỉnh sửa phác thảo sẽ giữ nguyên góc nhìn. Dùng Nhìn trực diện để nhìn thẳng vào phác thảo khi cần.",
"prefs.sketch_recent_snap": "Tự động bắt điểm vào tâm và trung điểm gần đây",
"prefs.sketch_recent_snap_note": "Khi vẽ, con trỏ được bắt vào nơi các đường dẫn của hai tâm đường tròn hoặc trung điểm cạnh thẳng gần nhất cắt nhau. Tắt: các đường dẫn chỉ để xem và con trỏ không di chuyển.",
"prefs.sketch_selection": "Phác thảo & chọn đối tượng",
"prefs.sketch_selection_heading": "Phác thảo và lựa chọn",
"prefs.sketch_selection_note": "Cách phác thảo bắt dính và cách nhấp chuột chọn đối tượng.",
@@ -2052,6 +2084,10 @@
"properties.title": "Thuộc tính: {name}",
"recovery.days_ago": "{count} ngày trước",
"recovery.detail": "{file} · {features} tính năng · tự động lưu {when}",
"recovery.discard_all": "Hủy bỏ tất cả",
"recovery.discard_all_detail": "Không thể hoàn tác thao tác này.",
"recovery.discard_all_title": "Hủy bỏ {count} bản tự động lưu?",
"recovery.discard_all_title_one": "Hủy bỏ 1 bản tự động lưu?",
"recovery.hours_ago": "{count} giờ trước",
"recovery.just_now": "vừa xong",
"recovery.min_ago": "{count} phút trước",
@@ -3971,6 +4007,15 @@
"ui.constant": "Hằng số",
"ui.constraints_conflict": "Xung đột ràng buộc",
"ui.construction": "Đường gióng dựng hình",
"ui.construction.angle_hint": "Đường dựng hình: nhấp một điểm rồi nhập góc hoặc chọn hướng",
"ui.construction.bisector_hint": "Phân giác: chọn hai đường thẳng giao nhau rồi chọn nghiệm mong muốn",
"ui.construction.common_hint": "Tiếp tuyến chung: chọn hai đường tròn/cung rồi chọn nghiệm mong muốn",
"ui.construction.contact_hint": "Tiếp tuyến: chọn đường tròn/cung hoặc spline/conic hở rồi chọn tiếp điểm (đường cong tự do: chỉ đầu mút)",
"ui.construction.external_hint": "Tiếp tuyến: chọn đường tròn hoặc cung, điểm ngoài rồi chọn nghiệm mong muốn",
"ui.construction.free_hint": "Đường dựng hình: nhấp hai điểm; nhấp chuột phải để bắt đầu lại",
"ui.construction.point_hint": "Đường dựng hình: nhấp điểm đi qua",
"ui.construction.reference_hint": "Đường dựng hình: chọn đường thẳng rồi chọn điểm; nhấp chuột phải để đổi tham chiếu",
"ui.construction.ribbon_label": "Đường phụ",
"ui.context_menu": "Menu ngữ cảnh",
"ui.continuity_g0": "Nếp gập G0",
"ui.continuity_g1": "G1 tiếp tuyến",
@@ -4437,6 +4482,7 @@
"ui.revolve": "Xoay tròn tạo khối",
"ui.ribbon_exit": "Thoát",
"ui.ribbon_labels": "Hiển thị văn bản bên dưới biểu tượng dải băng",
"ui.ribbon_menus_skip_pinned": "Không lặp lại các lệnh đã ghim trong menu thả xuống",
"ui.ribbon_pin_footer": "Các lệnh đã ghim hiển thị trên ruy-băng. Rê chuột lên một hàng để ghim hoặc bỏ ghim.",
"ui.ribbon_workspace": "Không gian làm việc",
"ui.right": "Phải (Hình chiếu cạnh)",
+396
View File
@@ -204,6 +204,7 @@
"Edges": "邊",
"Edit": "編輯",
"Edit Profile Sketch": "編輯輪廓草圖",
"Edit shortcuts": "編輯快捷鍵",
"Enable rule": "啟用規則",
"Enabled": "已啟用",
"End Radius": "終止半徑",
@@ -466,6 +467,7 @@
"Radius": "半徑",
"Radius Fit": "半徑擬合",
"Ratio": "比率",
"Read-only list: shortcuts can't be changed here.": "唯讀清單:無法在此變更快捷鍵。",
"Reattach selected face": "重新附著所選面",
"Recover": "復原",
"Recover unsaved design?": "復原未儲存的設計?",
@@ -649,6 +651,7 @@
"Third point": "第三點",
"This child is shared. Deleting it removes it from every copy of its parent.": "此子項是共享的。刪除它會從其父項的每個副本中移除。",
"This child is shared. Position changes apply to every copy of its parent.": "此子項是共享的。位置變更會套用到其父項的每個副本。",
"This component is inside a subassembly placed more than once: aligning it moves it in every placement.": "此元件位於放置了多次的子組合件內:對齊它會使它在每個放置位置中都跟著移動。",
"This face cannot provide a durable attachment. Choose another face or explicitly use a fixed plane.": "此面無法提供持久附著。請選擇其他面或明確使用固定平面。",
"This image is not attached to GitHub yet. Copy or save it, then attach it on GitHub.": "此圖片尚未附加到 GitHub。請複製或儲存圖片,再到 GitHub 附加。",
"Thread depth": "螺紋深度",
@@ -790,6 +793,11 @@
"cam.roller": "滾子",
"cam.roller_pick": "滾子(可選)",
"cam.tip_pick": "尖端(可選)",
"camera.shot_pitch": "俯仰",
"camera.shot_roll": "滾轉",
"camera.shot_yaw": "偏航",
"canvas.decal_place_hint": "按一下面以放置貼花",
"canvas.place_hint": "按一下平面或面以放置畫布",
"choose a profile": "請選取輪廓",
"choose the cam's and the follower's joints": "請選取凸輪和從動件的接頭",
"choose the joints to couple": "請選取要耦合的接頭",
@@ -797,9 +805,12 @@
"click sketch curves": "按一下草圖曲線",
"cmd.appearance_assign": "外觀",
"cmd.appearance_chain": "外觀鏈",
"cmd.appearance_copy": "複製外觀",
"cmd.appearance_favorite": "收藏外觀",
"cmd.appearance_library": "外觀庫",
"cmd.appearance_list": "列出外觀",
"cmd.appearance_paint": "塗抹外觀",
"cmd.appearance_paste": "貼上外觀",
"cmd.appearance_pick_up": "吸取外觀",
"cmd.appearance_replace": "取代外觀",
"cmd.assembly_bom": "物料清單",
@@ -810,6 +821,7 @@
"cmd.browser_move": "移動瀏覽器項目",
"cmd.browser_order": "排列瀏覽器項目",
"cmd.browser_rename_group": "重新命名群組",
"cmd.browser_reparent": "移動到元件",
"cmd.browser_ungroup": "解散群組",
"cmd.browser_visibility": "顯示/隱藏",
"cmd.canvas_calibrate": "校準畫布",
@@ -836,7 +848,9 @@
"cmd.component_metadata": "零件屬性",
"cmd.component_metadata_set": "變更零件屬性",
"cmd.component_move_bodies": "將實體移至元件",
"cmd.component_move_features": "將特徵移至元件",
"cmd.component_move_sketches": "將草圖移至元件",
"cmd.component_paste_from_design": "從其他設計貼上",
"cmd.component_paste_new": "貼上為新物件",
"cmd.component_properties": "元件物理屬性",
"cmd.component_relink": "重新連結來源檔案",
@@ -973,6 +987,7 @@
"cmd.motion_trace": "運動軌跡",
"cmd.motion_trace_edit": "編輯運動軌跡",
"cmd.motion_trace_keep": "保留運動軌跡",
"cmd.occurrence_align": "對齊實例",
"cmd.occurrence_copy": "貼上(實例)",
"cmd.occurrence_drag": "拖曳實例",
"cmd.occurrence_ground": "固定",
@@ -1030,11 +1045,17 @@
"cmd.render_library_surface_unbind": "移除表面繫結",
"cmd.render_library_targets": "尋找彩現資源庫目標",
"cmd.render_lights_add": "新增燈光",
"cmd.render_lights_duplicate": "複製彩現燈光",
"cmd.render_lights_list": "列出彩現燈光",
"cmd.render_lights_mute": "靜音燈光",
"cmd.render_lights_remove": "移除彩現燈光",
"cmd.render_lights_set": "設定彩現燈光",
"cmd.render_lights_solo": "獨奏燈光",
"cmd.render_optics_bind": "儲存光學繫結",
"cmd.render_optics_unbind": "移除光學繫結",
"cmd.render_output_size": "設定彩現輸出大小",
"cmd.render_preflight": "檢查彩現請求",
"cmd.render_preflight_copy": "複製彩現檢查報告",
"cmd.render_preset_apply": "套用原生攝影棚",
"cmd.render_preset_resolve": "檢閱原生攝影棚",
"cmd.render_quality_prepare": "檢閱固定取樣預算",
@@ -1057,6 +1078,13 @@
"cmd.render_start": "彩現影像",
"cmd.render_status": "彩現進度",
"cmd.select_clear": "清除選擇",
"cmd.settings_profile_apply": "套用設定檔",
"cmd.settings_profile_delete": "刪除設定檔",
"cmd.settings_profile_export": "匯出設定檔",
"cmd.settings_profile_import": "匯入設定檔",
"cmd.settings_profile_list": "設定檔",
"cmd.settings_profile_rename": "重新命名設定檔",
"cmd.settings_profile_save": "儲存設定檔",
"cmd.sheet_convert": "轉換為鈑金",
"cmd.sheet_export_bend_table": "匯出折彎表",
"cmd.sheet_export_dxf": "將展開圖匯出為 DXF",
@@ -1070,6 +1098,16 @@
"cmd.sheet_refold": "重新折彎",
"cmd.sheet_rules": "列出鈑金規則",
"cmd.sheet_unfold": "展開",
"cmd.sketch.construction_line": "建構直線",
"cmd.sketch.construction_line.angle": "指定角度建構直線",
"cmd.sketch.construction_line.bisector": "角平分線",
"cmd.sketch.construction_line.horizontal": "水平建構直線",
"cmd.sketch.construction_line.parallel": "平行建構直線",
"cmd.sketch.construction_line.perpendicular": "垂直建構直線",
"cmd.sketch.construction_line.tangent_at": "曲線上點的切線",
"cmd.sketch.construction_line.tangent_external": "通過外部點的切線",
"cmd.sketch.construction_line.tangent_two": "公切線",
"cmd.sketch.construction_line.vertical": "鉛直建構直線",
"cmd.sketch_arc3d": "三維圓弧",
"cmd.sketch_arc_center_point": "中心點圓弧",
"cmd.sketch_arc_tangent": "相切圓弧",
@@ -1102,6 +1140,8 @@
"cmd.sketch_drawing_bounds": "圖紙大小",
"cmd.sketch_edit": "編輯草圖",
"cmd.sketch_edit_text": "編輯文字",
"cmd.sketch_equation_curve": "方程式曲線",
"cmd.sketch_equation_curve_edit": "編輯方程式曲線",
"cmd.sketch_export_dxf": "另存為 DXF",
"cmd.sketch_finish_auto_constrain": "完成並自動拘束",
"cmd.sketch_fit_curves_to_section": "將曲線擬合到網格截面",
@@ -1198,6 +1238,7 @@
"cmd.view.render_browser": "彩現瀏覽器",
"cmd.view.render_dock": "移動彩現停靠面板",
"cmd.view.render_focus": "彩現聚焦檢視",
"cmd.view.status_items": "視埠狀態項目",
"cmd.view_ambient_occlusion": "環境光遮蔽",
"cmd.view_angle_readout": "檢視角度",
"cmd.view_apply": "還原命名檢視",
@@ -1219,6 +1260,7 @@
"cmd.view_normal_to": "正視於選取項目",
"cmd.view_previous_tab": "上一個索引標籤",
"cmd.view_rename": "重新命名命名檢視",
"cmd.view_render_frame": "彩現畫面輔助線",
"cmd.view_right": "右視圖",
"cmd.view_save": "新建命名檢視",
"cmd.view_shots_strip": "鏡頭列",
@@ -1229,10 +1271,14 @@
"color.copy": "點擊複製顏色值",
"color.edit": "點擊編輯顏色",
"color.gamma": "以 0–255 伽馬空間顯示顏色值",
"color.hex": "十六進位",
"color.hex_help": "輸入 #rrggbb 或 #rrggbbaa;六位數會保留不透明度",
"color.hex_hint": "#rrggbb",
"color.hue": "色相",
"color.linear": "以 0–1 線性空間顯示顏色值",
"color.saturation_value": "飽和度和明度",
"color.selected": "所選顏色",
"config.column_filter_empty": "沒有符合的欄",
"contact.components_count": "{count} 個元件",
"contact.enabled_label": "已啟用",
"coupling.gear_1": "齒輪 1",
@@ -1346,8 +1392,10 @@
"help.material.assign": "設定所選實體的材質,例如鋼、鋁或 ABS。用於讓質量和重量與實際零件一致。",
"help.mit": "MIT 授權",
"help.notice": "NOTICE",
"help.occurrence.move": "僅沿接頭允許的自由度移動組合件零件。請選取零件的面,然後拖曳可用的箭頭或圓弧。",
"help.parameters.change": "開啟用於驅動設計尺寸的具名數值與運算式表。用於在同一處修改尺寸,讓所有使用該尺寸的特徵隨之更新。",
"help.pointcloud.insert": "將 PLY、XYZ 或 PTS 掃描資料作為點雲插入模型旁。以實測資料建立模型時,可作為參考。",
"help.sketch.equation_curve": "依公式繪製曲線:在指定範圍內使用 x(t) 和 y(t),或 y = f(x)。公式可以使用參數,曲線會隨之更新:可用於正弦波、螺旋線或齒輪齒形的漸開線。",
"help.solid.align": "移動所選實體,使其上的點、面或平面與別處的點、面或平面對齊。用於將一個零件貼靠到另一個零件上,而無需測量偏移量。",
"help.solid.chamfer": "以指定的距離在所選邊上切出平直的斜面。用於去除銳邊,或使銷釘、螺絲更容易插入。",
"help.solid.combine": "結合多個實體、從目標實體中切除,或只保留它們共有的體積,還可以保留工具實體。用於合併零件、用一個形體切割另一個形體,或找出兩個實體重疊的位置。",
@@ -1474,6 +1522,21 @@
"joint.one_component": "這些零件是同一元件的實體:{bodies}。接頭使一個元件相對另一個元件運動,因此每個零件都需要自己的元件。",
"joint.rigid_group_one_component": "這 {count} 個實體都位於同一個元件中(或直接位於設計中):請先使用「{command}」。",
"joint.rigid_group_select_components": "請選擇兩個或更多元件。",
"joint_move.blocked_hint": "請檢查接頭類型(例如剛性)、固定狀態、接頭限制,以及由參數驅動的值。",
"joint_move.blocked_title": "無法移動此零件",
"joint_move.coarse": "靠近軸心時的旋轉步距(°)",
"joint_move.distance": "與起點的距離",
"joint_move.done": "完成",
"joint_move.fine": "遠離軸心時的旋轉步距(°)",
"joint_move.fixed": "此零件沒有可移動的接頭軸。",
"joint_move.help": "移動 — 拖曳箭頭或圓環。按 Esc 可取消目前的拖曳。",
"joint_move.legacy_hint": "關閉即可使用先前的「移動」面板。",
"joint_move.precision": "拉到虛線輔助線外可進行精細旋轉。",
"joint_move.rotation": "相對起點的旋轉",
"joint_move.select": "請選取一個面或一個組合件零件,然後選擇「移動」。",
"joint_move.settings": "組合件移動",
"joint_move.step": "步距",
"joint_move.use_handles": "組合件「移動」使用接頭運動控點",
"keymap.command_id": "命令 ID",
"keymap.empty": "沒有符合的命令",
"keymap.use_anyway": "仍在此處使用 {key}",
@@ -1568,6 +1631,8 @@
"nav.maya.help": "Alt+左鍵拖曳可環轉,Alt+中鍵可平移,Alt+右鍵可縮放;中鍵拖曳同樣可平移",
"nav.openscad.help": "在空白處以左鍵拖曳可環繞,Shift+左鍵拖曳可框選,拖曳草圖幾何可編輯;右鍵或中鍵拖曳可平移,Shift+右鍵或 Shift+中鍵拖曳可縮放",
"nav.perspective.sketch": "編輯草圖時會使用正交檢視。完成草圖後才能切換為透視。",
"nav.right_drag_orbits.help": "關閉:右鍵拖曳不會移動相機,右鍵只會開啟右鍵選單。選擇 SolidWorks 滑鼠對應會將其關閉。",
"nav.right_drag_orbits.label": "右鍵拖曳環繞",
"nav.solidworks.help": "中鍵拖曳可環繞,Ctrl+中鍵可平移,Shift+中鍵可縮放,右鍵拖曳可環繞",
"nav.tinkercad.help": "右鍵拖曳可環繞,中鍵或 Shift+右鍵拖曳可平移",
"nav.touchpad.help": "按住 Shift 並移動指標可平移;按住 Alt/Option 並移動可旋轉。無需按滑鼠按鈕。垂直捲動可縮放。",
@@ -1589,6 +1654,9 @@
"navbar.custom.customise": "自訂導覽列…",
"navbar.custom.design": "設計",
"navbar.custom.duplicate": "此項目已在導覽列上。",
"navbar.custom.edge": "邊緣",
"navbar.custom.edge_bottom": "底部",
"navbar.custom.edge_top": "頂部",
"navbar.custom.fade": "淡化",
"navbar.custom.full": "請先移除一個項目,才能新增其他項目。",
"navbar.custom.hidden_design": "在設計中隱藏",
@@ -1695,6 +1763,7 @@
"parts.dimension.thickness": "厚度",
"parts.dimension.width": "寬度",
"parts.family.bearing": "深溝滾珠軸承(外形)",
"parts.family.button_head_cap_screw": "內六角半圓頭螺絲",
"parts.family.dowel_pin": "圓柱銷",
"parts.family.hex_bolt": "六角頭螺栓",
"parts.family.hex_nut": "六角螺帽",
@@ -1751,6 +1820,9 @@
"prefs.bottom_centre": "下方置中",
"prefs.bottom_right": "右下方",
"prefs.browser": "瀏覽器",
"prefs.browser_reveal_on_hover": "游標移上時顯示",
"prefs.browser_show_note": "「顯示」會讓瀏覽器保持在畫面上。「游標移上時顯示」會將它隱藏,直到指標移到它的位置或其左緣的細長標籤上;當指標位於其中或從它開啟的選單仍開著時,它會保持開啟。",
"prefs.browser_shown": "顯示",
"prefs.built_in": "內建",
"prefs.button_left": "左鍵拖曳",
"prefs.button_middle": "中鍵拖曳",
@@ -1821,6 +1893,8 @@
"prefs.layout_note": "精簡模式會將面板停靠在視窗邊緣。瀏覽器半透明僅適用於浮動模式。助理的位置請在「助理」頁面中變更。",
"prefs.left": "左側",
"prefs.left_click": "左鍵點擊",
"prefs.line_drag_draws_one": "按下並拖曳繪製一條直線",
"prefs.line_drag_draws_one_note": "在「直線」工具中,按下、拖曳再放開,會從按下處到放開處繪製一條直線,並在該處結束。按一下仍會繪製連續線段。關閉:拖曳會在放開處放置一個點,與按一下相同。",
"prefs.linked_designs": "連結設計",
"prefs.live_input": "即時輸入",
"prefs.live_preview": "即時預覽",
@@ -1853,14 +1927,36 @@
"prefs.origin_plane_names": "原點平面名稱",
"prefs.origin_plane_names_note": "顯示於瀏覽器、對話方塊和清單中的名稱。{top} 為 XY,{front} 為 XZ,{right} 為 YZ,Z 軸朝上。命令、指令碼和已儲存的設計仍使用 XY、XZ 和 YZ。",
"prefs.overall_speed": "整體速度",
"prefs.perspective_fov": "視角",
"prefs.placement": "放置",
"prefs.prefer_free_sketch_points": "點重疊時優先選取可移動的草圖點",
"prefs.preview_choices": "所選設定的預覽",
"prefs.profile_active": "作用中的設定檔",
"prefs.profile_applied": "已套用設定檔。",
"prefs.profile_changed": "儲存設定檔後設定已有變更。按「儲存」可將變更保存到設定檔中。",
"prefs.profile_deleted": "已刪除設定檔。",
"prefs.profile_export": "匯出…",
"prefs.profile_exported": "已匯出設定檔。",
"prefs.profile_imported": "已匯入設定檔。在「作用中的設定檔」中選擇它即可切換。",
"prefs.profile_name_hint": "設定檔名稱,例如:筆電",
"prefs.profile_rename": "重新命名",
"prefs.profile_renamed": "已重新命名設定檔。",
"prefs.profile_save": "儲存",
"prefs.profile_saved": "目前的設定已儲存至設定檔。",
"prefs.profile_skipped": "已套用設定檔;{n} 項設定保留目前的值(請參閱記錄檔)。",
"prefs.profiles": "設定檔",
"prefs.profiles_note": "將快捷鍵、工具列、導覽、環形選單與介面設定以一個名稱集中保存,並可一次切換。",
"prefs.project_options_dialog": "投影選項對話方塊",
"prefs.project_options_dialog_note": "開啟:投影前先選擇「幾何」或「實體」以及「投影連結」。關閉:沿用先前直接點選的工作流程。",
"prefs.quality_default": "預設",
"prefs.quality_fastest": "最快",
"prefs.quality_slowest": "最慢",
"prefs.quality_smoother": "更平滑",
"prefs.render_previous_geometry_budget": "使用先前的彩現預覽幾何預算",
"prefs.render_previous_geometry_budget_help": "還原先前固定的幾何上限(64 位元桌面版為 512 MiB,其他平台為 128 MiB),而非依裝置決定的預算。",
"prefs.reports_saved": "已儲存 {n} 份",
"prefs.ribbon_reveal": "在功能區中顯示搜尋結果",
"prefs.ribbon_reveal_note": "在「搜尋命令」中將指標停留在結果上,會顯示該命令在功能區中的位置:其索引標籤、按鈕,或面板下拉選單中的列。從搜尋啟動的命令會在該處閃爍,而從下拉選單執行中的命令會標示其所在面板。",
"prefs.right_click": "右鍵點擊",
"prefs.saving": "自動儲存與復原",
"prefs.scale_note": "也可在視窗中使用 Ctrl + / Ctrl −。100% 時按鈕為 28 px。",
@@ -1874,6 +1970,10 @@
"prefs.shift_add_ctrl_toggle": "Shift 僅新增;Ctrl / Cmd 切換選擇",
"prefs.shift_add_note": "開啟:Shift 新增,Ctrl / Cmd 切換選擇。關閉(預設):兩者皆切換選擇。",
"prefs.shortcuts": "快捷鍵",
"prefs.single_surface_analysis": "一次只使用一種曲面分析",
"prefs.single_surface_analysis_help": "關閉時,曲面著色與「連續性」可同時開啟。開啟後只保留最後啟動或變更的分析。",
"prefs.sketch_align_points": "繪製時與其他草圖點對齊",
"prefs.sketch_align_points_note": "繪製時,點可同時與一個草圖點水平對齊、並與另一個草圖點垂直對齊,並顯示點線輔助線,按一下會保留兩個對齊。關閉:只與前一個點對齊,一次一個軸向。",
"prefs.sketch_conflict_colour": "衝突幾何以衝突顏色顯示",
"prefs.sketch_conflict_colour_note": "草圖的拘束發生衝突時,失敗拘束所涉及的曲線與點也會以衝突顏色繪製,而不只是其符號或尺寸。關閉時:維持原本的顏色。",
"prefs.sketch_exit_view": "草圖結束時",
@@ -1881,6 +1981,8 @@
"prefs.sketch_exit_view.previous": "返回先前的檢視",
"prefs.sketch_exit_view.unless_rotated": "未旋轉時返回",
"prefs.sketch_exit_view_note": "「完成草圖」、取消或連按兩次 Esc 後檢視的去向。",
"prefs.sketch_recent_snap": "自動鎖點至最近使用的圓心與中點",
"prefs.sketch_recent_snap_note": "繪製時,游標會鎖點至最近使用的兩個圓心或直線邊中點的輔助線交會處。關閉時:這些輔助線僅供顯示,游標不會移動。",
"prefs.sketch_selection": "草圖與選取",
"prefs.sketch_selection_heading": "草圖與選取",
"prefs.sketch_selection_note": "草圖如何貼齊,以及點擊如何選取。",
@@ -1918,7 +2020,14 @@
"prefs.toast_place": "通知位置",
"prefs.toggle_item": "加入此項目,或再次移除",
"prefs.toolbar": "工具列",
"prefs.toolbar_tabs": "工具列索引標籤",
"prefs.top": "頂部",
"prefs.trackpad_zoom_modifier": "按住以下按鍵時以雙指捲動縮放",
"prefs.trackpad_zoom_modifier.alt": "⌥ / Alt",
"prefs.trackpad_zoom_modifier.cmd": "⌘",
"prefs.trackpad_zoom_modifier.ctrl": "Ctrl",
"prefs.trackpad_zoom_modifier.help": "只按住此按鍵並垂直捲動,即可在指標處縮放。「關閉」則保留現有的捲動行為。",
"prefs.trackpad_zoom_modifier.off": "關閉",
"prefs.translucent": "半透明",
"prefs.under_browser": "瀏覽器下方",
"prefs.under_cursor": "游標下方",
@@ -1928,9 +2037,14 @@
"prefs.view_confirm_corner": "在檢視角落顯示「確定」與「取消」",
"prefs.view_confirm_corner_note": "開啟對話框或草圖時,檢視右上角的勾號與叉號,作用等同於對話框的「確定」與「取消」,或完成與取消草圖。檢視導覽器會下移到它們下方。",
"prefs.viewport": "視埠",
"prefs.viewport_background": "背景",
"prefs.viewport_background_colour": "顏色",
"prefs.viewport_background_theme": "主題漸層",
"prefs.wheel": "滾輪",
"prefs.wheel_trackpad": "滾輪與觸控板",
"prefs.workspace": "工作區",
"prefs.zoom_stop_at_model": "縮放在模型處停止",
"prefs.zoom_stop_at_model_tip": "3D 滑鼠與裝置應用程式會朝檢視中央的表面縮放;拖曳縮放會固定在開始拖曳的點。關閉:縮放可穿過模型。滾輪與雙指捏合另由「縮放到游標」控制",
"prefs.zoom_toward_cursor": "縮放,朝向游標",
"properties.title": "屬性:{name}",
"recovery.days_ago": "{count} 天前",
@@ -2019,6 +2133,7 @@
"render.appearance_editor.weight": "權重",
"render.appearance_physics_separate": "視覺外觀不會指定密度、熱學資料或其他工程屬性。",
"render.appearances": "外觀",
"render.assign_help": "按一下以套用至選取項目;拖曳可預覽並放下,或在未選取任何項目時按一下以塗抹。",
"render.availability_native": "原生組合;套用前請先檢閱",
"render.availability_projection": "支援的投影;請參閱範圍與省略項目",
"render.availability_reference": "參考資料;不會自動指派",
@@ -2057,6 +2172,7 @@
"render.bloom_threshold": "線性高光臨界值",
"render.browse_capabilities": "檢查完整功能目錄",
"render.browse_environments": "瀏覽原創 HDR 環境",
"render.browse_looks": "瀏覽…",
"render.browse_native_scenes": "瀏覽原生 Studio",
"render.browse_physical": "檢查物理參考資料",
"render.browse_quality": "檢查品質規格",
@@ -2080,6 +2196,82 @@
"render.check_opaque": "透明度:僅支援不透明表面;支援背景 Alpha。",
"render.check_sorted_alpha": "透明度:排序 Alpha 近似。",
"render.check_transmission": "透明度:物理透射。",
"render.children.absolute_floor": "絕對下限",
"render.children.adaptive": "自適應",
"render.children.add_look_reason": "新增風格以編輯其啟用狀態與強度。",
"render.children.all_shots": "所有鏡頭",
"render.children.bloom": "泛光",
"render.children.check": "檢查",
"render.children.check_now": "立即檢查",
"render.children.chromatic": "色差",
"render.children.compact": "精簡",
"render.children.contrast": "對比",
"render.children.copy_image": "複製",
"render.children.copy_job": "複製工作 JSON",
"render.children.copy_request": "複製請求 JSON",
"render.children.coverage_error": "覆蓋率誤差",
"render.children.cpu": "CPU 光線追蹤",
"render.children.denoise": "降低完成影像的雜訊",
"render.children.depth": "路徑深度",
"render.children.distortion": "畸變",
"render.children.edge_samples": "邊緣取樣數",
"render.children.effects_banner": "這些效果需要 GPU 路徑追蹤。開啟此處絕不會變更方法。",
"render.children.enable_adaptive": "啟用獨立先導取樣以編輯自適應限制。",
"render.children.enable_bloom": "啟用泛光以編輯其強度、臨界值與半徑。",
"render.children.finishing": "後製",
"render.children.flare": "眩光",
"render.children.fresnel": "菲涅耳分層",
"render.children.ghosts": "鬼影環",
"render.children.glass": "玻璃傳輸",
"render.children.go_to": "前往{editor}",
"render.children.grain": "顆粒",
"render.children.halo": "光暈",
"render.children.hdr": "HDR",
"render.children.keep_master": "保留原始線性母檔",
"render.children.last_result": "上次:{number} · {width} × {height} · {phase}",
"render.children.lens_effects": "鏡頭效果",
"render.children.look_summary": "{tone} · {count} 個風格",
"render.children.looks": "創意風格",
"render.children.memory": "記憶體",
"render.children.method": "方法",
"render.children.minimum": "最小值",
"render.children.needs_cpu": "需要 CPU 光線追蹤。開啟此處絕不會變更方法。",
"render.children.nested": "經認證的巢狀介電質",
"render.children.not_checked": "未檢查",
"render.children.path": "路徑追蹤",
"render.children.pilots": "先導取樣數",
"render.children.preview": "預覽資料",
"render.children.progressive_reason": "選擇「漸進式」以編輯其取樣數與種子。",
"render.children.radius": "半徑",
"render.children.reflect_depth": "反射深度",
"render.children.reflect_samples": "反射取樣數",
"render.children.regrade": "重新調色",
"render.children.relative_error": "相對誤差",
"render.children.render": "彩現",
"render.children.render_shot": "彩現鏡頭",
"render.children.renderer": "彩現器",
"render.children.renderers": "各彩現器",
"render.children.request": "此請求",
"render.children.reset_finishing": "重設後製",
"render.children.review_quality": "檢閱品質規格…",
"render.children.rgb_gain": "RGB 增益",
"render.children.samples": "取樣數",
"render.children.sampling": "取樣",
"render.children.saturation": "飽和度",
"render.children.scene_summary": "{bodies} 個實體 · {triangles} 個三角形",
"render.children.seed": "種子",
"render.children.sharpening": "銳利化",
"render.children.single_image": "單張影像",
"render.children.soft_focus": "柔焦",
"render.children.streak": "光條",
"render.children.strength": "強度",
"render.children.studio": "Studio",
"render.children.threshold": "臨界值",
"render.children.tone": "色調",
"render.children.under_hood": "技術細節",
"render.children.vignette": "暈影",
"render.children.workstation": "工作站",
"render.choose_look": "請先在「外觀」中選擇風格",
"render.chromatic_offset": "邊緣色差偏移",
"render.clear_stage": "移除已儲存的佈景",
"render.copy_request": "複製 JSON",
@@ -2331,8 +2523,33 @@
"render.flare_strength": "亮部眩光強度",
"render.flare_threshold": "場景線性眩光閾值",
"render.fold_browser": "摺疊瀏覽器",
"render.frame_aspect": "長寬比",
"render.frame_centre_mark": "中心標記",
"render.frame_copy_limit": "沒有可用的複製鏡頭名稱",
"render.frame_copy_name": "{name} 副本 {number}",
"render.frame_custom": "自訂",
"render.frame_distance_unit": " × 大小",
"render.frame_duplicate": "複製",
"render.frame_exposure": "曝光",
"render.frame_fov": "視角",
"render.frame_guides": "輔助線",
"render.frame_invalid_aspect": "無效的長寬比預設",
"render.frame_lens": "視角 {fov}° · ≈ {mm} mm",
"render.frame_name": "名稱",
"render.frame_output_size": "輸出大小",
"render.frame_photo": "3:2 · 相片",
"render.frame_portrait": "4:5 · 人像",
"render.frame_presets": "畫面預設",
"render.frame_presets_pending": "將隨「鏡頭」編輯器推出",
"render.frame_projection": "投影",
"render.frame_render_shot": "彩現此鏡頭",
"render.frame_rule_thirds": "三分法",
"render.frame_safe_area": "安全區域",
"render.frame_shot_title": "鏡頭 · {name}",
"render.frame_square": "1:1 · 正方形",
"render.frame_tall": "9:16 · 直式",
"render.frame_thirds": "三分線",
"render.frame_wide": "16:9 · 寬螢幕",
"render.gpu_depth": "最大路徑深度",
"render.gpu_options_help": "取樣數、深度、種子和曝光會隨此設定一併儲存。僅儲存目前啟用的影像方法。",
"render.gpu_path_failed": "GPU 路徑追蹤器無法使用",
@@ -2360,6 +2577,7 @@
"render.heading_results": "結果",
"render.heading_shots": "鏡頭",
"render.hide_shots_label": "隱藏鏡頭列",
"render.hover_look": "{object} · {look} · 按一下以選取",
"render.image_advanced": "進階 GPU 控制項",
"render.image_cancelled": "彩現已取消",
"render.image_cancelling": "正在取消",
@@ -2506,17 +2724,95 @@
"render.library_uniform_ack": "使用均勻近似,不含空間或進階效果",
"render.library_usable": "可執行的投影",
"render.library_users": "套用對象",
"render.light_aim": "對準",
"render.light_anchor_pending": "尚無法變更燈光座標系。",
"render.light_azimuth": "方位角",
"render.light_backend_limit": "請選擇 CPU 光線追蹤或明確的 GPU 攝影棚以編輯燈光。舊版 GPU 攝影棚燈光仍為唯讀。",
"render.light_behaviour": "行為",
"render.light_default_fill": "補光",
"render.light_default_key": "主光",
"render.light_default_number": "燈光 {number}",
"render.light_default_rim": "輪廓光",
"render.light_delete": "刪除",
"render.light_distance": "距離",
"render.light_duplicate": "複製",
"render.light_elevation": "仰角",
"render.light_gpu_punctual": "點光源與聚光燈可搭配 CPU 光線追蹤使用。",
"render.light_hard_shadow": "此燈光為硬陰影;無法使用發光體柔和度。",
"render.light_intensity": "強度",
"render.light_missing": "此燈光已不存在。請在瀏覽器中選取燈光。",
"render.light_place_highlight": "依高光放置",
"render.light_place_pending": "依高光放置需要在視埠中選取燈光,目前尚不支援。",
"render.light_position": "位置",
"render.light_preview_help": "即時檢視不含陰影;面光源使用中心取樣近似。彩現時使用完整的燈光模型。",
"render.light_product_centre": "產品中心",
"render.light_size": "大小",
"render.light_softness": "柔和度",
"render.light_temperature": "色溫",
"render.light_temperature_help": "近似黑體色調;以線性 RGB 儲存。",
"render.light_type": "類型",
"render.light_type_area": "面光源",
"render.light_type_point": "點光源",
"render.light_type_spot": "聚光燈",
"render.light_type_sun": "太陽",
"render.light_view_only": "獨奏與靜音只影響此檢視及其彩現;絕不會儲存在設計中。",
"render.light_world_origin": "世界原點",
"render.lighting_aim_point": "對準點",
"render.lighting_apply": "套用預設",
"render.lighting_area_samples": "面光源取樣數",
"render.lighting_budget": "預算",
"render.lighting_budget_help": "數量為唯讀。新增、複製或刪除燈光即可變更;上限由方法決定。",
"render.lighting_colour": "顏色",
"render.lighting_consent": "以此預設取代方向光",
"render.lighting_custom": "自訂燈光",
"render.lighting_custom_help": "選擇「自訂」會將預設轉換為可編輯的燈光,每盞燈光在樹狀結構中各佔一列。",
"render.lighting_direction": "方向 X Y Z",
"render.lighting_direction_help": "或輸入朝向光源的方向(X Y Z)。",
"render.lighting_distance_unit": " × 大小",
"render.lighting_edge_u": "U 邊向量",
"render.lighting_edge_v": "V 邊向量",
"render.lighting_falloff": "衰減",
"render.lighting_falloff_help": "強度以參考距離處的值表示。",
"render.lighting_height": "高度 V",
"render.lighting_minimum": "最小距離",
"render.lighting_mute": "靜音此燈光",
"render.lighting_point": "點",
"render.lighting_preset": "攝影棚預設",
"render.lighting_preset_cpu": "方向光攝影棚預設需要 CPU 光線追蹤。GPU 照明使用明確的太陽光與面光源。",
"render.lighting_preset_row": "預設",
"render.lighting_radiance": "輻射亮度",
"render.lighting_reference": "參考距離",
"render.lighting_review_help": "取代方向光清單。保留點光源與面光源、環境、陰影、相機及所有其他鏡頭設定。",
"render.lighting_review_title": "檢閱照明預設",
"render.lighting_samples_cpu": "面光源取樣數適用於 CPU 光線追蹤。",
"render.lighting_samples_need_area": "新增 CPU 面光源以設定面光源取樣數。",
"render.lighting_samples_reason": "面光源取樣數必須為 1、4、16 或 64。",
"render.lighting_shadow_cpu": "陰影開關需要 CPU 光線追蹤。GPU 路徑追蹤一律會投射陰影。",
"render.lighting_shadows": "投射陰影",
"render.lighting_shadows_section": "陰影與取樣",
"render.lighting_shape": "形狀",
"render.lighting_solo": "獨奏此燈光",
"render.lighting_source": "來源",
"render.lighting_source_section": "光源",
"render.lighting_spot_preserved": "此點光源會保留已儲存的聚光錐角,直到變更其類型為止。",
"render.lighting_sun_distance": "太陽方向與距離和對準點無關。",
"render.lighting_unsupported": "不支援",
"render.lighting_used": "{used} / {limit}",
"render.lighting_width": "寬度 U",
"render.lighting_world_position": "世界 X Y Z",
"render.lights_fixed_to": "燈光固定於",
"render.linear_help": "在降噪、曝光、色調對應、濾鏡與背景之前,保留 32 位元浮點 RGBA 母檔。線性 sRGB/D65;覆蓋率預乘。額外記憶體須明確核可。無壓縮,也無額外通道。",
"render.linear_retain": "保留原始線性 EXR",
"render.linear_unavailable": "所選的已完成畫面沒有保留 EXR。請在彩現前啟用保留;較舊的 PNG 無法還原原始輻射亮度。",
"render.look_add": "新增色彩風格",
"render.look_applied": "已套用 {name}",
"render.look_bleach": "仿留銀沖印風格",
"render.look_cool": "冷色",
"render.look_cyanotype": "仿藍曬風格",
"render.look_faded": "褪色相片",
"render.look_material": "材質",
"render.look_mono": "單色",
"render.look_pasted": "已貼上風格",
"render.look_sepia": "深褐色",
"render.look_strength": "風格強度",
"render.look_teal_orange": "青綠 / 橘橙",
@@ -2592,9 +2888,11 @@
"render.output_advanced": "進階",
"render.output_backend_ready": "就緒",
"render.output_check": "檢查",
"render.output_check_failed": "檢查 · 錯誤",
"render.output_check_help": "執行「檢查」可在不開始彩現的情況下檢閱此請求。",
"render.output_check_summary": "檢查 · 備註:{count}",
"render.output_copy": "複製",
"render.output_copy_report": "複製報告",
"render.output_destination": "目的地",
"render.output_destination_help": "匯出完成的影像時,請選擇目的檔案。",
"render.output_dimensions": "大小",
@@ -2604,6 +2902,7 @@
"render.output_fit": "適合",
"render.output_format": "格式",
"render.output_format_status": "PNG 是確切的已完成顯示影像。選用的 GPU EXR 會在顯示濾鏡之前,保留原始場景線性 FLOAT32 輻射亮度。匯出絕不會以預覽快取或其他工作取代。",
"render.output_grading": "調色",
"render.output_image": "影像",
"render.output_largest": "最大 {width} × {height}",
"render.output_lock_ratio": "鎖定長寬比",
@@ -2613,6 +2912,8 @@
"render.output_quality_waiting": "等待品質約定",
"render.output_ratio_refused": "連動的尺寸超出此方法的大小上限。先前的尺寸會保留;請解除鎖定比例,或選擇較小的值。",
"render.output_ready": "可開始彩現",
"render.output_run_check": "執行檢查",
"render.output_size_limit": "{method}:每邊最多 {dimension} px,總計 {pixels} 像素。可容納的最大尺寸:{width} × {height}。",
"render.output_size_ok": "大小正常 · {width} × {height} px",
"render.output_swap_orientation": "交換寬度與高度",
"render.output_tools_inspector": "請在「輸出」檢查器中編輯尺寸與格式。",
@@ -2629,6 +2930,7 @@
"render.page_output": "輸出",
"render.page_scene": "場景",
"render.paint_label": "塗料",
"render.painting_with": "正在以 {name} 塗抹",
"render.passive_stage": "地面與被動佈景",
"render.passive_stage_help": "有限的被動面板僅屬於彩現影像,不會新增 CAD 實體或質量。放置位置在套用後即固定;與產品邊界相交時會被拒絕。CPU 不提供漫射反彈照明。",
"render.perspective": "透視相機",
@@ -2650,6 +2952,7 @@
"render.pick_help": "選擇實體、面或元件。點擊空白處可清除;按住 Shift 或 Ctrl 可加選或切換。醒目提示僅會顯示於即時產品檢視中。",
"render.pick_label": "選取",
"render.pick_up_label": "拾取",
"render.pick_up_prompt": "按一下物件以吸取其風格",
"render.pick_waiting": "尚未支援產品選取。",
"render.post_contrast": "對比",
"render.post_gain_b": "藍色增益",
@@ -2689,13 +2992,17 @@
"render.radial_distortion": "徑向畸變",
"render.radial_fit": "適合產品檢視",
"render.radial_save": "儲存鏡頭",
"render.recent_looks": "最近使用的風格",
"render.regrade_action": "重新調色原始母檔(不降噪)",
"render.regrade_help": "以這些呈現控制項,從所選的已完成原始母檔建立獨立的 PNG。不會追蹤光線、變更已擷取的尺寸/相機/光源,也不會覆寫 EXR。不會重新套用降噪:原始母檔不保留其引導資料。衍生檔仍可透過相同的工作控制項匯出。",
"render.regrade_label": "重新調色",
"render.reload_settings": "重新載入已儲存設定",
"render.remove_override": "移除覆寫",
"render.replace_all": "全部取代",
"render.replace_ground": "確認取代現有佈景",
"render.replace_label": "取代",
"render.replace_saved_surface": "取代此目標現有的已儲存繫結",
"render.replace_with": "取代為",
"render.restore_camera": "還原已儲存相機",
"render.result_actual": "100%",
"render.result_actual_help": "每個顯示像素對應一個影像像素。",
@@ -2747,14 +3054,28 @@
"render.saved_surface_remove": "移除已儲存的繫結",
"render.saved_surfaces": "已儲存的表面繫結",
"render.saved_surfaces_help": "固定的內建貼圖以局部毫米為單位,跟隨所選的實例。目標被取代或遺失時會視為錯誤,絕不會自動重新指派。",
"render.scene_all_shots": "所有鏡頭({count})",
"render.scene_apply": "套用已檢閱的攝影棚",
"render.scene_batch_reason": "「所有鏡頭」需要已儲存鏡頭的彩現佇列,目前尚無法使用。",
"render.scene_check_now": "立即檢查",
"render.scene_check_passed": "檢查通過 · {notes} 則備註",
"render.scene_check_stale": "檢查已過期 · 請重新檢查",
"render.scene_check_unchecked": "尚未檢查 · 0 則備註",
"render.scene_consent": "確認取代燈光、環境、曝光與佈景",
"render.scene_light_summary": "{environment} · {lights} 盞燈光",
"render.scene_look_summary": "{looks} 個風格 · {overrides} 個覆寫",
"render.scene_open_check": "開啟檢查",
"render.scene_preserved_fields": "相機、取樣、尺寸、光學繫結、CAD 幾何與工程材質皆會保留。",
"render.scene_preserves_design": "為可見的主體組合燈光與被動佈景。幾何、工程材質與相機維持獨立。",
"render.scene_ready": "可開始彩現",
"render.scene_reminder": "場景會保留設計。彩現絕不會變更幾何、工程屬性與 CAD 資料。",
"render.scene_reminders": "提醒",
"render.scene_renderer_ready": "{renderer} 已就緒",
"render.scene_replaces": "取代內容",
"render.scene_review": "解析並檢閱",
"render.scene_review_help": "套用前請檢閱完整的原生組合。未繫結的進階 SCENE 規格不會被替代。",
"render.scene_scope_details": "組合範圍",
"render.scene_stages": "階段",
"render.search_appearances": "搜尋 {count} 個外觀",
"render.setup_legacy_environment": "此舊版設定使用傳統的環境旋轉或強度。這些值會保留;儲存完整影像工作前,請明確轉換它們。",
"render.setup_name": "設定名稱",
@@ -2767,7 +3088,22 @@
"render.shell_tab_camera": "彩現相機",
"render.shell_tab_lighting": "照明",
"render.shell_tab_scene": "彩現場景",
"render.shot_aperture": "光圈",
"render.shot_distance": "距離",
"render.shot_dof": "景深",
"render.shot_duplicate": "複製已儲存的鏡頭",
"render.shot_edit_output": "在「輸出」中編輯",
"render.shot_exposure_reason": "曝光需要 CPU 光線追蹤或 GPU 路徑追蹤。",
"render.shot_exposure_section": "曝光",
"render.shot_focus_distance": "對焦距離",
"render.shot_fov_reason": "視角需要透視投影。",
"render.shot_frame_subject": "取景主體",
"render.shot_invalid_camera": "相機數值必須為有限值且在範圍內。",
"render.shot_lens": "透鏡",
"render.shot_lens_enable_reason": "啟用景深以編輯光圈與對焦距離。",
"render.shot_lens_gpu_reason": "景深需要 GPU 路徑追蹤。",
"render.shot_lens_perspective_reason": "景深需要透視投影。",
"render.shot_look_selection": "注視所選項目",
"render.shot_manager": "已儲存的鏡頭",
"render.shot_new_name": "新鏡頭名稱",
"render.shot_remove": "移除已儲存的鏡頭",
@@ -2775,6 +3111,9 @@
"render.shot_remove_title": "移除已儲存的鏡頭?",
"render.shot_rename": "重新命名已儲存的鏡頭",
"render.shot_saved_only": "請先儲存目前的草稿。複製與重新命名會保留確切的已儲存選項與資源參照。",
"render.shot_selection_reason": "請選取要對準的實體或面。",
"render.shot_size": "大小",
"render.shot_target": "目標",
"render.shots_camera_changed": "儲存此鏡頭後相機已變更",
"render.shots_name_help": "請為目前的鏡頭輸入唯一的名稱。",
"render.shots_no_result": "尚無彩現",
@@ -2997,6 +3336,13 @@
"render.wait_pick_up": "尚未支援:產品拾取與外觀吸取",
"render.wait_replace": "尚未支援:取代外觀的所有使用處",
"render.wait_solo": "尚未支援:燈光可見性與獨奏控制項",
"render.wear_applies_to": "套用於",
"render.wear_layer_count": "{count} 層",
"render.wear_layer_one": "{count} 層",
"render.wear_layers": "層",
"render.wear_no_layers": "沒有層",
"render.wear_selected_layer": "所選層",
"render.wear_title": "磨損",
"sample.bracket.about": "以 2 mm 規則建立的基礎凸緣、邊線凸緣和摺邊",
"sample.bracket.name": "鈑金支架",
"sample.enclosure.about": "薄殼盒體,含唇緣、螺絲凸座、墊塊和卡扣",
@@ -3030,6 +3376,7 @@
"select an axis": "請選取一個軸",
"select an axis, a straight or circular edge, or a cylinder, cone or torus face first": "請先選取軸、直邊或圓邊,或圓柱面、圓錐面或圓環面",
"select bodies first": "請先選取實體",
"select components first": "請先選取元件",
"select corner points, or the two lines of one corner": "請選取角點,或同一個角的兩條直線",
"select one corner point, or the two lines of one corner": "請選取一個角點,或同一個角的兩條直線",
"select sheet edges first": "請先選取鈑金邊",
@@ -3048,6 +3395,7 @@
"settings.double_click_components": "按兩下元件以啟用它,或就地編輯連結的元件",
"settings.frame_rate_details_note": "加入最近各影格耗時的圖表(疊加繪製的三角形數量)、影格耗時直方圖,以及 GPU 繪製的內容。點擊檢視中的影格率即可顯示或隱藏。",
"settings.frame_rate_note": "在檢視右下角顯示每秒影格數。",
"settings.insert_lists_open_designs": "「插入設計」會優先列出在其他分頁中開啟的設計",
"settings.measure_axis_distances": "顯示 X/Y/Z 距離",
"settings.measure_axis_distances_help": "開啟測量時,在總距離之外顯示沿世界座標軸方向的分量尺寸。",
"settings.msaa_applies_on_restart": "抗鋸齒將在下次啟動 SolidCraft 時生效",
@@ -3072,6 +3420,10 @@
"shortcut.unpin": "取消固定",
"sketch is missing": "草圖不存在",
"sketch.degrees_of_freedom": "{count} 個自由度",
"sketch.dimension_added_driven": "草圖已決定該尺寸,因此已將其新增為從動(參考)尺寸",
"sketch.dimension_applied": "已套用尺寸",
"sketch.dimension_applied_defined": "已套用尺寸;已定義參數 `{name}`",
"sketch.dimension_applied_renamed": "已套用尺寸;參數已命名為 `{name}`",
"sketch.dof_left": "剩餘 {count} 個自由度",
"sketch.dof_left_one": "剩餘 {count} 個自由度",
"sketch.draw_curves": "繪製為 {linetype}",
@@ -3106,6 +3458,8 @@
"sketch_text.use_font_file": "使用字型檔案 {path}",
"solid": "實體",
"status.editing": "正在編輯 {name}",
"status.navigation": "滑鼠對應:{mapping}",
"status.navigation_tip": "滑鼠移動檢視的方式。按一下可選擇其他對應",
"status.under_constrained": "拘束不足({count} 個自由度)",
"status.under_constrained_one": "拘束不足({count} 個自由度)",
"status.units_tip": "設計的單位。按一下可變更",
@@ -3139,8 +3493,10 @@
"timeline.delete_folders_tip": "在歷程記錄中保留其中的特徵與巢狀資料夾",
"timeline.delete_folders_with_features_tip": "刪除資料夾及其中的所有特徵與巢狀資料夾",
"timeline.delete_many": "刪除所選的 {count} 個特徵",
"timeline.edited_rolled_back": "{name} 已變更,但它位於歷程標記之後,因此不會建構:將標記移到它之後即可看到結果",
"timeline.feature_error": "錯誤:{message}",
"timeline.feature_hint": "雙擊以編輯 · 拖曳以重新排序 · 按右鍵查看更多",
"timeline.feature_rolled_back": "已回溯:位於歷程標記之後,因此不會建構",
"timeline.feature_warning": "警告:{message}",
"timeline.group": "新建特徵資料夾",
"timeline.move_many": "移動時間軸項目",
@@ -3220,6 +3576,10 @@
"ui.3d_mouse_offer": "校準 3D 滑鼠可以修正互換或反向的軸,並調整它的速度和手感。",
"ui.3d_mouse_offer_never": "不再顯示",
"ui.3d_mouse_offer_swap": "切換到 Hidraw(直接驅動)",
"ui.3d_mouse_orbit": "環轉",
"ui.3d_mouse_orbit_classic": "傳統",
"ui.3d_mouse_orbit_tip": "追蹤:3D 滑鼠會繞著開始旋轉時位於檢視中央的模型部位旋轉檢視,並以淡色小球標示。傳統:繞著檢視中心旋轉",
"ui.3d_mouse_orbit_traced": "追蹤",
"ui.3d_mouse_reading": "讀值",
"ui.3d_mouse_reset_axes": "重設軸指定",
"ui.3d_mouse_reset_view": "重設檢視",
@@ -3604,6 +3964,7 @@
"ui.constant": "恆定",
"ui.constraints_conflict": "拘束條件衝突",
"ui.construction": "建構",
"ui.construction.ribbon_label": "輔助線",
"ui.context_menu": "右鍵選單",
"ui.continuity_g0": "G0 摺痕",
"ui.continuity_g1": "G1 相切",
@@ -3695,6 +4056,14 @@
"ui.end_scale": "末端縮放",
"ui.entities": "物件",
"ui.equal": "相等",
"ui.equation_end": "結束",
"ui.equation_explicit": "顯式",
"ui.equation_form": "形式",
"ui.equation_note": "變數為純數字:sin(t) 以弧度計算。沒有單位的結果會使用設計的單位。",
"ui.equation_parametric": "參數式",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "等效半徑",
"ui.expand": "展開",
"ui.exportDxf": "匯出 DXF…",
@@ -3760,6 +4129,7 @@
"ui.heading_design": "設計",
"ui.heading_draft": "拔模",
"ui.heading_edit": "編輯",
"ui.heading_equation_curve": "方程式曲線",
"ui.heading_extrude": "擠出",
"ui.heading_fillet": "圓角",
"ui.heading_finish_editing": "完成編輯",
@@ -3851,6 +4221,10 @@
"ui.import_ellipsis": "匯入…",
"ui.infinite": "無限",
"ui.insert": "插入",
"ui.insert_design.browse": "瀏覽…",
"ui.insert_design.open_designs": "已開啟的設計",
"ui.insert_design.saved_file": "{name} 有未儲存的變更,因此插入的是其已儲存的檔案。請儲存後執行「更新連結」以帶入變更。",
"ui.insert_design.unsaved": "未儲存的變更",
"ui.inspect": "檢查",
"ui.intersect": "相交",
"ui.isolate": "隔離",
@@ -4000,6 +4374,18 @@
"ui.project": "投影",
"ui.project_face_edges_sketch": "將面的邊投影到新草圖",
"ui.properties": "屬性",
"ui.properties.copy_matrix": "複製矩陣",
"ui.properties.first_moments": "一次矩",
"ui.properties.inertia": "慣性矩",
"ui.properties.inertia_note": "相對於質心,以世界座標軸表示(g·{unit}²)",
"ui.properties.inertia_unavailable": "無法使用:某個實體的網格未封閉。",
"ui.properties.inertia_x": "Ixx, Ixy, Ixz",
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "正在測量…",
"ui.properties.measuring_failed": "測量在完成前已停止。",
"ui.properties.principal_axis": "主軸 {number}",
"ui.properties.principal_moments": "主慣性矩",
"ui.pull_direction": "拔模方向",
"ui.quality": "品質",
"ui.quantity": "數量",
@@ -4099,7 +4485,11 @@
"ui.sketch": "草圖",
"ui.sketch_dimension": "草圖尺寸",
"ui.sketch_grid": "草圖網格",
"ui.sketch_intersect_geometry": "幾何",
"ui.sketch_intersect_projection_link": "投影連結",
"ui.sketch_intersect_selection_filter": "選擇篩選",
"ui.sketch_modifiers": "草圖修飾鍵",
"ui.sketch_project_geometry": "幾何",
"ui.sketch_scale": "草圖比例",
"ui.sketches": "草圖",
"ui.slice": "切片",
@@ -4150,6 +4540,7 @@
"ui.tab_manage": "管理",
"ui.tab_sheet_metal": "鈑金",
"ui.tab_view": "檢視",
"ui.tab_weldments": "焊件",
"ui.tangent": "相切",
"ui.taper_angle": "錐度角",
"ui.tapped": "攻牙",
@@ -4165,6 +4556,7 @@
"ui.tip_angle": "尖端角度",
"ui.to_object": "到物件",
"ui.tool_direction": "刀具方向",
"ui.toolbar_tabs_hidden": "所有工具列索引標籤都已隱藏。按一下 + 或在此按右鍵以顯示一個索引標籤。",
"ui.top": "上視",
"ui.top_diameter": "頂部直徑",
"ui.top_radius": "頂部半徑",
@@ -4211,6 +4603,7 @@
"ui.visual_shaded_with_edges": "含邊線的著色",
"ui.visual_style": "視覺樣式",
"ui.visual_wireframe": "線框",
"ui.wheel_zoom_speed": "滑鼠滾輪縮放速度",
"ui.width": "寬度",
"ui.window_system": "視窗系統",
"ui.window_system_auto": "自動",
@@ -4262,6 +4655,9 @@
"update.prefs_label": "更新",
"update.prefs_note": "目前為 SolidCraft {version}({kind})。檢查時只向 GitHub 查詢最新版本,不傳送其他任何資料。",
"update.prefs_web": "重新載入頁面以取得最新的網頁應用程式。如果網路無法使用,或更新無法及時下載完成,則會改為開啟已儲存的版本;進行中的下載會繼續,供下次重新載入時使用。",
"update.refresh_checking": "正在檢查最新版本…",
"update.refresh_fallback": "無法檢查是否有更新的版本;將更新至先前找到的 {version}。",
"update.refresh_selected": "正在更新至 {version}。",
"update.release_page": "開啟發佈頁面",
"update.restart": "立即重新啟動",
"update.restart_later": "稍後",
+83
View File
@@ -775,6 +775,8 @@
"at the face": "在面上",
"bom.group_children": "子零件并入所属零件的行",
"browser.body_name": "实体{number}",
"browser.calibrate_click_a": "点击图像选取点 A,或输入其坐标。",
"browser.calibrate_click_b": "点击图像选取点 B,或输入其坐标。",
"browser.calibrate_title": "校准:{name}",
"browser.capture_many": "{count} 个组件已移动,但尚未捕获其位置。",
"browser.capture_note": "“捕获位置”保留新位置;“恢复位置”还原原先的位置。",
@@ -817,6 +819,8 @@
"cmd.appearance_pick_up": "拾取外观",
"cmd.appearance_replace": "替换外观",
"cmd.assembly_bom": "物料清单",
"cmd.assembly_bom_item_set": "更改项目编号",
"cmd.assembly_bom_renumber": "重新编号项目",
"cmd.body_rename": "重命名实体",
"cmd.browser_collapse_all": "全部折叠",
"cmd.browser_expand_all": "全部展开",
@@ -907,6 +911,36 @@
"cmd.document_metadata_set": "更改设计属性",
"cmd.document_revision": "设计版本号",
"cmd.document_units": "更改设计单位",
"cmd.drawing_balloon_add": "添加零件序号",
"cmd.drawing_balloon_edit": "编辑零件序号",
"cmd.drawing_balloon_inspect": "检查零件序号",
"cmd.drawing_close": "关闭绘图",
"cmd.drawing_create": "创建绘图",
"cmd.drawing_delete": "删除绘图",
"cmd.drawing_dimension_add": "添加绘图尺寸",
"cmd.drawing_dimension_edit": "编辑绘图尺寸",
"cmd.drawing_dimension_inspect": "检查绘图尺寸",
"cmd.drawing_export": "导出图纸",
"cmd.drawing_inspect": "检查绘图",
"cmd.drawing_list": "列出绘图",
"cmd.drawing_open": "打开绘图",
"cmd.drawing_properties": "绘图属性",
"cmd.drawing_properties_remove": "删除绘图属性",
"cmd.drawing_properties_set": "更改绘图属性",
"cmd.drawing_revision_add": "添加版本",
"cmd.drawing_revision_delete": "删除版本",
"cmd.drawing_revision_edit": "编辑版本",
"cmd.drawing_scene": "绘制图纸",
"cmd.drawing_set": "绘图设置",
"cmd.drawing_sheet_add": "添加图纸",
"cmd.drawing_sheet_delete": "删除图纸",
"cmd.drawing_sheet_reorder": "重新排列图纸",
"cmd.drawing_sheet_set": "图纸设置",
"cmd.drawing_view_copy_to_sheet": "将视图复制到图纸",
"cmd.drawing_view_edit": "编辑绘图视图",
"cmd.drawing_view_inspect": "检查绘图视图",
"cmd.drawing_view_move_to_sheet": "将视图移至图纸",
"cmd.drawing_view_snapshot": "绘图视图快照",
"cmd.edit_checkpoint": "检查点",
"cmd.edit_repeat": "重复上一个命令",
"cmd.edit_restore_checkpoint": "恢复检查点",
@@ -991,6 +1025,7 @@
"cmd.motion_trace_edit": "编辑运动轨迹",
"cmd.motion_trace_keep": "保留运动轨迹",
"cmd.occurrence_align": "对齐实例",
"cmd.occurrence_bom_type": "物料清单类型",
"cmd.occurrence_copy": "粘贴(实例)",
"cmd.occurrence_drag": "拖动实例",
"cmd.occurrence_ground": "固定",
@@ -1101,6 +1136,16 @@
"cmd.sheet_refold": "重新折弯",
"cmd.sheet_rules": "列出钣金规则",
"cmd.sheet_unfold": "展开",
"cmd.sketch.construction_line": "构造直线",
"cmd.sketch.construction_line.angle": "指定角度构造直线",
"cmd.sketch.construction_line.bisector": "角平分线",
"cmd.sketch.construction_line.horizontal": "水平构造直线",
"cmd.sketch.construction_line.parallel": "平行构造直线",
"cmd.sketch.construction_line.perpendicular": "垂直构造直线",
"cmd.sketch.construction_line.tangent_at": "曲线上点处的切线",
"cmd.sketch.construction_line.tangent_external": "过外部点的切线",
"cmd.sketch.construction_line.tangent_two": "公切线",
"cmd.sketch.construction_line.vertical": "竖直构造直线",
"cmd.sketch_arc3d": "三维圆弧",
"cmd.sketch_arc_center_point": "中心点圆弧",
"cmd.sketch_arc_tangent": "相切圆弧",
@@ -1389,6 +1434,16 @@
"help.occurrence.move": "仅沿关节允许的自由度移动装配零部件。选中零部件的面后,拖动可用的箭头或圆弧。",
"help.parameters.change": "打开驱动设计尺寸的命名数值和表达式表。用于在一处修改尺寸,让所有引用它的特征随之更新。",
"help.pointcloud.insert": "将 PLY、XYZ 或 PTS 扫描作为点云插入到模型旁。根据测量数据建模时,可将其用作参考。",
"help.sketch.construction_line": "创建经过两点的无限构造直线,用于辅助绘制草图而不分割轮廓。",
"help.sketch.construction_line.angle": "创建与草图X轴成指定角度的无限构造直线。选择一点后输入角度或选择方向。",
"help.sketch.construction_line.bisector": "选择两条相交的草图直线,再选择所需的角平分线。结果随原直线的编辑而变化。",
"help.sketch.construction_line.horizontal": "创建经过指定点的无限水平构造直线。后续编辑时保持水平约束。",
"help.sketch.construction_line.parallel": "选择草图直线,然后放置与其平行的无限构造直线。右键单击可更换参照。",
"help.sketch.construction_line.perpendicular": "选择草图直线,然后放置与其垂直的无限构造直线。右键单击可更换参照。",
"help.sketch.construction_line.tangent_at": "在圆或圆弧上的点处,或开放样条曲线、圆锥曲线的端点处创建切线。先选曲线,再选接点。",
"help.sketch.construction_line.tangent_external": "依次选择圆或圆弧、外部点和所需切线。预览仅显示接点位于已绘圆弧上的解。",
"help.sketch.construction_line.tangent_two": "选择两个圆或圆弧,再从预览中选择公切线。接点必须位于已绘曲线上。",
"help.sketch.construction_line.vertical": "创建经过指定点的无限竖直构造直线。后续编辑时保持竖直约束。",
"help.sketch.equation_curve": "在一个范围内按公式绘制曲线:x(t) 和 y(t),或 y = f(x)。公式可以使用参数,曲线随参数变化。适用于正弦波、螺旋线或齿轮的渐开线。",
"help.solid.align": "移动所选实体,使其上的点、面或平面与别处的点、面或平面对齐。用于把一个零件贴靠到另一个零件上,而无需测量距离。",
"help.solid.chamfer": "用指定的距离在所选边上切出一个平直的斜面。用于去除锐边,或使销钉、螺钉更容易插入。",
@@ -1848,6 +1903,7 @@
"prefs.dialogs_left_column": "左侧栏",
"prefs.dialogs_note": "命令对话框的打开位置:停靠在视图边缘,或在左侧栏中替代浏览器和历史;关闭对话框后,浏览器和历史恢复原样。",
"prefs.display": "显示",
"prefs.drawings": "绘图",
"prefs.edges": "边缘与着色",
"prefs.extend": "扩展",
"prefs.extra_navigation": "在空白处按住Ctrl并用鼠标左键拖动可旋转;按住空格键可平移。",
@@ -1906,6 +1962,9 @@
"prefs.max_file_size_step": "STEP 和导入文件",
"prefs.max_file_size_web": "网页版可打开最大 512 MB 的 STEP 和导入文件,以及最大 256 MB 的设计:浏览器标签页无法容纳更大的文件。桌面版可提高这些上限。",
"prefs.megabytes": "MB",
"prefs.menu_grid": "大图标",
"prefs.menu_list": "列表",
"prefs.menus": "菜单",
"prefs.minutes": "分钟",
"prefs.minutes_suffix": " min",
"prefs.mouse": "鼠标与触控板",
@@ -1925,6 +1984,8 @@
"prefs.origin_plane_names": "原点平面名称",
"prefs.origin_plane_names_note": "浏览器、对话框和列表中显示的名称。{top} 即 XY,{front} 即 XZ,{right} 即 YZ(Z 轴朝上)。命令、脚本和已保存的设计仍使用 XY、XZ 和 YZ。",
"prefs.overall_speed": "整体速度",
"prefs.persistent_ribbon_pressed": "突出显示已启用的功能区命令",
"prefs.persistent_ribbon_pressed_help": "在效果启用时突出显示相应的功能区命令。关闭此选项可保留原来的中性外观和命令帮助。",
"prefs.perspective_fov": "视场角",
"prefs.placement": "放置",
"prefs.prefer_free_sketch_points": "草图点重合时优先选择可移动的点",
@@ -1974,11 +2035,16 @@
"prefs.sketch_align_points_note": "绘制时,点可同时与一个草图点水平对齐、与另一个草图点竖直对齐,并显示虚线参考线;单击后保留两个对齐约束。关闭:仅与上一点对齐,每次一个方向。",
"prefs.sketch_conflict_colour": "以冲突颜色显示冲突的几何图形",
"prefs.sketch_conflict_colour_note": "草图约束冲突时,不仅失败约束的符号或尺寸,该约束所约束的曲线和点也以冲突颜色绘制。关闭:它们保持平常的颜色。",
"prefs.sketch_construction_lines": "扩展构造直线工具",
"prefs.sketch_exit_view": "草图结束时的视图",
"prefs.sketch_exit_view.keep": "保持当前视图",
"prefs.sketch_exit_view.previous": "返回之前的视图",
"prefs.sketch_exit_view.unless_rotated": "未旋转时返回",
"prefs.sketch_exit_view_note": "“完成草图”、取消或连按两次 Esc 后视图的去向。",
"prefs.sketch_open_look_at": "打开草图时转向正对草图",
"prefs.sketch_open_look_at_note": "关闭:创建或编辑草图时视图保持不变。需要时用“朝向”正对草图。",
"prefs.sketch_recent_snap": "自动吸附到最近的圆心和中点",
"prefs.sketch_recent_snap_note": "绘图时,将光标吸附到最近两个圆心或直线边中点的辅助线相交处。关闭:辅助线仅作显示,光标不会移动。",
"prefs.sketch_selection": "草图与选择",
"prefs.sketch_selection_heading": "草图和选择",
"prefs.sketch_selection_note": "草图如何捕捉,以及单击如何选择。",
@@ -2052,6 +2118,10 @@
"properties.title": "属性:{name}",
"recovery.days_ago": "{count} 天前",
"recovery.detail": "{file} · {features} 个特征 · 自动保存于 {when}",
"recovery.discard_all": "全部放弃",
"recovery.discard_all_detail": "此操作无法撤消。",
"recovery.discard_all_title": "放弃 {count} 个自动保存?",
"recovery.discard_all_title_one": "放弃 1 个自动保存?",
"recovery.hours_ago": "{count} 小时前",
"recovery.just_now": "刚刚",
"recovery.min_ago": "{count} 分钟前",
@@ -3971,6 +4041,15 @@
"ui.constant": "恒定",
"ui.constraints_conflict": "约束冲突",
"ui.construction": "构造",
"ui.construction.angle_hint": "构造直线:单击一点,然后输入角度或选择方向",
"ui.construction.bisector_hint": "角平分线:选择两条相交直线,再选择所需解",
"ui.construction.common_hint": "公切线:选择两个圆/圆弧,再选择所需解",
"ui.construction.contact_hint": "切线:先选圆/圆弧或开放样条曲线/圆锥曲线,再选接点(自由曲线仅支持端点)",
"ui.construction.external_hint": "切线:依次选择圆或圆弧、外部点和所需解",
"ui.construction.free_hint": "构造直线:单击两点;右键单击重新开始",
"ui.construction.point_hint": "构造直线:单击要经过的点",
"ui.construction.reference_hint": "构造直线:先选直线,再选一点;右键单击更换参照",
"ui.construction.ribbon_label": "辅助线",
"ui.context_menu": "上下文菜单",
"ui.continuity_g0": "G0 折痕",
"ui.continuity_g1": "G1 相切",
@@ -4095,6 +4174,7 @@
"ui.fine": "精细",
"ui.finest": "最精细",
"ui.finish_sketch": "完成草图",
"ui.first_angle": "第一角投影",
"ui.fit": "适合",
"ui.fix_unfix": "固定/取消固定",
"ui.flat": "平面",
@@ -4379,6 +4459,7 @@
"ui.profiles": "轮廓",
"ui.project": "投影",
"ui.project_face_edges_sketch": "将面的边投影到新草图",
"ui.projection_of_new_drawings": "新绘图的投影法",
"ui.properties": "属性",
"ui.properties.copy_matrix": "复制矩阵",
"ui.properties.first_moments": "一阶矩",
@@ -4437,6 +4518,7 @@
"ui.revolve": "旋转",
"ui.ribbon_exit": "退出",
"ui.ribbon_labels": "显示功能区图标下的文字",
"ui.ribbon_menus_skip_pinned": "下拉菜单中不再列出已固定的命令",
"ui.ribbon_pin_footer": "固定的命令显示在功能区中。将指针悬停在行上可固定或取消固定。",
"ui.ribbon_workspace": "工作区",
"ui.right": "右视",
@@ -4553,6 +4635,7 @@
"ui.text": "文本",
"ui.theme": "主题",
"ui.thickness": "厚度",
"ui.third_angle": "第三角投影",
"ui.thread": "螺纹",
"ui.tie_ends": "约束",
"ui.tie_ends_tip": "约束全部未约束端点",
-10
View File
@@ -1,10 +0,0 @@
| File | Author | Source | Licence |
|---|---|---|---|
| assets/branding/logo/solidcraft-mark.svg | SolidCraft contributors | static SolidCraft mark: the five faces and gradients of assets/icons/app/macos/source/SolidCraft.icon/Assets/03-solid-blue-cutout.svg (the final frame of assets/styles/web/loading-logo.svg), cropped to the mark's bounds; original artwork | MIT OR Apache-2.0 |
| assets/branding/logo/solidcraft-mark-mono-black.svg | SolidCraft contributors | one-colour (black) version of assets/branding/logo/solidcraft-mark.svg, same paths; original artwork | MIT OR Apache-2.0 |
| assets/branding/logo/solidcraft-mark-mono-white.svg | SolidCraft contributors | one-colour (white) version of assets/branding/logo/solidcraft-mark.svg, same paths; original artwork | MIT OR Apache-2.0 |
| assets/branding/logo/solidcraft-mark-512.png | SolidCraft contributors | transparent 512 px render of assets/branding/logo/solidcraft-mark.svg (cairosvg); original artwork | MIT OR Apache-2.0 |
| assets/branding/logo/solidcraft-mark-1024.png | SolidCraft contributors | transparent 1024 px render of assets/branding/logo/solidcraft-mark.svg (cairosvg); original artwork | MIT OR Apache-2.0 |
| assets/branding/logo/solidcraft-mark-2048.png | SolidCraft contributors | transparent 2048 px render of assets/branding/logo/solidcraft-mark.svg (cairosvg); original artwork | MIT OR Apache-2.0 |
| assets/branding/logo/solidcraft-wordmark.svg | SolidCraft contributors | the name SolidCraft set like the loading logo's wordmark (bold, +0.02 em tracking, #15499e) in IBM Plex Sans Bold from assets/fonts/ibm-plex-sans (SIL OFL 1.1, IBM Corp.), outlined to paths; no font file is embedded | MIT OR Apache-2.0 |
| assets/branding/logo/solidcraft-lockup-horizontal.svg | SolidCraft contributors | assets/branding/logo/solidcraft-mark.svg beside assets/branding/logo/solidcraft-wordmark.svg, in the proportions of assets/branding/web/source/og.png; original artwork | MIT OR Apache-2.0 |
@@ -0,0 +1,22 @@
| assets/icons/ui/design/svg/model/drawing_base_view.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/drawing_projected_view.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/drawing_section_view.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/drawing_detail_view.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/drawing_align_views.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/drawing_image.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/drawing_dimension.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/drawing_hole_callout.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/drawing_leader.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/drawing_datum.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/drawing_centre_mark.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/drawing_align_annotations.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/drawing_space_annotations.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/drawing_parts_list.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/drawing_balloon.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/drawing_edit_table.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/drawing_revision_table.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/drawing_update.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/drawing_check.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/drawing_revision.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/drawing_print.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/drawing_resources.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
+96 -9
View File
@@ -28,6 +28,18 @@ pub fn mat_mul(a: &Mat, b: &Mat) -> Mat {
r
}
/// How much `m` scales a volume: the size of the determinant of its linear part (1 for a rigid
/// placement).
pub fn mat_volume_scale(m: &Mat) -> f64 {
let c = |i: usize| m.get(i).map_or(Vec3::ZERO, |col| Vec3::new(col[0], col[1], col[2]));
c(0).dot(c(1).cross(c(2))).abs()
}
/// Why an assembly too large to walk whole is refused.
pub(crate) fn too_many_placements() -> crate::DocError {
crate::DocError::Invalid(format!("the assembly is deeper than {MAX_PLACEMENT_DEPTH} levels or has more than {MAX_PLACEMENTS} placements"))
}
pub fn apply_point(m: &Mat, p: Vec3) -> Vec3 {
Vec3::new(
m[0][0] * p.x + m[1][0] * p.y + m[2][0] * p.z + m[3][0],
@@ -44,6 +56,11 @@ pub fn apply_vector(m: &Mat, v: Vec3) -> Vec3 {
)
}
/// `p` carried by `m`: `None` when `m` flattens it.
pub fn map_plane(m: &Mat, p: &Plane) -> Option<Plane> {
Plane::new(apply_point(m, p.origin), apply_vector(m, p.x), apply_vector(m, p.y))
}
pub fn is_identity(m: &Mat) -> bool {
m.iter().flatten().zip(IDENTITY.iter().flatten()).all(|(a, b)| (a - b).abs() < 1e-12)
}
@@ -118,6 +135,10 @@ pub struct Occurrence {
/// Grounded occurrences don't move.
#[serde(default)]
pub grounded: bool,
/// How this occurrence counts in the bill of materials, in place of its component's type
/// (`None`: as its component).
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bom_type: Option<BomType>,
}
fn identity() -> Mat {
@@ -126,7 +147,8 @@ fn identity() -> Mat {
/// How a component counts in the bill of materials of an assembly it is placed in. It is a part
/// property (the `bom_type` key of the component's [`Metadata`](crate::Metadata)); a component
/// without one is [`BomType::Normal`].
/// without one is [`BomType::Normal`]. One occurrence can count as another type
/// ([`Occurrence::bom_type`]).
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum BomType {
@@ -170,21 +192,16 @@ impl BomType {
pub const MAX_PLACEMENT_DEPTH: usize = 64;
pub const MAX_PLACEMENTS: usize = 100_000;
fn map_plane(m: &Mat, p: &Plane) -> Plane {
let (o, x, y) = (apply_point(m, p.origin), apply_vector(m, p.x), apply_vector(m, p.y));
Plane::new(o, x, y).unwrap_or(*p)
}
fn map_plane_ref(m: &Mat, p: &mut PlaneRef) {
match p {
PlaneRef::Custom { plane } => *plane = map_plane(m, plane),
PlaneRef::Custom { plane } => *plane = map_plane(m, plane).unwrap_or(*plane),
PlaneRef::Placed { origin, x_dir, y_dir } => {
map_point_expr(m, origin);
*x_dir = apply_vector(m, *x_dir);
*y_dir = apply_vector(m, *y_dir);
}
PlaneRef::Face { plane, at, .. } => {
*plane = map_plane(m, plane);
*plane = map_plane(m, plane).unwrap_or(*plane);
*at = apply_point(m, *at);
}
PlaneRef::Offset { base, .. } | PlaneRef::Flipped { base, .. } => map_plane_ref(m, base),
@@ -302,6 +319,22 @@ impl Document {
self.occurrences.iter().find(|o| o.component == component)
}
/// The bill of materials type each occurrence counts as, in the order of `occurrences`: its
/// own ([`Occurrence::bom_type`]), else its component's. Components are looked up once.
pub fn occurrence_bom_types(&self) -> Vec<BomType> {
let types: std::collections::HashMap<u64, BomType> =
self.components.iter().map(|c| (c.id, c.metadata.bom_type())).filter(|(_, t)| *t != BomType::Normal).collect();
self.occurrences.iter().map(|o| o.bom_type.or_else(|| types.get(&o.component).copied()).unwrap_or_default()).collect()
}
/// The occurrences that count as reference ([`Document::occurrence_bom_types`]). A body placed
/// through any of them is a reference part: the bill of materials counts nothing inside a
/// reference, and a drawing draws all of it as reference.
pub fn reference_occurrences(&self) -> std::collections::HashSet<u64> {
let types = self.occurrences.iter().zip(self.occurrence_bom_types());
types.filter(|(_, bom_type)| *bom_type == BomType::Reference).map(|(o, _)| o.id).collect()
}
/// World transform of a component's frame (through its first occurrence and its parents').
pub fn component_transform(&self, component: u64) -> Mat {
transform_through(component, |c| self.occurrence_of(c))
@@ -352,6 +385,45 @@ impl Document {
out
}
/// Whether [`Document::placements`] reaches every placement. Its walk stops at
/// [`MAX_PLACEMENTS`], and a branch past [`MAX_PLACEMENT_DEPTH`] levels, so a placement it
/// holds may have occurrences it never walked; the walk is whole when none does.
pub fn placements_complete(&self) -> bool {
let mut children = std::collections::HashMap::<u64, usize>::new();
for o in &self.occurrences {
*children.entry(o.parent).or_default() += 1;
}
let walk = self.placements();
let reached = walk.iter().fold(0usize, |n, (c, _, _)| n.saturating_add(children.get(c).copied().unwrap_or(0)));
walk.len() == reached.saturating_add(1)
}
/// The placement `path` of `component` at `world`, and every placement below it: (component,
/// occurrence path ids, world transform), the start first. Unlike [`Self::placements`], which
/// stops a branch where the display does, a larger assembly is refused, never walked in part:
/// for totals that must cover all of it (physical properties).
pub fn placements_below(&self, component: u64, path: &[u64], world: Mat) -> crate::Result<Vec<(u64, Vec<u64>, Mat)>> {
let mut children: std::collections::HashMap<u64, Vec<&Occurrence>> = std::collections::HashMap::new();
for o in &self.occurrences {
children.entry(o.parent).or_default().push(o);
}
let mut out = vec![(component, path.to_vec(), world)];
let mut stack = vec![(component, path.to_vec(), world)];
while let Some((parent, path, world)) = stack.pop() {
for o in children.get(&parent).into_iter().flatten() {
if path.len() >= MAX_PLACEMENT_DEPTH || out.len() > MAX_PLACEMENTS {
return Err(too_many_placements());
}
let mut child = path.clone();
child.push(o.id);
let w = mat_mul(&world, &o.transform);
out.push((o.component, child.clone(), w));
stack.push((o.component, child, w));
}
}
Ok(out)
}
/// Every body as the world shows it: its world name ("Body1", or "Body1 (Occ:2)" for a
/// further instance), its component, the occurrence path, and the transform from the frame
/// its geometry is in to the world.
@@ -418,6 +490,21 @@ impl Document {
false
}
/// The virtual components that hold something, by id: a feature (a sketch, a body's, a moved
/// body's) or a placed component. A virtual component holds nothing ([`crate::metadata::VIRTUAL`]):
/// the engine refuses any change that puts something in one.
pub fn virtual_holding(&self) -> Vec<u64> {
let virtuals: std::collections::HashSet<u64> = self.components.iter().filter(|c| c.metadata.is_virtual()).map(|c| c.id).collect();
if virtuals.is_empty() {
return Vec::new();
}
let mut held: Vec<u64> =
self.features.iter().map(|f| f.component).chain(self.occurrences.iter().map(|o| o.parent)).filter(|id| virtuals.contains(id)).collect();
held.sort_unstable();
held.dedup();
held
}
/// Would putting a placement of `component` into `parent` put it inside itself: is `parent`
/// the component, or inside it, created in it or placed in it at any depth? Placements can sit
/// apart from where their component was created ([`Self::component_within`] follows only
@@ -457,7 +544,7 @@ impl Document {
self.next_id = id.checked_add(1).ok_or_else(|| DocError::Invalid("too many items in the design".into()))?;
let cname = self.components.iter().find(|c| c.id == component).map(|c| c.name.clone()).unwrap_or_default();
let k = self.occurrences.iter().filter(|o| o.component == component).count() + 1;
self.occurrences.push(crate::Occurrence { id, component, parent, name: format!("{cname}:{k}"), transform, grounded: false });
self.occurrences.push(crate::Occurrence { id, component, parent, name: format!("{cname}:{k}"), transform, grounded: false, bom_type: None });
Ok(id)
}
}
+924
View File
@@ -0,0 +1,924 @@
//! The bill of materials of an assembly (the design, or one component's definition): the rows a
//! bill of materials view lists, typed. `assembly.bom`'s JSON and CSV and the Bill of Materials
//! window present these rows; parts lists, item numbers and balloons are to read them too.
//!
//! [`list`] walks the placements below the assembly once. One rule (`classify`) decides for each
//! placement whether it is counted in a row, how what it holds is walked and what its row stands
//! for when weighed, from the bill of materials type it counts as (its occurrence's, else its
//! component's), the view and the component's shape. One budget of [`MAX_PLACEMENTS`] placements
//! and [`MAX_PLACEMENT_DEPTH`] levels covers the whole list, folded parts' contents included: a
//! larger assembly is refused, never listed in part.
//!
//! A row is named by its `RowKey`: the rows it is listed under and its lowest member (a
//! component and the type it counts as there), however its part number or contents read. Its
//! mass is what one of its parts weighs as the row stands for it (`Holds`), so the rows of any
//! list add up to the assembly once. The keys, what rows stand for, their members and `row_of`
//! stay inside this crate until balloons read them; item numbers are saved by key ([`numbers`]). Placements are rigid, so
//! each definition is weighed once however often it is placed, and kept in the [`Tree`] for every list made from it. The
//! assembly's own mass is weighed the same way, never added up from rows: a row whose definitions
//! weigh differently has none.
//!
//! Materials are bodies' (`material.assign`): a row names the materials of the bodies it stands for,
//! and a row that stands for an assembly names one only when everything in it shares it. A static
//! material typed in for a component ([`metadata::MATERIAL`](crate::metadata::MATERIAL)) is what
//! its rows say instead, in every view and at every level ([`Row::statics`]), and what it stands
//! for in the one material an assembly around it shares: the bill of materials says one thing
//! about the part everywhere. It only names: mass still comes from the bodies.
//!
//! A row's [`Quantity`] adds up what each of its placements means ([`quantity`]): each definition's
//! quantity is evaluated once for every list made from the [`Tree`].
use std::cmp::Ordering;
use std::collections::{BTreeMap, HashMap};
use serde::{Deserialize, Serialize};
use crate::{BomType, Component, DocError, Document, MAX_PLACEMENT_DEPTH, MAX_PLACEMENTS, ModelBody, ModelState, Result};
mod numbers;
mod quantity;
pub use numbers::{ItemNumber, ItemNumbers, MAX_ITEM, Numbering, Order, number, record};
pub use quantity::{Amount, Quantity, Uncounted, amount};
/// A bill of materials view, saved by the word commands use for it.
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum View {
/// Parts only: every part at any depth, counted through its subassemblies.
#[default]
#[serde(rename = "flat")]
PartsOnly,
/// Structured, first level: the assembly's direct contents, a subassembly as one row.
#[serde(rename = "top")]
FirstLevel,
/// Structured, all levels: the assembly's direct contents, each subassembly a row with its own
/// contents listed under it, to any depth (1, 1.1, 1.1.1).
#[serde(rename = "all")]
AllLevels,
}
impl View {
/// Every view, in the order commands and documentation list them.
pub const ALL: [View; 3] = [View::PartsOnly, View::FirstLevel, View::AllLevels];
/// The word commands use (`assembly.bom`'s `levels`).
pub fn as_str(self) -> &'static str {
match self {
View::PartsOnly => "flat",
View::FirstLevel => "top",
View::AllLevels => "all",
}
}
/// The view a word names, if it names one.
pub fn parse(word: &str) -> Option<View> {
View::ALL.into_iter().find(|v| v.as_str() == word)
}
}
/// What one row gathers.
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum Group {
/// The definitions that share a part number; a definition without one is a row of its own.
#[default]
PartNumber,
/// One definition.
Definition,
}
impl Group {
/// Every grouping, in the order commands and documentation list them.
pub const ALL: [Group; 2] = [Group::PartNumber, Group::Definition];
/// The word commands use (`assembly.bom`'s `group_by`).
pub fn as_str(self) -> &'static str {
match self {
Group::PartNumber => "part_number",
Group::Definition => "definition",
}
}
/// The grouping a word names, if it names one.
pub fn parse(word: &str) -> Option<Group> {
Group::ALL.into_iter().find(|g| g.as_str() == word)
}
}
/// What a bill of materials lists. The default is the design's parts only, by part number.
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
pub struct Request {
/// The assembly listed: a component, or 0 for the design.
pub source: u64,
pub view: View,
pub group: Group,
/// A normal part with a part number is one row, and what it holds is listed under it as its
/// children (as parts only lists them) instead of as rows of their own.
pub fold: bool,
/// Weigh each row and the assembly: every part is measured, so it is asked for.
pub mass: bool,
/// In all levels, what a purchased part holds is listed under it too (it is still one row,
/// weighed whole).
pub purchased_contents: bool,
}
/// A component as one placement counts: its id and the bill of materials type it counts as there.
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
pub struct Member {
pub component: u64,
pub bom_type: BomType,
}
/// A row's identity: the key members of the rows it is listed under (outermost first; none at the
/// top), and its own lowest member. It doesn't change with the row's part number or contents, so
/// item numbers, overrides and balloons can follow the row through those edits.
#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
pub(crate) struct RowKey {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub(crate) parents: Vec<Member>,
pub(crate) member: Member,
}
/// What one of a row's parts stands for when it is weighed, so that the rows of any list add up
/// to the assembly once.
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub(crate) enum Holds {
/// Its own bodies and everything placed inside it.
All,
/// Its own bodies alone: what it holds is listed beside it.
Own,
/// Everything but its purchased parts, which are listed beside it (an inseparable part in
/// parts only).
AllButPurchased,
}
/// What one of a row's parts weighs, or the assembly.
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub enum Mass {
/// Not asked for ([`Request::mass`]).
#[default]
NotAsked,
Grams(f64),
Unknown(Unknown),
}
/// Why a mass isn't known.
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum Unknown {
/// Nothing in it has a body.
NothingToWeigh,
/// A body in it can't be measured, or measures inside out (a negative volume).
Unmeasurable,
/// The definitions the row gathers (one part number) weigh differently.
Differs,
}
/// A value of a row typed in by hand for its component, in place of the one worked out.
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum Static {
/// [`Row::materials`], from [`metadata::MATERIAL`](crate::metadata::MATERIAL).
Material,
}
impl Static {
/// The part property it is kept under, and its name in `assembly.bom`'s rows.
pub fn key(self) -> &'static str {
match self {
Static::Material => crate::metadata::MATERIAL,
}
}
}
/// One row of a bill of materials view.
#[derive(Clone, Debug, PartialEq)]
pub struct Row {
pub(crate) key: RowKey,
/// Its item number among the rows it is listed with: the one saved for it, else its position
/// from 1 (the view not numbered yet) or the next number after the saved ones ([`numbers`]).
pub item: u32,
/// Its item number isn't saved yet.
pub provisional: bool,
/// Its item number is locked: a renumber keeps it.
pub locked: bool,
/// Another row listed with it has the same item number.
pub duplicate: bool,
pub bom_type: BomType,
/// What one of its parts stands for when weighed.
pub(crate) stands_for: Holds,
/// The definitions it gathers, by id (ascending), and their names, each once.
pub components: Vec<u64>,
pub names: Vec<String>,
/// Its part properties: its first definition's part number (the one it gathers by), and the
/// first description and revision its definitions give.
pub part_number: String,
pub description: String,
pub revision: String,
/// The definitions' free properties; where several give one name, the first's.
pub properties: BTreeMap<String, String>,
/// The physical materials of what one of its parts stands for, each once, in body order: a
/// part's own bodies'. A row that stands for an assembly (something placed inside it is weighed
/// with it) shows the one material all of that shares, else none. A static material replaces
/// them.
pub materials: Vec<String>,
/// Its values typed in by hand ([`Static`]). Where its definitions give different ones, the
/// first's that gives one wins, as with its description.
pub statics: Vec<Static>,
/// How many are listed: in all, and in one of the row it is listed under (the assembly at the
/// top).
pub count: u64,
pub each: u64,
/// What its placements add up to, when its definitions have quantities.
pub quantity: Quantity,
/// The placements it counts, by occurrence path from the assembly listed, in path order;
/// empty unless the list was made with them (`list_with`).
pub(crate) members: Vec<Vec<u64>>,
pub mass: Mass,
/// What one of it holds, listed under it: a folded part's contents as parts only lists them,
/// or in all levels a subassembly's own rows.
pub children: Vec<Row>,
}
/// The assembly as a whole.
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct Total {
/// Every placement listed, children included.
pub occurrences: u64,
/// Its own bodies and all it holds but references, weighed from the design (with the rows'
/// measurements), not added up from rows.
pub mass: Mass,
}
/// The rows of one bill of materials view.
#[derive(Clone, Debug, Default, PartialEq)]
pub struct Bom {
/// The assembly listed: a component, or 0 for the design.
pub source: u64,
/// By part number, rows without one after them by name, one part's rows by type (`list_order`);
/// each row's children likewise. In a numbered view, by item number.
pub rows: Vec<Row>,
pub total: Total,
/// Its item numbers are saved: it has been numbered ([`ItemNumbers`]).
pub numbered: bool,
/// Each member path, and where its row is (its position among the rows, then among each one's
/// children): `row_of` reads it. Empty unless the list was made with its members.
index: HashMap<Vec<u64>, Vec<usize>>,
}
/// Why a placement is counted in no row of a list.
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[cfg_attr(not(test), expect(dead_code, reason = "item numbers and balloons follow rows by them (#3874)"))]
pub(crate) enum Unlisted {
/// No placement below the assembly listed has that path.
NotFound,
/// It counts as a reference, or is inside one: no bill of materials counts it.
Reference,
/// It has no row of its own and isn't inside one: a phantom without bodies, or in parts only
/// a subassembly listed through its parts (the assembly listed, an empty path, is none either).
NoRow,
}
impl Bom {
/// Every row, each followed by the rows listed under it (1, 1.1, 1.2, 2…), with its item
/// numbers from the top (`[1, 2]` reads 1.2).
pub fn rows_deep(&self) -> Vec<(Vec<u32>, &Row)> {
let mut out = Vec::new();
let mut stack: Vec<(Vec<u32>, &Row)> = self.rows.iter().rev().map(|r| (vec![r.item], r)).collect();
while let Some((item, row)) = stack.pop() {
for child in row.children.iter().rev() {
let mut under = item.clone();
under.push(child.item);
stack.push((under, child));
}
out.push((item, row));
}
out
}
/// The row a placement is counted in, by its occurrence path from the assembly listed: the row
/// that lists it, else the row of the part it is inside (a nut inside a purchased bolt is
/// counted in the bolt's). `tree` is the one the list was made from, with its members
/// (`list_with`).
#[cfg_attr(not(test), expect(dead_code, reason = "item numbers and balloons follow rows by them (#3874)"))]
pub(crate) fn row_of(&self, tree: &Tree, path: &[u64]) -> std::result::Result<&Row, Unlisted> {
if path.len() > MAX_PLACEMENT_DEPTH {
return Err(Unlisted::NotFound);
}
let mut component = self.source;
for id in path {
let placed = tree.contents(component).iter().find(|p| p.occurrence == *id).ok_or(Unlisted::NotFound)?;
if placed.member.bom_type == BomType::Reference {
return Err(Unlisted::Reference);
}
component = placed.member.component;
}
// Each placement is in one row or none, so the longest member path it starts with is its row's.
let at = (1..=path.len()).rev().find_map(|n| path.get(..n).and_then(|start| self.index.get(start)));
at.and_then(|at| self.row_at(at)).ok_or(Unlisted::NoRow)
}
/// The row at `at`: its position among the rows, then among each one's children.
fn row_at(&self, at: &[usize]) -> Option<&Row> {
let (first, rest) = at.split_first()?;
let mut row = self.rows.get(*first)?;
for &i in rest {
row = row.children.get(i)?;
}
Some(row)
}
/// Where each member's row is, for `row_of`.
fn index_members(&mut self) {
let mut index = HashMap::new();
let mut stack: Vec<(Vec<usize>, &Row)> = self.rows.iter().enumerate().map(|(i, r)| (vec![i], r)).collect();
while let Some((at, row)) = stack.pop() {
for member in &row.members {
index.insert(member.clone(), at.clone());
}
for (i, child) in row.children.iter().enumerate() {
let mut under = at.clone();
under.push(i);
stack.push((under, child));
}
}
self.index = index;
}
}
/// Item numbers as one reads them: `[1, 2]` is "1.2".
pub fn item_text(item: &[u32]) -> String {
item.iter().map(u32::to_string).collect::<Vec<_>>().join(".")
}
/// The design's structure as bills of materials read it, looked up once, and what each
/// definition weighs, measured once for every list made from it. It reads one state of the
/// design: make another after a change.
pub struct Tree<'a> {
doc: &'a Document,
/// What each component places (by its id; 0 is the root), in occurrence order.
children: HashMap<u64, Vec<Placed>>,
components: HashMap<u64, &'a Component>,
/// Each component's own bodies, in body order; a component that owns none isn't here.
bodies: HashMap<u64, Vec<&'a ModelBody>>,
/// What one of each definition weighs, by what it stands for.
weighed: BTreeMap<(u64, Holds), Weighed>,
/// The materials of what one of each definition stands for, each once, in body order.
made_of: BTreeMap<(u64, Holds), Vec<String>>,
/// What one placement of each definition with a quantity counts: `None` when it doesn't
/// evaluate.
amounts: HashMap<u64, Option<Amount>>,
}
/// One occurrence: its id, and the component it places with the type it counts as there.
#[derive(Clone, Copy, Debug)]
struct Placed {
occurrence: u64,
member: Member,
}
/// What one of a component weighs: grams, and how many bodies that is (none: nothing to weigh).
/// `None` when a body in it can't be measured, or measures inside out.
type Weighed = Option<(f64, usize)>;
impl<'a> Tree<'a> {
/// The structure of `doc` with the bodies of `state`, its evaluated model.
pub fn new(doc: &'a Document, state: &'a ModelState) -> Tree<'a> {
let mut children: HashMap<u64, Vec<Placed>> = HashMap::new();
for (o, bom_type) in doc.occurrences.iter().zip(doc.occurrence_bom_types()) {
children.entry(o.parent).or_default().push(Placed { occurrence: o.id, member: Member { component: o.component, bom_type } });
}
let mut components: HashMap<u64, &Component> = HashMap::new();
for c in &doc.components {
components.entry(c.id).or_insert(c);
}
let mut bodies: HashMap<u64, Vec<&ModelBody>> = HashMap::new();
for (body, owner) in state.bodies.iter().zip(doc.model_body_components(state)) {
bodies.entry(owner).or_default().push(body);
}
let values = std::cell::OnceCell::new();
let amounts = components.values().filter_map(|c| Some((c.id, quantity::amount_in(doc, &values, c.metadata.bom_quantity()?).ok()))).collect();
Tree { doc, children, components, bodies, weighed: BTreeMap::new(), made_of: BTreeMap::new(), amounts }
}
/// What a component places.
fn contents(&self, id: u64) -> &[Placed] {
self.children.get(&id).map_or(&[], Vec::as_slice)
}
/// The components placed in `id` whose parts are part of what `id` stands for as `holds` says
/// (see `adds`), one for each placement, with the type each counts as there.
fn adding(&self, id: u64, holds: Holds) -> Vec<Member> {
self.contents(id).iter().filter(|p| adds(holds, p.member.bom_type)).map(|p| p.member).collect()
}
/// The static material typed in for a component, if any.
fn static_material(&self, id: u64) -> Option<&'a str> {
self.components.get(&id).and_then(|c| c.metadata.material())
}
fn own_bodies(&self, id: u64) -> &[&'a ModelBody] {
self.bodies.get(&id).map_or(&[], Vec::as_slice)
}
/// What a row of `member` gathers by: its part number when `group` asks for that and it has
/// one, else its definition. `None` for a damaged file's occurrence of a component that isn't
/// there, which has no row.
fn part(&self, member: Member, group: Group) -> Option<Part<'a>> {
let c: &'a Component = self.components.get(&member.component)?;
Some(match c.metadata.part_number() {
Some(pn) if group == Group::PartNumber => Part::Number(pn),
_ => Part::Definition(member.component),
})
}
/// The rows of one level: the placements `at` (positions in `entries`), gathered as `group`
/// says, listed under the rows `parents` names, `per` of them in all (1 for the assembly).
/// The rows under these are gathered as `under` says.
#[allow(clippy::too_many_arguments)]
fn level(&self, listing: &Listing, paths: &mut [Vec<u64>], at: &[usize], group: Group, under: Group, parents: &[Member], per: u64) -> Vec<Row> {
let mut grouped: BTreeMap<GroupKey<'a>, Vec<usize>> = BTreeMap::new();
for &i in at {
let Some(entry) = listing.entries.get(i) else { continue };
let Some(part) = self.part(entry.member, group) else { continue };
let kit = listing.kits.get(i).copied().unwrap_or_default();
grouped.entry(GroupKey { part, bom_type: entry.member.bom_type, kit }).or_default().push(i);
}
let mut rows: Vec<Row> = grouped.values().filter_map(|members| self.row(listing, paths, members, under, parents, per)).collect();
rows.sort_by(list_order);
for (item, row) in (1..).zip(&mut rows) {
row.item = item;
}
rows
}
/// Each entry's kit, as a number: what it holds as its row's children read it, to any depth.
/// Two entries have the same kit when what they hold is the same parts (by part number, else
/// definition), counted as the same types, each holding the same again all the way down. One
/// pass from the last entry back: an entry's children come after it, so theirs are known first.
fn kits(&self, entries: &[Entry], kids: &[Vec<usize>]) -> Vec<u32> {
let mut kit_ids: HashMap<Vec<u32>, u32> = HashMap::new();
let mut placed_ids: HashMap<(Option<Part<'a>>, BomType, u32), u32> = HashMap::new();
// Each entry as a child reads: its part, its type and its own kit.
let mut placed = vec![0u32; entries.len()];
let mut kits = vec![0u32; entries.len()];
for (i, entry) in entries.iter().enumerate().rev() {
let mut held: Vec<u32> = kids.get(i).into_iter().flatten().filter_map(|&k| placed.get(k).copied()).collect();
held.sort_unstable();
let next = kit_ids.len() as u32;
let kit = *kit_ids.entry(held).or_insert(next);
let next = placed_ids.len() as u32;
let key = (self.part(entry.member, Group::PartNumber), entry.member.bom_type, kit);
if let (Some(k), Some(p)) = (kits.get_mut(i), placed.get_mut(i)) {
*k = kit;
*p = *placed_ids.entry(key).or_insert(next);
}
}
kits
}
/// One row: the placements `members` (positions in `entries`) of one part, type and kit, with
/// the rows under it gathered as `under` says. Their `paths` (when the list keeps them) move into
/// the row: each placement is in one row.
#[allow(clippy::too_many_arguments)]
fn row(&self, listing: &Listing, paths: &mut [Vec<u64>], members: &[usize], under: Group, parents: &[Member], per: u64) -> Option<Row> {
let listed: Vec<&Entry> = members.iter().filter_map(|&i| listing.entries.get(i)).collect();
let first = listed.first()?;
let mut components: Vec<u64> = listed.iter().map(|e| e.member.component).collect();
components.sort_unstable();
components.dedup();
let member = Member { component: *components.first()?, bom_type: first.member.bom_type };
let count = listed.len() as u64;
let mut taken: Vec<Vec<u64>> = members.iter().filter_map(|&i| paths.get_mut(i).map(std::mem::take)).filter(|p| !p.is_empty()).collect();
taken.sort_unstable();
// What one of it holds is listed under it.
let inside: Vec<usize> = members.iter().flat_map(|&i| listing.kids.get(i).into_iter().flatten().copied()).collect();
let mut chain = parents.to_vec();
chain.push(member);
let mut row = Row {
key: RowKey { parents: parents.to_vec(), member },
item: 0,
provisional: true,
locked: false,
duplicate: false,
bom_type: member.bom_type,
stands_for: first.holds,
// Filled in by `name_materials`, which reads each definition once.
materials: Vec::new(),
statics: Vec::new(),
components,
names: Vec::new(),
part_number: String::new(),
description: String::new(),
revision: String::new(),
properties: BTreeMap::new(),
count,
// Rows with different kits are different rows, to any depth, so every part of the parent
// row holds as many.
each: count / per.max(1),
quantity: quantity::add_up(listed.iter().map(|e| self.amounts.get(&e.member.component))),
members: taken,
mass: Mass::NotAsked,
children: self.level(listing, paths, &inside, under, under, &chain, count),
};
for (i, c) in row.components.iter().filter_map(|id| self.components.get(id)).enumerate() {
let m = &c.metadata;
if i == 0 {
row.part_number = m.part_number().unwrap_or_default().to_string();
}
if !row.names.contains(&c.name) {
row.names.push(c.name.clone());
}
if row.description.is_empty() {
row.description = m.description().unwrap_or_default().to_string();
}
if row.revision.is_empty() {
row.revision = m.revision().unwrap_or_default().to_string();
}
for (k, v) in &c.properties {
row.properties.entry(k.clone()).or_insert_with(|| v.clone());
}
}
Some(row)
}
/// Each row's materials, and its children's (Cameron, 2026-10-23): a part lists its own bodies';
/// a row that stands for an assembly shows a material only when everything it stands for
/// shares it, so a frame of steel and aluminium parts reads blank and a bought bearing of steel
/// parts reads steel. A static material, the first its definitions give, replaces that.
fn name_materials(&mut self, rows: &mut [Row]) -> Result<()> {
for row in rows {
self.name_materials(&mut row.children)?;
let typed_in = row.components.iter().find_map(|&id| self.static_material(id));
if let Some(material) = typed_in {
row.materials = vec![material.to_string()];
row.statics.push(Static::Material);
continue;
}
let mut names: Vec<String> = Vec::new();
let mut assembly = false;
for &c in &row.components {
assembly |= row.stands_for != Holds::Own && !self.adding(c, row.stands_for).is_empty();
for name in self.made_of(c, row.stands_for, 0)? {
push_once(&mut names, name);
}
}
row.materials = if assembly && names.len() > 1 { Vec::new() } else { names };
}
Ok(())
}
/// The materials of what one of `id` stands for as `holds` says, each once, in body order: the
/// bodies `weigh` weighs. A static material stands for all of a part placed inside it, and for
/// a phantom's own bodies only (a phantom's row is its own bodies, so what it holds keeps its
/// own). Each definition is read once for each kind of row; `depth` bounds the walk below a
/// definition not read yet.
fn made_of(&mut self, id: u64, holds: Holds, depth: usize) -> Result<Vec<String>> {
if let Some(names) = self.made_of.get(&(id, holds)) {
return Ok(names.clone());
}
if depth > MAX_PLACEMENT_DEPTH {
return Err(too_big());
}
let mut names: Vec<String> = Vec::new();
match self.static_material(id) {
Some(material) if !self.own_bodies(id).is_empty() => push_once(&mut names, material.to_string()),
Some(_) => {}
None => {
for body in self.own_bodies(id) {
push_once(&mut names, self.doc.body_material(&body.name));
}
}
}
if holds != Holds::Own {
for child in self.adding(id, holds) {
match self.static_material(child.component) {
Some(material) if child.bom_type != BomType::Phantom => push_once(&mut names, material.to_string()),
_ => {
for name in self.made_of(child.component, holds, depth + 1)? {
push_once(&mut names, name);
}
}
}
}
}
self.made_of.insert((id, holds), names.clone());
Ok(names)
}
/// Each row's mass, and its children's.
fn weigh_rows(&mut self, rows: &mut [Row]) -> Result<()> {
for row in rows {
let weighed = row.components.iter().map(|&c| self.weigh(c, row.stands_for, 0)).collect::<Result<Vec<Weighed>>>()?;
row.mass = agree(&weighed);
self.weigh_rows(&mut row.children)?;
}
Ok(())
}
/// One of `id` as `holds` says: its own bodies, and of what is placed inside it everything that
/// adds to it (see `adds`). Where a part is placed doesn't change what it weighs, so each
/// definition is weighed once for each kind of row and each body measured once. `depth` bounds
/// the walk below a definition not weighed yet.
fn weigh(&mut self, id: u64, holds: Holds, depth: usize) -> Result<Weighed> {
if let Some(&weighed) = self.weighed.get(&(id, holds)) {
return Ok(weighed);
}
if depth > MAX_PLACEMENT_DEPTH {
return Err(too_big());
}
let mut total: Weighed = Some((0.0, 0));
if holds == Holds::Own {
for body in self.own_bodies(id) {
add(&mut total, self.measure(body));
}
} else {
add(&mut total, self.weigh(id, Holds::Own, depth)?);
for child in self.adding(id, holds) {
add(&mut total, self.weigh(child.component, holds, depth + 1)?);
}
}
let weighed = total.filter(|(grams, _)| grams.is_finite());
self.weighed.insert((id, holds), weighed);
Ok(weighed)
}
/// What one body weighs, in grams: its volume, measured once for the model
/// ([`ModelBody::volume`]), scaled by a body offset as the offset scales what is drawn (a
/// damaged file's scaled offset weighs what is drawn).
fn measure(&self, body: &ModelBody) -> Weighed {
let scale = self.doc.model_body_offset(body).map_or(1.0, crate::mat_volume_scale);
// A negative volume (a body inside out) is unknown, never a negative mass.
body.volume().map(|v| v * scale).filter(|v| *v >= 0.0).map(|v| (v * self.doc.density(&body.name) / 1000.0, 1))
}
}
/// The order a level lists its rows in until it is numbered: by part number; rows without one
/// after them, by name; one part's rows by type.
fn list_order(a: &Row, b: &Row) -> Ordering {
(a.part_number.is_empty(), &a.part_number, &a.names, &a.components, a.bom_type).cmp(&(
b.part_number.is_empty(),
&b.part_number,
&b.names,
&b.components,
b.bom_type,
))
}
/// What a row gathers by: a part number, borrowed from its definition, or the definition.
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
enum Part<'a> {
Number(&'a str),
Definition(u64),
}
/// How one row is told from another of its level: what it gathers by, the type its parts count
/// as, and its kit: what one of them holds as the row's children read it, to any depth (`Tree::kits`;
/// the same for all that hold nothing listed).
#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
struct GroupKey<'a> {
part: Part<'a>,
bom_type: BomType,
kit: u32,
}
/// The placements a list counts, what each folded or all-levels row holds, and each one's kit.
struct Listing {
entries: Vec<Entry>,
/// What each entry holds: the entries listed as its children.
kids: Vec<Vec<usize>>,
kits: Vec<u32>,
}
/// How a walk lists what it passes.
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
enum Walk {
/// What the view lists.
Listed,
/// Inside an inseparable part in parts only: just its purchased parts, which are listed
/// beside it, at any depth.
PurchasedOnly,
}
/// What a placed component is like, as far as listing it goes.
#[derive(Clone, Copy, Debug, Default)]
struct Shape {
/// It places components of its own.
contents: bool,
/// It has bodies of its own.
bodies: bool,
/// It is a part with a part number in a list that folds.
folded: bool,
/// What it holds is listed under it if it is purchased ([`Request::purchased_contents`], all
/// levels).
open_purchased: bool,
}
/// How one placement counts.
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
struct Step {
/// It is counted in a row here.
row: bool,
/// How what it holds is walked (`None`: not at all).
inside: Option<Walk>,
/// What it holds is listed as its row's children.
kit: bool,
/// What its row stands for when weighed.
holds: Holds,
}
/// How a placement counts in `view`: the one rule every list and every mass read. A reference
/// counts nowhere and nothing inside it does; a phantom's own bodies, when it has any, are a row of
/// their own (as a subassembly's are in parts only) and what it holds counts where it is placed; a purchased part is one row with nothing inside it listed (in all levels, its
/// contents under it when asked); an inseparable part is one row, and in parts only its purchased
/// parts are listed beside it; a normal part is a row in the structured views, in all levels with
/// what it holds under it, and in parts only a subassembly is listed through its parts unless it
/// has bodies of its own. A folded part is one row holding all it holds.
fn classify(view: View, walk: Walk, bom_type: BomType, shape: Shape) -> Step {
let nothing = Step { row: false, inside: None, kit: false, holds: Holds::All };
let row = |holds| Step { row: true, holds, ..nothing };
let contents = |walk| shape.contents.then_some(walk);
match (bom_type, walk) {
(BomType::Reference, _) => nothing,
(BomType::Phantom, Walk::Listed) => Step { row: shape.bodies, inside: Some(Walk::Listed), kit: false, holds: Holds::Own },
(BomType::Phantom, Walk::PurchasedOnly) => Step { inside: Some(walk), ..nothing },
(BomType::Purchased, Walk::Listed) if view == View::AllLevels && shape.open_purchased => {
Step { inside: contents(Walk::Listed), kit: true, ..row(Holds::All) }
}
(BomType::Purchased, _) => row(Holds::All),
(_, Walk::PurchasedOnly) => Step { inside: contents(Walk::PurchasedOnly), ..nothing },
(BomType::Inseparable, Walk::Listed) => match view {
View::PartsOnly => Step { inside: contents(Walk::PurchasedOnly), ..row(Holds::AllButPurchased) },
View::FirstLevel | View::AllLevels => row(Holds::All),
},
(BomType::Normal, Walk::Listed) if shape.folded => Step { inside: contents(Walk::Listed), kit: true, ..row(Holds::All) },
(BomType::Normal, Walk::Listed) => match view {
View::PartsOnly => Step { row: !shape.contents || shape.bodies, inside: contents(Walk::Listed), kit: false, holds: Holds::Own },
View::FirstLevel => row(Holds::All),
View::AllLevels => Step { inside: contents(Walk::Listed), kit: true, ..row(Holds::All) },
},
}
}
/// Whether a placement of `bom_type` inside a part adds to what the part's row stands for: a
/// reference adds nothing, and what the list shows beside the row (what `classify` lists inside
/// an inseparable part) isn't weighed with it.
fn adds(holds: Holds, bom_type: BomType) -> bool {
match holds {
Holds::Own => false,
Holds::All => bom_type != BomType::Reference,
Holds::AllButPurchased => bom_type != BomType::Reference && !classify(View::PartsOnly, Walk::PurchasedOnly, bom_type, Shape::default()).row,
}
}
/// One placement a list counts in a row.
struct Entry {
member: Member,
holds: Holds,
/// The folded placement (a position in the entries) whose children it is among.
kit: Option<usize>,
}
/// Every placement below `request.source` that `request` counts in a row, in one walk under one
/// budget, and with `members` each one's occurrence path (else an empty path each).
fn walk(tree: &Tree, request: &Request, members: bool) -> Result<(Vec<Entry>, Vec<Vec<u64>>)> {
struct Frame {
component: u64,
depth: usize,
/// Kept only with `members`.
path: Vec<u64>,
walk: Walk,
kit: Option<usize>,
}
let mut entries: Vec<Entry> = Vec::new();
let mut paths: Vec<Vec<u64>> = Vec::new();
let mut visited = 0usize;
let mut stack = vec![Frame { component: request.source, depth: 0, path: Vec::new(), walk: Walk::Listed, kit: None }];
while let Some(frame) = stack.pop() {
for placed in tree.contents(frame.component) {
visited += 1;
if frame.depth >= MAX_PLACEMENT_DEPTH || visited > MAX_PLACEMENTS {
return Err(too_big());
}
let component = placed.member.component;
// What a folded part holds is listed as parts only lists it, and isn't folded again; in
// all levels what any row holds is listed in all levels again.
let (view, folds) = match frame.kit {
Some(_) if request.view == View::AllLevels => (View::AllLevels, false),
Some(_) => (View::PartsOnly, false),
None => (request.view, request.fold),
};
let numbered = tree.components.get(&component).is_some_and(|c| c.metadata.part_number().is_some());
let shape = Shape {
contents: tree.children.contains_key(&component),
bodies: tree.bodies.contains_key(&component),
folded: folds && numbered,
open_purchased: request.purchased_contents,
};
let step = classify(view, frame.walk, placed.member.bom_type, shape);
let path = if members { [frame.path.as_slice(), &[placed.occurrence]].concat() } else { Vec::new() };
let here = entries.len();
if step.row {
entries.push(Entry { member: placed.member, holds: step.holds, kit: frame.kit });
paths.push(path.clone());
}
if let Some(walk) = step.inside {
let kit = if step.kit { Some(here) } else { frame.kit };
stack.push(Frame { component, depth: frame.depth + 1, path, walk, kit });
}
}
}
Ok((entries, paths))
}
/// The rows `request` lists, with the assembly's total; with `request.mass`, each row and the
/// assembly weighed.
pub fn list(tree: &mut Tree, request: &Request) -> Result<Bom> {
list_with(tree, request, false)
}
/// [`list`], with each row's members when asked (what item numbers and balloons will follow rows
/// by, and what `row_of` reads), so a list made for its rows alone copies no paths.
pub(crate) fn list_with(tree: &mut Tree, request: &Request, members: bool) -> Result<Bom> {
if request.source != 0 && !tree.components.contains_key(&request.source) {
return Err(DocError::Unknown(format!("component {}", request.source)));
}
let (entries, mut paths) = walk(tree, request, members)?;
// What each folded placement holds: the placements listed as its children.
let mut kids: Vec<Vec<usize>> = vec![Vec::new(); entries.len()];
for (i, entry) in entries.iter().enumerate() {
if let Some(of) = entry.kit.and_then(|k| kids.get_mut(k)) {
of.push(i);
}
}
let kits = tree.kits(&entries, &kids);
let listing = Listing { entries, kids, kits };
let top: Vec<usize> = listing.entries.iter().enumerate().filter(|(_, e)| e.kit.is_none()).map(|(i, _)| i).collect();
// What a folded part holds is gathered by part number in any list; all levels gathers every
// level as it gathers the first.
let under = if request.view == View::AllLevels { request.group } else { Group::PartNumber };
let mut rows = tree.level(&listing, &mut paths, &top, request.group, under, &[], 1);
let numbered = numbers::apply(&mut rows, numbers::saved(tree.doc, request.source, request.view));
let mut bom = Bom { source: request.source, rows, total: Total::default(), numbered, index: HashMap::new() };
if members {
bom.index_members();
}
tree.name_materials(&mut bom.rows)?;
if request.mass {
tree.weigh_rows(&mut bom.rows)?;
// After the rows, so what their definitions weigh is kept: only what no row holds (the
// assembly's own bodies) is measured again.
bom.total.mass = agree(&[tree.weigh(request.source, Holds::All, 0)?]);
}
let occurrences: u64 = bom.rows_deep().iter().map(|(_, row)| row.count).sum();
bom.total.occurrences = occurrences;
Ok(bom)
}
/// One of a row's parts, from what each of its definitions weighs: known when every one can be
/// measured, has something to weigh, and they agree. Some with something to weigh and some with
/// nothing differ.
fn agree(weighed: &[Weighed]) -> Mass {
let Some(known) = weighed.iter().copied().collect::<Option<Vec<(f64, usize)>>>() else {
return Mass::Unknown(Unknown::Unmeasurable);
};
if known.iter().all(|&(_, bodies)| bodies == 0) {
return Mass::Unknown(Unknown::NothingToWeigh);
}
match known.first() {
Some(&(first, _)) if known.iter().any(|&(grams, bodies)| bodies == 0 || !same_mass(grams, first)) => Mass::Unknown(Unknown::Differs),
Some(&(first, _)) => Mass::Grams(first),
None => Mass::Unknown(Unknown::NothingToWeigh),
}
}
/// How closely the kernel's `measure` gives one solid's volume however it was modelled, relative to
/// it (about 1e-4): a pin made as a cylinder and as a revolved rectangle measured 1.05e-5 apart
/// (2026-10-26), and this is ten times that.
pub const MEASURE_ACCURACY: f64 = 1e-4;
/// Two masses of one part, measured from definitions modelled apart: one when they are within the
/// kernel's measurement accuracy of each other.
fn same_mass(a: f64, b: f64) -> bool {
(a - b).abs() <= MEASURE_ACCURACY * a.abs().max(b.abs())
}
/// `more` added to `total`; unknown when either is. The body count only says whether there is
/// any, so a compact assembly with more placed bodies than a count holds saturates it.
fn add(total: &mut Weighed, more: Weighed) {
*total = total.zip(more).map(|((grams, bodies), (g, n))| (grams + g, bodies.saturating_add(n)));
}
/// `name` added to `names` unless it is there already, so each is listed once, in first order.
fn push_once(names: &mut Vec<String>, name: String) {
if !names.contains(&name) {
names.push(name);
}
}
fn too_big() -> DocError {
crate::assembly::too_many_placements()
}
#[cfg(test)]
#[path = "bom_tests.rs"]
#[allow(clippy::unwrap_used, clippy::expect_used)]
mod tests;
+260
View File
@@ -0,0 +1,260 @@
//! Item numbers (#3874). A view of an assembly is numbered once someone numbers it
//! (`assembly.bom.renumber`, `assembly.bom.item.set`): from then on its rows' numbers are saved in
//! the design ([`ItemNumbers`], `assembly.item_numbers`), each under its row's key, so a row keeps
//! its number through part-number edits. Until then a view's numbers are its rows' positions,
//! provisional, and listing it saves nothing.
//!
//! A row a numbered view has no number for (a part added since) shows the highest number saved at
//! its level plus one, provisional, and [`record`] saves it: the engine runs it after each change,
//! in the change's undo step. A row that goes keeps its number until a renumber, so a number on a
//! printed drawing never comes to mean another part, and a part put back gets its number again.
//! A renumber keeps locked numbers and skips them.
use std::collections::{HashMap, HashSet};
use serde::{Deserialize, Serialize};
use super::{Group, Member, Request, Row, RowKey, Tree, View, item_text, list, list_order};
use crate::{DocError, Document, MAX_PLACEMENTS, Result};
/// The highest item number.
pub const MAX_ITEM: u32 = 999_999;
/// The item numbers saved for one view of one assembly, with the list options it was numbered
/// with: the rows it numbers are listed by them.
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct ItemNumbers {
/// The assembly: a component, or 0 for the design.
pub source: u64,
#[serde(rename = "levels")]
pub view: View,
#[serde(default, rename = "group_by")]
pub group: Group,
#[serde(default, rename = "group_children", skip_serializing_if = "std::ops::Not::not")]
pub fold: bool,
#[serde(default, rename = "show_purchased_contents", skip_serializing_if = "std::ops::Not::not")]
pub purchased_contents: bool,
/// One for each row numbered, rows gone since included, by key.
#[serde(default)]
pub items: Vec<ItemNumber>,
}
/// One row's saved item number.
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct ItemNumber {
#[serde(flatten)]
pub(crate) key: RowKey,
pub number: u32,
#[serde(default, skip_serializing_if = "std::ops::Not::not")]
pub locked: bool,
}
impl ItemNumbers {
/// The list it numbers.
pub fn request(&self) -> Request {
Request { source: self.source, view: self.view, group: self.group, fold: self.fold, mass: false, purchased_contents: self.purchased_contents }
}
}
/// How [`number`] numbers a view.
#[derive(Clone, Debug, PartialEq, Eq)]
pub enum Numbering {
/// Each row without a saved number keeps the one it shows: the next at its level. Only a
/// numbered view has any to save.
NewRows,
/// Every row from `start` by `step`, level by level, in `order`. Locked rows keep their
/// numbers, which are skipped, and rows gone are forgotten.
Renumber { start: u32, step: u32, order: Order },
/// One row, by its item as the view shows it now (`[1, 2]` is 1.2): its number and its lock.
/// Every other row keeps the number it shows.
Set { row: Vec<u32>, item: Option<u32>, locked: Option<bool> },
}
/// The order a renumber goes in.
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
pub enum Order {
/// The list's own, by part number (`list_order`).
#[default]
List,
/// The item numbers', closing the gaps.
Item,
}
/// The numbering saved for a view of an assembly, if it has been numbered.
pub(super) fn saved(doc: &Document, source: u64, view: View) -> Option<&ItemNumbers> {
doc.assembly.item_numbers.iter().find(|n| n.source == source && n.view == view)
}
/// `rows`, as their view lists them, numbered as `saved` says: each its saved number, else the next
/// at its level (provisional); then each level by item number, with duplicates marked. With no
/// numbering they stay as listed, every number provisional. Whether the view is numbered.
pub(super) fn apply(rows: &mut [Row], saved: Option<&ItemNumbers>) -> bool {
let Some(saved) = saved else { return false };
// A damaged file's number out of range is no number, and of a key saved twice the first holds.
let mut numbers: HashMap<&RowKey, &ItemNumber> = HashMap::new();
let mut highest: HashMap<Vec<Member>, u32> = HashMap::new();
for item in saved.items.iter().filter(|i| (1..=MAX_ITEM).contains(&i.number)) {
if numbers.contains_key(&item.key) {
continue;
}
numbers.insert(&item.key, item);
let h = highest.entry(item.key.parents.clone()).or_default();
*h = (*h).max(item.number);
}
number_level(rows, &numbers, &mut highest);
true
}
/// One level of [`apply`], and the levels under it. `highest` is the highest number at each level
/// (by its parents), saved or shown.
fn number_level(rows: &mut [Row], numbers: &HashMap<&RowKey, &ItemNumber>, highest: &mut HashMap<Vec<Member>, u32>) {
for row in rows.iter_mut() {
if let Some(saved) = numbers.get(&row.key) {
row.item = saved.number;
row.locked = saved.locked;
row.provisional = false;
} else {
let h = highest.entry(row.key.parents.clone()).or_default();
*h = h.saturating_add(1);
row.item = *h;
}
number_level(&mut row.children, numbers, highest);
}
rows.sort_by_key(|r| r.item);
let mut uses: HashMap<u32, usize> = HashMap::new();
for row in rows.iter() {
*uses.entry(row.item).or_default() += 1;
}
for row in rows.iter_mut() {
row.duplicate = uses.get(&row.item).is_some_and(|&n| n > 1);
}
}
/// The view `request` asks for, numbered as `how` says: the numbering to save, or `None` when that
/// changes nothing.
pub fn number(tree: &mut Tree, request: &Request, how: Numbering) -> Result<Option<ItemNumbers>> {
let request = Request { mass: false, ..*request };
// Borrowed from the design, not the tree: listing needs the tree, and nothing is copied until
// something changes.
let doc = tree.doc;
let old = saved(doc, request.source, request.view);
let mut bom = list(tree, &request)?;
let mut items: Vec<ItemNumber> = Vec::new();
match how {
Numbering::NewRows => {
let Some(old) = old else { return Ok(None) };
let room = MAX_PLACEMENTS.saturating_sub(old.items.len());
let shown = bom.rows_deep();
let new: Vec<ItemNumber> = shown
.iter()
.filter(|(_, r)| r.provisional && r.item <= MAX_ITEM)
.take(room)
.map(|(_, r)| ItemNumber { key: r.key.clone(), number: r.item, locked: false })
.collect();
if new.is_empty() {
return Ok(None);
}
items = [old.items.as_slice(), &new].concat();
}
Numbering::Set { row, item, locked } => {
if let Some(n) = item.filter(|n| !(1..=MAX_ITEM).contains(n)) {
return Err(DocError::Invalid(format!("an item number is 1 to {MAX_ITEM}, not {n}")));
}
let shown = bom.rows_deep();
let target = shown
.iter()
.find(|(i, _)| *i == row)
.map(|(_, r)| r.key.clone())
.ok_or_else(|| DocError::Unknown(format!("item {}", item_text(&row))))?;
// Rows not listed now keep what was saved for them; listed ones the number they show.
let listed: HashSet<&RowKey> = shown.iter().map(|(_, r)| &r.key).collect();
items.extend(old.iter().flat_map(|o| &o.items).filter(|i| !listed.contains(&i.key)).cloned());
items.extend(shown.iter().map(|(_, r)| ItemNumber { key: r.key.clone(), number: r.item, locked: r.locked }));
if let Some(it) = items.iter_mut().find(|i| i.key == target) {
it.number = item.unwrap_or(it.number);
it.locked = locked.unwrap_or(it.locked);
}
}
Numbering::Renumber { start, step, order } => {
for (name, n) in [("start", start), ("step", step)] {
if !(1..=MAX_ITEM).contains(&n) {
return Err(DocError::Invalid(format!("`{name}` is 1 to {MAX_ITEM}, not {n}")));
}
}
renumber(&mut bom.rows, start, step, order, &mut items)?;
}
}
items.sort_by(|a, b| a.key.cmp(&b.key));
let new = ItemNumbers {
source: request.source,
view: request.view,
group: request.group,
fold: request.fold,
purchased_contents: request.purchased_contents,
items,
};
Ok((old != Some(&new)).then_some(new))
}
/// `rows` and the levels under them numbered from `start` by `step` in `order`, each level on its
/// own, into `out`. Locked rows keep their numbers and the others skip them, so no two rows get one
/// number.
fn renumber(rows: &mut [Row], start: u32, step: u32, order: Order, out: &mut Vec<ItemNumber>) -> Result<()> {
if order == Order::List {
rows.sort_by(list_order);
}
let locked: HashSet<u32> = rows.iter().filter(|r| r.locked).map(|r| r.item).collect();
let mut next = start;
for row in rows.iter_mut() {
if !row.locked {
while locked.contains(&next) {
next = next.saturating_add(step);
}
if next > MAX_ITEM {
return Err(DocError::Invalid(format!("numbering from {start} by {step} passes {MAX_ITEM}")));
}
row.item = next;
next = next.saturating_add(step);
}
out.push(ItemNumber { key: row.key.clone(), number: row.item, locked: row.locked });
renumber(&mut row.children, start, step, order, out)?;
}
Ok(())
}
/// Each numbered view of the design with its new rows' numbers saved ([`Numbering::NewRows`]), and
/// a component's views dropped once it is gone: the design's numberings to save, or `None` when
/// none changed. A view that can't be listed now (too large) is left as it is. A view numbered
/// twice (only a damaged file is) keeps its first numbering, the one listing reads.
pub fn record(tree: &mut Tree) -> Option<Vec<ItemNumbers>> {
let doc = tree.doc;
// Each numbering that changes: its new self, or none when its component is gone or its view
// already has one, so no view is listed twice after a change.
let mut changes: Vec<(usize, Option<ItemNumbers>)> = Vec::new();
let mut views = HashSet::new();
for (i, numbering) in doc.assembly.item_numbers.iter().enumerate() {
let gone = numbering.source != 0 && !tree.components.contains_key(&numbering.source);
if gone || !views.insert((numbering.source, numbering.view)) {
changes.push((i, None));
} else if let Ok(Some(new)) = number(tree, &numbering.request(), Numbering::NewRows) {
changes.push((i, Some(new)));
}
}
if changes.is_empty() {
return None;
}
let mut out = doc.assembly.item_numbers.clone();
for (i, change) in changes.into_iter().rev() {
match change {
Some(new) => {
if let Some(numbering) = out.get_mut(i) {
*numbering = new;
}
}
None => {
out.remove(i);
}
}
}
Some(out)
}
+101
View File
@@ -0,0 +1,101 @@
//! Quantities (#3874): what one placement of a component means in a bill of materials, typed in as
//! its [`BOM_QUANTITY`](crate::metadata::BOM_QUANTITY) part property, and what a row's placements
//! add up to. The property is an expression evaluated with the design's parameters, so a cable's
//! length follows the design; without a unit it is a number of pieces (a pack of 4). Units come
//! from expressions: mass, volume and area wait for their expression units (#4811).
use std::cell::OnceCell;
use std::collections::BTreeMap;
use crate::expr::{self, Value};
use crate::{DocError, Document, Result};
/// The largest quantity of one placement, in pieces or millimetres.
const MAX_AMOUNT: f64 = 1e9;
/// The mass and volume units of #4811's expressions: until they reach expressions, a quantity
/// naming one is refused for what it is, not as an unknown parameter.
const MASS_AND_VOLUME: [&str; 7] = ["g", "kg", "lb", "ml", "mm³", "cm³", "m³"];
/// What one placement of a component counts.
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum Amount {
Pieces(f64),
/// Millimetres.
Length(f64),
}
/// A row's quantity: what its placements add up to.
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub enum Quantity {
/// None of its definitions has a quantity: its count says it all.
#[default]
Count,
Pieces(f64),
/// Millimetres.
Length(f64),
Unknown(Uncounted),
}
/// Why a row's quantity isn't known.
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum Uncounted {
/// Pieces and lengths can't be added (a placement without a quantity is one piece).
Mixed,
/// A definition's quantity doesn't evaluate: a parameter it names is in error (or missing from
/// a damaged file).
Invalid,
}
/// Evaluate a quantity expression with `doc`'s parameters.
pub fn amount(doc: &Document, text: &str) -> Result<Amount> {
amount_in(doc, &OnceCell::new(), text)
}
/// [`amount`] with the parameters' values shared between calls, evaluated only when an expression
/// names one.
pub(super) fn amount_in(doc: &Document, values: &OnceCell<BTreeMap<String, Value>>, text: &str) -> Result<Amount> {
let value = expr::eval_with(text, &|name| match values.get_or_init(|| doc.param_values().0).get(name) {
Some(v) => Ok(*v),
None if MASS_AND_VOLUME.contains(&name) => Err(mass_and_volume()),
None => Err(DocError::Expr(format!("unknown parameter `{name}`"))),
})?;
let amount = match (value.len, value.ang) {
(0, 0) => Amount::Pieces(value.v),
(1, 0) => Amount::Length(value.v),
(2, 0) => return Err(DocError::Invalid("not supported yet: area quantities".into())),
(3, 0) => return Err(mass_and_volume()),
_ => return Err(DocError::Invalid(format!("a quantity is a number of pieces or a length, not {}", value.describe()))),
};
let (Amount::Pieces(v) | Amount::Length(v)) = amount;
if !(v > 0.0 && v <= MAX_AMOUNT) {
return Err(DocError::Invalid(format!("a quantity is above 0 and at most {MAX_AMOUNT:e}")));
}
Ok(amount)
}
fn mass_and_volume() -> DocError {
DocError::Invalid("not supported yet: mass and volume quantities need the expression units of #4811".into())
}
/// What placements add up to, from each one's entry in the definitions' amounts: none without a
/// quantity (one piece), `Some(None)` when its quantity doesn't evaluate.
pub(super) fn add_up<'a>(amounts: impl IntoIterator<Item = Option<&'a Option<Amount>>>) -> Quantity {
let (mut pieces, mut length, mut typed) = (None, None, false);
for amount in amounts {
let (sum, n): (&mut Option<f64>, f64) = match amount {
None => (&mut pieces, 1.0),
Some(None) => return Quantity::Unknown(Uncounted::Invalid),
Some(Some(Amount::Pieces(n))) => (&mut pieces, *n),
Some(Some(Amount::Length(mm))) => (&mut length, *mm),
};
typed |= amount.is_some();
*sum.get_or_insert(0.0) += n;
}
match (pieces, length) {
_ if !typed => Quantity::Count,
(Some(_), Some(_)) => Quantity::Unknown(Uncounted::Mixed),
(None, Some(mm)) => Quantity::Length(mm),
(n, None) => Quantity::Pieces(n.unwrap_or_default()),
}
}
+893
View File
@@ -0,0 +1,893 @@
use serde_json::json;
use super::*;
use crate::BomType::{Inseparable, Normal, Phantom, Purchased, Reference};
use crate::{IDENTITY, Occurrence};
/// A new component placed once in `parent`, and that placement.
fn add(doc: &mut Document, name: &str, parent: u64) -> (u64, u64) {
let component = doc.add_component(Some(name), parent).unwrap();
(component, doc.occurrences.last().unwrap().id)
}
/// Another placement of `component` in `parent`.
fn place(doc: &mut Document, component: u64, parent: u64) -> u64 {
doc.add_occurrence(component, parent, IDENTITY).unwrap()
}
/// A part property as a file holds it (reading never validates).
fn set(doc: &mut Document, component: u64, key: &str, value: &str) {
doc.components.iter_mut().find(|c| c.id == component).unwrap().metadata.0.insert(key.into(), json!(value));
}
fn number(doc: &mut Document, component: u64, part_number: &str) {
set(doc, component, "part_number", part_number);
}
fn typed(doc: &mut Document, component: u64, bom_type: BomType) {
set(doc, component, "bom_type", bom_type.as_str());
}
/// What `request` lists for `doc` (none of whose components has bodies), with each row's members.
fn listed(doc: &Document, request: Request) -> Result<Bom> {
let state = ModelState::default();
list_with(&mut Tree::new(doc, &state), &request, true)
}
fn view(view: View) -> Request {
Request { view, ..Request::default() }
}
fn folded(view: View) -> Request {
Request { view, fold: true, ..Request::default() }
}
/// Each row, followed by the rows under it: item, names, type, count and each.
fn rows(bom: &Bom) -> Vec<(String, String, BomType, u64, u64)> {
bom.rows_deep().into_iter().map(|(item, r)| (item_text(&item), r.names.join("; "), r.bom_type, r.count, r.each)).collect()
}
fn row(item: &str, names: &str, bom_type: BomType, count: u64, each: u64) -> (String, String, BomType, u64, u64) {
(item.into(), names.into(), bom_type, count, each)
}
#[test]
fn the_view_and_grouping_words_are_the_commands() {
for v in View::ALL {
assert_eq!(View::parse(v.as_str()), Some(v));
}
for g in Group::ALL {
assert_eq!(Group::parse(g.as_str()), Some(g));
}
assert_eq!((View::default().as_str(), Group::default().as_str()), ("flat", "part_number"), "what assembly.bom lists by default");
for word in ["", "deep", "Flat", "part number"] {
assert_eq!((View::parse(word), Group::parse(word)), (None, None), "{word}");
}
}
#[test]
fn an_empty_assembly_lists_nothing_and_weighs_nothing() {
let mut doc = Document::default();
let empty = listed(&doc, Request { mass: true, ..Request::default() }).unwrap();
assert!(empty.rows.is_empty());
assert_eq!(empty.total, Total { occurrences: 0, mass: Mass::Unknown(Unknown::NothingToWeigh) });
assert_eq!(listed(&doc, Request::default()).unwrap().total.mass, Mass::NotAsked, "weighed only when asked");
// A component that holds nothing, as the assembly listed; one that isn't there is refused.
let (part, _) = add(&mut doc, "Part", 0);
for v in View::ALL {
assert!(listed(&doc, Request { source: part, view: v, ..Request::default() }).unwrap().rows.is_empty());
}
assert!(listed(&doc, Request { source: 999, ..Request::default() }).is_err());
}
#[test]
fn one_part_is_one_row_named_by_its_lowest_member() {
let mut doc = Document::default();
let (part, occurrence) = add(&mut doc, "Part", 0);
for (v, stands_for) in [(View::PartsOnly, Holds::Own), (View::FirstLevel, Holds::All)] {
let bom = listed(&doc, view(v)).unwrap();
let [r] = bom.rows.as_slice() else { panic!("{bom:?}") };
assert_eq!(r.key, RowKey { parents: vec![], member: Member { component: part, bom_type: Normal } });
assert_eq!((r.item, r.count, r.each, r.stands_for, r.mass), (1, 1, 1, stands_for, Mass::NotAsked));
assert_eq!((&r.components, &r.names, &r.members), (&vec![part], &vec!["Part".to_string()], &vec![vec![occurrence]]));
assert!(r.children.is_empty() && r.materials.is_empty() && r.part_number.is_empty());
assert_eq!(bom.total.occurrences, 1);
}
}
#[test]
fn a_row_is_named_by_its_lowest_member_not_by_its_part_number() {
let mut doc = Document::default();
let (a, oa) = add(&mut doc, "A", 0);
let (b, ob) = add(&mut doc, "B", 0);
number(&mut doc, a, "P");
number(&mut doc, b, "P");
let bom = listed(&doc, Request::default()).unwrap();
let [r] = bom.rows.as_slice() else { panic!("{bom:?}") };
assert_eq!((r.key.member.component, &r.components, &r.members, r.part_number.as_str()), (a, &vec![a, b], &vec![vec![oa], vec![ob]], "P"));
// Renumbering the lower one: its row goes with it, and the other's row is named by the other.
number(&mut doc, a, "Q");
let bom = listed(&doc, Request::default()).unwrap();
let keys: Vec<(&str, u64)> = bom.rows.iter().map(|r| (r.part_number.as_str(), r.key.member.component)).collect();
assert_eq!(keys, [("P", b), ("Q", a)]);
}
#[test]
fn one_part_number_counted_as_two_types_is_two_rows() {
let mut doc = Document::default();
let (a, _) = add(&mut doc, "Made", 0);
let (b, _) = add(&mut doc, "Bought", 0);
number(&mut doc, a, "P");
number(&mut doc, b, "P");
typed(&mut doc, b, Purchased);
// A second placement of the made one, counted as bought: it joins the bought row.
let second = place(&mut doc, a, 0);
doc.occurrences.iter_mut().find(|o| o.id == second).unwrap().bom_type = Some(Purchased);
for v in View::ALL {
let bom = listed(&doc, view(v)).unwrap();
assert_eq!(rows(&bom), [row("1", "Made", Normal, 1, 1), row("2", "Made; Bought", Purchased, 2, 2)], "{v:?}");
let keys: Vec<Member> = bom.rows.iter().map(|r| r.key.member).collect();
assert_eq!(keys, [Member { component: a, bom_type: Normal }, Member { component: a, bom_type: Purchased }]);
}
}
#[test]
fn a_phantom_in_a_phantom_promotes_what_it_holds_into_the_level_it_sits_in() {
let mut doc = Document::default();
let (kit, okit) = add(&mut doc, "Kit", 0);
let (set_, oset) = add(&mut doc, "Set", kit);
let oset2 = place(&mut doc, set_, kit);
let (screw, oscrew) = add(&mut doc, "Screw", set_);
let oscrew2 = place(&mut doc, screw, set_);
let alone = place(&mut doc, screw, 0);
typed(&mut doc, kit, Phantom);
typed(&mut doc, set_, Phantom);
let mut paths = vec![vec![okit, oset, oscrew], vec![okit, oset, oscrew2], vec![okit, oset2, oscrew], vec![okit, oset2, oscrew2], vec![alone]];
paths.sort();
for v in View::ALL {
let bom = listed(&doc, view(v)).unwrap();
assert_eq!(rows(&bom), [row("1", "Screw", Normal, 5, 5)], "{v:?}");
assert_eq!(bom.rows[0].members, paths);
}
}
#[test]
fn a_reference_counts_nowhere_and_its_own_list_lists_what_it_holds() {
let mut doc = Document::default();
let (fixture, ofixture) = add(&mut doc, "Fixture", 0);
add(&mut doc, "Pin", fixture);
typed(&mut doc, fixture, Reference);
for v in View::ALL {
let bom = listed(&doc, Request { mass: true, ..view(v) }).unwrap();
assert_eq!((bom.rows.len(), bom.total.occurrences), (0, 0), "{v:?}");
assert_eq!(bom.total.mass, Mass::Unknown(Unknown::NothingToWeigh));
assert_eq!(rows(&listed(&doc, Request { source: fixture, view: v, ..Request::default() }).unwrap()), [row("1", "Pin", Normal, 1, 1)]);
}
// An occurrence counted as a reference, its component normal: the same.
set(&mut doc, fixture, "bom_type", "normal");
assert_eq!(rows(&listed(&doc, Request::default()).unwrap()), [row("1", "Pin", Normal, 1, 1)]);
doc.occurrences.iter_mut().find(|o| o.id == ofixture).unwrap().bom_type = Some(Reference);
assert!(listed(&doc, Request::default()).unwrap().rows.is_empty());
}
#[test]
fn a_list_walks_64_levels_and_refuses_a_65th() {
let mut doc = Document::default();
let mut parent = 0;
for level in 1..=64 {
parent = add(&mut doc, &format!("L{level}"), parent).0;
}
let bom = listed(&doc, Request::default()).unwrap();
assert_eq!(rows(&bom), [row("1", "L64", Normal, 1, 1)]);
assert_eq!(bom.rows[0].members[0].len(), 64);
add(&mut doc, "L65", parent);
assert!(listed(&doc, Request::default()).is_err(), "refused, never listed in part");
// The first level only walks what the design places directly.
assert_eq!(rows(&listed(&doc, view(View::FirstLevel)).unwrap()), [row("1", "L1", Normal, 1, 1)]);
}
#[test]
fn one_placement_budget_covers_the_whole_list_folded_parts_included() {
let mut doc = Document::default();
let (a, _) = add(&mut doc, "A", 0);
for _ in 1..1000 {
place(&mut doc, a, 0);
}
let (b, _) = add(&mut doc, "B", a);
for _ in 1..99 {
place(&mut doc, b, a);
}
// 1,000 As holding 99 Bs each: 100,000 placements, as many as one list walks.
let flat = listed(&doc, Request::default()).unwrap();
assert_eq!((rows(&flat), flat.total.occurrences), (vec![row("1", "B", Normal, 99_000, 99_000)], 99_000));
number(&mut doc, a, "A-1");
let kit = listed(&doc, folded(View::PartsOnly)).unwrap();
assert_eq!((rows(&kit), kit.total.occurrences), (vec![row("1", "A", Normal, 1000, 1000), row("1.1", "B", Normal, 99_000, 99)], 100_000));
let (a_row, b_row) = (&kit.rows[0], &kit.rows[0].children[0]);
assert_eq!(b_row.key, RowKey { parents: vec![a_row.key.member], member: Member { component: b, bom_type: Normal } });
assert_eq!(a_row.stands_for, Holds::All, "a folded part's row is the kit");
// One placement more, anywhere, is refused, folded or not: a folded part's contents are walked
// under the list's budget, not one of their own.
add(&mut doc, "C", 0);
for request in [Request::default(), folded(View::PartsOnly), folded(View::FirstLevel)] {
assert!(listed(&doc, request).is_err(), "{request:?}");
}
assert_eq!(listed(&doc, view(View::FirstLevel)).unwrap().total.occurrences, 1001, "the first level walks 1,001");
}
/// Kits used to be compared as text (`"#12×1"`): a part without a part number, whose id is 12,
/// read the same as a part numbered "#12", and a part numbered "P×1\nQ" the same as a P and a Q.
#[test]
fn kits_are_told_apart_by_what_they_hold_not_by_how_it_reads() {
let mut doc = Document::default();
let bolt = |doc: &mut Document, name: &str| {
let (id, _) = add(doc, name, 0);
number(doc, id, "BOLT");
id
};
let (b1, b2, b3, b4) = (bolt(&mut doc, "Bolt 1"), bolt(&mut doc, "Bolt 2"), bolt(&mut doc, "Bolt 3"), bolt(&mut doc, "Bolt 4"));
let (plain, _) = add(&mut doc, "Plain", b1);
let (spelled, _) = add(&mut doc, "Spelled", b2);
number(&mut doc, spelled, &format!("#{plain}"));
let (pq, _) = add(&mut doc, "PQ", b3);
number(&mut doc, pq, "P×1\nQ");
let (p, _) = add(&mut doc, "P", b4);
let (q, _) = add(&mut doc, "Q", b4);
number(&mut doc, p, "P");
number(&mut doc, q, "Q");
let bolts = |doc: &Document| -> Vec<Vec<u64>> {
let bom = listed(doc, folded(View::PartsOnly)).unwrap();
bom.rows.iter().filter(|r| r.part_number == "BOLT").map(|r| r.components.clone()).collect()
};
let mut each: Vec<Vec<u64>> = bolts(&doc);
each.sort();
assert_eq!(each, [vec![b1], vec![b2], vec![b3], vec![b4]], "four kits, four rows");
// The same parts by part number are one kit, whichever definitions they are.
let b5 = bolt(&mut doc, "Bolt 5");
let (p2, _) = add(&mut doc, "P again", b5);
let (q2, _) = add(&mut doc, "Q again", b5);
number(&mut doc, p2, "P");
number(&mut doc, q2, "Q");
assert!(bolts(&doc).contains(&vec![b4, b5]));
let bom = listed(&doc, folded(View::PartsOnly)).unwrap();
let both = bom.rows.iter().find(|r| r.components == [b4, b5]).unwrap();
let inside: Vec<(&str, &[u64], u64, u64)> =
both.children.iter().map(|c| (c.part_number.as_str(), c.components.as_slice(), c.each, c.count)).collect();
assert_eq!(inside, [("P", &[p, p2][..], 1, 2), ("Q", &[q, q2][..], 1, 2)], "each bolt's, counted for both");
// The same parts counted as another type are another kit: a bolt whose Q is bought is a row of its own.
let b6 = bolt(&mut doc, "Bolt 6");
let (p3, _) = add(&mut doc, "P third", b6);
let (q3, bought) = add(&mut doc, "Q third", b6);
number(&mut doc, p3, "P");
number(&mut doc, q3, "Q");
doc.occurrences.iter_mut().find(|o| o.id == bought).unwrap().bom_type = Some(Purchased);
let each = bolts(&doc);
assert!(each.contains(&vec![b4, b5]) && each.contains(&vec![b6]), "{each:?}");
}
/// All levels walks under the list's one budget: 100,000 placements and 64 levels are listed, and
/// one more of either is refused, never listed in part.
#[test]
fn all_levels_lists_at_each_cap_and_refuses_one_more() {
let mut doc = Document::default();
let (part, _) = add(&mut doc, "Part", 0);
let base = doc.occurrences.iter().map(|o| o.id).max().unwrap_or(0);
let placement =
|id: u64| Occurrence { id, component: part, parent: 0, name: format!("Part:{id}"), transform: IDENTITY, grounded: false, bom_type: None };
doc.occurrences.extend((1..MAX_PLACEMENTS as u64).map(|i| placement(base + i)));
let all = listed(&doc, view(View::AllLevels)).unwrap();
assert_eq!((all.rows.len(), all.total.occurrences), (1, MAX_PLACEMENTS as u64));
doc.occurrences.push(placement(base + MAX_PLACEMENTS as u64));
assert!(listed(&doc, view(View::AllLevels)).is_err(), "100,001 placements");
let mut doc = Document::default();
let mut parent = 0;
for i in 0..MAX_PLACEMENT_DEPTH {
parent = add(&mut doc, &format!("L{i}"), parent).0;
}
let all = listed(&doc, view(View::AllLevels)).unwrap();
assert_eq!(all.rows_deep().last().map(|(item, _)| item.len()), Some(MAX_PLACEMENT_DEPTH));
add(&mut doc, "Too deep", parent);
assert!(listed(&doc, view(View::AllLevels)).is_err(), "65 levels");
}
/// Two parts with one part number are one row only when what they hold is the same all the way
/// down: here they differ two levels below, so in all levels they are two rows, each with its own.
#[test]
fn kits_are_compared_to_any_depth() {
let mut doc = Document::default();
let (a, _) = add(&mut doc, "A", 0);
let (b, _) = add(&mut doc, "B", 0);
let (x1, _) = add(&mut doc, "X1", a);
let (x2, _) = add(&mut doc, "X2", b);
let (bolt, _) = add(&mut doc, "Bolt", x1);
for (id, part_number) in [(a, "P"), (b, "P"), (x1, "X"), (x2, "X"), (bolt, "BOLT")] {
number(&mut doc, id, part_number);
}
let all = listed(&doc, view(View::AllLevels)).unwrap();
assert_eq!(
rows(&all),
[
row("1", "A", Normal, 1, 1),
row("1.1", "X1", Normal, 1, 1),
row("1.1.1", "Bolt", Normal, 1, 1),
row("2", "B", Normal, 1, 1),
row("2.1", "X2", Normal, 1, 1)
],
"two P rows, never one with children at each 0"
);
// The same contents two levels down: one row again.
let (bolt2, _) = add(&mut doc, "Bolt 2", x2);
number(&mut doc, bolt2, "BOLT");
let all = listed(&doc, view(View::AllLevels)).unwrap();
assert_eq!(rows(&all), [row("1", "A; B", Normal, 2, 2), row("1.1", "X1; X2", Normal, 2, 1), row("1.1.1", "Bolt; Bolt 2", Normal, 2, 1)]);
}
/// What a folded part holds is listed as parts only lists it, in parts only and the first level,
/// and isn't folded again: a numbered subassembly inside it is listed through its parts. In all
/// levels it is listed in all levels again, so that subassembly is a row with its own rows.
#[test]
fn what_a_folded_part_holds_is_listed_as_parts_only_lists_it() {
let mut doc = Document::default();
let (machine, _) = add(&mut doc, "Machine", 0);
let (gearbox, _) = add(&mut doc, "Gearbox", machine);
let (shaft, _) = add(&mut doc, "Shaft", gearbox);
place(&mut doc, shaft, gearbox);
add(&mut doc, "Pin", gearbox);
for (id, part_number) in [(machine, "M-1"), (gearbox, "GB-1"), (shaft, "SH-1")] {
number(&mut doc, id, part_number);
}
for v in [View::PartsOnly, View::FirstLevel] {
let bom = listed(&doc, folded(v)).unwrap();
assert_eq!(rows(&bom), [row("1", "Machine", Normal, 1, 1), row("1.1", "Shaft", Normal, 2, 2), row("1.2", "Pin", Normal, 1, 1)], "{v:?}");
}
let all = listed(&doc, folded(View::AllLevels)).unwrap();
let nested = [
row("1", "Machine", Normal, 1, 1),
row("1.1", "Gearbox", Normal, 1, 1),
row("1.1.1", "Shaft", Normal, 2, 2),
row("1.1.2", "Pin", Normal, 1, 1),
];
assert_eq!(rows(&all), nested);
}
/// Bolt (purchased) holding a nut; Frame (inseparable) holding a plate, a purchased clip and a
/// weld kit (phantom) of a rivet and a purchased insert; Fixture (reference) holding a pin; Set
/// (phantom) holding a screw; Sub (normal, numbered, no bodies) holding a washer. Each is placed
/// once.
fn mixed() -> (Document, BTreeMap<&'static str, u64>) {
let mut doc = Document::default();
let mut at = BTreeMap::new();
for (name, parent, bom_type) in [
("Bolt", "", Purchased),
("Nut", "Bolt", Normal),
("Frame", "", Inseparable),
("Plate", "Frame", Normal),
("Clip", "Frame", Purchased),
("Weld kit", "Frame", Phantom),
("Rivet", "Weld kit", Normal),
("Insert", "Weld kit", Purchased),
("Fixture", "", Reference),
("Pin", "Fixture", Normal),
("Set", "", Phantom),
("Screw", "Set", Normal),
("Sub", "", Normal),
("Washer", "Sub", Normal),
] {
let parent = doc.find_component(parent).unwrap_or(0);
let (id, occurrence) = add(&mut doc, name, parent);
typed(&mut doc, id, bom_type);
at.insert(name, occurrence);
}
let sub = doc.find_component("Sub").unwrap();
number(&mut doc, sub, "SUB-1");
(doc, at)
}
#[test]
fn row_of_finds_the_row_a_placement_is_counted_in() {
let (doc, at) = mixed();
let path = |names: &[&str]| -> Vec<u64> { names.iter().map(|n| at[*n]).collect() };
let state = ModelState::default();
let mut tree = Tree::new(&doc, &state);
let name = |r: std::result::Result<&Row, Unlisted>| r.map(|r| r.names.join("; "));
let flat = list_with(&mut tree, &Request::default(), true).unwrap();
// Made for its rows alone, a list keeps no members.
assert!(list(&mut tree, &Request::default()).unwrap().rows.iter().all(|r| r.members.is_empty()));
let cases: &[(&[&str], std::result::Result<&str, Unlisted>)] = &[
(&["Bolt"], Ok("Bolt")),
(&["Bolt", "Nut"], Ok("Bolt")),
(&["Frame"], Ok("Frame")),
(&["Frame", "Plate"], Ok("Frame")),
(&["Frame", "Clip"], Ok("Clip")),
(&["Frame", "Weld kit"], Ok("Frame")),
(&["Frame", "Weld kit", "Rivet"], Ok("Frame")),
(&["Frame", "Weld kit", "Insert"], Ok("Insert")),
(&["Fixture"], Err(Unlisted::Reference)),
(&["Fixture", "Pin"], Err(Unlisted::Reference)),
(&["Set"], Err(Unlisted::NoRow)),
(&["Set", "Screw"], Ok("Screw")),
(&["Sub"], Err(Unlisted::NoRow)),
(&["Sub", "Washer"], Ok("Washer")),
(&[], Err(Unlisted::NoRow)),
(&["Nut"], Err(Unlisted::NotFound)),
];
for (names, found) in cases {
assert_eq!(name(flat.row_of(&tree, &path(names))), found.map(String::from), "{names:?}");
}
assert_eq!(flat.row_of(&tree, &[999]).err(), Some(Unlisted::NotFound));
assert_eq!(flat.row_of(&tree, &vec![at["Bolt"]; 65]).err(), Some(Unlisted::NotFound));
let stands: Vec<(String, Holds)> = flat.rows.iter().map(|r| (r.names.join("; "), r.stands_for)).collect();
let want = [
("Bolt", Holds::All),
("Clip", Holds::All),
("Frame", Holds::AllButPurchased),
("Insert", Holds::All),
("Screw", Holds::Own),
("Washer", Holds::Own),
];
assert_eq!(stands, want.map(|(n, h)| (n.to_string(), h)));
let top = list_with(&mut tree, &view(View::FirstLevel), true).unwrap();
let cases: &[(&[&str], &str)] = &[(&["Sub", "Washer"], "Sub"), (&["Set", "Screw"], "Screw"), (&["Frame", "Clip"], "Frame")];
for (names, found) in cases {
assert_eq!(name(top.row_of(&tree, &path(names))), Ok(found.to_string()), "{names:?}");
}
assert!(top.rows.iter().all(|r| r.stands_for == Holds::All));
let kit = list_with(&mut tree, &folded(View::PartsOnly), true).unwrap();
let sub = kit.row_of(&tree, &path(&["Sub"])).unwrap();
let washer = kit.row_of(&tree, &path(&["Sub", "Washer"])).unwrap();
assert_eq!((sub.names.join(""), sub.stands_for, washer.names.join("")), ("Sub".into(), Holds::All, "Washer".into()));
assert_eq!(washer.key.parents, [sub.key.member]);
}
/// Each placement is counted in one row or none, every view and grouping: the counts, the
/// members and the total agree, and `row_of` finds each member's row.
#[test]
fn every_placement_is_in_one_row_or_none() {
let (mut doc, _) = mixed();
// More of the same: the subassembly and the bolt placed again, the washer twice in the subassembly.
for name in ["Sub", "Bolt"] {
let id = doc.find_component(name).unwrap();
place(&mut doc, id, 0);
}
let (washer, sub) = (doc.find_component("Washer").unwrap(), doc.find_component("Sub").unwrap());
place(&mut doc, washer, sub);
let state = ModelState::default();
let mut tree = Tree::new(&doc, &state);
for v in View::ALL {
for fold in [false, true] {
for group in Group::ALL {
let request = Request { view: v, fold, group, ..Request::default() };
let bom = list_with(&mut tree, &request, true).unwrap();
let deep = bom.rows_deep();
let mut seen: Vec<&Vec<u64>> = deep.iter().flat_map(|(_, r)| &r.members).collect();
assert_eq!(seen.len() as u64, bom.total.occurrences, "{request:?}");
assert!(deep.iter().all(|(_, r)| r.count == r.members.len() as u64), "{request:?}");
seen.sort();
seen.dedup();
assert_eq!(seen.len() as u64, bom.total.occurrences, "a placement in two rows: {request:?}");
for (_, r) in &deep {
for m in &r.members {
assert_eq!(bom.row_of(&tree, m).map(|found| &found.key), Ok(&r.key), "{request:?} {m:?}");
}
}
}
}
}
}
#[test]
fn a_damaged_files_structure_is_listed_or_refused_never_followed_forever() {
let mut doc = Document::default();
let (a, _) = add(&mut doc, "A", 0);
let ghost =
|id, component, parent| Occurrence { id, component, parent, name: format!("{id}"), transform: IDENTITY, grounded: false, bom_type: None };
// An occurrence of a component that isn't there has no row and counts nowhere.
doc.occurrences.push(ghost(900, 999, 0));
assert_eq!(rows(&listed(&doc, Request::default()).unwrap()), [row("1", "A", Normal, 1, 1)]);
// A component placed inside itself: refused at the depth limit, never walked forever.
doc.occurrences.push(ghost(901, a, a));
assert!(listed(&doc, Request::default()).is_err());
// At the first level A is one row, but its material and its mass are what it holds: both walk inside.
assert!(listed(&doc, Request { mass: true, ..view(View::FirstLevel) }).is_err(), "weighing it walks inside");
assert!(listed(&doc, view(View::FirstLevel)).is_err(), "naming its material walks inside");
}
/// Moved from the engine's tests with the rule (it was `row_mass`), now with the reason.
#[test]
fn a_row_has_a_mass_only_when_its_definitions_are_weighed_and_agree() {
let (steel, aluminium, surface, empty): (Weighed, Weighed, Weighed, Weighed) =
(Some((392.5, 1)), Some((6.48, 1)), Some((0.0, 1)), Some((0.0, 0)));
assert_eq!(agree(&[steel, steel]), Mass::Grams(392.5));
assert_eq!(agree(&[steel, aluminium]), Mass::Unknown(Unknown::Differs));
assert_eq!(agree(&[surface, surface]), Mass::Grams(0.0), "a body that weighs nothing (a surface) is weighed");
assert_eq!(agree(&[surface, steel]), Mass::Unknown(Unknown::Differs));
assert_eq!(agree(&[empty]), Mass::Unknown(Unknown::NothingToWeigh), "nothing to weigh");
assert_eq!(agree(&[steel, empty]), Mass::Unknown(Unknown::Differs), "one weighs something, one nothing");
assert_eq!(agree(&[empty, steel]), Mass::Unknown(Unknown::Differs), "whichever comes first");
assert_eq!(agree(&[empty, empty]), Mass::Unknown(Unknown::NothingToWeigh));
assert_eq!(agree(&[None]), Mass::Unknown(Unknown::Unmeasurable), "not measured");
assert_eq!(agree(&[aluminium, None, steel]), Mass::Unknown(Unknown::Unmeasurable), "whichever definition it is");
assert_eq!(agree(&[]), Mass::Unknown(Unknown::NothingToWeigh));
}
/// What a row's part stands for leaves out a reference, and an inseparable part's purchased parts,
/// which its list shows beside it; phantoms and inseparable parts inside are weighed through.
#[test]
fn what_adds_to_a_row_follows_what_it_stands_for() {
for t in BomType::ALL {
assert!(!adds(Holds::Own, t), "{t:?}");
assert_eq!(adds(Holds::All, t), t != Reference, "{t:?}");
assert_eq!(adds(Holds::AllButPurchased, t), !matches!(t, Reference | Purchased), "{t:?}");
}
}
/// `how` applied to the view `request` lists, its numbering saved as the engine saves it; whether
/// anything changed.
fn numbered(doc: &mut Document, request: Request, how: Numbering) -> bool {
let state = ModelState::default();
let Some(numbers) = super::number(&mut Tree::new(doc, &state), &request, how).unwrap() else { return false };
let saved = &mut doc.assembly.item_numbers;
saved.retain(|n| (n.source, n.view) != (numbers.source, numbers.view));
saved.push(numbers);
true
}
/// [`record`] as the engine runs it after a change; whether anything changed.
fn recorded(doc: &mut Document) -> bool {
let state = ModelState::default();
let Some(numbers) = record(&mut Tree::new(doc, &state)) else { return false };
doc.assembly.item_numbers = numbers;
true
}
const RENUMBER: Numbering = Numbering::Renumber { start: 1, step: 1, order: Order::List };
/// Each row, followed by the rows under it: item, names, and its numbering flags as letters
/// (provisional, locked, duplicate).
fn items(bom: &Bom) -> Vec<(String, String, String)> {
bom.rows_deep()
.into_iter()
.map(|(item, r)| {
let flags = [(r.provisional, 'p'), (r.locked, 'l'), (r.duplicate, 'd')].iter().filter(|(on, _)| *on).map(|(_, c)| *c).collect();
(item_text(&item), r.names.join("; "), flags)
})
.collect()
}
fn item(item: &str, names: &str, flags: &str) -> (String, String, String) {
(item.into(), names.into(), flags.into())
}
/// Parts A, B and C at the top, part numbers P1 to P3.
fn three_parts() -> (Document, [(u64, u64); 3]) {
let mut doc = Document::default();
let parts = ["A", "B", "C"].map(|name| add(&mut doc, name, 0));
for (i, (part, _)) in parts.iter().enumerate() {
number(&mut doc, *part, &format!("P{}", i + 1));
}
(doc, parts)
}
#[test]
fn numbering_a_view_saves_its_numbers_and_new_rows_take_the_next() {
let (mut doc, [_, (b, ob), _]) = three_parts();
// Never numbered: positions, provisional, and nothing saved by a change.
let bom = listed(&doc, Request::default()).unwrap();
assert!(!bom.numbered);
assert_eq!(items(&bom), [item("1", "A", "p"), item("2", "B", "p"), item("3", "C", "p")]);
assert!(!recorded(&mut doc), "a design never numbered saves nothing");
assert!(numbered(&mut doc, Request::default(), RENUMBER));
assert!(!numbered(&mut doc, Request::default(), RENUMBER), "the same numbers again change nothing");
let bom = listed(&doc, Request::default()).unwrap();
assert!(bom.numbered);
assert_eq!(items(&bom), [item("1", "A", ""), item("2", "B", ""), item("3", "C", "")]);
// A new part, first by part number: the highest number + 1, listed by it, saved by the next change.
let (d, _) = add(&mut doc, "D", 0);
number(&mut doc, d, "P0");
assert_eq!(items(&listed(&doc, Request::default()).unwrap()).last(), Some(&item("4", "D", "p")));
assert!(recorded(&mut doc));
assert!(!recorded(&mut doc), "saved once");
assert_eq!(items(&listed(&doc, Request::default()).unwrap()).last(), Some(&item("4", "D", "")));
// B removed leaves a gap, and back it has its number again.
doc.occurrences.retain(|o| o.id != ob);
assert_eq!(items(&listed(&doc, Request::default()).unwrap()), [item("1", "A", ""), item("3", "C", ""), item("4", "D", "")]);
assert!(!recorded(&mut doc), "a gap isn't filled");
// Setting another row's number keeps B's: it isn't listed, but it is saved.
assert!(numbered(&mut doc, Request::default(), Numbering::Set { row: vec![1], item: None, locked: Some(true) }));
assert!(numbered(&mut doc, Request::default(), Numbering::Set { row: vec![1], item: None, locked: Some(false) }));
let (e, _) = add(&mut doc, "E", 0);
assert!(recorded(&mut doc));
place(&mut doc, b, 0);
let bom = listed(&doc, Request::default()).unwrap();
assert_eq!(items(&bom), [item("1", "A", ""), item("2", "B", ""), item("3", "C", ""), item("4", "D", ""), item("5", "E", "")]);
assert_eq!(bom.rows.last().map(|r| r.key.member.component), Some(e));
// A renumber closing the gaps in item order, or in the list's order (by part number).
doc.occurrences.retain(|o| o.component != b);
assert!(numbered(&mut doc, Request::default(), Numbering::Renumber { start: 1, step: 1, order: Order::Item }));
assert_eq!(items(&listed(&doc, Request::default()).unwrap()), [item("1", "A", ""), item("2", "C", ""), item("3", "D", ""), item("4", "E", "")]);
assert!(numbered(&mut doc, Request::default(), Numbering::Renumber { start: 10, step: 5, order: Order::List }));
assert_eq!(
items(&listed(&doc, Request::default()).unwrap()),
[item("10", "D", ""), item("15", "A", ""), item("20", "C", ""), item("25", "E", "")]
);
// The renumber forgot B: back, it is new.
place(&mut doc, b, 0);
assert_eq!(items(&listed(&doc, Request::default()).unwrap()).last(), Some(&item("26", "B", "p")));
}
/// A view numbered twice, which only a damaged file has: listing reads the first numbering, and
/// recording drops the second, so a change never lists the view again for it.
#[test]
fn a_view_numbered_twice_keeps_its_first_numbering() {
let (mut doc, _) = three_parts();
assert!(numbered(&mut doc, Request::default(), RENUMBER));
let mut second = doc.assembly.item_numbers[0].clone();
second.items.iter_mut().for_each(|i| i.number += 10);
doc.assembly.item_numbers.push(second);
let first = [item("1", "A", ""), item("2", "B", ""), item("3", "C", "")];
assert_eq!(items(&listed(&doc, Request::default()).unwrap()), first);
assert!(recorded(&mut doc));
assert_eq!(doc.assembly.item_numbers.len(), 1);
assert_eq!(items(&listed(&doc, Request::default()).unwrap()), first);
assert!(!recorded(&mut doc));
}
#[test]
fn a_row_keeps_its_number_through_a_part_number_edit() {
let (mut doc, [(a, _), _, _]) = three_parts();
assert!(numbered(&mut doc, Request::default(), RENUMBER));
number(&mut doc, a, "P9");
assert!(!recorded(&mut doc), "no new row");
assert_eq!(items(&listed(&doc, Request::default()).unwrap()), [item("1", "A", ""), item("2", "B", ""), item("3", "C", "")]);
}
/// The defect the plan names: a renumber with locked rows never gives two rows one number.
#[test]
fn a_renumber_keeps_locked_numbers_and_never_gives_two_rows_one() {
let (mut doc, _) = three_parts();
let (d, _) = add(&mut doc, "D", 0);
number(&mut doc, d, "P4");
// Setting a number numbers the view first; one another row has is marked on both.
assert!(numbered(&mut doc, Request::default(), Numbering::Set { row: vec![3], item: Some(2), locked: Some(true) }));
assert_eq!(
items(&listed(&doc, Request::default()).unwrap()),
[item("1", "A", ""), item("2", "B", "d"), item("2", "C", "ld"), item("4", "D", "")]
);
for (start, step, want) in [(1, 1, ["1", "3", "2", "4"]), (2, 1, ["3", "4", "2", "5"]), (1, 2, ["1", "3", "2", "5"])] {
assert!(numbered(&mut doc, Request::default(), Numbering::Renumber { start, step, order: Order::List }));
let bom = listed(&doc, Request::default()).unwrap();
let by_name: BTreeMap<String, (String, String)> = items(&bom).into_iter().map(|(i, n, f)| (n, (i, f))).collect();
let got: Vec<&str> = ["A", "B", "C", "D"].iter().map(|n| by_name[*n].0.as_str()).collect();
assert_eq!(got, want, "from {start} by {step}");
assert!(bom.rows.iter().all(|r| !r.duplicate), "from {start} by {step}");
assert_eq!(by_name["C"].1, "l");
}
// Unlocked, the next renumber moves it.
assert!(numbered(&mut doc, Request::default(), Numbering::Set { row: vec![2], item: None, locked: Some(false) }));
assert!(numbered(&mut doc, Request::default(), RENUMBER));
assert_eq!(items(&listed(&doc, Request::default()).unwrap()), [item("1", "A", ""), item("2", "B", ""), item("3", "C", ""), item("4", "D", "")]);
}
#[test]
fn all_levels_are_numbered_within_each_parent() {
let mut doc = Document::default();
let (frame, _) = add(&mut doc, "Frame", 0);
let (bolt, _) = add(&mut doc, "Bolt", 0);
number(&mut doc, frame, "F");
number(&mut doc, bolt, "B");
let (beam, _) = add(&mut doc, "Beam", frame);
number(&mut doc, beam, "F1");
let all = view(View::AllLevels);
assert!(numbered(&mut doc, all, RENUMBER));
assert_eq!(items(&listed(&doc, all).unwrap()), [item("1", "Bolt", ""), item("2", "Frame", ""), item("2.1", "Beam", "")]);
// A plate in the frame is the frame's next; the design's parts-only view isn't numbered.
let (plate, _) = add(&mut doc, "Plate", frame);
number(&mut doc, plate, "F0");
assert_eq!(items(&listed(&doc, all).unwrap()).last(), Some(&item("2.2", "Plate", "p")));
assert!(recorded(&mut doc));
assert_eq!(items(&listed(&doc, all).unwrap()).last(), Some(&item("2.2", "Plate", "")));
assert!(!listed(&doc, Request::default()).unwrap().numbered);
// Renumbered in the list's order, each level from the start.
assert!(numbered(&mut doc, all, Numbering::Renumber { start: 5, step: 5, order: Order::List }));
assert_eq!(
items(&listed(&doc, all).unwrap()),
[item("5", "Bolt", ""), item("10", "Frame", ""), item("10.5", "Plate", ""), item("10.10", "Beam", "")]
);
// A component's own list is numbered apart from the design's.
let own = Request { source: frame, ..all };
assert!(!listed(&doc, own).unwrap().numbered);
assert!(numbered(&mut doc, own, RENUMBER));
assert_eq!(items(&listed(&doc, own).unwrap()), [item("1", "Plate", ""), item("2", "Beam", "")]);
assert_eq!(items(&listed(&doc, all).unwrap())[2], item("10.5", "Plate", ""));
}
/// A numbering keeps the list options it was made with: the next change saves the rows they list.
/// A list with other options reads the same numbers by row, the rest provisional.
#[test]
fn a_numbering_keeps_its_list_options_and_other_lists_read_its_numbers() {
let (mut doc, [_, (b, _), _]) = three_parts();
number(&mut doc, b, "P1");
let by_definition = Request { group: Group::Definition, ..Request::default() };
assert!(numbered(&mut doc, Request::default(), RENUMBER));
assert_eq!(items(&listed(&doc, Request::default()).unwrap()), [item("1", "A; B", ""), item("2", "C", "")]);
assert_eq!(items(&listed(&doc, by_definition).unwrap()), [item("1", "A", ""), item("2", "C", ""), item("3", "B", "p")]);
assert!(!recorded(&mut doc), "the numbering lists by part number: nothing new");
assert!(numbered(&mut doc, by_definition, Numbering::Set { row: vec![3], item: Some(7), locked: None }));
let saved = &doc.assembly.item_numbers;
assert_eq!((saved.len(), saved[0].group), (1, Group::Definition), "one numbering a view, with the options last used");
assert_eq!(items(&listed(&doc, by_definition).unwrap()), [item("1", "A", ""), item("2", "C", ""), item("7", "B", "")]);
}
#[test]
fn numbers_are_refused_outside_their_range_and_rows_are_found_as_shown() {
let (mut doc, _) = three_parts();
let refused = |doc: &mut Document, how: Numbering| {
let state = ModelState::default();
super::number(&mut Tree::new(doc, &state), &Request::default(), how).unwrap_err().to_string()
};
for (start, step) in [(0, 1), (1, 0), (MAX_ITEM + 1, 1)] {
assert!(refused(&mut doc, Numbering::Renumber { start, step, order: Order::List }).contains("1 to 999999"), "{start} by {step}");
}
assert!(refused(&mut doc, Numbering::Renumber { start: MAX_ITEM - 1, step: 1, order: Order::List }).contains("passes 999999"));
assert!(refused(&mut doc, Numbering::Renumber { start: 1, step: MAX_ITEM, order: Order::List }).contains("passes 999999"));
assert!(refused(&mut doc, Numbering::Set { row: vec![4], item: Some(1), locked: None }).contains("item 4"));
assert!(refused(&mut doc, Numbering::Set { row: vec![1, 1], item: Some(1), locked: None }).contains("item 1.1"));
assert!(refused(&mut doc, Numbering::Set { row: vec![1], item: Some(0), locked: None }).contains("1 to 999999"));
assert!(doc.assembly.item_numbers.is_empty(), "nothing saved");
// The highest number is taken; a renumber that would pass it is refused whole.
assert!(numbered(&mut doc, Request::default(), Numbering::Renumber { start: MAX_ITEM - 2, step: 1, order: Order::List }));
assert_eq!(listed(&doc, Request::default()).unwrap().rows.last().map(|r| r.item), Some(MAX_ITEM));
}
/// A damaged file's numbers: one out of range is no number, and of a key saved twice the first
/// holds. A component's numbering goes with it.
#[test]
fn saved_numbers_are_read_leniently_and_go_with_their_component() {
let (mut doc, [(a, _), (b, _), (c, _)]) = three_parts();
let key = |component| RowKey { parents: vec![], member: Member { component, bom_type: Normal } };
let saved = |key, number| ItemNumber { key, number, locked: false };
doc.assembly.item_numbers.push(ItemNumbers {
source: 0,
view: View::PartsOnly,
group: Group::PartNumber,
fold: false,
purchased_contents: false,
items: vec![saved(key(a), 4), saved(key(a), 9), saved(key(b), 0), saved(key(c), MAX_ITEM + 1)],
});
assert_eq!(items(&listed(&doc, Request::default()).unwrap()), [item("4", "A", ""), item("5", "B", "p"), item("6", "C", "p")]);
let (sub, _) = add(&mut doc, "Sub", 0);
add(&mut doc, "Inner", sub);
assert!(numbered(&mut doc, Request { source: sub, ..Request::default() }, RENUMBER));
assert_eq!(doc.assembly.item_numbers.len(), 2);
doc.components.retain(|c| c.id != sub);
doc.occurrences.retain(|o| o.component != sub && o.parent != sub);
assert!(recorded(&mut doc));
assert_eq!(doc.assembly.item_numbers.iter().map(|n| n.source).collect::<Vec<_>>(), [0], "the design's is kept");
}
/// Numbers are saved in the design under `assembly.item_numbers`, and change no geometry.
#[test]
fn item_numbers_are_saved_and_are_part_properties() {
let (mut doc, _) = three_parts();
let before = doc.clone();
assert!(numbered(&mut doc, Request { fold: true, ..view(View::AllLevels) }, RENUMBER));
assert!(doc.differs_only_in_part_properties(&before));
assert!(!doc.differs_only_in_part_properties(&doc.clone()), "no change is no part-properties change");
let json = serde_json::to_value(&doc.assembly).unwrap();
let first = &json["item_numbers"][0];
assert_eq!(
(&first["source"], &first["levels"], &first["group_by"], &first["group_children"]),
(&json!(0), &json!("all"), &json!("part_number"), &json!(true))
);
assert_eq!(first["items"][0], json!({"member": {"component": doc.components[0].id, "bom_type": "normal"}, "number": 1}));
// Through the whole design, as a save writes it: a design whose assembly holds only numbers keeps them.
assert_eq!(Document::from_json(&doc.to_json()).unwrap().assembly, doc.assembly);
assert!(serde_json::to_value(&before.assembly).unwrap().get("item_numbers").is_none(), "a design never numbered saves nothing new");
}
#[test]
fn a_quantity_is_pieces_or_a_length_with_the_designs_parameters() {
let mut doc = Document::default();
doc.set_param("span", "100", Some("mm"), None).unwrap();
doc.set_param("packs", "3", Some(""), None).unwrap();
let amount = |text: &str| super::amount(&doc, text);
assert_eq!(amount("4").unwrap(), Amount::Pieces(4.0));
assert_eq!(amount("packs * 4").unwrap(), Amount::Pieces(12.0));
assert_eq!(amount("2.5 m").unwrap(), Amount::Length(2500.0));
assert_eq!(amount("10 in").unwrap(), Amount::Length(254.0));
assert_eq!(amount("2 * span + 50").unwrap(), Amount::Length(250.0), "a bare number beside a length is mm");
let refused = |text: &str| amount(text).unwrap_err().to_string();
assert!(refused("90 deg").contains("a number of pieces or a length"), "{}", refused("90 deg"));
assert!(refused("span * span").contains("not supported yet: area"));
for mass_or_volume in ["span^3", "50 g", "0.5 kg", "2 lb", "500 ml"] {
assert!(refused(mass_or_volume).contains("not supported yet: mass and volume"), "{mass_or_volume}: {}", refused(mass_or_volume));
}
for out_of_range in ["0", "-1", "-2 m", "1e9 + 1", "1001 km"] {
assert!(refused(out_of_range).contains("above 0"), "{out_of_range}: {}", refused(out_of_range));
}
assert_eq!(amount("1e9").unwrap(), Amount::Pieces(1e9), "the cap itself");
assert!(refused("cable_length").contains("unknown parameter `cable_length`"));
assert!(amount("").is_err() && amount("2 *").is_err());
}
#[test]
fn a_rows_quantity_adds_up_its_placements() {
let mut doc = Document::default();
doc.set_param("cable_length", "2.5", Some("m"), None).unwrap();
let (cable, _) = add(&mut doc, "Cable", 0);
set(&mut doc, cable, "bom_quantity", "cable_length");
place(&mut doc, cable, 0);
place(&mut doc, cable, 0);
let (pack, _) = add(&mut doc, "Pack", 0);
set(&mut doc, pack, "bom_quantity", "4");
place(&mut doc, pack, 0);
add(&mut doc, "Plate", 0);
// Two definitions of one part number: one with a length, one a piece.
let (hose, _) = add(&mut doc, "Hose", 0);
let (hose_b, _) = add(&mut doc, "Hose B", 0);
number(&mut doc, hose, "H-1");
number(&mut doc, hose_b, "H-1");
set(&mut doc, hose, "bom_quantity", "500 mm");
// A subassembly placed twice holding the pack once.
let (kit, _) = add(&mut doc, "Kit", 0);
place(&mut doc, kit, 0);
place(&mut doc, pack, kit);
let quantities = |doc: &Document, request: Request| -> Vec<(String, Quantity)> {
listed(doc, request).unwrap().rows_deep().into_iter().map(|(_, r)| (r.names.join("; "), r.quantity)).collect()
};
let q = quantities(&doc, view(View::PartsOnly));
let of = |q: &[(String, Quantity)], name: &str| q.iter().find(|(n, _)| n == name).map(|(_, q)| *q);
assert_eq!(of(&q, "Cable"), Some(Quantity::Length(7500.0)), "{q:?}");
assert_eq!(of(&q, "Pack"), Some(Quantity::Pieces(16.0)), "two of its own and one in each kit: {q:?}");
assert_eq!(of(&q, "Plate"), Some(Quantity::Count));
assert_eq!(of(&q, "Hose; Hose B"), Some(Quantity::Unknown(Uncounted::Mixed)));
// The kit's row in the top level; its own pack listed under it in all levels.
let q = quantities(&doc, view(View::AllLevels));
assert_eq!(q.iter().filter(|(n, _)| n == "Pack").map(|(_, q)| *q).collect::<Vec<_>>(), [Quantity::Pieces(8.0), Quantity::Pieces(8.0)], "{q:?}");
// A placement without a quantity beside packs counts one piece: a box of 4 and a loose one.
let (boxed, _) = add(&mut doc, "Box", 0);
let (loose, _) = add(&mut doc, "Loose", 0);
number(&mut doc, boxed, "K-1");
number(&mut doc, loose, "K-1");
set(&mut doc, boxed, "bom_quantity", "4");
assert_eq!(of(&quantities(&doc, view(View::PartsOnly)), "Box; Loose"), Some(Quantity::Pieces(5.0)));
// A parameter deleted (a damaged file): that row is unknown, the list still works.
doc.params.retain(|p| p.name != "cable_length");
let q = quantities(&doc, view(View::PartsOnly));
assert_eq!(of(&q, "Cable"), Some(Quantity::Unknown(Uncounted::Invalid)));
assert_eq!(of(&q, "Pack"), Some(Quantity::Pieces(16.0)));
}
#[test]
fn a_virtual_component_holding_something_is_named() {
let mut doc = Document::default();
let (grease, _) = add(&mut doc, "Grease", 0);
let (frame, _) = add(&mut doc, "Frame", 0);
let (bolt, _) = add(&mut doc, "Bolt", frame);
assert!(doc.virtual_holding().is_empty());
set_virtual(&mut doc, grease);
assert!(doc.virtual_holding().is_empty(), "an empty virtual component holds nothing");
place(&mut doc, bolt, grease);
assert_eq!(doc.virtual_holding(), [grease]);
set_virtual(&mut doc, frame);
assert_eq!(doc.virtual_holding(), [grease, frame]);
}
fn set_virtual(doc: &mut Document, component: u64) {
doc.components.iter_mut().find(|c| c.id == component).unwrap().metadata.0.insert("virtual".into(), json!(true));
}
#[test]
fn a_quantity_uses_its_parameters_as_any_expression_does() {
let mut doc = Document::default();
doc.set_param("span", "100", Some("mm"), None).unwrap();
let (cable, _) = add(&mut doc, "Cable", 0);
set(&mut doc, cable, "bom_quantity", "2 * span");
assert_eq!(doc.param_users("span"), [crate::ParamUser::Quantity { component: cable, name: "Cable".into() }]);
assert!(doc.remove_param("span").unwrap_err().to_string().contains("component Cable (quantity)"));
assert_eq!(doc.rename_param("span", "width").unwrap(), 1);
assert_eq!(doc.components[0].metadata.bom_quantity(), Some("2 * width"));
assert_eq!(amount(&doc, "2 * width").unwrap(), Amount::Length(200.0));
}
+6 -3
View File
@@ -11,6 +11,9 @@ pub(crate) fn shell_plane_family(planes: impl IntoIterator<Item = Option<solidcr
first.origin.is_finite() && first.x.is_finite() && first.y.is_finite() && planes.all(|plane| plane == Some(first))
}
/// The longest face or edge name a saved model reference keeps, in bytes.
pub const MAX_REFERENCE_NAME_BYTES: usize = 512;
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct ConfigFaceTarget {
@@ -37,7 +40,7 @@ impl ConfigFaceTarget {
if self.body.is_empty()
|| self.body.len() > 128
|| self.name.is_empty()
|| self.name.len() > 512
|| self.name.len() > MAX_REFERENCE_NAME_BYTES
|| self.origin_feature == 0
|| [self.point.x, self.point.y, self.point.z].iter().any(|v| !v.is_finite() || v.abs() > 1e9)
{
@@ -52,7 +55,7 @@ pub fn validate_face_target_json(target: &Value) -> Result<()> {
if !(4..=5).contains(&fields.len())
|| fields.keys().any(|key| !["body", "origin_feature", "name", "point", "certificate"].contains(&key.as_str()))
|| fields.get("body").and_then(Value::as_str).is_none_or(|body| body.is_empty() || body.len() > 128)
|| fields.get("name").and_then(Value::as_str).is_none_or(|name| name.is_empty() || name.len() > 512)
|| fields.get("name").and_then(Value::as_str).is_none_or(|name| name.is_empty() || name.len() > MAX_REFERENCE_NAME_BYTES)
|| fields.get("origin_feature").and_then(Value::as_u64).is_none_or(|id| id == 0)
|| fields.get("point").and_then(Value::as_array).is_none_or(|point| {
point.len() != 3 || point.iter().any(|value| value.as_f64().is_none_or(|value| !value.is_finite() || value.abs() > 1e9))
@@ -90,7 +93,7 @@ pub fn validate_styles_json(value: &Value) -> Result<()> {
if !certificate.is_null()
&& (face.get("strict_name").and_then(Value::as_bool) != Some(true)
|| face.get("body").and_then(Value::as_str).is_none_or(|body| body.is_empty() || body.len() > 128)
|| face.get("name").and_then(Value::as_str).is_none_or(|name| name.is_empty() || name.len() > 512)
|| face.get("name").and_then(Value::as_str).is_none_or(|name| name.is_empty() || name.len() > MAX_REFERENCE_NAME_BYTES)
|| face.get("point").and_then(Value::as_array).is_none_or(|point| {
point.len() != 3 || point.iter().any(|value| value.as_f64().is_none_or(|value| !value.is_finite() || value.abs() > 1e9))
}))
+29 -11
View File
@@ -204,7 +204,7 @@ fn edge_circle(b: &ModelBody, index: usize, pts: &[Vec3]) -> Option<(Vec3, Vec3)
}
/// The most edge names a vertex reference keeps.
const MAX_VERTEX_EDGES: usize = 16;
pub(crate) const MAX_VERTEX_EDGES: usize = 16;
/// Where the edges named `names` meet: the end every one of them has, nearest `at` (two edges
/// between the same two vertices share both). `None` when an edge is gone or they share no end.
@@ -227,17 +227,32 @@ fn named_vertex(st: &ModelState, at: Vec3, names: &[String]) -> Option<Vec3> {
})
})
.collect::<Option<_>>()?;
let (first, rest) = ends.split_first()?;
let tol = |p: Vec3| 1e-6 * (1.0 + p.len());
first
.iter()
.copied()
.filter(|p| p.is_finite() && rest.iter().all(|e| e.iter().any(|q| q.dist(*p) <= tol(*p))))
.min_by(|p, q| p.dist(at).total_cmp(&q.dist(at)))
shared_ends(&ends).into_iter().min_by(|p, q| p.dist(at).total_cmp(&q.dist(at)))
}
/// How near two points of a body are the same point: a millionth of their distance from the
/// origin, and at least a millionth of a millimetre.
pub(crate) fn point_tolerance(p: Vec3) -> f64 {
1e-6 * (1.0 + p.len())
}
/// Where edges meet: the ends in `ends[0]` that every other list in `ends` has too (to
/// [`point_tolerance`]), each once. Empty when they share none.
pub(crate) fn shared_ends<E: AsRef<[Vec3]>>(ends: &[E]) -> Vec<Vec3> {
let tol = point_tolerance;
let Some((first, rest)) = ends.split_first() else { return Vec::new() };
let mut shared: Vec<Vec3> = Vec::new();
for p in first.as_ref().iter().copied() {
let everywhere = rest.iter().all(|e| e.as_ref().iter().any(|q| q.dist(p) <= tol(p)));
if p.is_finite() && everywhere && !shared.iter().any(|q| q.dist(p) <= tol(p)) {
shared.push(p);
}
}
shared
}
/// A polyline that is straight: its line.
fn as_line(pts: &[Vec3]) -> Option<(Vec3, Vec3)> {
pub(crate) fn as_line(pts: &[Vec3]) -> Option<(Vec3, Vec3)> {
let (a, b) = (*pts.first()?, *pts.last()?);
let d = (b - a).normalized()?;
let len = (b - a).len();
@@ -245,7 +260,7 @@ fn as_line(pts: &[Vec3]) -> Option<(Vec3, Vec3)> {
}
/// A polyline on a circle: (centre, unit normal, radius).
fn as_circle(pts: &[Vec3]) -> Option<(Vec3, Vec3, f64)> {
pub(crate) fn as_circle(pts: &[Vec3]) -> Option<(Vec3, Vec3, f64)> {
let n = pts.len();
if n < 4 {
return None;
@@ -344,10 +359,13 @@ fn model_line(st: &ModelState, g: &GeoRef) -> Result<(Vec3, Vec3)> {
_ => Err(bad("the face is not a cylinder, cone or torus")),
}
}
_ => Err(bad("pick a straight or circular edge, or a cylinder, cone or torus face")),
_ => Err(bad(MODEL_AXIS_REFS)),
}
}
/// What [`model_axis`] says about a reference that is neither an edge nor a face.
pub const MODEL_AXIS_REFS: &str = "pick a straight or circular edge, or a cylinder, cone or torus face";
/// The axis a feature turns about when an edge or face of the model is picked for it (a revolve,
/// a circular pattern, a plane at an angle), as [`model_line`] finds it. The direction is
/// oriented the same way however the edge or surface runs (its largest component positive), so
+34 -15
View File
@@ -1,30 +1,31 @@
//! The existing length display policy, shared by windowed and headless consumers.
//!
//! Values are stored in millimetres and displayed in the five design units. Unknown unit
//! names retain the millimetre fallback; expression units have a separate, broader vocabulary.
//! These functions format values, not validate them: non-finite inputs retain Rust's `NaN`,
//! `inf` and `-inf` text. Callers that require finite measurements must validate them first.
//! Values are stored in millimetres and displayed in any length unit of the expression unit table
//! ([`UNITS`]): a design's five units and the others a drawing may give its measurements in. One
//! table for both, so every length unit a design or a drawing accepts shows its own numbers. Other
//! names retain the millimetre fallback. These functions format values, not validate them:
//! non-finite inputs retain Rust's `NaN`, `inf` and `-inf` text. Callers that require finite
//! measurements must validate them first.
use serde::{Deserialize, Serialize};
use crate::expr::{Kind, UNITS};
use crate::{DocError, Result, expr};
/// Units per millimetre and the unit's name. Unknown names use millimetres.
/// Units per millimetre and the unit's name, for a length unit of [`UNITS`]. Other names use
/// millimetres.
pub fn unit_scale(units: &str) -> (f64, &'static str) {
match units {
"cm" => (0.1, "cm"),
"m" => (0.001, "m"),
"in" => (1.0 / 25.4, "in"),
"ft" => (1.0 / 304.8, "ft"),
_ => (1.0, "mm"),
match UNITS.iter().find(|(name, kind, _)| *name == units && *kind == Kind::Length) {
Some(&(name, _, mm)) => (1.0 / mm, name),
None => (1.0, "mm"),
}
}
/// Inch labels retain a meaningful fourth digit without promoting floating-point noise.
/// `value` is already converted to the requested display unit, not a millimetre value.
/// Inch labels (`in` or `inch`) retain a meaningful fourth digit without promoting floating-point
/// noise. `value` is already converted to the requested display unit, not a millimetre value.
pub fn length_precision(value: f64, units: &str, decimals: u8) -> usize {
let base = usize::from(decimals.min(8));
if units != "in" {
if unit_scale(units).0 != unit_scale("in").0 {
return base;
}
let needs_four = ((value * 10_000.0).round() - (value * 1000.0).round() * 10.0).abs() >= 0.5;
@@ -182,6 +183,7 @@ fn grouped_digits(text: &mut String, digits: &str, integer: bool, groups: bool)
#[cfg(test)]
mod tests {
use super::{format_length, length_number, length_precision, unit_scale};
use crate::expr::{Kind, UNITS};
#[test]
fn all_design_units_keep_bare_and_suffixed_labels() {
@@ -245,9 +247,26 @@ mod tests {
assert_eq!(format_length(-0.0, "in", 2), "-0.000 in");
}
#[test]
fn every_length_unit_shows_its_own_numbers() {
// Each length unit of the expression table, which a design's units and a drawing's unit
// come from, never millimetres unless it is millimetres.
for &(name, kind, mm) in UNITS {
if kind != Kind::Length {
continue;
}
assert_eq!(unit_scale(name), (1.0 / mm, name), "{name}");
let bare = if matches!(name, "in" | "inch") { "12.500" } else { "12.50" };
assert_eq!(length_number(12.5 * mm, name, 2), bare, "{name}");
assert_eq!(format_length(12.5 * mm, name, 2), format!("{bare} {name}"), "{name}");
}
assert_eq!(length_number(25.4 * 1.2345, "inch", 0), "1.2345");
}
#[test]
fn unknown_display_units_keep_the_millimetre_fallback() {
for units in ["", "inch", " in ", "IN", "unsupported"] {
// Names that aren't a length unit of the expression table, angles included.
for units in ["", " in ", "IN", "unsupported", "deg", "rad"] {
assert_eq!(unit_scale(units), (1.0, "mm"), "{units}");
assert_eq!(length_number(25.4, units, 2), "25.40", "{units}");
assert_eq!(format_length(25.4, units, 2), "25.40 mm", "{units}");

Some files were not shown because too many files have changed in this diff Show More