Compare commits

..
Author SHA1 Message Date
SoftFever 8d37abae54 Merge branch 'main' into feature/automation 2026-06-09 23:34:34 +08:00
SoftFever 3546dafc18 update doc 2026-06-03 22:41:30 +08:00
SoftFever 2e4cbd4511 fix(automation): view.select 'device' falls back to m_printer_view for third-party printers 2026-06-03 21:45:44 +08:00
SoftFever 411787afb2 docs(automation): add view.select client wrapper, example usage, and docs 2026-06-03 21:37:51 +08:00
SoftFever 00bb52bcd7 fix(automation): select_tab_by_name resolves prepare/preview by page window (viewer-mode safe) 2026-06-03 21:36:03 +08:00
SoftFever 1a960b59ea feat(automation): implement view.select via MainFrame::select_tab_by_name 2026-06-03 21:26:40 +08:00
SoftFever 9a16fb7c2e feat(automation): add view.select dispatcher handler + tests 2026-06-03 21:18:50 +08:00
SoftFever 7ef89fdb9d docs(automation): document file.open method and error 1007 2026-06-03 20:22:17 +08:00
SoftFever 3d813d529e docs(automation): example_slice.py loads model at runtime via file.open 2026-06-03 20:20:25 +08:00
SoftFever 151927ac00 feat(automation): add OrcaClient.open() wrapper for file.open 2026-06-03 20:18:31 +08:00
SoftFever 3f1a2a71bd feat(automation): implement WxUiBackend::open_files via Plater::load_files 2026-06-03 20:14:29 +08:00
SoftFever b87dd23c74 feat(automation): advertise file.open in automation.version capabilities 2026-06-03 20:06:44 +08:00
SoftFever cea46ddc7f feat(automation): add file.open dispatcher handler with validation + tests 2026-06-03 20:01:23 +08:00
SoftFever b3d7a732c5 feat(automation): add open_files to backend interface + kErrLoadFailed (1007) 2026-06-03 19:55:46 +08:00
SoftFever b70be9178e docs(automation): design spec for file.open runtime model-loading method
Adds the approved design for a `file.open` JSON-RPC method that loads
files into a running OrcaSlicer via Plater::load_files (synchronous, GUI
thread). Dialog-driving approaches deferred.
2026-06-03 18:57:20 +08:00
SoftFever 892b33bac5 refactor(automation): drop screenshot.viewport3d, keep only screenshot.window
The on-screen window capture is composited from the desktop framebuffer, so it
already includes the GL 3D viewport as currently shown (model in the editor,
toolpaths in Preview). The offscreen render_thumbnail path only ever drew the
model GLVolumeCollection — never the gcode toolpaths — and produced a blank image
after slicing because the app switches to the Preview panel. Rather than maintain a
second, more limited capture method, remove it entirely.

Removes the JSON-RPC method, IUiBackend/WxUiBackend implementation, dispatcher
route + capability entry, the now-dead opt_int/thumbnail_to_wximage helpers and
ThumbnailData include, the mock override + unit test, and the Python
screenshot_3d client method. Docs updated accordingly.
2026-06-03 18:05:23 +08:00
SoftFever 952696fd1f fix(automation): capture screenshot.window from the composited screen
Blitting from the MainFrame's own wxClientDC clips out child HWNDs, so all of
OrcaSlicer's custom child-window controls (sidebar buttons/combos/panels) and the
GL canvas came back as uninitialized black bitmap memory. Read the window's
on-screen rectangle from the DWM-composited desktop via wxScreenDC instead, which
includes every child window, the OpenGL surface, and ImGui overlays.

Document the visible/unobscured requirement and the HiDPI logical-vs-physical
pixel caveat; clarify how screenshot.viewport3d differs and why it stays.
2026-06-03 17:19:36 +08:00
SoftFever 6980d9c327 plan 2026-06-03 09:50:34 +08:00
SoftFever 45e93951c1 test(automation): regression verification — unit suites green + disabled-path no-op audit 2026-06-03 04:26:25 +08:00
SoftFever a4cedde163 docs(automation): protocol reference, ids, and platform caveats 2026-06-03 04:19:20 +08:00
SoftFever 61b4131aee feat(automation): runnable e2e slice example / smoke test 2026-06-03 04:14:24 +08:00
SoftFever 6eb479243d feat(automation): instrument core widgets with stable automation ids 2026-06-03 04:09:42 +08:00
SoftFever 622272e674 feat(automation): GUI_App owns automation server lifecycle (opt-in) 2026-06-03 03:58:01 +08:00
SoftFever b54cc75362 feat(automation): --automation-server CLI flag plumbed into GUI 2026-06-03 03:48:47 +08:00
SoftFever 9d915c4e76 feat(automation): WxUiBackend input + window/viewport screenshots 2026-06-03 03:35:40 +08:00
SoftFever d742b10c50 feat(automation): WxUiBackend marshaller + dump_tree + app_state 2026-06-03 03:19:29 +08:00
SoftFever 47467b626c feat(automation): guarded ImGui item/window recording hooks 2026-06-03 03:01:58 +08:00
SoftFever c0d37bff3a feat(automation): double-buffered ImGui item table 2026-06-03 02:52:52 +08:00
SoftFever 39a29cf865 feat(automation): wxWindow automation-id registry 2026-06-03 02:43:41 +08:00
SoftFever 487e1cb205 feat(automation): localhost beast POST /jsonrpc server 2026-06-03 02:32:51 +08:00
SoftFever a2e8a90052 feat(automation): Python reference client 2026-06-03 02:23:10 +08:00
SoftFever 8dcbc582fa feat(automation): sync.wait_for poll loop 2026-06-03 02:13:35 +08:00
SoftFever b0325c999a feat(automation): app.state + screenshot handlers with base64 2026-06-03 02:07:30 +08:00
SoftFever 5a2f03adee feat(automation): input.click / input.type / input.key handlers 2026-06-03 02:01:40 +08:00
SoftFever a8ed2b8dd5 feat(automation): tree.dump / tree.find / widget.get handlers 2026-06-03 01:55:48 +08:00
SoftFever aac14ae161 feat(automation): JSON-RPC dispatcher envelope + version + error model 2026-06-03 01:49:49 +08:00
SoftFever 94c356845e test(automation): MockUiBackend recording test double 2026-06-03 01:45:46 +08:00
SoftFever e449a0b618 feat(automation): resolve_unique + wait-state evaluation 2026-06-03 01:42:38 +08:00
SoftFever ddd1967bff feat(automation): pure locator (id/path/predicate) with unit tests 2026-06-03 01:38:13 +08:00
SoftFever 02140d2a1e test(automation): lock serializer children/value/imgui/app_state shapes 2026-06-03 01:34:13 +08:00
SoftFever 0be138b981 feat(automation): pure UI node model + JSON serializer with unit test 2026-06-03 01:28:43 +08:00
SoftFever 11301086a7 docs: add UI automation design spec
Design for an opt-in localhost JSON-RPC server that lets an external script/AI agent drive and observe the OrcaSlicer GUI (wxWidgets + 3D viewport + ImGui) via wxUIActionSimulator.
2026-06-03 00:48:27 +08:00
8155 changed files with 26169 additions and 43935 deletions
+6 -39
View File
@@ -5,7 +5,6 @@ on:
branches:
- main
- release/*
- belt-printer
paths:
- 'deps/**'
- 'src/**'
@@ -15,8 +14,6 @@ on:
- 'resources/**'
- ".github/workflows/build_*.yml"
- 'scripts/flatpak/**'
- 'scripts/msix/**'
- 'tests/**'
pull_request:
branches:
@@ -30,12 +27,9 @@ on:
- 'version.inc'
- ".github/workflows/build_*.yml"
- 'build_linux.sh'
- 'build_release_vs.bat'
- 'build_release_vs2022.bat'
- 'build_release_macos.sh'
- 'scripts/flatpak/**'
- 'scripts/msix/**'
- 'tests/**'
schedule:
@@ -57,42 +51,19 @@ jobs:
build_linux:
strategy:
fail-fast: false
# Build both arches on every event (PRs included), through the same
# build_check_cache -> build_deps -> build_orca chain (the AppImage).
# aarch64 always uses the GitHub-hosted arm runner (there is no arm
# self-hosted server). amd64's empty arch is load-bearing: it keeps the
# historical 'linux-clang' deps cache key and the unsuffixed asset names.
matrix:
include:
- arch: ""
os: ${{ vars.SELF_HOSTED && 'orca-lnx-server' || 'ubuntu-24.04' }}
- arch: "aarch64"
os: ubuntu-24.04-arm
# Don't run scheduled builds on forks:
if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }}
uses: ./.github/workflows/build_check_cache.yml
with:
os: ${{ matrix.os }}
arch: ${{ matrix.arch }}
os: ${{ vars.SELF_HOSTED && 'orca-lnx-server' || 'ubuntu-24.04' }}
build-deps-only: ${{ inputs.build-deps-only || false }}
secrets: inherit
build_windows:
name: Build Windows ${{ matrix.arch }}
strategy:
fail-fast: false
matrix:
include:
- arch: x64
os: windows-latest
- arch: arm64
os: windows-11-arm
# Don't run scheduled builds on forks:
if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }}
uses: ./.github/workflows/build_check_cache.yml
with:
# Self-hosted runner is x64-only; ARM64 always uses the GitHub-hosted runner.
os: ${{ (matrix.arch == 'x64' && vars.SELF_HOSTED) && 'orca-win-server' || matrix.os }}
arch: ${{ matrix.arch }}
os: ${{ vars.SELF_HOSTED && 'orca-win-server' || 'windows-latest' }}
build-deps-only: ${{ inputs.build-deps-only || false }}
force-build: ${{ github.event_name == 'schedule' }}
secrets: inherit
@@ -124,9 +95,7 @@ jobs:
secrets: inherit
unit_tests:
name: Unit Tests
# Tests are built on the aarch64 leg by default (faster GitHub arm runner),
# so run them there; self-hosted builds them on the amd64 server instead.
runs-on: ${{ vars.SELF_HOSTED && 'orca-lnx-server' || 'ubuntu-24.04-arm' }}
runs-on: ${{ vars.SELF_HOSTED && 'orca-lnx-server' || 'ubuntu-24.04' }}
needs: build_linux
if: ${{ !cancelled() && success() }}
steps:
@@ -197,9 +166,6 @@ jobs:
date:
ver:
ver_pure:
# Belt-printer nightlies share the main nightly release but carry a `_belt`
# suffix so they never overwrite the main assets.
nightly_suffix: ${{ github.ref == 'refs/heads/belt-printer' && '_belt' || '' }}
steps:
- name: "Remove unneeded stuff to free disk space"
run:
@@ -258,12 +224,13 @@ jobs:
name: OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak
path: '/__w/OrcaSlicer/OrcaSlicer/OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak'
- name: Deploy Flatpak to nightly release
if: github.repository == 'OrcaSlicer/OrcaSlicer' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/belt-printer')
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main'
uses: WebFreak001/deploy-nightly@v3.2.0
with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
release_id: 137995723
asset_path: /__w/OrcaSlicer/OrcaSlicer/OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak
asset_name: OrcaSlicer-Linux-flatpak_nightly${{ env.nightly_suffix }}_${{ matrix.variant.arch }}.flatpak
asset_name: OrcaSlicer-Linux-flatpak_nightly_${{ matrix.variant.arch }}.flatpak
asset_content_type: application/octet-stream
max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted
+3 -6
View File
@@ -33,12 +33,9 @@ jobs:
- name: set outputs
id: set_outputs
env:
# Keep macOS/Windows cache keys architecture-specific. amd64 Linux passes
# no arch (key stays 'linux-clang', preserving the existing cache);
# aarch64 gets its own 'linux-clang-aarch64' key.
cache-os: ${{ runner.os == 'macOS' && format('macos-{0}', inputs.arch) || (runner.os == 'Windows' && format('windows-{0}', inputs.arch) || format('linux-clang{0}', inputs.arch && format('-{0}', inputs.arch) || '')) }}
# ARM64 builds use the build-arm64 tree (see build_release_vs.bat); x64/other use build.
dep-folder-name: ${{ runner.os == 'macOS' && format('/{0}', inputs.arch) || (runner.os == 'Windows' && inputs.arch == 'arm64') && '-arm64/OrcaSlicer_dep' || '/OrcaSlicer_dep' }}
# Keep macOS cache keys and paths architecture-specific.
cache-os: ${{ runner.os == 'macOS' && format('macos-{0}', inputs.arch) || (runner.os == 'Windows' && 'windows' || 'linux-clang') }}
dep-folder-name: ${{ runner.os == 'macOS' && format('/{0}', inputs.arch) || '/OrcaSlicer_dep' }}
output-cmd: ${{ runner.os == 'Windows' && '$env:GITHUB_OUTPUT' || '"$GITHUB_OUTPUT"'}}
run: |
echo cache-key=${{ env.cache-os }}-cache-orcaslicer_deps-build-${{ hashFiles('deps/**') }} >> ${{ env.output-cmd }}
+2 -69
View File
@@ -45,28 +45,11 @@ jobs:
key: ${{ inputs.cache-key }}
- uses: lukka/get-cmake@latest
# The windows-11-arm runner needs CMake <= 3.31 (handled in the next step).
if: ${{ !(runner.os == 'Windows' && inputs.arch == 'arm64') }}
with:
cmakeVersion: "~4.3.0" # use most recent 4.3.x version
useLocalCache: true # <--= Use the local cache (default is 'false').
useCloudCache: true
- name: Install CMake 3.31.x (Windows ARM64)
# windows-11-arm ships CMake 4.x, which removed pre-3.5 policy
# compatibility AND has incomplete ASM_ARMASM linker modules
# (breaks Boost.Context on ARM64). Pin to the last 3.x release.
if: runner.os == 'Windows' && inputs.arch == 'arm64'
shell: pwsh
run: |
$ver = "3.31.6"
$url = "https://github.com/Kitware/CMake/releases/download/v$ver/cmake-$ver-windows-arm64.zip"
Invoke-WebRequest -Uri $url -OutFile "$env:RUNNER_TEMP\cmake.zip"
Expand-Archive -Path "$env:RUNNER_TEMP\cmake.zip" -DestinationPath "$env:RUNNER_TEMP\cmake" -Force
$cmakeBin = "$env:RUNNER_TEMP\cmake\cmake-$ver-windows-arm64\bin"
if (-not (Test-Path "$cmakeBin\cmake.exe")) { throw "cmake.exe not found at $cmakeBin" }
Add-Content -Path $env:GITHUB_PATH -Value $cmakeBin
- name: setup dev on Windows
if: runner.os == 'Windows'
uses: microsoft/setup-msbuild@v3
@@ -82,50 +65,6 @@ jobs:
shell: pwsh
- name: Install MSYS2 (clangarm64) with GMP/MPFR and LLVM tools
if: runner.os == 'Windows' && inputs.arch == 'arm64'
uses: msys2/setup-msys2@v2
with:
msystem: CLANGARM64
update: true
install: >-
mingw-w64-clang-aarch64-gmp
mingw-w64-clang-aarch64-mpfr
mingw-w64-clang-aarch64-llvm
- name: Stage ARM64 GMP/MPFR (no prebuilt blobs exist for win-arm64)
# GMP/MPFR ship prebuilt x64/x86 blobs in-tree but none for ARM64.
# Pull them from MSYS2 clangarm64 and generate MSVC import libs via
# llvm-dlltool, then stage into deps/{GMP,MPFR}/.../win-arm64 where the
# MSVC branch of GMP.cmake/MPFR.cmake copies them into the dep prefix.
if: runner.os == 'Windows' && inputs.arch == 'arm64'
shell: msys2 {0}
run: |
set -euo pipefail
BIN=/clangarm64/bin
REPO=$(cygpath -u "$GITHUB_WORKSPACE")
make_import_lib() {
local dll="$1"; local lib="$2"; local def="/tmp/${dll%.dll}.def"
echo "EXPORTS" > "$def"
llvm-readobj --coff-exports "$BIN/$dll" | awk '/Name: /{print $2}' >> "$def"
llvm-dlltool -m arm64 -D "$dll" -d "$def" -l "$BIN/$lib"
}
make_import_lib libgmp-10.dll libgmp-10.lib
# MPFR 4.x ships as libmpfr-6.dll; rename to libmpfr-4 BEFORE generating
# the import lib so the baked-in runtime DLL name is correct.
MPFR_DLL=$(ls $BIN/libmpfr-*.dll | head -1 | xargs basename)
if [ "$MPFR_DLL" != "libmpfr-4.dll" ]; then cp "$BIN/$MPFR_DLL" "$BIN/libmpfr-4.dll"; fi
make_import_lib libmpfr-4.dll libmpfr-4.lib
mkdir -p $REPO/deps/GMP/gmp/lib/win-arm64 $REPO/deps/MPFR/mpfr/lib/win-arm64
cp $BIN/libgmp-10.dll $BIN/libgmp-10.lib $REPO/deps/GMP/gmp/lib/win-arm64/
cp $BIN/libmpfr-4.dll $BIN/libmpfr-4.lib $REPO/deps/MPFR/mpfr/lib/win-arm64/
cp /clangarm64/include/gmp.h $REPO/deps/GMP/gmp/include/
cp /clangarm64/include/mpfr.h $REPO/deps/MPFR/mpfr/include/ || true
# Build Dependencies
- name: Build on Windows
if: runner.os == 'Windows'
@@ -134,14 +73,8 @@ jobs:
if (-not "${{ vars.SELF_HOSTED }}") {
choco install strawberryperl
}
$arch = "${{ inputs.arch }}"
if ($arch -eq "arm64") {
.\build_release_vs.bat deps arm64
.\build_release_vs.bat pack arm64
} else {
.\build_release_vs.bat deps
.\build_release_vs.bat pack
}
.\build_release_vs.bat deps
.\build_release_vs.bat pack
shell: pwsh
- name: Build on Mac ${{ inputs.arch }}
+51 -128
View File
@@ -29,11 +29,6 @@ jobs:
ubuntu-ver: '2404'
ubuntu-ver-str: '_Ubuntu2404'
ORCA_UPDATER_SIG_KEY: ${{ secrets.ORCA_UPDATER_SIG_KEY }}
# Branches whose builds are published to the nightly release. The
# belt-printer branch ships alongside main but its assets carry a `_belt`
# suffix (nightly_suffix) so they never overwrite the main nightly assets.
deploy_nightly: ${{ github.ref == 'refs/heads/main' || github.ref == 'refs/heads/belt-printer' }}
nightly_suffix: ${{ github.ref == 'refs/heads/belt-printer' && '_belt' || '' }}
steps:
- name: Checkout
@@ -50,28 +45,11 @@ jobs:
fail-on-cache-miss: true
- uses: lukka/get-cmake@latest
# The windows-11-arm runner needs CMake <= 3.31 (handled in the next step).
if: ${{ !(runner.os == 'Windows' && inputs.arch == 'arm64') }}
with:
cmakeVersion: "~4.3.0" # use most recent 4.3.x version
useLocalCache: true # <--= Use the local cache (default is 'false').
useCloudCache: true
- name: Install CMake 3.31.x (Windows ARM64)
# windows-11-arm ships CMake 4.x, which removed pre-3.5 policy
# compatibility AND has incomplete ASM_ARMASM linker modules
# (breaks Boost.Context on ARM64). Pin to the last 3.x release.
if: runner.os == 'Windows' && inputs.arch == 'arm64'
shell: pwsh
run: |
$ver = "3.31.6"
$url = "https://github.com/Kitware/CMake/releases/download/v$ver/cmake-$ver-windows-arm64.zip"
Invoke-WebRequest -Uri $url -OutFile "$env:RUNNER_TEMP\cmake.zip"
Expand-Archive -Path "$env:RUNNER_TEMP\cmake.zip" -DestinationPath "$env:RUNNER_TEMP\cmake" -Force
$cmakeBin = "$env:RUNNER_TEMP\cmake\cmake-$ver-windows-arm64\bin"
if (-not (Test-Path "$cmakeBin\cmake.exe")) { throw "cmake.exe not found at $cmakeBin" }
Add-Content -Path $env:GITHUB_PATH -Value $cmakeBin
- name: Get the version and date on Ubuntu and macOS
if: runner.os != 'Windows'
run: |
@@ -87,11 +65,6 @@ jobs:
echo "ver_pure=$ver_pure" >> $GITHUB_ENV
echo "date=$(date +'%Y%m%d')" >> $GITHUB_ENV
echo "git_commit_hash=$git_commit_hash" >> $GITHUB_ENV
# Per-arch Linux AppImage naming: amd64 keeps the historical unsuffixed
# name (arch_suffix empty). Unused on macOS/Windows.
if [ '${{ inputs.arch }}' = 'aarch64' ]; then
echo "arch_suffix=_aarch64" >> $GITHUB_ENV
fi
shell: bash
- name: Get the version and date on Windows
@@ -180,9 +153,17 @@ jobs:
run: |
./build_release_macos.sh -u -x ${{ !vars.SELF_HOSTED && '-1' || '' }} -a universal -t 10.15
- name: Delete intermediate per-arch artifacts
if: runner.os == 'macOS' && inputs.macos-combine-only
uses: geekyeggo/delete-artifact@v6
with:
name: |
OrcaSlicer_Mac_bundle_arm64_${{ github.sha }}
OrcaSlicer_Mac_bundle_x86_64_${{ github.sha }}
# Thanks to RaySajuuk, it's working now
- name: Sign app and notary
if: github.repository == 'OrcaSlicer/OrcaSlicer' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/belt-printer' || startsWith(github.ref, 'refs/heads/release/')) && runner.os == 'macOS' && inputs.macos-combine-only
if: github.repository == 'OrcaSlicer/OrcaSlicer' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) && runner.os == 'macOS' && inputs.macos-combine-only
working-directory: ${{ github.workspace }}
env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
@@ -190,8 +171,6 @@ jobs:
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
CERTIFICATE_ID: ${{ secrets.MACOS_CERTIFICATE_ID }}
run: |
# Load the `retry` helper (retries flaky commands such as `hdiutil create`).
source ${{ github.workspace }}/scripts/retry.sh
CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH
@@ -214,7 +193,7 @@ jobs:
rm -rf ${{ github.workspace }}/build/universal/OrcaSlicer_dmg/*
cp -R ${{ github.workspace }}/build/universal/OrcaSlicer/OrcaSlicer.app ${{ github.workspace }}/build/universal/OrcaSlicer_dmg/
ln -sfn /Applications ${{ github.workspace }}/build/universal/OrcaSlicer_dmg/Applications
retry hdiutil create -volname "OrcaSlicer" -srcfolder ${{ github.workspace }}/build/universal/OrcaSlicer_dmg -ov -format UDZO OrcaSlicer_Mac_universal_${{ env.ver }}.dmg
hdiutil create -volname "OrcaSlicer" -srcfolder ${{ github.workspace }}/build/universal/OrcaSlicer_dmg -ov -format UDZO OrcaSlicer_Mac_universal_${{ env.ver }}.dmg
codesign --deep --force --verbose --options runtime --timestamp --entitlements ${{ github.workspace }}/scripts/disable_validation.entitlements --sign "$CERTIFICATE_ID" OrcaSlicer_Mac_universal_${{ env.ver }}.dmg
# Create separate OrcaSlicer_profile_validator DMG if the app exists
@@ -223,7 +202,7 @@ jobs:
rm -rf ${{ github.workspace }}/build/universal/OrcaSlicer_profile_validator_dmg/*
cp -R ${{ github.workspace }}/build/universal/OrcaSlicer/OrcaSlicer_profile_validator.app ${{ github.workspace }}/build/universal/OrcaSlicer_profile_validator_dmg/
ln -sfn /Applications ${{ github.workspace }}/build/universal/OrcaSlicer_profile_validator_dmg/Applications
retry hdiutil create -volname "OrcaSlicer Profile Validator" -srcfolder ${{ github.workspace }}/build/universal/OrcaSlicer_profile_validator_dmg -ov -format UDZO OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg
hdiutil create -volname "OrcaSlicer Profile Validator" -srcfolder ${{ github.workspace }}/build/universal/OrcaSlicer_profile_validator_dmg -ov -format UDZO OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg
codesign --deep --force --verbose --options runtime --timestamp --entitlements ${{ github.workspace }}/scripts/disable_validation.entitlements --sign "$CERTIFICATE_ID" OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg
fi
@@ -238,16 +217,14 @@ jobs:
fi
- name: Create DMG without notary
if: github.ref != 'refs/heads/main' && github.ref != 'refs/heads/belt-printer' && runner.os == 'macOS' && inputs.macos-combine-only
if: github.ref != 'refs/heads/main' && runner.os == 'macOS' && inputs.macos-combine-only
working-directory: ${{ github.workspace }}
run: |
# Load the `retry` helper (retries flaky commands such as `hdiutil create`).
source ${{ github.workspace }}/scripts/retry.sh
mkdir -p ${{ github.workspace }}/build/universal/OrcaSlicer_dmg
rm -rf ${{ github.workspace }}/build/universal/OrcaSlicer_dmg/*
cp -R ${{ github.workspace }}/build/universal/OrcaSlicer/OrcaSlicer.app ${{ github.workspace }}/build/universal/OrcaSlicer_dmg/
ln -sfn /Applications ${{ github.workspace }}/build/universal/OrcaSlicer_dmg/Applications
retry hdiutil create -volname "OrcaSlicer" -srcfolder ${{ github.workspace }}/build/universal/OrcaSlicer_dmg -ov -format UDZO OrcaSlicer_Mac_universal_${{ env.ver }}.dmg
hdiutil create -volname "OrcaSlicer" -srcfolder ${{ github.workspace }}/build/universal/OrcaSlicer_dmg -ov -format UDZO OrcaSlicer_Mac_universal_${{ env.ver }}.dmg
# Create separate OrcaSlicer_profile_validator DMG if the app exists
if [ -f "${{ github.workspace }}/build/universal/OrcaSlicer/OrcaSlicer_profile_validator.app/Contents/MacOS/OrcaSlicer_profile_validator" ]; then
@@ -255,19 +232,9 @@ jobs:
rm -rf ${{ github.workspace }}/build/universal/OrcaSlicer_profile_validator_dmg/*
cp -R ${{ github.workspace }}/build/universal/OrcaSlicer/OrcaSlicer_profile_validator.app ${{ github.workspace }}/build/universal/OrcaSlicer_profile_validator_dmg/
ln -sfn /Applications ${{ github.workspace }}/build/universal/OrcaSlicer_profile_validator_dmg/Applications
retry hdiutil create -volname "OrcaSlicer Profile Validator" -srcfolder ${{ github.workspace }}/build/universal/OrcaSlicer_profile_validator_dmg -ov -format UDZO OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg
hdiutil create -volname "OrcaSlicer Profile Validator" -srcfolder ${{ github.workspace }}/build/universal/OrcaSlicer_profile_validator_dmg -ov -format UDZO OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg
fi
# Delete the per-arch bundles only after signing/DMG creation succeeded, so a
# failed run keeps them available for a re-run instead of forcing a full rebuild.
- name: Delete intermediate per-arch artifacts
if: success() && runner.os == 'macOS' && inputs.macos-combine-only
uses: geekyeggo/delete-artifact@v6
with:
name: |
OrcaSlicer_Mac_bundle_arm64_${{ github.sha }}
OrcaSlicer_Mac_bundle_x86_64_${{ github.sha }}
- name: Upload artifacts mac
if: runner.os == 'macOS' && inputs.macos-combine-only
uses: actions/upload-artifact@v7
@@ -284,13 +251,13 @@ jobs:
if-no-files-found: ignore
- name: Deploy Mac release
if: github.repository == 'OrcaSlicer/OrcaSlicer' && env.deploy_nightly == 'true' && runner.os == 'macOS' && inputs.macos-combine-only && !vars.SELF_HOSTED
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'macOS' && inputs.macos-combine-only && !vars.SELF_HOSTED
uses: WebFreak001/deploy-nightly@v3.2.0
with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
release_id: 137995723
asset_path: ${{ github.workspace }}/OrcaSlicer_Mac_universal_${{ env.ver }}.dmg
asset_name: OrcaSlicer_Mac_universal_nightly${{ env.nightly_suffix }}.dmg
asset_name: OrcaSlicer_Mac_universal_nightly.dmg
asset_content_type: application/octet-stream
max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted
@@ -306,18 +273,6 @@ jobs:
max_releases: 1
# Windows
- name: Set Windows build variables
if: runner.os == 'Windows'
shell: pwsh
run: |
if ("${{ inputs.arch }}" -eq "arm64") {
"BUILD_DIR=build-arm64" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8
"ARCH_SUFFIX=_arm64" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8
} else {
"BUILD_DIR=build" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8
"ARCH_SUFFIX=_x64" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8
}
- name: setup MSVC
if: runner.os == 'Windows'
uses: microsoft/setup-msbuild@v3
@@ -335,28 +290,23 @@ jobs:
# env:
# WindowsSdkDir: 'C:\Program Files (x86)\Windows Kits\10\'
# WindowsSDKVersion: '10.0.26100.0\'
run: |
$arch = "${{ inputs.arch }}"
if ($arch -eq "arm64") { .\build_release_vs.bat slicer arm64 } else { .\build_release_vs.bat slicer }
shell: pwsh
run: .\build_release_vs.bat slicer
# NSIS is x86-only; it runs (and the installer it emits runs) under ARM64's
# x86 emulation, packaging the native arm64 payload from build-arm64.
- name: Create installer Win
if: runner.os == 'Windows' && !vars.SELF_HOSTED
working-directory: ${{ github.workspace }}/${{ env.BUILD_DIR }}
working-directory: ${{ github.workspace }}/build
run: |
cpack -G NSIS
- name: Pack app
if: runner.os == 'Windows'
working-directory: ${{ github.workspace }}/${{ env.BUILD_DIR }}
working-directory: ${{ github.workspace }}/build
shell: cmd
run: '"C:/Program Files/7-Zip/7z.exe" a -tzip OrcaSlicer_Windows_${{ env.ver }}${{ env.ARCH_SUFFIX }}_portable.zip ${{ github.workspace }}/${{ env.BUILD_DIR }}/OrcaSlicer'
run: '"C:/Program Files/7-Zip/7z.exe" a -tzip OrcaSlicer_Windows_${{ env.ver }}_portable.zip ${{ github.workspace }}/build/OrcaSlicer'
- name: Pack PDB
if: runner.os == 'Windows' && inputs.arch != 'arm64' && !vars.SELF_HOSTED
working-directory: ${{ github.workspace }}/${{ env.BUILD_DIR }}/src/Release
if: runner.os == 'Windows' && !vars.SELF_HOSTED
working-directory: ${{ github.workspace }}/build/src/Release
shell: cmd
run: '"C:/Program Files/7-Zip/7z.exe" a -m0=lzma2 -mx9 Debug_PDB_${{ env.ver }}_for_developers_only.7z *.pdb'
@@ -364,54 +314,54 @@ jobs:
if: runner.os == 'Windows'
uses: actions/upload-artifact@v7
with:
name: OrcaSlicer_Windows_${{ env.ver }}${{ env.ARCH_SUFFIX }}_portable
path: ${{ github.workspace }}/${{ env.BUILD_DIR }}/OrcaSlicer
name: OrcaSlicer_Windows_${{ env.ver }}_portable
path: ${{ github.workspace }}/build/OrcaSlicer
- name: Upload artifacts Win installer
if: runner.os == 'Windows' && !vars.SELF_HOSTED
uses: actions/upload-artifact@v7
with:
name: OrcaSlicer_Windows_${{ env.ver }}${{ env.ARCH_SUFFIX }}
path: ${{ github.workspace }}/${{ env.BUILD_DIR }}/OrcaSlicer*.exe
name: OrcaSlicer_Windows_${{ env.ver }}
path: ${{ github.workspace }}/build/OrcaSlicer*.exe
- name: Upload artifacts Win PDB
if: runner.os == 'Windows' && inputs.arch != 'arm64' && !vars.SELF_HOSTED
if: runner.os == 'Windows' && !vars.SELF_HOSTED
uses: actions/upload-artifact@v7
with:
name: PDB
path: ${{ github.workspace }}/build/src/Release/Debug_PDB_${{ env.ver }}_for_developers_only.7z
- name: Upload OrcaSlicer_profile_validator Win
if: runner.os == 'Windows' && inputs.arch != 'arm64' && !vars.SELF_HOSTED
if: runner.os == 'Windows' && !vars.SELF_HOSTED
uses: actions/upload-artifact@v7
with:
name: OrcaSlicer_profile_validator_Windows_${{ env.ver }}
path: ${{ github.workspace }}/build/src/Release/OrcaSlicer_profile_validator.exe
- name: Deploy Windows release portable
if: github.repository == 'OrcaSlicer/OrcaSlicer' && env.deploy_nightly == 'true' && runner.os == 'Windows' && !vars.SELF_HOSTED
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && !vars.SELF_HOSTED
uses: WebFreak001/deploy-nightly@v3.2.0
with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
release_id: 137995723
asset_path: ${{ github.workspace }}/${{ env.BUILD_DIR }}/OrcaSlicer_Windows_${{ env.ver }}${{ env.ARCH_SUFFIX }}_portable.zip
asset_name: OrcaSlicer_Windows${{ env.ARCH_SUFFIX }}_nightly${{ env.nightly_suffix }}_portable.zip
asset_path: ${{ github.workspace }}/build/OrcaSlicer_Windows_${{ env.ver }}_portable.zip
asset_name: OrcaSlicer_Windows_nightly_portable.zip
asset_content_type: application/x-zip-compressed
max_releases: 1
- name: Deploy Windows release installer
if: github.repository == 'OrcaSlicer/OrcaSlicer' && env.deploy_nightly == 'true' && runner.os == 'Windows' && !vars.SELF_HOSTED
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && !vars.SELF_HOSTED
uses: WebFreak001/deploy-nightly@v3.2.0
with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
release_id: 137995723
asset_path: ${{ github.workspace }}/${{ env.BUILD_DIR }}/OrcaSlicer_Windows_Installer_${{ env.ver }}${{ env.ARCH_SUFFIX }}.exe
asset_name: OrcaSlicer_Windows_Installer${{ env.ARCH_SUFFIX }}_nightly${{ env.nightly_suffix }}.exe
asset_path: ${{ github.workspace }}/build/OrcaSlicer_Windows_Installer_${{ env.ver }}.exe
asset_name: OrcaSlicer_Windows_Installer_nightly.exe
asset_content_type: application/x-msdownload
max_releases: 1
- name: Deploy Windows OrcaSlicer_profile_validator release
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && inputs.arch != 'arm64' && !vars.SELF_HOSTED
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && !vars.SELF_HOSTED
uses: WebFreak001/deploy-nightly@v3.2.0
with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
@@ -421,26 +371,6 @@ jobs:
asset_content_type: application/x-msdownload
max_releases: 1
- name: Build MSIX Store package Win
if: runner.os == 'Windows' && !vars.SELF_HOSTED
working-directory: ${{ github.workspace }}
shell: pwsh
run: |
./scripts/msix/build_msix.ps1 `
-InstallDir "${{ github.workspace }}/${{ env.BUILD_DIR }}/OrcaSlicer" `
-OutputPath "${{ github.workspace }}/${{ env.BUILD_DIR }}/OrcaSlicer_Windows_MSIX_${{ env.ver }}${{ env.ARCH_SUFFIX }}.msix" `
-Architecture "${{ inputs.arch }}" `
-IdentityName "${{ vars.ORCA_MSIX_IDENTITY_NAME || 'OrcaSlicer.OrcaSlicer' }}" `
-Publisher "${{ vars.ORCA_MSIX_PUBLISHER || 'CN=38F7EA55-C73B-4072-B3B2-C8E0EA15BB82' }}" `
-PublisherDisplayName "${{ vars.ORCA_MSIX_PUBLISHER_DISPLAY_NAME || 'OrcaSlicer' }}"
- name: Upload artifacts Win MSIX
if: runner.os == 'Windows' && !vars.SELF_HOSTED
uses: actions/upload-artifact@v7
with:
name: OrcaSlicer_Windows_MSIX_${{ env.ver }}${{ env.ARCH_SUFFIX }}
path: ${{ github.workspace }}/${{ env.BUILD_DIR }}/OrcaSlicer_Windows_MSIX_${{ env.ver }}${{ env.ARCH_SUFFIX }}.msix
# Ubuntu
- name: Apt-Install Dependencies
if: runner.os == 'Linux' && !vars.SELF_HOSTED
@@ -452,23 +382,16 @@ jobs:
if: runner.os == 'Linux'
shell: bash
run: |
# Build + tar the unit tests (-t) only on the leg that runs them: the
# aarch64 leg by default (faster GitHub arm runner), or amd64 when using
# self-hosted runners (no arm self-hosted server). unit_tests downloads
# this tarball. The profile validator is built with -s, so amd64 keeps it.
tests=${{ (!vars.SELF_HOSTED && inputs.arch == 'aarch64') || (vars.SELF_HOSTED && inputs.arch != 'aarch64') }}
if $tests; then flags=-istrlL; else flags=-isrlL; fi
./build_linux.sh "$flags"
./build_linux.sh -istrlL
./scripts/check_appimage_libs.sh ./build/package ./build/package/bin/orca-slicer
appimage=./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}${{ env.arch_suffix }}_${{ env.ver }}.AppImage
mv -n ./build/OrcaSlicer_Linux_V${{ env.ver_pure }}.AppImage "$appimage"
chmod +x "$appimage"
if $tests; then tar -cvpf build_tests.tar build/tests; fi
mv -n ./build/OrcaSlicer_Linux_V${{ env.ver_pure }}.AppImage ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
chmod +x ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
tar -cvpf build_tests.tar build/tests
# Use tar because upload-artifacts won't always preserve directory structure
# and doesn't preserve file permissions
- name: Upload Test Artifact
if: runner.os == 'Linux' && ((!vars.SELF_HOSTED && inputs.arch == 'aarch64') || (vars.SELF_HOSTED && inputs.arch != 'aarch64'))
if: runner.os == 'Linux'
uses: actions/upload-artifact@v7
with:
name: ${{ github.sha }}-tests
@@ -478,7 +401,7 @@ jobs:
if-no-files-found: error
- name: Run external slicer regression tests
if: runner.os == 'Linux' && inputs.arch != 'aarch64'
if: runner.os == 'Linux'
timeout-minutes: 20
shell: bash
run: |
@@ -488,7 +411,7 @@ jobs:
python3 "$test_repo_dir/run_test.py" "${{ github.workspace }}/build/package/bin/orca-slicer"
- name: Build orca_custom_preset_tests
if: github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED && inputs.arch != 'aarch64'
if: github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED
working-directory: ${{ github.workspace }}/build/src/Release
shell: bash
run: |
@@ -500,28 +423,28 @@ jobs:
if: ${{ ! env.ACT && runner.os == 'Linux' }}
uses: actions/upload-artifact@v7
with:
name: OrcaSlicer_Linux_ubuntu_${{ env.ubuntu-ver }}${{ env.arch_suffix }}_${{ env.ver }}
path: "./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}${{ env.arch_suffix }}_${{ env.ver }}.AppImage"
name: OrcaSlicer_Linux_ubuntu_${{ env.ubuntu-ver }}_${{ env.ver }}
path: './build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage'
- name: Upload OrcaSlicer_profile_validator Ubuntu
if: ${{ ! env.ACT && runner.os == 'Linux' && !vars.SELF_HOSTED && inputs.arch != 'aarch64' }}
if: ${{ ! env.ACT && runner.os == 'Linux' && !vars.SELF_HOSTED }}
uses: actions/upload-artifact@v7
with:
name: OrcaSlicer_profile_validator_Linux_ubuntu_${{ env.ubuntu-ver }}_${{ env.ver }}
path: './build/src/Release/OrcaSlicer_profile_validator'
- name: Deploy Ubuntu release
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && env.deploy_nightly == 'true' && runner.os == 'Linux' && !vars.SELF_HOSTED }}
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED }}
uses: WebFreak001/deploy-nightly@v3.2.0
with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
release_id: 137995723
asset_path: ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}${{ env.arch_suffix }}_${{ env.ver }}.AppImage
asset_name: OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}${{ env.arch_suffix }}_nightly${{ env.nightly_suffix }}.AppImage
asset_path: ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
asset_name: OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_nightly.AppImage
asset_content_type: application/octet-stream
max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted
- name: Deploy Ubuntu release
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED && inputs.arch != 'aarch64' }}
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED }}
uses: rickstaa/action-create-tag@v1
with:
tag: "nightly-builds"
@@ -530,7 +453,7 @@ jobs:
message: "nightly-builds"
- name: Deploy Ubuntu OrcaSlicer_profile_validator release
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED && inputs.arch != 'aarch64' }}
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED }}
uses: WebFreak001/deploy-nightly@v3.2.0
with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
@@ -541,7 +464,7 @@ jobs:
max_releases: 1
- name: Deploy orca_custom_preset_tests
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED && inputs.arch != 'aarch64' }}
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED }}
uses: WebFreak001/deploy-nightly@v3.2.0
with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
+9 -116
View File
@@ -38,10 +38,10 @@ jobs:
- name: Download
working-directory: ${{ github.workspace }}
run: |
curl -L -o OrcaSlicer_profile_validator https://github.com/OrcaSlicer/OrcaSlicer/releases/download/nightly-builds/OrcaSlicer_profile_validator_Linux_Ubuntu2404_nightly
curl -LJO https://github.com/SoftFever/Orca_tools/releases/download/1/OrcaSlicer_profile_validator
chmod +x ./OrcaSlicer_profile_validator
# Validate all system profiles.
# validate profiles
- name: validate system profiles
id: validate_system
continue-on-error: true
@@ -49,115 +49,17 @@ jobs:
set +e
./OrcaSlicer_profile_validator -p ${{ github.workspace }}/resources/profiles -l 2 2>&1 | tee ${{ runner.temp }}/validate_system.log
exit ${PIPESTATUS[0]}
# For now run filament subtype check only for BBL profiles until we fix other vendors' profiles.
- name: validate filament subtype check for BBL profiles
id: validate_filament_subtypes
continue-on-error: true
run: |
set +e
./OrcaSlicer_profile_validator -p ${{ github.workspace }}/resources/profiles -l 2 -v BBL -f 2>&1 | tee ${{ runner.temp }}/validate_filament_subtypes.log
exit ${PIPESTATUS[0]}
- name: validate custom presets
id: validate_custom
continue-on-error: true
working-directory: ${{ github.workspace }}
run: |
fixtures_dir="${{ runner.temp }}/profile-fixtures"
output_dir="${{ runner.temp }}/custom-preset-validation"
combined_log="${{ runner.temp }}/validate_custom.log"
summary="${output_dir}/summary.md"
release_url="https://github.com/OrcaSlicer/OrcaSlicer-profile-validator/releases/download/fixture-archive"
rm -rf "${fixtures_dir}" "${output_dir}"
mkdir -p "${fixtures_dir}" "${output_dir}"
curl -fsSL -o "${fixtures_dir}/manifest.json" "${release_url}/manifest.json"
MANIFEST_PATH="${fixtures_dir}/manifest.json" python3 <<'PY' > "${fixtures_dir}/fixtures.tsv"
import json
import os
with open(os.environ["MANIFEST_PATH"], encoding="utf-8") as fh:
manifest = json.load(fh)
if isinstance(manifest, dict):
entries = manifest.get("fixtures", [])
else:
entries = manifest
for entry in entries:
version = entry.get("version", "")
asset = entry.get("asset", "")
sha256 = entry.get("asset_sha256", "")
if not version or not asset:
continue
print(f"{version}\t{asset}\t{sha256}")
PY
if [ ! -s "${fixtures_dir}/fixtures.tsv" ]; then
echo "No custom preset fixtures found in ${release_url}/manifest.json" | tee "${combined_log}"
exit 1
fi
{
echo "## Custom Preset Fixture Validation"
echo ""
echo "| Version | Status | Log |"
echo "| --- | --- | --- |"
} > "${summary}"
status=0
failed_logs=()
while IFS=$'\t' read -r version asset expected_sha256; do
fixture_zip="${fixtures_dir}/${asset}"
asset_url_name="$(python3 -c 'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1], safe=""))' "${asset}")"
profile_tree="${output_dir}/profiles-${version}"
log_path="${output_dir}/${version}.log"
curl -fsSL -o "${fixture_zip}" "${release_url}/${asset_url_name}"
if [ -n "${expected_sha256}" ] && [ "${expected_sha256}" != "<sha256>" ]; then
echo "${expected_sha256} ${fixture_zip}" | sha256sum -c -
fi
rm -rf "${profile_tree}"
mkdir -p "${profile_tree}"
cp -a "${{ github.workspace }}/resources/profiles/." "${profile_tree}/"
rm -rf "${profile_tree}/user"
unzip -q "${fixture_zip}" -d "${profile_tree}"
set +e
./OrcaSlicer_profile_validator -p "${profile_tree}" -l 2 > "${log_path}" 2>&1
result=$?
set -e
if [ "${result}" -eq 0 ]; then
echo "| ${version} | PASS | ${version}.log |" >> "${summary}"
else
echo "| ${version} | FAIL | ${version}.log |" >> "${summary}"
failed_logs+=("${log_path}")
status=1
fi
done < "${fixtures_dir}/fixtures.tsv"
{
cat "${summary}"
if [ "${#failed_logs[@]}" -gt 0 ]; then
echo ""
echo "## Failed Fixture Logs"
for log_path in "${failed_logs[@]}"; do
echo ""
echo "### $(basename "${log_path}" .log)"
echo '```'
head -c 12000 "${log_path}" || echo "No output captured"
echo '```'
done
fi
} | tee "${combined_log}"
exit "${status}"
set +e
curl -LJO https://github.com/OrcaSlicer/OrcaSlicer/releases/download/nightly-builds/orca_custom_preset_tests.zip
unzip -q ./orca_custom_preset_tests.zip -d ${{ github.workspace }}/resources/profiles
./OrcaSlicer_profile_validator -p ${{ github.workspace }}/resources/profiles -l 2 2>&1 | tee ${{ runner.temp }}/validate_custom.log
exit ${PIPESTATUS[0]}
- name: Prepare PR number for comment workflow
if: ${{ always() && github.event_name == 'pull_request' }}
@@ -166,7 +68,7 @@ jobs:
echo "${{ github.event.pull_request.number }}" > ${{ runner.temp }}/profile-check-results/pr_number.txt
- name: Prepare comment artifact
if: ${{ always() && github.event_name == 'pull_request' && (steps.extra_json_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_filament_subtypes.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }}
if: ${{ always() && github.event_name == 'pull_request' && (steps.extra_json_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }}
run: |
{
# Marker matched by check_profiles_comment.yml to delete prior comments.
@@ -192,15 +94,6 @@ jobs:
echo ""
fi
if [ "${{ steps.validate_filament_subtypes.outcome }}" = "failure" ]; then
echo "### BBL Filament Subtype Validation Failed"
echo ""
echo '```'
head -c 30000 ${{ runner.temp }}/validate_filament_subtypes.log || echo "No output captured"
echo '```'
echo ""
fi
if [ "${{ steps.validate_custom.outcome }}" = "failure" ]; then
echo "### Custom Preset Validation Failed"
echo ""
@@ -223,7 +116,7 @@ jobs:
retention-days: 1
- name: Fail if any check failed
if: ${{ always() && (steps.extra_json_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_filament_subtypes.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }}
if: ${{ always() && (steps.extra_json_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }}
run: |
echo "One or more profile checks failed. See above for details."
exit 1
+2 -2
View File
@@ -24,7 +24,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Ask PR author for label
uses: actions/github-script@v9
uses: actions/github-script@v7
with:
script: |
function isPermissionDenied(error) {
@@ -88,7 +88,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Apply label command from PR author
uses: actions/github-script@v9
uses: actions/github-script@v7
with:
script: |
function isPermissionDenied(error) {
+12 -16
View File
@@ -17,7 +17,7 @@ on:
required: true
type: string
tag:
description: 'Tag of the draft release to upload to (e.g. v2.4.0)'
description: 'Tag of the draft release to upload to (e.g. v2.4.0-beta)'
required: true
type: string
@@ -73,9 +73,8 @@ jobs:
- name: Download release artifacts from build run
run: |
# Windows_V* (not Windows_*) keeps the MSIX Store artifact out: it goes to Partner Center, not GitHub releases.
gh run download "$RUN_ID" --repo "$GITHUB_REPOSITORY" --dir artifacts \
-p 'OrcaSlicer_Windows_V*' \
-p 'OrcaSlicer_Windows_*' \
-p 'OrcaSlicer_Mac_universal_*' \
-p 'OrcaSlicer_Linux_ubuntu_*' \
-p 'OrcaSlicer-Linux-flatpak_*' \
@@ -92,11 +91,9 @@ jobs:
# binaries are already unzipped. Copy the inner binary for each platform.
# -type f is required (some artifact *folders* are named "*.flatpak").
# Windows installers (x64 + arm64): the .exe inside each installer
# artifact, NOT the orca-slicer.exe in the portable app folder. CPack
# now bakes the arch into the filename (…_x64.exe / …_arm64.exe), so
# copy them straight through.
find artifacts -type f -name '*.exe' -path '*OrcaSlicer_Windows_V*' ! -path '*_portable*' -exec cp -v {} upload/ \;
# Windows installer: the .exe inside the installer artifact, NOT the
# orca-slicer.exe that lives in the portable app folder.
find artifacts -type f -name '*.exe' -path '*OrcaSlicer_Windows_*' ! -path '*_portable*' -exec cp -v {} upload/ \;
# macOS universal DMG (profile-validator DMG isn't downloaded).
find artifacts -type f -name '*.dmg' -path '*OrcaSlicer_Mac_universal_*' -exec cp -v {} upload/ \;
# Linux AppImage.
@@ -106,16 +103,15 @@ jobs:
# Windows debug symbols (PDB archive, for developers).
find artifacts -type f -name 'Debug_PDB_*.7z' -exec cp -v {} upload/ \;
# Portable Windows builds (x64 + arm64) are unzipped folder artifacts;
# re-zip each to its released filename (these stay .zip on the release).
mapfile -t portable_dirs < <(find artifacts -maxdepth 1 -type d -name 'OrcaSlicer_Windows_*_portable')
if [ ${#portable_dirs[@]} -eq 0 ]; then
echo "::warning::Windows portable artifact not found."
fi
for portable_dir in "${portable_dirs[@]}"; do
# Portable Windows build is an unzipped folder artifact; re-zip it to the
# released filename (this one stays a .zip on the release).
portable_dir=$(find artifacts -maxdepth 1 -type d -name 'OrcaSlicer_Windows_*_portable' | head -n1)
if [ -n "${portable_dir:-}" ]; then
( cd "$portable_dir" && zip -qr "$GITHUB_WORKSPACE/upload/$(basename "$portable_dir").zip" . )
echo "Zipped portable -> $(basename "$portable_dir").zip"
done
else
echo "::warning::Windows portable artifact not found."
fi
echo "Assets to upload:"
ls -lh upload
+1 -3
View File
@@ -46,6 +46,4 @@ test.js
internal_docs/
*.flatpak
/flatpak-repo/
# Python bytecode
__pycache__/
*.pyc
*.pyc
-10
View File
@@ -934,16 +934,6 @@ set (CPACK_PACKAGE_VERSION_MAJOR "${ORCA_VERSION_MAJOR}")
set (CPACK_PACKAGE_VERSION_MINOR "${ORCA_VERSION_MINOR}")
set (CPACK_PACKAGE_VERSION_PATCH "${ORCA_VERSION_PATCH}")
set (CPACK_PACKAGE_FILE_NAME "OrcaSlicer_Windows_Installer_V${SoftFever_VERSION}")
# Suffix the Windows installer with its target arch so the x64 and arm64 builds
# produce distinct filenames (matches ARCH_SUFFIX in build_orca.yml). Same
# CMAKE_SYSTEM_PROCESSOR mapping used by orcaslicer_copy_dlls() above.
if (WIN32)
if (CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64")
string (APPEND CPACK_PACKAGE_FILE_NAME "_arm64")
else ()
string (APPEND CPACK_PACKAGE_FILE_NAME "_x64")
endif ()
endif ()
set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "Orca Slicer is an open source slicer for FDM printers")
set (CPACK_PACKAGE_HOMEPAGE_URL "https://github.com/OrcaSlicer/OrcaSlicer")
set (CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME})
-2
View File
@@ -161,8 +161,6 @@ It can also be installed through graphical software managers (KDE Discover, GNOM
### AppImage
AppImages are published for both **x86_64** and **aarch64** (ARM64). Pick the file matching your CPU — the ARM64 build has `aarch64` in its name (e.g. `OrcaSlicer_Linux_AppImage_Ubuntu2404_aarch64_*.AppImage`).
1. Download App image from the [releases page](https://github.com/OrcaSlicer/OrcaSlicer/releases).
2. Double click the downloaded file to run it.
+6 -17
View File
@@ -504,24 +504,13 @@ if [[ -n "${USE_LLD}" ]] ; then
fi
fi
# Auto-detect ccache for faster rebuilds
export CMAKE_CCACHE_ARGS=()
CMAKE_CCACHE=${CMAKE_CCACHE:-}
if [ -n "$CMAKE_CCACHE" ]; then
echo "Checking ${CMAKE_CCACHE} environment variable for compiler cache program..."
CMAKE_CCACHE=$(command -v "${CMAKE_CCACHE}") || {
echo "CMAKE_CCACHE environment variable is set to '${CMAKE_CCACHE}' but it was not found in PATH."
CMAKE_CCACHE=""
}
elif command -v sccache >/dev/null 2>&1 ; then
CMAKE_CCACHE=$(command -v sccache)
elif command -v ccache >/dev/null 2>&1 ; then
CMAKE_CCACHE=$(command -v ccache)
fi
if [ -n "${CMAKE_CCACHE}" ] ; then
echo "${CMAKE_CCACHE} found, enabling compiler caching..."
export CMAKE_CCACHE_ARGS=(-DCMAKE_C_COMPILER_LAUNCHER="${CMAKE_CCACHE}" -DCMAKE_CXX_COMPILER_LAUNCHER="${CMAKE_CCACHE}")
if command -v ccache >/dev/null 2>&1 ; then
echo "ccache found at $(command -v ccache), enabling compiler caching..."
export CMAKE_CCACHE_ARGS=(-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache)
else
echo "Note: ccache or sccache are not found. Install either of them for faster rebuilds."
echo "Note: ccache not found. Install ccache for faster rebuilds."
fi
if [[ -n "${BUILD_DEPS}" ]] ; then
@@ -536,7 +525,7 @@ if [[ -n "${BUILD_DEPS}" ]] ; then
BUILD_ARGS+=(-DCMAKE_BUILD_TYPE="${BUILD_CONFIG}")
fi
print_and_run cmake -S deps -B deps/$BUILD_DIR "${CMAKE_C_CXX_COMPILER_CLANG[@]}" "${CMAKE_LLD_LINKER_ARGS[@]}" "${CMAKE_CCACHE_ARGS[@]}" -G Ninja "${COLORED_OUTPUT}" "${BUILD_ARGS[@]}"
print_and_run cmake -S deps -B deps/$BUILD_DIR "${CMAKE_C_CXX_COMPILER_CLANG[@]}" "${CMAKE_LLD_LINKER_ARGS[@]}" -G Ninja "${COLORED_OUTPUT}" "${BUILD_ARGS[@]}"
print_and_run cmake --build deps/$BUILD_DIR -j1
fi
+7 -20
View File
@@ -3,17 +3,6 @@
set WP=%CD%
set _START_TIME=%TIME%
@REM Default target architecture to the host CPU arch; override by passing
@REM "x64" or "arm64" as an argument. PROCESSOR_ARCHITEW6432 covers a 32-bit
@REM shell running on a 64-bit OS, where PROCESSOR_ARCHITECTURE reads "x86".
set arch=x64
if /I "%PROCESSOR_ARCHITECTURE%"=="ARM64" set arch=ARM64
if /I "%PROCESSOR_ARCHITEW6432%"=="ARM64" set arch=ARM64
if /I "%1"=="arm64" set arch=ARM64
if /I "%2"=="arm64" set arch=ARM64
if /I "%1"=="x64" set arch=x64
if /I "%2"=="x64" set arch=x64
@REM Check for Ninja Multi-Config option (-x)
set USE_NINJA=0
for %%a in (%*) do (
@@ -79,13 +68,12 @@ echo Using CMake generator: %CMAKE_GENERATOR%
@REM Pack deps
if "%1"=="pack" (
setlocal ENABLEDELAYEDEXPANSION
setlocal ENABLEDELAYEDEXPANSION
cd %WP%/deps/build
if "%arch%"=="ARM64" cd %WP%/deps/build-arm64
for /f "tokens=2-4 delims=/ " %%a in ('date /t') do set build_date=%%c%%b%%a
echo packing deps: OrcaSlicer_dep_win-!arch!_!build_date!_vs!VS_VERSION!.zip
echo packing deps: OrcaSlicer_dep_win64_!build_date!_vs!VS_VERSION!.zip
%WP%/tools/7z.exe a OrcaSlicer_dep_win-!arch!_!build_date!_vs!VS_VERSION!.zip OrcaSlicer_dep
%WP%/tools/7z.exe a OrcaSlicer_dep_win64_!build_date!_vs!VS_VERSION!.zip OrcaSlicer_dep
goto :done
)
@@ -107,10 +95,9 @@ if "%debug%"=="ON" (
set build_dir=build
)
)
if "%arch%"=="ARM64" set build_dir=%build_dir%-arm64
echo build type set to %build_type%, arch=%arch%
echo build type set to %build_type%
setlocal DISABLEDELAYEDEXPANSION
setlocal DISABLEDELAYEDEXPANSION
cd deps
mkdir %build_dir%
cd %build_dir%
@@ -129,7 +116,7 @@ if "%USE_NINJA%"=="1" (
cmake ../ -G %CMAKE_GENERATOR% -DCMAKE_BUILD_TYPE=%build_type%
cmake --build . --config %build_type% --target deps
) else (
cmake ../ -G %CMAKE_GENERATOR% -A %arch% -DCMAKE_BUILD_TYPE=%build_type%
cmake ../ -G %CMAKE_GENERATOR% -A x64 -DCMAKE_BUILD_TYPE=%build_type%
cmake --build . --config %build_type% --target deps -- -m
)
@echo off
@@ -148,7 +135,7 @@ if "%USE_NINJA%"=="1" (
cmake .. -G %CMAKE_GENERATOR% -DORCA_TOOLS=ON %SIG_FLAG% -DCMAKE_BUILD_TYPE=%build_type%
cmake --build . --config %build_type% --target ALL_BUILD
) else (
cmake .. -G %CMAKE_GENERATOR% -A %arch% -DORCA_TOOLS=ON %SIG_FLAG% -DCMAKE_BUILD_TYPE=%build_type%
cmake .. -G %CMAKE_GENERATOR% -A x64 -DORCA_TOOLS=ON %SIG_FLAG% -DCMAKE_BUILD_TYPE=%build_type%
cmake --build . --config %build_type% --target ALL_BUILD -- -m
)
@echo off
+3 -12
View File
@@ -15,18 +15,10 @@ if "%1"=="pack" (
set debug=OFF
set debuginfo=OFF
@REM Default target architecture to the host CPU arch; override with x64/arm64 arg.
set arch=x64
if /I "%PROCESSOR_ARCHITECTURE%"=="ARM64" set arch=ARM64
if /I "%PROCESSOR_ARCHITEW6432%"=="ARM64" set arch=ARM64
if "%1"=="debug" set debug=ON
if "%2"=="debug" set debug=ON
if "%1"=="debuginfo" set debuginfo=ON
if "%2"=="debuginfo" set debuginfo=ON
if /I "%1"=="arm64" set arch=ARM64
if /I "%2"=="arm64" set arch=ARM64
if /I "%1"=="x64" set arch=x64
if /I "%2"=="x64" set arch=x64
if "%debug%"=="ON" (
set build_type=Debug
set build_dir=build-dbg
@@ -39,8 +31,7 @@ if "%debug%"=="ON" (
set build_dir=build
)
)
if "%arch%"=="ARM64" set build_dir=%build_dir%-arm64
echo build type set to %build_type%, arch=%arch%
echo build type set to %build_type%
setlocal DISABLEDELAYEDEXPANSION
cd deps
@@ -57,7 +48,7 @@ echo "building deps.."
echo on
REM Set minimum CMake policy to avoid <3.5 errors
set CMAKE_POLICY_VERSION_MINIMUM=3.5
cmake ../ -G "Visual Studio 17 2022" -A %arch% -DCMAKE_BUILD_TYPE=%build_type%
cmake ../ -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=%build_type%
cmake --build . --config %build_type% --target deps -- -m
@echo off
@@ -71,7 +62,7 @@ cd %build_dir%
echo on
set CMAKE_POLICY_VERSION_MINIMUM=3.5
cmake .. -G "Visual Studio 17 2022" -A %arch% -DORCA_TOOLS=ON %SIG_FLAG% -DCMAKE_BUILD_TYPE=%build_type%
cmake .. -G "Visual Studio 17 2022" -A x64 -DORCA_TOOLS=ON %SIG_FLAG% -DCMAKE_BUILD_TYPE=%build_type%
cmake --build . --config %build_type% --target ALL_BUILD -- -m
@echo off
cd ..
-2
View File
@@ -124,8 +124,6 @@ endif()
if("${CMAKE_GENERATOR_PLATFORM}" MATCHES "x64" OR "${CMAKE_GENERATOR}" MATCHES "Win64")
set(_arch "x64")
elseif("${CMAKE_GENERATOR_PLATFORM}" MATCHES "ARM64")
set(_arch "x64") # GLEW ships one header set; ARM64 uses the x64 import path
else()
set(_arch "Win32")
endif()
-15
View File
@@ -10,20 +10,6 @@ if (APPLE AND CMAKE_OSX_ARCHITECTURES)
set(_context_arch_line "-DBOOST_CONTEXT_ARCHITECTURE:STRING=${CMAKE_OSX_ARCHITECTURES}")
endif ()
# Windows ARM64: Boost.Context's default fcontext implementation assembles .asm
# via armasm64, which trips a CMake ASM_ARMASM linker-module bug under the VS
# generator. The winfib implementation (Windows Fiber API) avoids assembly while
# keeping the Boost::context target that Boost.Asio's stackful coroutines need.
set(_context_impl_line "")
if (MSVC AND "${DEPS_ARCH}" STREQUAL "arm64")
set(_context_impl_line "-DBOOST_CONTEXT_IMPLEMENTATION:STRING=winfib")
endif ()
set(_options "")
if (MSVC AND DEP_DEBUG)
set(_options "FORWARD_CONFIG")
endif ()
orcaslicer_add_cmake_project(Boost
URL "https://github.com/boostorg/boost/releases/download/boost-1.84.0/boost-1.84.0.tar.gz"
URL_HASH SHA256=4d27e9efed0f6f152dc28db6430b9d3dfb40c0345da7342eaa5a987dde57bd95
@@ -36,7 +22,6 @@ orcaslicer_add_cmake_project(Boost
-DBOOST_IOSTREAMS_ENABLE_ZSTD:BOOL=OFF
"${_context_abi_line}"
"${_context_arch_line}"
"${_context_impl_line}"
)
set(DEP_Boost_DEPENDS ZLIB)
-4
View File
@@ -196,8 +196,6 @@ if (NOT IS_CROSS_COMPILE OR NOT APPLE)
-DCMAKE_DEBUG_POSTFIX:STRING=d
-DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
-DCMAKE_C_COMPILER_LAUNCHER:STRING=${CMAKE_C_COMPILER_LAUNCHER}
-DCMAKE_CXX_COMPILER_LAUNCHER:STRING=${CMAKE_CXX_COMPILER_LAUNCHER}
-DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE}
-DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS}
-DCMAKE_SHARED_LINKER_FLAGS:STRING=${CMAKE_SHARED_LINKER_FLAGS}
@@ -243,8 +241,6 @@ else()
-DCMAKE_INSTALL_PREFIX:STRING=${DESTDIR}
-DCMAKE_PREFIX_PATH:STRING=${DESTDIR}
-DCMAKE_IGNORE_PREFIX_PATH:STRING=${CMAKE_IGNORE_PREFIX_PATH}
-DCMAKE_C_COMPILER_LAUNCHER:STRING=${CMAKE_C_COMPILER_LAUNCHER}
-DCMAKE_CXX_COMPILER_LAUNCHER:STRING=${CMAKE_CXX_COMPILER_LAUNCHER}
-DBUILD_SHARED_LIBS:BOOL=OFF
${_cmake_osx_arch}
"${_configs_line}"
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -3
View File
@@ -1,6 +1,4 @@
# Intel IPP / IPP-ICV is x86/x64 only — there is no ARM64 build, so enabling it
# leaves ~200 unresolved ippicv* externals at link time on Windows ARM64.
if (MSVC AND NOT "${DEPS_ARCH}" STREQUAL "arm64")
if (MSVC)
set(_use_IPP "-DWITH_IPP=ON")
else ()
set(_use_IPP "-DWITH_IPP=OFF")
-12
View File
@@ -32,17 +32,6 @@ else()
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(_patch_cmd ${PATCH_CMD} ${CMAKE_CURRENT_LIST_DIR}/0001-OpenEXR-GCC13.patch)
elseif (MSVC AND "${DEPS_ARCH}" STREQUAL "arm64")
# Windows ARM64: OpenEXR 2.5.5 hard-codes IMF_HAVE_SSE2 for any MSVC
# (ImfSimd.h: `_MSC_VER >= 1300`), pulling in <emmintrin.h> (x86-only) -> C1189.
# Patch the header to require an x86 target, and force the SSE cache vars off.
set(_patch_cmd ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_LIST_DIR}/patch_openexr_arm64.cmake)
set(_openexr_arm64_args
-DOPENEXR_IMF_HAVE_SSE2:BOOL=OFF
-DOPENEXR_IMF_HAVE_SSSE3:BOOL=OFF
-DILMBASE_HAVE_SSE:BOOL=OFF
-DILMBASE_FORCE_DISABLE_INTEL_SSE:BOOL=ON
)
else ()
set(_patch_cmd "")
endif ()
@@ -60,7 +49,6 @@ orcaslicer_add_cmake_project(OpenEXR
-DPYILMBASE_ENABLE:BOOL=OFF
-DOPENEXR_VIEWERS_ENABLE:BOOL=OFF
-DOPENEXR_BUILD_UTILS:BOOL=OFF
${_openexr_arm64_args}
)
endif()
-29
View File
@@ -1,29 +0,0 @@
# Applied as PATCH_COMMAND for OpenEXR 2.5.5 on Windows ARM64.
#
# Root cause of the ARM64 build failure: OpenEXR/IlmImf/ImfSimd.h hard-codes
# #if defined __SSE2__ || (_MSC_VER >= 1300 && !_M_CEE_PURE)
# #define IMF_HAVE_SSE2 1
# #endif
# The `_MSC_VER >= 1300` arm is true for *every* MSVC, including ARM64, so
# IMF_HAVE_SSE2 gets defined and <emmintrin.h> (an x86-only header) is pulled
# in -> error C1189. This is a pure-preprocessor decision, so no CMake cache
# variable can suppress it. Patch the header to also require an x86 target.
set(_simd "OpenEXR/IlmImf/ImfSimd.h")
if(EXISTS "${_simd}")
file(READ "${_simd}" _content)
set(_old "#if defined __SSE2__ || (_MSC_VER >= 1300 && !_M_CEE_PURE)")
set(_new "#if (defined __SSE2__ || (_MSC_VER >= 1300 && !_M_CEE_PURE)) && (defined(_M_IX86) || defined(_M_X64) || defined(__i386__) || defined(__x86_64__))")
if(_content MATCHES "_M_IX86")
message(STATUS "[ARM64 patch] ImfSimd.h already guarded")
else()
string(REPLACE "${_old}" "${_new}" _patched "${_content}")
if(_patched STREQUAL _content)
message(FATAL_ERROR "[ARM64 patch] Failed to match SSE2 guard in ${_simd}")
endif()
file(WRITE "${_simd}" "${_patched}")
message(STATUS "[ARM64 patch] Guarded IMF_HAVE_SSE2 with x86 arch check in ${_simd}")
endif()
else()
message(FATAL_ERROR "[ARM64 patch] Not found: ${_simd}")
endif()
+1 -5
View File
@@ -6,11 +6,7 @@ if(DEFINED OPENSSL_ARCH)
set(_cross_arch ${OPENSSL_ARCH})
else()
if(WIN32)
if("${CMAKE_GENERATOR_PLATFORM}" STREQUAL "ARM64")
set(_cross_arch "VC-WIN64-ARM")
else()
set(_cross_arch "VC-WIN64A")
endif()
set(_cross_arch "VC-WIN64A")
elseif(APPLE)
set(_cross_arch "darwin64-${CMAKE_OSX_ARCHITECTURES}-cc")
endif()
+1 -1
View File
@@ -267,7 +267,7 @@ void ImGui::Text(const char* fmt, ...)
void ImGui::TextCentered(const char* text, ...)
{
va_list vaList;
va_start(vaList, text);
va_start(vaList,&text);
float font_size = ImGui::GetFontSize() * strlen(text) / 2;
ImGui::SameLine(ImGui::GetCursorPos().x / 2 - font_size + (font_size / 2));
+668
View File
@@ -0,0 +1,668 @@
# OrcaSlicer UI Automation Protocol (v1.0.0)
OrcaSlicer ships an **opt-in, localhost-only JSON-RPC server** that lets external
scripts introspect, drive, and screenshot the running OrcaSlicer GUI. It is built
for end-to-end testing and automation: a script can enumerate the live widget
tree, click buttons, type text, send keyboard shortcuts, wait for UI state, query
high-level application state, load models/projects into the running instance,
switch the active view/tab, and capture window images (the on-screen capture
includes the 3D viewport).
This document is the protocol reference. It describes activation, the transport,
the JSON-RPC envelope, every method, the unified node shape, the target/locator
model, error codes, the set of instrumented automation ids, ImGui specifics,
platform caveats, a quick-start snippet, and planned future work.
---
## 1. Overview & activation
The automation server is **OFF by default**. It is enabled with two
command-line flags:
| Flag | Meaning |
|---|---|
| `--automation-server` | Enable the automation server. |
| `--automation-server-port=PORT` | Override the listening port. Optional; default is **13619**. |
Example:
```bash
OrcaSlicer --automation-server --automation-server-port=13619 model.stl
```
The server binds to **`127.0.0.1` only** (the loopback interface). It is never
exposed on an external network interface.
**Security note (v1):** there is **no authentication token** in v1. The localhost
bind is the *only* security boundary. Any process able to run code on the machine
can connect to the port and drive the GUI — including injecting mouse and keyboard
input — while the server is enabled. The feature is intended for testing and
automation environments, not for production or shared/multi-user machines.
When the server is enabled, OrcaSlicer emits a `warning`-level log line at startup
to make the active input-injection surface obvious in logs, for example:
```
UI automation server ENABLED ... input injection is active
```
---
## 2. Transport
The server speaks **HTTP/1.1** over the loopback TCP socket:
| Request | Response |
|---|---|
| `POST /jsonrpc` with a JSON-RPC 2.0 request body | A JSON-RPC 2.0 response with `Content-Type: application/json`. |
| `GET /` | A plain-text health page: `OrcaSlicer automation server v1.0.0` (`Content-Type: text/plain`). |
| Anything else | HTTP `404 Not Found`. |
The server is **single-client / serialized** in v1: it handles one request at a
time on its own dedicated I/O thread. Connections are not kept alive; each request
is answered and the socket is closed. Clients should issue requests sequentially.
---
## 3. JSON-RPC envelope
The protocol follows **JSON-RPC 2.0**.
**Request:**
```json
{ "jsonrpc": "2.0", "id": <id>, "method": "<method>", "params": { ... } }
```
- `params` may be omitted; the server treats a missing `params` as an empty object.
**Success response:**
```json
{ "jsonrpc": "2.0", "id": <id>, "result": { ... } }
```
**Error response:**
```json
{ "jsonrpc": "2.0", "id": <id>, "error": { "code": <int>, "message": "<string>" } }
```
The request `id` is echoed back in the response. When the request has no `id`, or
when the request body cannot be parsed as JSON, the response `id` is `null`.
---
## 4. Methods
There are 12 methods. Capabilities advertised by `automation.version` list the 11
callable feature methods (every method except `automation.version` itself).
### `automation.version`
Returns server identity and the list of supported methods. Takes no parameters.
**Result:**
```json
{
"version": "1.0.0",
"protocol": "2.0",
"capabilities": [
"tree.dump", "tree.find", "widget.get", "input.click", "input.type",
"input.key", "sync.wait_for", "app.state", "screenshot.window", "file.open",
"view.select"
]
}
```
### `tree.dump`
Snapshot the live UI tree as a single root node with nested children.
**Params (all optional):**
| Param | Type | Default | Meaning |
|---|---|---|---|
| `root` | string (id or path) | full tree | Root the dump at the node with this id/path. |
| `max_depth` | int | `-1` | Maximum depth to descend. `-1` = unlimited. |
| `visible_only` | bool | `false` | When true, omit non-visible nodes. |
| `include_imgui` | bool | `true` | When true, include ImGui items. |
**Result:** the serialized root [node](#5-unified-node-shape), with `children`
included.
### `tree.find`
Find all nodes matching a [target predicate](#6-target--locator).
**Params:** a target predicate — any combination of `name`, `class`, `label`,
`value`, `backend` (provided fields are ANDed). The params object is the target
itself (it is *not* wrapped in a `target` key for this method).
**Result:** a **flat JSON array** of matching nodes. The nodes in this array are
returned **without** their `children` (use `widget.get`/`tree.dump` to descend).
### `widget.get`
Fetch a single node by [target](#6-target--locator).
**Params:**
| Param | Type | Required | Meaning |
|---|---|---|---|
| `target` | object | yes | Target spec (id / path / predicate). |
**Result:** a single [node](#5-unified-node-shape), with its `children` included.
**Errors:** `1001` if the target is **not found** *or* **ambiguous** (more than one
match).
### `input.click`
Click a resolved, actionable node.
**Params:**
| Param | Type | Default | Meaning |
|---|---|---|---|
| `target` | object | required | Target spec; must resolve to exactly one node. |
| `button` | string | `"left"` | `"left"`, `"right"`, or `"middle"`. |
| `double` | bool | `false` | Double-click when true. |
| `modifiers` | array of string | `[]` | Held modifiers: any of `"ctrl"`, `"shift"`, `"alt"`, `"cmd"` (`"meta"` is accepted as an alias of `"cmd"`). |
**Result:** `{ "ok": true }`.
**Errors:** `1001` not found / ambiguous; `1002` if the target is disabled or
hidden (not actionable). The click path raises and focuses the target's top-level
window before injecting the click.
### `input.type`
Type text into the currently focused control.
**Params:**
| Param | Type | Required | Meaning |
|---|---|---|---|
| `text` | string | yes | The text to type. |
| `target` | object | no | If given, this node is clicked first (to focus it) before typing. |
**Result:** `{ "ok": true }`.
**Errors:** if `target` is supplied, the same actionability errors as
`input.click` apply (`1001` / `1002`).
### `input.key`
Send a key chord (a key plus optional modifiers) to the focused window.
**Params:**
| Param | Type | Required | Meaning |
|---|---|---|---|
| `keys` | string or array | yes | Either a `"+"`-joined string like `"ctrl+s"`, or an array like `["ctrl", "s"]`. The last token is the key; earlier tokens are modifiers. |
**Result:** `{ "ok": true }`.
**Key names must be lowercase.** Recognized key names include `"enter"`, `"tab"`,
`"esc"`, `"space"`, `"delete"`, `"backspace"`, `"f5"` (and other function keys),
and single characters (e.g. `"s"`, `"a"`). Recognized modifiers are `"ctrl"`,
`"shift"`, `"alt"`, `"cmd"` (with `"meta"` as an alias for `"cmd"`).
**Unrecognized or uppercase key names are silently ignored** — no error is
returned, the key simply does not fire. Use lowercase names exclusively.
### `sync.wait_for`
Poll the UI until a target node reaches a desired state, or time out. This is the
preferred way to synchronize with asynchronous UI changes (it replaces fragile
fixed sleeps). Internally it repeatedly refreshes and dumps the tree, re-resolves
the target, and evaluates the requested state until it is satisfied.
**Params:**
| Param | Type | Default | Meaning |
|---|---|---|---|
| `target` | object | required | Target spec. |
| `state` | string | required | One of `"exists"`, `"visible"`, `"enabled"`, `"value"`. |
| `value` | string | — | Required when `state` is `"value"`; the expected value to match. |
| `timeout_ms` | int | `5000` | Maximum time to wait, in milliseconds. |
| `poll_ms` | int | `100` | Poll interval, in milliseconds (minimum 1). |
State semantics:
- `exists` — the target resolves to a node.
- `visible` — the node exists and is visible.
- `enabled` — the node exists and is **both enabled and visible**.
- `value` — the node has a value and that value equals the supplied `value`.
**Result:** `{ "ok": true, "elapsed_ms": <int> }`.
**Errors:** `1003` on timeout (the state was not reached within `timeout_ms`).
### `app.state`
Return a high-level application-state snapshot. Takes no parameters.
**Result:**
```json
{
"active_tab": "<string>",
"project_loaded": <bool>,
"slicing": <bool>,
"slice_progress": <int>,
"foreground": <bool>,
"modal_dialog": "<string>"
}
```
| Field | Meaning |
|---|---|
| `active_tab` | The active top-level tab/page. |
| `project_loaded` | Whether a project/model is currently loaded. |
| `slicing` | Whether slicing is currently in progress. |
| `slice_progress` | Slicing progress (`-1` when unknown). |
| `foreground` | Whether the main window is in the foreground. |
| `modal_dialog` | Present only when a modal dialog is active; identifies it. Omitted otherwise. |
### `screenshot.window`
Capture a window as a PNG, exactly as it appears on screen.
**Params:**
| Param | Type | Default | Meaning |
|---|---|---|---|
| `target` | object | main frame | If given, capture this window; otherwise capture the main frame. |
**Result:** `{ "png_base64": "<base64 PNG>", "width": <int>, "height": <int> }`.
**Errors:** `1005` on screenshot failure; `1001` if a supplied `target` is not
found or ambiguous.
**How it works:** the window's on-screen rectangle is read back from the
DWM-composited desktop framebuffer (`wxScreenDC`), so the capture includes every
native child control, the OpenGL 3D viewport, and ImGui overlays — it is a faithful
image of what the user sees. (Capturing the parent window's own client DC instead
would clip out child HWNDs and the GL surface, leaving them black; that is why this
method reads from the screen.)
**Caveats:**
- The window must be **visible and unobscured**. Because the source is the on-screen
framebuffer, any overlapping window occludes the captured region. The backend
raises the target window before capturing.
- **HiDPI:** the reported `width`/`height` come from the window's logical client size,
while the screen framebuffer is in physical pixels. On per-monitor-DPI displays the
two can differ; the capture may be cropped or scaled relative to the logical size.
- Because the capture is the live on-screen image, the 3D content reflects the
**current view**: the model in the 3D editor, or the gcode toolpaths in Preview
after a slice. There is no separate offscreen 3D-render method — the window
capture already includes whatever the GL canvas is showing.
### `file.open`
Load one or more files into the **already-running** instance at runtime, by calling
`Plater::load_files(...)` directly on the GUI thread. This is the supported way to add
or swap a model without relaunching the process. Loading is **synchronous**: when the
call returns `ok: true`, `app.state().project_loaded` is already `true` (no polling
race).
**Params:**
| Param | Type | Required | Meaning |
|---|---|---|---|
| `paths` | string or array of strings | yes | One or more **absolute** file paths. A bare string is accepted and treated as a one-element list. Paths are read from the **host (server) filesystem** — client and server are localhost-only. |
`.3mf` files are routed as projects and meshes as models automatically, based on file
content (the same default strategy as drag-drop); there is no `as_project` flag in v1.
**Result:** `{ "ok": true, "loaded": <int> }`, where `loaded` is the number of objects
added to the scene (`load_files(...).size()`).
**Errors:**
- `-32602` (invalid params) — `paths` is missing, is not a string/array, contains a
non-string entry, or yields no non-empty path.
- `1007` (load failed) — `load_files` returned empty or threw (file not found, parse
error, or unsupported format).
- `1004` (GUI busy) — the GUI-thread marshal timed out. An extremely large model can
exceed the marshal timeout and surface here; documented, not mitigated in v1.
### `view.select`
Switch the main window to a top-level view/tab at runtime. Useful to put the UI in a
known state before other actions — e.g. switch to **Prepare** before loading a model,
or to **Preview** after slicing.
**Params:**
| Param | Type | Required | Meaning |
|---|---|---|---|
| `view` | string | yes | The target view. One of: `home`, `prepare` (3D editor), `preview` (sliced G-code), `device`, `multi_device`, `project`, `calibration`. |
**Result:** `{ "ok": true, "view": <string>, "index": <int> }`, where `index` is the
resulting tab index (it can vary with layout, since some tabs — e.g. `multi_device`
are only present in certain configurations).
**Errors:**
- `-32602` (invalid params) — `view` is missing, is not a string, or is empty.
- `1001` (not found) — the view name is unknown, or that view is not available in the
current layout (for example `prepare`/`preview` in G-code-viewer mode, or
`multi_device` when multi-device is disabled).
- `1004` (GUI busy) — the GUI-thread marshal timed out.
---
## 5. Unified node shape
Both wx widgets and ImGui items are reported with the same node schema:
```json
{
"backend": "wx" | "imgui",
"id": "<string>",
"path": "<string>",
"class": "<string>",
"label": "<string>",
"rect": { "x": <int>, "y": <int>, "w": <int>, "h": <int> },
"enabled": <bool>,
"visible": <bool>,
"value": "<string>",
"children": [ <node>, ... ]
}
```
| Field | Meaning |
|---|---|
| `backend` | `"wx"` for native wxWidgets controls, `"imgui"` for immediate-mode ImGui items. |
| `id` | The automation id when one is set, otherwise a derived id. For ImGui items the `path` doubles as the `id`. |
| `path` | Positional path, e.g. `"MainFrame/Panel[2]/Button[0]"`. For ImGui items: `"ImGui/<window>/<label>"`. |
| `class` | wx class name, or the ImGui item type. |
| `label` | The control's label/caption. May include an ImGui `##`-id suffix for ImGui items. |
| `rect` | Bounding rectangle in **screen coordinates**. |
| `enabled` | Whether the control is enabled. |
| `visible` | Whether the control is visible. |
| `value` | The control's value (text/choice/check/slider, etc.). **Omitted entirely** when the control has no applicable value. |
| `children` | Child nodes. **wx only**, and present only when children are included (e.g. `tree.dump`, `widget.get`). ImGui items are flat (no children) and are listed under their window. |
Notes:
- The `value` key is **omitted** (not `null`) when the control has no value.
- `children` is present only for wx nodes when children are requested; ImGui nodes
never carry `children`.
---
## 6. Target / locator
Most methods accept a **target** object that identifies one or more nodes. A
target may specify:
| Field | Meaning |
|---|---|
| `id` | Exact automation id. |
| `path` | Exact positional path. |
| `name` | Predicate: matches either the node's `id` **or** its `label`. |
| `class` | Predicate: exact class name. |
| `label` | Predicate: exact label. |
| `value` | Predicate: node has a value and it equals this string. |
| `backend` | Predicate: `"wx"` or `"imgui"`. |
**Resolution order:** **`id``path` → predicate.**
- If `id` is present, only `id` is used (exact match).
- Else if `path` is present, only `path` is used (exact match).
- Else the predicate fields (`name`, `class`, `label`, `value`, `backend`) are
used, and all provided predicate fields are **ANDed** together.
Action methods (`input.click`, `input.type` with a target, `widget.get`, and
single-target `screenshot.window`) require a **unique** match. If the target
resolves to zero matches or more than one match, the call fails with error `1001`
(not found / ambiguous). `tree.find` is the exception: it returns *all* matches as
an array and never errors on ambiguity.
---
## 7. Error codes
Standard JSON-RPC codes:
| Code | Meaning |
|---|---|
| `-32700` | Parse error — the request body was not valid JSON. |
| `-32600` | Invalid request — missing/invalid `method`. |
| `-32601` | Method not found — unknown method name. |
| `-32602` | Invalid params — missing/invalid parameters for the method. |
Application-specific codes:
| Code | Meaning |
|---|---|
| `1001` | Widget/target not found **or** ambiguous (more than one match). |
| `1002` | Not actionable — the target is disabled or hidden. |
| `1003` | Wait timeout — `sync.wait_for` did not reach the requested state in time. |
| `1004` | GUI thread busy / timeout — a backend call could not be marshaled onto the GUI thread in time (wedged GUI). |
| `1005` | Screenshot failed. |
| `1006` | Disabled. |
| `1007` | Load failed — `file.open`'s `load_files` returned empty or threw (not found, parse error, unsupported format). |
---
## 8. Automation-id naming conventions & instrumented ids
Stable automation ids follow these prefix conventions:
| Prefix | Used for |
|---|---|
| `btn_` | Buttons |
| `combo_` | Preset combo boxes |
| `tab_` | Tabs |
| `canvas_` | Canvases |
| `dlg_` | Dialog buttons |
### Instrumented ids (as-built in v1)
The following controls currently carry stable automation ids:
| id | Control | Note |
|---|---|---|
| `btn_slice` | Slice-plate button | |
| `btn_export` | Print / Export button | Multi-purpose: the action (Print plate / Export G-code / Send) depends on the current mode. |
| `tab_device` | Device / Monitor tab (`MonitorPanel`) | |
| `combo_printer` | Printer preset combo (sidebar) | |
| `combo_filament` | Filament preset combo (sidebar) | First filament row only; extra multi-material rows are not instrumented. |
| `canvas_3d` | 3D editor GL canvas | |
### Controls NOT instrumented in v1
Several controls are intentionally **not** instrumented in v1 because they have no
stable `wxWindow` target to attach an id to:
- **`combo_process`** — process settings are not a sidebar combo box in the current
OrcaSlicer layout, so there is no combo control to instrument.
- **`btn_add`** — the add/import-object control is a `GLToolbar` item rendered
*inside* the GL canvas, not a `wxWindow`.
- **`tab_prepare` / `tab_preview`** — the Prepare and Preview notebook pages are
both backed by the **same** window, and the per-tab buttons are private; there is
no distinct stable window to target.
For controls that are not instrumented, scripts should fall back to class / label /
path lookup (for wx controls) or ImGui-item lookup (for ImGui controls).
---
## 9. ImGui notes
ImGui is **immediate-mode**: an item is addressable only while it is being drawn in
the current frame. The automation backend records ImGui items each frame, and a
`refresh_ui` is forced before every read or action so that the latest frame's items
are captured.
Consequences and conventions:
- Use [`sync.wait_for`](#syncwait_for) to wait for a transient gizmo or panel item
to appear before acting on it.
- ImGui items are reported with `backend: "imgui"`, a `path` of the form
`ImGui/<window>/<label>`, and that **path doubles as the item's `id`** in v1.
- ImGui items are **flat** — they have no `children` and are listed under their
window.
- Labels may include ImGui `##`-id suffixes (the part after `##` that ImGui uses to
disambiguate identically labeled widgets).
- Raw `ImGui::` gizmos that are *not* routed through the instrumented
`ImGuiWrapper` widgets (for example some Emboss / SVG / Text gizmo controls) are
only covered at the **window level** in v1; their individual sub-items are not
enumerated.
---
## 10. Platform & display caveats
- **Input requires a focused, visible window.** OS-level input injection uses
`wxUIActionSimulator`, which requires a focused, visible window. The click path
raises and focuses the target's top-level window first.
- **Linux CI needs a display.** There must be an X display available; wrap test
runs with `xvfb-run` (for example, `xvfb-run -a python example_slice.py ...`).
- **Input is asynchronous.** Do **not** rely on fixed sleeps. Use
[`sync.wait_for`](#syncwait_for) — for example, wait for `btn_export` to become
`enabled` after slicing completes — rather than sleeping for a guessed duration.
- **`screenshot.window` reads the screen.** It captures the on-screen, DWM-composited
framebuffer, so the target window must be visible and unobscured, and the result is
in physical pixels (see HiDPI caveat under [`screenshot.window`](#screenshotwindow)).
The capture includes the GL 3D viewport as currently shown (model or toolpaths).
- **Single-client / serialized.** v1 handles one request at a time; issue requests
sequentially from a single client.
- **GUI-thread marshaling.** Every backend call is marshaled onto the GUI thread
with a timeout. A wedged or unresponsive GUI returns error `1004`.
---
## 11. Quick start
Using the reference client in `tools/automation/orca_automation.py`:
```python
from orca_automation import OrcaClient
orca = OrcaClient(port=13619)
print(orca.version()) # {'version': '1.0.0', ...}
orca.select_view("prepare") # switch to the 3D editor
orca.open(r"C:\models\part.stl") # load a model at runtime (synchronous)
orca.click({"id": "btn_slice"}) # start slicing the plate
orca.wait_for({"id": "btn_export"}, # wait until slicing finishes
state="enabled", timeout_ms=180000)
orca.select_view("preview") # switch to the sliced G-code preview
png = orca.screenshot() # on-screen capture (incl. 3D view)
with open("window.png", "wb") as f:
f.write(png)
```
For a full, runnable end-to-end example — launching OrcaSlicer with the automation
flags, loading a model, slicing, waiting for completion, and saving a window PNG —
see `tools/automation/example_slice.py`.
---
## 12. Future work
Planned enhancements beyond v1:
- **Authentication token** plus a Preferences toggle to enable/disable the server
from the GUI.
- **WebSocket push events** for real-time UI/state notifications (instead of
polling).
- **Per-item ImGui gizmo instrumentation** so individual gizmo sub-controls (Emboss
/ SVG / Text, etc.) are addressable, not just at the window level.
- **More widget ids** — the process combo, the add/import button, and the
Prepare/Preview tabs once they expose stable windows.
- An **MCP wrapper** to expose the automation surface to model-context tooling.
---
## Verification (v1)
This section records the final regression gate for the v1 feature: confirmation
that the protocol core is covered by unit tests, that the existing test suites
are unaffected, and that the **disabled path (automation OFF, the default) is a
true no-op** — zero new threads, zero socket binds, zero allocations, and zero
behavior change.
### Unit-suite results (Release, Windows / MSVC, Ninja Multi-Config)
| Suite | Result |
|---|---|
| `automation` (protocol core) | **32 / 32 passed** |
| `libslic3r` (most affected by the additive `PrintConfig.cpp` CLI options) | **99 / 99 passed** |
| `fff_print` | **14 / 14 passed** |
| `libnest2d` | **14 / 14 passed** |
| `sla_print` | **21 / 21 passed** |
| `slic3rutils` | 3 / 5 passed — 2 pre-existing `[OrcaCloudServiceAgent]` SEGFAULTs, **unrelated to automation** (see note) |
> The two `slic3rutils` failures are `Orca cloud flat/nested session resolves
> display name consistently`. They exercise `Slic3r::OrcaCloudServiceAgent`, which
> the automation branch does **not** touch (verified via `git diff --stat
> main...HEAD` — no change to `src/slic3r/Utils/OrcaCloudServiceAgent.*` or
> `tests/slic3rutils/*`). They are pre-existing and not a regression introduced by
> this feature.
### Static disabled-path audit (the core regression guarantee)
Verified by code reading that with no `--automation-server` flag:
- **Flag defaults off.** `m_automation_port` defaults to `0`
(`src/slic3r/GUI/GUI_App.hpp:249`); `is_automation_enabled()` returns
`m_automation_port > 0` (`GUI_App.hpp:386`) → `false` by default.
- **No server / thread / socket.** `post_init()` calls
`start_automation_server()` **only** when
`init_params->automation_port > 0` (`src/slic3r/GUI/GUI_App.cpp:737-740`), and
`start_automation_server()` itself early-returns when `m_automation_port <= 0`
(`GUI_App.cpp:7097`). The backend / dispatcher / beast server objects are
constructed nowhere else → no `orca_automation` thread and no localhost bind
when the flag is absent.
- **Recording hooks short-circuit.** `ImGuiWrapper::automation_record_last_item`
has as its **first statement** `if (!wxGetApp().is_automation_enabled())
return;` (`src/slic3r/GUI/ImGuiWrapper.cpp:576-577`) — a single bool check, no
`ImGuiItemRecord` allocation and no `ImGuiItemTable` access on the disabled
path. In `ImGuiWrapper::render()` the window-enumeration loop and
`swap_frame()` are fully wrapped in `if (wxGetApp().is_automation_enabled())`
(`ImGuiWrapper.cpp:599-611`); when off, `render()` is its original
`ImGui::Render()` + `render_draw_data()` plus one bool check.
- **Instrumentation is inert.** The ~7 `set_automation_id(...)` calls
(`MainFrame.cpp:1330,1389,1841,1842`; `Plater.cpp:1772,2172,5068`) only store a
pointer into a static registry and bind a `wxEVT_DESTROY` pruning handler
(`src/slic3r/GUI/Automation/AutomationRegistry.cpp:24-36`). The registry is
**read** only via `window_for_automation_id` / `automation_id_of`, which are
called solely by the backend while the server is running → harmless when off.
- **CLI options are purely additive.** `automation_server` (coBool, default
`false`) and `automation_server_port` (coInt, default `13619`) are new `add()`
entries appended after `enable_timelapse`
(`src/libslic3r/PrintConfig.cpp:10794-10805`); no existing option is changed.
`GUI_InitParams::automation_port` defaults to `0`
(`src/slic3r/GUI/GUI_Init.hpp:37`) and is set only when `--automation-server`
is supplied (`src/OrcaSlicer.cpp:1345-1348`).
**Conclusion:** with automation OFF (the default), the feature allocates nothing
and changes nothing — the only added cost on any hot path is a single boolean
comparison.
### Deferred manual runtime checks (require a display / Xvfb)
These need a live GUI and cannot be run headlessly in CI; they are the manual
acceptance steps:
1. Launch **without** `--automation-server``curl http://127.0.0.1:13619/`
fails to connect (no listener); no `orca_automation` thread exists.
2. Launch **with** `--automation-server --automation-server-port=13619`
`GET /` returns the health text; `POST /jsonrpc {"method":"automation.version"}`
returns version / protocol / capabilities; `widget.get {"target":{"id":"btn_slice"}}`
returns a node with a sensible screen rect.
3. Interactive sanity: open a gizmo / move sliders with automation OFF → no
visual or behavior change.
See `tools/automation/example_slice.py` for the runnable end-to-end path.
@@ -0,0 +1,608 @@
# `file.open` Automation Method Implementation Plan
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
**Goal:** Add a `file.open` JSON-RPC automation method that loads one or more files into an already-running OrcaSlicer instance by calling `Plater::load_files(...)` synchronously on the GUI thread.
**Architecture:** Follows the existing `screenshot.window` / `app.state` method pattern. A new pure-virtual `open_files(paths)` is added to the wx-free `IUiBackend` interface; `WxUiBackend` implements it via the existing `run_on_gui(...)` GUI-thread marshal calling `Plater::load_files`; the `JsonRpcDispatcher` gains a `file.open` route, a param-parsing helper, and a new `kErrLoadFailed = 1007` error code. The unit-testable surface (dispatcher + param validation + routing) is driven against `MockUiBackend`.
**Tech Stack:** C++17, nlohmann::json, Catch2 v2 (`catch_all.hpp` / `Catch2WithMain`), wxWidgets, CMake + Ninja Multi-Config. Python 3 reference client (stdlib only).
---
## Design-spec note (resolve before coding)
The design spec's error table reads `1002 | kInvalidParams | paths missing/empty…`, but in the codebase `kInvalidParams` is the standard JSON-RPC code **`-32602`**, while `1002` is `kErrNotActionable`. The spec's **Constant column (`kInvalidParams`) is authoritative** and matches every other param-validation path in the dispatcher (e.g. `m_input_type` throws `kInvalidParams` for a bad `text`). This plan therefore validates `file.open` params with **`kInvalidParams` (-32602)**, exactly like the existing handlers, and the tests assert `== kInvalidParams`. The literal "1002" in the spec is a typo; do not emit code 1002 for param errors.
## File Structure
| File | Change | Responsibility |
|---|---|---|
| `src/slic3r/GUI/Automation/IUiBackend.hpp` | modify | Add pure-virtual `int open_files(paths)` to the backend abstraction (stays wx-free). |
| `src/slic3r/GUI/Automation/JsonRpcDispatcher.hpp` | modify | Add `kErrLoadFailed = 1007` constant + `m_file_open` declaration. |
| `src/slic3r/GUI/Automation/JsonRpcDispatcher.cpp` | modify | Add `parse_paths` helper, `m_file_open` body, dispatch route, capabilities entry. |
| `src/slic3r/GUI/Automation/WxUiBackend.hpp` | modify | Declare `open_files` override. |
| `src/slic3r/GUI/Automation/WxUiBackend.cpp` | modify | Implement `open_files` via `run_on_gui``Plater::load_files`. |
| `tests/automation/MockUiBackend.hpp` | modify | `open_files` override: record paths + return-count + fail knob. |
| `tests/automation/test_dispatcher.cpp` | modify | Catch2 tests for routing, string/array, validation, failure, capabilities. |
| `tools/automation/orca_automation.py` | modify | `open(self, paths)` client wrapper. |
| `tools/automation/example_slice.py` | modify | Launch without a model arg, then `orca.open([model])`. |
| `doc/automation.md` | modify | Document the method, capabilities, error `1007`. |
**Build/test layout:** Ninja Multi-Config in `build/`. The unit suite target is `automation_tests`; its sources (`tests/automation/CMakeLists.txt`) compile `JsonRpcDispatcher.cpp` + `MockUiBackend` but **not** `WxUiBackend.cpp`. So dispatcher/mock changes are fully unit-testable headlessly; `WxUiBackend.cpp` is verified by the full app build only.
---
## Task 1: Extend the backend abstraction (interface + mock + error code)
Adds the `open_files` contract so tests can be written. Adding a pure virtual to `IUiBackend` forces every implementation to provide it — in the unit-test target that is only `MockUiBackend`, so this task keeps the `automation_tests` build green.
**Files:**
- Modify: `src/slic3r/GUI/Automation/IUiBackend.hpp`
- Modify: `src/slic3r/GUI/Automation/JsonRpcDispatcher.hpp:19`
- Modify: `tests/automation/MockUiBackend.hpp`
- [ ] **Step 1: Add the error constant**
In `src/slic3r/GUI/Automation/JsonRpcDispatcher.hpp`, after the existing `kErrDisabled` line (currently line 19), add:
```cpp
constexpr int kErrDisabled = 1006;
constexpr int kErrLoadFailed = 1007; // file.open: load_files returned empty / threw
```
- [ ] **Step 2: Add the pure-virtual `open_files` to the interface**
In `src/slic3r/GUI/Automation/IUiBackend.hpp`, inside `class IUiBackend`, immediately after the `screenshot_window` pure virtual (currently line 97), add:
```cpp
// Load one or more files (absolute paths) into the running instance on the GUI
// thread. Returns the number of objects added to the scene (load_files(...).size()).
// Throws AutomationError(kErrLoadFailed) when nothing loads. Header stays wx-free:
// the concrete LoadStrategy is chosen inside WxUiBackend, not exposed here.
virtual int open_files(const std::vector<std::string>& paths) = 0;
```
- [ ] **Step 3: Implement `open_files` in the mock with record + knobs**
In `tests/automation/MockUiBackend.hpp`: add an include for the error constant near the top (after the `IUiBackend.hpp` include on line 2):
```cpp
#include "slic3r/GUI/Automation/IUiBackend.hpp"
#include "slic3r/GUI/Automation/JsonRpcDispatcher.hpp" // kErrLoadFailed
```
Add recorded-call + canned-output members. After the `screenshot_window_count` recorded field (line 20) add:
```cpp
int screenshot_window_count = 0;
std::vector<std::vector<std::string>> opened_paths; // paths of each open_files()
```
After the `click_result` canned field (line 26) add:
```cpp
bool click_result = true;
int open_return_count = 0; // value open_files() returns
bool open_should_fail = false; // when true, open_files() throws kErrLoadFailed
```
Add the override next to the other overrides, after `screenshot_window` (lines 49-51):
```cpp
PngImage screenshot_window(const UiNode*) override {
++screenshot_window_count; return canned_png;
}
int open_files(const std::vector<std::string>& paths) override {
opened_paths.push_back(paths);
if (open_should_fail)
throw AutomationError(kErrLoadFailed, "mock load failed");
return open_return_count;
}
```
- [ ] **Step 4: Build the unit-test target to confirm it still compiles**
Run: `cmake --build build --config RelWithDebInfo --target automation_tests`
Expected: build succeeds (the new pure virtual is satisfied by the mock; no behavior change yet).
- [ ] **Step 5: Commit**
```bash
git add src/slic3r/GUI/Automation/IUiBackend.hpp src/slic3r/GUI/Automation/JsonRpcDispatcher.hpp tests/automation/MockUiBackend.hpp
git commit -m "feat(automation): add open_files to backend interface + kErrLoadFailed (1007)"
```
---
## Task 2: `file.open` dispatcher handler (parse, route, validate, fail)
Implements the full JSON-RPC handler against the mock: param parsing (string or array), validation, routing to `open_files`, and `kErrLoadFailed` propagation.
**Files:**
- Modify: `src/slic3r/GUI/Automation/JsonRpcDispatcher.hpp:49` (declaration)
- Modify: `src/slic3r/GUI/Automation/JsonRpcDispatcher.cpp`
- Test: `tests/automation/test_dispatcher.cpp`
- [ ] **Step 1: Write the failing happy-path test (array of paths)**
Append to `tests/automation/test_dispatcher.cpp`:
```cpp
TEST_CASE("file.open with an array of paths routes to backend", "[automation][rpc]") {
MockUiBackend mock;
mock.open_return_count = 3;
JsonRpcDispatcher d(mock);
const json resp = d.dispatch({{"jsonrpc","2.0"},{"id",1},{"method","file.open"},
{"params",{{"paths", json::array({"C:/abs/a.stl","C:/abs/b.stl"})}}}});
CHECK(resp.at("result").at("ok") == true);
CHECK(resp.at("result").at("loaded") == 3);
REQUIRE(mock.opened_paths.size() == 1);
REQUIRE(mock.opened_paths[0].size() == 2);
CHECK(mock.opened_paths[0][0] == "C:/abs/a.stl");
CHECK(mock.opened_paths[0][1] == "C:/abs/b.stl");
}
```
- [ ] **Step 2: Run the test to verify it fails**
Run: `cmake --build build --config RelWithDebInfo --target automation_tests && build/tests/automation/RelWithDebInfo/automation_tests.exe "file.open with an array of paths routes to backend"`
Expected: FAIL — `file.open` is an unknown method, so the response carries `error.code == -32601` and has no `result` (the `resp.at("result")` access throws). (If the exe path differs on your machine, locate it with `find build -iname automation_tests.exe`.)
- [ ] **Step 3: Declare the handler**
In `src/slic3r/GUI/Automation/JsonRpcDispatcher.hpp`, after the `m_screenshot_window` declaration (currently line 49) add:
```cpp
nlohmann::json m_screenshot_window(const nlohmann::json& params);
nlohmann::json m_file_open(const nlohmann::json& params);
```
- [ ] **Step 4: Add the `parse_paths` helper and `m_file_open` body**
In `src/slic3r/GUI/Automation/JsonRpcDispatcher.cpp`, add a `parse_paths` helper. Place it in the anonymous namespace that also holds `parse_keys` — insert it right before that namespace's closing `} // namespace` (currently line 130):
```cpp
// "paths" may be a single string ("C:/a.stl") or an array of strings. Returns the
// non-empty absolute paths; throws kInvalidParams when paths is missing, not a
// string/array, contains a non-string entry, or yields no non-empty path.
std::vector<std::string> parse_paths(const nlohmann::json& params) {
if (!params.is_object() || !params.contains("paths"))
throw AutomationError(kInvalidParams, "file.open requires 'paths'");
const auto& p = params.at("paths");
std::vector<std::string> out;
if (p.is_string()) {
out.push_back(p.get<std::string>());
} else if (p.is_array()) {
for (const auto& e : p) {
if (!e.is_string())
throw AutomationError(kInvalidParams, "'paths' entries must be strings");
out.push_back(e.get<std::string>());
}
} else {
throw AutomationError(kInvalidParams, "'paths' must be a string or array");
}
out.erase(std::remove_if(out.begin(), out.end(),
[](const std::string& s) { return s.empty(); }),
out.end());
if (out.empty())
throw AutomationError(kInvalidParams, "'paths' is empty");
return out;
}
```
(`<algorithm>` for `std::remove_if` is already included at the top of the file, line 4.)
Add the handler body next to the other handlers. After `m_screenshot_window` (currently ends line 343, just before the final `}}} // namespace`), add:
```cpp
nlohmann::json JsonRpcDispatcher::m_file_open(const nlohmann::json& params) {
const std::vector<std::string> paths = parse_paths(params);
const int loaded = m_backend.open_files(paths);
return { {"ok", true}, {"loaded", loaded} };
}
```
- [ ] **Step 5: Add the dispatch route**
In `JsonRpcDispatcher::dispatch`, after the `screenshot.window` route (currently line 195) add:
```cpp
if (method == "screenshot.window") return make_result(id, m_screenshot_window(params));
if (method == "file.open") return make_result(id, m_file_open(params));
```
- [ ] **Step 6: Run the happy-path test to verify it passes**
Run: `cmake --build build --config RelWithDebInfo --target automation_tests && build/tests/automation/RelWithDebInfo/automation_tests.exe "file.open with an array of paths routes to backend"`
Expected: PASS — 1 test case, all assertions passed.
- [ ] **Step 7: Add the remaining handler tests (string, validation, failure)**
Append to `tests/automation/test_dispatcher.cpp`:
```cpp
TEST_CASE("file.open accepts a bare string path", "[automation][rpc]") {
MockUiBackend mock;
mock.open_return_count = 1;
JsonRpcDispatcher d(mock);
const json resp = d.dispatch({{"jsonrpc","2.0"},{"id",2},{"method","file.open"},
{"params",{{"paths","C:/abs/a.stl"}}}});
CHECK(resp.at("result").at("loaded") == 1);
REQUIRE(mock.opened_paths.size() == 1);
REQUIRE(mock.opened_paths[0].size() == 1);
CHECK(mock.opened_paths[0][0] == "C:/abs/a.stl");
}
TEST_CASE("file.open with missing paths -> invalid params", "[automation][rpc]") {
MockUiBackend mock;
JsonRpcDispatcher d(mock);
const json resp = d.dispatch({{"jsonrpc","2.0"},{"id",3},{"method","file.open"},
{"params", json::object()}});
CHECK(resp.at("error").at("code") == kInvalidParams);
CHECK(mock.opened_paths.empty());
}
TEST_CASE("file.open with empty paths array -> invalid params", "[automation][rpc]") {
MockUiBackend mock;
JsonRpcDispatcher d(mock);
const json resp = d.dispatch({{"jsonrpc","2.0"},{"id",4},{"method","file.open"},
{"params",{{"paths", json::array()}}}});
CHECK(resp.at("error").at("code") == kInvalidParams);
CHECK(mock.opened_paths.empty());
}
TEST_CASE("file.open with a non-string entry -> invalid params", "[automation][rpc]") {
MockUiBackend mock;
JsonRpcDispatcher d(mock);
const json resp = d.dispatch({{"jsonrpc","2.0"},{"id",5},{"method","file.open"},
{"params",{{"paths", json::array({"C:/a.stl", 42})}}}});
CHECK(resp.at("error").at("code") == kInvalidParams);
CHECK(mock.opened_paths.empty());
}
TEST_CASE("file.open backend load failure -> 1007", "[automation][rpc]") {
MockUiBackend mock;
mock.open_should_fail = true;
JsonRpcDispatcher d(mock);
const json resp = d.dispatch({{"jsonrpc","2.0"},{"id",6},{"method","file.open"},
{"params",{{"paths","C:/abs/a.stl"}}}});
CHECK(resp.at("error").at("code") == kErrLoadFailed);
}
```
- [ ] **Step 8: Run all file.open tests to verify they pass**
Run: `cmake --build build --config RelWithDebInfo --target automation_tests && build/tests/automation/RelWithDebInfo/automation_tests.exe "file.open*"`
Expected: PASS — 6 test cases, all assertions passed.
- [ ] **Step 9: Commit**
```bash
git add src/slic3r/GUI/Automation/JsonRpcDispatcher.hpp src/slic3r/GUI/Automation/JsonRpcDispatcher.cpp tests/automation/test_dispatcher.cpp
git commit -m "feat(automation): add file.open dispatcher handler with validation + tests"
```
---
## Task 3: Advertise `file.open` in `automation.version` capabilities
**Files:**
- Modify: `src/slic3r/GUI/Automation/JsonRpcDispatcher.cpp:166-172`
- Test: `tests/automation/test_dispatcher.cpp`
- [ ] **Step 1: Write the failing capabilities test**
Append to `tests/automation/test_dispatcher.cpp`:
```cpp
TEST_CASE("automation.version capabilities include file.open", "[automation][rpc]") {
MockUiBackend mock;
JsonRpcDispatcher d(mock);
const json resp = d.dispatch({{"jsonrpc","2.0"},{"id",1},{"method","automation.version"}});
const auto& caps = resp.at("result").at("capabilities");
bool found = false;
for (const auto& c : caps) if (c == "file.open") found = true;
CHECK(found);
}
```
- [ ] **Step 2: Run the test to verify it fails**
Run: `cmake --build build --config RelWithDebInfo --target automation_tests && build/tests/automation/RelWithDebInfo/automation_tests.exe "automation.version capabilities include file.open"`
Expected: FAIL — `CHECK(found)` is false; `file.open` is not yet in the capabilities array.
- [ ] **Step 3: Add `file.open` to the capabilities array**
In `JsonRpcDispatcher::m_version` (currently lines 166-172), add `"file.open"` to the array:
```cpp
nlohmann::json JsonRpcDispatcher::m_version(const nlohmann::json&) {
return { {"version", kAutomationVersion},
{"protocol", "2.0"},
{"capabilities", nlohmann::json::array({
"tree.dump","tree.find","widget.get","input.click","input.type",
"input.key","sync.wait_for","app.state","screenshot.window",
"file.open" })} };
}
```
- [ ] **Step 4: Run the test to verify it passes**
Run: `cmake --build build --config RelWithDebInfo --target automation_tests && build/tests/automation/RelWithDebInfo/automation_tests.exe "automation.version capabilities include file.open"`
Expected: PASS.
- [ ] **Step 5: Run the whole automation suite to confirm no regressions**
Run: `cmake --build build --config RelWithDebInfo --target automation_tests && build/tests/automation/RelWithDebInfo/automation_tests.exe --order rand --warn NoAssertions`
Expected: PASS — all cases green (the pre-existing ~32 plus the 7 new `file.open`/capabilities cases ≈ 39).
- [ ] **Step 6: Commit**
```bash
git add src/slic3r/GUI/Automation/JsonRpcDispatcher.cpp tests/automation/test_dispatcher.cpp
git commit -m "feat(automation): advertise file.open in automation.version capabilities"
```
---
## Task 4: Implement `WxUiBackend::open_files` (real GUI-thread load)
Not covered by the headless unit suite (`WxUiBackend.cpp` is excluded from `automation_tests`); verified by the full app build + the manual runtime check in Task 8.
**Files:**
- Modify: `src/slic3r/GUI/Automation/WxUiBackend.hpp:21`
- Modify: `src/slic3r/GUI/Automation/WxUiBackend.cpp`
- [ ] **Step 1: Declare the override**
In `src/slic3r/GUI/Automation/WxUiBackend.hpp`, after the `screenshot_window` declaration (line 21) add:
```cpp
PngImage screenshot_window(const UiNode* target) override;
int open_files(const std::vector<std::string>& paths) override;
```
- [ ] **Step 2: Implement `open_files`**
In `src/slic3r/GUI/Automation/WxUiBackend.cpp`, add the implementation just before the final `}}} // namespace Slic3r::GUI::Automation` (currently line 306):
```cpp
int WxUiBackend::open_files(const std::vector<std::string>& paths) {
return run_on_gui(m_gui_timeout_ms, [&]() -> int {
Plater* plater = wxGetApp().plater();
if (plater == nullptr)
throw AutomationError(kErrLoadFailed, "no plater to load into");
// Default strategy matches drag-drop / Plater::load_files's own default: it
// routes .3mf as a project and meshes as models based on file content, so no
// as_project flag is needed in v1. ask_multi=false: never prompt.
const LoadStrategy strategy = LoadStrategy::LoadModel | LoadStrategy::LoadConfig;
std::vector<size_t> loaded;
try {
loaded = plater->load_files(paths, strategy, /*ask_multi=*/false);
} catch (const std::exception& e) {
throw AutomationError(kErrLoadFailed,
std::string("load_files failed: ") + e.what());
}
if (loaded.empty())
throw AutomationError(kErrLoadFailed, "load_files loaded nothing");
return static_cast<int>(loaded.size());
});
}
```
Notes for the implementer:
- `LoadStrategy` and its `operator|` (namespace `Slic3r`, from `libslic3r/Format/bbs_3mf.hpp`) are already in scope: `WxUiBackend.cpp` includes `Plater.hpp` (line 7), which transitively pulls in the enum, and this translation unit lives in `Slic3r::GUI::Automation` so unqualified `LoadStrategy` resolves via the enclosing `Slic3r` namespace. No new include is required.
- `Plater::load_files(const std::vector<std::string>&, LoadStrategy, bool)` is the existing string overload (`Plater.hpp:379`) — no `boost::filesystem::path` conversion needed.
- `kErrLoadFailed` comes from `JsonRpcDispatcher.hpp`, already included at line 4.
- An `AutomationError` thrown inside the `run_on_gui` lambda is captured by the helper's `set_exception` and rethrown from `fut.get()`, so the 1007 code propagates to the dispatcher unchanged.
- [ ] **Step 3: Build the full app to verify it compiles and links**
Run: `cmake --build build --config RelWithDebInfo --target OrcaSlicer`
Expected: build succeeds (no missing-symbol / pure-virtual errors; `WxUiBackend` is now concrete).
- [ ] **Step 4: Commit**
```bash
git add src/slic3r/GUI/Automation/WxUiBackend.hpp src/slic3r/GUI/Automation/WxUiBackend.cpp
git commit -m "feat(automation): implement WxUiBackend::open_files via Plater::load_files"
```
---
## Task 5: Python client wrapper `OrcaClient.open`
**Files:**
- Modify: `tools/automation/orca_automation.py:80-82`
- [ ] **Step 1: Add the `open` method**
In `tools/automation/orca_automation.py`, after the `key` method (ends line 82), add:
```python
def key(self, keys) -> dict:
# keys: "ctrl+s" or ["ctrl", "s"]
return self._call("input.key", {"keys": keys})
def open(self, paths) -> dict:
"""Load one or more files into the running instance at runtime.
`paths` is a single absolute path string or a list of them. Paths are read
from the host filesystem by the server (localhost-only). Returns
{"ok": True, "loaded": <count>}. Raises OrcaError 1007 on load failure."""
if isinstance(paths, str):
paths = [paths]
return self._call("file.open", {"paths": list(paths)})
```
- [ ] **Step 2: Smoke-test the wrapper's normalization offline (no server needed)**
Run:
```bash
python -c "import sys; sys.path.insert(0, 'tools/automation'); import orca_automation as m; c = m.OrcaClient.__new__(m.OrcaClient); c._call = lambda meth, params=None: (meth, params); print(c.open('C:/a.stl')); print(c.open(['C:/a.stl','C:/b.stl']))"
```
Expected output:
```
('file.open', {'paths': ['C:/a.stl']})
('file.open', {'paths': ['C:/a.stl', 'C:/b.stl']})
```
- [ ] **Step 3: Commit**
```bash
git add tools/automation/orca_automation.py
git commit -m "feat(automation): add OrcaClient.open() wrapper for file.open"
```
---
## Task 6: Update `example_slice.py` to load at runtime via `file.open`
**Files:**
- Modify: `tools/automation/example_slice.py:26-52`
- [ ] **Step 1: Launch without the model arg, then call `open`**
In `tools/automation/example_slice.py`, change the `subprocess.Popen` call (lines 26-31) to drop the trailing model positional:
```python
proc = subprocess.Popen([
args.orca,
"--automation-server",
f"--automation-server-port={args.port}",
])
```
Then replace the project-load wait block (currently lines 46-51) so the model is loaded at runtime via `file.open` instead of relying on a launch-time positional:
```python
# Load the model into the already-running instance, then wait until the
# project reports loaded. file.open is synchronous, so project_loaded is
# already true on return; the wait is a belt-and-suspenders guard.
orca.open([args.model])
deadline = time.time() + 30
while time.time() < deadline:
if orca.app_state().get("project_loaded"):
break
time.sleep(0.5)
```
- [ ] **Step 2: Byte-compile the script to confirm no syntax errors**
Run: `python -m py_compile tools/automation/example_slice.py`
Expected: no output, exit code 0.
- [ ] **Step 3: Commit**
```bash
git add tools/automation/example_slice.py
git commit -m "docs(automation): example_slice.py loads model at runtime via file.open"
```
---
## Task 7: Document `file.open` in `doc/automation.md`
**Files:**
- Modify: `doc/automation.md` (capabilities example §4 line 111-114; new method subsection after `screenshot.window`; error table §7)
- [ ] **Step 1: Add `file.open` to the capabilities example**
In `doc/automation.md`, update the `automation.version` result example (lines 111-114) to include `file.open`:
```json
"capabilities": [
"tree.dump", "tree.find", "widget.get", "input.click", "input.type",
"input.key", "sync.wait_for", "app.state", "screenshot.window", "file.open"
]
```
The §4 prose count is already written for this: "There are 11 methods … the 10 callable feature methods" now matches exactly (10 capability entries + `automation.version` = 11). Leave that sentence unchanged.
- [ ] **Step 2: Add the `file.open` method subsection**
In `doc/automation.md`, immediately after the `screenshot.window` method subsection (it ends just before the `---` on line 303) and before that `---`, insert:
```markdown
### `file.open`
Load one or more files into the **already-running** instance at runtime, by calling
`Plater::load_files(...)` directly on the GUI thread. This is the supported way to add
or swap a model without relaunching the process. Loading is **synchronous**: when the
call returns `ok: true`, `app.state().project_loaded` is already `true` (no polling
race).
**Params:**
| Param | Type | Required | Meaning |
|---|---|---|---|
| `paths` | string or array of strings | yes | One or more **absolute** file paths. A bare string is accepted and treated as a one-element list. Paths are read from the **host (server) filesystem** — client and server are localhost-only. |
`.3mf` files are routed as projects and meshes as models automatically, based on file
content (the same default strategy as drag-drop); there is no `as_project` flag in v1.
**Result:** `{ "ok": true, "loaded": <int> }`, where `loaded` is the number of objects
added to the scene (`load_files(...).size()`).
**Errors:**
- `-32602` (invalid params) — `paths` is missing, is not a string/array, contains a
non-string entry, or yields no non-empty path.
- `1007` (load failed) — `load_files` returned empty or threw (file not found, parse
error, or unsupported format).
- `1004` (GUI busy) — the GUI-thread marshal timed out. An extremely large model can
exceed the marshal timeout and surface here; documented, not mitigated in v1.
```
- [ ] **Step 3: Add the `1007` row to the error-code table**
In `doc/automation.md` §7, in the application-specific codes table, after the `1006` row (line 395) add:
```markdown
| `1006` | Disabled. |
| `1007` | Load failed — `file.open`'s `load_files` returned empty or threw (not found, parse error, unsupported format). |
```
- [ ] **Step 4: Commit**
```bash
git add doc/automation.md
git commit -m "docs(automation): document file.open method and error 1007"
```
---
## Final verification
- [ ] **Step 1: Full automation unit suite green**
Run: `cmake --build build --config RelWithDebInfo --target automation_tests && build/tests/automation/RelWithDebInfo/automation_tests.exe --order rand --warn NoAssertions`
Expected: PASS — all cases (pre-existing ~32 + 7 new) green, no `NoAssertions` warnings on the new cases.
- [ ] **Step 2: Full app builds**
Run: `cmake --build build --config RelWithDebInfo --target ALL_BUILD -- -m`
Expected: build succeeds.
- [ ] **Step 3: Manual runtime check (requires a display)**
Launch with `--automation-server` and **no** model arg, then from a Python shell:
```python
from orca_automation import OrcaClient
orca = OrcaClient(port=13619)
print(orca.open(["C:/abs/path/cube.stl"])) # -> {'ok': True, 'loaded': 1}
print(orca.app_state()["project_loaded"]) # -> True
open("window.png","wb").write(orca.screenshot()) # PNG shows the loaded model
```
Expected: `loaded >= 1`, `project_loaded == True`, screenshot shows the model.
- [ ] **Step 4: Gating check (automation OFF is a no-op)**
Confirm by reading: with no `--automation-server` flag, the server/backend/dispatcher are never constructed (`GUI_App.cpp` `start_automation_server()` early-return), so `file.open` is unreachable. No new hot-path cost beyond the existing single bool check. (See `doc/automation.md` §Verification — disabled-path audit; this feature adds no new gating surface.)
---
## Backward compatibility
Additive only: one new method (`file.open`), one new error code (`1007`), one new capabilities entry, and one new backend interface method. No existing method, profile, project-file handling, or default behavior changes. The method is reachable only when `--automation-server` is passed.
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,117 @@
# Design — `file.open` automation method (runtime model loading)
**Date:** 2026-06-03
**Branch:** `feature/automation`
**Status:** Approved for implementation
---
## Problem
Today a model can be loaded into OrcaSlicer **only at process launch**: the model path
is passed as a CLI positional arg and OrcaSlicer's normal startup file-loading ingests
it. The JSON-RPC automation protocol has **no** load method, so swapping or adding a
model in an already-running instance requires a fresh process launch.
Driving the native File→Import dialog via `input.click` is not a viable substitute: the
OS file picker is not a `wxWindow`, so it never appears in the `tree.dump` hierarchy
(`WxUiBackend::dump_tree` walks `wxGetApp().mainframe` children only), and `input.click`
can only target nodes resolved from that tree (no raw-coordinate click). Blind typing via
`input.type` is mechanically possible but unobservable: the native picker is not a
`wxDialog`, so `app.state().modal_dialog` and `sync.wait_for` cannot gate on it, leaving
only sleep-and-hope timing. A direct API method is the clean fix.
## Goal
Add a `file.open` JSON-RPC method that loads one or more files into a running instance by
calling `Plater::load_files(...)` directly on the GUI thread. Out of scope: any
dialog-driving mechanism (intercept hook or true OS-level drive) — explicitly deferred.
---
## Protocol
- **Method:** `file.open`
- **Params:** `{ "paths": ["C:/abs/a.stl", ...] }`
- A bare string is also accepted: `{ "paths": "C:/abs/a.stl" }`.
- Paths must be **absolute**. The server reads them from the host filesystem
(client/server are localhost-only).
- **Result:** `{ "ok": true, "loaded": <count> }`
- `count` is `load_files(...).size()` — the number of objects added to the scene.
- **Errors:**
| Code | Constant | Condition |
|------|----------|-----------|
| -32602 | `kInvalidParams` | `paths` missing/empty, a non-string entry, or no non-empty path |
| 1004 | `kErrGuiBusy` | GUI-thread marshal timed out (`m_gui_timeout_ms`) |
| 1007 | `kErrLoadFailed` | `load_files` returned empty / threw (not found, parse error, unsupported format) — **new code** |
## Semantics — synchronous
`Plater::load_files` runs and completes on the GUI thread. The backend marshals via the
existing `run_on_gui(m_gui_timeout_ms, …)` helper and returns only after the load
finishes. Consequently, when `file.open` returns `ok:true`, `app.state().project_loaded`
is already `true` — there is no polling race.
Rejected alternative — async "fire-and-poll-`project_loaded`": adds client complexity and
loses a definitive per-call error result, with no benefit since loading is synchronous.
**Caveat:** an extremely large model could exceed `m_gui_timeout_ms` and surface as
`1004 kErrGuiBusy`. Documented; not mitigated in v1.
## Load strategy (v1 minimal)
Pass the default `LoadStrategy::LoadModel | LoadStrategy::LoadConfig` (identical to
drag-drop / `Plater::load_files`'s default) with `ask_multi = false`. This already routes
`.3mf` files as projects and meshes as models based on file content, so **no `as_project`
flag is needed in v1**. A future `{ "as_project": bool }` flag remains possible but is not
implemented now.
---
## Components / files to touch
Follows the existing `screenshot_window` / `app_state` method pattern.
1. **`src/slic3r/GUI/Automation/IUiBackend.hpp`** — add pure-virtual
`int open_files(const std::vector<std::string>& paths)` returning the loaded count,
throwing `AutomationError` on failure. Header stays wx-free (no `LoadStrategy` leak).
2. **`src/slic3r/GUI/Automation/WxUiBackend.{hpp,cpp}`** — implement `open_files`:
`run_on_gui(m_gui_timeout_ms, …)``wxGetApp().plater()->load_files(paths, default_strategy, false)`;
throw `kErrLoadFailed` if the returned vector is empty.
3. **`src/slic3r/GUI/Automation/JsonRpcDispatcher.{hpp,cpp}`** —
- add `constexpr int kErrLoadFailed = 1007;`
- declare + define `m_file_open(params)` (param parsing/validation; accept string or
array; require ≥1 non-empty string path)
- add dispatch route `if (method == "file.open") return make_result(id, m_file_open(params));`
- add `"file.open"` to the capabilities array in `m_version`.
4. **`tests/automation/MockUiBackend.hpp`** — `open_files` override recording the paths
vector + a configurable return-count (and a throw/fail knob).
5. **`tests/automation/test_dispatcher.cpp`** — Catch2 v2 tests:
- array of paths → routes to backend, returns `loaded` count
- bare-string path → normalized to one path
- missing/empty `paths``-32602` (`kInvalidParams`)
- backend load failure → `1007`
- `automation.version` capabilities array includes `"file.open"`
6. **`tools/automation/orca_automation.py`** — `open(self, paths)` wrapper (normalize
`str``[str]`, send `file.open`).
7. **`tools/automation/example_slice.py`** — launch **without** a model arg, then
`orca.open([model])`, then wait for `project_loaded`.
8. **`doc/automation.md`** — document method (params/result/errors), add to the
capabilities list, method index, and error table (`1007`).
---
## Testing / verification
- **Build (Windows):** `cmake --build . --config RelWithDebInfo --target ALL_BUILD -- -m`.
- **Unit:** `automation` Catch2 suite green including new tests (≈31 → ≈34 cases).
- **Manual:** launch with `--automation-server` and **no** model arg → call `file.open`
→ confirm `app.state().project_loaded` flips `true` and `screenshot.window` shows the
model.
- **Gating:** unchanged — the server only runs under `--automation-server`, so the method
is a no-op (unreachable) when automation is disabled.
## Backward compatibility
Additive only: a new method, a new error code, and a new capabilities entry. No change to
existing methods, profiles, project-file handling, or default behavior.
@@ -0,0 +1,314 @@
# OrcaSlicer UI Automation — Design Spec
**Date:** 2026-06-03
**Status:** Approved design, pending implementation plan
**Topic:** Add an opt-in, externally-controllable UI automation interface to OrcaSlicer for automated GUI testing and future AI-agent control.
---
## 1. Overview
Add a localhost JSON-RPC server to a running OrcaSlicer GUI instance that lets an
**external** script (or AI agent) drive and observe the real GUI. "Driving" is done
the way a user would — simulated mouse/keyboard via `wxUIActionSimulator` — while
"observing" reads the live widget state and captures screenshots.
The interface must cover **three UI technologies** present in OrcaSlicer:
1. Native **wxWidgets** widgets (`wxWindow` hierarchy).
2. The **OpenGL 3D viewport** (`GLCanvas3D`) — screenshots via the existing
framebuffer/thumbnail path.
3. **Dear ImGui** immediate-mode controls (gizmo panels, in-canvas overlays,
notifications) — recorded as they are drawn, because there is no persistent tree.
## 2. Goals / Non-Goals
### Goals
- Let an external, language-agnostic client connect to a running instance and:
introspect the UI, locate widgets by stable name, perform input actions, wait on
conditions, and capture screenshots (including the 3D view as a separate image).
- Be safe by default: disabled unless explicitly enabled; bound to `127.0.0.1` only.
- Be testable in CI without a display (pure-logic units behind a mock backend).
- Ship a reference Python client, a runnable end-to-end example, protocol docs, and
C++ unit tests.
### Non-Goals (v1)
- No headless/offscreen automation — OS input injection needs a focused, visible
window (Linux CI requires a display, e.g. Xvfb).
- No auth token in v1 (documented future hardening; localhost-only is the boundary).
- No per-item coverage of raw-`ImGui::` gizmos (Emboss/SVG/Text). They get
window-level coverage; per-item is future work.
- No new scripting language embedded in the app; control is purely external over JSON-RPC.
- We do **not** modify the existing auth `HttpServer`.
## 3. Background — existing infrastructure (verified)
- **`wxUIActionSimulator`** is compiled into the wx build and already used
(`src/slic3r/GUI/GUI_ObjectList.cpp:211`). Cross-platform simulated input is available.
- **`GLCanvas3D::render_thumbnail()`** (`src/slic3r/GUI/GLCanvas3D.cpp:2210+`) →
`render_thumbnail_framebuffer()` (`:6352`) renders the 3D scene into a
`ThumbnailData` (RGBA) via an FBO + `glReadPixels`. `debug_output_thumbnail()`
(`:6099`) shows the `ThumbnailData → wxImage → PNG` conversion. This is the
separate-3D-screenshot path. `Plater::generate_thumbnail()`/`generate_thumbnails()`
wrap it.
- **`ImGuiWrapper`** (`src/slic3r/GUI/ImGuiWrapper.hpp`) is the chokepoint for nearly
all ImGui controls: `button`/`bbl_button`, `checkbox`/`bbl_checkbox`, `combo`,
`slider_float`, `input_double`, `radio_button`, `menu_item_with_icon`, plus
`begin`/`end` for windows. `imgui_internal.h` is in-tree, exposing
`ImGui::GetCurrentContext()->Windows`, item rects, and hovered/active id.
- **`HttpServer`** (`src/slic3r/GUI/HttpServer.{hpp,cpp}`, boost::beast, port 13618)
is used for cloud auth. **It cannot serve a POST body**`session::read_body()`
reads and discards the body and never replies (`HttpServer.cpp:57-65`). It is
effectively GET-only. We will **not** reuse or modify it.
- **`OtherInstanceMessageHandler`** (`src/slic3r/GUI/InstanceCheck.{hpp,cpp}`) is the
template for "start a localhost listener once the MainFrame exists, post events into
the GUI." Useful as a structural reference.
- **CLI args** are parsed in `src/OrcaSlicer.cpp` (`CLI::setup`/`CLI::run`) and flow
into the GUI run params consumed by `GUI_App::OnInit()`.
## 4. Architecture
```
External script / AI agent ──► Python client (orca_automation.py)
│ HTTP POST /jsonrpc (JSON-RPC 2.0) on 127.0.0.1:<port>
AutomationServer (dedicated boost::beast listener; own thread;
│ started only when --automation-server is set)
│ parse JSON-RPC envelope
JsonRpcDispatcher (pure logic — method registry; unit-testable)
│ marshal each call to the GUI thread via wxGetApp().CallAfter
│ + std::promise/future with a per-request timeout
IUiBackend (interface) ──► WxUiBackend (real, GUI thread) / MockBackend (tests)
├─ Introspection : walk wxWindow tree + read ImGui item table → unified JSON
├─ Locator : resolve automation-id / predicate → wx widget or ImGui item
├─ Actions : raise window, then wxUIActionSimulator click/type/key
├─ Sync : wait_for (poll condition) + app.state snapshot
└─ Screenshots : wx widget → wxDC→PNG ; 3D view → render_thumbnail()→PNG
```
### Components (new files unless noted)
All new code lives under `src/slic3r/GUI/Automation/`.
| Component | Responsibility |
|---|---|
| `AutomationServer.{hpp,cpp}` | Dedicated boost::beast HTTP listener with **POST + body** support; one `POST /jsonrpc` endpoint; returns `application/json`. Localhost-only. Own thread. |
| `JsonRpcDispatcher.{hpp,cpp}` | Parse JSON-RPC 2.0; route `method` → handler; build result/error. Depends only on `IUiBackend`. No wx/ImGui includes → unit-testable. |
| `IUiBackend.hpp` | Abstract interface: `dump_tree`, `find`, `get_widget`, `click`, `type`, `key`, `wait_for`, `app_state`, `screenshot_window`, `screenshot_viewport3d`. Uses plain structs (no wx types) so tests can mock it. |
| `WxUiBackend.{hpp,cpp}` | Real implementation. Runs on GUI thread. Walks `wxWindow` tree, reads the ImGui item table, drives `wxUIActionSimulator`, captures screenshots. |
| `MockUiBackend.{hpp,cpp}` (tests) | Deterministic fake tree + recorded actions for unit tests. |
| `AutomationRegistry.{hpp,cpp}` | Process-wide `wxWindow* → automation_id` map + reverse lookup; `set_automation_id(win, "id")` helper. Header is dependency-light so widget-construction code can call the helper unconditionally (it is a cheap no-op-safe registration). |
| `WidgetSerializer.{hpp,cpp}` | `wxWindow` → JSON node (name/id, class, label, screen-rect, enabled, shown, value via RTTI). |
| `ImGuiItemTable.{hpp,cpp}` | Per-frame recorder of ImGui items + live-window enumeration. Populated from `ImGuiWrapper`; read on GUI thread. |
### Touch points in existing files
- `src/slic3r/GUI/ImGuiWrapper.cpp` — add recording hooks inside the wrapped widget
methods and `begin`/`end`, **guarded by an `is_automation_enabled()` flag** so there
is zero overhead and zero behavior change when automation is off.
- `src/slic3r/GUI/GUI_App.{hpp,cpp}` — own the `AutomationServer`; start it in
`OnInit()` only when the flag is set; stop it on exit. Expose
`is_automation_enabled()`.
- `src/OrcaSlicer.cpp` — parse `--automation-server[=PORT]`; pass through GUI run params.
- A handful of widget-construction sites (Slice/Export buttons, preset combos, main
tabs, common dialog OK/Cancel, the 3D canvas) — add `set_automation_id(...)` calls
(~15-20 widgets in v1).
- CMake: add the new `Automation/` sources to the GUI target; add the unit-test target.
## 5. Transport & Protocol
- **Transport:** HTTP/1.1 on `127.0.0.1:<port>` (default **13619**, adjacent to the
auth server's 13618). Single endpoint: `POST /jsonrpc`, body is a JSON-RPC 2.0
request, response is a JSON-RPC 2.0 result/error. `GET /` returns a tiny health/version page.
- **Protocol:** JSON-RPC 2.0. `id`, `method`, `params`. Batch not required in v1.
### v1 methods
| Method | Params | Result |
|---|---|---|
| `automation.version` | — | `{version, protocol, capabilities[]}` |
| `tree.dump` | `{root?, max_depth?, visible_only?, include_imgui?}` | tree of nodes (wx + imgui) |
| `tree.find` | `{name?, class?, label?, value?, backend?}` | `[node...]` matches |
| `widget.get` | `{target}` | single node detail |
| `input.click` | `{target, button?=left, double?=false, modifiers?[]}` | `{ok}` |
| `input.type` | `{target?, text}` | `{ok}` |
| `input.key` | `{keys}` e.g. `"ctrl+s"` or `["ctrl","s"]` | `{ok}` |
| `sync.wait_for` | `{target, state: exists\|visible\|enabled\|value, value?, timeout_ms?=5000, poll_ms?=100}` | `{ok, elapsed_ms}` |
| `app.state` | — | `{active_tab, project_loaded, slicing, slice_progress, modal_dialog?, foreground}` |
| `screenshot.window` | `{target?}` (default main frame) | `{png_base64, width, height}` |
| `screenshot.viewport3d` | `{plate?, width?, height?}` | `{png_base64, width, height}` |
### Node shape (unified for wx and ImGui)
```json
{
"backend": "wx" | "imgui",
"id": "btn_slice", // automation id if set, else derived path id
"path": "MainFrame/.../btn_slice", // stable-ish positional path
"class": "Button", // wx class name or imgui item type
"label": "Slice plate",
"rect": { "x": 100, "y": 200, "w": 120, "h": 32 }, // screen coords
"enabled": true,
"visible": true,
"value": "PLA", // when applicable (text/choice/check/slider)
"children": [ ... ] // wx only; imgui items are flat under their window
}
```
### Error model (JSON-RPC `error.code`)
- `-32700` parse error, `-32601` method not found, `-32602` invalid params (standard).
- Application codes: `1001` widget/target not found, `1002` target not actionable
(disabled/hidden), `1003` wait timeout, `1004` GUI thread busy/timeout,
`1005` screenshot failed, `1006` automation feature disabled.
## 6. Threading model
- `AutomationServer` runs on its own thread and accepts connections; the dispatcher
parses on that thread.
- **Every** call touching wx/ImGui/GL is marshaled to the GUI thread with
`wxGetApp().CallAfter([...]{ ... })`; the server thread blocks on a `std::future`
with a per-request timeout (default 5 s; `wait_for` uses its own larger budget).
Timeout → error `1004`.
- This is mandatory: wx widgets, the ImGui context, and the GL context are not
thread-safe and are owned by the GUI thread.
- `CallAfter` is serviced even while modal dialogs run (nested event loop), so
automation can interact with dialogs.
## 7. Widget locator & automation IDs (wxWidgets)
- **Stable IDs:** `set_automation_id(window, "btn_slice")` registers the widget in
`AutomationRegistry`. Stored in a side map keyed by `wxWindow*` (not via `SetName`,
to avoid any coupling with wx's name-based lookups). Registration is removed on
widget destruction (bind to `wxEVT_DESTROY` or prune lazily on lookup).
- **Derived IDs:** for un-instrumented widgets, `WidgetSerializer` derives a positional
`path` (e.g. `MainFrame/Panel[2]/Button[0]`) so an AI agent can still target anything.
Named IDs are the preferred, stable path.
- **Locator resolution order:** exact automation id → exact path → predicate match
(name/class/label/value). Ambiguous matches return the list via `tree.find`; action
methods require a unique match or error `1001`.
- **v1 instrumented widgets (~15-20):** Slice/Export buttons, printer & filament preset
combos, the main tab buttons (`tp3DEditor`/`tpPreview`/`tpMonitor`/…), Add/Import,
common dialog OK/Cancel/Yes/No, the `GLCanvas3D` itself.
## 8. ImGui coverage (v1 = wrapper items + window introspection)
- **Item recording:** inside each `ImGuiWrapper` wrapped method, when
`is_automation_enabled()` is true, append the just-drawn item to a per-frame
`ImGuiItemTable` entry: `{window_name, label/id, type, rect, enabled, value}`.
Item rect comes from `ImGui::GetItemRectMin/Max()` (ImGui display coords) mapped to
**screen** coords via the `GLCanvas3D` client origin (`ClientToScreen`) and DPI scale.
- **Window enumeration:** via `imgui_internal.h`, enumerate `GetCurrentContext()->Windows`
for window name, rect, visibility, plus the global hovered/active item id.
- **Double-buffering:** the table is swapped at frame end (`ImGuiWrapper::render`) so
readers see a complete frame. Reads happen on the GUI thread (after marshaling), same
thread as rendering, so a simple front/back swap suffices.
- **Freshness:** because items exist only while drawn, before an ImGui tree read or
action the backend forces a canvas refresh and flushes events so the latest frame is
captured. `sync.wait_for` can poll for an ImGui item to appear (e.g. after opening a
gizmo).
- **Actions:** an ImGui target resolves to its recorded screen rect; `input.click`/
`input.type` use `wxUIActionSimulator` on that rect — identical action path to wx,
different rect source. Typing into an ImGui input works because simulated keystrokes
flow through the existing `ImGuiWrapper::update_key_data` bridge once the field is
focused by a click.
- **Limitation (documented):** raw-`ImGui::` gizmos (Emboss, SVG, Text) are covered at
the **window** level only in v1; per-item instrumentation is future work.
## 9. Screenshots
- **`screenshot.window`:** capture a `wxWindow` (default: main frame) via
`wxClientDC`/`wxWindowDC``wxBitmap``wxImage` → PNG → base64. Works for native
widgets but **not** for the GL canvas region (returns black there) — hence the
separate 3D method.
- **`screenshot.viewport3d`:** reuse `GLCanvas3D::render_thumbnail()` (FBO +
`glReadPixels`) → `ThumbnailData``wxImage` (per `debug_output_thumbnail`) → PNG →
base64. Optional `plate`, `width`, `height` params. Runs on the GUI thread with the GL
context current.
## 10. Activation & security
- **Off by default.** Enabled by CLI flag `--automation-server[=PORT]` (default port
13619). (An app-config/Preferences toggle may be added later; v1 is flag-only.)
- **Bind `127.0.0.1` only.** No external interface.
- **No token in v1** (per decision); documented as a recommended future hardening,
along with an optional `--automation-token`.
- When disabled: no listener, no thread, and all `ImGuiWrapper` recording hooks are
skipped — **zero** runtime overhead and **zero** behavior change. This satisfies the
project's "features gated by options must not affect existing behavior when disabled"
constraint.
## 11. Testability
- `JsonRpcDispatcher` depends only on `IUiBackend` and has **no** wx/ImGui/GL includes.
- **C++ unit tests (Catch2), display-free, run in CI:**
- JSON-RPC envelope parse/validate/dispatch (good + malformed input, error codes).
- Method routing and param validation for every v1 method against `MockUiBackend`.
- `WidgetSerializer` node shape (fed a synthetic node model, not real wx widgets).
- Locator resolution: exact id, path, predicate, ambiguity, not-found.
- The only piece needing a real GUI is `WxUiBackend`; it is exercised by the manual
end-to-end example, not by CI unit tests.
## 12. Deliverables
- **C++:** the `Automation/` components, `ImGuiWrapper` recording hooks, widget
instrumentation, CLI flag plumbing, `GUI_App` lifecycle, CMake wiring.
- **`tools/automation/orca_automation.py`:** reference Python client wrapping the
JSON-RPC calls (`connect`, `version`, `dump_tree`, `find`, `click`, `type`, `key`,
`wait_for`, `app_state`, `screenshot`, `screenshot_3d`).
- **`tools/automation/example_slice.py`:** runnable end-to-end flow — launch OrcaSlicer
with the flag, load a model, click Slice, `wait_for` completion, save a 3D-preview PNG.
Doubles as a manual smoke test.
- **`doc/automation.md`:** protocol reference (methods, params, results, error codes),
node shape, automation-id naming conventions, ImGui notes, platform/display caveats.
- **`tests/`:** Catch2 unit-test target for the dispatch/serialize/locator logic.
## 13. New / changed file inventory
**New**
- `src/slic3r/GUI/Automation/AutomationServer.{hpp,cpp}`
- `src/slic3r/GUI/Automation/JsonRpcDispatcher.{hpp,cpp}`
- `src/slic3r/GUI/Automation/IUiBackend.hpp`
- `src/slic3r/GUI/Automation/WxUiBackend.{hpp,cpp}`
- `src/slic3r/GUI/Automation/AutomationRegistry.{hpp,cpp}`
- `src/slic3r/GUI/Automation/WidgetSerializer.{hpp,cpp}`
- `src/slic3r/GUI/Automation/ImGuiItemTable.{hpp,cpp}`
- `tools/automation/orca_automation.py`
- `tools/automation/example_slice.py`
- `doc/automation.md`
- `tests/automation/` (Catch2 target) + `MockUiBackend.{hpp,cpp}`
**Changed**
- `src/slic3r/GUI/ImGuiWrapper.cpp` (guarded recording hooks)
- `src/slic3r/GUI/GUI_App.{hpp,cpp}` (server lifecycle, `is_automation_enabled()`)
- `src/OrcaSlicer.cpp` (CLI flag)
- ~15-20 widget-construction sites (`set_automation_id`)
- `src/slic3r/GUI/CMakeLists.txt` + `tests/CMakeLists.txt`
## 14. Known constraints & limitations
- OS input injection requires the OrcaSlicer window **focused and visible**; the backend
raises/focuses the main window before injecting. Linux CI needs a display (Xvfb).
- Input is asynchronous at the OS level; correctness relies on `sync.wait_for` rather
than fixed sleeps.
- ImGui items are only addressable while their host panel is drawn.
- Raw-`ImGui::` gizmos: window-level only in v1.
- Single-client assumption in v1 (serialized request handling); no concurrent sessions
contract.
## 15. Future work (out of scope for v1)
- Optional auth token + Preferences toggle.
- WebSocket channel for server-push events (slice progress, dialog-appeared).
- Per-item instrumentation for raw-`ImGui::` gizmos.
- An MCP server wrapping the JSON-RPC client for direct AI-agent integration.
- Optional integration of Dear ImGui Test Engine for deterministic ImGui interaction.
## 16. Verification plan
- **CI:** Catch2 unit tests (dispatch/serialize/locator) pass with no display.
- **Manual / e2e:** run `tools/automation/example_slice.py` against a built OrcaSlicer
launched with `--automation-server`; confirm model loads, Slice runs, `wait_for`
returns on completion, and both a wx-window PNG and a 3D-viewport PNG are produced.
- **Regression:** build and run with automation **off**; confirm no new threads, no
listener, and ImGui rendering is byte-for-byte unchanged (hooks compiled out of the
hot path via the disabled flag).
+63 -438
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-26 11:35+0800\n"
"POT-Creation-Date: 2026-06-08 00:18+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -187,15 +187,6 @@ msgstr ""
msgid "Support Generated"
msgstr ""
msgid "Entering Paint-on supports"
msgstr ""
msgid "Leaving Paint-on supports"
msgstr ""
msgid "Paint-on supports editing"
msgstr ""
msgid "Gizmo-Place on Face"
msgstr ""
@@ -281,15 +272,6 @@ msgstr ""
msgid "To:"
msgstr ""
msgid "Entering color painting"
msgstr ""
msgid "Leaving color painting"
msgstr ""
msgid "Color painting editing"
msgstr ""
msgid "Paint-on fuzzy skin"
msgstr ""
@@ -309,15 +291,6 @@ msgstr ""
msgid "Enable painted fuzzy skin for this object"
msgstr ""
msgid "Entering Paint-on fuzzy skin"
msgstr ""
msgid "Leaving Paint-on fuzzy skin"
msgstr ""
msgid "Paint-on fuzzy skin editing"
msgstr ""
msgid "Move"
msgstr ""
@@ -700,15 +673,6 @@ msgstr ""
msgid "Delete connector"
msgstr ""
msgid "Entering Cut gizmo"
msgstr ""
msgid "Leaving Cut gizmo"
msgstr ""
msgid "Cut gizmo editing"
msgstr ""
msgid "Mesh name"
msgstr ""
@@ -1550,12 +1514,6 @@ msgstr ""
msgid "Flip by Face 2"
msgstr ""
msgid "Entering Measure gizmo"
msgstr ""
msgid "Leaving Measure gizmo"
msgstr ""
msgid "Assemble"
msgstr ""
@@ -1581,20 +1539,14 @@ msgid "Warning: please select Point's or Circle's feature."
msgstr ""
msgid ""
"It is recommended to assemble objects first,\n"
"because they are restricted to the bed \n"
"It is recommended to assemble the objects first,\n"
"because the objects is restriced to bed \n"
"and only parts can be lifted."
msgstr ""
msgid "Face and face assembly"
msgstr ""
msgid "Entering Assembly gizmo"
msgstr ""
msgid "Leaving Assembly gizmo"
msgstr ""
msgid "Ctrl+"
msgstr ""
@@ -1652,7 +1604,7 @@ msgstr ""
msgid "3MF files"
msgstr ""
msgid "G-code 3MF files"
msgid "Gcode 3MF files"
msgstr ""
msgid "G-code files"
@@ -1708,25 +1660,6 @@ msgstr ""
msgid "Untitled"
msgstr ""
msgid ""
"Since version 2.4.0, OrcaSlicer syncs user profiles through Orca Cloud "
"instead of Bambu Cloud.\n"
"\n"
"To migrate your existing profiles, log in to Orca Cloud and they will be "
"transferred automatically. To learn more about how OrcaSlicer stores and "
"syncs your profiles, or to migrate your presets manually, check out our "
"wiki.\n"
"\n"
"If you did not use Bambu Cloud to sync profiles, this change does not affect "
"you and you can safely ignore this message."
msgstr ""
msgid "Profile syncing change"
msgstr ""
msgid "Learn more"
msgstr ""
msgid "Reloading network plug-in..."
msgstr ""
@@ -1755,14 +1688,6 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr ""
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is "
"installed.\n"
"Please install it manually from https://developer.microsoft.com/microsoft-"
"edge/webview2/ and restart Orca Slicer."
msgstr ""
#, possible-c-format, possible-boost-format
msgid "Resources path does not exist or is not a directory: %s"
msgstr ""
@@ -1880,20 +1805,6 @@ msgid ""
"preset."
msgstr ""
msgid ""
"Cloud sync conflict: 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 ""
msgid ""
"Cloud sync conflict: there was an unexpected or unidentified preset "
"conflict.\n"
"Pull downloads the cloud copy. Force push overwrites it with your local "
"preset."
msgstr ""
msgid ""
"Force push will overwrite the cloud copy with your local preset changes.\n"
"Do you want to continue?"
@@ -3113,51 +3024,6 @@ msgstr ""
msgid "The minmum temperature should not be less than "
msgstr ""
msgid "Type to filter..."
msgstr ""
msgid "All"
msgstr ""
msgid "No selected items..."
msgstr ""
msgid "All items selected..."
msgstr ""
msgid "No matching items..."
msgstr ""
msgid "Deselect All"
msgstr ""
msgid "Select visible"
msgstr ""
msgid "Deselect visible"
msgstr ""
msgid "Filter selected"
msgstr ""
msgid "Filter nonSelected"
msgstr ""
msgid "Simple settings"
msgstr ""
msgid "Advanced settings"
msgstr ""
msgid "Expert settings"
msgstr ""
msgid "Developer mode"
msgstr ""
msgid "Launch troubleshoot center"
msgstr ""
msgid ""
"All the selected objects are on a locked plate.\n"
"Cannot auto-arrange these objects."
@@ -3398,9 +3264,6 @@ msgstr ""
msgid "There is no valid surface for text projection."
msgstr ""
msgid "An unexpected error occurred"
msgstr ""
msgid "Thermal Preconditioning for first layer optimization"
msgstr ""
@@ -5113,7 +4976,10 @@ msgstr ""
msgid "Sequence"
msgstr ""
msgid "Object selection"
msgid "Object Selection"
msgstr ""
msgid "Part Selection"
msgstr ""
msgid "number keys"
@@ -5296,6 +5162,9 @@ msgstr ""
msgid "Paint Toolbar"
msgstr ""
msgid "part selection"
msgstr ""
msgid "Explosion Ratio"
msgstr ""
@@ -5320,7 +5189,7 @@ msgstr ""
msgid "Size:"
msgstr ""
#, possible-boost-format
#, possible-c-format, possible-boost-format
msgid ""
"Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -5528,10 +5397,10 @@ msgstr ""
msgid "Export G-code file"
msgstr ""
msgid "Export plate sliced file"
msgid "Send"
msgstr ""
msgid "Send"
msgid "Export plate sliced file"
msgstr ""
msgid "Export all sliced file"
@@ -7487,7 +7356,7 @@ msgstr ""
msgid "The selected object couldn't be split."
msgstr ""
msgid "Disable Auto-Drop to preserve Z positioning?\n"
msgid "Disable Auto-Drop to preserve z positioning?\n"
msgstr ""
msgid "Object with floating parts was detected"
@@ -8107,6 +7976,9 @@ msgstr ""
msgid "Group user filament presets based on selection"
msgstr ""
msgid "All"
msgstr ""
msgid "By type"
msgstr ""
@@ -8286,16 +8158,6 @@ msgstr ""
msgid "Renders cast shadows on the plate in realistic view."
msgstr ""
msgid "Smooth normals"
msgstr ""
msgid ""
"Applies smooth normals to the realistic view.\n"
"\n"
"Requires manual scene reload to take effect (right-click on 3D view → "
"\"Reload All\")."
msgstr ""
msgid "Anti-aliasing"
msgstr ""
@@ -8457,14 +8319,6 @@ msgstr ""
msgid "Associate files to OrcaSlicer"
msgstr ""
msgid ""
"File associations for the Microsoft Store version are managed by Windows "
"Settings."
msgstr ""
msgid "Open Windows Default Apps Settings"
msgstr ""
msgid "Associate 3MF files to OrcaSlicer"
msgstr ""
@@ -8495,6 +8349,9 @@ msgstr ""
msgid "Developer"
msgstr ""
msgid "Developer mode"
msgstr ""
msgid "Skip AMS blacklist check"
msgstr ""
@@ -9222,9 +9079,6 @@ msgid ""
"operation or verify if the printer is functioning properly."
msgstr ""
msgid "Sending failed, please try again!"
msgstr ""
msgid "Slice ok."
msgstr ""
@@ -9475,8 +9329,8 @@ 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\"."
"by right-click the empty position of build plate and choose \"Add Primitive"
"\"->\"Timelapse Wipe Tower\"."
msgstr ""
msgid ""
@@ -9593,9 +9447,6 @@ msgstr ""
msgid "Travel speed"
msgstr ""
msgid "Junction Deviation"
msgstr ""
msgid "Jerk(XY)"
msgstr ""
@@ -10386,6 +10237,9 @@ msgid ""
"list."
msgstr ""
msgid "Advanced settings"
msgstr ""
msgid "Add unused AMS filaments to filaments list."
msgstr ""
@@ -10844,23 +10698,12 @@ msgstr ""
msgid "New version of Orca Slicer"
msgstr ""
msgid "Check on Microsoft Store"
msgstr ""
msgid "Check on GitHub"
msgstr ""
msgid "Open Microsoft Store"
msgid "Check on Github"
msgstr ""
msgid "Skip this Version"
msgstr ""
#, possible-c-format, possible-boost-format
msgid ""
"New version available: %s. Please update OrcaSlicer from the Microsoft Store."
msgstr ""
msgid "Confirm and Update Nozzle"
msgstr ""
@@ -10964,9 +10807,6 @@ msgstr ""
msgid "Auto Fire Extinguishing System"
msgstr ""
msgid "Beta"
msgstr ""
msgid "Update firmware"
msgstr ""
@@ -11505,14 +11345,6 @@ msgstr ""
msgid "Generating skirt & brim"
msgstr ""
msgid ""
"Per-object skirts cannot fit between the objects in By object print "
"sequence.\n"
"\n"
"Move the objects farther apart, reduce brim/skirt size, switch Skirt type to "
"Combined, or switch Print sequence to By layer."
msgstr ""
msgid "Exporting G-code"
msgstr ""
@@ -11633,15 +11465,6 @@ msgstr ""
msgid "Allow controlling BambuLab's printer through 3rd party print hosts."
msgstr ""
msgid "Use 3MF instead of G-code"
msgstr ""
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 ""
msgid "Printer Agent"
msgstr ""
@@ -11977,7 +11800,7 @@ msgid "External bridge density"
msgstr ""
msgid ""
"Controls the density (spacing) of external bridge lines.\n"
"Controls the density (spacing) of external bridge lines. Default is 100%.\n"
"Theoretically, 100% means a solid bridge, but due to the tendency of bridge "
"extrusions to sag, 100% may not be sufficient.\n"
"\n"
@@ -11991,14 +11814,18 @@ msgid ""
" - Pros: Can create a string-like first layer. Faster and with better "
"cooling because there is more space for air to circulate around the extruded "
"bridge.\n"
" - Cons: May lead to sagging and poorer surface finish."
" - Cons: May lead to sagging and poorer surface finish.\n"
"\n"
"Recommended range: Minimum 10% - Maximum 125%."
msgstr ""
msgid "Internal bridge density"
msgstr ""
msgid ""
"Controls the density (spacing) of internal bridge lines.\n"
"Controls the density (spacing) of internal bridge lines. Default is 100%. "
"100% means a solid internal bridge.\n"
"\n"
"Internal bridges act as intermediate support between sparse infill and top "
"solid infill and can strongly affect top surface quality.\n"
"\n"
@@ -12033,9 +11860,11 @@ msgid ""
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
#, possible-c-format, possible-boost-format
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the "
"nozzle diameter.\n"
"Bridge line width is expressed either as an absolute value or as a "
"percentage of the active nozzle diameter (percentages are computed from the "
"nozzle diameter).\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
@@ -13519,6 +13348,7 @@ msgstr ""
msgid "Z-buckling bias optimization (experimental)"
msgstr ""
#, possible-c-format, possible-boost-format
msgid ""
"Tightens the gyroid wave along the Z (vertical) axis at low infill density "
"to shorten the effective vertical column length and improve Z-axis "
@@ -13698,8 +13528,8 @@ msgid "mm/s² or %"
msgstr ""
msgid ""
"Acceleration of sparse infill. If the value is expressed as a percentage "
"(e.g. 100%), it will be calculated based on the default acceleration."
"Acceleration of sparse infill. If the value is expressed as a percentage (e."
"g. 100%), it will be calculated based on the default acceleration."
msgstr ""
msgid ""
@@ -13738,6 +13568,9 @@ msgstr ""
msgid "Default jerk."
msgstr ""
msgid "Junction Deviation"
msgstr ""
msgid ""
"Marlin Firmware Junction Deviation (replaces the traditional XY Jerk "
"setting)."
@@ -13814,10 +13647,10 @@ msgstr ""
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer "
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\". \"full_fan_speed_layer\" will be ignored if lower than "
"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
msgid "layer"
@@ -14629,13 +14462,16 @@ msgid ""
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
msgid "°"
msgstr ""
msgid "Don't alternate fill direction"
msgstr ""
msgid "Disable alternating fill direction when using Z contouring."
msgstr ""
msgid "Minimum Z height"
msgid "Minimum z height"
msgstr ""
msgid ""
@@ -15570,8 +15406,8 @@ msgid "Role base wipe speed"
msgstr ""
msgid ""
"The wipe speed is determined by the speed of the current extrusion role. "
"e.g. if a wipe action is executed immediately following an outer wall "
"The wipe speed is determined by the speed of the current extrusion role. e."
"g. if a wipe action is executed immediately following an outer wall "
"extrusion, the speed of the outer wall extrusion will be utilized for the "
"wipe action."
msgstr ""
@@ -16317,8 +16153,8 @@ msgstr ""
msgid ""
"Enable this option for automated chamber temperature control. This option "
"activates the emitting of an M191 command before the "
"\"machine_start_gcode\"\n"
"activates the emitting of an M191 command before the \"machine_start_gcode"
"\"\n"
" 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"
@@ -17104,8 +16940,8 @@ msgid "Debug level"
msgstr ""
msgid ""
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, "
"5:trace\n"
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:"
"trace\n"
msgstr ""
msgid "Log file"
@@ -18712,8 +18548,8 @@ msgid ""
msgstr ""
msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you "
"selected\".\n"
"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 ""
@@ -18796,6 +18632,9 @@ msgstr ""
msgid "Filament Preset Template"
msgstr ""
msgid "Deselect All"
msgstr ""
msgid "Process Preset Template"
msgstr ""
@@ -19214,21 +19053,9 @@ msgstr ""
msgid "Authorizing..."
msgstr ""
msgid "Error. Can't get api token for authorization"
msgstr ""
msgid "Could not parse server response."
msgstr ""
msgid "Error saving session to file"
msgstr ""
msgid "Error session check"
msgstr ""
msgid "Error during file upload"
msgstr ""
#, possible-c-format, possible-boost-format
msgid "Mismatched type of print host: %s"
msgstr ""
@@ -19866,105 +19693,6 @@ msgstr ""
msgid "Flashforge local API requires both serial number and access code."
msgstr ""
msgid "Printer returned an error"
msgstr ""
msgid "Missing system_info in response"
msgstr ""
msgid "Missing printer serial number in response"
msgstr ""
msgid "Error parsing response"
msgstr ""
msgid "ElegooLink not detected"
msgstr ""
msgid "Invalid access code"
msgstr ""
msgid "CC2 device not detected"
msgstr ""
msgid "Connection to ElegooLink is working correctly."
msgstr ""
msgid "Could not connect to ElegooLink"
msgstr ""
#, possible-boost-format
msgid "Error code: %1%"
msgstr ""
msgid "Upload failed"
msgstr ""
msgid ""
"The file has been transferred, but some unknown errors occurred. Please "
"check the device page for the file and try to start printing again."
msgstr ""
msgid "Failed to open file for upload."
msgstr ""
msgid "Failed to read file chunk for upload."
msgstr ""
msgid "CC2 upload failed"
msgstr ""
msgid "The file is empty or could not be read."
msgstr ""
msgid "Failed to calculate file checksum."
msgstr ""
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 ""
msgid "The file is lost, please check and try again."
msgstr ""
msgid "The file is corrupted, please check and try again."
msgstr ""
msgid "Transmission abnormality, please check and try again."
msgstr ""
msgid "The file does not match the printer, please check and try again."
msgstr ""
msgid "Start print timeout"
msgstr ""
msgid "Start print failed"
msgstr ""
msgid "Connected to CrealityPrint successfully!"
msgstr ""
msgid "Could not connect to CrealityPrint"
msgstr ""
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 ""
msgid "The Hostname/IP/URL could not be parsed, please check it and try again."
msgstr ""
msgid ""
"File/data transfer interrupted. Please check the printer and network, then "
"try it again."
msgstr ""
msgid "The provided state is not correct."
msgstr ""
@@ -20015,12 +19743,6 @@ msgstr ""
msgid "Please select single object."
msgstr ""
msgid "Entering Brim Ears"
msgstr ""
msgid "Leaving Brim Ears"
msgstr ""
msgid "Zoom Out"
msgstr ""
@@ -20030,9 +19752,6 @@ msgstr ""
msgid "Load skipping objects information failed. Please try again."
msgstr ""
msgid "Failed to create the temporary folder."
msgstr ""
#, possible-c-format, possible-boost-format
msgid "/%d Selected"
msgstr ""
@@ -20178,100 +19897,6 @@ msgstr ""
msgid "Calculating, please wait..."
msgstr ""
msgid "PresetBundle"
msgstr ""
msgid "Bundle folder does not exist."
msgstr ""
msgid "Failed to open folder."
msgstr ""
msgid "Delete selected bundle from folder and all presets loaded from it?"
msgstr ""
msgid "Delete Bundle"
msgstr ""
msgid "Failed to remove bundle."
msgstr ""
msgid "Remove Bundle"
msgstr ""
msgid "Unsubscribe bundle?"
msgstr ""
msgid "UnsubscribeBundle"
msgstr ""
msgid "Failed to unsubscribe bundle."
msgstr ""
msgid "Unsubscribe Bundle"
msgstr ""
msgid "ExportPresetBundle"
msgstr ""
msgid "Save preset bundle"
msgstr ""
msgid ""
"Performing desktop integration failed - boost::filesystem::canonical did not "
"return appimage path."
msgstr ""
msgid "Performing desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing desktop integration failed because the application directory was "
"not found."
msgstr ""
msgid ""
"Performing desktop integration failed - could not create Gcodeviewer desktop "
"file. OrcaSlicer desktop file was probably created successfully."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - "
"boost::filesystem::canonical did not return appimage path."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing downloader desktop integration failed because the application "
"directory was not found."
msgstr ""
msgid "Desktop Integration"
msgstr ""
msgid ""
"Desktop Integration sets this binary to be searchable by the system.\n"
"\n"
"Press \"Perform\" to proceed."
msgstr ""
msgid "The download has failed"
msgstr ""
#. TRN %1% = file path
#, possible-boost-format
msgid "Can't create file at %1%"
msgstr ""
msgid "Archive preview"
msgstr ""
msgid "Open File"
msgstr ""
msgid ""
"The filament may not be compatible with the current machine settings. "
"Generic filament presets will be used."
+94 -481
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-26 11:35+0800\n"
"POT-Creation-Date: 2026-06-08 00:18+0800\n"
"PO-Revision-Date: 2025-03-15 10:55+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -202,15 +202,6 @@ msgstr "Fet"
msgid "Support Generated"
msgstr "Suport generat"
msgid "Entering Paint-on supports"
msgstr ""
msgid "Leaving Paint-on supports"
msgstr ""
msgid "Paint-on supports editing"
msgstr ""
msgid "Gizmo-Place on Face"
msgstr "Gizmo-Recolzar sobre la Cara"
@@ -298,15 +289,6 @@ msgstr "Pintat amb: Filament %1%"
msgid "To:"
msgstr "A:"
msgid "Entering color painting"
msgstr ""
msgid "Leaving color painting"
msgstr ""
msgid "Color painting editing"
msgstr ""
msgid "Paint-on fuzzy skin"
msgstr "Pell difusa pintada"
@@ -328,15 +310,6 @@ msgstr ""
msgid "Enable painted fuzzy skin for this object"
msgstr "Activa la pell difusa pintada per a aquest objecte"
msgid "Entering Paint-on fuzzy skin"
msgstr ""
msgid "Leaving Paint-on fuzzy skin"
msgstr ""
msgid "Paint-on fuzzy skin editing"
msgstr ""
msgid "Move"
msgstr "Moure"
@@ -727,15 +700,6 @@ msgstr "Tall per línia"
msgid "Delete connector"
msgstr "Suprimeix el connector"
msgid "Entering Cut gizmo"
msgstr ""
msgid "Leaving Cut gizmo"
msgstr ""
msgid "Cut gizmo editing"
msgstr ""
msgid "Mesh name"
msgstr "Nom de la malla"
@@ -1613,12 +1577,6 @@ msgstr "Distància paral·lela:"
msgid "Flip by Face 2"
msgstr "Gira per la cara 2"
msgid "Entering Measure gizmo"
msgstr ""
msgid "Leaving Measure gizmo"
msgstr ""
msgid "Assemble"
msgstr "Ensamblar"
@@ -1645,8 +1603,8 @@ msgid "Warning: please select Point's or Circle's feature."
msgstr "Avís: seleccioneu la funció de Punt o Cercle."
msgid ""
"It is recommended to assemble objects first,\n"
"because they are restricted to the bed \n"
"It is recommended to assemble the objects first,\n"
"because the objects is restriced to bed \n"
"and only parts can be lifted."
msgstr ""
"Es recomana muntar els objectes primer,\n"
@@ -1656,12 +1614,6 @@ msgstr ""
msgid "Face and face assembly"
msgstr "Muntatge cara a cara"
msgid "Entering Assembly gizmo"
msgstr ""
msgid "Leaving Assembly gizmo"
msgstr ""
msgid "Ctrl+"
msgstr "Ctrl+"
@@ -1725,7 +1677,7 @@ msgstr "Fitxers AMF"
msgid "3MF files"
msgstr "Fitxers 3MF"
msgid "G-code 3MF files"
msgid "Gcode 3MF files"
msgstr "Fitxers G-code 3MF"
msgid "G-code files"
@@ -1786,35 +1738,6 @@ msgstr "OrcaSlicer ha tingut una excepció no gestionada: %1%"
msgid "Untitled"
msgstr "Sense títol"
msgid ""
"Since version 2.4.0, OrcaSlicer syncs user profiles through Orca Cloud "
"instead of Bambu Cloud.\n"
"\n"
"To migrate your existing profiles, log in to Orca Cloud and they will be "
"transferred automatically. To learn more about how OrcaSlicer stores and "
"syncs your profiles, or to migrate your presets manually, check out our "
"wiki.\n"
"\n"
"If you did not use Bambu Cloud to sync profiles, this change does not affect "
"you and you can safely ignore this message."
msgstr ""
"Des de la versió 2.4.0, OrcaSlicer sincronitza els perfils d'usuari a través "
"d'Orca Cloud en lloc de Bambu Cloud.\n"
"\n"
"Per migrar els teus perfils existents, inicia la sessió a Orca Cloud i es "
"transferiran automàticament. Per obtenir més informació sobre com OrcaSlicer "
"emmagatzema i sincronitza els teus perfils, o per migrar els teus perfils "
"manualment, consulta la nostra wiki.\n"
"\n"
"Si no feies servir Bambu Cloud per sincronitzar perfils, aquest canvi no "
"t'afecta i pots ignorar aquest missatge amb tranquil·litat."
msgid "Profile syncing change"
msgstr ""
msgid "Learn more"
msgstr ""
msgid "Reloading network plug-in..."
msgstr "Recarregant el connector de xarxa..."
@@ -1848,14 +1771,6 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is "
"installed.\n"
"Please install it manually from https://developer.microsoft.com/microsoft-"
"edge/webview2/ and restart Orca Slicer."
msgstr ""
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
msgstr "El camí de recursos no existeix o no és un directori: %s"
@@ -1987,20 +1902,6 @@ msgid ""
"preset."
msgstr ""
msgid ""
"Cloud sync conflict: 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 ""
msgid ""
"Cloud sync conflict: there was an unexpected or unidentified preset "
"conflict.\n"
"Pull downloads the cloud copy. Force push overwrites it with your local "
"preset."
msgstr ""
msgid ""
"Force push will overwrite the cloud copy with your local preset changes.\n"
"Do you want to continue?"
@@ -3293,52 +3194,6 @@ msgstr "La temperatura màxima no pot superar "
msgid "The minmum temperature should not be less than "
msgstr "La temperatura mínima no hauria de ser inferior a "
msgid "Type to filter..."
msgstr ""
msgid "All"
msgstr "Tots"
msgid "No selected items..."
msgstr ""
msgid "All items selected..."
msgstr ""
msgid "No matching items..."
msgstr ""
msgid "Deselect All"
msgstr "Deseleccionar-ho tot"
msgid "Select visible"
msgstr ""
msgid "Deselect visible"
msgstr ""
msgid "Filter selected"
msgstr ""
msgid "Filter nonSelected"
msgstr ""
msgid "Simple settings"
msgstr ""
msgid "Advanced settings"
msgstr "Configuració avançada"
msgid "Expert settings"
msgstr ""
#, fuzzy
msgid "Developer mode"
msgstr "Mode de desenvolupament"
msgid "Launch troubleshoot center"
msgstr ""
msgid ""
"All the selected objects are on a locked plate.\n"
"Cannot auto-arrange these objects."
@@ -3622,9 +3477,6 @@ msgstr "La tipografia no té cap forma per al text indicat."
msgid "There is no valid surface for text projection."
msgstr "No hi ha cap superfície vàlida per a la projecció del text."
msgid "An unexpected error occurred"
msgstr ""
msgid "Thermal Preconditioning for first layer optimization"
msgstr "Precondicionament tèrmic per a l'optimització de la primera capa"
@@ -4341,8 +4193,8 @@ msgid ""
"be opened during copy check. The output G-code is at %1%.tmp."
msgstr ""
"La còpia del codi-G temporal ha finalitzat, però el codi exportat no s'ha "
"pogut obrir durant la verificació de la còpia. El codi-G de sortida és a "
"%1%.tmp."
"pogut obrir durant la verificació de la còpia. El codi-G de sortida és a %1%."
"tmp."
#, boost-format
msgid "G-code file exported to %1%"
@@ -5571,8 +5423,11 @@ msgstr "Incrementar/reduir àrea edició"
msgid "Sequence"
msgstr "Seqüència"
msgid "Object selection"
msgstr "Selecció d'objecte"
msgid "Object Selection"
msgstr ""
msgid "Part Selection"
msgstr ""
msgid "number keys"
msgstr "tecles numèriques"
@@ -5760,6 +5615,9 @@ msgstr "Etiquetes"
msgid "Paint Toolbar"
msgstr "Barra d'eines de pintura"
msgid "part selection"
msgstr ""
msgid "Explosion Ratio"
msgstr "Relació d'explosió"
@@ -5784,7 +5642,7 @@ msgstr "Volum:"
msgid "Size:"
msgstr "Mida:"
#, fuzzy, boost-format
#, fuzzy, c-format, boost-format
msgid ""
"Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -5961,8 +5819,8 @@ msgid ""
"You can find it in \"Setting > Setting > LAN only > Access Code\"\n"
"on the printer, as shown in the figure:"
msgstr ""
"Podeu trobar-lo a \"Configuració > Configuració > Només LAN > Codi "
"d'accés\"\n"
"Podeu trobar-lo a \"Configuració > Configuració > Només LAN > Codi d'accés"
"\"\n"
"a la impressora, com es mostra a la figura:"
msgid "Invalid input."
@@ -6016,12 +5874,12 @@ msgstr "Imprimir placa d'impressió"
msgid "Export G-code file"
msgstr "Exportar el fitxer del Codi-G"
msgid "Export plate sliced file"
msgstr "Exportar fitxer de la placa laminada"
msgid "Send"
msgstr "Enviar"
msgid "Export plate sliced file"
msgstr "Exportar fitxer de la placa laminada"
msgid "Export all sliced file"
msgstr "Exportar el fitxer amb tot laminat"
@@ -8163,7 +8021,7 @@ msgstr ""
msgid "The selected object couldn't be split."
msgstr "L'objecte seleccionat no s'ha pogut partir."
msgid "Disable Auto-Drop to preserve Z positioning?\n"
msgid "Disable Auto-Drop to preserve z positioning?\n"
msgstr ""
msgid "Object with floating parts was detected"
@@ -8858,6 +8716,9 @@ msgstr "Agrupa els perfils de filament de l'usuari"
msgid "Group user filament presets based on selection"
msgstr "Agrupa els perfils de filament de l'usuari segons la selecció"
msgid "All"
msgstr "Tots"
msgid "By type"
msgstr "Per tipus"
@@ -9068,16 +8929,6 @@ msgstr ""
msgid "Renders cast shadows on the plate in realistic view."
msgstr ""
msgid "Smooth normals"
msgstr ""
msgid ""
"Applies smooth normals to the realistic view.\n"
"\n"
"Requires manual scene reload to take effect (right-click on 3D view → "
"\"Reload All\")."
msgstr ""
msgid "Anti-aliasing"
msgstr ""
@@ -9250,14 +9101,6 @@ msgstr "Descarrega el connector de xarxa"
msgid "Associate files to OrcaSlicer"
msgstr "Associar fitxers a OrcaSlicer"
msgid ""
"File associations for the Microsoft Store version are managed by Windows "
"Settings."
msgstr ""
msgid "Open Windows Default Apps Settings"
msgstr ""
#, fuzzy
msgid "Associate 3MF files to OrcaSlicer"
msgstr "Associar .3mf fitxers a OrcaSlicer"
@@ -9301,6 +9144,10 @@ msgstr "Associar enllaços web a OrcaSlicer"
msgid "Developer"
msgstr "Desenvolupador"
#, fuzzy
msgid "Developer mode"
msgstr "Mode de desenvolupament"
msgid "Skip AMS blacklist check"
msgstr "Omet la comprovació de la llista negra AMS"
@@ -10132,9 +9979,6 @@ msgstr ""
"firmware admet aquesta operació o verifiqueu si la impressora funciona "
"correctament."
msgid "Sending failed, please try again!"
msgstr ""
msgid "Slice ok."
msgstr "Laminat ok."
@@ -10462,8 +10306,8 @@ 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\"."
"by right-click the empty position of build plate and choose \"Add Primitive"
"\"->\"Timelapse Wipe Tower\"."
msgstr ""
"Quan graveu timelapse sense capçal d'impressió, es recomana afegir una "
"\"Torre de Purga Timelapse\" \n"
@@ -10595,9 +10439,6 @@ msgstr "Establir la velocitat dels ponts externs i interns"
msgid "Travel speed"
msgstr "Velocitat de desplaçament"
msgid "Junction Deviation"
msgstr "Desviació de cruïlla"
msgid "Jerk(XY)"
msgstr "Sacsejada( XY )-Jerk( XY )"
@@ -11480,6 +11321,9 @@ msgstr ""
"els filaments de la impressora. Els filaments de la impressora no utilitzats "
"s'afegiran automàticament al final de la llista."
msgid "Advanced settings"
msgstr "Configuració avançada"
msgid "Add unused AMS filaments to filaments list."
msgstr "Afegeix filaments d'AMS no utilitzats a la llista de filaments."
@@ -11990,23 +11834,12 @@ msgstr "Un nou plugin de Xarxa( %s ) disponible, Vols instal·lar-lo?"
msgid "New version of Orca Slicer"
msgstr "Nova versió d'Orca Slicer"
msgid "Check on Microsoft Store"
msgstr ""
msgid "Check on GitHub"
msgstr ""
msgid "Open Microsoft Store"
msgid "Check on Github"
msgstr ""
msgid "Skip this Version"
msgstr "Omet aquesta versió"
#, c-format, boost-format
msgid ""
"New version available: %s. Please update OrcaSlicer from the Microsoft Store."
msgstr ""
msgid "Confirm and Update Nozzle"
msgstr "Confirmar i Actualitzar el broquet"
@@ -12123,9 +11956,6 @@ msgstr "Mòdul de tall"
msgid "Auto Fire Extinguishing System"
msgstr "Sistema d'extinció automàtica d'incendis"
msgid "Beta"
msgstr ""
msgid "Update firmware"
msgstr "Actualitzar el firmware"
@@ -12792,14 +12622,6 @@ msgstr ""
msgid "Generating skirt & brim"
msgstr "Generant Faldilla i Vora d'Adherència"
msgid ""
"Per-object skirts cannot fit between the objects in By object print "
"sequence.\n"
"\n"
"Move the objects farther apart, reduce brim/skirt size, switch Skirt type to "
"Combined, or switch Print sequence to By layer."
msgstr ""
msgid "Exporting G-code"
msgstr "Exportant el Codi-G"
@@ -12937,15 +12759,6 @@ msgstr ""
"Permetre controlar la impressora de BambuLab a través d'amfitrions "
"d'impressió de 3 ª part"
msgid "Use 3MF instead of G-code"
msgstr ""
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 ""
msgid "Printer Agent"
msgstr "Agent de la impressora"
@@ -13391,7 +13204,7 @@ msgid "External bridge density"
msgstr "Densitat del pont exterior"
msgid ""
"Controls the density (spacing) of external bridge lines.\n"
"Controls the density (spacing) of external bridge lines. Default is 100%.\n"
"Theoretically, 100% means a solid bridge, but due to the tendency of bridge "
"extrusions to sag, 100% may not be sufficient.\n"
"\n"
@@ -13405,14 +13218,18 @@ msgid ""
" - Pros: Can create a string-like first layer. Faster and with better "
"cooling because there is more space for air to circulate around the extruded "
"bridge.\n"
" - Cons: May lead to sagging and poorer surface finish."
" - Cons: May lead to sagging and poorer surface finish.\n"
"\n"
"Recommended range: Minimum 10% - Maximum 125%."
msgstr ""
msgid "Internal bridge density"
msgstr "Densitat del pont intern"
msgid ""
"Controls the density (spacing) of internal bridge lines.\n"
"Controls the density (spacing) of internal bridge lines. Default is 100%. "
"100% means a solid internal bridge.\n"
"\n"
"Internal bridges act as intermediate support between sparse infill and top "
"solid infill and can strongly affect top surface quality.\n"
"\n"
@@ -13447,9 +13264,11 @@ msgid ""
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
#, c-format, boost-format
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the "
"nozzle diameter.\n"
"Bridge line width is expressed either as an absolute value or as a "
"percentage of the active nozzle diameter (percentages are computed from the "
"nozzle diameter).\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
@@ -14194,9 +14013,8 @@ msgstr ""
"reducció de coixins a les superfícies superiors, així com una separació "
"reduïda de la capa de pont externa dels seus perímetres circumdants.\n"
"\n"
"En general, es recomana establir això com a mínim com a \"Només pont "
"extern\", tret que es detectin problemes específics amb el model en "
"rodanxes.\n"
"En general, es recomana establir això com a mínim com a \"Només pont extern"
"\", tret que es detectin problemes específics amb el model en rodanxes.\n"
"\n"
"Opcions:\n"
"1. Desactivat: no genera segones capes de pont. Aquest és el valor "
@@ -15456,6 +15274,7 @@ msgstr ""
msgid "Z-buckling bias optimization (experimental)"
msgstr ""
#, c-format, boost-format
msgid ""
"Tightens the gyroid wave along the Z (vertical) axis at low infill density "
"to shorten the effective vertical column length and improve Z-axis "
@@ -15666,8 +15485,8 @@ msgid "mm/s² or %"
msgstr "mm/s o %"
msgid ""
"Acceleration of sparse infill. If the value is expressed as a percentage "
"(e.g. 100%), it will be calculated based on the default acceleration."
"Acceleration of sparse infill. If the value is expressed as a percentage (e."
"g. 100%), it will be calculated based on the default acceleration."
msgstr ""
"Acceleració del farciment poc dens. Si el valor s'expressa en percentatge "
"( per exemple, 100% ), es calcularà a partir de l'acceleració predeterminada."
@@ -15713,6 +15532,9 @@ msgstr "El max_accel_to_decel de Klipper s'ajustarà a aquest %% d'acceleració"
msgid "Default jerk."
msgstr "Jerk predeterminat."
msgid "Junction Deviation"
msgstr "Desviació de cruïlla"
msgid ""
"Marlin Firmware Junction Deviation (replaces the traditional XY Jerk "
"setting)."
@@ -15800,15 +15622,15 @@ msgstr "Velocitat màxima del ventilador a la capa"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer "
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\". \"full_fan_speed_layer\" will be ignored if lower than "
"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"La velocitat del ventilador augmentarà linealment de zero a la capa "
"\"close_fan_the_first_x_layers\" al màxim a la capa "
"\"full_fan_speed_layer\". S'ignorarà \"full_fan_speed_layer\" si és inferior "
"a \"close_fan_the_first_x_layers\", en aquest cas el ventilador funcionarà a "
"\"close_fan_the_first_x_layers\" al màxim a la capa \"full_fan_speed_layer"
"\". S'ignorarà \"full_fan_speed_layer\" si és inferior a "
"\"close_fan_the_first_x_layers\", en aquest cas el ventilador funcionarà a "
"la velocitat màxima permesa a la capa \"close_fan_the_first_x_layers\" + 1."
msgid "layer"
@@ -16004,9 +15826,9 @@ msgstr ""
"inferior a un cert nivell. Normalment equival al 15-25%% de l'alçada de la "
"capa. Per tant, el gruix màxim de pell difusa amb una amplada de perímetre "
"de 0.4 mm i una alçada de capa de 0.2 mm serà 0.4-(0.2*0.25)=±0.35mm! Si "
"introduïu un paràmetre superior a aquest, es mostrarà l'error "
"Flow::spacing() i el model no es tallarà. Podeu triar aquest número fins que "
"es repeteixi l'error."
"introduïu un paràmetre superior a aquest, es mostrarà l'error Flow::"
"spacing() i el model no es tallarà. Podeu triar aquest número fins que es "
"repeteixi l'error."
msgid "Displacement"
msgstr "Desplaçament"
@@ -16838,13 +16660,16 @@ msgid ""
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
msgid "°"
msgstr "°"
msgid "Don't alternate fill direction"
msgstr ""
msgid "Disable alternating fill direction when using Z contouring."
msgstr ""
msgid "Minimum Z height"
msgid "Minimum z height"
msgstr ""
msgid ""
@@ -18001,8 +17826,8 @@ msgid "Role base wipe speed"
msgstr "Velocitat de neteja basada en l'acció"
msgid ""
"The wipe speed is determined by the speed of the current extrusion role. "
"e.g. if a wipe action is executed immediately following an outer wall "
"The wipe speed is determined by the speed of the current extrusion role. e."
"g. if a wipe action is executed immediately following an outer wall "
"extrusion, the speed of the outer wall extrusion will be utilized for the "
"wipe action."
msgstr ""
@@ -18953,8 +18778,8 @@ msgstr "Activar el control de temperatura"
msgid ""
"Enable this option for automated chamber temperature control. This option "
"activates the emitting of an M191 command before the "
"\"machine_start_gcode\"\n"
"activates the emitting of an M191 command before the \"machine_start_gcode"
"\"\n"
" 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"
@@ -19438,9 +19263,8 @@ msgid ""
"0 to disable."
msgstr ""
"Temperatura del broquet quan l'eina no s'utilitza actualment en "
"configuracions multieina. Només s'utilitza quan la \"Prevenció de "
"supuració\" està activa a la configuració d'impressió. Establiu a 0 per "
"desactivar."
"configuracions multieina. Només s'utilitza quan la \"Prevenció de supuració"
"\" està activa a la configuració d'impressió. Establiu a 0 per desactivar."
msgid "X-Y hole compensation"
msgstr "Compensació de forat( contorn intern ) X-Y"
@@ -19985,11 +19809,11 @@ msgid "Debug level"
msgstr "Nivell de depuració"
msgid ""
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, "
"5:trace\n"
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:"
"trace\n"
msgstr ""
"Defineix el nivell de registre de depuració. 0:fatal, 1:error, 2:warning, "
"3:info, 4:debug, 5:tracejar\n"
"Defineix el nivell de registre de depuració. 0:fatal, 1:error, 2:warning, 3:"
"info, 4:debug, 5:tracejar\n"
msgid "Log file"
msgstr ""
@@ -20542,8 +20366,8 @@ msgstr "El fitxer subministrat no s'ha pogut llegir perquè està buit"
msgid ""
"Unknown file format. Input file must have .stl, .obj, .amf(.xml) extension."
msgstr ""
"Format de fitxer desconegut. El fitxer d'entrada ha de tenir "
"extensió .stl, .obj, .amf( .xml )."
"Format de fitxer desconegut. El fitxer d'entrada ha de tenir extensió .stl, ."
"obj, .amf( .xml )."
msgid "Unknown file format. Input file must have .3mf or .zip.amf extension."
msgstr ""
@@ -21861,8 +21685,8 @@ msgstr ""
"Vols reescriure'l?"
msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you "
"selected\".\n"
"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 ""
"Canviaríem el nom dels perfils seleccionats com a \"Proveïdor Tipus "
@@ -21951,6 +21775,9 @@ msgstr "Perfil d'Impressora"
msgid "Filament Preset Template"
msgstr "Plantilla de Perfil de Filament"
msgid "Deselect All"
msgstr "Deseleccionar-ho tot"
msgid "Process Preset Template"
msgstr "Plantilla de Perfil de Processament"
@@ -22474,21 +22301,9 @@ msgstr ""
msgid "Authorizing..."
msgstr ""
msgid "Error. Can't get api token for authorization"
msgstr ""
msgid "Could not parse server response."
msgstr ""
msgid "Error saving session to file"
msgstr ""
msgid "Error session check"
msgstr ""
msgid "Error during file upload"
msgstr ""
#, c-format, boost-format
msgid "Mismatched type of print host: %s"
msgstr "Tipus d'amfitrió( host ) d'impressió no coincident: %s"
@@ -23311,105 +23126,6 @@ msgstr "No s'ha pogut connectar a Flashforge per sèrie"
msgid "Flashforge local API requires both serial number and access code."
msgstr ""
msgid "Printer returned an error"
msgstr ""
msgid "Missing system_info in response"
msgstr ""
msgid "Missing printer serial number in response"
msgstr ""
msgid "Error parsing response"
msgstr ""
msgid "ElegooLink not detected"
msgstr ""
msgid "Invalid access code"
msgstr ""
msgid "CC2 device not detected"
msgstr ""
msgid "Connection to ElegooLink is working correctly."
msgstr ""
msgid "Could not connect to ElegooLink"
msgstr ""
#, boost-format
msgid "Error code: %1%"
msgstr ""
msgid "Upload failed"
msgstr ""
msgid ""
"The file has been transferred, but some unknown errors occurred. Please "
"check the device page for the file and try to start printing again."
msgstr ""
msgid "Failed to open file for upload."
msgstr ""
msgid "Failed to read file chunk for upload."
msgstr ""
msgid "CC2 upload failed"
msgstr ""
msgid "The file is empty or could not be read."
msgstr ""
msgid "Failed to calculate file checksum."
msgstr ""
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 ""
msgid "The file is lost, please check and try again."
msgstr ""
msgid "The file is corrupted, please check and try again."
msgstr ""
msgid "Transmission abnormality, please check and try again."
msgstr ""
msgid "The file does not match the printer, please check and try again."
msgstr ""
msgid "Start print timeout"
msgstr ""
msgid "Start print failed"
msgstr ""
msgid "Connected to CrealityPrint successfully!"
msgstr ""
msgid "Could not connect to CrealityPrint"
msgstr ""
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 ""
msgid "The Hostname/IP/URL could not be parsed, please check it and try again."
msgstr ""
msgid ""
"File/data transfer interrupted. Please check the printer and network, then "
"try it again."
msgstr ""
msgid "The provided state is not correct."
msgstr "L'estat proporcionat no és correcte."
@@ -23449,8 +23165,8 @@ msgid ""
"Warning: The brim type is not set to \"painted\", the brim ears will not "
"take effect!"
msgstr ""
"Advertència: el tipus de Vora d'Adherència no està configurat com a "
"\"pintat\", les orelles de la Vora d'Adherència no tindran efecte!"
"Advertència: el tipus de Vora d'Adherència no està configurat com a \"pintat"
"\", les orelles de la Vora d'Adherència no tindran efecte!"
msgid "Set the brim type of this object to \"painted\""
msgstr "Estableix el tipus de vora d'aquest objecte a \"pintat\""
@@ -23464,12 +23180,6 @@ msgstr "Orelles de la Vora d'Adherència"
msgid "Please select single object."
msgstr "Seleccioneu un sol objecte."
msgid "Entering Brim Ears"
msgstr ""
msgid "Leaving Brim Ears"
msgstr ""
msgid "Zoom Out"
msgstr "Allunya"
@@ -23480,9 +23190,6 @@ msgid "Load skipping objects information failed. Please try again."
msgstr ""
"La càrrega d'informació dels objectes a ometre ha fallat. Torneu-ho a provar."
msgid "Failed to create the temporary folder."
msgstr ""
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d Seleccionats"
@@ -23633,100 +23340,6 @@ msgstr "Nombre de cares triangulars"
msgid "Calculating, please wait..."
msgstr "Calculant, espereu..."
msgid "PresetBundle"
msgstr ""
msgid "Bundle folder does not exist."
msgstr ""
msgid "Failed to open folder."
msgstr ""
msgid "Delete selected bundle from folder and all presets loaded from it?"
msgstr ""
msgid "Delete Bundle"
msgstr ""
msgid "Failed to remove bundle."
msgstr ""
msgid "Remove Bundle"
msgstr ""
msgid "Unsubscribe bundle?"
msgstr ""
msgid "UnsubscribeBundle"
msgstr ""
msgid "Failed to unsubscribe bundle."
msgstr ""
msgid "Unsubscribe Bundle"
msgstr ""
msgid "ExportPresetBundle"
msgstr ""
msgid "Save preset bundle"
msgstr ""
msgid ""
"Performing desktop integration failed - boost::filesystem::canonical did not "
"return appimage path."
msgstr ""
msgid "Performing desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing desktop integration failed because the application directory was "
"not found."
msgstr ""
msgid ""
"Performing desktop integration failed - could not create Gcodeviewer desktop "
"file. OrcaSlicer desktop file was probably created successfully."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - "
"boost::filesystem::canonical did not return appimage path."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing downloader desktop integration failed because the application "
"directory was not found."
msgstr ""
msgid "Desktop Integration"
msgstr ""
msgid ""
"Desktop Integration sets this binary to be searchable by the system.\n"
"\n"
"Press \"Perform\" to proceed."
msgstr ""
msgid "The download has failed"
msgstr ""
#. TRN %1% = file path
#, boost-format
msgid "Can't create file at %1%"
msgstr ""
msgid "Archive preview"
msgstr ""
msgid "Open File"
msgstr ""
msgid ""
"The filament may not be compatible with the current machine settings. "
"Generic filament presets will be used."
@@ -24145,9 +23758,6 @@ msgstr ""
"augmentar adequadament la temperatura del llit pot reduir la probabilitat de "
"deformació?"
#~ msgid "°"
#~ msgstr "°"
#~ msgid ""
#~ "The Wipe option is not available when using the Firmware Retraction "
#~ "mode.\n"
@@ -24362,9 +23972,9 @@ msgstr ""
#~ "Filament to print support base and raft. \"Default\" means no specific "
#~ "filament for support and current filament is used."
#~ msgstr ""
#~ "Filament per imprimir base del suport i Vora d'Adherència. \"Per "
#~ "defecte\" significa que no s'utilitza cap filament específic per al "
#~ "suport i s'usarà el filament actual"
#~ "Filament per imprimir base del suport i Vora d'Adherència. \"Per defecte"
#~ "\" significa que no s'utilitza cap filament específic per al suport i "
#~ "s'usarà el filament actual"
#~ msgid ""
#~ "Filament to print support interface. \"Default\" means no specific "
@@ -24500,6 +24110,9 @@ msgstr ""
#~ msgid "Mouse wheel:"
#~ msgstr "Roda del ratolí:"
#~ msgid "Object selection"
#~ msgstr "Selecció d'objecte"
#~ msgid "Pass 1"
#~ msgstr "Pas 1"
@@ -25057,8 +24670,8 @@ msgstr ""
#~ "No AMS filaments. Please select a printer in 'Device' page to load AMS "
#~ "info."
#~ msgstr ""
#~ "Sense filaments AMS. Seleccioneu una impressora a la pàgina "
#~ "\"Dispositiu\" per carregar informació AMS."
#~ "Sense filaments AMS. Seleccioneu una impressora a la pàgina \"Dispositiu"
#~ "\" per carregar informació AMS."
#~ msgid ""
#~ "Sync filaments with AMS will drop all current selected filament presets "
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+63 -438
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-26 11:35+0800\n"
"POT-Creation-Date: 2026-06-08 00:18+0800\n"
"PO-Revision-Date: 2025-05-18 09:32-0300\n"
"Last-Translator: Alexandre Folle de Menezes\n"
"Language-Team: \n"
@@ -183,15 +183,6 @@ msgstr ""
msgid "Support Generated"
msgstr "Support generated"
msgid "Entering Paint-on supports"
msgstr ""
msgid "Leaving Paint-on supports"
msgstr ""
msgid "Paint-on supports editing"
msgstr ""
msgid "Gizmo-Place on Face"
msgstr ""
@@ -277,15 +268,6 @@ msgstr ""
msgid "To:"
msgstr ""
msgid "Entering color painting"
msgstr ""
msgid "Leaving color painting"
msgstr ""
msgid "Color painting editing"
msgstr ""
msgid "Paint-on fuzzy skin"
msgstr ""
@@ -305,15 +287,6 @@ msgstr ""
msgid "Enable painted fuzzy skin for this object"
msgstr ""
msgid "Entering Paint-on fuzzy skin"
msgstr ""
msgid "Leaving Paint-on fuzzy skin"
msgstr ""
msgid "Paint-on fuzzy skin editing"
msgstr ""
msgid "Move"
msgstr ""
@@ -696,15 +669,6 @@ msgstr ""
msgid "Delete connector"
msgstr ""
msgid "Entering Cut gizmo"
msgstr ""
msgid "Leaving Cut gizmo"
msgstr ""
msgid "Cut gizmo editing"
msgstr ""
msgid "Mesh name"
msgstr ""
@@ -1546,12 +1510,6 @@ msgstr ""
msgid "Flip by Face 2"
msgstr ""
msgid "Entering Measure gizmo"
msgstr ""
msgid "Leaving Measure gizmo"
msgstr ""
msgid "Assemble"
msgstr ""
@@ -1577,20 +1535,14 @@ msgid "Warning: please select Point's or Circle's feature."
msgstr ""
msgid ""
"It is recommended to assemble objects first,\n"
"because they are restricted to the bed \n"
"It is recommended to assemble the objects first,\n"
"because the objects is restriced to bed \n"
"and only parts can be lifted."
msgstr ""
msgid "Face and face assembly"
msgstr ""
msgid "Entering Assembly gizmo"
msgstr ""
msgid "Leaving Assembly gizmo"
msgstr ""
msgid "Ctrl+"
msgstr ""
@@ -1650,7 +1602,7 @@ msgstr ""
msgid "3MF files"
msgstr ""
msgid "G-code 3MF files"
msgid "Gcode 3MF files"
msgstr ""
msgid "G-code files"
@@ -1706,25 +1658,6 @@ msgstr ""
msgid "Untitled"
msgstr ""
msgid ""
"Since version 2.4.0, OrcaSlicer syncs user profiles through Orca Cloud "
"instead of Bambu Cloud.\n"
"\n"
"To migrate your existing profiles, log in to Orca Cloud and they will be "
"transferred automatically. To learn more about how OrcaSlicer stores and "
"syncs your profiles, or to migrate your presets manually, check out our "
"wiki.\n"
"\n"
"If you did not use Bambu Cloud to sync profiles, this change does not affect "
"you and you can safely ignore this message."
msgstr ""
msgid "Profile syncing change"
msgstr ""
msgid "Learn more"
msgstr ""
msgid "Reloading network plug-in..."
msgstr ""
@@ -1753,14 +1686,6 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr ""
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is "
"installed.\n"
"Please install it manually from https://developer.microsoft.com/microsoft-"
"edge/webview2/ and restart Orca Slicer."
msgstr ""
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
msgstr ""
@@ -1880,20 +1805,6 @@ msgid ""
"preset."
msgstr ""
msgid ""
"Cloud sync conflict: 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 ""
msgid ""
"Cloud sync conflict: there was an unexpected or unidentified preset "
"conflict.\n"
"Pull downloads the cloud copy. Force push overwrites it with your local "
"preset."
msgstr ""
msgid ""
"Force push will overwrite the cloud copy with your local preset changes.\n"
"Do you want to continue?"
@@ -3120,51 +3031,6 @@ msgstr ""
msgid "The minmum temperature should not be less than "
msgstr ""
msgid "Type to filter..."
msgstr ""
msgid "All"
msgstr ""
msgid "No selected items..."
msgstr ""
msgid "All items selected..."
msgstr ""
msgid "No matching items..."
msgstr ""
msgid "Deselect All"
msgstr ""
msgid "Select visible"
msgstr ""
msgid "Deselect visible"
msgstr ""
msgid "Filter selected"
msgstr ""
msgid "Filter nonSelected"
msgstr ""
msgid "Simple settings"
msgstr ""
msgid "Advanced settings"
msgstr ""
msgid "Expert settings"
msgstr ""
msgid "Developer mode"
msgstr ""
msgid "Launch troubleshoot center"
msgstr ""
msgid ""
"All the selected objects are on a locked plate.\n"
"Cannot auto-arrange these objects."
@@ -3411,9 +3277,6 @@ msgstr ""
msgid "There is no valid surface for text projection."
msgstr ""
msgid "An unexpected error occurred"
msgstr ""
msgid "Thermal Preconditioning for first layer optimization"
msgstr ""
@@ -5170,7 +5033,10 @@ msgstr ""
msgid "Sequence"
msgstr ""
msgid "Object selection"
msgid "Object Selection"
msgstr ""
msgid "Part Selection"
msgstr ""
msgid "number keys"
@@ -5353,6 +5219,9 @@ msgstr ""
msgid "Paint Toolbar"
msgstr ""
msgid "part selection"
msgstr ""
msgid "Explosion Ratio"
msgstr ""
@@ -5377,7 +5246,7 @@ msgstr ""
msgid "Size:"
msgstr ""
#, boost-format
#, c-format, boost-format
msgid ""
"Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -5585,10 +5454,10 @@ msgstr ""
msgid "Export G-code file"
msgstr ""
msgid "Export plate sliced file"
msgid "Send"
msgstr ""
msgid "Send"
msgid "Export plate sliced file"
msgstr ""
msgid "Export all sliced file"
@@ -7567,7 +7436,7 @@ msgstr ""
msgid "The selected object couldn't be split."
msgstr ""
msgid "Disable Auto-Drop to preserve Z positioning?\n"
msgid "Disable Auto-Drop to preserve z positioning?\n"
msgstr ""
msgid "Object with floating parts was detected"
@@ -8199,6 +8068,9 @@ msgstr ""
msgid "Group user filament presets based on selection"
msgstr ""
msgid "All"
msgstr ""
msgid "By type"
msgstr ""
@@ -8378,16 +8250,6 @@ msgstr ""
msgid "Renders cast shadows on the plate in realistic view."
msgstr ""
msgid "Smooth normals"
msgstr ""
msgid ""
"Applies smooth normals to the realistic view.\n"
"\n"
"Requires manual scene reload to take effect (right-click on 3D view → "
"\"Reload All\")."
msgstr ""
msgid "Anti-aliasing"
msgstr ""
@@ -8549,14 +8411,6 @@ msgstr ""
msgid "Associate files to OrcaSlicer"
msgstr ""
msgid ""
"File associations for the Microsoft Store version are managed by Windows "
"Settings."
msgstr ""
msgid "Open Windows Default Apps Settings"
msgstr ""
msgid "Associate 3MF files to OrcaSlicer"
msgstr ""
@@ -8593,6 +8447,9 @@ msgstr ""
msgid "Developer"
msgstr ""
msgid "Developer mode"
msgstr ""
msgid "Skip AMS blacklist check"
msgstr ""
@@ -9325,9 +9182,6 @@ msgid ""
"operation or verify if the printer is functioning properly."
msgstr ""
msgid "Sending failed, please try again!"
msgstr ""
msgid "Slice ok."
msgstr "Slice complete"
@@ -9586,8 +9440,8 @@ 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\"."
"by right-click the empty position of build plate and choose \"Add Primitive"
"\"->\"Timelapse Wipe Tower\"."
msgstr ""
msgid ""
@@ -9704,9 +9558,6 @@ msgstr ""
msgid "Travel speed"
msgstr ""
msgid "Junction Deviation"
msgstr ""
msgid "Jerk(XY)"
msgstr ""
@@ -10522,6 +10373,9 @@ msgid ""
"list."
msgstr ""
msgid "Advanced settings"
msgstr ""
msgid "Add unused AMS filaments to filaments list."
msgstr ""
@@ -10981,23 +10835,12 @@ msgstr ""
msgid "New version of Orca Slicer"
msgstr ""
msgid "Check on Microsoft Store"
msgstr ""
msgid "Check on GitHub"
msgstr ""
msgid "Open Microsoft Store"
msgid "Check on Github"
msgstr ""
msgid "Skip this Version"
msgstr ""
#, c-format, boost-format
msgid ""
"New version available: %s. Please update OrcaSlicer from the Microsoft Store."
msgstr ""
msgid "Confirm and Update Nozzle"
msgstr ""
@@ -11101,9 +10944,6 @@ msgstr ""
msgid "Auto Fire Extinguishing System"
msgstr ""
msgid "Beta"
msgstr ""
msgid "Update firmware"
msgstr ""
@@ -11661,14 +11501,6 @@ msgstr ""
msgid "Generating skirt & brim"
msgstr ""
msgid ""
"Per-object skirts cannot fit between the objects in By object print "
"sequence.\n"
"\n"
"Move the objects farther apart, reduce brim/skirt size, switch Skirt type to "
"Combined, or switch Print sequence to By layer."
msgstr ""
msgid "Exporting G-code"
msgstr ""
@@ -11795,15 +11627,6 @@ msgstr ""
msgid "Allow controlling BambuLab's printer through 3rd party print hosts."
msgstr ""
msgid "Use 3MF instead of G-code"
msgstr ""
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 ""
msgid "Printer Agent"
msgstr ""
@@ -12175,7 +11998,7 @@ msgid "External bridge density"
msgstr ""
msgid ""
"Controls the density (spacing) of external bridge lines.\n"
"Controls the density (spacing) of external bridge lines. Default is 100%.\n"
"Theoretically, 100% means a solid bridge, but due to the tendency of bridge "
"extrusions to sag, 100% may not be sufficient.\n"
"\n"
@@ -12189,14 +12012,18 @@ msgid ""
" - Pros: Can create a string-like first layer. Faster and with better "
"cooling because there is more space for air to circulate around the extruded "
"bridge.\n"
" - Cons: May lead to sagging and poorer surface finish."
" - Cons: May lead to sagging and poorer surface finish.\n"
"\n"
"Recommended range: Minimum 10% - Maximum 125%."
msgstr ""
msgid "Internal bridge density"
msgstr ""
msgid ""
"Controls the density (spacing) of internal bridge lines.\n"
"Controls the density (spacing) of internal bridge lines. Default is 100%. "
"100% means a solid internal bridge.\n"
"\n"
"Internal bridges act as intermediate support between sparse infill and top "
"solid infill and can strongly affect top surface quality.\n"
"\n"
@@ -12231,9 +12058,11 @@ msgid ""
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
#, c-format, boost-format
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the "
"nozzle diameter.\n"
"Bridge line width is expressed either as an absolute value or as a "
"percentage of the active nozzle diameter (percentages are computed from the "
"nozzle diameter).\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
@@ -13778,6 +13607,7 @@ msgstr ""
msgid "Z-buckling bias optimization (experimental)"
msgstr ""
#, c-format, boost-format
msgid ""
"Tightens the gyroid wave along the Z (vertical) axis at low infill density "
"to shorten the effective vertical column length and improve Z-axis "
@@ -13959,8 +13789,8 @@ msgid "mm/s² or %"
msgstr ""
msgid ""
"Acceleration of sparse infill. If the value is expressed as a percentage "
"(e.g. 100%), it will be calculated based on the default acceleration."
"Acceleration of sparse infill. If the value is expressed as a percentage (e."
"g. 100%), it will be calculated based on the default acceleration."
msgstr ""
msgid ""
@@ -14001,6 +13831,9 @@ msgstr ""
msgid "Default jerk."
msgstr ""
msgid "Junction Deviation"
msgstr ""
msgid ""
"Marlin Firmware Junction Deviation (replaces the traditional XY Jerk "
"setting)."
@@ -14082,10 +13915,10 @@ msgstr ""
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer "
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\". \"full_fan_speed_layer\" will be ignored if lower than "
"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
msgid "layer"
@@ -14922,13 +14755,16 @@ msgid ""
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
msgid "°"
msgstr ""
msgid "Don't alternate fill direction"
msgstr ""
msgid "Disable alternating fill direction when using Z contouring."
msgstr ""
msgid "Minimum Z height"
msgid "Minimum z height"
msgstr ""
msgid ""
@@ -15885,8 +15721,8 @@ msgid "Role base wipe speed"
msgstr ""
msgid ""
"The wipe speed is determined by the speed of the current extrusion role. "
"e.g. if a wipe action is executed immediately following an outer wall "
"The wipe speed is determined by the speed of the current extrusion role. e."
"g. if a wipe action is executed immediately following an outer wall "
"extrusion, the speed of the outer wall extrusion will be utilized for the "
"wipe action."
msgstr ""
@@ -16662,8 +16498,8 @@ msgstr ""
msgid ""
"Enable this option for automated chamber temperature control. This option "
"activates the emitting of an M191 command before the "
"\"machine_start_gcode\"\n"
"activates the emitting of an M191 command before the \"machine_start_gcode"
"\"\n"
" 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"
@@ -17491,8 +17327,8 @@ msgid "Debug level"
msgstr ""
msgid ""
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, "
"5:trace\n"
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:"
"trace\n"
msgstr ""
msgid "Log file"
@@ -19131,8 +18967,8 @@ msgid ""
msgstr ""
msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you "
"selected\".\n"
"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 ""
@@ -19215,6 +19051,9 @@ msgstr ""
msgid "Filament Preset Template"
msgstr ""
msgid "Deselect All"
msgstr ""
msgid "Process Preset Template"
msgstr ""
@@ -19657,21 +19496,9 @@ msgstr ""
msgid "Authorizing..."
msgstr ""
msgid "Error. Can't get api token for authorization"
msgstr ""
msgid "Could not parse server response."
msgstr ""
msgid "Error saving session to file"
msgstr ""
msgid "Error session check"
msgstr ""
msgid "Error during file upload"
msgstr ""
#, c-format, boost-format
msgid "Mismatched type of print host: %s"
msgstr ""
@@ -20310,105 +20137,6 @@ msgstr ""
msgid "Flashforge local API requires both serial number and access code."
msgstr ""
msgid "Printer returned an error"
msgstr ""
msgid "Missing system_info in response"
msgstr ""
msgid "Missing printer serial number in response"
msgstr ""
msgid "Error parsing response"
msgstr ""
msgid "ElegooLink not detected"
msgstr ""
msgid "Invalid access code"
msgstr ""
msgid "CC2 device not detected"
msgstr ""
msgid "Connection to ElegooLink is working correctly."
msgstr ""
msgid "Could not connect to ElegooLink"
msgstr ""
#, boost-format
msgid "Error code: %1%"
msgstr ""
msgid "Upload failed"
msgstr ""
msgid ""
"The file has been transferred, but some unknown errors occurred. Please "
"check the device page for the file and try to start printing again."
msgstr ""
msgid "Failed to open file for upload."
msgstr ""
msgid "Failed to read file chunk for upload."
msgstr ""
msgid "CC2 upload failed"
msgstr ""
msgid "The file is empty or could not be read."
msgstr ""
msgid "Failed to calculate file checksum."
msgstr ""
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 ""
msgid "The file is lost, please check and try again."
msgstr ""
msgid "The file is corrupted, please check and try again."
msgstr ""
msgid "Transmission abnormality, please check and try again."
msgstr ""
msgid "The file does not match the printer, please check and try again."
msgstr ""
msgid "Start print timeout"
msgstr ""
msgid "Start print failed"
msgstr ""
msgid "Connected to CrealityPrint successfully!"
msgstr ""
msgid "Could not connect to CrealityPrint"
msgstr ""
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 ""
msgid "The Hostname/IP/URL could not be parsed, please check it and try again."
msgstr ""
msgid ""
"File/data transfer interrupted. Please check the printer and network, then "
"try it again."
msgstr ""
msgid "The provided state is not correct."
msgstr ""
@@ -20459,12 +20187,6 @@ msgstr ""
msgid "Please select single object."
msgstr ""
msgid "Entering Brim Ears"
msgstr ""
msgid "Leaving Brim Ears"
msgstr ""
msgid "Zoom Out"
msgstr ""
@@ -20474,9 +20196,6 @@ msgstr ""
msgid "Load skipping objects information failed. Please try again."
msgstr ""
msgid "Failed to create the temporary folder."
msgstr ""
#, c-format, boost-format
msgid "/%d Selected"
msgstr ""
@@ -20622,100 +20341,6 @@ msgstr ""
msgid "Calculating, please wait..."
msgstr ""
msgid "PresetBundle"
msgstr ""
msgid "Bundle folder does not exist."
msgstr ""
msgid "Failed to open folder."
msgstr ""
msgid "Delete selected bundle from folder and all presets loaded from it?"
msgstr ""
msgid "Delete Bundle"
msgstr ""
msgid "Failed to remove bundle."
msgstr ""
msgid "Remove Bundle"
msgstr ""
msgid "Unsubscribe bundle?"
msgstr ""
msgid "UnsubscribeBundle"
msgstr ""
msgid "Failed to unsubscribe bundle."
msgstr ""
msgid "Unsubscribe Bundle"
msgstr ""
msgid "ExportPresetBundle"
msgstr ""
msgid "Save preset bundle"
msgstr ""
msgid ""
"Performing desktop integration failed - boost::filesystem::canonical did not "
"return appimage path."
msgstr ""
msgid "Performing desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing desktop integration failed because the application directory was "
"not found."
msgstr ""
msgid ""
"Performing desktop integration failed - could not create Gcodeviewer desktop "
"file. OrcaSlicer desktop file was probably created successfully."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - "
"boost::filesystem::canonical did not return appimage path."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing downloader desktop integration failed because the application "
"directory was not found."
msgstr ""
msgid "Desktop Integration"
msgstr ""
msgid ""
"Desktop Integration sets this binary to be searchable by the system.\n"
"\n"
"Press \"Perform\" to proceed."
msgstr ""
msgid "The download has failed"
msgstr ""
#. TRN %1% = file path
#, boost-format
msgid "Can't create file at %1%"
msgstr ""
msgid "Archive preview"
msgstr ""
msgid "Open File"
msgstr ""
msgid ""
"The filament may not be compatible with the current machine settings. "
"Generic filament presets will be used."
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+77 -473
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-26 11:35+0800\n"
"POT-Creation-Date: 2026-06-08 00:18+0800\n"
"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -194,15 +194,6 @@ msgstr "Kész"
msgid "Support Generated"
msgstr "Támasz legenerálva"
msgid "Entering Paint-on supports"
msgstr ""
msgid "Leaving Paint-on supports"
msgstr ""
msgid "Paint-on supports editing"
msgstr ""
msgid "Gizmo-Place on Face"
msgstr "Gizmo-Felület Tárgyasztalra Illesztése"
@@ -290,15 +281,6 @@ msgstr "A következővel festve: %1% filament"
msgid "To:"
msgstr "Ide:"
msgid "Entering color painting"
msgstr ""
msgid "Leaving color painting"
msgstr ""
msgid "Color painting editing"
msgstr ""
msgid "Paint-on fuzzy skin"
msgstr "Festett bolyhos felület"
@@ -320,15 +302,6 @@ msgstr ""
msgid "Enable painted fuzzy skin for this object"
msgstr "Festett bolyhos felület engedélyezése ennél az objektumnál"
msgid "Entering Paint-on fuzzy skin"
msgstr ""
msgid "Leaving Paint-on fuzzy skin"
msgstr ""
msgid "Paint-on fuzzy skin editing"
msgstr ""
msgid "Move"
msgstr "Mozgatás"
@@ -366,7 +339,7 @@ msgid "mm"
msgstr "mm"
msgid "Part selection"
msgstr "Alkatrész kijelölés"
msgstr "Rész kijelölése"
msgid "Fixed step drag"
msgstr "Rögzített lépésközű húzás"
@@ -718,15 +691,6 @@ msgstr "Vágás vonallal"
msgid "Delete connector"
msgstr "Csatlakozó törlése"
msgid "Entering Cut gizmo"
msgstr ""
msgid "Leaving Cut gizmo"
msgstr ""
msgid "Cut gizmo editing"
msgstr ""
msgid "Mesh name"
msgstr "Háló neve"
@@ -1602,12 +1566,6 @@ msgstr "Párhuzamos távolság:"
msgid "Flip by Face 2"
msgstr "Tükrözés a 2. felület szerint"
msgid "Entering Measure gizmo"
msgstr ""
msgid "Leaving Measure gizmo"
msgstr ""
msgid "Assemble"
msgstr "Összeállítás"
@@ -1635,20 +1593,17 @@ msgid "Warning: please select Point's or Circle's feature."
msgstr "Figyelmeztetés: válaszd a pont vagy kör jellemzőt."
msgid ""
"It is recommended to assemble objects first,\n"
"because they are restricted to the bed \n"
"It is recommended to assemble the objects first,\n"
"because the objects is restriced to bed \n"
"and only parts can be lifted."
msgstr ""
"Ajánlott először összeállítani az objektumokat,\n"
"mert az objektumok a tárgyasztalhoz vannak rögzítve\n"
"és csak az alkatrészek emelhetők fel."
msgid "Face and face assembly"
msgstr "Felület-felület összeállítás"
msgid "Entering Assembly gizmo"
msgstr ""
msgid "Leaving Assembly gizmo"
msgstr ""
msgid "Ctrl+"
msgstr "Ctrl+"
@@ -1710,8 +1665,8 @@ msgstr "AMF fájlok"
msgid "3MF files"
msgstr "3MF fájlok"
msgid "G-code 3MF files"
msgstr "G-code 3MF fájlok"
msgid "Gcode 3MF files"
msgstr "Gcode 3MF fájlok"
msgid "G-code files"
msgstr "G-code fájlok"
@@ -1770,36 +1725,6 @@ msgstr "Az OrcaSlicer kezeletlen kivételt kapott: %1%"
msgid "Untitled"
msgstr "Névtelen"
msgid ""
"Since version 2.4.0, OrcaSlicer syncs user profiles through Orca Cloud "
"instead of Bambu Cloud.\n"
"\n"
"To migrate your existing profiles, log in to Orca Cloud and they will be "
"transferred automatically. To learn more about how OrcaSlicer stores and "
"syncs your profiles, or to migrate your presets manually, check out our "
"wiki.\n"
"\n"
"If you did not use Bambu Cloud to sync profiles, this change does not affect "
"you and you can safely ignore this message."
msgstr ""
"A 2.4.0-s verziótól kezdve az OrcaSlicer a felhasználói profilokat a Bambu "
"Cloud helyett az Orca Cloudon keresztül szinkronizálja.\n"
"\n"
"Meglévő profiljai átviteléhez jelentkezzen be az Orca Cloudba, és azok "
"automatikusan átkerülnek. Ha többet szeretne megtudni arról, hogyan tárolja "
"és szinkronizálja az OrcaSlicer a profiljait, vagy ha kézzel szeretné "
"átvinni a beállításait, tekintse meg a wikinket.\n"
"\n"
"Ha nem használta a Bambu Cloudot a profilok szinkronizálásához, ez a "
"változás nem érinti Önt, és nyugodtan figyelmen kívül hagyhatja ezt az "
"üzenetet."
msgid "Profile syncing change"
msgstr ""
msgid "Learn more"
msgstr ""
msgid "Reloading network plug-in..."
msgstr "Hálózati bővítmény újratöltése..."
@@ -1831,14 +1756,6 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is "
"installed.\n"
"Please install it manually from https://developer.microsoft.com/microsoft-"
"edge/webview2/ and restart Orca Slicer."
msgstr ""
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
msgstr "Az erőforrások elérési útja nem létezik vagy nem könyvtár: %s"
@@ -1969,20 +1886,6 @@ msgid ""
"preset."
msgstr ""
msgid ""
"Cloud sync conflict: 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 ""
msgid ""
"Cloud sync conflict: there was an unexpected or unidentified preset "
"conflict.\n"
"Pull downloads the cloud copy. Force push overwrites it with your local "
"preset."
msgstr ""
msgid ""
"Force push will overwrite the cloud copy with your local preset changes.\n"
"Do you want to continue?"
@@ -3288,52 +3191,6 @@ msgstr "A maximális hőmérséklet nem haladhatja meg ezt: "
msgid "The minmum temperature should not be less than "
msgstr "A minimális hőmérséklet nem lehet kevesebb ennél: "
msgid "Type to filter..."
msgstr ""
msgid "All"
msgstr "Összes"
msgid "No selected items..."
msgstr ""
msgid "All items selected..."
msgstr ""
msgid "No matching items..."
msgstr ""
msgid "Deselect All"
msgstr "Kijelölés megszüntetése"
msgid "Select visible"
msgstr ""
msgid "Deselect visible"
msgstr ""
msgid "Filter selected"
msgstr ""
msgid "Filter nonSelected"
msgstr ""
msgid "Simple settings"
msgstr ""
msgid "Advanced settings"
msgstr "Előrehaladott beállítások"
msgid "Expert settings"
msgstr ""
#, fuzzy
msgid "Developer mode"
msgstr "Fejlesztői mód"
msgid "Launch troubleshoot center"
msgstr ""
msgid ""
"All the selected objects are on a locked plate.\n"
"Cannot auto-arrange these objects."
@@ -3615,9 +3472,6 @@ msgstr "A betűtípus nem tartalmaz alakzatot a megadott szöveghez."
msgid "There is no valid surface for text projection."
msgstr "Nincs érvényes felület a szöveg vetítéséhez."
msgid "An unexpected error occurred"
msgstr ""
msgid "Thermal Preconditioning for first layer optimization"
msgstr "Hőelőkészítés az első réteg optimalizálásához"
@@ -5565,9 +5419,12 @@ msgstr "Szerkesztési terület növelése/csökkentése"
msgid "Sequence"
msgstr "Sorrend"
msgid "Object selection"
msgid "Object Selection"
msgstr "Objektum kijelölés"
msgid "Part Selection"
msgstr "Alkatrész kijelölés"
msgid "number keys"
msgstr "számbillentyűk"
@@ -5758,6 +5615,9 @@ msgstr "Címkék"
msgid "Paint Toolbar"
msgstr "Festés eszköztár"
msgid "part selection"
msgstr "alkatrész kijelölés"
msgid "Explosion Ratio"
msgstr "Robbantási arány"
@@ -5782,7 +5642,7 @@ msgstr "Térfogat:"
msgid "Size:"
msgstr "Méret:"
#, boost-format
#, c-format, boost-format
msgid ""
"Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -6014,12 +5874,12 @@ msgstr "Nyomtatótálca"
msgid "Export G-code file"
msgstr "G-kód fájl exportálása"
msgid "Export plate sliced file"
msgstr "Szeletelt tálca exportálása"
msgid "Send"
msgstr "Küldés"
msgid "Export plate sliced file"
msgstr "Szeletelt tálca exportálása"
msgid "Export all sliced file"
msgstr "Minden szeletelt fájl exportálása"
@@ -8145,8 +8005,8 @@ msgstr ""
msgid "The selected object couldn't be split."
msgstr "A kijelölt objektumot nem lehet feldarabolni."
msgid "Disable Auto-Drop to preserve Z positioning?\n"
msgstr "Letiltja az Auto-Drop funkciót a Z pozicionálás megőrzéséhez?\n"
msgid "Disable Auto-Drop to preserve z positioning?\n"
msgstr "Letiltja az Auto-Drop funkciót a z pozicionálás megőrzéséhez?\n"
msgid "Object with floating parts was detected"
msgstr "Lebegő részeket tartalmazó tárgyat észleltünk"
@@ -8835,6 +8695,9 @@ msgstr "Felhasználói filamentbeállítások csoportosítása"
msgid "Group user filament presets based on selection"
msgstr "Felhasználói filamentbeállítások csoportosítása kiválasztás alapján"
msgid "All"
msgstr "Összes"
msgid "By type"
msgstr "Típus szerint"
@@ -9041,16 +8904,6 @@ msgstr ""
msgid "Renders cast shadows on the plate in realistic view."
msgstr ""
msgid "Smooth normals"
msgstr ""
msgid ""
"Applies smooth normals to the realistic view.\n"
"\n"
"Requires manual scene reload to take effect (right-click on 3D view → "
"\"Reload All\")."
msgstr ""
msgid "Anti-aliasing"
msgstr "Élsimítás"
@@ -9242,14 +9095,6 @@ msgstr "Hálózati bővítmény letöltése"
msgid "Associate files to OrcaSlicer"
msgstr "Fájlok társítása a OrcaSlicerhoz"
msgid ""
"File associations for the Microsoft Store version are managed by Windows "
"Settings."
msgstr ""
msgid "Open Windows Default Apps Settings"
msgstr ""
#, fuzzy
msgid "Associate 3MF files to OrcaSlicer"
msgstr ".3mf fájlok társítása a OrcaSlicerhoz"
@@ -9293,6 +9138,10 @@ msgstr "Webhivatkozások társítása OrcaSlicerhez"
msgid "Developer"
msgstr "Fejlesztő"
#, fuzzy
msgid "Developer mode"
msgstr "Fejlesztői mód"
msgid "Skip AMS blacklist check"
msgstr "AMS tiltólista ellenőrzés kihagyása"
@@ -10124,9 +9973,6 @@ msgstr ""
"Fájlfeltöltés időtúllépés. Ellenőrizd, hogy a firmware verzió támogatja-e "
"ezt a műveletet, és hogy a nyomtató megfelelően működik-e."
msgid "Sending failed, please try again!"
msgstr ""
msgid "Slice ok."
msgstr "Szeletelés kész."
@@ -10454,8 +10300,8 @@ 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\"."
"by right-click the empty position of build plate and choose \"Add Primitive"
"\"->\"Timelapse Wipe Tower\"."
msgstr ""
"Ha a nyomtatófej nélküli időfelvétel engedélyezve van, javasoljuk, hogy "
"helyezz el a tálcán egy \"Időfelvétel törlőtornyot\". Ehhez kattints jobb "
@@ -10584,9 +10430,6 @@ msgstr "Sebesség beállítása a külső és belső hidakhoz"
msgid "Travel speed"
msgstr "Mozgás sebessége"
msgid "Junction Deviation"
msgstr "Csomóponti eltérés"
msgid "Jerk(XY)"
msgstr "Jerk(XY)"
@@ -11496,6 +11339,9 @@ msgstr ""
"lecseréli. A nem használt nyomtató-filamentek automatikusan a lista végére "
"kerülnek."
msgid "Advanced settings"
msgstr "Előrehaladott beállítások"
msgid "Add unused AMS filaments to filaments list."
msgstr "A nem használt AMS filamentek hozzáadása a filamentlistához."
@@ -12008,23 +11854,12 @@ msgstr "Új hálózati bővítmény (%s) érhető el. Szeretnéd telepíteni?"
msgid "New version of Orca Slicer"
msgstr "A Orca Slicer új verziója"
msgid "Check on Microsoft Store"
msgstr ""
msgid "Check on GitHub"
msgid "Check on Github"
msgstr "Ellenőrizd a GitHub-on"
msgid "Open Microsoft Store"
msgstr ""
msgid "Skip this Version"
msgstr "Verzió kihagyása"
#, c-format, boost-format
msgid ""
"New version available: %s. Please update OrcaSlicer from the Microsoft Store."
msgstr ""
msgid "Confirm and Update Nozzle"
msgstr "Fúvóka lecserélésének megerősítése"
@@ -12141,9 +11976,6 @@ msgstr "Vágómodul"
msgid "Auto Fire Extinguishing System"
msgstr "Automatikus tűzoltó rendszer"
msgid "Beta"
msgstr ""
msgid "Update firmware"
msgstr "Firmware frissítése"
@@ -12824,14 +12656,6 @@ msgstr ""
msgid "Generating skirt & brim"
msgstr "Szoknya & perem generálása"
msgid ""
"Per-object skirts cannot fit between the objects in By object print "
"sequence.\n"
"\n"
"Move the objects farther apart, reduce brim/skirt size, switch Skirt type to "
"Combined, or switch Print sequence to By layer."
msgstr ""
msgid "Exporting G-code"
msgstr "G-kód exportálása"
@@ -12972,15 +12796,6 @@ msgstr ""
"Lehetővé teszi a BambuLab nyomtatók vezérlését külső nyomtatási gazdagépeken "
"keresztül."
msgid "Use 3MF instead of G-code"
msgstr ""
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 ""
msgid "Printer Agent"
msgstr "Nyomtatóügynök"
@@ -13419,7 +13234,7 @@ msgid "External bridge density"
msgstr "Külső híd sűrűsége"
msgid ""
"Controls the density (spacing) of external bridge lines.\n"
"Controls the density (spacing) of external bridge lines. Default is 100%.\n"
"Theoretically, 100% means a solid bridge, but due to the tendency of bridge "
"extrusions to sag, 100% may not be sufficient.\n"
"\n"
@@ -13433,14 +13248,18 @@ msgid ""
" - Pros: Can create a string-like first layer. Faster and with better "
"cooling because there is more space for air to circulate around the extruded "
"bridge.\n"
" - Cons: May lead to sagging and poorer surface finish."
" - Cons: May lead to sagging and poorer surface finish.\n"
"\n"
"Recommended range: Minimum 10% - Maximum 125%."
msgstr ""
msgid "Internal bridge density"
msgstr "Belső híd sűrűsége"
msgid ""
"Controls the density (spacing) of internal bridge lines.\n"
"Controls the density (spacing) of internal bridge lines. Default is 100%. "
"100% means a solid internal bridge.\n"
"\n"
"Internal bridges act as intermediate support between sparse infill and top "
"solid infill and can strongly affect top surface quality.\n"
"\n"
@@ -13475,9 +13294,11 @@ msgid ""
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
#, c-format, boost-format
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the "
"nozzle diameter.\n"
"Bridge line width is expressed either as an absolute value or as a "
"percentage of the active nozzle diameter (percentages are computed from the "
"nozzle diameter).\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
@@ -15464,7 +15285,7 @@ msgstr ""
msgid "Z-buckling bias optimization (experimental)"
msgstr "Z-kihajlási torzítás optimalizálása (kísérleti)"
#, fuzzy
#, fuzzy, c-format, boost-format
msgid ""
"Tightens the gyroid wave along the Z (vertical) axis at low infill density "
"to shorten the effective vertical column length and improve Z-axis "
@@ -15681,8 +15502,8 @@ msgid "mm/s² or %"
msgstr "mm/s² vagy %"
msgid ""
"Acceleration of sparse infill. If the value is expressed as a percentage "
"(e.g. 100%), it will be calculated based on the default acceleration."
"Acceleration of sparse infill. If the value is expressed as a percentage (e."
"g. 100%), it will be calculated based on the default acceleration."
msgstr ""
"Gyorsulás a ritkás kitöltéseknél. Ha az érték százalékban van megadva (pl. "
"100%), akkor az alapértelmezett gyorsulás alapján kerül kiszámításra."
@@ -15732,6 +15553,9 @@ msgstr ""
msgid "Default jerk."
msgstr "Alapértelmezett jerk."
msgid "Junction Deviation"
msgstr "Csomóponti eltérés"
msgid ""
"Marlin Firmware Junction Deviation (replaces the traditional XY Jerk "
"setting)."
@@ -15819,10 +15643,10 @@ msgstr "Teljes ventilátor fordulatszám ennél a rétegnél"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer "
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\". \"full_fan_speed_layer\" will be ignored if lower than "
"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"A ventilátor fordulatszáma lineárisan nő nulláról a "
"\"close_fan_the_first_x_layers\" rétegtől a maximális értékig a "
@@ -16898,14 +16722,17 @@ msgstr ""
"Befolyásolja az ennél a szögnél (foknál) kisebb lejtésű kerületeket.\n"
"Az ésszerű érték 35. A letiltáshoz állítsd 0-ra."
msgid "°"
msgstr "°"
msgid "Don't alternate fill direction"
msgstr "Ne váltakozzon a töltési irány"
msgid "Disable alternating fill direction when using Z contouring."
msgstr "A váltakozó kitöltési irány letiltása Z kontúrozás használatakor."
msgid "Minimum Z height"
msgstr "Minimális Z magasság"
msgid "Minimum z height"
msgstr "Minimális z magasság"
msgid ""
"Minimum Z-layer height.\n"
@@ -18077,8 +17904,8 @@ msgid "Role base wipe speed"
msgstr "Szerepalapú törlési sebesség"
msgid ""
"The wipe speed is determined by the speed of the current extrusion role. "
"e.g. if a wipe action is executed immediately following an outer wall "
"The wipe speed is determined by the speed of the current extrusion role. e."
"g. if a wipe action is executed immediately following an outer wall "
"extrusion, the speed of the outer wall extrusion will be utilized for the "
"wipe action."
msgstr ""
@@ -19042,8 +18869,8 @@ msgstr "Hőmérséklet-szabályozás aktiválása"
msgid ""
"Enable this option for automated chamber temperature control. This option "
"activates the emitting of an M191 command before the "
"\"machine_start_gcode\"\n"
"activates the emitting of an M191 command before the \"machine_start_gcode"
"\"\n"
" 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"
@@ -20073,11 +19900,11 @@ msgid "Debug level"
msgstr "Hibakeresés szintje"
msgid ""
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, "
"5:trace\n"
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:"
"trace\n"
msgstr ""
"A hibakeresési naplózási szint beállítása. 0:fatal, 1:error, 2:warning, "
"3:info, 4:debug, 5:trace\n"
"A hibakeresési naplózási szint beállítása. 0:fatal, 1:error, 2:warning, 3:"
"info, 4:debug, 5:trace\n"
msgid "Log file"
msgstr ""
@@ -21937,8 +21764,8 @@ msgstr ""
"Szeretnéd felülírni?"
msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you "
"selected\".\n"
"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 ""
"A beállításokat a következő formára nevezzük át: \"Gyártó Típus Sorozat @a "
@@ -22028,6 +21855,9 @@ msgstr "Nyomtatóbeállítás"
msgid "Filament Preset Template"
msgstr "Filamentbeállítás sablon"
msgid "Deselect All"
msgstr "Kijelölés megszüntetése"
msgid "Process Preset Template"
msgstr "Folyamatbeállítás sablon"
@@ -22539,21 +22369,9 @@ msgstr ""
msgid "Authorizing..."
msgstr ""
msgid "Error. Can't get api token for authorization"
msgstr ""
msgid "Could not parse server response."
msgstr ""
msgid "Error saving session to file"
msgstr ""
msgid "Error session check"
msgstr ""
msgid "Error during file upload"
msgstr ""
#, c-format, boost-format
msgid "Mismatched type of print host: %s"
msgstr "A nyomtatóállomás típusa nem egyezik: %s"
@@ -23370,105 +23188,6 @@ msgstr "Nem sikerült soros kapcsolaton keresztül csatlakozni a Flashforge-hoz"
msgid "Flashforge local API requires both serial number and access code."
msgstr ""
msgid "Printer returned an error"
msgstr ""
msgid "Missing system_info in response"
msgstr ""
msgid "Missing printer serial number in response"
msgstr ""
msgid "Error parsing response"
msgstr ""
msgid "ElegooLink not detected"
msgstr ""
msgid "Invalid access code"
msgstr ""
msgid "CC2 device not detected"
msgstr ""
msgid "Connection to ElegooLink is working correctly."
msgstr ""
msgid "Could not connect to ElegooLink"
msgstr ""
#, boost-format
msgid "Error code: %1%"
msgstr ""
msgid "Upload failed"
msgstr ""
msgid ""
"The file has been transferred, but some unknown errors occurred. Please "
"check the device page for the file and try to start printing again."
msgstr ""
msgid "Failed to open file for upload."
msgstr ""
msgid "Failed to read file chunk for upload."
msgstr ""
msgid "CC2 upload failed"
msgstr ""
msgid "The file is empty or could not be read."
msgstr ""
msgid "Failed to calculate file checksum."
msgstr ""
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 ""
msgid "The file is lost, please check and try again."
msgstr ""
msgid "The file is corrupted, please check and try again."
msgstr ""
msgid "Transmission abnormality, please check and try again."
msgstr ""
msgid "The file does not match the printer, please check and try again."
msgstr ""
msgid "Start print timeout"
msgstr ""
msgid "Start print failed"
msgstr ""
msgid "Connected to CrealityPrint successfully!"
msgstr ""
msgid "Could not connect to CrealityPrint"
msgstr ""
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 ""
msgid "The Hostname/IP/URL could not be parsed, please check it and try again."
msgstr ""
msgid ""
"File/data transfer interrupted. Please check the printer and network, then "
"try it again."
msgstr ""
msgid "The provided state is not correct."
msgstr "A megadott állapot nem megfelelő."
@@ -23522,12 +23241,6 @@ msgstr "Karimás Fülek"
msgid "Please select single object."
msgstr "Válassz ki egyetlen objektumot."
msgid "Entering Brim Ears"
msgstr ""
msgid "Leaving Brim Ears"
msgstr ""
msgid "Zoom Out"
msgstr "Kicsinyítés"
@@ -23537,9 +23250,6 @@ msgstr "Nagyítás"
msgid "Load skipping objects information failed. Please try again."
msgstr "A kihagyott objektumok adatainak betöltése sikertelen. Próbáld újra."
msgid "Failed to create the temporary folder."
msgstr ""
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d kiválasztva"
@@ -23692,100 +23402,6 @@ msgstr "Háromszögfelületek száma"
msgid "Calculating, please wait..."
msgstr "Számítás folyamatban, kérlek várj..."
msgid "PresetBundle"
msgstr ""
msgid "Bundle folder does not exist."
msgstr ""
msgid "Failed to open folder."
msgstr ""
msgid "Delete selected bundle from folder and all presets loaded from it?"
msgstr ""
msgid "Delete Bundle"
msgstr ""
msgid "Failed to remove bundle."
msgstr ""
msgid "Remove Bundle"
msgstr ""
msgid "Unsubscribe bundle?"
msgstr ""
msgid "UnsubscribeBundle"
msgstr ""
msgid "Failed to unsubscribe bundle."
msgstr ""
msgid "Unsubscribe Bundle"
msgstr ""
msgid "ExportPresetBundle"
msgstr ""
msgid "Save preset bundle"
msgstr ""
msgid ""
"Performing desktop integration failed - boost::filesystem::canonical did not "
"return appimage path."
msgstr ""
msgid "Performing desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing desktop integration failed because the application directory was "
"not found."
msgstr ""
msgid ""
"Performing desktop integration failed - could not create Gcodeviewer desktop "
"file. OrcaSlicer desktop file was probably created successfully."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - "
"boost::filesystem::canonical did not return appimage path."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing downloader desktop integration failed because the application "
"directory was not found."
msgstr ""
msgid "Desktop Integration"
msgstr ""
msgid ""
"Desktop Integration sets this binary to be searchable by the system.\n"
"\n"
"Press \"Perform\" to proceed."
msgstr ""
msgid "The download has failed"
msgstr ""
#. TRN %1% = file path
#, boost-format
msgid "Can't create file at %1%"
msgstr ""
msgid "Archive preview"
msgstr ""
msgid "Open File"
msgstr ""
msgid ""
"The filament may not be compatible with the current machine settings. "
"Generic filament presets will be used."
@@ -24204,21 +23820,6 @@ msgstr ""
"tárgyasztal hőmérsékletének növelése csökkentheti a kunkorodás "
"valószínűségét?"
#~ msgid ""
#~ "It is recommended to assemble objects first,\n"
#~ "because the objects is restriced to bed \n"
#~ "and only parts can be lifted."
#~ msgstr ""
#~ "Ajánlott először összeállítani az objektumokat,\n"
#~ "mert az objektumok a tárgyasztalhoz vannak rögzítve\n"
#~ "és csak az alkatrészek emelhetők fel."
#~ msgid "part selection"
#~ msgstr "alkatrész kijelölés"
#~ msgid "°"
#~ msgstr "°"
#~ msgid "Loading current beállítás"
#~ msgstr "Jelenlegi beállítás betöltése"
@@ -24610,6 +24211,9 @@ msgstr ""
#~ msgid "Mouse wheel:"
#~ msgstr "Egérgörgő:"
#~ msgid "Object selection"
#~ msgstr "Objektum kijelölés"
#~ msgid "Pass 1"
#~ msgstr "1. menet"
+97 -493
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-26 11:35+0800\n"
"POT-Creation-Date: 2026-06-08 00:18+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -198,15 +198,6 @@ msgstr "Fatto"
msgid "Support Generated"
msgstr "Supporto generato"
msgid "Entering Paint-on supports"
msgstr ""
msgid "Leaving Paint-on supports"
msgstr ""
msgid "Paint-on supports editing"
msgstr ""
msgid "Gizmo-Place on Face"
msgstr "Strumento selezione faccia come base"
@@ -295,15 +286,6 @@ msgstr "Dipinto utilizzando: Filamento %1%"
msgid "To:"
msgstr "A:"
msgid "Entering color painting"
msgstr ""
msgid "Leaving color painting"
msgstr ""
msgid "Color painting editing"
msgstr ""
msgid "Paint-on fuzzy skin"
msgstr "Dipingi superficie ruvida"
@@ -325,15 +307,6 @@ msgstr ""
msgid "Enable painted fuzzy skin for this object"
msgstr "Abilita la superficie ruvida dipinta per questo oggetto"
msgid "Entering Paint-on fuzzy skin"
msgstr ""
msgid "Leaving Paint-on fuzzy skin"
msgstr ""
msgid "Paint-on fuzzy skin editing"
msgstr ""
msgid "Move"
msgstr "Sposta"
@@ -724,15 +697,6 @@ msgstr "Taglia sulla linea"
msgid "Delete connector"
msgstr "Cancella connettore"
msgid "Entering Cut gizmo"
msgstr ""
msgid "Leaving Cut gizmo"
msgstr ""
msgid "Cut gizmo editing"
msgstr ""
msgid "Mesh name"
msgstr "Nome maglia poligonale"
@@ -1625,12 +1589,6 @@ msgstr "Distanza parallela:"
msgid "Flip by Face 2"
msgstr "Capovolgi da Faccia 2"
msgid "Entering Measure gizmo"
msgstr ""
msgid "Leaving Measure gizmo"
msgstr ""
msgid "Assemble"
msgstr "Assembla"
@@ -1657,20 +1615,17 @@ msgid "Warning: please select Point's or Circle's feature."
msgstr "Attenzione: selezionare l'elemento del Punto o del Cerchio."
msgid ""
"It is recommended to assemble objects first,\n"
"because they are restricted to the bed \n"
"It is recommended to assemble the objects first,\n"
"because the objects is restriced to bed \n"
"and only parts can be lifted."
msgstr ""
"Si consiglia di assemblare gli oggetti prima,\n"
"poiché gli oggetti sono vincolati al piano\n"
"e solo le parti possono essere sollevate."
msgid "Face and face assembly"
msgstr "Assemblaggio faccia a faccia"
msgid "Entering Assembly gizmo"
msgstr ""
msgid "Leaving Assembly gizmo"
msgstr ""
msgid "Ctrl+"
msgstr "Ctrl+"
@@ -1734,7 +1689,7 @@ msgstr "File AMF"
msgid "3MF files"
msgstr "File 3MF"
msgid "G-code 3MF files"
msgid "Gcode 3MF files"
msgstr "File G-code 3MF"
msgid "G-code files"
@@ -1794,35 +1749,6 @@ msgstr "OrcaSlicer ha ricevuto un'eccezione non gestita: %1%"
msgid "Untitled"
msgstr "Senza titolo"
msgid ""
"Since version 2.4.0, OrcaSlicer syncs user profiles through Orca Cloud "
"instead of Bambu Cloud.\n"
"\n"
"To migrate your existing profiles, log in to Orca Cloud and they will be "
"transferred automatically. To learn more about how OrcaSlicer stores and "
"syncs your profiles, or to migrate your presets manually, check out our "
"wiki.\n"
"\n"
"If you did not use Bambu Cloud to sync profiles, this change does not affect "
"you and you can safely ignore this message."
msgstr ""
"Dalla versione 2.4.0, OrcaSlicer sincronizza i profili utente tramite Orca "
"Cloud anziché Bambu Cloud.\n"
"\n"
"Per migrare i tuoi profili esistenti, accedi a Orca Cloud e verranno "
"trasferiti automaticamente. Per saperne di più su come OrcaSlicer memorizza "
"e sincronizza i tuoi profili, o per migrare i tuoi profili manualmente, "
"consulta la nostra wiki.\n"
"\n"
"Se non utilizzavi Bambu Cloud per sincronizzare i profili, questa modifica "
"non ti riguarda e puoi ignorare questo messaggio."
msgid "Profile syncing change"
msgstr ""
msgid "Learn more"
msgstr ""
msgid "Reloading network plug-in..."
msgstr "Ricaricamento modulo di rete..."
@@ -1855,14 +1781,6 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is "
"installed.\n"
"Please install it manually from https://developer.microsoft.com/microsoft-"
"edge/webview2/ and restart Orca Slicer."
msgstr ""
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
msgstr "Il percorso delle risorse non esiste o non è una directory: %s"
@@ -1993,20 +1911,6 @@ msgid ""
"preset."
msgstr ""
msgid ""
"Cloud sync conflict: 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 ""
msgid ""
"Cloud sync conflict: there was an unexpected or unidentified preset "
"conflict.\n"
"Pull downloads the cloud copy. Force push overwrites it with your local "
"preset."
msgstr ""
msgid ""
"Force push will overwrite the cloud copy with your local preset changes.\n"
"Do you want to continue?"
@@ -3314,51 +3218,6 @@ msgstr "La temperatura massima non può superare "
msgid "The minmum temperature should not be less than "
msgstr "La temperatura minima non deve essere inferiore a "
msgid "Type to filter..."
msgstr ""
msgid "All"
msgstr "Tutto"
msgid "No selected items..."
msgstr ""
msgid "All items selected..."
msgstr ""
msgid "No matching items..."
msgstr ""
msgid "Deselect All"
msgstr "Deseleziona tutto"
msgid "Select visible"
msgstr ""
msgid "Deselect visible"
msgstr ""
msgid "Filter selected"
msgstr ""
msgid "Filter nonSelected"
msgstr ""
msgid "Simple settings"
msgstr ""
msgid "Advanced settings"
msgstr "Impostazioni avanzate"
msgid "Expert settings"
msgstr ""
msgid "Developer mode"
msgstr "Modalità sviluppatore"
msgid "Launch troubleshoot center"
msgstr ""
msgid ""
"All the selected objects are on a locked plate.\n"
"Cannot auto-arrange these objects."
@@ -3642,9 +3501,6 @@ msgstr "Il carattere non ha alcuna forma per il testo specificato."
msgid "There is no valid surface for text projection."
msgstr "Non esiste una superficie valida per la proiezione del testo."
msgid "An unexpected error occurred"
msgstr ""
msgid "Thermal Preconditioning for first layer optimization"
msgstr "Precondizionamento termico per l'ottimizzazione del primo strato"
@@ -5620,9 +5476,12 @@ msgstr "Aumenta/diminuisci l'area di modifica"
msgid "Sequence"
msgstr "Sequenza"
msgid "Object selection"
msgid "Object Selection"
msgstr "Selezione oggetto"
msgid "Part Selection"
msgstr "Selezione parte"
msgid "number keys"
msgstr "tasti numerici"
@@ -5812,6 +5671,9 @@ msgstr "Etichette"
msgid "Paint Toolbar"
msgstr "Barra strumenti di pittura"
msgid "part selection"
msgstr "selezione parte"
msgid "Explosion Ratio"
msgstr "Rapporto di esplosione"
@@ -5836,7 +5698,7 @@ msgstr "Volume:"
msgid "Size:"
msgstr "Dimensione:"
#, boost-format
#, c-format, boost-format
msgid ""
"Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -6069,12 +5931,12 @@ msgstr "Piatto di stampa"
msgid "Export G-code file"
msgstr "Esporta file G-code"
msgid "Export plate sliced file"
msgstr "Esporta il file del piatto elaborato"
msgid "Send"
msgstr "Invia"
msgid "Export plate sliced file"
msgstr "Esporta il file del piatto elaborato"
msgid "Export all sliced file"
msgstr "Esporta tutti i file elaborati"
@@ -8220,7 +8082,7 @@ msgstr ""
msgid "The selected object couldn't be split."
msgstr "L'oggetto selezionato non può essere diviso."
msgid "Disable Auto-Drop to preserve Z positioning?\n"
msgid "Disable Auto-Drop to preserve z positioning?\n"
msgstr ""
"Disabilitare la funzione di Rilascio automatico per preservare il "
"posizionamento sull'asse Z?\n"
@@ -8917,6 +8779,9 @@ msgstr "Raggruppa profili di filamento utente"
msgid "Group user filament presets based on selection"
msgstr "Raggruppa i profili di filamento utente in base alla selezione"
msgid "All"
msgstr "Tutto"
msgid "By type"
msgstr "Per tipo"
@@ -9128,16 +8993,6 @@ msgstr ""
msgid "Renders cast shadows on the plate in realistic view."
msgstr ""
msgid "Smooth normals"
msgstr ""
msgid ""
"Applies smooth normals to the realistic view.\n"
"\n"
"Requires manual scene reload to take effect (right-click on 3D view → "
"\"Reload All\")."
msgstr ""
msgid "Anti-aliasing"
msgstr ""
@@ -9313,14 +9168,6 @@ msgstr "Scarica modulo di rete"
msgid "Associate files to OrcaSlicer"
msgstr "Associa i file ad OrcaSlicer"
msgid ""
"File associations for the Microsoft Store version are managed by Windows "
"Settings."
msgstr ""
msgid "Open Windows Default Apps Settings"
msgstr ""
msgid "Associate 3MF files to OrcaSlicer"
msgstr "Associa i file 3MF ad OrcaSlicer"
@@ -9359,6 +9206,9 @@ msgstr "Associa i collegamenti web ad OrcaSlicer"
msgid "Developer"
msgstr "Sviluppatore"
msgid "Developer mode"
msgstr "Modalità sviluppatore"
msgid "Skip AMS blacklist check"
msgstr "Salta il controllo della lista nera dell'AMS"
@@ -10196,9 +10046,6 @@ msgstr ""
"Timeout caricamento file. Verificare se la versione del firmware supporta "
"questa operazione o se la stampante funziona correttamente."
msgid "Sending failed, please try again!"
msgstr ""
msgid "Slice ok."
msgstr "Elaborazione completa."
@@ -10531,8 +10378,8 @@ 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\"."
"by right-click the empty position of build plate and choose \"Add Primitive"
"\"->\"Timelapse Wipe Tower\"."
msgstr ""
"Quando si registra un timelapse senza la testina di stampa, si consiglia di "
"aggiungere un \"Timelapse Torre di spurgo\"\n"
@@ -10665,9 +10512,6 @@ msgstr "Imposta la velocità per ponti esterni e interni"
msgid "Travel speed"
msgstr "Velocità di spostamento"
msgid "Junction Deviation"
msgstr "Deviazione di giunzione"
msgid "Jerk(XY)"
msgstr "Scatto(XY)"
@@ -11577,6 +11421,9 @@ msgstr ""
"sui filamenti della stampante. I filamenti della stampante non utilizzati "
"verranno aggiunti automaticamente alla fine della lista."
msgid "Advanced settings"
msgstr "Impostazioni avanzate"
msgid "Add unused AMS filaments to filaments list."
msgstr "Aggiungi filamenti AMS non utilizzati alla lista filamenti."
@@ -12100,23 +11947,12 @@ msgstr "È disponibile un nuovo modulo di rete (%s). Vuoi installarlo?"
msgid "New version of Orca Slicer"
msgstr "Nuova versione di OrcaSlicer"
msgid "Check on Microsoft Store"
msgstr ""
msgid "Check on GitHub"
msgid "Check on Github"
msgstr "Visualizza su GitHub"
msgid "Open Microsoft Store"
msgstr ""
msgid "Skip this Version"
msgstr "Salta questa versione"
#, c-format, boost-format
msgid ""
"New version available: %s. Please update OrcaSlicer from the Microsoft Store."
msgstr ""
msgid "Confirm and Update Nozzle"
msgstr "Conferma e aggiorna l'ugello"
@@ -12235,9 +12071,6 @@ msgstr "Modulo di taglio"
msgid "Auto Fire Extinguishing System"
msgstr "Sistema antincendio automatico"
msgid "Beta"
msgstr ""
msgid "Update firmware"
msgstr "Aggiorna firmware"
@@ -12267,8 +12100,8 @@ msgid ""
msgstr ""
"È stato rilevato un aggiornamento importante che deve essere eseguito prima "
"che la stampa possa continuare. Si desidera aggiornare ora? È possibile "
"effettuare l'aggiornamento anche in un secondo momento da \"Aggiorna "
"firmware\"."
"effettuare l'aggiornamento anche in un secondo momento da \"Aggiorna firmware"
"\"."
msgid ""
"The firmware version is abnormal. Repairing and updating are required before "
@@ -12925,14 +12758,6 @@ msgstr ""
msgid "Generating skirt & brim"
msgstr "Generazione gonna e tesa"
msgid ""
"Per-object skirts cannot fit between the objects in By object print "
"sequence.\n"
"\n"
"Move the objects farther apart, reduce brim/skirt size, switch Skirt type to "
"Combined, or switch Print sequence to By layer."
msgstr ""
msgid "Exporting G-code"
msgstr "Esportazione G-code"
@@ -13078,15 +12903,6 @@ msgstr ""
"Consente il controllo della stampante di BambuLab attraverso host di stampa "
"di terze parti."
msgid "Use 3MF instead of G-code"
msgstr ""
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 ""
msgid "Printer Agent"
msgstr "Agente stampante"
@@ -13543,7 +13359,7 @@ msgid "External bridge density"
msgstr "Densità ponti esterni"
msgid ""
"Controls the density (spacing) of external bridge lines.\n"
"Controls the density (spacing) of external bridge lines. Default is 100%.\n"
"Theoretically, 100% means a solid bridge, but due to the tendency of bridge "
"extrusions to sag, 100% may not be sufficient.\n"
"\n"
@@ -13557,14 +13373,18 @@ msgid ""
" - Pros: Can create a string-like first layer. Faster and with better "
"cooling because there is more space for air to circulate around the extruded "
"bridge.\n"
" - Cons: May lead to sagging and poorer surface finish."
" - Cons: May lead to sagging and poorer surface finish.\n"
"\n"
"Recommended range: Minimum 10% - Maximum 125%."
msgstr ""
msgid "Internal bridge density"
msgstr "Densità ponti interni"
msgid ""
"Controls the density (spacing) of internal bridge lines.\n"
"Controls the density (spacing) of internal bridge lines. Default is 100%. "
"100% means a solid internal bridge.\n"
"\n"
"Internal bridges act as intermediate support between sparse infill and top "
"solid infill and can strongly affect top surface quality.\n"
"\n"
@@ -13599,9 +13419,11 @@ msgid ""
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
#, c-format, boost-format
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the "
"nozzle diameter.\n"
"Bridge line width is expressed either as an absolute value or as a "
"percentage of the active nozzle diameter (percentages are computed from the "
"nozzle diameter).\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
@@ -15362,9 +15184,9 @@ msgid ""
"this movement should be before the filament is retracted again."
msgstr ""
"Se impostato su un valore diverso da zero, il filamento viene spostato verso "
"l'ugello tra i singoli movimenti nei tubi di raffreddamento "
"(\"timbratura\"). Questa opzione configura la durata di questo movimento "
"prima che il filamento venga nuovamente retratto."
"l'ugello tra i singoli movimenti nei tubi di raffreddamento (\"timbratura"
"\"). Questa opzione configura la durata di questo movimento prima che il "
"filamento venga nuovamente retratto."
msgid "Speed of the first cooling move"
msgstr "Velocità del primo movimento di raffreddamento"
@@ -15645,6 +15467,7 @@ msgstr ""
msgid "Z-buckling bias optimization (experimental)"
msgstr ""
#, c-format, boost-format
msgid ""
"Tightens the gyroid wave along the Z (vertical) axis at low infill density "
"to shorten the effective vertical column length and improve Z-axis "
@@ -15856,8 +15679,8 @@ msgid "mm/s² or %"
msgstr "mm/s o %"
msgid ""
"Acceleration of sparse infill. If the value is expressed as a percentage "
"(e.g. 100%), it will be calculated based on the default acceleration."
"Acceleration of sparse infill. If the value is expressed as a percentage (e."
"g. 100%), it will be calculated based on the default acceleration."
msgstr ""
"Accelerazione del riempimento sparso. Se il valore è espresso in percentuale "
"(ad esempio 100%), verrà calcolato in base all'accelerazione predefinita."
@@ -15908,6 +15731,9 @@ msgstr ""
msgid "Default jerk."
msgstr "Jerk predefinito."
msgid "Junction Deviation"
msgstr "Deviazione di giunzione"
msgid ""
"Marlin Firmware Junction Deviation (replaces the traditional XY Jerk "
"setting)."
@@ -15999,17 +15825,17 @@ msgstr "Velocità massima ventola su strato"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer "
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\". \"full_fan_speed_layer\" will be ignored if lower than "
"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"La velocità della ventola aumenterà in modo lineare da zero nello strato "
"\"close_fan_the_first_x_layers\" al massimo nello strato "
"\"full_fan_speed_layer\". Se inferiore a \"close_fan_the_first_x_layers\", "
"\"full_fan_speed_layer\" verrà ignorato. in tal caso la ventola funzionerà "
"alla massima velocità consentita nello strato "
"\"close_fan_the_first_x_layers\" + 1."
"alla massima velocità consentita nello strato \"close_fan_the_first_x_layers"
"\" + 1."
msgid "layer"
msgstr "strato"
@@ -17084,6 +16910,9 @@ msgstr ""
"gradi).\n"
"Il valore consigliato è 35. Impostare a 0 per disabilitare questa funzione."
msgid "°"
msgstr "°"
msgid "Don't alternate fill direction"
msgstr "Non alternare direzione riempimento"
@@ -17092,7 +16921,7 @@ msgstr ""
"Disabilita il riempimento a direzione alternata quando si utilizza l'opzione "
"\"Contornatura Z\"."
msgid "Minimum Z height"
msgid "Minimum z height"
msgstr "Altezza Z minima"
msgid ""
@@ -17564,9 +17393,9 @@ msgid ""
"in which case the fan will run at maximum allowed speed at layer \"For the "
"first\" + 1."
msgstr ""
"La velocità della ventola ausiliaria aumenterà linearmente da \"Per il "
"primo\" fino al valore massimo impostato su \"Velocità massima ventola su "
"strato\".\n"
"La velocità della ventola ausiliaria aumenterà linearmente da \"Per il primo"
"\" fino al valore massimo impostato su \"Velocità massima ventola su strato"
"\".\n"
"Il valore \"Velocità massima ventola su strato\" verrà ignorato se inferiore "
"a \"Per il primo\"; in tal caso, la ventola funzionerà alla velocità massima "
"consentita con il valore \"Per il primo\" + 1."
@@ -18306,8 +18135,8 @@ msgid "Role base wipe speed"
msgstr "Velocità di spurgo basata su ruolo"
msgid ""
"The wipe speed is determined by the speed of the current extrusion role. "
"e.g. if a wipe action is executed immediately following an outer wall "
"The wipe speed is determined by the speed of the current extrusion role. e."
"g. if a wipe action is executed immediately following an outer wall "
"extrusion, the speed of the outer wall extrusion will be utilized for the "
"wipe action."
msgstr ""
@@ -19271,8 +19100,8 @@ msgstr "Attiva controllo della temperatura"
msgid ""
"Enable this option for automated chamber temperature control. This option "
"activates the emitting of an M191 command before the "
"\"machine_start_gcode\"\n"
"activates the emitting of an M191 command before the \"machine_start_gcode"
"\"\n"
" 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"
@@ -20311,11 +20140,11 @@ msgid "Debug level"
msgstr "Livello di debug"
msgid ""
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, "
"5:trace\n"
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:"
"trace\n"
msgstr ""
"Imposta livello di debug. 0:fatale, 1:errore, 2:avviso, 3:info, 4:debug, "
"5:traccia\n"
"Imposta livello di debug. 0:fatale, 1:errore, 2:avviso, 3:info, 4:debug, 5:"
"traccia\n"
msgid "Log file"
msgstr ""
@@ -20882,13 +20711,13 @@ msgstr "Impossibile leggere il file fornito perché è vuoto"
msgid ""
"Unknown file format. Input file must have .stl, .obj, .amf(.xml) extension."
msgstr ""
"Formato file sconosciuto: il file di input deve avere "
"un'estensione .stl, .obj o .amf(.xml)."
"Formato file sconosciuto: il file di input deve avere un'estensione .stl, ."
"obj o .amf(.xml)."
msgid "Unknown file format. Input file must have .3mf or .zip.amf extension."
msgstr ""
"Formato file sconosciuto: il file di input deve avere un'estensione .3mf "
"o .zip.amf."
"Formato file sconosciuto: il file di input deve avere un'estensione .3mf o ."
"zip.amf."
msgid "load_obj: failed to parse"
msgstr "load_obj: impossibile analizzare"
@@ -22219,12 +22048,12 @@ msgstr ""
"Vuoi riscriverlo?"
msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you "
"selected\".\n"
"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 ""
"Rinomineremo i profili come \"Produttore Tipo Seriale @stampante "
"selezionata\".\n"
"Rinomineremo i profili come \"Produttore Tipo Seriale @stampante selezionata"
"\".\n"
"Per aggiungere il profilo per più stampanti, vai alla selezione della "
"stampante"
@@ -22314,6 +22143,9 @@ msgstr "Profilo stampante"
msgid "Filament Preset Template"
msgstr "Modello profilo di filamento"
msgid "Deselect All"
msgstr "Deseleziona tutto"
msgid "Process Preset Template"
msgstr "Modello profilo di processo"
@@ -22830,21 +22662,9 @@ msgstr ""
msgid "Authorizing..."
msgstr ""
msgid "Error. Can't get api token for authorization"
msgstr ""
msgid "Could not parse server response."
msgstr ""
msgid "Error saving session to file"
msgstr ""
msgid "Error session check"
msgstr ""
msgid "Error during file upload"
msgstr ""
#, c-format, boost-format
msgid "Mismatched type of print host: %s"
msgstr "Tipo di host di stampa non corrispondente: %s"
@@ -23666,105 +23486,6 @@ msgstr "Impossibile connettersi a Flashforge tramite seriale"
msgid "Flashforge local API requires both serial number and access code."
msgstr ""
msgid "Printer returned an error"
msgstr ""
msgid "Missing system_info in response"
msgstr ""
msgid "Missing printer serial number in response"
msgstr ""
msgid "Error parsing response"
msgstr ""
msgid "ElegooLink not detected"
msgstr ""
msgid "Invalid access code"
msgstr ""
msgid "CC2 device not detected"
msgstr ""
msgid "Connection to ElegooLink is working correctly."
msgstr ""
msgid "Could not connect to ElegooLink"
msgstr ""
#, boost-format
msgid "Error code: %1%"
msgstr ""
msgid "Upload failed"
msgstr ""
msgid ""
"The file has been transferred, but some unknown errors occurred. Please "
"check the device page for the file and try to start printing again."
msgstr ""
msgid "Failed to open file for upload."
msgstr ""
msgid "Failed to read file chunk for upload."
msgstr ""
msgid "CC2 upload failed"
msgstr ""
msgid "The file is empty or could not be read."
msgstr ""
msgid "Failed to calculate file checksum."
msgstr ""
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 ""
msgid "The file is lost, please check and try again."
msgstr ""
msgid "The file is corrupted, please check and try again."
msgstr ""
msgid "Transmission abnormality, please check and try again."
msgstr ""
msgid "The file does not match the printer, please check and try again."
msgstr ""
msgid "Start print timeout"
msgstr ""
msgid "Start print failed"
msgstr ""
msgid "Connected to CrealityPrint successfully!"
msgstr ""
msgid "Could not connect to CrealityPrint"
msgstr ""
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 ""
msgid "The Hostname/IP/URL could not be parsed, please check it and try again."
msgstr ""
msgid ""
"File/data transfer interrupted. Please check the printer and network, then "
"try it again."
msgstr ""
msgid "The provided state is not correct."
msgstr "Lo stato fornito non è corretto."
@@ -23821,12 +23542,6 @@ msgstr "Tese ad orecchio"
msgid "Please select single object."
msgstr "Seleziona un singolo oggetto."
msgid "Entering Brim Ears"
msgstr ""
msgid "Leaving Brim Ears"
msgstr ""
msgid "Zoom Out"
msgstr "Zoom indietro"
@@ -23836,9 +23551,6 @@ msgstr "Zoom avanti"
msgid "Load skipping objects information failed. Please try again."
msgstr "Caricamento informazioni sugli oggetti da saltare fallito. Riprovare."
msgid "Failed to create the temporary folder."
msgstr ""
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d Selezionati"
@@ -23991,100 +23703,6 @@ msgstr "Numero di facce triangolari"
msgid "Calculating, please wait..."
msgstr "Calcolo in corso, attendere..."
msgid "PresetBundle"
msgstr ""
msgid "Bundle folder does not exist."
msgstr ""
msgid "Failed to open folder."
msgstr ""
msgid "Delete selected bundle from folder and all presets loaded from it?"
msgstr ""
msgid "Delete Bundle"
msgstr ""
msgid "Failed to remove bundle."
msgstr ""
msgid "Remove Bundle"
msgstr ""
msgid "Unsubscribe bundle?"
msgstr ""
msgid "UnsubscribeBundle"
msgstr ""
msgid "Failed to unsubscribe bundle."
msgstr ""
msgid "Unsubscribe Bundle"
msgstr ""
msgid "ExportPresetBundle"
msgstr ""
msgid "Save preset bundle"
msgstr ""
msgid ""
"Performing desktop integration failed - boost::filesystem::canonical did not "
"return appimage path."
msgstr ""
msgid "Performing desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing desktop integration failed because the application directory was "
"not found."
msgstr ""
msgid ""
"Performing desktop integration failed - could not create Gcodeviewer desktop "
"file. OrcaSlicer desktop file was probably created successfully."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - "
"boost::filesystem::canonical did not return appimage path."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing downloader desktop integration failed because the application "
"directory was not found."
msgstr ""
msgid "Desktop Integration"
msgstr ""
msgid ""
"Desktop Integration sets this binary to be searchable by the system.\n"
"\n"
"Press \"Perform\" to proceed."
msgstr ""
msgid "The download has failed"
msgstr ""
#. TRN %1% = file path
#, boost-format
msgid "Can't create file at %1%"
msgstr ""
msgid "Archive preview"
msgstr ""
msgid "Open File"
msgstr ""
msgid ""
"The filament may not be compatible with the current machine settings. "
"Generic filament presets will be used."
@@ -24503,21 +24121,6 @@ msgstr ""
"aumentare in modo appropriato la temperatura del piano riscaldato può "
"ridurre la probabilità di deformazione?"
#~ msgid ""
#~ "It is recommended to assemble objects first,\n"
#~ "because the objects is restriced to bed \n"
#~ "and only parts can be lifted."
#~ msgstr ""
#~ "Si consiglia di assemblare gli oggetti prima,\n"
#~ "poiché gli oggetti sono vincolati al piano\n"
#~ "e solo le parti possono essere sollevate."
#~ msgid "part selection"
#~ msgstr "selezione parte"
#~ msgid "°"
#~ msgstr "°"
#~ msgid ""
#~ "This disables all cloud services e.g. Orca Cloud and Bambu Cloud. This "
#~ "stops the transmission of data to Bambu's cloud services too. Users who "
@@ -24889,6 +24492,9 @@ msgstr ""
#~ msgid "Mouse wheel:"
#~ msgstr "Rotellina del mouse:"
#~ msgid "Object selection"
#~ msgstr "Selezione oggetto"
#~ msgid "Pass 1"
#~ msgstr "Passaggio 1"
@@ -26604,10 +26210,9 @@ msgstr ""
#~ "\n"
#~ "\n"
#~ "Per impostazione predefinita, i piccoli bridge interni vengono filtrati e "
#~ "il riempimento solido interno viene stampato direttamente sul "
#~ "riempimento.Questo metodo funziona bene nella maggior parte dei casi, "
#~ "velocizzando la stampa senza compromettere troppo la qualità della "
#~ "superficie superiore.\n"
#~ "il riempimento solido interno viene stampato direttamente sul riempimento."
#~ "Questo metodo funziona bene nella maggior parte dei casi, velocizzando la "
#~ "stampa senza compromettere troppo la qualità della superficie superiore.\n"
#~ "\n"
#~ "Tuttavia, in modelli fortemente inclinati o curvi, soprattutto se si "
#~ "utilizza una densità di riempimento troppo bassa, potrebbe comportare "
@@ -26821,13 +26426,12 @@ msgstr ""
#~ "nostro wiki.\n"
#~ "\n"
#~ "Di solito la calibrazione non è necessaria. Quando si avvia una stampa a "
#~ "singolo colore/materiale, con l'opzione \"calibrazione dinamica del "
#~ "flusso\" selezionata nel menu di avvio della stampa, la stampante seguirà "
#~ "il vecchio modo, calibrando il filamento prima della stampa; Quando si "
#~ "avvia una stampa multicolore/materiale, la stampante utilizzerà il "
#~ "parametro di compensazione predefinito per il filamento durante ogni "
#~ "cambio di filamento, che avrà un buon risultato nella maggior parte dei "
#~ "casi.\n"
#~ "singolo colore/materiale, con l'opzione \"calibrazione dinamica del flusso"
#~ "\" selezionata nel menu di avvio della stampa, la stampante seguirà il "
#~ "vecchio modo, calibrando il filamento prima della stampa; Quando si avvia "
#~ "una stampa multicolore/materiale, la stampante utilizzerà il parametro di "
#~ "compensazione predefinito per il filamento durante ogni cambio di "
#~ "filamento, che avrà un buon risultato nella maggior parte dei casi.\n"
#~ "\n"
#~ "Si prega di notare che ci sono alcuni casi che renderanno il risultato "
#~ "della calibrazione non affidabile: utilizzo di una piastra di texture per "
+76 -469
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-26 11:35+0800\n"
"POT-Creation-Date: 2026-06-08 00:18+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -196,15 +196,6 @@ msgstr "完了"
msgid "Support Generated"
msgstr "生成されたサポート"
msgid "Entering Paint-on supports"
msgstr ""
msgid "Leaving Paint-on supports"
msgstr ""
msgid "Paint-on supports editing"
msgstr ""
msgid "Gizmo-Place on Face"
msgstr "ギズモ-面に配置"
@@ -291,15 +282,6 @@ msgstr "フィラメント %1%でペイントします"
msgid "To:"
msgstr "先:"
msgid "Entering color painting"
msgstr ""
msgid "Leaving color painting"
msgstr ""
msgid "Color painting editing"
msgstr ""
msgid "Paint-on fuzzy skin"
msgstr "ファジースキンのペイント"
@@ -321,15 +303,6 @@ msgstr ""
msgid "Enable painted fuzzy skin for this object"
msgstr "このオブジェクトのペイントファジースキンを有効にする"
msgid "Entering Paint-on fuzzy skin"
msgstr ""
msgid "Leaving Paint-on fuzzy skin"
msgstr ""
msgid "Paint-on fuzzy skin editing"
msgstr ""
msgid "Move"
msgstr "移動"
@@ -715,15 +688,6 @@ msgstr "ラインでカット"
msgid "Delete connector"
msgstr "コネクター削除"
msgid "Entering Cut gizmo"
msgstr ""
msgid "Leaving Cut gizmo"
msgstr ""
msgid "Cut gizmo editing"
msgstr ""
msgid "Mesh name"
msgstr "メッシュ名"
@@ -1595,12 +1559,6 @@ msgstr "平行距離:"
msgid "Flip by Face 2"
msgstr "面2で反転"
msgid "Entering Measure gizmo"
msgstr ""
msgid "Leaving Measure gizmo"
msgstr ""
msgid "Assemble"
msgstr "組立てる"
@@ -1627,20 +1585,17 @@ msgid "Warning: please select Point's or Circle's feature."
msgstr "警告: 点または円のフィーチャーを選択してください。"
msgid ""
"It is recommended to assemble objects first,\n"
"because they are restricted to the bed \n"
"It is recommended to assemble the objects first,\n"
"because the objects is restriced to bed \n"
"and only parts can be lifted."
msgstr ""
"オブジェクトは先に組み立てることをお勧めします。\n"
"オブジェクトはベッドに固定されており、\n"
"パーツのみ持ち上げることができます。"
msgid "Face and face assembly"
msgstr "面と面の組み立て"
msgid "Entering Assembly gizmo"
msgstr ""
msgid "Leaving Assembly gizmo"
msgstr ""
msgid "Ctrl+"
msgstr "Ctrl+"
@@ -1698,8 +1653,8 @@ msgstr "AMFファイル"
msgid "3MF files"
msgstr "3MFファイル"
msgid "G-code 3MF files"
msgstr "G-code 3MFファイル"
msgid "Gcode 3MF files"
msgstr "Gcode 3MFファイル"
msgid "G-code files"
msgstr "G-codeファイル"
@@ -1758,34 +1713,6 @@ msgstr "OrcaSlicerで未処理の例外が発生しました: %1%"
msgid "Untitled"
msgstr "名称未設定"
msgid ""
"Since version 2.4.0, OrcaSlicer syncs user profiles through Orca Cloud "
"instead of Bambu Cloud.\n"
"\n"
"To migrate your existing profiles, log in to Orca Cloud and they will be "
"transferred automatically. To learn more about how OrcaSlicer stores and "
"syncs your profiles, or to migrate your presets manually, check out our "
"wiki.\n"
"\n"
"If you did not use Bambu Cloud to sync profiles, this change does not affect "
"you and you can safely ignore this message."
msgstr ""
"バージョン 2.4.0 以降、OrcaSlicer はユーザープロファイルを Bambu Cloud ではな"
"く Orca Cloud を通じて同期します。\n"
"\n"
"既存のプロファイルを移行するには、Orca Cloud にログインしてください。自動的に"
"転送されます。OrcaSlicer がプロファイルを保存・同期する仕組みの詳細や、プリ"
"セットを手動で移行する方法については、Wiki をご覧ください。\n"
"\n"
"プロファイルの同期に Bambu Cloud を使用していなかった場合、この変更の影響はあ"
"りません。このメッセージは無視して問題ありません。"
msgid "Profile syncing change"
msgstr ""
msgid "Learn more"
msgstr ""
msgid "Reloading network plug-in..."
msgstr "ネットワークプラグインを再読み込み中..."
@@ -1816,14 +1743,6 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is "
"installed.\n"
"Please install it manually from https://developer.microsoft.com/microsoft-"
"edge/webview2/ and restart Orca Slicer."
msgstr ""
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
msgstr "リソースパスが存在しないかディレクトリではありません: %s"
@@ -1950,20 +1869,6 @@ msgid ""
"preset."
msgstr ""
msgid ""
"Cloud sync conflict: 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 ""
msgid ""
"Cloud sync conflict: there was an unexpected or unidentified preset "
"conflict.\n"
"Pull downloads the cloud copy. Force push overwrites it with your local "
"preset."
msgstr ""
msgid ""
"Force push will overwrite the cloud copy with your local preset changes.\n"
"Do you want to continue?"
@@ -3236,52 +3141,6 @@ msgstr "最高温度は次の値を超えることはできません "
msgid "The minmum temperature should not be less than "
msgstr "最低温度は次の値を下回ることはできません "
msgid "Type to filter..."
msgstr ""
msgid "All"
msgstr "すべて"
msgid "No selected items..."
msgstr ""
msgid "All items selected..."
msgstr ""
msgid "No matching items..."
msgstr ""
msgid "Deselect All"
msgstr "すべて選択解除"
msgid "Select visible"
msgstr ""
msgid "Deselect visible"
msgstr ""
msgid "Filter selected"
msgstr ""
msgid "Filter nonSelected"
msgstr ""
msgid "Simple settings"
msgstr ""
msgid "Advanced settings"
msgstr "詳細設定"
msgid "Expert settings"
msgstr ""
#, fuzzy
msgid "Developer mode"
msgstr "開発者モード"
msgid "Launch troubleshoot center"
msgstr ""
msgid ""
"All the selected objects are on a locked plate.\n"
"Cannot auto-arrange these objects."
@@ -3554,9 +3413,6 @@ msgstr "フォントに指定されたテキストの形状がありません。
msgid "There is no valid surface for text projection."
msgstr "テキスト投影に有効な面がありません。"
msgid "An unexpected error occurred"
msgstr ""
msgid "Thermal Preconditioning for first layer optimization"
msgstr "初期レイヤー最適化のための熱プリコンディショニング"
@@ -5432,7 +5288,10 @@ msgstr "編集領域を拡大/縮小"
msgid "Sequence"
msgstr "順番"
msgid "Object selection"
msgid "Object Selection"
msgstr ""
msgid "Part Selection"
msgstr ""
msgid "number keys"
@@ -5619,6 +5478,9 @@ msgstr "ラベル"
msgid "Paint Toolbar"
msgstr "ペイント ツールバー"
msgid "part selection"
msgstr "パーツ選択"
msgid "Explosion Ratio"
msgstr "分解比率"
@@ -5643,7 +5505,7 @@ msgstr "ボリューム"
msgid "Size:"
msgstr "サイズ:"
#, boost-format
#, c-format, boost-format
msgid ""
"Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -5871,12 +5733,12 @@ msgstr "造形開始"
msgid "Export G-code file"
msgstr "G-codeをエクスポート"
msgid "Export plate sliced file"
msgstr "エクスポート"
msgid "Send"
msgstr "送信"
msgid "Export plate sliced file"
msgstr "エクスポート"
msgid "Export all sliced file"
msgstr "エクスポート (全プレート)"
@@ -7947,7 +7809,7 @@ msgstr ""
msgid "The selected object couldn't be split."
msgstr "選択したオブジェクトを分割できませんでした。"
msgid "Disable Auto-Drop to preserve Z positioning?\n"
msgid "Disable Auto-Drop to preserve z positioning?\n"
msgstr ""
msgid "Object with floating parts was detected"
@@ -8625,6 +8487,9 @@ msgstr "ユーザーフィラメントプリセットをグループ化"
msgid "Group user filament presets based on selection"
msgstr "選択に基づいてユーザーフィラメントプリセットをグループ化"
msgid "All"
msgstr "すべて"
msgid "By type"
msgstr "タイプ別"
@@ -8824,16 +8689,6 @@ msgstr ""
msgid "Renders cast shadows on the plate in realistic view."
msgstr ""
msgid "Smooth normals"
msgstr ""
msgid ""
"Applies smooth normals to the realistic view.\n"
"\n"
"Requires manual scene reload to take effect (right-click on 3D view → "
"\"Reload All\")."
msgstr ""
msgid "Anti-aliasing"
msgstr ""
@@ -9006,14 +8861,6 @@ msgstr "ネットワークプラグインをダウンロード"
msgid "Associate files to OrcaSlicer"
msgstr "ファイルをOrca Slicerに関連付ける"
msgid ""
"File associations for the Microsoft Store version are managed by Windows "
"Settings."
msgstr ""
msgid "Open Windows Default Apps Settings"
msgstr ""
#, fuzzy
msgid "Associate 3MF files to OrcaSlicer"
msgstr ".3mfファイルをOrca Slicerに関連付けます。"
@@ -9051,6 +8898,10 @@ msgstr "ウェブリンクをOrcaSlicerに関連付け"
msgid "Developer"
msgstr "開発者"
#, fuzzy
msgid "Developer mode"
msgstr "開発者モード"
msgid "Skip AMS blacklist check"
msgstr "AMSブラックリストチェックをスキップ"
@@ -9846,9 +9697,6 @@ msgstr ""
"ファイルアップロードがタイムアウトしました。ファームウェアバージョンがこの操"
"作をサポートしているか、プリンターが正常に動作しているか確認してください。"
msgid "Sending failed, please try again!"
msgstr ""
msgid "Slice ok."
msgstr "スライス完了"
@@ -10159,8 +10007,8 @@ 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\"."
"by right-click the empty position of build plate and choose \"Add Primitive"
"\"->\"Timelapse Wipe Tower\"."
msgstr ""
"ヘッド無しのタイムラプスビデオを録画する時に、「タイムラプスプライムタワー」"
"を追加してください。プレートで右クリックして、「プリミティブを追加」→「タイム"
@@ -10287,9 +10135,6 @@ msgstr "外部および内部ブリッジの速度を設定"
msgid "Travel speed"
msgstr "移動速度"
msgid "Junction Deviation"
msgstr "接合偏差"
msgid "Jerk(XY)"
msgstr "ジャーク(XY)"
@@ -11136,6 +10981,9 @@ msgstr ""
"プリンターのフィラメントに基づいてプロジェクトフィラメントリストを順次置き換"
"えます。未使用のプリンターフィラメントはリストの末尾に自動的に追加されます。"
msgid "Advanced settings"
msgstr "詳細設定"
msgid "Add unused AMS filaments to filaments list."
msgstr "未使用のAMSフィラメントをフィラメントリストに追加します。"
@@ -11620,23 +11468,12 @@ msgstr "新しいプラグイン (%s) が発見しました、インストール
msgid "New version of Orca Slicer"
msgstr "新バージョン"
msgid "Check on Microsoft Store"
msgstr ""
msgid "Check on GitHub"
msgstr ""
msgid "Open Microsoft Store"
msgid "Check on Github"
msgstr ""
msgid "Skip this Version"
msgstr "このバージョンをスキップ"
#, c-format, boost-format
msgid ""
"New version available: %s. Please update OrcaSlicer from the Microsoft Store."
msgstr ""
msgid "Confirm and Update Nozzle"
msgstr "確認してノズルを更新"
@@ -11748,9 +11585,6 @@ msgstr "カッティングモジュール"
msgid "Auto Fire Extinguishing System"
msgstr "自動消火システム"
msgid "Beta"
msgstr ""
msgid "Update firmware"
msgstr "ファームウェアを更新"
@@ -12360,14 +12194,6 @@ msgstr ""
msgid "Generating skirt & brim"
msgstr "スカートとブリムを生成"
msgid ""
"Per-object skirts cannot fit between the objects in By object print "
"sequence.\n"
"\n"
"Move the objects farther apart, reduce brim/skirt size, switch Skirt type to "
"Combined, or switch Print sequence to By layer."
msgstr ""
msgid "Exporting G-code"
msgstr "G-codeをエクスポート中"
@@ -12492,15 +12318,6 @@ msgstr ""
"サードパーティの印刷ホストを通じてBambuLabのプリンターを制御することを許可し"
"ます。"
msgid "Use 3MF instead of G-code"
msgstr ""
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 ""
msgid "Printer Agent"
msgstr "プリンターエージェント"
@@ -12862,7 +12679,7 @@ msgid "External bridge density"
msgstr "外部ブリッジ密度"
msgid ""
"Controls the density (spacing) of external bridge lines.\n"
"Controls the density (spacing) of external bridge lines. Default is 100%.\n"
"Theoretically, 100% means a solid bridge, but due to the tendency of bridge "
"extrusions to sag, 100% may not be sufficient.\n"
"\n"
@@ -12876,14 +12693,18 @@ msgid ""
" - Pros: Can create a string-like first layer. Faster and with better "
"cooling because there is more space for air to circulate around the extruded "
"bridge.\n"
" - Cons: May lead to sagging and poorer surface finish."
" - Cons: May lead to sagging and poorer surface finish.\n"
"\n"
"Recommended range: Minimum 10% - Maximum 125%."
msgstr ""
msgid "Internal bridge density"
msgstr "内部ブリッジ密度"
msgid ""
"Controls the density (spacing) of internal bridge lines.\n"
"Controls the density (spacing) of internal bridge lines. Default is 100%. "
"100% means a solid internal bridge.\n"
"\n"
"Internal bridges act as intermediate support between sparse infill and top "
"solid infill and can strongly affect top surface quality.\n"
"\n"
@@ -12918,9 +12739,11 @@ msgid ""
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
#, c-format, boost-format
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the "
"nozzle diameter.\n"
"Bridge line width is expressed either as an absolute value or as a "
"percentage of the active nozzle diameter (percentages are computed from the "
"nozzle diameter).\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
@@ -14499,6 +14322,7 @@ msgstr "充填パターンが対応している場合は、複数のラインを
msgid "Z-buckling bias optimization (experimental)"
msgstr ""
#, c-format, boost-format
msgid ""
"Tightens the gyroid wave along the Z (vertical) axis at low infill density "
"to shorten the effective vertical column length and improve Z-axis "
@@ -14680,8 +14504,8 @@ msgid "mm/s² or %"
msgstr "mm/s² 或は %"
msgid ""
"Acceleration of sparse infill. If the value is expressed as a percentage "
"(e.g. 100%), it will be calculated based on the default acceleration."
"Acceleration of sparse infill. If the value is expressed as a percentage (e."
"g. 100%), it will be calculated based on the default acceleration."
msgstr ""
"スパースインフィルの加速度です。値がパーセンテージ(例:100%)で指定された場"
"合、デフォルトの加速度を基に計算されます。"
@@ -14723,6 +14547,9 @@ msgstr ""
msgid "Default jerk."
msgstr "デフォルトジャーク。"
msgid "Junction Deviation"
msgstr "接合偏差"
msgid ""
"Marlin Firmware Junction Deviation (replaces the traditional XY Jerk "
"setting)."
@@ -14800,10 +14627,10 @@ msgstr "最大回転速度の積層"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer "
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\". \"full_fan_speed_layer\" will be ignored if lower than "
"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
msgid "layer"
@@ -15522,8 +15349,8 @@ msgid ""
"\"mmu_segmented_region_interlocking_depth\" is bigger than "
"\"mmu_segmented_region_max_width\". Zero disables this feature."
msgstr ""
"セグメント化された領域の連動深さ。mmu_segmented_region_max_width \"が0か、"
"\"mmu_segmented_region_interlocking_depth \"が "
"セグメント化された領域の連動深さ。mmu_segmented_region_max_width \"が0"
"か、\"mmu_segmented_region_interlocking_depth \"が "
"\"mmu_segmented_region_max_width \"より大きい場合は無視される。ゼロはこの機能"
"を無効にする。"
@@ -15659,13 +15486,16 @@ msgid ""
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
msgid "°"
msgstr "°"
msgid "Don't alternate fill direction"
msgstr ""
msgid "Disable alternating fill direction when using Z contouring."
msgstr ""
msgid "Minimum Z height"
msgid "Minimum z height"
msgstr ""
msgid ""
@@ -16648,8 +16478,8 @@ msgid "Role base wipe speed"
msgstr ""
msgid ""
"The wipe speed is determined by the speed of the current extrusion role. "
"e.g. if a wipe action is executed immediately following an outer wall "
"The wipe speed is determined by the speed of the current extrusion role. e."
"g. if a wipe action is executed immediately following an outer wall "
"extrusion, the speed of the outer wall extrusion will be utilized for the "
"wipe action."
msgstr ""
@@ -17449,8 +17279,8 @@ msgstr ""
msgid ""
"Enable this option for automated chamber temperature control. This option "
"activates the emitting of an M191 command before the "
"\"machine_start_gcode\"\n"
"activates the emitting of an M191 command before the \"machine_start_gcode"
"\"\n"
" 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"
@@ -18289,11 +18119,11 @@ msgid "Debug level"
msgstr "デバッグ レベル"
msgid ""
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, "
"5:trace\n"
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:"
"trace\n"
msgstr ""
"デバッグロギングレベルを設定します。0:fatal、1:error、2:warning、3:info、"
"4:debug、5:trace。\n"
"デバッグロギングレベルを設定します。0:fatal、1:error、2:warning、3:info、4:"
"debug、5:trace。\n"
msgid "Log file"
msgstr ""
@@ -20035,8 +19865,8 @@ msgstr ""
"書き直しますか?"
msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you "
"selected\".\n"
"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 ""
@@ -20120,6 +19950,9 @@ msgstr "プリンタープリセット"
msgid "Filament Preset Template"
msgstr "フィラメントプリセットテンプレート"
msgid "Deselect All"
msgstr "すべて選択解除"
msgid "Process Preset Template"
msgstr "プロセスプリセットテンプレート"
@@ -20600,21 +20433,9 @@ msgstr ""
msgid "Authorizing..."
msgstr ""
msgid "Error. Can't get api token for authorization"
msgstr ""
msgid "Could not parse server response."
msgstr ""
msgid "Error saving session to file"
msgstr ""
msgid "Error session check"
msgstr ""
msgid "Error during file upload"
msgstr ""
#, c-format, boost-format
msgid "Mismatched type of print host: %s"
msgstr "印刷ホストのタイプが一致しません: %s"
@@ -21312,105 +21133,6 @@ msgstr "シリアル経由でFlashforgeに接続できませんでした"
msgid "Flashforge local API requires both serial number and access code."
msgstr ""
msgid "Printer returned an error"
msgstr ""
msgid "Missing system_info in response"
msgstr ""
msgid "Missing printer serial number in response"
msgstr ""
msgid "Error parsing response"
msgstr ""
msgid "ElegooLink not detected"
msgstr ""
msgid "Invalid access code"
msgstr ""
msgid "CC2 device not detected"
msgstr ""
msgid "Connection to ElegooLink is working correctly."
msgstr ""
msgid "Could not connect to ElegooLink"
msgstr ""
#, boost-format
msgid "Error code: %1%"
msgstr ""
msgid "Upload failed"
msgstr ""
msgid ""
"The file has been transferred, but some unknown errors occurred. Please "
"check the device page for the file and try to start printing again."
msgstr ""
msgid "Failed to open file for upload."
msgstr ""
msgid "Failed to read file chunk for upload."
msgstr ""
msgid "CC2 upload failed"
msgstr ""
msgid "The file is empty or could not be read."
msgstr ""
msgid "Failed to calculate file checksum."
msgstr ""
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 ""
msgid "The file is lost, please check and try again."
msgstr ""
msgid "The file is corrupted, please check and try again."
msgstr ""
msgid "Transmission abnormality, please check and try again."
msgstr ""
msgid "The file does not match the printer, please check and try again."
msgstr ""
msgid "Start print timeout"
msgstr ""
msgid "Start print failed"
msgstr ""
msgid "Connected to CrealityPrint successfully!"
msgstr ""
msgid "Could not connect to CrealityPrint"
msgstr ""
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 ""
msgid "The Hostname/IP/URL could not be parsed, please check it and try again."
msgstr ""
msgid ""
"File/data transfer interrupted. Please check the printer and network, then "
"try it again."
msgstr ""
msgid "The provided state is not correct."
msgstr "指定された状態が正しくありません。"
@@ -21462,12 +21184,6 @@ msgstr "ブリム"
msgid "Please select single object."
msgstr "単一のオブジェクトを選択してください"
msgid "Entering Brim Ears"
msgstr ""
msgid "Leaving Brim Ears"
msgstr ""
msgid "Zoom Out"
msgstr "ズームアウト"
@@ -21477,9 +21193,6 @@ msgstr "ズームイン"
msgid "Load skipping objects information failed. Please try again."
msgstr "スキップオブジェクト情報のロードに失敗しました。再試行してください。"
msgid "Failed to create the temporary folder."
msgstr ""
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d 選択済み"
@@ -21632,100 +21345,6 @@ msgstr "三角面の数"
msgid "Calculating, please wait..."
msgstr "計算中、お待ちください..."
msgid "PresetBundle"
msgstr ""
msgid "Bundle folder does not exist."
msgstr ""
msgid "Failed to open folder."
msgstr ""
msgid "Delete selected bundle from folder and all presets loaded from it?"
msgstr ""
msgid "Delete Bundle"
msgstr ""
msgid "Failed to remove bundle."
msgstr ""
msgid "Remove Bundle"
msgstr ""
msgid "Unsubscribe bundle?"
msgstr ""
msgid "UnsubscribeBundle"
msgstr ""
msgid "Failed to unsubscribe bundle."
msgstr ""
msgid "Unsubscribe Bundle"
msgstr ""
msgid "ExportPresetBundle"
msgstr ""
msgid "Save preset bundle"
msgstr ""
msgid ""
"Performing desktop integration failed - boost::filesystem::canonical did not "
"return appimage path."
msgstr ""
msgid "Performing desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing desktop integration failed because the application directory was "
"not found."
msgstr ""
msgid ""
"Performing desktop integration failed - could not create Gcodeviewer desktop "
"file. OrcaSlicer desktop file was probably created successfully."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - "
"boost::filesystem::canonical did not return appimage path."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing downloader desktop integration failed because the application "
"directory was not found."
msgstr ""
msgid "Desktop Integration"
msgstr ""
msgid ""
"Desktop Integration sets this binary to be searchable by the system.\n"
"\n"
"Press \"Perform\" to proceed."
msgstr ""
msgid "The download has failed"
msgstr ""
#. TRN %1% = file path
#, boost-format
msgid "Can't create file at %1%"
msgstr ""
msgid "Archive preview"
msgstr ""
msgid "Open File"
msgstr ""
msgid ""
"The filament may not be compatible with the current machine settings. "
"Generic filament presets will be used."
@@ -22085,21 +21704,6 @@ msgstr ""
"ABSのような反りやすい素材を印刷する場合、ヒートベッドの温度を適切に上げること"
"で、反りが発生する確率を下げることができることをご存知ですか?"
#~ msgid ""
#~ "It is recommended to assemble objects first,\n"
#~ "because the objects is restriced to bed \n"
#~ "and only parts can be lifted."
#~ msgstr ""
#~ "オブジェクトは先に組み立てることをお勧めします。\n"
#~ "オブジェクトはベッドに固定されており、\n"
#~ "パーツのみ持ち上げることができます。"
#~ msgid "part selection"
#~ msgstr "パーツ選択"
#~ msgid "°"
#~ msgstr "°"
#~ msgid ""
#~ "The Wipe option is not available when using the Firmware Retraction "
#~ "mode.\n"
@@ -22265,6 +21869,9 @@ msgstr ""
#~ msgid "Mouse wheel:"
#~ msgstr "マウスホイール"
#~ msgid "Object selection"
#~ msgstr "オブジェクト選択"
#~ msgid "Pass 1"
#~ msgstr "パス1"
+81 -474
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-26 11:35+0800\n"
"POT-Creation-Date: 2026-06-08 00:18+0800\n"
"PO-Revision-Date: 2025-06-02 17:12+0900\n"
"Last-Translator: crwusiz <crwusiz@gmail.com>\n"
"Language-Team: \n"
@@ -198,15 +198,6 @@ msgstr "완료"
msgid "Support Generated"
msgstr "서포트 생성됨"
msgid "Entering Paint-on supports"
msgstr ""
msgid "Leaving Paint-on supports"
msgstr ""
msgid "Paint-on supports editing"
msgstr ""
msgid "Gizmo-Place on Face"
msgstr "변형도구 - 면에 배치"
@@ -294,15 +285,6 @@ msgstr "칠하기에 사용한 필라멘트 %1%"
msgid "To:"
msgstr "대상:"
msgid "Entering color painting"
msgstr ""
msgid "Leaving color painting"
msgstr ""
msgid "Color painting editing"
msgstr ""
msgid "Paint-on fuzzy skin"
msgstr "퍼지 스킨 칠하기"
@@ -323,15 +305,6 @@ msgstr ""
msgid "Enable painted fuzzy skin for this object"
msgstr "이 객체의 칠한 퍼지 스킨 활성화"
msgid "Entering Paint-on fuzzy skin"
msgstr ""
msgid "Leaving Paint-on fuzzy skin"
msgstr ""
msgid "Paint-on fuzzy skin editing"
msgstr ""
msgid "Move"
msgstr "이동"
@@ -718,15 +691,6 @@ msgstr "라인별로 자르기"
msgid "Delete connector"
msgstr "커넥터 삭제"
msgid "Entering Cut gizmo"
msgstr ""
msgid "Leaving Cut gizmo"
msgstr ""
msgid "Cut gizmo editing"
msgstr ""
msgid "Mesh name"
msgstr "메시 이름"
@@ -1591,12 +1555,6 @@ msgstr "평행 거리:"
msgid "Flip by Face 2"
msgstr "면 2로 뒤집기"
msgid "Entering Measure gizmo"
msgstr ""
msgid "Leaving Measure gizmo"
msgstr ""
msgid "Assemble"
msgstr "병합"
@@ -1622,20 +1580,17 @@ msgid "Warning: please select Point's or Circle's feature."
msgstr "경고: 점 또는 원의 특징을 선택하십시오."
msgid ""
"It is recommended to assemble objects first,\n"
"because they are restricted to the bed \n"
"It is recommended to assemble the objects first,\n"
"because the objects is restriced to bed \n"
"and only parts can be lifted."
msgstr ""
"먼저 객체를 조립하는 것이 좋습니다.\n"
"객체는 베드에 고정되어 있으며\n"
"파트만 들어올릴 수 있습니다."
msgid "Face and face assembly"
msgstr "면과 면 조립"
msgid "Entering Assembly gizmo"
msgstr ""
msgid "Leaving Assembly gizmo"
msgstr ""
msgid "Ctrl+"
msgstr "Ctrl+"
@@ -1693,8 +1648,8 @@ msgstr "AMF 파일"
msgid "3MF files"
msgstr "3MF 파일"
msgid "G-code 3MF files"
msgstr "G-code 3MF 파일"
msgid "Gcode 3MF files"
msgstr "Gcode 3MF 파일"
msgid "G-code files"
msgstr "G-code 파일"
@@ -1753,34 +1708,6 @@ msgstr "Orca Slicer에 처리되지 않은 예외가 발생했습니다: %1%"
msgid "Untitled"
msgstr "제목 없음"
msgid ""
"Since version 2.4.0, OrcaSlicer syncs user profiles through Orca Cloud "
"instead of Bambu Cloud.\n"
"\n"
"To migrate your existing profiles, log in to Orca Cloud and they will be "
"transferred automatically. To learn more about how OrcaSlicer stores and "
"syncs your profiles, or to migrate your presets manually, check out our "
"wiki.\n"
"\n"
"If you did not use Bambu Cloud to sync profiles, this change does not affect "
"you and you can safely ignore this message."
msgstr ""
"버전 2.4.0부터 OrcaSlicer는 사용자 프로파일을 Bambu Cloud 대신 Orca Cloud를 "
"통해 동기화합니다.\n"
"\n"
"기존 프로파일을 이전하려면 Orca Cloud에 로그인하세요. 자동으로 전송됩니다. "
"OrcaSlicer가 프로파일을 저장하고 동기화하는 방식에 대해 자세히 알아보거나 사"
"전 설정을 수동으로 이전하려면 위키를 참조하세요.\n"
"\n"
"프로파일 동기화에 Bambu Cloud를 사용하지 않았다면 이 변경 사항은 영향을 주지 "
"않으므로 이 메시지를 무시해도 됩니다."
msgid "Profile syncing change"
msgstr ""
msgid "Learn more"
msgstr ""
msgid "Reloading network plug-in..."
msgstr "네트워크 플러그인 재로드 중..."
@@ -1812,14 +1739,6 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr "WebView2 런타임"
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is "
"installed.\n"
"Please install it manually from https://developer.microsoft.com/microsoft-"
"edge/webview2/ and restart Orca Slicer."
msgstr ""
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
msgstr "리소스 경로가 존재하지 않거나 디렉토리가 아닙니다: %s"
@@ -1947,20 +1866,6 @@ msgid ""
"preset."
msgstr ""
msgid ""
"Cloud sync conflict: 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 ""
msgid ""
"Cloud sync conflict: there was an unexpected or unidentified preset "
"conflict.\n"
"Pull downloads the cloud copy. Force push overwrites it with your local "
"preset."
msgstr ""
msgid ""
"Force push will overwrite the cloud copy with your local preset changes.\n"
"Do you want to continue?"
@@ -3225,52 +3130,6 @@ msgstr "최대 온도는 다음 값을 초과할 수 없습니다 "
msgid "The minmum temperature should not be less than "
msgstr "최소 온도는 다음 값보다 낮아서는 안 됩니다 "
msgid "Type to filter..."
msgstr ""
msgid "All"
msgstr "모두"
msgid "No selected items..."
msgstr ""
msgid "All items selected..."
msgstr ""
msgid "No matching items..."
msgstr ""
msgid "Deselect All"
msgstr "모두 선택 해제"
msgid "Select visible"
msgstr ""
msgid "Deselect visible"
msgstr ""
msgid "Filter selected"
msgstr ""
msgid "Filter nonSelected"
msgstr ""
msgid "Simple settings"
msgstr ""
msgid "Advanced settings"
msgstr "고급 설정"
msgid "Expert settings"
msgstr ""
#, fuzzy
msgid "Developer mode"
msgstr "개발자 모드"
msgid "Launch troubleshoot center"
msgstr ""
msgid ""
"All the selected objects are on a locked plate.\n"
"Cannot auto-arrange these objects."
@@ -3540,9 +3399,6 @@ msgstr "글꼴에 지정된 텍스트의 형태가 없습니다."
msgid "There is no valid surface for text projection."
msgstr "텍스트 프로젝션에 유효한 표면이 없습니다."
msgid "An unexpected error occurred"
msgstr ""
msgid "Thermal Preconditioning for first layer optimization"
msgstr "첫 번째 레이어 최적화를 위한 열 사전 조건"
@@ -5413,7 +5269,10 @@ msgstr "편집 영역 증가/감소"
msgid "Sequence"
msgstr "순서"
msgid "Object selection"
msgid "Object Selection"
msgstr ""
msgid "Part Selection"
msgstr ""
msgid "number keys"
@@ -5598,6 +5457,9 @@ msgstr "레이블"
msgid "Paint Toolbar"
msgstr "칠하기 도구 모음"
msgid "part selection"
msgstr "부품 선택"
msgid "Explosion Ratio"
msgstr "분해 비율"
@@ -5622,7 +5484,7 @@ msgstr "용량:"
msgid "Size:"
msgstr "크기:"
#, boost-format
#, c-format, boost-format
msgid ""
"Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -5849,12 +5711,12 @@ msgstr "플레이트 출력"
msgid "Export G-code file"
msgstr "Gcode 파일 내보내기"
msgid "Export plate sliced file"
msgstr "플레이트 슬라이스 파일 내보내기"
msgid "Send"
msgstr "전송"
msgid "Export plate sliced file"
msgstr "플레이트 슬라이스 파일 내보내기"
msgid "Export all sliced file"
msgstr "모든 슬라이스 파일 내보내기"
@@ -6510,8 +6372,8 @@ msgid ""
"The .gcode.3mf file contains no G-code data. Please slice it with Orca "
"Slicer and export a new .gcode.3mf file."
msgstr ""
".gcode.3mf 파일에는 Gcode 데이터가 없습니다. OrcaSlicer에서 슬라이스하고 "
"새 .gcode.3mf 파일을 내보내십시오."
".gcode.3mf 파일에는 Gcode 데이터가 없습니다. OrcaSlicer에서 슬라이스하고 새 ."
"gcode.3mf 파일을 내보내십시오."
#, c-format, boost-format
msgid "File '%s' was lost! Please download it again."
@@ -7906,7 +7768,7 @@ msgstr ""
msgid "The selected object couldn't be split."
msgstr "선택한 객체를 분할할 수 없습니다."
msgid "Disable Auto-Drop to preserve Z positioning?\n"
msgid "Disable Auto-Drop to preserve z positioning?\n"
msgstr ""
msgid "Object with floating parts was detected"
@@ -8566,6 +8428,9 @@ msgstr ""
msgid "Group user filament presets based on selection"
msgstr ""
msgid "All"
msgstr "모두"
msgid "By type"
msgstr ""
@@ -8751,16 +8616,6 @@ msgstr ""
msgid "Renders cast shadows on the plate in realistic view."
msgstr ""
msgid "Smooth normals"
msgstr ""
msgid ""
"Applies smooth normals to the realistic view.\n"
"\n"
"Requires manual scene reload to take effect (right-click on 3D view → "
"\"Reload All\")."
msgstr ""
msgid "Anti-aliasing"
msgstr ""
@@ -8922,14 +8777,6 @@ msgstr ""
msgid "Associate files to OrcaSlicer"
msgstr "파일을 OrcaSlicer에 연결"
msgid ""
"File associations for the Microsoft Store version are managed by Windows "
"Settings."
msgstr ""
msgid "Open Windows Default Apps Settings"
msgstr ""
#, fuzzy
msgid "Associate 3MF files to OrcaSlicer"
msgstr ".3mf 파일을 OrcaSlicer에 연결"
@@ -8969,6 +8816,10 @@ msgstr "OrcaSlicer에 웹 링크 연결"
msgid "Developer"
msgstr ""
#, fuzzy
msgid "Developer mode"
msgstr "개발자 모드"
msgid "Skip AMS blacklist check"
msgstr "AMS 블랙리스트 확인 건너뛰기"
@@ -9749,9 +9600,6 @@ msgstr ""
"파일 업로드 시간이 초과되었습니다. 펌웨어 버전이 이 작업을 지원하는지 확인하"
"거나 프린터가 제대로 작동하는지 확인하세요."
msgid "Sending failed, please try again!"
msgstr ""
msgid "Slice ok."
msgstr "슬라이스 완료."
@@ -10046,8 +9894,8 @@ 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\"."
"by right-click the empty position of build plate and choose \"Add Primitive"
"\"->\"Timelapse Wipe Tower\"."
msgstr ""
"툴헤드 없이 시간 경과를 기록할 경우 \"타임랩스 프라임 타워\"를 추가하는 것이 "
"좋습니다\n"
@@ -10174,9 +10022,6 @@ msgstr "외부 및 내부 브릿지 속도 설정"
msgid "Travel speed"
msgstr "이동 속도"
msgid "Junction Deviation"
msgstr ""
msgid "Jerk(XY)"
msgstr "저크(XY)"
@@ -11029,6 +10874,9 @@ msgstr ""
"프린터 필라멘트를 기준으로 프로젝트 필라멘트 목록을 순차적으로 교체합니다. 사"
"용하지 않는 프린터 필라멘트는 자동으로 목록 끝에 추가됩니다."
msgid "Advanced settings"
msgstr "고급 설정"
msgid "Add unused AMS filaments to filaments list."
msgstr "미사용 AMS 필라멘트를 필라멘트 목록에 추가하기."
@@ -11516,23 +11364,12 @@ msgstr "새 네트워크 플러그인(%s)을 사용할 수 있습니다. 설치
msgid "New version of Orca Slicer"
msgstr "Orca Slicer의 새 버전"
msgid "Check on Microsoft Store"
msgstr ""
msgid "Check on GitHub"
msgstr ""
msgid "Open Microsoft Store"
msgid "Check on Github"
msgstr ""
msgid "Skip this Version"
msgstr "이 버전 건너뛰기"
#, c-format, boost-format
msgid ""
"New version available: %s. Please update OrcaSlicer from the Microsoft Store."
msgstr ""
msgid "Confirm and Update Nozzle"
msgstr "노즐 확인 및 업데이트"
@@ -11645,9 +11482,6 @@ msgstr "커팅 모듈"
msgid "Auto Fire Extinguishing System"
msgstr "자동 화재 진압 시스템"
msgid "Beta"
msgstr ""
msgid "Update firmware"
msgstr "펌웨어 업데이트"
@@ -12253,14 +12087,6 @@ msgstr ""
msgid "Generating skirt & brim"
msgstr "스커트 & 브림 생성 중"
msgid ""
"Per-object skirts cannot fit between the objects in By object print "
"sequence.\n"
"\n"
"Move the objects farther apart, reduce brim/skirt size, switch Skirt type to "
"Combined, or switch Print sequence to By layer."
msgstr ""
msgid "Exporting G-code"
msgstr "Gcode 내보내는 중"
@@ -12390,15 +12216,6 @@ msgstr "타사 출력 호스트 사용"
msgid "Allow controlling BambuLab's printer through 3rd party print hosts."
msgstr "타사 프린트 호스트를 통해 뱀부랩의 프린터 제어 허용"
msgid "Use 3MF instead of G-code"
msgstr ""
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 ""
msgid "Printer Agent"
msgstr ""
@@ -12417,9 +12234,9 @@ msgid ""
msgstr ""
"Orca Slicer은 Gcode 파일을 프린터 호스트에 업로드할 수 있습니다. 이 필드에는 "
"프린터 호스트 인스턴스의 호스트 이름, IP 주소 또는 URL이 포함되어야 합니다. "
"기본 인증이 활성화된 HAProxy 뒤의 출력 호스트는 https://"
"username:password@your-octopi-address/ 형식의 URL에 사용자 이름과 암호를 입력"
"하여 액세스할 수 있습니다"
"기본 인증이 활성화된 HAProxy 뒤의 출력 호스트는 https://username:"
"password@your-octopi-address/ 형식의 URL에 사용자 이름과 암호를 입력하여 액세"
"스할 수 있습니다"
msgid "Device UI"
msgstr "장치 UI"
@@ -12814,7 +12631,7 @@ msgid "External bridge density"
msgstr "외부 브릿지 밀도"
msgid ""
"Controls the density (spacing) of external bridge lines.\n"
"Controls the density (spacing) of external bridge lines. Default is 100%.\n"
"Theoretically, 100% means a solid bridge, but due to the tendency of bridge "
"extrusions to sag, 100% may not be sufficient.\n"
"\n"
@@ -12828,14 +12645,18 @@ msgid ""
" - Pros: Can create a string-like first layer. Faster and with better "
"cooling because there is more space for air to circulate around the extruded "
"bridge.\n"
" - Cons: May lead to sagging and poorer surface finish."
" - Cons: May lead to sagging and poorer surface finish.\n"
"\n"
"Recommended range: Minimum 10% - Maximum 125%."
msgstr ""
msgid "Internal bridge density"
msgstr "내부 브릿지 밀도"
msgid ""
"Controls the density (spacing) of internal bridge lines.\n"
"Controls the density (spacing) of internal bridge lines. Default is 100%. "
"100% means a solid internal bridge.\n"
"\n"
"Internal bridges act as intermediate support between sparse infill and top "
"solid infill and can strongly affect top surface quality.\n"
"\n"
@@ -12870,9 +12691,11 @@ msgid ""
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
#, c-format, boost-format
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the "
"nozzle diameter.\n"
"Bridge line width is expressed either as an absolute value or as a "
"percentage of the active nozzle diameter (percentages are computed from the "
"nozzle diameter).\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
@@ -14676,6 +14499,7 @@ msgstr "채우기 패턴에서 지원되는 경우 채우기 패턴에 여러
msgid "Z-buckling bias optimization (experimental)"
msgstr ""
#, c-format, boost-format
msgid ""
"Tightens the gyroid wave along the Z (vertical) axis at low infill density "
"to shorten the effective vertical column length and improve Z-axis "
@@ -14875,8 +14699,8 @@ msgid "mm/s² or %"
msgstr "mm/s² 또는 %"
msgid ""
"Acceleration of sparse infill. If the value is expressed as a percentage "
"(e.g. 100%), it will be calculated based on the default acceleration."
"Acceleration of sparse infill. If the value is expressed as a percentage (e."
"g. 100%), it will be calculated based on the default acceleration."
msgstr ""
"드문 채우기 가속도. 값이 백분율 (예. 100%)로 표시되면 기본 가속도를 기준으로 "
"계산됩니다."
@@ -14921,6 +14745,9 @@ msgstr "Klipper의 max_accel_to_decel은 가속도의 %%로 조정됩니다"
msgid "Default jerk."
msgstr ""
msgid "Junction Deviation"
msgstr ""
msgid ""
"Marlin Firmware Junction Deviation (replaces the traditional XY Jerk "
"setting)."
@@ -15002,10 +14829,10 @@ msgstr "팬 최대 속도 레이어"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer "
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\". \"full_fan_speed_layer\" will be ignored if lower than "
"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"팬 속도는 \"close_fan_the_first_x_layers\" 의 0에서 \"full_fan_speed_layer\" "
"의 최고 속도까지 선형적으로 증가합니다. \"full_fan_speed_layer\"가 "
@@ -15925,13 +15752,16 @@ msgid ""
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
msgid "°"
msgstr "°"
msgid "Don't alternate fill direction"
msgstr ""
msgid "Disable alternating fill direction when using Z contouring."
msgstr ""
msgid "Minimum Z height"
msgid "Minimum z height"
msgstr ""
msgid ""
@@ -17008,8 +16838,8 @@ msgid "Role base wipe speed"
msgstr "역할 기반 노즐 청소 속도"
msgid ""
"The wipe speed is determined by the speed of the current extrusion role. "
"e.g. if a wipe action is executed immediately following an outer wall "
"The wipe speed is determined by the speed of the current extrusion role. e."
"g. if a wipe action is executed immediately following an outer wall "
"extrusion, the speed of the outer wall extrusion will be utilized for the "
"wipe action."
msgstr ""
@@ -17876,8 +17706,8 @@ msgstr "온도 제어 활성화"
msgid ""
"Enable this option for automated chamber temperature control. This option "
"activates the emitting of an M191 command before the "
"\"machine_start_gcode\"\n"
"activates the emitting of an M191 command before the \"machine_start_gcode"
"\"\n"
" 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"
@@ -18810,8 +18640,8 @@ msgid "Debug level"
msgstr "디버그 수준"
msgid ""
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, "
"5:trace\n"
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:"
"trace\n"
msgstr ""
"디버그 로깅 수준을 설정합니다. 0:치명적, 1:오류, 2:경고, 3:정보, 4:디버그, 5:"
"추적\n"
@@ -20564,8 +20394,8 @@ msgstr ""
"다시 작성하시겠습니까?"
msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you "
"selected\".\n"
"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 ""
@@ -20648,6 +20478,9 @@ msgstr "프린터 사전 설정"
msgid "Filament Preset Template"
msgstr "필라멘트 사전 설정 템플릿"
msgid "Deselect All"
msgstr "모두 선택 해제"
msgid "Process Preset Template"
msgstr "프로세스 사전 설정 템플릿"
@@ -21131,21 +20964,9 @@ msgstr ""
msgid "Authorizing..."
msgstr ""
msgid "Error. Can't get api token for authorization"
msgstr ""
msgid "Could not parse server response."
msgstr ""
msgid "Error saving session to file"
msgstr ""
msgid "Error session check"
msgstr ""
msgid "Error during file upload"
msgstr ""
#, c-format, boost-format
msgid "Mismatched type of print host: %s"
msgstr "일치하지 않는 출력 호스트 유형: %s"
@@ -21889,105 +21710,6 @@ msgstr ""
msgid "Flashforge local API requires both serial number and access code."
msgstr ""
msgid "Printer returned an error"
msgstr ""
msgid "Missing system_info in response"
msgstr ""
msgid "Missing printer serial number in response"
msgstr ""
msgid "Error parsing response"
msgstr ""
msgid "ElegooLink not detected"
msgstr ""
msgid "Invalid access code"
msgstr ""
msgid "CC2 device not detected"
msgstr ""
msgid "Connection to ElegooLink is working correctly."
msgstr ""
msgid "Could not connect to ElegooLink"
msgstr ""
#, boost-format
msgid "Error code: %1%"
msgstr ""
msgid "Upload failed"
msgstr ""
msgid ""
"The file has been transferred, but some unknown errors occurred. Please "
"check the device page for the file and try to start printing again."
msgstr ""
msgid "Failed to open file for upload."
msgstr ""
msgid "Failed to read file chunk for upload."
msgstr ""
msgid "CC2 upload failed"
msgstr ""
msgid "The file is empty or could not be read."
msgstr ""
msgid "Failed to calculate file checksum."
msgstr ""
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 ""
msgid "The file is lost, please check and try again."
msgstr ""
msgid "The file is corrupted, please check and try again."
msgstr ""
msgid "Transmission abnormality, please check and try again."
msgstr ""
msgid "The file does not match the printer, please check and try again."
msgstr ""
msgid "Start print timeout"
msgstr ""
msgid "Start print failed"
msgstr ""
msgid "Connected to CrealityPrint successfully!"
msgstr ""
msgid "Could not connect to CrealityPrint"
msgstr ""
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 ""
msgid "The Hostname/IP/URL could not be parsed, please check it and try again."
msgstr ""
msgid ""
"File/data transfer interrupted. Please check the printer and network, then "
"try it again."
msgstr ""
msgid "The provided state is not correct."
msgstr "제공된 상태가 올바르지 않습니다."
@@ -22041,12 +21763,6 @@ msgstr "브림 귀"
msgid "Please select single object."
msgstr "단일 객체를 선택하세요."
msgid "Entering Brim Ears"
msgstr ""
msgid "Leaving Brim Ears"
msgstr ""
msgid "Zoom Out"
msgstr "축소"
@@ -22056,9 +21772,6 @@ msgstr "확대"
msgid "Load skipping objects information failed. Please try again."
msgstr "건너뛰는 개체 정보를 로드하지 못했습니다. 다시 시도해 주세요."
msgid "Failed to create the temporary folder."
msgstr ""
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d 선택됨"
@@ -22205,100 +21918,6 @@ msgstr "삼각형 패싯 수"
msgid "Calculating, please wait..."
msgstr "계산 중, 잠시만 기다려주세요..."
msgid "PresetBundle"
msgstr ""
msgid "Bundle folder does not exist."
msgstr ""
msgid "Failed to open folder."
msgstr ""
msgid "Delete selected bundle from folder and all presets loaded from it?"
msgstr ""
msgid "Delete Bundle"
msgstr ""
msgid "Failed to remove bundle."
msgstr ""
msgid "Remove Bundle"
msgstr ""
msgid "Unsubscribe bundle?"
msgstr ""
msgid "UnsubscribeBundle"
msgstr ""
msgid "Failed to unsubscribe bundle."
msgstr ""
msgid "Unsubscribe Bundle"
msgstr ""
msgid "ExportPresetBundle"
msgstr ""
msgid "Save preset bundle"
msgstr ""
msgid ""
"Performing desktop integration failed - boost::filesystem::canonical did not "
"return appimage path."
msgstr ""
msgid "Performing desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing desktop integration failed because the application directory was "
"not found."
msgstr ""
msgid ""
"Performing desktop integration failed - could not create Gcodeviewer desktop "
"file. OrcaSlicer desktop file was probably created successfully."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - "
"boost::filesystem::canonical did not return appimage path."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing downloader desktop integration failed because the application "
"directory was not found."
msgstr ""
msgid "Desktop Integration"
msgstr ""
msgid ""
"Desktop Integration sets this binary to be searchable by the system.\n"
"\n"
"Press \"Perform\" to proceed."
msgstr ""
msgid "The download has failed"
msgstr ""
#. TRN %1% = file path
#, boost-format
msgid "Can't create file at %1%"
msgstr ""
msgid "Archive preview"
msgstr ""
msgid "Open File"
msgstr ""
msgid ""
"The filament may not be compatible with the current machine settings. "
"Generic filament presets will be used."
@@ -22700,21 +22319,6 @@ msgstr ""
"ABS와 같이 뒤틀림이 발생하기 쉬운 소재를 출력할 때, 히트베드 온도를 적절하게 "
"높이면 뒤틀림 가능성을 줄일 수 있다는 사실을 알고 계셨나요?"
#~ msgid ""
#~ "It is recommended to assemble objects first,\n"
#~ "because the objects is restriced to bed \n"
#~ "and only parts can be lifted."
#~ msgstr ""
#~ "먼저 객체를 조립하는 것이 좋습니다.\n"
#~ "객체는 베드에 고정되어 있으며\n"
#~ "파트만 들어올릴 수 있습니다."
#~ msgid "part selection"
#~ msgstr "부품 선택"
#~ msgid "°"
#~ msgstr "°"
#~ msgid ""
#~ "The Wipe option is not available when using the Firmware Retraction "
#~ "mode.\n"
@@ -22952,6 +22556,9 @@ msgstr ""
#~ msgid "Mouse wheel:"
#~ msgstr "마우스 휠:"
#~ msgid "Object selection"
#~ msgstr "객체 선택"
#~ msgid "Pass 1"
#~ msgstr "1차 테스트"
@@ -24178,8 +23785,8 @@ msgstr ""
#~ msgstr "mm/mm"
#~ msgid ""
#~ "We would rename the presets as \"Vendor Type Serial @printer you "
#~ "selected\".\n"
#~ "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"
@@ -25206,8 +24813,8 @@ msgstr ""
#~ "로 지정되지 않은 경우 필라멘트의 최소 출력 속도가 활성화됩니다."
#~ msgid ""
#~ "We would rename the presets as \"Vendor Type Serial @printer you "
#~ "selected\".\n"
#~ "We would rename the presets as \"Vendor Type Serial @printer you selected"
#~ "\".\n"
#~ "To add preset for more prinetrs, Please go to printer selection"
#~ msgstr ""
#~ "사전 설정의 이름을 \"선택한 공급업체 유형 직렬 @프린터\"로 변경합니다.\n"
-21
View File
@@ -48,12 +48,9 @@ src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.cpp
src/slic3r/GUI/DeviceTab/uiDeviceUpdateVersion.h
src/slic3r/GUI/DeviceTab/uiDeviceUpdateVersion.cpp
src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp
src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp
src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp
src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp
src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.hpp
src/slic3r/GUI/Gizmos/GLGizmoFuzzySkin.cpp
src/slic3r/GUI/Gizmos/GLGizmoFuzzySkin.hpp
src/slic3r/GUI/Gizmos/GLGizmoMove.cpp
src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp
src/slic3r/GUI/Gizmos/GLGizmoScale.cpp
@@ -61,7 +58,6 @@ src/slic3r/GUI/Gizmos/GLGizmosManager.cpp
src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp
src/slic3r/GUI/Gizmos/GizmoObjectManipulation.cpp
src/slic3r/GUI/Gizmos/GLGizmoCut.cpp
src/slic3r/GUI/Gizmos/GLGizmoCut.hpp
src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp
src/slic3r/GUI/Gizmos/GLGizmoFaceDetector.cpp
src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp
@@ -71,9 +67,7 @@ src/slic3r/GUI/Gizmos/GLGizmoText.hpp
src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp
src/slic3r/GUI/Gizmos/GLGizmoSVG.cpp
src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp
src/slic3r/GUI/Gizmos/GLGizmoMeasure.hpp
src/slic3r/GUI/Gizmos/GLGizmoAssembly.cpp
src/slic3r/GUI/Gizmos/GLGizmoAssembly.hpp
src/slic3r/GUI/GUI.cpp
src/slic3r/GUI/GUI_App.cpp
src/slic3r/GUI/GUI_AuxiliaryList.cpp
@@ -95,8 +89,6 @@ src/slic3r/GUI/Widgets/AMSControl.cpp
src/slic3r/GUI/Widgets/FanControl.cpp
src/slic3r/GUI/Widgets/FilamentLoad.cpp
src/slic3r/GUI/Widgets/TempInput.cpp
src/slic3r/GUI/Widgets/CheckList.cpp
src/slic3r/GUI/Widgets/SwitchButton.cpp
src/slic3r/GUI/ImGuiWrapper.cpp
src/slic3r/GUI/Jobs/ArrangeJob.cpp
src/slic3r/GUI/Jobs/OrientJob.cpp
@@ -106,7 +98,6 @@ src/slic3r/GUI/Jobs/BindJob.cpp
src/slic3r/GUI/Jobs/PrintJob.cpp
src/slic3r/GUI/Jobs/SendJob.cpp
src/slic3r/GUI/Jobs/EmbossJob.cpp
src/slic3r/GUI/Jobs/PlaterWorker.hpp
src/slic3r/GUI/ThermalPreconditioningDialog.cpp
src/slic3r/GUI/ThermalPreconditioningDialog.hpp
src/slic3r/GUI/Jobs/SLAImportJob.cpp
@@ -246,12 +237,8 @@ src/slic3r/GUI/FilamentMapPanel.cpp
src/slic3r/Utils/Obico.cpp
src/slic3r/Utils/SimplyPrint.cpp
src/slic3r/Utils/Flashforge.cpp
src/slic3r/Utils/ElegooLink.cpp
src/slic3r/Utils/CrealityPrint.cpp
src/slic3r/Utils/PrintHost.cpp
src/slic3r/GUI/Jobs/OAuthJob.cpp
src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp
src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp
src/slic3r/GUI/PartSkipDialog.cpp
src/slic3r/GUI/PartSkipDialog.hpp
src/slic3r/GUI/SkipPartCanvas.cpp
@@ -263,12 +250,4 @@ src/slic3r/GUI/NetworkPluginDialog.cpp
src/slic3r/GUI/RammingChart.cpp
src/slic3r/GUI/StepMeshDialog.cpp
src/slic3r/GUI/FilamentPickerDialog.hpp
src/slic3r/GUI/PresetBundleDialog.cpp
src/slic3r/GUI/ExportPresetBundleDialog.cpp
src/slic3r/GUI/DesktopIntegrationDialog.cpp
src/slic3r/GUI/Downloader.cpp
src/slic3r/GUI/DownloaderFileGet.cpp
src/slic3r/GUI/FileArchiveDialog.cpp
src/slic3r/GUI/PrinterCloudAuthDialog.cpp
src/slic3r/GUI/PrinterWebViewHandler.cpp
src/libslic3r/PresetBundle.cpp
+86 -471
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-26 11:35+0800\n"
"POT-Creation-Date: 2026-06-08 00:18+0800\n"
"PO-Revision-Date: 2025-10-25 23:01+0300\n"
"Last-Translator: Gintaras Kučinskas <sharanchius@gmail.com>\n"
"Language-Team: \n"
@@ -16,8 +16,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && (n%100<11 || n%100>19) ? 0 : "
"n%10>=2 && n%10<=9 && (n%100<11 || n%100>19) ? 1 : 2);\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && (n%100<11 || n%100>19) ? 0 : n"
"%10>=2 && n%10<=9 && (n%100<11 || n%100>19) ? 1 : 2);\n"
"X-Generator: Poedit 3.6\n"
msgid "right"
@@ -197,15 +197,6 @@ msgstr "Atlikta"
msgid "Support Generated"
msgstr "Atramos sugeneruotos"
msgid "Entering Paint-on supports"
msgstr ""
msgid "Leaving Paint-on supports"
msgstr ""
msgid "Paint-on supports editing"
msgstr ""
msgid "Gizmo-Place on Face"
msgstr "Gizmo-Patalpinti ant paviršiaus"
@@ -293,15 +284,6 @@ msgstr "Piešta naudojant: Gija %1%"
msgid "To:"
msgstr "To:"
msgid "Entering color painting"
msgstr ""
msgid "Leaving color painting"
msgstr ""
msgid "Color painting editing"
msgstr ""
msgid "Paint-on fuzzy skin"
msgstr "Piešti grublėtą paviršių"
@@ -322,15 +304,6 @@ msgstr ""
msgid "Enable painted fuzzy skin for this object"
msgstr "Enable painted fuzzy skin for this object"
msgid "Entering Paint-on fuzzy skin"
msgstr ""
msgid "Leaving Paint-on fuzzy skin"
msgstr ""
msgid "Paint-on fuzzy skin editing"
msgstr ""
msgid "Move"
msgstr "Perkelti"
@@ -722,15 +695,6 @@ msgstr "Pjovimas pagal liniją"
msgid "Delete connector"
msgstr "Ištrinti jungtį"
msgid "Entering Cut gizmo"
msgstr ""
msgid "Leaving Cut gizmo"
msgstr ""
msgid "Cut gizmo editing"
msgstr ""
msgid "Mesh name"
msgstr "Figūros pavadinimas"
@@ -1600,12 +1564,6 @@ msgstr "Lygiagretus atstumas:"
msgid "Flip by Face 2"
msgstr "Apversti pagal paviršių 2"
msgid "Entering Measure gizmo"
msgstr ""
msgid "Leaving Measure gizmo"
msgstr ""
msgid "Assemble"
msgstr "Surinkti"
@@ -1631,19 +1589,16 @@ msgid "Warning: please select Point's or Circle's feature."
msgstr "Įspėjimas: pasirinkite Taško arba Apskritimo funkciją."
msgid ""
"It is recommended to assemble objects first,\n"
"because they are restricted to the bed \n"
"It is recommended to assemble the objects first,\n"
"because the objects is restriced to bed \n"
"and only parts can be lifted."
msgstr ""
"It is recommended to assemble the objects first,\n"
"because the objects is restriced to bed \n"
"and only parts can be lifted."
msgid "Face and face assembly"
msgstr ""
msgid "Entering Assembly gizmo"
msgstr ""
msgid "Leaving Assembly gizmo"
msgstr ""
msgstr "Face and face assembly"
msgid "Ctrl+"
msgstr "Ctrl+"
@@ -1706,8 +1661,8 @@ msgstr "AMF files"
msgid "3MF files"
msgstr "3MF files"
msgid "G-code 3MF files"
msgstr "G-code 3MF files"
msgid "Gcode 3MF files"
msgstr "Gcode 3MF files"
msgid "G-code files"
msgstr "G-code files"
@@ -1767,35 +1722,6 @@ msgstr "OrcaSlicer susidūrė su neapdorota klaida: %1%"
msgid "Untitled"
msgstr "Be pavadinimo"
msgid ""
"Since version 2.4.0, OrcaSlicer syncs user profiles through Orca Cloud "
"instead of Bambu Cloud.\n"
"\n"
"To migrate your existing profiles, log in to Orca Cloud and they will be "
"transferred automatically. To learn more about how OrcaSlicer stores and "
"syncs your profiles, or to migrate your presets manually, check out our "
"wiki.\n"
"\n"
"If you did not use Bambu Cloud to sync profiles, this change does not affect "
"you and you can safely ignore this message."
msgstr ""
"Nuo 2.4.0 versijos OrcaSlicer sinchronizuoja naudotojo profilius per Orca "
"Cloud, o ne Bambu Cloud.\n"
"\n"
"Norėdami perkelti esamus profilius, prisijunkite prie Orca Cloud ir jie bus "
"perkelti automatiškai. Norėdami sužinoti daugiau apie tai, kaip OrcaSlicer "
"saugo ir sinchronizuoja jūsų profilius, arba norėdami perkelti profilius "
"rankiniu būdu, apsilankykite mūsų wiki.\n"
"\n"
"Jei profiliams sinchronizuoti nenaudojote Bambu Cloud, šis pakeitimas jums "
"neaktualus ir šį pranešimą galite ignoruoti."
msgid "Profile syncing change"
msgstr ""
msgid "Learn more"
msgstr ""
msgid "Reloading network plug-in..."
msgstr "Reloading network plug-in..."
@@ -1827,14 +1753,6 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr "\"WebView2\" paleidimo terpė"
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is "
"installed.\n"
"Please install it manually from https://developer.microsoft.com/microsoft-"
"edge/webview2/ and restart Orca Slicer."
msgstr ""
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
msgstr "Išteklių kelias neegzistuoja arba nėra katalogas: %s"
@@ -1968,20 +1886,6 @@ msgid ""
"preset."
msgstr ""
msgid ""
"Cloud sync conflict: 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 ""
msgid ""
"Cloud sync conflict: there was an unexpected or unidentified preset "
"conflict.\n"
"Pull downloads the cloud copy. Force push overwrites it with your local "
"preset."
msgstr ""
msgid ""
"Force push will overwrite the cloud copy with your local preset changes.\n"
"Do you want to continue?"
@@ -3280,52 +3184,6 @@ msgstr "The maximum temperature cannot exceed "
msgid "The minmum temperature should not be less than "
msgstr "The minmum temperature should not be less than "
msgid "Type to filter..."
msgstr ""
msgid "All"
msgstr "Visi"
msgid "No selected items..."
msgstr ""
msgid "All items selected..."
msgstr ""
msgid "No matching items..."
msgstr ""
msgid "Deselect All"
msgstr "Atšaukti visus"
msgid "Select visible"
msgstr ""
msgid "Deselect visible"
msgstr ""
msgid "Filter selected"
msgstr ""
msgid "Filter nonSelected"
msgstr ""
msgid "Simple settings"
msgstr ""
msgid "Advanced settings"
msgstr "Advanced settings"
msgid "Expert settings"
msgstr ""
#, fuzzy
msgid "Developer mode"
msgstr "Kūrėjo režimas"
msgid "Launch troubleshoot center"
msgstr ""
msgid ""
"All the selected objects are on a locked plate.\n"
"Cannot auto-arrange these objects."
@@ -3606,9 +3464,6 @@ msgstr "Font doesn't have any shape for given text."
msgid "There is no valid surface for text projection."
msgstr "There is no valid surface for text projection."
msgid "An unexpected error occurred"
msgstr ""
msgid "Thermal Preconditioning for first layer optimization"
msgstr "Thermal Preconditioning for first layer optimization"
@@ -5533,7 +5388,10 @@ msgstr "Padidinti / sumažinti redagavimo sritį"
msgid "Sequence"
msgstr "Seka"
msgid "Object selection"
msgid "Object Selection"
msgstr ""
msgid "Part Selection"
msgstr ""
msgid "number keys"
@@ -5722,6 +5580,9 @@ msgstr "Labels"
msgid "Paint Toolbar"
msgstr "Piešimo įrankių juosta"
msgid "part selection"
msgstr "detalės pasirinkimas"
msgid "Explosion Ratio"
msgstr "Plėtimosi santykis"
@@ -5746,7 +5607,7 @@ msgstr "Tūris:"
msgid "Size:"
msgstr "Dydis:"
#, boost-format
#, c-format, boost-format
msgid ""
"Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -5975,12 +5836,12 @@ msgstr "Spausdinti plokštę"
msgid "Export G-code file"
msgstr "Eksportuoti G-kodo failą"
msgid "Export plate sliced file"
msgstr "Eksportuoti sluoksniuotos plokštės failą"
msgid "Send"
msgstr "Siųsti"
msgid "Export plate sliced file"
msgstr "Eksportuoti sluoksniuotos plokštės failą"
msgid "Export all sliced file"
msgstr "Eksportuoti visko sluoksniuoto failą"
@@ -8096,7 +7957,7 @@ msgstr ""
msgid "The selected object couldn't be split."
msgstr "Pasirinkto objekto negalima suskaidyti."
msgid "Disable Auto-Drop to preserve Z positioning?\n"
msgid "Disable Auto-Drop to preserve z positioning?\n"
msgstr ""
msgid "Object with floating parts was detected"
@@ -8780,6 +8641,9 @@ msgstr "Group user filament presets"
msgid "Group user filament presets based on selection"
msgstr "Group user filament presets based on selection"
msgid "All"
msgstr "Visi"
msgid "By type"
msgstr "By type"
@@ -8983,16 +8847,6 @@ msgstr ""
msgid "Renders cast shadows on the plate in realistic view."
msgstr ""
msgid "Smooth normals"
msgstr ""
msgid ""
"Applies smooth normals to the realistic view.\n"
"\n"
"Requires manual scene reload to take effect (right-click on 3D view → "
"\"Reload All\")."
msgstr ""
msgid "Anti-aliasing"
msgstr ""
@@ -9164,14 +9018,6 @@ msgstr "Download Network Plug-in"
msgid "Associate files to OrcaSlicer"
msgstr "Susieti failus su Orca Slicer"
msgid ""
"File associations for the Microsoft Store version are managed by Windows "
"Settings."
msgstr ""
msgid "Open Windows Default Apps Settings"
msgstr ""
#, fuzzy
msgid "Associate 3MF files to OrcaSlicer"
msgstr "Susieti .3mf failus su Orca Slicer"
@@ -9214,6 +9060,10 @@ msgstr "Susieti interneto nuorodas su Orca Slicer"
msgid "Developer"
msgstr "Developer"
#, fuzzy
msgid "Developer mode"
msgstr "Kūrėjo režimas"
msgid "Skip AMS blacklist check"
msgstr "Praleisti AMS draudžiamo sąrašo tikrinimą"
@@ -10027,9 +9877,6 @@ msgstr ""
"File upload timed out. Please check if the firmware version supports this "
"operation or verify if the printer is functioning properly."
msgid "Sending failed, please try again!"
msgstr ""
msgid "Slice ok."
msgstr "Sluoksniavimas baigtas."
@@ -10353,8 +10200,8 @@ 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\"."
"by right-click the empty position of build plate and choose \"Add Primitive"
"\"->\"Timelapse Wipe Tower\"."
msgstr ""
"Įrašant pakadrinį vaizdo įrašą be spausdinimo galvutės judesių, "
"rekomenduojama naudoti „Pakadrinio valymo bokštą“.\n"
@@ -10491,9 +10338,6 @@ msgstr "Vidinių ir išorinių tiltų greitis"
msgid "Travel speed"
msgstr "Judėjimo greitis"
msgid "Junction Deviation"
msgstr "Sujungimo nuokrypis"
msgid "Jerk(XY)"
msgstr "Pagreitis (XY)"
@@ -11378,6 +11222,9 @@ msgstr ""
"And unused printer filaments will be automatically added to the end of the "
"list."
msgid "Advanced settings"
msgstr "Advanced settings"
msgid "Add unused AMS filaments to filaments list."
msgstr "Add unused AMS filaments to filaments list."
@@ -11880,23 +11727,12 @@ msgstr "Yra naujas tinklo papildinys(%s), ar norite jį įdiegti?"
msgid "New version of Orca Slicer"
msgstr "Nauja \"Orca Slicer\" versija"
msgid "Check on Microsoft Store"
msgstr ""
msgid "Check on GitHub"
msgstr ""
msgid "Open Microsoft Store"
msgid "Check on Github"
msgstr ""
msgid "Skip this Version"
msgstr "Praleisti šią versiją"
#, c-format, boost-format
msgid ""
"New version available: %s. Please update OrcaSlicer from the Microsoft Store."
msgstr ""
msgid "Confirm and Update Nozzle"
msgstr "Patvirtinti ir atnaujinti purkštuką"
@@ -12010,9 +11846,6 @@ msgstr "Pjovimo modulis"
msgid "Auto Fire Extinguishing System"
msgstr "Auto Fire Extinguishing System"
msgid "Beta"
msgstr ""
msgid "Update firmware"
msgstr "Atnaujinti programinę įrangą"
@@ -12051,8 +11884,8 @@ msgid ""
msgstr ""
"Įterptinės programinės įrangos versija yra nenormali. Prieš spausdinant "
"reikia pataisyti ir atnaujinti. Ar norite atnaujinti dabar? Taip pat galite "
"atnaujinti vėliau spausdintuve arba atnaujinti kitą kartą paleisdami "
"\"Orca\"."
"atnaujinti vėliau spausdintuve arba atnaujinti kitą kartą paleisdami \"Orca"
"\"."
msgid "Extension Board"
msgstr "Išplėtimo plokštė"
@@ -12422,8 +12255,8 @@ msgid ""
"The prime tower is currently only supported for the Marlin, RepRap/Sprinter, "
"RepRapFirmware and Repetier G-code flavors."
msgstr ""
"Pagrindinis bokštas šiuo metu palaikomas tik \"Marlin\", \"RepRap/"
"Sprinter\", \"RepRapFirmware\" ir \"Repetier\" G-kodo tipuose."
"Pagrindinis bokštas šiuo metu palaikomas tik \"Marlin\", \"RepRap/Sprinter"
"\", \"RepRapFirmware\" ir \"Repetier\" G-kodo tipuose."
msgid "The prime tower is not supported in \"By object\" print."
msgstr "Pirminis bokštas nepalaikomas spausdinant \"Pagal objektą\"."
@@ -12672,14 +12505,6 @@ msgstr ""
msgid "Generating skirt & brim"
msgstr "Generuojamas apvadas ir kraštas"
msgid ""
"Per-object skirts cannot fit between the objects in By object print "
"sequence.\n"
"\n"
"Move the objects farther apart, reduce brim/skirt size, switch Skirt type to "
"Combined, or switch Print sequence to By layer."
msgstr ""
msgid "Exporting G-code"
msgstr "Eksportuojamas G-kodas"
@@ -12815,15 +12640,6 @@ msgstr ""
"Leidimas valdyti \"BambuLab\" spausdintuvą per trečiosios šalies spausdinimo "
"prieglobą."
msgid "Use 3MF instead of G-code"
msgstr ""
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 ""
msgid "Printer Agent"
msgstr "Printer Agent"
@@ -13263,7 +13079,7 @@ msgid "External bridge density"
msgstr "Išorinio tilto tankis"
msgid ""
"Controls the density (spacing) of external bridge lines.\n"
"Controls the density (spacing) of external bridge lines. Default is 100%.\n"
"Theoretically, 100% means a solid bridge, but due to the tendency of bridge "
"extrusions to sag, 100% may not be sufficient.\n"
"\n"
@@ -13277,14 +13093,18 @@ msgid ""
" - Pros: Can create a string-like first layer. Faster and with better "
"cooling because there is more space for air to circulate around the extruded "
"bridge.\n"
" - Cons: May lead to sagging and poorer surface finish."
" - Cons: May lead to sagging and poorer surface finish.\n"
"\n"
"Recommended range: Minimum 10% - Maximum 125%."
msgstr ""
msgid "Internal bridge density"
msgstr "Vidinių tiltų tankis"
msgid ""
"Controls the density (spacing) of internal bridge lines.\n"
"Controls the density (spacing) of internal bridge lines. Default is 100%. "
"100% means a solid internal bridge.\n"
"\n"
"Internal bridges act as intermediate support between sparse infill and top "
"solid infill and can strongly affect top surface quality.\n"
"\n"
@@ -13319,9 +13139,11 @@ msgid ""
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
#, c-format, boost-format
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the "
"nozzle diameter.\n"
"Bridge line width is expressed either as an absolute value or as a "
"percentage of the active nozzle diameter (percentages are computed from the "
"nozzle diameter).\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
@@ -15274,6 +15096,7 @@ msgstr ""
msgid "Z-buckling bias optimization (experimental)"
msgstr ""
#, c-format, boost-format
msgid ""
"Tightens the gyroid wave along the Z (vertical) axis at low infill density "
"to shorten the effective vertical column length and improve Z-axis "
@@ -15481,8 +15304,8 @@ msgid "mm/s² or %"
msgstr "mm/s² arba %"
msgid ""
"Acceleration of sparse infill. If the value is expressed as a percentage "
"(e.g. 100%), it will be calculated based on the default acceleration."
"Acceleration of sparse infill. If the value is expressed as a percentage (e."
"g. 100%), it will be calculated based on the default acceleration."
msgstr ""
"Retų užpildų pagreitis. Jei reikšmė išreikšta procentais (pvz., 100 %), ji "
"bus apskaičiuota pagal numatytąjį pagreitį."
@@ -15527,6 +15350,9 @@ msgstr "\"Klipper\" max_accel_to_decel bus pakoreguotas pagal šį pagreičio %%
msgid "Default jerk."
msgstr "Numatytasis trūkčiojimas."
msgid "Junction Deviation"
msgstr "Sujungimo nuokrypis"
msgid ""
"Marlin Firmware Junction Deviation (replaces the traditional XY Jerk "
"setting)."
@@ -15614,10 +15440,10 @@ msgstr "Visas ventiliatoriaus greitis sluoksnyje"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer "
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\". \"full_fan_speed_layer\" will be ignored if lower than "
"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"Ventiliatoriaus greitis bus didinamas tiesiškai nuo nulio sluoksnyje "
"\"close_fan_the_first_x_layers\" iki maksimalaus sluoksnyje "
@@ -16636,13 +16462,16 @@ msgid ""
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
msgid "°"
msgstr "°"
msgid "Don't alternate fill direction"
msgstr ""
msgid "Disable alternating fill direction when using Z contouring."
msgstr ""
msgid "Minimum Z height"
msgid "Minimum z height"
msgstr ""
msgid ""
@@ -17775,8 +17604,8 @@ msgid "Role base wipe speed"
msgstr "Vaidmens pagrindo nuvalymo greitis"
msgid ""
"The wipe speed is determined by the speed of the current extrusion role. "
"e.g. if a wipe action is executed immediately following an outer wall "
"The wipe speed is determined by the speed of the current extrusion role. e."
"g. if a wipe action is executed immediately following an outer wall "
"extrusion, the speed of the outer wall extrusion will be utilized for the "
"wipe action."
msgstr ""
@@ -18716,8 +18545,8 @@ msgstr "Suaktyvinti temperatūros reguliavimą"
msgid ""
"Enable this option for automated chamber temperature control. This option "
"activates the emitting of an M191 command before the "
"\"machine_start_gcode\"\n"
"activates the emitting of an M191 command before the \"machine_start_gcode"
"\"\n"
" 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"
@@ -19725,8 +19554,8 @@ msgid "Debug level"
msgstr "Derinimo lygis"
msgid ""
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, "
"5:trace\n"
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:"
"trace\n"
msgstr ""
"Nustato derinimo žurnalizavimo lygį. 0: mirtinas, 1: klaida, 2: įspėjimas, "
"3: informacija, 4: derinimas, 5: sekimas\n"
@@ -20275,13 +20104,13 @@ msgstr "Pateikto failo nepavyko perskaityti, nes jis tuščias"
msgid ""
"Unknown file format. Input file must have .stl, .obj, .amf(.xml) extension."
msgstr ""
"Nežinomas failo formatas. Įvesties failo plėtinys turi "
"būti .stl, .obj, .amf(.xml)."
"Nežinomas failo formatas. Įvesties failo plėtinys turi būti .stl, .obj, ."
"amf(.xml)."
msgid "Unknown file format. Input file must have .3mf or .zip.amf extension."
msgstr ""
"Nežinomas failo formatas. Įvesties failo plėtinys turi būti .3mf "
"arba .zip.amf."
"Nežinomas failo formatas. Įvesties failo plėtinys turi būti .3mf arba .zip."
"amf."
msgid "load_obj: failed to parse"
msgstr "load_obj: nepavyko apdoroti"
@@ -21577,8 +21406,8 @@ msgstr ""
"Ar norite jį perrašyti?"
msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you "
"selected\".\n"
"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 ""
"Būtų galima pervadinti iš anksto nustatytus nustatymus į \"Pardavėjo tipo "
@@ -21664,6 +21493,9 @@ msgstr "Spausdintuvo nustatymai"
msgid "Filament Preset Template"
msgstr "Gijos nustatymų šablonas"
msgid "Deselect All"
msgstr "Atšaukti visus"
msgid "Process Preset Template"
msgstr "Proceso nustatymų šablonas"
@@ -22180,21 +22012,9 @@ msgstr ""
msgid "Authorizing..."
msgstr ""
msgid "Error. Can't get api token for authorization"
msgstr ""
msgid "Could not parse server response."
msgstr ""
msgid "Error saving session to file"
msgstr ""
msgid "Error session check"
msgstr ""
msgid "Error during file upload"
msgstr ""
#, c-format, boost-format
msgid "Mismatched type of print host: %s"
msgstr "Neatitinka tinklinio spausdintuvo tipas: %s"
@@ -22452,9 +22272,9 @@ msgid ""
"quality but much longer print time."
msgstr ""
"Palyginti su numatytuoju 0,4 mm purkštuko profiliu, jo sluoksnio aukštis "
"mažesnis, greitis ir pagreitis mažesni, o retas užpildymo raštas yra "
"\"Gyroid\". Taigi, dėl jo mažiau matomų sluoksnio linijų ir daug geresnė "
"spausdinimo kokybė, tačiau daug ilgesnis spausdinimo laikas."
"mažesnis, greitis ir pagreitis mažesni, o retas užpildymo raštas yra \"Gyroid"
"\". Taigi, dėl jo mažiau matomų sluoksnio linijų ir daug geresnė spausdinimo "
"kokybė, tačiau daug ilgesnis spausdinimo laikas."
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
@@ -22996,105 +22816,6 @@ msgstr "Nepavyko prisijungti prie „Flashforge“ per nuoseklųjį prievadą"
msgid "Flashforge local API requires both serial number and access code."
msgstr ""
msgid "Printer returned an error"
msgstr ""
msgid "Missing system_info in response"
msgstr ""
msgid "Missing printer serial number in response"
msgstr ""
msgid "Error parsing response"
msgstr ""
msgid "ElegooLink not detected"
msgstr ""
msgid "Invalid access code"
msgstr ""
msgid "CC2 device not detected"
msgstr ""
msgid "Connection to ElegooLink is working correctly."
msgstr ""
msgid "Could not connect to ElegooLink"
msgstr ""
#, boost-format
msgid "Error code: %1%"
msgstr ""
msgid "Upload failed"
msgstr ""
msgid ""
"The file has been transferred, but some unknown errors occurred. Please "
"check the device page for the file and try to start printing again."
msgstr ""
msgid "Failed to open file for upload."
msgstr ""
msgid "Failed to read file chunk for upload."
msgstr ""
msgid "CC2 upload failed"
msgstr ""
msgid "The file is empty or could not be read."
msgstr ""
msgid "Failed to calculate file checksum."
msgstr ""
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 ""
msgid "The file is lost, please check and try again."
msgstr ""
msgid "The file is corrupted, please check and try again."
msgstr ""
msgid "Transmission abnormality, please check and try again."
msgstr ""
msgid "The file does not match the printer, please check and try again."
msgstr ""
msgid "Start print timeout"
msgstr ""
msgid "Start print failed"
msgstr ""
msgid "Connected to CrealityPrint successfully!"
msgstr ""
msgid "Could not connect to CrealityPrint"
msgstr ""
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 ""
msgid "The Hostname/IP/URL could not be parsed, please check it and try again."
msgstr ""
msgid ""
"File/data transfer interrupted. Please check the printer and network, then "
"try it again."
msgstr ""
msgid "The provided state is not correct."
msgstr "Pateikta būsena neteisinga."
@@ -23147,12 +22868,6 @@ msgstr "Krašto \"ausys\""
msgid "Please select single object."
msgstr "Pasirinkite vieną objektą."
msgid "Entering Brim Ears"
msgstr ""
msgid "Leaving Brim Ears"
msgstr ""
msgid "Zoom Out"
msgstr "Zoom Out"
@@ -23162,9 +22877,6 @@ msgstr "Zoom In"
msgid "Load skipping objects information failed. Please try again."
msgstr "Load skipping objects information failed. Please try again."
msgid "Failed to create the temporary folder."
msgstr ""
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d Selected"
@@ -23316,100 +23028,6 @@ msgstr "Number of triangular facets"
msgid "Calculating, please wait..."
msgstr "Calculating, please wait..."
msgid "PresetBundle"
msgstr ""
msgid "Bundle folder does not exist."
msgstr ""
msgid "Failed to open folder."
msgstr ""
msgid "Delete selected bundle from folder and all presets loaded from it?"
msgstr ""
msgid "Delete Bundle"
msgstr ""
msgid "Failed to remove bundle."
msgstr ""
msgid "Remove Bundle"
msgstr ""
msgid "Unsubscribe bundle?"
msgstr ""
msgid "UnsubscribeBundle"
msgstr ""
msgid "Failed to unsubscribe bundle."
msgstr ""
msgid "Unsubscribe Bundle"
msgstr ""
msgid "ExportPresetBundle"
msgstr ""
msgid "Save preset bundle"
msgstr ""
msgid ""
"Performing desktop integration failed - boost::filesystem::canonical did not "
"return appimage path."
msgstr ""
msgid "Performing desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing desktop integration failed because the application directory was "
"not found."
msgstr ""
msgid ""
"Performing desktop integration failed - could not create Gcodeviewer desktop "
"file. OrcaSlicer desktop file was probably created successfully."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - "
"boost::filesystem::canonical did not return appimage path."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing downloader desktop integration failed because the application "
"directory was not found."
msgstr ""
msgid "Desktop Integration"
msgstr ""
msgid ""
"Desktop Integration sets this binary to be searchable by the system.\n"
"\n"
"Press \"Perform\" to proceed."
msgstr ""
msgid "The download has failed"
msgstr ""
#. TRN %1% = file path
#, boost-format
msgid "Can't create file at %1%"
msgstr ""
msgid "Archive preview"
msgstr ""
msgid "Open File"
msgstr ""
msgid ""
"The filament may not be compatible with the current machine settings. "
"Generic filament presets will be used."
@@ -23821,12 +23439,6 @@ msgstr ""
"pavyzdžiui, ABS, tinkamai padidinus kaitinimo pagrindo temperatūrą galima "
"sumažinti deformavimosi tikimybę."
#~ msgid "part selection"
#~ msgstr "detalės pasirinkimas"
#~ msgid "°"
#~ msgstr "°"
#~ msgid ""
#~ "The Wipe option is not available when using the Firmware Retraction "
#~ "mode.\n"
@@ -24177,6 +23789,9 @@ msgstr ""
#~ msgid "Mouse wheel:"
#~ msgstr "Pelės ratukas:"
#~ msgid "Object selection"
#~ msgstr "objekto pasirinkimas"
#~ msgid "Pass 1"
#~ msgstr "1 fazė"
+92 -478
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-26 11:35+0800\n"
"POT-Creation-Date: 2026-06-08 00:18+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -191,15 +191,6 @@ msgstr "Klaar"
msgid "Support Generated"
msgstr "Ondersteuning gegenereerd"
msgid "Entering Paint-on supports"
msgstr ""
msgid "Leaving Paint-on supports"
msgstr ""
msgid "Paint-on supports editing"
msgstr ""
msgid "Gizmo-Place on Face"
msgstr "Plaats op vlak"
@@ -288,15 +279,6 @@ msgstr "Geschilderd met filament %1%"
msgid "To:"
msgstr "Naar:"
msgid "Entering color painting"
msgstr ""
msgid "Leaving color painting"
msgstr ""
msgid "Color painting editing"
msgstr ""
msgid "Paint-on fuzzy skin"
msgstr "Paint-on fuzzy skin"
@@ -317,15 +299,6 @@ msgstr ""
msgid "Enable painted fuzzy skin for this object"
msgstr "Enable painted fuzzy skin for this object"
msgid "Entering Paint-on fuzzy skin"
msgstr ""
msgid "Leaving Paint-on fuzzy skin"
msgstr ""
msgid "Paint-on fuzzy skin editing"
msgstr ""
msgid "Move"
msgstr "Verplaats"
@@ -715,15 +688,6 @@ msgstr "Cut by line"
msgid "Delete connector"
msgstr "Delete connector"
msgid "Entering Cut gizmo"
msgstr ""
msgid "Leaving Cut gizmo"
msgstr ""
msgid "Cut gizmo editing"
msgstr ""
msgid "Mesh name"
msgstr "Meshnaam"
@@ -1593,12 +1557,6 @@ msgstr "Parallel distance:"
msgid "Flip by Face 2"
msgstr "Flip by Face 2"
msgid "Entering Measure gizmo"
msgstr ""
msgid "Leaving Measure gizmo"
msgstr ""
msgid "Assemble"
msgstr "Monteren"
@@ -1624,19 +1582,16 @@ msgid "Warning: please select Point's or Circle's feature."
msgstr "Warning: please select Point's or Circle's feature."
msgid ""
"It is recommended to assemble objects first,\n"
"because they are restricted to the bed \n"
"It is recommended to assemble the objects first,\n"
"because the objects is restriced to bed \n"
"and only parts can be lifted."
msgstr ""
"It is recommended to assemble the objects first,\n"
"because the objects is restriced to bed \n"
"and only parts can be lifted."
msgid "Face and face assembly"
msgstr ""
msgid "Entering Assembly gizmo"
msgstr ""
msgid "Leaving Assembly gizmo"
msgstr ""
msgstr "Face and face assembly"
msgid "Ctrl+"
msgstr "Ctrl+"
@@ -1699,8 +1654,8 @@ msgstr "AMF files"
msgid "3MF files"
msgstr "3MF files"
msgid "G-code 3MF files"
msgstr "G-code 3MF files"
msgid "Gcode 3MF files"
msgstr "Gcode 3MF files"
msgid "G-code files"
msgstr "G-code files"
@@ -1759,35 +1714,6 @@ msgstr "OrcaSlicer kreeg een onbehandelde uitzondering: %1%"
msgid "Untitled"
msgstr "Naamloos"
msgid ""
"Since version 2.4.0, OrcaSlicer syncs user profiles through Orca Cloud "
"instead of Bambu Cloud.\n"
"\n"
"To migrate your existing profiles, log in to Orca Cloud and they will be "
"transferred automatically. To learn more about how OrcaSlicer stores and "
"syncs your profiles, or to migrate your presets manually, check out our "
"wiki.\n"
"\n"
"If you did not use Bambu Cloud to sync profiles, this change does not affect "
"you and you can safely ignore this message."
msgstr ""
"Sinds versie 2.4.0 synchroniseert OrcaSlicer gebruikersprofielen via Orca "
"Cloud in plaats van Bambu Cloud.\n"
"\n"
"Om je bestaande profielen te migreren, log je in bij Orca Cloud en worden ze "
"automatisch overgezet. Raadpleeg onze wiki voor meer informatie over hoe "
"OrcaSlicer je profielen opslaat en synchroniseert, of om je voorinstellingen "
"handmatig te migreren.\n"
"\n"
"Als je Bambu Cloud niet gebruikte om profielen te synchroniseren, heeft deze "
"wijziging geen invloed op jou en kun je dit bericht veilig negeren."
msgid "Profile syncing change"
msgstr ""
msgid "Learn more"
msgstr ""
msgid "Reloading network plug-in..."
msgstr "Reloading network plug-in..."
@@ -1819,14 +1745,6 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is "
"installed.\n"
"Please install it manually from https://developer.microsoft.com/microsoft-"
"edge/webview2/ and restart Orca Slicer."
msgstr ""
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
msgstr "Resources path does not exist or is not a directory: %s"
@@ -1956,20 +1874,6 @@ msgid ""
"preset."
msgstr ""
msgid ""
"Cloud sync conflict: 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 ""
msgid ""
"Cloud sync conflict: there was an unexpected or unidentified preset "
"conflict.\n"
"Pull downloads the cloud copy. Force push overwrites it with your local "
"preset."
msgstr ""
msgid ""
"Force push will overwrite the cloud copy with your local preset changes.\n"
"Do you want to continue?"
@@ -3268,52 +3172,6 @@ msgstr "The maximum temperature cannot exceed "
msgid "The minmum temperature should not be less than "
msgstr "The minmum temperature should not be less than "
msgid "Type to filter..."
msgstr ""
msgid "All"
msgstr "Alles"
msgid "No selected items..."
msgstr ""
msgid "All items selected..."
msgstr ""
msgid "No matching items..."
msgstr ""
msgid "Deselect All"
msgstr "Alles deselecteren"
msgid "Select visible"
msgstr ""
msgid "Deselect visible"
msgstr ""
msgid "Filter selected"
msgstr ""
msgid "Filter nonSelected"
msgstr ""
msgid "Simple settings"
msgstr ""
msgid "Advanced settings"
msgstr "Advanced settings"
msgid "Expert settings"
msgstr ""
#, fuzzy
msgid "Developer mode"
msgstr "Ontwikkelmodus"
msgid "Launch troubleshoot center"
msgstr ""
msgid ""
"All the selected objects are on a locked plate.\n"
"Cannot auto-arrange these objects."
@@ -3590,9 +3448,6 @@ msgstr "Font doesn't have any shape for given text."
msgid "There is no valid surface for text projection."
msgstr "There is no valid surface for text projection."
msgid "An unexpected error occurred"
msgstr ""
msgid "Thermal Preconditioning for first layer optimization"
msgstr "Thermal Preconditioning for first layer optimization"
@@ -5520,7 +5375,10 @@ msgstr "Bewerkingsgebied vergroten/verkleinen"
msgid "Sequence"
msgstr "Reeks"
msgid "Object selection"
msgid "Object Selection"
msgstr ""
msgid "Part Selection"
msgstr ""
msgid "number keys"
@@ -5709,6 +5567,9 @@ msgstr "Labels"
msgid "Paint Toolbar"
msgstr "Kleur instellingen"
msgid "part selection"
msgstr "onderdeel selectie"
msgid "Explosion Ratio"
msgstr "Vergrotings ratio"
@@ -5733,7 +5594,7 @@ msgstr "Volume:"
msgid "Size:"
msgstr "Maat:"
#, boost-format
#, c-format, boost-format
msgid ""
"Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -5962,12 +5823,12 @@ msgstr "Printplaat"
msgid "Export G-code file"
msgstr "G-codebestand exporteren"
msgid "Export plate sliced file"
msgstr "Exporteer plate sliced bestand"
msgid "Send"
msgstr "Versturen"
msgid "Export plate sliced file"
msgstr "Exporteer plate sliced bestand"
msgid "Export all sliced file"
msgstr "Alle sliced bestanden exporteren"
@@ -8098,7 +7959,7 @@ msgstr ""
msgid "The selected object couldn't be split."
msgstr "Het geselecteerde object kan niet opgesplitst worden."
msgid "Disable Auto-Drop to preserve Z positioning?\n"
msgid "Disable Auto-Drop to preserve z positioning?\n"
msgstr ""
msgid "Object with floating parts was detected"
@@ -8787,6 +8648,9 @@ msgstr "Group user filament presets"
msgid "Group user filament presets based on selection"
msgstr "Group user filament presets based on selection"
msgid "All"
msgstr "Alles"
msgid "By type"
msgstr "By type"
@@ -8990,16 +8854,6 @@ msgstr ""
msgid "Renders cast shadows on the plate in realistic view."
msgstr ""
msgid "Smooth normals"
msgstr ""
msgid ""
"Applies smooth normals to the realistic view.\n"
"\n"
"Requires manual scene reload to take effect (right-click on 3D view → "
"\"Reload All\")."
msgstr ""
msgid "Anti-aliasing"
msgstr ""
@@ -9171,14 +9025,6 @@ msgstr "Download Network Plug-in"
msgid "Associate files to OrcaSlicer"
msgstr "Koppel bestanden aan OrcaSlicer"
msgid ""
"File associations for the Microsoft Store version are managed by Windows "
"Settings."
msgstr ""
msgid "Open Windows Default Apps Settings"
msgstr ""
#, fuzzy
msgid "Associate 3MF files to OrcaSlicer"
msgstr "Koppel .3mf-bestanden aan OrcaSlicer"
@@ -9220,6 +9066,10 @@ msgstr "Koppel weblinks aan OrcaSlicer"
msgid "Developer"
msgstr "Ontwikkelaar"
#, fuzzy
msgid "Developer mode"
msgstr "Ontwikkelmodus"
msgid "Skip AMS blacklist check"
msgstr "AMS-zwartelijstcontrole overslaan"
@@ -10034,9 +9884,6 @@ msgstr ""
"File upload timed out. Please check if the firmware version supports this "
"operation or verify if the printer is functioning properly."
msgid "Sending failed, please try again!"
msgstr ""
msgid "Slice ok."
msgstr "Slice gelukt."
@@ -10359,8 +10206,8 @@ 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\"."
"by right-click the empty position of build plate and choose \"Add Primitive"
"\"->\"Timelapse Wipe Tower\"."
msgstr ""
"Bij het opnemen van timelapse zonder toolhead is het aan te raden om een "
"„Timelapse Wipe Tower” toe te voegen \n"
@@ -10491,9 +10338,6 @@ msgstr "Snelheid instellen voor externe en interne bruggen"
msgid "Travel speed"
msgstr "Verplaatsing-sneleheid"
msgid "Junction Deviation"
msgstr "Junction Deviation"
msgid "Jerk(XY)"
msgstr "Jerk(XY)"
@@ -11376,6 +11220,9 @@ msgstr ""
"And unused printer filaments will be automatically added to the end of the "
"list."
msgid "Advanced settings"
msgstr "Advanced settings"
msgid "Add unused AMS filaments to filaments list."
msgstr "Add unused AMS filaments to filaments list."
@@ -11882,23 +11729,12 @@ msgstr ""
msgid "New version of Orca Slicer"
msgstr "Nieuwe versie van Orca Slicer"
msgid "Check on Microsoft Store"
msgstr ""
msgid "Check on GitHub"
msgstr ""
msgid "Open Microsoft Store"
msgid "Check on Github"
msgstr ""
msgid "Skip this Version"
msgstr "Deze versie overslaan"
#, c-format, boost-format
msgid ""
"New version available: %s. Please update OrcaSlicer from the Microsoft Store."
msgstr ""
msgid "Confirm and Update Nozzle"
msgstr "Bevestig en update het mondstuk"
@@ -12012,9 +11848,6 @@ msgstr "Cutting Module"
msgid "Auto Fire Extinguishing System"
msgstr "Auto Fire Extinguishing System"
msgid "Beta"
msgstr ""
msgid "Update firmware"
msgstr "Firmware bijwerken"
@@ -12678,14 +12511,6 @@ msgstr ""
msgid "Generating skirt & brim"
msgstr "Skirt en brim worden gegenereerd"
msgid ""
"Per-object skirts cannot fit between the objects in By object print "
"sequence.\n"
"\n"
"Move the objects farther apart, reduce brim/skirt size, switch Skirt type to "
"Combined, or switch Print sequence to By layer."
msgstr ""
msgid "Exporting G-code"
msgstr "G-code exporteren"
@@ -12822,15 +12647,6 @@ msgstr "Gebruik een printhost van derden"
msgid "Allow controlling BambuLab's printer through 3rd party print hosts."
msgstr "Toestaan om een BambuLab printer te besturen via printhosts van derden"
msgid "Use 3MF instead of G-code"
msgstr ""
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 ""
msgid "Printer Agent"
msgstr "Printer Agent"
@@ -13267,7 +13083,7 @@ msgid "External bridge density"
msgstr "External bridge density"
msgid ""
"Controls the density (spacing) of external bridge lines.\n"
"Controls the density (spacing) of external bridge lines. Default is 100%.\n"
"Theoretically, 100% means a solid bridge, but due to the tendency of bridge "
"extrusions to sag, 100% may not be sufficient.\n"
"\n"
@@ -13281,14 +13097,18 @@ msgid ""
" - Pros: Can create a string-like first layer. Faster and with better "
"cooling because there is more space for air to circulate around the extruded "
"bridge.\n"
" - Cons: May lead to sagging and poorer surface finish."
" - Cons: May lead to sagging and poorer surface finish.\n"
"\n"
"Recommended range: Minimum 10% - Maximum 125%."
msgstr ""
msgid "Internal bridge density"
msgstr "Internal bridge density"
msgid ""
"Controls the density (spacing) of internal bridge lines.\n"
"Controls the density (spacing) of internal bridge lines. Default is 100%. "
"100% means a solid internal bridge.\n"
"\n"
"Internal bridges act as intermediate support between sparse infill and top "
"solid infill and can strongly affect top surface quality.\n"
"\n"
@@ -13323,9 +13143,11 @@ msgid ""
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
#, c-format, boost-format
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the "
"nozzle diameter.\n"
"Bridge line width is expressed either as an absolute value or as a "
"percentage of the active nozzle diameter (percentages are computed from the "
"nozzle diameter).\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
@@ -15272,6 +15094,7 @@ msgstr ""
msgid "Z-buckling bias optimization (experimental)"
msgstr ""
#, c-format, boost-format
msgid ""
"Tightens the gyroid wave along the Z (vertical) axis at low infill density "
"to shorten the effective vertical column length and improve Z-axis "
@@ -15481,8 +15304,8 @@ msgid "mm/s² or %"
msgstr "mm/s² of %"
msgid ""
"Acceleration of sparse infill. If the value is expressed as a percentage "
"(e.g. 100%), it will be calculated based on the default acceleration."
"Acceleration of sparse infill. If the value is expressed as a percentage (e."
"g. 100%), it will be calculated based on the default acceleration."
msgstr ""
"Versnelling van de schaarse invulling. Als de waarde wordt uitgedrukt als "
"een percentage (bijvoorbeeld 100%), wordt deze berekend op basis van de "
@@ -15530,6 +15353,9 @@ msgstr ""
msgid "Default jerk."
msgstr "Default jerk."
msgid "Junction Deviation"
msgstr "Junction Deviation"
msgid ""
"Marlin Firmware Junction Deviation (replaces the traditional XY Jerk "
"setting)."
@@ -15619,16 +15445,16 @@ msgstr "Volledige snelheid op laag"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer "
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\". \"full_fan_speed_layer\" will be ignored if lower than "
"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer "
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\". \"full_fan_speed_layer\" will be ignored if lower than "
"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgid "layer"
msgstr "laag"
@@ -16632,13 +16458,16 @@ msgid ""
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
msgid "°"
msgstr "°"
msgid "Don't alternate fill direction"
msgstr ""
msgid "Disable alternating fill direction when using Z contouring."
msgstr ""
msgid "Minimum Z height"
msgid "Minimum z height"
msgstr ""
msgid ""
@@ -17777,13 +17606,13 @@ msgid "Role base wipe speed"
msgstr "Role base wipe speed"
msgid ""
"The wipe speed is determined by the speed of the current extrusion role. "
"e.g. if a wipe action is executed immediately following an outer wall "
"The wipe speed is determined by the speed of the current extrusion role. e."
"g. if a wipe action is executed immediately following an outer wall "
"extrusion, the speed of the outer wall extrusion will be utilized for the "
"wipe action."
msgstr ""
"The wipe speed is determined by the speed of the current extrusion role. "
"e.g. if a wipe action is executed immediately following an outer wall "
"The wipe speed is determined by the speed of the current extrusion role. e."
"g. if a wipe action is executed immediately following an outer wall "
"extrusion, the speed of the outer wall extrusion will be utilized for the "
"wipe action."
@@ -18727,8 +18556,8 @@ msgstr "Temperatuurregeling activeren"
msgid ""
"Enable this option for automated chamber temperature control. This option "
"activates the emitting of an M191 command before the "
"\"machine_start_gcode\"\n"
"activates the emitting of an M191 command before the \"machine_start_gcode"
"\"\n"
" 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"
@@ -18738,8 +18567,8 @@ msgid ""
"heater is installed."
msgstr ""
"Enable this option for automated chamber temperature control. This option "
"activates the emitting of an M191 command before the "
"\"machine_start_gcode\"\n"
"activates the emitting of an M191 command before the \"machine_start_gcode"
"\"\n"
" 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"
@@ -19302,11 +19131,10 @@ msgid ""
"Wipe tower is only compatible with relative mode. It is recommended on most "
"printers. Default is checked."
msgstr ""
"Relatieve extrusie wordt aanbevolen bij gebruik van de optie "
"\"label_objects\". Sommige extruders werken beter als deze optie niet is "
"aangevinkt (absolute extrusiemodus). Wipe tower is alleen compatibel met "
"relatieve modus. Het wordt aanbevolen op de meeste printers. Standaard is "
"aangevinkt"
"Relatieve extrusie wordt aanbevolen bij gebruik van de optie \"label_objects"
"\". Sommige extruders werken beter als deze optie niet is aangevinkt "
"(absolute extrusiemodus). Wipe tower is alleen compatibel met relatieve "
"modus. Het wordt aanbevolen op de meeste printers. Standaard is aangevinkt"
msgid ""
"Classic wall generator produces walls with constant extrusion width and for "
@@ -19734,11 +19562,11 @@ msgid "Debug level"
msgstr "Debuggen level"
msgid ""
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, "
"5:trace\n"
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:"
"trace\n"
msgstr ""
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, "
"5:trace\n"
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:"
"trace\n"
msgid "Log file"
msgstr ""
@@ -21575,12 +21403,12 @@ msgstr ""
"Wil je het herschrijven?"
msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you "
"selected\".\n"
"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 ""
"We would rename the presets as \"Vendor Type Serial @printer you "
"selected\".\n"
"We would rename the presets as \"Vendor Type Serial @printer you selected"
"\".\n"
"To add preset for more printers, please go to printer selection"
msgid "Create Printer/Nozzle"
@@ -21662,6 +21490,9 @@ msgstr "Vooraf ingestelde printer"
msgid "Filament Preset Template"
msgstr "Filament vooraf ingestelde sjabloon"
msgid "Deselect All"
msgstr "Alles deselecteren"
msgid "Process Preset Template"
msgstr "Vooraf ingesteld proces sjabloon"
@@ -22168,21 +21999,9 @@ msgstr ""
msgid "Authorizing..."
msgstr ""
msgid "Error. Can't get api token for authorization"
msgstr ""
msgid "Could not parse server response."
msgstr ""
msgid "Error saving session to file"
msgstr ""
msgid "Error session check"
msgstr ""
msgid "Error during file upload"
msgstr ""
#, c-format, boost-format
msgid "Mismatched type of print host: %s"
msgstr "Verkeerd type afdrukhost: %s"
@@ -22973,105 +22792,6 @@ msgstr "Could not connect to Flashforge via serial"
msgid "Flashforge local API requires both serial number and access code."
msgstr ""
msgid "Printer returned an error"
msgstr ""
msgid "Missing system_info in response"
msgstr ""
msgid "Missing printer serial number in response"
msgstr ""
msgid "Error parsing response"
msgstr ""
msgid "ElegooLink not detected"
msgstr ""
msgid "Invalid access code"
msgstr ""
msgid "CC2 device not detected"
msgstr ""
msgid "Connection to ElegooLink is working correctly."
msgstr ""
msgid "Could not connect to ElegooLink"
msgstr ""
#, boost-format
msgid "Error code: %1%"
msgstr ""
msgid "Upload failed"
msgstr ""
msgid ""
"The file has been transferred, but some unknown errors occurred. Please "
"check the device page for the file and try to start printing again."
msgstr ""
msgid "Failed to open file for upload."
msgstr ""
msgid "Failed to read file chunk for upload."
msgstr ""
msgid "CC2 upload failed"
msgstr ""
msgid "The file is empty or could not be read."
msgstr ""
msgid "Failed to calculate file checksum."
msgstr ""
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 ""
msgid "The file is lost, please check and try again."
msgstr ""
msgid "The file is corrupted, please check and try again."
msgstr ""
msgid "Transmission abnormality, please check and try again."
msgstr ""
msgid "The file does not match the printer, please check and try again."
msgstr ""
msgid "Start print timeout"
msgstr ""
msgid "Start print failed"
msgstr ""
msgid "Connected to CrealityPrint successfully!"
msgstr ""
msgid "Could not connect to CrealityPrint"
msgstr ""
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 ""
msgid "The Hostname/IP/URL could not be parsed, please check it and try again."
msgstr ""
msgid ""
"File/data transfer interrupted. Please check the printer and network, then "
"try it again."
msgstr ""
msgid "The provided state is not correct."
msgstr "The provided state is not correct."
@@ -23124,12 +22844,6 @@ msgstr "Rand Oren"
msgid "Please select single object."
msgstr "Selecteer een enkel object."
msgid "Entering Brim Ears"
msgstr ""
msgid "Leaving Brim Ears"
msgstr ""
msgid "Zoom Out"
msgstr "Uitzoomen"
@@ -23139,9 +22853,6 @@ msgstr "Inzoomen"
msgid "Load skipping objects information failed. Please try again."
msgstr "Load skipping objects information failed. Please try again."
msgid "Failed to create the temporary folder."
msgstr ""
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d geselecteerd"
@@ -23293,100 +23004,6 @@ msgstr "Number of triangular facets"
msgid "Calculating, please wait..."
msgstr "Calculating, please wait..."
msgid "PresetBundle"
msgstr ""
msgid "Bundle folder does not exist."
msgstr ""
msgid "Failed to open folder."
msgstr ""
msgid "Delete selected bundle from folder and all presets loaded from it?"
msgstr ""
msgid "Delete Bundle"
msgstr ""
msgid "Failed to remove bundle."
msgstr ""
msgid "Remove Bundle"
msgstr ""
msgid "Unsubscribe bundle?"
msgstr ""
msgid "UnsubscribeBundle"
msgstr ""
msgid "Failed to unsubscribe bundle."
msgstr ""
msgid "Unsubscribe Bundle"
msgstr ""
msgid "ExportPresetBundle"
msgstr ""
msgid "Save preset bundle"
msgstr ""
msgid ""
"Performing desktop integration failed - boost::filesystem::canonical did not "
"return appimage path."
msgstr ""
msgid "Performing desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing desktop integration failed because the application directory was "
"not found."
msgstr ""
msgid ""
"Performing desktop integration failed - could not create Gcodeviewer desktop "
"file. OrcaSlicer desktop file was probably created successfully."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - "
"boost::filesystem::canonical did not return appimage path."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing downloader desktop integration failed because the application "
"directory was not found."
msgstr ""
msgid "Desktop Integration"
msgstr ""
msgid ""
"Desktop Integration sets this binary to be searchable by the system.\n"
"\n"
"Press \"Perform\" to proceed."
msgstr ""
msgid "The download has failed"
msgstr ""
#. TRN %1% = file path
#, boost-format
msgid "Can't create file at %1%"
msgstr ""
msgid "Archive preview"
msgstr ""
msgid "Open File"
msgstr ""
msgid ""
"The filament may not be compatible with the current machine settings. "
"Generic filament presets will be used."
@@ -23797,12 +23414,6 @@ msgstr ""
"kromtrekken, zoals ABS, een juiste verhoging van de temperatuur van het "
"warmtebed de kans op kromtrekken kan verkleinen?"
#~ msgid "part selection"
#~ msgstr "onderdeel selectie"
#~ msgid "°"
#~ msgstr "°"
#~ msgid ""
#~ "The Wipe option is not available when using the Firmware Retraction "
#~ "mode.\n"
@@ -24012,9 +23623,9 @@ msgstr ""
#~ "Filament to print support base and raft. \"Default\" means no specific "
#~ "filament for support and current filament is used."
#~ msgstr ""
#~ "Filament voor het printen van ondersteuning (support) en raft. "
#~ "\"Standaard\" betekent geen specifiek filament voor ondersteuning "
#~ "(support) en het huidige filament wordt gebruikt."
#~ "Filament voor het printen van ondersteuning (support) en raft. \"Standaard"
#~ "\" betekent geen specifiek filament voor ondersteuning (support) en het "
#~ "huidige filament wordt gebruikt."
#~ msgid ""
#~ "Filament to print support interface. \"Default\" means no specific "
@@ -24151,6 +23762,9 @@ msgstr ""
#~ msgid "Mouse wheel:"
#~ msgstr "Muiswiel:"
#~ msgid "Object selection"
#~ msgstr "Objectselectie"
#~ msgid "Pass 1"
#~ msgstr "Fase 1"
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+85 -481
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OrcaSlicer V2.3.2 beta2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-26 11:35+0800\n"
"POT-Creation-Date: 2026-06-08 00:18+0800\n"
"PO-Revision-Date: 2026-02-25 13:38+0300\n"
"Last-Translator: Felix14_v2\n"
"Language-Team: Felix14_v2 (ДС/ТГ: @felix14_v2, почта: aleks111001@list.ru), "
@@ -16,8 +16,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
"X-Generator: Poedit 3.8\n"
# В большинстве мест подставляется в "%s экструдер", но также тянется и в
@@ -214,15 +214,6 @@ msgstr "Готово"
msgid "Support Generated"
msgstr "Поддержка сгенерирована"
msgid "Entering Paint-on supports"
msgstr ""
msgid "Leaving Paint-on supports"
msgstr ""
msgid "Paint-on supports editing"
msgstr ""
msgid "Gizmo-Place on Face"
msgstr "Гизмо: Поверхностью на стол"
@@ -311,15 +302,6 @@ msgstr "Окрашено с использованием прутка %1%"
msgid "To:"
msgstr "Заменить на:"
msgid "Entering color painting"
msgstr ""
msgid "Leaving color painting"
msgstr ""
msgid "Color painting editing"
msgstr ""
msgid "Paint-on fuzzy skin"
msgstr "Рисование нечёткой оболочки"
@@ -340,15 +322,6 @@ msgstr ""
msgid "Enable painted fuzzy skin for this object"
msgstr "Включить нечёткую оболочку для модели"
msgid "Entering Paint-on fuzzy skin"
msgstr ""
msgid "Leaving Paint-on fuzzy skin"
msgstr ""
msgid "Paint-on fuzzy skin editing"
msgstr ""
msgid "Move"
msgstr "Перемещение"
@@ -745,15 +718,6 @@ msgstr "Разрез по линии"
msgid "Delete connector"
msgstr "Удалить соединение"
msgid "Entering Cut gizmo"
msgstr ""
msgid "Leaving Cut gizmo"
msgstr ""
msgid "Cut gizmo editing"
msgstr ""
msgid "Mesh name"
msgstr "Название"
@@ -1639,12 +1603,6 @@ msgstr "Расстояние между параллельными граням
msgid "Flip by Face 2"
msgstr "Перевернуть грань 2"
msgid "Entering Measure gizmo"
msgstr ""
msgid "Leaving Measure gizmo"
msgstr ""
# при выборе на столе
msgid "Assemble"
msgstr "Объединить в сборку"
@@ -1674,20 +1632,17 @@ msgid "Warning: please select Point's or Circle's feature."
msgstr "Внимание: выберите точку или окружность."
msgid ""
"It is recommended to assemble objects first,\n"
"because they are restricted to the bed \n"
"It is recommended to assemble the objects first,\n"
"because the objects is restriced to bed \n"
"and only parts can be lifted."
msgstr ""
"Рекомендуется сначала совместить модели \n"
"и только потом собирать их части, так как\n"
"части не ограничены плоскостью стола."
msgid "Face and face assembly"
msgstr "Сборка по граням"
msgid "Entering Assembly gizmo"
msgstr ""
msgid "Leaving Assembly gizmo"
msgstr ""
msgid "Ctrl+"
msgstr "Ctrl+"
@@ -1755,7 +1710,7 @@ msgid "3MF files"
msgstr "Файлы 3MF"
# В окне выбора файла
msgid "G-code 3MF files"
msgid "Gcode 3MF files"
msgstr "Файлы G-code 3MF"
# В окне выбора файла
@@ -1819,36 +1774,6 @@ msgstr "Неизвестная ошибка OrcaSlicer : %1%"
msgid "Untitled"
msgstr "Без названия"
msgid ""
"Since version 2.4.0, OrcaSlicer syncs user profiles through Orca Cloud "
"instead of Bambu Cloud.\n"
"\n"
"To migrate your existing profiles, log in to Orca Cloud and they will be "
"transferred automatically. To learn more about how OrcaSlicer stores and "
"syncs your profiles, or to migrate your presets manually, check out our "
"wiki.\n"
"\n"
"If you did not use Bambu Cloud to sync profiles, this change does not affect "
"you and you can safely ignore this message."
msgstr ""
"Начиная с версии 2.4.0, OrcaSlicer синхронизирует пользовательские профили "
"через Orca Cloud вместо Bambu Cloud.\n"
"\n"
"Чтобы перенести существующие профили, войдите в Orca Cloud, и они будут "
"перенесены автоматически. Чтобы узнать больше о том, как OrcaSlicer хранит и "
"синхронизирует ваши профили, или перенести профили вручную, посетите нашу "
"вики.\n"
"\n"
"Если вы не использовали Bambu Cloud для синхронизации профилей, это "
"изменение вас не затрагивает, и вы можете спокойно проигнорировать это "
"сообщение."
msgid "Profile syncing change"
msgstr ""
msgid "Learn more"
msgstr ""
msgid "Reloading network plug-in..."
msgstr "Перезагрузка сетевого плагина..."
@@ -1880,14 +1805,6 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is "
"installed.\n"
"Please install it manually from https://developer.microsoft.com/microsoft-"
"edge/webview2/ and restart Orca Slicer."
msgstr ""
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
msgstr "Путь не существует или не является каталогом: %s"
@@ -2020,20 +1937,6 @@ msgid ""
"preset."
msgstr ""
msgid ""
"Cloud sync conflict: 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 ""
msgid ""
"Cloud sync conflict: there was an unexpected or unidentified preset "
"conflict.\n"
"Pull downloads the cloud copy. Force push overwrites it with your local "
"preset."
msgstr ""
msgid ""
"Force push will overwrite the cloud copy with your local preset changes.\n"
"Do you want to continue?"
@@ -2379,9 +2282,9 @@ msgid ""
"No - Do not change these settings for me"
msgstr ""
"На верхней поверхности модели присутствует рельефный текст. Для достижения "
"оптимального результата рекомендуется установить «Порог одного периметра» "
"(min_width_top_surface) равным 0, чтобы избежать проблем в работе настройки "
"«Только один периметр на верхней поверхности».\n"
"оптимального результата рекомендуется установить «Порог одного "
"периметра» (min_width_top_surface) равным 0, чтобы избежать проблем в работе "
"настройки «Только один периметр на верхней поверхности».\n"
"\n"
"Да – применить рекомендуемые настройки\n"
"Нет – ничего не менять"
@@ -3360,54 +3263,6 @@ msgstr "Температура не должна превышать "
msgid "The minmum temperature should not be less than "
msgstr "Температура не должна быть ниже "
msgid "Type to filter..."
msgstr ""
# в Сохранение толщины вертикальной оболочки.
# было Везде, но из-за условия совместимости изменено.... как тогда быть?
msgid "All"
msgstr "Все"
msgid "No selected items..."
msgstr ""
msgid "All items selected..."
msgstr ""
msgid "No matching items..."
msgstr ""
msgid "Deselect All"
msgstr "Снять выбор со всего"
msgid "Select visible"
msgstr ""
msgid "Deselect visible"
msgstr ""
msgid "Filter selected"
msgstr ""
msgid "Filter nonSelected"
msgstr ""
msgid "Simple settings"
msgstr ""
msgid "Advanced settings"
msgstr "Расширенные настройки"
msgid "Expert settings"
msgstr ""
#, fuzzy
msgid "Developer mode"
msgstr "Режим разработчика"
msgid "Launch troubleshoot center"
msgstr ""
msgid ""
"All the selected objects are on a locked plate.\n"
"Cannot auto-arrange these objects."
@@ -3696,9 +3551,6 @@ msgstr "В шрифте отсутствуют данные для создан
msgid "There is no valid surface for text projection."
msgstr "Невозможно спроецировать текст."
msgid "An unexpected error occurred"
msgstr ""
msgid "Thermal Preconditioning for first layer optimization"
msgstr "Преднагрев для оптимизации первого слоя"
@@ -5685,7 +5537,10 @@ msgstr "Изменить размер инструмента"
msgid "Sequence"
msgstr "Последовательность"
msgid "Object selection"
msgid "Object Selection"
msgstr ""
msgid "Part Selection"
msgstr ""
msgid "number keys"
@@ -5879,6 +5734,9 @@ msgstr "Имена моделей"
msgid "Paint Toolbar"
msgstr "Панель рисования"
msgid "part selection"
msgstr "Выбрать часть"
msgid "Explosion Ratio"
msgstr "Разнесение"
@@ -5903,7 +5761,7 @@ msgstr "Объём:"
msgid "Size:"
msgstr "Размер:"
#, boost-format
#, c-format, boost-format
msgid ""
"Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -6153,14 +6011,14 @@ msgstr "Распечатать стол"
msgid "Export G-code file"
msgstr "Экспорт в G-код"
msgid "Export plate sliced file"
msgstr "Экспорт стола в файл проекта"
# ??????? Используется в двух местах или уже исправили? – Судя по коду,
# вызывается аж в четырёх местах (Felix) UPD: уже в 5
msgid "Send"
msgstr "Отправить"
msgid "Export plate sliced file"
msgstr "Экспорт стола в файл проекта"
msgid "Export all sliced file"
msgstr "Экспорт всех столов в файл проекта"
@@ -8318,7 +8176,7 @@ msgstr ""
msgid "The selected object couldn't be split."
msgstr "Невозможно разделить выбранную модель."
msgid "Disable Auto-Drop to preserve Z positioning?\n"
msgid "Disable Auto-Drop to preserve z positioning?\n"
msgstr ""
msgid "Object with floating parts was detected"
@@ -9017,6 +8875,11 @@ msgstr ""
"Объединять пользовательские профили материалов в подгруппы по выбранному "
"критерию."
# в Сохранение толщины вертикальной оболочки.
# было Везде, но из-за условия совместимости изменено.... как тогда быть?
msgid "All"
msgstr "Все"
msgid "By type"
msgstr "Тип материала"
@@ -9231,16 +9094,6 @@ msgstr ""
msgid "Renders cast shadows on the plate in realistic view."
msgstr ""
msgid "Smooth normals"
msgstr ""
msgid ""
"Applies smooth normals to the realistic view.\n"
"\n"
"Requires manual scene reload to take effect (right-click on 3D view → "
"\"Reload All\")."
msgstr ""
msgid "Anti-aliasing"
msgstr ""
@@ -9407,14 +9260,6 @@ msgstr "Загрузить сетевой плагин"
msgid "Associate files to OrcaSlicer"
msgstr "Открытие файлов по умолчанию"
msgid ""
"File associations for the Microsoft Store version are managed by Windows "
"Settings."
msgstr ""
msgid "Open Windows Default Apps Settings"
msgstr ""
msgid "Associate 3MF files to OrcaSlicer"
msgstr "Открывать файлы 3MF в OrcaSlicer"
@@ -9446,6 +9291,10 @@ msgstr "Открытие ссылок в OrcaSlicer"
msgid "Developer"
msgstr "Разработка"
#, fuzzy
msgid "Developer mode"
msgstr "Режим разработчика"
msgid "Skip AMS blacklist check"
msgstr "Пропуск проверки материалов в AMS из файла чёрного списка"
@@ -10275,9 +10124,6 @@ msgstr ""
"Превышено время ожидания отправки файла. Убедитесь, что прошивка "
"поддерживает эту функцию, и что принтер работает нормально."
msgid "Sending failed, please try again!"
msgstr ""
msgid "Slice ok."
msgstr "Нарезка завершена."
@@ -10606,8 +10452,8 @@ 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\"."
"by right-click the empty position of build plate and choose \"Add Primitive"
"\"->\"Timelapse Wipe Tower\"."
msgstr ""
"При записи таймлапса со скрытием головы рекомендуется добавить черновую "
"башню таймлапса.\n"
@@ -10738,9 +10584,6 @@ msgstr ""
msgid "Travel speed"
msgstr "Ограничение скорости холостых перемещений"
msgid "Junction Deviation"
msgstr "Junction Deviation"
msgid "Jerk(XY)"
msgstr "Рывок (XY)"
@@ -11651,6 +11494,9 @@ msgstr ""
"принтера. Неиспользуемые филаменты принтера будут автоматически добавлены в "
"конец списка."
msgid "Advanced settings"
msgstr "Расширенные настройки"
msgid "Add unused AMS filaments to filaments list."
msgstr "Добавить незадействованные материалы из AMS в список"
@@ -12148,23 +11994,12 @@ msgstr "Доступен новый сетевой плагин (%s). Хотит
msgid "New version of Orca Slicer"
msgstr "Доступна новая версия Orca Slicer"
msgid "Check on Microsoft Store"
msgstr ""
msgid "Check on GitHub"
msgid "Check on Github"
msgstr "Открыть на GitHub"
msgid "Open Microsoft Store"
msgstr ""
msgid "Skip this Version"
msgstr "Пропустить эту версию"
#, c-format, boost-format
msgid ""
"New version available: %s. Please update OrcaSlicer from the Microsoft Store."
msgstr ""
msgid "Confirm and Update Nozzle"
msgstr "Подтвердить и обновить сопло"
@@ -12285,9 +12120,6 @@ msgstr "Модуль обрезки"
msgid "Auto Fire Extinguishing System"
msgstr "Автоматическая система пожаротушения"
msgid "Beta"
msgstr ""
msgid "Update firmware"
msgstr "Обновить прошивку"
@@ -12965,14 +12797,6 @@ msgstr ""
msgid "Generating skirt & brim"
msgstr "Генерация юбки и каймы"
msgid ""
"Per-object skirts cannot fit between the objects in By object print "
"sequence.\n"
"\n"
"Move the objects farther apart, reduce brim/skirt size, switch Skirt type to "
"Combined, or switch Print sequence to By layer."
msgstr ""
msgid "Exporting G-code"
msgstr "Экспорт в G-код"
@@ -13107,15 +12931,6 @@ msgstr "Использовать сторонний хост печати"
msgid "Allow controlling BambuLab's printer through 3rd party print hosts."
msgstr "Позволяет управлять принтером BambuLab через сторонние хосты печати."
msgid "Use 3MF instead of G-code"
msgstr ""
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 ""
msgid "Printer Agent"
msgstr "Сетевой агент"
@@ -13545,7 +13360,7 @@ msgid "External bridge density"
msgstr "Плотность внешних мостов"
msgid ""
"Controls the density (spacing) of external bridge lines.\n"
"Controls the density (spacing) of external bridge lines. Default is 100%.\n"
"Theoretically, 100% means a solid bridge, but due to the tendency of bridge "
"extrusions to sag, 100% may not be sufficient.\n"
"\n"
@@ -13559,14 +13374,18 @@ msgid ""
" - Pros: Can create a string-like first layer. Faster and with better "
"cooling because there is more space for air to circulate around the extruded "
"bridge.\n"
" - Cons: May lead to sagging and poorer surface finish."
" - Cons: May lead to sagging and poorer surface finish.\n"
"\n"
"Recommended range: Minimum 10% - Maximum 125%."
msgstr ""
msgid "Internal bridge density"
msgstr "Плотность внутренних мостов"
msgid ""
"Controls the density (spacing) of internal bridge lines.\n"
"Controls the density (spacing) of internal bridge lines. Default is 100%. "
"100% means a solid internal bridge.\n"
"\n"
"Internal bridges act as intermediate support between sparse infill and top "
"solid infill and can strongly affect top surface quality.\n"
"\n"
@@ -13601,9 +13420,11 @@ msgid ""
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
#, c-format, boost-format
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the "
"nozzle diameter.\n"
"Bridge line width is expressed either as an absolute value or as a "
"percentage of the active nozzle diameter (percentages are computed from the "
"nozzle diameter).\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
@@ -15651,6 +15472,7 @@ msgstr ""
msgid "Z-buckling bias optimization (experimental)"
msgstr ""
#, c-format, boost-format
msgid ""
"Tightens the gyroid wave along the Z (vertical) axis at low infill density "
"to shorten the effective vertical column length and improve Z-axis "
@@ -15892,8 +15714,8 @@ msgid "mm/s² or %"
msgstr "мм/с² или %"
msgid ""
"Acceleration of sparse infill. If the value is expressed as a percentage "
"(e.g. 100%), it will be calculated based on the default acceleration."
"Acceleration of sparse infill. If the value is expressed as a percentage (e."
"g. 100%), it will be calculated based on the default acceleration."
msgstr ""
"Ускорение на разреженном заполнении. Можно указать процент от ускорения по "
"умолчанию."
@@ -15947,6 +15769,9 @@ msgstr ""
msgid "Default jerk."
msgstr "Рывок по умолчанию."
msgid "Junction Deviation"
msgstr "Junction Deviation"
msgid ""
"Marlin Firmware Junction Deviation (replaces the traditional XY Jerk "
"setting)."
@@ -16037,10 +15862,10 @@ msgstr "Полная скорость вентилятора на слое"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer "
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\". \"full_fan_speed_layer\" will be ignored if lower than "
"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"Интенсивность охлаждения будет линейно увеличиваться от нуля со слоя "
"заданным параметром «Не включать вентилятор на первых» до заданной "
@@ -16195,9 +16020,8 @@ msgstr ""
"Максимальная величина отклонения сегментов оболочки. \n"
"\n"
"Внимание! Режимы «Экструзия» и «Совместный» не будут работать, если значение "
"превышает ширину периметра. Если при нарезке возникает ошибка "
"Flow::spacing(), проверьте, что значение меньше выражения: [∅ сопла - h слоя/"
"4]."
"превышает ширину периметра. Если при нарезке возникает ошибка Flow::"
"spacing(), проверьте, что значение меньше выражения: [∅ сопла - h слоя/4]."
msgid "Fuzzy skin point distance"
msgstr "Длина сегментов"
@@ -17103,13 +16927,16 @@ msgid ""
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
msgid "°"
msgstr "°"
msgid "Don't alternate fill direction"
msgstr ""
msgid "Disable alternating fill direction when using Z contouring."
msgstr ""
msgid "Minimum Z height"
msgid "Minimum z height"
msgstr ""
msgid ""
@@ -18334,8 +18161,8 @@ msgid "Role base wipe speed"
msgstr "Местная скорость очистки"
msgid ""
"The wipe speed is determined by the speed of the current extrusion role. "
"e.g. if a wipe action is executed immediately following an outer wall "
"The wipe speed is determined by the speed of the current extrusion role. e."
"g. if a wipe action is executed immediately following an outer wall "
"extrusion, the speed of the outer wall extrusion will be utilized for the "
"wipe action."
msgstr ""
@@ -19388,8 +19215,8 @@ msgstr "Вкл. контроль температуры"
msgid ""
"Enable this option for automated chamber temperature control. This option "
"activates the emitting of an M191 command before the "
"\"machine_start_gcode\"\n"
"activates the emitting of an M191 command before the \"machine_start_gcode"
"\"\n"
" 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"
@@ -20494,8 +20321,8 @@ msgid "Debug level"
msgstr "Уровень отладки журнала"
msgid ""
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, "
"5:trace\n"
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:"
"trace\n"
msgstr ""
"Задаёт параметр чувствительности записи событий в журнал:\n"
" 0 – Критическая ошибка\n"
@@ -21085,8 +20912,8 @@ msgstr ""
msgid "Unknown file format. Input file must have .3mf or .zip.amf extension."
msgstr ""
"Неизвестный формат файла. Входной файл должен иметь расширение *.3mf или "
"*.zip.amf."
"Неизвестный формат файла. Входной файл должен иметь расширение *.3mf или *."
"zip.amf."
msgid "load_obj: failed to parse"
msgstr "load_obj: ошибка обработки"
@@ -22398,8 +22225,8 @@ msgstr ""
"Хотите перезаписать его?"
msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you "
"selected\".\n"
"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"
@@ -22484,6 +22311,9 @@ msgstr "Профиль принтера"
msgid "Filament Preset Template"
msgstr "Шаблон профиля материала"
msgid "Deselect All"
msgstr "Снять выбор со всего"
msgid "Process Preset Template"
msgstr "Шаблон профиля настроек"
@@ -22994,21 +22824,9 @@ msgstr ""
msgid "Authorizing..."
msgstr ""
msgid "Error. Can't get api token for authorization"
msgstr ""
msgid "Could not parse server response."
msgstr ""
msgid "Error saving session to file"
msgstr ""
msgid "Error session check"
msgstr ""
msgid "Error during file upload"
msgstr ""
#, c-format, boost-format
msgid "Mismatched type of print host: %s"
msgstr "Несоответствующий тип хоста печати: %s"
@@ -23807,105 +23625,6 @@ msgstr "Не удалось подключиться к Flashforge через п
msgid "Flashforge local API requires both serial number and access code."
msgstr ""
msgid "Printer returned an error"
msgstr ""
msgid "Missing system_info in response"
msgstr ""
msgid "Missing printer serial number in response"
msgstr ""
msgid "Error parsing response"
msgstr ""
msgid "ElegooLink not detected"
msgstr ""
msgid "Invalid access code"
msgstr ""
msgid "CC2 device not detected"
msgstr ""
msgid "Connection to ElegooLink is working correctly."
msgstr ""
msgid "Could not connect to ElegooLink"
msgstr ""
#, boost-format
msgid "Error code: %1%"
msgstr ""
msgid "Upload failed"
msgstr ""
msgid ""
"The file has been transferred, but some unknown errors occurred. Please "
"check the device page for the file and try to start printing again."
msgstr ""
msgid "Failed to open file for upload."
msgstr ""
msgid "Failed to read file chunk for upload."
msgstr ""
msgid "CC2 upload failed"
msgstr ""
msgid "The file is empty or could not be read."
msgstr ""
msgid "Failed to calculate file checksum."
msgstr ""
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 ""
msgid "The file is lost, please check and try again."
msgstr ""
msgid "The file is corrupted, please check and try again."
msgstr ""
msgid "Transmission abnormality, please check and try again."
msgstr ""
msgid "The file does not match the printer, please check and try again."
msgstr ""
msgid "Start print timeout"
msgstr ""
msgid "Start print failed"
msgstr ""
msgid "Connected to CrealityPrint successfully!"
msgstr ""
msgid "Could not connect to CrealityPrint"
msgstr ""
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 ""
msgid "The Hostname/IP/URL could not be parsed, please check it and try again."
msgstr ""
msgid ""
"File/data transfer interrupted. Please check the printer and network, then "
"try it again."
msgstr ""
msgid "The provided state is not correct."
msgstr "Указано неверное состояние."
@@ -23960,12 +23679,6 @@ msgstr "Кайма «мышиные уши»"
msgid "Please select single object."
msgstr "Пожалуйста, выберите один объект."
msgid "Entering Brim Ears"
msgstr ""
msgid "Leaving Brim Ears"
msgstr ""
msgid "Zoom Out"
msgstr "Отдалить"
@@ -23976,9 +23689,6 @@ msgid "Load skipping objects information failed. Please try again."
msgstr ""
"Не удалось загрузить информацию о пропуске объектов, попробуйте ещё раз."
msgid "Failed to create the temporary folder."
msgstr ""
#, c-format, boost-format
msgid "/%d Selected"
msgstr "из %d выбрано"
@@ -24133,100 +23843,6 @@ msgstr "Количество треугольников"
msgid "Calculating, please wait..."
msgstr "Расчёт, подождите..."
msgid "PresetBundle"
msgstr ""
msgid "Bundle folder does not exist."
msgstr ""
msgid "Failed to open folder."
msgstr ""
msgid "Delete selected bundle from folder and all presets loaded from it?"
msgstr ""
msgid "Delete Bundle"
msgstr ""
msgid "Failed to remove bundle."
msgstr ""
msgid "Remove Bundle"
msgstr ""
msgid "Unsubscribe bundle?"
msgstr ""
msgid "UnsubscribeBundle"
msgstr ""
msgid "Failed to unsubscribe bundle."
msgstr ""
msgid "Unsubscribe Bundle"
msgstr ""
msgid "ExportPresetBundle"
msgstr ""
msgid "Save preset bundle"
msgstr ""
msgid ""
"Performing desktop integration failed - boost::filesystem::canonical did not "
"return appimage path."
msgstr ""
msgid "Performing desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing desktop integration failed because the application directory was "
"not found."
msgstr ""
msgid ""
"Performing desktop integration failed - could not create Gcodeviewer desktop "
"file. OrcaSlicer desktop file was probably created successfully."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - "
"boost::filesystem::canonical did not return appimage path."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing downloader desktop integration failed because the application "
"directory was not found."
msgstr ""
msgid "Desktop Integration"
msgstr ""
msgid ""
"Desktop Integration sets this binary to be searchable by the system.\n"
"\n"
"Press \"Perform\" to proceed."
msgstr ""
msgid "The download has failed"
msgstr ""
#. TRN %1% = file path
#, boost-format
msgid "Can't create file at %1%"
msgstr ""
msgid "Archive preview"
msgstr ""
msgid "Open File"
msgstr ""
msgid ""
"The filament may not be compatible with the current machine settings. "
"Generic filament presets will be used."
@@ -24285,9 +23901,9 @@ msgid ""
"overhangs?"
msgstr ""
"Порядок печати периметров «Навстречу»\n"
"Знаете ли вы, что можно использовать порядок печати периметров «Навстречу» "
"(Inner/Outer/Inner)? Это улучшает точность, прочность и внешний вид, если у "
"модели не очень крутые нависания."
"Знаете ли вы, что можно использовать порядок печати периметров "
"«Навстречу» (Inner/Outer/Inner)? Это улучшает точность, прочность и внешний "
"вид, если у модели не очень крутые нависания."
#: resources/data/hints.ini: [hint:Chamber temperature]
msgid ""
@@ -24653,21 +24269,6 @@ msgstr ""
"ABS, повышение температуры подогреваемого стола может снизить эту "
"вероятность?"
#~ msgid ""
#~ "It is recommended to assemble objects first,\n"
#~ "because the objects is restriced to bed \n"
#~ "and only parts can be lifted."
#~ msgstr ""
#~ "Рекомендуется сначала совместить модели \n"
#~ "и только потом собирать их части, так как\n"
#~ "части не ограничены плоскостью стола."
#~ msgid "part selection"
#~ msgstr "Выбрать часть"
#~ msgid "°"
#~ msgstr "°"
#~ msgid ""
#~ "The Wipe option is not available when using the Firmware Retraction "
#~ "mode.\n"
@@ -25030,6 +24631,9 @@ msgstr ""
#~ msgid "Mouse wheel:"
#~ msgstr "Вращение колеса мыши:"
#~ msgid "Object selection"
#~ msgstr "Выбрать модель"
# Хотя бы в скобках, но отсылаем к калибровке потока, а не расхода (баг #6970)
#~ msgid "Pass 1"
#~ msgstr "Первый проход (примерный подбор)"
+90 -475
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-26 11:35+0800\n"
"POT-Creation-Date: 2026-06-08 00:18+0800\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -188,15 +188,6 @@ msgstr "Klar"
msgid "Support Generated"
msgstr "Support skapad"
msgid "Entering Paint-on supports"
msgstr ""
msgid "Leaving Paint-on supports"
msgstr ""
msgid "Paint-on supports editing"
msgstr ""
msgid "Gizmo-Place on Face"
msgstr "Gizmo-Place on Face"
@@ -285,15 +276,6 @@ msgstr "Färgläggning använder: Filament %1%"
msgid "To:"
msgstr "Till:"
msgid "Entering color painting"
msgstr ""
msgid "Leaving color painting"
msgstr ""
msgid "Color painting editing"
msgstr ""
msgid "Paint-on fuzzy skin"
msgstr "Paint-on fuzzy skin"
@@ -314,15 +296,6 @@ msgstr ""
msgid "Enable painted fuzzy skin for this object"
msgstr "Enable painted fuzzy skin for this object"
msgid "Entering Paint-on fuzzy skin"
msgstr ""
msgid "Leaving Paint-on fuzzy skin"
msgstr ""
msgid "Paint-on fuzzy skin editing"
msgstr ""
msgid "Move"
msgstr "Flytta"
@@ -710,15 +683,6 @@ msgstr "Cut by line"
msgid "Delete connector"
msgstr "Delete connector"
msgid "Entering Cut gizmo"
msgstr ""
msgid "Leaving Cut gizmo"
msgstr ""
msgid "Cut gizmo editing"
msgstr ""
msgid "Mesh name"
msgstr "Mesh namn"
@@ -1584,12 +1548,6 @@ msgstr "Parallel distance:"
msgid "Flip by Face 2"
msgstr "Flip by Face 2"
msgid "Entering Measure gizmo"
msgstr ""
msgid "Leaving Measure gizmo"
msgstr ""
msgid "Assemble"
msgstr "Montera"
@@ -1615,19 +1573,16 @@ msgid "Warning: please select Point's or Circle's feature."
msgstr "Warning: please select Point's or Circle's feature."
msgid ""
"It is recommended to assemble objects first,\n"
"because they are restricted to the bed \n"
"It is recommended to assemble the objects first,\n"
"because the objects is restriced to bed \n"
"and only parts can be lifted."
msgstr ""
"It is recommended to assemble the objects first,\n"
"because the objects is restriced to bed \n"
"and only parts can be lifted."
msgid "Face and face assembly"
msgstr ""
msgid "Entering Assembly gizmo"
msgstr ""
msgid "Leaving Assembly gizmo"
msgstr ""
msgstr "Face and face assembly"
msgid "Ctrl+"
msgstr "Ctrl +"
@@ -1687,8 +1642,8 @@ msgstr "AMF files"
msgid "3MF files"
msgstr "3MF files"
msgid "G-code 3MF files"
msgstr "G-code 3MF files"
msgid "Gcode 3MF files"
msgstr "Gcode 3MF files"
msgid "G-code files"
msgstr "G-code files"
@@ -1747,35 +1702,6 @@ msgstr "OrcaSlicer got an unhandled exception: %1%"
msgid "Untitled"
msgstr "Ej namngiven"
msgid ""
"Since version 2.4.0, OrcaSlicer syncs user profiles through Orca Cloud "
"instead of Bambu Cloud.\n"
"\n"
"To migrate your existing profiles, log in to Orca Cloud and they will be "
"transferred automatically. To learn more about how OrcaSlicer stores and "
"syncs your profiles, or to migrate your presets manually, check out our "
"wiki.\n"
"\n"
"If you did not use Bambu Cloud to sync profiles, this change does not affect "
"you and you can safely ignore this message."
msgstr ""
"Från och med version 2.4.0 synkroniserar OrcaSlicer användarprofiler via "
"Orca Cloud i stället för Bambu Cloud.\n"
"\n"
"Logga in på Orca Cloud för att migrera dina befintliga profiler, så överförs "
"de automatiskt. Läs mer om hur OrcaSlicer lagrar och synkroniserar dina "
"profiler, eller om hur du migrerar dina förinställningar manuellt, i vår "
"wiki.\n"
"\n"
"Om du inte använde Bambu Cloud för att synkronisera profiler påverkar den "
"här ändringen dig inte och du kan ignorera det här meddelandet."
msgid "Profile syncing change"
msgstr ""
msgid "Learn more"
msgstr ""
msgid "Reloading network plug-in..."
msgstr "Reloading network plug-in..."
@@ -1807,14 +1733,6 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is "
"installed.\n"
"Please install it manually from https://developer.microsoft.com/microsoft-"
"edge/webview2/ and restart Orca Slicer."
msgstr ""
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
msgstr "Resources path does not exist or is not a directory: %s"
@@ -1944,20 +1862,6 @@ msgid ""
"preset."
msgstr ""
msgid ""
"Cloud sync conflict: 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 ""
msgid ""
"Cloud sync conflict: there was an unexpected or unidentified preset "
"conflict.\n"
"Pull downloads the cloud copy. Force push overwrites it with your local "
"preset."
msgstr ""
msgid ""
"Force push will overwrite the cloud copy with your local preset changes.\n"
"Do you want to continue?"
@@ -3246,52 +3150,6 @@ msgstr "The maximum temperature cannot exceed "
msgid "The minmum temperature should not be less than "
msgstr "The minmum temperature should not be less than "
msgid "Type to filter..."
msgstr ""
msgid "All"
msgstr "Allt"
msgid "No selected items..."
msgstr ""
msgid "All items selected..."
msgstr ""
msgid "No matching items..."
msgstr ""
msgid "Deselect All"
msgstr "Avmarkera alla"
msgid "Select visible"
msgstr ""
msgid "Deselect visible"
msgstr ""
msgid "Filter selected"
msgstr ""
msgid "Filter nonSelected"
msgstr ""
msgid "Simple settings"
msgstr ""
msgid "Advanced settings"
msgstr "Advanced settings"
msgid "Expert settings"
msgstr ""
#, fuzzy
msgid "Developer mode"
msgstr "Utvecklingsläge"
msgid "Launch troubleshoot center"
msgstr ""
msgid ""
"All the selected objects are on a locked plate.\n"
"Cannot auto-arrange these objects."
@@ -3570,9 +3428,6 @@ msgstr "Font doesn't have any shape for given text."
msgid "There is no valid surface for text projection."
msgstr "There is no valid surface for text projection."
msgid "An unexpected error occurred"
msgstr ""
msgid "Thermal Preconditioning for first layer optimization"
msgstr "Thermal Preconditioning for first layer optimization"
@@ -5489,7 +5344,10 @@ msgstr "Öka/minska redigeringsområdet"
msgid "Sequence"
msgstr "Sekvens"
msgid "Object selection"
msgid "Object Selection"
msgstr ""
msgid "Part Selection"
msgstr ""
msgid "number keys"
@@ -5678,6 +5536,9 @@ msgstr "Etiketter"
msgid "Paint Toolbar"
msgstr "Färgläggningsverktyg"
msgid "part selection"
msgstr "val av delar"
msgid "Explosion Ratio"
msgstr "Explosions Förhållande"
@@ -5702,7 +5563,7 @@ msgstr "Volym:"
msgid "Size:"
msgstr "Storlek:"
#, boost-format
#, c-format, boost-format
msgid ""
"Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -5931,12 +5792,12 @@ msgstr "Skriv ut byggplattan"
msgid "Export G-code file"
msgstr "Exportera G-kod filen"
msgid "Export plate sliced file"
msgstr "Exportera byggplattans beredda fil"
msgid "Send"
msgstr "Skicka"
msgid "Export plate sliced file"
msgstr "Exportera byggplattans beredda fil"
msgid "Export all sliced file"
msgstr "Exportera alla beredda filer"
@@ -8035,7 +7896,7 @@ msgstr ""
msgid "The selected object couldn't be split."
msgstr "Det valda objektet kan inte delas."
msgid "Disable Auto-Drop to preserve Z positioning?\n"
msgid "Disable Auto-Drop to preserve z positioning?\n"
msgstr ""
msgid "Object with floating parts was detected"
@@ -8714,6 +8575,9 @@ msgstr "Group user filament presets"
msgid "Group user filament presets based on selection"
msgstr "Group user filament presets based on selection"
msgid "All"
msgstr "Allt"
msgid "By type"
msgstr "By type"
@@ -8914,16 +8778,6 @@ msgstr ""
msgid "Renders cast shadows on the plate in realistic view."
msgstr ""
msgid "Smooth normals"
msgstr ""
msgid ""
"Applies smooth normals to the realistic view.\n"
"\n"
"Requires manual scene reload to take effect (right-click on 3D view → "
"\"Reload All\")."
msgstr ""
msgid "Anti-aliasing"
msgstr ""
@@ -9095,14 +8949,6 @@ msgstr "Download Network Plug-in"
msgid "Associate files to OrcaSlicer"
msgstr "Associerade filer till Orca Slicer"
msgid ""
"File associations for the Microsoft Store version are managed by Windows "
"Settings."
msgstr ""
msgid "Open Windows Default Apps Settings"
msgstr ""
msgid "Associate 3MF files to OrcaSlicer"
msgstr "Associerade 3MF filer till Orca Slicer"
@@ -9135,6 +8981,10 @@ msgstr "Associate web links to OrcaSlicer"
msgid "Developer"
msgstr "Utvecklare"
#, fuzzy
msgid "Developer mode"
msgstr "Utvecklingsläge"
msgid "Skip AMS blacklist check"
msgstr "Hoppa över kontrollen av AMS svarta lista"
@@ -9941,9 +9791,6 @@ msgstr ""
"File upload timed out. Please check if the firmware version supports this "
"operation or verify if the printer is functioning properly."
msgid "Sending failed, please try again!"
msgstr ""
msgid "Slice ok."
msgstr "Beredning klar."
@@ -10264,8 +10111,8 @@ 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\"."
"by right-click the empty position of build plate and choose \"Add Primitive"
"\"->\"Timelapse Wipe Tower\"."
msgstr ""
"När du spelar in timelapse utan verktygshuvud rekommenderas att du lägger "
"till ett \"Timelapse Wipe Tower\".\n"
@@ -10395,9 +10242,6 @@ msgstr "Set speed for external and internal bridges"
msgid "Travel speed"
msgstr "Förflyttnings hastighet"
msgid "Junction Deviation"
msgstr "Junction Deviation"
msgid "Jerk(XY)"
msgstr "Jerk(XY)"
@@ -11274,6 +11118,9 @@ msgstr ""
"And unused printer filaments will be automatically added to the end of the "
"list."
msgid "Advanced settings"
msgstr "Advanced settings"
msgid "Add unused AMS filaments to filaments list."
msgstr "Add unused AMS filaments to filaments list."
@@ -11333,8 +11180,8 @@ msgstr ""
msgid ""
"Timelapse is not supported because Print sequence is set to \"By object\"."
msgstr ""
"Timelapse stöds inte eftersom utskrifts sekvensen är inställd på \"Per "
"objekt\"."
"Timelapse stöds inte eftersom utskrifts sekvensen är inställd på \"Per objekt"
"\"."
msgid ""
"You selected external and AMS filament at the same time in an extruder, you "
@@ -11772,23 +11619,12 @@ msgstr "En ny nätverksplugin (%s) är tillgänglig. Vill du installera den?"
msgid "New version of Orca Slicer"
msgstr "Ny version av Orca Slicer"
msgid "Check on Microsoft Store"
msgstr ""
msgid "Check on GitHub"
msgstr ""
msgid "Open Microsoft Store"
msgid "Check on Github"
msgstr ""
msgid "Skip this Version"
msgstr "Hoppa över denna version"
#, c-format, boost-format
msgid ""
"New version available: %s. Please update OrcaSlicer from the Microsoft Store."
msgstr ""
msgid "Confirm and Update Nozzle"
msgstr "Bekräfta och uppdatera nozzeln"
@@ -11902,9 +11738,6 @@ msgstr "Cutting Module"
msgid "Auto Fire Extinguishing System"
msgstr "Auto Fire Extinguishing System"
msgid "Beta"
msgstr ""
msgid "Update firmware"
msgstr "Uppdatera programvara"
@@ -12548,14 +12381,6 @@ msgstr ""
msgid "Generating skirt & brim"
msgstr "Skapar Skirt & Brim"
msgid ""
"Per-object skirts cannot fit between the objects in By object print "
"sequence.\n"
"\n"
"Move the objects farther apart, reduce brim/skirt size, switch Skirt type to "
"Combined, or switch Print sequence to By layer."
msgstr ""
msgid "Exporting G-code"
msgstr "Exporterar G-kod"
@@ -12689,15 +12514,6 @@ msgstr "Use 3rd-party print host"
msgid "Allow controlling BambuLab's printer through 3rd party print hosts."
msgstr "Allow controlling BambuLab's printer through 3rd party print hosts."
msgid "Use 3MF instead of G-code"
msgstr ""
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 ""
msgid "Printer Agent"
msgstr "Printer Agent"
@@ -13127,7 +12943,7 @@ msgid "External bridge density"
msgstr "External bridge density"
msgid ""
"Controls the density (spacing) of external bridge lines.\n"
"Controls the density (spacing) of external bridge lines. Default is 100%.\n"
"Theoretically, 100% means a solid bridge, but due to the tendency of bridge "
"extrusions to sag, 100% may not be sufficient.\n"
"\n"
@@ -13141,14 +12957,18 @@ msgid ""
" - Pros: Can create a string-like first layer. Faster and with better "
"cooling because there is more space for air to circulate around the extruded "
"bridge.\n"
" - Cons: May lead to sagging and poorer surface finish."
" - Cons: May lead to sagging and poorer surface finish.\n"
"\n"
"Recommended range: Minimum 10% - Maximum 125%."
msgstr ""
msgid "Internal bridge density"
msgstr "Internal bridge density"
msgid ""
"Controls the density (spacing) of internal bridge lines.\n"
"Controls the density (spacing) of internal bridge lines. Default is 100%. "
"100% means a solid internal bridge.\n"
"\n"
"Internal bridges act as intermediate support between sparse infill and top "
"solid infill and can strongly affect top surface quality.\n"
"\n"
@@ -13183,9 +13003,11 @@ msgid ""
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
#, c-format, boost-format
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the "
"nozzle diameter.\n"
"Bridge line width is expressed either as an absolute value or as a "
"percentage of the active nozzle diameter (percentages are computed from the "
"nozzle diameter).\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
@@ -13755,9 +13577,9 @@ msgid ""
"quality for needle and small details."
msgstr ""
"Aktivera detta val för att sänka utskifts hastigheten för att göra den sista "
"lager tiden inte kortare än lager tidströskeln \"Max fläkthastighets "
"tröskel\", detta så att lager kan kylas under en längre tid. Detta kan "
"förbättra kylnings kvaliteten för små detaljer"
"lager tiden inte kortare än lager tidströskeln \"Max fläkthastighets tröskel"
"\", detta så att lager kan kylas under en längre tid. Detta kan förbättra "
"kylnings kvaliteten för små detaljer"
msgid "Normal printing"
msgstr "Normal utskrift"
@@ -15119,6 +14941,7 @@ msgstr ""
msgid "Z-buckling bias optimization (experimental)"
msgstr ""
#, c-format, boost-format
msgid ""
"Tightens the gyroid wave along the Z (vertical) axis at low infill density "
"to shorten the effective vertical column length and improve Z-axis "
@@ -15327,8 +15150,8 @@ msgid "mm/s² or %"
msgstr "mm/s² eller %"
msgid ""
"Acceleration of sparse infill. If the value is expressed as a percentage "
"(e.g. 100%), it will be calculated based on the default acceleration."
"Acceleration of sparse infill. If the value is expressed as a percentage (e."
"g. 100%), it will be calculated based on the default acceleration."
msgstr ""
"Acceleration av gles utfyllnad. Om värdet uttrycks som en procentsats (t.ex. "
"100%) kommer det att beräknas baserat på standard accelerationen."
@@ -15375,6 +15198,9 @@ msgstr ""
msgid "Default jerk."
msgstr "Default jerk."
msgid "Junction Deviation"
msgstr "Junction Deviation"
msgid ""
"Marlin Firmware Junction Deviation (replaces the traditional XY Jerk "
"setting)."
@@ -15461,16 +15287,16 @@ msgstr "Full fläkthastighet vid lager"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer "
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\". \"full_fan_speed_layer\" will be ignored if lower than "
"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer "
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\". \"full_fan_speed_layer\" will be ignored if lower than "
"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgid "layer"
msgstr "layer"
@@ -16473,13 +16299,16 @@ msgid ""
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
msgid "°"
msgstr "°"
msgid "Don't alternate fill direction"
msgstr ""
msgid "Disable alternating fill direction when using Z contouring."
msgstr ""
msgid "Minimum Z height"
msgid "Minimum z height"
msgstr ""
msgid ""
@@ -17603,13 +17432,13 @@ msgid "Role base wipe speed"
msgstr "Role base wipe speed"
msgid ""
"The wipe speed is determined by the speed of the current extrusion role. "
"e.g. if a wipe action is executed immediately following an outer wall "
"The wipe speed is determined by the speed of the current extrusion role. e."
"g. if a wipe action is executed immediately following an outer wall "
"extrusion, the speed of the outer wall extrusion will be utilized for the "
"wipe action."
msgstr ""
"The wipe speed is determined by the speed of the current extrusion role. "
"e.g. if a wipe action is executed immediately following an outer wall "
"The wipe speed is determined by the speed of the current extrusion role. e."
"g. if a wipe action is executed immediately following an outer wall "
"extrusion, the speed of the outer wall extrusion will be utilized for the "
"wipe action."
@@ -18538,8 +18367,8 @@ msgstr "Activate temperature control"
msgid ""
"Enable this option for automated chamber temperature control. This option "
"activates the emitting of an M191 command before the "
"\"machine_start_gcode\"\n"
"activates the emitting of an M191 command before the \"machine_start_gcode"
"\"\n"
" 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"
@@ -18549,8 +18378,8 @@ msgid ""
"heater is installed."
msgstr ""
"Enable this option for automated chamber temperature control. This option "
"activates the emitting of an M191 command before the "
"\"machine_start_gcode\"\n"
"activates the emitting of an M191 command before the \"machine_start_gcode"
"\"\n"
" 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"
@@ -19539,11 +19368,11 @@ msgid "Debug level"
msgstr "Felsökningsnivå"
msgid ""
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, "
"5:trace\n"
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:"
"trace\n"
msgstr ""
"Välj felsöknings nivå. 0:allvarlig, 1:fel, 2:varning, 3:info, 4:felsök, "
"5:spåra\n"
"Välj felsöknings nivå. 0:allvarlig, 1:fel, 2:varning, 3:info, 4:felsök, 5:"
"spåra\n"
msgid "Log file"
msgstr ""
@@ -21374,12 +21203,12 @@ msgstr ""
"Vill du skriva om det?"
msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you "
"selected\".\n"
"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 ""
"We would rename the presets as \"Vendor Type Serial @printer you "
"selected\".\n"
"We would rename the presets as \"Vendor Type Serial @printer you selected"
"\".\n"
"To add preset for more printers, please go to printer selection"
msgid "Create Printer/Nozzle"
@@ -21461,6 +21290,9 @@ msgstr "Printer inställningar"
msgid "Filament Preset Template"
msgstr "Filament inställnings mall"
msgid "Deselect All"
msgstr "Avmarkera alla"
msgid "Process Preset Template"
msgstr "Mall för process inställning"
@@ -21965,21 +21797,9 @@ msgstr ""
msgid "Authorizing..."
msgstr ""
msgid "Error. Can't get api token for authorization"
msgstr ""
msgid "Could not parse server response."
msgstr ""
msgid "Error saving session to file"
msgstr ""
msgid "Error session check"
msgstr ""
msgid "Error during file upload"
msgstr ""
#, c-format, boost-format
msgid "Mismatched type of print host: %s"
msgstr "Felaktig typ av utskriftsvärd: %s"
@@ -22768,105 +22588,6 @@ msgstr "Could not connect to Flashforge via serial"
msgid "Flashforge local API requires both serial number and access code."
msgstr ""
msgid "Printer returned an error"
msgstr ""
msgid "Missing system_info in response"
msgstr ""
msgid "Missing printer serial number in response"
msgstr ""
msgid "Error parsing response"
msgstr ""
msgid "ElegooLink not detected"
msgstr ""
msgid "Invalid access code"
msgstr ""
msgid "CC2 device not detected"
msgstr ""
msgid "Connection to ElegooLink is working correctly."
msgstr ""
msgid "Could not connect to ElegooLink"
msgstr ""
#, boost-format
msgid "Error code: %1%"
msgstr ""
msgid "Upload failed"
msgstr ""
msgid ""
"The file has been transferred, but some unknown errors occurred. Please "
"check the device page for the file and try to start printing again."
msgstr ""
msgid "Failed to open file for upload."
msgstr ""
msgid "Failed to read file chunk for upload."
msgstr ""
msgid "CC2 upload failed"
msgstr ""
msgid "The file is empty or could not be read."
msgstr ""
msgid "Failed to calculate file checksum."
msgstr ""
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 ""
msgid "The file is lost, please check and try again."
msgstr ""
msgid "The file is corrupted, please check and try again."
msgstr ""
msgid "Transmission abnormality, please check and try again."
msgstr ""
msgid "The file does not match the printer, please check and try again."
msgstr ""
msgid "Start print timeout"
msgstr ""
msgid "Start print failed"
msgstr ""
msgid "Connected to CrealityPrint successfully!"
msgstr ""
msgid "Could not connect to CrealityPrint"
msgstr ""
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 ""
msgid "The Hostname/IP/URL could not be parsed, please check it and try again."
msgstr ""
msgid ""
"File/data transfer interrupted. Please check the printer and network, then "
"try it again."
msgstr ""
msgid "The provided state is not correct."
msgstr "The provided state is not correct."
@@ -22920,12 +22641,6 @@ msgstr "Brätte Öron"
msgid "Please select single object."
msgstr "Please select single object."
msgid "Entering Brim Ears"
msgstr ""
msgid "Leaving Brim Ears"
msgstr ""
msgid "Zoom Out"
msgstr "Zoom Out"
@@ -22935,9 +22650,6 @@ msgstr "Zoom In"
msgid "Load skipping objects information failed. Please try again."
msgstr "Load skipping objects information failed. Please try again."
msgid "Failed to create the temporary folder."
msgstr ""
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d Selected"
@@ -23089,100 +22801,6 @@ msgstr "Number of triangular facets"
msgid "Calculating, please wait..."
msgstr "Calculating, please wait..."
msgid "PresetBundle"
msgstr ""
msgid "Bundle folder does not exist."
msgstr ""
msgid "Failed to open folder."
msgstr ""
msgid "Delete selected bundle from folder and all presets loaded from it?"
msgstr ""
msgid "Delete Bundle"
msgstr ""
msgid "Failed to remove bundle."
msgstr ""
msgid "Remove Bundle"
msgstr ""
msgid "Unsubscribe bundle?"
msgstr ""
msgid "UnsubscribeBundle"
msgstr ""
msgid "Failed to unsubscribe bundle."
msgstr ""
msgid "Unsubscribe Bundle"
msgstr ""
msgid "ExportPresetBundle"
msgstr ""
msgid "Save preset bundle"
msgstr ""
msgid ""
"Performing desktop integration failed - boost::filesystem::canonical did not "
"return appimage path."
msgstr ""
msgid "Performing desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing desktop integration failed because the application directory was "
"not found."
msgstr ""
msgid ""
"Performing desktop integration failed - could not create Gcodeviewer desktop "
"file. OrcaSlicer desktop file was probably created successfully."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - "
"boost::filesystem::canonical did not return appimage path."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing downloader desktop integration failed because the application "
"directory was not found."
msgstr ""
msgid "Desktop Integration"
msgstr ""
msgid ""
"Desktop Integration sets this binary to be searchable by the system.\n"
"\n"
"Press \"Perform\" to proceed."
msgstr ""
msgid "The download has failed"
msgstr ""
#. TRN %1% = file path
#, boost-format
msgid "Can't create file at %1%"
msgstr ""
msgid "Archive preview"
msgstr ""
msgid "Open File"
msgstr ""
msgid ""
"The filament may not be compatible with the current machine settings. "
"Generic filament presets will be used."
@@ -23590,12 +23208,6 @@ msgstr ""
"ABS, kan en lämplig ökning av värmebäddens temperatur minska sannolikheten "
"för vridning?"
#~ msgid "part selection"
#~ msgstr "val av delar"
#~ msgid "°"
#~ msgstr "°"
#~ msgid ""
#~ "The Wipe option is not available when using the Firmware Retraction "
#~ "mode.\n"
@@ -23940,6 +23552,9 @@ msgstr ""
#~ msgid "Mouse wheel:"
#~ msgstr "Mus hjul:"
#~ msgid "Object selection"
#~ msgstr "Object selection"
#~ msgid "Pass 1"
#~ msgstr "Pass 1"
+76 -477
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-26 11:35+0800\n"
"POT-Creation-Date: 2026-06-08 00:18+0800\n"
"PO-Revision-Date: 2026-06-04 12:39+0700\n"
"Last-Translator: Icezaza\n"
"Language-Team: Thai\n"
@@ -193,15 +193,6 @@ msgstr "เสร็จแล้ว"
msgid "Support Generated"
msgstr "สร้างส่วนรองรับแล้ว"
msgid "Entering Paint-on supports"
msgstr ""
msgid "Leaving Paint-on supports"
msgstr ""
msgid "Paint-on supports editing"
msgstr ""
msgid "Gizmo-Place on Face"
msgstr "Gizmo-Place บนหน้า"
@@ -289,15 +280,6 @@ msgstr "ทาสีโดยใช้: เส้นพลาสติก %1%"
msgid "To:"
msgstr "ถึง:"
msgid "Entering color painting"
msgstr ""
msgid "Leaving color painting"
msgstr ""
msgid "Color painting editing"
msgstr ""
msgid "Paint-on fuzzy skin"
msgstr "ระบายผิวฟัซซี"
@@ -317,15 +299,6 @@ msgstr "คำเตือน: ผิวฟัซซีถูกปิดใช
msgid "Enable painted fuzzy skin for this object"
msgstr "เปิดใช้งานสกินฟัซซี่ที่ทาสีแล้วสำหรับวัตถุนี้"
msgid "Entering Paint-on fuzzy skin"
msgstr ""
msgid "Leaving Paint-on fuzzy skin"
msgstr ""
msgid "Paint-on fuzzy skin editing"
msgstr ""
msgid "Move"
msgstr "ย้าย"
@@ -711,15 +684,6 @@ msgstr "ตัดด้วยเส้น"
msgid "Delete connector"
msgstr "ลบตัวเชื่อมต่อ"
msgid "Entering Cut gizmo"
msgstr ""
msgid "Leaving Cut gizmo"
msgstr ""
msgid "Cut gizmo editing"
msgstr ""
msgid "Mesh name"
msgstr "ชื่อเมช"
@@ -1580,12 +1544,6 @@ msgstr "ระยะทางขนาน:"
msgid "Flip by Face 2"
msgstr "พลิกตามผิวหน้า 2"
msgid "Entering Measure gizmo"
msgstr ""
msgid "Leaving Measure gizmo"
msgstr ""
msgid "Assemble"
msgstr "ประกอบ"
@@ -1611,20 +1569,17 @@ msgid "Warning: please select Point's or Circle's feature."
msgstr "คำเตือน: โปรดเลือกคุณลักษณะของจุดหรือวงกลม"
msgid ""
"It is recommended to assemble objects first,\n"
"because they are restricted to the bed \n"
"It is recommended to assemble the objects first,\n"
"because the objects is restriced to bed \n"
"and only parts can be lifted."
msgstr ""
"ขอแนะนำให้ประกอบวัตถุก่อน\n"
"เพราะสิ่งของนั้นถูกจำกัดไว้บนฐานพิมพ์ \n"
"และยกได้เพียงบางส่วนเท่านั้น"
msgid "Face and face assembly"
msgstr "การประกอบผิวหน้าและผิวหน้า"
msgid "Entering Assembly gizmo"
msgstr ""
msgid "Leaving Assembly gizmo"
msgstr ""
msgid "Ctrl+"
msgstr "Ctrl+"
@@ -1682,8 +1637,7 @@ msgstr "ไฟล์ AMF"
msgid "3MF files"
msgstr "ไฟล์ 3MF"
#, fuzzy
msgid "G-code 3MF files"
msgid "Gcode 3MF files"
msgstr "ไฟล์ Gcode3MF"
msgid "G-code files"
@@ -1743,34 +1697,6 @@ msgstr "OrcaSlicer พบข้อยกเว้นที่ไม่ได้
msgid "Untitled"
msgstr "ไม่มีชื่อ"
msgid ""
"Since version 2.4.0, OrcaSlicer syncs user profiles through Orca Cloud "
"instead of Bambu Cloud.\n"
"\n"
"To migrate your existing profiles, log in to Orca Cloud and they will be "
"transferred automatically. To learn more about how OrcaSlicer stores and "
"syncs your profiles, or to migrate your presets manually, check out our "
"wiki.\n"
"\n"
"If you did not use Bambu Cloud to sync profiles, this change does not affect "
"you and you can safely ignore this message."
msgstr ""
"ตั้งแต่เวอร์ชัน 2.4.0 เป็นต้นไป OrcaSlicer จะซิงค์โปรไฟล์ผู้ใช้ผ่าน Orca Cloud แทน Bambu "
"Cloud\n"
"\n"
"หากต้องการย้ายโปรไฟล์ที่มีอยู่ของคุณ ให้เข้าสู่ระบบ Orca Cloud แล้วระบบจะถ่ายโอนให้โดยอัตโนมัติ "
"หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีที่ OrcaSlicer จัดเก็บและซิงค์โปรไฟล์ของคุณ "
"หรือต้องการย้ายพรีเซ็ตด้วยตนเอง โปรดดูที่วิกิของเรา\n"
"\n"
"หากคุณไม่ได้ใช้ Bambu Cloud ในการซิงค์โปรไฟล์ การเปลี่ยนแปลงนี้จะไม่ส่งผลต่อคุณ "
"และคุณสามารถเพิกเฉยต่อข้อความนี้ได้"
msgid "Profile syncing change"
msgstr ""
msgid "Learn more"
msgstr ""
msgid "Reloading network plug-in..."
msgstr "กำลังโหลดปลั๊กอินเครือข่ายใหม่..."
@@ -1801,14 +1727,6 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr "รันไทม์ WebView2"
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is "
"installed.\n"
"Please install it manually from https://developer.microsoft.com/microsoft-"
"edge/webview2/ and restart Orca Slicer."
msgstr ""
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
msgstr "ไม่มีเส้นทางทรัพยากรหรือไม่ใช่ไดเรกทอรี: %s"
@@ -1935,20 +1853,6 @@ msgid ""
"preset."
msgstr ""
msgid ""
"Cloud sync conflict: 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 ""
msgid ""
"Cloud sync conflict: there was an unexpected or unidentified preset "
"conflict.\n"
"Pull downloads the cloud copy. Force push overwrites it with your local "
"preset."
msgstr ""
msgid ""
"Force push will overwrite the cloud copy with your local preset changes.\n"
"Do you want to continue?"
@@ -3210,51 +3114,6 @@ msgstr "อุณหภูมิสูงสุดต้องไม่เกิ
msgid "The minmum temperature should not be less than "
msgstr "อุณหภูมิต่ำสุดไม่ควรต่ำกว่า"
msgid "Type to filter..."
msgstr ""
msgid "All"
msgstr "ทั้งหมด"
msgid "No selected items..."
msgstr ""
msgid "All items selected..."
msgstr ""
msgid "No matching items..."
msgstr ""
msgid "Deselect All"
msgstr "ยกเลิกการเลือกทั้งหมด"
msgid "Select visible"
msgstr ""
msgid "Deselect visible"
msgstr ""
msgid "Filter selected"
msgstr ""
msgid "Filter nonSelected"
msgstr ""
msgid "Simple settings"
msgstr ""
msgid "Advanced settings"
msgstr "การตั้งค่าขั้นสูง"
msgid "Expert settings"
msgstr ""
msgid "Developer mode"
msgstr "โหมดนักพัฒนา"
msgid "Launch troubleshoot center"
msgstr ""
msgid ""
"All the selected objects are on a locked plate.\n"
"Cannot auto-arrange these objects."
@@ -3513,9 +3372,6 @@ msgstr "แบบอักษรไม่มีรูปร่างสำหร
msgid "There is no valid surface for text projection."
msgstr "ไม่มีพื้นผิวที่ถูกต้องสำหรับการฉายข้อความ"
msgid "An unexpected error occurred"
msgstr ""
msgid "Thermal Preconditioning for first layer optimization"
msgstr "การปรับสภาพล่วงหน้าด้วยความร้อนเพื่อการเพิ่มประสิทธิภาพชั้นแรก"
@@ -4190,8 +4046,8 @@ 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 โปรดลองส่งออกอีกครั้ง"
#, boost-format
msgid ""
@@ -5391,10 +5247,12 @@ msgstr "เพิ่ม/ลดพื้นที่แก้ไข"
msgid "Sequence"
msgstr "ลำดับ"
#, fuzzy
msgid "Object selection"
msgid "Object Selection"
msgstr "การเลือกวัตถุ"
msgid "Part Selection"
msgstr "การเลือกชิ้นส่วน"
msgid "number keys"
msgstr "ปุ่มตัวเลข"
@@ -5577,6 +5435,9 @@ msgstr "ป้ายชื่อ"
msgid "Paint Toolbar"
msgstr "แถบเครื่องมือสี"
msgid "part selection"
msgstr "การเลือกชิ้นส่วน"
msgid "Explosion Ratio"
msgstr "อัตราส่วนการระเบิด"
@@ -5601,7 +5462,7 @@ msgstr "ปริมาณ:"
msgid "Size:"
msgstr "ขนาด:"
#, boost-format
#, c-format, boost-format
msgid ""
"Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -5825,12 +5686,12 @@ msgstr "พิมพ์ฐานพิมพ์"
msgid "Export G-code file"
msgstr "ส่งออกไฟล์ G-code"
msgid "Export plate sliced file"
msgstr "ส่งออกไฟล์แผ่นสไลซ์บาง ๆ"
msgid "Send"
msgstr "ส่ง"
msgid "Export plate sliced file"
msgstr "ส่งออกไฟล์แผ่นสไลซ์บาง ๆ"
msgid "Export all sliced file"
msgstr "ส่งออกไฟล์ที่สไลซ์บาง ๆ ทั้งหมด"
@@ -6489,8 +6350,8 @@ msgid ""
"The .gcode.3mf file contains no G-code data. Please slice it with Orca "
"Slicer and export a new .gcode.3mf file."
msgstr ""
"ไฟล์ .gcode.3mf ไม่มีข้อมูล G-code โปรดแบ่งส่วนด้วย Orca Slicer "
"และส่งออกไฟล์ .gcode.3mf ใหม่"
"ไฟล์ .gcode.3mf ไม่มีข้อมูล G-code โปรดแบ่งส่วนด้วย Orca Slicer และส่งออกไฟล์ ."
"gcode.3mf ใหม่"
#, c-format, boost-format
msgid "File '%s' was lost! Please download it again."
@@ -7866,8 +7727,7 @@ msgstr ""
msgid "The selected object couldn't be split."
msgstr "ไม่สามารถแยกวัตถุที่เลือกได้"
#, fuzzy
msgid "Disable Auto-Drop to preserve Z positioning?\n"
msgid "Disable Auto-Drop to preserve z positioning?\n"
msgstr "ปิดการใช้งานการวางอัตโนมัติเพื่อรักษาตำแหน่ง z หรือไม่\n"
msgid "Object with floating parts was detected"
@@ -8519,6 +8379,9 @@ msgstr "การตั้งค่าเส้นพลาสติกผู้
msgid "Group user filament presets based on selection"
msgstr "ตั้งค่าเส้นพลาสติกผู้ใช้แบบกลุ่มตามการเลือก"
msgid "All"
msgstr "ทั้งหมด"
msgid "By type"
msgstr "ตามประเภท"
@@ -8712,16 +8575,6 @@ msgstr ""
msgid "Renders cast shadows on the plate in realistic view."
msgstr ""
msgid "Smooth normals"
msgstr ""
msgid ""
"Applies smooth normals to the realistic view.\n"
"\n"
"Requires manual scene reload to take effect (right-click on 3D view → "
"\"Reload All\")."
msgstr ""
msgid "Anti-aliasing"
msgstr "ต่อต้านนามแฝง"
@@ -8902,14 +8755,6 @@ msgstr "ดาวน์โหลดปลั๊กอินเครือข่
msgid "Associate files to OrcaSlicer"
msgstr "เชื่อมโยงไฟล์กับ OrcaSlicer"
msgid ""
"File associations for the Microsoft Store version are managed by Windows "
"Settings."
msgstr ""
msgid "Open Windows Default Apps Settings"
msgstr ""
msgid "Associate 3MF files to OrcaSlicer"
msgstr "เชื่อมโยงไฟล์ 3MF กับ OrcaSlicer"
@@ -8940,6 +8785,9 @@ msgstr "เชื่อมโยงเว็บลิงก์กับ OrcaSlic
msgid "Developer"
msgstr "นักพัฒนา"
msgid "Developer mode"
msgstr "โหมดนักพัฒนา"
msgid "Skip AMS blacklist check"
msgstr "ข้ามการตรวจสอบบัญชีดำของ AMS"
@@ -9714,9 +9562,6 @@ msgstr ""
"การอัปโหลดไฟล์หมดเวลา โปรดตรวจสอบว่าเวอร์ชันเฟิร์มแวร์รองรับการทำงานนี้หรือไม่ "
"หรือตรวจสอบว่าเครื่องพิมพ์ทำงานอย่างถูกต้องหรือไม่"
msgid "Sending failed, please try again!"
msgstr ""
msgid "Slice ok."
msgstr "ชิ้นตกลง"
@@ -10029,12 +9874,12 @@ 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\"."
"by right-click the empty position of build plate and choose \"Add Primitive"
"\"->\"Timelapse Wipe Tower\"."
msgstr ""
"เมื่อบันทึกไทม์แลปส์โดยไม่มีหัวเครื่องมือ แนะนำให้เพิ่ม \"Timelapse Wipe Tower\" \n"
"โดยคลิกขวาที่ตำแหน่งว่างของแผ่นงานแล้วเลือก \"Add Primitive\"->\"Timelapse Wipe "
"Tower\""
"โดยคลิกขวาที่ตำแหน่งว่างของแผ่นงานแล้วเลือก \"Add Primitive\"->\"Timelapse Wipe Tower"
"\""
msgid ""
"A copy of the current system preset will be created, which will be detached "
@@ -10155,9 +10000,6 @@ msgstr "ตั้งค่าความเร็วสำหรับบริ
msgid "Travel speed"
msgstr "ความเร็วเดินหัวเปล่า"
msgid "Junction Deviation"
msgstr "ส่วนเบี่ยงเบนทางแยก"
msgid "Jerk(XY)"
msgstr "กระตุก(XY)"
@@ -11022,6 +10864,9 @@ msgstr ""
"แทนที่รายการเส้นพลาสติกของโครงการตามลำดับตามเส้นพลาสติกของเครื่องพิมพ์ "
"และเส้นพลาสติกเครื่องพิมพ์ที่ไม่ได้ใช้จะถูกเพิ่มเข้าที่ส่วนท้ายของรายการโดยอัตโนมัติ"
msgid "Advanced settings"
msgstr "การตั้งค่าขั้นสูง"
msgid "Add unused AMS filaments to filaments list."
msgstr "เพิ่มเส้นพลาสติก AMS ที่ไม่ได้ใช้ลงในรายการเส้นพลาสติก"
@@ -11511,23 +11356,12 @@ msgstr "มีปลั๊กอินเครือข่ายใหม่ (%
msgid "New version of Orca Slicer"
msgstr "Orca Slicer เวอร์ชันใหม่"
msgid "Check on Microsoft Store"
msgstr ""
msgid "Check on GitHub"
msgstr "ตรวจสอบบน GitHub"
msgid "Open Microsoft Store"
msgstr ""
msgid "Check on Github"
msgstr "ตรวจสอบบน Github"
msgid "Skip this Version"
msgstr "ข้ามเวอร์ชันนี้"
#, c-format, boost-format
msgid ""
"New version available: %s. Please update OrcaSlicer from the Microsoft Store."
msgstr ""
msgid "Confirm and Update Nozzle"
msgstr "ยืนยันและอัปเดตหัวฉีด"
@@ -11635,9 +11469,6 @@ msgstr "โมดูลการตัด"
msgid "Auto Fire Extinguishing System"
msgstr "ระบบดับเพลิงอัตโนมัติ"
msgid "Beta"
msgstr ""
msgid "Update firmware"
msgstr "อัพเดตเฟิร์มแวร์"
@@ -12231,14 +12062,6 @@ msgstr "การหดตัวของเส้นพลาสติกจะ
msgid "Generating skirt & brim"
msgstr "กำลังสร้าง เส้นล้อมชิ้นงาน และ ขอบยึดชิ้นงาน"
msgid ""
"Per-object skirts cannot fit between the objects in By object print "
"sequence.\n"
"\n"
"Move the objects farther apart, reduce brim/skirt size, switch Skirt type to "
"Combined, or switch Print sequence to By layer."
msgstr ""
msgid "Exporting G-code"
msgstr "กำลังส่งออก G-code"
@@ -12369,15 +12192,6 @@ msgstr "ใช้โฮสต์การพิมพ์ของบุคคล
msgid "Allow controlling BambuLab's printer through 3rd party print hosts."
msgstr "อนุญาตให้ควบคุมเครื่องพิมพ์ของ BambuLab ผ่านโฮสต์การพิมพ์ของบุคคลที่สาม"
msgid "Use 3MF instead of G-code"
msgstr ""
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 ""
msgid "Printer Agent"
msgstr "ตัวแทนเครื่องพิมพ์"
@@ -12784,7 +12598,7 @@ msgid "External bridge density"
msgstr "ความหนาแน่นของสะพานภายนอก"
msgid ""
"Controls the density (spacing) of external bridge lines.\n"
"Controls the density (spacing) of external bridge lines. Default is 100%.\n"
"Theoretically, 100% means a solid bridge, but due to the tendency of bridge "
"extrusions to sag, 100% may not be sufficient.\n"
"\n"
@@ -12798,14 +12612,18 @@ msgid ""
" - Pros: Can create a string-like first layer. Faster and with better "
"cooling because there is more space for air to circulate around the extruded "
"bridge.\n"
" - Cons: May lead to sagging and poorer surface finish."
" - Cons: May lead to sagging and poorer surface finish.\n"
"\n"
"Recommended range: Minimum 10% - Maximum 125%."
msgstr ""
msgid "Internal bridge density"
msgstr "ความหนาแน่นสะพานภายใน"
msgid ""
"Controls the density (spacing) of internal bridge lines.\n"
"Controls the density (spacing) of internal bridge lines. Default is 100%. "
"100% means a solid internal bridge.\n"
"\n"
"Internal bridges act as intermediate support between sparse infill and top "
"solid infill and can strongly affect top surface quality.\n"
"\n"
@@ -12840,9 +12658,11 @@ msgid ""
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
#, c-format, boost-format
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the "
"nozzle diameter.\n"
"Bridge line width is expressed either as an absolute value or as a "
"percentage of the active nozzle diameter (percentages are computed from the "
"nozzle diameter).\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
@@ -14682,7 +14502,7 @@ msgstr "การใช้หลายบรรทัดสำหรับรู
msgid "Z-buckling bias optimization (experimental)"
msgstr "การเพิ่มประสิทธิภาพอคติ Z-buckling (ทดลอง)"
#, fuzzy
#, fuzzy, c-format, boost-format
msgid ""
"Tightens the gyroid wave along the Z (vertical) axis at low infill density "
"to shorten the effective vertical column length and improve Z-axis "
@@ -14885,8 +14705,8 @@ msgid "mm/s² or %"
msgstr "มม./วินาที² หรือ %"
msgid ""
"Acceleration of sparse infill. If the value is expressed as a percentage "
"(e.g. 100%), it will be calculated based on the default acceleration."
"Acceleration of sparse infill. If the value is expressed as a percentage (e."
"g. 100%), it will be calculated based on the default acceleration."
msgstr ""
"ความเร่งของไส้ในแบบโปร่ง หากค่าแสดงเป็นเปอร์เซ็นต์ (เช่น 100%) "
"ค่านั้นจะถูกคำนวณตามความเร่งเริ่มต้น"
@@ -14931,6 +14751,9 @@ msgstr "max_accel_to_decel ของ Klipper จะถูกปรับเป
msgid "Default jerk."
msgstr "กระตุกเริ่มต้น"
msgid "Junction Deviation"
msgstr "ส่วนเบี่ยงเบนทางแยก"
msgid ""
"Marlin Firmware Junction Deviation (replaces the traditional XY Jerk "
"setting)."
@@ -15010,10 +14833,10 @@ msgstr "ความเร็วพัดลมเต็มชั้น"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer "
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\". \"full_fan_speed_layer\" will be ignored if lower than "
"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"ความเร็วพัดลมจะเพิ่มขึ้นเชิงเส้นจากศูนย์ที่เลเยอร์ \"close_fan_the_first_x_layers\" "
"ไปจนถึงสูงสุดที่เลเยอร์ \"full_fan_speed_layer\" \"full_fan_speed_layer\" "
@@ -16008,14 +15831,16 @@ msgstr ""
"ส่งผลต่อเส้นรอบวงที่มีความชันน้อยกว่ามุมนี้ (องศา)\n"
"ค่าที่เหมาะสมคือ 35 ตั้งค่าเป็น 0 เพื่อปิดใช้งาน"
msgid "°"
msgstr "°"
msgid "Don't alternate fill direction"
msgstr "อย่าสลับทิศทางไส้ใน"
msgid "Disable alternating fill direction when using Z contouring."
msgstr "ปิดใช้งานการสลับทิศทางไส้ในเมื่อใช้โครงร่าง Z"
#, fuzzy
msgid "Minimum Z height"
msgid "Minimum z height"
msgstr "ความสูงขั้นต่ำ z"
msgid ""
@@ -16838,8 +16663,8 @@ msgid ""
"If this value is positive, Z-hop will only come into effect when Z is above "
"the parameter: \"Z-hop lower boundary\" and is below this value."
msgstr ""
"หากค่านี้เป็นค่าบวก Z-hop จะมีผลเฉพาะเมื่อ Z อยู่เหนือพารามิเตอร์: \"Z-hop lower "
"boundary\" และอยู่ต่ำกว่าค่านี้"
"หากค่านี้เป็นค่าบวก Z-hop จะมีผลเฉพาะเมื่อ Z อยู่เหนือพารามิเตอร์: \"Z-hop lower boundary"
"\" และอยู่ต่ำกว่าค่านี้"
msgid "Z-hop type"
msgstr "ประเภท Z-hop"
@@ -17112,8 +16937,8 @@ msgid "Role base wipe speed"
msgstr "ความเร็วในการล้างฐานบทบาท"
msgid ""
"The wipe speed is determined by the speed of the current extrusion role. "
"e.g. if a wipe action is executed immediately following an outer wall "
"The wipe speed is determined by the speed of the current extrusion role. e."
"g. if a wipe action is executed immediately following an outer wall "
"extrusion, the speed of the outer wall extrusion will be utilized for the "
"wipe action."
msgstr ""
@@ -17994,8 +17819,8 @@ msgstr "เปิดใช้งานการควบคุมอุณหภ
msgid ""
"Enable this option for automated chamber temperature control. This option "
"activates the emitting of an M191 command before the "
"\"machine_start_gcode\"\n"
"activates the emitting of an M191 command before the \"machine_start_gcode"
"\"\n"
" 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"
@@ -18937,8 +18762,8 @@ msgid "Debug level"
msgstr "ระดับการแก้ไขข้อบกพร่อง"
msgid ""
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, "
"5:trace\n"
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:"
"trace\n"
msgstr ""
"ตั้งค่าระดับการบันทึกการดีบัก 0: ร้ายแรง, 1: ข้อผิดพลาด, 2: คำเตือน, 3: ข้อมูล, 4: ดีบัก, 5: "
"ติดตาม\n"
@@ -20695,8 +20520,8 @@ msgstr ""
"คุณต้องการเขียนใหม่หรือไม่?"
msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you "
"selected\".\n"
"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 ""
"เราจะเปลี่ยนชื่อค่าที่ตั้งล่วงหน้าเป็น \"Vendor Type Serial @printer ที่คุณเลือก\"\n"
@@ -20781,6 +20606,9 @@ msgstr "พรีเซ็ตเครื่องพิมพ์"
msgid "Filament Preset Template"
msgstr "เทมเพลตที่ตั้งไว้ล่วงหน้าของเส้นพลาสติก"
msgid "Deselect All"
msgstr "ยกเลิกการเลือกทั้งหมด"
msgid "Process Preset Template"
msgstr "ประมวลผลเทมเพลตที่กำหนดไว้ล่วงหน้า"
@@ -21258,21 +21086,9 @@ msgstr ""
msgid "Authorizing..."
msgstr ""
msgid "Error. Can't get api token for authorization"
msgstr ""
msgid "Could not parse server response."
msgstr ""
msgid "Error saving session to file"
msgstr ""
msgid "Error session check"
msgstr ""
msgid "Error during file upload"
msgstr ""
#, c-format, boost-format
msgid "Mismatched type of print host: %s"
msgstr "ประเภทของโฮสต์การพิมพ์ไม่ตรงกัน: %s"
@@ -22018,105 +21834,6 @@ msgstr "ไม่สามารถเชื่อมต่อกับ Flashfor
msgid "Flashforge local API requires both serial number and access code."
msgstr ""
msgid "Printer returned an error"
msgstr ""
msgid "Missing system_info in response"
msgstr ""
msgid "Missing printer serial number in response"
msgstr ""
msgid "Error parsing response"
msgstr ""
msgid "ElegooLink not detected"
msgstr ""
msgid "Invalid access code"
msgstr ""
msgid "CC2 device not detected"
msgstr ""
msgid "Connection to ElegooLink is working correctly."
msgstr ""
msgid "Could not connect to ElegooLink"
msgstr ""
#, boost-format
msgid "Error code: %1%"
msgstr ""
msgid "Upload failed"
msgstr ""
msgid ""
"The file has been transferred, but some unknown errors occurred. Please "
"check the device page for the file and try to start printing again."
msgstr ""
msgid "Failed to open file for upload."
msgstr ""
msgid "Failed to read file chunk for upload."
msgstr ""
msgid "CC2 upload failed"
msgstr ""
msgid "The file is empty or could not be read."
msgstr ""
msgid "Failed to calculate file checksum."
msgstr ""
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 ""
msgid "The file is lost, please check and try again."
msgstr ""
msgid "The file is corrupted, please check and try again."
msgstr ""
msgid "Transmission abnormality, please check and try again."
msgstr ""
msgid "The file does not match the printer, please check and try again."
msgstr ""
msgid "Start print timeout"
msgstr ""
msgid "Start print failed"
msgstr ""
msgid "Connected to CrealityPrint successfully!"
msgstr ""
msgid "Could not connect to CrealityPrint"
msgstr ""
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 ""
msgid "The Hostname/IP/URL could not be parsed, please check it and try again."
msgstr ""
msgid ""
"File/data transfer interrupted. Please check the printer and network, then "
"try it again."
msgstr ""
msgid "The provided state is not correct."
msgstr "สถานะที่ระบุไม่ถูกต้อง"
@@ -22167,12 +21884,6 @@ msgstr "หู ขอบยึดชิ้นงาน"
msgid "Please select single object."
msgstr "กรุณาเลือกวัตถุเดียว"
msgid "Entering Brim Ears"
msgstr ""
msgid "Leaving Brim Ears"
msgstr ""
msgid "Zoom Out"
msgstr "ซูมออก"
@@ -22182,9 +21893,6 @@ msgstr "ซูมเข้า"
msgid "Load skipping objects information failed. Please try again."
msgstr "โหลดข้อมูลวัตถุที่ข้ามล้มเหลว โปรดลองอีกครั้ง"
msgid "Failed to create the temporary folder."
msgstr ""
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d เลือกแล้ว"
@@ -22333,100 +22041,6 @@ msgstr "จำนวนด้านสามเหลี่ยม"
msgid "Calculating, please wait..."
msgstr "กำลังคำนวณ โปรดรอสักครู่..."
msgid "PresetBundle"
msgstr ""
msgid "Bundle folder does not exist."
msgstr ""
msgid "Failed to open folder."
msgstr ""
msgid "Delete selected bundle from folder and all presets loaded from it?"
msgstr ""
msgid "Delete Bundle"
msgstr ""
msgid "Failed to remove bundle."
msgstr ""
msgid "Remove Bundle"
msgstr ""
msgid "Unsubscribe bundle?"
msgstr ""
msgid "UnsubscribeBundle"
msgstr ""
msgid "Failed to unsubscribe bundle."
msgstr ""
msgid "Unsubscribe Bundle"
msgstr ""
msgid "ExportPresetBundle"
msgstr ""
msgid "Save preset bundle"
msgstr ""
msgid ""
"Performing desktop integration failed - boost::filesystem::canonical did not "
"return appimage path."
msgstr ""
msgid "Performing desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing desktop integration failed because the application directory was "
"not found."
msgstr ""
msgid ""
"Performing desktop integration failed - could not create Gcodeviewer desktop "
"file. OrcaSlicer desktop file was probably created successfully."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - "
"boost::filesystem::canonical did not return appimage path."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing downloader desktop integration failed because the application "
"directory was not found."
msgstr ""
msgid "Desktop Integration"
msgstr ""
msgid ""
"Desktop Integration sets this binary to be searchable by the system.\n"
"\n"
"Press \"Perform\" to proceed."
msgstr ""
msgid "The download has failed"
msgstr ""
#. TRN %1% = file path
#, boost-format
msgid "Can't create file at %1%"
msgstr ""
msgid "Archive preview"
msgstr ""
msgid "Open File"
msgstr ""
msgid ""
"The filament may not be compatible with the current machine settings. "
"Generic filament presets will be used."
@@ -22815,21 +22429,6 @@ msgstr ""
"คุณรู้หรือไม่ว่าเมื่อพิมพ์วัสดุที่มีแนวโน้มที่จะเกิดการบิดเบี้ยว เช่น ABS "
"การเพิ่มอุณหภูมิฐานพิมพ์อย่างเหมาะสมสามารถลดความน่าจะเป็นของการบิดเบี้ยวได้"
#~ msgid ""
#~ "It is recommended to assemble objects first,\n"
#~ "because the objects is restriced to bed \n"
#~ "and only parts can be lifted."
#~ msgstr ""
#~ "ขอแนะนำให้ประกอบวัตถุก่อน\n"
#~ "เพราะสิ่งของนั้นถูกจำกัดไว้บนฐานพิมพ์ \n"
#~ "และยกได้เพียงบางส่วนเท่านั้น"
#~ msgid "part selection"
#~ msgstr "การเลือกชิ้นส่วน"
#~ msgid "°"
#~ msgstr "°"
#, c-format, boost-format
#~ msgid ""
#~ "Failed to connect to OrcaCloud.\n"
+75 -471
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-26 11:35+0800\n"
"POT-Creation-Date: 2026-06-08 00:18+0800\n"
"PO-Revision-Date: 2026-04-08 23:59+0300\n"
"Last-Translator: GlauTech\n"
"Language-Team: \n"
@@ -197,15 +197,6 @@ msgstr "Tamamlandı"
msgid "Support Generated"
msgstr "Destek Oluşturuldu"
msgid "Entering Paint-on supports"
msgstr ""
msgid "Leaving Paint-on supports"
msgstr ""
msgid "Paint-on supports editing"
msgstr ""
msgid "Gizmo-Place on Face"
msgstr "Gizmo-Yüzeye yerleştir"
@@ -293,15 +284,6 @@ msgstr "Şunlar kullanılarak boyanmıştır: Filament %1%"
msgid "To:"
msgstr "İle:"
msgid "Entering color painting"
msgstr ""
msgid "Leaving color painting"
msgstr ""
msgid "Color painting editing"
msgstr ""
msgid "Paint-on fuzzy skin"
msgstr "Pütürlü yüzey boyama"
@@ -323,15 +305,6 @@ msgstr ""
msgid "Enable painted fuzzy skin for this object"
msgstr "Bu nesne için boyalı pütürlü yüzeyi etkinleştir"
msgid "Entering Paint-on fuzzy skin"
msgstr ""
msgid "Leaving Paint-on fuzzy skin"
msgstr ""
msgid "Paint-on fuzzy skin editing"
msgstr ""
msgid "Move"
msgstr "Taşı"
@@ -721,15 +694,6 @@ msgstr "Satıra göre kes"
msgid "Delete connector"
msgstr "Bağlayıcıyı sil"
msgid "Entering Cut gizmo"
msgstr ""
msgid "Leaving Cut gizmo"
msgstr ""
msgid "Cut gizmo editing"
msgstr ""
msgid "Mesh name"
msgstr "Mesh adı"
@@ -1603,12 +1567,6 @@ msgstr "Paralel mesafe:"
msgid "Flip by Face 2"
msgstr "Yüzey 2ye Göre Çevir"
msgid "Entering Measure gizmo"
msgstr ""
msgid "Leaving Measure gizmo"
msgstr ""
msgid "Assemble"
msgstr "Birleştir"
@@ -1635,20 +1593,17 @@ msgid "Warning: please select Point's or Circle's feature."
msgstr "Uyarı: Lütfen Noktanın veya Çemberin özelliğini seçin."
msgid ""
"It is recommended to assemble objects first,\n"
"because they are restricted to the bed \n"
"It is recommended to assemble the objects first,\n"
"because the objects is restriced to bed \n"
"and only parts can be lifted."
msgstr ""
"Önce nesnelerin bir araya getirilmesi tavsiye edilir.\n"
"çünkü nesneler yatakla sınırlıdır \n"
"ve yalnızca parçalar kaldırılabilir."
msgid "Face and face assembly"
msgstr "Yüz ve yüz montajı"
msgid "Entering Assembly gizmo"
msgstr ""
msgid "Leaving Assembly gizmo"
msgstr ""
msgid "Ctrl+"
msgstr "Ctrl+"
@@ -1707,8 +1662,7 @@ msgstr "AMF dosyaları"
msgid "3MF files"
msgstr "3MF dosyaları"
#, fuzzy
msgid "G-code 3MF files"
msgid "Gcode 3MF files"
msgstr "Gcode 3MF dosyaları"
msgid "G-code files"
@@ -1768,35 +1722,6 @@ msgstr "OrcaSlicer'da işlenmeyen bir istisna oluştu: %1%"
msgid "Untitled"
msgstr "İsimsiz"
msgid ""
"Since version 2.4.0, OrcaSlicer syncs user profiles through Orca Cloud "
"instead of Bambu Cloud.\n"
"\n"
"To migrate your existing profiles, log in to Orca Cloud and they will be "
"transferred automatically. To learn more about how OrcaSlicer stores and "
"syncs your profiles, or to migrate your presets manually, check out our "
"wiki.\n"
"\n"
"If you did not use Bambu Cloud to sync profiles, this change does not affect "
"you and you can safely ignore this message."
msgstr ""
"OrcaSlicer, 2.4.0 sürümünden itibaren kullanıcı profillerini Bambu Cloud "
"yerine Orca Cloud üzerinden senkronize eder.\n"
"\n"
"Mevcut profillerinizi taşımak için Orca Cloud'da oturum açın; profilleriniz "
"otomatik olarak aktarılacaktır. OrcaSlicer'ın profillerinizi nasıl depolayıp "
"senkronize ettiği hakkında daha fazla bilgi edinmek veya ön ayarlarınızı "
"elle taşımak için wiki'mize göz atın.\n"
"\n"
"Profilleri senkronize etmek için Bambu Cloud kullanmadıysanız bu değişiklik "
"sizi etkilemez ve bu mesajı güvenle yoksayabilirsiniz."
msgid "Profile syncing change"
msgstr ""
msgid "Learn more"
msgstr ""
msgid "Reloading network plug-in..."
msgstr "Ağ eklentisi yeniden yükleniyor..."
@@ -1828,14 +1753,6 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr "WebView2 Çalışma Zamanı"
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is "
"installed.\n"
"Please install it manually from https://developer.microsoft.com/microsoft-"
"edge/webview2/ and restart Orca Slicer."
msgstr ""
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
msgstr "Kaynak yolu mevcut değil veya bir dizin değil: %s"
@@ -1966,20 +1883,6 @@ msgid ""
"preset."
msgstr ""
msgid ""
"Cloud sync conflict: 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 ""
msgid ""
"Cloud sync conflict: there was an unexpected or unidentified preset "
"conflict.\n"
"Pull downloads the cloud copy. Force push overwrites it with your local "
"preset."
msgstr ""
msgid ""
"Force push will overwrite the cloud copy with your local preset changes.\n"
"Do you want to continue?"
@@ -3257,52 +3160,6 @@ msgstr "Maksimum sıcaklık aşılamaz"
msgid "The minmum temperature should not be less than "
msgstr "Minimum sıcaklık,"
msgid "Type to filter..."
msgstr ""
msgid "All"
msgstr "Tümü"
msgid "No selected items..."
msgstr ""
msgid "All items selected..."
msgstr ""
msgid "No matching items..."
msgstr ""
msgid "Deselect All"
msgstr "Hiçbirini seçme"
msgid "Select visible"
msgstr ""
msgid "Deselect visible"
msgstr ""
msgid "Filter selected"
msgstr ""
msgid "Filter nonSelected"
msgstr ""
msgid "Simple settings"
msgstr ""
msgid "Advanced settings"
msgstr "Gelişmiş ayarlar"
msgid "Expert settings"
msgstr ""
#, fuzzy
msgid "Developer mode"
msgstr "Geliştirici Modu"
msgid "Launch troubleshoot center"
msgstr ""
msgid ""
"All the selected objects are on a locked plate.\n"
"Cannot auto-arrange these objects."
@@ -3584,9 +3441,6 @@ msgstr "Yazı tipinin verilen metin için herhangi bir şekli yoktur."
msgid "There is no valid surface for text projection."
msgstr "Metin yansıtma için geçerli bir yüzey yoktur."
msgid "An unexpected error occurred"
msgstr ""
msgid "Thermal Preconditioning for first layer optimization"
msgstr "İlk katman optimizasyonu için Termal Ön Şartlandırma"
@@ -5507,7 +5361,10 @@ msgstr "Düzenleme alanını artır/azalt"
msgid "Sequence"
msgstr "Sekans"
msgid "Object selection"
msgid "Object Selection"
msgstr ""
msgid "Part Selection"
msgstr ""
msgid "number keys"
@@ -5698,6 +5555,9 @@ msgstr "Etiketler"
msgid "Paint Toolbar"
msgstr "Boyama Araç Çubuğu"
msgid "part selection"
msgstr "parça seçimi"
msgid "Explosion Ratio"
msgstr "Patlama Oranı"
@@ -5722,7 +5582,7 @@ msgstr "Hacim:"
msgid "Size:"
msgstr "Boyut:"
#, boost-format
#, c-format, boost-format
msgid ""
"Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -5952,12 +5812,12 @@ msgstr "Plakayı Yazdır"
msgid "Export G-code file"
msgstr "G-kod dosyasını dışa aktar"
msgid "Export plate sliced file"
msgstr "Dilimlenmiş plaka dosyasını dışa aktar"
msgid "Send"
msgstr "Gönder"
msgid "Export plate sliced file"
msgstr "Dilimlenmiş plaka dosyasını dışa aktar"
msgid "Export all sliced file"
msgstr "Tüm dilimlenmiş dosyayı dışa aktar"
@@ -8069,7 +7929,7 @@ msgstr ""
msgid "The selected object couldn't be split."
msgstr "Seçilen nesne bölünemedi."
msgid "Disable Auto-Drop to preserve Z positioning?\n"
msgid "Disable Auto-Drop to preserve z positioning?\n"
msgstr ""
msgid "Object with floating parts was detected"
@@ -8746,6 +8606,9 @@ msgstr "Grup kullanıcı filament ön ayarları"
msgid "Group user filament presets based on selection"
msgstr "Kullanıcı filament ön ayarlarını seçime göre gruplandırın"
msgid "All"
msgstr "Tümü"
msgid "By type"
msgstr "Türe göre"
@@ -8954,16 +8817,6 @@ msgstr ""
msgid "Renders cast shadows on the plate in realistic view."
msgstr ""
msgid "Smooth normals"
msgstr ""
msgid ""
"Applies smooth normals to the realistic view.\n"
"\n"
"Requires manual scene reload to take effect (right-click on 3D view → "
"\"Reload All\")."
msgstr ""
msgid "Anti-aliasing"
msgstr ""
@@ -9134,14 +8987,6 @@ msgstr "Ağ Eklentisini İndirin"
msgid "Associate files to OrcaSlicer"
msgstr "Dosyaları OrcaSlicer ile ilişkilendirin"
msgid ""
"File associations for the Microsoft Store version are managed by Windows "
"Settings."
msgstr ""
msgid "Open Windows Default Apps Settings"
msgstr ""
msgid "Associate 3MF files to OrcaSlicer"
msgstr ".3mf dosyalarını OrcaSlicer ile ilişkilendirin"
@@ -9180,6 +9025,10 @@ msgstr "Web bağlantılarını OrcaSlicer ile ilişkilendirin"
msgid "Developer"
msgstr "Geliştirici"
#, fuzzy
msgid "Developer mode"
msgstr "Geliştirici Modu"
msgid "Skip AMS blacklist check"
msgstr "AMS kara liste kontrolünü atla"
@@ -10001,9 +9850,6 @@ msgstr ""
"destekleyip desteklemediğini kontrol edin veya yazıcının düzgün çalışıp "
"çalışmadığını kontrol edin."
msgid "Sending failed, please try again!"
msgstr ""
msgid "Slice ok."
msgstr "Dilimleme tamam."
@@ -10329,8 +10175,8 @@ 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\"."
"by right-click the empty position of build plate and choose \"Add Primitive"
"\"->\"Timelapse Wipe Tower\"."
msgstr ""
"Araç başlığı olmadan timelapse kaydederken, bir \"Timelapse Wipe Tower\" "
"eklenmesi önerilir.\n"
@@ -10460,9 +10306,6 @@ msgstr "Harici ve dahili köprüler için hızı ayarlayın"
msgid "Travel speed"
msgstr "Seyahat Hızı"
msgid "Junction Deviation"
msgstr "Köşe sapması"
msgid "Jerk(XY)"
msgstr "Sarsıntı(XY)"
@@ -11336,6 +11179,9 @@ msgstr ""
"Kullanılmayan yazıcı filamentleri ise otomatik olarak listenin sonuna "
"eklenecektir."
msgid "Advanced settings"
msgstr "Gelişmiş ayarlar"
msgid "Add unused AMS filaments to filaments list."
msgstr "Kullanılmayan AMS filamentlerini filament listesine ekleyin."
@@ -11836,23 +11682,12 @@ msgstr "Yeni bir Ağ eklentisi(%s) mevcut, Yüklemek istiyor musunuz?"
msgid "New version of Orca Slicer"
msgstr "Orca Slicer’ın yeni versiyonu"
msgid "Check on Microsoft Store"
msgstr ""
msgid "Check on GitHub"
msgstr ""
msgid "Open Microsoft Store"
msgid "Check on Github"
msgstr ""
msgid "Skip this Version"
msgstr "Bu versiyonu atla"
#, c-format, boost-format
msgid ""
"New version available: %s. Please update OrcaSlicer from the Microsoft Store."
msgstr ""
msgid "Confirm and Update Nozzle"
msgstr "Nozulu Onaylayın ve Güncelleyin"
@@ -11967,9 +11802,6 @@ msgstr "Kesim Modülü"
msgid "Auto Fire Extinguishing System"
msgstr "Otomatik Yangın Söndürme Sistemi"
msgid "Beta"
msgstr ""
msgid "Update firmware"
msgstr "Ürün yazılımını güncelle"
@@ -12312,8 +12144,8 @@ msgid ""
"Please select \"By object\" print sequence to print multiple objects in "
"spiral vase mode."
msgstr ""
"Birden fazla nesneyi spiral vazo modunda yazdırmak için lütfen \"Nesneye "
"göre\" yazdırma sırasını seçin."
"Birden fazla nesneyi spiral vazo modunda yazdırmak için lütfen \"Nesneye göre"
"\" yazdırma sırasını seçin."
msgid ""
"The spiral vase mode does not work when an object contains more than one "
@@ -12623,14 +12455,6 @@ msgstr ""
msgid "Generating skirt & brim"
msgstr "Etek ve kenar oluşturma"
msgid ""
"Per-object skirts cannot fit between the objects in By object print "
"sequence.\n"
"\n"
"Move the objects farther apart, reduce brim/skirt size, switch Skirt type to "
"Combined, or switch Print sequence to By layer."
msgstr ""
msgid "Exporting G-code"
msgstr "G kodu dışa aktarılıyor"
@@ -12767,15 +12591,6 @@ msgstr ""
"BambuLab yazıcısının 3. taraf yazdırma ana bilgisayarları aracılığıyla "
"kontrol edilmesine izin ver."
msgid "Use 3MF instead of G-code"
msgstr ""
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 ""
msgid "Printer Agent"
msgstr "Yazıcı Aracısı"
@@ -13210,7 +13025,7 @@ msgid "External bridge density"
msgstr "Dış köprü yoğunluğu"
msgid ""
"Controls the density (spacing) of external bridge lines.\n"
"Controls the density (spacing) of external bridge lines. Default is 100%.\n"
"Theoretically, 100% means a solid bridge, but due to the tendency of bridge "
"extrusions to sag, 100% may not be sufficient.\n"
"\n"
@@ -13224,14 +13039,18 @@ msgid ""
" - Pros: Can create a string-like first layer. Faster and with better "
"cooling because there is more space for air to circulate around the extruded "
"bridge.\n"
" - Cons: May lead to sagging and poorer surface finish."
" - Cons: May lead to sagging and poorer surface finish.\n"
"\n"
"Recommended range: Minimum 10% - Maximum 125%."
msgstr ""
msgid "Internal bridge density"
msgstr "İç köprü yoğunluğu"
msgid ""
"Controls the density (spacing) of internal bridge lines.\n"
"Controls the density (spacing) of internal bridge lines. Default is 100%. "
"100% means a solid internal bridge.\n"
"\n"
"Internal bridges act as intermediate support between sparse infill and top "
"solid infill and can strongly affect top surface quality.\n"
"\n"
@@ -13266,9 +13085,11 @@ msgid ""
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
#, c-format, boost-format
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the "
"nozzle diameter.\n"
"Bridge line width is expressed either as an absolute value or as a "
"percentage of the active nozzle diameter (percentages are computed from the "
"nozzle diameter).\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
@@ -15208,6 +15029,7 @@ msgstr ""
msgid "Z-buckling bias optimization (experimental)"
msgstr ""
#, c-format, boost-format
msgid ""
"Tightens the gyroid wave along the Z (vertical) axis at low infill density "
"to shorten the effective vertical column length and improve Z-axis "
@@ -15412,8 +15234,8 @@ msgid "mm/s² or %"
msgstr "mm/s² veya %"
msgid ""
"Acceleration of sparse infill. If the value is expressed as a percentage "
"(e.g. 100%), it will be calculated based on the default acceleration."
"Acceleration of sparse infill. If the value is expressed as a percentage (e."
"g. 100%), it will be calculated based on the default acceleration."
msgstr ""
"Seyrek dolgunun hızlandırılması. Değer yüzde olarak ifade edilirse (örn. "
"%100), varsayılan ivmeye göre hesaplanacaktır."
@@ -15459,6 +15281,9 @@ msgstr ""
msgid "Default jerk."
msgstr "Varsayılan sarsıntı."
msgid "Junction Deviation"
msgstr "Köşe sapması"
msgid ""
"Marlin Firmware Junction Deviation (replaces the traditional XY Jerk "
"setting)."
@@ -15542,17 +15367,16 @@ msgstr "Maksimum fan hızı"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer "
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\". \"full_fan_speed_layer\" will be ignored if lower than "
"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"Fan hızı, \"close_fan_the_first_x_layers\" katmanında sıfırdan "
"\"ful_fan_speed_layer\" katmanında maksimuma doğrusal olarak artırılacaktır. "
"\"full_fan_speed_layer\", \"close_fan_the_first_x_layers\" değerinden "
"düşükse göz ardı edilecektir; bu durumda fan, "
"\"close_fan_the_first_x_layers\" + 1 katmanında izin verilen maksimum hızda "
"çalışacaktır."
"düşükse göz ardı edilecektir; bu durumda fan, \"close_fan_the_first_x_layers"
"\" + 1 katmanında izin verilen maksimum hızda çalışacaktır."
msgid "layer"
msgstr "katman"
@@ -16561,13 +16385,16 @@ msgid ""
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
msgid "°"
msgstr "°/s"
msgid "Don't alternate fill direction"
msgstr ""
msgid "Disable alternating fill direction when using Z contouring."
msgstr ""
msgid "Minimum Z height"
msgid "Minimum z height"
msgstr ""
msgid ""
@@ -17704,8 +17531,8 @@ msgid "Role base wipe speed"
msgstr "Otomatik temizleme hızı"
msgid ""
"The wipe speed is determined by the speed of the current extrusion role. "
"e.g. if a wipe action is executed immediately following an outer wall "
"The wipe speed is determined by the speed of the current extrusion role. e."
"g. if a wipe action is executed immediately following an outer wall "
"extrusion, the speed of the outer wall extrusion will be utilized for the "
"wipe action."
msgstr ""
@@ -18639,8 +18466,8 @@ msgstr "Sıcaklık kontrolünü etkinleştirin"
msgid ""
"Enable this option for automated chamber temperature control. This option "
"activates the emitting of an M191 command before the "
"\"machine_start_gcode\"\n"
"activates the emitting of an M191 command before the \"machine_start_gcode"
"\"\n"
" 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"
@@ -19648,8 +19475,8 @@ msgid "Debug level"
msgstr "Hata ayıklama düzeyi"
msgid ""
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, "
"5:trace\n"
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:"
"trace\n"
msgstr ""
"Hata ayıklama günlüğü düzeyini ayarlar. 0:önemli, 1:hata, 2:uyarı, 3:bilgi, "
"4:hata ayıklama, 5:izleme\n"
@@ -21500,8 +21327,8 @@ msgstr ""
"Yeniden yazmak ister misin?"
msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you "
"selected\".\n"
"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 ayarları şu şekilde yeniden adlandırırdık: \"Satıcı Türü Seçtiğiniz Seri "
@@ -21587,6 +21414,9 @@ msgstr "Yazıcı Ön Ayarı"
msgid "Filament Preset Template"
msgstr "Filament Ön Ayar Şablonu"
msgid "Deselect All"
msgstr "Hiçbirini seçme"
msgid "Process Preset Template"
msgstr "İşleme Ön Ayarı Şablonu"
@@ -22100,21 +21930,9 @@ msgstr ""
msgid "Authorizing..."
msgstr ""
msgid "Error. Can't get api token for authorization"
msgstr ""
msgid "Could not parse server response."
msgstr ""
msgid "Error saving session to file"
msgstr ""
msgid "Error session check"
msgstr ""
msgid "Error during file upload"
msgstr ""
#, c-format, boost-format
msgid "Mismatched type of print host: %s"
msgstr "Eşleşmeyen yazdırma ana bilgisayarı türü: %s"
@@ -22932,105 +22750,6 @@ msgstr "Flashforge'a seri bağlantı yoluyla bağlanılamadı"
msgid "Flashforge local API requires both serial number and access code."
msgstr ""
msgid "Printer returned an error"
msgstr ""
msgid "Missing system_info in response"
msgstr ""
msgid "Missing printer serial number in response"
msgstr ""
msgid "Error parsing response"
msgstr ""
msgid "ElegooLink not detected"
msgstr ""
msgid "Invalid access code"
msgstr ""
msgid "CC2 device not detected"
msgstr ""
msgid "Connection to ElegooLink is working correctly."
msgstr ""
msgid "Could not connect to ElegooLink"
msgstr ""
#, boost-format
msgid "Error code: %1%"
msgstr ""
msgid "Upload failed"
msgstr ""
msgid ""
"The file has been transferred, but some unknown errors occurred. Please "
"check the device page for the file and try to start printing again."
msgstr ""
msgid "Failed to open file for upload."
msgstr ""
msgid "Failed to read file chunk for upload."
msgstr ""
msgid "CC2 upload failed"
msgstr ""
msgid "The file is empty or could not be read."
msgstr ""
msgid "Failed to calculate file checksum."
msgstr ""
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 ""
msgid "The file is lost, please check and try again."
msgstr ""
msgid "The file is corrupted, please check and try again."
msgstr ""
msgid "Transmission abnormality, please check and try again."
msgstr ""
msgid "The file does not match the printer, please check and try again."
msgstr ""
msgid "Start print timeout"
msgstr ""
msgid "Start print failed"
msgstr ""
msgid "Connected to CrealityPrint successfully!"
msgstr ""
msgid "Could not connect to CrealityPrint"
msgstr ""
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 ""
msgid "The Hostname/IP/URL could not be parsed, please check it and try again."
msgstr ""
msgid ""
"File/data transfer interrupted. Please check the printer and network, then "
"try it again."
msgstr ""
msgid "The provided state is not correct."
msgstr "Sağlanan durum doğru değil."
@@ -23084,12 +22803,6 @@ msgstr "Kenar kulakları"
msgid "Please select single object."
msgstr "Lütfen tek bir nesne seçin."
msgid "Entering Brim Ears"
msgstr ""
msgid "Leaving Brim Ears"
msgstr ""
msgid "Zoom Out"
msgstr "Uzaklaştır"
@@ -23099,9 +22812,6 @@ msgstr "Yakınlaştır"
msgid "Load skipping objects information failed. Please try again."
msgstr "Nesne bilgilerinin atlanması yüklenemedi. Lütfen tekrar deneyin."
msgid "Failed to create the temporary folder."
msgstr ""
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d Seçildi"
@@ -23253,100 +22963,6 @@ msgstr "Üçgen yüzeylerin sayısı"
msgid "Calculating, please wait..."
msgstr "Hesaplanıyor, lütfen bekleyin..."
msgid "PresetBundle"
msgstr ""
msgid "Bundle folder does not exist."
msgstr ""
msgid "Failed to open folder."
msgstr ""
msgid "Delete selected bundle from folder and all presets loaded from it?"
msgstr ""
msgid "Delete Bundle"
msgstr ""
msgid "Failed to remove bundle."
msgstr ""
msgid "Remove Bundle"
msgstr ""
msgid "Unsubscribe bundle?"
msgstr ""
msgid "UnsubscribeBundle"
msgstr ""
msgid "Failed to unsubscribe bundle."
msgstr ""
msgid "Unsubscribe Bundle"
msgstr ""
msgid "ExportPresetBundle"
msgstr ""
msgid "Save preset bundle"
msgstr ""
msgid ""
"Performing desktop integration failed - boost::filesystem::canonical did not "
"return appimage path."
msgstr ""
msgid "Performing desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing desktop integration failed because the application directory was "
"not found."
msgstr ""
msgid ""
"Performing desktop integration failed - could not create Gcodeviewer desktop "
"file. OrcaSlicer desktop file was probably created successfully."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - "
"boost::filesystem::canonical did not return appimage path."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing downloader desktop integration failed because the application "
"directory was not found."
msgstr ""
msgid "Desktop Integration"
msgstr ""
msgid ""
"Desktop Integration sets this binary to be searchable by the system.\n"
"\n"
"Press \"Perform\" to proceed."
msgstr ""
msgid "The download has failed"
msgstr ""
#. TRN %1% = file path
#, boost-format
msgid "Can't create file at %1%"
msgstr ""
msgid "Archive preview"
msgstr ""
msgid "Open File"
msgstr ""
msgid ""
"The filament may not be compatible with the current machine settings. "
"Generic filament presets will be used."
@@ -23760,21 +23376,6 @@ msgstr ""
"sıcaklığının uygun şekilde arttırılmasının bükülme olasılığını "
"azaltabileceğini biliyor muydunuz?"
#~ msgid ""
#~ "It is recommended to assemble objects first,\n"
#~ "because the objects is restriced to bed \n"
#~ "and only parts can be lifted."
#~ msgstr ""
#~ "Önce nesnelerin bir araya getirilmesi tavsiye edilir.\n"
#~ "çünkü nesneler yatakla sınırlıdır \n"
#~ "ve yalnızca parçalar kaldırılabilir."
#~ msgid "part selection"
#~ msgstr "parça seçimi"
#~ msgid "°"
#~ msgstr "°/s"
#~ msgid ""
#~ "The Wipe option is not available when using the Firmware Retraction "
#~ "mode.\n"
@@ -24129,6 +23730,9 @@ msgstr ""
#~ msgid "Mouse wheel:"
#~ msgstr "Fare tekerleği:"
#~ msgid "Object selection"
#~ msgstr "nesne seçimi"
#~ msgid "Pass 1"
#~ msgstr "Geçiş 1"
+84 -475
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: orcaslicerua\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-26 11:35+0800\n"
"POT-Creation-Date: 2026-06-08 00:18+0800\n"
"PO-Revision-Date: 2025-03-07 09:30+0200\n"
"Last-Translator: \n"
"Language-Team: Ukrainian\n"
@@ -194,15 +194,6 @@ msgstr "Виконано"
msgid "Support Generated"
msgstr "Згенеровані підтримки"
msgid "Entering Paint-on supports"
msgstr ""
msgid "Leaving Paint-on supports"
msgstr ""
msgid "Paint-on supports editing"
msgstr ""
msgid "Gizmo-Place on Face"
msgstr "Gizmo - Покласти на грань"
@@ -291,15 +282,6 @@ msgstr "Забарвлений за допомогою: Філамент %1%"
msgid "To:"
msgstr "До:"
msgid "Entering color painting"
msgstr ""
msgid "Leaving color painting"
msgstr ""
msgid "Color painting editing"
msgstr ""
msgid "Paint-on fuzzy skin"
msgstr "Нанесення текстури"
@@ -319,15 +301,6 @@ msgstr ""
msgid "Enable painted fuzzy skin for this object"
msgstr ""
msgid "Entering Paint-on fuzzy skin"
msgstr ""
msgid "Leaving Paint-on fuzzy skin"
msgstr ""
msgid "Paint-on fuzzy skin editing"
msgstr ""
msgid "Move"
msgstr "Перемістити"
@@ -722,15 +695,6 @@ msgstr "Розрізати по лінії"
msgid "Delete connector"
msgstr "Видалити з'єднувач"
msgid "Entering Cut gizmo"
msgstr ""
msgid "Leaving Cut gizmo"
msgstr ""
msgid "Cut gizmo editing"
msgstr ""
msgid "Mesh name"
msgstr "Назва сітки"
@@ -1604,12 +1568,6 @@ msgstr "Паралельна відстань:"
msgid "Flip by Face 2"
msgstr "Перевернути за Гранню 2"
msgid "Entering Measure gizmo"
msgstr ""
msgid "Leaving Measure gizmo"
msgstr ""
msgid "Assemble"
msgstr "Об'єднати у збірку"
@@ -1637,8 +1595,8 @@ msgid "Warning: please select Point's or Circle's feature."
msgstr "Попередження: будь ласка, виберіть характеристику точки або кола."
msgid ""
"It is recommended to assemble objects first,\n"
"because they are restricted to the bed \n"
"It is recommended to assemble the objects first,\n"
"because the objects is restriced to bed \n"
"and only parts can be lifted."
msgstr ""
"Рекомендується спочатку зібрати об’єкти,\n"
@@ -1648,12 +1606,6 @@ msgstr ""
msgid "Face and face assembly"
msgstr "Збірка грань до грані"
msgid "Entering Assembly gizmo"
msgstr ""
msgid "Leaving Assembly gizmo"
msgstr ""
msgid "Ctrl+"
msgstr "Ctrl+"
@@ -1713,7 +1665,7 @@ msgstr ""
msgid "3MF files"
msgstr ""
msgid "G-code 3MF files"
msgid "Gcode 3MF files"
msgstr ""
msgid "G-code files"
@@ -1773,35 +1725,6 @@ msgstr "Невідома помилка OrcaSlicer : %1%"
msgid "Untitled"
msgstr "Без назви"
msgid ""
"Since version 2.4.0, OrcaSlicer syncs user profiles through Orca Cloud "
"instead of Bambu Cloud.\n"
"\n"
"To migrate your existing profiles, log in to Orca Cloud and they will be "
"transferred automatically. To learn more about how OrcaSlicer stores and "
"syncs your profiles, or to migrate your presets manually, check out our "
"wiki.\n"
"\n"
"If you did not use Bambu Cloud to sync profiles, this change does not affect "
"you and you can safely ignore this message."
msgstr ""
"Починаючи з версії 2.4.0, OrcaSlicer синхронізує профілі користувача через "
"Orca Cloud замість Bambu Cloud.\n"
"\n"
"Щоб перенести наявні профілі, увійдіть до Orca Cloud, і вони будуть "
"перенесені автоматично. Щоб дізнатися більше про те, як OrcaSlicer зберігає "
"та синхронізує ваші профілі, або щоб перенести свої шаблони вручну, "
"перегляньте нашу вікі.\n"
"\n"
"Якщо ви не використовували Bambu Cloud для синхронізації профілів, ця зміна "
"вас не стосується, і ви можете сміливо проігнорувати це повідомлення."
msgid "Profile syncing change"
msgstr ""
msgid "Learn more"
msgstr ""
msgid "Reloading network plug-in..."
msgstr ""
@@ -1832,14 +1755,6 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr "Виконання WebView2"
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is "
"installed.\n"
"Please install it manually from https://developer.microsoft.com/microsoft-"
"edge/webview2/ and restart Orca Slicer."
msgstr ""
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
msgstr ""
@@ -1969,20 +1884,6 @@ msgid ""
"preset."
msgstr ""
msgid ""
"Cloud sync conflict: 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 ""
msgid ""
"Cloud sync conflict: there was an unexpected or unidentified preset "
"conflict.\n"
"Pull downloads the cloud copy. Force push overwrites it with your local "
"preset."
msgstr ""
msgid ""
"Force push will overwrite the cloud copy with your local preset changes.\n"
"Do you want to continue?"
@@ -3246,52 +3147,6 @@ msgstr ""
msgid "The minmum temperature should not be less than "
msgstr ""
msgid "Type to filter..."
msgstr ""
msgid "All"
msgstr "Всі"
msgid "No selected items..."
msgstr ""
msgid "All items selected..."
msgstr ""
msgid "No matching items..."
msgstr ""
msgid "Deselect All"
msgstr "Скасувати вибір всіх"
msgid "Select visible"
msgstr ""
msgid "Deselect visible"
msgstr ""
msgid "Filter selected"
msgstr ""
msgid "Filter nonSelected"
msgstr ""
msgid "Simple settings"
msgstr ""
msgid "Advanced settings"
msgstr ""
msgid "Expert settings"
msgstr ""
#, fuzzy
msgid "Developer mode"
msgstr "Режим розробки"
msgid "Launch troubleshoot center"
msgstr ""
msgid ""
"All the selected objects are on a locked plate.\n"
"Cannot auto-arrange these objects."
@@ -3561,9 +3416,6 @@ msgstr "Шрифт не має жодної форми для вказаного
msgid "There is no valid surface for text projection."
msgstr "Немає дійсної поверхні для проекції тексту."
msgid "An unexpected error occurred"
msgstr ""
msgid "Thermal Preconditioning for first layer optimization"
msgstr ""
@@ -3654,8 +3506,8 @@ msgid ""
"This software uses open source components whose copyright and other "
"proprietary rights belong to their respective owners"
msgstr ""
"Це програмне забезпечення використовує компоненти з відкритим вихідним "
"кодом,авторські права та інші\n"
"Це програмне забезпечення використовує компоненти з відкритим вихідним кодом,"
"авторські права та інші\n"
"права власності належать їх відповідним власникам"
#, c-format, boost-format
@@ -5377,8 +5229,8 @@ msgid ""
"confirming that the height is within the build volume."
msgstr ""
"Об'єкт знаходиться за кордоном пластини або перевищує обмеження по висоті.\n"
"Будь ласка, вирішіть проблему, перемістивши її повністю на тарілку або з "
"неї,і підтвердження того, що висота знаходиться в межах обсягу збирання."
"Будь ласка, вирішіть проблему, перемістивши її повністю на тарілку або з неї,"
"і підтвердження того, що висота знаходиться в межах обсягу збирання."
msgid "Variable layer height"
msgstr "Змінна висота шару"
@@ -5416,7 +5268,10 @@ msgstr "Збільшення/зменшення області редагува
msgid "Sequence"
msgstr "Послідовність"
msgid "Object selection"
msgid "Object Selection"
msgstr ""
msgid "Part Selection"
msgstr ""
msgid "number keys"
@@ -5603,6 +5458,9 @@ msgstr ""
msgid "Paint Toolbar"
msgstr "Панель інструментів малювання"
msgid "part selection"
msgstr "вибір частини"
msgid "Explosion Ratio"
msgstr "Коефіцієнт вибуху"
@@ -5627,7 +5485,7 @@ msgstr "Об'єм:"
msgid "Size:"
msgstr "Розмір:"
#, fuzzy, boost-format
#, fuzzy, c-format, boost-format
msgid ""
"Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -5840,12 +5698,12 @@ msgstr "Друкувати пластину"
msgid "Export G-code file"
msgstr "Експорт файлу G-коду"
msgid "Export plate sliced file"
msgstr "Експортувати файл нарізки пластини"
msgid "Send"
msgstr "Надіслати"
msgid "Export plate sliced file"
msgstr "Експортувати файл нарізки пластини"
msgid "Export all sliced file"
msgstr "Експортувати файл нарізки всього"
@@ -7940,7 +7798,7 @@ msgstr ""
msgid "The selected object couldn't be split."
msgstr "Вибраний об'єкт не може бути поділений."
msgid "Disable Auto-Drop to preserve Z positioning?\n"
msgid "Disable Auto-Drop to preserve z positioning?\n"
msgstr ""
msgid "Object with floating parts was detected"
@@ -8603,6 +8461,9 @@ msgstr ""
msgid "Group user filament presets based on selection"
msgstr ""
msgid "All"
msgstr "Всі"
msgid "By type"
msgstr ""
@@ -8791,16 +8652,6 @@ msgstr ""
msgid "Renders cast shadows on the plate in realistic view."
msgstr ""
msgid "Smooth normals"
msgstr ""
msgid ""
"Applies smooth normals to the realistic view.\n"
"\n"
"Requires manual scene reload to take effect (right-click on 3D view → "
"\"Reload All\")."
msgstr ""
msgid "Anti-aliasing"
msgstr ""
@@ -8963,14 +8814,6 @@ msgstr ""
msgid "Associate files to OrcaSlicer"
msgstr "Асоціювати файли з OrcaSlicer"
msgid ""
"File associations for the Microsoft Store version are managed by Windows "
"Settings."
msgstr ""
msgid "Open Windows Default Apps Settings"
msgstr ""
#, fuzzy
msgid "Associate 3MF files to OrcaSlicer"
msgstr "Асоціювати файли .3mf з OrcaSlicer"
@@ -9013,6 +8856,10 @@ msgstr "Асоціювати веб-посилання з OrcaSlicer"
msgid "Developer"
msgstr ""
#, fuzzy
msgid "Developer mode"
msgstr "Режим розробки"
msgid "Skip AMS blacklist check"
msgstr "Пропустити перевірку чорного списку AMS"
@@ -9760,9 +9607,6 @@ msgid ""
"operation or verify if the printer is functioning properly."
msgstr ""
msgid "Sending failed, please try again!"
msgstr ""
msgid "Slice ok."
msgstr "Нарізка прибл."
@@ -10066,8 +9910,8 @@ 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\"."
"by right-click the empty position of build plate and choose \"Add Primitive"
"\"->\"Timelapse Wipe Tower\"."
msgstr ""
"При записі таймлапсу без інструментальної головки рекомендується додати "
"“Timelapse Wipe Tower” \n"
@@ -10198,9 +10042,6 @@ msgstr "Встановіть швидкість для зовнішніх та
msgid "Travel speed"
msgstr "Швидкість переміщення"
msgid "Junction Deviation"
msgstr ""
msgid "Jerk(XY)"
msgstr "Ривок (XY)"
@@ -11065,6 +10906,9 @@ msgid ""
"list."
msgstr ""
msgid "Advanced settings"
msgstr ""
msgid "Add unused AMS filaments to filaments list."
msgstr ""
@@ -11551,23 +11395,12 @@ msgstr "Доступний новий мережевий плагін (%s), чи
msgid "New version of Orca Slicer"
msgstr "Нова версія Orca Slicer"
msgid "Check on Microsoft Store"
msgstr ""
msgid "Check on GitHub"
msgstr ""
msgid "Open Microsoft Store"
msgid "Check on Github"
msgstr ""
msgid "Skip this Version"
msgstr "Пропустити цю версію"
#, c-format, boost-format
msgid ""
"New version available: %s. Please update OrcaSlicer from the Microsoft Store."
msgstr ""
msgid "Confirm and Update Nozzle"
msgstr "Підтвердити і оновити сопло"
@@ -11674,9 +11507,6 @@ msgstr ""
msgid "Auto Fire Extinguishing System"
msgstr ""
msgid "Beta"
msgstr ""
msgid "Update firmware"
msgstr "Оновити прошивку"
@@ -12303,14 +12133,6 @@ msgstr ""
msgid "Generating skirt & brim"
msgstr "Генерація спідниці та кайми"
msgid ""
"Per-object skirts cannot fit between the objects in By object print "
"sequence.\n"
"\n"
"Move the objects farther apart, reduce brim/skirt size, switch Skirt type to "
"Combined, or switch Print sequence to By layer."
msgstr ""
msgid "Exporting G-code"
msgstr "Експорт G-code"
@@ -12442,15 +12264,6 @@ msgstr "Використовувати сторонній хост для дру
msgid "Allow controlling BambuLab's printer through 3rd party print hosts."
msgstr "Дозволяє керувати принтером BambuLab через сторонні хости друку"
msgid "Use 3MF instead of G-code"
msgstr ""
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 ""
msgid "Printer Agent"
msgstr ""
@@ -12891,7 +12704,7 @@ msgid "External bridge density"
msgstr "Щільність зовнішніх мостів"
msgid ""
"Controls the density (spacing) of external bridge lines.\n"
"Controls the density (spacing) of external bridge lines. Default is 100%.\n"
"Theoretically, 100% means a solid bridge, but due to the tendency of bridge "
"extrusions to sag, 100% may not be sufficient.\n"
"\n"
@@ -12905,14 +12718,18 @@ msgid ""
" - Pros: Can create a string-like first layer. Faster and with better "
"cooling because there is more space for air to circulate around the extruded "
"bridge.\n"
" - Cons: May lead to sagging and poorer surface finish."
" - Cons: May lead to sagging and poorer surface finish.\n"
"\n"
"Recommended range: Minimum 10% - Maximum 125%."
msgstr ""
msgid "Internal bridge density"
msgstr "Щільність внутрішніх мостів"
msgid ""
"Controls the density (spacing) of internal bridge lines.\n"
"Controls the density (spacing) of internal bridge lines. Default is 100%. "
"100% means a solid internal bridge.\n"
"\n"
"Internal bridges act as intermediate support between sparse infill and top "
"solid infill and can strongly affect top surface quality.\n"
"\n"
@@ -12947,9 +12764,11 @@ msgid ""
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
#, c-format, boost-format
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the "
"nozzle diameter.\n"
"Bridge line width is expressed either as an absolute value or as a "
"percentage of the active nozzle diameter (percentages are computed from the "
"nozzle diameter).\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
@@ -14832,6 +14651,7 @@ msgstr ""
msgid "Z-buckling bias optimization (experimental)"
msgstr ""
#, c-format, boost-format
msgid ""
"Tightens the gyroid wave along the Z (vertical) axis at low infill density "
"to shorten the effective vertical column length and improve Z-axis "
@@ -14974,8 +14794,8 @@ msgstr ""
"знайдено, лінія заповнення з'єднується з сегментом периметра лише з одного "
"боку, і довжина взятого сегменту периметра обмежена цим параметром, але не "
"більше anchor_length_max.\n"
"Встановіть цей параметр рівним нулю, щоб вимкнути периметри "
"прив'язки.пов'язані з однією лінією заповнення."
"Встановіть цей параметр рівним нулю, щоб вимкнути периметри прив'язки."
"пов'язані з однією лінією заповнення."
msgid "0 (no open anchors)"
msgstr "0 (немає відкритих прив'язок)"
@@ -15042,8 +14862,8 @@ msgid "mm/s² or %"
msgstr "мм/с² або %"
msgid ""
"Acceleration of sparse infill. If the value is expressed as a percentage "
"(e.g. 100%), it will be calculated based on the default acceleration."
"Acceleration of sparse infill. If the value is expressed as a percentage (e."
"g. 100%), it will be calculated based on the default acceleration."
msgstr ""
"Прискорення заповнення. Якщо значення виражено у відсотках (наприклад, "
"100%), воно буде розраховане на основі прискорення за умовчанням."
@@ -15090,6 +14910,9 @@ msgstr "Klipper-ів max_accel_to_decel буде скориговано на ц
msgid "Default jerk."
msgstr ""
msgid "Junction Deviation"
msgstr ""
msgid ""
"Marlin Firmware Junction Deviation (replaces the traditional XY Jerk "
"setting)."
@@ -15174,10 +14997,10 @@ msgstr "Повна швидкість вентилятора на шарі"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer "
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\". \"full_fan_speed_layer\" will be ignored if lower than "
"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"Швидкість вентилятора лінійно збільшується від нуля на "
"рівні«close_fan_the_first_x_layers» до максимуму на рівні "
@@ -16136,13 +15959,16 @@ msgid ""
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
msgid "°"
msgstr "°"
msgid "Don't alternate fill direction"
msgstr ""
msgid "Disable alternating fill direction when using Z contouring."
msgstr ""
msgid "Minimum Z height"
msgid "Minimum z height"
msgstr ""
msgid ""
@@ -17261,8 +17087,8 @@ msgid "Role base wipe speed"
msgstr "Швидкість протирання залежно від типу"
msgid ""
"The wipe speed is determined by the speed of the current extrusion role. "
"e.g. if a wipe action is executed immediately following an outer wall "
"The wipe speed is determined by the speed of the current extrusion role. e."
"g. if a wipe action is executed immediately following an outer wall "
"extrusion, the speed of the outer wall extrusion will be utilized for the "
"wipe action."
msgstr ""
@@ -17278,8 +17104,8 @@ msgid ""
"To minimize the visibility of the seam in a closed loop extrusion, a small "
"inward movement is executed before the extruder leaves the loop."
msgstr ""
"Щоб звести до мінімуму видимість шва при екструзії із замкнутим "
"контуром,Невеликий рух усередину виконується до виходу екструдера з контуру."
"Щоб звести до мінімуму видимість шва при екструзії із замкнутим контуром,"
"Невеликий рух усередину виконується до виходу екструдера з контуру."
msgid "Wipe before external loop"
msgstr "Протирати перед зовнішнім контуром"
@@ -17796,8 +17622,8 @@ msgid ""
"Only create support for critical regions including sharp tail, cantilever, "
"etc."
msgstr ""
"Створювати підтримку тільки для критичних областей, включаючи гострий "
"хвіст,консоль і т.д."
"Створювати підтримку тільки для критичних областей, включаючи гострий хвіст,"
"консоль і т.д."
msgid "Ignore small overhangs"
msgstr ""
@@ -18166,8 +17992,8 @@ msgstr "Увімкнути контроль температури"
msgid ""
"Enable this option for automated chamber temperature control. This option "
"activates the emitting of an M191 command before the "
"\"machine_start_gcode\"\n"
"activates the emitting of an M191 command before the \"machine_start_gcode"
"\"\n"
" 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"
@@ -18355,9 +18181,9 @@ msgstr ""
"Залежно від тривалості операції витирання, швидкості та тривалості "
"втягування екструдера/нитки, може знадобитися рух накату для нитки.\n"
"\n"
"Якщо встановити значення у параметрі \"Кількість втягування перед "
"витиранням\" нижче, надлишкове втягування буде виконано перед витиранням, "
"інакше воно буде виконано після нього."
"Якщо встановити значення у параметрі \"Кількість втягування перед витиранням"
"\" нижче, надлишкове втягування буде виконано перед витиранням, інакше воно "
"буде виконано після нього."
msgid ""
"The wiping tower can be used to clean up the residue on the nozzle and "
@@ -19130,8 +18956,8 @@ msgid "Debug level"
msgstr "Рівень налагодження"
msgid ""
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, "
"5:trace\n"
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:"
"trace\n"
msgstr ""
"Встановлює рівень реєстрації налагодження. 0: непереборний, 1: помилка, 2: "
"попередження, 3: інформація, 4: налагодження, 5: трасування\n"
@@ -19676,13 +19502,13 @@ msgstr "Наданий файл не вдалося прочитати, оскі
msgid ""
"Unknown file format. Input file must have .stl, .obj, .amf(.xml) extension."
msgstr ""
"Невідомий формат файлу: вхідний файл повинен мати розширення .stl, .obj "
"або .amf (.xml)."
"Невідомий формат файлу: вхідний файл повинен мати розширення .stl, .obj або ."
"amf (.xml)."
msgid "Unknown file format. Input file must have .3mf or .zip.amf extension."
msgstr ""
"Невідомий формат файлу: вхідний файл повинен мати розширення .3mf "
"або .zip.amf."
"Невідомий формат файлу: вхідний файл повинен мати розширення .3mf або .zip."
"amf."
msgid "load_obj: failed to parse"
msgstr "помилка завантаження файлу OBJ: не вдалося розпізнати формат"
@@ -20934,8 +20760,8 @@ msgstr ""
"Чи бажаєте ви їх перезаписати?"
msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you "
"selected\".\n"
"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 ""
"Ми б перейменували попередні налаштування на «Вибраний вами серійний "
@@ -21024,6 +20850,9 @@ msgstr "Набір параметрів принтера"
msgid "Filament Preset Template"
msgstr "Шаблон набору параметрів філаменту"
msgid "Deselect All"
msgstr "Скасувати вибір всіх"
msgid "Process Preset Template"
msgstr "Шаблон набору параметрів процесу"
@@ -21521,21 +21350,9 @@ msgstr ""
msgid "Authorizing..."
msgstr ""
msgid "Error. Can't get api token for authorization"
msgstr ""
msgid "Could not parse server response."
msgstr ""
msgid "Error saving session to file"
msgstr ""
msgid "Error session check"
msgstr ""
msgid "Error during file upload"
msgstr ""
#, c-format, boost-format
msgid "Mismatched type of print host: %s"
msgstr "Невідповідність типу принт-сервера: %s"
@@ -22313,105 +22130,6 @@ msgstr ""
msgid "Flashforge local API requires both serial number and access code."
msgstr ""
msgid "Printer returned an error"
msgstr ""
msgid "Missing system_info in response"
msgstr ""
msgid "Missing printer serial number in response"
msgstr ""
msgid "Error parsing response"
msgstr ""
msgid "ElegooLink not detected"
msgstr ""
msgid "Invalid access code"
msgstr ""
msgid "CC2 device not detected"
msgstr ""
msgid "Connection to ElegooLink is working correctly."
msgstr ""
msgid "Could not connect to ElegooLink"
msgstr ""
#, boost-format
msgid "Error code: %1%"
msgstr ""
msgid "Upload failed"
msgstr ""
msgid ""
"The file has been transferred, but some unknown errors occurred. Please "
"check the device page for the file and try to start printing again."
msgstr ""
msgid "Failed to open file for upload."
msgstr ""
msgid "Failed to read file chunk for upload."
msgstr ""
msgid "CC2 upload failed"
msgstr ""
msgid "The file is empty or could not be read."
msgstr ""
msgid "Failed to calculate file checksum."
msgstr ""
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 ""
msgid "The file is lost, please check and try again."
msgstr ""
msgid "The file is corrupted, please check and try again."
msgstr ""
msgid "Transmission abnormality, please check and try again."
msgstr ""
msgid "The file does not match the printer, please check and try again."
msgstr ""
msgid "Start print timeout"
msgstr ""
msgid "Start print failed"
msgstr ""
msgid "Connected to CrealityPrint successfully!"
msgstr ""
msgid "Could not connect to CrealityPrint"
msgstr ""
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 ""
msgid "The Hostname/IP/URL could not be parsed, please check it and try again."
msgstr ""
msgid ""
"File/data transfer interrupted. Please check the printer and network, then "
"try it again."
msgstr ""
msgid "The provided state is not correct."
msgstr "Наданий стан невірний."
@@ -22464,12 +22182,6 @@ msgstr "Краєчки"
msgid "Please select single object."
msgstr "Будь ласка, виберіть один об’єкт."
msgid "Entering Brim Ears"
msgstr ""
msgid "Leaving Brim Ears"
msgstr ""
msgid "Zoom Out"
msgstr "Зменшити"
@@ -22479,9 +22191,6 @@ msgstr "Збільшити"
msgid "Load skipping objects information failed. Please try again."
msgstr ""
msgid "Failed to create the temporary folder."
msgstr ""
#, c-format, boost-format
msgid "/%d Selected"
msgstr ""
@@ -22628,100 +22337,6 @@ msgstr "Кількість трикутних граней"
msgid "Calculating, please wait..."
msgstr "Розрахунок, будь ласка, зачекайте…"
msgid "PresetBundle"
msgstr ""
msgid "Bundle folder does not exist."
msgstr ""
msgid "Failed to open folder."
msgstr ""
msgid "Delete selected bundle from folder and all presets loaded from it?"
msgstr ""
msgid "Delete Bundle"
msgstr ""
msgid "Failed to remove bundle."
msgstr ""
msgid "Remove Bundle"
msgstr ""
msgid "Unsubscribe bundle?"
msgstr ""
msgid "UnsubscribeBundle"
msgstr ""
msgid "Failed to unsubscribe bundle."
msgstr ""
msgid "Unsubscribe Bundle"
msgstr ""
msgid "ExportPresetBundle"
msgstr ""
msgid "Save preset bundle"
msgstr ""
msgid ""
"Performing desktop integration failed - boost::filesystem::canonical did not "
"return appimage path."
msgstr ""
msgid "Performing desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing desktop integration failed because the application directory was "
"not found."
msgstr ""
msgid ""
"Performing desktop integration failed - could not create Gcodeviewer desktop "
"file. OrcaSlicer desktop file was probably created successfully."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - "
"boost::filesystem::canonical did not return appimage path."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing downloader desktop integration failed because the application "
"directory was not found."
msgstr ""
msgid "Desktop Integration"
msgstr ""
msgid ""
"Desktop Integration sets this binary to be searchable by the system.\n"
"\n"
"Press \"Perform\" to proceed."
msgstr ""
msgid "The download has failed"
msgstr ""
#. TRN %1% = file path
#, boost-format
msgid "Can't create file at %1%"
msgstr ""
msgid "Archive preview"
msgstr ""
msgid "Open File"
msgstr ""
msgid ""
"The filament may not be compatible with the current machine settings. "
"Generic filament presets will be used."
@@ -23135,12 +22750,6 @@ msgstr ""
"ABS, відповідне підвищення температури гарячого ліжка може зменшити "
"ймовірність деформації?"
#~ msgid "part selection"
#~ msgstr "вибір частини"
#~ msgid "°"
#~ msgstr "°"
#~ msgid ""
#~ "The Wipe option is not available when using the Firmware Retraction "
#~ "mode.\n"
@@ -23273,8 +22882,8 @@ msgstr ""
#~ "\n"
#~ "**Наприклад, додаткове зниження швидкості застосовується при друку "
#~ "нависань на гострих кутах, таких як передня частина корпусу Benchy. Це "
#~ "допомагає зменшити загортання, яке може накопичуватися з кожним "
#~ "шаром.** \n"
#~ "допомагає зменшити загортання, яке може накопичуватися з кожним шаром."
#~ "** \n"
#~ "\n"
#~ "**Зазвичай рекомендується залишати цю опцію увімкненою, якщо тільки ваш "
#~ "принтер не має достатньо потужного охолодження або швидкість друку не є "
+83 -468
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-26 11:35+0800\n"
"POT-Creation-Date: 2026-06-08 00:18+0800\n"
"PO-Revision-Date: 2025-10-02 17:43+0700\n"
"Last-Translator: \n"
"Language-Team: hainguyen.ts13@gmail.com\n"
@@ -192,15 +192,6 @@ msgstr "Hoàn thành"
msgid "Support Generated"
msgstr "Đã tạo support"
msgid "Entering Paint-on supports"
msgstr ""
msgid "Leaving Paint-on supports"
msgstr ""
msgid "Paint-on supports editing"
msgstr ""
msgid "Gizmo-Place on Face"
msgstr "Gizmo - Đặt lên mặt"
@@ -288,15 +279,6 @@ msgstr "Vẽ bằng: Filament %1%"
msgid "To:"
msgstr "To:"
msgid "Entering color painting"
msgstr ""
msgid "Leaving color painting"
msgstr ""
msgid "Color painting editing"
msgstr ""
msgid "Paint-on fuzzy skin"
msgstr "Tô fuzzy skin"
@@ -317,15 +299,6 @@ msgstr ""
msgid "Enable painted fuzzy skin for this object"
msgstr "Enable painted fuzzy skin for this object"
msgid "Entering Paint-on fuzzy skin"
msgstr ""
msgid "Leaving Paint-on fuzzy skin"
msgstr ""
msgid "Paint-on fuzzy skin editing"
msgstr ""
msgid "Move"
msgstr "Di chuyển"
@@ -712,15 +685,6 @@ msgstr "Cắt bằng đường"
msgid "Delete connector"
msgstr "Xóa connector"
msgid "Entering Cut gizmo"
msgstr ""
msgid "Leaving Cut gizmo"
msgstr ""
msgid "Cut gizmo editing"
msgstr ""
msgid "Mesh name"
msgstr "Tên mesh"
@@ -1583,12 +1547,6 @@ msgstr "Khoảng cách song song:"
msgid "Flip by Face 2"
msgstr "Lật theo mặt 2"
msgid "Entering Measure gizmo"
msgstr ""
msgid "Leaving Measure gizmo"
msgstr ""
msgid "Assemble"
msgstr "Lắp ráp"
@@ -1614,19 +1572,16 @@ msgid "Warning: please select Point's or Circle's feature."
msgstr "Cảnh báo: vui lòng chọn đặc trưng điểm hoặc đường tròn."
msgid ""
"It is recommended to assemble objects first,\n"
"because they are restricted to the bed \n"
"It is recommended to assemble the objects first,\n"
"because the objects is restriced to bed \n"
"and only parts can be lifted."
msgstr ""
"It is recommended to assemble the objects first,\n"
"because the objects is restriced to bed \n"
"and only parts can be lifted."
msgid "Face and face assembly"
msgstr ""
msgid "Entering Assembly gizmo"
msgstr ""
msgid "Leaving Assembly gizmo"
msgstr ""
msgstr "Face and face assembly"
msgid "Ctrl+"
msgstr "Ctrl+"
@@ -1686,8 +1641,8 @@ msgstr "AMF files"
msgid "3MF files"
msgstr "3MF files"
msgid "G-code 3MF files"
msgstr "G-code 3MF files"
msgid "Gcode 3MF files"
msgstr "Gcode 3MF files"
msgid "G-code files"
msgstr "G-code files"
@@ -1746,35 +1701,6 @@ msgstr "OrcaSlicer gặp ngoại lệ không xử lý được: %1%"
msgid "Untitled"
msgstr "Không tiêu đề"
msgid ""
"Since version 2.4.0, OrcaSlicer syncs user profiles through Orca Cloud "
"instead of Bambu Cloud.\n"
"\n"
"To migrate your existing profiles, log in to Orca Cloud and they will be "
"transferred automatically. To learn more about how OrcaSlicer stores and "
"syncs your profiles, or to migrate your presets manually, check out our "
"wiki.\n"
"\n"
"If you did not use Bambu Cloud to sync profiles, this change does not affect "
"you and you can safely ignore this message."
msgstr ""
"Kể từ phiên bản 2.4.0, OrcaSlicer đồng bộ hồ sơ người dùng thông qua Orca "
"Cloud thay vì Bambu Cloud.\n"
"\n"
"Để di chuyển các hồ sơ hiện có của bạn, hãy đăng nhập vào Orca Cloud và "
"chúng sẽ được chuyển tự động. Để tìm hiểu thêm về cách OrcaSlicer lưu trữ và "
"đồng bộ hồ sơ của bạn, hoặc để di chuyển các cài đặt sẵn theo cách thủ công, "
"hãy xem wiki của chúng tôi.\n"
"\n"
"Nếu bạn không sử dụng Bambu Cloud để đồng bộ hồ sơ, thay đổi này không ảnh "
"hưởng đến bạn và bạn có thể bỏ qua thông báo này."
msgid "Profile syncing change"
msgstr ""
msgid "Learn more"
msgstr ""
msgid "Reloading network plug-in..."
msgstr "Reloading network plug-in..."
@@ -1806,14 +1732,6 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is "
"installed.\n"
"Please install it manually from https://developer.microsoft.com/microsoft-"
"edge/webview2/ and restart Orca Slicer."
msgstr ""
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
msgstr "Đường dẫn tài nguyên không tồn tại hoặc không phải thư mục: %s"
@@ -1941,20 +1859,6 @@ msgid ""
"preset."
msgstr ""
msgid ""
"Cloud sync conflict: 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 ""
msgid ""
"Cloud sync conflict: there was an unexpected or unidentified preset "
"conflict.\n"
"Pull downloads the cloud copy. Force push overwrites it with your local "
"preset."
msgstr ""
msgid ""
"Force push will overwrite the cloud copy with your local preset changes.\n"
"Do you want to continue?"
@@ -3229,52 +3133,6 @@ msgstr "The maximum temperature cannot exceed "
msgid "The minmum temperature should not be less than "
msgstr "The minmum temperature should not be less than "
msgid "Type to filter..."
msgstr ""
msgid "All"
msgstr "Tất cả"
msgid "No selected items..."
msgstr ""
msgid "All items selected..."
msgstr ""
msgid "No matching items..."
msgstr ""
msgid "Deselect All"
msgstr "Bỏ chọn tất cả"
msgid "Select visible"
msgstr ""
msgid "Deselect visible"
msgstr ""
msgid "Filter selected"
msgstr ""
msgid "Filter nonSelected"
msgstr ""
msgid "Simple settings"
msgstr ""
msgid "Advanced settings"
msgstr "Advanced settings"
msgid "Expert settings"
msgstr ""
#, fuzzy
msgid "Developer mode"
msgstr "Chế độ phát triển"
msgid "Launch troubleshoot center"
msgstr ""
msgid ""
"All the selected objects are on a locked plate.\n"
"Cannot auto-arrange these objects."
@@ -3545,9 +3403,6 @@ msgstr "Font doesn't have any shape for given text."
msgid "There is no valid surface for text projection."
msgstr "There is no valid surface for text projection."
msgid "An unexpected error occurred"
msgstr ""
msgid "Thermal Preconditioning for first layer optimization"
msgstr "Thermal Preconditioning for first layer optimization"
@@ -5451,7 +5306,10 @@ msgstr "Tăng/giảm vùng chỉnh sửa"
msgid "Sequence"
msgstr "Trình tự"
msgid "Object selection"
msgid "Object Selection"
msgstr ""
msgid "Part Selection"
msgstr ""
msgid "number keys"
@@ -5640,6 +5498,9 @@ msgstr "Labels"
msgid "Paint Toolbar"
msgstr "Thanh công cụ vẽ"
msgid "part selection"
msgstr "chọn phần"
msgid "Explosion Ratio"
msgstr "Tỷ lệ nổ"
@@ -5664,7 +5525,7 @@ msgstr "Thể tích:"
msgid "Size:"
msgstr "Kích thước:"
#, boost-format
#, c-format, boost-format
msgid ""
"Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -5893,12 +5754,12 @@ msgstr "In plate"
msgid "Export G-code file"
msgstr "Xuất file G-code"
msgid "Export plate sliced file"
msgstr "Xuất file plate đã slice"
msgid "Send"
msgstr "Gửi"
msgid "Export plate sliced file"
msgstr "Xuất file plate đã slice"
msgid "Export all sliced file"
msgstr "Xuất tất cả file đã slice"
@@ -7983,7 +7844,7 @@ msgstr ""
msgid "The selected object couldn't be split."
msgstr "Đối tượng đã chọn không thể được tách."
msgid "Disable Auto-Drop to preserve Z positioning?\n"
msgid "Disable Auto-Drop to preserve z positioning?\n"
msgstr ""
msgid "Object with floating parts was detected"
@@ -8660,6 +8521,9 @@ msgstr "Group user filament presets"
msgid "Group user filament presets based on selection"
msgstr "Group user filament presets based on selection"
msgid "All"
msgstr "Tất cả"
msgid "By type"
msgstr "By type"
@@ -8861,16 +8725,6 @@ msgstr ""
msgid "Renders cast shadows on the plate in realistic view."
msgstr ""
msgid "Smooth normals"
msgstr ""
msgid ""
"Applies smooth normals to the realistic view.\n"
"\n"
"Requires manual scene reload to take effect (right-click on 3D view → "
"\"Reload All\")."
msgstr ""
msgid "Anti-aliasing"
msgstr ""
@@ -9040,14 +8894,6 @@ msgstr "Download Network Plug-in"
msgid "Associate files to OrcaSlicer"
msgstr "Liên kết file với OrcaSlicer"
msgid ""
"File associations for the Microsoft Store version are managed by Windows "
"Settings."
msgstr ""
msgid "Open Windows Default Apps Settings"
msgstr ""
msgid "Associate 3MF files to OrcaSlicer"
msgstr "Liên kết file 3MF với OrcaSlicer"
@@ -9080,6 +8926,10 @@ msgstr "Liên kết liên kết web với OrcaSlicer"
msgid "Developer"
msgstr "Developer"
#, fuzzy
msgid "Developer mode"
msgstr "Chế độ phát triển"
msgid "Skip AMS blacklist check"
msgstr "Bỏ qua kiểm tra danh sách đen AMS"
@@ -9873,9 +9723,6 @@ msgstr ""
"File upload timed out. Please check if the firmware version supports this "
"operation or verify if the printer is functioning properly."
msgid "Sending failed, please try again!"
msgstr ""
msgid "Slice ok."
msgstr "Slice hoàn tất."
@@ -10191,8 +10038,8 @@ 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\"."
"by right-click the empty position of build plate and choose \"Add Primitive"
"\"->\"Timelapse Wipe Tower\"."
msgstr ""
"Khi ghi timelapse không có đầu công cụ, khuyến nghị thêm \"Timelapse Wipe "
"Tower\" \n"
@@ -10321,9 +10168,6 @@ msgstr "Đặt tốc độ cho cầu bên ngoài và bên trong"
msgid "Travel speed"
msgstr "Tốc độ di chuyển"
msgid "Junction Deviation"
msgstr "Junction Deviation"
msgid "Jerk(XY)"
msgstr "Giật(XY)"
@@ -11186,6 +11030,9 @@ msgstr ""
"And unused printer filaments will be automatically added to the end of the "
"list."
msgid "Advanced settings"
msgstr "Advanced settings"
msgid "Add unused AMS filaments to filaments list."
msgstr "Add unused AMS filaments to filaments list."
@@ -11681,23 +11528,12 @@ msgstr "Có plug-in mạng mới (%s). Bạn có muốn cài đặt nó?"
msgid "New version of Orca Slicer"
msgstr "Phiên bản mới của Orca Slicer"
msgid "Check on Microsoft Store"
msgstr ""
msgid "Check on GitHub"
msgstr ""
msgid "Open Microsoft Store"
msgid "Check on Github"
msgstr ""
msgid "Skip this Version"
msgstr "Bỏ qua phiên bản này"
#, c-format, boost-format
msgid ""
"New version available: %s. Please update OrcaSlicer from the Microsoft Store."
msgstr ""
msgid "Confirm and Update Nozzle"
msgstr "Xác nhận và cập nhật đầu phun"
@@ -11811,9 +11647,6 @@ msgstr "Module cắt"
msgid "Auto Fire Extinguishing System"
msgstr "Auto Fire Extinguishing System"
msgid "Beta"
msgstr ""
msgid "Update firmware"
msgstr "Cập nhật firmware"
@@ -12453,14 +12286,6 @@ msgstr ""
msgid "Generating skirt & brim"
msgstr "Đang tạo viền & brim"
msgid ""
"Per-object skirts cannot fit between the objects in By object print "
"sequence.\n"
"\n"
"Move the objects farther apart, reduce brim/skirt size, switch Skirt type to "
"Combined, or switch Print sequence to By layer."
msgstr ""
msgid "Exporting G-code"
msgstr "Đang xuất G-code"
@@ -12591,15 +12416,6 @@ msgstr "Sử dụng máy chủ in bên thứ ba"
msgid "Allow controlling BambuLab's printer through 3rd party print hosts."
msgstr "Cho phép điều khiển máy in BambuLab thông qua máy chủ in bên thứ ba."
msgid "Use 3MF instead of G-code"
msgstr ""
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 ""
msgid "Printer Agent"
msgstr "Printer Agent"
@@ -12619,8 +12435,8 @@ msgstr ""
"Orca Slicer có thể tải file G-code lên máy chủ máy in. Trường này nên chứa "
"tên máy chủ, địa chỉ IP hoặc URL của phiên bản máy chủ máy in. Máy chủ in "
"đằng sau HAProxy với xác thực cơ bản được bật có thể được truy cập bằng cách "
"đặt tên người dùng và mật khẩu vào URL theo định dạng sau: https://"
"username:password@your-octopi-address/"
"đặt tên người dùng và mật khẩu vào URL theo định dạng sau: https://username:"
"password@your-octopi-address/"
msgid "Device UI"
msgstr "Giao diện thiết bị"
@@ -13023,7 +12839,7 @@ msgid "External bridge density"
msgstr "Mật độ cầu bên ngoài"
msgid ""
"Controls the density (spacing) of external bridge lines.\n"
"Controls the density (spacing) of external bridge lines. Default is 100%.\n"
"Theoretically, 100% means a solid bridge, but due to the tendency of bridge "
"extrusions to sag, 100% may not be sufficient.\n"
"\n"
@@ -13037,14 +12853,18 @@ msgid ""
" - Pros: Can create a string-like first layer. Faster and with better "
"cooling because there is more space for air to circulate around the extruded "
"bridge.\n"
" - Cons: May lead to sagging and poorer surface finish."
" - Cons: May lead to sagging and poorer surface finish.\n"
"\n"
"Recommended range: Minimum 10% - Maximum 125%."
msgstr ""
msgid "Internal bridge density"
msgstr "Mật độ cầu bên trong"
msgid ""
"Controls the density (spacing) of internal bridge lines.\n"
"Controls the density (spacing) of internal bridge lines. Default is 100%. "
"100% means a solid internal bridge.\n"
"\n"
"Internal bridges act as intermediate support between sparse infill and top "
"solid infill and can strongly affect top surface quality.\n"
"\n"
@@ -13079,9 +12899,11 @@ msgid ""
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
#, c-format, boost-format
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the "
"nozzle diameter.\n"
"Bridge line width is expressed either as an absolute value or as a "
"percentage of the active nozzle diameter (percentages are computed from the "
"nozzle diameter).\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
@@ -14982,6 +14804,7 @@ msgstr "Sử dụng nhiều đường cho mẫu infill, nếu được hỗ tr
msgid "Z-buckling bias optimization (experimental)"
msgstr ""
#, c-format, boost-format
msgid ""
"Tightens the gyroid wave along the Z (vertical) axis at low infill density "
"to shorten the effective vertical column length and improve Z-axis "
@@ -15185,8 +15008,8 @@ msgid "mm/s² or %"
msgstr "mm/s² hoặc %"
msgid ""
"Acceleration of sparse infill. If the value is expressed as a percentage "
"(e.g. 100%), it will be calculated based on the default acceleration."
"Acceleration of sparse infill. If the value is expressed as a percentage (e."
"g. 100%), it will be calculated based on the default acceleration."
msgstr ""
"Gia tốc của infill thưa. Nếu giá trị được biểu thị dưới dạng phần trăm (ví "
"dụ 100%), nó sẽ được tính dựa trên gia tốc mặc định."
@@ -15232,6 +15055,9 @@ msgstr ""
msgid "Default jerk."
msgstr "Giật mặc định."
msgid "Junction Deviation"
msgstr "Junction Deviation"
msgid ""
"Marlin Firmware Junction Deviation (replaces the traditional XY Jerk "
"setting)."
@@ -15316,14 +15142,14 @@ msgstr "Tốc độ quạt đầy tại lớp"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer "
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\". \"full_fan_speed_layer\" will be ignored if lower than "
"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"Tốc độ quạt sẽ được tăng tuyến tính từ không tại lớp "
"\"close_fan_the_first_x_layers\" đến tối đa tại lớp "
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" sẽ bị bỏ qua nếu thấp hơn "
"\"close_fan_the_first_x_layers\" đến tối đa tại lớp \"full_fan_speed_layer"
"\". \"full_fan_speed_layer\" sẽ bị bỏ qua nếu thấp hơn "
"\"close_fan_the_first_x_layers\", trong trường hợp đó quạt sẽ chạy ở tốc độ "
"tối đa được phép tại lớp \"close_fan_the_first_x_layers\" + 1."
@@ -16309,13 +16135,16 @@ msgid ""
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
msgid "°"
msgstr "°"
msgid "Don't alternate fill direction"
msgstr ""
msgid "Disable alternating fill direction when using Z contouring."
msgstr ""
msgid "Minimum Z height"
msgid "Minimum z height"
msgstr ""
msgid ""
@@ -17421,8 +17250,8 @@ msgid "Role base wipe speed"
msgstr "Tốc độ lau dựa trên vai trò"
msgid ""
"The wipe speed is determined by the speed of the current extrusion role. "
"e.g. if a wipe action is executed immediately following an outer wall "
"The wipe speed is determined by the speed of the current extrusion role. e."
"g. if a wipe action is executed immediately following an outer wall "
"extrusion, the speed of the outer wall extrusion will be utilized for the "
"wipe action."
msgstr ""
@@ -18339,8 +18168,8 @@ msgstr "Kích hoạt điều khiển nhiệt độ"
msgid ""
"Enable this option for automated chamber temperature control. This option "
"activates the emitting of an M191 command before the "
"\"machine_start_gcode\"\n"
"activates the emitting of an M191 command before the \"machine_start_gcode"
"\"\n"
" 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"
@@ -19318,11 +19147,11 @@ msgid "Debug level"
msgstr "Mức gỡ lỗi"
msgid ""
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, "
"5:trace\n"
"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:"
"trace\n"
msgstr ""
"Đặt mức ghi log gỡ lỗi. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, "
"5:trace\n"
"Đặt mức ghi log gỡ lỗi. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:"
"trace\n"
msgid "Log file"
msgstr ""
@@ -19869,13 +19698,13 @@ msgstr "File được cung cấp không thể đọc được vì nó trống"
msgid ""
"Unknown file format. Input file must have .stl, .obj, .amf(.xml) extension."
msgstr ""
"Định dạng file không xác định. File đầu vào phải có phần mở "
"rộng .stl, .obj, .amf(.xml)."
"Định dạng file không xác định. File đầu vào phải có phần mở rộng .stl, ."
"obj, .amf(.xml)."
msgid "Unknown file format. Input file must have .3mf or .zip.amf extension."
msgstr ""
"Định dạng file không xác định. File đầu vào phải có phần mở rộng .3mf "
"hoặc .zip.amf."
"Định dạng file không xác định. File đầu vào phải có phần mở rộng .3mf hoặc ."
"zip.amf."
msgid "load_obj: failed to parse"
msgstr "load_obj: phân tích thất bại"
@@ -21156,8 +20985,8 @@ msgstr ""
"Bạn có muốn viết lại nó không?"
msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you "
"selected\".\n"
"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 ""
"Chúng tôi sẽ đổi tên cài đặt sẵn thành \"Nhà cung cấp Loại Serial @máy in "
@@ -21243,6 +21072,9 @@ msgstr "Cài đặt sẵn máy in"
msgid "Filament Preset Template"
msgstr "Mẫu cài đặt sẵn filament"
msgid "Deselect All"
msgstr "Bỏ chọn tất cả"
msgid "Process Preset Template"
msgstr "Mẫu cài đặt sẵn quy trình"
@@ -21742,21 +21574,9 @@ msgstr ""
msgid "Authorizing..."
msgstr ""
msgid "Error. Can't get api token for authorization"
msgstr ""
msgid "Could not parse server response."
msgstr ""
msgid "Error saving session to file"
msgstr ""
msgid "Error session check"
msgstr ""
msgid "Error during file upload"
msgstr ""
#, c-format, boost-format
msgid "Mismatched type of print host: %s"
msgstr "Loại máy chủ in không khớp: %s"
@@ -22545,105 +22365,6 @@ msgstr "Không thể kết nối với Flashforge qua serial"
msgid "Flashforge local API requires both serial number and access code."
msgstr ""
msgid "Printer returned an error"
msgstr ""
msgid "Missing system_info in response"
msgstr ""
msgid "Missing printer serial number in response"
msgstr ""
msgid "Error parsing response"
msgstr ""
msgid "ElegooLink not detected"
msgstr ""
msgid "Invalid access code"
msgstr ""
msgid "CC2 device not detected"
msgstr ""
msgid "Connection to ElegooLink is working correctly."
msgstr ""
msgid "Could not connect to ElegooLink"
msgstr ""
#, boost-format
msgid "Error code: %1%"
msgstr ""
msgid "Upload failed"
msgstr ""
msgid ""
"The file has been transferred, but some unknown errors occurred. Please "
"check the device page for the file and try to start printing again."
msgstr ""
msgid "Failed to open file for upload."
msgstr ""
msgid "Failed to read file chunk for upload."
msgstr ""
msgid "CC2 upload failed"
msgstr ""
msgid "The file is empty or could not be read."
msgstr ""
msgid "Failed to calculate file checksum."
msgstr ""
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 ""
msgid "The file is lost, please check and try again."
msgstr ""
msgid "The file is corrupted, please check and try again."
msgstr ""
msgid "Transmission abnormality, please check and try again."
msgstr ""
msgid "The file does not match the printer, please check and try again."
msgstr ""
msgid "Start print timeout"
msgstr ""
msgid "Start print failed"
msgstr ""
msgid "Connected to CrealityPrint successfully!"
msgstr ""
msgid "Could not connect to CrealityPrint"
msgstr ""
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 ""
msgid "The Hostname/IP/URL could not be parsed, please check it and try again."
msgstr ""
msgid ""
"File/data transfer interrupted. Please check the printer and network, then "
"try it again."
msgstr ""
msgid "The provided state is not correct."
msgstr "Trạng thái được cung cấp không chính xác."
@@ -22697,12 +22418,6 @@ msgstr "Tai vành"
msgid "Please select single object."
msgstr "Vui lòng chọn một đối tượng duy nhất."
msgid "Entering Brim Ears"
msgstr ""
msgid "Leaving Brim Ears"
msgstr ""
msgid "Zoom Out"
msgstr "Zoom Out"
@@ -22712,9 +22427,6 @@ msgstr "Zoom In"
msgid "Load skipping objects information failed. Please try again."
msgstr "Load skipping objects information failed. Please try again."
msgid "Failed to create the temporary folder."
msgstr ""
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d Selected"
@@ -22866,100 +22578,6 @@ msgstr "Number of triangular facets"
msgid "Calculating, please wait..."
msgstr "Calculating, please wait..."
msgid "PresetBundle"
msgstr ""
msgid "Bundle folder does not exist."
msgstr ""
msgid "Failed to open folder."
msgstr ""
msgid "Delete selected bundle from folder and all presets loaded from it?"
msgstr ""
msgid "Delete Bundle"
msgstr ""
msgid "Failed to remove bundle."
msgstr ""
msgid "Remove Bundle"
msgstr ""
msgid "Unsubscribe bundle?"
msgstr ""
msgid "UnsubscribeBundle"
msgstr ""
msgid "Failed to unsubscribe bundle."
msgstr ""
msgid "Unsubscribe Bundle"
msgstr ""
msgid "ExportPresetBundle"
msgstr ""
msgid "Save preset bundle"
msgstr ""
msgid ""
"Performing desktop integration failed - boost::filesystem::canonical did not "
"return appimage path."
msgstr ""
msgid "Performing desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing desktop integration failed because the application directory was "
"not found."
msgstr ""
msgid ""
"Performing desktop integration failed - could not create Gcodeviewer desktop "
"file. OrcaSlicer desktop file was probably created successfully."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - "
"boost::filesystem::canonical did not return appimage path."
msgstr ""
msgid ""
"Performing downloader desktop integration failed - Could not find executable."
msgstr ""
msgid ""
"Performing downloader desktop integration failed because the application "
"directory was not found."
msgstr ""
msgid "Desktop Integration"
msgstr ""
msgid ""
"Desktop Integration sets this binary to be searchable by the system.\n"
"\n"
"Press \"Perform\" to proceed."
msgstr ""
msgid "The download has failed"
msgstr ""
#. TRN %1% = file path
#, boost-format
msgid "Can't create file at %1%"
msgstr ""
msgid "Archive preview"
msgstr ""
msgid "Open File"
msgstr ""
msgid ""
"The filament may not be compatible with the current machine settings. "
"Generic filament presets will be used."
@@ -23368,12 +22986,6 @@ msgstr ""
"Bạn có biết rằng khi in vật liệu dễ cong vênh như ABS, tăng nhiệt độ bàn "
"nóng một cách thích hợp có thể giảm xác suất cong vênh không?"
#~ msgid "part selection"
#~ msgstr "chọn phần"
#~ msgid "°"
#~ msgstr "°"
#~ msgid ""
#~ "The Wipe option is not available when using the Firmware Retraction "
#~ "mode.\n"
@@ -23713,6 +23325,9 @@ msgstr ""
#~ msgid "Mouse wheel:"
#~ msgstr "Con lăn chuột:"
#~ msgid "Object selection"
#~ msgstr "chọn vật thể"
#~ msgid "Pass 1"
#~ msgstr "Lần 1"
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+25 -1
View File
@@ -1,6 +1,6 @@
{
"name": "Afinia",
"version": "02.04.00.02",
"version": "02.04.00.00",
"force_update": "0",
"description": "Afinia configurations",
"machine_model_list": [
@@ -124,6 +124,14 @@
"name": "fdm_filament_tpu",
"sub_path": "filament/fdm_filament_tpu.json"
},
{
"name": "Afinia ABS",
"sub_path": "filament/Afinia ABS.json"
},
{
"name": "Afinia ABS+",
"sub_path": "filament/Afinia ABS+.json"
},
{
"name": "Afinia ABS+@HS",
"sub_path": "filament/Afinia ABS+@HS.json"
@@ -132,18 +140,34 @@
"name": "Afinia ABS@HS",
"sub_path": "filament/Afinia ABS@HS.json"
},
{
"name": "Afinia Value ABS",
"sub_path": "filament/Afinia Value ABS.json"
},
{
"name": "Afinia Value ABS@HS",
"sub_path": "filament/Afinia Value ABS@HS.json"
},
{
"name": "Afinia PLA",
"sub_path": "filament/Afinia PLA.json"
},
{
"name": "Afinia PLA@HS",
"sub_path": "filament/Afinia PLA@HS.json"
},
{
"name": "Afinia Value PLA",
"sub_path": "filament/Afinia Value PLA.json"
},
{
"name": "Afinia Value PLA@HS",
"sub_path": "filament/Afinia Value PLA@HS.json"
},
{
"name": "Afinia TPU",
"sub_path": "filament/Afinia TPU.json"
},
{
"name": "Afinia TPU@HS",
"sub_path": "filament/Afinia TPU@HS.json"
@@ -0,0 +1,37 @@
{
"type": "filament",
"filament_id": "GFB00",
"setting_id": "GFSB00",
"name": "Afinia ABS+",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_abs",
"filament_flow_ratio": [
"0.95"
],
"filament_cost": [
"24.99"
],
"filament_vendor": [
"Afinia"
],
"fan_max_speed": [
"60"
],
"filament_max_volumetric_speed": [
"16"
],
"nozzle_temperature": [
"275"
],
"nozzle_temperature_initial_layer": [
"275"
],
"slow_down_layer_time": [
"12"
],
"compatible_printers": [
"Afinia H400 Pro 0.4 nozzle",
"Afinia H400 Pro 0.6 nozzle"
]
}
@@ -1,7 +1,7 @@
{
"type": "filament",
"filament_id": "GFB00_01",
"setting_id": "wAJTMxtCY7EoavRi",
"setting_id": "GFSB00",
"name": "Afinia ABS+@HS",
"from": "system",
"instantiation": "true",
@@ -0,0 +1,31 @@
{
"type": "filament",
"filament_id": "GFB00",
"setting_id": "GFSB00",
"name": "Afinia ABS",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_abs",
"filament_flow_ratio": [
"0.95"
],
"filament_cost": [
"24.99"
],
"filament_vendor": [
"Afinia"
],
"fan_max_speed": [
"60"
],
"filament_max_volumetric_speed": [
"16"
],
"slow_down_layer_time": [
"12"
],
"compatible_printers": [
"Afinia H400 Pro 0.4 nozzle",
"Afinia H400 Pro 0.6 nozzle"
]
}
@@ -1,7 +1,7 @@
{
"type": "filament",
"filament_id": "GFB00_01",
"setting_id": "qCDnb2iBaz4hd4vX",
"setting_id": "GFSB00",
"name": "Afinia ABS@HS",
"from": "system",
"instantiation": "true",
@@ -0,0 +1,34 @@
{
"type": "filament",
"filament_id": "GFA00",
"setting_id": "GFSA00",
"name": "Afinia PLA",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pla",
"filament_cost": [
"24.99"
],
"filament_density": [
"1.26"
],
"filament_flow_ratio": [
"0.98"
],
"filament_max_volumetric_speed": [
"21"
],
"filament_vendor": [
"Afinia"
],
"filament_long_retractions_when_cut": [
"1"
],
"filament_retraction_distances_when_cut": [
"18"
],
"compatible_printers": [
"Afinia H400 Pro 0.4 nozzle",
"Afinia H400 Pro 0.6 nozzle"
]
}
@@ -1,7 +1,7 @@
{
"type": "filament",
"filament_id": "GFA00_01",
"setting_id": "N3sCgjdjvp6FTtw9",
"setting_id": "GFSA00",
"name": "Afinia PLA@HS",
"from": "system",
"instantiation": "true",
@@ -0,0 +1,27 @@
{
"type": "filament",
"name": "Afinia TPU",
"inherits": "fdm_filament_tpu",
"from": "system",
"filament_id": "GFU01",
"instantiation": "true",
"filament_vendor": [
"Afinia"
],
"filament_density": [
"1.22"
],
"nozzle_temperature_initial_layer": [
"230"
],
"filament_cost": [
"41.99"
],
"nozzle_temperature": [
"230"
],
"compatible_printers": [
"Afinia H400 Pro 0.4 nozzle",
"Afinia H400 Pro 0.6 nozzle"
]
}
@@ -3,7 +3,6 @@
"name": "Afinia TPU@HS",
"inherits": "fdm_filament_tpu",
"from": "system",
"setting_id": "zUqTgAEbqTN1EdRl",
"filament_id": "GFU01_01",
"instantiation": "true",
"filament_vendor": [
@@ -0,0 +1,37 @@
{
"type": "filament",
"filament_id": "GFB00",
"setting_id": "GFSB00",
"name": "Afinia Value ABS",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_abs",
"filament_flow_ratio": [
"0.95"
],
"filament_cost": [
"24.99"
],
"filament_vendor": [
"Afinia"
],
"fan_max_speed": [
"60"
],
"filament_max_volumetric_speed": [
"16"
],
"nozzle_temperature": [
"245"
],
"nozzle_temperature_initial_layer": [
"245"
],
"slow_down_layer_time": [
"12"
],
"compatible_printers": [
"Afinia H400 Pro 0.4 nozzle",
"Afinia H400 Pro 0.6 nozzle"
]
}
@@ -1,7 +1,7 @@
{
"type": "filament",
"filament_id": "GFB00_01",
"setting_id": "OxIiEYjbhEvSykaQ",
"setting_id": "GFSB00",
"name": "Afinia Value ABS@HS",
"from": "system",
"instantiation": "true",
@@ -0,0 +1,40 @@
{
"type": "filament",
"filament_id": "GFA00",
"setting_id": "GFSA00",
"name": "Afinia Value PLA",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pla",
"filament_cost": [
"24.99"
],
"filament_density": [
"1.26"
],
"filament_flow_ratio": [
"0.98"
],
"filament_max_volumetric_speed": [
"21"
],
"filament_vendor": [
"Afinia"
],
"filament_long_retractions_when_cut": [
"1"
],
"filament_retraction_distances_when_cut": [
"18"
],
"nozzle_temperature": [
"190"
],
"nozzle_temperature_initial_layer": [
"190"
],
"compatible_printers": [
"Afinia H400 Pro 0.4 nozzle",
"Afinia H400 Pro 0.6 nozzle"
]
}
@@ -1,7 +1,7 @@
{
"type": "filament",
"filament_id": "GFA00_01",
"setting_id": "BASsUdyvElEVJ9AA",
"setting_id": "GFSA00",
"name": "Afinia Value PLA@HS",
"from": "system",
"instantiation": "true",
@@ -1,6 +1,6 @@
{
"type": "machine",
"setting_id": "iwkXfmEyz9RLZTvh",
"setting_id": "GM001",
"name": "Afinia H+1(HS) 0.4 nozzle",
"from": "system",
"instantiation": "true",
@@ -1,6 +1,6 @@
{
"type": "machine",
"setting_id": "vngsrxKvEIsmr8tQ",
"setting_id": "GM001",
"name": "Afinia H+1(HS) 0.6 nozzle",
"from": "system",
"instantiation": "true",
@@ -1,6 +1,6 @@
{
"type": "process",
"setting_id": "FueWYijuvLNWzNmL",
"setting_id": "GP004",
"name": "0.12mm Fine @Afinia H+1(HS)",
"from": "system",
"instantiation": "true",
@@ -1,6 +1,6 @@
{
"type": "process",
"setting_id": "Ntf0ZMcETTPz7EY1",
"setting_id": "GP004",
"name": "0.16mm Optimal @Afinia H+1(HS)",
"from": "system",
"instantiation": "true",
@@ -3,7 +3,7 @@
"name": "0.18mm Fine @Afinia H+1(HS) 0.6 nozzle",
"inherits": "fdm_process_afinia_0.18_nozzle_0.6_HS",
"from": "system",
"setting_id": "b7oGgrSCik70LqdL",
"setting_id": "GP021",
"instantiation": "true",
"description": "It has a smaller layer height and results in smoother surface and higher printing quality.",
"elefant_foot_compensation": "0.15",
@@ -1,6 +1,6 @@
{
"type": "process",
"setting_id": "Lxid5Z2e0fvVDMMm",
"setting_id": "GP004",
"name": "0.20mm Standard @Afinia H+1(HS)",
"from": "system",
"inherits": "fdm_process_afinia_HS_common",
@@ -1,6 +1,6 @@
{
"type": "process",
"setting_id": "APeSqnRZh6I9OTFr",
"setting_id": "GP004",
"name": "0.24mm Draft @Afinia H+1(HS)",
"from": "system",
"instantiation": "true",
@@ -3,7 +3,7 @@
"name": "0.24mm Standard @Afinia H+1(HS) 0.6 nozzle",
"inherits": "fdm_process_afinia_0.24_nozzle_0.6_HS",
"from": "system",
"setting_id": "QlOnQEeUXkGaxZS5",
"setting_id": "GP022",
"instantiation": "true",
"description": "It has a balanced layer height for good quality and reasonable printing time.",
"elefant_foot_compensation": "0.15",
@@ -1,6 +1,6 @@
{
"type": "process",
"setting_id": "VZ3NOVzdVWqZ37Ge",
"setting_id": "GP004",
"name": "0.28mm Extra Draft @Afinia H+1(HS)",
"from": "system",
"instantiation": "true",
@@ -3,7 +3,7 @@
"name": "0.30mm Standard @Afinia H+1(HS) 0.6 nozzle",
"inherits": "fdm_process_afinia_0.30_nozzle_0.6_HS",
"from": "system",
"setting_id": "7PPJm0girx11EP80",
"setting_id": "GP023",
"instantiation": "true",
"description": "It has a big layer height, and results in apparent layer lines and ordinary printing quality and printing time.",
"elefant_foot_compensation": "0.15",
@@ -3,7 +3,7 @@
"name": "0.30mm Strength @Afinia H+1(HS) 0.6 nozzle",
"inherits": "fdm_process_afinia_0.30_nozzle_0.6_HS",
"from": "system",
"setting_id": "BewLobRVuiw6HPuc",
"setting_id": "GP024",
"instantiation": "true",
"description": "It has a big layer height with optimized settings for stronger parts.",
"elefant_foot_compensation": "0.15",
@@ -3,7 +3,7 @@
"name": "0.36mm Draft @Afinia H+1(HS) 0.6 nozzle",
"inherits": "fdm_process_afinia_0.36_nozzle_0.6_HS",
"from": "system",
"setting_id": "pBS3NpSZPjtySd3X",
"setting_id": "GP025",
"instantiation": "true",
"description": "It has a bigger layer height for faster printing but with more visible layer lines.",
"elefant_foot_compensation": "0.15",
@@ -3,7 +3,7 @@
"name": "0.42mm Extra Draft @Afinia H+1(HS) 0.6 nozzle",
"inherits": "fdm_process_afinia_0.42_nozzle_0.6_HS",
"from": "system",
"setting_id": "kHUEpY5ZMtYrLKtO",
"setting_id": "GP026",
"instantiation": "true",
"description": "It has the biggest layer height for fastest printing but with very visible layer lines.",
"elefant_foot_compensation": "0.15",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "Anker",
"version": "02.04.00.01",
"version": "02.04.00.00",
"force_update": "0",
"description": "Anker configurations",
"machine_model_list": [
@@ -3,7 +3,7 @@
"name": "Anker Generic ABS 0.2 nozzle",
"inherits": "Anker Generic ABS @base",
"from": "system",
"setting_id": "BD5ODYVM90Ig44C5",
"setting_id": "GFSB99_20",
"instantiation": "true",
"filament_max_volumetric_speed": [
"2"
@@ -3,7 +3,7 @@
"name": "Anker Generic ABS 0.25 nozzle",
"inherits": "Anker Generic ABS @base",
"from": "system",
"setting_id": "WS5wXckNuiQqSVwO",
"setting_id": "GFSB99_25",
"instantiation": "true",
"filament_max_volumetric_speed": [
"3"
@@ -3,7 +3,7 @@
"name": "Anker Generic ABS",
"inherits": "Anker Generic ABS @base",
"from": "system",
"setting_id": "axEspGzFJnrnidm4",
"setting_id": "GFSB99",
"instantiation": "true",
"compatible_printers": [
"Anker M5 0.4 nozzle",
@@ -3,7 +3,7 @@
"name": "Anker Generic ASA 0.2 nozzle",
"inherits": "Anker Generic ASA @base",
"from": "system",
"setting_id": "G7pzEyyhPFDnae3R",
"setting_id": "GFSB98_20",
"instantiation": "true",
"filament_max_volumetric_speed": [
"2"
@@ -3,7 +3,7 @@
"name": "Anker Generic ASA 0.25 nozzle",
"inherits": "Anker Generic ASA @base",
"from": "system",
"setting_id": "ErUUDTQ7h1wNHAKT",
"setting_id": "GFSB98_25",
"instantiation": "true",
"filament_max_volumetric_speed": [
"3"
@@ -3,7 +3,7 @@
"name": "Anker Generic ASA",
"inherits": "Anker Generic ASA @base",
"from": "system",
"setting_id": "QiFoBW5WuDUJGmFZ",
"setting_id": "GFSB98",
"instantiation": "true",
"compatible_printers": [
"Anker M5 0.4 nozzle",
@@ -3,7 +3,7 @@
"name": "Anker Generic PA 0.2 nozzle",
"inherits": "Anker Generic PA @base",
"from": "system",
"setting_id": "NZB26MSD9WbOeY2S",
"setting_id": "GFSN99_20",
"instantiation": "true",
"filament_max_volumetric_speed": [
"2"
@@ -3,7 +3,7 @@
"name": "Anker Generic PA 0.25 nozzle",
"inherits": "Anker Generic PA @base",
"from": "system",
"setting_id": "Wj7oXTGUxo8lie1B",
"setting_id": "GFSN99_25",
"instantiation": "true",
"filament_max_volumetric_speed": [
"3"
@@ -3,7 +3,7 @@
"name": "Anker Generic PA-CF",
"inherits": "Anker Generic PA-CF @base",
"from": "system",
"setting_id": "qdsEps11ugFHJkn7",
"setting_id": "GFSN98",
"instantiation": "true",
"compatible_printers": [
"Anker M5 All-Metal 0.4 nozzle",
@@ -3,7 +3,7 @@
"name": "Anker Generic PA",
"inherits": "Anker Generic PA @base",
"from": "system",
"setting_id": "QbIiX554Yee6vb32",
"setting_id": "GFSN99",
"instantiation": "true",
"compatible_printers": [
"Anker M5 All-Metal 0.4 nozzle",
@@ -3,7 +3,7 @@
"name": "Anker Generic PC 0.2 nozzle",
"inherits": "Anker Generic PC @base",
"from": "system",
"setting_id": "GhIOAidtgDkzh9Aj",
"setting_id": "GFSC99_20",
"instantiation": "true",
"filament_max_volumetric_speed": [
"2"
@@ -3,7 +3,7 @@
"name": "Anker Generic PC 0.25 nozzle",
"inherits": "Anker Generic PC @base",
"from": "system",
"setting_id": "TQm9EPdenyGJMvgP",
"setting_id": "GFSC99_25",
"instantiation": "true",
"filament_max_volumetric_speed": [
"3"
@@ -3,7 +3,7 @@
"name": "Anker Generic PC",
"inherits": "Anker Generic PC @base",
"from": "system",
"setting_id": "xY25QcIsR9pWai3n",
"setting_id": "GFSC99",
"instantiation": "true",
"compatible_printers": [
"Anker M5 All-Metal 0.4 nozzle",
@@ -3,7 +3,7 @@
"name": "Anker Generic PETG 0.2 nozzle",
"inherits": "Anker Generic PETG @base",
"from": "system",
"setting_id": "VItvDP6zmenWXwPO",
"setting_id": "GFSG99_20",
"instantiation": "true",
"filament_max_volumetric_speed": [
"2"
@@ -3,7 +3,7 @@
"name": "Anker Generic PETG 0.25 nozzle",
"inherits": "Anker Generic PETG @base",
"from": "system",
"setting_id": "UgKfPuleh1xnoJLT",
"setting_id": "GFSG99_25",
"instantiation": "true",
"filament_max_volumetric_speed": [
"3"
@@ -3,7 +3,7 @@
"name": "Anker Generic PETG-CF",
"inherits": "Anker Generic PETG-CF @base",
"from": "system",
"setting_id": "j8PLF6AZD0R0oVs8",
"setting_id": "GFSG98",
"instantiation": "true",
"compatible_printers": [
"Anker M5 0.4 nozzle",
@@ -3,7 +3,7 @@
"name": "Anker Generic PETG",
"inherits": "Anker Generic PETG @base",
"from": "system",
"setting_id": "FMnK9qOMiqDcGqhd",
"setting_id": "GFSG99",
"instantiation": "true",
"compatible_printers": [
"Anker M5 0.4 nozzle",
@@ -3,7 +3,7 @@
"name": "Anker Generic PLA 0.2 nozzle",
"inherits": "Anker Generic PLA @base",
"from": "system",
"setting_id": "j6QmCITPJoP7bWHq",
"setting_id": "GFSL99_20",
"instantiation": "true",
"filament_max_volumetric_speed": [
"2"

Some files were not shown because too many files have changed in this diff Show More