Commit Graph
742 Commits
Author SHA1 Message Date
Lam Wei Lun 4c8e851b46 Direct name matching for filament import flow fixed. Merge main and conflicts resolved 2026-08-20 14:44:40 +08:00
Ian Bassi f5f3d2221d AI Translation update (#15300) 2026-08-19 14:47:34 -03:00
Lam Wei Lun 2e0ef11b0f Merge from main and fix merge conflicts 2026-08-19 16:16:21 +08:00
Lam Wei Lun 1b770e8638 Bug fixes and test cases for import filament of published 3MF. Update translations 2026-08-19 15:47:28 +08:00
GlauTechandIan Bassi 6a52ea1818 Update OrcaSlicer_tr.po (#15119)
* Update OrcaSlicer_tr.po

* Update OrcaSlicer_tr.po

Fixed inaccurate AI-generated text and updated missing translations.

* REmoive # AI Translated

---------

Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
2026-08-18 10:51:40 -03:00
Lam Wei Lun 36a8811cc0 Change label to "Publish 3MF..." 2026-08-18 16:29:27 +08:00
Lam Wei Lun eaaffd2706 Merge from main 2026-08-17 13:03:29 +08:00
Alexandre Folle de Menezes 728cf63c3d Verify and improve AI pt_BR translations (#15261) 2026-08-15 12:54:00 -03:00
Lam Wei Lun b280ab555c Initial Commit for Publish Settings workflow 2026-08-14 10:49:49 +08:00
Terasit Juntarasombut 6dbdb1d07e l10n: Fix contextual and technical translation errors in Thai (th) (#15213)
* l10n: Fix contextual and technical translation errors in Thai (th)

* l10n(th): standardize technical terms and sync localization glossary (#15213)

* l10n(th): remove localization_glossary.tsv from PR (#15213)
2026-08-11 16:56:59 -03:00
Ian Bassi c5d2944ee0 Euskera update (#15215)
Based in https://github.com/OrcaSlicer/OrcaSlicer/pull/14970#issuecomment-5145928650
2026-08-11 09:54:37 -03:00
Felix14_v2 b3296fa199 Review AI changes in Russian localization (#15092)
* Review AI changes

* Part 2

* Part 3

* Part 4

God bless Ian Alexis

* Part 5

* Final part!

* Catches by Gemma

This 6-minute check probably saved me a week

* Tweak

* Update OrcaSlicer_ru.po
2026-08-07 12:03:53 -03:00
Surfoo 6d9a9eeb04 i18n(fr): improve French localization quality and consistency. (#15106) 2026-08-07 09:31:57 -03:00
Alexandre Folle de Menezes b5412221b6 Verify and improve AI pt_BR translations (#15080) 2026-08-07 09:22:42 -03:00
Kiss Lorand f444176df8 Fix Windows crash after using "Replace all with 3D files" (#15102)
Fix Windows crash in Replace all with 3D file

Keep the replacement result message as wxString and substitute the volume
name directly.

On Windows, wxString::ToStdString() cannot encode the Unicode status icon
through the active ANSI code page and returns an empty string. Passing that
empty string to boost::format with a volume-name argument throws
boost::too_many_args and exits OrcaSlicer.
2026-08-07 17:13:25 +08:00
GlauTech abb2ab8d3f Update OrcaSlicer_tr.po (#15060) 2026-08-01 23:26:26 +03:00
Kiss Lorand 54dc5a2f1d Hungarian localization overhaul (#15024) 2026-07-30 15:08:04 -03:00
Ian Bassi 58bad17af9 AI translation update (#15018) 2026-07-29 18:09:32 -03:00
47ccca7f72 Full Orca translation via AI (tagged) (#14970)
Co-authored-by: Felix14_v2 <75726196+Felix14-v2@users.noreply.github.com>
Co-authored-by: π² <189209038+pi-squared-studio@users.noreply.github.com>
2026-07-27 19:31:33 -03:00
Alexandre Folle de Menezes ed86efcf56 Improve and complement pt-BR translation (#14963) 2026-07-26 12:59:24 -03:00
Ian Bassi d6cb667b89 Localization refactor pt 2 (#14907) 2026-07-24 09:41:24 -03:00
Felix14_v2andπ² 5c4e7c8d0b More updates for Russian localization (#14876)
Co-authored-by: π² <189209038+pi-squared-studio@users.noreply.github.com>
2026-07-23 13:48:58 -03:00
Alexandre Folle de Menezes 607648c61f Improve and complement ptBR translation (#14847) 2026-07-22 20:53:44 -03:00
Nathan b118c03830 locales: update Traditional Chinese translation terminology (#14889) 2026-07-22 14:16:45 -03:00
Neko.vecter 0ff966c9b7 i18n: v2.4.2-zh-cn (#14896) 2026-07-22 14:12:17 -03:00
mgoioganaandIan Bassi 205734ddb1 Basque language updated (#14863)
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
2026-07-20 12:53:25 -03:00
Ian Bassi 662c0a36ce Update localizations (#14867) 2026-07-20 10:44:37 -03:00
Alexandre Folle de Menezes b7a6583eea Fix punctuation, spacing and uppercasing issues (#14848) 2026-07-20 09:47:33 -03:00
Ian Bassiandsharanchius a6226ba9cb Localization update (#14822)
Co-authored-by: sharanchius <41115839+sharanchius@users.noreply.github.com>
2026-07-17 15:46:28 -03:00
mgoiogana e86913266b Add Basque (eu) localization (#14782) 2026-07-17 15:27:44 -03:00
Andrij MizykandIan Bassi 9020b61e9f Update Ukrainian translation (#14819)
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
2026-07-17 15:11:40 -03:00
Alexandre Folle de MenezesandIan Bassi 979e56f1d0 Standardize the Unicode chars for unit strings (#14631)
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
2026-07-16 17:37:09 -03:00
Heiko Liebscher 671277b381 Update German (de) translation (#14577) 2026-07-16 09:11:09 -03:00
SoftFever 0849c44ae0 Merge branch 'main' into dev/ams-heat 2026-07-15 19:45:27 +08:00
Ian Bassi 1889ffb22a Localization: Improve bot + Update po files (#14748) 2026-07-14 16:03:15 -03:00
Noisyfox 246f2d32bf Merge branch 'main' into dev/ams-heat
# Conflicts:
#	src/libslic3r/Preset.cpp
#	src/libslic3r/PrintConfig.hpp
#	src/slic3r/GUI/DeviceCore/CMakeLists.txt
#	src/slic3r/GUI/DeviceCore/DevDefs.h
#	src/slic3r/GUI/DeviceCore/DevFilaSystem.cpp
#	src/slic3r/GUI/DeviceCore/DevFilaSystem.h
#	src/slic3r/GUI/DeviceCore/DevUtilBackend.cpp
#	src/slic3r/GUI/DeviceCore/DevUtilBackend.h
#	src/slic3r/GUI/DeviceManager.cpp
#	src/slic3r/GUI/DeviceManager.hpp
#	src/slic3r/GUI/SelectMachine.cpp
#	src/slic3r/GUI/SelectMachine.hpp
2026-07-14 10:10:19 +08:00
SoftFever 74813b401f Merge remote-tracking branch 'origin/main' into feature/h2c_support_clean
# Conflicts:
#	localization/i18n/fr/OrcaSlicer_fr.po
#	localization/i18n/list.txt
2026-07-14 02:54:20 +08:00
foXaCe ec96ca17b8 i18n(fr): align walls with the glossary and complete the catalog (#14623) 2026-07-13 13:52:33 -03:00
Alexandre Folle de Menezes 174f043f67 Changes in pt-BR to conform to the translation Glossary (#14629) 2026-07-13 13:17:57 -03:00
Alexandre Folle de MenezesandIan Bassi 3395d87240 pt-BR translation fixes after added context (#14679)
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
2026-07-13 13:17:15 -03:00
Felix14_v2 32216dc931 Update OrcaSlicer_ru.po (#14745) 2026-07-13 12:35:30 -03:00
foXaCe c41e685a69 i18n: wrap hardcoded GUI strings (undo/redo labels, dialogs, notifications) + FR (#14729) 2026-07-13 12:19:33 -03:00
Noisyfox 49282858a4 Merge branch 'main' into dev/ams-heat 2026-07-13 14:43:45 +08:00
Rodrigo Faselli 79aa0bd4a2 Merge branch 'main' into feature/h2c_support_clean 2026-07-12 22:00:40 -03:00
SoftFever 30aa7d9557 feat(gui): warn when the hotend rack inventory falls short of the sliced plate
Follow-up to the rack-aware pre-print checks: after the blocking checks
pass, warn (without disabling Send) when the plate needs more matching
hotends than the rack printer currently holds - suggesting rack setup,
a nozzle info refresh, or a re-slice to avoid filament waste - or when
the only matches rely on unreliable nozzle information.

Text-only warning rows; this message board has no refresh or
don't-show-again buttons.
2026-07-13 00:55:52 +08:00
SoftFever 2fecfc291f fix(gui): rack-aware pre-print nozzle checks in the send dialog
A print sliced for a nozzle that sits in the hotend rack (but is not
mounted) was blocked by the send dialog's mounted-nozzle diameter check,
even though the printer fetches the required nozzle itself (#14685).

Consolidate the three mounted-nozzle gates (_is_nozzle_data_valid,
is_nozzle_type_match, _is_same_nozzle_diameters) into a single
CheckErrorExtruderNozzleWithSlicing fed by s_get_slicing_extuder_nozzles,
which collects the plate's per-extruder nozzle requirements (hybrid
extruders contribute one entry per used sub-nozzle flow). The rack
extruder validates against its whole inventory (mounted + rack) with
guidance to calibrate the rack, refresh nozzle info, or re-slice, and
blocks when toolhead + rack are full (no free slot to stow a nozzle).
Other extruders keep the validity/flow/diameter checks against the
mounted nozzle.

Also add CheckErrorRackStatus, which holds Send while the printer is
still reading the rack hotend information, and judge material hardness
for the rack extruder per dispatch-mapped nozzle as a non-blocking
caution (mounted nozzles keep the blocking gate).
2026-07-13 00:55:16 +08:00
Ian Bassi 7e2047aa30 Rename align_infill_direction_to_model (#14734) 2026-07-12 12:29:54 -03:00
SoftFever 75c8d0775a feat(gui): per-filament nozzle volume selection and persistence
- FilamentMapDialog's manual page understands volume types: a mixed
  (Hybrid) extruder shows separate Standard / High Flow drop zones
  with live sub-nozzle counts, a validation timer with an inline
  error + "set nozzle count" suggestion, and composes a per-filament
  volume map on OK (persisted to the plate or globally)
- switching an extruder's Flow type rewrites the affected plate map
  entries; plate maps stay sized across filament add/delete/count
  changes (values keep their filament, no index shift)
- CLI: manual mapping on multi-nozzle printers synthesizes the volume
  map from extruder flow types when absent; nozzle-manual mode
  requires explicit maps; computed maps land on the plate so exported
  projects carry filament_volume_maps
- filament_nozzle_map joins the project options (selection seeding +
  filament-count resizing)
- pot entries for the new dialog strings

All 19 reference fixtures byte-identical; slicing an exported Hybrid
project reproduces its g-code byte-for-byte with the volume map
round-tripped through model_settings.config.
2026-07-11 16:37:50 +08:00
SoftFever 03a704df7c feat(engine): wire the per-filament volume-map producer pipeline
- Print::update_filament_maps_to_config takes filament/volume/nozzle
  maps, backfills an empty volume map from extruder types, rebuilds
  filament_map_2, re-expands the per-filament variant arrays, and
  recomputes retract overrides keyed by resolved slots
- grouping writes its result back in every non-sequential mode;
  manual multi-nozzle grouping validates the user mapping and raises a
  translatable error on deviation; the engine's concrete volume
  assignment is deliberately not merged yet (per-filament arrays are
  already consumed by filament id, so materializing High Flow now
  would change motion before the layer-aware resolvers land)
- Print::apply treats the three map keys as engine outputs in auto
  modes (erased from the diff and adopted), compares them against used
  filaments in manual mode, and keeps the pre-expansion snapshot in
  sync with the late normalization pass so rebuilt headers reflect the
  sliced state instead of resurrecting stale values
- volume/nozzle maps and extruder_nozzle_stats join the invalidation
  group of filament_map (wipe tower + skirt/brim)
- PresetBundle composes full configs with an optional per-filament
  volume map (plate map, else defaults derived from each extruder's
  flow type); project config keeps the map sized across filament
  count changes
- PartPlate stores per-plate volume/nozzle maps; Plater injects them
  at every slice-composition site (incl. g-code reload and wipe-tower
  estimation); BackgroundSlicingProcess reads engine results back to
  the plate in auto modes
- per-filament map trust guards relaxed to size-match everywhere now
  that every producer sizes the map; single-filament explicit flow
  assignments are honored
- tests: grouping volume maps stay concrete, merge semantics of
  update_used_filament_values, single-filament override honoring

Motion g-code is byte-identical fleet-wide including Hybrid projects
(19-fixture gate + repro determinism double-slice). Header deltas:
the map keys now dump real values, and stale pre-normalization values
(e.g. enable_prime_tower on single-used-filament prints) no longer
leak into the config block.
2026-07-11 04:38:31 +08:00
SoftFever c528d3a0bc feat(gui): enable Hybrid nozzle flow for multi-sub-nozzle extruders
An extruder with more than one physical sub-nozzle can hold a mix of
Standard and High Flow nozzles. The Flow dropdown now offers Hybrid for
such extruders (extruder_max_nozzle_count > 1, nil-guarded); grouping
already expands a Hybrid extruder into per-volume nozzle groups from
extruder_nozzle_stats.

- sidebar Flow combo offers Hybrid only for multi-sub-nozzle extruders
- preset lookup treats Hybrid as Standard (presets define no Hybrid
  variant); variant strings are never fabricated for it
- printer tab splits a Hybrid extruder into Standard + High Flow rows,
  with matching selection-index arithmetic and sync-enable rules
- syncing from a printer whose extruder holds mixed nozzle flows now
  selects Hybrid instead of collapsing to the dominant flow type
- send-to-printer flow check: a nozzle-rack extruder validates its
  nozzle inventory (mounted + rack) against every needed flow instead
  of comparing only the mounted nozzle; mounted-flow lookup is now
  per-extruder, fixing an index shift when a nozzle reports no flow
- Hybrid is session-only in app config (stored as Standard), so a
  fresh session starts from concrete flow types

Printers whose extruders have a single sub-nozzle (including all
dual-extruder machines without a rack) see no new option and identical
check behavior.
2026-07-10 18:02:26 +08:00