5 Commits
Author SHA1 Message Date
matthewtrahan c5e6ab0ae6 ui: plates, all on screen -- the plates sit side by side in one row (ui/plateview.js), each with its bed and a Plate N label, the ones not being edited showing their part and fins dimmed; a click on a plate in the view or on its tab edits it and the camera glides there; See all pulls back over the row. Deleting a plate or removing a model shows Undo for 10 s before anything is freed; Export all writes one .zip of 3MFs; each plate keeps its section cut and Suggest list 2026-10-18 13:28:24 -05:00
Lucas PoentesandClaude Opus 5.5 5876d85629 i18n (pt-BR): route the remaining hard-coded UI text through t() -- readout, picker, recaps, tooltips
About 100 messages never reached the dictionary: written in English in the code, or on elements
without a data-i18n / data-i18n-title hook, so Portuguese showed them in English. 97 now go through
t()/tn() (107 keys, 10 singular/plural pairs) and pt.js has them: the Fins readout and selected-wall
line, the 3MF/STEP object picker, the section recaps and timings, the hookless tooltips and labels,
and the Draw / sway refusal reasons (translated where shown, so draw.js and sway.js stay free of UI
i18n, as orient.js after #222). de.js is untouched; the hooks are language-neutral, so the 33 strings
de.js already has will show in German too.

English is unchanged: every converted template rendered old vs new at n = 1, 2, 7 (104 cases,
identical), and in Chromium the English page matches main in every state checked. Strings that keep
their English grammar ("1 tines", "The 1 prop sit") keep it on purpose. deno test -A: 533 passed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 15:29:36 -05:00
Haititeiandmatthewtrahan 9d712ddbee feat: Full German localization (UI, tooltips, and dynamic status readouts) (#184)
* Translate plugin installation steps, complete sway reason and overhangs zero-state

* feat(i18n): vollständige deutsche Übersetzung für UI, Tooltips und Statusmeldungen

* i18n: Update German translation for updated PETG material tooltip

* i18n: Tooltips für Haltezacken und Stützrippen übersetzt

* Update dynamic readouts and notes reactively on languagechange

* Local adjustments to index.html before upstream merge

* Refine German translations for calibration test prints

* Align bed-pad auto label with options schema to pass CI tests

* Restore selected attribute on bed-pad auto option to match schema default

* i18n: English stays the default until the language picker ships -- German is opt-in by ?lang=de, no browser-language detection yet (restores main's de88eef)

---------

Co-authored-by: matthewtrahan <mathyout@pm.me>
2026-10-08 21:26:43 -05:00
matthewtrahan db082ec27e ui: move the part out of app.js into ui/part.js (#22)
setPart, shade, the flat baseline, readable Euler angles, the stats report,
updateFit, lastResult and the overhang threshold input move byte-for-byte,
with part / partName / topology / rotM3 / analysisTiming. setPart disarms
lay-flat through setLayPlacing(false). app.js exports gizmo and hoverFace
for part.js until the pose moves out; every ui module now imports the part
names from part.js.
2026-09-25 16:24:30 -05:00
matthewtrahan 5fb53f6991 ui: move build volume and export out of app.js into ui/volume.js + ui/export.js (#22)
Pure move. volume.js owns the preset/custom select, the remembered size and
applyVolume(); updateFit() reads it through currentVolume(). export.js owns
buildExportGeometry() and the STL/3MF buttons, reading part, topology,
lastResult, rotM3, partName and activeAdded from app.js (now exported;
temporary back-imports until those move out).
2026-09-25 08:24:03 -05:00