diff --git a/README.md b/README.md
index 175426c818..2242d6ae33 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,6 @@
OrcaSlicer: an open source Next-Gen Slicing Software for Precision 3D Prints.
Optimize your prints with ultra-fast slicing, intelligent support generation, and seamless printer compatibility—engineered for perfection.
-
# Official links and community
@@ -90,11 +89,22 @@ Visit our GitHub Releases page for the latest stable version of OrcaSlicer, reco
🌙 **[Download the Latest Nightly Build](https://github.com/OrcaSlicer/OrcaSlicer/releases/tag/nightly-builds)**
Explore the latest developments in OrcaSlicer with our nightly builds. Feedback on these versions is highly appreciated.
+### Belt Printer Builds
+
+The [nightly release](https://github.com/OrcaSlicer/OrcaSlicer/releases/tag/nightly-builds) ships **two parallel builds**: the standard build and a belt-printer build. Both are attached to the same release — tell them apart by the filename suffix:
+
+- **Standard** — no suffix (e.g. `OrcaSlicer_Windows_Installer_x64_nightly.exe`)
+- **Belt** — `_belt` suffix (e.g. `OrcaSlicer_Windows_Installer_x64_nightly_belt.exe`)
+
+The `_belt` builds add **experimental support for belt / conveyor (infinite-Z) printers**, where the model is sliced against a tilted belt surface instead of a flat horizontal bed. They include ready-to-use belt printer profiles, the full belt slicing pipeline (mesh rotation and G-code transforms), belt-aware support generation, and a tilted-bed preview.
+
+> ⚠️ Belt printer support is under active development and is **not yet merged into `main`** — it currently ships only in these parallel `_belt` builds, produced from the [`belt-printer`](https://github.com/OrcaSlicer/OrcaSlicer/tree/belt-printer) branch. See tracking PR [#14394](https://github.com/OrcaSlicer/OrcaSlicer/pull/14394) and the original documentation in [#12998](https://github.com/OrcaSlicer/OrcaSlicer/pull/12998).
+
# How to install
## Windows
-Download the **Windows Installer exe** for your preferred version from the [releases page](https://github.com/OrcaSlicer/OrcaSlicer/releases).
+Download the **Windows Installer exe** for your preferred version from the [releases page](https://github.com/OrcaSlicer/OrcaSlicer/releases). Both `x64` and `arm64` installers are published — pick the one matching your CPU.
- *For convenience there is also a portable build available.*
@@ -109,7 +119,7 @@ Download the **Windows Installer exe** for your preferred version from the [rel
- This file may already be available on your computer if you've installed visual studio. Check the following location: `%VCINSTALLDIR%Redist\MSVC\v142`
-Windows Package Manager
+### Windows Package Manager
```shell
winget install --id=SoftFever.OrcaSlicer -e
@@ -117,7 +127,7 @@ winget install --id=SoftFever.OrcaSlicer -e
## Mac
-1. Download the DMG for your computer: `arm64` version for Apple Silicon and `x86_64` for Intel CPU.
+1. Download the universal DMG, which runs on both Apple Silicon and Intel Macs.
2. Drag OrcaSlicer.app to Application folder.
3. *If you want to run a build from a PR, you also need to follow the instructions below:*
@@ -142,6 +152,14 @@ winget install --id=SoftFever.OrcaSlicer -e

+### Homebrew Cask
+
+```shell
+brew install --cask orcaslicer
+```
+
+The [Homebrew cask](https://formulae.brew.sh/cask/orcaslicer) installs the official macOS DMG from [GitHub Releases](https://github.com/OrcaSlicer/OrcaSlicer/releases).
+
## Linux
### Flathub (Recommended)
@@ -190,8 +208,8 @@ resolution: 0.1
# Supports
-**OrcaSlicer** is an open-source project and I'm deeply grateful to all my sponsors and backers.
-Their generous support enables me to purchase filaments and other essential 3D printing materials for the project.
+**OrcaSlicer** is an open-source project, and we're deeply grateful to all our sponsors and backers.
+Their generous support helps fund filaments and other essential 3D printing materials for the project.
Thank you! :)
## Sponsors
@@ -215,7 +233,7 @@ Thank you! :)
**Ko-fi supporters** ☕: [Backers list](https://github.com/user-attachments/files/16147016/Supporters_638561417699952499.csv)
-## Support me
+## Support the project
diff --git a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po
index af52e9df06..2ccfb5d2f4 100644
--- a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po
+++ b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-20 10:39-0300\n"
-"PO-Revision-Date: 2026-07-04 11:51-0300\n"
+"PO-Revision-Date: 2026-07-22 20:39-0300\n"
"Last-Translator: Alexandre Folle de Menezes\n"
"Language-Team: Portuguese, Brazilian\n"
"Language: pt_BR\n"
@@ -20,22 +20,22 @@ msgstr ""
"X-Generator: Poedit 3.9\n"
msgid "Main Extruder"
-msgstr ""
+msgstr "Extrusora Principal"
msgid "Main extruder"
-msgstr ""
+msgstr "Extrusora principal"
msgid "main extruder"
-msgstr ""
+msgstr "extrusora principal"
msgid "Auxiliary Extruder"
-msgstr ""
+msgstr "Extrusora Auxiliar"
msgid "Auxiliary extruder"
-msgstr ""
+msgstr "Extrusora auxiliar"
msgid "auxiliary extruder"
-msgstr ""
+msgstr "extrusora auxiliar"
msgid "Left Extruder"
msgstr "Extrusora Esquerda"
@@ -56,22 +56,22 @@ msgid "right extruder"
msgstr "extrusora direita"
msgid "Main Nozzle"
-msgstr ""
+msgstr "Bico Principal"
msgid "Main nozzle"
-msgstr ""
+msgstr "Bico principal"
msgid "main nozzle"
-msgstr ""
+msgstr "bico principal"
msgid "Auxiliary Nozzle"
-msgstr ""
+msgstr "Bico Auxiliar"
msgid "Auxiliary nozzle"
-msgstr ""
+msgstr "Bico auxiliar"
msgid "auxiliary nozzle"
-msgstr ""
+msgstr "bico auxiliar"
msgid "Left Nozzle"
msgstr "Bico Esquerdo"
@@ -92,52 +92,52 @@ msgid "right nozzle"
msgstr "bico direito"
msgid "Main Hotend"
-msgstr ""
+msgstr "Hotend Principal"
msgid "Main hotend"
-msgstr ""
+msgstr "Hotend principal"
msgid "main hotend"
-msgstr ""
+msgstr "hotend principal"
msgid "Auxiliary Hotend"
-msgstr ""
+msgstr "Hotend Auxiliar"
msgid "Auxiliary hotend"
-msgstr ""
+msgstr "Hotend auxiliar"
msgid "auxiliary hotend"
-msgstr ""
+msgstr "hotend auxiliar"
msgid "Left Hotend"
-msgstr ""
+msgstr "Hotend Esquerdo"
msgid "Left hotend"
-msgstr ""
+msgstr "Hotend esquerdo"
msgid "left hotend"
-msgstr ""
+msgstr "hotend esquerdo"
msgid "Right Hotend"
-msgstr ""
+msgstr "Hotend Direito"
msgid "Right hotend"
-msgstr ""
+msgstr "Hotend direito"
msgid "right hotend"
-msgstr ""
+msgstr "hotend direito"
msgid "main"
-msgstr ""
+msgstr "principal"
msgid "auxiliary"
-msgstr ""
+msgstr "auxiliar"
msgid "Main"
-msgstr ""
+msgstr "Principal"
msgid "Auxiliary"
-msgstr ""
+msgstr "Auxiliar"
msgid "left"
msgstr "esquerda"
@@ -161,22 +161,22 @@ msgid "AMS does not support 'Bambu Lab PET-CF'."
msgstr "AMS não suporta 'Bambu Lab PET-CF'."
msgid "The current filament doesn't support the E3D high-flow nozzle and can't be used."
-msgstr ""
+msgstr "O filamento atual não é compatível com o bico de alto fluxo E3D e não pode ser utilizado."
msgid "The current filament doesn't support the TPU high-flow nozzle and can't be used."
-msgstr ""
+msgstr "O filamento atual não é compatível com o bico de alto fluxo TPU e não pode ser utilizado."
msgid "Auto dynamic flow calibration is not supported for TPU filament."
-msgstr ""
+msgstr "A calibração dinâmica automática de fluxo não é suportada para filamento TPU."
msgid "Bambu TPU 85A is not supported for printing with 0.4 mm Standard or High Flow nozzles."
-msgstr ""
+msgstr "O Bambu TPU 85A não é compatível com a impressão utilizando bicos Padrão ou Alto Fluxo de 0,4 mm."
msgid "How to feed TPU filament."
-msgstr ""
+msgstr "Como alimentar filamento TPU."
msgid "How to feed TPU filament on X2D."
-msgstr ""
+msgstr "Como alimentar filamento TPU em X2D."
msgid "Please cold pull before printing TPU to avoid clogging. You may use cold pull maintenance on the printer."
msgstr "Recomenda-se realizar um processo de 'cold pull' antes de imprimir em TPU para evitar entupimentos. Você pode utilizar esse processo de manutenção na impressora."
@@ -191,7 +191,7 @@ msgid "The rough surface of PLA Glow can accelerate wear on the AMS system, part
msgstr "A superfície áspera do PLA Glow pode acelerar o desgaste do sistema AMS, particularmente nos componentes internos do AMS Lite."
msgid "PLA Glow may wear the AMS first stage feeder. Use an external spool instead."
-msgstr ""
+msgstr "O PLA Glow pode desgastar o alimentador de primeiro estágio do AMS. Em vez disso, use um carretel externo."
msgid "CF/GF filaments are hard and brittle, it's easy to break or get stuck in AMS, please use with caution."
msgstr "Os filamentos CF/GF são duros e quebradiços, é fácil quebrar ou ficar preso no AMS, por favor use com cautela."
@@ -203,19 +203,19 @@ msgid "PPA-CF is brittle and could break in bended PTFE tube above Toolhead."
msgstr "O PPA-CF é quebradiço e pode quebrar no tubo de PTFE dobrado acima do cabeçote."
msgid "Default settings may affect print quality. Adjust as needed for best results."
-msgstr ""
+msgstr "As configurações padrão podem afetar a qualidade da impressão. Ajuste conforme necessário para obter os melhores resultados."
#, c-format, boost-format
msgid "%s has a risk of nozzle clogging when using 0.4mm high-flow nozzles. Use with caution."
-msgstr ""
+msgstr "%s apresenta risco de entupimento do bico ao utilizar bicos de alto fluxo de 0,4 mm. Use com cautela."
#, c-format, boost-format
msgid "%s filaments are hard and brittle and could break in AMS, and there is also a risk of nozzle clogging when using 0.4mm high-flow nozzles. Use with caution."
-msgstr ""
+msgstr "Os filamentos %s são duros e quebradiços, podendo se romper no AMS. E há também risco de entupimento do bico ao utilizar bicos de alto fluxo de 0,4 mm. Use com cautela."
#, c-format, boost-format
msgid "%s has a risk of nozzle clogging when using 0.4, 0.6, 0.8mm high-flow nozzles. Use with caution."
-msgstr ""
+msgstr "%s apresenta risco de entupimento do bico ao utilizar bicos de alto fluxo de 0,4, 0,6 ou 0,8 mm. Use com cautela."
#, c-format, boost-format
msgid "%s may fail to load or unload due to the Filament Track Switch. If you wish to continue."
@@ -227,19 +227,19 @@ msgstr "%s não é suportado pela extrusora %s."
#, c-format, boost-format
msgid "There may be critical print quality issues when printing '%s' with %s Bowden extruder. Use with caution!"
-msgstr ""
+msgstr "Podem ocorrer problemas críticos de qualidade de impressão ao imprimir '%s' com a extrusora Bowden %s. Use com cautela!"
#, c-format, boost-format
msgid "There may be critical print quality issues when printing '%s' with %s extruder. Use with caution!"
-msgstr ""
+msgstr "Podem ocorrer problemas críticos de qualidade de impressão ao imprimir '%s' com a extrusora %s. Use com cautela!"
#, c-format, boost-format
msgid "There may be print quality issues when printing '%s' with %s Bowden extruder. Use with caution."
-msgstr ""
+msgstr "Podem ocorrer problemas de qualidade de impressão ao imprimir '%s' com a extrusora Bowden %s. Use com cautela."
#, c-format, boost-format
msgid "There may be print quality issues when printing '%s' with %s extruder. Use with caution."
-msgstr ""
+msgstr "Podem ocorrer problemas de qualidade de impressão ao imprimir '%s' com a extrusora %s. Use com cautela."
msgid "High Flow"
msgstr "Alto Fluxo"
@@ -350,7 +350,7 @@ msgid "Reading"
msgstr ""
msgid "Running..."
-msgstr "Executando..."
+msgstr "Executando…"
msgid "Raised"
msgstr "Elevado"
@@ -707,13 +707,13 @@ msgid "Part"
msgstr "Peça"
msgid "Relative"
-msgstr ""
+msgstr "Relativo"
msgid "Coordinate system used for transform actions."
-msgstr ""
+msgstr "Sistema de coordenadas usado para ações de transformação."
msgid "Absolute"
-msgstr ""
+msgstr "Absoluto"
msgid "Reset current rotation to the value when open the rotation tool."
msgstr "Redefinir rotação para o valor de abertura da ferramenta de rotação."
@@ -948,7 +948,7 @@ msgid "Reset cutting plane and remove connectors"
msgstr "Redefinir plano de corte e remover conectores"
msgid "Reset Cut"
-msgstr ""
+msgstr "Redefinir Corte"
msgid "Perform cut"
msgstr "Executar corte"
@@ -2093,15 +2093,15 @@ msgid "Info"
msgstr "Informações"
msgid "Loading Plugins"
-msgstr ""
+msgstr "Carregando Plugins"
#, c-format, boost-format
msgid "Plugin %s is no longer available."
-msgstr ""
+msgstr "O plugin %s não está mais disponível."
#, c-format, boost-format
msgid "Plugin %s access is unauthorized."
-msgstr ""
+msgstr "O acesso ao plugin %s não está autorizado."
msgid "Loading printer & filament profiles"
msgstr "Carregando perfis de impressora e filamento"
@@ -2179,31 +2179,39 @@ msgid "The version of Orca Slicer is too low and needs to be updated to the late
msgstr "Esta versão do OrcaSlicer é muito antiga e precisa ser atualizada para a versão mais recente antes de poder ser usada normalmente."
msgid "Cloud sync conflict:"
-msgstr ""
+msgstr "Conflito de sincronização na nuvem:"
#, c-format, boost-format
msgid "Cloud sync conflict for preset \"%s\":"
-msgstr ""
+msgstr "Conflito de sincronização na nuvem para a predefinição \"%s\":"
msgid ""
"This preset has a newer version in OrcaCloud.\n"
"Pull downloads the cloud copy. Force push overwrites it with your local preset."
msgstr ""
+"Esta predefinição possui uma versão mais recente no OrcaCloud.\n"
+"\"Baixar\" baixa a cópia da nuvem. \"Forçar subida\" a sobrescreve com a sua predefinição local."
msgid ""
"A preset with this name already exists in OrcaCloud.\n"
"Pull downloads the cloud copy. Force push overwrites it with your local preset."
msgstr ""
+"Já existe uma predefinição com esse nome no OrcaCloud.\n"
+"\"Baixar\" baixa a cópia da nuvem. \"Forçar subida\" a sobrescreve com a sua predefinição local."
msgid ""
"A preset with the same name was previously deleted from the cloud.\n"
"Delete will delete your local preset. Force push overwrites it with your local preset."
msgstr ""
+"Uma predefinição com o mesmo nome foi excluída anteriormente da nuvem.\n"
+"\"Excluir\" removerá sua predefinição local. \"Force push\" a substitui pela sua predefinição local."
msgid ""
"There was an unexpected or unidentified preset conflict.\n"
"Pull downloads the cloud copy. Force push overwrites it with your local preset."
msgstr ""
+"Houve um conflito de predefinição inesperado ou não identificado.\n"
+"\"Baixar\" baixa a cópia da nuvem. \"Forçar subida\" a sobrescreve com a sua predefinição local."
msgid ""
"Force push will overwrite the cloud copy with your local preset changes.\n"
@@ -2217,21 +2225,23 @@ msgid ""
"Force push will overwrite the cloud copy of preset \"%s\" with your local changes.\n"
"Do you want to continue?"
msgstr ""
+"\"Forçar subida\" substituirá a cópia na nuvem da predefinição \"%s\" pelas suas alterações locais.\n"
+"Deseja continuar?"
msgid "Resolve cloud sync conflict"
msgstr "Resolver o conflito de sincronização de nuvem"
msgid "Syncing your account…"
-msgstr ""
+msgstr "Sincronizando sua conta…"
msgid "Migrating presets…"
-msgstr ""
+msgstr "Migrando predefinições…"
msgid "Fetching plugins…"
-msgstr ""
+msgstr "Buscando plugins…"
msgid "Loading user presets…"
-msgstr ""
+msgstr "Carregando predefinições do usuário…"
msgid "Retrieving printer information, please try again later."
msgstr "Obtendo informações da impressora, tente novamente mais tarde."
@@ -2310,7 +2320,7 @@ msgstr "Sincronizar predefinições de usuário"
#, c-format, boost-format
msgid "The preset \"%s\" is too large to sync to the cloud (exceeds 1MB). Please reduce the preset size by removing custom configurations or use it locally only."
-msgstr ""
+msgstr "A predefinição \"%s\" é grande demais para ser sincronizada com a nuvem (excede 1 MB). Reduza o tamanho da predefinição removendo configurações personalizadas ou utilize-a apenas localmente."
#, c-format, boost-format
msgid "%s updated from %s to %s"
@@ -2332,7 +2342,7 @@ msgid "Loading user preset"
msgstr "Carregando predefinição de usuário"
msgid "There is an update available. Open the preset bundle dialog to update it."
-msgstr ""
+msgstr "Há uma atualização disponível. Abra a caixa de diálogo do pacote de predefinições para atualizá-lo."
#, c-format, boost-format
msgid "%s has been removed."
@@ -2349,7 +2359,7 @@ msgstr "Idioma"
#, c-format, boost-format
msgid "Switching Orca Slicer to language %s failed."
-msgstr ""
+msgstr "Falha ao mudar o idioma do OrcaSlicer para %s."
msgid ""
"\n"
@@ -2357,22 +2367,24 @@ msgid ""
msgstr ""
msgid "Orca Slicer - Switching language failed"
-msgstr ""
+msgstr "OrcaSlicer - Falha ao mudar o idioma"
msgid "*"
msgstr "*"
msgid "Plugins"
-msgstr ""
+msgstr "Plugins"
#, c-format, boost-format
msgid ""
"Failed to open the Plugins dialog:\n"
"%s"
msgstr ""
+"Falha ao abrir a caixa de diálogo de Plugins:\n"
+"%s"
msgid "Failed to open the Plugins dialog (unknown error)."
-msgstr ""
+msgstr "Falha ao abrir a caixa de diálogo de Plugins (erro desconhecido)."
msgid "Plugin Terminal"
msgstr ""
@@ -2971,43 +2983,43 @@ msgid "Click the icon to shift this object to the bed"
msgstr "Clique no ícone para mover este objeto para a mesa"
msgid "Rename Object"
-msgstr ""
+msgstr "Renomear Objeto"
msgid "Rename Part"
-msgstr ""
+msgstr "Renomear Peça"
msgid "Paste settings"
-msgstr ""
+msgstr "Colar configurações"
msgid "Shift objects to bed"
msgstr ""
msgid "Object order changed"
-msgstr ""
+msgstr "Ordem dos objetos alterada"
msgid "Layer setting added"
-msgstr ""
+msgstr "Configuração de camada adicionada"
msgid "Part setting added"
-msgstr ""
+msgstr "Configuração de peça adicionada"
msgid "Object setting added"
-msgstr ""
+msgstr "Configuração de objeto adicionada"
msgid "Height range settings added"
-msgstr ""
+msgstr "Configurações de faixa de altura adicionadas"
msgid "Part settings added"
-msgstr ""
+msgstr "Configurações de peça adicionadas"
msgid "Object settings added"
-msgstr ""
+msgstr "Configurações de objeto adicionadas"
msgid "Load Part"
-msgstr ""
+msgstr "Carregar Peça"
msgid "Load Modifier"
-msgstr ""
+msgstr "Carregar Modificador"
msgid "Loading file"
msgstr "Carregando arquivo"
@@ -3019,7 +3031,7 @@ msgid "Failed to get the model data in the current file."
msgstr "Falha ao obter os dados do modelo no arquivo atual."
msgid "Add primitive"
-msgstr ""
+msgstr "Adicionar primitiva"
msgid "Generic"
msgstr "Genérico"
@@ -3034,7 +3046,7 @@ msgid "Remove paint-on fuzzy skin"
msgstr "Remover textura difusa pintada"
msgid "Delete Settings"
-msgstr ""
+msgstr "Apagar Configurações"
msgid "Remove height range"
msgstr "Remover intervalo de altura"
@@ -3069,7 +3081,7 @@ msgid "Deleting the last solid part is not allowed."
msgstr "Não é permitido excluir a última peça sólida."
msgid "Delete part"
-msgstr ""
+msgstr "Apagar peça"
msgid "The target object contains only one part and can not be split."
msgstr "O objeto de destino contém apenas uma peça e não pode ser dividido."
@@ -3081,10 +3093,10 @@ msgid "Assembly"
msgstr "Montagem"
msgid "Merge parts to an object"
-msgstr ""
+msgstr "Mesclar peças com um objeto"
msgid "Add layers"
-msgstr ""
+msgstr "Adicionar camadas"
msgid "Cut Connectors information"
msgstr "Informação de Conectores de Corte"
@@ -3117,7 +3129,7 @@ msgid "Settings for height range"
msgstr "Configurações para intervalo de altura"
msgid "Delete selected"
-msgstr ""
+msgstr "Apagar selecionado"
msgid "Layer"
msgstr "Camada"
@@ -3171,7 +3183,7 @@ msgid "\"%s\" part's mesh contains errors. Please repair it first."
msgstr "A malha da peça \"%s\" contém erros. Por favor, corrija-a primeiro."
msgid "Change Filaments"
-msgstr ""
+msgstr "Mudar Filamentos"
msgid "Additional process preset"
msgstr "Predefinição de processo adicional"
@@ -3385,7 +3397,7 @@ msgid "Filament type is unknown which is required to perform this action. Please
msgstr "O tipo de filamento necessário para realizar esta ação é desconhecido. Insira as informações do filamento desejado."
msgid "AMS has not been initialized. Please initialize it before use."
-msgstr ""
+msgstr "O AMS não foi inicializado. Por favor, inicialize-o antes de usar."
msgid "Changing fan speed during printing may affect print quality, please choose carefully."
msgstr "Mudar a velocidade do ventilador durante a impressão pode afetar a qualidade da impressão. Escolha com cuidado."
@@ -3461,7 +3473,7 @@ msgid "Left(Aux)"
msgstr "Esquerda(Aux)"
msgid "Hotend"
-msgstr "Extrusora"
+msgstr "Hotend"
msgid "Parts"
msgstr "Peças"
@@ -3513,7 +3525,7 @@ msgid "Switch"
msgstr ""
msgid "hotend"
-msgstr ""
+msgstr "hotend"
msgid "Wait for AMS cooling"
msgstr ""
@@ -3614,7 +3626,7 @@ msgstr "Atenção: A combinação de diâmetros de bico em uma única impressão
#, c-format, boost-format
msgid "Refresh %d/%d..."
-msgstr "Atualizando %d/%d..."
+msgstr "Atualizando %d/%d…"
msgid "Unknown nozzle detected. Refresh to update info (unrefreshed nozzles will be excluded during slicing). Verify nozzle diameter & flow rate against displayed values."
msgstr "Bico desconhecido detectado. Atualize para atualizar as informações (bicos não atualizados serão excluídos durante o fatiamento). Verifique o diâmetro do bico e a taxa de fluxo em relação aos valores exibidos."
@@ -3632,7 +3644,7 @@ msgid "Ignore"
msgstr "Ignorar"
msgid "Done."
-msgstr ""
+msgstr "Feito."
msgid ""
"All the selected objects are on a locked plate.\n"
@@ -4541,7 +4553,7 @@ msgstr "A temperatura da câmara atual está mais alta do que a temperatura segu
#, c-format, boost-format
msgid "The minimal chamber temperature (%d℃) is higher than the target chamber temperature (%d℃). The minimal value is the threshold at which printing starts while the chamber keeps heating toward the target, so it should not exceed it. It will be clamped to the target."
-msgstr ""
+msgstr "A temperatura mínima da câmara (%d℃) é superior à temperatura alvo da câmara (%d℃). O valor mínimo é o limite no qual a impressão começa enquanto a câmara continua aquecendo em direção ao alvo; portanto, não deve execedê-lo. O valor será limitado ao alvo."
msgid ""
"Layer height too small\n"
@@ -4608,7 +4620,7 @@ msgid ""
"YES - Keep Prime Tower\n"
"NO - Keep Adaptive Layer Height and Independent Support Layer Height"
msgstr ""
-"A torre de preparo não funciona quando a Altura de Camada Adaptativa ou a Altura de Camada de Suporte Independente está ativada.\n"
+"A torre de purga não funciona quando a Altura de Camada Adaptativa ou a Altura de Camada de Suporte Independente está ativada.\n"
"Qual você deseja manter?\n"
"SIM — Manter a Torre de Preparo\n"
"NÃO — Manter a Altura de Camada Adaptativa e a Altura de Camada de Suporte Independente"
@@ -4619,7 +4631,7 @@ msgid ""
"YES - Keep Prime Tower\n"
"NO - Keep Adaptive Layer Height"
msgstr ""
-"A torre de preparo não funciona quando a Altura de Camada Adaptativa está ativa.\n"
+"A torre de purga não funciona quando a Altura de Camada Adaptativa está ativa.\n"
"Qual você deseja manter?\n"
"SIM — Manter a Torre de Preparo\n"
"NÃO — Manter a Altura de Camada Adaptativa"
@@ -4630,7 +4642,7 @@ msgid ""
"YES - Keep Prime Tower\n"
"NO - Keep Independent Support Layer Height"
msgstr ""
-"A torre de preparo não funciona quando a Altura da Camada de Suporte Independente está ativa.\n"
+"A torre de purga não funciona quando a Altura da Camada de Suporte Independente está ativa.\n"
"Qual você deseja manter?\n"
"SIM — Manter a Torre de Preparo\n"
"NÃO — Manter a Altura da Camada de Suporte Independente"
@@ -4917,7 +4929,7 @@ msgid "Calibration error"
msgstr "Erro de calibração"
msgid "Network unavailable"
-msgstr ""
+msgstr "Rede indisponível"
msgid "Resume Printing"
msgstr "Retomar impressão"
@@ -4953,7 +4965,7 @@ msgid "No Reminder Next Time"
msgstr "Sem Aviso da Próxima Vez"
msgid "Recheck"
-msgstr ""
+msgstr "Reverificar"
msgid "Ignore. Don't Remind Next Time"
msgstr "Ignorar. Não Avise da Próxima Vez"
@@ -4977,7 +4989,7 @@ msgid "Proceed"
msgstr "Prosseguir"
msgid "Abort"
-msgstr ""
+msgstr "Abortar"
msgid "Disable Purification for This Print"
msgstr ""
@@ -5129,23 +5141,23 @@ msgid "System agents"
msgstr ""
msgid "No plugin selected"
-msgstr ""
+msgstr "Nenhum plugin selecionado"
msgid "Add plugin"
-msgstr ""
+msgstr "Adicionar plugin"
msgid "Select plugin"
-msgstr ""
+msgstr "Selecionar plugin"
msgid "Remove plugin"
-msgstr ""
+msgstr "Remover plugin"
msgid "Configure"
-msgstr ""
+msgstr "Configurar"
#, c-format, boost-format
msgid "Configure (%d)"
-msgstr ""
+msgstr "Configurar (%d)"
msgid "Pick"
msgstr "Escolher"
@@ -5250,7 +5262,7 @@ msgid "Support interface"
msgstr "Interface de suporte"
msgid "Prime tower"
-msgstr "Torre de preparo"
+msgstr "Torre de purga"
msgid "Bottom surface"
msgstr "Superfície inferior"
@@ -5794,7 +5806,7 @@ msgid "PLA and PETG filaments detected in the mixture. Adjust parameters accordi
msgstr "Filamentos PLA e PETG detectados na mistura. Ajuste os parâmetros de acordo com o Wiki para garantir a qualidade de impressão."
msgid "The prime tower extends beyond the plate boundary."
-msgstr "A torre de preparo estende-se para além do limite da placa."
+msgstr "A torre de purga estende-se para além do limite da placa."
msgid "Partial flushing volume set to 0. Multi-color printing may cause color mixing in models. Please readjust flushing settings."
msgstr "Volume de purga parcial definido como 0. A impressão multicolorida pode causar mistura de cores nos modelos. Por favor, ajuste novamente as configurações de purga."
@@ -6368,7 +6380,7 @@ msgid "Select profile to load:"
msgstr "Selecione o perfil para carregar:"
msgid "Config files (*.json;*.zip;*.orca_printer;*.orca_bundle;*.orca_filament)|*.json;*.zip;*.orca_printer;*.orca_bundle;*.orca_filament"
-msgstr ""
+msgstr "Arquivos de configuração (*.json;*.zip;*.orca_printer;*.orca_bundle;*.orca_filament)|*.json;*.zip;*.orca_printer;*.orca_bundle;*.orca_filament"
#, c-format, boost-format
msgid "There is %d config imported. (Only non-system and compatible configs)"
@@ -6845,7 +6857,7 @@ msgid "Safety Options"
msgstr "Opções de Segurança"
msgid "Hotends"
-msgstr ""
+msgstr "Hotends"
msgid "Lamp"
msgstr "Lâmpada"
@@ -6968,10 +6980,10 @@ msgid "Delete Photo"
msgstr "Excluir Foto"
msgid "Select Images"
-msgstr ""
+msgstr "Selecionar Imagens"
msgid "Image files (*.png;*.jpg;*jpeg)|*.png;*.jpg;*.jpeg"
-msgstr ""
+msgstr "Arquivos de imagem (*.png;*.jpg;*jpeg)|*.png;*.jpg;*.jpeg"
msgid "Submit"
msgstr "Enviar"
@@ -7317,7 +7329,7 @@ msgid "Bottom"
msgstr "Inferior"
msgid "Plugin Selection"
-msgstr ""
+msgstr "Seleção de plugins"
msgid ""
"No plugins capabilities available for this type.\n"
@@ -7421,7 +7433,7 @@ msgid "Purify Air at Print End"
msgstr ""
msgid "Internal Circulation"
-msgstr ""
+msgstr "Circulação Interna"
msgid "Alignment Detection"
msgstr ""
@@ -7729,7 +7741,7 @@ msgid "Enabling traditional timelapse photography may cause surface imperfection
msgstr "A habilitação da fotografia tradicional em timelapse pode causar imperfeições na superfície. É recomendado mudar para o modo suave."
msgid "Smooth mode for timelapse is enabled, but the prime tower is off, which may cause print defects. Please enable the prime tower, re-slice and print again."
-msgstr "O modo suave para timelapse está ativado, mas a torre de preparo está desativada, o que pode causar defeitos na impressão. Ative a torre de preparo, fatie novamente e imprima de novo."
+msgstr "O modo suave para timelapse está ativado, mas a torre de purga está desativada, o que pode causar defeitos na impressão. Ative a torre de purga, fatie novamente e imprima de novo."
msgid "Expand sidebar"
msgstr "Expandir barra lateral"
@@ -8019,7 +8031,7 @@ msgid "Error during reload"
msgstr "Erro durante a recarga"
msgid "Reload all"
-msgstr ""
+msgstr "Recarregar tudo"
msgid "There are warnings after slicing models:"
msgstr "Existem avisos após o fatiamento dos modelos:"
@@ -8300,35 +8312,35 @@ msgid "OrcaCloud plugins required by the current preset are not installed:"
msgstr ""
msgid "Install Plugins"
-msgstr ""
+msgstr "Instalar Plugins"
msgid "Local plugins required by the current preset are missing:"
msgstr ""
msgid "Find on OrcaCloud"
-msgstr ""
+msgstr "Procurar no OrcaCloud"
msgid "Plugins required by the current preset are not activated:"
msgstr ""
msgid "Activate Now"
-msgstr ""
+msgstr "Ativar Agora"
msgid "The installed plugin does not provide the required capability — it may be outdated:"
msgstr ""
msgid "Preparing to install plugins..."
-msgstr ""
+msgstr "Preparando para instalar plugins…"
msgid "Installing plugins"
-msgstr ""
+msgstr "Plugins instalados"
msgid "Cancelling — finishing the current plugin..."
-msgstr ""
+msgstr "Cancelando — encerrando o plugin atual…"
#, boost-format
msgid "Installing %1%..."
-msgstr ""
+msgstr "Instalando %1%…"
msgid "Plate Settings"
msgstr "Configurações de Placa"
@@ -8370,7 +8382,7 @@ msgid "Triangles: %1%\n"
msgstr "Triângulos: %1%\n"
msgid "Use \"Fix Model\" to repair the mesh."
-msgstr "Use \"Corrigir Modelo\" para reparar a malha."
+msgstr "Usar \"Corrigir Modelo\" para reparar a malha."
# TODO: Review, changed by lang refactor. PR 14254
#, c-format, boost-format
@@ -9137,7 +9149,7 @@ msgid "My Printer"
msgstr "Minha Impressora"
msgid "AMS filaments"
-msgstr ""
+msgstr "Filamentos AMS"
msgid "Left filaments"
msgstr "Filamentos da esquerda"
@@ -9159,7 +9171,7 @@ msgid "Edit preset"
msgstr "Editar predefinições"
msgid "Change extruder color"
-msgstr ""
+msgstr "Alterar a cor da extrusora"
msgid "Unspecified"
msgstr "Não especificado"
@@ -9385,7 +9397,7 @@ msgid "Your filament grouping method in the sliced file is not optimal."
msgstr "Seu método de agrupamento de filamentos no arquivo fatiado não é o ideal."
msgid "To ensure print quality, the drying temperature will be lowered during printing."
-msgstr ""
+msgstr "Para garantir a qualidade da impressão, a temperatura de secagem será reduzida durante a impressão."
msgid "Select timelapse storage location"
msgstr ""
@@ -9449,25 +9461,25 @@ msgstr ""
#, c-format, boost-format
msgid "Failed to send nozzle auto-mapping request to printer { code: %d }. Please try to refresh the printer information. If it still does not recover, you can try to rebind the printer and check the network connection."
-msgstr ""
+msgstr "Falha ao enviar a solicitação de mapeamento automático de bicos para a impressora { code: %d }. Tente atualizar as informações da impressora. Se o problema persistir, tente vincular a impressora novamente e verifique a conexão de rede."
msgid "The printer is calculating nozzle mapping."
-msgstr ""
+msgstr "A impressora está calculando o mapeamento dos bicos."
msgid "Please wait a moment..."
-msgstr ""
+msgstr "Aguarde um momento…"
#, c-format, boost-format
msgid "Failed to receive nozzle auto-mapping table from printer { msg: %s }. Please refresh the printer information."
-msgstr ""
+msgstr "Falha ao receber a tabela de mapeamento automático de bicos da impressora { msg: %s }. Atualize as informações da impressora."
#, c-format, boost-format
msgid "The printer failed to build the nozzle auto-mapping table { code: %d }. Please refresh nozzle information."
-msgstr ""
+msgstr "A impressora falhou ao gerar a tabela de mapeamento automático do bico { código: %d }. Atualize as informações do bico."
#, c-format, boost-format
msgid "The current nozzle mapping may produce an extra %0.2f g of waste."
-msgstr ""
+msgstr "O mapeamento de bicos atual pode gerar um desperdício adicional de %0.2f g."
#, c-format, boost-format
msgid "Recommended filament arrangement saves %s->"
@@ -9568,26 +9580,26 @@ msgstr "bico"
#, c-format, boost-format
msgid "Refreshing information of hotends(%d/%d)."
-msgstr ""
+msgstr "Atualizando informações dos hotends (%d/%d)."
msgid "There are not enough available hotends currently."
-msgstr ""
+msgstr "Não há hotends disponíveis em quantidade suficiente no momento."
msgid "Please complete the hotend rack setup and try again."
msgstr ""
msgid "Please refresh the nozzle information and try again."
-msgstr ""
+msgstr "Por favor, atualize as informações do bico e tente novamente."
msgid "Please re-slice to avoid filament waste."
-msgstr ""
+msgstr "Por favor, fatie novamente para evitar desperdício de filamento."
msgid "The reported hotend information may be unreliable."
-msgstr ""
+msgstr "As informações reportadas sobre o hotend podem não ser confiáveis."
#, c-format, boost-format
msgid "The printer has no nozzle matching the slicing file (%s)."
-msgstr ""
+msgstr "A impressora não possui um bico compatível com o arquivo de fatiamento (%s)."
msgid "Please install a matching nozzle in the hotend rack, or set the corresponding printer preset while slicing."
msgstr ""
@@ -9933,23 +9945,23 @@ msgstr "A torre principal é necessária para a troca do bico. Pode haver falhas
# TODO: Review, changed by lang refactor. PR 14254
msgid "A prime tower is required for smooth timelapse mode. There may be flaws on the model without a prime tower. Are you sure you want to disable the prime tower?"
-msgstr "Uma torre de preparo é necessária para um timelapse suave. Pode haver falhas no modelo sem a torre de preparo. Tem certeza de que deseja desativar a torre de preparo?"
+msgstr "Uma torre de purga é necessária para um timelapse suave. Pode haver falhas no modelo sem a torre de purga. Tem certeza de que deseja desativar a torre de purga?"
msgid "A prime tower is required for clumping detection. There may be flaws on the model without prime tower. Are you sure you want to disable prime tower?"
-msgstr "Uma torre de preparo é necessária para a detecção de aglomeração. Podem ocorrer falhas no modelo sem a torre de preparo. Tem certeza de que deseja desativar a torre de preparo?"
+msgstr "Uma torre de purga é necessária para a detecção de aglomeração. Podem ocorrer falhas no modelo sem a torre de purga. Tem certeza de que deseja desativar a torre de purga?"
msgid "Enabling both precise Z height and the prime tower may cause slicing errors. Do you still want to enable?"
msgstr "Habilitar a altura Z precisa e a torre de preparação juntas pode causar erros de fatiamento. Deseja habilitar mesmo assim?"
msgid "A prime tower is required for clumping detection. There may be flaws on the model without prime tower. Do you still want to enable clumping detection?"
-msgstr "Uma torre de preparo é necessária para a detecção de aglomeração. Podem ocorrer falhas no modelo sem o Prime Tower. Tem certeza de que deseja ativar a detecção de aglomeração?"
+msgstr "Uma torre de purga é necessária para a detecção de aglomeração. Podem ocorrer falhas no modelo sem o Prime Tower. Tem certeza de que deseja ativar a detecção de aglomeração?"
msgid "Enabling both precise Z height and the prime tower may cause slicing errors. Do you still want to enable precise Z height?"
msgstr "Habilitar a altura Z precisa e a torre de preparação juntas pode causar erros de fatiamento. Deseja habilitar a altura Z precisa mesmo assim?"
# TODO: Review, changed by lang refactor. PR 14254
msgid "A prime tower is required for smooth timelapse mode. There may be flaws on the model without prime tower. Do you want to enable the prime tower?"
-msgstr "Uma torre de preparo é necessária para um timelapse suave. Pode haver falhas no modelo sem a torre de preparo. Deseja ativar a torre de preparo?"
+msgstr "Uma torre de purga é necessária para um timelapse suave. Pode haver falhas no modelo sem a torre de purga. Deseja ativar a torre de purga?"
msgid "Still print by object?"
msgstr "Ainda imprimir por objeto?"
@@ -10178,7 +10190,7 @@ msgid "Slicing Pipeline Plugin"
msgstr ""
msgid "Plugin Configuration"
-msgstr ""
+msgstr "Configuração de Plugin"
msgid "Notes"
msgstr "Notas"
@@ -10312,7 +10324,7 @@ msgid "Filament end G-code"
msgstr "G-code de final do filamento"
msgid "Wipe tower parameters"
-msgstr "Parâmetros da torre de limpeza"
+msgstr "Parâmetros da torre de purga"
msgid "Multi Filament"
msgstr "Multi Filamento"
@@ -10449,7 +10461,7 @@ msgid "Nozzle diameter"
msgstr "Diâmetro do bico"
msgid "Wipe tower"
-msgstr "Torre de limpeza"
+msgstr "Torre de purga"
msgid "Single extruder multi-material parameters"
msgstr "Parâmetros multimateriais de extrusora única"
@@ -10768,7 +10780,7 @@ msgid "If enabled, this dialog can be used for transfer selected values from lef
msgstr "Se ativo, este diálogo pode ser usado para transferir valores selecionados da predefinição da esquerda para a da direita."
msgid "One of the presets does not exist"
-msgstr ""
+msgstr "Uma das predefinições não existe"
msgid "Compared presets has different printer technology"
msgstr ""
@@ -10998,7 +11010,7 @@ msgid "Only synchronize filament type and color, not including slot information.
msgstr "Sincroniza apenas o tipo e a cor do filamento, não incluindo informações do espaço."
msgid "Ext spool"
-msgstr "Carretel externo"
+msgstr "Carretel ext"
msgid "Please check whether the nozzle type of the device is the same as the preset nozzle type."
msgstr "Verifique se o tipo de bico do dispositivo é o mesmo que o tipo de bico predefinido."
@@ -11023,7 +11035,7 @@ msgid "Successfully synchronized nozzle and AMS number information."
msgstr "Informações do bico e do número de AMS sincronizadas com sucesso."
msgid "Do you want to continue to sync filaments?"
-msgstr ""
+msgstr "Deseja continuar sincronizando filamentos?"
msgid "Successfully synchronized filament color from printer."
msgstr "Cor de filamento da impressora sincronizado com sucesso."
@@ -11785,7 +11797,7 @@ msgid "Enabling both precise Z height and the prime tower may cause slicing erro
msgstr "Habilitar a altura Z precisa e a torre de preparação juntas pode causar erros de fatiamento."
msgid "A prime tower is required for clumping detection; otherwise, there may be flaws on the model."
-msgstr "Uma torre de preparo é necessária para a detecção de aglomeração, podem ocorrer falhas no modelo."
+msgstr "Uma torre de purga é necessária para a detecção de aglomeração, podem ocorrer falhas no modelo."
msgid "Please select \"By object\" print sequence to print multiple objects in spiral vase mode."
msgstr "Por favor, selecione a sequência de impressão \"Por objeto\" para imprimir vários objetos no modo vaso espiral."
@@ -11812,46 +11824,46 @@ msgid "Variable layer height is not supported with Organic supports."
msgstr "A altura de camada variável não é suportada com suportes Orgânicos."
msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution."
-msgstr "Diferentes diâmetros de bico e diferentes diâmetros de filamento podem não funcionar bem quando a torre de preparo estiver habilitada. É muito experimental, então prossiga com cautela."
+msgstr "Diferentes diâmetros de bico e diferentes diâmetros de filamento podem não funcionar bem quando a torre de purga estiver habilitada. É muito experimental, então prossiga com cautela."
msgid "The Wipe Tower is currently only supported with the relative extruder addressing (use_relative_e_distances=1)."
msgstr "A Torre de Limpeza só é suportada atualmente com o endereçamento relativo da extrusora (use_relative_e_distances=1)."
msgid "Ooze prevention is only supported with the wipe tower when 'single_extruder_multi_material' is off."
-msgstr "A prevenção de vazamento só é suportada pela torre de limpeza quando 'single_extruder_multi_material' está desativado."
+msgstr "A prevenção de vazamento só é suportada pela torre de purga quando 'single_extruder_multi_material' está desativado."
msgid "The prime tower is currently only supported for the Marlin, RepRap/Sprinter, RepRapFirmware and Repetier G-code flavors."
-msgstr "A torre de preparo atualmente só é suportada para os G-code do tipo Marlin, RepRap/Sprinter, RepRapFirmware e Repetier."
+msgstr "A torre de purga atualmente só é suportada para os G-code do tipo Marlin, RepRap/Sprinter, RepRapFirmware e Repetier."
# TODO: Review, changed by lang refactor. PR 14254
msgid "A prime tower is not supported in “By object” print."
-msgstr "A torre de preparo não é suportada na impressão \"Por objeto\"."
+msgstr "A torre de purga não é suportada na impressão \"Por objeto\"."
# TODO: Review, changed by lang refactor. PR 14254
msgid "A prime tower is not supported when adaptive layer height is on. It requires that all objects have the same layer height."
-msgstr "A torre de preparo não é suportada quando a altura de camada adaptativa está ativa. Isso requer que todos os objetos tenham a mesma altura de camada."
+msgstr "A torre de purga não é suportada quando a altura de camada adaptativa está ativa. Isso requer que todos os objetos tenham a mesma altura de camada."
# TODO: Review, changed by lang refactor. PR 14254
msgid "A prime tower requires any “support gap” to be a multiple of layer height."
-msgstr "A torre de preparo requer que o \"vão de suporte\" seja múltiplo da altura da camada."
+msgstr "A torre de purga requer que o \"vão de suporte\" seja múltiplo da altura da camada."
# TODO: Review, changed by lang refactor. PR 14254
msgid "A prime tower requires that all objects have the same layer height."
-msgstr "A torre de preparo requer que todos os objetos tenham as mesmas alturas de camada."
+msgstr "A torre de purga requer que todos os objetos tenham as mesmas alturas de camada."
# TODO: Review, changed by lang refactor. PR 14254
msgid "A prime tower requires that all objects are printed over the same number of raft layers."
-msgstr "A torre de preparo requer que todos os objetos sejam impressos sobre o mesmo número de camadas da jangada."
+msgstr "A torre de purga requer que todos os objetos sejam impressos sobre o mesmo número de camadas da jangada."
msgid "The prime tower is only supported for multiple objects if they are printed with the same support_top_z_distance."
-msgstr "A torre de preparo só é suportada para vários objetos se eles forem impressos com a mesma support_top_z_distance."
+msgstr "A torre de purga só é suportada para vários objetos se eles forem impressos com a mesma support_top_z_distance."
# TODO: Review, changed by lang refactor. PR 14254
msgid "A prime tower requires that all objects are sliced with the same layer height."
-msgstr "A torre de preparo requer que todos os objetos sejam fatiados com as mesmas alturas de camada."
+msgstr "A torre de purga requer que todos os objetos sejam fatiados com as mesmas alturas de camada."
msgid "The prime tower is only supported if all objects have the same variable layer height."
-msgstr "A torre de preparo só é suportada se todos os objetos tiverem a mesma altura de camada variável."
+msgstr "A torre de purga só é suportada se todos os objetos tiverem a mesma altura de camada variável."
msgid "One or more object were assigned an extruder that the printer does not have."
msgstr "Um ou mais objetos foram atribuídos a uma extrusora que a impressora não possui."
@@ -11869,7 +11881,7 @@ msgstr "Impressão com múltiplas extrusoras de diferentes diâmetros de bicos.
# TODO: Review, changed by lang refactor. PR 14254
msgid "A prime tower requires that support has the same layer height as the object."
-msgstr "A torre de preparo requer que o suporte tenha a mesma altura de camada do objeto."
+msgstr "A torre de purga requer que o suporte tenha a mesma altura de camada do objeto."
msgid "For Organic supports, two walls are supported only with the Hollow/Default base pattern."
msgstr "Para suportes orgânicos, apenas duas paredes são suportadas com o padrão de base Oco/Padrão."
@@ -12578,7 +12590,7 @@ msgid "Only one wall on top surfaces"
msgstr "Parede única em superfícies superiores"
msgid "Use only one wall on flat top surfaces, to give more space to the top infill pattern."
-msgstr "Use apenas uma parede em superfícies superiores, para dar mais espaço ao padrão de preenchimento superior."
+msgstr "Usar apenas uma parede em superfícies superiores, para dar mais espaço ao padrão de preenchimento superior."
msgid "One wall threshold"
msgstr "Limiar de parede única"
@@ -12595,7 +12607,7 @@ msgid "Only one wall on first layer"
msgstr "Parede única na primeira camada"
msgid "Use only one wall on first layer, to give more space to the bottom infill pattern."
-msgstr "Use apenas uma parede na primeira camada, para dar mais espaço ao padrão de preenchimento inferior."
+msgstr "Usar apenas uma parede na primeira camada, para dar mais espaço ao padrão de preenchimento inferior."
msgid "Extra perimeters on overhangs"
msgstr "Paredes extras em saliências"
@@ -13570,7 +13582,7 @@ msgid "Loading speed"
msgstr "Velocidade de carregamento"
msgid "Speed used for loading the filament on the wipe tower."
-msgstr "Velocidade usada para carregar o filamento na torre de limpeza."
+msgstr "Velocidade usada para carregar o filamento na torre de purga."
msgid "Loading speed at the start"
msgstr "Velocidade de carregamento no início"
@@ -13582,7 +13594,7 @@ msgid "Unloading speed"
msgstr "Velocidade de descarregamento"
msgid "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming)."
-msgstr "Velocidade usada para descarregar o filamento na torre de limpeza (não afeta a parte inicial do descarregamento logo após o moldeamento)."
+msgstr "Velocidade usada para descarregar o filamento na torre de purga (não afeta a parte inicial do descarregamento logo após o moldeamento)."
msgid "Unloading speed at the start"
msgstr "Velocidade de descarregamento no início"
@@ -13621,13 +13633,13 @@ msgid "Cooling moves are gradually accelerating beginning at this speed."
msgstr "Os movimentos de resfriamento estão gradualmente acelerando a partir desta velocidade."
msgid "Minimal purge on wipe tower"
-msgstr "Purga mínima na torre de limpeza"
+msgstr "Purga mínima na torre de purga"
msgid "After a tool change, the exact position of the newly loaded filament inside the nozzle may not be known, and the filament pressure is likely not yet stable. Before purging the print head into an infill or a sacrificial object, Orca Slicer will always prime this amount of material into the wipe tower to produce successive infill or sacrificial object extrusions reliably."
-msgstr "Após uma troca de ferramenta, a posição exata do filamento recém-carregado dentro do bico pode não ser conhecida, e a pressão do filamento provavelmente ainda não está estável. Antes de purgar a cabeça de impressão em um preenchimento ou em um objeto de sacrifício, o OrcaSlicer sempre preparará essa quantidade de material na torre de limpeza para produzir extrusões sucessivas de preenchimento ou de objeto de sacrifício de forma confiável."
+msgstr "Após uma troca de ferramenta, a posição exata do filamento recém-carregado dentro do bico pode não ser conhecida, e a pressão do filamento provavelmente ainda não está estável. Antes de purgar a cabeça de impressão em um preenchimento ou em um objeto de sacrifício, o OrcaSlicer sempre preparará essa quantidade de material na torre de purga para produzir extrusões sucessivas de preenchimento ou de objeto de sacrifício de forma confiável."
msgid "Wipe tower cooling"
-msgstr "Resriamento da torre de limpeza"
+msgstr "Resriamento da torre de purga"
msgid "Temperature drop before entering filament tower"
msgstr "Redução de temperatura antes de entrar na torre de filamentos"
@@ -13681,7 +13693,7 @@ msgid "Enable ramming for multi-tool setups"
msgstr "Habilitar moldeamento para configurações de multi-extrusora"
msgid "Perform ramming when using multi-tool printer (i.e. when the 'Single Extruder Multimaterial' in Printer Settings is unchecked). When checked, a small amount of filament is rapidly extruded on the wipe tower just before the tool change. This option is only used when the wipe tower is enabled."
-msgstr "Realizar moldeamento usando impressora multi-ferramenta (ou seja, quando a opção 'Multimaterial de Extrusora Única' em Configurações de Impressora está desmarcada). Quando ativo, uma pequena quantidade de filamento é rapidamente extrudado na torre de limpeza logo antes da troca de ferramenta. Esta opção é usada apenas quando a torre de limpeza está habilitada."
+msgstr "Realizar moldeamento usando impressora multi-ferramenta (ou seja, quando a opção 'Multimaterial de Extrusora Única' em Configurações de Impressora está desmarcada). Quando ativo, uma pequena quantidade de filamento é rapidamente extrudado na torre de purga logo antes da troca de ferramenta. Esta opção é usada apenas quando a torre de purga está habilitada."
msgid "Multi-tool ramming volume"
msgstr "Volume de moldeamento multi-extrusora"
@@ -14772,7 +14784,7 @@ msgid "Fixed ironing angle"
msgstr "Ângulo fixo para alisamento"
msgid "Use a fixed absolute angle for ironing."
-msgstr "Utilize um ângulo fixo absoluto para o alisamento."
+msgstr "Usar um ângulo fixo absoluto para o alisamento."
msgid "Ironing expansion"
msgstr "Expansão de alisamento"
@@ -15379,7 +15391,7 @@ msgid "This G-code is inserted when the extrusion role is changed. It runs after
msgstr "Este G-code é inserido quando a função de extrusão é trocada. Ele é executado após o G-code de máquina e do tipo de extrusão de filamento."
msgid "Plugins Used"
-msgstr ""
+msgstr "Plugins Utilizados"
msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capability."
msgstr ""
@@ -15671,7 +15683,7 @@ msgid "Scarf joint seam (beta)"
msgstr "Costura junta cachecol (beta)"
msgid "Use scarf joint to minimize seam visibility and increase seam strength."
-msgstr "Use a junta cachecol para minimizar a visibilidade da costura e aumentar a resistência da costura."
+msgstr "Usar a junta cachecol para minimizar a visibilidade da costura e aumentar a resistência da costura."
msgid "Conditional scarf joint"
msgstr "Junta cachecol condicional"
@@ -15922,7 +15934,7 @@ msgstr "Define a taxa de fluxo de acabamento ao finalizar a espiral. Normalmente
# TODO: Review, changed by lang refactor. PR 14254
msgid "If smooth or traditional mode is selected, a timelapse video will be generated for each print. After each layer is printed, a snapshot is taken with the chamber camera. All of these snapshots are composed into a timelapse video when printing completes. If smooth mode is selected, the toolhead will move to the excess chute after each layer is printed and then take a snapshot. Since the melt filament may leak from the nozzle during the process of taking a snapshot, a prime tower is required for smooth mode to wipe the nozzle."
-msgstr "Se o modo suave ou tradicional for selecionado, um vídeo em timelapse será gerado para cada impressão. Após cada camada ser impressa, uma captura de tela é feita com a câmera da câmara. Todas essas capturas de tela são compostas em um vídeo em timelapse quando a impressão é concluída. Se o modo suave for selecionado, o cabeçote se moverá para fora após cada camada ser impressa e então tirará uma captura de tela. Como o filamento derretido pode vazar do bico durante o processo de tirar uma captura de tela, é necessário uma torre de preparo para o modo suave para limpar o bico."
+msgstr "Se o modo suave ou tradicional for selecionado, um vídeo em timelapse será gerado para cada impressão. Após cada camada ser impressa, uma captura de tela é feita com a câmera da câmara. Todas essas capturas de tela são compostas em um vídeo em timelapse quando a impressão é concluída. Se o modo suave for selecionado, o cabeçote se moverá para fora após cada camada ser impressa e então tirará uma captura de tela. Como o filamento derretido pode vazar do bico durante o processo de tirar uma captura de tela, é necessário uma torre de purga para o modo suave para limpar o bico."
msgid "Traditional"
msgstr "Tradicional"
@@ -15973,7 +15985,7 @@ msgid "Single Extruder Multi Material"
msgstr "Multimaterial com Extrusora Única"
msgid "Use single nozzle to print multi filament."
-msgstr "Use um único bico para imprimir múltiplos filamentos."
+msgstr "Usar um único bico para imprimir múltiplos filamentos."
msgid "Manual Filament Change"
msgstr "Troca Manual de Filamento"
@@ -15982,10 +15994,10 @@ msgid "Enable this option to omit the custom Change filament G-code only at the
msgstr "Ative esta opção para omitir o G-code de troca de filamento personalizado apenas no início da impressão. O comando de troca de ferramenta (por exemplo, T0) será ignorado durante toda a impressão. Isso é útil para impressão manual de vários materiais, onde usamos M600/PAUSE para acionar a ação de troca manual de filamento."
msgid "Wipe tower type"
-msgstr "Tipo de torre de limpeza"
+msgstr "Tipo de torre de purga"
msgid "Choose the wipe tower implementation for multi-material prints. Type 1 is recommended for Bambu and Qidi printers with a filament cutter. Type 2 offers better compatibility with multi-tool and MMU printers and provide overall better compatibility."
-msgstr "Escolha a implementação da torre de limpeza para impressões multimaterial. O Tipo 1 é recomendado para impressoras Bambu e Qidi com cortador de filamento. O Tipo 2 oferece melhor compatibilidade com impressoras multiferramenta e MMU e proporciona melhor compatibilidade geral."
+msgstr "Escolha a implementação da torre de purga para impressões multimaterial. O Tipo 1 é recomendado para impressoras Bambu e Qidi com cortador de filamento. O Tipo 2 oferece melhor compatibilidade com impressoras multiferramenta e MMU e proporciona melhor compatibilidade geral."
msgid "Type 1"
msgstr "Tipo 1"
@@ -15994,25 +16006,25 @@ msgid "Type 2"
msgstr "Tipo 2"
msgid "Purge in prime tower"
-msgstr "Purgar na torre de preparo"
+msgstr "Purgar na torre de purga"
msgid "Purge remaining filament into prime tower."
-msgstr "Purgar o filamento restante na torre de preparo."
+msgstr "Purgar o filamento restante na torre de purga."
msgid "Enable filament ramming"
msgstr "Habilitar moldeamento de filamento"
msgid "Tool change on wipe tower"
-msgstr "Troca de ferramenta na torre de limpeza"
+msgstr "Troca de ferramenta na torre de purga"
msgid "Force the toolhead to travel to the wipe tower before issuing the tool change command (Tx). Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. By default Orca skips the travel on multi-toolhead machines because the firmware handles the head swap, which can result in the Tx command being issued above the printed part. Enable this option if you want the tool change to always be issued above the wipe tower instead."
-msgstr "Força o cabeçote de impressão a se deslocar até a torre de limpeza antes de emitir o comando de troca de ferramenta (Tx). Relevante apenas para impressoras com múltiplas extrusoras (múltiplos cabeçotes de impressão) que utilizam uma torre de limpeza Tipo 2. Por padrão, o Orca ignora o deslocamento em máquinas com múltiplos cabeçotes de impressão, pois o firmware gerencia a troca do cabeçote, o que pode resultar na emissão do comando Tx acima da peça impressa. Habilite esta opção se desejar que a troca de ferramenta seja sempre emitida acima da torre de limpeza."
+msgstr "Força o cabeçote de impressão a se deslocar até a torre de purga antes de emitir o comando de troca de ferramenta (Tx). Relevante apenas para impressoras com múltiplas extrusoras (múltiplos cabeçotes de impressão) que utilizam uma torre de purga Tipo 2. Por padrão, o Orca ignora o deslocamento em máquinas com múltiplos cabeçotes de impressão, pois o firmware gerencia a troca do cabeçote, o que pode resultar na emissão do comando Tx acima da peça impressa. Habilite esta opção se desejar que a troca de ferramenta seja sempre emitida acima da torre de purga."
msgid "No sparse layers (beta)"
msgstr "Sem camadas esparsas (beta)"
msgid "If enabled, the wipe tower will not be printed on layers with no tool changes. On layers with a tool change, extruder will travel downward to print the wipe tower. User is responsible for ensuring there is no collision with the print."
-msgstr "Se ativado, a torre de limpeza não será impressa em camadas sem troca de ferramenta. Em camadas com uma troca de ferramenta, a extrusora deslocará para baixo para imprimir a torre de limpeza. O usuário é responsável por garantir que não haja colisão com a impressão."
+msgstr "Se ativado, a torre de purga não será impressa em camadas sem troca de ferramenta. Em camadas com uma troca de ferramenta, a extrusora deslocará para baixo para imprimir a torre de purga. O usuário é responsável por garantir que não haja colisão com a impressão."
msgid "Prime all printing extruders"
msgstr "Preparar todas as extrusoras de impressão"
@@ -16045,7 +16057,7 @@ msgid "Other"
msgstr "Outro"
msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model."
-msgstr "Use \"Par-impar\" para modelos de avião 3DLabPrint. Use \"Fechar buracos\" para fechar todos os buracos no modelo."
+msgstr "Usar \"Par-impar\" para modelos de avião 3DLabPrint. Use \"Fechar buracos\" para fechar todos os buracos no modelo."
msgid "Regular"
msgstr "Padrão"
@@ -16099,7 +16111,7 @@ msgid "Pattern angle"
msgstr "Ângulo de padrão"
msgid "Use this setting to rotate the support pattern on the horizontal plane."
-msgstr "Use esta configuração para rotacionar o padrão de suporte no plano horizontal."
+msgstr "Usar esta configuração para rotacionar o padrão de suporte no plano horizontal."
msgid "On build plate only"
msgstr "Apenas na placa de impressão"
@@ -16275,7 +16287,7 @@ msgid "Independent support layer height"
msgstr "Altura independente da camada de suporte"
msgid "Support layer uses layer height independent with object layer. This is to support customizing Z-gap and save print time. This option will be invalid when the prime tower is enabled."
-msgstr "A camada de suporte usa uma altura de camada independente da camada do objeto. Isso é para suportar a personalização do vão-Z e economizar tempo de impressão. Esta opção será inválida quando a torre de preparo estiver ativa."
+msgstr "A camada de suporte usa uma altura de camada independente da camada do objeto. Isso é para suportar a personalização do vão-Z e economizar tempo de impressão. Esta opção será inválida quando a torre de purga estiver ativa."
msgid "Threshold angle"
msgstr "Ângulo limiar"
@@ -16470,7 +16482,7 @@ msgid ""
msgstr ""
msgid "Center surface pattern on"
-msgstr ""
+msgstr "Centralizar padrão de superfície em"
msgid ""
"Chooses where the centering point of centered top/bottom surface patterns (Archimedean Chords, Octagram Spiral) is placed.\n"
@@ -16478,19 +16490,22 @@ msgid ""
" - Each Model: centers the pattern on each connected body. Parts that touch or overlap share one center; parts detached from the rest each get their own.\n"
" - Each Assembly: uses a single shared center for the whole object or assembly."
msgstr ""
+"Define onde o ponto central dos padrões de superfície superior/inferior centralizados (Cordas de Arquimedes, Espiral de Octagrama) é posicionado.\n"
+" - Cada Superfície: centraliza o padrão em cada região de superfície individual, de modo que cada ilha seja simétrica por si só.\n"
+" - Cada Modelo: centraliza o padrão em cada corpo conectado. Partes que se tocam ou se sobrepõem compartilham um único centro; partes separadas do restante recebem, cada uma, o seu próprio centro.\n"
+" - Cada Montagem: utiliza um único centro compartilhado para todo o objeto ou montagem."
msgid "Each Surface"
-msgstr ""
+msgstr "Cada Superfície"
msgid "Each Model"
-msgstr ""
+msgstr "Cada Modelo"
msgid "Each Assembly"
-msgstr ""
+msgstr "Cada Montagem"
-# TODO: Review, changed by lang refactor. PR 14254
msgid "This is the speed at which traveling is done."
-msgstr "Essa é a velocidade em que o deslocamento é feito."
+msgstr "Essa é a velocidade na qual o deslocamento é feito."
msgid "Wipe while retracting"
msgstr "Limpar enquanto retrai"
@@ -16515,13 +16530,13 @@ msgstr ""
"Definir um valor na configuração de quantidade de retração antes da limpeza abaixo executará qualquer retração em excesso antes da limpeza, caso contrário, será realizada após."
msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects."
-msgstr "A torre de limpeza pode ser usada para limpar o resíduo no bico e estabilizar a pressão na câmara dentro do bico, a fim de evitar defeitos de aparência ao imprimir objetos."
+msgstr "A torre de purga pode ser usada para limpar o resíduo no bico e estabilizar a pressão na câmara dentro do bico, a fim de evitar defeitos de aparência ao imprimir objetos."
msgid "Internal ribs"
msgstr "Nervuras internas"
msgid "Enable internal ribs to increase the stability of the prime tower."
-msgstr "Habilita nervuras internas para aumentar a estabilidade da torre de preparo."
+msgstr "Habilita nervuras internas para aumentar a estabilidade da torre de purga."
msgid "Purging volumes"
msgstr "Volumes de purga"
@@ -16557,25 +16572,25 @@ msgid "Fast"
msgstr ""
msgid "This is the width of prime towers."
-msgstr "Esta é a largura das torres de preparo."
+msgstr "Esta é a largura das torres de purga."
msgid "Wipe tower rotation angle"
-msgstr "Ângulo de rotação da torre de limpeza"
+msgstr "Ângulo de rotação da torre de purga"
msgid "Wipe tower rotation angle with respect to X axis."
-msgstr "Ângulo de rotação da torre de limpeza em relação ao eixo X."
+msgstr "Ângulo de rotação da torre de purga em relação ao eixo X."
msgid "Brim width of prime tower, negative number means auto calculated width based on the height of prime tower."
-msgstr "Largura da borda da torre de preparo, um número negativo significa largura calculada automaticamente com base na altura da torre de preparo."
+msgstr "Largura da borda da torre de purga, um número negativo significa largura calculada automaticamente com base na altura da torre de purga."
msgid "Stabilization cone apex angle"
msgstr "Ângulo do ápice do cone de estabilização"
msgid "Angle at the apex of the cone that is used to stabilize the wipe tower. Larger angle means wider base."
-msgstr "Ângulo no ápice do cone usado para estabilizar a torre de limpeza. Um ângulo maior significa uma base mais larga."
+msgstr "Ângulo no ápice do cone usado para estabilizar a torre de purga. Um ângulo maior significa uma base mais larga."
msgid "Maximum wipe tower print speed"
-msgstr "Velocidade máxima de impressão da torre de limpeza"
+msgstr "Velocidade máxima de impressão da torre de purga"
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
@@ -16588,15 +16603,15 @@ msgid ""
"\n"
"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
msgstr ""
-"A velocidade máxima de impressão ao purgar na torre de limpeza e ao imprimir as camadas esparsas da torre de limpeza. Ao purgar, se a velocidade do preenchimento esparso ou a velocidade calculada a partir da velocidade volumétrica máxima do filamento for menor, a menor será utilizada.\n"
+"A velocidade máxima de impressão ao purgar na torre de purga e ao imprimir as camadas esparsas da torre de purga. Ao purgar, se a velocidade do preenchimento esparso ou a velocidade calculada a partir da velocidade volumétrica máxima do filamento for menor, a menor será utilizada.\n"
"\n"
"Ao imprimir as camadas esparsas, se a velocidade do perímetro interno ou a velocidade calculada a partir da velocidade volumétrica máxima do filamento for menor, a menor será utilizada.\n"
"\n"
-"Aumentar essa velocidade pode afetar a estabilidade da torre, bem como aumentar a força com que o bico colide com quaisquer bolhas que possam ter se formado na torre de limpeza.\n"
+"Aumentar essa velocidade pode afetar a estabilidade da torre, bem como aumentar a força com que o bico colide com quaisquer bolhas que possam ter se formado na torre de purga.\n"
"\n"
"Antes de aumentar esse parâmetro além do padrão de 90 mm/s, certifique-se de que sua impressora pode realizar pontes de forma confiável nas velocidades aumentadas e que o vazamento ao trocar a ferramenta está bem controlado.\n"
"\n"
-"Para os perímetros externos da torre de limpeza, a velocidade do perímetro interno é utilizada independentemente dessa configuração."
+"Para os perímetros externos da torre de purga, a velocidade do perímetro interno é utilizada independentemente dessa configuração."
msgid "Wall type"
msgstr "Tipo de parede"
@@ -16607,9 +16622,9 @@ msgid ""
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
"3. Rib: Adds four ribs to the tower wall for enhanced stability."
msgstr ""
-"Tipo de parede externa da torre de limpeza.\n"
+"Tipo de parede externa da torre de purga.\n"
"1. Retângulo: O tipo de parede padrão, um retângulo com largura e altura fixas.\n"
-"2. Cone: Um cone com um filete na parte inferior para ajudar a estabilizar a torre de limpeza.\n"
+"2. Cone: Um cone com um filete na parte inferior para ajudar a estabilizar a torre de purga.\n"
"3. Nervura: Adiciona quatro nervuras à parede da torre para maior estabilidade."
msgid "Rectangle"
@@ -16628,40 +16643,40 @@ msgid "Rib width"
msgstr "Largura da nervura"
msgid "Rib width is always less than half the prime tower side length."
-msgstr "A largura da nervura sempre é menor do que a metade da largura da torre de preparo."
+msgstr "A largura da nervura sempre é menor do que a metade da largura da torre de purga."
msgid "Fillet wall"
msgstr "Parede chanfrada"
msgid "The wall of prime tower will fillet."
-msgstr "A parede ta torre de preparo terá um chanfro."
+msgstr "A parede ta torre de purga terá um chanfro."
msgid "The extruder to use when printing perimeter of the wipe tower. Set to 0 to use the one that is available (non-soluble would be preferred)."
-msgstr "A extrusora a ser usada ao imprimir o perímetro da torre de limpeza. Defina como 0 para usar a disponível (não solúvel é preferido)."
+msgstr "A extrusora a ser usada ao imprimir o perímetro da torre de purga. Defina como 0 para usar a disponível (não solúvel é preferido)."
msgid "Purging volumes - load/unload volumes"
msgstr "Volumes de purga - volumes de carga/descarga"
msgid "This vector saves required volumes to change from/to each tool used on the wipe tower. These values are used to simplify creation of the full purging volumes below."
-msgstr "Este vetor salva os volumes necessários para mudar de/para cada ferramenta usada na torre de limpeza. Esses valores são usados para simplificar a criação dos volumes de purga completos abaixo."
+msgstr "Este vetor salva os volumes necessários para mudar de/para cada ferramenta usada na torre de purga. Esses valores são usados para simplificar a criação dos volumes de purga completos abaixo."
msgid "Skip points"
msgstr "Pular pontos"
msgid "The wall of prime tower will skip the start points of wipe path."
-msgstr "A parede da torre de preparo pulará os pontos iniciais do caminho de limpeza."
+msgstr "A parede da torre de purga pulará os pontos iniciais do caminho de limpeza."
msgid "Enable tower interface features"
msgstr "Ativar recursos da interface da torre"
msgid "Enable optimized prime tower interface behavior when different materials meet."
-msgstr "Ativar o comportamento otimizado da interface da torre de preparo quando diferentes materiais se encontrarem."
+msgstr "Ativar o comportamento otimizado da interface da torre de purga quando diferentes materiais se encontrarem."
msgid "Cool down from interface boost during prime tower"
-msgstr "Resfriamento após aquecimento para interface durante a torre de preparo"
+msgstr "Resfriamento após aquecimento para interface durante a torre de purga"
msgid "When interface-layer temperature boost is active, set the nozzle back to print temperature at the start of the prime tower so it cools down during the tower."
-msgstr "Quando o aumento da temperatura da camada de interface estiver ativo, ajuste o bico de volta para a temperatura de impressão no início da torre de preparo para que ele esfrie durante a torre."
+msgstr "Quando o aumento da temperatura da camada de interface estiver ativo, ajuste o bico de volta para a temperatura de impressão no início da torre de purga para que ele esfrie durante a torre."
msgid "Infill gap"
msgstr "Vão entre preenchimentos"
@@ -16670,13 +16685,13 @@ msgid "Infill gap."
msgstr "Vão entre preenchimentos."
msgid "Purging after filament change will be done inside objects' infills. This may lower the amount of waste and decrease the print time. If the walls are printed with transparent filament, the mixed color infill will be visible. It will not take effect unless the prime tower is enabled."
-msgstr "A purga após a troca de filamento será feita dentro do preenchimento dos objetos. Isso pode reduzir a quantidade de resíduos e diminuir o tempo de impressão. Se as paredes forem impressas com filamento transparente, o preenchimento de cor mista será visível. Isso não terá efeito a menos que a torre de preparo esteja ativa."
+msgstr "A purga após a troca de filamento será feita dentro do preenchimento dos objetos. Isso pode reduzir a quantidade de resíduos e diminuir o tempo de impressão. Se as paredes forem impressas com filamento transparente, o preenchimento de cor mista será visível. Isso não terá efeito a menos que a torre de purga esteja ativa."
msgid "Purging after filament change will be done inside objects' support. This may lower the amount of waste and decrease the print time. It will not take effect unless a prime tower is enabled."
-msgstr "A purga após a troca de filamento será feita dentro do suporte dos objetos. Isso pode reduzir a quantidade de resíduos e diminuir o tempo de impressão. Isso não terá efeito a menos que a torre de preparo esteja ativa."
+msgstr "A purga após a troca de filamento será feita dentro do suporte dos objetos. Isso pode reduzir a quantidade de resíduos e diminuir o tempo de impressão. Isso não terá efeito a menos que a torre de purga esteja ativa."
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
-msgstr "Este objeto será usado para purgar o bico após uma troca de filamento para economizar filamento e diminuir o tempo de impressão. As cores dos objetos serão misturadas como resultado. Isso não terá efeito a menos que a torre de preparo esteja ativa."
+msgstr "Este objeto será usado para purgar o bico após uma troca de filamento para economizar filamento e diminuir o tempo de impressão. As cores dos objetos serão misturadas como resultado. Isso não terá efeito a menos que a torre de purga esteja ativa."
msgid "Maximal bridging distance"
msgstr "Distância máxima de ponte"
@@ -16685,16 +16700,16 @@ msgid "Maximal distance between supports on sparse infill sections."
msgstr "Distância máxima entre suportes em seções de preenchimento esparso."
msgid "Wipe tower purge lines spacing"
-msgstr "Espaçamento das linhas de purga da torre de limpeza"
+msgstr "Espaçamento das linhas de purga da torre de purga"
msgid "Spacing of purge lines on the wipe tower."
-msgstr "Espaçamento das linhas de purga na torre de limpeza."
+msgstr "Espaçamento das linhas de purga na torre de purga."
msgid "Extra flow for purging"
msgstr "Fluxo extra para purga"
msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "Fluxo extra usado para as linhas de purga na torre de limpeza. Isso torna as linhas de purga mais grossas ou mais estreitas do que normalmente seriam. O espaçamento é ajustado automaticamente."
+msgstr "Fluxo extra usado para as linhas de purga na torre de purga. Isso torna as linhas de purga mais grossas ou mais estreitas do que normalmente seriam. O espaçamento é ajustado automaticamente."
msgid "Idle temperature"
msgstr "Temperatura ociosa"
@@ -16744,12 +16759,14 @@ msgid "Rotate the polyhole every layer."
msgstr "Rotacionar o polifuro a cada camada."
msgid "Maximum Polyhole edge count"
-msgstr ""
+msgstr "Contagem máxima de arestas do Polifuro"
msgid ""
"Maximum number of polyhole edges\n"
"This setting limits the amount of edges a polyhole can have"
msgstr ""
+"Número máximo de arestas de um polifuro\n"
+"Esta configuração limita a quantidade de arestas que um polifuro pode ter"
msgid "G-code thumbnails"
msgstr "Miniaturas de G-code"
@@ -16767,7 +16784,7 @@ msgid "Use relative E distances"
msgstr "Usar distâncias E relativas"
msgid "Relative extrusion is recommended when using \"label_objects\" option. Some extruders work better with this option unchecked (absolute extrusion mode). Wipe tower is only compatible with relative mode. It is recommended on most printers. Default is checked."
-msgstr "A extrusão relativa é recomendada ao usar a opção \"label_objects\". Algumas extrusoras funcionam melhor com esta opção desmarcada (modo de extrusão absoluta). A torre de limpeza é compatível apenas com o modo relativo. É recomendado na maioria das impressoras. O padrão é ativado."
+msgstr "A extrusão relativa é recomendada ao usar a opção \"label_objects\". Algumas extrusoras funcionam melhor com esta opção desmarcada (modo de extrusão absoluta). A torre de purga é compatível apenas com o modo relativo. É recomendado na maioria das impressoras. O padrão é ativado."
msgid "The classic wall generator produces walls with constant extrusion width and for very thin areas, gap-fill is used. The Arachne engine produces walls with variable extrusion width."
msgstr "O gerador de parede clássico produz paredes com largura de extrusão constante e para áreas muito finas é usado preenchimento de vão. O motor Arachne produz paredes com largura de extrusão variável."
@@ -16878,10 +16895,7 @@ msgid "When this retraction value is modified, it will be used as the amount of
msgstr "Quando este valor de retração for modificado, ele será usado como a quantidade de filament retraído dentro do hotend antes de trocar os hotends."
msgid "Support fast purge mode"
-msgstr ""
-
-msgid "Whether this printer supports fast purge mode with optimized temperature and multiplier."
-msgstr ""
+msgstr "Suporte ao modo de purga rápida"
msgid "The volume of material required to prime the extruder for a hotend change on the tower."
msgstr "O volume de material necessário para preparar o extrusor para uma troca do hotend na torre."
@@ -17133,10 +17147,10 @@ msgid "Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5
msgstr "Define o nível do log de depuração. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:trace\n"
msgid "Log file"
-msgstr ""
+msgstr "Arquivo de log"
msgid "Redirects debug logging to file.\n"
-msgstr ""
+msgstr "Redireciona o log de depuração para um arquivo.\n"
msgid "Enable timelapse for print"
msgstr "Habilitar timelapse para impressão"
@@ -17247,10 +17261,10 @@ msgid "Specific for sequential printing. Zero-based index of currently printed o
msgstr "Específico para impressão sequencial. Índice base zero do objeto atualmente impresso."
msgid "Has wipe tower"
-msgstr "Tem torre de limpeza"
+msgstr "Tem torre de purga"
msgid "Whether or not wipe tower is being generated in the print."
-msgstr "Se a torre de limpeza está sendo gerada ou não na impressão."
+msgstr "Se a torre de purga está sendo gerada ou não na impressão."
msgid "Initial extruder"
msgstr "Extrusora inicial"
@@ -17337,16 +17351,16 @@ msgid "Total cost of all material used in the print. Calculated from filament_co
msgstr "Custo total de todo o material usado na impressão. Calculado a partir do valor filament_cost nas Configurações de Filamento."
msgid "Total wipe tower cost"
-msgstr "Custo total da torre de limpeza"
+msgstr "Custo total da torre de purga"
msgid "Total cost of the material wasted on the wipe tower. Calculated from filament_cost value in Filament Settings."
-msgstr "Custo total do material desperdiçado na torre de limpeza. Calculado a partir do valor filament_cost nas Configurações de Filamento."
+msgstr "Custo total do material desperdiçado na torre de purga. Calculado a partir do valor filament_cost nas Configurações de Filamento."
msgid "Wipe tower volume"
-msgstr "Volume da torre de limpeza"
+msgstr "Volume da torre de purga"
msgid "Total filament volume extruded on the wipe tower."
-msgstr "Volume total de filamento extrudado na torre de limpeza."
+msgstr "Volume total de filamento extrudado na torre de purga."
msgid "Used filament"
msgstr "Fil. usado"
@@ -18397,7 +18411,7 @@ msgid "Upload to Printer Host with the following filename:"
msgstr "Enviar para o Host da Impressora com o seguinte nome de arquivo:"
msgid "Use forward slashes ( / ) as a directory separator if needed."
-msgstr "Use barras inclinadas ( / ) como separador de diretórios, se necessário."
+msgstr "Usar barras inclinadas ( / ) como separador de diretórios, se necessário."
msgid "Upload to storage"
msgstr "Enviar para armazenamento"
@@ -18432,7 +18446,7 @@ msgid "Unable to read IFS slots from printer."
msgstr "Não foi possível ler os espaços IFS da impressora."
msgid "Loading IFS slots from printer..."
-msgstr "Carregando espaços IFS da impressora..."
+msgstr "Carregando espaços IFS da impressora…"
msgid "Slice the plate first to get project material information."
msgstr "Fatie a placa primeiro para obter informações sobre os materiais do projeto."
@@ -19192,93 +19206,95 @@ msgid "Copy system information to clipboard"
msgstr "Copiar informações do sistema para a área de transferência"
msgid "We need information for diagnosing source of the issue. Check wiki page for detailed guide."
-msgstr ""
+msgstr "Precisamos de informações para diagnosticar a origem do problema. Consulte a página da wiki para obter um guia detalhado."
msgid "Pack button collects project file and logs of current session onto a zip file."
-msgstr ""
+msgstr "O botão \"Empacotar\" reúne o arquivo do projeto e os logs da sessão atual em um arquivo ZIP."
msgid "Any additional visual examples like images or screen recordings might be helpful while reporting the issue."
-msgstr ""
+msgstr "Quaisquer exemplos visuais adicionais, como imagens ou gravações de tela, podem ser úteis ao reportar o problema."
msgid "Report issue"
-msgstr ""
+msgstr "Reportar problema"
msgid "Pack"
-msgstr ""
+msgstr "Empacotar"
msgid "Cleans and rebuilds system profiles cache on next launch."
-msgstr ""
+msgstr "Limpa e reconstrói o cache de perfis do sistema na próxima inicialização."
msgid "Clean system profiles cache"
-msgstr ""
+msgstr "Limpar o cache de perfis do sistema"
msgid "Clean"
msgstr "Limpar"
msgid "Loaded profiles overview"
-msgstr ""
+msgstr "Visão geral dos perfis carregados"
msgid "This section shows information for loaded profiles."
-msgstr ""
+msgstr "Esta seção exibe informações sobre perfis carregados."
msgid "Exports detailed overview of loaded profiles in json format."
-msgstr ""
+msgstr "Exporta uma visão geral detalhada dos perfis carregados no formato JSON."
msgid "Configurations folder"
-msgstr ""
+msgstr "Pasta de configurações"
msgid "Opens configurations folder."
-msgstr ""
+msgstr "Abre a pasta de configurações."
msgid "Log level"
-msgstr ""
+msgstr "Nível de log"
msgid "Stored logs"
-msgstr ""
+msgstr "Logs armazenados"
msgid "Packs all stored logs onto a zip file."
-msgstr ""
+msgstr "Compacta todos os logs armazenados em um arquivo ZIP."
msgid "Profiles"
-msgstr ""
+msgstr "Perfis"
msgid "Select NO to close dialog and review project."
-msgstr ""
+msgstr "Selecione NÃO para fechar a caixa de diálogo e revisar o projeto."
msgid "No project file on current session. Only logs will be included to package"
-msgstr ""
+msgstr "Nenhum arquivo de projeto na sessão atual. Apenas os logs serão incluídos no pacote"
msgid "Please make sure any instances of OrcaSlicer are not running"
-msgstr ""
+msgstr "Certifique-se de que nenhuma instância do OrcaSlicer esteja em execução"
msgid "System folder cannot be deleted because some files are in use by another application. Please close any applications using these files and try again."
-msgstr ""
+msgstr "A pasta do sistema não pode ser excluída porque alguns arquivos estão sendo usados por outro aplicativo. Feche todos os aplicativos que estejam utilizando esses arquivos e tente novamente."
msgid "Failed to delete system folder..."
-msgstr ""
+msgstr "Falha ao excluir a pasta do sistema…"
msgid "Failed to determine executable path."
-msgstr ""
+msgstr "Falha ao determinar o caminho do executável."
msgid "Failed to launch a new instance."
-msgstr ""
+msgstr "Falha ao iniciar uma nova instância."
msgid "log(s)"
-msgstr ""
+msgstr "log(s)"
msgid "Choose where to save the exported JSON file"
-msgstr ""
+msgstr "Escolha onde salvar o arquivo JSON exportado"
msgid ""
"Export failed\n"
"Please check write permissions or file in use by another application"
msgstr ""
+"Falha na exportação\n"
+"Verifique as permissões de gravação ou se o arquivo está sendo usado por outro aplicativo"
msgid "Choose where to save the exported ZIP file"
-msgstr ""
+msgstr "Escolha onde salvar o arquivo ZIP exportado"
msgid "File already exists. Overwrite?"
-msgstr ""
+msgstr "O arquivo já existe. Sobrescrever?"
msgid "3DPrinterOS Cloud upload options"
msgstr "Opções de upload para a nuvem do 3DPrinterOS"
@@ -19363,17 +19379,17 @@ msgid "Could not connect to MKS"
msgstr "Não foi possível conectar ao MKS"
msgid "Connection to Moonraker is working correctly."
-msgstr ""
+msgstr "A conexão com o Moonraker funciona corretamente."
msgid "Could not connect to Moonraker"
-msgstr ""
+msgstr "Não foi possível conectar ao Monnraker"
msgid "The host responded but it doesn't look like Moonraker (missing result.klippy_state)."
-msgstr ""
+msgstr "O host respondeu, mas não parece ser o Moonraker (falta o result.klippy_state)."
#, c-format, boost-format
msgid "Could not parse Moonraker server response: %s"
-msgstr ""
+msgstr "Não foi possível analisar a resposta do servidor Moonraker: %s"
msgid "Connection to OctoPrint is working correctly."
msgstr "A conexão com o OctoPrint funciona corretamente."
@@ -20263,7 +20279,7 @@ msgid "The AMS can rotate the filament which is properly stored, providing bette
msgstr ""
msgid "Rotate spool when drying"
-msgstr ""
+msgstr "Girar o carretel durante a secagem"
msgctxt "amsdrying"
msgid "Back"
@@ -20282,7 +20298,7 @@ msgid " minimum drying temperature is "
msgstr ""
msgid "This filament may not be completely dried."
-msgstr ""
+msgstr "Este filamento pode não estar completamente seco."
msgid "This AMS is currently printing. To ensure print quality, the drying temperature cannot exceed the recommended drying temperature."
msgstr ""
@@ -20291,19 +20307,19 @@ msgid "The temperature shall not exceed the filament's heat distortion temperatu
msgstr ""
msgid "Minimum time value cannot be less than 1."
-msgstr ""
+msgstr "O valor mínimo de tempo não pode ser inferior a 1."
msgid "Maximum time value cannot be greater than 24."
-msgstr ""
+msgstr "O valor máximo de tempo não pode ser superior a 24."
msgid "Insufficient power"
-msgstr ""
+msgstr "Potência insuficiente"
msgid " Too many AMS drying simultaneously. Please plug in the power or stop other drying processes before starting."
msgstr ""
msgid "AMS is busy"
-msgstr ""
+msgstr "O AMS está ocupado"
msgid " AMS is calibrating | reading RFID | loading/unloading material, please wait."
msgstr ""
@@ -20315,13 +20331,13 @@ msgid " The high drying temperature may cause AMS blockage, please unload first
msgstr ""
msgid "Initiating AMS drying"
-msgstr ""
+msgstr "Iniciando a secagem AMS"
msgid "Not supported in 2D mode"
-msgstr ""
+msgstr "Não suportado no modo 2D"
msgid "Task in progress"
-msgstr ""
+msgstr "Tarefa em progresso"
msgid " The AMS might be in use during Task."
msgstr ""
@@ -20336,46 +20352,46 @@ msgid " The high drying temperature may cause AMS blockage. Please unload the f
msgstr ""
msgid "System is busy"
-msgstr ""
+msgstr "O sistema está ocupado"
msgid " Initiating other drying processes, please wait a few seconds..."
msgstr ""
msgid "For better drying results, remove the filament and allow it to rotate."
-msgstr ""
+msgstr "Para obter melhores resultados de secagem, remova o filamento e permita que ele gire."
msgid "The AMS will automatically rotate the stored filament slots to enhance the drying performance."
-msgstr ""
+msgstr "O AMS irá girar automaticamente os slots de filamento armazenados para melhorar o desempenho da secagem."
msgid "Alternatively, you can dry the filament without removing it."
-msgstr ""
+msgstr "Alternativamente, você pode secar o filamento sem removê-lo."
msgid "Unknown filaments will be treated as PLA."
-msgstr ""
+msgstr "Filamentos desconhecidos serão tratados como PLA."
msgid "Please store the filament marked with an exclamation mark."
-msgstr ""
+msgstr "Por favor, armazene o filamento marcado com um ponto de exclamação."
msgid "Filament left in the feeder during drying may soften because the drying temperature exceeds the softening point of materials like PLA and TPU."
-msgstr ""
+msgstr "O filamento deixado no alimentador durante a secagem pode amolecer, pois a temperatura de secagem ultrapassa o ponto de amolecimento de materiais como PLA e TPU."
msgid "Starting: Checking adapter connection"
-msgstr ""
+msgstr "Iniciando: Verificando a conexão do adaptador"
msgid "Starting: Checking filament status"
-msgstr ""
+msgstr "Iniciando: Verificando estado do filamento"
msgid "Starting: Checking drying presets"
-msgstr ""
+msgstr "Iniciando: Verificando configurações de secagem"
msgid "Starting: Checking filament location"
-msgstr ""
+msgstr "Iniciando: Verificando a posição do filamento"
msgid "Starting: Checking air intake"
-msgstr ""
+msgstr "Iniciando: Verificando a entrada de ar"
msgid "Starting: Checking air vent"
-msgstr ""
+msgstr "Iniciando: Verificando a saída de ar"
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr "O filamento pode não ser compatível com as configurações atuais da máquina. Serão usadas predefinições genéricas de filamento."
@@ -20602,8 +20618,7 @@ msgstr ""
"Divida suas impressões em placas\n"
"Você sabia que pode dividir um modelo que tem diversas peças em placas individuais distintas prontas para imprimir? Isso simplifica o processo de manter o controle de todas as peças."
-#: resources/data/hints.ini: [hint:Speed up your print with Adaptive Layer
-#: Height]
+#: resources/data/hints.ini: [hint:Speed up your print with Adaptive Layer Height]
msgid ""
"Speed up your print with Adaptive Layer Height\n"
"Did you know that you can print a model even faster by using the Adaptive Layer Height option? Check it out!"
@@ -20675,14 +20690,13 @@ msgstr ""
"Melhorar a resistência\n"
"Você sabia que pode usar mais voltas de parede e maior densidade de preenchimento esparso mais alta para melhorar a resistência do modelo?"
-#: resources/data/hints.ini: [hint:When do you need to print with the printer
-#: door opened]
+#: resources/data/hints.ini: [hint:When do you need to print with the printer door opened]
msgid ""
"When do you need to print with the printer door opened?\n"
"Did you know that opening the printer door can reduce the probability of extruder/hotend clogging when printing lower temperature filament with a higher enclosure temperature? There is more info about this in the Wiki."
msgstr ""
"Quando é necessário imprimir com a porta da impressora aberta?\n"
-"Você sabia que abrir a porta da impressora pode reduzir a probabilidade de entupimento da extrusora/bico aquecido ao imprimir filamento de temperatura mais baixa com uma temperatura de gabinete mais alta? Mais informações sobre isso na Wiki."
+"Você sabia que abrir a porta da impressora pode reduzir a probabilidade de entupimento da extrusora/hotend ao imprimir filamento de temperatura mais baixa com uma temperatura de gabinete mais alta? Mais informações sobre isso na Wiki."
#: resources/data/hints.ini: [hint:Avoid warping]
msgid ""
@@ -20698,9 +20712,6 @@ msgstr ""
#~ msgid "Select filament that installed to the right nozzle"
#~ msgstr "Selecione o filamento instalado no bico direito"
-#~ msgid "Select Filament && Hotends"
-#~ msgstr "Selecionar Slot de Filamento && Bicos de Aquecimento"
-
#, c-format, boost-format
#~ msgid "Note: the filament type(%s) does not match with the filament type(%s) in the slicing file. If you want to use this slot, you can install %s instead of %s and change slot information on the 'Device' page."
#~ msgstr "Nota: o tipo de filamento (%s) não corresponde ao tipo de filamento (%s) no arquivo de fatiamento. Se você quiser usar este slot, pode instalar %s em vez de %s e alterar as informações do slot na página 'Dispositivo'."
@@ -20728,12 +20739,6 @@ msgstr ""
#~ msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
#~ msgstr "Espaçamento inválido fornecido para Flow::with_spacing(), verifique a altura da camada e a largura da extrusão."
-#~ msgid "°C"
-#~ msgstr "℃"
-
-#~ msgid "%"
-#~ msgstr "%"
-
#~ msgid "Renders cast shadows on the plate in realistic view."
#~ msgstr "Renderiza sombras na placa em uma visualização realista."
@@ -20763,12 +20768,6 @@ msgstr ""
#~ "Alinha as direções do preenchimento, das pontes, do alisamento e do preenchimento de superfícies à orientação do modelo na mesa de impressão.\n"
#~ "Quando ativado, as direções giram com o modelo para manter características ideais de resistência."
-#~ msgid "Print"
-#~ msgstr "Imprimir"
-
-#~ msgid "in"
-#~ msgstr "pol"
-
#~ msgid "Object coordinates"
#~ msgstr "Coordenadas do objeto"
@@ -20848,10 +20847,6 @@ msgstr ""
#~ msgid "Zoom view"
#~ msgstr "Aproximar vista"
-# TODO: Review, changed by lang refactor. PR 14254
-#~ msgid "Reverse scroll direction while zooming"
-#~ msgstr "O botão de roda do mouse inverte ao fazer zoom"
-
#, c-format, boost-format
#~ msgid "Left: %s"
#~ msgstr "Esquerda: %s"
@@ -20911,9 +20906,6 @@ msgstr ""
#~ msgid "Filament Settings"
#~ msgstr "Configurações do Filamento"
-#~ msgid "Detail."
-#~ msgstr "Detalhes."
-
#~ msgid "Support painting"
#~ msgstr "Pintura de suporte"
@@ -20923,12 +20915,6 @@ msgstr ""
#~ msgid "Same as Global Bed Type"
#~ msgstr "Mesmo que o Tipo de Mesa Global"
-#~ msgid "Undef"
-#~ msgstr "Indefinido"
-
-#~ msgid "Undefine"
-#~ msgstr "Não definido"
-
#~ msgid "Number of top interface layers."
#~ msgstr "Número de camadas de interface superior."
@@ -21344,10 +21330,10 @@ msgstr ""
#~ "A altura da primeira camada será redefinida para 0.2."
#~ msgid "Prime tower position exceeded build plate boundaries and was repositioned to the nearest valid edge."
-#~ msgstr "A posição da torre de preparo ultrapassou os limites da placa de impressão e foi reposicionada para a borda válida mais próxima."
+#~ msgstr "A posição da torre de purga ultrapassou os limites da placa de impressão e foi reposicionada para a borda válida mais próxima."
#~ msgid "Enabling both precise Z height and the prime tower may cause the size of prime tower to increase. Do you still want to enable?"
-#~ msgstr "Habilitar a altura Z precisa e a torre de preparação juntas pode causar o aumento de tamanho da torre de preparo. Deseja habilitar mesmo assim?"
+#~ msgstr "Habilitar a altura Z precisa e a torre de preparação juntas pode causar o aumento de tamanho da torre de purga. Deseja habilitar mesmo assim?"
#~ msgid "Missing BambuSource component registered for media playing! Please re-install BambuStudio or seek after-sales help."
#~ msgstr "Componente BambuSource ausente registrado para reprodução de mídia! Reinstale o Bambu Studio ou procure ajuda pós-venda."
@@ -21382,10 +21368,6 @@ msgstr ""
#~ "Temp. Final: >= 170\n"
#~ "Temp. Inicial: >= Temp. Final + 5"
-#, c-format, boost-format
-#~ msgid "%d ℃"
-#~ msgstr "%d ℃"
-
#~ msgid "Filament remapping finished."
#~ msgstr "Remapeamento de filamentos concluído."
@@ -21439,9 +21421,6 @@ msgstr ""
#~ msgid "View wiki"
#~ msgstr "Ver wiki"
-#~ msgid "Advance"
-#~ msgstr "Avançado"
-
#~ msgid "Sync info"
#~ msgstr "Sincronizar informações"
@@ -21454,12 +21433,6 @@ msgstr ""
#~ msgid "Disable to use latest network plug-in that supports new BambuLab firmwares."
#~ msgstr "Desabilitar para usar o plug-in de rede mais recente que suporta novos firmwares BambuLab."
-#~ msgid "Cool"
-#~ msgstr "Fria"
-
-#~ msgid "Engineering"
-#~ msgstr "Engenharia"
-
#~ msgid "High Temp"
#~ msgstr "Alta Temperatura"
@@ -21502,9 +21475,6 @@ msgstr ""
#~ msgid "Connecting to printer"
#~ msgstr "Conectando à impressora"
-#~ msgid "Ok"
-#~ msgstr "Ok"
-
#~ msgid "Pressure Advance Guide"
#~ msgstr "Guia de Pressure Advance"
@@ -21614,7 +21584,7 @@ msgstr ""
#~ msgstr "Pausado devido ao esgotamento do filamento"
#~ msgid "Heating hotend"
-#~ msgstr "Aquecendo extrusora"
+#~ msgstr "Aquecendo hotend"
#~ msgid "Calibrating extrusion"
#~ msgstr "Calibrando a extrusão"
@@ -21664,15 +21634,6 @@ msgstr ""
#~ msgid "Nozzle clog pause"
#~ msgstr "Pausa de obstrução do bico"
-#~ msgid "Fatal"
-#~ msgstr "Fatal"
-
-#~ msgid "Serious"
-#~ msgstr "Grave"
-
-#~ msgid "Common"
-#~ msgstr "Comum"
-
#~ msgid "The current chamber temperature or the target chamber temperature exceeds 45℃. In order to avoid extruder clogging, low temperature filament (PLA/PETG/TPU) is not allowed to be loaded."
#~ msgstr "A temperatura atual da câmara ou a temperatura da câmara alvo excede 45℃. Para evitar obstrução da extrusora, não é permitido carregar filamento de baixa temperatura (PLA/PETG/TPU)."
@@ -21705,9 +21666,6 @@ msgstr ""
#~ msgid "Storage unavailable, insert SD card."
#~ msgstr "Armazenamento indisponível, insira um cartão SD."
-#~ msgid "Cham"
-#~ msgstr "Filhote"
-
#~ msgid "Still unload"
#~ msgstr "Ainda descarregando"
@@ -21720,10 +21678,6 @@ msgstr ""
#~ msgid "Sensitivity of pausing is"
#~ msgstr "Sensibilidade da pausa é"
-#, c-format, boost-format
-#~ msgid "%.1f"
-#~ msgstr "%.1f"
-
#~ msgid "No AMS filaments. Please select a printer in 'Device' page to load AMS info."
#~ msgstr "Sem filamentos AMS. Por favor, selecione uma impressora na página 'Dispositivo' para carregar informações AMS."
@@ -21788,9 +21742,6 @@ msgstr ""
#~ msgid "Associate URLs to OrcaSlicer"
#~ msgstr "Associar URLs ao OrcaSlicer"
-#~ msgid "every"
-#~ msgstr "cada"
-
#~ msgid "Downloads"
#~ msgstr "Transferências"
@@ -22262,9 +22213,6 @@ msgstr ""
#~ "\n"
#~ "NOTA: As superfícies inferior e superior não serão afetadas por este valor para evitar lacunas visuais no exterior do modelo. Ajuste o 'Limiar de uma parede' nas configurações avançadas abaixo para ajustar a sensibilidade do que é considerado uma superfície superior. 'Limiar de uma parede' só é visível se esta configuração estiver acima do valor padrão de 0,5, ou se superfícies superiores de parede única estiverem habilitadas."
-#~ msgid "Shrinkage"
-#~ msgstr "Retração"
-
#~ msgid "Decrease this value slightly (for example 0.9) to reduce the amount of material for bridge, to improve sag"
#~ msgstr "Diminua ligeiramente este valor (por exemplo, 0.9) para reduzir a quantidade de material para ponte, para melhorar a flacidez"
@@ -22312,7 +22260,7 @@ msgstr ""
#~ msgstr "Uma temperatura mais alta na câmara pode ajudar a suprimir ou reduzir o empenamento e potencialmente levar a uma maior resistência de ligação entre camadas para materiais de alta temperatura como ABS, ASA, PC, PA e assim por diante. Ao mesmo tempo, a filtragem de ar de ABS e ASA ficará pior. Para PLA, PETG, TPU, PVA e outros materiais de baixa temperatura, a temperatura real da câmara não deve ser alta para evitar obstruções, portanto, é altamente recomendável usar 0, que significa desligado"
#~ msgid "Different nozzle diameters and different filament diameters is not allowed when prime tower is enabled."
-#~ msgstr "Diâmetros de bico diferentes e diâmetros de filamento diferentes não são permitidos quando a torre de preparo está ativa."
+#~ msgstr "Diâmetros de bico diferentes e diâmetros de filamento diferentes não são permitidos quando a torre de purga está ativa."
#~ msgid "Ooze prevention is currently not supported with the prime tower enabled."
#~ msgstr "A prevenção de vazamento atualmente não é suportada com a torre de prepao ativa."
@@ -22321,7 +22269,7 @@ msgstr ""
#~ msgstr "Profundidade de intertravamento de uma região segmentada. Zero desativa essa funcionalidade."
#~ msgid "Wipe tower extruder"
-#~ msgstr "Extrusora da torre de limpeza"
+#~ msgstr "Extrusora da torre de purga"
#~ msgid "Current association: "
#~ msgstr "Associação atual: "
@@ -22350,8 +22298,5 @@ msgstr ""
#~ msgid "File size exceeds the 100MB upload limit. Please upload your file through the panel."
#~ msgstr "O tamanho do arquivo excede o limite de envio de 100MB. Por favor, envie seu arquivo através do painel."
-#~ msgid "PrintingPause"
-#~ msgstr "Pausa na Impressão"
-
#~ msgid "Printer local connection failed, please try again."
#~ msgstr "Falha na conexão local da impressora, por favor tente novamente."
diff --git a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po
index aeb9575348..fb08c174a7 100644
--- a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po
+++ b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po
@@ -18,22 +18,22 @@ msgstr ""
"X-Generator: Poedit 3.9\n"
msgid "Main Extruder"
-msgstr ""
+msgstr "主挤出机"
msgid "Main extruder"
-msgstr ""
+msgstr "主挤出机"
msgid "main extruder"
-msgstr ""
+msgstr "主挤出机"
msgid "Auxiliary Extruder"
-msgstr ""
+msgstr "辅助挤出机"
msgid "Auxiliary extruder"
-msgstr ""
+msgstr "辅助挤出机"
msgid "auxiliary extruder"
-msgstr ""
+msgstr "辅助挤出机"
msgid "Left Extruder"
msgstr "左挤出机"
@@ -54,22 +54,22 @@ msgid "right extruder"
msgstr "右侧挤出机"
msgid "Main Nozzle"
-msgstr ""
+msgstr "主喷嘴"
msgid "Main nozzle"
-msgstr ""
+msgstr "主喷嘴"
msgid "main nozzle"
-msgstr ""
+msgstr "主喷嘴"
msgid "Auxiliary Nozzle"
-msgstr ""
+msgstr "辅助喷嘴"
msgid "Auxiliary nozzle"
-msgstr ""
+msgstr "辅助喷嘴"
msgid "auxiliary nozzle"
-msgstr ""
+msgstr "辅助喷嘴"
msgid "Left Nozzle"
msgstr "左喷嘴"
@@ -90,52 +90,52 @@ msgid "right nozzle"
msgstr "右喷嘴"
msgid "Main Hotend"
-msgstr ""
+msgstr "主热端"
msgid "Main hotend"
-msgstr ""
+msgstr "主热端"
msgid "main hotend"
-msgstr ""
+msgstr "主热端"
msgid "Auxiliary Hotend"
-msgstr ""
+msgstr "辅助热端"
msgid "Auxiliary hotend"
-msgstr ""
+msgstr "辅助热端"
msgid "auxiliary hotend"
-msgstr ""
+msgstr "辅助热端"
msgid "Left Hotend"
-msgstr ""
+msgstr "左热端"
msgid "Left hotend"
-msgstr ""
+msgstr "左热端"
msgid "left hotend"
-msgstr ""
+msgstr "左热端"
msgid "Right Hotend"
-msgstr ""
+msgstr "右热端"
msgid "Right hotend"
-msgstr ""
+msgstr "右热端"
msgid "right hotend"
-msgstr ""
+msgstr "右热端"
msgid "main"
-msgstr ""
+msgstr "主"
msgid "auxiliary"
-msgstr ""
+msgstr "辅助"
msgid "Main"
-msgstr ""
+msgstr "主"
msgid "Auxiliary"
-msgstr ""
+msgstr "辅助"
msgid "left"
msgstr "左"
@@ -153,28 +153,28 @@ msgid "extruder"
msgstr "挤出机"
msgid "TPU is not supported by AMS."
-msgstr "AMS不支持TPU耗材。"
+msgstr "AMS 不支持 TPU 耗材。"
msgid "AMS does not support 'Bambu Lab PET-CF'."
msgstr "AMS不支持Bambu Lab PET-CF耗材。"
msgid "The current filament doesn't support the E3D high-flow nozzle and can't be used."
-msgstr ""
+msgstr "当前的耗材不支持 E3D 高流量喷嘴,因此无法使用。"
msgid "The current filament doesn't support the TPU high-flow nozzle and can't be used."
-msgstr ""
+msgstr "当前的耗材不支持 TPU 高流量喷嘴,因此无法使用。"
msgid "Auto dynamic flow calibration is not supported for TPU filament."
-msgstr ""
+msgstr "自动流量校准不支持 TPU 耗材"
msgid "Bambu TPU 85A is not supported for printing with 0.4 mm Standard or High Flow nozzles."
-msgstr ""
+msgstr "Bambu TPU 85A 不支持使用 0.4 毫米标准或高流动性喷嘴进行打印。"
msgid "How to feed TPU filament."
-msgstr ""
+msgstr "如何装入 TPU 耗材。"
msgid "How to feed TPU filament on X2D."
-msgstr ""
+msgstr "如何为 X2D 装载 TPU 耗材。"
msgid "Please cold pull before printing TPU to avoid clogging. You may use cold pull maintenance on the printer."
msgstr "打印TPU前请先执行冷拉以避免堵塞。您可以使用打印机上的冷拉维护功能。"
@@ -189,7 +189,7 @@ msgid "The rough surface of PLA Glow can accelerate wear on the AMS system, part
msgstr "泛光PLA的粗糙表面可能会加速AMS的磨损,尤其是AMS Lite的内部组件。"
msgid "PLA Glow may wear the AMS first stage feeder. Use an external spool instead."
-msgstr ""
+msgstr "PLA Glow 可能导致 AMS 一级进料器过度磨损,建议改用外置料盘。"
msgid "CF/GF filaments are hard and brittle, it's easy to break or get stuck in AMS, please use with caution."
msgstr "CF/GF耗材丝又硬又脆,在AMS中很容易断裂或卡住,请谨慎使用。"
@@ -201,23 +201,23 @@ msgid "PPA-CF is brittle and could break in bended PTFE tube above Toolhead."
msgstr "PPA-CF材质较脆,用在工具头上方的弯曲PTFE管中可能会断裂。"
msgid "Default settings may affect print quality. Adjust as needed for best results."
-msgstr ""
+msgstr "默认参数可能影响打印质量,请根据需要进行调整,以获得最佳效果。"
#, c-format, boost-format
msgid "%s has a risk of nozzle clogging when using 0.4mm high-flow nozzles. Use with caution."
-msgstr ""
+msgstr "%s 在使用 0.4 mm 高流量喷嘴时存在堵头风险,谨慎使用。"
#, c-format, boost-format
msgid "%s filaments are hard and brittle and could break in AMS, and there is also a risk of nozzle clogging when using 0.4mm high-flow nozzles. Use with caution."
-msgstr ""
+msgstr "%s 耗材质地较硬且较脆,在 AMS 中使用时可能发生断裂,使用 0.4 mm 高流量喷嘴时还存在堵头风险,谨慎使用。"
#, c-format, boost-format
msgid "%s has a risk of nozzle clogging when using 0.4, 0.6, 0.8mm high-flow nozzles. Use with caution."
-msgstr ""
+msgstr "%s 在使用 0.4 / 0.6 / 0.8 mm 高流量喷嘴时存在堵头风险,谨慎使用。"
#, c-format, boost-format
msgid "%s may fail to load or unload due to the Filament Track Switch. If you wish to continue."
-msgstr ""
+msgstr "%s 可能因耗材变轨器而无法装入或退料。如果要继续。"
#, c-format, boost-format
msgid "%s is not supported by %s extruder."
@@ -225,19 +225,19 @@ msgstr "%s 不被 %s 挤出机支持。"
#, c-format, boost-format
msgid "There may be critical print quality issues when printing '%s' with %s Bowden extruder. Use with caution!"
-msgstr ""
+msgstr "'%s' 在 %s 远程挤出机上打印时,可能会出现严重的打印质量问题。谨慎使用!"
#, c-format, boost-format
msgid "There may be critical print quality issues when printing '%s' with %s extruder. Use with caution!"
-msgstr ""
+msgstr "'%s' 在 %s 挤出机上打印时,可能会出现严重的打印质量问题。谨慎使用!"
#, c-format, boost-format
msgid "There may be print quality issues when printing '%s' with %s Bowden extruder. Use with caution."
-msgstr ""
+msgstr "'%s' 在 %s 远程挤出机上打印时,可能会出现打印质量问题。谨慎使用。"
#, c-format, boost-format
msgid "There may be print quality issues when printing '%s' with %s extruder. Use with caution."
-msgstr ""
+msgstr "'%s' 在 %s 挤出机上打印时,可能会出现打印质量问题。谨慎使用。"
msgid "High Flow"
msgstr "高流量"
@@ -246,7 +246,7 @@ msgid "Standard"
msgstr "标准"
msgid "TPU High Flow"
-msgstr "TPU高流量"
+msgstr "TPU 高流量"
msgid "Unknown"
msgstr "未定义"
@@ -282,7 +282,7 @@ msgid "During the hotend upgrade, the toolhead will move. Don't reach into the c
msgstr "在热端升级过程中,工具头会移动。请勿将手伸入机箱内。"
msgid "Update"
-msgstr ""
+msgstr "更新"
msgid "Current AMS humidity"
msgstr "当前AMS湿度"
@@ -345,7 +345,7 @@ msgid "Please wait"
msgstr "请稍候"
msgid "Reading"
-msgstr ""
+msgstr "读取中"
msgid "Running..."
msgstr "运行中..."
@@ -369,7 +369,7 @@ msgid "Refresh"
msgstr "刷新"
msgid "Refreshing"
-msgstr "清爽"
+msgstr "刷新中"
msgid "Hotend status abnormal, unavailable at present. Please upgrade the firmware and try again."
msgstr "热端状态异常,目前不可用。请升级固件后重试。"
@@ -645,7 +645,7 @@ msgstr "错误:请先关闭所有工具栏菜单"
msgctxt "inches"
msgid "in"
-msgstr ""
+msgstr "in"
msgid "mm"
msgstr "mm"
@@ -718,13 +718,13 @@ msgid "Part"
msgstr "零件"
msgid "Relative"
-msgstr ""
+msgstr "相对"
msgid "Coordinate system used for transform actions."
-msgstr ""
+msgstr "用于变换操作的坐标系"
msgid "Absolute"
-msgstr ""
+msgstr "绝对"
msgid "Reset current rotation to the value when open the rotation tool."
msgstr "重置当前旋转为打开旋转工具时的值"
@@ -2191,31 +2191,39 @@ msgid "The version of Orca Slicer is too low and needs to be updated to the late
msgstr "此逆戟鲸切片器的版本过低,需更新至最新版本方可正常使用"
msgid "Cloud sync conflict:"
-msgstr ""
+msgstr "云同步冲突:"
#, c-format, boost-format
msgid "Cloud sync conflict for preset \"%s\":"
-msgstr ""
+msgstr "预设 \"%s\" 云同步冲突:"
msgid ""
"This preset has a newer version in OrcaCloud.\n"
"Pull downloads the cloud copy. Force push overwrites it with your local preset."
msgstr ""
+"该预设在 OrcaCloud 中有更新版本。\n"
+"拉取会下载云端副本。强制推送会用您的本地预设覆盖该副本"
msgid ""
"A preset with this name already exists in OrcaCloud.\n"
"Pull downloads the cloud copy. Force push overwrites it with your local preset."
msgstr ""
+"OrcaCloud 中已经存在一个同名的预设。\n"
+"拉取会下载云端副本。强制推送会用您的本地预设覆盖该副本。"
msgid ""
"A preset with the same name was previously deleted from the cloud.\n"
"Delete will delete your local preset. Force push overwrites it with your local preset."
msgstr ""
+"之前已从云端删除了一个同名的预设。\n"
+"删除将删除您的本地预设。强制推送会用您的本地预设覆盖该预设。"
msgid ""
"There was an unexpected or unidentified preset conflict.\n"
"Pull downloads the cloud copy. Force push overwrites it with your local preset."
msgstr ""
+"发生了一个意料之外或无法识别的预设冲突。\n"
+"拉取会下载云端副本。强制推送会用您的本地预设覆盖该副本。"
msgid ""
"Force push will overwrite the cloud copy with your local preset changes.\n"
@@ -2229,21 +2237,23 @@ msgid ""
"Force push will overwrite the cloud copy of preset \"%s\" with your local changes.\n"
"Do you want to continue?"
msgstr ""
+"强制推送将用您的本地更改覆盖预设 \"%s\" 的云端副本。\n"
+"你希望继续吗?"
msgid "Resolve cloud sync conflict"
msgstr "解决云同步冲突"
msgid "Syncing your account…"
-msgstr ""
+msgstr "同步账号中..."
msgid "Migrating presets…"
-msgstr ""
+msgstr "迁移预设中..."
msgid "Fetching plugins…"
-msgstr ""
+msgstr "获取插件中..."
msgid "Loading user presets…"
-msgstr ""
+msgstr "加载用户预设中..."
msgid "Retrieving printer information, please try again later."
msgstr "正在获取打印机信息,请稍后重试。"
@@ -2345,7 +2355,7 @@ msgid "Loading user preset"
msgstr "正在加载用户预设"
msgid "There is an update available. Open the preset bundle dialog to update it."
-msgstr ""
+msgstr "有更新可用。打开预设包对话框进行更新。"
#, c-format, boost-format
msgid "%s has been removed."
@@ -2362,7 +2372,7 @@ msgstr "语言"
#, c-format, boost-format
msgid "Switching Orca Slicer to language %s failed."
-msgstr ""
+msgstr "切换 Orca Slicer 语言到 %s 失败。"
msgid ""
"\n"
@@ -2370,25 +2380,27 @@ msgid ""
msgstr ""
msgid "Orca Slicer - Switching language failed"
-msgstr ""
+msgstr "Orca Slicer - 切换语言失败"
msgid "*"
msgstr "*"
msgid "Plugins"
-msgstr ""
+msgstr "插件"
#, c-format, boost-format
msgid ""
"Failed to open the Plugins dialog:\n"
"%s"
msgstr ""
+"无法打开插件对话框:\n"
+"%s"
msgid "Failed to open the Plugins dialog (unknown error)."
-msgstr ""
+msgstr "无法打开插件对话框(未知错误)。"
msgid "Plugin Terminal"
-msgstr ""
+msgstr "插件终端"
msgid "Changing application language"
msgstr "正在为应用程序切换语言"
@@ -2575,7 +2587,7 @@ msgid "OrcaSliced Combo"
msgstr "OrcaSliced 复合模型"
msgid "Orca Badge"
-msgstr ""
+msgstr "Orca 徽章"
msgid "Orca Tolerance Test"
msgstr "Orca误差测试"
@@ -2794,13 +2806,13 @@ msgid "Edit text"
msgstr "编辑文字"
msgid "Ability to change text, font, size, ..."
-msgstr "能够更改文本、字体、大小。。。"
+msgstr "能够更改文本、字体、大小 ..."
msgid "Edit SVG"
msgstr "编辑SVG"
msgid "Change SVG source file, projection, size, ..."
-msgstr "改变SVG源文件,投影,大小,..."
+msgstr "改变SVG源文件、投影、大小 ..."
msgid "Invalidate cut info"
msgstr "解除切割关系"
@@ -3021,43 +3033,43 @@ msgid "Click the icon to shift this object to the bed"
msgstr "点击这个图标可将对象移动到热床上"
msgid "Rename Object"
-msgstr ""
+msgstr "重命名对象"
msgid "Rename Part"
-msgstr ""
+msgstr "重命名零件"
msgid "Paste settings"
-msgstr ""
+msgstr "粘贴设置"
msgid "Shift objects to bed"
msgstr ""
msgid "Object order changed"
-msgstr ""
+msgstr "对象顺序已更改"
msgid "Layer setting added"
-msgstr ""
+msgstr "层设置已添加"
msgid "Part setting added"
-msgstr ""
+msgstr "零件设置已添加"
msgid "Object setting added"
-msgstr ""
+msgstr "对象设置已添加"
msgid "Height range settings added"
-msgstr ""
+msgstr "高度范围设置已添加"
msgid "Part settings added"
-msgstr ""
+msgstr "零件设置已添加"
msgid "Object settings added"
-msgstr ""
+msgstr "对象设置已添加"
msgid "Load Part"
-msgstr ""
+msgstr "加载零件"
msgid "Load Modifier"
-msgstr ""
+msgstr "加载修改器"
msgid "Loading file"
msgstr "载入文件中"
@@ -3084,7 +3096,7 @@ msgid "Remove paint-on fuzzy skin"
msgstr "移除手绘绒毛表面"
msgid "Delete Settings"
-msgstr ""
+msgstr "删除设置"
msgid "Remove height range"
msgstr "移除高度范围"
@@ -3119,7 +3131,7 @@ msgid "Deleting the last solid part is not allowed."
msgstr "不允许删除对象的最后一个实体零件。"
msgid "Delete part"
-msgstr ""
+msgstr "删除零件"
msgid "The target object contains only one part and can not be split."
msgstr "目标对象只包含一个零件,无法分割"
@@ -3131,10 +3143,10 @@ msgid "Assembly"
msgstr "组合体"
msgid "Merge parts to an object"
-msgstr ""
+msgstr "合并零件到对象"
msgid "Add layers"
-msgstr ""
+msgstr "添加层"
msgid "Cut Connectors information"
msgstr "切割连接件信息"
@@ -3170,7 +3182,7 @@ msgid "Settings for height range"
msgstr "高度范围设置"
msgid "Delete selected"
-msgstr ""
+msgstr "删除选中"
msgid "Layer"
msgstr "层"
@@ -3195,7 +3207,7 @@ msgid "Choose part type"
msgstr "选择零件类型"
msgid "Instances to Separated Objects"
-msgstr ""
+msgstr "实例拆分为对象"
msgid "Enter new name"
msgstr "输入新名称"
@@ -3223,7 +3235,7 @@ msgid "\"%s\" part's mesh contains errors. Please repair it first."
msgstr "\"%s\" 零件的网格包含错误,请先修复。"
msgid "Change Filaments"
-msgstr ""
+msgstr "更改耗材"
msgid "Additional process preset"
msgstr "附加工艺预设"
@@ -3445,7 +3457,7 @@ msgid "Filament type is unknown which is required to perform this action. Please
msgstr "因耗材类型未知,所以需要执行此操作。请指定目标耗材的信息。"
msgid "AMS has not been initialized. Please initialize it before use."
-msgstr ""
+msgstr "AMS 尚未初始化。请在使用前进行初始化。"
msgid "Changing fan speed during printing may affect print quality, please choose carefully."
msgstr "在打印过程中更改风扇速度可能影响打印质量,请谨慎选择。"
@@ -3570,22 +3582,22 @@ msgid "Check filament location"
msgstr "检查耗材丝位置"
msgid "Switch"
-msgstr ""
+msgstr "切换"
msgid "hotend"
-msgstr ""
+msgstr "热端"
msgid "Wait for AMS cooling"
-msgstr ""
+msgstr "等待 AMS 冷却"
msgid "Switch current filament at Filament Track Switch"
-msgstr ""
+msgstr "切换变轨器的当前耗材"
msgid "Pull back current filament at Filament Track Switch"
-msgstr ""
+msgstr "退回变轨器的当前耗材"
msgid "Switch track at Filament Track Switch"
-msgstr ""
+msgstr "变轨器开关切换"
msgid "The maximum temperature cannot exceed "
msgstr "最高温度不可超过 "
@@ -3640,7 +3652,7 @@ msgid "Launch troubleshoot center"
msgstr "启动故障排查中心"
msgid "Set nozzle count"
-msgstr ""
+msgstr "设置喷嘴数量"
msgid "Please set nozzle count"
msgstr "请设置喷嘴数量"
@@ -3693,7 +3705,7 @@ msgid "Ignore"
msgstr "忽略"
msgid "Done."
-msgstr ""
+msgstr "完成"
msgid ""
"All the selected objects are on a locked plate.\n"
@@ -4126,7 +4138,7 @@ msgid "Bed temperature"
msgstr "热床温度"
msgid "mm³"
-msgstr "立方毫米"
+msgstr "mm³"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Start"
@@ -7390,7 +7402,7 @@ msgid "Bottom"
msgstr "底部"
msgid "Plugin Selection"
-msgstr ""
+msgstr "插件选择"
msgid ""
"No plugins capabilities available for this type.\n"
@@ -7401,13 +7413,13 @@ msgid "There is stringing-prone filament in the current print job. Enabling nozz
msgstr ""
msgid "Enable Nozzle Clumping Detection"
-msgstr ""
+msgstr "裹头检测"
msgid "When enabled, the printer will automatically capture photos of printed parts and upload them to the cloud. Would you like to enable this option?"
-msgstr ""
+msgstr "启用此功能后,打印机将自动拍摄打印件的照片并将其上传至云端。是否要启用此选项?"
msgid "Confirm Enable Print Status Snapshot"
-msgstr ""
+msgstr "确认启用打印状态快照"
msgid "Enable detection of build plate position"
msgstr "启用打印板位置检测"
@@ -7423,19 +7435,19 @@ msgid "Identifies the type and position of the build plate on the heatbed. Pausi
msgstr "识别打印平台板在热床上的类型和位置。如果检测到不匹配,则暂停打印。"
msgid "Purifies the chamber air as the print finishes, based on the selected mode."
-msgstr ""
+msgstr "每次打印结束时,根据所选方式净化打印机的腔体空气。"
msgid "Purifies the chamber air through internal circulation as each print finishes."
-msgstr ""
+msgstr "每次打印结束时,通过内循环净化打印机的腔体空气。"
msgid "Automatically match the corresponding switch strategy for leak-prone filaments (disable blob detection) and regular filaments (enable blob detection)."
-msgstr ""
+msgstr "对易拉丝耗材(关闭裹头检测)与常规耗材(开启裹头检测)自动匹配相应的开关策略。"
msgid "Detect whether the nozzle is wrapped by filament or other foreign matter."
-msgstr ""
+msgstr "检测喷嘴是否被耗材或其他异物包裹住。"
msgid "After disabling, nozzle wrapping cannot be detected, which may lead to print failure or nozzle damage."
-msgstr ""
+msgstr "关闭后无法发现喷嘴包裹,可能导致打印失败或喷嘴损坏。"
msgid "AI Detections"
msgstr "人工智能检测"
@@ -7481,7 +7493,7 @@ msgid "Store Sent Files on External Storage"
msgstr "将发送的文件存储在外部存储器上"
msgid "Save the printing files sent from the slicer and other apps on External Storage"
-msgstr ""
+msgstr "将切片软件和其他应用程序发送的打印文件保存到外部存储中"
msgid "Allow Prompt Sound"
msgstr "允许提示音"
@@ -7494,31 +7506,31 @@ msgid "Check if the nozzle is clumping by filament or other foreign objects."
msgstr "检查喷嘴是否被耗材丝或其他异物裹住"
msgid "Purify Air at Print End"
-msgstr ""
+msgstr "打印结束时净化空气"
msgid "Internal Circulation"
-msgstr ""
+msgstr "内循环"
msgid "Alignment Detection"
-msgstr ""
+msgstr "偏移检测"
msgid "Pauses printing when build plate misalignment is detected."
-msgstr ""
+msgstr "若检测到打印板偏移,则暂停打印。"
msgid "Foreign Object Detection"
-msgstr ""
+msgstr "异物检测"
msgid "Checks for any objects on the build plate at the start of a print to avoid collisions."
-msgstr ""
+msgstr "打印开始时,检测打印板上是否有异物,避免打印过程中出现碰撞。"
msgid "Printed Part Displacement Detection"
-msgstr ""
+msgstr "打印件位移检测"
msgid "Monitors the printed part during printing and alerts immediately if it shifts or collapses."
-msgstr ""
+msgstr "检测打印中的打印件状态,若发生移动或倒塌则立即提醒。"
msgid "Checks if the nozzle is clumping by filament or other foreign objects."
-msgstr ""
+msgstr "检查喷嘴是否被耗材或其他异物堵塞。"
msgid "On"
msgstr "开"
@@ -7533,10 +7545,10 @@ msgid "Pause printing"
msgstr "暂停打印"
msgid "Print Status Snapshot"
-msgstr ""
+msgstr "打印状态快照"
msgid "Automatically capture and upload print photos, showing defects during printing and the final result for remote viewing."
-msgstr ""
+msgstr "自动拍摄打印件照片并上传云端,包括打印过程中检测到的缺陷和任务结束时的打印件状态,便于远程查看。"
msgctxt "Nozzle Type"
msgid "Type"
@@ -7560,7 +7572,7 @@ msgid "High flow"
msgstr "高流量"
msgid "TPU High flow"
-msgstr ""
+msgstr "TPU 高流量"
msgid "No wiki link available for this printer."
msgstr "没有适用于此打印机的 wiki 链接。"
@@ -7679,7 +7691,7 @@ msgid "Not installed"
msgstr "未安装"
msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "该软件不支持在一次打印中使用不同直径的喷嘴。如果左右喷头不一致,就只能进行单头打印。请确认您想在该项目中使用哪种喷嘴。"
+msgstr "该软件不支持在一次打印中使用不同直径的喷嘴。如果左右喷嘴不一致,就只能进行单头打印。请确认您想在该项目中使用哪种喷嘴。"
msgid "Switch diameter"
msgstr "开关直径"
@@ -8002,19 +8014,19 @@ msgid ""
msgstr "您正尝试删除切割对象的一部分,这将破坏切割对应关系,删除之后,将无法再保证模型的一致性。"
msgid "Delete Object"
-msgstr ""
+msgstr "删除对象"
msgid "Delete All Objects"
-msgstr ""
+msgstr "删除所有对象"
msgid "Reset Project"
-msgstr ""
+msgstr "重置项目"
msgid "The selected object couldn't be split."
msgstr "选中的模型不可分裂。"
msgid "Split to Objects"
-msgstr ""
+msgstr "拆分为对象"
msgid "Disable Auto-Drop to preserve Z positioning?\n"
msgstr "禁用自动落板以保留 Z 轴定位?\n"
@@ -8043,7 +8055,7 @@ msgid "File for the replacement wasn't selected"
msgstr "未选择替换文件"
msgid "Replace with 3D file"
-msgstr ""
+msgstr "替换为 3D 文件"
msgid "Select folder to replace from"
msgstr "选择要替换的文件夹"
@@ -8092,7 +8104,7 @@ msgid "Error during reload"
msgstr "重新加载时发生错误"
msgid "Reload all"
-msgstr ""
+msgstr "重新加载全部"
msgid "There are warnings after slicing models:"
msgstr "模型切片警告:"
@@ -9231,7 +9243,7 @@ msgid "Edit preset"
msgstr "编辑预设"
msgid "Change extruder color"
-msgstr ""
+msgstr "更改挤出机颜色"
msgid "Unspecified"
msgstr "未指定"
@@ -9457,10 +9469,10 @@ msgid "Your filament grouping method in the sliced file is not optimal."
msgstr "您在切片文件中的耗材丝分组方法不是最佳的。"
msgid "To ensure print quality, the drying temperature will be lowered during printing."
-msgstr ""
+msgstr "为保证打印质量,打印过程中会适当降低烘干温度。"
msgid "Select timelapse storage location"
-msgstr ""
+msgstr "选择延时摄影存储位置"
msgid "Auto Bed Leveling"
msgstr "自动床调平"
@@ -9493,7 +9505,7 @@ msgstr ""
"*自动模式:打印前检查校准情况。如果不需要,请跳过。"
msgid "Shared PA Profile"
-msgstr ""
+msgstr "共享 PA 预设"
msgid "Nozzles and filaments of the same type share the same PA profile."
msgstr ""
@@ -9511,39 +9523,39 @@ msgid "Extra info"
msgstr "额外信息"
msgid "The Filament Track Switch installed on the printer does not match the slicing file. Please re-slice to avoid print quality issues."
-msgstr ""
+msgstr "打印机上安装的耗材变轨器与切片文件不匹配。请重新切片以避免打印质量问题。"
msgid "This print requires a Filament Track Switch. Please install it first."
-msgstr ""
+msgstr "此打印件需要耗材变轨器。请先安装它。"
msgid "The Filament Track Switch has not been setup. Please setup it first."
-msgstr ""
+msgstr "变轨器尚未初始化,请先进行初始化。"
#, c-format, boost-format
msgid "Failed to send nozzle auto-mapping request to printer { code: %d }. Please try to refresh the printer information. If it still does not recover, you can try to rebind the printer and check the network connection."
-msgstr ""
+msgstr "向打印机发送喷嘴自动映射请求失败 {错误代码:%d}。请尝试刷新打印机信息。若问题仍未解决,可尝试重新绑定打印机并检查网络连接。"
msgid "The printer is calculating nozzle mapping."
-msgstr ""
+msgstr "打印机正在计算喷嘴映射。"
msgid "Please wait a moment..."
-msgstr ""
+msgstr "请稍等片刻..."
#, c-format, boost-format
msgid "Failed to receive nozzle auto-mapping table from printer { msg: %s }. Please refresh the printer information."
-msgstr ""
+msgstr "未能从打印机接收喷嘴自动映射表 {消息:%s}。请刷新打印机信息。"
#, c-format, boost-format
msgid "The printer failed to build the nozzle auto-mapping table { code: %d }. Please refresh nozzle information."
-msgstr ""
+msgstr "打印机未能构建喷嘴自动映射表 { code: %d }。请刷新喷嘴信息。"
#, c-format, boost-format
msgid "The current nozzle mapping may produce an extra %0.2f g of waste."
-msgstr ""
+msgstr "当前的喷嘴映射可能会产生额外 %0.2f 克的废料。"
#, c-format, boost-format
msgid "Recommended filament arrangement saves %s->"
-msgstr ""
+msgstr "如果按照推荐摆料可省 %s->"
#, c-format, boost-format
msgid "Filament %s does not match the filament in AMS slot %s. Please update the printer firmware to support AMS slot assignment."
@@ -9599,31 +9611,31 @@ msgstr "内部"
#, c-format, boost-format
msgid "%s space less than 20MB. Timelapse may not save properly. You can turn it off or"
-msgstr ""
+msgstr "%s空间不足 20MB,延时摄影可能无法正常存储,可选择关闭,或者"
msgid "Clean up files"
-msgstr ""
+msgstr "清理文件"
msgid "Low internal storage. This timelapse will overwrite the oldest video files."
-msgstr ""
+msgstr "机内存储空间不足,本次延时摄影将覆盖最早的视频文件。"
msgid "Low external storage. This timelapse will overwrite the oldest video files."
-msgstr ""
+msgstr "外部存储空间不足,本次延时摄影将覆盖最早的视频文件。"
msgid "Insufficient external storage for time-lapse photography. Connect to computer to delete files, or use a larger memory card."
-msgstr ""
+msgstr "外部存储空间不足,无法进行延时摄影,请将存储设备连接至电脑,手动删除不需要的文件,或更换大容量内存卡。"
msgid "Storage Space Not Enough"
-msgstr ""
+msgstr "存储空间不足"
msgid "Confirm & Print"
-msgstr ""
+msgstr "好的,发起打印"
msgid "Cancel Timelapse & Print"
-msgstr ""
+msgstr "取消延时摄影,继续打印"
msgid "Clean Up"
-msgstr ""
+msgstr "清理"
msgid "Preparing print job"
msgstr "正在准备打印任务"
@@ -9640,32 +9652,32 @@ msgstr "喷嘴"
#, c-format, boost-format
msgid "Refreshing information of hotends(%d/%d)."
-msgstr ""
+msgstr "正在刷新喷嘴信息(%d/%d)。"
msgid "There are not enough available hotends currently."
-msgstr ""
+msgstr "目前可用的热端数量不足。"
msgid "Please complete the hotend rack setup and try again."
-msgstr ""
+msgstr "请先进行热端挂架初始化后重试。"
msgid "Please refresh the nozzle information and try again."
-msgstr ""
+msgstr "请刷新喷嘴信息后重试。"
msgid "Please re-slice to avoid filament waste."
-msgstr ""
+msgstr "请重新切片以避免耗材浪费。"
msgid "The reported hotend information may be unreliable."
-msgstr ""
+msgstr "报告的热端信息可能不可靠。"
#, c-format, boost-format
msgid "The printer has no nozzle matching the slicing file (%s)."
-msgstr ""
+msgstr "打印机没有与切片文件匹配的喷嘴(%s)"
msgid "Please install a matching nozzle in the hotend rack, or set the corresponding printer preset while slicing."
-msgstr ""
+msgstr "请在热端架上安装匹配的喷嘴,或在切片时设置相应的打印机预设。"
msgid "The toolhead and hotend rack are full. Please remove at least one hotend before printing."
-msgstr ""
+msgstr "工具头和热端挂架已满,请卸下至少一个热端后再打印。"
#, c-format, boost-format
msgid "The nozzle flow setting of %s(%s) doesn't match with the slicing file(%s). Please make sure the nozzle installed matches with settings in printer, then set the corresponding printer preset while slicing."
@@ -11082,7 +11094,7 @@ msgid "Ext spool"
msgstr "外置耗材盘"
msgid "Please check whether the nozzle type of the device is the same as the preset nozzle type."
-msgstr "请检查设备的喷头类型是否与预设的喷头类型相同。"
+msgstr "请检查设备的喷嘴类型是否与预设的喷嘴类型相同。"
msgid "Storage is not available or is in read-only mode."
msgstr "存储不可用或处于只读模式。"
@@ -20925,7 +20937,7 @@ msgstr ""
#~ msgstr "选择安装到正确喷嘴的耗材"
#~ msgid "Select Filament && Hotends"
-#~ msgstr "选择材料预设和喷头"
+#~ msgstr "选择材料预设和喷嘴"
#, c-format, boost-format
#~ msgid "Note: the filament type(%s) does not match with the filament type(%s) in the slicing file. If you want to use this slot, you can install %s instead of %s and change slot information on the 'Device' page."
@@ -21449,7 +21461,7 @@ msgstr ""
#~ msgstr "删除一个耳状Brim"
#~ msgid "Adjust head diameter"
-#~ msgstr "调整喷头直径"
+#~ msgstr "调整喷嘴直径"
#~ msgid "Adjust section view"
#~ msgstr "调整剖面视图"
diff --git a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po
index ae298bb376..9a1c5b247a 100644
--- a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po
+++ b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po
@@ -180,7 +180,7 @@ msgid "How to feed TPU filament on X2D."
msgstr ""
msgid "Please cold pull before printing TPU to avoid clogging. You may use cold pull maintenance on the printer."
-msgstr "列印 TPU 前請先進行冷抽以避免堵塞,您可以在列印設備上使用冷抽維護功能。"
+msgstr "列印 TPU 前請先進行冷抽以避免堵塞,您可以在列印裝置上使用冷抽維護功能。"
msgid "Damp PVA will become flexible and get stuck inside AMS, please take care to dry it before use."
msgstr "潮濕的 PVA 會變得柔軟並黏在 AMS 內,請在使用前注意乾燥。"
@@ -357,7 +357,7 @@ msgid "Raised"
msgstr "已升起"
msgid "The hotend is in an abnormal state and currently unavailable. Please go to 'Device -> Upgrade' to upgrade firmware."
-msgstr "熱端狀態異常,當前不可用。請前往“裝置 -> 升級”升級韌體。"
+msgstr "熱端狀態異常,目前不可用。請前往“裝置 -> 升級”升級韌體。"
msgid "Abnormal Hotend"
msgstr "熱端異常"
@@ -369,7 +369,7 @@ msgid "Jump to the upgrade page"
msgstr "跳轉至升級頁面"
msgid "Refresh"
-msgstr "刷新"
+msgstr "重新整理"
msgid "Refreshing"
msgstr "重新整理中"
@@ -388,7 +388,7 @@ msgid "Used Time: %s"
msgstr "使用時間: %s"
msgid "Dynamic nozzles are allocated on the current plate. Picking hotend is not supported."
-msgstr "當前盤存在動態分配噴嘴,不支援修改。"
+msgstr "目前盤存在動態配置噴嘴,不支援修改。"
msgid "Hotend Rack"
msgstr "熱端掛架"
@@ -408,7 +408,7 @@ msgid "Apply"
msgstr "套用"
msgid "On highlighted overhangs only"
-msgstr "僅對高亮懸空區生效"
+msgstr "僅對醒目標示懸空區生效"
msgid "Erase all"
msgstr "全部擦除"
@@ -564,7 +564,7 @@ msgid "Enter"
msgstr "Enter"
msgid "Shortcut Key "
-msgstr "快捷鍵 "
+msgstr "快速鍵 "
msgid "Triangle"
msgstr "三角形"
@@ -644,7 +644,7 @@ msgid "Gizmo-Scale"
msgstr "Gizmo 比例"
msgid "Error: Please close all toolbar menus first"
-msgstr "錯誤:請先關閉所有工具欄選單"
+msgstr "錯誤:請先關閉所有工具列選單"
msgctxt "inches"
msgid "in"
@@ -846,7 +846,7 @@ msgid ""
"Click to flip the cut plane\n"
"Drag to move the cut plane"
msgstr ""
-"點擊翻轉切割面\n"
+"點選翻轉切割面\n"
"拖曳移動切割面"
msgid ""
@@ -854,9 +854,9 @@ msgid ""
"Drag to move the cut plane\n"
"Right-click a part to assign it to the other side"
msgstr ""
-"點擊翻轉切割平面\n"
+"點選翻轉切割平面\n"
"拖曳移動切割平面\n"
-"右鍵點擊部件以將其分配到對側"
+"右鍵點選部件以將其分配到對側"
msgid "Move cut plane"
msgstr "移動切割面"
@@ -1244,7 +1244,7 @@ msgid "Join"
msgstr "合併"
msgid "Click to change text into object part."
-msgstr "點擊將文字轉換為物件部分。"
+msgstr "點選將文字轉換為物件部分。"
msgid "You can't change a type of the last solid part of the object."
msgstr "您無法變更模型最後一個實體部分的類型。"
@@ -1254,13 +1254,13 @@ msgid "Cut"
msgstr "切割"
msgid "Click to change part type into negative volume."
-msgstr "點擊將零件類型變更為負體積。"
+msgstr "點選將零件類型變更為負體積。"
msgid "Modifier"
msgstr "修改器"
msgid "Click to change part type into modifier."
-msgstr "點擊將零件類型變更為修改器。"
+msgstr "點選將零件類型變更為修改器。"
msgid "Change Text Type"
msgstr "更改文字類型"
@@ -1295,7 +1295,7 @@ msgid "Save %1% style"
msgstr "儲存 %1% 的樣式"
msgid "No changes to save."
-msgstr "無需保存,因為沒有變更。"
+msgstr "無需儲存,因為沒有變更。"
msgid "New name of style"
msgstr "新樣式名稱"
@@ -1372,10 +1372,10 @@ msgid "Set bold"
msgstr "粗體"
msgid "Revert text size."
-msgstr "恢復文字大小。"
+msgstr "還原文字大小。"
msgid "Revert embossed depth."
-msgstr "恢復浮雕深度。"
+msgstr "還原浮雕深度。"
msgid ""
"Advanced options cannot be changed for the selected font.\n"
@@ -1421,44 +1421,44 @@ msgid "Bottom"
msgstr "底部"
msgid "Revert alignment."
-msgstr "恢復對。"
+msgstr "還原對。"
#. TRN EmbossGizmo: font units
msgid "points"
msgstr "點"
msgid "Revert gap between characters"
-msgstr "恢復字元間距"
+msgstr "還原字元間距"
msgid "Distance between characters"
msgstr "字元間距"
msgid "Revert gap between lines"
-msgstr "恢復線間距"
+msgstr "還原線間距"
msgid "Distance between lines"
msgstr "線間距"
msgid "Undo boldness"
-msgstr "恢復粗體"
+msgstr "還原粗體"
msgid "Tiny / Wide glyphs"
msgstr "細小 / 寬大字形」"
msgid "Undo letter's skew"
-msgstr "恢復文字變形"
+msgstr "還原文字變形"
msgid "Italic strength ratio"
msgstr "斜體效果的強度比例"
msgid "Undo translation"
-msgstr "恢復移動"
+msgstr "還原移動"
msgid "Distance of the center of the text to the model surface."
msgstr "文字中心到模型表面的距離。"
msgid "Undo rotation"
-msgstr "恢復旋轉"
+msgstr "還原旋轉"
msgid "Rotate text Clockwise."
msgstr "文字順時針旋轉。"
@@ -1484,10 +1484,10 @@ msgstr "字型 「%1%」 無法使用,請選擇其他字型。"
#, boost-format
msgid "Can't load exactly same font (\"%1%\"). Application selected a similar one (\"%2%\"). You have to specify font for enable edit text."
-msgstr "無法加載完全相同的字體「%1%」。已自動選擇相似的字體「%2%」。若要啟用文字編輯,請指定字體。"
+msgstr "無法載入完全相同的字體「%1%」。已自動選擇相似的字體「%2%」。若要啟用文字編輯,請指定字體。"
msgid "No symbol"
-msgstr "沒有任何字符"
+msgstr "沒有任何字元"
msgid "Loading"
msgstr "載入中"
@@ -1646,7 +1646,7 @@ msgid ""
"Do NOT save local path to 3MF file.\n"
"Also disables 'reload from disk' option."
msgstr ""
-"不要將本地路徑保存到 3MF 檔案中。\n"
+"不要將本地路徑儲存到 3MF 檔案中。\n"
"同時停用「從硬碟重新載入」選項。"
#. TRN: An menu option to convert the SVG into an unmodifiable model part.
@@ -1861,7 +1861,7 @@ msgid "Parallel distance:"
msgstr "平行距離:"
msgid "Flip by Face 2"
-msgstr "通過面 2 翻轉"
+msgstr "透過面 2 翻轉"
msgid "Entering Measure gizmo"
msgstr "進入測量工具模式"
@@ -1941,7 +1941,7 @@ msgid "Filament"
msgstr "線材"
msgid "Machine"
-msgstr "列印設備"
+msgstr "列印裝置"
# TODO: Review, changed by lang refactor. PR 14254
msgid "The configuration package was loaded, but some values were not recognized."
@@ -2058,12 +2058,12 @@ msgstr "密碼不正確"
#, c-format, boost-format
msgid "Connect %s failed! [SN:%s, code=%s]"
-msgstr "連接 %s 失敗。[SN:%s, code=%s]"
+msgstr "連線 %s 失敗。[SN:%s, code=%s]"
msgid ""
"Orca Slicer requires the Microsoft WebView2 Runtime to operate certain features.\n"
"Click Yes to install it now."
-msgstr "Orca Slicer 需要 Microsoft WebView2 Runtime 才能操作某些功能,請點擊 Yes 進行安裝。"
+msgstr "Orca Slicer 需要 Microsoft WebView2 Runtime 才能操作某些功能,請點選 Yes 進行安裝。"
msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
@@ -2117,7 +2117,7 @@ msgid "Plugin %s access is unauthorized."
msgstr ""
msgid "Loading printer & filament profiles"
-msgstr "載入列印設備與線材設定檔"
+msgstr "載入列印裝置與線材設定檔"
msgid "Creating main window"
msgstr "正在建立主視窗"
@@ -2135,7 +2135,7 @@ msgid ""
msgstr ""
"OrcaSlicer 的設定檔可能已損壞,無法解析。\n"
"OrcaSlicer 已嘗試重新建立設定檔。\n"
-"請注意,應用程式設定將會丟失,但列印設備設定不會受到影響。"
+"請注意,應用程式設定將會丟失,但列印裝置設定不會受到影響。"
msgid "Rebuild"
msgstr "重新建構"
@@ -2175,19 +2175,19 @@ msgid "User logged out"
msgstr "使用者登出"
msgid "You are currently in Stealth Mode. To log into the Cloud, you need to disable Stealth Mode first."
-msgstr "您目前處於隱身模式。若要登入雲端,您需要先停用隱身模式。"
+msgstr "您目前處於無痕模式。若要登入雲端,您需要先停用無痕模式。"
msgid "Stealth Mode"
-msgstr "隱身模式"
+msgstr "無痕模式"
msgid "Quit Stealth Mode"
-msgstr "退出隱身模式"
+msgstr "退出無痕模式"
msgid "new or open project file is not allowed during the slicing process!"
-msgstr "在執行切片過程中不允許新增或打開專案!"
+msgstr "在執行切片過程中不允許新增或開啟專案!"
msgid "Open Project"
-msgstr "打開專案"
+msgstr "開啟專案"
msgid "The version of Orca Slicer is too low and needs to be updated to the latest version before it can be used normally."
msgstr "Orca Slicer 版本過舊,需要更新到最新版本才能正常使用"
@@ -2248,7 +2248,7 @@ msgid "Loading user presets…"
msgstr ""
msgid "Retrieving printer information, please try again later."
-msgstr "正在取得列印設備資訊,請稍後再試。"
+msgstr "正在取得列印裝置資訊,請稍後再試。"
msgid "Please try updating OrcaSlicer and then try again."
msgstr "請嘗試更新 OrcaSlicer,然後再試一次。"
@@ -2271,19 +2271,19 @@ msgid ""
"\n"
"Developer mode allows the printer to work exclusively through local network access, enabling full functionality with OrcaSlicer."
msgstr ""
-"若要搭配 Bambu Lab 列印設備使用 OrcaSlicer,您需要在列印設備上啟用 LAN 模式與開發者模式。\n"
+"若要搭配 Bambu Lab 列印裝置使用 OrcaSlicer,您需要在列印裝置上啟用 LAN 模式與開發者模式。\n"
"\n"
-"請前往列印設備的設定並執行以下操作:\n"
+"請前往列印裝置的設定並執行以下操作:\n"
"1. 開啟 LAN 模式\n"
"2. 啟用開發者模式\n"
"\n"
-"開發者模式允許列印設備僅透過區域網路存取運作,以實現 OrcaSlicer 的完整功能。"
+"開發者模式允許列印裝置僅透過區域網路存取運作,以實現 OrcaSlicer 的完整功能。"
msgid "Network Plug-in Restriction"
msgstr "網路外掛程式限制"
msgid "Privacy Policy Update"
-msgstr "隱私協議更新"
+msgstr "隱私協定更新"
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
@@ -2408,7 +2408,7 @@ msgid "Select a G-code file:"
msgstr "選擇一個 G-code 檔案:"
msgid "Could not start URL download. Destination folder is not set. Please choose destination folder in Configuration Wizard."
-msgstr "無法開始 URL 下載。未設置目標資料夾。請在設定精靈中選擇目標資料夾。"
+msgstr "無法開始 URL 下載。未設定目標資料夾。請在設定精靈中選擇目標資料夾。"
msgid "Import File"
msgstr "匯入檔案"
@@ -2420,13 +2420,13 @@ msgid "New Folder"
msgstr "新增資料夾"
msgid "Open"
-msgstr "打開"
+msgstr "開啟"
msgid "Rename"
msgstr "重新命名"
msgid "Orca Slicer GUI initialization failed"
-msgstr "Orca Slicer 圖形界面初始化失敗"
+msgstr "Orca Slicer 圖形介面初始化失敗"
# TODO: Review, changed by lang refactor. PR 14254
#, boost-format
@@ -2595,7 +2595,7 @@ msgid "Voron Cube"
msgstr "Voron 立方體"
msgid "Stanford Bunny"
-msgstr "斯坦福兔子"
+msgstr "史丹福兔子"
msgid "Orca String Hell"
msgstr "Orca 拉絲測試"
@@ -2684,7 +2684,7 @@ msgid "Reload from disk"
msgstr "從硬碟重新載入"
msgid "Reload the selected parts from disk"
-msgstr "從硬碟重新載入選中的零件"
+msgstr "從硬碟重新載入選取的零件"
msgid "Replace 3D file"
msgstr "替換 3D 檔案"
@@ -2741,7 +2741,7 @@ msgstr "從英寸轉換"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Restore to Inch"
-msgstr "恢復到英寸"
+msgstr "還原到英寸"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Convert from Meters"
@@ -2749,7 +2749,7 @@ msgstr "從公尺轉換"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Restore to Meter"
-msgstr "恢復到公尺"
+msgstr "還原到公尺"
msgid "Assemble the selected objects into an object with multiple parts"
msgstr "組合所選物件為一個多零件物件"
@@ -2994,32 +2994,32 @@ msgid_plural "%1$d non-manifold edges"
msgstr[0] "%1$d 個非流形邊緣"
msgid "Click the icon to repair model object"
-msgstr "點擊圖示來修復模型"
+msgstr "點選圖示來修復模型"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Right click the icon to drop the object settings"
-msgstr "滑鼠右鍵點擊此圖示以放棄物件的列印設定"
+msgstr "滑鼠右鍵點選此圖示以放棄物件的列印設定"
msgid "Click the icon to reset all settings of the object"
-msgstr "滑鼠左鍵點擊此圖示可重設物件的所有列印設定"
+msgstr "滑鼠左鍵點選此圖示可重設物件的所有列印設定"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Right click the icon to drop the object printable property"
-msgstr "滑鼠右鍵點擊此圖示以捨棄物件的可列印屬性"
+msgstr "滑鼠右鍵點選此圖示以捨棄物件的可列印屬性"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Click the icon to toggle printable properties of the object"
-msgstr "滑鼠左點擊此圖示可切換這個物件的可列印屬性"
+msgstr "滑鼠左點選此圖示可切換這個物件的可列印屬性"
msgid "Click the icon to edit support painting of the object"
-msgstr "滑鼠左鍵點擊此圖示可編輯這個物件的支撐繪製"
+msgstr "滑鼠左鍵點選此圖示可編輯這個物件的支撐繪製"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Click the icon to edit color painting for the object"
-msgstr "滑鼠左鍵點擊此圖示可編輯這個物件的顏色繪製"
+msgstr "滑鼠左鍵點選此圖示可編輯這個物件的顏色繪製"
msgid "Click the icon to shift this object to the bed"
-msgstr "滑鼠左鍵點擊這個圖示可將物件移動到列印板上"
+msgstr "滑鼠左鍵點選這個圖示可將物件移動到列印板上"
msgid "Rename Object"
msgstr ""
@@ -3319,11 +3319,11 @@ msgstr "偏好設定。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Open next tip"
-msgstr "打開下一條提示。"
+msgstr "開啟下一條提示。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Open documentation in web browser"
-msgstr "在網頁瀏覽器中打開檔案。"
+msgstr "在網頁瀏覽器中開啟檔案。"
msgid "Color"
msgstr "顏色"
@@ -3376,7 +3376,7 @@ msgid "Add Custom Template"
msgstr "新增自訂範本"
msgid "Insert template custom G-code at the beginning of this layer."
-msgstr "在該層的初始位置插入模板自訂 G-code。"
+msgstr "在該層的初始位置插入範本自訂 G-code。"
msgid "Filament "
msgstr "線材"
@@ -3400,13 +3400,13 @@ msgid "Delete Filament Change"
msgstr "刪除線材更換"
msgid "No printer"
-msgstr "無列印設備"
+msgstr "無列印裝置"
msgid "..."
msgstr "..."
msgid "Failed to connect to the server"
-msgstr "無法連接伺服器"
+msgstr "無法連線伺服器"
msgid "Check the status of current system services"
msgstr "請檢查目前系統服務狀態"
@@ -3415,22 +3415,22 @@ msgid "code"
msgstr "代碼"
msgid "Failed to connect to cloud service"
-msgstr "無法連接到雲端服務"
+msgstr "無法連線到雲端服務"
msgid "Please click on the hyperlink above to view the cloud service status"
-msgstr "請點擊上方的超連結以查看雲端服務狀態"
+msgstr "請點選上方的超連結以檢視雲端服務狀態"
msgid "Failed to connect to the printer"
-msgstr "無法連接列印設備"
+msgstr "無法連線列印裝置"
msgid "Connection to printer failed"
-msgstr "連接列印設備失敗"
+msgstr "連線列印裝置失敗"
msgid "Please check the network connection of the printer and Orca."
-msgstr "請檢查列印設備與 Orca Slicer 的網路連接。"
+msgstr "請檢查列印裝置與 Orca Slicer 的網路連線。"
msgid "Connecting..."
-msgstr "連接中..."
+msgstr "連線中..."
msgid "Auto Refill"
msgstr "自動補充"
@@ -3444,7 +3444,7 @@ msgstr "退料"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically load or unload filament."
-msgstr "選擇一個 AMS 槽,然後按下『上料』或『退料』按鈕來自動加載或卸載線材。"
+msgstr "選擇一個 AMS 槽,然後按下『上料』或『退料』按鈕來自動載入或卸載線材。"
msgid "Filament type is unknown which is required to perform this action. Please set target filament's informations."
msgstr "線材類型未知,無法執行此操作。請設定目標線材的資訊。"
@@ -3683,10 +3683,10 @@ msgid "Refresh %d/%d..."
msgstr "重新整理 %d/%d..."
msgid "Unknown nozzle detected. Refresh to update info (unrefreshed nozzles will be excluded during slicing). Verify nozzle diameter & flow rate against displayed values."
-msgstr "檢測到未知噴嘴。請重新整理以更新資訊(未重新整理的噴嘴將在切片時被排除)。請核對噴嘴直徑和流量是否與顯示值一致。"
+msgstr "偵測到未知噴嘴。請重新整理以更新資訊(未重新整理的噴嘴將在切片時被排除)。請核對噴嘴直徑和流量是否與顯示值一致。"
msgid "Unknown nozzle detected. Refresh to update (unrefreshed nozzles will be skipped in slicing)."
-msgstr "檢測到未知噴嘴。請重新整理以更新資訊(未重新整理的噴嘴將在切片時被排除)。"
+msgstr "偵測到未知噴嘴。請重新整理以更新資訊(未重新整理的噴嘴將在切片時被排除)。"
msgid "Please confirm whether the required nozzle diameter and flow rate match the currently displayed values."
msgstr "請核對噴嘴直徑和流量是否與顯示值一致。"
@@ -3704,7 +3704,7 @@ msgid ""
"All the selected objects are on a locked plate.\n"
"Cannot auto-arrange these objects."
msgstr ""
-"所有選中的物件都處於被鎖定的列印板上,\n"
+"所有選取的物件都處於被鎖定的列印板上,\n"
"無法對這些物件進行自動排列。選定的物件都位於鎖定的列印板上,\n"
"無法對其進行自動排列。"
@@ -3747,7 +3747,7 @@ msgid ""
"All the selected objects are on a locked plate.\n"
"Cannot auto-orient these objects."
msgstr ""
-"所有選中的物件都處於被鎖定的列印板上,\n"
+"所有選取的物件都處於被鎖定的列印板上,\n"
"無法對這些物件做自動轉向。"
msgid ""
@@ -3791,7 +3791,7 @@ msgid "Login failed"
msgstr "登入失敗"
msgid "Please check the printer network connection."
-msgstr "請檢查列印設備的網路連接。"
+msgstr "請檢查列印裝置的網路連線。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Abnormal print file data: please slice again."
@@ -3804,7 +3804,7 @@ msgid "Upload task timed out. Please check the network status and try again."
msgstr "上傳任務逾時,請排查網路狀態後重試。"
msgid "Cloud service connection failed. Please try again."
-msgstr "雲端服務連接失敗,請重試。"
+msgstr "雲端服務連線失敗,請重試。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Print file not found; please slice again."
@@ -3821,7 +3821,7 @@ msgstr "上傳檔案至 FTP 失敗,請重試。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Check the current status of the Bambu Lab server by clicking on the link above."
-msgstr "點擊上方的連結檢查 Bambu 伺服器的即時狀態。"
+msgstr "點選上方的連結檢查 Bambu 伺服器的即時狀態。"
msgid "The size of the print file is too large. Please adjust the file size and try again."
msgstr "列印檔案過大,請調整檔案大小後重試。"
@@ -3835,13 +3835,13 @@ msgid "Failed to upload print file via FTP. Please check the network status and
msgstr "無法將列印檔案上傳至 FTP。請檢查網路狀態並重試。"
msgid "Sending print job over LAN"
-msgstr "正在通過區域網路傳送列印作業"
+msgstr "正在透過區域網路傳送列印作業"
msgid "Sending print job through cloud service"
-msgstr "正在通過雲端服務傳送列印作業"
+msgstr "正在透過雲端服務傳送列印作業"
msgid "Print task sending times out."
-msgstr "連接逾時。"
+msgstr "連線逾時。"
msgid "Service Unavailable"
msgstr "暫停服務"
@@ -3854,7 +3854,7 @@ msgstr "正在傳送列印設定"
#, c-format, boost-format
msgid "Successfully sent. Will automatically jump to the device page in %ss"
-msgstr "已傳送完成,即將自動跳至設備頁面(%s秒)"
+msgstr "已傳送完成,即將自動跳至裝置頁面(%s秒)"
#, c-format, boost-format
msgid "Successfully sent. Will automatically jump to the next page in %ss"
@@ -3862,19 +3862,19 @@ msgstr "已成功傳送。將自動跳至 %ss 中的下一頁"
#, c-format, boost-format
msgid "Access code:%s IP address:%s"
-msgstr "訪問代碼:%s IP 位址:%s"
+msgstr "存取代碼:%s IP 位址:%s"
msgid "A Storage needs to be inserted before printing via LAN."
msgstr "透過區域網路列印前需要插入儲存空間。"
msgid "Sending print job over LAN, but the Storage in the printer is abnormal and print-issues may be caused by this."
-msgstr "正在通過區域網路傳送列印作業,但列印設備中的儲存空間異常,可能會導致列印問題。"
+msgstr "正在透過區域網路傳送列印作業,但列印裝置中的儲存空間異常,可能會導致列印問題。"
msgid "The Storage in the printer is abnormal. Please replace it with a normal Storage before sending print job to printer."
-msgstr "列印設備中的儲存空間異常。請在傳送列印作業前更換為正常的儲存空間。"
+msgstr "列印裝置中的儲存空間異常。請在傳送列印作業前更換為正常的儲存空間。"
msgid "The Storage in the printer is read-only. Please replace it with a normal Storage before sending print job to printer."
-msgstr "列印設備中的儲存空間為唯讀。請在傳送列印作業前更換為正常的儲存空間。"
+msgstr "列印裝置中的儲存空間為唯讀。請在傳送列印作業前更換為正常的儲存空間。"
msgid "Encountered an unknown error with the Storage status. Please try again."
msgstr "儲存空間狀態出現未知錯誤。請重試。"
@@ -3891,16 +3891,16 @@ msgid "Successfully sent. Close current page in %s s"
msgstr "傳送成功。即將關閉目前頁面(%s秒)"
msgid "Storage needs to be inserted before sending to printer."
-msgstr "傳送到列印設備前需要插入儲存空間。"
+msgstr "傳送到列印裝置前需要插入儲存空間。"
msgid "Sending G-code file over LAN, but the Storage in the printer is abnormal and print-issues may be caused by this."
-msgstr "正在通過區域網路傳送 G-code 檔案,但列印設備中的儲存空間異常,可能會導致列印問題。"
+msgstr "正在透過區域網路傳送 G-code 檔案,但列印裝置中的儲存空間異常,可能會導致列印問題。"
msgid "The Storage in the printer is abnormal. Please replace it with a normal Storage before sending to printer."
-msgstr "列印設備中的儲存空間異常。請在傳送到列印設備前更換為正常的儲存空間。"
+msgstr "列印裝置中的儲存空間異常。請在傳送到列印裝置前更換為正常的儲存空間。"
msgid "The Storage in the printer is read-only. Please replace it with a normal Storage before sending to printer."
-msgstr "列印設備中的儲存空間為唯讀。請在傳送到列印設備前更換為正常的儲存空間。"
+msgstr "列印裝置中的儲存空間為唯讀。請在傳送到列印裝置前更換為正常的儲存空間。"
msgid "Bad input data for EmbossCreateObjectJob."
msgstr "EmbossCreateObjectJob 的輸入資料無效。"
@@ -3938,13 +3938,13 @@ msgid "An unexpected error occurred"
msgstr "發生未預期的錯誤"
msgid "Thermal Preconditioning for first layer optimization"
-msgstr "首層優化的熱預調節"
+msgstr "首層最佳化的熱預調節"
msgid "Remaining time: Calculating..."
msgstr "剩餘時間:計算中..."
msgid "The heated bed's thermal preconditioning helps optimize the first layer print quality. Printing will start once preconditioning is complete."
-msgstr "熱床的熱預調節有助於優化首層列印品質。預調節完成後即開始列印。"
+msgstr "熱床的熱預調節有助於最佳化首層列印品質。預調節完成後即開始列印。"
#, c-format, boost-format
msgid "Remaining time: %dmin%ds"
@@ -3955,7 +3955,7 @@ msgstr "匯入 SLA 存檔"
# TODO: Review, changed by lang refactor. PR 14254
msgid "The SLA archive doesn't contain any presets. Please activate some SLA printer presets first before importing that SLA archive."
-msgstr "SLA 存檔不包含任何預設。在匯入該 SLA 存檔之前,請先啟用一些 SLA 列印設備預設。SLA 存檔不包含任何預設。在匯入該 SLA 存檔之前,請先啟用一些 SLA 列印設備預設。"
+msgstr "SLA 存檔不包含任何預設。在匯入該 SLA 存檔之前,請先啟用一些 SLA 列印裝置預設。SLA 存檔不包含任何預設。在匯入該 SLA 存檔之前,請先啟用一些 SLA 列印裝置預設。"
msgid "Importing canceled."
msgstr "匯入已取消。"
@@ -4008,7 +4008,7 @@ msgid "Orca Slicer is licensed under "
msgstr "Orca Slicer 授權於"
msgid "GNU Affero General Public License, version 3"
-msgstr "GNU Affero 通用公共許可證,版本 3"
+msgstr "GNU Affero 通用公共授權條款,版本 3"
msgid "Orca Slicer is based on PrusaSlicer and BambuStudio"
msgstr "Orca Slicer 基於 PrusaSlicer 與 BambuStudio"
@@ -4017,7 +4017,7 @@ msgid "Libraries"
msgstr "函式庫"
msgid "This software uses open source components whose copyright and other proprietary rights belong to their respective owners"
-msgstr "本軟體採用了開源組件,其版權及相關專有權歸屬於各自的所有者"
+msgstr "本軟體採用了開源元件,其版權及相關專有權歸屬於各自的所有者"
#, c-format, boost-format
msgid "About %s"
@@ -4096,7 +4096,7 @@ msgid ""
"'Device -> Print parts'"
msgstr ""
"噴嘴流量未設定。請在編輯線材前設定噴嘴流量。\n"
-"『設備 -> 列印零件』"
+"『裝置 -> 列印零件』"
msgid "AMS"
msgstr "AMS"
@@ -4112,7 +4112,7 @@ msgid "Dynamic flow calibration"
msgstr "動態流量校正"
msgid "The nozzle temp and max volumetric speed will affect the calibration results. Please fill in the same values as the actual printing. They can be auto-filled by selecting a filament preset."
-msgstr "噴嘴溫度和最大體積速度會影響到校正結果,請填寫與實際列印相同的數值。可通過選擇已有的材料預設來自動填寫。噴嘴溫度和最大體積速度會影響到校正結果,請填寫與實際列印相同的數值。可通過選擇已有的材料預設來自動填寫。"
+msgstr "噴嘴溫度和最大體積速度會影響到校正結果,請填寫與實際列印相同的數值。可透過選擇已有的材料預設來自動填寫。噴嘴溫度和最大體積速度會影響到校正結果,請填寫與實際列印相同的數值。可透過選擇已有的材料預設來自動填寫。"
msgid "Nozzle Diameter"
msgstr "噴嘴直徑"
@@ -4183,7 +4183,7 @@ msgid ""
msgstr ""
"上半部區域:原始\n"
"下半部區域:未映射時將使用原始專案的線材。\n"
-"您可以點擊以修改"
+"您可以點選以修改"
msgid ""
"Upper half area: Original\n"
@@ -4192,7 +4192,7 @@ msgid ""
msgstr ""
"上半部區域:原始\n"
"下半部區域:AMS 中的線材\n"
-"您可以點擊以修改"
+"您可以點選以修改"
msgid ""
"Upper half area: Original\n"
@@ -4201,7 +4201,7 @@ msgid ""
msgstr ""
"上半部區域:原始\n"
"下半部區域:AMS 中的線材\n"
-"您無法點擊以修改"
+"您無法點選以修改"
msgid "AMS Slots"
msgstr "AMS 槽內線材"
@@ -4227,7 +4227,7 @@ msgstr "右側 AMS"
#, c-format, boost-format
msgid "Printing with the current nozzle may produce an extra %0.2f g of waste."
-msgstr "使用當前噴嘴列印可能會產生額外 %0.2f 克廢料。"
+msgstr "使用目前噴嘴列印可能會產生額外 %0.2f 克廢料。"
#, c-format, boost-format
msgid "Tips: the filament type(%s) does not match with the filament type(%s) in the slicing file. If you want to use this slot, you can install %s instead of %s and change slot information on the 'Device' page."
@@ -4272,7 +4272,7 @@ msgid "AMS slot used for this filament"
msgstr "目前線材對應的 AMS 槽位"
msgid "Click to select AMS slot manually"
-msgstr "滑鼠左鍵點擊以手動選擇 AMS 槽位"
+msgstr "滑鼠左鍵點選以手動選擇 AMS 槽位"
msgid "Do not Enable AMS"
msgstr "不使用 AMS"
@@ -4286,7 +4286,7 @@ msgid "Print with filament in AMS"
msgstr "使用 AMS 裡的線材列印"
msgid "When the current material run out, the printer will continue to print in the following order."
-msgstr "當目前線材用完時,列印設備將按照以下順序繼續列印。"
+msgstr "當目前線材用完時,列印裝置將按照以下順序繼續列印。"
msgid "Identical filament: same brand, type and color."
msgstr "相同線材:相同品牌、類型和顏色。"
@@ -4295,10 +4295,10 @@ msgid "Group"
msgstr "組"
msgid "When the current material runs out, the printer would use identical filament to continue printing."
-msgstr "當目前線材用完時,列印設備將使用相同的線材繼續列印。"
+msgstr "當目前線材用完時,列印裝置將使用相同的線材繼續列印。"
msgid "The printer does not currently support auto refill."
-msgstr "此列印設備目前不支援自動補料功能。"
+msgstr "此列印裝置目前不支援自動補料功能。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "AMS filament backup is not enabled; please enable it in the AMS settings."
@@ -4308,7 +4308,7 @@ msgid ""
"When the current filament runs out, the printer will use identical filament to continue printing.\n"
"*Identical filament: same brand, type and color."
msgstr ""
-"當目前線材用完時,列印設備將使用相同的線材繼續列印。\n"
+"當目前線材用完時,列印裝置將使用相同的線材繼續列印。\n"
"*相同線材:相同品牌、類型和顏色。"
msgid "DRY"
@@ -4369,7 +4369,7 @@ msgid "Switching"
msgstr "切換中"
msgid "The printer is busy and cannot switch AMS type."
-msgstr "列印設備忙碌中,無法切換 AMS 類型。"
+msgstr "列印裝置忙碌中,無法切換 AMS 類型。"
msgid "Please unload all filament before switching."
msgstr "請在切換前退出所有線材。"
@@ -4381,7 +4381,7 @@ msgid "Arrange AMS Order"
msgstr "排列 AMS 順序"
msgid "AMS ID will be reset. If you want a specific ID sequence, disconnect all AMS before resetting and connect them in the desired order after resetting."
-msgstr "AMS ID 將被重設。如果您需要特定的 ID 順序,請在重設前中斷連接所有 AMS,並在重設後按所需順序連接它們。"
+msgstr "AMS ID 將被重設。如果您需要特定的 ID 順序,請在重設前中斷連線所有 AMS,並在重設後按所需順序連線它們。"
msgid "File"
msgstr "檔案"
@@ -4397,7 +4397,7 @@ msgid "Failed to install the plug-in. The plug-in file may be in use. Please res
msgstr "外掛程式安裝失敗。外掛程式檔案可能正在使用中。請重新啟動 OrcaSlicer 並重試。同時檢查是否被防毒軟體封鎖或刪除。"
msgid "Click here to see more info"
-msgstr "點擊這裡查看更多資訊"
+msgstr "點選這裡檢視更多資訊"
msgid "The network plug-in was installed but could not be loaded. Please restart the application."
msgstr "網路外掛程式已安裝但無法載入。請重新啟動應用程式。"
@@ -4406,10 +4406,10 @@ msgid "Restart Required"
msgstr "需要重新啟動"
msgid "Please home all axes (click "
-msgstr "請先執行回原點(點擊"
+msgstr "請先執行回原點(點選"
msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr ")來定位工具頭的位置,這可防止設備移動超出可列印範圍,並避免設備磨損。"
+msgstr ")來定位工具頭的位置,這可防止裝置移動超出可列印範圍,並避免裝置磨損。"
msgid "Go Home"
msgstr "回原點"
@@ -4424,7 +4424,7 @@ msgstr "發生了致命錯誤:「%1%」"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Please save your project and restart the application."
-msgstr "請儲存專案並重啟程式。"
+msgstr "請儲存專案並重新啟動程式。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Processing G-Code from previous file…"
@@ -4449,7 +4449,7 @@ msgid "Underflow"
msgstr "下溢"
msgid "Floating reserved operand"
-msgstr "浮點保留操作數"
+msgstr "浮點保留運算元"
msgid "Stack overflow"
msgstr "堆疊溢位"
@@ -4474,19 +4474,19 @@ msgstr ""
#, boost-format
msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp."
-msgstr "將臨時 G-code 複製到輸出 G-code 時失敗。目標設備可能存在問題,請嘗試再次匯出或使用不同的設備。損壞的 G-code 已輸出為 %1%.tmp。將臨時 G-code 複製到輸出 G-code 時失敗。目標設備可能存在問題,請嘗試再次匯出或使用不同的設備。損壞的 G-code 已輸出為 %1%.tmp。"
+msgstr "將臨時 G-code 複製到輸出 G-code 時失敗。目標裝置可能存在問題,請嘗試再次匯出或使用不同的裝置。損壞的 G-code 已輸出為 %1%.tmp。將臨時 G-code 複製到輸出 G-code 時失敗。目標裝置可能存在問題,請嘗試再次匯出或使用不同的裝置。損壞的 G-code 已輸出為 %1%.tmp。"
#, boost-format
msgid "Renaming of the G-code after copying to the selected destination folder has failed. Current path is %1%.tmp. Please try exporting again."
-msgstr "複製到選取之目標檔案夾的 G-code 重命名失敗。目前路徑為 %1%.tmp。請再試看看匯出。複製到選取之目標檔案夾的 G-code 重命名失敗。目前路徑為 %1%.tmp。請再試看看匯出。"
+msgstr "複製到選取之目標檔案夾的 G-code 重新命名失敗。目前路徑為 %1%.tmp。請再試看看匯出。複製到選取之目標檔案夾的 G-code 重新命名失敗。目前路徑為 %1%.tmp。請再試看看匯出。"
#, boost-format
msgid "Copying of the temporary G-code has finished but the original code at %1% couldn't be opened during copy check. The output G-code is at %2%.tmp."
-msgstr "臨時 G-code 的複製已完成,但原始 G-code 因 %1% 在複製檢查期間無法打開。輸出 G-code 為%2%.tmp。臨時 G-code 的複製已完成,但原始 G-code 因 %1% 在複製檢查期間無法打開。輸出 G-code 為%2%.tmp。"
+msgstr "臨時 G-code 的複製已完成,但原始 G-code 因 %1% 在複製檢查期間無法開啟。輸出 G-code 為%2%.tmp。臨時 G-code 的複製已完成,但原始 G-code 因 %1% 在複製檢查期間無法打開。輸出 G-code 為%2%.tmp。"
#, boost-format
msgid "Copying of the temporary G-code has finished but the exported code couldn't be opened during copy check. The output G-code is at %1%.tmp."
-msgstr "臨時 G-code 的複製已完成,但匯出的 G-code 無法在複製檢查過程中打開。輸出 G-code 為 %1%.tmp。臨時 G-code 的複製已完成,但匯出的 G-code 無法在複製檢查過程中打開。輸出 G-code 為 %1%.tmp。"
+msgstr "臨時 G-code 的複製已完成,但匯出的 G-code 無法在複製檢查過程中開啟。輸出 G-code 為 %1%.tmp。臨時 G-code 的複製已完成,但匯出的 G-code 無法在複製檢查過程中開啟。輸出 G-code 為 %1%.tmp。"
#, boost-format
msgid "G-code file exported to %1%"
@@ -4514,7 +4514,7 @@ msgstr "將臨時 G-Code 複製到輸出 G-Code 失敗"
#, boost-format
msgid "Scheduling upload to `%1%`. See Window -> Print Host Upload Queue"
-msgstr "計劃上傳到 `%1%`。請參閱視窗-> 列印設備上傳佇列"
+msgstr "計畫上傳到 `%1%`。請參閱視窗-> 列印裝置上傳佇列"
msgid "Origin"
msgstr "原點"
@@ -4564,7 +4564,7 @@ msgstr "所選檔案不包含任何幾何資料。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "The selected file contains several disjointed areas. This is not supported."
-msgstr "所選檔案包含多個未連接的區域。不支援這種類型。"
+msgstr "所選檔案包含多個不相連的區域。不支援這種類型。"
msgid "Choose a file to import bed texture from (PNG/SVG):"
msgstr "選擇(PNG/SVG)檔案作為熱床紋理:"
@@ -4606,7 +4606,7 @@ msgid "The recommended nozzle temperature for this filament type is [%d, %d] deg
msgstr "該線材的推薦噴嘴溫度是攝氏 [%d, %d] 度"
msgid "Adaptive Pressure Advance model validation failed:\n"
-msgstr "自適應壓力補償模型驗證失敗:\n"
+msgstr "適應性壓力補償模型驗證失敗:\n"
# TODO: Review, changed by lang refactor. PR 14254
msgid ""
@@ -4620,7 +4620,7 @@ msgstr ""
# TODO: Review, changed by lang refactor. PR 14254
#, c-format, boost-format
msgid "Current chamber temperature is higher than the material's safe temperature; this may result in material softening and nozzle clogs. The maximum safe temperature for the material is %d"
-msgstr "目前列印設備內部溫度高於線材的安全溫度,可能會導致線材軟化和堵塞。線材的最高安全溫度為:%d"
+msgstr "目前列印裝置內部溫度高於線材的安全溫度,可能會導致線材軟化和堵塞。線材的最高安全溫度為:%d"
#, c-format, boost-format
msgid "The minimal chamber temperature (%d℃) is higher than the target chamber temperature (%d℃). The minimal value is the threshold at which printing starts while the chamber keeps heating toward the target, so it should not exceed it. It will be clamped to the target."
@@ -4677,10 +4677,10 @@ msgid ""
"\n"
"The value will be reset to 0."
msgstr ""
-"象腳補償設置過大是不合理的。如果確實有嚴重的象腳效應,請檢查其他設置。\n"
+"象腳補償設定過大是不合理的。如果確實有嚴重的象腳效應,請檢查其他設定。\n"
"例如,檢查床溫是否設定過高。\n"
"\n"
-"該值將會重設為 0。象腳補償設置過大是不合理的。如果確實有嚴重的象腳效應,請檢查其他設置。\n"
+"該值將會重設為 0。象腳補償設定過大是不合理的。如果確實有嚴重的象腳效應,請檢查其他設定。\n"
"例如,檢查床溫是否設定過高。\n"
"\n"
"該值將會重設為 0。"
@@ -4705,13 +4705,13 @@ msgid ""
"YES - Keep Prime Tower\n"
"NO - Keep Adaptive Layer Height and Independent Support Layer Height"
msgstr ""
-"換料塔不支援和自適應層高或獨立支撐層高。同時開啟\n"
+"換料塔不支援和適應性層高或獨立支撐層高。同時開啟\n"
"如何選擇?\n"
"是 - 選擇開啟換料塔\n"
-"否 - 選擇保留自適應層高或獨立支撐層高換料塔不支援和自適應層高或獨立支撐層高。同時開啟\n"
+"否 - 選擇保留適應性層高或獨立支撐層高換料塔不支援和適應性層高或獨立支撐層高。同時開啟\n"
"如何選擇?\n"
"是 - 選擇開啟換料塔\n"
-"否 - 選擇保留自適應層高或獨立支撐層高"
+"否 - 選擇保留適應性層高或獨立支撐層高"
msgid ""
"Prime tower does not work when Adaptive Layer Height is on.\n"
@@ -4719,13 +4719,13 @@ msgid ""
"YES - Keep Prime Tower\n"
"NO - Keep Adaptive Layer Height"
msgstr ""
-"換料塔不支援和自適應層高同時開啟。\n"
+"換料塔不支援和適應性層高同時開啟。\n"
"如何選擇?\n"
"是 - 選擇開啟換料塔\n"
-"否 - 選擇保留自適應層高換料塔不支援和自適應層高同時開啟。\n"
+"否 - 選擇保留適應性層高換料塔不支援和適應性層高同時開啟。\n"
"如何選擇?\n"
"是 - 選擇開啟換料塔\n"
-"否 - 選擇保留自適應層高"
+"否 - 選擇保留適應性層高"
msgid ""
"Prime tower does not work when Independent Support Layer Height is on.\n"
@@ -4773,7 +4773,7 @@ msgid "Spiral mode only works when wall loops is 1, support is disabled, clumpin
msgstr "花瓶模式僅適用於牆體圈數為 1、停用支撐、停用偵測堵塞、頂部外殼層數為 0、稀疏填充密度為 0,且延時攝影類型為傳統模式時。"
msgid " But machines with I3 structure will not generate timelapse videos."
-msgstr " 但採用 I3 結構的列印設備無法產生延時影片。"
+msgstr " 但採用 I3 結構的列印裝置無法產生延時影片。"
# TODO: Review, changed by lang refactor. PR 14254
msgid ""
@@ -4870,10 +4870,10 @@ msgid "Pause (low speed of the heatbreak fan)"
msgstr "暫停(熱斷風扇低速)"
msgid "Pause (chamber temperature control problem)"
-msgstr "暫停(列印設備內部溫度控制問題)"
+msgstr "暫停(列印裝置內部溫度控制問題)"
msgid "Cooling chamber"
-msgstr "列印設備內部溫度冷卻中"
+msgstr "列印裝置內部溫度冷卻中"
msgid "Pause (G-code inserted by user)"
msgstr "暫停(使用者插入 G-code)"
@@ -4933,7 +4933,7 @@ msgid "Auto bed leveling -phase 2"
msgstr "自動熱床調平 - 第二階段"
msgid "Heating chamber"
-msgstr "加熱列印設備內部"
+msgstr "加熱列印裝置內部"
msgid "Cooling heatbed"
msgstr "冷卻熱床"
@@ -4960,7 +4960,7 @@ msgid "Measuring Surface"
msgstr "測量表面"
msgid "Calibrating the detection position of nozzle clumping"
-msgstr "校正噴嘴堵塞檢測位置"
+msgstr "校正噴嘴堵塞偵測位置"
msgid "Update successful."
msgstr "更新成功。"
@@ -4975,7 +4975,7 @@ msgid "Update failed."
msgstr "更新失敗。"
msgid "Timelapse is not supported on this printer."
-msgstr "此列印設備不支援縮時攝影。"
+msgstr "此列印裝置不支援縮時攝影。"
msgid "Timelapse is not supported while the storage does not exist."
msgstr "儲存空間不存在時不支援縮時攝影。"
@@ -4987,24 +4987,24 @@ msgid "Timelapse is not supported while the storage is readonly."
msgstr "儲存空間為唯讀時不支援縮時攝影。"
msgid "To ensure your safety, certain processing tasks (such as laser) can only be resumed on printer."
-msgstr "為確保您的安全,某些處理作業(例如雷射)只能在列印設備上恢復。"
+msgstr "為確保您的安全,某些處理作業(例如雷射)只能在列印裝置上恢復。"
#, c-format, boost-format
msgid "The chamber temperature is too high, which may cause the filament to soften. Please wait until the chamber temperature drops below %d℃. You may open the front door or enable fans to cool down."
-msgstr "列印設備內部溫度過高,可能導致線材軟化。請等待列印設備內部溫度降至 %d℃ 以下。您可以打開前門或啟用風扇來加速冷卻。"
+msgstr "列印裝置內部溫度過高,可能導致線材軟化。請等待列印裝置內部溫度降至 %d℃ 以下。您可以打開前門或啟用風扇來加速冷卻。"
#, c-format, boost-format
msgid "AMS temperature is too high, which may cause the filament to soften. Please wait until the AMS temperature drops below %d℃."
msgstr "AMS 溫度過高,可能導致線材軟化。請等待 AMS 溫度降至 %d℃ 以下。"
msgid "The current chamber temperature or the target chamber temperature exceeds 45℃. In order to avoid extruder clogging, low temperature filament(PLA/PETG/TPU) is not allowed to be loaded."
-msgstr "目前列印設備內部溫度或目標列印設備內部溫度超過 45℃。為避免擠出機堵塞,不允許裝入低溫線材(PLA/PETG/TPU)。"
+msgstr "目前列印裝置內部溫度或目標列印裝置內部溫度超過 45℃。為避免擠出機堵塞,不允許裝入低溫線材(PLA/PETG/TPU)。"
msgid "Low temperature filament(PLA/PETG/TPU) is loaded in the extruder. In order to avoid extruder clogging, it is not allowed to set the chamber temperature."
-msgstr "擠出機內已裝入低溫線材(PLA/PETG/TPU)。為避免擠出機堵塞,不允許設定列印設備內部溫度。"
+msgstr "擠出機內已裝入低溫線材(PLA/PETG/TPU)。為避免擠出機堵塞,不允許設定列印裝置內部溫度。"
msgid "When you set the chamber temperature below 40℃, the chamber temperature control will not be activated, and the target chamber temperature will automatically be set to 0℃."
-msgstr "當機箱溫度設置低於 40℃時,機箱溫度控制將不會啟動,並且目標機箱溫度將自動設為 0℃。"
+msgstr "當機箱溫度設定低於 40℃時,機箱溫度控制將不會啟動,並且目標機箱溫度將自動設為 0℃。"
msgid "Failed to start print job"
msgstr "無法啟動列印作業"
@@ -5016,7 +5016,7 @@ msgid "Current flowrate cali param is invalid"
msgstr "目前流量校正參數無效"
msgid "Selected diameter and machine diameter do not match"
-msgstr "所選噴嘴直徑與設備不匹配"
+msgstr "所選噴嘴直徑與裝置不匹配"
msgid "Failed to generate cali G-code"
msgstr "產生校正代碼失敗"
@@ -5113,7 +5113,7 @@ msgid "Edit Custom G-code (%1%)"
msgstr "編輯自訂 GOCDE(%1%)"
msgid "Built-in placeholders (Double click item to add to G-code)"
-msgstr "內建占位符(雙點擊加入GCODE)"
+msgstr "內建占位符(雙點選加入GCODE)"
msgid "Search G-code placeholders"
msgstr "搜尋 GCODE 內的占位符"
@@ -5169,7 +5169,7 @@ msgid "SLA Materials settings"
msgstr "SLA 材料設定"
msgid "Printer settings"
-msgstr "列印設備設定"
+msgstr "列印裝置設定"
msgid "parameter name"
msgstr "參數名稱"
@@ -5466,7 +5466,7 @@ msgid "Why this grouping"
msgstr "為何這樣分組"
msgid "Please place filaments on the printer based on grouping result."
-msgstr "請根據分組結果在列印設備上放置線材。"
+msgstr "請根據分組結果在列印裝置上放置線材。"
msgid "Tips:"
msgstr "提示:"
@@ -5488,15 +5488,15 @@ msgstr "與最佳分組相比,節省 %1%g 線材但增加 %2% 換料次數。"
#, boost-format
msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr "與單噴嘴列印設備相比,節省 %1%g 線材並減少 %2% 換料次數。"
+msgstr "與單噴嘴列印裝置相比,節省 %1%g 線材並減少 %2% 換料次數。"
#, boost-format
msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr "與單噴嘴列印設備相比,節省 %1%g 線材但增加 %2% 換料次數。"
+msgstr "與單噴嘴列印裝置相比,節省 %1%g 線材但增加 %2% 換料次數。"
#, boost-format
msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr "與單噴嘴列印設備相比,增加 %1%g 線材但減少 %2% 換料次數。"
+msgstr "與單噴嘴列印裝置相比,增加 %1%g 線材但減少 %2% 換料次數。"
msgid "Set to Optimal"
msgstr "設為最佳"
@@ -5577,7 +5577,7 @@ msgstr "列印"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Printer"
-msgstr "列印設備"
+msgstr "列印裝置"
msgid "Time Estimation"
msgstr "時間預估"
@@ -5621,7 +5621,7 @@ msgid "Variable layer height"
msgstr "可變層高"
msgid "Adaptive"
-msgstr "自適應"
+msgstr "適應性"
msgid "Quality / Speed"
msgstr "細節/速度"
@@ -5839,7 +5839,7 @@ msgid "Explosion Ratio"
msgstr "爆炸比例"
msgid "Section View"
-msgstr "剖面視圖"
+msgstr "剖面檢視"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Assembly Control"
@@ -5898,7 +5898,7 @@ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds
msgstr "線材 %s 放置在 %s,但產生的 G-code 路徑超出 %s 的可列印高度。"
msgid "Open wiki for more information."
-msgstr "開啟 wiki 查看更多資訊。"
+msgstr "開啟 wiki 檢視更多資訊。"
msgid "Only the object being edited is visible."
msgstr "只有正在編輯的物件是可見的。"
@@ -5917,10 +5917,10 @@ msgid "Partial flushing volume set to 0. Multi-color printing may cause color mi
msgstr "部分沖洗體積設為 0。多色列印可能導致模型出現混色。請重新調整沖洗設定。"
msgid "Click Wiki for help."
-msgstr "點擊 Wiki 尋求幫助。"
+msgstr "點選 Wiki 尋求幫助。"
msgid "Click here to regroup"
-msgstr "點擊此處重新分組"
+msgstr "點選此處重新分組"
msgid "Flushing Volume"
msgstr "沖洗量"
@@ -5939,18 +5939,18 @@ msgid "High-temperature Heatbed Calibration"
msgstr "高溫熱床校正"
msgid "Nozzle clumping detection Calibration"
-msgstr "噴嘴堵塞檢測校正"
+msgstr "噴嘴堵塞偵測校正"
msgid "Calibration program"
-msgstr "校正程序"
+msgstr "校正程式"
msgid ""
"The calibration program detects the status of your device automatically to minimize deviation.\n"
"It keeps the device performing optimally."
msgstr ""
-"校正程式會自動偵測您的設備狀態以減少偏差。\n"
-"這可保持設備最佳性能。校正程序會自動檢測設備狀態以最小化偏差。\n"
-"它確保設備保持最佳性能。"
+"校正程式會自動偵測您的裝置狀態以減少偏差。\n"
+"這可保持裝置最佳效能。校正程式會自動偵測裝置狀態以最小化偏差。\n"
+"它確保裝置保持最佳效能。"
msgid "Calibration Flow"
msgstr "校正流程"
@@ -5992,23 +5992,23 @@ msgid "Show \"Live Video\" guide page."
msgstr "顯示「直播影片」引導。"
msgid "Connect Printer (LAN)"
-msgstr "連接列印設備(區域網路)"
+msgstr "連線列印裝置(區域網路)"
msgid "Please input the printer access code:"
-msgstr "請輸入列印設備訪問代碼:"
+msgstr "請輸入列印裝置存取代碼:"
msgid ""
"You can find it in \"Settings > Network > Access code\"\n"
"on the printer, as shown in the figure:"
msgstr ""
-"您可以在列印設備的「設定 > 網路 > 訪問代碼」中找到,\n"
+"您可以在列印裝置的「設定 > 網路 > 存取代碼」中找到,\n"
"如圖所示:"
msgid ""
"You can find it in \"Setting > Setting > LAN only > Access Code\"\n"
"on the printer, as shown in the figure:"
msgstr ""
-"您可以在列印設備的「設定 > 設定 > 僅區域網路 > 訪問代碼」中找到,\n"
+"您可以在列印裝置的「設定 > 設定 > 僅區域網路 > 存取代碼」中找到,\n"
"如圖所示:"
# TODO: Review, changed by lang refactor. PR 14254
@@ -6019,7 +6019,7 @@ msgid "New Window"
msgstr "新視窗"
msgid "Open a new window"
-msgstr "打開新視窗"
+msgstr "開啟新視窗"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Closing application"
@@ -6038,10 +6038,10 @@ msgid "Preview"
msgstr "預覽"
msgid "Device"
-msgstr "設備"
+msgstr "裝置"
msgid "Multi-device"
-msgstr "多臺設備"
+msgstr "多臺裝置"
msgid "Project"
msgstr "專案"
@@ -6084,25 +6084,25 @@ msgid "Send all"
msgstr "傳送所有列印板"
msgid "Send to Multi-device"
-msgstr "傳送給多個列印設備"
+msgstr "傳送給多個列印裝置"
msgid "Keyboard Shortcuts"
-msgstr "快捷鍵"
+msgstr "快速鍵"
msgid "Show the list of keyboard shortcuts"
-msgstr "顯示快捷鍵清單"
+msgstr "顯示快速鍵清單"
msgid "Setup Wizard"
msgstr "設定精靈"
msgid "Show Configuration Folder"
-msgstr "打開設定檔的資料夾"
+msgstr "開啟設定檔的資料夾"
msgid "Troubleshoot Center"
msgstr "疑難排解中心"
msgid "Open Network Test"
-msgstr "打開網路測試"
+msgstr "開啟網路測試"
msgid "Show Tip of the Day"
msgstr "顯示每日小提示"
@@ -6152,16 +6152,16 @@ msgid "Right View"
msgstr "右視圖"
msgid "Start a new window"
-msgstr "打開新視窗"
+msgstr "開啟新視窗"
msgid "New Project"
-msgstr "新建專案"
+msgstr "新增專案"
msgid "Start a new project"
-msgstr "新建一個專案"
+msgstr "新增一個專案"
msgid "Open a project file"
-msgstr "打開專案"
+msgstr "開啟專案"
msgid "Recent files"
msgstr "最近檔案"
@@ -6215,7 +6215,7 @@ msgid "Export Generic 3MF"
msgstr "匯出通用 3MF"
msgid "Export 3MF file without using some 3mf-extensions"
-msgstr "匯出不含 3MF 擴展的 3MF 檔案"
+msgstr "匯出不含 3MF 擴充的 3MF 檔案"
msgid "Export current sliced file"
msgstr "匯出目前已切片的檔案"
@@ -6328,7 +6328,7 @@ msgid "Reset Window Layout"
msgstr "重設視窗配置"
msgid "Reset to default window layout"
-msgstr "恢復預設視窗配置"
+msgstr "還原預設視窗配置"
msgid "Show &Labels"
msgstr "顯示名稱"
@@ -6412,10 +6412,10 @@ msgid "Calibration Guide"
msgstr "校正指南"
msgid "&Open G-code"
-msgstr "打開 G-code"
+msgstr "開啟 G-code"
msgid "Open a G-code file"
-msgstr "打開 G-code 檔案"
+msgstr "開啟 G-code 檔案"
msgid "Re&load from Disk"
msgstr "從硬碟重新載入"
@@ -6498,7 +6498,7 @@ msgid ""
"Hint: Make sure you have added the corresponding printer before importing the configs."
msgstr ""
"\n"
-"提示:在匯入設定之前,請確保已新增對應的列印設備。"
+"提示:在匯入設定之前,請確保已新增對應的列印裝置。"
msgid "Import result"
msgstr "匯入結果"
@@ -6520,60 +6520,60 @@ msgstr ""
"其中包含以下資訊:\n"
"1. 列印參數預設\n"
"2. 線材預設\n"
-"3. 列印設備預設"
+"3. 列印裝置預設"
msgid "Synchronization"
msgstr "同步"
msgid "The device cannot handle more conversations. Please retry later."
-msgstr "該設備無法處理更多對話。請稍後再試。"
+msgstr "該裝置無法處理更多對話。請稍後再試。"
msgid "Player is malfunctioning. Please reinstall the system player."
msgstr "播放器故障。請重新安裝系統播放器。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "The player is not loaded; please click the \"play\" button to retry."
-msgstr "播放器未載入,請點擊『播放』按鈕重試。"
+msgstr "播放器未載入,請點選『播放』按鈕重試。"
msgid "The player is not loaded because the GStreamer GTK video sink is missing or failed to initialize."
msgstr "由於 GStreamer GTK 視訊接收器遺失或初始化失敗,因此未載入播放器。"
msgid "Please confirm if the printer is connected."
-msgstr "請確認列印設備是否已連接。"
+msgstr "請確認列印裝置是否已連線。"
msgid "The printer is currently busy downloading. Please try again after it finishes."
-msgstr "列印設備目前正忙於下載。請待下載完成後再試一次。"
+msgstr "列印裝置目前正忙於下載。請待下載完成後再試一次。"
msgid "Printer camera is malfunctioning."
-msgstr "列印設備攝影機故障。"
+msgstr "列印裝置攝影機故障。"
msgid "A problem occurred. Please update the printer firmware and try again."
-msgstr "發生問題。請更新列印設備韌體後再試一次。"
+msgstr "發生問題。請更新列印裝置韌體後再試一次。"
msgid "LAN Only Liveview is off. Please turn on the liveview on printer screen."
-msgstr "僅 LAN 模式的 LiveView 已關閉。請在列印設備螢幕上開啟 LiveView。"
+msgstr "僅 LAN 模式的 LiveView 已關閉。請在列印裝置螢幕上開啟 LiveView。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Please enter the IP of the printer to connect."
-msgstr "請輸入列印設備的 IP 以進行連接。"
+msgstr "請輸入列印裝置的 IP 以進行連線。"
msgid "Initializing..."
msgstr "正在初始化..."
msgid "Connection Failed. Please check the network and try again"
-msgstr "連接失敗。請檢查網路並重試"
+msgstr "連線失敗。請檢查網路並重試"
msgid "Please check the network and try again. You can restart or update the printer if the issue persists."
-msgstr "請檢查網路並重試。如果問題持續,您可以重新啟動或更新列印設備。"
+msgstr "請檢查網路並重試。如果問題持續,您可以重新啟動或更新列印裝置。"
msgid "The printer has been logged out and cannot connect."
-msgstr "列印設備已登出,無法連接。"
+msgstr "列印裝置已登出,無法連線。"
msgid "Video Stopped."
msgstr "影片已停止。"
msgid "LAN Connection Failed (Failed to start liveview)"
-msgstr "區域網路連接失敗(無法啟動 Liveview)"
+msgstr "區域網路連線失敗(無法啟動 Liveview)"
msgid ""
"Virtual Camera Tools is required for this task!\n"
@@ -6647,22 +6647,22 @@ msgid "Switch to 3MF model files."
msgstr "切換到 3MF 模型檔案。"
msgid "Delete selected files from printer."
-msgstr "從列印設備中刪除選中的檔案。"
+msgstr "從列印裝置中刪除選取的檔案。"
msgid "Download"
msgstr "下載"
msgid "Download selected files from printer."
-msgstr "從列印設備中下載選中的檔案。"
+msgstr "從列印裝置中下載選取的檔案。"
msgid "Batch manage files."
msgstr "批次管理檔案。"
msgid "Reload file list from printer."
-msgstr "從列印設備重新載入檔案清單。"
+msgstr "從列印裝置重新載入檔案清單。"
msgid "No printers."
-msgstr "未選擇列印設備。"
+msgstr "未選擇列印裝置。"
msgid "Loading file list..."
msgstr "載入檔案清單..."
@@ -6674,10 +6674,10 @@ msgid "Load failed"
msgstr "載入失敗"
msgid "Browsing file in storage is not supported in current firmware. Please update the printer firmware."
-msgstr "目前韌體不支援瀏覽儲存空間中的檔案。請更新列印設備韌體。"
+msgstr "目前韌體不支援瀏覽儲存空間中的檔案。請更新列印裝置韌體。"
msgid "LAN Connection Failed (Failed to view sdcard)"
-msgstr "LAN 連接失敗(無法查看 SD 卡)。"
+msgstr "LAN 連線失敗(無法檢視 SD 卡)。"
msgid "Browsing file in storage is not supported in LAN Only Mode."
msgstr "僅 LAN 模式不支援瀏覽儲存空間中的檔案。"
@@ -6685,14 +6685,14 @@ msgstr "僅 LAN 模式不支援瀏覽儲存空間中的檔案。"
#, c-format, boost-format
msgid "You are going to delete %u file from printer. Are you sure to continue?"
msgid_plural "You are going to delete %u files from printer. Are you sure to continue?"
-msgstr[0] "將從列印設備中刪除 %u 個檔案。確認要繼續嗎?"
+msgstr[0] "將從列印裝置中刪除 %u 個檔案。確認要繼續嗎?"
msgid "Delete files"
msgstr "刪除檔案"
#, c-format, boost-format
msgid "Do you want to delete the file '%s' from printer?"
-msgstr "確認要從列印設備中刪除檔案 '%s' 嗎?"
+msgstr "確認要從列印裝置中刪除檔案 '%s' 嗎?"
msgid "Delete file"
msgstr "刪除檔案"
@@ -6701,7 +6701,7 @@ msgid "Fetching model information..."
msgstr "正在取得模型資訊..."
msgid "Failed to fetch model information from printer."
-msgstr "無法從列印設備取得模型資訊。"
+msgstr "無法從列印裝置取得模型資訊。"
msgid "Failed to parse model information."
msgstr "解析模型資訊失敗。"
@@ -6728,7 +6728,7 @@ msgid "Play"
msgstr "播放"
msgid "Open Folder"
-msgstr "打開資料夾"
+msgstr "開啟資料夾"
msgid "Download finished"
msgstr "下載完成"
@@ -6741,7 +6741,7 @@ msgid "Air Condition"
msgstr "空調"
msgid "Reconnecting the printer, the operation cannot be completed immediately, please try again later."
-msgstr "重新連接列印設備,操作無法立即完成,請稍後再試。"
+msgstr "重新連線列印裝置,操作無法立即完成,請稍後再試。"
msgid "Timeout, please try again."
msgstr "逾時,請重試。"
@@ -6753,17 +6753,17 @@ msgid "File checksum error. Please retry."
msgstr "檔案核對和錯誤。請重試。"
msgid "Not supported on the current printer version."
-msgstr "目前列印設備的版本不支援。"
+msgstr "目前列印裝置的版本不支援。"
msgid ""
"Please check if the storage is inserted into the printer.\n"
"If it still cannot be read, you can try formatting the storage."
msgstr ""
-"請檢查儲存裝置是否已插入列印設備。\n"
+"請檢查儲存裝置是否已插入列印裝置。\n"
"如果仍無法讀取,您可以嘗試格式化儲存裝置。"
msgid "The firmware version of the printer is too low. Please update the firmware and try again."
-msgstr "列印設備的韌體版本過低。請更新韌體後重試。"
+msgstr "列印裝置的韌體版本過低。請更新韌體後重試。"
msgid "The file already exists, do you want to replace it?"
msgstr "檔案已存在,是否要取代它?"
@@ -6842,20 +6842,20 @@ msgid "Search"
msgstr "搜尋"
msgid "My Device"
-msgstr "我的設備"
+msgstr "我的裝置"
msgid "Other Device"
-msgstr "其他設備"
+msgstr "其他裝置"
msgid "Online"
msgstr "在線"
msgid "Input access code"
-msgstr "輸入訪問代碼"
+msgstr "輸入存取代碼"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Can't find devices?"
-msgstr "無法找到我的設備?"
+msgstr "無法找到我的裝置?"
msgid "Log out successful."
msgstr "登出成功。"
@@ -6867,7 +6867,7 @@ msgid "Busy"
msgstr "忙碌"
msgid "Modifying the device name"
-msgstr "修改列印設備名稱"
+msgstr "修改列印裝置名稱"
msgid "Name is invalid;"
msgstr "無效名稱;"
@@ -6876,7 +6876,7 @@ msgid "illegal characters:"
msgstr "非法字元:"
msgid "illegal suffix:"
-msgstr "非法後綴:"
+msgstr "非法字尾:"
# TODO: Review, changed by lang refactor. PR 14254
msgid "The name field is not allowed to be empty."
@@ -6897,7 +6897,7 @@ msgid "Bind with Pin Code"
msgstr "Pin碼綁定"
msgid "Bind with Access Code"
-msgstr "透過訪問代碼綁定"
+msgstr "透過存取代碼綁定"
msgctxt "Quit_Switching"
msgid "Quit"
@@ -6923,7 +6923,7 @@ msgid "Layer: N/A"
msgstr "層: N/A"
msgid "Click to view thermal preconditioning explanation"
-msgstr "點擊查看熱預處理說明"
+msgstr "點選檢視熱預處理說明"
msgid "Clear"
msgstr "清除"
@@ -6959,7 +6959,7 @@ msgid "Control"
msgstr "控制"
msgid "Printer Parts"
-msgstr "列印設備零件"
+msgstr "列印裝置零件"
msgid "Print Options"
msgstr "列印選項"
@@ -6995,7 +6995,7 @@ msgid "Are you sure you want to stop this print?"
msgstr "確認要停止此列印嗎?"
msgid "The printer is busy with another print job."
-msgstr "列印設備正在執行其他列印作業"
+msgstr "列印裝置正在執行其他列印作業"
msgid "When printing is paused, filament loading and unloading are only supported for external slots."
msgstr "列印暫停時,只支援外部槽位的線材進退料。"
@@ -7016,7 +7016,7 @@ msgid "The selected slot is empty."
msgstr "所選槽位為空。"
msgid "Printer 2D mode does not support 3D calibration"
-msgstr "列印設備 2D 模式不支援 3D 校正"
+msgstr "列印裝置 2D 模式不支援 3D 校正"
msgid "Downloading..."
msgstr "下載中..."
@@ -7041,10 +7041,10 @@ msgid "Please heat the nozzle to above 170℃ before loading or unloading filame
msgstr "請在進料或退料之前將噴嘴加熱至 170℃ 以上。"
msgid "Chamber temperature cannot be changed in cooling mode while printing."
-msgstr "列印時無法在冷卻模式下變更列印設備內部溫度。"
+msgstr "列印時無法在冷卻模式下變更列印裝置內部溫度。"
msgid "If the chamber temperature exceeds 40℃, the system will automatically switch to heating mode. Please confirm whether to switch."
-msgstr "如果列印設備內部溫度超過 40℃,系統將自動切換到加熱模式。請確認是否切換。"
+msgstr "如果列印裝置內部溫度超過 40℃,系統將自動切換到加熱模式。請確認是否切換。"
msgid "Please select an AMS slot before calibration"
msgstr "請先選擇一個 AMS 槽位後進行校正"
@@ -7102,7 +7102,7 @@ msgid "Submit"
msgstr "送出"
msgid "Please click on the star first."
-msgstr "請先點擊星星數量。"
+msgstr "請先點選星星數量。"
msgid "Get oss config failed."
msgstr "取得 oss 設定失敗。"
@@ -7179,10 +7179,10 @@ msgstr ""
"必須至少有一個此列印設定檔的成功列印記錄。"
msgid "click to add machine"
-msgstr "點擊新增印表機"
+msgstr "點選新增印表機"
msgid "Status"
-msgstr "設備狀態"
+msgstr "裝置狀態"
msgctxt "Firmware"
msgid "Update"
@@ -7242,7 +7242,7 @@ msgid "The 3MF file version is in Beta and it is newer than the current OrcaSlic
msgstr "該 3MF 檔案版本為測試版,且較目前的 OrcaSlicer 版本更新。"
msgid "If you would like to try Orca Slicer Beta, you may click to"
-msgstr "如果您想嘗試 Orca Slicer 測試版,可以點擊以下載到"
+msgstr "如果您想嘗試 Orca Slicer 測試版,可以點選以下載到"
msgid "Download Beta Version"
msgstr "下載測試版"
@@ -7270,7 +7270,7 @@ msgid "Server Exception"
msgstr "伺服器異常"
msgid "The server is unable to respond. Please click the link below to check the server status."
-msgstr "伺服器沒有回應,請點擊下方連結檢查伺服器狀態。"
+msgstr "伺服器沒有回應,請點選下方連結檢查伺服器狀態。"
msgid "If the server is in a fault state, you can temporarily use offline printing or local network printing."
msgstr "若伺服器發生故障,可以暫時改用離線列印或本地網路列印。"
@@ -7285,7 +7285,7 @@ msgid "Please refer to Wiki before use->"
msgstr "使用前請參考 Wiki ->"
msgid "3D Mouse disconnected."
-msgstr "3D 滑鼠已中斷連接。"
+msgstr "3D 滑鼠已中斷連線。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "A new configuration is available. Update now?"
@@ -7307,7 +7307,7 @@ msgid "Details"
msgstr "詳細"
msgid "New printer config available."
-msgstr "有新的列印設備設定可用。"
+msgstr "有新的列印裝置設定可用。"
msgid "Undo integration failed."
msgstr "整合取消失敗。"
@@ -7325,7 +7325,7 @@ msgid "Go to download page"
msgstr "前往下載網站。"
msgid "Open Folder."
-msgstr "打開資料夾。"
+msgstr "開啟資料夾。"
msgid "Safely remove hardware."
msgstr "安全移除硬體。"
@@ -7384,7 +7384,7 @@ msgid "Force push"
msgstr "強制推送"
msgid "Shared profiles may be available for this printer."
-msgstr "此列印設備可能有可用的共用設定檔。"
+msgstr "此列印裝置可能有可用的共用設定檔。"
msgid "Browse shared profiles"
msgstr "瀏覽共享設定檔"
@@ -7396,7 +7396,7 @@ msgid " (Repair)"
msgstr "(修復)"
msgid " Click here to install it."
-msgstr "點擊此處安裝。"
+msgstr "點選此處安裝。"
msgid "WARNING:"
msgstr "警告:"
@@ -7493,7 +7493,7 @@ msgid "AI Detections"
msgstr "AI 偵測"
msgid "Printer will send assistant message or pause printing if any of the following problem is detected."
-msgstr "列印設備將發送助手訊息或暫停列印,如果偵測到以下任何問題。"
+msgstr "列印裝置將傳送助手訊息或暫停列印,如果偵測到以下任何問題。"
msgid "Enable AI monitoring of printing"
msgstr "啟用列印過程的 AI 智慧監控"
@@ -7603,7 +7603,7 @@ msgid "Flow"
msgstr "流量"
msgid "Please change the nozzle settings on the printer."
-msgstr "請在列印設備上變更噴嘴設定。"
+msgstr "請在列印裝置上變更噴嘴設定。"
msgid "Brass"
msgstr "黃銅"
@@ -7615,7 +7615,7 @@ msgid "TPU High flow"
msgstr ""
msgid "No wiki link available for this printer."
-msgstr "此列印設備沒有可用的 wiki 連結。"
+msgstr "此列印裝置沒有可用的 wiki 連結。"
msgid "Unavailable while heating maintenance function is on."
msgstr "加熱維護功能啟用時無法使用。"
@@ -7639,7 +7639,7 @@ msgid "Compare presets"
msgstr "比較設定"
msgid "View all object's settings"
-msgstr "查看所有物件的設定"
+msgstr "檢視所有物件的設定"
msgid "Material settings"
msgstr "材料設定"
@@ -7749,13 +7749,13 @@ msgid "Tips"
msgstr "提示"
msgid "Sync printer information"
-msgstr "同步列印設備資訊"
+msgstr "同步列印裝置資訊"
msgid ""
"The currently selected machine preset is inconsistent with the connected printer type.\n"
"Are you sure to continue syncing?"
msgstr ""
-"目前選擇的列印設備預設與連接的列印設備類型不一致。\n"
+"目前選擇的列印裝置預設與連線的列印裝置類型不一致。\n"
"確定要繼續同步嗎?"
msgid "There are unset nozzle types. Please set the nozzle types of all extruders before synchronizing."
@@ -7765,13 +7765,13 @@ msgid "Sync extruder infomation"
msgstr "同步擠出機資訊"
msgid "Connection"
-msgstr "連接"
+msgstr "連線"
msgid "Synchronize nozzle information and the number of AMS"
msgstr "同步噴嘴資訊和 AMS 數量"
msgid "Click to edit preset"
-msgstr "點擊編輯預設檔設定"
+msgstr "點選編輯預設檔設定"
msgid "Nozzle"
msgstr "噴嘴"
@@ -7821,7 +7821,7 @@ msgstr ""
"請更新 Orca Slicer 或重新啟動 Orca Slicer 以檢查系統預設是否有更新。"
msgid "Only filament color information has been synchronized from printer."
-msgstr "僅從列印設備同步了線材顏色資訊。"
+msgstr "僅從列印裝置同步了線材顏色資訊。"
msgid "Filament type and color information have been synchronized, but slot information is not included."
msgstr "線材類型和顏色資訊已同步,但不包括槽位資訊。"
@@ -7832,26 +7832,26 @@ msgstr "是否儲存變更到「%1%」?"
#, c-format, boost-format
msgid "Successfully unmounted. The device %s (%s) can now be safely removed from the computer."
-msgstr "卸載成功。設備 %s(%s) 現在可以安全移除。"
+msgstr "卸載成功。裝置 %s(%s) 現在可以安全移除。"
#, c-format, boost-format
msgid "Ejecting of device %s (%s) has failed."
-msgstr "彈出設備 %s(%s)失敗。"
+msgstr "彈出裝置 %s(%s)失敗。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Previously unsaved items have been detected. Do you want to restore them?"
-msgstr "偵測到有未儲存的專案,是否恢復此專案?"
+msgstr "偵測到有未儲存的專案,是否還原此專案?"
msgid "Restore"
-msgstr "恢復"
+msgstr "還原"
# TODO: Review, changed by lang refactor. PR 14254
msgid "The current heatbed temperature is relatively high. The nozzle may clog when printing this filament in a closed environment. Please open the front door and/or remove the upper glass."
-msgstr "目前熱床溫度比較高。在封閉的列印設備中列印該線材時,噴嘴可能會堵塞。請打開前門和/或拆下上部玻璃。"
+msgstr "目前熱床溫度比較高。在封閉的列印裝置中列印該線材時,噴嘴可能會堵塞。請打開前門和/或拆下上部玻璃。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "The nozzle hardness required by the filament is higher than the default nozzle hardness of the printer. Please replace the hardened nozzle or filament, otherwise, the nozzle will be worn down or damaged."
-msgstr "線材所要求的噴嘴硬度高於列印設備預設的噴嘴硬度。請更換硬化噴嘴或線材,否則噴嘴可能被磨損或損壞。"
+msgstr "線材所要求的噴嘴硬度高於列印裝置預設的噴嘴硬度。請更換硬化噴嘴或線材,否則噴嘴可能被磨損或損壞。"
msgid "Enabling traditional timelapse photography may cause surface imperfections. It is recommended to change to smooth mode."
msgstr "使用傳統模式的縮時攝影可能會導致表面缺陷。建議改為平滑模式。"
@@ -7891,10 +7891,10 @@ msgid "The 3MF file was generated by BambuStudio, loading geometry data only."
msgstr "此 3MF 檔案由 BambuStudio 產生,僅載入幾何資料。"
msgid "This project was created with an OrcaSlicer 2.3.1-alpha and uses infill rotation template settings that may not work properly with your current infill pattern. This could result in weak support or print quality issues."
-msgstr "此專案是使用 OrcaSlicer 2.3.1-alpha 建立的,並使用了填充旋轉模板設定,這些設定可能無法與您目前的填充樣式正常運作。這可能會導致支撐薄弱或列印品質問題。"
+msgstr "此專案是使用 OrcaSlicer 2.3.1-alpha 建立的,並使用了填充旋轉範本設定,這些設定可能無法與您目前的填充樣式正常運作。這可能會導致支撐薄弱或列印品質問題。"
msgid "Would you like OrcaSlicer to automatically fix this by clearing the rotation template settings?"
-msgstr "您是否希望 OrcaSlicer 透過清除旋轉模板設定來自動修正此問題?"
+msgstr "您是否希望 OrcaSlicer 透過清除旋轉範本設定來自動修正此問題?"
#, c-format, boost-format
msgid "The 3MF file version %s is newer than %s's version %s, found the following unrecognized keys:"
@@ -7927,19 +7927,19 @@ msgid "Please correct them in the Param tabs"
msgstr "請在參數設定頁更正它們"
msgid "The 3MF has the following modified G-code in filament or printer presets:"
-msgstr "該 3MF 檔案在線材或列印設備預設中具有以下修改過的 GCODE:"
+msgstr "該 3MF 檔案線上材或列印裝置預設中具有以下修改過的 GCODE:"
msgid "Please confirm that all modified G-code is safe to prevent any damage to the machine!"
-msgstr "請確認這些修改過的 GCODE 是安全的,以防止對列印設備造成任何損壞!"
+msgstr "請確認這些修改過的 GCODE 是安全的,以防止對列印裝置造成任何損壞!"
msgid "Modified G-code"
msgstr "已修改的 GCODE"
msgid "The 3MF has the following customized filament or printer presets:"
-msgstr "該 3MF 檔案具有以下自訂的線材或列印設備預設:"
+msgstr "該 3MF 檔案具有以下自訂的線材或列印裝置預設:"
msgid "Please confirm that the G-code within these presets is safe to prevent any damage to the machine!"
-msgstr "請確認這些預設中的 G-code 是安全的,以防止對列印設備造成損壞!"
+msgstr "請確認這些預設中的 G-code 是安全的,以防止對列印裝置造成損壞!"
msgid "Customized Preset"
msgstr "自訂預設"
@@ -8001,10 +8001,10 @@ msgstr "自動落板"
#, c-format, boost-format
msgid "Connected printer is %s. It must match the project preset for printing.\n"
-msgstr "連接的列印設備是 %s。列印時必須與專案預設相符。\n"
+msgstr "連線的列印裝置是 %s。列印時必須與專案預設相符。\n"
msgid "Do you want to sync the printer information and automatically switch the preset?"
-msgstr "您是否要同步列印設備資訊並自動切換預設?"
+msgstr "您是否要同步列印裝置資訊並自動切換預設?"
msgid "The file does not contain any geometry data."
msgstr "此檔案不包含任何幾何資料。"
@@ -8066,7 +8066,7 @@ msgid "Reset Project"
msgstr ""
msgid "The selected object couldn't be split."
-msgstr "選中的模型不可分割。"
+msgstr "選取的模型不可分割。"
msgid "Split to Objects"
msgstr ""
@@ -8192,7 +8192,7 @@ msgid ""
"After syncing, software can optimize printing time and filament usage when slicing.\n"
"Would you like to sync now?"
msgstr ""
-"尚未從連接的列印設備同步噴嘴類型和 AMS 數量資訊。\n"
+"尚未從連線的列印裝置同步噴嘴類型和 AMS 數量資訊。\n"
"同步後,軟體可在切片時最佳化列印時間和線材使用量。\n"
"是否要立即同步?"
@@ -8213,7 +8213,7 @@ msgstr "載入專案"
msgid ""
"Failed to save the project.\n"
"Please check whether the folder exists online or if other programs have the project file open."
-msgstr "儲存檔案失敗。請檢查資料夾是否存在,以及是否有其他程式打開了該專案檔案。"
+msgstr "儲存檔案失敗。請檢查資料夾是否存在,以及是否有其他程式開啟了該專案檔案。"
msgid "Save project"
msgstr "儲存專案"
@@ -8286,14 +8286,14 @@ msgid "Please select an action"
msgstr "請選擇處理方式"
msgid "Open as project"
-msgstr "作為專案打開"
+msgstr "作為專案開啟"
msgid "Import geometry only"
msgstr "僅匯入模型資料"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Only one G-code file can be opened at a time."
-msgstr "只能同時打開一個 G-code 檔案。"
+msgstr "只能同時開啟一個 G-code 檔案。"
msgid "G-code loading"
msgstr "正在載入 G-code 檔案"
@@ -8336,7 +8336,7 @@ msgstr "切片檔案另存為:"
#, c-format, boost-format
msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer."
-msgstr "檔案 %s 已經傳送到列印設備的儲存空間,可以在列印設備上瀏覽。"
+msgstr "檔案 %s 已經傳送到列印裝置的儲存空間,可以在列印裝置上瀏覽。"
msgid "The nozzle type is not set. Please set the nozzle and try again."
msgstr "噴嘴類型尚未設定。請設定噴嘴後再試一次。"
@@ -8364,16 +8364,16 @@ msgid "Reason: \"%1%\" and another part have no intersection."
msgstr "原因:「%1%」與另一個零件沒有交集。"
msgid "Unable to perform boolean operation on model meshes. Only positive parts will be exported."
-msgstr "無法對模型網格執行布林運算。只有正面部分將被導出。"
+msgstr "無法對模型網格執行布林運算。只有正面部分將被匯出。"
msgid "Flashforge host is not available."
msgstr "Flashforge 主機無法使用。"
msgid "Unable to log in to the Flashforge printer."
-msgstr "無法登入 Flashforge 列印設備。"
+msgstr "無法登入 Flashforge 列印裝置。"
msgid "Is the printer ready? Is the print sheet in place, empty and clean?"
-msgstr "列印設備是否準備完成?列印平台是否在正確的位置、有沒有異物、是否乾淨?"
+msgstr "列印裝置是否準備完成?列印平台是否在正確的位置、有沒有異物、是否乾淨?"
msgid "Upload and Print"
msgstr "上傳並列印"
@@ -8393,7 +8393,7 @@ msgid "Send G-code"
msgstr "傳送 G-code"
msgid "Send to printer"
-msgstr "傳送到列印設備"
+msgstr "傳送到列印裝置"
msgid "Custom supports and color painting were removed before repairing."
msgstr "自訂的支撐和上色在模型修復之前被清除了。"
@@ -8403,24 +8403,24 @@ msgstr "最佳化旋轉"
#, c-format, boost-format
msgid "Printer not connected. Please go to the device page to connect %s before syncing."
-msgstr "列印設備未連接。請在同步前前往設備頁面連接 %s。"
+msgstr "列印裝置未連線。請在同步前前往裝置頁面連線 %s。"
#, c-format, boost-format
msgid "OrcaSlicer can't connect to %s. Please check if the printer is powered on and connected to the network."
-msgstr "OrcaSlicer 無法連接到 %s。請檢查列印設備是否已開機並連接到網路。"
+msgstr "OrcaSlicer 無法連線到 %s。請檢查列印裝置是否已開機並連線到網路。"
#, c-format, boost-format
msgid "The currently connected printer on the device page is not %s. Please switch to %s before syncing."
-msgstr "設備頁面上目前連接的列印設備不是 %s。請在同步前切換到 %s。"
+msgstr "裝置頁面上目前連線的列印裝置不是 %s。請在同步前切換到 %s。"
msgid "There are no filaments on the printer. Please load the filaments on the printer first."
-msgstr "列印設備上沒有線材。請先在列印設備上載入線材。"
+msgstr "列印裝置上沒有線材。請先在列印裝置上載入線材。"
msgid "The filaments on the printer are all unknown types. Please go to the printer screen or software device page to set the filament type."
-msgstr "列印設備上的線材均為未知類型。請前往列印設備螢幕或軟體設備頁面設定線材類型。"
+msgstr "列印裝置上的線材均為未知類型。請前往列印裝置螢幕或軟體裝置頁面設定線材類型。"
msgid "Device Page"
-msgstr "設備頁面"
+msgstr "裝置頁面"
msgid "Synchronize AMS Filament Information"
msgstr "同步 AMS 線材資訊"
@@ -8507,7 +8507,7 @@ msgid "Plate %d: %s is not suggested for use printing filament %s (%s). If you s
msgstr "列印板 %d:%s 不建議用於列印 %s(%s)線材。如果您仍想執行此列印,請將該線材的熱床溫度設為非零值。"
msgid "Currently, the object configuration form cannot be used with a multiple-extruder printer."
-msgstr "目前,物件設定表單無法與多擠出機列印設備一起使用。"
+msgstr "目前,物件設定表單無法與多擠出機列印裝置一起使用。"
msgid "Not available"
msgstr "無法使用"
@@ -8634,7 +8634,7 @@ msgid "Associate"
msgstr "關聯"
msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "與 OrcaSlicer 關聯,以便 Orca 可以從中打開模型"
+msgstr "與 OrcaSlicer 關聯,以便 Orca 可以從中開啟模型"
msgid "Current Association: "
msgstr "目前關聯:"
@@ -8677,7 +8677,7 @@ msgid "On OSX there is always only one instance of app running by default. Howev
msgstr "在 OSX 上,預設情況下總是只有一個應用程式實例在執行。但是卻允許從命令視窗執行同一應用程式的多個實例。當您設定了這個設定後將只允許一個實例執行。"
msgid "If this is enabled, when starting OrcaSlicer and another instance of the same OrcaSlicer is already running, that instance will be reactivated instead."
-msgstr "啟用後,嘗試開起 OrcaSlicer 時若有另一個 OrcaSlicer 程式已在執行時,已在執行的程序會被重新啟動。"
+msgstr "啟用後,嘗試開起 OrcaSlicer 時若有另一個 OrcaSlicer 程式已在執行時,已在執行的程式會被重新啟動。"
msgid "Show splash screen"
msgstr "顯示啟動動畫"
@@ -8713,14 +8713,14 @@ msgid "Load behaviour"
msgstr "載入方式"
msgid "Should printer/filament/process settings be loaded when opening a 3MF file?"
-msgstr "開啟 .3mf 檔案時,是否需要載入列印設備、線材和參數設定?"
+msgstr "開啟 .3mf 檔案時,是否需要載入列印裝置、線材和參數設定?"
msgid "Auto backup"
msgstr "自動備份"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Backup your project periodically to help with restoring from an occasional crash."
-msgstr "定期備份專案,以便從未預期的錯誤中恢復。"
+msgstr "定期備份專案,以便從未預期的錯誤中還原。"
msgid "Maximum recent files"
msgstr "最近開啟的檔案上限"
@@ -8781,7 +8781,7 @@ msgid ""
"Lower values produce smaller files but lose more geometric detail; higher values preserve more detail at the cost of larger files."
msgstr ""
"控制將網格壓縮為 Draco 格式時使用的量化位元深度。\n"
-"0 = 無損壓縮(幾何資料以完整精度保留)。有效的有損值範圍為 8 至 30。\n"
+"0 = 無失真壓縮(幾何資料以完整精度保留)。有效的有損值範圍為 8 至 30。\n"
"較低的值會產生較小的檔案但損失更多幾何細節;較高的值會保留更多細節但檔案較大。"
msgid "Store full source file paths in projects"
@@ -8812,25 +8812,25 @@ msgid "By vendor"
msgstr "按廠商"
msgid "Optimize filaments area height for..."
-msgstr "優化線材區域高度..."
+msgstr "最佳化線材區域高度..."
msgid "filaments"
msgstr "線材"
msgid "Optimizes filament area maximum height by chosen filament count."
-msgstr "根據選擇的線材數量優化線材區域最大高度"
+msgstr "根據選擇的線材數量最佳化線材區域最大高度"
msgid "Show shared profiles notification"
msgstr "顯示共用設定檔通知"
msgid "Show a notification with a link to browse shared profiles when the selected printer is changed."
-msgstr "變更所選列印設備時,顯示一則含有瀏覽共享設定檔連結的通知。"
+msgstr "變更所選列印裝置時,顯示一則含有瀏覽共享設定檔連結的通知。"
msgid "Features"
msgstr "功能"
msgid "Multi device management"
-msgstr "多臺設備管理"
+msgstr "多臺裝置管理"
msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices."
msgstr "啟用時可以同時傳送到並管理多個機臺。"
@@ -8941,10 +8941,10 @@ msgid "Clear my choice on the unsaved presets."
msgstr "清除我對未儲存預設的選擇。"
msgid "Synchronizing printer preset"
-msgstr "同步列印設備預設"
+msgstr "同步列印裝置預設"
msgid "Clear my choice for synchronizing printer preset after loading the file."
-msgstr "清除我在載入檔案後同步列印設備預設的選擇。"
+msgstr "清除我在載入檔案後同步列印裝置預設的選擇。"
msgid "Graphics"
msgstr "圖形"
@@ -9047,7 +9047,7 @@ msgid ""
"Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
msgstr ""
"這會停用所有雲端功能,包括 Orca Cloud 設定檔同步。偏好完全離線工作的使用者可以啟用此選項。\n"
-"注意:啟用隱身模式時,您的使用者設定檔將不會備份到 Orca Cloud。"
+"注意:啟用無痕模式時,您的使用者設定檔將不會備份到 Orca Cloud。"
msgid "Hide login side panel"
msgstr "隱藏登入側邊面板"
@@ -9077,7 +9077,7 @@ msgid "Check for stable updates only"
msgstr "僅檢查穩定版更新"
msgid "Auto sync user presets (Printer/Filament/Process)"
-msgstr "自動同步使用者預設(列印設備/線材/列印品質參數)"
+msgstr "自動同步使用者預設(列印裝置/線材/列印品質參數)"
msgid "Filament sync mode"
msgstr "線材同步模式"
@@ -9099,7 +9099,7 @@ msgid "Use encrypted file for token storage"
msgstr "使用加密檔案儲存權杖"
msgid "Store authentication tokens in an encrypted file instead of the system keychain. (Requires restart)"
-msgstr "將身份驗證權杖儲存在加密檔案中,而不是系統鑰匙圈。(需要重啟)"
+msgstr "將身份驗證權杖儲存在加密檔案中,而不是系統鑰匙圈。(需要重新啟動)"
msgid "Bambu network plug-in"
msgstr "Bambu 網路外掛程式"
@@ -9162,7 +9162,7 @@ msgid "Show unsupported presets"
msgstr "顯示不支援的預設"
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
-msgstr "在列印設備和線材下拉選單中顯示不相容/不支援的預設。這些預設無法選取。"
+msgstr "在列印裝置和線材下拉選單中顯示不相容/不支援的預設。這些預設無法選取。"
msgid "Experimental Features"
msgstr ""
@@ -9184,7 +9184,7 @@ msgid ""
"This allows the use of Storage that is marked as abnormal by the Printer.\n"
"Use at your own risk, can cause issues!"
msgstr ""
-"這允許使用列印設備標記為異常的儲存空間。\n"
+"這允許使用列印裝置標記為異常的儲存空間。\n"
"使用風險自負,可能會導致問題!"
msgid "Log Level"
@@ -9268,7 +9268,7 @@ msgid "Incompatible presets"
msgstr "不相容的預設"
msgid "My Printer"
-msgstr "我的列印設備"
+msgstr "我的列印裝置"
msgid "AMS filaments"
msgstr ""
@@ -9284,7 +9284,7 @@ msgid "Right filaments"
msgstr "右側線材"
msgid "Click to select filament color"
-msgstr "點擊設定線材顏色"
+msgstr "點選設定線材顏色"
msgid "Add/Remove presets"
msgstr "新增/刪除 預設"
@@ -9321,10 +9321,10 @@ msgid "Add/Remove materials"
msgstr "新增/刪除材料"
msgid "Select/Remove printers (system presets)"
-msgstr "選擇/移除列印設備(系統預設)"
+msgstr "選擇/移除列印裝置(系統預設)"
msgid "Create printer"
-msgstr "建立列印設備"
+msgstr "建立列印裝置"
msgid "Incompatible"
msgstr "不相容的預設"
@@ -9443,7 +9443,7 @@ msgstr "預設「%1%」已存在。"
#, boost-format
msgid "Preset \"%1%\" already exists and is incompatible with the current printer."
-msgstr "預設「%1%」已存在,並且和目前列印設備不相容。"
+msgstr "預設「%1%」已存在,並且和目前列印裝置不相容。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Please note that saving will overwrite the current preset."
@@ -9461,7 +9461,7 @@ msgstr "複製"
#, boost-format
msgid "Printer \"%1%\" is selected with preset \"%2%\""
-msgstr "選中的列印設備「%1%」和預設「%2%」"
+msgstr "選取的列印裝置「%1%」和預設「%2%」"
#, boost-format
msgid "Please choose an action with \"%1%\" preset after saving."
@@ -9609,33 +9609,33 @@ msgstr ""
#, c-format, boost-format
msgid "Filament %s does not match the filament in AMS slot %s. Please update the printer firmware to support AMS slot assignment."
-msgstr "線材編號 %s 和 AMS 槽位 %s 中的線材材質不相符,請更新列印設備韌體以支援 AMS 槽位映射功能。"
+msgstr "線材編號 %s 和 AMS 槽位 %s 中的線材材質不相符,請更新列印裝置韌體以支援 AMS 槽位映射功能。"
msgid "Filament does not match the filament in AMS slot. Please update the printer firmware to support AMS slot assignment."
-msgstr "材料編號和 AMS 槽位中的線材材質不相符,請更新列印設備韌體以支援 AMS 槽位映射功能。"
+msgstr "材料編號和 AMS 槽位中的線材材質不相符,請更新列印裝置韌體以支援 AMS 槽位映射功能。"
#, c-format, boost-format
msgid "The selected printer (%s) is incompatible with the print file configuration (%s). Please adjust the printer preset in the prepare page or choose a compatible printer on this page."
-msgstr "選擇的列印設備(%s)與列印檔案設定檔(%s)不相容。請在準備頁面中調整列印設備預設,或在此頁面選擇相容的列印設備。"
+msgstr "選擇的列印裝置(%s)與列印檔案設定檔(%s)不相容。請在準備頁面中調整列印裝置預設,或在此頁面選擇相容的列印裝置。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "When spiral vase mode is enabled, machines with I3 structure will not generate timelapse videos."
-msgstr "當啟用螺旋花瓶模式時,龍門結構的設備不會產生縮時攝影影片。"
+msgstr "當啟用螺旋花瓶模式時,龍門結構的裝置不會產生縮時攝影影片。"
msgid "The current printer does not support timelapse in Traditional Mode when printing By-Object."
-msgstr "目前的列印設備在使用逐件列印時不支援傳統模式的縮時攝影。"
+msgstr "目前的列印裝置在使用逐件列印時不支援傳統模式的縮時攝影。"
msgid "Errors"
msgstr "錯誤"
msgid "More than one filament types have been mapped to the same external spool, which may cause printing issues. The printer won't pause during printing."
-msgstr "多種線材類型已映射至相同的外部料盤,這可能導致列印問題。列印設備在列印期間不會暫停。"
+msgstr "多種線材類型已映射至相同的外部料盤,這可能導致列印問題。列印裝置在列印期間不會暫停。"
msgid "The filament type setting of external spool is different from the filament in the slicing file."
msgstr "外部料盤的線材類型設定與切片檔案中的線材不同。"
msgid "The printer type selected when generating G-code is not consistent with the currently selected printer. It is recommended that you use the same printer type for slicing."
-msgstr "產生 G-code 時選擇的列印設備類型與目前選擇的列印設備不一致。建議您使用相同的列印設備類型進行切片。"
+msgstr "產生 G-code 時選擇的列印裝置類型與目前選擇的列印裝置不一致。建議您使用相同的列印裝置類型進行切片。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "There are some unknown filaments in the AMS mappings. Please check whether they are the required filaments. If they are okay, click \"Confirm\" to start printing."
@@ -9648,7 +9648,7 @@ msgid "Please fix the error above, otherwise printing cannot continue."
msgstr "請排除上述錯誤,否則無法繼續列印。"
msgid "Please click the confirm button if you still want to proceed with printing."
-msgstr "如果您仍然想繼續列印,請滑鼠左鍵點擊『確定』按鈕。"
+msgstr "如果您仍然想繼續列印,請滑鼠左鍵點選『確定』按鈕。"
msgid "This checks the flatness of heatbed. Leveling makes extruded height uniform."
msgstr "這會檢查熱床的平整度。調平可使擠出高度一致。"
@@ -9731,18 +9731,18 @@ msgstr ""
#, c-format, boost-format
msgid "The nozzle flow setting of %s(%s) doesn't match with the slicing file(%s). Please make sure the nozzle installed matches with settings in printer, then set the corresponding printer preset while slicing."
-msgstr "%s 的噴嘴流量設定(%s)與切片檔案(%s)不符。請確保已安裝的噴嘴與列印設備中的設定相符,然後在切片時設定相應的列印設備預設。"
+msgstr "%s 的噴嘴流量設定(%s)與切片檔案(%s)不符。請確保已安裝的噴嘴與列印裝置中的設定相符,然後在切片時設定相應的列印裝置預設。"
msgid "Tips: If you changed your nozzle of your printer lately, please go to 'Device -> Printer parts' to change your nozzle setting."
-msgstr "提示:如果您最近更換了列印設備的噴嘴,請前往『裝置 -> 列印設備零件』變更您的噴嘴設定。"
+msgstr "提示:如果您最近更換了列印裝置的噴嘴,請前往『裝置 -> 列印裝置零件』變更您的噴嘴設定。"
#, c-format, boost-format
msgid "The %s diameter(%.1fmm) of current printer doesn't match with the slicing file (%.1fmm). Please make sure the nozzle installed matches with settings in printer, then set the corresponding printer preset when slicing."
-msgstr "目前列印設備的 %s 直徑(%.1fmm)與切片檔案(%.1fmm)不符。請確保已安裝的噴嘴與列印設備中的設定相符,然後在切片時設定相應的列印設備預設。"
+msgstr "目前列印裝置的 %s 直徑(%.1fmm)與切片檔案(%.1fmm)不符。請確保已安裝的噴嘴與列印裝置中的設定相符,然後在切片時設定相應的列印裝置預設。"
#, c-format, boost-format
msgid "The current nozzle diameter (%.1fmm) doesn't match with the slicing file (%.1fmm). Please make sure the nozzle installed matches with settings in printer, then set the corresponding printer preset when slicing."
-msgstr "目前噴嘴直徑(%.1fmm)與切片檔案(%.1fmm)不符。請確保已安裝的噴嘴與列印設備中的設定相符,然後在切片時設定相應的列印設備預設。"
+msgstr "目前噴嘴直徑(%.1fmm)與切片檔案(%.1fmm)不符。請確保已安裝的噴嘴與列印裝置中的設定相符,然後在切片時設定相應的列印裝置預設。"
msgid "both extruders"
msgstr "兩個擠出機"
@@ -9784,7 +9784,7 @@ msgid "The filament on %s is unknown and may soften. Please set filament."
msgstr "%s 上的線材未知且可能會軟化。請設定線材。"
msgid "Unable to automatically match to suitable filament. Please click to manually match."
-msgstr "無法自動匹配至合適的線材。請點擊以手動匹配。"
+msgstr "無法自動匹配至合適的線材。請點選以手動匹配。"
msgid "Install toolhead enhanced cooling fan to prevent filament softening."
msgstr "安裝噴頭增強冷卻風扇以防止線材軟化。"
@@ -9805,34 +9805,34 @@ msgid "Cool Plate (SuperTack)"
msgstr "低溫增穩列印板"
msgid "Click here if you can't connect to the printer"
-msgstr "如果無法連接到列印設備,請按一下此處"
+msgstr "如果無法連線到列印裝置,請按一下此處"
msgid "No login account, only printers in LAN mode are displayed."
-msgstr "未登入帳號,僅顯示區域網路模式的列印設備"
+msgstr "未登入帳號,僅顯示區域網路模式的列印裝置"
msgid "Connecting to server..."
-msgstr "正在連接伺服器..."
+msgstr "正在連線伺服器..."
msgid "Synchronizing device information..."
-msgstr "正在同步設備資訊"
+msgstr "正在同步裝置資訊"
msgid "Synchronizing device information timed out."
-msgstr "同步設備資訊逾時"
+msgstr "同步裝置資訊逾時"
msgid "Cannot send a print job when the printer is not at FDM mode."
-msgstr "列印設備不在 FDM 模式時無法傳送列印作業。"
+msgstr "列印裝置不在 FDM 模式時無法傳送列印作業。"
msgid "Cannot send a print job while the printer is updating firmware."
-msgstr "設備升級中,無法傳送列印作業"
+msgstr "裝置升級中,無法傳送列印作業"
msgid "The printer is executing instructions. Please restart printing after it ends."
-msgstr "列印設備正在執行指令,請在指令結束後重新開始列印"
+msgstr "列印裝置正在執行指令,請在指令結束後重新開始列印"
msgid "AMS is setting up. Please try again later."
msgstr "AMS 正在設定中。請稍後再試。"
msgid "Not all filaments used in slicing are mapped to the printer. Please check the mapping of filaments."
-msgstr "並非所有切片中使用的線材都已映射至列印設備。請檢查線材的映射。"
+msgstr "並非所有切片中使用的線材都已映射至列印裝置。請檢查線材的映射。"
msgid "Please do not mix-use the Ext with AMS."
msgstr "請勿將外部料盤與 AMS 混合使用。"
@@ -9851,7 +9851,7 @@ msgstr "列印前需要插入儲存空間。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Cannot send the print job to a printer whose firmware must be updated."
-msgstr "列印設備需要更新韌體才能接收列印作業。"
+msgstr "列印裝置需要更新韌體才能接收列印作業。"
msgid "Cannot send a print job for an empty plate."
msgstr "無法傳送空的列印板"
@@ -9869,7 +9869,7 @@ msgid "Set dynamic flow calibration to 'OFF' to enable custom dynamic flow value
msgstr "將動態流量校正設定為“停用”以啟用自訂動態流量值。"
msgid "This printer does not support printing all plates."
-msgstr "此列印設備類型不支援列印所有列印板"
+msgstr "此列印裝置類型不支援列印所有列印板"
#, c-format, boost-format
msgid "The current firmware supports a maximum of %s materials. You can either reduce the number of materials to %s or fewer on the Preparation Page, or try updating the firmware. If you are still restricted after the update, please wait for subsequent firmware support."
@@ -9888,10 +9888,10 @@ msgid "Current firmware does not support file transfer to internal storage."
msgstr "目前韌體不支援檔案傳輸至內部儲存空間。"
msgid "Send to Printer storage"
-msgstr "傳送至列印設備儲存空間"
+msgstr "傳送至列印裝置儲存空間"
msgid "Try to connect"
-msgstr "嘗試連接"
+msgstr "嘗試連線"
msgid "Internal Storage"
msgstr "內部儲存空間"
@@ -9903,33 +9903,33 @@ msgid "Upload file timeout, please check if the firmware version supports it."
msgstr "檔案上傳逾時,請檢查韌體版本是否支援此功能。"
msgid "Connection timed out, please check your network."
-msgstr "連接逾時,請檢查您的網路。"
+msgstr "連線逾時,請檢查您的網路。"
msgid "Connection failed. Click the icon to retry"
-msgstr "連接失敗。點擊圖示以重試"
+msgstr "連線失敗。點選圖示以重試"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Cannot send print tasks when an update is in progress"
-msgstr "設備升級中,無法傳送列印作業"
+msgstr "裝置升級中,無法傳送列印作業"
msgid "The selected printer is incompatible with the chosen printer presets."
-msgstr "所選列印設備與選擇的列印設備預設檔不相容。"
+msgstr "所選列印裝置與選擇的列印裝置預設檔不相容。"
msgid "Storage needs to be inserted before send to printer."
-msgstr "傳送至列印設備前需要插入儲存空間。"
+msgstr "傳送至列印裝置前需要插入儲存空間。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "The printer is required to be on the same LAN as Orca Slicer."
-msgstr "列印設備需要與 Orca Slicer 在同一個區域網路內。"
+msgstr "列印裝置需要與 Orca Slicer 在同一個區域網路內。"
msgid "The printer does not support sending to printer storage."
-msgstr "列印設備不支援傳送至列印設備儲存空間。"
+msgstr "列印裝置不支援傳送至列印裝置儲存空間。"
msgid "Sending..."
msgstr "正在傳送..."
msgid "File upload timed out. Please check if the firmware version supports this operation or verify if the printer is functioning properly."
-msgstr "檔案上傳逾時。請檢查韌體版本是否支援此操作,或確認列印設備是否正常運作。"
+msgstr "檔案上傳逾時。請檢查韌體版本是否支援此操作,或確認列印裝置是否正常運作。"
msgid "Sending failed, please try again!"
msgstr "傳送失敗,請重試!"
@@ -9942,21 +9942,21 @@ msgid "View all Daily tips"
msgstr "顯示所有每日提示"
msgid "Failed to create socket"
-msgstr "建立網路端點連接失敗"
+msgstr "建立網路端點連線失敗"
msgid "Failed to connect socket"
-msgstr "無法連接網路端點"
+msgstr "無法連線網路端點"
msgid "Failed to publish login request"
msgstr "請求登陸失敗"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Timeout getting ticket from device"
-msgstr "從設備取得票證超時"
+msgstr "從裝置取得票證逾時"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Timeout getting ticket from server"
-msgstr "從伺服器取得票證超時"
+msgstr "從伺服器取得票證逾時"
msgid "Failed to post ticket to server"
msgstr "將票證提交到伺服器失敗"
@@ -9974,7 +9974,7 @@ msgid ""
"Please Find the Pin Code in Account page on printer screen,\n"
" and type in the Pin Code below."
msgstr ""
-"請在印表設備螢幕上的帳戶頁面找到 PIN 碼,\n"
+"請在印表裝置螢幕上的帳戶頁面找到 PIN 碼,\n"
"並在下面輸入 PIN 碼。"
msgid "Can't find Pin Code?"
@@ -9987,62 +9987,62 @@ msgid "Binding..."
msgstr "綁定..."
msgid "Please confirm on the printer screen"
-msgstr "請到列印設備上按確認"
+msgstr "請到列印裝置上按確認"
msgid "Log in failed. Please check the Pin Code."
msgstr "登入失敗。請檢查 Pin碼。"
msgid "Log in printer"
-msgstr "登入列印設備"
+msgstr "登入列印裝置"
msgid "Would you like to log in to this printer with the current account?"
-msgstr "您想使用目前帳號登入這台列印設備嗎?"
+msgstr "您想使用目前帳號登入這台列印裝置嗎?"
msgid "Check the reason"
-msgstr "查看原因"
+msgstr "檢視原因"
msgid "Read and accept"
msgstr "閱讀並接受"
msgid "Terms and Conditions"
-msgstr "使用者協議"
+msgstr "使用者協定"
msgid "Thank you for purchasing a Bambu Lab device. Before using your Bambu Lab device, please read the terms and conditions. By clicking to agree to use your Bambu Lab device, you agree to abide by the Privacy Policy and Terms of Use (collectively, the \"Terms\"). If you do not comply with or agree to the Bambu Lab Privacy Policy, please do not use Bambu Lab equipment and services."
-msgstr "感謝您購買 Bambu Lab 設備。在使用 Bambu Lab 設備之前,請先閱讀條款與條件。點擊同意使用 Bambu Lab 設備,即表示您同意遵守隱私政策與使用條款(以下統稱「條款」)。若您不同意或無法遵守 Bambu Lab 隱私政策,請勿使用 Bambu Lab 的設備及服務。"
+msgstr "感謝您購買 Bambu Lab 裝置。在使用 Bambu Lab 裝置之前,請先閱讀條款與條件。點選同意使用 Bambu Lab 裝置,即表示您同意遵守隱私政策與使用條款(以下統稱「條款」)。若您不同意或無法遵守 Bambu Lab 隱私政策,請勿使用 Bambu Lab 的裝置及服務。"
msgid "and"
msgstr "與"
msgid "Privacy Policy"
-msgstr "隱私協議"
+msgstr "隱私協定"
msgid "We ask for your help to improve everyone's printer"
-msgstr "我們請求您的幫助來改善大家的列印設備"
+msgstr "我們請求您的幫助來改善大家的列印裝置"
msgid "Statement about User Experience Improvement Program"
-msgstr "關於使用者體驗改善計劃的聲明"
+msgstr "關於使用者體驗改善計畫的聲明"
#, c-format, boost-format
msgid "In the 3D Printing community, we learn from each other's successes and failures to adjust our own slicing parameters and settings. %s follows the same principle and uses machine learning to improve its performance from the successes and failures of the vast number of prints by our users. We are training %s to be smarter by feeding them the real-world data. If you are willing, this service will access information from your error logs and usage logs, which may include information described in Privacy Policy. We will not collect any Personal Data by which an individual can be identified directly or indirectly, including without limitation names, addresses, payment information, or phone numbers. By enabling this service, you agree to these terms and the statement about Privacy Policy."
-msgstr "在 3D 列印社群中,我們通過分享彼此的成功與失敗經驗來調整切片參數與設置。%s 也採用了相同的原則,利用機器學習,透過使用者的大量列印成功與失敗資料來提升其性能。我們正以實際應用資料來訓練 %s,使其變得更智能。如果您願意,這項服務將存取您的錯誤日誌和使用日誌,其中可能包含隱私政策中提到的相關資訊。我們不會收集任何可直接或間接識別個人身份的個人資料,包括但不限於姓名、地址、支付資訊或電話號碼。啟用此服務即表示您同意這些條款及隱私政策聲明。"
+msgstr "在 3D 列印社群中,我們透過分享彼此的成功與失敗經驗來調整切片參數與設定。%s 也採用了相同的原則,利用機器學習,透過使用者的大量列印成功與失敗資料來提升其效能。我們正以實際應用資料來訓練 %s,使其變得更智慧。如果您願意,這項服務將存取您的錯誤日誌和使用日誌,其中可能包含隱私政策中提到的相關資訊。我們不會收集任何可直接或間接識別個人身份的個人資料,包括但不限於姓名、地址、支付資訊或電話號碼。啟用此服務即表示您同意這些條款及隱私政策聲明。"
msgid "Statement on User Experience Improvement Plan"
-msgstr "關於使用者體驗改善計劃的聲明"
+msgstr "關於使用者體驗改善計畫的聲明"
msgid "Log in successful."
msgstr "登入成功。"
msgid "Log out printer"
-msgstr "登出列印設備"
+msgstr "登出列印裝置"
msgid "Would you like to log out the printer?"
-msgstr "您想登出列印設備嗎?"
+msgstr "您想登出列印裝置嗎?"
msgid "Please log in first."
msgstr "請先登入。"
msgid "There was a problem connecting to the printer. Please try again."
-msgstr "連接列印設備時發生錯誤。 重新連接。"
+msgstr "連線列印裝置時發生錯誤。 重新連線。"
msgid "Failed to log out."
msgstr "登出失敗。"
@@ -10065,7 +10065,7 @@ msgid "Synchronize the modification of parameters to the corresponding parameter
msgstr ""
msgid "Click to reset all settings to the last saved preset."
-msgstr "點擊以將所有設定還原到最後一次儲存的版本。"
+msgstr "點選以將所有設定還原到最後一次儲存的版本。"
msgid "Prime tower is required for nozzle changing. There may be flaws on the model without prime tower. Are you sure you want to disable prime tower?"
msgstr "切換噴嘴需要擦料塔,否則列印件上可能會有瑕疵。您確定要關閉擦料塔嗎?"
@@ -10104,7 +10104,7 @@ msgid ""
"When using support material for the support interface, we recommend the following settings:\n"
"0 top Z distance, 0 interface spacing, interlaced rectilinear pattern and disable independent support layer height."
msgstr ""
-"當使用支撐材質作為支撐界面時,我們建議使用以下設定:\n"
+"當使用支撐材質作為支撐介面時,我們建議使用以下設定:\n"
"頂部 Z 距離為 0、接觸面間距為 0、交錯直線填充模式,並停用獨立支撐層高。"
# TODO: Review, changed by lang refactor. PR 14254
@@ -10122,9 +10122,9 @@ msgid ""
"0 top Z distance, 0 interface spacing, interlaced rectilinear pattern, disable independent support layer height\n"
"and use soluble materials for both support interface and support base."
msgstr ""
-"當使用可溶線材作為支撐界面時,我們建議使用以下設定:\n"
-"頂部 Z 距離為 0、界面間距為 0、交錯直線填充模式、停用獨立支撐層高\n"
-"並在支撐界面和支撐底座均使用可溶線材。"
+"當使用可溶線材作為支撐介面時,我們建議使用以下設定:\n"
+"頂部 Z 距離為 0、介面間距為 0、交錯直線填充模式、停用獨立支撐層高\n"
+"並在支撐介面和支撐底座均使用可溶線材。"
msgid "Enabling this option will modify the model's shape. If your print requires precise dimensions or is part of an assembly, it's important to double-check whether this change in geometry impacts the functionality of your print."
msgstr "啟用此選項將會改變模型形狀。如果您的列印需要精準的尺寸或屬於組裝件的一部分,請務必再次確認此幾何形狀的更改是否會影響您的列印。"
@@ -10143,7 +10143,7 @@ msgstr ""
"將改為 min_layer_height\n"
msgid "Layer height exceeds the limit in Printer Settings -> Extruder -> Layer height limits, this may cause printing quality issues."
-msgstr "層高超過了印表設備設定 -> 擠出機 -> 層高限制,這可能會導致列印品質問題。"
+msgstr "層高超過了印表裝置設定 -> 擠出機 -> 層高限制,這可能會導致列印品質問題。"
msgid "Adjust to the set range automatically?\n"
msgstr "是否自動調整至設定範圍?\n"
@@ -10155,14 +10155,14 @@ msgid "Experimental feature: Retracting and cutting off the filament at a greate
msgstr "實驗性功能:在換線過程中以更大的距離收回並切斷線材,以減少沖洗量。儘管這可以顯著減少沖洗,但也可能增加噴嘴堵塞或其他列印問題的風險。"
msgid "Experimental feature: Retracting and cutting off the filament at a greater distance during filament changes to minimize flush. Although it can notably reduce flush, it may also elevate the risk of nozzle clogs or other printing complications. Please use with the latest printer firmware."
-msgstr "實驗性功能:在換線過程中以更大的距離收回並切斷線材,以減少沖洗量。儘管這可以顯著減少沖洗,但也可能增加噴嘴堵塞或其他列印問題的風險。請搭配最新的列印設備韌體使用。"
+msgstr "實驗性功能:在換線過程中以更大的距離收回並切斷線材,以減少沖洗量。儘管這可以顯著減少沖洗,但也可能增加噴嘴堵塞或其他列印問題的風險。請搭配最新的列印裝置韌體使用。"
msgid ""
"When recording timelapse without toolhead, it is recommended to add a \"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
"在錄製無工具頭縮時錄影影片時,建議新增一個「縮時錄影換料塔」\n"
-"可以通過右鍵點擊構建板的空白位置,選擇『新增標準模型』->『縮時錄影換料塔』來進行新增。"
+"可以透過右鍵點選建構板的空白位置,選擇『新增標準模型』->『縮時錄影換料塔』來進行新增。"
msgid "A copy of the current system preset will be created, which will be detached from the system preset."
msgstr "將建立目前系統配置的副本,且該副本將與系統配置分離不相關聯。"
@@ -10171,7 +10171,7 @@ msgid "The current custom preset will be detached from the parent system preset.
msgstr "目前的自訂配置將與父系統配置分離不相關聯。"
msgid "Modifications to the current profile will be saved."
-msgstr "目前設定檔的修改將會保存下來。"
+msgstr "目前設定檔的修改將會儲存下來。"
msgid ""
"This action is not revertible.\n"
@@ -10199,7 +10199,7 @@ msgid "It can't be deleted or modified."
msgstr "它無法被刪除或修改。"
msgid "Any modifications should be saved as a new preset inherited from this one."
-msgstr "若要進行任何修改,請另存為一個新的預設配置,並繼承自此預設配置。"
+msgstr "若要進行任何修改,請另存新檔一個新的預設配置,並繼承自此預設配置。"
msgid "To do that please specify a new name for the preset."
msgstr "為此,請為新的預設配置指定一個名稱。"
@@ -10211,7 +10211,7 @@ msgid "vendor"
msgstr "供應商"
msgid "printer model"
-msgstr "列印設備型號"
+msgstr "列印裝置型號"
msgid "default print profile"
msgstr "預設列印設定檔"
@@ -10266,7 +10266,7 @@ msgid "Overhang speed"
msgstr "懸空列印速度"
msgid "This is the speed for various overhang degrees. Overhang degrees are expressed as a percentage of line width. 0 speed means no slowing down for the overhang degree range and wall speed is used"
-msgstr "此設置是為不同懸空角度指定的速度。懸空角度以線寬的百分比表示。若速度設置為 0,表示該懸空角度範圍內不會減速,將使用牆面速度"
+msgstr "此設定是為不同懸空角度指定的速度。懸空角度以線寬的百分比表示。若速度設定為 0,表示該懸空角度範圍內不會減速,將使用牆面速度"
msgid "Set speed for external and internal bridges"
msgstr "設定外部和內部橋接的速度"
@@ -10357,10 +10357,10 @@ msgid "Flow ratio and Pressure Advance"
msgstr "流量比與壓力補償"
msgid "Print chamber temperature"
-msgstr "列印設備內部溫度"
+msgstr "列印裝置內部溫度"
msgid "Chamber temperature"
-msgstr "列印設備內部溫度"
+msgstr "列印裝置內部溫度"
msgid "Target chamber temperature, and the minimal chamber temperature at which printing should start"
msgstr ""
@@ -10457,19 +10457,19 @@ msgid "Multi Filament"
msgstr "多線材"
msgid "Tool change parameters with single extruder MM printers"
-msgstr "適用於單擠出機多材料列印設備的工具切換參數"
+msgstr "適用於單擠出機多材料列印裝置的工具切換參數"
msgid "Set"
msgstr "設定"
msgid "Tool change parameters with multi extruder MM printers"
-msgstr "適用於多擠出機多材料列印設備的工具切換參數"
+msgstr "適用於多擠出機多材料列印裝置的工具切換參數"
msgid "Dependencies"
msgstr "相依項目"
msgid "Compatible printers"
-msgstr "相容的列印設備"
+msgstr "相容的列印裝置"
msgid "Compatible process profiles"
msgstr "相容的切片設定"
@@ -10495,22 +10495,22 @@ msgid "Extruder Clearance"
msgstr "擠出機避讓空間"
msgid "Adaptive bed mesh"
-msgstr "自適應熱床網格"
+msgstr "適應性熱床網格"
msgid "Accessory"
msgstr "配件"
msgid "Machine G-code"
-msgstr "列印設備 G-code"
+msgstr "列印裝置 G-code"
msgid "File header G-code"
msgstr "檔案標頭 G-code"
msgid "Machine start G-code"
-msgstr "列印設備起始 G-code"
+msgstr "列印裝置起始 G-code"
msgid "Machine end G-code"
-msgstr "列印設備結束 G-code"
+msgstr "列印裝置結束 G-code"
msgid "Printing by object G-code"
msgstr "按物件列印的 G-code"
@@ -10573,7 +10573,7 @@ msgid "Single extruder multi-material setup"
msgstr "單擠出機多線材設定"
msgid "Number of extruders of the printer."
-msgstr "列印設備擠出機數量。"
+msgstr "列印裝置擠出機數量。"
msgid ""
"Single Extruder Multi Material is selected,\n"
@@ -10594,7 +10594,7 @@ msgid "Single extruder multi-material parameters"
msgstr "單擠出機多線材參數"
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
-msgstr "這是一台單噴頭多材料列印機,所有噴頭的直徑將被設置為新的值。您要繼續嗎?"
+msgstr "這是一台單噴頭多材料列印機,所有噴頭的直徑將被設定為新的值。您要繼續嗎?"
msgid "Layer height limits"
msgstr "層高限制"
@@ -10618,7 +10618,7 @@ msgid "Firmware Retraction"
msgstr "韌體回抽"
msgid "Switching to a printer with different extruder types or numbers will discard or reset changes to extruder or multi-nozzle-related parameters."
-msgstr "切換至具有不同擠出機類型或數量的列印設備時,將捨棄或重設擠出機或多噴嘴相關參數的變更。"
+msgstr "切換至具有不同擠出機類型或數量的列印裝置時,將捨棄或重設擠出機或多噴嘴相關參數的變更。"
msgid "Use Modified Value"
msgstr "使用修改的值"
@@ -10628,7 +10628,7 @@ msgstr "分離的"
#, c-format, boost-format
msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr "此列印設備含有 %d 線材預設和 %d 列印參數預設。若刪除此列印設備,這些預設將被刪除。"
+msgstr "此列印裝置含有 %d 線材預設和 %d 列印參數預設。若刪除此列印裝置,這些預設將被刪除。"
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "被其他預設繼承的預設無法刪除!"
@@ -10651,7 +10651,7 @@ msgid ""
"If the preset corresponds to a filament currently in use on your printer, please reset the filament information for that slot."
msgstr ""
"您確定要刪除所選預設嗎?\n"
-"如果該預設對應的是列印設備目前使用的線材,請重設該槽位的線材資訊。"
+"如果該預設對應的是列印裝置目前使用的線材,請重設該槽位的線材資訊。"
# TODO: Review, changed by lang refactor. PR 14254
#, boost-format
@@ -10659,7 +10659,7 @@ msgid "Are you sure you want to %1% the selected preset?"
msgstr "確認要 %1% 所選預設嗎?"
msgid "Select printers"
-msgstr "選擇列印設備"
+msgstr "選擇列印裝置"
msgid "Select profiles"
msgstr "選擇設定檔"
@@ -10728,11 +10728,11 @@ msgid "Do you want to modify the following parameters of the %s to that of the %
msgstr ""
msgid "Click to reset current value and attach to the global value."
-msgstr "點擊該圖示,恢復到全域的設定數值,並與全域設定同步變化。"
+msgstr "點選該圖示,還原到全域的設定數值,並與全域設定同步變化。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Click to drop current modifications and reset to saved value."
-msgstr "放棄目前的修改,恢復到上次儲存的數值。"
+msgstr "放棄目前的修改,還原到上次儲存的數值。"
msgid "Process Settings"
msgstr "列印參數設定"
@@ -10798,7 +10798,7 @@ msgstr ""
"而「%2%」將會開啟且不做任何變更。"
msgid "Click the right mouse button to display the full text."
-msgstr "單擊滑鼠右鍵顯示全文。"
+msgstr "點選滑鼠右鍵顯示全文。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "No changes will be saved."
@@ -10838,7 +10838,7 @@ msgstr "預設「%1%」包含以下未儲存的變更:"
#, boost-format
msgid "Preset \"%1%\" is not compatible with the new printer profile and it contains the following unsaved changes:"
-msgstr "預設「%1%」與新的列印設備設定檔不相容,且包含以下未儲存的變更:"
+msgstr "預設「%1%」與新的列印裝置設定檔不相容,且包含以下未儲存的變更:"
#, boost-format
msgid "Preset \"%1%\" is not compatible with the new process profile and it contains the following unsaved changes:"
@@ -10904,7 +10904,7 @@ msgid ""
"Note: New modified presets will be selected in settings tabs after close this dialog."
msgstr ""
"所選的選項從左側預設移至右側。\n"
-"注意:關閉此對話框後,修改後的預設將在設置頁面中自動選取。"
+"注意:關閉此對話方塊後,修改後的預設將在設定頁面中自動選取。"
msgid "Transfer values from left to right"
msgstr "將數值從左邊轉移到右邊"
@@ -11005,7 +11005,7 @@ msgid "Specify number of colors:"
msgstr "指定顏色數量:"
msgid "Enter or click the adjustment button to modify number again"
-msgstr "輸入或點擊調整按鈕以再次修改數量"
+msgstr "輸入或點選調整按鈕以再次修改數量"
msgid "Recommended "
msgstr "建議 "
@@ -11072,7 +11072,7 @@ msgid "Plate"
msgstr "列印板"
msgid "The connected printer does not match the currently selected printer. Please change the selected printer."
-msgstr "已連接的列印設備與目前選擇的列印設備不符。請更改所選的列印設備。"
+msgstr "已連線的列印裝置與目前選擇的列印裝置不符。請更改所選的列印裝置。"
msgid "Mapping"
msgstr "映射"
@@ -11113,7 +11113,7 @@ msgid "Only synchronize filament type and color, not including AMS slot informat
msgstr "僅同步線材類型和顏色,不包含 AMS 槽位資訊。"
msgid "Replace the project filaments list sequentially based on printer filaments. And unused printer filaments will be automatically added to the end of the list."
-msgstr "根據列印設備線材依序替換專案線材清單。未使用的列印設備線材將自動新增至清單末端。"
+msgstr "根據列印裝置線材依序替換專案線材清單。未使用的列印裝置線材將自動新增至清單末端。"
msgid "Add unused AMS filaments to filaments list."
msgstr "將未使用的 AMS 線材新增至線材清單。"
@@ -11146,14 +11146,14 @@ msgid "Ext spool"
msgstr "外部料軸"
msgid "Please check whether the nozzle type of the device is the same as the preset nozzle type."
-msgstr "請檢查設備的噴嘴類型是否與預設的噴嘴類型相同。"
+msgstr "請檢查裝置的噴嘴類型是否與預設的噴嘴類型相同。"
msgid "Storage is not available or is in read-only mode."
msgstr "儲存空間不可用或處於唯讀模式。"
#, c-format, boost-format
msgid "The selected printer (%s) is incompatible with the chosen printer profile in the slicer (%s)."
-msgstr "選定的列印設備(%s)與切片軟體中選擇的列印設備設定檔(%s)不相容。"
+msgstr "選定的列印裝置(%s)與切片軟體中選擇的列印裝置設定檔(%s)不相容。"
msgid "Timelapse is not supported because Print sequence is set to \"By object\"."
msgstr "「逐件列印」模式下不支援縮時錄影。"
@@ -11171,10 +11171,10 @@ msgid "Do you want to continue to sync filaments?"
msgstr ""
msgid "Successfully synchronized filament color from printer."
-msgstr "成功從列印設備同步線材顏色。"
+msgstr "成功從列印裝置同步線材顏色。"
msgid "Successfully synchronized color and type of filament from printer."
-msgstr "成功從列印設備同步線材顏色和類型。"
+msgstr "成功從列印裝置同步線材顏色和類型。"
msgctxt "FinishSyncAms"
msgid "OK"
@@ -11188,7 +11188,7 @@ msgid ""
"\n"
"This is an expert-level setting, incorrect adjustment will likely lead to jams, extruder wheel grinding into filament etc."
msgstr ""
-"尖端成型是指在單擠出機多線材列印設備中換色之前的快速抽插。\n"
+"尖端成型是指在單擠出機多線材列印裝置中換色之前的快速抽插。\n"
"其目的是使退出的線材末端正確成形,這樣就不會妨礙新線材的插入,並可以重新插入。\n"
"這個階段很重要,不同的線材可能需要不同的擠出速度才能獲得良好的形狀。因此尖端成型過程中的擠壓率是需要可調整的。\n"
"這是一個進階的設定,不正確的調整可能會導致堵塞、線材磨損等。"
@@ -11242,16 +11242,16 @@ msgid "Failed to initialize the native Wayland GStreamer video sink. Please chec
msgstr "無法初始化原生 Wayland GStreamer 視訊接收器。請檢查您的 GStreamer GTK 外掛程式安裝。"
msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?"
-msgstr "執行此設置需要 Windows Media Player!您是否要啟用 Windows Media Player?"
+msgstr "執行此設定需要 Windows Media Player!您是否要啟用 Windows Media Player?"
msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice"
-msgstr "「BambuSource 未正確註冊為媒體播放模組!請點擊『是』進行重新註冊,過程中會有兩次提示"
+msgstr "「BambuSource 未正確註冊為媒體播放模組!請點選『是』進行重新註冊,過程中會有兩次提示"
msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help."
msgstr "缺少用於媒體播放的已註冊 BambuSource 元件!請重新安裝 OrcaSlicer 或尋求社群協助。"
msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it."
-msgstr "BambuSource 來自其他安裝版本,可能導致影片播放異常!請點擊『是』進行修復。"
+msgstr "BambuSource 來自其他安裝版本,可能導致影片播放異常!請點選『是』進行修復。"
msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)"
msgstr "您的系統缺少 GStreamer 的 H.264 編解碼器,這是播放影片所必需的。(請嘗試安裝 gstreamer1.0-plugins-bad 或 gstreamer1.0-libav 套件,然後重新啟動 Orca Slicer。)"
@@ -11263,7 +11263,7 @@ msgid "Bambu Network plug-in not detected."
msgstr "未偵測到 Bambu 網路外掛程式。"
msgid "Click here to download it."
-msgstr "點擊下載。"
+msgstr "點選下載。"
msgid "Login"
msgstr "登入"
@@ -11299,16 +11299,16 @@ msgid "Paste from clipboard"
msgstr "從剪貼簿貼上"
msgid "Show/Hide 3Dconnexion devices settings dialog"
-msgstr "顯示/隱藏 3Dconnexion 設備的設定對話框"
+msgstr "顯示/隱藏 3Dconnexion 裝置的設定對話框"
msgid "Switch table page"
msgstr "切換表單頁面"
msgid "Show keyboard shortcuts list"
-msgstr "顯示鍵盤快捷鍵清單"
+msgstr "顯示鍵盤快速鍵清單"
msgid "Global shortcuts"
-msgstr "全域快捷鍵"
+msgstr "全域快速鍵"
msgid "Pan View"
msgstr "移動視角"
@@ -11486,7 +11486,7 @@ msgid "Select the object/part and press space to change the name"
msgstr "選取物件、零件,按空格可修改名稱"
msgid "Mouse click"
-msgstr "滑鼠點擊"
+msgstr "滑鼠點選"
msgid "Select the object/part and mouse click to change the name"
msgstr "選取物件或零件,雙擊可修改名稱"
@@ -11545,10 +11545,10 @@ msgid "New version of Orca Slicer"
msgstr "新版本的 Orca Slicer"
msgid "Check on Microsoft Store"
-msgstr "在 Microsoft Store 上查看"
+msgstr "在 Microsoft Store 上檢視"
msgid "Check on GitHub"
-msgstr "在 GitHub 上查看"
+msgstr "在 GitHub 上檢視"
msgid "Open Microsoft Store"
msgstr "開啟 Microsoft Store"
@@ -11564,86 +11564,86 @@ msgid "Confirm and Update Nozzle"
msgstr "確認並更新噴嘴"
msgid "Connect the printer using IP and access code"
-msgstr "透過 IP 和訪問代碼連接列印設備"
+msgstr "透過 IP 和存取代碼連線列印裝置"
msgid "Try the following methods to update the connection parameters and reconnect to the printer."
-msgstr "請嘗試以下方法更新連接參數並重新連接列印設備。"
+msgstr "請嘗試以下方法更新連線參數並重新連線列印裝置。"
msgid "1. Please confirm Orca Slicer and your printer are in the same LAN."
-msgstr "1. 請確認 Orca Slicer 與您的列印設備在同一區域網路內。"
+msgstr "1. 請確認 Orca Slicer 與您的列印裝置在同一區域網路內。"
msgid "2. If the IP and Access Code below are different from the actual values on your printer, please correct them."
-msgstr "2. 若下方的 IP 和訪問代碼與列印設備上的實際值不同,請修正它們。"
+msgstr "2. 若下方的 IP 和存取代碼與列印裝置上的實際值不同,請修正它們。"
msgid "3. Please obtain the device SN from the printer side; it is usually found in the device information on the printer screen."
-msgstr "3. 請從列印設備端獲取設備序號;通常可在列印設備螢幕的設備資訊中找到。"
+msgstr "3. 請從列印裝置端獲取裝置序號;通常可在列印裝置螢幕的裝置資訊中找到。"
msgid "IP"
msgstr "IP"
msgid "Access Code"
-msgstr "訪問代碼"
+msgstr "存取代碼"
msgid "Printer model"
-msgstr "列印設備型號"
+msgstr "列印裝置型號"
msgid "Printer name"
-msgstr "列印設備名稱"
+msgstr "列印裝置名稱"
msgid "Where to find your printer's IP and Access Code?"
-msgstr "在哪裡可以找到列印設備的 IP 和訪問代碼?"
+msgstr "在哪裡可以找到列印裝置的 IP 和存取代碼?"
msgid "How to trouble shooting"
msgstr ""
msgid "Connect"
-msgstr "連接"
+msgstr "連線"
msgid "Manual Setup"
msgstr "手動設定"
msgid "IP and Access Code Verified! You may close the window"
-msgstr "IP 和訪問代碼已驗證!可以關閉視窗"
+msgstr "IP 和存取代碼已驗證!可以關閉視窗"
msgid "connecting..."
-msgstr "連接中..."
+msgstr "連線中..."
msgid "Failed to connect to printer."
-msgstr "無法連接到列印設備。"
+msgstr "無法連線到列印裝置。"
msgid "Failed to publish login request."
msgstr "登入請求傳送失敗。"
msgid "The printer has already been bound."
-msgstr "此列印設備已綁定。"
+msgstr "此列印裝置已綁定。"
msgid "The printer mode is incorrect, please switch to LAN Only."
-msgstr "列印設備模式錯誤,請切換為 LAN Only 模式。"
+msgstr "列印裝置模式錯誤,請切換為 LAN Only 模式。"
msgid "Connecting to printer... The dialog will close later"
-msgstr "正在連接列印設備… 對話框將在稍後自動關閉"
+msgstr "正在連線列印裝置… 對話框將在稍後自動關閉"
msgid "Connection failed, please double check IP and Access Code"
-msgstr "連接失敗,請再次檢查 IP 和訪問代碼"
+msgstr "連線失敗,請再次檢查 IP 和存取代碼"
msgid ""
"Connection failed! If your IP and Access Code is correct, \n"
"please move to step 3 for troubleshooting network issues"
msgstr ""
-"連接失敗!如果 IP 和訪問代碼正確,\n"
+"連線失敗!如果 IP 和存取代碼正確,\n"
"請進入第 3 步進行網路問題排解"
msgid "Connection failed! Please refer to the wiki page."
-msgstr "連接失敗!請參考 wiki 頁面。"
+msgstr "連線失敗!請參考 wiki 頁面。"
msgid "sending failed"
msgstr "傳送失敗"
msgid "Failed to send. Click Retry to attempt sending again. If retrying does not work, please check the reason."
-msgstr "傳送失敗。點擊重試以再次嘗試傳送。若重試無效,請檢查原因。"
+msgstr "傳送失敗。點選重試以再次嘗試傳送。若重試無效,請檢查原因。"
msgid "reconnect"
-msgstr "重新連接"
+msgstr "重新連線"
msgid "Air Pump"
msgstr "氣泵"
@@ -11689,14 +11689,14 @@ msgstr "確認要更新嗎?更新需要大約10分鐘,更新期間請勿關
# TODO: Review, changed by lang refactor. PR 14254
msgid "An important update was detected and needs to be run before printing can continue. Do you want to update now? You can also update later from 'Update firmware'."
-msgstr "檢測到重要更新,必須執行後才能繼續列印。您要現在更新嗎?或者稍後可在『升級韌體』中完成更新。"
+msgstr "偵測到重要更新,必須執行後才能繼續列印。您要現在更新嗎?或者稍後可在『升級韌體』中完成更新。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "The firmware version is abnormal. Repairing and updating are required before printing. Do you want to update now? You can also update later on the printer or update next time you start Orca Slicer."
-msgstr "韌體版本異常,必須修復並更新後才能列印。您要現在更新嗎?也可以稍後在列印設備上更新,或在下次啟動 Orca 時進行更新。"
+msgstr "韌體版本異常,必須修復並更新後才能列印。您要現在更新嗎?也可以稍後在列印裝置上更新,或在下次啟動 Orca 時進行更新。"
msgid "Extension Board"
-msgstr "擴展板"
+msgstr "擴充板"
#, boost-format
msgid "Split into %1% parts"
@@ -11726,10 +11726,10 @@ msgid " updated to "
msgstr "更新到 "
msgid "Open G-code file:"
-msgstr "打開 G-code 檔案:"
+msgstr "開啟 G-code 檔案:"
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
-msgstr "模型出現空層無法列印。請切掉底部或打開支撐。"
+msgstr "模型出現空層無法列印。請切掉底部或開啟支撐。"
# TODO: Review, changed by lang refactor. PR 14254
#, boost-format
@@ -11847,7 +11847,7 @@ msgid "unsupported central directory size"
msgstr "不支援的主目錄容量"
msgid "allocation failed"
-msgstr "分配記憶體失敗"
+msgstr "配置記憶體失敗"
msgid "file open failed"
msgstr "檔案開啟失敗"
@@ -11894,7 +11894,7 @@ msgid "validation failed"
msgstr "驗證失敗"
msgid "write callback failed"
-msgstr "寫入回調失敗"
+msgstr "寫入回呼失敗"
# TODO: Review, changed by lang refactor. PR 14254
#, boost-format
@@ -11929,7 +11929,7 @@ msgid " is too close to clumping detection area, and collisions will be caused.\
msgstr "離堵塞偵測區域太近,會發生碰撞。\n"
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
-msgstr "所選的噴嘴溫度不相容。每種線材的噴嘴溫度都必須落在其他線材的建議噴嘴溫度範圍內。否則可能會發生噴嘴堵塞或列印設備損壞。"
+msgstr "所選的噴嘴溫度不相容。每種線材的噴嘴溫度都必須落在其他線材的建議噴嘴溫度範圍內。否則可能會發生噴嘴堵塞或列印裝置損壞。"
msgid "Invalid recommended nozzle temperature range. The lower bound must be lower than the upper bound."
msgstr "建議的噴嘴溫度範圍無效。下限必須低於上限。"
@@ -11944,13 +11944,13 @@ msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is
msgstr "逐件列印模式下不支援使用平滑模式的縮時錄影。"
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
-msgstr "啟用“按物件”序列時,不支援結塊檢測。"
+msgstr "啟用“按物件”序列時,不支援結塊偵測。"
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
msgstr "同時啟用精確 Z 高度和擦拭塔可能會導致切片錯誤。"
msgid "A prime tower is required for clumping detection; otherwise, there may be flaws on the model."
-msgstr "結塊檢測需要 Prime 塔;否則,模型可能存在缺陷。"
+msgstr "結塊偵測需要 Prime 塔;否則,模型可能存在缺陷。"
msgid "Please select \"By object\" print sequence to print multiple objects in spiral vase mode."
msgstr "請選擇『逐件列印』以支援在螺旋花瓶模式下列印多個物件。"
@@ -11961,7 +11961,7 @@ msgstr "不支援在包含多個線材的列印中使用螺旋花瓶模式。"
#, boost-format
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
-msgstr "物件 %1% 本身雖然符合構建體積,但由於材料收縮補償,導致其超出了最大構建高度限制。"
+msgstr "物件 %1% 本身雖然符合建構體積,但由於材料收縮補償,導致其超出了最大建構高度限制。"
#, boost-format
msgid "The object %1% exceeds the maximum build volume height."
@@ -11969,7 +11969,7 @@ msgstr "物件 %1% 超出了最大體積高度。"
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
-msgstr "物件 %1% 本身雖符合構建體積限制,但其最後一層超出了最大構建高度。"
+msgstr "物件 %1% 本身雖符合建構體積限制,但其最後一層超出了最大建構高度。"
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr "您可能想要減小模型的尺寸或更改目前的列印設定並重試。"
@@ -12020,7 +12020,7 @@ msgid "The prime tower is only supported if all objects have the same variable l
msgstr "各個物件的層高存在差異,無法啟用換料塔"
msgid "One or more object were assigned an extruder that the printer does not have."
-msgstr "一個或多個物件被分配到的印表設備沒有擠出機"
+msgstr "一個或多個物件被分配到的印表裝置沒有擠出機"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Line width too small"
@@ -12056,7 +12056,7 @@ msgid "The Hollow base pattern is not supported by this support type; Rectilinea
msgstr "此支撐類型不支援空心底座圖案;將改用直線填充。"
msgid "Support enforcers are used but support is not enabled. Please enable support."
-msgstr "使用支撐添加器但沒有打開支撐。請打開支撐。"
+msgstr "使用支撐添加器但沒有開啟支撐。請開啟支撐。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Layer height cannot exceed nozzle diameter."
@@ -12072,7 +12072,7 @@ msgid "\"G92 E0\" was found in layer_change_gcode, but the G or E are not upperc
msgstr "在 layer_change_gcode 中找到 \"G92 E0\",但 G 或 E 並非大寫。請將其改為完全大寫的 \"G92 E0\"。"
msgid "Relative extruder addressing requires resetting the extruder position at each layer to prevent loss of floating point accuracy. Add \"G92 E0\" to layer_gcode."
-msgstr "相對擠出機尋址需要重設每層的擠出機位置,以防止浮點精度損失。 將「G92 E0」加入到 layer_gcode。"
+msgstr "相對擠出機定址需要重設每層的擠出機位置,以防止浮點精度損失。 將「G92 E0」加入到 layer_gcode。"
msgid "\"G92 E0\" was found in before_layer_change_gcode, which is incompatible with absolute extruder addressing."
msgstr "在 before_layer_change_gcode 中發現 \"G92 E0\",這與絕對擠出機定址不相容。"
@@ -12085,49 +12085,49 @@ msgid "Plate %d: %s does not support filament %s"
msgstr "平台 %d:%s 不支援線材 %s"
msgid "Setting the jerk speed too low could lead to artifacts on curved surfaces"
-msgstr "抖動速度設置過低可能會在曲面上產生缺陷"
+msgstr "抖動速度設定過低可能會在曲面上產生缺陷"
msgid ""
"The jerk setting exceeds the printer's maximum jerk (machine_max_jerk_x/machine_max_jerk_y).\n"
"Orca will automatically cap the jerk speed to ensure it doesn't surpass the printer's capabilities.\n"
"You can adjust the maximum jerk setting in your printer's configuration to get higher speeds."
msgstr ""
-"抖動設定已超過列印設備的最大急動值(machine_max_jerk_x/machine_max_jerk_y)。\n"
-"Orca 將自動限制急動速度,以確保不超出列印設備的性能範圍。\n"
-"如需更高速度,您可以在列印設備配置中調整最大急動值。"
+"抖動設定已超過列印裝置的最大急動值(machine_max_jerk_x/machine_max_jerk_y)。\n"
+"Orca 將自動限制急動速度,以確保不超出列印裝置的性能範圍。\n"
+"如需更高速度,您可以在列印裝置配置中調整最大急動值。"
msgid ""
"Junction deviation setting exceeds the printer's maximum value (machine_max_junction_deviation).\n"
"Orca will automatically cap the junction deviation to ensure it doesn't surpass the printer's capabilities.\n"
"You can adjust the machine_max_junction_deviation value in your printer's configuration to get higher limits."
msgstr ""
-"連線偏差設定超出列印設備的最大值 (machine_max_junction_deviation)。\n"
-"Orca 將自動限制連線偏差,以確保其不會超出列印設備的能力。\n"
-"您可以調整列印設備配置中的 machine_max_junction_deviation 值以獲得更高的限制。"
+"轉角偏差設定超出列印裝置的最大值 (machine_max_junction_deviation)。\n"
+"Orca 將自動限制轉角偏差,以確保其不會超出列印裝置的能力。\n"
+"您可以調整列印裝置配置中的 machine_max_junction_deviation 值以獲得更高的限制。"
msgid ""
"The acceleration setting exceeds the printer's maximum acceleration (machine_max_acceleration_extruding).\n"
"Orca will automatically cap the acceleration speed to ensure it doesn't surpass the printer's capabilities.\n"
"You can adjust the machine_max_acceleration_extruding value in your printer's configuration to get higher speeds."
msgstr ""
-"加速度設定已超過列印設備的最大加速度值 (machine_max_acceleration_travel)。\n"
-"Orca 將自動限制加速度,以確保不超出列印設備的性能範圍。\n"
-"如需更高速度,您可以在列印設備配置中調整 machine_max_acceleration_extruding 值。"
+"加速度設定已超過列印裝置的最大加速度值 (machine_max_acceleration_travel)。\n"
+"Orca 將自動限制加速度,以確保不超出列印裝置的性能範圍。\n"
+"如需更高速度,您可以在列印裝置配置中調整 machine_max_acceleration_extruding 值。"
msgid ""
"The travel acceleration setting exceeds the printer's maximum travel acceleration (machine_max_acceleration_travel).\n"
"Orca will automatically cap the travel acceleration speed to ensure it doesn't surpass the printer's capabilities.\n"
"You can adjust the machine_max_acceleration_travel value in your printer's configuration to get higher speeds."
msgstr ""
-"移動加速度設定已超過列印設備的最大移動加速度值(machine_max_acceleration_travel)。\n"
-"Orca 將自動限制移動加速度,以確保不超出列印設備的性能範圍。\n"
-"如需更高速度,您可以在列印設備配置中調整 machine_max_acceleration_travel 值。"
+"移動加速度設定已超過列印裝置的最大移動加速度值(machine_max_acceleration_travel)。\n"
+"Orca 將自動限制移動加速度,以確保不超出列印裝置的性能範圍。\n"
+"如需更高速度,您可以在列印裝置配置中調整 machine_max_acceleration_travel 值。"
msgid "The precise wall option will be ignored for outer-inner or inner-outer-inner wall sequences."
msgstr "當壁序列為外內或內外內時,精確牆壁選項將被忽略。"
msgid "The Adaptive Pressure Advance model for one or more extruders may contain invalid values."
-msgstr "一個或多個擠出機的自適應壓力補償模型可能包含無效值。"
+msgstr "一個或多個擠出機的適應性壓力補償模型可能包含無效值。"
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr "線材收縮補償將被停用,因為所使用的線材之間的收縮率差異過大。"
@@ -12155,7 +12155,7 @@ msgid "Processing of the filename_format template failed."
msgstr "處理檔案名稱格式範本失敗。"
msgid "Printer technology"
-msgstr "列印設備技術"
+msgstr "列印裝置技術"
msgid "Printable area"
msgstr "可列印區域"
@@ -12167,13 +12167,13 @@ msgid "Support parallel printheads"
msgstr "支援並行列印頭"
msgid "Enable printer settings for machines that can use multiple printheads in parallel."
-msgstr "為可並行使用多個列印頭的機器啟用列印設備設定。"
+msgstr "為可並行使用多個列印頭的機器啟用列印裝置設定。"
msgid "Parallel printheads count"
msgstr "並行列印頭數量"
msgid "Set the number of parallel printheads for machines like OrangeStorm Giga printer."
-msgstr "設定 OrangeStorm Giga 列印設備等機器的平行列印頭數量。"
+msgstr "設定 OrangeStorm Giga 列印裝置等機器的平行列印頭數量。"
msgid "Parallel printheads bed exclude areas"
msgstr "並行列印頭列印板排除區域"
@@ -12186,7 +12186,7 @@ msgid "Excluded bed area"
msgstr "熱床淨空區域"
msgid "Unprintable area in XY plane. For example, X1 Series printers use the front left corner to cut filament during filament change. The area is expressed as polygon by points in following format: \"XxY, XxY, ...\""
-msgstr "XY 平面上的不可列印區域。例如,X1系列設備在換料過程中,會使用左前角區域來切斷線材。這個多邊形區域由以下格式的點表示:「XxY,XxY,…」"
+msgstr "XY 平面上的不可列印區域。例如,X1系列裝置在換料過程中,會使用左前角區域來切斷線材。這個多邊形區域由以下格式的點表示:「XxY,XxY,…」"
msgid "Bed custom texture"
msgstr "自訂列印板紋理"
@@ -12228,13 +12228,13 @@ msgstr "可列印高度"
# TODO: Review, changed by lang refactor. PR 14254
msgid "This is the maximum printable height which is limited by the height of the build area."
-msgstr "受列印設備硬體限制的最大可列印高度"
+msgstr "受列印裝置硬體限制的最大可列印高度"
msgid "Extruder printable height"
msgstr "擠出機可列印高度"
msgid "Maximum printable height of this extruder which is limited by mechanism of printer."
-msgstr "該擠出機的最大可列印高度受列印設備機構的限制。"
+msgstr "該擠出機的最大可列印高度受列印裝置機構的限制。"
msgid "Preferred orientation"
msgstr "首選方向"
@@ -12243,58 +12243,58 @@ msgid "Automatically orient STL files on the Z axis upon initial import."
msgstr "匯入 STL 時自動對齊 Z 軸"
msgid "Printer preset names"
-msgstr "列印設備預設名稱"
+msgstr "列印裝置預設名稱"
msgid "Use 3rd-party print host"
msgstr "啟用第三方列印主機"
msgid "Allow controlling BambuLab's printer through 3rd party print hosts."
-msgstr "允許使用第三方列印主機控制 BambuLab 列印設備"
+msgstr "允許使用第三方列印主機控制 BambuLab 列印裝置"
msgid "Use 3MF instead of G-code"
msgstr "使用 3MF 取代 G-code"
msgid "Enable this if the printer accepts a 3MF file as the print job. When enabled, Orca Slicer sends the sliced file as a .gcode.3mf, instead of a plain .gcode file."
-msgstr "若列印設備接受 3MF 檔案作為列印作業,請啟用此選項。啟用後,Orca Slicer 會將切片後的檔案以 .gcode.3mf 形式傳送,而非單純的 .gcode 檔案。"
+msgstr "若列印裝置接受 3MF 檔案作為列印作業,請啟用此選項。啟用後,Orca Slicer 會將切片後的檔案以 .gcode.3mf 形式傳送,而非單純的 .gcode 檔案。"
msgid "Printer Agent"
-msgstr "列印設備代理"
+msgstr "列印裝置代理"
msgid "Select the network agent implementation for printer communication."
-msgstr "選擇用於列印設備通訊的網路代理實作。"
+msgstr "選擇用於列印裝置通訊的網路代理實作。"
msgid "Hostname, IP or URL"
msgstr "主機名,IP 或者 URL"
msgid "Orca Slicer can upload G-code files to a printer host. This field should contain the hostname, IP address or URL of the printer host instance. Print host behind HAProxy with basic auth enabled can be accessed by putting the user name and password into the URL in the following format: https://username:password@your-octopi-address/"
-msgstr "Orca Slicer 可以將 G-code 檔案上傳到列印設備。此欄位應包含列印設備的主機名、IP 位址或 URL。啟用基本身份驗證的列印設備可以透過將使用者名稱和密碼放入以下格式的URL中來存取:https://username:password@your-octopi-address/"
+msgstr "Orca Slicer 可以將 G-code 檔案上傳到列印裝置。此欄位應包含列印裝置的主機名、IP 位址或 URL。啟用基本身份驗證的列印裝置可以透過將使用者名稱和密碼放入以下格式的URL中來存取:https://username:password@your-octopi-address/"
msgid "Device UI"
-msgstr "設備使用者界面"
+msgstr "裝置使用者介面"
msgid "Specify the URL of your device user interface if it's not same as print_host."
-msgstr "如果列印設備的使用者界面 URL 不同,請輸入在此"
+msgstr "如果列印裝置的使用者介面 URL 不同,請輸入在此"
msgid "API Key / Password"
msgstr "API 金鑰 / 密碼"
msgid "Orca Slicer can upload G-code files to a printer host. This field should contain the API Key or the password required for authentication."
-msgstr "Orca slicer 可以將 G-code 檔案上傳到列印設備。此欄位應包含用於身份驗證的 API 金鑰或密碼。"
+msgstr "Orca slicer 可以將 G-code 檔案上傳到列印裝置。此欄位應包含用於身份驗證的 API 金鑰或密碼。"
msgid "Serial Number"
msgstr "序號"
msgid "Flashforge local API requires the printer serial number."
-msgstr "Flashforge 本機 API 需要列印設備序號。"
+msgstr "Flashforge 本機 API 需要列印裝置序號。"
msgid "Name of the printer."
-msgstr "列印設備名稱"
+msgstr "列印裝置名稱"
msgid "HTTPS CA File"
msgstr "HTTPS CA憑證 檔"
msgid "Custom CA certificate file can be specified for HTTPS OctoPrint connections, in crt/pem format. If left blank, the default OS CA certificate repository is used."
-msgstr "可以為 HTTPS OctoPrint 連接指定自訂 CA憑證 檔案,格式為 crt/pem。如果留空,則使用預設的操作系統 CA憑證 儲存庫。"
+msgstr "可以為 HTTPS OctoPrint 連線指定自訂 CA憑證 檔案,格式為 crt/pem。如果留空,則使用預設的操作系統 CA憑證 儲存庫。"
msgid "User"
msgstr "使用者名稱"
@@ -12307,10 +12307,10 @@ msgstr "忽略 HTTPS 憑證吊銷檢查"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Ignore HTTPS certificate revocation checks in the case of missing or offline distribution points. One may want to enable this option for self signed certificates if connection fails."
-msgstr "在缺少或離線的情況下忽略 HTTPS 憑證吊銷檢查。如果連接失敗,可以啟用此選項來處理自簽名憑證。"
+msgstr "在缺少或離線的情況下忽略 HTTPS 憑證吊銷檢查。如果連線失敗,可以啟用此選項來處理自簽名憑證。"
msgid "Names of presets related to the physical printer."
-msgstr "與實體列印設備相關的預設名稱"
+msgstr "與實體列印裝置相關的預設名稱"
msgid "Authorization Type"
msgstr "授權類型"
@@ -12401,13 +12401,13 @@ msgstr "首層的列印床溫度。值為 0 表示該線材不適用於紋理 PE
# TODO: Review, changed by lang refactor. PR 14254
msgid "Plate types supported by the printer"
-msgstr "列印設備所支援的列印板類型"
+msgstr "列印裝置所支援的列印板類型"
msgid "Default bed type"
msgstr "預設列印板類型"
msgid "Default bed type for the printer (supports both numeric and string format)."
-msgstr "列印設備的預設列印板類型(支援數字和字串格式)。"
+msgstr "列印裝置的預設列印板類型(支援數字和字串格式)。"
msgid "First layer print sequence"
msgstr "首層列印順序"
@@ -12461,8 +12461,8 @@ msgstr ""
"2. 僅頂部和底部:僅在頂部和底部表面進行間隙填充,平衡列印速度,減少實心填充中的過度擠出,同時確保頂部和底部表面無針孔間隙。\n"
"3. 不填充:停用所有實心填充區域的間隙填充。\n"
"\n"
-"請注意,若使用『經典』的牆產生器,當外牆之間無法容納完整寬度的線條時,間隙填充仍可能產生。這類外牆間隙填充不受此設置控制。\n"
-"如果希望移除所有間隙填充,包括『經典』的牆產生器間隙填充,可將『過濾微小間隙』設置為較大的數字(如 999999)。\n"
+"請注意,若使用『經典』的牆產生器,當外牆之間無法容納完整寬度的線條時,間隙填充仍可能產生。這類外牆間隙填充不受此設定控制。\n"
+"如果希望移除所有間隙填充,包括『經典』的牆產生器間隙填充,可將『過濾微小間隙』設定為較大的數字(如 999999)。\n"
"然而,不建議這麼做,因為外牆間的間隙填充能增強模型強度。若模型因外牆間隙填充過多而受影響,更好的解決方案是切換到『Arachne』牆產生器,並利用此選項控制是否產生頂部和底部表面的美觀間隙填充"
msgid "Everywhere"
@@ -12488,16 +12488,16 @@ msgid ""
"\n"
"Please note, this fan speed is clamped on the lower end by the minimum fan speed threshold set above. It is also adjusted upwards up to the maximum fan speed threshold when the minimum layer time threshold is not met."
msgstr ""
-"當列印橋接結構或懸垂牆,且其懸垂角度超過「懸垂冷卻閾值」所設定的標準時,將適用此零件冷卻風扇轉速。針對懸垂與橋接部分提高冷卻強度,有助於提升列印品質並減少變形。\n"
+"當列印橋接結構或懸垂牆,且其懸垂角度超過「懸垂冷卻門檻值」所設定的標準時,將適用此零件冷卻風扇轉速。針對懸垂與橋接部分提高冷卻強度,有助於提升列印品質並減少變形。\n"
"\n"
-"請注意,此風扇轉速的最低值受限於「最小風扇轉速」設定。此外,當層列印時間未達「最小層列印時間」閾值時,風扇轉速將自動增加,最高可達「最大風扇轉速」設定值。"
+"請注意,此風扇轉速的最低值受限於「最小風扇轉速」設定。此外,當層列印時間未達「最小層列印時間」門檻值時,風扇轉速將自動增加,最高可達「最大風扇轉速」設定值。"
msgid "Overhang cooling activation threshold"
-msgstr "懸空冷卻觸發閾值"
+msgstr "懸空冷卻觸發門檻值"
#, no-c-format, no-boost-format
msgid "When the overhang exceeds this specified threshold, force the cooling fan to run at the 'Overhang Fan Speed' set below. This threshold is expressed as a percentage, indicating the portion of each line's width that is unsupported by the layer beneath it. Setting this value to 0% forces the cooling fan to run for all outer walls, regardless of the overhang degree."
-msgstr "當懸垂部分超過此指定的閾值時,強制冷卻風扇以「懸垂風扇速度」設定運行。此閾值以百分比表示,表示每條線寬中未被下層支撐的部分。將此值設為 0% 時,無論懸垂角度如何,都會強制冷卻風扇在所有外牆上運行"
+msgstr "當懸垂部分超過此指定的門檻值時,強制冷卻風扇以「懸垂風扇速度」設定運行。此門檻值以百分比表示,表示每條線寬中未被下層支撐的部分。將此值設為 0% 時,無論懸垂角度如何,都會強制冷卻風扇在所有外牆上運行"
msgid "External bridge infill direction"
msgstr "外部橋接結構的填充方向"
@@ -12645,7 +12645,7 @@ msgid ""
msgstr ""
"此設定值會影響頂部實心填充的材料用量。稍微降低此值可使表面更加平滑。\n"
"\n"
-"實際的頂部表面流量是此值乘以線材流量比例計算得出,若已設置物件流量比例,該比例也會被納入計算。"
+"實際的頂部表面流量是此值乘以線材流量比例計算得出,若已設定物件流量比例,該比例也會被納入計算。"
msgid "Bottom surface flow ratio"
msgstr "底部表面流量比例"
@@ -12657,7 +12657,7 @@ msgid ""
msgstr ""
"此設定值會影響底部實心填充的材料用量。\n"
"\n"
-"實際的底部實心填充流量是此值乘以線材流量比例計算得出,若已設置物件流量比例,該比例也會被納入計算。"
+"實際的底部實心填充流量是此值乘以線材流量比例計算得出,若已設定物件流量比例,該比例也會被納入計算。"
msgid "Set other flow ratios"
msgstr "設定其他流量比"
@@ -12738,7 +12738,7 @@ msgid ""
msgstr "該因素影響支撐材料的數量。 實際使用的支撐流量是透過將該值乘以線材流量比以及物件的流量比(如果已設定)來計算的。"
msgid "Support interface flow ratio"
-msgstr "支撐界面流量比"
+msgstr "支撐介面流量比"
msgid ""
"This factor affects the amount of material for the support interface.\n"
@@ -12759,7 +12759,7 @@ msgid "Use only one wall on flat top surfaces, to give more space to the top inf
msgstr "頂面只使用單層牆,從而更多的空間能夠使用頂部填充圖案"
msgid "One wall threshold"
-msgstr "單層牆閾值"
+msgstr "單層牆門檻值"
#, no-c-format, no-boost-format
msgid ""
@@ -12810,7 +12810,7 @@ msgstr ""
"\n"
"此設定可顯著減少零件應力,因為應力會以交替方向分佈。這有助於減少零件翹曲,同時保持外部牆面的品質。此功能對於易翹曲的材料(例如 ABS/ASA),以及彈性線材(例如 TPU 和絲光 PLA)特別有用。它還可以幫助減少支撐上懸空區域的翹曲。\n"
"\n"
-"為使此設定達到最佳效果,建議將反向閾值設為 0,以確保所有內圍牆體在偶數層以交替方向列印,而不受懸垂角度的影響。"
+"為使此設定達到最佳效果,建議將反向門檻值設為 0,以確保所有內圍牆體在偶數層以交替方向列印,而不受懸垂角度的影響。"
msgid "Bridge counterbore holes"
msgstr "橋接沉孔"
@@ -12846,7 +12846,7 @@ msgid ""
msgstr ""
"懸空需要達到的 mm,才能使反轉被認為是有用的。該值可以是外牆寬度的百分比。\n"
"設為 0 時,反轉將在所有偶數層上無條件啟用。\n"
-"如果未啟用『檢測懸空外牆』,此選項將被忽略,並且反轉會無條件發生在所有偶數層上。"
+"如果未啟用『偵測懸空外牆』,此選項將被忽略,並且反轉會無條件發生在所有偶數層上。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Slow down for overhangs"
@@ -12854,7 +12854,7 @@ msgstr "懸空處降速"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Enable this option to slow down when printing overhangs. The speeds for different overhang percentages are set below."
-msgstr "打開這個選項將降低不同懸空程度的走線的列印速度"
+msgstr "開啟這個選項將降低不同懸空程度的走線的列印速度"
msgid "Slow down for curled perimeters"
msgstr "翹邊處降速"
@@ -12879,7 +12879,7 @@ msgstr ""
"啟用此選項可在牆可能向上捲曲的區域降低列印速度。\n"
"例如,在列印像 Benchy 船體前端這類尖角上的懸空時,會套用額外的減速,以減少在多個層上不斷累積的捲曲。\n"
"\n"
-"一般建議開啟此選項,除非您的列印設備冷卻能力夠強,或列印速度夠慢,使得牆不會發生捲曲。 \n"
+"一般建議開啟此選項,除非您的列印裝置冷卻能力夠強,或列印速度夠慢,使得牆不會發生捲曲。 \n"
"若以較高的外牆速度列印,此參數在減速時可能會產生牆面瑕疵,這是因為列印速度的差異可能過大,導致擠出機無法跟上所要求的流量變化。\n"
"這些瑕疵的根本原因很可能是 PA 調校略有偏差,尤其是搭配較高的 PA 平滑時間時。\n"
"\n"
@@ -12956,7 +12956,7 @@ msgstr ""
"啟用後,邊緣 與第一層周邊幾何體對齊 應用像腳補償後。\n"
"此選項適用於像腳補償的情況 顯著改變第一層足跡。\n"
"\n"
-"如果您當前的設置已經運行良好,則可能沒有必要啟用它,並且 可以導致 邊緣 與上層融合。"
+"如果您目前的設定已經運行良好,則可能沒有必要啟用它,並且 可以導致 邊緣 與上層融合。"
msgid "Combine brims"
msgstr "合併邊緣"
@@ -12993,18 +12993,18 @@ msgstr ""
"設為 0 以停用"
msgid "upward compatible machine"
-msgstr "向上相容的設備"
+msgstr "向上相容的裝置"
msgid "Condition"
msgstr "條件"
# TODO: Review, changed by lang refactor. PR 14254
msgid "A Boolean expression using the configuration values of an active printer profile. If this expression evaluates to true, this profile is considered compatible with the active printer profile."
-msgstr "使用啟用的列印設備設定值來進行布林運算的表達式。如果此表達式的結果為 true,則該設定檔將被視為與目前啟用的列印設備設定檔相容。"
+msgstr "使用啟用的列印裝置設定值來進行布林運算的表示式。如果此表示式的結果為 true,則該設定檔將被視為與目前啟用的列印裝置設定檔相容。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "A Boolean expression using the configuration values of an active print profile. If this expression evaluates to true, this profile is considered compatible with the active print profile."
-msgstr "使用啟用的列印設定檔值來進行布林運算的表達式。如果此表達式的結果為 true,則該設定檔將被視為與目前啟用的列印設定檔相容。"
+msgstr "使用啟用的列印設定檔值來進行布林運算的表示式。如果此表示式的結果為 true,則該設定檔將被視為與目前啟用的列印設定檔相容。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "This determines the print sequence, allowing you to print layer-by-layer or object-by-object."
@@ -13062,13 +13062,13 @@ msgid "Default filament profile"
msgstr "預設線材設定檔"
msgid "Default filament profile when switching to this machine profile."
-msgstr "切換列印設備時自動更換預設線材設定檔"
+msgstr "切換列印裝置時自動更換預設線材設定檔"
msgid "Default process profile"
msgstr "預設切片設定檔"
msgid "Default process profile when switching to this machine profile."
-msgstr "切換列印設備時自動更換預設切片設定檔"
+msgstr "切換列印裝置時自動更換預設切片設定檔"
msgid "Activate air filtration"
msgstr "啟用空氣過濾器/排風扇"
@@ -13469,13 +13469,13 @@ msgid "Bed mesh min"
msgstr "熱床網格最小值"
msgid "This option sets the min point for the allowed bed mesh area. Due to the probe's XY offset, most printers are unable to probe the entire bed. To ensure the probe point does not go outside the bed area, the minimum and maximum points of the bed mesh should be set appropriately. OrcaSlicer ensures that adaptive_bed_mesh_min/adaptive_bed_mesh_max values do not exceed these min/max points. This information can usually be obtained from your printer manufacturer. The default setting is (-99999, -99999), which means there are no limits, thus allowing probing across the entire bed."
-msgstr "此選項設置允許的熱網格區域的最小值。由於探測器的 XY 偏移,大多數列印設備無法探測整個熱床。為確保感測範圍不超出熱床區域,應適當設置熱床網格的最小值和最大值。OrcaSlicer 會確保 adaptive_bed_mesh_min/adaptive_bed_mesh_max 的值不超出這些最小值/最大值。此訊息通常可從設備製造商處取得。預設設置為 (-99999, -99999),表示無限制,允許探測整個熱床。"
+msgstr "此選項設定允許的熱網格區域的最小值。由於探測器的 XY 偏移,大多數列印裝置無法探測整個熱床。為確保感測範圍不超出熱床區域,應適當設定熱床網格的最小值和最大值。OrcaSlicer 會確保 adaptive_bed_mesh_min/adaptive_bed_mesh_max 的值不超出這些最小值/最大值。此訊息通常可從裝置製造商處取得。預設設定為 (-99999, -99999),表示無限制,允許探測整個熱床。"
msgid "Bed mesh max"
msgstr "熱床網格最大值"
msgid "This option sets the max point for the allowed bed mesh area. Due to the probe's XY offset, most printers are unable to probe the entire bed. To ensure the probe point does not go outside the bed area, the minimum and maximum points of the bed mesh should be set appropriately. OrcaSlicer ensures that adaptive_bed_mesh_min/adaptive_bed_mesh_max values do not exceed these min/max points. This information can usually be obtained from your printer manufacturer. The default setting is (99999, 99999), which means there are no limits, thus allowing probing across the entire bed."
-msgstr "此選項設置允許的熱網格區域的最大值。由於探測器的 XY 偏移,大多數列印設備無法探測整個熱床。為確保感測範圍不超出熱床區域,應適當設置熱床網格的最小值和最大值。OrcaSlicer 會確保 adaptive_bed_mesh_min/adaptive_bed_mesh_max 的值不超出這些最小值/最大值。此訊息通常可從設備製造商處取得。預設設置為 (-99999, -99999),表示無限制,允許探測整個熱床。"
+msgstr "此選項設定允許的熱網格區域的最大值。由於探測器的 XY 偏移,大多數列印裝置無法探測整個熱床。為確保感測範圍不超出熱床區域,應適當設定熱床網格的最小值和最大值。OrcaSlicer 會確保 adaptive_bed_mesh_min/adaptive_bed_mesh_max 的值不超出這些最小值/最大值。此訊息通常可從裝置製造商處取得。預設設定為 (-99999, -99999),表示無限制,允許探測整個熱床。"
msgid "Probe point distance"
msgstr "探測間距"
@@ -13487,7 +13487,7 @@ msgid "Mesh margin"
msgstr "網格邊緣距離"
msgid "This option determines the additional distance by which the adaptive bed mesh area should be expanded in the XY directions."
-msgstr "此選項決定自適應床面網格區域在 XY 方向上應該擴展的額外距離。"
+msgstr "此選項決定適應性床面網格區域在 XY 方向上應該擴展的額外距離。"
msgid "Grab length"
msgstr "抓取長度"
@@ -13522,7 +13522,7 @@ msgid "Pressure advance (Klipper) AKA Linear advance factor (Marlin)."
msgstr "壓力補償(Klipper),也稱為線性前進係數(Marlin)"
msgid "Enable adaptive pressure advance (beta)"
-msgstr "自適應壓力補償功能(Beta)"
+msgstr "適應性壓力補償功能(Beta)"
#, no-c-format, no-boost-format
msgid ""
@@ -13535,12 +13535,12 @@ msgid ""
msgstr ""
"隨著列印速度的提高(因此噴嘴內的體積流速增加)以及加速度的增加,已觀察到有效的壓力補償(PA)值通常會下降。這意味著單一的 PA 值並不總是對所有特徵都能達到最佳效果,通常會使用一個折衷值,以減少在較低流速和加速度下的特徵出現過多凸起,同時避免在更快的特徵中出現間隙。\n"
"\n"
-"此功能旨在通過建模的方式,讓擠出系統在不同體積流速和加速度下的反應狀態來解決這一限制。內部會產生一個擬合模型,可根據給定的體積流速和加速度推算出所需的壓力補償值,並根據目前的列印條件將該值傳送到列印設備。\n"
+"此功能旨在透過建模的方式,讓擠出系統在不同體積流速和加速度下的反應狀態來解決這一限制。內部會產生一個擬合模型,可根據給定的體積流速和加速度推算出所需的壓力補償值,並根據目前的列印條件將該值傳送到列印裝置。\n"
"\n"
-"啟用後,上述的壓力補償值將被覆蓋。然而,建議設置一個合理的預設值,以作為備用或擠出機更換時的回推值。\n"
+"啟用後,上述的壓力補償值將被覆蓋。然而,建議設定一個合理的預設值,以作為備用或擠出機更換時的回推值。\n"
msgid "Adaptive pressure advance measurements (beta)"
-msgstr "自適應壓力補償測量功能(Beta)"
+msgstr "適應性壓力補償測量功能(Beta)"
#, no-c-format, no-boost-format
msgid ""
@@ -13563,8 +13563,8 @@ msgstr ""
"\n"
"校正方法:\n"
"1. 為每個加速度值執行至少 3 個速度的壓力補償測試。建議至少測試外牆速度、內牆速度和設定檔中最快的特徵列印速度(通常是稀疏或實心填充)。然後對最慢和最快的列印加速度執行相同速度的測試,但不超過 Klipper 輸入整形器建議的最大加速度。\n"
-"2. 記錄每個體積流速和加速度的最佳壓力補償 (PA) 值。您可以通過從顏色方案下拉選單中選擇流量,並將水平滑桿移動到 PA 測試線的圖案來找到流量數值。該數值應顯示在頁面底部。理想的 PA 值應隨著體積流速的增加而減小。如果不是,請檢查您的擠出機是否正常工作。當列印速度較慢且加速度較低時,可接受的 PA 值範圍會更大。如果看不出差異,請採用最快測試的 PA 值。\n"
-"3. 將 PA 值、流量和加速度的三組資料輸入到此文字框中,然後保存您的線材設定檔"
+"2. 記錄每個體積流速和加速度的最佳壓力補償 (PA) 值。您可以透過從顏色方案下拉選單中選擇流量,並將水平滑桿移動到 PA 測試線的圖案來找到流量數值。該數值應顯示在頁面底部。理想的 PA 值應隨著體積流速的增加而減小。如果不是,請檢查您的擠出機是否正常工作。當列印速度較慢且加速度較低時,可接受的 PA 值範圍會更大。如果看不出差異,請採用最快測試的 PA 值。\n"
+"3. 將 PA 值、流量和加速度的三組資料輸入到此文字框中,然後儲存您的線材設定檔"
msgid "Enable adaptive pressure advance within features (beta)"
msgstr ""
@@ -13682,19 +13682,19 @@ msgid "Filament load time"
msgstr "進料的時間"
msgid "Time to load new filament when switch filament. It's usually applicable for single-extruder multi-material machines. For tool changers or multi-tool machines, it's typically 0. For statistics only."
-msgstr "更換線材時加載新線材的時間,通常適用於單噴頭多材料的列印機。對於具備擠出機切換功能或多擠出機系統的設備,此值通常設為 0,僅作為統計參考"
+msgstr "更換線材時載入新線材的時間,通常適用於單噴頭多材料的列印機。對於具備擠出機切換功能或多擠出機系統的裝置,此值通常設為 0,僅作為統計參考"
msgid "Filament unload time"
msgstr "退料的時間"
msgid "Time to unload old filament when switch filament. It's usually applicable for single-extruder multi-material machines. For tool changers or multi-tool machines, it's typically 0. For statistics only."
-msgstr "更換線材時卸載舊線材的時間,通常適用於單噴頭多材料的列印機。於具備擠出機切換功能或多擠出機系統的設備,此值通常設為 0,僅作為統計參考"
+msgstr "更換線材時卸載舊線材的時間,通常適用於單噴頭多材料的列印機。於具備擠出機切換功能或多擠出機系統的裝置,此值通常設為 0,僅作為統計參考"
msgid "Tool change time"
msgstr "擠出機替換時間"
msgid "Time taken to switch tools. It's usually applicable for tool changers or multi-tool machines. For single-extruder multi-material machines, it's typically 0. For statistics only."
-msgstr "切換擠出機所需的時間,通常適用於具備擠出機切換功能或多擠出機系統的設備。對於單噴頭多材料的列印機,此值一般設為 0,僅作為統計參考"
+msgstr "切換擠出機所需的時間,通常適用於具備擠出機切換功能或多擠出機系統的裝置。對於單噴頭多材料的列印機,此值一般設為 0,僅作為統計參考"
msgid "Bed temperature type"
msgstr "熱床溫度類型"
@@ -13727,7 +13727,7 @@ msgstr ""
"filament_diameter = sqrt( (4 * pellet_flow_coefficient) / PI )"
msgid "Adaptive volumetric speed"
-msgstr "自適應體積流量"
+msgstr "適應性體積流量"
msgid ""
"When enabled, the extrusion flow is limited by the smaller of the fitted value (calculated from line width and layer height) and the user-defined maximum flow. When disabled, only the user-defined maximum flow is applied.\n"
@@ -13837,19 +13837,19 @@ msgid "Interface layer pre-extrusion distance"
msgstr "介面層預擠出距離"
msgid "Pre-extrusion distance for prime tower interface layer (where different materials meet)."
-msgstr "換料塔界面層(不同材料相遇處)的預擠出距離。"
+msgstr "換料塔介面層(不同材料相遇處)的預擠出距離。"
msgid "Interface layer pre-extrusion length"
msgstr "介面層預擠出長度"
msgid "Pre-extrusion length for prime tower interface layer (where different materials meet)."
-msgstr "換料塔界面層(不同材料相遇處)的預擠出長度。"
+msgstr "換料塔介面層(不同材料相遇處)的預擠出長度。"
msgid "Tower ironing area"
msgstr "換料塔熨燙區域"
msgid "Ironing area for prime tower interface layer (where different materials meet)."
-msgstr "換料塔界面層(不同材料相遇處)的熨燙區域。"
+msgstr "換料塔介面層(不同材料相遇處)的熨燙區域。"
msgid "mm²"
msgstr "mm²"
@@ -13858,13 +13858,13 @@ msgid "Interface layer purge length"
msgstr "介面層清理長度"
msgid "Purge length for prime tower interface layer (where different materials meet)."
-msgstr "換料塔界面層(不同材料相遇處)的清洗長度。"
+msgstr "換料塔介面層(不同材料相遇處)的清洗長度。"
msgid "Interface layer print temperature"
msgstr "介面層列印溫度"
msgid "Print temperature for prime tower interface layer (where different materials meet). If set to -1, use max recommended nozzle temperature."
-msgstr "換料塔界面層(不同材料相遇處)的列印溫度。設為 -1 則使用最大建議噴嘴溫度。"
+msgstr "換料塔介面層(不同材料相遇處)的列印溫度。設為 -1 則使用最大建議噴嘴溫度。"
msgid "Speed of the last cooling move"
msgstr "最後一次冷卻移動的速度"
@@ -13882,7 +13882,7 @@ msgid "Enable ramming for multi-tool setups"
msgstr "使用多色尖端成形設定"
msgid "Perform ramming when using multi-tool printer (i.e. when the 'Single Extruder Multimaterial' in Printer Settings is unchecked). When checked, a small amount of filament is rapidly extruded on the wipe tower just before the tool change. This option is only used when the wipe tower is enabled."
-msgstr "多色列印設備執行尖端成型時(即,當列印設備設定中的單擠出機多材料未選取時)。選取時,在換色之前,會迅速擠出少量線材絲到換料塔上。此選項僅在啟用換料塔時使用。"
+msgstr "多色列印裝置執行尖端成型時(即,當列印裝置設定中的單擠出機多材料未選取時)。選取時,在換色之前,會迅速擠出少量線材絲到換料塔上。此選項僅在啟用換料塔時使用。"
msgid "Multi-tool ramming volume"
msgstr "多色尖端成型體積"
@@ -14059,7 +14059,7 @@ msgid "Cubic"
msgstr "立方體"
msgid "Adaptive Cubic"
-msgstr "自適應立方體"
+msgstr "適應性立方體"
msgid "Quarter Cubic"
msgstr "四分之一立方"
@@ -14132,7 +14132,7 @@ msgid "Default jerk."
msgstr "預設抖動"
msgid "Marlin Firmware Junction Deviation (replaces the traditional XY Jerk setting)."
-msgstr "Marlin 韌體連線偏差(取代傳統的 XY Jerk 設定)。"
+msgstr "Marlin 韌體轉角偏差(取代傳統的 XY Jerk 設定)。"
msgid "Jerk of outer walls."
msgstr "外牆抖動值"
@@ -14223,7 +14223,7 @@ msgid ""
msgstr ""
msgid "Support interface fan speed"
-msgstr "支撐界面風扇速度"
+msgstr "支撐介面風扇速度"
msgid ""
"This part cooling fan speed is applied when printing support interfaces. Setting this parameter to a higher than regular speed reduces the layer binding strength between supports and the supported part, making them easier to separate.\n"
@@ -14445,7 +14445,7 @@ msgid "Layers and Perimeters"
msgstr "層和牆"
msgid "Don't print gap fill with a length is smaller than the threshold specified (in mm). This setting applies to top, bottom and solid infill and, if using the classic perimeter generator, to wall gap fill."
-msgstr "若縫隙填充的長度小於設定的閾值(以 mm 計),則不列印該填充。此設定適用於頂部、底部和實心填充,以及使用經典牆產生器時的牆體縫隙填充。"
+msgstr "若縫隙填充的長度小於設定的門檻值(以 mm 計),則不列印該填充。此設定適用於頂部、底部和實心填充,以及使用經典牆產生器時的牆體縫隙填充。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "This is the speed for gap infill. Gaps usually have irregular line width and should be printed more slowly."
@@ -14467,7 +14467,7 @@ msgid ""
msgstr ""
"啟用此選項可產生包含 G2 和 G3 弧形運動的 G-code 檔案,其擬合公差與解析度一致。 \n"
"\n"
-"注意:對於 Klipper 控制的機器,建議關閉此功能。Klipper 無法有效利用弧形指令,因為固件會將這些弧形指令重新分割為線段。這可能導致表面品質下降,因為切片器將線段轉換為弧形,然後固件又將弧形還原為線段。"
+"注意:對於 Klipper 控制的機器,建議關閉此功能。Klipper 無法有效利用弧形指令,因為韌體會將這些弧形指令重新分割為線段。這可能導致表面品質下降,因為切片器將線段轉換為弧形,然後韌體又將弧形還原為線段。"
msgid "Add line number"
msgstr "標註行號"
@@ -14480,16 +14480,16 @@ msgstr "首層檢查"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Enable this to allow the camera on the printer to check the quality of the first layer."
-msgstr "打開這個設定將使用列印設備上的鏡頭用於檢查首層列印品質"
+msgstr "開啟這個設定將使用列印裝置上的鏡頭用於檢查首層列印品質"
msgid "Power Loss Recovery"
-msgstr "斷電恢復"
+msgstr "斷電還原"
msgid "Choose how to control power loss recovery. When set to Printer configuration, the slicer will not emit power loss recovery G-code and will leave the printer's configuration unchanged. Applicable to Bambu Lab or Marlin 2 firmware based printers."
-msgstr "選擇如何控制斷電恢復。當設定為列印設備設定時,切片機不會發出斷電恢復 G-code,並且列印設備的設定保持不變。適用於基於 Bambu Lab 或 Marlin 2 韌體的列印設備。"
+msgstr "選擇如何控制斷電還原。當設定為列印裝置設定時,切片機不會發出斷電還原 G-code,並且列印裝置的設定保持不變。適用於基於 Bambu Lab 或 Marlin 2 韌體的列印裝置。"
msgid "Printer configuration"
-msgstr "列印設備設定"
+msgstr "列印裝置設定"
msgid "Nozzle type"
msgstr "噴嘴類型"
@@ -14518,10 +14518,10 @@ msgid "HRC"
msgstr "洛氏硬度"
msgid "Printer structure"
-msgstr "列印設備結構"
+msgstr "列印裝置結構"
msgid "The physical arrangement and components of a printing device."
-msgstr "列印設備的實體佈置和組件"
+msgstr "列印裝置的實體佈置和元件"
msgid "CoreXY"
msgstr "CoreXY"
@@ -14542,7 +14542,7 @@ msgid "Best auto arranging position in range [0,1] w.r.t. bed shape."
msgstr "針對列印版的形狀,範圍 [0,1] 內的最佳自動擺放位置 。"
msgid "Enable this option if machine has auxiliary part cooling fan. G-code command: M106 P2 S(0-255)."
-msgstr "如果設備有輔助物件冷卻風扇,請啟用此選項。 G-code 指令:M106 P2 S(0-255)。"
+msgstr "如果裝置有輔助物件冷卻風扇,請啟用此選項。 G-code 指令:M106 P2 S(0-255)。"
msgid "Fan direction"
msgstr ""
@@ -14560,8 +14560,8 @@ msgid ""
"Use 0 to deactivate."
msgstr ""
"在風扇目標啟動時間前提前設定的秒數啟動風扇(支持小數點)。此功能基於無限加速假設進行時間估算,並僅考慮 G1 和 G0 指令的移動(不支援圓弧擬合)。\n"
-"風扇指令不會從自定義 G-code 中轉移(它們被視為「屏障」)。\n"
-"若啟用『僅使用自定義起始 G-code』,風扇指令將不會移動到起始 G-code 中。\n"
+"風扇指令不會從自訂 G-code 中轉移(它們被視為「屏障」)。\n"
+"若啟用『僅使用自訂起始 G-code』,風扇指令將不會移動到起始 G-code 中。\n"
"將此值設為 0 可停用該功能。"
msgid "Only overhangs"
@@ -14580,7 +14580,7 @@ msgid ""
msgstr ""
"在風扇降速至目標速度之前,先以最大風扇速度運行指定的秒數來啟動冷卻風扇。\n"
"這對於需要較高功率才能從靜止狀態啟動,或需要更快達到運行速度的風扇非常有幫助。\n"
-"若設置為 0,將停用此功能。\n"
+"若設定為 0,將停用此功能。\n"
"譯者補充:風扇啟動時間通常是指風扇從靜止狀態到穩定運轉所需的時間\n"
"這個設定可以確保風扇在低轉速時順利啟動,避免因功率不足而無法正常運行。"
@@ -14593,27 +14593,27 @@ msgid ""
"Set to 0 to deactivate."
msgstr ""
"某些物件冷卻風扇在指令值低於特定 PWM 工作週期時無法開始轉動。當設定為大於 0 時,任何非零的物件冷卻風扇指令都會被提高到至少此百分比,以確保風扇能可靠地啟動。風扇指令為 0(關閉風扇)時一律精確遵循。此限制會在所有其他風扇計算(首層漸增、層時間插值、懸空/橋接/支撐面/熨燙覆寫)之後套用,因此縮放仍會在 [此值, 100%] 範圍內運作。\n"
-"如果您的韌體已經在低於某個閾值時停用風扇(例如 Klipper 的 [fan] off_below: 0.10 會在指令工作週期低於 10% 時關閉風扇),則此選項與韌體閾值最好設定為相同的值。讓兩者相符(例如 Klipper 中的 off_below: 0.10 與此處的 10%)可確保切片軟體永遠不會發出韌體會默默捨棄的非零值,且風扇永遠不會收到低於您已知它實際能啟動轉動的值。\n"
+"如果您的韌體已經在低於某個門檻值時停用風扇(例如 Klipper 的 [fan] off_below: 0.10 會在指令工作週期低於 10% 時關閉風扇),則此選項與韌體門檻值最好設定為相同的值。讓兩者相符(例如 Klipper 中的 off_below: 0.10 與此處的 10%)可確保切片軟體永遠不會發出韌體會默默捨棄的非零值,且風扇永遠不會收到低於您已知它實際能啟動轉動的值。\n"
"設定為 0 以停用。"
msgid "Time cost"
msgstr "時間成本"
msgid "The printer cost per hour."
-msgstr "列印設備每小時的成本"
+msgstr "列印裝置每小時的成本"
msgid "money/h"
msgstr "元/小時"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Support controlling chamber temperature"
-msgstr "支援控制列印設備內部溫度"
+msgstr "支援控制列印裝置內部溫度"
msgid ""
"This option is enabled if machine support controlling chamber temperature\n"
"G-code command: M141 S(0-255)"
msgstr ""
-"如果支援列印設備內部溫度控制,則啟用此選項\n"
+"如果支援列印裝置內部溫度控制,則啟用此選項\n"
"G-code 指令:M141 S(0-255)"
msgid "Support air filtration"
@@ -14623,7 +14623,7 @@ msgid ""
"Enable this if printer support air filtration\n"
"G-code command: M106 P3 S(0-255)"
msgstr ""
-"如果列印設備支援空氣過濾,請啟用此選項\n"
+"如果列印裝置支援空氣過濾,請啟用此選項\n"
"G-code 指令:M106 P3 S(0-255)"
msgid "Use cooling filter"
@@ -14636,16 +14636,16 @@ msgid "G-code flavor"
msgstr "G-code 風格"
msgid "What kind of G-code the printer is compatible with."
-msgstr "列印設備相容的 G-code 樣式"
+msgstr "列印裝置相容的 G-code 樣式"
msgid "Klipper"
msgstr "Klipper"
msgid "Pellet Modded Printer"
-msgstr "顆粒改裝列印設備"
+msgstr "顆粒改裝列印裝置"
msgid "Enable this option if your printer uses pellets instead of filaments."
-msgstr "若您的列印設備使用塑料顆粒而非傳統線材,請啟用此選項"
+msgstr "若您的列印裝置使用塑膠顆粒而非傳統線材,請啟用此選項"
msgid "Support multi bed types"
msgstr "支援多種熱床類型"
@@ -14685,16 +14685,16 @@ msgid "This parameter adds a slight displacement to each layer of infill to crea
msgstr "此參數為每層填充新增輕微的位移以建立十字紋理。"
msgid "Sparse infill rotation template"
-msgstr "稀疏填充旋轉模板"
+msgstr "稀疏填充旋轉範本"
msgid "Rotate the sparse infill direction per layer using a template of angles. Enter comma-separated degrees (e.g., '0,30,60,90'). Angles are applied in order by layer and repeat when the list ends. Advanced syntax is supported: '+5' rotates +5° every layer; '+5#5' rotates +5° every 5 layers. See the Wiki for details. When a template is set, the standard infill direction setting is ignored. Note: some infill patterns (e.g., Gyroid) control rotation themselves; use with care."
-msgstr "使用角度模板旋轉每層的稀疏填充方向。輸入以逗號分隔的度數(例如“0,30,60,90”)。角度按層順序應用,並在列表結束時重複。支援高階語法:“+5”每層旋轉+5°; ‘+5#5’每 5 層旋轉+5°。詳細資訊請參閱維基百科。設定模板後,將忽略標準填充方向設定。注意:一些填充圖案(例如 Gyroid)本身控制旋轉;小心使用。"
+msgstr "使用角度範本旋轉每層的稀疏填充方向。輸入以逗號分隔的度數(例如“0,30,60,90”)。角度按層順序應用,並在列表結束時重複。支援高階語法:“+5”每層旋轉+5°; ‘+5#5’每 5 層旋轉+5°。詳細資訊請參閱維基百科。設定範本後,將忽略標準填充方向設定。注意:一些填充圖案(例如 Gyroid)本身控制旋轉;小心使用。"
msgid "Solid infill rotation template"
-msgstr "實心填充旋轉模板"
+msgstr "實心填充旋轉範本"
msgid "This parameter adds a rotation of solid infill direction to each layer according to the specified template. The template is a comma-separated list of angles in degrees, e.g. '0,90'. The first angle is applied to the first layer, the second angle to the second layer, and so on. If there are more layers than angles, the angles will be repeated. Note that not all solid infill patterns support rotation."
-msgstr "該參數根據指定的模板為每個圖層新增實體填充方向的旋轉。該模板是一個以逗號分隔的角度列表,以度為單位,例如'0,90'。第一個角度應用於第一層,第二個角度應用於第二層,依此類推。如果層數多於角度,則角度將重複。請注意,並非所有實心填充圖案都支援旋轉。"
+msgstr "該參數根據指定的範本為每個圖層新增實體填充方向的旋轉。該範本是一個以逗號分隔的角度列表,以度為單位,例如'0,90'。第一個角度應用於第一層,第二個角度應用於第二層,依此類推。如果層數多於角度,則角度將重複。請注意,並非所有實心填充圖案都支援旋轉。"
msgid "Skeleton infill density"
msgstr "骨架填充密度"
@@ -14724,13 +14724,13 @@ msgid "Skin line width"
msgstr "外殼線寬"
msgid "Adjust the line width of the selected skin paths."
-msgstr "調整選中外殼路徑的線寬"
+msgstr "調整選取外殼路徑的線寬"
msgid "Skeleton line width"
msgstr "骨架線寬"
msgid "Adjust the line width of the selected skeleton paths."
-msgstr "調整選中骨架路徑的線寬"
+msgstr "調整選取骨架路徑的線寬"
msgid "Symmetric infill Y axis"
msgstr "對稱填充Y軸"
@@ -14757,7 +14757,7 @@ msgstr ""
"可以使用絕對值(例如 0.32mm,對應 0.4mm 的噴嘴)或百分比(例如 80%)。注意,此值不能超過噴嘴的直徑。"
msgid "Enable clumping detection"
-msgstr "啟用結塊檢測"
+msgstr "啟用結塊偵測"
msgid "Clumping detection layers"
msgstr "結塊監測層數"
@@ -14766,10 +14766,10 @@ msgid "Clumping detection layers."
msgstr "結塊監測層數"
msgid "Probing exclude area of clumping"
-msgstr "結塊檢測排除區域"
+msgstr "結塊偵測排除區域"
msgid "Probing exclude area of clumping."
-msgstr "結塊檢測排除區域"
+msgstr "結塊偵測排除區域"
msgid "Lateral lattice angle 1"
msgstr "網格結構角度 1"
@@ -14833,7 +14833,7 @@ msgstr "填充錨線的最大長度"
msgid ""
"Connect an infill line to an internal perimeter with a short segment of an additional perimeter. If expressed as percentage (example: 15%) it is calculated over infill extrusion width. Orca Slicer tries to connect two close infill lines to a short perimeter segment. If no such perimeter segment shorter than this parameter is found, the infill line is connected to a perimeter segment at just one side and the length of the perimeter segment taken is limited to infill_anchor, but no longer than this parameter.\n"
"If set to 0, the old algorithm for infill connection will be used, it should create the same result as with 1000 & 0."
-msgstr "將填充線透過一小段額外的牆與內牆連接。如果以百分比形式設定(如 15%),此數值是基於填充擠出寬度進行計算。Orca Slicer 會嘗試將兩條靠近的填充線連接到一段較短的牆。如果沒有找到短於此參數的牆,則填充線會只連接到單側牆,且該牆的長度受 infill_anchor 限制,但不會超過此參數的設定值。若此參數設定為 0,將啟用舊版填充連接算法,並產生與設置為 1000 和 0 相同的結果。"
+msgstr "將填充線透過一小段額外的牆與內牆連接。如果以百分比形式設定(如 15%),此數值是基於填充擠出寬度進行計算。Orca Slicer 會嘗試將兩條靠近的填充線連接到一段較短的牆。如果沒有找到短於此參數的牆,則填充線會只連接到單側牆,且該牆的長度受 infill_anchor 限制,但不會超過此參數的設定值。若此參數設定為 0,將啟用舊版填充連接算法,並產生與設定為 1000 和 0 相同的結果。"
msgid "0 (Simple connect)"
msgstr "0(簡單連接)"
@@ -14855,7 +14855,7 @@ msgstr "填充/牆 重疊"
# TODO: Review, changed by lang refactor. PR 14254
#, no-c-format, no-boost-format
msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "為了增強填充與周邊的結合,填充區域會略微擴大,與周邊產生重疊。此百分比值是基於稀疏填充的線寬來計算的。建議將該值設置在 10-15% 左右,以減少過擠出或材料堆積的可能性從而避免列印出粗糙的頂部表面。"
+msgstr "為了增強填充與周邊的結合,填充區域會略微擴大,與周邊產生重疊。此百分比值是基於稀疏填充的線寬來計算的。建議將該值設定在 10-15% 左右,以減少過擠出或材料堆積的可能性從而避免列印出粗糙的頂部表面。"
msgid "Top/Bottom solid infill/wall overlap"
msgstr "頂部/底部實心填充部分和周邊重疊區域設定"
@@ -15032,7 +15032,7 @@ msgid "This G-code is inserted at every layer change after the Z lift."
msgstr "在每次換層抬升Z高度之後插入這段 G-code"
msgid "Clumping detection G-code"
-msgstr "結塊檢測 G-code"
+msgstr "結塊偵測 G-code"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Silent Mode"
@@ -15040,18 +15040,18 @@ msgstr "支援靜音模式"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Whether the machine supports silent mode in which machine uses lower acceleration to print more quietly"
-msgstr "設備是否支援使用低加速度列印的靜音模式"
+msgstr "裝置是否支援使用低加速度列印的靜音模式"
msgid "Emit limits to G-code"
msgstr "將限制參數輸出至 G-code"
msgid "Machine limits"
-msgstr "設備限制"
+msgstr "裝置限制"
msgid ""
"If enabled, the machine limits will be emitted to G-code file.\n"
"This option will be ignored if the G-code flavor is set to Klipper."
-msgstr "啟用後,設備的限制參數將被寫入 G-code 檔案中。若 G-code 格式為 Klipper,該選項將無效。"
+msgstr "啟用後,裝置的限制參數將被寫入 G-code 檔案中。若 G-code 格式為 Klipper,該選項將無效。"
msgid "This G-code will be used as a code for the pause print. Users can insert pause G-code in the G-code viewer."
msgstr "這段 G-code 用於暫停列印操作。使用者可以在 G-code 預覽中手動插入暫停指令"
@@ -15144,14 +15144,14 @@ msgid "Maximum jerk of the E axis"
msgstr "E 軸最大抖動"
msgid "Maximum Junction Deviation"
-msgstr "最大結點偏差"
+msgstr "最大轉角偏差"
msgid ""
"Maximum junction deviation (M205 J, only apply if JD > 0 for Marlin Firmware\n"
"If your Marlin 2 printer uses Classic Jerk set this value to 0.)"
msgstr ""
-"最大連線偏差(M205 J,僅當 JD > 0 對於 Marlin 韌體時適用\n"
-"如果您的 Marlin 2 列印設備使用 Classic Jerk,請將此值設定為 0。)"
+"最大轉角偏差(M205 J,僅當 JD > 0 對於 Marlin 韌體時適用\n"
+"如果您的 Marlin 2 列印裝置使用 Classic Jerk,請將此值設定為 0。)"
msgid "Minimum speed for extruding"
msgstr "最小擠出速度"
@@ -15214,7 +15214,7 @@ msgid ""
"By reducing the speed of the outer wall to avoid the resonance zone of the printer, ringing on the surface of the model are avoided.\n"
"Please turn this option off when testing ringing."
msgstr ""
-"透過降低外壁的速度以避開列印設備的共振區,可以避免模型表面產生振穩。\n"
+"透過降低外壁的速度以避開列印裝置的共振區,可以避免模型表面產生振穩。\n"
"在測試振穩時,請關閉此選項。"
msgid "Min"
@@ -15338,7 +15338,7 @@ msgid "The part cooling fan speed may be increased when auto cooling is enabled.
msgstr "啟用自動冷卻時,可能會提高物件冷卻風扇的轉速。這是物件冷卻風扇的最大速度限制"
msgid "The highest printable layer height for the extruder. Used to limit the maximum layer height when enable adaptive layer height."
-msgstr "擠出機的最高可列印層高度。用於限制啟用自適應層高時的最大層高。"
+msgstr "擠出機的最高可列印層高度。用於限制啟用適應性層高時的最大層高。"
msgid "Extrusion rate smoothing"
msgstr "平滑擠出率"
@@ -15358,15 +15358,15 @@ msgid ""
"\n"
"Note: this parameter disables arc fitting."
msgstr ""
-"此參數可平滑列印設備從高流量(高速度/較大線寬)擠出過渡到低流量(低速度/較小線寬)擠出時的突變,反之亦然。\n"
+"此參數可平滑列印裝置從高流量(高速度/較大線寬)擠出過渡到低流量(低速度/較小線寬)擠出時的突變,反之亦然。\n"
"\n"
"它定義了擠出體積流量(mm³/s)隨時間變化的最大速率。較高的值允許更大的擠出率變化,從而實現更快的速度過渡。\n"
"\n"
"值為 0 時停用此功能。\n"
"\n"
-"對於高速、高流量的直驅列印設備(如 Bambu Lab 或 Voron),通常不需要此值。但在某些特徵速度差異較大的情況下,它可以提供一些邊際效益。例如,因懸空而大幅減速時。在這些情況下,建議使用約 300-350 mm³/s² 的較高值,因為這能提供足夠的平滑化以輔助壓力補償實現更平穩的流量過渡。\n"
+"對於高速、高流量的直驅列印裝置(如 Bambu Lab 或 Voron),通常不需要此值。但在某些特徵速度差異較大的情況下,它可以提供一些邊際效益。例如,因懸空而大幅減速時。在這些情況下,建議使用約 300-350 mm³/s² 的較高值,因為這能提供足夠的平滑化以輔助壓力補償實現更平穩的流量過渡。\n"
"\n"
-"對於沒有壓力補償的較慢列印設備,該值應設定得低得多。直驅擠出機建議從 10-15 mm³/s² 開始,遠端擠出機(Bowden)建議從 5-10 mm³/s² 開始。\n"
+"對於沒有壓力補償的較慢列印裝置,該值應設定得低得多。直驅擠出機建議從 10-15 mm³/s² 開始,遠端擠出機(Bowden)建議從 5-10 mm³/s² 開始。\n"
"\n"
"此功能在 PrusaSlicer 中稱為 Pressure Equalizer。\n"
"\n"
@@ -15385,9 +15385,9 @@ msgid ""
"\n"
"Allowed values: 0.5-5"
msgstr ""
-"較低的設定值能讓擠出速率變化更平滑,但會導致 G-code 檔案變大,並增加列印設備的運算負擔。\n"
+"較低的設定值能讓擠出速率變化更平滑,但會導致 G-code 檔案變大,並增加列印裝置的運算負擔。\n"
"\n"
-"預設值為 3,適用於大多數情況。如果您的列印設備在列印時出現停頓或卡頓,請提高此數值,以減少擠出速率的頻繁調整。\n"
+"預設值為 3,適用於大多數情況。如果您的列印裝置在列印時出現停頓或卡頓,請提高此數值,以減少擠出速率的頻繁調整。\n"
"\n"
"可設定範圍:0.5-5"
@@ -15405,7 +15405,7 @@ msgid ""
"Please enable auxiliary_fan in printer settings to use this feature. G-code command: M106 P2 S(0-255)"
msgstr ""
"輔助冷卻風扇的轉速。 列印期間,輔助風扇將以該速度運行,除了設定無須冷卻的前幾層除外\n"
-"請在列印設備設定中啟用輔助風扇才能使用此功能。 G碼指令:M106 P2 S(0-255)"
+"請在列印裝置設定中啟用輔助風扇才能使用此功能。 G碼指令:M106 P2 S(0-255)"
msgid "For the first"
msgstr "在最初的"
@@ -15424,13 +15424,13 @@ msgid "Special auxiliary cooling fan speed, effective only for the first x layer
msgstr "特殊輔助冷卻風扇速度,僅對前 x 層有效。"
msgid "The lowest printable layer height for the extruder. Used to limit the minimum layer height when enable adaptive layer height."
-msgstr "擠出機的最低可列印層高度。用於限制啟用自適應層高時的最小層高。"
+msgstr "擠出機的最低可列印層高度。用於限制啟用適應性層高時的最小層高。"
msgid "Min print speed"
msgstr "最小列印速度"
msgid "The minimum print speed to which the printer slows down to maintain the minimum layer time defined above when the slowdown for better layer cooling is enabled."
-msgstr "當啟用了為改善層冷卻而減速的功能時,這個參數設定列印設備能減速到的最低列印速度,以確保達到上面設定的最短層時間。"
+msgstr "當啟用了為改善層冷卻而減速的功能時,這個參數設定列印裝置能減速到的最低列印速度,以確保達到上面設定的最短層時間。"
msgid "The diameter of nozzle."
msgstr "噴嘴直徑"
@@ -15445,7 +15445,7 @@ msgid "Host Type"
msgstr "主機類型"
msgid "Orca Slicer can upload G-code files to a printer host. This field must contain the kind of the host."
-msgstr "Orca Slicer可以將 G-code 檔案上傳到列印設備。此欄位必須包含設備類型。"
+msgstr "Orca Slicer可以將 G-code 檔案上傳到列印裝置。此欄位必須包含裝置類型。"
msgid "Nozzle volume"
msgstr "噴嘴內腔體積"
@@ -15476,7 +15476,7 @@ msgid "Filament parking position"
msgstr "線材停放位置"
msgid "Distance of the extruder tip from the position where the filament is parked when unloaded. This should match the value in printer firmware."
-msgstr "退料時,擠出機齒尖與線材停放位置的距離。這應該與列印設備韌體中的值相符合。"
+msgstr "退料時,擠出機齒尖與線材停放位置的距離。這應該與列印裝置韌體中的值相符合。"
msgid "Extra loading distance"
msgstr "額外進料距離"
@@ -15527,7 +15527,7 @@ msgid "Maximum area of a hole in the base of the model before it's filled by con
msgstr "模型底部的孔洞在被圓錐形材料填充前所允許的最大面積。值為 0 將填充模型底部的所有孔洞。"
msgid "Detect overhang walls"
-msgstr "檢測懸空外牆"
+msgstr "偵測懸空外牆"
# TODO: Review, changed by lang refactor. PR 14254
#, c-format, boost-format
@@ -15600,19 +15600,19 @@ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify
msgstr ""
msgid "Printer type"
-msgstr "列印設備類型"
+msgstr "列印裝置類型"
msgid "Type of the printer."
-msgstr "列印設備類型"
+msgstr "列印裝置類型"
msgid "Printer notes"
-msgstr "列印設備備註"
+msgstr "列印裝置備註"
msgid "You can put your notes regarding the printer here."
-msgstr "可以將列印設備的備註填寫在此處。"
+msgstr "可以將列印裝置的備註填寫在此處。"
msgid "Printer variant"
-msgstr "列印設備型號"
+msgstr "列印裝置型號"
msgid "Raft contact Z distance"
msgstr "筏層 Z 間距"
@@ -15695,7 +15695,7 @@ msgid "Long retraction when cut (beta)"
msgstr "切斷時的長回抽(實驗性功能)"
msgid "Experimental feature: Retracting and cutting off the filament at a longer distance during changes to minimize purge. While this reduces flush significantly, it may also raise the risk of nozzle clogs or other printing problems."
-msgstr "實驗性功能。在線材切換時,通過更長距離的回抽和切斷操作來減少沖洗量。雖然這能大幅降低沖洗需求,但可能會提高噴嘴堵塞或其他列印問題的風險。"
+msgstr "實驗性功能。在線材切換時,透過更長距離的回抽和切斷操作來減少沖洗量。雖然這能大幅降低沖洗需求,但可能會提高噴嘴堵塞或其他列印問題的風險。"
msgid "Retraction distance when cut"
msgstr "切斷時的回抽距離"
@@ -15795,7 +15795,7 @@ msgid "Has filament switcher"
msgstr "具有線材切換器"
msgid "Printer has a filament switcher hardware (e.g., AMS)."
-msgstr "列印設備具有線材切換硬體(例如 AMS)。"
+msgstr "列印裝置具有線材切換硬體(例如 AMS)。"
msgid "Extra length on restart"
msgstr "額外回填長度"
@@ -15895,25 +15895,25 @@ msgid "Apply scarf joints only to smooth perimeters where traditional seams do n
msgstr "僅在平滑外牆使用斜拼接縫,用於傳統接縫無法在尖角處有效隱藏接縫的情況。"
msgid "Conditional angle threshold"
-msgstr "角度閾值條件"
+msgstr "角度門檻值條件"
msgid ""
"This option sets the threshold angle for applying a conditional scarf joint seam.\n"
"If the maximum angle within the perimeter loop exceeds this value (indicating the absence of sharp corners), a scarf joint seam will be used. The default value is 155°."
-msgstr "此選項設定斜拼接縫的角度閾值條件。當外牆迴圈內的最大角度超過該設定值(表示不存在尖角)時,將套用斜接縫接縫。預設值為 155°。"
+msgstr "此選項設定斜拼接縫的角度門檻值條件。當外牆迴圈內的最大角度超過該設定值(表示不存在尖角)時,將套用斜接縫接縫。預設值為 155°。"
msgid "Conditional overhang threshold"
-msgstr "懸空閾值條件"
+msgstr "懸空門檻值條件"
#, no-c-format, no-boost-format
msgid "This option determines the overhang threshold for the application of scarf joint seams. If the unsupported portion of the perimeter is less than this threshold, scarf joint seams will be applied. The default threshold is set at 40% of the external wall's width. Due to performance considerations, the degree of overhang is estimated."
-msgstr "此選項用於設定斜拼接縫的懸空閾值。當外牆未支撐的部分小於該閾值時,將套用斜拼接縫。預設閾值為外層牆寬度的 40%。為了考慮性能,此懸空程度為估算值。"
+msgstr "此選項用於設定斜拼接縫的懸空門檻值。當外牆未支撐的部分小於該門檻值時,將套用斜拼接縫。預設門檻值為外層牆寬度的 40%。為了考慮性能,此懸空程度為估算值。"
msgid "Scarf joint speed"
msgstr "斜拼接縫速度"
msgid "This option sets the printing speed for scarf joints. It is recommended to print scarf joints at a slow speed (less than 100 mm/s). It's also advisable to enable 'Extrusion rate smoothing' if the set speed varies significantly from the speed of the outer or inner walls. If the speed specified here is higher than the speed of the outer or inner walls, the printer will default to the slower of the two speeds. When specified as a percentage (e.g., 80%), the speed is calculated based on the respective outer or inner wall speed. The default value is set to 100%."
-msgstr "此選項用於設定斜拼接縫的列印速度,建議以較慢的速度進行列印(小於 100 mm/s)。若設定的速度與外牆或內牆速度差異較大,建議啟用『平滑擠出率』功能。若此處設定的速度高於外牆或內牆速度,列印設備將自動選擇兩者中較慢的速度。當以百分比(如 80%)指定時,該速度將基於外牆或內牆速度進行計算。預設值為 100%。"
+msgstr "此選項用於設定斜拼接縫的列印速度,建議以較慢的速度進行列印(小於 100 mm/s)。若設定的速度與外牆或內牆速度差異較大,建議啟用『平滑擠出率』功能。若此處設定的速度高於外牆或內牆速度,列印裝置將自動選擇兩者中較慢的速度。當以百分比(如 80%)指定時,該速度將基於外牆或內牆速度進行計算。預設值為 100%。"
msgid "Scarf joint flow ratio"
msgstr "斜拼接縫流量比"
@@ -16015,7 +16015,7 @@ msgid ""
"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
msgstr ""
-"防風罩可有效保護 ABS 或 ASA 列印物免受氣流影響,避免翹曲或脫離列印床。通常僅在開放式框架的列印設備(即無外殼)中需要使用。\n"
+"防風罩可有效保護 ABS 或 ASA 列印物免受氣流影響,避免翹曲或脫離列印床。通常僅在開放式框架的列印裝置(即無外殼)中需要使用。\n"
"\n"
"啟用後,Skirt 的高度將與列印物的最高點相同。若未啟用,則使用『Skirt 高度』的設定值。\n"
"注意:啟用擋風護盾時,Skirt 會按照設定的 Skirt 距離列印於物體周圍。如果同時啟用了耳狀 Brim,Skirt 可能會與其重疊。為避免此問題,請增加 Skirt 距離的設定值。\n"
@@ -16053,17 +16053,17 @@ msgid ""
"\n"
"Using a non-zero value is useful if the printer is set up to print without a prime line.\n"
"Final number of loops is not taking into account while arranging or validating objects distance. Increase loop number in such case."
-msgstr "列印 Skirt 時的最小擠出線材長度(單位:毫米)。設為 0 表示停用此功能。若列印設備設定為不使用沖洗線材,建議設定為非零值。注意,排列或驗證物件距離時,最終迴圈數不會被計算進去。如需更多迴圈,請手動增加迴圈數設定。"
+msgstr "列印 Skirt 時的最小擠出線材長度(單位:毫米)。設為 0 表示停用此功能。若列印裝置設定為不使用沖洗線材,建議設定為非零值。注意,排列或驗證物件距離時,最終迴圈數不會被計算進去。如需更多迴圈,請手動增加迴圈數設定。"
msgid "The printing speed in exported G-code will be slowed down when the estimated layer time is shorter than this value in order to get better cooling for these layers."
-msgstr "當預估的層列印時間低於該設定值時,導出的 G-code 中的列印速度會自動減慢,以提升該層的冷卻效果"
+msgstr "當預估的層列印時間低於該設定值時,匯出的 G-code 中的列印速度會自動減慢,以提升該層的冷卻效果"
msgid "Minimum sparse infill threshold"
msgstr "稀疏填充最小臨界值"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Sparse infill areas which are smaller than this threshold value are replaced by internal solid infill."
-msgstr "小於設定閾值的稀疏填充區域將替換為內部實心填充"
+msgstr "小於設定門檻值的稀疏填充區域將替換為內部實心填充"
msgid ""
"Filament to print internal solid infill.\n"
@@ -16157,10 +16157,10 @@ msgid "Preheat steps"
msgstr "預熱階段"
msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1."
-msgstr "插入多條預熱指令(例如:M104.1)。此功能僅適用於 Prusa XL。其他列印設備請將其設為 1。"
+msgstr "插入多條預熱指令(例如:M104.1)。此功能僅適用於 Prusa XL。其他列印裝置請將其設為 1。"
msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}."
-msgstr "G-code 寫在輸出檔案的最頂部,位於任何其他內容之前。對於新增列印設備韌體從檔案第一行讀取的中繼資料(例如估計列印時間、線材使用情況)很有用。支援 {print_time_sec} 和 {used_filament_length} 等預留位置。"
+msgstr "G-code 寫在輸出檔案的最頂部,位於任何其他內容之前。對於新增列印裝置韌體從檔案第一行讀取的中繼資料(例如估計列印時間、線材使用情況)很有用。支援 {print_time_sec} 和 {used_filament_length} 等預留位置。"
msgid "Start G-code"
msgstr "起始 G-code"
@@ -16183,7 +16183,7 @@ msgid "Manual Filament Change"
msgstr "手動更換線材"
msgid "Enable this option to omit the custom Change filament G-code only at the beginning of the print. The tool change command (e.g., T0) will be skipped throughout the entire print. This is useful for manual multi-material printing, where we use M600/PAUSE to trigger the manual filament change action."
-msgstr "啟用此選項後,自定義的換線 G-code 將僅在列印開始時被省略,整個列印過程中會跳過工具更換指令(例如:T0)。此功能適用於手動多材料列印,允許使用 M600/PAUSE 指令來觸發手動換線操作。"
+msgstr "啟用此選項後,自訂的換線 G-code 將僅在列印開始時被省略,整個列印過程中會跳過工具更換指令(例如:T0)。此功能適用於手動多材料列印,允許使用 M600/PAUSE 指令來觸發手動換線操作。"
msgid "Wipe tower type"
msgstr "擦拭塔類型"
@@ -16210,7 +16210,7 @@ msgid "Tool change on wipe tower"
msgstr "在換料塔上換刀"
msgid "Force the toolhead to travel to the wipe tower before issuing the tool change command (Tx). Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. By default Orca skips the travel on multi-toolhead machines because the firmware handles the head swap, which can result in the Tx command being issued above the printed part. Enable this option if you want the tool change to always be issued above the wipe tower instead."
-msgstr "強制工具頭在發出換刀指令 (Tx) 之前先移動到換料塔。僅適用於使用 Type 2 換料塔的多擠出機(多工具頭)列印設備。預設情況下,Orca 會在多工具頭機器上略過此空駛,因為韌體會處理工具頭交換,這可能導致 Tx 指令在已列印零件上方發出。若您希望換刀一律改在換料塔上方發出,請啟用此選項。"
+msgstr "強制工具頭在發出換刀指令 (Tx) 之前先移動到換料塔。僅適用於使用 Type 2 換料塔的多擠出機(多工具頭)列印裝置。預設情況下,Orca 會在多工具頭機器上略過此空駛,因為韌體會處理工具頭交換,這可能導致 Tx 指令在已列印零件上方發出。若您希望換刀一律改在換料塔上方發出,請啟用此選項。"
msgid "No sparse layers (beta)"
msgstr "取消稀疏層(Beta)"
@@ -16240,7 +16240,7 @@ msgid "Slice gap closing radius"
msgstr "切片間隙閉合半徑"
msgid "Cracks smaller than 2x gap closing radius are being filled during the triangle mesh slicing. The gap closing operation may reduce the final print resolution, therefore it is advisable to keep the value reasonably low."
-msgstr "在三角網格切片過程中,寬度小於 2 倍間隙閉合半徑的裂縫將被填補。由於間隙閉合操作可能降低列印的最終解析度,因此建議將該值設置為較低的合理範圍。"
+msgstr "在三角網格切片過程中,寬度小於 2 倍間隙閉合半徑的裂縫將被填補。由於間隙閉合操作可能降低列印的最終解析度,因此建議將該值設定為較低的合理範圍。"
msgid "Slicing Mode"
msgstr "切片模式"
@@ -16368,7 +16368,7 @@ msgid "This covers the top contact layer of the supports with loops. It is disab
msgstr "使用圈形走線覆蓋頂部接觸面。預設關閉。"
msgid "Support/raft interface"
-msgstr "支撐/筏層界面"
+msgstr "支撐/筏層介面"
msgid ""
"Filament to print support interface.\n"
@@ -16491,7 +16491,7 @@ msgid "Independent support layer height"
msgstr "獨立支撐層高"
msgid "Support layer uses layer height independent with object layer. This is to support customizing Z-gap and save print time. This option will be invalid when the prime tower is enabled."
-msgstr "支撐層的層厚設定可獨立於物件層高度,允許自定義 Z 間隙並縮短列印時間。此選項在啟用換料塔時將失效。"
+msgstr "支撐層的層厚設定可獨立於物件層高度,允許自訂 Z 間隙並縮短列印時間。此選項在啟用換料塔時將失效。"
msgid "Threshold angle"
msgstr "臨界值角度"
@@ -16502,13 +16502,13 @@ msgid ""
"Note: If set to 0, normal supports use the Threshold overlap instead, while tree supports fall back to a default value of 30."
msgstr ""
"將會為傾斜角度低於臨界值的懸垂產生支撐。數值越小,代表可以在不使用支撐的情況下列印更陡峭的懸垂結構。\n"
-"注意:若設為 0,一般支撐會改用閾值疊加比例,而樹狀支撐則會回退到預設值 30。"
+"注意:若設為 0,一般支撐會改用門檻值疊加比例,而樹狀支撐則會回退到預設值 30。"
msgid "Threshold overlap"
-msgstr "閾值疊加比例"
+msgstr "門檻值疊加比例"
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
-msgstr "當閾值角度設為 0 時,系統將為重疊比例低於該閾值的懸垂部分產生支撐。數值越小,代表可以在不使用支撐的情況下列印更陡峭的懸垂結構。"
+msgstr "當門檻值角度設為 0 時,系統將為重疊比例低於該門檻值的懸垂部分產生支撐。數值越小,代表可以在不使用支撐的情況下列印更陡峭的懸垂結構。"
msgid "Tree support branch angle"
msgstr "樹狀支撐分支角度"
@@ -16611,7 +16611,7 @@ msgid ""
" which sets the chamber temperature and waits until it is reached. In addition, it emits an M141 command at the end of the print to turn off the chamber heater, if present.\n"
"\n"
"This option relies on the firmware supporting the M191 and M141 commands either via macros or natively and is usually used when an active chamber heater is installed."
-msgstr "啟用此選項後,將自動控制機箱溫度。此功能會在執行『machine_start_gcode』之前發送 M191 指令,用於設定機箱溫度並等待達到設定值。此外,在列印結束時會傳送 M141 指令以關閉機箱加熱器(若設備有加熱器)。此功能需要韌體原生支援或通過宏指令支援 M191 和 M141 指令,通常用於配備主動機箱加熱器的列印設備。"
+msgstr "啟用此選項後,將自動控制機箱溫度。此功能會在執行『machine_start_gcode』之前傳送 M191 指令,用於設定機箱溫度並等待達到設定值。此外,在列印結束時會傳送 M141 指令以關閉機箱加熱器(若裝置有加熱器)。此功能需要韌體原生支援或透過宏指令支援 M191 和 M141 指令,通常用於配備主動機箱加熱器的列印裝置。"
msgid ""
"For high-temperature materials like ABS, ASA, PC, and PA, a higher chamber temperature can help suppress or reduce warping and potentially lead to higher interlayer bonding strength. However, at the same time, a higher chamber temperature will reduce the efficiency of air filtration for ABS and ASA.\n"
@@ -16619,7 +16619,7 @@ msgid ""
"For PLA, PETG, TPU, PVA, and other low-temperature materials, this option should be disabled (set to 0) as the chamber temperature should be low to avoid extruder clogging caused by material softening at the heat break.\n"
"\n"
"If enabled, this parameter also sets a G-code variable named chamber_temperature, which can be used to pass the desired chamber temperature to your print start macro, or a heat soak macro like this: PRINT_START (other variables) CHAMBER_TEMP=[chamber_temperature]. This may be useful if your printer does not support M141/M191 commands, or if you desire to handle heat soaking in the print start macro if no active chamber heater is installed."
-msgstr "對於 ABS、ASA、PC 和 PA 等高溫材料,較高的機箱溫度能有效抑制或減少翹曲,並可能提升層間結合強度。然而,較高的機箱溫度也會降低 ABS 和 ASA 的空氣過濾效率。對於 PLA、PETG、TPU、PVA 和其他低溫材料,建議將此選項停用(設為 0),因機箱溫度應保持較低,以避免因材料在熱端軟化而導致擠出機堵塞。啟用此選項後,會設置一個名為 chamber_temperature 的 G-code 變數,可用於將所需的機箱溫度傳遞給列印開始宏,或像以下的熱浸泡宏(預熱):PRINT_START (其他變數) CHAMBER_TEMP=[chamber_temperature]。這對於不支援 M141/M191 指令的列印設備,或者希望在列印開始宏中處理熱浸泡(預熱)但未安裝主動機箱加熱器的情況下非常實用。"
+msgstr "對於 ABS、ASA、PC 和 PA 等高溫材料,較高的機箱溫度能有效抑制或減少翹曲,並可能提升層間結合強度。然而,較高的機箱溫度也會降低 ABS 和 ASA 的空氣過濾效率。對於 PLA、PETG、TPU、PVA 和其他低溫材料,建議將此選項停用(設為 0),因機箱溫度應保持較低,以避免因材料在熱端軟化而導致擠出機堵塞。啟用此選項後,會設定一個名為 chamber_temperature 的 G-code 變數,可用於將所需的機箱溫度傳遞給列印開始宏,或像以下的熱浸泡宏(預熱):PRINT_START (其他變數) CHAMBER_TEMP=[chamber_temperature]。這對於不支援 M141/M191 指令的列印裝置,或者希望在列印開始宏中處理熱浸泡(預熱)但未安裝主動機箱加熱器的情況下非常實用。"
msgid ""
"This is the chamber temperature at which printing should start, while the chamber continues heating toward the \"Target\" chamber temperature. For example, set the Target to 60 and the Minimal to 50 to begin printing once the chamber reaches 50℃, without waiting for the full 60℃.\n"
@@ -16674,7 +16674,7 @@ msgstr "頂部外殼厚度"
# TODO: Review, changed by lang refactor. PR 14254
msgid "The number of top solid layers is increased when slicing if the thickness calculated by top shell layers is thinner than this value. This can avoid having too thin a shell when layer height is small. 0 means that this setting is disabled and thickness of top shell is determined simply by the number of top shell layers."
-msgstr "當切片時,如果通過頂部殼層計算的厚度小於設定值,將自動增加頂部實心層的數量,以避免層高較小時頂部殼層過薄。若設為 0,則停用此功能,頂部殼層厚度完全由設定的頂部殼層數決定"
+msgstr "當切片時,如果透過頂部殼層計算的厚度小於設定值,將自動增加頂部實心層的數量,以避免層高較小時頂部殼層過薄。若設為 0,則停用此功能,頂部殼層厚度完全由設定的頂部殼層數決定"
msgid "Separated infills"
msgstr ""
@@ -16731,7 +16731,7 @@ msgstr ""
"\n"
"根據擦拭操作持續的時間、擠出機/線材回抽設定的速度和距離,可能需要額外的回抽來收回剩餘的線材。\n"
"\n"
-"在以下的『擦拭前的回抽量』設定中設置一個值,將在擦拭之前執行任何額外的回抽操作;否則,將在擦拭之後執行。"
+"在以下的『擦拭前的回抽量』設定中設定一個值,將在擦拭之前執行任何額外的回抽操作;否則,將在擦拭之後執行。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects."
@@ -16817,7 +16817,7 @@ msgstr ""
"\n"
"提高此速度可能會影響換料塔的穩定性,並增加噴嘴與換料塔上凸起物的碰撞力。\n"
"\n"
-"在將此參數提高到預設值 90 mm/s 以上之前,請確保您的列印設備能夠在更高的速度下可靠地進行橋接,且工具更換時的溢出能被良好控制。\n"
+"在將此參數提高到預設值 90 mm/s 以上之前,請確保您的列印裝置能夠在更高的速度下可靠地進行橋接,且工具更換時的溢出能被良好控制。\n"
"\n"
"換料塔外牆始終使用內牆速度,不受此設定影響。"
@@ -16860,7 +16860,7 @@ msgid "The wall of prime tower will fillet."
msgstr "換料塔的牆體將使用圓角"
msgid "The extruder to use when printing perimeter of the wipe tower. Set to 0 to use the one that is available (non-soluble would be preferred)."
-msgstr "列印換料塔周長時使用的擠出機。設置為 0 將使用唯一的擠出機(盡量使用不可溶的材料)。"
+msgstr "列印換料塔周長時使用的擠出機。設定為 0 將使用唯一的擠出機(盡量使用不可溶的材料)。"
msgid "Purging volumes - load/unload volumes"
msgstr "清理量 - 進料/退料 量"
@@ -16878,13 +16878,13 @@ msgid "Enable tower interface features"
msgstr "啟用換料塔介面功能"
msgid "Enable optimized prime tower interface behavior when different materials meet."
-msgstr "當不同材料相遇時,啟用優化的換料塔介面行為。"
+msgstr "當不同材料相遇時,啟用最佳化的換料塔介面行為。"
msgid "Cool down from interface boost during prime tower"
msgstr "換料塔介面加速後冷卻"
msgid "When interface-layer temperature boost is active, set the nozzle back to print temperature at the start of the prime tower so it cools down during the tower."
-msgstr "當界面層溫度提升啟用時,在換料塔開始時將噴嘴恢復到列印溫度,使其在換料塔期間冷卻。"
+msgstr "當介面層溫度提升啟用時,在換料塔開始時將噴嘴恢復到列印溫度,使其在換料塔期間冷卻。"
msgid "Infill gap"
msgstr "填充間隙"
@@ -16925,7 +16925,7 @@ msgid "Idle temperature"
msgstr "閒置溫度"
msgid "Nozzle temperature when the tool is currently not used in multi-tool setups. This is only used when 'Ooze prevention' is active in Print Settings. Set to 0 to disable."
-msgstr "當工具頭在多工具頭設置中未使用時的噴嘴溫度。僅在『列印設定』中啟用『防止漏料』時有效。設置 0 為停用。"
+msgstr "當工具頭在多工具頭設定中未使用時的噴嘴溫度。僅在『列印設定』中啟用『防止漏料』時有效。設定 0 為停用。"
msgid "X-Y hole compensation"
msgstr "X-Y 孔洞尺寸補償"
@@ -16961,7 +16961,7 @@ msgid ""
"In mm or in % of the radius."
msgstr ""
"點與圓估算半徑的最大偏差範圍。\n"
-"由於圓柱體在匯出時通常由不同大小的三角形組成,點可能不會完全位於圓周上。此設定允許一定的容差,以便擴大檢測範圍。\n"
+"由於圓柱體在匯出時通常由不同大小的三角形組成,點可能不會完全位於圓周上。此設定允許一定的容差,以便擴大偵測範圍。\n"
"該值可使用毫米或半徑的百分比來表示。"
msgid "Polyhole twist"
@@ -16982,7 +16982,7 @@ msgid "G-code thumbnails"
msgstr "G-code 縮圖"
msgid "Picture sizes to be stored into a .gcode and .sl1 / .sl1s files, in the following format: \"XxY, XxY, ...\""
-msgstr "設定將存儲於 .gcode 和 .sl1 / .sl1s 檔案中,其圖片尺寸,格式為:「XxY, XxY, ...」"
+msgstr "設定將儲存於 .gcode 和 .sl1 / .sl1s 檔案中,其圖片尺寸,格式為:「XxY, XxY, ...」"
msgid "Format of G-code thumbnails"
msgstr "G-code 縮圖的格式"
@@ -16994,7 +16994,7 @@ msgid "Use relative E distances"
msgstr "使用相對 E 距離"
msgid "Relative extrusion is recommended when using \"label_objects\" option. Some extruders work better with this option unchecked (absolute extrusion mode). Wipe tower is only compatible with relative mode. It is recommended on most printers. Default is checked."
-msgstr "使用『label_objects』選項時,建議啟用相對擠出模式。一些擠出機在使用絕對擠出模式(取消勾選)時運行效果會更好。換料塔僅支援相對擠出模式,這也是大多數列印設備的建議模式。預設為啟用相對模式"
+msgstr "使用『label_objects』選項時,建議啟用相對擠出模式。一些擠出機在使用絕對擠出模式(取消勾選)時運行效果會更好。換料塔僅支援相對擠出模式,這也是大多數列印裝置的建議模式。預設為啟用相對模式"
# TODO: Review, changed by lang refactor. PR 14254
msgid "The classic wall generator produces walls with constant extrusion width and for very thin areas, gap-fill is used. The Arachne engine produces walls with variable extrusion width."
@@ -17044,7 +17044,7 @@ msgid ""
"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
"\n"
"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
-msgstr "調整此參數以避免列印短小且未封閉的牆體,這可能會延長列印時間。參數值越高,移除的牆體會越多且越長。注意:為避免模型外表面出現視覺裂縫,此設定不會影響頂面和底面。若需調整頂面判定的靈敏度,可修改進階設定中的『單層牆閾值』。『單層牆閾值』僅在此設置超過預設值 0.5 或啟用了單層牆頂面功能時可用。"
+msgstr "調整此參數以避免列印短小且未封閉的牆體,這可能會延長列印時間。參數值越高,移除的牆體會越多且越長。注意:為避免模型外表面出現視覺裂縫,此設定不會影響頂面和底面。若需調整頂面判定的靈敏度,可修改進階設定中的『單層牆門檻值』。『單層牆門檻值』僅在此設定超過預設值 0.5 或啟用了單層牆頂面功能時可用。"
msgid "Maximum wall resolution"
msgstr "最大牆解析度"
@@ -17089,13 +17089,13 @@ msgid "To prevent oozing, the nozzle will perform a reverse travel movement for
msgstr "為了防止溢料,預沖刷完成後,噴嘴會進行一段時間的反向空駛。該設定用於定義空駛時間。"
msgid "To prevent oozing, the nozzle temperature will be cooled during ramming. Therefore, the ramming time must be greater than the cooldown time. 0 means disabled."
-msgstr "為了防止溢料,預沖刷時會降低噴嘴溫度。因此,預沖刷時間必須大於冷卻時間。0 表示禁用。"
+msgstr "為了防止溢料,預沖刷時會降低噴嘴溫度。因此,預沖刷時間必須大於冷卻時間。0 表示停用。"
msgid "The maximum volumetric speed for ramming before extruder change, where -1 means using the maximum volumetric speed."
msgstr "換出擠出機前的最大預沖刷體積速度,-1 表示使用最大體積速度。"
msgid "To prevent oozing, the nozzle temperature will be cooled during ramming. Note: only a cooldown command and fan activation are triggered, reaching the target temperature is not guaranteed. 0 means disabled."
-msgstr "為防止溢料,預沖刷過程中噴嘴溫度會降低。注意:僅觸發冷卻指令並啟動風扇,不保證達到目標溫度。0 表示禁用。"
+msgstr "為防止溢料,預沖刷過程中噴嘴溫度會降低。注意:僅觸發冷卻指令並啟動風扇,不保證達到目標溫度。0 表示停用。"
msgid "The maximum volumetric speed for ramming before a hotend change, where -1 means using the maximum volumetric speed."
msgstr "熱端更換前的最大預沖刷體積速度,其中 -1 表示使用最大體積速度。"
@@ -17125,7 +17125,7 @@ msgid "Detect narrow internal solid infills"
msgstr "識別狹窄內部實心填充"
msgid "This option will auto-detect narrow internal solid infill areas. If enabled, the concentric pattern will be used for the area to speed up printing. Otherwise, the rectilinear pattern will be used by default."
-msgstr "此選項可自動檢測狹窄的內部實心填充區域。啟用後,系統會採用同心圖案以提升列印速度;若未啟用,則預設使用直線圖案進行填充。"
+msgstr "此選項可自動偵測狹窄的內部實心填充區域。啟用後,系統會採用同心圖案以提升列印速度;若未啟用,則預設使用直線圖案進行填充。"
msgid "invalid value "
msgstr "無效值"
@@ -17194,7 +17194,7 @@ msgid "Load first filament as default for those not loaded."
msgstr "將第一種線材設為預設,以供未載入的項目使用"
msgid "Minimum save"
-msgstr "最低保存"
+msgstr "最低儲存"
msgid "Export 3MF with minimum size."
msgstr "匯出最小尺寸的 3mf。"
@@ -17220,7 +17220,7 @@ msgid "Do not run any validity checks, such as G-code path conflicts check."
msgstr "不要執行任何有效性檢查,如 G-code 路徑衝突檢查。"
msgid "Normative check"
-msgstr "規範符合性檢測"
+msgstr "規範符合性偵測"
msgid "Check the normative items."
msgstr "檢查符合規範的項目。"
@@ -17300,7 +17300,7 @@ msgid "Load General Settings"
msgstr "載入一般設定"
msgid "Load process/machine settings from the specified file."
-msgstr "從指定檔案載入參數與列印設備設定"
+msgstr "從指定檔案載入參數與列印裝置設定"
msgid "Load Filament Settings"
msgstr "載入列印線材設定"
@@ -17321,11 +17321,11 @@ msgid "Clone objects in the load list."
msgstr "複製載入清單中的物件"
msgid "Load uptodate process/machine settings when using uptodate"
-msgstr "使用最新版本時載入最新的列印參數與設備設定"
+msgstr "使用最新版本時載入最新的列印參數與裝置設定"
# TODO: Review, changed by lang refactor. PR 14254
msgid "load up-to-date process/machine settings from the specified file when using up-to-date"
-msgstr "當使用最新版本時,從指定檔案載入最新的參數與列印設備設定"
+msgstr "當使用最新版本時,從指定檔案載入最新的參數與列印裝置設定"
msgid "Load uptodate filament settings when using uptodate"
msgstr "使用最新版本時載入最新的線材設定"
@@ -17334,16 +17334,16 @@ msgid "Load uptodate filament settings from the specified file when using uptoda
msgstr "當使用最新版本時,從指定檔案載入最新的列印線材設定"
msgid "Downward machines check"
-msgstr "向下相容列印設備檢查"
+msgstr "向下相容列印裝置檢查"
msgid "If enabled, check whether current machine downward compatible with the machines in the list."
-msgstr "若啟用,則檢查目前列印設備是否與列表中的列印設備向下相容"
+msgstr "若啟用,則檢查目前列印裝置是否與列表中的列印裝置向下相容"
msgid "Downward machines settings"
-msgstr "向下相容列印設備設定"
+msgstr "向下相容列印裝置設定"
msgid "The machine settings list needs to do downward checking."
-msgstr "列印設備設定清單需執行向下相容性檢測"
+msgstr "列印裝置設定清單需執行向下相容性偵測"
msgid "Load assemble list"
msgstr "載入組裝清單"
@@ -17416,7 +17416,7 @@ msgid "Skip modified G-code in 3MF"
msgstr "忽略 3MF 檔案內已修改的 G-code"
msgid "Skip the modified G-code in 3MF from printer or filament presets."
-msgstr "忽略 3MF 檔案內來自列印設備或線材預設的已修改 G-code"
+msgstr "忽略 3MF 檔案內來自列印裝置或線材預設的已修改 G-code"
msgid "MakerLab name"
msgstr "MakerLab 名稱"
@@ -17452,19 +17452,19 @@ msgid "Current Z-hop"
msgstr "目前 Z 抬升高度"
msgid "Contains Z-hop present at the beginning of the custom G-code block."
-msgstr "包含在自定義 G-code 區塊開頭的 Z 抬升動作。"
+msgstr "包含在自訂 G-code 區塊開頭的 Z 抬升動作。"
msgid "Position of the extruder at the beginning of the custom G-code block. If the custom G-code travels somewhere else, it should write to this variable so OrcaSlicer knows where it travels from when it gets control back."
-msgstr "擠出機在自定義 G-code 區塊開頭的位置。如果自定義 G-code 將擠出機移動到其他位置,應將該位置記錄到此變數中,以便 OrcaSlicer 在恢復控制時了解擠出機的移動起點。"
+msgstr "擠出機在自訂 G-code 區塊開頭的位置。如果自訂 G-code 將擠出機移動到其他位置,應將該位置記錄到此變數中,以便 OrcaSlicer 在恢復控制時了解擠出機的移動起點。"
msgid "Retraction state at the beginning of the custom G-code block. If the custom G-code moves the extruder axis, it should write to this variable so OrcaSlicer de-retracts correctly when it gets control back."
-msgstr "自定義 G-code 區塊開始時的回抽狀態。如果自定義 G-code 移動了擠出軸,應將該狀態記錄到此變數中,以確保 OrcaSlicer 在恢復控制時能正確執行回抽恢復動作。"
+msgstr "自訂 G-code 區塊開始時的回抽狀態。如果自訂 G-code 移動了擠出軸,應將該狀態記錄到此變數中,以確保 OrcaSlicer 在恢復控制時能正確執行回抽恢復動作。"
msgid "Extra de-retraction"
msgstr "額外返回抽"
msgid "Currently planned extra extruder priming after de-retraction."
-msgstr "目前計劃的額外擠出機加料,發生於回抽恢復後。"
+msgstr "目前計畫的額外擠出機加料,發生於回抽恢復後。"
msgid "Absolute E position"
msgstr "絕對擠出值"
@@ -17693,16 +17693,16 @@ msgid "Names of the filament presets used for slicing. The variable is a vector
msgstr "切片使用的各個擠出機的線材預設名稱。此變數是一個向量,包含每個擠出機相對應的名稱。"
msgid "Printer preset name"
-msgstr "列印設備預設名稱"
+msgstr "列印裝置預設名稱"
msgid "Name of the printer preset used for slicing."
-msgstr "用於切片的列印設備預設名稱。"
+msgstr "用於切片的列印裝置預設名稱。"
msgid "Physical printer name"
-msgstr "列印設備實際名稱"
+msgstr "列印裝置實際名稱"
msgid "Name of the physical printer used for slicing."
-msgstr "用於切片的印表設備名稱。"
+msgstr "用於切片的印表裝置名稱。"
msgid "Layer number"
msgstr "層數"
@@ -17769,7 +17769,7 @@ msgid "Slicing mesh"
msgstr "正在切片網格"
msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "未檢測到任何列印層。請檢查您的 STL 檔案是否需要修復,或者確認其尺寸與厚度,然後再重試。\n"
+msgstr "未偵測到任何列印層。請檢查您的 STL 檔案是否需要修復,或者確認其尺寸與厚度,然後再重試。\n"
msgid ""
"An object's XY size compensation will not be used because it is also color-painted.\n"
@@ -17868,8 +17868,8 @@ msgid ""
"The current firmware version of the printer does not support calibration.\n"
"Please upgrade the printer firmware."
msgstr ""
-"列印設備目前的韌體版本不支援校正。\n"
-"請升級列印設備韌體。"
+"列印裝置目前的韌體版本不支援校正。\n"
+"請升級列印裝置韌體。"
msgid "Calibration not supported"
msgstr "不支援校正"
@@ -17918,10 +17918,10 @@ msgid "Are you sure to cancel the current calibration and return to the home pag
msgstr "您確認要取消目前的校正並返回首頁嗎?"
msgid "No Printer Connected!"
-msgstr "沒有連接列印設備!"
+msgstr "沒有連線列印裝置!"
msgid "Printer is not connected yet."
-msgstr "列印設備尚未連接。"
+msgstr "列印裝置尚未連線。"
msgid "Please select filament to calibrate."
msgstr "請選擇要校正的線材。"
@@ -17933,7 +17933,7 @@ msgstr "輸入值必須為 3。"
msgid ""
"This machine type can only hold 16 historical results per nozzle. You can delete the existing historical results and then start calibration. Or you can continue the calibration, but you cannot create new calibration historical results.\n"
"Do you still want to continue the calibration?"
-msgstr "此機型每個噴嘴最多只能保存 16 條歷史記錄。您可以刪除現有記錄後再開始校正,或者選擇繼續校正,但無法新增新的校正記錄。您確定要繼續校正嗎?"
+msgstr "此機型每個噴嘴最多只能儲存 16 條歷史記錄。您可以刪除現有記錄後再開始校正,或者選擇繼續校正,但無法新增新的校正記錄。您確定要繼續校正嗎?"
#, c-format, boost-format
msgid "Only one of the results with the same name: %s will be saved. Are you sure you want to override the other results?"
@@ -17942,7 +17942,7 @@ msgstr "僅儲存一個同名結果:%s。您確認要覆蓋其他結果嗎?"
# TODO: Review, changed by lang refactor. PR 14254
#, c-format, boost-format
msgid "There is already a previous calibration result with the same name: %s. Only one result with a name is saved. Are you sure you want to overwrite the previous result?"
-msgstr "已經有一個同名的歷史校正結果:%s。僅保存同名結果中的其中一個。確定要覆寫歷史結果嗎?"
+msgstr "已經有一個同名的歷史校正結果:%s。僅儲存同名結果中的其中一個。確定要覆寫歷史結果嗎?"
#, c-format, boost-format
msgid ""
@@ -17955,16 +17955,16 @@ msgstr ""
# TODO: Review, changed by lang refactor. PR 14254
#, c-format, boost-format
msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "此機型每個噴嘴只能儲存 %d 筆歷史記錄。此結果將不會被保存。"
+msgstr "此機型每個噴嘴只能儲存 %d 筆歷史記錄。此結果將不會被儲存。"
msgid "Connecting to printer..."
-msgstr "正在連接列印設備..."
+msgstr "正在連線列印裝置..."
msgid "The failed test result has been dropped."
msgstr "測試失敗的結果已被刪除。"
msgid "Flow Dynamics Calibration result has been saved to the printer."
-msgstr "動態流量校正的結果已儲存至列印設備"
+msgstr "動態流量校正的結果已儲存至列印裝置"
msgid "Internal Error"
msgstr "內部錯誤"
@@ -17987,7 +17987,7 @@ msgid ""
"2. If the nozzle is worn out or replaced with a new one;\n"
"3. If the max volumetric speed or print temperature is changed in the filament setting."
msgstr ""
-"我們現在新增了針對不同線材的自動校正,這是完全自動化的,結果將儲存到列印設備中以供將來使用。僅在以下有限情況下才需要進行校正:\n"
+"我們現在新增了針對不同線材的自動校正,這是完全自動化的,結果將儲存到列印裝置中以供將來使用。僅在以下有限情況下才需要進行校正:\n"
"1. 如果更換不同品牌/型號的新線材或線材受潮;\n"
"2、噴嘴是否磨損或更換新噴嘴;\n"
"3. 如果在線材設定中更改了最大體積流量或列印溫度。"
@@ -18006,9 +18006,9 @@ msgid ""
msgstr ""
"請參考我們的 Wiki 頁面,了解「流體動力校正」的詳細資訊。\n"
"\n"
-"通常不需要進行校正。當您啟動單色/單材質列印,並在列印開始選單中勾選『流體動力校正』選項時,列印設備將按照舊方式,在列印前校正線材。當您啟動多色/多材質列印時,列印設備將在每次線材切換時使用預設的補償參數,這在大部分情況下都能得到良好的結果。\n"
+"通常不需要進行校正。當您啟動單色/單材質列印,並在列印開始選單中勾選『流體動力校正』選項時,列印裝置將按照舊方式,在列印前校正線材。當您啟動多色/多材質列印時,列印裝置將在每次線材切換時使用預設的補償參數,這在大部分情況下都能得到良好的結果。\n"
"\n"
-"請注意,有些情況可能會導致校正結果不可靠,例如列印板上的黏著力不足。您可以通過清洗印板板或塗抹膠水來改善黏著力。有關此主題的更多資訊,請參考我們的 Wiki。\n"
+"請注意,有些情況可能會導致校正結果不可靠,例如列印板上的黏著力不足。您可以透過清洗印板板或塗抹膠水來改善黏著力。有關此主題的更多資訊,請參考我們的 Wiki。\n"
"\n"
"在我們的測試中,校正結果存在約 10% 的誤差,這可能導致每次校正的結果不完全相同。我們仍在調查根本原因,並將在新的更新中進行改進。"
@@ -18032,7 +18032,7 @@ msgid "In addition, Flow Rate Calibration is crucial for foaming materials like
msgstr "此外,對於像用於遙控飛機的輕質發泡 PLA(LW-PLA)這樣的發泡線材,流量率校正非常重要。這些線材在加熱時會大幅膨脹,而校正提供了有用的流量率參考。"
msgid "Flow Rate Calibration measures the ratio of expected to actual extrusion volumes. The default setting works well in Bambu Lab printers and official filaments as they were pre-calibrated and fine-tuned. For a regular filament, you usually won't need to perform a Flow Rate Calibration unless you still see the listed defects after you have done other calibrations. For more details, please check out the wiki article."
-msgstr "流量率校正測量預期擠出體積與實際擠出體積之間的比率。預設設定在 Bambu Lab 列印設備和官方線材上表現良好,因為它們已經進行了預先校正和微調。對於普通的線材,通常情況下,您不需要執行流量率校正,除非在完成其他校正後仍然看到上述列出的缺陷。如需更多詳細資訊,請查閱 wiki 文章。"
+msgstr "流量率校正測量預期擠出體積與實際擠出體積之間的比率。預設設定在 Bambu Lab 列印裝置和官方線材上表現良好,因為它們已經進行了預先校正和微調。對於普通的線材,通常情況下,您不需要執行流量率校正,除非在完成其他校正後仍然看到上述列出的缺陷。如需更多詳細資訊,請查閱 wiki 文章。"
# TODO: Review, changed by lang refactor. PR 14254
msgid ""
@@ -18046,7 +18046,7 @@ msgstr ""
"\n"
"校正結果可能因每次校正或線材的不同而有所不同。我們仍在透過韌體更新不斷提高這種校正的準確性和相容性。\n"
"\n"
-"注意:流量率校正是一項先進的技術,只有完全理解其目的和影響的人才應嘗試。錯誤的使用可能導致列印品質不佳或損壞列印設備。請確保在執行之前仔細閱讀和理解此過程。"
+"注意:流量率校正是一項先進的技術,只有完全理解其目的和影響的人才應嘗試。錯誤的使用可能導致列印品質不佳或損壞列印裝置。請確保在執行之前仔細閱讀和理解此過程。"
msgid "When you need Max Volumetric Speed Calibration"
msgstr "當您需要最大體積流量校正時"
@@ -18073,7 +18073,7 @@ msgid "*We recommend you to add brand, materia, type, and even humidity level in
msgstr "*我們建議您在名稱中加入品牌、材料、類型,甚至濕度水平"
msgid "Please enter the name you want to save to printer."
-msgstr "請輸入要儲存到列印設備的名稱。"
+msgstr "請輸入要儲存到列印裝置的名稱。"
msgid "The name cannot exceed 40 characters."
msgstr "名稱不能超過40個字元。"
@@ -18162,11 +18162,11 @@ msgid "Synchronize nozzle and AMS information"
msgstr "同步噴嘴和 AMS 資訊"
msgid "Please connect the printer first before synchronizing."
-msgstr "請先連接列印設備,然後再同步。"
+msgstr "請先連線列印裝置,然後再同步。"
#, c-format, boost-format
msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "列印設備%s 噴嘴資訊尚未設定。請在進行校正之前對其進行配置。"
+msgstr "列印裝置%s 噴嘴資訊尚未設定。請在進行校正之前對其進行配置。"
msgid "AMS and nozzle information are synced"
msgstr "AMS 和噴嘴資訊同步"
@@ -18203,7 +18203,7 @@ msgid "TPU is not supported for Flow Dynamics Auto-Calibration."
msgstr "不支援 TPU 進行流量動態自動校正。"
msgid "Selected nozzle temperatures are incompatible. For multi-material printing, each filament's nozzle temperature must be within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
-msgstr "所選的噴嘴溫度不相容。進行多材料列印時,每種線材的噴嘴溫度都必須在其他線材的建議噴嘴溫度範圍內。否則可能會發生噴嘴堵塞或列印設備損壞。"
+msgstr "所選的噴嘴溫度不相容。進行多材料列印時,每種線材的噴嘴溫度都必須在其他線材的建議噴嘴溫度範圍內。否則可能會發生噴嘴堵塞或列印裝置損壞。"
msgid "Sync AMS and nozzle information"
msgstr "同步 AMS 和噴嘴資訊"
@@ -18221,7 +18221,7 @@ msgid "Step value"
msgstr "步進值"
msgid "The nozzle diameter has been synchronized from the printer Settings"
-msgstr "噴嘴直徑已從列印設備設定中同步"
+msgstr "噴嘴直徑已從列印裝置設定中同步"
msgid "From Volumetric Speed"
msgstr "從體積流量"
@@ -18258,7 +18258,7 @@ msgstr "操作"
# TODO: Review, changed by lang refactor. PR 14254
#, c-format, boost-format
msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "此設備型號每個噴嘴僅能儲存 %d 筆歷史結果。"
+msgstr "此裝置型號每個噴嘴僅能儲存 %d 筆歷史結果。"
msgid "Edit Flow Dynamics Calibration"
msgstr "編輯動態流量校正"
@@ -18295,7 +18295,7 @@ msgid "OctoPrint version"
msgstr "OctoPrint 版本"
msgid "Searching for devices"
-msgstr "正在尋找設備"
+msgstr "正在尋找裝置"
msgid "Finished"
msgstr "完成"
@@ -18516,7 +18516,7 @@ msgid ""
"This will use the printer's default or saved value."
msgstr ""
"建議:將“阻尼”設定為 0。\n"
-"這將使用列印設備的預設值或儲存的值。"
+"這將使用列印裝置的預設值或儲存的值。"
msgid ""
"Please input valid values:\n"
@@ -18578,21 +18578,21 @@ msgid ""
"Marlin 2 Junction Deviation detected:\n"
"To test Classic Jerk, set 'Maximum Junction Deviation' in Motion ability to 0."
msgstr ""
-"Marlin 2 檢測到連線偏差:\n"
-"要測試經典加加速度,請將運動能力中的“最大連線偏差”設定為 0。"
+"偵測到 Marlin 2 轉角偏差:\n"
+"要測試 Classic Jerk,請將運動能力中的「最大轉角偏差」設定為 0。"
msgid ""
"Marlin 2 Classic Jerk detected:\n"
"To test Junction Deviation, set 'Maximum Junction Deviation' in Motion ability to a value > 0."
msgstr ""
-"Marlin 2 Classic Jerk 檢測到:\n"
-"要測試連線偏差,請將運動能力中的“最大連線偏差”設定為 > 0 的值。"
+"偵測到 Marlin 2 Classic Jerk:\n"
+"要測試轉角偏差,請將運動能力中的「最大轉角偏差」設定為 > 0 的值。"
msgid ""
"RepRap detected: Jerk in mm/s.\n"
"OrcaSlicer will convert the values to mm/min when necessary."
msgstr ""
-"檢測到 RepRap:加加速度(以 mm/s 為單位)。\n"
+"偵測到 RepRap:加加速度(以 mm/s 為單位)。\n"
"OrcaSlicer 會在必要時將值轉換為毫米/分鐘。"
#, c-format, boost-format
@@ -18638,10 +18638,10 @@ msgid "Only materials of the same type can be selected."
msgstr "只能選取相同類型的材料。"
msgid "Send G-code to printer host"
-msgstr "傳送 G-code 到列印設備"
+msgstr "傳送 G-code 到列印裝置"
msgid "Upload to Printer Host with the following filename:"
-msgstr "使用下列檔案名稱上傳到列印設備:"
+msgstr "使用下列檔案名稱上傳到列印裝置:"
msgid "Use forward slashes ( / ) as a directory separator if needed."
msgstr "如有需要,請使用正斜線(/)作為目錄分隔符。"
@@ -18650,7 +18650,7 @@ msgid "Upload to storage"
msgstr "上傳到儲存單位"
msgid "Switch to Device tab after upload."
-msgstr "上傳後切換到設備分頁。"
+msgstr "上傳後切換到裝置分頁。"
#, c-format, boost-format
msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?"
@@ -18670,22 +18670,22 @@ msgstr "啟用 IFS"
#, c-format, boost-format
msgid "Detected %d IFS slots on printer."
-msgstr "在列印設備上偵測到 %d 個 IFS 插槽。"
+msgstr "在列印裝置上偵測到 %d 個 IFS 插槽。"
msgid "This printer does not report a material station."
-msgstr "此列印設備未回報材料站。"
+msgstr "此列印裝置未回報材料站。"
msgid "Unable to read IFS slots from printer."
-msgstr "無法從列印設備讀取 IFS 插槽。"
+msgstr "無法從列印裝置讀取 IFS 插槽。"
msgid "Loading IFS slots from printer..."
-msgstr "正在從列印設備載入 IFS 插槽..."
+msgstr "正在從列印裝置載入 IFS 插槽..."
msgid "Slice the plate first to get project material information."
msgstr "請先切片列印板以取得專案材料資訊。"
msgid "This plate uses multiple materials. Enable IFS and assign each tool to a printer slot."
-msgstr "此列印板使用多種材料。請啟用 IFS 並將每個工具指派至列印設備插槽。"
+msgstr "此列印板使用多種材料。請啟用 IFS 並將每個工具指派至列印裝置插槽。"
msgid "Each project material must be assigned to an IFS slot before printing."
msgstr "列印前,每個專案材料都必須指派到一個 IFS 插槽。"
@@ -18731,7 +18731,7 @@ msgid "Canceling"
msgstr "取消中"
msgid "Error uploading to print host"
-msgstr "上傳到列印設備時發生錯誤"
+msgstr "上傳到列印裝置時發生錯誤"
msgid "The selected bed type does not match the file. Please confirm before starting the print."
msgstr "選擇的床面類型與檔案不符,請在開始列印前確認。"
@@ -18747,7 +18747,7 @@ msgstr "平滑列印板(A面)"
#, c-format, boost-format
msgid "Printer: %s"
-msgstr "列印設備:%s"
+msgstr "列印裝置:%s"
msgid "Calibrate before printing"
msgstr "列印前校正"
@@ -18849,7 +18849,7 @@ msgid "Add Filament Preset under this filament"
msgstr "在此線材下新增線材預設"
msgid "We could create the filament presets for your following printer:"
-msgstr "可以為您以下的列印設備建立線材預設:"
+msgstr "可以為您以下的列印裝置建立線材預設:"
msgid "Select Vendor"
msgstr "選擇廠牌"
@@ -18908,7 +18908,7 @@ msgid "The vendor cannot be a number; please re-enter."
msgstr "廠牌不能為數字,請重新輸入。"
msgid "You have not selected a printer or preset yet. Please select at least one."
-msgstr "尚未選擇列印設備或預設,請至少選擇一個。"
+msgstr "尚未選擇列印裝置或預設,請至少選擇一個。"
# TODO: Review, changed by lang refactor. PR 14254
#, c-format, boost-format
@@ -18933,23 +18933,23 @@ msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you selected\".\n"
"To add preset for more printers, please go to printer selection"
msgstr ""
-"將會將預設名稱重新命名為「廠牌 型號 序號 @選擇的列印設備」。\n"
-"若要為更多列印設備新增預設,請前往列印設備選擇頁面"
+"將會將預設名稱重新命名為「廠牌 型號 序號 @選擇的列印裝置」。\n"
+"若要為更多列印裝置新增預設,請前往列印裝置選擇頁面"
msgid "Create Printer/Nozzle"
-msgstr "建立列印設備/噴嘴"
+msgstr "建立列印裝置/噴嘴"
msgid "Create Printer"
-msgstr "建立列印設備"
+msgstr "建立列印裝置"
msgid "Create Nozzle for Existing Printer"
-msgstr "為現有列印設備建立噴嘴"
+msgstr "為現有列印裝置建立噴嘴"
msgid "Create from Template"
msgstr "從範本建立"
msgid "Create Based on Current Printer"
-msgstr "依據目前列印設備建立"
+msgstr "依據目前列印裝置建立"
msgid "Import Preset"
msgstr "匯入預設"
@@ -18962,7 +18962,7 @@ msgid "The model was not found; please reselect vendor."
msgstr "找不到該型號,請重新選擇廠牌。"
msgid "Select Printer"
-msgstr "選擇列印設備"
+msgstr "選擇列印裝置"
msgid "Select Model"
msgstr "選擇型號"
@@ -18971,7 +18971,7 @@ msgid "Input Custom Model"
msgstr "輸入自訂型號"
msgid "Can't find my printer model"
-msgstr "找不到我的列印設備型號"
+msgstr "找不到我的列印裝置型號"
msgid "Input Custom Nozzle Diameter"
msgstr "輸入自訂噴嘴直徑"
@@ -19003,7 +19003,7 @@ msgid "Preset path was not found; please reselect vendor."
msgstr "找不到預設路徑,請重新選擇廠牌。"
msgid "The printer model was not found, please reselect."
-msgstr "找不到列印設備型號,請重新選擇。"
+msgstr "找不到列印裝置型號,請重新選擇。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "The nozzle diameter was not found; please reselect."
@@ -19011,10 +19011,10 @@ msgstr "找不到噴嘴直徑,請重新選擇。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "The printer preset was not found; please reselect."
-msgstr "未找到列印設備預設設定,請重新選擇。"
+msgstr "未找到列印裝置預設設定,請重新選擇。"
msgid "Printer Preset"
-msgstr "列印設備預設設定"
+msgstr "列印裝置預設設定"
msgid "Filament Preset Template"
msgstr "線材預設設定範本"
@@ -19023,7 +19023,7 @@ msgid "Process Preset Template"
msgstr "處理預設設定範本"
msgid "You have not yet chosen which printer preset to create based on. Please choose the vendor and model of the printer"
-msgstr "尚未選擇要基於哪個列印設備預設設定來建立,請選擇列印設備的廠牌和型號"
+msgstr "尚未選擇要基於哪個列印裝置預設設定來建立,請選擇列印裝置的廠牌和型號"
# TODO: Review, changed by lang refactor. PR 14254
msgid "You have entered a disallowed character in the printable area section on the first page. Please use only numbers."
@@ -19036,9 +19036,9 @@ msgid ""
"and filament and process presets without the same preset name will be reserved.\n"
"\tCancel: Do not create a preset; return to the creation interface."
msgstr ""
-"建立的列印設備預設設定已經有相同名稱的預設設定。是否要覆蓋它?\n"
-"\t是:覆蓋相同名稱的列印設備預設設定,並重新建立名稱相同的線材和處理預設設定,名稱不同的線材和處理預設設定將被保留。\n"
-" \t取消:不建立預設設定,返回建立界面。"
+"建立的列印裝置預設設定已經有相同名稱的預設設定。是否要覆蓋它?\n"
+"\t是:覆蓋相同名稱的列印裝置預設設定,並重新建立名稱相同的線材和處理預設設定,名稱不同的線材和處理預設設定將被保留。\n"
+" \t取消:不建立預設設定,返回建立介面。"
msgid "You need to select at least one filament preset."
msgstr "需要至少選擇一個線材預設設定。"
@@ -19064,17 +19064,17 @@ msgid "You have not selected the vendor and model or input the custom vendor and
msgstr "您尚未選擇廠牌和型號,或未輸入自訂的廠牌和型號。"
msgid "There may be escape characters in the custom printer vendor or model. Please delete and re-enter."
-msgstr "自訂列印設備廠牌或型號中可能包含轉義字符。請刪除後重新輸入。"
+msgstr "自訂列印裝置廠牌或型號中可能包含跳脫字元。請刪除後重新輸入。"
msgid "All inputs in the custom printer vendor or model are spaces. Please re-enter."
-msgstr "自訂列印設備廠牌或型號的所有輸入為空格。請重新輸入。"
+msgstr "自訂列印裝置廠牌或型號的所有輸入為空格。請重新輸入。"
msgid "Please check bed printable shape and origin input."
msgstr "請檢查熱床可列印區域形狀和原點設定。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "You have not yet selected the printer to replace the nozzle for; please choose a printer."
-msgstr "尚未選擇要更換噴嘴的列印設備,請選擇。"
+msgstr "尚未選擇要更換噴嘴的列印裝置,請選擇。"
msgid "The entered nozzle diameter is invalid, please re-enter:\n"
msgstr "輸入的噴嘴直徑無效,請重新輸入:\n"
@@ -19082,7 +19082,7 @@ msgstr "輸入的噴嘴直徑無效,請重新輸入:\n"
msgid ""
"The system preset does not allow creation. \n"
"Please re-enter the printer model or nozzle diameter."
-msgstr "系統預設不允許建立。 請重新輸入列印設備型號或噴嘴直徑。"
+msgstr "系統預設不允許建立。 請重新輸入列印裝置型號或噴嘴直徑。"
msgid ""
"\n"
@@ -19091,7 +19091,7 @@ msgid ""
msgstr ""
"\n"
"\n"
-"此列印設備可用的噴嘴設定檔:"
+"此列印裝置可用的噴嘴設定檔:"
msgid ""
"\n"
@@ -19103,16 +19103,16 @@ msgstr ""
"選擇「是」以切換現有預設:"
msgid "Printer Created Successfully"
-msgstr "列印設備建立成功"
+msgstr "列印裝置建立成功"
msgid "Filament Created Successfully"
msgstr "線材建立成功"
msgid "Printer Created"
-msgstr "列印設備建立完成"
+msgstr "列印裝置建立完成"
msgid "Please go to printer settings to edit your presets"
-msgstr "請前往列印設備設定編輯您的預設設定"
+msgstr "請前往列印裝置設定編輯您的預設設定"
msgid "Filament Created"
msgstr "線材建立完成"
@@ -19134,19 +19134,19 @@ msgstr ""
"\n"
"\n"
"Orca 偵測到您的使用者預設同步功能尚未啟用,這可能導致線材設定在裝置頁面上無法正常使用。\n"
-"請點擊『同步使用者預設』以啟用同步功能。"
+"請點選『同步使用者預設』以啟用同步功能。"
msgid "Printer Setting"
-msgstr "列印設備設定"
+msgstr "列印裝置設定"
msgid "Printer config bundle(.orca_printer)"
-msgstr "列印設備設定檔 (.orca_printer)"
+msgstr "列印裝置設定檔 (.orca_printer)"
msgid "Filament bundle(.orca_filament)"
msgstr "線材設定檔 (.orca_filament)"
msgid "Printer presets(.zip)"
-msgstr "列印設備預設設定檔 (.zip)"
+msgstr "列印裝置預設設定檔 (.zip)"
msgid "Filament presets(.zip)"
msgstr "線材預設設定檔 (.zip)"
@@ -19167,7 +19167,7 @@ msgid "finalize fail"
msgstr "失敗"
msgid "open zip written fail"
-msgstr "打開 zip 檔案失敗"
+msgstr "開啟 zip 檔案失敗"
msgid "Export successful"
msgstr "匯出成功"
@@ -19179,7 +19179,7 @@ msgid ""
"If not, a time suffix will be added, and you can modify the name after creation."
msgstr ""
"目前目錄中已存在 '%s' 資料夾。您是否要清除它並重新建立?\n"
-"如果不想清除,將會加上時間後綴,並且您可以在建立後修改名稱。"
+"如果不想清除,將會加上時間字尾,並且您可以在建立後修改名稱。"
#, c-format, boost-format
msgid ""
@@ -19195,7 +19195,7 @@ msgid ""
"Printer and all the filament and process presets that belongs to the printer.\n"
"Can be shared with others."
msgstr ""
-"列印設備及所有屬於該列印設備的線材和處理預設設定。 \n"
+"列印裝置及所有屬於該列印裝置的線材和處理預設設定。 \n"
"可以與他人分享。"
msgid ""
@@ -19207,13 +19207,13 @@ msgstr ""
# TODO: Review, changed by lang refactor. PR 14254
msgid "Only display printers with changes to printer, filament, and process presets are displayed."
-msgstr "僅顯示對列印設備、線材和處理預設設定有變更的列印設備名稱。"
+msgstr "僅顯示對列印裝置、線材和處理預設設定有變更的列印裝置名稱。"
msgid "Only display the filament names with changes to filament presets."
msgstr "僅顯示對線材預設設定有變更的線材名稱。"
msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip."
-msgstr "只有具有使用者列印設備預設設定的列印設備名稱會顯示,您選擇的每個預設設定將以 zip 檔案格式匯出。"
+msgstr "只有具有使用者列印裝置預設設定的列印裝置名稱會顯示,您選擇的每個預設設定將以 zip 檔案格式匯出。"
msgid ""
"Only the filament names with user filament presets will be displayed, \n"
@@ -19226,11 +19226,11 @@ msgid ""
"Only printer names with changed process presets will be displayed, \n"
"and all user process presets in each printer name you select will be exported as a zip."
msgstr ""
-"只有具有變更過處理預設設定的列印設備名稱會顯示,\n"
-"您選擇的每個列印設備名稱中的所有使用者處理預設設定將以 zip 檔案格式匯出。"
+"只有具有變更過處理預設設定的列印裝置名稱會顯示,\n"
+"您選擇的每個列印裝置名稱中的所有使用者處理預設設定將以 zip 檔案格式匯出。"
msgid "Please select at least one printer or filament."
-msgstr "請至少選擇一個列印設備或線材。"
+msgstr "請至少選擇一個列印裝置或線材。"
# TODO: Review, changed by lang refactor. PR 14254
msgid "Please select a preset type you want to export"
@@ -19272,7 +19272,7 @@ msgid ""
"If you are using this filament on your printer, please reset the filament information for that slot."
msgstr ""
"所有屬於此線材的預設設定將被刪除。\n"
-"如果您正在列印設備上使用此線材,請重新設置該插槽的線材資訊。"
+"如果您正在列印裝置上使用此線材,請重新設定該插槽的線材資訊。"
msgid "Delete filament"
msgstr "刪除線材"
@@ -19281,7 +19281,7 @@ msgid "Add Preset"
msgstr "新增預設設定"
msgid "Add preset for new printer"
-msgstr "為新列印設備新增預設設定"
+msgstr "為新列印裝置新增預設設定"
msgid "Copy preset from filament"
msgstr "從線材複製預設設定"
@@ -19297,7 +19297,7 @@ msgstr "編輯預設設定"
# TODO: Review, changed by lang refactor. PR 14254
msgid "For more information, please check out our Wiki"
-msgstr "如需更多資訊,請查看 Wiki"
+msgstr "如需更多資訊,請檢視 Wiki"
msgid "Wiki"
msgstr "Wiki"
@@ -19312,28 +19312,28 @@ msgid ""
"The printer nozzle information has not been set.\n"
"Please configure it before proceeding with the calibration."
msgstr ""
-"尚未設定列印設備噴嘴資訊。\n"
+"尚未設定列印裝置噴嘴資訊。\n"
"請在進行校正之前對其進行配置。"
msgid ""
"The nozzle type does not match the actual printer nozzle type.\n"
"Please click the Sync button above and restart the calibration."
msgstr ""
-"噴嘴類型與實際列印設備噴嘴類型不匹配。\n"
-"請單擊上面的同步按鈕並重新啟動校正。"
+"噴嘴類型與實際列印裝置噴嘴類型不匹配。\n"
+"請點選上面的同步按鈕並重新啟動校正。"
#, c-format, boost-format
msgid "Printing %1s material with %2s nozzle may cause nozzle damage."
msgstr "使用 %1s 材料搭配 %2s 噴嘴列印可能會損壞噴嘴。"
msgid "Need select printer"
-msgstr "需要選擇列印設備"
+msgstr "需要選擇列印裝置"
msgid "The start, end or step is not valid value."
msgstr "開始、結束或步距不是有效值。"
msgid "The number of printer extruders and the printer selected for calibration does not match."
-msgstr "列印設備擠出機的數量與選擇進行校正的列印設備的數量不匹配。"
+msgstr "列印裝置擠出機的數量與選擇進行校正的列印裝置的數量不匹配。"
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
@@ -19344,44 +19344,44 @@ msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
"Please click the Sync button above and restart the calibration."
msgstr ""
-"當前選擇的%s 擠出機噴嘴直徑與實際噴嘴直徑不符。\n"
-"請單擊上面的同步按鈕並重新啟動校正。"
+"目前選擇的%s 擠出機噴嘴直徑與實際噴嘴直徑不符。\n"
+"請點選上面的同步按鈕並重新啟動校正。"
msgid ""
"The nozzle diameter does not match the actual printer nozzle diameter.\n"
"Please click the Sync button above and restart the calibration."
msgstr ""
-"噴嘴直徑與實際列印設備噴嘴直徑不匹配。\n"
-"請單擊上面的同步按鈕並重新啟動校正。"
+"噴嘴直徑與實際列印裝置噴嘴直徑不匹配。\n"
+"請點選上面的同步按鈕並重新啟動校正。"
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
"Please click the Sync button above and restart the calibration."
msgstr ""
-"%s 擠出機當前選擇的噴嘴類型與實際列印設備噴嘴類型不匹配。\n"
-"請單擊上面的同步按鈕並重新啟動校正。"
+"%s 擠出機目前選擇的噴嘴類型與實際列印裝置噴嘴類型不匹配。\n"
+"請點選上面的同步按鈕並重新啟動校正。"
msgid "Unable to calibrate: maybe because the set calibration value range is too large, or the step is too small"
msgstr "無法校正:可能是設定的校正值範圍太大,或步距太小"
msgid "Physical Printer"
-msgstr "實體列印設備"
+msgstr "實體列印裝置"
msgid "Print Host upload"
msgstr "列印主機上傳"
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
-msgstr "選擇列印設備通訊的網路代理實施。可用代理在啟動時註冊。"
+msgstr "選擇列印裝置通訊的網路代理實施。可用代理在啟動時註冊。"
msgid "Select a Flashforge printer"
-msgstr "選取 Flashforge 列印設備"
+msgstr "選取 Flashforge 列印裝置"
msgid "Discovered Printers"
-msgstr "已發現的列印設備"
+msgstr "已發現的列印裝置"
msgid "Could not get a valid Printer Host reference"
-msgstr "無法獲得有效的列印設備主機參考資料"
+msgstr "無法獲得有效的列印裝置主機參考資料"
msgid "Valid session not detected. Proceed with login to 3DPrinterOS?"
msgstr "未偵測到有效的工作階段。要繼續登入 3DPrinterOS 嗎?"
@@ -19393,10 +19393,10 @@ msgid "Are you sure to log out?"
msgstr "確認要登出嗎?"
msgid "View print host webui in Device tab"
-msgstr "在設備選項卡中查看列印主機的 Web UI"
+msgstr "在裝置頁籤中檢視列印主機的 Web UI"
msgid "Replace the BambuLab's device tab with print host webui"
-msgstr "將 BambuLab 的設備選項卡替換為列印主機的 Web UI"
+msgstr "將 BambuLab 的裝置頁籤替換為列印主機的 Web UI"
msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self-signed certificate."
msgstr "HTTPS CA 憑證檔案是可選的。 僅當您使用具有自行簽證的 HTTPS 時才需要它。"
@@ -19418,7 +19418,7 @@ msgid "Login/Test"
msgstr "登入/測試"
msgid "Connection to printers connected via the print host failed."
-msgstr "經由列印主機連接的列印設備連接失敗。"
+msgstr "經由列印主機連線的列印裝置連線失敗。"
msgid "Detect Creality K-series printer"
msgstr ""
@@ -19556,10 +19556,10 @@ msgid "Project:"
msgstr "專案:"
msgid "Printer type:"
-msgstr "列印設備類型:"
+msgstr "列印裝置類型:"
msgid "Printer type not found, please select manually."
-msgstr "找不到列印設備類型,請手動選取。"
+msgstr "找不到列印裝置類型,請手動選取。"
msgid "Authorizing..."
msgstr "授權中..."
@@ -19584,19 +19584,19 @@ msgid "Mismatched type of print host: %s"
msgstr "列印主機類型不符:%s"
msgid "Connection to AstroBox is working correctly."
-msgstr "與 AstroBox 的連接工作正常。"
+msgstr "與 AstroBox 的連線工作正常。"
msgid "Could not connect to AstroBox"
-msgstr "無法連接到 AstroBox"
+msgstr "無法連線到 AstroBox"
msgid "Note: AstroBox version 1.1.0 or higher is required."
msgstr "注意:AstroBox 版本至少需要 1.1.0。"
msgid "Connection to Duet is working correctly."
-msgstr "與 Duet 的連接工作正常。"
+msgstr "與 Duet 的連線工作正常。"
msgid "Could not connect to Duet"
-msgstr "無法連接到 Duet"
+msgstr "無法連線到 Duet"
msgid "Unknown error occurred"
msgstr "發生未知的錯誤"
@@ -19611,19 +19611,19 @@ msgid "Upload not enabled on FlashAir card."
msgstr "FlashAir 卡上未啟用上傳。"
msgid "Connection to FlashAir is working correctly and upload is enabled."
-msgstr "與 FlashAir 的連接工作正常並啟用上傳。"
+msgstr "與 FlashAir 的連線工作正常並啟用上傳。"
msgid "Could not connect to FlashAir"
-msgstr "無法連接到 FlashAir"
+msgstr "無法連線到 FlashAir"
msgid "Note: FlashAir with firmware 2.00.02 or newer and activated upload function is required."
msgstr "注意:FlashAir 需要韌體為 2.00.02 或更新版本並啟動上傳功能。"
msgid "Connection to MKS is working correctly."
-msgstr "成功連接到 MKS。"
+msgstr "成功連線到 MKS。"
msgid "Could not connect to MKS"
-msgstr "無法連接到 MKS"
+msgstr "無法連線到 MKS"
msgid "Connection to Moonraker is working correctly."
msgstr ""
@@ -19639,28 +19639,28 @@ msgid "Could not parse Moonraker server response: %s"
msgstr ""
msgid "Connection to OctoPrint is working correctly."
-msgstr "與 OctoPrint 的連接工作正常。"
+msgstr "與 OctoPrint 的連線工作正常。"
msgid "Could not connect to OctoPrint"
-msgstr "無法連接到 OctoPrint"
+msgstr "無法連線到 OctoPrint"
msgid "Note: OctoPrint version 1.1.0 or higher is required."
msgstr "注意:OctoPrint 版本至少需要 1.1.0。"
msgid "Connection to Prusa SL1 / SL1S is working correctly."
-msgstr "與 Prusa SL1 / SL1S 的連接工作正常。"
+msgstr "與 Prusa SL1 / SL1S 的連線工作正常。"
msgid "Could not connect to Prusa SLA"
-msgstr "無法連接到 Prusa SLA"
+msgstr "無法連線到 Prusa SLA"
msgid "Connection to PrusaLink is working correctly."
-msgstr "與 PrusaLink 的連接工作正常。"
+msgstr "與 PrusaLink 的連線工作正常。"
msgid "Could not connect to PrusaLink"
-msgstr "無法連接到 PrusaLink"
+msgstr "無法連線到 PrusaLink"
msgid "Storages found"
-msgstr "找到存儲空間"
+msgstr "找到儲存空間"
#. TRN %1% = storage path
#, boost-format
@@ -19675,19 +19675,19 @@ msgstr "%1%:沒有可用空間"
#. TRN %1% = host
#, boost-format
msgid "Upload has failed. There is no suitable storage found at %1%."
-msgstr "上傳失敗。未找到適當的存儲位置在 %1%。"
+msgstr "上傳失敗。未找到適當的儲存位置在 %1%。"
msgid "Connection to Prusa Connect is working correctly."
-msgstr "成功連接到 Prusa Connect。"
+msgstr "成功連線到 Prusa Connect。"
msgid "Could not connect to Prusa Connect"
-msgstr "無法連接到 Prusa Connect"
+msgstr "無法連線到 Prusa Connect"
msgid "Connection to Repetier is working correctly."
-msgstr "與 Repetier 的連接工作正常。"
+msgstr "與 Repetier 的連線工作正常。"
msgid "Could not connect to Repetier"
-msgstr "無法連接到 Repetier"
+msgstr "無法連線到 Repetier"
msgid "Note: Repetier version 0.90.0 or higher is required."
msgstr "注意:Repetier 版本至少需要 0.90.0。"
@@ -19716,7 +19716,7 @@ msgid ""
"Message body: \"%1%\"\n"
"Error: \"%2%\""
msgstr ""
-"主機列印設備例舉失敗。\n"
+"主機列印裝置例舉失敗。\n"
"訊息內容:「%1%」\n"
"錯誤碼:「%2%」"
@@ -19883,25 +19883,25 @@ msgid "There is no device available to send printing."
msgstr "沒有可用的機臺可以傳送列印。"
msgid "The number of printers in use simultaneously cannot be equal to 0."
-msgstr "同時使用的列印設備數量不能為 0。"
+msgstr "同時使用的列印裝置數量不能為 0。"
msgid "Use External Spool"
msgstr "使用外掛線盤"
msgid "Select Printers"
-msgstr "選擇列印設備"
+msgstr "選擇列印裝置"
msgid "Device Name"
-msgstr "列印設備名稱"
+msgstr "列印裝置名稱"
msgid "Device Status"
-msgstr "列印設備狀態"
+msgstr "列印裝置狀態"
msgid "AMS Status"
msgstr "AMS 狀態"
msgid "Please select the devices you would like to manage here (up to 6 devices)"
-msgstr "請選擇要管理的設備(最多6台)"
+msgstr "請選擇要管理的裝置(最多6台)"
msgid "Printing Options"
msgstr "列印選項"
@@ -19916,7 +19916,7 @@ msgid "Send to"
msgstr "傳送到"
msgid "printers at the same time. (It depends on how many devices can undergo heating at the same time.)"
-msgstr "可同時運行的列印設備數量。(取決於能同時加熱的設備數量而定。)"
+msgstr "可同時運行的列印裝置數量。(取決於能同時加熱的裝置數量而定。)"
msgid "Wait"
msgstr "等待"
@@ -19932,14 +19932,14 @@ msgid "Task Sent"
msgstr "傳送完成"
msgid "Edit multiple printers"
-msgstr "編輯多個列印設備"
+msgstr "編輯多個列印裝置"
msgid "Select connected printers (0/6)"
-msgstr "選擇已連接列印設備 (0/6)"
+msgstr "選擇已連線列印裝置 (0/6)"
#, c-format, boost-format
msgid "Select Connected Printers (%d/6)"
-msgstr "選擇已連接列印設備 (%d/6)"
+msgstr "選擇已連線列印裝置 (%d/6)"
#, c-format, boost-format
msgid "The maximum number of printers that can be selected is %d"
@@ -19949,7 +19949,7 @@ msgid "No task"
msgstr "無作業"
msgid "Edit Printers"
-msgstr "編輯列印設備"
+msgstr "編輯列印裝置"
msgid "Task Name"
msgstr "作業名稱"
@@ -20018,7 +20018,7 @@ msgid "Don't remind me again"
msgstr "不要再提醒我"
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
-msgstr "不會再出現任何彈出視窗。您可以在“首選項”中重新開啟它"
+msgstr "不會再出現任何彈出視窗。您可以在“偏好設定”中重新開啟它"
msgid "Filament-Saving Mode"
msgstr "節省線材模式"
@@ -20033,7 +20033,7 @@ msgid "Generates filament grouping for the left and right nozzles based on the m
msgstr "根據最節省線材的原則為左右噴嘴生成線材分組,以最大程度地減少浪費。"
msgid "Generates filament grouping for the left and right nozzles based on the printer's actual filament status, reducing the need for manual filament adjustment."
-msgstr "根據列印設備實際線材狀態生成左右噴嘴線材分組,減少手動線材調整的需要。"
+msgstr "根據列印裝置實際線材狀態生成左右噴嘴線材分組,減少手動線材調整的需要。"
msgid "Manually assign filament to the left or right nozzle"
msgstr "手動將線材分配到左側或右側噴嘴"
@@ -20045,7 +20045,7 @@ msgid "Video tutorial"
msgstr "影片指南"
msgid "(Sync with printer)"
-msgstr "(與列印設備同步)"
+msgstr "(與列印裝置同步)"
#, c-format, boost-format
msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
@@ -20067,19 +20067,19 @@ msgid "Set the physical nozzle count..."
msgstr ""
msgid "The filament grouping method for current plate is determined by the dropdown option at the slicing plate button."
-msgstr "當前板的線材分組方法由切片板按鈕上的下拉選項確定。"
+msgstr "目前板的線材分組方法由切片板按鈕上的下拉選項確定。"
msgid "Connected to Obico successfully!"
-msgstr "成功連接到 Obico!"
+msgstr "成功連線到 Obico!"
msgid "Could not connect to Obico"
-msgstr "無法連接到 Obico"
+msgstr "無法連線到 Obico"
msgid "Connected to SimplyPrint successfully!"
-msgstr "成功連接到 SimplyPrint!"
+msgstr "成功連線到 SimplyPrint!"
msgid "Could not connect to SimplyPrint"
-msgstr "無法連接到 SimplyPrint"
+msgstr "無法連線到 SimplyPrint"
msgid "Internal error"
msgstr "內部錯誤"
@@ -20088,37 +20088,37 @@ msgid "Unknown error"
msgstr "未知錯誤"
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
-msgstr "SimplyPrint 帳戶未連結。請前往連接選項進行設置。"
+msgstr "SimplyPrint 帳戶未連結。請前往連線選項進行設定。"
msgid "Flashforge returned an invalid JSON response."
msgstr "Flashforge 回傳了無效的 JSON 回應。"
msgid "No Flashforge printers were discovered on the local network."
-msgstr "在區域網路上未發現任何 Flashforge 列印設備。"
+msgstr "在區域網路上未發現任何 Flashforge 列印裝置。"
msgid "Connected to Flashforge local API successfully."
msgstr "已成功連線至 Flashforge 本機 API。"
msgid "Serial connection to Flashforge is working correctly."
-msgstr "Flashforge 串列埠連接工作正常。"
+msgstr "Flashforge 串列埠連線工作正常。"
msgid "Could not connect to Flashforge local API"
msgstr "無法連線至 Flashforge 本機 API"
msgid "Could not connect to Flashforge via serial"
-msgstr "無法透過串列埠連接 Flashforge"
+msgstr "無法透過串列埠連線 Flashforge"
msgid "Flashforge local API requires both serial number and access code."
-msgstr "Flashforge 本機 API 需要序號與存取碼。"
+msgstr "Flashforge 本機 API 需要序號與存取代碼。"
msgid "Printer returned an error"
-msgstr "列印設備傳回錯誤"
+msgstr "列印裝置傳回錯誤"
msgid "Missing system_info in response"
msgstr "回應中缺少 system_info"
msgid "Missing printer serial number in response"
-msgstr "回應中缺少列印設備序號"
+msgstr "回應中缺少列印裝置序號"
msgid "Error parsing response"
msgstr "解析回應時發生錯誤"
@@ -20127,7 +20127,7 @@ msgid "ElegooLink not detected"
msgstr "未偵測到 ElegooLink"
msgid "Invalid access code"
-msgstr "無效的存取碼"
+msgstr "無效的存取代碼"
msgid "CC2 device not detected"
msgstr "未偵測到 CC2 裝置"
@@ -20167,7 +20167,7 @@ msgid "Error code not found"
msgstr "找不到錯誤代碼"
msgid "The printer is busy, please check the device page for the file and try to start printing again."
-msgstr "列印設備忙碌中,請在設備頁面確認檔案,然後重新嘗試開始列印。"
+msgstr "列印裝置忙碌中,請在裝置頁面確認檔案,然後重新嘗試開始列印。"
msgid "The file is lost, please check and try again."
msgstr "檔案遺失,請檢查後再試一次。"
@@ -20179,7 +20179,7 @@ msgid "Transmission abnormality, please check and try again."
msgstr "傳輸異常,請檢查後重試。"
msgid "The file does not match the printer, please check and try again."
-msgstr "檔案與列印設備不符,請檢查後再試一次。"
+msgstr "檔案與列印裝置不符,請檢查後再試一次。"
msgid "Start print timeout"
msgstr "開始列印逾時"
@@ -20194,13 +20194,13 @@ msgid "Could not connect to CrealityPrint"
msgstr "無法連線至 CrealityPrint"
msgid "Connection timed out. Please check if the printer and computer network are functioning properly, and confirm that they are on the same network."
-msgstr "連線逾時。請檢查列印設備與電腦的網路是否正常運作,並確認兩者位於相同網路。"
+msgstr "連線逾時。請檢查列印裝置與電腦的網路是否正常運作,並確認兩者位於相同網路。"
msgid "The Hostname/IP/URL could not be parsed, please check it and try again."
msgstr "無法解析 Hostname/IP/URL,請檢查後重試。"
msgid "File/data transfer interrupted. Please check the printer and network, then try it again."
-msgstr "檔案/資料傳輸已中斷。請檢查列印設備與網路,然後再試一次。"
+msgstr "檔案/資料傳輸已中斷。請檢查列印裝置與網路,然後再試一次。"
msgid "The provided state is not correct."
msgstr "提供的狀態不正確。"
@@ -20236,7 +20236,7 @@ msgid "Add or Select"
msgstr "新增或選取"
msgid "Warning: The brim type is not set to \"painted\", the brim ears will not take effect!"
-msgstr "警告:邊緣類型未設置「上色」,因此邊緣支撐 (Brim) 不會生效!"
+msgstr "警告:邊緣類型未設定「上色」,因此邊緣支撐 (Brim) 不會生效!"
msgid "Set the brim type of this object to \"painted\""
msgstr "將此物件的邊緣類型設定為\"繪製\""
@@ -20279,7 +20279,7 @@ msgid "Over 64 objects in single plate"
msgstr "單盤超過 64 個物品"
msgid "The current print job cannot be skipped"
-msgstr "無法跳過當前列印作業"
+msgstr "無法跳過目前列印作業"
msgid "Skipping all objects."
msgstr "跳過所有物件。"
@@ -20645,7 +20645,7 @@ msgid "Starting: Checking air vent"
msgstr ""
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
-msgstr "線材可能與目前的列印設備設定不相容,將使用一般線材預設。"
+msgstr "線材可能與目前的列印裝置設定不相容,將使用一般線材預設。"
msgid "The filament model is unknown. Still using the previous filament preset."
msgstr "線材型號未知,將繼續使用先前的線材預設。"
@@ -20654,7 +20654,7 @@ msgid "The filament model is unknown. Generic filament presets will be used."
msgstr "線材型號未知,將使用一般線材預設。"
msgid "The filament may not be compatible with the current machine settings. A random filament preset will be used."
-msgstr "線材可能與目前的列印設備設定不相容,將使用隨機線材預設。"
+msgstr "線材可能與目前的列印裝置設定不相容,將使用隨機線材預設。"
msgid "The filament model is unknown. A random filament preset will be used."
msgstr "線材型號未知,將使用隨機線材預設。"
@@ -20690,7 +20690,7 @@ msgid ""
"Did you know that calibrating your printer can do wonders? Check out our beloved calibration solution in OrcaSlicer."
msgstr ""
"校正\n"
-"您知道校正列印設備可以帶來奇效嗎?快來看看我們在 OrcaSlicer 中的\n"
+"您知道校正列印裝置可以帶來奇效嗎?快來看看我們在 OrcaSlicer 中的\n"
"校正解決方案。"
#: resources/data/hints.ini: [hint:Auxiliary fan]
@@ -20730,8 +20730,8 @@ msgid ""
"How to use keyboard shortcuts\n"
"Did you know that Orca Slicer offers a wide range of keyboard shortcuts and 3D scene operations?"
msgstr ""
-"如何使用鍵盤快捷鍵\n"
-"您知道嗎? Orca Slicer 提供了廣泛的鍵盤快捷鍵和 3D 場景操作。"
+"如何使用鍵盤快速鍵\n"
+"您知道嗎? Orca Slicer 提供了廣泛的鍵盤快速鍵和 3D 場景操作。"
#: resources/data/hints.ini: [hint:Reverse on even]
msgid ""
@@ -20782,7 +20782,7 @@ msgid ""
"Did you know that you can rotate objects to an optimal orientation for printing with a simple click?"
msgstr ""
"自動定向\n"
-"您知道嗎?您只需單擊滑鼠,即可將物件旋轉到適合的列印方向。"
+"您知道嗎?您只需點選滑鼠,即可將物件旋轉到適合的列印方向。"
#: resources/data/hints.ini: [hint:Lay on Face]
msgid ""
@@ -20817,7 +20817,7 @@ msgid ""
msgstr ""
"簡化模型\n"
"您知道嗎?透過「簡化網格」功能,您可以減少模型中的三角形數量。\n"
-"只需右鍵點擊模型,然後選擇「簡化模型」。"
+"只需右鍵點選模型,然後選擇「簡化模型」。"
#: resources/data/hints.ini: [hint:Slicing Parameter Table]
msgid ""
@@ -20853,7 +20853,7 @@ msgid ""
"Orca Slicer supports slicing STEP files, providing smoother results than a lower resolution STL. Give it a try!"
msgstr ""
"STEP檔案\n"
-"您知道嗎?通過切片 STEP 檔案而不是 STL 檔案可以提高列印品質。\n"
+"您知道嗎?透過切片 STEP 檔案而不是 STL 檔案可以提高列印品質。\n"
"Orca Slicer 支援切片 STEP 檔案,提供比低解析度 STL 更平滑的結果。\n"
"試試看!"
@@ -20873,7 +20873,7 @@ msgid ""
msgstr ""
"流量微調\n"
"您知道嗎?您可以微調流量,以獲得更好看的列印效果。根據線材的不\n"
-"同,可以通過進行一些微調來提高列印模型的整體光潔度。"
+"同,可以透過進行一些微調來提高列印模型的整體光潔度。"
#: resources/data/hints.ini: [hint:Split your prints into plates]
msgid ""
@@ -20891,8 +20891,8 @@ msgid ""
"Speed up your print with Adaptive Layer Height\n"
"Did you know that you can print a model even faster by using the Adaptive Layer Height option? Check it out!"
msgstr ""
-"自適應層高度加速列印\n"
-"您知道嗎?您可以使用「自適應層高度」選項可以更快地列印模型。\n"
+"適應性層高度加速列印\n"
+"您知道嗎?您可以使用「適應性層高度」選項可以更快地列印模型。\n"
"試試看!"
#: resources/data/hints.ini: [hint:Support painting]
@@ -20976,8 +20976,8 @@ msgid ""
"When do you need to print with the printer door opened?\n"
"Did you know that opening the printer door can reduce the probability of extruder/hotend clogging when printing lower temperature filament with a higher enclosure temperature? There is more info about this in the Wiki."
msgstr ""
-"什麼時候需要打開列印設備門列印?\n"
-"您知道嗎?在列印低溫線材且機箱內溫度較高的情況下,打開列印設備門可以降低擠出機或熱端堵塞的機率。更多資訊請參閱 Wiki。"
+"什麼時候需要打開列印裝置門列印?\n"
+"您知道嗎?在列印低溫線材且機箱內溫度較高的情況下,打開列印裝置門可以降低擠出機或熱端堵塞的機率。更多資訊請參閱 Wiki。"
# TODO: Review, changed by lang refactor. PR 14254
#: resources/data/hints.ini: [hint:Avoid warping]
@@ -21000,11 +21000,11 @@ msgstr ""
#, c-format, boost-format
#~ msgid "Note: the filament type(%s) does not match with the filament type(%s) in the slicing file. If you want to use this slot, you can install %s instead of %s and change slot information on the 'Device' page."
-#~ msgstr "備註:線材類型(%s)與切片檔案中的線材類型(%s)不匹配。如果您想使用此槽位,可以安裝 %s 而不是 %s,並在『設備』頁面上更改槽位資訊。"
+#~ msgstr "備註:線材類型(%s)與切片檔案中的線材類型(%s)不匹配。如果您想使用此槽位,可以安裝 %s 而不是 %s,並在『裝置』頁面上更改槽位資訊。"
#, c-format, boost-format
#~ msgid "Note: the slot is empty or undefined. If you want to use this slot, you can install %s and change slot information on the 'Device' page."
-#~ msgstr "備註:槽位為空或未定義。如果您想使用此槽位,可以安裝 %s 並在『設備』頁面上更改槽位資訊。"
+#~ msgstr "備註:槽位為空或未定義。如果您想使用此槽位,可以安裝 %s 並在『裝置』頁面上更改槽位資訊。"
#~ msgid "Note: Only filament-loaded slots can be selected."
#~ msgstr "備註:只能選擇已載入線材的槽位。"
@@ -21013,7 +21013,7 @@ msgstr ""
#~ msgstr "將從 Bambu Studio、Bambu Handy 和 MakerWorld 啟動的列印檔案儲存到外部儲存空間"
#~ msgid "The current firmware supports a maximum of 16 materials. You can either reduce the number of materials to 16 or fewer on the Preparation Page, or try updating the firmware. If you are still restricted after the update, please wait for subsequent firmware support."
-#~ msgstr "當前韌體最多支援 16 種線材。您可以在準備頁面將材料數量減少到 16 種或更少,或者嘗試更新韌體。如果更新後仍然受限,請等待後續韌體支援。"
+#~ msgstr "目前韌體最多支援 16 種線材。您可以在準備頁面將材料數量減少到 16 種或更少,或者嘗試更新韌體。如果更新後仍然受限,請等待後續韌體支援。"
# TODO: Review, changed by lang refactor. PR 14254
#~ msgid "Click OK to update the Network plug-in the next time Orca Slicer launches."
@@ -21354,7 +21354,7 @@ msgstr ""
#~ msgstr ""
#~ "略微降低此值(例如設為 0.9)可減少橋接所需的材料量,從而改善橋接下垂的問題。\n"
#~ "\n"
-#~ "實際的橋接流量是通過此值乘以線材流量比例計算的,並且若已設置物件流量比例,該比例也將被考慮在內。"
+#~ "實際的橋接流量是通過此值乘以線材流量比例計算的,並且若已設定物件流量比例,該比例也將被考慮在內。"
#~ msgid ""
#~ "This value governs the thickness of the internal bridge layer. This is the first layer over sparse infill. Decrease this value slightly (for example 0.9) to improve surface quality over sparse infill.\n"
@@ -21363,7 +21363,7 @@ msgstr ""
#~ msgstr ""
#~ "此設定值決定內部橋接層的厚度,該層是稀疏填充上的第一層。稍微降低此值(例如設為 0.9)可改善稀疏填充表面的列印品質。\n"
#~ "\n"
-#~ "實際的內部橋接流量是由此值乘以橋接流量比例、線材流量比例計算得出,若設置了物件流量比例,比例也會被納入計算。"
+#~ "實際的內部橋接流量是由此值乘以橋接流量比例、線材流量比例計算得出,若設定了物件流量比例,比例也會被納入計算。"
#, no-c-format, no-boost-format
#~ msgid ""
@@ -21375,7 +21375,7 @@ msgstr ""
#~ msgstr ""
#~ "啟用此選項以在可能發生外牆翹起的區域減慢列印速度。例如,在列印懸空的尖銳角落(如 Benchy 船體前部)時,會額外減速,從而減少多層累積後的翹起。\n"
#~ "\n"
-#~ "一般建議啟用此選項,除非您的列印設備冷卻性能足夠強大,或者列印速度足夠慢,避免發生外部周邊翹起。如果使用高外部周邊列印速度,此參數可能因列印速度差異過大而導致輕微瑕疵。如果您注意到瑕疵,請確保壓力補償已正確調整。\n"
+#~ "一般建議啟用此選項,除非您的列印裝置冷卻性能足夠強大,或者列印速度足夠慢,避免發生外部周邊翹起。如果使用高外部周邊列印速度,此參數可能因列印速度差異過大而導致輕微瑕疵。如果您注意到瑕疵,請確保壓力補償已正確調整。\n"
#~ "\n"
#~ "注意:啟用此選項時,懸空外周邊會被視為懸空結構,即使該懸空外部周邊是橋接的一部分,也會套用懸空速度。例如,當外牆 100% 懸空且下方無牆支撐時,將套用 100% 懸空速度。"
@@ -21554,11 +21554,11 @@ msgstr ""
#~ "它包含以下資訊:\n"
#~ "1. 列印參數預設\n"
#~ "2. 線材預設\n"
-#~ "3. 列印設備預設從 Bambu 雲端同步您的個人資料嗎?\n"
+#~ "3. 列印裝置預設從 Bambu 雲端同步您的個人資料嗎?\n"
#~ "包含以下資訊:\n"
#~ "1. 列印參數設定\n"
#~ "2. 線材設定\n"
-#~ "3. 列印設備設定"
+#~ "3. 列印裝置設定"
#~ msgid "Show/Hide advanced parameters"
#~ msgstr "顯示/隱藏進階參數"
@@ -21575,7 +21575,7 @@ msgstr ""
#~ msgstr "「模型修復」功能目前僅適用於 Windows。請在 Orca Slicer(Windows)或 CAD 軟體中修復模型。"
#~ msgid "This stops the transmission of data to Bambu's cloud services. Users who don't use BBL machines or use LAN mode only can safely turn on this function."
-#~ msgstr "這會停止資料傳輸到 Bambu 的雲端服務。使用者如果不使用 Bambu 列印設備或僅使用區域網路模式,可以安全地啟用此功能。"
+#~ msgstr "這會停止資料傳輸到 Bambu 的雲端服務。使用者如果不使用 Bambu 列印裝置或僅使用區域網路模式,可以安全地啟用此功能。"
#~ msgid "Resonance Avoidance"
#~ msgstr "避免共振"
@@ -21623,19 +21623,19 @@ msgstr ""
#~ msgstr "已修復的 3MF 檔案包含多個零件"
#~ msgid "Printing high-temp and low-temp filaments together may cause nozzle clogging or printer damage."
-#~ msgstr "將高溫和低溫線材混合列印可能導致噴嘴堵塞或列印設備損壞。"
+#~ msgstr "將高溫和低溫線材混合列印可能導致噴嘴堵塞或列印裝置損壞。"
#~ msgid "Printing high-temp and low-temp filaments together may cause nozzle clogging or printer damage. If you still want to print, you can enable the option in Preferences."
-#~ msgstr "將高溫和低溫線材混合列印可能導致噴嘴堵塞或列印設備損壞。若您仍要列印,可在偏好設定中啟用此選項。"
+#~ msgstr "將高溫和低溫線材混合列印可能導致噴嘴堵塞或列印裝置損壞。若您仍要列印,可在偏好設定中啟用此選項。"
#~ msgid "Printing different-temp filaments together may cause nozzle clogging or printer damage."
-#~ msgstr "將不同溫度的線材混合列印可能導致噴嘴堵塞或列印設備損壞。"
+#~ msgstr "將不同溫度的線材混合列印可能導致噴嘴堵塞或列印裝置損壞。"
#~ msgid "Printing high-temp and mid-temp filaments together may cause nozzle clogging or printer damage."
-#~ msgstr "將高溫和中溫線材混合列印可能導致噴嘴堵塞或列印設備損壞。"
+#~ msgstr "將高溫和中溫線材混合列印可能導致噴嘴堵塞或列印裝置損壞。"
#~ msgid "Printing mid-temp and low-temp filaments together may cause nozzle clogging or printer damage."
-#~ msgstr "將中溫和低溫線材混合列印可能導致噴嘴堵塞或列印設備損壞。"
+#~ msgstr "將中溫和低溫線材混合列印可能導致噴嘴堵塞或列印裝置損壞。"
#~ msgid ""
#~ "The direction which the wall loops are extruded when looking down from the top.\n"
diff --git a/src/OrcaSlicer.cpp b/src/OrcaSlicer.cpp
index 9db1aea5f8..e0a15209a3 100644
--- a/src/OrcaSlicer.cpp
+++ b/src/OrcaSlicer.cpp
@@ -24,6 +24,8 @@
#include
#include
#include
+#include
+#include
#if defined(__linux__) || defined(__LINUX__)
#include
@@ -7608,6 +7610,9 @@ LONG WINAPI VectoredExceptionHandler(PEXCEPTION_POINTERS pExceptionInfo)
}*/
#if defined(_MSC_VER) || defined(__MINGW32__)
+// Guards against a failed allocation inside the dump re-entering the new-handler.
+static std::atomic g_dump_in_progress{false};
+
extern "C" {
__declspec(dllexport) int __stdcall orcaslicer_main(int argc, wchar_t **argv)
{
@@ -7626,10 +7631,22 @@ extern "C" {
//AddVectoredExceptionHandler(1, CBaseException::UnhandledExceptionFilter);
SET_DEFULTER_HANDLER();
#endif
+ // Dump before unwinding, while the stack still names what asked for the memory. Throwing
+ // std::bad_alloc is standard-permitted here and is what reaches generic_exception_handle().
std::set_new_handler([]() {
- int *a = nullptr;
- *a = 0;
- });
+ if (!g_dump_in_progress.exchange(true)) {
+ try {
+ // A null EXCEPTION_POINTERS walks the calling thread as it stands.
+ CBaseException base(GetCurrentProcess(), GetCurrentProcessId(), NULL, nullptr);
+ base.ShowCallstack();
+ } catch (...) {
+ // A failed dump must not displace the std::bad_alloc owed to the caller.
+ }
+ // ObjParser recovers from std::bad_alloc, so let a later one dump again.
+ g_dump_in_progress = false;
+ }
+ throw std::bad_alloc();
+ });
// Call the UTF8 main.
return CLI().run(argc, argv_ptrs.data());
}
diff --git a/src/libslic3r/Fill/Fill.cpp b/src/libslic3r/Fill/Fill.cpp
index 063481876f..f29d4ef3fd 100644
--- a/src/libslic3r/Fill/Fill.cpp
+++ b/src/libslic3r/Fill/Fill.cpp
@@ -57,6 +57,9 @@ double calculate_infill_rotation_angle(const PrintObject* object,
if (template_string.empty()) {
return Geometry::deg2rad(fixed_infill_angle);
}
+ // Convert the id to an index. Layer::id() counts the raft layers, object->layers() does not.
+ const size_t first_object_layer_id = object->get_layer(0)->id();
+ layer_id = layer_id > first_object_layer_id ? layer_id - first_object_layer_id : 0;
double angle = 0.0;
ConfigOptionFloats rotate_angles;
const std::string search_string = "/NnZz$LlUuQq~^|#";
@@ -75,6 +78,8 @@ double calculate_infill_rotation_angle(const PrintObject* object,
double angle_start = 0;
double limit_fill_z = object->get_layer(0)->bottom_z();
double start_fill_z = limit_fill_z;
+ // The raft height, or 0 without a raft.
+ const double print_z_offset = object->slicing_parameters().object_print_z_min;
bool _noop = false;
auto fill_form = std::string::npos;
bool _absolute = false;
@@ -84,7 +89,8 @@ double calculate_infill_rotation_angle(const PrintObject* object,
for (int i = 0; i <= layer_id; i++) {
double fill_z = object->get_layer(i)->bottom_z();
- if (limit_fill_z < object->get_layer(i)->slice_z) {
+ // slice_z is measured from the bottom of the model, limit_fill_z from the build plate.
+ if (limit_fill_z < object->get_layer(i)->slice_z + print_z_offset) {
if (repeats) { // if repeats >0 then restore parameters for new iteration
limit_fill_z += limit_fill_z - start_fill_z;
start_fill_z = fill_z;
diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp
index 1701382e3d..a08554654a 100644
--- a/src/libslic3r/GCode.cpp
+++ b/src/libslic3r/GCode.cpp
@@ -730,6 +730,42 @@ static std::vector get_path_of_change_filament(const Print& print)
return temp_set_by_gcode;
}
+ struct CustomGCodeMotionStateChanges
+ {
+ bool acceleration = false;
+ bool jerk = false;
+ };
+
+ static bool custom_gcode_line_has_xy_parameter(const std::string &raw)
+ {
+ const size_t comment_pos = raw.find(';');
+ const std::string_view code(raw.data(), comment_pos == std::string::npos ? raw.size() : comment_pos);
+ return code.find_first_of("XxYy") != std::string_view::npos;
+ }
+
+ static CustomGCodeMotionStateChanges custom_gcode_motion_state_changes(const std::string &gcode)
+ {
+ CustomGCodeMotionStateChanges changes;
+ GCodeReader parser;
+ parser.parse_buffer(gcode, [&changes](GCodeReader &parser, const GCodeReader::GCodeLine &line) {
+ const std::string_view cmd = line.cmd();
+ if (boost::iequals(cmd, "M204") || boost::iequals(cmd, "M201") ||
+ boost::iequals(cmd, "M202"))
+ changes.acceleration = true;
+ else if ((boost::iequals(cmd, "M205") || boost::iequals(cmd, "M207") || boost::iequals(cmd, "M566")) &&
+ custom_gcode_line_has_xy_parameter(line.raw()))
+ changes.jerk = true;
+ else if (boost::iequals(cmd, "SET_VELOCITY_LIMIT")) {
+ changes.acceleration |= boost::icontains(line.raw(), "ACCEL=");
+ changes.jerk |= boost::icontains(line.raw(), "SQUARE_CORNER_VELOCITY=");
+ }
+
+ if (changes.acceleration && changes.jerk)
+ parser.quit_parsing();
+ });
+ return changes;
+ }
+
// BBS
// start_pos refers to the last position before the wipe_tower.
// end_pos refers to the wipe tower's start_pos.
@@ -4335,6 +4371,11 @@ PlaceholderParserIntegration &ppi = m_placeholder_parser_integration;
ppi.update_from_gcodewriter(m_writer);
std::string output = ppi.parser.process(templ, current_filament_id, config_override, &ppi.output_config, &ppi.context);
ppi.validate_output_vector_variables();
+ const CustomGCodeMotionStateChanges motion_state_changes = custom_gcode_motion_state_changes(output);
+ if (motion_state_changes.acceleration)
+ m_writer.invalidate_acceleration();
+ if (motion_state_changes.jerk)
+ m_writer.invalidate_jerk();
if (const std::vector &pos = ppi.opt_position->values; ppi.position != pos) {
// Update G-code writer.
diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp
index 4691af7e0e..cc53cd0e51 100644
--- a/src/libslic3r/GCode/GCodeProcessor.cpp
+++ b/src/libslic3r/GCode/GCodeProcessor.cpp
@@ -614,6 +614,8 @@ void GCodeProcessor::TimeMachine::calculate_time(GCodeProcessorResult& result, P
float leftover = 0.0f;
for (size_t i = additional_buffer_idx; i < additional_buffer.size(); ++i)
leftover += additional_buffer[i].second;
+ BOOST_LOG_TRIVIAL(debug) << "calculate_time(is_final): leftover=" << leftover
+ << "s from " << (additional_buffer.size() - additional_buffer_idx) << " items";
time += double(leftover);
gcode_time.cache += leftover;
} else {
@@ -3492,6 +3494,7 @@ void GCodeProcessor::reset()
m_extruder_blocks.clear();
m_machine_start_gcode_end_line_id = (unsigned int) (-1);
m_machine_end_gcode_start_line_id = (unsigned int) (-1);
+ m_skip_end_gcode_delays = false;
m_remaining_volume = std::vector(MAXIMUM_EXTRUDER_NUMBER, 0.f);
m_line_id = 0;
@@ -4219,6 +4222,14 @@ void GCodeProcessor::process_tags(const std::string_view comment, bool producers
return;
}
+ // End gcode marker: skip post-print M400 S/P dwells after this point so the M73 estimate reports
+ // print-completion time, not post-print filtration/cooldown. BBS drops the same remainder in
+ // calculate_time(is_final).
+ if (comment == Machine_End_GCode_Start_Tag) {
+ m_skip_end_gcode_delays = true;
+ return;
+ }
+
// Orca: Integrate filament consumption for purging performed to an external device and controlled via macros
// (eg. Happy Hare) in the filament consumption stats.
if (boost::starts_with(comment, GCodeProcessor::External_Purge_Tag)) {
@@ -6401,6 +6412,10 @@ void GCodeProcessor::process_M400(const GCodeReader::GCodeLine& line)
float value_p = 0.0;
if (line.has_value('S', value_s) || line.has_value('P', value_p)) {
value_s += value_p * 0.001;
+ // Skip post-print end-gcode dwells so they don't inflate the M73 estimate (see
+ // m_skip_end_gcode_delays). Only omits dwell time — no state is updated here.
+ if (m_skip_end_gcode_delays)
+ return;
simulate_st_synchronize(value_s);
}
}
diff --git a/src/libslic3r/GCode/GCodeProcessor.hpp b/src/libslic3r/GCode/GCodeProcessor.hpp
index 8a66cdc9e4..f5bec9e826 100644
--- a/src/libslic3r/GCode/GCodeProcessor.hpp
+++ b/src/libslic3r/GCode/GCodeProcessor.hpp
@@ -1109,6 +1109,10 @@ class Print;
std::vector m_extruder_blocks;
unsigned int m_machine_start_gcode_end_line_id{ (unsigned int) (-1) };
unsigned int m_machine_end_gcode_start_line_id{ (unsigned int) (-1) };
+ // Set when the MACHINE_END_GCODE_START tag is seen during the streaming parse; tells
+ // process_M400 to skip post-print end-gcode dwells (air purification, timelapse, sound)
+ // so they don't inflate the M73 estimate. BBS excludes them in calculate_time(is_final).
+ bool m_skip_end_gcode_delays{ false };
// Tracks, during the stream, which filament sits in each physical nozzle and which nozzle each
// extruder currently carries. Written by both branches of the two-arg process_filament_change
// (the fallback branch does occupancy bookkeeping only); read by the richer change-time model
diff --git a/src/libslic3r/GCode/ToolOrderUtils.cpp b/src/libslic3r/GCode/ToolOrderUtils.cpp
index c8b8ac3fdc..4e2934d967 100644
--- a/src/libslic3r/GCode/ToolOrderUtils.cpp
+++ b/src/libslic3r/GCode/ToolOrderUtils.cpp
@@ -1091,6 +1091,16 @@ namespace Slic3r
if (layer + 1 < layer_filaments.size()) next_lf = layer_filaments[layer + 1];
std::vector filament_used_next_layer = collect_filaments_in_groups(filament_sets, next_lf);
+ // Enable inter-layer forecast: when choosing filament ordering for current layer,
+ // also consider next layer's filament set to minimize inter-layer transition flush.
+ // solve_extruder_order_with_forcast() tries all permutations of curr+next layer
+ // and picks the ordering that minimizes total flush across both layers.
+ // This avoids expensive inter-layer transitions (e.g. ending layer with F2 when
+ // next layer starts with F3, costing flush[F2→F3], instead of ending with F3
+ // which gives flush[F3→F3]=0). Limited to ≤5 filaments due to O(N!×M!) complexity.
+ // The per-nozzle base reorder does not use the inter-layer forecast. This function drives
+ // BBL multi-extruder grouping cost and H2C ordering, so keeping it false avoids perturbing
+ // existing H2D/H2C output.
bool use_forcast = false;
float tmp_cost = 0;
std::vector sequence;
diff --git a/src/libslic3r/GCode/WipeTower.cpp b/src/libslic3r/GCode/WipeTower.cpp
index 58df527da5..06bca292d4 100644
--- a/src/libslic3r/GCode/WipeTower.cpp
+++ b/src/libslic3r/GCode/WipeTower.cpp
@@ -1609,6 +1609,64 @@ void WipeTower::set_extruder(size_t idx, const PrintConfig& config)
if (max_vol_speed!= 0.f)
m_filpar[idx].max_e_speed = (max_vol_speed / filament_area());
+ // Vortek H2C: carousel-specific ramming, precool, and reverse travel parameters
+ {
+ // Ramming speed: .first = extruder change, .second = nozzle change (carousel)
+ // Use the dedicated ramming volumetric speed, falling back to max_vol_speed only when
+ // the setting is nil/-1.
+ float ramming_vol_speed = float(config.filament_ramming_volumetric_speed.get_at(idx));
+ if (config.filament_ramming_volumetric_speed.is_nil(idx) || is_approx(config.filament_ramming_volumetric_speed.get_at(idx), -1.))
+ ramming_vol_speed = max_vol_speed;
+ m_filpar[idx].max_e_ramming_speed.first = (ramming_vol_speed / filament_area());
+
+ float ramming_vol_speed_nc = float(config.filament_ramming_volumetric_speed_nc.get_at(idx));
+ if (config.filament_ramming_volumetric_speed_nc.is_nil(idx) || is_approx(config.filament_ramming_volumetric_speed_nc.get_at(idx), -1.))
+ ramming_vol_speed_nc = max_vol_speed;
+ m_filpar[idx].max_e_ramming_speed.second = (ramming_vol_speed_nc / filament_area());
+ }
+ {
+ // Precool target temp: .first = extruder change, .second = nozzle change (carousel)
+ // Precool is only active when enable_pre_heating is on; otherwise no precool temp/timing is
+ // applied and the downstream precool_t stays 0, matching printers with pre-heating disabled.
+ m_filpar[idx].precool_target_temp = {0, 0};
+ if (config.enable_pre_heating.value) {
+ if (!config.filament_pre_cooling_temperature.is_nil(idx) && config.filament_pre_cooling_temperature.get_at(idx) != 0)
+ m_filpar[idx].precool_target_temp.first = config.filament_pre_cooling_temperature.get_at(idx);
+ if (!config.filament_pre_cooling_temperature_nc.is_nil(idx) && config.filament_pre_cooling_temperature_nc.get_at(idx) != 0)
+ m_filpar[idx].precool_target_temp.second = config.filament_pre_cooling_temperature_nc.get_at(idx);
+ }
+ }
+ {
+ // Precool timing: (nozzle_temp - precool_temp) / hotend_cooling_rate
+ int extruder_count = m_is_multi_extruder ? 2 : 1; // H2C = 2 extruders
+ float nozzle_temp = float(config.nozzle_temperature.is_nil(idx) ? 0 : config.nozzle_temperature.get_at(idx));
+ float nozzle_temp_fl = float(config.nozzle_temperature_initial_layer.is_nil(idx) ? nozzle_temp : config.nozzle_temperature_initial_layer.get_at(idx));
+ m_filpar[idx].precool_t.first.resize(extruder_count, 0.f);
+ m_filpar[idx].precool_t.second.resize(extruder_count, 0.f);
+ m_filpar[idx].precool_t_first_layer.first.resize(extruder_count, 0.f);
+ m_filpar[idx].precool_t_first_layer.second.resize(extruder_count, 0.f);
+ std::vector cooling_rates = config.hotend_cooling_rate.values;
+ for (int i = 0; i < extruder_count && i < (int)cooling_rates.size(); i++) {
+ if (cooling_rates[i] < EPSILON) continue;
+ if (m_filpar[idx].precool_target_temp.first != 0) {
+ m_filpar[idx].precool_t.first[i] = std::max(0.f, nozzle_temp - float(m_filpar[idx].precool_target_temp.first)) / float(cooling_rates[i]);
+ m_filpar[idx].precool_t_first_layer.first[i] = std::max(0.f, nozzle_temp_fl - float(m_filpar[idx].precool_target_temp.first)) / float(cooling_rates[i]);
+ }
+ if (m_filpar[idx].precool_target_temp.second != 0) {
+ m_filpar[idx].precool_t.second[i] = std::max(0.f, nozzle_temp - float(m_filpar[idx].precool_target_temp.second)) / float(cooling_rates[i]);
+ m_filpar[idx].precool_t_first_layer.second[i] = std::max(0.f, nozzle_temp_fl - float(m_filpar[idx].precool_target_temp.second)) / float(cooling_rates[i]);
+ }
+ }
+ }
+ {
+ // Ramming travel time: .first = extruder change, .second = nozzle change (carousel)
+ m_filpar[idx].ramming_travel_time = {0.f, 0.f};
+ if (!config.filament_ramming_travel_time.is_nil(idx))
+ m_filpar[idx].ramming_travel_time.first = float(config.filament_ramming_travel_time.get_at(idx));
+ if (!config.filament_ramming_travel_time_nc.is_nil(idx))
+ m_filpar[idx].ramming_travel_time.second = float(config.filament_ramming_travel_time_nc.get_at(idx));
+ }
+
m_perimeter_width = nozzle_diameter * Width_To_Nozzle_Ratio; // all extruders are now assumed to have the same diameter
m_nozzle_change_perimeter_width = 2*m_perimeter_width;
// BBS: remove useless config
@@ -1893,7 +1951,7 @@ WipeTower::NozzleChangeResult WipeTower::nozzle_change(int old_filament_id, int
.set_initial_tool(m_current_tool)
.set_extrusion_flow(m_extrusion_flow)
.set_y_shift(m_y_shift + (new_filament_id != (unsigned int) (-1) && (m_current_shape == SHAPE_REVERSED) ? m_layer_info->depth - m_layer_info->toolchanges_depth() : 0.f))
- .append("; Nozzle change start\n");
+ .append(format_nozzle_change_tag(true, old_filament_id, new_filament_id));
box_coordinates cleaning_box(Vec2f(m_perimeter_width, m_perimeter_width), m_wipe_tower_width - 2 * m_perimeter_width,
(new_filament_id != (unsigned int) (-1) ? wipe_depth + m_depth_traversed - m_perimeter_width : m_wipe_tower_depth - m_perimeter_width));
@@ -1969,7 +2027,7 @@ WipeTower::NozzleChangeResult WipeTower::nozzle_change(int old_filament_id, int
}
}
- writer.append("; Nozzle change end\n");
+ writer.append(format_nozzle_change_tag(false, old_filament_id, new_filament_id));
result.start_pos = writer.start_pos_rotated();
result.end_pos = writer.pos();
@@ -2546,6 +2604,19 @@ void WipeTower::plan_toolchange(float z_par, float layer_height_par, unsigned in
nozzle_change_depth = nozzle_change_line_count * m_nozzle_change_perimeter_width;
depth += nozzle_change_depth;
}
+ if (nozzle_change_depth == 0
+ && !m_filament_nozzle_map.empty()
+ && old_tool < m_filament_nozzle_map.size() && new_tool < m_filament_nozzle_map.size()
+ && m_filament_nozzle_map[old_tool] != m_filament_nozzle_map[new_tool]) {
+ double e_flow = nozzle_change_extrusion_flow(layer_height_par);
+ double length = m_filaments_change_length[old_tool] / e_flow;
+ int nozzle_change_line_count = length / (m_wipe_tower_width - 2*m_nozzle_change_perimeter_width) + 1;
+ if (has_tpu_filament())
+ nozzle_change_depth = m_tpu_fixed_spacing * nozzle_change_line_count * m_nozzle_change_perimeter_width;
+ else
+ nozzle_change_depth = nozzle_change_line_count * m_nozzle_change_perimeter_width;
+ depth += nozzle_change_depth;
+ }
WipeTowerInfo::ToolChange tool_change = WipeTowerInfo::ToolChange(old_tool, new_tool, depth, 0.f, 0.f, wipe_volume, length_to_extrude, purge_volume);
tool_change.nozzle_change_depth = nozzle_change_depth;
m_plan.back().tool_changes.push_back(tool_change);
@@ -2695,6 +2766,13 @@ bool WipeTower::is_petg_filament(int filament_id) const
return m_filpar[filament_id].material == "PETG";
}
+bool WipeTower::is_need_reverse_travel(int filament_id, bool extruder_change) const
+{
+ if (extruder_change)
+ return m_filpar[filament_id].ramming_travel_time.first > EPSILON;
+ return m_filpar[filament_id].ramming_travel_time.second > EPSILON;
+}
+
// BBS: consider both soluable and support properties
// Return index of first toolchange that switches to non-soluble and non-support extruder
// ot -1 if there is no such toolchange.
@@ -2819,6 +2897,13 @@ WipeTower::ToolChangeResult WipeTower::tool_change_new(size_t new_tool, bool sol
&& is_valid_last_layer(m_current_tool, m_cur_layer_id, m_z_pos)) {
m_nozzle_change_result = nozzle_change_new(m_current_tool, new_tool, solid_nozzlechange);
}
+ if (m_nozzle_change_result.gcode.empty()
+ && !m_filament_nozzle_map.empty()
+ && m_current_tool < m_filament_nozzle_map.size() && new_tool < m_filament_nozzle_map.size()
+ && m_filament_nozzle_map[m_current_tool] != m_filament_nozzle_map[new_tool]
+ && is_valid_last_layer(m_current_tool, m_cur_layer_id, m_z_pos)) {
+ m_nozzle_change_result = nozzle_change_new(m_current_tool, new_tool, solid_nozzlechange);
+ }
size_t old_tool = m_current_tool;
float wipe_depth = 0.f;
@@ -2983,20 +3068,40 @@ WipeTower::NozzleChangeResult WipeTower::nozzle_change_new(int old_filament_id,
}
float nz_extrusion_flow = nozzle_change_extrusion_flow(m_layer_height);
- float nozzle_change_speed = 60.0f * m_filpar[m_current_tool].max_e_speed / nz_extrusion_flow;
- nozzle_change_speed = solid_infill ? 40.f * 60.f : nozzle_change_speed;//If the contact layers belong to different categories, then reduce the speed.
+ bool extruder_change = !is_in_same_extruder(old_filament_id, new_filament_id);
+ float max_e_ramming = extruder_change
+ ? m_filpar[m_current_tool].max_e_ramming_speed.first
+ : m_filpar[m_current_tool].max_e_ramming_speed.second;
+ if (max_e_ramming < EPSILON) max_e_ramming = m_filpar[m_current_tool].max_e_speed; // fallback
+ float nozzle_change_speed = 60.0f * max_e_ramming / nz_extrusion_flow;
+ nozzle_change_speed = solid_infill ? 40.f * 60.f : nozzle_change_speed;
if (is_tpu_filament(m_current_tool)) {
nozzle_change_speed *= 0.25;
}
- float bridge_speed = std::min(60.0f * m_filpar[m_current_tool].max_e_speed / nozzle_change_extrusion_flow(0.2), nozzle_change_speed); // limit the bridge speed by add flow
+ float bridge_speed = std::min(60.0f * max_e_ramming / nozzle_change_extrusion_flow(0.2), nozzle_change_speed);
WipeTowerWriter writer(m_layer_height, m_nozzle_change_perimeter_width, m_gcode_flavor, m_filpar);
writer.set_extrusion_flow(nz_extrusion_flow)
.set_z(m_z_pos)
.set_initial_tool(m_current_tool)
.set_y_shift(m_y_shift + (new_filament_id != (unsigned int) (-1) && (m_current_shape == SHAPE_REVERSED) ? m_layer_info->depth - m_layer_info->toolchanges_depth() : 0.f))
- .append("; Nozzle change start\n");
+ .append(format_nozzle_change_tag(true, old_filament_id, new_filament_id));
+
+ if (!extruder_change && m_is_multiple_nozzle) {
+ writer.append("M632 S" + std::to_string(new_filament_id) + " M N\n");
+ // Use m_physical_extruder_map for heater index (matches format_line_M104 in add_M104_by_requirement)
+ if (m_filpar[m_current_tool].precool_target_temp.second != 0) {
+ int logical_ext = m_filament_map.empty() ? 0 : m_filament_map[m_current_tool] - 1;
+ int phys_ext = (logical_ext >= 0 && logical_ext < (int)m_physical_extruder_map.size())
+ ? m_physical_extruder_map[logical_ext] : logical_ext;
+ writer.append("M400\n");
+ writer.append("M104 T" + std::to_string(phys_ext) + " S" +
+ std::to_string(m_filpar[m_current_tool].precool_target_temp.second) + " N0\n");
+ writer.append("M106 S255\n");
+ }
+ writer.append("M633\n");
+ }
WipeTowerBlock* block = get_block_by_category(m_filpar[old_filament_id].category, false);
if (!block) {
@@ -3021,6 +3126,23 @@ WipeTower::NozzleChangeResult WipeTower::nozzle_change_new(int old_filament_id,
dy = solid_infill ? m_nozzle_change_perimeter_width : dy;
nozzle_change_line_count = solid_infill ? std::numeric_limits::max() : nozzle_change_line_count;
m_left_to_right = true;
+
+ if (extruder_change) {
+ float ramming_length = nozzle_change_line_count * (xr - xl);
+ int extruder_id = m_filament_map.empty() ? 0 : m_filament_map[m_current_tool] - 1;
+ float precool_t = (extruder_id >= 0 && extruder_id < (int)m_filpar[m_current_tool].precool_t.first.size())
+ ? m_filpar[m_current_tool].precool_t.first[extruder_id] : 0.f;
+ float precool_t_fl = (extruder_id >= 0 && extruder_id < (int)m_filpar[m_current_tool].precool_t_first_layer.first.size())
+ ? m_filpar[m_current_tool].precool_t_first_layer.first[extruder_id] : 0.f;
+ float per_cooling_max_speed = nozzle_change_speed;
+ if (is_first_layer() && precool_t_fl > EPSILON)
+ per_cooling_max_speed = ramming_length / precool_t_fl * 60.f;
+ else if (precool_t > EPSILON)
+ per_cooling_max_speed = ramming_length / precool_t * 60.f;
+ if (nozzle_change_speed > per_cooling_max_speed) nozzle_change_speed = per_cooling_max_speed;
+ if (bridge_speed > per_cooling_max_speed) bridge_speed = per_cooling_max_speed;
+ }
+
int real_nozzle_change_line_count = 0;
bool need_change_flow = false;
for (int i = 0; true; ++i) {
@@ -3053,9 +3175,40 @@ WipeTower::NozzleChangeResult WipeTower::nozzle_change_new(int old_filament_id,
block->last_nozzle_change_id = old_filament_id;
NozzleChangeResult result;
- if (is_tpu_filament(m_current_tool)) {
+ if (!extruder_change && m_is_multiple_nozzle) {
+ writer.append("M632 S" + std::to_string(new_filament_id) + " M N\n");
+ }
+
+ if (is_need_reverse_travel(m_current_tool, extruder_change)) {
bool left_to_right = !m_left_to_right;
- int tpu_line_count = (real_nozzle_change_line_count + 2 - 1) / 2; // nozzle_change_line_count / 2 round up
+ int tpu_line_count = real_nozzle_change_line_count;
+ float reverse_speed = nozzle_change_speed * 2; // reverse travel runs at double the nozzle-change speed
+ float rt_time = extruder_change ? m_filpar[m_current_tool].ramming_travel_time.first
+ : m_filpar[m_current_tool].ramming_travel_time.second;
+ float need_reverse_travel_dis = rt_time * reverse_speed / 60.f;
+ float real_travel_dis = tpu_line_count * (xr - xl - 2 * m_perimeter_width);
+ if (real_travel_dis < need_reverse_travel_dis)
+ reverse_speed *= real_travel_dis / need_reverse_travel_dis;
+ writer.travel(writer.x(), writer.y() + dy/2);
+
+ for (int i = 0; true; ++i) {
+ need_reverse_travel_dis -= (xr - xl - 2 * m_perimeter_width);
+ float offset_dis = 0.f;
+ if (need_reverse_travel_dis < 0)
+ offset_dis = -need_reverse_travel_dis;
+ if (left_to_right)
+ writer.travel(xr - m_perimeter_width - offset_dis, writer.y(), reverse_speed);
+ else
+ writer.travel(xl + m_perimeter_width + offset_dis, writer.y(), reverse_speed);
+ if (need_reverse_travel_dis < EPSILON) break;
+ if (i == tpu_line_count - 1)
+ break;
+ writer.travel(writer.x(), writer.y() - dy);
+ left_to_right = !left_to_right;
+ }
+ } else if (is_tpu_filament(m_current_tool)) {
+ bool left_to_right = !m_left_to_right;
+ int tpu_line_count = (real_nozzle_change_line_count + 2 - 1) / 2;
nozzle_change_speed *= 2;
writer.travel(writer.x(), writer.y() - m_nozzle_change_perimeter_width);
@@ -3080,12 +3233,15 @@ WipeTower::NozzleChangeResult WipeTower::nozzle_change_new(int old_filament_id,
}
}
- writer.append("; Nozzle change end\n");
+ if (!extruder_change && m_is_multiple_nozzle) writer.append("M633\n");
+
+ writer.append(format_nozzle_change_tag(false, old_filament_id, new_filament_id));
result.start_pos = writer.start_pos_rotated();
result.origin_start_pos = initial_position;
result.end_pos = writer.pos_rotated();
result.gcode = writer.gcode();
+ result.is_extruder_change = extruder_change;
return result;
}
@@ -3506,29 +3662,26 @@ void WipeTower::toolchange_wipe_new(WipeTowerWriter &writer, const box_coordinat
// Emit the arriving-hotend pre-heat inside the M632/M633 nozzle-change barrier. `M632 S[ H]
// M N` opens the barrier (M = firmware nozzle-change flag, N = slicer generated), the M104 sets the
// arriving hotend temp, and `M633` closes it. H2C's grouping is static (no dynamic nozzle map), so the
- // H field is omitted (a dynamic nozzle map would supply a real nozzle id, a static map -1 => no
+ // H field is omitted (a dynamic nozzle map would supply a real nozzle id, a static map -1 =>no
// H). The counterproductive fan-on (M106 S255) used for departing-tool cooldown is intentionally
// omitted, since this is a pre-HEAT of the arriving tool. The whole helper is only ever called from
// add_M104_by_requirement, which is gated on m_is_multiple_nozzle (extruder_max_nozzle_count>1) => H2C
- // only; every other printer's wipe tower is untouched. The M632 M-flag is itself a firmware barrier, so
- // a preceding M400 wait is subsumed.
+ // only; every other printer's wipe tower is untouched.
+ // BBS: extruder change preheat uses M400 + M104 WITHOUT M632/M633 barrier.
+ // M632 barriers are only for carousel nozzle changes (emitted in nozzle_change_new/ramming).
auto format_line_M104 = [this](int target_temp, int target_extruder = -1, bool wait_for_moves = true, const std::string &comment = "") {
std::string buffer;
- buffer += "M632 S" + std::to_string(m_current_tool) + " M N\n";
+ if (wait_for_moves)
+ buffer += "M400\n";
buffer += "M104";
if (target_extruder != -1 && target_extruder < (int) m_physical_extruder_map.size())
buffer += (" T" + std::to_string(m_physical_extruder_map[target_extruder]));
buffer += " S" + std::to_string(target_temp) + " N0"; // N0 means the gcode is generated by the slicer
if (!comment.empty()) buffer += " ;" + comment;
buffer += '\n';
- buffer += "M633\n";
- (void) wait_for_moves; // the M632 M-flag barrier replaces the former M400 wait
return buffer;
};
- // Suppress the pre-heat M104 on the first layer and on solid (contact) toolchanges (should_heating).
- // m_is_multiple_nozzle folds in the H2C gate so single-nozzle output is untouched.
- // Orca: the arriving extruder id is resolved as m_filament_map[tool]-1 (layer-static) because Orca's
- // wipe tower is extruder-level rather than tracking a per-layer nozzle map.
+ // m_is_multiple_nozzle gate needed because Orca calls toolchange_wipe_new for ALL printers (BBS has it H2C-only).
bool should_heating = m_is_multiple_nozzle && m_filpar[m_current_tool].filament_cooling_before_tower > EPSILON &&
!solid_tool_toolchange && !is_first_layer();
auto add_M104_by_requirement = [&writer, &format_line_M104, &should_heating, this]() {
@@ -3710,6 +3863,18 @@ bool WipeTower::is_in_same_extruder(int filament_id_1, int filament_id_2)
return m_filament_map[filament_id_1] == m_filament_map[filament_id_2];
}
+std::string WipeTower::format_nozzle_change_tag(bool start, int old_filament_id, int new_filament_id) const
+{
+ const std::string &tag = start ? GCodeProcessor::Nozzle_Change_Start_Tag : GCodeProcessor::Nozzle_Change_End_Tag;
+ int old_nozzle = (old_filament_id >= 0 && old_filament_id < (int)m_filament_nozzle_map.size())
+ ? m_filament_nozzle_map[old_filament_id] : -1;
+ int new_nozzle = (new_filament_id >= 0 && new_filament_id < (int)m_filament_nozzle_map.size())
+ ? m_filament_nozzle_map[new_filament_id] : -1;
+ char buff[96];
+ snprintf(buff, sizeof(buff), ";%s OF%d NF%d ON%d NN%d\n", tag.c_str(), old_filament_id, new_filament_id, old_nozzle, new_nozzle);
+ return std::string(buff);
+}
+
// Per-extruder printable-height clamp: is an extruder still allowed to print on this wipe-tower layer,
// or is it its final layer above the extruder's printable height?
// Orca: the arriving extruder id is resolved as m_filament_map[tool]-1 (1-based map, layer-static),
@@ -3908,6 +4073,19 @@ void WipeTower::plan_tower_new()
nozzle_change_depth = nozzle_change_line_count * m_nozzle_change_perimeter_width;
depth += nozzle_change_depth;
}
+ if (nozzle_change_depth == 0
+ && !m_filament_nozzle_map.empty()
+ && toolchange.old_tool < (int)m_filament_nozzle_map.size() && toolchange.new_tool < (int)m_filament_nozzle_map.size()
+ && m_filament_nozzle_map[toolchange.old_tool] != m_filament_nozzle_map[toolchange.new_tool]) {
+ double e_flow = nozzle_change_extrusion_flow(m_plan[idx].height);
+ double length = m_filaments_change_length[toolchange.old_tool] / e_flow;
+ int nozzle_change_line_count = length / (m_wipe_tower_width - 2*m_nozzle_change_perimeter_width) + 1;
+ if (has_tpu_filament())
+ nozzle_change_depth = m_tpu_fixed_spacing * nozzle_change_line_count * m_nozzle_change_perimeter_width;
+ else
+ nozzle_change_depth = nozzle_change_line_count * m_nozzle_change_perimeter_width;
+ depth += nozzle_change_depth;
+ }
toolchange.nozzle_change_depth = nozzle_change_depth;
toolchange.required_depth = depth;
}
diff --git a/src/libslic3r/GCode/WipeTower.hpp b/src/libslic3r/GCode/WipeTower.hpp
index 4430a3218e..508765824e 100644
--- a/src/libslic3r/GCode/WipeTower.hpp
+++ b/src/libslic3r/GCode/WipeTower.hpp
@@ -58,6 +58,7 @@ public:
Vec2f origin_start_pos; // not rotated
std::vector wipe_path;
+ bool is_extruder_change{true};
};
struct ToolChangeResult
@@ -309,6 +310,8 @@ public:
int get_number_of_toolchanges() const { return m_num_tool_changes; }
void set_filament_map(const std::vector &filament_map) { m_filament_map = filament_map; }
+ // Vortek H2C: filament_id → physical nozzle_id for carousel rotation detection
+ void set_filament_nozzle_map(const std::vector &nozzle_map) { m_filament_nozzle_map = nozzle_map; }
void set_has_tpu_filament(bool has_tpu) { m_has_tpu_filament = has_tpu; }
bool has_tpu_filament() const { return m_has_tpu_filament; }
@@ -356,6 +359,12 @@ public:
// Distance (in mm of filament) that a hotend is allowed to pre-cool before the
// tower is reached; drives the prime-tower heating-during-wipe model (multi-nozzle only).
float filament_cooling_before_tower = 0.f;
+ // .first = extruder change, .second = nozzle change (carousel)
+ std::pair max_e_ramming_speed{0.f, 0.f};
+ std::pair ramming_travel_time{0.f, 0.f};
+ std::pair precool_target_temp{0, 0};
+ std::pair,std::vector> precool_t;
+ std::pair,std::vector> precool_t_first_layer;
};
@@ -395,6 +404,8 @@ public:
void add_depth_to_block(int filament_id, int filament_adhesiveness_category, float depth, bool is_nozzle_change = false);
int get_filament_category(int filament_id);
bool is_in_same_extruder(int filament_id_1, int filament_id_2);
+ // Vortek H2C: format BBS-compatible NOZZLE_CHANGE_START/END tag with OF/NF/ON/NN payload
+ std::string format_nozzle_change_tag(bool start, int old_filament_id, int new_filament_id) const;
void reset_block_status();
int get_wall_filament_for_all_layer();
// for generate new wipe tower
@@ -453,6 +464,7 @@ private:
size_t m_cur_layer_id;
NozzleChangeResult m_nozzle_change_result;
std::vector m_filament_map;
+ std::vector m_filament_nozzle_map; // Vortek H2C: filament_id → physical nozzle_id
bool m_has_tpu_filament{false};
bool m_is_multi_extruder{false};
bool m_use_gap_wall{false};
@@ -555,6 +567,7 @@ private:
bool is_tpu_filament(int filament_id) const;
bool is_petg_filament(int filament_id) const;
+ bool is_need_reverse_travel(int filament_id, bool extruder_change) const;
// BBS
box_coordinates align_perimeter(const box_coordinates& perimeter_box);
diff --git a/src/libslic3r/GCodeWriter.cpp b/src/libslic3r/GCodeWriter.cpp
index 26db1c61e5..e3d1c30362 100644
--- a/src/libslic3r/GCodeWriter.cpp
+++ b/src/libslic3r/GCodeWriter.cpp
@@ -2,6 +2,8 @@
#include "CustomGCode.hpp"
#include "I18N.hpp"
#include "PrintConfig.hpp"
+#include "ClipperUtils.hpp"
+#include "Line.hpp"
#include
#include
#include
@@ -99,9 +101,87 @@ void GCodeWriter::apply_print_config(const PrintConfig &print_config)
m_max_jerk_z = LIMITS(machine_max_jerk_z);
m_max_jerk_e = LIMITS(machine_max_jerk_e);
m_resolution = print_config.resolution.value;
-
#undef LIMITS
#undef LIMITS_UINT
+ // Orca: capture the printable area(s) so a spiral lift can be skipped when its
+ // circle would leave the boundary and collide with the print limits. Full polygons
+ // are stored (not a bounding box) so the check stays correct for non-rectangular
+ // beds, and per-extruder areas are kept so printers with different boundaries per
+ // extruder use the right limit for whichever extruder is active.
+ auto to_scaled_polygon = [](const Pointfs &pts) {
+ Polygon poly;
+ poly.points.reserve(pts.size());
+ for (const Vec2d &p : pts)
+ poly.points.emplace_back(coord_t(scale_(p.x())), coord_t(scale_(p.y())));
+ poly.make_counter_clockwise();
+ return poly;
+ };
+
+ m_bed_printable_area.points.clear();
+ m_extruder_printable_areas.clear();
+
+ if (print_config.printable_area.values.size() >= 3)
+ m_bed_printable_area = to_scaled_polygon(print_config.printable_area.values);
+
+ const std::vector &extruder_areas = print_config.extruder_printable_area.values;
+ if (!extruder_areas.empty()) {
+ m_extruder_printable_areas.resize(extruder_areas.size());
+ for (size_t i = 0; i < extruder_areas.size(); ++i) {
+ if (extruder_areas[i].size() < 3) {
+ // No dedicated area for this extruder: it can reach the whole bed.
+ m_extruder_printable_areas[i] = m_bed_printable_area;
+ continue;
+ }
+ Polygon extruder_poly = to_scaled_polygon(extruder_areas[i]);
+ if (m_bed_printable_area.points.size() < 3) {
+ m_extruder_printable_areas[i] = std::move(extruder_poly);
+ continue;
+ }
+ // The reachable area is the extruder area clipped to the bed. Bed shapes are
+ // convex in practice, so keep the largest resulting contour.
+ Polygons clipped = intersection(extruder_poly, m_bed_printable_area);
+ const Polygon *largest = nullptr;
+ double best_area = 0.;
+ for (const Polygon &p : clipped) {
+ double a = std::abs(p.area());
+ if (a > best_area) { best_area = a; largest = &p; }
+ }
+ m_extruder_printable_areas[i] = largest ? *largest : std::move(extruder_poly);
+ }
+ }
+}
+
+const Polygon *GCodeWriter::active_printable_area() const
+{
+ if (const Extruder *e = this->filament()) {
+ size_t id = e->extruder_id();
+ if (id < m_extruder_printable_areas.size() && m_extruder_printable_areas[id].points.size() >= 3)
+ return &m_extruder_printable_areas[id];
+ }
+ if (m_bed_printable_area.points.size() >= 3)
+ return &m_bed_printable_area;
+ return nullptr;
+}
+
+bool GCodeWriter::spiral_lift_fits_printable_area(const Vec2d ¢er, double radius) const
+{
+ const Polygon *area = this->active_printable_area();
+ if (area == nullptr)
+ return true; // Boundary unknown: don't restrict (preserve previous behavior).
+
+ const Point c = Point::new_scale(center.x(), center.y());
+ const double r_scaled = scale_(radius);
+ const double r2 = r_scaled * r_scaled;
+
+ // The spiral traces a full circle of `radius` around `center`, so the center must lie
+ // inside the printable area and every edge must be at least `radius` away from it.
+ if (!area->contains(c))
+ return false;
+ const Points &pts = area->points;
+ for (size_t i = 0, n = pts.size(); i < n; ++i)
+ if (Line::distance_to_squared(c, pts[i], pts[(i + 1) % n]) < r2)
+ return false;
+ return true;
}
void GCodeWriter::set_extruders(std::vector extruder_ids)
@@ -731,14 +811,19 @@ std::string GCodeWriter::eager_lift(const LiftType type) {
}
// BBS: spiral lift only safe with known position
- // TODO: check the arc will move within bed area
if (type == LiftType::SpiralLift && this->is_current_position_clear()) {
double radius = target_lift / (2 * PI * atan(filament()->travel_slope()));
// static spiral alignment when no move in x,y plane.
- // spiral centra is a radius distance to the right (y=0)
+ // spiral centra is a radius distance to the right (y=0)
Vec2d ij_offset = { radius, 0 };
- if (target_lift > 0) {
+ // Orca: keep the spiral inside the active extruder's printable area, otherwise
+ // fall back to a normal lift to avoid colliding with the print boundary. m_pos
+ // includes the plate offset, so remove it to match the printable area coordinates.
+ const Vec2d spiral_center = { m_pos.x() - m_x_offset + ij_offset.x(), m_pos.y() - m_y_offset + ij_offset.y() };
+ if (target_lift > 0 && this->spiral_lift_fits_printable_area(spiral_center, radius)) {
lift_move = this->_spiral_travel_to_z(m_pos(2) + target_lift, ij_offset, "spiral lift Z");
+ } else if (target_lift > 0) {
+ lift_move = _travel_to_z(m_pos(2) + target_lift, "normal lift Z");
}
}
//BBS: if position is unknown use normal lift
@@ -793,7 +878,15 @@ std::string GCodeWriter::travel_to_xyz(const Vec3d &point, const std::string &co
double radius = delta(2) / (2 * PI * atan(this->filament()->travel_slope()));
Vec2d ij_offset = radius * delta_no_z.normalized();
ij_offset = { -ij_offset(1), ij_offset(0) };
- slop_move = this->_spiral_travel_to_z(target(2), ij_offset, "spiral lift Z");
+ // Orca: only perform the spiral lift if its full circle stays inside the
+ // printable area of the active extruder, otherwise fall back to a normal
+ // lift to avoid colliding with the print boundary. `source` is already in
+ // bed coordinates (plate offset removed), matching the printable area.
+ const Vec2d spiral_center = { source.x() + ij_offset.x(), source.y() + ij_offset.y() };
+ if (this->spiral_lift_fits_printable_area(spiral_center, radius))
+ slop_move = this->_spiral_travel_to_z(target(2), ij_offset, "spiral lift Z");
+ else
+ slop_move = _travel_to_z(target.z(), "normal lift Z");
}
//BBS: SlopeLift
else if (m_to_lift_type == LiftType::SlopeLift &&
diff --git a/src/libslic3r/GCodeWriter.hpp b/src/libslic3r/GCodeWriter.hpp
index 2e7ea2176c..fcb63c3e96 100644
--- a/src/libslic3r/GCodeWriter.hpp
+++ b/src/libslic3r/GCodeWriter.hpp
@@ -6,6 +6,7 @@
#include
#include "Extruder.hpp"
#include "Point.hpp"
+#include "Polygon.hpp"
#include "PrintConfig.hpp"
#include "GCode/CoolingBuffer.hpp"
@@ -132,6 +133,8 @@ public:
const bool is_bbl_printers() const {return m_is_bbl_printers;}
void set_is_first_layer(bool bval) { m_is_first_layer = bval; }
GCodeFlavor get_gcode_flavor() const { return config.gcode_flavor; }
+ void invalidate_acceleration() { m_last_acceleration = 0; m_last_travel_acceleration = 0; }
+ void invalidate_jerk() { m_last_jerk = 0; }
// Returns whether this flavor supports separate print and travel acceleration.
static bool supports_separate_travel_acceleration(GCodeFlavor flavor);
@@ -181,6 +184,14 @@ public:
// Orca: slicing resolution in mm
double m_resolution = 0.01;
+ // Orca: printable area polygons (scaled, bed coordinates) used to keep spiral lifts
+ // from colliding with the print boundary. m_extruder_printable_areas holds the
+ // per-extruder reachable area (intersected with the bed) when a printer defines
+ // different boundaries per extruder; m_bed_printable_area is the global fallback.
+ // Storing full polygons (rather than a bounding box) keeps the check correct for
+ // non-rectangular beds such as delta/circular printers.
+ Polygon m_bed_printable_area;
+ std::vector m_extruder_printable_areas;
std::string m_gcode_label_objects_start;
std::string m_gcode_label_objects_end;
@@ -197,6 +208,10 @@ public:
std::string _travel_to_z(double z, const std::string &comment);
std::string _spiral_travel_to_z(double z, const Vec2d &ij_offset, const std::string &comment);
+ // Orca: printable area of the active extruder (per-extruder when configured, otherwise the bed). Null when unknown.
+ const Polygon *active_printable_area() const;
+ // Orca: true if a full spiral-lift circle (center in bed coordinates, mm) fits inside the active printable area.
+ bool spiral_lift_fits_printable_area(const Vec2d ¢er, double radius) const;
std::string _retract(double length, double restart_extra, const std::string &comment);
std::string set_acceleration_internal(Acceleration type, unsigned int acceleration);
diff --git a/src/libslic3r/MultiMaterialSegmentation.cpp b/src/libslic3r/MultiMaterialSegmentation.cpp
index 9e465715d5..6f80f7b759 100644
--- a/src/libslic3r/MultiMaterialSegmentation.cpp
+++ b/src/libslic3r/MultiMaterialSegmentation.cpp
@@ -1177,6 +1177,18 @@ static bool is_volume_sinking(const indexed_triangle_set &its, const Transform3d
//#define MMU_SEGMENTATION_DEBUG_TOP_BOTTOM
+double resolve_outer_wall_line_width(const PrintRegionConfig ®ion_config, const PrintObjectConfig &object_config, const PrintConfig &print_config)
+{
+ // A filament id of 0 underflows, and get_at() then falls back to the first nozzle.
+ const double nozzle_diameter = print_config.nozzle_diameter.get_at(region_config.outer_wall_filament_id - 1);
+ ConfigOptionFloatOrPercent width = region_config.outer_wall_line_width;
+ if (width.value == 0)
+ width = object_config.line_width;
+ if (!width.percent && width.value <= 0.)
+ return Flow::auto_extrusion_width(frExternalPerimeter, float(nozzle_diameter));
+ return width.get_abs_value(nozzle_diameter);
+}
+
// Returns segmentation of top and bottom layers based on painting in segmentation gizmos.
static inline std::vector> segmentation_top_and_bottom_layers(const PrintObject &print_object,
const std::vector &input_expolygons,
@@ -1347,8 +1359,7 @@ static inline std::vector> segmentation_top_and_bottom_l
// As this region may split existing regions, we collect statistics over all regions for color_idx == 0.
color_idx == 0 || config.outer_wall_filament_id == int(color_idx)) {
//BBS: the extrusion line width is outer wall rather than inner wall
- const double nozzle_diameter = print_object.print()->config().nozzle_diameter.get_at(0);
- double outer_wall_line_width = config.get_abs_value("outer_wall_line_width", nozzle_diameter);
+ double outer_wall_line_width = resolve_outer_wall_line_width(config, print_object.config(), print_object.print()->config());
out.extrusion_width = std::max(out.extrusion_width, outer_wall_line_width);
out.top_shell_layers = std::max(out.top_shell_layers, config.top_shell_layers);
out.bottom_shell_layers = std::max(out.bottom_shell_layers, config.bottom_shell_layers);
diff --git a/src/libslic3r/MultiMaterialSegmentation.hpp b/src/libslic3r/MultiMaterialSegmentation.hpp
index fad97e4cf2..ee7b07c0d8 100644
--- a/src/libslic3r/MultiMaterialSegmentation.hpp
+++ b/src/libslic3r/MultiMaterialSegmentation.hpp
@@ -9,6 +9,9 @@ namespace Slic3r {
class ExPolygon;
class ModelVolume;
class PrintObject;
+class PrintConfig;
+class PrintObjectConfig;
+class PrintRegionConfig;
class FacetsAnnotation;
using ExPolygons = std::vector;
@@ -52,6 +55,9 @@ std::vector> multi_material_segmentation_by_painting(con
// Returns fuzzy skin segmentation based on painting in fuzzy skin segmentation gizmo
std::vector> fuzzy_skin_segmentation_by_painting(const PrintObject &print_object, const std::function &throw_on_cancel_callback);
+// Effective outer-wall line width for a region, resolved against its own nozzle with PrintRegion::flow's fallback.
+double resolve_outer_wall_line_width(const PrintRegionConfig ®ion_config, const PrintObjectConfig &object_config, const PrintConfig &print_config);
+
} // namespace Slic3r
namespace boost::polygon {
diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp
index bfe66069d1..ed712ef6a9 100644
--- a/src/libslic3r/Preset.cpp
+++ b/src/libslic3r/Preset.cpp
@@ -1376,7 +1376,7 @@ static std::vector s_Preset_filament_options {/*"filament_colour",
"filament_ramming_travel_time", "filament_ramming_travel_time_nc",
"filament_pre_cooling_temperature", "filament_pre_cooling_temperature_nc",
"filament_preheat_temperature_delta", "filament_retract_length_nc",
- "filament_change_length_nc", "filament_prime_volume_nc",
+ "filament_change_length_nc", "filament_prime_volume", "filament_prime_volume_nc",
"long_retractions_when_ec", "retraction_distances_when_ec",
"plugin_config_overrides",
//ams chamber
@@ -3504,7 +3504,7 @@ inline t_config_option_keys deep_diff(const ConfigBase &config_this, const Confi
if (this_opt != nullptr && other_opt != nullptr && *this_opt != *other_opt)
{
//BBS: add bed_exclude_area
- if (opt_key == "printable_area" || opt_key == "bed_exclude_area" || opt_key == "compatible_prints" || opt_key == "compatible_printers" || opt_key == "thumbnails" || opt_key == "wrapping_exclude_area") {
+ if (opt_key == "printable_area" || opt_key == "bed_exclude_area" || opt_key == "compatible_prints" || opt_key == "compatible_printers" || opt_key == "thumbnails" || opt_key == "wrapping_exclude_area" || opt_key == "slicing_pipeline_plugin") {
// Scalar variable, or a vector variable, which is independent from number of extruders,
// thus the vector is presented to the user as a single input.
diff.emplace_back(opt_key);
diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp
index 7c6290634b..808bc590be 100644
--- a/src/libslic3r/Print.cpp
+++ b/src/libslic3r/Print.cpp
@@ -3605,7 +3605,8 @@ std::vector> Print::get_physical_unprintable_filaments(const std::
return physical_unprintables;
auto get_unprintable_extruder_id = [&](unsigned int filament_idx) -> int {
- int status = m_config.filament_printable.values[filament_idx];
+ // filament_printable may be shorter than the filament count; get_at() clamps.
+ int status = m_config.filament_printable.get_at(filament_idx);
for (int i = 0; i < extruder_num; ++i) {
if (!(status >> i & 1)) {
return i;
@@ -4017,6 +4018,8 @@ void Print::_make_wipe_tower()
m_wipe_tower_data.tool_ordering.empty() ? 0.f : m_wipe_tower_data.tool_ordering.back().print_z, m_wipe_tower_data.tool_ordering.all_extruders());
wipe_tower.set_has_tpu_filament(this->has_tpu_filament());
wipe_tower.set_filament_map(this->get_filament_maps());
+ // Vortek H2C: pass nozzle-level map for carousel rotation detection in tool_change_new()
+ wipe_tower.set_filament_nozzle_map(this->get_filament_nozzle_maps());
// Feed the has_filament_switcher device flag (develop-only dynamic key, read defensively from
// the full config — no shipping profile sets it) and the shared printable bed used by the PETG
// pre-extrusion offset clamp. Both are inert unless has_filament_switcher is set.
@@ -4052,14 +4055,32 @@ void Print::_make_wipe_tower()
multi_extruder_flush.emplace_back(wipe_volumes);
}
- std::vectorfilament_maps = get_filament_maps();
+ // Use NozzleStatusRecorder for per-carousel-slot tracking (BBS pattern).
+ // The original Orca code tracked per-extruder (2 slots), which collapsed all
+ // carousel filaments into one slot and caused massive redundant AMS flushing.
+ auto group_result = get_layered_nozzle_group_result();
+ MultiNozzleUtils::NozzleStatusRecorder nozzle_recorder;
+ // Fallback (group_result == null) per-physical-nozzle tracking, matching the original
+ // pre-port behavior: remembers the last filament loaded in each physical nozzle slot.
+ std::vector nozzle_cur_filament_ids(nozzle_nums, (unsigned int) -1);
+
+ std::vectorfilament_maps = get_filament_maps();
+ int layer_idx = -1;
- std::vector nozzle_cur_filament_ids(nozzle_nums, -1);
unsigned int current_filament_id = m_wipe_tower_data.tool_ordering.first_extruder();
- size_t cur_nozzle_id = filament_maps[current_filament_id] - 1;
- nozzle_cur_filament_ids[cur_nozzle_id] = current_filament_id;
+ // Initialize NozzleStatusRecorder with the first filament's carousel slot
+ if (group_result) {
+ auto nozzle = group_result->get_nozzle_for_filament(current_filament_id, layer_idx);
+ if (nozzle)
+ nozzle_recorder.set_nozzle_status(nozzle->group_id, current_filament_id, nozzle->extruder_id);
+ } else {
+ size_t cur_nozzle_id = filament_maps[current_filament_id] - 1;
+ nozzle_cur_filament_ids[cur_nozzle_id] = current_filament_id;
+ }
for (auto& layer_tools : m_wipe_tower_data.tool_ordering.layer_tools()) { // for all layers
+ ++layer_idx;
+
if (!layer_tools.has_wipe_tower) continue;
bool first_layer = &layer_tools == &m_wipe_tower_data.tool_ordering.front();
wipe_tower.plan_toolchange((float)layer_tools.print_z, (float)layer_tools.wipe_tower_layer_height, current_filament_id, current_filament_id);
@@ -4070,30 +4091,76 @@ void Print::_make_wipe_tower()
if (filament_id == current_filament_id)
continue;
- int nozzle_id = filament_maps[filament_id] - 1;
- unsigned int pre_filament_id = nozzle_cur_filament_ids[nozzle_id];
-
float volume_to_purge = 0;
- if (pre_filament_id != (unsigned int)(-1) && pre_filament_id != filament_id) {
- volume_to_purge = multi_extruder_flush[nozzle_id][pre_filament_id][filament_id];
- // Fast purge mode uses flush_multiplier_fast; Default is inert.
- float flush_multiplier = (m_config.prime_volume_mode == PrimeVolumeMode::pvmFast) ? m_config.flush_multiplier_fast.get_at(nozzle_id)
- : m_config.flush_multiplier.get_at(nozzle_id);
- volume_to_purge *= flush_multiplier;
- volume_to_purge = pre_filament_id == -1 ? 0 :
- layer_tools.wiping_extrusions().mark_wiping_extrusions(*this, current_filament_id, filament_id, volume_to_purge);
+
+ // Per-carousel-slot purge tracking via NozzleStatusRecorder
+ if (group_result) {
+ auto nozzle_info = group_result->get_nozzle_for_filament(filament_id, layer_idx);
+ if (nozzle_info) {
+ int extruder_id = nozzle_info->extruder_id;
+ int nozzle_id = nozzle_info->group_id;
+ int prev_nozzle_filament = nozzle_recorder.get_filament_in_nozzle(nozzle_id);
+
+ if (!nozzle_recorder.is_nozzle_empty(nozzle_id) &&
+ static_cast(filament_id) != prev_nozzle_filament) {
+ volume_to_purge = multi_extruder_flush[extruder_id][prev_nozzle_filament][filament_id];
+ // Fast purge mode uses flush_multiplier_fast; Default is inert.
+ float flush_multiplier = (m_config.prime_volume_mode == PrimeVolumeMode::pvmFast)
+ ? m_config.flush_multiplier_fast.get_at(extruder_id)
+ : m_config.flush_multiplier.get_at(extruder_id);
+ volume_to_purge *= flush_multiplier;
+ volume_to_purge = layer_tools.wiping_extrusions().mark_wiping_extrusions(
+ *this, current_filament_id, filament_id, volume_to_purge);
+ }
+ nozzle_recorder.set_nozzle_status(nozzle_id, filament_id, extruder_id);
+ }
+ } else {
+ // Fallback: original Orca per-physical-nozzle path (non-carousel printers).
+ // Flush source is the last filament that occupied THIS nozzle, guarded so the
+ // first use of a nozzle incurs no flush.
+ int nozzle_id = filament_maps[filament_id] - 1;
+ unsigned int pre_filament_id = nozzle_cur_filament_ids[nozzle_id];
+ if (pre_filament_id != (unsigned int) -1 && pre_filament_id != filament_id) {
+ volume_to_purge = multi_extruder_flush[nozzle_id][pre_filament_id][filament_id];
+ float flush_multiplier = (m_config.prime_volume_mode == PrimeVolumeMode::pvmFast)
+ ? m_config.flush_multiplier_fast.get_at(nozzle_id)
+ : m_config.flush_multiplier.get_at(nozzle_id);
+ volume_to_purge *= flush_multiplier;
+ volume_to_purge = layer_tools.wiping_extrusions().mark_wiping_extrusions(
+ *this, current_filament_id, filament_id, volume_to_purge);
+ }
+ nozzle_cur_filament_ids[nozzle_id] = filament_id;
}
//During the filament change, the extruder will extrude an extra length of grab_length for the corresponding detection, so the purge can reduce this length.
- float grab_purge_volume = m_config.grab_length.get_at(nozzle_id) * 2.4; //(diameter/2)^2*PI=2.4
+ int grab_extruder_id = filament_maps[filament_id] - 1;
+ float grab_purge_volume = m_config.grab_length.get_at(grab_extruder_id) * 2.4; //(diameter/2)^2*PI=2.4
volume_to_purge = std::max(0.f, volume_to_purge - grab_purge_volume);
- // Saving mode reduces the prime volume to 15 mm3; Default is inert.
- float prime_volume = (m_config.prime_volume_mode == PrimeVolumeMode::pvmSaving) ? 15.f : (float) m_config.prime_volume;
+ // Select prime volume per-filament: nozzle change (carousel rotation) uses
+ // filament_prime_volume_nc, filament change (same nozzle slot) uses filament_prime_volume.
+ float wipe_volume_ec = filament_id < m_config.filament_prime_volume.values.size()
+ ? m_config.filament_prime_volume.values[filament_id]
+ : (float) m_config.prime_volume;
+ float wipe_volume_nc = filament_id < m_config.filament_prime_volume_nc.values.size()
+ ? m_config.filament_prime_volume_nc.values[filament_id]
+ : (float) m_config.prime_volume;
+
+ float prime_volume = wipe_volume_ec;
+ if (group_result) {
+ bool is_nozzle_change = group_result->are_filaments_same_extruder(current_filament_id, filament_id, layer_idx) &&
+ !group_result->are_filaments_same_nozzle(current_filament_id, filament_id, layer_idx);
+ if (is_nozzle_change) {
+ prime_volume = wipe_volume_nc;
+ }
+ }
+ if (m_config.prime_volume_mode == PrimeVolumeMode::pvmSaving) {
+ prime_volume = 15.f;
+ }
+
wipe_tower.plan_toolchange((float)layer_tools.print_z, (float)layer_tools.wipe_tower_layer_height, current_filament_id, filament_id,
prime_volume, volume_to_purge);
current_filament_id = filament_id;
- nozzle_cur_filament_ids[nozzle_id] = filament_id;
}
layer_tools.wiping_extrusions().ensure_perimeters_infills_order(*this);
diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp
index 2dcbb5b259..a9860cbbed 100644
--- a/src/libslic3r/PrintConfig.cpp
+++ b/src/libslic3r/PrintConfig.cpp
@@ -7384,7 +7384,7 @@ void PrintConfigDef::init_fff_params()
def->tooltip = L("The flush multiplier used in fast purge mode.");
def->set_default_value(new ConfigOptionFloats{1.2});
- // BBS
+ // Orca: used by the generic (Type2) wipe tower; also the fallback for filament_prime_volume on Type1.
def = this->add("prime_volume", coFloat);
def->label = L("Prime volume");
def->tooltip = L("This is the volume of material to prime the extruder with on the tower.");
@@ -8030,6 +8030,16 @@ void PrintConfigDef::init_fff_params()
def->mode = comDevelop;
def->set_default_value(new ConfigOptionBool(false));
+ // Used by the Type1 wipe tower: filament_prime_volume on a filament change,
+ // filament_prime_volume_nc on a hotend/nozzle change. Type2 uses prime_volume instead.
+ def = this->add("filament_prime_volume", coFloats);
+ def->label = L("Filament change");
+ def->tooltip = L("The volume of material required to prime the extruder on the tower, excluding a hotend change.");
+ def->sidetext = L("mm³");
+ def->min = 1.0;
+ def->mode = comSimple;
+ def->set_default_value(new ConfigOptionFloats{45.});
+
def = this->add("filament_prime_volume_nc", coFloats);
def->label = L("Hotend change");
def->tooltip = L("The volume of material required to prime the extruder for a hotend change on the tower.");
@@ -9050,7 +9060,7 @@ void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &va
"retraction_distance_when_cut",
"internal_bridge_support_thickness", "top_area_threshold", "reduce_wall_solid_infill","filament_load_time","filament_unload_time",
"smooth_coefficient", "overhang_totally_speed", "silent_mode",
- "overhang_speed_classic", "filament_prime_volume",
+ "overhang_speed_classic",
"anisotropic_surfaces", // superseded by top_surface_fill_order / bottom_surface_fill_order
};
diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp
index c830158700..73811e3ecb 100644
--- a/src/libslic3r/PrintConfig.hpp
+++ b/src/libslic3r/PrintConfig.hpp
@@ -1841,6 +1841,7 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE(
// BBS: wipe tower is only used for priming
((ConfigOptionFloat, prime_volume))
// Nozzle-change (nc) prime volume + pre-heat delta
+ ((ConfigOptionFloats, filament_prime_volume))
((ConfigOptionFloats, filament_prime_volume_nc))
((ConfigOptionFloatsNullable, filament_preheat_temperature_delta))
((ConfigOptionFloats, flush_multiplier))
diff --git a/src/libslic3r/calib.cpp b/src/libslic3r/calib.cpp
index f5490138ed..10fa9653eb 100644
--- a/src/libslic3r/calib.cpp
+++ b/src/libslic3r/calib.cpp
@@ -771,6 +771,7 @@ CustomGCode::Info CalibPressureAdvancePattern::generate_custom_gcodes(const Dyna
}
}
+ gcode << m_writer.reset_e();
gcode << m_writer.set_pressure_advance(m_params.start);
gcode << "; end pressure advance pattern for layer\n";
diff --git a/src/libslic3r/calib.hpp b/src/libslic3r/calib.hpp
index db147fdeb4..15ac7303c9 100644
--- a/src/libslic3r/calib.hpp
+++ b/src/libslic3r/calib.hpp
@@ -35,10 +35,10 @@ struct Calib_Params
{
Calib_Params() : mode(CalibMode::Calib_None){};
int extruder_id = 0;
- double start, end, step;
- bool print_numbers;
- double freqStartX, freqEndX, freqStartY, freqEndY;
- int test_model;
+ double start = 0.0, end = 1.0, step = 0.1;
+ bool print_numbers = false;
+ double freqStartX = 0.0, freqEndX = 1.0, freqStartY = 0.0, freqEndY = 1.0;
+ int test_model = 0;
std::string shaper_type;
std::vector accelerations;
std::vector speeds;
diff --git a/src/slic3r/GUI/DeviceCore/DevManager.cpp b/src/slic3r/GUI/DeviceCore/DevManager.cpp
index 320d68f727..0b9e67adbd 100644
--- a/src/slic3r/GUI/DeviceCore/DevManager.cpp
+++ b/src/slic3r/GUI/DeviceCore/DevManager.cpp
@@ -558,6 +558,7 @@ namespace Slic3r
}
else
{
+ Slic3r::GUI::wxGetApp().reset_unsigned_plugin_warning();
if (m_agent)
{
if (it->second->connection_type() != "lan" || it->second->connection_type().empty())
diff --git a/src/slic3r/GUI/Field.cpp b/src/slic3r/GUI/Field.cpp
index 9701fa7a6d..bcbc381eff 100644
--- a/src/slic3r/GUI/Field.cpp
+++ b/src/slic3r/GUI/Field.cpp
@@ -1043,14 +1043,14 @@ void TextCtrl::propagate_value()
void TextCtrl::set_value(const boost::any& value, bool change_event/* = false*/) {
m_disable_change_event = !change_event;
+
if (m_opt.nullable) {
const bool m_is_na_val = value.empty() || (boost::any_cast(value) == _(L("N/A")));
if (!m_is_na_val)
m_last_meaningful_value = value;
- text_ctrl()->SetValue(boost::any_cast(value)); // BBS
}
- else
- text_ctrl()->SetValue(value.empty() ? "" : boost::any_cast(value)); // BBS // BBS: null value
+
+ text_ctrl()->SetValue(value.empty() ? wxString() : boost::any_cast(value));
m_disable_change_event = false;
if (!change_event) {
@@ -1187,18 +1187,24 @@ void CheckBox::set_value(const boost::any& value, bool change_event)
m_disable_change_event = !change_event;
if (m_opt.nullable) {
const bool is_value_unsigned_char = value.type() == typeid(unsigned char);
+ bool bool_value = false;
+
m_is_na_val = value.empty() || (is_value_unsigned_char &&
boost::any_cast(value) == ConfigOptionBoolsNullable::nil_value());
- if (!m_is_na_val)
- m_last_meaningful_value = is_value_unsigned_char ? value : static_cast(boost::any_cast(value));
- const auto bool_value = is_value_unsigned_char ?
- boost::any_cast(value) != 0 :
- boost::any_cast(value);
- dynamic_cast<::CheckBox*>(window)->SetValue(m_is_na_val ? false : bool_value); // BBS
+ if (!m_is_na_val) {
+ bool_value = is_value_unsigned_char ?
+ boost::any_cast(value) != 0 :
+ boost::any_cast(value);
+ m_last_meaningful_value = is_value_unsigned_char ? value : static_cast(bool_value);
+ }
+
+ dynamic_cast<::CheckBox*>(window)->SetValue(bool_value);
}
- else if (!value.empty()) // BBS: null value
+ else if (!value.empty()){ // BBS: null value
dynamic_cast<::CheckBox*>(window)->SetValue(boost::any_cast(value)); // BBS
+ }
+
dynamic_cast<::CheckBox*>(window)->SetHalfChecked(value.empty());
m_disable_change_event = false;
}
diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp
index 312c4f6731..9a846b1aaa 100644
--- a/src/slic3r/GUI/GUI_App.cpp
+++ b/src/slic3r/GUI/GUI_App.cpp
@@ -6127,18 +6127,23 @@ bool GUI_App::process_network_msg(std::string dev_id, std::string msg)
}
else if (msg == "unsigned_studio") {
BOOST_LOG_TRIVIAL(info) << "process_network_msg, unsigned_studio";
- MessageDialog
- msg_dlg(nullptr,
- _L("To use OrcaSlicer with Bambu Lab printers, you need to enable LAN mode and Developer mode on your printer.\n\n"
- "Please go to your printer's settings and:\n"
- "1. Turn on LAN mode\n"
- "2. Enable Developer mode\n\n"
- "Developer mode allows the printer to work exclusively through local network access, "
- "enabling full functionality with OrcaSlicer."),
- _L("Network Plug-in Restriction"), wxAPPLY | wxOK);
- m_show_error_msgdlg = true;
- msg_dlg.ShowModal();
- m_show_error_msgdlg = false;
+ // Plugin re-emits this on every subscribe retry; latch it so it shows
+ // once per connection episode.
+ if (!m_show_error_msgdlg && !m_unsigned_plugin_warning_shown) {
+ m_unsigned_plugin_warning_shown = true;
+ MessageDialog
+ msg_dlg(nullptr,
+ _L("To use OrcaSlicer with Bambu Lab printers, you need to enable LAN mode and Developer mode on your printer.\n\n"
+ "Please go to your printer's settings and:\n"
+ "1. Turn on LAN mode\n"
+ "2. Enable Developer mode\n\n"
+ "Developer mode allows the printer to work exclusively through local network access, "
+ "enabling full functionality with OrcaSlicer."),
+ _L("Network Plug-in Restriction"), wxAPPLY | wxOK);
+ m_show_error_msgdlg = true;
+ msg_dlg.ShowModal();
+ m_show_error_msgdlg = false;
+ }
return true;
}
}
diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp
index c90e58887e..bda27d40ec 100644
--- a/src/slic3r/GUI/GUI_App.hpp
+++ b/src/slic3r/GUI/GUI_App.hpp
@@ -343,6 +343,7 @@ private:
public:
//try again when subscription fails
void on_start_subscribe_again(std::string dev_id);
+ void reset_unsigned_plugin_warning() { m_unsigned_plugin_warning_shown = false; }
std::string get_local_models_path();
bool OnInit() override;
int OnExit() override;
diff --git a/src/slic3r/GUI/LibVGCode/LibVGCodeWrapper.cpp b/src/slic3r/GUI/LibVGCode/LibVGCodeWrapper.cpp
index 5b5c7da076..8a3c497eae 100644
--- a/src/slic3r/GUI/LibVGCode/LibVGCodeWrapper.cpp
+++ b/src/slic3r/GUI/LibVGCode/LibVGCodeWrapper.cpp
@@ -215,8 +215,8 @@ GCodeInputData convert(const Slic3r::GCodeProcessorResult& result, const std::ve
const EOptionType option_type = move_type_to_option(curr_type);
if (option_type == EOptionType::COUNT || option_type == EOptionType::Travels || option_type == EOptionType::Wipes) {
if (ret.vertices.empty() || prev.type != curr.type || prev.extrusion_role != curr.extrusion_role
- // ORCA: Fix issue with flow rate changes being visualized incorrectly
- || prev.mm3_per_mm != curr.mm3_per_mm) {
+ // ORCA: Split the path when a preview value changes.
+ || prev.mm3_per_mm != curr.mm3_per_mm || prev.acceleration != curr.acceleration || prev.jerk != curr.jerk) {
// to allow libvgcode to properly detect the start/end of a path we need to add a 'phantom' vertex
// equal to the current one with the exception of the position, which should match the previous move position,
// and the times, which are set to zero
diff --git a/src/slic3r/GUI/NotificationManager.cpp b/src/slic3r/GUI/NotificationManager.cpp
index 175783f5ab..8e81f0654c 100644
--- a/src/slic3r/GUI/NotificationManager.cpp
+++ b/src/slic3r/GUI/NotificationManager.cpp
@@ -2338,7 +2338,7 @@ void NotificationManager::SharedProfilesNotification::render_text(ImGuiWrapper&
{
float hyper_y = starting_y + m_endlines.size() * shift_y + m_line_height * .5f;
float dont_show_y = hyper_y + ImGui::CalcTextSize((m_hypertext + " ").c_str()).y + m_line_height * .5f;
- std::string dont_show_text = _u8L("Don't show again") + std::to_string(m_endlines.size());
+ std::string dont_show_text = _u8L("Don't show again");
ImVec2 part_size = ImGui::CalcTextSize(dont_show_text.c_str());
if (!m_multiline && m_lines_count > 2) {
diff --git a/src/slic3r/GUI/PartPlate.cpp b/src/slic3r/GUI/PartPlate.cpp
index 415e1ea0f5..a1211f4692 100644
--- a/src/slic3r/GUI/PartPlate.cpp
+++ b/src/slic3r/GUI/PartPlate.cpp
@@ -2662,7 +2662,8 @@ bool PartPlate::check_outside(int obj_id, int instance_id, BoundingBoxf3* boundi
if (instance_box.min.z() < SINKING_Z_THRESHOLD) {
// Orca: For sinking object, we use a more expensive algorithm so part below build plate won't be considered
- if (plate_box.intersects(instance_box)) {
+ // m_plater is null in CLI mode.
+ if (m_plater && plate_box.intersects(instance_box)) {
// TODO: FIXME: this does not take exclusion area into account
const BuildVolume build_volume(get_shape(), m_plater->build_volume().printable_height(), m_extruder_areas, m_extruder_heights);
const auto state = instance->calc_print_volume_state(build_volume);
diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp
index 3af7340c28..feecdfa163 100644
--- a/src/slic3r/GUI/Plater.cpp
+++ b/src/slic3r/GUI/Plater.cpp
@@ -11988,12 +11988,53 @@ bool Plater::priv::check_ams_status_impl(bool is_slice_all)
auto nozzle_volumes_values = preset_bundle->project_config.option("nozzle_volume_type")->values;
assert(obj->GetExtderSystem()->GetTotalExtderCount() == 2 && nozzle_volumes_values.size() == 2);
if (obj->GetExtderSystem()->GetTotalExtderCount() == 2 && nozzle_volumes_values.size() == 2) {
- // Map device flow->volume via the table, not `flowtype - 1` (which mis-maps U_FLOW to nvtHybrid).
- NozzleVolumeType right_nozzle_type = DevNozzle::ToNozzleVolumeType(obj->GetExtderSystem()->GetNozzleFlowType(0));
- NozzleVolumeType left_nozzle_type = DevNozzle::ToNozzleVolumeType(obj->GetExtderSystem()->GetNozzleFlowType(1));
- NozzleVolumeType preset_left_type = NozzleVolumeType(nozzle_volumes_values[0]);
- NozzleVolumeType preset_right_type = NozzleVolumeType(nozzle_volumes_values[1]);
- is_same_as_printer = (left_nozzle_type == preset_left_type && right_nozzle_type == preset_right_type);
+ // [Vortek] H2C: Use BBS-style NozzleGroupInfo comparison instead of direct nozzle type match.
+ // This correctly handles Hybrid presets (which expand into per-type counts) and detects
+ // never-synced state (nozzle_count==0) so the first sync dialog appears.
+ // After device sync, extruder_nozzle_stats matches printer → dialog suppressed.
+ // Reference to BBS: BambuStudio/src/slic3r/GUI/Plater.cpp is_extruder_stat_synced()
+ using namespace MultiNozzleUtils;
+ auto nozzle_diameter_values = preset_bundle->printers.get_edited_preset().config.option("nozzle_diameter")->values;
+
+ // Build preset nozzle groups from extruder_nozzle_stats config
+ std::vector> preset_nozzle_infos(nozzle_diameter_values.size());
+ for (size_t extruder_id = 0; extruder_id < nozzle_diameter_values.size(); ++extruder_id) {
+ NozzleVolumeType preset_volume_type = NozzleVolumeType(nozzle_volumes_values[extruder_id]);
+ std::string preset_diameter = format_diameter_to_str(nozzle_diameter_values[extruder_id]);
+
+ if (preset_volume_type == nvtHybrid) {
+ // Hybrid: expand into separate groups for each nozzle type from stats
+ int std_count = getExtruderNozzleCount(preset_bundle, extruder_id, nvtStandard);
+ int hf_count = getExtruderNozzleCount(preset_bundle, extruder_id, nvtHighFlow);
+ if (std_count > 0)
+ preset_nozzle_infos[extruder_id].emplace_back(preset_diameter, nvtStandard, extruder_id, std_count);
+ if (hf_count > 0)
+ preset_nozzle_infos[extruder_id].emplace_back(preset_diameter, nvtHighFlow, extruder_id, hf_count);
+ // If both are 0 → never synced → empty group → will mismatch
+ } else {
+ int count = getExtruderNozzleCount(preset_bundle, extruder_id, preset_volume_type);
+ preset_nozzle_infos[extruder_id].emplace_back(preset_diameter, preset_volume_type, extruder_id, count);
+ }
+ }
+
+ // Compare with printer nozzle groups
+ auto printer_groups = obj->GetNozzleSystem()->GetNozzleGroups();
+ for (const auto& preset_groups : preset_nozzle_infos) {
+ for (const auto& preset_group : preset_groups) {
+ if (preset_group.nozzle_count == 0) {
+ // Never synced: if printer has nozzles of this type → needs sync
+ if (std::find_if(printer_groups.begin(), printer_groups.end(),
+ [&preset_group](const NozzleGroupInfo& elem) { return preset_group.is_same_type(elem); })
+ != printer_groups.end()) {
+ is_same_as_printer = false;
+ break;
+ }
+ } else if (std::find(printer_groups.begin(), printer_groups.end(), preset_group) == printer_groups.end()) {
+ is_same_as_printer = false;
+ break;
+ }
+ }
+ }
}
std::vector> ams_count_info;
diff --git a/src/slic3r/GUI/PluginWebDialog.cpp b/src/slic3r/GUI/PluginWebDialog.cpp
index fdaf6c7a23..1808f21ce9 100644
--- a/src/slic3r/GUI/PluginWebDialog.cpp
+++ b/src/slic3r/GUI/PluginWebDialog.cpp
@@ -48,13 +48,14 @@ std::string plugin_defaults_user_script()
return WebViewHostDialog::document_start_injector(css, "orca-plugin-defaults", "beforeend");
}
-// Injected into every page at document start (before the plugin's own scripts).
-// Defines window.orca as the only host surface the page may use. It references
-// window.wx lazily (at call time) so it never races the backend's deferred
-// registration of the "wx" message handler. Guarded against double-injection so
-// it is harmless if also prepended.
+// Injected into the top-level page at document start (before the plugin's own
+// scripts). Defines window.orca as the only host surface the page may use. It
+// references window.wx lazily (at call time) so it never races the backend's
+// deferred registration of the "wx" message handler. Guarded against
+// double-injection so it is harmless if also prepended.
constexpr char ORCA_BRIDGE_JS[] = R"JS(
(function () {
+ if (window.top !== window.self) return;
if (window.orca) return;
var handlers = [];
function send(kind, data) {
diff --git a/src/slic3r/GUI/PluginsDialog.cpp b/src/slic3r/GUI/PluginsDialog.cpp
index 3011c35ce3..3485f686fa 100644
--- a/src/slic3r/GUI/PluginsDialog.cpp
+++ b/src/slic3r/GUI/PluginsDialog.cpp
@@ -300,7 +300,12 @@ PluginAvailableActions evaluate_action_policy(const PluginDialogItem& item)
add_action("open_folder", "Show in folder", has_local);
- add_action("reinstall_plugin", "Reinstall");
+ if (is_cloud) {
+ add_action("reinstall_plugin", "Reinstall");
+ } else {
+ add_action("reload_plugin", "Reload");
+ add_action("clear_cache_reload_plugin", "Delete cache and reload");
+ }
return available_actions;
}
@@ -739,11 +744,13 @@ void PluginsDialog::handle_plugin_menu_action(const std::string& plugin_key, con
unsubscribe_cloud_plugin(row_data);
} else if (action == "delete_mine_plugin") {
delete_mine_local_and_cloud_plugin(plugin_key);
+ } else if (action == "reload_plugin") {
+ reload_local_plugin(plugin_key, /*clear_cache=*/false);
+ } else if (action == "clear_cache_reload_plugin") {
+ reload_local_plugin(plugin_key, /*clear_cache=*/true);
} else if (action == "reinstall_plugin") {
if (row_data.is_cloud_plugin())
reinstall_cloud_plugin(row_data);
- else
- reinstall_local_plugin(plugin_key);
}
}
@@ -1123,7 +1130,7 @@ void PluginsDialog::unsubscribe_cloud_plugin(const PluginDescriptor& plugin)
_L("Unsubscribing plugin"), _L("Deleting local files and unsubscribing plugin..."));
}
-void PluginsDialog::reinstall_local_plugin(const std::string& plugin_key)
+void PluginsDialog::reload_local_plugin(const std::string& plugin_key, bool clear_cache)
{
if (plugin_key.empty())
return;
@@ -1132,11 +1139,34 @@ void PluginsDialog::reinstall_local_plugin(const std::string& plugin_key)
std::pair reload_result{false, ""};
try {
reload_result = run_with_dialog_wait(
- [plugin_key, was_loaded]() -> std::pair {
+ [plugin_key, was_loaded, clear_cache]() -> std::pair {
PluginManager& manager = PluginManager::instance();
+
+ boost::filesystem::path cache_dir;
+ if (clear_cache) {
+ PluginDescriptor descriptor;
+ if (!manager.try_get_plugin_descriptor(plugin_key, descriptor))
+ return {false, "Plugin not found."};
+
+ boost::filesystem::path resolved_root;
+ std::string resolve_error;
+ if (!resolve_allowed_plugin_root(descriptor, {get_orca_plugins_dir()},
+ "Refusing to clear a plugin cache outside the local plugin directory.",
+ resolved_root, resolve_error))
+ return {false, resolve_error};
+ cache_dir = resolved_root / "__whl_extracted__";
+ }
+
if (!manager.unload_plugin(plugin_key))
return {false, "Failed to unload plugin."};
+ if (clear_cache) {
+ boost::system::error_code ec;
+ boost::filesystem::remove_all(cache_dir, ec);
+ if (ec)
+ return {false, "Failed to clear plugin cache: " + ec.message()};
+ }
+
manager.load_plugin(plugin_key, false);
std::string error;
if (!manager.wait_for_plugin_load(plugin_key, std::chrono::minutes(5), error) || !manager.is_plugin_loaded(plugin_key))
diff --git a/src/slic3r/GUI/PluginsDialog.hpp b/src/slic3r/GUI/PluginsDialog.hpp
index de0f44985d..b921801166 100644
--- a/src/slic3r/GUI/PluginsDialog.hpp
+++ b/src/slic3r/GUI/PluginsDialog.hpp
@@ -96,7 +96,7 @@ private:
void open_plugin_folder(const Slic3r::PluginDescriptor& plugin);
void delete_local_plugin(const Slic3r::PluginDescriptor& plugin);
void unsubscribe_cloud_plugin(const Slic3r::PluginDescriptor& plugin);
- void reinstall_local_plugin(const std::string& plugin_key);
+ void reload_local_plugin(const std::string& plugin_key, bool clear_cache);
void reinstall_cloud_plugin(const Slic3r::PluginDescriptor& plugin);
void delete_mine_local_and_cloud_plugin(const std::string& plugin_key);
diff --git a/src/slic3r/GUI/PrePrintChecker.cpp b/src/slic3r/GUI/PrePrintChecker.cpp
index c508fe60b6..0575af23ed 100644
--- a/src/slic3r/GUI/PrePrintChecker.cpp
+++ b/src/slic3r/GUI/PrePrintChecker.cpp
@@ -218,6 +218,49 @@ void PrePrintChecker::add_with_link(PrintDialogStatus state, wxString msg, wxStr
}
}
+// Orca: acknowledgement-checkbox variant of add(); see add_with_link() for the shared classification.
+void PrePrintChecker::add_with_checkbox(PrintDialogStatus state, wxString msg, wxString checkbox_label, bool checked, std::function checkbox_callback)
+{
+ prePrintInfo info;
+
+ if (is_error(state)) {
+ info.level = prePrintInfoLevel::Error;
+ } else if (is_warning(state)) {
+ info.level = prePrintInfoLevel::Warning;
+ } else {
+ info.level = prePrintInfoLevel::Normal;
+ }
+
+ if (is_error_printer(state)) {
+ info.type = prePrintInfoType::Printer;
+ } else if (is_error_filament(state)) {
+ info.type = prePrintInfoType::Filament;
+ } else if (is_warning_printer(state)) {
+ info.type = prePrintInfoType::Printer;
+ } else if (is_warning_filament(state)) {
+ info.type = prePrintInfoType::Filament;
+ }
+
+ info.msg = msg;
+ info.checkbox_label = checkbox_label;
+ info.checkbox_checked = checked;
+ info.checkbox_callback = checkbox_callback;
+
+ switch (info.type) {
+ case prePrintInfoType::Filament:
+ if (std::find(filamentList.begin(), filamentList.end(), info) == filamentList.end()) {
+ filamentList.push_back(info);
+ }
+ break;
+ case prePrintInfoType::Printer:
+ if (std::find(printerList.begin(), printerList.end(), info) == printerList.end()) {
+ printerList.push_back(info);
+ }
+ break;
+ default: break;
+ }
+}
+
//void PrePrintMsgBoard::add(const wxString &msg, const wxString &tips, bool is_error)
//{
@@ -310,6 +353,18 @@ bool PrinterMsgPanel::UpdateInfos(const std::vector& infos)
label->Show();
m_sizer->Add(label, 0, wxBOTTOM, FromDIP(4));
}
+
+ // Orca: acknowledgement checkbox rendered beneath the message (e.g. a nozzle diameter that
+ // differs from the one the printer remembers, which the user may legitimately override).
+ if (!info.checkbox_label.empty())
+ {
+ wxCheckBox* checkbox = new wxCheckBox(this, wxID_ANY, info.checkbox_label);
+ checkbox->SetForegroundColour(_GetLabelColour(info));
+ checkbox->SetValue(info.checkbox_checked);
+ auto cb = info.checkbox_callback;
+ checkbox->Bind(wxEVT_CHECKBOX, [cb](wxCommandEvent& e) { if (cb) cb(e.IsChecked()); });
+ m_sizer->Add(checkbox, 0, wxBOTTOM, FromDIP(4));
+ }
}
this->Show();
diff --git a/src/slic3r/GUI/PrePrintChecker.hpp b/src/slic3r/GUI/PrePrintChecker.hpp
index 26fed443ee..f629b70a73 100644
--- a/src/slic3r/GUI/PrePrintChecker.hpp
+++ b/src/slic3r/GUI/PrePrintChecker.hpp
@@ -26,6 +26,9 @@ struct prePrintInfo
wxString wiki_url;
wxString link_label; // optional: clickable text appended after msg
std::function link_callback; // optional: internal action for link_label click
+ wxString checkbox_label; // optional: an acknowledgement checkbox under msg
+ bool checkbox_checked{false};
+ std::function checkbox_callback; // called with the new state on toggle
int index{0};
public:
@@ -33,8 +36,9 @@ public:
return level == other.level && type == other.type &&
msg == other.msg && tips == other.tips &&
wiki_url == other.wiki_url && link_label == other.link_label &&
+ checkbox_label == other.checkbox_label && checkbox_checked == other.checkbox_checked &&
index == other.index;
- // link_callback excluded: std::function is not comparable
+ // link_callback / checkbox_callback excluded: std::function is not comparable
}
};
@@ -59,7 +63,6 @@ enum PrintDialogStatus : unsigned int {
PrintStatusInPrinting,
PrintStatusNozzleMatchInvalid,
PrintStatusNozzleDataInvalid,
- PrintStatusNozzleDiameterMismatch,
PrintStatusNozzleTypeMismatch,
PrintStatusNozzleNoMatchedHotends,
PrintStatusNozzleRackMaximumInstalled,
@@ -106,6 +109,9 @@ enum PrintDialogStatus : unsigned int {
PrintStatusFilaSwitcherSlicingNotMatch,
PrintStatusRackNozzleNumUnmeetWarning,
PrintStatusHasUnreliableNozzleWarning,
+ // Orca: a nozzle diameter that differs from the one the printer remembers is a warning,
+ // not an error, so non-standard nozzles can still be printed with.
+ PrintStatusNozzleDiameterMismatch,
PrintStatusPrinterWarningEnd,
// Warnings for filament
@@ -159,6 +165,9 @@ public:
void add(PrintDialogStatus state, wxString msg, wxString tip, const wxString& wiki_url);
// Orca: minimal callback-link render path instead of the full style-bitmask machinery.
void add_with_link(PrintDialogStatus state, wxString msg, wxString link_label, std::function link_callback);
+ // Orca: render msg with an acknowledgement checkbox beneath it, for an overridable warning that
+ // the user must tick before proceeding (checkbox_callback reports the new state).
+ void add_with_checkbox(PrintDialogStatus state, wxString msg, wxString checkbox_label, bool checked, std::function checkbox_callback);
static ::std::string get_print_status_info(PrintDialogStatus status);
wxString get_pre_state_msg(PrintDialogStatus status);
diff --git a/src/slic3r/GUI/PrinterWebView.cpp b/src/slic3r/GUI/PrinterWebView.cpp
index 0d6c0bcedf..791bec42b9 100644
--- a/src/slic3r/GUI/PrinterWebView.cpp
+++ b/src/slic3r/GUI/PrinterWebView.cpp
@@ -246,7 +246,10 @@ void PrinterWebView::SendAPIKey()
// RemoveAllUserScripts causes WebView to forget about our script message handler,
// so re-add it here.
m_browser->RemoveScriptMessageHandler("wx");
- m_browser->AddScriptMessageHandler("wx");
+ if (m_browser->AddScriptMessageHandler("wx"))
+ WebView::MarkScriptMessageHandlerAdded(m_browser);
+ else
+ wxLogError("Could not add script message handler");
#ifdef __linux__
// Re-inject the vue-resize/WebKitGTK workaround that RemoveAllUserScripts just cleared.
diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp
index 3464f70004..d6ab50c1a4 100644
--- a/src/slic3r/GUI/SelectMachine.cpp
+++ b/src/slic3r/GUI/SelectMachine.cpp
@@ -2269,8 +2269,11 @@ void SelectMachineDialog::show_status(PrintDialogStatus status, std::vector Printer parts' to change your nozzle setting."));
+
+ // Orca: non-blocking. A diameter that differs from the one the printer
+ // remembers is legitimate with a non-standard nozzle, so the print is held back
+ // only by the acknowledgement checkbox shown in the message board, not by a
+ // disabled Send outright. Keep checking the remaining extruders.
+ m_nozzle_diameter_mismatch_msg = msg_params.front();
show_status(PrintDialogStatus::PrintStatusNozzleDiameterMismatch, msg_params);
- return false;
+ continue;
}
}
}
@@ -4608,6 +4629,9 @@ static wxString _get_ext_loc_str(const std::unordered_set& extruders, int t
void SelectMachineDialog::update_show_status(MachineObject* obj_)
{
m_pre_print_checker.clear();
+ // Orca: re-raised by CheckErrorExtruderNozzleWithSlicing() below if the mismatch is still there,
+ // so an early return from this pass cannot leave a stale warning behind.
+ m_nozzle_diameter_mismatch_msg.clear();
/*agent check and printer valid check*/
NetworkAgent* agent = Slic3r::GUI::wxGetApp().getAgent();
diff --git a/src/slic3r/GUI/SelectMachine.hpp b/src/slic3r/GUI/SelectMachine.hpp
index 19eef2de2c..fd326f7c85 100644
--- a/src/slic3r/GUI/SelectMachine.hpp
+++ b/src/slic3r/GUI/SelectMachine.hpp
@@ -550,6 +550,13 @@ public:
// Compare the slicing file's nozzle requirements (validity, flow, diameter) against the
// printer; the rack extruder is checked against its whole inventory (mounted + rack).
bool CheckErrorExtruderNozzleWithSlicing(MachineObject* obj_);//return true if no errors
+ // Orca: a nozzle diameter differing from the one the printer remembers is a non-blocking
+ // warning shown in the message board with an acknowledgement checkbox; Send stays disabled
+ // until the user ticks it. m_nozzle_diameter_mismatch_msg is the current mismatch text (empty
+ // when there is none), m_nozzle_diameter_ack_msg the text the user acknowledged; Send is
+ // allowed only while the two match, so a changed or cleared mismatch re-requires acknowledgement.
+ wxString m_nozzle_diameter_mismatch_msg;
+ wxString m_nozzle_diameter_ack_msg;
// Warn (without blocking) when a mapped filament would be printed from both extruders on a
// dual-extruder printer, so per-nozzle manual K-value can't follow it across the whole print.
bool CheckWarningFilamentCrossExtruder(MachineObject* obj_);
diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp
index 326425bc4f..6bb47059e2 100644
--- a/src/slic3r/GUI/Tab.cpp
+++ b/src/slic3r/GUI/Tab.cpp
@@ -34,6 +34,7 @@
#include "GUI_App.hpp"
#include "GUI_ObjectList.hpp"
#include "slic3r/Utils/PresetUpdater.hpp"
+#include "slic3r/plugin/PluginConfig.hpp"
#include "Plater.hpp"
#include "MainFrame.hpp"
#include "format.hpp"
@@ -1795,9 +1796,19 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value)
// Keep this preset's "plugins" manifest in sync when a plugin picker changes, so full_config() and
// save_to_json() always find resolved "name;uuid;capability" references and rebuild it nowhere else.
+ // Also drop any plugin_config_overrides entries for a capability the change just stopped
+ // referencing (e.g. a plugin removed from slicing_pipeline_plugin), so a saved preset never
+ // carries configuration for a capability it no longer names. The Configure button is a separate
+ // field holding its own cached copy of that value, so it needs to be told explicitly, or it
+ // keeps showing the stale count until something else happens to refresh it.
if (const ConfigOptionDef* opt_def = m_config->def()->get(opt_key);
- opt_def && opt_def->is_plugin_backed())
+ opt_def && opt_def->is_plugin_backed()) {
m_config->update_plugin_manifest();
+ if (prune_stale_plugin_overrides(*m_config)) {
+ if (Field* overrides_field = get_field(PLUGIN_OVERRIDES_OPTION_KEY))
+ overrides_field->set_value(boost::any(m_config->opt_string(PLUGIN_OVERRIDES_OPTION_KEY)), false);
+ }
+ }
if (opt_key == "gcode_flavor" && m_type == Preset::TYPE_PRINTER) {
if (auto printer_tab = dynamic_cast(this))
@@ -3288,7 +3299,19 @@ static std::vector intersect(std::vector const& l, std
static std::vector concat(std::vector const& l, std::vector const& r)
{
std::vector t;
- std::set_union(l.begin(), l.end(), r.begin(), r.end(), std::back_inserter(t));
+ bool l_is_sorted = std::is_sorted(l.begin(), l.end());
+ bool r_is_sorted = std::is_sorted(r.begin(), r.end());
+
+ if (l_is_sorted && r_is_sorted) {
+ std::set_union(l.begin(), l.end(), r.begin(), r.end(), std::back_inserter(t));
+ return t;
+ }
+
+ std::vector l_sorted = l;
+ std::vector r_sorted = r;
+ std::sort(l_sorted.begin(), l_sorted.end());
+ std::sort(r_sorted.begin(), r_sorted.end());
+ std::set_union(l_sorted.begin(), l_sorted.end(), r_sorted.begin(), r_sorted.end(), std::back_inserter(t));
return t;
}
diff --git a/src/slic3r/GUI/TroubleshootDialog.cpp b/src/slic3r/GUI/TroubleshootDialog.cpp
index 44f35e2335..2ddb136a1c 100644
--- a/src/slic3r/GUI/TroubleshootDialog.cpp
+++ b/src/slic3r/GUI/TroubleshootDialog.cpp
@@ -186,7 +186,7 @@ TroubleshootDialog::TroubleshootDialog()
Fit();
});
- auto link_wiki = new HyperLink(this, _L("Wiki Guide"));
+ auto link_wiki = new HyperLink(this, _L("Wiki Guide"), "https://www.orcaslicer.com/wiki/troubleshoot_center");
// RIGHT SIZER //////////////////////
diff --git a/src/slic3r/GUI/Widgets/WebView.cpp b/src/slic3r/GUI/Widgets/WebView.cpp
index 3214f02d9c..36800dcf47 100644
--- a/src/slic3r/GUI/Widgets/WebView.cpp
+++ b/src/slic3r/GUI/Widgets/WebView.cpp
@@ -242,8 +242,15 @@ public:
g_webviews.erase(iter);
}
wxWebView *m_webView;
+ // Guards against registering the "wx" handler twice (a duplicate throws on WKWebView).
+ bool m_script_handler_added = false;
};
+static WebViewRef *webview_ref(wxWebView *webView)
+{
+ return webView ? static_cast(webView->GetRefData()) : nullptr;
+}
+
wxWebView* WebView::CreateWebView(wxWindow * parent, wxString const & url)
{
#if wxUSE_WEBVIEW_EDGE
@@ -304,10 +311,17 @@ wxWebView* WebView::CreateWebView(wxWindow * parent, wxString const & url)
Slic3r::GUI::WKWebView_setTransparentBackground(wkWebView);
#endif
auto addScriptMessageHandler = [] (wxWebView *webView) {
+ // Skip if SendAPIKey() already registered "wx"; a duplicate add throws an
+ // uncatchable NSException on WKWebView, killing the app at startup.
+ WebViewRef *ref = webview_ref(webView);
+ if (ref && ref->m_script_handler_added)
+ return;
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": begin to add script message handler for wx.";
Slic3r::GUI::wxGetApp().set_adding_script_handler(true);
if (!webView->AddScriptMessageHandler("wx"))
wxLogError("Could not add script message handler");
+ else if (ref)
+ ref->m_script_handler_added = true;
Slic3r::GUI::wxGetApp().set_adding_script_handler(false);
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": finished add script message handler for wx.";
};
@@ -336,6 +350,12 @@ wxWebView* WebView::CreateWebView(wxWindow * parent, wxString const & url)
g_webviews.push_back(webView);
return webView;
}
+
+void WebView::MarkScriptMessageHandlerAdded(wxWebView * webView)
+{
+ if (WebViewRef *ref = webview_ref(webView))
+ ref->m_script_handler_added = true;
+}
#if wxUSE_WEBVIEW_EDGE
bool WebView::CheckWebViewRuntime()
{
diff --git a/src/slic3r/GUI/Widgets/WebView.hpp b/src/slic3r/GUI/Widgets/WebView.hpp
index d1d5e9471d..69aa88ca4d 100644
--- a/src/slic3r/GUI/Widgets/WebView.hpp
+++ b/src/slic3r/GUI/Widgets/WebView.hpp
@@ -18,6 +18,9 @@ public:
static bool RunScript(wxWebView * webView, wxString const & msg);
+ // Marks "wx" as registered so CreateWebView's deferred add skips the duplicate.
+ static void MarkScriptMessageHandlerAdded(wxWebView * webView);
+
static void RecreateAll();
};
diff --git a/src/slic3r/GUI/Widgets/WebViewHostDialog.cpp b/src/slic3r/GUI/Widgets/WebViewHostDialog.cpp
index 9f4718160e..5e6026d1cf 100644
--- a/src/slic3r/GUI/Widgets/WebViewHostDialog.cpp
+++ b/src/slic3r/GUI/Widgets/WebViewHostDialog.cpp
@@ -96,6 +96,9 @@ std::string WebViewHostDialog::document_start_injector(const std::string& markup
const std::string literal = nlohmann::json(markup).dump();
std::string s;
s += "(function(){";
+ // wxWebView's AddUserScript runs in child frames too (including cross-origin
+ // frames on WebView2). Host theme state belongs only to the top-level page.
+ s += "if(window.top!==window.self)return;";
s += prelude;
s += "var css=" + literal + ";";
s += "function inject(){";
diff --git a/src/slic3r/plugin/PluginConfig.cpp b/src/slic3r/plugin/PluginConfig.cpp
index 1efbb7dfc6..7b6baa1fd1 100644
--- a/src/slic3r/plugin/PluginConfig.cpp
+++ b/src/slic3r/plugin/PluginConfig.cpp
@@ -5,6 +5,7 @@
#include
#include
+#include
#include
#include
#include
@@ -164,6 +165,20 @@ bool CapabilityConfigDocument::erase(const PluginCapabilityId& id)
return erased;
}
+bool CapabilityConfigDocument::prune_unreferenced(const std::set>& referenced)
+{
+ bool changed = false;
+ for (auto it = m_entries.begin(); it != m_entries.end();) {
+ if (referenced.count({it->first.type, it->first.name}) != 0) {
+ ++it;
+ } else {
+ it = m_entries.erase(it);
+ changed = true;
+ }
+ }
+ return changed;
+}
+
bool CapabilityConfigDocument::empty() const
{
return m_entries.empty() && m_opaque_entries.empty();
@@ -342,6 +357,50 @@ std::string serialize_plugin_overrides(const CapabilityConfigDocument& document)
return document.empty() ? std::string() : document.serialize_entries().dump();
}
+bool prune_stale_plugin_overrides(DynamicConfig& config)
+{
+ const auto* overrides_opt = dynamic_cast(config.option(PLUGIN_OVERRIDES_OPTION_KEY));
+ if (overrides_opt == nullptr || overrides_opt->value.empty())
+ return false;
+
+ CapabilityConfigDocument overrides;
+ std::string error;
+ if (!parse_plugin_overrides(overrides_opt->value, overrides, error)) {
+ // Malformed text is not ours to fix up here: leave it untouched rather than risk
+ // discarding data the user might still be able to recover.
+ BOOST_LOG_TRIVIAL(error) << "prune_stale_plugin_overrides: " << error;
+ return false;
+ }
+
+ // Capability names currently referenced by a plugin-backed option's value(s) — e.g.
+ // slicing_pipeline_plugin's ConfigOptionStrings entries name SlicingPipeline capabilities
+ // directly, the same raw values save_plugin_collection() resolves into the "plugins" manifest.
+ std::set> referenced;
+ const ConfigDef* def = config.def();
+ for (const std::string& opt_key : config.keys()) {
+ const ConfigOptionDef* opt_def = def != nullptr ? def->get(opt_key) : nullptr;
+ if (opt_def == nullptr || !opt_def->is_plugin_backed())
+ continue;
+
+ const ConfigOption* opt = config.option(opt_key);
+ const PluginCapabilityType type = plugin_capability_type_from_string(opt_def->plugin_type);
+ if (const auto* string_opt = dynamic_cast(opt)) {
+ if (!string_opt->value.empty())
+ referenced.emplace(type, string_opt->value);
+ } else if (const auto* vector_opt = dynamic_cast(opt)) {
+ for (const std::string& value : vector_opt->vserialize())
+ if (!value.empty())
+ referenced.emplace(type, value);
+ }
+ }
+
+ if (!overrides.prune_unreferenced(referenced))
+ return false;
+
+ config.set_key_value(PLUGIN_OVERRIDES_OPTION_KEY, new ConfigOptionString(serialize_plugin_overrides(overrides)));
+ return true;
+}
+
EffectiveCapabilityConfig PresetPluginConfigService::get_effective_config(const CapabilityConfigDocument& overrides,
const PluginCapabilityId& id) const
{
diff --git a/src/slic3r/plugin/PluginConfig.hpp b/src/slic3r/plugin/PluginConfig.hpp
index 75d468e82f..2d541a58f4 100644
--- a/src/slic3r/plugin/PluginConfig.hpp
+++ b/src/slic3r/plugin/PluginConfig.hpp
@@ -8,7 +8,9 @@
#include