diff --git a/CHANGELOG.md b/CHANGELOG.md index 500bbc890..ed23df3c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,7 @@ All notable changes to Bambuddy will be documented in this file. - **Failure detection can now authenticate to a token-protected Obico ML API (#2733)** — Obico's `ml_api` container takes an optional `ML_API_TOKEN` environment variable; with it set, the container answers 401 to any detection request that doesn't carry that token, which is how you stop everything else on your network from using your inference server. Bambuddy never sent one, so the only way to use it was to remove the token from the server — a step the reporter had already taken for their Home Assistant setup and did not want to undo. **Settings → Failure Detection** now has an **ML API Token** field; leave it empty and requests go out exactly as before. Also worth knowing: this failed in the most confusing way possible, because Obico protects its detection endpoint but leaves its health endpoint open. Bambuddy's **Test** button pinged the open one, so it reported success against a server that was rejecting every real call, and detection just silently never fired. Test now checks both and says outright when a token is rejected, and the status card reports a rejected token as a rejected token rather than a bare HTTP error. Translated in all locales; wiki documents the token, the health-endpoint trap and how to recover from it. ### Fixed +- **A heavy model failed to slice after five minutes with "Slicer sidecar unreachable" (#2730, reporter @kpp39)** — A MakerWorld model that Bambu Studio also takes a long time over never finished slicing in Bambuddy: five minutes in, it failed claiming the slicer sidecar could not be reached. **Root cause.** The slice request carried a fixed five-minute limit covering the whole operation, and it was applied to the wrong thing. Slicing is a single long request, so the limit was a ceiling on how long a model was allowed to take — not a check on whether anything had gone wrong. When it expired, the resulting error was indistinguishable from a genuine connection failure, so a slice that was progressing normally was reported as an unreachable sidecar. The reporter went and updated their sidecar container, which was never the problem: it was reachable throughout and still slicing when Bambuddy hung up on it. **Fix.** Bambuddy already polls the sidecar once a second for progress — that is what drives the live progress toast — so it can tell a slow slice from a stuck one, and now does. The limit applies to *silence*: a model that keeps reporting progress runs to completion however long it takes, and a slice is only abandoned when the slicer has said nothing for the configured period. The new **Slicer stall timeout** under Settings → Workflow → Slicer sets that period, defaulting to fifteen minutes, and the failure message now says the slice ran out of time and where to change it rather than blaming the connection. Sidecars too old to report progress have no liveness signal to offer, so for those the setting still bounds total slicing time — the previous behaviour, but configurable and no longer five minutes flat. A sidecar that genuinely cannot be reached still fails immediately and still says so. Translated in all locales; wiki documents the setting. Covered by tests for a slow-but-progressing slice completing, a stalled one failing, a frozen progress report not counting as progress, the two failure messages, and the setting falling back safely when unset or unparseable. - **Deleted prints stayed in their project as cards with broken previews, and could not be removed (#2731, reporter @sroesner)** — Deleting a print that belonged to a project left it on the project page with a missing thumbnail, and there was no way to unassign it. **Root cause.** Deleting a print is a soft delete by default: the files go from disk, the row stays so Quick Stats keeps counting its filament, time and cost. Every other part of Bambuddy skips those rows — the projects module skipped none of them, so a deleted print kept its project link and kept being listed, pointing at a thumbnail that no longer existed. The same broken previews appeared on the project cards in the overview, not just the detail page, and in the project timeline, where clicking the entry led to an archive that no longer opens. Unassigning was impossible because the only way to change a print's project is from the Archives page, which correctly hides deleted prints — so the entry could be seen but never reached. **Fix.** A deleted print now leaves its project everywhere: the archive list, the card previews, the timeline, and the counts. Excluding it from the *counts* is a deliberate difference from how Quick Stats treats the same print — a project is a piece of work with a definite membership rather than a lifetime total, so a project that lists eleven prints should not claim twelve. Existing broken entries disappear on upgrade with nothing to clean up; the API can still clear a stale link if anything needs repairing. Two more places were counting deleted prints for the same reason and are fixed with it: the archive CSV/Excel export handed back rows the interface says are gone, and per-project failure analysis measured a failure rate against prints that had been deleted from the project. The project page also no longer needs a manual reload to catch up: deleting a print refreshed the archive list but nothing project-related, and assigning a print to a project refreshed the project cards but not the project page itself, so for the following minute either view could still be showing what was there before. Covered by tests for the listing, the card previews, the timeline, the counts, both services, the cache refresh, and a guard that a project's live prints are untouched by any of it. - **A printer refusing Bambuddy's commands looked healthy, and its queue failed with the wrong advice (#2732, reporter @hennischd)** — Uploads succeeded, the printer echoed the job back, then sat idle for 270 seconds and the job was re-uploaded twice more before failing with a message about SD cards. Temperature changes returned success and did nothing. The connection diagnostic passed every check, and the support bundle said Developer Mode was on. **Root cause.** The printer was rejecting every control command and saying so: HMS `0500-0500-0001-0007`, "MQTT command verification failed" — the firmware's authorization check, which Bambu Lab documents Developer Mode as the way to disable. Nothing in Bambuddy connected that to anything. The error itself was received and then discarded by the frontend, because this code's meaning lives in bits that Bambuddy's short-code form throws away: it collapses to `0500_0007`, matches no catalog entry, and uncatalogued errors without firmware actions are filtered out of the badge count and the error list. Meanwhile the Developer Mode probe reads any response that isn't an explicit refusal as confirmation, and this firmware answers the probe with an empty result while refusing everything else — so Bambuddy inferred a healthy printer from a non-answer, and reported that inference as a passing diagnostic. **Fix.** HMS codes are now looked up by their full identifier before the short form, so this error survives to the screen, shows the four-group code the printer's own display shows, and carries the fix rather than Bambu's "update Studio or Handy" (which does not apply to a print sent from Bambuddy). The error is treated as authoritative about the printer's state: it sets Developer Mode to off regardless of what the probe concluded, which makes the diagnostic and the support bundle report the real situation, and it clears itself when the printer stops reporting it, so enabling Developer Mode and restarting is picked up without restarting Bambuddy. The probe no longer reads an inconclusive answer as confirmation — it reports what it knows, which for this firmware is nothing. A queue item whose command is rejected now fails on the first attempt naming the code and the fix, instead of spending three uploads and fifteen minutes of a farm's upload capacity to arrive at the wrong conclusion; a print that is visibly running is never touched, whatever HMS is lingering. Separately, the log hint suggesting a wrong or mis-cased serial number no longer fires in the moment after a reconnect, when the report counter it reads has just been reset and proves nothing — it cost this reporter a detour through their serial number on a printer whose serial was correct. Translated in all locales. Covered by tests for the code surviving the filter, the display form, the developer-mode override and its self-clearing, the inconclusive probe, first-attempt failure, the running-print guard and the suppressed hint. - **A printer that dropped off MQTT could stay offline indefinitely (#2732, reporter @hennischd)** — In the same bundle, the printer lost its MQTT session to a keep-alive timeout at 02:19 and did not come back until 11:24 — nine hours offline, with the web UI open the whole time. Bambuddy's stale-session detector only covers the other failure: a session that is still connected but has gone quiet. Once the connection is *down*, it returns immediately and the MQTT library's own retry is the only thing still watching; when that stops making progress, nothing notices. Bambuddy now runs a backstop sweep every minute. A printer that had a working session, has been silent for five minutes, and still answers on its MQTT port gets its client rebuilt from scratch with a fresh session — which also drops any command left unacknowledged on the dead one, so it cannot replay into the new session. Printers that are simply switched off are left alone: the port check tells the two apart, so there is no client churn and no nightly log spam for a farm that powers down. The rebuild is rate-limited per printer and never touches a connected one, and the log line names how long the printer was gone and what the last connection error was, so a session that dies repeatedly leaves a trail. Covered by tests for the recovery itself, the grace period, the switched-off case, the retry interval, and a farm sweep continuing past a printer that throws. diff --git a/backend/app/api/routes/archives.py b/backend/app/api/routes/archives.py index 4c8b5a070..116f7b11f 100644 --- a/backend/app/api/routes/archives.py +++ b/backend/app/api/routes/archives.py @@ -3905,6 +3905,7 @@ async def _try_preview_slice_filaments( """ from backend.app.api.routes.settings import get_setting from backend.app.services.slice_preview import get_preview_filaments + from backend.app.services.slicer_api import get_stall_timeout_seconds preferred = (await get_setting(db, "preferred_slicer")) or "bambu_studio" if preferred == "orcaslicer": @@ -3930,6 +3931,7 @@ async def _try_preview_slice_filaments( file_name=file_path.name, api_url=api_url, request_id=request_id, + timeout_seconds=await get_stall_timeout_seconds(db), ) diff --git a/backend/app/api/routes/library.py b/backend/app/api/routes/library.py index e3e39b7b0..98b64e6e6 100644 --- a/backend/app/api/routes/library.py +++ b/backend/app/api/routes/library.py @@ -3082,6 +3082,7 @@ async def _try_preview_slice_filaments( """ from backend.app.api.routes.settings import get_setting from backend.app.services.slice_preview import get_preview_filaments + from backend.app.services.slicer_api import get_stall_timeout_seconds preferred = (await get_setting(db, "preferred_slicer")) or "bambu_studio" if preferred == "orcaslicer": @@ -3107,6 +3108,7 @@ async def _try_preview_slice_filaments( file_name=file_path.name, api_url=api_url, request_id=request_id, + timeout_seconds=await get_stall_timeout_seconds(db), ) @@ -3607,6 +3609,8 @@ async def _run_slicer_with_fallback( SlicerApiService, SlicerApiUnavailableError, SlicerInputError, + SlicerTimeoutError, + get_stall_timeout_seconds, ) user: User | None = None @@ -3717,7 +3721,9 @@ async def _run_slicer_with_fallback( # gates the toggle on the picked printer matching the design's target, # so this path never re-targets across printer models. embedded_mode = bool(request.use_embedded_settings and is_3mf) - service = SlicerApiService(api_url) + # Bounds silence rather than total slicing time (#2730), so a heavy model + # that keeps reporting progress runs to completion however long it takes. + service = SlicerApiService(api_url, timeout_seconds=await get_stall_timeout_seconds(db)) # #1493: cross-nozzle-class re-slice (single <-> dual). Without # intervention the slicer rejects with either "G-code in unprintable @@ -3960,6 +3966,12 @@ async def _run_slicer_with_fallback( used_embedded_settings = True except SlicerInputError as exc: raise HTTPException(status_code=400, detail=str(exc)) from exc + except SlicerTimeoutError as exc: + # 504, not 502: the sidecar answered for the whole run, we stopped + # waiting. Reported separately so the user is told the slice ran out of + # time and where to change that, rather than that the sidecar is + # unreachable — which is what a read timeout used to look like (#2730). + raise HTTPException(status_code=504, detail=str(exc)) from exc except SlicerApiServerError as exc: raise HTTPException(status_code=502, detail=str(exc)) from exc except SlicerApiUnavailableError as exc: diff --git a/backend/app/schemas/settings.py b/backend/app/schemas/settings.py index a4f280020..b13d4b5a2 100644 --- a/backend/app/schemas/settings.py +++ b/backend/app/schemas/settings.py @@ -285,6 +285,21 @@ class AppSettings(BaseModel): default="", description="BambuStudio sidecar URL (e.g. http://localhost:3001). Empty falls back to the BAMBU_STUDIO_API_URL env var.", ) + # How long to keep waiting on a slice that isn't finishing. Measured against + # the sidecar's progress channel, not total elapsed time — a heavy model can + # legitimately slice for half an hour, and a wall-clock ceiling cannot tell + # that apart from a stalled one (#2730). Sidecars too old to report progress + # fall back to using this as a total-elapsed ceiling, which is the pre-#2730 + # behaviour with a configurable number. + slicer_stall_timeout_minutes: int = Field( + default=15, + ge=1, + le=240, + description=( + "Give up on a slice after this many minutes with no progress from the sidecar. " + "On sidecars that do not report progress, applies to total slicing time instead." + ), + ) # Prometheus metrics endpoint prometheus_enabled: bool = Field(default=False, description="Enable Prometheus metrics endpoint at /metrics") @@ -583,6 +598,7 @@ class AppSettingsUpdate(BaseModel): use_slicer_api: bool | None = None orcaslicer_api_url: str | None = None bambu_studio_api_url: str | None = None + slicer_stall_timeout_minutes: int | None = Field(default=None, ge=1, le=240) prometheus_enabled: bool | None = None prometheus_token: str | None = None low_stock_threshold: float | None = Field(default=None, ge=0.1, le=99.9) diff --git a/backend/app/services/slice_preview.py b/backend/app/services/slice_preview.py index 67138ea14..b5f5f383e 100644 --- a/backend/app/services/slice_preview.py +++ b/backend/app/services/slice_preview.py @@ -63,6 +63,7 @@ async def get_preview_filaments( file_name: str, api_url: str, request_id: str | None = None, + timeout_seconds: float | None = None, ) -> list[dict] | None: """Run a preview slice for ``plate_id``, parse the resulting slice_info, and return the per-plate filament list. @@ -92,7 +93,11 @@ async def get_preview_filaments( return cached try: - async with SlicerApiService(base_url=api_url) as svc: + # Preview slices are bounded the same way as real ones (#2730): + # a heavy plate can take a long time and must not be cut off + # while the slicer is visibly working. + svc_kwargs = {} if timeout_seconds is None else {"timeout_seconds": timeout_seconds} + async with SlicerApiService(base_url=api_url, **svc_kwargs) as svc: result = await svc.slice_without_profiles( model_bytes=file_bytes, model_filename=file_name, diff --git a/backend/app/services/slicer_api.py b/backend/app/services/slicer_api.py index 13d2b9359..53b088213 100644 --- a/backend/app/services/slicer_api.py +++ b/backend/app/services/slicer_api.py @@ -11,6 +11,7 @@ under the hood, response body is raw G-code or 3MF with metadata in the import asyncio import io import logging +import time import zipfile from collections.abc import Callable from typing import NamedTuple @@ -40,6 +41,18 @@ class SlicerInputError(SlicerApiError): """Sidecar rejected the input as invalid (4xx).""" +class SlicerTimeoutError(SlicerApiError): + """We gave up waiting on a slice that never finished. + + Kept apart from ``SlicerApiUnavailableError`` because they call for + opposite reactions and used to be reported as the same thing: an + ``httpx.ReadTimeout`` is a subclass of ``RequestError``, so a slice that + simply took a long time surfaced as "Slicer sidecar unreachable" — sending + the reporter of #2730 off to check a sidecar that was reachable throughout + and still slicing when we hung up on it. + """ + + class SliceResult(NamedTuple): """Result of a slice operation.""" @@ -51,6 +64,36 @@ class SliceResult(NamedTuple): _shared_http_client: httpx.AsyncClient | None = None +# Fallback for callers that don't pass one (tests, and any path that runs +# without a DB session to read the setting from). The user-facing value is +# ``slicer_stall_timeout_minutes`` under Settings -> Workflow -> Slicer. +DEFAULT_SLICE_STALL_TIMEOUT_SECONDS = 15 * 60.0 + +# How often the progress poller ticks. Also the granularity of the stall check, +# since a missed tick is what the stall clock is counting. +_PROGRESS_POLL_INTERVAL = 1.0 + + +async def get_stall_timeout_seconds(db) -> float: + """Read ``slicer_stall_timeout_minutes`` (Settings -> Workflow -> Slicer). + + Falls back to the default on anything unparseable rather than failing the + slice — a bad settings row must not be the reason a print doesn't happen. + """ + from backend.app.api.routes.settings import get_setting + + try: + raw = await get_setting(db, "slicer_stall_timeout_minutes") + except Exception: + return DEFAULT_SLICE_STALL_TIMEOUT_SECONDS + try: + minutes = int(str(raw).strip()) + except (TypeError, ValueError): + return DEFAULT_SLICE_STALL_TIMEOUT_SECONDS + if minutes < 1: + return DEFAULT_SLICE_STALL_TIMEOUT_SECONDS + return float(minutes) * 60.0 + def _format_sidecar_error(response: httpx.Response) -> str: """Build a human-readable error string from a sidecar 4xx/5xx response. @@ -149,6 +192,65 @@ def _guess_model_content_type(filename: str) -> str: return "application/octet-stream" +class _Liveness: + """Tracks when the slicer last showed a sign of life. + + ``deadline`` is what the slice waits against, and it moves forward on every + genuine progress update. A slice therefore fails only after the configured + window of *silence*, however long the whole thing has been running (#2730). + + ``progress_supported`` stays False for sidecars that never answer the + progress endpoint. Those give us nothing to judge liveness by, so the caller + treats the same window as a total-elapsed ceiling rather than pretending a + stall can be detected. + """ + + def __init__(self, window_seconds: float, poll_interval: float = _PROGRESS_POLL_INTERVAL) -> None: + # Liveness can only be observed as often as the poller ticks, so a + # window shorter than a few ticks would expire in the gap between two + # polls and fail every slice instantly, however healthy. The settings + # schema already floors the user-facing value at a minute; this guards + # the constructor, which tests and any future caller can pass anything. + self.window_seconds = max(window_seconds, poll_interval * 3) + self.progress_supported = False + self.started_at = time.monotonic() + self._last_alive = self.started_at + + def saw_progress_endpoint(self) -> None: + self.progress_supported = True + + def mark_alive(self) -> None: + self._last_alive = time.monotonic() + + @property + def deadline(self) -> float: + """Monotonic time at which we stop waiting.""" + base = self._last_alive if self.progress_supported else self.started_at + return base + self.window_seconds + + def silent_for(self) -> float: + return time.monotonic() - self._last_alive + + def elapsed(self) -> float: + return time.monotonic() - self.started_at + + def timeout_message(self) -> str: + minutes = self.window_seconds / 60 + if self.progress_supported: + return ( + f"The slicer stopped reporting progress for {minutes:.0f} minutes " + f"(slicing had been running for {self.elapsed() / 60:.0f} minutes). " + "Raise 'Slicer stall timeout' under Settings -> Workflow -> Slicer if this model " + "legitimately needs longer between progress updates." + ) + return ( + f"Slicing did not finish within {minutes:.0f} minutes, and this sidecar does not " + "report progress, so there was no way to tell a slow model from a stalled one. " + "Raise 'Slicer stall timeout' under Settings -> Workflow -> Slicer, or update the " + "sidecar to a version that reports progress." + ) + + class SlicerApiService: """Talks to an OrcaSlicer / BambuStudio API sidecar.""" @@ -157,10 +259,25 @@ class SlicerApiService: base_url: str, *, client: httpx.AsyncClient | None = None, - timeout_seconds: float = 300.0, + timeout_seconds: float = DEFAULT_SLICE_STALL_TIMEOUT_SECONDS, ) -> None: + """``timeout_seconds`` bounds *silence*, not total slicing time (#2730). + + While a slice is running Bambuddy polls the sidecar's progress channel + once a second, so it can tell a model that is merely slow from one that + has stopped: the clock is reset by every progress update, and only runs + out when the slicer has said nothing for this long. A heavy model that + keeps reporting will run to completion however long it takes. + + Sidecars too old to report progress have no liveness signal to offer, so + for those the same number bounds total elapsed time — the pre-#2730 + behaviour, but configurable and no longer five minutes flat. + """ self.base_url = base_url.rstrip("/") self.timeout_seconds = timeout_seconds + # Instance-level so tests can compress the timing; production always + # uses the module default. + self.progress_poll_interval = _PROGRESS_POLL_INTERVAL if client is not None: self._client = client self._owns_client = False @@ -217,6 +334,8 @@ class SlicerApiService: self, request_id: str, on_progress: Callable[[dict], None], + *, + liveness: "_Liveness | None" = None, ) -> None: """Poll the sidecar's progress endpoint at ~1Hz and forward each snapshot to ``on_progress``. Runs until cancelled. @@ -232,14 +351,27 @@ class SlicerApiService: slice grace expiry) just costs a few wasted GETs that the cancel will stop. Network errors and non-JSON 5xx are swallowed; the next tick retries. + + When ``liveness`` is supplied this doubles as the stall watchdog: every + 200 carrying a *changed* payload marks the slicer alive, which is what + keeps the slice's deadline moving (#2730). An unchanged payload + deliberately does not count — the sidecar re-serves its last snapshot on + every poll, so treating a repeat as progress would leave the watchdog + unable to detect a stall at all. """ url = f"{self.base_url}/slice/progress/{request_id}" + last_payload: dict | None = None while True: try: response = await self._client.get(url, timeout=5.0) if response.status_code == 200: payload = response.json() if isinstance(payload, dict): + if liveness is not None: + liveness.saw_progress_endpoint() + if payload != last_payload: + liveness.mark_alive() + last_payload = payload on_progress(payload) # 404 / other 4xx = no progress available (yet, or ever # for older sidecars). Keep polling — the outer slice @@ -249,10 +381,85 @@ class SlicerApiService: # returns a non-JSON 5xx. Don't crash the poller. pass try: - await asyncio.sleep(1.0) + await asyncio.sleep(self.progress_poll_interval) except asyncio.CancelledError: return + async def _post_slice( + self, + *, + files: list | dict, + data: dict, + request_id: str | None, + on_progress: Callable[[dict], None] | None, + ) -> httpx.Response: + """POST /slice, supervised by the progress channel rather than a clock. + + Before #2730 this was a plain ``httpx`` call with a flat 300 s timeout on + every phase. A genuinely heavy model — the reporter's was a MakerWorld + model that Bambu Studio also took a long time over — hit the ceiling + while it was still slicing perfectly happily, and because + ``httpx.ReadTimeout`` is a ``RequestError`` it was reported as "Slicer + sidecar unreachable". Meanwhile Bambuddy was polling the sidecar's + progress endpoint once a second and could see the thing working. + + So the read timeout comes off the HTTP call and the poller supervises + instead: the deadline is pushed forward by every progress update, and + only a genuine silence ends the wait. Connect and pool keep short + timeouts — a sidecar that won't accept the connection at all is + unreachable, and should still say so quickly. + """ + liveness = _Liveness(self.timeout_seconds, self.progress_poll_interval) + + # Poll whenever we have a request_id, even if the caller wants no + # progress callbacks: the poll is what makes stall detection possible, + # and one GET per second is cheaper than a wrongly-cancelled slice. + progress_task: asyncio.Task | None = None + if request_id is not None: + progress_task = asyncio.create_task( + self._poll_progress(request_id, on_progress or (lambda _payload: None), liveness=liveness), + name=f"slicer-progress-{request_id}", + ) + + post_task = asyncio.create_task( + self._client.post( + f"{self.base_url}/slice", + files=files, + data=data, + timeout=httpx.Timeout(connect=30.0, read=None, write=None, pool=30.0), + ), + name="slicer-slice-post", + ) + + try: + while True: + remaining = liveness.deadline - time.monotonic() + if remaining <= 0: + post_task.cancel() + logger.warning( + "Slice abandoned after %.0fs (silent for %.0fs, progress channel %s)", + liveness.elapsed(), + liveness.silent_for(), + "available" if liveness.progress_supported else "unavailable", + ) + raise SlicerTimeoutError(liveness.timeout_message()) + # Re-check at poll granularity so a progress update that lands + # mid-wait extends the deadline promptly. + done, _pending = await asyncio.wait({post_task}, timeout=min(remaining, self.progress_poll_interval)) + if post_task in done: + break + finally: + if progress_task is not None: + progress_task.cancel() + # Await both so neither is left pending — a cancelled POST still + # needs its connection released back to the pool. + await asyncio.gather(post_task, progress_task or asyncio.sleep(0), return_exceptions=True) + + try: + return post_task.result() + except httpx.RequestError as exc: + raise SlicerApiUnavailableError(f"Slicer sidecar unreachable: {exc}") from exc + async def slice_with_profiles( self, *, @@ -328,30 +535,7 @@ class SlicerApiService: # and surfaces structured updates via on_progress. Uses a # short-tick poll (1s) since the slicer emits stage changes # several times per minute on complex models. - progress_task: asyncio.Task | None = None - if request_id is not None and on_progress is not None: - progress_task = asyncio.create_task( - self._poll_progress(request_id, on_progress), - name=f"slicer-progress-{request_id}", - ) - - try: - response = await self._client.post( - f"{self.base_url}/slice", - files=files, - data=data, - timeout=self.timeout_seconds, - ) - except httpx.RequestError as exc: - raise SlicerApiUnavailableError(f"Slicer sidecar unreachable: {exc}") from exc - finally: - if progress_task is not None: - progress_task.cancel() - try: - await progress_task - except (asyncio.CancelledError, Exception): - pass # Polling errors must not fail the slice. - + response = await self._post_slice(files=files, data=data, request_id=request_id, on_progress=on_progress) return _handle_slice_response(response, export_3mf=export_3mf) async def slice_without_profiles( @@ -396,30 +580,7 @@ class SlicerApiService: # embedded-settings fallback path triggered by an Orca/Bambu CLI # segfault on complex H2D models — both want to keep updating # the user's toast through the slow operation. - progress_task: asyncio.Task | None = None - if request_id is not None and on_progress is not None: - progress_task = asyncio.create_task( - self._poll_progress(request_id, on_progress), - name=f"slicer-progress-{request_id}", - ) - - try: - response = await self._client.post( - f"{self.base_url}/slice", - files=files, - data=data, - timeout=self.timeout_seconds, - ) - except httpx.RequestError as exc: - raise SlicerApiUnavailableError(f"Slicer sidecar unreachable: {exc}") from exc - finally: - if progress_task is not None: - progress_task.cancel() - try: - await progress_task - except (asyncio.CancelledError, Exception): - pass - + response = await self._post_slice(files=files, data=data, request_id=request_id, on_progress=on_progress) return _handle_slice_response(response, export_3mf=export_3mf) diff --git a/backend/tests/integration/test_library_slice_api.py b/backend/tests/integration/test_library_slice_api.py index a7f5bb91f..9eda86f94 100644 --- a/backend/tests/integration/test_library_slice_api.py +++ b/backend/tests/integration/test_library_slice_api.py @@ -69,6 +69,17 @@ def _install_mock_sidecar(handler: Callable[[httpx.Request], httpx.Response]) -> return client +def _is_slice_post(request: httpx.Request) -> bool: + """True for the slice call itself, false for the progress polls beside it. + + Since #2730 a slice is supervised by a 1 Hz poll of + ``GET /slice/progress/{id}``, which shares this mock transport. Tests that + count *slice attempts* — primary vs embedded-settings fallback — have to + exclude those, or the count becomes a measure of how long the test took. + """ + return request.method == "POST" and request.url.path.endswith("/slice") + + async def _wait_for_job(client: AsyncClient, job_id: int, timeout: float = 5.0) -> dict: """Poll `/api/v1/slice-jobs/{id}` until the job hits a terminal state. @@ -414,6 +425,8 @@ class TestSliceLibraryFile: call_count = {"n": 0} def handler(request: httpx.Request) -> httpx.Response: + if not _is_slice_post(request): + return httpx.Response(404) call_count["n"] += 1 # First call: profile triplet present → simulate CLI 5xx if call_count["n"] == 1: @@ -454,7 +467,9 @@ class TestSliceLibraryFile: # STL has no embedded settings — the CLI 5xx is terminal. call_count = {"n": 0} - def handler(_: httpx.Request) -> httpx.Response: + def handler(request: httpx.Request) -> httpx.Response: + if not _is_slice_post(request): + return httpx.Response(404) call_count["n"] += 1 return httpx.Response( status_code=500, @@ -568,6 +583,8 @@ class TestSliceLibraryFile: call_count = {"n": 0} def handler(request: httpx.Request) -> httpx.Response: + if not _is_slice_post(request): + return httpx.Response(404) call_count["n"] += 1 captured["body"] = request.content return httpx.Response( @@ -777,6 +794,8 @@ class TestCrossClassSliceAllLoop: captured_requests: list[dict] = [] def handler(request: httpx.Request) -> httpx.Response: + if not _is_slice_post(request): + return httpx.Response(404) # Multipart bodies aren't trivially parseable here; pull # the plate field by string search since the helper sends # ``name="plate"`` immediately followed by the value. @@ -1463,6 +1482,8 @@ class TestSliceSlicerRejection: call_count = {"n": 0} def handler(request: httpx.Request) -> httpx.Response: + if not _is_slice_post(request): + return httpx.Response(404) call_count["n"] += 1 return httpx.Response( status_code=500, @@ -1721,6 +1742,8 @@ class TestUnusedSlotSubstitutionOnSinglePlateSource: captured: list[list[str]] = [] def handler(request: httpx.Request) -> httpx.Response: + if not _is_slice_post(request): + return httpx.Response(404) captured.append(self._filament_names_sent(request.content)) return httpx.Response( status_code=200, @@ -1818,6 +1841,8 @@ class TestUnusedSlotSubstitutionOnSinglePlateSource: captured: list[list[str]] = [] def handler(request: httpx.Request) -> httpx.Response: + if not _is_slice_post(request): + return httpx.Response(404) captured.append(self._filament_names_sent(request.content)) return httpx.Response( status_code=200, diff --git a/backend/tests/unit/test_slicer_stall_timeout.py b/backend/tests/unit/test_slicer_stall_timeout.py new file mode 100644 index 000000000..5e9e5aada --- /dev/null +++ b/backend/tests/unit/test_slicer_stall_timeout.py @@ -0,0 +1,229 @@ +"""Tests for the progress-supervised slice timeout (#2730). + +The old behaviour was a flat 300 s httpx timeout on the slice POST. A heavy +model that Bambu Studio also took a long time over blew through it while the +slicer was working perfectly happily, and — because ``httpx.ReadTimeout`` is a +subclass of ``RequestError`` — the failure was reported as "Slicer sidecar +unreachable", sending the reporter off to check a sidecar that was reachable +throughout. + +The wait is now bounded by *silence* instead: Bambuddy already polls the +sidecar's progress endpoint once a second, so it can tell a slow slice from a +stalled one. The deadline moves forward on every progress update. +""" + +import asyncio + +import httpx +import pytest + +from backend.app.services.slicer_api import ( + DEFAULT_SLICE_STALL_TIMEOUT_SECONDS, + SlicerApiService, + SlicerApiUnavailableError, + SlicerTimeoutError, + _Liveness, + get_stall_timeout_seconds, +) + +SLICE_ARGS = { + "model_bytes": b"solid\n", + "model_filename": "cube.3mf", + "printer_profile_json": "{}", + "process_profile_json": "{}", + "filament_profile_jsons": ["{}"], +} + + +def _service(handler, *, timeout_seconds: float, poll_interval: float = 0.02) -> SlicerApiService: + """A service wired to a mock sidecar, with the timing compressed. + + The stall window is floored at three poll intervals — liveness can only be + observed as fast as the poller ticks — so tests shrink both together rather + than waiting out production's 1 Hz. + """ + client = httpx.AsyncClient(transport=httpx.MockTransport(handler)) + svc = SlicerApiService("http://sidecar:3003", client=client, timeout_seconds=timeout_seconds) + svc.progress_poll_interval = poll_interval + return svc + + +class TestLivenessWindow: + """The unit that decides when to stop waiting.""" + + def test_a_fresh_slice_has_the_full_window(self): + live = _Liveness(60.0, 1.0) + assert live.deadline - live.started_at == pytest.approx(60.0) + + def test_progress_pushes_the_deadline_out(self): + live = _Liveness(60.0, 1.0) + live.saw_progress_endpoint() + before = live.deadline + live._last_alive += 30.0 # simulate a progress update 30s later + assert live.deadline > before + + def test_without_a_progress_channel_the_window_is_total_elapsed(self): + """No liveness signal means no way to tell slow from stalled, so the + window degrades to the pre-#2730 wall clock — just configurable.""" + live = _Liveness(60.0, 1.0) + live.mark_alive() # would move the deadline if progress were supported + assert live.deadline == pytest.approx(live.started_at + 60.0) + + def test_message_distinguishes_the_two_cases(self): + supported = _Liveness(60.0, 1.0) + supported.saw_progress_endpoint() + assert "stopped reporting progress" in supported.timeout_message() + + unsupported = _Liveness(60.0, 1.0) + assert "does not report progress" in unsupported.timeout_message() + + def test_message_points_at_the_setting(self): + live = _Liveness(900.0, 1.0) + assert "Settings -> Workflow -> Slicer" in live.timeout_message() + + +class TestSliceIsNotCutOffWhileProgressing: + @pytest.mark.asyncio + async def test_a_slow_slice_that_reports_progress_completes(self): + """The reporter's case: slower than the old ceiling, still working. + + The slice takes ~5x the stall window; progress keeps arriving, so it + must run to completion rather than being abandoned. + """ + progress = {"n": 0} + + async def handler(request: httpx.Request) -> httpx.Response: + if request.url.path.endswith("/slice"): + await asyncio.sleep(0.5) + return httpx.Response( + 200, + content=b"G1 X0\n", + headers={ + "x-print-time-seconds": "100", + "x-filament-used-g": "1.0", + "x-filament-used-mm": "100", + }, + ) + progress["n"] += 1 + return httpx.Response(200, json={"percent": progress["n"]}) + + svc = _service(handler, timeout_seconds=0.1) + result = await svc.slice_with_profiles(**SLICE_ARGS, request_id="req-1", on_progress=lambda _p: None) + + assert result.print_time_seconds == 100 + assert progress["n"] > 1, "the poller must have been running throughout" + + @pytest.mark.asyncio + async def test_repeated_identical_progress_does_not_count_as_alive(self): + """The sidecar re-serves its last snapshot on every poll. Treating that + as progress would make a stall undetectable.""" + + async def handler(request: httpx.Request) -> httpx.Response: + if request.url.path.endswith("/slice"): + await asyncio.sleep(10) + return httpx.Response(200, content=b"never gets here") + return httpx.Response(200, json={"percent": 42}) # frozen + + svc = _service(handler, timeout_seconds=0.3) + with pytest.raises(SlicerTimeoutError): + await svc.slice_with_profiles(**SLICE_ARGS, request_id="req-2", on_progress=lambda _p: None) + + +class TestStalledSliceFails: + @pytest.mark.asyncio + async def test_silence_ends_the_wait(self): + async def handler(request: httpx.Request) -> httpx.Response: + if request.url.path.endswith("/slice"): + await asyncio.sleep(10) + return httpx.Response(200, content=b"never gets here") + return httpx.Response(404) # no progress available + + svc = _service(handler, timeout_seconds=0.2) + with pytest.raises(SlicerTimeoutError) as exc: + await svc.slice_with_profiles(**SLICE_ARGS, request_id="req-3", on_progress=lambda _p: None) + + assert "does not report progress" in str(exc.value) + + @pytest.mark.asyncio + async def test_timeout_is_not_reported_as_unreachable(self): + """The whole point: this used to surface as "Slicer sidecar unreachable".""" + + async def handler(request: httpx.Request) -> httpx.Response: + if request.url.path.endswith("/slice"): + await asyncio.sleep(10) + return httpx.Response(404) + + svc = _service(handler, timeout_seconds=0.2) + with pytest.raises(SlicerTimeoutError) as exc: + await svc.slice_with_profiles(**SLICE_ARGS, request_id="req-4", on_progress=lambda _p: None) + + assert not isinstance(exc.value, SlicerApiUnavailableError) + assert "unreachable" not in str(exc.value) + + @pytest.mark.asyncio + async def test_a_genuinely_unreachable_sidecar_still_says_so(self): + """Timeouts got their own type; connection failures keep the old one.""" + + async def handler(_request: httpx.Request) -> httpx.Response: + raise httpx.ConnectError("connection refused") + + svc = _service(handler, timeout_seconds=5.0) + with pytest.raises(SlicerApiUnavailableError) as exc: + await svc.slice_with_profiles(**SLICE_ARGS) + + assert "unreachable" in str(exc.value) + + +class TestStallTimeoutSetting: + @pytest.mark.asyncio + async def test_reads_the_configured_value(self): + class _DB: + pass + + async def fake_get_setting(_db, key): + assert key == "slicer_stall_timeout_minutes" + return "45" + + import backend.app.api.routes.settings as settings_module + + original = settings_module.get_setting + settings_module.get_setting = fake_get_setting + try: + assert await get_stall_timeout_seconds(_DB()) == 45 * 60 + finally: + settings_module.get_setting = original + + @pytest.mark.asyncio + @pytest.mark.parametrize("stored", [None, "", "not-a-number", "0", "-5"]) + async def test_falls_back_rather_than_failing_the_slice(self, stored): + """A bad settings row must not be the reason a print doesn't happen.""" + + async def fake_get_setting(_db, _key): + return stored + + import backend.app.api.routes.settings as settings_module + + original = settings_module.get_setting + settings_module.get_setting = fake_get_setting + try: + assert await get_stall_timeout_seconds(object()) == DEFAULT_SLICE_STALL_TIMEOUT_SECONDS + finally: + settings_module.get_setting = original + + @pytest.mark.asyncio + async def test_a_failing_lookup_falls_back_too(self): + async def boom(_db, _key): + raise RuntimeError("db is down") + + import backend.app.api.routes.settings as settings_module + + original = settings_module.get_setting + settings_module.get_setting = boom + try: + assert await get_stall_timeout_seconds(object()) == DEFAULT_SLICE_STALL_TIMEOUT_SECONDS + finally: + settings_module.get_setting = original + + def test_default_is_longer_than_the_old_fixed_ceiling(self): + """300s was the number that broke; the new default must beat it.""" + assert DEFAULT_SLICE_STALL_TIMEOUT_SECONDS > 300 diff --git a/frontend/src/api/client.ts b/frontend/src/api/client.ts index 52b17de8c..e0912b1d7 100644 --- a/frontend/src/api/client.ts +++ b/frontend/src/api/client.ts @@ -1278,6 +1278,10 @@ export interface AppSettings { // Per-install sidecar URLs. Empty string falls back to the env defaults. orcaslicer_api_url: string; bambu_studio_api_url: string; + // Minutes of silence from the sidecar before a slice is abandoned. Bounds + // stalls, not total slicing time — a model that keeps reporting progress + // runs to completion however long it takes. + slicer_stall_timeout_minutes: number; // Prometheus metrics prometheus_enabled: boolean; prometheus_token: string; diff --git a/frontend/src/i18n/locales/de.ts b/frontend/src/i18n/locales/de.ts index bfff396f6..598f82d68 100644 --- a/frontend/src/i18n/locales/de.ts +++ b/frontend/src/i18n/locales/de.ts @@ -2237,6 +2237,8 @@ export default { slicerCard: 'Slicer', orcaslicerApiUrl: 'OrcaSlicer Sidecar-URL', bambuStudioApiUrl: 'Bambu Studio Sidecar-URL', + slicerStallTimeout: 'Zeitlimit bei Slicer-Stillstand (Minuten)', + slicerStallTimeoutDescription: 'Bricht einen Slice-Vorgang ab, wenn der Sidecar so lange keinen Fortschritt meldet. Aufwendige Modelle, die weiter Fortschritt melden, werden nie abgebrochen, egal wie lange sie brauchen. Sidecars ohne Fortschrittsmeldung nutzen diesen Wert stattdessen als Gesamtzeitlimit.', slicerApiUrlDescription: 'URL des Slicer-API-Sidecar-Containers. Leer lassen, um die SLICER_API_URL- bzw. BAMBU_STUDIO_API_URL-Umgebungsvariablen zu nutzen.', slicerBundlesRemoved: { title: 'Slicer-Bundles (entfernt)', diff --git a/frontend/src/i18n/locales/en.ts b/frontend/src/i18n/locales/en.ts index 7c9459da2..d76700731 100644 --- a/frontend/src/i18n/locales/en.ts +++ b/frontend/src/i18n/locales/en.ts @@ -2256,6 +2256,8 @@ export default { slicerCard: 'Slicer', orcaslicerApiUrl: 'OrcaSlicer sidecar URL', bambuStudioApiUrl: 'Bambu Studio sidecar URL', + slicerStallTimeout: 'Slicer stall timeout (minutes)', + slicerStallTimeoutDescription: 'Give up on a slice after this long with no progress from the sidecar. Heavy models that keep reporting progress are never cut off, however long they take. Sidecars that do not report progress use this as a total time limit instead.', slicerApiUrlDescription: 'URL of the slicer-API sidecar container. Leave blank to use the SLICER_API_URL / BAMBU_STUDIO_API_URL env var defaults.', slicerBundlesRemoved: { title: 'Slicer Bundles (removed)', diff --git a/frontend/src/i18n/locales/es.ts b/frontend/src/i18n/locales/es.ts index a65bd346f..545a0c258 100644 --- a/frontend/src/i18n/locales/es.ts +++ b/frontend/src/i18n/locales/es.ts @@ -2240,6 +2240,8 @@ export default { slicerCard: 'Laminador', orcaslicerApiUrl: 'OrcaSlicer sidecar URL', bambuStudioApiUrl: 'Bambu Studio sidecar URL', + slicerStallTimeout: 'Tiempo de espera por inactividad del laminador (minutos)', + slicerStallTimeoutDescription: 'Abandona un laminado tras este tiempo sin progreso del sidecar. Los modelos pesados que siguen informando progreso nunca se interrumpen, por mucho que tarden. Los sidecars que no informan progreso usan este valor como limite de tiempo total.', slicerApiUrlDescription: 'URL del contenedor auxiliar de la API del laminador. Déjelo en blanco para usar los valores predeterminados de las variables de entorno SLICER_API_URL / BAMBU_STUDIO_API_URL.', slicerBundlesRemoved: { title: 'Paquetes del laminador (eliminado)', diff --git a/frontend/src/i18n/locales/fr.ts b/frontend/src/i18n/locales/fr.ts index cbb64b618..5912ea1b5 100644 --- a/frontend/src/i18n/locales/fr.ts +++ b/frontend/src/i18n/locales/fr.ts @@ -2193,6 +2193,8 @@ export default { slicerCard: 'Slicer', orcaslicerApiUrl: 'OrcaSlicer sidecar URL', bambuStudioApiUrl: 'Bambu Studio sidecar URL', + slicerStallTimeout: "Delai d'inactivite du trancheur (minutes)", + slicerStallTimeoutDescription: 'Abandonne un decoupage apres cette duree sans progression du sidecar. Les modeles lourds qui continuent a signaler leur progression ne sont jamais interrompus, quel que soit le temps necessaire. Les sidecars qui ne signalent pas de progression utilisent cette valeur comme limite de duree totale.', slicerApiUrlDescription: 'URL du conteneur sidecar slicer-API. Laisser vide pour utiliser les variables d\'environnement SLICER_API_URL / BAMBU_STUDIO_API_URL.', slicerBundlesRemoved: { title: 'Bundles de slicer (supprimé)', diff --git a/frontend/src/i18n/locales/it.ts b/frontend/src/i18n/locales/it.ts index a90b6e5e0..eacfc63a1 100644 --- a/frontend/src/i18n/locales/it.ts +++ b/frontend/src/i18n/locales/it.ts @@ -2193,6 +2193,8 @@ export default { slicerCard: 'Slicer', orcaslicerApiUrl: 'OrcaSlicer sidecar URL', bambuStudioApiUrl: 'Bambu Studio sidecar URL', + slicerStallTimeout: 'Timeout di inattivita dello slicer (minuti)', + slicerStallTimeoutDescription: 'Interrompe uno slice dopo questo tempo senza progressi dal sidecar. I modelli pesanti che continuano a segnalare progressi non vengono mai interrotti, per quanto tempo richiedano. I sidecar che non segnalano progressi usano questo valore come limite di tempo totale.', slicerApiUrlDescription: 'URL del container sidecar slicer-API. Lascia vuoto per usare le variabili d\'ambiente SLICER_API_URL / BAMBU_STUDIO_API_URL.', slicerBundlesRemoved: { title: 'Bundle slicer (rimosso)', diff --git a/frontend/src/i18n/locales/ja.ts b/frontend/src/i18n/locales/ja.ts index 7fc92213d..40035f57f 100644 --- a/frontend/src/i18n/locales/ja.ts +++ b/frontend/src/i18n/locales/ja.ts @@ -2236,6 +2236,8 @@ export default { slicerCard: 'スライサー', orcaslicerApiUrl: 'OrcaSlicer sidecar URL', bambuStudioApiUrl: 'Bambu Studio sidecar URL', + slicerStallTimeout: 'スライサー停止タイムアウト(分)', + slicerStallTimeoutDescription: 'サイドカーからの進捗がこの時間なければスライスを中止します。進捗を報告し続ける重いモデルは、どれだけ時間がかかっても中断されません。進捗を報告しないサイドカーでは、この値が合計時間の上限になります。', slicerApiUrlDescription: 'slicer-APIサイドカーコンテナのURL。空のままにすると SLICER_API_URL / BAMBU_STUDIO_API_URL 環境変数のデフォルト値が使用されます。', slicerBundlesRemoved: { title: 'スライサーバンドル(削除済み)', diff --git a/frontend/src/i18n/locales/ko.ts b/frontend/src/i18n/locales/ko.ts index 6629d7b93..bf01bc377 100644 --- a/frontend/src/i18n/locales/ko.ts +++ b/frontend/src/i18n/locales/ko.ts @@ -2110,6 +2110,8 @@ export default { slicerCard: '슬라이서', orcaslicerApiUrl: 'OrcaSlicer 사이드카 URL', bambuStudioApiUrl: 'Bambu Studio 사이드카 URL', + slicerStallTimeout: '슬라이서 정지 시간 제한(분)', + slicerStallTimeoutDescription: '사이드카에서 이 시간 동안 진행 상황이 없으면 슬라이싱을 중단합니다. 진행 상황을 계속 보고하는 무거운 모델은 아무리 오래 걸려도 중단되지 않습니다. 진행 상황을 보고하지 않는 사이드카에서는 이 값이 전체 시간 제한으로 사용됩니다.', slicerApiUrlDescription: '슬라이서 API 사이드카 컨테이너의 URL. SLICER_API_URL / BAMBU_STUDIO_API_URL 환경 변수 기본값을 사용하려면 비워두세요.', slicerBundlesRemoved: { title: '슬라이서 번들 (제거됨)', diff --git a/frontend/src/i18n/locales/pt-BR.ts b/frontend/src/i18n/locales/pt-BR.ts index dad6fdd71..37c79ef41 100644 --- a/frontend/src/i18n/locales/pt-BR.ts +++ b/frontend/src/i18n/locales/pt-BR.ts @@ -2193,6 +2193,8 @@ export default { slicerCard: 'Fatiador', orcaslicerApiUrl: 'OrcaSlicer sidecar URL', bambuStudioApiUrl: 'Bambu Studio sidecar URL', + slicerStallTimeout: 'Tempo limite de inatividade do fatiador (minutos)', + slicerStallTimeoutDescription: 'Desiste de um fatiamento apos esse tempo sem progresso do sidecar. Modelos pesados que continuam relatando progresso nunca sao interrompidos, por mais que demorem. Sidecars que nao relatam progresso usam este valor como limite de tempo total.', slicerApiUrlDescription: 'URL do contêiner sidecar slicer-API. Deixe em branco para usar SLICER_API_URL / BAMBU_STUDIO_API_URL.', slicerBundlesRemoved: { title: 'Bundles do fatiador (removido)', diff --git a/frontend/src/i18n/locales/ru.ts b/frontend/src/i18n/locales/ru.ts index 6385fc5ec..7915769cf 100644 --- a/frontend/src/i18n/locales/ru.ts +++ b/frontend/src/i18n/locales/ru.ts @@ -2111,6 +2111,8 @@ export default { slicerCard: "Слайсер", orcaslicerApiUrl: "URL API-службы OrcaSlicer", bambuStudioApiUrl: "URL API-службы Bambu Studio", + slicerStallTimeout: 'Тайм-аут простоя слайсера (минуты)', + slicerStallTimeoutDescription: 'Прервать нарезку, если sidecar не сообщает о прогрессе в течение этого времени. Тяжёлые модели, которые продолжают сообщать о прогрессе, не прерываются, сколько бы времени ни потребовалось. Для sidecar без отчёта о прогрессе это значение используется как общий лимит времени.', slicerApiUrlDescription: "URL контейнера API-службы слайсера. Оставьте пустым, чтобы использовать значения переменных окружения SLICER_API_URL или BAMBU_STUDIO_API_URL.", slicerBundlesRemoved: { title: "Пакеты профилей слайсера (удалено)", diff --git a/frontend/src/i18n/locales/tr.ts b/frontend/src/i18n/locales/tr.ts index efe4c78ae..cf6729991 100644 --- a/frontend/src/i18n/locales/tr.ts +++ b/frontend/src/i18n/locales/tr.ts @@ -2241,6 +2241,8 @@ export default { slicerCard: 'Dilimleyici', orcaslicerApiUrl: 'OrcaSlicer yardımcı bileşen URL', bambuStudioApiUrl: 'Bambu Studio yardımcı bileşen URL', + slicerStallTimeout: 'Dilimleyici duraklama zaman asimi (dakika)', + slicerStallTimeoutDescription: 'Sidecar bu sure boyunca ilerleme bildirmezse dilimleme iptal edilir. Ilerleme bildirmeye devam eden agir modeller ne kadar surerse sursun kesilmez. Ilerleme bildirmeyen sidecar surumleri bu degeri toplam sure siniri olarak kullanir.', slicerApiUrlDescription: 'Dilimleyici-API yardımcı bileşen konteynerinin URL\'si. SLICER_API_URL / BAMBU_STUDIO_API_URL ortam değişkeni varsayılanlarını kullanmak için boş bırakın.', slicerBundlesRemoved: { title: 'Dilimleyici Paketleri (kaldırıldı)', diff --git a/frontend/src/i18n/locales/uk.ts b/frontend/src/i18n/locales/uk.ts index 7a80c60a7..218e71858 100644 --- a/frontend/src/i18n/locales/uk.ts +++ b/frontend/src/i18n/locales/uk.ts @@ -2256,6 +2256,8 @@ export default { slicerCard: "Слайсер", orcaslicerApiUrl: "URL допоміжного сервісу OrcaSlicer", bambuStudioApiUrl: "URL допоміжного сервісу Bambu Studio", + slicerStallTimeout: 'Тайм-аут простою слайсера (хвилини)', + slicerStallTimeoutDescription: 'Перервати нарізку, якщо sidecar не повідомляє про прогрес протягом цього часу. Важкі моделі, які продовжують повідомляти про прогрес, ніколи не перериваються, скільки б часу не знадобилося. Для sidecar без звіту про прогрес це значення використовується як загальний ліміт часу.', slicerApiUrlDescription: "URL контейнера допоміжного сервісу slicer-API. Залиште поле порожнім, щоб використовувати типові значення зі змінних середовища SLICER_API_URL / BAMBU_STUDIO_API_URL.", slicerBundlesRemoved: { title: "Пакети профілів слайсера (вилучено)", diff --git a/frontend/src/i18n/locales/zh-CN.ts b/frontend/src/i18n/locales/zh-CN.ts index d06c28920..aa5e5047f 100644 --- a/frontend/src/i18n/locales/zh-CN.ts +++ b/frontend/src/i18n/locales/zh-CN.ts @@ -2238,6 +2238,8 @@ export default { slicerCard: '切片器', orcaslicerApiUrl: 'OrcaSlicer sidecar URL', bambuStudioApiUrl: 'Bambu Studio sidecar URL', + slicerStallTimeout: '切片器停滞超时(分钟)', + slicerStallTimeoutDescription: '若 sidecar 在此时长内没有任何进度,则放弃本次切片。持续报告进度的复杂模型无论耗时多久都不会被中断。不报告进度的 sidecar 则将此值作为总时长上限。', slicerApiUrlDescription: 'slicer-API sidecar 容器的 URL。留空以使用 SLICER_API_URL / BAMBU_STUDIO_API_URL 环境变量默认值。', slicerBundlesRemoved: { title: '切片器捆绑包(已移除)', diff --git a/frontend/src/i18n/locales/zh-TW.ts b/frontend/src/i18n/locales/zh-TW.ts index f6af2ccef..3055b7486 100644 --- a/frontend/src/i18n/locales/zh-TW.ts +++ b/frontend/src/i18n/locales/zh-TW.ts @@ -2238,6 +2238,8 @@ export default { slicerCard: '切片器', orcaslicerApiUrl: 'OrcaSlicer sidecar URL', bambuStudioApiUrl: 'Bambu Studio sidecar URL', + slicerStallTimeout: '切片器停滯逾時(分鐘)', + slicerStallTimeoutDescription: '若 sidecar 在此時長內沒有任何進度,則放棄本次切片。持續回報進度的複雜模型無論耗時多久都不會被中斷。不回報進度的 sidecar 則將此值作為總時長上限。', slicerApiUrlDescription: 'slicer-API sidecar 容器的 URL。留空以使用 SLICER_API_URL / BAMBU_STUDIO_API_URL 環境變數預設值。', slicerBundlesRemoved: { title: '切片器捆綁包(已移除)', diff --git a/frontend/src/pages/SettingsPage.tsx b/frontend/src/pages/SettingsPage.tsx index 3d58fe753..2c7d8c259 100644 --- a/frontend/src/pages/SettingsPage.tsx +++ b/frontend/src/pages/SettingsPage.tsx @@ -1009,6 +1009,7 @@ export function SettingsPage() { (settings.open_in_slicer ?? null) !== (localSettings.open_in_slicer ?? null) || (settings.use_slicer_api ?? false) !== (localSettings.use_slicer_api ?? false) || (settings.orcaslicer_api_url ?? '') !== (localSettings.orcaslicer_api_url ?? '') || + (settings.slicer_stall_timeout_minutes ?? 15) !== (localSettings.slicer_stall_timeout_minutes ?? 15) || (settings.bambu_studio_api_url ?? '') !== (localSettings.bambu_studio_api_url ?? '') || settings.prometheus_enabled !== localSettings.prometheus_enabled || settings.prometheus_token !== localSettings.prometheus_token || @@ -1112,6 +1113,7 @@ export function SettingsPage() { open_in_slicer: localSettings.open_in_slicer, use_slicer_api: localSettings.use_slicer_api, orcaslicer_api_url: localSettings.orcaslicer_api_url, + slicer_stall_timeout_minutes: localSettings.slicer_stall_timeout_minutes, bambu_studio_api_url: localSettings.bambu_studio_api_url, prometheus_enabled: localSettings.prometheus_enabled, prometheus_token: localSettings.prometheus_token, @@ -4889,6 +4891,26 @@ export function SettingsPage() {
)} + {(localSettings.use_slicer_api ?? false) && ( ++ {t('settings.slicerStallTimeoutDescription')} +
+/api/v1/metrics for Prometheus/Grafana monitoring.`,bearerTokenOptional:`Bearer Token (optional)`,bearerTokenHint:`If set, requests must include Authorization: Bearer `,metricsConnectionStatus:`Connection status`,metricsPrinterState:`Printer state (idle/printing/etc)`,metricsPrintProgress:`Print progress 0-100%`,metricsBedTemp:`Bed temperature`,metricsNozzleTemp:`Nozzle temperature`,metricsPrintsTotal:`Total prints by result`,metricsMore:`...and more (layers, fans, queue, filament usage)`,smartPlugsDescription:`Connect smart plugs (Tasmota or Home Assistant) to automate power control and track energy usage for your printers.`,allOn:`All On`,allOff:`All Off`,addSmartPlug:`Add Smart Plug`,energySummary:`Energy Summary`,currentPower:`Current Power`,plugsOnline:`{{reachable}}/{{total}} plugs online`,today:`Today`,yesterday:`Yesterday`,total:`Total`,enablePlugsForSummary:`Enable plugs to see energy summary`,addNotificationProvider:`Add`,systemBadge:`(System)`,creating:`Creating...`,changing:`Changing...`,deleteUserAndItems:`Delete user AND their items`,deleteUserKeepItems:`Delete user, keep items (become ownerless)`,ok:`OK`,twoFa:{totpTitle:`Authenticator App (TOTP)`,totpDesc:`Use an authenticator app like Google Authenticator, Aegis or Authy.`,emailOtpTitle:`Email OTP`,emailOtpDesc:`Send a one-time code to {{email}} when you log in.`,emailOtpNoEmail:`Add an email address to your account to enable this method.`,addEmailFirst:`Your account has no email address. Ask an admin to add one before enabling Email OTP.`,setupTotp:`Set up Authenticator App`,setupAuthApp:`Set up Authenticator App`,setupInstructions:`Scan the QR code below with your authenticator app, then confirm with a code.`,manualEntry:`Can't scan? Enter this secret manually:`,scannedContinue:`I've scanned the code — continue`,enterCodeToConfirm:`Enter the 6-digit code from your authenticator app to confirm setup.`,activate:`Activate`,disableTotp:`Disable Authenticator`,disableConfirmHint:`Enter a valid TOTP code or a backup code to disable the authenticator.`,totpDisabled:`Authenticator app disabled.`,emailOtpEnabled:`Email OTP enabled.`,emailOtpDisabled:`Email OTP disabled.`,smtpRequired:`Please configure and test SMTP settings first.`,invalidCode:`Invalid code. Please try again.`,enableEmailOtp:`Enable Email OTP`,disableEmailOtp:`Disable Email OTP`,emailSetupEnterCode:`A verification code has been sent to your email address. Enter it below to confirm you own this inbox.`,verifyAndEnable:`Verify & Enable`,emailDisablePasswordHint:`Enter your account password to confirm disabling email OTP.`,passwordPlaceholder:`Enter your password`,backupCodesTitle:`Save your backup codes`,backupCodesWarning:`Save these codes somewhere safe. Each code can only be used once and they will not be shown again.`,backupCodesRemaining:`{{count}} backup codes remaining`,savedCodes:`I've saved my codes`,regenBackup:`Regenerate Backup Codes`,regenBackupHint:`Enter your current TOTP code to generate 10 new backup codes. All existing backup codes will be invalidated.`,newBackupCodes:`New backup codes`,linkedAccounts:`Linked SSO Accounts`,linkedAccountsDesc:`These external identity providers are linked to your account.`,oidcUnlinked:`Account unlinked.`},sessionPolicy:{title:`Session Policy`,description:`Maximum session lifetime for new user logins. Already-issued tokens keep their original expiry.`,preset24h:`24 hours`,preset7d:`7 days`,preset30d:`30 days`,customHoursLabel:`Custom session lifetime in hours`,hoursSuffix:`hours`,warning:`Longer sessions reduce automatic logout protection. Recommended only for trusted single-user deployments.`},oidc:{title:`SSO / OIDC Providers`,desc:`Configure OpenID Connect providers to allow single sign-on via external identity providers.`,addProvider:`Add Provider`,newProvider:`New Provider`,empty:`No OIDC providers configured yet.`,created:`Provider created.`,updated:`Provider updated.`,deleted:`Provider deleted.`,refreshIcon:`Refresh icon`,removeIcon:`Remove icon`,iconRefreshed:`Icon refreshed.`,iconRemoved:`Icon removed.`,iconFetchFailed:`Icon could not be fetched from the provider URL.`,deleteTitle:`Delete Provider`,deleteMessage:`Delete "{{name}}"? All linked user accounts will be disconnected.`,form:{name:`Display Name`,issuerUrl:`Issuer URL`,clientId:`Client ID`,clientSecret:`Client Secret`,scopes:`Scopes`,iconUrl:`Icon URL (optional)`,enabled:`Enabled`,autoCreate:`Auto-create users`,autoCreateDesc:`Automatically create a local account on first login.`,autoLink:`Auto-link existing accounts`,autoLinkDesc:`Link existing local accounts by matching email on first login.`,secretHint:`leave blank to keep current`,secretPlaceholder:`new secret`,emailClaim:`Email Claim`,emailClaimDesc:`JWT claim used as email identity. Use 'preferred_username' or 'upn' for Azure Entra ID (which does not send email_verified). Only use trusted claim names.`,emailClaimPlaceholder:`email`,emailClaimCustomClaimAutoLinkWarning:`Custom claims are safe for auto-link only when the value is tenant-administered (e.g. Azure Entra ID upn / preferred_username). Do not enable auto-link if your IdP allows users to self-assert this claim.`,requireEmailVerified:`Require email verified`,requireEmailVerifiedDesc:`Only accept the email claim when the provider marks it as verified.`,requireEmailVerifiedWarning:`Warning: email will be accepted even without verification. Use only with trusted providers.`,requireEmailVerifiedAutoLink:`Disable auto-link first to change this setting.`,defaultGroup:`Default Group`,defaultGroupDesc:`Group assigned to auto-created users. Falls back to Viewers if not set.`,defaultGroupViewersFallback:`Viewers (default)`,autologin:`Autologin`,autologinDesc:`Redirect unauthenticated visitors straight to this provider. Only one provider can carry this flag.`}},encryption:{title:`MFA Encryption Status`,enabledFromEnv:`At-rest encryption enabled (key from MFA_ENCRYPTION_KEY environment variable)`,enabledFromFile:`At-rest encryption enabled (key loaded from data directory)`,enabledGenerated:`At-rest encryption enabled with auto-generated key`,notConfigured:`At-rest encryption not configured`,notConfiguredDesc:`TOTP secrets and OIDC client_secrets are stored in plaintext. Set MFA_ENCRYPTION_KEY or restart Bambuddy with a writable data directory to auto-generate one.`,allEncrypted:`All MFA secrets are encrypted at rest.`,legacyRowsLabel:`Legacy plaintext rows`,encryptedRowsLabel:`Encrypted rows`,legacyRowsWarning:`{{count}} legacy plaintext row(s) detected. Re-save the OIDC provider or re-enroll the user’s authenticator app to migrate to encrypted storage.`,backupHint:`The auto-generated key is stored at DATA_DIR/.mfa_encryption_key and is included in local backup ZIPs. Keep your backups secure or set MFA_ENCRYPTION_KEY explicitly.`,decryptionBrokenTitle:`Encryption key missing`,decryptionBrokenError:`{{count}} encrypted record(s) cannot be decrypted because the encryption key is no longer available. Restore the previous MFA_ENCRYPTION_KEY or DATA_DIR/.mfa_encryption_key to recover.`,migrationErrorWarning:`{{count}} legacy row(s) failed to re-encrypt at startup. Check server logs and restart Bambuddy to retry.`},pipelineLimits:{title:`Slicer Pipeline limits`,maxCopiesLabel:`Max copies per run`,maxCopiesDesc:`Upper bound on the copies operators can request when running a pipeline. Server-side hard cap is 1000.`},pipelines:{title:`Slicer Pipelines`,subtitle:`Reusable preset bundles (printer + process + filaments + bed type). Save one from the Slice dialog and apply it with a single click on the next file.`,loading:`Loading pipelines…`,loadError:`Could not load pipelines.`,confirmDelete:`Delete this pipeline? This cannot be undone.`,staleWarning:`One or more referenced presets no longer exist. Re-save this pipeline from the Slice dialog to fix.`,empty:{title:`No pipelines yet.`,howto:`Open the Slice dialog for any file, pick your printer / process / filaments / bed type, then click "Save as pipeline". Your saved pipelines will appear here.`},field:{name:`Pipeline name`,description:`Description`,targetPrinter:`Target printer`,noTarget:`— No target —`,targetKind:`Target type`,targetKindSpecific:`Specific printer`,targetKindClass:`Printer class`,targetModelClass:`Printer model`,fanoutStrategy:`Fanout strategy`,fanout:{max_parallel:`Max parallel — distribute across any idle matching printer`,round_robin:`Round robin — cycle through eligible printers`,fill_one_first:`Fill one first — pin all copies to one printer`},fanoutShort:{max_parallel:`parallel`,round_robin:`round robin`,fill_one_first:`fill one first`}},action:{save:`Save`,cancel:`Cancel`,rename:`Rename`,delete:`Delete`},slot:{printer:`Printer`,process:`Process`,filament:`Filament`,filamentN:`Filament {{n}}`,filamentAll:`All {{n}} slots`,bed:`Bed`},group:{profiles:`Profiles`,filaments:`Filaments`},searchPlaceholder:`Search pipelines…`,filterTargetType:`Filter by target type`,filterTarget:`Filter by target`,filter:{all:`All targets`,noTarget:`No target set`,count:`{{shown}} / {{total}}`,noMatches:`No pipelines match the current filters.`},toast:{saved:`Pipeline saved`,saveFailed:`Save failed`,deleted:`Pipeline deleted`,deleteFailed:`Delete failed`},noTargetHint:`Set a target printer to run this`,noTargetWarning:`Set a target printer before running this pipeline.`,runs:{lastRun:`Last run`,status:{queued:`queued`,slicing:`slicing`,dispatching:`dispatching`,in_progress:`printing`,completed:`completed`,failed:`failed`,partial_failure:`partial failure`,cancelled:`cancelled`}}}},notification:{printStarted:{title:`Print Started`,body:`{{printer}}: {{filename}} has started printing`},printCompleted:{title:`Print Completed`,body:`{{printer}}: {{filename}} completed successfully`},printFailed:{title:`Print Failed`,body:`{{printer}}: {{filename}} has failed`},printStopped:{title:`Print Stopped`,body:`{{printer}}: {{filename}} was stopped`},printProgress:{title:`Print Progress`,body:`{{printer}}: {{filename}} is {{percent}}% complete`},printerOffline:{title:`Printer Offline`,body:`{{printer}} is offline`},printerError:{title:`Printer Error`,body:`{{printer}}: {{error}}`},filamentLow:{title:`Low Filament`,body:`{{printer}}: Filament is running low`},maintenanceDue:{title:`Maintenance Due`,body:`{{printer}}: {{items}} need attention`}},errors:{generic:`Something went wrong`,networkError:`Network error. Please check your connection.`,notFound:`Not found`,unauthorized:`Unauthorized`,serverError:`Server error`,validationError:`Please check your input`,printerConnectionFailed:`Failed to connect to printer`,saveFailed:`Failed to save changes`,deleteFailed:`Failed to delete`,loadFailed:`Failed to load data`},hmsErrors:{title:`Errors - {{name}}`,noErrors:`No errors`,viewOnWiki:`View on Bambu Lab Wiki`,mqttVerifyFailedRemedy:`Enable Developer Mode on the printer, restart the printer, then start the job again.`,unknownCode:`Unknown HMS code — see the Bambu Lab wiki for details.`,clearInstructions:`Clear errors on the printer to dismiss them here.`,clearErrors:`Clear Errors`,clearSuccess:`HMS errors cleared`,clearFailed:`Failed to clear HMS errors`,actionSuccess:`Action sent to printer`,actionFailed:`Failed to send action`,runoutExpectedSlot:`Filament ran out in {{ranOut}}. The printer is now waiting for compatible filament in {{expected}}. Insert a spool into {{expected}}, then select Retry.`,runoutExpectedSlotOnly:`The printer is waiting for compatible filament in {{expected}}. Insert a spool there, then select Retry.`,runoutSlotUnknown:`Filament ran out and the print is paused. Bambuddy could not determine which slot the printer now expects — check the printer screen for the requested slot.`,actions:{RESUME_PRINTING:`Resume Printing`,RESUME_PRINTING_DEFECTS:`Resume (defects acceptable)`,RESUME_PRINTING_PROBELM_SOLVED:`Resume (problem solved)`,STOP_PRINTING:`Stop Printing`,CHECK_ASSISTANT:`Check Assistant`,FILAMENT_EXTRUDED:`Filament Extruded, Continue`,RETRY_FILAMENT_EXTRUDED:`Not Extruded Yet, Retry`,CONTINUE:`Finished, Continue`,LOAD_VIRTUAL_TRAY:`Load Filament`,OK_BUTTON:`OK`,FILAMENT_LOAD_RESUME:`Filament Loaded, Resume`,JUMP_TO_LIVEVIEW:`View Liveview`,NO_REMINDER_NEXT_TIME:`No Reminder Next Time`,REFRESH_NOZZLE:`Recheck`,IGNORE_NO_REMINDER_NEXT_TIME:`Ignore. Don't Remind Next Time`,IGNORE_RESUME:`Ignore this and Resume`,PROBLEM_SOLVED_RESUME:`Problem Solved and Resume`,TURN_OFF_FIRE_ALARM:`Got it, Turn off the Fire Alarm.`,RETRY_PROBLEM_SOLVED:`Retry (problem solved)`,CANCLE:`Cancle`,STOP_DRYING:`Stop Drying`,PROCEED:`Proceed`,OK_JUMP_RACK:`OK`,ABORT:`Abort`,DISABLE_PURIFICATION:`Disable Purification for This Print`,DONT_REMIND_NEXT_TIME:`Don't Remind Me`,DBL_CHECK_CANCEL:`Cancel`,DBL_CHECK_DONE:`Done`,DBL_CHECK_RETRY:`Retry`,DBL_CHECK_RESUME:`Resume`,DBL_CHECK_OK:`Confirm`,REMOVE_CLOSE_BTN:`Close`}},mqttDebug:{title:`MQTT Debug Log`,searchPlaceholder:`Search topic or payload...`,noMessages:`No messages logged yet`,startLoggingHint:`Click "Start Logging" to begin capturing MQTT messages`,noMessagesMatch:`No messages match your filter`,adjustFilterHint:`Try adjusting your search or filter criteria`,incoming:`Incoming`,outgoing:`Outgoing`,loggingStopped:`Logging stopped`,loggingActive:`Logging active - messages will auto-refresh`,startLogging:`Start Logging`,stopLogging:`Stop Logging`,clearLog:`Clear Log`,topic:`Topic`,timestamp:`Timestamp`,direction:`Direction`,all:`All`},printerFiles:{title:`File Manager`,storageUsed:`Used:`,storageFree:`Free:`,filterPlaceholder:`Filter files...`,deleteButton:`Delete`,deleteFiles:`Delete {{count}} Files`,deleteFileConfirm:`Delete "{{name}}"? This cannot be undone.`,deleteFilesConfirm:`Delete {{count}} selected files? This cannot be undone.`,noFiles:`No files on printer`,loadingFiles:`Loading files...`,failedToLoad:`Failed to load files`,toast:{filesDeleted:`Deleted {{count}} file(s)`,deleteFailed:`Delete failed: {{error}}`}},confirm:{delete:`Are you sure you want to delete this?`,unsavedChanges:`You have unsaved changes. Are you sure you want to leave?`,clearQueue:`Are you sure you want to clear the queue?`},login:{title:`Bambuddy Login`,subtitle:`Sign in to your account`,username:`Username`,usernamePlaceholder:`Enter your username`,usernameOrEmail:`Username or Email`,usernameOrEmailPlaceholder:`Username or @ Email`,password:`Password`,passwordPlaceholder:`Enter your password`,signIn:`Sign in`,signingIn:`Logging in...`,rememberMe:`Remember Me`,forgotPassword:`Forgot your password?`,autologinFailed:`Automatic SSO sign-in failed. Pick a provider below to continue.`,localDisabledNotice:`Local sign-in is disabled. Use one of the SSO providers below.`,loginSuccess:`Logged in successfully`,loginFailed:`Login failed`,enterCredentials:`Please enter username and password`,enterEmail:`Please enter your email address`,oidcLoginFailed:`OIDC login failed`,oidcErrors:{providerError:`The identity provider returned an error`,missingParameters:`OIDC callback is missing required parameters`,invalidState:`OIDC state is invalid or has already been used`,stateExpired:`OIDC login session expired — please try again`,providerNotFound:`OIDC provider not found`,discoveryFailed:`Failed to fetch OIDC discovery document`,invalidDiscovery:`OIDC discovery document is invalid`,networkError:`Network error during OIDC token exchange`,badResponse:`Unexpected response during OIDC token exchange`,noIdToken:`OIDC provider did not return an ID token`,validationFailed:`OIDC token validation failed`,nonceMismatch:`OIDC nonce mismatch — possible replay attack`,missingSubClaim:`OIDC token is missing the sub claim`,noLinkedAccount:`No local account is linked to this OIDC identity`,accountInactive:`Your account is inactive`,userResolutionFailed:`Failed to resolve your account`,internalError:`An internal error occurred during OIDC login`,tokenExchangeFailed:`OIDC token exchange failed`},forgotPasswordTitle:`Forgot Password`,forgotPasswordMessage:`If you've forgotten your password, please contact your system administrator to reset it.`,forgotPasswordEmailMessage:`Enter your email address and we'll send you a new password.`,emailAddress:`Email Address`,emailPlaceholder:`your.email@example.com`,cancel:`Cancel`,sending:`Sending...`,sendResetEmail:`Send Reset Email`,howToReset:`How to reset your password:`,resetStep1:`Contact your Bambuddy administrator`,resetStep2:`Ask them to reset your password in User Management`,resetStep3:`They can set a new temporary password for you`,resetStep4:`Log in with the new password and change it in Settings`,gotIt:`Got it`,resetPassword:{title:`Set New Password`,subtitle:`Enter and confirm your new password below.`,newPassword:`New Password`,newPasswordPlaceholder:`At least 8 characters`,confirmPassword:`Confirm Password`,confirmPasswordPlaceholder:`Repeat new password`,saving:`Saving…`,submit:`Set New Password`,backToLogin:`Back to login`,passwordsDoNotMatch:`Passwords do not match`,passwordTooShort:`Password must be at least 8 characters`,resetFailed:`Password reset failed. The link may have expired.`},twoFA:{title:`Two-Factor Authentication`,subtitle:`Your account is protected with 2FA. Enter the verification code below.`,methodAuthenticator:`Authenticator App`,methodEmail:`Email Code`,methodBackup:`Backup Code`,instructionsTotp:`Open your authenticator app and enter the 6-digit code for Bambuddy.`,instructionsEmail:`A 6-digit code has been sent to your email address. It expires in 10 minutes.`,instructionsEmailNotSent:`Click the button below to receive a verification code via email.`,instructionsBackup:`Enter one of your 8-character backup recovery codes. Each code can only be used once.`,sendCodeButton:`Send Code via Email`,sendingCode:`Sending...`,resendCode:`Resend code`,codeLabel:`Verification Code`,backupCodeLabel:`Backup Code`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`Verify`,verifyingButton:`Verifying...`,backToLogin:`← Back to login`,orContinueWith:`or continue with`,signInWith:`Sign in with {{provider}}`,enterCode:`Please enter the verification code`,sendCodeFailed:`Failed to send verification code`,invalidCode:`Invalid code. Please try again.`}},setup:{title:`Bambuddy Setup`,subtitle:`Configure authentication for your Bambuddy instance`,enableAuth:`Enable Authentication`,adminAccount:`Admin Account`,adminAccountDesc:`If admin users already exist, authentication will be enabled using the existing admin accounts. Leave the fields below empty to use existing admins, or enter new credentials to create a new admin user.`,adminUsername:`Admin Username`,adminPassword:`Admin Password`,optionalIfAdminExists:`(optional if admin users exist)`,adminUsernamePlaceholder:`Enter admin username (optional)`,adminPasswordPlaceholder:`Enter admin password (optional)`,confirmPassword:`Confirm Password`,confirmPasswordPlaceholder:`Confirm admin password`,settingUp:`Setting up...`,completeSetup:`Complete Setup`,toast:{authEnabledAdminCreated:`Authentication enabled and admin user created`,authEnabledExistingAdmins:`Authentication enabled using existing admin users`,setupCompleted:`Setup completed`,enterBothCredentials:`Please enter both admin username and password, or leave both empty to use existing admin users`,passwordsDoNotMatch:`Passwords do not match`,passwordTooShort:`Password must be at least 6 characters`}},changePassword:{title:`Change Password`,currentPassword:`Current Password`,currentPasswordPlaceholder:`Enter current password`,newPassword:`New Password`,newPasswordPlaceholder:`Enter new password (min 6 characters)`,confirmPassword:`Confirm New Password`,confirmPasswordPlaceholder:`Confirm new password`,passwordsDoNotMatch:`Passwords do not match`,passwordTooShort:`Password must be at least 6 characters`,changing:`Changing...`,success:`Password changed successfully`,failed:`Failed to change password`},plateAlert:{title:`Print Paused!`,message:`Objects detected on build plate. The print has been automatically paused. Please clear the plate and resume the print.`,understand:`I Understand`},camera:{title:`Camera View`,invalidPrinterId:`Invalid printer ID`,live:`Live`,snapshot:`Snapshot`,restartStream:`Restart stream`,refreshSnapshot:`Refresh snapshot`,fullscreen:`Fullscreen`,exitFullscreen:`Exit fullscreen`,connectingToCamera:`Connecting to camera...`,capturingSnapshot:`Capturing snapshot...`,connectionLost:`Connection lost`,connectionFailed:`Camera connection failed`,reconnecting:`Reconnecting in {{countdown}}s... (attempt {{attempt}}/{{max}})`,reconnectNow:`Reconnect now`,cameraUnavailable:`Camera unavailable`,cameraUnavailableDesc:`Make sure the printer is powered on and connected.`,noCamera:`No camera available`,retry:`Retry`,cameraStream:`Camera stream`,zoomOut:`Zoom out`,zoomIn:`Zoom in`,resetZoom:`Reset zoom`,recording:`Recording`,startRecording:`Start Recording`,stopRecording:`Stop Recording`,chamberLight:`Toggle chamber light`,unavailable:`Camera unavailable`,diagnose:{button:`Diagnose`,modalTitle:`Camera diagnostic`,running:`Running diagnostic...`,runFailed:`Diagnostic could not run: {{error}}`,retry:`Run again`,stage:{tcp_reachable:`Network reachability`,first_frame:`Frame capture`,live_stream_active:`Live stream active`},summary:{all_ok:`Camera is working. The diagnostic completed all stages successfully.`,live_stream_active_healthy:`Camera is currently streaming with recent frames — no test needed.`,printer_unreachable:`Printer is not reachable. Check the IP address, network connection, and that the printer is powered on.`,camera_port_closed:`Printer is reachable but the camera port is closed. Make sure LAN-only mode and Developer Mode are enabled in the printer settings.`,no_frame:`Connected to the camera but no frames were received. Try again, or check that the camera is enabled in the printer settings.`,unknown_failure:`Camera diagnostic failed for an unknown reason. Check the support log for details.`},meta:{protocol:`Protocol`,port:`Port`,profile:`Profile`}}},groups:{title:`Group Management`,subtitle:`Manage permission groups for access control`,backToSettings:`Back to Settings`,createGroup:`Create Group`,noPermission:`You do not have permission to access this page.`,system:`System`,noDescription:`No description`,usersCount:`{{count}} users`,permissionsCount:`{{count}} permissions`,edit:`Edit`,delete:`Delete`,toast:{created:`Group created successfully`,updated:`Group updated successfully`,deleted:`Group deleted successfully`,enterGroupName:`Please enter a group name`},modal:{editGroup:`Edit Group`,createGroup:`Create Group`,cancel:`Cancel`,saving:`Saving...`,creating:`Creating...`,saveChanges:`Save Changes`},form:{groupName:`Group Name`,groupNamePlaceholder:`Enter group name`,systemGroupWarning:`System group names cannot be changed`,description:`Description`,descriptionPlaceholder:`Enter description (optional)`,permissions:`Permissions ({{count}} selected)`},deleteModal:{title:`Delete Group`,message:`Are you sure you want to delete this group? Users in this group will lose these permissions.`,confirm:`Delete Group`},editor:{title:`Edit Group`,createTitle:`Create Group`,search:`Search permissions...`,selectAll:`Select All`,clearAll:`Clear All`,permissionsSelected:`{{count}} selected`,noResults:`No permissions match your search`,websocketHint:`Required for live updates. Without it, the interface falls back to periodic polling.`}},users:{title:`User Management`,subtitle:`Manage users and their access to your Bambuddy instance`,backToSettings:`Back to Settings`,createUser:`Create User`,noPermission:`You do not have permission to access this page.`,admin:`Admin`,noGroups:`No groups`,active:`Active`,inactive:`Inactive`,edit:`Edit`,delete:`Delete`,system:`System`,noGroupsAvailable:`No groups available`,table:{username:`Username`,groups:`Groups`,status:`Status`,actions:`Actions`},toast:{created:`User created successfully`,updated:`User updated successfully`,deleted:`User deleted successfully`,fillRequired:`Please fill in all required fields`,passwordsDoNotMatch:`Passwords do not match`,passwordTooShort:`Password must be at least 6 characters`,ldapProvisioned:`Provisioned LDAP user "{{username}}"`},modal:{createUser:`Create User`,editUser:`Edit User`,cancel:`Cancel`,creating:`Creating...`,saving:`Saving...`,saveChanges:`Save Changes`,advancedAuthSubtitle:`with Advanced Authentication`,tabsAriaLabel:`User source`,localTab:`Local`,ldapTab:`LDAP`,ldapSearchLabel:`Search directory`,ldapSearchPlaceholder:`Type a username, name, or email...`,ldapMinChars:`Type at least 2 characters to search`,ldapTypeToSearch:`Start typing to search the LDAP directory`,ldapSearching:`Searching directory...`,ldapNoResults:`No matching users in the directory`,ldapSearchError:`Directory search failed. Check the LDAP server status.`,ldapAlreadyProvisioned:`Already provisioned`,ldapSelectedLabel:`Selected`,ldapProvision:`Provision user`,ldapProvisioning:`Provisioning...`,ldapErrorProvision:`Provisioning failed. Check the LDAP server status and try again.`},form:{username:`Username`,usernamePlaceholder:`Enter username`,email:`Email`,emailPlaceholder:`user@example.com`,password:`Password`,passwordPlaceholder:`Enter password`,confirmPassword:`Confirm Password`,confirmPasswordPlaceholder:`Confirm password`,newPasswordPlaceholder:`Enter new password`,confirmNewPasswordPlaceholder:`Confirm new password`,leaveBlankToKeep:`leave blank to keep current`,groups:`Groups`,optional:`optional`,autoGeneratedPassword:`A secure password will be automatically generated and emailed to the user.`,passwordManagedByAdvancedAuth:`Password is managed by Advanced Authentication. Use "Reset Password" to send a new password to the user via email.`,resetPassword:`Reset Password`,resettingPassword:`Resetting Password...`},deleteModal:{title:`Delete User`,message:`Are you sure you want to delete this user? This action cannot be undone.`,confirm:`Delete User`}},streamOverlay:{title:`Stream Overlay`,invalidPrinterId:`Invalid printer ID`,cameraStream:`Camera stream`,progress:`Progress`,eta:`ETA`,printerIdle:`Printer is idle`,printerOffline:`Printer offline`,status:{printing:`Printing`,paused:`Paused`,finished:`Finished`,failed:`Failed`,idle:`Idle`,unknown:`Unknown`}},profiles:{title:`Profiles`,subtitle:`Manage your slicer presets and pressure advance calibrations`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`Local Profiles`,kprofiles:`K-Profiles`},orcaCloud:{connectedAs:`Connected as`,connectedShort:`Connected to Orca Cloud`,logout:`Disconnect`,noLogoutPermission:`You do not have permission to disconnect`,noConnectPermission:`You do not have permission to connect to Orca Cloud`,retry:`Retry`,connectButton:`Connect Orca Cloud`,connect:{title:`Connect to Orca Cloud`,description:`Sign in to your Orca Cloud account to sync your slicer profiles into Bambuddy.`},device:{title:`Approve Bambuddy in Orca Cloud`,instruction:`Open Orca Cloud and approve this code. Bambuddy connects automatically once you approve.`,codeLabel:`Your pairing code`,openButton:`Open Orca Cloud approval page`,manualHint:`Or go to {{url}} and enter the code above.`,waiting:`Waiting for you to approve…`,cancel:`Cancel`},profiles:{title:`Your Orca Cloud profiles ({{count}})`,refresh:`Refresh`,empty:`No profiles found in your Orca Cloud account yet.`},toast:{disconnected:`Disconnected from Orca Cloud`},errors:{startFailed:`Could not start Orca Cloud pairing.`,denied:`The pairing was denied in Orca Cloud.`,expired:`The pairing code expired. Click Connect to try again.`,pollFailed:`Lost the connection while waiting for approval. Please try again.`}},localProfiles:{title:`Local Profiles`,subtitle:`Import and manage slicer presets from OrcaSlicer`,import:`Import Profiles`,importDesc:`Drop .bbscfg, .bbsflmt, .orca_filament, .zip, or .json files here`,importing:`Importing...`,search:`Search local presets...`,noPresets:`No local presets yet`,noSearchResults:`No presets match your search`,badge:`Local`,edit:`Edit`,delete:`Delete`,cancel:`Cancel`,deleteConfirmTitle:`Delete Preset`,deleteConfirm:`Are you sure you want to delete this preset? This cannot be undone.`,source:`Source`,inheritsFrom:`Inherits`,filamentType:`Type`,vendor:`Vendor`,compatiblePrinters:`Printers`,nozzleTemp:`Nozzle Temp`,cost:`Cost`,density:`Density`,pressureAdvance:`Pressure Advance`,filament:`Filament`,process:`Process`,printer:`Printer`,toast:{importSuccess:`{{count}} preset(s) imported`,importSkipped:`{{count}} preset(s) skipped (duplicates)`,importError:`{{count}} error(s) during import`,deleted:`Preset deleted`,updated:`Preset updated`}},connectedAs:`Connected as`,signInExpiredTitle:`Bambu Cloud sign-in expired`,signInExpiredBody:`Bambu Lab no longer accepts the stored token. Sign in again to restore cloud profiles, MakerWorld imports and firmware checks.`,logout:`Logout`,noLogoutPermission:`You do not have permission to logout`,failedToLoad:`Failed to load profiles`,retry:`Retry`,time:{justNow:`Just now`,minsAgo:`{{count}}m ago`,hoursAgo:`{{count}}h ago`,daysAgo:`{{count}}d ago`},toast:{loggedOut:`Logged out`},login:{title:`Connect to Bambu Cloud`,subtitle:`Sync your slicer presets across devices`,email:`Email`,password:`Password`,region:`Region`,regionGlobal:`Global`,regionChina:`China`,verificationCode:`Verification Code`,totpCode:`Authenticator Code`,checkEmail:`Check your email ({{email}}) for a 6-digit code`,enterTotpHint:`Enter the 6-digit code from your authenticator app`,accessToken:`Access Token`,accessTokenHint:`Paste your Bambu Cloud access token. China-region accounts must use this path (phone-bound — email login unavailable). See the wiki for how to retrieve the token from MakerWorld cookies.`,back:`Back`,loginButton:`Login`,verifyButton:`Verify`,setTokenButton:`Set Token`,useToken:`Use access token instead`,useEmail:`Login with email instead`,toast:{loggedIn:`Logged in successfully`,codeSent:`Verification code sent to your email`,enterTotp:`Enter code from your authenticator app`,tokenSet:`Token set successfully`}},presets:{myPreset:`My preset (editable)`,duplicate:`Duplicate`,editable:`Editable`,failedToLoadDetails:`Failed to load preset details`,deleteConfirm:`Delete this preset?`,deleteWarning:`This will permanently delete "{{name}}" from Bambu Cloud. This cannot be undone.`,noDuplicatePermission:`You do not have permission to duplicate presets`,noEditPermission:`You do not have permission to edit presets`,noDeletePermission:`You do not have permission to delete presets`,types:{filament:`Filament preset`,printer:`Printer preset`,process:`Process preset`},toast:{deleted:`Preset deleted`,created:`Preset created`,updated:`Preset updated`,duplicated:`Preset duplicated`,fieldAdded:`Field "{{key}}" added`,exported:`Preset exported`},baseLabel:`Base: {{name}}`,currentLabel:`Current: {{name}}`,newPreset:`New Preset`,editPreset:`Edit Preset`,duplicatePreset:`Duplicate Preset`,createNewPreset:`Create New Preset`,customizeSettings:`Customize settings for your new preset`,compareWithBase:`Compare with base preset`,compare:`Compare`,basePreset:`Base Preset`,selectBasePreset:`Select base preset...`,presetName:`Preset Name`,myCustomPreset:`My custom preset`,inheritsFrom:`Inherits from`,dropJsonToImport:`Drop JSON to import`,tabs:{common:`Common`,allFields:`All Fields`},availableFields:`Available Fields`,searchFieldsPlaceholder:`Search fields...`,noMatchingFields:`No matching fields`,allFieldsAdded:`All fields added`,addCustomField:`Add custom field`,yourOverrides:`Your Overrides`,noOverridesYet:`No overrides yet`,clickFieldsToAdd:`Click fields on the left to add them`,saveAsTemplate:`Save as template`,jsonTip:`Tip: Drag & drop a .json file anywhere on this modal to import settings`},cloudView:{searchPlaceholder:`Search presets...`,templates:`Templates`,refresh:`Refresh`,newPreset:`New Preset`,clearFilters:`Clear filters`,compareMode:`Compare Mode`,selectAnotherPreset:`Select another {{type}} preset`,clickTwoPresets:`Click two presets of the same type to compare`,selectFirst:`1. Select first`,selectSecond:`2. Select second`,compareNow:`Compare Now`,lastSynced:`Last synced:`,showingCount:`Showing {{showing}} of {{total}} presets`,noPresetsFound:`No presets found`,columns:{filament:`Filament`,process:`Process`,printer:`Printer`},noFilamentPresets:`No filament presets`,noProcessPresets:`No process presets`,noPrinterPresets:`No printer presets`,filters:{type:`Type`,owner:`Owner`,printer:`Printer`,nozzle:`Nozzle`,filament:`Filament`,layer:`Layer`,all:`All`,myPresets:`My Presets`,builtIn:`Built-in`,process:`Process`},noTemplatesPermission:`You do not have permission to manage templates`,noRefreshPermission:`You do not have permission to refresh profiles`,noCreatePermission:`You do not have permission to create presets`},templates:{title:`Quick Templates`,noTemplates:`No templates yet`,createFirst:`Create templates from the preset editor`,typeFilter:`Type:`,deleteTitle:`Delete Template`,deleteWarning:`This action cannot be undone`,deleteConfirm:`Are you sure you want to delete "{{name}}"?`,namePlaceholder:`Template name`,descriptionPlaceholder:`Description`,settingsJson:`Settings (JSON)`,fieldsCount:`{{count}} fields`,shownInModals:`Shown in modals`,hiddenInModals:`Hidden in modals`,apply:`Apply`,toast:{deleted:`Template deleted`,updated:`Template updated`,created:`Template created`,applied:`Template applied`}}},support:{debugLoggingActive:`Debug logging is active`,manageLogs:`Manage`,collectItem7:`Printer connectivity and firmware versions`,collectItem8:`Integration status (Spoolman, MQTT, HA)`,collectItem9:`Network interfaces (subnets only)`,collectItem10:`Python package versions`,collectItem11:`Database health checks`,collectItem12:`Docker environment details`,bundleGenerating:`Generating bundle...`,bundleStepConnection:`Running printer connectivity checks`,bundleStepVirtualPrinters:`Running virtual-printer setup checks`,bundleStepLogScan:`Scanning recent logs for known issues`,bundleStepBuild:`Building the support bundle ZIP`},fileManager:{title:`File Manager`,subtitle:`Organize and manage your print files`,uploadFiles:`Upload Files`,newFolder:`New Folder`,folderName:`Folder Name`,folderNamePlaceholder:`e.g., Functional Parts`,renameFile:`Rename File`,renameFolder:`Rename Folder`,invalidFilenameChar:`The character "{{char}}" is not allowed in print filenames. The printer SD card rejects: < > : " / \\ | ? *`,moveFiles:`Move {{count}} File(s)`,rootNoFolder:`Root (No Folder)`,current:`current`,linkFolder:`Link Folder`,linkFolderDescription:`Link "{{name}}" to a project or archive for quick access.`,project:`Project`,archive:`Archive`,noProjectsFound:`No projects found`,noArchivesFound:`No archives found`,unlink:`Unlink`,link:`Link`,dragDropFiles:`Drag & drop files here`,dropFilesHere:`Drop files here`,releaseToUpload:`Release to upload`,orClickToBrowse:`or click to browse`,allFileTypesSupported:`All file types supported. ZIP files will be extracted.`,zipFilesDetected:`ZIP files detected`,zipExtractOptions:`ZIP files will be extracted. Choose how to handle folder structure:`,preserveZipStructure:`Preserve folder structure from ZIP`,createFolderFromZip:`Create folder from ZIP filename`,stlThumbnailGeneration:`STL thumbnail generation`,zipMayContainStl:`ZIP files may contain STL files. Thumbnails can be generated during extraction.`,thumbnailsCanBeGenerated:`Thumbnails can be generated for STL files. Large models may take longer to process.`,generateThumbnailsForStl:`Generate thumbnails for STL files`,threemfDetected:`3MF files detected`,threemfExtractionInfo:`Printer model, material, color, and print settings will be automatically extracted from 3MF files.`,willBeExtracted:`Will be extracted`,filesExtracted:`{{count}} files extracted`,uploadComplete:`Upload complete: {{succeeded}} succeeded`,uploadFailed:`Upload failed`,zipFilesFailed:`{{count}} files failed`,uploading:`Uploading...`,changeLink:`Change Link...`,linkTo:`Link to...`,linkToProjectOrArchive:`Link to project or archive`,generateThumbnail:`Generate Thumbnail`,generateThumbnails:`Generate Thumbnails`,generateThumbnailsForMissing:`Generate thumbnails for STL files missing them`,gridView:`Grid view`,listView:`List view`,lowDiskSpaceWarning:`Low disk space warning`,lowDiskSpaceDetails:`Only {{free}} free of {{total}} total. Threshold is set to {{threshold}} GB in settings.`,files:`Files`,folders:`Folders`,size:`Size`,free:`Free`,allFiles:`All Files`,allExternal:`External`,externalIsEmpty:`No external files`,externalEmptyDescription:`Files in your linked external folders will appear here.`,wrap:`Wrap`,enableTextWrapping:`Enable text wrapping`,disableTextWrapping:`Disable text wrapping`,collapse:`Collapse`,collapseFoldersByDefault:`Collapse folders by default`,expandFoldersByDefault:`Expand folders by default`,folderSort:`Sort folders`,folderSortByName:`By name`,folderSortByActivity:`By recent activity`,dragToResizeTooltip:`Drag to resize, double-click to reset`,searchFiles:`Search files...`,searchSubfoldersHint:`Including subfolders`,readme:{truncated:`Truncated`,show:`Show README`,hide:`Hide README`,label:`README`},tags:{title:`Tags`,subtitle:`Label files for cross-cutting filtering — toys, kid-safe, PETG-only, anything.`,manage:`Tags`,manageTitle:`Manage tag catalog`,add:`New tag`,edit:`Rename tag`,name:`Name`,fileCount:`Files`,empty:`No tags yet. Create one to start labelling files.`,noMatches:`No matching tags.`,createPlaceholder:`e.g. toys, kid-safe, petg`,createButton:`Create`,nameRequired:`Name is required.`,searchPlaceholder:`Filter tags...`,created:`Tag created.`,updated:`Tag renamed.`,deleted:`Tag removed.`,saveFailed:`Could not save tag.`,deleteFailed:`Could not remove tag.`,applyFailed:`Could not apply tags.`,applyAdd:`Add tags`,applyRemove:`Remove tags`,applyAddSuccess:`Added {{count}} tag(s) across {{files}} file(s).`,applyRemoveSuccess:`Removed {{count}} tag(s) across {{files}} file(s).`,actionAdd:`Add to selected files`,actionRemove:`Remove from selected files`,tagAction:`Tag`,bulkTitle:`Tag {{count}} selected file(s)`,bulkTooltip:`Add or remove tags on every selected file.`,noPermission:`You do not have permission to tag files.`,filterLabel:`Filtering by:`,clearAll:`Clear all`,confirmDelete:`Delete tag "{{name}}"?`,confirmDeleteMessage:`This removes the tag from the catalog. Files keep their other tags.`,confirmDeleteInUseMessage:`This tag is on {{count}} file(s). Deleting removes the chip from all of them; files themselves are untouched.`,editAria:`Edit {{name}}`,deleteAria:`Delete {{name}}`},allTypes:`All types`,prints:`Prints`,ascending:`Ascending`,descending:`Descending`,showModified:`Show modified dates`,hideModified:`Hide modified dates`,lastModified:`Last modified`,lastActivity:`Last activity`,resultsCount:`{{showing}} of {{total}} files`,selectAll:`Select All`,deselectAll:`Deselect All`,selected:`{{count}} selected`,adding:`Adding...`,loadingFiles:`Loading files...`,folderIsEmpty:`Folder is empty`,noFilesYet:`No files yet`,folderEmptyDescription:`Upload files or move files into this folder to get started.`,noFilesDescription:`Upload files to start organizing your print-related files.`,noMatchingFiles:`No matching files`,noMatchingFilesDescription:`No files match your current search or filter criteria.`,clearFilters:`Clear filters`,printedCount:`Printed {{count}}x`,uploadedBy:`Uploaded By`,deleteFolder:`Delete Folder`,deleteFile:`Delete File`,deleteFilesCount:`Delete {{count}} Files`,deleteFolderConfirm:`Are you sure you want to delete this folder? All files inside will also be deleted.`,deleteFileConfirm:`Are you sure you want to delete this file?`,deleteFilesConfirm:`Are you sure you want to delete {{count}} selected files? This action cannot be undone.`,deleting:`Deleting...`,noPermissionRenameFolder:`You do not have permission to rename folders`,noPermissionLinkFolder:`You do not have permission to link folders`,noPermissionDeleteFolder:`You do not have permission to delete folders`,onlyEmptyFoldersDeletable:`You can only delete empty folders`,noPermissionPrint:`You do not have permission to print`,noPermissionAddToQueue:`You do not have permission to add to queue`,noPermissionSlice:`You do not have permission to slice files`,noPermissionDownload:`You do not have permission to download files`,noPermissionRenameFile:`You do not have permission to rename this file`,noPermissionGenerateThumbnail:`You do not have permission to generate thumbnails`,noPermissionDeleteFile:`You do not have permission to delete this file`,noPermissionCreateFolder:`You do not have permission to create folders`,noPermissionUpload:`You do not have permission to upload files`,noPermissionMoveFiles:`You do not have permission to move files`,noPermissionDeleteFiles:`You do not have permission to delete files`,linkExternal:`Link External`,linkExternalFolder:`Link External Folder`,linkExternalFolderDescription:`Mount a host directory (NAS, USB, network share) into the File Manager. Files are not copied — they are accessed directly from the original path.`,externalFolderNamePlaceholder:`e.g., NAS Prints`,externalPath:`Host Path`,externalPathHelp:`Absolute path to the directory on the Docker host. Must be bind-mounted into the container.`,readOnly:`Read Only`,readOnlyHelp:`prevents uploads and deletions`,showHiddenFiles:`Show hidden files (dotfiles)`,externalFolder:`External Folder`,scanFolder:`Scan`,toast:{folderCreated:`Folder created`,folderDeleted:`Folder deleted`,fileDeleted:`File deleted`,filesDeleted:`Deleted {{count}} files`,filesMoved:`Files moved`,folderLinked:`Folder linked`,folderUnlinked:`Folder unlinked`,externalFolderLinked:`External folder linked and scanned`,folderScanned:`Scan complete: {{added}} added, {{removed}} removed`,addedToQueue:`Added {{count}} file(s) to queue`,addedToQueuePartial:`Added {{added}} file(s), {{failed}} failed`,failedToAddToQueue:`Failed to add files: {{error}}`,fileRenamed:`File renamed`,folderRenamed:`Folder renamed`,thumbnailsGenerated:`Generated {{count}} thumbnail(s)`,thumbnailsGeneratedPartial:`Generated {{succeeded}} thumbnail(s), {{failed}} failed`,noStlMissingThumbnails:`No STL files missing thumbnails`,failedToGenerateThumbnails:`Failed to generate thumbnails: {{error}}`,thumbnailGenerated:`Thumbnail generated`,failedToGenerateThumbnail:`Failed to generate thumbnail: {{error}}`}},projects:{title:`Projects`,subtitle:`Organize and track your 3D printing projects`,newProject:`New Project`,editProject:`Edit Project`,deleteProject:`Delete Project`,projectName:`Project Name`,description:`Description`,noProjects:`No projects yet`,noProjectsFiltered:`No {{status}} projects`,noProjectsFilteredHelp:`You don't have any {{status}} projects. Projects will appear here when their status changes.`,createFirst:`Create your first project to start organizing related prints, tracking progress, and managing your builds.`,createFirstButton:`Create Your First Project`,create:`Create`,files:`Files`,prints:`Prints`,plates:`plates`,parts:`parts`,lastModified:`Last Modified`,deleteConfirm:`Are you sure you want to delete this project? Archives and queue items will be unlinked but not deleted.`,addFiles:`Add Files`,removeFile:`Remove File`,viewDetails:`View Details`,namePlaceholder:`e.g., Voron 2.4 Build`,descriptionPlaceholder:`Optional description...`,urlLabel:`URL`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`URL must start with http:// or https://`,openExternalUrl:`Open project URL`,coverImageLabel:`Cover photo`,coverImageAlt:`Project cover photo`,coverImageUpload:`Upload`,coverImageReplace:`Replace`,coverImageRemove:`Remove`,color:`Color`,targetPlates:`Target Plates`,targetPlatesPlaceholder:`e.g., 25`,targetPlatesHelp:`Number of print jobs`,targetParts:`Target Parts`,targetPartsPlaceholder:`e.g., 150`,targetPartsHelp:`Total objects needed`,targetSets:`Copies per File`,targetSetsPlaceholder:`e.g., 10`,targetSetsHelp:`Times each printable file should be printed`,tagsLabel:`Tags (comma-separated)`,tagsPlaceholder:`e.g., voron, functional, gift`,dueDate:`Due Date`,priority:`Priority`,priorityLow:`Low`,priorityNormal:`Normal`,priorityHigh:`High`,priorityUrgent:`Urgent`,statusActive:`Active`,statusCompleted:`Completed`,statusArchived:`Archived`,done:`Done`,completed:`completed`,failed:`failed`,inQueue:`in queue`,noPrintsYet:`No prints yet`,printJobs:`Print jobs (plates)`,partsPrinted:`Parts printed`,failedParts:`Failed parts`,import:`Import`,export:`Export`,importProject:`Import project`,exportAll:`Export all projects`,loading:`Loading projects...`,noEditPermission:`You do not have permission to edit projects`,noDeletePermission:`You do not have permission to delete projects`,noCreatePermission:`You do not have permission to create projects`,noImportPermission:`You do not have permission to import projects`,noExportPermission:`You do not have permission to export projects`,toast:{created:`Project created`,updated:`Project updated`,deleted:`Project deleted`,imported:`Project imported`,multipleImported:`{{count}} projects imported`,importFailed:`Import failed`,exported:`Projects exported (metadata only)`}},projectDetail:{notFound:`Project not found`,backToProjects:`Back to Projects`,export:`Export`,exportProject:`Export project`,noExportPermission:`You do not have permission to export projects`,noEditPermission:`You do not have permission to edit projects`,partOf:`Part of:`,priorityLabel:`Priority:`,noPrints:`No prints in this project yet`,status:{active:`Active`,completed:`Completed`,archived:`Archived`},priority:{low:`Low`,normal:`Normal`,high:`High`,urgent:`Urgent`},dueDate:{overdue:`Overdue`,today:`Due today`,daysLeft:`{{count}} days left`},progress:{platesProgress:`Plates Progress`,partsProgress:`Parts Progress`,setsProgress:`Complete Sets`,sets:`sets`,setsHint:`A set is complete once every printable file has reached this count`,printJobs:`print jobs`,parts:`parts`,percentComplete:`{{percent}}% complete`,remaining:`{{count}} remaining`},stats:{printJobs:`Print Jobs`,total:`total`,failed:`{{count}} failed`,partsPrinted:`{{count}} parts printed`,printTime:`Print Time`,filamentUsed:`Filament Used`},cost:{title:`Cost Tracking`,filamentCost:`Filament Cost`,energy:`Energy`,totalCost:`Total Cost`,total:`Total`,includesBom:`incl. BOM`,budget:`Budget`,remaining:`Remaining`},subProjects:{title:`Sub-projects ({{count}})`},notes:{title:`Notes`,noEditPermission:`You do not have permission to edit notes`,placeholder:`Add notes about this project...`,empty:`No notes yet. Click Edit to add notes.`},files:{title:`Files`,linkFolders:`Link folders from the File Manager`,forQuickAccess:`to this project for quick access.`,fileCount:`{{count}} file(s)`,empty:`No folders linked. Go to File Manager and link a folder to this project.`,printedCount:`Printed {{count}} time(s)`,progressTooltip:`{{done}} of {{target}} completed prints`,noFiles:`No files in this folder.`},bom:{title:`Bill of Materials`,acquired:`{{completed}}/{{total}} acquired`,showAll:`Show all`,hideDone:`Hide done`,addPart:`Add Part`,noAddPermission:`You do not have permission to add parts`,partNamePlaceholder:`Part name (e.g., M3x8 screws)`,partName:`Part name`,qty:`Qty`,price:`Price ({{currency}})`,sourcingUrlPlaceholder:`Sourcing URL (optional)`,remarksPlaceholder:`Remarks (optional)`,deletePart:`Delete Part`,deleteConfirm:`Are you sure you want to delete "{{name}}"?`,noUpdatePermission:`You do not have permission to update parts`,noEditPermission:`You do not have permission to edit parts`,noDeletePermission:`You do not have permission to delete parts`,totalCost:`Total cost:`,empty:`No parts in the bill of materials. Add hardware, electronics, or other components to track what needs to be sourced.`},timeline:{title:`Activity Timeline`,empty:`No activity yet.`},template:{saveAsTemplate:`Save as Template`,noCreatePermission:`You do not have permission to create templates`},queue:{title:`Queue`,viewAll:`View all`,printing:`{{count}} printing`,queued:`{{count}} queued`},prints:{title:`Prints ({{count}})`},toast:{projectUpdated:`Project updated`,partAdded:`Part added`,partRemoved:`Part removed`,exportFailed:`Export failed`,projectExported:`Project exported`,templateCreated:`Template created`}},system:{title:`System Information`,version:`Version`,uptime:`Uptime`,cpuUsage:`CPU Usage`,memoryUsage:`Memory Usage`,diskUsage:`Disk Usage`,networkInfo:`Network Info`,logs:`Logs`,debugMode:`Debug Mode`,enableDebug:`Enable Debug Logging`,disableDebug:`Disable Debug Logging`,downloadLogs:`Download Logs`,clearLogs:`Clear Logs`,dockerInfo:`Docker Info`,containerName:`Container Name`,imageName:`Image Name`,platform:`Platform`,architecture:`Architecture`},sponsors:{sectionTitle:`Independent & community-funded`,tagline:`Bambuddy is free and stays that way because people choose to support it. No VC, no cloud lock-in.`,viewSupporters:`View supporters`,toastPrints:`You've completed {{count}} prints with Bambuddy. Bambuddy stays free thanks to its supporters.`,toastCost:`You've tracked {{total}} in filament with Bambuddy. See who keeps the project independent.`,toastArchives:`{{count}} prints archived with Bambuddy. See who keeps it independent.`,toastAnniversary:`One year with Bambuddy! See who keeps the project independent.`,toastVersionUpdate:`Updated to v{{version}}. Bambuddy stays free thanks to its supporters.`,toastBusiness:`Running Bambuddy on {{count}} printers? There's a support plan for teams — priority fixes, invoicing, and a direct line to the maintainer.`,businessCta:`Bambuddy for business`,businessTitle:`Bambuddy for business`,businessTagline:`You're running {{count}} printers. Priority support, commercial licensing and invoicing are available for teams and print farms.`},library:{title:`Filament Library`,addFilament:`Add Filament`,editFilament:`Edit Filament`,deleteFilament:`Delete Filament`,vendor:`Vendor`,material:`Material`,color:`Color`,kFactor:`K Factor`,temperature:`Temperature`,noFilaments:`No filaments in library`,deleteConfirm:`Are you sure you want to delete this filament?`,importFromPrinter:`Import from Printer`,exportToFile:`Export to File`,runWithPipeline:{actionLabel:`Run with pipeline`,noPermission:`You do not have permission to run pipelines`,modalTitle:`Run with pipeline`,confirmTitle:`Confirm run`,confirmIntro:`Pre-flight found issues with this run`,sourceHint:`Source`,pipelineHint:`Pipeline`,targetHint:`Target`,pipelineListAria:`Available pipelines`,runAnyway:`Run anyway`,loading:`Loading…`,empty:`No pipelines saved yet. Open the Slice dialog and click "Save as pipeline" to create one.`,noTarget:`No target printer set`,noTargetMessage:`This pipeline has no target printer set. Open it in Settings to pick one.`,copies:`Copies`,copiesHint:`max {{n}}`,classTarget:`Any {{model}}`,toast:{started:`Pipeline run started`,failed:`Could not start run`},issue:{printerNotSet:`No target printer set on this pipeline.`,printerNotFound:`Target printer no longer exists.`,printerDisabled:`Target printer is disabled.`,printerOffline:`Target printer is offline.`,filamentType:`Filament slot {{slot}}: expected {{expected}}, AMS has {{actual}}`,filamentColor:`Filament slot {{slot}}: colour differs (expected {{expected}}, AMS has {{actual}})`,amsSlotMissing:`AMS slot {{slot}} not available on this printer`,filamentUnverified:`Filament slot {{slot}} comes from a cloud / standard preset and could not be statically verified.`,noClassMatches:`No printers in this install match the pipeline's target model class ({{expected}}).`,classNotSet:`Pipeline target is set to a printer class but no model was chosen.`}}},slice:{title:`Slice model`,action:`Slice`,actionAll:`Slice all {{count}} plates`,actionAllTitle:`Slice every plate into one multi-plate output (single archive). Filament selection covers every slot the project defines.`,allPlatesToggle:`Slice all {{count}} plates`,slicing:`Slicing…`,printer:`Printer profile`,process:`Process profile`,filament:`Filament profile`,filamentSlot:`Filament {{index}} ({{type}})`,selectPreset:`— Select a preset —`,loadingPresets:`Loading presets…`,analyzingPlateFilaments:`Analyzing plate filaments…`,analyzingPlateFilamentsHint:`Running a preview slice to discover which AMS slots this plate uses. Cached after — re-opening is instant.`,previewToast:`Analyzing {{name}} — {{elapsed}}`,previewWithProgress:`Analyzing {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,notUsedByPlate:`— not used by this plate`,noPresetsForSlot:`No presets available`,otherPrinters:`Other printers`,presetsLoadFailed:`Failed to load presets. Open Settings → Profiles to import them first.`,refreshPresets:`Refresh`,refreshPresetsTitle:`Refresh presets — fetch the latest cloud and bundled listings (use after deleting a preset in Bambu Studio or Bambu Handy)`,allPresetsRequired:`All presets must be selected`,useEmbedded:`Use the file's built-in settings`,useEmbeddedHint:`Slice it the way the designer set it up (walls, infill, filament) instead of the profiles above. Offered because your printer matches the file's.`,designSettings:`Keep the designer's settings`,designSettingsHint:`This file changes {{count}} print setting(s) from the stock profile.`,designSettingsSelected:`{{selected}} of {{total}} selected`,designSettingsPrinterCoupled:`printer-specific`,designSettingsPrinterCoupledHint:`Tuned for the printer this file was designed for — may be wrong or out of range on yours.`,enqueuing:`Submitting slice job…`,queued:`Queued…`,failed:`Slicing failed. Check the slicer sidecar logs.`,startedToast:`Slicing {{name}} in the background…`,queuedToast:`Queued: {{name}} — {{elapsed}}`,runningToast:`Slicing {{name}} — {{elapsed}}`,runningWithProgress:`{{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,runningWithProgressMultiPlate:`Plate {{plateIndex}} of {{plateCount}} • {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,completedToast:`Sliced {{name}}`,failedTitle:`Slicing failed`,failedToast:`Slicing {{name}} failed: {{detail}}`,tier:{local:`Imported`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`Standard`},cloud:{notAuthenticated:`Sign in to Bambu Cloud (Settings → Profiles → Bambu Cloud) to see your cloud presets.`,expired:`Bambu Cloud session expired — sign in again to refresh your cloud presets.`,unreachable:`Bambu Cloud is unreachable right now. Local and standard presets still work.`},orcaCloud:{notAuthenticated:`Sign in to Orca Cloud (Profiles → Orca Cloud) to see your Orca presets.`,expired:`Orca Cloud session expired — sign in again to refresh your Orca presets.`,unreachable:`Orca Cloud is unreachable right now. Other presets still work.`},bedType:{label:`Build plate`,auto:`Auto (use process preset)`,coolPlate:`Cool Plate`,coolPlateSuperTack:`Cool Plate SuperTack`,engineering:`Engineering Plate`,highTemp:`High Temp Plate`,texturedPEI:`Textured PEI Plate`,smoothPEI:`Smooth PEI Plate`},pipelines:{label:`Pipeline`,applyAria:`Apply pipeline`,applyPrompt:`Apply pipeline…`,empty:`No saved pipelines`,saveButton:`Save as pipeline`,saveTitle:`Save the current four-slot selection as a reusable pipeline`,namePlaceholder:`Pipeline name`,nameAria:`New pipeline name`,toast:{applied:`Applied "{{name}}"`,saved:`Pipeline saved`,saveFailed:`Save failed`}}},spoolman:{title:`Spoolman Integration`,enabled:`Spoolman Enabled`,url:`Spoolman URL`,connected:`Connected`,disconnected:`Not Connected`,testConnection:`Test Connection`,sync:`Sync`,syncing:`Syncing...`,lastSync:`Last Sync`,linkToSpoolman:`Link to Spoolman`,openInSpoolman:`Open in Spoolman`,unlinkSpool:`Unlink Spool`,unlinkConfirmTitle:`Unassign Spool?`,unlinkConfirmMessage:`This will remove the spool from this slot. The spool data itself will remain unchanged.`,selectSpool:`Select Spool`,noUnlinkedSpools:`No unassigned spools available`,linkSuccess:`Spool assigned successfully`,linkFailed:`Failed to assign spool`,unlinkSuccess:`Spool unassigned successfully`,unlinkFailed:`Failed to unassign spool`,linkedSpool:`Assigned spool`,spoolId:`Spool ID`,fillSourceLabel:`(Spoolman)`,weight:`Weight`,remaining:`Remaining`,disableWeightSync:`Disable AMS Estimated Weight Sync`,disableWeightSyncDesc:`Don't update remaining capacity from AMS estimates. Use this if you prefer Spoolman's usage tracking over AMS percentage-based estimates. New spools will still use the AMS estimate as their initial weight.`,reportPartialUsage:`Report Partial Usage for Failed Prints`,reportPartialUsageDesc:`When a print fails or is cancelled, report the estimated filament used up to that point based on layer progress.`},locations:{title:`Storage Locations`,subtitle:`Manage shelves, drawers, and other physical storage spots for your spools`,add:`Add Location`,addShort:`Add`,edit:`Edit Location`,name:`Name`,spools:`Spools`,empty:`No storage locations yet. Create your first shelf or drawer.`,manage:`Locations`,createPlaceholder:`e.g. Shelf A, Drawer 1`,nameRequired:`Location name is required`,created:`Location created`,updated:`Location updated`,deleted:`Location deleted`,saveFailed:`Failed to save location`,deleteFailed:`Failed to delete location`,deleteBlocked:`Remove all spools from this location before deleting`,confirmDelete:`Delete "{{name}}"?`,confirmDeleteMessage:`This location will be removed from the catalog. Spools must be moved first.`},inventory:{title:`Spool Inventory`,subtitle:`Manage your spools`,addToInventory:`Add to Inventory`,addToInventoryPending:`Adding...`,addToInventorySuccess:`Spool added to inventory`,addToInventoryFailed:`Failed to add spool to inventory`,unknownSpoolTitle:`New filament detected`,unknownSpoolMessage:`A spool with an unknown RFID tag was detected at {{location}}. Add it to your inventory now?`,unknownSpoolSlot:`Slot`,bulk:{selectAllVisible:`Select all visible`,selectRow:`Select row`,selectGroup:`Select group`,selectionCount:`{{count}} selected`,edit:`Edit`,printLabels:`Print labels`,resetUsage:`Reset usage`,restore:`Restore`,archive:`Archive`,delete:`Delete`,clearSelection:`Clear selection`,editTitle:`Bulk edit spools`,editSubtitle:`Applies to {{count}} selected spools. Only fields you tick get updated.`,editHint:`Type into a field to mark it for update — only ticked rows are sent. Leaving a field empty leaves the spools unchanged (clearing fields is per-spool only).`,useCustom:`Use "{{value}}"`,toggleField:`Toggle update for this field`,changeCount:`{{count}} fields will be updated.`,applyPending:`Applying...`,applyButton:`Apply to {{count}} spools`,deleteTitle:`Delete selected spools`,archiveTitle:`Archive selected spools`,restoreTitle:`Restore selected spools`,resetUsageTitle:`Reset usage on selected spools`,deleteMessage:`Permanently delete {{count}} spools? This cannot be undone.`,archiveMessage:`Archive {{count}} spools? They can be restored later.`,restoreMessage:`Restore {{count}} archived spools?`,resetUsageMessage:`Reset the "Total Consumed" counter on {{count}} spools? Remaining weight is preserved.`,updateSuccess:`{{count}} spools updated`,updateFailed:`Bulk update failed`,updatePartial:`{{ok}} spools updated, {{failed}} failed`,updateAllFailed:`All {{count}} spool updates failed — selection kept so you can retry`,deleteSuccess:`{{count}} spools deleted`,deleteFailed:`Bulk delete failed`,deletePartial:`{{ok}} spools deleted, {{failed}} failed`,deleteAllFailed:`All {{count}} spool deletions failed — selection kept so you can retry`,archiveSuccess:`{{count}} spools archived`,archiveFailed:`Bulk archive failed`,archivePartial:`{{ok}} spools archived, {{failed}} failed`,archiveAllFailed:`All {{count}} spool archives failed — selection kept so you can retry`,restoreSuccess:`{{count}} spools restored`,restoreFailed:`Bulk restore failed`,restorePartial:`{{ok}} spools restored, {{failed}} failed`,restoreAllFailed:`All {{count}} spool restores failed — selection kept so you can retry`,invalidHex:`Enter 6 hex characters (RRGGBB) or 8 (RRGGBBAA). The field will not be applied otherwise.`},spoolmanMixedContentTitle:`Spoolman can't load over HTTPS — mixed-content blocked by your browser`,spoolmanMixedContentBody:`Bambuddy is served over HTTPS (via your reverse proxy), but your Spoolman URL is still plain HTTP. Browsers block mixed content for security, so the embedded Spoolman UI can't render. Spoolman needs to be reachable over HTTPS for this to work.`,spoolmanMixedContentFixReverseProxy:`Put Spoolman behind the same reverse proxy as Bambuddy (Traefik / Nginx / Caddy) with HTTPS, then update the Spoolman URL in Settings to the new HTTPS address.`,spoolmanMixedContentFixOpenNewTab:`As a workaround, open Spoolman in a new browser tab over HTTP — mixed-content rules only apply to embedded frames, so a standalone tab still works.`,spoolmanOpenInNewTab:`Open Spoolman in a new tab`,labels:{title:`Print spool labels`,selectedCount:`{{count}} selected`,pickSpools:`Pick which spools to print labels for:`,monochrome:`Monochrome (black & white printer)`,monochromeHint:`Drops the colour swatch and widens the text`,searchPlaceholder:`Search name, brand, or #ID`,filterByMaterial:`Material:`,allMaterials:`All`,selectVisible:`Select all visible ({{count}})`,deselectVisible:`Deselect visible`,clearAll:`Clear all`,noSpoolsToShow:`No spools to show. Adjust your filter and try again.`,noMatches:`No spools match the current search or filter.`,printOne:`Print label for this spool`,printLabels:`Print labels…`,bulkTitle:`Pick spools to print labels for from the {{count}} currently shown`,noSpoolsTitle:`No spools to label`,error:`Could not generate labels: {{msg}}`,sortBy:{label:`Sort:`,id:`By ID`,color:`By colour`},templates:{amsHolderSmall:{label:`AMS holder — small (74 × 33 mm)`,hint:`Single label per page; matches the printable label from MakerWorld model 752566 (AMS Filament Label Holder).`},amsHolderLarge:{label:`AMS holder — large (75 × 55 mm)`,hint:`Single label per page; fits the cardstock-insert variant of the AMS Filament Label Holder. Roomy enough for swatch, brand, material, ID, and QR code.`},box40x30:{label:`Box label (40 × 30 mm)`,hint:`Single label per page; common DK/Brother roll size, good for filament-bag and storage-bin labels.`},box:{label:`Box label (62 × 29 mm)`,hint:`Single label per page; sized for Brother PT/QL and Dymo small labels.`},averyL7160:{label:`Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)`,hint:`EU sheet stock; 21 labels per A4 page.`},avery5160:{label:`Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)`,hint:`US sheet stock; 30 labels per Letter page.`}}},csv:{importButton:`Import CSV`,exportButton:`Export CSV`,modalTitle:`Import spools from CSV`,selectFile:`Choose a CSV file or drag it here`,dragHint:`Header: material (required), brand, subtype, color_name, rgba, …`,parsing:`Reading file…`,previewError:`Could not read the CSV file`,validCount:`{{count}} valid`,errorCount:`{{count}} error`,skippedCount:`{{count}} skipped`,colRow:`Row`,colStatus:`Status`,colColor:`Color`,colorResolved:`Color filled from catalog`,colorCrossMaterial:`Color taken from a different material — no exact match in catalog`,duplicateExisting:`A spool with this material, brand and color already exists — it will still be imported as a new spool`,spoolmanHint:`In Spoolman mode, use Spoolman's built-in CSV import/export.`,importValidRows:`Import {{count}} valid rows`,noValidRows:`No valid rows`,importing:`Importing…`,importSuccess:`{{count}} spools imported`,importError:`Import failed`,exportError:`Export failed`},addSpool:`Add Spool`,editSpool:`Edit Spool`,copySpool:`Copy Spool`,material:`Material`,selectMaterial:`Select material...`,subtype:`Subtype`,brand:`Brand`,searchBrand:`Search brand...`,useCustomBrand:`Use "{{brand}}"`,useCustomMaterial:`Use custom material: {{material}}`,suggestedOptions:`Suggested`,allOptions:`All`,colorName:`Color Name`,colorNamePlaceholder:`Jade White, Fire Red...`,color:`Color`,hexColor:`Hex Color`,pickColor:`Pick custom color`,labelWeight:`Label Weight`,coreWeight:`Empty Spool Weight`,searchSpoolWeight:`Search spool weight...`,weightUsed:`Used`,currentWeight:`Remaining Weight`,measuredWeight:`Measured Weight`,spoolName:`Spool`,costPerKg:`Cost per kg`,storageLocation:`Storage Location`,storageLocationPlaceholder:`e.g. Shelf A, Drawer 1`,openInInventory:`Open in Inventory`,measuredWeightError:`Measured weight must be between {{min}}g and {{max}}g.`,slicerFilament:`Slicer Filament`,slicerFilamentName:`Slicer Preset Name`,slicerPreset:`Slicer Preset`,searchPresets:`Search filament presets...`,selectedPreset:`Selected`,noPresetsFound:`No presets found`,tempOverrides:`Temperature Overrides`,note:`Note`,notePlaceholder:`Any additional notes about this spool...`,category:`Category`,categoryPlaceholder:`e.g. Production, Prototype, Client A`,categoryNone:`Uncategorized`,storageLocationNone:`No location set`,lowStockThresholdOverride:`Low-stock threshold (this spool)`,lowStockThresholdOverrideHelp:`Leave blank to use the global threshold ({{global}}%).`,clearRfid:`Clear RFID Tag`,rfidCleared:`RFID tag cleared`,archive:`Archive`,restore:`Restore`,noSpools:`No spools yet. Add your first spool to get started.`,noAvailableSpools:`No spools available. Add a spool to your inventory or unassign one from another slot first.`,kProfiles:`K-Profiles`,addKProfile:`Add K-Profile`,assignSpool:`Assign Spool`,unassignSpool:`Unassign`,assignSuccess:`Spool assigned and AMS slot configured`,assignPendingInsert:`Assigned. Slot will configure when you insert the spool.`,assignFailed:`Failed to assign spool`,selectSpool:`Select a spool to assign to this slot`,assigned:`Assigned`,assigning:`Assigning...`,searchSpools:`Search spools...`,showAllSpools:`Show all spools`,spoolmanSpools:`Spoolman Spools`,allMaterials:`All Materials`,filterByBrand:`Filter by brand...`,showArchived:`Show archived`,quickAdd:`Quick Add (Stock)`,quantity:`Quantity`,stock:`Stock`,configured:`Configured`,spoolsCreated:`{{count}} spools created`,spoolsPartiallyCreated:`{{created}} of {{total}} spools created (some failed)`,spoolCreated:`Spool created`,spoolUpdated:`Spool updated`,spoolDeleted:`Spool deleted`,deepLinkSpoolNotFound:`Spool not found`,deepLinkFetchFailed:`Could not load spool — try again`,spoolArchived:`Spool archived`,spoolRestored:`Spool restored`,kProfileSaveFailed:`K-profile settings could not be saved`,syncWeightSpoolNotFound:`Spool not found — it may have been deleted`,syncWeightSpoolmanUnreachable:`Spoolman is unreachable — try again later`,syncWeightFailed:`Failed to sync weight`,spoolmanUnreachable:`Spoolman is not reachable — please try again later`,deleteSpoolNotFound:`Spool not found — it may have already been deleted`,deleteFailed:`Failed to delete spool`,archiveSpoolNotFound:`Spool not found — it may have already been deleted`,archiveFailed:`Failed to archive spool`,restoreSpoolNotFound:`Spool not found — it may have already been deleted`,restoreFailed:`Failed to restore spool`,saveFailed:`Failed to save changes`,tagClearFailed:`Failed to clear tag`,deleteConfirm:`Are you sure you want to delete this spool? This cannot be undone.`,archiveConfirm:`Are you sure you want to archive this spool?`,advancedSettings:`Advanced Settings`,filamentInfoTab:`Filament Info`,paProfileTab:`PA Profile`,filamentInfo:`Filament`,additional:`Additional`,loadingPresets:`Loading cloud presets...`,cloudConnected:`Cloud connected`,cloudNotConnected:`Cloud not connected (using defaults)`,recentColors:`Recent`,searchColors:`Search colors...`,searchResults:`Search results`,allColors:`All colors`,commonColors:`Common colors`,showLess:`Show less`,showAll:`Show all`,noColorsFound:`No colors match your search`,noResults:`No matches found`,extraColorsLabel:`Extra colors`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`Paste 2 to 8 hex stops, separated by commas. Renders as a gradient.`,extraColorsInvalid:`Ignored invalid hex: {{tokens}}`,colorEffectLabel:`Effect`,colorEffect:{none:`None`,sparkle:`Sparkle`,wood:`Wood`,marble:`Marble`,glow:`Glow`,matte:`Matte`,silk:`Silk`,galaxy:`Galaxy`,rainbow:`Rainbow`,metal:`Metal`,translucent:`Translucent`,gradient:`Gradient`,dualColor:`Dual Color`,triColor:`Tri Color`,multicolor:`Multicolor`},selectMaterialFirst:`Please select a material first in the Filament Info tab.`,noPrintersConfigured:`No printers configured. Add printers to use PA profiles.`,matchingFilter:`Matching`,anyBrand:`Any brand`,anyVariant:`Any variant`,autoSelect:`Auto-select`,matches:`matches`,match:`match`,noMatches:`No matches`,connected:`Connected`,offline:`Offline`,printerOffline:`Printer is offline. Connect to view calibration profiles.`,noKProfilesMatch:`No K-profiles match the selected filament.`,leftNozzle:`Left Nozzle`,rightNozzle:`Right Nozzle`,profilesSelected:`calibration profile(s) selected`,totalInventory:`Total Inventory`,totalConsumed:`Total Consumed`,byMaterial:`By Material`,inPrinter:`In Printer`,lowStock:`Low Stock`,sinceTracking:`Since tracking started`,resetConsumedCounter:`Reset counter`,resetConsumedCounterTooltip:`Zero the consumed-grams counter for this spool. Remaining weight is not changed.`,resetConsumedCounterConfirm:`Reset this spool's consumed-grams counter to 0? Future prints will track from zero again. The spool itself, its remaining weight calculation, and your settings are not changed.`,resetAllConsumedCounters:`Reset all counters`,resetAllConsumedCountersTooltip:`Zero the consumed-grams counter on every spool. Remaining weights are not changed.`,resetAllConsumedCountersConfirm:`Reset the consumed-grams counter to 0 on all {{count}} spools (archived ones included)? This clears the "Total Consumed" stat so future prints track from zero. Spools and remaining weights are not changed.`,consumedCounterReset:`Counter reset`,allConsumedCountersReset:`Counter reset for {{count}} spool(s)`,resetConsumedCounterFailed:`Failed to reset counter`,loadedInAms:`Loaded in AMS/Ext`,remaining:`Remaining`,weightCheck:`Weight Check`,lastWeighed:`Last weighed`,neverWeighed:`Never weighed`,search:`Search spools...`,showing:`Showing`,to:`to`,of:`of`,show:`Show`,spools:`spools`,spool:`spool`,page:`Page`,noSpoolsMatch:`No results found`,noSpoolsMatchDesc:`Try adjusting your search or filters to find what you're looking for.`,active:`Active`,archived:`Archived`,all:`All`,used:`Used`,new:`New`,clearFilters:`Clear filters`,table:`Table`,cards:`Cards`,net:`Net`,groupSimilar:`Group`,groupedSpools:`{{count}} identical spools`,groupedRows:`rows`,columns:`Columns`,configureColumns:`Configure Columns`,configureColumnsDesc:`Drag to reorder columns or use arrows. Toggle visibility with the eye icon.`,visible:`visible`,reset:`Reset`,cancel:`Cancel`,applyChanges:`Apply Changes`,moveUp:`Move up`,moveDown:`Move down`,hideColumn:`Hide column`,showColumn:`Show column`,linkToSpool:`Link to Spool`,tagLinked:`Tag linked to spool`,tagLinkFailed:`Failed to link tag`,tagAlreadyLinked:`Tag already linked to another spool`,unknownTag:`Unknown RFID tag detected`,usageHistory:`Usage History`,noUsageHistory:`No usage recorded yet`,printName:`Print Name`,weightConsumed:`Weight Consumed`,clearHistory:`Clear`,historyCleared:`Usage history cleared`,fillSourceLabel:`(Inv)`,lowStockThresholdError:`Threshold must be between 0.1 and 99.9`,assignMismatchTitle:`Material mismatch`,assignMismatchMessage:`The selected spool material "{{spoolMaterial}}" does not match the tray material "{{trayMaterial}}" for {{location}}. Assign anyway?`,assignMismatchConfirm:`Assign Anyway`,assignPartialMismatchMessage:`The spool material "{{spoolMaterial}}" is similar to but not exactly matching "{{trayMaterial}}" in {{location}}. Do you want to proceed?`,assignProfileMismatchMessage:`The spool profile "{{spoolProfile}}" does not match the tray profile "{{trayProfile}}" in {{location}}. Do you want to proceed?`,assignReconfigureNote:`The AMS slot will be reconfigured to use the spool's profile.`,spoolmanFilamentCatalog:`Spoolman Filament Catalog`,pickFromSpoolmanCatalog:`Pick from Spoolman catalog…`,spoolmanFilamentSelected:`Filament selected from Spoolman catalog`,spoolmanFilamentUnlinked:`Filament catalog link cleared`,noSpoolmanFilaments:`No filaments found in Spoolman catalog`,spoolmanFilamentColorSwatch:`Filament color`,spoolWeightManagedBySpoolman:`Empty spool weight is managed per filament type in Spoolman`,spoolmanCatalogLoadFailed:`Failed to load Spoolman filament catalog`},timelapse:{title:`Timelapse`,create:`Create Timelapse`,download:`Download`,delete:`Delete`,preview:`Preview`,frameRate:`Frame Rate`,quality:`Quality`,processing:`Processing...`,noTimelapses:`No timelapses available`},ams:{title:`AMS`,slot:`Slot`,empty:`Empty`,emptySlot:`Empty slot`,slotEmpty:`Empty`,slotUnconfigured:`?`,emptySlotReset:`No filament assigned`,unknown:`Unknown`,humidity:`Humidity`,temperature:`Temperature`,filamentType:`Filament Type`,filamentColor:`Color`,remaining:`Remaining`,history:`AMS History`,noHistory:`No history available`,configureSlot:`Configure Slot`,externalSpool:`External Spool`,profile:`Profile`,kFactor:`K Factor`,fill:`Fill`,configure:`Configure`,used:`used`,remainingUnit:`remaining`},printModal:{selectPrinter:`Select Printer`,selectPlate:`Select Plate`,filamentMapping:`Filament Mapping`,plateN:`Plate {{n}}`,plateFilamentsUnreadable:`The filaments of a selected plate could not be read, so it can't be mapped. Deselect it to queue the others.`,totalCost:`Total cost:`,slotRemainingShort:` - {{grams}}g left`,printSettings:`Print Settings`,bedLeveling:`Bed Leveling`,flowCalibration:`Flow Calibration`,vibrationCalibration:`Vibration Calibration`,layerInspection:`First Layer Inspection`,timelapse:`Timelapse`,cancel:`Cancel`,noPrintersAvailable:`No printers available`,printerBusy:`Printer is busy`,printerOffline:`Printer is offline`,sameTypeDifferentColor:`Same type, different color`,filamentTypeNotLoaded:`Filament type not loaded`,whenToPrint:`When to print`,asap:`ASAP`,queue:`Queue`,schedule:`Schedule`,dateTime:`Date & Time`,invalidDateTime:`Please enter a valid date and time`,openCalendar:`Open calendar`,requireManualStart:`Require manual start`,requirePreviousSuccess:`Only start if previous print succeeded`,autoOffAfter:`Power off printer when done`,helpAsap:`Print will be added to the top of the queue and start as soon as an eligible printer is idle.`,helpSchedule:`Print will start at the scheduled time if the printer is idle. If busy, it will wait until the printer becomes available.`,helpQueue:`Print will be added to the back of the queue.`,leftNozzle:`L`,rightNozzle:`R`,leftNozzleTooltip:`Left nozzle`,rightNozzleTooltip:`Right nozzle`,filamentOverride:`Filament Override`,filamentOverrideHint:`Optionally override filaments for model-based assignment. The scheduler will match against your selected filaments instead of the original 3MF values.`,originalFilament:`Original`,overrideWith:`Override with`,resetToOriginal:`Reset to original`,insufficientFilamentTitle:`Not enough filament`,waitingForAmsStatus:`Waiting for AMS status from {{printer}}…`,insufficientFilamentMessage:`Some assigned spools have less filament remaining than this print needs:`,insufficientFilamentLine:`{{printer}} - {{slot}}: needs {{required}}g, remaining {{remaining}}g`,printAnyway:`Print anyway`,forceColorMatch:`Force color match`,staggerPrinterStarts:`Stagger printer starts`,staggerGroupSize:`Group size`,staggerInterval:`Interval (min)`,staggerPreview:`{{printers}} printers → {{groups}} groups of {{size}}, starting every {{interval}} min`,staggerLastGroup:`last group: {{count}}`,staggerTotal:`total: {{minutes}} min`,staggerToPrinters:`Stagger to {{count}} printers`,gcodeInjection:`Inject auto-print G-code`},backup:{includesEncryptionKey:`Local backups include the MFA encryption key file (DATA_DIR/.mfa_encryption_key) so a backup ZIP is self-contained. Treat the ZIP as sensitive — anyone with the file can decrypt the OIDC client secrets and TOTP secrets stored inside.`,title:`Backup & Restore`,createBackup:`Create Backup`,restoreBackup:`Restore Backup`,restoreDescription:`Replace all data from a backup file`,downloadBackup:`Download Backup`,uploadBackup:`Upload Backup`,lastBackup:`Last Backup`,autoBackup:`Auto Backup`,backupNow:`Backup Now`,restoreWarning:`Warning: Restoring a backup will overwrite all current data.`,includeArchives:`Include Archives`,includeSettings:`Include Settings`,includeProfiles:`Include Profiles`,backupSuccess:`Backup created successfully`,restoreSuccess:`Backup restored successfully`,backupFailed:`Backup failed`,restoreFailed:`Restore failed`,restoreNote:`Virtual Printer will be stopped during restore`,githubBackup:`Git Backup`,enabled:`Enabled`,cloudLoginRequired:`Bambu Cloud login required. Sign in under Profiles → Cloud Profiles to enable GitHub backup.`,cloudLoginRequiredShort:`Cloud login required`,githubDescription:`Automatically sync your profiles to a private GitHub repository for backup and version history.`,repoIsPrivate:`Repository is private — safe to back up to.`,repoIsPublicWarning:`Repository is PUBLIC. Bambuddy backups include MQTT credentials, Home Assistant tokens, Prometheus tokens, your Bambu Cloud email, and printer access codes via K-profiles. Saving is blocked until you make the repository private in your provider's settings.`,repoVisibilityUnknown:`Could not determine repository visibility. Bambuddy refuses to back up to anything not confirmed private; saving will be blocked.`,repositoryUrl:`Repository URL`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`Allow insecure HTTP`,allowInsecureHttpHint:`Enable for self-hosted instances on private networks without TLS`,personalAccessToken:`Personal Access Token`,tokenSaved:`(saved)`,enterNewToken:`Enter new token to update`,tokenHint:`Fine-grained token with Contents read/write permission`,branch:`Branch`,provider:`Git Provider`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`Manual only`,hourly:`Hourly`,daily:`Daily`,weekly:`Weekly`,includeInBackup:`Include in backup`,kProfiles:`K-Profiles`,kProfilesDescription:`Pressure advance calibration from connected printers`,noPrintersConnected:`No printers connected`,printersConnected:`{{connected}}/{{total}} connected`,cloudProfiles:`Cloud Profiles`,cloudProfilesDescription:`Filament, printer, and process presets from Bambu Cloud`,appSettings:`App Settings`,appSettingsDescription:`Bambuddy configuration (complete database)`,spoolInventory:`Spool Inventory`,spoolInventoryDescription:`Filament spools, usage history, and cost tracking`,printArchives:`Print Archives`,printArchivesDescription:`Print history metadata (no gcode/3MF files)`,lastBackupAt:`Last backup:`,noBackupsYet:`No backups yet`,next:`Next:`,startingBackup:`Starting backup...`,test:`Test`,enableBackup:`Enable Backup`,testConnection:`Test Connection`,enterRepoUrl:`Enter repository URL`,enterRepoAndToken:`Enter repository URL and access token`,repoRequired:`Repository URL is required`,tokenRequired:`Access token is required`,githubBackupEnabled:`GitHub backup enabled`,tokenUpdated:`Token updated`,settingsSaved:`Settings saved`,failedToSave:`Failed to save: {{message}}`,backupCompleteFiles:`Backup complete - {{count}} files updated`,backupSkippedNoChanges:`Backup skipped - no changes`,backupFailed2:`Backup failed: {{message}}`,clearedLogs:`Cleared {{count}} logs`,failedToClearLogs:`Failed to clear logs: {{message}}`,history:`History`,clear:`Clear`,date:`Date`,status:`Status`,commit:`Commit`,localBackup:`Local Backup`,localBackupDescription:`Create a complete backup of your Bambuddy data including the database, archives, uploads, and all files.`,downloadBackupLabel:`Download Backup`,completeBackupZip:`Complete backup: database + all files (ZIP)`,download:`Download`,preparingBackup:`Preparing backup...`,creatingArchive:`Creating backup archive... This may take a while for large archives.`,downloadingFile:`Downloading backup file...`,backupDownloaded:`Backup downloaded successfully`,failedToCreateBackup:`Failed to create backup: {{message}}`,restore:`Restore`,restoreReplacesAll:`Restore replaces all data.`,restoreReplacesAllDetail:`Your current database and files will be completely replaced. A restart is required after restore.`,restoreConfirmTitle:`Restore Backup`,restoreConfirmMessage:`Are you sure you want to restore from "{{filename}}"? This will completely replace your current database and all files. The application will need to be restarted after restore.`,restoreConfirmButton:`Restore Backup`,uploadingFile:`Uploading backup file...`,backupRestoredRestart:`Backup restored. Please restart Bambuddy.`,failedToRestore:`Failed to restore backup. Please check the file format.`,reloadNow:`Reload Now`,creatingBackup:`Creating Backup`,restoringBackup:`Restoring Backup`,preparing:`Preparing...`,processing:`Processing...`,doNotClosePage:`Please do not close this page or navigate away. This operation may take several minutes for large backups.`,restoring:`Restoring...`,restoreComplete:`Restore Complete`,restoreFailed2:`Restore Failed`,importSettings:`Import settings from a backup file`,pleaseWaitRestoring:`Please wait while your data is being restored`,selectBackupFile:`Click to select backup file (.json or .zip)`,duplicateHandling:`How duplicate handling works:`,matchPrinters:`Printers`,matchPrintersBy:`matched by serial number`,matchSmartPlugs:`Smart Plugs`,matchSmartPlugsBy:`matched by IP address`,matchNotificationProviders:`Notification Providers`,matchNotificationProvidersBy:`matched by name`,matchFilaments:`Filaments`,matchFilamentsBy:`matched by name + type + brand`,matchArchives:`Archives`,matchArchivesBy:`matched by content hash (always skipped)`,matchPendingUploads:`Pending Uploads`,matchPendingUploadsBy:`matched by filename`,matchSettingsTemplates:`Settings & Templates`,matchSettingsTemplatesBy:`always overwritten`,replaceExisting:`Replace existing data`,keepExisting:`Keep existing data`,overwriteDescription:`Overwrite items that already exist with backup data`,keepDescription:`Only restore items that don't already exist`,overwriteCaution:`Caution:`,overwriteWarning:`Overwriting will replace your current configurations with data from the backup. Printer access codes are never overwritten for security.`,cancel:`Cancel`,processingBackup:`Processing backup file...`,itemsRestored:`Items Restored`,itemsSkipped:`Items Skipped`,restored:`Restored`,skippedAlreadyExist:`Skipped (already exist)`,filesCategory:`Files (3MF, thumbnails, etc.)`,andMore:`...and {{count}} more`,newApiKeysGenerated:`New API Keys Generated`,keysShownOnce:`These keys are only shown once. Copy them now!`,copy:`Copy`,noDataFound:`No data was found to restore in the backup file.`,close:`Close`,scheduledBackup:`Scheduled Backups`,scheduledBackupDescription:`Automatically create backup snapshots on a schedule. Output directory can be mounted to a NAS or external storage.`,frequency:`Frequency`,backupTime:`Time`,retention:`Retention`,retentionDescription:`Number of backups to keep`,outputPath:`Output Path`,outputPathPlaceholder:`Default: {{path}}`,outputPathDescription:`Leave empty for default location`,runNow:`Run Now`,backupFiles:`Backup Files`,noScheduledBackups:`No backups yet`,deleteBackup:`Delete`,deleteBackupConfirm:`Delete this backup file?`,backupRunning:`Backup in progress...`,scheduledBackupComplete:`Backup completed successfully`,scheduledBackupFailed:`Backup failed`,nextBackup:`Next backup`,backupSize:`Size`,localTimeHint:`Local time ({{tz}})`,defaultPathLabel:`Default:`,pathCheck:{title:`Bambuddy cannot write to this directory`,howToFix:`How to fix:`,sandboxed:`The Bambuddy service cannot write to {{path}}. Its systemd unit runs with ProtectSystem=strict, which makes every directory outside the install, data and log directories read-only for the service - even one you can write to from your own shell.`,read_only:`{{path}} is on a read-only filesystem.`,permission_denied:`Bambuddy is not allowed to write to {{path}}. Check the directory owner and permissions.`,no_space:`The filesystem holding {{path}} is full.`,not_a_directory:`{{path}} exists but is not a directory.`,missing:`{{path}} does not exist and could not be created.`,error:`Bambuddy cannot write to {{path}}.`,ephemeralTitle:`These backups will not survive a container restart`,container_ephemeral:`{{path}} is inside the Bambuddy container, not on the host. Backups written there are lost when the container is recreated. Mount the directory from the host:`},categories:{settings:`Settings`,notification_providers:`Notification Providers`,notification_templates:`Notification Templates`,smart_plugs:`Smart Plugs`,printers:`Printers`,filaments:`Filaments`,maintenance_types:`Maintenance Types`,archives:`Archives`,projects:`Projects`,pending_uploads:`Pending Uploads`,external_links:`External Links`,api_keys:`API Keys`}},tags:{title:`Tags`,addTag:`Add Tag`,editTag:`Edit Tag`,deleteTag:`Delete Tag`,tagName:`Tag Name`,tagColor:`Tag Color`,noTags:`No tags`,deleteConfirm:`Are you sure you want to delete this tag?`,manageTags:`Manage Tags`},uploadModal:{title:`Upload 3MF Files`,dragDrop:`Drag & drop .3mf files here`,or:`or`,browseFiles:`Browse Files`,extractionInfo:`The printer model will be automatically extracted from the 3MF file metadata.`,uploaded:`uploaded`,failed:`failed`,uploading:`Uploading...`,upload:`Upload`,uploadFailed:`Upload failed`},editArchive:{title:`Edit Archive`,name:`Name`,namePlaceholder:`Print name`,printer:`Printer`,noPrinter:`No printer`,project:`Project`,noProject:`No project`,itemsPrinted:`Items Printed`,itemsPrintedHelp:`Number of items produced in this print job`,notes:`Notes`,notesPlaceholder:`Add notes about this print...`,externalLink:`External Link`,externalLinkPlaceholder:`https://printables.com/model/...`,externalLinkHelp:`Link to Printables, Thingiverse, or other source`,tags:`Tags`,tagsPlaceholder:`Add tags...`,addMoreTags:`Add more tags...`,matchingTags:`Matching "{{query}}"`,existingTags:`Existing tags`,clickToAdd:`(click to add)`,status:`Status`,failureReason:`Failure Reason`,selectReason:`Select reason...`,photos:`Photos of Printed Result`,photosHelp:`Click + to add photos of your printed result`,printResult:`Print result`,saving:`Saving...`,failureReasons:{adhesionFailure:`Adhesion failure`,spaghettiDetached:`Spaghetti / Detached`,layerShift:`Layer shift`,cloggedNozzle:`Clogged nozzle`,filamentRunout:`Filament runout`,warping:`Warping`,stringing:`Stringing`,underExtrusion:`Under-extrusion`,powerFailure:`Power failure`,userCancelled:`User cancelled`,other:`Other`},statuses:{completed:`Completed`,failed:`Failed`,aborted:`Cancelled`,printing:`Printing`}},kProfiles:{title:`K-Profiles`,noPrintersConfigured:`No Printers Configured`,addPrinterInSettings:`Add a printer in Settings to manage K-profiles`,noActivePrinters:`No Active Printers`,enablePrinterConnection:`Enable a printer connection to view its K-profiles`,loadingProfiles:`Loading K-Profiles...`,printerOffline:`Printer Offline`,printerOfflineDesc:`The selected printer is not connected. Power it on to view K-profiles.`,noMatchingProfiles:`No Matching Profiles`,noMatchingProfilesDesc:`No profiles match your search criteria`,noKProfiles:`No K-Profiles`,noKProfilesDesc:`No pressure advance profiles found for {{diameter}}mm nozzle`,createFirstProfile:`Create First Profile`,printer:`Printer`,nozzle:`Nozzle`,refresh:`Refresh`,addProfile:`Add Profile`,export:`Export`,import:`Import`,select:`Select`,selectAll:`Select All`,delete:`Delete`,searchPlaceholder:`Search by name or filament...`,allExtruders:`All Extruders`,leftOnly:`Left Only`,rightOnly:`Right Only`,allFlow:`All Flow`,hfOnly:`HF Only`,sOnly:`S Only`,sortName:`Sort: Name`,sortKValue:`Sort: K-Value`,sortFilament:`Sort: Filament`,leftExtruder:`Left Extruder`,rightExtruder:`Right Extruder`,modal:{addTitle:`Add K-Profile`,editTitle:`Edit K-Profile`,profileName:`Profile Name`,profileNamePlaceholder:`My PLA Profile`,kValue:`K-Value`,kValuePlaceholder:`0.020`,kValueHelp:`Typical range: 0.01 - 0.06 for PLA, 0.02 - 0.10 for PETG`,filament:`Filament`,selectFilament:`Select filament...`,noFilamentsHelp:`No filaments found. Create a K-profile in Bambu Studio first.`,flowType:`Flow Type`,highFlow:`High Flow`,standard:`Standard`,nozzleSize:`Nozzle Size`,extruder:`Extruder`,extruders:`Extruders`,left:`Left`,right:`Right`,notes:`Notes (stored locally)`,notesPlaceholder:`Add notes about this profile...`,notesHelp:`Notes are saved in Bambuddy, not on the printer`,syncing:`Syncing with printer...`,savingExtruder:`Saving to extruder {{current}}/{{total}}...`,pleaseWait:`Please wait`},deleteConfirm:{title:`Delete Profile`,cannotUndo:`This cannot be undone`,message:`Are you sure you want to delete "{{name}}" from the printer?`},bulkDelete:{title:`Delete Profiles`,cannotUndo:`This cannot be undone`,message:`Are you sure you want to delete {{count}} selected profiles from the printer?`},toast:{profileSaved:`K-profile saved`,profilesSaved:`K-profile saved to {{count}} extruders`,selectAtLeastOneExtruder:`Please select at least one extruder`,profileDeleted:`K-profile deleted`,profilesDeleted:`Deleted {{count}} profiles`,exportedProfiles:`Exported {{count}} profiles`,importedProfiles:`Imported {{count}} of {{total}} profiles`,noProfilesToExport:`No profiles to export`,invalidFileFormat:`Invalid file format`,failedToParseImport:`Failed to parse import file`,failedToSaveBatch:`Failed to save K-profiles`,noteSaved:`Note saved`,failedToSaveNote:`Failed to save note`},permission:{noRead:`You do not have permission to refresh profiles`,noCreate:`You do not have permission to add profiles`,noUpdate:`You do not have permission to update K-profiles`,noDelete:`You do not have permission to delete K-profiles`,noExport:`You do not have permission to export profiles`,noImport:`You do not have permission to import profiles`}},virtualPrinter:{title:`Virtual Printer`,running:`Running`,stopped:`Stopped`,description:{default:`Enable a virtual printer that appears in Bambu Studio and OrcaSlicer. Files sent to this printer will be archived directly without printing.`,proxy:`Enable a proxy that relays slicer traffic to a real printer, allowing remote printing over any network.`},enable:{title:`Enable Virtual Printer`,visibleInSlicer:`Visible as "Bambuddy" in slicer discovery`,proxyingTo:`Proxying to {{name}}`,notActive:`Not active`},model:{title:`Printer Model`,description:`Select which printer model to emulate.`,restartWarning:`Changing the model will restart the virtual printer`},accessCode:{title:`Access Code`,isSet:`Access code is set`,notSet:`No access code set - required to enable`,placeholder:`Enter 8-char code`,placeholderChange:`Enter new code to change`,hint:`Must be exactly 8 characters. Used by slicers to authenticate.`,charCount:`({{count}}/8)`,inheritedFromTarget:`Inherited from target`,derivedFromTargetHint:`Uses the target printer's access code. The bridge forwards slicer auth to the real printer, so the codes must match — edit the printer's access code to change this value.`,reveal:`Show access code`,hide:`Hide access code`},targetPrinter:{title:`Target Printer`,configured:`Proxy target configured`,notConfigured:`No target printer selected - required for proxy mode`,placeholder:`Select a printer...`,hint:`Select the printer to proxy slicer traffic to. The printer must be in LAN mode.`,noPrinters:`No printers configured. Add a printer first to use proxy mode.`},remoteInterface:{title:`Network Interface Override`,configured:`Interface override active`,optional:`Optional - use if auto-detected IP is wrong (e.g. multiple NICs, Docker, VPN)`,placeholder:`Auto-detect (default)...`,hint:`Override the IP address advertised via SSDP and used in the TLS certificate. Useful when Bambuddy has multiple network interfaces.`},mode:{title:`Mode`,archive:`Archive`,archiveDesc:`Archive files immediately`,review:`Review`,reviewDesc:`Review before archiving`,queue:`Queue`,queueDesc:`Archive and add to queue`,proxy:`Proxy`,proxyDesc:`Relay to real printer`},autoDispatch:{title:`Auto-dispatch`,description:`Automatically start prints when added to queue. When off, prints wait for manual dispatch.`},queueForceColorMatch:{title:`Force color match`,description:`Refuse to dispatch onto a printer that does not have the exact filament type and color loaded. Off by default — without this, the queue uses model-only matching and may pick a printer with the wrong color loaded.`},gcodeInjection:{title:`G-code injection`,description:`Apply the per-model G-code snippets configured in Settings to jobs from this VP. Off by default.`},tailscaleDisabled:{title:`Tailscale integration`,description:`Enable to mark this VP as exposed over Tailscale. Shows the host's Tailscale address so you know which IP to paste into the slicer. The CA-import step is unchanged — this toggle has no effect on certificates.`},setupRequired:{title:`Setup Required`,description:`The virtual printer feature requires additional system configuration before it will work. This includes port forwarding, firewall rules, and platform-specific settings.`,readGuide:`Read the setup guide before enabling`},archiveNameSource:{title:`Archive name source`,description:`Choose how new archives are named when files arrive via the virtual printer. "Metadata" uses the slicer-embedded Title from the 3MF (default). "Filename" uses the filename Bambu Studio sent over FTP. Note: Bambu Studio overwrites the name you type in the "send to printer" dialog with the 3MF's Title field whenever one is present, so both modes often produce the same string.`,metadata:`Metadata`,filename:`Filename`},caCert:{title:`Slicer certificate`,description:`Virtual printers use a TLS certificate signed by the Bambuddy CA. Import this CA certificate into your slicer's trust store once so it accepts the connection — no need to copy it from the command line.`,copy:`Copy`,copied:`Copied`,download:`Download`,fingerprint:`SHA-256`},howItWorks:{title:`How it works`,step1:`On the same LAN, virtual printers appear in your slicer (Bambu Studio / OrcaSlicer) automatically via discovery. From other networks, add them manually by IP address and access code.`,step2:`In Archive, Review, and Queue modes, use the "Send" button in your slicer to upload 3MF files to Bambuddy. The slicer will show "Print success" — the file is stored, not printed.`,step3:`In Proxy mode, the virtual printer relays all traffic to a real printer — prints start immediately as if connected directly.`},status:{title:`Status Details`,printerName:`Printer Name`,model:`Model`,serialNumber:`Serial Number`,mode:`Mode`,pendingFiles:`Pending Files`,targetPrinter:`Target Printer`,ftpPort:`FTP Port`,mqttPort:`MQTT Port`,ftpConnections:`FTP Connections`,mqttConnections:`MQTT Connections`},toast:{updated:`Virtual printer settings updated`,failedToUpdate:`Failed to update settings`,copyFailed:`Failed to copy — try selecting the text manually`,accessCodeRequired:`Please set an access code first`,targetPrinterRequired:`Please select a target printer first`,bindIpRequired:`Please set a bind IP first`,accessCodeEmpty:`Access code cannot be empty`,accessCodeLength:`Access code must be exactly 8 characters`,targetCodeChangedRebind:`Access code now matches the new target printer. Re-add this device in your slicer to pick up the new code.`,created:`Virtual printer created`,failedToCreate:`Failed to create virtual printer`,deleted:`Virtual printer deleted`,failedToDelete:`Failed to delete virtual printer`},list:{title:`Virtual Printers`,add:`Add`,addFirst:`Add Virtual Printer`,empty:`No virtual printers configured. Add one to get started.`},bindIp:{title:`Bind Interface`,placeholder:`Select interface...`,hint:`Network interface for this virtual printer to bind to. Must be unique per printer.`},proxy:{accessCodeHint:`In proxy mode, use your target printer's access code in the slicer. The connection is forwarded transparently to the real printer.`},addDialog:{title:`Add Virtual Printer`,name:`Name`,hint:`You can configure access code, target printer, and other settings after creating.`,create:`Create`},deleteConfirm:{title:`Delete Virtual Printer`,message:`Are you sure you want to delete "{{name}}"? This will stop all services for this printer.`}},modelViewer:{openInSlicer:`Open in Slicer`,tabs:{model:`3D Model`,gcode:`G-code Preview`},notAvailable:`not available`,notSliced:`not sliced`,plates:`Plates`,allPlates:`All Plates`,plateNumber:`Plate {{number}}`,plateCount:`{{count}} plate`,plateCount_other:`{{count}} plates`,objectCount:`{{count}} object`,objectCount_other:`{{count}} objects`,filamentCount:`{{count}} filament`,filamentCount_other:`{{count}} filaments`,eta:`ETA {{minutes}} min`,noPreview:`No preview available for this file`,pagination:{pageOf:`Page {{current}} of {{total}}`,prev:`Prev`,next:`Next`},errors:{failedToLoad:`Failed to load file`,noMeshes:`No meshes found in 3MF file`,unsupportedFormat:`Unsupported file format`}},maintenanceDescriptions:{lubricateCarbonRods:`Apply lubricant to carbon rods for smooth motion`,lubricateRails:`Apply lubricant to linear rails for smooth motion`,cleanNozzle:`Clean hotend and nozzle to prevent clogs`,checkBelts:`Verify belt tension for accurate prints`,cleanBuildPlate:`Clean build plate for better adhesion`,checkExtruder:`Inspect extruder gears for wear`,checkCooling:`Ensure cooling fans are working properly`,generalInspection:`General printer inspection`,cleanCarbonRods:`Clean carbon rods to reduce friction`,lubricateSteelRods:`Apply lubricant to steel rods for smooth motion`,cleanSteelRods:`Clean steel rods to reduce friction`,cleanLinearRails:`Wipe linear rails to remove dust and debris`,checkPtfeTube:`Inspect PTFE tube for wear or damage`,replaceHepaFilter:`Replace HEPA filter for air quality`,replaceCarbonFilter:`Replace activated carbon filter`,lubricateLeftNozzleRail:`Lubricate left nozzle rail (H2 series)`},smartPlugs:{offline:`Offline`,admin:`Admin`,openPlugAdminPage:`Open plug admin page`,deleteSmartPlug:`Delete Smart Plug`,turnOnSmartPlug:`Turn On Smart Plug`,turnOffSmartPlug:`Turn Off Smart Plug`,turnOn:`Turn On`,turnOff:`Turn Off`,addSmartPlug:{scanningNetwork:`Scanning network...`,chooseEntity:`Choose an entity...`,connectionFailed:`Connection failed`,searchEntities:`Search entities...`,searchPowerSensors:`Search power sensors...`,searchEnergySensors:`Search energy sensors...`,placeholders:{plugName:`Living Room Plug`,mqttStateOnValue:`ON, true, 1`,mqttSameAsPower:`Same as power topic, or different`}},linkedTo:`Linked to:`,monitorOnly:`Monitor Only`,alerts:`Alerts`,scheduleOn:`On {{time}}`,scheduleOff:`Off {{time}}`,on:`On`,off:`Off`,power:`Power`,kwhToday:`kWh Today`,settings:`Settings`,automationSettings:`Automation Settings`,showInSwitchbar:`Show in Switchbar`,quickAccessSidebar:`Quick access from sidebar`,enabled:`Enabled`,enableAutomation:`Enable automation for this plug`,autoOn:`Auto On`,autoOnDescription:`Turn on when print starts`,autoOff:`Auto Off`,autoOffDescription:`Turn off when print completes (one-shot)`,autoOffPersistent:`Keep Enabled`,autoOffPersistentDescription:`Stay enabled between prints instead of one-shot`,controlsPrinterPower:`Powers the printer`,controlsPrinterPowerDescription:`Turn off if this plug only powers an accessory (filter fan, lights). Otherwise switching it off marks the printer offline.`,autoOffAfterDrying:`Auto Off After Drying`,autoOffAfterDryingDescription:`Turn off when AMS drying completes`,delayAfterDryingMinutes:`Drying delay (minutes)`,turnOffDelayMode:`Turn Off Delay Mode`,time:`Time`,temp:`Temp`,delayMinutes:`Delay (minutes)`,tempThreshold:`Temperature threshold (°C)`,tempThresholdDescription:`Turns off when nozzle cools below this temperature`,edit:`Edit`,deleteConfirm:`Are you sure you want to delete "{{name}}"? This cannot be undone.`,turnOnConfirm:`Are you sure you want to turn on "{{name}}"?`,turnOffConfirm:`Are you sure you want to turn off "{{name}}"? This will cut power to the connected device.`,failedToTurn:`Failed to turn {{action}} "{{name}}"`,unknown:`Unknown`,addTitle:`Add Smart Plug`,editTitle:`Edit Smart Plug`,stopScanning:`Stop Scanning`,discoverTasmota:`Discover Tasmota Devices`,foundDevices:`Found {{count}} device(s) - click to select:`,noDevicesFound:`No Tasmota devices found on your network`,haNotConfigured:`Home Assistant is not configured. Set it up in`,haSettingsPath:`Settings → Network → Home Assistant`,selectEntity:`Select Entity *`,ipAddress:`IP Address *`,nameLabel:`Name *`,username:`Username`,password:`Password`,authHint:`Leave empty if your Tasmota device doesn't require authentication`,linkToPrinter:`Link to Printer`,noPrinter:`No printer (manual control only)`,linkingDescription:`Linking enables automatic on/off when prints start/complete`,powerAlerts:`Power Alerts`,alertAbove:`Alert if above (W)`,alertBelow:`Alert if below (W)`,alertDescription:`Get notified when power consumption crosses these thresholds. Leave empty to disable that direction.`,dailySchedule:`Daily Schedule`,turnOnAt:`Turn On at`,turnOffAt:`Turn Off at`,scheduleDescription:`Automatically turn the plug on/off at these times daily. Leave empty to skip that action.`,showOnPrinterCard:`Show on Printer Card`,displayOnPrinterCard:`Display button on printer card`,connectedResult:`Connected!`,deviceLabel:`Device: {{name}} - `,stateLabel:`State: {{state}}`,test:`Test`,delete:`Delete`,save:`Save`,add:`Add`,cancel:`Cancel`,failedToStartScan:`Failed to start scan`,nameRequired:`Name is required`,entityRequired:`Entity is required for Home Assistant plugs`,mqttTopicRequired:`At least one MQTT topic must be configured for power, energy, or state monitoring`,loadingEntities:`Loading entities...`,loading:`Loading...`,failedToLoadEntities:`Failed to load entities: {{error}}`,noEntitiesMatching:`No entities found matching "{{search}}"`,noEntitiesAvailable:`No entities available`,searchingEntities:`Searching all entities ({{count}} found)`,showingEntities:`Showing switch, light, input_boolean ({{count}} available)`,energyMonitoringOptional:`Energy Monitoring (Optional)`,energyMonitoringHint:`Search and select sensors that provide power/energy data.`,powerSensorW:`Power Sensor (W)`,energyTodayKwh:`Energy Today (kWh)`,totalEnergyKwh:`Total Energy (kWh)`,noMatchingSensors:`No matching sensors`,none:`None`,mqttNotConfigured:`MQTT broker not configured. Set broker address in`,mqttSettingsPath:`Settings → Network → MQTT Publishing`,mqttNotConfiguredSuffix:`(you don't need to enable publishing, just fill in the broker details).`,mqttMonitorOnlyDescription:`MQTT plugs receive power/energy data via MQTT subscription. On/off control is not available - use your MQTT broker or home automation system.`,powerMonitoring:`Power Monitoring`,energyMonitoring:`Energy Monitoring`,stateMonitoring:`State Monitoring`,optional:`optional`,topic:`Topic`,jsonPath:`JSON Path`,multiplier:`Multiplier`,onValue:`ON Value`,mqttPowerHint:`JSON path extracts value from JSON payload (e.g., "power_l1"). Leave empty if topic publishes raw numeric values.
+`).replace(Ad,``)}function Md(e,t){return t=jd(t),jd(e)===t}function Nd(e,t,n,r,a,o){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||Rt(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&Rt(e,``+r);break;case`className`:Ct(e,`class`,r);break;case`tabIndex`:Ct(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:Ct(e,n,r);break;case`style`:Vt(e,r,o);break;case`data`:if(t!==`object`){Ct(e,`data`,r);break}case`src`:case`href`:if(r===``&&(t!==`a`||n!==`href`)){e.removeAttribute(n);break}if(r==null||typeof r==`function`||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Gt(``+r),e.setAttribute(n,r);break;case`action`:case`formAction`:if(typeof r==`function`){e.setAttribute(n,`javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')`);break}else typeof o==`function`&&(n===`formAction`?(t!==`input`&&Nd(e,t,`name`,a.name,a,null),Nd(e,t,`formEncType`,a.formEncType,a,null),Nd(e,t,`formMethod`,a.formMethod,a,null),Nd(e,t,`formTarget`,a.formTarget,a,null)):(Nd(e,t,`encType`,a.encType,a,null),Nd(e,t,`method`,a.method,a,null),Nd(e,t,`target`,a.target,a,null)));if(r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Gt(``+r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=Kt);break;case`onScroll`:r!=null&&yd(`scroll`,e);break;case`onScrollEnd`:r!=null&&yd(`scrollend`,e);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));e.innerHTML=n}}break;case`multiple`:e.multiple=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`muted`:e.muted=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`defaultValue`:case`defaultChecked`:case`innerHTML`:case`ref`:break;case`autoFocus`:break;case`xlinkHref`:if(r==null||typeof r==`function`||typeof r==`boolean`||typeof r==`symbol`){e.removeAttribute(`xlink:href`);break}n=Gt(``+r),e.setAttributeNS(`http://www.w3.org/1999/xlink`,`xlink:href`,n);break;case`contentEditable`:case`spellCheck`:case`draggable`:case`value`:case`autoReverse`:case`externalResourcesRequired`:case`focusable`:case`preserveAlpha`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``+r):e.removeAttribute(n);break;case`inert`:case`allowFullScreen`:case`async`:case`autoPlay`:case`controls`:case`default`:case`defer`:case`disabled`:case`disablePictureInPicture`:case`disableRemotePlayback`:case`formNoValidate`:case`hidden`:case`loop`:case`noModule`:case`noValidate`:case`open`:case`playsInline`:case`readOnly`:case`required`:case`reversed`:case`scoped`:case`seamless`:case`itemScope`:r&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``):e.removeAttribute(n);break;case`capture`:case`download`:!0===r?e.setAttribute(n,``):!1!==r&&r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`cols`:case`rows`:case`size`:case`span`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case`rowSpan`:case`start`:r==null||typeof r==`function`||typeof r==`symbol`||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case`popover`:yd(`beforetoggle`,e),yd(`toggle`,e),St(e,`popover`,r);break;case`xlinkActuate`:wt(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:wt(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:wt(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:wt(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:wt(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:wt(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:wt(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:wt(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:wt(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:St(e,`is`,r);break;case`innerText`:case`textContent`:break;default:(!(2/api/v1/metrics for Prometheus/Grafana monitoring.`,bearerTokenOptional:`Bearer Token (optional)`,bearerTokenHint:`If set, requests must include Authorization: Bearer `,metricsConnectionStatus:`Connection status`,metricsPrinterState:`Printer state (idle/printing/etc)`,metricsPrintProgress:`Print progress 0-100%`,metricsBedTemp:`Bed temperature`,metricsNozzleTemp:`Nozzle temperature`,metricsPrintsTotal:`Total prints by result`,metricsMore:`...and more (layers, fans, queue, filament usage)`,smartPlugsDescription:`Connect smart plugs (Tasmota or Home Assistant) to automate power control and track energy usage for your printers.`,allOn:`All On`,allOff:`All Off`,addSmartPlug:`Add Smart Plug`,energySummary:`Energy Summary`,currentPower:`Current Power`,plugsOnline:`{{reachable}}/{{total}} plugs online`,today:`Today`,yesterday:`Yesterday`,total:`Total`,enablePlugsForSummary:`Enable plugs to see energy summary`,addNotificationProvider:`Add`,systemBadge:`(System)`,creating:`Creating...`,changing:`Changing...`,deleteUserAndItems:`Delete user AND their items`,deleteUserKeepItems:`Delete user, keep items (become ownerless)`,ok:`OK`,twoFa:{totpTitle:`Authenticator App (TOTP)`,totpDesc:`Use an authenticator app like Google Authenticator, Aegis or Authy.`,emailOtpTitle:`Email OTP`,emailOtpDesc:`Send a one-time code to {{email}} when you log in.`,emailOtpNoEmail:`Add an email address to your account to enable this method.`,addEmailFirst:`Your account has no email address. Ask an admin to add one before enabling Email OTP.`,setupTotp:`Set up Authenticator App`,setupAuthApp:`Set up Authenticator App`,setupInstructions:`Scan the QR code below with your authenticator app, then confirm with a code.`,manualEntry:`Can't scan? Enter this secret manually:`,scannedContinue:`I've scanned the code — continue`,enterCodeToConfirm:`Enter the 6-digit code from your authenticator app to confirm setup.`,activate:`Activate`,disableTotp:`Disable Authenticator`,disableConfirmHint:`Enter a valid TOTP code or a backup code to disable the authenticator.`,totpDisabled:`Authenticator app disabled.`,emailOtpEnabled:`Email OTP enabled.`,emailOtpDisabled:`Email OTP disabled.`,smtpRequired:`Please configure and test SMTP settings first.`,invalidCode:`Invalid code. Please try again.`,enableEmailOtp:`Enable Email OTP`,disableEmailOtp:`Disable Email OTP`,emailSetupEnterCode:`A verification code has been sent to your email address. Enter it below to confirm you own this inbox.`,verifyAndEnable:`Verify & Enable`,emailDisablePasswordHint:`Enter your account password to confirm disabling email OTP.`,passwordPlaceholder:`Enter your password`,backupCodesTitle:`Save your backup codes`,backupCodesWarning:`Save these codes somewhere safe. Each code can only be used once and they will not be shown again.`,backupCodesRemaining:`{{count}} backup codes remaining`,savedCodes:`I've saved my codes`,regenBackup:`Regenerate Backup Codes`,regenBackupHint:`Enter your current TOTP code to generate 10 new backup codes. All existing backup codes will be invalidated.`,newBackupCodes:`New backup codes`,linkedAccounts:`Linked SSO Accounts`,linkedAccountsDesc:`These external identity providers are linked to your account.`,oidcUnlinked:`Account unlinked.`},sessionPolicy:{title:`Session Policy`,description:`Maximum session lifetime for new user logins. Already-issued tokens keep their original expiry.`,preset24h:`24 hours`,preset7d:`7 days`,preset30d:`30 days`,customHoursLabel:`Custom session lifetime in hours`,hoursSuffix:`hours`,warning:`Longer sessions reduce automatic logout protection. Recommended only for trusted single-user deployments.`},oidc:{title:`SSO / OIDC Providers`,desc:`Configure OpenID Connect providers to allow single sign-on via external identity providers.`,addProvider:`Add Provider`,newProvider:`New Provider`,empty:`No OIDC providers configured yet.`,created:`Provider created.`,updated:`Provider updated.`,deleted:`Provider deleted.`,refreshIcon:`Refresh icon`,removeIcon:`Remove icon`,iconRefreshed:`Icon refreshed.`,iconRemoved:`Icon removed.`,iconFetchFailed:`Icon could not be fetched from the provider URL.`,deleteTitle:`Delete Provider`,deleteMessage:`Delete "{{name}}"? All linked user accounts will be disconnected.`,form:{name:`Display Name`,issuerUrl:`Issuer URL`,clientId:`Client ID`,clientSecret:`Client Secret`,scopes:`Scopes`,iconUrl:`Icon URL (optional)`,enabled:`Enabled`,autoCreate:`Auto-create users`,autoCreateDesc:`Automatically create a local account on first login.`,autoLink:`Auto-link existing accounts`,autoLinkDesc:`Link existing local accounts by matching email on first login.`,secretHint:`leave blank to keep current`,secretPlaceholder:`new secret`,emailClaim:`Email Claim`,emailClaimDesc:`JWT claim used as email identity. Use 'preferred_username' or 'upn' for Azure Entra ID (which does not send email_verified). Only use trusted claim names.`,emailClaimPlaceholder:`email`,emailClaimCustomClaimAutoLinkWarning:`Custom claims are safe for auto-link only when the value is tenant-administered (e.g. Azure Entra ID upn / preferred_username). Do not enable auto-link if your IdP allows users to self-assert this claim.`,requireEmailVerified:`Require email verified`,requireEmailVerifiedDesc:`Only accept the email claim when the provider marks it as verified.`,requireEmailVerifiedWarning:`Warning: email will be accepted even without verification. Use only with trusted providers.`,requireEmailVerifiedAutoLink:`Disable auto-link first to change this setting.`,defaultGroup:`Default Group`,defaultGroupDesc:`Group assigned to auto-created users. Falls back to Viewers if not set.`,defaultGroupViewersFallback:`Viewers (default)`,autologin:`Autologin`,autologinDesc:`Redirect unauthenticated visitors straight to this provider. Only one provider can carry this flag.`}},encryption:{title:`MFA Encryption Status`,enabledFromEnv:`At-rest encryption enabled (key from MFA_ENCRYPTION_KEY environment variable)`,enabledFromFile:`At-rest encryption enabled (key loaded from data directory)`,enabledGenerated:`At-rest encryption enabled with auto-generated key`,notConfigured:`At-rest encryption not configured`,notConfiguredDesc:`TOTP secrets and OIDC client_secrets are stored in plaintext. Set MFA_ENCRYPTION_KEY or restart Bambuddy with a writable data directory to auto-generate one.`,allEncrypted:`All MFA secrets are encrypted at rest.`,legacyRowsLabel:`Legacy plaintext rows`,encryptedRowsLabel:`Encrypted rows`,legacyRowsWarning:`{{count}} legacy plaintext row(s) detected. Re-save the OIDC provider or re-enroll the user’s authenticator app to migrate to encrypted storage.`,backupHint:`The auto-generated key is stored at DATA_DIR/.mfa_encryption_key and is included in local backup ZIPs. Keep your backups secure or set MFA_ENCRYPTION_KEY explicitly.`,decryptionBrokenTitle:`Encryption key missing`,decryptionBrokenError:`{{count}} encrypted record(s) cannot be decrypted because the encryption key is no longer available. Restore the previous MFA_ENCRYPTION_KEY or DATA_DIR/.mfa_encryption_key to recover.`,migrationErrorWarning:`{{count}} legacy row(s) failed to re-encrypt at startup. Check server logs and restart Bambuddy to retry.`},pipelineLimits:{title:`Slicer Pipeline limits`,maxCopiesLabel:`Max copies per run`,maxCopiesDesc:`Upper bound on the copies operators can request when running a pipeline. Server-side hard cap is 1000.`},pipelines:{title:`Slicer Pipelines`,subtitle:`Reusable preset bundles (printer + process + filaments + bed type). Save one from the Slice dialog and apply it with a single click on the next file.`,loading:`Loading pipelines…`,loadError:`Could not load pipelines.`,confirmDelete:`Delete this pipeline? This cannot be undone.`,staleWarning:`One or more referenced presets no longer exist. Re-save this pipeline from the Slice dialog to fix.`,empty:{title:`No pipelines yet.`,howto:`Open the Slice dialog for any file, pick your printer / process / filaments / bed type, then click "Save as pipeline". Your saved pipelines will appear here.`},field:{name:`Pipeline name`,description:`Description`,targetPrinter:`Target printer`,noTarget:`— No target —`,targetKind:`Target type`,targetKindSpecific:`Specific printer`,targetKindClass:`Printer class`,targetModelClass:`Printer model`,fanoutStrategy:`Fanout strategy`,fanout:{max_parallel:`Max parallel — distribute across any idle matching printer`,round_robin:`Round robin — cycle through eligible printers`,fill_one_first:`Fill one first — pin all copies to one printer`},fanoutShort:{max_parallel:`parallel`,round_robin:`round robin`,fill_one_first:`fill one first`}},action:{save:`Save`,cancel:`Cancel`,rename:`Rename`,delete:`Delete`},slot:{printer:`Printer`,process:`Process`,filament:`Filament`,filamentN:`Filament {{n}}`,filamentAll:`All {{n}} slots`,bed:`Bed`},group:{profiles:`Profiles`,filaments:`Filaments`},searchPlaceholder:`Search pipelines…`,filterTargetType:`Filter by target type`,filterTarget:`Filter by target`,filter:{all:`All targets`,noTarget:`No target set`,count:`{{shown}} / {{total}}`,noMatches:`No pipelines match the current filters.`},toast:{saved:`Pipeline saved`,saveFailed:`Save failed`,deleted:`Pipeline deleted`,deleteFailed:`Delete failed`},noTargetHint:`Set a target printer to run this`,noTargetWarning:`Set a target printer before running this pipeline.`,runs:{lastRun:`Last run`,status:{queued:`queued`,slicing:`slicing`,dispatching:`dispatching`,in_progress:`printing`,completed:`completed`,failed:`failed`,partial_failure:`partial failure`,cancelled:`cancelled`}}}},notification:{printStarted:{title:`Print Started`,body:`{{printer}}: {{filename}} has started printing`},printCompleted:{title:`Print Completed`,body:`{{printer}}: {{filename}} completed successfully`},printFailed:{title:`Print Failed`,body:`{{printer}}: {{filename}} has failed`},printStopped:{title:`Print Stopped`,body:`{{printer}}: {{filename}} was stopped`},printProgress:{title:`Print Progress`,body:`{{printer}}: {{filename}} is {{percent}}% complete`},printerOffline:{title:`Printer Offline`,body:`{{printer}} is offline`},printerError:{title:`Printer Error`,body:`{{printer}}: {{error}}`},filamentLow:{title:`Low Filament`,body:`{{printer}}: Filament is running low`},maintenanceDue:{title:`Maintenance Due`,body:`{{printer}}: {{items}} need attention`}},errors:{generic:`Something went wrong`,networkError:`Network error. Please check your connection.`,notFound:`Not found`,unauthorized:`Unauthorized`,serverError:`Server error`,validationError:`Please check your input`,printerConnectionFailed:`Failed to connect to printer`,saveFailed:`Failed to save changes`,deleteFailed:`Failed to delete`,loadFailed:`Failed to load data`},hmsErrors:{title:`Errors - {{name}}`,noErrors:`No errors`,viewOnWiki:`View on Bambu Lab Wiki`,mqttVerifyFailedRemedy:`Enable Developer Mode on the printer, restart the printer, then start the job again.`,unknownCode:`Unknown HMS code — see the Bambu Lab wiki for details.`,clearInstructions:`Clear errors on the printer to dismiss them here.`,clearErrors:`Clear Errors`,clearSuccess:`HMS errors cleared`,clearFailed:`Failed to clear HMS errors`,actionSuccess:`Action sent to printer`,actionFailed:`Failed to send action`,runoutExpectedSlot:`Filament ran out in {{ranOut}}. The printer is now waiting for compatible filament in {{expected}}. Insert a spool into {{expected}}, then select Retry.`,runoutExpectedSlotOnly:`The printer is waiting for compatible filament in {{expected}}. Insert a spool there, then select Retry.`,runoutSlotUnknown:`Filament ran out and the print is paused. Bambuddy could not determine which slot the printer now expects — check the printer screen for the requested slot.`,actions:{RESUME_PRINTING:`Resume Printing`,RESUME_PRINTING_DEFECTS:`Resume (defects acceptable)`,RESUME_PRINTING_PROBELM_SOLVED:`Resume (problem solved)`,STOP_PRINTING:`Stop Printing`,CHECK_ASSISTANT:`Check Assistant`,FILAMENT_EXTRUDED:`Filament Extruded, Continue`,RETRY_FILAMENT_EXTRUDED:`Not Extruded Yet, Retry`,CONTINUE:`Finished, Continue`,LOAD_VIRTUAL_TRAY:`Load Filament`,OK_BUTTON:`OK`,FILAMENT_LOAD_RESUME:`Filament Loaded, Resume`,JUMP_TO_LIVEVIEW:`View Liveview`,NO_REMINDER_NEXT_TIME:`No Reminder Next Time`,REFRESH_NOZZLE:`Recheck`,IGNORE_NO_REMINDER_NEXT_TIME:`Ignore. Don't Remind Next Time`,IGNORE_RESUME:`Ignore this and Resume`,PROBLEM_SOLVED_RESUME:`Problem Solved and Resume`,TURN_OFF_FIRE_ALARM:`Got it, Turn off the Fire Alarm.`,RETRY_PROBLEM_SOLVED:`Retry (problem solved)`,CANCLE:`Cancle`,STOP_DRYING:`Stop Drying`,PROCEED:`Proceed`,OK_JUMP_RACK:`OK`,ABORT:`Abort`,DISABLE_PURIFICATION:`Disable Purification for This Print`,DONT_REMIND_NEXT_TIME:`Don't Remind Me`,DBL_CHECK_CANCEL:`Cancel`,DBL_CHECK_DONE:`Done`,DBL_CHECK_RETRY:`Retry`,DBL_CHECK_RESUME:`Resume`,DBL_CHECK_OK:`Confirm`,REMOVE_CLOSE_BTN:`Close`}},mqttDebug:{title:`MQTT Debug Log`,searchPlaceholder:`Search topic or payload...`,noMessages:`No messages logged yet`,startLoggingHint:`Click "Start Logging" to begin capturing MQTT messages`,noMessagesMatch:`No messages match your filter`,adjustFilterHint:`Try adjusting your search or filter criteria`,incoming:`Incoming`,outgoing:`Outgoing`,loggingStopped:`Logging stopped`,loggingActive:`Logging active - messages will auto-refresh`,startLogging:`Start Logging`,stopLogging:`Stop Logging`,clearLog:`Clear Log`,topic:`Topic`,timestamp:`Timestamp`,direction:`Direction`,all:`All`},printerFiles:{title:`File Manager`,storageUsed:`Used:`,storageFree:`Free:`,filterPlaceholder:`Filter files...`,deleteButton:`Delete`,deleteFiles:`Delete {{count}} Files`,deleteFileConfirm:`Delete "{{name}}"? This cannot be undone.`,deleteFilesConfirm:`Delete {{count}} selected files? This cannot be undone.`,noFiles:`No files on printer`,loadingFiles:`Loading files...`,failedToLoad:`Failed to load files`,toast:{filesDeleted:`Deleted {{count}} file(s)`,deleteFailed:`Delete failed: {{error}}`}},confirm:{delete:`Are you sure you want to delete this?`,unsavedChanges:`You have unsaved changes. Are you sure you want to leave?`,clearQueue:`Are you sure you want to clear the queue?`},login:{title:`Bambuddy Login`,subtitle:`Sign in to your account`,username:`Username`,usernamePlaceholder:`Enter your username`,usernameOrEmail:`Username or Email`,usernameOrEmailPlaceholder:`Username or @ Email`,password:`Password`,passwordPlaceholder:`Enter your password`,signIn:`Sign in`,signingIn:`Logging in...`,rememberMe:`Remember Me`,forgotPassword:`Forgot your password?`,autologinFailed:`Automatic SSO sign-in failed. Pick a provider below to continue.`,localDisabledNotice:`Local sign-in is disabled. Use one of the SSO providers below.`,loginSuccess:`Logged in successfully`,loginFailed:`Login failed`,enterCredentials:`Please enter username and password`,enterEmail:`Please enter your email address`,oidcLoginFailed:`OIDC login failed`,oidcErrors:{providerError:`The identity provider returned an error`,missingParameters:`OIDC callback is missing required parameters`,invalidState:`OIDC state is invalid or has already been used`,stateExpired:`OIDC login session expired — please try again`,providerNotFound:`OIDC provider not found`,discoveryFailed:`Failed to fetch OIDC discovery document`,invalidDiscovery:`OIDC discovery document is invalid`,networkError:`Network error during OIDC token exchange`,badResponse:`Unexpected response during OIDC token exchange`,noIdToken:`OIDC provider did not return an ID token`,validationFailed:`OIDC token validation failed`,nonceMismatch:`OIDC nonce mismatch — possible replay attack`,missingSubClaim:`OIDC token is missing the sub claim`,noLinkedAccount:`No local account is linked to this OIDC identity`,accountInactive:`Your account is inactive`,userResolutionFailed:`Failed to resolve your account`,internalError:`An internal error occurred during OIDC login`,tokenExchangeFailed:`OIDC token exchange failed`},forgotPasswordTitle:`Forgot Password`,forgotPasswordMessage:`If you've forgotten your password, please contact your system administrator to reset it.`,forgotPasswordEmailMessage:`Enter your email address and we'll send you a new password.`,emailAddress:`Email Address`,emailPlaceholder:`your.email@example.com`,cancel:`Cancel`,sending:`Sending...`,sendResetEmail:`Send Reset Email`,howToReset:`How to reset your password:`,resetStep1:`Contact your Bambuddy administrator`,resetStep2:`Ask them to reset your password in User Management`,resetStep3:`They can set a new temporary password for you`,resetStep4:`Log in with the new password and change it in Settings`,gotIt:`Got it`,resetPassword:{title:`Set New Password`,subtitle:`Enter and confirm your new password below.`,newPassword:`New Password`,newPasswordPlaceholder:`At least 8 characters`,confirmPassword:`Confirm Password`,confirmPasswordPlaceholder:`Repeat new password`,saving:`Saving…`,submit:`Set New Password`,backToLogin:`Back to login`,passwordsDoNotMatch:`Passwords do not match`,passwordTooShort:`Password must be at least 8 characters`,resetFailed:`Password reset failed. The link may have expired.`},twoFA:{title:`Two-Factor Authentication`,subtitle:`Your account is protected with 2FA. Enter the verification code below.`,methodAuthenticator:`Authenticator App`,methodEmail:`Email Code`,methodBackup:`Backup Code`,instructionsTotp:`Open your authenticator app and enter the 6-digit code for Bambuddy.`,instructionsEmail:`A 6-digit code has been sent to your email address. It expires in 10 minutes.`,instructionsEmailNotSent:`Click the button below to receive a verification code via email.`,instructionsBackup:`Enter one of your 8-character backup recovery codes. Each code can only be used once.`,sendCodeButton:`Send Code via Email`,sendingCode:`Sending...`,resendCode:`Resend code`,codeLabel:`Verification Code`,backupCodeLabel:`Backup Code`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`Verify`,verifyingButton:`Verifying...`,backToLogin:`← Back to login`,orContinueWith:`or continue with`,signInWith:`Sign in with {{provider}}`,enterCode:`Please enter the verification code`,sendCodeFailed:`Failed to send verification code`,invalidCode:`Invalid code. Please try again.`}},setup:{title:`Bambuddy Setup`,subtitle:`Configure authentication for your Bambuddy instance`,enableAuth:`Enable Authentication`,adminAccount:`Admin Account`,adminAccountDesc:`If admin users already exist, authentication will be enabled using the existing admin accounts. Leave the fields below empty to use existing admins, or enter new credentials to create a new admin user.`,adminUsername:`Admin Username`,adminPassword:`Admin Password`,optionalIfAdminExists:`(optional if admin users exist)`,adminUsernamePlaceholder:`Enter admin username (optional)`,adminPasswordPlaceholder:`Enter admin password (optional)`,confirmPassword:`Confirm Password`,confirmPasswordPlaceholder:`Confirm admin password`,settingUp:`Setting up...`,completeSetup:`Complete Setup`,toast:{authEnabledAdminCreated:`Authentication enabled and admin user created`,authEnabledExistingAdmins:`Authentication enabled using existing admin users`,setupCompleted:`Setup completed`,enterBothCredentials:`Please enter both admin username and password, or leave both empty to use existing admin users`,passwordsDoNotMatch:`Passwords do not match`,passwordTooShort:`Password must be at least 6 characters`}},changePassword:{title:`Change Password`,currentPassword:`Current Password`,currentPasswordPlaceholder:`Enter current password`,newPassword:`New Password`,newPasswordPlaceholder:`Enter new password (min 6 characters)`,confirmPassword:`Confirm New Password`,confirmPasswordPlaceholder:`Confirm new password`,passwordsDoNotMatch:`Passwords do not match`,passwordTooShort:`Password must be at least 6 characters`,changing:`Changing...`,success:`Password changed successfully`,failed:`Failed to change password`},plateAlert:{title:`Print Paused!`,message:`Objects detected on build plate. The print has been automatically paused. Please clear the plate and resume the print.`,understand:`I Understand`},camera:{title:`Camera View`,invalidPrinterId:`Invalid printer ID`,live:`Live`,snapshot:`Snapshot`,restartStream:`Restart stream`,refreshSnapshot:`Refresh snapshot`,fullscreen:`Fullscreen`,exitFullscreen:`Exit fullscreen`,connectingToCamera:`Connecting to camera...`,capturingSnapshot:`Capturing snapshot...`,connectionLost:`Connection lost`,connectionFailed:`Camera connection failed`,reconnecting:`Reconnecting in {{countdown}}s... (attempt {{attempt}}/{{max}})`,reconnectNow:`Reconnect now`,cameraUnavailable:`Camera unavailable`,cameraUnavailableDesc:`Make sure the printer is powered on and connected.`,noCamera:`No camera available`,retry:`Retry`,cameraStream:`Camera stream`,zoomOut:`Zoom out`,zoomIn:`Zoom in`,resetZoom:`Reset zoom`,recording:`Recording`,startRecording:`Start Recording`,stopRecording:`Stop Recording`,chamberLight:`Toggle chamber light`,unavailable:`Camera unavailable`,diagnose:{button:`Diagnose`,modalTitle:`Camera diagnostic`,running:`Running diagnostic...`,runFailed:`Diagnostic could not run: {{error}}`,retry:`Run again`,stage:{tcp_reachable:`Network reachability`,first_frame:`Frame capture`,live_stream_active:`Live stream active`},summary:{all_ok:`Camera is working. The diagnostic completed all stages successfully.`,live_stream_active_healthy:`Camera is currently streaming with recent frames — no test needed.`,printer_unreachable:`Printer is not reachable. Check the IP address, network connection, and that the printer is powered on.`,camera_port_closed:`Printer is reachable but the camera port is closed. Make sure LAN-only mode and Developer Mode are enabled in the printer settings.`,no_frame:`Connected to the camera but no frames were received. Try again, or check that the camera is enabled in the printer settings.`,unknown_failure:`Camera diagnostic failed for an unknown reason. Check the support log for details.`},meta:{protocol:`Protocol`,port:`Port`,profile:`Profile`}}},groups:{title:`Group Management`,subtitle:`Manage permission groups for access control`,backToSettings:`Back to Settings`,createGroup:`Create Group`,noPermission:`You do not have permission to access this page.`,system:`System`,noDescription:`No description`,usersCount:`{{count}} users`,permissionsCount:`{{count}} permissions`,edit:`Edit`,delete:`Delete`,toast:{created:`Group created successfully`,updated:`Group updated successfully`,deleted:`Group deleted successfully`,enterGroupName:`Please enter a group name`},modal:{editGroup:`Edit Group`,createGroup:`Create Group`,cancel:`Cancel`,saving:`Saving...`,creating:`Creating...`,saveChanges:`Save Changes`},form:{groupName:`Group Name`,groupNamePlaceholder:`Enter group name`,systemGroupWarning:`System group names cannot be changed`,description:`Description`,descriptionPlaceholder:`Enter description (optional)`,permissions:`Permissions ({{count}} selected)`},deleteModal:{title:`Delete Group`,message:`Are you sure you want to delete this group? Users in this group will lose these permissions.`,confirm:`Delete Group`},editor:{title:`Edit Group`,createTitle:`Create Group`,search:`Search permissions...`,selectAll:`Select All`,clearAll:`Clear All`,permissionsSelected:`{{count}} selected`,noResults:`No permissions match your search`,websocketHint:`Required for live updates. Without it, the interface falls back to periodic polling.`}},users:{title:`User Management`,subtitle:`Manage users and their access to your Bambuddy instance`,backToSettings:`Back to Settings`,createUser:`Create User`,noPermission:`You do not have permission to access this page.`,admin:`Admin`,noGroups:`No groups`,active:`Active`,inactive:`Inactive`,edit:`Edit`,delete:`Delete`,system:`System`,noGroupsAvailable:`No groups available`,table:{username:`Username`,groups:`Groups`,status:`Status`,actions:`Actions`},toast:{created:`User created successfully`,updated:`User updated successfully`,deleted:`User deleted successfully`,fillRequired:`Please fill in all required fields`,passwordsDoNotMatch:`Passwords do not match`,passwordTooShort:`Password must be at least 6 characters`,ldapProvisioned:`Provisioned LDAP user "{{username}}"`},modal:{createUser:`Create User`,editUser:`Edit User`,cancel:`Cancel`,creating:`Creating...`,saving:`Saving...`,saveChanges:`Save Changes`,advancedAuthSubtitle:`with Advanced Authentication`,tabsAriaLabel:`User source`,localTab:`Local`,ldapTab:`LDAP`,ldapSearchLabel:`Search directory`,ldapSearchPlaceholder:`Type a username, name, or email...`,ldapMinChars:`Type at least 2 characters to search`,ldapTypeToSearch:`Start typing to search the LDAP directory`,ldapSearching:`Searching directory...`,ldapNoResults:`No matching users in the directory`,ldapSearchError:`Directory search failed. Check the LDAP server status.`,ldapAlreadyProvisioned:`Already provisioned`,ldapSelectedLabel:`Selected`,ldapProvision:`Provision user`,ldapProvisioning:`Provisioning...`,ldapErrorProvision:`Provisioning failed. Check the LDAP server status and try again.`},form:{username:`Username`,usernamePlaceholder:`Enter username`,email:`Email`,emailPlaceholder:`user@example.com`,password:`Password`,passwordPlaceholder:`Enter password`,confirmPassword:`Confirm Password`,confirmPasswordPlaceholder:`Confirm password`,newPasswordPlaceholder:`Enter new password`,confirmNewPasswordPlaceholder:`Confirm new password`,leaveBlankToKeep:`leave blank to keep current`,groups:`Groups`,optional:`optional`,autoGeneratedPassword:`A secure password will be automatically generated and emailed to the user.`,passwordManagedByAdvancedAuth:`Password is managed by Advanced Authentication. Use "Reset Password" to send a new password to the user via email.`,resetPassword:`Reset Password`,resettingPassword:`Resetting Password...`},deleteModal:{title:`Delete User`,message:`Are you sure you want to delete this user? This action cannot be undone.`,confirm:`Delete User`}},streamOverlay:{title:`Stream Overlay`,invalidPrinterId:`Invalid printer ID`,cameraStream:`Camera stream`,progress:`Progress`,eta:`ETA`,printerIdle:`Printer is idle`,printerOffline:`Printer offline`,status:{printing:`Printing`,paused:`Paused`,finished:`Finished`,failed:`Failed`,idle:`Idle`,unknown:`Unknown`}},profiles:{title:`Profiles`,subtitle:`Manage your slicer presets and pressure advance calibrations`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`Local Profiles`,kprofiles:`K-Profiles`},orcaCloud:{connectedAs:`Connected as`,connectedShort:`Connected to Orca Cloud`,logout:`Disconnect`,noLogoutPermission:`You do not have permission to disconnect`,noConnectPermission:`You do not have permission to connect to Orca Cloud`,retry:`Retry`,connectButton:`Connect Orca Cloud`,connect:{title:`Connect to Orca Cloud`,description:`Sign in to your Orca Cloud account to sync your slicer profiles into Bambuddy.`},device:{title:`Approve Bambuddy in Orca Cloud`,instruction:`Open Orca Cloud and approve this code. Bambuddy connects automatically once you approve.`,codeLabel:`Your pairing code`,openButton:`Open Orca Cloud approval page`,manualHint:`Or go to {{url}} and enter the code above.`,waiting:`Waiting for you to approve…`,cancel:`Cancel`},profiles:{title:`Your Orca Cloud profiles ({{count}})`,refresh:`Refresh`,empty:`No profiles found in your Orca Cloud account yet.`},toast:{disconnected:`Disconnected from Orca Cloud`},errors:{startFailed:`Could not start Orca Cloud pairing.`,denied:`The pairing was denied in Orca Cloud.`,expired:`The pairing code expired. Click Connect to try again.`,pollFailed:`Lost the connection while waiting for approval. Please try again.`}},localProfiles:{title:`Local Profiles`,subtitle:`Import and manage slicer presets from OrcaSlicer`,import:`Import Profiles`,importDesc:`Drop .bbscfg, .bbsflmt, .orca_filament, .zip, or .json files here`,importing:`Importing...`,search:`Search local presets...`,noPresets:`No local presets yet`,noSearchResults:`No presets match your search`,badge:`Local`,edit:`Edit`,delete:`Delete`,cancel:`Cancel`,deleteConfirmTitle:`Delete Preset`,deleteConfirm:`Are you sure you want to delete this preset? This cannot be undone.`,source:`Source`,inheritsFrom:`Inherits`,filamentType:`Type`,vendor:`Vendor`,compatiblePrinters:`Printers`,nozzleTemp:`Nozzle Temp`,cost:`Cost`,density:`Density`,pressureAdvance:`Pressure Advance`,filament:`Filament`,process:`Process`,printer:`Printer`,toast:{importSuccess:`{{count}} preset(s) imported`,importSkipped:`{{count}} preset(s) skipped (duplicates)`,importError:`{{count}} error(s) during import`,deleted:`Preset deleted`,updated:`Preset updated`}},connectedAs:`Connected as`,signInExpiredTitle:`Bambu Cloud sign-in expired`,signInExpiredBody:`Bambu Lab no longer accepts the stored token. Sign in again to restore cloud profiles, MakerWorld imports and firmware checks.`,logout:`Logout`,noLogoutPermission:`You do not have permission to logout`,failedToLoad:`Failed to load profiles`,retry:`Retry`,time:{justNow:`Just now`,minsAgo:`{{count}}m ago`,hoursAgo:`{{count}}h ago`,daysAgo:`{{count}}d ago`},toast:{loggedOut:`Logged out`},login:{title:`Connect to Bambu Cloud`,subtitle:`Sync your slicer presets across devices`,email:`Email`,password:`Password`,region:`Region`,regionGlobal:`Global`,regionChina:`China`,verificationCode:`Verification Code`,totpCode:`Authenticator Code`,checkEmail:`Check your email ({{email}}) for a 6-digit code`,enterTotpHint:`Enter the 6-digit code from your authenticator app`,accessToken:`Access Token`,accessTokenHint:`Paste your Bambu Cloud access token. China-region accounts must use this path (phone-bound — email login unavailable). See the wiki for how to retrieve the token from MakerWorld cookies.`,back:`Back`,loginButton:`Login`,verifyButton:`Verify`,setTokenButton:`Set Token`,useToken:`Use access token instead`,useEmail:`Login with email instead`,toast:{loggedIn:`Logged in successfully`,codeSent:`Verification code sent to your email`,enterTotp:`Enter code from your authenticator app`,tokenSet:`Token set successfully`}},presets:{myPreset:`My preset (editable)`,duplicate:`Duplicate`,editable:`Editable`,failedToLoadDetails:`Failed to load preset details`,deleteConfirm:`Delete this preset?`,deleteWarning:`This will permanently delete "{{name}}" from Bambu Cloud. This cannot be undone.`,noDuplicatePermission:`You do not have permission to duplicate presets`,noEditPermission:`You do not have permission to edit presets`,noDeletePermission:`You do not have permission to delete presets`,types:{filament:`Filament preset`,printer:`Printer preset`,process:`Process preset`},toast:{deleted:`Preset deleted`,created:`Preset created`,updated:`Preset updated`,duplicated:`Preset duplicated`,fieldAdded:`Field "{{key}}" added`,exported:`Preset exported`},baseLabel:`Base: {{name}}`,currentLabel:`Current: {{name}}`,newPreset:`New Preset`,editPreset:`Edit Preset`,duplicatePreset:`Duplicate Preset`,createNewPreset:`Create New Preset`,customizeSettings:`Customize settings for your new preset`,compareWithBase:`Compare with base preset`,compare:`Compare`,basePreset:`Base Preset`,selectBasePreset:`Select base preset...`,presetName:`Preset Name`,myCustomPreset:`My custom preset`,inheritsFrom:`Inherits from`,dropJsonToImport:`Drop JSON to import`,tabs:{common:`Common`,allFields:`All Fields`},availableFields:`Available Fields`,searchFieldsPlaceholder:`Search fields...`,noMatchingFields:`No matching fields`,allFieldsAdded:`All fields added`,addCustomField:`Add custom field`,yourOverrides:`Your Overrides`,noOverridesYet:`No overrides yet`,clickFieldsToAdd:`Click fields on the left to add them`,saveAsTemplate:`Save as template`,jsonTip:`Tip: Drag & drop a .json file anywhere on this modal to import settings`},cloudView:{searchPlaceholder:`Search presets...`,templates:`Templates`,refresh:`Refresh`,newPreset:`New Preset`,clearFilters:`Clear filters`,compareMode:`Compare Mode`,selectAnotherPreset:`Select another {{type}} preset`,clickTwoPresets:`Click two presets of the same type to compare`,selectFirst:`1. Select first`,selectSecond:`2. Select second`,compareNow:`Compare Now`,lastSynced:`Last synced:`,showingCount:`Showing {{showing}} of {{total}} presets`,noPresetsFound:`No presets found`,columns:{filament:`Filament`,process:`Process`,printer:`Printer`},noFilamentPresets:`No filament presets`,noProcessPresets:`No process presets`,noPrinterPresets:`No printer presets`,filters:{type:`Type`,owner:`Owner`,printer:`Printer`,nozzle:`Nozzle`,filament:`Filament`,layer:`Layer`,all:`All`,myPresets:`My Presets`,builtIn:`Built-in`,process:`Process`},noTemplatesPermission:`You do not have permission to manage templates`,noRefreshPermission:`You do not have permission to refresh profiles`,noCreatePermission:`You do not have permission to create presets`},templates:{title:`Quick Templates`,noTemplates:`No templates yet`,createFirst:`Create templates from the preset editor`,typeFilter:`Type:`,deleteTitle:`Delete Template`,deleteWarning:`This action cannot be undone`,deleteConfirm:`Are you sure you want to delete "{{name}}"?`,namePlaceholder:`Template name`,descriptionPlaceholder:`Description`,settingsJson:`Settings (JSON)`,fieldsCount:`{{count}} fields`,shownInModals:`Shown in modals`,hiddenInModals:`Hidden in modals`,apply:`Apply`,toast:{deleted:`Template deleted`,updated:`Template updated`,created:`Template created`,applied:`Template applied`}}},support:{debugLoggingActive:`Debug logging is active`,manageLogs:`Manage`,collectItem7:`Printer connectivity and firmware versions`,collectItem8:`Integration status (Spoolman, MQTT, HA)`,collectItem9:`Network interfaces (subnets only)`,collectItem10:`Python package versions`,collectItem11:`Database health checks`,collectItem12:`Docker environment details`,bundleGenerating:`Generating bundle...`,bundleStepConnection:`Running printer connectivity checks`,bundleStepVirtualPrinters:`Running virtual-printer setup checks`,bundleStepLogScan:`Scanning recent logs for known issues`,bundleStepBuild:`Building the support bundle ZIP`},fileManager:{title:`File Manager`,subtitle:`Organize and manage your print files`,uploadFiles:`Upload Files`,newFolder:`New Folder`,folderName:`Folder Name`,folderNamePlaceholder:`e.g., Functional Parts`,renameFile:`Rename File`,renameFolder:`Rename Folder`,invalidFilenameChar:`The character "{{char}}" is not allowed in print filenames. The printer SD card rejects: < > : " / \\ | ? *`,moveFiles:`Move {{count}} File(s)`,rootNoFolder:`Root (No Folder)`,current:`current`,linkFolder:`Link Folder`,linkFolderDescription:`Link "{{name}}" to a project or archive for quick access.`,project:`Project`,archive:`Archive`,noProjectsFound:`No projects found`,noArchivesFound:`No archives found`,unlink:`Unlink`,link:`Link`,dragDropFiles:`Drag & drop files here`,dropFilesHere:`Drop files here`,releaseToUpload:`Release to upload`,orClickToBrowse:`or click to browse`,allFileTypesSupported:`All file types supported. ZIP files will be extracted.`,zipFilesDetected:`ZIP files detected`,zipExtractOptions:`ZIP files will be extracted. Choose how to handle folder structure:`,preserveZipStructure:`Preserve folder structure from ZIP`,createFolderFromZip:`Create folder from ZIP filename`,stlThumbnailGeneration:`STL thumbnail generation`,zipMayContainStl:`ZIP files may contain STL files. Thumbnails can be generated during extraction.`,thumbnailsCanBeGenerated:`Thumbnails can be generated for STL files. Large models may take longer to process.`,generateThumbnailsForStl:`Generate thumbnails for STL files`,threemfDetected:`3MF files detected`,threemfExtractionInfo:`Printer model, material, color, and print settings will be automatically extracted from 3MF files.`,willBeExtracted:`Will be extracted`,filesExtracted:`{{count}} files extracted`,uploadComplete:`Upload complete: {{succeeded}} succeeded`,uploadFailed:`Upload failed`,zipFilesFailed:`{{count}} files failed`,uploading:`Uploading...`,changeLink:`Change Link...`,linkTo:`Link to...`,linkToProjectOrArchive:`Link to project or archive`,generateThumbnail:`Generate Thumbnail`,generateThumbnails:`Generate Thumbnails`,generateThumbnailsForMissing:`Generate thumbnails for STL files missing them`,gridView:`Grid view`,listView:`List view`,lowDiskSpaceWarning:`Low disk space warning`,lowDiskSpaceDetails:`Only {{free}} free of {{total}} total. Threshold is set to {{threshold}} GB in settings.`,files:`Files`,folders:`Folders`,size:`Size`,free:`Free`,allFiles:`All Files`,allExternal:`External`,externalIsEmpty:`No external files`,externalEmptyDescription:`Files in your linked external folders will appear here.`,wrap:`Wrap`,enableTextWrapping:`Enable text wrapping`,disableTextWrapping:`Disable text wrapping`,collapse:`Collapse`,collapseFoldersByDefault:`Collapse folders by default`,expandFoldersByDefault:`Expand folders by default`,folderSort:`Sort folders`,folderSortByName:`By name`,folderSortByActivity:`By recent activity`,dragToResizeTooltip:`Drag to resize, double-click to reset`,searchFiles:`Search files...`,searchSubfoldersHint:`Including subfolders`,readme:{truncated:`Truncated`,show:`Show README`,hide:`Hide README`,label:`README`},tags:{title:`Tags`,subtitle:`Label files for cross-cutting filtering — toys, kid-safe, PETG-only, anything.`,manage:`Tags`,manageTitle:`Manage tag catalog`,add:`New tag`,edit:`Rename tag`,name:`Name`,fileCount:`Files`,empty:`No tags yet. Create one to start labelling files.`,noMatches:`No matching tags.`,createPlaceholder:`e.g. toys, kid-safe, petg`,createButton:`Create`,nameRequired:`Name is required.`,searchPlaceholder:`Filter tags...`,created:`Tag created.`,updated:`Tag renamed.`,deleted:`Tag removed.`,saveFailed:`Could not save tag.`,deleteFailed:`Could not remove tag.`,applyFailed:`Could not apply tags.`,applyAdd:`Add tags`,applyRemove:`Remove tags`,applyAddSuccess:`Added {{count}} tag(s) across {{files}} file(s).`,applyRemoveSuccess:`Removed {{count}} tag(s) across {{files}} file(s).`,actionAdd:`Add to selected files`,actionRemove:`Remove from selected files`,tagAction:`Tag`,bulkTitle:`Tag {{count}} selected file(s)`,bulkTooltip:`Add or remove tags on every selected file.`,noPermission:`You do not have permission to tag files.`,filterLabel:`Filtering by:`,clearAll:`Clear all`,confirmDelete:`Delete tag "{{name}}"?`,confirmDeleteMessage:`This removes the tag from the catalog. Files keep their other tags.`,confirmDeleteInUseMessage:`This tag is on {{count}} file(s). Deleting removes the chip from all of them; files themselves are untouched.`,editAria:`Edit {{name}}`,deleteAria:`Delete {{name}}`},allTypes:`All types`,prints:`Prints`,ascending:`Ascending`,descending:`Descending`,showModified:`Show modified dates`,hideModified:`Hide modified dates`,lastModified:`Last modified`,lastActivity:`Last activity`,resultsCount:`{{showing}} of {{total}} files`,selectAll:`Select All`,deselectAll:`Deselect All`,selected:`{{count}} selected`,adding:`Adding...`,loadingFiles:`Loading files...`,folderIsEmpty:`Folder is empty`,noFilesYet:`No files yet`,folderEmptyDescription:`Upload files or move files into this folder to get started.`,noFilesDescription:`Upload files to start organizing your print-related files.`,noMatchingFiles:`No matching files`,noMatchingFilesDescription:`No files match your current search or filter criteria.`,clearFilters:`Clear filters`,printedCount:`Printed {{count}}x`,uploadedBy:`Uploaded By`,deleteFolder:`Delete Folder`,deleteFile:`Delete File`,deleteFilesCount:`Delete {{count}} Files`,deleteFolderConfirm:`Are you sure you want to delete this folder? All files inside will also be deleted.`,deleteFileConfirm:`Are you sure you want to delete this file?`,deleteFilesConfirm:`Are you sure you want to delete {{count}} selected files? This action cannot be undone.`,deleting:`Deleting...`,noPermissionRenameFolder:`You do not have permission to rename folders`,noPermissionLinkFolder:`You do not have permission to link folders`,noPermissionDeleteFolder:`You do not have permission to delete folders`,onlyEmptyFoldersDeletable:`You can only delete empty folders`,noPermissionPrint:`You do not have permission to print`,noPermissionAddToQueue:`You do not have permission to add to queue`,noPermissionSlice:`You do not have permission to slice files`,noPermissionDownload:`You do not have permission to download files`,noPermissionRenameFile:`You do not have permission to rename this file`,noPermissionGenerateThumbnail:`You do not have permission to generate thumbnails`,noPermissionDeleteFile:`You do not have permission to delete this file`,noPermissionCreateFolder:`You do not have permission to create folders`,noPermissionUpload:`You do not have permission to upload files`,noPermissionMoveFiles:`You do not have permission to move files`,noPermissionDeleteFiles:`You do not have permission to delete files`,linkExternal:`Link External`,linkExternalFolder:`Link External Folder`,linkExternalFolderDescription:`Mount a host directory (NAS, USB, network share) into the File Manager. Files are not copied — they are accessed directly from the original path.`,externalFolderNamePlaceholder:`e.g., NAS Prints`,externalPath:`Host Path`,externalPathHelp:`Absolute path to the directory on the Docker host. Must be bind-mounted into the container.`,readOnly:`Read Only`,readOnlyHelp:`prevents uploads and deletions`,showHiddenFiles:`Show hidden files (dotfiles)`,externalFolder:`External Folder`,scanFolder:`Scan`,toast:{folderCreated:`Folder created`,folderDeleted:`Folder deleted`,fileDeleted:`File deleted`,filesDeleted:`Deleted {{count}} files`,filesMoved:`Files moved`,folderLinked:`Folder linked`,folderUnlinked:`Folder unlinked`,externalFolderLinked:`External folder linked and scanned`,folderScanned:`Scan complete: {{added}} added, {{removed}} removed`,addedToQueue:`Added {{count}} file(s) to queue`,addedToQueuePartial:`Added {{added}} file(s), {{failed}} failed`,failedToAddToQueue:`Failed to add files: {{error}}`,fileRenamed:`File renamed`,folderRenamed:`Folder renamed`,thumbnailsGenerated:`Generated {{count}} thumbnail(s)`,thumbnailsGeneratedPartial:`Generated {{succeeded}} thumbnail(s), {{failed}} failed`,noStlMissingThumbnails:`No STL files missing thumbnails`,failedToGenerateThumbnails:`Failed to generate thumbnails: {{error}}`,thumbnailGenerated:`Thumbnail generated`,failedToGenerateThumbnail:`Failed to generate thumbnail: {{error}}`}},projects:{title:`Projects`,subtitle:`Organize and track your 3D printing projects`,newProject:`New Project`,editProject:`Edit Project`,deleteProject:`Delete Project`,projectName:`Project Name`,description:`Description`,noProjects:`No projects yet`,noProjectsFiltered:`No {{status}} projects`,noProjectsFilteredHelp:`You don't have any {{status}} projects. Projects will appear here when their status changes.`,createFirst:`Create your first project to start organizing related prints, tracking progress, and managing your builds.`,createFirstButton:`Create Your First Project`,create:`Create`,files:`Files`,prints:`Prints`,plates:`plates`,parts:`parts`,lastModified:`Last Modified`,deleteConfirm:`Are you sure you want to delete this project? Archives and queue items will be unlinked but not deleted.`,addFiles:`Add Files`,removeFile:`Remove File`,viewDetails:`View Details`,namePlaceholder:`e.g., Voron 2.4 Build`,descriptionPlaceholder:`Optional description...`,urlLabel:`URL`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`URL must start with http:// or https://`,openExternalUrl:`Open project URL`,coverImageLabel:`Cover photo`,coverImageAlt:`Project cover photo`,coverImageUpload:`Upload`,coverImageReplace:`Replace`,coverImageRemove:`Remove`,color:`Color`,targetPlates:`Target Plates`,targetPlatesPlaceholder:`e.g., 25`,targetPlatesHelp:`Number of print jobs`,targetParts:`Target Parts`,targetPartsPlaceholder:`e.g., 150`,targetPartsHelp:`Total objects needed`,targetSets:`Copies per File`,targetSetsPlaceholder:`e.g., 10`,targetSetsHelp:`Times each printable file should be printed`,tagsLabel:`Tags (comma-separated)`,tagsPlaceholder:`e.g., voron, functional, gift`,dueDate:`Due Date`,priority:`Priority`,priorityLow:`Low`,priorityNormal:`Normal`,priorityHigh:`High`,priorityUrgent:`Urgent`,statusActive:`Active`,statusCompleted:`Completed`,statusArchived:`Archived`,done:`Done`,completed:`completed`,failed:`failed`,inQueue:`in queue`,noPrintsYet:`No prints yet`,printJobs:`Print jobs (plates)`,partsPrinted:`Parts printed`,failedParts:`Failed parts`,import:`Import`,export:`Export`,importProject:`Import project`,exportAll:`Export all projects`,loading:`Loading projects...`,noEditPermission:`You do not have permission to edit projects`,noDeletePermission:`You do not have permission to delete projects`,noCreatePermission:`You do not have permission to create projects`,noImportPermission:`You do not have permission to import projects`,noExportPermission:`You do not have permission to export projects`,toast:{created:`Project created`,updated:`Project updated`,deleted:`Project deleted`,imported:`Project imported`,multipleImported:`{{count}} projects imported`,importFailed:`Import failed`,exported:`Projects exported (metadata only)`}},projectDetail:{notFound:`Project not found`,backToProjects:`Back to Projects`,export:`Export`,exportProject:`Export project`,noExportPermission:`You do not have permission to export projects`,noEditPermission:`You do not have permission to edit projects`,partOf:`Part of:`,priorityLabel:`Priority:`,noPrints:`No prints in this project yet`,status:{active:`Active`,completed:`Completed`,archived:`Archived`},priority:{low:`Low`,normal:`Normal`,high:`High`,urgent:`Urgent`},dueDate:{overdue:`Overdue`,today:`Due today`,daysLeft:`{{count}} days left`},progress:{platesProgress:`Plates Progress`,partsProgress:`Parts Progress`,setsProgress:`Complete Sets`,sets:`sets`,setsHint:`A set is complete once every printable file has reached this count`,printJobs:`print jobs`,parts:`parts`,percentComplete:`{{percent}}% complete`,remaining:`{{count}} remaining`},stats:{printJobs:`Print Jobs`,total:`total`,failed:`{{count}} failed`,partsPrinted:`{{count}} parts printed`,printTime:`Print Time`,filamentUsed:`Filament Used`},cost:{title:`Cost Tracking`,filamentCost:`Filament Cost`,energy:`Energy`,totalCost:`Total Cost`,total:`Total`,includesBom:`incl. BOM`,budget:`Budget`,remaining:`Remaining`},subProjects:{title:`Sub-projects ({{count}})`},notes:{title:`Notes`,noEditPermission:`You do not have permission to edit notes`,placeholder:`Add notes about this project...`,empty:`No notes yet. Click Edit to add notes.`},files:{title:`Files`,linkFolders:`Link folders from the File Manager`,forQuickAccess:`to this project for quick access.`,fileCount:`{{count}} file(s)`,empty:`No folders linked. Go to File Manager and link a folder to this project.`,printedCount:`Printed {{count}} time(s)`,progressTooltip:`{{done}} of {{target}} completed prints`,noFiles:`No files in this folder.`},bom:{title:`Bill of Materials`,acquired:`{{completed}}/{{total}} acquired`,showAll:`Show all`,hideDone:`Hide done`,addPart:`Add Part`,noAddPermission:`You do not have permission to add parts`,partNamePlaceholder:`Part name (e.g., M3x8 screws)`,partName:`Part name`,qty:`Qty`,price:`Price ({{currency}})`,sourcingUrlPlaceholder:`Sourcing URL (optional)`,remarksPlaceholder:`Remarks (optional)`,deletePart:`Delete Part`,deleteConfirm:`Are you sure you want to delete "{{name}}"?`,noUpdatePermission:`You do not have permission to update parts`,noEditPermission:`You do not have permission to edit parts`,noDeletePermission:`You do not have permission to delete parts`,totalCost:`Total cost:`,empty:`No parts in the bill of materials. Add hardware, electronics, or other components to track what needs to be sourced.`},timeline:{title:`Activity Timeline`,empty:`No activity yet.`},template:{saveAsTemplate:`Save as Template`,noCreatePermission:`You do not have permission to create templates`},queue:{title:`Queue`,viewAll:`View all`,printing:`{{count}} printing`,queued:`{{count}} queued`},prints:{title:`Prints ({{count}})`},toast:{projectUpdated:`Project updated`,partAdded:`Part added`,partRemoved:`Part removed`,exportFailed:`Export failed`,projectExported:`Project exported`,templateCreated:`Template created`}},system:{title:`System Information`,version:`Version`,uptime:`Uptime`,cpuUsage:`CPU Usage`,memoryUsage:`Memory Usage`,diskUsage:`Disk Usage`,networkInfo:`Network Info`,logs:`Logs`,debugMode:`Debug Mode`,enableDebug:`Enable Debug Logging`,disableDebug:`Disable Debug Logging`,downloadLogs:`Download Logs`,clearLogs:`Clear Logs`,dockerInfo:`Docker Info`,containerName:`Container Name`,imageName:`Image Name`,platform:`Platform`,architecture:`Architecture`},sponsors:{sectionTitle:`Independent & community-funded`,tagline:`Bambuddy is free and stays that way because people choose to support it. No VC, no cloud lock-in.`,viewSupporters:`View supporters`,toastPrints:`You've completed {{count}} prints with Bambuddy. Bambuddy stays free thanks to its supporters.`,toastCost:`You've tracked {{total}} in filament with Bambuddy. See who keeps the project independent.`,toastArchives:`{{count}} prints archived with Bambuddy. See who keeps it independent.`,toastAnniversary:`One year with Bambuddy! See who keeps the project independent.`,toastVersionUpdate:`Updated to v{{version}}. Bambuddy stays free thanks to its supporters.`,toastBusiness:`Running Bambuddy on {{count}} printers? There's a support plan for teams — priority fixes, invoicing, and a direct line to the maintainer.`,businessCta:`Bambuddy for business`,businessTitle:`Bambuddy for business`,businessTagline:`You're running {{count}} printers. Priority support, commercial licensing and invoicing are available for teams and print farms.`},library:{title:`Filament Library`,addFilament:`Add Filament`,editFilament:`Edit Filament`,deleteFilament:`Delete Filament`,vendor:`Vendor`,material:`Material`,color:`Color`,kFactor:`K Factor`,temperature:`Temperature`,noFilaments:`No filaments in library`,deleteConfirm:`Are you sure you want to delete this filament?`,importFromPrinter:`Import from Printer`,exportToFile:`Export to File`,runWithPipeline:{actionLabel:`Run with pipeline`,noPermission:`You do not have permission to run pipelines`,modalTitle:`Run with pipeline`,confirmTitle:`Confirm run`,confirmIntro:`Pre-flight found issues with this run`,sourceHint:`Source`,pipelineHint:`Pipeline`,targetHint:`Target`,pipelineListAria:`Available pipelines`,runAnyway:`Run anyway`,loading:`Loading…`,empty:`No pipelines saved yet. Open the Slice dialog and click "Save as pipeline" to create one.`,noTarget:`No target printer set`,noTargetMessage:`This pipeline has no target printer set. Open it in Settings to pick one.`,copies:`Copies`,copiesHint:`max {{n}}`,classTarget:`Any {{model}}`,toast:{started:`Pipeline run started`,failed:`Could not start run`},issue:{printerNotSet:`No target printer set on this pipeline.`,printerNotFound:`Target printer no longer exists.`,printerDisabled:`Target printer is disabled.`,printerOffline:`Target printer is offline.`,filamentType:`Filament slot {{slot}}: expected {{expected}}, AMS has {{actual}}`,filamentColor:`Filament slot {{slot}}: colour differs (expected {{expected}}, AMS has {{actual}})`,amsSlotMissing:`AMS slot {{slot}} not available on this printer`,filamentUnverified:`Filament slot {{slot}} comes from a cloud / standard preset and could not be statically verified.`,noClassMatches:`No printers in this install match the pipeline's target model class ({{expected}}).`,classNotSet:`Pipeline target is set to a printer class but no model was chosen.`}}},slice:{title:`Slice model`,action:`Slice`,actionAll:`Slice all {{count}} plates`,actionAllTitle:`Slice every plate into one multi-plate output (single archive). Filament selection covers every slot the project defines.`,allPlatesToggle:`Slice all {{count}} plates`,slicing:`Slicing…`,printer:`Printer profile`,process:`Process profile`,filament:`Filament profile`,filamentSlot:`Filament {{index}} ({{type}})`,selectPreset:`— Select a preset —`,loadingPresets:`Loading presets…`,analyzingPlateFilaments:`Analyzing plate filaments…`,analyzingPlateFilamentsHint:`Running a preview slice to discover which AMS slots this plate uses. Cached after — re-opening is instant.`,previewToast:`Analyzing {{name}} — {{elapsed}}`,previewWithProgress:`Analyzing {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,notUsedByPlate:`— not used by this plate`,noPresetsForSlot:`No presets available`,otherPrinters:`Other printers`,presetsLoadFailed:`Failed to load presets. Open Settings → Profiles to import them first.`,refreshPresets:`Refresh`,refreshPresetsTitle:`Refresh presets — fetch the latest cloud and bundled listings (use after deleting a preset in Bambu Studio or Bambu Handy)`,allPresetsRequired:`All presets must be selected`,useEmbedded:`Use the file's built-in settings`,useEmbeddedHint:`Slice it the way the designer set it up (walls, infill, filament) instead of the profiles above. Offered because your printer matches the file's.`,designSettings:`Keep the designer's settings`,designSettingsHint:`This file changes {{count}} print setting(s) from the stock profile.`,designSettingsSelected:`{{selected}} of {{total}} selected`,designSettingsPrinterCoupled:`printer-specific`,designSettingsPrinterCoupledHint:`Tuned for the printer this file was designed for — may be wrong or out of range on yours.`,enqueuing:`Submitting slice job…`,queued:`Queued…`,failed:`Slicing failed. Check the slicer sidecar logs.`,startedToast:`Slicing {{name}} in the background…`,queuedToast:`Queued: {{name}} — {{elapsed}}`,runningToast:`Slicing {{name}} — {{elapsed}}`,runningWithProgress:`{{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,runningWithProgressMultiPlate:`Plate {{plateIndex}} of {{plateCount}} • {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,completedToast:`Sliced {{name}}`,failedTitle:`Slicing failed`,failedToast:`Slicing {{name}} failed: {{detail}}`,tier:{local:`Imported`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`Standard`},cloud:{notAuthenticated:`Sign in to Bambu Cloud (Settings → Profiles → Bambu Cloud) to see your cloud presets.`,expired:`Bambu Cloud session expired — sign in again to refresh your cloud presets.`,unreachable:`Bambu Cloud is unreachable right now. Local and standard presets still work.`},orcaCloud:{notAuthenticated:`Sign in to Orca Cloud (Profiles → Orca Cloud) to see your Orca presets.`,expired:`Orca Cloud session expired — sign in again to refresh your Orca presets.`,unreachable:`Orca Cloud is unreachable right now. Other presets still work.`},bedType:{label:`Build plate`,auto:`Auto (use process preset)`,coolPlate:`Cool Plate`,coolPlateSuperTack:`Cool Plate SuperTack`,engineering:`Engineering Plate`,highTemp:`High Temp Plate`,texturedPEI:`Textured PEI Plate`,smoothPEI:`Smooth PEI Plate`},pipelines:{label:`Pipeline`,applyAria:`Apply pipeline`,applyPrompt:`Apply pipeline…`,empty:`No saved pipelines`,saveButton:`Save as pipeline`,saveTitle:`Save the current four-slot selection as a reusable pipeline`,namePlaceholder:`Pipeline name`,nameAria:`New pipeline name`,toast:{applied:`Applied "{{name}}"`,saved:`Pipeline saved`,saveFailed:`Save failed`}}},spoolman:{title:`Spoolman Integration`,enabled:`Spoolman Enabled`,url:`Spoolman URL`,connected:`Connected`,disconnected:`Not Connected`,testConnection:`Test Connection`,sync:`Sync`,syncing:`Syncing...`,lastSync:`Last Sync`,linkToSpoolman:`Link to Spoolman`,openInSpoolman:`Open in Spoolman`,unlinkSpool:`Unlink Spool`,unlinkConfirmTitle:`Unassign Spool?`,unlinkConfirmMessage:`This will remove the spool from this slot. The spool data itself will remain unchanged.`,selectSpool:`Select Spool`,noUnlinkedSpools:`No unassigned spools available`,linkSuccess:`Spool assigned successfully`,linkFailed:`Failed to assign spool`,unlinkSuccess:`Spool unassigned successfully`,unlinkFailed:`Failed to unassign spool`,linkedSpool:`Assigned spool`,spoolId:`Spool ID`,fillSourceLabel:`(Spoolman)`,weight:`Weight`,remaining:`Remaining`,disableWeightSync:`Disable AMS Estimated Weight Sync`,disableWeightSyncDesc:`Don't update remaining capacity from AMS estimates. Use this if you prefer Spoolman's usage tracking over AMS percentage-based estimates. New spools will still use the AMS estimate as their initial weight.`,reportPartialUsage:`Report Partial Usage for Failed Prints`,reportPartialUsageDesc:`When a print fails or is cancelled, report the estimated filament used up to that point based on layer progress.`},locations:{title:`Storage Locations`,subtitle:`Manage shelves, drawers, and other physical storage spots for your spools`,add:`Add Location`,addShort:`Add`,edit:`Edit Location`,name:`Name`,spools:`Spools`,empty:`No storage locations yet. Create your first shelf or drawer.`,manage:`Locations`,createPlaceholder:`e.g. Shelf A, Drawer 1`,nameRequired:`Location name is required`,created:`Location created`,updated:`Location updated`,deleted:`Location deleted`,saveFailed:`Failed to save location`,deleteFailed:`Failed to delete location`,deleteBlocked:`Remove all spools from this location before deleting`,confirmDelete:`Delete "{{name}}"?`,confirmDeleteMessage:`This location will be removed from the catalog. Spools must be moved first.`},inventory:{title:`Spool Inventory`,subtitle:`Manage your spools`,addToInventory:`Add to Inventory`,addToInventoryPending:`Adding...`,addToInventorySuccess:`Spool added to inventory`,addToInventoryFailed:`Failed to add spool to inventory`,unknownSpoolTitle:`New filament detected`,unknownSpoolMessage:`A spool with an unknown RFID tag was detected at {{location}}. Add it to your inventory now?`,unknownSpoolSlot:`Slot`,bulk:{selectAllVisible:`Select all visible`,selectRow:`Select row`,selectGroup:`Select group`,selectionCount:`{{count}} selected`,edit:`Edit`,printLabels:`Print labels`,resetUsage:`Reset usage`,restore:`Restore`,archive:`Archive`,delete:`Delete`,clearSelection:`Clear selection`,editTitle:`Bulk edit spools`,editSubtitle:`Applies to {{count}} selected spools. Only fields you tick get updated.`,editHint:`Type into a field to mark it for update — only ticked rows are sent. Leaving a field empty leaves the spools unchanged (clearing fields is per-spool only).`,useCustom:`Use "{{value}}"`,toggleField:`Toggle update for this field`,changeCount:`{{count}} fields will be updated.`,applyPending:`Applying...`,applyButton:`Apply to {{count}} spools`,deleteTitle:`Delete selected spools`,archiveTitle:`Archive selected spools`,restoreTitle:`Restore selected spools`,resetUsageTitle:`Reset usage on selected spools`,deleteMessage:`Permanently delete {{count}} spools? This cannot be undone.`,archiveMessage:`Archive {{count}} spools? They can be restored later.`,restoreMessage:`Restore {{count}} archived spools?`,resetUsageMessage:`Reset the "Total Consumed" counter on {{count}} spools? Remaining weight is preserved.`,updateSuccess:`{{count}} spools updated`,updateFailed:`Bulk update failed`,updatePartial:`{{ok}} spools updated, {{failed}} failed`,updateAllFailed:`All {{count}} spool updates failed — selection kept so you can retry`,deleteSuccess:`{{count}} spools deleted`,deleteFailed:`Bulk delete failed`,deletePartial:`{{ok}} spools deleted, {{failed}} failed`,deleteAllFailed:`All {{count}} spool deletions failed — selection kept so you can retry`,archiveSuccess:`{{count}} spools archived`,archiveFailed:`Bulk archive failed`,archivePartial:`{{ok}} spools archived, {{failed}} failed`,archiveAllFailed:`All {{count}} spool archives failed — selection kept so you can retry`,restoreSuccess:`{{count}} spools restored`,restoreFailed:`Bulk restore failed`,restorePartial:`{{ok}} spools restored, {{failed}} failed`,restoreAllFailed:`All {{count}} spool restores failed — selection kept so you can retry`,invalidHex:`Enter 6 hex characters (RRGGBB) or 8 (RRGGBBAA). The field will not be applied otherwise.`},spoolmanMixedContentTitle:`Spoolman can't load over HTTPS — mixed-content blocked by your browser`,spoolmanMixedContentBody:`Bambuddy is served over HTTPS (via your reverse proxy), but your Spoolman URL is still plain HTTP. Browsers block mixed content for security, so the embedded Spoolman UI can't render. Spoolman needs to be reachable over HTTPS for this to work.`,spoolmanMixedContentFixReverseProxy:`Put Spoolman behind the same reverse proxy as Bambuddy (Traefik / Nginx / Caddy) with HTTPS, then update the Spoolman URL in Settings to the new HTTPS address.`,spoolmanMixedContentFixOpenNewTab:`As a workaround, open Spoolman in a new browser tab over HTTP — mixed-content rules only apply to embedded frames, so a standalone tab still works.`,spoolmanOpenInNewTab:`Open Spoolman in a new tab`,labels:{title:`Print spool labels`,selectedCount:`{{count}} selected`,pickSpools:`Pick which spools to print labels for:`,monochrome:`Monochrome (black & white printer)`,monochromeHint:`Drops the colour swatch and widens the text`,searchPlaceholder:`Search name, brand, or #ID`,filterByMaterial:`Material:`,allMaterials:`All`,selectVisible:`Select all visible ({{count}})`,deselectVisible:`Deselect visible`,clearAll:`Clear all`,noSpoolsToShow:`No spools to show. Adjust your filter and try again.`,noMatches:`No spools match the current search or filter.`,printOne:`Print label for this spool`,printLabels:`Print labels…`,bulkTitle:`Pick spools to print labels for from the {{count}} currently shown`,noSpoolsTitle:`No spools to label`,error:`Could not generate labels: {{msg}}`,sortBy:{label:`Sort:`,id:`By ID`,color:`By colour`},templates:{amsHolderSmall:{label:`AMS holder — small (74 × 33 mm)`,hint:`Single label per page; matches the printable label from MakerWorld model 752566 (AMS Filament Label Holder).`},amsHolderLarge:{label:`AMS holder — large (75 × 55 mm)`,hint:`Single label per page; fits the cardstock-insert variant of the AMS Filament Label Holder. Roomy enough for swatch, brand, material, ID, and QR code.`},box40x30:{label:`Box label (40 × 30 mm)`,hint:`Single label per page; common DK/Brother roll size, good for filament-bag and storage-bin labels.`},box:{label:`Box label (62 × 29 mm)`,hint:`Single label per page; sized for Brother PT/QL and Dymo small labels.`},averyL7160:{label:`Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)`,hint:`EU sheet stock; 21 labels per A4 page.`},avery5160:{label:`Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)`,hint:`US sheet stock; 30 labels per Letter page.`}}},csv:{importButton:`Import CSV`,exportButton:`Export CSV`,modalTitle:`Import spools from CSV`,selectFile:`Choose a CSV file or drag it here`,dragHint:`Header: material (required), brand, subtype, color_name, rgba, …`,parsing:`Reading file…`,previewError:`Could not read the CSV file`,validCount:`{{count}} valid`,errorCount:`{{count}} error`,skippedCount:`{{count}} skipped`,colRow:`Row`,colStatus:`Status`,colColor:`Color`,colorResolved:`Color filled from catalog`,colorCrossMaterial:`Color taken from a different material — no exact match in catalog`,duplicateExisting:`A spool with this material, brand and color already exists — it will still be imported as a new spool`,spoolmanHint:`In Spoolman mode, use Spoolman's built-in CSV import/export.`,importValidRows:`Import {{count}} valid rows`,noValidRows:`No valid rows`,importing:`Importing…`,importSuccess:`{{count}} spools imported`,importError:`Import failed`,exportError:`Export failed`},addSpool:`Add Spool`,editSpool:`Edit Spool`,copySpool:`Copy Spool`,material:`Material`,selectMaterial:`Select material...`,subtype:`Subtype`,brand:`Brand`,searchBrand:`Search brand...`,useCustomBrand:`Use "{{brand}}"`,useCustomMaterial:`Use custom material: {{material}}`,suggestedOptions:`Suggested`,allOptions:`All`,colorName:`Color Name`,colorNamePlaceholder:`Jade White, Fire Red...`,color:`Color`,hexColor:`Hex Color`,pickColor:`Pick custom color`,labelWeight:`Label Weight`,coreWeight:`Empty Spool Weight`,searchSpoolWeight:`Search spool weight...`,weightUsed:`Used`,currentWeight:`Remaining Weight`,measuredWeight:`Measured Weight`,spoolName:`Spool`,costPerKg:`Cost per kg`,storageLocation:`Storage Location`,storageLocationPlaceholder:`e.g. Shelf A, Drawer 1`,openInInventory:`Open in Inventory`,measuredWeightError:`Measured weight must be between {{min}}g and {{max}}g.`,slicerFilament:`Slicer Filament`,slicerFilamentName:`Slicer Preset Name`,slicerPreset:`Slicer Preset`,searchPresets:`Search filament presets...`,selectedPreset:`Selected`,noPresetsFound:`No presets found`,tempOverrides:`Temperature Overrides`,note:`Note`,notePlaceholder:`Any additional notes about this spool...`,category:`Category`,categoryPlaceholder:`e.g. Production, Prototype, Client A`,categoryNone:`Uncategorized`,storageLocationNone:`No location set`,lowStockThresholdOverride:`Low-stock threshold (this spool)`,lowStockThresholdOverrideHelp:`Leave blank to use the global threshold ({{global}}%).`,clearRfid:`Clear RFID Tag`,rfidCleared:`RFID tag cleared`,archive:`Archive`,restore:`Restore`,noSpools:`No spools yet. Add your first spool to get started.`,noAvailableSpools:`No spools available. Add a spool to your inventory or unassign one from another slot first.`,kProfiles:`K-Profiles`,addKProfile:`Add K-Profile`,assignSpool:`Assign Spool`,unassignSpool:`Unassign`,assignSuccess:`Spool assigned and AMS slot configured`,assignPendingInsert:`Assigned. Slot will configure when you insert the spool.`,assignFailed:`Failed to assign spool`,selectSpool:`Select a spool to assign to this slot`,assigned:`Assigned`,assigning:`Assigning...`,searchSpools:`Search spools...`,showAllSpools:`Show all spools`,spoolmanSpools:`Spoolman Spools`,allMaterials:`All Materials`,filterByBrand:`Filter by brand...`,showArchived:`Show archived`,quickAdd:`Quick Add (Stock)`,quantity:`Quantity`,stock:`Stock`,configured:`Configured`,spoolsCreated:`{{count}} spools created`,spoolsPartiallyCreated:`{{created}} of {{total}} spools created (some failed)`,spoolCreated:`Spool created`,spoolUpdated:`Spool updated`,spoolDeleted:`Spool deleted`,deepLinkSpoolNotFound:`Spool not found`,deepLinkFetchFailed:`Could not load spool — try again`,spoolArchived:`Spool archived`,spoolRestored:`Spool restored`,kProfileSaveFailed:`K-profile settings could not be saved`,syncWeightSpoolNotFound:`Spool not found — it may have been deleted`,syncWeightSpoolmanUnreachable:`Spoolman is unreachable — try again later`,syncWeightFailed:`Failed to sync weight`,spoolmanUnreachable:`Spoolman is not reachable — please try again later`,deleteSpoolNotFound:`Spool not found — it may have already been deleted`,deleteFailed:`Failed to delete spool`,archiveSpoolNotFound:`Spool not found — it may have already been deleted`,archiveFailed:`Failed to archive spool`,restoreSpoolNotFound:`Spool not found — it may have already been deleted`,restoreFailed:`Failed to restore spool`,saveFailed:`Failed to save changes`,tagClearFailed:`Failed to clear tag`,deleteConfirm:`Are you sure you want to delete this spool? This cannot be undone.`,archiveConfirm:`Are you sure you want to archive this spool?`,advancedSettings:`Advanced Settings`,filamentInfoTab:`Filament Info`,paProfileTab:`PA Profile`,filamentInfo:`Filament`,additional:`Additional`,loadingPresets:`Loading cloud presets...`,cloudConnected:`Cloud connected`,cloudNotConnected:`Cloud not connected (using defaults)`,recentColors:`Recent`,searchColors:`Search colors...`,searchResults:`Search results`,allColors:`All colors`,commonColors:`Common colors`,showLess:`Show less`,showAll:`Show all`,noColorsFound:`No colors match your search`,noResults:`No matches found`,extraColorsLabel:`Extra colors`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`Paste 2 to 8 hex stops, separated by commas. Renders as a gradient.`,extraColorsInvalid:`Ignored invalid hex: {{tokens}}`,colorEffectLabel:`Effect`,colorEffect:{none:`None`,sparkle:`Sparkle`,wood:`Wood`,marble:`Marble`,glow:`Glow`,matte:`Matte`,silk:`Silk`,galaxy:`Galaxy`,rainbow:`Rainbow`,metal:`Metal`,translucent:`Translucent`,gradient:`Gradient`,dualColor:`Dual Color`,triColor:`Tri Color`,multicolor:`Multicolor`},selectMaterialFirst:`Please select a material first in the Filament Info tab.`,noPrintersConfigured:`No printers configured. Add printers to use PA profiles.`,matchingFilter:`Matching`,anyBrand:`Any brand`,anyVariant:`Any variant`,autoSelect:`Auto-select`,matches:`matches`,match:`match`,noMatches:`No matches`,connected:`Connected`,offline:`Offline`,printerOffline:`Printer is offline. Connect to view calibration profiles.`,noKProfilesMatch:`No K-profiles match the selected filament.`,leftNozzle:`Left Nozzle`,rightNozzle:`Right Nozzle`,profilesSelected:`calibration profile(s) selected`,totalInventory:`Total Inventory`,totalConsumed:`Total Consumed`,byMaterial:`By Material`,inPrinter:`In Printer`,lowStock:`Low Stock`,sinceTracking:`Since tracking started`,resetConsumedCounter:`Reset counter`,resetConsumedCounterTooltip:`Zero the consumed-grams counter for this spool. Remaining weight is not changed.`,resetConsumedCounterConfirm:`Reset this spool's consumed-grams counter to 0? Future prints will track from zero again. The spool itself, its remaining weight calculation, and your settings are not changed.`,resetAllConsumedCounters:`Reset all counters`,resetAllConsumedCountersTooltip:`Zero the consumed-grams counter on every spool. Remaining weights are not changed.`,resetAllConsumedCountersConfirm:`Reset the consumed-grams counter to 0 on all {{count}} spools (archived ones included)? This clears the "Total Consumed" stat so future prints track from zero. Spools and remaining weights are not changed.`,consumedCounterReset:`Counter reset`,allConsumedCountersReset:`Counter reset for {{count}} spool(s)`,resetConsumedCounterFailed:`Failed to reset counter`,loadedInAms:`Loaded in AMS/Ext`,remaining:`Remaining`,weightCheck:`Weight Check`,lastWeighed:`Last weighed`,neverWeighed:`Never weighed`,search:`Search spools...`,showing:`Showing`,to:`to`,of:`of`,show:`Show`,spools:`spools`,spool:`spool`,page:`Page`,noSpoolsMatch:`No results found`,noSpoolsMatchDesc:`Try adjusting your search or filters to find what you're looking for.`,active:`Active`,archived:`Archived`,all:`All`,used:`Used`,new:`New`,clearFilters:`Clear filters`,table:`Table`,cards:`Cards`,net:`Net`,groupSimilar:`Group`,groupedSpools:`{{count}} identical spools`,groupedRows:`rows`,columns:`Columns`,configureColumns:`Configure Columns`,configureColumnsDesc:`Drag to reorder columns or use arrows. Toggle visibility with the eye icon.`,visible:`visible`,reset:`Reset`,cancel:`Cancel`,applyChanges:`Apply Changes`,moveUp:`Move up`,moveDown:`Move down`,hideColumn:`Hide column`,showColumn:`Show column`,linkToSpool:`Link to Spool`,tagLinked:`Tag linked to spool`,tagLinkFailed:`Failed to link tag`,tagAlreadyLinked:`Tag already linked to another spool`,unknownTag:`Unknown RFID tag detected`,usageHistory:`Usage History`,noUsageHistory:`No usage recorded yet`,printName:`Print Name`,weightConsumed:`Weight Consumed`,clearHistory:`Clear`,historyCleared:`Usage history cleared`,fillSourceLabel:`(Inv)`,lowStockThresholdError:`Threshold must be between 0.1 and 99.9`,assignMismatchTitle:`Material mismatch`,assignMismatchMessage:`The selected spool material "{{spoolMaterial}}" does not match the tray material "{{trayMaterial}}" for {{location}}. Assign anyway?`,assignMismatchConfirm:`Assign Anyway`,assignPartialMismatchMessage:`The spool material "{{spoolMaterial}}" is similar to but not exactly matching "{{trayMaterial}}" in {{location}}. Do you want to proceed?`,assignProfileMismatchMessage:`The spool profile "{{spoolProfile}}" does not match the tray profile "{{trayProfile}}" in {{location}}. Do you want to proceed?`,assignReconfigureNote:`The AMS slot will be reconfigured to use the spool's profile.`,spoolmanFilamentCatalog:`Spoolman Filament Catalog`,pickFromSpoolmanCatalog:`Pick from Spoolman catalog…`,spoolmanFilamentSelected:`Filament selected from Spoolman catalog`,spoolmanFilamentUnlinked:`Filament catalog link cleared`,noSpoolmanFilaments:`No filaments found in Spoolman catalog`,spoolmanFilamentColorSwatch:`Filament color`,spoolWeightManagedBySpoolman:`Empty spool weight is managed per filament type in Spoolman`,spoolmanCatalogLoadFailed:`Failed to load Spoolman filament catalog`},timelapse:{title:`Timelapse`,create:`Create Timelapse`,download:`Download`,delete:`Delete`,preview:`Preview`,frameRate:`Frame Rate`,quality:`Quality`,processing:`Processing...`,noTimelapses:`No timelapses available`},ams:{title:`AMS`,slot:`Slot`,empty:`Empty`,emptySlot:`Empty slot`,slotEmpty:`Empty`,slotUnconfigured:`?`,emptySlotReset:`No filament assigned`,unknown:`Unknown`,humidity:`Humidity`,temperature:`Temperature`,filamentType:`Filament Type`,filamentColor:`Color`,remaining:`Remaining`,history:`AMS History`,noHistory:`No history available`,configureSlot:`Configure Slot`,externalSpool:`External Spool`,profile:`Profile`,kFactor:`K Factor`,fill:`Fill`,configure:`Configure`,used:`used`,remainingUnit:`remaining`},printModal:{selectPrinter:`Select Printer`,selectPlate:`Select Plate`,filamentMapping:`Filament Mapping`,plateN:`Plate {{n}}`,plateFilamentsUnreadable:`The filaments of a selected plate could not be read, so it can't be mapped. Deselect it to queue the others.`,totalCost:`Total cost:`,slotRemainingShort:` - {{grams}}g left`,printSettings:`Print Settings`,bedLeveling:`Bed Leveling`,flowCalibration:`Flow Calibration`,vibrationCalibration:`Vibration Calibration`,layerInspection:`First Layer Inspection`,timelapse:`Timelapse`,cancel:`Cancel`,noPrintersAvailable:`No printers available`,printerBusy:`Printer is busy`,printerOffline:`Printer is offline`,sameTypeDifferentColor:`Same type, different color`,filamentTypeNotLoaded:`Filament type not loaded`,whenToPrint:`When to print`,asap:`ASAP`,queue:`Queue`,schedule:`Schedule`,dateTime:`Date & Time`,invalidDateTime:`Please enter a valid date and time`,openCalendar:`Open calendar`,requireManualStart:`Require manual start`,requirePreviousSuccess:`Only start if previous print succeeded`,autoOffAfter:`Power off printer when done`,helpAsap:`Print will be added to the top of the queue and start as soon as an eligible printer is idle.`,helpSchedule:`Print will start at the scheduled time if the printer is idle. If busy, it will wait until the printer becomes available.`,helpQueue:`Print will be added to the back of the queue.`,leftNozzle:`L`,rightNozzle:`R`,leftNozzleTooltip:`Left nozzle`,rightNozzleTooltip:`Right nozzle`,filamentOverride:`Filament Override`,filamentOverrideHint:`Optionally override filaments for model-based assignment. The scheduler will match against your selected filaments instead of the original 3MF values.`,originalFilament:`Original`,overrideWith:`Override with`,resetToOriginal:`Reset to original`,insufficientFilamentTitle:`Not enough filament`,waitingForAmsStatus:`Waiting for AMS status from {{printer}}…`,insufficientFilamentMessage:`Some assigned spools have less filament remaining than this print needs:`,insufficientFilamentLine:`{{printer}} - {{slot}}: needs {{required}}g, remaining {{remaining}}g`,printAnyway:`Print anyway`,forceColorMatch:`Force color match`,staggerPrinterStarts:`Stagger printer starts`,staggerGroupSize:`Group size`,staggerInterval:`Interval (min)`,staggerPreview:`{{printers}} printers → {{groups}} groups of {{size}}, starting every {{interval}} min`,staggerLastGroup:`last group: {{count}}`,staggerTotal:`total: {{minutes}} min`,staggerToPrinters:`Stagger to {{count}} printers`,gcodeInjection:`Inject auto-print G-code`},backup:{includesEncryptionKey:`Local backups include the MFA encryption key file (DATA_DIR/.mfa_encryption_key) so a backup ZIP is self-contained. Treat the ZIP as sensitive — anyone with the file can decrypt the OIDC client secrets and TOTP secrets stored inside.`,title:`Backup & Restore`,createBackup:`Create Backup`,restoreBackup:`Restore Backup`,restoreDescription:`Replace all data from a backup file`,downloadBackup:`Download Backup`,uploadBackup:`Upload Backup`,lastBackup:`Last Backup`,autoBackup:`Auto Backup`,backupNow:`Backup Now`,restoreWarning:`Warning: Restoring a backup will overwrite all current data.`,includeArchives:`Include Archives`,includeSettings:`Include Settings`,includeProfiles:`Include Profiles`,backupSuccess:`Backup created successfully`,restoreSuccess:`Backup restored successfully`,backupFailed:`Backup failed`,restoreFailed:`Restore failed`,restoreNote:`Virtual Printer will be stopped during restore`,githubBackup:`Git Backup`,enabled:`Enabled`,cloudLoginRequired:`Bambu Cloud login required. Sign in under Profiles → Cloud Profiles to enable GitHub backup.`,cloudLoginRequiredShort:`Cloud login required`,githubDescription:`Automatically sync your profiles to a private GitHub repository for backup and version history.`,repoIsPrivate:`Repository is private — safe to back up to.`,repoIsPublicWarning:`Repository is PUBLIC. Bambuddy backups include MQTT credentials, Home Assistant tokens, Prometheus tokens, your Bambu Cloud email, and printer access codes via K-profiles. Saving is blocked until you make the repository private in your provider's settings.`,repoVisibilityUnknown:`Could not determine repository visibility. Bambuddy refuses to back up to anything not confirmed private; saving will be blocked.`,repositoryUrl:`Repository URL`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`Allow insecure HTTP`,allowInsecureHttpHint:`Enable for self-hosted instances on private networks without TLS`,personalAccessToken:`Personal Access Token`,tokenSaved:`(saved)`,enterNewToken:`Enter new token to update`,tokenHint:`Fine-grained token with Contents read/write permission`,branch:`Branch`,provider:`Git Provider`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`Manual only`,hourly:`Hourly`,daily:`Daily`,weekly:`Weekly`,includeInBackup:`Include in backup`,kProfiles:`K-Profiles`,kProfilesDescription:`Pressure advance calibration from connected printers`,noPrintersConnected:`No printers connected`,printersConnected:`{{connected}}/{{total}} connected`,cloudProfiles:`Cloud Profiles`,cloudProfilesDescription:`Filament, printer, and process presets from Bambu Cloud`,appSettings:`App Settings`,appSettingsDescription:`Bambuddy configuration (complete database)`,spoolInventory:`Spool Inventory`,spoolInventoryDescription:`Filament spools, usage history, and cost tracking`,printArchives:`Print Archives`,printArchivesDescription:`Print history metadata (no gcode/3MF files)`,lastBackupAt:`Last backup:`,noBackupsYet:`No backups yet`,next:`Next:`,startingBackup:`Starting backup...`,test:`Test`,enableBackup:`Enable Backup`,testConnection:`Test Connection`,enterRepoUrl:`Enter repository URL`,enterRepoAndToken:`Enter repository URL and access token`,repoRequired:`Repository URL is required`,tokenRequired:`Access token is required`,githubBackupEnabled:`GitHub backup enabled`,tokenUpdated:`Token updated`,settingsSaved:`Settings saved`,failedToSave:`Failed to save: {{message}}`,backupCompleteFiles:`Backup complete - {{count}} files updated`,backupSkippedNoChanges:`Backup skipped - no changes`,backupFailed2:`Backup failed: {{message}}`,clearedLogs:`Cleared {{count}} logs`,failedToClearLogs:`Failed to clear logs: {{message}}`,history:`History`,clear:`Clear`,date:`Date`,status:`Status`,commit:`Commit`,localBackup:`Local Backup`,localBackupDescription:`Create a complete backup of your Bambuddy data including the database, archives, uploads, and all files.`,downloadBackupLabel:`Download Backup`,completeBackupZip:`Complete backup: database + all files (ZIP)`,download:`Download`,preparingBackup:`Preparing backup...`,creatingArchive:`Creating backup archive... This may take a while for large archives.`,downloadingFile:`Downloading backup file...`,backupDownloaded:`Backup downloaded successfully`,failedToCreateBackup:`Failed to create backup: {{message}}`,restore:`Restore`,restoreReplacesAll:`Restore replaces all data.`,restoreReplacesAllDetail:`Your current database and files will be completely replaced. A restart is required after restore.`,restoreConfirmTitle:`Restore Backup`,restoreConfirmMessage:`Are you sure you want to restore from "{{filename}}"? This will completely replace your current database and all files. The application will need to be restarted after restore.`,restoreConfirmButton:`Restore Backup`,uploadingFile:`Uploading backup file...`,backupRestoredRestart:`Backup restored. Please restart Bambuddy.`,failedToRestore:`Failed to restore backup. Please check the file format.`,reloadNow:`Reload Now`,creatingBackup:`Creating Backup`,restoringBackup:`Restoring Backup`,preparing:`Preparing...`,processing:`Processing...`,doNotClosePage:`Please do not close this page or navigate away. This operation may take several minutes for large backups.`,restoring:`Restoring...`,restoreComplete:`Restore Complete`,restoreFailed2:`Restore Failed`,importSettings:`Import settings from a backup file`,pleaseWaitRestoring:`Please wait while your data is being restored`,selectBackupFile:`Click to select backup file (.json or .zip)`,duplicateHandling:`How duplicate handling works:`,matchPrinters:`Printers`,matchPrintersBy:`matched by serial number`,matchSmartPlugs:`Smart Plugs`,matchSmartPlugsBy:`matched by IP address`,matchNotificationProviders:`Notification Providers`,matchNotificationProvidersBy:`matched by name`,matchFilaments:`Filaments`,matchFilamentsBy:`matched by name + type + brand`,matchArchives:`Archives`,matchArchivesBy:`matched by content hash (always skipped)`,matchPendingUploads:`Pending Uploads`,matchPendingUploadsBy:`matched by filename`,matchSettingsTemplates:`Settings & Templates`,matchSettingsTemplatesBy:`always overwritten`,replaceExisting:`Replace existing data`,keepExisting:`Keep existing data`,overwriteDescription:`Overwrite items that already exist with backup data`,keepDescription:`Only restore items that don't already exist`,overwriteCaution:`Caution:`,overwriteWarning:`Overwriting will replace your current configurations with data from the backup. Printer access codes are never overwritten for security.`,cancel:`Cancel`,processingBackup:`Processing backup file...`,itemsRestored:`Items Restored`,itemsSkipped:`Items Skipped`,restored:`Restored`,skippedAlreadyExist:`Skipped (already exist)`,filesCategory:`Files (3MF, thumbnails, etc.)`,andMore:`...and {{count}} more`,newApiKeysGenerated:`New API Keys Generated`,keysShownOnce:`These keys are only shown once. Copy them now!`,copy:`Copy`,noDataFound:`No data was found to restore in the backup file.`,close:`Close`,scheduledBackup:`Scheduled Backups`,scheduledBackupDescription:`Automatically create backup snapshots on a schedule. Output directory can be mounted to a NAS or external storage.`,frequency:`Frequency`,backupTime:`Time`,retention:`Retention`,retentionDescription:`Number of backups to keep`,outputPath:`Output Path`,outputPathPlaceholder:`Default: {{path}}`,outputPathDescription:`Leave empty for default location`,runNow:`Run Now`,backupFiles:`Backup Files`,noScheduledBackups:`No backups yet`,deleteBackup:`Delete`,deleteBackupConfirm:`Delete this backup file?`,backupRunning:`Backup in progress...`,scheduledBackupComplete:`Backup completed successfully`,scheduledBackupFailed:`Backup failed`,nextBackup:`Next backup`,backupSize:`Size`,localTimeHint:`Local time ({{tz}})`,defaultPathLabel:`Default:`,pathCheck:{title:`Bambuddy cannot write to this directory`,howToFix:`How to fix:`,sandboxed:`The Bambuddy service cannot write to {{path}}. Its systemd unit runs with ProtectSystem=strict, which makes every directory outside the install, data and log directories read-only for the service - even one you can write to from your own shell.`,read_only:`{{path}} is on a read-only filesystem.`,permission_denied:`Bambuddy is not allowed to write to {{path}}. Check the directory owner and permissions.`,no_space:`The filesystem holding {{path}} is full.`,not_a_directory:`{{path}} exists but is not a directory.`,missing:`{{path}} does not exist and could not be created.`,error:`Bambuddy cannot write to {{path}}.`,ephemeralTitle:`These backups will not survive a container restart`,container_ephemeral:`{{path}} is inside the Bambuddy container, not on the host. Backups written there are lost when the container is recreated. Mount the directory from the host:`},categories:{settings:`Settings`,notification_providers:`Notification Providers`,notification_templates:`Notification Templates`,smart_plugs:`Smart Plugs`,printers:`Printers`,filaments:`Filaments`,maintenance_types:`Maintenance Types`,archives:`Archives`,projects:`Projects`,pending_uploads:`Pending Uploads`,external_links:`External Links`,api_keys:`API Keys`}},tags:{title:`Tags`,addTag:`Add Tag`,editTag:`Edit Tag`,deleteTag:`Delete Tag`,tagName:`Tag Name`,tagColor:`Tag Color`,noTags:`No tags`,deleteConfirm:`Are you sure you want to delete this tag?`,manageTags:`Manage Tags`},uploadModal:{title:`Upload 3MF Files`,dragDrop:`Drag & drop .3mf files here`,or:`or`,browseFiles:`Browse Files`,extractionInfo:`The printer model will be automatically extracted from the 3MF file metadata.`,uploaded:`uploaded`,failed:`failed`,uploading:`Uploading...`,upload:`Upload`,uploadFailed:`Upload failed`},editArchive:{title:`Edit Archive`,name:`Name`,namePlaceholder:`Print name`,printer:`Printer`,noPrinter:`No printer`,project:`Project`,noProject:`No project`,itemsPrinted:`Items Printed`,itemsPrintedHelp:`Number of items produced in this print job`,notes:`Notes`,notesPlaceholder:`Add notes about this print...`,externalLink:`External Link`,externalLinkPlaceholder:`https://printables.com/model/...`,externalLinkHelp:`Link to Printables, Thingiverse, or other source`,tags:`Tags`,tagsPlaceholder:`Add tags...`,addMoreTags:`Add more tags...`,matchingTags:`Matching "{{query}}"`,existingTags:`Existing tags`,clickToAdd:`(click to add)`,status:`Status`,failureReason:`Failure Reason`,selectReason:`Select reason...`,photos:`Photos of Printed Result`,photosHelp:`Click + to add photos of your printed result`,printResult:`Print result`,saving:`Saving...`,failureReasons:{adhesionFailure:`Adhesion failure`,spaghettiDetached:`Spaghetti / Detached`,layerShift:`Layer shift`,cloggedNozzle:`Clogged nozzle`,filamentRunout:`Filament runout`,warping:`Warping`,stringing:`Stringing`,underExtrusion:`Under-extrusion`,powerFailure:`Power failure`,userCancelled:`User cancelled`,other:`Other`},statuses:{completed:`Completed`,failed:`Failed`,aborted:`Cancelled`,printing:`Printing`}},kProfiles:{title:`K-Profiles`,noPrintersConfigured:`No Printers Configured`,addPrinterInSettings:`Add a printer in Settings to manage K-profiles`,noActivePrinters:`No Active Printers`,enablePrinterConnection:`Enable a printer connection to view its K-profiles`,loadingProfiles:`Loading K-Profiles...`,printerOffline:`Printer Offline`,printerOfflineDesc:`The selected printer is not connected. Power it on to view K-profiles.`,noMatchingProfiles:`No Matching Profiles`,noMatchingProfilesDesc:`No profiles match your search criteria`,noKProfiles:`No K-Profiles`,noKProfilesDesc:`No pressure advance profiles found for {{diameter}}mm nozzle`,createFirstProfile:`Create First Profile`,printer:`Printer`,nozzle:`Nozzle`,refresh:`Refresh`,addProfile:`Add Profile`,export:`Export`,import:`Import`,select:`Select`,selectAll:`Select All`,delete:`Delete`,searchPlaceholder:`Search by name or filament...`,allExtruders:`All Extruders`,leftOnly:`Left Only`,rightOnly:`Right Only`,allFlow:`All Flow`,hfOnly:`HF Only`,sOnly:`S Only`,sortName:`Sort: Name`,sortKValue:`Sort: K-Value`,sortFilament:`Sort: Filament`,leftExtruder:`Left Extruder`,rightExtruder:`Right Extruder`,modal:{addTitle:`Add K-Profile`,editTitle:`Edit K-Profile`,profileName:`Profile Name`,profileNamePlaceholder:`My PLA Profile`,kValue:`K-Value`,kValuePlaceholder:`0.020`,kValueHelp:`Typical range: 0.01 - 0.06 for PLA, 0.02 - 0.10 for PETG`,filament:`Filament`,selectFilament:`Select filament...`,noFilamentsHelp:`No filaments found. Create a K-profile in Bambu Studio first.`,flowType:`Flow Type`,highFlow:`High Flow`,standard:`Standard`,nozzleSize:`Nozzle Size`,extruder:`Extruder`,extruders:`Extruders`,left:`Left`,right:`Right`,notes:`Notes (stored locally)`,notesPlaceholder:`Add notes about this profile...`,notesHelp:`Notes are saved in Bambuddy, not on the printer`,syncing:`Syncing with printer...`,savingExtruder:`Saving to extruder {{current}}/{{total}}...`,pleaseWait:`Please wait`},deleteConfirm:{title:`Delete Profile`,cannotUndo:`This cannot be undone`,message:`Are you sure you want to delete "{{name}}" from the printer?`},bulkDelete:{title:`Delete Profiles`,cannotUndo:`This cannot be undone`,message:`Are you sure you want to delete {{count}} selected profiles from the printer?`},toast:{profileSaved:`K-profile saved`,profilesSaved:`K-profile saved to {{count}} extruders`,selectAtLeastOneExtruder:`Please select at least one extruder`,profileDeleted:`K-profile deleted`,profilesDeleted:`Deleted {{count}} profiles`,exportedProfiles:`Exported {{count}} profiles`,importedProfiles:`Imported {{count}} of {{total}} profiles`,noProfilesToExport:`No profiles to export`,invalidFileFormat:`Invalid file format`,failedToParseImport:`Failed to parse import file`,failedToSaveBatch:`Failed to save K-profiles`,noteSaved:`Note saved`,failedToSaveNote:`Failed to save note`},permission:{noRead:`You do not have permission to refresh profiles`,noCreate:`You do not have permission to add profiles`,noUpdate:`You do not have permission to update K-profiles`,noDelete:`You do not have permission to delete K-profiles`,noExport:`You do not have permission to export profiles`,noImport:`You do not have permission to import profiles`}},virtualPrinter:{title:`Virtual Printer`,running:`Running`,stopped:`Stopped`,description:{default:`Enable a virtual printer that appears in Bambu Studio and OrcaSlicer. Files sent to this printer will be archived directly without printing.`,proxy:`Enable a proxy that relays slicer traffic to a real printer, allowing remote printing over any network.`},enable:{title:`Enable Virtual Printer`,visibleInSlicer:`Visible as "Bambuddy" in slicer discovery`,proxyingTo:`Proxying to {{name}}`,notActive:`Not active`},model:{title:`Printer Model`,description:`Select which printer model to emulate.`,restartWarning:`Changing the model will restart the virtual printer`},accessCode:{title:`Access Code`,isSet:`Access code is set`,notSet:`No access code set - required to enable`,placeholder:`Enter 8-char code`,placeholderChange:`Enter new code to change`,hint:`Must be exactly 8 characters. Used by slicers to authenticate.`,charCount:`({{count}}/8)`,inheritedFromTarget:`Inherited from target`,derivedFromTargetHint:`Uses the target printer's access code. The bridge forwards slicer auth to the real printer, so the codes must match — edit the printer's access code to change this value.`,reveal:`Show access code`,hide:`Hide access code`},targetPrinter:{title:`Target Printer`,configured:`Proxy target configured`,notConfigured:`No target printer selected - required for proxy mode`,placeholder:`Select a printer...`,hint:`Select the printer to proxy slicer traffic to. The printer must be in LAN mode.`,noPrinters:`No printers configured. Add a printer first to use proxy mode.`},remoteInterface:{title:`Network Interface Override`,configured:`Interface override active`,optional:`Optional - use if auto-detected IP is wrong (e.g. multiple NICs, Docker, VPN)`,placeholder:`Auto-detect (default)...`,hint:`Override the IP address advertised via SSDP and used in the TLS certificate. Useful when Bambuddy has multiple network interfaces.`},mode:{title:`Mode`,archive:`Archive`,archiveDesc:`Archive files immediately`,review:`Review`,reviewDesc:`Review before archiving`,queue:`Queue`,queueDesc:`Archive and add to queue`,proxy:`Proxy`,proxyDesc:`Relay to real printer`},autoDispatch:{title:`Auto-dispatch`,description:`Automatically start prints when added to queue. When off, prints wait for manual dispatch.`},queueForceColorMatch:{title:`Force color match`,description:`Refuse to dispatch onto a printer that does not have the exact filament type and color loaded. Off by default — without this, the queue uses model-only matching and may pick a printer with the wrong color loaded.`},gcodeInjection:{title:`G-code injection`,description:`Apply the per-model G-code snippets configured in Settings to jobs from this VP. Off by default.`},tailscaleDisabled:{title:`Tailscale integration`,description:`Enable to mark this VP as exposed over Tailscale. Shows the host's Tailscale address so you know which IP to paste into the slicer. The CA-import step is unchanged — this toggle has no effect on certificates.`},setupRequired:{title:`Setup Required`,description:`The virtual printer feature requires additional system configuration before it will work. This includes port forwarding, firewall rules, and platform-specific settings.`,readGuide:`Read the setup guide before enabling`},archiveNameSource:{title:`Archive name source`,description:`Choose how new archives are named when files arrive via the virtual printer. "Metadata" uses the slicer-embedded Title from the 3MF (default). "Filename" uses the filename Bambu Studio sent over FTP. Note: Bambu Studio overwrites the name you type in the "send to printer" dialog with the 3MF's Title field whenever one is present, so both modes often produce the same string.`,metadata:`Metadata`,filename:`Filename`},caCert:{title:`Slicer certificate`,description:`Virtual printers use a TLS certificate signed by the Bambuddy CA. Import this CA certificate into your slicer's trust store once so it accepts the connection — no need to copy it from the command line.`,copy:`Copy`,copied:`Copied`,download:`Download`,fingerprint:`SHA-256`},howItWorks:{title:`How it works`,step1:`On the same LAN, virtual printers appear in your slicer (Bambu Studio / OrcaSlicer) automatically via discovery. From other networks, add them manually by IP address and access code.`,step2:`In Archive, Review, and Queue modes, use the "Send" button in your slicer to upload 3MF files to Bambuddy. The slicer will show "Print success" — the file is stored, not printed.`,step3:`In Proxy mode, the virtual printer relays all traffic to a real printer — prints start immediately as if connected directly.`},status:{title:`Status Details`,printerName:`Printer Name`,model:`Model`,serialNumber:`Serial Number`,mode:`Mode`,pendingFiles:`Pending Files`,targetPrinter:`Target Printer`,ftpPort:`FTP Port`,mqttPort:`MQTT Port`,ftpConnections:`FTP Connections`,mqttConnections:`MQTT Connections`},toast:{updated:`Virtual printer settings updated`,failedToUpdate:`Failed to update settings`,copyFailed:`Failed to copy — try selecting the text manually`,accessCodeRequired:`Please set an access code first`,targetPrinterRequired:`Please select a target printer first`,bindIpRequired:`Please set a bind IP first`,accessCodeEmpty:`Access code cannot be empty`,accessCodeLength:`Access code must be exactly 8 characters`,targetCodeChangedRebind:`Access code now matches the new target printer. Re-add this device in your slicer to pick up the new code.`,created:`Virtual printer created`,failedToCreate:`Failed to create virtual printer`,deleted:`Virtual printer deleted`,failedToDelete:`Failed to delete virtual printer`},list:{title:`Virtual Printers`,add:`Add`,addFirst:`Add Virtual Printer`,empty:`No virtual printers configured. Add one to get started.`},bindIp:{title:`Bind Interface`,placeholder:`Select interface...`,hint:`Network interface for this virtual printer to bind to. Must be unique per printer.`},proxy:{accessCodeHint:`In proxy mode, use your target printer's access code in the slicer. The connection is forwarded transparently to the real printer.`},addDialog:{title:`Add Virtual Printer`,name:`Name`,hint:`You can configure access code, target printer, and other settings after creating.`,create:`Create`},deleteConfirm:{title:`Delete Virtual Printer`,message:`Are you sure you want to delete "{{name}}"? This will stop all services for this printer.`}},modelViewer:{openInSlicer:`Open in Slicer`,tabs:{model:`3D Model`,gcode:`G-code Preview`},notAvailable:`not available`,notSliced:`not sliced`,plates:`Plates`,allPlates:`All Plates`,plateNumber:`Plate {{number}}`,plateCount:`{{count}} plate`,plateCount_other:`{{count}} plates`,objectCount:`{{count}} object`,objectCount_other:`{{count}} objects`,filamentCount:`{{count}} filament`,filamentCount_other:`{{count}} filaments`,eta:`ETA {{minutes}} min`,noPreview:`No preview available for this file`,pagination:{pageOf:`Page {{current}} of {{total}}`,prev:`Prev`,next:`Next`},errors:{failedToLoad:`Failed to load file`,noMeshes:`No meshes found in 3MF file`,unsupportedFormat:`Unsupported file format`}},maintenanceDescriptions:{lubricateCarbonRods:`Apply lubricant to carbon rods for smooth motion`,lubricateRails:`Apply lubricant to linear rails for smooth motion`,cleanNozzle:`Clean hotend and nozzle to prevent clogs`,checkBelts:`Verify belt tension for accurate prints`,cleanBuildPlate:`Clean build plate for better adhesion`,checkExtruder:`Inspect extruder gears for wear`,checkCooling:`Ensure cooling fans are working properly`,generalInspection:`General printer inspection`,cleanCarbonRods:`Clean carbon rods to reduce friction`,lubricateSteelRods:`Apply lubricant to steel rods for smooth motion`,cleanSteelRods:`Clean steel rods to reduce friction`,cleanLinearRails:`Wipe linear rails to remove dust and debris`,checkPtfeTube:`Inspect PTFE tube for wear or damage`,replaceHepaFilter:`Replace HEPA filter for air quality`,replaceCarbonFilter:`Replace activated carbon filter`,lubricateLeftNozzleRail:`Lubricate left nozzle rail (H2 series)`},smartPlugs:{offline:`Offline`,admin:`Admin`,openPlugAdminPage:`Open plug admin page`,deleteSmartPlug:`Delete Smart Plug`,turnOnSmartPlug:`Turn On Smart Plug`,turnOffSmartPlug:`Turn Off Smart Plug`,turnOn:`Turn On`,turnOff:`Turn Off`,addSmartPlug:{scanningNetwork:`Scanning network...`,chooseEntity:`Choose an entity...`,connectionFailed:`Connection failed`,searchEntities:`Search entities...`,searchPowerSensors:`Search power sensors...`,searchEnergySensors:`Search energy sensors...`,placeholders:{plugName:`Living Room Plug`,mqttStateOnValue:`ON, true, 1`,mqttSameAsPower:`Same as power topic, or different`}},linkedTo:`Linked to:`,monitorOnly:`Monitor Only`,alerts:`Alerts`,scheduleOn:`On {{time}}`,scheduleOff:`Off {{time}}`,on:`On`,off:`Off`,power:`Power`,kwhToday:`kWh Today`,settings:`Settings`,automationSettings:`Automation Settings`,showInSwitchbar:`Show in Switchbar`,quickAccessSidebar:`Quick access from sidebar`,enabled:`Enabled`,enableAutomation:`Enable automation for this plug`,autoOn:`Auto On`,autoOnDescription:`Turn on when print starts`,autoOff:`Auto Off`,autoOffDescription:`Turn off when print completes (one-shot)`,autoOffPersistent:`Keep Enabled`,autoOffPersistentDescription:`Stay enabled between prints instead of one-shot`,controlsPrinterPower:`Powers the printer`,controlsPrinterPowerDescription:`Turn off if this plug only powers an accessory (filter fan, lights). Otherwise switching it off marks the printer offline.`,autoOffAfterDrying:`Auto Off After Drying`,autoOffAfterDryingDescription:`Turn off when AMS drying completes`,delayAfterDryingMinutes:`Drying delay (minutes)`,turnOffDelayMode:`Turn Off Delay Mode`,time:`Time`,temp:`Temp`,delayMinutes:`Delay (minutes)`,tempThreshold:`Temperature threshold (°C)`,tempThresholdDescription:`Turns off when nozzle cools below this temperature`,edit:`Edit`,deleteConfirm:`Are you sure you want to delete "{{name}}"? This cannot be undone.`,turnOnConfirm:`Are you sure you want to turn on "{{name}}"?`,turnOffConfirm:`Are you sure you want to turn off "{{name}}"? This will cut power to the connected device.`,failedToTurn:`Failed to turn {{action}} "{{name}}"`,unknown:`Unknown`,addTitle:`Add Smart Plug`,editTitle:`Edit Smart Plug`,stopScanning:`Stop Scanning`,discoverTasmota:`Discover Tasmota Devices`,foundDevices:`Found {{count}} device(s) - click to select:`,noDevicesFound:`No Tasmota devices found on your network`,haNotConfigured:`Home Assistant is not configured. Set it up in`,haSettingsPath:`Settings → Network → Home Assistant`,selectEntity:`Select Entity *`,ipAddress:`IP Address *`,nameLabel:`Name *`,username:`Username`,password:`Password`,authHint:`Leave empty if your Tasmota device doesn't require authentication`,linkToPrinter:`Link to Printer`,noPrinter:`No printer (manual control only)`,linkingDescription:`Linking enables automatic on/off when prints start/complete`,powerAlerts:`Power Alerts`,alertAbove:`Alert if above (W)`,alertBelow:`Alert if below (W)`,alertDescription:`Get notified when power consumption crosses these thresholds. Leave empty to disable that direction.`,dailySchedule:`Daily Schedule`,turnOnAt:`Turn On at`,turnOffAt:`Turn Off at`,scheduleDescription:`Automatically turn the plug on/off at these times daily. Leave empty to skip that action.`,showOnPrinterCard:`Show on Printer Card`,displayOnPrinterCard:`Display button on printer card`,connectedResult:`Connected!`,deviceLabel:`Device: {{name}} - `,stateLabel:`State: {{state}}`,test:`Test`,delete:`Delete`,save:`Save`,add:`Add`,cancel:`Cancel`,failedToStartScan:`Failed to start scan`,nameRequired:`Name is required`,entityRequired:`Entity is required for Home Assistant plugs`,mqttTopicRequired:`At least one MQTT topic must be configured for power, energy, or state monitoring`,loadingEntities:`Loading entities...`,loading:`Loading...`,failedToLoadEntities:`Failed to load entities: {{error}}`,noEntitiesMatching:`No entities found matching "{{search}}"`,noEntitiesAvailable:`No entities available`,searchingEntities:`Searching all entities ({{count}} found)`,showingEntities:`Showing switch, light, input_boolean ({{count}} available)`,energyMonitoringOptional:`Energy Monitoring (Optional)`,energyMonitoringHint:`Search and select sensors that provide power/energy data.`,powerSensorW:`Power Sensor (W)`,energyTodayKwh:`Energy Today (kWh)`,totalEnergyKwh:`Total Energy (kWh)`,noMatchingSensors:`No matching sensors`,none:`None`,mqttNotConfigured:`MQTT broker not configured. Set broker address in`,mqttSettingsPath:`Settings → Network → MQTT Publishing`,mqttNotConfiguredSuffix:`(you don't need to enable publishing, just fill in the broker details).`,mqttMonitorOnlyDescription:`MQTT plugs receive power/energy data via MQTT subscription. On/off control is not available - use your MQTT broker or home automation system.`,powerMonitoring:`Power Monitoring`,energyMonitoring:`Energy Monitoring`,stateMonitoring:`State Monitoring`,optional:`optional`,topic:`Topic`,jsonPath:`JSON Path`,multiplier:`Multiplier`,onValue:`ON Value`,mqttPowerHint:`JSON path extracts value from JSON payload (e.g., "power_l1"). Leave empty if topic publishes raw numeric values.
Use multiplier 0.001 for mW→W, 1000 for kW→W.`,mqttEnergyHint:`JSON path extracts value from JSON payload. Leave empty for raw values.
Use multiplier 0.001 for Wh→kWh, 1000 for MWh→kWh.`,mqttStateHint:`JSON path extracts value from JSON payload. Leave empty for raw values.
-ON value: the exact string that means "ON". Leave empty for auto-detect (ON, true, 1).`,restControl:`Control`,restOnUrl:`Turn ON URL`,restOffUrl:`Turn OFF URL`,restOnBody:`ON Request Body`,restOffBody:`OFF Request Body`,restMethod:`HTTP Method`,restHeaders:`Custom Headers (JSON)`,restStatusUrl:`Status URL`,restStatusPath:`State JSON Path`,restStatusOnValue:`ON Value`,restPowerUrl:`Power URL`,restPowerPath:`Power JSON Path`,restPowerMultiplier:`Power Multiplier`,restEnergyUrl:`Energy URL`,restEnergyPath:`Energy JSON Path (today)`,restEnergyTotalPath:`Energy JSON Path (lifetime)`,restEnergyTotalMultiplier:`Lifetime Multiplier`,restEnergyTotalPathHint:`e.g. aenergy.total`,restEnergyTotalHint:`Many plugs — every Shelly among them — report only a lifetime counter that never resets. It belongs here, not in the field above: read as today's usage it would never reset at midnight, and Yesterday and Total would stay empty. Bambuddy works Today and Yesterday out from it, which takes a day or two of readings to fill in. A Shelly reports watt-hours, so use a multiplier of 0.001.`,restEnergyMultiplier:`Energy Multiplier`,restUrlRequired:`At least one URL (ON or OFF) is required for REST plugs`,restHeadersHint:`e.g. {"Authorization": "Bearer your-token"}`,restBodyHint:`e.g. ON, {"state": "on"}`,restStatusHint:`URL to poll for current state`,restPathHint:`e.g. state or data.power.status`,restPowerUrlHint:`Separate URL for power data (uses Status URL if empty)`,restEnergyUrlHint:`Separate URL for energy data (uses Status URL if empty)`,restEnergyHint:`Each value can use its own URL or fall back to the Status URL. Use multipliers for unit conversion (e.g. 0.001 to convert Wh to kWh).`,testConnection:`Test Connection`,connectionSuccess:`Connection successful`,noSwitchesInSwitchbar:`No switches in switchbar`,enableSwitchbarHint:`Enable "Show in Switchbar" in Settings > Smart Plugs`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`Email`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`SMTP email notifications`,telegram:`Notifications via Telegram bot`,discord:`Send to Discord channel via webhook`,ntfy:`Free, self-hostable push notifications`,pushover:`Simple, reliable push notifications`,callmebot:`Free WhatsApp notifications via CallMeBot`,webhook:`Generic HTTP POST to any URL`,homeassistant:`Persistent notifications in Home Assistant dashboard`,bark:`iOS push notifications via Bark (self-hostable)`},lastSuccess:`Last: {{date}}`,error:`Error`,printer:`Printer:`,allPrinters:`All printers`,sendTestNotification:`Send Test Notification`,eventSettings:`Event Settings`,enabled:`Enabled`,sendFromProvider:`Send notifications from this provider`,printEvents:`Print Events`,printerStatus:`Printer Status`,amsAlarms:`AMS Alarms`,amsHtAlarms:`AMS-HT Alarms`,printQueue:`Print Queue`,start:`Start`,plateCheck:`Plate Check`,complete:`Complete`,failed:`Failed`,stopped:`Stopped`,progress:`Progress`,offline:`Offline`,lowFilament:`Low Filament`,maintenance:`Maintenance`,amsHumidity:`AMS Humidity`,amsTemp:`AMS Temp`,amsHtHumidity:`AMS-HT Humidity`,amsHtTemp:`AMS-HT Temp`,bedCooled:`Bed Cooled`,firstLayer:`First Layer`,quiet:`Quiet`,digest:`Digest {{time}}`,printStarted:`Print Started`,plateNotEmpty:`Plate Not Empty`,plateNotEmptyDescription:`Objects detected before print`,plateClearRequired:`Plate Clear Required`,plateClearRequiredDescription:`Print finished, queue waits for plate confirmation`,plateClear:`Plate Clear`,printCompleted:`Print Completed`,bedCooledLabel:`Bed Cooled`,bedCooledDescription:`Bed cooled below threshold after print`,firstLayerCompleteLabel:`First Layer Complete`,firstLayerCompleteDescription:`Notify with snapshot when first layer finishes`,missingSpoolAssignmentLabel:`Missing Spool Assignment`,missingSpoolAssignmentDescription:`Notify when print starts and required trays have no assigned spool`,printFailed:`Print Failed`,printStopped:`Print Stopped`,progressMilestones:`Progress Milestones`,progressMilestonesDescription:`Notify at 25%, 50%, 75%`,printerOffline:`Printer Offline`,printerError:`Printer Error`,aiFailureDetection:`AI Failure Detection`,aiFailureDetectionDescription:`Notify when Obico AI detects a possible print failure`,lowFilamentLabel:`Low Filament`,maintenanceDue:`Maintenance Due`,maintenanceDueDescription:`Notify when maintenance is needed`,amsHumidityHigh:`AMS Humidity High`,amsHumidityHighDescription:`Regular AMS humidity exceeds threshold`,amsTemperatureHigh:`AMS Temperature High`,amsTemperatureHighDescription:`Regular AMS temperature exceeds threshold`,amsHtHumidityHigh:`AMS-HT Humidity High`,amsHtHumidityHighDescription:`AMS-HT humidity exceeds threshold`,amsHtTemperatureHigh:`AMS-HT Temperature High`,amsHtTemperatureHighDescription:`AMS-HT temperature exceeds threshold`,inventoryAlerts:`Inventory Alerts`,stockReorderAlert:`Reorder Alert`,stockReorderAlertDescription:`SKU has reached its reorder point`,stockBreakAlert:`Stock Break Alert`,stockBreakAlertDescription:`Stock will run out before replenishment arrives`,jobAdded:`Job Added`,jobAddedDescription:`Job added to queue`,jobAssigned:`Job Assigned`,jobAssignedDescription:`Model-based job assigned to printer`,jobStarted:`Job Started`,jobStartedDescription:`Queue job started printing`,jobWaiting:`Job Waiting`,jobWaitingDescription:`Job waiting for filament or printer`,jobSkipped:`Job Skipped`,jobSkippedDescription:`Job skipped (previous failed)`,jobFailed:`Job Failed`,jobFailedDescription:`Job failed to start`,queueComplete:`Queue Complete`,queueCompleteDescription:`All queue jobs finished`,quietHours:`Quiet Hours`,noNotificationsDuring:`No notifications during these hours`,editProviderToChangeQuietHours:`Edit provider to change quiet hours`,dailyDigest:`Daily Digest`,batchNotifications:`Batch notifications into a single daily summary`,sendAt:`Send at {{time}}`,editProviderToChangeDigestTime:`Edit provider to change digest time`,edit:`Edit`,deleteProvider:`Delete Notification Provider`,deleteConfirm:`Are you sure you want to delete "{{name}}"? This cannot be undone.`,delete:`Delete`,addTitle:`Add Notification Provider`,editTitle:`Edit Notification Provider`,nameLabel:`Name *`,namePlaceholder:`My Notifications`,providerTypeLabel:`Provider Type *`,configuration:`Configuration`,testConfiguration:`Test Configuration`,printerFilter:`Printer Filter`,onlyFromPrinter:`Only send notifications for events from this printer`,quietHoursDnd:`Quiet Hours (Do Not Disturb)`,quietStart:`Start`,quietEnd:`End`,dailyDigestLabel:`Daily Digest`,sendDigestAt:`Send digest at`,digestCollected:`Events will be collected and sent as a single summary at this time`,notificationEvents:`Notification Events`,progressPercent:`(25%, 50%, 75%)`,bedCooledAfterPrint:`(after print completes)`,eventPriority:{sectionTitle:`ntfy Priority`,helpNtfy:`Pick a priority for each enabled event. ntfy uses these to escalate alerts (sound, visibility, push behavior). Levels not set here use the ntfy server default.`,min:`Min`,low:`Low`,default:`Default`,high:`High`,urgent:`Urgent`},cancel:`Cancel`,save:`Save`,add:`Add`,nameRequired:`Name is required`,fieldRequired:`{{field}} is required`,haDataInvalid:`The Data field must be a valid JSON object, e.g. {"priority": "high", "ttl": 0}`,phoneNumber:`Phone Number`,apiKey:`API Key`,serverUrl:`Server URL`,topic:`Topic`,authToken:`Auth Token`,userKey:`User Key`,appToken:`App Token`,priority:`Priority`,pushoverRetry:`Emergency Retry (s)`,pushoverExpire:`Emergency Expire (s)`,botToken:`Bot Token`,chatId:`Chat ID`,telegramThreadId:`Forum Topic ID`,telegramThreadIdHelp:`Optional. Posts into a single topic of a forum group — the last number in the topic link (t.me/c/.../25). Leave empty for the General topic.`,telegramThreadIdInvalid:`Forum Topic ID must be a number.`,smtpServer:`SMTP Server`,smtpPort:`SMTP Port`,security:`Security`,authentication:`Authentication`,username:`Username`,password:`Password`,fromEmail:`From Email`,toEmail:`To Email`,webhookUrl:`Webhook URL`,payloadFormat:`Payload Format`,authorization:`Authorization`,titleFieldName:`Title Field Name`,messageFieldName:`Message Field Name`,editTemplate:`Edit Template: {{name}}`,titleLabel:`Title`,bodyLabel:`Body`,titlePlaceholder:`Notification title...`,bodyPlaceholder:`Notification body...`,availableVariables:`Available Variables`,clickToInsert:`Click to insert at cursor position in body`,livePreview:`Live Preview`,hide:`Hide`,show:`Show`,loadingPreview:`Loading preview...`,enterTemplateContent:`Enter template content to see preview`,titlePreview:`Title:`,bodyPreview:`Body:`,resetToDefault:`Reset to Default`,titleRequired:`Title is required`,bodyRequired:`Body is required`,notificationLog:`Notification Log`,showFailedOnly:`Failed only`,last24Hours:`Last 24 hours`,last7Days:`Last 7 days`,last30Days:`Last 30 days`,last90Days:`Last 90 days`,justNow:`Just now`,noFailedNotifications:`No failed notifications`,noNotificationsLogged:`No notifications logged`,unknownProvider:`Unknown Provider`,logTitle:`Title`,logMessage:`Message`,logError:`Error`,logProvider:`Provider: {{type}}`,logTime:`Time: {{time}}`,refresh:`Refresh`,clearOld:`Clear Old`,statsSummary:`Last {{days}} days:`,statsNotifications:`notifications`,statsSent:`{{count}} sent`,statsFailed:`{{count}} failed`,eventTypes:{print_start:`Print Started`,print_complete:`Print Complete`,print_failed:`Print Failed`,print_stopped:`Print Stopped`,print_progress:`Progress`,printer_offline:`Printer Offline`,printer_error:`Printer Error`,filament_low:`Low Filament`,maintenance_due:`Maintenance Due`,test:`Test`},userEmail:{title:`Notifications`,emailNotifications:`Email Notifications`,emailNotificationsDesc:`Receive email notifications for your own print jobs. Emails are sent using the system SMTP settings configured in Advanced Authentication.`,sendingTo:`Notifications will be sent to`,noEmailWarning:`Your account does not have an email address. Contact an administrator to add one.`,printJobNotifications:`Print Job Notifications`,printJobNotificationsDesc:`Choose which events trigger email notifications for print jobs you submit.`,printJobStarts:`Print Job Starts`,printJobStartsDesc:`Get notified when your print job begins.`,printJobFinishes:`Print Job Finishes`,printJobFinishesDesc:`Get notified when your print job completes successfully.`,printErrors:`Print Errors`,printErrorsDesc:`Get notified when your print job fails or encounters an error.`,printJobStops:`Print Job Stops`,printJobStopsDesc:`Get notified when your print job is cancelled or stopped.`,saveSuccess:`Notification preferences saved.`,saveError:`Failed to save notification preferences.`}},richTextEditor:{bold:`Bold`,italic:`Italic`,underline:`Underline`,bulletList:`Bullet List`,numberedList:`Numbered List`,alignLeft:`Align Left`,alignCenter:`Align Center`,alignRight:`Align Right`,addLink:`Add Link`,removeLink:`Remove Link`},externalLinks:{title:`Sidebar Links`,sidebarLayout:`Sidebar`,sidebarLayoutDescription:`Show or hide built-in pages, add external links, and drag items to reorder the sidebar navigation.`,systemPages:`Bambuddy pages`,externalLinks:`External links`,visibleInSidebar:`Visible in sidebar`,hiddenFromSidebar:`Hidden from sidebar`,requiredInSidebar:`Required in sidebar`,hidePage:`Hide page`,showPage:`Show page`,settingsCannotBeHidden:`Settings cannot be hidden`,noLinksConfigured:`No external links configured`,deleteLink:`Delete Link`,removeCustomIcon:`Remove custom icon`,openInNewTab:`Open in new tab`,placeholders:{linkName:`My Link`}},keyboardShortcuts:{title:`Keyboard Shortcuts`,navigation:`Navigation`,archivesSection:`Archives`,kProfilesSection:`K-Profiles`,generalSection:`General`,shortcuts:{goToPrinters:`Go to Printers`,goToArchives:`Go to Archives`,goToQueue:`Go to Queue`,goToStats:`Go to Statistics`,goToProfiles:`Go to Cloud Profiles`,goToSettings:`Go to Settings`,focusSearch:`Focus search`,openUploadModal:`Open upload modal`,clearSelection:`Clear selection / blur input`,contextMenu:`Context menu on cards`,refreshProfiles:`Refresh profiles`,newProfile:`New profile`,exitSelectionMode:`Exit selection mode`,showHelp:`Show this help`},footer:`Press Esc or click outside to close`},notificationLog:{title:`Notification Log`,events:{printStarted:`Print Started`,printComplete:`Print Complete`,printFailed:`Print Failed`,printStopped:`Print Stopped`,progress:`Progress`,printerOffline:`Printer Offline`,printerError:`Printer Error`,lowFilament:`Low Filament`,maintenanceDue:`Maintenance Due`,test:`Test`},timeAgo:{justNow:`Just now`,minutesAgo:`{{minutes}}m ago`,hoursAgo:`{{hours}}h ago`}},restoreBackup:{title:`Restore Backup`,restoring:`Restoring...`,restoreComplete:`Restore Complete`,restoreFailed:`Restore Failed`,importSettings:`Import settings from a backup file`,pleaseWait:`Please wait while your data is being restored`,clickToSelect:`Click to select backup file (.json or .zip)`,howDuplicateHandling:`How duplicate handling works:`,categories:{printers:`Printers`,smartPlugs:`Smart Plugs`,notificationProviders:`Notification Providers`,filaments:`Filaments`,archives:`Archives`,pendingUploads:`Pending Uploads`,settingsTemplates:`Settings & Templates`},matchingInfo:{printers:`matched by serial number`,smartPlugs:`matched by IP address`,notificationProviders:`matched by name`,filaments:`matched by name + type + brand`,archives:`matched by content hash`,pendingUploads:`matched by filename`,settingsTemplates:`always overwritten`},replaceExisting:`Replace existing data`,keepExisting:`Keep existing data`,replaceDescription:`Overwrite items that already exist with backup data`,keepDescription:`Only restore items that don't already exist`,caution:`Caution:`,cautionText:`Overwriting will replace your current configurations with backup data. Printer access codes are never overwritten for security.`,itemsRestored:`Items Restored`,itemsSkipped:`Items Skipped`,restored:`Restored`,skipped:`Skipped (already exist)`,filesLabel:`Files (3MF, thumbnails, etc.)`,newApiKeysGenerated:`New API Keys Generated`,newApiKeysWarning:`These keys are only shown once. Copy them now!`,processingBackup:`Processing backup file...`,noDataFound:`No data was found to restore in the backup file.`,failedToRestore:`Failed to restore backup. Please check the file format.`},backupExport:{title:`Export Backup`,selectData:`Select data to include`,selectAll:`Select All`,selectNone:`Select None`,categoryDescriptions:{settings:`Language, theme, update preferences`,notifications:`ntfy, Pushover, Discord, etc.`,templates:`Custom message templates`,smartPlugs:`Tasmota plug configurations`,externalLinks:`Sidebar links to external services`,printers:`Printer info (access codes excluded)`,plateDetection:`Empty plate reference images`,filaments:`Filament types and costs`,maintenance:`Custom maintenance schedules`,archives:`All print data + files (3MF, thumbnails, photos)`,projects:`Projects, BOM items, and attachments`,pendingUploads:`Virtual printer uploads awaiting review`,apiKeys:`Webhook API keys (new keys generated on import)`},requiresPrinters:`Requires Printers to be selected`,zipFileWarning:`ZIP file will be created.`,zipFileDescription:`Includes all 3MF files, thumbnails, timelapses, and photos. This may take a while and result in a large file.`,includeAccessCodes:`Include Access Codes`,includeAccessCodesDescription:`For transferring to another machine`,includeAccessCodesWarning:`Access codes will be included in plain text. Keep this backup file secure!`,categoriesSelected:`{{selectedCount}} categories selected`},pendingUploads:{placeholders:{notes:`Add notes about this print...`},discardUpload:`Discard Upload`,archiveAllUploads:`Archive All Uploads`,discardAllUploads:`Discard All Uploads`,archive:`Archive`,timeAgo:{justNow:`Just now`,minutesAgo:`{{minutes}}m ago`,hoursAgo:`{{hours}}h ago`,daysAgo:`{{days}}d ago`}},apiBrowser:{placeholders:{requestBody:`JSON request body...`,searchEndpoints:`Search endpoints...`}},configureAmsSlot:{title:`Configure AMS Slot`,slotConfigured:`Slot Configured!`,configuringSlot:`Configuring slot:`,slotLabel:`{{ams}} Slot {{slot}}`,searchPresets:`Search presets...`,colorPlaceholder:`Color name or hex (e.g., brown, FF8800)`,clearCustomColor:`Clear custom color`,noCloudPresets:`No cloud presets. Login to Bambu Cloud to sync.`,noPresetsAvailable:`No presets available. Login to Bambu Cloud or import local profiles.`,noMatchingPresets:`No matching presets found.`,custom:`Custom`,builtin:`Built-in`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`Settings sent to printer`,filamentProfile:`Filament Profile`,kProfileLabel:`K Profile (Pressure Advance)`,filteringFor:`Filtering for: {{material}}`,noKProfile:`No K profile (use default 0.020)`,noMatchingKProfiles:`No matching K profiles found. Default K=0.020 will be used.`,otherKProfiles:`Other K profiles on this printer`,selectFilamentFirst:`Select a filament profile first`,kFromCalibration:`K={{value}} from printer calibration`,customColorLabel:`Custom Color (optional)`,presetColors:`{{name}} colors:`,showLessColors:`Show less colors`,showMoreColors:`Show more colors`,clear:`Clear`,hexLabel:`Hex: #{{hex}}`,resetting:`Resetting...`,resetSlot:`Reset Slot`,cancel:`Cancel`,configuring:`Configuring...`,configureSlot:`Configure Slot`},githubBackup:{title:`Git Backup`,history:`History`,downloadBackup:`Download Backup`,restoreBackup:`Restore Backup`,noBackupsYet:`No backups yet`},emailSettings:{placeholders:{fromName:`BamBuddy`}},tagManagement:{searchTags:`Search tags...`,renameTag:`Rename tag`,deleteTag:`Delete tag`},notificationTemplates:{placeholders:{title:`Notification title...`,body:`Notification body...`}},batchTag:{placeholders:{newTag:`Enter new tag...`}},photoGallery:{deletePhoto:`Delete Photo`},filamentHoverCard:{copySpoolUuid:`Copy spool UUID`},kProfilesView:{hasNote:`Has note`,copyProfile:`Copy profile`},layout:{openMenu:`Open menu`,noPermissionSystemInfo:`You do not have permission to view system information`},dashboard:{dragToReorder:`Drag to reorder`,hideWidget:`Hide widget`},notificationProviderCard:{deleteNotificationProvider:`Delete Notification Provider`},fileManagerModal:{closeFileManager:`Close file manager`,sortFiles:`Sort files`,goToParentFolder:`Go to parent folder`,threeView:`3D View`},embeddedCameraViewer:{refreshStream:`Refresh stream`,close:`Close`,zoomOut:`Zoom out`,resetZoom:`Reset zoom`,zoomIn:`Zoom in`,dragToResize:`Drag to resize`},timelapseViewer:{skipBack5s:`Skip back 5s`,skipForward5s:`Skip forward 5s`},notificationProviders:{descriptions:{email:`SMTP email notifications`,telegram:`Notifications via Telegram bot`,discord:`Send to Discord channel via webhook`,ntfy:`Free, self-hostable push notifications`,pushover:`Simple, reliable push notifications`,callmebot:`Free WhatsApp notifications via CallMeBot`,webhook:`Generic HTTP POST to any URL`}},logViewer:{searchPlaceholder:`Search message or logger name...`,noLogEntries:`No log entries found`},switchbarPopover:{noSwitchesInSwitchbar:`No switches in switchbar`},projectPageModal:{placeholders:{title:`Title`,designer:`Designer`,license:`License`,description:`Enter description...`,profileTitle:`Profile Title`,profileDescription:`Profile description...`}},spoolmanSettings:{},time:{unknown:`-`,waiting:`Waiting`,justNow:`Just now`,now:`Now`,minsAgo:`{{count}}m ago`,inMins:`in {{count}}m`,hoursAgo:`{{count}}h ago`,inHours:`in {{count}}h`,daysAgo:`{{count}}d ago`,inDays:`in {{count}}d`},spoolbuddy:{nav:{dashboard:`Dashboard`,ams:`AMS`,inventory:`Inventory`,writeTag:`Write`,settings:`Settings`},status:{nfcReady:`NFC Ready`,nfcOff:`NFC Off`,offline:`Offline`,online:`Online`,noPrinters:`No printers`,deviceOffline:`Device Offline`,waitingConnection:`Waiting for device connection...`,systemReady:`System Ready`,status:`Status`},dashboard:{readyToScan:`Ready to scan`,idleMessage:`Place a spool on the scale to identify it`,nfcHint:`NFC tag will be read automatically`,device:`Device`,syncWeight:`Sync Weight`,weightSynced:`Synced!`,unknownTag:`Unknown Tag`,newTag:`New Tag Detected`,onScale:`on scale`,linkSpool:`Link to Spool`,linkTagTitle:`Link Tag to Spool`,linkTag:`Link Tag`,selectSpool:`Select a spool to link this tag to:`,noUntagged:`No spools without tags found`,tagDetected:`Tag detected`,noTag:`No tag`,tagId:`Tag`,grossWeight:`Gross weight`,spoolSize:`Spool size`,close:`Close`,currentSpool:`Current Spool`,plateReady:`Plate ready: {{name}}`,plateReadyLabel:`Plates ready to clear`,plateClearAction:`Clear`,plateClearedToast:`Plate marked as cleared`,plateClearFailed:`Could not mark plate as cleared`},modal:{spoolDetected:`Spool Detected`,assignToAms:`Assign to AMS`,syncWeight:`Sync Weight`,weightSynced:`Synced!`,syncing:`Syncing...`,newTagDetected:`New Tag Detected`,addToInventory:`Add to Inventory`,assignToAmsTitle:`Assign to AMS`,selectSlot:`Select a slot`,assign:`Assign`,assigning:`Assigning...`,assignSuccess:`Assigned!`,assignPendingInsert:`Assigned. Slot will configure when you insert the spool.`,assignError:`Failed to assign spool. Please try again.`,noPrinterSelected:`Select a printer...`,noAmsDetected:`No AMS detected on this printer`,slot:`Slot`},weight:{noReading:`No reading`,stable:`Stable`,measuring:`Measuring...`,tare:`Tare`,calibrate:`Calibrate`},spool:{remaining:`Remaining`,material:`Material`,brand:`Brand`,color:`Color`,coreWeight:`Core`,labelWeight:`Label`,scaleWeight:`Scale`,netWeight:`Net`,lastUsed:`Last used`},ams:{noData:`No AMS detected`,connectAms:`Connect an AMS to see filament slots`,noPrinter:`No printer selected`,selectPrinter:`Select a printer from the top bar`,printerDisconnected:`Printer disconnected`,humidity:`Humidity`,level:`Level`,active:`Active`,slot:`Slot`,empty:`Empty`},inventory:{search:`Search spools...`,empty:`No spools in inventory`,noResults:`No matching spools`,spools:`spools`,addSpool:`Add Spool`},settings:{tabDevice:`Device`,tabDisplay:`Display`,tabScale:`Scale`,tabUpdates:`Updates`,nfcReader:`NFC Reader`,type:`Type`,connection:`Connection`,notConnected:`N/A`,deviceInfo:`Device Info`,hostname:`Host`,uptime:`Uptime`,systemConfig:`Backend & Auth`,backendUrl:`Bambuddy Backend URL`,apiToken:`API Token`,apiTokenPlaceholder:`Enter API token`,saveConfig:`Save Config`,systemQueued:`Config queued.`,nfcDiagnostic:`NFC Diagnostic`,scaleDiagnostic:`Scale Diagnostic`,readTagDiagnostic:`Read Tag Diagnostic`,testNfc:`Test reader`,testScale:`Test accuracy`,testReadTag:`Read tag`,systemFieldsRequired:`Backend URL is required.`,brightness:`Brightness`,saved:`Saved`,noBacklight:`No DSI backlight detected. Brightness control requires a DSI display.`,screenBlank:`Screen Blank Timeout`,screenBlankDesc:`Screen turns off after inactivity. Touch to wake.`,displayNote:`Brightness is applied as a software filter.`,scaleCalibration:`Scale Calibration`,currentWeight:`Current weight`,tareOffset:`Tare`,calFactor:`Factor`,knownWeight:`Known weight`,calStep1:`Remove all items from the scale and press Set Zero.`,calStep2:`Place known weight on scale.`,setZero:`Set Zero`,calibrateNow:`Calibrate`,calibrated:`Calibrated`,tareSet:`Tare command sent. Waiting for device...`,tareComplete:`Tare complete!`,tareTimedOut:`Tare timed out — is the SpoolBuddy daemon running?`,tareFailed:`Failed to send tare command`,zeroSet:`Zero point set. Place known weight on scale.`,calibrationDone:`Calibration complete!`,calibrationFailed:`Calibration failed`,lastCalibrated:`Last calibrated`,stable:`Stable`,settling:`Settling...`,firmware:`Firmware`,scale:`Scale`,noDevice:`No SpoolBuddy device found`,daemonVersion:`Daemon Version`,currentVersion:`Current`,versionPending:`Waiting for daemon...`,checking:`Checking...`,checkUpdates:`Check for Updates`,updateAvailable:`Update available`,updateInstructions:`Update via SSH: run the SpoolBuddy install script to upgrade.`,upToDate:`Up to date`,includeBeta:`Include beta versions`},writeTag:{tabExisting:`Existing Spool`,tabNew:`New Spool`,tabReplace:`Replace Tag`,searchPlaceholder:`Search by material, color, brand...`,noUntaggedSpools:`No spools without tags`,noTaggedSpools:`No spools with tags`,selectSpool:`Select a spool, then place a blank NTAG on the reader`,placeTag:`Place an NTAG on the reader`,tagReady:`Tag detected — ready to write`,writeTag:`Write Tag`,replaceTag:`Replace Tag`,writing:`Writing tag...`,waiting:`Waiting for SpoolBuddy...`,writeSuccess:`Tag written successfully!`,writeFailed:`Write failed`,queueFailed:`Failed to queue write command`,tryAgain:`Try Again`,cancel:`Cancel`,replaceWarning:`Old tag will be unlinked. New tag will replace it.`,deviceOffline:`SpoolBuddy is offline`,material:`Material`,colorName:`Color Name`,color:`Color`,brand:`Brand`,weight:`Weight (g)`,createSpool:`Create Spool`,creating:`Creating...`,spoolCreated:`Spool created! Ready to write.`,createFailed:`Failed to create spool`,incompleteDataWarning:`Tag written with incomplete Spoolman data`},quickMenu:{printerPower:`Printer Power`,systemControls:`System`,restartDaemon:`Restart Daemon`,restartBrowser:`Restart Browser`,reboot:`Reboot`,shutdown:`Shutdown`,swipeToClose:`Swipe down to close`,confirmTitle:`Confirm`,confirmShutdown:`Are you sure you want to shut down the SpoolBuddy? You will need physical access to turn it back on.`,confirmReboot:`Are you sure you want to reboot the SpoolBuddy?`,confirmRestartDaemon:`Restart the SpoolBuddy daemon? NFC and scale will be temporarily unavailable.`,confirmRestartBrowser:`Restart the kiosk browser? The display will briefly go blank.`,confirm:`Confirm`,confirmPlugOn:`Turn on {{name}}?`,confirmPlugOff:`Turn off {{name}}?`,turnOn:`Turn On`,turnOff:`Turn Off`}},diagnostic:{modalTitle:`Connection diagnostic — {{name}}`,running:`Running diagnostic...`,runningElapsed:`Running diagnostic... ({{elapsed}}s)`,waitingForReportHint:`Listening for the printer to publish a status report — this can take up to {{max}} seconds.`,runFailed:`Diagnostic could not run: {{error}}`,retry:`Run again`,runButton:`Run diagnostic`,sectionTitle:`Connection Diagnostic`,sectionDescription:`Check why a printer won't connect or won't print — port reachability, LAN developer mode, Docker network mode, and credentials.`,noPrinters:`No printers configured.`,overall:{ok:`No problems found — the printer connection looks healthy.`,warnings:`The printer should work, but some things need attention.`,problems:`Found problems that explain why the printer won't connect or print.`},check:{port_mqtt:{title:`Control port (MQTT 8883)`,pass:`Reachable — the printer is accepting control connections.`,fail:`Port 8883 is unreachable. The printer is powered off, on a different IP address, or a firewall is blocking it. Verify the printer IP and that nothing blocks port 8883.`},port_ftps:{title:`File transfer port (FTPS 990)`,pass:`Reachable — sending print files will work.`,warn:`Port 990 is unreachable. Monitoring may still work, but sending prints to the printer will fail. Make sure port 990 is not blocked.`},external_storage:{title:`Store sent files on external storage (install step 4)`,pass:`The printer reports this option is on — sent files will be stored on the SD card and archives will have thumbnails and slicer metadata.`,fail:`The printer reports this option is off. Enable "Store sent files on external storage" — on newer firmware (P2S 01.02 / Bambu Studio 2.6+) the toggle lives on the printer's Print Settings; on older versions it's in Bambu Studio / OrcaSlicer's Device tab. Without it, every archived print is missing its thumbnail and slicer metadata.`,skip:`Not checked — needs a live MQTT connection. On older slicers where this setting lives only in the slicer the printer never reports it, so this check will pass even when the option is off — verify install step 4 manually.`,skip_unsupported_model:`This model has an SD slot but no way to turn the option on — current P1-series firmware doesn't expose the toggle in Bambu Studio and the printer has no screen. Nothing to fix here; archived prints may lack thumbnails and slicer metadata until Bambu Lab adds firmware support.`},port_rtsps:{title:`Camera port ({{protocol}} {{port}})`,pass:`Reachable — the camera stream will work.`,warn:`Port {{port}} is unreachable. The live camera view will not work. This does not affect printing.`},network_mode:{title:`Docker network mode`,pass:`Running in host network mode.`,warn:`Bambuddy is running in Docker bridge networking. Printer discovery and the Virtual Printer need host network mode — recreate the container with "network_mode: host".`,skip:`Not running in Docker — not applicable.`},subnet:{title:`Network subnet`,pass:`The printer and Bambuddy are on the same subnet.`,warn:`The printer ({{printer_ip}}) and Bambuddy ({{host_ip}}) are on different subnets. They may not reach each other unless routing between the subnets is configured.`,skip:`Subnet could not be determined — skipped.`},mqtt_auth:{title:`Printer credentials`,pass:`The printer accepted the connection.`,fail:`The printer is reachable but Bambuddy is not connected to it. The access code or serial number is most likely wrong — the access code changes every time LAN Only or Developer Mode is toggled, so re-copy it from the printer screen. A printer that is rebooting, or already at its limit of simultaneous connections, can look the same.`,fail_auth_rejected:`The printer refused Bambuddy's credentials. The access code or serial number is wrong — the access code changes every time LAN Only or Developer Mode is toggled, so re-copy it from the printer screen and save it in the printer settings.`,skip:`Not checked — the printer could not be reached.`},developer_mode:{title:`LAN Developer Mode`,pass:`Developer Mode is enabled.`,fail:`Developer Mode is OFF on the printer. Enable it in the printer's LAN settings — and confirm with OK. Without it, prints will not start.`,skip:`Could not be checked — requires a live connection to the printer.`},printer_publishing:{title:`Printer is publishing status`,pass:`The printer is publishing status updates — AMS, filaments, and K-profiles will mirror correctly to the slicer.`,fail:`The MQTT broker accepted the connection but the printer has not published any status reports. This is almost always a wrong or mis-cased serial number — the device//api/v1/metrics für Prometheus/Grafana-Überwachung bereitstellen.`,bearerTokenOptional:`Bearer-Token (optional)`,bearerTokenHint:`Wenn gesetzt, müssen Anfragen Authorization: Bearer enthalten`,metricsConnectionStatus:`Verbindungsstatus`,metricsPrinterState:`Druckerstatus (idle/printing/etc)`,metricsPrintProgress:`Druckfortschritt 0-100%`,metricsBedTemp:`Betttemperatur`,metricsNozzleTemp:`Düsentemperatur`,metricsPrintsTotal:`Gesamtdrucke nach Ergebnis`,metricsMore:`...und mehr (Schichten, Lüfter, Warteschlange, Filamentverbrauch)`,smartPlugsDescription:`Smart Plugs (Tasmota oder Home Assistant) verbinden, um Stromsteuerung zu automatisieren und Energieverbrauch für Ihre Drucker zu verfolgen.`,allOn:`Alle Ein`,allOff:`Alle Aus`,addSmartPlug:`Smart Plug hinzufügen`,energySummary:`Energieübersicht`,currentPower:`Aktuelle Leistung`,plugsOnline:`{{reachable}}/{{total}} Plugs online`,today:`Heute`,yesterday:`Gestern`,total:`Gesamt`,enablePlugsForSummary:`Plugs aktivieren, um Energieübersicht zu sehen`,addNotificationProvider:`Hinzufügen`,systemBadge:`(System)`,creating:`Erstellen...`,changing:`Ändern...`,deleteUserAndItems:`Benutzer UND dessen Elemente löschen`,deleteUserKeepItems:`Benutzer löschen, Elemente behalten (werden herrenlos)`,ok:`OK`,twoFa:{totpTitle:`Authenticator-App (TOTP)`,totpDesc:`Verwende eine Authenticator-App wie Google Authenticator, Aegis oder Authy.`,emailOtpTitle:`E-Mail OTP`,emailOtpDesc:`Sende einen Einmalcode an {{email}} beim Einloggen.`,emailOtpNoEmail:`Füge eine E-Mail-Adresse zu deinem Konto hinzu, um diese Methode zu aktivieren.`,addEmailFirst:`Dein Konto hat keine E-Mail-Adresse. Bitte einen Administrator, eine hinzuzufügen.`,setupTotp:`Authenticator-App einrichten`,setupAuthApp:`Authenticator-App einrichten`,setupInstructions:`Scanne den QR-Code mit deiner Authenticator-App und bestätige mit einem Code.`,manualEntry:`Kein Scanner? Gib dieses Secret manuell ein:`,scannedContinue:`Code gescannt — weiter`,enterCodeToConfirm:`Gib den 6-stelligen Code aus deiner Authenticator-App ein, um die Einrichtung zu bestätigen.`,activate:`Aktivieren`,disableTotp:`Authenticator deaktivieren`,disableConfirmHint:`Gib einen gültigen TOTP-Code oder einen Backup-Code ein, um den Authenticator zu deaktivieren.`,totpDisabled:`Authenticator-App deaktiviert.`,emailOtpEnabled:`E-Mail OTP aktiviert.`,emailOtpDisabled:`E-Mail OTP deaktiviert.`,smtpRequired:`Bitte konfigurieren und testen Sie zuerst die SMTP-Einstellungen.`,invalidCode:`Ungültiger Code. Bitte erneut versuchen.`,enableEmailOtp:`E-Mail OTP aktivieren`,disableEmailOtp:`E-Mail OTP deaktivieren`,emailSetupEnterCode:`Ein Bestätigungscode wurde an Ihre E-Mail-Adresse gesendet. Geben Sie ihn unten ein, um zu bestätigen, dass Ihnen dieses Postfach gehört.`,verifyAndEnable:`Verifizieren & Aktivieren`,emailDisablePasswordHint:`Geben Sie Ihr Kontopasswort ein, um die Deaktivierung des E-Mail OTP zu bestätigen.`,passwordPlaceholder:`Passwort eingeben`,backupCodesTitle:`Backup-Codes sichern`,backupCodesWarning:`Speichere diese Codes sicher. Jeder Code kann nur einmal verwendet werden und wird nicht erneut angezeigt.`,backupCodesRemaining:`{{count}} Backup-Codes verbleibend`,savedCodes:`Codes gespeichert`,regenBackup:`Backup-Codes neu generieren`,regenBackupHint:`Gib deinen aktuellen TOTP-Code ein, um 10 neue Backup-Codes zu generieren. Alle bestehenden Codes werden ungültig.`,newBackupCodes:`Neue Backup-Codes`,linkedAccounts:`Verknüpfte SSO-Konten`,linkedAccountsDesc:`Diese externen Identitätsanbieter sind mit deinem Konto verknüpft.`,oidcUnlinked:`Konto getrennt.`},sessionPolicy:{title:`Sitzungsrichtlinie`,description:`Maximale Sitzungsdauer für neue Benutzeranmeldungen. Bereits ausgegebene Token behalten ihren ursprünglichen Ablauf.`,preset24h:`24 Stunden`,preset7d:`7 Tage`,preset30d:`30 Tage`,customHoursLabel:`Individuelle Sitzungsdauer in Stunden`,hoursSuffix:`Stunden`,warning:`Längere Sitzungen reduzieren den automatischen Abmeldeschutz. Nur für vertrauenswürdige Einzelnutzer-Installationen empfohlen.`},oidc:{title:`SSO / OIDC-Anbieter`,desc:`Konfiguriere OpenID Connect-Anbieter für Single Sign-On.`,addProvider:`Anbieter hinzufügen`,newProvider:`Neuer Anbieter`,empty:`Noch keine OIDC-Anbieter konfiguriert.`,created:`Anbieter erstellt.`,updated:`Anbieter aktualisiert.`,deleted:`Anbieter gelöscht.`,refreshIcon:`Icon neu laden`,removeIcon:`Icon entfernen`,iconRefreshed:`Icon aktualisiert.`,iconRemoved:`Icon entfernt.`,iconFetchFailed:`Icon konnte von der Anbieter-URL nicht geladen werden.`,deleteTitle:`Anbieter löschen`,deleteMessage:`"{{name}}" löschen? Alle verknüpften Benutzerkonten werden getrennt.`,form:{name:`Anzeigename`,issuerUrl:`Aussteller-URL`,clientId:`Client-ID`,clientSecret:`Client-Secret`,scopes:`Bereiche`,iconUrl:`Symbol-URL (optional)`,enabled:`Aktiviert`,autoCreate:`Benutzer automatisch anlegen`,autoCreateDesc:`Erstellt beim ersten Login automatisch ein lokales Konto.`,autoLink:`Bestehende Konten automatisch verknüpfen`,autoLinkDesc:`Verknüpft beim ersten Login vorhandene lokale Konten anhand der E-Mail-Adresse.`,secretHint:`leer lassen zum Beibehalten`,secretPlaceholder:`neues Secret`,emailClaim:`E-Mail-Claim`,emailClaimDesc:`JWT-Claim für die E-Mail-Identität. Für Azure Entra ID 'preferred_username' oder 'upn' verwenden (sendet kein email_verified). Nur vertrauenswürdige Claim-Namen verwenden.`,emailClaimPlaceholder:`E-Mail`,emailClaimCustomClaimAutoLinkWarning:`Benutzerdefinierte Claims sind für die Auto-Verknüpfung nur sicher, wenn der Wert vom Mandanten verwaltet wird (z. B. Azure Entra ID upn / preferred_username). Aktiviere Auto-Verknüpfung nicht, wenn dein IdP Benutzern erlaubt, diesen Claim selbst zu setzen.`,requireEmailVerified:`E-Mail-Verifizierung erforderlich`,requireEmailVerifiedDesc:`E-Mail-Claim nur akzeptieren, wenn der Provider ihn als verifiziert markiert.`,requireEmailVerifiedWarning:`Warnung: E-Mail wird auch ohne Verifizierung akzeptiert. Nur bei vertrauenswürdigen Providern verwenden.`,requireEmailVerifiedAutoLink:`Auto-Verknüpfung zuerst deaktivieren, um diese Einstellung zu ändern.`,defaultGroup:`Standardgruppe`,defaultGroupDesc:`Gruppe, der automatisch erstellte Benutzer zugewiesen werden. Fallback auf Viewers, wenn nicht gesetzt.`,defaultGroupViewersFallback:`Viewers (Standard)`,autologin:`Automatische Anmeldung`,autologinDesc:`Nicht angemeldete Besucher direkt zu diesem Anbieter weiterleiten. Diese Option kann nur für einen Anbieter aktiv sein.`}},encryption:{title:`MFA-Verschlüsselungsstatus`,enabledFromEnv:`At-Rest-Verschlüsselung aktiv (Schlüssel aus Umgebungsvariable MFA_ENCRYPTION_KEY)`,enabledFromFile:`At-Rest-Verschlüsselung aktiv (Schlüssel aus dem Datenverzeichnis geladen)`,enabledGenerated:`At-Rest-Verschlüsselung aktiv mit automatisch generiertem Schlüssel`,notConfigured:`At-Rest-Verschlüsselung nicht konfiguriert`,notConfiguredDesc:`TOTP-Geheimnisse und OIDC-Client-Secrets werden im Klartext gespeichert. Setze MFA_ENCRYPTION_KEY oder starte Bambuddy mit beschreibbarem Datenverzeichnis neu, damit ein Schlüssel automatisch erzeugt wird.`,allEncrypted:`Alle MFA-Geheimnisse sind verschlüsselt gespeichert.`,legacyRowsLabel:`Klartext-Zeilen (Altbestand)`,encryptedRowsLabel:`Verschlüsselte Zeilen`,legacyRowsWarning:`{{count}} Klartext-Zeile(n) erkannt. Den OIDC-Provider neu speichern oder den Authenticator des Benutzers neu einrichten, um die Daten verschlüsselt abzulegen.`,backupHint:`Der automatisch erzeugte Schlüssel liegt unter DATA_DIR/.mfa_encryption_key und wird in lokalen Backup-ZIPs mitgesichert. Backups sicher aufbewahren oder MFA_ENCRYPTION_KEY explizit setzen.`,decryptionBrokenTitle:`Verschlüsselungsschlüssel fehlt`,decryptionBrokenError:`{{count}} verschlüsselte Datensätze können nicht entschlüsselt werden, weil der Schlüssel nicht mehr verfügbar ist. Den vorherigen MFA_ENCRYPTION_KEY oder DATA_DIR/.mfa_encryption_key wiederherstellen.`,migrationErrorWarning:`{{count}} Legacy-Eintrag/Einträge konnten beim Start nicht verschlüsselt werden. Prüfen Sie die Server-Logs und starten Sie Bambuddy neu.`},pipelineLimits:{title:`Slicer-Pipeline-Limits`,maxCopiesLabel:`Max. Kopien pro Lauf`,maxCopiesDesc:`Obergrenze für die Anzahl an Kopien, die Operatoren beim Ausführen einer Pipeline anfordern können. Serverseitige Obergrenze ist 1000.`},pipelines:{title:`Slicer-Pipelines`,subtitle:`Wiederverwendbare Preset-Bundles (Drucker + Prozess + Filamente + Druckplatte). Speichere eines aus dem Slice-Dialog und wende es beim nächsten Datei-Slice mit einem Klick an.`,loading:`Pipelines werden geladen…`,loadError:`Pipelines konnten nicht geladen werden.`,confirmDelete:`Diese Pipeline löschen? Das kann nicht rückgängig gemacht werden.`,staleWarning:`Eines oder mehrere referenzierte Presets existieren nicht mehr. Speichere diese Pipeline erneut aus dem Slice-Dialog, um sie zu reparieren.`,empty:{title:`Noch keine Pipelines.`,howto:`Öffne den Slice-Dialog für eine beliebige Datei, wähle Drucker / Prozess / Filamente / Druckplatte und klicke „Als Pipeline speichern“. Deine gespeicherten Pipelines erscheinen hier.`},field:{name:`Pipeline-Name`,description:`Beschreibung`,targetPrinter:`Zieldrucker`,noTarget:`— Kein Ziel —`,targetKind:`Zielart`,targetKindSpecific:`Spezifischer Drucker`,targetKindClass:`Druckerklasse`,targetModelClass:`Druckermodell`,fanoutStrategy:`Verteilungsstrategie`,fanout:{max_parallel:`Max parallel — auf alle verfügbaren passenden Drucker verteilen`,round_robin:`Reihum — durch geeignete Drucker rotieren`,fill_one_first:`Erst einen füllen — alle Kopien an einen Drucker binden`},fanoutShort:{max_parallel:`parallel`,round_robin:`Reihum`,fill_one_first:`einer zuerst`}},action:{save:`Speichern`,cancel:`Abbrechen`,rename:`Umbenennen`,delete:`Löschen`},slot:{printer:`Drucker`,process:`Prozess`,filament:`Filament`,filamentN:`Filament {{n}}`,filamentAll:`Alle {{n}} Slots`,bed:`Druckplatte`},group:{profiles:`Profile`,filaments:`Filamente`},searchPlaceholder:`Pipelines durchsuchen…`,filterTargetType:`Nach Zielart filtern`,filterTarget:`Nach Ziel filtern`,filter:{all:`Alle Ziele`,noTarget:`Kein Ziel festgelegt`,count:`{{shown}} / {{total}}`,noMatches:`Keine Pipelines entsprechen den aktuellen Filtern.`},toast:{saved:`Pipeline gespeichert`,saveFailed:`Speichern fehlgeschlagen`,deleted:`Pipeline gelöscht`,deleteFailed:`Löschen fehlgeschlagen`},noTargetHint:`Lege einen Zieldrucker fest, um diese auszuführen`,noTargetWarning:`Lege einen Zieldrucker fest, bevor du diese Pipeline ausführst.`,runs:{lastRun:`Letzter Lauf`,status:{queued:`in Warteschlange`,slicing:`wird geschnitten`,dispatching:`wird gesendet`,in_progress:`druckt`,completed:`abgeschlossen`,failed:`fehlgeschlagen`,partial_failure:`teilweise fehlgeschlagen`,cancelled:`abgebrochen`}}}},notification:{printStarted:{title:`Druck gestartet`,body:`{{printer}}: {{filename}} wird gedruckt`},printCompleted:{title:`Druck abgeschlossen`,body:`{{printer}}: {{filename}} erfolgreich abgeschlossen`},printFailed:{title:`Druck fehlgeschlagen`,body:`{{printer}}: {{filename}} ist fehlgeschlagen`},printStopped:{title:`Druck gestoppt`,body:`{{printer}}: {{filename}} wurde gestoppt`},printProgress:{title:`Druckfortschritt`,body:`{{printer}}: {{filename}} ist zu {{percent}}% abgeschlossen`},printerOffline:{title:`Drucker offline`,body:`{{printer}} ist offline`},printerError:{title:`Druckerfehler`,body:`{{printer}} – {{error}}`},filamentLow:{title:`Filament niedrig`,body:`{{printer}}: Filament geht zur Neige`},maintenanceDue:{title:`Wartung fällig`,body:`{{printer}}: {{items}} benötigen Aufmerksamkeit`}},errors:{generic:`Etwas ist schiefgelaufen`,networkError:`Netzwerkfehler. Bitte überprüfen Sie Ihre Verbindung.`,notFound:`Nicht gefunden`,unauthorized:`Nicht autorisiert`,serverError:`Serverfehler`,validationError:`Bitte überprüfen Sie Ihre Eingabe`,printerConnectionFailed:`Verbindung zum Drucker fehlgeschlagen`,saveFailed:`Speichern fehlgeschlagen`,deleteFailed:`Löschen fehlgeschlagen`,loadFailed:`Laden der Daten fehlgeschlagen`},hmsErrors:{title:`Fehler - {{name}}`,noErrors:`Keine Fehler`,viewOnWiki:`Im Bambu Lab Wiki ansehen`,mqttVerifyFailedRemedy:`Aktiviere den Entwicklermodus am Drucker, starte den Drucker neu und starte den Auftrag dann erneut.`,unknownCode:`Unbekannter HMS-Code — Details siehe Bambu Lab Wiki.`,clearInstructions:`Löschen Sie die Fehler am Drucker, um sie hier zu entfernen.`,clearErrors:`Fehler löschen`,clearSuccess:`HMS-Fehler gelöscht`,clearFailed:`HMS-Fehler konnten nicht gelöscht werden`,actionSuccess:`Aktion an Drucker gesendet`,actionFailed:`Aktion konnte nicht gesendet werden`,runoutExpectedSlot:`Das Filament in {{ranOut}} ist aufgebraucht. Der Drucker wartet jetzt auf kompatibles Filament in {{expected}}. Legen Sie eine Spule in {{expected}} ein und wählen Sie dann Wiederholen.`,runoutExpectedSlotOnly:`Der Drucker wartet auf kompatibles Filament in {{expected}}. Legen Sie dort eine Spule ein und wählen Sie dann Wiederholen.`,runoutSlotUnknown:`Das Filament ist aufgebraucht und der Druck ist pausiert. Bambuddy konnte nicht ermitteln, welchen Slot der Drucker jetzt erwartet — prüfen Sie am Druckerdisplay, welcher Slot angefordert wird.`,actions:{RESUME_PRINTING:`Druck fortsetzen`,RESUME_PRINTING_DEFECTS:`Fortsetzen (Mängel akzeptabel)`,RESUME_PRINTING_PROBELM_SOLVED:`Fortsetzen (Problem gelöst)`,STOP_PRINTING:`Druck stoppen`,CHECK_ASSISTANT:`Assistent öffnen`,FILAMENT_EXTRUDED:`Filament extrudiert, weiter`,RETRY_FILAMENT_EXTRUDED:`Noch nicht extrudiert, erneut`,CONTINUE:`Fertig, weiter`,LOAD_VIRTUAL_TRAY:`Filament laden`,OK_BUTTON:`OK`,FILAMENT_LOAD_RESUME:`Filament geladen, fortsetzen`,JUMP_TO_LIVEVIEW:`Live-Ansicht öffnen`,NO_REMINDER_NEXT_TIME:`Nicht mehr erinnern`,REFRESH_NOZZLE:`Erneut prüfen`,IGNORE_NO_REMINDER_NEXT_TIME:`Ignorieren und nicht mehr erinnern`,IGNORE_RESUME:`Ignorieren und fortsetzen`,PROBLEM_SOLVED_RESUME:`Problem gelöst, fortsetzen`,TURN_OFF_FIRE_ALARM:`Verstanden, Brandalarm ausschalten`,RETRY_PROBLEM_SOLVED:`Erneut versuchen (Problem gelöst)`,CANCLE:`Abbrechen`,STOP_DRYING:`Trocknen stoppen`,PROCEED:`Fortfahren`,OK_JUMP_RACK:`OK`,ABORT:`Abbrechen`,DISABLE_PURIFICATION:`Luftreinigung für diesen Druck deaktivieren`,DONT_REMIND_NEXT_TIME:`Nicht mehr erinnern`,DBL_CHECK_CANCEL:`Abbrechen`,DBL_CHECK_DONE:`Fertig`,DBL_CHECK_RETRY:`Erneut versuchen`,DBL_CHECK_RESUME:`Fortsetzen`,DBL_CHECK_OK:`Bestätigen`,REMOVE_CLOSE_BTN:`Schließen`}},mqttDebug:{title:`MQTT-Debug-Protokoll`,searchPlaceholder:`Topic oder Payload suchen...`,noMessages:`Noch keine Nachrichten protokolliert`,startLoggingHint:`Klicken Sie auf "Protokollierung starten", um MQTT-Nachrichten aufzuzeichnen`,noMessagesMatch:`Keine Nachrichten entsprechen Ihrem Filter`,adjustFilterHint:`Versuchen Sie, Ihre Such- oder Filterkriterien anzupassen`,incoming:`Eingehend`,outgoing:`Ausgehend`,loggingStopped:`Protokollierung gestoppt`,loggingActive:`Protokollierung aktiv - Nachrichten werden automatisch aktualisiert`,startLogging:`Protokollierung starten`,stopLogging:`Protokollierung stoppen`,clearLog:`Protokoll löschen`,topic:`Thema`,timestamp:`Zeitstempel`,direction:`Richtung`,all:`Alle`},printerFiles:{title:`Dateimanager`,storageUsed:`Belegt:`,storageFree:`Frei:`,filterPlaceholder:`Dateien filtern...`,deleteButton:`Löschen`,deleteFiles:`{{count}} Dateien löschen`,deleteFileConfirm:`"{{name}}" löschen? Dies kann nicht rückgängig gemacht werden.`,deleteFilesConfirm:`{{count}} ausgewählte Dateien löschen? Dies kann nicht rückgängig gemacht werden.`,noFiles:`Keine Dateien auf dem Drucker`,loadingFiles:`Dateien werden geladen...`,failedToLoad:`Dateien konnten nicht geladen werden`,toast:{filesDeleted:`{{count}} Datei(en) gelöscht`,deleteFailed:`Löschen fehlgeschlagen: {{error}}`}},confirm:{delete:`Möchten Sie dies wirklich löschen?`,unsavedChanges:`Sie haben ungespeicherte Änderungen. Möchten Sie wirklich verlassen?`,clearQueue:`Möchten Sie die Warteschlange wirklich leeren?`},login:{title:`Bambuddy Anmeldung`,subtitle:`Melden Sie sich bei Ihrem Konto an`,username:`Benutzername`,usernamePlaceholder:`Benutzername eingeben`,usernameOrEmail:`Benutzername oder E-Mail`,usernameOrEmailPlaceholder:`Benutzername oder @ E-Mail`,password:`Passwort`,passwordPlaceholder:`Passwort eingeben`,signIn:`Anmelden`,signingIn:`Anmeldung läuft...`,rememberMe:`Angemeldet bleiben`,forgotPassword:`Passwort vergessen?`,autologinFailed:`Automatische SSO-Anmeldung fehlgeschlagen. Bitte wählen Sie unten einen Anbieter.`,localDisabledNotice:`Lokale Anmeldung ist deaktiviert. Bitte verwenden Sie einen der SSO-Anbieter unten.`,loginSuccess:`Erfolgreich angemeldet`,loginFailed:`Anmeldung fehlgeschlagen`,enterCredentials:`Bitte Benutzername und Passwort eingeben`,enterEmail:`Bitte geben Sie Ihre E-Mail-Adresse ein`,oidcLoginFailed:`OIDC-Anmeldung fehlgeschlagen`,oidcErrors:{providerError:`Der Identity-Provider hat einen Fehler zurückgegeben`,missingParameters:`Dem OIDC-Callback fehlen erforderliche Parameter`,invalidState:`OIDC-State ist ungültig oder wurde bereits verwendet`,stateExpired:`OIDC-Sitzung abgelaufen — bitte erneut versuchen`,providerNotFound:`OIDC-Provider nicht gefunden`,discoveryFailed:`OIDC-Discovery-Dokument konnte nicht abgerufen werden`,invalidDiscovery:`OIDC-Discovery-Dokument ist ungültig`,networkError:`Netzwerkfehler beim OIDC-Token-Austausch`,badResponse:`Unerwartete Antwort beim OIDC-Token-Austausch`,noIdToken:`OIDC-Provider hat kein ID-Token zurückgegeben`,validationFailed:`OIDC-Token-Validierung fehlgeschlagen`,nonceMismatch:`OIDC-Nonce stimmt nicht überein — möglicher Replay-Angriff`,missingSubClaim:`OIDC-Token enthält keinen Sub-Claim`,noLinkedAccount:`Kein lokales Konto mit dieser OIDC-Identität verknüpft`,accountInactive:`Ihr Konto ist inaktiv`,userResolutionFailed:`Ihr Konto konnte nicht aufgelöst werden`,internalError:`Interner Fehler beim OIDC-Login`,tokenExchangeFailed:`OIDC-Token-Austausch fehlgeschlagen`},forgotPasswordTitle:`Passwort vergessen`,forgotPasswordMessage:`Wenn Sie Ihr Passwort vergessen haben, wenden Sie sich bitte an Ihren Systemadministrator.`,forgotPasswordEmailMessage:`Geben Sie Ihre E-Mail-Adresse ein und wir senden Ihnen ein neues Passwort.`,emailAddress:`E-Mail-Adresse`,emailPlaceholder:`ihre.email@beispiel.de`,cancel:`Abbrechen`,sending:`Wird gesendet...`,sendResetEmail:`Zurücksetzungs-E-Mail senden`,howToReset:`So setzen Sie Ihr Passwort zurück:`,resetStep1:`Kontaktieren Sie Ihren Bambuddy-Administrator`,resetStep2:`Bitten Sie ihn, Ihr Passwort in der Benutzerverwaltung zurückzusetzen`,resetStep3:`Er kann ein neues temporäres Passwort für Sie festlegen`,resetStep4:`Melden Sie sich mit dem neuen Passwort an und ändern Sie es in den Einstellungen`,gotIt:`Verstanden`,resetPassword:{title:`Neues Passwort festlegen`,subtitle:`Geben Sie unten Ihr neues Passwort ein und bestätigen Sie es.`,newPassword:`Neues Passwort`,newPasswordPlaceholder:`Mindestens 8 Zeichen`,confirmPassword:`Passwort bestätigen`,confirmPasswordPlaceholder:`Neues Passwort wiederholen`,saving:`Wird gespeichert…`,submit:`Neues Passwort festlegen`,backToLogin:`Zurück zur Anmeldung`,passwordsDoNotMatch:`Passwörter stimmen nicht überein`,passwordTooShort:`Passwort muss mindestens 8 Zeichen lang sein`,resetFailed:`Passwort zurücksetzen fehlgeschlagen. Der Link ist möglicherweise abgelaufen.`},twoFA:{title:`Zwei-Faktor-Authentifizierung`,subtitle:`Ihr Konto ist mit 2FA geschützt. Geben Sie unten den Bestätigungscode ein.`,methodAuthenticator:`Authenticator-App`,methodEmail:`E-Mail-Code`,methodBackup:`Wiederherstellungscode`,instructionsTotp:`Öffnen Sie Ihre Authenticator-App und geben Sie den 6-stelligen Code für Bambuddy ein.`,instructionsEmail:`Ein 6-stelliger Code wurde an Ihre E-Mail-Adresse gesendet. Er ist 10 Minuten gültig.`,instructionsEmailNotSent:`Klicken Sie unten, um einen Bestätigungscode per E-Mail zu erhalten.`,instructionsBackup:`Geben Sie einen Ihrer 8-stelligen Wiederherstellungscodes ein. Jeder Code kann nur einmal verwendet werden.`,sendCodeButton:`Code per E-Mail senden`,sendingCode:`Wird gesendet...`,resendCode:`Code erneut senden`,codeLabel:`Bestätigungscode`,backupCodeLabel:`Wiederherstellungscode`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`Bestätigen`,verifyingButton:`Wird überprüft...`,backToLogin:`← Zurück zur Anmeldung`,orContinueWith:`oder anmelden mit`,signInWith:`Anmelden mit {{provider}}`,enterCode:`Bitte geben Sie den Bestätigungscode ein`,sendCodeFailed:`Bestätigungscode konnte nicht gesendet werden`,invalidCode:`Ungültiger Code. Bitte erneut versuchen.`}},setup:{title:`Bambuddy Einrichtung`,subtitle:`Konfigurieren Sie die Authentifizierung für Ihre Bambuddy-Instanz`,enableAuth:`Authentifizierung aktivieren`,adminAccount:`Admin-Konto`,adminAccountDesc:`Wenn bereits Admin-Benutzer existieren, wird die Authentifizierung mit den vorhandenen Admin-Konten aktiviert. Lassen Sie die Felder unten leer, um vorhandene Admins zu verwenden, oder geben Sie neue Anmeldedaten ein, um einen neuen Admin-Benutzer zu erstellen.`,adminUsername:`Admin-Benutzername`,adminPassword:`Admin-Passwort`,optionalIfAdminExists:`(optional, wenn Admin-Benutzer existieren)`,adminUsernamePlaceholder:`Admin-Benutzernamen eingeben (optional)`,adminPasswordPlaceholder:`Admin-Passwort eingeben (optional)`,confirmPassword:`Passwort bestätigen`,confirmPasswordPlaceholder:`Admin-Passwort bestätigen`,settingUp:`Einrichtung läuft...`,completeSetup:`Einrichtung abschließen`,toast:{authEnabledAdminCreated:`Authentifizierung aktiviert und Admin-Benutzer erstellt`,authEnabledExistingAdmins:`Authentifizierung mit vorhandenen Admin-Benutzern aktiviert`,setupCompleted:`Einrichtung abgeschlossen`,enterBothCredentials:`Bitte geben Sie sowohl Admin-Benutzernamen als auch Passwort ein, oder lassen Sie beide leer, um vorhandene Admin-Benutzer zu verwenden`,passwordsDoNotMatch:`Passwörter stimmen nicht überein`,passwordTooShort:`Passwort muss mindestens 6 Zeichen lang sein`}},changePassword:{title:`Passwort ändern`,currentPassword:`Aktuelles Passwort`,currentPasswordPlaceholder:`Aktuelles Passwort eingeben`,newPassword:`Neues Passwort`,newPasswordPlaceholder:`Neues Passwort eingeben (min. 6 Zeichen)`,confirmPassword:`Neues Passwort bestätigen`,confirmPasswordPlaceholder:`Neues Passwort bestätigen`,passwordsDoNotMatch:`Passwörter stimmen nicht überein`,passwordTooShort:`Passwort muss mindestens 6 Zeichen lang sein`,changing:`Wird geändert...`,success:`Passwort erfolgreich geändert`,failed:`Passwortänderung fehlgeschlagen`},plateAlert:{title:`Druck pausiert!`,message:`Objekte auf dem Druckbett erkannt. Der Druck wurde automatisch pausiert. Bitte räumen Sie das Druckbett und setzen Sie den Druck fort.`,understand:`Verstanden`},camera:{title:`Kameraansicht`,invalidPrinterId:`Ungültige Drucker-ID`,live:`Live`,snapshot:`Schnappschuss`,restartStream:`Stream neu starten`,refreshSnapshot:`Schnappschuss aktualisieren`,fullscreen:`Vollbild`,exitFullscreen:`Vollbild beenden`,connectingToCamera:`Verbinde mit Kamera...`,capturingSnapshot:`Schnappschuss wird aufgenommen...`,connectionLost:`Verbindung verloren`,connectionFailed:`Kameraverbindung fehlgeschlagen`,reconnecting:`Neuverbindung in {{countdown}}s... (Versuch {{attempt}}/{{max}})`,reconnectNow:`Jetzt verbinden`,cameraUnavailable:`Kamera nicht verfügbar`,cameraUnavailableDesc:`Stellen Sie sicher, dass der Drucker eingeschaltet und verbunden ist.`,noCamera:`Keine Kamera verfügbar`,retry:`Erneut versuchen`,cameraStream:`Kamera-Stream`,zoomOut:`Verkleinern`,zoomIn:`Vergrößern`,resetZoom:`Zoom zurücksetzen`,recording:`Aufnahme`,startRecording:`Aufnahme starten`,stopRecording:`Aufnahme stoppen`,chamberLight:`Kammerbeleuchtung umschalten`,unavailable:`Kamera nicht verfügbar`,diagnose:{button:`Diagnose`,modalTitle:`Kamera-Diagnose`,running:`Diagnose läuft...`,runFailed:`Diagnose konnte nicht ausgeführt werden: {{error}}`,retry:`Erneut ausführen`,stage:{tcp_reachable:`Netzwerk-Erreichbarkeit`,first_frame:`Bilderfassung`,live_stream_active:`Live-Stream aktiv`},summary:{all_ok:`Kamera funktioniert. Die Diagnose hat alle Phasen erfolgreich abgeschlossen.`,live_stream_active_healthy:`Kamera streamt gerade mit aktuellen Bildern — kein Test nötig.`,printer_unreachable:`Drucker ist nicht erreichbar. Prüfe IP-Adresse, Netzwerkverbindung und ob der Drucker eingeschaltet ist.`,camera_port_closed:`Drucker ist erreichbar, aber der Kamera-Port ist geschlossen. Stelle sicher, dass LAN-Modus und Entwicklermodus in den Druckereinstellungen aktiviert sind.`,no_frame:`Verbindung zur Kamera hergestellt, aber keine Bilder empfangen. Versuche es erneut oder prüfe, ob die Kamera in den Druckereinstellungen aktiviert ist.`,unknown_failure:`Kamera-Diagnose aus unbekanntem Grund fehlgeschlagen. Prüfe das Support-Log für Details.`},meta:{protocol:`Protokoll`,port:`Port`,profile:`Profil`}}},groups:{title:`Gruppenverwaltung`,subtitle:`Berechtigungsgruppen für Zugriffskontrolle verwalten`,backToSettings:`Zurück zu Einstellungen`,createGroup:`Gruppe erstellen`,noPermission:`Sie haben keine Berechtigung, auf diese Seite zuzugreifen.`,system:`System`,noDescription:`Keine Beschreibung`,usersCount:`{{count}} Benutzer`,permissionsCount:`{{count}} Berechtigungen`,edit:`Bearbeiten`,delete:`Löschen`,toast:{created:`Gruppe erfolgreich erstellt`,updated:`Gruppe erfolgreich aktualisiert`,deleted:`Gruppe erfolgreich gelöscht`,enterGroupName:`Bitte geben Sie einen Gruppennamen ein`},modal:{editGroup:`Gruppe bearbeiten`,createGroup:`Gruppe erstellen`,cancel:`Abbrechen`,saving:`Speichern...`,creating:`Erstellen...`,saveChanges:`Änderungen speichern`},form:{groupName:`Gruppenname`,groupNamePlaceholder:`Gruppennamen eingeben`,systemGroupWarning:`Systemgruppennamen können nicht geändert werden`,description:`Beschreibung`,descriptionPlaceholder:`Beschreibung eingeben (optional)`,permissions:`Berechtigungen ({{count}} ausgewählt)`},deleteModal:{title:`Gruppe löschen`,message:`Sind Sie sicher, dass Sie diese Gruppe löschen möchten? Benutzer in dieser Gruppe verlieren diese Berechtigungen.`,confirm:`Gruppe löschen`},editor:{title:`Gruppe bearbeiten`,createTitle:`Gruppe erstellen`,search:`Berechtigungen suchen...`,selectAll:`Alle auswählen`,clearAll:`Alle abwählen`,permissionsSelected:`{{count}} ausgewählt`,noResults:`Keine Berechtigungen entsprechen Ihrer Suche`,websocketHint:`Erforderlich für Live-Aktualisierungen. Ohne diese Berechtigung greift die Oberfläche auf regelmäßiges Abrufen zurück.`}},users:{title:`Benutzerverwaltung`,subtitle:`Benutzer und deren Zugriff auf Ihre Bambuddy-Instanz verwalten`,backToSettings:`Zurück zu Einstellungen`,createUser:`Benutzer erstellen`,noPermission:`Sie haben keine Berechtigung, auf diese Seite zuzugreifen.`,admin:`Admin`,noGroups:`Keine Gruppen`,active:`Aktiv`,inactive:`Inaktiv`,edit:`Bearbeiten`,delete:`Löschen`,system:`System`,noGroupsAvailable:`Keine Gruppen verfügbar`,table:{username:`Benutzername`,groups:`Gruppen`,status:`Status`,actions:`Aktionen`},toast:{created:`Benutzer erfolgreich erstellt`,updated:`Benutzer erfolgreich aktualisiert`,deleted:`Benutzer erfolgreich gelöscht`,fillRequired:`Bitte füllen Sie alle Pflichtfelder aus`,passwordsDoNotMatch:`Passwörter stimmen nicht überein`,passwordTooShort:`Passwort muss mindestens 6 Zeichen lang sein`,ldapProvisioned:`LDAP-Benutzer „{{username}}" bereitgestellt`},modal:{createUser:`Benutzer erstellen`,editUser:`Benutzer bearbeiten`,cancel:`Abbrechen`,creating:`Erstellen...`,saving:`Speichern...`,saveChanges:`Änderungen speichern`,advancedAuthSubtitle:`mit erweiterter Authentifizierung`,tabsAriaLabel:`Benutzerquelle`,localTab:`Lokal`,ldapTab:`LDAP`,ldapSearchLabel:`Verzeichnis durchsuchen`,ldapSearchPlaceholder:`Benutzername, Name oder E-Mail eingeben...`,ldapMinChars:`Mindestens 2 Zeichen für die Suche eingeben`,ldapTypeToSearch:`Tippen, um das LDAP-Verzeichnis zu durchsuchen`,ldapSearching:`Verzeichnis wird durchsucht...`,ldapNoResults:`Keine passenden Benutzer im Verzeichnis`,ldapSearchError:`Verzeichnissuche fehlgeschlagen. Bitte LDAP-Server-Status prüfen.`,ldapAlreadyProvisioned:`Bereits bereitgestellt`,ldapSelectedLabel:`Ausgewählt`,ldapProvision:`Benutzer bereitstellen`,ldapProvisioning:`Wird bereitgestellt...`,ldapErrorProvision:`Bereitstellung fehlgeschlagen. Bitte LDAP-Server-Status prüfen und erneut versuchen.`},form:{username:`Benutzername`,usernamePlaceholder:`Benutzernamen eingeben`,email:`E-Mail`,emailPlaceholder:`benutzer@beispiel.de`,password:`Passwort`,passwordPlaceholder:`Passwort eingeben`,confirmPassword:`Passwort bestätigen`,confirmPasswordPlaceholder:`Passwort bestätigen`,newPasswordPlaceholder:`Neues Passwort eingeben`,confirmNewPasswordPlaceholder:`Neues Passwort bestätigen`,leaveBlankToKeep:`leer lassen, um das aktuelle zu behalten`,groups:`Gruppen`,optional:`optional`,autoGeneratedPassword:`Ein sicheres Passwort wird automatisch generiert und per E-Mail an den Benutzer gesendet.`,passwordManagedByAdvancedAuth:`Das Passwort wird durch erweiterte Authentifizierung verwaltet. Verwenden Sie "Passwort zurücksetzen", um ein neues Passwort per E-Mail an den Benutzer zu senden.`,resetPassword:`Passwort zurücksetzen`,resettingPassword:`Passwort wird zurückgesetzt...`},deleteModal:{title:`Benutzer löschen`,message:`Sind Sie sicher, dass Sie diesen Benutzer löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.`,confirm:`Benutzer löschen`}},streamOverlay:{title:`Stream-Overlay`,invalidPrinterId:`Ungültige Drucker-ID`,cameraStream:`Kamera-Stream`,progress:`Fortschritt`,eta:`ETA`,printerIdle:`Drucker ist inaktiv`,printerOffline:`Drucker offline`,status:{printing:`Druckt`,paused:`Pausiert`,finished:`Fertig`,failed:`Fehlgeschlagen`,idle:`Inaktiv`,unknown:`Unbekannt`}},profiles:{title:`Profile`,subtitle:`Verwalten Sie Ihre Slicer-Voreinstellungen und Druckvorschub-Kalibrierungen`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`Lokale Profile`,kprofiles:`K-Profile`},orcaCloud:{connectedAs:`Verbunden als`,connectedShort:`Mit Orca Cloud verbunden`,logout:`Trennen`,noLogoutPermission:`Sie haben keine Berechtigung zum Trennen`,noConnectPermission:`Sie haben keine Berechtigung, sich mit Orca Cloud zu verbinden`,retry:`Erneut versuchen`,connectButton:`Orca Cloud verbinden`,connect:{title:`Mit Orca Cloud verbinden`,description:`Melden Sie sich bei Ihrem Orca Cloud-Konto an, um Ihre Slicer-Profile in Bambuddy zu synchronisieren.`},device:{title:`Bambuddy in Orca Cloud genehmigen`,instruction:`Öffnen Sie Orca Cloud und genehmigen Sie diesen Code. Bambuddy verbindet sich automatisch, sobald Sie genehmigt haben.`,codeLabel:`Ihr Kopplungscode`,openButton:`Orca Cloud-Genehmigungsseite öffnen`,manualHint:`Oder gehen Sie zu {{url}} und geben Sie den obigen Code ein.`,waiting:`Warte auf Ihre Genehmigung…`,cancel:`Abbrechen`},profiles:{title:`Ihre Orca Cloud-Profile ({{count}})`,refresh:`Aktualisieren`,empty:`Noch keine Profile in Ihrem Orca Cloud-Konto gefunden.`},toast:{disconnected:`Verbindung zu Orca Cloud getrennt`},errors:{startFailed:`Anmeldevorgang für Orca Cloud konnte nicht gestartet werden.`,denied:`Die Kopplung wurde in Orca Cloud abgelehnt.`,expired:`Der Kopplungscode ist abgelaufen. Klicken Sie auf Verbinden, um es erneut zu versuchen.`,pollFailed:`Die Verbindung ging beim Warten auf die Genehmigung verloren. Bitte versuchen Sie es erneut.`}},localProfiles:{title:`Lokale Profile`,subtitle:`Slicer-Voreinstellungen aus OrcaSlicer importieren und verwalten`,import:`Profile importieren`,importDesc:`.bbscfg-, .bbsflmt-, .orca_filament-, .zip- oder .json-Dateien hier ablegen`,importing:`Importiere...`,search:`Lokale Voreinstellungen durchsuchen...`,noPresets:`Noch keine lokalen Voreinstellungen`,noSearchResults:`Keine Voreinstellungen entsprechen deiner Suche`,badge:`Lokal`,edit:`Bearbeiten`,delete:`Löschen`,cancel:`Abbrechen`,deleteConfirmTitle:`Voreinstellung löschen`,deleteConfirm:`Möchten Sie diese Voreinstellung wirklich löschen? Dies kann nicht rückgängig gemacht werden.`,source:`Quelle`,inheritsFrom:`Erbt von`,filamentType:`Typ`,vendor:`Hersteller`,compatiblePrinters:`Drucker`,nozzleTemp:`Düsentemperatur`,cost:`Kosten`,density:`Dichte`,pressureAdvance:`Druckvorschub`,filament:`Filament`,process:`Prozess`,printer:`Drucker`,toast:{importSuccess:`{{count}} Voreinstellung(en) importiert`,importSkipped:`{{count}} Voreinstellung(en) übersprungen (Duplikate)`,importError:`{{count}} Fehler beim Import`,deleted:`Voreinstellung gelöscht`,updated:`Voreinstellung aktualisiert`}},connectedAs:`Verbunden als`,signInExpiredTitle:`Bambu-Cloud-Anmeldung abgelaufen`,signInExpiredBody:`Bambu Lab akzeptiert das gespeicherte Token nicht mehr. Melden Sie sich erneut an, um Cloud-Profile, MakerWorld-Importe und Firmware-Prüfungen wiederherzustellen.`,logout:`Abmelden`,noLogoutPermission:`Sie haben keine Berechtigung zum Abmelden`,failedToLoad:`Profile konnten nicht geladen werden`,retry:`Erneut versuchen`,time:{justNow:`Gerade eben`,minsAgo:`vor {{count}}m`,hoursAgo:`vor {{count}}h`,daysAgo:`vor {{count}}d`},toast:{loggedOut:`Abgemeldet`},login:{title:`Mit Bambu Cloud verbinden`,subtitle:`Synchronisieren Sie Ihre Slicer-Voreinstellungen geräteübergreifend`,email:`E-Mail`,password:`Passwort`,region:`Region`,regionGlobal:`Global`,regionChina:`China`,verificationCode:`Bestätigungscode`,totpCode:`Authenticator-Code`,checkEmail:`Prüfen Sie Ihre E-Mail ({{email}}) für einen 6-stelligen Code`,enterTotpHint:`Geben Sie den 6-stelligen Code aus Ihrer Authenticator-App ein`,accessToken:`Zugriffstoken`,accessTokenHint:`Fügen Sie Ihr Bambu-Cloud-Zugriffstoken ein. Konten der Region China müssen diesen Weg nutzen (telefonnummerngebunden — kein E-Mail-Login). Im Wiki steht, wie Sie das Token aus den MakerWorld-Cookies auslesen.`,back:`Zurück`,loginButton:`Anmelden`,verifyButton:`Bestätigen`,setTokenButton:`Token setzen`,useToken:`Stattdessen Zugriffstoken verwenden`,useEmail:`Stattdessen mit E-Mail anmelden`,toast:{loggedIn:`Erfolgreich angemeldet`,codeSent:`Bestätigungscode an Ihre E-Mail gesendet`,enterTotp:`Geben Sie den Code aus Ihrer Authenticator-App ein`,tokenSet:`Token erfolgreich gesetzt`}},presets:{myPreset:`Mein Profil (bearbeitbar)`,duplicate:`Duplizieren`,editable:`Bearbeitbar`,failedToLoadDetails:`Profil-Details konnten nicht geladen werden`,deleteConfirm:`Dieses Profil löschen?`,deleteWarning:`"{{name}}" wird dauerhaft aus Bambu Cloud gelöscht. Dies kann nicht rückgängig gemacht werden.`,noDuplicatePermission:`Sie haben keine Berechtigung zum Duplizieren von Profilen`,noEditPermission:`Sie haben keine Berechtigung zum Bearbeiten von Profilen`,noDeletePermission:`Sie haben keine Berechtigung zum Löschen von Profilen`,types:{filament:`Filament-Profil`,printer:`Drucker-Profil`,process:`Prozess-Profil`},toast:{deleted:`Profil gelöscht`,created:`Profil erstellt`,updated:`Profil aktualisiert`,duplicated:`Profil dupliziert`,fieldAdded:`Feld "{{key}}" hinzugefügt`,exported:`Profil exportiert`},baseLabel:`Basis: {{name}}`,currentLabel:`Aktuell: {{name}}`,newPreset:`Neues Profil`,editPreset:`Profil bearbeiten`,duplicatePreset:`Profil duplizieren`,createNewPreset:`Neues Profil erstellen`,customizeSettings:`Passen Sie die Einstellungen für Ihr neues Profil an`,compareWithBase:`Mit Basis-Profil vergleichen`,compare:`Vergleichen`,basePreset:`Basis-Profil`,selectBasePreset:`Basis-Profil auswählen...`,presetName:`Profilname`,myCustomPreset:`Mein eigenes Profil`,inheritsFrom:`Erbt von`,dropJsonToImport:`JSON zum Importieren ablegen`,tabs:{common:`Allgemein`,allFields:`Alle Felder`},availableFields:`Verfügbare Felder`,searchFieldsPlaceholder:`Felder suchen...`,noMatchingFields:`Keine passenden Felder`,allFieldsAdded:`Alle Felder hinzugefügt`,addCustomField:`Eigenes Feld hinzufügen`,yourOverrides:`Ihre Überschreibungen`,noOverridesYet:`Noch keine Überschreibungen`,clickFieldsToAdd:`Klicken Sie links auf Felder, um sie hinzuzufügen`,saveAsTemplate:`Als Vorlage speichern`,jsonTip:`Tipp: Ziehen Sie eine .json-Datei auf dieses Fenster, um Einstellungen zu importieren`},cloudView:{searchPlaceholder:`Profile suchen...`,templates:`Vorlagen`,refresh:`Aktualisieren`,newPreset:`Neues Profil`,clearFilters:`Filter zurücksetzen`,compareMode:`Vergleichsmodus`,selectAnotherPreset:`Wählen Sie ein weiteres {{type}}-Profil`,clickTwoPresets:`Klicken Sie auf zwei Profile des gleichen Typs zum Vergleichen`,selectFirst:`1. Erstes auswählen`,selectSecond:`2. Zweites auswählen`,compareNow:`Jetzt vergleichen`,lastSynced:`Zuletzt synchronisiert:`,showingCount:`{{showing}} von {{total}} Profilen`,noPresetsFound:`Keine Profile gefunden`,columns:{filament:`Filament`,process:`Prozess`,printer:`Drucker`},noFilamentPresets:`Keine Filament-Profile`,noProcessPresets:`Keine Prozess-Profile`,noPrinterPresets:`Keine Drucker-Profile`,filters:{type:`Typ`,owner:`Besitzer`,printer:`Drucker`,nozzle:`Düse`,filament:`Filament`,layer:`Schicht`,all:`Alle`,myPresets:`Meine Profile`,builtIn:`Voreingestellt`,process:`Prozess`},noTemplatesPermission:`Sie haben keine Berechtigung, Vorlagen zu verwalten`,noRefreshPermission:`Sie haben keine Berechtigung, Profile zu aktualisieren`,noCreatePermission:`Sie haben keine Berechtigung, Profile zu erstellen`},templates:{title:`Schnellvorlagen`,noTemplates:`Noch keine Vorlagen`,createFirst:`Erstellen Sie Vorlagen aus dem Preset-Editor`,typeFilter:`Typ:`,deleteTitle:`Vorlage löschen`,deleteWarning:`Diese Aktion kann nicht rückgängig gemacht werden`,deleteConfirm:`Möchten Sie "{{name}}" wirklich löschen?`,namePlaceholder:`Vorlagenname`,descriptionPlaceholder:`Beschreibung`,settingsJson:`Einstellungen (JSON)`,fieldsCount:`{{count}} Felder`,shownInModals:`In Dialogen angezeigt`,hiddenInModals:`In Dialogen ausgeblendet`,apply:`Anwenden`,toast:{deleted:`Vorlage gelöscht`,updated:`Vorlage aktualisiert`,created:`Vorlage erstellt`,applied:`Vorlage angewendet`}}},support:{debugLoggingActive:`Debug-Protokollierung ist aktiv`,manageLogs:`Verwalten`,collectItem7:`Drucker-Verbindungsstatus und Firmware-Versionen`,collectItem8:`Integrationsstatus (Spoolman, MQTT, HA)`,collectItem9:`Netzwerkschnittstellen (nur Subnetze)`,collectItem10:`Python-Paketversionen`,collectItem11:`Datenbankzustandsprüfungen`,collectItem12:`Docker-Umgebungsdetails`,bundleGenerating:`Bundle wird erstellt...`,bundleStepConnection:`Drucker-Verbindungsprüfungen werden ausgeführt`,bundleStepVirtualPrinters:`Setup-Prüfungen für virtuelle Drucker werden ausgeführt`,bundleStepLogScan:`Aktuelle Protokolle werden auf bekannte Probleme überprüft`,bundleStepBuild:`Support-Bundle-ZIP wird erstellt`},fileManager:{title:`Dateimanager`,subtitle:`Organisieren und verwalten Sie Ihre Druckdateien`,uploadFiles:`Dateien hochladen`,newFolder:`Neuer Ordner`,folderName:`Ordnername`,folderNamePlaceholder:`z.B. Funktionsteile`,renameFile:`Datei umbenennen`,renameFolder:`Ordner umbenennen`,invalidFilenameChar:`Das Zeichen "{{char}}" ist in Druck-Dateinamen nicht erlaubt. Die SD-Karte des Druckers lehnt folgende Zeichen ab: < > : " / \\ | ? *`,moveFiles:`{{count}} Datei(en) verschieben`,rootNoFolder:`Stammverzeichnis (Kein Ordner)`,current:`aktuell`,linkFolder:`Ordner verknüpfen`,linkFolderDescription:`"{{name}}" mit einem Projekt oder Archiv verknüpfen für schnellen Zugriff.`,project:`Projekt`,archive:`Archiv`,noProjectsFound:`Keine Projekte gefunden`,noArchivesFound:`Keine Archive gefunden`,unlink:`Verknüpfung aufheben`,link:`Verknüpfen`,dragDropFiles:`Dateien hierher ziehen`,dropFilesHere:`Dateien hier ablegen`,releaseToUpload:`Loslassen zum Hochladen`,orClickToBrowse:`oder klicken zum Durchsuchen`,allFileTypesSupported:`Alle Dateitypen werden unterstützt. ZIP-Dateien werden extrahiert.`,zipFilesDetected:`ZIP-Dateien erkannt`,zipExtractOptions:`ZIP-Dateien werden extrahiert. Wählen Sie, wie die Ordnerstruktur behandelt werden soll:`,preserveZipStructure:`Ordnerstruktur aus ZIP beibehalten`,createFolderFromZip:`Ordner aus ZIP-Dateiname erstellen`,stlThumbnailGeneration:`STL-Vorschaubildgenerierung`,zipMayContainStl:`ZIP-Dateien können STL-Dateien enthalten. Vorschaubilder können während der Extraktion generiert werden.`,thumbnailsCanBeGenerated:`Vorschaubilder können für STL-Dateien generiert werden. Große Modelle benötigen möglicherweise mehr Zeit.`,generateThumbnailsForStl:`Vorschaubilder für STL-Dateien generieren`,threemfDetected:`3MF-Dateien erkannt`,threemfExtractionInfo:`Druckermodell, Material, Farbe und Druckeinstellungen werden automatisch aus 3MF-Dateien extrahiert.`,willBeExtracted:`Wird extrahiert`,filesExtracted:`{{count}} Dateien extrahiert`,uploadComplete:`Upload abgeschlossen: {{succeeded}} erfolgreich`,uploadFailed:`Hochladen fehlgeschlagen`,zipFilesFailed:`{{count}} Dateien fehlgeschlagen`,uploading:`Hochladen...`,changeLink:`Verknüpfung ändern...`,linkTo:`Verknüpfen mit...`,linkToProjectOrArchive:`Mit Projekt oder Archiv verknüpfen`,generateThumbnail:`Vorschaubild generieren`,generateThumbnails:`Vorschaubilder generieren`,generateThumbnailsForMissing:`Vorschaubilder für STL-Dateien ohne Vorschau generieren`,gridView:`Rasteransicht`,listView:`Listenansicht`,lowDiskSpaceWarning:`Warnung: Wenig Speicherplatz`,lowDiskSpaceDetails:`Nur {{free}} frei von {{total}} gesamt. Schwellenwert ist auf {{threshold}} GB eingestellt.`,files:`Dateien`,folders:`Ordner`,size:`Größe`,free:`Frei`,allFiles:`Alle Dateien`,allExternal:`Extern`,externalIsEmpty:`Keine externen Dateien`,externalEmptyDescription:`Dateien aus deinen verknüpften externen Ordnern erscheinen hier.`,wrap:`Umbrechen`,enableTextWrapping:`Textumbruch aktivieren`,disableTextWrapping:`Textumbruch deaktivieren`,collapse:`Einklappen`,collapseFoldersByDefault:`Ordner standardmäßig einklappen`,expandFoldersByDefault:`Ordner standardmäßig ausklappen`,folderSort:`Ordner sortieren`,folderSortByName:`Nach Name`,folderSortByActivity:`Nach letzter Aktivität`,dragToResizeTooltip:`Ziehen zum Ändern der Größe, Doppelklick zum Zurücksetzen`,searchFiles:`Dateien suchen...`,searchSubfoldersHint:`Inklusive Unterordner`,readme:{truncated:`Gekürzt`,show:`README anzeigen`,hide:`README ausblenden`,label:`README`},tags:{title:`Tags`,subtitle:`Dateien mit Labels versehen — Spielzeug, kindersicher, nur PETG, was immer du willst.`,manage:`Tags`,manageTitle:`Tag-Katalog verwalten`,add:`Neuer Tag`,edit:`Tag umbenennen`,name:`Name`,fileCount:`Dateien`,empty:`Noch keine Tags. Erstelle einen, um Dateien zu kennzeichnen.`,noMatches:`Keine passenden Tags.`,createPlaceholder:`z. B. Spielzeug, kindersicher, petg`,createButton:`Erstellen`,nameRequired:`Name ist erforderlich.`,searchPlaceholder:`Tags filtern...`,created:`Tag erstellt.`,updated:`Tag umbenannt.`,deleted:`Tag entfernt.`,saveFailed:`Tag konnte nicht gespeichert werden.`,deleteFailed:`Tag konnte nicht entfernt werden.`,applyFailed:`Tags konnten nicht angewendet werden.`,applyAdd:`Tags hinzufügen`,applyRemove:`Tags entfernen`,applyAddSuccess:`{{count}} Tag(s) zu {{files}} Datei(en) hinzugefügt.`,applyRemoveSuccess:`{{count}} Tag(s) von {{files}} Datei(en) entfernt.`,actionAdd:`Zu ausgewählten Dateien hinzufügen`,actionRemove:`Von ausgewählten Dateien entfernen`,tagAction:`Tag`,bulkTitle:`{{count}} ausgewählte Datei(en) taggen`,bulkTooltip:`Tags für alle ausgewählten Dateien hinzufügen oder entfernen.`,noPermission:`Du hast keine Berechtigung, Dateien zu taggen.`,filterLabel:`Filtern nach:`,clearAll:`Alle entfernen`,confirmDelete:`Tag "{{name}}" löschen?`,confirmDeleteMessage:`Entfernt den Tag aus dem Katalog. Dateien behalten ihre übrigen Tags.`,confirmDeleteInUseMessage:`Dieser Tag ist auf {{count}} Datei(en). Beim Löschen verschwindet er von allen; die Dateien selbst bleiben unverändert.`,editAria:`{{name}} bearbeiten`,deleteAria:`{{name}} löschen`},allTypes:`Alle Typen`,prints:`Drucke`,ascending:`Aufsteigend`,descending:`Absteigend`,showModified:`Änderungsdatum anzeigen`,hideModified:`Änderungsdatum ausblenden`,lastModified:`Zuletzt geändert`,lastActivity:`Letzte Aktivität`,resultsCount:`{{showing}} von {{total}} Dateien`,selectAll:`Alle auswählen`,deselectAll:`Auswahl aufheben`,selected:`{{count}} ausgewählt`,adding:`Hinzufügen...`,loadingFiles:`Dateien werden geladen...`,folderIsEmpty:`Ordner ist leer`,noFilesYet:`Noch keine Dateien`,folderEmptyDescription:`Laden Sie Dateien hoch oder verschieben Sie Dateien in diesen Ordner.`,noFilesDescription:`Laden Sie Dateien hoch, um Ihre Druckdateien zu organisieren.`,noMatchingFiles:`Keine passenden Dateien`,noMatchingFilesDescription:`Keine Dateien entsprechen Ihren aktuellen Such- oder Filterkriterien.`,clearFilters:`Filter zurücksetzen`,printedCount:`{{count}}x gedruckt`,uploadedBy:`Hochgeladen von`,deleteFolder:`Ordner löschen`,deleteFile:`Datei löschen`,deleteFilesCount:`{{count}} Dateien löschen`,deleteFolderConfirm:`Möchten Sie diesen Ordner wirklich löschen? Alle Dateien darin werden ebenfalls gelöscht.`,deleteFileConfirm:`Möchten Sie diese Datei wirklich löschen?`,deleteFilesConfirm:`Möchten Sie {{count}} ausgewählte Dateien wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden.`,deleting:`Wird gelöscht...`,noPermissionRenameFolder:`Sie haben keine Berechtigung, Ordner umzubenennen`,noPermissionLinkFolder:`Sie haben keine Berechtigung, Ordner zu verknüpfen`,noPermissionDeleteFolder:`Sie haben keine Berechtigung, Ordner zu löschen`,onlyEmptyFoldersDeletable:`Sie können nur leere Ordner löschen`,noPermissionPrint:`Sie haben keine Berechtigung zum Drucken`,noPermissionSlice:`Sie haben keine Berechtigung, Dateien zu slicen`,noPermissionAddToQueue:`Sie haben keine Berechtigung, zur Warteschlange hinzuzufügen`,noPermissionDownload:`Sie haben keine Berechtigung, Dateien herunterzuladen`,noPermissionRenameFile:`Sie haben keine Berechtigung, diese Datei umzubenennen`,noPermissionGenerateThumbnail:`Sie haben keine Berechtigung, Vorschaubilder zu generieren`,noPermissionDeleteFile:`Sie haben keine Berechtigung, diese Datei zu löschen`,noPermissionCreateFolder:`Sie haben keine Berechtigung, Ordner zu erstellen`,noPermissionUpload:`Sie haben keine Berechtigung, Dateien hochzuladen`,noPermissionMoveFiles:`Sie haben keine Berechtigung, Dateien zu verschieben`,noPermissionDeleteFiles:`Sie haben keine Berechtigung, Dateien zu löschen`,linkExternal:`Extern verknüpfen`,linkExternalFolder:`Externen Ordner verknüpfen`,linkExternalFolderDescription:`Ein Host-Verzeichnis (NAS, USB, Netzlaufwerk) in den Dateimanager einbinden. Dateien werden nicht kopiert — sie werden direkt vom Originalpfad gelesen.`,externalFolderNamePlaceholder:`z.B. NAS-Drucke`,externalPath:`Host-Pfad`,externalPathHelp:`Absoluter Pfad zum Verzeichnis auf dem Docker-Host. Muss als Bind-Mount in den Container eingebunden sein.`,readOnly:`Nur Lesen`,readOnlyHelp:`verhindert Uploads und Löschungen`,showHiddenFiles:`Versteckte Dateien anzeigen (Punkt-Dateien)`,externalFolder:`Externer Ordner`,scanFolder:`Scannen`,toast:{folderCreated:`Ordner erstellt`,folderDeleted:`Ordner gelöscht`,fileDeleted:`Datei gelöscht`,filesDeleted:`{{count}} Dateien gelöscht`,filesMoved:`Dateien verschoben`,folderLinked:`Ordner verknüpft`,folderUnlinked:`Ordnerverknüpfung aufgehoben`,externalFolderLinked:`Externer Ordner verknüpft und gescannt`,folderScanned:`Scan abgeschlossen: {{added}} hinzugefügt, {{removed}} entfernt`,addedToQueue:`{{count}} Datei(en) zur Warteschlange hinzugefügt`,addedToQueuePartial:`{{added}} Datei(en) hinzugefügt, {{failed}} fehlgeschlagen`,failedToAddToQueue:`Fehler beim Hinzufügen: {{error}}`,fileRenamed:`Datei umbenannt`,folderRenamed:`Ordner umbenannt`,thumbnailsGenerated:`{{count}} Vorschaubild(er) generiert`,thumbnailsGeneratedPartial:`{{succeeded}} Vorschaubild(er) generiert, {{failed}} fehlgeschlagen`,noStlMissingThumbnails:`Keine STL-Dateien ohne Vorschaubild`,failedToGenerateThumbnails:`Fehler beim Generieren der Vorschaubilder: {{error}}`,thumbnailGenerated:`Vorschaubild generiert`,failedToGenerateThumbnail:`Fehler beim Generieren des Vorschaubildes: {{error}}`}},projects:{title:`Projekte`,subtitle:`Organisieren und verfolgen Sie Ihre 3D-Druckprojekte`,newProject:`Neues Projekt`,editProject:`Projekt bearbeiten`,deleteProject:`Projekt löschen`,projectName:`Projektname`,description:`Beschreibung`,noProjects:`Noch keine Projekte`,noProjectsFiltered:`Keine {{status}} Projekte`,noProjectsFilteredHelp:`Sie haben keine {{status}} Projekte. Projekte werden hier angezeigt, wenn sich ihr Status ändert.`,createFirst:`Erstellen Sie Ihr erstes Projekt, um verwandte Drucke zu organisieren, den Fortschritt zu verfolgen und Ihre Builds zu verwalten.`,createFirstButton:`Erstes Projekt erstellen`,create:`Erstellen`,files:`Dateien`,prints:`Drucke`,plates:`Platten`,parts:`Teile`,lastModified:`Zuletzt geändert`,deleteConfirm:`Möchten Sie dieses Projekt wirklich löschen? Archive und Warteschlangenelemente werden getrennt, aber nicht gelöscht.`,addFiles:`Dateien hinzufügen`,removeFile:`Datei entfernen`,viewDetails:`Details anzeigen`,namePlaceholder:`z.B. Voron 2.4 Build`,descriptionPlaceholder:`Optionale Beschreibung...`,urlLabel:`URL`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`URL muss mit http:// oder https:// beginnen`,openExternalUrl:`Projekt-URL öffnen`,coverImageLabel:`Titelbild`,coverImageAlt:`Projekt-Titelbild`,coverImageUpload:`Hochladen`,coverImageReplace:`Ersetzen`,coverImageRemove:`Entfernen`,color:`Farbe`,targetPlates:`Ziel-Platten`,targetPlatesPlaceholder:`z.B. 25`,targetPlatesHelp:`Anzahl der Druckaufträge`,targetParts:`Ziel-Teile`,targetPartsPlaceholder:`z.B. 150`,targetPartsHelp:`Benötigte Objekte insgesamt`,targetSets:`Kopien pro Datei`,targetSetsPlaceholder:`z. B. 10`,targetSetsHelp:`Wie oft jede druckbare Datei gedruckt werden soll`,tagsLabel:`Tags (kommagetrennt)`,tagsPlaceholder:`z.B. voron, funktional, geschenk`,dueDate:`Fälligkeitsdatum`,priority:`Priorität`,priorityLow:`Niedrig`,priorityNormal:`Normal`,priorityHigh:`Hoch`,priorityUrgent:`Dringend`,statusActive:`Aktiv`,statusCompleted:`Abgeschlossen`,statusArchived:`Archiviert`,done:`Fertig`,completed:`abgeschlossen`,failed:`fehlgeschlagen`,inQueue:`in Warteschlange`,noPrintsYet:`Noch keine Drucke`,printJobs:`Druckaufträge (Platten)`,partsPrinted:`Gedruckte Teile`,failedParts:`Fehlgeschlagene Teile`,import:`Importieren`,export:`Exportieren`,importProject:`Projekt importieren`,exportAll:`Alle Projekte exportieren`,loading:`Projekte werden geladen...`,noEditPermission:`Sie haben keine Berechtigung, Projekte zu bearbeiten`,noDeletePermission:`Sie haben keine Berechtigung, Projekte zu löschen`,noCreatePermission:`Sie haben keine Berechtigung, Projekte zu erstellen`,noImportPermission:`Sie haben keine Berechtigung, Projekte zu importieren`,noExportPermission:`Sie haben keine Berechtigung, Projekte zu exportieren`,toast:{created:`Projekt erstellt`,updated:`Projekt aktualisiert`,deleted:`Projekt gelöscht`,imported:`Projekt importiert`,multipleImported:`{{count}} Projekte importiert`,importFailed:`Import fehlgeschlagen`,exported:`Projekte exportiert (nur Metadaten)`}},projectDetail:{notFound:`Projekt nicht gefunden`,backToProjects:`Zurück zu Projekten`,export:`Exportieren`,exportProject:`Projekt exportieren`,noExportPermission:`Sie haben keine Berechtigung, Projekte zu exportieren`,noEditPermission:`Sie haben keine Berechtigung, Projekte zu bearbeiten`,partOf:`Teil von:`,priorityLabel:`Priorität:`,noPrints:`Noch keine Drucke in diesem Projekt`,status:{active:`Aktiv`,completed:`Abgeschlossen`,archived:`Archiviert`},priority:{low:`Niedrig`,normal:`Normal`,high:`Hoch`,urgent:`Dringend`},dueDate:{overdue:`Überfällig`,today:`Heute fällig`,daysLeft:`{{count}} Tage übrig`},progress:{platesProgress:`Platten-Fortschritt`,partsProgress:`Teile-Fortschritt`,setsProgress:`Vollständige Sätze`,sets:`Sätze`,setsHint:`Ein Satz ist vollständig, wenn jede druckbare Datei diese Anzahl erreicht hat`,printJobs:`Druckaufträge`,parts:`Teile`,percentComplete:`{{percent}}% abgeschlossen`,remaining:`{{count}} verbleibend`},stats:{printJobs:`Druckaufträge`,total:`gesamt`,failed:`{{count}} fehlgeschlagen`,partsPrinted:`{{count}} Teile gedruckt`,printTime:`Druckzeit`,filamentUsed:`Filament verbraucht`},cost:{title:`Kostenverfolgung`,filamentCost:`Filamentkosten`,energy:`Energie`,totalCost:`Gesamtkosten`,total:`Gesamt`,includesBom:`inkl. Stückliste`,budget:`Budget`,remaining:`Verbleibend`},subProjects:{title:`Unterprojekte ({{count}})`},notes:{title:`Notizen`,noEditPermission:`Sie haben keine Berechtigung, Notizen zu bearbeiten`,placeholder:`Notizen zu diesem Projekt hinzufügen...`,empty:`Noch keine Notizen. Klicken Sie auf Bearbeiten, um Notizen hinzuzufügen.`},files:{title:`Dateien`,linkFolders:`Ordner aus dem Dateimanager verknüpfen`,forQuickAccess:`für schnellen Zugriff auf dieses Projekt.`,fileCount:`{{count}} Datei(en)`,empty:`Keine Ordner verknüpft. Gehen Sie zum Dateimanager und verknüpfen Sie einen Ordner mit diesem Projekt.`,printedCount:`{{count}}-mal gedruckt`,progressTooltip:`{{done}} von {{target}} abgeschlossenen Drucken`,noFiles:`Keine Dateien in diesem Ordner.`},bom:{title:`Stückliste`,acquired:`{{completed}}/{{total}} beschafft`,showAll:`Alle anzeigen`,hideDone:`Erledigte ausblenden`,addPart:`Teil hinzufügen`,noAddPermission:`Sie haben keine Berechtigung, Teile hinzuzufügen`,partNamePlaceholder:`Teilename (z.B. M3x8 Schrauben)`,partName:`Teilename`,qty:`Menge`,price:`Preis ({{currency}})`,sourcingUrlPlaceholder:`Bezugsquelle-URL (optional)`,remarksPlaceholder:`Bemerkungen (optional)`,deletePart:`Teil löschen`,deleteConfirm:`Möchten Sie "{{name}}" wirklich löschen?`,noUpdatePermission:`Sie haben keine Berechtigung, Teile zu aktualisieren`,noEditPermission:`Sie haben keine Berechtigung, Teile zu bearbeiten`,noDeletePermission:`Sie haben keine Berechtigung, Teile zu löschen`,totalCost:`Gesamtkosten:`,empty:`Keine Teile in der Stückliste. Fügen Sie Hardware, Elektronik oder andere Komponenten hinzu, um zu verfolgen, was beschafft werden muss.`},timeline:{title:`Aktivitätsverlauf`,empty:`Noch keine Aktivität.`},template:{saveAsTemplate:`Als Vorlage speichern`,noCreatePermission:`Sie haben keine Berechtigung, Vorlagen zu erstellen`},queue:{title:`Warteschlange`,viewAll:`Alle anzeigen`,printing:`{{count}} druckend`,queued:`{{count}} in Warteschlange`},prints:{title:`Drucke ({{count}})`},toast:{projectUpdated:`Projekt aktualisiert`,partAdded:`Teil hinzugefügt`,partRemoved:`Teil entfernt`,exportFailed:`Export fehlgeschlagen`,projectExported:`Projekt exportiert`,templateCreated:`Vorlage erstellt`}},system:{title:`Systeminformationen`,version:`Version`,uptime:`Laufzeit`,cpuUsage:`CPU-Auslastung`,memoryUsage:`Speicherauslastung`,diskUsage:`Festplattenauslastung`,networkInfo:`Netzwerkinformationen`,logs:`Protokolle`,debugMode:`Debug-Modus`,enableDebug:`Debug-Protokollierung aktivieren`,disableDebug:`Debug-Protokollierung deaktivieren`,downloadLogs:`Protokolle herunterladen`,clearLogs:`Protokolle löschen`,dockerInfo:`Docker-Info`,containerName:`Container-Name`,imageName:`Image-Name`,platform:`Plattform`,architecture:`Architektur`},sponsors:{sectionTitle:`Unabhängig & von der Community finanziert`,tagline:`Bambuddy ist kostenlos und bleibt es, weil Menschen es freiwillig unterstützen. Kein VC, kein Cloud-Zwang.`,viewSupporters:`Unterstützer ansehen`,toastPrints:`Du hast {{count}} Drucke mit Bambuddy abgeschlossen. Bambuddy bleibt kostenlos dank seiner Unterstützer.`,toastCost:`Du hast {{total}} an Filament mit Bambuddy verfolgt. Sieh dir an, wer das Projekt unabhängig hält.`,toastArchives:`{{count}} Drucke mit Bambuddy archiviert. Sieh dir an, wer es unabhängig hält.`,toastAnniversary:`Ein Jahr mit Bambuddy! Sieh dir an, wer das Projekt unabhängig hält.`,toastVersionUpdate:`Aktualisiert auf v{{version}}. Bambuddy bleibt kostenlos dank seiner Unterstützer.`,toastBusiness:`Sie betreiben Bambuddy auf {{count}} Druckern. Für Teams gibt es Support-Pakete – bevorzugte Fehlerbehebung, Rechnungsstellung und einen direkten Draht zum Maintainer.`,businessCta:`Bambuddy für Unternehmen`,businessTitle:`Bambuddy für Unternehmen`,businessTagline:`Sie betreiben {{count}} Drucker. Für Teams und Druckfarmen gibt es priorisierten Support, kommerzielle Lizenzen und Rechnungsstellung.`},library:{title:`Filament-Bibliothek`,addFilament:`Filament hinzufügen`,editFilament:`Filament bearbeiten`,deleteFilament:`Filament löschen`,vendor:`Hersteller`,material:`Material`,color:`Farbe`,kFactor:`K-Faktor`,temperature:`Temperatur`,noFilaments:`Keine Filamente in der Bibliothek`,deleteConfirm:`Möchten Sie dieses Filament wirklich löschen?`,importFromPrinter:`Vom Drucker importieren`,exportToFile:`In Datei exportieren`,runWithPipeline:{actionLabel:`Mit Pipeline ausführen`,noPermission:`Du hast keine Berechtigung, Pipelines auszuführen`,modalTitle:`Mit Pipeline ausführen`,confirmTitle:`Lauf bestätigen`,confirmIntro:`Pre-Flight hat Probleme mit diesem Lauf gefunden`,sourceHint:`Quelle`,pipelineHint:`Pipeline`,targetHint:`Ziel`,pipelineListAria:`Verfügbare Pipelines`,runAnyway:`Trotzdem ausführen`,loading:`Wird geladen…`,empty:`Noch keine Pipelines gespeichert. Öffne den Slice-Dialog und klicke „Als Pipeline speichern“, um eine zu erstellen.`,noTarget:`Kein Zieldrucker festgelegt`,noTargetMessage:`Diese Pipeline hat keinen Zieldrucker. Öffne sie in den Einstellungen, um einen festzulegen.`,copies:`Kopien`,copiesHint:`max. {{n}}`,classTarget:`Beliebiger {{model}}`,toast:{started:`Pipeline-Lauf gestartet`,failed:`Lauf konnte nicht gestartet werden`},issue:{printerNotSet:`Kein Zieldrucker für diese Pipeline festgelegt.`,printerNotFound:`Zieldrucker existiert nicht mehr.`,printerDisabled:`Zieldrucker ist deaktiviert.`,printerOffline:`Zieldrucker ist offline.`,filamentType:`Filament-Slot {{slot}}: erwartet {{expected}}, AMS hat {{actual}}`,filamentColor:`Filament-Slot {{slot}}: Farbe weicht ab (erwartet {{expected}}, AMS hat {{actual}})`,amsSlotMissing:`AMS-Slot {{slot}} ist auf diesem Drucker nicht verfügbar`,filamentUnverified:`Filament-Slot {{slot}} stammt aus einem Cloud-/Standard-Preset und konnte nicht statisch verifiziert werden.`,noClassMatches:`Keine Drucker in dieser Installation entsprechen der Zielmodellklasse der Pipeline ({{expected}}).`,classNotSet:`Pipeline-Ziel ist auf eine Druckerklasse gesetzt, aber kein Modell wurde gewählt.`}}},slice:{title:`Modell slicen`,action:`Slicen`,actionAll:`Alle {{count}} Plates slicen`,actionAllTitle:`Alle Plates in eine einzelne Multi-Plate-Ausgabe slicen (ein Archiv). Die Filamentauswahl gilt für jeden Slot des Projekts.`,allPlatesToggle:`Alle {{count}} Plates slicen`,slicing:`Slicen…`,printer:`Drucker-Profil`,process:`Prozess-Profil`,filament:`Filament-Profil`,filamentSlot:`Filament {{index}} – {{type}}`,selectPreset:`— Profil auswählen —`,loadingPresets:`Profile werden geladen…`,analyzingPlateFilaments:`Plattenfilamente werden analysiert…`,analyzingPlateFilamentsHint:`Es wird ein Probeschnitt ausgeführt, um die belegten AMS-Slots dieser Platte zu ermitteln. Wird zwischengespeichert — erneutes Öffnen ist sofort.`,previewToast:`{{name}} wird analysiert — {{elapsed}}`,previewWithProgress:`{{name}} wird analysiert — {{stage}} ({{percent}}%) — {{elapsed}}`,notUsedByPlate:`— wird von dieser Platte nicht verwendet`,noPresetsForSlot:`Keine Profile verfügbar`,otherPrinters:`Andere Drucker`,presetsLoadFailed:`Profile konnten nicht geladen werden. Importiere sie zuerst unter Einstellungen → Profile.`,refreshPresets:`Aktualisieren`,refreshPresetsTitle:`Profile neu laden — die aktuellen Cloud- und Bundle-Listen abrufen (nach dem Löschen eines Profils in Bambu Studio oder Bambu Handy verwenden)`,allPresetsRequired:`Alle Profile müssen ausgewählt sein`,useEmbedded:`Eingebettete Einstellungen der Datei verwenden`,useEmbeddedHint:`So slicen, wie der Ersteller es angelegt hat (Wände, Füllung, Filament), statt mit den obigen Profilen. Verfügbar, weil dein Drucker zur Datei passt.`,designSettings:`Einstellungen des Erstellers behalten`,designSettingsHint:`Diese Datei ändert {{count}} Druckeinstellung(en) gegenüber dem Standardprofil.`,designSettingsSelected:`{{selected}} von {{total}} ausgewählt`,designSettingsPrinterCoupled:`druckerspezifisch`,designSettingsPrinterCoupledHint:`Auf den Drucker abgestimmt, für den die Datei erstellt wurde — auf deinem kann der Wert falsch oder unzulässig sein.`,enqueuing:`Slice-Auftrag wird übermittelt…`,queued:`In Warteschlange…`,failed:`Slicen fehlgeschlagen. Logs des Slicer-Sidecars prüfen.`,startedToast:`{{name}} wird im Hintergrund gesliced…`,queuedToast:`Warteschlange: {{name}} — {{elapsed}}`,runningToast:`{{name}} wird gesliced — {{elapsed}}`,runningWithProgress:`{{name}} – {{stage}} ({{percent}} %) – {{elapsed}}`,runningWithProgressMultiPlate:`Plate {{plateIndex}} von {{plateCount}} • {{name}} – {{stage}} ({{percent}} %) – {{elapsed}}`,completedToast:`{{name}} wurde gesliced`,failedTitle:`Slicen fehlgeschlagen`,failedToast:`Slicen von {{name}} fehlgeschlagen: {{detail}}`,tier:{local:`Importiert`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`Standard`},cloud:{notAuthenticated:`In Bambu Cloud anmelden (Einstellungen → Profile → Bambu Cloud), um deine Cloud-Profile zu sehen.`,expired:`Bambu-Cloud-Sitzung abgelaufen — erneut anmelden, um die Cloud-Profile zu aktualisieren.`,unreachable:`Bambu Cloud ist gerade nicht erreichbar. Lokale und Standard-Profile funktionieren weiterhin.`},orcaCloud:{notAuthenticated:`Bei Orca Cloud anmelden (Profile → Orca Cloud), um Ihre Orca-Profile zu sehen.`,expired:`Orca Cloud-Sitzung abgelaufen — erneut anmelden, um die Orca-Profile zu aktualisieren.`,unreachable:`Orca Cloud ist derzeit nicht erreichbar. Andere Profile funktionieren weiterhin.`},bedType:{label:`Druckbett`,auto:`Auto (aus Prozess-Profil)`,coolPlate:`Cool Plate`,coolPlateSuperTack:`Cool Plate SuperTack`,engineering:`Engineering Plate`,highTemp:`High Temp Plate`,texturedPEI:`Textured PEI Plate`,smoothPEI:`Smooth PEI Plate`},pipelines:{label:`Pipeline`,applyAria:`Pipeline anwenden`,applyPrompt:`Pipeline anwenden…`,empty:`Keine gespeicherten Pipelines`,saveButton:`Als Pipeline speichern`,saveTitle:`Aktuelle Auswahl aller vier Slots als wiederverwendbare Pipeline speichern`,namePlaceholder:`Pipeline-Name`,nameAria:`Neuer Pipeline-Name`,toast:{applied:`„{{name}}“ angewendet`,saved:`Pipeline gespeichert`,saveFailed:`Speichern fehlgeschlagen`}}},spoolman:{title:`Spoolman-Integration`,enabled:`Spoolman aktiviert`,url:`Spoolman URL`,connected:`Verbunden`,disconnected:`Nicht verbunden`,testConnection:`Verbindung testen`,sync:`Synchronisieren`,syncing:`Synchronisiert...`,lastSync:`Letzte Synchronisierung`,linkToSpoolman:`Mit Spoolman verknüpfen`,openInSpoolman:`In Spoolman öffnen`,unlinkSpool:`Spule trennen`,unlinkConfirmTitle:`Spule entfernen?`,unlinkConfirmMessage:`Die Spule wird vom Slot entfernt. Die Spulendaten selbst bleiben unverändert.`,selectSpool:`Spule auswählen`,noUnlinkedSpools:`Keine nicht zugewiesenen Spulen verfügbar`,linkSuccess:`Spule erfolgreich zugewiesen`,linkFailed:`Spule konnte nicht zugewiesen werden`,unlinkSuccess:`Spule erfolgreich entfernt`,unlinkFailed:`Spule konnte nicht entfernt werden`,linkedSpool:`Zugewiesene Spule`,spoolId:`Spulen-ID`,fillSourceLabel:`(Spoolman)`,weight:`Gewicht`,remaining:`Verbleibend`,disableWeightSync:`AMS-Gewichtsschätzung deaktivieren`,disableWeightSyncDesc:`Verbleibende Kapazität nicht aus AMS-Schätzungen aktualisieren. Verwenden Sie dies, wenn Sie die Verbrauchserfassung von Spoolman gegenüber den prozentualen AMS-Schätzungen bevorzugen. Neue Spulen verwenden weiterhin die AMS-Schätzung als Anfangsgewicht.`,reportPartialUsage:`Teilverbrauch bei fehlgeschlagenen Drucken melden`,reportPartialUsageDesc:`Wenn ein Druck fehlschlägt oder abgebrochen wird, den geschätzten Filamentverbrauch bis zu diesem Zeitpunkt basierend auf dem Schichtfortschritt melden.`},locations:{title:`Lagerorte`,subtitle:`Regale, Schubladen und andere physische Lagerplätze für Spulen verwalten`,add:`Lagerort hinzufügen`,addShort:`Hinzufügen`,edit:`Lagerort bearbeiten`,name:`Name`,spools:`Spulen`,empty:`Noch keine Lagerorte. Erstellen Sie Ihr erstes Regal oder Ihre erste Schublade.`,manage:`Lagerorte`,createPlaceholder:`z. B. Regal A, Schublade 1`,nameRequired:`Name des Lagerorts ist erforderlich`,created:`Lagerort erstellt`,updated:`Lagerort aktualisiert`,deleted:`Lagerort gelöscht`,saveFailed:`Lagerort konnte nicht gespeichert werden`,deleteFailed:`Lagerort konnte nicht gelöscht werden`,deleteBlocked:`Entfernen Sie zuerst alle Spulen von diesem Lagerort`,confirmDelete:`„{{name}}“ löschen?`,confirmDeleteMessage:`Dieser Lagerort wird aus dem Katalog entfernt. Spulen müssen zuerst verschoben werden.`},inventory:{title:`Spulen-Inventar`,subtitle:`Verwalten Sie Ihre Spulen`,addToInventory:`Zum Inventar hinzufügen`,addToInventoryPending:`Wird hinzugefügt...`,addToInventorySuccess:`Spule zum Inventar hinzugefügt`,addToInventoryFailed:`Spule konnte nicht zum Inventar hinzugefügt werden`,unknownSpoolTitle:`Neues Filament erkannt`,unknownSpoolMessage:`An {{location}} wurde eine Spule mit unbekanntem RFID-Tag erkannt. Jetzt zum Inventar hinzufügen?`,unknownSpoolSlot:`Slot`,bulk:{selectAllVisible:`Alle sichtbaren auswählen`,selectRow:`Zeile auswählen`,selectGroup:`Gruppe auswählen`,selectionCount:`{{count}} ausgewählt`,edit:`Bearbeiten`,printLabels:`Etiketten drucken`,resetUsage:`Verbrauch zurücksetzen`,restore:`Wiederherstellen`,archive:`Archivieren`,delete:`Löschen`,clearSelection:`Auswahl aufheben`,editTitle:`Spulen sammelbearbeiten`,editSubtitle:`Wird auf {{count}} ausgewählte Spulen angewendet. Nur angekreuzte Felder werden aktualisiert.`,editHint:`In ein Feld tippen markiert es für die Aktualisierung — nur angekreuzte Zeilen werden gesendet. Leere Felder bleiben unverändert (Felder leeren geht nur pro Spule).`,useCustom:`„{{value}}" verwenden`,toggleField:`Aktualisierung für dieses Feld umschalten`,changeCount:`{{count}} Felder werden aktualisiert.`,applyPending:`Wird angewendet...`,applyButton:`Auf {{count}} Spulen anwenden`,deleteTitle:`Ausgewählte Spulen löschen`,archiveTitle:`Ausgewählte Spulen archivieren`,restoreTitle:`Ausgewählte Spulen wiederherstellen`,resetUsageTitle:`Verbrauch ausgewählter Spulen zurücksetzen`,deleteMessage:`{{count}} Spulen dauerhaft löschen? Dies kann nicht rückgängig gemacht werden.`,archiveMessage:`{{count}} Spulen archivieren? Sie können später wiederhergestellt werden.`,restoreMessage:`{{count}} archivierte Spulen wiederherstellen?`,resetUsageMessage:`Den "Gesamtverbrauch"-Zähler auf {{count}} Spulen zurücksetzen? Die verbleibende Menge bleibt erhalten.`,updateSuccess:`{{count}} Spulen aktualisiert`,updateFailed:`Sammelaktualisierung fehlgeschlagen`,updatePartial:`{{ok}} Spulen aktualisiert, {{failed}} fehlgeschlagen`,updateAllFailed:`Alle {{count}} Aktualisierungen fehlgeschlagen — Auswahl bleibt erhalten zum erneuten Versuch`,deleteSuccess:`{{count}} Spulen gelöscht`,deleteFailed:`Sammellöschung fehlgeschlagen`,deletePartial:`{{ok}} Spulen gelöscht, {{failed}} fehlgeschlagen`,deleteAllFailed:`Alle {{count}} Löschungen fehlgeschlagen — Auswahl bleibt erhalten zum erneuten Versuch`,archiveSuccess:`{{count}} Spulen archiviert`,archiveFailed:`Sammelarchivierung fehlgeschlagen`,archivePartial:`{{ok}} Spulen archiviert, {{failed}} fehlgeschlagen`,archiveAllFailed:`Alle {{count}} Archivierungen fehlgeschlagen — Auswahl bleibt erhalten zum erneuten Versuch`,restoreSuccess:`{{count}} Spulen wiederhergestellt`,restoreFailed:`Sammelwiederherstellung fehlgeschlagen`,restorePartial:`{{ok}} Spulen wiederhergestellt, {{failed}} fehlgeschlagen`,restoreAllFailed:`Alle {{count}} Wiederherstellungen fehlgeschlagen — Auswahl bleibt erhalten zum erneuten Versuch`,invalidHex:`6 Hex-Zeichen (RRGGBB) oder 8 (RRGGBBAA) eingeben. Anderenfalls wird das Feld nicht übernommen.`},spoolmanMixedContentTitle:`Spoolman lässt sich nicht über HTTPS laden — Browser blockiert gemischte Inhalte`,spoolmanMixedContentBody:`Bambuddy wird über HTTPS ausgeliefert (über deinen Reverse-Proxy), aber deine Spoolman-URL ist nach wie vor HTTP. Browser blockieren gemischte Inhalte aus Sicherheitsgründen, daher kann die eingebettete Spoolman-Oberfläche nicht geladen werden. Spoolman muss ebenfalls über HTTPS erreichbar sein.`,spoolmanMixedContentFixReverseProxy:`Stelle Spoolman hinter denselben Reverse-Proxy wie Bambuddy (Traefik / Nginx / Caddy) mit HTTPS und aktualisiere die Spoolman-URL in den Einstellungen auf die neue HTTPS-Adresse.`,spoolmanMixedContentFixOpenNewTab:`Als Workaround kannst du Spoolman in einem neuen Tab über HTTP öffnen — gemischte Inhalte werden nur innerhalb eingebetteter Frames blockiert, ein eigener Tab funktioniert weiterhin.`,spoolmanOpenInNewTab:`Spoolman in neuem Tab öffnen`,labels:{title:`Spulen-Etiketten drucken`,selectedCount:`{{count}} ausgewählt`,pickSpools:`Wählen Sie, für welche Spulen Etiketten gedruckt werden sollen:`,monochrome:`Monochrom (Schwarz-Weiß-Drucker)`,monochromeHint:`Entfernt das Farbfeld und verbreitert den Text`,searchPlaceholder:`Name, Marke oder #ID suchen`,filterByMaterial:`Material:`,allMaterials:`Alle`,selectVisible:`Alle sichtbaren auswählen ({{count}})`,deselectVisible:`Sichtbare abwählen`,clearAll:`Alle entfernen`,noSpoolsToShow:`Keine Spulen anzuzeigen. Filter anpassen und erneut versuchen.`,noMatches:`Keine Spulen entsprechen der aktuellen Suche oder dem Filter.`,printOne:`Etikett für diese Spule drucken`,printLabels:`Etiketten drucken…`,bulkTitle:`Spulen aus den aktuell angezeigten {{count}} zum Etikettieren auswählen`,noSpoolsTitle:`Keine Spulen zum Etikettieren`,error:`Etiketten konnten nicht erstellt werden: {{msg}}`,sortBy:{label:`Sortieren:`,id:`Nach ID`,color:`Nach Farbe`},templates:{amsHolderSmall:{label:`AMS-Halter — klein (74 × 33 mm)`,hint:`Ein Etikett pro Seite; passt zum druckbaren Etikett aus dem MakerWorld-Modell 752566 (AMS-Filament-Etikettenhalter).`},amsHolderLarge:{label:`AMS-Halter — groß (75 × 55 mm)`,hint:`Ein Etikett pro Seite; passt zur Kartoneinleger-Variante des AMS-Filament-Etikettenhalters. Genug Platz für Farbprobe, Marke, Material, ID und QR-Code.`},box40x30:{label:`Boxetikett (40 × 30 mm)`,hint:`Ein Etikett pro Seite; gängige DK/Brother-Rollengröße, ideal für Filament-Beutel und Lager-Etiketten.`},box:{label:`Box label (62 × 29 mm)`,hint:`Ein Etikett pro Seite; für Brother PT/QL und Dymo-Kleinetiketten dimensioniert.`},averyL7160:{label:`Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)`,hint:`EU-Bogenformat; 21 Etiketten pro A4-Seite.`},avery5160:{label:`Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)`,hint:`US-Bogenformat; 30 Etiketten pro Letter-Seite.`}}},csv:{importButton:`CSV importieren`,exportButton:`CSV exportieren`,modalTitle:`Spulen aus CSV importieren`,selectFile:`CSV-Datei auswählen oder hierher ziehen`,dragHint:`Kopfzeile: material (erforderlich), brand, subtype, color_name, rgba, …`,parsing:`Datei wird gelesen…`,previewError:`CSV-Datei konnte nicht gelesen werden`,validCount:`{{count}} gültig`,errorCount:`{{count}} Fehler`,skippedCount:`{{count}} übersprungen`,colRow:`Zeile`,colStatus:`Status`,colColor:`Farbe`,colorResolved:`Farbe aus Katalog übernommen`,colorCrossMaterial:`Farbe von einem anderen Material übernommen — keine exakte Übereinstimmung im Katalog`,duplicateExisting:`Eine Spule mit diesem Material, dieser Marke und Farbe existiert bereits — sie wird trotzdem als neue Spule importiert`,spoolmanHint:`Im Spoolman-Modus den integrierten CSV-Import/-Export von Spoolman verwenden.`,importValidRows:`{{count}} gültige Zeilen importieren`,noValidRows:`Keine gültigen Zeilen`,importing:`Wird importiert…`,importSuccess:`{{count}} Spulen importiert`,importError:`Import fehlgeschlagen`,exportError:`Export fehlgeschlagen`},addSpool:`Spule hinzufügen`,copySpool:`Spule kopieren`,editSpool:`Spule bearbeiten`,material:`Material`,selectMaterial:`Material auswählen...`,subtype:`Untertyp`,brand:`Marke`,searchBrand:`Marke suchen...`,useCustomBrand:`"{{brand}}" verwenden`,useCustomMaterial:`Benutzerdefiniertes Material verwenden: {{material}}`,suggestedOptions:`Vorgeschlagen`,allOptions:`Alle`,colorName:`Farbname`,colorNamePlaceholder:`Jadeweiß, Feuerrot...`,color:`Farbe`,hexColor:`Hex-Farbe`,pickColor:`Benutzerdefinierte Farbe wählen`,labelWeight:`Nenngewicht`,coreWeight:`Leergewicht der Spule`,searchSpoolWeight:`Spulengewicht suchen...`,weightUsed:`Verbraucht`,currentWeight:`Restgewicht`,measuredWeight:`Gemessenes Gewicht`,spoolName:`Spule`,costPerKg:`Kosten pro kg`,storageLocation:`Lagerstandort`,storageLocationPlaceholder:`z.B. Regal A, Schublade 1`,openInInventory:`Im Inventar öffnen`,measuredWeightError:`Das gemessene Gewicht muss zwischen {{min}}g und {{max}}g liegen.`,slicerFilament:`Slicer-Filament`,slicerFilamentName:`Slicer-Preset-Name`,slicerPreset:`Slicer-Preset`,searchPresets:`Filament-Presets suchen...`,selectedPreset:`Ausgewählt`,noPresetsFound:`Keine Presets gefunden`,tempOverrides:`Temperatur-Überschreibungen`,note:`Notiz`,notePlaceholder:`Zusätzliche Notizen zu dieser Spule...`,category:`Kategorie`,categoryPlaceholder:`z. B. Produktion, Prototyp, Kunde A`,categoryNone:`Ohne Kategorie`,storageLocationNone:`Kein Lagerort`,lowStockThresholdOverride:`Niedrigbestandsschwelle (diese Spule)`,lowStockThresholdOverrideHelp:`Leer lassen, um den globalen Schwellenwert ({{global}}%) zu verwenden.`,clearRfid:`RFID-Tag löschen`,rfidCleared:`RFID-Tag gelöscht`,archive:`Archivieren`,restore:`Wiederherstellen`,noSpools:`Noch keine Spulen. Fügen Sie Ihre erste Spule hinzu.`,noAvailableSpools:`Keine Spulen verfügbar. Fügen Sie eine Spule zum Inventar hinzu oder lösen Sie eine aus einem anderen Slot.`,kProfiles:`K-Profile`,addKProfile:`K-Profil hinzufügen`,assignSpool:`Spule zuweisen`,unassignSpool:`Zuweisung aufheben`,assignSuccess:`Spule zugewiesen und AMS-Slot konfiguriert`,assignPendingInsert:`Zugewiesen. Slot wird beim Einsetzen der Spule konfiguriert.`,assignFailed:`Spulenzuweisung fehlgeschlagen`,selectSpool:`Wählen Sie eine Spule für diesen Slot`,assigned:`Zugewiesen`,assigning:`Wird zugewiesen...`,searchSpools:`Spulen suchen...`,showAllSpools:`Alle Spulen anzeigen`,spoolmanSpools:`Spoolman-Spulen`,allMaterials:`Alle Materialien`,filterByBrand:`Nach Marke filtern...`,showArchived:`Archivierte anzeigen`,quickAdd:`Schnellerfassung (Lager)`,quantity:`Menge`,stock:`Lager`,configured:`Konfiguriert`,spoolsCreated:`{{count}} Spulen erstellt`,spoolsPartiallyCreated:`{{created}} von {{total}} Spulen erstellt (einige fehlgeschlagen)`,spoolCreated:`Spule erstellt`,spoolUpdated:`Spule aktualisiert`,spoolDeleted:`Spule gelöscht`,deepLinkSpoolNotFound:`Spule nicht gefunden`,deepLinkFetchFailed:`Spule konnte nicht geladen werden — bitte erneut versuchen`,spoolArchived:`Spule archiviert`,spoolRestored:`Spule wiederhergestellt`,kProfileSaveFailed:`K-Profil-Einstellungen konnten nicht gespeichert werden`,syncWeightSpoolNotFound:`Spule nicht gefunden — sie wurde möglicherweise gelöscht`,syncWeightSpoolmanUnreachable:`Spoolman ist nicht erreichbar — bitte später erneut versuchen`,syncWeightFailed:`Gewicht konnte nicht synchronisiert werden`,spoolmanUnreachable:`Spoolman ist nicht erreichbar — bitte später erneut versuchen`,deleteSpoolNotFound:`Spule nicht gefunden — sie wurde möglicherweise bereits gelöscht`,deleteFailed:`Spule konnte nicht gelöscht werden`,archiveSpoolNotFound:`Spule nicht gefunden — sie wurde möglicherweise bereits gelöscht`,archiveFailed:`Spule konnte nicht archiviert werden`,restoreSpoolNotFound:`Spule nicht gefunden — sie wurde möglicherweise bereits gelöscht`,restoreFailed:`Spule konnte nicht wiederhergestellt werden`,saveFailed:`Änderungen konnten nicht gespeichert werden`,tagClearFailed:`Tag konnte nicht gelöscht werden`,deleteConfirm:`Möchten Sie diese Spule wirklich löschen? Dies kann nicht rückgängig gemacht werden.`,archiveConfirm:`Möchten Sie diese Spule wirklich archivieren?`,advancedSettings:`Erweiterte Einstellungen`,filamentInfoTab:`Filament-Info`,paProfileTab:`PA-Profil`,filamentInfo:`Filament`,additional:`Zusätzlich`,loadingPresets:`Cloud-Presets werden geladen...`,cloudConnected:`Cloud verbunden`,cloudNotConnected:`Cloud nicht verbunden (Standardwerte)`,recentColors:`Zuletzt`,searchColors:`Farben suchen...`,searchResults:`Suchergebnisse`,allColors:`Alle Farben`,commonColors:`Häufige Farben`,showLess:`Weniger`,showAll:`Alle`,noColorsFound:`Keine Farben gefunden`,noResults:`Keine Ergebnisse`,extraColorsLabel:`Zusätzliche Farben`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`2 bis 8 Hex-Stops, durch Kommas getrennt. Wird als Verlauf dargestellt.`,extraColorsInvalid:`Ungültige Hex-Werte ignoriert: {{tokens}}`,colorEffectLabel:`Effekt`,colorEffect:{none:`Keiner`,sparkle:`Glitzer`,wood:`Holz`,marble:`Marmor`,glow:`Leuchtend`,matte:`Matt`,silk:`Seide`,galaxy:`Galaxie`,rainbow:`Regenbogen`,metal:`Metallic`,translucent:`Lichtdurchlässig`,gradient:`Verlauf`,dualColor:`Zweifarbig`,triColor:`Dreifarbig`,multicolor:`Mehrfarbig`},selectMaterialFirst:`Bitte zuerst ein Material im Filament-Info Tab auswählen.`,noPrintersConfigured:`Keine Drucker konfiguriert. Fügen Sie Drucker hinzu.`,matchingFilter:`Filter`,anyBrand:`Jede Marke`,anyVariant:`Jede Variante`,autoSelect:`Auto-Auswahl`,matches:`Treffer`,match:`Treffer`,noMatches:`Keine Treffer`,connected:`Verbunden`,offline:`Offline`,printerOffline:`Drucker ist offline. Verbinden Sie ihn, um Kalibrierungsprofile anzuzeigen.`,noKProfilesMatch:`Keine K-Profile stimmen mit dem gewählten Filament überein.`,leftNozzle:`Linke Düse`,rightNozzle:`Rechte Düse`,profilesSelected:`Kalibrierungsprofil(e) ausgewählt`,totalInventory:`Gesamtbestand`,totalConsumed:`Gesamtverbrauch`,byMaterial:`Nach Material`,inPrinter:`Im Drucker`,lowStock:`Niedriger Bestand`,sinceTracking:`Seit Beginn der Erfassung`,resetConsumedCounter:`Zähler zurücksetzen`,resetConsumedCounterTooltip:`Den verbrauchten Gramm-Zähler dieser Spule auf null setzen. Das Restgewicht bleibt unverändert.`,resetConsumedCounterConfirm:`Verbrauchten Gramm-Zähler dieser Spule auf 0 zurücksetzen? Künftige Drucke zählen wieder ab null. Die Spule selbst, ihre Restgewichtsberechnung und Ihre Einstellungen bleiben unverändert.`,resetAllConsumedCounters:`Alle Zähler zurücksetzen`,resetAllConsumedCountersTooltip:`Den verbrauchten Gramm-Zähler auf jeder Spule auf null setzen. Die Restgewichte bleiben unverändert.`,resetAllConsumedCountersConfirm:`Verbrauchten Gramm-Zähler auf allen {{count}} Spulen (archivierte eingeschlossen) auf 0 zurücksetzen? Das löscht den Wert „Insgesamt verbraucht“, sodass künftige Drucke wieder ab null gezählt werden. Spulen und Restgewichte bleiben unverändert.`,consumedCounterReset:`Zähler zurückgesetzt`,allConsumedCountersReset:`Zähler für {{count}} Spule(n) zurückgesetzt`,resetConsumedCounterFailed:`Zähler konnte nicht zurückgesetzt werden`,loadedInAms:`Im AMS/Ext geladen`,remaining:`Verbleibend`,weightCheck:`Gewichtskontrolle`,lastWeighed:`Zuletzt gewogen`,neverWeighed:`Nie gewogen`,search:`Spulen suchen...`,showing:`Zeige`,to:`bis`,of:`von`,show:`Zeige`,spools:`Spulen`,spool:`Spule`,page:`Seite`,noSpoolsMatch:`Keine Ergebnisse`,noSpoolsMatchDesc:`Versuchen Sie, Ihre Suche oder Filter anzupassen.`,active:`Aktiv`,archived:`Archiviert`,all:`Alle`,used:`Verwendet`,new:`Neu`,clearFilters:`Filter löschen`,table:`Tabelle`,cards:`Karten`,net:`Netto`,groupSimilar:`Gruppieren`,groupedSpools:`{{count}} identische Spulen`,groupedRows:`Zeilen`,columns:`Spalten`,configureColumns:`Spalten konfigurieren`,configureColumnsDesc:`Ziehen zum Neuordnen oder Pfeile verwenden. Sichtbarkeit mit dem Augensymbol umschalten.`,visible:`sichtbar`,reset:`Zurücksetzen`,cancel:`Abbrechen`,applyChanges:`Änderungen anwenden`,moveUp:`Nach oben`,moveDown:`Nach unten`,hideColumn:`Spalte ausblenden`,showColumn:`Spalte einblenden`,linkToSpool:`Mit Spule verknüpfen`,tagLinked:`Tag mit Spule verknüpft`,tagLinkFailed:`Tag-Verknüpfung fehlgeschlagen`,tagAlreadyLinked:`Tag bereits mit anderer Spule verknüpft`,unknownTag:`Unbekannter RFID-Tag erkannt`,usageHistory:`Verbrauchshistorie`,noUsageHistory:`Noch kein Verbrauch erfasst`,printName:`Druckname`,weightConsumed:`Verbrauchtes Gewicht`,clearHistory:`Löschen`,historyCleared:`Verbrauchshistorie gelöscht`,fillSourceLabel:`(Inv)`,lowStockThresholdError:`Der Schwellenwert muss zwischen 0.1 und 99.9 liegen`,assignMismatchTitle:`Material stimmt nicht überein`,assignMismatchMessage:`Das ausgewählte Spulenmaterial "{{spoolMaterial}}" stimmt nicht mit dem Tray-Material "{{trayMaterial}}" für {{location}} überein. Trotzdem zuweisen?`,assignMismatchConfirm:`Trotzdem zuweisen`,assignPartialMismatchMessage:`Das Spulenmaterial "{{spoolMaterial}}" ist ähnlich, stimmt aber nicht genau mit "{{trayMaterial}}" in {{location}} überein. Möchten Sie fortfahren?`,assignProfileMismatchMessage:`Das Spulenprofil "{{spoolProfile}}" stimmt nicht mit dem Fachprofil "{{trayProfile}}" in {{location}} überein. Möchten Sie fortfahren?`,assignReconfigureNote:`Der AMS-Slot wird mit dem Profil der Spule neu konfiguriert.`,spoolmanFilamentCatalog:`Spoolman-Filamentkatalog`,pickFromSpoolmanCatalog:`Aus Spoolman-Katalog wählen…`,spoolmanFilamentSelected:`Filament aus Spoolman-Katalog ausgewählt`,spoolmanFilamentUnlinked:`Verknüpfung mit Filamentkatalog aufgehoben`,noSpoolmanFilaments:`Keine Filamente im Spoolman-Katalog gefunden`,spoolmanFilamentColorSwatch:`Filamentfarbe`,spoolWeightManagedBySpoolman:`Das Leerspulengewicht wird pro Filamenttyp in Spoolman verwaltet`,spoolmanCatalogLoadFailed:`Spoolman-Filamentkatalog konnte nicht geladen werden`},timelapse:{title:`Zeitraffer`,create:`Zeitraffer erstellen`,download:`Herunterladen`,delete:`Löschen`,preview:`Vorschau`,frameRate:`Bildrate`,quality:`Qualität`,processing:`Wird verarbeitet...`,noTimelapses:`Keine Zeitraffer verfügbar`},ams:{title:`AMS`,slot:`Slot`,empty:`Leer`,emptySlot:`Leerer Slot`,slotEmpty:`Leer`,slotUnconfigured:`?`,emptySlotReset:`Keine Spule zugewiesen`,unknown:`Unbekannt`,humidity:`Luftfeuchtigkeit`,temperature:`Temperatur`,filamentType:`Filamenttyp`,filamentColor:`Farbe`,remaining:`Verbleibend`,history:`AMS-Verlauf`,noHistory:`Kein Verlauf verfügbar`,configureSlot:`Slot konfigurieren`,externalSpool:`Externe Spule`,profile:`Profil`,kFactor:`K-Faktor`,fill:`Füllstand`,configure:`Konfigurieren`,used:`verwendet`,remainingUnit:`verbleibend`},printModal:{selectPrinter:`Drucker auswählen`,selectPlate:`Platte auswählen`,filamentMapping:`Filamentzuordnung`,plateN:`Platte {{n}}`,plateFilamentsUnreadable:`Die Filamente einer ausgewählten Platte konnten nicht gelesen werden, sie lässt sich daher nicht zuordnen. Wähle sie ab, um die anderen einzureihen.`,totalCost:`Gesamtkosten:`,slotRemainingShort:` - {{grams}}g übrig`,printSettings:`Druckeinstellungen`,bedLeveling:`Bett-Nivellierung`,flowCalibration:`Fluss-Kalibrierung`,vibrationCalibration:`Vibrations-Kalibrierung`,layerInspection:`Erste-Schicht-Prüfung`,timelapse:`Zeitraffer`,cancel:`Abbrechen`,noPrintersAvailable:`Keine Drucker verfügbar`,printerBusy:`Drucker ist beschäftigt`,printerOffline:`Drucker ist offline`,sameTypeDifferentColor:`Gleicher Typ, andere Farbe`,filamentTypeNotLoaded:`Filamenttyp nicht geladen`,whenToPrint:`Wann drucken`,asap:`Sofort`,queue:`Warteschlange`,schedule:`Planen`,dateTime:`Datum & Uhrzeit`,invalidDateTime:`Bitte ein gültiges Datum und eine gültige Uhrzeit eingeben`,openCalendar:`Kalender öffnen`,requireManualStart:`Manuellen Start erfordern`,requirePreviousSuccess:`Nur starten, wenn der vorherige Druck erfolgreich war`,autoOffAfter:`Drucker nach Abschluss ausschalten`,helpAsap:`Der Druck wird oben in die Warteschlange eingefügt und startet, sobald ein geeigneter Drucker im Leerlauf ist.`,helpSchedule:`Der Druck startet zur geplanten Zeit, wenn der Drucker im Leerlauf ist. Wenn er belegt ist, wartet er, bis der Drucker verfügbar ist.`,helpQueue:`Der Druck wird hinten in die Warteschlange eingefügt.`,leftNozzle:`L`,rightNozzle:`R`,leftNozzleTooltip:`Linke Düse`,rightNozzleTooltip:`Rechte Düse`,filamentOverride:`Filament-Überschreibung`,filamentOverrideHint:`Filamente für modellbasierte Zuweisung optional überschreiben. Der Planer wird gegen die ausgewählten Filamente statt der ursprünglichen 3MF-Werte abgleichen.`,originalFilament:`Original`,overrideWith:`Ersetzen mit`,resetToOriginal:`Auf Original zurücksetzen`,insufficientFilamentTitle:`Nicht genug Filament`,waitingForAmsStatus:`Warte auf AMS-Status von {{printer}}…`,insufficientFilamentMessage:`Einige zugewiesene Spulen haben weniger Filament als dieser Druck benötigt:`,insufficientFilamentLine:`{{printer}} - {{slot}}: benötigt {{required}}g, verbleibend {{remaining}}g`,printAnyway:`Trotzdem drucken`,forceColorMatch:`Farbe erzwingen`,staggerPrinterStarts:`Druckerstarts staffeln`,staggerGroupSize:`Gruppengröße`,staggerInterval:`Intervall (Min.)`,staggerPreview:`{{printers}} Drucker → {{groups}} Gruppen à {{size}}, Start alle {{interval}} Min.`,staggerLastGroup:`letzte Gruppe: {{count}}`,staggerTotal:`insgesamt: {{minutes}} Min.`,staggerToPrinters:`Gestaffelt an {{count}} Drucker senden`,gcodeInjection:`Auto-Print G-code einfügen`},backup:{includesEncryptionKey:`Lokale Sicherungen enthalten die MFA-Schlüsseldatei (DATA_DIR/.mfa_encryption_key), damit ein Backup-ZIP selbstkonsistent ist. Behandle das ZIP als sensibel — wer Zugriff auf die Datei hat, kann die darin enthaltenen OIDC-Client-Secrets und TOTP-Geheimnisse entschlüsseln.`,title:`Sichern & Wiederherstellen`,createBackup:`Sicherung erstellen`,restoreBackup:`Sicherung wiederherstellen`,restoreDescription:`Alle Daten aus einer Sicherungsdatei ersetzen`,downloadBackup:`Sicherung herunterladen`,uploadBackup:`Sicherung hochladen`,lastBackup:`Letzte Sicherung`,autoBackup:`Automatische Sicherung`,backupNow:`Jetzt sichern`,restoreWarning:`Warnung: Das Wiederherstellen einer Sicherung überschreibt alle aktuellen Daten.`,includeArchives:`Archive einschließen`,includeSettings:`Einstellungen einschließen`,includeProfiles:`Profile einschließen`,backupSuccess:`Sicherung erfolgreich erstellt`,restoreSuccess:`Sicherung erfolgreich wiederhergestellt`,backupFailed:`Sicherung fehlgeschlagen`,restoreFailed:`Wiederherstellung fehlgeschlagen`,restoreNote:`Virtueller Drucker wird während der Wiederherstellung gestoppt`,githubBackup:`Git-Backup`,enabled:`Aktiviert`,cloudLoginRequired:`Bambu Cloud Login erforderlich. Melden Sie sich unter Profile → Cloud-Profile an, um GitHub-Backup zu aktivieren.`,cloudLoginRequiredShort:`Cloud-Login erforderlich`,githubDescription:`Synchronisieren Sie Ihre Profile automatisch mit einem privaten GitHub-Repository für Backup und Versionsverlauf.`,repoIsPrivate:`Repository ist privat — Sicherung möglich.`,repoIsPublicWarning:`Das Repository ist ÖFFENTLICH. Bambuddy-Backups enthalten MQTT-Zugangsdaten, Home-Assistant-Tokens, Prometheus-Tokens, Ihre Bambu-Cloud-E-Mail-Adresse und über K-Profile auch Drucker-Zugangscodes. Speichern ist blockiert, bis Sie das Repository in den Einstellungen Ihres Anbieters auf privat stellen.`,repoVisibilityUnknown:`Die Sichtbarkeit des Repositories konnte nicht bestimmt werden. Bambuddy sichert nur in Repositories, die nachweislich privat sind; Speichern wird blockiert.`,repositoryUrl:`Repository-URL`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`Unsicheres HTTP erlauben`,allowInsecureHttpHint:`Für selbst gehostete Instanzen in privaten Netzwerken ohne TLS aktivieren`,personalAccessToken:`Persönlicher Zugriffstoken`,tokenSaved:`(gespeichert)`,enterNewToken:`Neuen Token eingeben zum Aktualisieren`,tokenHint:`Feingranularer Token mit Lese-/Schreibberechtigung für Inhalte`,branch:`Branch`,provider:`Git-Anbieter`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`Nur manuell`,hourly:`Stündlich`,daily:`Täglich`,weekly:`Wöchentlich`,includeInBackup:`In Sicherung einschließen`,kProfiles:`K-Profile`,kProfilesDescription:`Druckvorschub-Kalibrierung von verbundenen Druckern`,noPrintersConnected:`Keine Drucker verbunden`,printersConnected:`{{connected}}/{{total}} verbunden`,cloudProfiles:`Cloud-Profile`,cloudProfilesDescription:`Filament-, Drucker- und Prozessprofile aus der Bambu Cloud`,appSettings:`App-Einstellungen`,appSettingsDescription:`Bambuddy-Konfiguration (komplette Datenbank)`,spoolInventory:`Spulenbestand`,spoolInventoryDescription:`Filamentspulen, Nutzungsverlauf und Kostenverfolgung`,printArchives:`Druckarchive`,printArchivesDescription:`Druckverlauf-Metadaten (keine GCode/3MF-Dateien)`,lastBackupAt:`Letzte Sicherung:`,noBackupsYet:`Noch keine Sicherungen`,next:`Nächste:`,startingBackup:`Sicherung wird gestartet...`,test:`Test`,enableBackup:`Sicherung aktivieren`,testConnection:`Verbindung testen`,enterRepoUrl:`Repository-URL eingeben`,enterRepoAndToken:`Repository-URL und Zugriffstoken eingeben`,repoRequired:`Repository-URL ist erforderlich`,tokenRequired:`Zugriffstoken ist erforderlich`,githubBackupEnabled:`GitHub-Backup aktiviert`,tokenUpdated:`Token aktualisiert`,settingsSaved:`Einstellungen gespeichert`,failedToSave:`Speichern fehlgeschlagen: {{message}}`,backupCompleteFiles:`Sicherung abgeschlossen - {{count}} Dateien aktualisiert`,backupSkippedNoChanges:`Sicherung übersprungen - keine Änderungen`,backupFailed2:`Sicherung fehlgeschlagen: {{message}}`,clearedLogs:`{{count}} Protokolle gelöscht`,failedToClearLogs:`Protokolle löschen fehlgeschlagen: {{message}}`,history:`Verlauf`,clear:`Löschen`,date:`Datum`,status:`Status`,commit:`Commit`,localBackup:`Lokale Sicherung`,localBackupDescription:`Erstellen Sie eine vollständige Sicherung Ihrer Bambuddy-Daten einschließlich Datenbank, Archive, Uploads und aller Dateien.`,downloadBackupLabel:`Sicherung herunterladen`,completeBackupZip:`Vollständige Sicherung: Datenbank + alle Dateien (ZIP)`,download:`Herunterladen`,preparingBackup:`Sicherung wird vorbereitet...`,creatingArchive:`Sicherungsarchiv wird erstellt... Dies kann bei großen Archiven eine Weile dauern.`,downloadingFile:`Sicherungsdatei wird heruntergeladen...`,backupDownloaded:`Sicherung erfolgreich heruntergeladen`,failedToCreateBackup:`Sicherung erstellen fehlgeschlagen: {{message}}`,restore:`Wiederherstellen`,restoreReplacesAll:`Wiederherstellung ersetzt alle Daten.`,restoreReplacesAllDetail:`Ihre aktuelle Datenbank und Dateien werden vollständig ersetzt. Nach der Wiederherstellung ist ein Neustart erforderlich.`,restoreConfirmTitle:`Sicherung wiederherstellen`,restoreConfirmMessage:`Sind Sie sicher, dass Sie von "{{filename}}" wiederherstellen möchten? Dies ersetzt Ihre aktuelle Datenbank und alle Dateien vollständig. Die Anwendung muss nach der Wiederherstellung neu gestartet werden.`,restoreConfirmButton:`Sicherung wiederherstellen`,uploadingFile:`Sicherungsdatei wird hochgeladen...`,backupRestoredRestart:`Sicherung wiederhergestellt. Bitte starten Sie Bambuddy neu.`,failedToRestore:`Sicherung wiederherstellen fehlgeschlagen. Bitte überprüfen Sie das Dateiformat.`,reloadNow:`Jetzt neu laden`,creatingBackup:`Sicherung erstellen`,restoringBackup:`Sicherung wiederherstellen`,preparing:`Vorbereiten...`,processing:`Verarbeiten...`,doNotClosePage:`Bitte schließen Sie diese Seite nicht und navigieren Sie nicht weg. Dieser Vorgang kann bei großen Sicherungen mehrere Minuten dauern.`,restoring:`Wiederherstellen...`,restoreComplete:`Wiederherstellung abgeschlossen`,restoreFailed2:`Wiederherstellung fehlgeschlagen`,importSettings:`Einstellungen aus einer Sicherungsdatei importieren`,pleaseWaitRestoring:`Bitte warten Sie, während Ihre Daten wiederhergestellt werden`,selectBackupFile:`Klicken Sie, um eine Sicherungsdatei auszuwählen (.json oder .zip)`,duplicateHandling:`So funktioniert die Duplikatbehandlung:`,matchPrinters:`Drucker`,matchPrintersBy:`abgeglichen nach Seriennummer`,matchSmartPlugs:`Smart Plugs`,matchSmartPlugsBy:`abgeglichen nach IP-Adresse`,matchNotificationProviders:`Benachrichtigungsanbieter`,matchNotificationProvidersBy:`abgeglichen nach Name`,matchFilaments:`Filamente`,matchFilamentsBy:`abgeglichen nach Name + Typ + Marke`,matchArchives:`Archive`,matchArchivesBy:`abgeglichen nach Inhaltshash (immer übersprungen)`,matchPendingUploads:`Ausstehende Uploads`,matchPendingUploadsBy:`abgeglichen nach Dateiname`,matchSettingsTemplates:`Einstellungen & Vorlagen`,matchSettingsTemplatesBy:`immer überschrieben`,replaceExisting:`Vorhandene Daten ersetzen`,keepExisting:`Vorhandene Daten behalten`,overwriteDescription:`Bereits vorhandene Elemente mit Sicherungsdaten überschreiben`,keepDescription:`Nur Elemente wiederherstellen, die noch nicht vorhanden sind`,overwriteCaution:`Achtung:`,overwriteWarning:`Das Überschreiben ersetzt Ihre aktuellen Konfigurationen durch Daten aus der Sicherung. Drucker-Zugangscodes werden aus Sicherheitsgründen nie überschrieben.`,cancel:`Abbrechen`,processingBackup:`Sicherungsdatei wird verarbeitet...`,itemsRestored:`Wiederhergestellt`,itemsSkipped:`Übersprungen`,restored:`Wiederhergestellt`,skippedAlreadyExist:`Übersprungen (bereits vorhanden)`,filesCategory:`Dateien (3MF, Thumbnails, etc.)`,andMore:`...und {{count}} weitere`,newApiKeysGenerated:`Neue API-Schlüssel generiert`,keysShownOnce:`Diese Schlüssel werden nur einmal angezeigt. Kopieren Sie sie jetzt!`,copy:`Kopieren`,noDataFound:`In der Sicherungsdatei wurden keine Daten zur Wiederherstellung gefunden.`,close:`Schließen`,scheduledBackup:`Geplante Backups`,scheduledBackupDescription:`Backup-Snapshots automatisch nach Zeitplan erstellen. Ausgabeverzeichnis kann auf einen NAS oder externen Speicher gemountet werden.`,frequency:`Frequenz`,backupTime:`Zeit`,retention:`Aufbewahrung`,retentionDescription:`Anzahl der zu behaltenden Backups`,outputPath:`Ausgabepfad`,outputPathPlaceholder:`Standard: {{path}}`,outputPathDescription:`Leer lassen für den Standardort`,runNow:`Jetzt ausführen`,backupFiles:`Backup-Dateien`,noScheduledBackups:`Noch keine Backups`,deleteBackup:`Löschen`,deleteBackupConfirm:`Diese Backup-Datei löschen?`,backupRunning:`Backup läuft...`,scheduledBackupComplete:`Backup erfolgreich abgeschlossen`,scheduledBackupFailed:`Backup fehlgeschlagen`,nextBackup:`Nächstes Backup`,backupSize:`Größe`,localTimeHint:`Ortszeit ({{tz}})`,defaultPathLabel:`Standard:`,pathCheck:{title:`Bambuddy kann nicht in dieses Verzeichnis schreiben`,howToFix:`So beheben Sie das:`,sandboxed:`Der Bambuddy-Dienst kann nicht nach {{path}} schreiben. Seine systemd-Unit läuft mit ProtectSystem=strict, wodurch jedes Verzeichnis außerhalb der Installations-, Daten- und Log-Verzeichnisse für den Dienst schreibgeschützt ist - auch eines, in das Sie aus Ihrer eigenen Shell schreiben können.`,read_only:`{{path}} liegt auf einem schreibgeschützten Dateisystem.`,permission_denied:`Bambuddy darf nicht nach {{path}} schreiben. Prüfen Sie Eigentümer und Rechte des Verzeichnisses.`,no_space:`Das Dateisystem, auf dem {{path}} liegt, ist voll.`,not_a_directory:`{{path}} existiert, ist aber kein Verzeichnis.`,missing:`{{path}} existiert nicht und konnte nicht angelegt werden.`,error:`Bambuddy kann nicht nach {{path}} schreiben.`,ephemeralTitle:`Diese Backups überleben einen Container-Neustart nicht`,container_ephemeral:`{{path}} liegt im Bambuddy-Container, nicht auf dem Host. Dort geschriebene Backups gehen verloren, sobald der Container neu erstellt wird. Binden Sie das Verzeichnis vom Host ein:`},categories:{settings:`Einstellungen`,notification_providers:`Benachrichtigungsanbieter`,notification_templates:`Benachrichtigungsvorlagen`,smart_plugs:`Smart Plugs`,printers:`Drucker`,filaments:`Filamente`,maintenance_types:`Wartungstypen`,archives:`Archive`,projects:`Projekte`,pending_uploads:`Ausstehende Uploads`,external_links:`Externe Links`,api_keys:`API-Schlüssel`}},tags:{title:`Tags`,addTag:`Tag hinzufügen`,editTag:`Tag bearbeiten`,deleteTag:`Tag löschen`,tagName:`Tag-Name`,tagColor:`Tag-Farbe`,noTags:`Keine Tags`,deleteConfirm:`Möchten Sie diesen Tag wirklich löschen?`,manageTags:`Tags verwalten`},uploadModal:{title:`3MF-Dateien hochladen`,dragDrop:`3MF-Dateien hierher ziehen`,or:`oder`,browseFiles:`Dateien durchsuchen`,extractionInfo:`Das Druckermodell wird automatisch aus den 3MF-Datei-Metadaten extrahiert.`,uploaded:`hochgeladen`,failed:`fehlgeschlagen`,uploading:`Wird hochgeladen...`,upload:`Hochladen`,uploadFailed:`Hochladen fehlgeschlagen`},editArchive:{title:`Archiv bearbeiten`,name:`Name`,namePlaceholder:`Druckname`,printer:`Drucker`,noPrinter:`Kein Drucker`,project:`Projekt`,noProject:`Kein Projekt`,itemsPrinted:`Gedruckte Teile`,itemsPrintedHelp:`Anzahl der in diesem Druckauftrag produzierten Teile`,notes:`Notizen`,notesPlaceholder:`Notizen zu diesem Druck hinzufügen...`,externalLink:`Externer Link`,externalLinkPlaceholder:`https://printables.com/model/...`,externalLinkHelp:`Link zu Printables, Thingiverse oder anderer Quelle`,tags:`Tags`,tagsPlaceholder:`Tags hinzufügen...`,addMoreTags:`Weitere Tags hinzufügen...`,matchingTags:`Übereinstimmend mit "{{query}}"`,existingTags:`Vorhandene Tags`,clickToAdd:`(zum Hinzufügen klicken)`,status:`Status`,failureReason:`Fehlergrund`,selectReason:`Grund auswählen...`,photos:`Fotos des Druckergebnisses`,photosHelp:`Klicken Sie auf + um Fotos Ihres Druckergebnisses hinzuzufügen`,printResult:`Druckergebnis`,saving:`Wird gespeichert...`,failureReasons:{adhesionFailure:`Haftungsfehler`,spaghettiDetached:`Spaghetti / Abgelöst`,layerShift:`Schichtversatz`,cloggedNozzle:`Verstopfte Düse`,filamentRunout:`Filament aufgebraucht`,warping:`Verformung`,stringing:`Fadenziehen`,underExtrusion:`Unterextrusion`,powerFailure:`Stromausfall`,userCancelled:`Vom Benutzer abgebrochen`,other:`Sonstiges`},statuses:{completed:`Abgeschlossen`,failed:`Fehlgeschlagen`,aborted:`Abgebrochen`,printing:`Druckt`}},kProfiles:{title:`K-Profile`,noPrintersConfigured:`Keine Drucker konfiguriert`,addPrinterInSettings:`Fügen Sie einen Drucker in den Einstellungen hinzu, um K-Profile zu verwalten`,noActivePrinters:`Keine aktiven Drucker`,enablePrinterConnection:`Aktivieren Sie eine Druckerverbindung, um K-Profile anzuzeigen`,loadingProfiles:`Lade K-Profile...`,printerOffline:`Drucker offline`,printerOfflineDesc:`Der ausgewählte Drucker ist nicht verbunden. Schalten Sie ihn ein, um K-Profile anzuzeigen.`,noMatchingProfiles:`Keine passenden Profile`,noMatchingProfilesDesc:`Keine Profile entsprechen Ihren Suchkriterien`,noKProfiles:`Keine K-Profile`,noKProfilesDesc:`Keine Druckvorschub-Profile für {{diameter}}mm Düse gefunden`,createFirstProfile:`Erstes Profil erstellen`,printer:`Drucker`,nozzle:`Düse`,refresh:`Aktualisieren`,addProfile:`Profil hinzufügen`,export:`Exportieren`,import:`Importieren`,select:`Auswählen`,selectAll:`Alle auswählen`,delete:`Löschen`,searchPlaceholder:`Nach Name oder Filament suchen...`,allExtruders:`Alle Extruder`,leftOnly:`Nur links`,rightOnly:`Nur rechts`,allFlow:`Alle Flusstypen`,hfOnly:`Nur HF`,sOnly:`Nur S`,sortName:`Sortieren: Name`,sortKValue:`Sortieren: K-Wert`,sortFilament:`Sortieren: Filament`,leftExtruder:`Linker Extruder`,rightExtruder:`Rechter Extruder`,modal:{addTitle:`K-Profil hinzufügen`,editTitle:`K-Profil bearbeiten`,profileName:`Profilname`,profileNamePlaceholder:`Mein PLA-Profil`,kValue:`K-Wert`,kValuePlaceholder:`0,020`,kValueHelp:`Typischer Bereich: 0,01 - 0,06 für PLA, 0,02 - 0,10 für PETG`,filament:`Filament`,selectFilament:`Filament auswählen...`,noFilamentsHelp:`Keine Filamente gefunden. Erstellen Sie zuerst ein K-Profil in Bambu Studio.`,flowType:`Flusstyp`,highFlow:`Hoher Durchfluss`,standard:`Standard`,nozzleSize:`Düsengröße`,extruder:`Extruder`,extruders:`Extruder`,left:`Links`,right:`Rechts`,notes:`Notizen (lokal gespeichert)`,notesPlaceholder:`Notizen zu diesem Profil hinzufügen...`,notesHelp:`Notizen werden in Bambuddy gespeichert, nicht auf dem Drucker`,syncing:`Synchronisiert mit Drucker...`,savingExtruder:`Speichern auf Extruder {{current}}/{{total}}...`,pleaseWait:`Bitte warten`},deleteConfirm:{title:`Profil löschen`,cannotUndo:`Dies kann nicht rückgängig gemacht werden`,message:`Möchten Sie "{{name}}" wirklich vom Drucker löschen?`},bulkDelete:{title:`Profile löschen`,cannotUndo:`Dies kann nicht rückgängig gemacht werden`,message:`Möchten Sie wirklich {{count}} ausgewählte Profile vom Drucker löschen?`},toast:{profileSaved:`K-Profil gespeichert`,profilesSaved:`K-Profil auf {{count}} Extrudern gespeichert`,selectAtLeastOneExtruder:`Bitte wählen Sie mindestens einen Extruder aus`,profileDeleted:`K-Profil gelöscht`,profilesDeleted:`{{count}} Profile gelöscht`,exportedProfiles:`{{count}} Profile exportiert`,importedProfiles:`{{count}} von {{total}} Profilen importiert`,noProfilesToExport:`Keine Profile zum Exportieren`,invalidFileFormat:`Ungültiges Dateiformat`,failedToParseImport:`Import-Datei konnte nicht gelesen werden`,failedToSaveBatch:`K-Profile konnten nicht gespeichert werden`,noteSaved:`Notiz gespeichert`,failedToSaveNote:`Notiz konnte nicht gespeichert werden`},permission:{noRead:`Sie haben keine Berechtigung, Profile zu aktualisieren`,noCreate:`Sie haben keine Berechtigung, Profile hinzuzufügen`,noUpdate:`Sie haben keine Berechtigung, K-Profile zu aktualisieren`,noDelete:`Sie haben keine Berechtigung, K-Profile zu löschen`,noExport:`Sie haben keine Berechtigung, Profile zu exportieren`,noImport:`Sie haben keine Berechtigung, Profile zu importieren`}},virtualPrinter:{title:`Virtueller Drucker`,running:`Läuft`,stopped:`Gestoppt`,description:{default:`Aktiviere einen virtuellen Drucker, der in Bambu Studio und OrcaSlicer erscheint. Dateien, die an diesen Drucker gesendet werden, werden direkt archiviert ohne zu drucken.`,proxy:`Aktiviere einen Proxy, der Slicer-Datenverkehr an einen echten Drucker weiterleitet, um Ferndruck über jedes Netzwerk zu ermöglichen.`},enable:{title:`Virtuellen Drucker aktivieren`,visibleInSlicer:`Sichtbar als "Bambuddy" in der Slicer-Erkennung`,proxyingTo:`Proxy zu {{name}}`,notActive:`Nicht aktiv`},model:{title:`Druckermodell`,description:`Wähle welches Druckermodell emuliert werden soll.`,restartWarning:`Das Ändern des Modells startet den virtuellen Drucker neu`},accessCode:{title:`Zugangscode`,isSet:`Zugangscode ist gesetzt`,notSet:`Kein Zugangscode gesetzt - erforderlich zum Aktivieren`,placeholder:`8-Zeichen-Code eingeben`,placeholderChange:`Neuen Code eingeben zum Ändern`,hint:`Muss genau 8 Zeichen lang sein. Wird von Slicern zur Authentifizierung verwendet.`,charCount:`({{count}}/8)`,inheritedFromTarget:`Vom Zieldrucker übernommen`,derivedFromTargetHint:`Verwendet den Zugangscode des Zieldruckers. Die Brücke leitet die Slicer-Authentifizierung an den echten Drucker weiter, daher müssen die Codes übereinstimmen — den Druckercode in dessen Einstellungen ändern.`,reveal:`Zugangscode anzeigen`,hide:`Zugangscode verbergen`},targetPrinter:{title:`Zieldrucker`,configured:`Proxy-Ziel konfiguriert`,notConfigured:`Kein Zieldrucker ausgewählt - erforderlich für Proxy-Modus`,placeholder:`Drucker auswählen...`,hint:`Wähle den Drucker aus, an den der Slicer-Datenverkehr weitergeleitet werden soll. Der Drucker muss im LAN-Modus sein.`,noPrinters:`Keine Drucker konfiguriert. Füge zuerst einen Drucker hinzu, um den Proxy-Modus zu verwenden.`},remoteInterface:{title:`Netzwerkschnittstelle überschreiben`,configured:`Schnittstellenüberschreibung aktiv`,optional:`Optional - verwenden wenn die automatisch erkannte IP falsch ist (z.B. mehrere NICs, Docker, VPN)`,placeholder:`Automatisch erkennen (Standard)...`,hint:`Überschreibt die per SSDP beworbene und im TLS-Zertifikat verwendete IP-Adresse. Nützlich wenn Bambuddy mehrere Netzwerkschnittstellen hat.`},mode:{title:`Modus`,archive:`Archivieren`,archiveDesc:`Dateien sofort archivieren`,review:`Überprüfen`,reviewDesc:`Vor dem Archivieren überprüfen`,queue:`Warteschlange`,queueDesc:`Archivieren und zur Warteschlange hinzufügen`,proxy:`Proxy`,proxyDesc:`An echten Drucker weiterleiten`},autoDispatch:{title:`Automatisch starten`,description:`Drucke automatisch starten, wenn sie zur Warteschlange hinzugefügt werden. Wenn deaktiviert, warten Drucke auf manuellen Start.`},queueForceColorMatch:{title:`Farbabgleich erzwingen`,description:`Druckaufträge nur an Drucker senden, bei denen der genaue Filament-Typ und die genaue Farbe geladen sind. Standardmäßig deaktiviert — ohne diese Option verwendet die Warteschlange nur den Drucker-Modell-Abgleich und wählt möglicherweise einen Drucker mit der falschen Farbe.`},gcodeInjection:{title:`G-code-Injektion`,description:`Wendet die in den Einstellungen pro Modell konfigurierten G-code-Snippets auf Jobs dieses VP an. Standardmäßig aus.`},tailscaleDisabled:{title:`Tailscale-Integration`,description:`Aktivieren, um diesen VP als per Tailscale erreichbar zu markieren. Zeigt die Tailscale-Adresse des Hosts an, damit du weißt, welche IP du im Slicer eintragen musst. Der CA-Import bleibt unverändert — diese Option hat keinen Einfluss auf Zertifikate.`},setupRequired:{title:`Einrichtung erforderlich`,description:`Die virtuelle Druckerfunktion erfordert zusätzliche Systemkonfiguration, bevor sie funktioniert. Dies beinhaltet Portweiterleitung, Firewall-Regeln und plattformspezifische Einstellungen.`,readGuide:`Lese die Einrichtungsanleitung vor dem Aktivieren`},archiveNameSource:{title:`Quelle des Archivnamens`,description:`Lege fest, wie neue Archive benannt werden, wenn Dateien über den virtuellen Drucker eintreffen. "Metadaten" verwendet den im 3MF eingebetteten Titel des Slicers (Standard). "Dateiname" nutzt den Dateinamen, den Bambu Studio per FTP gesendet hat. Hinweis: Bambu Studio überschreibt den im Dialog "Zum Drucker senden" eingegebenen Namen mit dem Titelfeld der 3MF, sofern eines vorhanden ist — beide Modi liefern daher oft denselben Wert.`,metadata:`Metadaten`,filename:`Dateiname`},caCert:{title:`Slicer-Zertifikat`,description:`Virtuelle Drucker verwenden ein TLS-Zertifikat, das von der Bambuddy-CA signiert ist. Importieren Sie dieses CA-Zertifikat einmalig in den Vertrauensspeicher Ihres Slicers, damit er die Verbindung akzeptiert — kein Abrufen über die Kommandozeile mehr nötig.`,copy:`Kopieren`,copied:`Kopiert`,download:`Herunterladen`,fingerprint:`SHA-256`},howItWorks:{title:`So funktioniert es`,step1:`Im selben LAN erscheinen virtuelle Drucker automatisch in deinem Slicer (Bambu Studio / OrcaSlicer). Aus anderen Netzwerken füge sie manuell per IP-Adresse und Zugangscode hinzu.`,step2:`Im Archiv-, Überprüfungs- und Warteschlangen-Modus verwende die "Senden"-Funktion im Slicer, um 3MF-Dateien an Bambuddy zu senden. Der Slicer zeigt "Druck erfolgreich" — die Datei wird gespeichert, nicht gedruckt.`,step3:`Im Proxy-Modus leitet der virtuelle Drucker den gesamten Datenverkehr an einen echten Drucker weiter — Drucke starten sofort wie bei einer direkten Verbindung.`},status:{title:`Status-Details`,printerName:`Druckername`,model:`Modell`,serialNumber:`Seriennummer`,mode:`Modus`,pendingFiles:`Ausstehende Dateien`,targetPrinter:`Zieldrucker`,ftpPort:`FTP-Port`,mqttPort:`MQTT-Port`,ftpConnections:`FTP-Verbindungen`,mqttConnections:`MQTT-Verbindungen`},toast:{updated:`Virtuelle Druckereinstellungen aktualisiert`,failedToUpdate:`Einstellungen konnten nicht aktualisiert werden`,copyFailed:`Kopieren fehlgeschlagen — bitte Text manuell markieren`,accessCodeRequired:`Bitte zuerst einen Zugangscode setzen`,targetPrinterRequired:`Bitte zuerst einen Zieldrucker auswählen`,bindIpRequired:`Bitte zuerst eine Bind-IP setzen`,accessCodeEmpty:`Zugangscode darf nicht leer sein`,accessCodeLength:`Zugangscode muss genau 8 Zeichen lang sein`,targetCodeChangedRebind:`Zugangscode wurde an den neuen Zieldrucker angepasst. Bitte dieses Gerät im Slicer neu hinzufügen, damit der neue Code übernommen wird.`,created:`Virtueller Drucker erstellt`,failedToCreate:`Virtueller Drucker konnte nicht erstellt werden`,deleted:`Virtueller Drucker gelöscht`,failedToDelete:`Virtueller Drucker konnte nicht gelöscht werden`},list:{title:`Virtuelle Drucker`,add:`Hinzufügen`,addFirst:`Virtuellen Drucker hinzufügen`,empty:`Keine virtuellen Drucker konfiguriert. Fügen Sie einen hinzu, um zu beginnen.`},bindIp:{title:`Bind-Interface`,placeholder:`Interface auswählen...`,hint:`Netzwerkinterface, an das dieser virtuelle Drucker gebunden wird. Muss pro Drucker eindeutig sein.`},proxy:{accessCodeHint:`Im Proxy-Modus den Zugangscode des Zieldruckers im Slicer verwenden. Die Verbindung wird transparent zum echten Drucker weitergeleitet.`},addDialog:{title:`Virtuellen Drucker hinzufügen`,name:`Name`,hint:`Sie können Zugangscode, Zieldrucker und andere Einstellungen nach dem Erstellen konfigurieren.`,create:`Erstellen`},deleteConfirm:{title:`Virtuellen Drucker löschen`,message:`Möchten Sie "{{name}}" wirklich löschen? Dies stoppt alle Dienste für diesen Drucker.`}},modelViewer:{openInSlicer:`Im Slicer öffnen`,tabs:{model:`3D-Modell`,gcode:`G-Code Vorschau`},notAvailable:`nicht verfügbar`,notSliced:`nicht geslicet`,plates:`Platten`,allPlates:`Alle Platten`,plateNumber:`Platte {{number}}`,plateCount:`{{count}} Platte`,plateCount_other:`{{count}} Platten`,objectCount:`{{count}} Objekt`,objectCount_other:`{{count}} Objekte`,filamentCount:`{{count}} Filament`,filamentCount_other:`{{count}} Filamente`,eta:`ETA {{minutes}} Min`,noPreview:`Keine Vorschau für diese Datei verfügbar`,pagination:{pageOf:`Seite {{current}} von {{total}}`,prev:`Zurück`,next:`Weiter`},errors:{failedToLoad:`Datei konnte nicht geladen werden`,noMeshes:`Keine Meshes in 3MF-Datei gefunden`,unsupportedFormat:`Nicht unterstütztes Dateiformat`}},maintenanceDescriptions:{lubricateCarbonRods:`Schmiermittel auf Karbonstäbe für sanfte Bewegung auftragen`,lubricateRails:`Schmiermittel auf Linearschienen für sanfte Bewegung auftragen`,cleanNozzle:`Hotend und Düse reinigen, um Verstopfungen zu verhindern`,checkBelts:`Riemenspannung für präzise Drucke überprüfen`,cleanBuildPlate:`Druckplatte für bessere Haftung reinigen`,checkExtruder:`Extruderzahnräder auf Verschleiß prüfen`,checkCooling:`Sicherstellen, dass Lüfter ordnungsgemäß funktionieren`,generalInspection:`Allgemeine Druckerinspektion`,cleanCarbonRods:`Karbonstäbe reinigen, um Reibung zu reduzieren`,lubricateSteelRods:`Schmiermittel auf Stahlstangen für sanfte Bewegung auftragen`,cleanSteelRods:`Stahlstangen reinigen, um Reibung zu reduzieren`,cleanLinearRails:`Linearschienen abwischen, um Staub und Schmutz zu entfernen`,checkPtfeTube:`PTFE-Schlauch auf Verschleiß oder Beschädigung prüfen`,replaceHepaFilter:`HEPA-Filter für Luftqualität ersetzen`,replaceCarbonFilter:`Aktivkohlefilter ersetzen`,lubricateLeftNozzleRail:`Linke Düsenschiene schmieren (H2-Serie)`},smartPlugs:{offline:`Offline`,admin:`Admin`,openPlugAdminPage:`Plug-Admin-Seite öffnen`,deleteSmartPlug:`Smart Plug löschen`,turnOnSmartPlug:`Smart Plug einschalten`,turnOffSmartPlug:`Smart Plug ausschalten`,turnOn:`Einschalten`,turnOff:`Ausschalten`,addSmartPlug:{scanningNetwork:`Netzwerk wird durchsucht...`,chooseEntity:`Entität auswählen...`,connectionFailed:`Verbindung fehlgeschlagen`,searchEntities:`Entitäten suchen...`,searchPowerSensors:`Leistungssensoren suchen...`,searchEnergySensors:`Energiesensoren suchen...`,placeholders:{plugName:`Wohnzimmer Steckdose`,mqttStateOnValue:`ON, true, 1`,mqttSameAsPower:`Gleich wie Leistungs-Topic oder anders`}},linkedTo:`Verbunden mit:`,monitorOnly:`Nur Überwachung`,alerts:`Alarme`,scheduleOn:`Ein {{time}}`,scheduleOff:`Aus {{time}}`,on:`Ein`,off:`Aus`,power:`Leistung`,kwhToday:`kWh Heute`,settings:`Einstellungen`,automationSettings:`Automatisierungseinstellungen`,showInSwitchbar:`In Schaltleiste anzeigen`,quickAccessSidebar:`Schnellzugriff über Seitenleiste`,enabled:`Aktiviert`,enableAutomation:`Automatisierung für diesen Stecker aktivieren`,autoOn:`Auto Ein`,autoOnDescription:`Einschalten wenn Druck startet`,autoOff:`Auto Aus`,autoOffDescription:`Ausschalten wenn Druck abgeschlossen (einmalig)`,autoOffPersistent:`Aktiviert lassen`,autoOffPersistentDescription:`Zwischen Drucken aktiviert bleiben statt einmalig`,controlsPrinterPower:`Versorgt den Drucker`,controlsPrinterPowerDescription:`Deaktivieren, wenn diese Steckdose nur Zubehör versorgt (Filterlüfter, Licht). Sonst wird der Drucker beim Ausschalten als offline markiert.`,autoOffAfterDrying:`Automatisch aus nach Trocknung`,autoOffAfterDryingDescription:`Ausschalten, wenn AMS-Trocknung abgeschlossen ist`,delayAfterDryingMinutes:`Verzögerung nach Trocknung (Minuten)`,turnOffDelayMode:`Ausschaltverzögerungsmodus`,time:`Zeit`,temp:`Temp.`,delayMinutes:`Verzögerung (Minuten)`,tempThreshold:`Temperaturschwelle (°C)`,tempThresholdDescription:`Schaltet aus wenn die Düse unter diese Temperatur abkühlt`,edit:`Bearbeiten`,deleteConfirm:`Möchten Sie "{{name}}" wirklich löschen? Dies kann nicht rückgängig gemacht werden.`,turnOnConfirm:`Möchten Sie "{{name}}" wirklich einschalten?`,turnOffConfirm:`Möchten Sie "{{name}}" wirklich ausschalten? Dies unterbricht die Stromversorgung des angeschlossenen Geräts.`,failedToTurn:`{{name}}" konnte nicht {{action}} werden`,unknown:`Unbekannt`,addTitle:`Smart Plug hinzufügen`,editTitle:`Smart Plug bearbeiten`,stopScanning:`Suche beenden`,discoverTasmota:`Tasmota Geräte suchen`,foundDevices:`{{count}} Gerät(e) gefunden - zum Auswählen klicken:`,noDevicesFound:`Keine Tasmota Geräte in Ihrem Netzwerk gefunden`,haNotConfigured:`Home Assistant ist nicht konfiguriert. Einrichtung unter`,haSettingsPath:`Einstellungen → Netzwerk → Home Assistant`,selectEntity:`Entität auswählen *`,ipAddress:`IP-Adresse *`,nameLabel:`Name *`,username:`Benutzername`,password:`Passwort`,authHint:`Leer lassen, wenn Ihr Tasmota-Gerät keine Authentifizierung benötigt`,linkToPrinter:`Mit Drucker verbinden`,noPrinter:`Kein Drucker (nur manuelle Steuerung)`,linkingDescription:`Verknüpfung ermöglicht automatisches Ein-/Ausschalten bei Druckstart/-ende`,powerAlerts:`Leistungsalarme`,alertAbove:`Alarm wenn über (W)`,alertBelow:`Alarm wenn unter (W)`,alertDescription:`Benachrichtigung wenn der Stromverbrauch diese Schwellenwerte überschreitet. Leer lassen um diese Richtung zu deaktivieren.`,dailySchedule:`Tagesplan`,turnOnAt:`Einschalten um`,turnOffAt:`Ausschalten um`,scheduleDescription:`Den Stecker automatisch täglich zu diesen Zeiten ein-/ausschalten. Leer lassen um diese Aktion zu überspringen.`,showOnPrinterCard:`Auf Druckerkarte anzeigen`,displayOnPrinterCard:`Schaltfläche auf Druckerkarte anzeigen`,connectedResult:`Verbunden!`,deviceLabel:`Gerät: {{name}} - `,stateLabel:`Status: {{state}}`,test:`Test`,delete:`Löschen`,save:`Speichern`,add:`Hinzufügen`,cancel:`Abbrechen`,failedToStartScan:`Suche konnte nicht gestartet werden`,nameRequired:`Name ist erforderlich`,entityRequired:`Entität ist für Home Assistant Stecker erforderlich`,mqttTopicRequired:`Mindestens ein MQTT-Topic muss für Leistung, Energie oder Statusüberwachung konfiguriert sein`,loadingEntities:`Entitäten werden geladen...`,loading:`Laden...`,failedToLoadEntities:`Entitäten konnten nicht geladen werden: {{error}}`,noEntitiesMatching:`Keine Entitäten gefunden die "{{search}}" entsprechen`,noEntitiesAvailable:`Keine Entitäten verfügbar`,searchingEntities:`Alle Entitäten durchsuchen ({{count}} gefunden)`,showingEntities:`Zeige switch, light, input_boolean ({{count}} verfügbar)`,energyMonitoringOptional:`Energieüberwachung (Optional)`,energyMonitoringHint:`Sensoren suchen und auswählen, die Leistungs-/Energiedaten liefern.`,powerSensorW:`Leistungssensor (W)`,energyTodayKwh:`Energie Heute (kWh)`,totalEnergyKwh:`Gesamtenergie (kWh)`,noMatchingSensors:`Keine passenden Sensoren`,none:`Keine`,mqttNotConfigured:`MQTT-Broker nicht konfiguriert. Broker-Adresse einstellen unter`,mqttSettingsPath:`Einstellungen → Netzwerk → MQTT-Veröffentlichung`,mqttNotConfiguredSuffix:`(Sie müssen die Veröffentlichung nicht aktivieren, nur die Broker-Details ausfüllen).`,mqttMonitorOnlyDescription:`MQTT-Stecker empfangen Leistungs-/Energiedaten über MQTT-Abonnement. Ein-/Ausschalten ist nicht verfügbar - verwenden Sie Ihren MQTT-Broker oder Ihr Home-Automation-System.`,powerMonitoring:`Leistungsüberwachung`,energyMonitoring:`Energieüberwachung`,stateMonitoring:`Statusüberwachung`,optional:`optional`,topic:`Thema`,jsonPath:`JSON-Pfad`,multiplier:`Multiplikator`,onValue:`EIN-Wert`,mqttPowerHint:`JSON-Pfad extrahiert Wert aus JSON-Payload (z.B. "power_l1"). Leer lassen wenn Topic rohe numerische Werte sendet.
+ON value: the exact string that means "ON". Leave empty for auto-detect (ON, true, 1).`,restControl:`Control`,restOnUrl:`Turn ON URL`,restOffUrl:`Turn OFF URL`,restOnBody:`ON Request Body`,restOffBody:`OFF Request Body`,restMethod:`HTTP Method`,restHeaders:`Custom Headers (JSON)`,restStatusUrl:`Status URL`,restStatusPath:`State JSON Path`,restStatusOnValue:`ON Value`,restPowerUrl:`Power URL`,restPowerPath:`Power JSON Path`,restPowerMultiplier:`Power Multiplier`,restEnergyUrl:`Energy URL`,restEnergyPath:`Energy JSON Path (today)`,restEnergyTotalPath:`Energy JSON Path (lifetime)`,restEnergyTotalMultiplier:`Lifetime Multiplier`,restEnergyTotalPathHint:`e.g. aenergy.total`,restEnergyTotalHint:`Many plugs — every Shelly among them — report only a lifetime counter that never resets. It belongs here, not in the field above: read as today's usage it would never reset at midnight, and Yesterday and Total would stay empty. Bambuddy works Today and Yesterday out from it, which takes a day or two of readings to fill in. A Shelly reports watt-hours, so use a multiplier of 0.001.`,restEnergyMultiplier:`Energy Multiplier`,restUrlRequired:`At least one URL (ON or OFF) is required for REST plugs`,restHeadersHint:`e.g. {"Authorization": "Bearer your-token"}`,restBodyHint:`e.g. ON, {"state": "on"}`,restStatusHint:`URL to poll for current state`,restPathHint:`e.g. state or data.power.status`,restPowerUrlHint:`Separate URL for power data (uses Status URL if empty)`,restEnergyUrlHint:`Separate URL for energy data (uses Status URL if empty)`,restEnergyHint:`Each value can use its own URL or fall back to the Status URL. Use multipliers for unit conversion (e.g. 0.001 to convert Wh to kWh).`,testConnection:`Test Connection`,connectionSuccess:`Connection successful`,noSwitchesInSwitchbar:`No switches in switchbar`,enableSwitchbarHint:`Enable "Show in Switchbar" in Settings > Smart Plugs`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`Email`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`SMTP email notifications`,telegram:`Notifications via Telegram bot`,discord:`Send to Discord channel via webhook`,ntfy:`Free, self-hostable push notifications`,pushover:`Simple, reliable push notifications`,callmebot:`Free WhatsApp notifications via CallMeBot`,webhook:`Generic HTTP POST to any URL`,homeassistant:`Persistent notifications in Home Assistant dashboard`,bark:`iOS push notifications via Bark (self-hostable)`},lastSuccess:`Last: {{date}}`,error:`Error`,printer:`Printer:`,allPrinters:`All printers`,sendTestNotification:`Send Test Notification`,eventSettings:`Event Settings`,enabled:`Enabled`,sendFromProvider:`Send notifications from this provider`,printEvents:`Print Events`,printerStatus:`Printer Status`,amsAlarms:`AMS Alarms`,amsHtAlarms:`AMS-HT Alarms`,printQueue:`Print Queue`,start:`Start`,plateCheck:`Plate Check`,complete:`Complete`,failed:`Failed`,stopped:`Stopped`,progress:`Progress`,offline:`Offline`,lowFilament:`Low Filament`,maintenance:`Maintenance`,amsHumidity:`AMS Humidity`,amsTemp:`AMS Temp`,amsHtHumidity:`AMS-HT Humidity`,amsHtTemp:`AMS-HT Temp`,bedCooled:`Bed Cooled`,firstLayer:`First Layer`,quiet:`Quiet`,digest:`Digest {{time}}`,printStarted:`Print Started`,plateNotEmpty:`Plate Not Empty`,plateNotEmptyDescription:`Objects detected before print`,plateClearRequired:`Plate Clear Required`,plateClearRequiredDescription:`Print finished, queue waits for plate confirmation`,plateClear:`Plate Clear`,printCompleted:`Print Completed`,bedCooledLabel:`Bed Cooled`,bedCooledDescription:`Bed cooled below threshold after print`,firstLayerCompleteLabel:`First Layer Complete`,firstLayerCompleteDescription:`Notify with snapshot when first layer finishes`,missingSpoolAssignmentLabel:`Missing Spool Assignment`,missingSpoolAssignmentDescription:`Notify when print starts and required trays have no assigned spool`,printFailed:`Print Failed`,printStopped:`Print Stopped`,progressMilestones:`Progress Milestones`,progressMilestonesDescription:`Notify at 25%, 50%, 75%`,printerOffline:`Printer Offline`,printerError:`Printer Error`,aiFailureDetection:`AI Failure Detection`,aiFailureDetectionDescription:`Notify when Obico AI detects a possible print failure`,lowFilamentLabel:`Low Filament`,maintenanceDue:`Maintenance Due`,maintenanceDueDescription:`Notify when maintenance is needed`,amsHumidityHigh:`AMS Humidity High`,amsHumidityHighDescription:`Regular AMS humidity exceeds threshold`,amsTemperatureHigh:`AMS Temperature High`,amsTemperatureHighDescription:`Regular AMS temperature exceeds threshold`,amsHtHumidityHigh:`AMS-HT Humidity High`,amsHtHumidityHighDescription:`AMS-HT humidity exceeds threshold`,amsHtTemperatureHigh:`AMS-HT Temperature High`,amsHtTemperatureHighDescription:`AMS-HT temperature exceeds threshold`,inventoryAlerts:`Inventory Alerts`,stockReorderAlert:`Reorder Alert`,stockReorderAlertDescription:`SKU has reached its reorder point`,stockBreakAlert:`Stock Break Alert`,stockBreakAlertDescription:`Stock will run out before replenishment arrives`,jobAdded:`Job Added`,jobAddedDescription:`Job added to queue`,jobAssigned:`Job Assigned`,jobAssignedDescription:`Model-based job assigned to printer`,jobStarted:`Job Started`,jobStartedDescription:`Queue job started printing`,jobWaiting:`Job Waiting`,jobWaitingDescription:`Job waiting for filament or printer`,jobSkipped:`Job Skipped`,jobSkippedDescription:`Job skipped (previous failed)`,jobFailed:`Job Failed`,jobFailedDescription:`Job failed to start`,queueComplete:`Queue Complete`,queueCompleteDescription:`All queue jobs finished`,quietHours:`Quiet Hours`,noNotificationsDuring:`No notifications during these hours`,editProviderToChangeQuietHours:`Edit provider to change quiet hours`,dailyDigest:`Daily Digest`,batchNotifications:`Batch notifications into a single daily summary`,sendAt:`Send at {{time}}`,editProviderToChangeDigestTime:`Edit provider to change digest time`,edit:`Edit`,deleteProvider:`Delete Notification Provider`,deleteConfirm:`Are you sure you want to delete "{{name}}"? This cannot be undone.`,delete:`Delete`,addTitle:`Add Notification Provider`,editTitle:`Edit Notification Provider`,nameLabel:`Name *`,namePlaceholder:`My Notifications`,providerTypeLabel:`Provider Type *`,configuration:`Configuration`,testConfiguration:`Test Configuration`,printerFilter:`Printer Filter`,onlyFromPrinter:`Only send notifications for events from this printer`,quietHoursDnd:`Quiet Hours (Do Not Disturb)`,quietStart:`Start`,quietEnd:`End`,dailyDigestLabel:`Daily Digest`,sendDigestAt:`Send digest at`,digestCollected:`Events will be collected and sent as a single summary at this time`,notificationEvents:`Notification Events`,progressPercent:`(25%, 50%, 75%)`,bedCooledAfterPrint:`(after print completes)`,eventPriority:{sectionTitle:`ntfy Priority`,helpNtfy:`Pick a priority for each enabled event. ntfy uses these to escalate alerts (sound, visibility, push behavior). Levels not set here use the ntfy server default.`,min:`Min`,low:`Low`,default:`Default`,high:`High`,urgent:`Urgent`},cancel:`Cancel`,save:`Save`,add:`Add`,nameRequired:`Name is required`,fieldRequired:`{{field}} is required`,haDataInvalid:`The Data field must be a valid JSON object, e.g. {"priority": "high", "ttl": 0}`,phoneNumber:`Phone Number`,apiKey:`API Key`,serverUrl:`Server URL`,topic:`Topic`,authToken:`Auth Token`,userKey:`User Key`,appToken:`App Token`,priority:`Priority`,pushoverRetry:`Emergency Retry (s)`,pushoverExpire:`Emergency Expire (s)`,botToken:`Bot Token`,chatId:`Chat ID`,telegramThreadId:`Forum Topic ID`,telegramThreadIdHelp:`Optional. Posts into a single topic of a forum group — the last number in the topic link (t.me/c/.../25). Leave empty for the General topic.`,telegramThreadIdInvalid:`Forum Topic ID must be a number.`,smtpServer:`SMTP Server`,smtpPort:`SMTP Port`,security:`Security`,authentication:`Authentication`,username:`Username`,password:`Password`,fromEmail:`From Email`,toEmail:`To Email`,webhookUrl:`Webhook URL`,payloadFormat:`Payload Format`,authorization:`Authorization`,titleFieldName:`Title Field Name`,messageFieldName:`Message Field Name`,editTemplate:`Edit Template: {{name}}`,titleLabel:`Title`,bodyLabel:`Body`,titlePlaceholder:`Notification title...`,bodyPlaceholder:`Notification body...`,availableVariables:`Available Variables`,clickToInsert:`Click to insert at cursor position in body`,livePreview:`Live Preview`,hide:`Hide`,show:`Show`,loadingPreview:`Loading preview...`,enterTemplateContent:`Enter template content to see preview`,titlePreview:`Title:`,bodyPreview:`Body:`,resetToDefault:`Reset to Default`,titleRequired:`Title is required`,bodyRequired:`Body is required`,notificationLog:`Notification Log`,showFailedOnly:`Failed only`,last24Hours:`Last 24 hours`,last7Days:`Last 7 days`,last30Days:`Last 30 days`,last90Days:`Last 90 days`,justNow:`Just now`,noFailedNotifications:`No failed notifications`,noNotificationsLogged:`No notifications logged`,unknownProvider:`Unknown Provider`,logTitle:`Title`,logMessage:`Message`,logError:`Error`,logProvider:`Provider: {{type}}`,logTime:`Time: {{time}}`,refresh:`Refresh`,clearOld:`Clear Old`,statsSummary:`Last {{days}} days:`,statsNotifications:`notifications`,statsSent:`{{count}} sent`,statsFailed:`{{count}} failed`,eventTypes:{print_start:`Print Started`,print_complete:`Print Complete`,print_failed:`Print Failed`,print_stopped:`Print Stopped`,print_progress:`Progress`,printer_offline:`Printer Offline`,printer_error:`Printer Error`,filament_low:`Low Filament`,maintenance_due:`Maintenance Due`,test:`Test`},userEmail:{title:`Notifications`,emailNotifications:`Email Notifications`,emailNotificationsDesc:`Receive email notifications for your own print jobs. Emails are sent using the system SMTP settings configured in Advanced Authentication.`,sendingTo:`Notifications will be sent to`,noEmailWarning:`Your account does not have an email address. Contact an administrator to add one.`,printJobNotifications:`Print Job Notifications`,printJobNotificationsDesc:`Choose which events trigger email notifications for print jobs you submit.`,printJobStarts:`Print Job Starts`,printJobStartsDesc:`Get notified when your print job begins.`,printJobFinishes:`Print Job Finishes`,printJobFinishesDesc:`Get notified when your print job completes successfully.`,printErrors:`Print Errors`,printErrorsDesc:`Get notified when your print job fails or encounters an error.`,printJobStops:`Print Job Stops`,printJobStopsDesc:`Get notified when your print job is cancelled or stopped.`,saveSuccess:`Notification preferences saved.`,saveError:`Failed to save notification preferences.`}},richTextEditor:{bold:`Bold`,italic:`Italic`,underline:`Underline`,bulletList:`Bullet List`,numberedList:`Numbered List`,alignLeft:`Align Left`,alignCenter:`Align Center`,alignRight:`Align Right`,addLink:`Add Link`,removeLink:`Remove Link`},externalLinks:{title:`Sidebar Links`,sidebarLayout:`Sidebar`,sidebarLayoutDescription:`Show or hide built-in pages, add external links, and drag items to reorder the sidebar navigation.`,systemPages:`Bambuddy pages`,externalLinks:`External links`,visibleInSidebar:`Visible in sidebar`,hiddenFromSidebar:`Hidden from sidebar`,requiredInSidebar:`Required in sidebar`,hidePage:`Hide page`,showPage:`Show page`,settingsCannotBeHidden:`Settings cannot be hidden`,noLinksConfigured:`No external links configured`,deleteLink:`Delete Link`,removeCustomIcon:`Remove custom icon`,openInNewTab:`Open in new tab`,placeholders:{linkName:`My Link`}},keyboardShortcuts:{title:`Keyboard Shortcuts`,navigation:`Navigation`,archivesSection:`Archives`,kProfilesSection:`K-Profiles`,generalSection:`General`,shortcuts:{goToPrinters:`Go to Printers`,goToArchives:`Go to Archives`,goToQueue:`Go to Queue`,goToStats:`Go to Statistics`,goToProfiles:`Go to Cloud Profiles`,goToSettings:`Go to Settings`,focusSearch:`Focus search`,openUploadModal:`Open upload modal`,clearSelection:`Clear selection / blur input`,contextMenu:`Context menu on cards`,refreshProfiles:`Refresh profiles`,newProfile:`New profile`,exitSelectionMode:`Exit selection mode`,showHelp:`Show this help`},footer:`Press Esc or click outside to close`},notificationLog:{title:`Notification Log`,events:{printStarted:`Print Started`,printComplete:`Print Complete`,printFailed:`Print Failed`,printStopped:`Print Stopped`,progress:`Progress`,printerOffline:`Printer Offline`,printerError:`Printer Error`,lowFilament:`Low Filament`,maintenanceDue:`Maintenance Due`,test:`Test`},timeAgo:{justNow:`Just now`,minutesAgo:`{{minutes}}m ago`,hoursAgo:`{{hours}}h ago`}},restoreBackup:{title:`Restore Backup`,restoring:`Restoring...`,restoreComplete:`Restore Complete`,restoreFailed:`Restore Failed`,importSettings:`Import settings from a backup file`,pleaseWait:`Please wait while your data is being restored`,clickToSelect:`Click to select backup file (.json or .zip)`,howDuplicateHandling:`How duplicate handling works:`,categories:{printers:`Printers`,smartPlugs:`Smart Plugs`,notificationProviders:`Notification Providers`,filaments:`Filaments`,archives:`Archives`,pendingUploads:`Pending Uploads`,settingsTemplates:`Settings & Templates`},matchingInfo:{printers:`matched by serial number`,smartPlugs:`matched by IP address`,notificationProviders:`matched by name`,filaments:`matched by name + type + brand`,archives:`matched by content hash`,pendingUploads:`matched by filename`,settingsTemplates:`always overwritten`},replaceExisting:`Replace existing data`,keepExisting:`Keep existing data`,replaceDescription:`Overwrite items that already exist with backup data`,keepDescription:`Only restore items that don't already exist`,caution:`Caution:`,cautionText:`Overwriting will replace your current configurations with backup data. Printer access codes are never overwritten for security.`,itemsRestored:`Items Restored`,itemsSkipped:`Items Skipped`,restored:`Restored`,skipped:`Skipped (already exist)`,filesLabel:`Files (3MF, thumbnails, etc.)`,newApiKeysGenerated:`New API Keys Generated`,newApiKeysWarning:`These keys are only shown once. Copy them now!`,processingBackup:`Processing backup file...`,noDataFound:`No data was found to restore in the backup file.`,failedToRestore:`Failed to restore backup. Please check the file format.`},backupExport:{title:`Export Backup`,selectData:`Select data to include`,selectAll:`Select All`,selectNone:`Select None`,categoryDescriptions:{settings:`Language, theme, update preferences`,notifications:`ntfy, Pushover, Discord, etc.`,templates:`Custom message templates`,smartPlugs:`Tasmota plug configurations`,externalLinks:`Sidebar links to external services`,printers:`Printer info (access codes excluded)`,plateDetection:`Empty plate reference images`,filaments:`Filament types and costs`,maintenance:`Custom maintenance schedules`,archives:`All print data + files (3MF, thumbnails, photos)`,projects:`Projects, BOM items, and attachments`,pendingUploads:`Virtual printer uploads awaiting review`,apiKeys:`Webhook API keys (new keys generated on import)`},requiresPrinters:`Requires Printers to be selected`,zipFileWarning:`ZIP file will be created.`,zipFileDescription:`Includes all 3MF files, thumbnails, timelapses, and photos. This may take a while and result in a large file.`,includeAccessCodes:`Include Access Codes`,includeAccessCodesDescription:`For transferring to another machine`,includeAccessCodesWarning:`Access codes will be included in plain text. Keep this backup file secure!`,categoriesSelected:`{{selectedCount}} categories selected`},pendingUploads:{placeholders:{notes:`Add notes about this print...`},discardUpload:`Discard Upload`,archiveAllUploads:`Archive All Uploads`,discardAllUploads:`Discard All Uploads`,archive:`Archive`,timeAgo:{justNow:`Just now`,minutesAgo:`{{minutes}}m ago`,hoursAgo:`{{hours}}h ago`,daysAgo:`{{days}}d ago`}},apiBrowser:{placeholders:{requestBody:`JSON request body...`,searchEndpoints:`Search endpoints...`}},configureAmsSlot:{title:`Configure AMS Slot`,slotConfigured:`Slot Configured!`,configuringSlot:`Configuring slot:`,slotLabel:`{{ams}} Slot {{slot}}`,searchPresets:`Search presets...`,colorPlaceholder:`Color name or hex (e.g., brown, FF8800)`,clearCustomColor:`Clear custom color`,noCloudPresets:`No cloud presets. Login to Bambu Cloud to sync.`,noPresetsAvailable:`No presets available. Login to Bambu Cloud or import local profiles.`,noMatchingPresets:`No matching presets found.`,custom:`Custom`,builtin:`Built-in`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`Settings sent to printer`,filamentProfile:`Filament Profile`,kProfileLabel:`K Profile (Pressure Advance)`,filteringFor:`Filtering for: {{material}}`,noKProfile:`No K profile (use default 0.020)`,noMatchingKProfiles:`No matching K profiles found. Default K=0.020 will be used.`,otherKProfiles:`Other K profiles on this printer`,selectFilamentFirst:`Select a filament profile first`,kFromCalibration:`K={{value}} from printer calibration`,customColorLabel:`Custom Color (optional)`,presetColors:`{{name}} colors:`,showLessColors:`Show less colors`,showMoreColors:`Show more colors`,clear:`Clear`,hexLabel:`Hex: #{{hex}}`,resetting:`Resetting...`,resetSlot:`Reset Slot`,cancel:`Cancel`,configuring:`Configuring...`,configureSlot:`Configure Slot`},githubBackup:{title:`Git Backup`,history:`History`,downloadBackup:`Download Backup`,restoreBackup:`Restore Backup`,noBackupsYet:`No backups yet`},emailSettings:{placeholders:{fromName:`BamBuddy`}},tagManagement:{searchTags:`Search tags...`,renameTag:`Rename tag`,deleteTag:`Delete tag`},notificationTemplates:{placeholders:{title:`Notification title...`,body:`Notification body...`}},batchTag:{placeholders:{newTag:`Enter new tag...`}},photoGallery:{deletePhoto:`Delete Photo`},filamentHoverCard:{copySpoolUuid:`Copy spool UUID`},kProfilesView:{hasNote:`Has note`,copyProfile:`Copy profile`},layout:{openMenu:`Open menu`,noPermissionSystemInfo:`You do not have permission to view system information`},dashboard:{dragToReorder:`Drag to reorder`,hideWidget:`Hide widget`},notificationProviderCard:{deleteNotificationProvider:`Delete Notification Provider`},fileManagerModal:{closeFileManager:`Close file manager`,sortFiles:`Sort files`,goToParentFolder:`Go to parent folder`,threeView:`3D View`},embeddedCameraViewer:{refreshStream:`Refresh stream`,close:`Close`,zoomOut:`Zoom out`,resetZoom:`Reset zoom`,zoomIn:`Zoom in`,dragToResize:`Drag to resize`},timelapseViewer:{skipBack5s:`Skip back 5s`,skipForward5s:`Skip forward 5s`},notificationProviders:{descriptions:{email:`SMTP email notifications`,telegram:`Notifications via Telegram bot`,discord:`Send to Discord channel via webhook`,ntfy:`Free, self-hostable push notifications`,pushover:`Simple, reliable push notifications`,callmebot:`Free WhatsApp notifications via CallMeBot`,webhook:`Generic HTTP POST to any URL`}},logViewer:{searchPlaceholder:`Search message or logger name...`,noLogEntries:`No log entries found`},switchbarPopover:{noSwitchesInSwitchbar:`No switches in switchbar`},projectPageModal:{placeholders:{title:`Title`,designer:`Designer`,license:`License`,description:`Enter description...`,profileTitle:`Profile Title`,profileDescription:`Profile description...`}},spoolmanSettings:{},time:{unknown:`-`,waiting:`Waiting`,justNow:`Just now`,now:`Now`,minsAgo:`{{count}}m ago`,inMins:`in {{count}}m`,hoursAgo:`{{count}}h ago`,inHours:`in {{count}}h`,daysAgo:`{{count}}d ago`,inDays:`in {{count}}d`},spoolbuddy:{nav:{dashboard:`Dashboard`,ams:`AMS`,inventory:`Inventory`,writeTag:`Write`,settings:`Settings`},status:{nfcReady:`NFC Ready`,nfcOff:`NFC Off`,offline:`Offline`,online:`Online`,noPrinters:`No printers`,deviceOffline:`Device Offline`,waitingConnection:`Waiting for device connection...`,systemReady:`System Ready`,status:`Status`},dashboard:{readyToScan:`Ready to scan`,idleMessage:`Place a spool on the scale to identify it`,nfcHint:`NFC tag will be read automatically`,device:`Device`,syncWeight:`Sync Weight`,weightSynced:`Synced!`,unknownTag:`Unknown Tag`,newTag:`New Tag Detected`,onScale:`on scale`,linkSpool:`Link to Spool`,linkTagTitle:`Link Tag to Spool`,linkTag:`Link Tag`,selectSpool:`Select a spool to link this tag to:`,noUntagged:`No spools without tags found`,tagDetected:`Tag detected`,noTag:`No tag`,tagId:`Tag`,grossWeight:`Gross weight`,spoolSize:`Spool size`,close:`Close`,currentSpool:`Current Spool`,plateReady:`Plate ready: {{name}}`,plateReadyLabel:`Plates ready to clear`,plateClearAction:`Clear`,plateClearedToast:`Plate marked as cleared`,plateClearFailed:`Could not mark plate as cleared`},modal:{spoolDetected:`Spool Detected`,assignToAms:`Assign to AMS`,syncWeight:`Sync Weight`,weightSynced:`Synced!`,syncing:`Syncing...`,newTagDetected:`New Tag Detected`,addToInventory:`Add to Inventory`,assignToAmsTitle:`Assign to AMS`,selectSlot:`Select a slot`,assign:`Assign`,assigning:`Assigning...`,assignSuccess:`Assigned!`,assignPendingInsert:`Assigned. Slot will configure when you insert the spool.`,assignError:`Failed to assign spool. Please try again.`,noPrinterSelected:`Select a printer...`,noAmsDetected:`No AMS detected on this printer`,slot:`Slot`},weight:{noReading:`No reading`,stable:`Stable`,measuring:`Measuring...`,tare:`Tare`,calibrate:`Calibrate`},spool:{remaining:`Remaining`,material:`Material`,brand:`Brand`,color:`Color`,coreWeight:`Core`,labelWeight:`Label`,scaleWeight:`Scale`,netWeight:`Net`,lastUsed:`Last used`},ams:{noData:`No AMS detected`,connectAms:`Connect an AMS to see filament slots`,noPrinter:`No printer selected`,selectPrinter:`Select a printer from the top bar`,printerDisconnected:`Printer disconnected`,humidity:`Humidity`,level:`Level`,active:`Active`,slot:`Slot`,empty:`Empty`},inventory:{search:`Search spools...`,empty:`No spools in inventory`,noResults:`No matching spools`,spools:`spools`,addSpool:`Add Spool`},settings:{tabDevice:`Device`,tabDisplay:`Display`,tabScale:`Scale`,tabUpdates:`Updates`,nfcReader:`NFC Reader`,type:`Type`,connection:`Connection`,notConnected:`N/A`,deviceInfo:`Device Info`,hostname:`Host`,uptime:`Uptime`,systemConfig:`Backend & Auth`,backendUrl:`Bambuddy Backend URL`,apiToken:`API Token`,apiTokenPlaceholder:`Enter API token`,saveConfig:`Save Config`,systemQueued:`Config queued.`,nfcDiagnostic:`NFC Diagnostic`,scaleDiagnostic:`Scale Diagnostic`,readTagDiagnostic:`Read Tag Diagnostic`,testNfc:`Test reader`,testScale:`Test accuracy`,testReadTag:`Read tag`,systemFieldsRequired:`Backend URL is required.`,brightness:`Brightness`,saved:`Saved`,noBacklight:`No DSI backlight detected. Brightness control requires a DSI display.`,screenBlank:`Screen Blank Timeout`,screenBlankDesc:`Screen turns off after inactivity. Touch to wake.`,displayNote:`Brightness is applied as a software filter.`,scaleCalibration:`Scale Calibration`,currentWeight:`Current weight`,tareOffset:`Tare`,calFactor:`Factor`,knownWeight:`Known weight`,calStep1:`Remove all items from the scale and press Set Zero.`,calStep2:`Place known weight on scale.`,setZero:`Set Zero`,calibrateNow:`Calibrate`,calibrated:`Calibrated`,tareSet:`Tare command sent. Waiting for device...`,tareComplete:`Tare complete!`,tareTimedOut:`Tare timed out — is the SpoolBuddy daemon running?`,tareFailed:`Failed to send tare command`,zeroSet:`Zero point set. Place known weight on scale.`,calibrationDone:`Calibration complete!`,calibrationFailed:`Calibration failed`,lastCalibrated:`Last calibrated`,stable:`Stable`,settling:`Settling...`,firmware:`Firmware`,scale:`Scale`,noDevice:`No SpoolBuddy device found`,daemonVersion:`Daemon Version`,currentVersion:`Current`,versionPending:`Waiting for daemon...`,checking:`Checking...`,checkUpdates:`Check for Updates`,updateAvailable:`Update available`,updateInstructions:`Update via SSH: run the SpoolBuddy install script to upgrade.`,upToDate:`Up to date`,includeBeta:`Include beta versions`},writeTag:{tabExisting:`Existing Spool`,tabNew:`New Spool`,tabReplace:`Replace Tag`,searchPlaceholder:`Search by material, color, brand...`,noUntaggedSpools:`No spools without tags`,noTaggedSpools:`No spools with tags`,selectSpool:`Select a spool, then place a blank NTAG on the reader`,placeTag:`Place an NTAG on the reader`,tagReady:`Tag detected — ready to write`,writeTag:`Write Tag`,replaceTag:`Replace Tag`,writing:`Writing tag...`,waiting:`Waiting for SpoolBuddy...`,writeSuccess:`Tag written successfully!`,writeFailed:`Write failed`,queueFailed:`Failed to queue write command`,tryAgain:`Try Again`,cancel:`Cancel`,replaceWarning:`Old tag will be unlinked. New tag will replace it.`,deviceOffline:`SpoolBuddy is offline`,material:`Material`,colorName:`Color Name`,color:`Color`,brand:`Brand`,weight:`Weight (g)`,createSpool:`Create Spool`,creating:`Creating...`,spoolCreated:`Spool created! Ready to write.`,createFailed:`Failed to create spool`,incompleteDataWarning:`Tag written with incomplete Spoolman data`},quickMenu:{printerPower:`Printer Power`,systemControls:`System`,restartDaemon:`Restart Daemon`,restartBrowser:`Restart Browser`,reboot:`Reboot`,shutdown:`Shutdown`,swipeToClose:`Swipe down to close`,confirmTitle:`Confirm`,confirmShutdown:`Are you sure you want to shut down the SpoolBuddy? You will need physical access to turn it back on.`,confirmReboot:`Are you sure you want to reboot the SpoolBuddy?`,confirmRestartDaemon:`Restart the SpoolBuddy daemon? NFC and scale will be temporarily unavailable.`,confirmRestartBrowser:`Restart the kiosk browser? The display will briefly go blank.`,confirm:`Confirm`,confirmPlugOn:`Turn on {{name}}?`,confirmPlugOff:`Turn off {{name}}?`,turnOn:`Turn On`,turnOff:`Turn Off`}},diagnostic:{modalTitle:`Connection diagnostic — {{name}}`,running:`Running diagnostic...`,runningElapsed:`Running diagnostic... ({{elapsed}}s)`,waitingForReportHint:`Listening for the printer to publish a status report — this can take up to {{max}} seconds.`,runFailed:`Diagnostic could not run: {{error}}`,retry:`Run again`,runButton:`Run diagnostic`,sectionTitle:`Connection Diagnostic`,sectionDescription:`Check why a printer won't connect or won't print — port reachability, LAN developer mode, Docker network mode, and credentials.`,noPrinters:`No printers configured.`,overall:{ok:`No problems found — the printer connection looks healthy.`,warnings:`The printer should work, but some things need attention.`,problems:`Found problems that explain why the printer won't connect or print.`},check:{port_mqtt:{title:`Control port (MQTT 8883)`,pass:`Reachable — the printer is accepting control connections.`,fail:`Port 8883 is unreachable. The printer is powered off, on a different IP address, or a firewall is blocking it. Verify the printer IP and that nothing blocks port 8883.`},port_ftps:{title:`File transfer port (FTPS 990)`,pass:`Reachable — sending print files will work.`,warn:`Port 990 is unreachable. Monitoring may still work, but sending prints to the printer will fail. Make sure port 990 is not blocked.`},external_storage:{title:`Store sent files on external storage (install step 4)`,pass:`The printer reports this option is on — sent files will be stored on the SD card and archives will have thumbnails and slicer metadata.`,fail:`The printer reports this option is off. Enable "Store sent files on external storage" — on newer firmware (P2S 01.02 / Bambu Studio 2.6+) the toggle lives on the printer's Print Settings; on older versions it's in Bambu Studio / OrcaSlicer's Device tab. Without it, every archived print is missing its thumbnail and slicer metadata.`,skip:`Not checked — needs a live MQTT connection. On older slicers where this setting lives only in the slicer the printer never reports it, so this check will pass even when the option is off — verify install step 4 manually.`,skip_unsupported_model:`This model has an SD slot but no way to turn the option on — current P1-series firmware doesn't expose the toggle in Bambu Studio and the printer has no screen. Nothing to fix here; archived prints may lack thumbnails and slicer metadata until Bambu Lab adds firmware support.`},port_rtsps:{title:`Camera port ({{protocol}} {{port}})`,pass:`Reachable — the camera stream will work.`,warn:`Port {{port}} is unreachable. The live camera view will not work. This does not affect printing.`},network_mode:{title:`Docker network mode`,pass:`Running in host network mode.`,warn:`Bambuddy is running in Docker bridge networking. Printer discovery and the Virtual Printer need host network mode — recreate the container with "network_mode: host".`,skip:`Not running in Docker — not applicable.`},subnet:{title:`Network subnet`,pass:`The printer and Bambuddy are on the same subnet.`,warn:`The printer ({{printer_ip}}) and Bambuddy ({{host_ip}}) are on different subnets. They may not reach each other unless routing between the subnets is configured.`,skip:`Subnet could not be determined — skipped.`},mqtt_auth:{title:`Printer credentials`,pass:`The printer accepted the connection.`,fail:`The printer is reachable but Bambuddy is not connected to it. The access code or serial number is most likely wrong — the access code changes every time LAN Only or Developer Mode is toggled, so re-copy it from the printer screen. A printer that is rebooting, or already at its limit of simultaneous connections, can look the same.`,fail_auth_rejected:`The printer refused Bambuddy's credentials. The access code or serial number is wrong — the access code changes every time LAN Only or Developer Mode is toggled, so re-copy it from the printer screen and save it in the printer settings.`,skip:`Not checked — the printer could not be reached.`},developer_mode:{title:`LAN Developer Mode`,pass:`Developer Mode is enabled.`,fail:`Developer Mode is OFF on the printer. Enable it in the printer's LAN settings — and confirm with OK. Without it, prints will not start.`,skip:`Could not be checked — requires a live connection to the printer.`},printer_publishing:{title:`Printer is publishing status`,pass:`The printer is publishing status updates — AMS, filaments, and K-profiles will mirror correctly to the slicer.`,fail:`The MQTT broker accepted the connection but the printer has not published any status reports. This is almost always a wrong or mis-cased serial number — the device//api/v1/metrics für Prometheus/Grafana-Überwachung bereitstellen.`,bearerTokenOptional:`Bearer-Token (optional)`,bearerTokenHint:`Wenn gesetzt, müssen Anfragen Authorization: Bearer enthalten`,metricsConnectionStatus:`Verbindungsstatus`,metricsPrinterState:`Druckerstatus (idle/printing/etc)`,metricsPrintProgress:`Druckfortschritt 0-100%`,metricsBedTemp:`Betttemperatur`,metricsNozzleTemp:`Düsentemperatur`,metricsPrintsTotal:`Gesamtdrucke nach Ergebnis`,metricsMore:`...und mehr (Schichten, Lüfter, Warteschlange, Filamentverbrauch)`,smartPlugsDescription:`Smart Plugs (Tasmota oder Home Assistant) verbinden, um Stromsteuerung zu automatisieren und Energieverbrauch für Ihre Drucker zu verfolgen.`,allOn:`Alle Ein`,allOff:`Alle Aus`,addSmartPlug:`Smart Plug hinzufügen`,energySummary:`Energieübersicht`,currentPower:`Aktuelle Leistung`,plugsOnline:`{{reachable}}/{{total}} Plugs online`,today:`Heute`,yesterday:`Gestern`,total:`Gesamt`,enablePlugsForSummary:`Plugs aktivieren, um Energieübersicht zu sehen`,addNotificationProvider:`Hinzufügen`,systemBadge:`(System)`,creating:`Erstellen...`,changing:`Ändern...`,deleteUserAndItems:`Benutzer UND dessen Elemente löschen`,deleteUserKeepItems:`Benutzer löschen, Elemente behalten (werden herrenlos)`,ok:`OK`,twoFa:{totpTitle:`Authenticator-App (TOTP)`,totpDesc:`Verwende eine Authenticator-App wie Google Authenticator, Aegis oder Authy.`,emailOtpTitle:`E-Mail OTP`,emailOtpDesc:`Sende einen Einmalcode an {{email}} beim Einloggen.`,emailOtpNoEmail:`Füge eine E-Mail-Adresse zu deinem Konto hinzu, um diese Methode zu aktivieren.`,addEmailFirst:`Dein Konto hat keine E-Mail-Adresse. Bitte einen Administrator, eine hinzuzufügen.`,setupTotp:`Authenticator-App einrichten`,setupAuthApp:`Authenticator-App einrichten`,setupInstructions:`Scanne den QR-Code mit deiner Authenticator-App und bestätige mit einem Code.`,manualEntry:`Kein Scanner? Gib dieses Secret manuell ein:`,scannedContinue:`Code gescannt — weiter`,enterCodeToConfirm:`Gib den 6-stelligen Code aus deiner Authenticator-App ein, um die Einrichtung zu bestätigen.`,activate:`Aktivieren`,disableTotp:`Authenticator deaktivieren`,disableConfirmHint:`Gib einen gültigen TOTP-Code oder einen Backup-Code ein, um den Authenticator zu deaktivieren.`,totpDisabled:`Authenticator-App deaktiviert.`,emailOtpEnabled:`E-Mail OTP aktiviert.`,emailOtpDisabled:`E-Mail OTP deaktiviert.`,smtpRequired:`Bitte konfigurieren und testen Sie zuerst die SMTP-Einstellungen.`,invalidCode:`Ungültiger Code. Bitte erneut versuchen.`,enableEmailOtp:`E-Mail OTP aktivieren`,disableEmailOtp:`E-Mail OTP deaktivieren`,emailSetupEnterCode:`Ein Bestätigungscode wurde an Ihre E-Mail-Adresse gesendet. Geben Sie ihn unten ein, um zu bestätigen, dass Ihnen dieses Postfach gehört.`,verifyAndEnable:`Verifizieren & Aktivieren`,emailDisablePasswordHint:`Geben Sie Ihr Kontopasswort ein, um die Deaktivierung des E-Mail OTP zu bestätigen.`,passwordPlaceholder:`Passwort eingeben`,backupCodesTitle:`Backup-Codes sichern`,backupCodesWarning:`Speichere diese Codes sicher. Jeder Code kann nur einmal verwendet werden und wird nicht erneut angezeigt.`,backupCodesRemaining:`{{count}} Backup-Codes verbleibend`,savedCodes:`Codes gespeichert`,regenBackup:`Backup-Codes neu generieren`,regenBackupHint:`Gib deinen aktuellen TOTP-Code ein, um 10 neue Backup-Codes zu generieren. Alle bestehenden Codes werden ungültig.`,newBackupCodes:`Neue Backup-Codes`,linkedAccounts:`Verknüpfte SSO-Konten`,linkedAccountsDesc:`Diese externen Identitätsanbieter sind mit deinem Konto verknüpft.`,oidcUnlinked:`Konto getrennt.`},sessionPolicy:{title:`Sitzungsrichtlinie`,description:`Maximale Sitzungsdauer für neue Benutzeranmeldungen. Bereits ausgegebene Token behalten ihren ursprünglichen Ablauf.`,preset24h:`24 Stunden`,preset7d:`7 Tage`,preset30d:`30 Tage`,customHoursLabel:`Individuelle Sitzungsdauer in Stunden`,hoursSuffix:`Stunden`,warning:`Längere Sitzungen reduzieren den automatischen Abmeldeschutz. Nur für vertrauenswürdige Einzelnutzer-Installationen empfohlen.`},oidc:{title:`SSO / OIDC-Anbieter`,desc:`Konfiguriere OpenID Connect-Anbieter für Single Sign-On.`,addProvider:`Anbieter hinzufügen`,newProvider:`Neuer Anbieter`,empty:`Noch keine OIDC-Anbieter konfiguriert.`,created:`Anbieter erstellt.`,updated:`Anbieter aktualisiert.`,deleted:`Anbieter gelöscht.`,refreshIcon:`Icon neu laden`,removeIcon:`Icon entfernen`,iconRefreshed:`Icon aktualisiert.`,iconRemoved:`Icon entfernt.`,iconFetchFailed:`Icon konnte von der Anbieter-URL nicht geladen werden.`,deleteTitle:`Anbieter löschen`,deleteMessage:`"{{name}}" löschen? Alle verknüpften Benutzerkonten werden getrennt.`,form:{name:`Anzeigename`,issuerUrl:`Aussteller-URL`,clientId:`Client-ID`,clientSecret:`Client-Secret`,scopes:`Bereiche`,iconUrl:`Symbol-URL (optional)`,enabled:`Aktiviert`,autoCreate:`Benutzer automatisch anlegen`,autoCreateDesc:`Erstellt beim ersten Login automatisch ein lokales Konto.`,autoLink:`Bestehende Konten automatisch verknüpfen`,autoLinkDesc:`Verknüpft beim ersten Login vorhandene lokale Konten anhand der E-Mail-Adresse.`,secretHint:`leer lassen zum Beibehalten`,secretPlaceholder:`neues Secret`,emailClaim:`E-Mail-Claim`,emailClaimDesc:`JWT-Claim für die E-Mail-Identität. Für Azure Entra ID 'preferred_username' oder 'upn' verwenden (sendet kein email_verified). Nur vertrauenswürdige Claim-Namen verwenden.`,emailClaimPlaceholder:`E-Mail`,emailClaimCustomClaimAutoLinkWarning:`Benutzerdefinierte Claims sind für die Auto-Verknüpfung nur sicher, wenn der Wert vom Mandanten verwaltet wird (z. B. Azure Entra ID upn / preferred_username). Aktiviere Auto-Verknüpfung nicht, wenn dein IdP Benutzern erlaubt, diesen Claim selbst zu setzen.`,requireEmailVerified:`E-Mail-Verifizierung erforderlich`,requireEmailVerifiedDesc:`E-Mail-Claim nur akzeptieren, wenn der Provider ihn als verifiziert markiert.`,requireEmailVerifiedWarning:`Warnung: E-Mail wird auch ohne Verifizierung akzeptiert. Nur bei vertrauenswürdigen Providern verwenden.`,requireEmailVerifiedAutoLink:`Auto-Verknüpfung zuerst deaktivieren, um diese Einstellung zu ändern.`,defaultGroup:`Standardgruppe`,defaultGroupDesc:`Gruppe, der automatisch erstellte Benutzer zugewiesen werden. Fallback auf Viewers, wenn nicht gesetzt.`,defaultGroupViewersFallback:`Viewers (Standard)`,autologin:`Automatische Anmeldung`,autologinDesc:`Nicht angemeldete Besucher direkt zu diesem Anbieter weiterleiten. Diese Option kann nur für einen Anbieter aktiv sein.`}},encryption:{title:`MFA-Verschlüsselungsstatus`,enabledFromEnv:`At-Rest-Verschlüsselung aktiv (Schlüssel aus Umgebungsvariable MFA_ENCRYPTION_KEY)`,enabledFromFile:`At-Rest-Verschlüsselung aktiv (Schlüssel aus dem Datenverzeichnis geladen)`,enabledGenerated:`At-Rest-Verschlüsselung aktiv mit automatisch generiertem Schlüssel`,notConfigured:`At-Rest-Verschlüsselung nicht konfiguriert`,notConfiguredDesc:`TOTP-Geheimnisse und OIDC-Client-Secrets werden im Klartext gespeichert. Setze MFA_ENCRYPTION_KEY oder starte Bambuddy mit beschreibbarem Datenverzeichnis neu, damit ein Schlüssel automatisch erzeugt wird.`,allEncrypted:`Alle MFA-Geheimnisse sind verschlüsselt gespeichert.`,legacyRowsLabel:`Klartext-Zeilen (Altbestand)`,encryptedRowsLabel:`Verschlüsselte Zeilen`,legacyRowsWarning:`{{count}} Klartext-Zeile(n) erkannt. Den OIDC-Provider neu speichern oder den Authenticator des Benutzers neu einrichten, um die Daten verschlüsselt abzulegen.`,backupHint:`Der automatisch erzeugte Schlüssel liegt unter DATA_DIR/.mfa_encryption_key und wird in lokalen Backup-ZIPs mitgesichert. Backups sicher aufbewahren oder MFA_ENCRYPTION_KEY explizit setzen.`,decryptionBrokenTitle:`Verschlüsselungsschlüssel fehlt`,decryptionBrokenError:`{{count}} verschlüsselte Datensätze können nicht entschlüsselt werden, weil der Schlüssel nicht mehr verfügbar ist. Den vorherigen MFA_ENCRYPTION_KEY oder DATA_DIR/.mfa_encryption_key wiederherstellen.`,migrationErrorWarning:`{{count}} Legacy-Eintrag/Einträge konnten beim Start nicht verschlüsselt werden. Prüfen Sie die Server-Logs und starten Sie Bambuddy neu.`},pipelineLimits:{title:`Slicer-Pipeline-Limits`,maxCopiesLabel:`Max. Kopien pro Lauf`,maxCopiesDesc:`Obergrenze für die Anzahl an Kopien, die Operatoren beim Ausführen einer Pipeline anfordern können. Serverseitige Obergrenze ist 1000.`},pipelines:{title:`Slicer-Pipelines`,subtitle:`Wiederverwendbare Preset-Bundles (Drucker + Prozess + Filamente + Druckplatte). Speichere eines aus dem Slice-Dialog und wende es beim nächsten Datei-Slice mit einem Klick an.`,loading:`Pipelines werden geladen…`,loadError:`Pipelines konnten nicht geladen werden.`,confirmDelete:`Diese Pipeline löschen? Das kann nicht rückgängig gemacht werden.`,staleWarning:`Eines oder mehrere referenzierte Presets existieren nicht mehr. Speichere diese Pipeline erneut aus dem Slice-Dialog, um sie zu reparieren.`,empty:{title:`Noch keine Pipelines.`,howto:`Öffne den Slice-Dialog für eine beliebige Datei, wähle Drucker / Prozess / Filamente / Druckplatte und klicke „Als Pipeline speichern“. Deine gespeicherten Pipelines erscheinen hier.`},field:{name:`Pipeline-Name`,description:`Beschreibung`,targetPrinter:`Zieldrucker`,noTarget:`— Kein Ziel —`,targetKind:`Zielart`,targetKindSpecific:`Spezifischer Drucker`,targetKindClass:`Druckerklasse`,targetModelClass:`Druckermodell`,fanoutStrategy:`Verteilungsstrategie`,fanout:{max_parallel:`Max parallel — auf alle verfügbaren passenden Drucker verteilen`,round_robin:`Reihum — durch geeignete Drucker rotieren`,fill_one_first:`Erst einen füllen — alle Kopien an einen Drucker binden`},fanoutShort:{max_parallel:`parallel`,round_robin:`Reihum`,fill_one_first:`einer zuerst`}},action:{save:`Speichern`,cancel:`Abbrechen`,rename:`Umbenennen`,delete:`Löschen`},slot:{printer:`Drucker`,process:`Prozess`,filament:`Filament`,filamentN:`Filament {{n}}`,filamentAll:`Alle {{n}} Slots`,bed:`Druckplatte`},group:{profiles:`Profile`,filaments:`Filamente`},searchPlaceholder:`Pipelines durchsuchen…`,filterTargetType:`Nach Zielart filtern`,filterTarget:`Nach Ziel filtern`,filter:{all:`Alle Ziele`,noTarget:`Kein Ziel festgelegt`,count:`{{shown}} / {{total}}`,noMatches:`Keine Pipelines entsprechen den aktuellen Filtern.`},toast:{saved:`Pipeline gespeichert`,saveFailed:`Speichern fehlgeschlagen`,deleted:`Pipeline gelöscht`,deleteFailed:`Löschen fehlgeschlagen`},noTargetHint:`Lege einen Zieldrucker fest, um diese auszuführen`,noTargetWarning:`Lege einen Zieldrucker fest, bevor du diese Pipeline ausführst.`,runs:{lastRun:`Letzter Lauf`,status:{queued:`in Warteschlange`,slicing:`wird geschnitten`,dispatching:`wird gesendet`,in_progress:`druckt`,completed:`abgeschlossen`,failed:`fehlgeschlagen`,partial_failure:`teilweise fehlgeschlagen`,cancelled:`abgebrochen`}}}},notification:{printStarted:{title:`Druck gestartet`,body:`{{printer}}: {{filename}} wird gedruckt`},printCompleted:{title:`Druck abgeschlossen`,body:`{{printer}}: {{filename}} erfolgreich abgeschlossen`},printFailed:{title:`Druck fehlgeschlagen`,body:`{{printer}}: {{filename}} ist fehlgeschlagen`},printStopped:{title:`Druck gestoppt`,body:`{{printer}}: {{filename}} wurde gestoppt`},printProgress:{title:`Druckfortschritt`,body:`{{printer}}: {{filename}} ist zu {{percent}}% abgeschlossen`},printerOffline:{title:`Drucker offline`,body:`{{printer}} ist offline`},printerError:{title:`Druckerfehler`,body:`{{printer}} – {{error}}`},filamentLow:{title:`Filament niedrig`,body:`{{printer}}: Filament geht zur Neige`},maintenanceDue:{title:`Wartung fällig`,body:`{{printer}}: {{items}} benötigen Aufmerksamkeit`}},errors:{generic:`Etwas ist schiefgelaufen`,networkError:`Netzwerkfehler. Bitte überprüfen Sie Ihre Verbindung.`,notFound:`Nicht gefunden`,unauthorized:`Nicht autorisiert`,serverError:`Serverfehler`,validationError:`Bitte überprüfen Sie Ihre Eingabe`,printerConnectionFailed:`Verbindung zum Drucker fehlgeschlagen`,saveFailed:`Speichern fehlgeschlagen`,deleteFailed:`Löschen fehlgeschlagen`,loadFailed:`Laden der Daten fehlgeschlagen`},hmsErrors:{title:`Fehler - {{name}}`,noErrors:`Keine Fehler`,viewOnWiki:`Im Bambu Lab Wiki ansehen`,mqttVerifyFailedRemedy:`Aktiviere den Entwicklermodus am Drucker, starte den Drucker neu und starte den Auftrag dann erneut.`,unknownCode:`Unbekannter HMS-Code — Details siehe Bambu Lab Wiki.`,clearInstructions:`Löschen Sie die Fehler am Drucker, um sie hier zu entfernen.`,clearErrors:`Fehler löschen`,clearSuccess:`HMS-Fehler gelöscht`,clearFailed:`HMS-Fehler konnten nicht gelöscht werden`,actionSuccess:`Aktion an Drucker gesendet`,actionFailed:`Aktion konnte nicht gesendet werden`,runoutExpectedSlot:`Das Filament in {{ranOut}} ist aufgebraucht. Der Drucker wartet jetzt auf kompatibles Filament in {{expected}}. Legen Sie eine Spule in {{expected}} ein und wählen Sie dann Wiederholen.`,runoutExpectedSlotOnly:`Der Drucker wartet auf kompatibles Filament in {{expected}}. Legen Sie dort eine Spule ein und wählen Sie dann Wiederholen.`,runoutSlotUnknown:`Das Filament ist aufgebraucht und der Druck ist pausiert. Bambuddy konnte nicht ermitteln, welchen Slot der Drucker jetzt erwartet — prüfen Sie am Druckerdisplay, welcher Slot angefordert wird.`,actions:{RESUME_PRINTING:`Druck fortsetzen`,RESUME_PRINTING_DEFECTS:`Fortsetzen (Mängel akzeptabel)`,RESUME_PRINTING_PROBELM_SOLVED:`Fortsetzen (Problem gelöst)`,STOP_PRINTING:`Druck stoppen`,CHECK_ASSISTANT:`Assistent öffnen`,FILAMENT_EXTRUDED:`Filament extrudiert, weiter`,RETRY_FILAMENT_EXTRUDED:`Noch nicht extrudiert, erneut`,CONTINUE:`Fertig, weiter`,LOAD_VIRTUAL_TRAY:`Filament laden`,OK_BUTTON:`OK`,FILAMENT_LOAD_RESUME:`Filament geladen, fortsetzen`,JUMP_TO_LIVEVIEW:`Live-Ansicht öffnen`,NO_REMINDER_NEXT_TIME:`Nicht mehr erinnern`,REFRESH_NOZZLE:`Erneut prüfen`,IGNORE_NO_REMINDER_NEXT_TIME:`Ignorieren und nicht mehr erinnern`,IGNORE_RESUME:`Ignorieren und fortsetzen`,PROBLEM_SOLVED_RESUME:`Problem gelöst, fortsetzen`,TURN_OFF_FIRE_ALARM:`Verstanden, Brandalarm ausschalten`,RETRY_PROBLEM_SOLVED:`Erneut versuchen (Problem gelöst)`,CANCLE:`Abbrechen`,STOP_DRYING:`Trocknen stoppen`,PROCEED:`Fortfahren`,OK_JUMP_RACK:`OK`,ABORT:`Abbrechen`,DISABLE_PURIFICATION:`Luftreinigung für diesen Druck deaktivieren`,DONT_REMIND_NEXT_TIME:`Nicht mehr erinnern`,DBL_CHECK_CANCEL:`Abbrechen`,DBL_CHECK_DONE:`Fertig`,DBL_CHECK_RETRY:`Erneut versuchen`,DBL_CHECK_RESUME:`Fortsetzen`,DBL_CHECK_OK:`Bestätigen`,REMOVE_CLOSE_BTN:`Schließen`}},mqttDebug:{title:`MQTT-Debug-Protokoll`,searchPlaceholder:`Topic oder Payload suchen...`,noMessages:`Noch keine Nachrichten protokolliert`,startLoggingHint:`Klicken Sie auf "Protokollierung starten", um MQTT-Nachrichten aufzuzeichnen`,noMessagesMatch:`Keine Nachrichten entsprechen Ihrem Filter`,adjustFilterHint:`Versuchen Sie, Ihre Such- oder Filterkriterien anzupassen`,incoming:`Eingehend`,outgoing:`Ausgehend`,loggingStopped:`Protokollierung gestoppt`,loggingActive:`Protokollierung aktiv - Nachrichten werden automatisch aktualisiert`,startLogging:`Protokollierung starten`,stopLogging:`Protokollierung stoppen`,clearLog:`Protokoll löschen`,topic:`Thema`,timestamp:`Zeitstempel`,direction:`Richtung`,all:`Alle`},printerFiles:{title:`Dateimanager`,storageUsed:`Belegt:`,storageFree:`Frei:`,filterPlaceholder:`Dateien filtern...`,deleteButton:`Löschen`,deleteFiles:`{{count}} Dateien löschen`,deleteFileConfirm:`"{{name}}" löschen? Dies kann nicht rückgängig gemacht werden.`,deleteFilesConfirm:`{{count}} ausgewählte Dateien löschen? Dies kann nicht rückgängig gemacht werden.`,noFiles:`Keine Dateien auf dem Drucker`,loadingFiles:`Dateien werden geladen...`,failedToLoad:`Dateien konnten nicht geladen werden`,toast:{filesDeleted:`{{count}} Datei(en) gelöscht`,deleteFailed:`Löschen fehlgeschlagen: {{error}}`}},confirm:{delete:`Möchten Sie dies wirklich löschen?`,unsavedChanges:`Sie haben ungespeicherte Änderungen. Möchten Sie wirklich verlassen?`,clearQueue:`Möchten Sie die Warteschlange wirklich leeren?`},login:{title:`Bambuddy Anmeldung`,subtitle:`Melden Sie sich bei Ihrem Konto an`,username:`Benutzername`,usernamePlaceholder:`Benutzername eingeben`,usernameOrEmail:`Benutzername oder E-Mail`,usernameOrEmailPlaceholder:`Benutzername oder @ E-Mail`,password:`Passwort`,passwordPlaceholder:`Passwort eingeben`,signIn:`Anmelden`,signingIn:`Anmeldung läuft...`,rememberMe:`Angemeldet bleiben`,forgotPassword:`Passwort vergessen?`,autologinFailed:`Automatische SSO-Anmeldung fehlgeschlagen. Bitte wählen Sie unten einen Anbieter.`,localDisabledNotice:`Lokale Anmeldung ist deaktiviert. Bitte verwenden Sie einen der SSO-Anbieter unten.`,loginSuccess:`Erfolgreich angemeldet`,loginFailed:`Anmeldung fehlgeschlagen`,enterCredentials:`Bitte Benutzername und Passwort eingeben`,enterEmail:`Bitte geben Sie Ihre E-Mail-Adresse ein`,oidcLoginFailed:`OIDC-Anmeldung fehlgeschlagen`,oidcErrors:{providerError:`Der Identity-Provider hat einen Fehler zurückgegeben`,missingParameters:`Dem OIDC-Callback fehlen erforderliche Parameter`,invalidState:`OIDC-State ist ungültig oder wurde bereits verwendet`,stateExpired:`OIDC-Sitzung abgelaufen — bitte erneut versuchen`,providerNotFound:`OIDC-Provider nicht gefunden`,discoveryFailed:`OIDC-Discovery-Dokument konnte nicht abgerufen werden`,invalidDiscovery:`OIDC-Discovery-Dokument ist ungültig`,networkError:`Netzwerkfehler beim OIDC-Token-Austausch`,badResponse:`Unerwartete Antwort beim OIDC-Token-Austausch`,noIdToken:`OIDC-Provider hat kein ID-Token zurückgegeben`,validationFailed:`OIDC-Token-Validierung fehlgeschlagen`,nonceMismatch:`OIDC-Nonce stimmt nicht überein — möglicher Replay-Angriff`,missingSubClaim:`OIDC-Token enthält keinen Sub-Claim`,noLinkedAccount:`Kein lokales Konto mit dieser OIDC-Identität verknüpft`,accountInactive:`Ihr Konto ist inaktiv`,userResolutionFailed:`Ihr Konto konnte nicht aufgelöst werden`,internalError:`Interner Fehler beim OIDC-Login`,tokenExchangeFailed:`OIDC-Token-Austausch fehlgeschlagen`},forgotPasswordTitle:`Passwort vergessen`,forgotPasswordMessage:`Wenn Sie Ihr Passwort vergessen haben, wenden Sie sich bitte an Ihren Systemadministrator.`,forgotPasswordEmailMessage:`Geben Sie Ihre E-Mail-Adresse ein und wir senden Ihnen ein neues Passwort.`,emailAddress:`E-Mail-Adresse`,emailPlaceholder:`ihre.email@beispiel.de`,cancel:`Abbrechen`,sending:`Wird gesendet...`,sendResetEmail:`Zurücksetzungs-E-Mail senden`,howToReset:`So setzen Sie Ihr Passwort zurück:`,resetStep1:`Kontaktieren Sie Ihren Bambuddy-Administrator`,resetStep2:`Bitten Sie ihn, Ihr Passwort in der Benutzerverwaltung zurückzusetzen`,resetStep3:`Er kann ein neues temporäres Passwort für Sie festlegen`,resetStep4:`Melden Sie sich mit dem neuen Passwort an und ändern Sie es in den Einstellungen`,gotIt:`Verstanden`,resetPassword:{title:`Neues Passwort festlegen`,subtitle:`Geben Sie unten Ihr neues Passwort ein und bestätigen Sie es.`,newPassword:`Neues Passwort`,newPasswordPlaceholder:`Mindestens 8 Zeichen`,confirmPassword:`Passwort bestätigen`,confirmPasswordPlaceholder:`Neues Passwort wiederholen`,saving:`Wird gespeichert…`,submit:`Neues Passwort festlegen`,backToLogin:`Zurück zur Anmeldung`,passwordsDoNotMatch:`Passwörter stimmen nicht überein`,passwordTooShort:`Passwort muss mindestens 8 Zeichen lang sein`,resetFailed:`Passwort zurücksetzen fehlgeschlagen. Der Link ist möglicherweise abgelaufen.`},twoFA:{title:`Zwei-Faktor-Authentifizierung`,subtitle:`Ihr Konto ist mit 2FA geschützt. Geben Sie unten den Bestätigungscode ein.`,methodAuthenticator:`Authenticator-App`,methodEmail:`E-Mail-Code`,methodBackup:`Wiederherstellungscode`,instructionsTotp:`Öffnen Sie Ihre Authenticator-App und geben Sie den 6-stelligen Code für Bambuddy ein.`,instructionsEmail:`Ein 6-stelliger Code wurde an Ihre E-Mail-Adresse gesendet. Er ist 10 Minuten gültig.`,instructionsEmailNotSent:`Klicken Sie unten, um einen Bestätigungscode per E-Mail zu erhalten.`,instructionsBackup:`Geben Sie einen Ihrer 8-stelligen Wiederherstellungscodes ein. Jeder Code kann nur einmal verwendet werden.`,sendCodeButton:`Code per E-Mail senden`,sendingCode:`Wird gesendet...`,resendCode:`Code erneut senden`,codeLabel:`Bestätigungscode`,backupCodeLabel:`Wiederherstellungscode`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`Bestätigen`,verifyingButton:`Wird überprüft...`,backToLogin:`← Zurück zur Anmeldung`,orContinueWith:`oder anmelden mit`,signInWith:`Anmelden mit {{provider}}`,enterCode:`Bitte geben Sie den Bestätigungscode ein`,sendCodeFailed:`Bestätigungscode konnte nicht gesendet werden`,invalidCode:`Ungültiger Code. Bitte erneut versuchen.`}},setup:{title:`Bambuddy Einrichtung`,subtitle:`Konfigurieren Sie die Authentifizierung für Ihre Bambuddy-Instanz`,enableAuth:`Authentifizierung aktivieren`,adminAccount:`Admin-Konto`,adminAccountDesc:`Wenn bereits Admin-Benutzer existieren, wird die Authentifizierung mit den vorhandenen Admin-Konten aktiviert. Lassen Sie die Felder unten leer, um vorhandene Admins zu verwenden, oder geben Sie neue Anmeldedaten ein, um einen neuen Admin-Benutzer zu erstellen.`,adminUsername:`Admin-Benutzername`,adminPassword:`Admin-Passwort`,optionalIfAdminExists:`(optional, wenn Admin-Benutzer existieren)`,adminUsernamePlaceholder:`Admin-Benutzernamen eingeben (optional)`,adminPasswordPlaceholder:`Admin-Passwort eingeben (optional)`,confirmPassword:`Passwort bestätigen`,confirmPasswordPlaceholder:`Admin-Passwort bestätigen`,settingUp:`Einrichtung läuft...`,completeSetup:`Einrichtung abschließen`,toast:{authEnabledAdminCreated:`Authentifizierung aktiviert und Admin-Benutzer erstellt`,authEnabledExistingAdmins:`Authentifizierung mit vorhandenen Admin-Benutzern aktiviert`,setupCompleted:`Einrichtung abgeschlossen`,enterBothCredentials:`Bitte geben Sie sowohl Admin-Benutzernamen als auch Passwort ein, oder lassen Sie beide leer, um vorhandene Admin-Benutzer zu verwenden`,passwordsDoNotMatch:`Passwörter stimmen nicht überein`,passwordTooShort:`Passwort muss mindestens 6 Zeichen lang sein`}},changePassword:{title:`Passwort ändern`,currentPassword:`Aktuelles Passwort`,currentPasswordPlaceholder:`Aktuelles Passwort eingeben`,newPassword:`Neues Passwort`,newPasswordPlaceholder:`Neues Passwort eingeben (min. 6 Zeichen)`,confirmPassword:`Neues Passwort bestätigen`,confirmPasswordPlaceholder:`Neues Passwort bestätigen`,passwordsDoNotMatch:`Passwörter stimmen nicht überein`,passwordTooShort:`Passwort muss mindestens 6 Zeichen lang sein`,changing:`Wird geändert...`,success:`Passwort erfolgreich geändert`,failed:`Passwortänderung fehlgeschlagen`},plateAlert:{title:`Druck pausiert!`,message:`Objekte auf dem Druckbett erkannt. Der Druck wurde automatisch pausiert. Bitte räumen Sie das Druckbett und setzen Sie den Druck fort.`,understand:`Verstanden`},camera:{title:`Kameraansicht`,invalidPrinterId:`Ungültige Drucker-ID`,live:`Live`,snapshot:`Schnappschuss`,restartStream:`Stream neu starten`,refreshSnapshot:`Schnappschuss aktualisieren`,fullscreen:`Vollbild`,exitFullscreen:`Vollbild beenden`,connectingToCamera:`Verbinde mit Kamera...`,capturingSnapshot:`Schnappschuss wird aufgenommen...`,connectionLost:`Verbindung verloren`,connectionFailed:`Kameraverbindung fehlgeschlagen`,reconnecting:`Neuverbindung in {{countdown}}s... (Versuch {{attempt}}/{{max}})`,reconnectNow:`Jetzt verbinden`,cameraUnavailable:`Kamera nicht verfügbar`,cameraUnavailableDesc:`Stellen Sie sicher, dass der Drucker eingeschaltet und verbunden ist.`,noCamera:`Keine Kamera verfügbar`,retry:`Erneut versuchen`,cameraStream:`Kamera-Stream`,zoomOut:`Verkleinern`,zoomIn:`Vergrößern`,resetZoom:`Zoom zurücksetzen`,recording:`Aufnahme`,startRecording:`Aufnahme starten`,stopRecording:`Aufnahme stoppen`,chamberLight:`Kammerbeleuchtung umschalten`,unavailable:`Kamera nicht verfügbar`,diagnose:{button:`Diagnose`,modalTitle:`Kamera-Diagnose`,running:`Diagnose läuft...`,runFailed:`Diagnose konnte nicht ausgeführt werden: {{error}}`,retry:`Erneut ausführen`,stage:{tcp_reachable:`Netzwerk-Erreichbarkeit`,first_frame:`Bilderfassung`,live_stream_active:`Live-Stream aktiv`},summary:{all_ok:`Kamera funktioniert. Die Diagnose hat alle Phasen erfolgreich abgeschlossen.`,live_stream_active_healthy:`Kamera streamt gerade mit aktuellen Bildern — kein Test nötig.`,printer_unreachable:`Drucker ist nicht erreichbar. Prüfe IP-Adresse, Netzwerkverbindung und ob der Drucker eingeschaltet ist.`,camera_port_closed:`Drucker ist erreichbar, aber der Kamera-Port ist geschlossen. Stelle sicher, dass LAN-Modus und Entwicklermodus in den Druckereinstellungen aktiviert sind.`,no_frame:`Verbindung zur Kamera hergestellt, aber keine Bilder empfangen. Versuche es erneut oder prüfe, ob die Kamera in den Druckereinstellungen aktiviert ist.`,unknown_failure:`Kamera-Diagnose aus unbekanntem Grund fehlgeschlagen. Prüfe das Support-Log für Details.`},meta:{protocol:`Protokoll`,port:`Port`,profile:`Profil`}}},groups:{title:`Gruppenverwaltung`,subtitle:`Berechtigungsgruppen für Zugriffskontrolle verwalten`,backToSettings:`Zurück zu Einstellungen`,createGroup:`Gruppe erstellen`,noPermission:`Sie haben keine Berechtigung, auf diese Seite zuzugreifen.`,system:`System`,noDescription:`Keine Beschreibung`,usersCount:`{{count}} Benutzer`,permissionsCount:`{{count}} Berechtigungen`,edit:`Bearbeiten`,delete:`Löschen`,toast:{created:`Gruppe erfolgreich erstellt`,updated:`Gruppe erfolgreich aktualisiert`,deleted:`Gruppe erfolgreich gelöscht`,enterGroupName:`Bitte geben Sie einen Gruppennamen ein`},modal:{editGroup:`Gruppe bearbeiten`,createGroup:`Gruppe erstellen`,cancel:`Abbrechen`,saving:`Speichern...`,creating:`Erstellen...`,saveChanges:`Änderungen speichern`},form:{groupName:`Gruppenname`,groupNamePlaceholder:`Gruppennamen eingeben`,systemGroupWarning:`Systemgruppennamen können nicht geändert werden`,description:`Beschreibung`,descriptionPlaceholder:`Beschreibung eingeben (optional)`,permissions:`Berechtigungen ({{count}} ausgewählt)`},deleteModal:{title:`Gruppe löschen`,message:`Sind Sie sicher, dass Sie diese Gruppe löschen möchten? Benutzer in dieser Gruppe verlieren diese Berechtigungen.`,confirm:`Gruppe löschen`},editor:{title:`Gruppe bearbeiten`,createTitle:`Gruppe erstellen`,search:`Berechtigungen suchen...`,selectAll:`Alle auswählen`,clearAll:`Alle abwählen`,permissionsSelected:`{{count}} ausgewählt`,noResults:`Keine Berechtigungen entsprechen Ihrer Suche`,websocketHint:`Erforderlich für Live-Aktualisierungen. Ohne diese Berechtigung greift die Oberfläche auf regelmäßiges Abrufen zurück.`}},users:{title:`Benutzerverwaltung`,subtitle:`Benutzer und deren Zugriff auf Ihre Bambuddy-Instanz verwalten`,backToSettings:`Zurück zu Einstellungen`,createUser:`Benutzer erstellen`,noPermission:`Sie haben keine Berechtigung, auf diese Seite zuzugreifen.`,admin:`Admin`,noGroups:`Keine Gruppen`,active:`Aktiv`,inactive:`Inaktiv`,edit:`Bearbeiten`,delete:`Löschen`,system:`System`,noGroupsAvailable:`Keine Gruppen verfügbar`,table:{username:`Benutzername`,groups:`Gruppen`,status:`Status`,actions:`Aktionen`},toast:{created:`Benutzer erfolgreich erstellt`,updated:`Benutzer erfolgreich aktualisiert`,deleted:`Benutzer erfolgreich gelöscht`,fillRequired:`Bitte füllen Sie alle Pflichtfelder aus`,passwordsDoNotMatch:`Passwörter stimmen nicht überein`,passwordTooShort:`Passwort muss mindestens 6 Zeichen lang sein`,ldapProvisioned:`LDAP-Benutzer „{{username}}" bereitgestellt`},modal:{createUser:`Benutzer erstellen`,editUser:`Benutzer bearbeiten`,cancel:`Abbrechen`,creating:`Erstellen...`,saving:`Speichern...`,saveChanges:`Änderungen speichern`,advancedAuthSubtitle:`mit erweiterter Authentifizierung`,tabsAriaLabel:`Benutzerquelle`,localTab:`Lokal`,ldapTab:`LDAP`,ldapSearchLabel:`Verzeichnis durchsuchen`,ldapSearchPlaceholder:`Benutzername, Name oder E-Mail eingeben...`,ldapMinChars:`Mindestens 2 Zeichen für die Suche eingeben`,ldapTypeToSearch:`Tippen, um das LDAP-Verzeichnis zu durchsuchen`,ldapSearching:`Verzeichnis wird durchsucht...`,ldapNoResults:`Keine passenden Benutzer im Verzeichnis`,ldapSearchError:`Verzeichnissuche fehlgeschlagen. Bitte LDAP-Server-Status prüfen.`,ldapAlreadyProvisioned:`Bereits bereitgestellt`,ldapSelectedLabel:`Ausgewählt`,ldapProvision:`Benutzer bereitstellen`,ldapProvisioning:`Wird bereitgestellt...`,ldapErrorProvision:`Bereitstellung fehlgeschlagen. Bitte LDAP-Server-Status prüfen und erneut versuchen.`},form:{username:`Benutzername`,usernamePlaceholder:`Benutzernamen eingeben`,email:`E-Mail`,emailPlaceholder:`benutzer@beispiel.de`,password:`Passwort`,passwordPlaceholder:`Passwort eingeben`,confirmPassword:`Passwort bestätigen`,confirmPasswordPlaceholder:`Passwort bestätigen`,newPasswordPlaceholder:`Neues Passwort eingeben`,confirmNewPasswordPlaceholder:`Neues Passwort bestätigen`,leaveBlankToKeep:`leer lassen, um das aktuelle zu behalten`,groups:`Gruppen`,optional:`optional`,autoGeneratedPassword:`Ein sicheres Passwort wird automatisch generiert und per E-Mail an den Benutzer gesendet.`,passwordManagedByAdvancedAuth:`Das Passwort wird durch erweiterte Authentifizierung verwaltet. Verwenden Sie "Passwort zurücksetzen", um ein neues Passwort per E-Mail an den Benutzer zu senden.`,resetPassword:`Passwort zurücksetzen`,resettingPassword:`Passwort wird zurückgesetzt...`},deleteModal:{title:`Benutzer löschen`,message:`Sind Sie sicher, dass Sie diesen Benutzer löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.`,confirm:`Benutzer löschen`}},streamOverlay:{title:`Stream-Overlay`,invalidPrinterId:`Ungültige Drucker-ID`,cameraStream:`Kamera-Stream`,progress:`Fortschritt`,eta:`ETA`,printerIdle:`Drucker ist inaktiv`,printerOffline:`Drucker offline`,status:{printing:`Druckt`,paused:`Pausiert`,finished:`Fertig`,failed:`Fehlgeschlagen`,idle:`Inaktiv`,unknown:`Unbekannt`}},profiles:{title:`Profile`,subtitle:`Verwalten Sie Ihre Slicer-Voreinstellungen und Druckvorschub-Kalibrierungen`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`Lokale Profile`,kprofiles:`K-Profile`},orcaCloud:{connectedAs:`Verbunden als`,connectedShort:`Mit Orca Cloud verbunden`,logout:`Trennen`,noLogoutPermission:`Sie haben keine Berechtigung zum Trennen`,noConnectPermission:`Sie haben keine Berechtigung, sich mit Orca Cloud zu verbinden`,retry:`Erneut versuchen`,connectButton:`Orca Cloud verbinden`,connect:{title:`Mit Orca Cloud verbinden`,description:`Melden Sie sich bei Ihrem Orca Cloud-Konto an, um Ihre Slicer-Profile in Bambuddy zu synchronisieren.`},device:{title:`Bambuddy in Orca Cloud genehmigen`,instruction:`Öffnen Sie Orca Cloud und genehmigen Sie diesen Code. Bambuddy verbindet sich automatisch, sobald Sie genehmigt haben.`,codeLabel:`Ihr Kopplungscode`,openButton:`Orca Cloud-Genehmigungsseite öffnen`,manualHint:`Oder gehen Sie zu {{url}} und geben Sie den obigen Code ein.`,waiting:`Warte auf Ihre Genehmigung…`,cancel:`Abbrechen`},profiles:{title:`Ihre Orca Cloud-Profile ({{count}})`,refresh:`Aktualisieren`,empty:`Noch keine Profile in Ihrem Orca Cloud-Konto gefunden.`},toast:{disconnected:`Verbindung zu Orca Cloud getrennt`},errors:{startFailed:`Anmeldevorgang für Orca Cloud konnte nicht gestartet werden.`,denied:`Die Kopplung wurde in Orca Cloud abgelehnt.`,expired:`Der Kopplungscode ist abgelaufen. Klicken Sie auf Verbinden, um es erneut zu versuchen.`,pollFailed:`Die Verbindung ging beim Warten auf die Genehmigung verloren. Bitte versuchen Sie es erneut.`}},localProfiles:{title:`Lokale Profile`,subtitle:`Slicer-Voreinstellungen aus OrcaSlicer importieren und verwalten`,import:`Profile importieren`,importDesc:`.bbscfg-, .bbsflmt-, .orca_filament-, .zip- oder .json-Dateien hier ablegen`,importing:`Importiere...`,search:`Lokale Voreinstellungen durchsuchen...`,noPresets:`Noch keine lokalen Voreinstellungen`,noSearchResults:`Keine Voreinstellungen entsprechen deiner Suche`,badge:`Lokal`,edit:`Bearbeiten`,delete:`Löschen`,cancel:`Abbrechen`,deleteConfirmTitle:`Voreinstellung löschen`,deleteConfirm:`Möchten Sie diese Voreinstellung wirklich löschen? Dies kann nicht rückgängig gemacht werden.`,source:`Quelle`,inheritsFrom:`Erbt von`,filamentType:`Typ`,vendor:`Hersteller`,compatiblePrinters:`Drucker`,nozzleTemp:`Düsentemperatur`,cost:`Kosten`,density:`Dichte`,pressureAdvance:`Druckvorschub`,filament:`Filament`,process:`Prozess`,printer:`Drucker`,toast:{importSuccess:`{{count}} Voreinstellung(en) importiert`,importSkipped:`{{count}} Voreinstellung(en) übersprungen (Duplikate)`,importError:`{{count}} Fehler beim Import`,deleted:`Voreinstellung gelöscht`,updated:`Voreinstellung aktualisiert`}},connectedAs:`Verbunden als`,signInExpiredTitle:`Bambu-Cloud-Anmeldung abgelaufen`,signInExpiredBody:`Bambu Lab akzeptiert das gespeicherte Token nicht mehr. Melden Sie sich erneut an, um Cloud-Profile, MakerWorld-Importe und Firmware-Prüfungen wiederherzustellen.`,logout:`Abmelden`,noLogoutPermission:`Sie haben keine Berechtigung zum Abmelden`,failedToLoad:`Profile konnten nicht geladen werden`,retry:`Erneut versuchen`,time:{justNow:`Gerade eben`,minsAgo:`vor {{count}}m`,hoursAgo:`vor {{count}}h`,daysAgo:`vor {{count}}d`},toast:{loggedOut:`Abgemeldet`},login:{title:`Mit Bambu Cloud verbinden`,subtitle:`Synchronisieren Sie Ihre Slicer-Voreinstellungen geräteübergreifend`,email:`E-Mail`,password:`Passwort`,region:`Region`,regionGlobal:`Global`,regionChina:`China`,verificationCode:`Bestätigungscode`,totpCode:`Authenticator-Code`,checkEmail:`Prüfen Sie Ihre E-Mail ({{email}}) für einen 6-stelligen Code`,enterTotpHint:`Geben Sie den 6-stelligen Code aus Ihrer Authenticator-App ein`,accessToken:`Zugriffstoken`,accessTokenHint:`Fügen Sie Ihr Bambu-Cloud-Zugriffstoken ein. Konten der Region China müssen diesen Weg nutzen (telefonnummerngebunden — kein E-Mail-Login). Im Wiki steht, wie Sie das Token aus den MakerWorld-Cookies auslesen.`,back:`Zurück`,loginButton:`Anmelden`,verifyButton:`Bestätigen`,setTokenButton:`Token setzen`,useToken:`Stattdessen Zugriffstoken verwenden`,useEmail:`Stattdessen mit E-Mail anmelden`,toast:{loggedIn:`Erfolgreich angemeldet`,codeSent:`Bestätigungscode an Ihre E-Mail gesendet`,enterTotp:`Geben Sie den Code aus Ihrer Authenticator-App ein`,tokenSet:`Token erfolgreich gesetzt`}},presets:{myPreset:`Mein Profil (bearbeitbar)`,duplicate:`Duplizieren`,editable:`Bearbeitbar`,failedToLoadDetails:`Profil-Details konnten nicht geladen werden`,deleteConfirm:`Dieses Profil löschen?`,deleteWarning:`"{{name}}" wird dauerhaft aus Bambu Cloud gelöscht. Dies kann nicht rückgängig gemacht werden.`,noDuplicatePermission:`Sie haben keine Berechtigung zum Duplizieren von Profilen`,noEditPermission:`Sie haben keine Berechtigung zum Bearbeiten von Profilen`,noDeletePermission:`Sie haben keine Berechtigung zum Löschen von Profilen`,types:{filament:`Filament-Profil`,printer:`Drucker-Profil`,process:`Prozess-Profil`},toast:{deleted:`Profil gelöscht`,created:`Profil erstellt`,updated:`Profil aktualisiert`,duplicated:`Profil dupliziert`,fieldAdded:`Feld "{{key}}" hinzugefügt`,exported:`Profil exportiert`},baseLabel:`Basis: {{name}}`,currentLabel:`Aktuell: {{name}}`,newPreset:`Neues Profil`,editPreset:`Profil bearbeiten`,duplicatePreset:`Profil duplizieren`,createNewPreset:`Neues Profil erstellen`,customizeSettings:`Passen Sie die Einstellungen für Ihr neues Profil an`,compareWithBase:`Mit Basis-Profil vergleichen`,compare:`Vergleichen`,basePreset:`Basis-Profil`,selectBasePreset:`Basis-Profil auswählen...`,presetName:`Profilname`,myCustomPreset:`Mein eigenes Profil`,inheritsFrom:`Erbt von`,dropJsonToImport:`JSON zum Importieren ablegen`,tabs:{common:`Allgemein`,allFields:`Alle Felder`},availableFields:`Verfügbare Felder`,searchFieldsPlaceholder:`Felder suchen...`,noMatchingFields:`Keine passenden Felder`,allFieldsAdded:`Alle Felder hinzugefügt`,addCustomField:`Eigenes Feld hinzufügen`,yourOverrides:`Ihre Überschreibungen`,noOverridesYet:`Noch keine Überschreibungen`,clickFieldsToAdd:`Klicken Sie links auf Felder, um sie hinzuzufügen`,saveAsTemplate:`Als Vorlage speichern`,jsonTip:`Tipp: Ziehen Sie eine .json-Datei auf dieses Fenster, um Einstellungen zu importieren`},cloudView:{searchPlaceholder:`Profile suchen...`,templates:`Vorlagen`,refresh:`Aktualisieren`,newPreset:`Neues Profil`,clearFilters:`Filter zurücksetzen`,compareMode:`Vergleichsmodus`,selectAnotherPreset:`Wählen Sie ein weiteres {{type}}-Profil`,clickTwoPresets:`Klicken Sie auf zwei Profile des gleichen Typs zum Vergleichen`,selectFirst:`1. Erstes auswählen`,selectSecond:`2. Zweites auswählen`,compareNow:`Jetzt vergleichen`,lastSynced:`Zuletzt synchronisiert:`,showingCount:`{{showing}} von {{total}} Profilen`,noPresetsFound:`Keine Profile gefunden`,columns:{filament:`Filament`,process:`Prozess`,printer:`Drucker`},noFilamentPresets:`Keine Filament-Profile`,noProcessPresets:`Keine Prozess-Profile`,noPrinterPresets:`Keine Drucker-Profile`,filters:{type:`Typ`,owner:`Besitzer`,printer:`Drucker`,nozzle:`Düse`,filament:`Filament`,layer:`Schicht`,all:`Alle`,myPresets:`Meine Profile`,builtIn:`Voreingestellt`,process:`Prozess`},noTemplatesPermission:`Sie haben keine Berechtigung, Vorlagen zu verwalten`,noRefreshPermission:`Sie haben keine Berechtigung, Profile zu aktualisieren`,noCreatePermission:`Sie haben keine Berechtigung, Profile zu erstellen`},templates:{title:`Schnellvorlagen`,noTemplates:`Noch keine Vorlagen`,createFirst:`Erstellen Sie Vorlagen aus dem Preset-Editor`,typeFilter:`Typ:`,deleteTitle:`Vorlage löschen`,deleteWarning:`Diese Aktion kann nicht rückgängig gemacht werden`,deleteConfirm:`Möchten Sie "{{name}}" wirklich löschen?`,namePlaceholder:`Vorlagenname`,descriptionPlaceholder:`Beschreibung`,settingsJson:`Einstellungen (JSON)`,fieldsCount:`{{count}} Felder`,shownInModals:`In Dialogen angezeigt`,hiddenInModals:`In Dialogen ausgeblendet`,apply:`Anwenden`,toast:{deleted:`Vorlage gelöscht`,updated:`Vorlage aktualisiert`,created:`Vorlage erstellt`,applied:`Vorlage angewendet`}}},support:{debugLoggingActive:`Debug-Protokollierung ist aktiv`,manageLogs:`Verwalten`,collectItem7:`Drucker-Verbindungsstatus und Firmware-Versionen`,collectItem8:`Integrationsstatus (Spoolman, MQTT, HA)`,collectItem9:`Netzwerkschnittstellen (nur Subnetze)`,collectItem10:`Python-Paketversionen`,collectItem11:`Datenbankzustandsprüfungen`,collectItem12:`Docker-Umgebungsdetails`,bundleGenerating:`Bundle wird erstellt...`,bundleStepConnection:`Drucker-Verbindungsprüfungen werden ausgeführt`,bundleStepVirtualPrinters:`Setup-Prüfungen für virtuelle Drucker werden ausgeführt`,bundleStepLogScan:`Aktuelle Protokolle werden auf bekannte Probleme überprüft`,bundleStepBuild:`Support-Bundle-ZIP wird erstellt`},fileManager:{title:`Dateimanager`,subtitle:`Organisieren und verwalten Sie Ihre Druckdateien`,uploadFiles:`Dateien hochladen`,newFolder:`Neuer Ordner`,folderName:`Ordnername`,folderNamePlaceholder:`z.B. Funktionsteile`,renameFile:`Datei umbenennen`,renameFolder:`Ordner umbenennen`,invalidFilenameChar:`Das Zeichen "{{char}}" ist in Druck-Dateinamen nicht erlaubt. Die SD-Karte des Druckers lehnt folgende Zeichen ab: < > : " / \\ | ? *`,moveFiles:`{{count}} Datei(en) verschieben`,rootNoFolder:`Stammverzeichnis (Kein Ordner)`,current:`aktuell`,linkFolder:`Ordner verknüpfen`,linkFolderDescription:`"{{name}}" mit einem Projekt oder Archiv verknüpfen für schnellen Zugriff.`,project:`Projekt`,archive:`Archiv`,noProjectsFound:`Keine Projekte gefunden`,noArchivesFound:`Keine Archive gefunden`,unlink:`Verknüpfung aufheben`,link:`Verknüpfen`,dragDropFiles:`Dateien hierher ziehen`,dropFilesHere:`Dateien hier ablegen`,releaseToUpload:`Loslassen zum Hochladen`,orClickToBrowse:`oder klicken zum Durchsuchen`,allFileTypesSupported:`Alle Dateitypen werden unterstützt. ZIP-Dateien werden extrahiert.`,zipFilesDetected:`ZIP-Dateien erkannt`,zipExtractOptions:`ZIP-Dateien werden extrahiert. Wählen Sie, wie die Ordnerstruktur behandelt werden soll:`,preserveZipStructure:`Ordnerstruktur aus ZIP beibehalten`,createFolderFromZip:`Ordner aus ZIP-Dateiname erstellen`,stlThumbnailGeneration:`STL-Vorschaubildgenerierung`,zipMayContainStl:`ZIP-Dateien können STL-Dateien enthalten. Vorschaubilder können während der Extraktion generiert werden.`,thumbnailsCanBeGenerated:`Vorschaubilder können für STL-Dateien generiert werden. Große Modelle benötigen möglicherweise mehr Zeit.`,generateThumbnailsForStl:`Vorschaubilder für STL-Dateien generieren`,threemfDetected:`3MF-Dateien erkannt`,threemfExtractionInfo:`Druckermodell, Material, Farbe und Druckeinstellungen werden automatisch aus 3MF-Dateien extrahiert.`,willBeExtracted:`Wird extrahiert`,filesExtracted:`{{count}} Dateien extrahiert`,uploadComplete:`Upload abgeschlossen: {{succeeded}} erfolgreich`,uploadFailed:`Hochladen fehlgeschlagen`,zipFilesFailed:`{{count}} Dateien fehlgeschlagen`,uploading:`Hochladen...`,changeLink:`Verknüpfung ändern...`,linkTo:`Verknüpfen mit...`,linkToProjectOrArchive:`Mit Projekt oder Archiv verknüpfen`,generateThumbnail:`Vorschaubild generieren`,generateThumbnails:`Vorschaubilder generieren`,generateThumbnailsForMissing:`Vorschaubilder für STL-Dateien ohne Vorschau generieren`,gridView:`Rasteransicht`,listView:`Listenansicht`,lowDiskSpaceWarning:`Warnung: Wenig Speicherplatz`,lowDiskSpaceDetails:`Nur {{free}} frei von {{total}} gesamt. Schwellenwert ist auf {{threshold}} GB eingestellt.`,files:`Dateien`,folders:`Ordner`,size:`Größe`,free:`Frei`,allFiles:`Alle Dateien`,allExternal:`Extern`,externalIsEmpty:`Keine externen Dateien`,externalEmptyDescription:`Dateien aus deinen verknüpften externen Ordnern erscheinen hier.`,wrap:`Umbrechen`,enableTextWrapping:`Textumbruch aktivieren`,disableTextWrapping:`Textumbruch deaktivieren`,collapse:`Einklappen`,collapseFoldersByDefault:`Ordner standardmäßig einklappen`,expandFoldersByDefault:`Ordner standardmäßig ausklappen`,folderSort:`Ordner sortieren`,folderSortByName:`Nach Name`,folderSortByActivity:`Nach letzter Aktivität`,dragToResizeTooltip:`Ziehen zum Ändern der Größe, Doppelklick zum Zurücksetzen`,searchFiles:`Dateien suchen...`,searchSubfoldersHint:`Inklusive Unterordner`,readme:{truncated:`Gekürzt`,show:`README anzeigen`,hide:`README ausblenden`,label:`README`},tags:{title:`Tags`,subtitle:`Dateien mit Labels versehen — Spielzeug, kindersicher, nur PETG, was immer du willst.`,manage:`Tags`,manageTitle:`Tag-Katalog verwalten`,add:`Neuer Tag`,edit:`Tag umbenennen`,name:`Name`,fileCount:`Dateien`,empty:`Noch keine Tags. Erstelle einen, um Dateien zu kennzeichnen.`,noMatches:`Keine passenden Tags.`,createPlaceholder:`z. B. Spielzeug, kindersicher, petg`,createButton:`Erstellen`,nameRequired:`Name ist erforderlich.`,searchPlaceholder:`Tags filtern...`,created:`Tag erstellt.`,updated:`Tag umbenannt.`,deleted:`Tag entfernt.`,saveFailed:`Tag konnte nicht gespeichert werden.`,deleteFailed:`Tag konnte nicht entfernt werden.`,applyFailed:`Tags konnten nicht angewendet werden.`,applyAdd:`Tags hinzufügen`,applyRemove:`Tags entfernen`,applyAddSuccess:`{{count}} Tag(s) zu {{files}} Datei(en) hinzugefügt.`,applyRemoveSuccess:`{{count}} Tag(s) von {{files}} Datei(en) entfernt.`,actionAdd:`Zu ausgewählten Dateien hinzufügen`,actionRemove:`Von ausgewählten Dateien entfernen`,tagAction:`Tag`,bulkTitle:`{{count}} ausgewählte Datei(en) taggen`,bulkTooltip:`Tags für alle ausgewählten Dateien hinzufügen oder entfernen.`,noPermission:`Du hast keine Berechtigung, Dateien zu taggen.`,filterLabel:`Filtern nach:`,clearAll:`Alle entfernen`,confirmDelete:`Tag "{{name}}" löschen?`,confirmDeleteMessage:`Entfernt den Tag aus dem Katalog. Dateien behalten ihre übrigen Tags.`,confirmDeleteInUseMessage:`Dieser Tag ist auf {{count}} Datei(en). Beim Löschen verschwindet er von allen; die Dateien selbst bleiben unverändert.`,editAria:`{{name}} bearbeiten`,deleteAria:`{{name}} löschen`},allTypes:`Alle Typen`,prints:`Drucke`,ascending:`Aufsteigend`,descending:`Absteigend`,showModified:`Änderungsdatum anzeigen`,hideModified:`Änderungsdatum ausblenden`,lastModified:`Zuletzt geändert`,lastActivity:`Letzte Aktivität`,resultsCount:`{{showing}} von {{total}} Dateien`,selectAll:`Alle auswählen`,deselectAll:`Auswahl aufheben`,selected:`{{count}} ausgewählt`,adding:`Hinzufügen...`,loadingFiles:`Dateien werden geladen...`,folderIsEmpty:`Ordner ist leer`,noFilesYet:`Noch keine Dateien`,folderEmptyDescription:`Laden Sie Dateien hoch oder verschieben Sie Dateien in diesen Ordner.`,noFilesDescription:`Laden Sie Dateien hoch, um Ihre Druckdateien zu organisieren.`,noMatchingFiles:`Keine passenden Dateien`,noMatchingFilesDescription:`Keine Dateien entsprechen Ihren aktuellen Such- oder Filterkriterien.`,clearFilters:`Filter zurücksetzen`,printedCount:`{{count}}x gedruckt`,uploadedBy:`Hochgeladen von`,deleteFolder:`Ordner löschen`,deleteFile:`Datei löschen`,deleteFilesCount:`{{count}} Dateien löschen`,deleteFolderConfirm:`Möchten Sie diesen Ordner wirklich löschen? Alle Dateien darin werden ebenfalls gelöscht.`,deleteFileConfirm:`Möchten Sie diese Datei wirklich löschen?`,deleteFilesConfirm:`Möchten Sie {{count}} ausgewählte Dateien wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden.`,deleting:`Wird gelöscht...`,noPermissionRenameFolder:`Sie haben keine Berechtigung, Ordner umzubenennen`,noPermissionLinkFolder:`Sie haben keine Berechtigung, Ordner zu verknüpfen`,noPermissionDeleteFolder:`Sie haben keine Berechtigung, Ordner zu löschen`,onlyEmptyFoldersDeletable:`Sie können nur leere Ordner löschen`,noPermissionPrint:`Sie haben keine Berechtigung zum Drucken`,noPermissionSlice:`Sie haben keine Berechtigung, Dateien zu slicen`,noPermissionAddToQueue:`Sie haben keine Berechtigung, zur Warteschlange hinzuzufügen`,noPermissionDownload:`Sie haben keine Berechtigung, Dateien herunterzuladen`,noPermissionRenameFile:`Sie haben keine Berechtigung, diese Datei umzubenennen`,noPermissionGenerateThumbnail:`Sie haben keine Berechtigung, Vorschaubilder zu generieren`,noPermissionDeleteFile:`Sie haben keine Berechtigung, diese Datei zu löschen`,noPermissionCreateFolder:`Sie haben keine Berechtigung, Ordner zu erstellen`,noPermissionUpload:`Sie haben keine Berechtigung, Dateien hochzuladen`,noPermissionMoveFiles:`Sie haben keine Berechtigung, Dateien zu verschieben`,noPermissionDeleteFiles:`Sie haben keine Berechtigung, Dateien zu löschen`,linkExternal:`Extern verknüpfen`,linkExternalFolder:`Externen Ordner verknüpfen`,linkExternalFolderDescription:`Ein Host-Verzeichnis (NAS, USB, Netzlaufwerk) in den Dateimanager einbinden. Dateien werden nicht kopiert — sie werden direkt vom Originalpfad gelesen.`,externalFolderNamePlaceholder:`z.B. NAS-Drucke`,externalPath:`Host-Pfad`,externalPathHelp:`Absoluter Pfad zum Verzeichnis auf dem Docker-Host. Muss als Bind-Mount in den Container eingebunden sein.`,readOnly:`Nur Lesen`,readOnlyHelp:`verhindert Uploads und Löschungen`,showHiddenFiles:`Versteckte Dateien anzeigen (Punkt-Dateien)`,externalFolder:`Externer Ordner`,scanFolder:`Scannen`,toast:{folderCreated:`Ordner erstellt`,folderDeleted:`Ordner gelöscht`,fileDeleted:`Datei gelöscht`,filesDeleted:`{{count}} Dateien gelöscht`,filesMoved:`Dateien verschoben`,folderLinked:`Ordner verknüpft`,folderUnlinked:`Ordnerverknüpfung aufgehoben`,externalFolderLinked:`Externer Ordner verknüpft und gescannt`,folderScanned:`Scan abgeschlossen: {{added}} hinzugefügt, {{removed}} entfernt`,addedToQueue:`{{count}} Datei(en) zur Warteschlange hinzugefügt`,addedToQueuePartial:`{{added}} Datei(en) hinzugefügt, {{failed}} fehlgeschlagen`,failedToAddToQueue:`Fehler beim Hinzufügen: {{error}}`,fileRenamed:`Datei umbenannt`,folderRenamed:`Ordner umbenannt`,thumbnailsGenerated:`{{count}} Vorschaubild(er) generiert`,thumbnailsGeneratedPartial:`{{succeeded}} Vorschaubild(er) generiert, {{failed}} fehlgeschlagen`,noStlMissingThumbnails:`Keine STL-Dateien ohne Vorschaubild`,failedToGenerateThumbnails:`Fehler beim Generieren der Vorschaubilder: {{error}}`,thumbnailGenerated:`Vorschaubild generiert`,failedToGenerateThumbnail:`Fehler beim Generieren des Vorschaubildes: {{error}}`}},projects:{title:`Projekte`,subtitle:`Organisieren und verfolgen Sie Ihre 3D-Druckprojekte`,newProject:`Neues Projekt`,editProject:`Projekt bearbeiten`,deleteProject:`Projekt löschen`,projectName:`Projektname`,description:`Beschreibung`,noProjects:`Noch keine Projekte`,noProjectsFiltered:`Keine {{status}} Projekte`,noProjectsFilteredHelp:`Sie haben keine {{status}} Projekte. Projekte werden hier angezeigt, wenn sich ihr Status ändert.`,createFirst:`Erstellen Sie Ihr erstes Projekt, um verwandte Drucke zu organisieren, den Fortschritt zu verfolgen und Ihre Builds zu verwalten.`,createFirstButton:`Erstes Projekt erstellen`,create:`Erstellen`,files:`Dateien`,prints:`Drucke`,plates:`Platten`,parts:`Teile`,lastModified:`Zuletzt geändert`,deleteConfirm:`Möchten Sie dieses Projekt wirklich löschen? Archive und Warteschlangenelemente werden getrennt, aber nicht gelöscht.`,addFiles:`Dateien hinzufügen`,removeFile:`Datei entfernen`,viewDetails:`Details anzeigen`,namePlaceholder:`z.B. Voron 2.4 Build`,descriptionPlaceholder:`Optionale Beschreibung...`,urlLabel:`URL`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`URL muss mit http:// oder https:// beginnen`,openExternalUrl:`Projekt-URL öffnen`,coverImageLabel:`Titelbild`,coverImageAlt:`Projekt-Titelbild`,coverImageUpload:`Hochladen`,coverImageReplace:`Ersetzen`,coverImageRemove:`Entfernen`,color:`Farbe`,targetPlates:`Ziel-Platten`,targetPlatesPlaceholder:`z.B. 25`,targetPlatesHelp:`Anzahl der Druckaufträge`,targetParts:`Ziel-Teile`,targetPartsPlaceholder:`z.B. 150`,targetPartsHelp:`Benötigte Objekte insgesamt`,targetSets:`Kopien pro Datei`,targetSetsPlaceholder:`z. B. 10`,targetSetsHelp:`Wie oft jede druckbare Datei gedruckt werden soll`,tagsLabel:`Tags (kommagetrennt)`,tagsPlaceholder:`z.B. voron, funktional, geschenk`,dueDate:`Fälligkeitsdatum`,priority:`Priorität`,priorityLow:`Niedrig`,priorityNormal:`Normal`,priorityHigh:`Hoch`,priorityUrgent:`Dringend`,statusActive:`Aktiv`,statusCompleted:`Abgeschlossen`,statusArchived:`Archiviert`,done:`Fertig`,completed:`abgeschlossen`,failed:`fehlgeschlagen`,inQueue:`in Warteschlange`,noPrintsYet:`Noch keine Drucke`,printJobs:`Druckaufträge (Platten)`,partsPrinted:`Gedruckte Teile`,failedParts:`Fehlgeschlagene Teile`,import:`Importieren`,export:`Exportieren`,importProject:`Projekt importieren`,exportAll:`Alle Projekte exportieren`,loading:`Projekte werden geladen...`,noEditPermission:`Sie haben keine Berechtigung, Projekte zu bearbeiten`,noDeletePermission:`Sie haben keine Berechtigung, Projekte zu löschen`,noCreatePermission:`Sie haben keine Berechtigung, Projekte zu erstellen`,noImportPermission:`Sie haben keine Berechtigung, Projekte zu importieren`,noExportPermission:`Sie haben keine Berechtigung, Projekte zu exportieren`,toast:{created:`Projekt erstellt`,updated:`Projekt aktualisiert`,deleted:`Projekt gelöscht`,imported:`Projekt importiert`,multipleImported:`{{count}} Projekte importiert`,importFailed:`Import fehlgeschlagen`,exported:`Projekte exportiert (nur Metadaten)`}},projectDetail:{notFound:`Projekt nicht gefunden`,backToProjects:`Zurück zu Projekten`,export:`Exportieren`,exportProject:`Projekt exportieren`,noExportPermission:`Sie haben keine Berechtigung, Projekte zu exportieren`,noEditPermission:`Sie haben keine Berechtigung, Projekte zu bearbeiten`,partOf:`Teil von:`,priorityLabel:`Priorität:`,noPrints:`Noch keine Drucke in diesem Projekt`,status:{active:`Aktiv`,completed:`Abgeschlossen`,archived:`Archiviert`},priority:{low:`Niedrig`,normal:`Normal`,high:`Hoch`,urgent:`Dringend`},dueDate:{overdue:`Überfällig`,today:`Heute fällig`,daysLeft:`{{count}} Tage übrig`},progress:{platesProgress:`Platten-Fortschritt`,partsProgress:`Teile-Fortschritt`,setsProgress:`Vollständige Sätze`,sets:`Sätze`,setsHint:`Ein Satz ist vollständig, wenn jede druckbare Datei diese Anzahl erreicht hat`,printJobs:`Druckaufträge`,parts:`Teile`,percentComplete:`{{percent}}% abgeschlossen`,remaining:`{{count}} verbleibend`},stats:{printJobs:`Druckaufträge`,total:`gesamt`,failed:`{{count}} fehlgeschlagen`,partsPrinted:`{{count}} Teile gedruckt`,printTime:`Druckzeit`,filamentUsed:`Filament verbraucht`},cost:{title:`Kostenverfolgung`,filamentCost:`Filamentkosten`,energy:`Energie`,totalCost:`Gesamtkosten`,total:`Gesamt`,includesBom:`inkl. Stückliste`,budget:`Budget`,remaining:`Verbleibend`},subProjects:{title:`Unterprojekte ({{count}})`},notes:{title:`Notizen`,noEditPermission:`Sie haben keine Berechtigung, Notizen zu bearbeiten`,placeholder:`Notizen zu diesem Projekt hinzufügen...`,empty:`Noch keine Notizen. Klicken Sie auf Bearbeiten, um Notizen hinzuzufügen.`},files:{title:`Dateien`,linkFolders:`Ordner aus dem Dateimanager verknüpfen`,forQuickAccess:`für schnellen Zugriff auf dieses Projekt.`,fileCount:`{{count}} Datei(en)`,empty:`Keine Ordner verknüpft. Gehen Sie zum Dateimanager und verknüpfen Sie einen Ordner mit diesem Projekt.`,printedCount:`{{count}}-mal gedruckt`,progressTooltip:`{{done}} von {{target}} abgeschlossenen Drucken`,noFiles:`Keine Dateien in diesem Ordner.`},bom:{title:`Stückliste`,acquired:`{{completed}}/{{total}} beschafft`,showAll:`Alle anzeigen`,hideDone:`Erledigte ausblenden`,addPart:`Teil hinzufügen`,noAddPermission:`Sie haben keine Berechtigung, Teile hinzuzufügen`,partNamePlaceholder:`Teilename (z.B. M3x8 Schrauben)`,partName:`Teilename`,qty:`Menge`,price:`Preis ({{currency}})`,sourcingUrlPlaceholder:`Bezugsquelle-URL (optional)`,remarksPlaceholder:`Bemerkungen (optional)`,deletePart:`Teil löschen`,deleteConfirm:`Möchten Sie "{{name}}" wirklich löschen?`,noUpdatePermission:`Sie haben keine Berechtigung, Teile zu aktualisieren`,noEditPermission:`Sie haben keine Berechtigung, Teile zu bearbeiten`,noDeletePermission:`Sie haben keine Berechtigung, Teile zu löschen`,totalCost:`Gesamtkosten:`,empty:`Keine Teile in der Stückliste. Fügen Sie Hardware, Elektronik oder andere Komponenten hinzu, um zu verfolgen, was beschafft werden muss.`},timeline:{title:`Aktivitätsverlauf`,empty:`Noch keine Aktivität.`},template:{saveAsTemplate:`Als Vorlage speichern`,noCreatePermission:`Sie haben keine Berechtigung, Vorlagen zu erstellen`},queue:{title:`Warteschlange`,viewAll:`Alle anzeigen`,printing:`{{count}} druckend`,queued:`{{count}} in Warteschlange`},prints:{title:`Drucke ({{count}})`},toast:{projectUpdated:`Projekt aktualisiert`,partAdded:`Teil hinzugefügt`,partRemoved:`Teil entfernt`,exportFailed:`Export fehlgeschlagen`,projectExported:`Projekt exportiert`,templateCreated:`Vorlage erstellt`}},system:{title:`Systeminformationen`,version:`Version`,uptime:`Laufzeit`,cpuUsage:`CPU-Auslastung`,memoryUsage:`Speicherauslastung`,diskUsage:`Festplattenauslastung`,networkInfo:`Netzwerkinformationen`,logs:`Protokolle`,debugMode:`Debug-Modus`,enableDebug:`Debug-Protokollierung aktivieren`,disableDebug:`Debug-Protokollierung deaktivieren`,downloadLogs:`Protokolle herunterladen`,clearLogs:`Protokolle löschen`,dockerInfo:`Docker-Info`,containerName:`Container-Name`,imageName:`Image-Name`,platform:`Plattform`,architecture:`Architektur`},sponsors:{sectionTitle:`Unabhängig & von der Community finanziert`,tagline:`Bambuddy ist kostenlos und bleibt es, weil Menschen es freiwillig unterstützen. Kein VC, kein Cloud-Zwang.`,viewSupporters:`Unterstützer ansehen`,toastPrints:`Du hast {{count}} Drucke mit Bambuddy abgeschlossen. Bambuddy bleibt kostenlos dank seiner Unterstützer.`,toastCost:`Du hast {{total}} an Filament mit Bambuddy verfolgt. Sieh dir an, wer das Projekt unabhängig hält.`,toastArchives:`{{count}} Drucke mit Bambuddy archiviert. Sieh dir an, wer es unabhängig hält.`,toastAnniversary:`Ein Jahr mit Bambuddy! Sieh dir an, wer das Projekt unabhängig hält.`,toastVersionUpdate:`Aktualisiert auf v{{version}}. Bambuddy bleibt kostenlos dank seiner Unterstützer.`,toastBusiness:`Sie betreiben Bambuddy auf {{count}} Druckern. Für Teams gibt es Support-Pakete – bevorzugte Fehlerbehebung, Rechnungsstellung und einen direkten Draht zum Maintainer.`,businessCta:`Bambuddy für Unternehmen`,businessTitle:`Bambuddy für Unternehmen`,businessTagline:`Sie betreiben {{count}} Drucker. Für Teams und Druckfarmen gibt es priorisierten Support, kommerzielle Lizenzen und Rechnungsstellung.`},library:{title:`Filament-Bibliothek`,addFilament:`Filament hinzufügen`,editFilament:`Filament bearbeiten`,deleteFilament:`Filament löschen`,vendor:`Hersteller`,material:`Material`,color:`Farbe`,kFactor:`K-Faktor`,temperature:`Temperatur`,noFilaments:`Keine Filamente in der Bibliothek`,deleteConfirm:`Möchten Sie dieses Filament wirklich löschen?`,importFromPrinter:`Vom Drucker importieren`,exportToFile:`In Datei exportieren`,runWithPipeline:{actionLabel:`Mit Pipeline ausführen`,noPermission:`Du hast keine Berechtigung, Pipelines auszuführen`,modalTitle:`Mit Pipeline ausführen`,confirmTitle:`Lauf bestätigen`,confirmIntro:`Pre-Flight hat Probleme mit diesem Lauf gefunden`,sourceHint:`Quelle`,pipelineHint:`Pipeline`,targetHint:`Ziel`,pipelineListAria:`Verfügbare Pipelines`,runAnyway:`Trotzdem ausführen`,loading:`Wird geladen…`,empty:`Noch keine Pipelines gespeichert. Öffne den Slice-Dialog und klicke „Als Pipeline speichern“, um eine zu erstellen.`,noTarget:`Kein Zieldrucker festgelegt`,noTargetMessage:`Diese Pipeline hat keinen Zieldrucker. Öffne sie in den Einstellungen, um einen festzulegen.`,copies:`Kopien`,copiesHint:`max. {{n}}`,classTarget:`Beliebiger {{model}}`,toast:{started:`Pipeline-Lauf gestartet`,failed:`Lauf konnte nicht gestartet werden`},issue:{printerNotSet:`Kein Zieldrucker für diese Pipeline festgelegt.`,printerNotFound:`Zieldrucker existiert nicht mehr.`,printerDisabled:`Zieldrucker ist deaktiviert.`,printerOffline:`Zieldrucker ist offline.`,filamentType:`Filament-Slot {{slot}}: erwartet {{expected}}, AMS hat {{actual}}`,filamentColor:`Filament-Slot {{slot}}: Farbe weicht ab (erwartet {{expected}}, AMS hat {{actual}})`,amsSlotMissing:`AMS-Slot {{slot}} ist auf diesem Drucker nicht verfügbar`,filamentUnverified:`Filament-Slot {{slot}} stammt aus einem Cloud-/Standard-Preset und konnte nicht statisch verifiziert werden.`,noClassMatches:`Keine Drucker in dieser Installation entsprechen der Zielmodellklasse der Pipeline ({{expected}}).`,classNotSet:`Pipeline-Ziel ist auf eine Druckerklasse gesetzt, aber kein Modell wurde gewählt.`}}},slice:{title:`Modell slicen`,action:`Slicen`,actionAll:`Alle {{count}} Plates slicen`,actionAllTitle:`Alle Plates in eine einzelne Multi-Plate-Ausgabe slicen (ein Archiv). Die Filamentauswahl gilt für jeden Slot des Projekts.`,allPlatesToggle:`Alle {{count}} Plates slicen`,slicing:`Slicen…`,printer:`Drucker-Profil`,process:`Prozess-Profil`,filament:`Filament-Profil`,filamentSlot:`Filament {{index}} – {{type}}`,selectPreset:`— Profil auswählen —`,loadingPresets:`Profile werden geladen…`,analyzingPlateFilaments:`Plattenfilamente werden analysiert…`,analyzingPlateFilamentsHint:`Es wird ein Probeschnitt ausgeführt, um die belegten AMS-Slots dieser Platte zu ermitteln. Wird zwischengespeichert — erneutes Öffnen ist sofort.`,previewToast:`{{name}} wird analysiert — {{elapsed}}`,previewWithProgress:`{{name}} wird analysiert — {{stage}} ({{percent}}%) — {{elapsed}}`,notUsedByPlate:`— wird von dieser Platte nicht verwendet`,noPresetsForSlot:`Keine Profile verfügbar`,otherPrinters:`Andere Drucker`,presetsLoadFailed:`Profile konnten nicht geladen werden. Importiere sie zuerst unter Einstellungen → Profile.`,refreshPresets:`Aktualisieren`,refreshPresetsTitle:`Profile neu laden — die aktuellen Cloud- und Bundle-Listen abrufen (nach dem Löschen eines Profils in Bambu Studio oder Bambu Handy verwenden)`,allPresetsRequired:`Alle Profile müssen ausgewählt sein`,useEmbedded:`Eingebettete Einstellungen der Datei verwenden`,useEmbeddedHint:`So slicen, wie der Ersteller es angelegt hat (Wände, Füllung, Filament), statt mit den obigen Profilen. Verfügbar, weil dein Drucker zur Datei passt.`,designSettings:`Einstellungen des Erstellers behalten`,designSettingsHint:`Diese Datei ändert {{count}} Druckeinstellung(en) gegenüber dem Standardprofil.`,designSettingsSelected:`{{selected}} von {{total}} ausgewählt`,designSettingsPrinterCoupled:`druckerspezifisch`,designSettingsPrinterCoupledHint:`Auf den Drucker abgestimmt, für den die Datei erstellt wurde — auf deinem kann der Wert falsch oder unzulässig sein.`,enqueuing:`Slice-Auftrag wird übermittelt…`,queued:`In Warteschlange…`,failed:`Slicen fehlgeschlagen. Logs des Slicer-Sidecars prüfen.`,startedToast:`{{name}} wird im Hintergrund gesliced…`,queuedToast:`Warteschlange: {{name}} — {{elapsed}}`,runningToast:`{{name}} wird gesliced — {{elapsed}}`,runningWithProgress:`{{name}} – {{stage}} ({{percent}} %) – {{elapsed}}`,runningWithProgressMultiPlate:`Plate {{plateIndex}} von {{plateCount}} • {{name}} – {{stage}} ({{percent}} %) – {{elapsed}}`,completedToast:`{{name}} wurde gesliced`,failedTitle:`Slicen fehlgeschlagen`,failedToast:`Slicen von {{name}} fehlgeschlagen: {{detail}}`,tier:{local:`Importiert`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`Standard`},cloud:{notAuthenticated:`In Bambu Cloud anmelden (Einstellungen → Profile → Bambu Cloud), um deine Cloud-Profile zu sehen.`,expired:`Bambu-Cloud-Sitzung abgelaufen — erneut anmelden, um die Cloud-Profile zu aktualisieren.`,unreachable:`Bambu Cloud ist gerade nicht erreichbar. Lokale und Standard-Profile funktionieren weiterhin.`},orcaCloud:{notAuthenticated:`Bei Orca Cloud anmelden (Profile → Orca Cloud), um Ihre Orca-Profile zu sehen.`,expired:`Orca Cloud-Sitzung abgelaufen — erneut anmelden, um die Orca-Profile zu aktualisieren.`,unreachable:`Orca Cloud ist derzeit nicht erreichbar. Andere Profile funktionieren weiterhin.`},bedType:{label:`Druckbett`,auto:`Auto (aus Prozess-Profil)`,coolPlate:`Cool Plate`,coolPlateSuperTack:`Cool Plate SuperTack`,engineering:`Engineering Plate`,highTemp:`High Temp Plate`,texturedPEI:`Textured PEI Plate`,smoothPEI:`Smooth PEI Plate`},pipelines:{label:`Pipeline`,applyAria:`Pipeline anwenden`,applyPrompt:`Pipeline anwenden…`,empty:`Keine gespeicherten Pipelines`,saveButton:`Als Pipeline speichern`,saveTitle:`Aktuelle Auswahl aller vier Slots als wiederverwendbare Pipeline speichern`,namePlaceholder:`Pipeline-Name`,nameAria:`Neuer Pipeline-Name`,toast:{applied:`„{{name}}“ angewendet`,saved:`Pipeline gespeichert`,saveFailed:`Speichern fehlgeschlagen`}}},spoolman:{title:`Spoolman-Integration`,enabled:`Spoolman aktiviert`,url:`Spoolman URL`,connected:`Verbunden`,disconnected:`Nicht verbunden`,testConnection:`Verbindung testen`,sync:`Synchronisieren`,syncing:`Synchronisiert...`,lastSync:`Letzte Synchronisierung`,linkToSpoolman:`Mit Spoolman verknüpfen`,openInSpoolman:`In Spoolman öffnen`,unlinkSpool:`Spule trennen`,unlinkConfirmTitle:`Spule entfernen?`,unlinkConfirmMessage:`Die Spule wird vom Slot entfernt. Die Spulendaten selbst bleiben unverändert.`,selectSpool:`Spule auswählen`,noUnlinkedSpools:`Keine nicht zugewiesenen Spulen verfügbar`,linkSuccess:`Spule erfolgreich zugewiesen`,linkFailed:`Spule konnte nicht zugewiesen werden`,unlinkSuccess:`Spule erfolgreich entfernt`,unlinkFailed:`Spule konnte nicht entfernt werden`,linkedSpool:`Zugewiesene Spule`,spoolId:`Spulen-ID`,fillSourceLabel:`(Spoolman)`,weight:`Gewicht`,remaining:`Verbleibend`,disableWeightSync:`AMS-Gewichtsschätzung deaktivieren`,disableWeightSyncDesc:`Verbleibende Kapazität nicht aus AMS-Schätzungen aktualisieren. Verwenden Sie dies, wenn Sie die Verbrauchserfassung von Spoolman gegenüber den prozentualen AMS-Schätzungen bevorzugen. Neue Spulen verwenden weiterhin die AMS-Schätzung als Anfangsgewicht.`,reportPartialUsage:`Teilverbrauch bei fehlgeschlagenen Drucken melden`,reportPartialUsageDesc:`Wenn ein Druck fehlschlägt oder abgebrochen wird, den geschätzten Filamentverbrauch bis zu diesem Zeitpunkt basierend auf dem Schichtfortschritt melden.`},locations:{title:`Lagerorte`,subtitle:`Regale, Schubladen und andere physische Lagerplätze für Spulen verwalten`,add:`Lagerort hinzufügen`,addShort:`Hinzufügen`,edit:`Lagerort bearbeiten`,name:`Name`,spools:`Spulen`,empty:`Noch keine Lagerorte. Erstellen Sie Ihr erstes Regal oder Ihre erste Schublade.`,manage:`Lagerorte`,createPlaceholder:`z. B. Regal A, Schublade 1`,nameRequired:`Name des Lagerorts ist erforderlich`,created:`Lagerort erstellt`,updated:`Lagerort aktualisiert`,deleted:`Lagerort gelöscht`,saveFailed:`Lagerort konnte nicht gespeichert werden`,deleteFailed:`Lagerort konnte nicht gelöscht werden`,deleteBlocked:`Entfernen Sie zuerst alle Spulen von diesem Lagerort`,confirmDelete:`„{{name}}“ löschen?`,confirmDeleteMessage:`Dieser Lagerort wird aus dem Katalog entfernt. Spulen müssen zuerst verschoben werden.`},inventory:{title:`Spulen-Inventar`,subtitle:`Verwalten Sie Ihre Spulen`,addToInventory:`Zum Inventar hinzufügen`,addToInventoryPending:`Wird hinzugefügt...`,addToInventorySuccess:`Spule zum Inventar hinzugefügt`,addToInventoryFailed:`Spule konnte nicht zum Inventar hinzugefügt werden`,unknownSpoolTitle:`Neues Filament erkannt`,unknownSpoolMessage:`An {{location}} wurde eine Spule mit unbekanntem RFID-Tag erkannt. Jetzt zum Inventar hinzufügen?`,unknownSpoolSlot:`Slot`,bulk:{selectAllVisible:`Alle sichtbaren auswählen`,selectRow:`Zeile auswählen`,selectGroup:`Gruppe auswählen`,selectionCount:`{{count}} ausgewählt`,edit:`Bearbeiten`,printLabels:`Etiketten drucken`,resetUsage:`Verbrauch zurücksetzen`,restore:`Wiederherstellen`,archive:`Archivieren`,delete:`Löschen`,clearSelection:`Auswahl aufheben`,editTitle:`Spulen sammelbearbeiten`,editSubtitle:`Wird auf {{count}} ausgewählte Spulen angewendet. Nur angekreuzte Felder werden aktualisiert.`,editHint:`In ein Feld tippen markiert es für die Aktualisierung — nur angekreuzte Zeilen werden gesendet. Leere Felder bleiben unverändert (Felder leeren geht nur pro Spule).`,useCustom:`„{{value}}" verwenden`,toggleField:`Aktualisierung für dieses Feld umschalten`,changeCount:`{{count}} Felder werden aktualisiert.`,applyPending:`Wird angewendet...`,applyButton:`Auf {{count}} Spulen anwenden`,deleteTitle:`Ausgewählte Spulen löschen`,archiveTitle:`Ausgewählte Spulen archivieren`,restoreTitle:`Ausgewählte Spulen wiederherstellen`,resetUsageTitle:`Verbrauch ausgewählter Spulen zurücksetzen`,deleteMessage:`{{count}} Spulen dauerhaft löschen? Dies kann nicht rückgängig gemacht werden.`,archiveMessage:`{{count}} Spulen archivieren? Sie können später wiederhergestellt werden.`,restoreMessage:`{{count}} archivierte Spulen wiederherstellen?`,resetUsageMessage:`Den "Gesamtverbrauch"-Zähler auf {{count}} Spulen zurücksetzen? Die verbleibende Menge bleibt erhalten.`,updateSuccess:`{{count}} Spulen aktualisiert`,updateFailed:`Sammelaktualisierung fehlgeschlagen`,updatePartial:`{{ok}} Spulen aktualisiert, {{failed}} fehlgeschlagen`,updateAllFailed:`Alle {{count}} Aktualisierungen fehlgeschlagen — Auswahl bleibt erhalten zum erneuten Versuch`,deleteSuccess:`{{count}} Spulen gelöscht`,deleteFailed:`Sammellöschung fehlgeschlagen`,deletePartial:`{{ok}} Spulen gelöscht, {{failed}} fehlgeschlagen`,deleteAllFailed:`Alle {{count}} Löschungen fehlgeschlagen — Auswahl bleibt erhalten zum erneuten Versuch`,archiveSuccess:`{{count}} Spulen archiviert`,archiveFailed:`Sammelarchivierung fehlgeschlagen`,archivePartial:`{{ok}} Spulen archiviert, {{failed}} fehlgeschlagen`,archiveAllFailed:`Alle {{count}} Archivierungen fehlgeschlagen — Auswahl bleibt erhalten zum erneuten Versuch`,restoreSuccess:`{{count}} Spulen wiederhergestellt`,restoreFailed:`Sammelwiederherstellung fehlgeschlagen`,restorePartial:`{{ok}} Spulen wiederhergestellt, {{failed}} fehlgeschlagen`,restoreAllFailed:`Alle {{count}} Wiederherstellungen fehlgeschlagen — Auswahl bleibt erhalten zum erneuten Versuch`,invalidHex:`6 Hex-Zeichen (RRGGBB) oder 8 (RRGGBBAA) eingeben. Anderenfalls wird das Feld nicht übernommen.`},spoolmanMixedContentTitle:`Spoolman lässt sich nicht über HTTPS laden — Browser blockiert gemischte Inhalte`,spoolmanMixedContentBody:`Bambuddy wird über HTTPS ausgeliefert (über deinen Reverse-Proxy), aber deine Spoolman-URL ist nach wie vor HTTP. Browser blockieren gemischte Inhalte aus Sicherheitsgründen, daher kann die eingebettete Spoolman-Oberfläche nicht geladen werden. Spoolman muss ebenfalls über HTTPS erreichbar sein.`,spoolmanMixedContentFixReverseProxy:`Stelle Spoolman hinter denselben Reverse-Proxy wie Bambuddy (Traefik / Nginx / Caddy) mit HTTPS und aktualisiere die Spoolman-URL in den Einstellungen auf die neue HTTPS-Adresse.`,spoolmanMixedContentFixOpenNewTab:`Als Workaround kannst du Spoolman in einem neuen Tab über HTTP öffnen — gemischte Inhalte werden nur innerhalb eingebetteter Frames blockiert, ein eigener Tab funktioniert weiterhin.`,spoolmanOpenInNewTab:`Spoolman in neuem Tab öffnen`,labels:{title:`Spulen-Etiketten drucken`,selectedCount:`{{count}} ausgewählt`,pickSpools:`Wählen Sie, für welche Spulen Etiketten gedruckt werden sollen:`,monochrome:`Monochrom (Schwarz-Weiß-Drucker)`,monochromeHint:`Entfernt das Farbfeld und verbreitert den Text`,searchPlaceholder:`Name, Marke oder #ID suchen`,filterByMaterial:`Material:`,allMaterials:`Alle`,selectVisible:`Alle sichtbaren auswählen ({{count}})`,deselectVisible:`Sichtbare abwählen`,clearAll:`Alle entfernen`,noSpoolsToShow:`Keine Spulen anzuzeigen. Filter anpassen und erneut versuchen.`,noMatches:`Keine Spulen entsprechen der aktuellen Suche oder dem Filter.`,printOne:`Etikett für diese Spule drucken`,printLabels:`Etiketten drucken…`,bulkTitle:`Spulen aus den aktuell angezeigten {{count}} zum Etikettieren auswählen`,noSpoolsTitle:`Keine Spulen zum Etikettieren`,error:`Etiketten konnten nicht erstellt werden: {{msg}}`,sortBy:{label:`Sortieren:`,id:`Nach ID`,color:`Nach Farbe`},templates:{amsHolderSmall:{label:`AMS-Halter — klein (74 × 33 mm)`,hint:`Ein Etikett pro Seite; passt zum druckbaren Etikett aus dem MakerWorld-Modell 752566 (AMS-Filament-Etikettenhalter).`},amsHolderLarge:{label:`AMS-Halter — groß (75 × 55 mm)`,hint:`Ein Etikett pro Seite; passt zur Kartoneinleger-Variante des AMS-Filament-Etikettenhalters. Genug Platz für Farbprobe, Marke, Material, ID und QR-Code.`},box40x30:{label:`Boxetikett (40 × 30 mm)`,hint:`Ein Etikett pro Seite; gängige DK/Brother-Rollengröße, ideal für Filament-Beutel und Lager-Etiketten.`},box:{label:`Box label (62 × 29 mm)`,hint:`Ein Etikett pro Seite; für Brother PT/QL und Dymo-Kleinetiketten dimensioniert.`},averyL7160:{label:`Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)`,hint:`EU-Bogenformat; 21 Etiketten pro A4-Seite.`},avery5160:{label:`Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)`,hint:`US-Bogenformat; 30 Etiketten pro Letter-Seite.`}}},csv:{importButton:`CSV importieren`,exportButton:`CSV exportieren`,modalTitle:`Spulen aus CSV importieren`,selectFile:`CSV-Datei auswählen oder hierher ziehen`,dragHint:`Kopfzeile: material (erforderlich), brand, subtype, color_name, rgba, …`,parsing:`Datei wird gelesen…`,previewError:`CSV-Datei konnte nicht gelesen werden`,validCount:`{{count}} gültig`,errorCount:`{{count}} Fehler`,skippedCount:`{{count}} übersprungen`,colRow:`Zeile`,colStatus:`Status`,colColor:`Farbe`,colorResolved:`Farbe aus Katalog übernommen`,colorCrossMaterial:`Farbe von einem anderen Material übernommen — keine exakte Übereinstimmung im Katalog`,duplicateExisting:`Eine Spule mit diesem Material, dieser Marke und Farbe existiert bereits — sie wird trotzdem als neue Spule importiert`,spoolmanHint:`Im Spoolman-Modus den integrierten CSV-Import/-Export von Spoolman verwenden.`,importValidRows:`{{count}} gültige Zeilen importieren`,noValidRows:`Keine gültigen Zeilen`,importing:`Wird importiert…`,importSuccess:`{{count}} Spulen importiert`,importError:`Import fehlgeschlagen`,exportError:`Export fehlgeschlagen`},addSpool:`Spule hinzufügen`,copySpool:`Spule kopieren`,editSpool:`Spule bearbeiten`,material:`Material`,selectMaterial:`Material auswählen...`,subtype:`Untertyp`,brand:`Marke`,searchBrand:`Marke suchen...`,useCustomBrand:`"{{brand}}" verwenden`,useCustomMaterial:`Benutzerdefiniertes Material verwenden: {{material}}`,suggestedOptions:`Vorgeschlagen`,allOptions:`Alle`,colorName:`Farbname`,colorNamePlaceholder:`Jadeweiß, Feuerrot...`,color:`Farbe`,hexColor:`Hex-Farbe`,pickColor:`Benutzerdefinierte Farbe wählen`,labelWeight:`Nenngewicht`,coreWeight:`Leergewicht der Spule`,searchSpoolWeight:`Spulengewicht suchen...`,weightUsed:`Verbraucht`,currentWeight:`Restgewicht`,measuredWeight:`Gemessenes Gewicht`,spoolName:`Spule`,costPerKg:`Kosten pro kg`,storageLocation:`Lagerstandort`,storageLocationPlaceholder:`z.B. Regal A, Schublade 1`,openInInventory:`Im Inventar öffnen`,measuredWeightError:`Das gemessene Gewicht muss zwischen {{min}}g und {{max}}g liegen.`,slicerFilament:`Slicer-Filament`,slicerFilamentName:`Slicer-Preset-Name`,slicerPreset:`Slicer-Preset`,searchPresets:`Filament-Presets suchen...`,selectedPreset:`Ausgewählt`,noPresetsFound:`Keine Presets gefunden`,tempOverrides:`Temperatur-Überschreibungen`,note:`Notiz`,notePlaceholder:`Zusätzliche Notizen zu dieser Spule...`,category:`Kategorie`,categoryPlaceholder:`z. B. Produktion, Prototyp, Kunde A`,categoryNone:`Ohne Kategorie`,storageLocationNone:`Kein Lagerort`,lowStockThresholdOverride:`Niedrigbestandsschwelle (diese Spule)`,lowStockThresholdOverrideHelp:`Leer lassen, um den globalen Schwellenwert ({{global}}%) zu verwenden.`,clearRfid:`RFID-Tag löschen`,rfidCleared:`RFID-Tag gelöscht`,archive:`Archivieren`,restore:`Wiederherstellen`,noSpools:`Noch keine Spulen. Fügen Sie Ihre erste Spule hinzu.`,noAvailableSpools:`Keine Spulen verfügbar. Fügen Sie eine Spule zum Inventar hinzu oder lösen Sie eine aus einem anderen Slot.`,kProfiles:`K-Profile`,addKProfile:`K-Profil hinzufügen`,assignSpool:`Spule zuweisen`,unassignSpool:`Zuweisung aufheben`,assignSuccess:`Spule zugewiesen und AMS-Slot konfiguriert`,assignPendingInsert:`Zugewiesen. Slot wird beim Einsetzen der Spule konfiguriert.`,assignFailed:`Spulenzuweisung fehlgeschlagen`,selectSpool:`Wählen Sie eine Spule für diesen Slot`,assigned:`Zugewiesen`,assigning:`Wird zugewiesen...`,searchSpools:`Spulen suchen...`,showAllSpools:`Alle Spulen anzeigen`,spoolmanSpools:`Spoolman-Spulen`,allMaterials:`Alle Materialien`,filterByBrand:`Nach Marke filtern...`,showArchived:`Archivierte anzeigen`,quickAdd:`Schnellerfassung (Lager)`,quantity:`Menge`,stock:`Lager`,configured:`Konfiguriert`,spoolsCreated:`{{count}} Spulen erstellt`,spoolsPartiallyCreated:`{{created}} von {{total}} Spulen erstellt (einige fehlgeschlagen)`,spoolCreated:`Spule erstellt`,spoolUpdated:`Spule aktualisiert`,spoolDeleted:`Spule gelöscht`,deepLinkSpoolNotFound:`Spule nicht gefunden`,deepLinkFetchFailed:`Spule konnte nicht geladen werden — bitte erneut versuchen`,spoolArchived:`Spule archiviert`,spoolRestored:`Spule wiederhergestellt`,kProfileSaveFailed:`K-Profil-Einstellungen konnten nicht gespeichert werden`,syncWeightSpoolNotFound:`Spule nicht gefunden — sie wurde möglicherweise gelöscht`,syncWeightSpoolmanUnreachable:`Spoolman ist nicht erreichbar — bitte später erneut versuchen`,syncWeightFailed:`Gewicht konnte nicht synchronisiert werden`,spoolmanUnreachable:`Spoolman ist nicht erreichbar — bitte später erneut versuchen`,deleteSpoolNotFound:`Spule nicht gefunden — sie wurde möglicherweise bereits gelöscht`,deleteFailed:`Spule konnte nicht gelöscht werden`,archiveSpoolNotFound:`Spule nicht gefunden — sie wurde möglicherweise bereits gelöscht`,archiveFailed:`Spule konnte nicht archiviert werden`,restoreSpoolNotFound:`Spule nicht gefunden — sie wurde möglicherweise bereits gelöscht`,restoreFailed:`Spule konnte nicht wiederhergestellt werden`,saveFailed:`Änderungen konnten nicht gespeichert werden`,tagClearFailed:`Tag konnte nicht gelöscht werden`,deleteConfirm:`Möchten Sie diese Spule wirklich löschen? Dies kann nicht rückgängig gemacht werden.`,archiveConfirm:`Möchten Sie diese Spule wirklich archivieren?`,advancedSettings:`Erweiterte Einstellungen`,filamentInfoTab:`Filament-Info`,paProfileTab:`PA-Profil`,filamentInfo:`Filament`,additional:`Zusätzlich`,loadingPresets:`Cloud-Presets werden geladen...`,cloudConnected:`Cloud verbunden`,cloudNotConnected:`Cloud nicht verbunden (Standardwerte)`,recentColors:`Zuletzt`,searchColors:`Farben suchen...`,searchResults:`Suchergebnisse`,allColors:`Alle Farben`,commonColors:`Häufige Farben`,showLess:`Weniger`,showAll:`Alle`,noColorsFound:`Keine Farben gefunden`,noResults:`Keine Ergebnisse`,extraColorsLabel:`Zusätzliche Farben`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`2 bis 8 Hex-Stops, durch Kommas getrennt. Wird als Verlauf dargestellt.`,extraColorsInvalid:`Ungültige Hex-Werte ignoriert: {{tokens}}`,colorEffectLabel:`Effekt`,colorEffect:{none:`Keiner`,sparkle:`Glitzer`,wood:`Holz`,marble:`Marmor`,glow:`Leuchtend`,matte:`Matt`,silk:`Seide`,galaxy:`Galaxie`,rainbow:`Regenbogen`,metal:`Metallic`,translucent:`Lichtdurchlässig`,gradient:`Verlauf`,dualColor:`Zweifarbig`,triColor:`Dreifarbig`,multicolor:`Mehrfarbig`},selectMaterialFirst:`Bitte zuerst ein Material im Filament-Info Tab auswählen.`,noPrintersConfigured:`Keine Drucker konfiguriert. Fügen Sie Drucker hinzu.`,matchingFilter:`Filter`,anyBrand:`Jede Marke`,anyVariant:`Jede Variante`,autoSelect:`Auto-Auswahl`,matches:`Treffer`,match:`Treffer`,noMatches:`Keine Treffer`,connected:`Verbunden`,offline:`Offline`,printerOffline:`Drucker ist offline. Verbinden Sie ihn, um Kalibrierungsprofile anzuzeigen.`,noKProfilesMatch:`Keine K-Profile stimmen mit dem gewählten Filament überein.`,leftNozzle:`Linke Düse`,rightNozzle:`Rechte Düse`,profilesSelected:`Kalibrierungsprofil(e) ausgewählt`,totalInventory:`Gesamtbestand`,totalConsumed:`Gesamtverbrauch`,byMaterial:`Nach Material`,inPrinter:`Im Drucker`,lowStock:`Niedriger Bestand`,sinceTracking:`Seit Beginn der Erfassung`,resetConsumedCounter:`Zähler zurücksetzen`,resetConsumedCounterTooltip:`Den verbrauchten Gramm-Zähler dieser Spule auf null setzen. Das Restgewicht bleibt unverändert.`,resetConsumedCounterConfirm:`Verbrauchten Gramm-Zähler dieser Spule auf 0 zurücksetzen? Künftige Drucke zählen wieder ab null. Die Spule selbst, ihre Restgewichtsberechnung und Ihre Einstellungen bleiben unverändert.`,resetAllConsumedCounters:`Alle Zähler zurücksetzen`,resetAllConsumedCountersTooltip:`Den verbrauchten Gramm-Zähler auf jeder Spule auf null setzen. Die Restgewichte bleiben unverändert.`,resetAllConsumedCountersConfirm:`Verbrauchten Gramm-Zähler auf allen {{count}} Spulen (archivierte eingeschlossen) auf 0 zurücksetzen? Das löscht den Wert „Insgesamt verbraucht“, sodass künftige Drucke wieder ab null gezählt werden. Spulen und Restgewichte bleiben unverändert.`,consumedCounterReset:`Zähler zurückgesetzt`,allConsumedCountersReset:`Zähler für {{count}} Spule(n) zurückgesetzt`,resetConsumedCounterFailed:`Zähler konnte nicht zurückgesetzt werden`,loadedInAms:`Im AMS/Ext geladen`,remaining:`Verbleibend`,weightCheck:`Gewichtskontrolle`,lastWeighed:`Zuletzt gewogen`,neverWeighed:`Nie gewogen`,search:`Spulen suchen...`,showing:`Zeige`,to:`bis`,of:`von`,show:`Zeige`,spools:`Spulen`,spool:`Spule`,page:`Seite`,noSpoolsMatch:`Keine Ergebnisse`,noSpoolsMatchDesc:`Versuchen Sie, Ihre Suche oder Filter anzupassen.`,active:`Aktiv`,archived:`Archiviert`,all:`Alle`,used:`Verwendet`,new:`Neu`,clearFilters:`Filter löschen`,table:`Tabelle`,cards:`Karten`,net:`Netto`,groupSimilar:`Gruppieren`,groupedSpools:`{{count}} identische Spulen`,groupedRows:`Zeilen`,columns:`Spalten`,configureColumns:`Spalten konfigurieren`,configureColumnsDesc:`Ziehen zum Neuordnen oder Pfeile verwenden. Sichtbarkeit mit dem Augensymbol umschalten.`,visible:`sichtbar`,reset:`Zurücksetzen`,cancel:`Abbrechen`,applyChanges:`Änderungen anwenden`,moveUp:`Nach oben`,moveDown:`Nach unten`,hideColumn:`Spalte ausblenden`,showColumn:`Spalte einblenden`,linkToSpool:`Mit Spule verknüpfen`,tagLinked:`Tag mit Spule verknüpft`,tagLinkFailed:`Tag-Verknüpfung fehlgeschlagen`,tagAlreadyLinked:`Tag bereits mit anderer Spule verknüpft`,unknownTag:`Unbekannter RFID-Tag erkannt`,usageHistory:`Verbrauchshistorie`,noUsageHistory:`Noch kein Verbrauch erfasst`,printName:`Druckname`,weightConsumed:`Verbrauchtes Gewicht`,clearHistory:`Löschen`,historyCleared:`Verbrauchshistorie gelöscht`,fillSourceLabel:`(Inv)`,lowStockThresholdError:`Der Schwellenwert muss zwischen 0.1 und 99.9 liegen`,assignMismatchTitle:`Material stimmt nicht überein`,assignMismatchMessage:`Das ausgewählte Spulenmaterial "{{spoolMaterial}}" stimmt nicht mit dem Tray-Material "{{trayMaterial}}" für {{location}} überein. Trotzdem zuweisen?`,assignMismatchConfirm:`Trotzdem zuweisen`,assignPartialMismatchMessage:`Das Spulenmaterial "{{spoolMaterial}}" ist ähnlich, stimmt aber nicht genau mit "{{trayMaterial}}" in {{location}} überein. Möchten Sie fortfahren?`,assignProfileMismatchMessage:`Das Spulenprofil "{{spoolProfile}}" stimmt nicht mit dem Fachprofil "{{trayProfile}}" in {{location}} überein. Möchten Sie fortfahren?`,assignReconfigureNote:`Der AMS-Slot wird mit dem Profil der Spule neu konfiguriert.`,spoolmanFilamentCatalog:`Spoolman-Filamentkatalog`,pickFromSpoolmanCatalog:`Aus Spoolman-Katalog wählen…`,spoolmanFilamentSelected:`Filament aus Spoolman-Katalog ausgewählt`,spoolmanFilamentUnlinked:`Verknüpfung mit Filamentkatalog aufgehoben`,noSpoolmanFilaments:`Keine Filamente im Spoolman-Katalog gefunden`,spoolmanFilamentColorSwatch:`Filamentfarbe`,spoolWeightManagedBySpoolman:`Das Leerspulengewicht wird pro Filamenttyp in Spoolman verwaltet`,spoolmanCatalogLoadFailed:`Spoolman-Filamentkatalog konnte nicht geladen werden`},timelapse:{title:`Zeitraffer`,create:`Zeitraffer erstellen`,download:`Herunterladen`,delete:`Löschen`,preview:`Vorschau`,frameRate:`Bildrate`,quality:`Qualität`,processing:`Wird verarbeitet...`,noTimelapses:`Keine Zeitraffer verfügbar`},ams:{title:`AMS`,slot:`Slot`,empty:`Leer`,emptySlot:`Leerer Slot`,slotEmpty:`Leer`,slotUnconfigured:`?`,emptySlotReset:`Keine Spule zugewiesen`,unknown:`Unbekannt`,humidity:`Luftfeuchtigkeit`,temperature:`Temperatur`,filamentType:`Filamenttyp`,filamentColor:`Farbe`,remaining:`Verbleibend`,history:`AMS-Verlauf`,noHistory:`Kein Verlauf verfügbar`,configureSlot:`Slot konfigurieren`,externalSpool:`Externe Spule`,profile:`Profil`,kFactor:`K-Faktor`,fill:`Füllstand`,configure:`Konfigurieren`,used:`verwendet`,remainingUnit:`verbleibend`},printModal:{selectPrinter:`Drucker auswählen`,selectPlate:`Platte auswählen`,filamentMapping:`Filamentzuordnung`,plateN:`Platte {{n}}`,plateFilamentsUnreadable:`Die Filamente einer ausgewählten Platte konnten nicht gelesen werden, sie lässt sich daher nicht zuordnen. Wähle sie ab, um die anderen einzureihen.`,totalCost:`Gesamtkosten:`,slotRemainingShort:` - {{grams}}g übrig`,printSettings:`Druckeinstellungen`,bedLeveling:`Bett-Nivellierung`,flowCalibration:`Fluss-Kalibrierung`,vibrationCalibration:`Vibrations-Kalibrierung`,layerInspection:`Erste-Schicht-Prüfung`,timelapse:`Zeitraffer`,cancel:`Abbrechen`,noPrintersAvailable:`Keine Drucker verfügbar`,printerBusy:`Drucker ist beschäftigt`,printerOffline:`Drucker ist offline`,sameTypeDifferentColor:`Gleicher Typ, andere Farbe`,filamentTypeNotLoaded:`Filamenttyp nicht geladen`,whenToPrint:`Wann drucken`,asap:`Sofort`,queue:`Warteschlange`,schedule:`Planen`,dateTime:`Datum & Uhrzeit`,invalidDateTime:`Bitte ein gültiges Datum und eine gültige Uhrzeit eingeben`,openCalendar:`Kalender öffnen`,requireManualStart:`Manuellen Start erfordern`,requirePreviousSuccess:`Nur starten, wenn der vorherige Druck erfolgreich war`,autoOffAfter:`Drucker nach Abschluss ausschalten`,helpAsap:`Der Druck wird oben in die Warteschlange eingefügt und startet, sobald ein geeigneter Drucker im Leerlauf ist.`,helpSchedule:`Der Druck startet zur geplanten Zeit, wenn der Drucker im Leerlauf ist. Wenn er belegt ist, wartet er, bis der Drucker verfügbar ist.`,helpQueue:`Der Druck wird hinten in die Warteschlange eingefügt.`,leftNozzle:`L`,rightNozzle:`R`,leftNozzleTooltip:`Linke Düse`,rightNozzleTooltip:`Rechte Düse`,filamentOverride:`Filament-Überschreibung`,filamentOverrideHint:`Filamente für modellbasierte Zuweisung optional überschreiben. Der Planer wird gegen die ausgewählten Filamente statt der ursprünglichen 3MF-Werte abgleichen.`,originalFilament:`Original`,overrideWith:`Ersetzen mit`,resetToOriginal:`Auf Original zurücksetzen`,insufficientFilamentTitle:`Nicht genug Filament`,waitingForAmsStatus:`Warte auf AMS-Status von {{printer}}…`,insufficientFilamentMessage:`Einige zugewiesene Spulen haben weniger Filament als dieser Druck benötigt:`,insufficientFilamentLine:`{{printer}} - {{slot}}: benötigt {{required}}g, verbleibend {{remaining}}g`,printAnyway:`Trotzdem drucken`,forceColorMatch:`Farbe erzwingen`,staggerPrinterStarts:`Druckerstarts staffeln`,staggerGroupSize:`Gruppengröße`,staggerInterval:`Intervall (Min.)`,staggerPreview:`{{printers}} Drucker → {{groups}} Gruppen à {{size}}, Start alle {{interval}} Min.`,staggerLastGroup:`letzte Gruppe: {{count}}`,staggerTotal:`insgesamt: {{minutes}} Min.`,staggerToPrinters:`Gestaffelt an {{count}} Drucker senden`,gcodeInjection:`Auto-Print G-code einfügen`},backup:{includesEncryptionKey:`Lokale Sicherungen enthalten die MFA-Schlüsseldatei (DATA_DIR/.mfa_encryption_key), damit ein Backup-ZIP selbstkonsistent ist. Behandle das ZIP als sensibel — wer Zugriff auf die Datei hat, kann die darin enthaltenen OIDC-Client-Secrets und TOTP-Geheimnisse entschlüsseln.`,title:`Sichern & Wiederherstellen`,createBackup:`Sicherung erstellen`,restoreBackup:`Sicherung wiederherstellen`,restoreDescription:`Alle Daten aus einer Sicherungsdatei ersetzen`,downloadBackup:`Sicherung herunterladen`,uploadBackup:`Sicherung hochladen`,lastBackup:`Letzte Sicherung`,autoBackup:`Automatische Sicherung`,backupNow:`Jetzt sichern`,restoreWarning:`Warnung: Das Wiederherstellen einer Sicherung überschreibt alle aktuellen Daten.`,includeArchives:`Archive einschließen`,includeSettings:`Einstellungen einschließen`,includeProfiles:`Profile einschließen`,backupSuccess:`Sicherung erfolgreich erstellt`,restoreSuccess:`Sicherung erfolgreich wiederhergestellt`,backupFailed:`Sicherung fehlgeschlagen`,restoreFailed:`Wiederherstellung fehlgeschlagen`,restoreNote:`Virtueller Drucker wird während der Wiederherstellung gestoppt`,githubBackup:`Git-Backup`,enabled:`Aktiviert`,cloudLoginRequired:`Bambu Cloud Login erforderlich. Melden Sie sich unter Profile → Cloud-Profile an, um GitHub-Backup zu aktivieren.`,cloudLoginRequiredShort:`Cloud-Login erforderlich`,githubDescription:`Synchronisieren Sie Ihre Profile automatisch mit einem privaten GitHub-Repository für Backup und Versionsverlauf.`,repoIsPrivate:`Repository ist privat — Sicherung möglich.`,repoIsPublicWarning:`Das Repository ist ÖFFENTLICH. Bambuddy-Backups enthalten MQTT-Zugangsdaten, Home-Assistant-Tokens, Prometheus-Tokens, Ihre Bambu-Cloud-E-Mail-Adresse und über K-Profile auch Drucker-Zugangscodes. Speichern ist blockiert, bis Sie das Repository in den Einstellungen Ihres Anbieters auf privat stellen.`,repoVisibilityUnknown:`Die Sichtbarkeit des Repositories konnte nicht bestimmt werden. Bambuddy sichert nur in Repositories, die nachweislich privat sind; Speichern wird blockiert.`,repositoryUrl:`Repository-URL`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`Unsicheres HTTP erlauben`,allowInsecureHttpHint:`Für selbst gehostete Instanzen in privaten Netzwerken ohne TLS aktivieren`,personalAccessToken:`Persönlicher Zugriffstoken`,tokenSaved:`(gespeichert)`,enterNewToken:`Neuen Token eingeben zum Aktualisieren`,tokenHint:`Feingranularer Token mit Lese-/Schreibberechtigung für Inhalte`,branch:`Branch`,provider:`Git-Anbieter`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`Nur manuell`,hourly:`Stündlich`,daily:`Täglich`,weekly:`Wöchentlich`,includeInBackup:`In Sicherung einschließen`,kProfiles:`K-Profile`,kProfilesDescription:`Druckvorschub-Kalibrierung von verbundenen Druckern`,noPrintersConnected:`Keine Drucker verbunden`,printersConnected:`{{connected}}/{{total}} verbunden`,cloudProfiles:`Cloud-Profile`,cloudProfilesDescription:`Filament-, Drucker- und Prozessprofile aus der Bambu Cloud`,appSettings:`App-Einstellungen`,appSettingsDescription:`Bambuddy-Konfiguration (komplette Datenbank)`,spoolInventory:`Spulenbestand`,spoolInventoryDescription:`Filamentspulen, Nutzungsverlauf und Kostenverfolgung`,printArchives:`Druckarchive`,printArchivesDescription:`Druckverlauf-Metadaten (keine GCode/3MF-Dateien)`,lastBackupAt:`Letzte Sicherung:`,noBackupsYet:`Noch keine Sicherungen`,next:`Nächste:`,startingBackup:`Sicherung wird gestartet...`,test:`Test`,enableBackup:`Sicherung aktivieren`,testConnection:`Verbindung testen`,enterRepoUrl:`Repository-URL eingeben`,enterRepoAndToken:`Repository-URL und Zugriffstoken eingeben`,repoRequired:`Repository-URL ist erforderlich`,tokenRequired:`Zugriffstoken ist erforderlich`,githubBackupEnabled:`GitHub-Backup aktiviert`,tokenUpdated:`Token aktualisiert`,settingsSaved:`Einstellungen gespeichert`,failedToSave:`Speichern fehlgeschlagen: {{message}}`,backupCompleteFiles:`Sicherung abgeschlossen - {{count}} Dateien aktualisiert`,backupSkippedNoChanges:`Sicherung übersprungen - keine Änderungen`,backupFailed2:`Sicherung fehlgeschlagen: {{message}}`,clearedLogs:`{{count}} Protokolle gelöscht`,failedToClearLogs:`Protokolle löschen fehlgeschlagen: {{message}}`,history:`Verlauf`,clear:`Löschen`,date:`Datum`,status:`Status`,commit:`Commit`,localBackup:`Lokale Sicherung`,localBackupDescription:`Erstellen Sie eine vollständige Sicherung Ihrer Bambuddy-Daten einschließlich Datenbank, Archive, Uploads und aller Dateien.`,downloadBackupLabel:`Sicherung herunterladen`,completeBackupZip:`Vollständige Sicherung: Datenbank + alle Dateien (ZIP)`,download:`Herunterladen`,preparingBackup:`Sicherung wird vorbereitet...`,creatingArchive:`Sicherungsarchiv wird erstellt... Dies kann bei großen Archiven eine Weile dauern.`,downloadingFile:`Sicherungsdatei wird heruntergeladen...`,backupDownloaded:`Sicherung erfolgreich heruntergeladen`,failedToCreateBackup:`Sicherung erstellen fehlgeschlagen: {{message}}`,restore:`Wiederherstellen`,restoreReplacesAll:`Wiederherstellung ersetzt alle Daten.`,restoreReplacesAllDetail:`Ihre aktuelle Datenbank und Dateien werden vollständig ersetzt. Nach der Wiederherstellung ist ein Neustart erforderlich.`,restoreConfirmTitle:`Sicherung wiederherstellen`,restoreConfirmMessage:`Sind Sie sicher, dass Sie von "{{filename}}" wiederherstellen möchten? Dies ersetzt Ihre aktuelle Datenbank und alle Dateien vollständig. Die Anwendung muss nach der Wiederherstellung neu gestartet werden.`,restoreConfirmButton:`Sicherung wiederherstellen`,uploadingFile:`Sicherungsdatei wird hochgeladen...`,backupRestoredRestart:`Sicherung wiederhergestellt. Bitte starten Sie Bambuddy neu.`,failedToRestore:`Sicherung wiederherstellen fehlgeschlagen. Bitte überprüfen Sie das Dateiformat.`,reloadNow:`Jetzt neu laden`,creatingBackup:`Sicherung erstellen`,restoringBackup:`Sicherung wiederherstellen`,preparing:`Vorbereiten...`,processing:`Verarbeiten...`,doNotClosePage:`Bitte schließen Sie diese Seite nicht und navigieren Sie nicht weg. Dieser Vorgang kann bei großen Sicherungen mehrere Minuten dauern.`,restoring:`Wiederherstellen...`,restoreComplete:`Wiederherstellung abgeschlossen`,restoreFailed2:`Wiederherstellung fehlgeschlagen`,importSettings:`Einstellungen aus einer Sicherungsdatei importieren`,pleaseWaitRestoring:`Bitte warten Sie, während Ihre Daten wiederhergestellt werden`,selectBackupFile:`Klicken Sie, um eine Sicherungsdatei auszuwählen (.json oder .zip)`,duplicateHandling:`So funktioniert die Duplikatbehandlung:`,matchPrinters:`Drucker`,matchPrintersBy:`abgeglichen nach Seriennummer`,matchSmartPlugs:`Smart Plugs`,matchSmartPlugsBy:`abgeglichen nach IP-Adresse`,matchNotificationProviders:`Benachrichtigungsanbieter`,matchNotificationProvidersBy:`abgeglichen nach Name`,matchFilaments:`Filamente`,matchFilamentsBy:`abgeglichen nach Name + Typ + Marke`,matchArchives:`Archive`,matchArchivesBy:`abgeglichen nach Inhaltshash (immer übersprungen)`,matchPendingUploads:`Ausstehende Uploads`,matchPendingUploadsBy:`abgeglichen nach Dateiname`,matchSettingsTemplates:`Einstellungen & Vorlagen`,matchSettingsTemplatesBy:`immer überschrieben`,replaceExisting:`Vorhandene Daten ersetzen`,keepExisting:`Vorhandene Daten behalten`,overwriteDescription:`Bereits vorhandene Elemente mit Sicherungsdaten überschreiben`,keepDescription:`Nur Elemente wiederherstellen, die noch nicht vorhanden sind`,overwriteCaution:`Achtung:`,overwriteWarning:`Das Überschreiben ersetzt Ihre aktuellen Konfigurationen durch Daten aus der Sicherung. Drucker-Zugangscodes werden aus Sicherheitsgründen nie überschrieben.`,cancel:`Abbrechen`,processingBackup:`Sicherungsdatei wird verarbeitet...`,itemsRestored:`Wiederhergestellt`,itemsSkipped:`Übersprungen`,restored:`Wiederhergestellt`,skippedAlreadyExist:`Übersprungen (bereits vorhanden)`,filesCategory:`Dateien (3MF, Thumbnails, etc.)`,andMore:`...und {{count}} weitere`,newApiKeysGenerated:`Neue API-Schlüssel generiert`,keysShownOnce:`Diese Schlüssel werden nur einmal angezeigt. Kopieren Sie sie jetzt!`,copy:`Kopieren`,noDataFound:`In der Sicherungsdatei wurden keine Daten zur Wiederherstellung gefunden.`,close:`Schließen`,scheduledBackup:`Geplante Backups`,scheduledBackupDescription:`Backup-Snapshots automatisch nach Zeitplan erstellen. Ausgabeverzeichnis kann auf einen NAS oder externen Speicher gemountet werden.`,frequency:`Frequenz`,backupTime:`Zeit`,retention:`Aufbewahrung`,retentionDescription:`Anzahl der zu behaltenden Backups`,outputPath:`Ausgabepfad`,outputPathPlaceholder:`Standard: {{path}}`,outputPathDescription:`Leer lassen für den Standardort`,runNow:`Jetzt ausführen`,backupFiles:`Backup-Dateien`,noScheduledBackups:`Noch keine Backups`,deleteBackup:`Löschen`,deleteBackupConfirm:`Diese Backup-Datei löschen?`,backupRunning:`Backup läuft...`,scheduledBackupComplete:`Backup erfolgreich abgeschlossen`,scheduledBackupFailed:`Backup fehlgeschlagen`,nextBackup:`Nächstes Backup`,backupSize:`Größe`,localTimeHint:`Ortszeit ({{tz}})`,defaultPathLabel:`Standard:`,pathCheck:{title:`Bambuddy kann nicht in dieses Verzeichnis schreiben`,howToFix:`So beheben Sie das:`,sandboxed:`Der Bambuddy-Dienst kann nicht nach {{path}} schreiben. Seine systemd-Unit läuft mit ProtectSystem=strict, wodurch jedes Verzeichnis außerhalb der Installations-, Daten- und Log-Verzeichnisse für den Dienst schreibgeschützt ist - auch eines, in das Sie aus Ihrer eigenen Shell schreiben können.`,read_only:`{{path}} liegt auf einem schreibgeschützten Dateisystem.`,permission_denied:`Bambuddy darf nicht nach {{path}} schreiben. Prüfen Sie Eigentümer und Rechte des Verzeichnisses.`,no_space:`Das Dateisystem, auf dem {{path}} liegt, ist voll.`,not_a_directory:`{{path}} existiert, ist aber kein Verzeichnis.`,missing:`{{path}} existiert nicht und konnte nicht angelegt werden.`,error:`Bambuddy kann nicht nach {{path}} schreiben.`,ephemeralTitle:`Diese Backups überleben einen Container-Neustart nicht`,container_ephemeral:`{{path}} liegt im Bambuddy-Container, nicht auf dem Host. Dort geschriebene Backups gehen verloren, sobald der Container neu erstellt wird. Binden Sie das Verzeichnis vom Host ein:`},categories:{settings:`Einstellungen`,notification_providers:`Benachrichtigungsanbieter`,notification_templates:`Benachrichtigungsvorlagen`,smart_plugs:`Smart Plugs`,printers:`Drucker`,filaments:`Filamente`,maintenance_types:`Wartungstypen`,archives:`Archive`,projects:`Projekte`,pending_uploads:`Ausstehende Uploads`,external_links:`Externe Links`,api_keys:`API-Schlüssel`}},tags:{title:`Tags`,addTag:`Tag hinzufügen`,editTag:`Tag bearbeiten`,deleteTag:`Tag löschen`,tagName:`Tag-Name`,tagColor:`Tag-Farbe`,noTags:`Keine Tags`,deleteConfirm:`Möchten Sie diesen Tag wirklich löschen?`,manageTags:`Tags verwalten`},uploadModal:{title:`3MF-Dateien hochladen`,dragDrop:`3MF-Dateien hierher ziehen`,or:`oder`,browseFiles:`Dateien durchsuchen`,extractionInfo:`Das Druckermodell wird automatisch aus den 3MF-Datei-Metadaten extrahiert.`,uploaded:`hochgeladen`,failed:`fehlgeschlagen`,uploading:`Wird hochgeladen...`,upload:`Hochladen`,uploadFailed:`Hochladen fehlgeschlagen`},editArchive:{title:`Archiv bearbeiten`,name:`Name`,namePlaceholder:`Druckname`,printer:`Drucker`,noPrinter:`Kein Drucker`,project:`Projekt`,noProject:`Kein Projekt`,itemsPrinted:`Gedruckte Teile`,itemsPrintedHelp:`Anzahl der in diesem Druckauftrag produzierten Teile`,notes:`Notizen`,notesPlaceholder:`Notizen zu diesem Druck hinzufügen...`,externalLink:`Externer Link`,externalLinkPlaceholder:`https://printables.com/model/...`,externalLinkHelp:`Link zu Printables, Thingiverse oder anderer Quelle`,tags:`Tags`,tagsPlaceholder:`Tags hinzufügen...`,addMoreTags:`Weitere Tags hinzufügen...`,matchingTags:`Übereinstimmend mit "{{query}}"`,existingTags:`Vorhandene Tags`,clickToAdd:`(zum Hinzufügen klicken)`,status:`Status`,failureReason:`Fehlergrund`,selectReason:`Grund auswählen...`,photos:`Fotos des Druckergebnisses`,photosHelp:`Klicken Sie auf + um Fotos Ihres Druckergebnisses hinzuzufügen`,printResult:`Druckergebnis`,saving:`Wird gespeichert...`,failureReasons:{adhesionFailure:`Haftungsfehler`,spaghettiDetached:`Spaghetti / Abgelöst`,layerShift:`Schichtversatz`,cloggedNozzle:`Verstopfte Düse`,filamentRunout:`Filament aufgebraucht`,warping:`Verformung`,stringing:`Fadenziehen`,underExtrusion:`Unterextrusion`,powerFailure:`Stromausfall`,userCancelled:`Vom Benutzer abgebrochen`,other:`Sonstiges`},statuses:{completed:`Abgeschlossen`,failed:`Fehlgeschlagen`,aborted:`Abgebrochen`,printing:`Druckt`}},kProfiles:{title:`K-Profile`,noPrintersConfigured:`Keine Drucker konfiguriert`,addPrinterInSettings:`Fügen Sie einen Drucker in den Einstellungen hinzu, um K-Profile zu verwalten`,noActivePrinters:`Keine aktiven Drucker`,enablePrinterConnection:`Aktivieren Sie eine Druckerverbindung, um K-Profile anzuzeigen`,loadingProfiles:`Lade K-Profile...`,printerOffline:`Drucker offline`,printerOfflineDesc:`Der ausgewählte Drucker ist nicht verbunden. Schalten Sie ihn ein, um K-Profile anzuzeigen.`,noMatchingProfiles:`Keine passenden Profile`,noMatchingProfilesDesc:`Keine Profile entsprechen Ihren Suchkriterien`,noKProfiles:`Keine K-Profile`,noKProfilesDesc:`Keine Druckvorschub-Profile für {{diameter}}mm Düse gefunden`,createFirstProfile:`Erstes Profil erstellen`,printer:`Drucker`,nozzle:`Düse`,refresh:`Aktualisieren`,addProfile:`Profil hinzufügen`,export:`Exportieren`,import:`Importieren`,select:`Auswählen`,selectAll:`Alle auswählen`,delete:`Löschen`,searchPlaceholder:`Nach Name oder Filament suchen...`,allExtruders:`Alle Extruder`,leftOnly:`Nur links`,rightOnly:`Nur rechts`,allFlow:`Alle Flusstypen`,hfOnly:`Nur HF`,sOnly:`Nur S`,sortName:`Sortieren: Name`,sortKValue:`Sortieren: K-Wert`,sortFilament:`Sortieren: Filament`,leftExtruder:`Linker Extruder`,rightExtruder:`Rechter Extruder`,modal:{addTitle:`K-Profil hinzufügen`,editTitle:`K-Profil bearbeiten`,profileName:`Profilname`,profileNamePlaceholder:`Mein PLA-Profil`,kValue:`K-Wert`,kValuePlaceholder:`0,020`,kValueHelp:`Typischer Bereich: 0,01 - 0,06 für PLA, 0,02 - 0,10 für PETG`,filament:`Filament`,selectFilament:`Filament auswählen...`,noFilamentsHelp:`Keine Filamente gefunden. Erstellen Sie zuerst ein K-Profil in Bambu Studio.`,flowType:`Flusstyp`,highFlow:`Hoher Durchfluss`,standard:`Standard`,nozzleSize:`Düsengröße`,extruder:`Extruder`,extruders:`Extruder`,left:`Links`,right:`Rechts`,notes:`Notizen (lokal gespeichert)`,notesPlaceholder:`Notizen zu diesem Profil hinzufügen...`,notesHelp:`Notizen werden in Bambuddy gespeichert, nicht auf dem Drucker`,syncing:`Synchronisiert mit Drucker...`,savingExtruder:`Speichern auf Extruder {{current}}/{{total}}...`,pleaseWait:`Bitte warten`},deleteConfirm:{title:`Profil löschen`,cannotUndo:`Dies kann nicht rückgängig gemacht werden`,message:`Möchten Sie "{{name}}" wirklich vom Drucker löschen?`},bulkDelete:{title:`Profile löschen`,cannotUndo:`Dies kann nicht rückgängig gemacht werden`,message:`Möchten Sie wirklich {{count}} ausgewählte Profile vom Drucker löschen?`},toast:{profileSaved:`K-Profil gespeichert`,profilesSaved:`K-Profil auf {{count}} Extrudern gespeichert`,selectAtLeastOneExtruder:`Bitte wählen Sie mindestens einen Extruder aus`,profileDeleted:`K-Profil gelöscht`,profilesDeleted:`{{count}} Profile gelöscht`,exportedProfiles:`{{count}} Profile exportiert`,importedProfiles:`{{count}} von {{total}} Profilen importiert`,noProfilesToExport:`Keine Profile zum Exportieren`,invalidFileFormat:`Ungültiges Dateiformat`,failedToParseImport:`Import-Datei konnte nicht gelesen werden`,failedToSaveBatch:`K-Profile konnten nicht gespeichert werden`,noteSaved:`Notiz gespeichert`,failedToSaveNote:`Notiz konnte nicht gespeichert werden`},permission:{noRead:`Sie haben keine Berechtigung, Profile zu aktualisieren`,noCreate:`Sie haben keine Berechtigung, Profile hinzuzufügen`,noUpdate:`Sie haben keine Berechtigung, K-Profile zu aktualisieren`,noDelete:`Sie haben keine Berechtigung, K-Profile zu löschen`,noExport:`Sie haben keine Berechtigung, Profile zu exportieren`,noImport:`Sie haben keine Berechtigung, Profile zu importieren`}},virtualPrinter:{title:`Virtueller Drucker`,running:`Läuft`,stopped:`Gestoppt`,description:{default:`Aktiviere einen virtuellen Drucker, der in Bambu Studio und OrcaSlicer erscheint. Dateien, die an diesen Drucker gesendet werden, werden direkt archiviert ohne zu drucken.`,proxy:`Aktiviere einen Proxy, der Slicer-Datenverkehr an einen echten Drucker weiterleitet, um Ferndruck über jedes Netzwerk zu ermöglichen.`},enable:{title:`Virtuellen Drucker aktivieren`,visibleInSlicer:`Sichtbar als "Bambuddy" in der Slicer-Erkennung`,proxyingTo:`Proxy zu {{name}}`,notActive:`Nicht aktiv`},model:{title:`Druckermodell`,description:`Wähle welches Druckermodell emuliert werden soll.`,restartWarning:`Das Ändern des Modells startet den virtuellen Drucker neu`},accessCode:{title:`Zugangscode`,isSet:`Zugangscode ist gesetzt`,notSet:`Kein Zugangscode gesetzt - erforderlich zum Aktivieren`,placeholder:`8-Zeichen-Code eingeben`,placeholderChange:`Neuen Code eingeben zum Ändern`,hint:`Muss genau 8 Zeichen lang sein. Wird von Slicern zur Authentifizierung verwendet.`,charCount:`({{count}}/8)`,inheritedFromTarget:`Vom Zieldrucker übernommen`,derivedFromTargetHint:`Verwendet den Zugangscode des Zieldruckers. Die Brücke leitet die Slicer-Authentifizierung an den echten Drucker weiter, daher müssen die Codes übereinstimmen — den Druckercode in dessen Einstellungen ändern.`,reveal:`Zugangscode anzeigen`,hide:`Zugangscode verbergen`},targetPrinter:{title:`Zieldrucker`,configured:`Proxy-Ziel konfiguriert`,notConfigured:`Kein Zieldrucker ausgewählt - erforderlich für Proxy-Modus`,placeholder:`Drucker auswählen...`,hint:`Wähle den Drucker aus, an den der Slicer-Datenverkehr weitergeleitet werden soll. Der Drucker muss im LAN-Modus sein.`,noPrinters:`Keine Drucker konfiguriert. Füge zuerst einen Drucker hinzu, um den Proxy-Modus zu verwenden.`},remoteInterface:{title:`Netzwerkschnittstelle überschreiben`,configured:`Schnittstellenüberschreibung aktiv`,optional:`Optional - verwenden wenn die automatisch erkannte IP falsch ist (z.B. mehrere NICs, Docker, VPN)`,placeholder:`Automatisch erkennen (Standard)...`,hint:`Überschreibt die per SSDP beworbene und im TLS-Zertifikat verwendete IP-Adresse. Nützlich wenn Bambuddy mehrere Netzwerkschnittstellen hat.`},mode:{title:`Modus`,archive:`Archivieren`,archiveDesc:`Dateien sofort archivieren`,review:`Überprüfen`,reviewDesc:`Vor dem Archivieren überprüfen`,queue:`Warteschlange`,queueDesc:`Archivieren und zur Warteschlange hinzufügen`,proxy:`Proxy`,proxyDesc:`An echten Drucker weiterleiten`},autoDispatch:{title:`Automatisch starten`,description:`Drucke automatisch starten, wenn sie zur Warteschlange hinzugefügt werden. Wenn deaktiviert, warten Drucke auf manuellen Start.`},queueForceColorMatch:{title:`Farbabgleich erzwingen`,description:`Druckaufträge nur an Drucker senden, bei denen der genaue Filament-Typ und die genaue Farbe geladen sind. Standardmäßig deaktiviert — ohne diese Option verwendet die Warteschlange nur den Drucker-Modell-Abgleich und wählt möglicherweise einen Drucker mit der falschen Farbe.`},gcodeInjection:{title:`G-code-Injektion`,description:`Wendet die in den Einstellungen pro Modell konfigurierten G-code-Snippets auf Jobs dieses VP an. Standardmäßig aus.`},tailscaleDisabled:{title:`Tailscale-Integration`,description:`Aktivieren, um diesen VP als per Tailscale erreichbar zu markieren. Zeigt die Tailscale-Adresse des Hosts an, damit du weißt, welche IP du im Slicer eintragen musst. Der CA-Import bleibt unverändert — diese Option hat keinen Einfluss auf Zertifikate.`},setupRequired:{title:`Einrichtung erforderlich`,description:`Die virtuelle Druckerfunktion erfordert zusätzliche Systemkonfiguration, bevor sie funktioniert. Dies beinhaltet Portweiterleitung, Firewall-Regeln und plattformspezifische Einstellungen.`,readGuide:`Lese die Einrichtungsanleitung vor dem Aktivieren`},archiveNameSource:{title:`Quelle des Archivnamens`,description:`Lege fest, wie neue Archive benannt werden, wenn Dateien über den virtuellen Drucker eintreffen. "Metadaten" verwendet den im 3MF eingebetteten Titel des Slicers (Standard). "Dateiname" nutzt den Dateinamen, den Bambu Studio per FTP gesendet hat. Hinweis: Bambu Studio überschreibt den im Dialog "Zum Drucker senden" eingegebenen Namen mit dem Titelfeld der 3MF, sofern eines vorhanden ist — beide Modi liefern daher oft denselben Wert.`,metadata:`Metadaten`,filename:`Dateiname`},caCert:{title:`Slicer-Zertifikat`,description:`Virtuelle Drucker verwenden ein TLS-Zertifikat, das von der Bambuddy-CA signiert ist. Importieren Sie dieses CA-Zertifikat einmalig in den Vertrauensspeicher Ihres Slicers, damit er die Verbindung akzeptiert — kein Abrufen über die Kommandozeile mehr nötig.`,copy:`Kopieren`,copied:`Kopiert`,download:`Herunterladen`,fingerprint:`SHA-256`},howItWorks:{title:`So funktioniert es`,step1:`Im selben LAN erscheinen virtuelle Drucker automatisch in deinem Slicer (Bambu Studio / OrcaSlicer). Aus anderen Netzwerken füge sie manuell per IP-Adresse und Zugangscode hinzu.`,step2:`Im Archiv-, Überprüfungs- und Warteschlangen-Modus verwende die "Senden"-Funktion im Slicer, um 3MF-Dateien an Bambuddy zu senden. Der Slicer zeigt "Druck erfolgreich" — die Datei wird gespeichert, nicht gedruckt.`,step3:`Im Proxy-Modus leitet der virtuelle Drucker den gesamten Datenverkehr an einen echten Drucker weiter — Drucke starten sofort wie bei einer direkten Verbindung.`},status:{title:`Status-Details`,printerName:`Druckername`,model:`Modell`,serialNumber:`Seriennummer`,mode:`Modus`,pendingFiles:`Ausstehende Dateien`,targetPrinter:`Zieldrucker`,ftpPort:`FTP-Port`,mqttPort:`MQTT-Port`,ftpConnections:`FTP-Verbindungen`,mqttConnections:`MQTT-Verbindungen`},toast:{updated:`Virtuelle Druckereinstellungen aktualisiert`,failedToUpdate:`Einstellungen konnten nicht aktualisiert werden`,copyFailed:`Kopieren fehlgeschlagen — bitte Text manuell markieren`,accessCodeRequired:`Bitte zuerst einen Zugangscode setzen`,targetPrinterRequired:`Bitte zuerst einen Zieldrucker auswählen`,bindIpRequired:`Bitte zuerst eine Bind-IP setzen`,accessCodeEmpty:`Zugangscode darf nicht leer sein`,accessCodeLength:`Zugangscode muss genau 8 Zeichen lang sein`,targetCodeChangedRebind:`Zugangscode wurde an den neuen Zieldrucker angepasst. Bitte dieses Gerät im Slicer neu hinzufügen, damit der neue Code übernommen wird.`,created:`Virtueller Drucker erstellt`,failedToCreate:`Virtueller Drucker konnte nicht erstellt werden`,deleted:`Virtueller Drucker gelöscht`,failedToDelete:`Virtueller Drucker konnte nicht gelöscht werden`},list:{title:`Virtuelle Drucker`,add:`Hinzufügen`,addFirst:`Virtuellen Drucker hinzufügen`,empty:`Keine virtuellen Drucker konfiguriert. Fügen Sie einen hinzu, um zu beginnen.`},bindIp:{title:`Bind-Interface`,placeholder:`Interface auswählen...`,hint:`Netzwerkinterface, an das dieser virtuelle Drucker gebunden wird. Muss pro Drucker eindeutig sein.`},proxy:{accessCodeHint:`Im Proxy-Modus den Zugangscode des Zieldruckers im Slicer verwenden. Die Verbindung wird transparent zum echten Drucker weitergeleitet.`},addDialog:{title:`Virtuellen Drucker hinzufügen`,name:`Name`,hint:`Sie können Zugangscode, Zieldrucker und andere Einstellungen nach dem Erstellen konfigurieren.`,create:`Erstellen`},deleteConfirm:{title:`Virtuellen Drucker löschen`,message:`Möchten Sie "{{name}}" wirklich löschen? Dies stoppt alle Dienste für diesen Drucker.`}},modelViewer:{openInSlicer:`Im Slicer öffnen`,tabs:{model:`3D-Modell`,gcode:`G-Code Vorschau`},notAvailable:`nicht verfügbar`,notSliced:`nicht geslicet`,plates:`Platten`,allPlates:`Alle Platten`,plateNumber:`Platte {{number}}`,plateCount:`{{count}} Platte`,plateCount_other:`{{count}} Platten`,objectCount:`{{count}} Objekt`,objectCount_other:`{{count}} Objekte`,filamentCount:`{{count}} Filament`,filamentCount_other:`{{count}} Filamente`,eta:`ETA {{minutes}} Min`,noPreview:`Keine Vorschau für diese Datei verfügbar`,pagination:{pageOf:`Seite {{current}} von {{total}}`,prev:`Zurück`,next:`Weiter`},errors:{failedToLoad:`Datei konnte nicht geladen werden`,noMeshes:`Keine Meshes in 3MF-Datei gefunden`,unsupportedFormat:`Nicht unterstütztes Dateiformat`}},maintenanceDescriptions:{lubricateCarbonRods:`Schmiermittel auf Karbonstäbe für sanfte Bewegung auftragen`,lubricateRails:`Schmiermittel auf Linearschienen für sanfte Bewegung auftragen`,cleanNozzle:`Hotend und Düse reinigen, um Verstopfungen zu verhindern`,checkBelts:`Riemenspannung für präzise Drucke überprüfen`,cleanBuildPlate:`Druckplatte für bessere Haftung reinigen`,checkExtruder:`Extruderzahnräder auf Verschleiß prüfen`,checkCooling:`Sicherstellen, dass Lüfter ordnungsgemäß funktionieren`,generalInspection:`Allgemeine Druckerinspektion`,cleanCarbonRods:`Karbonstäbe reinigen, um Reibung zu reduzieren`,lubricateSteelRods:`Schmiermittel auf Stahlstangen für sanfte Bewegung auftragen`,cleanSteelRods:`Stahlstangen reinigen, um Reibung zu reduzieren`,cleanLinearRails:`Linearschienen abwischen, um Staub und Schmutz zu entfernen`,checkPtfeTube:`PTFE-Schlauch auf Verschleiß oder Beschädigung prüfen`,replaceHepaFilter:`HEPA-Filter für Luftqualität ersetzen`,replaceCarbonFilter:`Aktivkohlefilter ersetzen`,lubricateLeftNozzleRail:`Linke Düsenschiene schmieren (H2-Serie)`},smartPlugs:{offline:`Offline`,admin:`Admin`,openPlugAdminPage:`Plug-Admin-Seite öffnen`,deleteSmartPlug:`Smart Plug löschen`,turnOnSmartPlug:`Smart Plug einschalten`,turnOffSmartPlug:`Smart Plug ausschalten`,turnOn:`Einschalten`,turnOff:`Ausschalten`,addSmartPlug:{scanningNetwork:`Netzwerk wird durchsucht...`,chooseEntity:`Entität auswählen...`,connectionFailed:`Verbindung fehlgeschlagen`,searchEntities:`Entitäten suchen...`,searchPowerSensors:`Leistungssensoren suchen...`,searchEnergySensors:`Energiesensoren suchen...`,placeholders:{plugName:`Wohnzimmer Steckdose`,mqttStateOnValue:`ON, true, 1`,mqttSameAsPower:`Gleich wie Leistungs-Topic oder anders`}},linkedTo:`Verbunden mit:`,monitorOnly:`Nur Überwachung`,alerts:`Alarme`,scheduleOn:`Ein {{time}}`,scheduleOff:`Aus {{time}}`,on:`Ein`,off:`Aus`,power:`Leistung`,kwhToday:`kWh Heute`,settings:`Einstellungen`,automationSettings:`Automatisierungseinstellungen`,showInSwitchbar:`In Schaltleiste anzeigen`,quickAccessSidebar:`Schnellzugriff über Seitenleiste`,enabled:`Aktiviert`,enableAutomation:`Automatisierung für diesen Stecker aktivieren`,autoOn:`Auto Ein`,autoOnDescription:`Einschalten wenn Druck startet`,autoOff:`Auto Aus`,autoOffDescription:`Ausschalten wenn Druck abgeschlossen (einmalig)`,autoOffPersistent:`Aktiviert lassen`,autoOffPersistentDescription:`Zwischen Drucken aktiviert bleiben statt einmalig`,controlsPrinterPower:`Versorgt den Drucker`,controlsPrinterPowerDescription:`Deaktivieren, wenn diese Steckdose nur Zubehör versorgt (Filterlüfter, Licht). Sonst wird der Drucker beim Ausschalten als offline markiert.`,autoOffAfterDrying:`Automatisch aus nach Trocknung`,autoOffAfterDryingDescription:`Ausschalten, wenn AMS-Trocknung abgeschlossen ist`,delayAfterDryingMinutes:`Verzögerung nach Trocknung (Minuten)`,turnOffDelayMode:`Ausschaltverzögerungsmodus`,time:`Zeit`,temp:`Temp.`,delayMinutes:`Verzögerung (Minuten)`,tempThreshold:`Temperaturschwelle (°C)`,tempThresholdDescription:`Schaltet aus wenn die Düse unter diese Temperatur abkühlt`,edit:`Bearbeiten`,deleteConfirm:`Möchten Sie "{{name}}" wirklich löschen? Dies kann nicht rückgängig gemacht werden.`,turnOnConfirm:`Möchten Sie "{{name}}" wirklich einschalten?`,turnOffConfirm:`Möchten Sie "{{name}}" wirklich ausschalten? Dies unterbricht die Stromversorgung des angeschlossenen Geräts.`,failedToTurn:`{{name}}" konnte nicht {{action}} werden`,unknown:`Unbekannt`,addTitle:`Smart Plug hinzufügen`,editTitle:`Smart Plug bearbeiten`,stopScanning:`Suche beenden`,discoverTasmota:`Tasmota Geräte suchen`,foundDevices:`{{count}} Gerät(e) gefunden - zum Auswählen klicken:`,noDevicesFound:`Keine Tasmota Geräte in Ihrem Netzwerk gefunden`,haNotConfigured:`Home Assistant ist nicht konfiguriert. Einrichtung unter`,haSettingsPath:`Einstellungen → Netzwerk → Home Assistant`,selectEntity:`Entität auswählen *`,ipAddress:`IP-Adresse *`,nameLabel:`Name *`,username:`Benutzername`,password:`Passwort`,authHint:`Leer lassen, wenn Ihr Tasmota-Gerät keine Authentifizierung benötigt`,linkToPrinter:`Mit Drucker verbinden`,noPrinter:`Kein Drucker (nur manuelle Steuerung)`,linkingDescription:`Verknüpfung ermöglicht automatisches Ein-/Ausschalten bei Druckstart/-ende`,powerAlerts:`Leistungsalarme`,alertAbove:`Alarm wenn über (W)`,alertBelow:`Alarm wenn unter (W)`,alertDescription:`Benachrichtigung wenn der Stromverbrauch diese Schwellenwerte überschreitet. Leer lassen um diese Richtung zu deaktivieren.`,dailySchedule:`Tagesplan`,turnOnAt:`Einschalten um`,turnOffAt:`Ausschalten um`,scheduleDescription:`Den Stecker automatisch täglich zu diesen Zeiten ein-/ausschalten. Leer lassen um diese Aktion zu überspringen.`,showOnPrinterCard:`Auf Druckerkarte anzeigen`,displayOnPrinterCard:`Schaltfläche auf Druckerkarte anzeigen`,connectedResult:`Verbunden!`,deviceLabel:`Gerät: {{name}} - `,stateLabel:`Status: {{state}}`,test:`Test`,delete:`Löschen`,save:`Speichern`,add:`Hinzufügen`,cancel:`Abbrechen`,failedToStartScan:`Suche konnte nicht gestartet werden`,nameRequired:`Name ist erforderlich`,entityRequired:`Entität ist für Home Assistant Stecker erforderlich`,mqttTopicRequired:`Mindestens ein MQTT-Topic muss für Leistung, Energie oder Statusüberwachung konfiguriert sein`,loadingEntities:`Entitäten werden geladen...`,loading:`Laden...`,failedToLoadEntities:`Entitäten konnten nicht geladen werden: {{error}}`,noEntitiesMatching:`Keine Entitäten gefunden die "{{search}}" entsprechen`,noEntitiesAvailable:`Keine Entitäten verfügbar`,searchingEntities:`Alle Entitäten durchsuchen ({{count}} gefunden)`,showingEntities:`Zeige switch, light, input_boolean ({{count}} verfügbar)`,energyMonitoringOptional:`Energieüberwachung (Optional)`,energyMonitoringHint:`Sensoren suchen und auswählen, die Leistungs-/Energiedaten liefern.`,powerSensorW:`Leistungssensor (W)`,energyTodayKwh:`Energie Heute (kWh)`,totalEnergyKwh:`Gesamtenergie (kWh)`,noMatchingSensors:`Keine passenden Sensoren`,none:`Keine`,mqttNotConfigured:`MQTT-Broker nicht konfiguriert. Broker-Adresse einstellen unter`,mqttSettingsPath:`Einstellungen → Netzwerk → MQTT-Veröffentlichung`,mqttNotConfiguredSuffix:`(Sie müssen die Veröffentlichung nicht aktivieren, nur die Broker-Details ausfüllen).`,mqttMonitorOnlyDescription:`MQTT-Stecker empfangen Leistungs-/Energiedaten über MQTT-Abonnement. Ein-/Ausschalten ist nicht verfügbar - verwenden Sie Ihren MQTT-Broker oder Ihr Home-Automation-System.`,powerMonitoring:`Leistungsüberwachung`,energyMonitoring:`Energieüberwachung`,stateMonitoring:`Statusüberwachung`,optional:`optional`,topic:`Thema`,jsonPath:`JSON-Pfad`,multiplier:`Multiplikator`,onValue:`EIN-Wert`,mqttPowerHint:`JSON-Pfad extrahiert Wert aus JSON-Payload (z.B. "power_l1"). Leer lassen wenn Topic rohe numerische Werte sendet.
Multiplikator 0.001 für mW→W, 1000 für kW→W verwenden.`,mqttEnergyHint:`JSON-Pfad extrahiert Wert aus JSON-Payload. Leer lassen für rohe Werte.
Multiplikator 0.001 für Wh→kWh, 1000 für MWh→kWh verwenden.`,mqttStateHint:`JSON-Pfad extrahiert Wert aus JSON-Payload. Leer lassen für rohe Werte.
-EIN-Wert: der genaue String der "EIN" bedeutet. Leer lassen für Auto-Erkennung (ON, true, 1).`,restControl:`Steuerung`,restOnUrl:`Einschalt-URL`,restOffUrl:`Ausschalt-URL`,restOnBody:`EIN-Anforderungstext`,restOffBody:`AUS-Anforderungstext`,restMethod:`HTTP-Methode`,restHeaders:`Custom Headers (JSON)`,restStatusUrl:`Status-URL`,restStatusPath:`JSON-Pfad für Status`,restStatusOnValue:`EIN-Wert`,restPowerUrl:`Strom-URL`,restPowerPath:`JSON-Pfad für Leistung`,restPowerMultiplier:`Power Multiplikator`,restEnergyUrl:`Energie URL`,restEnergyPath:`JSON-Pfad für Energie (heute)`,restEnergyTotalPath:`JSON-Pfad für Energie (Gesamtzähler)`,restEnergyTotalMultiplier:`Multiplikator Gesamtzähler`,restEnergyTotalPathHint:`z.B. aenergy.total`,restEnergyTotalHint:`Viele Steckdosen — darunter alle Shellys — liefern nur einen Gesamtzähler, der nie zurückgesetzt wird. Er gehört hierher, nicht in das Feld darüber: als Tagesverbrauch gelesen würde er um Mitternacht nie zurückspringen, und Gestern und Gesamt blieben leer. Bambuddy errechnet Heute und Gestern daraus, wofür ein bis zwei Tage an Messwerten nötig sind. Ein Shelly liefert Wattstunden, also Multiplikator 0.001 verwenden.`,restEnergyMultiplier:`Energie Multiplikator`,restUrlRequired:`Mindestens eine URL (ON oder OFF) ist für REST-Steckdosen erforderlich`,restHeadersHint:`z. B. {"Authorization": "Bearer your-token"}`,restBodyHint:`z. B. ON, {"state": "on"}`,restStatusHint:`URL zum Abfragen des aktuellen Status`,restPathHint:`z. B. state oder data.power.status`,restPowerUrlHint:`Eigene URL für Leistungsdaten (nutzt Status URL wenn leer)`,restEnergyUrlHint:`Eigene URL für Energiedaten (nutzt Status URL wenn leer)`,restEnergyHint:`Jeder Wert kann eine eigene URL verwenden oder auf die Status URL zurückgreifen. Multiplikatoren für Einheitenumrechnung verwenden (z.B. 0.001 für Wh zu kWh).`,testConnection:`Verbindung testen`,connectionSuccess:`Verbindung erfolgreich`,noSwitchesInSwitchbar:`Keine Schalter in der Schaltleiste`,enableSwitchbarHint:`"In Schaltleiste anzeigen" unter Einstellungen > Smart Plugs aktivieren`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`E-Mail`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`SMTP-E-Mail-Benachrichtigungen`,telegram:`Benachrichtigungen über Telegram-Bot`,discord:`An Discord-Kanal per Webhook senden`,ntfy:`Kostenlose, selbst-hostbare Push-Benachrichtigungen`,pushover:`Einfache, zuverlässige Push-Benachrichtigungen`,callmebot:`Kostenlose WhatsApp-Benachrichtigungen über CallMeBot`,webhook:`Generischer HTTP-POST an beliebige URL`,homeassistant:`Dauerhafte Benachrichtigungen im Home Assistant Dashboard`,bark:`iOS-Push-Benachrichtigungen über Bark (selbst hostbar)`},lastSuccess:`Zuletzt: {{date}}`,error:`Fehler`,printer:`Drucker:`,allPrinters:`Alle Drucker`,sendTestNotification:`Testbenachrichtigung senden`,eventSettings:`Ereigniseinstellungen`,enabled:`Aktiviert`,sendFromProvider:`Benachrichtigungen von diesem Anbieter senden`,printEvents:`Druckereignisse`,printerStatus:`Druckerstatus`,amsAlarms:`AMS-Alarme`,amsHtAlarms:`AMS-HT-Alarme`,printQueue:`Druckwarteschlange`,start:`Start`,plateCheck:`Plattenkontrolle`,complete:`Abgeschlossen`,failed:`Fehlgeschlagen`,stopped:`Gestoppt`,progress:`Fortschritt`,offline:`Offline`,lowFilament:`Filament niedrig`,maintenance:`Wartung`,amsHumidity:`AMS-Feuchtigkeit`,amsTemp:`AMS-Temperatur`,amsHtHumidity:`AMS-HT-Feuchtigkeit`,amsHtTemp:`AMS-HT-Temperatur`,bedCooled:`Bett abgekühlt`,firstLayer:`Erste Schicht`,quiet:`Ruhe`,digest:`Zusammenfassung {{time}}`,printStarted:`Druck gestartet`,plateNotEmpty:`Platte nicht leer`,plateNotEmptyDescription:`Objekte vor dem Druck erkannt`,plateClearRequired:`Platte freigeben`,plateClearRequiredDescription:`Druck beendet, Warteschlange wartet auf Bestätigung`,plateClear:`Platte freigeben`,printCompleted:`Druck abgeschlossen`,bedCooledLabel:`Bett abgekühlt`,bedCooledDescription:`Bett nach dem Druck unter Schwellenwert abgekühlt`,firstLayerCompleteLabel:`Erste Schicht fertig`,firstLayerCompleteDescription:`Benachrichtigung mit Foto nach erster Schicht`,missingSpoolAssignmentLabel:`Fehlende Spulenzuordnung`,missingSpoolAssignmentDescription:`Benachrichtigen, wenn ein Druck startet und benoetigte Schaechte keine zugeordnete Spule haben`,printFailed:`Druck fehlgeschlagen`,printStopped:`Druck gestoppt`,progressMilestones:`Fortschrittsmeilensteine`,progressMilestonesDescription:`Benachrichtigung bei 25%, 50%, 75%`,printerOffline:`Drucker offline`,printerError:`Druckerfehler`,aiFailureDetection:`KI-Fehlererkennung`,aiFailureDetectionDescription:`Benachrichtigen, wenn die Obico-KI einen möglichen Druckfehler erkennt`,lowFilamentLabel:`Filament niedrig`,maintenanceDue:`Wartung fällig`,maintenanceDueDescription:`Benachrichtigen, wenn Wartung erforderlich ist`,amsHumidityHigh:`AMS-Feuchtigkeit hoch`,amsHumidityHighDescription:`Normale AMS-Feuchtigkeit überschreitet Schwellenwert`,amsTemperatureHigh:`AMS-Temperatur hoch`,amsTemperatureHighDescription:`Normale AMS-Temperatur überschreitet Schwellenwert`,amsHtHumidityHigh:`AMS-HT-Feuchtigkeit hoch`,amsHtHumidityHighDescription:`AMS-HT-Feuchtigkeit überschreitet Schwellenwert`,amsHtTemperatureHigh:`AMS-HT-Temperatur hoch`,amsHtTemperatureHighDescription:`AMS-HT-Temperatur überschreitet Schwellenwert`,inventoryAlerts:`Bestandswarnungen`,stockReorderAlert:`Nachbestellungswarnung`,stockReorderAlertDescription:`SKU hat seinen Nachbestellungspunkt erreicht`,stockBreakAlert:`Bestandsunterbrechungswarnung`,stockBreakAlertDescription:`Der Bestand wird vor dem Eintreffen der Nachbestellung aufgebraucht sein`,jobAdded:`Auftrag hinzugefügt`,jobAddedDescription:`Auftrag zur Warteschlange hinzugefügt`,jobAssigned:`Auftrag zugewiesen`,jobAssignedDescription:`Modellbasierter Auftrag einem Drucker zugewiesen`,jobStarted:`Auftrag gestartet`,jobStartedDescription:`Warteschlangenauftrag hat Druck begonnen`,jobWaiting:`Auftrag wartet`,jobWaitingDescription:`Auftrag wartet auf Filament oder Drucker`,jobSkipped:`Auftrag übersprungen`,jobSkippedDescription:`Auftrag übersprungen (vorheriger fehlgeschlagen)`,jobFailed:`Auftrag fehlgeschlagen`,jobFailedDescription:`Auftrag konnte nicht gestartet werden`,queueComplete:`Warteschlange abgeschlossen`,queueCompleteDescription:`Alle Warteschlangenaufträge beendet`,quietHours:`Ruhezeiten`,noNotificationsDuring:`Keine Benachrichtigungen während dieser Zeiten`,editProviderToChangeQuietHours:`Anbieter bearbeiten, um Ruhezeiten zu ändern`,dailyDigest:`Tägliche Zusammenfassung`,batchNotifications:`Benachrichtigungen zu einer täglichen Zusammenfassung bündeln`,sendAt:`Senden um {{time}}`,editProviderToChangeDigestTime:`Anbieter bearbeiten, um Zusammenfassungszeit zu ändern`,edit:`Bearbeiten`,deleteProvider:`Benachrichtigungsanbieter löschen`,deleteConfirm:`Sind Sie sicher, dass Sie "{{name}}" löschen möchten? Dies kann nicht rückgängig gemacht werden.`,delete:`Löschen`,addTitle:`Benachrichtigungsanbieter hinzufügen`,editTitle:`Benachrichtigungsanbieter bearbeiten`,nameLabel:`Name *`,namePlaceholder:`Meine Benachrichtigungen`,providerTypeLabel:`Anbietertyp *`,configuration:`Konfiguration`,testConfiguration:`Konfiguration testen`,printerFilter:`Druckerfilter`,onlyFromPrinter:`Nur Benachrichtigungen für Ereignisse von diesem Drucker senden`,quietHoursDnd:`Ruhezeiten (Nicht stören)`,quietStart:`Start`,quietEnd:`Ende`,dailyDigestLabel:`Tägliche Zusammenfassung`,sendDigestAt:`Zusammenfassung senden um`,digestCollected:`Ereignisse werden gesammelt und als einzelne Zusammenfassung zu dieser Zeit gesendet`,notificationEvents:`Benachrichtigungsereignisse`,progressPercent:`(25 %, 50 %, 75 %)`,bedCooledAfterPrint:`(nach Druckabschluss)`,eventPriority:{sectionTitle:`ntfy-Priorität`,helpNtfy:`Wähle eine Priorität pro aktiviertem Ereignis. ntfy nutzt diese, um Hinweise (Ton, Sichtbarkeit, Push-Verhalten) zu eskalieren. Hier nicht gesetzte Stufen verwenden den ntfy-Server-Standard.`,min:`Min.`,low:`Niedrig`,default:`Standard`,high:`Hoch`,urgent:`Dringend`},cancel:`Abbrechen`,save:`Speichern`,add:`Hinzufügen`,nameRequired:`Name ist erforderlich`,fieldRequired:`{{field}} ist erforderlich`,haDataInvalid:`Das Datenfeld muss ein gültiges JSON-Objekt sein, z. B. {"priority": "high", "ttl": 0}`,phoneNumber:`Telefonnummer`,apiKey:`API-Schlüssel`,serverUrl:`Server-URL`,topic:`Thema`,authToken:`Auth-Token`,userKey:`Benutzerschlüssel`,appToken:`App-Token`,priority:`Priorität`,pushoverRetry:`Notfall-Wiederholung (s)`,pushoverExpire:`Notfall-Ablauf (s)`,botToken:`Bot-Token`,chatId:`Chat-ID`,telegramThreadId:`Forum-Themen-ID`,telegramThreadIdHelp:`Optional. Sendet in ein einzelnes Thema einer Forum-Gruppe — die letzte Zahl im Themen-Link (t.me/c/.../25). Leer lassen für das allgemeine Thema.`,telegramThreadIdInvalid:`Die Forum-Themen-ID muss eine Zahl sein.`,smtpServer:`SMTP-Server`,smtpPort:`SMTP-Port`,security:`Sicherheit`,authentication:`Authentifizierung`,username:`Benutzername`,password:`Passwort`,fromEmail:`Absender-E-Mail`,toEmail:`Empfänger-E-Mail`,webhookUrl:`Webhook-URL`,payloadFormat:`Payload-Format`,authorization:`Autorisierung`,titleFieldName:`Titel-Feldname`,messageFieldName:`Nachrichten-Feldname`,editTemplate:`Vorlage bearbeiten: {{name}}`,titleLabel:`Titel`,bodyLabel:`Inhalt`,titlePlaceholder:`Benachrichtigungstitel...`,bodyPlaceholder:`Benachrichtigungsinhalt...`,availableVariables:`Verfügbare Variablen`,clickToInsert:`Klicken, um an Cursorposition im Inhalt einzufügen`,livePreview:`Live-Vorschau`,hide:`Ausblenden`,show:`Anzeigen`,loadingPreview:`Vorschau wird geladen...`,enterTemplateContent:`Vorlageninhalt eingeben, um Vorschau zu sehen`,titlePreview:`Titel:`,bodyPreview:`Inhalt:`,resetToDefault:`Auf Standard zurücksetzen`,titleRequired:`Titel ist erforderlich`,bodyRequired:`Inhalt ist erforderlich`,notificationLog:`Benachrichtigungsprotokoll`,showFailedOnly:`Nur fehlgeschlagene`,last24Hours:`Letzte 24 Stunden`,last7Days:`Letzte 7 Tage`,last30Days:`Letzte 30 Tage`,last90Days:`Letzte 90 Tage`,justNow:`Gerade eben`,noFailedNotifications:`Keine fehlgeschlagenen Benachrichtigungen`,noNotificationsLogged:`Keine Benachrichtigungen protokolliert`,unknownProvider:`Unbekannter Anbieter`,logTitle:`Titel`,logMessage:`Nachricht`,logError:`Fehler`,logProvider:`Anbieter: {{type}}`,logTime:`Zeit: {{time}}`,refresh:`Aktualisieren`,clearOld:`Alte löschen`,statsSummary:`Letzte {{days}} Tage:`,statsNotifications:`Benachrichtigungen`,statsSent:`{{count}} gesendet`,statsFailed:`{{count}} fehlgeschlagen`,eventTypes:{print_start:`Druck gestartet`,print_complete:`Druck abgeschlossen`,print_failed:`Druck fehlgeschlagen`,print_stopped:`Druck gestoppt`,print_progress:`Fortschritt`,printer_offline:`Drucker offline`,printer_error:`Druckerfehler`,filament_low:`Filament niedrig`,maintenance_due:`Wartung fällig`,test:`Test`},userEmail:{title:`Benachrichtigungen`,emailNotifications:`E-Mail-Benachrichtigungen`,emailNotificationsDesc:`Erhalten Sie E-Mail-Benachrichtigungen für Ihre eigenen Druckaufträge. E-Mails werden über die in der erweiterten Authentifizierung konfigurierten SMTP-Einstellungen gesendet.`,sendingTo:`Benachrichtigungen werden gesendet an`,noEmailWarning:`Ihr Konto hat keine E-Mail-Adresse. Wenden Sie sich an einen Administrator, um eine hinzuzufügen.`,printJobNotifications:`Druckauftrags-Benachrichtigungen`,printJobNotificationsDesc:`Wählen Sie aus, welche Ereignisse E-Mail-Benachrichtigungen für von Ihnen gesendete Druckaufträge auslösen.`,printJobStarts:`Druckauftrag startet`,printJobStartsDesc:`Benachrichtigt werden, wenn Ihr Druckauftrag beginnt.`,printJobFinishes:`Druckauftrag fertig`,printJobFinishesDesc:`Benachrichtigt werden, wenn Ihr Druckauftrag erfolgreich abgeschlossen wurde.`,printErrors:`Druckfehler`,printErrorsDesc:`Benachrichtigt werden, wenn Ihr Druckauftrag fehlschlägt oder auf einen Fehler stößt.`,printJobStops:`Druckauftrag gestoppt`,printJobStopsDesc:`Benachrichtigt werden, wenn Ihr Druckauftrag abgebrochen oder gestoppt wird.`,saveSuccess:`Benachrichtigungseinstellungen gespeichert.`,saveError:`Benachrichtigungseinstellungen konnten nicht gespeichert werden.`}},richTextEditor:{bold:`Fett`,italic:`Kursiv`,underline:`Unterstrichen`,bulletList:`Aufzählungsliste`,numberedList:`Nummerierte Liste`,alignLeft:`Linksbündig`,alignCenter:`Zentriert`,alignRight:`Rechtsbündig`,addLink:`Link hinzufügen`,removeLink:`Link entfernen`},externalLinks:{title:`Seitenleisten-Links`,sidebarLayout:`Seitenleiste`,sidebarLayoutDescription:`Integrierte Seiten ein- oder ausblenden, externe Links hinzufügen und Elemente ziehen, um die Seitenleisten-Navigation neu zu ordnen.`,systemPages:`Bambuddy-Seiten`,externalLinks:`Externe Links`,visibleInSidebar:`In Seitenleiste sichtbar`,hiddenFromSidebar:`In Seitenleiste ausgeblendet`,requiredInSidebar:`In Seitenleiste erforderlich`,hidePage:`Seite ausblenden`,showPage:`Seite anzeigen`,settingsCannotBeHidden:`Einstellungen können nicht ausgeblendet werden`,noLinksConfigured:`Keine externen Links konfiguriert`,deleteLink:`Link löschen`,removeCustomIcon:`Benutzerdefiniertes Symbol entfernen`,openInNewTab:`In neuem Tab öffnen`,placeholders:{linkName:`Mein Link`}},keyboardShortcuts:{title:`Tastaturkürzel`,navigation:`Navigation`,archivesSection:`Archive`,kProfilesSection:`K-Profile`,generalSection:`Allgemein`,shortcuts:{goToPrinters:`Zu Drucker gehen`,goToArchives:`Zu Archiv gehen`,goToQueue:`Zur Warteschlange gehen`,goToStats:`Zu Statistiken gehen`,goToProfiles:`Zu Cloud-Profilen gehen`,goToSettings:`Zu Einstellungen gehen`,focusSearch:`Suche fokussieren`,openUploadModal:`Upload-Modal öffnen`,clearSelection:`Auswahl löschen / Eingabe aufheben`,contextMenu:`Kontextmenü auf Karten`,refreshProfiles:`Profile aktualisieren`,newProfile:`Neues Profil`,exitSelectionMode:`Auswahlmodus beenden`,showHelp:`Diese Hilfe anzeigen`},footer:`Drücken Sie Esc oder klicken Sie außerhalb, um zu schließen`},notificationLog:{title:`Benachrichtigungsprotokoll`,events:{printStarted:`Druck gestartet`,printComplete:`Druck abgeschlossen`,printFailed:`Druck fehlgeschlagen`,printStopped:`Druck gestoppt`,progress:`Fortschritt`,printerOffline:`Drucker offline`,printerError:`Druckerfehler`,lowFilament:`Wenig Filament`,maintenanceDue:`Wartung fällig`,test:`Test`},timeAgo:{justNow:`Gerade eben`,minutesAgo:`vor {{minutes}}m`,hoursAgo:`vor {{hours}}h`}},restoreBackup:{title:`Backup wiederherstellen`,restoring:`Wird wiederhergestellt...`,restoreComplete:`Wiederherstellung abgeschlossen`,restoreFailed:`Wiederherstellung fehlgeschlagen`,importSettings:`Einstellungen aus Backup-Datei importieren`,pleaseWait:`Bitte warten Sie, während Ihre Daten wiederhergestellt werden`,clickToSelect:`Klicken Sie, um Backup-Datei auszuwählen (.json oder .zip)`,howDuplicateHandling:`So funktioniert die Duplikatbehandlung:`,categories:{printers:`Drucker`,smartPlugs:`Smart Plugs`,notificationProviders:`Benachrichtigungsanbieter`,filaments:`Filamente`,archives:`Archive`,pendingUploads:`Ausstehende Uploads`,settingsTemplates:`Einstellungen & Vorlagen`},matchingInfo:{printers:`abgeglichen nach Seriennummer`,smartPlugs:`abgeglichen nach IP-Adresse`,notificationProviders:`abgeglichen nach Name`,filaments:`abgeglichen nach Name + Typ + Marke`,archives:`abgeglichen nach Inhalts-Hash`,pendingUploads:`abgeglichen nach Dateiname`,settingsTemplates:`immer überschrieben`},replaceExisting:`Vorhandene Daten ersetzen`,keepExisting:`Vorhandene Daten behalten`,replaceDescription:`Bereits vorhandene Elemente mit Backup-Daten überschreiben`,keepDescription:`Nur Elemente wiederherstellen, die noch nicht existieren`,caution:`Vorsicht:`,cautionText:`Das Überschreiben ersetzt Ihre aktuellen Konfigurationen durch Backup-Daten. Drucker-Zugangscodes werden aus Sicherheitsgründen niemals überschrieben.`,itemsRestored:`Wiederhergestellte Elemente`,itemsSkipped:`Übersprungene Elemente`,restored:`Wiederhergestellt`,skipped:`Übersprungen (existieren bereits)`,filesLabel:`Dateien (3MF, Thumbnails, etc.)`,newApiKeysGenerated:`Neue API-Schlüssel generiert`,newApiKeysWarning:`Diese Schlüssel werden nur einmal angezeigt. Kopieren Sie sie jetzt!`,processingBackup:`Backup-Datei wird verarbeitet...`,noDataFound:`In der Backup-Datei wurden keine wiederherzustellenden Daten gefunden.`,failedToRestore:`Backup konnte nicht wiederhergestellt werden. Bitte überprüfen Sie das Dateiformat.`},backupExport:{title:`Backup exportieren`,selectData:`Zu exportierende Daten auswählen`,selectAll:`Alle auswählen`,selectNone:`Keine auswählen`,categoryDescriptions:{settings:`Sprache, Theme, Update-Einstellungen`,notifications:`ntfy, Pushover, Discord, usw.`,templates:`Benutzerdefinierte Nachrichtenvorlagen`,smartPlugs:`Tasmota-Plug-Konfigurationen`,externalLinks:`Seitenleiste Links zu externen Diensten`,printers:`Druckerinformationen (Zugangscodes ausgeschlossen)`,plateDetection:`Leere Platten-Referenzbilder`,filaments:`Filamenttypen und -kosten`,maintenance:`Benutzerdefinierte Wartungspläne`,archives:`Alle Druckdaten + Dateien (3MF, Thumbnails, Fotos)`,projects:`Projekte, BOM-Elemente und Anhänge`,pendingUploads:`Virtueller Drucker-Uploads zur Überprüfung`,apiKeys:`Webhook-API-Schlüssel (neue Schlüssel bei Import generiert)`},requiresPrinters:`Drucker müssen ausgewählt sein`,zipFileWarning:`ZIP-Datei wird erstellt.`,zipFileDescription:`Enthält alle 3MF-Dateien, Thumbnails, Zeitraffer und Fotos. Dies kann eine Weile dauern und zu einer großen Datei führen.`,includeAccessCodes:`Zugangscodes einschließen`,includeAccessCodesDescription:`Für die Übertragung auf eine andere Maschine`,includeAccessCodesWarning:`Zugangscodes werden im Klartext eingeschlossen. Bewahren Sie diese Backup-Datei sicher auf!`,categoriesSelected:`{{selectedCount}} Kategorien ausgewählt`},pendingUploads:{placeholders:{notes:`Notizen zu diesem Druck hinzufügen...`},discardUpload:`Upload verwerfen`,archiveAllUploads:`Alle Uploads archivieren`,discardAllUploads:`Alle Uploads verwerfen`,archive:`Archivieren`,timeAgo:{justNow:`Gerade eben`,minutesAgo:`vor {{minutes}}m`,hoursAgo:`vor {{hours}}h`,daysAgo:`vor {{days}}d`}},apiBrowser:{placeholders:{requestBody:`JSON-Anforderungstext...`,searchEndpoints:`Endpunkte suchen...`}},configureAmsSlot:{title:`AMS-Slot konfigurieren`,slotConfigured:`Slot konfiguriert!`,configuringSlot:`Slot wird konfiguriert:`,slotLabel:`{{ams}} – Slot {{slot}}`,searchPresets:`Voreinstellungen suchen...`,colorPlaceholder:`Farbname oder Hex (z.B. braun, FF8800)`,clearCustomColor:`Benutzerdefinierte Farbe löschen`,noCloudPresets:`Keine Cloud-Voreinstellungen. Melden Sie sich bei Bambu Cloud an, um zu synchronisieren.`,noPresetsAvailable:`Keine Voreinstellungen verfügbar. Melden Sie sich bei Bambu Cloud an oder importieren Sie lokale Profile.`,noMatchingPresets:`Keine passenden Voreinstellungen gefunden.`,custom:`Benutzerdefiniert`,builtin:`Integriert`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`Einstellungen an Drucker gesendet`,filamentProfile:`Filamentprofil`,kProfileLabel:`K-Profil (Pressure Advance)`,filteringFor:`Filtern nach: {{material}}`,noKProfile:`Kein K-Profil (Standard 0.020 verwenden)`,noMatchingKProfiles:`Keine passenden K-Profile gefunden. Standard K=0.020 wird verwendet.`,otherKProfiles:`Weitere K-Profile auf diesem Drucker`,selectFilamentFirst:`Zuerst ein Filamentprofil auswählen`,kFromCalibration:`K={{value}} aus Druckerkalibrierung`,customColorLabel:`Benutzerdefinierte Farbe (optional)`,presetColors:`{{name}} Farben:`,showLessColors:`Weniger Farben anzeigen`,showMoreColors:`Mehr Farben anzeigen`,clear:`Löschen`,hexLabel:`Hex – #{{hex}}`,resetting:`Wird zurückgesetzt...`,resetSlot:`Slot zurücksetzen`,cancel:`Abbrechen`,configuring:`Wird konfiguriert...`,configureSlot:`Slot konfigurieren`},githubBackup:{title:`Git-Backup`,history:`Verlauf`,downloadBackup:`Backup herunterladen`,restoreBackup:`Backup wiederherstellen`,noBackupsYet:`Noch keine Backups`},emailSettings:{placeholders:{fromName:`Bambuddy`}},tagManagement:{searchTags:`Tags suchen...`,renameTag:`Tag umbenennen`,deleteTag:`Tag löschen`},notificationTemplates:{placeholders:{title:`Benachrichtigungstitel...`,body:`Benachrichtigungstext...`}},batchTag:{placeholders:{newTag:`Neuen Tag eingeben...`}},photoGallery:{deletePhoto:`Foto löschen`},filamentHoverCard:{copySpoolUuid:`Spulen-UUID kopieren`},kProfilesView:{hasNote:`Hat Notiz`,copyProfile:`Profil kopieren`},layout:{openMenu:`Menü öffnen`,noPermissionSystemInfo:`Sie haben keine Berechtigung zum Anzeigen von Systeminformationen`},dashboard:{dragToReorder:`Ziehen zum Neuordnen`,hideWidget:`Widget ausblenden`},notificationProviderCard:{deleteNotificationProvider:`Benachrichtigungsanbieter löschen`},fileManagerModal:{closeFileManager:`Dateimanager schließen`,sortFiles:`Dateien sortieren`,goToParentFolder:`Zum übergeordneten Ordner gehen`,threeView:`3D-Ansicht`},embeddedCameraViewer:{refreshStream:`Stream aktualisieren`,close:`Schließen`,zoomOut:`Verkleinern`,resetZoom:`Zoom zurücksetzen`,zoomIn:`Vergrößern`,dragToResize:`Ziehen zum Größe ändern`},timelapseViewer:{skipBack5s:`5s zurückspringen`,skipForward5s:`5s vorspringen`},notificationProviders:{descriptions:{email:`SMTP-E-Mail-Benachrichtigungen`,telegram:`Benachrichtigungen über Telegram-Bot`,discord:`An Discord-Kanal über Webhook senden`,ntfy:`Kostenlose, selbst hostbare Push-Benachrichtigungen`,pushover:`Einfache, zuverlässige Push-Benachrichtigungen`,callmebot:`Kostenlose WhatsApp-Benachrichtigungen über CallMeBot`,webhook:`Generischer HTTP POST zu beliebiger URL`}},logViewer:{searchPlaceholder:`Nachricht oder Logger-Name suchen...`,noLogEntries:`Keine Logeinträge gefunden`},switchbarPopover:{noSwitchesInSwitchbar:`Keine Schalter in Schalterleiste`},projectPageModal:{placeholders:{title:`Titel`,designer:`Designer`,license:`Lizenz`,description:`Beschreibung eingeben...`,profileTitle:`Profil-Titel`,profileDescription:`Profilbeschreibung...`}},spoolmanSettings:{},time:{unknown:`-`,waiting:`Wartend`,justNow:`Gerade eben`,now:`Jetzt`,minsAgo:`vor {{count}}m`,inMins:`in {{count}}min`,hoursAgo:`vor {{count}}h`,inHours:`in {{count}}Std`,daysAgo:`vor {{count}}d`,inDays:`in {{count}}T`},spoolbuddy:{nav:{dashboard:`Übersicht`,ams:`AMS`,inventory:`Inventar`,writeTag:`Schreiben`,settings:`Einstellungen`},status:{nfcReady:`NFC bereit`,nfcOff:`NFC aus`,offline:`Offline`,online:`Online`,noPrinters:`Keine Drucker`,deviceOffline:`Gerät offline`,waitingConnection:`Warte auf Geräteverbindung...`,systemReady:`System bereit`,status:`Status`},dashboard:{readyToScan:`Bereit zum Scannen`,idleMessage:`Spule auf die Waage legen zum Identifizieren`,nfcHint:`NFC-Tag wird automatisch gelesen`,device:`Gerät`,syncWeight:`Gewicht sync.`,weightSynced:`Synchronisiert!`,unknownTag:`Unbekannter Tag`,newTag:`Neuer Tag erkannt`,onScale:`auf der Waage`,linkSpool:`Mit Spule verknüpfen`,linkTagTitle:`Tag mit Spule verknüpfen`,linkTag:`Tag verknüpfen`,selectSpool:`Spule zum Verknüpfen auswählen:`,noUntagged:`Keine Spulen ohne Tags gefunden`,tagDetected:`Tag erkannt`,noTag:`Kein Tag`,tagId:`Tag`,grossWeight:`Bruttogewicht`,spoolSize:`Spulengröße`,close:`Schließen`,currentSpool:`Aktuelle Spule`,plateReady:`Druckplatte bereit: {{name}}`,plateReadyLabel:`Bereit-zum-Quittieren-Liste`,plateClearAction:`Frei`,plateClearedToast:`Druckplatte als geleert markiert`,plateClearFailed:`Druckplatte konnte nicht als geleert markiert werden`},modal:{spoolDetected:`Spule erkannt`,assignToAms:`AMS zuweisen`,syncWeight:`Gewicht sync.`,weightSynced:`Synchronisiert!`,syncing:`Synchronisiere...`,newTagDetected:`Neuer Tag erkannt`,addToInventory:`Zum Inventar hinzufügen`,assignToAmsTitle:`AMS zuweisen`,selectSlot:`Slot auswählen`,assign:`Zuweisen`,assigning:`Zuweisen...`,assignSuccess:`Zugewiesen!`,assignPendingInsert:`Zugewiesen. Slot wird beim Einsetzen der Spule konfiguriert.`,assignError:`Fehler beim Zuweisen. Bitte erneut versuchen.`,noPrinterSelected:`Drucker auswählen...`,noAmsDetected:`Kein AMS an diesem Drucker erkannt`,slot:`Slot`},weight:{noReading:`Kein Messwert`,stable:`Stabil`,measuring:`Messen...`,tare:`Tarieren`,calibrate:`Kalibrieren`},spool:{remaining:`Verbleibend`,material:`Material`,brand:`Marke`,color:`Farbe`,coreWeight:`Kern`,labelWeight:`Etikett`,scaleWeight:`Waage`,netWeight:`Netto`,lastUsed:`Zuletzt verwendet`},ams:{noData:`Kein AMS erkannt`,connectAms:`AMS anschließen um Filament-Slots zu sehen`,noPrinter:`Kein Drucker ausgewählt`,selectPrinter:`Drucker in der oberen Leiste auswählen`,printerDisconnected:`Drucker getrennt`,humidity:`Feuchtigkeit`,level:`Stufe`,active:`Aktiv`,slot:`Slot`,empty:`Leer`},inventory:{search:`Spulen suchen...`,empty:`Keine Spulen im Inventar`,noResults:`Keine passenden Spulen`,spools:`Spulen`,addSpool:`Spule hinzufügen`},settings:{tabDevice:`Gerät`,tabDisplay:`Anzeige`,tabScale:`Waage`,tabUpdates:`Aktualisierungen`,nfcReader:`NFC-Leser`,type:`Typ`,connection:`Verbindung`,notConnected:`N/V`,deviceInfo:`Geräteinfo`,hostname:`Host`,uptime:`Betriebszeit`,systemConfig:`Backend & Auth`,backendUrl:`Bambuddy Backend URL`,apiToken:`API-Token`,apiTokenPlaceholder:`API-Token eingeben`,saveConfig:`Konfiguration speichern`,systemQueued:`Konfiguration in Warteschlange.`,nfcDiagnostic:`NFC-Diagnose`,scaleDiagnostic:`Waagen-Diagnose`,readTagDiagnostic:`Tag-Lese-Diagnose`,testNfc:`Leser testen`,testScale:`Genauigkeit testen`,testReadTag:`Tag lesen`,systemFieldsRequired:`Backend-URL ist erforderlich.`,brightness:`Helligkeit`,saved:`Gespeichert`,noBacklight:`Keine DSI-Hintergrundbeleuchtung erkannt. Helligkeitssteuerung erfordert ein DSI-Display.`,screenBlank:`Bildschirm-Abschaltzeit`,screenBlankDesc:`Bildschirm schaltet sich nach Inaktivität ab. Zum Aufwecken berühren.`,displayNote:`Helligkeit wird als Software-Filter angewendet.`,scaleCalibration:`Waagen-Kalibrierung`,currentWeight:`Aktuelles Gewicht`,tareOffset:`Tara`,calFactor:`Faktor`,knownWeight:`Bekanntes Gewicht`,calStep1:`Alle Gegenstände von der Waage entfernen und Nullpunkt setzen.`,calStep2:`Bekanntes Gewicht auf die Waage legen.`,setZero:`Nullpunkt setzen`,calibrateNow:`Kalibrieren`,calibrated:`Kalibriert`,tareSet:`Tara-Befehl gesendet. Warte auf Gerät...`,tareComplete:`Tara abgeschlossen!`,tareTimedOut:`Tara-Zeitüberschreitung — läuft der SpoolBuddy-Daemon?`,tareFailed:`Tara-Befehl fehlgeschlagen`,zeroSet:`Nullpunkt gesetzt. Bekanntes Gewicht auf die Waage legen.`,calibrationDone:`Kalibrierung abgeschlossen!`,calibrationFailed:`Kalibrierung fehlgeschlagen`,lastCalibrated:`Zuletzt kalibriert`,stable:`Stabil`,settling:`Stabilisierung...`,firmware:`Firmware`,scale:`Waage`,noDevice:`Kein SpoolBuddy-Gerät gefunden`,daemonVersion:`Daemon-Version`,currentVersion:`Aktuell`,versionPending:`Warte auf Daemon...`,checking:`Prüfe...`,checkUpdates:`Nach Updates suchen`,updateAvailable:`Update verfügbar`,updateInstructions:`Update per SSH: SpoolBuddy-Installationsskript ausführen.`,upToDate:`Aktuell`,includeBeta:`Beta-Versionen einschließen`},writeTag:{tabExisting:`Vorhandene Spule`,tabNew:`Neue Spule`,tabReplace:`Tag ersetzen`,searchPlaceholder:`Suche nach Material, Farbe, Marke...`,noUntaggedSpools:`Keine Spulen ohne Tags`,noTaggedSpools:`Keine Spulen mit Tags`,selectSpool:`Spule auswählen, dann einen NTAG auf den Leser legen`,placeTag:`NTAG auf den Leser legen`,tagReady:`Tag erkannt — bereit zum Schreiben`,writeTag:`Tag beschreiben`,replaceTag:`Tag ersetzen`,writing:`Tag wird beschrieben...`,waiting:`Warte auf SpoolBuddy...`,writeSuccess:`Tag erfolgreich beschrieben!`,writeFailed:`Schreiben fehlgeschlagen`,queueFailed:`Schreibbefehl konnte nicht eingereiht werden`,tryAgain:`Erneut versuchen`,cancel:`Abbrechen`,replaceWarning:`Alter Tag wird getrennt. Neuer Tag ersetzt ihn.`,deviceOffline:`SpoolBuddy ist offline`,material:`Material`,colorName:`Farbname`,color:`Farbe`,brand:`Marke`,weight:`Gewicht (g)`,createSpool:`Spule erstellen`,creating:`Wird erstellt...`,spoolCreated:`Spule erstellt! Bereit zum Schreiben.`,createFailed:`Spule konnte nicht erstellt werden`,incompleteDataWarning:`Tag mit unvollständigen Spoolman-Daten geschrieben`},quickMenu:{printerPower:`Drucker-Strom`,systemControls:`System`,restartDaemon:`Daemon neustarten`,restartBrowser:`Browser neustarten`,reboot:`Neustart`,shutdown:`Herunterfahren`,swipeToClose:`Nach unten wischen zum Schließen`,confirmTitle:`Bestätigen`,confirmShutdown:`Möchten Sie das SpoolBuddy wirklich herunterfahren? Sie benötigen physischen Zugang, um es wieder einzuschalten.`,confirmReboot:`Möchten Sie das SpoolBuddy wirklich neu starten?`,confirmRestartDaemon:`SpoolBuddy-Daemon neustarten? NFC und Waage sind vorübergehend nicht verfügbar.`,confirmRestartBrowser:`Kiosk-Browser neustarten? Das Display wird kurz schwarz.`,confirm:`Bestätigen`,confirmPlugOn:`{{name}} einschalten?`,confirmPlugOff:`{{name}} ausschalten?`,turnOn:`Einschalten`,turnOff:`Ausschalten`}},diagnostic:{modalTitle:`Verbindungsdiagnose — {{name}}`,running:`Diagnose läuft...`,runningElapsed:`Diagnose läuft... ({{elapsed}}s)`,waitingForReportHint:`Warten darauf, dass der Drucker einen Statusbericht sendet — kann bis zu {{max}} Sekunden dauern.`,runFailed:`Diagnose konnte nicht ausgeführt werden: {{error}}`,retry:`Erneut ausführen`,runButton:`Diagnose ausführen`,sectionTitle:`Verbindungsdiagnose`,sectionDescription:`Prüfen, warum ein Drucker keine Verbindung herstellt oder nicht druckt — Port-Erreichbarkeit, LAN-Entwicklermodus, Docker-Netzwerkmodus und Zugangsdaten.`,noPrinters:`Keine Drucker konfiguriert.`,overall:{ok:`Keine Probleme gefunden — die Druckerverbindung sieht gut aus.`,warnings:`Der Drucker sollte funktionieren, aber einige Punkte erfordern Aufmerksamkeit.`,problems:`Probleme gefunden, die erklären, warum der Drucker keine Verbindung herstellt oder nicht druckt.`},check:{port_mqtt:{title:`Steuerungsport (MQTT 8883)`,pass:`Erreichbar — der Drucker akzeptiert Steuerungsverbindungen.`,fail:`Port 8883 ist nicht erreichbar. Der Drucker ist ausgeschaltet, hat eine andere IP-Adresse oder eine Firewall blockiert ihn. Überprüfen Sie die Drucker-IP und dass nichts Port 8883 blockiert.`},port_ftps:{title:`Dateiübertragungsport (FTPS 990)`,pass:`Erreichbar — das Senden von Druckdateien funktioniert.`,warn:`Port 990 ist nicht erreichbar. Die Überwachung funktioniert möglicherweise weiterhin, aber das Senden von Drucken an den Drucker schlägt fehl. Stellen Sie sicher, dass Port 990 nicht blockiert ist.`},external_storage:{title:`Gesendete Dateien auf externem Speicher speichern (Installationsschritt 4)`,pass:`Der Drucker meldet, dass diese Option aktiv ist — gesendete Dateien werden auf der SD-Karte gespeichert und Archive enthalten Vorschaubilder und Slicer-Metadaten.`,fail:`Der Drucker meldet, dass diese Option deaktiviert ist. Aktivieren Sie "Gesendete Dateien auf externem Speicher speichern" — bei neuer Firmware (P2S 01.02 / Bambu Studio 2.6+) liegt der Schalter in den Druckeinstellungen des Druckers, bei älteren Versionen im Geräte-Tab von Bambu Studio / OrcaSlicer. Ohne diese Option fehlen jedem archivierten Druck Vorschaubild und Slicer-Metadaten.`,skip:`Nicht geprüft — eine aktive MQTT-Verbindung ist erforderlich. Bei älteren Slicern, in denen diese Einstellung nur im Slicer existiert, meldet sie der Drucker nicht — diese Prüfung besteht auch dann, wenn die Option deaktiviert ist. Prüfen Sie Installationsschritt 4 in diesem Fall manuell.`,skip_unsupported_model:`Dieses Modell hat einen SD-Slot, aber keine Möglichkeit, die Option zu aktivieren — die aktuelle P1-Firmware zeigt den Schalter in Bambu Studio nicht an und der Drucker hat kein Display. Hier gibt es nichts zu beheben; archivierten Drucken fehlen möglicherweise Vorschaubilder und Slicer-Metadaten, bis Bambu Lab dies per Firmware unterstützt.`},port_rtsps:{title:`Kameraport ({{protocol}} {{port}})`,pass:`Erreichbar — der Kamerastream funktioniert.`,warn:`Port {{port}} ist nicht erreichbar. Die Live-Kameraansicht funktioniert nicht. Dies betrifft das Drucken nicht.`},network_mode:{title:`Docker-Netzwerkmodus`,pass:`Läuft im Host-Netzwerkmodus.`,warn:`Bambuddy läuft im Docker-Bridge-Netzwerkmodus. Die Druckererkennung und der virtuelle Drucker benötigen den Host-Netzwerkmodus — erstellen Sie den Container mit "network_mode: host" neu.`,skip:`Läuft nicht in Docker — nicht zutreffend.`},subnet:{title:`Netzwerk-Subnetz`,pass:`Drucker und Bambuddy befinden sich im selben Subnetz.`,warn:`Der Drucker ({{printer_ip}}) und Bambuddy ({{host_ip}}) befinden sich in unterschiedlichen Subnetzen. Sie können sich möglicherweise nicht erreichen, sofern kein Routing zwischen den Subnetzen konfiguriert ist.`,skip:`Subnetz konnte nicht ermittelt werden — übersprungen.`},mqtt_auth:{title:`Drucker-Zugangsdaten`,pass:`Der Drucker hat die Verbindung akzeptiert.`,fail:`Der Drucker ist erreichbar, aber Bambuddy ist nicht mit ihm verbunden. Höchstwahrscheinlich ist der Zugangscode oder die Seriennummer falsch — der Zugangscode ändert sich bei jedem Umschalten von „Nur LAN“ oder des Entwicklermodus, kopieren Sie ihn also erneut vom Druckerbildschirm. Ein Drucker, der gerade neu startet oder bereits die maximale Anzahl gleichzeitiger Verbindungen erreicht hat, sieht genauso aus.`,fail_auth_rejected:`Der Drucker hat die Zugangsdaten von Bambuddy abgelehnt. Der Zugangscode oder die Seriennummer ist falsch — der Zugangscode ändert sich bei jedem Umschalten von „Nur LAN“ oder des Entwicklermodus. Kopieren Sie ihn erneut vom Druckerbildschirm und speichern Sie ihn in den Druckereinstellungen.`,skip:`Nicht geprüft — der Drucker konnte nicht erreicht werden.`},developer_mode:{title:`LAN-Entwicklermodus`,pass:`Der Entwicklermodus ist aktiviert.`,fail:`Der Entwicklermodus ist am Drucker AUS. Aktivieren Sie ihn in den LAN-Einstellungen des Druckers — und bestätigen Sie mit OK. Ohne ihn starten Drucke nicht.`,skip:`Konnte nicht geprüft werden — erfordert eine aktive Verbindung zum Drucker.`},printer_publishing:{title:`Drucker sendet Statusmeldungen`,pass:`Der Drucker sendet Statusmeldungen — AMS, Filamente und K-Profile werden korrekt zum Slicer gespiegelt.`,fail:`Der MQTT-Broker hat die Verbindung akzeptiert, der Drucker sendet aber keine Statusmeldungen. Fast immer liegt eine falsche oder falsch geschriebene Seriennummer vor — das Topic device//api/v1/metrics para la supervisión con Prometheus/Grafana.`,bearerTokenOptional:`Bearer Token (opcional)`,bearerTokenHint:`Si se establece, las solicitudes deben incluir Authorization: Bearer `,metricsConnectionStatus:`Estado de la conexión`,metricsPrinterState:`Estado de la impresora (inactiva/imprimiendo/etc.)`,metricsPrintProgress:`Progreso de la impresión 0-100%`,metricsBedTemp:`Temperatura de la cama`,metricsNozzleTemp:`Temperatura de la boquilla`,metricsPrintsTotal:`Total de impresiones por resultado`,metricsMore:`...y más (capas, ventiladores, cola, uso de filamento)`,smartPlugsDescription:`Conecte enchufes inteligentes (Tasmota o Home Assistant) para automatizar el control de la alimentación y realizar el seguimiento del consumo de energía de sus impresoras.`,allOn:`Encender todo`,allOff:`Apagar todo`,addSmartPlug:`Añadir enchufe inteligente`,energySummary:`Resumen de energía`,currentPower:`Potencia actual`,plugsOnline:`{{reachable}}/{{total}} enchufes en línea`,today:`Hoy`,yesterday:`Ayer`,total:`Total`,enablePlugsForSummary:`Active enchufes para ver el resumen de energía`,addNotificationProvider:`Añadir`,systemBadge:`(Sistema)`,creating:`Creando...`,changing:`Cambiando...`,deleteUserAndItems:`Eliminar el usuario Y sus elementos`,deleteUserKeepItems:`Eliminar el usuario, conservar los elementos (quedan sin propietario)`,ok:`Aceptar`,twoFa:{totpTitle:`Aplicación de autenticación (TOTP)`,totpDesc:`Use una aplicación de autenticación como Google Authenticator, Aegis o Authy.`,emailOtpTitle:`OTP por correo`,emailOtpDesc:`Enviar un código de un solo uso a {{email}} cuando inicie sesión.`,emailOtpNoEmail:`Añada una dirección de correo a su cuenta para habilitar este método.`,addEmailFirst:`Su cuenta no tiene dirección de correo. Pida a un administrador que añada una antes de activar el OTP por correo.`,setupTotp:`Configurar la aplicación de autenticación`,setupAuthApp:`Configurar la aplicación de autenticación`,setupInstructions:`Escanee el código QR de abajo con su aplicación de autenticación y luego confirme con un código.`,manualEntry:`¿No puede escanear? Introduzca este secreto manualmente:`,scannedContinue:`He escaneado el código — continuar`,enterCodeToConfirm:`Introduzca el código de 6 dígitos de su aplicación de autenticación para confirmar la configuración.`,activate:`Activar`,disableTotp:`Desactivar el autenticador`,disableConfirmHint:`Introduzca un código TOTP válido o un código de respaldo para desactivar el autenticador.`,totpDisabled:`Aplicación de autenticación desactivada.`,emailOtpEnabled:`OTP por correo activado.`,emailOtpDisabled:`OTP por correo desactivado.`,smtpRequired:`Configure y pruebe primero los ajustes de SMTP.`,invalidCode:`Código no válido. Inténtelo de nuevo.`,enableEmailOtp:`Activar el OTP por correo`,disableEmailOtp:`Desactivar el OTP por correo`,emailSetupEnterCode:`Se ha enviado un código de verificación a su dirección de correo. Introdúzcalo a continuación para confirmar que es el propietario de este buzón.`,verifyAndEnable:`Verificar y activar`,emailDisablePasswordHint:`Introduzca la contraseña de su cuenta para confirmar la desactivación del OTP por correo.`,passwordPlaceholder:`Introduzca su contraseña`,backupCodesTitle:`Guarde sus códigos de respaldo`,backupCodesWarning:`Guarde estos códigos en un lugar seguro. Cada código solo se puede usar una vez y no se volverán a mostrar.`,backupCodesRemaining:`Quedan {{count}} códigos de respaldo`,savedCodes:`He guardado mis códigos`,regenBackup:`Regenerar los códigos de respaldo`,regenBackupHint:`Introduzca su código TOTP actual para generar 10 códigos de respaldo nuevos. Todos los códigos de respaldo existentes quedarán invalidados.`,newBackupCodes:`Nuevos códigos de respaldo`,linkedAccounts:`Cuentas de SSO vinculadas`,linkedAccountsDesc:`Estos proveedores de identidad externos están vinculados a su cuenta.`,oidcUnlinked:`Cuenta desvinculada.`},sessionPolicy:{title:`Política de sesión`,description:`Duración máxima de sesión para nuevos inicios de sesión. Los tokens ya emitidos conservan su caducidad original.`,preset24h:`24 horas`,preset7d:`7 días`,preset30d:`30 días`,customHoursLabel:`Duración de sesión personalizada en horas`,hoursSuffix:`horas`,warning:`Las sesiones más largas reducen la protección de cierre automático. Recomendado solo para implementaciones de usuario único en entornos de confianza.`},oidc:{title:`Proveedores SSO / OIDC`,desc:`Configure proveedores de OpenID Connect para permitir el inicio de sesión único mediante proveedores de identidad externos.`,addProvider:`Añadir proveedor`,newProvider:`Nuevo proveedor`,empty:`Aún no hay proveedores OIDC configurados.`,created:`Proveedor creado.`,updated:`Proveedor actualizado.`,deleted:`Proveedor eliminado.`,refreshIcon:`Actualizar icono`,removeIcon:`Quitar icono`,iconRefreshed:`Icono actualizado.`,iconRemoved:`Icono eliminado.`,iconFetchFailed:`No se pudo obtener el icono de la URL del proveedor.`,deleteTitle:`Eliminar proveedor`,deleteMessage:`¿Eliminar "{{name}}"? Todas las cuentas de usuario vinculadas se desconectarán.`,form:{name:`Nombre visible`,issuerUrl:`URL del emisor`,clientId:`ID de cliente`,clientSecret:`Secreto de cliente`,scopes:`Ámbitos`,iconUrl:`URL del icono (opcional)`,enabled:`Activado`,autoCreate:`Crear usuarios automáticamente`,autoCreateDesc:`Crear automáticamente una cuenta local en el primer inicio de sesión.`,autoLink:`Vincular cuentas existentes automáticamente`,autoLinkDesc:`Vincular cuentas locales existentes haciendo coincidir el correo en el primer inicio de sesión.`,secretHint:`dejar en blanco para conservar el actual`,secretPlaceholder:`nuevo secreto`,emailClaim:`Claim de correo`,emailClaimDesc:`Claim de JWT usado como identidad de correo. Use «preferred_username» o «upn» para Azure Entra ID (que no envía email_verified). Use solo nombres de claim de confianza.`,emailClaimPlaceholder:`correo`,emailClaimCustomClaimAutoLinkWarning:`Los claims personalizados solo son seguros para la vinculación automática cuando el valor lo administra el inquilino (p. ej. upn / preferred_username de Azure Entra ID). No active la vinculación automática si su IdP permite a los usuarios autoasignarse este claim.`,requireEmailVerified:`Requerir correo verificado`,requireEmailVerifiedDesc:`Aceptar el claim de correo solo cuando el proveedor lo marca como verificado.`,requireEmailVerifiedWarning:`Advertencia: el correo se aceptará incluso sin verificación. Úselo solo con proveedores de confianza.`,requireEmailVerifiedAutoLink:`Desactive primero la vinculación automática para cambiar este ajuste.`,defaultGroup:`Grupo predeterminado`,defaultGroupDesc:`Grupo asignado a los usuarios creados automáticamente. Si no se establece, se usa Visores como alternativa.`,defaultGroupViewersFallback:`Visores (predeterminado)`,autologin:`Inicio automático`,autologinDesc:`Redirigir a los visitantes no autenticados directamente a este proveedor. Solo un proveedor puede llevar esta marca.`}},encryption:{title:`Estado del cifrado de MFA`,enabledFromEnv:`Cifrado en reposo activado (clave de la variable de entorno MFA_ENCRYPTION_KEY)`,enabledFromFile:`Cifrado en reposo activado (clave cargada del directorio de datos)`,enabledGenerated:`Cifrado en reposo activado con una clave autogenerada`,notConfigured:`Cifrado en reposo no configurado`,notConfiguredDesc:`Los secretos TOTP y los client_secrets de OIDC se almacenan en texto plano. Establezca MFA_ENCRYPTION_KEY o reinicie Bambuddy con un directorio de datos con permisos de escritura para generar una automáticamente.`,allEncrypted:`Todos los secretos de MFA están cifrados en reposo.`,legacyRowsLabel:`Filas heredadas en texto plano`,encryptedRowsLabel:`Filas cifradas`,legacyRowsWarning:`Se detectaron {{count}} fila(s) heredada(s) en texto plano. Vuelva a guardar el proveedor OIDC o vuelva a registrar la aplicación de autenticación del usuario para migrar al almacenamiento cifrado.`,backupHint:`La clave autogenerada se almacena en DATA_DIR/.mfa_encryption_key y se incluye en los ZIP de copia de seguridad local. Mantenga sus copias de seguridad seguras o establezca MFA_ENCRYPTION_KEY de forma explícita.`,decryptionBrokenTitle:`Falta la clave de cifrado`,decryptionBrokenError:`{{count}} registro(s) cifrado(s) no se pueden descifrar porque la clave de cifrado ya no está disponible. Restaure la MFA_ENCRYPTION_KEY anterior o DATA_DIR/.mfa_encryption_key para recuperarlos.`,migrationErrorWarning:`{{count}} fila(s) heredada(s) no se pudieron volver a cifrar al iniciar. Revise los registros del servidor y reinicie Bambuddy para reintentarlo.`},pipelineLimits:{title:`Límites de pipelines del cortador`,maxCopiesLabel:`Copias máximas por ejecución`,maxCopiesDesc:`Límite superior de copias que los operadores pueden solicitar al ejecutar una pipeline. El límite máximo del servidor es 1000.`},pipelines:{title:`Pipelines del Cortador`,subtitle:`Paquetes reutilizables de preajustes (impresora + proceso + filamentos + tipo de placa). Guarda uno desde el diálogo Cortar y aplícalo con un clic al siguiente archivo.`,loading:`Cargando pipelines…`,loadError:`No se pudieron cargar las pipelines.`,confirmDelete:`¿Eliminar esta pipeline? Esto no se puede deshacer.`,staleWarning:`Uno o más preajustes referenciados ya no existen. Vuelve a guardar esta pipeline desde el diálogo Cortar para corregirla.`,empty:{title:`Aún no hay pipelines.`,howto:`Abre el diálogo Cortar para cualquier archivo, elige impresora / proceso / filamentos / placa, y haz clic en "Guardar como pipeline". Tus pipelines guardadas aparecerán aquí.`},field:{name:`Nombre de la pipeline`,description:`Descripción`,targetPrinter:`Impresora de destino`,noTarget:`— Sin destino —`,targetKind:`Tipo de destino`,targetKindSpecific:`Impresora específica`,targetKindClass:`Clase de impresora`,targetModelClass:`Modelo de impresora`,fanoutStrategy:`Estrategia de distribución`,fanout:{max_parallel:`Máximo paralelo — distribuir entre cualquier impresora libre coincidente`,round_robin:`Round robin — alternar entre impresoras elegibles`,fill_one_first:`Llenar una primero — fijar todas las copias a una impresora`},fanoutShort:{max_parallel:`paralelo`,round_robin:`round robin`,fill_one_first:`primero uno`}},action:{save:`Guardar`,cancel:`Cancelar`,rename:`Renombrar`,delete:`Eliminar`},slot:{printer:`Impresora`,process:`Proceso`,filament:`Filamento`,filamentN:`Filamento {{n}}`,filamentAll:`Todos los {{n}} slots`,bed:`Placa`},group:{profiles:`Perfiles`,filaments:`Filamentos`},searchPlaceholder:`Buscar pipelines…`,filterTargetType:`Filtrar por tipo de destino`,filterTarget:`Filtrar por destino`,filter:{all:`Todos los destinos`,noTarget:`Sin destino`,count:`{{shown}} / {{total}}`,noMatches:`Ninguna pipeline coincide con los filtros actuales.`},toast:{saved:`Pipeline guardada`,saveFailed:`Error al guardar`,deleted:`Pipeline eliminada`,deleteFailed:`Error al eliminar`},noTargetHint:`Establece una impresora de destino para ejecutar`,noTargetWarning:`Establece una impresora de destino antes de ejecutar esta pipeline.`,runs:{lastRun:`Última ejecución`,status:{queued:`en cola`,slicing:`cortando`,dispatching:`enviando`,in_progress:`imprimiendo`,completed:`completada`,failed:`fallida`,partial_failure:`fallo parcial`,cancelled:`cancelada`}}}},notification:{printStarted:{title:`Impresión iniciada`,body:`{{printer}}: {{filename}} ha empezado a imprimirse`},printCompleted:{title:`Impresión completada`,body:`{{printer}}: {{filename}} se completó correctamente`},printFailed:{title:`Impresión fallida`,body:`{{printer}}: {{filename}} ha fallado`},printStopped:{title:`Impresión detenida`,body:`{{printer}}: {{filename}} se detuvo`},printProgress:{title:`Progreso de la impresión`,body:`{{printer}}: {{filename}} está al {{percent}}%`},printerOffline:{title:`Impresora desconectada`,body:`{{printer}} está desconectada`},printerError:{title:`Error de la impresora`,body:`{{printer}}: {{error}}`},filamentLow:{title:`Filamento bajo`,body:`{{printer}}: el filamento se está agotando`},maintenanceDue:{title:`Mantenimiento pendiente`,body:`{{printer}}: {{items}} necesitan atención`}},errors:{generic:`Algo salió mal`,networkError:`Error de red. Compruebe su conexión.`,notFound:`No encontrado`,unauthorized:`No autorizado`,serverError:`Error del servidor`,validationError:`Compruebe los datos introducidos`,printerConnectionFailed:`Error al conectar con la impresora`,saveFailed:`Error al guardar los cambios`,deleteFailed:`Error al eliminar`,loadFailed:`Error al cargar los datos`},hmsErrors:{title:`Errores - {{name}}`,noErrors:`No hay errores`,viewOnWiki:`Ver en la wiki de Bambu Lab`,mqttVerifyFailedRemedy:`Activa el modo desarrollador en la impresora, reinicia la impresora y vuelve a iniciar el trabajo.`,unknownCode:`Código HMS desconocido — consulta la wiki de Bambu Lab para más detalles.`,clearInstructions:`Borre los errores en la impresora para descartarlos aquí.`,clearErrors:`Borrar errores`,clearSuccess:`Errores HMS borrados`,clearFailed:`Error al borrar los errores HMS`,actionSuccess:`Acción enviada a la impresora`,actionFailed:`No se pudo enviar la acción`,runoutExpectedSlot:`El filamento se agotó en {{ranOut}}. La impresora ahora espera filamento compatible en {{expected}}. Inserta una bobina en {{expected}} y luego selecciona Reintentar.`,runoutExpectedSlotOnly:`La impresora está esperando filamento compatible en {{expected}}. Inserta una bobina ahí y luego selecciona Reintentar.`,runoutSlotUnknown:`El filamento se agotó y la impresión está en pausa. Bambuddy no pudo determinar qué slot espera ahora la impresora — revisa la pantalla de la impresora para ver el slot solicitado.`,actions:{RESUME_PRINTING:`Reanudar impresión`,RESUME_PRINTING_DEFECTS:`Reanudar (defectos aceptables)`,RESUME_PRINTING_PROBELM_SOLVED:`Reanudar (problema resuelto)`,STOP_PRINTING:`Detener impresión`,CHECK_ASSISTANT:`Ver asistente`,FILAMENT_EXTRUDED:`Filamento extruido, continuar`,RETRY_FILAMENT_EXTRUDED:`Aún no extruido, reintentar`,CONTINUE:`Finalizado, continuar`,LOAD_VIRTUAL_TRAY:`Cargar filamento`,OK_BUTTON:`OK`,FILAMENT_LOAD_RESUME:`Filamento cargado, reanudar`,JUMP_TO_LIVEVIEW:`Ver en vivo`,NO_REMINDER_NEXT_TIME:`No recordar la próxima vez`,REFRESH_NOZZLE:`Volver a comprobar`,IGNORE_NO_REMINDER_NEXT_TIME:`Ignorar y no recordar`,IGNORE_RESUME:`Ignorar y reanudar`,PROBLEM_SOLVED_RESUME:`Problema resuelto, reanudar`,TURN_OFF_FIRE_ALARM:`Entendido, apagar alarma de incendio`,RETRY_PROBLEM_SOLVED:`Reintentar (problema resuelto)`,CANCLE:`Cancelar`,STOP_DRYING:`Detener secado`,PROCEED:`Continuar`,OK_JUMP_RACK:`OK`,ABORT:`Cancelar`,DISABLE_PURIFICATION:`Desactivar purificación para esta impresión`,DONT_REMIND_NEXT_TIME:`No recordarme`,DBL_CHECK_CANCEL:`Cancelar`,DBL_CHECK_DONE:`Hecho`,DBL_CHECK_RETRY:`Reintentar`,DBL_CHECK_RESUME:`Reanudar`,DBL_CHECK_OK:`Confirmar`,REMOVE_CLOSE_BTN:`Cerrar`}},mqttDebug:{title:`Registro de depuración MQTT`,searchPlaceholder:`Buscar tema o carga útil...`,noMessages:`Aún no se han registrado mensajes`,startLoggingHint:`Haga clic en «Iniciar registro» para empezar a capturar mensajes MQTT`,noMessagesMatch:`Ningún mensaje coincide con su filtro`,adjustFilterHint:`Pruebe a ajustar su búsqueda o los criterios del filtro`,incoming:`Entrante`,outgoing:`Saliente`,loggingStopped:`Registro detenido`,loggingActive:`Registro activo - los mensajes se actualizarán automáticamente`,startLogging:`Iniciar registro`,stopLogging:`Detener registro`,clearLog:`Borrar registro`,topic:`Tema`,timestamp:`Marca de tiempo`,direction:`Dirección`,all:`Todos`},printerFiles:{title:`Gestor de archivos`,storageUsed:`Usado:`,storageFree:`Libre:`,filterPlaceholder:`Filtrar archivos...`,deleteButton:`Eliminar`,deleteFiles:`Eliminar {{count}} archivos`,deleteFileConfirm:`¿Eliminar "{{name}}"? Esto no se puede deshacer.`,deleteFilesConfirm:`¿Eliminar {{count}} archivos seleccionados? Esto no se puede deshacer.`,noFiles:`No hay archivos en la impresora`,loadingFiles:`Cargando archivos...`,failedToLoad:`Error al cargar los archivos`,toast:{filesDeleted:`Se eliminaron {{count}} archivo(s)`,deleteFailed:`Error al eliminar: {{error}}`}},confirm:{delete:`¿Está seguro de que desea eliminar esto?`,unsavedChanges:`Tiene cambios sin guardar. ¿Está seguro de que desea salir?`,clearQueue:`¿Está seguro de que desea vaciar la cola?`},login:{title:`Inicio de sesión en Bambuddy`,subtitle:`Inicie sesión en su cuenta`,username:`Nombre de usuario`,usernamePlaceholder:`Introduzca su nombre de usuario`,usernameOrEmail:`Nombre de usuario o correo`,usernameOrEmailPlaceholder:`Nombre de usuario o @ correo`,password:`Contraseña`,passwordPlaceholder:`Introduzca su contraseña`,signIn:`Iniciar sesión`,signingIn:`Iniciando sesión...`,rememberMe:`Recordarme`,forgotPassword:`¿Olvidó su contraseña?`,autologinFailed:`El inicio de sesión SSO automático falló. Elija un proveedor abajo para continuar.`,localDisabledNotice:`El inicio de sesión local está deshabilitado. Use uno de los proveedores SSO de abajo.`,loginSuccess:`Sesión iniciada correctamente`,loginFailed:`Error al iniciar sesión`,enterCredentials:`Introduzca el nombre de usuario y la contraseña`,enterEmail:`Introduzca su dirección de correo`,oidcLoginFailed:`Error en el inicio de sesión con OIDC`,oidcErrors:{providerError:`El proveedor de identidad devolvió un error`,missingParameters:`A la respuesta de OIDC le faltan parámetros obligatorios`,invalidState:`El estado de OIDC no es válido o ya se ha usado`,stateExpired:`La sesión de inicio de sesión con OIDC ha caducado — inténtelo de nuevo`,providerNotFound:`Proveedor OIDC no encontrado`,discoveryFailed:`Error al obtener el documento de descubrimiento de OIDC`,invalidDiscovery:`El documento de descubrimiento de OIDC no es válido`,networkError:`Error de red durante el intercambio de tokens de OIDC`,badResponse:`Respuesta inesperada durante el intercambio de tokens de OIDC`,noIdToken:`El proveedor OIDC no devolvió un token de ID`,validationFailed:`Error en la validación del token de OIDC`,nonceMismatch:`Discrepancia de nonce de OIDC — posible ataque de repetición`,missingSubClaim:`Al token de OIDC le falta el claim sub`,noLinkedAccount:`Ninguna cuenta local está vinculada a esta identidad de OIDC`,accountInactive:`Su cuenta está inactiva`,userResolutionFailed:`Error al resolver su cuenta`,internalError:`Se produjo un error interno durante el inicio de sesión con OIDC`,tokenExchangeFailed:`Error en el intercambio de tokens de OIDC`},forgotPasswordTitle:`Contraseña olvidada`,forgotPasswordMessage:`Si ha olvidado su contraseña, póngase en contacto con el administrador de su sistema para restablecerla.`,forgotPasswordEmailMessage:`Introduzca su dirección de correo y le enviaremos una contraseña nueva.`,emailAddress:`Dirección de correo`,emailPlaceholder:`su.correo@ejemplo.com`,cancel:`Cancelar`,sending:`Enviando...`,sendResetEmail:`Enviar correo de restablecimiento`,howToReset:`Cómo restablecer su contraseña:`,resetStep1:`Póngase en contacto con su administrador de Bambuddy`,resetStep2:`Pídale que restablezca su contraseña en la gestión de usuarios`,resetStep3:`Puede establecerle una nueva contraseña temporal`,resetStep4:`Inicie sesión con la nueva contraseña y cámbiela en Ajustes`,gotIt:`Entendido`,resetPassword:{title:`Establecer nueva contraseña`,subtitle:`Introduzca y confirme su nueva contraseña a continuación.`,newPassword:`Nueva contraseña`,newPasswordPlaceholder:`Al menos 8 caracteres`,confirmPassword:`Confirmar contraseña`,confirmPasswordPlaceholder:`Repita la nueva contraseña`,saving:`Guardando…`,submit:`Establecer nueva contraseña`,backToLogin:`Volver al inicio de sesión`,passwordsDoNotMatch:`Las contraseñas no coinciden`,passwordTooShort:`La contraseña debe tener al menos 8 caracteres`,resetFailed:`Error al restablecer la contraseña. Es posible que el enlace haya caducado.`},twoFA:{title:`Autenticación de dos factores`,subtitle:`Su cuenta está protegida con 2FA. Introduzca el código de verificación a continuación.`,methodAuthenticator:`Aplicación de autenticación`,methodEmail:`Código por correo`,methodBackup:`Código de respaldo`,instructionsTotp:`Abra su aplicación de autenticación e introduzca el código de 6 dígitos para Bambuddy.`,instructionsEmail:`Se ha enviado un código de 6 dígitos a su dirección de correo. Caduca en 10 minutos.`,instructionsEmailNotSent:`Haga clic en el botón de abajo para recibir un código de verificación por correo.`,instructionsBackup:`Introduzca uno de sus códigos de recuperación de respaldo de 8 caracteres. Cada código solo se puede usar una vez.`,sendCodeButton:`Enviar código por correo`,sendingCode:`Enviando...`,resendCode:`Reenviar código`,codeLabel:`Código de verificación`,backupCodeLabel:`Código de respaldo`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`Verificar`,verifyingButton:`Verificando...`,backToLogin:`← Volver al inicio de sesión`,orContinueWith:`o continuar con`,signInWith:`Iniciar sesión con {{provider}}`,enterCode:`Introduzca el código de verificación`,sendCodeFailed:`Error al enviar el código de verificación`,invalidCode:`Código no válido. Inténtelo de nuevo.`}},setup:{title:`Configuración de Bambuddy`,subtitle:`Configure la autenticación para su instancia de Bambuddy`,enableAuth:`Activar la autenticación`,adminAccount:`Cuenta de administrador`,adminAccountDesc:`Si ya existen usuarios administradores, la autenticación se activará usando las cuentas de administrador existentes. Deje los campos de abajo vacíos para usar los administradores existentes, o introduzca nuevas credenciales para crear un nuevo usuario administrador.`,adminUsername:`Nombre de usuario del administrador`,adminPassword:`Contraseña del administrador`,optionalIfAdminExists:`(opcional si existen usuarios administradores)`,adminUsernamePlaceholder:`Introduzca el nombre de usuario del administrador (opcional)`,adminPasswordPlaceholder:`Introduzca la contraseña del administrador (opcional)`,confirmPassword:`Confirmar contraseña`,confirmPasswordPlaceholder:`Confirme la contraseña del administrador`,settingUp:`Configurando...`,completeSetup:`Completar la configuración`,toast:{authEnabledAdminCreated:`Autenticación activada y usuario administrador creado`,authEnabledExistingAdmins:`Autenticación activada usando los usuarios administradores existentes`,setupCompleted:`Configuración completada`,enterBothCredentials:`Introduzca el nombre de usuario y la contraseña del administrador, o deje ambos vacíos para usar los usuarios administradores existentes`,passwordsDoNotMatch:`Las contraseñas no coinciden`,passwordTooShort:`La contraseña debe tener al menos 6 caracteres`}},changePassword:{title:`Cambiar contraseña`,currentPassword:`Contraseña actual`,currentPasswordPlaceholder:`Introduzca la contraseña actual`,newPassword:`Nueva contraseña`,newPasswordPlaceholder:`Introduzca la nueva contraseña (mín. 6 caracteres)`,confirmPassword:`Confirmar nueva contraseña`,confirmPasswordPlaceholder:`Confirme la nueva contraseña`,passwordsDoNotMatch:`Las contraseñas no coinciden`,passwordTooShort:`La contraseña debe tener al menos 6 caracteres`,changing:`Cambiando...`,success:`Contraseña cambiada correctamente`,failed:`Error al cambiar la contraseña`},plateAlert:{title:`¡Impresión en pausa!`,message:`Se han detectado objetos en la cama de impresión. La impresión se ha pausado automáticamente. Despeje la cama y reanude la impresión.`,understand:`Entendido`},camera:{title:`Vista de la cámara`,invalidPrinterId:`ID de impresora no válido`,live:`En directo`,snapshot:`Captura`,restartStream:`Reiniciar la transmisión`,refreshSnapshot:`Actualizar la captura`,fullscreen:`Pantalla completa`,exitFullscreen:`Salir de la pantalla completa`,connectingToCamera:`Conectando con la cámara...`,capturingSnapshot:`Capturando imagen...`,connectionLost:`Conexión perdida`,connectionFailed:`Error de conexión con la cámara`,reconnecting:`Reconectando en {{countdown}} s... (intento {{attempt}}/{{max}})`,reconnectNow:`Reconectar ahora`,cameraUnavailable:`Cámara no disponible`,cameraUnavailableDesc:`Asegúrese de que la impresora está encendida y conectada.`,noCamera:`No hay cámara disponible`,retry:`Reintentar`,cameraStream:`Transmisión de la cámara`,zoomOut:`Alejar`,zoomIn:`Acercar`,resetZoom:`Restablecer el zoom`,recording:`Grabando`,startRecording:`Iniciar grabación`,stopRecording:`Detener grabación`,chamberLight:`Conmutar la luz de la cámara`,unavailable:`Cámara no disponible`,diagnose:{button:`Diagnosticar`,modalTitle:`Diagnóstico de la cámara`,running:`Ejecutando el diagnóstico...`,runFailed:`No se pudo ejecutar el diagnóstico: {{error}}`,retry:`Ejecutar de nuevo`,stage:{tcp_reachable:`Accesibilidad de la red`,first_frame:`Captura de fotogramas`,live_stream_active:`Transmisión en directo activa`},summary:{all_ok:`La cámara funciona. El diagnóstico completó todas las etapas correctamente.`,live_stream_active_healthy:`La cámara está transmitiendo actualmente con fotogramas recientes — no se necesita ninguna prueba.`,printer_unreachable:`La impresora no es accesible. Compruebe la dirección IP, la conexión de red y que la impresora está encendida.`,camera_port_closed:`La impresora es accesible pero el puerto de la cámara está cerrado. Asegúrese de que el modo solo LAN y el modo desarrollador están activados en los ajustes de la impresora.`,no_frame:`Se conectó a la cámara pero no se recibieron fotogramas. Inténtelo de nuevo o compruebe que la cámara está activada en los ajustes de la impresora.`,unknown_failure:`El diagnóstico de la cámara falló por un motivo desconocido. Consulte el registro de soporte para más detalles.`},meta:{protocol:`Protocolo`,port:`Puerto`,profile:`Perfil`}}},groups:{title:`Gestión de grupos`,subtitle:`Gestione los grupos de permisos para el control de acceso`,backToSettings:`Volver a Ajustes`,createGroup:`Crear grupo`,noPermission:`No tiene permiso para acceder a esta página.`,system:`Sistema`,noDescription:`Sin descripción`,usersCount:`{{count}} usuarios`,permissionsCount:`{{count}} permisos`,edit:`Editar`,delete:`Eliminar`,toast:{created:`Grupo creado correctamente`,updated:`Grupo actualizado correctamente`,deleted:`Grupo eliminado correctamente`,enterGroupName:`Introduzca un nombre de grupo`},modal:{editGroup:`Editar grupo`,createGroup:`Crear grupo`,cancel:`Cancelar`,saving:`Guardando...`,creating:`Creando...`,saveChanges:`Guardar cambios`},form:{groupName:`Nombre del grupo`,groupNamePlaceholder:`Introduzca el nombre del grupo`,systemGroupWarning:`Los nombres de los grupos del sistema no se pueden cambiar`,description:`Descripción`,descriptionPlaceholder:`Introduzca una descripción (opcional)`,permissions:`Permisos ({{count}} seleccionados)`},deleteModal:{title:`Eliminar grupo`,message:`¿Está seguro de que desea eliminar este grupo? Los usuarios de este grupo perderán estos permisos.`,confirm:`Eliminar grupo`},editor:{title:`Editar grupo`,createTitle:`Crear grupo`,search:`Buscar permisos...`,selectAll:`Seleccionar todo`,clearAll:`Borrar todo`,permissionsSelected:`{{count}} seleccionados`,noResults:`Ningún permiso coincide con su búsqueda`,websocketHint:`Necesario para las actualizaciones en vivo. Sin este permiso, la interfaz recurre al sondeo periódico.`}},users:{title:`Gestión de usuarios`,subtitle:`Gestione los usuarios y su acceso a su instancia de Bambuddy`,backToSettings:`Volver a Ajustes`,createUser:`Crear usuario`,noPermission:`No tiene permiso para acceder a esta página.`,admin:`Administrador`,noGroups:`Sin grupos`,active:`Activo`,inactive:`Inactivo`,edit:`Editar`,delete:`Eliminar`,system:`Sistema`,noGroupsAvailable:`No hay grupos disponibles`,table:{username:`Nombre de usuario`,groups:`Grupos`,status:`Estado`,actions:`Acciones`},toast:{created:`Usuario creado correctamente`,updated:`Usuario actualizado correctamente`,deleted:`Usuario eliminado correctamente`,fillRequired:`Rellene todos los campos obligatorios`,passwordsDoNotMatch:`Las contraseñas no coinciden`,passwordTooShort:`La contraseña debe tener al menos 6 caracteres`,ldapProvisioned:`Usuario LDAP "{{username}}" aprovisionado`},modal:{createUser:`Crear usuario`,editUser:`Editar usuario`,cancel:`Cancelar`,creating:`Creando...`,saving:`Guardando...`,saveChanges:`Guardar cambios`,advancedAuthSubtitle:`con autenticación avanzada`,tabsAriaLabel:`Origen del usuario`,localTab:`Local`,ldapTab:`LDAP`,ldapSearchLabel:`Buscar en el directorio`,ldapSearchPlaceholder:`Escriba un nombre de usuario, nombre o correo...`,ldapMinChars:`Escriba al menos 2 caracteres para buscar`,ldapTypeToSearch:`Empiece a escribir para buscar en el directorio LDAP`,ldapSearching:`Buscando en el directorio...`,ldapNoResults:`No hay usuarios coincidentes en el directorio`,ldapSearchError:`Error en la búsqueda en el directorio. Compruebe el estado del servidor LDAP.`,ldapAlreadyProvisioned:`Ya aprovisionado`,ldapSelectedLabel:`Seleccionado`,ldapProvision:`Aprovisionar usuario`,ldapProvisioning:`Aprovisionando...`,ldapErrorProvision:`Error en el aprovisionamiento. Compruebe el estado del servidor LDAP e inténtelo de nuevo.`},form:{username:`Nombre de usuario`,usernamePlaceholder:`Introduzca el nombre de usuario`,email:`Correo`,emailPlaceholder:`usuario@ejemplo.com`,password:`Contraseña`,passwordPlaceholder:`Introduzca la contraseña`,confirmPassword:`Confirmar contraseña`,confirmPasswordPlaceholder:`Confirme la contraseña`,newPasswordPlaceholder:`Introduzca la nueva contraseña`,confirmNewPasswordPlaceholder:`Confirme la nueva contraseña`,leaveBlankToKeep:`dejar en blanco para conservar la actual`,groups:`Grupos`,optional:`opcional`,autoGeneratedPassword:`Se generará automáticamente una contraseña segura y se enviará al usuario por correo.`,passwordManagedByAdvancedAuth:`La contraseña la gestiona la autenticación avanzada. Use «Restablecer contraseña» para enviar una nueva contraseña al usuario por correo.`,resetPassword:`Restablecer contraseña`,resettingPassword:`Restableciendo la contraseña...`},deleteModal:{title:`Eliminar usuario`,message:`¿Está seguro de que desea eliminar este usuario? Esta acción no se puede deshacer.`,confirm:`Eliminar usuario`}},streamOverlay:{title:`Superposición de transmisión`,invalidPrinterId:`ID de impresora no válido`,cameraStream:`Transmisión de la cámara`,progress:`Progreso`,eta:`Tiempo estimado`,printerIdle:`La impresora está inactiva`,printerOffline:`Impresora desconectada`,status:{printing:`Imprimiendo`,paused:`En pausa`,finished:`Finalizada`,failed:`Fallida`,idle:`Inactiva`,unknown:`Desconocido`}},profiles:{title:`Perfiles`,subtitle:`Gestione sus preajustes del laminador y las calibraciones de avance de presión`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`Perfiles locales`,kprofiles:`Perfiles K`},orcaCloud:{connectedAs:`Conectado como`,connectedShort:`Conectado a Orca Cloud`,logout:`Desconectar`,noLogoutPermission:`No tienes permiso para desconectar`,noConnectPermission:`No tienes permiso para conectar a Orca Cloud`,retry:`Reintentar`,connectButton:`Conectar Orca Cloud`,connect:{title:`Conectar a Orca Cloud`,description:`Inicia sesión en tu cuenta Orca Cloud para sincronizar tus perfiles de slicer en Bambuddy.`},device:{title:`Aprueba Bambuddy en Orca Cloud`,instruction:`Abre Orca Cloud y aprueba este código. Bambuddy se conecta automáticamente en cuanto lo apruebes.`,codeLabel:`Tu código de emparejamiento`,openButton:`Abrir la página de aprobación de Orca Cloud`,manualHint:`O ve a {{url}} e introduce el código de arriba.`,waiting:`Esperando a que apruebes…`,cancel:`Cancelar`},profiles:{title:`Tus perfiles de Orca Cloud ({{count}})`,refresh:`Actualizar`,empty:`Aún no hay perfiles en tu cuenta de Orca Cloud.`},toast:{disconnected:`Desconectado de Orca Cloud`},errors:{startFailed:`No se pudo iniciar el inicio de sesión de Orca Cloud.`,denied:`El emparejamiento fue rechazado en Orca Cloud.`,expired:`El código de emparejamiento caducó. Haz clic en Conectar para intentarlo de nuevo.`,pollFailed:`Se perdió la conexión mientras se esperaba la aprobación. Inténtalo de nuevo.`}},localProfiles:{title:`Perfiles locales`,subtitle:`Importe y gestione preajustes del laminador desde OrcaSlicer`,import:`Importar perfiles`,importDesc:`Suelte aquí archivos .bbscfg, .bbsflmt, .orca_filament, .zip o .json`,importing:`Importando...`,search:`Buscar preajustes locales...`,noPresets:`Aún no hay preajustes locales`,noSearchResults:`Ningún preajuste coincide con su búsqueda`,badge:`Local`,edit:`Editar`,delete:`Eliminar`,cancel:`Cancelar`,deleteConfirmTitle:`Eliminar preajuste`,deleteConfirm:`¿Está seguro de que desea eliminar este preajuste? Esto no se puede deshacer.`,source:`Origen`,inheritsFrom:`Hereda de`,filamentType:`Tipo`,vendor:`Proveedor`,compatiblePrinters:`Impresoras`,nozzleTemp:`Temp. de la boquilla`,cost:`Coste`,density:`Densidad`,pressureAdvance:`Avance de presión`,filament:`Filamento`,process:`Proceso`,printer:`Impresora`,toast:{importSuccess:`{{count}} preajuste(s) importado(s)`,importSkipped:`{{count}} preajuste(s) omitido(s) (duplicados)`,importError:`{{count}} error(es) durante la importación`,deleted:`Preajuste eliminado`,updated:`Preajuste actualizado`}},connectedAs:`Conectado como`,signInExpiredTitle:`La sesión de Bambu Cloud ha caducado`,signInExpiredBody:`Bambu Lab ya no acepta el token almacenado. Inicie sesión de nuevo para restaurar los perfiles en la nube, las importaciones de MakerWorld y las comprobaciones de firmware.`,logout:`Cerrar sesión`,noLogoutPermission:`No tiene permiso para cerrar sesión`,failedToLoad:`Error al cargar los perfiles`,retry:`Reintentar`,time:{justNow:`Ahora mismo`,minsAgo:`hace {{count}} min`,hoursAgo:`hace {{count}} h`,daysAgo:`hace {{count}} d`},toast:{loggedOut:`Sesión cerrada`},login:{title:`Conectarse a Bambu Cloud`,subtitle:`Sincronice sus preajustes del laminador entre dispositivos`,email:`Correo`,password:`Contraseña`,region:`Región`,regionGlobal:`Global`,regionChina:`China`,verificationCode:`Código de verificación`,totpCode:`Código del autenticador`,checkEmail:`Compruebe su correo ({{email}}) en busca de un código de 6 dígitos`,enterTotpHint:`Introduzca el código de 6 dígitos de su aplicación de autenticación`,accessToken:`Token de acceso`,accessTokenHint:`Pegue su token de acceso de Bambu Cloud. Las cuentas de la región de China deben usar esta vía (vinculada al teléfono — inicio de sesión por correo no disponible). Consulte la wiki para saber cómo obtener el token de las cookies de MakerWorld.`,back:`Atrás`,loginButton:`Iniciar sesión`,verifyButton:`Verificar`,setTokenButton:`Establecer token`,useToken:`Usar token de acceso en su lugar`,useEmail:`Iniciar sesión con correo en su lugar`,toast:{loggedIn:`Sesión iniciada correctamente`,codeSent:`Código de verificación enviado a su correo`,enterTotp:`Introduzca el código de su aplicación de autenticación`,tokenSet:`Token establecido correctamente`}},presets:{myPreset:`Mi preajuste (editable)`,duplicate:`Duplicar`,editable:`Editable`,failedToLoadDetails:`Error al cargar los detalles del preajuste`,deleteConfirm:`¿Eliminar este preajuste?`,deleteWarning:`Esto eliminará permanentemente "{{name}}" de Bambu Cloud. Esto no se puede deshacer.`,noDuplicatePermission:`No tiene permiso para duplicar preajustes`,noEditPermission:`No tiene permiso para editar preajustes`,noDeletePermission:`No tiene permiso para eliminar preajustes`,types:{filament:`Preajuste de filamento`,printer:`Preajuste de impresora`,process:`Preajuste de proceso`},toast:{deleted:`Preajuste eliminado`,created:`Preajuste creado`,updated:`Preajuste actualizado`,duplicated:`Preajuste duplicado`,fieldAdded:`Campo "{{key}}" añadido`,exported:`Preajuste exportado`},baseLabel:`Base: {{name}}`,currentLabel:`Actual: {{name}}`,newPreset:`Nuevo preajuste`,editPreset:`Editar preajuste`,duplicatePreset:`Duplicar preajuste`,createNewPreset:`Crear nuevo preajuste`,customizeSettings:`Personalice los ajustes de su nuevo preajuste`,compareWithBase:`Comparar con el preajuste base`,compare:`Comparar`,basePreset:`Preajuste base`,selectBasePreset:`Seleccionar preajuste base...`,presetName:`Nombre del preajuste`,myCustomPreset:`Mi preajuste personalizado`,inheritsFrom:`Hereda de`,dropJsonToImport:`Suelte un JSON para importar`,tabs:{common:`Común`,allFields:`Todos los campos`},availableFields:`Campos disponibles`,searchFieldsPlaceholder:`Buscar campos...`,noMatchingFields:`No hay campos coincidentes`,allFieldsAdded:`Todos los campos añadidos`,addCustomField:`Añadir campo personalizado`,yourOverrides:`Sus anulaciones`,noOverridesYet:`Aún no hay anulaciones`,clickFieldsToAdd:`Haga clic en los campos de la izquierda para añadirlos`,saveAsTemplate:`Guardar como plantilla`,jsonTip:`Consejo: arrastre y suelte un archivo .json en cualquier parte de esta ventana para importar ajustes`},cloudView:{searchPlaceholder:`Buscar preajustes...`,templates:`Plantillas`,refresh:`Actualizar`,newPreset:`Nuevo preajuste`,clearFilters:`Borrar filtros`,compareMode:`Modo de comparación`,selectAnotherPreset:`Seleccione otro preajuste de {{type}}`,clickTwoPresets:`Haga clic en dos preajustes del mismo tipo para compararlos`,selectFirst:`1. Seleccione el primero`,selectSecond:`2. Seleccione el segundo`,compareNow:`Comparar ahora`,lastSynced:`Última sincronización:`,showingCount:`Mostrando {{showing}} de {{total}} preajustes`,noPresetsFound:`No se encontraron preajustes`,columns:{filament:`Filamento`,process:`Proceso`,printer:`Impresora`},noFilamentPresets:`No hay preajustes de filamento`,noProcessPresets:`No hay preajustes de proceso`,noPrinterPresets:`No hay preajustes de impresora`,filters:{type:`Tipo`,owner:`Propietario`,printer:`Impresora`,nozzle:`Boquilla`,filament:`Filamento`,layer:`Capa`,all:`Todos`,myPresets:`Mis preajustes`,builtIn:`Integrados`,process:`Proceso`},noTemplatesPermission:`No tiene permiso para gestionar plantillas`,noRefreshPermission:`No tiene permiso para actualizar perfiles`,noCreatePermission:`No tiene permiso para crear preajustes`},templates:{title:`Plantillas rápidas`,noTemplates:`Aún no hay plantillas`,createFirst:`Cree plantillas desde el editor de preajustes`,typeFilter:`Tipo:`,deleteTitle:`Eliminar plantilla`,deleteWarning:`Esta acción no se puede deshacer`,deleteConfirm:`¿Está seguro de que desea eliminar "{{name}}"?`,namePlaceholder:`Nombre de la plantilla`,descriptionPlaceholder:`Descripción`,settingsJson:`Ajustes (JSON)`,fieldsCount:`{{count}} campos`,shownInModals:`Mostrada en las ventanas`,hiddenInModals:`Oculta en las ventanas`,apply:`Aplicar`,toast:{deleted:`Plantilla eliminada`,updated:`Plantilla actualizada`,created:`Plantilla creada`,applied:`Plantilla aplicada`}}},support:{debugLoggingActive:`El registro de depuración está activo`,manageLogs:`Gestionar`,collectItem7:`Conectividad de la impresora y versiones de firmware`,collectItem8:`Estado de las integraciones (Spoolman, MQTT, HA)`,collectItem9:`Interfaces de red (solo subredes)`,collectItem10:`Versiones de los paquetes de Python`,collectItem11:`Comprobaciones de estado de la base de datos`,collectItem12:`Detalles del entorno de Docker`,bundleGenerating:`Generando paquete...`,bundleStepConnection:`Ejecutando comprobaciones de conectividad de impresoras`,bundleStepVirtualPrinters:`Ejecutando comprobaciones de configuración de impresoras virtuales`,bundleStepLogScan:`Analizando los registros recientes en busca de problemas conocidos`,bundleStepBuild:`Creando el archivo ZIP del paquete de soporte`},fileManager:{title:`Gestor de archivos`,subtitle:`Organice y gestione sus archivos de impresión`,uploadFiles:`Subir archivos`,newFolder:`Nueva carpeta`,folderName:`Nombre de la carpeta`,folderNamePlaceholder:`p. ej., Piezas funcionales`,renameFile:`Renombrar archivo`,renameFolder:`Renombrar carpeta`,invalidFilenameChar:`El carácter "{{char}}" no está permitido en nombres de archivos de impresión. La tarjeta SD de la impresora rechaza: < > : " / \\ | ? *`,moveFiles:`Mover {{count}} archivo(s)`,rootNoFolder:`Raíz (sin carpeta)`,current:`actual`,linkFolder:`Vincular carpeta`,linkFolderDescription:`Vincule "{{name}}" a un proyecto o archivo para un acceso rápido.`,project:`Proyecto`,archive:`Archivo`,noProjectsFound:`No se encontraron proyectos`,noArchivesFound:`No se encontraron archivos`,unlink:`Desvincular`,link:`Vincular`,dragDropFiles:`Arrastre y suelte archivos aquí`,dropFilesHere:`Suelte archivos aquí`,releaseToUpload:`Suelte para subir`,orClickToBrowse:`o haga clic para examinar`,allFileTypesSupported:`Se admiten todos los tipos de archivo. Los archivos ZIP se extraerán.`,zipFilesDetected:`Archivos ZIP detectados`,zipExtractOptions:`Los archivos ZIP se extraerán. Elija cómo gestionar la estructura de carpetas:`,preserveZipStructure:`Conservar la estructura de carpetas del ZIP`,createFolderFromZip:`Crear una carpeta a partir del nombre del archivo ZIP`,stlThumbnailGeneration:`Generación de miniaturas STL`,zipMayContainStl:`Los archivos ZIP pueden contener archivos STL. Se pueden generar miniaturas durante la extracción.`,thumbnailsCanBeGenerated:`Se pueden generar miniaturas para los archivos STL. Los modelos grandes pueden tardar más en procesarse.`,generateThumbnailsForStl:`Generar miniaturas para los archivos STL`,threemfDetected:`Archivos 3MF detectados`,threemfExtractionInfo:`El modelo de impresora, el material, el color y los ajustes de impresión se extraerán automáticamente de los archivos 3MF.`,willBeExtracted:`Se extraerá`,filesExtracted:`{{count}} archivos extraídos`,uploadComplete:`Subida completada: {{succeeded}} con éxito`,uploadFailed:`Error al subir`,zipFilesFailed:`{{count}} archivos fallidos`,uploading:`Subiendo...`,changeLink:`Cambiar enlace...`,linkTo:`Vincular a...`,linkToProjectOrArchive:`Vincular a un proyecto o archivo`,generateThumbnail:`Generar miniatura`,generateThumbnails:`Generar miniaturas`,generateThumbnailsForMissing:`Generar miniaturas para los archivos STL que no las tienen`,gridView:`Vista de cuadrícula`,listView:`Vista de lista`,lowDiskSpaceWarning:`Advertencia de poco espacio en disco`,lowDiskSpaceDetails:`Solo {{free}} libres de {{total}} en total. El umbral está establecido en {{threshold}} GB en los ajustes.`,files:`Archivos`,folders:`Carpetas`,size:`Tamaño`,free:`Libre`,allFiles:`Todos los archivos`,allExternal:`Externos`,externalIsEmpty:`Sin archivos externos`,externalEmptyDescription:`Los archivos de tus carpetas externas vinculadas aparecerán aquí.`,wrap:`Ajustar`,enableTextWrapping:`Activar el ajuste de texto`,disableTextWrapping:`Desactivar el ajuste de texto`,collapse:`Contraer`,collapseFoldersByDefault:`Contraer las carpetas de forma predeterminada`,expandFoldersByDefault:`Expandir las carpetas de forma predeterminada`,folderSort:`Ordenar carpetas`,folderSortByName:`Por nombre`,folderSortByActivity:`Por actividad reciente`,dragToResizeTooltip:`Arrastre para redimensionar, doble clic para restablecer`,searchFiles:`Buscar archivos...`,searchSubfoldersHint:`Incluyendo subcarpetas`,readme:{truncated:`Truncado`,show:`Mostrar README`,hide:`Ocultar README`,label:`README`},tags:{title:`Etiquetas`,subtitle:`Etiqueta archivos para filtros transversales — juguetes, apto para niños, solo PETG, lo que necesites.`,manage:`Etiquetas`,manageTitle:`Gestionar el catálogo de etiquetas`,add:`Nueva etiqueta`,edit:`Renombrar etiqueta`,name:`Nombre`,fileCount:`Archivos`,empty:`Aún no hay etiquetas. Crea una para empezar a etiquetar archivos.`,noMatches:`No hay etiquetas que coincidan.`,createPlaceholder:`p. ej. juguetes, apto-niños, petg`,createButton:`Crear`,nameRequired:`El nombre es obligatorio.`,searchPlaceholder:`Filtrar etiquetas...`,created:`Etiqueta creada.`,updated:`Etiqueta renombrada.`,deleted:`Etiqueta eliminada.`,saveFailed:`No se pudo guardar la etiqueta.`,deleteFailed:`No se pudo eliminar la etiqueta.`,applyFailed:`No se pudieron aplicar las etiquetas.`,applyAdd:`Añadir etiquetas`,applyRemove:`Quitar etiquetas`,applyAddSuccess:`Se añadieron {{count}} etiqueta(s) en {{files}} archivo(s).`,applyRemoveSuccess:`Se quitaron {{count}} etiqueta(s) en {{files}} archivo(s).`,actionAdd:`Añadir a los archivos seleccionados`,actionRemove:`Quitar de los archivos seleccionados`,tagAction:`Etiquetar`,bulkTitle:`Etiquetar {{count}} archivo(s) seleccionado(s)`,bulkTooltip:`Añadir o quitar etiquetas en cada archivo seleccionado.`,noPermission:`No tienes permiso para etiquetar archivos.`,filterLabel:`Filtrando por:`,clearAll:`Limpiar todo`,confirmDelete:`¿Eliminar la etiqueta "{{name}}"?`,confirmDeleteMessage:`Esto elimina la etiqueta del catálogo. Los archivos conservan sus otras etiquetas.`,confirmDeleteInUseMessage:`Esta etiqueta está en {{count}} archivo(s). Al eliminarla desaparece de todos; los archivos en sí no se tocan.`,editAria:`Editar {{name}}`,deleteAria:`Eliminar {{name}}`},allTypes:`Todos los tipos`,prints:`Impresiones`,ascending:`Ascendente`,descending:`Descendente`,showModified:`Mostrar fechas de modificación`,hideModified:`Ocultar fechas de modificación`,lastModified:`Última modificación`,lastActivity:`Última actividad`,resultsCount:`{{showing}} de {{total}} archivos`,selectAll:`Seleccionar todo`,deselectAll:`Deseleccionar todo`,selected:`{{count}} seleccionados`,adding:`Añadiendo...`,loadingFiles:`Cargando archivos...`,folderIsEmpty:`La carpeta está vacía`,noFilesYet:`Aún no hay archivos`,folderEmptyDescription:`Suba archivos o mueva archivos a esta carpeta para empezar.`,noFilesDescription:`Suba archivos para empezar a organizar sus archivos relacionados con la impresión.`,noMatchingFiles:`No hay archivos coincidentes`,noMatchingFilesDescription:`Ningún archivo coincide con su búsqueda o los criterios de filtro actuales.`,clearFilters:`Borrar filtros`,printedCount:`Impreso {{count}} veces`,uploadedBy:`Subido por`,deleteFolder:`Eliminar carpeta`,deleteFile:`Eliminar archivo`,deleteFilesCount:`Eliminar {{count}} archivos`,deleteFolderConfirm:`¿Está seguro de que desea eliminar esta carpeta? Todos los archivos que contiene también se eliminarán.`,deleteFileConfirm:`¿Está seguro de que desea eliminar este archivo?`,deleteFilesConfirm:`¿Está seguro de que desea eliminar {{count}} archivos seleccionados? Esta acción no se puede deshacer.`,deleting:`Eliminando...`,noPermissionRenameFolder:`No tiene permiso para renombrar carpetas`,noPermissionLinkFolder:`No tiene permiso para vincular carpetas`,noPermissionDeleteFolder:`No tiene permiso para eliminar carpetas`,onlyEmptyFoldersDeletable:`Solo puede eliminar carpetas vacías`,noPermissionPrint:`No tiene permiso para imprimir`,noPermissionAddToQueue:`No tiene permiso para añadir a la cola`,noPermissionSlice:`No tiene permiso para laminar archivos`,noPermissionDownload:`No tiene permiso para descargar archivos`,noPermissionRenameFile:`No tiene permiso para renombrar este archivo`,noPermissionGenerateThumbnail:`No tiene permiso para generar miniaturas`,noPermissionDeleteFile:`No tiene permiso para eliminar este archivo`,noPermissionCreateFolder:`No tiene permiso para crear carpetas`,noPermissionUpload:`No tiene permiso para subir archivos`,noPermissionMoveFiles:`No tiene permiso para mover archivos`,noPermissionDeleteFiles:`No tiene permiso para eliminar archivos`,linkExternal:`Vincular externa`,linkExternalFolder:`Vincular carpeta externa`,linkExternalFolderDescription:`Monte un directorio del host (NAS, USB, recurso compartido de red) en el gestor de archivos. Los archivos no se copian — se accede a ellos directamente desde la ruta original.`,externalFolderNamePlaceholder:`p. ej., Impresiones del NAS`,externalPath:`Ruta del host`,externalPathHelp:`Ruta absoluta al directorio en el host de Docker. Debe estar montado por enlace en el contenedor.`,readOnly:`Solo lectura`,readOnlyHelp:`impide las subidas y eliminaciones`,showHiddenFiles:`Mostrar archivos ocultos (con punto)`,externalFolder:`Carpeta externa`,scanFolder:`Escanear`,toast:{folderCreated:`Carpeta creada`,folderDeleted:`Carpeta eliminada`,fileDeleted:`Archivo eliminado`,filesDeleted:`Se eliminaron {{count}} archivos`,filesMoved:`Archivos movidos`,folderLinked:`Carpeta vinculada`,folderUnlinked:`Carpeta desvinculada`,externalFolderLinked:`Carpeta externa vinculada y escaneada`,folderScanned:`Escaneo completado: {{added}} añadidos, {{removed}} eliminados`,addedToQueue:`Se añadieron {{count}} archivo(s) a la cola`,addedToQueuePartial:`Se añadieron {{added}} archivo(s), {{failed}} fallidos`,failedToAddToQueue:`Error al añadir los archivos: {{error}}`,fileRenamed:`Archivo renombrado`,folderRenamed:`Carpeta renombrada`,thumbnailsGenerated:`Se generaron {{count}} miniatura(s)`,thumbnailsGeneratedPartial:`Se generaron {{succeeded}} miniatura(s), {{failed}} fallidas`,noStlMissingThumbnails:`No hay archivos STL sin miniaturas`,failedToGenerateThumbnails:`Error al generar las miniaturas: {{error}}`,thumbnailGenerated:`Miniatura generada`,failedToGenerateThumbnail:`Error al generar la miniatura: {{error}}`}},projects:{title:`Proyectos`,subtitle:`Organice y haga el seguimiento de sus proyectos de impresión 3D`,newProject:`Nuevo proyecto`,editProject:`Editar proyecto`,deleteProject:`Eliminar proyecto`,projectName:`Nombre del proyecto`,description:`Descripción`,noProjects:`Aún no hay proyectos`,noProjectsFiltered:`No hay proyectos {{status}}`,noProjectsFilteredHelp:`No tiene ningún proyecto {{status}}. Los proyectos aparecerán aquí cuando cambie su estado.`,createFirst:`Cree su primer proyecto para empezar a organizar impresiones relacionadas, hacer el seguimiento del progreso y gestionar sus construcciones.`,createFirstButton:`Cree su primer proyecto`,create:`Crear`,files:`Archivos`,prints:`Impresiones`,plates:`camas`,parts:`piezas`,lastModified:`Última modificación`,deleteConfirm:`¿Está seguro de que desea eliminar este proyecto? Los archivos y los elementos de la cola se desvincularán pero no se eliminarán.`,addFiles:`Añadir archivos`,removeFile:`Quitar archivo`,viewDetails:`Ver detalles`,namePlaceholder:`p. ej., Construcción de Voron 2.4`,descriptionPlaceholder:`Descripción opcional...`,urlLabel:`URL`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`La URL debe empezar por http:// o https://`,openExternalUrl:`Abrir la URL del proyecto`,coverImageLabel:`Foto de portada`,coverImageAlt:`Foto de portada del proyecto`,coverImageUpload:`Subir`,coverImageReplace:`Reemplazar`,coverImageRemove:`Quitar`,color:`Color`,targetPlates:`Camas objetivo`,targetPlatesPlaceholder:`p. ej., 25`,targetPlatesHelp:`Número de trabajos de impresión`,targetParts:`Piezas objetivo`,targetPartsPlaceholder:`p. ej., 150`,targetPartsHelp:`Total de objetos necesarios`,targetSets:`Copias por archivo`,targetSetsPlaceholder:`p. ej., 10`,targetSetsHelp:`Veces que debe imprimirse cada archivo imprimible`,tagsLabel:`Etiquetas (separadas por comas)`,tagsPlaceholder:`p. ej., voron, funcional, regalo`,dueDate:`Fecha límite`,priority:`Prioridad`,priorityLow:`Baja`,priorityNormal:`Normal`,priorityHigh:`Alta`,priorityUrgent:`Urgente`,statusActive:`Activo`,statusCompleted:`Completado`,statusArchived:`Archivado`,done:`Hecho`,completed:`completadas`,failed:`fallidas`,inQueue:`en cola`,noPrintsYet:`Aún no hay impresiones`,printJobs:`Trabajos de impresión (camas)`,partsPrinted:`Piezas impresas`,failedParts:`Piezas fallidas`,import:`Importar`,export:`Exportar`,importProject:`Importar proyecto`,exportAll:`Exportar todos los proyectos`,loading:`Cargando proyectos...`,noEditPermission:`No tiene permiso para editar proyectos`,noDeletePermission:`No tiene permiso para eliminar proyectos`,noCreatePermission:`No tiene permiso para crear proyectos`,noImportPermission:`No tiene permiso para importar proyectos`,noExportPermission:`No tiene permiso para exportar proyectos`,toast:{created:`Proyecto creado`,updated:`Proyecto actualizado`,deleted:`Proyecto eliminado`,imported:`Proyecto importado`,multipleImported:`{{count}} proyectos importados`,importFailed:`Error en la importación`,exported:`Proyectos exportados (solo metadatos)`}},projectDetail:{notFound:`Proyecto no encontrado`,backToProjects:`Volver a Proyectos`,export:`Exportar`,exportProject:`Exportar proyecto`,noExportPermission:`No tiene permiso para exportar proyectos`,noEditPermission:`No tiene permiso para editar proyectos`,partOf:`Parte de:`,priorityLabel:`Prioridad:`,noPrints:`Aún no hay impresiones en este proyecto`,status:{active:`Activo`,completed:`Completado`,archived:`Archivado`},priority:{low:`Baja`,normal:`Normal`,high:`Alta`,urgent:`Urgente`},dueDate:{overdue:`Atrasado`,today:`Vence hoy`,daysLeft:`Quedan {{count}} días`},progress:{platesProgress:`Progreso de camas`,partsProgress:`Progreso de piezas`,setsProgress:`Juegos completos`,sets:`juegos`,setsHint:`Un juego está completo cuando cada archivo imprimible alcanza este número`,printJobs:`trabajos de impresión`,parts:`piezas`,percentComplete:`{{percent}}% completado`,remaining:`{{count}} restantes`},stats:{printJobs:`Trabajos de impresión`,total:`total`,failed:`{{count}} fallidos`,partsPrinted:`{{count}} piezas impresas`,printTime:`Tiempo de impresión`,filamentUsed:`Filamento usado`},cost:{title:`Seguimiento de costes`,filamentCost:`Coste del filamento`,energy:`Energía`,totalCost:`Coste total`,total:`Total`,includesBom:`incl. lista de materiales`,budget:`Presupuesto`,remaining:`Restante`},subProjects:{title:`Subproyectos ({{count}})`},notes:{title:`Notas`,noEditPermission:`No tiene permiso para editar notas`,placeholder:`Añada notas sobre este proyecto...`,empty:`Aún no hay notas. Haga clic en Editar para añadir notas.`},files:{title:`Archivos`,linkFolders:`Vincule carpetas del gestor de archivos`,forQuickAccess:`a este proyecto para un acceso rápido.`,fileCount:`{{count}} archivo(s)`,empty:`No hay carpetas vinculadas. Vaya al gestor de archivos y vincule una carpeta a este proyecto.`,printedCount:`Impreso {{count}} veces`,progressTooltip:`{{done}} de {{target}} impresiones completadas`,noFiles:`No hay archivos en esta carpeta.`},bom:{title:`Lista de materiales`,acquired:`{{completed}}/{{total}} adquiridos`,showAll:`Mostrar todo`,hideDone:`Ocultar los hechos`,addPart:`Añadir pieza`,noAddPermission:`No tiene permiso para añadir piezas`,partNamePlaceholder:`Nombre de la pieza (p. ej., tornillos M3x8)`,partName:`Nombre de la pieza`,qty:`Cant.`,price:`Precio ({{currency}})`,sourcingUrlPlaceholder:`URL de aprovisionamiento (opcional)`,remarksPlaceholder:`Observaciones (opcional)`,deletePart:`Eliminar pieza`,deleteConfirm:`¿Está seguro de que desea eliminar "{{name}}"?`,noUpdatePermission:`No tiene permiso para actualizar piezas`,noEditPermission:`No tiene permiso para editar piezas`,noDeletePermission:`No tiene permiso para eliminar piezas`,totalCost:`Coste total:`,empty:`No hay piezas en la lista de materiales. Añada hardware, componentes electrónicos u otros componentes para hacer el seguimiento de lo que hay que aprovisionar.`},timeline:{title:`Cronología de actividad`,empty:`Aún no hay actividad.`},template:{saveAsTemplate:`Guardar como plantilla`,noCreatePermission:`No tiene permiso para crear plantillas`},queue:{title:`Cola`,viewAll:`Ver todo`,printing:`{{count}} imprimiendo`,queued:`{{count}} en cola`},prints:{title:`Impresiones ({{count}})`},toast:{projectUpdated:`Proyecto actualizado`,partAdded:`Pieza añadida`,partRemoved:`Pieza eliminada`,exportFailed:`Error en la exportación`,projectExported:`Proyecto exportado`,templateCreated:`Plantilla creada`}},system:{title:`Información del sistema`,version:`Versión`,uptime:`Tiempo de actividad`,cpuUsage:`Uso de la CPU`,memoryUsage:`Uso de la memoria`,diskUsage:`Uso del disco`,networkInfo:`Información de la red`,logs:`Registros`,debugMode:`Modo de depuración`,enableDebug:`Activar el registro de depuración`,disableDebug:`Desactivar el registro de depuración`,downloadLogs:`Descargar registros`,clearLogs:`Borrar registros`,dockerInfo:`Información de Docker`,containerName:`Nombre del contenedor`,imageName:`Nombre de la imagen`,platform:`Plataforma`,architecture:`Arquitectura`},sponsors:{sectionTitle:`Independiente y financiado por la comunidad`,tagline:`Bambuddy es gratuito y seguirá siéndolo porque hay quien decide apoyarlo. Sin VC, sin dependencia de la nube.`,viewSupporters:`Ver patrocinadores`,toastPrints:`Has completado {{count}} impresiones con Bambuddy. Bambuddy sigue siendo gratuito gracias a quienes lo apoyan.`,toastCost:`Has rastreado {{total}} de filamento con Bambuddy. Mira quién mantiene el proyecto independiente.`,toastArchives:`{{count}} impresiones archivadas con Bambuddy. Mira quién lo mantiene independiente.`,toastAnniversary:`¡Un año con Bambuddy! Mira quién mantiene el proyecto independiente.`,toastVersionUpdate:`Actualizado a v{{version}}. Bambuddy sigue siendo gratuito gracias a quienes lo apoyan.`,toastBusiness:`¿Usas Bambuddy en {{count}} impresoras? Existe un plan de soporte para equipos: correcciones prioritarias, facturación y contacto directo con el responsable del proyecto.`,businessCta:`Bambuddy para empresas`,businessTitle:`Bambuddy para empresas`,businessTagline:`Estás gestionando {{count}} impresoras. Hay soporte prioritario, licencias comerciales y facturación disponibles para equipos y granjas de impresión.`},library:{title:`Biblioteca de filamentos`,addFilament:`Añadir filamento`,editFilament:`Editar filamento`,deleteFilament:`Eliminar filamento`,vendor:`Proveedor`,material:`Material`,color:`Color`,kFactor:`Factor K`,temperature:`Temperatura`,noFilaments:`No hay filamentos en la biblioteca`,deleteConfirm:`¿Está seguro de que desea eliminar este filamento?`,importFromPrinter:`Importar desde la impresora`,exportToFile:`Exportar a un archivo`,runWithPipeline:{actionLabel:`Ejecutar con pipeline`,noPermission:`No tienes permiso para ejecutar pipelines`,modalTitle:`Ejecutar con pipeline`,confirmTitle:`Confirmar ejecución`,confirmIntro:`El pre-vuelo encontró problemas con esta ejecución`,sourceHint:`Origen`,pipelineHint:`Pipeline`,targetHint:`Destino`,pipelineListAria:`Pipelines disponibles`,runAnyway:`Ejecutar de todos modos`,loading:`Cargando…`,empty:`Aún no hay pipelines guardadas. Abre el diálogo Cortar y haz clic en "Guardar como pipeline" para crear una.`,noTarget:`Sin impresora de destino`,noTargetMessage:`Esta pipeline no tiene impresora de destino. Ábrela en Ajustes para elegir una.`,copies:`Copias`,copiesHint:`máx {{n}}`,classTarget:`Cualquier {{model}}`,toast:{started:`Ejecución de pipeline iniciada`,failed:`No se pudo iniciar la ejecución`},issue:{printerNotSet:`Sin impresora de destino en esta pipeline.`,printerNotFound:`La impresora de destino ya no existe.`,printerDisabled:`La impresora de destino está deshabilitada.`,printerOffline:`La impresora de destino está desconectada.`,filamentType:`Slot de filamento {{slot}}: esperado {{expected}}, AMS tiene {{actual}}`,filamentColor:`Slot de filamento {{slot}}: color distinto (esperado {{expected}}, AMS tiene {{actual}})`,amsSlotMissing:`Slot AMS {{slot}} no disponible en esta impresora`,filamentUnverified:`Slot de filamento {{slot}} proviene de un preset de nube / estándar y no se pudo verificar estáticamente.`,noClassMatches:`Ninguna impresora en esta instalación coincide con la clase de modelo objetivo de la pipeline ({{expected}}).`,classNotSet:`El destino de la pipeline es una clase de impresora pero no se eligió ningún modelo.`}}},slice:{title:`Laminar modelo`,action:`Laminar`,actionAll:`Laminar las {{count}} bandejas`,actionAllTitle:`Laminar todas las bandejas en una salida única de varias bandejas (un solo archivo). La selección de filamento cubre cada hueco que defina el proyecto.`,allPlatesToggle:`Laminar las {{count}} bandejas`,slicing:`Laminando…`,printer:`Perfil de impresora`,process:`Perfil de proceso`,filament:`Perfil de filamento`,filamentSlot:`Filamento {{index}} ({{type}})`,selectPreset:`— Seleccione un preajuste —`,loadingPresets:`Cargando preajustes…`,analyzingPlateFilaments:`Analizando los filamentos de la cama…`,analyzingPlateFilamentsHint:`Ejecutando un laminado de vista previa para descubrir qué ranuras del AMS usa esta cama. Después se almacena en caché — volver a abrir es instantáneo.`,previewToast:`Analizando {{name}} — {{elapsed}}`,previewWithProgress:`Analizando {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,notUsedByPlate:`— no usado por esta cama`,noPresetsForSlot:`No hay preajustes disponibles`,otherPrinters:`Otras impresoras`,presetsLoadFailed:`Error al cargar los preajustes. Abra Ajustes → Perfiles para importarlos primero.`,refreshPresets:`Actualizar`,refreshPresetsTitle:`Actualizar preajustes — recuperar los listados más recientes de la nube y los paquetes (úselo tras eliminar un preajuste en Bambu Studio o Bambu Handy)`,allPresetsRequired:`Deben seleccionarse todos los preajustes`,useEmbedded:`Usar la configuración incorporada del archivo`,useEmbeddedHint:`Laminar tal como lo configuró el diseñador (perímetros, relleno, filamento) en lugar de los perfiles de arriba. Disponible porque tu impresora coincide con la del archivo.`,designSettings:`Mantener los ajustes del diseñador`,designSettingsHint:`Este archivo cambia {{count}} ajuste(s) de impresión respecto al perfil estándar.`,designSettingsSelected:`{{selected}} de {{total}} seleccionados`,designSettingsPrinterCoupled:`específico de la impresora`,designSettingsPrinterCoupledHint:`Ajustado para la impresora para la que se diseñó el archivo: puede ser incorrecto o quedar fuera de rango en la tuya.`,enqueuing:`Enviando el trabajo de laminado…`,queued:`En cola…`,failed:`Error al laminar. Consulte los registros del contenedor auxiliar del laminador.`,startedToast:`Laminando {{name}} en segundo plano…`,queuedToast:`En cola: {{name}} — {{elapsed}}`,runningToast:`Laminando {{name}} — {{elapsed}}`,runningWithProgress:`{{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,runningWithProgressMultiPlate:`Bandeja {{plateIndex}} de {{plateCount}} • {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,completedToast:`{{name}} laminado`,failedTitle:`Error al laminar`,failedToast:`Error al laminar {{name}}: {{detail}}`,tier:{local:`Importado`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`Estándar`},cloud:{notAuthenticated:`Inicie sesión en Bambu Cloud (Ajustes → Perfiles → Bambu Cloud) para ver sus preajustes de la nube.`,expired:`La sesión de Bambu Cloud ha caducado — inicie sesión de nuevo para actualizar sus preajustes de la nube.`,unreachable:`Bambu Cloud no es accesible en este momento. Los preajustes locales y estándar siguen funcionando.`},orcaCloud:{notAuthenticated:`Inicia sesión en Orca Cloud (Perfiles → Orca Cloud) para ver tus preajustes Orca.`,expired:`Sesión de Orca Cloud caducada — inicia sesión de nuevo para actualizar tus preajustes Orca.`,unreachable:`Orca Cloud no está disponible ahora. Otros preajustes siguen funcionando.`},bedType:{label:`Cama de impresión`,auto:`Automático (usar el preajuste de proceso)`,coolPlate:`Cool Plate`,coolPlateSuperTack:`Cool Plate SuperTack`,engineering:`Engineering Plate`,highTemp:`High Temp Plate`,texturedPEI:`Textured PEI Plate`,smoothPEI:`Smooth PEI Plate`},pipelines:{label:`Pipeline`,applyAria:`Aplicar pipeline`,applyPrompt:`Aplicar pipeline…`,empty:`Sin pipelines guardadas`,saveButton:`Guardar como pipeline`,saveTitle:`Guardar la selección actual de los cuatro ajustes como pipeline reutilizable`,namePlaceholder:`Nombre de la pipeline`,nameAria:`Nuevo nombre de pipeline`,toast:{applied:`"{{name}}" aplicada`,saved:`Pipeline guardada`,saveFailed:`Error al guardar`}}},spoolman:{title:`Integración con Spoolman`,enabled:`Spoolman activado`,url:`URL de Spoolman`,connected:`Conectado`,disconnected:`No conectado`,testConnection:`Probar conexión`,sync:`Sincronizar`,syncing:`Sincronizando...`,lastSync:`Última sincronización`,linkToSpoolman:`Vincular a Spoolman`,openInSpoolman:`Abrir en Spoolman`,unlinkSpool:`Desvincular bobina`,unlinkConfirmTitle:`¿Desasignar la bobina?`,unlinkConfirmMessage:`Esto quitará la bobina de esta ranura. Los datos de la bobina en sí permanecerán sin cambios.`,selectSpool:`Seleccionar bobina`,noUnlinkedSpools:`No hay bobinas sin asignar disponibles`,linkSuccess:`Bobina asignada correctamente`,linkFailed:`Error al asignar la bobina`,unlinkSuccess:`Bobina desasignada correctamente`,unlinkFailed:`Error al desasignar la bobina`,linkedSpool:`Bobina asignada`,spoolId:`ID de la bobina`,fillSourceLabel:`(Spoolman)`,weight:`Peso`,remaining:`Restante`,disableWeightSync:`Desactivar la sincronización del peso estimado del AMS`,disableWeightSyncDesc:`No actualizar la capacidad restante a partir de las estimaciones del AMS. Use esto si prefiere el seguimiento del uso de Spoolman a las estimaciones del AMS basadas en porcentajes. Las bobinas nuevas seguirán usando la estimación del AMS como su peso inicial.`,reportPartialUsage:`Informar del uso parcial en las impresiones fallidas`,reportPartialUsageDesc:`Cuando una impresión falla o se cancela, informar del filamento estimado usado hasta ese punto según el progreso de las capas.`},locations:{title:`Ubicaciones de almacenamiento`,subtitle:`Gestione estantes, cajones y otros lugares físicos para sus bobinas`,add:`Añadir ubicación`,addShort:`Añadir`,edit:`Editar ubicación`,name:`Nombre`,spools:`Bobinas`,empty:`Aún no hay ubicaciones de almacenamiento. Cree su primer estante o cajón.`,manage:`Ubicaciones`,createPlaceholder:`p. ej. Estante A, Cajón 1`,nameRequired:`El nombre de la ubicación es obligatorio`,created:`Ubicación creada`,updated:`Ubicación actualizada`,deleted:`Ubicación eliminada`,saveFailed:`No se pudo guardar la ubicación`,deleteFailed:`No se pudo eliminar la ubicación`,deleteBlocked:`Retire todas las bobinas de esta ubicación antes de eliminarla`,confirmDelete:`¿Eliminar «{{name}}»?`,confirmDeleteMessage:`Esta ubicación se eliminará del catálogo. Mueva las bobinas primero.`},inventory:{title:`Inventario de bobinas`,subtitle:`Gestione sus bobinas`,addToInventory:`Añadir al inventario`,addToInventoryPending:`Añadiendo...`,addToInventorySuccess:`Bobina añadida al inventario`,addToInventoryFailed:`No se pudo añadir la bobina al inventario`,unknownSpoolTitle:`Nuevo filamento detectado`,unknownSpoolMessage:`Se ha detectado una bobina con una etiqueta RFID desconocida en {{location}}. ¿Añadirla a su inventario ahora?`,unknownSpoolSlot:`Ranura`,bulk:{selectAllVisible:`Seleccionar todo lo visible`,selectRow:`Seleccionar fila`,selectGroup:`Seleccionar grupo`,selectionCount:`{{count}} seleccionadas`,edit:`Editar`,printLabels:`Imprimir etiquetas`,resetUsage:`Restablecer uso`,restore:`Restaurar`,archive:`Archivar`,delete:`Eliminar`,clearSelection:`Limpiar selección`,editTitle:`Edición masiva de bobinas`,editSubtitle:`Se aplica a {{count}} bobinas seleccionadas. Solo se actualizan los campos marcados.`,editHint:`Escriba en un campo para marcarlo para actualización — solo se envían las filas marcadas. Los campos vacíos no cambian las bobinas (vaciar campos solo se hace por bobina).`,useCustom:`Usar "{{value}}"`,toggleField:`Activar la actualización de este campo`,changeCount:`Se actualizarán {{count}} campos.`,applyPending:`Aplicando...`,applyButton:`Aplicar a {{count}} bobinas`,deleteTitle:`Eliminar bobinas seleccionadas`,archiveTitle:`Archivar bobinas seleccionadas`,restoreTitle:`Restaurar bobinas seleccionadas`,resetUsageTitle:`Restablecer uso de bobinas seleccionadas`,deleteMessage:`¿Eliminar permanentemente {{count}} bobinas? Esto no se puede deshacer.`,archiveMessage:`¿Archivar {{count}} bobinas? Se pueden restaurar más tarde.`,restoreMessage:`¿Restaurar {{count}} bobinas archivadas?`,resetUsageMessage:`¿Restablecer el contador "Total consumido" en {{count}} bobinas? El peso restante se conserva.`,updateSuccess:`{{count}} bobinas actualizadas`,updateFailed:`Actualización masiva fallida`,updatePartial:`{{ok}} bobinas actualizadas, {{failed}} fallidas`,updateAllFailed:`Las {{count}} actualizaciones fallaron — la selección se mantiene para reintentar`,deleteSuccess:`{{count}} bobinas eliminadas`,deleteFailed:`Eliminación masiva fallida`,deletePartial:`{{ok}} bobinas eliminadas, {{failed}} fallidas`,deleteAllFailed:`Las {{count}} eliminaciones fallaron — la selección se mantiene para reintentar`,archiveSuccess:`{{count}} bobinas archivadas`,archiveFailed:`Archivado masivo fallido`,archivePartial:`{{ok}} bobinas archivadas, {{failed}} fallidas`,archiveAllFailed:`Los {{count}} archivados fallaron — la selección se mantiene para reintentar`,restoreSuccess:`{{count}} bobinas restauradas`,restoreFailed:`Restauración masiva fallida`,restorePartial:`{{ok}} bobinas restauradas, {{failed}} fallidas`,restoreAllFailed:`Las {{count}} restauraciones fallaron — la selección se mantiene para reintentar`,invalidHex:`Introduzca 6 caracteres hex (RRGGBB) u 8 (RRGGBBAA). De lo contrario el campo no se aplicará.`},spoolmanMixedContentTitle:`Spoolman no se puede cargar por HTTPS — contenido mixto bloqueado por su navegador`,spoolmanMixedContentBody:`Bambuddy se sirve por HTTPS (mediante su proxy inverso), pero su URL de Spoolman sigue siendo HTTP sin cifrar. Los navegadores bloquean el contenido mixto por seguridad, por lo que la interfaz integrada de Spoolman no se puede mostrar. Spoolman debe ser accesible por HTTPS para que esto funcione.`,spoolmanMixedContentFixReverseProxy:`Ponga Spoolman tras el mismo proxy inverso que Bambuddy (Traefik / Nginx / Caddy) con HTTPS y luego actualice la URL de Spoolman en Ajustes a la nueva dirección HTTPS.`,spoolmanMixedContentFixOpenNewTab:`Como solución alternativa, abra Spoolman en una pestaña nueva del navegador por HTTP — las reglas de contenido mixto solo se aplican a los marcos integrados, por lo que una pestaña independiente sí funciona.`,spoolmanOpenInNewTab:`Abrir Spoolman en una pestaña nueva`,labels:{title:`Imprimir etiquetas de bobinas`,selectedCount:`{{count}} seleccionadas`,pickSpools:`Elija para qué bobinas imprimir etiquetas:`,monochrome:`Monocromo (impresora en blanco y negro)`,monochromeHint:`Elimina la muestra de color y amplía el texto`,searchPlaceholder:`Buscar nombre, marca o n.º de ID`,filterByMaterial:`Material:`,allMaterials:`Todos`,selectVisible:`Seleccionar todas las visibles ({{count}})`,deselectVisible:`Deseleccionar las visibles`,clearAll:`Borrar todo`,noSpoolsToShow:`No hay bobinas que mostrar. Ajuste su filtro e inténtelo de nuevo.`,noMatches:`Ninguna bobina coincide con la búsqueda o el filtro actuales.`,printOne:`Imprimir etiqueta para esta bobina`,printLabels:`Imprimir etiquetas…`,bulkTitle:`Elija las bobinas para las que imprimir etiquetas de las {{count}} mostradas actualmente`,noSpoolsTitle:`No hay bobinas que etiquetar`,error:`No se pudieron generar las etiquetas: {{msg}}`,sortBy:{label:`Ordenar:`,id:`Por ID`,color:`Por color`},templates:{amsHolderSmall:{label:`Soporte de AMS — pequeño (74 × 33 mm)`,hint:`Una etiqueta por página; coincide con la etiqueta imprimible del modelo 752566 de MakerWorld (AMS Filament Label Holder).`},amsHolderLarge:{label:`Soporte de AMS — grande (75 × 55 mm)`,hint:`Una etiqueta por página; encaja en la variante con inserto de cartulina del AMS Filament Label Holder. Lo bastante amplia para muestra de color, marca, material, ID y código QR.`},box40x30:{label:`Etiqueta de caja (40 × 30 mm)`,hint:`Una etiqueta por página; tamaño de rollo DK/Brother habitual, adecuado para etiquetas de bolsas de filamento y cajas de almacenamiento.`},box:{label:`Box label (62 × 29 mm)`,hint:`Una etiqueta por página; dimensionada para las etiquetas pequeñas de Brother PT/QL y Dymo.`},averyL7160:{label:`Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)`,hint:`Hojas de tamaño UE; 21 etiquetas por página A4.`},avery5160:{label:`Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)`,hint:`Hojas de tamaño EE. UU.; 30 etiquetas por página Letter.`}}},csv:{importButton:`Importar CSV`,exportButton:`Exportar CSV`,modalTitle:`Importar bobinas desde CSV`,selectFile:`Elige un archivo CSV o arrástralo aquí`,dragHint:`Encabezado: material (obligatorio), brand, subtype, color_name, rgba, …`,parsing:`Leyendo archivo…`,previewError:`No se pudo leer el archivo CSV`,validCount:`{{count}} válidas`,errorCount:`{{count}} con error`,skippedCount:`{{count}} omitidas`,colRow:`Fila`,colStatus:`Estado`,colColor:`Color`,colorResolved:`Color rellenado desde el catálogo`,colorCrossMaterial:`Color tomado de un material diferente — sin coincidencia exacta en el catálogo`,duplicateExisting:`Ya existe una bobina con este material, marca y color — se importará igualmente como una bobina nueva`,spoolmanHint:`En modo Spoolman, usa la importación/exportación CSV integrada de Spoolman.`,importValidRows:`Importar {{count}} filas válidas`,noValidRows:`Sin filas válidas`,importing:`Importando…`,importSuccess:`{{count}} bobinas importadas`,importError:`Error al importar`,exportError:`Error al exportar`},addSpool:`Añadir bobina`,editSpool:`Editar bobina`,copySpool:`Copiar bobina`,material:`Material`,selectMaterial:`Seleccionar material...`,subtype:`Subtipo`,brand:`Marca`,searchBrand:`Buscar marca...`,useCustomBrand:`Usar "{{brand}}"`,useCustomMaterial:`Usar material personalizado: {{material}}`,suggestedOptions:`Sugeridos`,allOptions:`Todos`,colorName:`Nombre del color`,colorNamePlaceholder:`Blanco jade, Rojo fuego...`,color:`Color`,hexColor:`Color hexadecimal`,pickColor:`Elegir color personalizado`,labelWeight:`Peso de la etiqueta`,coreWeight:`Peso de la bobina vacía`,searchSpoolWeight:`Buscar peso de la bobina...`,weightUsed:`Usado`,currentWeight:`Peso restante`,measuredWeight:`Peso medido`,spoolName:`Bobina`,costPerKg:`Coste por kg`,storageLocation:`Ubicación de almacenamiento`,storageLocationPlaceholder:`p. ej. Estante A, Cajón 1`,openInInventory:`Abrir en el inventario`,measuredWeightError:`El peso medido debe estar entre {{min}} g y {{max}} g.`,slicerFilament:`Filamento del laminador`,slicerFilamentName:`Nombre del preajuste del laminador`,slicerPreset:`Preajuste del laminador`,searchPresets:`Buscar preajustes de filamento...`,selectedPreset:`Seleccionado`,noPresetsFound:`No se encontraron preajustes`,tempOverrides:`Anulaciones de temperatura`,note:`Nota`,notePlaceholder:`Cualquier nota adicional sobre esta bobina...`,category:`Categoría`,categoryPlaceholder:`p. ej. Producción, Prototipo, Cliente A`,categoryNone:`Sin categoría`,storageLocationNone:`Sin ubicación establecida`,lowStockThresholdOverride:`Umbral de existencias bajas (esta bobina)`,lowStockThresholdOverrideHelp:`Déjelo en blanco para usar el umbral global ({{global}}%).`,clearRfid:`Borrar etiqueta RFID`,rfidCleared:`Etiqueta RFID borrada`,archive:`Archivar`,restore:`Restaurar`,noSpools:`Aún no hay bobinas. Añada su primera bobina para empezar.`,noAvailableSpools:`No hay bobinas disponibles. Añada una bobina a su inventario o desasigne una de otra ranura primero.`,kProfiles:`Perfiles K`,addKProfile:`Añadir perfil K`,assignSpool:`Asignar bobina`,unassignSpool:`Desasignar`,assignSuccess:`Bobina asignada y ranura del AMS configurada`,assignPendingInsert:`Asignada. La ranura se configurará cuando inserte la bobina.`,assignFailed:`Error al asignar la bobina`,selectSpool:`Seleccione una bobina para asignar a esta ranura`,assigned:`Asignada`,assigning:`Asignando...`,searchSpools:`Buscar bobinas...`,showAllSpools:`Mostrar todas las bobinas`,spoolmanSpools:`Bobinas de Spoolman`,allMaterials:`Todos los materiales`,filterByBrand:`Filtrar por marca...`,showArchived:`Mostrar archivadas`,quickAdd:`Añadir rápido (existencias)`,quantity:`Cantidad`,stock:`Existencias`,configured:`Configurada`,spoolsCreated:`{{count}} bobinas creadas`,spoolsPartiallyCreated:`{{created}} de {{total}} bobinas creadas (algunas fallaron)`,spoolCreated:`Bobina creada`,spoolUpdated:`Bobina actualizada`,spoolDeleted:`Bobina eliminada`,deepLinkSpoolNotFound:`Bobina no encontrada`,deepLinkFetchFailed:`No se pudo cargar la bobina — inténtelo de nuevo`,spoolArchived:`Bobina archivada`,spoolRestored:`Bobina restaurada`,kProfileSaveFailed:`No se pudieron guardar los ajustes del perfil K`,syncWeightSpoolNotFound:`Bobina no encontrada — es posible que se haya eliminado`,syncWeightSpoolmanUnreachable:`Spoolman no es accesible — inténtelo más tarde`,syncWeightFailed:`Error al sincronizar el peso`,spoolmanUnreachable:`Spoolman no es accesible — inténtelo de nuevo más tarde`,deleteSpoolNotFound:`Bobina no encontrada — es posible que ya se haya eliminado`,deleteFailed:`Error al eliminar la bobina`,archiveSpoolNotFound:`Bobina no encontrada — es posible que ya se haya eliminado`,archiveFailed:`Error al archivar la bobina`,restoreSpoolNotFound:`Bobina no encontrada — es posible que ya se haya eliminado`,restoreFailed:`Error al restaurar la bobina`,saveFailed:`Error al guardar los cambios`,tagClearFailed:`Error al borrar la etiqueta`,deleteConfirm:`¿Está seguro de que desea eliminar esta bobina? Esto no se puede deshacer.`,archiveConfirm:`¿Está seguro de que desea archivar esta bobina?`,advancedSettings:`Ajustes avanzados`,filamentInfoTab:`Información del filamento`,paProfileTab:`Perfil PA`,filamentInfo:`Filamento`,additional:`Adicional`,loadingPresets:`Cargando preajustes de la nube...`,cloudConnected:`Nube conectada`,cloudNotConnected:`Nube no conectada (usando los valores predeterminados)`,recentColors:`Recientes`,searchColors:`Buscar colores...`,searchResults:`Resultados de búsqueda`,allColors:`Todos los colores`,commonColors:`Colores comunes`,showLess:`Mostrar menos`,showAll:`Mostrar todos`,noColorsFound:`Ningún color coincide con su búsqueda`,noResults:`No se encontraron coincidencias`,extraColorsLabel:`Colores adicionales`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`Pegue de 2 a 8 paradas hexadecimales, separadas por comas. Se muestra como un degradado.`,extraColorsInvalid:`Se ignoró el hexadecimal no válido: {{tokens}}`,colorEffectLabel:`Efecto`,colorEffect:{none:`Ninguno`,sparkle:`Destellos`,wood:`Madera`,marble:`Mármol`,glow:`Brillante en la oscuridad`,matte:`Mate`,silk:`Seda`,galaxy:`Galaxia`,rainbow:`Arcoíris`,metal:`Metal`,translucent:`Translúcido`,gradient:`Degradado`,dualColor:`Bicolor`,triColor:`Tricolor`,multicolor:`Multicolor`},selectMaterialFirst:`Seleccione primero un material en la pestaña de información del filamento.`,noPrintersConfigured:`No hay impresoras configuradas. Añada impresoras para usar perfiles PA.`,matchingFilter:`Coincidentes`,anyBrand:`Cualquier marca`,anyVariant:`Cualquier variante`,autoSelect:`Selección automática`,matches:`coincidencias`,match:`coincidencia`,noMatches:`Sin coincidencias`,connected:`Conectada`,offline:`Desconectada`,printerOffline:`La impresora está desconectada. Conéctela para ver los perfiles de calibración.`,noKProfilesMatch:`Ningún perfil K coincide con el filamento seleccionado.`,leftNozzle:`Boquilla izquierda`,rightNozzle:`Boquilla derecha`,profilesSelected:`perfil(es) de calibración seleccionado(s)`,totalInventory:`Inventario total`,totalConsumed:`Total consumido`,byMaterial:`Por material`,inPrinter:`En la impresora`,lowStock:`Existencias bajas`,sinceTracking:`Desde que comenzó el seguimiento`,resetConsumedCounter:`Restablecer contador`,resetConsumedCounterTooltip:`Poner a cero el contador de gramos consumidos de esta bobina. El peso restante no cambia.`,resetConsumedCounterConfirm:`¿Restablecer a 0 el contador de gramos consumidos de esta bobina? Las impresiones futuras volverán a contar desde cero. La bobina en sí, su cálculo de peso restante y sus ajustes no cambian.`,resetAllConsumedCounters:`Restablecer todos los contadores`,resetAllConsumedCountersTooltip:`Poner a cero el contador de gramos consumidos de todas las bobinas. Los pesos restantes no cambian.`,resetAllConsumedCountersConfirm:`¿Restablecer a 0 el contador de gramos consumidos de las {{count}} bobinas (incluidas las archivadas)? Esto borra la estadística «Total consumido» para que las impresiones futuras cuenten desde cero. Las bobinas y los pesos restantes no cambian.`,consumedCounterReset:`Contador restablecido`,allConsumedCountersReset:`Contador restablecido para {{count}} bobina(s)`,resetConsumedCounterFailed:`Error al restablecer el contador`,loadedInAms:`Cargada en AMS/ext.`,remaining:`Restante`,weightCheck:`Comprobación de peso`,lastWeighed:`Pesada por última vez`,neverWeighed:`Nunca pesada`,search:`Buscar bobinas...`,showing:`Mostrando`,to:`a`,of:`de`,show:`Mostrar`,spools:`bobinas`,spool:`bobina`,page:`Página`,noSpoolsMatch:`No se encontraron resultados`,noSpoolsMatchDesc:`Pruebe a ajustar su búsqueda o sus filtros para encontrar lo que busca.`,active:`Activas`,archived:`Archivadas`,all:`Todas`,used:`Usada`,new:`Nueva`,clearFilters:`Borrar filtros`,table:`Tabla`,cards:`Tarjetas`,net:`Neto`,groupSimilar:`Agrupar`,groupedSpools:`{{count}} bobinas idénticas`,groupedRows:`filas`,columns:`Columnas`,configureColumns:`Configurar columnas`,configureColumnsDesc:`Arrastre para reordenar las columnas o use las flechas. Conmute la visibilidad con el icono del ojo.`,visible:`visibles`,reset:`Restablecer`,cancel:`Cancelar`,applyChanges:`Aplicar cambios`,moveUp:`Subir`,moveDown:`Bajar`,hideColumn:`Ocultar columna`,showColumn:`Mostrar columna`,linkToSpool:`Vincular a bobina`,tagLinked:`Etiqueta vinculada a la bobina`,tagLinkFailed:`Error al vincular la etiqueta`,tagAlreadyLinked:`La etiqueta ya está vinculada a otra bobina`,unknownTag:`Se detectó una etiqueta RFID desconocida`,usageHistory:`Historial de uso`,noUsageHistory:`Aún no se ha registrado ningún uso`,printName:`Nombre de la impresión`,weightConsumed:`Peso consumido`,clearHistory:`Borrar`,historyCleared:`Historial de uso borrado`,fillSourceLabel:`(Inv.)`,lowStockThresholdError:`El umbral debe estar entre 0,1 y 99,9`,assignMismatchTitle:`Discrepancia de material`,assignMismatchMessage:`El material de la bobina seleccionada "{{spoolMaterial}}" no coincide con el material de la bandeja "{{trayMaterial}}" de {{location}}. ¿Asignar de todos modos?`,assignMismatchConfirm:`Asignar de todos modos`,assignPartialMismatchMessage:`El material de la bobina "{{spoolMaterial}}" es similar pero no coincide exactamente con "{{trayMaterial}}" en {{location}}. ¿Desea continuar?`,assignProfileMismatchMessage:`El perfil de la bobina "{{spoolProfile}}" no coincide con el perfil de la bandeja "{{trayProfile}}" en {{location}}. ¿Desea continuar?`,assignReconfigureNote:`La ranura del AMS se reconfigurará para usar el perfil de la bobina.`,spoolmanFilamentCatalog:`Catálogo de filamentos de Spoolman`,pickFromSpoolmanCatalog:`Elegir del catálogo de Spoolman…`,spoolmanFilamentSelected:`Filamento seleccionado del catálogo de Spoolman`,spoolmanFilamentUnlinked:`Vínculo del catálogo de filamentos borrado`,noSpoolmanFilaments:`No se encontraron filamentos en el catálogo de Spoolman`,spoolmanFilamentColorSwatch:`Color del filamento`,spoolWeightManagedBySpoolman:`El peso de la bobina vacía se gestiona por tipo de filamento en Spoolman`,spoolmanCatalogLoadFailed:`Error al cargar el catálogo de filamentos de Spoolman`},timelapse:{title:`Time-lapse`,create:`Crear time-lapse`,download:`Descargar`,delete:`Eliminar`,preview:`Vista previa`,frameRate:`Velocidad de fotogramas`,quality:`Calidad`,processing:`Procesando...`,noTimelapses:`No hay time-lapses disponibles`},ams:{title:`AMS`,slot:`Ranura`,empty:`Vacía`,emptySlot:`Ranura vacía`,slotEmpty:`Vacía`,slotUnconfigured:`?`,emptySlotReset:`No hay filamento asignado`,unknown:`Desconocido`,humidity:`Humedad`,temperature:`Temperatura`,filamentType:`Tipo de filamento`,filamentColor:`Color`,remaining:`Restante`,history:`Historial del AMS`,noHistory:`No hay historial disponible`,configureSlot:`Configurar ranura`,externalSpool:`Bobina externa`,profile:`Perfil`,kFactor:`Factor K`,fill:`Rellenar`,configure:`Configurar`,used:`usado`,remainingUnit:`restante`},printModal:{selectPrinter:`Seleccionar impresora`,selectPlate:`Seleccionar cama`,filamentMapping:`Mapeo de filamentos`,plateN:`Cama {{n}}`,plateFilamentsUnreadable:`No se han podido leer los filamentos de una cama seleccionada, por lo que no se puede asignar. Deselecciónala para encolar las demás.`,totalCost:`Coste total:`,slotRemainingShort:` - quedan {{grams}} g`,printSettings:`Ajustes de impresión`,bedLeveling:`Nivelación de la cama`,flowCalibration:`Calibración del flujo`,vibrationCalibration:`Calibración de vibración`,layerInspection:`Inspección de la primera capa`,timelapse:`Time-lapse`,cancel:`Cancelar`,noPrintersAvailable:`No hay impresoras disponibles`,printerBusy:`La impresora está ocupada`,printerOffline:`La impresora está desconectada`,sameTypeDifferentColor:`Mismo tipo, color distinto`,filamentTypeNotLoaded:`Tipo de filamento no cargado`,whenToPrint:`Cuándo imprimir`,asap:`Lo antes posible`,queue:`Cola`,schedule:`Programar`,dateTime:`Fecha y hora`,invalidDateTime:`Introduzca una fecha y hora válidas`,openCalendar:`Abrir calendario`,requireManualStart:`Requerir inicio manual`,requirePreviousSuccess:`Iniciar solo si la impresión anterior se completó correctamente`,autoOffAfter:`Apagar la impresora al terminar`,helpAsap:`La impresión se añadirá al principio de la cola y comenzará en cuanto haya una impresora elegible inactiva.`,helpSchedule:`La impresión comenzará a la hora programada si la impresora está inactiva. Si está ocupada, esperará hasta que esté disponible.`,helpQueue:`La impresión se añadirá al final de la cola.`,leftNozzle:`I`,rightNozzle:`D`,leftNozzleTooltip:`Boquilla izquierda`,rightNozzleTooltip:`Boquilla derecha`,filamentOverride:`Anulación de filamento`,filamentOverrideHint:`Anule opcionalmente los filamentos para la asignación basada en el modelo. El planificador comparará con los filamentos que ha seleccionado en lugar de los valores originales del 3MF.`,originalFilament:`Original`,overrideWith:`Anular con`,resetToOriginal:`Restablecer al original`,insufficientFilamentTitle:`No hay suficiente filamento`,waitingForAmsStatus:`Esperando el estado del AMS de {{printer}}…`,insufficientFilamentMessage:`Algunas bobinas asignadas tienen menos filamento restante del que necesita esta impresión:`,insufficientFilamentLine:`{{printer}} - {{slot}}: necesita {{required}} g, restante {{remaining}} g`,printAnyway:`Imprimir de todos modos`,forceColorMatch:`Forzar la coincidencia de color`,staggerPrinterStarts:`Escalonar los inicios de las impresoras`,staggerGroupSize:`Tamaño de grupo`,staggerInterval:`Intervalo (min)`,staggerPreview:`{{printers}} impresoras → {{groups}} grupos de {{size}}, iniciando cada {{interval}} min`,staggerLastGroup:`último grupo: {{count}}`,staggerTotal:`total: {{minutes}} min`,staggerToPrinters:`Escalonar en {{count}} impresoras`,gcodeInjection:`Inyectar G-code de impresión automática`},backup:{includesEncryptionKey:`Las copias de seguridad locales incluyen el archivo de clave de cifrado de MFA (DATA_DIR/.mfa_encryption_key) para que un ZIP de copia de seguridad sea autónomo. Trate el ZIP como información sensible — cualquiera que tenga el archivo puede descifrar los secretos de cliente de OIDC y los secretos TOTP que contiene.`,title:`Copia de seguridad y restauración`,createBackup:`Crear copia de seguridad`,restoreBackup:`Restaurar copia de seguridad`,restoreDescription:`Reemplazar todos los datos desde un archivo de copia de seguridad`,downloadBackup:`Descargar copia de seguridad`,uploadBackup:`Subir copia de seguridad`,lastBackup:`Última copia de seguridad`,autoBackup:`Copia de seguridad automática`,backupNow:`Hacer copia de seguridad ahora`,restoreWarning:`Advertencia: restaurar una copia de seguridad sobrescribirá todos los datos actuales.`,includeArchives:`Incluir archivos`,includeSettings:`Incluir ajustes`,includeProfiles:`Incluir perfiles`,backupSuccess:`Copia de seguridad creada correctamente`,restoreSuccess:`Copia de seguridad restaurada correctamente`,backupFailed:`Error en la copia de seguridad`,restoreFailed:`Error en la restauración`,restoreNote:`La impresora virtual se detendrá durante la restauración`,githubBackup:`Copia de seguridad en Git`,enabled:`Activada`,cloudLoginRequired:`Se requiere iniciar sesión en Bambu Cloud. Inicie sesión en Perfiles → Perfiles en la nube para activar la copia de seguridad en GitHub.`,cloudLoginRequiredShort:`Se requiere iniciar sesión en la nube`,githubDescription:`Sincronice automáticamente sus perfiles con un repositorio privado de GitHub para la copia de seguridad y el historial de versiones.`,repoIsPrivate:`El repositorio es privado — es seguro hacer copias de seguridad en él.`,repoIsPublicWarning:`El repositorio es PÚBLICO. Las copias de seguridad de Bambuddy incluyen credenciales de MQTT, tokens de Home Assistant, tokens de Prometheus, su correo de Bambu Cloud y los códigos de acceso de las impresoras mediante los perfiles K. El guardado está bloqueado hasta que haga el repositorio privado en los ajustes de su proveedor.`,repoVisibilityUnknown:`No se pudo determinar la visibilidad del repositorio. Bambuddy se niega a hacer copias de seguridad en cualquier cosa que no se confirme como privada; el guardado se bloqueará.`,repositoryUrl:`URL del repositorio`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`Permitir HTTP no seguro`,allowInsecureHttpHint:`Actívelo para instancias autoalojadas en redes privadas sin TLS`,personalAccessToken:`Token de acceso personal`,tokenSaved:`(guardado)`,enterNewToken:`Introduzca un nuevo token para actualizar`,tokenHint:`Token de granularidad fina con permiso de lectura/escritura de Contents`,branch:`Rama`,provider:`Proveedor de Git`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`Solo manual`,hourly:`Cada hora`,daily:`Diaria`,weekly:`Semanal`,includeInBackup:`Incluir en la copia de seguridad`,kProfiles:`Perfiles K`,kProfilesDescription:`Calibración de avance de presión de las impresoras conectadas`,noPrintersConnected:`No hay impresoras conectadas`,printersConnected:`{{connected}}/{{total}} conectadas`,cloudProfiles:`Perfiles en la nube`,cloudProfilesDescription:`Preajustes de filamento, impresora y proceso de Bambu Cloud`,appSettings:`Ajustes de la aplicación`,appSettingsDescription:`Configuración de Bambuddy (base de datos completa)`,spoolInventory:`Inventario de bobinas`,spoolInventoryDescription:`Bobinas de filamento, historial de uso y seguimiento de costes`,printArchives:`Archivos de impresión`,printArchivesDescription:`Metadatos del historial de impresión (sin archivos gcode/3MF)`,lastBackupAt:`Última copia de seguridad:`,noBackupsYet:`Aún no hay copias de seguridad`,next:`Siguiente:`,startingBackup:`Iniciando la copia de seguridad...`,test:`Probar`,enableBackup:`Activar la copia de seguridad`,testConnection:`Probar conexión`,enterRepoUrl:`Introduzca la URL del repositorio`,enterRepoAndToken:`Introduzca la URL del repositorio y el token de acceso`,repoRequired:`La URL del repositorio es obligatoria`,tokenRequired:`El token de acceso es obligatorio`,githubBackupEnabled:`Copia de seguridad en GitHub activada`,tokenUpdated:`Token actualizado`,settingsSaved:`Ajustes guardados`,failedToSave:`Error al guardar: {{message}}`,backupCompleteFiles:`Copia de seguridad completada - {{count}} archivos actualizados`,backupSkippedNoChanges:`Copia de seguridad omitida - sin cambios`,backupFailed2:`Error en la copia de seguridad: {{message}}`,clearedLogs:`Se borraron {{count}} registros`,failedToClearLogs:`Error al borrar los registros: {{message}}`,history:`Historial`,clear:`Borrar`,date:`Fecha`,status:`Estado`,commit:`Confirmación`,localBackup:`Copia de seguridad local`,localBackupDescription:`Cree una copia de seguridad completa de sus datos de Bambuddy, incluida la base de datos, los archivos, las subidas y todos los archivos.`,downloadBackupLabel:`Descargar copia de seguridad`,completeBackupZip:`Copia de seguridad completa: base de datos + todos los archivos (ZIP)`,download:`Descargar`,preparingBackup:`Preparando la copia de seguridad...`,creatingArchive:`Creando el archivo de copia de seguridad... Esto puede tardar un rato para archivos grandes.`,downloadingFile:`Descargando el archivo de copia de seguridad...`,backupDownloaded:`Copia de seguridad descargada correctamente`,failedToCreateBackup:`Error al crear la copia de seguridad: {{message}}`,restore:`Restaurar`,restoreReplacesAll:`La restauración reemplaza todos los datos.`,restoreReplacesAllDetail:`Su base de datos y archivos actuales se reemplazarán por completo. Se requiere un reinicio tras la restauración.`,restoreConfirmTitle:`Restaurar copia de seguridad`,restoreConfirmMessage:`¿Está seguro de que desea restaurar desde "{{filename}}"? Esto reemplazará por completo su base de datos actual y todos los archivos. La aplicación deberá reiniciarse tras la restauración.`,restoreConfirmButton:`Restaurar copia de seguridad`,uploadingFile:`Subiendo el archivo de copia de seguridad...`,backupRestoredRestart:`Copia de seguridad restaurada. Reinicie Bambuddy.`,failedToRestore:`Error al restaurar la copia de seguridad. Compruebe el formato del archivo.`,reloadNow:`Recargar ahora`,creatingBackup:`Creando copia de seguridad`,restoringBackup:`Restaurando copia de seguridad`,preparing:`Preparando...`,processing:`Procesando...`,doNotClosePage:`No cierre esta página ni navegue a otra. Esta operación puede tardar varios minutos para copias de seguridad grandes.`,restoring:`Restaurando...`,restoreComplete:`Restauración completada`,restoreFailed2:`Error en la restauración`,importSettings:`Importar ajustes desde un archivo de copia de seguridad`,pleaseWaitRestoring:`Espere mientras se restauran sus datos`,selectBackupFile:`Haga clic para seleccionar el archivo de copia de seguridad (.json o .zip)`,duplicateHandling:`Cómo funciona la gestión de duplicados:`,matchPrinters:`Impresoras`,matchPrintersBy:`coincidencia por número de serie`,matchSmartPlugs:`Enchufes inteligentes`,matchSmartPlugsBy:`coincidencia por dirección IP`,matchNotificationProviders:`Proveedores de notificaciones`,matchNotificationProvidersBy:`coincidencia por nombre`,matchFilaments:`Filamentos`,matchFilamentsBy:`coincidencia por nombre + tipo + marca`,matchArchives:`Archivos`,matchArchivesBy:`coincidencia por hash del contenido (siempre se omiten)`,matchPendingUploads:`Subidas pendientes`,matchPendingUploadsBy:`coincidencia por nombre de archivo`,matchSettingsTemplates:`Ajustes y plantillas`,matchSettingsTemplatesBy:`siempre se sobrescriben`,replaceExisting:`Reemplazar los datos existentes`,keepExisting:`Conservar los datos existentes`,overwriteDescription:`Sobrescribir los elementos que ya existen con los datos de la copia de seguridad`,keepDescription:`Restaurar solo los elementos que aún no existen`,overwriteCaution:`Precaución:`,overwriteWarning:`Sobrescribir reemplazará sus configuraciones actuales con los datos de la copia de seguridad. Los códigos de acceso de las impresoras nunca se sobrescriben por seguridad.`,cancel:`Cancelar`,processingBackup:`Procesando el archivo de copia de seguridad...`,itemsRestored:`Elementos restaurados`,itemsSkipped:`Elementos omitidos`,restored:`Restaurados`,skippedAlreadyExist:`Omitidos (ya existen)`,filesCategory:`Archivos (3MF, miniaturas, etc.)`,andMore:`...y {{count}} más`,newApiKeysGenerated:`Nuevas claves API generadas`,keysShownOnce:`Estas claves solo se muestran una vez. ¡Cópielas ahora!`,copy:`Copiar`,noDataFound:`No se encontraron datos para restaurar en el archivo de copia de seguridad.`,close:`Cerrar`,scheduledBackup:`Copias de seguridad programadas`,scheduledBackupDescription:`Cree automáticamente instantáneas de copia de seguridad según una programación. El directorio de salida se puede montar en un NAS o en almacenamiento externo.`,frequency:`Frecuencia`,backupTime:`Hora`,retention:`Retención`,retentionDescription:`Número de copias de seguridad que conservar`,outputPath:`Ruta de salida`,outputPathPlaceholder:`Predeterminada: {{path}}`,outputPathDescription:`Déjelo vacío para la ubicación predeterminada`,runNow:`Ejecutar ahora`,backupFiles:`Archivos de copia de seguridad`,noScheduledBackups:`Aún no hay copias de seguridad`,deleteBackup:`Eliminar`,deleteBackupConfirm:`¿Eliminar este archivo de copia de seguridad?`,backupRunning:`Copia de seguridad en curso...`,scheduledBackupComplete:`Copia de seguridad completada correctamente`,scheduledBackupFailed:`Error en la copia de seguridad`,nextBackup:`Próxima copia de seguridad`,backupSize:`Tamaño`,localTimeHint:`Hora local ({{tz}})`,defaultPathLabel:`Predeterminada:`,pathCheck:{title:`Bambuddy no puede escribir en este directorio`,howToFix:`Cómo solucionarlo:`,sandboxed:`El servicio de Bambuddy no puede escribir en {{path}}. Su unidad de systemd se ejecuta con ProtectSystem=strict, lo que hace que todo directorio fuera de los de instalación, datos y registros sea de solo lectura para el servicio, incluso uno en el que usted sí puede escribir desde su propia shell.`,read_only:`{{path}} está en un sistema de archivos de solo lectura.`,permission_denied:`Bambuddy no tiene permiso para escribir en {{path}}. Compruebe el propietario y los permisos del directorio.`,no_space:`El sistema de archivos que contiene {{path}} está lleno.`,not_a_directory:`{{path}} existe pero no es un directorio.`,missing:`{{path}} no existe y no se pudo crear.`,error:`Bambuddy no puede escribir en {{path}}.`,ephemeralTitle:`Estas copias de seguridad no sobrevivirán a la recreación del contenedor`,container_ephemeral:`{{path}} está dentro del contenedor de Bambuddy, no en el host. Las copias escritas ahí se pierden cuando se recrea el contenedor. Monte el directorio desde el host:`},categories:{settings:`Ajustes`,notification_providers:`Proveedores de notificaciones`,notification_templates:`Plantillas de notificaciones`,smart_plugs:`Enchufes inteligentes`,printers:`Impresoras`,filaments:`Filamentos`,maintenance_types:`Tipos de mantenimiento`,archives:`Archivos`,projects:`Proyectos`,pending_uploads:`Subidas pendientes`,external_links:`Enlaces externos`,api_keys:`Claves API`}},tags:{title:`Etiquetas`,addTag:`Añadir etiqueta`,editTag:`Editar etiqueta`,deleteTag:`Eliminar etiqueta`,tagName:`Nombre de la etiqueta`,tagColor:`Color de la etiqueta`,noTags:`No hay etiquetas`,deleteConfirm:`¿Está seguro de que desea eliminar esta etiqueta?`,manageTags:`Gestionar etiquetas`},uploadModal:{title:`Subir archivos 3MF`,dragDrop:`Arrastre y suelte archivos .3mf aquí`,or:`o`,browseFiles:`Examinar archivos`,extractionInfo:`El modelo de impresora se extraerá automáticamente de los metadatos del archivo 3MF.`,uploaded:`subidos`,failed:`fallidos`,uploading:`Subiendo...`,upload:`Subir`,uploadFailed:`Error al subir`},editArchive:{title:`Editar archivo`,name:`Nombre`,namePlaceholder:`Nombre de la impresión`,printer:`Impresora`,noPrinter:`Sin impresora`,project:`Proyecto`,noProject:`Sin proyecto`,itemsPrinted:`Elementos impresos`,itemsPrintedHelp:`Número de elementos producidos en este trabajo de impresión`,notes:`Notas`,notesPlaceholder:`Añada notas sobre esta impresión...`,externalLink:`Enlace externo`,externalLinkPlaceholder:`https://printables.com/model/...`,externalLinkHelp:`Enlace a Printables, Thingiverse u otra fuente`,tags:`Etiquetas`,tagsPlaceholder:`Añada etiquetas...`,addMoreTags:`Añada más etiquetas...`,matchingTags:`Coincidentes con "{{query}}"`,existingTags:`Etiquetas existentes`,clickToAdd:`(haga clic para añadir)`,status:`Estado`,failureReason:`Motivo del fallo`,selectReason:`Seleccionar motivo...`,photos:`Fotos del resultado impreso`,photosHelp:`Haga clic en + para añadir fotos de su resultado impreso`,printResult:`Resultado de la impresión`,saving:`Guardando...`,failureReasons:{adhesionFailure:`Fallo de adhesión`,spaghettiDetached:`Espagueti / Desprendido`,layerShift:`Desplazamiento de capa`,cloggedNozzle:`Boquilla obstruida`,filamentRunout:`Agotamiento del filamento`,warping:`Alabeo`,stringing:`Hilos`,underExtrusion:`Subextrusión`,powerFailure:`Corte de corriente`,userCancelled:`Cancelada por el usuario`,other:`Otro`},statuses:{completed:`Completada`,failed:`Fallida`,aborted:`Cancelada`,printing:`Imprimiendo`}},kProfiles:{title:`Perfiles K`,noPrintersConfigured:`No hay impresoras configuradas`,addPrinterInSettings:`Añada una impresora en Ajustes para gestionar perfiles K`,noActivePrinters:`No hay impresoras activas`,enablePrinterConnection:`Active la conexión de una impresora para ver sus perfiles K`,loadingProfiles:`Cargando perfiles K...`,printerOffline:`Impresora desconectada`,printerOfflineDesc:`La impresora seleccionada no está conectada. Enciéndala para ver los perfiles K.`,noMatchingProfiles:`No hay perfiles coincidentes`,noMatchingProfilesDesc:`Ningún perfil coincide con sus criterios de búsqueda`,noKProfiles:`No hay perfiles K`,noKProfilesDesc:`No se encontraron perfiles de avance de presión para la boquilla de {{diameter}} mm`,createFirstProfile:`Crear el primer perfil`,printer:`Impresora`,nozzle:`Boquilla`,refresh:`Actualizar`,addProfile:`Añadir perfil`,export:`Exportar`,import:`Importar`,select:`Seleccionar`,selectAll:`Seleccionar todo`,delete:`Eliminar`,searchPlaceholder:`Buscar por nombre o filamento...`,allExtruders:`Todos los extrusores`,leftOnly:`Solo izquierdo`,rightOnly:`Solo derecho`,allFlow:`Todos los flujos`,hfOnly:`Solo flujo alto`,sOnly:`Solo estándar`,sortName:`Ordenar: nombre`,sortKValue:`Ordenar: valor K`,sortFilament:`Ordenar: filamento`,leftExtruder:`Extrusor izquierdo`,rightExtruder:`Extrusor derecho`,modal:{addTitle:`Añadir perfil K`,editTitle:`Editar perfil K`,profileName:`Nombre del perfil`,profileNamePlaceholder:`Mi perfil de PLA`,kValue:`Valor K`,kValuePlaceholder:`0,020`,kValueHelp:`Rango típico: 0,01 - 0,06 para PLA, 0,02 - 0,10 para PETG`,filament:`Filamento`,selectFilament:`Seleccionar filamento...`,noFilamentsHelp:`No se encontraron filamentos. Cree primero un perfil K en Bambu Studio.`,flowType:`Tipo de flujo`,highFlow:`Flujo alto`,standard:`Estándar`,nozzleSize:`Tamaño de la boquilla`,extruder:`Extrusor`,extruders:`Extrusores`,left:`Izquierdo`,right:`Derecho`,notes:`Notas (almacenadas localmente)`,notesPlaceholder:`Añada notas sobre este perfil...`,notesHelp:`Las notas se guardan en Bambuddy, no en la impresora`,syncing:`Sincronizando con la impresora...`,savingExtruder:`Guardando en el extrusor {{current}}/{{total}}...`,pleaseWait:`Espere`},deleteConfirm:{title:`Eliminar perfil`,cannotUndo:`Esto no se puede deshacer`,message:`¿Está seguro de que desea eliminar "{{name}}" de la impresora?`},bulkDelete:{title:`Eliminar perfiles`,cannotUndo:`Esto no se puede deshacer`,message:`¿Está seguro de que desea eliminar {{count}} perfiles seleccionados de la impresora?`},toast:{profileSaved:`Perfil K guardado`,profilesSaved:`Perfil K guardado en {{count}} extrusores`,selectAtLeastOneExtruder:`Seleccione al menos un extrusor`,profileDeleted:`Perfil K eliminado`,profilesDeleted:`Se eliminaron {{count}} perfiles`,exportedProfiles:`Se exportaron {{count}} perfiles`,importedProfiles:`Se importaron {{count}} de {{total}} perfiles`,noProfilesToExport:`No hay perfiles que exportar`,invalidFileFormat:`Formato de archivo no válido`,failedToParseImport:`Error al analizar el archivo de importación`,failedToSaveBatch:`Error al guardar los perfiles K`,noteSaved:`Nota guardada`,failedToSaveNote:`Error al guardar la nota`},permission:{noRead:`No tiene permiso para actualizar perfiles`,noCreate:`No tiene permiso para añadir perfiles`,noUpdate:`No tiene permiso para actualizar perfiles K`,noDelete:`No tiene permiso para eliminar perfiles K`,noExport:`No tiene permiso para exportar perfiles`,noImport:`No tiene permiso para importar perfiles`}},virtualPrinter:{title:`Impresora virtual`,running:`En ejecución`,stopped:`Detenida`,description:{default:`Active una impresora virtual que aparece en Bambu Studio y OrcaSlicer. Los archivos enviados a esta impresora se archivarán directamente sin imprimir.`,proxy:`Active un proxy que retransmite el tráfico del laminador a una impresora real, permitiendo la impresión remota a través de cualquier red.`},enable:{title:`Activar la impresora virtual`,visibleInSlicer:`Visible como "Bambuddy" en la detección del laminador`,proxyingTo:`Haciendo de proxy hacia {{name}}`,notActive:`No activa`},model:{title:`Modelo de impresora`,description:`Seleccione qué modelo de impresora emular.`,restartWarning:`Cambiar el modelo reiniciará la impresora virtual`},accessCode:{title:`Código de acceso`,isSet:`El código de acceso está establecido`,notSet:`No hay código de acceso establecido - necesario para activarla`,placeholder:`Introduzca un código de 8 caracteres`,placeholderChange:`Introduzca un nuevo código para cambiarlo`,hint:`Debe tener exactamente 8 caracteres. Los laminadores lo usan para autenticarse.`,charCount:`({{count}}/8)`,inheritedFromTarget:`Heredado de la impresora de destino`,derivedFromTargetHint:`Usa el código de acceso de la impresora de destino. El puente reenvía la autenticación del laminador a la impresora real, por lo que los códigos deben coincidir — edita el código en los ajustes de la impresora para cambiarlo.`,reveal:`Mostrar código de acceso`,hide:`Ocultar código de acceso`},targetPrinter:{title:`Impresora de destino`,configured:`Destino del proxy configurado`,notConfigured:`No hay impresora de destino seleccionada - necesaria para el modo proxy`,placeholder:`Seleccionar una impresora...`,hint:`Seleccione la impresora a la que retransmitir el tráfico del laminador. La impresora debe estar en modo LAN.`,noPrinters:`No hay impresoras configuradas. Añada primero una impresora para usar el modo proxy.`},remoteInterface:{title:`Anulación de la interfaz de red`,configured:`Anulación de la interfaz activa`,optional:`Opcional - úsela si la IP detectada automáticamente es incorrecta (p. ej. varias tarjetas de red, Docker, VPN)`,placeholder:`Detección automática (predeterminada)...`,hint:`Anula la dirección IP anunciada mediante SSDP y usada en el certificado TLS. Útil cuando Bambuddy tiene varias interfaces de red.`},mode:{title:`Modo`,archive:`Archivar`,archiveDesc:`Archivar los archivos inmediatamente`,review:`Revisar`,reviewDesc:`Revisar antes de archivar`,queue:`Encolar`,queueDesc:`Archivar y añadir a la cola`,proxy:`Proxy`,proxyDesc:`Retransmitir a una impresora real`},autoDispatch:{title:`Envío automático`,description:`Iniciar automáticamente las impresiones al añadirlas a la cola. Cuando está desactivado, las impresiones esperan al envío manual.`},queueForceColorMatch:{title:`Forzar la coincidencia de color`,description:`Negarse a enviar a una impresora que no tiene cargados el tipo y el color exactos de filamento. Desactivado de forma predeterminada — sin esto, la cola usa la coincidencia solo por modelo y puede elegir una impresora con el color equivocado cargado.`},gcodeInjection:{title:`Inyección de G-code`,description:`Aplica los fragmentos de G-code configurados por modelo en Ajustes a los trabajos de esta IV. Desactivado de forma predeterminada.`},tailscaleDisabled:{title:`Integración con Tailscale`,description:`Actívelo para marcar esta IV como expuesta a través de Tailscale. Muestra la dirección de Tailscale del host para que sepa qué IP pegar en el laminador. El paso de importación de la CA no cambia — este interruptor no tiene ningún efecto sobre los certificados.`},setupRequired:{title:`Configuración necesaria`,description:`La función de impresora virtual requiere configuración adicional del sistema antes de funcionar. Esto incluye el reenvío de puertos, las reglas del cortafuegos y los ajustes específicos de la plataforma.`,readGuide:`Lea la guía de configuración antes de activarla`},archiveNameSource:{title:`Origen del nombre del archivo`,description:`Elija cómo se nombran los archivos nuevos cuando llegan a través de la impresora virtual. «Metadatos» usa el título incrustado por el laminador del 3MF (predeterminado). «Nombre de archivo» usa el nombre de archivo que Bambu Studio envió por FTP. Nota: Bambu Studio sobrescribe el nombre que escribe en el diálogo «enviar a la impresora» con el campo Título del 3MF cuando existe, por lo que ambos modos suelen producir la misma cadena.`,metadata:`Metadatos`,filename:`Nombre de archivo`},caCert:{title:`Certificado del laminador`,description:`Las impresoras virtuales usan un certificado TLS firmado por la CA de Bambuddy. Importe este certificado de CA en el almacén de confianza de su laminador una sola vez para que acepte la conexión — sin necesidad de copiarlo desde la línea de comandos.`,copy:`Copiar`,copied:`Copiado`,download:`Descargar`,fingerprint:`SHA-256`},howItWorks:{title:`Cómo funciona`,step1:`En la misma LAN, las impresoras virtuales aparecen automáticamente en su laminador (Bambu Studio / OrcaSlicer) mediante detección. Desde otras redes, añádalas manualmente por dirección IP y código de acceso.`,step2:`En los modos Archivar, Revisar y Encolar, use el botón «Enviar» de su laminador para subir archivos 3MF a Bambuddy. El laminador mostrará «Impresión correcta» — el archivo se almacena, no se imprime.`,step3:`En el modo Proxy, la impresora virtual retransmite todo el tráfico a una impresora real — las impresiones comienzan inmediatamente como si estuviera conectada directamente.`},status:{title:`Detalles del estado`,printerName:`Nombre de la impresora`,model:`Modelo`,serialNumber:`Número de serie`,mode:`Modo`,pendingFiles:`Archivos pendientes`,targetPrinter:`Impresora de destino`,ftpPort:`Puerto FTP`,mqttPort:`Puerto MQTT`,ftpConnections:`Conexiones FTP`,mqttConnections:`Conexiones MQTT`},toast:{updated:`Ajustes de la impresora virtual actualizados`,failedToUpdate:`Error al actualizar los ajustes`,copyFailed:`Error al copiar — pruebe a seleccionar el texto manualmente`,accessCodeRequired:`Establezca primero un código de acceso`,targetPrinterRequired:`Seleccione primero una impresora de destino`,bindIpRequired:`Establezca primero una IP de enlace`,accessCodeEmpty:`El código de acceso no puede estar vacío`,accessCodeLength:`El código de acceso debe tener exactamente 8 caracteres`,targetCodeChangedRebind:`El código de acceso ahora coincide con la nueva impresora de destino. Vuelve a añadir este dispositivo en tu laminador para usar el nuevo código.`,created:`Impresora virtual creada`,failedToCreate:`Error al crear la impresora virtual`,deleted:`Impresora virtual eliminada`,failedToDelete:`Error al eliminar la impresora virtual`},list:{title:`Impresoras virtuales`,add:`Añadir`,addFirst:`Añadir impresora virtual`,empty:`No hay impresoras virtuales configuradas. Añada una para empezar.`},bindIp:{title:`Interfaz de enlace`,placeholder:`Seleccionar interfaz...`,hint:`Interfaz de red a la que se enlaza esta impresora virtual. Debe ser única por impresora.`},proxy:{accessCodeHint:`En el modo proxy, use el código de acceso de su impresora de destino en el laminador. La conexión se reenvía de forma transparente a la impresora real.`},addDialog:{title:`Añadir impresora virtual`,name:`Nombre`,hint:`Puede configurar el código de acceso, la impresora de destino y otros ajustes después de crearla.`,create:`Crear`},deleteConfirm:{title:`Eliminar impresora virtual`,message:`¿Está seguro de que desea eliminar "{{name}}"? Esto detendrá todos los servicios de esta impresora.`}},modelViewer:{openInSlicer:`Abrir en el laminador`,tabs:{model:`Modelo 3D`,gcode:`Vista previa de G-code`},notAvailable:`no disponible`,notSliced:`no laminado`,plates:`Camas`,allPlates:`Todas las camas`,plateNumber:`Cama {{number}}`,plateCount:`{{count}} cama`,plateCount_other:`{{count}} camas`,objectCount:`{{count}} objeto`,objectCount_other:`{{count}} objetos`,filamentCount:`{{count}} filamento`,filamentCount_other:`{{count}} filamentos`,eta:`Tiempo estimado {{minutes}} min`,noPreview:`No hay vista previa disponible para este archivo`,pagination:{pageOf:`Página {{current}} de {{total}}`,prev:`Anterior`,next:`Siguiente`},errors:{failedToLoad:`Error al cargar el archivo`,noMeshes:`No se encontraron mallas en el archivo 3MF`,unsupportedFormat:`Formato de archivo no compatible`}},maintenanceDescriptions:{lubricateCarbonRods:`Aplique lubricante a las varillas de carbono para un movimiento suave`,lubricateRails:`Aplique lubricante a las guías lineales para un movimiento suave`,cleanNozzle:`Limpie el fusor y la boquilla para evitar obstrucciones`,checkBelts:`Verifique la tensión de las correas para impresiones precisas`,cleanBuildPlate:`Limpie la cama de impresión para una mejor adhesión`,checkExtruder:`Inspeccione los engranajes del extrusor en busca de desgaste`,checkCooling:`Asegúrese de que los ventiladores de refrigeración funcionan correctamente`,generalInspection:`Inspección general de la impresora`,cleanCarbonRods:`Limpie las varillas de carbono para reducir la fricción`,lubricateSteelRods:`Aplique lubricante a las varillas de acero para un movimiento suave`,cleanSteelRods:`Limpie las varillas de acero para reducir la fricción`,cleanLinearRails:`Limpie las guías lineales para eliminar el polvo y los residuos`,checkPtfeTube:`Inspeccione el tubo de PTFE en busca de desgaste o daños`,replaceHepaFilter:`Reemplace el filtro HEPA para la calidad del aire`,replaceCarbonFilter:`Reemplace el filtro de carbón activado`,lubricateLeftNozzleRail:`Lubrique la guía de la boquilla izquierda (serie H2)`},smartPlugs:{offline:`Desconectado`,admin:`Administración`,openPlugAdminPage:`Abrir la página de administración del enchufe`,deleteSmartPlug:`Eliminar enchufe inteligente`,turnOnSmartPlug:`Encender el enchufe inteligente`,turnOffSmartPlug:`Apagar el enchufe inteligente`,turnOn:`Encender`,turnOff:`Apagar`,addSmartPlug:{scanningNetwork:`Escaneando la red...`,chooseEntity:`Elija una entidad...`,connectionFailed:`Error de conexión`,searchEntities:`Buscar entidades...`,searchPowerSensors:`Buscar sensores de potencia...`,searchEnergySensors:`Buscar sensores de energía...`,placeholders:{plugName:`Enchufe del salón`,mqttStateOnValue:`ON, true, 1`,mqttSameAsPower:`Igual que el tema de potencia, o distinto`}},linkedTo:`Vinculado a:`,monitorOnly:`Solo supervisión`,alerts:`Alertas`,scheduleOn:`Encendido a las {{time}}`,scheduleOff:`Apagado a las {{time}}`,on:`Encendido`,off:`Apagado`,power:`Potencia`,kwhToday:`kWh hoy`,settings:`Ajustes`,automationSettings:`Ajustes de automatización`,showInSwitchbar:`Mostrar en la barra de interruptores`,quickAccessSidebar:`Acceso rápido desde la barra lateral`,enabled:`Activada`,enableAutomation:`Activar la automatización para este enchufe`,autoOn:`Encendido automático`,autoOnDescription:`Encender cuando comienza la impresión`,autoOff:`Apagado automático`,autoOffDescription:`Apagar cuando se completa la impresión (una sola vez)`,autoOffPersistent:`Mantener activado`,autoOffPersistentDescription:`Permanecer activado entre impresiones en lugar de una sola vez`,controlsPrinterPower:`Alimenta la impresora`,controlsPrinterPowerDescription:`Desactívalo si este enchufe solo alimenta un accesorio (ventilador de filtro, luces). De lo contrario, apagarlo marca la impresora como desconectada.`,autoOffAfterDrying:`Apagado automático tras el secado`,autoOffAfterDryingDescription:`Apagar cuando se completa el secado del AMS`,delayAfterDryingMinutes:`Retardo de secado (minutos)`,turnOffDelayMode:`Modo de retardo de apagado`,time:`Tiempo`,temp:`Temp.`,delayMinutes:`Retardo (minutos)`,tempThreshold:`Umbral de temperatura (°C)`,tempThresholdDescription:`Se apaga cuando la boquilla se enfría por debajo de esta temperatura`,edit:`Editar`,deleteConfirm:`¿Está seguro de que desea eliminar "{{name}}"? Esto no se puede deshacer.`,turnOnConfirm:`¿Está seguro de que desea encender "{{name}}"?`,turnOffConfirm:`¿Está seguro de que desea apagar "{{name}}"? Esto cortará la corriente al dispositivo conectado.`,failedToTurn:`Error al {{action}} "{{name}}"`,unknown:`Desconocido`,addTitle:`Añadir enchufe inteligente`,editTitle:`Editar enchufe inteligente`,stopScanning:`Detener escaneo`,discoverTasmota:`Detectar dispositivos Tasmota`,foundDevices:`Se encontraron {{count}} dispositivo(s) - haga clic para seleccionar:`,noDevicesFound:`No se encontraron dispositivos Tasmota en su red`,haNotConfigured:`Home Assistant no está configurado. Configúrelo en`,haSettingsPath:`Ajustes → Red → Home Assistant`,selectEntity:`Seleccionar entidad *`,ipAddress:`Dirección IP *`,nameLabel:`Nombre *`,username:`Nombre de usuario`,password:`Contraseña`,authHint:`Déjelo vacío si su dispositivo Tasmota no requiere autenticación`,linkToPrinter:`Vincular a una impresora`,noPrinter:`Sin impresora (solo control manual)`,linkingDescription:`La vinculación activa el encendido/apagado automático cuando las impresiones comienzan/terminan`,powerAlerts:`Alertas de potencia`,alertAbove:`Alertar si supera (W)`,alertBelow:`Alertar si está por debajo (W)`,alertDescription:`Reciba una notificación cuando el consumo de energía cruce estos umbrales. Déjelo vacío para desactivar esa dirección.`,dailySchedule:`Programación diaria`,turnOnAt:`Encender a las`,turnOffAt:`Apagar a las`,scheduleDescription:`Encender/apagar automáticamente el enchufe a estas horas cada día. Déjelo vacío para omitir esa acción.`,showOnPrinterCard:`Mostrar en la tarjeta de la impresora`,displayOnPrinterCard:`Mostrar el botón en la tarjeta de la impresora`,connectedResult:`¡Conectado!`,deviceLabel:`Dispositivo: {{name}} - `,stateLabel:`Estado: {{state}}`,test:`Probar`,delete:`Eliminar`,save:`Guardar`,add:`Añadir`,cancel:`Cancelar`,failedToStartScan:`Error al iniciar el escaneo`,nameRequired:`El nombre es obligatorio`,entityRequired:`La entidad es obligatoria para los enchufes de Home Assistant`,mqttTopicRequired:`Debe configurarse al menos un tema MQTT para la supervisión de potencia, energía o estado`,loadingEntities:`Cargando entidades...`,loading:`Cargando...`,failedToLoadEntities:`Error al cargar las entidades: {{error}}`,noEntitiesMatching:`No se encontraron entidades que coincidan con "{{search}}"`,noEntitiesAvailable:`No hay entidades disponibles`,searchingEntities:`Buscando en todas las entidades ({{count}} encontradas)`,showingEntities:`Mostrando switch, light, input_boolean ({{count}} disponibles)`,energyMonitoringOptional:`Supervisión de energía (opcional)`,energyMonitoringHint:`Busque y seleccione sensores que proporcionen datos de potencia/energía.`,powerSensorW:`Sensor de potencia (W)`,energyTodayKwh:`Energía de hoy (kWh)`,totalEnergyKwh:`Energía total (kWh)`,noMatchingSensors:`No hay sensores coincidentes`,none:`Ninguno`,mqttNotConfigured:`El broker MQTT no está configurado. Establezca la dirección del broker en`,mqttSettingsPath:`Ajustes → Red → Publicación MQTT`,mqttNotConfiguredSuffix:`(no necesita activar la publicación, solo rellenar los datos del broker).`,mqttMonitorOnlyDescription:`Los enchufes MQTT reciben los datos de potencia/energía mediante una suscripción MQTT. El control de encendido/apagado no está disponible - use su broker MQTT o sistema de domótica.`,powerMonitoring:`Supervisión de potencia`,energyMonitoring:`Supervisión de energía`,stateMonitoring:`Supervisión de estado`,optional:`opcional`,topic:`Tema`,jsonPath:`Ruta JSON`,multiplier:`Multiplicador`,onValue:`Valor de ON`,mqttPowerHint:`La ruta JSON extrae el valor de la carga útil JSON (p. ej., "power_l1"). Déjelo vacío si el tema publica valores numéricos sin procesar.
+EIN-Wert: der genaue String der "EIN" bedeutet. Leer lassen für Auto-Erkennung (ON, true, 1).`,restControl:`Steuerung`,restOnUrl:`Einschalt-URL`,restOffUrl:`Ausschalt-URL`,restOnBody:`EIN-Anforderungstext`,restOffBody:`AUS-Anforderungstext`,restMethod:`HTTP-Methode`,restHeaders:`Custom Headers (JSON)`,restStatusUrl:`Status-URL`,restStatusPath:`JSON-Pfad für Status`,restStatusOnValue:`EIN-Wert`,restPowerUrl:`Strom-URL`,restPowerPath:`JSON-Pfad für Leistung`,restPowerMultiplier:`Power Multiplikator`,restEnergyUrl:`Energie URL`,restEnergyPath:`JSON-Pfad für Energie (heute)`,restEnergyTotalPath:`JSON-Pfad für Energie (Gesamtzähler)`,restEnergyTotalMultiplier:`Multiplikator Gesamtzähler`,restEnergyTotalPathHint:`z.B. aenergy.total`,restEnergyTotalHint:`Viele Steckdosen — darunter alle Shellys — liefern nur einen Gesamtzähler, der nie zurückgesetzt wird. Er gehört hierher, nicht in das Feld darüber: als Tagesverbrauch gelesen würde er um Mitternacht nie zurückspringen, und Gestern und Gesamt blieben leer. Bambuddy errechnet Heute und Gestern daraus, wofür ein bis zwei Tage an Messwerten nötig sind. Ein Shelly liefert Wattstunden, also Multiplikator 0.001 verwenden.`,restEnergyMultiplier:`Energie Multiplikator`,restUrlRequired:`Mindestens eine URL (ON oder OFF) ist für REST-Steckdosen erforderlich`,restHeadersHint:`z. B. {"Authorization": "Bearer your-token"}`,restBodyHint:`z. B. ON, {"state": "on"}`,restStatusHint:`URL zum Abfragen des aktuellen Status`,restPathHint:`z. B. state oder data.power.status`,restPowerUrlHint:`Eigene URL für Leistungsdaten (nutzt Status URL wenn leer)`,restEnergyUrlHint:`Eigene URL für Energiedaten (nutzt Status URL wenn leer)`,restEnergyHint:`Jeder Wert kann eine eigene URL verwenden oder auf die Status URL zurückgreifen. Multiplikatoren für Einheitenumrechnung verwenden (z.B. 0.001 für Wh zu kWh).`,testConnection:`Verbindung testen`,connectionSuccess:`Verbindung erfolgreich`,noSwitchesInSwitchbar:`Keine Schalter in der Schaltleiste`,enableSwitchbarHint:`"In Schaltleiste anzeigen" unter Einstellungen > Smart Plugs aktivieren`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`E-Mail`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`SMTP-E-Mail-Benachrichtigungen`,telegram:`Benachrichtigungen über Telegram-Bot`,discord:`An Discord-Kanal per Webhook senden`,ntfy:`Kostenlose, selbst-hostbare Push-Benachrichtigungen`,pushover:`Einfache, zuverlässige Push-Benachrichtigungen`,callmebot:`Kostenlose WhatsApp-Benachrichtigungen über CallMeBot`,webhook:`Generischer HTTP-POST an beliebige URL`,homeassistant:`Dauerhafte Benachrichtigungen im Home Assistant Dashboard`,bark:`iOS-Push-Benachrichtigungen über Bark (selbst hostbar)`},lastSuccess:`Zuletzt: {{date}}`,error:`Fehler`,printer:`Drucker:`,allPrinters:`Alle Drucker`,sendTestNotification:`Testbenachrichtigung senden`,eventSettings:`Ereigniseinstellungen`,enabled:`Aktiviert`,sendFromProvider:`Benachrichtigungen von diesem Anbieter senden`,printEvents:`Druckereignisse`,printerStatus:`Druckerstatus`,amsAlarms:`AMS-Alarme`,amsHtAlarms:`AMS-HT-Alarme`,printQueue:`Druckwarteschlange`,start:`Start`,plateCheck:`Plattenkontrolle`,complete:`Abgeschlossen`,failed:`Fehlgeschlagen`,stopped:`Gestoppt`,progress:`Fortschritt`,offline:`Offline`,lowFilament:`Filament niedrig`,maintenance:`Wartung`,amsHumidity:`AMS-Feuchtigkeit`,amsTemp:`AMS-Temperatur`,amsHtHumidity:`AMS-HT-Feuchtigkeit`,amsHtTemp:`AMS-HT-Temperatur`,bedCooled:`Bett abgekühlt`,firstLayer:`Erste Schicht`,quiet:`Ruhe`,digest:`Zusammenfassung {{time}}`,printStarted:`Druck gestartet`,plateNotEmpty:`Platte nicht leer`,plateNotEmptyDescription:`Objekte vor dem Druck erkannt`,plateClearRequired:`Platte freigeben`,plateClearRequiredDescription:`Druck beendet, Warteschlange wartet auf Bestätigung`,plateClear:`Platte freigeben`,printCompleted:`Druck abgeschlossen`,bedCooledLabel:`Bett abgekühlt`,bedCooledDescription:`Bett nach dem Druck unter Schwellenwert abgekühlt`,firstLayerCompleteLabel:`Erste Schicht fertig`,firstLayerCompleteDescription:`Benachrichtigung mit Foto nach erster Schicht`,missingSpoolAssignmentLabel:`Fehlende Spulenzuordnung`,missingSpoolAssignmentDescription:`Benachrichtigen, wenn ein Druck startet und benoetigte Schaechte keine zugeordnete Spule haben`,printFailed:`Druck fehlgeschlagen`,printStopped:`Druck gestoppt`,progressMilestones:`Fortschrittsmeilensteine`,progressMilestonesDescription:`Benachrichtigung bei 25%, 50%, 75%`,printerOffline:`Drucker offline`,printerError:`Druckerfehler`,aiFailureDetection:`KI-Fehlererkennung`,aiFailureDetectionDescription:`Benachrichtigen, wenn die Obico-KI einen möglichen Druckfehler erkennt`,lowFilamentLabel:`Filament niedrig`,maintenanceDue:`Wartung fällig`,maintenanceDueDescription:`Benachrichtigen, wenn Wartung erforderlich ist`,amsHumidityHigh:`AMS-Feuchtigkeit hoch`,amsHumidityHighDescription:`Normale AMS-Feuchtigkeit überschreitet Schwellenwert`,amsTemperatureHigh:`AMS-Temperatur hoch`,amsTemperatureHighDescription:`Normale AMS-Temperatur überschreitet Schwellenwert`,amsHtHumidityHigh:`AMS-HT-Feuchtigkeit hoch`,amsHtHumidityHighDescription:`AMS-HT-Feuchtigkeit überschreitet Schwellenwert`,amsHtTemperatureHigh:`AMS-HT-Temperatur hoch`,amsHtTemperatureHighDescription:`AMS-HT-Temperatur überschreitet Schwellenwert`,inventoryAlerts:`Bestandswarnungen`,stockReorderAlert:`Nachbestellungswarnung`,stockReorderAlertDescription:`SKU hat seinen Nachbestellungspunkt erreicht`,stockBreakAlert:`Bestandsunterbrechungswarnung`,stockBreakAlertDescription:`Der Bestand wird vor dem Eintreffen der Nachbestellung aufgebraucht sein`,jobAdded:`Auftrag hinzugefügt`,jobAddedDescription:`Auftrag zur Warteschlange hinzugefügt`,jobAssigned:`Auftrag zugewiesen`,jobAssignedDescription:`Modellbasierter Auftrag einem Drucker zugewiesen`,jobStarted:`Auftrag gestartet`,jobStartedDescription:`Warteschlangenauftrag hat Druck begonnen`,jobWaiting:`Auftrag wartet`,jobWaitingDescription:`Auftrag wartet auf Filament oder Drucker`,jobSkipped:`Auftrag übersprungen`,jobSkippedDescription:`Auftrag übersprungen (vorheriger fehlgeschlagen)`,jobFailed:`Auftrag fehlgeschlagen`,jobFailedDescription:`Auftrag konnte nicht gestartet werden`,queueComplete:`Warteschlange abgeschlossen`,queueCompleteDescription:`Alle Warteschlangenaufträge beendet`,quietHours:`Ruhezeiten`,noNotificationsDuring:`Keine Benachrichtigungen während dieser Zeiten`,editProviderToChangeQuietHours:`Anbieter bearbeiten, um Ruhezeiten zu ändern`,dailyDigest:`Tägliche Zusammenfassung`,batchNotifications:`Benachrichtigungen zu einer täglichen Zusammenfassung bündeln`,sendAt:`Senden um {{time}}`,editProviderToChangeDigestTime:`Anbieter bearbeiten, um Zusammenfassungszeit zu ändern`,edit:`Bearbeiten`,deleteProvider:`Benachrichtigungsanbieter löschen`,deleteConfirm:`Sind Sie sicher, dass Sie "{{name}}" löschen möchten? Dies kann nicht rückgängig gemacht werden.`,delete:`Löschen`,addTitle:`Benachrichtigungsanbieter hinzufügen`,editTitle:`Benachrichtigungsanbieter bearbeiten`,nameLabel:`Name *`,namePlaceholder:`Meine Benachrichtigungen`,providerTypeLabel:`Anbietertyp *`,configuration:`Konfiguration`,testConfiguration:`Konfiguration testen`,printerFilter:`Druckerfilter`,onlyFromPrinter:`Nur Benachrichtigungen für Ereignisse von diesem Drucker senden`,quietHoursDnd:`Ruhezeiten (Nicht stören)`,quietStart:`Start`,quietEnd:`Ende`,dailyDigestLabel:`Tägliche Zusammenfassung`,sendDigestAt:`Zusammenfassung senden um`,digestCollected:`Ereignisse werden gesammelt und als einzelne Zusammenfassung zu dieser Zeit gesendet`,notificationEvents:`Benachrichtigungsereignisse`,progressPercent:`(25 %, 50 %, 75 %)`,bedCooledAfterPrint:`(nach Druckabschluss)`,eventPriority:{sectionTitle:`ntfy-Priorität`,helpNtfy:`Wähle eine Priorität pro aktiviertem Ereignis. ntfy nutzt diese, um Hinweise (Ton, Sichtbarkeit, Push-Verhalten) zu eskalieren. Hier nicht gesetzte Stufen verwenden den ntfy-Server-Standard.`,min:`Min.`,low:`Niedrig`,default:`Standard`,high:`Hoch`,urgent:`Dringend`},cancel:`Abbrechen`,save:`Speichern`,add:`Hinzufügen`,nameRequired:`Name ist erforderlich`,fieldRequired:`{{field}} ist erforderlich`,haDataInvalid:`Das Datenfeld muss ein gültiges JSON-Objekt sein, z. B. {"priority": "high", "ttl": 0}`,phoneNumber:`Telefonnummer`,apiKey:`API-Schlüssel`,serverUrl:`Server-URL`,topic:`Thema`,authToken:`Auth-Token`,userKey:`Benutzerschlüssel`,appToken:`App-Token`,priority:`Priorität`,pushoverRetry:`Notfall-Wiederholung (s)`,pushoverExpire:`Notfall-Ablauf (s)`,botToken:`Bot-Token`,chatId:`Chat-ID`,telegramThreadId:`Forum-Themen-ID`,telegramThreadIdHelp:`Optional. Sendet in ein einzelnes Thema einer Forum-Gruppe — die letzte Zahl im Themen-Link (t.me/c/.../25). Leer lassen für das allgemeine Thema.`,telegramThreadIdInvalid:`Die Forum-Themen-ID muss eine Zahl sein.`,smtpServer:`SMTP-Server`,smtpPort:`SMTP-Port`,security:`Sicherheit`,authentication:`Authentifizierung`,username:`Benutzername`,password:`Passwort`,fromEmail:`Absender-E-Mail`,toEmail:`Empfänger-E-Mail`,webhookUrl:`Webhook-URL`,payloadFormat:`Payload-Format`,authorization:`Autorisierung`,titleFieldName:`Titel-Feldname`,messageFieldName:`Nachrichten-Feldname`,editTemplate:`Vorlage bearbeiten: {{name}}`,titleLabel:`Titel`,bodyLabel:`Inhalt`,titlePlaceholder:`Benachrichtigungstitel...`,bodyPlaceholder:`Benachrichtigungsinhalt...`,availableVariables:`Verfügbare Variablen`,clickToInsert:`Klicken, um an Cursorposition im Inhalt einzufügen`,livePreview:`Live-Vorschau`,hide:`Ausblenden`,show:`Anzeigen`,loadingPreview:`Vorschau wird geladen...`,enterTemplateContent:`Vorlageninhalt eingeben, um Vorschau zu sehen`,titlePreview:`Titel:`,bodyPreview:`Inhalt:`,resetToDefault:`Auf Standard zurücksetzen`,titleRequired:`Titel ist erforderlich`,bodyRequired:`Inhalt ist erforderlich`,notificationLog:`Benachrichtigungsprotokoll`,showFailedOnly:`Nur fehlgeschlagene`,last24Hours:`Letzte 24 Stunden`,last7Days:`Letzte 7 Tage`,last30Days:`Letzte 30 Tage`,last90Days:`Letzte 90 Tage`,justNow:`Gerade eben`,noFailedNotifications:`Keine fehlgeschlagenen Benachrichtigungen`,noNotificationsLogged:`Keine Benachrichtigungen protokolliert`,unknownProvider:`Unbekannter Anbieter`,logTitle:`Titel`,logMessage:`Nachricht`,logError:`Fehler`,logProvider:`Anbieter: {{type}}`,logTime:`Zeit: {{time}}`,refresh:`Aktualisieren`,clearOld:`Alte löschen`,statsSummary:`Letzte {{days}} Tage:`,statsNotifications:`Benachrichtigungen`,statsSent:`{{count}} gesendet`,statsFailed:`{{count}} fehlgeschlagen`,eventTypes:{print_start:`Druck gestartet`,print_complete:`Druck abgeschlossen`,print_failed:`Druck fehlgeschlagen`,print_stopped:`Druck gestoppt`,print_progress:`Fortschritt`,printer_offline:`Drucker offline`,printer_error:`Druckerfehler`,filament_low:`Filament niedrig`,maintenance_due:`Wartung fällig`,test:`Test`},userEmail:{title:`Benachrichtigungen`,emailNotifications:`E-Mail-Benachrichtigungen`,emailNotificationsDesc:`Erhalten Sie E-Mail-Benachrichtigungen für Ihre eigenen Druckaufträge. E-Mails werden über die in der erweiterten Authentifizierung konfigurierten SMTP-Einstellungen gesendet.`,sendingTo:`Benachrichtigungen werden gesendet an`,noEmailWarning:`Ihr Konto hat keine E-Mail-Adresse. Wenden Sie sich an einen Administrator, um eine hinzuzufügen.`,printJobNotifications:`Druckauftrags-Benachrichtigungen`,printJobNotificationsDesc:`Wählen Sie aus, welche Ereignisse E-Mail-Benachrichtigungen für von Ihnen gesendete Druckaufträge auslösen.`,printJobStarts:`Druckauftrag startet`,printJobStartsDesc:`Benachrichtigt werden, wenn Ihr Druckauftrag beginnt.`,printJobFinishes:`Druckauftrag fertig`,printJobFinishesDesc:`Benachrichtigt werden, wenn Ihr Druckauftrag erfolgreich abgeschlossen wurde.`,printErrors:`Druckfehler`,printErrorsDesc:`Benachrichtigt werden, wenn Ihr Druckauftrag fehlschlägt oder auf einen Fehler stößt.`,printJobStops:`Druckauftrag gestoppt`,printJobStopsDesc:`Benachrichtigt werden, wenn Ihr Druckauftrag abgebrochen oder gestoppt wird.`,saveSuccess:`Benachrichtigungseinstellungen gespeichert.`,saveError:`Benachrichtigungseinstellungen konnten nicht gespeichert werden.`}},richTextEditor:{bold:`Fett`,italic:`Kursiv`,underline:`Unterstrichen`,bulletList:`Aufzählungsliste`,numberedList:`Nummerierte Liste`,alignLeft:`Linksbündig`,alignCenter:`Zentriert`,alignRight:`Rechtsbündig`,addLink:`Link hinzufügen`,removeLink:`Link entfernen`},externalLinks:{title:`Seitenleisten-Links`,sidebarLayout:`Seitenleiste`,sidebarLayoutDescription:`Integrierte Seiten ein- oder ausblenden, externe Links hinzufügen und Elemente ziehen, um die Seitenleisten-Navigation neu zu ordnen.`,systemPages:`Bambuddy-Seiten`,externalLinks:`Externe Links`,visibleInSidebar:`In Seitenleiste sichtbar`,hiddenFromSidebar:`In Seitenleiste ausgeblendet`,requiredInSidebar:`In Seitenleiste erforderlich`,hidePage:`Seite ausblenden`,showPage:`Seite anzeigen`,settingsCannotBeHidden:`Einstellungen können nicht ausgeblendet werden`,noLinksConfigured:`Keine externen Links konfiguriert`,deleteLink:`Link löschen`,removeCustomIcon:`Benutzerdefiniertes Symbol entfernen`,openInNewTab:`In neuem Tab öffnen`,placeholders:{linkName:`Mein Link`}},keyboardShortcuts:{title:`Tastaturkürzel`,navigation:`Navigation`,archivesSection:`Archive`,kProfilesSection:`K-Profile`,generalSection:`Allgemein`,shortcuts:{goToPrinters:`Zu Drucker gehen`,goToArchives:`Zu Archiv gehen`,goToQueue:`Zur Warteschlange gehen`,goToStats:`Zu Statistiken gehen`,goToProfiles:`Zu Cloud-Profilen gehen`,goToSettings:`Zu Einstellungen gehen`,focusSearch:`Suche fokussieren`,openUploadModal:`Upload-Modal öffnen`,clearSelection:`Auswahl löschen / Eingabe aufheben`,contextMenu:`Kontextmenü auf Karten`,refreshProfiles:`Profile aktualisieren`,newProfile:`Neues Profil`,exitSelectionMode:`Auswahlmodus beenden`,showHelp:`Diese Hilfe anzeigen`},footer:`Drücken Sie Esc oder klicken Sie außerhalb, um zu schließen`},notificationLog:{title:`Benachrichtigungsprotokoll`,events:{printStarted:`Druck gestartet`,printComplete:`Druck abgeschlossen`,printFailed:`Druck fehlgeschlagen`,printStopped:`Druck gestoppt`,progress:`Fortschritt`,printerOffline:`Drucker offline`,printerError:`Druckerfehler`,lowFilament:`Wenig Filament`,maintenanceDue:`Wartung fällig`,test:`Test`},timeAgo:{justNow:`Gerade eben`,minutesAgo:`vor {{minutes}}m`,hoursAgo:`vor {{hours}}h`}},restoreBackup:{title:`Backup wiederherstellen`,restoring:`Wird wiederhergestellt...`,restoreComplete:`Wiederherstellung abgeschlossen`,restoreFailed:`Wiederherstellung fehlgeschlagen`,importSettings:`Einstellungen aus Backup-Datei importieren`,pleaseWait:`Bitte warten Sie, während Ihre Daten wiederhergestellt werden`,clickToSelect:`Klicken Sie, um Backup-Datei auszuwählen (.json oder .zip)`,howDuplicateHandling:`So funktioniert die Duplikatbehandlung:`,categories:{printers:`Drucker`,smartPlugs:`Smart Plugs`,notificationProviders:`Benachrichtigungsanbieter`,filaments:`Filamente`,archives:`Archive`,pendingUploads:`Ausstehende Uploads`,settingsTemplates:`Einstellungen & Vorlagen`},matchingInfo:{printers:`abgeglichen nach Seriennummer`,smartPlugs:`abgeglichen nach IP-Adresse`,notificationProviders:`abgeglichen nach Name`,filaments:`abgeglichen nach Name + Typ + Marke`,archives:`abgeglichen nach Inhalts-Hash`,pendingUploads:`abgeglichen nach Dateiname`,settingsTemplates:`immer überschrieben`},replaceExisting:`Vorhandene Daten ersetzen`,keepExisting:`Vorhandene Daten behalten`,replaceDescription:`Bereits vorhandene Elemente mit Backup-Daten überschreiben`,keepDescription:`Nur Elemente wiederherstellen, die noch nicht existieren`,caution:`Vorsicht:`,cautionText:`Das Überschreiben ersetzt Ihre aktuellen Konfigurationen durch Backup-Daten. Drucker-Zugangscodes werden aus Sicherheitsgründen niemals überschrieben.`,itemsRestored:`Wiederhergestellte Elemente`,itemsSkipped:`Übersprungene Elemente`,restored:`Wiederhergestellt`,skipped:`Übersprungen (existieren bereits)`,filesLabel:`Dateien (3MF, Thumbnails, etc.)`,newApiKeysGenerated:`Neue API-Schlüssel generiert`,newApiKeysWarning:`Diese Schlüssel werden nur einmal angezeigt. Kopieren Sie sie jetzt!`,processingBackup:`Backup-Datei wird verarbeitet...`,noDataFound:`In der Backup-Datei wurden keine wiederherzustellenden Daten gefunden.`,failedToRestore:`Backup konnte nicht wiederhergestellt werden. Bitte überprüfen Sie das Dateiformat.`},backupExport:{title:`Backup exportieren`,selectData:`Zu exportierende Daten auswählen`,selectAll:`Alle auswählen`,selectNone:`Keine auswählen`,categoryDescriptions:{settings:`Sprache, Theme, Update-Einstellungen`,notifications:`ntfy, Pushover, Discord, usw.`,templates:`Benutzerdefinierte Nachrichtenvorlagen`,smartPlugs:`Tasmota-Plug-Konfigurationen`,externalLinks:`Seitenleiste Links zu externen Diensten`,printers:`Druckerinformationen (Zugangscodes ausgeschlossen)`,plateDetection:`Leere Platten-Referenzbilder`,filaments:`Filamenttypen und -kosten`,maintenance:`Benutzerdefinierte Wartungspläne`,archives:`Alle Druckdaten + Dateien (3MF, Thumbnails, Fotos)`,projects:`Projekte, BOM-Elemente und Anhänge`,pendingUploads:`Virtueller Drucker-Uploads zur Überprüfung`,apiKeys:`Webhook-API-Schlüssel (neue Schlüssel bei Import generiert)`},requiresPrinters:`Drucker müssen ausgewählt sein`,zipFileWarning:`ZIP-Datei wird erstellt.`,zipFileDescription:`Enthält alle 3MF-Dateien, Thumbnails, Zeitraffer und Fotos. Dies kann eine Weile dauern und zu einer großen Datei führen.`,includeAccessCodes:`Zugangscodes einschließen`,includeAccessCodesDescription:`Für die Übertragung auf eine andere Maschine`,includeAccessCodesWarning:`Zugangscodes werden im Klartext eingeschlossen. Bewahren Sie diese Backup-Datei sicher auf!`,categoriesSelected:`{{selectedCount}} Kategorien ausgewählt`},pendingUploads:{placeholders:{notes:`Notizen zu diesem Druck hinzufügen...`},discardUpload:`Upload verwerfen`,archiveAllUploads:`Alle Uploads archivieren`,discardAllUploads:`Alle Uploads verwerfen`,archive:`Archivieren`,timeAgo:{justNow:`Gerade eben`,minutesAgo:`vor {{minutes}}m`,hoursAgo:`vor {{hours}}h`,daysAgo:`vor {{days}}d`}},apiBrowser:{placeholders:{requestBody:`JSON-Anforderungstext...`,searchEndpoints:`Endpunkte suchen...`}},configureAmsSlot:{title:`AMS-Slot konfigurieren`,slotConfigured:`Slot konfiguriert!`,configuringSlot:`Slot wird konfiguriert:`,slotLabel:`{{ams}} – Slot {{slot}}`,searchPresets:`Voreinstellungen suchen...`,colorPlaceholder:`Farbname oder Hex (z.B. braun, FF8800)`,clearCustomColor:`Benutzerdefinierte Farbe löschen`,noCloudPresets:`Keine Cloud-Voreinstellungen. Melden Sie sich bei Bambu Cloud an, um zu synchronisieren.`,noPresetsAvailable:`Keine Voreinstellungen verfügbar. Melden Sie sich bei Bambu Cloud an oder importieren Sie lokale Profile.`,noMatchingPresets:`Keine passenden Voreinstellungen gefunden.`,custom:`Benutzerdefiniert`,builtin:`Integriert`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`Einstellungen an Drucker gesendet`,filamentProfile:`Filamentprofil`,kProfileLabel:`K-Profil (Pressure Advance)`,filteringFor:`Filtern nach: {{material}}`,noKProfile:`Kein K-Profil (Standard 0.020 verwenden)`,noMatchingKProfiles:`Keine passenden K-Profile gefunden. Standard K=0.020 wird verwendet.`,otherKProfiles:`Weitere K-Profile auf diesem Drucker`,selectFilamentFirst:`Zuerst ein Filamentprofil auswählen`,kFromCalibration:`K={{value}} aus Druckerkalibrierung`,customColorLabel:`Benutzerdefinierte Farbe (optional)`,presetColors:`{{name}} Farben:`,showLessColors:`Weniger Farben anzeigen`,showMoreColors:`Mehr Farben anzeigen`,clear:`Löschen`,hexLabel:`Hex – #{{hex}}`,resetting:`Wird zurückgesetzt...`,resetSlot:`Slot zurücksetzen`,cancel:`Abbrechen`,configuring:`Wird konfiguriert...`,configureSlot:`Slot konfigurieren`},githubBackup:{title:`Git-Backup`,history:`Verlauf`,downloadBackup:`Backup herunterladen`,restoreBackup:`Backup wiederherstellen`,noBackupsYet:`Noch keine Backups`},emailSettings:{placeholders:{fromName:`Bambuddy`}},tagManagement:{searchTags:`Tags suchen...`,renameTag:`Tag umbenennen`,deleteTag:`Tag löschen`},notificationTemplates:{placeholders:{title:`Benachrichtigungstitel...`,body:`Benachrichtigungstext...`}},batchTag:{placeholders:{newTag:`Neuen Tag eingeben...`}},photoGallery:{deletePhoto:`Foto löschen`},filamentHoverCard:{copySpoolUuid:`Spulen-UUID kopieren`},kProfilesView:{hasNote:`Hat Notiz`,copyProfile:`Profil kopieren`},layout:{openMenu:`Menü öffnen`,noPermissionSystemInfo:`Sie haben keine Berechtigung zum Anzeigen von Systeminformationen`},dashboard:{dragToReorder:`Ziehen zum Neuordnen`,hideWidget:`Widget ausblenden`},notificationProviderCard:{deleteNotificationProvider:`Benachrichtigungsanbieter löschen`},fileManagerModal:{closeFileManager:`Dateimanager schließen`,sortFiles:`Dateien sortieren`,goToParentFolder:`Zum übergeordneten Ordner gehen`,threeView:`3D-Ansicht`},embeddedCameraViewer:{refreshStream:`Stream aktualisieren`,close:`Schließen`,zoomOut:`Verkleinern`,resetZoom:`Zoom zurücksetzen`,zoomIn:`Vergrößern`,dragToResize:`Ziehen zum Größe ändern`},timelapseViewer:{skipBack5s:`5s zurückspringen`,skipForward5s:`5s vorspringen`},notificationProviders:{descriptions:{email:`SMTP-E-Mail-Benachrichtigungen`,telegram:`Benachrichtigungen über Telegram-Bot`,discord:`An Discord-Kanal über Webhook senden`,ntfy:`Kostenlose, selbst hostbare Push-Benachrichtigungen`,pushover:`Einfache, zuverlässige Push-Benachrichtigungen`,callmebot:`Kostenlose WhatsApp-Benachrichtigungen über CallMeBot`,webhook:`Generischer HTTP POST zu beliebiger URL`}},logViewer:{searchPlaceholder:`Nachricht oder Logger-Name suchen...`,noLogEntries:`Keine Logeinträge gefunden`},switchbarPopover:{noSwitchesInSwitchbar:`Keine Schalter in Schalterleiste`},projectPageModal:{placeholders:{title:`Titel`,designer:`Designer`,license:`Lizenz`,description:`Beschreibung eingeben...`,profileTitle:`Profil-Titel`,profileDescription:`Profilbeschreibung...`}},spoolmanSettings:{},time:{unknown:`-`,waiting:`Wartend`,justNow:`Gerade eben`,now:`Jetzt`,minsAgo:`vor {{count}}m`,inMins:`in {{count}}min`,hoursAgo:`vor {{count}}h`,inHours:`in {{count}}Std`,daysAgo:`vor {{count}}d`,inDays:`in {{count}}T`},spoolbuddy:{nav:{dashboard:`Übersicht`,ams:`AMS`,inventory:`Inventar`,writeTag:`Schreiben`,settings:`Einstellungen`},status:{nfcReady:`NFC bereit`,nfcOff:`NFC aus`,offline:`Offline`,online:`Online`,noPrinters:`Keine Drucker`,deviceOffline:`Gerät offline`,waitingConnection:`Warte auf Geräteverbindung...`,systemReady:`System bereit`,status:`Status`},dashboard:{readyToScan:`Bereit zum Scannen`,idleMessage:`Spule auf die Waage legen zum Identifizieren`,nfcHint:`NFC-Tag wird automatisch gelesen`,device:`Gerät`,syncWeight:`Gewicht sync.`,weightSynced:`Synchronisiert!`,unknownTag:`Unbekannter Tag`,newTag:`Neuer Tag erkannt`,onScale:`auf der Waage`,linkSpool:`Mit Spule verknüpfen`,linkTagTitle:`Tag mit Spule verknüpfen`,linkTag:`Tag verknüpfen`,selectSpool:`Spule zum Verknüpfen auswählen:`,noUntagged:`Keine Spulen ohne Tags gefunden`,tagDetected:`Tag erkannt`,noTag:`Kein Tag`,tagId:`Tag`,grossWeight:`Bruttogewicht`,spoolSize:`Spulengröße`,close:`Schließen`,currentSpool:`Aktuelle Spule`,plateReady:`Druckplatte bereit: {{name}}`,plateReadyLabel:`Bereit-zum-Quittieren-Liste`,plateClearAction:`Frei`,plateClearedToast:`Druckplatte als geleert markiert`,plateClearFailed:`Druckplatte konnte nicht als geleert markiert werden`},modal:{spoolDetected:`Spule erkannt`,assignToAms:`AMS zuweisen`,syncWeight:`Gewicht sync.`,weightSynced:`Synchronisiert!`,syncing:`Synchronisiere...`,newTagDetected:`Neuer Tag erkannt`,addToInventory:`Zum Inventar hinzufügen`,assignToAmsTitle:`AMS zuweisen`,selectSlot:`Slot auswählen`,assign:`Zuweisen`,assigning:`Zuweisen...`,assignSuccess:`Zugewiesen!`,assignPendingInsert:`Zugewiesen. Slot wird beim Einsetzen der Spule konfiguriert.`,assignError:`Fehler beim Zuweisen. Bitte erneut versuchen.`,noPrinterSelected:`Drucker auswählen...`,noAmsDetected:`Kein AMS an diesem Drucker erkannt`,slot:`Slot`},weight:{noReading:`Kein Messwert`,stable:`Stabil`,measuring:`Messen...`,tare:`Tarieren`,calibrate:`Kalibrieren`},spool:{remaining:`Verbleibend`,material:`Material`,brand:`Marke`,color:`Farbe`,coreWeight:`Kern`,labelWeight:`Etikett`,scaleWeight:`Waage`,netWeight:`Netto`,lastUsed:`Zuletzt verwendet`},ams:{noData:`Kein AMS erkannt`,connectAms:`AMS anschließen um Filament-Slots zu sehen`,noPrinter:`Kein Drucker ausgewählt`,selectPrinter:`Drucker in der oberen Leiste auswählen`,printerDisconnected:`Drucker getrennt`,humidity:`Feuchtigkeit`,level:`Stufe`,active:`Aktiv`,slot:`Slot`,empty:`Leer`},inventory:{search:`Spulen suchen...`,empty:`Keine Spulen im Inventar`,noResults:`Keine passenden Spulen`,spools:`Spulen`,addSpool:`Spule hinzufügen`},settings:{tabDevice:`Gerät`,tabDisplay:`Anzeige`,tabScale:`Waage`,tabUpdates:`Aktualisierungen`,nfcReader:`NFC-Leser`,type:`Typ`,connection:`Verbindung`,notConnected:`N/V`,deviceInfo:`Geräteinfo`,hostname:`Host`,uptime:`Betriebszeit`,systemConfig:`Backend & Auth`,backendUrl:`Bambuddy Backend URL`,apiToken:`API-Token`,apiTokenPlaceholder:`API-Token eingeben`,saveConfig:`Konfiguration speichern`,systemQueued:`Konfiguration in Warteschlange.`,nfcDiagnostic:`NFC-Diagnose`,scaleDiagnostic:`Waagen-Diagnose`,readTagDiagnostic:`Tag-Lese-Diagnose`,testNfc:`Leser testen`,testScale:`Genauigkeit testen`,testReadTag:`Tag lesen`,systemFieldsRequired:`Backend-URL ist erforderlich.`,brightness:`Helligkeit`,saved:`Gespeichert`,noBacklight:`Keine DSI-Hintergrundbeleuchtung erkannt. Helligkeitssteuerung erfordert ein DSI-Display.`,screenBlank:`Bildschirm-Abschaltzeit`,screenBlankDesc:`Bildschirm schaltet sich nach Inaktivität ab. Zum Aufwecken berühren.`,displayNote:`Helligkeit wird als Software-Filter angewendet.`,scaleCalibration:`Waagen-Kalibrierung`,currentWeight:`Aktuelles Gewicht`,tareOffset:`Tara`,calFactor:`Faktor`,knownWeight:`Bekanntes Gewicht`,calStep1:`Alle Gegenstände von der Waage entfernen und Nullpunkt setzen.`,calStep2:`Bekanntes Gewicht auf die Waage legen.`,setZero:`Nullpunkt setzen`,calibrateNow:`Kalibrieren`,calibrated:`Kalibriert`,tareSet:`Tara-Befehl gesendet. Warte auf Gerät...`,tareComplete:`Tara abgeschlossen!`,tareTimedOut:`Tara-Zeitüberschreitung — läuft der SpoolBuddy-Daemon?`,tareFailed:`Tara-Befehl fehlgeschlagen`,zeroSet:`Nullpunkt gesetzt. Bekanntes Gewicht auf die Waage legen.`,calibrationDone:`Kalibrierung abgeschlossen!`,calibrationFailed:`Kalibrierung fehlgeschlagen`,lastCalibrated:`Zuletzt kalibriert`,stable:`Stabil`,settling:`Stabilisierung...`,firmware:`Firmware`,scale:`Waage`,noDevice:`Kein SpoolBuddy-Gerät gefunden`,daemonVersion:`Daemon-Version`,currentVersion:`Aktuell`,versionPending:`Warte auf Daemon...`,checking:`Prüfe...`,checkUpdates:`Nach Updates suchen`,updateAvailable:`Update verfügbar`,updateInstructions:`Update per SSH: SpoolBuddy-Installationsskript ausführen.`,upToDate:`Aktuell`,includeBeta:`Beta-Versionen einschließen`},writeTag:{tabExisting:`Vorhandene Spule`,tabNew:`Neue Spule`,tabReplace:`Tag ersetzen`,searchPlaceholder:`Suche nach Material, Farbe, Marke...`,noUntaggedSpools:`Keine Spulen ohne Tags`,noTaggedSpools:`Keine Spulen mit Tags`,selectSpool:`Spule auswählen, dann einen NTAG auf den Leser legen`,placeTag:`NTAG auf den Leser legen`,tagReady:`Tag erkannt — bereit zum Schreiben`,writeTag:`Tag beschreiben`,replaceTag:`Tag ersetzen`,writing:`Tag wird beschrieben...`,waiting:`Warte auf SpoolBuddy...`,writeSuccess:`Tag erfolgreich beschrieben!`,writeFailed:`Schreiben fehlgeschlagen`,queueFailed:`Schreibbefehl konnte nicht eingereiht werden`,tryAgain:`Erneut versuchen`,cancel:`Abbrechen`,replaceWarning:`Alter Tag wird getrennt. Neuer Tag ersetzt ihn.`,deviceOffline:`SpoolBuddy ist offline`,material:`Material`,colorName:`Farbname`,color:`Farbe`,brand:`Marke`,weight:`Gewicht (g)`,createSpool:`Spule erstellen`,creating:`Wird erstellt...`,spoolCreated:`Spule erstellt! Bereit zum Schreiben.`,createFailed:`Spule konnte nicht erstellt werden`,incompleteDataWarning:`Tag mit unvollständigen Spoolman-Daten geschrieben`},quickMenu:{printerPower:`Drucker-Strom`,systemControls:`System`,restartDaemon:`Daemon neustarten`,restartBrowser:`Browser neustarten`,reboot:`Neustart`,shutdown:`Herunterfahren`,swipeToClose:`Nach unten wischen zum Schließen`,confirmTitle:`Bestätigen`,confirmShutdown:`Möchten Sie das SpoolBuddy wirklich herunterfahren? Sie benötigen physischen Zugang, um es wieder einzuschalten.`,confirmReboot:`Möchten Sie das SpoolBuddy wirklich neu starten?`,confirmRestartDaemon:`SpoolBuddy-Daemon neustarten? NFC und Waage sind vorübergehend nicht verfügbar.`,confirmRestartBrowser:`Kiosk-Browser neustarten? Das Display wird kurz schwarz.`,confirm:`Bestätigen`,confirmPlugOn:`{{name}} einschalten?`,confirmPlugOff:`{{name}} ausschalten?`,turnOn:`Einschalten`,turnOff:`Ausschalten`}},diagnostic:{modalTitle:`Verbindungsdiagnose — {{name}}`,running:`Diagnose läuft...`,runningElapsed:`Diagnose läuft... ({{elapsed}}s)`,waitingForReportHint:`Warten darauf, dass der Drucker einen Statusbericht sendet — kann bis zu {{max}} Sekunden dauern.`,runFailed:`Diagnose konnte nicht ausgeführt werden: {{error}}`,retry:`Erneut ausführen`,runButton:`Diagnose ausführen`,sectionTitle:`Verbindungsdiagnose`,sectionDescription:`Prüfen, warum ein Drucker keine Verbindung herstellt oder nicht druckt — Port-Erreichbarkeit, LAN-Entwicklermodus, Docker-Netzwerkmodus und Zugangsdaten.`,noPrinters:`Keine Drucker konfiguriert.`,overall:{ok:`Keine Probleme gefunden — die Druckerverbindung sieht gut aus.`,warnings:`Der Drucker sollte funktionieren, aber einige Punkte erfordern Aufmerksamkeit.`,problems:`Probleme gefunden, die erklären, warum der Drucker keine Verbindung herstellt oder nicht druckt.`},check:{port_mqtt:{title:`Steuerungsport (MQTT 8883)`,pass:`Erreichbar — der Drucker akzeptiert Steuerungsverbindungen.`,fail:`Port 8883 ist nicht erreichbar. Der Drucker ist ausgeschaltet, hat eine andere IP-Adresse oder eine Firewall blockiert ihn. Überprüfen Sie die Drucker-IP und dass nichts Port 8883 blockiert.`},port_ftps:{title:`Dateiübertragungsport (FTPS 990)`,pass:`Erreichbar — das Senden von Druckdateien funktioniert.`,warn:`Port 990 ist nicht erreichbar. Die Überwachung funktioniert möglicherweise weiterhin, aber das Senden von Drucken an den Drucker schlägt fehl. Stellen Sie sicher, dass Port 990 nicht blockiert ist.`},external_storage:{title:`Gesendete Dateien auf externem Speicher speichern (Installationsschritt 4)`,pass:`Der Drucker meldet, dass diese Option aktiv ist — gesendete Dateien werden auf der SD-Karte gespeichert und Archive enthalten Vorschaubilder und Slicer-Metadaten.`,fail:`Der Drucker meldet, dass diese Option deaktiviert ist. Aktivieren Sie "Gesendete Dateien auf externem Speicher speichern" — bei neuer Firmware (P2S 01.02 / Bambu Studio 2.6+) liegt der Schalter in den Druckeinstellungen des Druckers, bei älteren Versionen im Geräte-Tab von Bambu Studio / OrcaSlicer. Ohne diese Option fehlen jedem archivierten Druck Vorschaubild und Slicer-Metadaten.`,skip:`Nicht geprüft — eine aktive MQTT-Verbindung ist erforderlich. Bei älteren Slicern, in denen diese Einstellung nur im Slicer existiert, meldet sie der Drucker nicht — diese Prüfung besteht auch dann, wenn die Option deaktiviert ist. Prüfen Sie Installationsschritt 4 in diesem Fall manuell.`,skip_unsupported_model:`Dieses Modell hat einen SD-Slot, aber keine Möglichkeit, die Option zu aktivieren — die aktuelle P1-Firmware zeigt den Schalter in Bambu Studio nicht an und der Drucker hat kein Display. Hier gibt es nichts zu beheben; archivierten Drucken fehlen möglicherweise Vorschaubilder und Slicer-Metadaten, bis Bambu Lab dies per Firmware unterstützt.`},port_rtsps:{title:`Kameraport ({{protocol}} {{port}})`,pass:`Erreichbar — der Kamerastream funktioniert.`,warn:`Port {{port}} ist nicht erreichbar. Die Live-Kameraansicht funktioniert nicht. Dies betrifft das Drucken nicht.`},network_mode:{title:`Docker-Netzwerkmodus`,pass:`Läuft im Host-Netzwerkmodus.`,warn:`Bambuddy läuft im Docker-Bridge-Netzwerkmodus. Die Druckererkennung und der virtuelle Drucker benötigen den Host-Netzwerkmodus — erstellen Sie den Container mit "network_mode: host" neu.`,skip:`Läuft nicht in Docker — nicht zutreffend.`},subnet:{title:`Netzwerk-Subnetz`,pass:`Drucker und Bambuddy befinden sich im selben Subnetz.`,warn:`Der Drucker ({{printer_ip}}) und Bambuddy ({{host_ip}}) befinden sich in unterschiedlichen Subnetzen. Sie können sich möglicherweise nicht erreichen, sofern kein Routing zwischen den Subnetzen konfiguriert ist.`,skip:`Subnetz konnte nicht ermittelt werden — übersprungen.`},mqtt_auth:{title:`Drucker-Zugangsdaten`,pass:`Der Drucker hat die Verbindung akzeptiert.`,fail:`Der Drucker ist erreichbar, aber Bambuddy ist nicht mit ihm verbunden. Höchstwahrscheinlich ist der Zugangscode oder die Seriennummer falsch — der Zugangscode ändert sich bei jedem Umschalten von „Nur LAN“ oder des Entwicklermodus, kopieren Sie ihn also erneut vom Druckerbildschirm. Ein Drucker, der gerade neu startet oder bereits die maximale Anzahl gleichzeitiger Verbindungen erreicht hat, sieht genauso aus.`,fail_auth_rejected:`Der Drucker hat die Zugangsdaten von Bambuddy abgelehnt. Der Zugangscode oder die Seriennummer ist falsch — der Zugangscode ändert sich bei jedem Umschalten von „Nur LAN“ oder des Entwicklermodus. Kopieren Sie ihn erneut vom Druckerbildschirm und speichern Sie ihn in den Druckereinstellungen.`,skip:`Nicht geprüft — der Drucker konnte nicht erreicht werden.`},developer_mode:{title:`LAN-Entwicklermodus`,pass:`Der Entwicklermodus ist aktiviert.`,fail:`Der Entwicklermodus ist am Drucker AUS. Aktivieren Sie ihn in den LAN-Einstellungen des Druckers — und bestätigen Sie mit OK. Ohne ihn starten Drucke nicht.`,skip:`Konnte nicht geprüft werden — erfordert eine aktive Verbindung zum Drucker.`},printer_publishing:{title:`Drucker sendet Statusmeldungen`,pass:`Der Drucker sendet Statusmeldungen — AMS, Filamente und K-Profile werden korrekt zum Slicer gespiegelt.`,fail:`Der MQTT-Broker hat die Verbindung akzeptiert, der Drucker sendet aber keine Statusmeldungen. Fast immer liegt eine falsche oder falsch geschriebene Seriennummer vor — das Topic device//api/v1/metrics para la supervisión con Prometheus/Grafana.`,bearerTokenOptional:`Bearer Token (opcional)`,bearerTokenHint:`Si se establece, las solicitudes deben incluir Authorization: Bearer `,metricsConnectionStatus:`Estado de la conexión`,metricsPrinterState:`Estado de la impresora (inactiva/imprimiendo/etc.)`,metricsPrintProgress:`Progreso de la impresión 0-100%`,metricsBedTemp:`Temperatura de la cama`,metricsNozzleTemp:`Temperatura de la boquilla`,metricsPrintsTotal:`Total de impresiones por resultado`,metricsMore:`...y más (capas, ventiladores, cola, uso de filamento)`,smartPlugsDescription:`Conecte enchufes inteligentes (Tasmota o Home Assistant) para automatizar el control de la alimentación y realizar el seguimiento del consumo de energía de sus impresoras.`,allOn:`Encender todo`,allOff:`Apagar todo`,addSmartPlug:`Añadir enchufe inteligente`,energySummary:`Resumen de energía`,currentPower:`Potencia actual`,plugsOnline:`{{reachable}}/{{total}} enchufes en línea`,today:`Hoy`,yesterday:`Ayer`,total:`Total`,enablePlugsForSummary:`Active enchufes para ver el resumen de energía`,addNotificationProvider:`Añadir`,systemBadge:`(Sistema)`,creating:`Creando...`,changing:`Cambiando...`,deleteUserAndItems:`Eliminar el usuario Y sus elementos`,deleteUserKeepItems:`Eliminar el usuario, conservar los elementos (quedan sin propietario)`,ok:`Aceptar`,twoFa:{totpTitle:`Aplicación de autenticación (TOTP)`,totpDesc:`Use una aplicación de autenticación como Google Authenticator, Aegis o Authy.`,emailOtpTitle:`OTP por correo`,emailOtpDesc:`Enviar un código de un solo uso a {{email}} cuando inicie sesión.`,emailOtpNoEmail:`Añada una dirección de correo a su cuenta para habilitar este método.`,addEmailFirst:`Su cuenta no tiene dirección de correo. Pida a un administrador que añada una antes de activar el OTP por correo.`,setupTotp:`Configurar la aplicación de autenticación`,setupAuthApp:`Configurar la aplicación de autenticación`,setupInstructions:`Escanee el código QR de abajo con su aplicación de autenticación y luego confirme con un código.`,manualEntry:`¿No puede escanear? Introduzca este secreto manualmente:`,scannedContinue:`He escaneado el código — continuar`,enterCodeToConfirm:`Introduzca el código de 6 dígitos de su aplicación de autenticación para confirmar la configuración.`,activate:`Activar`,disableTotp:`Desactivar el autenticador`,disableConfirmHint:`Introduzca un código TOTP válido o un código de respaldo para desactivar el autenticador.`,totpDisabled:`Aplicación de autenticación desactivada.`,emailOtpEnabled:`OTP por correo activado.`,emailOtpDisabled:`OTP por correo desactivado.`,smtpRequired:`Configure y pruebe primero los ajustes de SMTP.`,invalidCode:`Código no válido. Inténtelo de nuevo.`,enableEmailOtp:`Activar el OTP por correo`,disableEmailOtp:`Desactivar el OTP por correo`,emailSetupEnterCode:`Se ha enviado un código de verificación a su dirección de correo. Introdúzcalo a continuación para confirmar que es el propietario de este buzón.`,verifyAndEnable:`Verificar y activar`,emailDisablePasswordHint:`Introduzca la contraseña de su cuenta para confirmar la desactivación del OTP por correo.`,passwordPlaceholder:`Introduzca su contraseña`,backupCodesTitle:`Guarde sus códigos de respaldo`,backupCodesWarning:`Guarde estos códigos en un lugar seguro. Cada código solo se puede usar una vez y no se volverán a mostrar.`,backupCodesRemaining:`Quedan {{count}} códigos de respaldo`,savedCodes:`He guardado mis códigos`,regenBackup:`Regenerar los códigos de respaldo`,regenBackupHint:`Introduzca su código TOTP actual para generar 10 códigos de respaldo nuevos. Todos los códigos de respaldo existentes quedarán invalidados.`,newBackupCodes:`Nuevos códigos de respaldo`,linkedAccounts:`Cuentas de SSO vinculadas`,linkedAccountsDesc:`Estos proveedores de identidad externos están vinculados a su cuenta.`,oidcUnlinked:`Cuenta desvinculada.`},sessionPolicy:{title:`Política de sesión`,description:`Duración máxima de sesión para nuevos inicios de sesión. Los tokens ya emitidos conservan su caducidad original.`,preset24h:`24 horas`,preset7d:`7 días`,preset30d:`30 días`,customHoursLabel:`Duración de sesión personalizada en horas`,hoursSuffix:`horas`,warning:`Las sesiones más largas reducen la protección de cierre automático. Recomendado solo para implementaciones de usuario único en entornos de confianza.`},oidc:{title:`Proveedores SSO / OIDC`,desc:`Configure proveedores de OpenID Connect para permitir el inicio de sesión único mediante proveedores de identidad externos.`,addProvider:`Añadir proveedor`,newProvider:`Nuevo proveedor`,empty:`Aún no hay proveedores OIDC configurados.`,created:`Proveedor creado.`,updated:`Proveedor actualizado.`,deleted:`Proveedor eliminado.`,refreshIcon:`Actualizar icono`,removeIcon:`Quitar icono`,iconRefreshed:`Icono actualizado.`,iconRemoved:`Icono eliminado.`,iconFetchFailed:`No se pudo obtener el icono de la URL del proveedor.`,deleteTitle:`Eliminar proveedor`,deleteMessage:`¿Eliminar "{{name}}"? Todas las cuentas de usuario vinculadas se desconectarán.`,form:{name:`Nombre visible`,issuerUrl:`URL del emisor`,clientId:`ID de cliente`,clientSecret:`Secreto de cliente`,scopes:`Ámbitos`,iconUrl:`URL del icono (opcional)`,enabled:`Activado`,autoCreate:`Crear usuarios automáticamente`,autoCreateDesc:`Crear automáticamente una cuenta local en el primer inicio de sesión.`,autoLink:`Vincular cuentas existentes automáticamente`,autoLinkDesc:`Vincular cuentas locales existentes haciendo coincidir el correo en el primer inicio de sesión.`,secretHint:`dejar en blanco para conservar el actual`,secretPlaceholder:`nuevo secreto`,emailClaim:`Claim de correo`,emailClaimDesc:`Claim de JWT usado como identidad de correo. Use «preferred_username» o «upn» para Azure Entra ID (que no envía email_verified). Use solo nombres de claim de confianza.`,emailClaimPlaceholder:`correo`,emailClaimCustomClaimAutoLinkWarning:`Los claims personalizados solo son seguros para la vinculación automática cuando el valor lo administra el inquilino (p. ej. upn / preferred_username de Azure Entra ID). No active la vinculación automática si su IdP permite a los usuarios autoasignarse este claim.`,requireEmailVerified:`Requerir correo verificado`,requireEmailVerifiedDesc:`Aceptar el claim de correo solo cuando el proveedor lo marca como verificado.`,requireEmailVerifiedWarning:`Advertencia: el correo se aceptará incluso sin verificación. Úselo solo con proveedores de confianza.`,requireEmailVerifiedAutoLink:`Desactive primero la vinculación automática para cambiar este ajuste.`,defaultGroup:`Grupo predeterminado`,defaultGroupDesc:`Grupo asignado a los usuarios creados automáticamente. Si no se establece, se usa Visores como alternativa.`,defaultGroupViewersFallback:`Visores (predeterminado)`,autologin:`Inicio automático`,autologinDesc:`Redirigir a los visitantes no autenticados directamente a este proveedor. Solo un proveedor puede llevar esta marca.`}},encryption:{title:`Estado del cifrado de MFA`,enabledFromEnv:`Cifrado en reposo activado (clave de la variable de entorno MFA_ENCRYPTION_KEY)`,enabledFromFile:`Cifrado en reposo activado (clave cargada del directorio de datos)`,enabledGenerated:`Cifrado en reposo activado con una clave autogenerada`,notConfigured:`Cifrado en reposo no configurado`,notConfiguredDesc:`Los secretos TOTP y los client_secrets de OIDC se almacenan en texto plano. Establezca MFA_ENCRYPTION_KEY o reinicie Bambuddy con un directorio de datos con permisos de escritura para generar una automáticamente.`,allEncrypted:`Todos los secretos de MFA están cifrados en reposo.`,legacyRowsLabel:`Filas heredadas en texto plano`,encryptedRowsLabel:`Filas cifradas`,legacyRowsWarning:`Se detectaron {{count}} fila(s) heredada(s) en texto plano. Vuelva a guardar el proveedor OIDC o vuelva a registrar la aplicación de autenticación del usuario para migrar al almacenamiento cifrado.`,backupHint:`La clave autogenerada se almacena en DATA_DIR/.mfa_encryption_key y se incluye en los ZIP de copia de seguridad local. Mantenga sus copias de seguridad seguras o establezca MFA_ENCRYPTION_KEY de forma explícita.`,decryptionBrokenTitle:`Falta la clave de cifrado`,decryptionBrokenError:`{{count}} registro(s) cifrado(s) no se pueden descifrar porque la clave de cifrado ya no está disponible. Restaure la MFA_ENCRYPTION_KEY anterior o DATA_DIR/.mfa_encryption_key para recuperarlos.`,migrationErrorWarning:`{{count}} fila(s) heredada(s) no se pudieron volver a cifrar al iniciar. Revise los registros del servidor y reinicie Bambuddy para reintentarlo.`},pipelineLimits:{title:`Límites de pipelines del cortador`,maxCopiesLabel:`Copias máximas por ejecución`,maxCopiesDesc:`Límite superior de copias que los operadores pueden solicitar al ejecutar una pipeline. El límite máximo del servidor es 1000.`},pipelines:{title:`Pipelines del Cortador`,subtitle:`Paquetes reutilizables de preajustes (impresora + proceso + filamentos + tipo de placa). Guarda uno desde el diálogo Cortar y aplícalo con un clic al siguiente archivo.`,loading:`Cargando pipelines…`,loadError:`No se pudieron cargar las pipelines.`,confirmDelete:`¿Eliminar esta pipeline? Esto no se puede deshacer.`,staleWarning:`Uno o más preajustes referenciados ya no existen. Vuelve a guardar esta pipeline desde el diálogo Cortar para corregirla.`,empty:{title:`Aún no hay pipelines.`,howto:`Abre el diálogo Cortar para cualquier archivo, elige impresora / proceso / filamentos / placa, y haz clic en "Guardar como pipeline". Tus pipelines guardadas aparecerán aquí.`},field:{name:`Nombre de la pipeline`,description:`Descripción`,targetPrinter:`Impresora de destino`,noTarget:`— Sin destino —`,targetKind:`Tipo de destino`,targetKindSpecific:`Impresora específica`,targetKindClass:`Clase de impresora`,targetModelClass:`Modelo de impresora`,fanoutStrategy:`Estrategia de distribución`,fanout:{max_parallel:`Máximo paralelo — distribuir entre cualquier impresora libre coincidente`,round_robin:`Round robin — alternar entre impresoras elegibles`,fill_one_first:`Llenar una primero — fijar todas las copias a una impresora`},fanoutShort:{max_parallel:`paralelo`,round_robin:`round robin`,fill_one_first:`primero uno`}},action:{save:`Guardar`,cancel:`Cancelar`,rename:`Renombrar`,delete:`Eliminar`},slot:{printer:`Impresora`,process:`Proceso`,filament:`Filamento`,filamentN:`Filamento {{n}}`,filamentAll:`Todos los {{n}} slots`,bed:`Placa`},group:{profiles:`Perfiles`,filaments:`Filamentos`},searchPlaceholder:`Buscar pipelines…`,filterTargetType:`Filtrar por tipo de destino`,filterTarget:`Filtrar por destino`,filter:{all:`Todos los destinos`,noTarget:`Sin destino`,count:`{{shown}} / {{total}}`,noMatches:`Ninguna pipeline coincide con los filtros actuales.`},toast:{saved:`Pipeline guardada`,saveFailed:`Error al guardar`,deleted:`Pipeline eliminada`,deleteFailed:`Error al eliminar`},noTargetHint:`Establece una impresora de destino para ejecutar`,noTargetWarning:`Establece una impresora de destino antes de ejecutar esta pipeline.`,runs:{lastRun:`Última ejecución`,status:{queued:`en cola`,slicing:`cortando`,dispatching:`enviando`,in_progress:`imprimiendo`,completed:`completada`,failed:`fallida`,partial_failure:`fallo parcial`,cancelled:`cancelada`}}}},notification:{printStarted:{title:`Impresión iniciada`,body:`{{printer}}: {{filename}} ha empezado a imprimirse`},printCompleted:{title:`Impresión completada`,body:`{{printer}}: {{filename}} se completó correctamente`},printFailed:{title:`Impresión fallida`,body:`{{printer}}: {{filename}} ha fallado`},printStopped:{title:`Impresión detenida`,body:`{{printer}}: {{filename}} se detuvo`},printProgress:{title:`Progreso de la impresión`,body:`{{printer}}: {{filename}} está al {{percent}}%`},printerOffline:{title:`Impresora desconectada`,body:`{{printer}} está desconectada`},printerError:{title:`Error de la impresora`,body:`{{printer}}: {{error}}`},filamentLow:{title:`Filamento bajo`,body:`{{printer}}: el filamento se está agotando`},maintenanceDue:{title:`Mantenimiento pendiente`,body:`{{printer}}: {{items}} necesitan atención`}},errors:{generic:`Algo salió mal`,networkError:`Error de red. Compruebe su conexión.`,notFound:`No encontrado`,unauthorized:`No autorizado`,serverError:`Error del servidor`,validationError:`Compruebe los datos introducidos`,printerConnectionFailed:`Error al conectar con la impresora`,saveFailed:`Error al guardar los cambios`,deleteFailed:`Error al eliminar`,loadFailed:`Error al cargar los datos`},hmsErrors:{title:`Errores - {{name}}`,noErrors:`No hay errores`,viewOnWiki:`Ver en la wiki de Bambu Lab`,mqttVerifyFailedRemedy:`Activa el modo desarrollador en la impresora, reinicia la impresora y vuelve a iniciar el trabajo.`,unknownCode:`Código HMS desconocido — consulta la wiki de Bambu Lab para más detalles.`,clearInstructions:`Borre los errores en la impresora para descartarlos aquí.`,clearErrors:`Borrar errores`,clearSuccess:`Errores HMS borrados`,clearFailed:`Error al borrar los errores HMS`,actionSuccess:`Acción enviada a la impresora`,actionFailed:`No se pudo enviar la acción`,runoutExpectedSlot:`El filamento se agotó en {{ranOut}}. La impresora ahora espera filamento compatible en {{expected}}. Inserta una bobina en {{expected}} y luego selecciona Reintentar.`,runoutExpectedSlotOnly:`La impresora está esperando filamento compatible en {{expected}}. Inserta una bobina ahí y luego selecciona Reintentar.`,runoutSlotUnknown:`El filamento se agotó y la impresión está en pausa. Bambuddy no pudo determinar qué slot espera ahora la impresora — revisa la pantalla de la impresora para ver el slot solicitado.`,actions:{RESUME_PRINTING:`Reanudar impresión`,RESUME_PRINTING_DEFECTS:`Reanudar (defectos aceptables)`,RESUME_PRINTING_PROBELM_SOLVED:`Reanudar (problema resuelto)`,STOP_PRINTING:`Detener impresión`,CHECK_ASSISTANT:`Ver asistente`,FILAMENT_EXTRUDED:`Filamento extruido, continuar`,RETRY_FILAMENT_EXTRUDED:`Aún no extruido, reintentar`,CONTINUE:`Finalizado, continuar`,LOAD_VIRTUAL_TRAY:`Cargar filamento`,OK_BUTTON:`OK`,FILAMENT_LOAD_RESUME:`Filamento cargado, reanudar`,JUMP_TO_LIVEVIEW:`Ver en vivo`,NO_REMINDER_NEXT_TIME:`No recordar la próxima vez`,REFRESH_NOZZLE:`Volver a comprobar`,IGNORE_NO_REMINDER_NEXT_TIME:`Ignorar y no recordar`,IGNORE_RESUME:`Ignorar y reanudar`,PROBLEM_SOLVED_RESUME:`Problema resuelto, reanudar`,TURN_OFF_FIRE_ALARM:`Entendido, apagar alarma de incendio`,RETRY_PROBLEM_SOLVED:`Reintentar (problema resuelto)`,CANCLE:`Cancelar`,STOP_DRYING:`Detener secado`,PROCEED:`Continuar`,OK_JUMP_RACK:`OK`,ABORT:`Cancelar`,DISABLE_PURIFICATION:`Desactivar purificación para esta impresión`,DONT_REMIND_NEXT_TIME:`No recordarme`,DBL_CHECK_CANCEL:`Cancelar`,DBL_CHECK_DONE:`Hecho`,DBL_CHECK_RETRY:`Reintentar`,DBL_CHECK_RESUME:`Reanudar`,DBL_CHECK_OK:`Confirmar`,REMOVE_CLOSE_BTN:`Cerrar`}},mqttDebug:{title:`Registro de depuración MQTT`,searchPlaceholder:`Buscar tema o carga útil...`,noMessages:`Aún no se han registrado mensajes`,startLoggingHint:`Haga clic en «Iniciar registro» para empezar a capturar mensajes MQTT`,noMessagesMatch:`Ningún mensaje coincide con su filtro`,adjustFilterHint:`Pruebe a ajustar su búsqueda o los criterios del filtro`,incoming:`Entrante`,outgoing:`Saliente`,loggingStopped:`Registro detenido`,loggingActive:`Registro activo - los mensajes se actualizarán automáticamente`,startLogging:`Iniciar registro`,stopLogging:`Detener registro`,clearLog:`Borrar registro`,topic:`Tema`,timestamp:`Marca de tiempo`,direction:`Dirección`,all:`Todos`},printerFiles:{title:`Gestor de archivos`,storageUsed:`Usado:`,storageFree:`Libre:`,filterPlaceholder:`Filtrar archivos...`,deleteButton:`Eliminar`,deleteFiles:`Eliminar {{count}} archivos`,deleteFileConfirm:`¿Eliminar "{{name}}"? Esto no se puede deshacer.`,deleteFilesConfirm:`¿Eliminar {{count}} archivos seleccionados? Esto no se puede deshacer.`,noFiles:`No hay archivos en la impresora`,loadingFiles:`Cargando archivos...`,failedToLoad:`Error al cargar los archivos`,toast:{filesDeleted:`Se eliminaron {{count}} archivo(s)`,deleteFailed:`Error al eliminar: {{error}}`}},confirm:{delete:`¿Está seguro de que desea eliminar esto?`,unsavedChanges:`Tiene cambios sin guardar. ¿Está seguro de que desea salir?`,clearQueue:`¿Está seguro de que desea vaciar la cola?`},login:{title:`Inicio de sesión en Bambuddy`,subtitle:`Inicie sesión en su cuenta`,username:`Nombre de usuario`,usernamePlaceholder:`Introduzca su nombre de usuario`,usernameOrEmail:`Nombre de usuario o correo`,usernameOrEmailPlaceholder:`Nombre de usuario o @ correo`,password:`Contraseña`,passwordPlaceholder:`Introduzca su contraseña`,signIn:`Iniciar sesión`,signingIn:`Iniciando sesión...`,rememberMe:`Recordarme`,forgotPassword:`¿Olvidó su contraseña?`,autologinFailed:`El inicio de sesión SSO automático falló. Elija un proveedor abajo para continuar.`,localDisabledNotice:`El inicio de sesión local está deshabilitado. Use uno de los proveedores SSO de abajo.`,loginSuccess:`Sesión iniciada correctamente`,loginFailed:`Error al iniciar sesión`,enterCredentials:`Introduzca el nombre de usuario y la contraseña`,enterEmail:`Introduzca su dirección de correo`,oidcLoginFailed:`Error en el inicio de sesión con OIDC`,oidcErrors:{providerError:`El proveedor de identidad devolvió un error`,missingParameters:`A la respuesta de OIDC le faltan parámetros obligatorios`,invalidState:`El estado de OIDC no es válido o ya se ha usado`,stateExpired:`La sesión de inicio de sesión con OIDC ha caducado — inténtelo de nuevo`,providerNotFound:`Proveedor OIDC no encontrado`,discoveryFailed:`Error al obtener el documento de descubrimiento de OIDC`,invalidDiscovery:`El documento de descubrimiento de OIDC no es válido`,networkError:`Error de red durante el intercambio de tokens de OIDC`,badResponse:`Respuesta inesperada durante el intercambio de tokens de OIDC`,noIdToken:`El proveedor OIDC no devolvió un token de ID`,validationFailed:`Error en la validación del token de OIDC`,nonceMismatch:`Discrepancia de nonce de OIDC — posible ataque de repetición`,missingSubClaim:`Al token de OIDC le falta el claim sub`,noLinkedAccount:`Ninguna cuenta local está vinculada a esta identidad de OIDC`,accountInactive:`Su cuenta está inactiva`,userResolutionFailed:`Error al resolver su cuenta`,internalError:`Se produjo un error interno durante el inicio de sesión con OIDC`,tokenExchangeFailed:`Error en el intercambio de tokens de OIDC`},forgotPasswordTitle:`Contraseña olvidada`,forgotPasswordMessage:`Si ha olvidado su contraseña, póngase en contacto con el administrador de su sistema para restablecerla.`,forgotPasswordEmailMessage:`Introduzca su dirección de correo y le enviaremos una contraseña nueva.`,emailAddress:`Dirección de correo`,emailPlaceholder:`su.correo@ejemplo.com`,cancel:`Cancelar`,sending:`Enviando...`,sendResetEmail:`Enviar correo de restablecimiento`,howToReset:`Cómo restablecer su contraseña:`,resetStep1:`Póngase en contacto con su administrador de Bambuddy`,resetStep2:`Pídale que restablezca su contraseña en la gestión de usuarios`,resetStep3:`Puede establecerle una nueva contraseña temporal`,resetStep4:`Inicie sesión con la nueva contraseña y cámbiela en Ajustes`,gotIt:`Entendido`,resetPassword:{title:`Establecer nueva contraseña`,subtitle:`Introduzca y confirme su nueva contraseña a continuación.`,newPassword:`Nueva contraseña`,newPasswordPlaceholder:`Al menos 8 caracteres`,confirmPassword:`Confirmar contraseña`,confirmPasswordPlaceholder:`Repita la nueva contraseña`,saving:`Guardando…`,submit:`Establecer nueva contraseña`,backToLogin:`Volver al inicio de sesión`,passwordsDoNotMatch:`Las contraseñas no coinciden`,passwordTooShort:`La contraseña debe tener al menos 8 caracteres`,resetFailed:`Error al restablecer la contraseña. Es posible que el enlace haya caducado.`},twoFA:{title:`Autenticación de dos factores`,subtitle:`Su cuenta está protegida con 2FA. Introduzca el código de verificación a continuación.`,methodAuthenticator:`Aplicación de autenticación`,methodEmail:`Código por correo`,methodBackup:`Código de respaldo`,instructionsTotp:`Abra su aplicación de autenticación e introduzca el código de 6 dígitos para Bambuddy.`,instructionsEmail:`Se ha enviado un código de 6 dígitos a su dirección de correo. Caduca en 10 minutos.`,instructionsEmailNotSent:`Haga clic en el botón de abajo para recibir un código de verificación por correo.`,instructionsBackup:`Introduzca uno de sus códigos de recuperación de respaldo de 8 caracteres. Cada código solo se puede usar una vez.`,sendCodeButton:`Enviar código por correo`,sendingCode:`Enviando...`,resendCode:`Reenviar código`,codeLabel:`Código de verificación`,backupCodeLabel:`Código de respaldo`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`Verificar`,verifyingButton:`Verificando...`,backToLogin:`← Volver al inicio de sesión`,orContinueWith:`o continuar con`,signInWith:`Iniciar sesión con {{provider}}`,enterCode:`Introduzca el código de verificación`,sendCodeFailed:`Error al enviar el código de verificación`,invalidCode:`Código no válido. Inténtelo de nuevo.`}},setup:{title:`Configuración de Bambuddy`,subtitle:`Configure la autenticación para su instancia de Bambuddy`,enableAuth:`Activar la autenticación`,adminAccount:`Cuenta de administrador`,adminAccountDesc:`Si ya existen usuarios administradores, la autenticación se activará usando las cuentas de administrador existentes. Deje los campos de abajo vacíos para usar los administradores existentes, o introduzca nuevas credenciales para crear un nuevo usuario administrador.`,adminUsername:`Nombre de usuario del administrador`,adminPassword:`Contraseña del administrador`,optionalIfAdminExists:`(opcional si existen usuarios administradores)`,adminUsernamePlaceholder:`Introduzca el nombre de usuario del administrador (opcional)`,adminPasswordPlaceholder:`Introduzca la contraseña del administrador (opcional)`,confirmPassword:`Confirmar contraseña`,confirmPasswordPlaceholder:`Confirme la contraseña del administrador`,settingUp:`Configurando...`,completeSetup:`Completar la configuración`,toast:{authEnabledAdminCreated:`Autenticación activada y usuario administrador creado`,authEnabledExistingAdmins:`Autenticación activada usando los usuarios administradores existentes`,setupCompleted:`Configuración completada`,enterBothCredentials:`Introduzca el nombre de usuario y la contraseña del administrador, o deje ambos vacíos para usar los usuarios administradores existentes`,passwordsDoNotMatch:`Las contraseñas no coinciden`,passwordTooShort:`La contraseña debe tener al menos 6 caracteres`}},changePassword:{title:`Cambiar contraseña`,currentPassword:`Contraseña actual`,currentPasswordPlaceholder:`Introduzca la contraseña actual`,newPassword:`Nueva contraseña`,newPasswordPlaceholder:`Introduzca la nueva contraseña (mín. 6 caracteres)`,confirmPassword:`Confirmar nueva contraseña`,confirmPasswordPlaceholder:`Confirme la nueva contraseña`,passwordsDoNotMatch:`Las contraseñas no coinciden`,passwordTooShort:`La contraseña debe tener al menos 6 caracteres`,changing:`Cambiando...`,success:`Contraseña cambiada correctamente`,failed:`Error al cambiar la contraseña`},plateAlert:{title:`¡Impresión en pausa!`,message:`Se han detectado objetos en la cama de impresión. La impresión se ha pausado automáticamente. Despeje la cama y reanude la impresión.`,understand:`Entendido`},camera:{title:`Vista de la cámara`,invalidPrinterId:`ID de impresora no válido`,live:`En directo`,snapshot:`Captura`,restartStream:`Reiniciar la transmisión`,refreshSnapshot:`Actualizar la captura`,fullscreen:`Pantalla completa`,exitFullscreen:`Salir de la pantalla completa`,connectingToCamera:`Conectando con la cámara...`,capturingSnapshot:`Capturando imagen...`,connectionLost:`Conexión perdida`,connectionFailed:`Error de conexión con la cámara`,reconnecting:`Reconectando en {{countdown}} s... (intento {{attempt}}/{{max}})`,reconnectNow:`Reconectar ahora`,cameraUnavailable:`Cámara no disponible`,cameraUnavailableDesc:`Asegúrese de que la impresora está encendida y conectada.`,noCamera:`No hay cámara disponible`,retry:`Reintentar`,cameraStream:`Transmisión de la cámara`,zoomOut:`Alejar`,zoomIn:`Acercar`,resetZoom:`Restablecer el zoom`,recording:`Grabando`,startRecording:`Iniciar grabación`,stopRecording:`Detener grabación`,chamberLight:`Conmutar la luz de la cámara`,unavailable:`Cámara no disponible`,diagnose:{button:`Diagnosticar`,modalTitle:`Diagnóstico de la cámara`,running:`Ejecutando el diagnóstico...`,runFailed:`No se pudo ejecutar el diagnóstico: {{error}}`,retry:`Ejecutar de nuevo`,stage:{tcp_reachable:`Accesibilidad de la red`,first_frame:`Captura de fotogramas`,live_stream_active:`Transmisión en directo activa`},summary:{all_ok:`La cámara funciona. El diagnóstico completó todas las etapas correctamente.`,live_stream_active_healthy:`La cámara está transmitiendo actualmente con fotogramas recientes — no se necesita ninguna prueba.`,printer_unreachable:`La impresora no es accesible. Compruebe la dirección IP, la conexión de red y que la impresora está encendida.`,camera_port_closed:`La impresora es accesible pero el puerto de la cámara está cerrado. Asegúrese de que el modo solo LAN y el modo desarrollador están activados en los ajustes de la impresora.`,no_frame:`Se conectó a la cámara pero no se recibieron fotogramas. Inténtelo de nuevo o compruebe que la cámara está activada en los ajustes de la impresora.`,unknown_failure:`El diagnóstico de la cámara falló por un motivo desconocido. Consulte el registro de soporte para más detalles.`},meta:{protocol:`Protocolo`,port:`Puerto`,profile:`Perfil`}}},groups:{title:`Gestión de grupos`,subtitle:`Gestione los grupos de permisos para el control de acceso`,backToSettings:`Volver a Ajustes`,createGroup:`Crear grupo`,noPermission:`No tiene permiso para acceder a esta página.`,system:`Sistema`,noDescription:`Sin descripción`,usersCount:`{{count}} usuarios`,permissionsCount:`{{count}} permisos`,edit:`Editar`,delete:`Eliminar`,toast:{created:`Grupo creado correctamente`,updated:`Grupo actualizado correctamente`,deleted:`Grupo eliminado correctamente`,enterGroupName:`Introduzca un nombre de grupo`},modal:{editGroup:`Editar grupo`,createGroup:`Crear grupo`,cancel:`Cancelar`,saving:`Guardando...`,creating:`Creando...`,saveChanges:`Guardar cambios`},form:{groupName:`Nombre del grupo`,groupNamePlaceholder:`Introduzca el nombre del grupo`,systemGroupWarning:`Los nombres de los grupos del sistema no se pueden cambiar`,description:`Descripción`,descriptionPlaceholder:`Introduzca una descripción (opcional)`,permissions:`Permisos ({{count}} seleccionados)`},deleteModal:{title:`Eliminar grupo`,message:`¿Está seguro de que desea eliminar este grupo? Los usuarios de este grupo perderán estos permisos.`,confirm:`Eliminar grupo`},editor:{title:`Editar grupo`,createTitle:`Crear grupo`,search:`Buscar permisos...`,selectAll:`Seleccionar todo`,clearAll:`Borrar todo`,permissionsSelected:`{{count}} seleccionados`,noResults:`Ningún permiso coincide con su búsqueda`,websocketHint:`Necesario para las actualizaciones en vivo. Sin este permiso, la interfaz recurre al sondeo periódico.`}},users:{title:`Gestión de usuarios`,subtitle:`Gestione los usuarios y su acceso a su instancia de Bambuddy`,backToSettings:`Volver a Ajustes`,createUser:`Crear usuario`,noPermission:`No tiene permiso para acceder a esta página.`,admin:`Administrador`,noGroups:`Sin grupos`,active:`Activo`,inactive:`Inactivo`,edit:`Editar`,delete:`Eliminar`,system:`Sistema`,noGroupsAvailable:`No hay grupos disponibles`,table:{username:`Nombre de usuario`,groups:`Grupos`,status:`Estado`,actions:`Acciones`},toast:{created:`Usuario creado correctamente`,updated:`Usuario actualizado correctamente`,deleted:`Usuario eliminado correctamente`,fillRequired:`Rellene todos los campos obligatorios`,passwordsDoNotMatch:`Las contraseñas no coinciden`,passwordTooShort:`La contraseña debe tener al menos 6 caracteres`,ldapProvisioned:`Usuario LDAP "{{username}}" aprovisionado`},modal:{createUser:`Crear usuario`,editUser:`Editar usuario`,cancel:`Cancelar`,creating:`Creando...`,saving:`Guardando...`,saveChanges:`Guardar cambios`,advancedAuthSubtitle:`con autenticación avanzada`,tabsAriaLabel:`Origen del usuario`,localTab:`Local`,ldapTab:`LDAP`,ldapSearchLabel:`Buscar en el directorio`,ldapSearchPlaceholder:`Escriba un nombre de usuario, nombre o correo...`,ldapMinChars:`Escriba al menos 2 caracteres para buscar`,ldapTypeToSearch:`Empiece a escribir para buscar en el directorio LDAP`,ldapSearching:`Buscando en el directorio...`,ldapNoResults:`No hay usuarios coincidentes en el directorio`,ldapSearchError:`Error en la búsqueda en el directorio. Compruebe el estado del servidor LDAP.`,ldapAlreadyProvisioned:`Ya aprovisionado`,ldapSelectedLabel:`Seleccionado`,ldapProvision:`Aprovisionar usuario`,ldapProvisioning:`Aprovisionando...`,ldapErrorProvision:`Error en el aprovisionamiento. Compruebe el estado del servidor LDAP e inténtelo de nuevo.`},form:{username:`Nombre de usuario`,usernamePlaceholder:`Introduzca el nombre de usuario`,email:`Correo`,emailPlaceholder:`usuario@ejemplo.com`,password:`Contraseña`,passwordPlaceholder:`Introduzca la contraseña`,confirmPassword:`Confirmar contraseña`,confirmPasswordPlaceholder:`Confirme la contraseña`,newPasswordPlaceholder:`Introduzca la nueva contraseña`,confirmNewPasswordPlaceholder:`Confirme la nueva contraseña`,leaveBlankToKeep:`dejar en blanco para conservar la actual`,groups:`Grupos`,optional:`opcional`,autoGeneratedPassword:`Se generará automáticamente una contraseña segura y se enviará al usuario por correo.`,passwordManagedByAdvancedAuth:`La contraseña la gestiona la autenticación avanzada. Use «Restablecer contraseña» para enviar una nueva contraseña al usuario por correo.`,resetPassword:`Restablecer contraseña`,resettingPassword:`Restableciendo la contraseña...`},deleteModal:{title:`Eliminar usuario`,message:`¿Está seguro de que desea eliminar este usuario? Esta acción no se puede deshacer.`,confirm:`Eliminar usuario`}},streamOverlay:{title:`Superposición de transmisión`,invalidPrinterId:`ID de impresora no válido`,cameraStream:`Transmisión de la cámara`,progress:`Progreso`,eta:`Tiempo estimado`,printerIdle:`La impresora está inactiva`,printerOffline:`Impresora desconectada`,status:{printing:`Imprimiendo`,paused:`En pausa`,finished:`Finalizada`,failed:`Fallida`,idle:`Inactiva`,unknown:`Desconocido`}},profiles:{title:`Perfiles`,subtitle:`Gestione sus preajustes del laminador y las calibraciones de avance de presión`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`Perfiles locales`,kprofiles:`Perfiles K`},orcaCloud:{connectedAs:`Conectado como`,connectedShort:`Conectado a Orca Cloud`,logout:`Desconectar`,noLogoutPermission:`No tienes permiso para desconectar`,noConnectPermission:`No tienes permiso para conectar a Orca Cloud`,retry:`Reintentar`,connectButton:`Conectar Orca Cloud`,connect:{title:`Conectar a Orca Cloud`,description:`Inicia sesión en tu cuenta Orca Cloud para sincronizar tus perfiles de slicer en Bambuddy.`},device:{title:`Aprueba Bambuddy en Orca Cloud`,instruction:`Abre Orca Cloud y aprueba este código. Bambuddy se conecta automáticamente en cuanto lo apruebes.`,codeLabel:`Tu código de emparejamiento`,openButton:`Abrir la página de aprobación de Orca Cloud`,manualHint:`O ve a {{url}} e introduce el código de arriba.`,waiting:`Esperando a que apruebes…`,cancel:`Cancelar`},profiles:{title:`Tus perfiles de Orca Cloud ({{count}})`,refresh:`Actualizar`,empty:`Aún no hay perfiles en tu cuenta de Orca Cloud.`},toast:{disconnected:`Desconectado de Orca Cloud`},errors:{startFailed:`No se pudo iniciar el inicio de sesión de Orca Cloud.`,denied:`El emparejamiento fue rechazado en Orca Cloud.`,expired:`El código de emparejamiento caducó. Haz clic en Conectar para intentarlo de nuevo.`,pollFailed:`Se perdió la conexión mientras se esperaba la aprobación. Inténtalo de nuevo.`}},localProfiles:{title:`Perfiles locales`,subtitle:`Importe y gestione preajustes del laminador desde OrcaSlicer`,import:`Importar perfiles`,importDesc:`Suelte aquí archivos .bbscfg, .bbsflmt, .orca_filament, .zip o .json`,importing:`Importando...`,search:`Buscar preajustes locales...`,noPresets:`Aún no hay preajustes locales`,noSearchResults:`Ningún preajuste coincide con su búsqueda`,badge:`Local`,edit:`Editar`,delete:`Eliminar`,cancel:`Cancelar`,deleteConfirmTitle:`Eliminar preajuste`,deleteConfirm:`¿Está seguro de que desea eliminar este preajuste? Esto no se puede deshacer.`,source:`Origen`,inheritsFrom:`Hereda de`,filamentType:`Tipo`,vendor:`Proveedor`,compatiblePrinters:`Impresoras`,nozzleTemp:`Temp. de la boquilla`,cost:`Coste`,density:`Densidad`,pressureAdvance:`Avance de presión`,filament:`Filamento`,process:`Proceso`,printer:`Impresora`,toast:{importSuccess:`{{count}} preajuste(s) importado(s)`,importSkipped:`{{count}} preajuste(s) omitido(s) (duplicados)`,importError:`{{count}} error(es) durante la importación`,deleted:`Preajuste eliminado`,updated:`Preajuste actualizado`}},connectedAs:`Conectado como`,signInExpiredTitle:`La sesión de Bambu Cloud ha caducado`,signInExpiredBody:`Bambu Lab ya no acepta el token almacenado. Inicie sesión de nuevo para restaurar los perfiles en la nube, las importaciones de MakerWorld y las comprobaciones de firmware.`,logout:`Cerrar sesión`,noLogoutPermission:`No tiene permiso para cerrar sesión`,failedToLoad:`Error al cargar los perfiles`,retry:`Reintentar`,time:{justNow:`Ahora mismo`,minsAgo:`hace {{count}} min`,hoursAgo:`hace {{count}} h`,daysAgo:`hace {{count}} d`},toast:{loggedOut:`Sesión cerrada`},login:{title:`Conectarse a Bambu Cloud`,subtitle:`Sincronice sus preajustes del laminador entre dispositivos`,email:`Correo`,password:`Contraseña`,region:`Región`,regionGlobal:`Global`,regionChina:`China`,verificationCode:`Código de verificación`,totpCode:`Código del autenticador`,checkEmail:`Compruebe su correo ({{email}}) en busca de un código de 6 dígitos`,enterTotpHint:`Introduzca el código de 6 dígitos de su aplicación de autenticación`,accessToken:`Token de acceso`,accessTokenHint:`Pegue su token de acceso de Bambu Cloud. Las cuentas de la región de China deben usar esta vía (vinculada al teléfono — inicio de sesión por correo no disponible). Consulte la wiki para saber cómo obtener el token de las cookies de MakerWorld.`,back:`Atrás`,loginButton:`Iniciar sesión`,verifyButton:`Verificar`,setTokenButton:`Establecer token`,useToken:`Usar token de acceso en su lugar`,useEmail:`Iniciar sesión con correo en su lugar`,toast:{loggedIn:`Sesión iniciada correctamente`,codeSent:`Código de verificación enviado a su correo`,enterTotp:`Introduzca el código de su aplicación de autenticación`,tokenSet:`Token establecido correctamente`}},presets:{myPreset:`Mi preajuste (editable)`,duplicate:`Duplicar`,editable:`Editable`,failedToLoadDetails:`Error al cargar los detalles del preajuste`,deleteConfirm:`¿Eliminar este preajuste?`,deleteWarning:`Esto eliminará permanentemente "{{name}}" de Bambu Cloud. Esto no se puede deshacer.`,noDuplicatePermission:`No tiene permiso para duplicar preajustes`,noEditPermission:`No tiene permiso para editar preajustes`,noDeletePermission:`No tiene permiso para eliminar preajustes`,types:{filament:`Preajuste de filamento`,printer:`Preajuste de impresora`,process:`Preajuste de proceso`},toast:{deleted:`Preajuste eliminado`,created:`Preajuste creado`,updated:`Preajuste actualizado`,duplicated:`Preajuste duplicado`,fieldAdded:`Campo "{{key}}" añadido`,exported:`Preajuste exportado`},baseLabel:`Base: {{name}}`,currentLabel:`Actual: {{name}}`,newPreset:`Nuevo preajuste`,editPreset:`Editar preajuste`,duplicatePreset:`Duplicar preajuste`,createNewPreset:`Crear nuevo preajuste`,customizeSettings:`Personalice los ajustes de su nuevo preajuste`,compareWithBase:`Comparar con el preajuste base`,compare:`Comparar`,basePreset:`Preajuste base`,selectBasePreset:`Seleccionar preajuste base...`,presetName:`Nombre del preajuste`,myCustomPreset:`Mi preajuste personalizado`,inheritsFrom:`Hereda de`,dropJsonToImport:`Suelte un JSON para importar`,tabs:{common:`Común`,allFields:`Todos los campos`},availableFields:`Campos disponibles`,searchFieldsPlaceholder:`Buscar campos...`,noMatchingFields:`No hay campos coincidentes`,allFieldsAdded:`Todos los campos añadidos`,addCustomField:`Añadir campo personalizado`,yourOverrides:`Sus anulaciones`,noOverridesYet:`Aún no hay anulaciones`,clickFieldsToAdd:`Haga clic en los campos de la izquierda para añadirlos`,saveAsTemplate:`Guardar como plantilla`,jsonTip:`Consejo: arrastre y suelte un archivo .json en cualquier parte de esta ventana para importar ajustes`},cloudView:{searchPlaceholder:`Buscar preajustes...`,templates:`Plantillas`,refresh:`Actualizar`,newPreset:`Nuevo preajuste`,clearFilters:`Borrar filtros`,compareMode:`Modo de comparación`,selectAnotherPreset:`Seleccione otro preajuste de {{type}}`,clickTwoPresets:`Haga clic en dos preajustes del mismo tipo para compararlos`,selectFirst:`1. Seleccione el primero`,selectSecond:`2. Seleccione el segundo`,compareNow:`Comparar ahora`,lastSynced:`Última sincronización:`,showingCount:`Mostrando {{showing}} de {{total}} preajustes`,noPresetsFound:`No se encontraron preajustes`,columns:{filament:`Filamento`,process:`Proceso`,printer:`Impresora`},noFilamentPresets:`No hay preajustes de filamento`,noProcessPresets:`No hay preajustes de proceso`,noPrinterPresets:`No hay preajustes de impresora`,filters:{type:`Tipo`,owner:`Propietario`,printer:`Impresora`,nozzle:`Boquilla`,filament:`Filamento`,layer:`Capa`,all:`Todos`,myPresets:`Mis preajustes`,builtIn:`Integrados`,process:`Proceso`},noTemplatesPermission:`No tiene permiso para gestionar plantillas`,noRefreshPermission:`No tiene permiso para actualizar perfiles`,noCreatePermission:`No tiene permiso para crear preajustes`},templates:{title:`Plantillas rápidas`,noTemplates:`Aún no hay plantillas`,createFirst:`Cree plantillas desde el editor de preajustes`,typeFilter:`Tipo:`,deleteTitle:`Eliminar plantilla`,deleteWarning:`Esta acción no se puede deshacer`,deleteConfirm:`¿Está seguro de que desea eliminar "{{name}}"?`,namePlaceholder:`Nombre de la plantilla`,descriptionPlaceholder:`Descripción`,settingsJson:`Ajustes (JSON)`,fieldsCount:`{{count}} campos`,shownInModals:`Mostrada en las ventanas`,hiddenInModals:`Oculta en las ventanas`,apply:`Aplicar`,toast:{deleted:`Plantilla eliminada`,updated:`Plantilla actualizada`,created:`Plantilla creada`,applied:`Plantilla aplicada`}}},support:{debugLoggingActive:`El registro de depuración está activo`,manageLogs:`Gestionar`,collectItem7:`Conectividad de la impresora y versiones de firmware`,collectItem8:`Estado de las integraciones (Spoolman, MQTT, HA)`,collectItem9:`Interfaces de red (solo subredes)`,collectItem10:`Versiones de los paquetes de Python`,collectItem11:`Comprobaciones de estado de la base de datos`,collectItem12:`Detalles del entorno de Docker`,bundleGenerating:`Generando paquete...`,bundleStepConnection:`Ejecutando comprobaciones de conectividad de impresoras`,bundleStepVirtualPrinters:`Ejecutando comprobaciones de configuración de impresoras virtuales`,bundleStepLogScan:`Analizando los registros recientes en busca de problemas conocidos`,bundleStepBuild:`Creando el archivo ZIP del paquete de soporte`},fileManager:{title:`Gestor de archivos`,subtitle:`Organice y gestione sus archivos de impresión`,uploadFiles:`Subir archivos`,newFolder:`Nueva carpeta`,folderName:`Nombre de la carpeta`,folderNamePlaceholder:`p. ej., Piezas funcionales`,renameFile:`Renombrar archivo`,renameFolder:`Renombrar carpeta`,invalidFilenameChar:`El carácter "{{char}}" no está permitido en nombres de archivos de impresión. La tarjeta SD de la impresora rechaza: < > : " / \\ | ? *`,moveFiles:`Mover {{count}} archivo(s)`,rootNoFolder:`Raíz (sin carpeta)`,current:`actual`,linkFolder:`Vincular carpeta`,linkFolderDescription:`Vincule "{{name}}" a un proyecto o archivo para un acceso rápido.`,project:`Proyecto`,archive:`Archivo`,noProjectsFound:`No se encontraron proyectos`,noArchivesFound:`No se encontraron archivos`,unlink:`Desvincular`,link:`Vincular`,dragDropFiles:`Arrastre y suelte archivos aquí`,dropFilesHere:`Suelte archivos aquí`,releaseToUpload:`Suelte para subir`,orClickToBrowse:`o haga clic para examinar`,allFileTypesSupported:`Se admiten todos los tipos de archivo. Los archivos ZIP se extraerán.`,zipFilesDetected:`Archivos ZIP detectados`,zipExtractOptions:`Los archivos ZIP se extraerán. Elija cómo gestionar la estructura de carpetas:`,preserveZipStructure:`Conservar la estructura de carpetas del ZIP`,createFolderFromZip:`Crear una carpeta a partir del nombre del archivo ZIP`,stlThumbnailGeneration:`Generación de miniaturas STL`,zipMayContainStl:`Los archivos ZIP pueden contener archivos STL. Se pueden generar miniaturas durante la extracción.`,thumbnailsCanBeGenerated:`Se pueden generar miniaturas para los archivos STL. Los modelos grandes pueden tardar más en procesarse.`,generateThumbnailsForStl:`Generar miniaturas para los archivos STL`,threemfDetected:`Archivos 3MF detectados`,threemfExtractionInfo:`El modelo de impresora, el material, el color y los ajustes de impresión se extraerán automáticamente de los archivos 3MF.`,willBeExtracted:`Se extraerá`,filesExtracted:`{{count}} archivos extraídos`,uploadComplete:`Subida completada: {{succeeded}} con éxito`,uploadFailed:`Error al subir`,zipFilesFailed:`{{count}} archivos fallidos`,uploading:`Subiendo...`,changeLink:`Cambiar enlace...`,linkTo:`Vincular a...`,linkToProjectOrArchive:`Vincular a un proyecto o archivo`,generateThumbnail:`Generar miniatura`,generateThumbnails:`Generar miniaturas`,generateThumbnailsForMissing:`Generar miniaturas para los archivos STL que no las tienen`,gridView:`Vista de cuadrícula`,listView:`Vista de lista`,lowDiskSpaceWarning:`Advertencia de poco espacio en disco`,lowDiskSpaceDetails:`Solo {{free}} libres de {{total}} en total. El umbral está establecido en {{threshold}} GB en los ajustes.`,files:`Archivos`,folders:`Carpetas`,size:`Tamaño`,free:`Libre`,allFiles:`Todos los archivos`,allExternal:`Externos`,externalIsEmpty:`Sin archivos externos`,externalEmptyDescription:`Los archivos de tus carpetas externas vinculadas aparecerán aquí.`,wrap:`Ajustar`,enableTextWrapping:`Activar el ajuste de texto`,disableTextWrapping:`Desactivar el ajuste de texto`,collapse:`Contraer`,collapseFoldersByDefault:`Contraer las carpetas de forma predeterminada`,expandFoldersByDefault:`Expandir las carpetas de forma predeterminada`,folderSort:`Ordenar carpetas`,folderSortByName:`Por nombre`,folderSortByActivity:`Por actividad reciente`,dragToResizeTooltip:`Arrastre para redimensionar, doble clic para restablecer`,searchFiles:`Buscar archivos...`,searchSubfoldersHint:`Incluyendo subcarpetas`,readme:{truncated:`Truncado`,show:`Mostrar README`,hide:`Ocultar README`,label:`README`},tags:{title:`Etiquetas`,subtitle:`Etiqueta archivos para filtros transversales — juguetes, apto para niños, solo PETG, lo que necesites.`,manage:`Etiquetas`,manageTitle:`Gestionar el catálogo de etiquetas`,add:`Nueva etiqueta`,edit:`Renombrar etiqueta`,name:`Nombre`,fileCount:`Archivos`,empty:`Aún no hay etiquetas. Crea una para empezar a etiquetar archivos.`,noMatches:`No hay etiquetas que coincidan.`,createPlaceholder:`p. ej. juguetes, apto-niños, petg`,createButton:`Crear`,nameRequired:`El nombre es obligatorio.`,searchPlaceholder:`Filtrar etiquetas...`,created:`Etiqueta creada.`,updated:`Etiqueta renombrada.`,deleted:`Etiqueta eliminada.`,saveFailed:`No se pudo guardar la etiqueta.`,deleteFailed:`No se pudo eliminar la etiqueta.`,applyFailed:`No se pudieron aplicar las etiquetas.`,applyAdd:`Añadir etiquetas`,applyRemove:`Quitar etiquetas`,applyAddSuccess:`Se añadieron {{count}} etiqueta(s) en {{files}} archivo(s).`,applyRemoveSuccess:`Se quitaron {{count}} etiqueta(s) en {{files}} archivo(s).`,actionAdd:`Añadir a los archivos seleccionados`,actionRemove:`Quitar de los archivos seleccionados`,tagAction:`Etiquetar`,bulkTitle:`Etiquetar {{count}} archivo(s) seleccionado(s)`,bulkTooltip:`Añadir o quitar etiquetas en cada archivo seleccionado.`,noPermission:`No tienes permiso para etiquetar archivos.`,filterLabel:`Filtrando por:`,clearAll:`Limpiar todo`,confirmDelete:`¿Eliminar la etiqueta "{{name}}"?`,confirmDeleteMessage:`Esto elimina la etiqueta del catálogo. Los archivos conservan sus otras etiquetas.`,confirmDeleteInUseMessage:`Esta etiqueta está en {{count}} archivo(s). Al eliminarla desaparece de todos; los archivos en sí no se tocan.`,editAria:`Editar {{name}}`,deleteAria:`Eliminar {{name}}`},allTypes:`Todos los tipos`,prints:`Impresiones`,ascending:`Ascendente`,descending:`Descendente`,showModified:`Mostrar fechas de modificación`,hideModified:`Ocultar fechas de modificación`,lastModified:`Última modificación`,lastActivity:`Última actividad`,resultsCount:`{{showing}} de {{total}} archivos`,selectAll:`Seleccionar todo`,deselectAll:`Deseleccionar todo`,selected:`{{count}} seleccionados`,adding:`Añadiendo...`,loadingFiles:`Cargando archivos...`,folderIsEmpty:`La carpeta está vacía`,noFilesYet:`Aún no hay archivos`,folderEmptyDescription:`Suba archivos o mueva archivos a esta carpeta para empezar.`,noFilesDescription:`Suba archivos para empezar a organizar sus archivos relacionados con la impresión.`,noMatchingFiles:`No hay archivos coincidentes`,noMatchingFilesDescription:`Ningún archivo coincide con su búsqueda o los criterios de filtro actuales.`,clearFilters:`Borrar filtros`,printedCount:`Impreso {{count}} veces`,uploadedBy:`Subido por`,deleteFolder:`Eliminar carpeta`,deleteFile:`Eliminar archivo`,deleteFilesCount:`Eliminar {{count}} archivos`,deleteFolderConfirm:`¿Está seguro de que desea eliminar esta carpeta? Todos los archivos que contiene también se eliminarán.`,deleteFileConfirm:`¿Está seguro de que desea eliminar este archivo?`,deleteFilesConfirm:`¿Está seguro de que desea eliminar {{count}} archivos seleccionados? Esta acción no se puede deshacer.`,deleting:`Eliminando...`,noPermissionRenameFolder:`No tiene permiso para renombrar carpetas`,noPermissionLinkFolder:`No tiene permiso para vincular carpetas`,noPermissionDeleteFolder:`No tiene permiso para eliminar carpetas`,onlyEmptyFoldersDeletable:`Solo puede eliminar carpetas vacías`,noPermissionPrint:`No tiene permiso para imprimir`,noPermissionAddToQueue:`No tiene permiso para añadir a la cola`,noPermissionSlice:`No tiene permiso para laminar archivos`,noPermissionDownload:`No tiene permiso para descargar archivos`,noPermissionRenameFile:`No tiene permiso para renombrar este archivo`,noPermissionGenerateThumbnail:`No tiene permiso para generar miniaturas`,noPermissionDeleteFile:`No tiene permiso para eliminar este archivo`,noPermissionCreateFolder:`No tiene permiso para crear carpetas`,noPermissionUpload:`No tiene permiso para subir archivos`,noPermissionMoveFiles:`No tiene permiso para mover archivos`,noPermissionDeleteFiles:`No tiene permiso para eliminar archivos`,linkExternal:`Vincular externa`,linkExternalFolder:`Vincular carpeta externa`,linkExternalFolderDescription:`Monte un directorio del host (NAS, USB, recurso compartido de red) en el gestor de archivos. Los archivos no se copian — se accede a ellos directamente desde la ruta original.`,externalFolderNamePlaceholder:`p. ej., Impresiones del NAS`,externalPath:`Ruta del host`,externalPathHelp:`Ruta absoluta al directorio en el host de Docker. Debe estar montado por enlace en el contenedor.`,readOnly:`Solo lectura`,readOnlyHelp:`impide las subidas y eliminaciones`,showHiddenFiles:`Mostrar archivos ocultos (con punto)`,externalFolder:`Carpeta externa`,scanFolder:`Escanear`,toast:{folderCreated:`Carpeta creada`,folderDeleted:`Carpeta eliminada`,fileDeleted:`Archivo eliminado`,filesDeleted:`Se eliminaron {{count}} archivos`,filesMoved:`Archivos movidos`,folderLinked:`Carpeta vinculada`,folderUnlinked:`Carpeta desvinculada`,externalFolderLinked:`Carpeta externa vinculada y escaneada`,folderScanned:`Escaneo completado: {{added}} añadidos, {{removed}} eliminados`,addedToQueue:`Se añadieron {{count}} archivo(s) a la cola`,addedToQueuePartial:`Se añadieron {{added}} archivo(s), {{failed}} fallidos`,failedToAddToQueue:`Error al añadir los archivos: {{error}}`,fileRenamed:`Archivo renombrado`,folderRenamed:`Carpeta renombrada`,thumbnailsGenerated:`Se generaron {{count}} miniatura(s)`,thumbnailsGeneratedPartial:`Se generaron {{succeeded}} miniatura(s), {{failed}} fallidas`,noStlMissingThumbnails:`No hay archivos STL sin miniaturas`,failedToGenerateThumbnails:`Error al generar las miniaturas: {{error}}`,thumbnailGenerated:`Miniatura generada`,failedToGenerateThumbnail:`Error al generar la miniatura: {{error}}`}},projects:{title:`Proyectos`,subtitle:`Organice y haga el seguimiento de sus proyectos de impresión 3D`,newProject:`Nuevo proyecto`,editProject:`Editar proyecto`,deleteProject:`Eliminar proyecto`,projectName:`Nombre del proyecto`,description:`Descripción`,noProjects:`Aún no hay proyectos`,noProjectsFiltered:`No hay proyectos {{status}}`,noProjectsFilteredHelp:`No tiene ningún proyecto {{status}}. Los proyectos aparecerán aquí cuando cambie su estado.`,createFirst:`Cree su primer proyecto para empezar a organizar impresiones relacionadas, hacer el seguimiento del progreso y gestionar sus construcciones.`,createFirstButton:`Cree su primer proyecto`,create:`Crear`,files:`Archivos`,prints:`Impresiones`,plates:`camas`,parts:`piezas`,lastModified:`Última modificación`,deleteConfirm:`¿Está seguro de que desea eliminar este proyecto? Los archivos y los elementos de la cola se desvincularán pero no se eliminarán.`,addFiles:`Añadir archivos`,removeFile:`Quitar archivo`,viewDetails:`Ver detalles`,namePlaceholder:`p. ej., Construcción de Voron 2.4`,descriptionPlaceholder:`Descripción opcional...`,urlLabel:`URL`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`La URL debe empezar por http:// o https://`,openExternalUrl:`Abrir la URL del proyecto`,coverImageLabel:`Foto de portada`,coverImageAlt:`Foto de portada del proyecto`,coverImageUpload:`Subir`,coverImageReplace:`Reemplazar`,coverImageRemove:`Quitar`,color:`Color`,targetPlates:`Camas objetivo`,targetPlatesPlaceholder:`p. ej., 25`,targetPlatesHelp:`Número de trabajos de impresión`,targetParts:`Piezas objetivo`,targetPartsPlaceholder:`p. ej., 150`,targetPartsHelp:`Total de objetos necesarios`,targetSets:`Copias por archivo`,targetSetsPlaceholder:`p. ej., 10`,targetSetsHelp:`Veces que debe imprimirse cada archivo imprimible`,tagsLabel:`Etiquetas (separadas por comas)`,tagsPlaceholder:`p. ej., voron, funcional, regalo`,dueDate:`Fecha límite`,priority:`Prioridad`,priorityLow:`Baja`,priorityNormal:`Normal`,priorityHigh:`Alta`,priorityUrgent:`Urgente`,statusActive:`Activo`,statusCompleted:`Completado`,statusArchived:`Archivado`,done:`Hecho`,completed:`completadas`,failed:`fallidas`,inQueue:`en cola`,noPrintsYet:`Aún no hay impresiones`,printJobs:`Trabajos de impresión (camas)`,partsPrinted:`Piezas impresas`,failedParts:`Piezas fallidas`,import:`Importar`,export:`Exportar`,importProject:`Importar proyecto`,exportAll:`Exportar todos los proyectos`,loading:`Cargando proyectos...`,noEditPermission:`No tiene permiso para editar proyectos`,noDeletePermission:`No tiene permiso para eliminar proyectos`,noCreatePermission:`No tiene permiso para crear proyectos`,noImportPermission:`No tiene permiso para importar proyectos`,noExportPermission:`No tiene permiso para exportar proyectos`,toast:{created:`Proyecto creado`,updated:`Proyecto actualizado`,deleted:`Proyecto eliminado`,imported:`Proyecto importado`,multipleImported:`{{count}} proyectos importados`,importFailed:`Error en la importación`,exported:`Proyectos exportados (solo metadatos)`}},projectDetail:{notFound:`Proyecto no encontrado`,backToProjects:`Volver a Proyectos`,export:`Exportar`,exportProject:`Exportar proyecto`,noExportPermission:`No tiene permiso para exportar proyectos`,noEditPermission:`No tiene permiso para editar proyectos`,partOf:`Parte de:`,priorityLabel:`Prioridad:`,noPrints:`Aún no hay impresiones en este proyecto`,status:{active:`Activo`,completed:`Completado`,archived:`Archivado`},priority:{low:`Baja`,normal:`Normal`,high:`Alta`,urgent:`Urgente`},dueDate:{overdue:`Atrasado`,today:`Vence hoy`,daysLeft:`Quedan {{count}} días`},progress:{platesProgress:`Progreso de camas`,partsProgress:`Progreso de piezas`,setsProgress:`Juegos completos`,sets:`juegos`,setsHint:`Un juego está completo cuando cada archivo imprimible alcanza este número`,printJobs:`trabajos de impresión`,parts:`piezas`,percentComplete:`{{percent}}% completado`,remaining:`{{count}} restantes`},stats:{printJobs:`Trabajos de impresión`,total:`total`,failed:`{{count}} fallidos`,partsPrinted:`{{count}} piezas impresas`,printTime:`Tiempo de impresión`,filamentUsed:`Filamento usado`},cost:{title:`Seguimiento de costes`,filamentCost:`Coste del filamento`,energy:`Energía`,totalCost:`Coste total`,total:`Total`,includesBom:`incl. lista de materiales`,budget:`Presupuesto`,remaining:`Restante`},subProjects:{title:`Subproyectos ({{count}})`},notes:{title:`Notas`,noEditPermission:`No tiene permiso para editar notas`,placeholder:`Añada notas sobre este proyecto...`,empty:`Aún no hay notas. Haga clic en Editar para añadir notas.`},files:{title:`Archivos`,linkFolders:`Vincule carpetas del gestor de archivos`,forQuickAccess:`a este proyecto para un acceso rápido.`,fileCount:`{{count}} archivo(s)`,empty:`No hay carpetas vinculadas. Vaya al gestor de archivos y vincule una carpeta a este proyecto.`,printedCount:`Impreso {{count}} veces`,progressTooltip:`{{done}} de {{target}} impresiones completadas`,noFiles:`No hay archivos en esta carpeta.`},bom:{title:`Lista de materiales`,acquired:`{{completed}}/{{total}} adquiridos`,showAll:`Mostrar todo`,hideDone:`Ocultar los hechos`,addPart:`Añadir pieza`,noAddPermission:`No tiene permiso para añadir piezas`,partNamePlaceholder:`Nombre de la pieza (p. ej., tornillos M3x8)`,partName:`Nombre de la pieza`,qty:`Cant.`,price:`Precio ({{currency}})`,sourcingUrlPlaceholder:`URL de aprovisionamiento (opcional)`,remarksPlaceholder:`Observaciones (opcional)`,deletePart:`Eliminar pieza`,deleteConfirm:`¿Está seguro de que desea eliminar "{{name}}"?`,noUpdatePermission:`No tiene permiso para actualizar piezas`,noEditPermission:`No tiene permiso para editar piezas`,noDeletePermission:`No tiene permiso para eliminar piezas`,totalCost:`Coste total:`,empty:`No hay piezas en la lista de materiales. Añada hardware, componentes electrónicos u otros componentes para hacer el seguimiento de lo que hay que aprovisionar.`},timeline:{title:`Cronología de actividad`,empty:`Aún no hay actividad.`},template:{saveAsTemplate:`Guardar como plantilla`,noCreatePermission:`No tiene permiso para crear plantillas`},queue:{title:`Cola`,viewAll:`Ver todo`,printing:`{{count}} imprimiendo`,queued:`{{count}} en cola`},prints:{title:`Impresiones ({{count}})`},toast:{projectUpdated:`Proyecto actualizado`,partAdded:`Pieza añadida`,partRemoved:`Pieza eliminada`,exportFailed:`Error en la exportación`,projectExported:`Proyecto exportado`,templateCreated:`Plantilla creada`}},system:{title:`Información del sistema`,version:`Versión`,uptime:`Tiempo de actividad`,cpuUsage:`Uso de la CPU`,memoryUsage:`Uso de la memoria`,diskUsage:`Uso del disco`,networkInfo:`Información de la red`,logs:`Registros`,debugMode:`Modo de depuración`,enableDebug:`Activar el registro de depuración`,disableDebug:`Desactivar el registro de depuración`,downloadLogs:`Descargar registros`,clearLogs:`Borrar registros`,dockerInfo:`Información de Docker`,containerName:`Nombre del contenedor`,imageName:`Nombre de la imagen`,platform:`Plataforma`,architecture:`Arquitectura`},sponsors:{sectionTitle:`Independiente y financiado por la comunidad`,tagline:`Bambuddy es gratuito y seguirá siéndolo porque hay quien decide apoyarlo. Sin VC, sin dependencia de la nube.`,viewSupporters:`Ver patrocinadores`,toastPrints:`Has completado {{count}} impresiones con Bambuddy. Bambuddy sigue siendo gratuito gracias a quienes lo apoyan.`,toastCost:`Has rastreado {{total}} de filamento con Bambuddy. Mira quién mantiene el proyecto independiente.`,toastArchives:`{{count}} impresiones archivadas con Bambuddy. Mira quién lo mantiene independiente.`,toastAnniversary:`¡Un año con Bambuddy! Mira quién mantiene el proyecto independiente.`,toastVersionUpdate:`Actualizado a v{{version}}. Bambuddy sigue siendo gratuito gracias a quienes lo apoyan.`,toastBusiness:`¿Usas Bambuddy en {{count}} impresoras? Existe un plan de soporte para equipos: correcciones prioritarias, facturación y contacto directo con el responsable del proyecto.`,businessCta:`Bambuddy para empresas`,businessTitle:`Bambuddy para empresas`,businessTagline:`Estás gestionando {{count}} impresoras. Hay soporte prioritario, licencias comerciales y facturación disponibles para equipos y granjas de impresión.`},library:{title:`Biblioteca de filamentos`,addFilament:`Añadir filamento`,editFilament:`Editar filamento`,deleteFilament:`Eliminar filamento`,vendor:`Proveedor`,material:`Material`,color:`Color`,kFactor:`Factor K`,temperature:`Temperatura`,noFilaments:`No hay filamentos en la biblioteca`,deleteConfirm:`¿Está seguro de que desea eliminar este filamento?`,importFromPrinter:`Importar desde la impresora`,exportToFile:`Exportar a un archivo`,runWithPipeline:{actionLabel:`Ejecutar con pipeline`,noPermission:`No tienes permiso para ejecutar pipelines`,modalTitle:`Ejecutar con pipeline`,confirmTitle:`Confirmar ejecución`,confirmIntro:`El pre-vuelo encontró problemas con esta ejecución`,sourceHint:`Origen`,pipelineHint:`Pipeline`,targetHint:`Destino`,pipelineListAria:`Pipelines disponibles`,runAnyway:`Ejecutar de todos modos`,loading:`Cargando…`,empty:`Aún no hay pipelines guardadas. Abre el diálogo Cortar y haz clic en "Guardar como pipeline" para crear una.`,noTarget:`Sin impresora de destino`,noTargetMessage:`Esta pipeline no tiene impresora de destino. Ábrela en Ajustes para elegir una.`,copies:`Copias`,copiesHint:`máx {{n}}`,classTarget:`Cualquier {{model}}`,toast:{started:`Ejecución de pipeline iniciada`,failed:`No se pudo iniciar la ejecución`},issue:{printerNotSet:`Sin impresora de destino en esta pipeline.`,printerNotFound:`La impresora de destino ya no existe.`,printerDisabled:`La impresora de destino está deshabilitada.`,printerOffline:`La impresora de destino está desconectada.`,filamentType:`Slot de filamento {{slot}}: esperado {{expected}}, AMS tiene {{actual}}`,filamentColor:`Slot de filamento {{slot}}: color distinto (esperado {{expected}}, AMS tiene {{actual}})`,amsSlotMissing:`Slot AMS {{slot}} no disponible en esta impresora`,filamentUnverified:`Slot de filamento {{slot}} proviene de un preset de nube / estándar y no se pudo verificar estáticamente.`,noClassMatches:`Ninguna impresora en esta instalación coincide con la clase de modelo objetivo de la pipeline ({{expected}}).`,classNotSet:`El destino de la pipeline es una clase de impresora pero no se eligió ningún modelo.`}}},slice:{title:`Laminar modelo`,action:`Laminar`,actionAll:`Laminar las {{count}} bandejas`,actionAllTitle:`Laminar todas las bandejas en una salida única de varias bandejas (un solo archivo). La selección de filamento cubre cada hueco que defina el proyecto.`,allPlatesToggle:`Laminar las {{count}} bandejas`,slicing:`Laminando…`,printer:`Perfil de impresora`,process:`Perfil de proceso`,filament:`Perfil de filamento`,filamentSlot:`Filamento {{index}} ({{type}})`,selectPreset:`— Seleccione un preajuste —`,loadingPresets:`Cargando preajustes…`,analyzingPlateFilaments:`Analizando los filamentos de la cama…`,analyzingPlateFilamentsHint:`Ejecutando un laminado de vista previa para descubrir qué ranuras del AMS usa esta cama. Después se almacena en caché — volver a abrir es instantáneo.`,previewToast:`Analizando {{name}} — {{elapsed}}`,previewWithProgress:`Analizando {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,notUsedByPlate:`— no usado por esta cama`,noPresetsForSlot:`No hay preajustes disponibles`,otherPrinters:`Otras impresoras`,presetsLoadFailed:`Error al cargar los preajustes. Abra Ajustes → Perfiles para importarlos primero.`,refreshPresets:`Actualizar`,refreshPresetsTitle:`Actualizar preajustes — recuperar los listados más recientes de la nube y los paquetes (úselo tras eliminar un preajuste en Bambu Studio o Bambu Handy)`,allPresetsRequired:`Deben seleccionarse todos los preajustes`,useEmbedded:`Usar la configuración incorporada del archivo`,useEmbeddedHint:`Laminar tal como lo configuró el diseñador (perímetros, relleno, filamento) en lugar de los perfiles de arriba. Disponible porque tu impresora coincide con la del archivo.`,designSettings:`Mantener los ajustes del diseñador`,designSettingsHint:`Este archivo cambia {{count}} ajuste(s) de impresión respecto al perfil estándar.`,designSettingsSelected:`{{selected}} de {{total}} seleccionados`,designSettingsPrinterCoupled:`específico de la impresora`,designSettingsPrinterCoupledHint:`Ajustado para la impresora para la que se diseñó el archivo: puede ser incorrecto o quedar fuera de rango en la tuya.`,enqueuing:`Enviando el trabajo de laminado…`,queued:`En cola…`,failed:`Error al laminar. Consulte los registros del contenedor auxiliar del laminador.`,startedToast:`Laminando {{name}} en segundo plano…`,queuedToast:`En cola: {{name}} — {{elapsed}}`,runningToast:`Laminando {{name}} — {{elapsed}}`,runningWithProgress:`{{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,runningWithProgressMultiPlate:`Bandeja {{plateIndex}} de {{plateCount}} • {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,completedToast:`{{name}} laminado`,failedTitle:`Error al laminar`,failedToast:`Error al laminar {{name}}: {{detail}}`,tier:{local:`Importado`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`Estándar`},cloud:{notAuthenticated:`Inicie sesión en Bambu Cloud (Ajustes → Perfiles → Bambu Cloud) para ver sus preajustes de la nube.`,expired:`La sesión de Bambu Cloud ha caducado — inicie sesión de nuevo para actualizar sus preajustes de la nube.`,unreachable:`Bambu Cloud no es accesible en este momento. Los preajustes locales y estándar siguen funcionando.`},orcaCloud:{notAuthenticated:`Inicia sesión en Orca Cloud (Perfiles → Orca Cloud) para ver tus preajustes Orca.`,expired:`Sesión de Orca Cloud caducada — inicia sesión de nuevo para actualizar tus preajustes Orca.`,unreachable:`Orca Cloud no está disponible ahora. Otros preajustes siguen funcionando.`},bedType:{label:`Cama de impresión`,auto:`Automático (usar el preajuste de proceso)`,coolPlate:`Cool Plate`,coolPlateSuperTack:`Cool Plate SuperTack`,engineering:`Engineering Plate`,highTemp:`High Temp Plate`,texturedPEI:`Textured PEI Plate`,smoothPEI:`Smooth PEI Plate`},pipelines:{label:`Pipeline`,applyAria:`Aplicar pipeline`,applyPrompt:`Aplicar pipeline…`,empty:`Sin pipelines guardadas`,saveButton:`Guardar como pipeline`,saveTitle:`Guardar la selección actual de los cuatro ajustes como pipeline reutilizable`,namePlaceholder:`Nombre de la pipeline`,nameAria:`Nuevo nombre de pipeline`,toast:{applied:`"{{name}}" aplicada`,saved:`Pipeline guardada`,saveFailed:`Error al guardar`}}},spoolman:{title:`Integración con Spoolman`,enabled:`Spoolman activado`,url:`URL de Spoolman`,connected:`Conectado`,disconnected:`No conectado`,testConnection:`Probar conexión`,sync:`Sincronizar`,syncing:`Sincronizando...`,lastSync:`Última sincronización`,linkToSpoolman:`Vincular a Spoolman`,openInSpoolman:`Abrir en Spoolman`,unlinkSpool:`Desvincular bobina`,unlinkConfirmTitle:`¿Desasignar la bobina?`,unlinkConfirmMessage:`Esto quitará la bobina de esta ranura. Los datos de la bobina en sí permanecerán sin cambios.`,selectSpool:`Seleccionar bobina`,noUnlinkedSpools:`No hay bobinas sin asignar disponibles`,linkSuccess:`Bobina asignada correctamente`,linkFailed:`Error al asignar la bobina`,unlinkSuccess:`Bobina desasignada correctamente`,unlinkFailed:`Error al desasignar la bobina`,linkedSpool:`Bobina asignada`,spoolId:`ID de la bobina`,fillSourceLabel:`(Spoolman)`,weight:`Peso`,remaining:`Restante`,disableWeightSync:`Desactivar la sincronización del peso estimado del AMS`,disableWeightSyncDesc:`No actualizar la capacidad restante a partir de las estimaciones del AMS. Use esto si prefiere el seguimiento del uso de Spoolman a las estimaciones del AMS basadas en porcentajes. Las bobinas nuevas seguirán usando la estimación del AMS como su peso inicial.`,reportPartialUsage:`Informar del uso parcial en las impresiones fallidas`,reportPartialUsageDesc:`Cuando una impresión falla o se cancela, informar del filamento estimado usado hasta ese punto según el progreso de las capas.`},locations:{title:`Ubicaciones de almacenamiento`,subtitle:`Gestione estantes, cajones y otros lugares físicos para sus bobinas`,add:`Añadir ubicación`,addShort:`Añadir`,edit:`Editar ubicación`,name:`Nombre`,spools:`Bobinas`,empty:`Aún no hay ubicaciones de almacenamiento. Cree su primer estante o cajón.`,manage:`Ubicaciones`,createPlaceholder:`p. ej. Estante A, Cajón 1`,nameRequired:`El nombre de la ubicación es obligatorio`,created:`Ubicación creada`,updated:`Ubicación actualizada`,deleted:`Ubicación eliminada`,saveFailed:`No se pudo guardar la ubicación`,deleteFailed:`No se pudo eliminar la ubicación`,deleteBlocked:`Retire todas las bobinas de esta ubicación antes de eliminarla`,confirmDelete:`¿Eliminar «{{name}}»?`,confirmDeleteMessage:`Esta ubicación se eliminará del catálogo. Mueva las bobinas primero.`},inventory:{title:`Inventario de bobinas`,subtitle:`Gestione sus bobinas`,addToInventory:`Añadir al inventario`,addToInventoryPending:`Añadiendo...`,addToInventorySuccess:`Bobina añadida al inventario`,addToInventoryFailed:`No se pudo añadir la bobina al inventario`,unknownSpoolTitle:`Nuevo filamento detectado`,unknownSpoolMessage:`Se ha detectado una bobina con una etiqueta RFID desconocida en {{location}}. ¿Añadirla a su inventario ahora?`,unknownSpoolSlot:`Ranura`,bulk:{selectAllVisible:`Seleccionar todo lo visible`,selectRow:`Seleccionar fila`,selectGroup:`Seleccionar grupo`,selectionCount:`{{count}} seleccionadas`,edit:`Editar`,printLabels:`Imprimir etiquetas`,resetUsage:`Restablecer uso`,restore:`Restaurar`,archive:`Archivar`,delete:`Eliminar`,clearSelection:`Limpiar selección`,editTitle:`Edición masiva de bobinas`,editSubtitle:`Se aplica a {{count}} bobinas seleccionadas. Solo se actualizan los campos marcados.`,editHint:`Escriba en un campo para marcarlo para actualización — solo se envían las filas marcadas. Los campos vacíos no cambian las bobinas (vaciar campos solo se hace por bobina).`,useCustom:`Usar "{{value}}"`,toggleField:`Activar la actualización de este campo`,changeCount:`Se actualizarán {{count}} campos.`,applyPending:`Aplicando...`,applyButton:`Aplicar a {{count}} bobinas`,deleteTitle:`Eliminar bobinas seleccionadas`,archiveTitle:`Archivar bobinas seleccionadas`,restoreTitle:`Restaurar bobinas seleccionadas`,resetUsageTitle:`Restablecer uso de bobinas seleccionadas`,deleteMessage:`¿Eliminar permanentemente {{count}} bobinas? Esto no se puede deshacer.`,archiveMessage:`¿Archivar {{count}} bobinas? Se pueden restaurar más tarde.`,restoreMessage:`¿Restaurar {{count}} bobinas archivadas?`,resetUsageMessage:`¿Restablecer el contador "Total consumido" en {{count}} bobinas? El peso restante se conserva.`,updateSuccess:`{{count}} bobinas actualizadas`,updateFailed:`Actualización masiva fallida`,updatePartial:`{{ok}} bobinas actualizadas, {{failed}} fallidas`,updateAllFailed:`Las {{count}} actualizaciones fallaron — la selección se mantiene para reintentar`,deleteSuccess:`{{count}} bobinas eliminadas`,deleteFailed:`Eliminación masiva fallida`,deletePartial:`{{ok}} bobinas eliminadas, {{failed}} fallidas`,deleteAllFailed:`Las {{count}} eliminaciones fallaron — la selección se mantiene para reintentar`,archiveSuccess:`{{count}} bobinas archivadas`,archiveFailed:`Archivado masivo fallido`,archivePartial:`{{ok}} bobinas archivadas, {{failed}} fallidas`,archiveAllFailed:`Los {{count}} archivados fallaron — la selección se mantiene para reintentar`,restoreSuccess:`{{count}} bobinas restauradas`,restoreFailed:`Restauración masiva fallida`,restorePartial:`{{ok}} bobinas restauradas, {{failed}} fallidas`,restoreAllFailed:`Las {{count}} restauraciones fallaron — la selección se mantiene para reintentar`,invalidHex:`Introduzca 6 caracteres hex (RRGGBB) u 8 (RRGGBBAA). De lo contrario el campo no se aplicará.`},spoolmanMixedContentTitle:`Spoolman no se puede cargar por HTTPS — contenido mixto bloqueado por su navegador`,spoolmanMixedContentBody:`Bambuddy se sirve por HTTPS (mediante su proxy inverso), pero su URL de Spoolman sigue siendo HTTP sin cifrar. Los navegadores bloquean el contenido mixto por seguridad, por lo que la interfaz integrada de Spoolman no se puede mostrar. Spoolman debe ser accesible por HTTPS para que esto funcione.`,spoolmanMixedContentFixReverseProxy:`Ponga Spoolman tras el mismo proxy inverso que Bambuddy (Traefik / Nginx / Caddy) con HTTPS y luego actualice la URL de Spoolman en Ajustes a la nueva dirección HTTPS.`,spoolmanMixedContentFixOpenNewTab:`Como solución alternativa, abra Spoolman en una pestaña nueva del navegador por HTTP — las reglas de contenido mixto solo se aplican a los marcos integrados, por lo que una pestaña independiente sí funciona.`,spoolmanOpenInNewTab:`Abrir Spoolman en una pestaña nueva`,labels:{title:`Imprimir etiquetas de bobinas`,selectedCount:`{{count}} seleccionadas`,pickSpools:`Elija para qué bobinas imprimir etiquetas:`,monochrome:`Monocromo (impresora en blanco y negro)`,monochromeHint:`Elimina la muestra de color y amplía el texto`,searchPlaceholder:`Buscar nombre, marca o n.º de ID`,filterByMaterial:`Material:`,allMaterials:`Todos`,selectVisible:`Seleccionar todas las visibles ({{count}})`,deselectVisible:`Deseleccionar las visibles`,clearAll:`Borrar todo`,noSpoolsToShow:`No hay bobinas que mostrar. Ajuste su filtro e inténtelo de nuevo.`,noMatches:`Ninguna bobina coincide con la búsqueda o el filtro actuales.`,printOne:`Imprimir etiqueta para esta bobina`,printLabels:`Imprimir etiquetas…`,bulkTitle:`Elija las bobinas para las que imprimir etiquetas de las {{count}} mostradas actualmente`,noSpoolsTitle:`No hay bobinas que etiquetar`,error:`No se pudieron generar las etiquetas: {{msg}}`,sortBy:{label:`Ordenar:`,id:`Por ID`,color:`Por color`},templates:{amsHolderSmall:{label:`Soporte de AMS — pequeño (74 × 33 mm)`,hint:`Una etiqueta por página; coincide con la etiqueta imprimible del modelo 752566 de MakerWorld (AMS Filament Label Holder).`},amsHolderLarge:{label:`Soporte de AMS — grande (75 × 55 mm)`,hint:`Una etiqueta por página; encaja en la variante con inserto de cartulina del AMS Filament Label Holder. Lo bastante amplia para muestra de color, marca, material, ID y código QR.`},box40x30:{label:`Etiqueta de caja (40 × 30 mm)`,hint:`Una etiqueta por página; tamaño de rollo DK/Brother habitual, adecuado para etiquetas de bolsas de filamento y cajas de almacenamiento.`},box:{label:`Box label (62 × 29 mm)`,hint:`Una etiqueta por página; dimensionada para las etiquetas pequeñas de Brother PT/QL y Dymo.`},averyL7160:{label:`Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)`,hint:`Hojas de tamaño UE; 21 etiquetas por página A4.`},avery5160:{label:`Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)`,hint:`Hojas de tamaño EE. UU.; 30 etiquetas por página Letter.`}}},csv:{importButton:`Importar CSV`,exportButton:`Exportar CSV`,modalTitle:`Importar bobinas desde CSV`,selectFile:`Elige un archivo CSV o arrástralo aquí`,dragHint:`Encabezado: material (obligatorio), brand, subtype, color_name, rgba, …`,parsing:`Leyendo archivo…`,previewError:`No se pudo leer el archivo CSV`,validCount:`{{count}} válidas`,errorCount:`{{count}} con error`,skippedCount:`{{count}} omitidas`,colRow:`Fila`,colStatus:`Estado`,colColor:`Color`,colorResolved:`Color rellenado desde el catálogo`,colorCrossMaterial:`Color tomado de un material diferente — sin coincidencia exacta en el catálogo`,duplicateExisting:`Ya existe una bobina con este material, marca y color — se importará igualmente como una bobina nueva`,spoolmanHint:`En modo Spoolman, usa la importación/exportación CSV integrada de Spoolman.`,importValidRows:`Importar {{count}} filas válidas`,noValidRows:`Sin filas válidas`,importing:`Importando…`,importSuccess:`{{count}} bobinas importadas`,importError:`Error al importar`,exportError:`Error al exportar`},addSpool:`Añadir bobina`,editSpool:`Editar bobina`,copySpool:`Copiar bobina`,material:`Material`,selectMaterial:`Seleccionar material...`,subtype:`Subtipo`,brand:`Marca`,searchBrand:`Buscar marca...`,useCustomBrand:`Usar "{{brand}}"`,useCustomMaterial:`Usar material personalizado: {{material}}`,suggestedOptions:`Sugeridos`,allOptions:`Todos`,colorName:`Nombre del color`,colorNamePlaceholder:`Blanco jade, Rojo fuego...`,color:`Color`,hexColor:`Color hexadecimal`,pickColor:`Elegir color personalizado`,labelWeight:`Peso de la etiqueta`,coreWeight:`Peso de la bobina vacía`,searchSpoolWeight:`Buscar peso de la bobina...`,weightUsed:`Usado`,currentWeight:`Peso restante`,measuredWeight:`Peso medido`,spoolName:`Bobina`,costPerKg:`Coste por kg`,storageLocation:`Ubicación de almacenamiento`,storageLocationPlaceholder:`p. ej. Estante A, Cajón 1`,openInInventory:`Abrir en el inventario`,measuredWeightError:`El peso medido debe estar entre {{min}} g y {{max}} g.`,slicerFilament:`Filamento del laminador`,slicerFilamentName:`Nombre del preajuste del laminador`,slicerPreset:`Preajuste del laminador`,searchPresets:`Buscar preajustes de filamento...`,selectedPreset:`Seleccionado`,noPresetsFound:`No se encontraron preajustes`,tempOverrides:`Anulaciones de temperatura`,note:`Nota`,notePlaceholder:`Cualquier nota adicional sobre esta bobina...`,category:`Categoría`,categoryPlaceholder:`p. ej. Producción, Prototipo, Cliente A`,categoryNone:`Sin categoría`,storageLocationNone:`Sin ubicación establecida`,lowStockThresholdOverride:`Umbral de existencias bajas (esta bobina)`,lowStockThresholdOverrideHelp:`Déjelo en blanco para usar el umbral global ({{global}}%).`,clearRfid:`Borrar etiqueta RFID`,rfidCleared:`Etiqueta RFID borrada`,archive:`Archivar`,restore:`Restaurar`,noSpools:`Aún no hay bobinas. Añada su primera bobina para empezar.`,noAvailableSpools:`No hay bobinas disponibles. Añada una bobina a su inventario o desasigne una de otra ranura primero.`,kProfiles:`Perfiles K`,addKProfile:`Añadir perfil K`,assignSpool:`Asignar bobina`,unassignSpool:`Desasignar`,assignSuccess:`Bobina asignada y ranura del AMS configurada`,assignPendingInsert:`Asignada. La ranura se configurará cuando inserte la bobina.`,assignFailed:`Error al asignar la bobina`,selectSpool:`Seleccione una bobina para asignar a esta ranura`,assigned:`Asignada`,assigning:`Asignando...`,searchSpools:`Buscar bobinas...`,showAllSpools:`Mostrar todas las bobinas`,spoolmanSpools:`Bobinas de Spoolman`,allMaterials:`Todos los materiales`,filterByBrand:`Filtrar por marca...`,showArchived:`Mostrar archivadas`,quickAdd:`Añadir rápido (existencias)`,quantity:`Cantidad`,stock:`Existencias`,configured:`Configurada`,spoolsCreated:`{{count}} bobinas creadas`,spoolsPartiallyCreated:`{{created}} de {{total}} bobinas creadas (algunas fallaron)`,spoolCreated:`Bobina creada`,spoolUpdated:`Bobina actualizada`,spoolDeleted:`Bobina eliminada`,deepLinkSpoolNotFound:`Bobina no encontrada`,deepLinkFetchFailed:`No se pudo cargar la bobina — inténtelo de nuevo`,spoolArchived:`Bobina archivada`,spoolRestored:`Bobina restaurada`,kProfileSaveFailed:`No se pudieron guardar los ajustes del perfil K`,syncWeightSpoolNotFound:`Bobina no encontrada — es posible que se haya eliminado`,syncWeightSpoolmanUnreachable:`Spoolman no es accesible — inténtelo más tarde`,syncWeightFailed:`Error al sincronizar el peso`,spoolmanUnreachable:`Spoolman no es accesible — inténtelo de nuevo más tarde`,deleteSpoolNotFound:`Bobina no encontrada — es posible que ya se haya eliminado`,deleteFailed:`Error al eliminar la bobina`,archiveSpoolNotFound:`Bobina no encontrada — es posible que ya se haya eliminado`,archiveFailed:`Error al archivar la bobina`,restoreSpoolNotFound:`Bobina no encontrada — es posible que ya se haya eliminado`,restoreFailed:`Error al restaurar la bobina`,saveFailed:`Error al guardar los cambios`,tagClearFailed:`Error al borrar la etiqueta`,deleteConfirm:`¿Está seguro de que desea eliminar esta bobina? Esto no se puede deshacer.`,archiveConfirm:`¿Está seguro de que desea archivar esta bobina?`,advancedSettings:`Ajustes avanzados`,filamentInfoTab:`Información del filamento`,paProfileTab:`Perfil PA`,filamentInfo:`Filamento`,additional:`Adicional`,loadingPresets:`Cargando preajustes de la nube...`,cloudConnected:`Nube conectada`,cloudNotConnected:`Nube no conectada (usando los valores predeterminados)`,recentColors:`Recientes`,searchColors:`Buscar colores...`,searchResults:`Resultados de búsqueda`,allColors:`Todos los colores`,commonColors:`Colores comunes`,showLess:`Mostrar menos`,showAll:`Mostrar todos`,noColorsFound:`Ningún color coincide con su búsqueda`,noResults:`No se encontraron coincidencias`,extraColorsLabel:`Colores adicionales`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`Pegue de 2 a 8 paradas hexadecimales, separadas por comas. Se muestra como un degradado.`,extraColorsInvalid:`Se ignoró el hexadecimal no válido: {{tokens}}`,colorEffectLabel:`Efecto`,colorEffect:{none:`Ninguno`,sparkle:`Destellos`,wood:`Madera`,marble:`Mármol`,glow:`Brillante en la oscuridad`,matte:`Mate`,silk:`Seda`,galaxy:`Galaxia`,rainbow:`Arcoíris`,metal:`Metal`,translucent:`Translúcido`,gradient:`Degradado`,dualColor:`Bicolor`,triColor:`Tricolor`,multicolor:`Multicolor`},selectMaterialFirst:`Seleccione primero un material en la pestaña de información del filamento.`,noPrintersConfigured:`No hay impresoras configuradas. Añada impresoras para usar perfiles PA.`,matchingFilter:`Coincidentes`,anyBrand:`Cualquier marca`,anyVariant:`Cualquier variante`,autoSelect:`Selección automática`,matches:`coincidencias`,match:`coincidencia`,noMatches:`Sin coincidencias`,connected:`Conectada`,offline:`Desconectada`,printerOffline:`La impresora está desconectada. Conéctela para ver los perfiles de calibración.`,noKProfilesMatch:`Ningún perfil K coincide con el filamento seleccionado.`,leftNozzle:`Boquilla izquierda`,rightNozzle:`Boquilla derecha`,profilesSelected:`perfil(es) de calibración seleccionado(s)`,totalInventory:`Inventario total`,totalConsumed:`Total consumido`,byMaterial:`Por material`,inPrinter:`En la impresora`,lowStock:`Existencias bajas`,sinceTracking:`Desde que comenzó el seguimiento`,resetConsumedCounter:`Restablecer contador`,resetConsumedCounterTooltip:`Poner a cero el contador de gramos consumidos de esta bobina. El peso restante no cambia.`,resetConsumedCounterConfirm:`¿Restablecer a 0 el contador de gramos consumidos de esta bobina? Las impresiones futuras volverán a contar desde cero. La bobina en sí, su cálculo de peso restante y sus ajustes no cambian.`,resetAllConsumedCounters:`Restablecer todos los contadores`,resetAllConsumedCountersTooltip:`Poner a cero el contador de gramos consumidos de todas las bobinas. Los pesos restantes no cambian.`,resetAllConsumedCountersConfirm:`¿Restablecer a 0 el contador de gramos consumidos de las {{count}} bobinas (incluidas las archivadas)? Esto borra la estadística «Total consumido» para que las impresiones futuras cuenten desde cero. Las bobinas y los pesos restantes no cambian.`,consumedCounterReset:`Contador restablecido`,allConsumedCountersReset:`Contador restablecido para {{count}} bobina(s)`,resetConsumedCounterFailed:`Error al restablecer el contador`,loadedInAms:`Cargada en AMS/ext.`,remaining:`Restante`,weightCheck:`Comprobación de peso`,lastWeighed:`Pesada por última vez`,neverWeighed:`Nunca pesada`,search:`Buscar bobinas...`,showing:`Mostrando`,to:`a`,of:`de`,show:`Mostrar`,spools:`bobinas`,spool:`bobina`,page:`Página`,noSpoolsMatch:`No se encontraron resultados`,noSpoolsMatchDesc:`Pruebe a ajustar su búsqueda o sus filtros para encontrar lo que busca.`,active:`Activas`,archived:`Archivadas`,all:`Todas`,used:`Usada`,new:`Nueva`,clearFilters:`Borrar filtros`,table:`Tabla`,cards:`Tarjetas`,net:`Neto`,groupSimilar:`Agrupar`,groupedSpools:`{{count}} bobinas idénticas`,groupedRows:`filas`,columns:`Columnas`,configureColumns:`Configurar columnas`,configureColumnsDesc:`Arrastre para reordenar las columnas o use las flechas. Conmute la visibilidad con el icono del ojo.`,visible:`visibles`,reset:`Restablecer`,cancel:`Cancelar`,applyChanges:`Aplicar cambios`,moveUp:`Subir`,moveDown:`Bajar`,hideColumn:`Ocultar columna`,showColumn:`Mostrar columna`,linkToSpool:`Vincular a bobina`,tagLinked:`Etiqueta vinculada a la bobina`,tagLinkFailed:`Error al vincular la etiqueta`,tagAlreadyLinked:`La etiqueta ya está vinculada a otra bobina`,unknownTag:`Se detectó una etiqueta RFID desconocida`,usageHistory:`Historial de uso`,noUsageHistory:`Aún no se ha registrado ningún uso`,printName:`Nombre de la impresión`,weightConsumed:`Peso consumido`,clearHistory:`Borrar`,historyCleared:`Historial de uso borrado`,fillSourceLabel:`(Inv.)`,lowStockThresholdError:`El umbral debe estar entre 0,1 y 99,9`,assignMismatchTitle:`Discrepancia de material`,assignMismatchMessage:`El material de la bobina seleccionada "{{spoolMaterial}}" no coincide con el material de la bandeja "{{trayMaterial}}" de {{location}}. ¿Asignar de todos modos?`,assignMismatchConfirm:`Asignar de todos modos`,assignPartialMismatchMessage:`El material de la bobina "{{spoolMaterial}}" es similar pero no coincide exactamente con "{{trayMaterial}}" en {{location}}. ¿Desea continuar?`,assignProfileMismatchMessage:`El perfil de la bobina "{{spoolProfile}}" no coincide con el perfil de la bandeja "{{trayProfile}}" en {{location}}. ¿Desea continuar?`,assignReconfigureNote:`La ranura del AMS se reconfigurará para usar el perfil de la bobina.`,spoolmanFilamentCatalog:`Catálogo de filamentos de Spoolman`,pickFromSpoolmanCatalog:`Elegir del catálogo de Spoolman…`,spoolmanFilamentSelected:`Filamento seleccionado del catálogo de Spoolman`,spoolmanFilamentUnlinked:`Vínculo del catálogo de filamentos borrado`,noSpoolmanFilaments:`No se encontraron filamentos en el catálogo de Spoolman`,spoolmanFilamentColorSwatch:`Color del filamento`,spoolWeightManagedBySpoolman:`El peso de la bobina vacía se gestiona por tipo de filamento en Spoolman`,spoolmanCatalogLoadFailed:`Error al cargar el catálogo de filamentos de Spoolman`},timelapse:{title:`Time-lapse`,create:`Crear time-lapse`,download:`Descargar`,delete:`Eliminar`,preview:`Vista previa`,frameRate:`Velocidad de fotogramas`,quality:`Calidad`,processing:`Procesando...`,noTimelapses:`No hay time-lapses disponibles`},ams:{title:`AMS`,slot:`Ranura`,empty:`Vacía`,emptySlot:`Ranura vacía`,slotEmpty:`Vacía`,slotUnconfigured:`?`,emptySlotReset:`No hay filamento asignado`,unknown:`Desconocido`,humidity:`Humedad`,temperature:`Temperatura`,filamentType:`Tipo de filamento`,filamentColor:`Color`,remaining:`Restante`,history:`Historial del AMS`,noHistory:`No hay historial disponible`,configureSlot:`Configurar ranura`,externalSpool:`Bobina externa`,profile:`Perfil`,kFactor:`Factor K`,fill:`Rellenar`,configure:`Configurar`,used:`usado`,remainingUnit:`restante`},printModal:{selectPrinter:`Seleccionar impresora`,selectPlate:`Seleccionar cama`,filamentMapping:`Mapeo de filamentos`,plateN:`Cama {{n}}`,plateFilamentsUnreadable:`No se han podido leer los filamentos de una cama seleccionada, por lo que no se puede asignar. Deselecciónala para encolar las demás.`,totalCost:`Coste total:`,slotRemainingShort:` - quedan {{grams}} g`,printSettings:`Ajustes de impresión`,bedLeveling:`Nivelación de la cama`,flowCalibration:`Calibración del flujo`,vibrationCalibration:`Calibración de vibración`,layerInspection:`Inspección de la primera capa`,timelapse:`Time-lapse`,cancel:`Cancelar`,noPrintersAvailable:`No hay impresoras disponibles`,printerBusy:`La impresora está ocupada`,printerOffline:`La impresora está desconectada`,sameTypeDifferentColor:`Mismo tipo, color distinto`,filamentTypeNotLoaded:`Tipo de filamento no cargado`,whenToPrint:`Cuándo imprimir`,asap:`Lo antes posible`,queue:`Cola`,schedule:`Programar`,dateTime:`Fecha y hora`,invalidDateTime:`Introduzca una fecha y hora válidas`,openCalendar:`Abrir calendario`,requireManualStart:`Requerir inicio manual`,requirePreviousSuccess:`Iniciar solo si la impresión anterior se completó correctamente`,autoOffAfter:`Apagar la impresora al terminar`,helpAsap:`La impresión se añadirá al principio de la cola y comenzará en cuanto haya una impresora elegible inactiva.`,helpSchedule:`La impresión comenzará a la hora programada si la impresora está inactiva. Si está ocupada, esperará hasta que esté disponible.`,helpQueue:`La impresión se añadirá al final de la cola.`,leftNozzle:`I`,rightNozzle:`D`,leftNozzleTooltip:`Boquilla izquierda`,rightNozzleTooltip:`Boquilla derecha`,filamentOverride:`Anulación de filamento`,filamentOverrideHint:`Anule opcionalmente los filamentos para la asignación basada en el modelo. El planificador comparará con los filamentos que ha seleccionado en lugar de los valores originales del 3MF.`,originalFilament:`Original`,overrideWith:`Anular con`,resetToOriginal:`Restablecer al original`,insufficientFilamentTitle:`No hay suficiente filamento`,waitingForAmsStatus:`Esperando el estado del AMS de {{printer}}…`,insufficientFilamentMessage:`Algunas bobinas asignadas tienen menos filamento restante del que necesita esta impresión:`,insufficientFilamentLine:`{{printer}} - {{slot}}: necesita {{required}} g, restante {{remaining}} g`,printAnyway:`Imprimir de todos modos`,forceColorMatch:`Forzar la coincidencia de color`,staggerPrinterStarts:`Escalonar los inicios de las impresoras`,staggerGroupSize:`Tamaño de grupo`,staggerInterval:`Intervalo (min)`,staggerPreview:`{{printers}} impresoras → {{groups}} grupos de {{size}}, iniciando cada {{interval}} min`,staggerLastGroup:`último grupo: {{count}}`,staggerTotal:`total: {{minutes}} min`,staggerToPrinters:`Escalonar en {{count}} impresoras`,gcodeInjection:`Inyectar G-code de impresión automática`},backup:{includesEncryptionKey:`Las copias de seguridad locales incluyen el archivo de clave de cifrado de MFA (DATA_DIR/.mfa_encryption_key) para que un ZIP de copia de seguridad sea autónomo. Trate el ZIP como información sensible — cualquiera que tenga el archivo puede descifrar los secretos de cliente de OIDC y los secretos TOTP que contiene.`,title:`Copia de seguridad y restauración`,createBackup:`Crear copia de seguridad`,restoreBackup:`Restaurar copia de seguridad`,restoreDescription:`Reemplazar todos los datos desde un archivo de copia de seguridad`,downloadBackup:`Descargar copia de seguridad`,uploadBackup:`Subir copia de seguridad`,lastBackup:`Última copia de seguridad`,autoBackup:`Copia de seguridad automática`,backupNow:`Hacer copia de seguridad ahora`,restoreWarning:`Advertencia: restaurar una copia de seguridad sobrescribirá todos los datos actuales.`,includeArchives:`Incluir archivos`,includeSettings:`Incluir ajustes`,includeProfiles:`Incluir perfiles`,backupSuccess:`Copia de seguridad creada correctamente`,restoreSuccess:`Copia de seguridad restaurada correctamente`,backupFailed:`Error en la copia de seguridad`,restoreFailed:`Error en la restauración`,restoreNote:`La impresora virtual se detendrá durante la restauración`,githubBackup:`Copia de seguridad en Git`,enabled:`Activada`,cloudLoginRequired:`Se requiere iniciar sesión en Bambu Cloud. Inicie sesión en Perfiles → Perfiles en la nube para activar la copia de seguridad en GitHub.`,cloudLoginRequiredShort:`Se requiere iniciar sesión en la nube`,githubDescription:`Sincronice automáticamente sus perfiles con un repositorio privado de GitHub para la copia de seguridad y el historial de versiones.`,repoIsPrivate:`El repositorio es privado — es seguro hacer copias de seguridad en él.`,repoIsPublicWarning:`El repositorio es PÚBLICO. Las copias de seguridad de Bambuddy incluyen credenciales de MQTT, tokens de Home Assistant, tokens de Prometheus, su correo de Bambu Cloud y los códigos de acceso de las impresoras mediante los perfiles K. El guardado está bloqueado hasta que haga el repositorio privado en los ajustes de su proveedor.`,repoVisibilityUnknown:`No se pudo determinar la visibilidad del repositorio. Bambuddy se niega a hacer copias de seguridad en cualquier cosa que no se confirme como privada; el guardado se bloqueará.`,repositoryUrl:`URL del repositorio`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`Permitir HTTP no seguro`,allowInsecureHttpHint:`Actívelo para instancias autoalojadas en redes privadas sin TLS`,personalAccessToken:`Token de acceso personal`,tokenSaved:`(guardado)`,enterNewToken:`Introduzca un nuevo token para actualizar`,tokenHint:`Token de granularidad fina con permiso de lectura/escritura de Contents`,branch:`Rama`,provider:`Proveedor de Git`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`Solo manual`,hourly:`Cada hora`,daily:`Diaria`,weekly:`Semanal`,includeInBackup:`Incluir en la copia de seguridad`,kProfiles:`Perfiles K`,kProfilesDescription:`Calibración de avance de presión de las impresoras conectadas`,noPrintersConnected:`No hay impresoras conectadas`,printersConnected:`{{connected}}/{{total}} conectadas`,cloudProfiles:`Perfiles en la nube`,cloudProfilesDescription:`Preajustes de filamento, impresora y proceso de Bambu Cloud`,appSettings:`Ajustes de la aplicación`,appSettingsDescription:`Configuración de Bambuddy (base de datos completa)`,spoolInventory:`Inventario de bobinas`,spoolInventoryDescription:`Bobinas de filamento, historial de uso y seguimiento de costes`,printArchives:`Archivos de impresión`,printArchivesDescription:`Metadatos del historial de impresión (sin archivos gcode/3MF)`,lastBackupAt:`Última copia de seguridad:`,noBackupsYet:`Aún no hay copias de seguridad`,next:`Siguiente:`,startingBackup:`Iniciando la copia de seguridad...`,test:`Probar`,enableBackup:`Activar la copia de seguridad`,testConnection:`Probar conexión`,enterRepoUrl:`Introduzca la URL del repositorio`,enterRepoAndToken:`Introduzca la URL del repositorio y el token de acceso`,repoRequired:`La URL del repositorio es obligatoria`,tokenRequired:`El token de acceso es obligatorio`,githubBackupEnabled:`Copia de seguridad en GitHub activada`,tokenUpdated:`Token actualizado`,settingsSaved:`Ajustes guardados`,failedToSave:`Error al guardar: {{message}}`,backupCompleteFiles:`Copia de seguridad completada - {{count}} archivos actualizados`,backupSkippedNoChanges:`Copia de seguridad omitida - sin cambios`,backupFailed2:`Error en la copia de seguridad: {{message}}`,clearedLogs:`Se borraron {{count}} registros`,failedToClearLogs:`Error al borrar los registros: {{message}}`,history:`Historial`,clear:`Borrar`,date:`Fecha`,status:`Estado`,commit:`Confirmación`,localBackup:`Copia de seguridad local`,localBackupDescription:`Cree una copia de seguridad completa de sus datos de Bambuddy, incluida la base de datos, los archivos, las subidas y todos los archivos.`,downloadBackupLabel:`Descargar copia de seguridad`,completeBackupZip:`Copia de seguridad completa: base de datos + todos los archivos (ZIP)`,download:`Descargar`,preparingBackup:`Preparando la copia de seguridad...`,creatingArchive:`Creando el archivo de copia de seguridad... Esto puede tardar un rato para archivos grandes.`,downloadingFile:`Descargando el archivo de copia de seguridad...`,backupDownloaded:`Copia de seguridad descargada correctamente`,failedToCreateBackup:`Error al crear la copia de seguridad: {{message}}`,restore:`Restaurar`,restoreReplacesAll:`La restauración reemplaza todos los datos.`,restoreReplacesAllDetail:`Su base de datos y archivos actuales se reemplazarán por completo. Se requiere un reinicio tras la restauración.`,restoreConfirmTitle:`Restaurar copia de seguridad`,restoreConfirmMessage:`¿Está seguro de que desea restaurar desde "{{filename}}"? Esto reemplazará por completo su base de datos actual y todos los archivos. La aplicación deberá reiniciarse tras la restauración.`,restoreConfirmButton:`Restaurar copia de seguridad`,uploadingFile:`Subiendo el archivo de copia de seguridad...`,backupRestoredRestart:`Copia de seguridad restaurada. Reinicie Bambuddy.`,failedToRestore:`Error al restaurar la copia de seguridad. Compruebe el formato del archivo.`,reloadNow:`Recargar ahora`,creatingBackup:`Creando copia de seguridad`,restoringBackup:`Restaurando copia de seguridad`,preparing:`Preparando...`,processing:`Procesando...`,doNotClosePage:`No cierre esta página ni navegue a otra. Esta operación puede tardar varios minutos para copias de seguridad grandes.`,restoring:`Restaurando...`,restoreComplete:`Restauración completada`,restoreFailed2:`Error en la restauración`,importSettings:`Importar ajustes desde un archivo de copia de seguridad`,pleaseWaitRestoring:`Espere mientras se restauran sus datos`,selectBackupFile:`Haga clic para seleccionar el archivo de copia de seguridad (.json o .zip)`,duplicateHandling:`Cómo funciona la gestión de duplicados:`,matchPrinters:`Impresoras`,matchPrintersBy:`coincidencia por número de serie`,matchSmartPlugs:`Enchufes inteligentes`,matchSmartPlugsBy:`coincidencia por dirección IP`,matchNotificationProviders:`Proveedores de notificaciones`,matchNotificationProvidersBy:`coincidencia por nombre`,matchFilaments:`Filamentos`,matchFilamentsBy:`coincidencia por nombre + tipo + marca`,matchArchives:`Archivos`,matchArchivesBy:`coincidencia por hash del contenido (siempre se omiten)`,matchPendingUploads:`Subidas pendientes`,matchPendingUploadsBy:`coincidencia por nombre de archivo`,matchSettingsTemplates:`Ajustes y plantillas`,matchSettingsTemplatesBy:`siempre se sobrescriben`,replaceExisting:`Reemplazar los datos existentes`,keepExisting:`Conservar los datos existentes`,overwriteDescription:`Sobrescribir los elementos que ya existen con los datos de la copia de seguridad`,keepDescription:`Restaurar solo los elementos que aún no existen`,overwriteCaution:`Precaución:`,overwriteWarning:`Sobrescribir reemplazará sus configuraciones actuales con los datos de la copia de seguridad. Los códigos de acceso de las impresoras nunca se sobrescriben por seguridad.`,cancel:`Cancelar`,processingBackup:`Procesando el archivo de copia de seguridad...`,itemsRestored:`Elementos restaurados`,itemsSkipped:`Elementos omitidos`,restored:`Restaurados`,skippedAlreadyExist:`Omitidos (ya existen)`,filesCategory:`Archivos (3MF, miniaturas, etc.)`,andMore:`...y {{count}} más`,newApiKeysGenerated:`Nuevas claves API generadas`,keysShownOnce:`Estas claves solo se muestran una vez. ¡Cópielas ahora!`,copy:`Copiar`,noDataFound:`No se encontraron datos para restaurar en el archivo de copia de seguridad.`,close:`Cerrar`,scheduledBackup:`Copias de seguridad programadas`,scheduledBackupDescription:`Cree automáticamente instantáneas de copia de seguridad según una programación. El directorio de salida se puede montar en un NAS o en almacenamiento externo.`,frequency:`Frecuencia`,backupTime:`Hora`,retention:`Retención`,retentionDescription:`Número de copias de seguridad que conservar`,outputPath:`Ruta de salida`,outputPathPlaceholder:`Predeterminada: {{path}}`,outputPathDescription:`Déjelo vacío para la ubicación predeterminada`,runNow:`Ejecutar ahora`,backupFiles:`Archivos de copia de seguridad`,noScheduledBackups:`Aún no hay copias de seguridad`,deleteBackup:`Eliminar`,deleteBackupConfirm:`¿Eliminar este archivo de copia de seguridad?`,backupRunning:`Copia de seguridad en curso...`,scheduledBackupComplete:`Copia de seguridad completada correctamente`,scheduledBackupFailed:`Error en la copia de seguridad`,nextBackup:`Próxima copia de seguridad`,backupSize:`Tamaño`,localTimeHint:`Hora local ({{tz}})`,defaultPathLabel:`Predeterminada:`,pathCheck:{title:`Bambuddy no puede escribir en este directorio`,howToFix:`Cómo solucionarlo:`,sandboxed:`El servicio de Bambuddy no puede escribir en {{path}}. Su unidad de systemd se ejecuta con ProtectSystem=strict, lo que hace que todo directorio fuera de los de instalación, datos y registros sea de solo lectura para el servicio, incluso uno en el que usted sí puede escribir desde su propia shell.`,read_only:`{{path}} está en un sistema de archivos de solo lectura.`,permission_denied:`Bambuddy no tiene permiso para escribir en {{path}}. Compruebe el propietario y los permisos del directorio.`,no_space:`El sistema de archivos que contiene {{path}} está lleno.`,not_a_directory:`{{path}} existe pero no es un directorio.`,missing:`{{path}} no existe y no se pudo crear.`,error:`Bambuddy no puede escribir en {{path}}.`,ephemeralTitle:`Estas copias de seguridad no sobrevivirán a la recreación del contenedor`,container_ephemeral:`{{path}} está dentro del contenedor de Bambuddy, no en el host. Las copias escritas ahí se pierden cuando se recrea el contenedor. Monte el directorio desde el host:`},categories:{settings:`Ajustes`,notification_providers:`Proveedores de notificaciones`,notification_templates:`Plantillas de notificaciones`,smart_plugs:`Enchufes inteligentes`,printers:`Impresoras`,filaments:`Filamentos`,maintenance_types:`Tipos de mantenimiento`,archives:`Archivos`,projects:`Proyectos`,pending_uploads:`Subidas pendientes`,external_links:`Enlaces externos`,api_keys:`Claves API`}},tags:{title:`Etiquetas`,addTag:`Añadir etiqueta`,editTag:`Editar etiqueta`,deleteTag:`Eliminar etiqueta`,tagName:`Nombre de la etiqueta`,tagColor:`Color de la etiqueta`,noTags:`No hay etiquetas`,deleteConfirm:`¿Está seguro de que desea eliminar esta etiqueta?`,manageTags:`Gestionar etiquetas`},uploadModal:{title:`Subir archivos 3MF`,dragDrop:`Arrastre y suelte archivos .3mf aquí`,or:`o`,browseFiles:`Examinar archivos`,extractionInfo:`El modelo de impresora se extraerá automáticamente de los metadatos del archivo 3MF.`,uploaded:`subidos`,failed:`fallidos`,uploading:`Subiendo...`,upload:`Subir`,uploadFailed:`Error al subir`},editArchive:{title:`Editar archivo`,name:`Nombre`,namePlaceholder:`Nombre de la impresión`,printer:`Impresora`,noPrinter:`Sin impresora`,project:`Proyecto`,noProject:`Sin proyecto`,itemsPrinted:`Elementos impresos`,itemsPrintedHelp:`Número de elementos producidos en este trabajo de impresión`,notes:`Notas`,notesPlaceholder:`Añada notas sobre esta impresión...`,externalLink:`Enlace externo`,externalLinkPlaceholder:`https://printables.com/model/...`,externalLinkHelp:`Enlace a Printables, Thingiverse u otra fuente`,tags:`Etiquetas`,tagsPlaceholder:`Añada etiquetas...`,addMoreTags:`Añada más etiquetas...`,matchingTags:`Coincidentes con "{{query}}"`,existingTags:`Etiquetas existentes`,clickToAdd:`(haga clic para añadir)`,status:`Estado`,failureReason:`Motivo del fallo`,selectReason:`Seleccionar motivo...`,photos:`Fotos del resultado impreso`,photosHelp:`Haga clic en + para añadir fotos de su resultado impreso`,printResult:`Resultado de la impresión`,saving:`Guardando...`,failureReasons:{adhesionFailure:`Fallo de adhesión`,spaghettiDetached:`Espagueti / Desprendido`,layerShift:`Desplazamiento de capa`,cloggedNozzle:`Boquilla obstruida`,filamentRunout:`Agotamiento del filamento`,warping:`Alabeo`,stringing:`Hilos`,underExtrusion:`Subextrusión`,powerFailure:`Corte de corriente`,userCancelled:`Cancelada por el usuario`,other:`Otro`},statuses:{completed:`Completada`,failed:`Fallida`,aborted:`Cancelada`,printing:`Imprimiendo`}},kProfiles:{title:`Perfiles K`,noPrintersConfigured:`No hay impresoras configuradas`,addPrinterInSettings:`Añada una impresora en Ajustes para gestionar perfiles K`,noActivePrinters:`No hay impresoras activas`,enablePrinterConnection:`Active la conexión de una impresora para ver sus perfiles K`,loadingProfiles:`Cargando perfiles K...`,printerOffline:`Impresora desconectada`,printerOfflineDesc:`La impresora seleccionada no está conectada. Enciéndala para ver los perfiles K.`,noMatchingProfiles:`No hay perfiles coincidentes`,noMatchingProfilesDesc:`Ningún perfil coincide con sus criterios de búsqueda`,noKProfiles:`No hay perfiles K`,noKProfilesDesc:`No se encontraron perfiles de avance de presión para la boquilla de {{diameter}} mm`,createFirstProfile:`Crear el primer perfil`,printer:`Impresora`,nozzle:`Boquilla`,refresh:`Actualizar`,addProfile:`Añadir perfil`,export:`Exportar`,import:`Importar`,select:`Seleccionar`,selectAll:`Seleccionar todo`,delete:`Eliminar`,searchPlaceholder:`Buscar por nombre o filamento...`,allExtruders:`Todos los extrusores`,leftOnly:`Solo izquierdo`,rightOnly:`Solo derecho`,allFlow:`Todos los flujos`,hfOnly:`Solo flujo alto`,sOnly:`Solo estándar`,sortName:`Ordenar: nombre`,sortKValue:`Ordenar: valor K`,sortFilament:`Ordenar: filamento`,leftExtruder:`Extrusor izquierdo`,rightExtruder:`Extrusor derecho`,modal:{addTitle:`Añadir perfil K`,editTitle:`Editar perfil K`,profileName:`Nombre del perfil`,profileNamePlaceholder:`Mi perfil de PLA`,kValue:`Valor K`,kValuePlaceholder:`0,020`,kValueHelp:`Rango típico: 0,01 - 0,06 para PLA, 0,02 - 0,10 para PETG`,filament:`Filamento`,selectFilament:`Seleccionar filamento...`,noFilamentsHelp:`No se encontraron filamentos. Cree primero un perfil K en Bambu Studio.`,flowType:`Tipo de flujo`,highFlow:`Flujo alto`,standard:`Estándar`,nozzleSize:`Tamaño de la boquilla`,extruder:`Extrusor`,extruders:`Extrusores`,left:`Izquierdo`,right:`Derecho`,notes:`Notas (almacenadas localmente)`,notesPlaceholder:`Añada notas sobre este perfil...`,notesHelp:`Las notas se guardan en Bambuddy, no en la impresora`,syncing:`Sincronizando con la impresora...`,savingExtruder:`Guardando en el extrusor {{current}}/{{total}}...`,pleaseWait:`Espere`},deleteConfirm:{title:`Eliminar perfil`,cannotUndo:`Esto no se puede deshacer`,message:`¿Está seguro de que desea eliminar "{{name}}" de la impresora?`},bulkDelete:{title:`Eliminar perfiles`,cannotUndo:`Esto no se puede deshacer`,message:`¿Está seguro de que desea eliminar {{count}} perfiles seleccionados de la impresora?`},toast:{profileSaved:`Perfil K guardado`,profilesSaved:`Perfil K guardado en {{count}} extrusores`,selectAtLeastOneExtruder:`Seleccione al menos un extrusor`,profileDeleted:`Perfil K eliminado`,profilesDeleted:`Se eliminaron {{count}} perfiles`,exportedProfiles:`Se exportaron {{count}} perfiles`,importedProfiles:`Se importaron {{count}} de {{total}} perfiles`,noProfilesToExport:`No hay perfiles que exportar`,invalidFileFormat:`Formato de archivo no válido`,failedToParseImport:`Error al analizar el archivo de importación`,failedToSaveBatch:`Error al guardar los perfiles K`,noteSaved:`Nota guardada`,failedToSaveNote:`Error al guardar la nota`},permission:{noRead:`No tiene permiso para actualizar perfiles`,noCreate:`No tiene permiso para añadir perfiles`,noUpdate:`No tiene permiso para actualizar perfiles K`,noDelete:`No tiene permiso para eliminar perfiles K`,noExport:`No tiene permiso para exportar perfiles`,noImport:`No tiene permiso para importar perfiles`}},virtualPrinter:{title:`Impresora virtual`,running:`En ejecución`,stopped:`Detenida`,description:{default:`Active una impresora virtual que aparece en Bambu Studio y OrcaSlicer. Los archivos enviados a esta impresora se archivarán directamente sin imprimir.`,proxy:`Active un proxy que retransmite el tráfico del laminador a una impresora real, permitiendo la impresión remota a través de cualquier red.`},enable:{title:`Activar la impresora virtual`,visibleInSlicer:`Visible como "Bambuddy" en la detección del laminador`,proxyingTo:`Haciendo de proxy hacia {{name}}`,notActive:`No activa`},model:{title:`Modelo de impresora`,description:`Seleccione qué modelo de impresora emular.`,restartWarning:`Cambiar el modelo reiniciará la impresora virtual`},accessCode:{title:`Código de acceso`,isSet:`El código de acceso está establecido`,notSet:`No hay código de acceso establecido - necesario para activarla`,placeholder:`Introduzca un código de 8 caracteres`,placeholderChange:`Introduzca un nuevo código para cambiarlo`,hint:`Debe tener exactamente 8 caracteres. Los laminadores lo usan para autenticarse.`,charCount:`({{count}}/8)`,inheritedFromTarget:`Heredado de la impresora de destino`,derivedFromTargetHint:`Usa el código de acceso de la impresora de destino. El puente reenvía la autenticación del laminador a la impresora real, por lo que los códigos deben coincidir — edita el código en los ajustes de la impresora para cambiarlo.`,reveal:`Mostrar código de acceso`,hide:`Ocultar código de acceso`},targetPrinter:{title:`Impresora de destino`,configured:`Destino del proxy configurado`,notConfigured:`No hay impresora de destino seleccionada - necesaria para el modo proxy`,placeholder:`Seleccionar una impresora...`,hint:`Seleccione la impresora a la que retransmitir el tráfico del laminador. La impresora debe estar en modo LAN.`,noPrinters:`No hay impresoras configuradas. Añada primero una impresora para usar el modo proxy.`},remoteInterface:{title:`Anulación de la interfaz de red`,configured:`Anulación de la interfaz activa`,optional:`Opcional - úsela si la IP detectada automáticamente es incorrecta (p. ej. varias tarjetas de red, Docker, VPN)`,placeholder:`Detección automática (predeterminada)...`,hint:`Anula la dirección IP anunciada mediante SSDP y usada en el certificado TLS. Útil cuando Bambuddy tiene varias interfaces de red.`},mode:{title:`Modo`,archive:`Archivar`,archiveDesc:`Archivar los archivos inmediatamente`,review:`Revisar`,reviewDesc:`Revisar antes de archivar`,queue:`Encolar`,queueDesc:`Archivar y añadir a la cola`,proxy:`Proxy`,proxyDesc:`Retransmitir a una impresora real`},autoDispatch:{title:`Envío automático`,description:`Iniciar automáticamente las impresiones al añadirlas a la cola. Cuando está desactivado, las impresiones esperan al envío manual.`},queueForceColorMatch:{title:`Forzar la coincidencia de color`,description:`Negarse a enviar a una impresora que no tiene cargados el tipo y el color exactos de filamento. Desactivado de forma predeterminada — sin esto, la cola usa la coincidencia solo por modelo y puede elegir una impresora con el color equivocado cargado.`},gcodeInjection:{title:`Inyección de G-code`,description:`Aplica los fragmentos de G-code configurados por modelo en Ajustes a los trabajos de esta IV. Desactivado de forma predeterminada.`},tailscaleDisabled:{title:`Integración con Tailscale`,description:`Actívelo para marcar esta IV como expuesta a través de Tailscale. Muestra la dirección de Tailscale del host para que sepa qué IP pegar en el laminador. El paso de importación de la CA no cambia — este interruptor no tiene ningún efecto sobre los certificados.`},setupRequired:{title:`Configuración necesaria`,description:`La función de impresora virtual requiere configuración adicional del sistema antes de funcionar. Esto incluye el reenvío de puertos, las reglas del cortafuegos y los ajustes específicos de la plataforma.`,readGuide:`Lea la guía de configuración antes de activarla`},archiveNameSource:{title:`Origen del nombre del archivo`,description:`Elija cómo se nombran los archivos nuevos cuando llegan a través de la impresora virtual. «Metadatos» usa el título incrustado por el laminador del 3MF (predeterminado). «Nombre de archivo» usa el nombre de archivo que Bambu Studio envió por FTP. Nota: Bambu Studio sobrescribe el nombre que escribe en el diálogo «enviar a la impresora» con el campo Título del 3MF cuando existe, por lo que ambos modos suelen producir la misma cadena.`,metadata:`Metadatos`,filename:`Nombre de archivo`},caCert:{title:`Certificado del laminador`,description:`Las impresoras virtuales usan un certificado TLS firmado por la CA de Bambuddy. Importe este certificado de CA en el almacén de confianza de su laminador una sola vez para que acepte la conexión — sin necesidad de copiarlo desde la línea de comandos.`,copy:`Copiar`,copied:`Copiado`,download:`Descargar`,fingerprint:`SHA-256`},howItWorks:{title:`Cómo funciona`,step1:`En la misma LAN, las impresoras virtuales aparecen automáticamente en su laminador (Bambu Studio / OrcaSlicer) mediante detección. Desde otras redes, añádalas manualmente por dirección IP y código de acceso.`,step2:`En los modos Archivar, Revisar y Encolar, use el botón «Enviar» de su laminador para subir archivos 3MF a Bambuddy. El laminador mostrará «Impresión correcta» — el archivo se almacena, no se imprime.`,step3:`En el modo Proxy, la impresora virtual retransmite todo el tráfico a una impresora real — las impresiones comienzan inmediatamente como si estuviera conectada directamente.`},status:{title:`Detalles del estado`,printerName:`Nombre de la impresora`,model:`Modelo`,serialNumber:`Número de serie`,mode:`Modo`,pendingFiles:`Archivos pendientes`,targetPrinter:`Impresora de destino`,ftpPort:`Puerto FTP`,mqttPort:`Puerto MQTT`,ftpConnections:`Conexiones FTP`,mqttConnections:`Conexiones MQTT`},toast:{updated:`Ajustes de la impresora virtual actualizados`,failedToUpdate:`Error al actualizar los ajustes`,copyFailed:`Error al copiar — pruebe a seleccionar el texto manualmente`,accessCodeRequired:`Establezca primero un código de acceso`,targetPrinterRequired:`Seleccione primero una impresora de destino`,bindIpRequired:`Establezca primero una IP de enlace`,accessCodeEmpty:`El código de acceso no puede estar vacío`,accessCodeLength:`El código de acceso debe tener exactamente 8 caracteres`,targetCodeChangedRebind:`El código de acceso ahora coincide con la nueva impresora de destino. Vuelve a añadir este dispositivo en tu laminador para usar el nuevo código.`,created:`Impresora virtual creada`,failedToCreate:`Error al crear la impresora virtual`,deleted:`Impresora virtual eliminada`,failedToDelete:`Error al eliminar la impresora virtual`},list:{title:`Impresoras virtuales`,add:`Añadir`,addFirst:`Añadir impresora virtual`,empty:`No hay impresoras virtuales configuradas. Añada una para empezar.`},bindIp:{title:`Interfaz de enlace`,placeholder:`Seleccionar interfaz...`,hint:`Interfaz de red a la que se enlaza esta impresora virtual. Debe ser única por impresora.`},proxy:{accessCodeHint:`En el modo proxy, use el código de acceso de su impresora de destino en el laminador. La conexión se reenvía de forma transparente a la impresora real.`},addDialog:{title:`Añadir impresora virtual`,name:`Nombre`,hint:`Puede configurar el código de acceso, la impresora de destino y otros ajustes después de crearla.`,create:`Crear`},deleteConfirm:{title:`Eliminar impresora virtual`,message:`¿Está seguro de que desea eliminar "{{name}}"? Esto detendrá todos los servicios de esta impresora.`}},modelViewer:{openInSlicer:`Abrir en el laminador`,tabs:{model:`Modelo 3D`,gcode:`Vista previa de G-code`},notAvailable:`no disponible`,notSliced:`no laminado`,plates:`Camas`,allPlates:`Todas las camas`,plateNumber:`Cama {{number}}`,plateCount:`{{count}} cama`,plateCount_other:`{{count}} camas`,objectCount:`{{count}} objeto`,objectCount_other:`{{count}} objetos`,filamentCount:`{{count}} filamento`,filamentCount_other:`{{count}} filamentos`,eta:`Tiempo estimado {{minutes}} min`,noPreview:`No hay vista previa disponible para este archivo`,pagination:{pageOf:`Página {{current}} de {{total}}`,prev:`Anterior`,next:`Siguiente`},errors:{failedToLoad:`Error al cargar el archivo`,noMeshes:`No se encontraron mallas en el archivo 3MF`,unsupportedFormat:`Formato de archivo no compatible`}},maintenanceDescriptions:{lubricateCarbonRods:`Aplique lubricante a las varillas de carbono para un movimiento suave`,lubricateRails:`Aplique lubricante a las guías lineales para un movimiento suave`,cleanNozzle:`Limpie el fusor y la boquilla para evitar obstrucciones`,checkBelts:`Verifique la tensión de las correas para impresiones precisas`,cleanBuildPlate:`Limpie la cama de impresión para una mejor adhesión`,checkExtruder:`Inspeccione los engranajes del extrusor en busca de desgaste`,checkCooling:`Asegúrese de que los ventiladores de refrigeración funcionan correctamente`,generalInspection:`Inspección general de la impresora`,cleanCarbonRods:`Limpie las varillas de carbono para reducir la fricción`,lubricateSteelRods:`Aplique lubricante a las varillas de acero para un movimiento suave`,cleanSteelRods:`Limpie las varillas de acero para reducir la fricción`,cleanLinearRails:`Limpie las guías lineales para eliminar el polvo y los residuos`,checkPtfeTube:`Inspeccione el tubo de PTFE en busca de desgaste o daños`,replaceHepaFilter:`Reemplace el filtro HEPA para la calidad del aire`,replaceCarbonFilter:`Reemplace el filtro de carbón activado`,lubricateLeftNozzleRail:`Lubrique la guía de la boquilla izquierda (serie H2)`},smartPlugs:{offline:`Desconectado`,admin:`Administración`,openPlugAdminPage:`Abrir la página de administración del enchufe`,deleteSmartPlug:`Eliminar enchufe inteligente`,turnOnSmartPlug:`Encender el enchufe inteligente`,turnOffSmartPlug:`Apagar el enchufe inteligente`,turnOn:`Encender`,turnOff:`Apagar`,addSmartPlug:{scanningNetwork:`Escaneando la red...`,chooseEntity:`Elija una entidad...`,connectionFailed:`Error de conexión`,searchEntities:`Buscar entidades...`,searchPowerSensors:`Buscar sensores de potencia...`,searchEnergySensors:`Buscar sensores de energía...`,placeholders:{plugName:`Enchufe del salón`,mqttStateOnValue:`ON, true, 1`,mqttSameAsPower:`Igual que el tema de potencia, o distinto`}},linkedTo:`Vinculado a:`,monitorOnly:`Solo supervisión`,alerts:`Alertas`,scheduleOn:`Encendido a las {{time}}`,scheduleOff:`Apagado a las {{time}}`,on:`Encendido`,off:`Apagado`,power:`Potencia`,kwhToday:`kWh hoy`,settings:`Ajustes`,automationSettings:`Ajustes de automatización`,showInSwitchbar:`Mostrar en la barra de interruptores`,quickAccessSidebar:`Acceso rápido desde la barra lateral`,enabled:`Activada`,enableAutomation:`Activar la automatización para este enchufe`,autoOn:`Encendido automático`,autoOnDescription:`Encender cuando comienza la impresión`,autoOff:`Apagado automático`,autoOffDescription:`Apagar cuando se completa la impresión (una sola vez)`,autoOffPersistent:`Mantener activado`,autoOffPersistentDescription:`Permanecer activado entre impresiones en lugar de una sola vez`,controlsPrinterPower:`Alimenta la impresora`,controlsPrinterPowerDescription:`Desactívalo si este enchufe solo alimenta un accesorio (ventilador de filtro, luces). De lo contrario, apagarlo marca la impresora como desconectada.`,autoOffAfterDrying:`Apagado automático tras el secado`,autoOffAfterDryingDescription:`Apagar cuando se completa el secado del AMS`,delayAfterDryingMinutes:`Retardo de secado (minutos)`,turnOffDelayMode:`Modo de retardo de apagado`,time:`Tiempo`,temp:`Temp.`,delayMinutes:`Retardo (minutos)`,tempThreshold:`Umbral de temperatura (°C)`,tempThresholdDescription:`Se apaga cuando la boquilla se enfría por debajo de esta temperatura`,edit:`Editar`,deleteConfirm:`¿Está seguro de que desea eliminar "{{name}}"? Esto no se puede deshacer.`,turnOnConfirm:`¿Está seguro de que desea encender "{{name}}"?`,turnOffConfirm:`¿Está seguro de que desea apagar "{{name}}"? Esto cortará la corriente al dispositivo conectado.`,failedToTurn:`Error al {{action}} "{{name}}"`,unknown:`Desconocido`,addTitle:`Añadir enchufe inteligente`,editTitle:`Editar enchufe inteligente`,stopScanning:`Detener escaneo`,discoverTasmota:`Detectar dispositivos Tasmota`,foundDevices:`Se encontraron {{count}} dispositivo(s) - haga clic para seleccionar:`,noDevicesFound:`No se encontraron dispositivos Tasmota en su red`,haNotConfigured:`Home Assistant no está configurado. Configúrelo en`,haSettingsPath:`Ajustes → Red → Home Assistant`,selectEntity:`Seleccionar entidad *`,ipAddress:`Dirección IP *`,nameLabel:`Nombre *`,username:`Nombre de usuario`,password:`Contraseña`,authHint:`Déjelo vacío si su dispositivo Tasmota no requiere autenticación`,linkToPrinter:`Vincular a una impresora`,noPrinter:`Sin impresora (solo control manual)`,linkingDescription:`La vinculación activa el encendido/apagado automático cuando las impresiones comienzan/terminan`,powerAlerts:`Alertas de potencia`,alertAbove:`Alertar si supera (W)`,alertBelow:`Alertar si está por debajo (W)`,alertDescription:`Reciba una notificación cuando el consumo de energía cruce estos umbrales. Déjelo vacío para desactivar esa dirección.`,dailySchedule:`Programación diaria`,turnOnAt:`Encender a las`,turnOffAt:`Apagar a las`,scheduleDescription:`Encender/apagar automáticamente el enchufe a estas horas cada día. Déjelo vacío para omitir esa acción.`,showOnPrinterCard:`Mostrar en la tarjeta de la impresora`,displayOnPrinterCard:`Mostrar el botón en la tarjeta de la impresora`,connectedResult:`¡Conectado!`,deviceLabel:`Dispositivo: {{name}} - `,stateLabel:`Estado: {{state}}`,test:`Probar`,delete:`Eliminar`,save:`Guardar`,add:`Añadir`,cancel:`Cancelar`,failedToStartScan:`Error al iniciar el escaneo`,nameRequired:`El nombre es obligatorio`,entityRequired:`La entidad es obligatoria para los enchufes de Home Assistant`,mqttTopicRequired:`Debe configurarse al menos un tema MQTT para la supervisión de potencia, energía o estado`,loadingEntities:`Cargando entidades...`,loading:`Cargando...`,failedToLoadEntities:`Error al cargar las entidades: {{error}}`,noEntitiesMatching:`No se encontraron entidades que coincidan con "{{search}}"`,noEntitiesAvailable:`No hay entidades disponibles`,searchingEntities:`Buscando en todas las entidades ({{count}} encontradas)`,showingEntities:`Mostrando switch, light, input_boolean ({{count}} disponibles)`,energyMonitoringOptional:`Supervisión de energía (opcional)`,energyMonitoringHint:`Busque y seleccione sensores que proporcionen datos de potencia/energía.`,powerSensorW:`Sensor de potencia (W)`,energyTodayKwh:`Energía de hoy (kWh)`,totalEnergyKwh:`Energía total (kWh)`,noMatchingSensors:`No hay sensores coincidentes`,none:`Ninguno`,mqttNotConfigured:`El broker MQTT no está configurado. Establezca la dirección del broker en`,mqttSettingsPath:`Ajustes → Red → Publicación MQTT`,mqttNotConfiguredSuffix:`(no necesita activar la publicación, solo rellenar los datos del broker).`,mqttMonitorOnlyDescription:`Los enchufes MQTT reciben los datos de potencia/energía mediante una suscripción MQTT. El control de encendido/apagado no está disponible - use su broker MQTT o sistema de domótica.`,powerMonitoring:`Supervisión de potencia`,energyMonitoring:`Supervisión de energía`,stateMonitoring:`Supervisión de estado`,optional:`opcional`,topic:`Tema`,jsonPath:`Ruta JSON`,multiplier:`Multiplicador`,onValue:`Valor de ON`,mqttPowerHint:`La ruta JSON extrae el valor de la carga útil JSON (p. ej., "power_l1"). Déjelo vacío si el tema publica valores numéricos sin procesar.
Use el multiplicador 0,001 para mW→W, 1000 para kW→W.`,mqttEnergyHint:`La ruta JSON extrae el valor de la carga útil JSON. Déjelo vacío para valores sin procesar.
Use el multiplicador 0,001 para Wh→kWh, 1000 para MWh→kWh.`,mqttStateHint:`La ruta JSON extrae el valor de la carga útil JSON. Déjelo vacío para valores sin procesar.
-Valor de ON: la cadena exacta que significa «ON». Déjelo vacío para la detección automática (ON, true, 1).`,restControl:`Control`,restOnUrl:`URL de encendido`,restOffUrl:`URL de apagado`,restOnBody:`Cuerpo de la solicitud de encendido`,restOffBody:`Cuerpo de la solicitud de apagado`,restMethod:`Método HTTP`,restHeaders:`Cabeceras personalizadas (JSON)`,restStatusUrl:`URL de estado`,restStatusPath:`Ruta JSON del estado`,restStatusOnValue:`Valor de ON`,restPowerUrl:`URL de potencia`,restPowerPath:`Ruta JSON de la potencia`,restPowerMultiplier:`Multiplicador de potencia`,restEnergyUrl:`URL de energía`,restEnergyPath:`Ruta JSON de energía (hoy)`,restEnergyTotalPath:`Ruta JSON de energía (contador total)`,restEnergyTotalMultiplier:`Multiplicador del contador total`,restEnergyTotalPathHint:`p. ej. aenergy.total`,restEnergyTotalHint:`Muchos enchufes — todos los Shelly entre ellos — solo informan de un contador acumulado que nunca se reinicia. Va aquí, no en el campo de arriba: leído como el consumo de hoy nunca se pondría a cero a medianoche, y Ayer y Total seguirían vacíos. Bambuddy deduce Hoy y Ayer a partir de él, lo que requiere uno o dos días de lecturas. Un Shelly informa en vatios-hora, así que usa un multiplicador de 0.001.`,restEnergyMultiplier:`Multiplicador de energía`,restUrlRequired:`Se requiere al menos una URL (de encendido o apagado) para los enchufes REST`,restHeadersHint:`p. ej. {"Authorization": "Bearer your-token"}`,restBodyHint:`p. ej. ON, {"state": "on"}`,restStatusHint:`URL para sondear el estado actual`,restPathHint:`p. ej. state o data.power.status`,restPowerUrlHint:`URL independiente para los datos de potencia (usa la URL de estado si está vacía)`,restEnergyUrlHint:`URL independiente para los datos de energía (usa la URL de estado si está vacía)`,restEnergyHint:`Cada valor puede usar su propia URL o recurrir a la URL de estado. Use multiplicadores para la conversión de unidades (p. ej. 0,001 para convertir Wh en kWh).`,testConnection:`Probar conexión`,connectionSuccess:`Conexión correcta`,noSwitchesInSwitchbar:`No hay interruptores en la barra de interruptores`,enableSwitchbarHint:`Active «Mostrar en la barra de interruptores» en Ajustes > Enchufes inteligentes`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`Correo`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`Notificaciones por correo SMTP`,telegram:`Notificaciones mediante un bot de Telegram`,discord:`Enviar a un canal de Discord mediante un webhook`,ntfy:`Notificaciones push gratuitas y autoalojables`,pushover:`Notificaciones push sencillas y fiables`,callmebot:`Notificaciones de WhatsApp gratuitas mediante CallMeBot`,webhook:`POST HTTP genérico a cualquier URL`,homeassistant:`Notificaciones persistentes en el panel de Home Assistant`,bark:`Notificaciones push de iOS mediante Bark (autoalojable)`},lastSuccess:`Última: {{date}}`,error:`Error`,printer:`Impresora:`,allPrinters:`Todas las impresoras`,sendTestNotification:`Enviar notificación de prueba`,eventSettings:`Ajustes de eventos`,enabled:`Activado`,sendFromProvider:`Enviar notificaciones desde este proveedor`,printEvents:`Eventos de impresión`,printerStatus:`Estado de la impresora`,amsAlarms:`Alarmas del AMS`,amsHtAlarms:`Alarmas del AMS-HT`,printQueue:`Cola de impresión`,start:`Inicio`,plateCheck:`Comprobación de cama`,complete:`Completada`,failed:`Fallida`,stopped:`Detenida`,progress:`Progreso`,offline:`Desconectada`,lowFilament:`Filamento bajo`,maintenance:`Mantenimiento`,amsHumidity:`Humedad del AMS`,amsTemp:`Temp. del AMS`,amsHtHumidity:`Humedad del AMS-HT`,amsHtTemp:`Temp. del AMS-HT`,bedCooled:`Cama enfriada`,firstLayer:`Primera capa`,quiet:`Silencio`,digest:`Resumen {{time}}`,printStarted:`Impresión iniciada`,plateNotEmpty:`Cama no vacía`,plateNotEmptyDescription:`Objetos detectados antes de la impresión`,plateClearRequired:`Confirmar cama libre`,plateClearRequiredDescription:`Impresión terminada, la cola espera confirmación`,plateClear:`Cama libre`,printCompleted:`Impresión completada`,bedCooledLabel:`Cama enfriada`,bedCooledDescription:`La cama se enfrió por debajo del umbral tras la impresión`,firstLayerCompleteLabel:`Primera capa completada`,firstLayerCompleteDescription:`Notificar con una captura cuando termina la primera capa`,missingSpoolAssignmentLabel:`Falta la asignación de bobina`,missingSpoolAssignmentDescription:`Notificar cuando la impresión comienza y las bandejas necesarias no tienen ninguna bobina asignada`,printFailed:`Impresión fallida`,printStopped:`Impresión detenida`,progressMilestones:`Hitos de progreso`,progressMilestonesDescription:`Notificar al 25%, 50% y 75%`,printerOffline:`Impresora desconectada`,printerError:`Error de la impresora`,aiFailureDetection:`Detección de fallos por IA`,aiFailureDetectionDescription:`Notificar cuando la IA de Obico detecte un posible fallo de impresión`,lowFilamentLabel:`Filamento bajo`,maintenanceDue:`Mantenimiento pendiente`,maintenanceDueDescription:`Notificar cuando se necesite mantenimiento`,amsHumidityHigh:`Humedad alta del AMS`,amsHumidityHighDescription:`La humedad del AMS normal supera el umbral`,amsTemperatureHigh:`Temperatura alta del AMS`,amsTemperatureHighDescription:`La temperatura del AMS normal supera el umbral`,amsHtHumidityHigh:`Humedad alta del AMS-HT`,amsHtHumidityHighDescription:`La humedad del AMS-HT supera el umbral`,amsHtTemperatureHigh:`Temperatura alta del AMS-HT`,amsHtTemperatureHighDescription:`La temperatura del AMS-HT supera el umbral`,inventoryAlerts:`Alertas de inventario`,stockReorderAlert:`Alerta de reabastecimiento`,stockReorderAlertDescription:`El SKU ha alcanzado su punto de reabastecimiento`,stockBreakAlert:`Alerta de rotura de existencias`,stockBreakAlertDescription:`Las existencias se agotarán antes de que llegue el reabastecimiento`,jobAdded:`Trabajo añadido`,jobAddedDescription:`Trabajo añadido a la cola`,jobAssigned:`Trabajo asignado`,jobAssignedDescription:`Trabajo basado en el modelo asignado a una impresora`,jobStarted:`Trabajo iniciado`,jobStartedDescription:`El trabajo de la cola empezó a imprimirse`,jobWaiting:`Trabajo en espera`,jobWaitingDescription:`Trabajo a la espera de filamento o impresora`,jobSkipped:`Trabajo omitido`,jobSkippedDescription:`Trabajo omitido (el anterior falló)`,jobFailed:`Trabajo fallido`,jobFailedDescription:`El trabajo no pudo iniciarse`,queueComplete:`Cola completada`,queueCompleteDescription:`Todos los trabajos de la cola han terminado`,quietHours:`Horas de silencio`,noNotificationsDuring:`No hay notificaciones durante estas horas`,editProviderToChangeQuietHours:`Edite el proveedor para cambiar las horas de silencio`,dailyDigest:`Resumen diario`,batchNotifications:`Agrupar las notificaciones en un único resumen diario`,sendAt:`Enviar a las {{time}}`,editProviderToChangeDigestTime:`Edite el proveedor para cambiar la hora del resumen`,edit:`Editar`,deleteProvider:`Eliminar proveedor de notificaciones`,deleteConfirm:`¿Está seguro de que desea eliminar "{{name}}"? Esto no se puede deshacer.`,delete:`Eliminar`,addTitle:`Añadir proveedor de notificaciones`,editTitle:`Editar proveedor de notificaciones`,nameLabel:`Nombre *`,namePlaceholder:`Mis notificaciones`,providerTypeLabel:`Tipo de proveedor *`,configuration:`Configuración`,testConfiguration:`Probar configuración`,printerFilter:`Filtro de impresora`,onlyFromPrinter:`Enviar notificaciones solo para los eventos de esta impresora`,quietHoursDnd:`Horas de silencio (no molestar)`,quietStart:`Inicio`,quietEnd:`Fin`,dailyDigestLabel:`Resumen diario`,sendDigestAt:`Enviar el resumen a las`,digestCollected:`Los eventos se recopilarán y se enviarán como un único resumen a esta hora`,notificationEvents:`Eventos de notificación`,progressPercent:`(25%, 50%, 75%)`,bedCooledAfterPrint:`(después de completar la impresión)`,eventPriority:{sectionTitle:`Prioridad de ntfy`,helpNtfy:`Elija una prioridad para cada evento activado. ntfy las usa para escalar las alertas (sonido, visibilidad, comportamiento de las notificaciones push). Los niveles no establecidos aquí usan el valor predeterminado del servidor ntfy.`,min:`Mínima`,low:`Baja`,default:`Predeterminada`,high:`Alta`,urgent:`Urgente`},cancel:`Cancelar`,save:`Guardar`,add:`Añadir`,nameRequired:`El nombre es obligatorio`,fieldRequired:`{{field}} es obligatorio`,haDataInvalid:`El campo Data debe ser un objeto JSON válido, p. ej. {"priority": "high", "ttl": 0}`,phoneNumber:`Número de teléfono`,apiKey:`Clave API`,serverUrl:`URL del servidor`,topic:`Tema`,authToken:`Token de autenticación`,userKey:`Clave de usuario`,appToken:`Token de la aplicación`,priority:`Prioridad`,pushoverRetry:`Reintento de emergencia (s)`,pushoverExpire:`Expiración de emergencia (s)`,botToken:`Token del bot`,chatId:`ID del chat`,telegramThreadId:`ID del tema del foro`,telegramThreadIdHelp:`Opcional. Envía a un único tema de un grupo de foro: el último número del enlace del tema (t.me/c/.../25). Déjalo vacío para el tema General.`,telegramThreadIdInvalid:`El ID del tema del foro debe ser un número.`,smtpServer:`Servidor SMTP`,smtpPort:`Puerto SMTP`,security:`Seguridad`,authentication:`Autenticación`,username:`Nombre de usuario`,password:`Contraseña`,fromEmail:`Correo del remitente`,toEmail:`Correo del destinatario`,webhookUrl:`URL del webhook`,payloadFormat:`Formato de la carga útil`,authorization:`Autorización`,titleFieldName:`Nombre del campo del título`,messageFieldName:`Nombre del campo del mensaje`,editTemplate:`Editar plantilla: {{name}}`,titleLabel:`Título`,bodyLabel:`Cuerpo`,titlePlaceholder:`Título de la notificación...`,bodyPlaceholder:`Cuerpo de la notificación...`,availableVariables:`Variables disponibles`,clickToInsert:`Haga clic para insertar en la posición del cursor en el cuerpo`,livePreview:`Vista previa en directo`,hide:`Ocultar`,show:`Mostrar`,loadingPreview:`Cargando la vista previa...`,enterTemplateContent:`Introduzca el contenido de la plantilla para ver la vista previa`,titlePreview:`Título:`,bodyPreview:`Cuerpo:`,resetToDefault:`Restablecer al valor predeterminado`,titleRequired:`El título es obligatorio`,bodyRequired:`El cuerpo es obligatorio`,notificationLog:`Registro de notificaciones`,showFailedOnly:`Solo fallidas`,last24Hours:`Últimas 24 horas`,last7Days:`Últimos 7 días`,last30Days:`Últimos 30 días`,last90Days:`Últimos 90 días`,justNow:`Ahora mismo`,noFailedNotifications:`No hay notificaciones fallidas`,noNotificationsLogged:`No hay notificaciones registradas`,unknownProvider:`Proveedor desconocido`,logTitle:`Título`,logMessage:`Mensaje`,logError:`Error`,logProvider:`Proveedor: {{type}}`,logTime:`Hora: {{time}}`,refresh:`Actualizar`,clearOld:`Borrar antiguas`,statsSummary:`Últimos {{days}} días:`,statsNotifications:`notificaciones`,statsSent:`{{count}} enviadas`,statsFailed:`{{count}} fallidas`,eventTypes:{print_start:`Impresión iniciada`,print_complete:`Impresión completada`,print_failed:`Impresión fallida`,print_stopped:`Impresión detenida`,print_progress:`Progreso`,printer_offline:`Impresora desconectada`,printer_error:`Error de la impresora`,filament_low:`Filamento bajo`,maintenance_due:`Mantenimiento pendiente`,test:`Prueba`},userEmail:{title:`Notificaciones`,emailNotifications:`Notificaciones por correo`,emailNotificationsDesc:`Reciba notificaciones por correo de sus propios trabajos de impresión. Los correos se envían usando los ajustes de SMTP del sistema configurados en la autenticación avanzada.`,sendingTo:`Las notificaciones se enviarán a`,noEmailWarning:`Su cuenta no tiene una dirección de correo. Póngase en contacto con un administrador para añadir una.`,printJobNotifications:`Notificaciones de trabajos de impresión`,printJobNotificationsDesc:`Elija qué eventos activan las notificaciones por correo para los trabajos de impresión que envíe.`,printJobStarts:`El trabajo de impresión comienza`,printJobStartsDesc:`Reciba una notificación cuando su trabajo de impresión comience.`,printJobFinishes:`El trabajo de impresión termina`,printJobFinishesDesc:`Reciba una notificación cuando su trabajo de impresión se complete correctamente.`,printErrors:`Errores de impresión`,printErrorsDesc:`Reciba una notificación cuando su trabajo de impresión falle o encuentre un error.`,printJobStops:`El trabajo de impresión se detiene`,printJobStopsDesc:`Reciba una notificación cuando su trabajo de impresión se cancele o se detenga.`,saveSuccess:`Preferencias de notificación guardadas.`,saveError:`Error al guardar las preferencias de notificación.`}},richTextEditor:{bold:`Negrita`,italic:`Cursiva`,underline:`Subrayado`,bulletList:`Lista con viñetas`,numberedList:`Lista numerada`,alignLeft:`Alinear a la izquierda`,alignCenter:`Centrar`,alignRight:`Alinear a la derecha`,addLink:`Añadir enlace`,removeLink:`Quitar enlace`},externalLinks:{title:`Enlaces de la barra lateral`,sidebarLayout:`Barra lateral`,sidebarLayoutDescription:`Muestra u oculta páginas integradas, añade enlaces externos y arrastra elementos para reordenar la navegación lateral.`,systemPages:`Páginas de Bambuddy`,externalLinks:`Enlaces externos`,visibleInSidebar:`Visible en la barra lateral`,hiddenFromSidebar:`Oculto en la barra lateral`,requiredInSidebar:`Obligatorio en la barra lateral`,hidePage:`Ocultar página`,showPage:`Mostrar página`,settingsCannotBeHidden:`Ajustes no se puede ocultar`,noLinksConfigured:`No hay enlaces externos configurados`,deleteLink:`Eliminar enlace`,removeCustomIcon:`Quitar el icono personalizado`,openInNewTab:`Abrir en una pestaña nueva`,placeholders:{linkName:`Mi enlace`}},keyboardShortcuts:{title:`Atajos de teclado`,navigation:`Navegación`,archivesSection:`Archivos`,kProfilesSection:`Perfiles K`,generalSection:`General`,shortcuts:{goToPrinters:`Ir a Impresoras`,goToArchives:`Ir a Archivos`,goToQueue:`Ir a la cola`,goToStats:`Ir a Estadísticas`,goToProfiles:`Ir a Perfiles en la nube`,goToSettings:`Ir a Ajustes`,focusSearch:`Enfocar la búsqueda`,openUploadModal:`Abrir la ventana de subida`,clearSelection:`Borrar la selección / quitar el foco del campo`,contextMenu:`Menú contextual en las tarjetas`,refreshProfiles:`Actualizar perfiles`,newProfile:`Nuevo perfil`,exitSelectionMode:`Salir del modo de selección`,showHelp:`Mostrar esta ayuda`},footer:`Pulse Esc o haga clic fuera para cerrar`},notificationLog:{title:`Registro de notificaciones`,events:{printStarted:`Impresión iniciada`,printComplete:`Impresión completada`,printFailed:`Impresión fallida`,printStopped:`Impresión detenida`,progress:`Progreso`,printerOffline:`Impresora desconectada`,printerError:`Error de la impresora`,lowFilament:`Filamento bajo`,maintenanceDue:`Mantenimiento pendiente`,test:`Prueba`},timeAgo:{justNow:`Ahora mismo`,minutesAgo:`hace {{minutes}} min`,hoursAgo:`hace {{hours}} h`}},restoreBackup:{title:`Restaurar copia de seguridad`,restoring:`Restaurando...`,restoreComplete:`Restauración completada`,restoreFailed:`Error en la restauración`,importSettings:`Importar ajustes desde un archivo de copia de seguridad`,pleaseWait:`Espere mientras se restauran sus datos`,clickToSelect:`Haga clic para seleccionar el archivo de copia de seguridad (.json o .zip)`,howDuplicateHandling:`Cómo funciona la gestión de duplicados:`,categories:{printers:`Impresoras`,smartPlugs:`Enchufes inteligentes`,notificationProviders:`Proveedores de notificaciones`,filaments:`Filamentos`,archives:`Archivos`,pendingUploads:`Subidas pendientes`,settingsTemplates:`Ajustes y plantillas`},matchingInfo:{printers:`coincidencia por número de serie`,smartPlugs:`coincidencia por dirección IP`,notificationProviders:`coincidencia por nombre`,filaments:`coincidencia por nombre + tipo + marca`,archives:`coincidencia por hash del contenido`,pendingUploads:`coincidencia por nombre de archivo`,settingsTemplates:`siempre se sobrescriben`},replaceExisting:`Reemplazar los datos existentes`,keepExisting:`Conservar los datos existentes`,replaceDescription:`Sobrescribir los elementos que ya existen con los datos de la copia de seguridad`,keepDescription:`Restaurar solo los elementos que aún no existen`,caution:`Precaución:`,cautionText:`Sobrescribir reemplazará sus configuraciones actuales con los datos de la copia de seguridad. Los códigos de acceso de las impresoras nunca se sobrescriben por seguridad.`,itemsRestored:`Elementos restaurados`,itemsSkipped:`Elementos omitidos`,restored:`Restaurados`,skipped:`Omitidos (ya existen)`,filesLabel:`Archivos (3MF, miniaturas, etc.)`,newApiKeysGenerated:`Nuevas claves API generadas`,newApiKeysWarning:`Estas claves solo se muestran una vez. ¡Cópielas ahora!`,processingBackup:`Procesando el archivo de copia de seguridad...`,noDataFound:`No se encontraron datos para restaurar en el archivo de copia de seguridad.`,failedToRestore:`Error al restaurar la copia de seguridad. Compruebe el formato del archivo.`},backupExport:{title:`Exportar copia de seguridad`,selectData:`Seleccione los datos que incluir`,selectAll:`Seleccionar todo`,selectNone:`No seleccionar nada`,categoryDescriptions:{settings:`Idioma, tema, preferencias de actualización`,notifications:`ntfy, Pushover, Discord, etc.`,templates:`Plantillas de mensajes personalizadas`,smartPlugs:`Configuraciones de enchufes Tasmota`,externalLinks:`Enlaces de la barra lateral a servicios externos`,printers:`Información de las impresoras (códigos de acceso excluidos)`,plateDetection:`Imágenes de referencia de la cama vacía`,filaments:`Tipos y costes de filamento`,maintenance:`Programaciones de mantenimiento personalizadas`,archives:`Todos los datos de impresión + archivos (3MF, miniaturas, fotos)`,projects:`Proyectos, elementos de la lista de materiales y adjuntos`,pendingUploads:`Subidas de la impresora virtual pendientes de revisión`,apiKeys:`Claves API de webhook (se generan claves nuevas al importar)`},requiresPrinters:`Requiere que se seleccionen las impresoras`,zipFileWarning:`Se creará un archivo ZIP.`,zipFileDescription:`Incluye todos los archivos 3MF, las miniaturas, los time-lapses y las fotos. Esto puede tardar un rato y dar como resultado un archivo grande.`,includeAccessCodes:`Incluir los códigos de acceso`,includeAccessCodesDescription:`Para transferir a otra máquina`,includeAccessCodesWarning:`Los códigos de acceso se incluirán en texto plano. ¡Mantenga este archivo de copia de seguridad seguro!`,categoriesSelected:`{{selectedCount}} categorías seleccionadas`},pendingUploads:{placeholders:{notes:`Añada notas sobre esta impresión...`},discardUpload:`Descartar subida`,archiveAllUploads:`Archivar todas las subidas`,discardAllUploads:`Descartar todas las subidas`,archive:`Archivar`,timeAgo:{justNow:`Ahora mismo`,minutesAgo:`hace {{minutes}} min`,hoursAgo:`hace {{hours}} h`,daysAgo:`hace {{days}} d`}},apiBrowser:{placeholders:{requestBody:`Cuerpo de la solicitud JSON...`,searchEndpoints:`Buscar puntos de conexión...`}},configureAmsSlot:{title:`Configurar la ranura del AMS`,slotConfigured:`¡Ranura configurada!`,configuringSlot:`Configurando la ranura:`,slotLabel:`{{ams}} Ranura {{slot}}`,searchPresets:`Buscar preajustes...`,colorPlaceholder:`Nombre del color o hexadecimal (p. ej., marrón, FF8800)`,clearCustomColor:`Borrar el color personalizado`,noCloudPresets:`No hay preajustes de la nube. Inicie sesión en Bambu Cloud para sincronizar.`,noPresetsAvailable:`No hay preajustes disponibles. Inicie sesión en Bambu Cloud o importe perfiles locales.`,noMatchingPresets:`No se encontraron preajustes coincidentes.`,custom:`Personalizado`,builtin:`Integrado`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`Ajustes enviados a la impresora`,filamentProfile:`Perfil de filamento`,kProfileLabel:`Perfil K (avance de presión)`,filteringFor:`Filtrando por: {{material}}`,noKProfile:`Sin perfil K (usar el predeterminado 0,020)`,noMatchingKProfiles:`No se encontraron perfiles K coincidentes. Se usará el K=0,020 predeterminado.`,otherKProfiles:`Otros perfiles K en esta impresora`,selectFilamentFirst:`Seleccione primero un perfil de filamento`,kFromCalibration:`K={{value}} de la calibración de la impresora`,customColorLabel:`Color personalizado (opcional)`,presetColors:`Colores de {{name}}:`,showLessColors:`Mostrar menos colores`,showMoreColors:`Mostrar más colores`,clear:`Borrar`,hexLabel:`Hex: #{{hex}}`,resetting:`Restableciendo...`,resetSlot:`Restablecer ranura`,cancel:`Cancelar`,configuring:`Configurando...`,configureSlot:`Configurar ranura`},githubBackup:{title:`Copia de seguridad en Git`,history:`Historial`,downloadBackup:`Descargar copia de seguridad`,restoreBackup:`Restaurar copia de seguridad`,noBackupsYet:`Aún no hay copias de seguridad`},emailSettings:{placeholders:{fromName:`BamBuddy`}},tagManagement:{searchTags:`Buscar etiquetas...`,renameTag:`Renombrar etiqueta`,deleteTag:`Eliminar etiqueta`},notificationTemplates:{placeholders:{title:`Título de la notificación...`,body:`Cuerpo de la notificación...`}},batchTag:{placeholders:{newTag:`Introduzca una nueva etiqueta...`}},photoGallery:{deletePhoto:`Eliminar foto`},filamentHoverCard:{copySpoolUuid:`Copiar el UUID de la bobina`},kProfilesView:{hasNote:`Tiene nota`,copyProfile:`Copiar perfil`},layout:{openMenu:`Abrir menú`,noPermissionSystemInfo:`No tiene permiso para ver la información del sistema`},dashboard:{dragToReorder:`Arrastre para reordenar`,hideWidget:`Ocultar widget`},notificationProviderCard:{deleteNotificationProvider:`Eliminar proveedor de notificaciones`},fileManagerModal:{closeFileManager:`Cerrar el gestor de archivos`,sortFiles:`Ordenar archivos`,goToParentFolder:`Ir a la carpeta superior`,threeView:`Vista 3D`},embeddedCameraViewer:{refreshStream:`Actualizar la transmisión`,close:`Cerrar`,zoomOut:`Alejar`,resetZoom:`Restablecer el zoom`,zoomIn:`Acercar`,dragToResize:`Arrastre para redimensionar`},timelapseViewer:{skipBack5s:`Retroceder 5 s`,skipForward5s:`Avanzar 5 s`},notificationProviders:{descriptions:{email:`Notificaciones por correo SMTP`,telegram:`Notificaciones mediante un bot de Telegram`,discord:`Enviar a un canal de Discord mediante un webhook`,ntfy:`Notificaciones push gratuitas y autoalojables`,pushover:`Notificaciones push sencillas y fiables`,callmebot:`Notificaciones de WhatsApp gratuitas mediante CallMeBot`,webhook:`POST HTTP genérico a cualquier URL`}},logViewer:{searchPlaceholder:`Buscar mensaje o nombre del registrador...`,noLogEntries:`No se encontraron entradas de registro`},switchbarPopover:{noSwitchesInSwitchbar:`No hay interruptores en la barra de interruptores`},projectPageModal:{placeholders:{title:`Título`,designer:`Diseñador`,license:`Licencia`,description:`Introduzca una descripción...`,profileTitle:`Título del perfil`,profileDescription:`Descripción del perfil...`}},spoolmanSettings:{},time:{unknown:`-`,waiting:`En espera`,justNow:`Ahora mismo`,now:`Ahora`,minsAgo:`hace {{count}} min`,inMins:`en {{count}} min`,hoursAgo:`hace {{count}} h`,inHours:`en {{count}} h`,daysAgo:`hace {{count}} d`,inDays:`en {{count}} d`},spoolbuddy:{nav:{dashboard:`Panel`,ams:`AMS`,inventory:`Inventario`,writeTag:`Escribir`,settings:`Ajustes`},status:{nfcReady:`NFC listo`,nfcOff:`NFC apagado`,offline:`Desconectado`,online:`En línea`,noPrinters:`No hay impresoras`,deviceOffline:`Dispositivo desconectado`,waitingConnection:`Esperando la conexión del dispositivo...`,systemReady:`Sistema listo`,status:`Estado`},dashboard:{readyToScan:`Listo para escanear`,idleMessage:`Coloque una bobina en la báscula para identificarla`,nfcHint:`La etiqueta NFC se leerá automáticamente`,device:`Dispositivo`,syncWeight:`Sincronizar peso`,weightSynced:`¡Sincronizado!`,unknownTag:`Etiqueta desconocida`,newTag:`Nueva etiqueta detectada`,onScale:`en la báscula`,linkSpool:`Vincular a bobina`,linkTagTitle:`Vincular la etiqueta a una bobina`,linkTag:`Vincular etiqueta`,selectSpool:`Seleccione una bobina a la que vincular esta etiqueta:`,noUntagged:`No se encontraron bobinas sin etiquetas`,tagDetected:`Etiqueta detectada`,noTag:`Sin etiqueta`,tagId:`Etiqueta`,grossWeight:`Peso bruto`,spoolSize:`Tamaño de la bobina`,close:`Cerrar`,currentSpool:`Bobina actual`,plateReady:`Cama lista: {{name}}`,plateReadyLabel:`Camas listas para despejar`,plateClearAction:`Despejar`,plateClearedToast:`Cama marcada como despejada`,plateClearFailed:`No se pudo marcar la cama como despejada`},modal:{spoolDetected:`Bobina detectada`,assignToAms:`Asignar al AMS`,syncWeight:`Sincronizar peso`,weightSynced:`¡Sincronizado!`,syncing:`Sincronizando...`,newTagDetected:`Nueva etiqueta detectada`,addToInventory:`Añadir al inventario`,assignToAmsTitle:`Asignar al AMS`,selectSlot:`Seleccione una ranura`,assign:`Asignar`,assigning:`Asignando...`,assignSuccess:`¡Asignada!`,assignPendingInsert:`Asignada. La ranura se configurará cuando inserte la bobina.`,assignError:`Error al asignar la bobina. Inténtelo de nuevo.`,noPrinterSelected:`Seleccionar una impresora...`,noAmsDetected:`No se detectó ningún AMS en esta impresora`,slot:`Ranura`},weight:{noReading:`Sin lectura`,stable:`Estable`,measuring:`Midiendo...`,tare:`Tara`,calibrate:`Calibrar`},spool:{remaining:`Restante`,material:`Material`,brand:`Marca`,color:`Color`,coreWeight:`Núcleo`,labelWeight:`Etiqueta`,scaleWeight:`Báscula`,netWeight:`Neto`,lastUsed:`Usada por última vez`},ams:{noData:`No se detectó ningún AMS`,connectAms:`Conecte un AMS para ver las ranuras de filamento`,noPrinter:`No hay impresora seleccionada`,selectPrinter:`Seleccione una impresora en la barra superior`,printerDisconnected:`Impresora desconectada`,humidity:`Humedad`,level:`Nivel`,active:`Activa`,slot:`Ranura`,empty:`Vacía`},inventory:{search:`Buscar bobinas...`,empty:`No hay bobinas en el inventario`,noResults:`No hay bobinas coincidentes`,spools:`bobinas`,addSpool:`Añadir bobina`},settings:{tabDevice:`Dispositivo`,tabDisplay:`Pantalla`,tabScale:`Báscula`,tabUpdates:`Actualizaciones`,nfcReader:`Lector NFC`,type:`Tipo`,connection:`Conexión`,notConnected:`N/D`,deviceInfo:`Información del dispositivo`,hostname:`Host`,uptime:`Tiempo de actividad`,systemConfig:`Backend y autenticación`,backendUrl:`URL del backend de Bambuddy`,apiToken:`Token de API`,apiTokenPlaceholder:`Introduzca el token de API`,saveConfig:`Guardar configuración`,systemQueued:`Configuración encolada.`,nfcDiagnostic:`Diagnóstico de NFC`,scaleDiagnostic:`Diagnóstico de la báscula`,readTagDiagnostic:`Diagnóstico de lectura de etiqueta`,testNfc:`Probar el lector`,testScale:`Probar la precisión`,testReadTag:`Leer etiqueta`,systemFieldsRequired:`La URL del backend es obligatoria.`,brightness:`Brillo`,saved:`Guardado`,noBacklight:`No se detectó retroiluminación DSI. El control del brillo requiere una pantalla DSI.`,screenBlank:`Tiempo de espera para apagar la pantalla`,screenBlankDesc:`La pantalla se apaga tras la inactividad. Toque para activarla.`,displayNote:`El brillo se aplica como un filtro de software.`,scaleCalibration:`Calibración de la báscula`,currentWeight:`Peso actual`,tareOffset:`Tara`,calFactor:`Factor`,knownWeight:`Peso conocido`,calStep1:`Retire todos los elementos de la báscula y pulse Poner a cero.`,calStep2:`Coloque el peso conocido en la báscula.`,setZero:`Poner a cero`,calibrateNow:`Calibrar`,calibrated:`Calibrada`,tareSet:`Comando de tara enviado. Esperando al dispositivo...`,tareComplete:`¡Tara completada!`,tareTimedOut:`Tara agotó el tiempo de espera — ¿está activo el daemon de SpoolBuddy?`,tareFailed:`Error al enviar el comando de tara`,zeroSet:`Punto cero establecido. Coloque el peso conocido en la báscula.`,calibrationDone:`¡Calibración completada!`,calibrationFailed:`Error en la calibración`,lastCalibrated:`Calibrada por última vez`,stable:`Estable`,settling:`Estabilizando...`,firmware:`Firmware`,scale:`Báscula`,noDevice:`No se encontró ningún dispositivo SpoolBuddy`,daemonVersion:`Versión del demonio`,currentVersion:`Actual`,versionPending:`Esperando al demonio...`,checking:`Comprobando...`,checkUpdates:`Buscar actualizaciones`,updateAvailable:`Actualización disponible`,updateInstructions:`Actualice mediante SSH: ejecute el script de instalación de SpoolBuddy para actualizar.`,upToDate:`Actualizado`,includeBeta:`Incluir versiones beta`},writeTag:{tabExisting:`Bobina existente`,tabNew:`Bobina nueva`,tabReplace:`Reemplazar etiqueta`,searchPlaceholder:`Buscar por material, color, marca...`,noUntaggedSpools:`No hay bobinas sin etiquetas`,noTaggedSpools:`No hay bobinas con etiquetas`,selectSpool:`Seleccione una bobina y luego coloque una etiqueta NTAG en blanco en el lector`,placeTag:`Coloque una etiqueta NTAG en el lector`,tagReady:`Etiqueta detectada — lista para escribir`,writeTag:`Escribir etiqueta`,replaceTag:`Reemplazar etiqueta`,writing:`Escribiendo la etiqueta...`,waiting:`Esperando a SpoolBuddy...`,writeSuccess:`¡Etiqueta escrita correctamente!`,writeFailed:`Error al escribir`,queueFailed:`Error al encolar el comando de escritura`,tryAgain:`Inténtelo de nuevo`,cancel:`Cancelar`,replaceWarning:`La etiqueta antigua se desvinculará. La nueva etiqueta la reemplazará.`,deviceOffline:`SpoolBuddy está desconectado`,material:`Material`,colorName:`Nombre del color`,color:`Color`,brand:`Marca`,weight:`Peso (g)`,createSpool:`Crear bobina`,creating:`Creando...`,spoolCreated:`¡Bobina creada! Lista para escribir.`,createFailed:`Error al crear la bobina`,incompleteDataWarning:`Etiqueta escrita con datos de Spoolman incompletos`},quickMenu:{printerPower:`Alimentación de la impresora`,systemControls:`Sistema`,restartDaemon:`Reiniciar demonio`,restartBrowser:`Reiniciar navegador`,reboot:`Reiniciar`,shutdown:`Apagar`,swipeToClose:`Deslice hacia abajo para cerrar`,confirmTitle:`Confirmar`,confirmShutdown:`¿Está seguro de que desea apagar el SpoolBuddy? Necesitará acceso físico para volver a encenderlo.`,confirmReboot:`¿Está seguro de que desea reiniciar el SpoolBuddy?`,confirmRestartDaemon:`¿Reiniciar el demonio de SpoolBuddy? El NFC y la báscula no estarán disponibles temporalmente.`,confirmRestartBrowser:`¿Reiniciar el navegador del quiosco? La pantalla se quedará en negro brevemente.`,confirm:`Confirmar`,confirmPlugOn:`¿Encender {{name}}?`,confirmPlugOff:`¿Apagar {{name}}?`,turnOn:`Encender`,turnOff:`Apagar`}},diagnostic:{modalTitle:`Diagnóstico de conexión — {{name}}`,running:`Ejecutando el diagnóstico...`,runningElapsed:`Ejecutando el diagnóstico... ({{elapsed}}s)`,waitingForReportHint:`Esperando a que la impresora publique un informe de estado — puede tardar hasta {{max}} segundos.`,runFailed:`No se pudo ejecutar el diagnóstico: {{error}}`,retry:`Ejecutar de nuevo`,runButton:`Ejecutar diagnóstico`,sectionTitle:`Diagnóstico de conexión`,sectionDescription:`Compruebe por qué una impresora no se conecta o no imprime — accesibilidad de los puertos, modo desarrollador LAN, modo de red de Docker y credenciales.`,noPrinters:`No hay impresoras configuradas.`,overall:{ok:`No se encontraron problemas — la conexión de la impresora parece correcta.`,warnings:`La impresora debería funcionar, pero algunas cosas necesitan atención.`,problems:`Se encontraron problemas que explican por qué la impresora no se conecta o no imprime.`},check:{port_mqtt:{title:`Puerto de control (MQTT 8883)`,pass:`Accesible — la impresora acepta conexiones de control.`,fail:`El puerto 8883 no es accesible. La impresora está apagada, en una dirección IP distinta, o un cortafuegos lo está bloqueando. Verifique la IP de la impresora y que nada bloquee el puerto 8883.`},port_ftps:{title:`Puerto de transferencia de archivos (FTPS 990)`,pass:`Accesible — el envío de archivos de impresión funcionará.`,warn:`El puerto 990 no es accesible. La supervisión puede seguir funcionando, pero el envío de impresiones a la impresora fallará. Asegúrese de que el puerto 990 no esté bloqueado.`},external_storage:{title:`Almacenar archivos enviados en almacenamiento externo (paso 4 de instalación)`,pass:`La impresora informa que esta opción está activada — los archivos enviados se guardarán en la tarjeta SD y los archivos tendrán miniaturas y metadatos del slicer.`,fail:`La impresora informa que esta opción está desactivada. Active "Almacenar archivos enviados en almacenamiento externo" — en firmware reciente (P2S 01.02 / Bambu Studio 2.6+) el conmutador está en los Ajustes de Impresión de la impresora; en versiones anteriores está en la pestaña Dispositivo de Bambu Studio / OrcaSlicer. Sin esta opción, cada impresión archivada queda sin miniatura ni metadatos del slicer.`,skip:`No comprobado — se necesita una conexión MQTT activa. En slicers más antiguos donde este ajuste solo existe en el slicer, la impresora no lo reporta, así que esta comprobación pasa aunque la opción esté desactivada — verifique el paso 4 de la instalación manualmente.`,skip_unsupported_model:`Este modelo tiene ranura SD pero no hay forma de activar la opción — el firmware actual de la serie P1 no muestra el interruptor en Bambu Studio y la impresora no tiene pantalla. Aquí no hay nada que arreglar; a las impresiones archivadas pueden faltarles miniaturas y metadatos del slicer hasta que Bambu Lab lo admita por firmware.`},port_rtsps:{title:`Puerto de la cámara ({{protocol}} {{port}})`,pass:`Accesible — la transmisión de la cámara funcionará.`,warn:`El puerto {{port}} no es accesible. La vista de la cámara en directo no funcionará. Esto no afecta a la impresión.`},network_mode:{title:`Modo de red de Docker`,pass:`Ejecutándose en modo de red de host.`,warn:`Bambuddy se está ejecutando en red de tipo bridge de Docker. La detección de impresoras y la impresora virtual necesitan el modo de red de host — vuelva a crear el contenedor con "network_mode: host".`,skip:`No se está ejecutando en Docker — no aplicable.`},subnet:{title:`Subred de la red`,pass:`La impresora y Bambuddy están en la misma subred.`,warn:`La impresora ({{printer_ip}}) y Bambuddy ({{host_ip}}) están en subredes distintas. Es posible que no se alcancen entre sí a menos que se configure el enrutamiento entre las subredes.`,skip:`No se pudo determinar la subred — omitido.`},mqtt_auth:{title:`Credenciales de la impresora`,pass:`La impresora aceptó la conexión.`,fail:`La impresora es accesible pero Bambuddy no está conectado a ella. Lo más probable es que el código de acceso o el número de serie sean incorrectos — el código de acceso cambia cada vez que se conmuta el modo Solo LAN o el modo desarrollador, así que vuelva a copiarlo de la pantalla de la impresora. Una impresora que se está reiniciando, o que ya alcanzó su límite de conexiones simultáneas, se ve igual.`,fail_auth_rejected:`La impresora rechazó las credenciales de Bambuddy. El código de acceso o el número de serie son incorrectos — el código de acceso cambia cada vez que se conmuta el modo Solo LAN o el modo desarrollador, así que vuelva a copiarlo de la pantalla de la impresora y guárdelo en la configuración de la impresora.`,skip:`No comprobado — no se pudo alcanzar la impresora.`},developer_mode:{title:`Modo desarrollador LAN`,pass:`El modo desarrollador está activado.`,fail:`El modo desarrollador está DESACTIVADO en la impresora. Actívelo en los ajustes de LAN de la impresora — y confirme con Aceptar. Sin él, las impresiones no comenzarán.`,skip:`No se pudo comprobar — requiere una conexión activa con la impresora.`},printer_publishing:{title:`La impresora publica estado`,pass:`La impresora está publicando actualizaciones de estado — AMS, filamentos y perfiles K se reflejarán correctamente en el slicer.`,fail:`El broker MQTT aceptó la conexión, pero la impresora no ha publicado ningún informe de estado. Casi siempre se trata de un número de serie incorrecto o con mayúsculas/minúsculas mal escritas — el topic device//api/v1/metrics pour la surveillance Prometheus/Grafana.`,bearerTokenOptional:`Token Bearer (optionnel)`,bearerTokenHint:`Si défini, les requêtes doivent inclure Authorization: Bearer `,metricsConnectionStatus:`État de connexion`,metricsPrinterState:`État imprimante (idle/printing/etc)`,metricsPrintProgress:`Progression impression 0-100%`,metricsBedTemp:`Température du plateau`,metricsNozzleTemp:`Température de la buse`,metricsPrintsTotal:`Total impressions par résultat`,metricsMore:`...et plus (couches, ventilateurs, file d'attente, utilisation filament)`,smartPlugsDescription:`Connecter des prises connectées (Tasmota ou Home Assistant) pour automatiser le contrôle de l'alimentation et suivre la consommation d'énergie de vos imprimantes.`,allOn:`Tout allumer`,allOff:`Tout éteindre`,addSmartPlug:`Ajouter une prise`,energySummary:`Résumé énergétique`,currentPower:`Puissance actuelle`,plugsOnline:`{{reachable}}/{{total}} prises en ligne`,today:`Aujourd'hui`,yesterday:`Hier`,total:`Total`,enablePlugsForSummary:`Activer les prises pour voir le résumé énergétique`,addNotificationProvider:`Ajouter`,systemBadge:`(Système)`,creating:`Création...`,changing:`Modification...`,deleteUserAndItems:`Supprimer l'utilisateur ET ses éléments`,deleteUserKeepItems:`Supprimer l'utilisateur, garder les éléments (deviennent sans propriétaire)`,ok:`OK`,twoFa:{totpTitle:`Application Authenticator (TOTP)`,totpDesc:`Utilisez une application comme Google Authenticator, Aegis ou Authy.`,emailOtpTitle:`OTP par e-mail`,emailOtpDesc:`Envoyez un code à usage unique à {{email}} lors de la connexion.`,emailOtpNoEmail:`Ajoutez une adresse e-mail à votre compte pour activer cette méthode.`,addEmailFirst:`Votre compte n'a pas d'adresse e-mail. Demandez à un administrateur d'en ajouter une.`,setupTotp:`Configurer l'application Authenticator`,setupAuthApp:`Configurer l'application Authenticator`,setupInstructions:`Scannez le QR code avec votre application authenticator, puis confirmez avec un code.`,manualEntry:`Impossible de scanner ? Entrez ce secret manuellement :`,scannedContinue:`Code scanné — continuer`,enterCodeToConfirm:`Entrez le code à 6 chiffres de votre application authenticator pour confirmer.`,activate:`Activer`,disableTotp:`Désactiver l'Authenticator`,disableConfirmHint:`Entrez un code TOTP valide ou un code de secours pour désactiver l'authenticator.`,totpDisabled:`Application Authenticator désactivée.`,emailOtpEnabled:`OTP par e-mail activé.`,emailOtpDisabled:`OTP par e-mail désactivé.`,smtpRequired:`Veuillez d'abord configurer et tester les paramètres SMTP.`,invalidCode:`Code invalide. Veuillez réessayer.`,enableEmailOtp:`Activer OTP par e-mail`,disableEmailOtp:`Désactiver OTP par e-mail`,emailSetupEnterCode:`Un code de vérification a été envoyé à votre adresse e-mail. Entrez-le ci-dessous pour confirmer que vous possédez cette boîte de réception.`,verifyAndEnable:`Vérifier et activer`,emailDisablePasswordHint:`Entrez le mot de passe de votre compte pour confirmer la désactivation de l'OTP par e-mail.`,passwordPlaceholder:`Entrez votre mot de passe`,backupCodesTitle:`Sauvegardez vos codes de secours`,backupCodesWarning:`Conservez ces codes en lieu sûr. Chaque code ne peut être utilisé qu'une seule fois et ne sera plus affiché.`,backupCodesRemaining:`{{count}} codes de secours restants`,savedCodes:`Codes sauvegardés`,regenBackup:`Régénérer les codes de secours`,regenBackupHint:`Entrez votre code TOTP actuel pour générer 10 nouveaux codes de secours. Tous les codes existants seront invalidés.`,newBackupCodes:`Nouveaux codes de secours`,linkedAccounts:`Comptes SSO liés`,linkedAccountsDesc:`Ces fournisseurs d'identité externes sont liés à votre compte.`,oidcUnlinked:`Compte dissocié.`},sessionPolicy:{title:`Politique de session`,description:`Durée maximale des sessions pour les nouvelles connexions utilisateur. Les jetons déjà émis conservent leur expiration d'origine.`,preset24h:`24 heures`,preset7d:`7 jours`,preset30d:`30 jours`,customHoursLabel:`Durée de session personnalisée en heures`,hoursSuffix:`heures`,warning:`Les sessions plus longues réduisent la protection de déconnexion automatique. Recommandé uniquement pour les déploiements mono-utilisateur de confiance.`},oidc:{title:`Fournisseurs SSO / OIDC`,desc:`Configurez des fournisseurs OpenID Connect pour l'authentification unique.`,addProvider:`Ajouter un fournisseur`,newProvider:`Nouveau fournisseur`,empty:`Aucun fournisseur OIDC configuré.`,created:`Fournisseur créé.`,updated:`Fournisseur mis à jour.`,deleted:`Fournisseur supprimé.`,refreshIcon:`Actualiser l'icône`,removeIcon:`Supprimer l'icône`,iconRefreshed:`Icône actualisée.`,iconRemoved:`Icône supprimée.`,iconFetchFailed:`Impossible de récupérer l'icône depuis l'URL du fournisseur.`,deleteTitle:`Supprimer le fournisseur`,deleteMessage:`Supprimer "{{name}}" ? Tous les comptes liés seront déconnectés.`,form:{name:`Nom d'affichage`,issuerUrl:`URL de l'émetteur`,clientId:`ID client`,clientSecret:`Secret client`,scopes:`Portées`,iconUrl:`URL de l'icône (optionnel)`,enabled:`Activé`,autoCreate:`Créer les utilisateurs automatiquement`,autoCreateDesc:`Crée automatiquement un compte local lors de la première connexion.`,autoLink:`Lier automatiquement les comptes existants`,autoLinkDesc:`Lie les comptes locaux existants par e-mail lors de la première connexion.`,secretHint:`laisser vide pour conserver`,secretPlaceholder:`nouveau secret`,emailClaim:`Claim e-mail`,emailClaimDesc:`Claim JWT utilisé comme identité e-mail. Utiliser 'preferred_username' ou 'upn' pour Azure Entra ID (qui n'envoie pas email_verified). Utiliser uniquement des noms de claims de confiance.`,emailClaimPlaceholder:`e-mail`,emailClaimCustomClaimAutoLinkWarning:`Les revendications personnalisées sont sûres pour la liaison auto uniquement lorsque la valeur est administrée par le tenant (par ex. Azure Entra ID upn / preferred_username). N'activez pas la liaison auto si votre IdP permet aux utilisateurs de s'auto-attribuer cette revendication.`,requireEmailVerified:`Exiger la vérification e-mail`,requireEmailVerifiedDesc:`N'accepter le claim e-mail que si le fournisseur le marque comme vérifié.`,requireEmailVerifiedWarning:`Avertissement : l'e-mail sera accepté sans vérification. À utiliser uniquement avec des fournisseurs de confiance.`,requireEmailVerifiedAutoLink:`Désactiver le lien automatique d'abord pour modifier ce paramètre.`,defaultGroup:`Groupe par défaut`,defaultGroupDesc:`Groupe attribué aux utilisateurs créés automatiquement. Repli sur Viewers si non défini.`,defaultGroupViewersFallback:`Viewers (par défaut)`,autologin:`Connexion automatique`,autologinDesc:`Rediriger les visiteurs non authentifiés directement vers ce fournisseur. Un seul fournisseur peut porter cet indicateur.`}},encryption:{title:`Statut du chiffrement MFA`,enabledFromEnv:`Chiffrement au repos activé (clé depuis la variable d'environnement MFA_ENCRYPTION_KEY)`,enabledFromFile:`Chiffrement au repos activé (clé chargée depuis le répertoire de données)`,enabledGenerated:`Chiffrement au repos activé avec une clé auto-générée`,notConfigured:`Chiffrement au repos non configuré`,notConfiguredDesc:`Les secrets TOTP et client_secrets OIDC sont stockés en clair. Définissez MFA_ENCRYPTION_KEY ou redémarrez Bambuddy avec un répertoire de données accessible en écriture pour en générer un automatiquement.`,allEncrypted:`Tous les secrets MFA sont chiffrés au repos.`,legacyRowsLabel:`Lignes héritées en clair`,encryptedRowsLabel:`Lignes chiffrées`,legacyRowsWarning:`{{count}} ligne(s) héritée(s) en clair détectée(s). Réenregistrez le fournisseur OIDC ou réinscrivez l'application d'authentification de l'utilisateur pour migrer vers le stockage chiffré.`,backupHint:`La clé auto-générée est stockée dans DATA_DIR/.mfa_encryption_key et incluse dans les ZIP de sauvegarde locale. Conservez vos sauvegardes en sécurité ou définissez MFA_ENCRYPTION_KEY explicitement.`,decryptionBrokenTitle:`Clé de chiffrement manquante`,decryptionBrokenError:`{{count}} enregistrement(s) chiffré(s) ne peuvent pas être déchiffrés car la clé de chiffrement n'est plus disponible. Restaurez le MFA_ENCRYPTION_KEY précédent ou DATA_DIR/.mfa_encryption_key pour récupérer.`,migrationErrorWarning:`{{count}} ligne(s) ancienne(s) n'ont pas pu être rechiffrée(s) au démarrage. Vérifiez les journaux du serveur et redémarrez Bambuddy pour réessayer.`},spoolbuddy:{infoTitle:`Périphériques SpoolBuddy`,infoBody:`Les bornes SpoolBuddy s'enregistrent automatiquement via heartbeat. Désinscrivez ici un appareil qui n'est plus utilisé ou un doublon obsolète laissé par un crash du daemon.`,duplicatesTitle:`{{count}} appareils enregistrés`,duplicatesBody:`Seul le premier appareil enregistré est utilisé par l'interface du kiosk. Si l'un de ces appareils est un doublon obsolète issu d'un crash, désinscrivez-le — un appareil en ligne se ré-enregistrera automatiquement au prochain heartbeat.`,empty:`Aucun appareil SpoolBuddy enregistré pour le moment.`,online:`En ligne`,offline:`Hors ligne`,unregister:`Désinscrire`,unregisterSuccess:`Appareil désinscrit`,unregisterError:`Échec de la désinscription`,confirmTitle:`Désinscrire l'appareil SpoolBuddy ?`,confirmBody:`Cela retirera "{{hostname}}" ({{deviceId}}) de la base de données. Si l'appareil est en ligne, il se ré-enregistrera automatiquement au prochain heartbeat.`,ipAddress:`Adresse IP`,firmware:`Micrologiciel`,lastSeen:`Dernière activité`,daemonUptime:`Uptime du daemon`,systemUptime:`Uptime système`,never:`jamais`,nfc:`NFC`,scale:`Balance`,cpuTemp:`Temp. CPU`,cpuLoad:`Charge CPU`,memory:`Mémoire`,disk:`Disque`,update:`Mettre à jour`,updateConfirmTitle:`Mettre à jour le daemon Spoolbuddy ?`,updateConfirmBody:`Déclencher une mise à jour logicielle sur "{{hostname}}" ? Le daemon redémarrera une fois la mise à jour appliquée.`,restartBrowser:`Redémarrer le navigateur`,restartBrowserConfirmTitle:`Redémarrer le navigateur du kiosk ?`,restartBrowserConfirmBody:`Redémarrer le navigateur du kiosk sur "{{hostname}}" ? L'écran sera momentanément vide.`,restartDaemon:`Redémarrer le daemon`,restartDaemonConfirmTitle:`Redémarrer le daemon Spoolbuddy ?`,restartDaemonConfirmBody:`Redémarrer le daemon Spoolbuddy sur "{{hostname}}" ? L'appareil sera hors ligne quelques secondes.`,reboot:`Redémarrer`,rebootConfirmTitle:`Redémarrer l'appareil ?`,rebootConfirmBody:`Redémarrer "{{hostname}}" ? L'appareil sera hors ligne pendant environ une minute.`,shutdown:`Éteindre`,shutdownConfirmTitle:`Éteindre l'appareil ?`,shutdownConfirmBody:`Éteindre "{{hostname}}" ? Vous aurez besoin d'un accès physique pour le rallumer.`,commandConfirm:`Confirmer`,commandQueued:`Commande en file d'attente`,commandError:`Échec de l'envoi de la commande`},pipelineLimits:{title:`Limites des pipelines du trancheur`,maxCopiesLabel:`Copies maximales par exécution`,maxCopiesDesc:`Limite supérieure du nombre de copies que les opérateurs peuvent demander lors de l'exécution d'un pipeline. La limite stricte côté serveur est 1000.`},pipelines:{title:`Pipelines du Trancheur`,subtitle:`Lots de préréglages réutilisables (imprimante + processus + filaments + type de plateau). Enregistrez-en un depuis le dialogue Trancher et appliquez-le en un clic au fichier suivant.`,loading:`Chargement des pipelines…`,loadError:`Impossible de charger les pipelines.`,confirmDelete:`Supprimer ce pipeline ? Cela ne peut pas être annulé.`,staleWarning:`Un ou plusieurs préréglages référencés n'existent plus. Réenregistrez ce pipeline depuis le dialogue Trancher pour le corriger.`,empty:{title:`Aucun pipeline pour le moment.`,howto:`Ouvrez le dialogue Trancher pour n'importe quel fichier, choisissez imprimante / processus / filaments / plateau, puis cliquez sur « Enregistrer comme pipeline ». Vos pipelines enregistrés apparaîtront ici.`},field:{name:`Nom du pipeline`,description:`Description`,targetPrinter:`Imprimante cible`,noTarget:`— Aucune cible —`,targetKind:`Type de cible`,targetKindSpecific:`Imprimante spécifique`,targetKindClass:`Classe d'imprimante`,targetModelClass:`Modèle d'imprimante`,fanoutStrategy:`Stratégie de distribution`,fanout:{max_parallel:`Max parallèle — distribuer sur toute imprimante libre correspondante`,round_robin:`Round robin — alterner entre imprimantes éligibles`,fill_one_first:`Remplir une d'abord — épingler toutes les copies à une imprimante`},fanoutShort:{max_parallel:`parallèle`,round_robin:`round robin`,fill_one_first:`remplir une`}},action:{save:`Enregistrer`,cancel:`Annuler`,rename:`Renommer`,delete:`Supprimer`},slot:{printer:`Imprimante`,process:`Processus`,filament:`Filament`,filamentN:`Filament {{n}}`,filamentAll:`Tous les {{n}} emplacements`,bed:`Plateau`},group:{profiles:`Profils`,filaments:`Filaments`},searchPlaceholder:`Rechercher des pipelines…`,filterTargetType:`Filtrer par type de cible`,filterTarget:`Filtrer par cible`,filter:{all:`Toutes les cibles`,noTarget:`Aucune cible`,count:`{{shown}} / {{total}}`,noMatches:`Aucun pipeline ne correspond aux filtres actuels.`},toast:{saved:`Pipeline enregistré`,saveFailed:`Échec de l'enregistrement`,deleted:`Pipeline supprimé`,deleteFailed:`Échec de la suppression`},noTargetHint:`Définissez une imprimante cible pour exécuter`,noTargetWarning:`Définissez une imprimante cible avant d'exécuter ce pipeline.`,runs:{lastRun:`Dernière exécution`,status:{queued:`en file`,slicing:`tranchage`,dispatching:`envoi`,in_progress:`impression`,completed:`terminé`,failed:`échec`,partial_failure:`échec partiel`,cancelled:`annulé`}}}},notification:{printStarted:{title:`Impression démarrée`,body:`{{printer}} : {{filename}} commence l'impression`},printCompleted:{title:`Impression terminée`,body:`{{printer}} : {{filename}} a réussi`},printFailed:{title:`Impression échouée`,body:`{{printer}} : {{filename}} a échoué`},printStopped:{title:`Impression arrêtée`,body:`{{printer}} : {{filename}} a été arrêtée`},printProgress:{title:`Progression d'impression`,body:`{{printer}} : {{filename}} est à {{percent}}%`},printerOffline:{title:`Imprimante hors ligne`,body:`{{printer}} est déconnectée`},printerError:{title:`Erreur imprimante`,body:`{{printer}} : {{error}}`},filamentLow:{title:`Filament bas`,body:`{{printer}} : Le filament est presque vide`},maintenanceDue:{title:`Maintenance due`,body:`{{printer}} : {{items}} demandent votre attention`}},errors:{generic:`Une erreur est survenue`,networkError:`Erreur réseau. Vérifiez votre connexion.`,notFound:`Non trouvé`,unauthorized:`Non autorisé`,serverError:`Erreur serveur`,validationError:`Vérifiez vos saisies`,printerConnectionFailed:`Échec connexion imprimante`,saveFailed:`Échec enregistrement`,deleteFailed:`Échec suppression`,loadFailed:`Échec chargement`},hmsErrors:{title:`Erreurs - {{name}}`,noErrors:`Aucune erreur`,viewOnWiki:`Voir sur le Wiki Bambu Lab`,mqttVerifyFailedRemedy:`Activez le mode developpeur sur l'imprimante, redemarrez l'imprimante, puis relancez la tache.`,unknownCode:`Code HMS inconnu — consultez le wiki Bambu Lab pour plus de détails.`,clearInstructions:`Effacez les erreurs sur l'imprimante pour les retirer ici.`,clearErrors:`Effacer les erreurs`,clearSuccess:`Erreurs HMS effacées`,clearFailed:`Échec de l'effacement des erreurs HMS`,actionSuccess:`Action envoyée à l'imprimante`,actionFailed:`Échec de l'envoi de l'action`,runoutExpectedSlot:`Le filament est épuisé dans {{ranOut}}. L'imprimante attend maintenant du filament compatible dans {{expected}}. Insérez une bobine dans {{expected}}, puis sélectionnez Réessayer.`,runoutExpectedSlotOnly:`L'imprimante attend du filament compatible dans {{expected}}. Insérez-y une bobine, puis sélectionnez Réessayer.`,runoutSlotUnknown:`Le filament est épuisé et l'impression est en pause. Bambuddy n'a pas pu déterminer quel emplacement l'imprimante attend désormais — vérifiez l'écran de l'imprimante pour l'emplacement demandé.`,actions:{RESUME_PRINTING:`Reprendre l'impression`,RESUME_PRINTING_DEFECTS:`Reprendre (défauts acceptables)`,RESUME_PRINTING_PROBELM_SOLVED:`Reprendre (problème résolu)`,STOP_PRINTING:`Arrêter l'impression`,CHECK_ASSISTANT:`Ouvrir l'assistant`,FILAMENT_EXTRUDED:`Filament extrudé, continuer`,RETRY_FILAMENT_EXTRUDED:`Pas encore extrudé, réessayer`,CONTINUE:`Terminé, continuer`,LOAD_VIRTUAL_TRAY:`Charger le filament`,OK_BUTTON:`OK`,FILAMENT_LOAD_RESUME:`Filament chargé, reprendre`,JUMP_TO_LIVEVIEW:`Voir en direct`,NO_REMINDER_NEXT_TIME:`Ne plus rappeler la prochaine fois`,REFRESH_NOZZLE:`Revérifier`,IGNORE_NO_REMINDER_NEXT_TIME:`Ignorer et ne plus rappeler`,IGNORE_RESUME:`Ignorer et reprendre`,PROBLEM_SOLVED_RESUME:`Problème résolu, reprendre`,TURN_OFF_FIRE_ALARM:`Compris, désactiver l'alarme incendie`,RETRY_PROBLEM_SOLVED:`Réessayer (problème résolu)`,CANCLE:`Annuler`,STOP_DRYING:`Arrêter le séchage`,PROCEED:`Continuer`,OK_JUMP_RACK:`OK`,ABORT:`Annuler`,DISABLE_PURIFICATION:`Désactiver la purification pour cette impression`,DONT_REMIND_NEXT_TIME:`Ne plus me rappeler`,DBL_CHECK_CANCEL:`Annuler`,DBL_CHECK_DONE:`Terminé`,DBL_CHECK_RETRY:`Réessayer`,DBL_CHECK_RESUME:`Reprendre`,DBL_CHECK_OK:`Confirmer`,REMOVE_CLOSE_BTN:`Fermer`}},mqttDebug:{title:`Journal de débogage MQTT`,searchPlaceholder:`Chercher topic ou message...`,noMessages:`Aucun message enregistré`,startLoggingHint:`Cliquez sur "Démarrer" pour capturer les messages MQTT`,noMessagesMatch:`Aucun message ne correspond`,adjustFilterHint:`Ajustez votre recherche`,incoming:`Entrant`,outgoing:`Sortant`,loggingStopped:`Enregistrement arrêté`,loggingActive:`Enregistrement actif - rafraîchissement auto`,startLogging:`Démarrer`,stopLogging:`Arrêter`,clearLog:`Effacer le journal`,topic:`Sujet`,timestamp:`Horodatage`,direction:`Direction`,all:`Tous`},printerFiles:{title:`Gestionnaire de fichiers`,storageUsed:`Utilisé :`,storageFree:`Libre :`,filterPlaceholder:`Filtrer les fichiers...`,deleteButton:`Supprimer`,deleteFiles:`Supprimer {{count}} fichiers`,deleteFileConfirm:`Supprimer "{{name}}" ?`,deleteFilesConfirm:`Supprimer les {{count}} fichiers sélectionnés ?`,noFiles:`Aucun fichier sur l'imprimante`,loadingFiles:`Chargement...`,failedToLoad:`Échec chargement fichiers`,toast:{filesDeleted:`{{count}} fichier(s) supprimé(s)`,deleteFailed:`Échec suppression : {{error}}`}},confirm:{delete:`Voulez-vous vraiment supprimer cet élément ?`,unsavedChanges:`Changements non sauvegardés. Voulez-vous quitter ?`,clearQueue:`Voulez-vous vraiment vider la file d'attente ?`},login:{title:`Connexion Bambuddy`,subtitle:`Connectez-vous à votre compte`,username:`Utilisateur`,usernamePlaceholder:`Entrez votre utilisateur`,usernameOrEmail:`Utilisateur ou Email`,usernameOrEmailPlaceholder:`Utilisateur ou @ Email`,password:`Mot de passe`,passwordPlaceholder:`Entrez votre mot de passe`,signIn:`Se connecter`,signingIn:`Connexion...`,rememberMe:`Se souvenir de moi`,forgotPassword:`Mot de passe oublié ?`,autologinFailed:`La connexion SSO automatique a échoué. Choisissez un fournisseur ci-dessous pour continuer.`,localDisabledNotice:`La connexion locale est désactivée. Utilisez l'un des fournisseurs SSO ci-dessous.`,loginSuccess:`Connecté avec succès`,loginFailed:`Échec de connexion`,enterCredentials:`Entrez vos identifiants`,enterEmail:`Veuillez entrer votre adresse e-mail`,oidcLoginFailed:`Échec de la connexion OIDC`,oidcErrors:{providerError:`Le fournisseur d'identité a renvoyé une erreur`,missingParameters:`Il manque des paramètres requis dans le callback OIDC`,invalidState:`L'état OIDC est invalide ou a déjà été utilisé`,stateExpired:`La session OIDC a expiré — veuillez réessayer`,providerNotFound:`Fournisseur OIDC introuvable`,discoveryFailed:`Impossible de récupérer le document de découverte OIDC`,invalidDiscovery:`Le document de découverte OIDC est invalide`,networkError:`Erreur réseau lors de l'échange de jeton OIDC`,badResponse:`Réponse inattendue lors de l'échange de jeton OIDC`,noIdToken:`Le fournisseur OIDC n'a pas renvoyé de jeton d'identité`,validationFailed:`La validation du jeton OIDC a échoué`,nonceMismatch:`Le nonce OIDC ne correspond pas — possible attaque par rejeu`,missingSubClaim:`Le jeton OIDC est dépourvu de la revendication sub`,noLinkedAccount:`Aucun compte local est lié à cette identité OIDC`,accountInactive:`Votre compte est inactif`,userResolutionFailed:`Impossible de résoudre votre compte`,internalError:`Une erreur interne est survenue lors de la connexion OIDC`,tokenExchangeFailed:`L'échange de jeton OIDC a échoué`},forgotPasswordTitle:`Mot de passe oublié`,forgotPasswordMessage:`Contactez votre administrateur pour réinitialiser votre accès.`,forgotPasswordEmailMessage:`Entrez votre email pour recevoir un nouveau mot de passe.`,emailAddress:`Adresse Email`,emailPlaceholder:`votre.email@exemple.com`,cancel:`Annuler`,sending:`Envoi...`,sendResetEmail:`Envoyer l'email`,howToReset:`Comment réinitialiser :`,resetStep1:`Contactez votre admin Bambuddy`,resetStep2:`Demandez une réinitialisation dans la Gestion Utilisateurs`,resetStep3:`Il vous donnera un mot de passe temporaire`,resetStep4:`Connectez-vous et changez-le dans les Paramètres`,gotIt:`Compris`,twoFA:{title:`Authentification à deux facteurs`,subtitle:`Votre compte est protégé par la 2FA. Saisissez le code de vérification ci-dessous.`,methodAuthenticator:`Application d'authentification`,methodEmail:`Code par e-mail`,methodBackup:`Code de récupération`,instructionsTotp:`Ouvrez votre application d'authentification et saisissez le code à 6 chiffres pour Bambuddy.`,instructionsEmail:`Un code à 6 chiffres a été envoyé à votre adresse e-mail. Il est valable 10 minutes.`,instructionsEmailNotSent:`Cliquez ci-dessous pour recevoir un code de vérification par e-mail.`,instructionsBackup:`Saisissez l'un de vos codes de récupération à 8 caractères. Chaque code ne peut être utilisé qu'une seule fois.`,sendCodeButton:`Envoyer le code par e-mail`,sendingCode:`Envoi en cours...`,resendCode:`Renvoyer le code`,codeLabel:`Code de vérification`,backupCodeLabel:`Code de récupération`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`Vérifier`,verifyingButton:`Vérification en cours...`,backToLogin:`← Retour à la connexion`,orContinueWith:`ou continuer avec`,signInWith:`Se connecter avec {{provider}}`,enterCode:`Veuillez entrer le code de vérification`,sendCodeFailed:`Échec de l'envoi du code de vérification`,invalidCode:`Code invalide. Veuillez réessayer.`},resetPassword:{title:`Définir un nouveau mot de passe`,subtitle:`Saisissez et confirmez votre nouveau mot de passe ci-dessous.`,newPassword:`Nouveau mot de passe`,newPasswordPlaceholder:`Au moins 8 caractères`,confirmPassword:`Confirmer le mot de passe`,confirmPasswordPlaceholder:`Répéter le nouveau mot de passe`,saving:`Enregistrement…`,submit:`Définir le mot de passe`,backToLogin:`Retour à la connexion`,passwordsDoNotMatch:`Les mots de passe ne correspondent pas`,passwordTooShort:`Le mot de passe doit contenir au moins 8 caractères`,resetFailed:`Échec de la réinitialisation. Le lien a peut-être expiré.`}},setup:{title:`Configuration Bambuddy`,subtitle:`Configurez l'authentification`,enableAuth:`Activer l'authentification`,adminAccount:`Compte Admin`,adminAccountDesc:`Si des admins existent, ils seront utilisés. Sinon, créez-en un ci-dessous.`,adminUsername:`Utilisateur Admin`,adminPassword:`Mot de passe Admin`,optionalIfAdminExists:`(optionnel si admin existe)`,adminUsernamePlaceholder:`Nom admin (optionnel)`,adminPasswordPlaceholder:`Mdp admin (optionnel)`,confirmPassword:`Confirmer mdp`,confirmPasswordPlaceholder:`Confirmez mdp admin`,settingUp:`Configuration...`,completeSetup:`Terminer la configuration`,toast:{authEnabledAdminCreated:`Authentification activée et admin créé`,authEnabledExistingAdmins:`Authentification activée avec admins existants`,setupCompleted:`Configuration terminée`,enterBothCredentials:`Entrez les deux ou laissez vide pour utiliser les admins existants`,passwordsDoNotMatch:`Les mots de passe ne correspondent pas`,passwordTooShort:`Minimum 6 caractères`}},changePassword:{title:`Changer le mot de passe`,currentPassword:`Mot de passe actuel`,currentPasswordPlaceholder:`Entrez mdp actuel`,newPassword:`Nouveau mot de passe`,newPasswordPlaceholder:`Nouveau mdp (min 6 char)`,confirmPassword:`Confirmer nouveau mdp`,confirmPasswordPlaceholder:`Confirmez nouveau mdp`,passwordsDoNotMatch:`Les mots de passe ne correspondent pas`,passwordTooShort:`Minimum 6 caractères`,changing:`Changement...`,success:`Mot de passe modifié`,failed:`Échec modification`},plateAlert:{title:`Impression en Pause !`,message:`Objets détectés sur le plateau. L'impression a été suspendue automatiquement. Videz le plateau avant de reprendre.`,understand:`J'ai compris`},camera:{title:`Vue Caméra`,invalidPrinterId:`ID imprimante invalide`,live:`Direct`,snapshot:`Instantané`,restartStream:`Redémarrer le flux`,refreshSnapshot:`Rafraîchir l'image`,fullscreen:`Plein écran`,exitFullscreen:`Quitter plein écran`,connectingToCamera:`Connexion caméra...`,capturingSnapshot:`Capture...`,connectionLost:`Connexion perdue`,connectionFailed:`Échec connexion caméra`,reconnecting:`Reconnexion dans {{countdown}}s... (essai {{attempt}}/{{max}})`,reconnectNow:`Reconnexion immédiate`,cameraUnavailable:`Caméra indisponible`,cameraUnavailableDesc:`Vérifiez que l'imprimante est allumée.`,noCamera:`Aucune caméra disponible`,retry:`Réessayer`,cameraStream:`Flux caméra`,zoomOut:`Zoom arrière`,zoomIn:`Zoom avant`,resetZoom:`Réinitialiser zoom`,recording:`Enregistrement`,startRecording:`Démarrer l'enregistrement`,stopRecording:`Arrêter l'enregistrement`,chamberLight:`Basculer lumière chambre`,unavailable:`Caméra indisponible`,diagnose:{button:`Diagnostic`,modalTitle:`Diagnostic de la caméra`,running:`Diagnostic en cours...`,runFailed:`Impossible d'exécuter le diagnostic : {{error}}`,retry:`Relancer`,stage:{tcp_reachable:`Accessibilité réseau`,first_frame:`Capture d'image`,live_stream_active:`Flux en direct actif`},summary:{all_ok:`La caméra fonctionne. Toutes les étapes du diagnostic ont réussi.`,live_stream_active_healthy:`La caméra diffuse actuellement avec des images récentes — aucun test nécessaire.`,printer_unreachable:`L'imprimante n'est pas joignable. Vérifiez l'adresse IP, la connexion réseau et que l'imprimante est allumée.`,camera_port_closed:`L'imprimante répond mais le port de la caméra est fermé. Assurez-vous que le mode LAN et le mode développeur sont activés dans les paramètres de l'imprimante.`,no_frame:`Connexion à la caméra établie mais aucune image reçue. Réessayez ou vérifiez que la caméra est activée dans les paramètres de l'imprimante.`,unknown_failure:`Le diagnostic de la caméra a échoué pour une raison inconnue. Consultez le journal de support pour plus de détails.`},meta:{protocol:`Protocole`,port:`Port`,profile:`Profil`}}},groups:{title:`Gestion des Groupes`,subtitle:`Gérez les permissions pour le contrôle d'accès`,backToSettings:`Retour aux paramètres`,createGroup:`Créer un groupe`,noPermission:`Accès refusé.`,system:`Système`,noDescription:`Pas de description`,usersCount:`{{count}} utilisateurs`,permissionsCount:`{{count}} permissions`,edit:`Modifier`,delete:`Supprimer`,toast:{created:`Groupe créé`,updated:`Groupe mis à jour`,deleted:`Groupe supprimé`,enterGroupName:`Entrez un nom de groupe`},modal:{editGroup:`Modifier le groupe`,createGroup:`Créer un groupe`,cancel:`Annuler`,saving:`Enregistrement...`,creating:`Création...`,saveChanges:`Enregistrer`},form:{groupName:`Nom du groupe`,groupNamePlaceholder:`Nom du groupe`,systemGroupWarning:`Les groupes système sont fixes`,description:`Description`,descriptionPlaceholder:`Description (optionnel)`,permissions:`Permissions ({{count}} sélectionnées)`},deleteModal:{title:`Supprimer le groupe`,message:`Les utilisateurs de ce groupe perdront ces permissions.`,confirm:`Supprimer`},editor:{title:`Modifier le groupe`,createTitle:`Créer un groupe`,search:`Rechercher des permissions...`,selectAll:`Tout sélectionner`,clearAll:`Tout désélectionner`,permissionsSelected:`{{count}} sélectionnée(s)`,noResults:`Aucune permission ne correspond à votre recherche`,websocketHint:`Requis pour les mises à jour en direct. Sans cette permission, l'interface bascule sur une actualisation périodique.`}},users:{title:`Gestion des Utilisateurs`,subtitle:`Gérez les accès à Bambuddy`,backToSettings:`Retour aux paramètres`,createUser:`Créer un utilisateur`,noPermission:`Accès refusé.`,admin:`Administrateur`,noGroups:`Aucun groupe`,active:`Actif`,inactive:`Inactif`,edit:`Modifier`,delete:`Supprimer`,system:`Système`,noGroupsAvailable:`Aucun groupe disponible`,table:{username:`Utilisateur`,groups:`Groupes`,status:`Statut`,actions:`Actions`},toast:{created:`Utilisateur créé`,updated:`Utilisateur mis à jour`,deleted:`Utilisateur supprimé`,fillRequired:`Remplissez les champs requis`,passwordsDoNotMatch:`Les mots de passe ne correspondent pas`,passwordTooShort:`Minimum 6 caractères`,ldapProvisioned:`Utilisateur LDAP "{{username}}" provisionné`},modal:{createUser:`Créer utilisateur`,editUser:`Modifier utilisateur`,cancel:`Annuler`,creating:`Création...`,saving:`Enregistrement...`,saveChanges:`Enregistrer`,advancedAuthSubtitle:`avec Authentification Avancée`,tabsAriaLabel:`Source utilisateur`,localTab:`Local`,ldapTab:`LDAP`,ldapSearchLabel:`Rechercher dans l'annuaire`,ldapSearchPlaceholder:`Tapez un nom d'utilisateur, un nom ou un e-mail...`,ldapMinChars:`Tapez au moins 2 caractères pour rechercher`,ldapTypeToSearch:`Commencez à taper pour rechercher dans l'annuaire LDAP`,ldapSearching:`Recherche dans l'annuaire...`,ldapNoResults:`Aucun utilisateur correspondant dans l'annuaire`,ldapSearchError:`Échec de la recherche dans l'annuaire. Vérifiez l'état du serveur LDAP.`,ldapAlreadyProvisioned:`Déjà provisionné`,ldapSelectedLabel:`Sélectionné`,ldapProvision:`Provisionner l'utilisateur`,ldapProvisioning:`Provisionnement...`,ldapErrorProvision:`Échec du provisionnement. Vérifiez l'état du serveur LDAP et réessayez.`},form:{username:`Utilisateur`,usernamePlaceholder:`Nom utilisateur`,email:`E-mail`,emailPlaceholder:`utilisateur@exemple.com`,password:`Mot de passe`,passwordPlaceholder:`Mot de passe`,confirmPassword:`Confirmer mdp`,confirmPasswordPlaceholder:`Confirmez mdp`,newPasswordPlaceholder:`Nouveau mdp`,confirmNewPasswordPlaceholder:`Confirmez nouveau mdp`,leaveBlankToKeep:`Laissez vide pour conserver l'actuel`,groups:`Groupes`,optional:`optionnel`,autoGeneratedPassword:`Un mot de passe sera généré et envoyé par email.`,passwordManagedByAdvancedAuth:`Géré par Auth Avancée. Utilisez "Réinitialiser" pour envoyer un nouveau mdp par email.`,resetPassword:`Réinitialiser le mot de passe`,resettingPassword:`Réinitialisation...`},deleteModal:{title:`Supprimer utilisateur`,message:`Cette action est irréversible.`,confirm:`Supprimer`}},streamOverlay:{title:`Superposition Flux`,invalidPrinterId:`ID invalide`,cameraStream:`Flux caméra`,progress:`Progression`,eta:`Fin estimée`,printerIdle:`Imprimante inactive`,printerOffline:`Imprimante hors ligne`,status:{printing:`Impression`,paused:`En pause`,finished:`Terminée`,failed:`Échouée`,idle:`Inactive`,unknown:`Inconnue`}},profiles:{title:`Profils`,subtitle:`Gérez vos presets slicer et calibrations Pressure Advance`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`Profils Locaux`,kprofiles:`Profils K`},orcaCloud:{connectedAs:`Connecté en tant que`,connectedShort:`Connecté à Orca Cloud`,logout:`Déconnecter`,noLogoutPermission:`Vous n'avez pas la permission de vous déconnecter`,noConnectPermission:`Vous n'avez pas la permission de vous connecter à Orca Cloud`,retry:`Réessayer`,connectButton:`Connecter Orca Cloud`,connect:{title:`Se connecter à Orca Cloud`,description:`Connectez-vous à votre compte Orca Cloud pour synchroniser vos profils de slicer dans Bambuddy.`},device:{title:`Approuver Bambuddy dans Orca Cloud`,instruction:`Ouvrez Orca Cloud et approuvez ce code. Bambuddy se connecte automatiquement dès que vous l'approuvez.`,codeLabel:`Votre code d'appairage`,openButton:`Ouvrir la page d'approbation d'Orca Cloud`,manualHint:`Ou rendez-vous sur {{url}} et saisissez le code ci-dessus.`,waiting:`En attente de votre approbation…`,cancel:`Annuler`},profiles:{title:`Vos profils Orca Cloud ({{count}})`,refresh:`Actualiser`,empty:`Aucun profil trouvé dans votre compte Orca Cloud pour le moment.`},toast:{disconnected:`Déconnecté d'Orca Cloud`},errors:{startFailed:`Impossible de démarrer la connexion à Orca Cloud.`,denied:`L'appairage a été refusé dans Orca Cloud.`,expired:`Le code d'appairage a expiré. Cliquez sur Connecter pour réessayer.`,pollFailed:`La connexion a été perdue pendant l'attente de l'approbation. Veuillez réessayer.`}},localProfiles:{title:`Profils Locaux`,subtitle:`Gérez vos presets OrcaSlicer`,import:`Importer Profils`,importDesc:`Déposez les fichiers .bbscfg, .bbsflmt, .orca_filament, .zip ou .json`,importing:`Importation...`,search:`Chercher un preset...`,noPresets:`Aucun preset local`,noSearchResults:`Aucun preset ne correspond à votre recherche`,badge:`Local`,edit:`Modifier`,delete:`Supprimer`,cancel:`Annuler`,deleteConfirmTitle:`Supprimer Preset`,deleteConfirm:`Supprimer définitivement ce preset ?`,source:`Source`,inheritsFrom:`Hérite de`,filamentType:`Type`,vendor:`Vendeur`,compatiblePrinters:`Imprimantes`,nozzleTemp:`Temp Buse`,cost:`Coût`,density:`Densité`,pressureAdvance:`Pressure Advance`,filament:`Filament`,process:`Processus`,printer:`Imprimante`,toast:{importSuccess:`{{count}} profil(s) importé(s)`,importSkipped:`{{count}} profil(s) ignoré(s) (doublons)`,importError:`{{count}} erreur(s) d'import`,deleted:`Preset supprimé`,updated:`Preset mis à jour`}},connectedAs:`Connecté en tant que`,signInExpiredTitle:`Session Bambu Cloud expirée`,signInExpiredBody:`Bambu Lab n'accepte plus le jeton enregistré. Reconnectez-vous pour rétablir les profils cloud, les imports MakerWorld et la vérification des firmwares.`,logout:`Déconnexion`,noLogoutPermission:`Pas d'autorisation de déconnexion`,failedToLoad:`Échec chargement profils`,retry:`Réessayer`,time:{justNow:`À l'instant`,minsAgo:`Il y a {{count}}m`,hoursAgo:`Il y a {{count}}h`,daysAgo:`Il y a {{count}}j`},toast:{loggedOut:`Déconnecté`},login:{title:`Connexion Bambu Cloud`,subtitle:`Synchronisez vos presets slicer`,email:`E-mail`,password:`Mot de passe`,region:`Région`,regionGlobal:`Global`,regionChina:`Chine`,verificationCode:`Code de vérification`,totpCode:`Code Authenticator`,checkEmail:`Code envoyé à {{email}}`,enterTotpHint:`Entrez le code 2FA`,accessToken:`Jeton d'accès (Access Token)`,accessTokenHint:`Collez votre jeton Bambu Cloud. Les comptes de la région Chine doivent passer par ici (liés à un numéro de téléphone — pas de connexion par e-mail). Le wiki explique comment récupérer le jeton depuis les cookies MakerWorld.`,back:`Retour`,loginButton:`Connexion`,verifyButton:`Vérifier`,setTokenButton:`Définir Jeton`,useToken:`Utiliser jeton d'accès`,useEmail:`Connexion par email`,toast:{loggedIn:`Connecté avec succès`,codeSent:`Code envoyé par email`,enterTotp:`Entrez le code Authenticator`,tokenSet:`Jeton défini`}},presets:{myPreset:`Mon preset (modifiable)`,duplicate:`Dupliquer`,editable:`Modifiable`,failedToLoadDetails:`Échec détails preset`,deleteConfirm:`Supprimer ce preset ?`,deleteWarning:`Ceci supprimera "{{name}}" de Bambu Cloud définitivement.`,noDuplicatePermission:`Pas d'autorisation duplication`,noEditPermission:`Pas d'autorisation modification`,noDeletePermission:`Pas d'autorisation suppression`,types:{filament:`Preset filament`,printer:`Preset imprimante`,process:`Preset processus`},toast:{deleted:`Preset supprimé`,created:`Preset créé`,updated:`Preset mis à jour`,duplicated:`Preset dupliqué`,fieldAdded:`Champ "{{key}}" ajouté`,exported:`Preset exporté`},baseLabel:`Base : {{name}}`,currentLabel:`Actuel : {{name}}`,newPreset:`Nouveau Preset`,editPreset:`Modifier Preset`,duplicatePreset:`Dupliquer Preset`,createNewPreset:`Créer un nouveau Preset`,customizeSettings:`Personnalisez vos réglages`,compareWithBase:`Comparer avec la base`,compare:`Comparer`,basePreset:`Preset de base`,selectBasePreset:`Choisir preset de base...`,presetName:`Nom du preset`,myCustomPreset:`Mon preset personnalisé`,inheritsFrom:`Hérite de`,dropJsonToImport:`Glissez JSON pour importer`,tabs:{common:`Commun`,allFields:`Tous les champs`},availableFields:`Champs disponibles`,searchFieldsPlaceholder:`Chercher un champ...`,noMatchingFields:`Aucun champ trouvé`,allFieldsAdded:`Tous les champs sont ajoutés`,addCustomField:`Ajouter un champ personnalisé`,yourOverrides:`Vos modifications`,noOverridesYet:`Aucune modification`,clickFieldsToAdd:`Cliquez à gauche pour ajouter`,saveAsTemplate:`Enregistrer comme modèle`,jsonTip:`Conseil : Glissez un .json pour importer les réglages`},cloudView:{searchPlaceholder:`Chercher presets...`,templates:`Modèles`,refresh:`Rafraîchir`,newPreset:`Nouveau Preset`,clearFilters:`Effacer filtres`,compareMode:`Mode Comparaison`,selectAnotherPreset:`Choisir un autre preset {{type}}`,clickTwoPresets:`Choisissez deux presets de même type`,selectFirst:`1. Sélectionner premier`,selectSecond:`2. Sélectionner second`,compareNow:`Comparer maintenant`,lastSynced:`Synchronisé :`,showingCount:`{{showing}} sur {{total}} presets`,noPresetsFound:`Aucun preset trouvé`,columns:{filament:`Filament`,process:`Processus`,printer:`Imprimante`},noFilamentPresets:`Pas de preset filament`,noProcessPresets:`Pas de preset processus`,noPrinterPresets:`Pas de preset imprimante`,filters:{type:`Type`,owner:`Propriétaire`,printer:`Imprimante`,nozzle:`Buse`,filament:`Filament`,layer:`Couche`,all:`Tous`,myPresets:`Mes Presets`,builtIn:`Inclus`,process:`Processus`},noTemplatesPermission:`Pas d'autorisation modèles`,noRefreshPermission:`Pas d'autorisation rafraîchissement`,noCreatePermission:`Pas d'autorisation création`},templates:{title:`Modèles rapides`,noTemplates:`Aucun modèle`,createFirst:`Créez-en depuis l'éditeur de preset`,typeFilter:`Type :`,deleteTitle:`Supprimer modèle`,deleteWarning:`Action irréversible`,deleteConfirm:`Supprimer "{{name}}" ?`,namePlaceholder:`Nom du modèle`,descriptionPlaceholder:`Description`,settingsJson:`Paramètres (JSON)`,fieldsCount:`{{count}} champs`,shownInModals:`Visible dans fenêtres`,hiddenInModals:`Masqué dans fenêtres`,apply:`Appliquer`,toast:{deleted:`Modèle supprimé`,updated:`Modèle mis à jour`,created:`Modèle créé`,applied:`Modèle appliqué`}}},support:{debugLoggingActive:`Débogage actif`,manageLogs:`Gérer`,collectItem7:`Connectivité et versions firmware`,collectItem8:`Statut intégrations (Spoolman, MQTT, HA)`,collectItem9:`Interfaces réseau (sous-réseaux)`,collectItem10:`Versions packages Python`,collectItem11:`Santé base de données`,collectItem12:`Détails environnement Docker`,bundleGenerating:`Génération du paquet...`,bundleStepConnection:`Vérification de la connectivité des imprimantes`,bundleStepVirtualPrinters:`Vérification de la configuration des imprimantes virtuelles`,bundleStepLogScan:`Analyse des journaux récents pour les problèmes connus`,bundleStepBuild:`Création du ZIP du paquet de support`},fileManager:{title:`Gestionnaire de fichiers`,subtitle:`Organisez vos fichiers d'impression`,uploadFiles:`Téléverser fichiers`,newFolder:`Nouveau dossier`,folderName:`Nom du dossier`,folderNamePlaceholder:`ex: Pièces Utiles`,renameFile:`Renommer fichier`,renameFolder:`Renommer dossier`,invalidFilenameChar:`Le caractère "{{char}}" n'est pas autorisé dans les noms de fichier d'impression. La carte SD de l'imprimante refuse : < > : " / \\ | ? *`,moveFiles:`Déplacer {{count}} fichier(s)`,rootNoFolder:`Racine (aucun dossier)`,current:`actuel`,linkFolder:`Lier le dossier`,linkFolderDescription:`Lier "{{name}}" à un projet ou archive.`,project:`Projet`,archive:`Archive`,noProjectsFound:`Aucun projet trouvé`,noArchivesFound:`Aucune archive trouvée`,unlink:`Délier`,link:`Lier`,dragDropFiles:`Glissez les fichiers ici`,dropFilesHere:`Déposez ici`,releaseToUpload:`Relâcher pour téléverser`,orClickToBrowse:`ou cliquez pour parcourir`,allFileTypesSupported:`Tous types supportés. ZIP extraits.`,zipFilesDetected:`ZIP détectés`,zipExtractOptions:`Choix de structure pour ZIP :`,preserveZipStructure:`Garder structure ZIP`,createFolderFromZip:`Dossier par nom du ZIP`,stlThumbnailGeneration:`Vignettes STL`,zipMayContainStl:`Extraction vignettes possible pour STL.`,thumbnailsCanBeGenerated:`Génération vignettes (peut être long).`,generateThumbnailsForStl:`Générer vignettes STL`,threemfDetected:`Fichiers 3MF détectés`,threemfExtractionInfo:`Réglages extraits auto du 3MF.`,willBeExtracted:`Sera extrait`,filesExtracted:`{{count}} fichiers extraits`,uploadComplete:`Terminé : {{succeeded}} succès`,uploadFailed:`Échec du téléversement`,zipFilesFailed:`{{count}} fichiers échoués`,uploading:`Téléversement...`,changeLink:`Modifier lien...`,linkTo:`Lier à...`,linkToProjectOrArchive:`Lier à projet ou archive`,generateThumbnail:`Générer vignette`,generateThumbnails:`Générer vignettes`,generateThumbnailsForMissing:`Vignettes STL manquantes`,gridView:`Grille`,listView:`Liste`,lowDiskSpaceWarning:`Espace disque faible`,lowDiskSpaceDetails:`{{free}} libre sur {{total}}. Seuil : {{threshold}} Go.`,files:`Fichiers`,folders:`Dossiers`,size:`Taille`,free:`Libre`,allFiles:`Tous les fichiers`,allExternal:`Externes`,externalIsEmpty:`Aucun fichier externe`,externalEmptyDescription:`Les fichiers de vos dossiers externes liés apparaîtront ici.`,wrap:`Retour ligne`,enableTextWrapping:`Activer retour ligne`,disableTextWrapping:`Désactiver retour ligne`,collapse:`Réduire`,collapseFoldersByDefault:`Réduire les dossiers par défaut`,expandFoldersByDefault:`Développer les dossiers par défaut`,folderSort:`Trier les dossiers`,folderSortByName:`Par nom`,folderSortByActivity:`Par activité récente`,dragToResizeTooltip:`Glisser pour redimensionner, double-clic reset`,searchFiles:`Chercher fichiers...`,searchSubfoldersHint:`Sous-dossiers inclus`,readme:{truncated:`Tronqué`,show:`Afficher le README`,hide:`Masquer le README`,label:`README`},tags:{title:`Étiquettes`,subtitle:`Étiquetez les fichiers pour des filtres transversaux — jouets, adapté aux enfants, PETG uniquement, etc.`,manage:`Étiquettes`,manageTitle:`Gérer le catalogue d'étiquettes`,add:`Nouvelle étiquette`,edit:`Renommer l'étiquette`,name:`Nom`,fileCount:`Fichiers`,empty:`Aucune étiquette pour le moment. Créez-en une pour commencer.`,noMatches:`Aucune étiquette correspondante.`,createPlaceholder:`ex. jouets, kid-safe, petg`,createButton:`Créer`,nameRequired:`Le nom est requis.`,searchPlaceholder:`Filtrer les étiquettes...`,created:`Étiquette créée.`,updated:`Étiquette renommée.`,deleted:`Étiquette supprimée.`,saveFailed:`Impossible d'enregistrer l'étiquette.`,deleteFailed:`Impossible de supprimer l'étiquette.`,applyFailed:`Impossible d'appliquer les étiquettes.`,applyAdd:`Ajouter des étiquettes`,applyRemove:`Retirer des étiquettes`,applyAddSuccess:`{{count}} étiquette(s) ajoutée(s) sur {{files}} fichier(s).`,applyRemoveSuccess:`{{count}} étiquette(s) retirée(s) sur {{files}} fichier(s).`,actionAdd:`Ajouter aux fichiers sélectionnés`,actionRemove:`Retirer des fichiers sélectionnés`,tagAction:`Étiqueter`,bulkTitle:`Étiqueter {{count}} fichier(s) sélectionné(s)`,bulkTooltip:`Ajouter ou retirer des étiquettes sur chaque fichier sélectionné.`,noPermission:`Vous n'avez pas la permission d'étiqueter les fichiers.`,filterLabel:`Filtré par :`,clearAll:`Tout effacer`,confirmDelete:`Supprimer l'étiquette « {{name}} » ?`,confirmDeleteMessage:`Cela supprime l'étiquette du catalogue. Les fichiers conservent leurs autres étiquettes.`,confirmDeleteInUseMessage:`Cette étiquette est sur {{count}} fichier(s). La suppression la retire de tous ; les fichiers eux-mêmes ne sont pas touchés.`,editAria:`Modifier {{name}}`,deleteAria:`Supprimer {{name}}`},allTypes:`Tous types`,prints:`Impressions`,ascending:`Croissant`,descending:`Décroissant`,showModified:`Afficher les dates de modification`,hideModified:`Masquer les dates de modification`,lastModified:`Dernière modification`,lastActivity:`Dernière activité`,resultsCount:`{{showing}} sur {{total}} fichiers`,selectAll:`Tout sélectionner`,deselectAll:`Tout désélectionner`,selected:`{{count}} sélectionnés`,adding:`Ajout...`,loadingFiles:`Chargement...`,folderIsEmpty:`Dossier vide`,noFilesYet:`Aucun fichier`,folderEmptyDescription:`Téléversez ou déplacez des fichiers ici.`,noFilesDescription:`Téléversez des fichiers pour organiser.`,noMatchingFiles:`Aucun fichier correspondant`,noMatchingFilesDescription:`Ajustez votre recherche.`,clearFilters:`Effacer filtres`,printedCount:`Imprimé {{count}}x`,uploadedBy:`Téléversé par`,deleteFolder:`Supprimer dossier`,deleteFile:`Supprimer fichier`,deleteFilesCount:`Supprimer {{count}} fichiers`,deleteFolderConfirm:`Supprimer le dossier et son contenu ?`,deleteFileConfirm:`Supprimer ce fichier ?`,deleteFilesConfirm:`Supprimer {{count}} fichiers définitivement ?`,deleting:`Suppression...`,noPermissionRenameFolder:`Pas d'autorisation renommage`,noPermissionLinkFolder:`Pas d'autorisation lien`,noPermissionDeleteFolder:`Pas d'autorisation suppression dossier`,onlyEmptyFoldersDeletable:`Vous ne pouvez supprimer que les dossiers vides`,noPermissionPrint:`Pas d'autorisation impression`,noPermissionSlice:`Vous n'avez pas la permission de découper des fichiers`,noPermissionAddToQueue:`Pas d'autorisation file`,noPermissionDownload:`Pas d'autorisation téléchargement`,noPermissionRenameFile:`Pas d'autorisation renommage fichier`,noPermissionGenerateThumbnail:`Pas d'autorisation vignettes`,noPermissionDeleteFile:`Pas d'autorisation suppression fichier`,noPermissionCreateFolder:`Pas d'autorisation nouveau dossier`,noPermissionUpload:`Pas d'autorisation téléversement`,noPermissionMoveFiles:`Pas d'autorisation déplacement`,noPermissionDeleteFiles:`Pas d'autorisation suppression groupée`,linkExternal:`Lier externe`,linkExternalFolder:`Lier un dossier externe`,linkExternalFolderDescription:`Monter un répertoire hôte (NAS, USB, partage réseau) dans le gestionnaire de fichiers. Les fichiers ne sont pas copiés — ils sont lus directement depuis le chemin d'origine.`,externalFolderNamePlaceholder:`ex. Impressions NAS`,externalPath:`Chemin hôte`,externalPathHelp:`Chemin absolu du répertoire sur l'hôte Docker. Doit être monté en bind dans le conteneur.`,readOnly:`Lecture seule`,readOnlyHelp:`empêche les téléversements et suppressions`,showHiddenFiles:`Afficher les fichiers cachés (fichiers point)`,externalFolder:`Dossier externe`,scanFolder:`Scanner`,toast:{folderCreated:`Dossier créé`,folderDeleted:`Dossier supprimé`,fileDeleted:`Fichier supprimé`,filesDeleted:`{{count}} fichiers supprimés`,filesMoved:`Fichiers déplacés`,folderLinked:`Dossier lié`,folderUnlinked:`Dossier délié`,externalFolderLinked:`Dossier externe lié et scanné`,folderScanned:`Scan terminé : {{added}} ajoutés, {{removed}} supprimés`,addedToQueue:`{{count}} fichier(s) ajouté(s)`,addedToQueuePartial:`{{added}} ajoutés, {{failed}} échecs`,failedToAddToQueue:`Échec ajout file : {{error}}`,fileRenamed:`Fichier renommé`,folderRenamed:`Dossier renommé`,thumbnailsGenerated:`{{count}} vignette(s) générée(s)`,thumbnailsGeneratedPartial:`{{succeeded}} succès, {{failed}} échecs`,noStlMissingThumbnails:`Aucun STL sans vignette`,failedToGenerateThumbnails:`Échec vignettes : {{error}}`,thumbnailGenerated:`Vignette générée`,failedToGenerateThumbnail:`Échec vignette : {{error}}`}},projects:{title:`Projets`,subtitle:`Suivez vos projets d'impression 3D`,newProject:`Nouveau Projet`,editProject:`Modifier Projet`,deleteProject:`Supprimer Projet`,projectName:`Nom du Projet`,description:`Description`,noProjects:`Aucun projet`,noProjectsFiltered:`Aucun projet {{status}}`,noProjectsFilteredHelp:`Vous n'avez aucun projet "{{status}}". Les projets apparaîtront ici lorsque leur statut changera.`,createFirst:`Créez votre premier projet pour organiser vos builds.`,createFirstButton:`Créer votre premier projet`,create:`Créer`,files:`Fichiers`,prints:`Impressions`,plates:`plateaux`,parts:`pièces`,lastModified:`Modifié le`,deleteConfirm:`Supprimer ce projet ? Les archives seront déliées mais conservées.`,addFiles:`Ajouter fichiers`,removeFile:`Retirer fichier`,viewDetails:`Détails`,namePlaceholder:`ex: Build Voron 2.4`,descriptionPlaceholder:`Description optionnelle...`,urlLabel:`URL`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`L'URL doit commencer par http:// ou https://`,openExternalUrl:`Ouvrir l’URL du projet`,coverImageLabel:`Photo de couverture`,coverImageAlt:`Photo de couverture du projet`,coverImageUpload:`Téléverser`,coverImageReplace:`Remplacer`,coverImageRemove:`Supprimer`,color:`Couleur`,targetPlates:`Plateaux cibles`,targetPlatesPlaceholder:`ex: 25`,targetPlatesHelp:`Nombre total de jobs`,targetParts:`Pièces cibles`,targetPartsPlaceholder:`ex: 150`,targetPartsHelp:`Nombre total d'objets`,targetSets:`Copies par fichier`,targetSetsPlaceholder:`ex. 10`,targetSetsHelp:`Nombre d'impressions de chaque fichier imprimable`,tagsLabel:`Tags (séparés par virgules)`,tagsPlaceholder:`ex: voron, cadeau`,dueDate:`Échéance`,priority:`Priorité`,priorityLow:`Basse`,priorityNormal:`Normale`,priorityHigh:`Haute`,priorityUrgent:`Urgente`,statusActive:`Actif`,statusCompleted:`Terminé`,statusArchived:`Archivé`,done:`Fait`,completed:`terminé`,failed:`échoué`,inQueue:`en file`,noPrintsYet:`Aucune impression`,printJobs:`Jobs (plateaux)`,partsPrinted:`Pièces imprimées`,failedParts:`Pièces échouées`,import:`Importer`,export:`Exporter`,importProject:`Importer projet`,exportAll:`Exporter tous les projets`,loading:`Chargement des projets...`,noEditPermission:`Pas d'autorisation de modification`,noDeletePermission:`Pas d'autorisation de suppression`,noCreatePermission:`Pas d'autorisation de création`,noImportPermission:`Pas d'autorisation d'import`,noExportPermission:`Pas d'autorisation d'export`,toast:{created:`Projet créé`,updated:`Projet mis à jour`,deleted:`Projet supprimé`,imported:`Projet importé`,multipleImported:`{{count}} projets importés`,importFailed:`Échec d'import`,exported:`Projets exportés (métadonnées)`}},projectDetail:{notFound:`Projet non trouvé`,backToProjects:`Retour aux Projets`,export:`Exporter`,exportProject:`Exporter projet`,noExportPermission:`Pas d'autorisation export`,noEditPermission:`Pas d'autorisation modification`,partOf:`Fait partie de :`,priorityLabel:`Priorité :`,noPrints:`Aucune impression dans ce projet`,status:{active:`Actif`,completed:`Terminé`,archived:`Archivé`},priority:{low:`Basse`,normal:`Normale`,high:`Haute`,urgent:`Urgente`},dueDate:{overdue:`En retard`,today:`Aujourd'hui`,daysLeft:`{{count}} jours restants`},progress:{platesProgress:`Progression Plateaux`,partsProgress:`Progression Pièces`,setsProgress:`Jeux complets`,sets:`jeux`,setsHint:`Un jeu est complet quand chaque fichier imprimable atteint ce nombre`,printJobs:`jobs d'impression`,parts:`pièces`,percentComplete:`{{percent}}% terminé`,remaining:`{{count}} restant(s)`},stats:{printJobs:`Jobs d'Impression`,total:`total`,failed:`{{count}} échecs`,partsPrinted:`{{count}} pièces imprimées`,printTime:`Temps d'Impression`,filamentUsed:`Filament utilisé`},cost:{title:`Suivi des coûts`,filamentCost:`Coût Filament`,energy:`Énergie`,totalCost:`Coût Total`,total:`Total`,includesBom:`BOM incluse`,budget:`Budget`,remaining:`Restant`},subProjects:{title:`Sous-projets ({{count}})`},notes:{title:`Notes`,noEditPermission:`Pas d'autorisation modification`,placeholder:`Ajouter des notes...`,empty:`Aucune note. Cliquez sur modifier.`},files:{title:`Fichiers`,linkFolders:`Liez des dossiers depuis le gestionnaire`,forQuickAccess:`pour un accès rapide.`,fileCount:`{{count}} fichier(s)`,empty:`Aucun dossier lié.`,printedCount:`Imprimé {{count}} fois`,progressTooltip:`{{done}} sur {{target}} impressions terminées`,noFiles:`Aucun fichier dans ce dossier.`},bom:{title:`BOM (Liste matériel)`,acquired:`{{completed}}/{{total}} acquis`,showAll:`Tout afficher`,hideDone:`Masquer acquis`,addPart:`Ajouter matériel`,noAddPermission:`Pas d'autorisation ajout`,partNamePlaceholder:`Nom (ex: Vis M3x8)`,partName:`Nom de pièce`,qty:`Qté`,price:`Prix ({{currency}})`,sourcingUrlPlaceholder:`Lien d'achat (optionnel)`,remarksPlaceholder:`Remarques (optionnel)`,deletePart:`Supprimer pièce`,deleteConfirm:`Supprimer "{{name}}" ?`,noUpdatePermission:`Pas d'autorisation mise à jour`,noEditPermission:`Pas d'autorisation modification`,noDeletePermission:`Pas d'autorisation suppression`,totalCost:`Coût total :`,empty:`BOM vide. Ajoutez du matériel ou de l'électronique.`},timeline:{title:`Historique d'activité`,empty:`Aucune activité.`},template:{saveAsTemplate:`Enregistrer comme modèle`,noCreatePermission:`Pas d'autorisation modèle`},queue:{title:`File d'attente`,viewAll:`Tout voir`,printing:`{{count}} en cours`,queued:`{{count}} en file`},prints:{title:`Impressions ({{count}})`},toast:{projectUpdated:`Projet mis à jour`,partAdded:`Pièce ajoutée`,partRemoved:`Pièce retirée`,exportFailed:`Échec export`,projectExported:`Projet exporté`,templateCreated:`Modèle créé`}},system:{title:`Informations Système`,version:`Version`,uptime:`Temps de fonctionnement`,cpuUsage:`Utilisation CPU`,memoryUsage:`Utilisation RAM`,diskUsage:`Utilisation Disque`,networkInfo:`Infos Réseau`,logs:`Journaux`,debugMode:`Mode Débogage`,enableDebug:`Activer débogage`,disableDebug:`Désactiver débogage`,downloadLogs:`Télécharger logs`,clearLogs:`Effacer logs`,dockerInfo:`Infos Docker`,containerName:`Nom conteneur`,imageName:`Nom image`,platform:`Plateforme`,architecture:`Architecture`},sponsors:{sectionTitle:`Indépendant & financé par la communauté`,tagline:`Bambuddy est gratuit et le reste parce que des personnes choisissent de le soutenir. Pas de VC, pas de verrouillage cloud.`,viewSupporters:`Voir les soutiens`,toastPrints:`Tu as terminé {{count}} impressions avec Bambuddy. Bambuddy reste gratuit grâce à ceux qui le soutiennent.`,toastCost:`Tu as suivi {{total}} de filament avec Bambuddy. Vois qui garde le projet indépendant.`,toastArchives:`{{count}} impressions archivées avec Bambuddy. Vois qui le garde indépendant.`,toastAnniversary:`Un an avec Bambuddy ! Vois qui garde le projet indépendant.`,toastVersionUpdate:`Mis à jour vers v{{version}}. Bambuddy reste gratuit grâce à ceux qui le soutiennent.`,toastBusiness:`Vous utilisez Bambuddy sur {{count}} imprimantes ? Il existe une offre de support pour les équipes : corrections prioritaires, facturation et contact direct avec le mainteneur.`,businessCta:`Bambuddy pour les entreprises`,businessTitle:`Bambuddy pour les entreprises`,businessTagline:`Vous gérez {{count}} imprimantes. Support prioritaire, licences commerciales et facturation sont disponibles pour les équipes et les fermes d'impression.`},library:{title:`Bibliothèque Filament`,addFilament:`Ajouter Filament`,editFilament:`Modifier Filament`,deleteFilament:`Supprimer Filament`,vendor:`Vendeur`,material:`Matériau`,color:`Couleur`,kFactor:`Facteur K`,temperature:`Température`,noFilaments:`Bibliothèque vide`,deleteConfirm:`Supprimer ce filament ?`,importFromPrinter:`Importer de l'imprimante`,exportToFile:`Exporter vers fichier`,runWithPipeline:{actionLabel:`Exécuter avec un pipeline`,noPermission:`Vous n'avez pas la permission d'exécuter des pipelines`,modalTitle:`Exécuter avec un pipeline`,confirmTitle:`Confirmer l'exécution`,confirmIntro:`Le pré-vol a trouvé des problèmes avec cette exécution`,sourceHint:`Source`,pipelineHint:`Pipeline`,targetHint:`Cible`,pipelineListAria:`Pipelines disponibles`,runAnyway:`Exécuter quand même`,loading:`Chargement…`,empty:`Aucun pipeline enregistré pour le moment. Ouvrez le dialogue Trancher et cliquez sur « Enregistrer comme pipeline » pour en créer un.`,noTarget:`Aucune imprimante cible définie`,noTargetMessage:`Ce pipeline n'a pas d'imprimante cible. Ouvrez-le dans les Paramètres pour en choisir une.`,copies:`Copies`,copiesHint:`max {{n}}`,classTarget:`N'importe quel {{model}}`,toast:{started:`Exécution de pipeline démarrée`,failed:`Impossible de démarrer l'exécution`},issue:{printerNotSet:`Aucune imprimante cible définie pour ce pipeline.`,printerNotFound:`L'imprimante cible n'existe plus.`,printerDisabled:`L'imprimante cible est désactivée.`,printerOffline:`L'imprimante cible est hors ligne.`,filamentType:`Emplacement filament {{slot}} : attendu {{expected}}, AMS a {{actual}}`,filamentColor:`Emplacement filament {{slot}} : couleur différente (attendu {{expected}}, AMS a {{actual}})`,amsSlotMissing:`Emplacement AMS {{slot}} indisponible sur cette imprimante`,filamentUnverified:`L'emplacement filament {{slot}} provient d'un préréglage cloud / standard et n'a pas pu être vérifié statiquement.`,noClassMatches:`Aucune imprimante de cette installation ne correspond à la classe de modèle cible du pipeline ({{expected}}).`,classNotSet:`La cible du pipeline est une classe d'imprimante mais aucun modèle n'a été choisi.`}}},slice:{title:`Slicer le modèle`,action:`Slicer`,actionAll:`Slicer les {{count}} plateaux`,actionAllTitle:`Slicer tous les plateaux dans une sortie multi-plateaux (une seule archive). La sélection de filament couvre chaque emplacement défini par le projet.`,allPlatesToggle:`Slicer les {{count}} plateaux`,slicing:`Découpage…`,printer:`Profil d'imprimante`,process:`Profil de processus`,filament:`Profil de filament`,filamentSlot:`Filament {{index}} – {{type}}`,selectPreset:`— Sélectionner un préréglage —`,loadingPresets:`Chargement des préréglages…`,analyzingPlateFilaments:`Analyse des filaments de la plaque…`,analyzingPlateFilamentsHint:`Exécution d'un découpage d'aperçu pour identifier les emplacements AMS utilisés. Mis en cache après — la réouverture est instantanée.`,previewToast:`Analyse de {{name}} – {{elapsed}}`,previewWithProgress:`Analyse de {{name}} – {{stage}} ({{percent}} %) – {{elapsed}}`,notUsedByPlate:`— non utilisé par cette plaque`,noPresetsForSlot:`Aucun préréglage disponible`,otherPrinters:`Autres imprimantes`,presetsLoadFailed:`Échec du chargement des préréglages. Ouvrez Paramètres → Profils pour les importer d'abord.`,refreshPresets:`Actualiser`,refreshPresetsTitle:`Actualiser les préréglages — récupérer les dernières listes Cloud et bundle (à utiliser après avoir supprimé un préréglage dans Bambu Studio ou Bambu Handy)`,allPresetsRequired:`Tous les préréglages doivent être sélectionnés`,useEmbedded:`Utiliser les réglages intégrés du fichier`,useEmbeddedHint:`Slicer tel que le concepteur l'a configuré (parois, remplissage, filament) au lieu des profils ci-dessus. Proposé car votre imprimante correspond à celle du fichier.`,designSettings:`Conserver les réglages du concepteur`,designSettingsHint:`Ce fichier modifie {{count}} réglage(s) d'impression par rapport au profil standard.`,designSettingsSelected:`{{selected}} sur {{total}} sélectionnés`,designSettingsPrinterCoupled:`spécifique à l'imprimante`,designSettingsPrinterCoupledHint:`Réglé pour l'imprimante visée par le fichier — peut être incorrect ou hors plage sur la vôtre.`,enqueuing:`Envoi du travail de découpage…`,queued:`En file d'attente…`,failed:`Échec du découpage. Vérifiez les journaux du sidecar.`,startedToast:`Découpage de {{name}} en arrière-plan…`,queuedToast:`En attente : {{name}} – {{elapsed}}`,runningToast:`Découpage {{name}} – {{elapsed}}`,runningWithProgress:`{{name}} – {{stage}} ({{percent}} %) – {{elapsed}}`,runningWithProgressMultiPlate:`Plateau {{plateIndex}} sur {{plateCount}} • {{name}} – {{stage}} ({{percent}} %) – {{elapsed}}`,completedToast:`{{name}} découpé`,failedTitle:`Échec du découpage`,failedToast:`Échec du découpage de {{name}} : {{detail}}`,tier:{local:`Importé`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`Standard`},cloud:{notAuthenticated:`Connectez-vous à Bambu Cloud (Paramètres → Profils → Bambu Cloud) pour voir vos préréglages cloud.`,expired:`Session Bambu Cloud expirée – reconnectez-vous pour actualiser vos préréglages cloud.`,unreachable:`Bambu Cloud est inaccessible. Les préréglages locaux et standards fonctionnent encore.`},orcaCloud:{notAuthenticated:`Connectez-vous à Orca Cloud (Profils → Orca Cloud) pour voir vos préréglages Orca.`,expired:`Session Orca Cloud expirée — reconnectez-vous pour actualiser vos préréglages Orca.`,unreachable:`Orca Cloud est indisponible pour le moment. Les autres préréglages fonctionnent toujours.`},bedType:{label:`Plateau d'impression`,auto:`Auto (utiliser le préréglage de processus)`,coolPlate:`Cool Plate`,coolPlateSuperTack:`Cool Plate SuperTack`,engineering:`Engineering Plate`,highTemp:`High Temp Plate`,texturedPEI:`Textured PEI Plate`,smoothPEI:`Smooth PEI Plate`},pipelines:{label:`Pipeline`,applyAria:`Appliquer le pipeline`,applyPrompt:`Appliquer un pipeline…`,empty:`Aucun pipeline enregistré`,saveButton:`Enregistrer comme pipeline`,saveTitle:`Enregistrer la sélection actuelle des quatre emplacements comme pipeline réutilisable`,namePlaceholder:`Nom du pipeline`,nameAria:`Nouveau nom de pipeline`,toast:{applied:`« {{name}} » appliqué`,saved:`Pipeline enregistré`,saveFailed:`Échec de l'enregistrement`}}},spoolman:{title:`Intégration Spoolman`,enabled:`Spoolman Activé`,url:`URL Spoolman`,connected:`Connecté`,disconnected:`Non Connecté`,testConnection:`Tester connexion`,sync:`Synchroniser`,syncing:`Sync...`,lastSync:`Dernière Sync`,linkToSpoolman:`Lier à Spoolman`,openInSpoolman:`Ouvrir Spoolman`,unlinkSpool:`Délier bobine`,unlinkConfirmTitle:`Désassigner la bobine ?`,unlinkConfirmMessage:`Cela retirera la bobine de cet emplacement. Les données de la bobine elles-mêmes resteront inchangées.`,selectSpool:`Choisir bobine`,noUnlinkedSpools:`Pas de bobine libre`,linkSuccess:`Bobine assignée avec succès`,linkFailed:`Échec de l’assignation`,unlinkSuccess:`Bobine désassignée avec succès`,unlinkFailed:`Échec du désassignement`,linkedSpool:`Bobine assignée`,spoolId:`ID Bobine`,fillSourceLabel:`(Spoolman)`,weight:`Poids`,remaining:`Restant`,disableWeightSync:`Désactiver Sync poids estimé AMS`,disableWeightSyncDesc:`Ne pas utiliser les estimations AMS. Utile si vous préférez le suivi Spoolman.`,reportPartialUsage:`Rapporter consommation partielle pour échecs`,reportPartialUsageDesc:`Si l'impression échoue, rapporte le filament consommé selon les couches.`},locations:{title:`Emplacements de stockage`,subtitle:`Gérez étagères, tiroirs et autres emplacements physiques pour vos bobines`,add:`Ajouter un emplacement`,addShort:`Ajouter`,edit:`Modifier l'emplacement`,name:`Nom`,spools:`Bobines`,empty:`Aucun emplacement de stockage. Créez votre première étagère ou tiroir.`,manage:`Emplacements`,createPlaceholder:`ex. Étagère A, Tiroir 1`,nameRequired:`Le nom de l'emplacement est requis`,created:`Emplacement créé`,updated:`Emplacement mis à jour`,deleted:`Emplacement supprimé`,saveFailed:`Échec de l'enregistrement de l'emplacement`,deleteFailed:`Échec de la suppression de l'emplacement`,deleteBlocked:`Retirez d'abord toutes les bobines de cet emplacement`,confirmDelete:`Supprimer « {{name}} » ?`,confirmDeleteMessage:`Cet emplacement sera retiré du catalogue. Déplacez d'abord les bobines.`},inventory:{title:`Inventaire de Bobines`,subtitle:`Gérez vos bobines`,addToInventory:`Ajouter à l'inventaire`,addToInventoryPending:`Ajout...`,addToInventorySuccess:`Bobine ajoutée à l'inventaire`,addToInventoryFailed:`Échec de l'ajout de la bobine à l'inventaire`,unknownSpoolTitle:`Nouveau filament détecté`,unknownSpoolMessage:`Une bobine avec un tag RFID inconnu a été détectée à {{location}}. L'ajouter à votre inventaire maintenant ?`,unknownSpoolSlot:`Emplacement`,bulk:{selectAllVisible:`Tout sélectionner (visible)`,selectRow:`Sélectionner la ligne`,selectGroup:`Sélectionner le groupe`,selectionCount:`{{count}} sélectionnée(s)`,edit:`Modifier`,printLabels:`Imprimer les étiquettes`,resetUsage:`Réinitialiser l'utilisation`,restore:`Restaurer`,archive:`Archiver`,delete:`Supprimer`,clearSelection:`Effacer la sélection`,editTitle:`Modification groupée des bobines`,editSubtitle:`S'applique à {{count}} bobines sélectionnées. Seuls les champs cochés seront mis à jour.`,editHint:`Tapez dans un champ pour le marquer comme à mettre à jour — seules les lignes cochées sont envoyées. Un champ laissé vide laisse les bobines inchangées (vider un champ se fait par bobine).`,useCustom:`Utiliser « {{value}} »`,toggleField:`Activer la mise à jour de ce champ`,changeCount:`{{count}} champ(s) seront mis à jour.`,applyPending:`Application...`,applyButton:`Appliquer à {{count}} bobines`,deleteTitle:`Supprimer les bobines sélectionnées`,archiveTitle:`Archiver les bobines sélectionnées`,restoreTitle:`Restaurer les bobines sélectionnées`,resetUsageTitle:`Réinitialiser l'utilisation des bobines sélectionnées`,deleteMessage:`Supprimer définitivement {{count}} bobines ? Cette action est irréversible.`,archiveMessage:`Archiver {{count}} bobines ? Elles pourront être restaurées plus tard.`,restoreMessage:`Restaurer {{count}} bobines archivées ?`,resetUsageMessage:`Réinitialiser le compteur « Total consommé » sur {{count}} bobines ? Le poids restant est préservé.`,updateSuccess:`{{count}} bobines mises à jour`,updateFailed:`Mise à jour groupée échouée`,updatePartial:`{{ok}} bobines mises à jour, {{failed}} échouées`,updateAllFailed:`Les {{count}} mises à jour ont échoué — la sélection est conservée pour réessayer`,deleteSuccess:`{{count}} bobines supprimées`,deleteFailed:`Suppression groupée échouée`,deletePartial:`{{ok}} bobines supprimées, {{failed}} échouées`,deleteAllFailed:`Les {{count}} suppressions ont échoué — la sélection est conservée pour réessayer`,archiveSuccess:`{{count}} bobines archivées`,archiveFailed:`Archivage groupé échoué`,archivePartial:`{{ok}} bobines archivées, {{failed}} échouées`,archiveAllFailed:`Les {{count}} archivages ont échoué — la sélection est conservée pour réessayer`,restoreSuccess:`{{count}} bobines restaurées`,restoreFailed:`Restauration groupée échouée`,restorePartial:`{{ok}} bobines restaurées, {{failed}} échouées`,restoreAllFailed:`Les {{count}} restaurations ont échoué — la sélection est conservée pour réessayer`,invalidHex:`Saisissez 6 caractères hex (RRVVBB) ou 8 (RRVVBBAA). Sinon le champ ne sera pas appliqué.`},spoolmanMixedContentTitle:`Spoolman ne peut pas se charger en HTTPS — contenu mixte bloqué par votre navigateur`,spoolmanMixedContentBody:`Bambuddy est servi en HTTPS (via votre reverse proxy), mais votre URL Spoolman est encore en HTTP. Les navigateurs bloquent le contenu mixte pour des raisons de sécurité, donc l'interface Spoolman intégrée ne peut pas s'afficher. Spoolman doit être accessible en HTTPS.`,spoolmanMixedContentFixReverseProxy:`Placez Spoolman derrière le même reverse proxy que Bambuddy (Traefik / Nginx / Caddy) en HTTPS, puis mettez à jour l'URL Spoolman dans les Paramètres avec la nouvelle adresse HTTPS.`,spoolmanMixedContentFixOpenNewTab:`Alternative : ouvrez Spoolman dans un nouvel onglet en HTTP — les règles de contenu mixte ne s'appliquent qu'aux cadres intégrés, un onglet autonome fonctionne.`,spoolmanOpenInNewTab:`Ouvrir Spoolman dans un nouvel onglet`,labels:{title:`Imprimer étiquettes de bobines`,selectedCount:`{{count}} sélectionné`,pickSpools:`Choisissez les bobines pour lesquelles imprimer des étiquettes :`,monochrome:`Monochrome (imprimante noir et blanc)`,monochromeHint:`Supprime la pastille de couleur et élargit le texte`,searchPlaceholder:`Rechercher par nom, marque ou #ID`,filterByMaterial:`Matériau :`,allMaterials:`Tout`,selectVisible:`Sélectionner tout visible ({{count}})`,deselectVisible:`Désélectionner visible`,clearAll:`Tout effacer`,noSpoolsToShow:`Aucune bobine à afficher. Ajustez votre filtre et réessayez.`,noMatches:`Aucune bobine ne correspond à la recherche ou au filtre actuel.`,printOne:`Imprimer l'étiquette de cette bobine`,printLabels:`Imprimer les étiquettes…`,bulkTitle:`Choisissez les bobines à étiqueter parmi les {{count}} affichées`,noSpoolsTitle:`Aucune bobine à étiqueter`,error:`Impossible de générer les étiquettes : {{msg}}`,sortBy:{label:`Trier :`,id:`Par ID`,color:`Par couleur`},templates:{amsHolderSmall:{label:`Support AMS — petit (74 × 33 mm)`,hint:`Une étiquette par page ; correspond à l'étiquette imprimable du modèle MakerWorld 752566 (Support d'étiquettes pour filament AMS).`},amsHolderLarge:{label:`Support AMS — grand (75 × 55 mm)`,hint:`Une étiquette par page ; s'adapte à la variante carton du support d'étiquettes pour filament AMS. Assez d'espace pour pastille, marque, matériau, ID et QR code.`},box40x30:{label:`Étiquette boîte (40 × 30 mm)`,hint:`Une étiquette par page ; taille de rouleau DK/Brother courante, idéale pour étiqueter sachets de filament et bacs de stockage.`},box:{label:`Box label (62 × 29 mm)`,hint:`Une étiquette par page ; dimensionnée pour Brother PT/QL et petites étiquettes Dymo.`},averyL7160:{label:`Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)`,hint:`Format de feuille UE ; 21 étiquettes par page A4.`},avery5160:{label:`Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)`,hint:`Format de feuille US ; 30 étiquettes par page Letter.`}}},csv:{importButton:`Importer CSV`,exportButton:`Exporter CSV`,modalTitle:`Importer des bobines depuis un CSV`,selectFile:`Choisissez un fichier CSV ou glissez-le ici`,dragHint:`En-tête : material (requis), brand, subtype, color_name, rgba, …`,parsing:`Lecture du fichier…`,previewError:`Impossible de lire le fichier CSV`,validCount:`{{count}} valides`,errorCount:`{{count}} en erreur`,skippedCount:`{{count}} ignorées`,colRow:`Ligne`,colStatus:`Statut`,colColor:`Couleur`,colorResolved:`Couleur remplie depuis le catalogue`,colorCrossMaterial:`Couleur reprise d'un autre matériau — aucune correspondance exacte dans le catalogue`,duplicateExisting:`Une bobine avec ce matériau, cette marque et cette couleur existe déjà — elle sera tout de même importée comme une nouvelle bobine`,spoolmanHint:`En mode Spoolman, utilisez l'import/export CSV intégré de Spoolman.`,importValidRows:`Importer {{count}} lignes valides`,noValidRows:`Aucune ligne valide`,importing:`Importation…`,importSuccess:`{{count}} bobines importées`,importError:`Échec de l'importation`,exportError:`Échec de l'exportation`},addSpool:`Ajouter Bobine`,editSpool:`Modifier Bobine`,copySpool:`Copier Bobine`,material:`Matériau`,selectMaterial:`Choisir matériau...`,subtype:`Sous-type`,brand:`Marque`,searchBrand:`Chercher marque...`,useCustomBrand:`Utiliser "{{brand}}"`,useCustomMaterial:`Utiliser un matériau personnalisé : {{material}}`,suggestedOptions:`Suggérés`,allOptions:`Tous`,colorName:`Nom de couleur`,colorNamePlaceholder:`Blanc Jade, Rouge Feu...`,color:`Couleur`,hexColor:`Code Hex`,pickColor:`Choisir couleur perso`,labelWeight:`Poids net`,coreWeight:`Poids bobine vide`,searchSpoolWeight:`Chercher poids bobine...`,weightUsed:`Consommé`,currentWeight:`Poids restant`,measuredWeight:`Poids mesuré`,spoolName:`Bobine`,costPerKg:`Coût par kg`,storageLocation:`Emplacement de stockage`,storageLocationPlaceholder:`ex. Étagère A, Tiroir 1`,openInInventory:`Ouvrir dans l'inventaire`,measuredWeightError:`Le poids mesuré doit être entre {{min}}g et {{max}}g.`,slicerFilament:`Filament Slicer`,slicerFilamentName:`Nom du Preset Slicer`,slicerPreset:`Preset Slicer`,searchPresets:`Chercher presets...`,selectedPreset:`Sélectionné`,noPresetsFound:`Aucun preset trouvé`,tempOverrides:`Exceptions Température`,note:`Note`,notePlaceholder:`Notes additionnelles sur cette bobine...`,category:`Catégorie`,categoryPlaceholder:`ex. Production, Prototype, Client A`,categoryNone:`Sans catégorie`,storageLocationNone:`Aucun emplacement défini`,lowStockThresholdOverride:`Seuil bas (cette bobine)`,lowStockThresholdOverrideHelp:`Laisser vide pour utiliser le seuil global ({{global}} %).`,clearRfid:`Effacer le tag RFID`,rfidCleared:`Tag RFID effacé`,archive:`Archiver`,restore:`Restaurer`,noSpools:`Aucune bobine. Ajoutez votre première bobine pour commencer.`,noAvailableSpools:`Aucune bobine disponible. Ajoutez une bobine à votre inventaire ou désaffectez-en une d'un autre emplacement.`,kProfiles:`Profils K`,addKProfile:`Ajouter K-Profile`,assignSpool:`Assigner Bobine`,unassignSpool:`Désassigner`,assignSuccess:`Bobine assignée et slot AMS configuré`,assignPendingInsert:`Assigné. Le slot sera configuré lors de l'insertion de la bobine.`,assignFailed:`Échec assignation`,selectSpool:`Choisir une bobine pour ce slot`,assigned:`Assigné`,assigning:`Assignation...`,searchSpools:`Chercher bobines...`,showAllSpools:`Afficher toutes les bobines`,spoolmanSpools:`Bobines Spoolman`,allMaterials:`Tous Matériaux`,filterByBrand:`Filtrer par marque...`,showArchived:`Afficher archivées`,quickAdd:`Ajout rapide (Stock)`,quantity:`Quantité`,stock:`Stock`,configured:`Configuré`,spoolsCreated:`{{count}} bobines créées`,spoolsPartiallyCreated:`{{created}} sur {{total}} bobines créées (certaines ont échoué)`,spoolCreated:`Bobine créée`,spoolUpdated:`Bobine mise à jour`,spoolDeleted:`Bobine supprimée`,deepLinkSpoolNotFound:`Bobine introuvable`,deepLinkFetchFailed:`Impossible de charger la bobine — réessayez`,spoolArchived:`Bobine archivée`,spoolRestored:`Bobine restaurée`,kProfileSaveFailed:`Les paramètres de profil K n'ont pas pu être enregistrés`,syncWeightSpoolNotFound:`Bobine introuvable — elle a peut-être été supprimée`,syncWeightSpoolmanUnreachable:`Spoolman est inaccessible — réessayez plus tard`,syncWeightFailed:`Échec de la synchronisation du poids`,spoolmanUnreachable:`Spoolman est inaccessible — veuillez réessayer plus tard`,deleteSpoolNotFound:`Bobine introuvable — elle a peut-être déjà été supprimée`,deleteFailed:`Impossible de supprimer la bobine`,archiveSpoolNotFound:`Bobine introuvable — elle a peut-être déjà été supprimée`,archiveFailed:`Impossible d'archiver la bobine`,restoreSpoolNotFound:`Bobine introuvable — elle a peut-être déjà été supprimée`,restoreFailed:`Impossible de restaurer la bobine`,saveFailed:`Impossible d'enregistrer les modifications`,tagClearFailed:`Impossible de supprimer le tag`,deleteConfirm:`Supprimer définitivement cette bobine ?`,archiveConfirm:`Voulez-vous vraiment archiver cette bobine ?`,advancedSettings:`Paramètres Avancés`,filamentInfoTab:`Infos Filament`,paProfileTab:`Profil PA`,filamentInfo:`Filament`,additional:`Additionnel`,loadingPresets:`Chargement des presets cloud...`,cloudConnected:`Cloud connecté`,cloudNotConnected:`Cloud déconnecté (valeurs par défaut)`,recentColors:`Récentes`,searchColors:`Chercher couleurs...`,searchResults:`Résultats`,allColors:`Toutes`,commonColors:`Communes`,showLess:`Moins`,showAll:`Toutes`,noColorsFound:`Aucune couleur correspondante`,noResults:`Aucun résultat`,extraColorsLabel:`Couleurs supplémentaires`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`Collez 2 à 8 stops hex, séparés par des virgules. Affiché en dégradé.`,extraColorsInvalid:`Hex non valides ignorés : {{tokens}}`,colorEffectLabel:`Effet`,colorEffect:{none:`Aucun`,sparkle:`Pailleté`,wood:`Bois`,marble:`Marbre`,glow:`Lueur`,matte:`Mat`,silk:`Soie`,galaxy:`Galaxie`,rainbow:`Arc-en-ciel`,metal:`Métal`,translucent:`Translucide`,gradient:`Dégradé`,dualColor:`Bicolore`,triColor:`Tricolore`,multicolor:`Multicolore`},selectMaterialFirst:`Veuillez choisir un matériau dans l'onglet Infos Filament.`,noPrintersConfigured:`Ajoutez une imprimante pour utiliser les profils PA.`,matchingFilter:`Correspondant`,anyBrand:`Toute marque`,anyVariant:`Toute variante`,autoSelect:`Auto-sélection`,matches:`correspondances`,match:`correspondance`,noMatches:`Aucune correspondance`,connected:`Connecté`,offline:`Hors ligne`,printerOffline:`Imprimante hors ligne. Connectez-vous pour voir les profils.`,noKProfilesMatch:`Aucun profil K ne correspond au filament.`,leftNozzle:`Buse Gauche`,rightNozzle:`Buse Droite`,profilesSelected:`profil(s) de calibration sélectionné(s)`,totalInventory:`Total Inventaire`,totalConsumed:`Total Consommé`,byMaterial:`Par Matériau`,inPrinter:`Dans Imprimante`,lowStock:`Stock Bas`,sinceTracking:`Depuis le début du suivi`,resetConsumedCounter:`Réinitialiser le compteur`,resetConsumedCounterTooltip:`Remettre à zéro le compteur de grammes consommés pour cette bobine. Le poids restant n'est pas modifié.`,resetConsumedCounterConfirm:`Remettre à 0 le compteur de grammes consommés de cette bobine ? Les futures impressions repartiront de zéro. La bobine, son calcul de poids restant et vos paramètres ne sont pas modifiés.`,resetAllConsumedCounters:`Réinitialiser tous les compteurs`,resetAllConsumedCountersTooltip:`Remettre à zéro le compteur de grammes consommés sur chaque bobine. Les poids restants ne sont pas modifiés.`,resetAllConsumedCountersConfirm:`Remettre à 0 le compteur de grammes consommés sur les {{count}} bobines (archivées incluses) ? Cela efface la valeur « Total Consommé » pour que les futures impressions repartent de zéro. Les bobines et les poids restants ne sont pas modifiés.`,consumedCounterReset:`Compteur réinitialisé`,allConsumedCountersReset:`Compteur réinitialisé pour {{count}} bobine(s)`,resetConsumedCounterFailed:`Échec de la réinitialisation du compteur`,loadedInAms:`Chargé dans AMS/Ext`,remaining:`Restant`,weightCheck:`Vérification poids`,lastWeighed:`Dernière pesée`,neverWeighed:`Jamais pesé`,search:`Chercher bobines...`,showing:`Affichage`,to:`à`,of:`sur`,show:`Voir`,spools:`bobines`,spool:`bobine`,page:`Page`,noSpoolsMatch:`Aucun résultat trouvé`,noSpoolsMatchDesc:`Ajustez votre recherche ou vos filtres.`,active:`Actif`,archived:`Archivé`,all:`Tous`,used:`Occasion`,new:`Neuf`,clearFilters:`Effacer filtres`,table:`Tableau`,cards:`Cartes`,net:`Réseau`,groupSimilar:`Grouper`,groupedSpools:`{{count}} bobines identiques`,groupedRows:`lignes`,columns:`Colonnes`,configureColumns:`Configurer Colonnes`,configureColumnsDesc:`Glissez pour ordonner ou utilisez les flèches. Cliquez sur l'œil pour masquer.`,visible:`visible`,reset:`Réinitialiser`,cancel:`Annuler`,applyChanges:`Appliquer`,moveUp:`Monter`,moveDown:`Descendre`,hideColumn:`Masquer`,showColumn:`Afficher`,linkToSpool:`Lier à une Bobine`,tagLinked:`Tag lié à la bobine`,tagLinkFailed:`Échec lien tag`,tagAlreadyLinked:`Tag déjà lié à une autre bobine`,unknownTag:`Tag RFID inconnu détecté`,usageHistory:`Historique de Consommation`,noUsageHistory:`Aucune consommation enregistrée`,printName:`Nom Impression`,weightConsumed:`Poids consommé`,clearHistory:`Effacer`,historyCleared:`Historique effacé`,fillSourceLabel:`(Inv)`,lowStockThresholdError:`Le seuil doit être compris entre 0.1 et 99.9`,assignMismatchTitle:`Incompatibilité de matériau`,assignMismatchMessage:`Le matériau de la bobine sélectionnée "{{spoolMaterial}}" ne correspond pas au matériau du plateau "{{trayMaterial}}" pour {{location}}. Assigner quand même ?`,assignMismatchConfirm:`Assigner quand même`,assignPartialMismatchMessage:`Le matériau de la bobine "{{spoolMaterial}}" est similaire, mais ne correspond pas exactement à "{{trayMaterial}}" dans {{location}}. Voulez-vous continuer ?`,assignProfileMismatchMessage:`Le profil de la bobine "{{spoolProfile}}" ne correspond pas au profil du plateau "{{trayProfile}}" dans {{location}}. Voulez-vous continuer ?`,assignReconfigureNote:`Le slot AMS sera reconfiguré pour utiliser le profil de la bobine.`,spoolmanFilamentCatalog:`Catalogue de filaments Spoolman`,pickFromSpoolmanCatalog:`Choisir dans le catalogue Spoolman…`,spoolmanFilamentSelected:`Filament sélectionné depuis le catalogue Spoolman`,spoolmanFilamentUnlinked:`Lien avec le catalogue de filaments supprimé`,noSpoolmanFilaments:`Aucun filament trouvé dans le catalogue Spoolman`,spoolmanFilamentColorSwatch:`Couleur du filament`,spoolWeightManagedBySpoolman:`Le poids de la bobine vide est géré par type de filament dans Spoolman`,spoolmanCatalogLoadFailed:`Impossible de charger le catalogue Spoolman`},timelapse:{title:`Time-lapse`,create:`Créer Timelapse`,download:`Télécharger`,delete:`Supprimer`,preview:`Aperçu`,frameRate:`Images/sec`,quality:`Qualité`,processing:`Traitement...`,noTimelapses:`Aucun timelapse`},ams:{title:`AMS`,slot:`Emplacement`,empty:`Vide`,emptySlot:`Slot vide`,slotEmpty:`Vide`,slotUnconfigured:`?`,emptySlotReset:`Aucune bobine assignée`,unknown:`Inconnu`,humidity:`Humidité`,temperature:`Température`,filamentType:`Type filament`,filamentColor:`Couleur`,remaining:`Restant`,history:`Historique AMS`,noHistory:`Aucun historique`,configureSlot:`Configurer Slot`,externalSpool:`Bobine externe`,profile:`Profil`,kFactor:`Facteur K`,fill:`Remplir`,configure:`Configurer`,used:`utilisé`,remainingUnit:`restant`},printModal:{selectPrinter:`Choisir l'imprimante`,selectPlate:`Choisir le plateau`,filamentMapping:`Mapping Filament`,plateN:`Plateau {{n}}`,plateFilamentsUnreadable:`Les filaments d'un plateau sélectionné n'ont pas pu être lus, il est donc impossible de l'affecter. Désélectionnez-le pour mettre les autres en file.`,totalCost:`Coût total :`,slotRemainingShort:` - {{grams}}g rest.`,printSettings:`Réglages d'impression`,bedLeveling:`Nivellement plateau`,flowCalibration:`Calibration débit`,vibrationCalibration:`Vibration (Input Shaper)`,layerInspection:`Inspection 1ère couche`,timelapse:`Time-lapse`,cancel:`Annuler`,noPrintersAvailable:`Aucune imprimante disponible`,printerBusy:`L'imprimante est occupée`,printerOffline:`L'imprimante est hors ligne`,sameTypeDifferentColor:`Même type, couleur différente`,filamentTypeNotLoaded:`Type de filament non chargé`,whenToPrint:`Quand imprimer`,asap:`Dès que possible`,queue:`File`,schedule:`Planifier`,dateTime:`Date et heure`,invalidDateTime:`Veuillez saisir une date et une heure valides`,openCalendar:`Ouvrir calendrier`,requireManualStart:`Démarrage manuel requis`,requirePreviousSuccess:`Démarrer seulement si l'impression précédente a réussi`,autoOffAfter:`Éteindre l'imprimante à la fin`,helpAsap:`L'impression sera ajoutée en haut de la file et démarrera dès qu'une imprimante éligible sera inactive.`,helpSchedule:`L'impression démarrera à l'heure planifiée si l'imprimante est inactive. Si elle est occupée, elle attendra qu'elle soit disponible.`,helpQueue:`L'impression sera ajoutée à la fin de la file.`,leftNozzle:`G`,rightNozzle:`D`,leftNozzleTooltip:`Buse gauche`,rightNozzleTooltip:`Buse droite`,filamentOverride:`Remplacement de filament`,filamentOverrideHint:`Remplacez optionnellement les filaments pour l'affectation par modèle. Le planificateur utilisera vos filaments sélectionnés au lieu des valeurs 3MF d'origine.`,originalFilament:`Original`,overrideWith:`Remplacer par`,resetToOriginal:`Revenir à l'original`,insufficientFilamentTitle:`Filament insuffisant`,waitingForAmsStatus:`En attente de l'état de l'AMS de {{printer}}…`,insufficientFilamentMessage:`Certaines bobines assignées ont moins de filament restant que nécessaire pour cette impression :`,insufficientFilamentLine:`{{printer}} - {{slot}} : nécessite {{required}}g, restant {{remaining}}g`,printAnyway:`Imprimer quand même`,forceColorMatch:`Forcer correspondance des couleurs`,staggerPrinterStarts:`Échelonner démarrages`,staggerGroupSize:`Taille du groupe`,staggerInterval:`Intervalle (min)`,staggerPreview:`{{printers}} imprimantes → {{groups}} groupes de {{size}}, démarrage toutes les {{interval}} min`,staggerLastGroup:`dernier groupe : {{count}}`,staggerTotal:`total : {{minutes}} min`,staggerToPrinters:`Échelonner sur {{count}} imprimantes`,gcodeInjection:`Injecter le G-code auto-impression`},backup:{includesEncryptionKey:`Les sauvegardes locales incluent le fichier de clé de chiffrement MFA (DATA_DIR/.mfa_encryption_key), donc un ZIP de sauvegarde est autonome. Traitez le ZIP comme sensible — quiconque possède le fichier peut déchiffrer les secrets client OIDC et TOTP qu'il contient.`,title:`Sauvegarde & Restauration`,createBackup:`Créer Sauvegarde`,restoreBackup:`Restaurer Sauvegarde`,restoreDescription:`Remplace les données par un fichier de sauvegarde`,downloadBackup:`Télécharger Sauvegarde`,uploadBackup:`Téléverser Sauvegarde`,lastBackup:`Dernière sauvegarde`,autoBackup:`Sauvegarde auto`,backupNow:`Sauvegarder maintenant`,restoreWarning:`Attention : Écrase TOUTES les données actuelles.`,includeArchives:`Inclure Archives`,includeSettings:`Inclure Paramètres`,includeProfiles:`Inclure Profils`,backupSuccess:`Sauvegarde réussie`,restoreSuccess:`Restauration réussie`,backupFailed:`Échec sauvegarde`,restoreFailed:`Échec restauration`,restoreNote:`L'imprimante virtuelle sera arrêtée pendant la restauration`,githubBackup:`Sauvegarde GitHub`,enabled:`Activé`,cloudLoginRequired:`Connexion Bambu Cloud requise. Connectez-vous sous Profils → Profils Cloud pour activer la sauvegarde GitHub.`,cloudLoginRequiredShort:`Connexion Cloud requise`,githubDescription:`Synchronisez automatiquement vos profils vers un dépôt GitHub privé pour la sauvegarde et l'historique des versions.`,repoIsPrivate:`Le dépôt est privé — la sauvegarde peut s'y faire en toute sécurité.`,repoIsPublicWarning:`Le dépôt est PUBLIC. Les sauvegardes Bambuddy contiennent les identifiants MQTT, les jetons Home Assistant, les jetons Prometheus, votre adresse Bambu Cloud, et les codes d'accès des imprimantes via les K-profils. L'enregistrement est bloqué tant que le dépôt n'est pas passé en privé dans les paramètres de votre hébergeur.`,repoVisibilityUnknown:`Impossible de déterminer la visibilité du dépôt. Bambuddy refuse toute sauvegarde vers un dépôt non confirmé privé ; l'enregistrement sera bloqué.`,repositoryUrl:`URL du dépôt`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`Autoriser HTTP non sécurisé`,allowInsecureHttpHint:`Activer pour les instances auto-hébergées sur des réseaux privés sans TLS`,personalAccessToken:`Jeton d'accès personnel`,tokenSaved:`(enregistré)`,enterNewToken:`Entrez un nouveau jeton pour mettre à jour`,tokenHint:`Jeton à granularité fine avec permission de lecture/écriture du contenu`,branch:`Branche`,provider:`Fournisseur Git`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`Manuel uniquement`,hourly:`Toutes les heures`,daily:`Quotidien`,weekly:`Hebdomadaire`,includeInBackup:`Inclure dans la sauvegarde`,kProfiles:`K-Profils`,kProfilesDescription:`Calibration de l'avance de pression des imprimantes connectées`,noPrintersConnected:`Aucune imprimante connectée`,printersConnected:`{{connected}}/{{total}} connectées`,cloudProfiles:`Profils Cloud`,cloudProfilesDescription:`Préréglages de filament, imprimante et processus depuis Bambu Cloud`,appSettings:`Paramètres de l'application`,appSettingsDescription:`Configuration Bambuddy (base de données complète)`,spoolInventory:`Inventaire des bobines`,spoolInventoryDescription:`Bobines de filament, historique d'utilisation et suivi des coûts`,printArchives:`Archives d'impression`,printArchivesDescription:`Métadonnées de l'historique d'impression (pas de fichiers gcode/3MF)`,lastBackupAt:`Dernière sauvegarde :`,noBackupsYet:`Aucune sauvegarde pour l'instant`,next:`Prochaine :`,startingBackup:`Démarrage de la sauvegarde...`,test:`Tester`,enableBackup:`Activer la sauvegarde`,testConnection:`Tester la connexion`,enterRepoUrl:`Entrez l'URL du dépôt`,enterRepoAndToken:`Entrez l'URL du dépôt et le jeton d'accès`,repoRequired:`L'URL du dépôt est requise`,tokenRequired:`Le jeton d'accès est requis`,githubBackupEnabled:`Sauvegarde GitHub activée`,tokenUpdated:`Jeton mis à jour`,settingsSaved:`Paramètres enregistrés`,failedToSave:`Échec de l'enregistrement : {{message}}`,backupCompleteFiles:`Sauvegarde terminée - {{count}} fichiers mis à jour`,backupSkippedNoChanges:`Sauvegarde ignorée - aucun changement`,backupFailed2:`Échec de la sauvegarde : {{message}}`,clearedLogs:`{{count}} journaux supprimés`,failedToClearLogs:`Échec de la suppression des journaux : {{message}}`,history:`Historique`,clear:`Effacer`,date:`Date`,status:`Statut`,commit:`Commit`,localBackup:`Sauvegarde locale`,localBackupDescription:`Créez une sauvegarde complète de vos données Bambuddy incluant la base de données, les archives, les téléchargements et tous les fichiers.`,downloadBackupLabel:`Télécharger la sauvegarde`,completeBackupZip:`Sauvegarde complète : base de données + tous les fichiers (ZIP)`,download:`Télécharger`,preparingBackup:`Préparation de la sauvegarde...`,creatingArchive:`Création de l'archive de sauvegarde... Cela peut prendre un moment pour les archives volumineuses.`,downloadingFile:`Téléchargement du fichier de sauvegarde...`,backupDownloaded:`Sauvegarde téléchargée avec succès`,failedToCreateBackup:`Échec de la création de la sauvegarde : {{message}}`,restore:`Restaurer`,restoreReplacesAll:`La restauration remplace toutes les données.`,restoreReplacesAllDetail:`Votre base de données et vos fichiers actuels seront complètement remplacés. Un redémarrage est nécessaire après la restauration.`,restoreConfirmTitle:`Restaurer la sauvegarde`,restoreConfirmMessage:`Êtes-vous sûr de vouloir restaurer depuis "{{filename}}" ? Cela remplacera complètement votre base de données et tous vos fichiers. L'application devra être redémarrée après la restauration.`,restoreConfirmButton:`Restaurer la sauvegarde`,uploadingFile:`Téléchargement du fichier de sauvegarde...`,backupRestoredRestart:`Sauvegarde restaurée. Veuillez redémarrer Bambuddy.`,failedToRestore:`Échec de la restauration. Veuillez vérifier le format du fichier.`,reloadNow:`Recharger maintenant`,creatingBackup:`Création de la sauvegarde`,restoringBackup:`Restauration de la sauvegarde`,preparing:`Préparation...`,processing:`Traitement...`,doNotClosePage:`Veuillez ne pas fermer cette page ni naviguer ailleurs. Cette opération peut prendre plusieurs minutes pour les sauvegardes volumineuses.`,restoring:`Restauration...`,restoreComplete:`Restauration terminée`,restoreFailed2:`Échec de la restauration`,importSettings:`Importer les paramètres depuis un fichier de sauvegarde`,pleaseWaitRestoring:`Veuillez patienter pendant la restauration de vos données`,selectBackupFile:`Cliquez pour sélectionner un fichier de sauvegarde (.json ou .zip)`,duplicateHandling:`Comment fonctionne la gestion des doublons :`,matchPrinters:`Imprimantes`,matchPrintersBy:`correspondance par numéro de série`,matchSmartPlugs:`Prises connectées`,matchSmartPlugsBy:`correspondance par adresse IP`,matchNotificationProviders:`Fournisseurs de notifications`,matchNotificationProvidersBy:`correspondance par nom`,matchFilaments:`Filaments`,matchFilamentsBy:`correspondance par nom + type + marque`,matchArchives:`Archives`,matchArchivesBy:`correspondance par hash de contenu (toujours ignoré)`,matchPendingUploads:`Téléchargements en attente`,matchPendingUploadsBy:`correspondance par nom de fichier`,matchSettingsTemplates:`Paramètres et modèles`,matchSettingsTemplatesBy:`toujours écrasés`,replaceExisting:`Remplacer les données existantes`,keepExisting:`Conserver les données existantes`,overwriteDescription:`Écraser les éléments qui existent déjà avec les données de sauvegarde`,keepDescription:`Restaurer uniquement les éléments qui n'existent pas encore`,overwriteCaution:`Attention :`,overwriteWarning:`L'écrasement remplacera vos configurations actuelles par les données de la sauvegarde. Les codes d'accès des imprimantes ne sont jamais écrasés pour des raisons de sécurité.`,cancel:`Annuler`,processingBackup:`Traitement du fichier de sauvegarde...`,itemsRestored:`Éléments restaurés`,itemsSkipped:`Éléments ignorés`,restored:`Restaurés`,skippedAlreadyExist:`Ignorés (existent déjà)`,filesCategory:`Fichiers (3MF, miniatures, etc.)`,andMore:`...et {{count}} de plus`,newApiKeysGenerated:`Nouvelles clés API générées`,keysShownOnce:`Ces clés ne sont affichées qu'une seule fois. Copiez-les maintenant !`,copy:`Copier`,noDataFound:`Aucune donnée à restaurer n'a été trouvée dans le fichier de sauvegarde.`,close:`Fermer`,scheduledBackup:`Sauvegardes planifiées`,scheduledBackupDescription:`Crée automatiquement des instantanés de sauvegarde selon un planning. Le répertoire de sortie peut être monté sur un NAS ou un stockage externe.`,frequency:`Fréquence`,backupTime:`Temps`,retention:`Rétention`,retentionDescription:`Nombre de sauvegardes à conserver`,outputPath:`Chemin de sortie`,outputPathPlaceholder:`Par défaut : {{path}}`,outputPathDescription:`Laisser vide pour l'emplacement par défaut`,runNow:`Exécuter maintenant`,backupFiles:`Fichiers de sauvegarde`,noScheduledBackups:`Aucune sauvegarde`,deleteBackup:`Supprimer`,deleteBackupConfirm:`Supprimer ce fichier de sauvegarde ?`,backupRunning:`Sauvegarde en cours...`,scheduledBackupComplete:`Sauvegarde terminée avec succès`,scheduledBackupFailed:`Échec de la sauvegarde`,nextBackup:`Prochaine sauvegarde`,backupSize:`Taille`,localTimeHint:`Heure locale ({{tz}})`,defaultPathLabel:`Par défaut :`,pathCheck:{title:`Bambuddy ne peut pas écrire dans ce répertoire`,howToFix:`Comment corriger :`,sandboxed:`Le service Bambuddy ne peut pas écrire dans {{path}}. Son unité systemd s'exécute avec ProtectSystem=strict, ce qui rend tout répertoire en dehors des répertoires d'installation, de données et de journaux en lecture seule pour le service - même un répertoire dans lequel vous pouvez écrire depuis votre propre shell.`,read_only:`{{path}} se trouve sur un système de fichiers en lecture seule.`,permission_denied:`Bambuddy n'est pas autorisé à écrire dans {{path}}. Vérifiez le propriétaire et les permissions du répertoire.`,no_space:`Le système de fichiers contenant {{path}} est plein.`,not_a_directory:`{{path}} existe mais n'est pas un répertoire.`,missing:`{{path}} n'existe pas et n'a pas pu être créé.`,error:`Bambuddy ne peut pas écrire dans {{path}}.`,ephemeralTitle:`Ces sauvegardes ne survivront pas à la recréation du conteneur`,container_ephemeral:`{{path}} se trouve dans le conteneur Bambuddy, pas sur l'hôte. Les sauvegardes qui y sont écrites sont perdues à la recréation du conteneur. Montez le répertoire depuis l'hôte :`},categories:{settings:`Paramètres`,notification_providers:`Fournisseurs de notifications`,notification_templates:`Modèles de notifications`,smart_plugs:`Prises connectées`,printers:`Imprimantes`,filaments:`Filaments`,maintenance_types:`Types de maintenance`,archives:`Archives`,projects:`Projets`,pending_uploads:`Téléchargements en attente`,external_links:`Liens externes`,api_keys:`Clés API`}},tags:{title:`Étiquettes`,addTag:`Ajouter Tag`,editTag:`Modifier Tag`,deleteTag:`Supprimer Tag`,tagName:`Nom du Tag`,tagColor:`Couleur du Tag`,noTags:`Aucun tag`,deleteConfirm:`Supprimer ce tag ?`,manageTags:`Gérer les Tags`},uploadModal:{title:`Téléverser des fichiers 3MF`,dragDrop:`Glissez les fichiers .3mf ici`,or:`ou`,browseFiles:`Parcourir`,extractionInfo:`Le modèle d'imprimante est extrait des métadonnées 3MF.`,uploaded:`téléversé`,failed:`échoué`,uploading:`En cours...`,upload:`Téléverser`,uploadFailed:`Échec du téléversement`},editArchive:{title:`Modifier l'archive`,name:`Nom`,namePlaceholder:`Nom de l'impression`,printer:`Imprimante`,noPrinter:`Aucune imprimante`,project:`Projet`,noProject:`Aucun projet`,itemsPrinted:`Nombre de pièces`,itemsPrintedHelp:`Nombre d'objets produits`,notes:`Notes`,notesPlaceholder:`Notes sur l'impression...`,externalLink:`Lien externe`,externalLinkPlaceholder:`https://...`,externalLinkHelp:`Lien vers Printables, Thingiverse, etc.`,tags:`Étiquettes`,tagsPlaceholder:`Ajouter des tags...`,addMoreTags:`Plus de tags...`,matchingTags:`Correspondant à "{{query}}"`,existingTags:`Tags existants`,clickToAdd:`(cliquer pour ajouter)`,status:`Statut`,failureReason:`Raison de l'échec`,selectReason:`Choisir raison...`,photos:`Photos du résultat`,photosHelp:`Cliquez sur + pour ajouter des photos`,printResult:`Résultat d'impression`,saving:`Enregistrement...`,failureReasons:{adhesionFailure:`Défaut d'adhésion`,spaghettiDetached:`Spaghetti / Détaché`,layerShift:`Décalage de couche`,cloggedNozzle:`Buse bouchée`,filamentRunout:`Filament fini`,warping:`Warping (Déformation)`,stringing:`Stringing (Cheveux d'ange)`,underExtrusion:`Sous-extrusion`,powerFailure:`Coupure courant`,userCancelled:`Annulé par l'utilisateur`,other:`Autre`},statuses:{completed:`Réussie`,failed:`Échouée`,aborted:`Annulée`,printing:`Impression`}},kProfiles:{title:`Profils K`,noPrintersConfigured:`Aucune imprimante configurée`,addPrinterInSettings:`Ajoutez une imprimante pour gérer les K-profiles`,noActivePrinters:`Aucune imprimante active`,enablePrinterConnection:`Activez la connexion pour voir les K-profiles`,loadingProfiles:`Chargement des K-Profiles...`,printerOffline:`Imprimante hors ligne`,printerOfflineDesc:`L'imprimante doit être allumée.`,noMatchingProfiles:`Aucun profil correspondant`,noMatchingProfilesDesc:`Ajustez votre recherche`,noKProfiles:`Aucun K-Profile`,noKProfilesDesc:`Aucun profil trouvé pour une buse de {{diameter}}mm`,createFirstProfile:`Créer le premier profil`,printer:`Imprimante`,nozzle:`Buse`,refresh:`Rafraîchir`,addProfile:`Ajouter Profil`,export:`Exporter`,import:`Importer`,select:`Choisir`,selectAll:`Tout sélectionner`,delete:`Supprimer`,searchPlaceholder:`Nom ou filament...`,allExtruders:`Tous les extrudeurs`,leftOnly:`Gauche uniquement`,rightOnly:`Droite uniquement`,allFlow:`Tout débit`,hfOnly:`HF uniquement`,sOnly:`S uniquement`,sortName:`Tri : Nom`,sortKValue:`Tri : Valeur K`,sortFilament:`Tri : Filament`,leftExtruder:`Extrudeur gauche`,rightExtruder:`Extrudeur droit`,modal:{addTitle:`Ajouter K-Profile`,editTitle:`Modifier K-Profile`,profileName:`Nom du profil`,profileNamePlaceholder:`ex: Mon profil PLA`,kValue:`Valeur K`,kValuePlaceholder:`0.020`,kValueHelp:`Plage type : 0.01-0.06 (PLA), 0.02-0.10 (PETG)`,filament:`Filament`,selectFilament:`Choisir filament...`,noFilamentsHelp:`Créez d'abord un profil dans Bambu Studio.`,flowType:`Type de débit`,highFlow:`Haut Débit (HF)`,standard:`Standard`,nozzleSize:`Taille buse`,extruder:`Extrudeur`,extruders:`Extrudeurs`,left:`Gauche`,right:`Droite`,notes:`Notes (locales)`,notesPlaceholder:`Notes sur ce profil...`,notesHelp:`Enregistré dans Bambuddy, pas sur l'imprimante`,syncing:`Sync avec l'imprimante...`,savingExtruder:`Sauvegarde extrudeur {{current}}/{{total}}...`,pleaseWait:`Patientez...`},deleteConfirm:{title:`Supprimer profil`,cannotUndo:`Action irréversible`,message:`Supprimer "{{name}}" de l'imprimante ?`},bulkDelete:{title:`Supprimer les profils`,cannotUndo:`Action irréversible`,message:`Supprimer les {{count}} profils de l'imprimante ?`},toast:{profileSaved:`Profil K enregistré`,profilesSaved:`Profil K enregistré sur {{count}} extrudeur(s)`,selectAtLeastOneExtruder:`Sélectionnez un extrudeur`,profileDeleted:`Profil K supprimé`,profilesDeleted:`{{count}} profils supprimés`,exportedProfiles:`{{count}} profils exportés`,importedProfiles:`{{count}} sur {{total}} profils importés`,noProfilesToExport:`Rien à exporter`,invalidFileFormat:`Format invalide`,failedToParseImport:`Échec analyse fichier`,failedToSaveBatch:`Échec enregistrement groupé`,noteSaved:`Note enregistrée`,failedToSaveNote:`Échec note`},permission:{noRead:`Pas d'autorisation lecture`,noCreate:`Pas d'autorisation création`,noUpdate:`Pas d'autorisation mise à jour`,noDelete:`Pas d'autorisation suppression`,noExport:`Pas d'autorisation export`,noImport:`Pas d'autorisation import`}},virtualPrinter:{title:`Imprimante Virtuelle`,running:`En cours`,stopped:`Arrêtée`,description:{default:`Active une imprimante qui apparaît dans Bambu Studio. Les fichiers envoyés sont archivés sans impression.`,proxy:`Active un proxy qui relaie le trafic vers une imprimante réelle, permettant l'impression à distance.`},enable:{title:`Activer l'imprimante virtuelle`,visibleInSlicer:`Visible comme "Bambuddy" dans le Slicer`,proxyingTo:`Proxy vers {{name}}`,notActive:`Inactive`},model:{title:`Modèle d'imprimante`,description:`Choisissez le modèle à émuler.`,restartWarning:`Changer le modèle redémarrera le service`},accessCode:{title:`Code d'accès`,isSet:`Code défini`,notSet:`Code requis pour activer`,placeholder:`Code 8 char`,placeholderChange:`Entrez nouveau code`,hint:`Exactement 8 caractères. Sert à l'auth du Slicer.`,charCount:`({{count}}/8)`,inheritedFromTarget:`Hérité de l'imprimante cible`,derivedFromTargetHint:`Utilise le code d'accès de l'imprimante cible. Le pont transmet l'authentification du slicer à l'imprimante réelle, donc les codes doivent correspondre — modifiez le code dans les paramètres de l'imprimante.`,reveal:`Afficher le code d'accès`,hide:`Masquer le code d'accès`},targetPrinter:{title:`Imprimante cible`,configured:`Cible configurée`,notConfigured:`Imprimante requise pour mode Proxy`,placeholder:`Choisir imprimante...`,hint:`L'imprimante doit être en mode LAN.`,noPrinters:`Ajoutez une imprimante réelle d'abord.`},remoteInterface:{title:`Exception Interface Réseau`,configured:`Override actif`,optional:`Optionnel - si IP auto est fausse (VPN, Docker, multi-NIC).`,placeholder:`Auto (défaut)...`,hint:`Force l'IP annoncée via SSDP.`},mode:{title:`Mode`,archive:`Archiver`,archiveDesc:`Archive immédiatement`,review:`Revue`,reviewDesc:`Attendre revue avant archive`,queue:`File`,queueDesc:`Archiver et ajouter à la file`,proxy:`Proxy`,proxyDesc:`Relais vers imprimante réelle`},autoDispatch:{title:`Lancement automatique`,description:`Lancer automatiquement les impressions ajoutées à la file. Désactivé, les impressions attendent un lancement manuel.`},queueForceColorMatch:{title:`Forcer la correspondance des couleurs`,description:`Refuser l'envoi vers une imprimante qui n'a pas exactement le type de filament et la couleur chargés. Désactivé par défaut — sans cela, la file d'attente utilise uniquement la correspondance par modèle et peut choisir une imprimante avec la mauvaise couleur.`},gcodeInjection:{title:`Injection G-code`,description:`Applique les extraits de G-code configurés par modèle dans les Paramètres aux travaux de ce VP. Désactivé par défaut.`},tailscaleDisabled:{title:`Intégration Tailscale`,description:`Activez pour marquer ce VP comme exposé via Tailscale. Affiche l'adresse Tailscale de l'hôte pour que vous sachiez quelle IP coller dans le slicer. L'étape d'import CA est inchangée — cette bascule n'a aucun effet sur les certificats.`},setupRequired:{title:`Configuration requise`,description:`Nécessite des réglages système (ports, pare-feu).`,readGuide:`Lire le guide de configuration`},howItWorks:{title:`Fonctionnement`,step1:`Sur le même LAN, les imprimantes virtuelles apparaissent automatiquement dans votre slicer (Bambu Studio / OrcaSlicer). Depuis d'autres réseaux, ajoutez-les manuellement par adresse IP et code d'accès.`,step2:`En mode Archive, Revue et File d'attente, utilisez le bouton "Envoyer" dans votre slicer pour envoyer des fichiers 3MF à Bambuddy. Le slicer affichera "Impression réussie" — le fichier est stocké, pas imprimé.`,step3:`En mode Proxy, l'imprimante virtuelle relaie tout le trafic vers une vraie imprimante — les impressions démarrent immédiatement comme en connexion directe.`},status:{title:`Détails du statut`,printerName:`Nom`,model:`Modèle`,serialNumber:`Série`,mode:`Mode`,pendingFiles:`Fichiers en attente`,targetPrinter:`Cible`,ftpPort:`Port FTP`,mqttPort:`Port MQTT`,ftpConnections:`Connexions FTP`,mqttConnections:`Connexions MQTT`},toast:{updated:`Réglages virtuels mis à jour`,failedToUpdate:`Échec mise à jour`,copyFailed:`Échec de la copie — veuillez sélectionner le texte manuellement`,accessCodeRequired:`Code d'accès requis`,targetPrinterRequired:`Imprimante cible requise`,bindIpRequired:`Veuillez d'abord définir une adresse IP`,accessCodeEmpty:`Le code ne peut pas être vide`,accessCodeLength:`Le code doit faire 8 caractères`,targetCodeChangedRebind:`Le code d'accès correspond désormais à la nouvelle imprimante cible. Réajoutez cet appareil dans votre slicer pour récupérer le nouveau code.`,created:`Imprimante virtuelle créée`,failedToCreate:`Échec de la création de l'imprimante virtuelle`,deleted:`Imprimante virtuelle supprimée`,failedToDelete:`Échec de la suppression de l'imprimante virtuelle`},list:{title:`Imprimantes virtuelles`,add:`Ajouter`,addFirst:`Ajouter une imprimante virtuelle`,empty:`Aucune imprimante virtuelle configurée. Ajoutez-en une pour commencer.`},bindIp:{title:`Interface réseau`,placeholder:`Sélectionner interface...`,hint:`Interface réseau sur laquelle cette imprimante virtuelle écoute. Doit être unique par imprimante.`},proxy:{accessCodeHint:`En mode proxy, utilisez le code d'accès de l'imprimante cible dans le slicer. La connexion est transmise de manière transparente à l'imprimante réelle.`},addDialog:{title:`Ajouter une imprimante virtuelle`,name:`Nom`,hint:`Vous pourrez configurer le code d'accès, l'imprimante cible et d'autres paramètres après la création.`,create:`Créer`},deleteConfirm:{title:`Supprimer l'imprimante virtuelle`,message:`Êtes-vous sûr de vouloir supprimer "{{name}}" ? Cela arrêtera tous les services de cette imprimante.`},archiveNameSource:{title:`Source du nom d'archive`,description:`Choisissez comment les nouvelles archives sont nommées lorsque les fichiers arrivent via l'imprimante virtuelle. "Métadonnées" utilise le titre intégré par le slicer dans le 3MF (par défaut). "Nom de fichier" utilise le nom envoyé par Bambu Studio en FTP. Note : Bambu Studio écrase le nom que vous saisissez dans la boîte "envoyer à l'imprimante" avec le champ Titre du 3MF lorsque celui-ci est présent, les deux modes produisent donc souvent la même chaîne.`,metadata:`Métadonnées`,filename:`Nom de fichier`},caCert:{title:`Certificat du slicer`,description:`Les imprimantes virtuelles utilisent un certificat TLS signé par l'autorité de certification Bambuddy. Importez ce certificat CA dans le magasin de confiance de votre slicer une seule fois pour qu'il accepte la connexion — plus besoin de le copier depuis la ligne de commande.`,copy:`Copier`,copied:`Copié`,download:`Télécharger`,fingerprint:`SHA-256`}},modelViewer:{openInSlicer:`Ouvrir dans le Slicer`,tabs:{model:`Modèle 3D`,gcode:`Aperçu G-code`},notAvailable:`indisponible`,notSliced:`pas découpé`,plates:`Plateaux`,allPlates:`Tous les plateaux`,plateNumber:`Plateau {{number}}`,plateCount:`{{count}} plateau`,plateCount_other:`{{count}} plateaux`,objectCount:`{{count}} objet`,objectCount_other:`{{count}} objets`,filamentCount:`{{count}} filament`,filamentCount_other:`{{count}} filaments`,eta:`Fin {{minutes}} min`,noPreview:`Aucun aperçu pour ce fichier`,pagination:{pageOf:`Page {{current}} sur {{total}}`,prev:`Préc`,next:`Suiv`},errors:{failedToLoad:`Échec chargement fichier`,noMeshes:`Aucun maillage trouvé dans le 3MF`,unsupportedFormat:`Format non supporté`}},maintenanceDescriptions:{lubricateCarbonRods:`Appliquer du lubrifiant sur les tiges carbone pour un mouvement fluide`,lubricateRails:`Appliquer du lubrifiant sur les rails linéaires`,cleanNozzle:`Nettoyer buse et hotend anti-bouchage`,checkBelts:`Tension des courroies pour la précision`,cleanBuildPlate:`Nettoyage plateau pour l'adhésion`,checkExtruder:`Usure des engrenages de l'extrudeur`,checkCooling:`Bon fonctionnement des ventilateurs`,generalInspection:`Inspection générale de la machine`,cleanCarbonRods:`Nettoyer les tiges carbone (friction)`,lubricateSteelRods:`Appliquer du lubrifiant sur les tiges en acier pour un mouvement fluide`,cleanSteelRods:`Nettoyer les tiges en acier (friction)`,cleanLinearRails:`Essuyer les rails linéaires (poussière/débris)`,checkPtfeTube:`Usure ou dommage du tube PTFE`,replaceHepaFilter:`Filtre HEPA pour la qualité de l'air`,replaceCarbonFilter:`Filtre charbon actif (odeurs)`,lubricateLeftNozzleRail:`Lubrifier le rail de buse gauche (Série H2)`},smartPlugs:{offline:`Hors ligne`,admin:`Administrateur`,openPlugAdminPage:`Page admin de la prise`,deleteSmartPlug:`Supprimer la prise`,turnOnSmartPlug:`Allumer la prise`,turnOffSmartPlug:`Éteindre la prise`,turnOn:`Allumer`,turnOff:`Éteindre`,addSmartPlug:{scanningNetwork:`Scan réseau...`,chooseEntity:`Choisir une entité...`,connectionFailed:`Échec connexion`,searchEntities:`Chercher entités...`,searchPowerSensors:`Capteurs puissance...`,searchEnergySensors:`Capteurs énergie...`,placeholders:{plugName:`Prise Salon`,mqttStateOnValue:`ON, true, 1`,mqttSameAsPower:`Identique au topic puissance, ou différent`}},linkedTo:`Lié à :`,monitorOnly:`Surveillance uniquement`,alerts:`Alertes`,scheduleOn:`À {{time}}`,scheduleOff:`Désactivé {{time}}`,on:`On`,off:`Désactivé`,power:`Puissance`,kwhToday:`kWh Aujourd'hui`,settings:`Paramètres`,automationSettings:`Paramètres d'automatisation`,showInSwitchbar:`Afficher dans la barre de commutateurs`,quickAccessSidebar:`Accès rapide depuis la barre latérale`,enabled:`Activé`,enableAutomation:`Activer l'automatisation pour cette prise`,autoOn:`Auto Activé`,autoOnDescription:`Allumer au démarrage de l'impression`,autoOff:`Auto Désactivé`,autoOffDescription:`Éteindre à la fin de l'impression (unique)`,autoOffPersistent:`Garder activé`,autoOffPersistentDescription:`Rester activé entre les impressions au lieu d'une seule fois`,controlsPrinterPower:`Alimente l'imprimante`,controlsPrinterPowerDescription:`Désactivez si cette prise n'alimente qu'un accessoire (ventilateur de filtre, éclairage). Sinon, l'éteindre marque l'imprimante hors ligne.`,autoOffAfterDrying:`Arrêt auto après séchage`,autoOffAfterDryingDescription:`Éteindre à la fin du séchage de l'AMS`,delayAfterDryingMinutes:`Délai après séchage (minutes)`,turnOffDelayMode:`Mode de délai d'extinction`,time:`Temps`,temp:`Temp.`,delayMinutes:`Délai (minutes)`,tempThreshold:`Seuil de température (°C)`,tempThresholdDescription:`S'éteint lorsque la buse refroidit en dessous de cette température`,edit:`Modifier`,deleteConfirm:`Êtes-vous sûr de vouloir supprimer "{{name}}" ? Cette action est irréversible.`,turnOnConfirm:`Êtes-vous sûr de vouloir allumer "{{name}}" ?`,turnOffConfirm:`Êtes-vous sûr de vouloir éteindre "{{name}}" ? Cela coupera l'alimentation de l'appareil connecté.`,failedToTurn:`Impossible de {{action}} "{{name}}"`,unknown:`Inconnu`,addTitle:`Ajouter une prise connectée`,editTitle:`Modifier la prise connectée`,stopScanning:`Arrêter le scan`,discoverTasmota:`Découvrir les appareils Tasmota`,foundDevices:`{{count}} appareil(s) trouvé(s) - cliquez pour sélectionner :`,noDevicesFound:`Aucun appareil Tasmota trouvé sur votre réseau`,haNotConfigured:`Home Assistant n'est pas configuré. Configurez-le dans`,haSettingsPath:`Paramètres → Réseau → Home Assistant`,selectEntity:`Sélectionner l'entité *`,ipAddress:`Adresse IP *`,nameLabel:`Nom *`,username:`Nom d'utilisateur`,password:`Mot de passe`,authHint:`Laissez vide si votre appareil Tasmota ne nécessite pas d'authentification`,linkToPrinter:`Lier à l'imprimante`,noPrinter:`Pas d'imprimante (contrôle manuel uniquement)`,linkingDescription:`La liaison permet l'allumage/extinction automatique au début/fin de l'impression`,powerAlerts:`Alertes de puissance`,alertAbove:`Alerte si au-dessus (W)`,alertBelow:`Alerte si en dessous (W)`,alertDescription:`Recevoir une notification lorsque la consommation dépasse ces seuils. Laisser vide pour désactiver cette direction.`,dailySchedule:`Planification quotidienne`,turnOnAt:`Allumer à`,turnOffAt:`Éteindre à`,scheduleDescription:`Allumer/éteindre automatiquement la prise à ces heures chaque jour. Laisser vide pour ignorer cette action.`,showOnPrinterCard:`Afficher sur la carte imprimante`,displayOnPrinterCard:`Afficher le bouton sur la carte imprimante`,connectedResult:`Connecté !`,deviceLabel:`Appareil : {{name}} - `,stateLabel:`État : {{state}}`,test:`Tester`,delete:`Supprimer`,save:`Enregistrer`,add:`Ajouter`,cancel:`Annuler`,failedToStartScan:`Impossible de démarrer le scan`,nameRequired:`Le nom est requis`,entityRequired:`L'entité est requise pour les prises Home Assistant`,mqttTopicRequired:`Au moins un topic MQTT doit être configuré pour la puissance, l'énergie ou la surveillance d'état`,loadingEntities:`Chargement des entités...`,loading:`Chargement...`,failedToLoadEntities:`Échec du chargement des entités : {{error}}`,noEntitiesMatching:`Aucune entité trouvée correspondant à "{{search}}"`,noEntitiesAvailable:`Aucune entité disponible`,searchingEntities:`Recherche de toutes les entités ({{count}} trouvées)`,showingEntities:`Affichage switch, light, input_boolean ({{count}} disponibles)`,energyMonitoringOptional:`Surveillance énergétique (Optionnel)`,energyMonitoringHint:`Recherchez et sélectionnez les capteurs fournissant des données de puissance/énergie.`,powerSensorW:`Capteur de puissance (W)`,energyTodayKwh:`Énergie aujourd'hui (kWh)`,totalEnergyKwh:`Énergie totale (kWh)`,noMatchingSensors:`Aucun capteur correspondant`,none:`Aucun`,mqttNotConfigured:`Broker MQTT non configuré. Définissez l'adresse du broker dans`,mqttSettingsPath:`Paramètres → Réseau → Publication MQTT`,mqttNotConfiguredSuffix:`(vous n'avez pas besoin d'activer la publication, remplissez simplement les détails du broker).`,mqttMonitorOnlyDescription:`Les prises MQTT reçoivent les données de puissance/énergie via un abonnement MQTT. Le contrôle on/off n'est pas disponible - utilisez votre broker MQTT ou système domotique.`,powerMonitoring:`Surveillance de puissance`,energyMonitoring:`Surveillance énergétique`,stateMonitoring:`Surveillance d'état`,optional:`optionnel`,topic:`Sujet`,jsonPath:`Chemin JSON`,multiplier:`Multiplicateur`,onValue:`Valeur ON`,mqttPowerHint:`Le chemin JSON extrait la valeur du payload JSON (ex: "power_l1"). Laisser vide si le topic publie des valeurs numériques brutes.
+Valor de ON: la cadena exacta que significa «ON». Déjelo vacío para la detección automática (ON, true, 1).`,restControl:`Control`,restOnUrl:`URL de encendido`,restOffUrl:`URL de apagado`,restOnBody:`Cuerpo de la solicitud de encendido`,restOffBody:`Cuerpo de la solicitud de apagado`,restMethod:`Método HTTP`,restHeaders:`Cabeceras personalizadas (JSON)`,restStatusUrl:`URL de estado`,restStatusPath:`Ruta JSON del estado`,restStatusOnValue:`Valor de ON`,restPowerUrl:`URL de potencia`,restPowerPath:`Ruta JSON de la potencia`,restPowerMultiplier:`Multiplicador de potencia`,restEnergyUrl:`URL de energía`,restEnergyPath:`Ruta JSON de energía (hoy)`,restEnergyTotalPath:`Ruta JSON de energía (contador total)`,restEnergyTotalMultiplier:`Multiplicador del contador total`,restEnergyTotalPathHint:`p. ej. aenergy.total`,restEnergyTotalHint:`Muchos enchufes — todos los Shelly entre ellos — solo informan de un contador acumulado que nunca se reinicia. Va aquí, no en el campo de arriba: leído como el consumo de hoy nunca se pondría a cero a medianoche, y Ayer y Total seguirían vacíos. Bambuddy deduce Hoy y Ayer a partir de él, lo que requiere uno o dos días de lecturas. Un Shelly informa en vatios-hora, así que usa un multiplicador de 0.001.`,restEnergyMultiplier:`Multiplicador de energía`,restUrlRequired:`Se requiere al menos una URL (de encendido o apagado) para los enchufes REST`,restHeadersHint:`p. ej. {"Authorization": "Bearer your-token"}`,restBodyHint:`p. ej. ON, {"state": "on"}`,restStatusHint:`URL para sondear el estado actual`,restPathHint:`p. ej. state o data.power.status`,restPowerUrlHint:`URL independiente para los datos de potencia (usa la URL de estado si está vacía)`,restEnergyUrlHint:`URL independiente para los datos de energía (usa la URL de estado si está vacía)`,restEnergyHint:`Cada valor puede usar su propia URL o recurrir a la URL de estado. Use multiplicadores para la conversión de unidades (p. ej. 0,001 para convertir Wh en kWh).`,testConnection:`Probar conexión`,connectionSuccess:`Conexión correcta`,noSwitchesInSwitchbar:`No hay interruptores en la barra de interruptores`,enableSwitchbarHint:`Active «Mostrar en la barra de interruptores» en Ajustes > Enchufes inteligentes`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`Correo`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`Notificaciones por correo SMTP`,telegram:`Notificaciones mediante un bot de Telegram`,discord:`Enviar a un canal de Discord mediante un webhook`,ntfy:`Notificaciones push gratuitas y autoalojables`,pushover:`Notificaciones push sencillas y fiables`,callmebot:`Notificaciones de WhatsApp gratuitas mediante CallMeBot`,webhook:`POST HTTP genérico a cualquier URL`,homeassistant:`Notificaciones persistentes en el panel de Home Assistant`,bark:`Notificaciones push de iOS mediante Bark (autoalojable)`},lastSuccess:`Última: {{date}}`,error:`Error`,printer:`Impresora:`,allPrinters:`Todas las impresoras`,sendTestNotification:`Enviar notificación de prueba`,eventSettings:`Ajustes de eventos`,enabled:`Activado`,sendFromProvider:`Enviar notificaciones desde este proveedor`,printEvents:`Eventos de impresión`,printerStatus:`Estado de la impresora`,amsAlarms:`Alarmas del AMS`,amsHtAlarms:`Alarmas del AMS-HT`,printQueue:`Cola de impresión`,start:`Inicio`,plateCheck:`Comprobación de cama`,complete:`Completada`,failed:`Fallida`,stopped:`Detenida`,progress:`Progreso`,offline:`Desconectada`,lowFilament:`Filamento bajo`,maintenance:`Mantenimiento`,amsHumidity:`Humedad del AMS`,amsTemp:`Temp. del AMS`,amsHtHumidity:`Humedad del AMS-HT`,amsHtTemp:`Temp. del AMS-HT`,bedCooled:`Cama enfriada`,firstLayer:`Primera capa`,quiet:`Silencio`,digest:`Resumen {{time}}`,printStarted:`Impresión iniciada`,plateNotEmpty:`Cama no vacía`,plateNotEmptyDescription:`Objetos detectados antes de la impresión`,plateClearRequired:`Confirmar cama libre`,plateClearRequiredDescription:`Impresión terminada, la cola espera confirmación`,plateClear:`Cama libre`,printCompleted:`Impresión completada`,bedCooledLabel:`Cama enfriada`,bedCooledDescription:`La cama se enfrió por debajo del umbral tras la impresión`,firstLayerCompleteLabel:`Primera capa completada`,firstLayerCompleteDescription:`Notificar con una captura cuando termina la primera capa`,missingSpoolAssignmentLabel:`Falta la asignación de bobina`,missingSpoolAssignmentDescription:`Notificar cuando la impresión comienza y las bandejas necesarias no tienen ninguna bobina asignada`,printFailed:`Impresión fallida`,printStopped:`Impresión detenida`,progressMilestones:`Hitos de progreso`,progressMilestonesDescription:`Notificar al 25%, 50% y 75%`,printerOffline:`Impresora desconectada`,printerError:`Error de la impresora`,aiFailureDetection:`Detección de fallos por IA`,aiFailureDetectionDescription:`Notificar cuando la IA de Obico detecte un posible fallo de impresión`,lowFilamentLabel:`Filamento bajo`,maintenanceDue:`Mantenimiento pendiente`,maintenanceDueDescription:`Notificar cuando se necesite mantenimiento`,amsHumidityHigh:`Humedad alta del AMS`,amsHumidityHighDescription:`La humedad del AMS normal supera el umbral`,amsTemperatureHigh:`Temperatura alta del AMS`,amsTemperatureHighDescription:`La temperatura del AMS normal supera el umbral`,amsHtHumidityHigh:`Humedad alta del AMS-HT`,amsHtHumidityHighDescription:`La humedad del AMS-HT supera el umbral`,amsHtTemperatureHigh:`Temperatura alta del AMS-HT`,amsHtTemperatureHighDescription:`La temperatura del AMS-HT supera el umbral`,inventoryAlerts:`Alertas de inventario`,stockReorderAlert:`Alerta de reabastecimiento`,stockReorderAlertDescription:`El SKU ha alcanzado su punto de reabastecimiento`,stockBreakAlert:`Alerta de rotura de existencias`,stockBreakAlertDescription:`Las existencias se agotarán antes de que llegue el reabastecimiento`,jobAdded:`Trabajo añadido`,jobAddedDescription:`Trabajo añadido a la cola`,jobAssigned:`Trabajo asignado`,jobAssignedDescription:`Trabajo basado en el modelo asignado a una impresora`,jobStarted:`Trabajo iniciado`,jobStartedDescription:`El trabajo de la cola empezó a imprimirse`,jobWaiting:`Trabajo en espera`,jobWaitingDescription:`Trabajo a la espera de filamento o impresora`,jobSkipped:`Trabajo omitido`,jobSkippedDescription:`Trabajo omitido (el anterior falló)`,jobFailed:`Trabajo fallido`,jobFailedDescription:`El trabajo no pudo iniciarse`,queueComplete:`Cola completada`,queueCompleteDescription:`Todos los trabajos de la cola han terminado`,quietHours:`Horas de silencio`,noNotificationsDuring:`No hay notificaciones durante estas horas`,editProviderToChangeQuietHours:`Edite el proveedor para cambiar las horas de silencio`,dailyDigest:`Resumen diario`,batchNotifications:`Agrupar las notificaciones en un único resumen diario`,sendAt:`Enviar a las {{time}}`,editProviderToChangeDigestTime:`Edite el proveedor para cambiar la hora del resumen`,edit:`Editar`,deleteProvider:`Eliminar proveedor de notificaciones`,deleteConfirm:`¿Está seguro de que desea eliminar "{{name}}"? Esto no se puede deshacer.`,delete:`Eliminar`,addTitle:`Añadir proveedor de notificaciones`,editTitle:`Editar proveedor de notificaciones`,nameLabel:`Nombre *`,namePlaceholder:`Mis notificaciones`,providerTypeLabel:`Tipo de proveedor *`,configuration:`Configuración`,testConfiguration:`Probar configuración`,printerFilter:`Filtro de impresora`,onlyFromPrinter:`Enviar notificaciones solo para los eventos de esta impresora`,quietHoursDnd:`Horas de silencio (no molestar)`,quietStart:`Inicio`,quietEnd:`Fin`,dailyDigestLabel:`Resumen diario`,sendDigestAt:`Enviar el resumen a las`,digestCollected:`Los eventos se recopilarán y se enviarán como un único resumen a esta hora`,notificationEvents:`Eventos de notificación`,progressPercent:`(25%, 50%, 75%)`,bedCooledAfterPrint:`(después de completar la impresión)`,eventPriority:{sectionTitle:`Prioridad de ntfy`,helpNtfy:`Elija una prioridad para cada evento activado. ntfy las usa para escalar las alertas (sonido, visibilidad, comportamiento de las notificaciones push). Los niveles no establecidos aquí usan el valor predeterminado del servidor ntfy.`,min:`Mínima`,low:`Baja`,default:`Predeterminada`,high:`Alta`,urgent:`Urgente`},cancel:`Cancelar`,save:`Guardar`,add:`Añadir`,nameRequired:`El nombre es obligatorio`,fieldRequired:`{{field}} es obligatorio`,haDataInvalid:`El campo Data debe ser un objeto JSON válido, p. ej. {"priority": "high", "ttl": 0}`,phoneNumber:`Número de teléfono`,apiKey:`Clave API`,serverUrl:`URL del servidor`,topic:`Tema`,authToken:`Token de autenticación`,userKey:`Clave de usuario`,appToken:`Token de la aplicación`,priority:`Prioridad`,pushoverRetry:`Reintento de emergencia (s)`,pushoverExpire:`Expiración de emergencia (s)`,botToken:`Token del bot`,chatId:`ID del chat`,telegramThreadId:`ID del tema del foro`,telegramThreadIdHelp:`Opcional. Envía a un único tema de un grupo de foro: el último número del enlace del tema (t.me/c/.../25). Déjalo vacío para el tema General.`,telegramThreadIdInvalid:`El ID del tema del foro debe ser un número.`,smtpServer:`Servidor SMTP`,smtpPort:`Puerto SMTP`,security:`Seguridad`,authentication:`Autenticación`,username:`Nombre de usuario`,password:`Contraseña`,fromEmail:`Correo del remitente`,toEmail:`Correo del destinatario`,webhookUrl:`URL del webhook`,payloadFormat:`Formato de la carga útil`,authorization:`Autorización`,titleFieldName:`Nombre del campo del título`,messageFieldName:`Nombre del campo del mensaje`,editTemplate:`Editar plantilla: {{name}}`,titleLabel:`Título`,bodyLabel:`Cuerpo`,titlePlaceholder:`Título de la notificación...`,bodyPlaceholder:`Cuerpo de la notificación...`,availableVariables:`Variables disponibles`,clickToInsert:`Haga clic para insertar en la posición del cursor en el cuerpo`,livePreview:`Vista previa en directo`,hide:`Ocultar`,show:`Mostrar`,loadingPreview:`Cargando la vista previa...`,enterTemplateContent:`Introduzca el contenido de la plantilla para ver la vista previa`,titlePreview:`Título:`,bodyPreview:`Cuerpo:`,resetToDefault:`Restablecer al valor predeterminado`,titleRequired:`El título es obligatorio`,bodyRequired:`El cuerpo es obligatorio`,notificationLog:`Registro de notificaciones`,showFailedOnly:`Solo fallidas`,last24Hours:`Últimas 24 horas`,last7Days:`Últimos 7 días`,last30Days:`Últimos 30 días`,last90Days:`Últimos 90 días`,justNow:`Ahora mismo`,noFailedNotifications:`No hay notificaciones fallidas`,noNotificationsLogged:`No hay notificaciones registradas`,unknownProvider:`Proveedor desconocido`,logTitle:`Título`,logMessage:`Mensaje`,logError:`Error`,logProvider:`Proveedor: {{type}}`,logTime:`Hora: {{time}}`,refresh:`Actualizar`,clearOld:`Borrar antiguas`,statsSummary:`Últimos {{days}} días:`,statsNotifications:`notificaciones`,statsSent:`{{count}} enviadas`,statsFailed:`{{count}} fallidas`,eventTypes:{print_start:`Impresión iniciada`,print_complete:`Impresión completada`,print_failed:`Impresión fallida`,print_stopped:`Impresión detenida`,print_progress:`Progreso`,printer_offline:`Impresora desconectada`,printer_error:`Error de la impresora`,filament_low:`Filamento bajo`,maintenance_due:`Mantenimiento pendiente`,test:`Prueba`},userEmail:{title:`Notificaciones`,emailNotifications:`Notificaciones por correo`,emailNotificationsDesc:`Reciba notificaciones por correo de sus propios trabajos de impresión. Los correos se envían usando los ajustes de SMTP del sistema configurados en la autenticación avanzada.`,sendingTo:`Las notificaciones se enviarán a`,noEmailWarning:`Su cuenta no tiene una dirección de correo. Póngase en contacto con un administrador para añadir una.`,printJobNotifications:`Notificaciones de trabajos de impresión`,printJobNotificationsDesc:`Elija qué eventos activan las notificaciones por correo para los trabajos de impresión que envíe.`,printJobStarts:`El trabajo de impresión comienza`,printJobStartsDesc:`Reciba una notificación cuando su trabajo de impresión comience.`,printJobFinishes:`El trabajo de impresión termina`,printJobFinishesDesc:`Reciba una notificación cuando su trabajo de impresión se complete correctamente.`,printErrors:`Errores de impresión`,printErrorsDesc:`Reciba una notificación cuando su trabajo de impresión falle o encuentre un error.`,printJobStops:`El trabajo de impresión se detiene`,printJobStopsDesc:`Reciba una notificación cuando su trabajo de impresión se cancele o se detenga.`,saveSuccess:`Preferencias de notificación guardadas.`,saveError:`Error al guardar las preferencias de notificación.`}},richTextEditor:{bold:`Negrita`,italic:`Cursiva`,underline:`Subrayado`,bulletList:`Lista con viñetas`,numberedList:`Lista numerada`,alignLeft:`Alinear a la izquierda`,alignCenter:`Centrar`,alignRight:`Alinear a la derecha`,addLink:`Añadir enlace`,removeLink:`Quitar enlace`},externalLinks:{title:`Enlaces de la barra lateral`,sidebarLayout:`Barra lateral`,sidebarLayoutDescription:`Muestra u oculta páginas integradas, añade enlaces externos y arrastra elementos para reordenar la navegación lateral.`,systemPages:`Páginas de Bambuddy`,externalLinks:`Enlaces externos`,visibleInSidebar:`Visible en la barra lateral`,hiddenFromSidebar:`Oculto en la barra lateral`,requiredInSidebar:`Obligatorio en la barra lateral`,hidePage:`Ocultar página`,showPage:`Mostrar página`,settingsCannotBeHidden:`Ajustes no se puede ocultar`,noLinksConfigured:`No hay enlaces externos configurados`,deleteLink:`Eliminar enlace`,removeCustomIcon:`Quitar el icono personalizado`,openInNewTab:`Abrir en una pestaña nueva`,placeholders:{linkName:`Mi enlace`}},keyboardShortcuts:{title:`Atajos de teclado`,navigation:`Navegación`,archivesSection:`Archivos`,kProfilesSection:`Perfiles K`,generalSection:`General`,shortcuts:{goToPrinters:`Ir a Impresoras`,goToArchives:`Ir a Archivos`,goToQueue:`Ir a la cola`,goToStats:`Ir a Estadísticas`,goToProfiles:`Ir a Perfiles en la nube`,goToSettings:`Ir a Ajustes`,focusSearch:`Enfocar la búsqueda`,openUploadModal:`Abrir la ventana de subida`,clearSelection:`Borrar la selección / quitar el foco del campo`,contextMenu:`Menú contextual en las tarjetas`,refreshProfiles:`Actualizar perfiles`,newProfile:`Nuevo perfil`,exitSelectionMode:`Salir del modo de selección`,showHelp:`Mostrar esta ayuda`},footer:`Pulse Esc o haga clic fuera para cerrar`},notificationLog:{title:`Registro de notificaciones`,events:{printStarted:`Impresión iniciada`,printComplete:`Impresión completada`,printFailed:`Impresión fallida`,printStopped:`Impresión detenida`,progress:`Progreso`,printerOffline:`Impresora desconectada`,printerError:`Error de la impresora`,lowFilament:`Filamento bajo`,maintenanceDue:`Mantenimiento pendiente`,test:`Prueba`},timeAgo:{justNow:`Ahora mismo`,minutesAgo:`hace {{minutes}} min`,hoursAgo:`hace {{hours}} h`}},restoreBackup:{title:`Restaurar copia de seguridad`,restoring:`Restaurando...`,restoreComplete:`Restauración completada`,restoreFailed:`Error en la restauración`,importSettings:`Importar ajustes desde un archivo de copia de seguridad`,pleaseWait:`Espere mientras se restauran sus datos`,clickToSelect:`Haga clic para seleccionar el archivo de copia de seguridad (.json o .zip)`,howDuplicateHandling:`Cómo funciona la gestión de duplicados:`,categories:{printers:`Impresoras`,smartPlugs:`Enchufes inteligentes`,notificationProviders:`Proveedores de notificaciones`,filaments:`Filamentos`,archives:`Archivos`,pendingUploads:`Subidas pendientes`,settingsTemplates:`Ajustes y plantillas`},matchingInfo:{printers:`coincidencia por número de serie`,smartPlugs:`coincidencia por dirección IP`,notificationProviders:`coincidencia por nombre`,filaments:`coincidencia por nombre + tipo + marca`,archives:`coincidencia por hash del contenido`,pendingUploads:`coincidencia por nombre de archivo`,settingsTemplates:`siempre se sobrescriben`},replaceExisting:`Reemplazar los datos existentes`,keepExisting:`Conservar los datos existentes`,replaceDescription:`Sobrescribir los elementos que ya existen con los datos de la copia de seguridad`,keepDescription:`Restaurar solo los elementos que aún no existen`,caution:`Precaución:`,cautionText:`Sobrescribir reemplazará sus configuraciones actuales con los datos de la copia de seguridad. Los códigos de acceso de las impresoras nunca se sobrescriben por seguridad.`,itemsRestored:`Elementos restaurados`,itemsSkipped:`Elementos omitidos`,restored:`Restaurados`,skipped:`Omitidos (ya existen)`,filesLabel:`Archivos (3MF, miniaturas, etc.)`,newApiKeysGenerated:`Nuevas claves API generadas`,newApiKeysWarning:`Estas claves solo se muestran una vez. ¡Cópielas ahora!`,processingBackup:`Procesando el archivo de copia de seguridad...`,noDataFound:`No se encontraron datos para restaurar en el archivo de copia de seguridad.`,failedToRestore:`Error al restaurar la copia de seguridad. Compruebe el formato del archivo.`},backupExport:{title:`Exportar copia de seguridad`,selectData:`Seleccione los datos que incluir`,selectAll:`Seleccionar todo`,selectNone:`No seleccionar nada`,categoryDescriptions:{settings:`Idioma, tema, preferencias de actualización`,notifications:`ntfy, Pushover, Discord, etc.`,templates:`Plantillas de mensajes personalizadas`,smartPlugs:`Configuraciones de enchufes Tasmota`,externalLinks:`Enlaces de la barra lateral a servicios externos`,printers:`Información de las impresoras (códigos de acceso excluidos)`,plateDetection:`Imágenes de referencia de la cama vacía`,filaments:`Tipos y costes de filamento`,maintenance:`Programaciones de mantenimiento personalizadas`,archives:`Todos los datos de impresión + archivos (3MF, miniaturas, fotos)`,projects:`Proyectos, elementos de la lista de materiales y adjuntos`,pendingUploads:`Subidas de la impresora virtual pendientes de revisión`,apiKeys:`Claves API de webhook (se generan claves nuevas al importar)`},requiresPrinters:`Requiere que se seleccionen las impresoras`,zipFileWarning:`Se creará un archivo ZIP.`,zipFileDescription:`Incluye todos los archivos 3MF, las miniaturas, los time-lapses y las fotos. Esto puede tardar un rato y dar como resultado un archivo grande.`,includeAccessCodes:`Incluir los códigos de acceso`,includeAccessCodesDescription:`Para transferir a otra máquina`,includeAccessCodesWarning:`Los códigos de acceso se incluirán en texto plano. ¡Mantenga este archivo de copia de seguridad seguro!`,categoriesSelected:`{{selectedCount}} categorías seleccionadas`},pendingUploads:{placeholders:{notes:`Añada notas sobre esta impresión...`},discardUpload:`Descartar subida`,archiveAllUploads:`Archivar todas las subidas`,discardAllUploads:`Descartar todas las subidas`,archive:`Archivar`,timeAgo:{justNow:`Ahora mismo`,minutesAgo:`hace {{minutes}} min`,hoursAgo:`hace {{hours}} h`,daysAgo:`hace {{days}} d`}},apiBrowser:{placeholders:{requestBody:`Cuerpo de la solicitud JSON...`,searchEndpoints:`Buscar puntos de conexión...`}},configureAmsSlot:{title:`Configurar la ranura del AMS`,slotConfigured:`¡Ranura configurada!`,configuringSlot:`Configurando la ranura:`,slotLabel:`{{ams}} Ranura {{slot}}`,searchPresets:`Buscar preajustes...`,colorPlaceholder:`Nombre del color o hexadecimal (p. ej., marrón, FF8800)`,clearCustomColor:`Borrar el color personalizado`,noCloudPresets:`No hay preajustes de la nube. Inicie sesión en Bambu Cloud para sincronizar.`,noPresetsAvailable:`No hay preajustes disponibles. Inicie sesión en Bambu Cloud o importe perfiles locales.`,noMatchingPresets:`No se encontraron preajustes coincidentes.`,custom:`Personalizado`,builtin:`Integrado`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`Ajustes enviados a la impresora`,filamentProfile:`Perfil de filamento`,kProfileLabel:`Perfil K (avance de presión)`,filteringFor:`Filtrando por: {{material}}`,noKProfile:`Sin perfil K (usar el predeterminado 0,020)`,noMatchingKProfiles:`No se encontraron perfiles K coincidentes. Se usará el K=0,020 predeterminado.`,otherKProfiles:`Otros perfiles K en esta impresora`,selectFilamentFirst:`Seleccione primero un perfil de filamento`,kFromCalibration:`K={{value}} de la calibración de la impresora`,customColorLabel:`Color personalizado (opcional)`,presetColors:`Colores de {{name}}:`,showLessColors:`Mostrar menos colores`,showMoreColors:`Mostrar más colores`,clear:`Borrar`,hexLabel:`Hex: #{{hex}}`,resetting:`Restableciendo...`,resetSlot:`Restablecer ranura`,cancel:`Cancelar`,configuring:`Configurando...`,configureSlot:`Configurar ranura`},githubBackup:{title:`Copia de seguridad en Git`,history:`Historial`,downloadBackup:`Descargar copia de seguridad`,restoreBackup:`Restaurar copia de seguridad`,noBackupsYet:`Aún no hay copias de seguridad`},emailSettings:{placeholders:{fromName:`BamBuddy`}},tagManagement:{searchTags:`Buscar etiquetas...`,renameTag:`Renombrar etiqueta`,deleteTag:`Eliminar etiqueta`},notificationTemplates:{placeholders:{title:`Título de la notificación...`,body:`Cuerpo de la notificación...`}},batchTag:{placeholders:{newTag:`Introduzca una nueva etiqueta...`}},photoGallery:{deletePhoto:`Eliminar foto`},filamentHoverCard:{copySpoolUuid:`Copiar el UUID de la bobina`},kProfilesView:{hasNote:`Tiene nota`,copyProfile:`Copiar perfil`},layout:{openMenu:`Abrir menú`,noPermissionSystemInfo:`No tiene permiso para ver la información del sistema`},dashboard:{dragToReorder:`Arrastre para reordenar`,hideWidget:`Ocultar widget`},notificationProviderCard:{deleteNotificationProvider:`Eliminar proveedor de notificaciones`},fileManagerModal:{closeFileManager:`Cerrar el gestor de archivos`,sortFiles:`Ordenar archivos`,goToParentFolder:`Ir a la carpeta superior`,threeView:`Vista 3D`},embeddedCameraViewer:{refreshStream:`Actualizar la transmisión`,close:`Cerrar`,zoomOut:`Alejar`,resetZoom:`Restablecer el zoom`,zoomIn:`Acercar`,dragToResize:`Arrastre para redimensionar`},timelapseViewer:{skipBack5s:`Retroceder 5 s`,skipForward5s:`Avanzar 5 s`},notificationProviders:{descriptions:{email:`Notificaciones por correo SMTP`,telegram:`Notificaciones mediante un bot de Telegram`,discord:`Enviar a un canal de Discord mediante un webhook`,ntfy:`Notificaciones push gratuitas y autoalojables`,pushover:`Notificaciones push sencillas y fiables`,callmebot:`Notificaciones de WhatsApp gratuitas mediante CallMeBot`,webhook:`POST HTTP genérico a cualquier URL`}},logViewer:{searchPlaceholder:`Buscar mensaje o nombre del registrador...`,noLogEntries:`No se encontraron entradas de registro`},switchbarPopover:{noSwitchesInSwitchbar:`No hay interruptores en la barra de interruptores`},projectPageModal:{placeholders:{title:`Título`,designer:`Diseñador`,license:`Licencia`,description:`Introduzca una descripción...`,profileTitle:`Título del perfil`,profileDescription:`Descripción del perfil...`}},spoolmanSettings:{},time:{unknown:`-`,waiting:`En espera`,justNow:`Ahora mismo`,now:`Ahora`,minsAgo:`hace {{count}} min`,inMins:`en {{count}} min`,hoursAgo:`hace {{count}} h`,inHours:`en {{count}} h`,daysAgo:`hace {{count}} d`,inDays:`en {{count}} d`},spoolbuddy:{nav:{dashboard:`Panel`,ams:`AMS`,inventory:`Inventario`,writeTag:`Escribir`,settings:`Ajustes`},status:{nfcReady:`NFC listo`,nfcOff:`NFC apagado`,offline:`Desconectado`,online:`En línea`,noPrinters:`No hay impresoras`,deviceOffline:`Dispositivo desconectado`,waitingConnection:`Esperando la conexión del dispositivo...`,systemReady:`Sistema listo`,status:`Estado`},dashboard:{readyToScan:`Listo para escanear`,idleMessage:`Coloque una bobina en la báscula para identificarla`,nfcHint:`La etiqueta NFC se leerá automáticamente`,device:`Dispositivo`,syncWeight:`Sincronizar peso`,weightSynced:`¡Sincronizado!`,unknownTag:`Etiqueta desconocida`,newTag:`Nueva etiqueta detectada`,onScale:`en la báscula`,linkSpool:`Vincular a bobina`,linkTagTitle:`Vincular la etiqueta a una bobina`,linkTag:`Vincular etiqueta`,selectSpool:`Seleccione una bobina a la que vincular esta etiqueta:`,noUntagged:`No se encontraron bobinas sin etiquetas`,tagDetected:`Etiqueta detectada`,noTag:`Sin etiqueta`,tagId:`Etiqueta`,grossWeight:`Peso bruto`,spoolSize:`Tamaño de la bobina`,close:`Cerrar`,currentSpool:`Bobina actual`,plateReady:`Cama lista: {{name}}`,plateReadyLabel:`Camas listas para despejar`,plateClearAction:`Despejar`,plateClearedToast:`Cama marcada como despejada`,plateClearFailed:`No se pudo marcar la cama como despejada`},modal:{spoolDetected:`Bobina detectada`,assignToAms:`Asignar al AMS`,syncWeight:`Sincronizar peso`,weightSynced:`¡Sincronizado!`,syncing:`Sincronizando...`,newTagDetected:`Nueva etiqueta detectada`,addToInventory:`Añadir al inventario`,assignToAmsTitle:`Asignar al AMS`,selectSlot:`Seleccione una ranura`,assign:`Asignar`,assigning:`Asignando...`,assignSuccess:`¡Asignada!`,assignPendingInsert:`Asignada. La ranura se configurará cuando inserte la bobina.`,assignError:`Error al asignar la bobina. Inténtelo de nuevo.`,noPrinterSelected:`Seleccionar una impresora...`,noAmsDetected:`No se detectó ningún AMS en esta impresora`,slot:`Ranura`},weight:{noReading:`Sin lectura`,stable:`Estable`,measuring:`Midiendo...`,tare:`Tara`,calibrate:`Calibrar`},spool:{remaining:`Restante`,material:`Material`,brand:`Marca`,color:`Color`,coreWeight:`Núcleo`,labelWeight:`Etiqueta`,scaleWeight:`Báscula`,netWeight:`Neto`,lastUsed:`Usada por última vez`},ams:{noData:`No se detectó ningún AMS`,connectAms:`Conecte un AMS para ver las ranuras de filamento`,noPrinter:`No hay impresora seleccionada`,selectPrinter:`Seleccione una impresora en la barra superior`,printerDisconnected:`Impresora desconectada`,humidity:`Humedad`,level:`Nivel`,active:`Activa`,slot:`Ranura`,empty:`Vacía`},inventory:{search:`Buscar bobinas...`,empty:`No hay bobinas en el inventario`,noResults:`No hay bobinas coincidentes`,spools:`bobinas`,addSpool:`Añadir bobina`},settings:{tabDevice:`Dispositivo`,tabDisplay:`Pantalla`,tabScale:`Báscula`,tabUpdates:`Actualizaciones`,nfcReader:`Lector NFC`,type:`Tipo`,connection:`Conexión`,notConnected:`N/D`,deviceInfo:`Información del dispositivo`,hostname:`Host`,uptime:`Tiempo de actividad`,systemConfig:`Backend y autenticación`,backendUrl:`URL del backend de Bambuddy`,apiToken:`Token de API`,apiTokenPlaceholder:`Introduzca el token de API`,saveConfig:`Guardar configuración`,systemQueued:`Configuración encolada.`,nfcDiagnostic:`Diagnóstico de NFC`,scaleDiagnostic:`Diagnóstico de la báscula`,readTagDiagnostic:`Diagnóstico de lectura de etiqueta`,testNfc:`Probar el lector`,testScale:`Probar la precisión`,testReadTag:`Leer etiqueta`,systemFieldsRequired:`La URL del backend es obligatoria.`,brightness:`Brillo`,saved:`Guardado`,noBacklight:`No se detectó retroiluminación DSI. El control del brillo requiere una pantalla DSI.`,screenBlank:`Tiempo de espera para apagar la pantalla`,screenBlankDesc:`La pantalla se apaga tras la inactividad. Toque para activarla.`,displayNote:`El brillo se aplica como un filtro de software.`,scaleCalibration:`Calibración de la báscula`,currentWeight:`Peso actual`,tareOffset:`Tara`,calFactor:`Factor`,knownWeight:`Peso conocido`,calStep1:`Retire todos los elementos de la báscula y pulse Poner a cero.`,calStep2:`Coloque el peso conocido en la báscula.`,setZero:`Poner a cero`,calibrateNow:`Calibrar`,calibrated:`Calibrada`,tareSet:`Comando de tara enviado. Esperando al dispositivo...`,tareComplete:`¡Tara completada!`,tareTimedOut:`Tara agotó el tiempo de espera — ¿está activo el daemon de SpoolBuddy?`,tareFailed:`Error al enviar el comando de tara`,zeroSet:`Punto cero establecido. Coloque el peso conocido en la báscula.`,calibrationDone:`¡Calibración completada!`,calibrationFailed:`Error en la calibración`,lastCalibrated:`Calibrada por última vez`,stable:`Estable`,settling:`Estabilizando...`,firmware:`Firmware`,scale:`Báscula`,noDevice:`No se encontró ningún dispositivo SpoolBuddy`,daemonVersion:`Versión del demonio`,currentVersion:`Actual`,versionPending:`Esperando al demonio...`,checking:`Comprobando...`,checkUpdates:`Buscar actualizaciones`,updateAvailable:`Actualización disponible`,updateInstructions:`Actualice mediante SSH: ejecute el script de instalación de SpoolBuddy para actualizar.`,upToDate:`Actualizado`,includeBeta:`Incluir versiones beta`},writeTag:{tabExisting:`Bobina existente`,tabNew:`Bobina nueva`,tabReplace:`Reemplazar etiqueta`,searchPlaceholder:`Buscar por material, color, marca...`,noUntaggedSpools:`No hay bobinas sin etiquetas`,noTaggedSpools:`No hay bobinas con etiquetas`,selectSpool:`Seleccione una bobina y luego coloque una etiqueta NTAG en blanco en el lector`,placeTag:`Coloque una etiqueta NTAG en el lector`,tagReady:`Etiqueta detectada — lista para escribir`,writeTag:`Escribir etiqueta`,replaceTag:`Reemplazar etiqueta`,writing:`Escribiendo la etiqueta...`,waiting:`Esperando a SpoolBuddy...`,writeSuccess:`¡Etiqueta escrita correctamente!`,writeFailed:`Error al escribir`,queueFailed:`Error al encolar el comando de escritura`,tryAgain:`Inténtelo de nuevo`,cancel:`Cancelar`,replaceWarning:`La etiqueta antigua se desvinculará. La nueva etiqueta la reemplazará.`,deviceOffline:`SpoolBuddy está desconectado`,material:`Material`,colorName:`Nombre del color`,color:`Color`,brand:`Marca`,weight:`Peso (g)`,createSpool:`Crear bobina`,creating:`Creando...`,spoolCreated:`¡Bobina creada! Lista para escribir.`,createFailed:`Error al crear la bobina`,incompleteDataWarning:`Etiqueta escrita con datos de Spoolman incompletos`},quickMenu:{printerPower:`Alimentación de la impresora`,systemControls:`Sistema`,restartDaemon:`Reiniciar demonio`,restartBrowser:`Reiniciar navegador`,reboot:`Reiniciar`,shutdown:`Apagar`,swipeToClose:`Deslice hacia abajo para cerrar`,confirmTitle:`Confirmar`,confirmShutdown:`¿Está seguro de que desea apagar el SpoolBuddy? Necesitará acceso físico para volver a encenderlo.`,confirmReboot:`¿Está seguro de que desea reiniciar el SpoolBuddy?`,confirmRestartDaemon:`¿Reiniciar el demonio de SpoolBuddy? El NFC y la báscula no estarán disponibles temporalmente.`,confirmRestartBrowser:`¿Reiniciar el navegador del quiosco? La pantalla se quedará en negro brevemente.`,confirm:`Confirmar`,confirmPlugOn:`¿Encender {{name}}?`,confirmPlugOff:`¿Apagar {{name}}?`,turnOn:`Encender`,turnOff:`Apagar`}},diagnostic:{modalTitle:`Diagnóstico de conexión — {{name}}`,running:`Ejecutando el diagnóstico...`,runningElapsed:`Ejecutando el diagnóstico... ({{elapsed}}s)`,waitingForReportHint:`Esperando a que la impresora publique un informe de estado — puede tardar hasta {{max}} segundos.`,runFailed:`No se pudo ejecutar el diagnóstico: {{error}}`,retry:`Ejecutar de nuevo`,runButton:`Ejecutar diagnóstico`,sectionTitle:`Diagnóstico de conexión`,sectionDescription:`Compruebe por qué una impresora no se conecta o no imprime — accesibilidad de los puertos, modo desarrollador LAN, modo de red de Docker y credenciales.`,noPrinters:`No hay impresoras configuradas.`,overall:{ok:`No se encontraron problemas — la conexión de la impresora parece correcta.`,warnings:`La impresora debería funcionar, pero algunas cosas necesitan atención.`,problems:`Se encontraron problemas que explican por qué la impresora no se conecta o no imprime.`},check:{port_mqtt:{title:`Puerto de control (MQTT 8883)`,pass:`Accesible — la impresora acepta conexiones de control.`,fail:`El puerto 8883 no es accesible. La impresora está apagada, en una dirección IP distinta, o un cortafuegos lo está bloqueando. Verifique la IP de la impresora y que nada bloquee el puerto 8883.`},port_ftps:{title:`Puerto de transferencia de archivos (FTPS 990)`,pass:`Accesible — el envío de archivos de impresión funcionará.`,warn:`El puerto 990 no es accesible. La supervisión puede seguir funcionando, pero el envío de impresiones a la impresora fallará. Asegúrese de que el puerto 990 no esté bloqueado.`},external_storage:{title:`Almacenar archivos enviados en almacenamiento externo (paso 4 de instalación)`,pass:`La impresora informa que esta opción está activada — los archivos enviados se guardarán en la tarjeta SD y los archivos tendrán miniaturas y metadatos del slicer.`,fail:`La impresora informa que esta opción está desactivada. Active "Almacenar archivos enviados en almacenamiento externo" — en firmware reciente (P2S 01.02 / Bambu Studio 2.6+) el conmutador está en los Ajustes de Impresión de la impresora; en versiones anteriores está en la pestaña Dispositivo de Bambu Studio / OrcaSlicer. Sin esta opción, cada impresión archivada queda sin miniatura ni metadatos del slicer.`,skip:`No comprobado — se necesita una conexión MQTT activa. En slicers más antiguos donde este ajuste solo existe en el slicer, la impresora no lo reporta, así que esta comprobación pasa aunque la opción esté desactivada — verifique el paso 4 de la instalación manualmente.`,skip_unsupported_model:`Este modelo tiene ranura SD pero no hay forma de activar la opción — el firmware actual de la serie P1 no muestra el interruptor en Bambu Studio y la impresora no tiene pantalla. Aquí no hay nada que arreglar; a las impresiones archivadas pueden faltarles miniaturas y metadatos del slicer hasta que Bambu Lab lo admita por firmware.`},port_rtsps:{title:`Puerto de la cámara ({{protocol}} {{port}})`,pass:`Accesible — la transmisión de la cámara funcionará.`,warn:`El puerto {{port}} no es accesible. La vista de la cámara en directo no funcionará. Esto no afecta a la impresión.`},network_mode:{title:`Modo de red de Docker`,pass:`Ejecutándose en modo de red de host.`,warn:`Bambuddy se está ejecutando en red de tipo bridge de Docker. La detección de impresoras y la impresora virtual necesitan el modo de red de host — vuelva a crear el contenedor con "network_mode: host".`,skip:`No se está ejecutando en Docker — no aplicable.`},subnet:{title:`Subred de la red`,pass:`La impresora y Bambuddy están en la misma subred.`,warn:`La impresora ({{printer_ip}}) y Bambuddy ({{host_ip}}) están en subredes distintas. Es posible que no se alcancen entre sí a menos que se configure el enrutamiento entre las subredes.`,skip:`No se pudo determinar la subred — omitido.`},mqtt_auth:{title:`Credenciales de la impresora`,pass:`La impresora aceptó la conexión.`,fail:`La impresora es accesible pero Bambuddy no está conectado a ella. Lo más probable es que el código de acceso o el número de serie sean incorrectos — el código de acceso cambia cada vez que se conmuta el modo Solo LAN o el modo desarrollador, así que vuelva a copiarlo de la pantalla de la impresora. Una impresora que se está reiniciando, o que ya alcanzó su límite de conexiones simultáneas, se ve igual.`,fail_auth_rejected:`La impresora rechazó las credenciales de Bambuddy. El código de acceso o el número de serie son incorrectos — el código de acceso cambia cada vez que se conmuta el modo Solo LAN o el modo desarrollador, así que vuelva a copiarlo de la pantalla de la impresora y guárdelo en la configuración de la impresora.`,skip:`No comprobado — no se pudo alcanzar la impresora.`},developer_mode:{title:`Modo desarrollador LAN`,pass:`El modo desarrollador está activado.`,fail:`El modo desarrollador está DESACTIVADO en la impresora. Actívelo en los ajustes de LAN de la impresora — y confirme con Aceptar. Sin él, las impresiones no comenzarán.`,skip:`No se pudo comprobar — requiere una conexión activa con la impresora.`},printer_publishing:{title:`La impresora publica estado`,pass:`La impresora está publicando actualizaciones de estado — AMS, filamentos y perfiles K se reflejarán correctamente en el slicer.`,fail:`El broker MQTT aceptó la conexión, pero la impresora no ha publicado ningún informe de estado. Casi siempre se trata de un número de serie incorrecto o con mayúsculas/minúsculas mal escritas — el topic device//api/v1/metrics pour la surveillance Prometheus/Grafana.`,bearerTokenOptional:`Token Bearer (optionnel)`,bearerTokenHint:`Si défini, les requêtes doivent inclure Authorization: Bearer `,metricsConnectionStatus:`État de connexion`,metricsPrinterState:`État imprimante (idle/printing/etc)`,metricsPrintProgress:`Progression impression 0-100%`,metricsBedTemp:`Température du plateau`,metricsNozzleTemp:`Température de la buse`,metricsPrintsTotal:`Total impressions par résultat`,metricsMore:`...et plus (couches, ventilateurs, file d'attente, utilisation filament)`,smartPlugsDescription:`Connecter des prises connectées (Tasmota ou Home Assistant) pour automatiser le contrôle de l'alimentation et suivre la consommation d'énergie de vos imprimantes.`,allOn:`Tout allumer`,allOff:`Tout éteindre`,addSmartPlug:`Ajouter une prise`,energySummary:`Résumé énergétique`,currentPower:`Puissance actuelle`,plugsOnline:`{{reachable}}/{{total}} prises en ligne`,today:`Aujourd'hui`,yesterday:`Hier`,total:`Total`,enablePlugsForSummary:`Activer les prises pour voir le résumé énergétique`,addNotificationProvider:`Ajouter`,systemBadge:`(Système)`,creating:`Création...`,changing:`Modification...`,deleteUserAndItems:`Supprimer l'utilisateur ET ses éléments`,deleteUserKeepItems:`Supprimer l'utilisateur, garder les éléments (deviennent sans propriétaire)`,ok:`OK`,twoFa:{totpTitle:`Application Authenticator (TOTP)`,totpDesc:`Utilisez une application comme Google Authenticator, Aegis ou Authy.`,emailOtpTitle:`OTP par e-mail`,emailOtpDesc:`Envoyez un code à usage unique à {{email}} lors de la connexion.`,emailOtpNoEmail:`Ajoutez une adresse e-mail à votre compte pour activer cette méthode.`,addEmailFirst:`Votre compte n'a pas d'adresse e-mail. Demandez à un administrateur d'en ajouter une.`,setupTotp:`Configurer l'application Authenticator`,setupAuthApp:`Configurer l'application Authenticator`,setupInstructions:`Scannez le QR code avec votre application authenticator, puis confirmez avec un code.`,manualEntry:`Impossible de scanner ? Entrez ce secret manuellement :`,scannedContinue:`Code scanné — continuer`,enterCodeToConfirm:`Entrez le code à 6 chiffres de votre application authenticator pour confirmer.`,activate:`Activer`,disableTotp:`Désactiver l'Authenticator`,disableConfirmHint:`Entrez un code TOTP valide ou un code de secours pour désactiver l'authenticator.`,totpDisabled:`Application Authenticator désactivée.`,emailOtpEnabled:`OTP par e-mail activé.`,emailOtpDisabled:`OTP par e-mail désactivé.`,smtpRequired:`Veuillez d'abord configurer et tester les paramètres SMTP.`,invalidCode:`Code invalide. Veuillez réessayer.`,enableEmailOtp:`Activer OTP par e-mail`,disableEmailOtp:`Désactiver OTP par e-mail`,emailSetupEnterCode:`Un code de vérification a été envoyé à votre adresse e-mail. Entrez-le ci-dessous pour confirmer que vous possédez cette boîte de réception.`,verifyAndEnable:`Vérifier et activer`,emailDisablePasswordHint:`Entrez le mot de passe de votre compte pour confirmer la désactivation de l'OTP par e-mail.`,passwordPlaceholder:`Entrez votre mot de passe`,backupCodesTitle:`Sauvegardez vos codes de secours`,backupCodesWarning:`Conservez ces codes en lieu sûr. Chaque code ne peut être utilisé qu'une seule fois et ne sera plus affiché.`,backupCodesRemaining:`{{count}} codes de secours restants`,savedCodes:`Codes sauvegardés`,regenBackup:`Régénérer les codes de secours`,regenBackupHint:`Entrez votre code TOTP actuel pour générer 10 nouveaux codes de secours. Tous les codes existants seront invalidés.`,newBackupCodes:`Nouveaux codes de secours`,linkedAccounts:`Comptes SSO liés`,linkedAccountsDesc:`Ces fournisseurs d'identité externes sont liés à votre compte.`,oidcUnlinked:`Compte dissocié.`},sessionPolicy:{title:`Politique de session`,description:`Durée maximale des sessions pour les nouvelles connexions utilisateur. Les jetons déjà émis conservent leur expiration d'origine.`,preset24h:`24 heures`,preset7d:`7 jours`,preset30d:`30 jours`,customHoursLabel:`Durée de session personnalisée en heures`,hoursSuffix:`heures`,warning:`Les sessions plus longues réduisent la protection de déconnexion automatique. Recommandé uniquement pour les déploiements mono-utilisateur de confiance.`},oidc:{title:`Fournisseurs SSO / OIDC`,desc:`Configurez des fournisseurs OpenID Connect pour l'authentification unique.`,addProvider:`Ajouter un fournisseur`,newProvider:`Nouveau fournisseur`,empty:`Aucun fournisseur OIDC configuré.`,created:`Fournisseur créé.`,updated:`Fournisseur mis à jour.`,deleted:`Fournisseur supprimé.`,refreshIcon:`Actualiser l'icône`,removeIcon:`Supprimer l'icône`,iconRefreshed:`Icône actualisée.`,iconRemoved:`Icône supprimée.`,iconFetchFailed:`Impossible de récupérer l'icône depuis l'URL du fournisseur.`,deleteTitle:`Supprimer le fournisseur`,deleteMessage:`Supprimer "{{name}}" ? Tous les comptes liés seront déconnectés.`,form:{name:`Nom d'affichage`,issuerUrl:`URL de l'émetteur`,clientId:`ID client`,clientSecret:`Secret client`,scopes:`Portées`,iconUrl:`URL de l'icône (optionnel)`,enabled:`Activé`,autoCreate:`Créer les utilisateurs automatiquement`,autoCreateDesc:`Crée automatiquement un compte local lors de la première connexion.`,autoLink:`Lier automatiquement les comptes existants`,autoLinkDesc:`Lie les comptes locaux existants par e-mail lors de la première connexion.`,secretHint:`laisser vide pour conserver`,secretPlaceholder:`nouveau secret`,emailClaim:`Claim e-mail`,emailClaimDesc:`Claim JWT utilisé comme identité e-mail. Utiliser 'preferred_username' ou 'upn' pour Azure Entra ID (qui n'envoie pas email_verified). Utiliser uniquement des noms de claims de confiance.`,emailClaimPlaceholder:`e-mail`,emailClaimCustomClaimAutoLinkWarning:`Les revendications personnalisées sont sûres pour la liaison auto uniquement lorsque la valeur est administrée par le tenant (par ex. Azure Entra ID upn / preferred_username). N'activez pas la liaison auto si votre IdP permet aux utilisateurs de s'auto-attribuer cette revendication.`,requireEmailVerified:`Exiger la vérification e-mail`,requireEmailVerifiedDesc:`N'accepter le claim e-mail que si le fournisseur le marque comme vérifié.`,requireEmailVerifiedWarning:`Avertissement : l'e-mail sera accepté sans vérification. À utiliser uniquement avec des fournisseurs de confiance.`,requireEmailVerifiedAutoLink:`Désactiver le lien automatique d'abord pour modifier ce paramètre.`,defaultGroup:`Groupe par défaut`,defaultGroupDesc:`Groupe attribué aux utilisateurs créés automatiquement. Repli sur Viewers si non défini.`,defaultGroupViewersFallback:`Viewers (par défaut)`,autologin:`Connexion automatique`,autologinDesc:`Rediriger les visiteurs non authentifiés directement vers ce fournisseur. Un seul fournisseur peut porter cet indicateur.`}},encryption:{title:`Statut du chiffrement MFA`,enabledFromEnv:`Chiffrement au repos activé (clé depuis la variable d'environnement MFA_ENCRYPTION_KEY)`,enabledFromFile:`Chiffrement au repos activé (clé chargée depuis le répertoire de données)`,enabledGenerated:`Chiffrement au repos activé avec une clé auto-générée`,notConfigured:`Chiffrement au repos non configuré`,notConfiguredDesc:`Les secrets TOTP et client_secrets OIDC sont stockés en clair. Définissez MFA_ENCRYPTION_KEY ou redémarrez Bambuddy avec un répertoire de données accessible en écriture pour en générer un automatiquement.`,allEncrypted:`Tous les secrets MFA sont chiffrés au repos.`,legacyRowsLabel:`Lignes héritées en clair`,encryptedRowsLabel:`Lignes chiffrées`,legacyRowsWarning:`{{count}} ligne(s) héritée(s) en clair détectée(s). Réenregistrez le fournisseur OIDC ou réinscrivez l'application d'authentification de l'utilisateur pour migrer vers le stockage chiffré.`,backupHint:`La clé auto-générée est stockée dans DATA_DIR/.mfa_encryption_key et incluse dans les ZIP de sauvegarde locale. Conservez vos sauvegardes en sécurité ou définissez MFA_ENCRYPTION_KEY explicitement.`,decryptionBrokenTitle:`Clé de chiffrement manquante`,decryptionBrokenError:`{{count}} enregistrement(s) chiffré(s) ne peuvent pas être déchiffrés car la clé de chiffrement n'est plus disponible. Restaurez le MFA_ENCRYPTION_KEY précédent ou DATA_DIR/.mfa_encryption_key pour récupérer.`,migrationErrorWarning:`{{count}} ligne(s) ancienne(s) n'ont pas pu être rechiffrée(s) au démarrage. Vérifiez les journaux du serveur et redémarrez Bambuddy pour réessayer.`},spoolbuddy:{infoTitle:`Périphériques SpoolBuddy`,infoBody:`Les bornes SpoolBuddy s'enregistrent automatiquement via heartbeat. Désinscrivez ici un appareil qui n'est plus utilisé ou un doublon obsolète laissé par un crash du daemon.`,duplicatesTitle:`{{count}} appareils enregistrés`,duplicatesBody:`Seul le premier appareil enregistré est utilisé par l'interface du kiosk. Si l'un de ces appareils est un doublon obsolète issu d'un crash, désinscrivez-le — un appareil en ligne se ré-enregistrera automatiquement au prochain heartbeat.`,empty:`Aucun appareil SpoolBuddy enregistré pour le moment.`,online:`En ligne`,offline:`Hors ligne`,unregister:`Désinscrire`,unregisterSuccess:`Appareil désinscrit`,unregisterError:`Échec de la désinscription`,confirmTitle:`Désinscrire l'appareil SpoolBuddy ?`,confirmBody:`Cela retirera "{{hostname}}" ({{deviceId}}) de la base de données. Si l'appareil est en ligne, il se ré-enregistrera automatiquement au prochain heartbeat.`,ipAddress:`Adresse IP`,firmware:`Micrologiciel`,lastSeen:`Dernière activité`,daemonUptime:`Uptime du daemon`,systemUptime:`Uptime système`,never:`jamais`,nfc:`NFC`,scale:`Balance`,cpuTemp:`Temp. CPU`,cpuLoad:`Charge CPU`,memory:`Mémoire`,disk:`Disque`,update:`Mettre à jour`,updateConfirmTitle:`Mettre à jour le daemon Spoolbuddy ?`,updateConfirmBody:`Déclencher une mise à jour logicielle sur "{{hostname}}" ? Le daemon redémarrera une fois la mise à jour appliquée.`,restartBrowser:`Redémarrer le navigateur`,restartBrowserConfirmTitle:`Redémarrer le navigateur du kiosk ?`,restartBrowserConfirmBody:`Redémarrer le navigateur du kiosk sur "{{hostname}}" ? L'écran sera momentanément vide.`,restartDaemon:`Redémarrer le daemon`,restartDaemonConfirmTitle:`Redémarrer le daemon Spoolbuddy ?`,restartDaemonConfirmBody:`Redémarrer le daemon Spoolbuddy sur "{{hostname}}" ? L'appareil sera hors ligne quelques secondes.`,reboot:`Redémarrer`,rebootConfirmTitle:`Redémarrer l'appareil ?`,rebootConfirmBody:`Redémarrer "{{hostname}}" ? L'appareil sera hors ligne pendant environ une minute.`,shutdown:`Éteindre`,shutdownConfirmTitle:`Éteindre l'appareil ?`,shutdownConfirmBody:`Éteindre "{{hostname}}" ? Vous aurez besoin d'un accès physique pour le rallumer.`,commandConfirm:`Confirmer`,commandQueued:`Commande en file d'attente`,commandError:`Échec de l'envoi de la commande`},pipelineLimits:{title:`Limites des pipelines du trancheur`,maxCopiesLabel:`Copies maximales par exécution`,maxCopiesDesc:`Limite supérieure du nombre de copies que les opérateurs peuvent demander lors de l'exécution d'un pipeline. La limite stricte côté serveur est 1000.`},pipelines:{title:`Pipelines du Trancheur`,subtitle:`Lots de préréglages réutilisables (imprimante + processus + filaments + type de plateau). Enregistrez-en un depuis le dialogue Trancher et appliquez-le en un clic au fichier suivant.`,loading:`Chargement des pipelines…`,loadError:`Impossible de charger les pipelines.`,confirmDelete:`Supprimer ce pipeline ? Cela ne peut pas être annulé.`,staleWarning:`Un ou plusieurs préréglages référencés n'existent plus. Réenregistrez ce pipeline depuis le dialogue Trancher pour le corriger.`,empty:{title:`Aucun pipeline pour le moment.`,howto:`Ouvrez le dialogue Trancher pour n'importe quel fichier, choisissez imprimante / processus / filaments / plateau, puis cliquez sur « Enregistrer comme pipeline ». Vos pipelines enregistrés apparaîtront ici.`},field:{name:`Nom du pipeline`,description:`Description`,targetPrinter:`Imprimante cible`,noTarget:`— Aucune cible —`,targetKind:`Type de cible`,targetKindSpecific:`Imprimante spécifique`,targetKindClass:`Classe d'imprimante`,targetModelClass:`Modèle d'imprimante`,fanoutStrategy:`Stratégie de distribution`,fanout:{max_parallel:`Max parallèle — distribuer sur toute imprimante libre correspondante`,round_robin:`Round robin — alterner entre imprimantes éligibles`,fill_one_first:`Remplir une d'abord — épingler toutes les copies à une imprimante`},fanoutShort:{max_parallel:`parallèle`,round_robin:`round robin`,fill_one_first:`remplir une`}},action:{save:`Enregistrer`,cancel:`Annuler`,rename:`Renommer`,delete:`Supprimer`},slot:{printer:`Imprimante`,process:`Processus`,filament:`Filament`,filamentN:`Filament {{n}}`,filamentAll:`Tous les {{n}} emplacements`,bed:`Plateau`},group:{profiles:`Profils`,filaments:`Filaments`},searchPlaceholder:`Rechercher des pipelines…`,filterTargetType:`Filtrer par type de cible`,filterTarget:`Filtrer par cible`,filter:{all:`Toutes les cibles`,noTarget:`Aucune cible`,count:`{{shown}} / {{total}}`,noMatches:`Aucun pipeline ne correspond aux filtres actuels.`},toast:{saved:`Pipeline enregistré`,saveFailed:`Échec de l'enregistrement`,deleted:`Pipeline supprimé`,deleteFailed:`Échec de la suppression`},noTargetHint:`Définissez une imprimante cible pour exécuter`,noTargetWarning:`Définissez une imprimante cible avant d'exécuter ce pipeline.`,runs:{lastRun:`Dernière exécution`,status:{queued:`en file`,slicing:`tranchage`,dispatching:`envoi`,in_progress:`impression`,completed:`terminé`,failed:`échec`,partial_failure:`échec partiel`,cancelled:`annulé`}}}},notification:{printStarted:{title:`Impression démarrée`,body:`{{printer}} : {{filename}} commence l'impression`},printCompleted:{title:`Impression terminée`,body:`{{printer}} : {{filename}} a réussi`},printFailed:{title:`Impression échouée`,body:`{{printer}} : {{filename}} a échoué`},printStopped:{title:`Impression arrêtée`,body:`{{printer}} : {{filename}} a été arrêtée`},printProgress:{title:`Progression d'impression`,body:`{{printer}} : {{filename}} est à {{percent}}%`},printerOffline:{title:`Imprimante hors ligne`,body:`{{printer}} est déconnectée`},printerError:{title:`Erreur imprimante`,body:`{{printer}} : {{error}}`},filamentLow:{title:`Filament bas`,body:`{{printer}} : Le filament est presque vide`},maintenanceDue:{title:`Maintenance due`,body:`{{printer}} : {{items}} demandent votre attention`}},errors:{generic:`Une erreur est survenue`,networkError:`Erreur réseau. Vérifiez votre connexion.`,notFound:`Non trouvé`,unauthorized:`Non autorisé`,serverError:`Erreur serveur`,validationError:`Vérifiez vos saisies`,printerConnectionFailed:`Échec connexion imprimante`,saveFailed:`Échec enregistrement`,deleteFailed:`Échec suppression`,loadFailed:`Échec chargement`},hmsErrors:{title:`Erreurs - {{name}}`,noErrors:`Aucune erreur`,viewOnWiki:`Voir sur le Wiki Bambu Lab`,mqttVerifyFailedRemedy:`Activez le mode developpeur sur l'imprimante, redemarrez l'imprimante, puis relancez la tache.`,unknownCode:`Code HMS inconnu — consultez le wiki Bambu Lab pour plus de détails.`,clearInstructions:`Effacez les erreurs sur l'imprimante pour les retirer ici.`,clearErrors:`Effacer les erreurs`,clearSuccess:`Erreurs HMS effacées`,clearFailed:`Échec de l'effacement des erreurs HMS`,actionSuccess:`Action envoyée à l'imprimante`,actionFailed:`Échec de l'envoi de l'action`,runoutExpectedSlot:`Le filament est épuisé dans {{ranOut}}. L'imprimante attend maintenant du filament compatible dans {{expected}}. Insérez une bobine dans {{expected}}, puis sélectionnez Réessayer.`,runoutExpectedSlotOnly:`L'imprimante attend du filament compatible dans {{expected}}. Insérez-y une bobine, puis sélectionnez Réessayer.`,runoutSlotUnknown:`Le filament est épuisé et l'impression est en pause. Bambuddy n'a pas pu déterminer quel emplacement l'imprimante attend désormais — vérifiez l'écran de l'imprimante pour l'emplacement demandé.`,actions:{RESUME_PRINTING:`Reprendre l'impression`,RESUME_PRINTING_DEFECTS:`Reprendre (défauts acceptables)`,RESUME_PRINTING_PROBELM_SOLVED:`Reprendre (problème résolu)`,STOP_PRINTING:`Arrêter l'impression`,CHECK_ASSISTANT:`Ouvrir l'assistant`,FILAMENT_EXTRUDED:`Filament extrudé, continuer`,RETRY_FILAMENT_EXTRUDED:`Pas encore extrudé, réessayer`,CONTINUE:`Terminé, continuer`,LOAD_VIRTUAL_TRAY:`Charger le filament`,OK_BUTTON:`OK`,FILAMENT_LOAD_RESUME:`Filament chargé, reprendre`,JUMP_TO_LIVEVIEW:`Voir en direct`,NO_REMINDER_NEXT_TIME:`Ne plus rappeler la prochaine fois`,REFRESH_NOZZLE:`Revérifier`,IGNORE_NO_REMINDER_NEXT_TIME:`Ignorer et ne plus rappeler`,IGNORE_RESUME:`Ignorer et reprendre`,PROBLEM_SOLVED_RESUME:`Problème résolu, reprendre`,TURN_OFF_FIRE_ALARM:`Compris, désactiver l'alarme incendie`,RETRY_PROBLEM_SOLVED:`Réessayer (problème résolu)`,CANCLE:`Annuler`,STOP_DRYING:`Arrêter le séchage`,PROCEED:`Continuer`,OK_JUMP_RACK:`OK`,ABORT:`Annuler`,DISABLE_PURIFICATION:`Désactiver la purification pour cette impression`,DONT_REMIND_NEXT_TIME:`Ne plus me rappeler`,DBL_CHECK_CANCEL:`Annuler`,DBL_CHECK_DONE:`Terminé`,DBL_CHECK_RETRY:`Réessayer`,DBL_CHECK_RESUME:`Reprendre`,DBL_CHECK_OK:`Confirmer`,REMOVE_CLOSE_BTN:`Fermer`}},mqttDebug:{title:`Journal de débogage MQTT`,searchPlaceholder:`Chercher topic ou message...`,noMessages:`Aucun message enregistré`,startLoggingHint:`Cliquez sur "Démarrer" pour capturer les messages MQTT`,noMessagesMatch:`Aucun message ne correspond`,adjustFilterHint:`Ajustez votre recherche`,incoming:`Entrant`,outgoing:`Sortant`,loggingStopped:`Enregistrement arrêté`,loggingActive:`Enregistrement actif - rafraîchissement auto`,startLogging:`Démarrer`,stopLogging:`Arrêter`,clearLog:`Effacer le journal`,topic:`Sujet`,timestamp:`Horodatage`,direction:`Direction`,all:`Tous`},printerFiles:{title:`Gestionnaire de fichiers`,storageUsed:`Utilisé :`,storageFree:`Libre :`,filterPlaceholder:`Filtrer les fichiers...`,deleteButton:`Supprimer`,deleteFiles:`Supprimer {{count}} fichiers`,deleteFileConfirm:`Supprimer "{{name}}" ?`,deleteFilesConfirm:`Supprimer les {{count}} fichiers sélectionnés ?`,noFiles:`Aucun fichier sur l'imprimante`,loadingFiles:`Chargement...`,failedToLoad:`Échec chargement fichiers`,toast:{filesDeleted:`{{count}} fichier(s) supprimé(s)`,deleteFailed:`Échec suppression : {{error}}`}},confirm:{delete:`Voulez-vous vraiment supprimer cet élément ?`,unsavedChanges:`Changements non sauvegardés. Voulez-vous quitter ?`,clearQueue:`Voulez-vous vraiment vider la file d'attente ?`},login:{title:`Connexion Bambuddy`,subtitle:`Connectez-vous à votre compte`,username:`Utilisateur`,usernamePlaceholder:`Entrez votre utilisateur`,usernameOrEmail:`Utilisateur ou Email`,usernameOrEmailPlaceholder:`Utilisateur ou @ Email`,password:`Mot de passe`,passwordPlaceholder:`Entrez votre mot de passe`,signIn:`Se connecter`,signingIn:`Connexion...`,rememberMe:`Se souvenir de moi`,forgotPassword:`Mot de passe oublié ?`,autologinFailed:`La connexion SSO automatique a échoué. Choisissez un fournisseur ci-dessous pour continuer.`,localDisabledNotice:`La connexion locale est désactivée. Utilisez l'un des fournisseurs SSO ci-dessous.`,loginSuccess:`Connecté avec succès`,loginFailed:`Échec de connexion`,enterCredentials:`Entrez vos identifiants`,enterEmail:`Veuillez entrer votre adresse e-mail`,oidcLoginFailed:`Échec de la connexion OIDC`,oidcErrors:{providerError:`Le fournisseur d'identité a renvoyé une erreur`,missingParameters:`Il manque des paramètres requis dans le callback OIDC`,invalidState:`L'état OIDC est invalide ou a déjà été utilisé`,stateExpired:`La session OIDC a expiré — veuillez réessayer`,providerNotFound:`Fournisseur OIDC introuvable`,discoveryFailed:`Impossible de récupérer le document de découverte OIDC`,invalidDiscovery:`Le document de découverte OIDC est invalide`,networkError:`Erreur réseau lors de l'échange de jeton OIDC`,badResponse:`Réponse inattendue lors de l'échange de jeton OIDC`,noIdToken:`Le fournisseur OIDC n'a pas renvoyé de jeton d'identité`,validationFailed:`La validation du jeton OIDC a échoué`,nonceMismatch:`Le nonce OIDC ne correspond pas — possible attaque par rejeu`,missingSubClaim:`Le jeton OIDC est dépourvu de la revendication sub`,noLinkedAccount:`Aucun compte local est lié à cette identité OIDC`,accountInactive:`Votre compte est inactif`,userResolutionFailed:`Impossible de résoudre votre compte`,internalError:`Une erreur interne est survenue lors de la connexion OIDC`,tokenExchangeFailed:`L'échange de jeton OIDC a échoué`},forgotPasswordTitle:`Mot de passe oublié`,forgotPasswordMessage:`Contactez votre administrateur pour réinitialiser votre accès.`,forgotPasswordEmailMessage:`Entrez votre email pour recevoir un nouveau mot de passe.`,emailAddress:`Adresse Email`,emailPlaceholder:`votre.email@exemple.com`,cancel:`Annuler`,sending:`Envoi...`,sendResetEmail:`Envoyer l'email`,howToReset:`Comment réinitialiser :`,resetStep1:`Contactez votre admin Bambuddy`,resetStep2:`Demandez une réinitialisation dans la Gestion Utilisateurs`,resetStep3:`Il vous donnera un mot de passe temporaire`,resetStep4:`Connectez-vous et changez-le dans les Paramètres`,gotIt:`Compris`,twoFA:{title:`Authentification à deux facteurs`,subtitle:`Votre compte est protégé par la 2FA. Saisissez le code de vérification ci-dessous.`,methodAuthenticator:`Application d'authentification`,methodEmail:`Code par e-mail`,methodBackup:`Code de récupération`,instructionsTotp:`Ouvrez votre application d'authentification et saisissez le code à 6 chiffres pour Bambuddy.`,instructionsEmail:`Un code à 6 chiffres a été envoyé à votre adresse e-mail. Il est valable 10 minutes.`,instructionsEmailNotSent:`Cliquez ci-dessous pour recevoir un code de vérification par e-mail.`,instructionsBackup:`Saisissez l'un de vos codes de récupération à 8 caractères. Chaque code ne peut être utilisé qu'une seule fois.`,sendCodeButton:`Envoyer le code par e-mail`,sendingCode:`Envoi en cours...`,resendCode:`Renvoyer le code`,codeLabel:`Code de vérification`,backupCodeLabel:`Code de récupération`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`Vérifier`,verifyingButton:`Vérification en cours...`,backToLogin:`← Retour à la connexion`,orContinueWith:`ou continuer avec`,signInWith:`Se connecter avec {{provider}}`,enterCode:`Veuillez entrer le code de vérification`,sendCodeFailed:`Échec de l'envoi du code de vérification`,invalidCode:`Code invalide. Veuillez réessayer.`},resetPassword:{title:`Définir un nouveau mot de passe`,subtitle:`Saisissez et confirmez votre nouveau mot de passe ci-dessous.`,newPassword:`Nouveau mot de passe`,newPasswordPlaceholder:`Au moins 8 caractères`,confirmPassword:`Confirmer le mot de passe`,confirmPasswordPlaceholder:`Répéter le nouveau mot de passe`,saving:`Enregistrement…`,submit:`Définir le mot de passe`,backToLogin:`Retour à la connexion`,passwordsDoNotMatch:`Les mots de passe ne correspondent pas`,passwordTooShort:`Le mot de passe doit contenir au moins 8 caractères`,resetFailed:`Échec de la réinitialisation. Le lien a peut-être expiré.`}},setup:{title:`Configuration Bambuddy`,subtitle:`Configurez l'authentification`,enableAuth:`Activer l'authentification`,adminAccount:`Compte Admin`,adminAccountDesc:`Si des admins existent, ils seront utilisés. Sinon, créez-en un ci-dessous.`,adminUsername:`Utilisateur Admin`,adminPassword:`Mot de passe Admin`,optionalIfAdminExists:`(optionnel si admin existe)`,adminUsernamePlaceholder:`Nom admin (optionnel)`,adminPasswordPlaceholder:`Mdp admin (optionnel)`,confirmPassword:`Confirmer mdp`,confirmPasswordPlaceholder:`Confirmez mdp admin`,settingUp:`Configuration...`,completeSetup:`Terminer la configuration`,toast:{authEnabledAdminCreated:`Authentification activée et admin créé`,authEnabledExistingAdmins:`Authentification activée avec admins existants`,setupCompleted:`Configuration terminée`,enterBothCredentials:`Entrez les deux ou laissez vide pour utiliser les admins existants`,passwordsDoNotMatch:`Les mots de passe ne correspondent pas`,passwordTooShort:`Minimum 6 caractères`}},changePassword:{title:`Changer le mot de passe`,currentPassword:`Mot de passe actuel`,currentPasswordPlaceholder:`Entrez mdp actuel`,newPassword:`Nouveau mot de passe`,newPasswordPlaceholder:`Nouveau mdp (min 6 char)`,confirmPassword:`Confirmer nouveau mdp`,confirmPasswordPlaceholder:`Confirmez nouveau mdp`,passwordsDoNotMatch:`Les mots de passe ne correspondent pas`,passwordTooShort:`Minimum 6 caractères`,changing:`Changement...`,success:`Mot de passe modifié`,failed:`Échec modification`},plateAlert:{title:`Impression en Pause !`,message:`Objets détectés sur le plateau. L'impression a été suspendue automatiquement. Videz le plateau avant de reprendre.`,understand:`J'ai compris`},camera:{title:`Vue Caméra`,invalidPrinterId:`ID imprimante invalide`,live:`Direct`,snapshot:`Instantané`,restartStream:`Redémarrer le flux`,refreshSnapshot:`Rafraîchir l'image`,fullscreen:`Plein écran`,exitFullscreen:`Quitter plein écran`,connectingToCamera:`Connexion caméra...`,capturingSnapshot:`Capture...`,connectionLost:`Connexion perdue`,connectionFailed:`Échec connexion caméra`,reconnecting:`Reconnexion dans {{countdown}}s... (essai {{attempt}}/{{max}})`,reconnectNow:`Reconnexion immédiate`,cameraUnavailable:`Caméra indisponible`,cameraUnavailableDesc:`Vérifiez que l'imprimante est allumée.`,noCamera:`Aucune caméra disponible`,retry:`Réessayer`,cameraStream:`Flux caméra`,zoomOut:`Zoom arrière`,zoomIn:`Zoom avant`,resetZoom:`Réinitialiser zoom`,recording:`Enregistrement`,startRecording:`Démarrer l'enregistrement`,stopRecording:`Arrêter l'enregistrement`,chamberLight:`Basculer lumière chambre`,unavailable:`Caméra indisponible`,diagnose:{button:`Diagnostic`,modalTitle:`Diagnostic de la caméra`,running:`Diagnostic en cours...`,runFailed:`Impossible d'exécuter le diagnostic : {{error}}`,retry:`Relancer`,stage:{tcp_reachable:`Accessibilité réseau`,first_frame:`Capture d'image`,live_stream_active:`Flux en direct actif`},summary:{all_ok:`La caméra fonctionne. Toutes les étapes du diagnostic ont réussi.`,live_stream_active_healthy:`La caméra diffuse actuellement avec des images récentes — aucun test nécessaire.`,printer_unreachable:`L'imprimante n'est pas joignable. Vérifiez l'adresse IP, la connexion réseau et que l'imprimante est allumée.`,camera_port_closed:`L'imprimante répond mais le port de la caméra est fermé. Assurez-vous que le mode LAN et le mode développeur sont activés dans les paramètres de l'imprimante.`,no_frame:`Connexion à la caméra établie mais aucune image reçue. Réessayez ou vérifiez que la caméra est activée dans les paramètres de l'imprimante.`,unknown_failure:`Le diagnostic de la caméra a échoué pour une raison inconnue. Consultez le journal de support pour plus de détails.`},meta:{protocol:`Protocole`,port:`Port`,profile:`Profil`}}},groups:{title:`Gestion des Groupes`,subtitle:`Gérez les permissions pour le contrôle d'accès`,backToSettings:`Retour aux paramètres`,createGroup:`Créer un groupe`,noPermission:`Accès refusé.`,system:`Système`,noDescription:`Pas de description`,usersCount:`{{count}} utilisateurs`,permissionsCount:`{{count}} permissions`,edit:`Modifier`,delete:`Supprimer`,toast:{created:`Groupe créé`,updated:`Groupe mis à jour`,deleted:`Groupe supprimé`,enterGroupName:`Entrez un nom de groupe`},modal:{editGroup:`Modifier le groupe`,createGroup:`Créer un groupe`,cancel:`Annuler`,saving:`Enregistrement...`,creating:`Création...`,saveChanges:`Enregistrer`},form:{groupName:`Nom du groupe`,groupNamePlaceholder:`Nom du groupe`,systemGroupWarning:`Les groupes système sont fixes`,description:`Description`,descriptionPlaceholder:`Description (optionnel)`,permissions:`Permissions ({{count}} sélectionnées)`},deleteModal:{title:`Supprimer le groupe`,message:`Les utilisateurs de ce groupe perdront ces permissions.`,confirm:`Supprimer`},editor:{title:`Modifier le groupe`,createTitle:`Créer un groupe`,search:`Rechercher des permissions...`,selectAll:`Tout sélectionner`,clearAll:`Tout désélectionner`,permissionsSelected:`{{count}} sélectionnée(s)`,noResults:`Aucune permission ne correspond à votre recherche`,websocketHint:`Requis pour les mises à jour en direct. Sans cette permission, l'interface bascule sur une actualisation périodique.`}},users:{title:`Gestion des Utilisateurs`,subtitle:`Gérez les accès à Bambuddy`,backToSettings:`Retour aux paramètres`,createUser:`Créer un utilisateur`,noPermission:`Accès refusé.`,admin:`Administrateur`,noGroups:`Aucun groupe`,active:`Actif`,inactive:`Inactif`,edit:`Modifier`,delete:`Supprimer`,system:`Système`,noGroupsAvailable:`Aucun groupe disponible`,table:{username:`Utilisateur`,groups:`Groupes`,status:`Statut`,actions:`Actions`},toast:{created:`Utilisateur créé`,updated:`Utilisateur mis à jour`,deleted:`Utilisateur supprimé`,fillRequired:`Remplissez les champs requis`,passwordsDoNotMatch:`Les mots de passe ne correspondent pas`,passwordTooShort:`Minimum 6 caractères`,ldapProvisioned:`Utilisateur LDAP "{{username}}" provisionné`},modal:{createUser:`Créer utilisateur`,editUser:`Modifier utilisateur`,cancel:`Annuler`,creating:`Création...`,saving:`Enregistrement...`,saveChanges:`Enregistrer`,advancedAuthSubtitle:`avec Authentification Avancée`,tabsAriaLabel:`Source utilisateur`,localTab:`Local`,ldapTab:`LDAP`,ldapSearchLabel:`Rechercher dans l'annuaire`,ldapSearchPlaceholder:`Tapez un nom d'utilisateur, un nom ou un e-mail...`,ldapMinChars:`Tapez au moins 2 caractères pour rechercher`,ldapTypeToSearch:`Commencez à taper pour rechercher dans l'annuaire LDAP`,ldapSearching:`Recherche dans l'annuaire...`,ldapNoResults:`Aucun utilisateur correspondant dans l'annuaire`,ldapSearchError:`Échec de la recherche dans l'annuaire. Vérifiez l'état du serveur LDAP.`,ldapAlreadyProvisioned:`Déjà provisionné`,ldapSelectedLabel:`Sélectionné`,ldapProvision:`Provisionner l'utilisateur`,ldapProvisioning:`Provisionnement...`,ldapErrorProvision:`Échec du provisionnement. Vérifiez l'état du serveur LDAP et réessayez.`},form:{username:`Utilisateur`,usernamePlaceholder:`Nom utilisateur`,email:`E-mail`,emailPlaceholder:`utilisateur@exemple.com`,password:`Mot de passe`,passwordPlaceholder:`Mot de passe`,confirmPassword:`Confirmer mdp`,confirmPasswordPlaceholder:`Confirmez mdp`,newPasswordPlaceholder:`Nouveau mdp`,confirmNewPasswordPlaceholder:`Confirmez nouveau mdp`,leaveBlankToKeep:`Laissez vide pour conserver l'actuel`,groups:`Groupes`,optional:`optionnel`,autoGeneratedPassword:`Un mot de passe sera généré et envoyé par email.`,passwordManagedByAdvancedAuth:`Géré par Auth Avancée. Utilisez "Réinitialiser" pour envoyer un nouveau mdp par email.`,resetPassword:`Réinitialiser le mot de passe`,resettingPassword:`Réinitialisation...`},deleteModal:{title:`Supprimer utilisateur`,message:`Cette action est irréversible.`,confirm:`Supprimer`}},streamOverlay:{title:`Superposition Flux`,invalidPrinterId:`ID invalide`,cameraStream:`Flux caméra`,progress:`Progression`,eta:`Fin estimée`,printerIdle:`Imprimante inactive`,printerOffline:`Imprimante hors ligne`,status:{printing:`Impression`,paused:`En pause`,finished:`Terminée`,failed:`Échouée`,idle:`Inactive`,unknown:`Inconnue`}},profiles:{title:`Profils`,subtitle:`Gérez vos presets slicer et calibrations Pressure Advance`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`Profils Locaux`,kprofiles:`Profils K`},orcaCloud:{connectedAs:`Connecté en tant que`,connectedShort:`Connecté à Orca Cloud`,logout:`Déconnecter`,noLogoutPermission:`Vous n'avez pas la permission de vous déconnecter`,noConnectPermission:`Vous n'avez pas la permission de vous connecter à Orca Cloud`,retry:`Réessayer`,connectButton:`Connecter Orca Cloud`,connect:{title:`Se connecter à Orca Cloud`,description:`Connectez-vous à votre compte Orca Cloud pour synchroniser vos profils de slicer dans Bambuddy.`},device:{title:`Approuver Bambuddy dans Orca Cloud`,instruction:`Ouvrez Orca Cloud et approuvez ce code. Bambuddy se connecte automatiquement dès que vous l'approuvez.`,codeLabel:`Votre code d'appairage`,openButton:`Ouvrir la page d'approbation d'Orca Cloud`,manualHint:`Ou rendez-vous sur {{url}} et saisissez le code ci-dessus.`,waiting:`En attente de votre approbation…`,cancel:`Annuler`},profiles:{title:`Vos profils Orca Cloud ({{count}})`,refresh:`Actualiser`,empty:`Aucun profil trouvé dans votre compte Orca Cloud pour le moment.`},toast:{disconnected:`Déconnecté d'Orca Cloud`},errors:{startFailed:`Impossible de démarrer la connexion à Orca Cloud.`,denied:`L'appairage a été refusé dans Orca Cloud.`,expired:`Le code d'appairage a expiré. Cliquez sur Connecter pour réessayer.`,pollFailed:`La connexion a été perdue pendant l'attente de l'approbation. Veuillez réessayer.`}},localProfiles:{title:`Profils Locaux`,subtitle:`Gérez vos presets OrcaSlicer`,import:`Importer Profils`,importDesc:`Déposez les fichiers .bbscfg, .bbsflmt, .orca_filament, .zip ou .json`,importing:`Importation...`,search:`Chercher un preset...`,noPresets:`Aucun preset local`,noSearchResults:`Aucun preset ne correspond à votre recherche`,badge:`Local`,edit:`Modifier`,delete:`Supprimer`,cancel:`Annuler`,deleteConfirmTitle:`Supprimer Preset`,deleteConfirm:`Supprimer définitivement ce preset ?`,source:`Source`,inheritsFrom:`Hérite de`,filamentType:`Type`,vendor:`Vendeur`,compatiblePrinters:`Imprimantes`,nozzleTemp:`Temp Buse`,cost:`Coût`,density:`Densité`,pressureAdvance:`Pressure Advance`,filament:`Filament`,process:`Processus`,printer:`Imprimante`,toast:{importSuccess:`{{count}} profil(s) importé(s)`,importSkipped:`{{count}} profil(s) ignoré(s) (doublons)`,importError:`{{count}} erreur(s) d'import`,deleted:`Preset supprimé`,updated:`Preset mis à jour`}},connectedAs:`Connecté en tant que`,signInExpiredTitle:`Session Bambu Cloud expirée`,signInExpiredBody:`Bambu Lab n'accepte plus le jeton enregistré. Reconnectez-vous pour rétablir les profils cloud, les imports MakerWorld et la vérification des firmwares.`,logout:`Déconnexion`,noLogoutPermission:`Pas d'autorisation de déconnexion`,failedToLoad:`Échec chargement profils`,retry:`Réessayer`,time:{justNow:`À l'instant`,minsAgo:`Il y a {{count}}m`,hoursAgo:`Il y a {{count}}h`,daysAgo:`Il y a {{count}}j`},toast:{loggedOut:`Déconnecté`},login:{title:`Connexion Bambu Cloud`,subtitle:`Synchronisez vos presets slicer`,email:`E-mail`,password:`Mot de passe`,region:`Région`,regionGlobal:`Global`,regionChina:`Chine`,verificationCode:`Code de vérification`,totpCode:`Code Authenticator`,checkEmail:`Code envoyé à {{email}}`,enterTotpHint:`Entrez le code 2FA`,accessToken:`Jeton d'accès (Access Token)`,accessTokenHint:`Collez votre jeton Bambu Cloud. Les comptes de la région Chine doivent passer par ici (liés à un numéro de téléphone — pas de connexion par e-mail). Le wiki explique comment récupérer le jeton depuis les cookies MakerWorld.`,back:`Retour`,loginButton:`Connexion`,verifyButton:`Vérifier`,setTokenButton:`Définir Jeton`,useToken:`Utiliser jeton d'accès`,useEmail:`Connexion par email`,toast:{loggedIn:`Connecté avec succès`,codeSent:`Code envoyé par email`,enterTotp:`Entrez le code Authenticator`,tokenSet:`Jeton défini`}},presets:{myPreset:`Mon preset (modifiable)`,duplicate:`Dupliquer`,editable:`Modifiable`,failedToLoadDetails:`Échec détails preset`,deleteConfirm:`Supprimer ce preset ?`,deleteWarning:`Ceci supprimera "{{name}}" de Bambu Cloud définitivement.`,noDuplicatePermission:`Pas d'autorisation duplication`,noEditPermission:`Pas d'autorisation modification`,noDeletePermission:`Pas d'autorisation suppression`,types:{filament:`Preset filament`,printer:`Preset imprimante`,process:`Preset processus`},toast:{deleted:`Preset supprimé`,created:`Preset créé`,updated:`Preset mis à jour`,duplicated:`Preset dupliqué`,fieldAdded:`Champ "{{key}}" ajouté`,exported:`Preset exporté`},baseLabel:`Base : {{name}}`,currentLabel:`Actuel : {{name}}`,newPreset:`Nouveau Preset`,editPreset:`Modifier Preset`,duplicatePreset:`Dupliquer Preset`,createNewPreset:`Créer un nouveau Preset`,customizeSettings:`Personnalisez vos réglages`,compareWithBase:`Comparer avec la base`,compare:`Comparer`,basePreset:`Preset de base`,selectBasePreset:`Choisir preset de base...`,presetName:`Nom du preset`,myCustomPreset:`Mon preset personnalisé`,inheritsFrom:`Hérite de`,dropJsonToImport:`Glissez JSON pour importer`,tabs:{common:`Commun`,allFields:`Tous les champs`},availableFields:`Champs disponibles`,searchFieldsPlaceholder:`Chercher un champ...`,noMatchingFields:`Aucun champ trouvé`,allFieldsAdded:`Tous les champs sont ajoutés`,addCustomField:`Ajouter un champ personnalisé`,yourOverrides:`Vos modifications`,noOverridesYet:`Aucune modification`,clickFieldsToAdd:`Cliquez à gauche pour ajouter`,saveAsTemplate:`Enregistrer comme modèle`,jsonTip:`Conseil : Glissez un .json pour importer les réglages`},cloudView:{searchPlaceholder:`Chercher presets...`,templates:`Modèles`,refresh:`Rafraîchir`,newPreset:`Nouveau Preset`,clearFilters:`Effacer filtres`,compareMode:`Mode Comparaison`,selectAnotherPreset:`Choisir un autre preset {{type}}`,clickTwoPresets:`Choisissez deux presets de même type`,selectFirst:`1. Sélectionner premier`,selectSecond:`2. Sélectionner second`,compareNow:`Comparer maintenant`,lastSynced:`Synchronisé :`,showingCount:`{{showing}} sur {{total}} presets`,noPresetsFound:`Aucun preset trouvé`,columns:{filament:`Filament`,process:`Processus`,printer:`Imprimante`},noFilamentPresets:`Pas de preset filament`,noProcessPresets:`Pas de preset processus`,noPrinterPresets:`Pas de preset imprimante`,filters:{type:`Type`,owner:`Propriétaire`,printer:`Imprimante`,nozzle:`Buse`,filament:`Filament`,layer:`Couche`,all:`Tous`,myPresets:`Mes Presets`,builtIn:`Inclus`,process:`Processus`},noTemplatesPermission:`Pas d'autorisation modèles`,noRefreshPermission:`Pas d'autorisation rafraîchissement`,noCreatePermission:`Pas d'autorisation création`},templates:{title:`Modèles rapides`,noTemplates:`Aucun modèle`,createFirst:`Créez-en depuis l'éditeur de preset`,typeFilter:`Type :`,deleteTitle:`Supprimer modèle`,deleteWarning:`Action irréversible`,deleteConfirm:`Supprimer "{{name}}" ?`,namePlaceholder:`Nom du modèle`,descriptionPlaceholder:`Description`,settingsJson:`Paramètres (JSON)`,fieldsCount:`{{count}} champs`,shownInModals:`Visible dans fenêtres`,hiddenInModals:`Masqué dans fenêtres`,apply:`Appliquer`,toast:{deleted:`Modèle supprimé`,updated:`Modèle mis à jour`,created:`Modèle créé`,applied:`Modèle appliqué`}}},support:{debugLoggingActive:`Débogage actif`,manageLogs:`Gérer`,collectItem7:`Connectivité et versions firmware`,collectItem8:`Statut intégrations (Spoolman, MQTT, HA)`,collectItem9:`Interfaces réseau (sous-réseaux)`,collectItem10:`Versions packages Python`,collectItem11:`Santé base de données`,collectItem12:`Détails environnement Docker`,bundleGenerating:`Génération du paquet...`,bundleStepConnection:`Vérification de la connectivité des imprimantes`,bundleStepVirtualPrinters:`Vérification de la configuration des imprimantes virtuelles`,bundleStepLogScan:`Analyse des journaux récents pour les problèmes connus`,bundleStepBuild:`Création du ZIP du paquet de support`},fileManager:{title:`Gestionnaire de fichiers`,subtitle:`Organisez vos fichiers d'impression`,uploadFiles:`Téléverser fichiers`,newFolder:`Nouveau dossier`,folderName:`Nom du dossier`,folderNamePlaceholder:`ex: Pièces Utiles`,renameFile:`Renommer fichier`,renameFolder:`Renommer dossier`,invalidFilenameChar:`Le caractère "{{char}}" n'est pas autorisé dans les noms de fichier d'impression. La carte SD de l'imprimante refuse : < > : " / \\ | ? *`,moveFiles:`Déplacer {{count}} fichier(s)`,rootNoFolder:`Racine (aucun dossier)`,current:`actuel`,linkFolder:`Lier le dossier`,linkFolderDescription:`Lier "{{name}}" à un projet ou archive.`,project:`Projet`,archive:`Archive`,noProjectsFound:`Aucun projet trouvé`,noArchivesFound:`Aucune archive trouvée`,unlink:`Délier`,link:`Lier`,dragDropFiles:`Glissez les fichiers ici`,dropFilesHere:`Déposez ici`,releaseToUpload:`Relâcher pour téléverser`,orClickToBrowse:`ou cliquez pour parcourir`,allFileTypesSupported:`Tous types supportés. ZIP extraits.`,zipFilesDetected:`ZIP détectés`,zipExtractOptions:`Choix de structure pour ZIP :`,preserveZipStructure:`Garder structure ZIP`,createFolderFromZip:`Dossier par nom du ZIP`,stlThumbnailGeneration:`Vignettes STL`,zipMayContainStl:`Extraction vignettes possible pour STL.`,thumbnailsCanBeGenerated:`Génération vignettes (peut être long).`,generateThumbnailsForStl:`Générer vignettes STL`,threemfDetected:`Fichiers 3MF détectés`,threemfExtractionInfo:`Réglages extraits auto du 3MF.`,willBeExtracted:`Sera extrait`,filesExtracted:`{{count}} fichiers extraits`,uploadComplete:`Terminé : {{succeeded}} succès`,uploadFailed:`Échec du téléversement`,zipFilesFailed:`{{count}} fichiers échoués`,uploading:`Téléversement...`,changeLink:`Modifier lien...`,linkTo:`Lier à...`,linkToProjectOrArchive:`Lier à projet ou archive`,generateThumbnail:`Générer vignette`,generateThumbnails:`Générer vignettes`,generateThumbnailsForMissing:`Vignettes STL manquantes`,gridView:`Grille`,listView:`Liste`,lowDiskSpaceWarning:`Espace disque faible`,lowDiskSpaceDetails:`{{free}} libre sur {{total}}. Seuil : {{threshold}} Go.`,files:`Fichiers`,folders:`Dossiers`,size:`Taille`,free:`Libre`,allFiles:`Tous les fichiers`,allExternal:`Externes`,externalIsEmpty:`Aucun fichier externe`,externalEmptyDescription:`Les fichiers de vos dossiers externes liés apparaîtront ici.`,wrap:`Retour ligne`,enableTextWrapping:`Activer retour ligne`,disableTextWrapping:`Désactiver retour ligne`,collapse:`Réduire`,collapseFoldersByDefault:`Réduire les dossiers par défaut`,expandFoldersByDefault:`Développer les dossiers par défaut`,folderSort:`Trier les dossiers`,folderSortByName:`Par nom`,folderSortByActivity:`Par activité récente`,dragToResizeTooltip:`Glisser pour redimensionner, double-clic reset`,searchFiles:`Chercher fichiers...`,searchSubfoldersHint:`Sous-dossiers inclus`,readme:{truncated:`Tronqué`,show:`Afficher le README`,hide:`Masquer le README`,label:`README`},tags:{title:`Étiquettes`,subtitle:`Étiquetez les fichiers pour des filtres transversaux — jouets, adapté aux enfants, PETG uniquement, etc.`,manage:`Étiquettes`,manageTitle:`Gérer le catalogue d'étiquettes`,add:`Nouvelle étiquette`,edit:`Renommer l'étiquette`,name:`Nom`,fileCount:`Fichiers`,empty:`Aucune étiquette pour le moment. Créez-en une pour commencer.`,noMatches:`Aucune étiquette correspondante.`,createPlaceholder:`ex. jouets, kid-safe, petg`,createButton:`Créer`,nameRequired:`Le nom est requis.`,searchPlaceholder:`Filtrer les étiquettes...`,created:`Étiquette créée.`,updated:`Étiquette renommée.`,deleted:`Étiquette supprimée.`,saveFailed:`Impossible d'enregistrer l'étiquette.`,deleteFailed:`Impossible de supprimer l'étiquette.`,applyFailed:`Impossible d'appliquer les étiquettes.`,applyAdd:`Ajouter des étiquettes`,applyRemove:`Retirer des étiquettes`,applyAddSuccess:`{{count}} étiquette(s) ajoutée(s) sur {{files}} fichier(s).`,applyRemoveSuccess:`{{count}} étiquette(s) retirée(s) sur {{files}} fichier(s).`,actionAdd:`Ajouter aux fichiers sélectionnés`,actionRemove:`Retirer des fichiers sélectionnés`,tagAction:`Étiqueter`,bulkTitle:`Étiqueter {{count}} fichier(s) sélectionné(s)`,bulkTooltip:`Ajouter ou retirer des étiquettes sur chaque fichier sélectionné.`,noPermission:`Vous n'avez pas la permission d'étiqueter les fichiers.`,filterLabel:`Filtré par :`,clearAll:`Tout effacer`,confirmDelete:`Supprimer l'étiquette « {{name}} » ?`,confirmDeleteMessage:`Cela supprime l'étiquette du catalogue. Les fichiers conservent leurs autres étiquettes.`,confirmDeleteInUseMessage:`Cette étiquette est sur {{count}} fichier(s). La suppression la retire de tous ; les fichiers eux-mêmes ne sont pas touchés.`,editAria:`Modifier {{name}}`,deleteAria:`Supprimer {{name}}`},allTypes:`Tous types`,prints:`Impressions`,ascending:`Croissant`,descending:`Décroissant`,showModified:`Afficher les dates de modification`,hideModified:`Masquer les dates de modification`,lastModified:`Dernière modification`,lastActivity:`Dernière activité`,resultsCount:`{{showing}} sur {{total}} fichiers`,selectAll:`Tout sélectionner`,deselectAll:`Tout désélectionner`,selected:`{{count}} sélectionnés`,adding:`Ajout...`,loadingFiles:`Chargement...`,folderIsEmpty:`Dossier vide`,noFilesYet:`Aucun fichier`,folderEmptyDescription:`Téléversez ou déplacez des fichiers ici.`,noFilesDescription:`Téléversez des fichiers pour organiser.`,noMatchingFiles:`Aucun fichier correspondant`,noMatchingFilesDescription:`Ajustez votre recherche.`,clearFilters:`Effacer filtres`,printedCount:`Imprimé {{count}}x`,uploadedBy:`Téléversé par`,deleteFolder:`Supprimer dossier`,deleteFile:`Supprimer fichier`,deleteFilesCount:`Supprimer {{count}} fichiers`,deleteFolderConfirm:`Supprimer le dossier et son contenu ?`,deleteFileConfirm:`Supprimer ce fichier ?`,deleteFilesConfirm:`Supprimer {{count}} fichiers définitivement ?`,deleting:`Suppression...`,noPermissionRenameFolder:`Pas d'autorisation renommage`,noPermissionLinkFolder:`Pas d'autorisation lien`,noPermissionDeleteFolder:`Pas d'autorisation suppression dossier`,onlyEmptyFoldersDeletable:`Vous ne pouvez supprimer que les dossiers vides`,noPermissionPrint:`Pas d'autorisation impression`,noPermissionSlice:`Vous n'avez pas la permission de découper des fichiers`,noPermissionAddToQueue:`Pas d'autorisation file`,noPermissionDownload:`Pas d'autorisation téléchargement`,noPermissionRenameFile:`Pas d'autorisation renommage fichier`,noPermissionGenerateThumbnail:`Pas d'autorisation vignettes`,noPermissionDeleteFile:`Pas d'autorisation suppression fichier`,noPermissionCreateFolder:`Pas d'autorisation nouveau dossier`,noPermissionUpload:`Pas d'autorisation téléversement`,noPermissionMoveFiles:`Pas d'autorisation déplacement`,noPermissionDeleteFiles:`Pas d'autorisation suppression groupée`,linkExternal:`Lier externe`,linkExternalFolder:`Lier un dossier externe`,linkExternalFolderDescription:`Monter un répertoire hôte (NAS, USB, partage réseau) dans le gestionnaire de fichiers. Les fichiers ne sont pas copiés — ils sont lus directement depuis le chemin d'origine.`,externalFolderNamePlaceholder:`ex. Impressions NAS`,externalPath:`Chemin hôte`,externalPathHelp:`Chemin absolu du répertoire sur l'hôte Docker. Doit être monté en bind dans le conteneur.`,readOnly:`Lecture seule`,readOnlyHelp:`empêche les téléversements et suppressions`,showHiddenFiles:`Afficher les fichiers cachés (fichiers point)`,externalFolder:`Dossier externe`,scanFolder:`Scanner`,toast:{folderCreated:`Dossier créé`,folderDeleted:`Dossier supprimé`,fileDeleted:`Fichier supprimé`,filesDeleted:`{{count}} fichiers supprimés`,filesMoved:`Fichiers déplacés`,folderLinked:`Dossier lié`,folderUnlinked:`Dossier délié`,externalFolderLinked:`Dossier externe lié et scanné`,folderScanned:`Scan terminé : {{added}} ajoutés, {{removed}} supprimés`,addedToQueue:`{{count}} fichier(s) ajouté(s)`,addedToQueuePartial:`{{added}} ajoutés, {{failed}} échecs`,failedToAddToQueue:`Échec ajout file : {{error}}`,fileRenamed:`Fichier renommé`,folderRenamed:`Dossier renommé`,thumbnailsGenerated:`{{count}} vignette(s) générée(s)`,thumbnailsGeneratedPartial:`{{succeeded}} succès, {{failed}} échecs`,noStlMissingThumbnails:`Aucun STL sans vignette`,failedToGenerateThumbnails:`Échec vignettes : {{error}}`,thumbnailGenerated:`Vignette générée`,failedToGenerateThumbnail:`Échec vignette : {{error}}`}},projects:{title:`Projets`,subtitle:`Suivez vos projets d'impression 3D`,newProject:`Nouveau Projet`,editProject:`Modifier Projet`,deleteProject:`Supprimer Projet`,projectName:`Nom du Projet`,description:`Description`,noProjects:`Aucun projet`,noProjectsFiltered:`Aucun projet {{status}}`,noProjectsFilteredHelp:`Vous n'avez aucun projet "{{status}}". Les projets apparaîtront ici lorsque leur statut changera.`,createFirst:`Créez votre premier projet pour organiser vos builds.`,createFirstButton:`Créer votre premier projet`,create:`Créer`,files:`Fichiers`,prints:`Impressions`,plates:`plateaux`,parts:`pièces`,lastModified:`Modifié le`,deleteConfirm:`Supprimer ce projet ? Les archives seront déliées mais conservées.`,addFiles:`Ajouter fichiers`,removeFile:`Retirer fichier`,viewDetails:`Détails`,namePlaceholder:`ex: Build Voron 2.4`,descriptionPlaceholder:`Description optionnelle...`,urlLabel:`URL`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`L'URL doit commencer par http:// ou https://`,openExternalUrl:`Ouvrir l’URL du projet`,coverImageLabel:`Photo de couverture`,coverImageAlt:`Photo de couverture du projet`,coverImageUpload:`Téléverser`,coverImageReplace:`Remplacer`,coverImageRemove:`Supprimer`,color:`Couleur`,targetPlates:`Plateaux cibles`,targetPlatesPlaceholder:`ex: 25`,targetPlatesHelp:`Nombre total de jobs`,targetParts:`Pièces cibles`,targetPartsPlaceholder:`ex: 150`,targetPartsHelp:`Nombre total d'objets`,targetSets:`Copies par fichier`,targetSetsPlaceholder:`ex. 10`,targetSetsHelp:`Nombre d'impressions de chaque fichier imprimable`,tagsLabel:`Tags (séparés par virgules)`,tagsPlaceholder:`ex: voron, cadeau`,dueDate:`Échéance`,priority:`Priorité`,priorityLow:`Basse`,priorityNormal:`Normale`,priorityHigh:`Haute`,priorityUrgent:`Urgente`,statusActive:`Actif`,statusCompleted:`Terminé`,statusArchived:`Archivé`,done:`Fait`,completed:`terminé`,failed:`échoué`,inQueue:`en file`,noPrintsYet:`Aucune impression`,printJobs:`Jobs (plateaux)`,partsPrinted:`Pièces imprimées`,failedParts:`Pièces échouées`,import:`Importer`,export:`Exporter`,importProject:`Importer projet`,exportAll:`Exporter tous les projets`,loading:`Chargement des projets...`,noEditPermission:`Pas d'autorisation de modification`,noDeletePermission:`Pas d'autorisation de suppression`,noCreatePermission:`Pas d'autorisation de création`,noImportPermission:`Pas d'autorisation d'import`,noExportPermission:`Pas d'autorisation d'export`,toast:{created:`Projet créé`,updated:`Projet mis à jour`,deleted:`Projet supprimé`,imported:`Projet importé`,multipleImported:`{{count}} projets importés`,importFailed:`Échec d'import`,exported:`Projets exportés (métadonnées)`}},projectDetail:{notFound:`Projet non trouvé`,backToProjects:`Retour aux Projets`,export:`Exporter`,exportProject:`Exporter projet`,noExportPermission:`Pas d'autorisation export`,noEditPermission:`Pas d'autorisation modification`,partOf:`Fait partie de :`,priorityLabel:`Priorité :`,noPrints:`Aucune impression dans ce projet`,status:{active:`Actif`,completed:`Terminé`,archived:`Archivé`},priority:{low:`Basse`,normal:`Normale`,high:`Haute`,urgent:`Urgente`},dueDate:{overdue:`En retard`,today:`Aujourd'hui`,daysLeft:`{{count}} jours restants`},progress:{platesProgress:`Progression Plateaux`,partsProgress:`Progression Pièces`,setsProgress:`Jeux complets`,sets:`jeux`,setsHint:`Un jeu est complet quand chaque fichier imprimable atteint ce nombre`,printJobs:`jobs d'impression`,parts:`pièces`,percentComplete:`{{percent}}% terminé`,remaining:`{{count}} restant(s)`},stats:{printJobs:`Jobs d'Impression`,total:`total`,failed:`{{count}} échecs`,partsPrinted:`{{count}} pièces imprimées`,printTime:`Temps d'Impression`,filamentUsed:`Filament utilisé`},cost:{title:`Suivi des coûts`,filamentCost:`Coût Filament`,energy:`Énergie`,totalCost:`Coût Total`,total:`Total`,includesBom:`BOM incluse`,budget:`Budget`,remaining:`Restant`},subProjects:{title:`Sous-projets ({{count}})`},notes:{title:`Notes`,noEditPermission:`Pas d'autorisation modification`,placeholder:`Ajouter des notes...`,empty:`Aucune note. Cliquez sur modifier.`},files:{title:`Fichiers`,linkFolders:`Liez des dossiers depuis le gestionnaire`,forQuickAccess:`pour un accès rapide.`,fileCount:`{{count}} fichier(s)`,empty:`Aucun dossier lié.`,printedCount:`Imprimé {{count}} fois`,progressTooltip:`{{done}} sur {{target}} impressions terminées`,noFiles:`Aucun fichier dans ce dossier.`},bom:{title:`BOM (Liste matériel)`,acquired:`{{completed}}/{{total}} acquis`,showAll:`Tout afficher`,hideDone:`Masquer acquis`,addPart:`Ajouter matériel`,noAddPermission:`Pas d'autorisation ajout`,partNamePlaceholder:`Nom (ex: Vis M3x8)`,partName:`Nom de pièce`,qty:`Qté`,price:`Prix ({{currency}})`,sourcingUrlPlaceholder:`Lien d'achat (optionnel)`,remarksPlaceholder:`Remarques (optionnel)`,deletePart:`Supprimer pièce`,deleteConfirm:`Supprimer "{{name}}" ?`,noUpdatePermission:`Pas d'autorisation mise à jour`,noEditPermission:`Pas d'autorisation modification`,noDeletePermission:`Pas d'autorisation suppression`,totalCost:`Coût total :`,empty:`BOM vide. Ajoutez du matériel ou de l'électronique.`},timeline:{title:`Historique d'activité`,empty:`Aucune activité.`},template:{saveAsTemplate:`Enregistrer comme modèle`,noCreatePermission:`Pas d'autorisation modèle`},queue:{title:`File d'attente`,viewAll:`Tout voir`,printing:`{{count}} en cours`,queued:`{{count}} en file`},prints:{title:`Impressions ({{count}})`},toast:{projectUpdated:`Projet mis à jour`,partAdded:`Pièce ajoutée`,partRemoved:`Pièce retirée`,exportFailed:`Échec export`,projectExported:`Projet exporté`,templateCreated:`Modèle créé`}},system:{title:`Informations Système`,version:`Version`,uptime:`Temps de fonctionnement`,cpuUsage:`Utilisation CPU`,memoryUsage:`Utilisation RAM`,diskUsage:`Utilisation Disque`,networkInfo:`Infos Réseau`,logs:`Journaux`,debugMode:`Mode Débogage`,enableDebug:`Activer débogage`,disableDebug:`Désactiver débogage`,downloadLogs:`Télécharger logs`,clearLogs:`Effacer logs`,dockerInfo:`Infos Docker`,containerName:`Nom conteneur`,imageName:`Nom image`,platform:`Plateforme`,architecture:`Architecture`},sponsors:{sectionTitle:`Indépendant & financé par la communauté`,tagline:`Bambuddy est gratuit et le reste parce que des personnes choisissent de le soutenir. Pas de VC, pas de verrouillage cloud.`,viewSupporters:`Voir les soutiens`,toastPrints:`Tu as terminé {{count}} impressions avec Bambuddy. Bambuddy reste gratuit grâce à ceux qui le soutiennent.`,toastCost:`Tu as suivi {{total}} de filament avec Bambuddy. Vois qui garde le projet indépendant.`,toastArchives:`{{count}} impressions archivées avec Bambuddy. Vois qui le garde indépendant.`,toastAnniversary:`Un an avec Bambuddy ! Vois qui garde le projet indépendant.`,toastVersionUpdate:`Mis à jour vers v{{version}}. Bambuddy reste gratuit grâce à ceux qui le soutiennent.`,toastBusiness:`Vous utilisez Bambuddy sur {{count}} imprimantes ? Il existe une offre de support pour les équipes : corrections prioritaires, facturation et contact direct avec le mainteneur.`,businessCta:`Bambuddy pour les entreprises`,businessTitle:`Bambuddy pour les entreprises`,businessTagline:`Vous gérez {{count}} imprimantes. Support prioritaire, licences commerciales et facturation sont disponibles pour les équipes et les fermes d'impression.`},library:{title:`Bibliothèque Filament`,addFilament:`Ajouter Filament`,editFilament:`Modifier Filament`,deleteFilament:`Supprimer Filament`,vendor:`Vendeur`,material:`Matériau`,color:`Couleur`,kFactor:`Facteur K`,temperature:`Température`,noFilaments:`Bibliothèque vide`,deleteConfirm:`Supprimer ce filament ?`,importFromPrinter:`Importer de l'imprimante`,exportToFile:`Exporter vers fichier`,runWithPipeline:{actionLabel:`Exécuter avec un pipeline`,noPermission:`Vous n'avez pas la permission d'exécuter des pipelines`,modalTitle:`Exécuter avec un pipeline`,confirmTitle:`Confirmer l'exécution`,confirmIntro:`Le pré-vol a trouvé des problèmes avec cette exécution`,sourceHint:`Source`,pipelineHint:`Pipeline`,targetHint:`Cible`,pipelineListAria:`Pipelines disponibles`,runAnyway:`Exécuter quand même`,loading:`Chargement…`,empty:`Aucun pipeline enregistré pour le moment. Ouvrez le dialogue Trancher et cliquez sur « Enregistrer comme pipeline » pour en créer un.`,noTarget:`Aucune imprimante cible définie`,noTargetMessage:`Ce pipeline n'a pas d'imprimante cible. Ouvrez-le dans les Paramètres pour en choisir une.`,copies:`Copies`,copiesHint:`max {{n}}`,classTarget:`N'importe quel {{model}}`,toast:{started:`Exécution de pipeline démarrée`,failed:`Impossible de démarrer l'exécution`},issue:{printerNotSet:`Aucune imprimante cible définie pour ce pipeline.`,printerNotFound:`L'imprimante cible n'existe plus.`,printerDisabled:`L'imprimante cible est désactivée.`,printerOffline:`L'imprimante cible est hors ligne.`,filamentType:`Emplacement filament {{slot}} : attendu {{expected}}, AMS a {{actual}}`,filamentColor:`Emplacement filament {{slot}} : couleur différente (attendu {{expected}}, AMS a {{actual}})`,amsSlotMissing:`Emplacement AMS {{slot}} indisponible sur cette imprimante`,filamentUnverified:`L'emplacement filament {{slot}} provient d'un préréglage cloud / standard et n'a pas pu être vérifié statiquement.`,noClassMatches:`Aucune imprimante de cette installation ne correspond à la classe de modèle cible du pipeline ({{expected}}).`,classNotSet:`La cible du pipeline est une classe d'imprimante mais aucun modèle n'a été choisi.`}}},slice:{title:`Slicer le modèle`,action:`Slicer`,actionAll:`Slicer les {{count}} plateaux`,actionAllTitle:`Slicer tous les plateaux dans une sortie multi-plateaux (une seule archive). La sélection de filament couvre chaque emplacement défini par le projet.`,allPlatesToggle:`Slicer les {{count}} plateaux`,slicing:`Découpage…`,printer:`Profil d'imprimante`,process:`Profil de processus`,filament:`Profil de filament`,filamentSlot:`Filament {{index}} – {{type}}`,selectPreset:`— Sélectionner un préréglage —`,loadingPresets:`Chargement des préréglages…`,analyzingPlateFilaments:`Analyse des filaments de la plaque…`,analyzingPlateFilamentsHint:`Exécution d'un découpage d'aperçu pour identifier les emplacements AMS utilisés. Mis en cache après — la réouverture est instantanée.`,previewToast:`Analyse de {{name}} – {{elapsed}}`,previewWithProgress:`Analyse de {{name}} – {{stage}} ({{percent}} %) – {{elapsed}}`,notUsedByPlate:`— non utilisé par cette plaque`,noPresetsForSlot:`Aucun préréglage disponible`,otherPrinters:`Autres imprimantes`,presetsLoadFailed:`Échec du chargement des préréglages. Ouvrez Paramètres → Profils pour les importer d'abord.`,refreshPresets:`Actualiser`,refreshPresetsTitle:`Actualiser les préréglages — récupérer les dernières listes Cloud et bundle (à utiliser après avoir supprimé un préréglage dans Bambu Studio ou Bambu Handy)`,allPresetsRequired:`Tous les préréglages doivent être sélectionnés`,useEmbedded:`Utiliser les réglages intégrés du fichier`,useEmbeddedHint:`Slicer tel que le concepteur l'a configuré (parois, remplissage, filament) au lieu des profils ci-dessus. Proposé car votre imprimante correspond à celle du fichier.`,designSettings:`Conserver les réglages du concepteur`,designSettingsHint:`Ce fichier modifie {{count}} réglage(s) d'impression par rapport au profil standard.`,designSettingsSelected:`{{selected}} sur {{total}} sélectionnés`,designSettingsPrinterCoupled:`spécifique à l'imprimante`,designSettingsPrinterCoupledHint:`Réglé pour l'imprimante visée par le fichier — peut être incorrect ou hors plage sur la vôtre.`,enqueuing:`Envoi du travail de découpage…`,queued:`En file d'attente…`,failed:`Échec du découpage. Vérifiez les journaux du sidecar.`,startedToast:`Découpage de {{name}} en arrière-plan…`,queuedToast:`En attente : {{name}} – {{elapsed}}`,runningToast:`Découpage {{name}} – {{elapsed}}`,runningWithProgress:`{{name}} – {{stage}} ({{percent}} %) – {{elapsed}}`,runningWithProgressMultiPlate:`Plateau {{plateIndex}} sur {{plateCount}} • {{name}} – {{stage}} ({{percent}} %) – {{elapsed}}`,completedToast:`{{name}} découpé`,failedTitle:`Échec du découpage`,failedToast:`Échec du découpage de {{name}} : {{detail}}`,tier:{local:`Importé`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`Standard`},cloud:{notAuthenticated:`Connectez-vous à Bambu Cloud (Paramètres → Profils → Bambu Cloud) pour voir vos préréglages cloud.`,expired:`Session Bambu Cloud expirée – reconnectez-vous pour actualiser vos préréglages cloud.`,unreachable:`Bambu Cloud est inaccessible. Les préréglages locaux et standards fonctionnent encore.`},orcaCloud:{notAuthenticated:`Connectez-vous à Orca Cloud (Profils → Orca Cloud) pour voir vos préréglages Orca.`,expired:`Session Orca Cloud expirée — reconnectez-vous pour actualiser vos préréglages Orca.`,unreachable:`Orca Cloud est indisponible pour le moment. Les autres préréglages fonctionnent toujours.`},bedType:{label:`Plateau d'impression`,auto:`Auto (utiliser le préréglage de processus)`,coolPlate:`Cool Plate`,coolPlateSuperTack:`Cool Plate SuperTack`,engineering:`Engineering Plate`,highTemp:`High Temp Plate`,texturedPEI:`Textured PEI Plate`,smoothPEI:`Smooth PEI Plate`},pipelines:{label:`Pipeline`,applyAria:`Appliquer le pipeline`,applyPrompt:`Appliquer un pipeline…`,empty:`Aucun pipeline enregistré`,saveButton:`Enregistrer comme pipeline`,saveTitle:`Enregistrer la sélection actuelle des quatre emplacements comme pipeline réutilisable`,namePlaceholder:`Nom du pipeline`,nameAria:`Nouveau nom de pipeline`,toast:{applied:`« {{name}} » appliqué`,saved:`Pipeline enregistré`,saveFailed:`Échec de l'enregistrement`}}},spoolman:{title:`Intégration Spoolman`,enabled:`Spoolman Activé`,url:`URL Spoolman`,connected:`Connecté`,disconnected:`Non Connecté`,testConnection:`Tester connexion`,sync:`Synchroniser`,syncing:`Sync...`,lastSync:`Dernière Sync`,linkToSpoolman:`Lier à Spoolman`,openInSpoolman:`Ouvrir Spoolman`,unlinkSpool:`Délier bobine`,unlinkConfirmTitle:`Désassigner la bobine ?`,unlinkConfirmMessage:`Cela retirera la bobine de cet emplacement. Les données de la bobine elles-mêmes resteront inchangées.`,selectSpool:`Choisir bobine`,noUnlinkedSpools:`Pas de bobine libre`,linkSuccess:`Bobine assignée avec succès`,linkFailed:`Échec de l’assignation`,unlinkSuccess:`Bobine désassignée avec succès`,unlinkFailed:`Échec du désassignement`,linkedSpool:`Bobine assignée`,spoolId:`ID Bobine`,fillSourceLabel:`(Spoolman)`,weight:`Poids`,remaining:`Restant`,disableWeightSync:`Désactiver Sync poids estimé AMS`,disableWeightSyncDesc:`Ne pas utiliser les estimations AMS. Utile si vous préférez le suivi Spoolman.`,reportPartialUsage:`Rapporter consommation partielle pour échecs`,reportPartialUsageDesc:`Si l'impression échoue, rapporte le filament consommé selon les couches.`},locations:{title:`Emplacements de stockage`,subtitle:`Gérez étagères, tiroirs et autres emplacements physiques pour vos bobines`,add:`Ajouter un emplacement`,addShort:`Ajouter`,edit:`Modifier l'emplacement`,name:`Nom`,spools:`Bobines`,empty:`Aucun emplacement de stockage. Créez votre première étagère ou tiroir.`,manage:`Emplacements`,createPlaceholder:`ex. Étagère A, Tiroir 1`,nameRequired:`Le nom de l'emplacement est requis`,created:`Emplacement créé`,updated:`Emplacement mis à jour`,deleted:`Emplacement supprimé`,saveFailed:`Échec de l'enregistrement de l'emplacement`,deleteFailed:`Échec de la suppression de l'emplacement`,deleteBlocked:`Retirez d'abord toutes les bobines de cet emplacement`,confirmDelete:`Supprimer « {{name}} » ?`,confirmDeleteMessage:`Cet emplacement sera retiré du catalogue. Déplacez d'abord les bobines.`},inventory:{title:`Inventaire de Bobines`,subtitle:`Gérez vos bobines`,addToInventory:`Ajouter à l'inventaire`,addToInventoryPending:`Ajout...`,addToInventorySuccess:`Bobine ajoutée à l'inventaire`,addToInventoryFailed:`Échec de l'ajout de la bobine à l'inventaire`,unknownSpoolTitle:`Nouveau filament détecté`,unknownSpoolMessage:`Une bobine avec un tag RFID inconnu a été détectée à {{location}}. L'ajouter à votre inventaire maintenant ?`,unknownSpoolSlot:`Emplacement`,bulk:{selectAllVisible:`Tout sélectionner (visible)`,selectRow:`Sélectionner la ligne`,selectGroup:`Sélectionner le groupe`,selectionCount:`{{count}} sélectionnée(s)`,edit:`Modifier`,printLabels:`Imprimer les étiquettes`,resetUsage:`Réinitialiser l'utilisation`,restore:`Restaurer`,archive:`Archiver`,delete:`Supprimer`,clearSelection:`Effacer la sélection`,editTitle:`Modification groupée des bobines`,editSubtitle:`S'applique à {{count}} bobines sélectionnées. Seuls les champs cochés seront mis à jour.`,editHint:`Tapez dans un champ pour le marquer comme à mettre à jour — seules les lignes cochées sont envoyées. Un champ laissé vide laisse les bobines inchangées (vider un champ se fait par bobine).`,useCustom:`Utiliser « {{value}} »`,toggleField:`Activer la mise à jour de ce champ`,changeCount:`{{count}} champ(s) seront mis à jour.`,applyPending:`Application...`,applyButton:`Appliquer à {{count}} bobines`,deleteTitle:`Supprimer les bobines sélectionnées`,archiveTitle:`Archiver les bobines sélectionnées`,restoreTitle:`Restaurer les bobines sélectionnées`,resetUsageTitle:`Réinitialiser l'utilisation des bobines sélectionnées`,deleteMessage:`Supprimer définitivement {{count}} bobines ? Cette action est irréversible.`,archiveMessage:`Archiver {{count}} bobines ? Elles pourront être restaurées plus tard.`,restoreMessage:`Restaurer {{count}} bobines archivées ?`,resetUsageMessage:`Réinitialiser le compteur « Total consommé » sur {{count}} bobines ? Le poids restant est préservé.`,updateSuccess:`{{count}} bobines mises à jour`,updateFailed:`Mise à jour groupée échouée`,updatePartial:`{{ok}} bobines mises à jour, {{failed}} échouées`,updateAllFailed:`Les {{count}} mises à jour ont échoué — la sélection est conservée pour réessayer`,deleteSuccess:`{{count}} bobines supprimées`,deleteFailed:`Suppression groupée échouée`,deletePartial:`{{ok}} bobines supprimées, {{failed}} échouées`,deleteAllFailed:`Les {{count}} suppressions ont échoué — la sélection est conservée pour réessayer`,archiveSuccess:`{{count}} bobines archivées`,archiveFailed:`Archivage groupé échoué`,archivePartial:`{{ok}} bobines archivées, {{failed}} échouées`,archiveAllFailed:`Les {{count}} archivages ont échoué — la sélection est conservée pour réessayer`,restoreSuccess:`{{count}} bobines restaurées`,restoreFailed:`Restauration groupée échouée`,restorePartial:`{{ok}} bobines restaurées, {{failed}} échouées`,restoreAllFailed:`Les {{count}} restaurations ont échoué — la sélection est conservée pour réessayer`,invalidHex:`Saisissez 6 caractères hex (RRVVBB) ou 8 (RRVVBBAA). Sinon le champ ne sera pas appliqué.`},spoolmanMixedContentTitle:`Spoolman ne peut pas se charger en HTTPS — contenu mixte bloqué par votre navigateur`,spoolmanMixedContentBody:`Bambuddy est servi en HTTPS (via votre reverse proxy), mais votre URL Spoolman est encore en HTTP. Les navigateurs bloquent le contenu mixte pour des raisons de sécurité, donc l'interface Spoolman intégrée ne peut pas s'afficher. Spoolman doit être accessible en HTTPS.`,spoolmanMixedContentFixReverseProxy:`Placez Spoolman derrière le même reverse proxy que Bambuddy (Traefik / Nginx / Caddy) en HTTPS, puis mettez à jour l'URL Spoolman dans les Paramètres avec la nouvelle adresse HTTPS.`,spoolmanMixedContentFixOpenNewTab:`Alternative : ouvrez Spoolman dans un nouvel onglet en HTTP — les règles de contenu mixte ne s'appliquent qu'aux cadres intégrés, un onglet autonome fonctionne.`,spoolmanOpenInNewTab:`Ouvrir Spoolman dans un nouvel onglet`,labels:{title:`Imprimer étiquettes de bobines`,selectedCount:`{{count}} sélectionné`,pickSpools:`Choisissez les bobines pour lesquelles imprimer des étiquettes :`,monochrome:`Monochrome (imprimante noir et blanc)`,monochromeHint:`Supprime la pastille de couleur et élargit le texte`,searchPlaceholder:`Rechercher par nom, marque ou #ID`,filterByMaterial:`Matériau :`,allMaterials:`Tout`,selectVisible:`Sélectionner tout visible ({{count}})`,deselectVisible:`Désélectionner visible`,clearAll:`Tout effacer`,noSpoolsToShow:`Aucune bobine à afficher. Ajustez votre filtre et réessayez.`,noMatches:`Aucune bobine ne correspond à la recherche ou au filtre actuel.`,printOne:`Imprimer l'étiquette de cette bobine`,printLabels:`Imprimer les étiquettes…`,bulkTitle:`Choisissez les bobines à étiqueter parmi les {{count}} affichées`,noSpoolsTitle:`Aucune bobine à étiqueter`,error:`Impossible de générer les étiquettes : {{msg}}`,sortBy:{label:`Trier :`,id:`Par ID`,color:`Par couleur`},templates:{amsHolderSmall:{label:`Support AMS — petit (74 × 33 mm)`,hint:`Une étiquette par page ; correspond à l'étiquette imprimable du modèle MakerWorld 752566 (Support d'étiquettes pour filament AMS).`},amsHolderLarge:{label:`Support AMS — grand (75 × 55 mm)`,hint:`Une étiquette par page ; s'adapte à la variante carton du support d'étiquettes pour filament AMS. Assez d'espace pour pastille, marque, matériau, ID et QR code.`},box40x30:{label:`Étiquette boîte (40 × 30 mm)`,hint:`Une étiquette par page ; taille de rouleau DK/Brother courante, idéale pour étiqueter sachets de filament et bacs de stockage.`},box:{label:`Box label (62 × 29 mm)`,hint:`Une étiquette par page ; dimensionnée pour Brother PT/QL et petites étiquettes Dymo.`},averyL7160:{label:`Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)`,hint:`Format de feuille UE ; 21 étiquettes par page A4.`},avery5160:{label:`Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)`,hint:`Format de feuille US ; 30 étiquettes par page Letter.`}}},csv:{importButton:`Importer CSV`,exportButton:`Exporter CSV`,modalTitle:`Importer des bobines depuis un CSV`,selectFile:`Choisissez un fichier CSV ou glissez-le ici`,dragHint:`En-tête : material (requis), brand, subtype, color_name, rgba, …`,parsing:`Lecture du fichier…`,previewError:`Impossible de lire le fichier CSV`,validCount:`{{count}} valides`,errorCount:`{{count}} en erreur`,skippedCount:`{{count}} ignorées`,colRow:`Ligne`,colStatus:`Statut`,colColor:`Couleur`,colorResolved:`Couleur remplie depuis le catalogue`,colorCrossMaterial:`Couleur reprise d'un autre matériau — aucune correspondance exacte dans le catalogue`,duplicateExisting:`Une bobine avec ce matériau, cette marque et cette couleur existe déjà — elle sera tout de même importée comme une nouvelle bobine`,spoolmanHint:`En mode Spoolman, utilisez l'import/export CSV intégré de Spoolman.`,importValidRows:`Importer {{count}} lignes valides`,noValidRows:`Aucune ligne valide`,importing:`Importation…`,importSuccess:`{{count}} bobines importées`,importError:`Échec de l'importation`,exportError:`Échec de l'exportation`},addSpool:`Ajouter Bobine`,editSpool:`Modifier Bobine`,copySpool:`Copier Bobine`,material:`Matériau`,selectMaterial:`Choisir matériau...`,subtype:`Sous-type`,brand:`Marque`,searchBrand:`Chercher marque...`,useCustomBrand:`Utiliser "{{brand}}"`,useCustomMaterial:`Utiliser un matériau personnalisé : {{material}}`,suggestedOptions:`Suggérés`,allOptions:`Tous`,colorName:`Nom de couleur`,colorNamePlaceholder:`Blanc Jade, Rouge Feu...`,color:`Couleur`,hexColor:`Code Hex`,pickColor:`Choisir couleur perso`,labelWeight:`Poids net`,coreWeight:`Poids bobine vide`,searchSpoolWeight:`Chercher poids bobine...`,weightUsed:`Consommé`,currentWeight:`Poids restant`,measuredWeight:`Poids mesuré`,spoolName:`Bobine`,costPerKg:`Coût par kg`,storageLocation:`Emplacement de stockage`,storageLocationPlaceholder:`ex. Étagère A, Tiroir 1`,openInInventory:`Ouvrir dans l'inventaire`,measuredWeightError:`Le poids mesuré doit être entre {{min}}g et {{max}}g.`,slicerFilament:`Filament Slicer`,slicerFilamentName:`Nom du Preset Slicer`,slicerPreset:`Preset Slicer`,searchPresets:`Chercher presets...`,selectedPreset:`Sélectionné`,noPresetsFound:`Aucun preset trouvé`,tempOverrides:`Exceptions Température`,note:`Note`,notePlaceholder:`Notes additionnelles sur cette bobine...`,category:`Catégorie`,categoryPlaceholder:`ex. Production, Prototype, Client A`,categoryNone:`Sans catégorie`,storageLocationNone:`Aucun emplacement défini`,lowStockThresholdOverride:`Seuil bas (cette bobine)`,lowStockThresholdOverrideHelp:`Laisser vide pour utiliser le seuil global ({{global}} %).`,clearRfid:`Effacer le tag RFID`,rfidCleared:`Tag RFID effacé`,archive:`Archiver`,restore:`Restaurer`,noSpools:`Aucune bobine. Ajoutez votre première bobine pour commencer.`,noAvailableSpools:`Aucune bobine disponible. Ajoutez une bobine à votre inventaire ou désaffectez-en une d'un autre emplacement.`,kProfiles:`Profils K`,addKProfile:`Ajouter K-Profile`,assignSpool:`Assigner Bobine`,unassignSpool:`Désassigner`,assignSuccess:`Bobine assignée et slot AMS configuré`,assignPendingInsert:`Assigné. Le slot sera configuré lors de l'insertion de la bobine.`,assignFailed:`Échec assignation`,selectSpool:`Choisir une bobine pour ce slot`,assigned:`Assigné`,assigning:`Assignation...`,searchSpools:`Chercher bobines...`,showAllSpools:`Afficher toutes les bobines`,spoolmanSpools:`Bobines Spoolman`,allMaterials:`Tous Matériaux`,filterByBrand:`Filtrer par marque...`,showArchived:`Afficher archivées`,quickAdd:`Ajout rapide (Stock)`,quantity:`Quantité`,stock:`Stock`,configured:`Configuré`,spoolsCreated:`{{count}} bobines créées`,spoolsPartiallyCreated:`{{created}} sur {{total}} bobines créées (certaines ont échoué)`,spoolCreated:`Bobine créée`,spoolUpdated:`Bobine mise à jour`,spoolDeleted:`Bobine supprimée`,deepLinkSpoolNotFound:`Bobine introuvable`,deepLinkFetchFailed:`Impossible de charger la bobine — réessayez`,spoolArchived:`Bobine archivée`,spoolRestored:`Bobine restaurée`,kProfileSaveFailed:`Les paramètres de profil K n'ont pas pu être enregistrés`,syncWeightSpoolNotFound:`Bobine introuvable — elle a peut-être été supprimée`,syncWeightSpoolmanUnreachable:`Spoolman est inaccessible — réessayez plus tard`,syncWeightFailed:`Échec de la synchronisation du poids`,spoolmanUnreachable:`Spoolman est inaccessible — veuillez réessayer plus tard`,deleteSpoolNotFound:`Bobine introuvable — elle a peut-être déjà été supprimée`,deleteFailed:`Impossible de supprimer la bobine`,archiveSpoolNotFound:`Bobine introuvable — elle a peut-être déjà été supprimée`,archiveFailed:`Impossible d'archiver la bobine`,restoreSpoolNotFound:`Bobine introuvable — elle a peut-être déjà été supprimée`,restoreFailed:`Impossible de restaurer la bobine`,saveFailed:`Impossible d'enregistrer les modifications`,tagClearFailed:`Impossible de supprimer le tag`,deleteConfirm:`Supprimer définitivement cette bobine ?`,archiveConfirm:`Voulez-vous vraiment archiver cette bobine ?`,advancedSettings:`Paramètres Avancés`,filamentInfoTab:`Infos Filament`,paProfileTab:`Profil PA`,filamentInfo:`Filament`,additional:`Additionnel`,loadingPresets:`Chargement des presets cloud...`,cloudConnected:`Cloud connecté`,cloudNotConnected:`Cloud déconnecté (valeurs par défaut)`,recentColors:`Récentes`,searchColors:`Chercher couleurs...`,searchResults:`Résultats`,allColors:`Toutes`,commonColors:`Communes`,showLess:`Moins`,showAll:`Toutes`,noColorsFound:`Aucune couleur correspondante`,noResults:`Aucun résultat`,extraColorsLabel:`Couleurs supplémentaires`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`Collez 2 à 8 stops hex, séparés par des virgules. Affiché en dégradé.`,extraColorsInvalid:`Hex non valides ignorés : {{tokens}}`,colorEffectLabel:`Effet`,colorEffect:{none:`Aucun`,sparkle:`Pailleté`,wood:`Bois`,marble:`Marbre`,glow:`Lueur`,matte:`Mat`,silk:`Soie`,galaxy:`Galaxie`,rainbow:`Arc-en-ciel`,metal:`Métal`,translucent:`Translucide`,gradient:`Dégradé`,dualColor:`Bicolore`,triColor:`Tricolore`,multicolor:`Multicolore`},selectMaterialFirst:`Veuillez choisir un matériau dans l'onglet Infos Filament.`,noPrintersConfigured:`Ajoutez une imprimante pour utiliser les profils PA.`,matchingFilter:`Correspondant`,anyBrand:`Toute marque`,anyVariant:`Toute variante`,autoSelect:`Auto-sélection`,matches:`correspondances`,match:`correspondance`,noMatches:`Aucune correspondance`,connected:`Connecté`,offline:`Hors ligne`,printerOffline:`Imprimante hors ligne. Connectez-vous pour voir les profils.`,noKProfilesMatch:`Aucun profil K ne correspond au filament.`,leftNozzle:`Buse Gauche`,rightNozzle:`Buse Droite`,profilesSelected:`profil(s) de calibration sélectionné(s)`,totalInventory:`Total Inventaire`,totalConsumed:`Total Consommé`,byMaterial:`Par Matériau`,inPrinter:`Dans Imprimante`,lowStock:`Stock Bas`,sinceTracking:`Depuis le début du suivi`,resetConsumedCounter:`Réinitialiser le compteur`,resetConsumedCounterTooltip:`Remettre à zéro le compteur de grammes consommés pour cette bobine. Le poids restant n'est pas modifié.`,resetConsumedCounterConfirm:`Remettre à 0 le compteur de grammes consommés de cette bobine ? Les futures impressions repartiront de zéro. La bobine, son calcul de poids restant et vos paramètres ne sont pas modifiés.`,resetAllConsumedCounters:`Réinitialiser tous les compteurs`,resetAllConsumedCountersTooltip:`Remettre à zéro le compteur de grammes consommés sur chaque bobine. Les poids restants ne sont pas modifiés.`,resetAllConsumedCountersConfirm:`Remettre à 0 le compteur de grammes consommés sur les {{count}} bobines (archivées incluses) ? Cela efface la valeur « Total Consommé » pour que les futures impressions repartent de zéro. Les bobines et les poids restants ne sont pas modifiés.`,consumedCounterReset:`Compteur réinitialisé`,allConsumedCountersReset:`Compteur réinitialisé pour {{count}} bobine(s)`,resetConsumedCounterFailed:`Échec de la réinitialisation du compteur`,loadedInAms:`Chargé dans AMS/Ext`,remaining:`Restant`,weightCheck:`Vérification poids`,lastWeighed:`Dernière pesée`,neverWeighed:`Jamais pesé`,search:`Chercher bobines...`,showing:`Affichage`,to:`à`,of:`sur`,show:`Voir`,spools:`bobines`,spool:`bobine`,page:`Page`,noSpoolsMatch:`Aucun résultat trouvé`,noSpoolsMatchDesc:`Ajustez votre recherche ou vos filtres.`,active:`Actif`,archived:`Archivé`,all:`Tous`,used:`Occasion`,new:`Neuf`,clearFilters:`Effacer filtres`,table:`Tableau`,cards:`Cartes`,net:`Réseau`,groupSimilar:`Grouper`,groupedSpools:`{{count}} bobines identiques`,groupedRows:`lignes`,columns:`Colonnes`,configureColumns:`Configurer Colonnes`,configureColumnsDesc:`Glissez pour ordonner ou utilisez les flèches. Cliquez sur l'œil pour masquer.`,visible:`visible`,reset:`Réinitialiser`,cancel:`Annuler`,applyChanges:`Appliquer`,moveUp:`Monter`,moveDown:`Descendre`,hideColumn:`Masquer`,showColumn:`Afficher`,linkToSpool:`Lier à une Bobine`,tagLinked:`Tag lié à la bobine`,tagLinkFailed:`Échec lien tag`,tagAlreadyLinked:`Tag déjà lié à une autre bobine`,unknownTag:`Tag RFID inconnu détecté`,usageHistory:`Historique de Consommation`,noUsageHistory:`Aucune consommation enregistrée`,printName:`Nom Impression`,weightConsumed:`Poids consommé`,clearHistory:`Effacer`,historyCleared:`Historique effacé`,fillSourceLabel:`(Inv)`,lowStockThresholdError:`Le seuil doit être compris entre 0.1 et 99.9`,assignMismatchTitle:`Incompatibilité de matériau`,assignMismatchMessage:`Le matériau de la bobine sélectionnée "{{spoolMaterial}}" ne correspond pas au matériau du plateau "{{trayMaterial}}" pour {{location}}. Assigner quand même ?`,assignMismatchConfirm:`Assigner quand même`,assignPartialMismatchMessage:`Le matériau de la bobine "{{spoolMaterial}}" est similaire, mais ne correspond pas exactement à "{{trayMaterial}}" dans {{location}}. Voulez-vous continuer ?`,assignProfileMismatchMessage:`Le profil de la bobine "{{spoolProfile}}" ne correspond pas au profil du plateau "{{trayProfile}}" dans {{location}}. Voulez-vous continuer ?`,assignReconfigureNote:`Le slot AMS sera reconfiguré pour utiliser le profil de la bobine.`,spoolmanFilamentCatalog:`Catalogue de filaments Spoolman`,pickFromSpoolmanCatalog:`Choisir dans le catalogue Spoolman…`,spoolmanFilamentSelected:`Filament sélectionné depuis le catalogue Spoolman`,spoolmanFilamentUnlinked:`Lien avec le catalogue de filaments supprimé`,noSpoolmanFilaments:`Aucun filament trouvé dans le catalogue Spoolman`,spoolmanFilamentColorSwatch:`Couleur du filament`,spoolWeightManagedBySpoolman:`Le poids de la bobine vide est géré par type de filament dans Spoolman`,spoolmanCatalogLoadFailed:`Impossible de charger le catalogue Spoolman`},timelapse:{title:`Time-lapse`,create:`Créer Timelapse`,download:`Télécharger`,delete:`Supprimer`,preview:`Aperçu`,frameRate:`Images/sec`,quality:`Qualité`,processing:`Traitement...`,noTimelapses:`Aucun timelapse`},ams:{title:`AMS`,slot:`Emplacement`,empty:`Vide`,emptySlot:`Slot vide`,slotEmpty:`Vide`,slotUnconfigured:`?`,emptySlotReset:`Aucune bobine assignée`,unknown:`Inconnu`,humidity:`Humidité`,temperature:`Température`,filamentType:`Type filament`,filamentColor:`Couleur`,remaining:`Restant`,history:`Historique AMS`,noHistory:`Aucun historique`,configureSlot:`Configurer Slot`,externalSpool:`Bobine externe`,profile:`Profil`,kFactor:`Facteur K`,fill:`Remplir`,configure:`Configurer`,used:`utilisé`,remainingUnit:`restant`},printModal:{selectPrinter:`Choisir l'imprimante`,selectPlate:`Choisir le plateau`,filamentMapping:`Mapping Filament`,plateN:`Plateau {{n}}`,plateFilamentsUnreadable:`Les filaments d'un plateau sélectionné n'ont pas pu être lus, il est donc impossible de l'affecter. Désélectionnez-le pour mettre les autres en file.`,totalCost:`Coût total :`,slotRemainingShort:` - {{grams}}g rest.`,printSettings:`Réglages d'impression`,bedLeveling:`Nivellement plateau`,flowCalibration:`Calibration débit`,vibrationCalibration:`Vibration (Input Shaper)`,layerInspection:`Inspection 1ère couche`,timelapse:`Time-lapse`,cancel:`Annuler`,noPrintersAvailable:`Aucune imprimante disponible`,printerBusy:`L'imprimante est occupée`,printerOffline:`L'imprimante est hors ligne`,sameTypeDifferentColor:`Même type, couleur différente`,filamentTypeNotLoaded:`Type de filament non chargé`,whenToPrint:`Quand imprimer`,asap:`Dès que possible`,queue:`File`,schedule:`Planifier`,dateTime:`Date et heure`,invalidDateTime:`Veuillez saisir une date et une heure valides`,openCalendar:`Ouvrir calendrier`,requireManualStart:`Démarrage manuel requis`,requirePreviousSuccess:`Démarrer seulement si l'impression précédente a réussi`,autoOffAfter:`Éteindre l'imprimante à la fin`,helpAsap:`L'impression sera ajoutée en haut de la file et démarrera dès qu'une imprimante éligible sera inactive.`,helpSchedule:`L'impression démarrera à l'heure planifiée si l'imprimante est inactive. Si elle est occupée, elle attendra qu'elle soit disponible.`,helpQueue:`L'impression sera ajoutée à la fin de la file.`,leftNozzle:`G`,rightNozzle:`D`,leftNozzleTooltip:`Buse gauche`,rightNozzleTooltip:`Buse droite`,filamentOverride:`Remplacement de filament`,filamentOverrideHint:`Remplacez optionnellement les filaments pour l'affectation par modèle. Le planificateur utilisera vos filaments sélectionnés au lieu des valeurs 3MF d'origine.`,originalFilament:`Original`,overrideWith:`Remplacer par`,resetToOriginal:`Revenir à l'original`,insufficientFilamentTitle:`Filament insuffisant`,waitingForAmsStatus:`En attente de l'état de l'AMS de {{printer}}…`,insufficientFilamentMessage:`Certaines bobines assignées ont moins de filament restant que nécessaire pour cette impression :`,insufficientFilamentLine:`{{printer}} - {{slot}} : nécessite {{required}}g, restant {{remaining}}g`,printAnyway:`Imprimer quand même`,forceColorMatch:`Forcer correspondance des couleurs`,staggerPrinterStarts:`Échelonner démarrages`,staggerGroupSize:`Taille du groupe`,staggerInterval:`Intervalle (min)`,staggerPreview:`{{printers}} imprimantes → {{groups}} groupes de {{size}}, démarrage toutes les {{interval}} min`,staggerLastGroup:`dernier groupe : {{count}}`,staggerTotal:`total : {{minutes}} min`,staggerToPrinters:`Échelonner sur {{count}} imprimantes`,gcodeInjection:`Injecter le G-code auto-impression`},backup:{includesEncryptionKey:`Les sauvegardes locales incluent le fichier de clé de chiffrement MFA (DATA_DIR/.mfa_encryption_key), donc un ZIP de sauvegarde est autonome. Traitez le ZIP comme sensible — quiconque possède le fichier peut déchiffrer les secrets client OIDC et TOTP qu'il contient.`,title:`Sauvegarde & Restauration`,createBackup:`Créer Sauvegarde`,restoreBackup:`Restaurer Sauvegarde`,restoreDescription:`Remplace les données par un fichier de sauvegarde`,downloadBackup:`Télécharger Sauvegarde`,uploadBackup:`Téléverser Sauvegarde`,lastBackup:`Dernière sauvegarde`,autoBackup:`Sauvegarde auto`,backupNow:`Sauvegarder maintenant`,restoreWarning:`Attention : Écrase TOUTES les données actuelles.`,includeArchives:`Inclure Archives`,includeSettings:`Inclure Paramètres`,includeProfiles:`Inclure Profils`,backupSuccess:`Sauvegarde réussie`,restoreSuccess:`Restauration réussie`,backupFailed:`Échec sauvegarde`,restoreFailed:`Échec restauration`,restoreNote:`L'imprimante virtuelle sera arrêtée pendant la restauration`,githubBackup:`Sauvegarde GitHub`,enabled:`Activé`,cloudLoginRequired:`Connexion Bambu Cloud requise. Connectez-vous sous Profils → Profils Cloud pour activer la sauvegarde GitHub.`,cloudLoginRequiredShort:`Connexion Cloud requise`,githubDescription:`Synchronisez automatiquement vos profils vers un dépôt GitHub privé pour la sauvegarde et l'historique des versions.`,repoIsPrivate:`Le dépôt est privé — la sauvegarde peut s'y faire en toute sécurité.`,repoIsPublicWarning:`Le dépôt est PUBLIC. Les sauvegardes Bambuddy contiennent les identifiants MQTT, les jetons Home Assistant, les jetons Prometheus, votre adresse Bambu Cloud, et les codes d'accès des imprimantes via les K-profils. L'enregistrement est bloqué tant que le dépôt n'est pas passé en privé dans les paramètres de votre hébergeur.`,repoVisibilityUnknown:`Impossible de déterminer la visibilité du dépôt. Bambuddy refuse toute sauvegarde vers un dépôt non confirmé privé ; l'enregistrement sera bloqué.`,repositoryUrl:`URL du dépôt`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`Autoriser HTTP non sécurisé`,allowInsecureHttpHint:`Activer pour les instances auto-hébergées sur des réseaux privés sans TLS`,personalAccessToken:`Jeton d'accès personnel`,tokenSaved:`(enregistré)`,enterNewToken:`Entrez un nouveau jeton pour mettre à jour`,tokenHint:`Jeton à granularité fine avec permission de lecture/écriture du contenu`,branch:`Branche`,provider:`Fournisseur Git`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`Manuel uniquement`,hourly:`Toutes les heures`,daily:`Quotidien`,weekly:`Hebdomadaire`,includeInBackup:`Inclure dans la sauvegarde`,kProfiles:`K-Profils`,kProfilesDescription:`Calibration de l'avance de pression des imprimantes connectées`,noPrintersConnected:`Aucune imprimante connectée`,printersConnected:`{{connected}}/{{total}} connectées`,cloudProfiles:`Profils Cloud`,cloudProfilesDescription:`Préréglages de filament, imprimante et processus depuis Bambu Cloud`,appSettings:`Paramètres de l'application`,appSettingsDescription:`Configuration Bambuddy (base de données complète)`,spoolInventory:`Inventaire des bobines`,spoolInventoryDescription:`Bobines de filament, historique d'utilisation et suivi des coûts`,printArchives:`Archives d'impression`,printArchivesDescription:`Métadonnées de l'historique d'impression (pas de fichiers gcode/3MF)`,lastBackupAt:`Dernière sauvegarde :`,noBackupsYet:`Aucune sauvegarde pour l'instant`,next:`Prochaine :`,startingBackup:`Démarrage de la sauvegarde...`,test:`Tester`,enableBackup:`Activer la sauvegarde`,testConnection:`Tester la connexion`,enterRepoUrl:`Entrez l'URL du dépôt`,enterRepoAndToken:`Entrez l'URL du dépôt et le jeton d'accès`,repoRequired:`L'URL du dépôt est requise`,tokenRequired:`Le jeton d'accès est requis`,githubBackupEnabled:`Sauvegarde GitHub activée`,tokenUpdated:`Jeton mis à jour`,settingsSaved:`Paramètres enregistrés`,failedToSave:`Échec de l'enregistrement : {{message}}`,backupCompleteFiles:`Sauvegarde terminée - {{count}} fichiers mis à jour`,backupSkippedNoChanges:`Sauvegarde ignorée - aucun changement`,backupFailed2:`Échec de la sauvegarde : {{message}}`,clearedLogs:`{{count}} journaux supprimés`,failedToClearLogs:`Échec de la suppression des journaux : {{message}}`,history:`Historique`,clear:`Effacer`,date:`Date`,status:`Statut`,commit:`Commit`,localBackup:`Sauvegarde locale`,localBackupDescription:`Créez une sauvegarde complète de vos données Bambuddy incluant la base de données, les archives, les téléchargements et tous les fichiers.`,downloadBackupLabel:`Télécharger la sauvegarde`,completeBackupZip:`Sauvegarde complète : base de données + tous les fichiers (ZIP)`,download:`Télécharger`,preparingBackup:`Préparation de la sauvegarde...`,creatingArchive:`Création de l'archive de sauvegarde... Cela peut prendre un moment pour les archives volumineuses.`,downloadingFile:`Téléchargement du fichier de sauvegarde...`,backupDownloaded:`Sauvegarde téléchargée avec succès`,failedToCreateBackup:`Échec de la création de la sauvegarde : {{message}}`,restore:`Restaurer`,restoreReplacesAll:`La restauration remplace toutes les données.`,restoreReplacesAllDetail:`Votre base de données et vos fichiers actuels seront complètement remplacés. Un redémarrage est nécessaire après la restauration.`,restoreConfirmTitle:`Restaurer la sauvegarde`,restoreConfirmMessage:`Êtes-vous sûr de vouloir restaurer depuis "{{filename}}" ? Cela remplacera complètement votre base de données et tous vos fichiers. L'application devra être redémarrée après la restauration.`,restoreConfirmButton:`Restaurer la sauvegarde`,uploadingFile:`Téléchargement du fichier de sauvegarde...`,backupRestoredRestart:`Sauvegarde restaurée. Veuillez redémarrer Bambuddy.`,failedToRestore:`Échec de la restauration. Veuillez vérifier le format du fichier.`,reloadNow:`Recharger maintenant`,creatingBackup:`Création de la sauvegarde`,restoringBackup:`Restauration de la sauvegarde`,preparing:`Préparation...`,processing:`Traitement...`,doNotClosePage:`Veuillez ne pas fermer cette page ni naviguer ailleurs. Cette opération peut prendre plusieurs minutes pour les sauvegardes volumineuses.`,restoring:`Restauration...`,restoreComplete:`Restauration terminée`,restoreFailed2:`Échec de la restauration`,importSettings:`Importer les paramètres depuis un fichier de sauvegarde`,pleaseWaitRestoring:`Veuillez patienter pendant la restauration de vos données`,selectBackupFile:`Cliquez pour sélectionner un fichier de sauvegarde (.json ou .zip)`,duplicateHandling:`Comment fonctionne la gestion des doublons :`,matchPrinters:`Imprimantes`,matchPrintersBy:`correspondance par numéro de série`,matchSmartPlugs:`Prises connectées`,matchSmartPlugsBy:`correspondance par adresse IP`,matchNotificationProviders:`Fournisseurs de notifications`,matchNotificationProvidersBy:`correspondance par nom`,matchFilaments:`Filaments`,matchFilamentsBy:`correspondance par nom + type + marque`,matchArchives:`Archives`,matchArchivesBy:`correspondance par hash de contenu (toujours ignoré)`,matchPendingUploads:`Téléchargements en attente`,matchPendingUploadsBy:`correspondance par nom de fichier`,matchSettingsTemplates:`Paramètres et modèles`,matchSettingsTemplatesBy:`toujours écrasés`,replaceExisting:`Remplacer les données existantes`,keepExisting:`Conserver les données existantes`,overwriteDescription:`Écraser les éléments qui existent déjà avec les données de sauvegarde`,keepDescription:`Restaurer uniquement les éléments qui n'existent pas encore`,overwriteCaution:`Attention :`,overwriteWarning:`L'écrasement remplacera vos configurations actuelles par les données de la sauvegarde. Les codes d'accès des imprimantes ne sont jamais écrasés pour des raisons de sécurité.`,cancel:`Annuler`,processingBackup:`Traitement du fichier de sauvegarde...`,itemsRestored:`Éléments restaurés`,itemsSkipped:`Éléments ignorés`,restored:`Restaurés`,skippedAlreadyExist:`Ignorés (existent déjà)`,filesCategory:`Fichiers (3MF, miniatures, etc.)`,andMore:`...et {{count}} de plus`,newApiKeysGenerated:`Nouvelles clés API générées`,keysShownOnce:`Ces clés ne sont affichées qu'une seule fois. Copiez-les maintenant !`,copy:`Copier`,noDataFound:`Aucune donnée à restaurer n'a été trouvée dans le fichier de sauvegarde.`,close:`Fermer`,scheduledBackup:`Sauvegardes planifiées`,scheduledBackupDescription:`Crée automatiquement des instantanés de sauvegarde selon un planning. Le répertoire de sortie peut être monté sur un NAS ou un stockage externe.`,frequency:`Fréquence`,backupTime:`Temps`,retention:`Rétention`,retentionDescription:`Nombre de sauvegardes à conserver`,outputPath:`Chemin de sortie`,outputPathPlaceholder:`Par défaut : {{path}}`,outputPathDescription:`Laisser vide pour l'emplacement par défaut`,runNow:`Exécuter maintenant`,backupFiles:`Fichiers de sauvegarde`,noScheduledBackups:`Aucune sauvegarde`,deleteBackup:`Supprimer`,deleteBackupConfirm:`Supprimer ce fichier de sauvegarde ?`,backupRunning:`Sauvegarde en cours...`,scheduledBackupComplete:`Sauvegarde terminée avec succès`,scheduledBackupFailed:`Échec de la sauvegarde`,nextBackup:`Prochaine sauvegarde`,backupSize:`Taille`,localTimeHint:`Heure locale ({{tz}})`,defaultPathLabel:`Par défaut :`,pathCheck:{title:`Bambuddy ne peut pas écrire dans ce répertoire`,howToFix:`Comment corriger :`,sandboxed:`Le service Bambuddy ne peut pas écrire dans {{path}}. Son unité systemd s'exécute avec ProtectSystem=strict, ce qui rend tout répertoire en dehors des répertoires d'installation, de données et de journaux en lecture seule pour le service - même un répertoire dans lequel vous pouvez écrire depuis votre propre shell.`,read_only:`{{path}} se trouve sur un système de fichiers en lecture seule.`,permission_denied:`Bambuddy n'est pas autorisé à écrire dans {{path}}. Vérifiez le propriétaire et les permissions du répertoire.`,no_space:`Le système de fichiers contenant {{path}} est plein.`,not_a_directory:`{{path}} existe mais n'est pas un répertoire.`,missing:`{{path}} n'existe pas et n'a pas pu être créé.`,error:`Bambuddy ne peut pas écrire dans {{path}}.`,ephemeralTitle:`Ces sauvegardes ne survivront pas à la recréation du conteneur`,container_ephemeral:`{{path}} se trouve dans le conteneur Bambuddy, pas sur l'hôte. Les sauvegardes qui y sont écrites sont perdues à la recréation du conteneur. Montez le répertoire depuis l'hôte :`},categories:{settings:`Paramètres`,notification_providers:`Fournisseurs de notifications`,notification_templates:`Modèles de notifications`,smart_plugs:`Prises connectées`,printers:`Imprimantes`,filaments:`Filaments`,maintenance_types:`Types de maintenance`,archives:`Archives`,projects:`Projets`,pending_uploads:`Téléchargements en attente`,external_links:`Liens externes`,api_keys:`Clés API`}},tags:{title:`Étiquettes`,addTag:`Ajouter Tag`,editTag:`Modifier Tag`,deleteTag:`Supprimer Tag`,tagName:`Nom du Tag`,tagColor:`Couleur du Tag`,noTags:`Aucun tag`,deleteConfirm:`Supprimer ce tag ?`,manageTags:`Gérer les Tags`},uploadModal:{title:`Téléverser des fichiers 3MF`,dragDrop:`Glissez les fichiers .3mf ici`,or:`ou`,browseFiles:`Parcourir`,extractionInfo:`Le modèle d'imprimante est extrait des métadonnées 3MF.`,uploaded:`téléversé`,failed:`échoué`,uploading:`En cours...`,upload:`Téléverser`,uploadFailed:`Échec du téléversement`},editArchive:{title:`Modifier l'archive`,name:`Nom`,namePlaceholder:`Nom de l'impression`,printer:`Imprimante`,noPrinter:`Aucune imprimante`,project:`Projet`,noProject:`Aucun projet`,itemsPrinted:`Nombre de pièces`,itemsPrintedHelp:`Nombre d'objets produits`,notes:`Notes`,notesPlaceholder:`Notes sur l'impression...`,externalLink:`Lien externe`,externalLinkPlaceholder:`https://...`,externalLinkHelp:`Lien vers Printables, Thingiverse, etc.`,tags:`Étiquettes`,tagsPlaceholder:`Ajouter des tags...`,addMoreTags:`Plus de tags...`,matchingTags:`Correspondant à "{{query}}"`,existingTags:`Tags existants`,clickToAdd:`(cliquer pour ajouter)`,status:`Statut`,failureReason:`Raison de l'échec`,selectReason:`Choisir raison...`,photos:`Photos du résultat`,photosHelp:`Cliquez sur + pour ajouter des photos`,printResult:`Résultat d'impression`,saving:`Enregistrement...`,failureReasons:{adhesionFailure:`Défaut d'adhésion`,spaghettiDetached:`Spaghetti / Détaché`,layerShift:`Décalage de couche`,cloggedNozzle:`Buse bouchée`,filamentRunout:`Filament fini`,warping:`Warping (Déformation)`,stringing:`Stringing (Cheveux d'ange)`,underExtrusion:`Sous-extrusion`,powerFailure:`Coupure courant`,userCancelled:`Annulé par l'utilisateur`,other:`Autre`},statuses:{completed:`Réussie`,failed:`Échouée`,aborted:`Annulée`,printing:`Impression`}},kProfiles:{title:`Profils K`,noPrintersConfigured:`Aucune imprimante configurée`,addPrinterInSettings:`Ajoutez une imprimante pour gérer les K-profiles`,noActivePrinters:`Aucune imprimante active`,enablePrinterConnection:`Activez la connexion pour voir les K-profiles`,loadingProfiles:`Chargement des K-Profiles...`,printerOffline:`Imprimante hors ligne`,printerOfflineDesc:`L'imprimante doit être allumée.`,noMatchingProfiles:`Aucun profil correspondant`,noMatchingProfilesDesc:`Ajustez votre recherche`,noKProfiles:`Aucun K-Profile`,noKProfilesDesc:`Aucun profil trouvé pour une buse de {{diameter}}mm`,createFirstProfile:`Créer le premier profil`,printer:`Imprimante`,nozzle:`Buse`,refresh:`Rafraîchir`,addProfile:`Ajouter Profil`,export:`Exporter`,import:`Importer`,select:`Choisir`,selectAll:`Tout sélectionner`,delete:`Supprimer`,searchPlaceholder:`Nom ou filament...`,allExtruders:`Tous les extrudeurs`,leftOnly:`Gauche uniquement`,rightOnly:`Droite uniquement`,allFlow:`Tout débit`,hfOnly:`HF uniquement`,sOnly:`S uniquement`,sortName:`Tri : Nom`,sortKValue:`Tri : Valeur K`,sortFilament:`Tri : Filament`,leftExtruder:`Extrudeur gauche`,rightExtruder:`Extrudeur droit`,modal:{addTitle:`Ajouter K-Profile`,editTitle:`Modifier K-Profile`,profileName:`Nom du profil`,profileNamePlaceholder:`ex: Mon profil PLA`,kValue:`Valeur K`,kValuePlaceholder:`0.020`,kValueHelp:`Plage type : 0.01-0.06 (PLA), 0.02-0.10 (PETG)`,filament:`Filament`,selectFilament:`Choisir filament...`,noFilamentsHelp:`Créez d'abord un profil dans Bambu Studio.`,flowType:`Type de débit`,highFlow:`Haut Débit (HF)`,standard:`Standard`,nozzleSize:`Taille buse`,extruder:`Extrudeur`,extruders:`Extrudeurs`,left:`Gauche`,right:`Droite`,notes:`Notes (locales)`,notesPlaceholder:`Notes sur ce profil...`,notesHelp:`Enregistré dans Bambuddy, pas sur l'imprimante`,syncing:`Sync avec l'imprimante...`,savingExtruder:`Sauvegarde extrudeur {{current}}/{{total}}...`,pleaseWait:`Patientez...`},deleteConfirm:{title:`Supprimer profil`,cannotUndo:`Action irréversible`,message:`Supprimer "{{name}}" de l'imprimante ?`},bulkDelete:{title:`Supprimer les profils`,cannotUndo:`Action irréversible`,message:`Supprimer les {{count}} profils de l'imprimante ?`},toast:{profileSaved:`Profil K enregistré`,profilesSaved:`Profil K enregistré sur {{count}} extrudeur(s)`,selectAtLeastOneExtruder:`Sélectionnez un extrudeur`,profileDeleted:`Profil K supprimé`,profilesDeleted:`{{count}} profils supprimés`,exportedProfiles:`{{count}} profils exportés`,importedProfiles:`{{count}} sur {{total}} profils importés`,noProfilesToExport:`Rien à exporter`,invalidFileFormat:`Format invalide`,failedToParseImport:`Échec analyse fichier`,failedToSaveBatch:`Échec enregistrement groupé`,noteSaved:`Note enregistrée`,failedToSaveNote:`Échec note`},permission:{noRead:`Pas d'autorisation lecture`,noCreate:`Pas d'autorisation création`,noUpdate:`Pas d'autorisation mise à jour`,noDelete:`Pas d'autorisation suppression`,noExport:`Pas d'autorisation export`,noImport:`Pas d'autorisation import`}},virtualPrinter:{title:`Imprimante Virtuelle`,running:`En cours`,stopped:`Arrêtée`,description:{default:`Active une imprimante qui apparaît dans Bambu Studio. Les fichiers envoyés sont archivés sans impression.`,proxy:`Active un proxy qui relaie le trafic vers une imprimante réelle, permettant l'impression à distance.`},enable:{title:`Activer l'imprimante virtuelle`,visibleInSlicer:`Visible comme "Bambuddy" dans le Slicer`,proxyingTo:`Proxy vers {{name}}`,notActive:`Inactive`},model:{title:`Modèle d'imprimante`,description:`Choisissez le modèle à émuler.`,restartWarning:`Changer le modèle redémarrera le service`},accessCode:{title:`Code d'accès`,isSet:`Code défini`,notSet:`Code requis pour activer`,placeholder:`Code 8 char`,placeholderChange:`Entrez nouveau code`,hint:`Exactement 8 caractères. Sert à l'auth du Slicer.`,charCount:`({{count}}/8)`,inheritedFromTarget:`Hérité de l'imprimante cible`,derivedFromTargetHint:`Utilise le code d'accès de l'imprimante cible. Le pont transmet l'authentification du slicer à l'imprimante réelle, donc les codes doivent correspondre — modifiez le code dans les paramètres de l'imprimante.`,reveal:`Afficher le code d'accès`,hide:`Masquer le code d'accès`},targetPrinter:{title:`Imprimante cible`,configured:`Cible configurée`,notConfigured:`Imprimante requise pour mode Proxy`,placeholder:`Choisir imprimante...`,hint:`L'imprimante doit être en mode LAN.`,noPrinters:`Ajoutez une imprimante réelle d'abord.`},remoteInterface:{title:`Exception Interface Réseau`,configured:`Override actif`,optional:`Optionnel - si IP auto est fausse (VPN, Docker, multi-NIC).`,placeholder:`Auto (défaut)...`,hint:`Force l'IP annoncée via SSDP.`},mode:{title:`Mode`,archive:`Archiver`,archiveDesc:`Archive immédiatement`,review:`Revue`,reviewDesc:`Attendre revue avant archive`,queue:`File`,queueDesc:`Archiver et ajouter à la file`,proxy:`Proxy`,proxyDesc:`Relais vers imprimante réelle`},autoDispatch:{title:`Lancement automatique`,description:`Lancer automatiquement les impressions ajoutées à la file. Désactivé, les impressions attendent un lancement manuel.`},queueForceColorMatch:{title:`Forcer la correspondance des couleurs`,description:`Refuser l'envoi vers une imprimante qui n'a pas exactement le type de filament et la couleur chargés. Désactivé par défaut — sans cela, la file d'attente utilise uniquement la correspondance par modèle et peut choisir une imprimante avec la mauvaise couleur.`},gcodeInjection:{title:`Injection G-code`,description:`Applique les extraits de G-code configurés par modèle dans les Paramètres aux travaux de ce VP. Désactivé par défaut.`},tailscaleDisabled:{title:`Intégration Tailscale`,description:`Activez pour marquer ce VP comme exposé via Tailscale. Affiche l'adresse Tailscale de l'hôte pour que vous sachiez quelle IP coller dans le slicer. L'étape d'import CA est inchangée — cette bascule n'a aucun effet sur les certificats.`},setupRequired:{title:`Configuration requise`,description:`Nécessite des réglages système (ports, pare-feu).`,readGuide:`Lire le guide de configuration`},howItWorks:{title:`Fonctionnement`,step1:`Sur le même LAN, les imprimantes virtuelles apparaissent automatiquement dans votre slicer (Bambu Studio / OrcaSlicer). Depuis d'autres réseaux, ajoutez-les manuellement par adresse IP et code d'accès.`,step2:`En mode Archive, Revue et File d'attente, utilisez le bouton "Envoyer" dans votre slicer pour envoyer des fichiers 3MF à Bambuddy. Le slicer affichera "Impression réussie" — le fichier est stocké, pas imprimé.`,step3:`En mode Proxy, l'imprimante virtuelle relaie tout le trafic vers une vraie imprimante — les impressions démarrent immédiatement comme en connexion directe.`},status:{title:`Détails du statut`,printerName:`Nom`,model:`Modèle`,serialNumber:`Série`,mode:`Mode`,pendingFiles:`Fichiers en attente`,targetPrinter:`Cible`,ftpPort:`Port FTP`,mqttPort:`Port MQTT`,ftpConnections:`Connexions FTP`,mqttConnections:`Connexions MQTT`},toast:{updated:`Réglages virtuels mis à jour`,failedToUpdate:`Échec mise à jour`,copyFailed:`Échec de la copie — veuillez sélectionner le texte manuellement`,accessCodeRequired:`Code d'accès requis`,targetPrinterRequired:`Imprimante cible requise`,bindIpRequired:`Veuillez d'abord définir une adresse IP`,accessCodeEmpty:`Le code ne peut pas être vide`,accessCodeLength:`Le code doit faire 8 caractères`,targetCodeChangedRebind:`Le code d'accès correspond désormais à la nouvelle imprimante cible. Réajoutez cet appareil dans votre slicer pour récupérer le nouveau code.`,created:`Imprimante virtuelle créée`,failedToCreate:`Échec de la création de l'imprimante virtuelle`,deleted:`Imprimante virtuelle supprimée`,failedToDelete:`Échec de la suppression de l'imprimante virtuelle`},list:{title:`Imprimantes virtuelles`,add:`Ajouter`,addFirst:`Ajouter une imprimante virtuelle`,empty:`Aucune imprimante virtuelle configurée. Ajoutez-en une pour commencer.`},bindIp:{title:`Interface réseau`,placeholder:`Sélectionner interface...`,hint:`Interface réseau sur laquelle cette imprimante virtuelle écoute. Doit être unique par imprimante.`},proxy:{accessCodeHint:`En mode proxy, utilisez le code d'accès de l'imprimante cible dans le slicer. La connexion est transmise de manière transparente à l'imprimante réelle.`},addDialog:{title:`Ajouter une imprimante virtuelle`,name:`Nom`,hint:`Vous pourrez configurer le code d'accès, l'imprimante cible et d'autres paramètres après la création.`,create:`Créer`},deleteConfirm:{title:`Supprimer l'imprimante virtuelle`,message:`Êtes-vous sûr de vouloir supprimer "{{name}}" ? Cela arrêtera tous les services de cette imprimante.`},archiveNameSource:{title:`Source du nom d'archive`,description:`Choisissez comment les nouvelles archives sont nommées lorsque les fichiers arrivent via l'imprimante virtuelle. "Métadonnées" utilise le titre intégré par le slicer dans le 3MF (par défaut). "Nom de fichier" utilise le nom envoyé par Bambu Studio en FTP. Note : Bambu Studio écrase le nom que vous saisissez dans la boîte "envoyer à l'imprimante" avec le champ Titre du 3MF lorsque celui-ci est présent, les deux modes produisent donc souvent la même chaîne.`,metadata:`Métadonnées`,filename:`Nom de fichier`},caCert:{title:`Certificat du slicer`,description:`Les imprimantes virtuelles utilisent un certificat TLS signé par l'autorité de certification Bambuddy. Importez ce certificat CA dans le magasin de confiance de votre slicer une seule fois pour qu'il accepte la connexion — plus besoin de le copier depuis la ligne de commande.`,copy:`Copier`,copied:`Copié`,download:`Télécharger`,fingerprint:`SHA-256`}},modelViewer:{openInSlicer:`Ouvrir dans le Slicer`,tabs:{model:`Modèle 3D`,gcode:`Aperçu G-code`},notAvailable:`indisponible`,notSliced:`pas découpé`,plates:`Plateaux`,allPlates:`Tous les plateaux`,plateNumber:`Plateau {{number}}`,plateCount:`{{count}} plateau`,plateCount_other:`{{count}} plateaux`,objectCount:`{{count}} objet`,objectCount_other:`{{count}} objets`,filamentCount:`{{count}} filament`,filamentCount_other:`{{count}} filaments`,eta:`Fin {{minutes}} min`,noPreview:`Aucun aperçu pour ce fichier`,pagination:{pageOf:`Page {{current}} sur {{total}}`,prev:`Préc`,next:`Suiv`},errors:{failedToLoad:`Échec chargement fichier`,noMeshes:`Aucun maillage trouvé dans le 3MF`,unsupportedFormat:`Format non supporté`}},maintenanceDescriptions:{lubricateCarbonRods:`Appliquer du lubrifiant sur les tiges carbone pour un mouvement fluide`,lubricateRails:`Appliquer du lubrifiant sur les rails linéaires`,cleanNozzle:`Nettoyer buse et hotend anti-bouchage`,checkBelts:`Tension des courroies pour la précision`,cleanBuildPlate:`Nettoyage plateau pour l'adhésion`,checkExtruder:`Usure des engrenages de l'extrudeur`,checkCooling:`Bon fonctionnement des ventilateurs`,generalInspection:`Inspection générale de la machine`,cleanCarbonRods:`Nettoyer les tiges carbone (friction)`,lubricateSteelRods:`Appliquer du lubrifiant sur les tiges en acier pour un mouvement fluide`,cleanSteelRods:`Nettoyer les tiges en acier (friction)`,cleanLinearRails:`Essuyer les rails linéaires (poussière/débris)`,checkPtfeTube:`Usure ou dommage du tube PTFE`,replaceHepaFilter:`Filtre HEPA pour la qualité de l'air`,replaceCarbonFilter:`Filtre charbon actif (odeurs)`,lubricateLeftNozzleRail:`Lubrifier le rail de buse gauche (Série H2)`},smartPlugs:{offline:`Hors ligne`,admin:`Administrateur`,openPlugAdminPage:`Page admin de la prise`,deleteSmartPlug:`Supprimer la prise`,turnOnSmartPlug:`Allumer la prise`,turnOffSmartPlug:`Éteindre la prise`,turnOn:`Allumer`,turnOff:`Éteindre`,addSmartPlug:{scanningNetwork:`Scan réseau...`,chooseEntity:`Choisir une entité...`,connectionFailed:`Échec connexion`,searchEntities:`Chercher entités...`,searchPowerSensors:`Capteurs puissance...`,searchEnergySensors:`Capteurs énergie...`,placeholders:{plugName:`Prise Salon`,mqttStateOnValue:`ON, true, 1`,mqttSameAsPower:`Identique au topic puissance, ou différent`}},linkedTo:`Lié à :`,monitorOnly:`Surveillance uniquement`,alerts:`Alertes`,scheduleOn:`À {{time}}`,scheduleOff:`Désactivé {{time}}`,on:`On`,off:`Désactivé`,power:`Puissance`,kwhToday:`kWh Aujourd'hui`,settings:`Paramètres`,automationSettings:`Paramètres d'automatisation`,showInSwitchbar:`Afficher dans la barre de commutateurs`,quickAccessSidebar:`Accès rapide depuis la barre latérale`,enabled:`Activé`,enableAutomation:`Activer l'automatisation pour cette prise`,autoOn:`Auto Activé`,autoOnDescription:`Allumer au démarrage de l'impression`,autoOff:`Auto Désactivé`,autoOffDescription:`Éteindre à la fin de l'impression (unique)`,autoOffPersistent:`Garder activé`,autoOffPersistentDescription:`Rester activé entre les impressions au lieu d'une seule fois`,controlsPrinterPower:`Alimente l'imprimante`,controlsPrinterPowerDescription:`Désactivez si cette prise n'alimente qu'un accessoire (ventilateur de filtre, éclairage). Sinon, l'éteindre marque l'imprimante hors ligne.`,autoOffAfterDrying:`Arrêt auto après séchage`,autoOffAfterDryingDescription:`Éteindre à la fin du séchage de l'AMS`,delayAfterDryingMinutes:`Délai après séchage (minutes)`,turnOffDelayMode:`Mode de délai d'extinction`,time:`Temps`,temp:`Temp.`,delayMinutes:`Délai (minutes)`,tempThreshold:`Seuil de température (°C)`,tempThresholdDescription:`S'éteint lorsque la buse refroidit en dessous de cette température`,edit:`Modifier`,deleteConfirm:`Êtes-vous sûr de vouloir supprimer "{{name}}" ? Cette action est irréversible.`,turnOnConfirm:`Êtes-vous sûr de vouloir allumer "{{name}}" ?`,turnOffConfirm:`Êtes-vous sûr de vouloir éteindre "{{name}}" ? Cela coupera l'alimentation de l'appareil connecté.`,failedToTurn:`Impossible de {{action}} "{{name}}"`,unknown:`Inconnu`,addTitle:`Ajouter une prise connectée`,editTitle:`Modifier la prise connectée`,stopScanning:`Arrêter le scan`,discoverTasmota:`Découvrir les appareils Tasmota`,foundDevices:`{{count}} appareil(s) trouvé(s) - cliquez pour sélectionner :`,noDevicesFound:`Aucun appareil Tasmota trouvé sur votre réseau`,haNotConfigured:`Home Assistant n'est pas configuré. Configurez-le dans`,haSettingsPath:`Paramètres → Réseau → Home Assistant`,selectEntity:`Sélectionner l'entité *`,ipAddress:`Adresse IP *`,nameLabel:`Nom *`,username:`Nom d'utilisateur`,password:`Mot de passe`,authHint:`Laissez vide si votre appareil Tasmota ne nécessite pas d'authentification`,linkToPrinter:`Lier à l'imprimante`,noPrinter:`Pas d'imprimante (contrôle manuel uniquement)`,linkingDescription:`La liaison permet l'allumage/extinction automatique au début/fin de l'impression`,powerAlerts:`Alertes de puissance`,alertAbove:`Alerte si au-dessus (W)`,alertBelow:`Alerte si en dessous (W)`,alertDescription:`Recevoir une notification lorsque la consommation dépasse ces seuils. Laisser vide pour désactiver cette direction.`,dailySchedule:`Planification quotidienne`,turnOnAt:`Allumer à`,turnOffAt:`Éteindre à`,scheduleDescription:`Allumer/éteindre automatiquement la prise à ces heures chaque jour. Laisser vide pour ignorer cette action.`,showOnPrinterCard:`Afficher sur la carte imprimante`,displayOnPrinterCard:`Afficher le bouton sur la carte imprimante`,connectedResult:`Connecté !`,deviceLabel:`Appareil : {{name}} - `,stateLabel:`État : {{state}}`,test:`Tester`,delete:`Supprimer`,save:`Enregistrer`,add:`Ajouter`,cancel:`Annuler`,failedToStartScan:`Impossible de démarrer le scan`,nameRequired:`Le nom est requis`,entityRequired:`L'entité est requise pour les prises Home Assistant`,mqttTopicRequired:`Au moins un topic MQTT doit être configuré pour la puissance, l'énergie ou la surveillance d'état`,loadingEntities:`Chargement des entités...`,loading:`Chargement...`,failedToLoadEntities:`Échec du chargement des entités : {{error}}`,noEntitiesMatching:`Aucune entité trouvée correspondant à "{{search}}"`,noEntitiesAvailable:`Aucune entité disponible`,searchingEntities:`Recherche de toutes les entités ({{count}} trouvées)`,showingEntities:`Affichage switch, light, input_boolean ({{count}} disponibles)`,energyMonitoringOptional:`Surveillance énergétique (Optionnel)`,energyMonitoringHint:`Recherchez et sélectionnez les capteurs fournissant des données de puissance/énergie.`,powerSensorW:`Capteur de puissance (W)`,energyTodayKwh:`Énergie aujourd'hui (kWh)`,totalEnergyKwh:`Énergie totale (kWh)`,noMatchingSensors:`Aucun capteur correspondant`,none:`Aucun`,mqttNotConfigured:`Broker MQTT non configuré. Définissez l'adresse du broker dans`,mqttSettingsPath:`Paramètres → Réseau → Publication MQTT`,mqttNotConfiguredSuffix:`(vous n'avez pas besoin d'activer la publication, remplissez simplement les détails du broker).`,mqttMonitorOnlyDescription:`Les prises MQTT reçoivent les données de puissance/énergie via un abonnement MQTT. Le contrôle on/off n'est pas disponible - utilisez votre broker MQTT ou système domotique.`,powerMonitoring:`Surveillance de puissance`,energyMonitoring:`Surveillance énergétique`,stateMonitoring:`Surveillance d'état`,optional:`optionnel`,topic:`Sujet`,jsonPath:`Chemin JSON`,multiplier:`Multiplicateur`,onValue:`Valeur ON`,mqttPowerHint:`Le chemin JSON extrait la valeur du payload JSON (ex: "power_l1"). Laisser vide si le topic publie des valeurs numériques brutes.
Utiliser le multiplicateur 0.001 pour mW→W, 1000 pour kW→W.`,mqttEnergyHint:`Le chemin JSON extrait la valeur du payload JSON. Laisser vide pour les valeurs brutes.
Utiliser le multiplicateur 0.001 pour Wh→kWh, 1000 pour MWh→kWh.`,mqttStateHint:`Le chemin JSON extrait la valeur du payload JSON. Laisser vide pour les valeurs brutes.
-Valeur ON : la chaîne exacte signifiant "ON". Laisser vide pour la détection auto (ON, true, 1).`,restControl:`Contrôle`,restOnUrl:`URL d'activation`,restOffUrl:`URL de désactivation`,restOnBody:`Corps de requête ON`,restOffBody:`Corps de requête OFF`,restMethod:`Méthode HTTP`,restHeaders:`Custom Headers (JSON)`,restStatusUrl:`URL de statut`,restStatusPath:`Chemin JSON état`,restStatusOnValue:`Valeur ON`,restPowerUrl:`URL de puissance`,restPowerPath:`Chemin JSON puissance`,restPowerMultiplier:`Multiplicateur de puissance`,restEnergyUrl:`URL d'énergie`,restEnergyPath:`Chemin JSON de l'énergie (aujourd'hui)`,restEnergyTotalPath:`Chemin JSON de l'énergie (compteur total)`,restEnergyTotalMultiplier:`Multiplicateur du compteur total`,restEnergyTotalPathHint:`ex. aenergy.total`,restEnergyTotalHint:`Beaucoup de prises — tous les Shelly notamment — ne fournissent qu'un compteur cumulé qui ne se remet jamais à zéro. Il va ici, pas dans le champ ci-dessus : lu comme la consommation du jour, il ne repartirait jamais de zéro à minuit, et Hier et Total resteraient vides. Bambuddy en déduit Aujourd'hui et Hier, ce qui demande un à deux jours de relevés. Un Shelly renvoie des wattheures : utilisez un multiplicateur de 0.001.`,restEnergyMultiplier:`Multiplicateur d'énergie`,restUrlRequired:`Au moins une URL (ON ou OFF) est requise pour les prises REST`,restHeadersHint:`par ex. {"Authorization": "Bearer your-token"}`,restBodyHint:`par ex. ON, {"state": "on"}`,restStatusHint:`URL pour interroger l'état actuel`,restPathHint:`par ex. state ou data.power.status`,restPowerUrlHint:`URL séparée pour les données de puissance (utilise l'URL de statut si vide)`,restEnergyUrlHint:`URL séparée pour les données d'énergie (utilise l'URL de statut si vide)`,restEnergyHint:`Chaque valeur peut utiliser sa propre URL ou se rabattre sur l'URL de statut. Utilisez les multiplicateurs pour la conversion d'unités (ex : 0.001 pour convertir Wh en kWh).`,testConnection:`Tester la connexion`,connectionSuccess:`Connexion réussie`,noSwitchesInSwitchbar:`Aucun commutateur dans la barre`,enableSwitchbarHint:`Activez "Afficher dans la barre de commutateurs" dans Paramètres > Smart Plugs`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`E-mail`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`Notifications par e-mail SMTP`,telegram:`Notifications via un bot Telegram`,discord:`Envoyer vers un canal Discord via webhook`,ntfy:`Notifications push gratuites, auto-hébergeables`,pushover:`Notifications push simples et fiables`,callmebot:`Notifications WhatsApp gratuites via CallMeBot`,webhook:`POST HTTP générique vers n'importe quelle URL`,homeassistant:`Notifications persistantes dans le tableau de bord Home Assistant`,bark:`Notifications push iOS via Bark (auto-hébergeable)`},lastSuccess:`Dernier : {{date}}`,error:`Erreur`,printer:`Imprimante :`,allPrinters:`Toutes les imprimantes`,sendTestNotification:`Envoyer une notification de test`,eventSettings:`Paramètres des événements`,enabled:`Activé`,sendFromProvider:`Envoyer des notifications depuis ce fournisseur`,printEvents:`Événements d'impression`,printerStatus:`État de l'imprimante`,amsAlarms:`Alarmes AMS`,amsHtAlarms:`Alarmes AMS-HT`,printQueue:`File d'attente d'impression`,start:`Début`,plateCheck:`Vérification du plateau`,complete:`Terminé`,failed:`Échoué`,stopped:`Arrêté`,progress:`Progression`,offline:`Hors ligne`,lowFilament:`Filament bas`,maintenance:`Maintenance`,amsHumidity:`Humidité AMS`,amsTemp:`Temp. AMS`,amsHtHumidity:`Humidité AMS-HT`,amsHtTemp:`Temp. AMS-HT`,bedCooled:`Plateau refroidi`,firstLayer:`Première couche`,quiet:`Silencieux`,digest:`Résumé {{time}}`,printStarted:`Impression démarrée`,plateNotEmpty:`Plateau non vide`,plateNotEmptyDescription:`Objets détectés avant l'impression`,plateClearRequired:`Plateau à libérer`,plateClearRequiredDescription:`Impression terminée, la file attend la confirmation`,plateClear:`Plateau libre`,printCompleted:`Impression terminée`,bedCooledLabel:`Plateau refroidi`,bedCooledDescription:`Plateau refroidi sous le seuil après l'impression`,firstLayerCompleteLabel:`Première couche terminée`,firstLayerCompleteDescription:`Notification avec photo après la première couche`,missingSpoolAssignmentLabel:`Affectation de bobine manquante`,missingSpoolAssignmentDescription:`Notifier quand une impression démarre et que des bacs requis n'ont pas de bobine assignée`,printFailed:`Impression échouée`,printStopped:`Impression arrêtée`,progressMilestones:`Jalons de progression`,progressMilestonesDescription:`Notifier à 25 %, 50 %, 75 %`,printerOffline:`Imprimante hors ligne`,printerError:`Erreur de l'imprimante`,aiFailureDetection:`Détection de défaillance par IA`,aiFailureDetectionDescription:`Notifier lorsque l'IA Obico détecte une défaillance d'impression possible`,lowFilamentLabel:`Filament bas`,maintenanceDue:`Maintenance requise`,maintenanceDueDescription:`Notifier lorsqu'une maintenance est nécessaire`,amsHumidityHigh:`Humidité AMS élevée`,amsHumidityHighDescription:`L'humidité de l'AMS standard dépasse le seuil`,amsTemperatureHigh:`Température AMS élevée`,amsTemperatureHighDescription:`La température de l'AMS standard dépasse le seuil`,amsHtHumidityHigh:`Humidité AMS-HT élevée`,amsHtHumidityHighDescription:`L'humidité de l'AMS-HT dépasse le seuil`,amsHtTemperatureHigh:`Température AMS-HT élevée`,amsHtTemperatureHighDescription:`La température de l'AMS-HT dépasse le seuil`,inventoryAlerts:`Alertes de stock`,stockReorderAlert:`Alerte de réapprovisionnement`,stockReorderAlertDescription:`Le SKU a atteint son point de réapprovisionnement`,stockBreakAlert:`Alerte de rupture de stock`,stockBreakAlertDescription:`Le stock sera épuisé avant l'arrivée du réapprovisionnement`,jobAdded:`Tâche ajoutée`,jobAddedDescription:`Tâche ajoutée à la file d'attente`,jobAssigned:`Tâche assignée`,jobAssignedDescription:`Tâche basée sur le modèle assignée à l'imprimante`,jobStarted:`Tâche démarrée`,jobStartedDescription:`La tâche de la file a commencé l'impression`,jobWaiting:`Tâche en attente`,jobWaitingDescription:`Tâche en attente de filament ou imprimante`,jobSkipped:`Tâche ignorée`,jobSkippedDescription:`Tâche ignorée (échec précédent)`,jobFailed:`Tâche échouée`,jobFailedDescription:`La tâche n'a pas pu démarrer`,queueComplete:`File d'attente terminée`,queueCompleteDescription:`Toutes les tâches de la file sont terminées`,quietHours:`Heures silencieuses`,noNotificationsDuring:`Aucune notification pendant ces heures`,editProviderToChangeQuietHours:`Modifier le fournisseur pour changer les heures silencieuses`,dailyDigest:`Résumé quotidien`,batchNotifications:`Regrouper les notifications en un seul résumé quotidien`,sendAt:`Envoyer à {{time}}`,editProviderToChangeDigestTime:`Modifier le fournisseur pour changer l'heure du résumé`,edit:`Modifier`,deleteProvider:`Supprimer le fournisseur de notifications`,deleteConfirm:`Êtes-vous sûr de vouloir supprimer « {{name}} » ? Cette action est irréversible.`,delete:`Supprimer`,addTitle:`Ajouter un fournisseur de notifications`,editTitle:`Modifier le fournisseur de notifications`,nameLabel:`Nom *`,namePlaceholder:`Mes notifications`,providerTypeLabel:`Type de fournisseur *`,configuration:`Configuration`,testConfiguration:`Tester la configuration`,printerFilter:`Filtre d'imprimante`,onlyFromPrinter:`Envoyer uniquement les notifications pour les événements de cette imprimante`,quietHoursDnd:`Heures silencieuses (Ne pas déranger)`,quietStart:`Début`,quietEnd:`Fin`,dailyDigestLabel:`Résumé quotidien`,sendDigestAt:`Envoyer le résumé à`,digestCollected:`Les événements seront collectés et envoyés en un seul résumé à cette heure`,notificationEvents:`Événements de notification`,progressPercent:`(25 %, 50 %, 75 %)`,bedCooledAfterPrint:`(après la fin de l'impression)`,eventPriority:{sectionTitle:`Priorité ntfy`,helpNtfy:`Choisissez une priorité pour chaque événement activé. ntfy l'utilise pour faire remonter les alertes (son, visibilité, comportement push). Les niveaux non définis ici utilisent la valeur par défaut du serveur ntfy.`,min:`Min.`,low:`Basse`,default:`Par défaut`,high:`Haute`,urgent:`Urgente`},cancel:`Annuler`,save:`Enregistrer`,add:`Ajouter`,nameRequired:`Le nom est requis`,fieldRequired:`{{field}} est requis`,haDataInvalid:`Le champ Data doit être un objet JSON valide, p. ex. {"priority": "high", "ttl": 0}`,phoneNumber:`Numéro de téléphone`,apiKey:`Clé API`,serverUrl:`URL du serveur`,topic:`Sujet`,authToken:`Jeton d'authentification`,userKey:`Clé utilisateur`,appToken:`Jeton d'application`,priority:`Priorité`,pushoverRetry:`Réessai urgence (s)`,pushoverExpire:`Expiration urgence (s)`,botToken:`Jeton du bot`,chatId:`ID du chat`,telegramThreadId:`ID du sujet de forum`,telegramThreadIdHelp:`Facultatif. Envoie dans un seul sujet d'un groupe forum : le dernier nombre du lien du sujet (t.me/c/.../25). Laisser vide pour le sujet General.`,telegramThreadIdInvalid:`L'ID du sujet de forum doit être un nombre.`,smtpServer:`Serveur SMTP`,smtpPort:`Port SMTP`,security:`Sécurité`,authentication:`Authentification`,username:`Nom d'utilisateur`,password:`Mot de passe`,fromEmail:`E-mail expéditeur`,toEmail:`E-mail destinataire`,webhookUrl:`URL du webhook`,payloadFormat:`Format du payload`,authorization:`Autorisation`,titleFieldName:`Nom du champ titre`,messageFieldName:`Nom du champ message`,editTemplate:`Modifier le modèle : {{name}}`,titleLabel:`Titre`,bodyLabel:`Corps`,titlePlaceholder:`Titre de la notification...`,bodyPlaceholder:`Corps de la notification...`,availableVariables:`Variables disponibles`,clickToInsert:`Cliquer pour insérer à la position du curseur dans le corps`,livePreview:`Aperçu en direct`,hide:`Masquer`,show:`Afficher`,loadingPreview:`Chargement de l'aperçu...`,enterTemplateContent:`Saisir le contenu du modèle pour voir l'aperçu`,titlePreview:`Titre :`,bodyPreview:`Corps :`,resetToDefault:`Réinitialiser par défaut`,titleRequired:`Le titre est requis`,bodyRequired:`Le corps est requis`,notificationLog:`Journal des notifications`,showFailedOnly:`Échecs uniquement`,last24Hours:`Dernières 24 heures`,last7Days:`7 derniers jours`,last30Days:`30 derniers jours`,last90Days:`90 derniers jours`,justNow:`À l'instant`,noFailedNotifications:`Aucune notification échouée`,noNotificationsLogged:`Aucune notification enregistrée`,unknownProvider:`Fournisseur inconnu`,logTitle:`Titre`,logMessage:`Message`,logError:`Erreur`,logProvider:`Fournisseur : {{type}}`,logTime:`Heure : {{time}}`,refresh:`Actualiser`,clearOld:`Purger les anciens`,statsSummary:`{{days}} derniers jours :`,statsNotifications:`notifications`,statsSent:`{{count}} envoyées`,statsFailed:`{{count}} échouées`,eventTypes:{print_start:`Impression démarrée`,print_complete:`Impression terminée`,print_failed:`Impression échouée`,print_stopped:`Impression arrêtée`,print_progress:`Progression`,printer_offline:`Imprimante hors ligne`,printer_error:`Erreur de l'imprimante`,filament_low:`Filament bas`,maintenance_due:`Maintenance requise`,test:`Tester`},userEmail:{title:`Notifications`,emailNotifications:`Notifications par e-mail`,emailNotificationsDesc:`Recevez des notifications par e-mail pour vos propres travaux d'impression. Les e-mails sont envoyés via les paramètres SMTP configurés dans l'authentification avancée.`,sendingTo:`Les notifications seront envoyées à`,noEmailWarning:`Votre compte n'a pas d'adresse e-mail. Contactez un administrateur pour en ajouter une.`,printJobNotifications:`Notifications de travaux d'impression`,printJobNotificationsDesc:`Choisissez quels événements déclenchent des notifications par e-mail pour les travaux d'impression que vous soumettez.`,printJobStarts:`Démarrage du travail d'impression`,printJobStartsDesc:`Être notifié quand votre travail d'impression commence.`,printJobFinishes:`Fin du travail d'impression`,printJobFinishesDesc:`Être notifié quand votre travail d'impression se termine avec succès.`,printErrors:`Erreurs d'impression`,printErrorsDesc:`Être notifié quand votre travail d'impression échoue ou rencontre une erreur.`,printJobStops:`Travail d'impression arrêté`,printJobStopsDesc:`Être notifié quand votre travail d'impression est annulé ou arrêté.`,saveSuccess:`Préférences de notification sauvegardées.`,saveError:`Impossible de sauvegarder les préférences de notification.`}},richTextEditor:{bold:`Gras`,italic:`Italique`,underline:`Souligné`,bulletList:`Liste à puces`,numberedList:`Liste numérotée`,alignLeft:`Aligner à gauche`,alignCenter:`Centrer`,alignRight:`Aligner à droite`,addLink:`Ajouter lien`,removeLink:`Retirer lien`},externalLinks:{title:`Liens de la barre latérale`,sidebarLayout:`Barre latérale`,sidebarLayoutDescription:`Affichez ou masquez les pages intégrées, ajoutez des liens externes et faites glisser les éléments pour réorganiser la navigation latérale.`,systemPages:`Pages Bambuddy`,externalLinks:`Liens externes`,visibleInSidebar:`Visible dans la barre latérale`,hiddenFromSidebar:`Masqué dans la barre latérale`,requiredInSidebar:`Obligatoire dans la barre latérale`,hidePage:`Masquer la page`,showPage:`Afficher la page`,settingsCannotBeHidden:`Les paramètres ne peuvent pas être masqués`,noLinksConfigured:`Aucun lien externe configuré`,deleteLink:`Supprimer lien`,removeCustomIcon:`Retirer icône personnalisée`,openInNewTab:`Ouvrir dans un nouvel onglet`,placeholders:{linkName:`Mon Lien`}},keyboardShortcuts:{title:`Raccourcis Clavier`,navigation:`Navigation`,archivesSection:`Archives`,kProfilesSection:`Profils K`,generalSection:`Général`,shortcuts:{goToPrinters:`Aller aux Imprimantes`,goToArchives:`Aller aux Archives`,goToQueue:`Aller à la File`,goToStats:`Aller aux Stats`,goToProfiles:`Aller aux Profils Cloud`,goToSettings:`Aller aux Paramètres`,focusSearch:`Focus recherche`,openUploadModal:`Ouvrir téléversement`,clearSelection:`Tout déselectionner`,contextMenu:`Menu contextuel (cartes)`,refreshProfiles:`Rafraîchir profils`,newProfile:`Nouveau profil`,exitSelectionMode:`Quitter mode sélection`,showHelp:`Afficher cette aide`},footer:`Échap ou clic extérieur pour fermer`},notificationLog:{title:`Journal de Notification`,events:{printStarted:`Début impression`,printComplete:`Fin impression`,printFailed:`Échec impression`,printStopped:`Arrêt impression`,progress:`Progression`,printerOffline:`Hors ligne`,printerError:`Erreur`,lowFilament:`Filament bas`,maintenanceDue:`Maintenance`,test:`Tester`},timeAgo:{justNow:`À l'instant`,minutesAgo:`Il y a {{minutes}}m`,hoursAgo:`Il y a {{hours}}h`}},restoreBackup:{title:`Restaurer Sauvegarde`,restoring:`Restauration...`,restoreComplete:`Restauration terminée`,restoreFailed:`Échec restauration`,importSettings:`Importer les réglages d'un fichier`,pleaseWait:`Patientez pendant la restauration`,clickToSelect:`Fichier .json ou .zip`,howDuplicateHandling:`Gestion des doublons :`,categories:{printers:`Imprimantes`,smartPlugs:`Prises`,notificationProviders:`Fournisseurs`,filaments:`Filaments`,archives:`Archives`,pendingUploads:`Téléversements en attente`,settingsTemplates:`Réglages & Modèles`},matchingInfo:{printers:`par numéro de série`,smartPlugs:`par adresse IP`,notificationProviders:`par nom`,filaments:`par nom+type+marque`,archives:`par empreinte numérique (hash)`,pendingUploads:`par nom de fichier`,settingsTemplates:`toujours écrasés`},replaceExisting:`Remplacer existant`,keepExisting:`Garder existant`,replaceDescription:`Écrase les doublons avec la sauvegarde`,keepDescription:`Ne restaure que les éléments absents`,caution:`Attention :`,cautionText:`L'écrasement remplacera vos réglages. Les codes d'accès imprimantes sont exclus par sécurité.`,itemsRestored:`Éléments restaurés`,itemsSkipped:`Éléments ignorés`,restored:`Restaurés`,skipped:`Ignorés (déjà présents)`,filesLabel:`Fichiers (3MF, vignettes, etc.)`,newApiKeysGenerated:`Nouvelles clés API générées`,newApiKeysWarning:`Copiées maintenant, elles ne seront plus visibles !`,processingBackup:`Traitement du fichier...`,noDataFound:`Aucune donnée trouvée dans le fichier.`,failedToRestore:`Échec restaure. Vérifiez le format.`},backupExport:{title:`Exporter Sauvegarde`,selectData:`Données à inclure`,selectAll:`Tout sélectionner`,selectNone:`Ne rien sélectionner`,categoryDescriptions:{settings:`Langue, thèmes, préférences`,notifications:`ntfy, Pushover, Discord, etc.`,templates:`Modèles de messages personnalisés`,smartPlugs:`Configuration des prises Tasmota`,externalLinks:`Liens externes de la barre latérale`,printers:`Infos imprimantes (codes d'accès exclus par défaut)`,plateDetection:`Images références des plateaux vides`,filaments:`Types et coûts filaments`,maintenance:`Plannings de maintenance personnalisés`,archives:`Données impressions + fichiers (3MF, vignettes, etc.)`,projects:`Projets, BOM, pièces jointes`,pendingUploads:`En attente revue virtuelle`,apiKeys:`Clés Webhook (nouvelles clés générées à l'import)`},requiresPrinters:`Nécessite sélection des imprimantes`,zipFileWarning:`Fichier ZIP créé.`,zipFileDescription:`Contient tous les médias. Peut être volumineux.`,includeAccessCodes:`Inclure Codes d'accès`,includeAccessCodesDescription:`Pour migrer vers une autre machine`,includeAccessCodesWarning:`Codes en texte clair. Sécurisez ce fichier !`,categoriesSelected:`{{selectedCount}} catégories choisies`},pendingUploads:{placeholders:{notes:`Notes sur l'impression...`},discardUpload:`Rejeter`,archiveAllUploads:`Tout archiver`,discardAllUploads:`Tout rejeter`,archive:`Archiver`,timeAgo:{justNow:`À l'instant`,minutesAgo:`Il y a {{minutes}}m`,hoursAgo:`Il y a {{hours}}h`,daysAgo:`Il y a {{days}}j`}},apiBrowser:{placeholders:{requestBody:`Corps JSON...`,searchEndpoints:`Chercher endpoints...`}},configureAmsSlot:{title:`Configurer le slot AMS`,slotConfigured:`Slot configuré !`,configuringSlot:`Configuration du slot :`,slotLabel:`{{ams}} – Emplacement {{slot}}`,searchPresets:`Chercher presets...`,colorPlaceholder:`Nom couleur ou hex (ex: brown, FF8800)`,clearCustomColor:`Effacer couleur perso`,noCloudPresets:`Profils Cloud absents. Connectez-vous.`,noPresetsAvailable:`Aucun preset disponible. Connectez-vous à Bambu Cloud ou importez des profils locaux.`,noMatchingPresets:`Aucun profil trouvé.`,custom:`Perso`,builtin:`Inclus`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`Réglages envoyés`,filamentProfile:`Profil Filament`,kProfileLabel:`Profil K (Pressure Advance)`,filteringFor:`Filtrage pour : {{material}}`,noKProfile:`Pas de profil K (utiliser défaut 0.020)`,noMatchingKProfiles:`Aucun profil K trouvé. K=0.020 par défaut sera utilisé.`,otherKProfiles:`Autres profils K sur cette imprimante`,selectFilamentFirst:`Sélectionnez d'abord un profil filament`,kFromCalibration:`K={{value}} de la calibration imprimante`,customColorLabel:`Couleur personnalisée (optionnel)`,presetColors:`Couleurs {{name}} :`,showLessColors:`Moins de couleurs`,showMoreColors:`Plus de couleurs`,clear:`Effacer`,hexLabel:`Hex : #{{hex}}`,resetting:`Réinitialisation...`,resetSlot:`Réinitialiser le slot`,cancel:`Annuler`,configuring:`Configuration...`,configureSlot:`Configurer le slot`},githubBackup:{title:`Sauvegarde Git`,history:`Historique`,downloadBackup:`Télécharger`,restoreBackup:`Restaurer`,noBackupsYet:`Aucune sauvegarde`},emailSettings:{placeholders:{fromName:`Bambuddy`}},tagManagement:{searchTags:`Chercher tags...`,renameTag:`Renommer tag`,deleteTag:`Supprimer tag`},notificationTemplates:{placeholders:{title:`Titre notification...`,body:`Message notification...`}},batchTag:{placeholders:{newTag:`Nouveau tag...`}},photoGallery:{deletePhoto:`Supprimer photo`},filamentHoverCard:{copySpoolUuid:`Copier UUID bobine`},kProfilesView:{hasNote:`A une note`,copyProfile:`Copier profil`},layout:{openMenu:`Ouvrir menu`,noPermissionSystemInfo:`Pas d'autorisation système`},dashboard:{dragToReorder:`Glisser pour réorganiser`,hideWidget:`Masquer widget`},notificationProviderCard:{deleteNotificationProvider:`Supprimer fournisseur`},fileManagerModal:{closeFileManager:`Fermer gestionnaire`,sortFiles:`Trier fichiers`,goToParentFolder:`Dossier parent`,threeView:`Vue 3D`},embeddedCameraViewer:{refreshStream:`Actualiser flux`,close:`Fermer`,zoomOut:`Zoom -`,resetZoom:`Réinitialiser le zoom`,zoomIn:`Zoom +`,dragToResize:`Glisser pour dimension`},timelapseViewer:{skipBack5s:`-5s`,skipForward5s:`+5s`},notificationProviders:{descriptions:{email:`Notifications par email SMTP`,telegram:`Via bot Telegram`,discord:`Via webhook Discord`,ntfy:`Push auto-hébergé (ntfy)`,pushover:`Push fiable (Pushover)`,callmebot:`WhatsApp gratuit via CallMeBot`,webhook:`Requête HTTP POST personnalisée`}},logViewer:{searchPlaceholder:`Message ou nom...`,noLogEntries:`Aucune entrée journal`},switchbarPopover:{noSwitchesInSwitchbar:`Aucun interrupteur`},projectPageModal:{placeholders:{title:`Titre`,designer:`Designer`,license:`Licence`,description:`Description...`,profileTitle:`Titre du profil`,profileDescription:`Description du profil...`}},spoolmanSettings:{},time:{unknown:`-`,waiting:`En attente`,justNow:`À l'instant`,now:`Maintenant`,minsAgo:`il y a {{count}}m`,inMins:`dans {{count}}m`,hoursAgo:`il y a {{count}}h`,inHours:`dans {{count}}h`,daysAgo:`il y a {{count}}j`,inDays:`dans {{count}}j`},spoolbuddy:{nav:{dashboard:`Tableau de bord`,ams:`AMS`,inventory:`Inventaire`,writeTag:`Écrire`,settings:`Paramètres`},status:{nfcReady:`NFC prêt`,nfcOff:`NFC désactivé`,offline:`Hors ligne`,online:`En ligne`,noPrinters:`Aucune imprimante`,deviceOffline:`Appareil hors ligne`,waitingConnection:`En attente de connexion...`,systemReady:`Système prêt`,status:`Statut`},dashboard:{readyToScan:`Prêt à scanner`,idleMessage:`Placez une bobine sur la balance pour l'identifier`,nfcHint:`Le tag NFC sera lu automatiquement`,device:`Appareil`,syncWeight:`Sync. poids`,weightSynced:`Synchronisé !`,unknownTag:`Tag inconnu`,newTag:`Nouveau tag détecté`,onScale:`sur la balance`,linkSpool:`Lier à une bobine`,linkTagTitle:`Lier le tag à une bobine`,linkTag:`Lier le tag`,selectSpool:`Sélectionnez une bobine à lier à ce tag :`,noUntagged:`Aucune bobine sans tag trouvée`,tagDetected:`Tag détecté`,noTag:`Pas de tag`,tagId:`Étiquette`,grossWeight:`Poids brut`,spoolSize:`Taille bobine`,close:`Fermer`,currentSpool:`Bobine actuelle`,plateReady:`Plateau prêt : {{name}}`,plateReadyLabel:`Plateaux à libérer`,plateClearAction:`Libérer`,plateClearedToast:`Plateau marqué comme libéré`,plateClearFailed:`Impossible de marquer le plateau comme libéré`},modal:{spoolDetected:`Bobine détectée`,assignToAms:`Assigner à l'AMS`,syncWeight:`Synchroniser le poids`,weightSynced:`Synchronisé !`,syncing:`Synchronisation...`,newTagDetected:`Nouveau tag détecté`,addToInventory:`Ajouter à l'inventaire`,assignToAmsTitle:`Assigner à l'AMS`,selectSlot:`Sélectionner un emplacement`,assign:`Assigner`,assigning:`Attribution...`,assignSuccess:`Assigné !`,assignPendingInsert:`Assigné. Le slot sera configuré lors de l'insertion de la bobine.`,assignError:`Échec de l'attribution de la bobine. Veuillez réessayer.`,noPrinterSelected:`Sélectionner une imprimante...`,noAmsDetected:`Aucun AMS détecté sur cette imprimante`,slot:`Emplacement`},weight:{noReading:`Pas de lecture`,stable:`Stable`,measuring:`Mesure...`,tare:`Tarer`,calibrate:`Calibrer`},spool:{remaining:`Restant`,material:`Matériau`,brand:`Marque`,color:`Couleur`,coreWeight:`Noyau`,labelWeight:`Étiquette`,scaleWeight:`Balance`,netWeight:`Réseau`,lastUsed:`Dernière utilisation`},ams:{noData:`Aucun AMS détecté`,connectAms:`Connectez un AMS pour voir les slots`,noPrinter:`Aucune imprimante sélectionnée`,selectPrinter:`Sélectionnez une imprimante dans la barre supérieure`,printerDisconnected:`Imprimante déconnectée`,humidity:`Humidité`,level:`Niveau`,active:`Actif`,slot:`Emplacement`,empty:`Vide`},inventory:{search:`Rechercher des bobines...`,empty:`Aucune bobine dans l'inventaire`,noResults:`Aucune bobine correspondante`,spools:`bobines`,addSpool:`Ajouter une bobine`},settings:{tabDevice:`Appareil`,tabDisplay:`Affichage`,tabScale:`Balance`,tabUpdates:`Mises à jour`,nfcReader:`Lecteur NFC`,type:`Type`,connection:`Connexion`,notConnected:`N/D`,deviceInfo:`Info appareil`,hostname:`Hôte`,uptime:`Temps de fonctionnement`,brightness:`Luminosité`,saved:`Enregistré`,noBacklight:`Aucun rétroéclairage DSI détecté. Le contrôle de luminosité nécessite un écran DSI.`,screenBlank:`Délai d'extinction`,screenBlankDesc:`L'écran s'éteint après inactivité. Touchez pour réveiller.`,displayNote:`La luminosité est appliquée comme filtre logiciel.`,scaleCalibration:`Calibration de la balance`,currentWeight:`Poids actuel`,tareOffset:`Tare`,calFactor:`Facteur`,knownWeight:`Poids connu`,calStep1:`Retirez tout de la balance et appuyez sur Mettre à zéro.`,calStep2:`Placez le poids connu sur la balance.`,setZero:`Mettre à zéro`,calibrateNow:`Calibrer`,calibrated:`Calibré`,tareSet:`Commande de tare envoyée. En attente de l'appareil...`,tareComplete:`Tare terminée !`,tareTimedOut:`Délai de tare dépassé — le daemon SpoolBuddy fonctionne-t-il ?`,tareFailed:`Échec de l'envoi de la commande de tare`,zeroSet:`Point zéro défini. Placez le poids connu sur la balance.`,calibrationDone:`Calibration terminée !`,calibrationFailed:`Échec de la calibration`,lastCalibrated:`Dernière calibration`,stable:`Stable`,settling:`Stabilisation...`,firmware:`Micrologiciel`,scale:`Balance`,noDevice:`Aucun appareil SpoolBuddy trouvé`,daemonVersion:`Version du daemon`,currentVersion:`Actuelle`,versionPending:`En attente du daemon...`,checking:`Vérification...`,checkUpdates:`Vérifier les mises à jour`,updateAvailable:`Mise à jour disponible`,updateInstructions:`Mise à jour via SSH : exécutez le script d'installation SpoolBuddy.`,upToDate:`À jour`,includeBeta:`Inclure les versions bêta`,systemConfig:`Backend & authentification`,backendUrl:`URL du backend Bambuddy`,apiToken:`Jeton d'API`,apiTokenPlaceholder:`Saisir un jeton d'API`,saveConfig:`Enregistrer la configuration`,systemQueued:`Configuration mise en file.`,systemFieldsRequired:`L'URL du backend est obligatoire.`,nfcDiagnostic:`Diagnostic NFC`,scaleDiagnostic:`Diagnostic balance`,readTagDiagnostic:`Diagnostic lecture de tag`,testNfc:`Tester le lecteur`,testScale:`Tester la précision`,testReadTag:`Lire un tag`},writeTag:{tabExisting:`Bobine existante`,tabNew:`Nouvelle bobine`,tabReplace:`Remplacer le tag`,searchPlaceholder:`Rechercher par matériau, couleur, marque...`,noUntaggedSpools:`Aucune bobine sans tag`,noTaggedSpools:`Aucune bobine avec tag`,selectSpool:`Sélectionnez une bobine, puis placez un NTAG sur le lecteur`,placeTag:`Placez un NTAG sur le lecteur`,tagReady:`Tag détecté — prêt à écrire`,writeTag:`Écrire le tag`,replaceTag:`Remplacer le tag`,writing:`Écriture du tag...`,waiting:`En attente de SpoolBuddy...`,writeSuccess:`Tag écrit avec succès !`,writeFailed:`Échec de l'écriture`,queueFailed:`Impossible de mettre en file la commande d'écriture`,tryAgain:`Réessayer`,cancel:`Annuler`,replaceWarning:`L'ancien tag sera dissocié. Le nouveau tag le remplacera.`,deviceOffline:`SpoolBuddy est hors ligne`,material:`Matériau`,colorName:`Nom de la couleur`,color:`Couleur`,brand:`Marque`,weight:`Poids (g)`,createSpool:`Créer la bobine`,creating:`Création...`,spoolCreated:`Bobine créée ! Prêt à écrire.`,createFailed:`Impossible de créer la bobine`,incompleteDataWarning:`Tag écrit avec des données Spoolman incomplètes`},quickMenu:{printerPower:`Alimentation imprimante`,systemControls:`Système`,restartDaemon:`Redémarrer le daemon`,restartBrowser:`Redémarrer le navigateur`,reboot:`Redémarrer`,shutdown:`Éteindre`,swipeToClose:`Glisser vers le bas pour fermer`,confirmTitle:`Confirmer`,confirmShutdown:`Êtes-vous sûr de vouloir éteindre le SpoolBuddy ? Vous aurez besoin d'un accès physique pour le rallumer.`,confirmReboot:`Êtes-vous sûr de vouloir redémarrer le SpoolBuddy ?`,confirmRestartDaemon:`Redémarrer le daemon SpoolBuddy ? Le NFC et la balance seront temporairement indisponibles.`,confirmRestartBrowser:`Redémarrer le navigateur kiosque ? L'écran sera brièvement noir.`,confirm:`Confirmer`,confirmPlugOn:`Allumer {{name}} ?`,confirmPlugOff:`Éteindre {{name}} ?`,turnOn:`Allumer`,turnOff:`Éteindre`}},diagnostic:{modalTitle:`Diagnostic de connexion — {{name}}`,running:`Diagnostic en cours...`,runningElapsed:`Diagnostic en cours... ({{elapsed}}s)`,waitingForReportHint:`En attente que l'imprimante publie un rapport d'état — cela peut prendre jusqu'à {{max}} secondes.`,runFailed:`Le diagnostic n'a pas pu s'exécuter : {{error}}`,retry:`Relancer`,runButton:`Lancer le diagnostic`,sectionTitle:`Diagnostic de connexion`,sectionDescription:`Vérifiez pourquoi une imprimante ne se connecte pas ou n'imprime pas — accessibilité des ports, mode développeur LAN, mode réseau Docker et identifiants.`,noPrinters:`Aucune imprimante configurée.`,overall:{ok:`Aucun problème détecté — la connexion de l'imprimante semble correcte.`,warnings:`L'imprimante devrait fonctionner, mais certains points nécessitent votre attention.`,problems:`Des problèmes expliquant pourquoi l'imprimante ne se connecte pas ou n'imprime pas ont été détectés.`},check:{port_mqtt:{title:`Port de contrôle (MQTT 8883)`,pass:`Accessible — l'imprimante accepte les connexions de contrôle.`,fail:`Le port 8883 est inaccessible. L'imprimante est éteinte, possède une autre adresse IP, ou un pare-feu la bloque. Vérifiez l'IP de l'imprimante et qu'aucun élément ne bloque le port 8883.`},port_ftps:{title:`Port de transfert de fichiers (FTPS 990)`,pass:`Accessible — l'envoi de fichiers d'impression fonctionnera.`,warn:`Le port 990 est inaccessible. La surveillance peut toujours fonctionner, mais l'envoi d'impressions vers l'imprimante échouera. Assurez-vous que le port 990 n'est pas bloqué.`},external_storage:{title:`Stocker les fichiers envoyés sur stockage externe (étape 4 de l'installation)`,pass:`L'imprimante signale que cette option est activée — les fichiers envoyés seront stockés sur la carte SD et les archives auront des miniatures et des métadonnées slicer.`,fail:`L'imprimante signale que cette option est désactivée. Activez « Stocker les fichiers envoyés sur stockage externe » — sur les firmwares récents (P2S 01.02 / Bambu Studio 2.6+) l'interrupteur se trouve dans les Paramètres d'impression de l'imprimante ; sur les versions antérieures, il est dans l'onglet Périphérique de Bambu Studio / OrcaSlicer. Sans cette option, chaque impression archivée est dépourvue de miniature et de métadonnées slicer.`,skip:`Non vérifié — une connexion MQTT active est requise. Sur les slicers plus anciens où ce paramètre n'existe que dans le slicer, l'imprimante ne le signale pas, donc cette vérification passe même si l'option est désactivée — vérifiez l'étape 4 de l'installation manuellement.`,skip_unsupported_model:`Ce modèle a un emplacement SD mais aucun moyen d'activer l'option — le firmware actuel de la série P1 n'affiche pas le bouton dans Bambu Studio et l'imprimante n'a pas d'écran. Il n'y a rien à corriger ici ; les impressions archivées peuvent manquer de miniatures et de métadonnées du slicer jusqu'à ce que Bambu Lab l'ajoute par firmware.`},port_rtsps:{title:`Port caméra ({{protocol}} {{port}})`,pass:`Accessible — le flux de la caméra fonctionnera.`,warn:`Le port {{port}} est inaccessible. La vue caméra en direct ne fonctionnera pas. Cela n'affecte pas l'impression.`},network_mode:{title:`Mode réseau Docker`,pass:`Fonctionne en mode réseau host.`,warn:`Bambuddy fonctionne en réseau Docker bridge. La découverte d'imprimantes et l'imprimante virtuelle nécessitent le mode réseau host — recréez le conteneur avec "network_mode: host".`,skip:`Ne fonctionne pas dans Docker — non applicable.`},subnet:{title:`Sous-réseau`,pass:`L'imprimante et Bambuddy sont sur le même sous-réseau.`,warn:`L'imprimante ({{printer_ip}}) et Bambuddy ({{host_ip}}) sont sur des sous-réseaux différents. Ils peuvent ne pas se joindre, sauf si un routage entre les sous-réseaux est configuré.`,skip:`Le sous-réseau n'a pas pu être déterminé — ignoré.`},mqtt_auth:{title:`Identifiants de l'imprimante`,pass:`L'imprimante a accepté la connexion.`,fail:`L'imprimante est accessible mais Bambuddy n'y est pas connecté. Le code d'accès ou le numéro de série est très probablement incorrect — le code d'accès change chaque fois que le mode LAN uniquement ou le mode développeur est activé/désactivé, recopiez-le donc depuis l'écran de l'imprimante. Une imprimante en cours de redémarrage, ou ayant déjà atteint sa limite de connexions simultanées, produit le même résultat.`,fail_auth_rejected:`L'imprimante a refusé les identifiants de Bambuddy. Le code d'accès ou le numéro de série est incorrect — le code d'accès change chaque fois que le mode LAN uniquement ou le mode développeur est activé/désactivé. Recopiez-le depuis l'écran de l'imprimante et enregistrez-le dans les paramètres de l'imprimante.`,skip:`Non vérifié — l'imprimante n'a pas pu être jointe.`},developer_mode:{title:`Mode développeur LAN`,pass:`Le mode développeur est activé.`,fail:`Le mode développeur est DÉSACTIVÉ sur l'imprimante. Activez-le dans les paramètres LAN de l'imprimante — et confirmez avec OK. Sans lui, les impressions ne démarreront pas.`,skip:`Impossible à vérifier — nécessite une connexion active à l'imprimante.`},printer_publishing:{title:`L'imprimante publie son état`,pass:`L'imprimante publie des mises à jour d'état — l'AMS, les filaments et les profils K seront correctement reflétés dans le slicer.`,fail:`Le broker MQTT a accepté la connexion mais l'imprimante n'a publié aucun rapport d'état. Il s'agit presque toujours d'un numéro de série erroné ou mal capitalisé — le topic device//api/v1/metricsでプリンターメトリクスを公開。`,bearerTokenOptional:`Bearerトークン(オプション)`,bearerTokenHint:`設定時、リクエストにAuthorization: Bearer が必要`,metricsConnectionStatus:`接続状態`,metricsPrinterState:`プリンター状態(idle/printing等)`,metricsPrintProgress:`印刷進捗 0-100%`,metricsBedTemp:`ベッド温度`,metricsNozzleTemp:`ノズル温度`,metricsPrintsTotal:`結果別の総印刷数`,metricsMore:`...その他(レイヤー、ファン、キュー、フィラメント使用量)`,smartPlugsDescription:`スマートプラグ(TasmotaまたはHome Assistant)を接続して、電源制御の自動化とプリンターのエネルギー使用量を追跡。`,allOn:`すべてオン`,allOff:`すべてオフ`,addSmartPlug:`スマートプラグを追加`,energySummary:`エネルギー概要`,currentPower:`現在の消費電力`,plugsOnline:`{{reachable}}/{{total}}プラグオンライン`,today:`今日`,yesterday:`昨日`,total:`合計`,enablePlugsForSummary:`プラグを有効にしてエネルギー概要を表示`,addNotificationProvider:`追加`,systemBadge:`(システム)`,creating:`作成中...`,changing:`変更中...`,deleteUserAndItems:`ユーザーとそのアイテムを削除`,deleteUserKeepItems:`ユーザーを削除、アイテムは保持(オーナーなしになります)`,ok:`OK`,twoFa:{totpTitle:`認証アプリ (TOTP)`,totpDesc:`Google Authenticator、Aegis、Authyなどのアプリを使用します。`,emailOtpTitle:`メールOTP`,emailOtpDesc:`ログイン時に{{email}}にワンタイムコードを送信します。`,emailOtpNoEmail:`この方法を有効にするには、アカウントにメールアドレスを追加してください。`,addEmailFirst:`アカウントにメールアドレスがありません。管理者に追加を依頼してください。`,setupTotp:`認証アプリを設定`,setupAuthApp:`認証アプリを設定`,setupInstructions:`認証アプリでQRコードをスキャンし、コードで確認してください。`,manualEntry:`スキャンできない場合は、このシークレットを手動で入力してください:`,scannedContinue:`コードをスキャンしました — 続ける`,enterCodeToConfirm:`認証アプリの6桁のコードを入力して設定を確認してください。`,activate:`有効化`,disableTotp:`認証アプリを無効化`,disableConfirmHint:`認証アプリを無効にするには、有効なTOTPコードまたはバックアップコードを入力してください。`,totpDisabled:`認証アプリが無効化されました。`,emailOtpEnabled:`メールOTPが有効化されました。`,emailOtpDisabled:`メールOTPが無効化されました。`,smtpRequired:`先にSMTP設定を構成してテストしてください。`,invalidCode:`無効なコードです。もう一度お試しください。`,enableEmailOtp:`メールOTPを有効化`,disableEmailOtp:`メールOTPを無効化`,emailSetupEnterCode:`確認コードがメールアドレスに送信されました。このメールボックスを所有していることを確認するために、以下に入力してください。`,verifyAndEnable:`確認して有効化`,emailDisablePasswordHint:`メールOTPの無効化を確認するには、アカウントのパスワードを入力してください。`,passwordPlaceholder:`パスワードを入力してください`,backupCodesTitle:`バックアップコードを保存`,backupCodesWarning:`これらのコードを安全な場所に保存してください。各コードは一度しか使用できません。`,backupCodesRemaining:`バックアップコード残り{{count}}個`,savedCodes:`コードを保存しました`,regenBackup:`バックアップコードを再生成`,regenBackupHint:`現在のTOTPコードを入力して10個の新しいバックアップコードを生成します。`,newBackupCodes:`新しいバックアップコード`,linkedAccounts:`リンクされたSSOアカウント`,linkedAccountsDesc:`これらの外部IDプロバイダーがあなたのアカウントにリンクされています。`,oidcUnlinked:`アカウントのリンクを解除しました。`},sessionPolicy:{title:`セッションポリシー`,description:`新しいユーザーログインの最大セッション有効期間。すでに発行されたトークンは元の有効期限を保持します。`,preset24h:`24時間`,preset7d:`7日`,preset30d:`30日`,customHoursLabel:`カスタムセッション有効期間(時間)`,hoursSuffix:`時間`,warning:`長いセッションは自動ログアウト保護を弱めます。信頼できる単一ユーザー環境でのみ推奨されます。`},oidc:{title:`SSO / OIDCプロバイダー`,desc:`シングルサインオン用のOpenID Connectプロバイダーを設定します。`,addProvider:`プロバイダーを追加`,newProvider:`新しいプロバイダー`,empty:`OIDCプロバイダーがまだ設定されていません。`,created:`プロバイダーが作成されました。`,updated:`プロバイダーが更新されました。`,deleted:`プロバイダーが削除されました。`,refreshIcon:`アイコンを再取得`,removeIcon:`アイコンを削除`,iconRefreshed:`アイコンを更新しました。`,iconRemoved:`アイコンを削除しました。`,iconFetchFailed:`プロバイダーURLからアイコンを取得できませんでした。`,deleteTitle:`プロバイダーを削除`,deleteMessage:`"{{name}}"を削除しますか?リンクされたすべてのユーザーアカウントが切断されます。`,form:{name:`表示名`,issuerUrl:`発行者URL`,clientId:`クライアントID`,clientSecret:`クライアントシークレット`,scopes:`スコープ`,iconUrl:`アイコンURL (任意)`,enabled:`有効`,autoCreate:`ユーザーを自動作成`,autoCreateDesc:`初回ログイン時にローカルアカウントを自動的に作成します。`,autoLink:`既存アカウントを自動リンク`,autoLinkDesc:`初回ログイン時にメールアドレスで既存のローカルアカウントにリンクします。`,secretHint:`空白のままで現在のものを維持`,secretPlaceholder:`新しいシークレット`,emailClaim:`メールクレーム`,emailClaimDesc:`メールIDとして使用するJWTクレーム。Azure Entra IDには'preferred_username'または'upn'を使用(email_verifiedを送信しない)。信頼できるクレーム名のみ使用してください。`,emailClaimPlaceholder:`メール`,emailClaimCustomClaimAutoLinkWarning:`カスタムクレームは、値がテナント管理されている場合(Azure Entra IDのupn / preferred_usernameなど)にのみ自動リンクに安全です。IdPがユーザーにこのクレームの自己宣言を許可している場合は、自動リンクを有効にしないでください。`,requireEmailVerified:`メール確認を要求`,requireEmailVerifiedDesc:`プロバイダーが確認済みとしてマークした場合にのみメールクレームを受け入れます。`,requireEmailVerifiedWarning:`警告:確認なしでメールが受け入れられます。信頼できるプロバイダーのみで使用してください。`,requireEmailVerifiedAutoLink:`この設定を変更するには、まず自動リンクを無効にしてください。`,defaultGroup:`デフォルトグループ`,defaultGroupDesc:`自動作成ユーザーに割り当てられるグループ。未設定の場合はViewersにフォールバックします。`,defaultGroupViewersFallback:`Viewers(デフォルト)`,autologin:`自動サインイン`,autologinDesc:`未認証の訪問者をこのプロバイダーに直接リダイレクトします。このフラグを付けられるプロバイダーは1つだけです。`}},encryption:{title:`MFA暗号化ステータス`,enabledFromEnv:`保存時の暗号化が有効(MFA_ENCRYPTION_KEY環境変数のキー)`,enabledFromFile:`保存時の暗号化が有効(データディレクトリから読み込んだキー)`,enabledGenerated:`保存時の暗号化が自動生成キーで有効`,notConfigured:`保存時の暗号化が設定されていません`,notConfiguredDesc:`TOTPシークレットとOIDCのclient_secretsは平文で保存されています。MFA_ENCRYPTION_KEYを設定するか、書き込み可能なデータディレクトリでBambuddyを再起動して自動生成してください。`,allEncrypted:`すべてのMFAシークレットは保存時に暗号化されています。`,legacyRowsLabel:`レガシー平文行`,encryptedRowsLabel:`暗号化された行`,legacyRowsWarning:`{{count}}件のレガシー平文行を検出。OIDCプロバイダーを再保存するか、ユーザーの認証アプリを再登録して暗号化ストレージへ移行してください。`,backupHint:`自動生成キーは DATA_DIR/.mfa_encryption_key に保存され、ローカルバックアップZIPに含まれます。バックアップを安全に保管するか、MFA_ENCRYPTION_KEYを明示的に設定してください。`,decryptionBrokenTitle:`暗号化キーが見つかりません`,decryptionBrokenError:`{{count}}件の暗号化レコードを復号できません。暗号化キーが見つかりません。以前のMFA_ENCRYPTION_KEYまたはDATA_DIR/.mfa_encryption_keyを復元してください。`,migrationErrorWarning:`{{count}} 件のレガシー行を起動時に再暗号化できませんでした。サーバーログを確認し、Bambuddy を再起動して再試行してください。`},pipelineLimits:{title:`スライサーパイプラインの上限`,maxCopiesLabel:`実行あたりの最大コピー数`,maxCopiesDesc:`パイプライン実行時にオペレーターが要求できるコピー数の上限。サーバー側の上限は 1000 です。`},pipelines:{title:`スライサーパイプライン`,subtitle:`再利用可能なプリセットバンドル(プリンター + プロセス + フィラメント + ベッドタイプ)。スライスダイアログから保存し、次のファイルにワンクリックで適用できます。`,loading:`パイプラインを読み込み中…`,loadError:`パイプラインを読み込めませんでした。`,confirmDelete:`このパイプラインを削除しますか?元に戻せません。`,staleWarning:`参照されているプリセットが見つかりません。スライスダイアログから再保存して修正してください。`,empty:{title:`パイプラインはまだありません。`,howto:`任意のファイルでスライスダイアログを開き、プリンター / プロセス / フィラメント / ベッドタイプを選んで「パイプラインとして保存」をクリックしてください。保存したパイプラインはここに表示されます。`},field:{name:`パイプライン名`,description:`説明`,targetPrinter:`対象プリンター`,noTarget:`— 対象なし —`,targetKind:`対象種別`,targetKindSpecific:`特定のプリンター`,targetKindClass:`プリンタークラス`,targetModelClass:`プリンターモデル`,fanoutStrategy:`分散戦略`,fanout:{max_parallel:`最大並列 — 一致する空きプリンターに分散`,round_robin:`ラウンドロビン — 適格なプリンター間で循環`,fill_one_first:`1台ずつ埋める — すべてのコピーを1台に固定`},fanoutShort:{max_parallel:`並列`,round_robin:`ラウンドロビン`,fill_one_first:`1台ずつ`}},action:{save:`保存`,cancel:`キャンセル`,rename:`名前変更`,delete:`削除`},slot:{printer:`プリンター`,process:`プロセス`,filament:`フィラメント`,filamentN:`フィラメント {{n}}`,filamentAll:`{{n}} スロットすべて`,bed:`ベッド`},group:{profiles:`プロファイル`,filaments:`フィラメント`},searchPlaceholder:`パイプラインを検索…`,filterTargetType:`対象種別でフィルター`,filterTarget:`対象でフィルター`,filter:{all:`すべての対象`,noTarget:`対象未設定`,count:`{{shown}} / {{total}}`,noMatches:`現在のフィルターに一致するパイプラインはありません。`},toast:{saved:`パイプラインを保存しました`,saveFailed:`保存に失敗しました`,deleted:`パイプラインを削除しました`,deleteFailed:`削除に失敗しました`},noTargetHint:`実行するには対象プリンターを設定してください`,noTargetWarning:`このパイプラインを実行する前に対象プリンターを設定してください。`,runs:{lastRun:`前回の実行`,status:{queued:`待機中`,slicing:`スライス中`,dispatching:`送信中`,in_progress:`印刷中`,completed:`完了`,failed:`失敗`,partial_failure:`部分的失敗`,cancelled:`キャンセル`}}}},notification:{printStarted:{title:`印刷開始`,body:`{{printer}}: {{filename}} の印刷を開始しました`},printCompleted:{title:`印刷完了`,body:`{{printer}}: {{filename}} が正常に完了しました`},printFailed:{title:`印刷失敗`,body:`{{printer}}: {{filename}} が失敗しました`},printStopped:{title:`印刷中止`,body:`{{printer}}: {{filename}} が中止されました`},printProgress:{title:`印刷進捗`,body:`{{printer}}: {{filename}} は {{percent}}% 完了`},printerOffline:{title:`プリンターオフライン`,body:`{{printer}} がオフラインです`},printerError:{title:`プリンターエラー`,body:`{{printer}} – {{error}}`},filamentLow:{title:`フィラメント残量低下`,body:`{{printer}}: フィラメントが残りわずかです`},maintenanceDue:{title:`メンテナンス期限`,body:`{{printer}}: {{items}} の対応が必要です`}},errors:{generic:`問題が発生しました`,networkError:`ネットワークエラーです。接続を確認してください。`,notFound:`見つかりません`,unauthorized:`認証エラー`,serverError:`サーバーエラー`,validationError:`入力内容を確認してください`,printerConnectionFailed:`プリンターへの接続に失敗しました`,saveFailed:`保存に失敗しました`,deleteFailed:`削除に失敗しました`,loadFailed:`データの読み込みに失敗しました`},hmsErrors:{title:`エラー - {{name}}`,noErrors:`エラーなし`,viewOnWiki:`Bambu Lab Wikiで表示`,mqttVerifyFailedRemedy:`プリンターで開発者モードを有効にし、プリンターを再起動してから、ジョブをもう一度開始してください。`,unknownCode:`不明なHMSコード — 詳細はBambu Lab Wikiを参照してください。`,clearInstructions:`プリンターでエラーをクリアするとここからも消えます。`,clearErrors:`エラーをクリア`,clearSuccess:`HMSエラーをクリアしました`,clearFailed:`HMSエラーのクリアに失敗しました`,actionSuccess:`アクションをプリンターに送信しました`,actionFailed:`アクションの送信に失敗しました`,runoutExpectedSlot:`{{ranOut}} のフィラメントが切れました。プリンターは現在 {{expected}} に対応するフィラメントを待っています。{{expected}} にスプールをセットして、「再試行」を選択してください。`,runoutExpectedSlotOnly:`プリンターは {{expected}} に対応するフィラメントを待っています。そこにスプールをセットして、「再試行」を選択してください。`,runoutSlotUnknown:`フィラメントが切れて印刷が一時停止しています。プリンターが現在要求しているスロットを Bambuddy が特定できませんでした。プリンターの画面で要求されているスロットを確認してください。`,actions:{RESUME_PRINTING:`印刷を再開`,RESUME_PRINTING_DEFECTS:`再開(不具合を許容)`,RESUME_PRINTING_PROBELM_SOLVED:`再開(問題解決)`,STOP_PRINTING:`印刷を停止`,CHECK_ASSISTANT:`アシスタントを開く`,FILAMENT_EXTRUDED:`フィラメント排出済み、続行`,RETRY_FILAMENT_EXTRUDED:`まだ排出されていない、再試行`,CONTINUE:`完了、続行`,LOAD_VIRTUAL_TRAY:`フィラメントを装填`,OK_BUTTON:`OK`,FILAMENT_LOAD_RESUME:`フィラメント装填完了、再開`,JUMP_TO_LIVEVIEW:`ライブビューを表示`,NO_REMINDER_NEXT_TIME:`次回は通知しない`,REFRESH_NOZZLE:`再確認`,IGNORE_NO_REMINDER_NEXT_TIME:`無視して次回は通知しない`,IGNORE_RESUME:`無視して再開`,PROBLEM_SOLVED_RESUME:`問題解決、再開`,TURN_OFF_FIRE_ALARM:`了解、火災警報をオフ`,RETRY_PROBLEM_SOLVED:`再試行(問題解決)`,CANCLE:`キャンセル`,STOP_DRYING:`乾燥を停止`,PROCEED:`続行`,OK_JUMP_RACK:`OK`,ABORT:`中止`,DISABLE_PURIFICATION:`この印刷では空気清浄を無効化`,DONT_REMIND_NEXT_TIME:`今後表示しない`,DBL_CHECK_CANCEL:`キャンセル`,DBL_CHECK_DONE:`完了`,DBL_CHECK_RETRY:`再試行`,DBL_CHECK_RESUME:`再開`,DBL_CHECK_OK:`確認`,REMOVE_CLOSE_BTN:`閉じる`}},mqttDebug:{title:`MQTTデバッグログ`,searchPlaceholder:`トピックまたはペイロードで検索...`,noMessages:`まだメッセージが記録されていません`,startLoggingHint:`「ログ開始」をクリックしてMQTTメッセージのキャプチャを開始`,noMessagesMatch:`フィルターに一致するメッセージがありません`,adjustFilterHint:`検索条件やフィルター条件を調整してみてください`,incoming:`受信`,outgoing:`送信`,loggingStopped:`ログ記録停止`,loggingActive:`ログ記録中 - メッセージは自動更新されます`,startLogging:`ログ記録を開始`,stopLogging:`ログ停止`,clearLog:`ログをクリア`,topic:`トピック`,timestamp:`タイムスタンプ`,direction:`方向`,all:`すべて`},printerFiles:{title:`ファイル管理`,storageUsed:`使用中:`,storageFree:`空き:`,filterPlaceholder:`ファイルを検索...`,deleteButton:`削除`,deleteFiles:`{{count}}件のファイルを削除`,deleteFileConfirm:`"{{name}}" を削除しますか?この操作は取り消せません。`,deleteFilesConfirm:`選択した{{count}}件のファイルを削除しますか?元に戻せません。`,noFiles:`このディレクトリにファイルがありません`,loadingFiles:`ファイルを読み込み中...`,failedToLoad:`ファイルの読み込みに失敗しました`,toast:{filesDeleted:`{{count}}件のファイルを削除しました`,deleteFailed:`削除に失敗: {{error}}`}},confirm:{delete:`削除しますか?`,unsavedChanges:`保存されていない変更があります。このページを離れますか?`,clearQueue:`キューをクリアしますか?`},login:{title:`Bambuddy ログイン`,subtitle:`アカウントにサインイン`,username:`ユーザー名`,usernamePlaceholder:`ユーザー名を入力`,usernameOrEmail:`ユーザー名またはメール`,usernameOrEmailPlaceholder:`ユーザー名または @ メール`,password:`パスワード`,passwordPlaceholder:`パスワードを入力`,signIn:`サインイン`,signingIn:`ログイン中...`,rememberMe:`ログイン状態を保持する`,forgotPassword:`パスワードをお忘れですか?`,autologinFailed:`SSOへの自動サインインに失敗しました。下から続行するプロバイダーを選択してください。`,localDisabledNotice:`ローカルサインインは無効化されています。下のSSOプロバイダーをご利用ください。`,loginSuccess:`ログインしました`,loginFailed:`ログインに失敗しました`,enterCredentials:`ユーザー名とパスワードを入力してください`,enterEmail:`メールアドレスを入力してください`,oidcLoginFailed:`OIDCログインに失敗しました`,oidcErrors:{providerError:`IDプロバイダーがエラーを返しました`,missingParameters:`OIDCコールバックに必須パラメーターがありません`,invalidState:`OIDCの状態が無効か、すでに使用されています`,stateExpired:`OIDCログインセッションが期限切れです。もう一度お試しください`,providerNotFound:`OIDCプロバイダーが見つかりません`,discoveryFailed:`OIDCディスカバリードキュメントの取得に失敗しました`,invalidDiscovery:`OIDCディスカバリードキュメントが無効です`,networkError:`OIDCトークン交換中にネットワークエラーが発生しました`,badResponse:`OIDCトークン交換中に予期しない応答を受信しました`,noIdToken:`OIDCプロバイダーがIDトークンを返しませんでした`,validationFailed:`OIDCトークンの検証に失敗しました`,nonceMismatch:`OIDCノンスが一致しません。リプレイ攻撃の可能性があります`,missingSubClaim:`OIDCトークンにsubクレームがありません`,noLinkedAccount:`このOIDCアイデンティティに関連付けられたローカルアカウントがありません`,accountInactive:`あなたのアカウントは無効です`,userResolutionFailed:`アカウントを解決できませんでした`,internalError:`OIDCログイン中に内部エラーが発生しました`,tokenExchangeFailed:`OIDCトークン交換に失敗しました`},forgotPasswordTitle:`パスワードを忘れた場合`,forgotPasswordMessage:`パスワードを忘れた場合は、システム管理者に連絡してリセットしてもらってください。`,forgotPasswordEmailMessage:`メールアドレスを入力すると、新しいパスワードを送信します。`,emailAddress:`メールアドレス`,emailPlaceholder:`your.email@example.com`,cancel:`キャンセル`,sending:`送信中...`,sendResetEmail:`リセットメールを送信`,howToReset:`パスワードのリセット方法:`,resetStep1:`Bambuddy管理者に連絡`,resetStep2:`ユーザー管理でパスワードリセットを依頼`,resetStep3:`管理者が新しい仮パスワードを設定`,resetStep4:`新しいパスワードでログインし、設定で変更`,gotIt:`了解`,twoFA:{title:`二段階認証`,subtitle:`アカウントは二段階認証で保護されています。確認コードを入力してください。`,methodAuthenticator:`認証アプリ`,methodEmail:`メール認証`,methodBackup:`バックアップコード`,instructionsTotp:`認証アプリを開いて、Bambuddy用の6桁のコードを入力してください。`,instructionsEmail:`6桁の確認コードをメールアドレスに送信しました。有効期限は10分です。`,instructionsEmailNotSent:`下のボタンをクリックして、メールで確認コードを受け取ってください。`,instructionsBackup:`8文字のバックアップコードをいずれか1つ入力してください。各コードは1回のみ使用可能です。`,sendCodeButton:`メールでコードを送信する`,sendingCode:`送信中...`,resendCode:`コードを再送する`,codeLabel:`確認コード`,backupCodeLabel:`バックアップコード`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`確認する`,verifyingButton:`確認中...`,backToLogin:`← ログイン画面に戻る`,orContinueWith:`または以下でログイン`,signInWith:`{{provider}}でログイン`,enterCode:`確認コードを入力してください`,sendCodeFailed:`確認コードの送信に失敗しました`,invalidCode:`無効なコードです。もう一度お試しください。`},resetPassword:{title:`新しいパスワードを設定`,subtitle:`下のフィールドに新しいパスワードを入力して確認してください。`,newPassword:`新しいパスワード`,newPasswordPlaceholder:`8文字以上`,confirmPassword:`パスワードの確認`,confirmPasswordPlaceholder:`新しいパスワードを再入力`,saving:`保存中…`,submit:`新しいパスワードを設定`,backToLogin:`ログインに戻る`,passwordsDoNotMatch:`パスワードが一致しません`,passwordTooShort:`パスワードは8文字以上で入力してください`,resetFailed:`パスワードのリセットに失敗しました。リンクが期限切れの可能性があります。`}},setup:{title:`Bambuddy セットアップ`,subtitle:`Bambuddyインスタンスの認証を設定`,enableAuth:`認証を有効化`,adminAccount:`管理者アカウント`,adminAccountDesc:`既に管理者ユーザーが存在する場合、既存の管理者アカウントを使用して認証が有効化されます。既存の管理者を使用する場合は下のフィールドを空のままにするか、新しい認証情報を入力して新しい管理者ユーザーを作成してください。`,adminUsername:`管理者ユーザー名`,adminPassword:`管理者パスワード`,optionalIfAdminExists:`(管理者ユーザーが存在する場合は任意)`,adminUsernamePlaceholder:`管理者ユーザー名を入力(任意)`,adminPasswordPlaceholder:`管理者パスワードを入力(任意)`,confirmPassword:`パスワードの確認`,confirmPasswordPlaceholder:`パスワードを確認`,settingUp:`セットアップ中...`,completeSetup:`セットアップを完了`,toast:{authEnabledAdminCreated:`認証が有効になり、管理者ユーザーが作成されました`,authEnabledExistingAdmins:`既存の管理者ユーザーを使用して認証が有効になりました`,setupCompleted:`セットアップが完了しました`,enterBothCredentials:`管理者のユーザー名とパスワードの両方を入力するか、既存の管理者を使用する場合は両方を空にしてください`,passwordsDoNotMatch:`パスワードが一致しません`,passwordTooShort:`パスワードは6文字以上必要です`}},changePassword:{title:`パスワードを変更`,currentPassword:`現在のパスワード`,currentPasswordPlaceholder:`現在のパスワードを入力`,newPassword:`新しいパスワード`,newPasswordPlaceholder:`新しいパスワードを入力(6文字以上)`,confirmPassword:`新しいパスワード確認`,confirmPasswordPlaceholder:`パスワードを確認`,passwordsDoNotMatch:`パスワードが一致しません`,passwordTooShort:`パスワードは6文字以上必要です`,changing:`変更中...`,success:`パスワードを変更しました`,failed:`パスワードの変更に失敗しました`},plateAlert:{title:`印刷が一時停止されました!`,message:`ビルドプレート上にオブジェクトが検出されました。印刷が自動的に一時停止されました。プレートをクリアして印刷を再開してください。`,understand:`了解`},camera:{title:`カメラビュー`,invalidPrinterId:`無効なプリンターID`,live:`ライブ`,snapshot:`スナップショット`,restartStream:`ストリームを再開`,refreshSnapshot:`スナップショットを更新`,fullscreen:`フルスクリーン`,exitFullscreen:`フルスクリーンを終了`,connectingToCamera:`カメラに接続中...`,capturingSnapshot:`スナップショットを撮影中...`,connectionLost:`接続が切断されました`,connectionFailed:`カメラ接続に失敗しました`,reconnecting:`{{countdown}}秒後に再接続... (試行 {{attempt}}/{{max}})`,reconnectNow:`今すぐ再接続`,cameraUnavailable:`カメラが利用できません`,cameraUnavailableDesc:`プリンターの電源がオンで接続されていることを確認してください。`,noCamera:`カメラがありません`,retry:`再試行`,cameraStream:`カメラストリーム`,zoomOut:`ズームアウト`,zoomIn:`ズームイン`,resetZoom:`ズームをリセット`,recording:`録画中`,startRecording:`録画開始`,stopRecording:`録画停止`,chamberLight:`チャンバーライト切替`,unavailable:`カメラは利用できません`,diagnose:{button:`診断`,modalTitle:`カメラ診断`,running:`診断を実行中...`,runFailed:`診断を実行できませんでした: {{error}}`,retry:`再実行`,stage:{tcp_reachable:`ネットワーク到達性`,first_frame:`フレーム取得`,live_stream_active:`ライブストリーム動作中`},summary:{all_ok:`カメラは正常に動作しています。診断のすべての段階が成功しました。`,live_stream_active_healthy:`カメラは現在新しいフレームを配信しています — テストは不要です。`,printer_unreachable:`プリンターに到達できません。IPアドレス、ネットワーク接続、プリンターの電源が入っていることを確認してください。`,camera_port_closed:`プリンターには到達できますが、カメラポートが閉じています。プリンター設定でLANのみモードと開発者モードが有効になっていることを確認してください。`,no_frame:`カメラに接続できましたがフレームを受信できませんでした。再試行するか、プリンター設定でカメラが有効になっていることを確認してください。`,unknown_failure:`カメラ診断が不明な理由で失敗しました。詳細はサポートログを確認してください。`},meta:{protocol:`プロトコル`,port:`ポート`,profile:`プロファイル`}}},groups:{title:`グループ管理`,subtitle:`アクセス制御の権限グループを管理`,backToSettings:`設定に戻る`,createGroup:`グループを作成`,noPermission:`このページにアクセスする権限がありません。`,system:`システム`,noDescription:`説明なし`,usersCount:`{{count}}人のユーザー`,permissionsCount:`{{count}}個の権限`,edit:`編集`,delete:`削除`,toast:{created:`グループを作成しました`,updated:`グループを更新しました`,deleted:`アーカイブを削除しました`,enterGroupName:`グループ名を入力`},modal:{editGroup:`グループを編集`,createGroup:`グループを作成`,cancel:`キャンセル`,saving:`保存中...`,creating:`作成中...`,saveChanges:`変更を保存`},form:{groupName:`グループ名`,groupNamePlaceholder:`グループ名を入力`,systemGroupWarning:`システムグループ名は変更できません`,description:`説明`,descriptionPlaceholder:`説明を入力(任意)`,permissions:`権限 ({{count}} 選択中)`},deleteModal:{title:`グループを削除`,message:`このグループを削除しますか?このグループのユーザーはこれらの権限を失います。`,confirm:`確認`},editor:{title:`グループを編集`,createTitle:`グループを作成`,search:`権限を検索...`,selectAll:`すべて選択`,clearAll:`すべて解除`,permissionsSelected:`{{count}}件選択`,noResults:`検索に一致する権限がありません`,websocketHint:`ライブ更新に必要です。この権限がないと、インターフェースは定期的なポーリングに切り替わります。`}},users:{title:`ユーザー管理`,subtitle:`ユーザーとBambuddyインスタンスへのアクセスを管理`,backToSettings:`設定に戻る`,createUser:`ユーザーを作成`,noPermission:`このページにアクセスする権限がありません。`,admin:`管理者`,noGroups:`グループなし`,active:`アクティブ`,inactive:`非アクティブ`,edit:`編集`,delete:`削除`,system:`システム`,noGroupsAvailable:`利用可能なグループがありません`,table:{username:`ユーザー名`,groups:`グループ`,status:`ステータス`,actions:`アクション`},toast:{created:`ユーザーを作成しました`,updated:`ユーザーを更新しました`,deleted:`アーカイブを削除しました`,fillRequired:`必須項目をすべて入力してください`,passwordsDoNotMatch:`パスワードが一致しません`,passwordTooShort:`パスワードは6文字以上必要です`,ldapProvisioned:`LDAPユーザー「{{username}}」をプロビジョニング`},modal:{createUser:`ユーザーを作成`,editUser:`ユーザーを編集`,cancel:`キャンセル`,creating:`作成中...`,saving:`保存中...`,saveChanges:`変更を保存`,advancedAuthSubtitle:`高度な認証を使用`,tabsAriaLabel:`ユーザーソース`,localTab:`ローカル`,ldapTab:`LDAP`,ldapSearchLabel:`ディレクトリを検索`,ldapSearchPlaceholder:`ユーザー名、名前、またはメールアドレスを入力...`,ldapMinChars:`検索するには2文字以上入力してください`,ldapTypeToSearch:`LDAPディレクトリを検索するには入力を開始`,ldapSearching:`ディレクトリを検索中...`,ldapNoResults:`ディレクトリに一致するユーザーがいません`,ldapSearchError:`ディレクトリ検索に失敗。LDAPサーバーの状態を確認してください。`,ldapAlreadyProvisioned:`プロビジョニング済み`,ldapSelectedLabel:`選択中`,ldapProvision:`ユーザーをプロビジョニング`,ldapProvisioning:`プロビジョニング中...`,ldapErrorProvision:`プロビジョニングに失敗。LDAPサーバーの状態を確認して再試行してください。`},form:{username:`ユーザー名`,usernamePlaceholder:`ユーザー名を入力`,email:`メール`,emailPlaceholder:`user@example.com`,password:`パスワード`,passwordPlaceholder:`パスワードを入力`,confirmPassword:`パスワードの確認`,confirmPasswordPlaceholder:`パスワードを確認`,newPasswordPlaceholder:`新しいパスワードを入力`,confirmNewPasswordPlaceholder:`新しいパスワードを確認`,leaveBlankToKeep:`(現在のパスワードを維持する場合は空白)`,groups:`グループ`,optional:`オプション`,autoGeneratedPassword:`安全なパスワードが自動的に生成され、ユーザーにメールで送信されます。`,passwordManagedByAdvancedAuth:`パスワードは高度な認証によって管理されています。「パスワードのリセット」を使用して、メールで新しいパスワードをユーザーに送信してください。`,resetPassword:`パスワードのリセット`,resettingPassword:`パスワードをリセット中...`},deleteModal:{title:`ユーザーを削除`,message:`このユーザーを削除してもよろしいですか?この操作は元に戻せません。`,confirm:`ユーザーを削除`}},streamOverlay:{title:`ストリームオーバーレイ`,invalidPrinterId:`無効なプリンターID`,cameraStream:`カメラストリーム`,progress:`進捗`,eta:`残り時間`,printerIdle:`プリンター待機中`,printerOffline:`プリンターオフライン`,status:{printing:`印刷中`,paused:`一時停止`,finished:`完了`,failed:`失敗`,idle:`待機中`,unknown:`不明`}},profiles:{title:`フィラメントプロファイル`,subtitle:`スライサープリセットと圧力キャリブレーションの管理`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`ローカルプロファイル`,kprofiles:`Kプロファイル`},orcaCloud:{connectedAs:`接続中`,connectedShort:`Orca Cloudに接続済み`,logout:`切断`,noLogoutPermission:`切断する権限がありません`,noConnectPermission:`Orca Cloudに接続する権限がありません`,retry:`再試行`,connectButton:`Orca Cloudに接続`,connect:{title:`Orca Cloudに接続`,description:`Orca Cloudアカウントにサインインして、スライサープロファイルをBambuddyに同期します。`},device:{title:`Orca CloudでBambuddyを承認`,instruction:`Orca Cloudを開いてこのコードを承認してください。承認するとBambuddyが自動的に接続されます。`,codeLabel:`ペアリングコード`,openButton:`Orca Cloud承認ページを開く`,manualHint:`または {{url}} にアクセスして、上記のコードを入力してください。`,waiting:`承認をお待ちしています…`,cancel:`キャンセル`},profiles:{title:`Orca Cloudプロファイル ({{count}})`,refresh:`更新`,empty:`Orca Cloudアカウントにまだプロファイルがありません。`},toast:{disconnected:`Orca Cloudから切断しました`},errors:{startFailed:`Orca Cloudのサインインを開始できませんでした。`,denied:`Orca Cloudでペアリングが拒否されました。`,expired:`ペアリングコードの有効期限が切れました。「接続」をクリックしてもう一度お試しください。`,pollFailed:`承認の待機中に接続が失われました。もう一度お試しください。`}},localProfiles:{title:`ローカルプロファイル`,subtitle:`OrcaSlicerからスライサープリセットをインポート・管理`,import:`プロファイルをインポート`,importDesc:`.bbscfg、.bbsflmt、.orca_filament、.zip、.jsonファイルをここにドロップ`,importing:`インポート中...`,search:`ローカルプリセットを検索...`,noPresets:`ローカルプリセットがまだありません`,noSearchResults:`検索に一致するプリセットがありません`,badge:`ローカル`,edit:`編集`,delete:`削除`,cancel:`キャンセル`,deleteConfirmTitle:`プリセットを削除`,deleteConfirm:`このプリセットを削除してもよろしいですか?元に戻せません。`,source:`ソース`,inheritsFrom:`継承元`,filamentType:`タイプ`,vendor:`メーカー`,compatiblePrinters:`プリンター`,nozzleTemp:`ノズル温度`,cost:`コスト`,density:`密度`,pressureAdvance:`プレッシャーアドバンス`,filament:`フィラメント`,process:`プロセス`,printer:`プリンター`,toast:{importSuccess:`{{count}}件のプリセットをインポートしました`,importSkipped:`{{count}}件のプリセットをスキップしました(重複)`,importError:`インポート中に{{count}}件のエラーが発生しました`,deleted:`プリセットを削除しました`,updated:`プリセットを更新しました`}},connectedAs:`接続中:`,signInExpiredTitle:`Bambu Cloud のサインインの有効期限が切れました`,signInExpiredBody:`保存されたトークンは Bambu Lab に受け付けられなくなりました。クラウドプロファイル、MakerWorld のインポート、ファームウェア確認を復元するには、再度サインインしてください。`,logout:`ログアウト`,noLogoutPermission:`ログアウトする権限がありません`,failedToLoad:`ファイルの読み込みに失敗しました`,retry:`リトライ`,time:{justNow:`たった今`,minsAgo:`{{count}}分前`,hoursAgo:`{{count}}時間前`,daysAgo:`{{count}}日前`},toast:{loggedOut:`ログアウトしました`},login:{title:`Bambuddy ログイン`,subtitle:`アカウントにサインイン`,email:`メールアドレス`,password:`パスワード`,region:`リージョン`,regionGlobal:`グローバル`,regionChina:`中国`,verificationCode:`認証コード`,totpCode:`認証アプリコード`,checkEmail:`メール ({{email}}) に届いた6桁のコードを入力してください`,enterTotpHint:`認証アプリの6桁のコードを入力してください`,accessToken:`アクセストークン`,accessTokenHint:`Bambu Cloud のアクセストークンを貼り付けてください。中国リージョンのアカウントはこの方法のみ利用可能です(電話番号認証のためメールログイン不可)。トークンの取得方法は MakerWorld の Cookie から(Wiki を参照)。`,back:`戻る`,loginButton:`ログイン`,verifyButton:`認証`,setTokenButton:`トークンを設定`,useToken:`アクセストークンを使用`,useEmail:`メールでログイン`,toast:{loggedIn:`ログインしました`,codeSent:`メールに認証コードを送信しました`,enterTotp:`認証アプリのコードを入力してください`,tokenSet:`トークンを設定しました`}},presets:{myPreset:`マイプリセット(編集可能)`,duplicate:`複製`,editable:`編集可能`,failedToLoadDetails:`プリセットの詳細を読み込めませんでした`,deleteConfirm:`このプロファイルを削除しますか?`,deleteWarning:`「{{name}}」をBambu Cloudから完全に削除します。元に戻せません。`,noDuplicatePermission:`プリセットを複製する権限がありません`,noEditPermission:`プリセットを編集する権限がありません`,noDeletePermission:`プロジェクトを削除する権限がありません`,types:{filament:`フィラメント`,printer:`プリンター`,process:`プロセス`},toast:{deleted:`アーカイブを削除しました`,created:`プリセットを作成しました`,updated:`プリセットを更新しました`,duplicated:`プリセットを複製しました`,fieldAdded:`フィールド "{{key}}" を追加しました`,exported:`プリセットをエクスポートしました`},baseLabel:`ベース: {{name}}`,currentLabel:`現在: {{name}}`,newPreset:`新規プリセット`,editPreset:`プリセットを編集`,duplicatePreset:`プリセットを複製`,createNewPreset:`新しいプリセットを作成`,customizeSettings:`新しいプリセットの設定をカスタマイズ`,compareWithBase:`ベースプリセットと比較`,compare:`比較`,basePreset:`ベースプリセット`,selectBasePreset:`ベースプリセットを選択...`,presetName:`プリセット名`,myCustomPreset:`カスタムプリセット`,inheritsFrom:`継承元:`,dropJsonToImport:`JSONファイルをドロップしてインポート`,tabs:{common:`一般`,allFields:`すべてのフィールド`},availableFields:`利用可能なフィールド`,searchFieldsPlaceholder:`フィールドを検索...`,noMatchingFields:`一致するフィールドがありません`,allFieldsAdded:`すべてのフィールドが追加済みです`,addCustomField:`カスタムフィールドを追加`,yourOverrides:`オーバーライド一覧`,noOverridesYet:`オーバーライドはまだありません`,clickFieldsToAdd:`左のフィールドをクリックして追加`,saveAsTemplate:`テンプレートとして保存`,jsonTip:`ヒント: .jsonファイルをこのモーダルにドラッグ&ドロップして設定をインポート`},cloudView:{searchPlaceholder:`プリセットを検索...`,templates:`テンプレート`,refresh:`更新`,newPreset:`新規プリセット`,clearFilters:`フィルターをクリア`,compareMode:`比較モード`,selectAnotherPreset:`同じタイプ({{type}})の別のプリセットを選択`,clickTwoPresets:`同じタイプのプリセットを2つクリックして比較`,selectFirst:`1. 最初を選択`,selectSecond:`2. 2番目を選択`,compareNow:`比較を実行`,lastSynced:`最終同期:`,showingCount:`{{total}} 件中 {{showing}} 件のプリセットを表示`,noPresetsFound:`プリセットが見つかりません`,columns:{filament:`フィラメント`,process:`プロセス`,printer:`プリンター`},noFilamentPresets:`フィラメントプリセットなし`,noProcessPresets:`プロセスプリセットなし`,noPrinterPresets:`プリンタープリセットなし`,filters:{type:`種類`,owner:`所有者`,printer:`プリンター`,nozzle:`ノズル`,filament:`フィラメント`,layer:`レイヤー`,all:`すべて`,myPresets:`マイプリセット`,builtIn:`ビルトイン`,process:`プロセス`},noTemplatesPermission:`テンプレートを管理する権限がありません`,noRefreshPermission:`プロファイルを更新する権限がありません`,noCreatePermission:`プロジェクトを作成する権限がありません`},templates:{title:`フィラメントプロファイル`,noTemplates:`テンプレートがありません。バックエンドを再起動してデフォルトテンプレートを作成してください。`,createFirst:`プリセットエディタからテンプレートを作成`,typeFilter:`タイプ:`,deleteTitle:`テンプレートを削除`,deleteWarning:`この操作は元に戻せません`,deleteConfirm:`"{{name}}" を削除しますか?`,namePlaceholder:`テンプレート名`,descriptionPlaceholder:`説明`,settingsJson:`設定 (JSON)`,fieldsCount:`{{count}}フィールド`,shownInModals:`モーダルに表示`,hiddenInModals:`モーダルで非表示`,apply:`適用`,toast:{deleted:`アーカイブを削除しました`,updated:`テンプレートを更新しました`,created:`テンプレートを作成しました`,applied:`テンプレートを適用しました`}}},support:{debugLoggingActive:`デバッグログが有効です`,manageLogs:`管理`,collectItem7:`プリンター接続状態とファームウェアバージョン`,collectItem8:`連携状態(Spoolman、MQTT、HA)`,collectItem9:`ネットワークインターフェース(サブネットのみ)`,collectItem10:`Pythonパッケージバージョン`,collectItem11:`データベース健全性チェック`,collectItem12:`Docker環境の詳細`,bundleGenerating:`バンドルを生成中...`,bundleStepConnection:`プリンターの接続確認を実行中`,bundleStepVirtualPrinters:`仮想プリンターのセットアップ確認を実行中`,bundleStepLogScan:`最近のログから既知の問題をスキャン中`,bundleStepBuild:`サポートバンドル ZIP を作成中`},fileManager:{title:`ファイル管理`,subtitle:`印刷ファイルの整理と管理`,uploadFiles:`ファイルをアップロード`,newFolder:`新しいフォルダ`,folderName:`フォルダ名`,folderNamePlaceholder:`例: 機能パーツ`,renameFile:`ファイル名を変更`,renameFolder:`フォルダ名を変更`,invalidFilenameChar:`印刷ファイル名に "{{char}}" は使用できません。プリンターのSDカードは次の文字を拒否します: < > : " / \\ | ? *`,moveFiles:`{{count}}件のファイルを移動`,rootNoFolder:`ルート(フォルダなし)`,current:`(現在)`,linkFolder:`フォルダをリンク`,linkFolderDescription:`「{{name}}」をプロジェクトまたはアーカイブにリンクしてすばやくアクセス。`,project:`プロジェクト`,archive:`アーカイブ`,noProjectsFound:`プロジェクトが見つかりません`,noArchivesFound:`アーカイブが見つかりません`,unlink:`リンク解除`,link:`リンク`,dragDropFiles:`ファイルをここにドラッグ&ドロップ`,dropFilesHere:`ここにファイルをドロップ`,releaseToUpload:`離してアップロード`,orClickToBrowse:`またはクリックして選択`,allFileTypesSupported:`すべてのファイルタイプに対応。ZIPファイルは展開されます。`,zipFilesDetected:`ZIPファイルを検出`,zipExtractOptions:`ZIPファイルは展開されます。フォルダー構造の処理方法を選択:`,preserveZipStructure:`ZIPのフォルダ構造を保持`,createFolderFromZip:`ZIPファイル名からフォルダーを作成`,stlThumbnailGeneration:`STLサムネイル生成`,zipMayContainStl:`ZIPファイルにSTLファイルが含まれている場合があります。展開時にサムネイルを生成できます。`,thumbnailsCanBeGenerated:`STLファイルのサムネイルを生成できます。大きなモデルは処理に時間がかかる場合があります。`,generateThumbnailsForStl:`STLファイルのサムネイルを生成`,threemfDetected:`3MFファイルを検出`,threemfExtractionInfo:`プリンターモデル、素材、色、印刷設定は3MFファイルから自動的に抽出されます。`,willBeExtracted:`• 展開予定`,filesExtracted:`• {{count}}個のファイルを展開済み`,uploadComplete:`アップロード完了: {{succeeded}} 件成功`,uploadFailed:`アップロード失敗`,zipFilesFailed:`{{count}}個のファイルが失敗`,uploading:`アップロード中...`,changeLink:`リンクを変更...`,linkTo:`リンク先...`,linkToProjectOrArchive:`プロジェクトまたはアーカイブにリンク`,generateThumbnail:`サムネイルを生成`,generateThumbnails:`サムネイルを生成`,generateThumbnailsForMissing:`サムネイルのないSTLファイルのサムネイルを生成`,gridView:`グリッド表示`,listView:`リスト表示`,lowDiskSpaceWarning:`ディスク容量不足の警告`,lowDiskSpaceDetails:`{{total}}中{{free}}の空き容量のみ。しきい値は設定で{{threshold}}GBに設定されています。`,files:`ファイル`,folders:`フォルダ`,size:`サイズ`,free:`空き:`,allFiles:`すべてのファイル`,allExternal:`外部`,externalIsEmpty:`外部ファイルはありません`,externalEmptyDescription:`リンクされた外部フォルダ内のファイルがここに表示されます。`,wrap:`折り返し`,enableTextWrapping:`テキスト折り返しを有効化`,disableTextWrapping:`テキスト折り返しを無効化`,collapse:`折りたたむ`,collapseFoldersByDefault:`フォルダをデフォルトで折りたたむ`,expandFoldersByDefault:`フォルダをデフォルトで展開する`,folderSort:`フォルダの並べ替え`,folderSortByName:`名前順`,folderSortByActivity:`最終更新順`,dragToResizeTooltip:`ドラッグしてリサイズ、ダブルクリックでリセット`,searchFiles:`ファイルを検索...`,searchSubfoldersHint:`サブフォルダーを含む`,readme:{truncated:`切り詰め`,show:`READMEを表示`,hide:`READMEを非表示`,label:`README`},tags:{title:`タグ`,subtitle:`ファイルに横断的なフィルタ用のラベルを付けます — おもちゃ、子ども向け、PETGのみ、など。`,manage:`タグ`,manageTitle:`タグカタログを管理`,add:`新しいタグ`,edit:`タグの名前を変更`,name:`名前`,fileCount:`ファイル数`,empty:`タグがまだありません。作成してファイルにラベル付けを始めましょう。`,noMatches:`一致するタグがありません。`,createPlaceholder:`例:おもちゃ、子ども向け、petg`,createButton:`作成`,nameRequired:`名前は必須です。`,searchPlaceholder:`タグを絞り込み...`,created:`タグを作成しました。`,updated:`タグの名前を変更しました。`,deleted:`タグを削除しました。`,saveFailed:`タグを保存できませんでした。`,deleteFailed:`タグを削除できませんでした。`,applyFailed:`タグを適用できませんでした。`,applyAdd:`タグを追加`,applyRemove:`タグを削除`,applyAddSuccess:`{{files}}個のファイルに{{count}}個のタグを追加しました。`,applyRemoveSuccess:`{{files}}個のファイルから{{count}}個のタグを削除しました。`,actionAdd:`選択したファイルに追加`,actionRemove:`選択したファイルから削除`,tagAction:`タグ付け`,bulkTitle:`選択した{{count}}個のファイルにタグ付け`,bulkTooltip:`選択したすべてのファイルでタグを追加・削除します。`,noPermission:`ファイルにタグを付ける権限がありません。`,filterLabel:`絞り込み:`,clearAll:`すべてクリア`,confirmDelete:`タグ「{{name}}」を削除しますか?`,confirmDeleteMessage:`カタログからタグを削除します。ファイル自体や他のタグはそのまま残ります。`,confirmDeleteInUseMessage:`このタグは{{count}}個のファイルに付いています。削除するとすべてのファイルからチップが消えますが、ファイル自体はそのままです。`,editAria:`{{name}}を編集`,deleteAria:`{{name}}を削除`},allTypes:`すべての種類`,prints:`印刷回数`,ascending:`昇順`,descending:`降順`,showModified:`更新日時を表示`,hideModified:`更新日時を非表示`,lastModified:`最終更新`,lastActivity:`最終アクティビティ`,resultsCount:`{{total}}件中{{showing}}件`,selectAll:`すべて選択`,deselectAll:`すべて選択解除`,selected:`{{count}}件選択中`,adding:`追加中...`,loadingFiles:`ファイルを読み込み中...`,folderIsEmpty:`フォルダーは空です`,noFilesYet:`ファイルはまだありません`,folderEmptyDescription:`ファイルをアップロードするか、このフォルダーにファイルを移動して開始しましょう。`,noFilesDescription:`印刷関連ファイルの整理を始めるにはファイルをアップロードしてください。`,noMatchingFiles:`一致するファイルがありません`,noMatchingFilesDescription:`現在の検索またはフィルター条件に一致するファイルがありません。`,clearFilters:`フィルターをクリア`,printedCount:`{{count}}回印刷済み`,uploadedBy:`アップロード者`,deleteFolder:`フォルダを削除`,deleteFile:`ファイルを削除`,deleteFilesCount:`{{count}}件のファイルを削除`,deleteFolderConfirm:`このフォルダを削除しますか?中のファイルもすべて削除されます。`,deleteFileConfirm:`このファイルを削除しますか?`,deleteFilesConfirm:`選択した{{count}}件のファイルを削除しますか?この操作は元に戻せません。`,deleting:`削除中...`,noPermissionRenameFolder:`フォルダー名を変更する権限がありません`,noPermissionLinkFolder:`フォルダーをリンクする権限がありません`,noPermissionDeleteFolder:`フォルダーを削除する権限がありません`,onlyEmptyFoldersDeletable:`空のフォルダーのみ削除できます`,noPermissionPrint:`印刷する権限がありません`,noPermissionSlice:`ファイルをスライスする権限がありません`,noPermissionAddToQueue:`キューに追加する権限がありません`,noPermissionDownload:`ファイルをダウンロードする権限がありません`,noPermissionRenameFile:`このファイル名を変更する権限がありません`,noPermissionGenerateThumbnail:`サムネイルを生成する権限がありません`,noPermissionDeleteFile:`このファイルを削除する権限がありません`,noPermissionCreateFolder:`フォルダーを作成する権限がありません`,noPermissionUpload:`ファイルをアップロードする権限がありません`,noPermissionMoveFiles:`ファイルを移動する権限がありません`,noPermissionDeleteFiles:`ファイルを削除する権限がありません`,linkExternal:`外部リンク`,linkExternalFolder:`外部フォルダをリンク`,linkExternalFolderDescription:`ホストディレクトリ(NAS、USB、ネットワーク共有)をファイルマネージャにマウントします。ファイルはコピーされず、元のパスから直接アクセスされます。`,externalFolderNamePlaceholder:`例:NASプリント`,externalPath:`ホストパス`,externalPathHelp:`Dockerホスト上のディレクトリの絶対パス。コンテナにバインドマウントされている必要があります。`,readOnly:`読み取り専用`,readOnlyHelp:`アップロードと削除を防止`,showHiddenFiles:`隠しファイルを表示(ドットファイル)`,externalFolder:`外部フォルダ`,scanFolder:`スキャン`,toast:{folderCreated:`フォルダを作成しました`,folderDeleted:`フォルダを削除しました`,fileDeleted:`ファイルを削除しました`,filesDeleted:`{{count}}件のファイルを削除しました`,filesMoved:`ファイルを移動しました`,folderLinked:`フォルダをリンクしました`,folderUnlinked:`フォルダのリンクを解除しました`,externalFolderLinked:`外部フォルダがリンクされスキャンされました`,folderScanned:`スキャン完了:{{added}}件追加、{{removed}}件削除`,addedToQueue:`{{count}}個のファイルをキューに追加しました`,addedToQueuePartial:`{{added}}件追加、{{failed}}件失敗`,failedToAddToQueue:`ファイルの追加に失敗: {{error}}`,fileRenamed:`ファイル名を変更しました`,folderRenamed:`フォルダ名を変更しました`,thumbnailsGenerated:`{{count}}件のサムネイルを生成しました`,thumbnailsGeneratedPartial:`{{succeeded}}件生成、{{failed}}件失敗`,noStlMissingThumbnails:`サムネイルのないSTLファイルはありません`,failedToGenerateThumbnails:`サムネイルの生成に失敗: {{error}}`,thumbnailGenerated:`サムネイルを生成しました`,failedToGenerateThumbnail:`サムネイルの生成に失敗: {{error}}`}},projects:{title:`プロジェクト`,subtitle:`印刷プロジェクトを管理`,newProject:`新規プロジェクト`,editProject:`プロジェクトを編集`,deleteProject:`プロジェクトを削除`,projectName:`プロジェクト名`,description:`説明`,noProjects:`プロジェクトはまだありません`,noProjectsFiltered:`{{status}}のプロジェクトはありません`,noProjectsFilteredHelp:`{{status}}のプロジェクトがありません。ステータスが変更されるとここに表示されます。`,createFirst:`最初のプロジェクトを作成して、関連する印刷の整理、進捗管理、ビルドの管理を始めましょう。`,createFirstButton:`最初のプロジェクトを作成`,create:`作成`,files:`ファイル`,prints:`印刷`,plates:`プレート`,parts:`パーツ`,lastModified:`最終更新日`,deleteConfirm:`このプロジェクトを削除しますか?アーカイブとキューアイテムはリンク解除されますが、削除されません。`,addFiles:`ファイルを追加`,removeFile:`ファイルを削除`,viewDetails:`詳細を表示`,namePlaceholder:`プロジェクト名`,descriptionPlaceholder:`プロジェクトの説明(任意)`,urlLabel:`URL`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`URLはhttp://またはhttps://で始まる必要があります`,openExternalUrl:`プロジェクトのURLを開く`,coverImageLabel:`カバー画像`,coverImageAlt:`プロジェクトのカバー画像`,coverImageUpload:`アップロード`,coverImageReplace:`置き換える`,coverImageRemove:`削除`,color:`色`,targetPlates:`目標プレート数`,targetPlatesPlaceholder:`例: 10`,targetPlatesHelp:`印刷ジョブの数`,targetParts:`目標パーツ数`,targetPartsPlaceholder:`例: 50`,targetPartsHelp:`必要なオブジェクトの総数`,targetSets:`ファイルごとの部数`,targetSetsPlaceholder:`例: 10`,targetSetsHelp:`各印刷可能ファイルを印刷する回数`,tagsLabel:`タグ(カンマ区切り)`,tagsPlaceholder:`カンマ区切りのタグ`,dueDate:`期限`,priority:`優先度`,priorityLow:`低`,priorityNormal:`通常`,priorityHigh:`高`,priorityUrgent:`緊急`,statusActive:`進行中`,statusCompleted:`完了`,statusArchived:`アーカイブ済み`,done:`完了`,completed:`完了`,failed:`失敗`,inQueue:`キュー内`,noPrintsYet:`印刷履歴なし`,printJobs:`印刷ジョブ`,partsPrinted:`印刷済みパーツ`,failedParts:`失敗パーツ`,import:`インポート`,export:`エクスポート`,importProject:`プロジェクトをインポート`,exportAll:`すべてのプロジェクトをエクスポート`,loading:`プロジェクトを読み込み中...`,noEditPermission:`プロジェクトを編集する権限がありません`,noDeletePermission:`プロジェクトを削除する権限がありません`,noCreatePermission:`プロジェクトを作成する権限がありません`,noImportPermission:`プロジェクトをインポートする権限がありません`,noExportPermission:`プロジェクトをエクスポートする権限がありません`,toast:{created:`プロジェクトを作成しました`,updated:`プロジェクトを更新しました`,deleted:`アーカイブを削除しました`,imported:`プロジェクトをインポートしました`,multipleImported:`{{count}}件のプロジェクトをインポートしました`,importFailed:`インポートに失敗しました`,exported:`プロジェクトをエクスポートしました(メタデータのみ)`}},projectDetail:{notFound:`見つかりません`,backToProjects:`プロジェクト一覧に戻る`,export:`エクスポート`,exportProject:`プロジェクトをエクスポート`,noExportPermission:`プロジェクトをエクスポートする権限がありません`,noEditPermission:`このプロジェクトを編集する権限がありません`,partOf:`所属先`,priorityLabel:`優先度`,noPrints:`このプロジェクトにはまだ印刷がありません`,status:{active:`進行中`,completed:`完了`,archived:`アーカイブ済み`},priority:{low:`低`,normal:`通常`,high:`高`,urgent:`緊急`},dueDate:{overdue:`期限超過`,today:`今日が期限`,daysLeft:`残り{{count}}日`},progress:{platesProgress:`プレート進捗`,partsProgress:`パーツ進捗`,setsProgress:`完成セット`,sets:`セット`,setsHint:`すべての印刷可能ファイルがこの回数に達するとセットが完成します`,printJobs:`印刷ジョブ`,parts:`パーツ`,percentComplete:`{{percent}}% 完了`,remaining:`残り {{count}} 件`},stats:{printJobs:`印刷ジョブ`,total:`合計`,failed:`失敗 {{count}} 件`,partsPrinted:`印刷済みパーツ {{count}} 件`,printTime:`印刷時間`,filamentUsed:`フィラメント使用量`},cost:{title:`コスト追跡`,filamentCost:`フィラメント`,energy:`エネルギー`,totalCost:`合計コスト`,total:`合計`,includesBom:`BOM含む`,budget:`予算`,remaining:`残り`},subProjects:{title:`サブプロジェクト ({{count}})`},notes:{title:`メモ`,noEditPermission:`このプロジェクトを編集する権限がありません`,placeholder:`このプロジェクトについてメモを追加...`,empty:`<空>`},files:{title:`ファイル`,linkFolders:`ファイルマネージャーからフォルダーをリンク`,forQuickAccess:`してクイックアクセスできるようにします。`,fileCount:`{{count}}ファイル`,empty:`<空>`,printedCount:`{{count}}回印刷済み`,progressTooltip:`{{target}}回中{{done}}回の印刷が完了`,noFiles:`このフォルダにファイルはありません。`},bom:{title:`部品表`,acquired:`{{completed}}/{{total}} 取得済み`,showAll:`すべて表示`,hideDone:`完了を非表示`,addPart:`パーツを追加`,noAddPermission:`パーツを追加する権限がありません`,partNamePlaceholder:`パーツ名`,partName:`パーツ名`,qty:`数量`,price:`価格 ({{currency}})`,sourcingUrlPlaceholder:`URL(任意)`,remarksPlaceholder:`備考`,deletePart:`パーツを削除`,deleteConfirm:`「{{name}}」を削除しますか?`,noUpdatePermission:`パーツを更新する権限がありません`,noEditPermission:`このプロジェクトを編集する権限がありません`,noDeletePermission:`プロジェクトを削除する権限がありません`,totalCost:`合計コスト`,empty:`<空>`},timeline:{title:`アクティビティタイムライン`,empty:`<空>`},template:{saveAsTemplate:`テンプレートとして保存`,noCreatePermission:`プロジェクトを作成する権限がありません`},queue:{title:`印刷キュー`,viewAll:`すべて表示`,printing:`印刷中 {{count}} 件`,queued:`キュー内 {{count}} 件`},prints:{title:`印刷 ({{count}})`},toast:{projectUpdated:`プロジェクトを更新しました`,partAdded:`パーツを追加しました`,partRemoved:`パーツを削除しました`,exportFailed:`エクスポートに失敗しました`,projectExported:`プロジェクトがエクスポートされました`,templateCreated:`プロジェクトからテンプレートを作成しました`}},system:{title:`システム情報`,version:`バージョン`,uptime:`稼働時間`,cpuUsage:`CPU使用率`,memoryUsage:`メモリ使用量`,diskUsage:`ディスク使用量`,networkInfo:`ネットワーク情報`,logs:`ログ`,debugMode:`デバッグモード`,enableDebug:`デバッグログを有効化`,disableDebug:`デバッグログを無効化`,downloadLogs:`ログをダウンロード`,clearLogs:`通知ログを削除`,dockerInfo:`Docker情報`,containerName:`コンテナ名`,imageName:`イメージ名`,platform:`プラットフォーム`,architecture:`アーキテクチャ`},sponsors:{sectionTitle:`独立・コミュニティ運営`,tagline:`Bambuddyは無料で、これからも無料です。支援してくださる方々のおかげで、VCもクラウドロックインもありません。`,viewSupporters:`サポーター一覧`,toastPrints:`Bambuddyで{{count}}件の印刷を完了しました。Bambuddyは支援者のおかげで無料で提供されています。`,toastCost:`Bambuddyで{{total}}分のフィラメントを記録しました。プロジェクトを支えてくれている方々をご覧ください。`,toastArchives:`{{count}}件の印刷をBambuddyでアーカイブしました。独立を支えてくれている方々をご覧ください。`,toastAnniversary:`Bambuddyとの1周年です!プロジェクトを支えてくれている方々をご覧ください。`,toastVersionUpdate:`v{{version}}にアップデートされました。Bambuddyは支援者のおかげで無料で提供されています。`,toastBusiness:`{{count}}台のプリンターでBambuddyを運用中ですね。チーム向けのサポートプランがあります(優先対応、請求書発行、開発者への直接窓口)。`,businessCta:`ビジネス向けBambuddy`,businessTitle:`ビジネス向けBambuddy`,businessTagline:`{{count}}台のプリンターを運用中です。チームやプリントファーム向けに、優先サポート、商用ライセンス、請求書発行をご用意しています。`},library:{title:`フィラメントライブラリ`,addFilament:`フィラメントを追加`,editFilament:`フィラメントを編集`,deleteFilament:`フィラメントを削除`,vendor:`メーカー`,material:`素材`,color:`色`,kFactor:`K値`,temperature:`温度`,noFilaments:`ライブラリにフィラメントがありません`,deleteConfirm:`このフィラメントを削除しますか?`,importFromPrinter:`プリンターからインポート`,exportToFile:`ファイルにエクスポート`,runWithPipeline:{actionLabel:`パイプラインで実行`,noPermission:`パイプラインを実行する権限がありません`,modalTitle:`パイプラインで実行`,confirmTitle:`実行を確認`,confirmIntro:`プリフライトでこの実行に関する問題が見つかりました`,sourceHint:`ソース`,pipelineHint:`パイプライン`,targetHint:`対象`,pipelineListAria:`利用可能なパイプライン`,runAnyway:`とにかく実行`,loading:`読み込み中…`,empty:`保存されたパイプラインはまだありません。スライスダイアログを開き「パイプラインとして保存」をクリックして作成してください。`,noTarget:`対象プリンターが未設定`,noTargetMessage:`このパイプラインには対象プリンターが設定されていません。設定で開いて選択してください。`,copies:`コピー数`,copiesHint:`最大 {{n}}`,classTarget:`任意の {{model}}`,toast:{started:`パイプラインの実行を開始しました`,failed:`実行を開始できませんでした`},issue:{printerNotSet:`このパイプラインに対象プリンターが設定されていません。`,printerNotFound:`対象プリンターが存在しません。`,printerDisabled:`対象プリンターは無効です。`,printerOffline:`対象プリンターはオフラインです。`,filamentType:`フィラメントスロット {{slot}}: 期待 {{expected}}、AMS は {{actual}}`,filamentColor:`フィラメントスロット {{slot}}: 色が異なります(期待 {{expected}}、AMS は {{actual}})`,amsSlotMissing:`AMS スロット {{slot}} はこのプリンターで利用できません`,filamentUnverified:`フィラメントスロット {{slot}} はクラウド/標準プリセットからのため、静的に検証できませんでした。`,noClassMatches:`このインストール内に、パイプラインの対象モデルクラス({{expected}})と一致するプリンターがありません。`,classNotSet:`パイプラインの対象がプリンタークラスに設定されていますが、モデルが選択されていません。`}}},slice:{title:`モデルをスライス`,action:`スライス`,actionAll:`{{count}} プレートすべてをスライス`,actionAllTitle:`すべてのプレートを 1 つのマルチプレート出力としてスライスします(アーカイブは 1 件)。フィラメントの選択はプロジェクトで定義されたすべてのスロットを対象とします。`,allPlatesToggle:`{{count}} プレートすべてをスライス`,slicing:`スライス中…`,printer:`プリンタープロファイル`,process:`プロセスプロファイル`,filament:`フィラメントプロファイル`,filamentSlot:`フィラメント {{index}}({{type}})`,selectPreset:`— プリセットを選択 —`,loadingPresets:`プリセットを読み込み中…`,analyzingPlateFilaments:`プレートのフィラメントを分析中…`,analyzingPlateFilamentsHint:`このプレートが使用するAMSスロットを検出するためにプレビュースライスを実行中。キャッシュ後は再オープンが即座になります。`,previewToast:`{{name}}を分析中 – {{elapsed}}`,previewWithProgress:`{{name}}を分析中 – {{stage}} ({{percent}}%) – {{elapsed}}`,notUsedByPlate:`— このプレートでは使用しない`,noPresetsForSlot:`プリセットなし`,otherPrinters:`他のプリンター`,presetsLoadFailed:`プリセットの読み込みに失敗。先に設定 → プロファイルからインポートしてください。`,refreshPresets:`再読み込み`,refreshPresetsTitle:`プリセットを再取得 — クラウドとバンドルの最新リストを取得します(Bambu Studio または Bambu Handy でプリセットを削除した後にお使いください)`,allPresetsRequired:`すべてのプリセットを選択する必要があります`,useEmbedded:`ファイルに埋め込まれた設定を使用`,useEmbeddedHint:`上のプロファイルではなく、設計者が設定したとおり(ウォール、インフィル、フィラメント)にスライスします。お使いのプリンターがファイルと一致するため利用できます。`,designSettings:`設計者の設定を保持`,designSettingsHint:`このファイルは標準プロファイルから {{count}} 個の印刷設定を変更しています。`,designSettingsSelected:`{{total}} 個中 {{selected}} 個を選択`,designSettingsPrinterCoupled:`プリンター固有`,designSettingsPrinterCoupledHint:`このファイルが対象とするプリンター向けに調整された値です。お使いのプリンターでは不適切または範囲外になる場合があります。`,enqueuing:`スライスジョブを送信中…`,queued:`待機中…`,failed:`スライスに失敗。サイドカーのログを確認してください。`,startedToast:`バックグラウンドで{{name}}をスライス中…`,queuedToast:`待機中: {{name}} – {{elapsed}}`,runningToast:`{{name}}をスライス中 – {{elapsed}}`,runningWithProgress:`{{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,runningWithProgressMultiPlate:`プレート {{plateIndex}} / {{plateCount}} • {{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,completedToast:`{{name}}をスライス済み`,failedTitle:`スライスに失敗しました`,failedToast:`{{name}}のスライスに失敗: {{detail}}`,tier:{local:`インポート済み`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`標準`},cloud:{notAuthenticated:`Bambu Cloudにサインイン(設定 → プロファイル → Bambu Cloud)してクラウドプリセットを表示。`,expired:`Bambu Cloudセッションの有効期限切れ – クラウドプリセットを更新するには再ログインしてください。`,unreachable:`Bambu Cloudに接続できません。ローカルと標準のプリセットは引き続き使用できます。`},orcaCloud:{notAuthenticated:`Orcaプリセットを表示するには、Orca Cloudにサインインしてください(プロファイル → Orca Cloud)。`,expired:`Orca Cloudセッションが期限切れです — Orcaプリセットを更新するには再度サインインしてください。`,unreachable:`Orca Cloudは現在到達できません。他のプリセットは引き続き動作します。`},bedType:{label:`ビルドプレート`,auto:`自動(プロセスプリセットを使用)`,coolPlate:`クールプレート`,coolPlateSuperTack:`Cool Plate SuperTack`,engineering:`Engineering Plate`,highTemp:`High Temp Plate`,texturedPEI:`Textured PEI Plate`,smoothPEI:`Smooth PEI Plate`},pipelines:{label:`パイプライン`,applyAria:`パイプラインを適用`,applyPrompt:`パイプラインを適用…`,empty:`保存されたパイプラインがありません`,saveButton:`パイプラインとして保存`,saveTitle:`現在の4つのスロットの選択を再利用可能なパイプラインとして保存`,namePlaceholder:`パイプライン名`,nameAria:`新しいパイプライン名`,toast:{applied:`「{{name}}」を適用しました`,saved:`パイプラインを保存しました`,saveFailed:`保存に失敗しました`}}},spoolman:{title:`Spoolman連携`,enabled:`Spoolman有効`,url:`Spoolman URL`,connected:`接続中`,disconnected:`未接続`,testConnection:`接続テスト`,sync:`同期`,syncing:`同期中...`,lastSync:`最終同期`,linkToSpoolman:`Spoolmanに連携`,openInSpoolman:`Spoolmanで開く`,unlinkSpool:`スプールのリンクを解除`,unlinkConfirmTitle:`スプールの割り当てを解除しますか?`,unlinkConfirmMessage:`このスロットからスプールが削除されます。スプール自体のデータは変更されません。`,selectSpool:`スプールを選択`,noUnlinkedSpools:`割り当てられていないスプールがありません`,linkSuccess:`スプールが正常に割り当てられました`,linkFailed:`スプールの割り当てに失敗しました`,unlinkSuccess:`スプールの割り当てが正常に解除されました`,unlinkFailed:`スプールの割り当て解除に失敗しました`,linkedSpool:`割り当て済みスプール`,spoolId:`スプールID`,fillSourceLabel:`(Spoolman)`,weight:`重量`,remaining:`残り`,disableWeightSync:`AMS推定重量同期を無効化`,disableWeightSyncDesc:`AMS推定値から残量を更新しません。AMSの割合ベースの推定よりもSpoolmanの使用量追跡を優先する場合に使用してください。新しいスプールは引き続きAMS推定値を初期重量として使用します。`,reportPartialUsage:`失敗した印刷の部分使用量を報告`,reportPartialUsageDesc:`印刷が失敗またはキャンセルされた場合、レイヤー進捗に基づいてその時点までの推定フィラメント使用量を報告します。`},locations:{title:`保管場所`,subtitle:`棚・引き出しなど、スプールの物理的な保管場所を管理`,add:`場所を追加`,addShort:`追加`,edit:`場所を編集`,name:`名前`,spools:`スプール`,empty:`保管場所がありません。最初の棚または引き出しを作成してください。`,manage:`保管場所`,createPlaceholder:`例: 棚A、引き出し1`,nameRequired:`場所名が必要です`,created:`場所を作成しました`,updated:`場所を更新しました`,deleted:`場所を削除しました`,saveFailed:`場所の保存に失敗しました`,deleteFailed:`場所の削除に失敗しました`,deleteBlocked:`削除前にこの場所のスプールをすべて移動してください`,confirmDelete:`「{{name}}」を削除しますか?`,confirmDeleteMessage:`この場所はカタログから削除されます。先にスプールを移動してください。`},inventory:{title:`スプール在庫管理`,subtitle:`スプールを管理`,addToInventory:`在庫に追加`,addToInventoryPending:`追加中...`,addToInventorySuccess:`スプールを在庫に追加しました`,addToInventoryFailed:`スプールの在庫追加に失敗しました`,unknownSpoolTitle:`新しいフィラメントを検出`,unknownSpoolMessage:`{{location}} で不明なRFIDタグのスプールが検出されました。今すぐ在庫に追加しますか?`,unknownSpoolSlot:`スロット`,bulk:{selectAllVisible:`表示中をすべて選択`,selectRow:`行を選択`,selectGroup:`グループを選択`,selectionCount:`{{count}} 件選択中`,edit:`編集`,printLabels:`ラベルを印刷`,resetUsage:`使用量をリセット`,restore:`復元`,archive:`アーカイブ`,delete:`削除`,clearSelection:`選択を解除`,editTitle:`スプールを一括編集`,editSubtitle:`選択中の {{count}} 件に適用されます。チェックを入れた項目のみ更新されます。`,editHint:`項目に入力すると更新対象としてマークされます。チェック済みの行のみ送信されます。空のままだとスプールは変更されません(項目を空にする操作はスプール個別の編集で行ってください)。`,useCustom:`"{{value}}" を使用`,toggleField:`この項目の更新を切り替え`,changeCount:`{{count}} 件の項目が更新されます。`,applyPending:`適用中...`,applyButton:`{{count}} 件に適用`,deleteTitle:`選択したスプールを削除`,archiveTitle:`選択したスプールをアーカイブ`,restoreTitle:`選択したスプールを復元`,resetUsageTitle:`選択したスプールの使用量をリセット`,deleteMessage:`{{count}} 件のスプールを完全に削除しますか?元に戻せません。`,archiveMessage:`{{count}} 件のスプールをアーカイブしますか?後で復元できます。`,restoreMessage:`{{count}} 件のアーカイブ済みスプールを復元しますか?`,resetUsageMessage:`{{count}} 件のスプールの「累計使用量」カウンターをリセットしますか?残量は保持されます。`,updateSuccess:`{{count}} 件のスプールを更新しました`,updateFailed:`一括更新に失敗しました`,updatePartial:`{{ok}} 件更新、{{failed}} 件失敗`,updateAllFailed:`{{count}} 件すべての更新に失敗しました — 再試行のため選択は維持されます`,deleteSuccess:`{{count}} 件のスプールを削除しました`,deleteFailed:`一括削除に失敗しました`,deletePartial:`{{ok}} 件削除、{{failed}} 件失敗`,deleteAllFailed:`{{count}} 件すべての削除に失敗しました — 再試行のため選択は維持されます`,archiveSuccess:`{{count}} 件のスプールをアーカイブしました`,archiveFailed:`一括アーカイブに失敗しました`,archivePartial:`{{ok}} 件アーカイブ、{{failed}} 件失敗`,archiveAllFailed:`{{count}} 件すべてのアーカイブに失敗しました — 再試行のため選択は維持されます`,restoreSuccess:`{{count}} 件のスプールを復元しました`,restoreFailed:`一括復元に失敗しました`,restorePartial:`{{ok}} 件復元、{{failed}} 件失敗`,restoreAllFailed:`{{count}} 件すべての復元に失敗しました — 再試行のため選択は維持されます`,invalidHex:`16進数 6 文字(RRGGBB)または 8 文字(RRGGBBAA)を入力してください。それ以外の場合この項目は適用されません。`},spoolmanMixedContentTitle:`Spoolman を HTTPS で読み込めません — ブラウザが混在コンテンツをブロックしています`,spoolmanMixedContentBody:`Bambuddy はリバースプロキシ経由で HTTPS 配信されていますが、Spoolman の URL は HTTP のままです。ブラウザはセキュリティ上の理由で混在コンテンツをブロックするため、埋め込みの Spoolman UI を表示できません。Spoolman も HTTPS でアクセスできる必要があります。`,spoolmanMixedContentFixReverseProxy:`Spoolman を Bambuddy と同じリバースプロキシ(Traefik / Nginx / Caddy)の後ろに HTTPS で配置し、設定で Spoolman URL を新しい HTTPS アドレスに更新してください。`,spoolmanMixedContentFixOpenNewTab:`回避策として Spoolman を新しいタブで HTTP として開くことができます — 混在コンテンツのルールは埋め込みフレームのみに適用され、独立したタブは問題なく動作します。`,spoolmanOpenInNewTab:`Spoolman を新しいタブで開く`,labels:{title:`スプールラベルを印刷`,selectedCount:`{{count}}件選択中`,pickSpools:`ラベルを印刷するスプールを選択:`,monochrome:`モノクロ(白黒プリンター)`,monochromeHint:`カラースウォッチを削除してテキストを広げます`,searchPlaceholder:`名前、ブランド、#IDで検索`,filterByMaterial:`素材:`,allMaterials:`すべて`,selectVisible:`表示中をすべて選択 ({{count}})`,deselectVisible:`表示中を選択解除`,clearAll:`すべてクリア`,noSpoolsToShow:`表示するスプールはありません。フィルターを調整して再試行してください。`,noMatches:`現在の検索またはフィルターに一致するスプールはありません。`,printOne:`このスプールのラベルを印刷`,printLabels:`ラベルを印刷…`,bulkTitle:`現在表示中の{{count}}件からラベルを印刷するスプールを選択`,noSpoolsTitle:`ラベル付けするスプールなし`,error:`ラベルを生成できませんでした: {{msg}}`,sortBy:{label:`並べ替え:`,id:`ID順`,color:`色順`},templates:{amsHolderSmall:{label:`AMS ホルダー — 小 (74 × 33 mm)`,hint:`1ページにつき1枚;MakerWorld モデル 752566 (AMS フィラメントラベルホルダー) の印刷可能なラベルに対応します。`},amsHolderLarge:{label:`AMS ホルダー — 大 (75 × 55 mm)`,hint:`1ページにつき1枚;AMS フィラメントラベルホルダーのカード紙挿入バージョンに対応します。色見本、ブランド、素材、ID、QR コードを表示できる広さです。`},box40x30:{label:`ボックスラベル (40 × 30 mm)`,hint:`1ページに1枚。DK/Brother の一般的なロールサイズで、フィラメント袋や保管箱のラベルに適しています。`},box:{label:`Box label (62 × 29 mm)`,hint:`1ページに1ラベル、Brother PT/QLおよびDymoの小さなラベル用サイズ。`},averyL7160:{label:`Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)`,hint:`EUシート規格、A4ページに21枚のラベル。`},avery5160:{label:`Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)`,hint:`米国シート規格、Letterページに30枚のラベル。`}}},csv:{importButton:`CSVインポート`,exportButton:`CSVエクスポート`,modalTitle:`CSVからスプールをインポート`,selectFile:`CSVファイルを選択するか、ここにドラッグ`,dragHint:`ヘッダー: material(必須)、brand、subtype、color_name、rgba、…`,parsing:`ファイルを読み込み中…`,previewError:`CSVファイルを読み込めませんでした`,validCount:`有効{{count}}件`,errorCount:`エラー{{count}}件`,skippedCount:`スキップ{{count}}件`,colRow:`行`,colStatus:`ステータス`,colColor:`色`,colorResolved:`カタログから色を補完`,colorCrossMaterial:`別の素材から色を取得しました — カタログに完全一致なし`,duplicateExisting:`この素材・ブランド・色のスプールは既に存在します — それでも新しいスプールとしてインポートされます`,spoolmanHint:`Spoolmanモードでは、Spoolman内蔵のCSVインポート/エクスポートを使用してください。`,importValidRows:`有効な{{count}}行をインポート`,noValidRows:`有効な行がありません`,importing:`インポート中…`,importSuccess:`{{count}}個のスプールをインポートしました`,importError:`インポートに失敗しました`,exportError:`エクスポートに失敗しました`},addSpool:`スプールを追加`,editSpool:`スプールを編集`,copySpool:`スプールをコピー`,material:`素材`,selectMaterial:`素材を選択...`,subtype:`サブタイプ`,brand:`ブランド`,searchBrand:`ブランドを検索...`,useCustomBrand:`「{{brand}}」を使用`,useCustomMaterial:`カスタム素材を使用: {{material}}`,suggestedOptions:`おすすめ`,allOptions:`すべて`,colorName:`色名`,colorNamePlaceholder:`ジェイドホワイト、ファイアレッド...`,color:`色`,hexColor:`HEXカラー`,pickColor:`カスタムカラーを選択`,labelWeight:`表示重量`,coreWeight:`空スプール重量`,searchSpoolWeight:`スプール重量を検索...`,weightUsed:`使用量`,currentWeight:`残量`,measuredWeight:`計測重量`,spoolName:`スプール`,costPerKg:`kgあたりのコスト`,storageLocation:`保管場所`,storageLocationPlaceholder:`例:棚A、引き出し1`,openInInventory:`インベントリで開く`,measuredWeightError:`計測重量は{{min}}gから{{max}}gの間で入力してください。`,slicerFilament:`スライサーフィラメント`,slicerFilamentName:`スライサープリセット名`,slicerPreset:`スライサープリセット`,searchPresets:`フィラメントプリセットを検索...`,selectedPreset:`選択済み`,noPresetsFound:`プリセットが見つかりません`,tempOverrides:`温度オーバーライド`,note:`メモ`,notePlaceholder:`このスプールに関する追加メモ...`,category:`カテゴリ`,categoryPlaceholder:`例:本番、試作、クライアントA`,categoryNone:`カテゴリなし`,storageLocationNone:`保管場所未設定`,lowStockThresholdOverride:`在庫低下のしきい値(このスプール)`,lowStockThresholdOverrideHelp:`空欄の場合、グローバル設定({{global}}%)を使用します。`,clearRfid:`RFIDタグをクリア`,rfidCleared:`RFIDタグをクリアしました`,archive:`アーカイブ`,restore:`復元`,noSpools:`スプールがありません。最初のスプールを追加してください。`,noAvailableSpools:`利用可能なスプールがありません。インベントリにスプールを追加するか、別のスロットからスプールの割り当てを解除してください。`,kProfiles:`Kプロファイル`,addKProfile:`Kプロファイルを追加`,assignSpool:`スプールを割り当て`,unassignSpool:`割り当て解除`,assignSuccess:`スプールを割り当て、AMSスロットを設定しました`,assignPendingInsert:`割り当てました。スプールを挿入したときにスロットが設定されます。`,assignFailed:`スプールの割り当てに失敗しました`,selectSpool:`このスロットに割り当てるスプールを選択`,assigned:`割り当て済み`,assigning:`割り当て中...`,searchSpools:`スプールを検索...`,showAllSpools:`すべてのスプールを表示`,spoolmanSpools:`Spoolman スプール`,allMaterials:`すべての素材`,filterByBrand:`ブランドで絞り込み...`,showArchived:`アーカイブ済みを表示`,quickAdd:`クイック追加(在庫)`,quantity:`数量`,stock:`在庫`,configured:`設定済み`,spoolsCreated:`{{count}}本のスプールを作成しました`,spoolsPartiallyCreated:`{{total}}本中{{created}}本のスプールを作成しました(一部失敗)`,spoolCreated:`スプールを作成しました`,spoolUpdated:`スプールを更新しました`,spoolDeleted:`スプールを削除しました`,deepLinkSpoolNotFound:`スプールが見つかりません`,deepLinkFetchFailed:`スプールを読み込めませんでした — もう一度お試しください`,spoolArchived:`スプールをアーカイブしました`,spoolRestored:`スプールを復元しました`,kProfileSaveFailed:`Kプロファイル設定を保存できませんでした`,syncWeightSpoolNotFound:`スプールが見つかりません — 削除された可能性があります`,syncWeightSpoolmanUnreachable:`Spoolmanに接続できません — 後でもう一度お試しください`,syncWeightFailed:`重量の同期に失敗しました`,spoolmanUnreachable:`Spoolmanに接続できません — 後でもう一度お試しください`,deleteSpoolNotFound:`スプールが見つかりません — すでに削除された可能性があります`,deleteFailed:`スプールを削除できませんでした`,archiveSpoolNotFound:`スプールが見つかりません — すでに削除された可能性があります`,archiveFailed:`スプールをアーカイブできませんでした`,restoreSpoolNotFound:`スプールが見つかりません — すでに削除された可能性があります`,restoreFailed:`スプールを復元できませんでした`,saveFailed:`変更を保存できませんでした`,tagClearFailed:`タグを削除できませんでした`,deleteConfirm:`このスプールを削除しますか?この操作は元に戻せません。`,archiveConfirm:`このスプールをアーカイブしますか?`,advancedSettings:`詳細設定`,filamentInfoTab:`フィラメント情報`,paProfileTab:`PAプロファイル`,filamentInfo:`フィラメント`,additional:`追加情報`,loadingPresets:`クラウドプリセットを読み込み中...`,cloudConnected:`クラウド接続済み`,cloudNotConnected:`クラウド未接続(デフォルト使用)`,recentColors:`最近`,searchColors:`色を検索...`,searchResults:`検索結果`,allColors:`すべての色`,commonColors:`一般的な色`,showLess:`少なく表示`,showAll:`すべて表示`,noColorsFound:`一致する色がありません`,noResults:`結果なし`,extraColorsLabel:`追加の色`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`2〜8個の16進数ストップをカンマで区切って貼り付けます。グラデーションとして表示されます。`,extraColorsInvalid:`無効な16進数を無視: {{tokens}}`,colorEffectLabel:`エフェクト`,colorEffect:{none:`なし`,sparkle:`スパークル`,wood:`ウッド`,marble:`マーブル`,glow:`グロー`,matte:`マット`,silk:`シルク`,galaxy:`ギャラクシー`,rainbow:`レインボー`,metal:`メタル`,translucent:`半透明`,gradient:`グラデーション`,dualColor:`デュアルカラー`,triColor:`トリカラー`,multicolor:`マルチカラー`},selectMaterialFirst:`フィラメント情報タブで素材を選択してください。`,noPrintersConfigured:`プリンターが設定されていません。プリンターを追加してください。`,matchingFilter:`フィルター`,anyBrand:`すべてのブランド`,anyVariant:`すべてのバリアント`,autoSelect:`自動選択`,matches:`件一致`,match:`件一致`,noMatches:`一致なし`,connected:`接続済み`,offline:`オフライン`,printerOffline:`プリンターがオフラインです。接続してキャリブレーションプロファイルを表示してください。`,noKProfilesMatch:`選択したフィラメントに一致するKプロファイルがありません。`,leftNozzle:`左ノズル`,rightNozzle:`右ノズル`,profilesSelected:`キャリブレーションプロファイル選択済み`,totalInventory:`在庫合計`,totalConsumed:`総消費量`,byMaterial:`素材別`,inPrinter:`プリンター内`,lowStock:`残量少`,sinceTracking:`追跡開始以降`,resetConsumedCounter:`カウンタをリセット`,resetConsumedCounterTooltip:`このスプールの消費量カウンタを0にする。残量は変更されません。`,resetConsumedCounterConfirm:`このスプールの消費量カウンタを0にリセットしますか?以降の印刷は再びゼロからカウントされます。スプール自体、残量計算、設定は変更されません。`,resetAllConsumedCounters:`すべてのカウンタをリセット`,resetAllConsumedCountersTooltip:`すべてのスプールの消費量カウンタを0にする。残量は変更されません。`,resetAllConsumedCountersConfirm:`{{count}}件すべてのスプール(アーカイブ済みを含む)の消費量カウンタを0にリセットしますか?「累計消費量」の値がクリアされ、以降の印刷はゼロからカウントされます。スプール自体と残量は変更されません。`,consumedCounterReset:`カウンタをリセットしました`,allConsumedCountersReset:`{{count}}件のスプールのカウンタをリセットしました`,resetConsumedCounterFailed:`カウンタのリセットに失敗しました`,loadedInAms:`AMS/Extに装填中`,remaining:`残り`,weightCheck:`重量チェック`,lastWeighed:`最終計量`,neverWeighed:`未計量`,search:`スプールを検索...`,showing:`表示`,to:`〜`,of:`/`,show:`表示`,spools:`スプール`,spool:`スプール`,page:`ページ`,noSpoolsMatch:`結果なし`,noSpoolsMatchDesc:`検索やフィルターを調整してみてください。`,active:`アクティブ`,archived:`アーカイブ済み`,all:`すべて`,used:`使用済み`,new:`新規`,clearFilters:`フィルターをクリア`,table:`テーブル`,cards:`カード`,net:`正味`,groupSimilar:`グループ化`,groupedSpools:`{{count}}本の同一スプール`,groupedRows:`行`,columns:`列`,configureColumns:`列の設定`,configureColumnsDesc:`ドラッグして並べ替えるか、矢印を使用してください。目のアイコンで表示/非表示を切り替えます。`,visible:`表示中`,reset:`リセット`,cancel:`キャンセル`,applyChanges:`変更を適用`,moveUp:`上へ移動`,moveDown:`下へ移動`,hideColumn:`列を非表示`,showColumn:`列を表示`,linkToSpool:`スプールにリンク`,tagLinked:`タグがスプールにリンクされました`,tagLinkFailed:`タグのリンクに失敗しました`,tagAlreadyLinked:`タグは既に別のスプールにリンクされています`,unknownTag:`不明なRFIDタグが検出されました`,usageHistory:`使用履歴`,noUsageHistory:`まだ使用記録がありません`,printName:`プリント名`,weightConsumed:`消費重量`,clearHistory:`クリア`,historyCleared:`使用履歴がクリアされました`,fillSourceLabel:`(在庫)`,lowStockThresholdError:`しきい値は0.1から99.9の間でなければなりません`,assignMismatchTitle:`材料の不一致`,assignMismatchMessage:`選択したスプールの材料「{{spoolMaterial}}」は、{{location}} のトレイ材料「{{trayMaterial}}」と一致しません。割り当てますか?`,assignMismatchConfirm:`強制的に割り当て`,assignPartialMismatchMessage:`スプールの材料「{{spoolMaterial}}」は「{{trayMaterial}}」に似ていますが、{{location}} と完全には一致しません。続行しますか?`,assignProfileMismatchMessage:`スプールのプロファイル「{{spoolProfile}}」は {{location}} のトレイプロファイル「{{trayProfile}}」と一致しません。続行しますか?`,assignReconfigureNote:`AMSスロットはスプールのプロファイルで再構成されます。`,spoolmanFilamentCatalog:`Spoolmanフィラメントカタログ`,pickFromSpoolmanCatalog:`Spoolmanカタログから選択…`,spoolmanFilamentSelected:`Spoolmanカタログからフィラメントを選択しました`,spoolmanFilamentUnlinked:`フィラメントカタログのリンクを解除しました`,noSpoolmanFilaments:`Spoolmanカタログにフィラメントが見つかりません`,spoolmanFilamentColorSwatch:`フィラメントの色`,spoolWeightManagedBySpoolman:`空スプールの重量はSpoolmanでフィラメントタイプごとに管理されています`,spoolmanCatalogLoadFailed:`Spoolmanのフィラメントカタログを読み込めませんでした`},timelapse:{title:`タイムラプス`,create:`タイムラプスを作成`,download:`ダウンロード`,delete:`削除`,preview:`プレビュー`,frameRate:`フレームレート`,quality:`品質`,processing:`バックアップファイルを処理中...`,noTimelapses:`利用可能なタイムラプスがありません`},ams:{title:`AMS`,slot:`スロット`,empty:`<空>`,emptySlot:`空のスロット`,slotEmpty:`空`,slotUnconfigured:`?`,emptySlotReset:`スプール未割当`,unknown:`不明`,humidity:`湿度`,temperature:`温度`,filamentType:`フィラメントタイプ`,filamentColor:`色`,remaining:`残り`,history:`AMS履歴`,noHistory:`メンテナンス履歴がありません`,configureSlot:`フィラメントプロファイルとK値でスロットを設定`,externalSpool:`外部スプール`,profile:`プロファイル`,kFactor:`K値`,fill:`充填率`,configure:`設定`,used:`使用済み`,remainingUnit:`残り`},printModal:{selectPrinter:`プリンターを選択`,selectPlate:`プレートを選択`,filamentMapping:`フィラメントマッピング`,plateN:`プレート {{n}}`,plateFilamentsUnreadable:`選択したプレートのフィラメントを読み取れなかったため、割り当てできません。そのプレートの選択を解除すると、残りをキューに追加できます。`,totalCost:`合計コスト:`,slotRemainingShort:` - 残{{grams}}g`,printSettings:`印刷設定`,bedLeveling:`ベッドレベリング`,flowCalibration:`フローキャリブレーション`,vibrationCalibration:`振動キャリブレーション`,layerInspection:`第一層検査`,timelapse:`タイムラプス`,cancel:`キャンセル`,noPrintersAvailable:`利用可能なプリンターがありません`,printerBusy:`プリンターは使用中です`,printerOffline:`プリンターはオフラインです`,sameTypeDifferentColor:`同じ種類、異なる色`,filamentTypeNotLoaded:`フィラメントタイプが未読み込み`,whenToPrint:`印刷タイミング`,asap:`即時`,queue:`キュー`,schedule:`スケジュール`,dateTime:`日時`,invalidDateTime:`有効な日時を入力してください`,openCalendar:`カレンダーを開く`,requireManualStart:`手動開始を要求`,requirePreviousSuccess:`前の印刷が成功した場合のみ開始`,autoOffAfter:`完了後にプリンターの電源を切る`,helpAsap:`印刷はキューの先頭に追加され、対象プリンターがアイドルになるとすぐに開始します。`,helpSchedule:`予定時刻にプリンターがアイドルであれば印刷を開始します。使用中の場合は、利用可能になるまで待機します。`,helpQueue:`印刷はキューの最後に追加されます。`,leftNozzle:`L`,rightNozzle:`R`,leftNozzleTooltip:`左ノズル`,rightNozzleTooltip:`右ノズル`,filamentOverride:`フィラメントオーバーライド`,filamentOverrideHint:`モデルベースの割り当てに使用するフィラメントをオプションで上書きします。スケジューラは元の3MF値ではなく、選択したフィラメントに基づいてマッチングします。`,originalFilament:`オリジナル`,overrideWith:`変更先`,resetToOriginal:`オリジナルに戻す`,insufficientFilamentTitle:`フィラメントが不足しています`,waitingForAmsStatus:`{{printer}} のAMSステータスを待機しています…`,insufficientFilamentMessage:`割り当てられたスプールの一部は、この印刷に必要な量より残量が少ないです:`,insufficientFilamentLine:`{{printer}} - {{slot}}: 必要 {{required}}g、残り {{remaining}}g`,printAnyway:`それでも印刷`,forceColorMatch:`カラーマッチを強制`,staggerPrinterStarts:`プリンター開始を段階的に`,staggerGroupSize:`グループサイズ`,staggerInterval:`間隔(分)`,staggerPreview:`{{printers}}台のプリンター → {{size}}台ずつ{{groups}}グループ、{{interval}}分ごとに開始`,staggerLastGroup:`最終グループ: {{count}}`,staggerTotal:`合計: {{minutes}}分`,staggerToPrinters:`{{count}}台のプリンターに段階的に送信`,gcodeInjection:`自動印刷G-codeを挿入`},backup:{includesEncryptionKey:`ローカルバックアップにはMFA暗号化キーファイル(DATA_DIR/.mfa_encryption_key)が含まれ、バックアップZIPは自己完結型です。ZIPを機密扱いしてください — ファイルを持つ人は誰でも内部のOIDCクライアントシークレットとTOTPシークレットを復号できます。`,title:`バックアップと復元`,createBackup:`バックアップを作成`,restoreBackup:`バックアップの復元`,restoreDescription:`バックアップファイルからすべてのデータを置き換える`,downloadBackup:`バックアップをダウンロード`,uploadBackup:`バックアップをアップロード`,lastBackup:`最終バックアップ`,autoBackup:`自動バックアップ`,backupNow:`今すぐバックアップ`,restoreWarning:`警告: バックアップの復元は現在のすべてのデータを上書きします。`,includeArchives:`アーカイブを含む`,includeSettings:`設定を含む`,includeProfiles:`プロファイルを含む`,backupSuccess:`バックアップを作成しました`,restoreSuccess:`バックアップを復元しました`,backupFailed:`バックアップに失敗しました`,restoreFailed:`復元に失敗しました`,restoreNote:`復元中、仮想プリンターは停止されます`,githubBackup:`GitHubバックアップ`,enabled:`有効`,cloudLoginRequired:`Bambu Cloudログインが必要です。GitHubバックアップを有効にするには、プロファイル → クラウドプロファイルからサインインしてください。`,cloudLoginRequiredShort:`Cloudログインが必要`,githubDescription:`プロファイルをプライベートGitHubリポジトリに自動的に同期し、バックアップとバージョン履歴を保持します。`,repoIsPrivate:`リポジトリはプライベートです — バックアップしても安全です。`,repoIsPublicWarning:`リポジトリが公開(PUBLIC)です。Bambuddyのバックアップには MQTT 認証情報、Home Assistant トークン、Prometheus トークン、Bambu Cloud のメールアドレス、K-プロファイル経由のプリンタアクセスコードが含まれます。プロバイダー側でリポジトリをプライベートに変更するまで保存はブロックされます。`,repoVisibilityUnknown:`リポジトリの公開設定を確認できませんでした。Bambuddy はプライベートと確認できないリポジトリへのバックアップを拒否します。保存はブロックされます。`,repositoryUrl:`リポジトリURL`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`安全でないHTTPを許可`,allowInsecureHttpHint:`TLSなしのプライベートネットワーク上のセルフホストインスタンスに対して有効化`,personalAccessToken:`個人アクセストークン`,tokenSaved:`(保存済み)`,enterNewToken:`新しいトークンを入力して更新`,tokenHint:`Contents読み書き権限を持つきめ細かいトークン`,branch:`ブランチ`,provider:`Gitプロバイダー`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`手動のみ`,hourly:`毎時`,daily:`毎日`,weekly:`毎週`,includeInBackup:`バックアップに含める`,kProfiles:`Kプロファイル`,kProfilesDescription:`接続されたプリンターからの圧力キャリブレーション`,noPrintersConnected:`プリンターが接続されていません`,printersConnected:`{{connected}}/{{total}} 接続済み`,cloudProfiles:`クラウドプロファイル`,cloudProfilesDescription:`Bambu Cloudからのフィラメント、プリンター、プロセスプリセット`,appSettings:`アプリ設定`,appSettingsDescription:`Bambuddy設定(データベース全体)`,spoolInventory:`スプール在庫`,spoolInventoryDescription:`フィラメントスプール、使用履歴、コスト追跡`,printArchives:`印刷アーカイブ`,printArchivesDescription:`印刷履歴メタデータ(gcode/3MFファイルなし)`,lastBackupAt:`最終バックアップ:`,noBackupsYet:`バックアップはまだありません`,next:`次回:`,startingBackup:`バックアップを開始しています...`,test:`テスト`,enableBackup:`バックアップを有効化`,testConnection:`接続テスト`,enterRepoUrl:`リポジトリURLを入力してください`,enterRepoAndToken:`リポジトリURLとアクセストークンを入力してください`,repoRequired:`リポジトリURLは必須です`,tokenRequired:`アクセストークンは必須です`,githubBackupEnabled:`GitHubバックアップが有効になりました`,tokenUpdated:`トークンが更新されました`,settingsSaved:`設定が保存されました`,failedToSave:`保存に失敗しました: {{message}}`,backupCompleteFiles:`バックアップ完了 - {{count}}ファイルが更新されました`,backupSkippedNoChanges:`バックアップをスキップ - 変更なし`,backupFailed2:`バックアップに失敗しました: {{message}}`,clearedLogs:`{{count}}件のログを削除しました`,failedToClearLogs:`ログの削除に失敗しました: {{message}}`,history:`履歴`,clear:`クリア`,date:`日付`,status:`ステータス`,commit:`コミット`,localBackup:`ローカルバックアップ`,localBackupDescription:`データベース、アーカイブ、アップロード、すべてのファイルを含むBambuddyデータの完全なバックアップを作成します。`,downloadBackupLabel:`バックアップをダウンロード`,completeBackupZip:`完全バックアップ: データベース + 全ファイル (ZIP)`,download:`ダウンロード`,preparingBackup:`バックアップを準備しています...`,creatingArchive:`バックアップアーカイブを作成しています...大きなアーカイブの場合、時間がかかることがあります。`,downloadingFile:`バックアップファイルをダウンロードしています...`,backupDownloaded:`バックアップのダウンロードが成功しました`,failedToCreateBackup:`バックアップの作成に失敗しました: {{message}}`,restore:`復元`,restoreReplacesAll:`復元はすべてのデータを置き換えます。`,restoreReplacesAllDetail:`現在のデータベースとファイルは完全に置き換えられます。復元後に再起動が必要です。`,restoreConfirmTitle:`バックアップを復元`,restoreConfirmMessage:`"{{filename}}"から復元してもよろしいですか?現在のデータベースとすべてのファイルが完全に置き換えられます。復元後にアプリケーションの再起動が必要です。`,restoreConfirmButton:`バックアップを復元`,uploadingFile:`バックアップファイルをアップロードしています...`,backupRestoredRestart:`バックアップが復元されました。Bambuddyを再起動してください。`,failedToRestore:`バックアップの復元に失敗しました。ファイル形式を確認してください。`,reloadNow:`今すぐリロード`,creatingBackup:`バックアップを作成中`,restoringBackup:`バックアップを復元中`,preparing:`準備中...`,processing:`処理中...`,doNotClosePage:`このページを閉じたり、移動しないでください。大きなバックアップの場合、この操作には数分かかることがあります。`,restoring:`復元中...`,restoreComplete:`復元完了`,restoreFailed2:`復元失敗`,importSettings:`バックアップファイルから設定をインポート`,pleaseWaitRestoring:`データの復元中です。お待ちください`,selectBackupFile:`クリックしてバックアップファイルを選択 (.jsonまたは.zip)`,duplicateHandling:`重複処理の仕組み:`,matchPrinters:`プリンター`,matchPrintersBy:`シリアル番号で照合`,matchSmartPlugs:`スマートプラグ`,matchSmartPlugsBy:`IPアドレスで照合`,matchNotificationProviders:`通知プロバイダー`,matchNotificationProvidersBy:`名前で照合`,matchFilaments:`フィラメント`,matchFilamentsBy:`名前 + タイプ + ブランドで照合`,matchArchives:`アーカイブ`,matchArchivesBy:`コンテンツハッシュで照合(常にスキップ)`,matchPendingUploads:`保留中のアップロード`,matchPendingUploadsBy:`ファイル名で照合`,matchSettingsTemplates:`設定とテンプレート`,matchSettingsTemplatesBy:`常に上書き`,replaceExisting:`既存のデータを置き換え`,keepExisting:`既存のデータを保持`,overwriteDescription:`既に存在する項目をバックアップデータで上書き`,keepDescription:`まだ存在しない項目のみ復元`,overwriteCaution:`注意:`,overwriteWarning:`上書きすると、現在の設定がバックアップのデータで置き換えられます。プリンターのアクセスコードはセキュリティのため上書きされません。`,cancel:`キャンセル`,processingBackup:`バックアップファイルを処理しています...`,itemsRestored:`復元済み`,itemsSkipped:`スキップ済み`,restored:`復元済み`,skippedAlreadyExist:`スキップ(既に存在)`,filesCategory:`ファイル(3MF、サムネイルなど)`,andMore:`...他{{count}}件`,newApiKeysGenerated:`新しいAPIキーが生成されました`,keysShownOnce:`これらのキーは一度だけ表示されます。今すぐコピーしてください!`,copy:`コピー`,noDataFound:`バックアップファイルに復元するデータが見つかりませんでした。`,close:`閉じる`,scheduledBackup:`スケジュールされたバックアップ`,scheduledBackupDescription:`スケジュールに基づいてバックアップスナップショットを自動作成。出力ディレクトリはNASや外部ストレージにマウント可能。`,frequency:`頻度`,backupTime:`時間`,retention:`保持期間`,retentionDescription:`保持するバックアップ数`,outputPath:`出力パス`,outputPathPlaceholder:`デフォルト: {{path}}`,outputPathDescription:`デフォルトの場所を使用する場合は空白のまま`,runNow:`今すぐ実行`,backupFiles:`バックアップファイル`,noScheduledBackups:`バックアップなし`,deleteBackup:`削除`,deleteBackupConfirm:`このバックアップファイルを削除しますか?`,backupRunning:`バックアップ中...`,scheduledBackupComplete:`バックアップが正常に完了しました`,scheduledBackupFailed:`バックアップに失敗`,nextBackup:`次回バックアップ`,backupSize:`サイズ`,localTimeHint:`現地時刻 ({{tz}})`,defaultPathLabel:`デフォルト:`,pathCheck:{title:`Bambuddy はこのディレクトリに書き込めません`,howToFix:`対処方法:`,sandboxed:`Bambuddy サービスは {{path}} に書き込めません。systemd ユニットが ProtectSystem=strict で動作しているため、インストール・データ・ログの各ディレクトリ以外はすべてサービスから読み取り専用になります。自分のシェルからは書き込める場所であっても同様です。`,read_only:`{{path}} は読み取り専用のファイルシステム上にあります。`,permission_denied:`Bambuddy には {{path}} への書き込み権限がありません。ディレクトリの所有者とパーミッションを確認してください。`,no_space:`{{path}} があるファイルシステムに空き容量がありません。`,not_a_directory:`{{path}} は存在しますが、ディレクトリではありません。`,missing:`{{path}} は存在せず、作成もできませんでした。`,error:`Bambuddy は {{path}} に書き込めません。`,ephemeralTitle:`これらのバックアップはコンテナの再作成で失われます`,container_ephemeral:`{{path}} はホストではなく Bambuddy コンテナ内にあります。そこに書き込まれたバックアップはコンテナを再作成すると失われます。ホスト側のディレクトリをマウントしてください:`},categories:{settings:`設定`,notification_providers:`通知プロバイダー`,notification_templates:`通知テンプレート`,smart_plugs:`スマートプラグ`,printers:`プリンター`,filaments:`フィラメント`,maintenance_types:`メンテナンスタイプ`,archives:`アーカイブ`,projects:`プロジェクト`,pending_uploads:`保留中のアップロード`,external_links:`外部リンク`,api_keys:`APIキー`}},tags:{title:`タグ`,addTag:`タグを追加`,editTag:`タグを編集`,deleteTag:`タグを削除`,tagName:`タグ名`,tagColor:`タグの色`,noTags:`タグがありません`,deleteConfirm:`このタグを削除しますか?`,manageTags:`タグを管理`},uploadModal:{title:`3MFファイルのアップロード`,dragDrop:`.3mfファイルをここにドラッグ&ドロップ`,or:`または`,browseFiles:`ファイルを参照`,extractionInfo:`プリンターモデルは3MFファイルのメタデータから自動的に抽出されます。`,uploaded:`アップロード済み`,failed:`アップロードに失敗しました`,uploading:`アップロード中...`,upload:`アップロード`,uploadFailed:`アップロード失敗`},editArchive:{title:`アーカイブを編集`,name:`名前`,namePlaceholder:`印刷名`,printer:`プリンター`,noPrinter:`プリンターなし`,project:`プロジェクト`,noProject:`プロジェクトなし`,itemsPrinted:`印刷数`,itemsPrintedHelp:`この印刷ジョブで製造したアイテム数`,notes:`メモ`,notesPlaceholder:`この印刷についてメモを追加...`,externalLink:`外部リンク`,externalLinkPlaceholder:`https://...`,externalLinkHelp:`Printables、Thingiverse、その他のソースへのリンク`,tags:`タグ`,tagsPlaceholder:`タグを追加...`,addMoreTags:`タグをさらに追加...`,matchingTags:`"{{query}}" に一致`,existingTags:`既存のタグ`,clickToAdd:`(クリックして追加)`,status:`ステータス`,failureReason:`失敗理由`,selectReason:`理由を選択...`,photos:`印刷結果の写真`,photosHelp:`+ をクリックして印刷結果の写真を追加`,printResult:`印刷結果`,saving:`保存中...`,failureReasons:{adhesionFailure:`定着不良`,spaghettiDetached:`スパゲッティ / 剥離`,layerShift:`レイヤーシフト`,cloggedNozzle:`ノズル詰まり`,filamentRunout:`フィラメント切れ`,warping:`反り`,stringing:`糸引き`,underExtrusion:`押出不足`,powerFailure:`電源障害`,userCancelled:`ユーザーによるキャンセル`,other:`その他`},statuses:{completed:`完了`,failed:`失敗`,aborted:`キャンセル`,printing:`印刷中`}},kProfiles:{title:`Kプロファイル`,noPrintersConfigured:`プリンターが設定されていません`,addPrinterInSettings:`Kプロファイルを管理するには設定でプリンターを追加してください`,noActivePrinters:`アクティブなプリンターがありません`,enablePrinterConnection:`Kプロファイルを表示するにはプリンター接続を有効にしてください`,loadingProfiles:`Kプロファイルを読み込み中...`,printerOffline:`プリンターオフライン`,printerOfflineDesc:`選択したプリンターは接続されていません。電源を入れてKプロファイルを表示してください。`,noMatchingProfiles:`一致するプロファイルなし`,noMatchingProfilesDesc:`検索条件に一致するプロファイルがありません`,noKProfiles:`Kプロファイルなし`,noKProfilesDesc:`{{diameter}}mmノズル用の圧力キャリブレーションプロファイルが見つかりません`,createFirstProfile:`最初のプロファイルを作成`,printer:`プリンター`,nozzle:`ノズル`,refresh:`更新`,addProfile:`K-プロファイルを追加`,export:`エクスポート`,import:`インポート`,select:`選択`,selectAll:`すべて選択`,delete:`削除`,searchPlaceholder:`名前またはフィラメントで検索...`,allExtruders:`すべてのエクストルーダー`,leftOnly:`左のみ`,rightOnly:`右のみ`,allFlow:`すべてのフロー`,hfOnly:`HFのみ`,sOnly:`Sのみ`,sortName:`ソート: 名前`,sortKValue:`ソート: K値`,sortFilament:`ソート: フィラメント`,leftExtruder:`左エクストルーダー`,rightExtruder:`右エクストルーダー`,modal:{addTitle:`Kプロファイルを追加`,editTitle:`Kプロファイルを編集`,profileName:`プロファイル名`,profileNamePlaceholder:`マイPLAプロファイル`,kValue:`K値`,kValuePlaceholder:`0.020`,kValueHelp:`一般的な範囲: PLA 0.01〜0.06、PETG 0.02〜0.10`,filament:`フィラメント`,selectFilament:`フィラメントを選択...`,noFilamentsHelp:`フィラメントが見つかりません。Bambu Studioでまずプロファイルを作成してください。`,flowType:`フロータイプ`,highFlow:`ハイフロー`,standard:`スタンダード`,nozzleSize:`ノズルサイズ`,extruder:`エクストルーダー`,extruders:`エクストルーダー`,left:`左`,right:`右`,notes:`メモ(ローカル保存)`,notesPlaceholder:`このプロファイルのメモを追加...`,notesHelp:`メモはBambuddyに保存され、プリンターには保存されません`,syncing:`プリンターと同期中...`,savingExtruder:`エクストルーダーに保存中 {{current}}/{{total}}...`,pleaseWait:`お待ちください`},deleteConfirm:{title:`プロファイルを削除`,cannotUndo:`元に戻せません`,message:`「{{name}}」をプリンターから削除しますか?`},bulkDelete:{title:`プロファイルを削除`,cannotUndo:`元に戻せません`,message:`選択した{{count}}件のプロファイルをプリンターから削除しますか?`},toast:{profileSaved:`Kプロファイルを保存しました`,profilesSaved:`Kプロファイルを{{count}}台のエクストルーダーに保存しました`,selectAtLeastOneExtruder:`エクストルーダーを1つ以上選択してください`,profileDeleted:`Kプロファイルを削除しました`,profilesDeleted:`{{count}}件のプロファイルを削除しました`,exportedProfiles:`{{count}}件のプロファイルをエクスポートしました`,importedProfiles:`{{total}} 件中 {{count}} 件のプロファイルをインポートしました`,noProfilesToExport:`エクスポートするプロファイルがありません`,invalidFileFormat:`無効なファイル形式`,failedToParseImport:`インポートファイルの解析に失敗しました`,failedToSaveBatch:`Kプロファイルの保存に失敗しました`,noteSaved:`メモを保存しました`,failedToSaveNote:`メモの保存に失敗しました`},permission:{noRead:`プロファイルを更新する権限がありません`,noCreate:`プロファイルを追加する権限がありません`,noUpdate:`Kプロファイルを更新する権限がありません`,noDelete:`Kプロファイルを削除する権限がありません`,noExport:`プロファイルをエクスポートする権限がありません`,noImport:`プロファイルをインポートする権限がありません`}},virtualPrinter:{title:`仮想プリンター`,running:`稼働中`,stopped:`停止`,description:{default:`Bambu StudioとOrcaSlicerに表示される仮想プリンターを有効化。このプリンターに送信されたファイルは印刷せずに直接アーカイブされます。`,proxy:`スライサーのトラフィックを実際のプリンターに転送するプロキシを有効化。任意のネットワーク経由でリモート印刷が可能です。`},enable:{title:`仮想プリンターを有効化`,visibleInSlicer:`スライサーの検出リストに「Bambuddy」として表示`,proxyingTo:`{{name}}にプロキシ中`,notActive:`非アクティブ`},model:{title:`プリンターモデル`,description:`エミュレートするプリンターモデルを選択。`,restartWarning:`モデルを変更すると仮想プリンターが再起動されます`},accessCode:{title:`アクセスコード`,isSet:`アクセスコードが設定されています`,notSet:`アクセスコード未設定 - 有効化に必要です`,placeholder:`8文字のコードを入力`,placeholderChange:`新しいコードを入力して変更`,hint:`正確に8文字必要です。スライサーの認証に使用されます。`,charCount:`({{count}}/8)`,inheritedFromTarget:`ターゲットプリンターから継承`,derivedFromTargetHint:`ターゲットプリンターのアクセスコードを使用します。ブリッジはスライサーの認証情報を実機プリンターに転送するため、コードが一致している必要があります。変更するにはプリンターの設定でアクセスコードを編集してください。`,reveal:`アクセスコードを表示`,hide:`アクセスコードを隠す`},targetPrinter:{title:`ターゲットプリンター`,configured:`プロキシターゲット設定済み`,notConfigured:`ターゲットプリンター未選択 - プロキシモードに必要です`,placeholder:`プリンターを選択...`,hint:`スライサートラフィックの転送先プリンターを選択。プリンターはLANモードである必要があります。`,noPrinters:`プリンターが設定されていません。プロキシモードを使用するにはまずプリンターを追加してください。`},remoteInterface:{title:`ネットワークインターフェース上書き`,configured:`インターフェース上書き有効`,optional:`オプション — 自動検出IPが間違っている場合に使用(複数NIC、Docker、VPNなど)`,placeholder:`自動検出(デフォルト)...`,hint:`SSDPで広告され、TLS証明書に使用されるIPアドレスを上書きします。Bambuddyに複数のネットワークインターフェースがある場合に便利です。`},mode:{title:`モード`,archive:`アーカイブ`,archiveDesc:`ファイルを即座にアーカイブ`,review:`レビュー`,reviewDesc:`アーカイブ前にレビュー`,queue:`キュー`,queueDesc:`アーカイブしてキューに追加`,proxy:`プロキシ`,proxyDesc:`実際のプリンターに転送`},autoDispatch:{title:`自動ディスパッチ`,description:`キューに追加されたときに自動的に印刷を開始します。オフの場合、手動ディスパッチを待ちます。`},queueForceColorMatch:{title:`色の一致を強制`,description:`正確なフィラメントタイプと色がロードされていないプリンターへの送信を拒否します。デフォルトはオフ — これがないと、キューはモデルのみのマッチングを使用し、間違った色がロードされたプリンターを選ぶ可能性があります。`},gcodeInjection:{title:`G-codeインジェクション`,description:`設定でモデルごとに構成したG-codeスニペットを、このVPのジョブに適用します。デフォルトはオフです。`},tailscaleDisabled:{title:`Tailscale統合`,description:`このVPがTailscale経由で公開されていることをマークするには有効にしてください。スライサーに貼り付けるIPがわかるよう、ホストのTailscaleアドレスを表示します。CAインポート手順は変更されません — このトグルは証明書に影響しません。`},setupRequired:{title:`セットアップが必要です`,description:`仮想プリンター機能を使用するには追加のシステム設定が必要です。ポートフォワーディング、ファイアウォールルール、プラットフォーム固有の設定が含まれます。`,readGuide:`有効にする前にセットアップガイドをお読みください`},howItWorks:{title:`仕組み`,step1:`同じLAN上では、仮想プリンターはスライサー(Bambu Studio / OrcaSlicer)に自動的に表示されます。他のネットワークからは、IPアドレスとアクセスコードで手動で追加してください。`,step2:`アーカイブ、レビュー、キューモードでは、スライサーの「送信」ボタンを使用して3MFファイルをBambuddyにアップロードします。スライサーは「印刷成功」と表示しますが、ファイルは保存され、印刷はされません。`,step3:`プロキシモードでは、仮想プリンターはすべてのトラフィックを実際のプリンターに転送します。直接接続されているかのように印刷がすぐに開始されます。`},status:{title:`ステータス詳細`,printerName:`プリンター名`,model:`モデル`,serialNumber:`シリアル番号`,mode:`モード`,pendingFiles:`保留中のファイル`,targetPrinter:`ターゲットプリンター`,ftpPort:`FTPポート`,mqttPort:`MQTTポート`,ftpConnections:`FTP接続数`,mqttConnections:`MQTT接続数`},toast:{updated:`仮想プリンター設定を更新しました`,failedToUpdate:`設定の更新に失敗しました`,copyFailed:`コピーに失敗しました — テキストを手動で選択してください`,accessCodeRequired:`先にアクセスコードを設定してください`,targetPrinterRequired:`先にターゲットプリンターを選択してください`,bindIpRequired:`先にバインドIPを設定してください`,accessCodeEmpty:`アクセスコードは空にできません`,accessCodeLength:`アクセスコードは8文字である必要があります`,targetCodeChangedRebind:`アクセスコードが新しいターゲットプリンターに同期されました。新しいコードを反映するには、スライサーでこのデバイスを再登録してください。`,created:`仮想プリンターを作成しました`,failedToCreate:`仮想プリンターの作成に失敗しました`,deleted:`仮想プリンターを削除しました`,failedToDelete:`仮想プリンターの削除に失敗しました`},list:{title:`仮想プリンター`,add:`追加`,addFirst:`仮想プリンターを追加`,empty:`仮想プリンターが設定されていません。追加して始めましょう。`},bindIp:{title:`バインドインターフェース`,placeholder:`インターフェースを選択...`,hint:`この仮想プリンターがバインドするネットワークインターフェース。プリンターごとに一意である必要があります。`},proxy:{accessCodeHint:`プロキシモードでは、スライサーにターゲットプリンターのアクセスコードを使用してください。接続は実際のプリンターに透過的に転送されます。`},addDialog:{title:`仮想プリンターを追加`,name:`名前`,hint:`アクセスコード、ターゲットプリンター、その他の設定は作成後に設定できます。`,create:`作成`},deleteConfirm:{title:`仮想プリンターを削除`,message:`「{{name}}」を削除してもよろしいですか?このプリンターのすべてのサービスが停止されます。`},archiveNameSource:{title:`アーカイブ名のソース`,description:`仮想プリンター経由でファイルが到着したときに、新しいアーカイブをどのように命名するかを選択します。「メタデータ」は3MFに埋め込まれたスライサータイトル(デフォルト)を使用します。「ファイル名」はBambu StudioがFTPで送信したファイル名を使用します。注: Bambu Studioは、3MFにタイトルフィールドが存在する場合、「プリンターに送信」ダイアログで入力した名前をその値で上書きするため、両方のモードで同じ文字列になることが多くあります。`,metadata:`メタデータ`,filename:`ファイル名`},caCert:{title:`スライサー証明書`,description:`仮想プリンターは Bambuddy CA が署名した TLS 証明書を使用します。この CA 証明書をスライサーの信頼ストアに一度インポートすると接続が受け入れられます — コマンドラインからコピーする必要はありません。`,copy:`コピー`,copied:`コピーしました`,download:`ダウンロード`,fingerprint:`SHA-256`}},modelViewer:{openInSlicer:`スライサーで開く`,tabs:{model:`3Dモデル`,gcode:`G-codeプレビュー`},notAvailable:`利用不可`,notSliced:`未スライス`,plates:`プレート`,allPlates:`全プレート`,plateNumber:`プレート {{number}}`,plateCount:`{{count}} プレート`,plateCount_other:`{{count}} プレート`,objectCount:`{{count}} オブジェクト`,objectCount_other:`{{count}} オブジェクト`,filamentCount:`{{count}} フィラメント`,filamentCount_other:`{{count}} フィラメント`,eta:`予想時間 {{minutes}} 分`,noPreview:`このファイルのプレビューは利用できません`,pagination:{pageOf:`ページ {{current}} / {{total}}`,prev:`前へ`,next:`次へ`},errors:{failedToLoad:`ファイルの読み込みに失敗しました`,noMeshes:`3MFファイルにメッシュが見つかりません`,unsupportedFormat:`サポートされていないファイル形式です`}},maintenanceDescriptions:{lubricateCarbonRods:`カーボンロッドに潤滑剤を塗布してスムーズな動きを確保`,lubricateRails:`リニアレールの潤滑`,cleanNozzle:`ノズル/ホットエンドの清掃`,checkBelts:`ベルト張力の確認`,cleanBuildPlate:`ビルドプレートの清掃`,checkExtruder:`エクストルーダーギアの確認`,checkCooling:`冷却ファンの確認`,generalInspection:`総合点検`,cleanCarbonRods:`カーボンロッドの清掃`,lubricateSteelRods:`スチールロッドに潤滑剤を塗布してスムーズな動きを確保`,cleanSteelRods:`スチールロッドの清掃`,cleanLinearRails:`リニアレールを拭いてほこりや汚れを除去`,checkPtfeTube:`PTFEチューブの確認`,replaceHepaFilter:`HEPAフィルター交換`,replaceCarbonFilter:`カーボンフィルター交換`,lubricateLeftNozzleRail:`左ノズルレールの潤滑`},smartPlugs:{offline:`オフライン`,admin:`管理`,openPlugAdminPage:`プラグ管理ページを開く`,deleteSmartPlug:`スマートプラグを削除`,turnOnSmartPlug:`スマートプラグをオンにする`,turnOffSmartPlug:`スマートプラグをオフにする`,turnOn:`オンにする`,turnOff:`オフにする`,addSmartPlug:{scanningNetwork:`ネットワークをスキャン中...`,chooseEntity:`エンティティを選択...`,connectionFailed:`接続失敗`,searchEntities:`エンティティを検索...`,searchPowerSensors:`電力センサーを検索...`,searchEnergySensors:`エネルギーセンサーを検索...`,placeholders:{plugName:`リビングルームプラグ`,mqttStateOnValue:`ON, true, 1`,mqttSameAsPower:`電力トピックと同じ、または異なる`}},linkedTo:`リンク先:`,monitorOnly:`監視のみ`,alerts:`アラート`,scheduleOn:`オン {{time}}`,scheduleOff:`オフ {{time}}`,on:`オン`,off:`オフ`,power:`電力`,kwhToday:`本日のkWh`,settings:`設定`,automationSettings:`自動化設定`,showInSwitchbar:`スイッチバーに表示`,quickAccessSidebar:`サイドバーからクイックアクセス`,enabled:`有効`,enableAutomation:`このプラグの自動化を有効にする`,autoOn:`自動オン`,autoOnDescription:`印刷開始時にオンにする`,autoOff:`自動オフ`,autoOffDescription:`印刷完了時にオフにする(ワンショット)`,autoOffPersistent:`有効のまま維持`,autoOffPersistentDescription:`ワンショットではなく印刷間で有効のまま維持`,controlsPrinterPower:`プリンターに給電`,controlsPrinterPowerDescription:`このプラグがアクセサリー(フィルターファン、照明)のみに給電する場合はオフにします。オンのままだと、電源を切ったときにプリンターがオフラインとして扱われます。`,autoOffAfterDrying:`乾燥完了後に自動オフ`,autoOffAfterDryingDescription:`AMSの乾燥が完了したらオフにする`,delayAfterDryingMinutes:`乾燥後の遅延(分)`,turnOffDelayMode:`オフ遅延モード`,time:`時間`,temp:`温度`,delayMinutes:`遅延(分)`,tempThreshold:`温度しきい値(°C)`,tempThresholdDescription:`ノズルがこの温度以下に冷却されるとオフになります`,edit:`編集`,deleteConfirm:`"{{name}}"を削除してもよろしいですか?この操作は取り消せません。`,turnOnConfirm:`"{{name}}"をオンにしてもよろしいですか?`,turnOffConfirm:`"{{name}}"をオフにしてもよろしいですか?接続されたデバイスの電源が切れます。`,failedToTurn:`"{{name}}"を{{action}}できませんでした`,unknown:`不明`,addTitle:`スマートプラグを追加`,editTitle:`スマートプラグを編集`,stopScanning:`スキャン停止`,discoverTasmota:`Tasmotaデバイスを検出`,foundDevices:`{{count}}台のデバイスが見つかりました - クリックして選択:`,noDevicesFound:`ネットワーク上にTasmotaデバイスが見つかりません`,haNotConfigured:`Home Assistantが設定されていません。設定場所:`,haSettingsPath:`設定 → ネットワーク → Home Assistant`,selectEntity:`エンティティを選択 *`,ipAddress:`IPアドレス *`,nameLabel:`名前 *`,username:`ユーザー名`,password:`パスワード`,authHint:`Tasmotaデバイスが認証を必要としない場合は空のままにしてください`,linkToPrinter:`プリンターにリンク`,noPrinter:`プリンターなし(手動制御のみ)`,linkingDescription:`リンクすると印刷開始/完了時に自動でオン/オフできます`,powerAlerts:`電力アラート`,alertAbove:`上限アラート(W)`,alertBelow:`下限アラート(W)`,alertDescription:`電力消費がこれらのしきい値を超えた場合に通知します。無効にするには空のままにしてください。`,dailySchedule:`デイリースケジュール`,turnOnAt:`オンにする時刻`,turnOffAt:`オフにする時刻`,scheduleDescription:`毎日これらの時刻にプラグを自動的にオン/オフします。スキップするには空のままにしてください。`,showOnPrinterCard:`プリンターカードに表示`,displayOnPrinterCard:`プリンターカードにボタンを表示`,connectedResult:`接続成功!`,deviceLabel:`デバイス: {{name}} - `,stateLabel:`状態: {{state}}`,test:`テスト`,delete:`削除`,save:`保存`,add:`追加`,cancel:`キャンセル`,failedToStartScan:`スキャンを開始できませんでした`,nameRequired:`名前は必須です`,entityRequired:`Home AssistantプラグにはエンティティIDが必要です`,mqttTopicRequired:`電力、エネルギー、または状態監視用に少なくとも1つのMQTTトピックを設定する必要があります`,loadingEntities:`エンティティを読み込み中...`,loading:`読み込み中...`,failedToLoadEntities:`エンティティの読み込みに失敗しました: {{error}}`,noEntitiesMatching:`"{{search}}"に一致するエンティティが見つかりません`,noEntitiesAvailable:`利用可能なエンティティがありません`,searchingEntities:`すべてのエンティティを検索中({{count}}件見つかりました)`,showingEntities:`switch、light、input_booleanを表示({{count}}件利用可能)`,energyMonitoringOptional:`エネルギー監視(オプション)`,energyMonitoringHint:`電力/エネルギーデータを提供するセンサーを検索して選択します。`,powerSensorW:`電力センサー(W)`,energyTodayKwh:`本日のエネルギー(kWh)`,totalEnergyKwh:`総エネルギー(kWh)`,noMatchingSensors:`一致するセンサーがありません`,none:`なし`,mqttNotConfigured:`MQTTブローカーが設定されていません。ブローカーアドレスを設定してください:`,mqttSettingsPath:`設定 → ネットワーク → MQTT配信`,mqttNotConfiguredSuffix:`(配信を有効にする必要はありません。ブローカーの詳細を入力するだけです)。`,mqttMonitorOnlyDescription:`MQTTプラグはMQTTサブスクリプション経由で電力/エネルギーデータを受信します。オン/オフ制御は利用できません - MQTTブローカーまたはホームオートメーションシステムを使用してください。`,powerMonitoring:`電力監視`,energyMonitoring:`エネルギー監視`,stateMonitoring:`状態監視`,optional:`オプション`,topic:`トピック`,jsonPath:`JSONパス`,multiplier:`乗数`,onValue:`ON値`,mqttPowerHint:`JSONパスはJSONペイロードから値を抽出します(例: "power_l1")。トピックが生の数値を送信する場合は空のままにしてください。
+Valeur ON : la chaîne exacte signifiant "ON". Laisser vide pour la détection auto (ON, true, 1).`,restControl:`Contrôle`,restOnUrl:`URL d'activation`,restOffUrl:`URL de désactivation`,restOnBody:`Corps de requête ON`,restOffBody:`Corps de requête OFF`,restMethod:`Méthode HTTP`,restHeaders:`Custom Headers (JSON)`,restStatusUrl:`URL de statut`,restStatusPath:`Chemin JSON état`,restStatusOnValue:`Valeur ON`,restPowerUrl:`URL de puissance`,restPowerPath:`Chemin JSON puissance`,restPowerMultiplier:`Multiplicateur de puissance`,restEnergyUrl:`URL d'énergie`,restEnergyPath:`Chemin JSON de l'énergie (aujourd'hui)`,restEnergyTotalPath:`Chemin JSON de l'énergie (compteur total)`,restEnergyTotalMultiplier:`Multiplicateur du compteur total`,restEnergyTotalPathHint:`ex. aenergy.total`,restEnergyTotalHint:`Beaucoup de prises — tous les Shelly notamment — ne fournissent qu'un compteur cumulé qui ne se remet jamais à zéro. Il va ici, pas dans le champ ci-dessus : lu comme la consommation du jour, il ne repartirait jamais de zéro à minuit, et Hier et Total resteraient vides. Bambuddy en déduit Aujourd'hui et Hier, ce qui demande un à deux jours de relevés. Un Shelly renvoie des wattheures : utilisez un multiplicateur de 0.001.`,restEnergyMultiplier:`Multiplicateur d'énergie`,restUrlRequired:`Au moins une URL (ON ou OFF) est requise pour les prises REST`,restHeadersHint:`par ex. {"Authorization": "Bearer your-token"}`,restBodyHint:`par ex. ON, {"state": "on"}`,restStatusHint:`URL pour interroger l'état actuel`,restPathHint:`par ex. state ou data.power.status`,restPowerUrlHint:`URL séparée pour les données de puissance (utilise l'URL de statut si vide)`,restEnergyUrlHint:`URL séparée pour les données d'énergie (utilise l'URL de statut si vide)`,restEnergyHint:`Chaque valeur peut utiliser sa propre URL ou se rabattre sur l'URL de statut. Utilisez les multiplicateurs pour la conversion d'unités (ex : 0.001 pour convertir Wh en kWh).`,testConnection:`Tester la connexion`,connectionSuccess:`Connexion réussie`,noSwitchesInSwitchbar:`Aucun commutateur dans la barre`,enableSwitchbarHint:`Activez "Afficher dans la barre de commutateurs" dans Paramètres > Smart Plugs`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`E-mail`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`Notifications par e-mail SMTP`,telegram:`Notifications via un bot Telegram`,discord:`Envoyer vers un canal Discord via webhook`,ntfy:`Notifications push gratuites, auto-hébergeables`,pushover:`Notifications push simples et fiables`,callmebot:`Notifications WhatsApp gratuites via CallMeBot`,webhook:`POST HTTP générique vers n'importe quelle URL`,homeassistant:`Notifications persistantes dans le tableau de bord Home Assistant`,bark:`Notifications push iOS via Bark (auto-hébergeable)`},lastSuccess:`Dernier : {{date}}`,error:`Erreur`,printer:`Imprimante :`,allPrinters:`Toutes les imprimantes`,sendTestNotification:`Envoyer une notification de test`,eventSettings:`Paramètres des événements`,enabled:`Activé`,sendFromProvider:`Envoyer des notifications depuis ce fournisseur`,printEvents:`Événements d'impression`,printerStatus:`État de l'imprimante`,amsAlarms:`Alarmes AMS`,amsHtAlarms:`Alarmes AMS-HT`,printQueue:`File d'attente d'impression`,start:`Début`,plateCheck:`Vérification du plateau`,complete:`Terminé`,failed:`Échoué`,stopped:`Arrêté`,progress:`Progression`,offline:`Hors ligne`,lowFilament:`Filament bas`,maintenance:`Maintenance`,amsHumidity:`Humidité AMS`,amsTemp:`Temp. AMS`,amsHtHumidity:`Humidité AMS-HT`,amsHtTemp:`Temp. AMS-HT`,bedCooled:`Plateau refroidi`,firstLayer:`Première couche`,quiet:`Silencieux`,digest:`Résumé {{time}}`,printStarted:`Impression démarrée`,plateNotEmpty:`Plateau non vide`,plateNotEmptyDescription:`Objets détectés avant l'impression`,plateClearRequired:`Plateau à libérer`,plateClearRequiredDescription:`Impression terminée, la file attend la confirmation`,plateClear:`Plateau libre`,printCompleted:`Impression terminée`,bedCooledLabel:`Plateau refroidi`,bedCooledDescription:`Plateau refroidi sous le seuil après l'impression`,firstLayerCompleteLabel:`Première couche terminée`,firstLayerCompleteDescription:`Notification avec photo après la première couche`,missingSpoolAssignmentLabel:`Affectation de bobine manquante`,missingSpoolAssignmentDescription:`Notifier quand une impression démarre et que des bacs requis n'ont pas de bobine assignée`,printFailed:`Impression échouée`,printStopped:`Impression arrêtée`,progressMilestones:`Jalons de progression`,progressMilestonesDescription:`Notifier à 25 %, 50 %, 75 %`,printerOffline:`Imprimante hors ligne`,printerError:`Erreur de l'imprimante`,aiFailureDetection:`Détection de défaillance par IA`,aiFailureDetectionDescription:`Notifier lorsque l'IA Obico détecte une défaillance d'impression possible`,lowFilamentLabel:`Filament bas`,maintenanceDue:`Maintenance requise`,maintenanceDueDescription:`Notifier lorsqu'une maintenance est nécessaire`,amsHumidityHigh:`Humidité AMS élevée`,amsHumidityHighDescription:`L'humidité de l'AMS standard dépasse le seuil`,amsTemperatureHigh:`Température AMS élevée`,amsTemperatureHighDescription:`La température de l'AMS standard dépasse le seuil`,amsHtHumidityHigh:`Humidité AMS-HT élevée`,amsHtHumidityHighDescription:`L'humidité de l'AMS-HT dépasse le seuil`,amsHtTemperatureHigh:`Température AMS-HT élevée`,amsHtTemperatureHighDescription:`La température de l'AMS-HT dépasse le seuil`,inventoryAlerts:`Alertes de stock`,stockReorderAlert:`Alerte de réapprovisionnement`,stockReorderAlertDescription:`Le SKU a atteint son point de réapprovisionnement`,stockBreakAlert:`Alerte de rupture de stock`,stockBreakAlertDescription:`Le stock sera épuisé avant l'arrivée du réapprovisionnement`,jobAdded:`Tâche ajoutée`,jobAddedDescription:`Tâche ajoutée à la file d'attente`,jobAssigned:`Tâche assignée`,jobAssignedDescription:`Tâche basée sur le modèle assignée à l'imprimante`,jobStarted:`Tâche démarrée`,jobStartedDescription:`La tâche de la file a commencé l'impression`,jobWaiting:`Tâche en attente`,jobWaitingDescription:`Tâche en attente de filament ou imprimante`,jobSkipped:`Tâche ignorée`,jobSkippedDescription:`Tâche ignorée (échec précédent)`,jobFailed:`Tâche échouée`,jobFailedDescription:`La tâche n'a pas pu démarrer`,queueComplete:`File d'attente terminée`,queueCompleteDescription:`Toutes les tâches de la file sont terminées`,quietHours:`Heures silencieuses`,noNotificationsDuring:`Aucune notification pendant ces heures`,editProviderToChangeQuietHours:`Modifier le fournisseur pour changer les heures silencieuses`,dailyDigest:`Résumé quotidien`,batchNotifications:`Regrouper les notifications en un seul résumé quotidien`,sendAt:`Envoyer à {{time}}`,editProviderToChangeDigestTime:`Modifier le fournisseur pour changer l'heure du résumé`,edit:`Modifier`,deleteProvider:`Supprimer le fournisseur de notifications`,deleteConfirm:`Êtes-vous sûr de vouloir supprimer « {{name}} » ? Cette action est irréversible.`,delete:`Supprimer`,addTitle:`Ajouter un fournisseur de notifications`,editTitle:`Modifier le fournisseur de notifications`,nameLabel:`Nom *`,namePlaceholder:`Mes notifications`,providerTypeLabel:`Type de fournisseur *`,configuration:`Configuration`,testConfiguration:`Tester la configuration`,printerFilter:`Filtre d'imprimante`,onlyFromPrinter:`Envoyer uniquement les notifications pour les événements de cette imprimante`,quietHoursDnd:`Heures silencieuses (Ne pas déranger)`,quietStart:`Début`,quietEnd:`Fin`,dailyDigestLabel:`Résumé quotidien`,sendDigestAt:`Envoyer le résumé à`,digestCollected:`Les événements seront collectés et envoyés en un seul résumé à cette heure`,notificationEvents:`Événements de notification`,progressPercent:`(25 %, 50 %, 75 %)`,bedCooledAfterPrint:`(après la fin de l'impression)`,eventPriority:{sectionTitle:`Priorité ntfy`,helpNtfy:`Choisissez une priorité pour chaque événement activé. ntfy l'utilise pour faire remonter les alertes (son, visibilité, comportement push). Les niveaux non définis ici utilisent la valeur par défaut du serveur ntfy.`,min:`Min.`,low:`Basse`,default:`Par défaut`,high:`Haute`,urgent:`Urgente`},cancel:`Annuler`,save:`Enregistrer`,add:`Ajouter`,nameRequired:`Le nom est requis`,fieldRequired:`{{field}} est requis`,haDataInvalid:`Le champ Data doit être un objet JSON valide, p. ex. {"priority": "high", "ttl": 0}`,phoneNumber:`Numéro de téléphone`,apiKey:`Clé API`,serverUrl:`URL du serveur`,topic:`Sujet`,authToken:`Jeton d'authentification`,userKey:`Clé utilisateur`,appToken:`Jeton d'application`,priority:`Priorité`,pushoverRetry:`Réessai urgence (s)`,pushoverExpire:`Expiration urgence (s)`,botToken:`Jeton du bot`,chatId:`ID du chat`,telegramThreadId:`ID du sujet de forum`,telegramThreadIdHelp:`Facultatif. Envoie dans un seul sujet d'un groupe forum : le dernier nombre du lien du sujet (t.me/c/.../25). Laisser vide pour le sujet General.`,telegramThreadIdInvalid:`L'ID du sujet de forum doit être un nombre.`,smtpServer:`Serveur SMTP`,smtpPort:`Port SMTP`,security:`Sécurité`,authentication:`Authentification`,username:`Nom d'utilisateur`,password:`Mot de passe`,fromEmail:`E-mail expéditeur`,toEmail:`E-mail destinataire`,webhookUrl:`URL du webhook`,payloadFormat:`Format du payload`,authorization:`Autorisation`,titleFieldName:`Nom du champ titre`,messageFieldName:`Nom du champ message`,editTemplate:`Modifier le modèle : {{name}}`,titleLabel:`Titre`,bodyLabel:`Corps`,titlePlaceholder:`Titre de la notification...`,bodyPlaceholder:`Corps de la notification...`,availableVariables:`Variables disponibles`,clickToInsert:`Cliquer pour insérer à la position du curseur dans le corps`,livePreview:`Aperçu en direct`,hide:`Masquer`,show:`Afficher`,loadingPreview:`Chargement de l'aperçu...`,enterTemplateContent:`Saisir le contenu du modèle pour voir l'aperçu`,titlePreview:`Titre :`,bodyPreview:`Corps :`,resetToDefault:`Réinitialiser par défaut`,titleRequired:`Le titre est requis`,bodyRequired:`Le corps est requis`,notificationLog:`Journal des notifications`,showFailedOnly:`Échecs uniquement`,last24Hours:`Dernières 24 heures`,last7Days:`7 derniers jours`,last30Days:`30 derniers jours`,last90Days:`90 derniers jours`,justNow:`À l'instant`,noFailedNotifications:`Aucune notification échouée`,noNotificationsLogged:`Aucune notification enregistrée`,unknownProvider:`Fournisseur inconnu`,logTitle:`Titre`,logMessage:`Message`,logError:`Erreur`,logProvider:`Fournisseur : {{type}}`,logTime:`Heure : {{time}}`,refresh:`Actualiser`,clearOld:`Purger les anciens`,statsSummary:`{{days}} derniers jours :`,statsNotifications:`notifications`,statsSent:`{{count}} envoyées`,statsFailed:`{{count}} échouées`,eventTypes:{print_start:`Impression démarrée`,print_complete:`Impression terminée`,print_failed:`Impression échouée`,print_stopped:`Impression arrêtée`,print_progress:`Progression`,printer_offline:`Imprimante hors ligne`,printer_error:`Erreur de l'imprimante`,filament_low:`Filament bas`,maintenance_due:`Maintenance requise`,test:`Tester`},userEmail:{title:`Notifications`,emailNotifications:`Notifications par e-mail`,emailNotificationsDesc:`Recevez des notifications par e-mail pour vos propres travaux d'impression. Les e-mails sont envoyés via les paramètres SMTP configurés dans l'authentification avancée.`,sendingTo:`Les notifications seront envoyées à`,noEmailWarning:`Votre compte n'a pas d'adresse e-mail. Contactez un administrateur pour en ajouter une.`,printJobNotifications:`Notifications de travaux d'impression`,printJobNotificationsDesc:`Choisissez quels événements déclenchent des notifications par e-mail pour les travaux d'impression que vous soumettez.`,printJobStarts:`Démarrage du travail d'impression`,printJobStartsDesc:`Être notifié quand votre travail d'impression commence.`,printJobFinishes:`Fin du travail d'impression`,printJobFinishesDesc:`Être notifié quand votre travail d'impression se termine avec succès.`,printErrors:`Erreurs d'impression`,printErrorsDesc:`Être notifié quand votre travail d'impression échoue ou rencontre une erreur.`,printJobStops:`Travail d'impression arrêté`,printJobStopsDesc:`Être notifié quand votre travail d'impression est annulé ou arrêté.`,saveSuccess:`Préférences de notification sauvegardées.`,saveError:`Impossible de sauvegarder les préférences de notification.`}},richTextEditor:{bold:`Gras`,italic:`Italique`,underline:`Souligné`,bulletList:`Liste à puces`,numberedList:`Liste numérotée`,alignLeft:`Aligner à gauche`,alignCenter:`Centrer`,alignRight:`Aligner à droite`,addLink:`Ajouter lien`,removeLink:`Retirer lien`},externalLinks:{title:`Liens de la barre latérale`,sidebarLayout:`Barre latérale`,sidebarLayoutDescription:`Affichez ou masquez les pages intégrées, ajoutez des liens externes et faites glisser les éléments pour réorganiser la navigation latérale.`,systemPages:`Pages Bambuddy`,externalLinks:`Liens externes`,visibleInSidebar:`Visible dans la barre latérale`,hiddenFromSidebar:`Masqué dans la barre latérale`,requiredInSidebar:`Obligatoire dans la barre latérale`,hidePage:`Masquer la page`,showPage:`Afficher la page`,settingsCannotBeHidden:`Les paramètres ne peuvent pas être masqués`,noLinksConfigured:`Aucun lien externe configuré`,deleteLink:`Supprimer lien`,removeCustomIcon:`Retirer icône personnalisée`,openInNewTab:`Ouvrir dans un nouvel onglet`,placeholders:{linkName:`Mon Lien`}},keyboardShortcuts:{title:`Raccourcis Clavier`,navigation:`Navigation`,archivesSection:`Archives`,kProfilesSection:`Profils K`,generalSection:`Général`,shortcuts:{goToPrinters:`Aller aux Imprimantes`,goToArchives:`Aller aux Archives`,goToQueue:`Aller à la File`,goToStats:`Aller aux Stats`,goToProfiles:`Aller aux Profils Cloud`,goToSettings:`Aller aux Paramètres`,focusSearch:`Focus recherche`,openUploadModal:`Ouvrir téléversement`,clearSelection:`Tout déselectionner`,contextMenu:`Menu contextuel (cartes)`,refreshProfiles:`Rafraîchir profils`,newProfile:`Nouveau profil`,exitSelectionMode:`Quitter mode sélection`,showHelp:`Afficher cette aide`},footer:`Échap ou clic extérieur pour fermer`},notificationLog:{title:`Journal de Notification`,events:{printStarted:`Début impression`,printComplete:`Fin impression`,printFailed:`Échec impression`,printStopped:`Arrêt impression`,progress:`Progression`,printerOffline:`Hors ligne`,printerError:`Erreur`,lowFilament:`Filament bas`,maintenanceDue:`Maintenance`,test:`Tester`},timeAgo:{justNow:`À l'instant`,minutesAgo:`Il y a {{minutes}}m`,hoursAgo:`Il y a {{hours}}h`}},restoreBackup:{title:`Restaurer Sauvegarde`,restoring:`Restauration...`,restoreComplete:`Restauration terminée`,restoreFailed:`Échec restauration`,importSettings:`Importer les réglages d'un fichier`,pleaseWait:`Patientez pendant la restauration`,clickToSelect:`Fichier .json ou .zip`,howDuplicateHandling:`Gestion des doublons :`,categories:{printers:`Imprimantes`,smartPlugs:`Prises`,notificationProviders:`Fournisseurs`,filaments:`Filaments`,archives:`Archives`,pendingUploads:`Téléversements en attente`,settingsTemplates:`Réglages & Modèles`},matchingInfo:{printers:`par numéro de série`,smartPlugs:`par adresse IP`,notificationProviders:`par nom`,filaments:`par nom+type+marque`,archives:`par empreinte numérique (hash)`,pendingUploads:`par nom de fichier`,settingsTemplates:`toujours écrasés`},replaceExisting:`Remplacer existant`,keepExisting:`Garder existant`,replaceDescription:`Écrase les doublons avec la sauvegarde`,keepDescription:`Ne restaure que les éléments absents`,caution:`Attention :`,cautionText:`L'écrasement remplacera vos réglages. Les codes d'accès imprimantes sont exclus par sécurité.`,itemsRestored:`Éléments restaurés`,itemsSkipped:`Éléments ignorés`,restored:`Restaurés`,skipped:`Ignorés (déjà présents)`,filesLabel:`Fichiers (3MF, vignettes, etc.)`,newApiKeysGenerated:`Nouvelles clés API générées`,newApiKeysWarning:`Copiées maintenant, elles ne seront plus visibles !`,processingBackup:`Traitement du fichier...`,noDataFound:`Aucune donnée trouvée dans le fichier.`,failedToRestore:`Échec restaure. Vérifiez le format.`},backupExport:{title:`Exporter Sauvegarde`,selectData:`Données à inclure`,selectAll:`Tout sélectionner`,selectNone:`Ne rien sélectionner`,categoryDescriptions:{settings:`Langue, thèmes, préférences`,notifications:`ntfy, Pushover, Discord, etc.`,templates:`Modèles de messages personnalisés`,smartPlugs:`Configuration des prises Tasmota`,externalLinks:`Liens externes de la barre latérale`,printers:`Infos imprimantes (codes d'accès exclus par défaut)`,plateDetection:`Images références des plateaux vides`,filaments:`Types et coûts filaments`,maintenance:`Plannings de maintenance personnalisés`,archives:`Données impressions + fichiers (3MF, vignettes, etc.)`,projects:`Projets, BOM, pièces jointes`,pendingUploads:`En attente revue virtuelle`,apiKeys:`Clés Webhook (nouvelles clés générées à l'import)`},requiresPrinters:`Nécessite sélection des imprimantes`,zipFileWarning:`Fichier ZIP créé.`,zipFileDescription:`Contient tous les médias. Peut être volumineux.`,includeAccessCodes:`Inclure Codes d'accès`,includeAccessCodesDescription:`Pour migrer vers une autre machine`,includeAccessCodesWarning:`Codes en texte clair. Sécurisez ce fichier !`,categoriesSelected:`{{selectedCount}} catégories choisies`},pendingUploads:{placeholders:{notes:`Notes sur l'impression...`},discardUpload:`Rejeter`,archiveAllUploads:`Tout archiver`,discardAllUploads:`Tout rejeter`,archive:`Archiver`,timeAgo:{justNow:`À l'instant`,minutesAgo:`Il y a {{minutes}}m`,hoursAgo:`Il y a {{hours}}h`,daysAgo:`Il y a {{days}}j`}},apiBrowser:{placeholders:{requestBody:`Corps JSON...`,searchEndpoints:`Chercher endpoints...`}},configureAmsSlot:{title:`Configurer le slot AMS`,slotConfigured:`Slot configuré !`,configuringSlot:`Configuration du slot :`,slotLabel:`{{ams}} – Emplacement {{slot}}`,searchPresets:`Chercher presets...`,colorPlaceholder:`Nom couleur ou hex (ex: brown, FF8800)`,clearCustomColor:`Effacer couleur perso`,noCloudPresets:`Profils Cloud absents. Connectez-vous.`,noPresetsAvailable:`Aucun preset disponible. Connectez-vous à Bambu Cloud ou importez des profils locaux.`,noMatchingPresets:`Aucun profil trouvé.`,custom:`Perso`,builtin:`Inclus`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`Réglages envoyés`,filamentProfile:`Profil Filament`,kProfileLabel:`Profil K (Pressure Advance)`,filteringFor:`Filtrage pour : {{material}}`,noKProfile:`Pas de profil K (utiliser défaut 0.020)`,noMatchingKProfiles:`Aucun profil K trouvé. K=0.020 par défaut sera utilisé.`,otherKProfiles:`Autres profils K sur cette imprimante`,selectFilamentFirst:`Sélectionnez d'abord un profil filament`,kFromCalibration:`K={{value}} de la calibration imprimante`,customColorLabel:`Couleur personnalisée (optionnel)`,presetColors:`Couleurs {{name}} :`,showLessColors:`Moins de couleurs`,showMoreColors:`Plus de couleurs`,clear:`Effacer`,hexLabel:`Hex : #{{hex}}`,resetting:`Réinitialisation...`,resetSlot:`Réinitialiser le slot`,cancel:`Annuler`,configuring:`Configuration...`,configureSlot:`Configurer le slot`},githubBackup:{title:`Sauvegarde Git`,history:`Historique`,downloadBackup:`Télécharger`,restoreBackup:`Restaurer`,noBackupsYet:`Aucune sauvegarde`},emailSettings:{placeholders:{fromName:`Bambuddy`}},tagManagement:{searchTags:`Chercher tags...`,renameTag:`Renommer tag`,deleteTag:`Supprimer tag`},notificationTemplates:{placeholders:{title:`Titre notification...`,body:`Message notification...`}},batchTag:{placeholders:{newTag:`Nouveau tag...`}},photoGallery:{deletePhoto:`Supprimer photo`},filamentHoverCard:{copySpoolUuid:`Copier UUID bobine`},kProfilesView:{hasNote:`A une note`,copyProfile:`Copier profil`},layout:{openMenu:`Ouvrir menu`,noPermissionSystemInfo:`Pas d'autorisation système`},dashboard:{dragToReorder:`Glisser pour réorganiser`,hideWidget:`Masquer widget`},notificationProviderCard:{deleteNotificationProvider:`Supprimer fournisseur`},fileManagerModal:{closeFileManager:`Fermer gestionnaire`,sortFiles:`Trier fichiers`,goToParentFolder:`Dossier parent`,threeView:`Vue 3D`},embeddedCameraViewer:{refreshStream:`Actualiser flux`,close:`Fermer`,zoomOut:`Zoom -`,resetZoom:`Réinitialiser le zoom`,zoomIn:`Zoom +`,dragToResize:`Glisser pour dimension`},timelapseViewer:{skipBack5s:`-5s`,skipForward5s:`+5s`},notificationProviders:{descriptions:{email:`Notifications par email SMTP`,telegram:`Via bot Telegram`,discord:`Via webhook Discord`,ntfy:`Push auto-hébergé (ntfy)`,pushover:`Push fiable (Pushover)`,callmebot:`WhatsApp gratuit via CallMeBot`,webhook:`Requête HTTP POST personnalisée`}},logViewer:{searchPlaceholder:`Message ou nom...`,noLogEntries:`Aucune entrée journal`},switchbarPopover:{noSwitchesInSwitchbar:`Aucun interrupteur`},projectPageModal:{placeholders:{title:`Titre`,designer:`Designer`,license:`Licence`,description:`Description...`,profileTitle:`Titre du profil`,profileDescription:`Description du profil...`}},spoolmanSettings:{},time:{unknown:`-`,waiting:`En attente`,justNow:`À l'instant`,now:`Maintenant`,minsAgo:`il y a {{count}}m`,inMins:`dans {{count}}m`,hoursAgo:`il y a {{count}}h`,inHours:`dans {{count}}h`,daysAgo:`il y a {{count}}j`,inDays:`dans {{count}}j`},spoolbuddy:{nav:{dashboard:`Tableau de bord`,ams:`AMS`,inventory:`Inventaire`,writeTag:`Écrire`,settings:`Paramètres`},status:{nfcReady:`NFC prêt`,nfcOff:`NFC désactivé`,offline:`Hors ligne`,online:`En ligne`,noPrinters:`Aucune imprimante`,deviceOffline:`Appareil hors ligne`,waitingConnection:`En attente de connexion...`,systemReady:`Système prêt`,status:`Statut`},dashboard:{readyToScan:`Prêt à scanner`,idleMessage:`Placez une bobine sur la balance pour l'identifier`,nfcHint:`Le tag NFC sera lu automatiquement`,device:`Appareil`,syncWeight:`Sync. poids`,weightSynced:`Synchronisé !`,unknownTag:`Tag inconnu`,newTag:`Nouveau tag détecté`,onScale:`sur la balance`,linkSpool:`Lier à une bobine`,linkTagTitle:`Lier le tag à une bobine`,linkTag:`Lier le tag`,selectSpool:`Sélectionnez une bobine à lier à ce tag :`,noUntagged:`Aucune bobine sans tag trouvée`,tagDetected:`Tag détecté`,noTag:`Pas de tag`,tagId:`Étiquette`,grossWeight:`Poids brut`,spoolSize:`Taille bobine`,close:`Fermer`,currentSpool:`Bobine actuelle`,plateReady:`Plateau prêt : {{name}}`,plateReadyLabel:`Plateaux à libérer`,plateClearAction:`Libérer`,plateClearedToast:`Plateau marqué comme libéré`,plateClearFailed:`Impossible de marquer le plateau comme libéré`},modal:{spoolDetected:`Bobine détectée`,assignToAms:`Assigner à l'AMS`,syncWeight:`Synchroniser le poids`,weightSynced:`Synchronisé !`,syncing:`Synchronisation...`,newTagDetected:`Nouveau tag détecté`,addToInventory:`Ajouter à l'inventaire`,assignToAmsTitle:`Assigner à l'AMS`,selectSlot:`Sélectionner un emplacement`,assign:`Assigner`,assigning:`Attribution...`,assignSuccess:`Assigné !`,assignPendingInsert:`Assigné. Le slot sera configuré lors de l'insertion de la bobine.`,assignError:`Échec de l'attribution de la bobine. Veuillez réessayer.`,noPrinterSelected:`Sélectionner une imprimante...`,noAmsDetected:`Aucun AMS détecté sur cette imprimante`,slot:`Emplacement`},weight:{noReading:`Pas de lecture`,stable:`Stable`,measuring:`Mesure...`,tare:`Tarer`,calibrate:`Calibrer`},spool:{remaining:`Restant`,material:`Matériau`,brand:`Marque`,color:`Couleur`,coreWeight:`Noyau`,labelWeight:`Étiquette`,scaleWeight:`Balance`,netWeight:`Réseau`,lastUsed:`Dernière utilisation`},ams:{noData:`Aucun AMS détecté`,connectAms:`Connectez un AMS pour voir les slots`,noPrinter:`Aucune imprimante sélectionnée`,selectPrinter:`Sélectionnez une imprimante dans la barre supérieure`,printerDisconnected:`Imprimante déconnectée`,humidity:`Humidité`,level:`Niveau`,active:`Actif`,slot:`Emplacement`,empty:`Vide`},inventory:{search:`Rechercher des bobines...`,empty:`Aucune bobine dans l'inventaire`,noResults:`Aucune bobine correspondante`,spools:`bobines`,addSpool:`Ajouter une bobine`},settings:{tabDevice:`Appareil`,tabDisplay:`Affichage`,tabScale:`Balance`,tabUpdates:`Mises à jour`,nfcReader:`Lecteur NFC`,type:`Type`,connection:`Connexion`,notConnected:`N/D`,deviceInfo:`Info appareil`,hostname:`Hôte`,uptime:`Temps de fonctionnement`,brightness:`Luminosité`,saved:`Enregistré`,noBacklight:`Aucun rétroéclairage DSI détecté. Le contrôle de luminosité nécessite un écran DSI.`,screenBlank:`Délai d'extinction`,screenBlankDesc:`L'écran s'éteint après inactivité. Touchez pour réveiller.`,displayNote:`La luminosité est appliquée comme filtre logiciel.`,scaleCalibration:`Calibration de la balance`,currentWeight:`Poids actuel`,tareOffset:`Tare`,calFactor:`Facteur`,knownWeight:`Poids connu`,calStep1:`Retirez tout de la balance et appuyez sur Mettre à zéro.`,calStep2:`Placez le poids connu sur la balance.`,setZero:`Mettre à zéro`,calibrateNow:`Calibrer`,calibrated:`Calibré`,tareSet:`Commande de tare envoyée. En attente de l'appareil...`,tareComplete:`Tare terminée !`,tareTimedOut:`Délai de tare dépassé — le daemon SpoolBuddy fonctionne-t-il ?`,tareFailed:`Échec de l'envoi de la commande de tare`,zeroSet:`Point zéro défini. Placez le poids connu sur la balance.`,calibrationDone:`Calibration terminée !`,calibrationFailed:`Échec de la calibration`,lastCalibrated:`Dernière calibration`,stable:`Stable`,settling:`Stabilisation...`,firmware:`Micrologiciel`,scale:`Balance`,noDevice:`Aucun appareil SpoolBuddy trouvé`,daemonVersion:`Version du daemon`,currentVersion:`Actuelle`,versionPending:`En attente du daemon...`,checking:`Vérification...`,checkUpdates:`Vérifier les mises à jour`,updateAvailable:`Mise à jour disponible`,updateInstructions:`Mise à jour via SSH : exécutez le script d'installation SpoolBuddy.`,upToDate:`À jour`,includeBeta:`Inclure les versions bêta`,systemConfig:`Backend & authentification`,backendUrl:`URL du backend Bambuddy`,apiToken:`Jeton d'API`,apiTokenPlaceholder:`Saisir un jeton d'API`,saveConfig:`Enregistrer la configuration`,systemQueued:`Configuration mise en file.`,systemFieldsRequired:`L'URL du backend est obligatoire.`,nfcDiagnostic:`Diagnostic NFC`,scaleDiagnostic:`Diagnostic balance`,readTagDiagnostic:`Diagnostic lecture de tag`,testNfc:`Tester le lecteur`,testScale:`Tester la précision`,testReadTag:`Lire un tag`},writeTag:{tabExisting:`Bobine existante`,tabNew:`Nouvelle bobine`,tabReplace:`Remplacer le tag`,searchPlaceholder:`Rechercher par matériau, couleur, marque...`,noUntaggedSpools:`Aucune bobine sans tag`,noTaggedSpools:`Aucune bobine avec tag`,selectSpool:`Sélectionnez une bobine, puis placez un NTAG sur le lecteur`,placeTag:`Placez un NTAG sur le lecteur`,tagReady:`Tag détecté — prêt à écrire`,writeTag:`Écrire le tag`,replaceTag:`Remplacer le tag`,writing:`Écriture du tag...`,waiting:`En attente de SpoolBuddy...`,writeSuccess:`Tag écrit avec succès !`,writeFailed:`Échec de l'écriture`,queueFailed:`Impossible de mettre en file la commande d'écriture`,tryAgain:`Réessayer`,cancel:`Annuler`,replaceWarning:`L'ancien tag sera dissocié. Le nouveau tag le remplacera.`,deviceOffline:`SpoolBuddy est hors ligne`,material:`Matériau`,colorName:`Nom de la couleur`,color:`Couleur`,brand:`Marque`,weight:`Poids (g)`,createSpool:`Créer la bobine`,creating:`Création...`,spoolCreated:`Bobine créée ! Prêt à écrire.`,createFailed:`Impossible de créer la bobine`,incompleteDataWarning:`Tag écrit avec des données Spoolman incomplètes`},quickMenu:{printerPower:`Alimentation imprimante`,systemControls:`Système`,restartDaemon:`Redémarrer le daemon`,restartBrowser:`Redémarrer le navigateur`,reboot:`Redémarrer`,shutdown:`Éteindre`,swipeToClose:`Glisser vers le bas pour fermer`,confirmTitle:`Confirmer`,confirmShutdown:`Êtes-vous sûr de vouloir éteindre le SpoolBuddy ? Vous aurez besoin d'un accès physique pour le rallumer.`,confirmReboot:`Êtes-vous sûr de vouloir redémarrer le SpoolBuddy ?`,confirmRestartDaemon:`Redémarrer le daemon SpoolBuddy ? Le NFC et la balance seront temporairement indisponibles.`,confirmRestartBrowser:`Redémarrer le navigateur kiosque ? L'écran sera brièvement noir.`,confirm:`Confirmer`,confirmPlugOn:`Allumer {{name}} ?`,confirmPlugOff:`Éteindre {{name}} ?`,turnOn:`Allumer`,turnOff:`Éteindre`}},diagnostic:{modalTitle:`Diagnostic de connexion — {{name}}`,running:`Diagnostic en cours...`,runningElapsed:`Diagnostic en cours... ({{elapsed}}s)`,waitingForReportHint:`En attente que l'imprimante publie un rapport d'état — cela peut prendre jusqu'à {{max}} secondes.`,runFailed:`Le diagnostic n'a pas pu s'exécuter : {{error}}`,retry:`Relancer`,runButton:`Lancer le diagnostic`,sectionTitle:`Diagnostic de connexion`,sectionDescription:`Vérifiez pourquoi une imprimante ne se connecte pas ou n'imprime pas — accessibilité des ports, mode développeur LAN, mode réseau Docker et identifiants.`,noPrinters:`Aucune imprimante configurée.`,overall:{ok:`Aucun problème détecté — la connexion de l'imprimante semble correcte.`,warnings:`L'imprimante devrait fonctionner, mais certains points nécessitent votre attention.`,problems:`Des problèmes expliquant pourquoi l'imprimante ne se connecte pas ou n'imprime pas ont été détectés.`},check:{port_mqtt:{title:`Port de contrôle (MQTT 8883)`,pass:`Accessible — l'imprimante accepte les connexions de contrôle.`,fail:`Le port 8883 est inaccessible. L'imprimante est éteinte, possède une autre adresse IP, ou un pare-feu la bloque. Vérifiez l'IP de l'imprimante et qu'aucun élément ne bloque le port 8883.`},port_ftps:{title:`Port de transfert de fichiers (FTPS 990)`,pass:`Accessible — l'envoi de fichiers d'impression fonctionnera.`,warn:`Le port 990 est inaccessible. La surveillance peut toujours fonctionner, mais l'envoi d'impressions vers l'imprimante échouera. Assurez-vous que le port 990 n'est pas bloqué.`},external_storage:{title:`Stocker les fichiers envoyés sur stockage externe (étape 4 de l'installation)`,pass:`L'imprimante signale que cette option est activée — les fichiers envoyés seront stockés sur la carte SD et les archives auront des miniatures et des métadonnées slicer.`,fail:`L'imprimante signale que cette option est désactivée. Activez « Stocker les fichiers envoyés sur stockage externe » — sur les firmwares récents (P2S 01.02 / Bambu Studio 2.6+) l'interrupteur se trouve dans les Paramètres d'impression de l'imprimante ; sur les versions antérieures, il est dans l'onglet Périphérique de Bambu Studio / OrcaSlicer. Sans cette option, chaque impression archivée est dépourvue de miniature et de métadonnées slicer.`,skip:`Non vérifié — une connexion MQTT active est requise. Sur les slicers plus anciens où ce paramètre n'existe que dans le slicer, l'imprimante ne le signale pas, donc cette vérification passe même si l'option est désactivée — vérifiez l'étape 4 de l'installation manuellement.`,skip_unsupported_model:`Ce modèle a un emplacement SD mais aucun moyen d'activer l'option — le firmware actuel de la série P1 n'affiche pas le bouton dans Bambu Studio et l'imprimante n'a pas d'écran. Il n'y a rien à corriger ici ; les impressions archivées peuvent manquer de miniatures et de métadonnées du slicer jusqu'à ce que Bambu Lab l'ajoute par firmware.`},port_rtsps:{title:`Port caméra ({{protocol}} {{port}})`,pass:`Accessible — le flux de la caméra fonctionnera.`,warn:`Le port {{port}} est inaccessible. La vue caméra en direct ne fonctionnera pas. Cela n'affecte pas l'impression.`},network_mode:{title:`Mode réseau Docker`,pass:`Fonctionne en mode réseau host.`,warn:`Bambuddy fonctionne en réseau Docker bridge. La découverte d'imprimantes et l'imprimante virtuelle nécessitent le mode réseau host — recréez le conteneur avec "network_mode: host".`,skip:`Ne fonctionne pas dans Docker — non applicable.`},subnet:{title:`Sous-réseau`,pass:`L'imprimante et Bambuddy sont sur le même sous-réseau.`,warn:`L'imprimante ({{printer_ip}}) et Bambuddy ({{host_ip}}) sont sur des sous-réseaux différents. Ils peuvent ne pas se joindre, sauf si un routage entre les sous-réseaux est configuré.`,skip:`Le sous-réseau n'a pas pu être déterminé — ignoré.`},mqtt_auth:{title:`Identifiants de l'imprimante`,pass:`L'imprimante a accepté la connexion.`,fail:`L'imprimante est accessible mais Bambuddy n'y est pas connecté. Le code d'accès ou le numéro de série est très probablement incorrect — le code d'accès change chaque fois que le mode LAN uniquement ou le mode développeur est activé/désactivé, recopiez-le donc depuis l'écran de l'imprimante. Une imprimante en cours de redémarrage, ou ayant déjà atteint sa limite de connexions simultanées, produit le même résultat.`,fail_auth_rejected:`L'imprimante a refusé les identifiants de Bambuddy. Le code d'accès ou le numéro de série est incorrect — le code d'accès change chaque fois que le mode LAN uniquement ou le mode développeur est activé/désactivé. Recopiez-le depuis l'écran de l'imprimante et enregistrez-le dans les paramètres de l'imprimante.`,skip:`Non vérifié — l'imprimante n'a pas pu être jointe.`},developer_mode:{title:`Mode développeur LAN`,pass:`Le mode développeur est activé.`,fail:`Le mode développeur est DÉSACTIVÉ sur l'imprimante. Activez-le dans les paramètres LAN de l'imprimante — et confirmez avec OK. Sans lui, les impressions ne démarreront pas.`,skip:`Impossible à vérifier — nécessite une connexion active à l'imprimante.`},printer_publishing:{title:`L'imprimante publie son état`,pass:`L'imprimante publie des mises à jour d'état — l'AMS, les filaments et les profils K seront correctement reflétés dans le slicer.`,fail:`Le broker MQTT a accepté la connexion mais l'imprimante n'a publié aucun rapport d'état. Il s'agit presque toujours d'un numéro de série erroné ou mal capitalisé — le topic device//api/v1/metricsでプリンターメトリクスを公開。`,bearerTokenOptional:`Bearerトークン(オプション)`,bearerTokenHint:`設定時、リクエストにAuthorization: Bearer が必要`,metricsConnectionStatus:`接続状態`,metricsPrinterState:`プリンター状態(idle/printing等)`,metricsPrintProgress:`印刷進捗 0-100%`,metricsBedTemp:`ベッド温度`,metricsNozzleTemp:`ノズル温度`,metricsPrintsTotal:`結果別の総印刷数`,metricsMore:`...その他(レイヤー、ファン、キュー、フィラメント使用量)`,smartPlugsDescription:`スマートプラグ(TasmotaまたはHome Assistant)を接続して、電源制御の自動化とプリンターのエネルギー使用量を追跡。`,allOn:`すべてオン`,allOff:`すべてオフ`,addSmartPlug:`スマートプラグを追加`,energySummary:`エネルギー概要`,currentPower:`現在の消費電力`,plugsOnline:`{{reachable}}/{{total}}プラグオンライン`,today:`今日`,yesterday:`昨日`,total:`合計`,enablePlugsForSummary:`プラグを有効にしてエネルギー概要を表示`,addNotificationProvider:`追加`,systemBadge:`(システム)`,creating:`作成中...`,changing:`変更中...`,deleteUserAndItems:`ユーザーとそのアイテムを削除`,deleteUserKeepItems:`ユーザーを削除、アイテムは保持(オーナーなしになります)`,ok:`OK`,twoFa:{totpTitle:`認証アプリ (TOTP)`,totpDesc:`Google Authenticator、Aegis、Authyなどのアプリを使用します。`,emailOtpTitle:`メールOTP`,emailOtpDesc:`ログイン時に{{email}}にワンタイムコードを送信します。`,emailOtpNoEmail:`この方法を有効にするには、アカウントにメールアドレスを追加してください。`,addEmailFirst:`アカウントにメールアドレスがありません。管理者に追加を依頼してください。`,setupTotp:`認証アプリを設定`,setupAuthApp:`認証アプリを設定`,setupInstructions:`認証アプリでQRコードをスキャンし、コードで確認してください。`,manualEntry:`スキャンできない場合は、このシークレットを手動で入力してください:`,scannedContinue:`コードをスキャンしました — 続ける`,enterCodeToConfirm:`認証アプリの6桁のコードを入力して設定を確認してください。`,activate:`有効化`,disableTotp:`認証アプリを無効化`,disableConfirmHint:`認証アプリを無効にするには、有効なTOTPコードまたはバックアップコードを入力してください。`,totpDisabled:`認証アプリが無効化されました。`,emailOtpEnabled:`メールOTPが有効化されました。`,emailOtpDisabled:`メールOTPが無効化されました。`,smtpRequired:`先にSMTP設定を構成してテストしてください。`,invalidCode:`無効なコードです。もう一度お試しください。`,enableEmailOtp:`メールOTPを有効化`,disableEmailOtp:`メールOTPを無効化`,emailSetupEnterCode:`確認コードがメールアドレスに送信されました。このメールボックスを所有していることを確認するために、以下に入力してください。`,verifyAndEnable:`確認して有効化`,emailDisablePasswordHint:`メールOTPの無効化を確認するには、アカウントのパスワードを入力してください。`,passwordPlaceholder:`パスワードを入力してください`,backupCodesTitle:`バックアップコードを保存`,backupCodesWarning:`これらのコードを安全な場所に保存してください。各コードは一度しか使用できません。`,backupCodesRemaining:`バックアップコード残り{{count}}個`,savedCodes:`コードを保存しました`,regenBackup:`バックアップコードを再生成`,regenBackupHint:`現在のTOTPコードを入力して10個の新しいバックアップコードを生成します。`,newBackupCodes:`新しいバックアップコード`,linkedAccounts:`リンクされたSSOアカウント`,linkedAccountsDesc:`これらの外部IDプロバイダーがあなたのアカウントにリンクされています。`,oidcUnlinked:`アカウントのリンクを解除しました。`},sessionPolicy:{title:`セッションポリシー`,description:`新しいユーザーログインの最大セッション有効期間。すでに発行されたトークンは元の有効期限を保持します。`,preset24h:`24時間`,preset7d:`7日`,preset30d:`30日`,customHoursLabel:`カスタムセッション有効期間(時間)`,hoursSuffix:`時間`,warning:`長いセッションは自動ログアウト保護を弱めます。信頼できる単一ユーザー環境でのみ推奨されます。`},oidc:{title:`SSO / OIDCプロバイダー`,desc:`シングルサインオン用のOpenID Connectプロバイダーを設定します。`,addProvider:`プロバイダーを追加`,newProvider:`新しいプロバイダー`,empty:`OIDCプロバイダーがまだ設定されていません。`,created:`プロバイダーが作成されました。`,updated:`プロバイダーが更新されました。`,deleted:`プロバイダーが削除されました。`,refreshIcon:`アイコンを再取得`,removeIcon:`アイコンを削除`,iconRefreshed:`アイコンを更新しました。`,iconRemoved:`アイコンを削除しました。`,iconFetchFailed:`プロバイダーURLからアイコンを取得できませんでした。`,deleteTitle:`プロバイダーを削除`,deleteMessage:`"{{name}}"を削除しますか?リンクされたすべてのユーザーアカウントが切断されます。`,form:{name:`表示名`,issuerUrl:`発行者URL`,clientId:`クライアントID`,clientSecret:`クライアントシークレット`,scopes:`スコープ`,iconUrl:`アイコンURL (任意)`,enabled:`有効`,autoCreate:`ユーザーを自動作成`,autoCreateDesc:`初回ログイン時にローカルアカウントを自動的に作成します。`,autoLink:`既存アカウントを自動リンク`,autoLinkDesc:`初回ログイン時にメールアドレスで既存のローカルアカウントにリンクします。`,secretHint:`空白のままで現在のものを維持`,secretPlaceholder:`新しいシークレット`,emailClaim:`メールクレーム`,emailClaimDesc:`メールIDとして使用するJWTクレーム。Azure Entra IDには'preferred_username'または'upn'を使用(email_verifiedを送信しない)。信頼できるクレーム名のみ使用してください。`,emailClaimPlaceholder:`メール`,emailClaimCustomClaimAutoLinkWarning:`カスタムクレームは、値がテナント管理されている場合(Azure Entra IDのupn / preferred_usernameなど)にのみ自動リンクに安全です。IdPがユーザーにこのクレームの自己宣言を許可している場合は、自動リンクを有効にしないでください。`,requireEmailVerified:`メール確認を要求`,requireEmailVerifiedDesc:`プロバイダーが確認済みとしてマークした場合にのみメールクレームを受け入れます。`,requireEmailVerifiedWarning:`警告:確認なしでメールが受け入れられます。信頼できるプロバイダーのみで使用してください。`,requireEmailVerifiedAutoLink:`この設定を変更するには、まず自動リンクを無効にしてください。`,defaultGroup:`デフォルトグループ`,defaultGroupDesc:`自動作成ユーザーに割り当てられるグループ。未設定の場合はViewersにフォールバックします。`,defaultGroupViewersFallback:`Viewers(デフォルト)`,autologin:`自動サインイン`,autologinDesc:`未認証の訪問者をこのプロバイダーに直接リダイレクトします。このフラグを付けられるプロバイダーは1つだけです。`}},encryption:{title:`MFA暗号化ステータス`,enabledFromEnv:`保存時の暗号化が有効(MFA_ENCRYPTION_KEY環境変数のキー)`,enabledFromFile:`保存時の暗号化が有効(データディレクトリから読み込んだキー)`,enabledGenerated:`保存時の暗号化が自動生成キーで有効`,notConfigured:`保存時の暗号化が設定されていません`,notConfiguredDesc:`TOTPシークレットとOIDCのclient_secretsは平文で保存されています。MFA_ENCRYPTION_KEYを設定するか、書き込み可能なデータディレクトリでBambuddyを再起動して自動生成してください。`,allEncrypted:`すべてのMFAシークレットは保存時に暗号化されています。`,legacyRowsLabel:`レガシー平文行`,encryptedRowsLabel:`暗号化された行`,legacyRowsWarning:`{{count}}件のレガシー平文行を検出。OIDCプロバイダーを再保存するか、ユーザーの認証アプリを再登録して暗号化ストレージへ移行してください。`,backupHint:`自動生成キーは DATA_DIR/.mfa_encryption_key に保存され、ローカルバックアップZIPに含まれます。バックアップを安全に保管するか、MFA_ENCRYPTION_KEYを明示的に設定してください。`,decryptionBrokenTitle:`暗号化キーが見つかりません`,decryptionBrokenError:`{{count}}件の暗号化レコードを復号できません。暗号化キーが見つかりません。以前のMFA_ENCRYPTION_KEYまたはDATA_DIR/.mfa_encryption_keyを復元してください。`,migrationErrorWarning:`{{count}} 件のレガシー行を起動時に再暗号化できませんでした。サーバーログを確認し、Bambuddy を再起動して再試行してください。`},pipelineLimits:{title:`スライサーパイプラインの上限`,maxCopiesLabel:`実行あたりの最大コピー数`,maxCopiesDesc:`パイプライン実行時にオペレーターが要求できるコピー数の上限。サーバー側の上限は 1000 です。`},pipelines:{title:`スライサーパイプライン`,subtitle:`再利用可能なプリセットバンドル(プリンター + プロセス + フィラメント + ベッドタイプ)。スライスダイアログから保存し、次のファイルにワンクリックで適用できます。`,loading:`パイプラインを読み込み中…`,loadError:`パイプラインを読み込めませんでした。`,confirmDelete:`このパイプラインを削除しますか?元に戻せません。`,staleWarning:`参照されているプリセットが見つかりません。スライスダイアログから再保存して修正してください。`,empty:{title:`パイプラインはまだありません。`,howto:`任意のファイルでスライスダイアログを開き、プリンター / プロセス / フィラメント / ベッドタイプを選んで「パイプラインとして保存」をクリックしてください。保存したパイプラインはここに表示されます。`},field:{name:`パイプライン名`,description:`説明`,targetPrinter:`対象プリンター`,noTarget:`— 対象なし —`,targetKind:`対象種別`,targetKindSpecific:`特定のプリンター`,targetKindClass:`プリンタークラス`,targetModelClass:`プリンターモデル`,fanoutStrategy:`分散戦略`,fanout:{max_parallel:`最大並列 — 一致する空きプリンターに分散`,round_robin:`ラウンドロビン — 適格なプリンター間で循環`,fill_one_first:`1台ずつ埋める — すべてのコピーを1台に固定`},fanoutShort:{max_parallel:`並列`,round_robin:`ラウンドロビン`,fill_one_first:`1台ずつ`}},action:{save:`保存`,cancel:`キャンセル`,rename:`名前変更`,delete:`削除`},slot:{printer:`プリンター`,process:`プロセス`,filament:`フィラメント`,filamentN:`フィラメント {{n}}`,filamentAll:`{{n}} スロットすべて`,bed:`ベッド`},group:{profiles:`プロファイル`,filaments:`フィラメント`},searchPlaceholder:`パイプラインを検索…`,filterTargetType:`対象種別でフィルター`,filterTarget:`対象でフィルター`,filter:{all:`すべての対象`,noTarget:`対象未設定`,count:`{{shown}} / {{total}}`,noMatches:`現在のフィルターに一致するパイプラインはありません。`},toast:{saved:`パイプラインを保存しました`,saveFailed:`保存に失敗しました`,deleted:`パイプラインを削除しました`,deleteFailed:`削除に失敗しました`},noTargetHint:`実行するには対象プリンターを設定してください`,noTargetWarning:`このパイプラインを実行する前に対象プリンターを設定してください。`,runs:{lastRun:`前回の実行`,status:{queued:`待機中`,slicing:`スライス中`,dispatching:`送信中`,in_progress:`印刷中`,completed:`完了`,failed:`失敗`,partial_failure:`部分的失敗`,cancelled:`キャンセル`}}}},notification:{printStarted:{title:`印刷開始`,body:`{{printer}}: {{filename}} の印刷を開始しました`},printCompleted:{title:`印刷完了`,body:`{{printer}}: {{filename}} が正常に完了しました`},printFailed:{title:`印刷失敗`,body:`{{printer}}: {{filename}} が失敗しました`},printStopped:{title:`印刷中止`,body:`{{printer}}: {{filename}} が中止されました`},printProgress:{title:`印刷進捗`,body:`{{printer}}: {{filename}} は {{percent}}% 完了`},printerOffline:{title:`プリンターオフライン`,body:`{{printer}} がオフラインです`},printerError:{title:`プリンターエラー`,body:`{{printer}} – {{error}}`},filamentLow:{title:`フィラメント残量低下`,body:`{{printer}}: フィラメントが残りわずかです`},maintenanceDue:{title:`メンテナンス期限`,body:`{{printer}}: {{items}} の対応が必要です`}},errors:{generic:`問題が発生しました`,networkError:`ネットワークエラーです。接続を確認してください。`,notFound:`見つかりません`,unauthorized:`認証エラー`,serverError:`サーバーエラー`,validationError:`入力内容を確認してください`,printerConnectionFailed:`プリンターへの接続に失敗しました`,saveFailed:`保存に失敗しました`,deleteFailed:`削除に失敗しました`,loadFailed:`データの読み込みに失敗しました`},hmsErrors:{title:`エラー - {{name}}`,noErrors:`エラーなし`,viewOnWiki:`Bambu Lab Wikiで表示`,mqttVerifyFailedRemedy:`プリンターで開発者モードを有効にし、プリンターを再起動してから、ジョブをもう一度開始してください。`,unknownCode:`不明なHMSコード — 詳細はBambu Lab Wikiを参照してください。`,clearInstructions:`プリンターでエラーをクリアするとここからも消えます。`,clearErrors:`エラーをクリア`,clearSuccess:`HMSエラーをクリアしました`,clearFailed:`HMSエラーのクリアに失敗しました`,actionSuccess:`アクションをプリンターに送信しました`,actionFailed:`アクションの送信に失敗しました`,runoutExpectedSlot:`{{ranOut}} のフィラメントが切れました。プリンターは現在 {{expected}} に対応するフィラメントを待っています。{{expected}} にスプールをセットして、「再試行」を選択してください。`,runoutExpectedSlotOnly:`プリンターは {{expected}} に対応するフィラメントを待っています。そこにスプールをセットして、「再試行」を選択してください。`,runoutSlotUnknown:`フィラメントが切れて印刷が一時停止しています。プリンターが現在要求しているスロットを Bambuddy が特定できませんでした。プリンターの画面で要求されているスロットを確認してください。`,actions:{RESUME_PRINTING:`印刷を再開`,RESUME_PRINTING_DEFECTS:`再開(不具合を許容)`,RESUME_PRINTING_PROBELM_SOLVED:`再開(問題解決)`,STOP_PRINTING:`印刷を停止`,CHECK_ASSISTANT:`アシスタントを開く`,FILAMENT_EXTRUDED:`フィラメント排出済み、続行`,RETRY_FILAMENT_EXTRUDED:`まだ排出されていない、再試行`,CONTINUE:`完了、続行`,LOAD_VIRTUAL_TRAY:`フィラメントを装填`,OK_BUTTON:`OK`,FILAMENT_LOAD_RESUME:`フィラメント装填完了、再開`,JUMP_TO_LIVEVIEW:`ライブビューを表示`,NO_REMINDER_NEXT_TIME:`次回は通知しない`,REFRESH_NOZZLE:`再確認`,IGNORE_NO_REMINDER_NEXT_TIME:`無視して次回は通知しない`,IGNORE_RESUME:`無視して再開`,PROBLEM_SOLVED_RESUME:`問題解決、再開`,TURN_OFF_FIRE_ALARM:`了解、火災警報をオフ`,RETRY_PROBLEM_SOLVED:`再試行(問題解決)`,CANCLE:`キャンセル`,STOP_DRYING:`乾燥を停止`,PROCEED:`続行`,OK_JUMP_RACK:`OK`,ABORT:`中止`,DISABLE_PURIFICATION:`この印刷では空気清浄を無効化`,DONT_REMIND_NEXT_TIME:`今後表示しない`,DBL_CHECK_CANCEL:`キャンセル`,DBL_CHECK_DONE:`完了`,DBL_CHECK_RETRY:`再試行`,DBL_CHECK_RESUME:`再開`,DBL_CHECK_OK:`確認`,REMOVE_CLOSE_BTN:`閉じる`}},mqttDebug:{title:`MQTTデバッグログ`,searchPlaceholder:`トピックまたはペイロードで検索...`,noMessages:`まだメッセージが記録されていません`,startLoggingHint:`「ログ開始」をクリックしてMQTTメッセージのキャプチャを開始`,noMessagesMatch:`フィルターに一致するメッセージがありません`,adjustFilterHint:`検索条件やフィルター条件を調整してみてください`,incoming:`受信`,outgoing:`送信`,loggingStopped:`ログ記録停止`,loggingActive:`ログ記録中 - メッセージは自動更新されます`,startLogging:`ログ記録を開始`,stopLogging:`ログ停止`,clearLog:`ログをクリア`,topic:`トピック`,timestamp:`タイムスタンプ`,direction:`方向`,all:`すべて`},printerFiles:{title:`ファイル管理`,storageUsed:`使用中:`,storageFree:`空き:`,filterPlaceholder:`ファイルを検索...`,deleteButton:`削除`,deleteFiles:`{{count}}件のファイルを削除`,deleteFileConfirm:`"{{name}}" を削除しますか?この操作は取り消せません。`,deleteFilesConfirm:`選択した{{count}}件のファイルを削除しますか?元に戻せません。`,noFiles:`このディレクトリにファイルがありません`,loadingFiles:`ファイルを読み込み中...`,failedToLoad:`ファイルの読み込みに失敗しました`,toast:{filesDeleted:`{{count}}件のファイルを削除しました`,deleteFailed:`削除に失敗: {{error}}`}},confirm:{delete:`削除しますか?`,unsavedChanges:`保存されていない変更があります。このページを離れますか?`,clearQueue:`キューをクリアしますか?`},login:{title:`Bambuddy ログイン`,subtitle:`アカウントにサインイン`,username:`ユーザー名`,usernamePlaceholder:`ユーザー名を入力`,usernameOrEmail:`ユーザー名またはメール`,usernameOrEmailPlaceholder:`ユーザー名または @ メール`,password:`パスワード`,passwordPlaceholder:`パスワードを入力`,signIn:`サインイン`,signingIn:`ログイン中...`,rememberMe:`ログイン状態を保持する`,forgotPassword:`パスワードをお忘れですか?`,autologinFailed:`SSOへの自動サインインに失敗しました。下から続行するプロバイダーを選択してください。`,localDisabledNotice:`ローカルサインインは無効化されています。下のSSOプロバイダーをご利用ください。`,loginSuccess:`ログインしました`,loginFailed:`ログインに失敗しました`,enterCredentials:`ユーザー名とパスワードを入力してください`,enterEmail:`メールアドレスを入力してください`,oidcLoginFailed:`OIDCログインに失敗しました`,oidcErrors:{providerError:`IDプロバイダーがエラーを返しました`,missingParameters:`OIDCコールバックに必須パラメーターがありません`,invalidState:`OIDCの状態が無効か、すでに使用されています`,stateExpired:`OIDCログインセッションが期限切れです。もう一度お試しください`,providerNotFound:`OIDCプロバイダーが見つかりません`,discoveryFailed:`OIDCディスカバリードキュメントの取得に失敗しました`,invalidDiscovery:`OIDCディスカバリードキュメントが無効です`,networkError:`OIDCトークン交換中にネットワークエラーが発生しました`,badResponse:`OIDCトークン交換中に予期しない応答を受信しました`,noIdToken:`OIDCプロバイダーがIDトークンを返しませんでした`,validationFailed:`OIDCトークンの検証に失敗しました`,nonceMismatch:`OIDCノンスが一致しません。リプレイ攻撃の可能性があります`,missingSubClaim:`OIDCトークンにsubクレームがありません`,noLinkedAccount:`このOIDCアイデンティティに関連付けられたローカルアカウントがありません`,accountInactive:`あなたのアカウントは無効です`,userResolutionFailed:`アカウントを解決できませんでした`,internalError:`OIDCログイン中に内部エラーが発生しました`,tokenExchangeFailed:`OIDCトークン交換に失敗しました`},forgotPasswordTitle:`パスワードを忘れた場合`,forgotPasswordMessage:`パスワードを忘れた場合は、システム管理者に連絡してリセットしてもらってください。`,forgotPasswordEmailMessage:`メールアドレスを入力すると、新しいパスワードを送信します。`,emailAddress:`メールアドレス`,emailPlaceholder:`your.email@example.com`,cancel:`キャンセル`,sending:`送信中...`,sendResetEmail:`リセットメールを送信`,howToReset:`パスワードのリセット方法:`,resetStep1:`Bambuddy管理者に連絡`,resetStep2:`ユーザー管理でパスワードリセットを依頼`,resetStep3:`管理者が新しい仮パスワードを設定`,resetStep4:`新しいパスワードでログインし、設定で変更`,gotIt:`了解`,twoFA:{title:`二段階認証`,subtitle:`アカウントは二段階認証で保護されています。確認コードを入力してください。`,methodAuthenticator:`認証アプリ`,methodEmail:`メール認証`,methodBackup:`バックアップコード`,instructionsTotp:`認証アプリを開いて、Bambuddy用の6桁のコードを入力してください。`,instructionsEmail:`6桁の確認コードをメールアドレスに送信しました。有効期限は10分です。`,instructionsEmailNotSent:`下のボタンをクリックして、メールで確認コードを受け取ってください。`,instructionsBackup:`8文字のバックアップコードをいずれか1つ入力してください。各コードは1回のみ使用可能です。`,sendCodeButton:`メールでコードを送信する`,sendingCode:`送信中...`,resendCode:`コードを再送する`,codeLabel:`確認コード`,backupCodeLabel:`バックアップコード`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`確認する`,verifyingButton:`確認中...`,backToLogin:`← ログイン画面に戻る`,orContinueWith:`または以下でログイン`,signInWith:`{{provider}}でログイン`,enterCode:`確認コードを入力してください`,sendCodeFailed:`確認コードの送信に失敗しました`,invalidCode:`無効なコードです。もう一度お試しください。`},resetPassword:{title:`新しいパスワードを設定`,subtitle:`下のフィールドに新しいパスワードを入力して確認してください。`,newPassword:`新しいパスワード`,newPasswordPlaceholder:`8文字以上`,confirmPassword:`パスワードの確認`,confirmPasswordPlaceholder:`新しいパスワードを再入力`,saving:`保存中…`,submit:`新しいパスワードを設定`,backToLogin:`ログインに戻る`,passwordsDoNotMatch:`パスワードが一致しません`,passwordTooShort:`パスワードは8文字以上で入力してください`,resetFailed:`パスワードのリセットに失敗しました。リンクが期限切れの可能性があります。`}},setup:{title:`Bambuddy セットアップ`,subtitle:`Bambuddyインスタンスの認証を設定`,enableAuth:`認証を有効化`,adminAccount:`管理者アカウント`,adminAccountDesc:`既に管理者ユーザーが存在する場合、既存の管理者アカウントを使用して認証が有効化されます。既存の管理者を使用する場合は下のフィールドを空のままにするか、新しい認証情報を入力して新しい管理者ユーザーを作成してください。`,adminUsername:`管理者ユーザー名`,adminPassword:`管理者パスワード`,optionalIfAdminExists:`(管理者ユーザーが存在する場合は任意)`,adminUsernamePlaceholder:`管理者ユーザー名を入力(任意)`,adminPasswordPlaceholder:`管理者パスワードを入力(任意)`,confirmPassword:`パスワードの確認`,confirmPasswordPlaceholder:`パスワードを確認`,settingUp:`セットアップ中...`,completeSetup:`セットアップを完了`,toast:{authEnabledAdminCreated:`認証が有効になり、管理者ユーザーが作成されました`,authEnabledExistingAdmins:`既存の管理者ユーザーを使用して認証が有効になりました`,setupCompleted:`セットアップが完了しました`,enterBothCredentials:`管理者のユーザー名とパスワードの両方を入力するか、既存の管理者を使用する場合は両方を空にしてください`,passwordsDoNotMatch:`パスワードが一致しません`,passwordTooShort:`パスワードは6文字以上必要です`}},changePassword:{title:`パスワードを変更`,currentPassword:`現在のパスワード`,currentPasswordPlaceholder:`現在のパスワードを入力`,newPassword:`新しいパスワード`,newPasswordPlaceholder:`新しいパスワードを入力(6文字以上)`,confirmPassword:`新しいパスワード確認`,confirmPasswordPlaceholder:`パスワードを確認`,passwordsDoNotMatch:`パスワードが一致しません`,passwordTooShort:`パスワードは6文字以上必要です`,changing:`変更中...`,success:`パスワードを変更しました`,failed:`パスワードの変更に失敗しました`},plateAlert:{title:`印刷が一時停止されました!`,message:`ビルドプレート上にオブジェクトが検出されました。印刷が自動的に一時停止されました。プレートをクリアして印刷を再開してください。`,understand:`了解`},camera:{title:`カメラビュー`,invalidPrinterId:`無効なプリンターID`,live:`ライブ`,snapshot:`スナップショット`,restartStream:`ストリームを再開`,refreshSnapshot:`スナップショットを更新`,fullscreen:`フルスクリーン`,exitFullscreen:`フルスクリーンを終了`,connectingToCamera:`カメラに接続中...`,capturingSnapshot:`スナップショットを撮影中...`,connectionLost:`接続が切断されました`,connectionFailed:`カメラ接続に失敗しました`,reconnecting:`{{countdown}}秒後に再接続... (試行 {{attempt}}/{{max}})`,reconnectNow:`今すぐ再接続`,cameraUnavailable:`カメラが利用できません`,cameraUnavailableDesc:`プリンターの電源がオンで接続されていることを確認してください。`,noCamera:`カメラがありません`,retry:`再試行`,cameraStream:`カメラストリーム`,zoomOut:`ズームアウト`,zoomIn:`ズームイン`,resetZoom:`ズームをリセット`,recording:`録画中`,startRecording:`録画開始`,stopRecording:`録画停止`,chamberLight:`チャンバーライト切替`,unavailable:`カメラは利用できません`,diagnose:{button:`診断`,modalTitle:`カメラ診断`,running:`診断を実行中...`,runFailed:`診断を実行できませんでした: {{error}}`,retry:`再実行`,stage:{tcp_reachable:`ネットワーク到達性`,first_frame:`フレーム取得`,live_stream_active:`ライブストリーム動作中`},summary:{all_ok:`カメラは正常に動作しています。診断のすべての段階が成功しました。`,live_stream_active_healthy:`カメラは現在新しいフレームを配信しています — テストは不要です。`,printer_unreachable:`プリンターに到達できません。IPアドレス、ネットワーク接続、プリンターの電源が入っていることを確認してください。`,camera_port_closed:`プリンターには到達できますが、カメラポートが閉じています。プリンター設定でLANのみモードと開発者モードが有効になっていることを確認してください。`,no_frame:`カメラに接続できましたがフレームを受信できませんでした。再試行するか、プリンター設定でカメラが有効になっていることを確認してください。`,unknown_failure:`カメラ診断が不明な理由で失敗しました。詳細はサポートログを確認してください。`},meta:{protocol:`プロトコル`,port:`ポート`,profile:`プロファイル`}}},groups:{title:`グループ管理`,subtitle:`アクセス制御の権限グループを管理`,backToSettings:`設定に戻る`,createGroup:`グループを作成`,noPermission:`このページにアクセスする権限がありません。`,system:`システム`,noDescription:`説明なし`,usersCount:`{{count}}人のユーザー`,permissionsCount:`{{count}}個の権限`,edit:`編集`,delete:`削除`,toast:{created:`グループを作成しました`,updated:`グループを更新しました`,deleted:`アーカイブを削除しました`,enterGroupName:`グループ名を入力`},modal:{editGroup:`グループを編集`,createGroup:`グループを作成`,cancel:`キャンセル`,saving:`保存中...`,creating:`作成中...`,saveChanges:`変更を保存`},form:{groupName:`グループ名`,groupNamePlaceholder:`グループ名を入力`,systemGroupWarning:`システムグループ名は変更できません`,description:`説明`,descriptionPlaceholder:`説明を入力(任意)`,permissions:`権限 ({{count}} 選択中)`},deleteModal:{title:`グループを削除`,message:`このグループを削除しますか?このグループのユーザーはこれらの権限を失います。`,confirm:`確認`},editor:{title:`グループを編集`,createTitle:`グループを作成`,search:`権限を検索...`,selectAll:`すべて選択`,clearAll:`すべて解除`,permissionsSelected:`{{count}}件選択`,noResults:`検索に一致する権限がありません`,websocketHint:`ライブ更新に必要です。この権限がないと、インターフェースは定期的なポーリングに切り替わります。`}},users:{title:`ユーザー管理`,subtitle:`ユーザーとBambuddyインスタンスへのアクセスを管理`,backToSettings:`設定に戻る`,createUser:`ユーザーを作成`,noPermission:`このページにアクセスする権限がありません。`,admin:`管理者`,noGroups:`グループなし`,active:`アクティブ`,inactive:`非アクティブ`,edit:`編集`,delete:`削除`,system:`システム`,noGroupsAvailable:`利用可能なグループがありません`,table:{username:`ユーザー名`,groups:`グループ`,status:`ステータス`,actions:`アクション`},toast:{created:`ユーザーを作成しました`,updated:`ユーザーを更新しました`,deleted:`アーカイブを削除しました`,fillRequired:`必須項目をすべて入力してください`,passwordsDoNotMatch:`パスワードが一致しません`,passwordTooShort:`パスワードは6文字以上必要です`,ldapProvisioned:`LDAPユーザー「{{username}}」をプロビジョニング`},modal:{createUser:`ユーザーを作成`,editUser:`ユーザーを編集`,cancel:`キャンセル`,creating:`作成中...`,saving:`保存中...`,saveChanges:`変更を保存`,advancedAuthSubtitle:`高度な認証を使用`,tabsAriaLabel:`ユーザーソース`,localTab:`ローカル`,ldapTab:`LDAP`,ldapSearchLabel:`ディレクトリを検索`,ldapSearchPlaceholder:`ユーザー名、名前、またはメールアドレスを入力...`,ldapMinChars:`検索するには2文字以上入力してください`,ldapTypeToSearch:`LDAPディレクトリを検索するには入力を開始`,ldapSearching:`ディレクトリを検索中...`,ldapNoResults:`ディレクトリに一致するユーザーがいません`,ldapSearchError:`ディレクトリ検索に失敗。LDAPサーバーの状態を確認してください。`,ldapAlreadyProvisioned:`プロビジョニング済み`,ldapSelectedLabel:`選択中`,ldapProvision:`ユーザーをプロビジョニング`,ldapProvisioning:`プロビジョニング中...`,ldapErrorProvision:`プロビジョニングに失敗。LDAPサーバーの状態を確認して再試行してください。`},form:{username:`ユーザー名`,usernamePlaceholder:`ユーザー名を入力`,email:`メール`,emailPlaceholder:`user@example.com`,password:`パスワード`,passwordPlaceholder:`パスワードを入力`,confirmPassword:`パスワードの確認`,confirmPasswordPlaceholder:`パスワードを確認`,newPasswordPlaceholder:`新しいパスワードを入力`,confirmNewPasswordPlaceholder:`新しいパスワードを確認`,leaveBlankToKeep:`(現在のパスワードを維持する場合は空白)`,groups:`グループ`,optional:`オプション`,autoGeneratedPassword:`安全なパスワードが自動的に生成され、ユーザーにメールで送信されます。`,passwordManagedByAdvancedAuth:`パスワードは高度な認証によって管理されています。「パスワードのリセット」を使用して、メールで新しいパスワードをユーザーに送信してください。`,resetPassword:`パスワードのリセット`,resettingPassword:`パスワードをリセット中...`},deleteModal:{title:`ユーザーを削除`,message:`このユーザーを削除してもよろしいですか?この操作は元に戻せません。`,confirm:`ユーザーを削除`}},streamOverlay:{title:`ストリームオーバーレイ`,invalidPrinterId:`無効なプリンターID`,cameraStream:`カメラストリーム`,progress:`進捗`,eta:`残り時間`,printerIdle:`プリンター待機中`,printerOffline:`プリンターオフライン`,status:{printing:`印刷中`,paused:`一時停止`,finished:`完了`,failed:`失敗`,idle:`待機中`,unknown:`不明`}},profiles:{title:`フィラメントプロファイル`,subtitle:`スライサープリセットと圧力キャリブレーションの管理`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`ローカルプロファイル`,kprofiles:`Kプロファイル`},orcaCloud:{connectedAs:`接続中`,connectedShort:`Orca Cloudに接続済み`,logout:`切断`,noLogoutPermission:`切断する権限がありません`,noConnectPermission:`Orca Cloudに接続する権限がありません`,retry:`再試行`,connectButton:`Orca Cloudに接続`,connect:{title:`Orca Cloudに接続`,description:`Orca Cloudアカウントにサインインして、スライサープロファイルをBambuddyに同期します。`},device:{title:`Orca CloudでBambuddyを承認`,instruction:`Orca Cloudを開いてこのコードを承認してください。承認するとBambuddyが自動的に接続されます。`,codeLabel:`ペアリングコード`,openButton:`Orca Cloud承認ページを開く`,manualHint:`または {{url}} にアクセスして、上記のコードを入力してください。`,waiting:`承認をお待ちしています…`,cancel:`キャンセル`},profiles:{title:`Orca Cloudプロファイル ({{count}})`,refresh:`更新`,empty:`Orca Cloudアカウントにまだプロファイルがありません。`},toast:{disconnected:`Orca Cloudから切断しました`},errors:{startFailed:`Orca Cloudのサインインを開始できませんでした。`,denied:`Orca Cloudでペアリングが拒否されました。`,expired:`ペアリングコードの有効期限が切れました。「接続」をクリックしてもう一度お試しください。`,pollFailed:`承認の待機中に接続が失われました。もう一度お試しください。`}},localProfiles:{title:`ローカルプロファイル`,subtitle:`OrcaSlicerからスライサープリセットをインポート・管理`,import:`プロファイルをインポート`,importDesc:`.bbscfg、.bbsflmt、.orca_filament、.zip、.jsonファイルをここにドロップ`,importing:`インポート中...`,search:`ローカルプリセットを検索...`,noPresets:`ローカルプリセットがまだありません`,noSearchResults:`検索に一致するプリセットがありません`,badge:`ローカル`,edit:`編集`,delete:`削除`,cancel:`キャンセル`,deleteConfirmTitle:`プリセットを削除`,deleteConfirm:`このプリセットを削除してもよろしいですか?元に戻せません。`,source:`ソース`,inheritsFrom:`継承元`,filamentType:`タイプ`,vendor:`メーカー`,compatiblePrinters:`プリンター`,nozzleTemp:`ノズル温度`,cost:`コスト`,density:`密度`,pressureAdvance:`プレッシャーアドバンス`,filament:`フィラメント`,process:`プロセス`,printer:`プリンター`,toast:{importSuccess:`{{count}}件のプリセットをインポートしました`,importSkipped:`{{count}}件のプリセットをスキップしました(重複)`,importError:`インポート中に{{count}}件のエラーが発生しました`,deleted:`プリセットを削除しました`,updated:`プリセットを更新しました`}},connectedAs:`接続中:`,signInExpiredTitle:`Bambu Cloud のサインインの有効期限が切れました`,signInExpiredBody:`保存されたトークンは Bambu Lab に受け付けられなくなりました。クラウドプロファイル、MakerWorld のインポート、ファームウェア確認を復元するには、再度サインインしてください。`,logout:`ログアウト`,noLogoutPermission:`ログアウトする権限がありません`,failedToLoad:`ファイルの読み込みに失敗しました`,retry:`リトライ`,time:{justNow:`たった今`,minsAgo:`{{count}}分前`,hoursAgo:`{{count}}時間前`,daysAgo:`{{count}}日前`},toast:{loggedOut:`ログアウトしました`},login:{title:`Bambuddy ログイン`,subtitle:`アカウントにサインイン`,email:`メールアドレス`,password:`パスワード`,region:`リージョン`,regionGlobal:`グローバル`,regionChina:`中国`,verificationCode:`認証コード`,totpCode:`認証アプリコード`,checkEmail:`メール ({{email}}) に届いた6桁のコードを入力してください`,enterTotpHint:`認証アプリの6桁のコードを入力してください`,accessToken:`アクセストークン`,accessTokenHint:`Bambu Cloud のアクセストークンを貼り付けてください。中国リージョンのアカウントはこの方法のみ利用可能です(電話番号認証のためメールログイン不可)。トークンの取得方法は MakerWorld の Cookie から(Wiki を参照)。`,back:`戻る`,loginButton:`ログイン`,verifyButton:`認証`,setTokenButton:`トークンを設定`,useToken:`アクセストークンを使用`,useEmail:`メールでログイン`,toast:{loggedIn:`ログインしました`,codeSent:`メールに認証コードを送信しました`,enterTotp:`認証アプリのコードを入力してください`,tokenSet:`トークンを設定しました`}},presets:{myPreset:`マイプリセット(編集可能)`,duplicate:`複製`,editable:`編集可能`,failedToLoadDetails:`プリセットの詳細を読み込めませんでした`,deleteConfirm:`このプロファイルを削除しますか?`,deleteWarning:`「{{name}}」をBambu Cloudから完全に削除します。元に戻せません。`,noDuplicatePermission:`プリセットを複製する権限がありません`,noEditPermission:`プリセットを編集する権限がありません`,noDeletePermission:`プロジェクトを削除する権限がありません`,types:{filament:`フィラメント`,printer:`プリンター`,process:`プロセス`},toast:{deleted:`アーカイブを削除しました`,created:`プリセットを作成しました`,updated:`プリセットを更新しました`,duplicated:`プリセットを複製しました`,fieldAdded:`フィールド "{{key}}" を追加しました`,exported:`プリセットをエクスポートしました`},baseLabel:`ベース: {{name}}`,currentLabel:`現在: {{name}}`,newPreset:`新規プリセット`,editPreset:`プリセットを編集`,duplicatePreset:`プリセットを複製`,createNewPreset:`新しいプリセットを作成`,customizeSettings:`新しいプリセットの設定をカスタマイズ`,compareWithBase:`ベースプリセットと比較`,compare:`比較`,basePreset:`ベースプリセット`,selectBasePreset:`ベースプリセットを選択...`,presetName:`プリセット名`,myCustomPreset:`カスタムプリセット`,inheritsFrom:`継承元:`,dropJsonToImport:`JSONファイルをドロップしてインポート`,tabs:{common:`一般`,allFields:`すべてのフィールド`},availableFields:`利用可能なフィールド`,searchFieldsPlaceholder:`フィールドを検索...`,noMatchingFields:`一致するフィールドがありません`,allFieldsAdded:`すべてのフィールドが追加済みです`,addCustomField:`カスタムフィールドを追加`,yourOverrides:`オーバーライド一覧`,noOverridesYet:`オーバーライドはまだありません`,clickFieldsToAdd:`左のフィールドをクリックして追加`,saveAsTemplate:`テンプレートとして保存`,jsonTip:`ヒント: .jsonファイルをこのモーダルにドラッグ&ドロップして設定をインポート`},cloudView:{searchPlaceholder:`プリセットを検索...`,templates:`テンプレート`,refresh:`更新`,newPreset:`新規プリセット`,clearFilters:`フィルターをクリア`,compareMode:`比較モード`,selectAnotherPreset:`同じタイプ({{type}})の別のプリセットを選択`,clickTwoPresets:`同じタイプのプリセットを2つクリックして比較`,selectFirst:`1. 最初を選択`,selectSecond:`2. 2番目を選択`,compareNow:`比較を実行`,lastSynced:`最終同期:`,showingCount:`{{total}} 件中 {{showing}} 件のプリセットを表示`,noPresetsFound:`プリセットが見つかりません`,columns:{filament:`フィラメント`,process:`プロセス`,printer:`プリンター`},noFilamentPresets:`フィラメントプリセットなし`,noProcessPresets:`プロセスプリセットなし`,noPrinterPresets:`プリンタープリセットなし`,filters:{type:`種類`,owner:`所有者`,printer:`プリンター`,nozzle:`ノズル`,filament:`フィラメント`,layer:`レイヤー`,all:`すべて`,myPresets:`マイプリセット`,builtIn:`ビルトイン`,process:`プロセス`},noTemplatesPermission:`テンプレートを管理する権限がありません`,noRefreshPermission:`プロファイルを更新する権限がありません`,noCreatePermission:`プロジェクトを作成する権限がありません`},templates:{title:`フィラメントプロファイル`,noTemplates:`テンプレートがありません。バックエンドを再起動してデフォルトテンプレートを作成してください。`,createFirst:`プリセットエディタからテンプレートを作成`,typeFilter:`タイプ:`,deleteTitle:`テンプレートを削除`,deleteWarning:`この操作は元に戻せません`,deleteConfirm:`"{{name}}" を削除しますか?`,namePlaceholder:`テンプレート名`,descriptionPlaceholder:`説明`,settingsJson:`設定 (JSON)`,fieldsCount:`{{count}}フィールド`,shownInModals:`モーダルに表示`,hiddenInModals:`モーダルで非表示`,apply:`適用`,toast:{deleted:`アーカイブを削除しました`,updated:`テンプレートを更新しました`,created:`テンプレートを作成しました`,applied:`テンプレートを適用しました`}}},support:{debugLoggingActive:`デバッグログが有効です`,manageLogs:`管理`,collectItem7:`プリンター接続状態とファームウェアバージョン`,collectItem8:`連携状態(Spoolman、MQTT、HA)`,collectItem9:`ネットワークインターフェース(サブネットのみ)`,collectItem10:`Pythonパッケージバージョン`,collectItem11:`データベース健全性チェック`,collectItem12:`Docker環境の詳細`,bundleGenerating:`バンドルを生成中...`,bundleStepConnection:`プリンターの接続確認を実行中`,bundleStepVirtualPrinters:`仮想プリンターのセットアップ確認を実行中`,bundleStepLogScan:`最近のログから既知の問題をスキャン中`,bundleStepBuild:`サポートバンドル ZIP を作成中`},fileManager:{title:`ファイル管理`,subtitle:`印刷ファイルの整理と管理`,uploadFiles:`ファイルをアップロード`,newFolder:`新しいフォルダ`,folderName:`フォルダ名`,folderNamePlaceholder:`例: 機能パーツ`,renameFile:`ファイル名を変更`,renameFolder:`フォルダ名を変更`,invalidFilenameChar:`印刷ファイル名に "{{char}}" は使用できません。プリンターのSDカードは次の文字を拒否します: < > : " / \\ | ? *`,moveFiles:`{{count}}件のファイルを移動`,rootNoFolder:`ルート(フォルダなし)`,current:`(現在)`,linkFolder:`フォルダをリンク`,linkFolderDescription:`「{{name}}」をプロジェクトまたはアーカイブにリンクしてすばやくアクセス。`,project:`プロジェクト`,archive:`アーカイブ`,noProjectsFound:`プロジェクトが見つかりません`,noArchivesFound:`アーカイブが見つかりません`,unlink:`リンク解除`,link:`リンク`,dragDropFiles:`ファイルをここにドラッグ&ドロップ`,dropFilesHere:`ここにファイルをドロップ`,releaseToUpload:`離してアップロード`,orClickToBrowse:`またはクリックして選択`,allFileTypesSupported:`すべてのファイルタイプに対応。ZIPファイルは展開されます。`,zipFilesDetected:`ZIPファイルを検出`,zipExtractOptions:`ZIPファイルは展開されます。フォルダー構造の処理方法を選択:`,preserveZipStructure:`ZIPのフォルダ構造を保持`,createFolderFromZip:`ZIPファイル名からフォルダーを作成`,stlThumbnailGeneration:`STLサムネイル生成`,zipMayContainStl:`ZIPファイルにSTLファイルが含まれている場合があります。展開時にサムネイルを生成できます。`,thumbnailsCanBeGenerated:`STLファイルのサムネイルを生成できます。大きなモデルは処理に時間がかかる場合があります。`,generateThumbnailsForStl:`STLファイルのサムネイルを生成`,threemfDetected:`3MFファイルを検出`,threemfExtractionInfo:`プリンターモデル、素材、色、印刷設定は3MFファイルから自動的に抽出されます。`,willBeExtracted:`• 展開予定`,filesExtracted:`• {{count}}個のファイルを展開済み`,uploadComplete:`アップロード完了: {{succeeded}} 件成功`,uploadFailed:`アップロード失敗`,zipFilesFailed:`{{count}}個のファイルが失敗`,uploading:`アップロード中...`,changeLink:`リンクを変更...`,linkTo:`リンク先...`,linkToProjectOrArchive:`プロジェクトまたはアーカイブにリンク`,generateThumbnail:`サムネイルを生成`,generateThumbnails:`サムネイルを生成`,generateThumbnailsForMissing:`サムネイルのないSTLファイルのサムネイルを生成`,gridView:`グリッド表示`,listView:`リスト表示`,lowDiskSpaceWarning:`ディスク容量不足の警告`,lowDiskSpaceDetails:`{{total}}中{{free}}の空き容量のみ。しきい値は設定で{{threshold}}GBに設定されています。`,files:`ファイル`,folders:`フォルダ`,size:`サイズ`,free:`空き:`,allFiles:`すべてのファイル`,allExternal:`外部`,externalIsEmpty:`外部ファイルはありません`,externalEmptyDescription:`リンクされた外部フォルダ内のファイルがここに表示されます。`,wrap:`折り返し`,enableTextWrapping:`テキスト折り返しを有効化`,disableTextWrapping:`テキスト折り返しを無効化`,collapse:`折りたたむ`,collapseFoldersByDefault:`フォルダをデフォルトで折りたたむ`,expandFoldersByDefault:`フォルダをデフォルトで展開する`,folderSort:`フォルダの並べ替え`,folderSortByName:`名前順`,folderSortByActivity:`最終更新順`,dragToResizeTooltip:`ドラッグしてリサイズ、ダブルクリックでリセット`,searchFiles:`ファイルを検索...`,searchSubfoldersHint:`サブフォルダーを含む`,readme:{truncated:`切り詰め`,show:`READMEを表示`,hide:`READMEを非表示`,label:`README`},tags:{title:`タグ`,subtitle:`ファイルに横断的なフィルタ用のラベルを付けます — おもちゃ、子ども向け、PETGのみ、など。`,manage:`タグ`,manageTitle:`タグカタログを管理`,add:`新しいタグ`,edit:`タグの名前を変更`,name:`名前`,fileCount:`ファイル数`,empty:`タグがまだありません。作成してファイルにラベル付けを始めましょう。`,noMatches:`一致するタグがありません。`,createPlaceholder:`例:おもちゃ、子ども向け、petg`,createButton:`作成`,nameRequired:`名前は必須です。`,searchPlaceholder:`タグを絞り込み...`,created:`タグを作成しました。`,updated:`タグの名前を変更しました。`,deleted:`タグを削除しました。`,saveFailed:`タグを保存できませんでした。`,deleteFailed:`タグを削除できませんでした。`,applyFailed:`タグを適用できませんでした。`,applyAdd:`タグを追加`,applyRemove:`タグを削除`,applyAddSuccess:`{{files}}個のファイルに{{count}}個のタグを追加しました。`,applyRemoveSuccess:`{{files}}個のファイルから{{count}}個のタグを削除しました。`,actionAdd:`選択したファイルに追加`,actionRemove:`選択したファイルから削除`,tagAction:`タグ付け`,bulkTitle:`選択した{{count}}個のファイルにタグ付け`,bulkTooltip:`選択したすべてのファイルでタグを追加・削除します。`,noPermission:`ファイルにタグを付ける権限がありません。`,filterLabel:`絞り込み:`,clearAll:`すべてクリア`,confirmDelete:`タグ「{{name}}」を削除しますか?`,confirmDeleteMessage:`カタログからタグを削除します。ファイル自体や他のタグはそのまま残ります。`,confirmDeleteInUseMessage:`このタグは{{count}}個のファイルに付いています。削除するとすべてのファイルからチップが消えますが、ファイル自体はそのままです。`,editAria:`{{name}}を編集`,deleteAria:`{{name}}を削除`},allTypes:`すべての種類`,prints:`印刷回数`,ascending:`昇順`,descending:`降順`,showModified:`更新日時を表示`,hideModified:`更新日時を非表示`,lastModified:`最終更新`,lastActivity:`最終アクティビティ`,resultsCount:`{{total}}件中{{showing}}件`,selectAll:`すべて選択`,deselectAll:`すべて選択解除`,selected:`{{count}}件選択中`,adding:`追加中...`,loadingFiles:`ファイルを読み込み中...`,folderIsEmpty:`フォルダーは空です`,noFilesYet:`ファイルはまだありません`,folderEmptyDescription:`ファイルをアップロードするか、このフォルダーにファイルを移動して開始しましょう。`,noFilesDescription:`印刷関連ファイルの整理を始めるにはファイルをアップロードしてください。`,noMatchingFiles:`一致するファイルがありません`,noMatchingFilesDescription:`現在の検索またはフィルター条件に一致するファイルがありません。`,clearFilters:`フィルターをクリア`,printedCount:`{{count}}回印刷済み`,uploadedBy:`アップロード者`,deleteFolder:`フォルダを削除`,deleteFile:`ファイルを削除`,deleteFilesCount:`{{count}}件のファイルを削除`,deleteFolderConfirm:`このフォルダを削除しますか?中のファイルもすべて削除されます。`,deleteFileConfirm:`このファイルを削除しますか?`,deleteFilesConfirm:`選択した{{count}}件のファイルを削除しますか?この操作は元に戻せません。`,deleting:`削除中...`,noPermissionRenameFolder:`フォルダー名を変更する権限がありません`,noPermissionLinkFolder:`フォルダーをリンクする権限がありません`,noPermissionDeleteFolder:`フォルダーを削除する権限がありません`,onlyEmptyFoldersDeletable:`空のフォルダーのみ削除できます`,noPermissionPrint:`印刷する権限がありません`,noPermissionSlice:`ファイルをスライスする権限がありません`,noPermissionAddToQueue:`キューに追加する権限がありません`,noPermissionDownload:`ファイルをダウンロードする権限がありません`,noPermissionRenameFile:`このファイル名を変更する権限がありません`,noPermissionGenerateThumbnail:`サムネイルを生成する権限がありません`,noPermissionDeleteFile:`このファイルを削除する権限がありません`,noPermissionCreateFolder:`フォルダーを作成する権限がありません`,noPermissionUpload:`ファイルをアップロードする権限がありません`,noPermissionMoveFiles:`ファイルを移動する権限がありません`,noPermissionDeleteFiles:`ファイルを削除する権限がありません`,linkExternal:`外部リンク`,linkExternalFolder:`外部フォルダをリンク`,linkExternalFolderDescription:`ホストディレクトリ(NAS、USB、ネットワーク共有)をファイルマネージャにマウントします。ファイルはコピーされず、元のパスから直接アクセスされます。`,externalFolderNamePlaceholder:`例:NASプリント`,externalPath:`ホストパス`,externalPathHelp:`Dockerホスト上のディレクトリの絶対パス。コンテナにバインドマウントされている必要があります。`,readOnly:`読み取り専用`,readOnlyHelp:`アップロードと削除を防止`,showHiddenFiles:`隠しファイルを表示(ドットファイル)`,externalFolder:`外部フォルダ`,scanFolder:`スキャン`,toast:{folderCreated:`フォルダを作成しました`,folderDeleted:`フォルダを削除しました`,fileDeleted:`ファイルを削除しました`,filesDeleted:`{{count}}件のファイルを削除しました`,filesMoved:`ファイルを移動しました`,folderLinked:`フォルダをリンクしました`,folderUnlinked:`フォルダのリンクを解除しました`,externalFolderLinked:`外部フォルダがリンクされスキャンされました`,folderScanned:`スキャン完了:{{added}}件追加、{{removed}}件削除`,addedToQueue:`{{count}}個のファイルをキューに追加しました`,addedToQueuePartial:`{{added}}件追加、{{failed}}件失敗`,failedToAddToQueue:`ファイルの追加に失敗: {{error}}`,fileRenamed:`ファイル名を変更しました`,folderRenamed:`フォルダ名を変更しました`,thumbnailsGenerated:`{{count}}件のサムネイルを生成しました`,thumbnailsGeneratedPartial:`{{succeeded}}件生成、{{failed}}件失敗`,noStlMissingThumbnails:`サムネイルのないSTLファイルはありません`,failedToGenerateThumbnails:`サムネイルの生成に失敗: {{error}}`,thumbnailGenerated:`サムネイルを生成しました`,failedToGenerateThumbnail:`サムネイルの生成に失敗: {{error}}`}},projects:{title:`プロジェクト`,subtitle:`印刷プロジェクトを管理`,newProject:`新規プロジェクト`,editProject:`プロジェクトを編集`,deleteProject:`プロジェクトを削除`,projectName:`プロジェクト名`,description:`説明`,noProjects:`プロジェクトはまだありません`,noProjectsFiltered:`{{status}}のプロジェクトはありません`,noProjectsFilteredHelp:`{{status}}のプロジェクトがありません。ステータスが変更されるとここに表示されます。`,createFirst:`最初のプロジェクトを作成して、関連する印刷の整理、進捗管理、ビルドの管理を始めましょう。`,createFirstButton:`最初のプロジェクトを作成`,create:`作成`,files:`ファイル`,prints:`印刷`,plates:`プレート`,parts:`パーツ`,lastModified:`最終更新日`,deleteConfirm:`このプロジェクトを削除しますか?アーカイブとキューアイテムはリンク解除されますが、削除されません。`,addFiles:`ファイルを追加`,removeFile:`ファイルを削除`,viewDetails:`詳細を表示`,namePlaceholder:`プロジェクト名`,descriptionPlaceholder:`プロジェクトの説明(任意)`,urlLabel:`URL`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`URLはhttp://またはhttps://で始まる必要があります`,openExternalUrl:`プロジェクトのURLを開く`,coverImageLabel:`カバー画像`,coverImageAlt:`プロジェクトのカバー画像`,coverImageUpload:`アップロード`,coverImageReplace:`置き換える`,coverImageRemove:`削除`,color:`色`,targetPlates:`目標プレート数`,targetPlatesPlaceholder:`例: 10`,targetPlatesHelp:`印刷ジョブの数`,targetParts:`目標パーツ数`,targetPartsPlaceholder:`例: 50`,targetPartsHelp:`必要なオブジェクトの総数`,targetSets:`ファイルごとの部数`,targetSetsPlaceholder:`例: 10`,targetSetsHelp:`各印刷可能ファイルを印刷する回数`,tagsLabel:`タグ(カンマ区切り)`,tagsPlaceholder:`カンマ区切りのタグ`,dueDate:`期限`,priority:`優先度`,priorityLow:`低`,priorityNormal:`通常`,priorityHigh:`高`,priorityUrgent:`緊急`,statusActive:`進行中`,statusCompleted:`完了`,statusArchived:`アーカイブ済み`,done:`完了`,completed:`完了`,failed:`失敗`,inQueue:`キュー内`,noPrintsYet:`印刷履歴なし`,printJobs:`印刷ジョブ`,partsPrinted:`印刷済みパーツ`,failedParts:`失敗パーツ`,import:`インポート`,export:`エクスポート`,importProject:`プロジェクトをインポート`,exportAll:`すべてのプロジェクトをエクスポート`,loading:`プロジェクトを読み込み中...`,noEditPermission:`プロジェクトを編集する権限がありません`,noDeletePermission:`プロジェクトを削除する権限がありません`,noCreatePermission:`プロジェクトを作成する権限がありません`,noImportPermission:`プロジェクトをインポートする権限がありません`,noExportPermission:`プロジェクトをエクスポートする権限がありません`,toast:{created:`プロジェクトを作成しました`,updated:`プロジェクトを更新しました`,deleted:`アーカイブを削除しました`,imported:`プロジェクトをインポートしました`,multipleImported:`{{count}}件のプロジェクトをインポートしました`,importFailed:`インポートに失敗しました`,exported:`プロジェクトをエクスポートしました(メタデータのみ)`}},projectDetail:{notFound:`見つかりません`,backToProjects:`プロジェクト一覧に戻る`,export:`エクスポート`,exportProject:`プロジェクトをエクスポート`,noExportPermission:`プロジェクトをエクスポートする権限がありません`,noEditPermission:`このプロジェクトを編集する権限がありません`,partOf:`所属先`,priorityLabel:`優先度`,noPrints:`このプロジェクトにはまだ印刷がありません`,status:{active:`進行中`,completed:`完了`,archived:`アーカイブ済み`},priority:{low:`低`,normal:`通常`,high:`高`,urgent:`緊急`},dueDate:{overdue:`期限超過`,today:`今日が期限`,daysLeft:`残り{{count}}日`},progress:{platesProgress:`プレート進捗`,partsProgress:`パーツ進捗`,setsProgress:`完成セット`,sets:`セット`,setsHint:`すべての印刷可能ファイルがこの回数に達するとセットが完成します`,printJobs:`印刷ジョブ`,parts:`パーツ`,percentComplete:`{{percent}}% 完了`,remaining:`残り {{count}} 件`},stats:{printJobs:`印刷ジョブ`,total:`合計`,failed:`失敗 {{count}} 件`,partsPrinted:`印刷済みパーツ {{count}} 件`,printTime:`印刷時間`,filamentUsed:`フィラメント使用量`},cost:{title:`コスト追跡`,filamentCost:`フィラメント`,energy:`エネルギー`,totalCost:`合計コスト`,total:`合計`,includesBom:`BOM含む`,budget:`予算`,remaining:`残り`},subProjects:{title:`サブプロジェクト ({{count}})`},notes:{title:`メモ`,noEditPermission:`このプロジェクトを編集する権限がありません`,placeholder:`このプロジェクトについてメモを追加...`,empty:`<空>`},files:{title:`ファイル`,linkFolders:`ファイルマネージャーからフォルダーをリンク`,forQuickAccess:`してクイックアクセスできるようにします。`,fileCount:`{{count}}ファイル`,empty:`<空>`,printedCount:`{{count}}回印刷済み`,progressTooltip:`{{target}}回中{{done}}回の印刷が完了`,noFiles:`このフォルダにファイルはありません。`},bom:{title:`部品表`,acquired:`{{completed}}/{{total}} 取得済み`,showAll:`すべて表示`,hideDone:`完了を非表示`,addPart:`パーツを追加`,noAddPermission:`パーツを追加する権限がありません`,partNamePlaceholder:`パーツ名`,partName:`パーツ名`,qty:`数量`,price:`価格 ({{currency}})`,sourcingUrlPlaceholder:`URL(任意)`,remarksPlaceholder:`備考`,deletePart:`パーツを削除`,deleteConfirm:`「{{name}}」を削除しますか?`,noUpdatePermission:`パーツを更新する権限がありません`,noEditPermission:`このプロジェクトを編集する権限がありません`,noDeletePermission:`プロジェクトを削除する権限がありません`,totalCost:`合計コスト`,empty:`<空>`},timeline:{title:`アクティビティタイムライン`,empty:`<空>`},template:{saveAsTemplate:`テンプレートとして保存`,noCreatePermission:`プロジェクトを作成する権限がありません`},queue:{title:`印刷キュー`,viewAll:`すべて表示`,printing:`印刷中 {{count}} 件`,queued:`キュー内 {{count}} 件`},prints:{title:`印刷 ({{count}})`},toast:{projectUpdated:`プロジェクトを更新しました`,partAdded:`パーツを追加しました`,partRemoved:`パーツを削除しました`,exportFailed:`エクスポートに失敗しました`,projectExported:`プロジェクトがエクスポートされました`,templateCreated:`プロジェクトからテンプレートを作成しました`}},system:{title:`システム情報`,version:`バージョン`,uptime:`稼働時間`,cpuUsage:`CPU使用率`,memoryUsage:`メモリ使用量`,diskUsage:`ディスク使用量`,networkInfo:`ネットワーク情報`,logs:`ログ`,debugMode:`デバッグモード`,enableDebug:`デバッグログを有効化`,disableDebug:`デバッグログを無効化`,downloadLogs:`ログをダウンロード`,clearLogs:`通知ログを削除`,dockerInfo:`Docker情報`,containerName:`コンテナ名`,imageName:`イメージ名`,platform:`プラットフォーム`,architecture:`アーキテクチャ`},sponsors:{sectionTitle:`独立・コミュニティ運営`,tagline:`Bambuddyは無料で、これからも無料です。支援してくださる方々のおかげで、VCもクラウドロックインもありません。`,viewSupporters:`サポーター一覧`,toastPrints:`Bambuddyで{{count}}件の印刷を完了しました。Bambuddyは支援者のおかげで無料で提供されています。`,toastCost:`Bambuddyで{{total}}分のフィラメントを記録しました。プロジェクトを支えてくれている方々をご覧ください。`,toastArchives:`{{count}}件の印刷をBambuddyでアーカイブしました。独立を支えてくれている方々をご覧ください。`,toastAnniversary:`Bambuddyとの1周年です!プロジェクトを支えてくれている方々をご覧ください。`,toastVersionUpdate:`v{{version}}にアップデートされました。Bambuddyは支援者のおかげで無料で提供されています。`,toastBusiness:`{{count}}台のプリンターでBambuddyを運用中ですね。チーム向けのサポートプランがあります(優先対応、請求書発行、開発者への直接窓口)。`,businessCta:`ビジネス向けBambuddy`,businessTitle:`ビジネス向けBambuddy`,businessTagline:`{{count}}台のプリンターを運用中です。チームやプリントファーム向けに、優先サポート、商用ライセンス、請求書発行をご用意しています。`},library:{title:`フィラメントライブラリ`,addFilament:`フィラメントを追加`,editFilament:`フィラメントを編集`,deleteFilament:`フィラメントを削除`,vendor:`メーカー`,material:`素材`,color:`色`,kFactor:`K値`,temperature:`温度`,noFilaments:`ライブラリにフィラメントがありません`,deleteConfirm:`このフィラメントを削除しますか?`,importFromPrinter:`プリンターからインポート`,exportToFile:`ファイルにエクスポート`,runWithPipeline:{actionLabel:`パイプラインで実行`,noPermission:`パイプラインを実行する権限がありません`,modalTitle:`パイプラインで実行`,confirmTitle:`実行を確認`,confirmIntro:`プリフライトでこの実行に関する問題が見つかりました`,sourceHint:`ソース`,pipelineHint:`パイプライン`,targetHint:`対象`,pipelineListAria:`利用可能なパイプライン`,runAnyway:`とにかく実行`,loading:`読み込み中…`,empty:`保存されたパイプラインはまだありません。スライスダイアログを開き「パイプラインとして保存」をクリックして作成してください。`,noTarget:`対象プリンターが未設定`,noTargetMessage:`このパイプラインには対象プリンターが設定されていません。設定で開いて選択してください。`,copies:`コピー数`,copiesHint:`最大 {{n}}`,classTarget:`任意の {{model}}`,toast:{started:`パイプラインの実行を開始しました`,failed:`実行を開始できませんでした`},issue:{printerNotSet:`このパイプラインに対象プリンターが設定されていません。`,printerNotFound:`対象プリンターが存在しません。`,printerDisabled:`対象プリンターは無効です。`,printerOffline:`対象プリンターはオフラインです。`,filamentType:`フィラメントスロット {{slot}}: 期待 {{expected}}、AMS は {{actual}}`,filamentColor:`フィラメントスロット {{slot}}: 色が異なります(期待 {{expected}}、AMS は {{actual}})`,amsSlotMissing:`AMS スロット {{slot}} はこのプリンターで利用できません`,filamentUnverified:`フィラメントスロット {{slot}} はクラウド/標準プリセットからのため、静的に検証できませんでした。`,noClassMatches:`このインストール内に、パイプラインの対象モデルクラス({{expected}})と一致するプリンターがありません。`,classNotSet:`パイプラインの対象がプリンタークラスに設定されていますが、モデルが選択されていません。`}}},slice:{title:`モデルをスライス`,action:`スライス`,actionAll:`{{count}} プレートすべてをスライス`,actionAllTitle:`すべてのプレートを 1 つのマルチプレート出力としてスライスします(アーカイブは 1 件)。フィラメントの選択はプロジェクトで定義されたすべてのスロットを対象とします。`,allPlatesToggle:`{{count}} プレートすべてをスライス`,slicing:`スライス中…`,printer:`プリンタープロファイル`,process:`プロセスプロファイル`,filament:`フィラメントプロファイル`,filamentSlot:`フィラメント {{index}}({{type}})`,selectPreset:`— プリセットを選択 —`,loadingPresets:`プリセットを読み込み中…`,analyzingPlateFilaments:`プレートのフィラメントを分析中…`,analyzingPlateFilamentsHint:`このプレートが使用するAMSスロットを検出するためにプレビュースライスを実行中。キャッシュ後は再オープンが即座になります。`,previewToast:`{{name}}を分析中 – {{elapsed}}`,previewWithProgress:`{{name}}を分析中 – {{stage}} ({{percent}}%) – {{elapsed}}`,notUsedByPlate:`— このプレートでは使用しない`,noPresetsForSlot:`プリセットなし`,otherPrinters:`他のプリンター`,presetsLoadFailed:`プリセットの読み込みに失敗。先に設定 → プロファイルからインポートしてください。`,refreshPresets:`再読み込み`,refreshPresetsTitle:`プリセットを再取得 — クラウドとバンドルの最新リストを取得します(Bambu Studio または Bambu Handy でプリセットを削除した後にお使いください)`,allPresetsRequired:`すべてのプリセットを選択する必要があります`,useEmbedded:`ファイルに埋め込まれた設定を使用`,useEmbeddedHint:`上のプロファイルではなく、設計者が設定したとおり(ウォール、インフィル、フィラメント)にスライスします。お使いのプリンターがファイルと一致するため利用できます。`,designSettings:`設計者の設定を保持`,designSettingsHint:`このファイルは標準プロファイルから {{count}} 個の印刷設定を変更しています。`,designSettingsSelected:`{{total}} 個中 {{selected}} 個を選択`,designSettingsPrinterCoupled:`プリンター固有`,designSettingsPrinterCoupledHint:`このファイルが対象とするプリンター向けに調整された値です。お使いのプリンターでは不適切または範囲外になる場合があります。`,enqueuing:`スライスジョブを送信中…`,queued:`待機中…`,failed:`スライスに失敗。サイドカーのログを確認してください。`,startedToast:`バックグラウンドで{{name}}をスライス中…`,queuedToast:`待機中: {{name}} – {{elapsed}}`,runningToast:`{{name}}をスライス中 – {{elapsed}}`,runningWithProgress:`{{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,runningWithProgressMultiPlate:`プレート {{plateIndex}} / {{plateCount}} • {{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,completedToast:`{{name}}をスライス済み`,failedTitle:`スライスに失敗しました`,failedToast:`{{name}}のスライスに失敗: {{detail}}`,tier:{local:`インポート済み`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`標準`},cloud:{notAuthenticated:`Bambu Cloudにサインイン(設定 → プロファイル → Bambu Cloud)してクラウドプリセットを表示。`,expired:`Bambu Cloudセッションの有効期限切れ – クラウドプリセットを更新するには再ログインしてください。`,unreachable:`Bambu Cloudに接続できません。ローカルと標準のプリセットは引き続き使用できます。`},orcaCloud:{notAuthenticated:`Orcaプリセットを表示するには、Orca Cloudにサインインしてください(プロファイル → Orca Cloud)。`,expired:`Orca Cloudセッションが期限切れです — Orcaプリセットを更新するには再度サインインしてください。`,unreachable:`Orca Cloudは現在到達できません。他のプリセットは引き続き動作します。`},bedType:{label:`ビルドプレート`,auto:`自動(プロセスプリセットを使用)`,coolPlate:`クールプレート`,coolPlateSuperTack:`Cool Plate SuperTack`,engineering:`Engineering Plate`,highTemp:`High Temp Plate`,texturedPEI:`Textured PEI Plate`,smoothPEI:`Smooth PEI Plate`},pipelines:{label:`パイプライン`,applyAria:`パイプラインを適用`,applyPrompt:`パイプラインを適用…`,empty:`保存されたパイプラインがありません`,saveButton:`パイプラインとして保存`,saveTitle:`現在の4つのスロットの選択を再利用可能なパイプラインとして保存`,namePlaceholder:`パイプライン名`,nameAria:`新しいパイプライン名`,toast:{applied:`「{{name}}」を適用しました`,saved:`パイプラインを保存しました`,saveFailed:`保存に失敗しました`}}},spoolman:{title:`Spoolman連携`,enabled:`Spoolman有効`,url:`Spoolman URL`,connected:`接続中`,disconnected:`未接続`,testConnection:`接続テスト`,sync:`同期`,syncing:`同期中...`,lastSync:`最終同期`,linkToSpoolman:`Spoolmanに連携`,openInSpoolman:`Spoolmanで開く`,unlinkSpool:`スプールのリンクを解除`,unlinkConfirmTitle:`スプールの割り当てを解除しますか?`,unlinkConfirmMessage:`このスロットからスプールが削除されます。スプール自体のデータは変更されません。`,selectSpool:`スプールを選択`,noUnlinkedSpools:`割り当てられていないスプールがありません`,linkSuccess:`スプールが正常に割り当てられました`,linkFailed:`スプールの割り当てに失敗しました`,unlinkSuccess:`スプールの割り当てが正常に解除されました`,unlinkFailed:`スプールの割り当て解除に失敗しました`,linkedSpool:`割り当て済みスプール`,spoolId:`スプールID`,fillSourceLabel:`(Spoolman)`,weight:`重量`,remaining:`残り`,disableWeightSync:`AMS推定重量同期を無効化`,disableWeightSyncDesc:`AMS推定値から残量を更新しません。AMSの割合ベースの推定よりもSpoolmanの使用量追跡を優先する場合に使用してください。新しいスプールは引き続きAMS推定値を初期重量として使用します。`,reportPartialUsage:`失敗した印刷の部分使用量を報告`,reportPartialUsageDesc:`印刷が失敗またはキャンセルされた場合、レイヤー進捗に基づいてその時点までの推定フィラメント使用量を報告します。`},locations:{title:`保管場所`,subtitle:`棚・引き出しなど、スプールの物理的な保管場所を管理`,add:`場所を追加`,addShort:`追加`,edit:`場所を編集`,name:`名前`,spools:`スプール`,empty:`保管場所がありません。最初の棚または引き出しを作成してください。`,manage:`保管場所`,createPlaceholder:`例: 棚A、引き出し1`,nameRequired:`場所名が必要です`,created:`場所を作成しました`,updated:`場所を更新しました`,deleted:`場所を削除しました`,saveFailed:`場所の保存に失敗しました`,deleteFailed:`場所の削除に失敗しました`,deleteBlocked:`削除前にこの場所のスプールをすべて移動してください`,confirmDelete:`「{{name}}」を削除しますか?`,confirmDeleteMessage:`この場所はカタログから削除されます。先にスプールを移動してください。`},inventory:{title:`スプール在庫管理`,subtitle:`スプールを管理`,addToInventory:`在庫に追加`,addToInventoryPending:`追加中...`,addToInventorySuccess:`スプールを在庫に追加しました`,addToInventoryFailed:`スプールの在庫追加に失敗しました`,unknownSpoolTitle:`新しいフィラメントを検出`,unknownSpoolMessage:`{{location}} で不明なRFIDタグのスプールが検出されました。今すぐ在庫に追加しますか?`,unknownSpoolSlot:`スロット`,bulk:{selectAllVisible:`表示中をすべて選択`,selectRow:`行を選択`,selectGroup:`グループを選択`,selectionCount:`{{count}} 件選択中`,edit:`編集`,printLabels:`ラベルを印刷`,resetUsage:`使用量をリセット`,restore:`復元`,archive:`アーカイブ`,delete:`削除`,clearSelection:`選択を解除`,editTitle:`スプールを一括編集`,editSubtitle:`選択中の {{count}} 件に適用されます。チェックを入れた項目のみ更新されます。`,editHint:`項目に入力すると更新対象としてマークされます。チェック済みの行のみ送信されます。空のままだとスプールは変更されません(項目を空にする操作はスプール個別の編集で行ってください)。`,useCustom:`"{{value}}" を使用`,toggleField:`この項目の更新を切り替え`,changeCount:`{{count}} 件の項目が更新されます。`,applyPending:`適用中...`,applyButton:`{{count}} 件に適用`,deleteTitle:`選択したスプールを削除`,archiveTitle:`選択したスプールをアーカイブ`,restoreTitle:`選択したスプールを復元`,resetUsageTitle:`選択したスプールの使用量をリセット`,deleteMessage:`{{count}} 件のスプールを完全に削除しますか?元に戻せません。`,archiveMessage:`{{count}} 件のスプールをアーカイブしますか?後で復元できます。`,restoreMessage:`{{count}} 件のアーカイブ済みスプールを復元しますか?`,resetUsageMessage:`{{count}} 件のスプールの「累計使用量」カウンターをリセットしますか?残量は保持されます。`,updateSuccess:`{{count}} 件のスプールを更新しました`,updateFailed:`一括更新に失敗しました`,updatePartial:`{{ok}} 件更新、{{failed}} 件失敗`,updateAllFailed:`{{count}} 件すべての更新に失敗しました — 再試行のため選択は維持されます`,deleteSuccess:`{{count}} 件のスプールを削除しました`,deleteFailed:`一括削除に失敗しました`,deletePartial:`{{ok}} 件削除、{{failed}} 件失敗`,deleteAllFailed:`{{count}} 件すべての削除に失敗しました — 再試行のため選択は維持されます`,archiveSuccess:`{{count}} 件のスプールをアーカイブしました`,archiveFailed:`一括アーカイブに失敗しました`,archivePartial:`{{ok}} 件アーカイブ、{{failed}} 件失敗`,archiveAllFailed:`{{count}} 件すべてのアーカイブに失敗しました — 再試行のため選択は維持されます`,restoreSuccess:`{{count}} 件のスプールを復元しました`,restoreFailed:`一括復元に失敗しました`,restorePartial:`{{ok}} 件復元、{{failed}} 件失敗`,restoreAllFailed:`{{count}} 件すべての復元に失敗しました — 再試行のため選択は維持されます`,invalidHex:`16進数 6 文字(RRGGBB)または 8 文字(RRGGBBAA)を入力してください。それ以外の場合この項目は適用されません。`},spoolmanMixedContentTitle:`Spoolman を HTTPS で読み込めません — ブラウザが混在コンテンツをブロックしています`,spoolmanMixedContentBody:`Bambuddy はリバースプロキシ経由で HTTPS 配信されていますが、Spoolman の URL は HTTP のままです。ブラウザはセキュリティ上の理由で混在コンテンツをブロックするため、埋め込みの Spoolman UI を表示できません。Spoolman も HTTPS でアクセスできる必要があります。`,spoolmanMixedContentFixReverseProxy:`Spoolman を Bambuddy と同じリバースプロキシ(Traefik / Nginx / Caddy)の後ろに HTTPS で配置し、設定で Spoolman URL を新しい HTTPS アドレスに更新してください。`,spoolmanMixedContentFixOpenNewTab:`回避策として Spoolman を新しいタブで HTTP として開くことができます — 混在コンテンツのルールは埋め込みフレームのみに適用され、独立したタブは問題なく動作します。`,spoolmanOpenInNewTab:`Spoolman を新しいタブで開く`,labels:{title:`スプールラベルを印刷`,selectedCount:`{{count}}件選択中`,pickSpools:`ラベルを印刷するスプールを選択:`,monochrome:`モノクロ(白黒プリンター)`,monochromeHint:`カラースウォッチを削除してテキストを広げます`,searchPlaceholder:`名前、ブランド、#IDで検索`,filterByMaterial:`素材:`,allMaterials:`すべて`,selectVisible:`表示中をすべて選択 ({{count}})`,deselectVisible:`表示中を選択解除`,clearAll:`すべてクリア`,noSpoolsToShow:`表示するスプールはありません。フィルターを調整して再試行してください。`,noMatches:`現在の検索またはフィルターに一致するスプールはありません。`,printOne:`このスプールのラベルを印刷`,printLabels:`ラベルを印刷…`,bulkTitle:`現在表示中の{{count}}件からラベルを印刷するスプールを選択`,noSpoolsTitle:`ラベル付けするスプールなし`,error:`ラベルを生成できませんでした: {{msg}}`,sortBy:{label:`並べ替え:`,id:`ID順`,color:`色順`},templates:{amsHolderSmall:{label:`AMS ホルダー — 小 (74 × 33 mm)`,hint:`1ページにつき1枚;MakerWorld モデル 752566 (AMS フィラメントラベルホルダー) の印刷可能なラベルに対応します。`},amsHolderLarge:{label:`AMS ホルダー — 大 (75 × 55 mm)`,hint:`1ページにつき1枚;AMS フィラメントラベルホルダーのカード紙挿入バージョンに対応します。色見本、ブランド、素材、ID、QR コードを表示できる広さです。`},box40x30:{label:`ボックスラベル (40 × 30 mm)`,hint:`1ページに1枚。DK/Brother の一般的なロールサイズで、フィラメント袋や保管箱のラベルに適しています。`},box:{label:`Box label (62 × 29 mm)`,hint:`1ページに1ラベル、Brother PT/QLおよびDymoの小さなラベル用サイズ。`},averyL7160:{label:`Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)`,hint:`EUシート規格、A4ページに21枚のラベル。`},avery5160:{label:`Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)`,hint:`米国シート規格、Letterページに30枚のラベル。`}}},csv:{importButton:`CSVインポート`,exportButton:`CSVエクスポート`,modalTitle:`CSVからスプールをインポート`,selectFile:`CSVファイルを選択するか、ここにドラッグ`,dragHint:`ヘッダー: material(必須)、brand、subtype、color_name、rgba、…`,parsing:`ファイルを読み込み中…`,previewError:`CSVファイルを読み込めませんでした`,validCount:`有効{{count}}件`,errorCount:`エラー{{count}}件`,skippedCount:`スキップ{{count}}件`,colRow:`行`,colStatus:`ステータス`,colColor:`色`,colorResolved:`カタログから色を補完`,colorCrossMaterial:`別の素材から色を取得しました — カタログに完全一致なし`,duplicateExisting:`この素材・ブランド・色のスプールは既に存在します — それでも新しいスプールとしてインポートされます`,spoolmanHint:`Spoolmanモードでは、Spoolman内蔵のCSVインポート/エクスポートを使用してください。`,importValidRows:`有効な{{count}}行をインポート`,noValidRows:`有効な行がありません`,importing:`インポート中…`,importSuccess:`{{count}}個のスプールをインポートしました`,importError:`インポートに失敗しました`,exportError:`エクスポートに失敗しました`},addSpool:`スプールを追加`,editSpool:`スプールを編集`,copySpool:`スプールをコピー`,material:`素材`,selectMaterial:`素材を選択...`,subtype:`サブタイプ`,brand:`ブランド`,searchBrand:`ブランドを検索...`,useCustomBrand:`「{{brand}}」を使用`,useCustomMaterial:`カスタム素材を使用: {{material}}`,suggestedOptions:`おすすめ`,allOptions:`すべて`,colorName:`色名`,colorNamePlaceholder:`ジェイドホワイト、ファイアレッド...`,color:`色`,hexColor:`HEXカラー`,pickColor:`カスタムカラーを選択`,labelWeight:`表示重量`,coreWeight:`空スプール重量`,searchSpoolWeight:`スプール重量を検索...`,weightUsed:`使用量`,currentWeight:`残量`,measuredWeight:`計測重量`,spoolName:`スプール`,costPerKg:`kgあたりのコスト`,storageLocation:`保管場所`,storageLocationPlaceholder:`例:棚A、引き出し1`,openInInventory:`インベントリで開く`,measuredWeightError:`計測重量は{{min}}gから{{max}}gの間で入力してください。`,slicerFilament:`スライサーフィラメント`,slicerFilamentName:`スライサープリセット名`,slicerPreset:`スライサープリセット`,searchPresets:`フィラメントプリセットを検索...`,selectedPreset:`選択済み`,noPresetsFound:`プリセットが見つかりません`,tempOverrides:`温度オーバーライド`,note:`メモ`,notePlaceholder:`このスプールに関する追加メモ...`,category:`カテゴリ`,categoryPlaceholder:`例:本番、試作、クライアントA`,categoryNone:`カテゴリなし`,storageLocationNone:`保管場所未設定`,lowStockThresholdOverride:`在庫低下のしきい値(このスプール)`,lowStockThresholdOverrideHelp:`空欄の場合、グローバル設定({{global}}%)を使用します。`,clearRfid:`RFIDタグをクリア`,rfidCleared:`RFIDタグをクリアしました`,archive:`アーカイブ`,restore:`復元`,noSpools:`スプールがありません。最初のスプールを追加してください。`,noAvailableSpools:`利用可能なスプールがありません。インベントリにスプールを追加するか、別のスロットからスプールの割り当てを解除してください。`,kProfiles:`Kプロファイル`,addKProfile:`Kプロファイルを追加`,assignSpool:`スプールを割り当て`,unassignSpool:`割り当て解除`,assignSuccess:`スプールを割り当て、AMSスロットを設定しました`,assignPendingInsert:`割り当てました。スプールを挿入したときにスロットが設定されます。`,assignFailed:`スプールの割り当てに失敗しました`,selectSpool:`このスロットに割り当てるスプールを選択`,assigned:`割り当て済み`,assigning:`割り当て中...`,searchSpools:`スプールを検索...`,showAllSpools:`すべてのスプールを表示`,spoolmanSpools:`Spoolman スプール`,allMaterials:`すべての素材`,filterByBrand:`ブランドで絞り込み...`,showArchived:`アーカイブ済みを表示`,quickAdd:`クイック追加(在庫)`,quantity:`数量`,stock:`在庫`,configured:`設定済み`,spoolsCreated:`{{count}}本のスプールを作成しました`,spoolsPartiallyCreated:`{{total}}本中{{created}}本のスプールを作成しました(一部失敗)`,spoolCreated:`スプールを作成しました`,spoolUpdated:`スプールを更新しました`,spoolDeleted:`スプールを削除しました`,deepLinkSpoolNotFound:`スプールが見つかりません`,deepLinkFetchFailed:`スプールを読み込めませんでした — もう一度お試しください`,spoolArchived:`スプールをアーカイブしました`,spoolRestored:`スプールを復元しました`,kProfileSaveFailed:`Kプロファイル設定を保存できませんでした`,syncWeightSpoolNotFound:`スプールが見つかりません — 削除された可能性があります`,syncWeightSpoolmanUnreachable:`Spoolmanに接続できません — 後でもう一度お試しください`,syncWeightFailed:`重量の同期に失敗しました`,spoolmanUnreachable:`Spoolmanに接続できません — 後でもう一度お試しください`,deleteSpoolNotFound:`スプールが見つかりません — すでに削除された可能性があります`,deleteFailed:`スプールを削除できませんでした`,archiveSpoolNotFound:`スプールが見つかりません — すでに削除された可能性があります`,archiveFailed:`スプールをアーカイブできませんでした`,restoreSpoolNotFound:`スプールが見つかりません — すでに削除された可能性があります`,restoreFailed:`スプールを復元できませんでした`,saveFailed:`変更を保存できませんでした`,tagClearFailed:`タグを削除できませんでした`,deleteConfirm:`このスプールを削除しますか?この操作は元に戻せません。`,archiveConfirm:`このスプールをアーカイブしますか?`,advancedSettings:`詳細設定`,filamentInfoTab:`フィラメント情報`,paProfileTab:`PAプロファイル`,filamentInfo:`フィラメント`,additional:`追加情報`,loadingPresets:`クラウドプリセットを読み込み中...`,cloudConnected:`クラウド接続済み`,cloudNotConnected:`クラウド未接続(デフォルト使用)`,recentColors:`最近`,searchColors:`色を検索...`,searchResults:`検索結果`,allColors:`すべての色`,commonColors:`一般的な色`,showLess:`少なく表示`,showAll:`すべて表示`,noColorsFound:`一致する色がありません`,noResults:`結果なし`,extraColorsLabel:`追加の色`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`2〜8個の16進数ストップをカンマで区切って貼り付けます。グラデーションとして表示されます。`,extraColorsInvalid:`無効な16進数を無視: {{tokens}}`,colorEffectLabel:`エフェクト`,colorEffect:{none:`なし`,sparkle:`スパークル`,wood:`ウッド`,marble:`マーブル`,glow:`グロー`,matte:`マット`,silk:`シルク`,galaxy:`ギャラクシー`,rainbow:`レインボー`,metal:`メタル`,translucent:`半透明`,gradient:`グラデーション`,dualColor:`デュアルカラー`,triColor:`トリカラー`,multicolor:`マルチカラー`},selectMaterialFirst:`フィラメント情報タブで素材を選択してください。`,noPrintersConfigured:`プリンターが設定されていません。プリンターを追加してください。`,matchingFilter:`フィルター`,anyBrand:`すべてのブランド`,anyVariant:`すべてのバリアント`,autoSelect:`自動選択`,matches:`件一致`,match:`件一致`,noMatches:`一致なし`,connected:`接続済み`,offline:`オフライン`,printerOffline:`プリンターがオフラインです。接続してキャリブレーションプロファイルを表示してください。`,noKProfilesMatch:`選択したフィラメントに一致するKプロファイルがありません。`,leftNozzle:`左ノズル`,rightNozzle:`右ノズル`,profilesSelected:`キャリブレーションプロファイル選択済み`,totalInventory:`在庫合計`,totalConsumed:`総消費量`,byMaterial:`素材別`,inPrinter:`プリンター内`,lowStock:`残量少`,sinceTracking:`追跡開始以降`,resetConsumedCounter:`カウンタをリセット`,resetConsumedCounterTooltip:`このスプールの消費量カウンタを0にする。残量は変更されません。`,resetConsumedCounterConfirm:`このスプールの消費量カウンタを0にリセットしますか?以降の印刷は再びゼロからカウントされます。スプール自体、残量計算、設定は変更されません。`,resetAllConsumedCounters:`すべてのカウンタをリセット`,resetAllConsumedCountersTooltip:`すべてのスプールの消費量カウンタを0にする。残量は変更されません。`,resetAllConsumedCountersConfirm:`{{count}}件すべてのスプール(アーカイブ済みを含む)の消費量カウンタを0にリセットしますか?「累計消費量」の値がクリアされ、以降の印刷はゼロからカウントされます。スプール自体と残量は変更されません。`,consumedCounterReset:`カウンタをリセットしました`,allConsumedCountersReset:`{{count}}件のスプールのカウンタをリセットしました`,resetConsumedCounterFailed:`カウンタのリセットに失敗しました`,loadedInAms:`AMS/Extに装填中`,remaining:`残り`,weightCheck:`重量チェック`,lastWeighed:`最終計量`,neverWeighed:`未計量`,search:`スプールを検索...`,showing:`表示`,to:`〜`,of:`/`,show:`表示`,spools:`スプール`,spool:`スプール`,page:`ページ`,noSpoolsMatch:`結果なし`,noSpoolsMatchDesc:`検索やフィルターを調整してみてください。`,active:`アクティブ`,archived:`アーカイブ済み`,all:`すべて`,used:`使用済み`,new:`新規`,clearFilters:`フィルターをクリア`,table:`テーブル`,cards:`カード`,net:`正味`,groupSimilar:`グループ化`,groupedSpools:`{{count}}本の同一スプール`,groupedRows:`行`,columns:`列`,configureColumns:`列の設定`,configureColumnsDesc:`ドラッグして並べ替えるか、矢印を使用してください。目のアイコンで表示/非表示を切り替えます。`,visible:`表示中`,reset:`リセット`,cancel:`キャンセル`,applyChanges:`変更を適用`,moveUp:`上へ移動`,moveDown:`下へ移動`,hideColumn:`列を非表示`,showColumn:`列を表示`,linkToSpool:`スプールにリンク`,tagLinked:`タグがスプールにリンクされました`,tagLinkFailed:`タグのリンクに失敗しました`,tagAlreadyLinked:`タグは既に別のスプールにリンクされています`,unknownTag:`不明なRFIDタグが検出されました`,usageHistory:`使用履歴`,noUsageHistory:`まだ使用記録がありません`,printName:`プリント名`,weightConsumed:`消費重量`,clearHistory:`クリア`,historyCleared:`使用履歴がクリアされました`,fillSourceLabel:`(在庫)`,lowStockThresholdError:`しきい値は0.1から99.9の間でなければなりません`,assignMismatchTitle:`材料の不一致`,assignMismatchMessage:`選択したスプールの材料「{{spoolMaterial}}」は、{{location}} のトレイ材料「{{trayMaterial}}」と一致しません。割り当てますか?`,assignMismatchConfirm:`強制的に割り当て`,assignPartialMismatchMessage:`スプールの材料「{{spoolMaterial}}」は「{{trayMaterial}}」に似ていますが、{{location}} と完全には一致しません。続行しますか?`,assignProfileMismatchMessage:`スプールのプロファイル「{{spoolProfile}}」は {{location}} のトレイプロファイル「{{trayProfile}}」と一致しません。続行しますか?`,assignReconfigureNote:`AMSスロットはスプールのプロファイルで再構成されます。`,spoolmanFilamentCatalog:`Spoolmanフィラメントカタログ`,pickFromSpoolmanCatalog:`Spoolmanカタログから選択…`,spoolmanFilamentSelected:`Spoolmanカタログからフィラメントを選択しました`,spoolmanFilamentUnlinked:`フィラメントカタログのリンクを解除しました`,noSpoolmanFilaments:`Spoolmanカタログにフィラメントが見つかりません`,spoolmanFilamentColorSwatch:`フィラメントの色`,spoolWeightManagedBySpoolman:`空スプールの重量はSpoolmanでフィラメントタイプごとに管理されています`,spoolmanCatalogLoadFailed:`Spoolmanのフィラメントカタログを読み込めませんでした`},timelapse:{title:`タイムラプス`,create:`タイムラプスを作成`,download:`ダウンロード`,delete:`削除`,preview:`プレビュー`,frameRate:`フレームレート`,quality:`品質`,processing:`バックアップファイルを処理中...`,noTimelapses:`利用可能なタイムラプスがありません`},ams:{title:`AMS`,slot:`スロット`,empty:`<空>`,emptySlot:`空のスロット`,slotEmpty:`空`,slotUnconfigured:`?`,emptySlotReset:`スプール未割当`,unknown:`不明`,humidity:`湿度`,temperature:`温度`,filamentType:`フィラメントタイプ`,filamentColor:`色`,remaining:`残り`,history:`AMS履歴`,noHistory:`メンテナンス履歴がありません`,configureSlot:`フィラメントプロファイルとK値でスロットを設定`,externalSpool:`外部スプール`,profile:`プロファイル`,kFactor:`K値`,fill:`充填率`,configure:`設定`,used:`使用済み`,remainingUnit:`残り`},printModal:{selectPrinter:`プリンターを選択`,selectPlate:`プレートを選択`,filamentMapping:`フィラメントマッピング`,plateN:`プレート {{n}}`,plateFilamentsUnreadable:`選択したプレートのフィラメントを読み取れなかったため、割り当てできません。そのプレートの選択を解除すると、残りをキューに追加できます。`,totalCost:`合計コスト:`,slotRemainingShort:` - 残{{grams}}g`,printSettings:`印刷設定`,bedLeveling:`ベッドレベリング`,flowCalibration:`フローキャリブレーション`,vibrationCalibration:`振動キャリブレーション`,layerInspection:`第一層検査`,timelapse:`タイムラプス`,cancel:`キャンセル`,noPrintersAvailable:`利用可能なプリンターがありません`,printerBusy:`プリンターは使用中です`,printerOffline:`プリンターはオフラインです`,sameTypeDifferentColor:`同じ種類、異なる色`,filamentTypeNotLoaded:`フィラメントタイプが未読み込み`,whenToPrint:`印刷タイミング`,asap:`即時`,queue:`キュー`,schedule:`スケジュール`,dateTime:`日時`,invalidDateTime:`有効な日時を入力してください`,openCalendar:`カレンダーを開く`,requireManualStart:`手動開始を要求`,requirePreviousSuccess:`前の印刷が成功した場合のみ開始`,autoOffAfter:`完了後にプリンターの電源を切る`,helpAsap:`印刷はキューの先頭に追加され、対象プリンターがアイドルになるとすぐに開始します。`,helpSchedule:`予定時刻にプリンターがアイドルであれば印刷を開始します。使用中の場合は、利用可能になるまで待機します。`,helpQueue:`印刷はキューの最後に追加されます。`,leftNozzle:`L`,rightNozzle:`R`,leftNozzleTooltip:`左ノズル`,rightNozzleTooltip:`右ノズル`,filamentOverride:`フィラメントオーバーライド`,filamentOverrideHint:`モデルベースの割り当てに使用するフィラメントをオプションで上書きします。スケジューラは元の3MF値ではなく、選択したフィラメントに基づいてマッチングします。`,originalFilament:`オリジナル`,overrideWith:`変更先`,resetToOriginal:`オリジナルに戻す`,insufficientFilamentTitle:`フィラメントが不足しています`,waitingForAmsStatus:`{{printer}} のAMSステータスを待機しています…`,insufficientFilamentMessage:`割り当てられたスプールの一部は、この印刷に必要な量より残量が少ないです:`,insufficientFilamentLine:`{{printer}} - {{slot}}: 必要 {{required}}g、残り {{remaining}}g`,printAnyway:`それでも印刷`,forceColorMatch:`カラーマッチを強制`,staggerPrinterStarts:`プリンター開始を段階的に`,staggerGroupSize:`グループサイズ`,staggerInterval:`間隔(分)`,staggerPreview:`{{printers}}台のプリンター → {{size}}台ずつ{{groups}}グループ、{{interval}}分ごとに開始`,staggerLastGroup:`最終グループ: {{count}}`,staggerTotal:`合計: {{minutes}}分`,staggerToPrinters:`{{count}}台のプリンターに段階的に送信`,gcodeInjection:`自動印刷G-codeを挿入`},backup:{includesEncryptionKey:`ローカルバックアップにはMFA暗号化キーファイル(DATA_DIR/.mfa_encryption_key)が含まれ、バックアップZIPは自己完結型です。ZIPを機密扱いしてください — ファイルを持つ人は誰でも内部のOIDCクライアントシークレットとTOTPシークレットを復号できます。`,title:`バックアップと復元`,createBackup:`バックアップを作成`,restoreBackup:`バックアップの復元`,restoreDescription:`バックアップファイルからすべてのデータを置き換える`,downloadBackup:`バックアップをダウンロード`,uploadBackup:`バックアップをアップロード`,lastBackup:`最終バックアップ`,autoBackup:`自動バックアップ`,backupNow:`今すぐバックアップ`,restoreWarning:`警告: バックアップの復元は現在のすべてのデータを上書きします。`,includeArchives:`アーカイブを含む`,includeSettings:`設定を含む`,includeProfiles:`プロファイルを含む`,backupSuccess:`バックアップを作成しました`,restoreSuccess:`バックアップを復元しました`,backupFailed:`バックアップに失敗しました`,restoreFailed:`復元に失敗しました`,restoreNote:`復元中、仮想プリンターは停止されます`,githubBackup:`GitHubバックアップ`,enabled:`有効`,cloudLoginRequired:`Bambu Cloudログインが必要です。GitHubバックアップを有効にするには、プロファイル → クラウドプロファイルからサインインしてください。`,cloudLoginRequiredShort:`Cloudログインが必要`,githubDescription:`プロファイルをプライベートGitHubリポジトリに自動的に同期し、バックアップとバージョン履歴を保持します。`,repoIsPrivate:`リポジトリはプライベートです — バックアップしても安全です。`,repoIsPublicWarning:`リポジトリが公開(PUBLIC)です。Bambuddyのバックアップには MQTT 認証情報、Home Assistant トークン、Prometheus トークン、Bambu Cloud のメールアドレス、K-プロファイル経由のプリンタアクセスコードが含まれます。プロバイダー側でリポジトリをプライベートに変更するまで保存はブロックされます。`,repoVisibilityUnknown:`リポジトリの公開設定を確認できませんでした。Bambuddy はプライベートと確認できないリポジトリへのバックアップを拒否します。保存はブロックされます。`,repositoryUrl:`リポジトリURL`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`安全でないHTTPを許可`,allowInsecureHttpHint:`TLSなしのプライベートネットワーク上のセルフホストインスタンスに対して有効化`,personalAccessToken:`個人アクセストークン`,tokenSaved:`(保存済み)`,enterNewToken:`新しいトークンを入力して更新`,tokenHint:`Contents読み書き権限を持つきめ細かいトークン`,branch:`ブランチ`,provider:`Gitプロバイダー`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`手動のみ`,hourly:`毎時`,daily:`毎日`,weekly:`毎週`,includeInBackup:`バックアップに含める`,kProfiles:`Kプロファイル`,kProfilesDescription:`接続されたプリンターからの圧力キャリブレーション`,noPrintersConnected:`プリンターが接続されていません`,printersConnected:`{{connected}}/{{total}} 接続済み`,cloudProfiles:`クラウドプロファイル`,cloudProfilesDescription:`Bambu Cloudからのフィラメント、プリンター、プロセスプリセット`,appSettings:`アプリ設定`,appSettingsDescription:`Bambuddy設定(データベース全体)`,spoolInventory:`スプール在庫`,spoolInventoryDescription:`フィラメントスプール、使用履歴、コスト追跡`,printArchives:`印刷アーカイブ`,printArchivesDescription:`印刷履歴メタデータ(gcode/3MFファイルなし)`,lastBackupAt:`最終バックアップ:`,noBackupsYet:`バックアップはまだありません`,next:`次回:`,startingBackup:`バックアップを開始しています...`,test:`テスト`,enableBackup:`バックアップを有効化`,testConnection:`接続テスト`,enterRepoUrl:`リポジトリURLを入力してください`,enterRepoAndToken:`リポジトリURLとアクセストークンを入力してください`,repoRequired:`リポジトリURLは必須です`,tokenRequired:`アクセストークンは必須です`,githubBackupEnabled:`GitHubバックアップが有効になりました`,tokenUpdated:`トークンが更新されました`,settingsSaved:`設定が保存されました`,failedToSave:`保存に失敗しました: {{message}}`,backupCompleteFiles:`バックアップ完了 - {{count}}ファイルが更新されました`,backupSkippedNoChanges:`バックアップをスキップ - 変更なし`,backupFailed2:`バックアップに失敗しました: {{message}}`,clearedLogs:`{{count}}件のログを削除しました`,failedToClearLogs:`ログの削除に失敗しました: {{message}}`,history:`履歴`,clear:`クリア`,date:`日付`,status:`ステータス`,commit:`コミット`,localBackup:`ローカルバックアップ`,localBackupDescription:`データベース、アーカイブ、アップロード、すべてのファイルを含むBambuddyデータの完全なバックアップを作成します。`,downloadBackupLabel:`バックアップをダウンロード`,completeBackupZip:`完全バックアップ: データベース + 全ファイル (ZIP)`,download:`ダウンロード`,preparingBackup:`バックアップを準備しています...`,creatingArchive:`バックアップアーカイブを作成しています...大きなアーカイブの場合、時間がかかることがあります。`,downloadingFile:`バックアップファイルをダウンロードしています...`,backupDownloaded:`バックアップのダウンロードが成功しました`,failedToCreateBackup:`バックアップの作成に失敗しました: {{message}}`,restore:`復元`,restoreReplacesAll:`復元はすべてのデータを置き換えます。`,restoreReplacesAllDetail:`現在のデータベースとファイルは完全に置き換えられます。復元後に再起動が必要です。`,restoreConfirmTitle:`バックアップを復元`,restoreConfirmMessage:`"{{filename}}"から復元してもよろしいですか?現在のデータベースとすべてのファイルが完全に置き換えられます。復元後にアプリケーションの再起動が必要です。`,restoreConfirmButton:`バックアップを復元`,uploadingFile:`バックアップファイルをアップロードしています...`,backupRestoredRestart:`バックアップが復元されました。Bambuddyを再起動してください。`,failedToRestore:`バックアップの復元に失敗しました。ファイル形式を確認してください。`,reloadNow:`今すぐリロード`,creatingBackup:`バックアップを作成中`,restoringBackup:`バックアップを復元中`,preparing:`準備中...`,processing:`処理中...`,doNotClosePage:`このページを閉じたり、移動しないでください。大きなバックアップの場合、この操作には数分かかることがあります。`,restoring:`復元中...`,restoreComplete:`復元完了`,restoreFailed2:`復元失敗`,importSettings:`バックアップファイルから設定をインポート`,pleaseWaitRestoring:`データの復元中です。お待ちください`,selectBackupFile:`クリックしてバックアップファイルを選択 (.jsonまたは.zip)`,duplicateHandling:`重複処理の仕組み:`,matchPrinters:`プリンター`,matchPrintersBy:`シリアル番号で照合`,matchSmartPlugs:`スマートプラグ`,matchSmartPlugsBy:`IPアドレスで照合`,matchNotificationProviders:`通知プロバイダー`,matchNotificationProvidersBy:`名前で照合`,matchFilaments:`フィラメント`,matchFilamentsBy:`名前 + タイプ + ブランドで照合`,matchArchives:`アーカイブ`,matchArchivesBy:`コンテンツハッシュで照合(常にスキップ)`,matchPendingUploads:`保留中のアップロード`,matchPendingUploadsBy:`ファイル名で照合`,matchSettingsTemplates:`設定とテンプレート`,matchSettingsTemplatesBy:`常に上書き`,replaceExisting:`既存のデータを置き換え`,keepExisting:`既存のデータを保持`,overwriteDescription:`既に存在する項目をバックアップデータで上書き`,keepDescription:`まだ存在しない項目のみ復元`,overwriteCaution:`注意:`,overwriteWarning:`上書きすると、現在の設定がバックアップのデータで置き換えられます。プリンターのアクセスコードはセキュリティのため上書きされません。`,cancel:`キャンセル`,processingBackup:`バックアップファイルを処理しています...`,itemsRestored:`復元済み`,itemsSkipped:`スキップ済み`,restored:`復元済み`,skippedAlreadyExist:`スキップ(既に存在)`,filesCategory:`ファイル(3MF、サムネイルなど)`,andMore:`...他{{count}}件`,newApiKeysGenerated:`新しいAPIキーが生成されました`,keysShownOnce:`これらのキーは一度だけ表示されます。今すぐコピーしてください!`,copy:`コピー`,noDataFound:`バックアップファイルに復元するデータが見つかりませんでした。`,close:`閉じる`,scheduledBackup:`スケジュールされたバックアップ`,scheduledBackupDescription:`スケジュールに基づいてバックアップスナップショットを自動作成。出力ディレクトリはNASや外部ストレージにマウント可能。`,frequency:`頻度`,backupTime:`時間`,retention:`保持期間`,retentionDescription:`保持するバックアップ数`,outputPath:`出力パス`,outputPathPlaceholder:`デフォルト: {{path}}`,outputPathDescription:`デフォルトの場所を使用する場合は空白のまま`,runNow:`今すぐ実行`,backupFiles:`バックアップファイル`,noScheduledBackups:`バックアップなし`,deleteBackup:`削除`,deleteBackupConfirm:`このバックアップファイルを削除しますか?`,backupRunning:`バックアップ中...`,scheduledBackupComplete:`バックアップが正常に完了しました`,scheduledBackupFailed:`バックアップに失敗`,nextBackup:`次回バックアップ`,backupSize:`サイズ`,localTimeHint:`現地時刻 ({{tz}})`,defaultPathLabel:`デフォルト:`,pathCheck:{title:`Bambuddy はこのディレクトリに書き込めません`,howToFix:`対処方法:`,sandboxed:`Bambuddy サービスは {{path}} に書き込めません。systemd ユニットが ProtectSystem=strict で動作しているため、インストール・データ・ログの各ディレクトリ以外はすべてサービスから読み取り専用になります。自分のシェルからは書き込める場所であっても同様です。`,read_only:`{{path}} は読み取り専用のファイルシステム上にあります。`,permission_denied:`Bambuddy には {{path}} への書き込み権限がありません。ディレクトリの所有者とパーミッションを確認してください。`,no_space:`{{path}} があるファイルシステムに空き容量がありません。`,not_a_directory:`{{path}} は存在しますが、ディレクトリではありません。`,missing:`{{path}} は存在せず、作成もできませんでした。`,error:`Bambuddy は {{path}} に書き込めません。`,ephemeralTitle:`これらのバックアップはコンテナの再作成で失われます`,container_ephemeral:`{{path}} はホストではなく Bambuddy コンテナ内にあります。そこに書き込まれたバックアップはコンテナを再作成すると失われます。ホスト側のディレクトリをマウントしてください:`},categories:{settings:`設定`,notification_providers:`通知プロバイダー`,notification_templates:`通知テンプレート`,smart_plugs:`スマートプラグ`,printers:`プリンター`,filaments:`フィラメント`,maintenance_types:`メンテナンスタイプ`,archives:`アーカイブ`,projects:`プロジェクト`,pending_uploads:`保留中のアップロード`,external_links:`外部リンク`,api_keys:`APIキー`}},tags:{title:`タグ`,addTag:`タグを追加`,editTag:`タグを編集`,deleteTag:`タグを削除`,tagName:`タグ名`,tagColor:`タグの色`,noTags:`タグがありません`,deleteConfirm:`このタグを削除しますか?`,manageTags:`タグを管理`},uploadModal:{title:`3MFファイルのアップロード`,dragDrop:`.3mfファイルをここにドラッグ&ドロップ`,or:`または`,browseFiles:`ファイルを参照`,extractionInfo:`プリンターモデルは3MFファイルのメタデータから自動的に抽出されます。`,uploaded:`アップロード済み`,failed:`アップロードに失敗しました`,uploading:`アップロード中...`,upload:`アップロード`,uploadFailed:`アップロード失敗`},editArchive:{title:`アーカイブを編集`,name:`名前`,namePlaceholder:`印刷名`,printer:`プリンター`,noPrinter:`プリンターなし`,project:`プロジェクト`,noProject:`プロジェクトなし`,itemsPrinted:`印刷数`,itemsPrintedHelp:`この印刷ジョブで製造したアイテム数`,notes:`メモ`,notesPlaceholder:`この印刷についてメモを追加...`,externalLink:`外部リンク`,externalLinkPlaceholder:`https://...`,externalLinkHelp:`Printables、Thingiverse、その他のソースへのリンク`,tags:`タグ`,tagsPlaceholder:`タグを追加...`,addMoreTags:`タグをさらに追加...`,matchingTags:`"{{query}}" に一致`,existingTags:`既存のタグ`,clickToAdd:`(クリックして追加)`,status:`ステータス`,failureReason:`失敗理由`,selectReason:`理由を選択...`,photos:`印刷結果の写真`,photosHelp:`+ をクリックして印刷結果の写真を追加`,printResult:`印刷結果`,saving:`保存中...`,failureReasons:{adhesionFailure:`定着不良`,spaghettiDetached:`スパゲッティ / 剥離`,layerShift:`レイヤーシフト`,cloggedNozzle:`ノズル詰まり`,filamentRunout:`フィラメント切れ`,warping:`反り`,stringing:`糸引き`,underExtrusion:`押出不足`,powerFailure:`電源障害`,userCancelled:`ユーザーによるキャンセル`,other:`その他`},statuses:{completed:`完了`,failed:`失敗`,aborted:`キャンセル`,printing:`印刷中`}},kProfiles:{title:`Kプロファイル`,noPrintersConfigured:`プリンターが設定されていません`,addPrinterInSettings:`Kプロファイルを管理するには設定でプリンターを追加してください`,noActivePrinters:`アクティブなプリンターがありません`,enablePrinterConnection:`Kプロファイルを表示するにはプリンター接続を有効にしてください`,loadingProfiles:`Kプロファイルを読み込み中...`,printerOffline:`プリンターオフライン`,printerOfflineDesc:`選択したプリンターは接続されていません。電源を入れてKプロファイルを表示してください。`,noMatchingProfiles:`一致するプロファイルなし`,noMatchingProfilesDesc:`検索条件に一致するプロファイルがありません`,noKProfiles:`Kプロファイルなし`,noKProfilesDesc:`{{diameter}}mmノズル用の圧力キャリブレーションプロファイルが見つかりません`,createFirstProfile:`最初のプロファイルを作成`,printer:`プリンター`,nozzle:`ノズル`,refresh:`更新`,addProfile:`K-プロファイルを追加`,export:`エクスポート`,import:`インポート`,select:`選択`,selectAll:`すべて選択`,delete:`削除`,searchPlaceholder:`名前またはフィラメントで検索...`,allExtruders:`すべてのエクストルーダー`,leftOnly:`左のみ`,rightOnly:`右のみ`,allFlow:`すべてのフロー`,hfOnly:`HFのみ`,sOnly:`Sのみ`,sortName:`ソート: 名前`,sortKValue:`ソート: K値`,sortFilament:`ソート: フィラメント`,leftExtruder:`左エクストルーダー`,rightExtruder:`右エクストルーダー`,modal:{addTitle:`Kプロファイルを追加`,editTitle:`Kプロファイルを編集`,profileName:`プロファイル名`,profileNamePlaceholder:`マイPLAプロファイル`,kValue:`K値`,kValuePlaceholder:`0.020`,kValueHelp:`一般的な範囲: PLA 0.01〜0.06、PETG 0.02〜0.10`,filament:`フィラメント`,selectFilament:`フィラメントを選択...`,noFilamentsHelp:`フィラメントが見つかりません。Bambu Studioでまずプロファイルを作成してください。`,flowType:`フロータイプ`,highFlow:`ハイフロー`,standard:`スタンダード`,nozzleSize:`ノズルサイズ`,extruder:`エクストルーダー`,extruders:`エクストルーダー`,left:`左`,right:`右`,notes:`メモ(ローカル保存)`,notesPlaceholder:`このプロファイルのメモを追加...`,notesHelp:`メモはBambuddyに保存され、プリンターには保存されません`,syncing:`プリンターと同期中...`,savingExtruder:`エクストルーダーに保存中 {{current}}/{{total}}...`,pleaseWait:`お待ちください`},deleteConfirm:{title:`プロファイルを削除`,cannotUndo:`元に戻せません`,message:`「{{name}}」をプリンターから削除しますか?`},bulkDelete:{title:`プロファイルを削除`,cannotUndo:`元に戻せません`,message:`選択した{{count}}件のプロファイルをプリンターから削除しますか?`},toast:{profileSaved:`Kプロファイルを保存しました`,profilesSaved:`Kプロファイルを{{count}}台のエクストルーダーに保存しました`,selectAtLeastOneExtruder:`エクストルーダーを1つ以上選択してください`,profileDeleted:`Kプロファイルを削除しました`,profilesDeleted:`{{count}}件のプロファイルを削除しました`,exportedProfiles:`{{count}}件のプロファイルをエクスポートしました`,importedProfiles:`{{total}} 件中 {{count}} 件のプロファイルをインポートしました`,noProfilesToExport:`エクスポートするプロファイルがありません`,invalidFileFormat:`無効なファイル形式`,failedToParseImport:`インポートファイルの解析に失敗しました`,failedToSaveBatch:`Kプロファイルの保存に失敗しました`,noteSaved:`メモを保存しました`,failedToSaveNote:`メモの保存に失敗しました`},permission:{noRead:`プロファイルを更新する権限がありません`,noCreate:`プロファイルを追加する権限がありません`,noUpdate:`Kプロファイルを更新する権限がありません`,noDelete:`Kプロファイルを削除する権限がありません`,noExport:`プロファイルをエクスポートする権限がありません`,noImport:`プロファイルをインポートする権限がありません`}},virtualPrinter:{title:`仮想プリンター`,running:`稼働中`,stopped:`停止`,description:{default:`Bambu StudioとOrcaSlicerに表示される仮想プリンターを有効化。このプリンターに送信されたファイルは印刷せずに直接アーカイブされます。`,proxy:`スライサーのトラフィックを実際のプリンターに転送するプロキシを有効化。任意のネットワーク経由でリモート印刷が可能です。`},enable:{title:`仮想プリンターを有効化`,visibleInSlicer:`スライサーの検出リストに「Bambuddy」として表示`,proxyingTo:`{{name}}にプロキシ中`,notActive:`非アクティブ`},model:{title:`プリンターモデル`,description:`エミュレートするプリンターモデルを選択。`,restartWarning:`モデルを変更すると仮想プリンターが再起動されます`},accessCode:{title:`アクセスコード`,isSet:`アクセスコードが設定されています`,notSet:`アクセスコード未設定 - 有効化に必要です`,placeholder:`8文字のコードを入力`,placeholderChange:`新しいコードを入力して変更`,hint:`正確に8文字必要です。スライサーの認証に使用されます。`,charCount:`({{count}}/8)`,inheritedFromTarget:`ターゲットプリンターから継承`,derivedFromTargetHint:`ターゲットプリンターのアクセスコードを使用します。ブリッジはスライサーの認証情報を実機プリンターに転送するため、コードが一致している必要があります。変更するにはプリンターの設定でアクセスコードを編集してください。`,reveal:`アクセスコードを表示`,hide:`アクセスコードを隠す`},targetPrinter:{title:`ターゲットプリンター`,configured:`プロキシターゲット設定済み`,notConfigured:`ターゲットプリンター未選択 - プロキシモードに必要です`,placeholder:`プリンターを選択...`,hint:`スライサートラフィックの転送先プリンターを選択。プリンターはLANモードである必要があります。`,noPrinters:`プリンターが設定されていません。プロキシモードを使用するにはまずプリンターを追加してください。`},remoteInterface:{title:`ネットワークインターフェース上書き`,configured:`インターフェース上書き有効`,optional:`オプション — 自動検出IPが間違っている場合に使用(複数NIC、Docker、VPNなど)`,placeholder:`自動検出(デフォルト)...`,hint:`SSDPで広告され、TLS証明書に使用されるIPアドレスを上書きします。Bambuddyに複数のネットワークインターフェースがある場合に便利です。`},mode:{title:`モード`,archive:`アーカイブ`,archiveDesc:`ファイルを即座にアーカイブ`,review:`レビュー`,reviewDesc:`アーカイブ前にレビュー`,queue:`キュー`,queueDesc:`アーカイブしてキューに追加`,proxy:`プロキシ`,proxyDesc:`実際のプリンターに転送`},autoDispatch:{title:`自動ディスパッチ`,description:`キューに追加されたときに自動的に印刷を開始します。オフの場合、手動ディスパッチを待ちます。`},queueForceColorMatch:{title:`色の一致を強制`,description:`正確なフィラメントタイプと色がロードされていないプリンターへの送信を拒否します。デフォルトはオフ — これがないと、キューはモデルのみのマッチングを使用し、間違った色がロードされたプリンターを選ぶ可能性があります。`},gcodeInjection:{title:`G-codeインジェクション`,description:`設定でモデルごとに構成したG-codeスニペットを、このVPのジョブに適用します。デフォルトはオフです。`},tailscaleDisabled:{title:`Tailscale統合`,description:`このVPがTailscale経由で公開されていることをマークするには有効にしてください。スライサーに貼り付けるIPがわかるよう、ホストのTailscaleアドレスを表示します。CAインポート手順は変更されません — このトグルは証明書に影響しません。`},setupRequired:{title:`セットアップが必要です`,description:`仮想プリンター機能を使用するには追加のシステム設定が必要です。ポートフォワーディング、ファイアウォールルール、プラットフォーム固有の設定が含まれます。`,readGuide:`有効にする前にセットアップガイドをお読みください`},howItWorks:{title:`仕組み`,step1:`同じLAN上では、仮想プリンターはスライサー(Bambu Studio / OrcaSlicer)に自動的に表示されます。他のネットワークからは、IPアドレスとアクセスコードで手動で追加してください。`,step2:`アーカイブ、レビュー、キューモードでは、スライサーの「送信」ボタンを使用して3MFファイルをBambuddyにアップロードします。スライサーは「印刷成功」と表示しますが、ファイルは保存され、印刷はされません。`,step3:`プロキシモードでは、仮想プリンターはすべてのトラフィックを実際のプリンターに転送します。直接接続されているかのように印刷がすぐに開始されます。`},status:{title:`ステータス詳細`,printerName:`プリンター名`,model:`モデル`,serialNumber:`シリアル番号`,mode:`モード`,pendingFiles:`保留中のファイル`,targetPrinter:`ターゲットプリンター`,ftpPort:`FTPポート`,mqttPort:`MQTTポート`,ftpConnections:`FTP接続数`,mqttConnections:`MQTT接続数`},toast:{updated:`仮想プリンター設定を更新しました`,failedToUpdate:`設定の更新に失敗しました`,copyFailed:`コピーに失敗しました — テキストを手動で選択してください`,accessCodeRequired:`先にアクセスコードを設定してください`,targetPrinterRequired:`先にターゲットプリンターを選択してください`,bindIpRequired:`先にバインドIPを設定してください`,accessCodeEmpty:`アクセスコードは空にできません`,accessCodeLength:`アクセスコードは8文字である必要があります`,targetCodeChangedRebind:`アクセスコードが新しいターゲットプリンターに同期されました。新しいコードを反映するには、スライサーでこのデバイスを再登録してください。`,created:`仮想プリンターを作成しました`,failedToCreate:`仮想プリンターの作成に失敗しました`,deleted:`仮想プリンターを削除しました`,failedToDelete:`仮想プリンターの削除に失敗しました`},list:{title:`仮想プリンター`,add:`追加`,addFirst:`仮想プリンターを追加`,empty:`仮想プリンターが設定されていません。追加して始めましょう。`},bindIp:{title:`バインドインターフェース`,placeholder:`インターフェースを選択...`,hint:`この仮想プリンターがバインドするネットワークインターフェース。プリンターごとに一意である必要があります。`},proxy:{accessCodeHint:`プロキシモードでは、スライサーにターゲットプリンターのアクセスコードを使用してください。接続は実際のプリンターに透過的に転送されます。`},addDialog:{title:`仮想プリンターを追加`,name:`名前`,hint:`アクセスコード、ターゲットプリンター、その他の設定は作成後に設定できます。`,create:`作成`},deleteConfirm:{title:`仮想プリンターを削除`,message:`「{{name}}」を削除してもよろしいですか?このプリンターのすべてのサービスが停止されます。`},archiveNameSource:{title:`アーカイブ名のソース`,description:`仮想プリンター経由でファイルが到着したときに、新しいアーカイブをどのように命名するかを選択します。「メタデータ」は3MFに埋め込まれたスライサータイトル(デフォルト)を使用します。「ファイル名」はBambu StudioがFTPで送信したファイル名を使用します。注: Bambu Studioは、3MFにタイトルフィールドが存在する場合、「プリンターに送信」ダイアログで入力した名前をその値で上書きするため、両方のモードで同じ文字列になることが多くあります。`,metadata:`メタデータ`,filename:`ファイル名`},caCert:{title:`スライサー証明書`,description:`仮想プリンターは Bambuddy CA が署名した TLS 証明書を使用します。この CA 証明書をスライサーの信頼ストアに一度インポートすると接続が受け入れられます — コマンドラインからコピーする必要はありません。`,copy:`コピー`,copied:`コピーしました`,download:`ダウンロード`,fingerprint:`SHA-256`}},modelViewer:{openInSlicer:`スライサーで開く`,tabs:{model:`3Dモデル`,gcode:`G-codeプレビュー`},notAvailable:`利用不可`,notSliced:`未スライス`,plates:`プレート`,allPlates:`全プレート`,plateNumber:`プレート {{number}}`,plateCount:`{{count}} プレート`,plateCount_other:`{{count}} プレート`,objectCount:`{{count}} オブジェクト`,objectCount_other:`{{count}} オブジェクト`,filamentCount:`{{count}} フィラメント`,filamentCount_other:`{{count}} フィラメント`,eta:`予想時間 {{minutes}} 分`,noPreview:`このファイルのプレビューは利用できません`,pagination:{pageOf:`ページ {{current}} / {{total}}`,prev:`前へ`,next:`次へ`},errors:{failedToLoad:`ファイルの読み込みに失敗しました`,noMeshes:`3MFファイルにメッシュが見つかりません`,unsupportedFormat:`サポートされていないファイル形式です`}},maintenanceDescriptions:{lubricateCarbonRods:`カーボンロッドに潤滑剤を塗布してスムーズな動きを確保`,lubricateRails:`リニアレールの潤滑`,cleanNozzle:`ノズル/ホットエンドの清掃`,checkBelts:`ベルト張力の確認`,cleanBuildPlate:`ビルドプレートの清掃`,checkExtruder:`エクストルーダーギアの確認`,checkCooling:`冷却ファンの確認`,generalInspection:`総合点検`,cleanCarbonRods:`カーボンロッドの清掃`,lubricateSteelRods:`スチールロッドに潤滑剤を塗布してスムーズな動きを確保`,cleanSteelRods:`スチールロッドの清掃`,cleanLinearRails:`リニアレールを拭いてほこりや汚れを除去`,checkPtfeTube:`PTFEチューブの確認`,replaceHepaFilter:`HEPAフィルター交換`,replaceCarbonFilter:`カーボンフィルター交換`,lubricateLeftNozzleRail:`左ノズルレールの潤滑`},smartPlugs:{offline:`オフライン`,admin:`管理`,openPlugAdminPage:`プラグ管理ページを開く`,deleteSmartPlug:`スマートプラグを削除`,turnOnSmartPlug:`スマートプラグをオンにする`,turnOffSmartPlug:`スマートプラグをオフにする`,turnOn:`オンにする`,turnOff:`オフにする`,addSmartPlug:{scanningNetwork:`ネットワークをスキャン中...`,chooseEntity:`エンティティを選択...`,connectionFailed:`接続失敗`,searchEntities:`エンティティを検索...`,searchPowerSensors:`電力センサーを検索...`,searchEnergySensors:`エネルギーセンサーを検索...`,placeholders:{plugName:`リビングルームプラグ`,mqttStateOnValue:`ON, true, 1`,mqttSameAsPower:`電力トピックと同じ、または異なる`}},linkedTo:`リンク先:`,monitorOnly:`監視のみ`,alerts:`アラート`,scheduleOn:`オン {{time}}`,scheduleOff:`オフ {{time}}`,on:`オン`,off:`オフ`,power:`電力`,kwhToday:`本日のkWh`,settings:`設定`,automationSettings:`自動化設定`,showInSwitchbar:`スイッチバーに表示`,quickAccessSidebar:`サイドバーからクイックアクセス`,enabled:`有効`,enableAutomation:`このプラグの自動化を有効にする`,autoOn:`自動オン`,autoOnDescription:`印刷開始時にオンにする`,autoOff:`自動オフ`,autoOffDescription:`印刷完了時にオフにする(ワンショット)`,autoOffPersistent:`有効のまま維持`,autoOffPersistentDescription:`ワンショットではなく印刷間で有効のまま維持`,controlsPrinterPower:`プリンターに給電`,controlsPrinterPowerDescription:`このプラグがアクセサリー(フィルターファン、照明)のみに給電する場合はオフにします。オンのままだと、電源を切ったときにプリンターがオフラインとして扱われます。`,autoOffAfterDrying:`乾燥完了後に自動オフ`,autoOffAfterDryingDescription:`AMSの乾燥が完了したらオフにする`,delayAfterDryingMinutes:`乾燥後の遅延(分)`,turnOffDelayMode:`オフ遅延モード`,time:`時間`,temp:`温度`,delayMinutes:`遅延(分)`,tempThreshold:`温度しきい値(°C)`,tempThresholdDescription:`ノズルがこの温度以下に冷却されるとオフになります`,edit:`編集`,deleteConfirm:`"{{name}}"を削除してもよろしいですか?この操作は取り消せません。`,turnOnConfirm:`"{{name}}"をオンにしてもよろしいですか?`,turnOffConfirm:`"{{name}}"をオフにしてもよろしいですか?接続されたデバイスの電源が切れます。`,failedToTurn:`"{{name}}"を{{action}}できませんでした`,unknown:`不明`,addTitle:`スマートプラグを追加`,editTitle:`スマートプラグを編集`,stopScanning:`スキャン停止`,discoverTasmota:`Tasmotaデバイスを検出`,foundDevices:`{{count}}台のデバイスが見つかりました - クリックして選択:`,noDevicesFound:`ネットワーク上にTasmotaデバイスが見つかりません`,haNotConfigured:`Home Assistantが設定されていません。設定場所:`,haSettingsPath:`設定 → ネットワーク → Home Assistant`,selectEntity:`エンティティを選択 *`,ipAddress:`IPアドレス *`,nameLabel:`名前 *`,username:`ユーザー名`,password:`パスワード`,authHint:`Tasmotaデバイスが認証を必要としない場合は空のままにしてください`,linkToPrinter:`プリンターにリンク`,noPrinter:`プリンターなし(手動制御のみ)`,linkingDescription:`リンクすると印刷開始/完了時に自動でオン/オフできます`,powerAlerts:`電力アラート`,alertAbove:`上限アラート(W)`,alertBelow:`下限アラート(W)`,alertDescription:`電力消費がこれらのしきい値を超えた場合に通知します。無効にするには空のままにしてください。`,dailySchedule:`デイリースケジュール`,turnOnAt:`オンにする時刻`,turnOffAt:`オフにする時刻`,scheduleDescription:`毎日これらの時刻にプラグを自動的にオン/オフします。スキップするには空のままにしてください。`,showOnPrinterCard:`プリンターカードに表示`,displayOnPrinterCard:`プリンターカードにボタンを表示`,connectedResult:`接続成功!`,deviceLabel:`デバイス: {{name}} - `,stateLabel:`状態: {{state}}`,test:`テスト`,delete:`削除`,save:`保存`,add:`追加`,cancel:`キャンセル`,failedToStartScan:`スキャンを開始できませんでした`,nameRequired:`名前は必須です`,entityRequired:`Home AssistantプラグにはエンティティIDが必要です`,mqttTopicRequired:`電力、エネルギー、または状態監視用に少なくとも1つのMQTTトピックを設定する必要があります`,loadingEntities:`エンティティを読み込み中...`,loading:`読み込み中...`,failedToLoadEntities:`エンティティの読み込みに失敗しました: {{error}}`,noEntitiesMatching:`"{{search}}"に一致するエンティティが見つかりません`,noEntitiesAvailable:`利用可能なエンティティがありません`,searchingEntities:`すべてのエンティティを検索中({{count}}件見つかりました)`,showingEntities:`switch、light、input_booleanを表示({{count}}件利用可能)`,energyMonitoringOptional:`エネルギー監視(オプション)`,energyMonitoringHint:`電力/エネルギーデータを提供するセンサーを検索して選択します。`,powerSensorW:`電力センサー(W)`,energyTodayKwh:`本日のエネルギー(kWh)`,totalEnergyKwh:`総エネルギー(kWh)`,noMatchingSensors:`一致するセンサーがありません`,none:`なし`,mqttNotConfigured:`MQTTブローカーが設定されていません。ブローカーアドレスを設定してください:`,mqttSettingsPath:`設定 → ネットワーク → MQTT配信`,mqttNotConfiguredSuffix:`(配信を有効にする必要はありません。ブローカーの詳細を入力するだけです)。`,mqttMonitorOnlyDescription:`MQTTプラグはMQTTサブスクリプション経由で電力/エネルギーデータを受信します。オン/オフ制御は利用できません - MQTTブローカーまたはホームオートメーションシステムを使用してください。`,powerMonitoring:`電力監視`,energyMonitoring:`エネルギー監視`,stateMonitoring:`状態監視`,optional:`オプション`,topic:`トピック`,jsonPath:`JSONパス`,multiplier:`乗数`,onValue:`ON値`,mqttPowerHint:`JSONパスはJSONペイロードから値を抽出します(例: "power_l1")。トピックが生の数値を送信する場合は空のままにしてください。
乗数: mW→Wは0.001、kW→Wは1000を使用。`,mqttEnergyHint:`JSONパスはJSONペイロードから値を抽出します。生の値の場合は空のままにしてください。
乗数: Wh→kWhは0.001、MWh→kWhは1000を使用。`,mqttStateHint:`JSONパスはJSONペイロードから値を抽出します。生の値の場合は空のままにしてください。
-ON値: "ON"を意味する正確な文字列。自動検出(ON、true、1)の場合は空のままにしてください。`,restControl:`コントロール`,restOnUrl:`オンURL`,restOffUrl:`オフURL`,restOnBody:`ONリクエスト本文`,restOffBody:`OFFリクエスト本文`,restMethod:`HTTPメソッド`,restHeaders:`Custom Headers (JSON)`,restStatusUrl:`ステータスURL`,restStatusPath:`状態JSONパス`,restStatusOnValue:`ON値`,restPowerUrl:`電力URL`,restPowerPath:`電力JSONパス`,restPowerMultiplier:`電力乗数`,restEnergyUrl:`エネルギーURL`,restEnergyPath:`エネルギーの JSON パス (今日)`,restEnergyTotalPath:`エネルギーの JSON パス (積算値)`,restEnergyTotalMultiplier:`積算値の乗数`,restEnergyTotalPathHint:`例: aenergy.total`,restEnergyTotalHint:`多くのスマートプラグ (Shelly はすべて) は、リセットされない積算カウンターしか返しません。その値は上の欄ではなく、ここに入力してください。今日の使用量として読むと深夜にリセットされず、昨日と合計は空のままになります。Bambuddy は積算値から今日と昨日を算出しますが、そのためには 1〜2 日分の測定値が必要です。Shelly はワット時で返すため、乗数には 0.001 を指定してください。`,restEnergyMultiplier:`エネルギー乗数`,restUrlRequired:`RESTプラグには少なくとも1つのURL(ONまたはOFF)が必要`,restHeadersHint:`例: {"Authorization": "Bearer your-token"}`,restBodyHint:`例:ON, {"state": "on"}`,restStatusHint:`現在の状態を取得するURL`,restPathHint:`例: state または data.power.status`,restPowerUrlHint:`電力データ用の個別URL(空欄の場合はステータスURLを使用)`,restEnergyUrlHint:`エネルギーデータ用の個別URL(空欄の場合はステータスURLを使用)`,restEnergyHint:`各値は個別のURLを使用するか、ステータスURLにフォールバックできます。乗数で単位変換が可能です(例:WhからkWhへの変換は0.001)。`,testConnection:`接続テスト`,connectionSuccess:`接続成功`,noSwitchesInSwitchbar:`スイッチバーにスイッチがありません`,enableSwitchbarHint:`設定 > スマートプラグで「スイッチバーに表示」を有効にしてください`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`メール`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`SMTPメール通知`,telegram:`Telegramボット経由の通知`,discord:`Webhook経由でDiscordチャンネルに送信`,ntfy:`無料のセルフホスト可能なプッシュ通知`,pushover:`シンプルで信頼性の高いプッシュ通知`,callmebot:`CallMeBot経由の無料WhatsApp通知`,webhook:`任意のURLへの汎用HTTP POST`,homeassistant:`Home Assistantダッシュボードの永続通知`,bark:`Bark経由のiOSプッシュ通知(セルフホスト可能)`},lastSuccess:`最終: {{date}}`,error:`エラー`,printer:`プリンター:`,allPrinters:`すべてのプリンター`,sendTestNotification:`テスト通知を送信`,eventSettings:`イベント設定`,enabled:`有効`,sendFromProvider:`このプロバイダーから通知を送信`,printEvents:`印刷イベント`,printerStatus:`プリンターステータス`,amsAlarms:`AMSアラーム`,amsHtAlarms:`AMS-HTアラーム`,printQueue:`印刷キュー`,start:`開始`,plateCheck:`プレートチェック`,complete:`完了`,failed:`失敗`,stopped:`停止`,progress:`進捗`,offline:`オフライン`,lowFilament:`フィラメント残量低下`,maintenance:`メンテナンス`,amsHumidity:`AMS湿度`,amsTemp:`AMS温度`,amsHtHumidity:`AMS-HT湿度`,amsHtTemp:`AMS-HT温度`,bedCooled:`ベッド冷却済み`,firstLayer:`第1層完了`,quiet:`静音`,digest:`ダイジェスト {{time}}`,printStarted:`印刷開始`,plateNotEmpty:`プレートが空でない`,plateNotEmptyDescription:`印刷前にオブジェクトが検出されました`,plateClearRequired:`プレート確認が必要`,plateClearRequiredDescription:`印刷完了、キューはプレート確認を待機中`,plateClear:`プレート確認`,printCompleted:`印刷完了`,bedCooledLabel:`ベッド冷却済み`,bedCooledDescription:`印刷後にベッドがしきい値以下に冷却`,firstLayerCompleteLabel:`第1層完了`,firstLayerCompleteDescription:`第1層完了時にスナップショット付きで通知`,missingSpoolAssignmentLabel:`スプール割り当て不足`,missingSpoolAssignmentDescription:`印刷開始時に必要トレイへスプールが未割り当ての場合に通知`,printFailed:`印刷失敗`,printStopped:`印刷停止`,progressMilestones:`進捗マイルストーン`,progressMilestonesDescription:`25%、50%、75%で通知`,printerOffline:`プリンターオフライン`,printerError:`プリンターエラー`,aiFailureDetection:`AI 故障検出`,aiFailureDetectionDescription:`Obico AI が印刷の不具合の可能性を検出したときに通知`,lowFilamentLabel:`フィラメント残量低下`,maintenanceDue:`メンテナンス期限`,maintenanceDueDescription:`メンテナンスが必要な場合に通知`,amsHumidityHigh:`AMS湿度高`,amsHumidityHighDescription:`通常AMSの湿度がしきい値を超過`,amsTemperatureHigh:`AMS温度高`,amsTemperatureHighDescription:`通常AMSの温度がしきい値を超過`,amsHtHumidityHigh:`AMS-HT湿度高`,amsHtHumidityHighDescription:`AMS-HTの湿度がしきい値を超過`,amsHtTemperatureHigh:`AMS-HT温度高`,amsHtTemperatureHighDescription:`AMS-HTの温度がしきい値を超過`,inventoryAlerts:`在庫アラート`,stockReorderAlert:`発注アラート`,stockReorderAlertDescription:`SKUが発注点に達しました`,stockBreakAlert:`在庫切れアラート`,stockBreakAlertDescription:`入荷前に在庫が枯渇する見込みです`,jobAdded:`ジョブ追加`,jobAddedDescription:`キューにジョブが追加されました`,jobAssigned:`ジョブ割り当て`,jobAssignedDescription:`モデルベースのジョブがプリンターに割り当てられました`,jobStarted:`ジョブ開始`,jobStartedDescription:`キュージョブの印刷が開始されました`,jobWaiting:`ジョブ待機中`,jobWaitingDescription:`フィラメントまたはプリンター待ちのジョブ`,jobSkipped:`ジョブスキップ`,jobSkippedDescription:`ジョブがスキップされました(前のジョブが失敗)`,jobFailed:`ジョブ失敗`,jobFailedDescription:`ジョブの開始に失敗しました`,queueComplete:`キュー完了`,queueCompleteDescription:`すべてのキュージョブが完了しました`,quietHours:`静音時間`,noNotificationsDuring:`この時間帯は通知を送信しません`,editProviderToChangeQuietHours:`プロバイダーを編集して静音時間を変更`,dailyDigest:`デイリーダイジェスト`,batchNotifications:`通知をまとめて1日のサマリーとして送信`,sendAt:`{{time}}に送信`,editProviderToChangeDigestTime:`プロバイダーを編集してダイジェスト時刻を変更`,edit:`編集`,deleteProvider:`通知プロバイダーを削除`,deleteConfirm:`"{{name}}"を削除してもよろしいですか?この操作は取り消せません。`,delete:`削除`,addTitle:`通知プロバイダーを追加`,editTitle:`通知プロバイダーを編集`,nameLabel:`名前 *`,namePlaceholder:`マイ通知`,providerTypeLabel:`プロバイダータイプ *`,configuration:`設定`,testConfiguration:`設定をテスト`,printerFilter:`プリンターフィルター`,onlyFromPrinter:`このプリンターからのイベントのみ通知を送信`,quietHoursDnd:`静音時間(おやすみモード)`,quietStart:`開始`,quietEnd:`終了`,dailyDigestLabel:`デイリーダイジェスト`,sendDigestAt:`ダイジェスト送信時刻`,digestCollected:`イベントが収集され、この時刻にまとめて送信されます`,notificationEvents:`通知イベント`,progressPercent:`(25%、50%、75%)`,bedCooledAfterPrint:`(印刷完了後)`,eventPriority:{sectionTitle:`ntfy 優先度`,helpNtfy:`有効な各イベントに優先度を選択してください。ntfy はこれを使って通知の挙動(音、表示、プッシュ動作)を切り替えます。ここで設定していないレベルは ntfy サーバーのデフォルトを使用します。`,min:`最小`,low:`低`,default:`デフォルト`,high:`高`,urgent:`緊急`},cancel:`キャンセル`,save:`保存`,add:`追加`,nameRequired:`名前は必須です`,fieldRequired:`{{field}}は必須です`,haDataInvalid:`Dataフィールドは有効なJSONオブジェクトである必要があります(例: {"priority": "high", "ttl": 0})`,phoneNumber:`電話番号`,apiKey:`APIキー`,serverUrl:`サーバーURL`,topic:`トピック`,authToken:`認証トークン`,userKey:`ユーザーキー`,appToken:`アプリトークン`,priority:`優先度`,pushoverRetry:`緊急再通知 (秒)`,pushoverExpire:`緊急有効期限 (秒)`,botToken:`ボットトークン`,chatId:`チャットID`,telegramThreadId:`フォーラムトピック ID`,telegramThreadIdHelp:`任意。フォーラムグループ内の特定のトピックに送信します。トピックリンクの末尾の数字です (t.me/c/.../25)。空欄の場合は General トピックに送信されます。`,telegramThreadIdInvalid:`フォーラムトピック ID は数値で入力してください。`,smtpServer:`SMTPサーバー`,smtpPort:`SMTPポート`,security:`セキュリティ`,authentication:`認証`,username:`ユーザー名`,password:`パスワード`,fromEmail:`送信元メール`,toEmail:`宛先メール`,webhookUrl:`WebhookのURL`,payloadFormat:`ペイロード形式`,authorization:`認可`,titleFieldName:`タイトルフィールド名`,messageFieldName:`メッセージフィールド名`,editTemplate:`テンプレートを編集: {{name}}`,titleLabel:`タイトル`,bodyLabel:`本文`,titlePlaceholder:`通知タイトル...`,bodyPlaceholder:`通知本文...`,availableVariables:`利用可能な変数`,clickToInsert:`クリックして本文のカーソル位置に挿入`,livePreview:`ライブプレビュー`,hide:`非表示`,show:`表示`,loadingPreview:`プレビューを読み込み中...`,enterTemplateContent:`テンプレートの内容を入力するとプレビューが表示されます`,titlePreview:`タイトル:`,bodyPreview:`本文:`,resetToDefault:`デフォルトにリセット`,titleRequired:`タイトルは必須です`,bodyRequired:`本文は必須です`,notificationLog:`通知ログ`,showFailedOnly:`失敗のみ`,last24Hours:`過去24時間`,last7Days:`過去7日間`,last30Days:`過去30日間`,last90Days:`過去90日間`,justNow:`たった今`,noFailedNotifications:`失敗した通知はありません`,noNotificationsLogged:`記録された通知はありません`,unknownProvider:`不明なプロバイダー`,logTitle:`タイトル`,logMessage:`メッセージ`,logError:`エラー`,logProvider:`プロバイダー: {{type}}`,logTime:`時刻: {{time}}`,refresh:`更新`,clearOld:`古いものを削除`,statsSummary:`過去{{days}}日間:`,statsNotifications:`通知`,statsSent:`{{count}}件送信`,statsFailed:`{{count}}件失敗`,eventTypes:{print_start:`印刷開始`,print_complete:`印刷完了`,print_failed:`印刷失敗`,print_stopped:`印刷停止`,print_progress:`進捗`,printer_offline:`プリンターオフライン`,printer_error:`プリンターエラー`,filament_low:`フィラメント残量低下`,maintenance_due:`メンテナンス期限`,test:`テスト`},userEmail:{title:`通知`,emailNotifications:`メール通知`,emailNotificationsDesc:`自分の印刷ジョブに対してメール通知を受け取ります。メールは高度な認証で設定されたSMTP設定を使用して送信されます。`,sendingTo:`通知の送信先`,noEmailWarning:`アカウントにメールアドレスが設定されていません。管理者に連絡して追加してもらってください。`,printJobNotifications:`印刷ジョブ通知`,printJobNotificationsDesc:`送信した印刷ジョブのどのイベントでメール通知を送るかを選択します。`,printJobStarts:`印刷ジョブ開始`,printJobStartsDesc:`印刷ジョブが開始されたときに通知を受け取る。`,printJobFinishes:`印刷ジョブ完了`,printJobFinishesDesc:`印刷ジョブが正常に完了したときに通知を受け取る。`,printErrors:`印刷エラー`,printErrorsDesc:`印刷ジョブが失敗またはエラーが発生したときに通知を受け取る。`,printJobStops:`印刷ジョブ停止`,printJobStopsDesc:`印刷ジョブがキャンセルまたは停止されたときに通知を受け取る。`,saveSuccess:`通知設定を保存しました。`,saveError:`通知設定の保存に失敗しました。`}},richTextEditor:{bold:`太字`,italic:`斜体`,underline:`下線`,bulletList:`箇条書きリスト`,numberedList:`番号付きリスト`,alignLeft:`左揃え`,alignCenter:`中央揃え`,alignRight:`右揃え`,addLink:`リンクを追加`,removeLink:`リンクを削除`},externalLinks:{title:`サイドバーリンク`,sidebarLayout:`サイドバー`,sidebarLayoutDescription:`組み込みページの表示/非表示を切り替え、外部リンクを追加し、項目をドラッグしてサイドバーナビゲーションを並べ替えます。`,systemPages:`Bambuddyページ`,externalLinks:`外部リンク`,visibleInSidebar:`サイドバーに表示`,hiddenFromSidebar:`サイドバーで非表示`,requiredInSidebar:`サイドバーで必須`,hidePage:`ページを非表示`,showPage:`ページを表示`,settingsCannotBeHidden:`設定は非表示にできません`,noLinksConfigured:`外部リンクが設定されていません`,deleteLink:`リンクを削除`,removeCustomIcon:`カスタムアイコンを削除`,openInNewTab:`新しいタブで開く`,placeholders:{linkName:`マイリンク`}},keyboardShortcuts:{title:`キーボードショートカット`,navigation:`ナビゲーション`,archivesSection:`アーカイブ`,kProfilesSection:`Kプロファイル`,generalSection:`全般`,shortcuts:{goToPrinters:`プリンターへ移動`,goToArchives:`アーカイブへ移動`,goToQueue:`キューへ移動`,goToStats:`統計へ移動`,goToProfiles:`クラウドプロファイルへ移動`,goToSettings:`設定へ移動`,focusSearch:`検索にフォーカス`,openUploadModal:`アップロードモーダルを開く`,clearSelection:`選択をクリア / 入力をぼかす`,contextMenu:`カードのコンテキストメニュー`,refreshProfiles:`プロファイルを更新`,newProfile:`新しいプロファイル`,exitSelectionMode:`選択モードを終了`,showHelp:`このヘルプを表示`},footer:`Escキーを押すか外側をクリックして閉じます`},notificationLog:{title:`通知ログ`,events:{printStarted:`印刷開始`,printComplete:`印刷完了`,printFailed:`印刷失敗`,printStopped:`印刷停止`,progress:`進捗`,printerOffline:`プリンターオフライン`,printerError:`プリンターエラー`,lowFilament:`フィラメント残量低下`,maintenanceDue:`メンテナンス期限`,test:`テスト`},timeAgo:{justNow:`たった今`,minutesAgo:`{{minutes}}分前`,hoursAgo:`{{hours}}時間前`}},restoreBackup:{title:`バックアップを復元`,restoring:`復元中...`,restoreComplete:`復元完了`,restoreFailed:`復元失敗`,importSettings:`バックアップファイルから設定をインポート`,pleaseWait:`データの復元中です。しばらくお待ちください`,clickToSelect:`クリックしてバックアップファイルを選択(.jsonまたは.zip)`,howDuplicateHandling:`重複の処理方法:`,categories:{printers:`プリンター`,smartPlugs:`スマートプラグ`,notificationProviders:`通知プロバイダー`,filaments:`フィラメント`,archives:`アーカイブ`,pendingUploads:`保留中のアップロード`,settingsTemplates:`設定とテンプレート`},matchingInfo:{printers:`シリアル番号で照合`,smartPlugs:`IPアドレスで照合`,notificationProviders:`名前で照合`,filaments:`名前+タイプ+ブランドで照合`,archives:`コンテンツハッシュで照合`,pendingUploads:`ファイル名で照合`,settingsTemplates:`常に上書き`},replaceExisting:`既存データを置き換え`,keepExisting:`既存データを保持`,replaceDescription:`既に存在するアイテムをバックアップデータで上書き`,keepDescription:`まだ存在しないアイテムのみを復元`,caution:`注意:`,cautionText:`上書きすると現在の構成がバックアップデータに置き換えられます。セキュリティ上の理由から、プリンターのアクセスコードは上書きされません。`,itemsRestored:`復元されたアイテム`,itemsSkipped:`スキップされたアイテム`,restored:`復元済み`,skipped:`スキップ(既に存在)`,filesLabel:`ファイル(3MF、サムネイルなど)`,newApiKeysGenerated:`新しいAPIキーが生成されました`,newApiKeysWarning:`これらのキーは一度だけ表示されます。今すぐコピーしてください!`,processingBackup:`バックアップファイルを処理中...`,noDataFound:`バックアップファイルに復元するデータが見つかりませんでした。`,failedToRestore:`バックアップの復元に失敗しました。ファイル形式を確認してください。`},backupExport:{title:`バックアップをエクスポート`,selectData:`含めるデータを選択`,selectAll:`すべて選択`,selectNone:`なし`,categoryDescriptions:{settings:`言語、テーマ、更新設定`,notifications:`ntfy、Pushover、Discordなど`,templates:`カスタムメッセージテンプレート`,smartPlugs:`Tasmotaプラグ設定`,externalLinks:`サイドバーの外部サービスへのリンク`,printers:`プリンター情報(アクセスコード除外)`,plateDetection:`空プレート参照画像`,filaments:`フィラメントの種類とコスト`,maintenance:`カスタムメンテナンススケジュール`,archives:`すべての印刷データ+ファイル(3MF、サムネイル、写真)`,projects:`プロジェクト、BOMアイテム、添付ファイル`,pendingUploads:`仮想プリンターアップロード待機中`,apiKeys:`Webhook APIキー(インポート時に新しいキーが生成されます)`},requiresPrinters:`プリンターを選択する必要があります`,zipFileWarning:`ZIPファイルが作成されます。`,zipFileDescription:`すべての3MFファイル、サムネイル、タイムラプス、写真が含まれます。これには時間がかかり、大きなファイルになる可能性があります。`,includeAccessCodes:`アクセスコードを含める`,includeAccessCodesDescription:`別のマシンへの転送用`,includeAccessCodesWarning:`アクセスコードはプレーンテキストで含まれます。このバックアップファイルを安全に保管してください!`,categoriesSelected:`{{selectedCount}}カテゴリー選択済み`},pendingUploads:{placeholders:{notes:`この印刷に関するメモを追加...`},discardUpload:`アップロードを破棄`,archiveAllUploads:`すべてのアップロードをアーカイブ`,discardAllUploads:`すべてのアップロードを破棄`,archive:`アーカイブ`,timeAgo:{justNow:`たった今`,minutesAgo:`{{minutes}}分前`,hoursAgo:`{{hours}}時間前`,daysAgo:`{{days}}日前`}},apiBrowser:{placeholders:{requestBody:`JSONリクエストボディ...`,searchEndpoints:`エンドポイントを検索...`}},configureAmsSlot:{title:`AMSスロットの設定`,slotConfigured:`スロットを設定しました!`,configuringSlot:`スロットを設定中:`,slotLabel:`{{ams}} スロット {{slot}}`,searchPresets:`プリセットを検索...`,colorPlaceholder:`色名またはHex(例: 茶色、FF8800)`,clearCustomColor:`カスタム色をクリア`,noCloudPresets:`クラウドプリセットがありません。Bambu Cloudにログインして同期してください。`,noPresetsAvailable:`プリセットがありません。Bambu Cloudにログインするか、ローカルプロファイルをインポートしてください。`,noMatchingPresets:`一致するプリセットが見つかりません。`,custom:`カスタム`,builtin:`内蔵`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`設定をプリンターに送信しました`,filamentProfile:`フィラメントプロファイル`,kProfileLabel:`Kプロファイル(Pressure Advance)`,filteringFor:`フィルター中: {{material}}`,noKProfile:`Kプロファイルなし(デフォルト0.020を使用)`,noMatchingKProfiles:`一致するKプロファイルが見つかりません。デフォルトK=0.020が使用されます。`,otherKProfiles:`このプリンターの他のKプロファイル`,selectFilamentFirst:`まずフィラメントプロファイルを選択してください`,kFromCalibration:`K={{value}}(プリンターキャリブレーションから)`,customColorLabel:`カスタム色(オプション)`,presetColors:`{{name}}の色:`,showLessColors:`色を減らす`,showMoreColors:`色をもっと表示`,clear:`クリア`,hexLabel:`16進: #{{hex}}`,resetting:`リセット中...`,resetSlot:`スロットをリセット`,cancel:`キャンセル`,configuring:`設定中...`,configureSlot:`スロットを設定`},githubBackup:{title:`Gitバックアップ`,history:`履歴`,downloadBackup:`バックアップをダウンロード`,restoreBackup:`バックアップを復元`,noBackupsYet:`バックアップはまだありません`},emailSettings:{placeholders:{fromName:`Bambuddy`}},tagManagement:{searchTags:`タグを検索...`,renameTag:`タグ名を変更`,deleteTag:`タグを削除`},notificationTemplates:{placeholders:{title:`通知タイトル...`,body:`通知本文...`}},batchTag:{placeholders:{newTag:`新しいタグを入力...`}},photoGallery:{deletePhoto:`写真を削除`},filamentHoverCard:{copySpoolUuid:`スプールUUIDをコピー`},kProfilesView:{hasNote:`メモあり`,copyProfile:`プロファイルをコピー`},layout:{openMenu:`メニューを開く`,noPermissionSystemInfo:`システム情報を表示する権限がありません`},dashboard:{dragToReorder:`ドラッグして並べ替え`,hideWidget:`ウィジェットを非表示`},notificationProviderCard:{deleteNotificationProvider:`通知プロバイダーを削除`},fileManagerModal:{closeFileManager:`ファイルマネージャーを閉じる`,sortFiles:`ファイルを並べ替え`,goToParentFolder:`親フォルダーへ移動`,threeView:`3Dビュー`},embeddedCameraViewer:{refreshStream:`ストリームを更新`,close:`閉じる`,zoomOut:`ズームアウト`,resetZoom:`ズームをリセット`,zoomIn:`ズームイン`,dragToResize:`ドラッグしてサイズ変更`},timelapseViewer:{skipBack5s:`5秒戻る`,skipForward5s:`5秒進む`},notificationProviders:{descriptions:{email:`SMTP電子メール通知`,telegram:`Telegramボット経由の通知`,discord:`Webhookを介してDiscordチャンネルに送信`,ntfy:`無料でセルフホスト可能なプッシュ通知`,pushover:`シンプルで信頼性の高いプッシュ通知`,callmebot:`CallMeBot経由の無料WhatsApp通知`,webhook:`任意のURLへのジェネリックHTTP POST`}},logViewer:{searchPlaceholder:`メッセージまたはロガー名を検索...`,noLogEntries:`ログエントリが見つかりません`},switchbarPopover:{noSwitchesInSwitchbar:`スイッチバーにスイッチがありません`},projectPageModal:{placeholders:{title:`タイトル`,designer:`デザイナー`,license:`ライセンス`,description:`説明を入力...`,profileTitle:`プロファイルタイトル`,profileDescription:`プロファイルの説明...`}},spoolmanSettings:{},time:{unknown:`-`,waiting:`待機中`,justNow:`たった今`,now:`今すぐ`,minsAgo:`{{count}}分前`,inMins:`あと{{count}}分`,hoursAgo:`{{count}}時間前`,inHours:`あと{{count}}時間`,daysAgo:`{{count}}日前`,inDays:`あと{{count}}日`},spoolbuddy:{nav:{dashboard:`ダッシュボード`,ams:`AMS`,inventory:`インベントリ`,writeTag:`書込み`,settings:`設定`},status:{nfcReady:`NFC準備完了`,nfcOff:`NFCオフ`,offline:`オフライン`,online:`オンライン`,noPrinters:`プリンターなし`,deviceOffline:`デバイスオフライン`,waitingConnection:`デバイス接続を待っています...`,systemReady:`システム準備完了`,status:`ステータス`},dashboard:{readyToScan:`スキャン準備完了`,idleMessage:`スプールを計量台に置いて識別します`,nfcHint:`NFCタグは自動的に読み取られます`,device:`デバイス`,syncWeight:`重量同期`,weightSynced:`同期完了!`,unknownTag:`不明なタグ`,newTag:`新しいタグを検出`,onScale:`計量中`,linkSpool:`スプールにリンク`,linkTagTitle:`タグをスプールにリンク`,linkTag:`タグをリンク`,selectSpool:`このタグにリンクするスプールを選択:`,noUntagged:`タグなしのスプールが見つかりません`,tagDetected:`タグ検出`,noTag:`タグなし`,tagId:`タグ`,grossWeight:`総重量`,spoolSize:`スプールサイズ`,close:`閉じる`,currentSpool:`現在のスプール`,plateReady:`プレート準備完了: {{name}}`,plateReadyLabel:`片付け待ちプレート`,plateClearAction:`片付け`,plateClearedToast:`プレートを片付け済みにしました`,plateClearFailed:`プレートを片付け済みにできませんでした`},modal:{spoolDetected:`スプール検出`,assignToAms:`AMSに割り当て`,syncWeight:`重量同期`,weightSynced:`同期完了!`,syncing:`同期中...`,newTagDetected:`新しいタグを検出`,addToInventory:`インベントリに追加`,assignToAmsTitle:`AMSに割り当て`,selectSlot:`スロットを選択`,assign:`割り当て`,assigning:`割り当て中...`,assignSuccess:`割り当て完了!`,assignPendingInsert:`割り当てました。スプールを挿入したときにスロットが設定されます。`,assignError:`スプールの割り当てに失敗しました。再試行してください。`,noPrinterSelected:`プリンターを選択...`,noAmsDetected:`このプリンターにAMSが検出されません`,slot:`スロット`},weight:{noReading:`読み取りなし`,stable:`安定`,measuring:`計測中...`,tare:`風袋引き`,calibrate:`キャリブレーション`},spool:{remaining:`残量`,material:`素材`,brand:`ブランド`,color:`色`,coreWeight:`コア`,labelWeight:`ラベル`,scaleWeight:`計量`,netWeight:`正味`,lastUsed:`最終使用`},ams:{noData:`AMSが検出されません`,connectAms:`AMSを接続してスロットを表示`,noPrinter:`プリンター未選択`,selectPrinter:`上部バーからプリンターを選択`,printerDisconnected:`プリンター切断`,humidity:`湿度`,level:`レベル`,active:`アクティブ`,slot:`スロット`,empty:`空`},inventory:{search:`スプールを検索...`,empty:`インベントリにスプールがありません`,noResults:`一致するスプールがありません`,spools:`スプール`,addSpool:`スプール追加`},settings:{tabDevice:`デバイス`,tabDisplay:`ディスプレイ`,tabScale:`計量`,tabUpdates:`アップデート`,nfcReader:`NFCリーダー`,type:`タイプ`,connection:`接続`,notConnected:`該当なし`,deviceInfo:`デバイス情報`,hostname:`ホスト`,uptime:`稼働時間`,brightness:`明るさ`,saved:`保存済み`,noBacklight:`DSIバックライトが検出されませんでした。明るさ制御にはDSIディスプレイが必要です。`,screenBlank:`画面オフタイムアウト`,screenBlankDesc:`操作がないと画面がオフになります。タッチで復帰。`,displayNote:`明るさはソフトウェアフィルターとして適用されます。`,scaleCalibration:`計量キャリブレーション`,currentWeight:`現在の重量`,tareOffset:`風袋`,calFactor:`係数`,knownWeight:`既知の重量`,calStep1:`計量台からすべてのアイテムを取り除き、ゼロ設定を押してください。`,calStep2:`既知の重量を計量台に置いてください。`,setZero:`ゼロ設定`,calibrateNow:`キャリブレーション`,calibrated:`キャリブレーション済み`,tareSet:`風袋コマンドを送信しました。デバイスを待っています...`,tareComplete:`風袋が完了しました!`,tareTimedOut:`風袋がタイムアウトしました — SpoolBuddy デーモンは起動していますか?`,tareFailed:`風袋コマンドの送信に失敗しました`,zeroSet:`ゼロ点を設定しました。既知の重量を計量台に置いてください。`,calibrationDone:`キャリブレーション完了!`,calibrationFailed:`キャリブレーションに失敗しました`,lastCalibrated:`最終キャリブレーション`,stable:`安定`,settling:`安定化中...`,firmware:`ファームウェア`,scale:`計量`,noDevice:`SpoolBuddyデバイスが見つかりません`,daemonVersion:`デーモンバージョン`,currentVersion:`現在`,versionPending:`デーモンを待っています...`,checking:`確認中...`,checkUpdates:`アップデートを確認`,updateAvailable:`アップデートあり`,updateInstructions:`SSH経由で更新:SpoolBuddyインストールスクリプトを実行してください。`,upToDate:`最新です`,includeBeta:`ベータ版を含む`,systemConfig:`バックエンドと認証`,backendUrl:`BambuddyバックエンドURL`,apiToken:`APIトークン`,apiTokenPlaceholder:`APIトークンを入力`,saveConfig:`設定を保存`,systemQueued:`設定をキューに追加しました。`,systemFieldsRequired:`バックエンドURLは必須です。`,nfcDiagnostic:`NFC診断`,scaleDiagnostic:`スケール診断`,readTagDiagnostic:`タグ読み取り診断`,testNfc:`リーダーをテスト`,testScale:`精度をテスト`,testReadTag:`タグを読み取り`},writeTag:{tabExisting:`既存のスプール`,tabNew:`新規スプール`,tabReplace:`タグ交換`,searchPlaceholder:`素材、色、ブランドで検索...`,noUntaggedSpools:`タグなしのスプールがありません`,noTaggedSpools:`タグ付きのスプールがありません`,selectSpool:`スプールを選択し、NTAGをリーダーに置いてください`,placeTag:`NTAGをリーダーに置いてください`,tagReady:`タグ検出 — 書込み準備完了`,writeTag:`タグ書込み`,replaceTag:`タグ交換`,writing:`タグ書込み中...`,waiting:`SpoolBuddyを待機中...`,writeSuccess:`タグの書込みが完了しました!`,writeFailed:`書込み失敗`,queueFailed:`書込みコマンドのキューに失敗しました`,tryAgain:`再試行`,cancel:`キャンセル`,replaceWarning:`古いタグのリンクが解除され、新しいタグに置き換わります。`,deviceOffline:`SpoolBuddyはオフラインです`,material:`素材`,colorName:`色名`,color:`色`,brand:`ブランド`,weight:`重量 (g)`,createSpool:`スプール作成`,creating:`作成中...`,spoolCreated:`スプール作成完了!書込み準備ができました。`,createFailed:`スプールの作成に失敗しました`,incompleteDataWarning:`不完全なSpoolmanデータでタグを書き込みました`},quickMenu:{printerPower:`プリンター電源`,systemControls:`システム`,restartDaemon:`デーモン再起動`,restartBrowser:`ブラウザ再起動`,reboot:`再起動`,shutdown:`シャットダウン`,swipeToClose:`下にスワイプして閉じる`,confirmTitle:`確認`,confirmShutdown:`SpoolBuddyをシャットダウンしますか?再起動するには物理的なアクセスが必要です。`,confirmReboot:`SpoolBuddyを再起動しますか?`,confirmRestartDaemon:`SpoolBuddyデーモンを再起動しますか?NFCとスケールが一時的に使用できなくなります。`,confirmRestartBrowser:`キオスクブラウザを再起動しますか?画面が一時的に暗くなります。`,confirm:`確認`,confirmPlugOn:`{{name}}をオンにしますか?`,confirmPlugOff:`{{name}}をオフにしますか?`,turnOn:`オン`,turnOff:`オフ`}},diagnostic:{modalTitle:`接続診断 — {{name}}`,running:`診断を実行中...`,runningElapsed:`診断を実行中... ({{elapsed}}秒)`,waitingForReportHint:`プリンターがステータスレポートを送信するのを待っています — 最大 {{max}} 秒かかる場合があります。`,runFailed:`診断を実行できませんでした: {{error}}`,retry:`再実行`,runButton:`診断を実行`,sectionTitle:`接続診断`,sectionDescription:`プリンターが接続できない、または印刷できない原因を確認します — ポートの到達性、LAN開発者モード、Dockerネットワークモード、認証情報。`,noPrinters:`プリンターが設定されていません。`,overall:{ok:`問題は見つかりませんでした — プリンター接続は正常のようです。`,warnings:`プリンターは動作するはずですが、いくつかの点に注意が必要です。`,problems:`プリンターが接続できない、または印刷できない原因となる問題が見つかりました。`},check:{port_mqtt:{title:`制御ポート (MQTT 8883)`,pass:`到達可能 — プリンターは制御接続を受け付けています。`,fail:`ポート8883に到達できません。プリンターの電源が切れている、IPアドレスが異なる、またはファイアウォールがブロックしています。プリンターのIPと、ポート8883が何にもブロックされていないことを確認してください。`},port_ftps:{title:`ファイル転送ポート (FTPS 990)`,pass:`到達可能 — 印刷ファイルの送信は機能します。`,warn:`ポート990に到達できません。監視は引き続き機能する場合がありますが、プリンターへの印刷送信は失敗します。ポート990がブロックされていないことを確認してください。`},external_storage:{title:`送信ファイルを外部ストレージに保存 (インストール手順4)`,pass:`プリンターはこのオプションが有効と報告しています — 送信されたファイルはSDカードに保存され、アーカイブにはサムネイルとスライサーメタデータが含まれます。`,fail:`プリンターはこのオプションが無効と報告しています。「送信ファイルを外部ストレージに保存」を有効にしてください — 新しいファームウェア (P2S 01.02 / Bambu Studio 2.6以降) ではプリンター本体の印刷設定にトグルがあります。古いバージョンでは Bambu Studio / OrcaSlicer のデバイスタブにあります。この設定がないと、アーカイブされた印刷にはサムネイルもスライサーメタデータも残りません。`,skip:`未確認 — アクティブなMQTT接続が必要です。古いスライサーでこの設定がスライサー側のみに存在する場合、プリンターはそれを報告しないため、オプションが無効でもこのチェックは通過します — インストール手順4を手動で確認してください。`,skip_unsupported_model:`このモデルにはSDスロットがありますが、オプションを有効にする方法がありません — 現在のP1シリーズのファームウェアはBambu Studioにトグルを表示せず、プリンターに画面もありません。ここで修正すべきことはありません。Bambu Labがファームウェアで対応するまで、アーカイブされた印刷にはサムネイルやスライサーのメタデータが欠ける場合があります。`},port_rtsps:{title:`カメラポート ({{protocol}} {{port}})`,pass:`到達可能 — カメラストリームは機能します。`,warn:`ポート{{port}}に到達できません。ライブカメラ表示は機能しません。これは印刷には影響しません。`},network_mode:{title:`Dockerネットワークモード`,pass:`ホストネットワークモードで実行中です。`,warn:`BambuddyはDockerブリッジネットワークで実行されています。プリンター検出と仮想プリンターにはホストネットワークモードが必要です — "network_mode: host" でコンテナを再作成してください。`,skip:`Dockerで実行されていません — 該当しません。`},subnet:{title:`ネットワークサブネット`,pass:`プリンターとBambuddyは同じサブネットにあります。`,warn:`プリンター ({{printer_ip}}) とBambuddy ({{host_ip}}) は異なるサブネットにあります。サブネット間のルーティングが設定されていない限り、互いに到達できない可能性があります。`,skip:`サブネットを判定できませんでした — スキップしました。`},mqtt_auth:{title:`プリンター認証情報`,pass:`プリンターが接続を受け入れました。`,fail:`プリンターには到達できますが、Bambuddy は接続されていません。アクセスコードまたはシリアル番号が間違っている可能性が高いです — アクセスコードは LAN のみモードや開発者モードを切り替えるたびに変わるため、プリンター画面から再度コピーしてください。再起動中のプリンターや、同時接続数の上限に達しているプリンターでも同じ表示になります。`,fail_auth_rejected:`プリンターが Bambuddy の認証情報を拒否しました。アクセスコードまたはシリアル番号が間違っています — アクセスコードは LAN のみモードや開発者モードを切り替えるたびに変わります。プリンター画面から再度コピーし、プリンター設定に保存してください。`,skip:`未確認 — プリンターに到達できませんでした。`},developer_mode:{title:`LAN開発者モード`,pass:`開発者モードは有効です。`,fail:`プリンターの開発者モードがオフです。プリンターのLAN設定で有効にし、OKで確定してください。これがないと印刷は開始されません。`,skip:`確認できませんでした — プリンターへのアクティブな接続が必要です。`},printer_publishing:{title:`プリンターがステータスを送信中`,pass:`プリンターはステータス更新を送信しています — AMS、フィラメント、Kプロファイルがスライサーに正しくミラーされます。`,fail:`MQTTブローカーは接続を受け付けましたが、プリンターはステータスレポートを一切送信していません。ほぼ常にシリアル番号の誤りまたは大文字小文字の不一致が原因です — device//api/v1/metrics per monitoraggio Prometheus/Grafana.`,bearerTokenOptional:`Token Bearer (opzionale)`,bearerTokenHint:`Se impostato, le richieste devono includere Authorization: Bearer `,metricsConnectionStatus:`Stato connessione`,metricsPrinterState:`Stato stampante (idle/printing/ecc)`,metricsPrintProgress:`Progresso stampa 0-100%`,metricsBedTemp:`Temperatura piatto`,metricsNozzleTemp:`Temperatura ugello`,metricsPrintsTotal:`Stampe totali per risultato`,metricsMore:`...e altro (strati, ventole, coda, consumo filamento)`,smartPlugsDescription:`Connetti prese smart (Tasmota o Home Assistant) per automatizzare il controllo dell'alimentazione e monitorare il consumo energetico delle stampanti.`,allOn:`Tutte accese`,allOff:`Tutte spente`,addSmartPlug:`Aggiungi presa smart`,energySummary:`Riepilogo energia`,currentPower:`Potenza attuale`,plugsOnline:`{{reachable}}/{{total}} prese online`,today:`Oggi`,yesterday:`Ieri`,total:`Totale`,enablePlugsForSummary:`Abilita le prese per vedere il riepilogo energia`,addNotificationProvider:`Aggiungi`,systemBadge:`(Sistema)`,creating:`Creazione...`,changing:`Modifica...`,deleteUserAndItems:`Elimina utente E i suoi elementi`,deleteUserKeepItems:`Elimina utente, mantieni elementi (diventeranno senza proprietario)`,ok:`OK`,twoFa:{totpTitle:`App Authenticator (TOTP)`,totpDesc:`Usa un'app come Google Authenticator, Aegis o Authy.`,emailOtpTitle:`OTP via e-mail`,emailOtpDesc:`Invia un codice monouso a {{email}} al momento del login.`,emailOtpNoEmail:`Aggiungi un indirizzo e-mail al tuo account per abilitare questo metodo.`,addEmailFirst:`Il tuo account non ha un indirizzo e-mail. Chiedi a un amministratore di aggiungerne uno.`,setupTotp:`Configura app Authenticator`,setupAuthApp:`Configura app Authenticator`,setupInstructions:`Scansiona il codice QR con la tua app authenticator, poi conferma con un codice.`,manualEntry:`Impossibile scansionare? Inserisci questo segreto manualmente:`,scannedContinue:`Codice scansionato — continua`,enterCodeToConfirm:`Inserisci il codice a 6 cifre dalla tua app authenticator per confermare.`,activate:`Attiva`,disableTotp:`Disabilita Authenticator`,disableConfirmHint:`Inserisci un codice TOTP valido o un codice di backup per disabilitare l'authenticator.`,totpDisabled:`App Authenticator disabilitata.`,emailOtpEnabled:`OTP via e-mail abilitato.`,emailOtpDisabled:`OTP via e-mail disabilitato.`,smtpRequired:`Configura e testa prima le impostazioni SMTP.`,invalidCode:`Codice non valido. Riprova.`,enableEmailOtp:`Abilita OTP via e-mail`,disableEmailOtp:`Disabilita OTP via e-mail`,emailSetupEnterCode:`È stato inviato un codice di verifica al tuo indirizzo e-mail. Inseriscilo qui sotto per confermare che possiedi questa casella di posta.`,verifyAndEnable:`Verifica e abilita`,emailDisablePasswordHint:`Inserisci la password del tuo account per confermare la disabilitazione dell'OTP via e-mail.`,passwordPlaceholder:`Inserisci la tua password`,backupCodesTitle:`Salva i tuoi codici di backup`,backupCodesWarning:`Conserva questi codici in un posto sicuro. Ogni codice può essere usato una sola volta.`,backupCodesRemaining:`{{count}} codici di backup rimanenti`,savedCodes:`Codici salvati`,regenBackup:`Rigenera codici di backup`,regenBackupHint:`Inserisci il tuo codice TOTP corrente per generare 10 nuovi codici di backup.`,newBackupCodes:`Nuovi codici di backup`,linkedAccounts:`Account SSO collegati`,linkedAccountsDesc:`Questi provider di identità esterni sono collegati al tuo account.`,oidcUnlinked:`Account scollegato.`},sessionPolicy:{title:`Criterio di sessione`,description:`Durata massima della sessione per i nuovi accessi utente. I token già emessi mantengono la scadenza originale.`,preset24h:`24 ore`,preset7d:`7 giorni`,preset30d:`30 giorni`,customHoursLabel:`Durata personalizzata della sessione in ore`,hoursSuffix:`ore`,warning:`Le sessioni più lunghe riducono la protezione di disconnessione automatica. Consigliato solo per installazioni mono-utente attendibili.`},oidc:{title:`Provider SSO / OIDC`,desc:`Configura provider OpenID Connect per il single sign-on.`,addProvider:`Aggiungi provider`,newProvider:`Nuovo provider`,empty:`Nessun provider OIDC configurato.`,created:`Provider creato.`,updated:`Provider aggiornato.`,deleted:`Provider eliminato.`,refreshIcon:`Aggiorna icona`,removeIcon:`Rimuovi icona`,iconRefreshed:`Icona aggiornata.`,iconRemoved:`Icona rimossa.`,iconFetchFailed:`Impossibile recuperare l'icona dall'URL del provider.`,deleteTitle:`Elimina provider`,deleteMessage:`Eliminare "{{name}}"? Tutti gli account collegati verranno disconnessi.`,form:{name:`Nome visualizzato`,issuerUrl:`URL emittente`,clientId:`ID client`,clientSecret:`Client secret`,scopes:`Scope`,iconUrl:`URL icona (opzionale)`,enabled:`Abilitato`,autoCreate:`Crea utenti automaticamente`,autoCreateDesc:`Crea automaticamente un account locale al primo accesso.`,autoLink:`Collega automaticamente gli account esistenti`,autoLinkDesc:`Collega gli account locali esistenti tramite email al primo accesso.`,secretHint:`lascia vuoto per mantenere`,secretPlaceholder:`nuovo segreto`,emailClaim:`Claim email`,emailClaimDesc:`Claim JWT usato come identità email. Usare 'preferred_username' o 'upn' per Azure Entra ID (che non invia email_verified). Usare solo nomi di claim affidabili.`,emailClaimPlaceholder:`e-mail`,emailClaimCustomClaimAutoLinkWarning:`I claim personalizzati sono sicuri per il collegamento automatico solo se il valore è gestito dal tenant (es. Azure Entra ID upn / preferred_username). Non abilitare il collegamento automatico se il tuo IdP consente agli utenti di auto-assegnare questo claim.`,requireEmailVerified:`Richiedi verifica email`,requireEmailVerifiedDesc:`Accetta il claim email solo se il provider lo contrassegna come verificato.`,requireEmailVerifiedWarning:`Attenzione: l'email sarà accettata senza verifica. Usare solo con provider affidabili.`,requireEmailVerifiedAutoLink:`Disabilitare prima il collegamento automatico per modificare questa impostazione.`,defaultGroup:`Gruppo predefinito`,defaultGroupDesc:`Gruppo assegnato agli utenti creati automaticamente. Ritorno a Viewers se non impostato.`,defaultGroupViewersFallback:`Viewers (predefinito)`,autologin:`Accesso automatico`,autologinDesc:`Reindirizza i visitatori non autenticati direttamente a questo provider. Solo un provider può avere questo flag.`}},encryption:{title:`Stato crittografia MFA`,enabledFromEnv:`Crittografia a riposo abilitata (chiave dalla variabile d'ambiente MFA_ENCRYPTION_KEY)`,enabledFromFile:`Crittografia a riposo abilitata (chiave caricata dalla directory dei dati)`,enabledGenerated:`Crittografia a riposo abilitata con chiave auto-generata`,notConfigured:`Crittografia a riposo non configurata`,notConfiguredDesc:`I segreti TOTP e i client_secrets OIDC sono memorizzati in chiaro. Imposta MFA_ENCRYPTION_KEY o riavvia Bambuddy con una directory dati scrivibile per generarne uno automaticamente.`,allEncrypted:`Tutti i segreti MFA sono crittografati a riposo.`,legacyRowsLabel:`Righe legacy in chiaro`,encryptedRowsLabel:`Righe crittografate`,legacyRowsWarning:`Rilevate {{count}} righe legacy in chiaro. Salva di nuovo il provider OIDC o re-iscrivi l'app authenticator dell'utente per migrare allo storage crittografato.`,backupHint:`La chiave generata automaticamente è memorizzata in DATA_DIR/.mfa_encryption_key ed è inclusa nei backup locali ZIP. Mantieni sicuri i tuoi backup o imposta MFA_ENCRYPTION_KEY esplicitamente.`,decryptionBrokenTitle:`Chiave di crittografia mancante`,decryptionBrokenError:`{{count}} record crittografati non possono essere decifrati perché la chiave di crittografia non è più disponibile. Ripristina il precedente MFA_ENCRYPTION_KEY o DATA_DIR/.mfa_encryption_key per recuperare.`,migrationErrorWarning:`{{count}} riga/righe legacy non sono state ricifrate all'avvio. Controlla i log del server e riavvia Bambuddy per riprovare.`},spoolbuddy:{infoTitle:`Dispositivi SpoolBuddy`,infoBody:`I kiosk SpoolBuddy si registrano automaticamente tramite heartbeat. Annulla la registrazione qui se un dispositivo non è più in uso o se un duplicato obsoleto è rimasto dopo un crash del daemon.`,duplicatesTitle:`{{count}} dispositivi registrati`,duplicatesBody:`Solo il primo dispositivo registrato viene utilizzato dall'interfaccia kiosk. Se uno di questi è un duplicato obsoleto da un crash, annulla la sua registrazione — un dispositivo online si ri-registrerà al prossimo heartbeat.`,empty:`Nessun dispositivo SpoolBuddy registrato.`,online:`Online`,offline:`Offline`,unregister:`Annulla registrazione`,unregisterSuccess:`Dispositivo deregistrato`,unregisterError:`Deregistrazione non riuscita`,confirmTitle:`Annullare la registrazione del dispositivo SpoolBuddy?`,confirmBody:`Questo rimuoverà "{{hostname}}" ({{deviceId}}) dal database. Se il dispositivo è online, si ri-registrerà al prossimo heartbeat.`,ipAddress:`Indirizzo IP`,firmware:`Firmware`,lastSeen:`Ultimo rilevamento`,daemonUptime:`Uptime del daemon`,systemUptime:`Uptime sistema`,never:`mai`,nfc:`NFC`,scale:`Bilancia`,cpuTemp:`Temp. CPU`,cpuLoad:`Carico CPU`,memory:`Memoria`,disk:`Disco`,update:`Aggiorna`,updateConfirmTitle:`Aggiornare il daemon Spoolbuddy?`,updateConfirmBody:`Avviare un aggiornamento software su "{{hostname}}"? Il daemon si riavvierà al termine dell'aggiornamento.`,restartBrowser:`Riavvia browser`,restartBrowserConfirmTitle:`Riavviare il browser del kiosk?`,restartBrowserConfirmBody:`Riavviare il browser del kiosk su "{{hostname}}"? Il display si oscurerà brevemente.`,restartDaemon:`Riavvia daemon`,restartDaemonConfirmTitle:`Riavviare il daemon Spoolbuddy?`,restartDaemonConfirmBody:`Riavviare il daemon Spoolbuddy su "{{hostname}}"? Il dispositivo sarà offline per alcuni secondi.`,reboot:`Riavvia`,rebootConfirmTitle:`Riavviare il dispositivo?`,rebootConfirmBody:`Riavviare "{{hostname}}"? Il dispositivo sarà offline per circa un minuto.`,shutdown:`Spegni`,shutdownConfirmTitle:`Spegnere il dispositivo?`,shutdownConfirmBody:`Spegnere "{{hostname}}"? Sarà necessario un accesso fisico per riaccenderlo.`,commandConfirm:`Conferma`,commandQueued:`Comando in coda`,commandError:`Invio comando non riuscito`},pipelineLimits:{title:`Limiti pipeline dello slicer`,maxCopiesLabel:`Copie massime per esecuzione`,maxCopiesDesc:`Limite superiore alle copie che gli operatori possono richiedere durante l'esecuzione di una pipeline. Il limite massimo lato server è 1000.`},pipelines:{title:`Pipeline dello Slicer`,subtitle:`Bundle di preset riutilizzabili (stampante + processo + filamenti + tipo di piatto). Salvane uno dal dialogo Slice e applicalo con un clic al file successivo.`,loading:`Caricamento pipeline…`,loadError:`Impossibile caricare le pipeline.`,confirmDelete:`Eliminare questa pipeline? L'operazione non può essere annullata.`,staleWarning:`Uno o più preset referenziati non esistono più. Risalva questa pipeline dal dialogo Slice per ripararla.`,empty:{title:`Nessuna pipeline ancora.`,howto:`Apri il dialogo Slice per un file, scegli stampante / processo / filamenti / piatto, poi clicca "Salva come pipeline". Le tue pipeline salvate appariranno qui.`},field:{name:`Nome pipeline`,description:`Descrizione`,targetPrinter:`Stampante di destinazione`,noTarget:`— Nessuna destinazione —`,targetKind:`Tipo destinazione`,targetKindSpecific:`Stampante specifica`,targetKindClass:`Classe stampante`,targetModelClass:`Modello stampante`,fanoutStrategy:`Strategia di distribuzione`,fanout:{max_parallel:`Max parallelo — distribuisci su qualsiasi stampante libera corrispondente`,round_robin:`Round robin — alterna tra stampanti idonee`,fill_one_first:`Riempi una prima — assegna tutte le copie a una stampante`},fanoutShort:{max_parallel:`parallelo`,round_robin:`round robin`,fill_one_first:`prima una`}},action:{save:`Salva`,cancel:`Annulla`,rename:`Rinomina`,delete:`Elimina`},slot:{printer:`Stampante`,process:`Processo`,filament:`Filamento`,filamentN:`Filamento {{n}}`,filamentAll:`Tutti i {{n}} slot`,bed:`Piatto`},group:{profiles:`Profili`,filaments:`Filamenti`},searchPlaceholder:`Cerca pipeline…`,filterTargetType:`Filtra per tipo di destinazione`,filterTarget:`Filtra per destinazione`,filter:{all:`Tutte le destinazioni`,noTarget:`Nessuna destinazione`,count:`{{shown}} / {{total}}`,noMatches:`Nessuna pipeline corrisponde ai filtri attuali.`},toast:{saved:`Pipeline salvata`,saveFailed:`Salvataggio non riuscito`,deleted:`Pipeline eliminata`,deleteFailed:`Eliminazione non riuscita`},noTargetHint:`Imposta una stampante di destinazione per eseguire`,noTargetWarning:`Imposta una stampante di destinazione prima di eseguire questa pipeline.`,runs:{lastRun:`Ultima esecuzione`,status:{queued:`in coda`,slicing:`slicing`,dispatching:`invio`,in_progress:`stampa`,completed:`completata`,failed:`fallita`,partial_failure:`fallimento parziale`,cancelled:`annullata`}}}},notification:{printStarted:{title:`Stampa avviata`,body:`{{printer}}: {{filename}} ha iniziato a stampare`},printCompleted:{title:`Stampa completata`,body:`{{printer}}: {{filename}} completata con successo`},printFailed:{title:`Stampa fallita`,body:`{{printer}}: {{filename}} fallita`},printStopped:{title:`Stampa interrotta`,body:`{{printer}}: {{filename}} interrotta`},printProgress:{title:`Avanzamento stampa`,body:`{{printer}}: {{filename}} al {{percent}}% completamento`},printerOffline:{title:`Stampante offline`,body:`{{printer}} e offline`},printerError:{title:`Errore stampante`,body:`{{printer}} – {{error}}`},filamentLow:{title:`Filamento in esaurimento`,body:`{{printer}}: Filamento in esaurimento`},maintenanceDue:{title:`Manutenzione dovuta`,body:`{{printer}}: {{items}} richiedono attenzione`}},errors:{generic:`Qualcosa e andato storto`,networkError:`Errore di rete. Controlla la connessione.`,notFound:`Non trovato`,unauthorized:`Non autorizzato`,serverError:`Errore server`,validationError:`Controlla i dati inseriti`,printerConnectionFailed:`Connessione alla stampante fallita`,saveFailed:`Salvataggio modifiche fallito`,deleteFailed:`Eliminazione fallita`,loadFailed:`Caricamento dati fallito`},hmsErrors:{title:`Errori - {{name}}`,noErrors:`Nessun errore`,viewOnWiki:`Vedi su Bambu Lab Wiki`,mqttVerifyFailedRemedy:`Attiva la modalita sviluppatore sulla stampante, riavvia la stampante e avvia di nuovo il lavoro.`,unknownCode:`Codice HMS sconosciuto — consulta la wiki di Bambu Lab per i dettagli.`,clearInstructions:`Cancella gli errori sulla stampante per rimuoverli qui.`,clearErrors:`Cancella errori`,clearSuccess:`Errori HMS cancellati`,clearFailed:`Impossibile cancellare gli errori HMS`,actionSuccess:`Azione inviata alla stampante`,actionFailed:`Impossibile inviare l'azione`,runoutExpectedSlot:`Il filamento in {{ranOut}} è esaurito. La stampante ora attende filamento compatibile in {{expected}}. Inserisci una bobina in {{expected}}, quindi seleziona Riprova.`,runoutExpectedSlotOnly:`La stampante attende filamento compatibile in {{expected}}. Inserisci lì una bobina, quindi seleziona Riprova.`,runoutSlotUnknown:`Il filamento è esaurito e la stampa è in pausa. Bambuddy non è riuscito a determinare quale slot la stampante attende ora — controlla lo schermo della stampante per lo slot richiesto.`,actions:{RESUME_PRINTING:`Riprendi stampa`,RESUME_PRINTING_DEFECTS:`Riprendi (difetti accettabili)`,RESUME_PRINTING_PROBELM_SOLVED:`Riprendi (problema risolto)`,STOP_PRINTING:`Ferma stampa`,CHECK_ASSISTANT:`Apri assistente`,FILAMENT_EXTRUDED:`Filamento estruso, continua`,RETRY_FILAMENT_EXTRUDED:`Non ancora estruso, riprova`,CONTINUE:`Completato, continua`,LOAD_VIRTUAL_TRAY:`Carica filamento`,OK_BUTTON:`OK`,FILAMENT_LOAD_RESUME:`Filamento caricato, riprendi`,JUMP_TO_LIVEVIEW:`Visualizza in diretta`,NO_REMINDER_NEXT_TIME:`Non ricordare la prossima volta`,REFRESH_NOZZLE:`Ricontrolla`,IGNORE_NO_REMINDER_NEXT_TIME:`Ignora e non ricordare`,IGNORE_RESUME:`Ignora e riprendi`,PROBLEM_SOLVED_RESUME:`Problema risolto, riprendi`,TURN_OFF_FIRE_ALARM:`Capito, spegni allarme antincendio`,RETRY_PROBLEM_SOLVED:`Riprova (problema risolto)`,CANCLE:`Annulla`,STOP_DRYING:`Ferma essiccazione`,PROCEED:`Procedi`,OK_JUMP_RACK:`OK`,ABORT:`Annulla`,DISABLE_PURIFICATION:`Disattiva purificazione per questa stampa`,DONT_REMIND_NEXT_TIME:`Non ricordarmelo`,DBL_CHECK_CANCEL:`Annulla`,DBL_CHECK_DONE:`Fatto`,DBL_CHECK_RETRY:`Riprova`,DBL_CHECK_RESUME:`Riprendi`,DBL_CHECK_OK:`Conferma`,REMOVE_CLOSE_BTN:`Chiudi`}},mqttDebug:{title:`Log debug MQTT`,searchPlaceholder:`Cerca topic o payload...`,noMessages:`Nessun messaggio registrato`,startLoggingHint:`Clicca "Avvia logging" per iniziare a catturare messaggi MQTT`,noMessagesMatch:`Nessun messaggio corrisponde al filtro`,adjustFilterHint:`Prova a modificare la ricerca o i filtri`,incoming:`In ingresso`,outgoing:`In uscita`,loggingStopped:`Logging fermato`,loggingActive:`Logging attivo - i messaggi si aggiornano automaticamente`,startLogging:`Avvia logging`,stopLogging:`Ferma logging`,clearLog:`Pulisci log`,topic:`Argomento`,timestamp:`Timestamp`,direction:`Direzione`,all:`Tutti`},printerFiles:{title:`Gestore file`,storageUsed:`Usato:`,storageFree:`Libero:`,filterPlaceholder:`Filtra file...`,deleteButton:`Elimina`,deleteFiles:`Elimina {{count}} file`,deleteFileConfirm:`Eliminare "{{name}}"? Questa azione non può essere annullata.`,deleteFilesConfirm:`Eliminare {{count}} file selezionati? Questa azione non può essere annullata.`,noFiles:`Nessun file sulla stampante`,loadingFiles:`Caricamento file...`,failedToLoad:`Caricamento file fallito`,toast:{filesDeleted:`Eliminati {{count}} file`,deleteFailed:`Eliminazione fallita: {{error}}`}},confirm:{delete:`Sei sicuro di voler eliminare questo?`,unsavedChanges:`Hai modifiche non salvate. Sei sicuro di voler uscire?`,clearQueue:`Sei sicuro di voler svuotare la coda?`},login:{title:`Login Bambuddy`,subtitle:`Accedi al tuo account`,username:`Nome utente`,usernamePlaceholder:`Inserisci il nome utente`,usernameOrEmail:`Nome utente o email`,usernameOrEmailPlaceholder:`Nome utente o @ Email`,password:`Password`,passwordPlaceholder:`Inserisci la password`,signIn:`Accedi`,signingIn:`Accesso in corso...`,rememberMe:`Ricordami`,forgotPassword:`Hai dimenticato la password?`,autologinFailed:`Accesso SSO automatico fallito. Scegli un provider qui sotto per continuare.`,localDisabledNotice:`L'accesso locale è disabilitato. Usa uno dei provider SSO qui sotto.`,loginSuccess:`Accesso riuscito`,loginFailed:`Accesso fallito`,enterCredentials:`Inserisci nome utente e password`,enterEmail:`Inserisci il tuo indirizzo e-mail`,oidcLoginFailed:`Accesso OIDC fallito`,oidcErrors:{providerError:`Il provider di identità ha restituito un errore`,missingParameters:`Parametri obbligatori mancanti nel callback OIDC`,invalidState:`Lo stato OIDC non è valido o è già stato utilizzato`,stateExpired:`La sessione OIDC è scaduta — riprovare`,providerNotFound:`Provider OIDC non trovato`,discoveryFailed:`Impossibile recuperare il documento di discovery OIDC`,invalidDiscovery:`Il documento di discovery OIDC non è valido`,networkError:`Errore di rete durante lo scambio di token OIDC`,badResponse:`Risposta inattesa durante lo scambio di token OIDC`,noIdToken:`Il provider OIDC non ha restituito un ID token`,validationFailed:`La validazione del token OIDC non è riuscita`,nonceMismatch:`Il nonce OIDC non corrisponde — possibile attacco di replay`,missingSubClaim:`Il token OIDC è privo del claim sub`,noLinkedAccount:`Nessun account locale è collegato a questa identità OIDC`,accountInactive:`Il tuo account è inattivo`,userResolutionFailed:`Impossibile risolvere il tuo account`,internalError:`Si è verificato un errore interno durante il login OIDC`,tokenExchangeFailed:`Lo scambio di token OIDC non è riuscito`},forgotPasswordTitle:`Password dimenticata`,forgotPasswordMessage:`Se hai dimenticato la password, contatta il tuo amministratore di sistema per reimpostarla.`,forgotPasswordEmailMessage:`Inserisci il tuo indirizzo email e ti invieremo una nuova password.`,emailAddress:`Indirizzo email`,emailPlaceholder:`tua.email@esempio.com`,cancel:`Annulla`,sending:`Invio...`,sendResetEmail:`Invia email di reimpostazione`,howToReset:`Come reimpostare la password:`,resetStep1:`Contatta il tuo amministratore Bambuddy`,resetStep2:`Chiedi di reimpostare la password in Gestione utenti`,resetStep3:`Possono impostare una nuova password temporanea`,resetStep4:`Accedi con la nuova password e cambiala in Impostazioni`,gotIt:`Capito`,twoFA:{title:`Autenticazione a due fattori`,subtitle:`Il tuo account è protetto da 2FA. Inserisci il codice di verifica qui sotto.`,methodAuthenticator:`App di autenticazione`,methodEmail:`Codice via e-mail`,methodBackup:`Codice di recupero`,instructionsTotp:`Apri la tua app di autenticazione e inserisci il codice a 6 cifre per Bambuddy.`,instructionsEmail:`Un codice a 6 cifre è stato inviato al tuo indirizzo e-mail. È valido per 10 minuti.`,instructionsEmailNotSent:`Clicca il pulsante qui sotto per ricevere un codice di verifica via e-mail.`,instructionsBackup:`Inserisci uno dei tuoi codici di recupero a 8 caratteri. Ogni codice può essere utilizzato una sola volta.`,sendCodeButton:`Invia codice via e-mail`,sendingCode:`Invio in corso...`,resendCode:`Invia nuovamente il codice`,codeLabel:`Codice di verifica`,backupCodeLabel:`Codice di recupero`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`Verifica`,verifyingButton:`Verifica in corso...`,backToLogin:`← Torna alla pagina di accesso`,orContinueWith:`oppure accedi con`,signInWith:`Accedi con {{provider}}`,enterCode:`Inserisci il codice di verifica`,sendCodeFailed:`Invio del codice di verifica non riuscito`,invalidCode:`Codice non valido. Riprova.`},resetPassword:{title:`Imposta nuova password`,subtitle:`Inserisci e conferma la nuova password qui sotto.`,newPassword:`Nuova password`,newPasswordPlaceholder:`Almeno 8 caratteri`,confirmPassword:`Conferma password`,confirmPasswordPlaceholder:`Ripeti la nuova password`,saving:`Salvataggio…`,submit:`Imposta nuova password`,backToLogin:`Torna al login`,passwordsDoNotMatch:`Le password non coincidono`,passwordTooShort:`La password deve avere almeno 8 caratteri`,resetFailed:`Reimpostazione non riuscita. Il link potrebbe essere scaduto.`}},setup:{title:`Configurazione Bambuddy`,subtitle:`Configura autenticazione per la tua istanza Bambuddy`,enableAuth:`Abilita autenticazione`,adminAccount:`Account admin`,adminAccountDesc:`Se esistono già admin, l'autenticazione verrà abilitata usando gli account esistenti. Lascia i campi sotto vuoti per usare gli admin esistenti, oppure inserisci nuove credenziali per creare un nuovo utente admin.`,adminUsername:`Nome utente admin`,adminPassword:`Password admin`,optionalIfAdminExists:`(opzionale se esistono admin)`,adminUsernamePlaceholder:`Inserisci nome utente admin (opzionale)`,adminPasswordPlaceholder:`Inserisci password admin (opzionale)`,confirmPassword:`Conferma password`,confirmPasswordPlaceholder:`Conferma password admin`,settingUp:`Configurazione...`,completeSetup:`Completa configurazione`,toast:{authEnabledAdminCreated:`Autenticazione abilitata e utente admin creato`,authEnabledExistingAdmins:`Autenticazione abilitata usando admin esistenti`,setupCompleted:`Configurazione completata`,enterBothCredentials:`Inserisci nome utente e password admin, oppure lascia entrambi vuoti per usare admin esistenti`,passwordsDoNotMatch:`Le password non coincidono`,passwordTooShort:`La password deve essere di almeno 6 caratteri`}},changePassword:{title:`Cambia password`,currentPassword:`Password attuale`,currentPasswordPlaceholder:`Inserisci password attuale`,newPassword:`Nuova password`,newPasswordPlaceholder:`Inserisci nuova password (min 6 caratteri)`,confirmPassword:`Conferma nuova password`,confirmPasswordPlaceholder:`Conferma nuova password`,passwordsDoNotMatch:`Le password non coincidono`,passwordTooShort:`La password deve essere di almeno 6 caratteri`,changing:`Modifica in corso...`,success:`Password cambiata con successo`,failed:`Modifica password fallita`},plateAlert:{title:`Stampa in pausa!`,message:`Oggetti rilevati sul piatto. La stampa è stata messa automaticamente in pausa. Svuota il piatto e riprendi la stampa.`,understand:`Ho capito`},camera:{title:`Vista camera`,invalidPrinterId:`ID stampante non valido`,live:`Live`,snapshot:`Istantanea`,restartStream:`Riavvia stream`,refreshSnapshot:`Aggiorna snapshot`,fullscreen:`Schermo intero`,exitFullscreen:`Esci da schermo intero`,connectingToCamera:`Connessione alla camera...`,capturingSnapshot:`Acquisizione snapshot...`,connectionLost:`Connessione persa`,connectionFailed:`Connessione camera fallita`,reconnecting:`Riconnessione tra {{countdown}}s... (tentativo {{attempt}}/{{max}})`,reconnectNow:`Riconnetti ora`,cameraUnavailable:`Camera non disponibile`,cameraUnavailableDesc:`Assicurati che la stampante sia accesa e connessa.`,noCamera:`Nessuna camera disponibile`,retry:`Riprova`,cameraStream:`Stream camera`,zoomOut:`Zoom indietro`,zoomIn:`Zoom avanti`,resetZoom:`Reimposta zoom`,recording:`Registrazione`,startRecording:`Avvia registrazione`,stopRecording:`Ferma registrazione`,chamberLight:`Accendi/Spegni luce camera`,unavailable:`Telecamera non disponibile`,diagnose:{button:`Diagnostica`,modalTitle:`Diagnostica telecamera`,running:`Diagnostica in corso...`,runFailed:`Impossibile eseguire la diagnostica: {{error}}`,retry:`Riesegui`,stage:{tcp_reachable:`Raggiungibilità di rete`,first_frame:`Acquisizione frame`,live_stream_active:`Stream live attivo`},summary:{all_ok:`La telecamera funziona. La diagnostica ha completato tutte le fasi con successo.`,live_stream_active_healthy:`La telecamera sta trasmettendo con frame recenti — nessun test necessario.`,printer_unreachable:`La stampante non è raggiungibile. Verifica l'indirizzo IP, la connessione di rete e che la stampante sia accesa.`,camera_port_closed:`La stampante risponde ma la porta della telecamera è chiusa. Assicurati che la modalità LAN e la modalità sviluppatore siano attive nelle impostazioni della stampante.`,no_frame:`Connessione alla telecamera riuscita ma nessun frame ricevuto. Riprova o verifica che la telecamera sia abilitata nelle impostazioni della stampante.`,unknown_failure:`Diagnostica della telecamera fallita per motivo sconosciuto. Controlla il log di supporto per i dettagli.`},meta:{protocol:`Protocollo`,port:`Porta`,profile:`Profilo`}}},groups:{title:`Gestione gruppi`,subtitle:`Gestisci gruppi permessi per controllo accesso`,backToSettings:`Torna a Impostazioni`,createGroup:`Crea gruppo`,noPermission:`Non hai il permesso di accedere a questa pagina.`,system:`Sistema`,noDescription:`Nessuna descrizione`,usersCount:`{{count}} utenti`,permissionsCount:`{{count}} permessi`,edit:`Modifica`,delete:`Elimina`,toast:{created:`Gruppo creato con successo`,updated:`Gruppo aggiornato con successo`,deleted:`Gruppo eliminato con successo`,enterGroupName:`Inserisci un nome gruppo`},modal:{editGroup:`Modifica gruppo`,createGroup:`Crea gruppo`,cancel:`Annulla`,saving:`Salvataggio...`,creating:`Creazione...`,saveChanges:`Salva modifiche`},form:{groupName:`Nome gruppo`,groupNamePlaceholder:`Inserisci nome gruppo`,systemGroupWarning:`I nomi dei gruppi di sistema non possono essere modificati`,description:`Descrizione`,descriptionPlaceholder:`Inserisci descrizione (opzionale)`,permissions:`Permessi ({{count}} selezionati)`},deleteModal:{title:`Elimina gruppo`,message:`Sei sicuro di voler eliminare questo gruppo? Gli utenti in questo gruppo perderanno questi permessi.`,confirm:`Elimina gruppo`},editor:{title:`Modifica gruppo`,createTitle:`Crea gruppo`,search:`Cerca permessi...`,selectAll:`Seleziona tutto`,clearAll:`Deseleziona tutto`,permissionsSelected:`{{count}} selezionati`,noResults:`Nessun permesso corrisponde alla ricerca`,websocketHint:`Necessario per gli aggiornamenti in tempo reale. Senza questo permesso, l'interfaccia ripiega sul polling periodico.`}},users:{title:`Gestione utenti`,subtitle:`Gestisci utenti e accesso alla tua istanza Bambuddy`,backToSettings:`Torna a Impostazioni`,createUser:`Crea utente`,noPermission:`Non hai il permesso di accedere a questa pagina.`,admin:`Amministratore`,noGroups:`Nessun gruppo`,active:`Attivo`,inactive:`Inattivo`,edit:`Modifica`,delete:`Elimina`,system:`Sistema`,noGroupsAvailable:`Nessun gruppo disponibile`,table:{username:`Nome utente`,groups:`Gruppi`,status:`Stato`,actions:`Azioni`},toast:{created:`Utente creato con successo`,updated:`Utente aggiornato con successo`,deleted:`Utente eliminato con successo`,fillRequired:`Compila tutti i campi obbligatori`,passwordsDoNotMatch:`Le password non coincidono`,passwordTooShort:`La password deve essere di almeno 6 caratteri`,ldapProvisioned:`Utente LDAP "{{username}}" provisionato`},modal:{createUser:`Crea utente`,editUser:`Modifica utente`,cancel:`Annulla`,creating:`Creazione...`,saving:`Salvataggio...`,saveChanges:`Salva modifiche`,advancedAuthSubtitle:`con autenticazione avanzata`,tabsAriaLabel:`Origine utente`,localTab:`Locale`,ldapTab:`LDAP`,ldapSearchLabel:`Cerca nella directory`,ldapSearchPlaceholder:`Digita un nome utente, nome o e-mail...`,ldapMinChars:`Digita almeno 2 caratteri per cercare`,ldapTypeToSearch:`Inizia a digitare per cercare nella directory LDAP`,ldapSearching:`Ricerca nella directory...`,ldapNoResults:`Nessun utente corrispondente nella directory`,ldapSearchError:`Ricerca nella directory fallita. Verifica lo stato del server LDAP.`,ldapAlreadyProvisioned:`Già provisionato`,ldapSelectedLabel:`Selezionato`,ldapProvision:`Provisiona utente`,ldapProvisioning:`Provisioning...`,ldapErrorProvision:`Provisioning fallito. Verifica lo stato del server LDAP e riprova.`},form:{username:`Nome utente`,usernamePlaceholder:`Inserisci nome utente`,email:`E-mail`,emailPlaceholder:`utente@esempio.com`,password:`Password`,passwordPlaceholder:`Inserisci password`,confirmPassword:`Conferma password`,confirmPasswordPlaceholder:`Conferma password`,newPasswordPlaceholder:`Inserisci nuova password`,confirmNewPasswordPlaceholder:`Conferma nuova password`,leaveBlankToKeep:`lascia vuoto per mantenere attuale`,groups:`Gruppi`,optional:`opzionale`,autoGeneratedPassword:`Una password sicura verrà generata automaticamente e inviata via email all'utente.`,passwordManagedByAdvancedAuth:`La password è gestita dall'autenticazione avanzata. Usa "Reimposta password" per inviare una nuova password all'utente via email.`,resetPassword:`Reimposta password`,resettingPassword:`Reimpostazione password...`},deleteModal:{title:`Elimina utente`,message:`Sei sicuro di voler eliminare questo utente? Questa azione non può essere annullata.`,confirm:`Elimina utente`}},streamOverlay:{title:`Overlay stream`,invalidPrinterId:`ID stampante non valido`,cameraStream:`Stream camera`,progress:`Avanzamento`,eta:`ETA`,printerIdle:`Stampante inattiva`,printerOffline:`Stampante offline`,status:{printing:`In stampa`,paused:`In pausa`,finished:`Completata`,failed:`Fallita`,idle:`Inattiva`,unknown:`Sconosciuto`}},profiles:{title:`Profili`,subtitle:`Gestisci preset slicer e calibrazioni pressure advance`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`Profili locali`,kprofiles:`Profili K`},orcaCloud:{connectedAs:`Connesso come`,connectedShort:`Connesso a Orca Cloud`,logout:`Disconnetti`,noLogoutPermission:`Non hai il permesso di disconnetterti`,noConnectPermission:`Non hai il permesso di connetterti a Orca Cloud`,retry:`Riprova`,connectButton:`Connetti Orca Cloud`,connect:{title:`Connetti a Orca Cloud`,description:`Accedi al tuo account Orca Cloud per sincronizzare i profili dello slicer in Bambuddy.`},device:{title:`Approva Bambuddy in Orca Cloud`,instruction:`Apri Orca Cloud e approva questo codice. Bambuddy si connette automaticamente non appena approvi.`,codeLabel:`Il tuo codice di associazione`,openButton:`Apri la pagina di approvazione di Orca Cloud`,manualHint:`Oppure vai su {{url}} e inserisci il codice qui sopra.`,waiting:`In attesa della tua approvazione…`,cancel:`Annulla`},profiles:{title:`I tuoi profili Orca Cloud ({{count}})`,refresh:`Aggiorna`,empty:`Nessun profilo trovato nel tuo account Orca Cloud.`},toast:{disconnected:`Disconnesso da Orca Cloud`},errors:{startFailed:`Impossibile avviare l'accesso a Orca Cloud.`,denied:`L'associazione è stata rifiutata in Orca Cloud.`,expired:`Il codice di associazione è scaduto. Fai clic su Connetti per riprovare.`,pollFailed:`Connessione persa durante l'attesa dell'approvazione. Riprova.`}},localProfiles:{title:`Profili locali`,subtitle:`Importa e gestisci preset slicer da OrcaSlicer`,import:`Importa profili`,importDesc:`Trascina file .bbscfg, .bbsflmt, .orca_filament, .zip o .json qui`,importing:`Importazione...`,search:`Cerca preset locali...`,noPresets:`Nessun preset locale ancora`,noSearchResults:`Nessun preset corrisponde alla ricerca`,badge:`Locale`,edit:`Modifica`,delete:`Elimina`,cancel:`Annulla`,deleteConfirmTitle:`Elimina preset`,deleteConfirm:`Sei sicuro di voler eliminare questo preset? Questa azione non può essere annullata.`,source:`Fonte`,inheritsFrom:`Eredita da`,filamentType:`Tipo`,vendor:`Produttore`,compatiblePrinters:`Stampanti`,nozzleTemp:`Temp. ugello`,cost:`Costo`,density:`Densità`,pressureAdvance:`Pressure Advance`,filament:`Filamento`,process:`Processo`,printer:`Stampante`,toast:{importSuccess:`{{count}} preset importati`,importSkipped:`{{count}} preset saltati (duplicati)`,importError:`{{count}} errori durante l'importazione`,deleted:`Preset eliminato`,updated:`Preset aggiornato`}},connectedAs:`Connesso come`,signInExpiredTitle:`Accesso a Bambu Cloud scaduto`,signInExpiredBody:`Bambu Lab non accetta più il token salvato. Accedi di nuovo per ripristinare i profili cloud, le importazioni da MakerWorld e i controlli del firmware.`,logout:`Esci`,noLogoutPermission:`Non hai il permesso di disconnetterti`,failedToLoad:`Caricamento profili fallito`,retry:`Riprova`,time:{justNow:`Proprio ora`,minsAgo:`{{count}}m fa`,hoursAgo:`{{count}}h fa`,daysAgo:`{{count}}g fa`},toast:{loggedOut:`Disconnesso`},login:{title:`Connetti a Bambu Cloud`,subtitle:`Sincronizza i preset del slicer tra dispositivi`,email:`E-mail`,password:`Password`,region:`Regione`,regionGlobal:`Globale`,regionChina:`Cina`,verificationCode:`Codice di verifica`,totpCode:`Codice autenticatore`,checkEmail:`Controlla la tua email ({{email}}) per un codice a 6 cifre`,enterTotpHint:`Inserisci il codice a 6 cifre dalla tua app autenticatore`,accessToken:`Token di accesso`,accessTokenHint:`Incolla il tuo access token Bambu Cloud. Gli account della regione Cina devono usare questa via (vincolati al numero di telefono — login via e-mail non disponibile). Il wiki spiega come recuperare il token dai cookie di MakerWorld.`,back:`Indietro`,loginButton:`Accedi`,verifyButton:`Verifica`,setTokenButton:`Imposta token`,useToken:`Usa access token invece`,useEmail:`Accedi con email invece`,toast:{loggedIn:`Accesso riuscito`,codeSent:`Codice di verifica inviato via email`,enterTotp:`Inserisci il codice dalla tua app autenticatore`,tokenSet:`Token impostato con successo`}},presets:{myPreset:`Il mio preset (modificabile)`,duplicate:`Duplica`,editable:`Modificabile`,failedToLoadDetails:`Caricamento dettagli preset fallito`,deleteConfirm:`Eliminare questo preset?`,deleteWarning:`Questo eliminerà definitivamente "{{name}}" da Bambu Cloud. Questa azione non può essere annullata.`,noDuplicatePermission:`Non hai il permesso di duplicare preset`,noEditPermission:`Non hai il permesso di modificare preset`,noDeletePermission:`Non hai il permesso di eliminare preset`,types:{filament:`Preset filamento`,printer:`Preset stampante`,process:`Preset processo`},toast:{deleted:`Preset eliminato`,created:`Preset creato`,updated:`Preset aggiornato`,duplicated:`Preset duplicato`,fieldAdded:`Campo "{{key}}" aggiunto`,exported:`Preset esportato`},baseLabel:`Base: {{name}}`,currentLabel:`Corrente: {{name}}`,newPreset:`Nuovo preset`,editPreset:`Modifica preset`,duplicatePreset:`Duplica preset`,createNewPreset:`Crea nuovo preset`,customizeSettings:`Personalizza le impostazioni per il nuovo preset`,compareWithBase:`Confronta con base`,compare:`Confronta`,basePreset:`Preset base`,selectBasePreset:`Seleziona preset base...`,presetName:`Nome preset`,myCustomPreset:`Il mio preset personalizzato`,inheritsFrom:`Deriva da`,dropJsonToImport:`Rilascia JSON per importare`,tabs:{common:`Comune`,allFields:`Tutti i campi`},availableFields:`Campi disponibili`,searchFieldsPlaceholder:`Cerca campi...`,noMatchingFields:`Nessun campo corrispondente`,allFieldsAdded:`Tutti i campi aggiunti`,addCustomField:`Aggiungi campo personalizzato`,yourOverrides:`Le tue override`,noOverridesYet:`Nessun override ancora`,clickFieldsToAdd:`Clicca i campi a sinistra per aggiungerli`,saveAsTemplate:`Salva come template`,jsonTip:`Suggerimento: trascina e rilascia un file .json ovunque in questa modale per importare impostazioni`},cloudView:{searchPlaceholder:`Cerca preset...`,templates:`Template`,refresh:`Aggiorna`,newPreset:`Nuovo preset`,clearFilters:`Pulisci filtri`,compareMode:`Modalita confronto`,selectAnotherPreset:`Seleziona un altro preset {{type}}`,clickTwoPresets:`Clicca due preset dello stesso tipo per confrontare`,selectFirst:`1. Seleziona il primo`,selectSecond:`2. Seleziona il secondo`,compareNow:`Confronta ora`,lastSynced:`Ultima sincronizzazione:`,showingCount:`Mostrati {{showing}} di {{total}} preset`,noPresetsFound:`Nessun preset trovato`,columns:{filament:`Filamento`,process:`Processo`,printer:`Stampante`},noFilamentPresets:`Nessun preset filamento`,noProcessPresets:`Nessun preset processo`,noPrinterPresets:`Nessun preset stampante`,filters:{type:`Tipo`,owner:`Proprietario`,printer:`Stampante`,nozzle:`Ugello`,filament:`Filamento`,layer:`Layer`,all:`Tutti`,myPresets:`I miei preset`,builtIn:`Integrati`,process:`Processo`},noTemplatesPermission:`Non hai il permesso di gestire i template`,noRefreshPermission:`Non hai il permesso di aggiornare i profili`,noCreatePermission:`Non hai il permesso di creare preset`},templates:{title:`Template rapidi`,noTemplates:`Nessun template ancora`,createFirst:`Crea template dall'editor preset`,typeFilter:`Tipo:`,deleteTitle:`Elimina template`,deleteWarning:`Questa azione non può essere annullata`,deleteConfirm:`Sei sicuro di voler eliminare "{{name}}"?`,namePlaceholder:`Nome template`,descriptionPlaceholder:`Descrizione`,settingsJson:`Impostazioni (JSON)`,fieldsCount:`{{count}} campi`,shownInModals:`Mostrati nelle modali`,hiddenInModals:`Nascosti nelle modali`,apply:`Applica`,toast:{deleted:`Template eliminato`,updated:`Template aggiornato`,created:`Template creato`,applied:`Template applicato`}}},support:{debugLoggingActive:`Log debug attivo`,manageLogs:`Gestisci`,collectItem7:`Connettività stampante e versioni firmware`,collectItem8:`Stato integrazioni (Spoolman, MQTT, HA)`,collectItem9:`Interfacce di rete (solo subnet)`,collectItem10:`Versioni dei pacchetti Python`,collectItem11:`Controlli di integrità del database`,collectItem12:`Dettagli dell'ambiente Docker`,bundleGenerating:`Generazione del pacchetto...`,bundleStepConnection:`Controlli di connettività delle stampanti in corso`,bundleStepVirtualPrinters:`Controlli di configurazione delle stampanti virtuali in corso`,bundleStepLogScan:`Analisi dei log recenti per problemi noti`,bundleStepBuild:`Creazione dello ZIP del pacchetto di supporto`},fileManager:{title:`Gestore file`,subtitle:`Organizza e gestisci i tuoi file di stampa`,uploadFiles:`Carica file`,newFolder:`Nuova cartella`,folderName:`Nome cartella`,folderNamePlaceholder:`es., Parti funzionali`,renameFile:`Rinomina file`,renameFolder:`Rinomina cartella`,invalidFilenameChar:`Il carattere "{{char}}" non è consentito nei nomi dei file di stampa. La scheda SD della stampante rifiuta: < > : " / \\ | ? *`,moveFiles:`Sposta {{count}} file`,rootNoFolder:`Root (nessuna cartella)`,current:`corrente`,linkFolder:`Collega cartella`,linkFolderDescription:`Collega "{{name}}" a un progetto o archivio per accesso rapido.`,project:`Progetto`,archive:`Archivio`,noProjectsFound:`Nessun progetto trovato`,noArchivesFound:`Nessun archivio trovato`,unlink:`Scollega`,link:`Collega`,dragDropFiles:`Trascina e rilascia file qui`,dropFilesHere:`Rilascia file qui`,releaseToUpload:`Rilascia per caricare`,orClickToBrowse:`oppure clicca per sfogliare`,allFileTypesSupported:`Tutti i tipi di file supportati. I file ZIP saranno estratti.`,zipFilesDetected:`File ZIP rilevati`,zipExtractOptions:`I file ZIP saranno estratti. Scegli come gestire la struttura cartelle:`,preserveZipStructure:`Mantieni struttura cartelle dal ZIP`,createFolderFromZip:`Crea cartella dal nome ZIP`,stlThumbnailGeneration:`Generazione miniature STL`,zipMayContainStl:`I file ZIP possono contenere STL. Le miniature possono essere generate durante l'estrazione.`,thumbnailsCanBeGenerated:`Le miniature possono essere generate per file STL. I modelli grandi possono richiedere più tempo.`,generateThumbnailsForStl:`Genera miniature per file STL`,threemfDetected:`File 3MF rilevati`,threemfExtractionInfo:`Modello stampante, materiale, colore e impostazioni stampa saranno estratti automaticamente dai file 3MF.`,willBeExtracted:`Sara estratto`,filesExtracted:`{{count}} file estratti`,uploadComplete:`Caricamento completato: {{succeeded}} riusciti`,uploadFailed:`Caricamento fallito`,zipFilesFailed:`{{count}} file falliti`,uploading:`Caricamento...`,changeLink:`Cambia collegamento...`,linkTo:`Collega a...`,linkToProjectOrArchive:`Collega a progetto o archivio`,generateThumbnail:`Genera miniatura`,generateThumbnails:`Genera miniature`,generateThumbnailsForMissing:`Genera miniature per STL senza miniatura`,gridView:`Vista griglia`,listView:`Vista elenco`,lowDiskSpaceWarning:`Avviso spazio disco basso`,lowDiskSpaceDetails:`Solo {{free}} liberi su {{total}} totali. La soglia e {{threshold}} GB nelle impostazioni.`,files:`File`,folders:`Cartelle`,size:`Dimensione`,free:`Libero`,allFiles:`Tutti i file`,allExternal:`Esterni`,externalIsEmpty:`Nessun file esterno`,externalEmptyDescription:`I file delle tue cartelle esterne collegate appariranno qui.`,wrap:`A capo`,enableTextWrapping:`Abilita a capo testo`,disableTextWrapping:`Disabilita a capo testo`,collapse:`Comprimi`,collapseFoldersByDefault:`Comprimi le cartelle per impostazione predefinita`,expandFoldersByDefault:`Espandi le cartelle per impostazione predefinita`,folderSort:`Ordina cartelle`,folderSortByName:`Per nome`,folderSortByActivity:`Per attività recente`,dragToResizeTooltip:`Trascina per ridimensionare, doppio clic per reset`,searchFiles:`Cerca file...`,searchSubfoldersHint:`Sottocartelle incluse`,readme:{truncated:`Troncato`,show:`Mostra README`,hide:`Nascondi README`,label:`README`},tags:{title:`Etichette`,subtitle:`Etichetta i file per filtri trasversali — giocattoli, sicuri per bambini, solo PETG, qualunque cosa serva.`,manage:`Etichette`,manageTitle:`Gestisci il catalogo delle etichette`,add:`Nuova etichetta`,edit:`Rinomina etichetta`,name:`Nome`,fileCount:`File`,empty:`Nessuna etichetta. Creane una per iniziare.`,noMatches:`Nessuna etichetta corrispondente.`,createPlaceholder:`es. giocattoli, sicuro-bimbi, petg`,createButton:`Crea`,nameRequired:`Il nome è obbligatorio.`,searchPlaceholder:`Filtra etichette...`,created:`Etichetta creata.`,updated:`Etichetta rinominata.`,deleted:`Etichetta rimossa.`,saveFailed:`Impossibile salvare l'etichetta.`,deleteFailed:`Impossibile rimuovere l'etichetta.`,applyFailed:`Impossibile applicare le etichette.`,applyAdd:`Aggiungi etichette`,applyRemove:`Rimuovi etichette`,applyAddSuccess:`Aggiunte {{count}} etichetta/e su {{files}} file.`,applyRemoveSuccess:`Rimosse {{count}} etichetta/e da {{files}} file.`,actionAdd:`Aggiungi ai file selezionati`,actionRemove:`Rimuovi dai file selezionati`,tagAction:`Etichetta`,bulkTitle:`Etichetta {{count}} file selezionato/i`,bulkTooltip:`Aggiungi o rimuovi etichette su ogni file selezionato.`,noPermission:`Non hai il permesso per etichettare i file.`,filterLabel:`Filtraggio per:`,clearAll:`Pulisci tutto`,confirmDelete:`Eliminare l'etichetta "{{name}}"?`,confirmDeleteMessage:`Rimuove l'etichetta dal catalogo. I file mantengono le altre etichette.`,confirmDeleteInUseMessage:`Questa etichetta è su {{count}} file. L'eliminazione la rimuove da tutti; i file non vengono toccati.`,editAria:`Modifica {{name}}`,deleteAria:`Elimina {{name}}`},allTypes:`Tutti i tipi`,prints:`Stampe`,ascending:`Crescente`,descending:`Decrescente`,showModified:`Mostra date di modifica`,hideModified:`Nascondi date di modifica`,lastModified:`Ultima modifica`,lastActivity:`Ultima attività`,resultsCount:`{{showing}} di {{total}} file`,selectAll:`Seleziona tutto`,deselectAll:`Deseleziona tutto`,selected:`{{count}} selezionati`,adding:`Aggiunta...`,loadingFiles:`Caricamento file...`,folderIsEmpty:`La cartella e vuota`,noFilesYet:`Nessun file ancora`,folderEmptyDescription:`Carica file o sposta file in questa cartella per iniziare.`,noFilesDescription:`Carica file per iniziare a organizzare i file di stampa.`,noMatchingFiles:`Nessun file corrispondente`,noMatchingFilesDescription:`Nessun file corrisponde ai criteri di ricerca o filtro.`,clearFilters:`Pulisci filtri`,printedCount:`Stampato {{count}}x`,uploadedBy:`Caricato da`,deleteFolder:`Elimina cartella`,deleteFile:`Elimina file`,deleteFilesCount:`Elimina {{count}} file`,deleteFolderConfirm:`Sei sicuro di voler eliminare questa cartella? Tutti i file dentro saranno eliminati.`,deleteFileConfirm:`Sei sicuro di voler eliminare questo file?`,deleteFilesConfirm:`Sei sicuro di voler eliminare {{count}} file selezionati? Questa azione non può essere annullata.`,deleting:`Eliminazione...`,noPermissionRenameFolder:`Non hai il permesso di rinominare cartelle`,noPermissionLinkFolder:`Non hai il permesso di collegare cartelle`,noPermissionDeleteFolder:`Non hai il permesso di eliminare cartelle`,onlyEmptyFoldersDeletable:`Puoi eliminare solo cartelle vuote`,noPermissionPrint:`Non hai il permesso di stampare`,noPermissionSlice:`Non hai il permesso di sezionare i file`,noPermissionAddToQueue:`Non hai il permesso di aggiungere alla coda`,noPermissionDownload:`Non hai il permesso di scaricare file`,noPermissionRenameFile:`Non hai il permesso di rinominare questo file`,noPermissionGenerateThumbnail:`Non hai il permesso di generare miniature`,noPermissionDeleteFile:`Non hai il permesso di eliminare questo file`,noPermissionCreateFolder:`Non hai il permesso di creare cartelle`,noPermissionUpload:`Non hai il permesso di caricare file`,noPermissionMoveFiles:`Non hai il permesso di spostare file`,noPermissionDeleteFiles:`Non hai il permesso di eliminare file`,linkExternal:`Collega esterno`,linkExternalFolder:`Collega cartella esterna`,linkExternalFolderDescription:`Monta una directory host (NAS, USB, condivisione di rete) nel File Manager. I file non vengono copiati — vengono letti direttamente dal percorso originale.`,externalFolderNamePlaceholder:`es. Stampe NAS`,externalPath:`Percorso host`,externalPathHelp:`Percorso assoluto della directory sull'host Docker. Deve essere montato come bind nel container.`,readOnly:`Sola lettura`,readOnlyHelp:`impedisce caricamenti e cancellazioni`,showHiddenFiles:`Mostra file nascosti (file punto)`,externalFolder:`Cartella esterna`,scanFolder:`Scansiona`,toast:{folderCreated:`Cartella creata`,folderDeleted:`Cartella eliminata`,fileDeleted:`File eliminato`,filesDeleted:`Eliminati {{count}} file`,filesMoved:`File spostati`,folderLinked:`Cartella collegata`,folderUnlinked:`Cartella scollegata`,externalFolderLinked:`Cartella esterna collegata e scansionata`,folderScanned:`Scansione completata: {{added}} aggiunti, {{removed}} rimossi`,addedToQueue:`Aggiunti {{count}} file alla coda`,addedToQueuePartial:`Aggiunti {{added}} file, {{failed}} falliti`,failedToAddToQueue:`Aggiunta file fallita: {{error}}`,fileRenamed:`File rinominato`,folderRenamed:`Cartella rinominata`,thumbnailsGenerated:`Generate {{count}} miniature`,thumbnailsGeneratedPartial:`Generate {{succeeded}} miniature, {{failed}} fallite`,noStlMissingThumbnails:`Nessun file STL senza miniature`,failedToGenerateThumbnails:`Generazione miniature fallita: {{error}}`,thumbnailGenerated:`Miniatura generata`,failedToGenerateThumbnail:`Generazione miniatura fallita: {{error}}`}},projects:{title:`Progetti`,subtitle:`Organizza e traccia i tuoi progetti di stampa 3D`,newProject:`Nuovo progetto`,editProject:`Modifica progetto`,deleteProject:`Elimina progetto`,projectName:`Nome progetto`,description:`Descrizione`,noProjects:`Nessun progetto ancora`,noProjectsFiltered:`Nessun progetto {{status}}`,noProjectsFilteredHelp:`Non hai progetti {{status}}. I progetti appariranno qui quando il loro stato cambia.`,createFirst:`Crea il tuo primo progetto per organizzare stampe correlate, tracciare progressi e gestire i tuoi build.`,createFirstButton:`Crea il tuo primo progetto`,create:`Crea`,files:`File`,prints:`Stampe`,plates:`piatti`,parts:`parti`,lastModified:`Ultima modifica`,deleteConfirm:`Sei sicuro di voler eliminare questo progetto? Archivi e elementi in coda saranno scollegati ma non eliminati.`,addFiles:`Aggiungi file`,removeFile:`Rimuovi file`,viewDetails:`Vedi dettagli`,namePlaceholder:`es., Build Voron 2.4`,descriptionPlaceholder:`Descrizione opzionale...`,urlLabel:`URL`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`L'URL deve iniziare con http:// o https://`,openExternalUrl:`Apri URL del progetto`,coverImageLabel:`Immagine di copertina`,coverImageAlt:`Immagine di copertina del progetto`,coverImageUpload:`Carica`,coverImageReplace:`Sostituisci`,coverImageRemove:`Rimuovi`,color:`Colore`,targetPlates:`Piatti target`,targetPlatesPlaceholder:`es., 25`,targetPlatesHelp:`Numero di job di stampa`,targetParts:`Parti target`,targetPartsPlaceholder:`es., 150`,targetPartsHelp:`Totale oggetti necessari`,targetSets:`Copie per file`,targetSetsPlaceholder:`es. 10`,targetSetsHelp:`Quante volte stampare ogni file stampabile`,tagsLabel:`Tag (separati da virgola)`,tagsPlaceholder:`es., voron, funzionale, regalo`,dueDate:`Data scadenza`,priority:`Priorita`,priorityLow:`Bassa`,priorityNormal:`Normale`,priorityHigh:`Alta`,priorityUrgent:`Urgente`,statusActive:`Attivo`,statusCompleted:`Completato`,statusArchived:`Archiviato`,done:`Fatto`,completed:`completato`,failed:`fallito`,inQueue:`in coda`,noPrintsYet:`Nessuna stampa ancora`,printJobs:`Job di stampa (piatti)`,partsPrinted:`Parti stampate`,failedParts:`Parti fallite`,import:`Importa`,export:`Esporta`,importProject:`Importa progetto`,exportAll:`Esporta tutti i progetti`,loading:`Caricamento progetti...`,noEditPermission:`Non hai il permesso di modificare progetti`,noDeletePermission:`Non hai il permesso di eliminare progetti`,noCreatePermission:`Non hai il permesso di creare progetti`,noImportPermission:`Non hai il permesso di importare progetti`,noExportPermission:`Non hai il permesso di esportare progetti`,toast:{created:`Progetto creato`,updated:`Progetto aggiornato`,deleted:`Progetto eliminato`,imported:`Progetto importato`,multipleImported:`{{count}} progetti importati`,importFailed:`Import fallito`,exported:`Progetti esportati (solo metadati)`}},projectDetail:{notFound:`Progetto non trovato`,backToProjects:`Torna a Progetti`,export:`Esporta`,exportProject:`Esporta progetto`,noExportPermission:`Non hai il permesso di esportare progetti`,noEditPermission:`Non hai il permesso di modificare progetti`,partOf:`Parte di:`,priorityLabel:`Priorita:`,noPrints:`Nessuna stampa in questo progetto ancora`,status:{active:`Attivo`,completed:`Completato`,archived:`Archiviato`},priority:{low:`Bassa`,normal:`Normale`,high:`Alta`,urgent:`Urgente`},dueDate:{overdue:`Scaduto`,today:`Scade oggi`,daysLeft:`{{count}} giorni rimanenti`},progress:{platesProgress:`Avanzamento piatti`,partsProgress:`Avanzamento parti`,setsProgress:`Set completi`,sets:`set`,setsHint:`Un set è completo quando ogni file stampabile raggiunge questo numero`,printJobs:`job di stampa`,parts:`parti`,percentComplete:`{{percent}}% completato`,remaining:`{{count}} rimanenti`},stats:{printJobs:`Job di stampa`,total:`totale`,failed:`{{count}} falliti`,partsPrinted:`{{count}} parti stampate`,printTime:`Tempo di stampa`,filamentUsed:`Filamento usato`},cost:{title:`Tracciamento costi`,filamentCost:`Costo filamento`,energy:`Energia`,totalCost:`Costo totale`,total:`Totale`,includesBom:`incl. distinta materiali`,budget:`Budget`,remaining:`Rimanente`},subProjects:{title:`Sotto-progetti ({{count}})`},notes:{title:`Note`,noEditPermission:`Non hai il permesso di modificare le note`,placeholder:`Aggiungi note su questo progetto...`,empty:`Nessuna nota ancora. Clicca Modifica per aggiungere note.`},files:{title:`File`,linkFolders:`Collega cartelle dal Gestore file`,forQuickAccess:`a questo progetto per accesso rapido.`,fileCount:`{{count}} file`,empty:`Nessuna cartella collegata. Vai a Gestore file e collega una cartella a questo progetto.`,printedCount:`Stampato {{count}} volte`,progressTooltip:`{{done}} di {{target}} stampe completate`,noFiles:`Nessun file in questa cartella.`},bom:{title:`Distinta materiali`,acquired:`{{completed}}/{{total}} acquisiti`,showAll:`Mostra tutti`,hideDone:`Nascondi completati`,addPart:`Aggiungi parte`,noAddPermission:`Non hai il permesso di aggiungere parti`,partNamePlaceholder:`Nome parte (es., viti M3x8)`,partName:`Nome parte`,qty:`Qta`,price:`Prezzo ({{currency}})`,sourcingUrlPlaceholder:`URL fornitura (opzionale)`,remarksPlaceholder:`Note (opzionale)`,deletePart:`Elimina parte`,deleteConfirm:`Sei sicuro di voler eliminare "{{name}}"?`,noUpdatePermission:`Non hai il permesso di aggiornare parti`,noEditPermission:`Non hai il permesso di modificare parti`,noDeletePermission:`Non hai il permesso di eliminare parti`,totalCost:`Costo totale:`,empty:`Nessuna parte nella distinta materiali. Aggiungi hardware, elettronica o altri componenti da reperire.`},timeline:{title:`Timeline attivita`,empty:`Nessuna attivita ancora.`},template:{saveAsTemplate:`Salva come template`,noCreatePermission:`Non hai il permesso di creare template`},queue:{title:`Coda`,viewAll:`Vedi tutto`,printing:`{{count}} in stampa`,queued:`{{count}} in coda`},prints:{title:`Stampe ({{count}})`},toast:{projectUpdated:`Progetto aggiornato`,partAdded:`Parte aggiunta`,partRemoved:`Parte rimossa`,exportFailed:`Export fallito`,projectExported:`Progetto esportato`,templateCreated:`Template creato`}},system:{title:`Informazioni sistema`,version:`Versione`,uptime:`Tempo attivo`,cpuUsage:`Uso CPU`,memoryUsage:`Uso memoria`,diskUsage:`Uso disco`,networkInfo:`Info rete`,logs:`Log`,debugMode:`Modalita debug`,enableDebug:`Abilita log debug`,disableDebug:`Disabilita log debug`,downloadLogs:`Scarica log`,clearLogs:`Cancella log`,dockerInfo:`Info Docker`,containerName:`Nome container`,imageName:`Nome immagine`,platform:`Piattaforma`,architecture:`Architettura`},sponsors:{sectionTitle:`Indipendente e finanziato dalla community`,tagline:`Bambuddy è gratuito e resta tale perché qualcuno sceglie di sostenerlo. Niente VC, niente lock-in cloud.`,viewSupporters:`Vedi i sostenitori`,toastPrints:`Hai completato {{count}} stampe con Bambuddy. Bambuddy resta gratuito grazie a chi lo sostiene.`,toastCost:`Hai monitorato {{total}} di filamento con Bambuddy. Scopri chi mantiene il progetto indipendente.`,toastArchives:`{{count}} stampe archiviate con Bambuddy. Scopri chi lo mantiene indipendente.`,toastAnniversary:`Un anno con Bambuddy! Scopri chi mantiene il progetto indipendente.`,toastVersionUpdate:`Aggiornato a v{{version}}. Bambuddy resta gratuito grazie a chi lo sostiene.`,toastBusiness:`Usi Bambuddy su {{count}} stampanti? Esiste un piano di supporto per i team: correzioni prioritarie, fatturazione e un contatto diretto con il manutentore.`,businessCta:`Bambuddy per le aziende`,businessTitle:`Bambuddy per le aziende`,businessTagline:`Stai gestendo {{count}} stampanti. Supporto prioritario, licenze commerciali e fatturazione sono disponibili per team e farm di stampa.`},library:{title:`Libreria filamenti`,addFilament:`Aggiungi filamento`,editFilament:`Modifica filamento`,deleteFilament:`Elimina filamento`,vendor:`Produttore`,material:`Materiale`,color:`Colore`,kFactor:`Fattore K`,temperature:`Temperatura`,noFilaments:`Nessun filamento in libreria`,deleteConfirm:`Sei sicuro di voler eliminare questo filamento?`,importFromPrinter:`Importa da stampante`,exportToFile:`Esporta su file`,runWithPipeline:{actionLabel:`Esegui con pipeline`,noPermission:`Non hai il permesso di eseguire pipeline`,modalTitle:`Esegui con pipeline`,confirmTitle:`Conferma esecuzione`,confirmIntro:`Il pre-volo ha trovato problemi con questa esecuzione`,sourceHint:`Sorgente`,pipelineHint:`Pipeline`,targetHint:`Destinazione`,pipelineListAria:`Pipeline disponibili`,runAnyway:`Esegui comunque`,loading:`Caricamento…`,empty:`Nessuna pipeline salvata. Apri il dialogo Slice e fai clic su "Salva come pipeline" per crearne una.`,noTarget:`Nessuna stampante di destinazione`,noTargetMessage:`Questa pipeline non ha una stampante di destinazione. Aprila nelle Impostazioni per sceglierne una.`,copies:`Copie`,copiesHint:`max {{n}}`,classTarget:`Qualsiasi {{model}}`,toast:{started:`Esecuzione della pipeline avviata`,failed:`Impossibile avviare l'esecuzione`},issue:{printerNotSet:`Nessuna stampante di destinazione su questa pipeline.`,printerNotFound:`La stampante di destinazione non esiste più.`,printerDisabled:`La stampante di destinazione è disabilitata.`,printerOffline:`La stampante di destinazione è offline.`,filamentType:`Slot filamento {{slot}}: atteso {{expected}}, AMS ha {{actual}}`,filamentColor:`Slot filamento {{slot}}: colore differente (atteso {{expected}}, AMS ha {{actual}})`,amsSlotMissing:`Slot AMS {{slot}} non disponibile su questa stampante`,filamentUnverified:`Lo slot filamento {{slot}} proviene da un preset cloud / standard e non può essere verificato staticamente.`,noClassMatches:`Nessuna stampante in questa installazione corrisponde alla classe di modello target della pipeline ({{expected}}).`,classNotSet:`La destinazione della pipeline è una classe di stampante ma nessun modello è stato scelto.`}}},slice:{title:`Slicing modello`,action:`Slice`,actionAll:`Slicia tutti i {{count}} piatti`,actionAllTitle:`Slicia tutti i piatti in un unico output multi-piatto (un solo archivio). La selezione del filamento copre ogni slot definito dal progetto.`,allPlatesToggle:`Slicia tutti i {{count}} piatti`,slicing:`Slicing…`,printer:`Profilo stampante`,process:`Profilo processo`,filament:`Profilo filamento`,filamentSlot:`Filamento {{index}} ({{type}})`,selectPreset:`— Seleziona un preset —`,loadingPresets:`Caricamento preset…`,analyzingPlateFilaments:`Analisi filamenti del piano…`,analyzingPlateFilamentsHint:`Slicing di anteprima per scoprire quali slot AMS usa questo piano. In cache dopo — la riapertura è istantanea.`,previewToast:`Analisi di {{name}} – {{elapsed}}`,previewWithProgress:`Analisi di {{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,notUsedByPlate:`— non usato da questo piano`,noPresetsForSlot:`Nessun preset disponibile`,otherPrinters:`Altre stampanti`,presetsLoadFailed:`Caricamento preset fallito. Apri Impostazioni → Profili per importarli prima.`,refreshPresets:`Aggiorna`,refreshPresetsTitle:`Aggiorna i preset — recupera gli elenchi più recenti dal cloud e dai bundle (da usare dopo aver eliminato un preset in Bambu Studio o Bambu Handy)`,allPresetsRequired:`Tutti i preset devono essere selezionati`,useEmbedded:`Usa le impostazioni integrate del file`,useEmbeddedHint:`Slicia come impostato dal designer (pareti, riempimento, filamento) invece dei profili sopra. Disponibile perché la tua stampante corrisponde a quella del file.`,designSettings:`Mantieni le impostazioni del progettista`,designSettingsHint:`Questo file modifica {{count}} impostazione/i di stampa rispetto al profilo standard.`,designSettingsSelected:`{{selected}} di {{total}} selezionate`,designSettingsPrinterCoupled:`specifico della stampante`,designSettingsPrinterCoupledHint:`Tarato per la stampante per cui è stato progettato il file: sulla tua può essere errato o fuori intervallo.`,enqueuing:`Invio lavoro di slicing…`,queued:`In coda…`,failed:`Slicing fallito. Controlla i log del sidecar.`,startedToast:`Slicing di {{name}} in background…`,queuedToast:`In coda: {{name}} – {{elapsed}}`,runningToast:`Slicing {{name}} – {{elapsed}}`,runningWithProgress:`{{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,runningWithProgressMultiPlate:`Piatto {{plateIndex}} di {{plateCount}} • {{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,completedToast:`{{name}} sezionato`,failedTitle:`Slicing fallito`,failedToast:`Slicing di {{name}} fallito: {{detail}}`,tier:{local:`Importato`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`Standard`},cloud:{notAuthenticated:`Accedi a Bambu Cloud (Impostazioni → Profili → Bambu Cloud) per vedere i preset cloud.`,expired:`Sessione Bambu Cloud scaduta – accedi di nuovo per aggiornare i preset cloud.`,unreachable:`Bambu Cloud non è raggiungibile. I preset locali e standard funzionano ancora.`},orcaCloud:{notAuthenticated:`Accedi a Orca Cloud (Profili → Orca Cloud) per vedere i tuoi preset Orca.`,expired:`Sessione Orca Cloud scaduta — accedi di nuovo per aggiornare i tuoi preset Orca.`,unreachable:`Orca Cloud non è raggiungibile in questo momento. Gli altri preset continuano a funzionare.`},bedType:{label:`Piano di stampa`,auto:`Auto (usa preset di processo)`,coolPlate:`Cool Plate`,coolPlateSuperTack:`Cool Plate SuperTack`,engineering:`Engineering Plate`,highTemp:`High Temp Plate`,texturedPEI:`Textured PEI Plate`,smoothPEI:`Smooth PEI Plate`},pipelines:{label:`Pipeline`,applyAria:`Applica pipeline`,applyPrompt:`Applica pipeline…`,empty:`Nessuna pipeline salvata`,saveButton:`Salva come pipeline`,saveTitle:`Salva la selezione corrente di tutti e quattro gli slot come pipeline riutilizzabile`,namePlaceholder:`Nome pipeline`,nameAria:`Nome nuova pipeline`,toast:{applied:`"{{name}}" applicata`,saved:`Pipeline salvata`,saveFailed:`Salvataggio non riuscito`}}},spoolman:{title:`Integrazione Spoolman`,enabled:`Spoolman abilitato`,url:`URL Spoolman`,connected:`Connesso`,disconnected:`Non connesso`,testConnection:`Testa connessione`,sync:`Sincronizza`,syncing:`Sincronizzazione...`,lastSync:`Ultima sincronizzazione`,linkToSpoolman:`Collega a Spoolman`,openInSpoolman:`Apri in Spoolman`,unlinkSpool:`Scollega bobina`,unlinkConfirmTitle:`Rimuovere bobina?`,unlinkConfirmMessage:`Questo rimuoverà la bobina da questo slot. I dati della bobina stessa rimarranno invariati.`,selectSpool:`Seleziona bobina`,noUnlinkedSpools:`Nessuna bobina disponibile`,linkSuccess:`Bobina assegnata con successo`,linkFailed:`Impossibile assegnare la bobina`,unlinkSuccess:`Bobina rimossa con successo`,unlinkFailed:`Impossibile rimuovere la bobina`,linkedSpool:`Bobina assegnata`,spoolId:`ID bobina`,fillSourceLabel:`(Spoolman)`,weight:`Peso`,remaining:`Rimanente`,disableWeightSync:`Disabilita sync peso stimato AMS`,disableWeightSyncDesc:`Non aggiornare la capacità rimanente dalle stime AMS. Usalo se preferisci il tracciamento di Spoolman rispetto alle stime AMS. Le nuove bobine useranno comunque la stima AMS come peso iniziale.`,reportPartialUsage:`Segnala uso parziale per stampe fallite`,reportPartialUsageDesc:`Quando una stampa fallisce o viene annullata, segnala il filamento stimato usato fino a quel punto in base all'avanzamento layer.`},locations:{title:`Ubicazioni di stoccaggio`,subtitle:`Gestisci scaffali, cassetti e altri posti fisici per le bobine`,add:`Aggiungi ubicazione`,addShort:`Aggiungi`,edit:`Modifica ubicazione`,name:`Nome`,spools:`Bobine`,empty:`Nessuna ubicazione di stoccaggio. Crea il tuo primo scaffale o cassetto.`,manage:`Ubicazioni`,createPlaceholder:`es. Scaffale A, Cassetto 1`,nameRequired:`Il nome dell'ubicazione è obbligatorio`,created:`Ubicazione creata`,updated:`Ubicazione aggiornata`,deleted:`Ubicazione eliminata`,saveFailed:`Impossibile salvare l'ubicazione`,deleteFailed:`Impossibile eliminare l'ubicazione`,deleteBlocked:`Rimuovi prima tutte le bobine da questa ubicazione`,confirmDelete:`Eliminare «{{name}}»?`,confirmDeleteMessage:`Questa ubicazione verrà rimossa dal catalogo. Sposta prima le bobine.`},inventory:{title:`Inventario Bobine`,subtitle:`Gestisci le tue bobine`,addToInventory:`Aggiungi all'inventario`,addToInventoryPending:`Aggiunta in corso...`,addToInventorySuccess:`Bobina aggiunta all'inventario`,addToInventoryFailed:`Aggiunta della bobina all'inventario non riuscita`,unknownSpoolTitle:`Nuovo filamento rilevato`,unknownSpoolMessage:`È stata rilevata una bobina con tag RFID sconosciuto in {{location}}. Aggiungerla all'inventario ora?`,unknownSpoolSlot:`Slot`,bulk:{selectAllVisible:`Seleziona tutto il visibile`,selectRow:`Seleziona riga`,selectGroup:`Seleziona gruppo`,selectionCount:`{{count}} selezionate`,edit:`Modifica`,printLabels:`Stampa etichette`,resetUsage:`Reimposta utilizzo`,restore:`Ripristina`,archive:`Archivia`,delete:`Elimina`,clearSelection:`Cancella selezione`,editTitle:`Modifica bobine in blocco`,editSubtitle:`Si applica a {{count}} bobine selezionate. Vengono aggiornati solo i campi spuntati.`,editHint:`Digita in un campo per contrassegnarlo per l'aggiornamento — vengono inviate solo le righe spuntate. Un campo vuoto lascia le bobine invariate (svuotare un campo si fa per singola bobina).`,useCustom:`Usa "{{value}}"`,toggleField:`Attiva l'aggiornamento per questo campo`,changeCount:`{{count}} campi verranno aggiornati.`,applyPending:`Applicazione in corso...`,applyButton:`Applica a {{count}} bobine`,deleteTitle:`Elimina bobine selezionate`,archiveTitle:`Archivia bobine selezionate`,restoreTitle:`Ripristina bobine selezionate`,resetUsageTitle:`Reimposta utilizzo delle bobine selezionate`,deleteMessage:`Eliminare definitivamente {{count}} bobine? L'operazione non può essere annullata.`,archiveMessage:`Archiviare {{count}} bobine? Possono essere ripristinate in seguito.`,restoreMessage:`Ripristinare {{count}} bobine archiviate?`,resetUsageMessage:`Reimpostare il contatore "Totale consumato" su {{count}} bobine? Il peso rimanente viene preservato.`,updateSuccess:`{{count}} bobine aggiornate`,updateFailed:`Aggiornamento in blocco fallito`,updatePartial:`{{ok}} bobine aggiornate, {{failed}} fallite`,updateAllFailed:`Tutti i {{count}} aggiornamenti sono falliti — la selezione viene mantenuta per riprovare`,deleteSuccess:`{{count}} bobine eliminate`,deleteFailed:`Eliminazione in blocco fallita`,deletePartial:`{{ok}} bobine eliminate, {{failed}} fallite`,deleteAllFailed:`Tutte le {{count}} eliminazioni sono fallite — la selezione viene mantenuta per riprovare`,archiveSuccess:`{{count}} bobine archiviate`,archiveFailed:`Archiviazione in blocco fallita`,archivePartial:`{{ok}} bobine archiviate, {{failed}} fallite`,archiveAllFailed:`Tutte le {{count}} archiviazioni sono fallite — la selezione viene mantenuta per riprovare`,restoreSuccess:`{{count}} bobine ripristinate`,restoreFailed:`Ripristino in blocco fallito`,restorePartial:`{{ok}} bobine ripristinate, {{failed}} fallite`,restoreAllFailed:`Tutti i {{count}} ripristini sono falliti — la selezione viene mantenuta per riprovare`,invalidHex:`Inserisci 6 caratteri esadecimali (RRGGBB) o 8 (RRGGBBAA). Altrimenti il campo non verrà applicato.`},spoolmanMixedContentTitle:`Spoolman non può essere caricato tramite HTTPS — contenuto misto bloccato dal browser`,spoolmanMixedContentBody:`Bambuddy viene servito tramite HTTPS (dietro il tuo reverse proxy), ma l'URL di Spoolman è ancora HTTP. I browser bloccano il contenuto misto per motivi di sicurezza, quindi l'interfaccia Spoolman incorporata non può essere visualizzata. Anche Spoolman deve essere raggiungibile via HTTPS.`,spoolmanMixedContentFixReverseProxy:`Metti Spoolman dietro lo stesso reverse proxy di Bambuddy (Traefik / Nginx / Caddy) in HTTPS, poi aggiorna l'URL di Spoolman nelle Impostazioni con il nuovo indirizzo HTTPS.`,spoolmanMixedContentFixOpenNewTab:`Come alternativa, apri Spoolman in una nuova scheda via HTTP — le regole sul contenuto misto si applicano solo ai frame incorporati, una scheda autonoma funziona.`,spoolmanOpenInNewTab:`Apri Spoolman in una nuova scheda`,labels:{title:`Stampa etichette bobine`,selectedCount:`{{count}} selezionato`,pickSpools:`Scegli per quali bobine stampare le etichette:`,monochrome:`Monocromatico (stampante in bianco e nero)`,monochromeHint:`Rimuove il campione di colore e allarga il testo`,searchPlaceholder:`Cerca per nome, marca o #ID`,filterByMaterial:`Materiale:`,allMaterials:`Tutto`,selectVisible:`Seleziona tutti visibili ({{count}})`,deselectVisible:`Deseleziona visibili`,clearAll:`Cancella tutto`,noSpoolsToShow:`Nessuna bobina da mostrare. Modifica il filtro e riprova.`,noMatches:`Nessuna bobina corrisponde alla ricerca o al filtro corrente.`,printOne:`Stampa etichetta per questa bobina`,printLabels:`Stampa etichette…`,bulkTitle:`Scegli le bobine da etichettare tra le {{count}} mostrate`,noSpoolsTitle:`Nessuna bobina da etichettare`,error:`Impossibile generare etichette: {{msg}}`,sortBy:{label:`Ordina:`,id:`Per ID`,color:`Per colore`},templates:{amsHolderSmall:{label:`Supporto AMS — piccolo (74 × 33 mm)`,hint:`Un'etichetta per pagina; corrisponde all'etichetta stampabile del modello MakerWorld 752566 (Porta-etichette filamento AMS).`},amsHolderLarge:{label:`Supporto AMS — grande (75 × 55 mm)`,hint:`Un'etichetta per pagina; si adatta alla variante cartoncino del porta-etichette filamento AMS. Spazio sufficiente per campione colore, marca, materiale, ID e codice QR.`},box40x30:{label:`Etichetta scatola (40 × 30 mm)`,hint:`Una etichetta per pagina; misura comune DK/Brother, ideale per etichette di sacchetti filamento e contenitori.`},box:{label:`Box label (62 × 29 mm)`,hint:`Una etichetta per pagina; dimensionata per Brother PT/QL e piccole etichette Dymo.`},averyL7160:{label:`Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)`,hint:`Foglio formato UE; 21 etichette per pagina A4.`},avery5160:{label:`Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)`,hint:`Foglio formato US; 30 etichette per pagina Letter.`}}},csv:{importButton:`Importa CSV`,exportButton:`Esporta CSV`,modalTitle:`Importa bobine da CSV`,selectFile:`Scegli un file CSV o trascinalo qui`,dragHint:`Intestazione: material (obbligatorio), brand, subtype, color_name, rgba, …`,parsing:`Lettura del file…`,previewError:`Impossibile leggere il file CSV`,validCount:`{{count}} valide`,errorCount:`{{count}} con errore`,skippedCount:`{{count}} ignorate`,colRow:`Riga`,colStatus:`Stato`,colColor:`Colore`,colorResolved:`Colore compilato dal catalogo`,colorCrossMaterial:`Colore preso da un materiale diverso — nessuna corrispondenza esatta nel catalogo`,duplicateExisting:`Esiste già una bobina con questo materiale, marca e colore — verrà comunque importata come nuova bobina`,spoolmanHint:`In modalità Spoolman, usa l'importazione/esportazione CSV integrata di Spoolman.`,importValidRows:`Importa {{count}} righe valide`,noValidRows:`Nessuna riga valida`,importing:`Importazione…`,importSuccess:`{{count}} bobine importate`,importError:`Importazione non riuscita`,exportError:`Esportazione non riuscita`},addSpool:`Aggiungi Bobina`,editSpool:`Modifica Bobina`,copySpool:`Copia Bobina`,material:`Materiale`,selectMaterial:`Seleziona materiale...`,subtype:`Sottotipo`,brand:`Marchio`,searchBrand:`Cerca marchio...`,useCustomBrand:`Usa "{{brand}}"`,useCustomMaterial:`Usa materiale personalizzato: {{material}}`,suggestedOptions:`Suggeriti`,allOptions:`Tutti`,colorName:`Nome Colore`,colorNamePlaceholder:`Bianco Giada, Rosso Fuoco...`,color:`Colore`,hexColor:`Colore Hex`,pickColor:`Scegli colore personalizzato`,labelWeight:`Peso da Etichetta`,coreWeight:`Peso Bobina Vuota`,searchSpoolWeight:`Cerca peso bobina...`,weightUsed:`Utilizzato`,currentWeight:`Peso Rimanente`,measuredWeight:`Peso Misurato`,spoolName:`Bobina`,costPerKg:`Costo per kg`,storageLocation:`Posizione di archiviazione`,storageLocationPlaceholder:`es. Scaffale A, Cassetto 1`,openInInventory:`Apri nell'inventario`,measuredWeightError:`Il peso misurato deve essere compreso tra {{min}}g e {{max}}g.`,slicerFilament:`Filamento Slicer`,slicerFilamentName:`Nome Preset Slicer`,slicerPreset:`Preset Slicer`,searchPresets:`Cerca preset filamento...`,selectedPreset:`Selezionato`,noPresetsFound:`Nessun preset trovato`,tempOverrides:`Override Temperatura`,note:`Nota`,notePlaceholder:`Eventuali note aggiuntive su questa bobina...`,category:`Categoria`,categoryPlaceholder:`es. Produzione, Prototipo, Cliente A`,categoryNone:`Senza categoria`,storageLocationNone:`Nessuna posizione impostata`,lowStockThresholdOverride:`Soglia scorte basse (questa bobina)`,lowStockThresholdOverrideHelp:`Lascia vuoto per usare la soglia globale ({{global}}%).`,clearRfid:`Cancella tag RFID`,rfidCleared:`Tag RFID cancellato`,archive:`Archivia`,restore:`Ripristina`,noSpools:`Ancora nessuna bobina. Aggiungi la tua prima bobina per iniziare.`,noAvailableSpools:`Nessuna bobina disponibile. Aggiungi una bobina al tuo inventario o rimuovine l'assegnazione da un altro slot.`,kProfiles:`Profili K`,addKProfile:`Aggiungi K-Profile`,assignSpool:`Assegna Bobina`,unassignSpool:`Scollega`,assignSuccess:`Bobina assegnata e slot AMS configurato`,assignPendingInsert:`Assegnato. Lo slot verrà configurato all'inserimento della bobina.`,assignFailed:`Assegnazione bobina fallita`,selectSpool:`Seleziona una bobina da assegnare a questo slot`,assigned:`Assegnato`,assigning:`Assegnazione...`,searchSpools:`Cerca bobine...`,showAllSpools:`Mostra tutte le bobine`,spoolmanSpools:`Bobine Spoolman`,allMaterials:`Tutti i Materiali`,filterByBrand:`Filtra per marchio...`,showArchived:`Mostra archiviate`,quickAdd:`Aggiunta rapida (Scorta)`,quantity:`Quantità`,stock:`Scorta`,configured:`Configurata`,spoolsCreated:`{{count}} bobine create`,spoolsPartiallyCreated:`{{created}} di {{total}} bobine create (alcune non riuscite)`,spoolCreated:`Bobina creata`,spoolUpdated:`Bobina aggiornata`,spoolDeleted:`Bobina eliminata`,deepLinkSpoolNotFound:`Bobina non trovata`,deepLinkFetchFailed:`Impossibile caricare la bobina — riprova`,spoolArchived:`Bobina archiviata`,spoolRestored:`Bobina ripristinata`,kProfileSaveFailed:`Impossibile salvare le impostazioni del profilo K`,syncWeightSpoolNotFound:`Bobina non trovata — potrebbe essere stata eliminata`,syncWeightSpoolmanUnreachable:`Spoolman non è raggiungibile — riprovare più tardi`,syncWeightFailed:`Sincronizzazione del peso non riuscita`,spoolmanUnreachable:`Spoolman non è raggiungibile — riprovare più tardi`,deleteSpoolNotFound:`Bobina non trovata — potrebbe essere già stata eliminata`,deleteFailed:`Impossibile eliminare la bobina`,archiveSpoolNotFound:`Bobina non trovata — potrebbe essere già stata eliminata`,archiveFailed:`Impossibile archiviare la bobina`,restoreSpoolNotFound:`Bobina non trovata — potrebbe essere già stata eliminata`,restoreFailed:`Impossibile ripristinare la bobina`,saveFailed:`Impossibile salvare le modifiche`,tagClearFailed:`Impossibile cancellare il tag`,deleteConfirm:`Sei sicuro di voler eliminare questa bobina? Questa azione non può essere annullata.`,archiveConfirm:`Sei sicuro di voler archiviare questa bobina?`,advancedSettings:`Impostazioni Avanzate`,filamentInfoTab:`Info filamento`,paProfileTab:`Profilo PA`,filamentInfo:`Filamento`,additional:`Aggiuntivo`,loadingPresets:`Caricamento preset cloud...`,cloudConnected:`Cloud connesso`,cloudNotConnected:`Cloud non connesso (valori predefiniti)`,recentColors:`Recenti`,searchColors:`Cerca colori...`,searchResults:`Risultati della ricerca`,allColors:`Tutti i colori`,commonColors:`Colori comuni`,showLess:`Mostra meno`,showAll:`Mostra tutto`,noColorsFound:`Nessun colore corrisponde alla ricerca`,noResults:`Nessun risultato trovato`,extraColorsLabel:`Colori extra`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`Incolla da 2 a 8 stop hex, separati da virgole. Visualizzato come sfumatura.`,extraColorsInvalid:`Hex non validi ignorati: {{tokens}}`,colorEffectLabel:`Effetto`,colorEffect:{none:`Nessuno`,sparkle:`Scintillante`,wood:`Legno`,marble:`Marmo`,glow:`Bagliore`,matte:`Opaco`,silk:`Silk`,galaxy:`Galassia`,rainbow:`Arcobaleno`,metal:`Metallo`,translucent:`Traslucido`,gradient:`Sfumatura`,dualColor:`Bicolore`,triColor:`Tricolore`,multicolor:`Multicolore`},selectMaterialFirst:`Selezionare prima un materiale nella scheda Info filamento.`,noPrintersConfigured:`Nessuna stampante configurata. Aggiungi stampanti per usare i profili PA.`,matchingFilter:`Corrispondenti`,anyBrand:`Qualsiasi marca`,anyVariant:`Qualsiasi variante`,autoSelect:`Selezione automatica`,matches:`corrispondenze`,match:`corrispondenza`,noMatches:`Nessuna corrispondenza`,connected:`Connessa`,offline:`Offline`,printerOffline:`La stampante è offline. Connetti per visualizzare i profili di calibrazione.`,noKProfilesMatch:`Nessun profilo K corrisponde al filamento selezionato.`,leftNozzle:`Ugello sinistro`,rightNozzle:`Ugello destro`,profilesSelected:`profili di calibrazione selezionati`,totalInventory:`Inventario totale`,totalConsumed:`Totale consumato`,byMaterial:`Per materiale`,inPrinter:`In stampante`,lowStock:`Scorta bassa`,sinceTracking:`Dall'inizio del tracciamento`,resetConsumedCounter:`Azzera contatore`,resetConsumedCounterTooltip:`Azzera il contatore di grammi consumati per questa bobina. Il peso rimanente non viene modificato.`,resetConsumedCounterConfirm:`Azzerare il contatore di grammi consumati di questa bobina? Le stampe future ripartiranno da zero. La bobina, il calcolo del peso rimanente e le impostazioni non vengono modificati.`,resetAllConsumedCounters:`Azzera tutti i contatori`,resetAllConsumedCountersTooltip:`Azzera il contatore di grammi consumati su ogni bobina. I pesi rimanenti non vengono modificati.`,resetAllConsumedCountersConfirm:`Azzerare il contatore di grammi consumati su tutte le {{count}} bobine (incluse quelle archiviate)? La statistica "Totale Consumato" verrà azzerata e le stampe future ripartiranno da zero. Bobine e pesi rimanenti restano invariati.`,consumedCounterReset:`Contatore azzerato`,allConsumedCountersReset:`Contatore azzerato per {{count}} bobina/e`,resetConsumedCounterFailed:`Impossibile azzerare il contatore`,loadedInAms:`Caricato in AMS/Est`,remaining:`Rimanente`,weightCheck:`Controllo Peso`,lastWeighed:`Ultima pesatura`,neverWeighed:`Mai pesato`,search:`Cerca bobine...`,showing:`Visualizzazione`,to:`a`,of:`di`,show:`Mostra`,spools:`bobine`,spool:`bobina`,page:`Pagina`,noSpoolsMatch:`Nessun risultato trovato`,noSpoolsMatchDesc:`Prova a modificare la ricerca o i filtri per trovare quello che cerchi.`,active:`Attive`,archived:`Archiviate`,all:`Tutte`,used:`Usato`,new:`Nuovo`,clearFilters:`Cancella filtri`,table:`Tabella`,cards:`Schede`,net:`Netto`,groupSimilar:`Raggruppa`,groupedSpools:`{{count}} bobine identiche`,groupedRows:`righe`,columns:`Colonne`,configureColumns:`Configura colonne`,configureColumnsDesc:`Trascina per riordinare le colonne o usa le frecce. Attiva/disattiva la visibilità con l'icona dell'occhio.`,visible:`visibili`,reset:`Ripristina`,cancel:`Annulla`,applyChanges:`Applica modifiche`,moveUp:`Sposta su`,moveDown:`Sposta giù`,hideColumn:`Nascondi colonna`,showColumn:`Mostra colonna`,linkToSpool:`Collega a bobina`,tagLinked:`Tag collegato alla bobina`,tagLinkFailed:`Impossibile collegare il tag`,tagAlreadyLinked:`Tag già collegato a un'altra bobina`,unknownTag:`Tag RFID sconosciuto rilevato`,usageHistory:`Cronologia utilizzo`,noUsageHistory:`Nessun utilizzo registrato`,printName:`Nome stampa`,weightConsumed:`Peso consumato`,clearHistory:`Cancella`,historyCleared:`Cronologia utilizzo cancellata`,fillSourceLabel:`(Inv)`,lowStockThresholdError:`La soglia deve essere tra 0.1 e 99.9`,assignMismatchTitle:`Materiale non corrispondente`,assignMismatchMessage:`Il materiale della bobina selezionata "{{spoolMaterial}}" non corrisponde al materiale del vassoio "{{trayMaterial}}" per {{location}}. Assegnare comunque?`,assignMismatchConfirm:`Assegna comunque`,assignPartialMismatchMessage:`Il materiale della bobina "{{spoolMaterial}}" è simile ma non corrisponde esattamente a "{{trayMaterial}}" in {{location}}. Vuoi procedere?`,assignProfileMismatchMessage:`Il profilo della bobina "{{spoolProfile}}" non corrisponde al profilo del vassoio "{{trayProfile}}" in {{location}}. Vuoi procedere?`,assignReconfigureNote:`Lo slot AMS verrà riconfigurato per utilizzare il profilo della bobina.`,spoolmanFilamentCatalog:`Catalogo filamenti Spoolman`,pickFromSpoolmanCatalog:`Scegli dal catalogo Spoolman…`,spoolmanFilamentSelected:`Filamento selezionato dal catalogo Spoolman`,spoolmanFilamentUnlinked:`Collegamento al catalogo filamenti rimosso`,noSpoolmanFilaments:`Nessun filamento trovato nel catalogo Spoolman`,spoolmanFilamentColorSwatch:`Colore del filamento`,spoolWeightManagedBySpoolman:`Il peso della bobina vuota è gestito per tipo di filamento in Spoolman`,spoolmanCatalogLoadFailed:`Impossibile caricare il catalogo Spoolman`},timelapse:{title:`Timelapse`,create:`Crea timelapse`,download:`Scarica`,delete:`Elimina`,preview:`Anteprima`,frameRate:`Frame rate`,quality:`Qualità`,processing:`Elaborazione...`,noTimelapses:`Nessun timelapse disponibile`},ams:{title:`AMS`,slot:`Slot`,empty:`Vuoto`,emptySlot:`Slot vuoto`,slotEmpty:`Vuoto`,slotUnconfigured:`?`,emptySlotReset:`Nessuna bobina assegnata`,unknown:`Sconosciuto`,humidity:`Umidità`,temperature:`Temperatura`,filamentType:`Tipo filamento`,filamentColor:`Colore`,remaining:`Rimanente`,history:`Cronologia AMS`,noHistory:`Nessuna cronologia disponibile`,configureSlot:`Configura slot`,externalSpool:`Bobina esterna`,profile:`Profilo`,kFactor:`Fattore K`,fill:`Livello`,configure:`Configura`,used:`utilizzato`,remainingUnit:`rimanente`},printModal:{selectPrinter:`Seleziona stampante`,selectPlate:`Seleziona piatto`,filamentMapping:`Mappatura filamento`,plateN:`Piatto {{n}}`,plateFilamentsUnreadable:`Non è stato possibile leggere i filamenti di un piatto selezionato, quindi non può essere assegnato. Deselezionalo per accodare gli altri.`,totalCost:`Costo totale:`,slotRemainingShort:` - {{grams}}g rim.`,printSettings:`Impostazioni stampa`,bedLeveling:`Livellamento piatto`,flowCalibration:`Calibrazione flusso`,vibrationCalibration:`Calibrazione vibrazioni`,layerInspection:`Ispezione primo layer`,timelapse:`Timelapse`,cancel:`Annulla`,noPrintersAvailable:`Nessuna stampante disponibile`,printerBusy:`Stampante occupata`,printerOffline:`Stampante offline`,sameTypeDifferentColor:`Stesso tipo, colore diverso`,filamentTypeNotLoaded:`Tipo di filamento non caricato`,whenToPrint:`Quando stampare`,asap:`Subito`,queue:`Coda`,schedule:`Programma`,dateTime:`Data e ora`,invalidDateTime:`Inserisci data e ora valide`,openCalendar:`Apri calendario`,requireManualStart:`Richiedi avvio manuale`,requirePreviousSuccess:`Avvia solo se la stampa precedente è riuscita`,autoOffAfter:`Spegni la stampante al termine`,helpAsap:`La stampa verrà aggiunta in cima alla coda e partirà appena una stampante idonea è inattiva.`,helpSchedule:`La stampa partirà all'ora programmata se la stampante è inattiva. Se è occupata, attenderà che diventi disponibile.`,helpQueue:`La stampa verrà aggiunta in fondo alla coda.`,leftNozzle:`L`,rightNozzle:`R`,leftNozzleTooltip:`Ugello sinistro`,rightNozzleTooltip:`Ugello destro`,filamentOverride:`Sostituzione filamento`,filamentOverrideHint:`Sostituisci opzionalmente i filamenti per l'assegnazione basata sul modello. Lo scheduler abbinerà i filamenti selezionati invece dei valori 3MF originali.`,originalFilament:`Originale`,overrideWith:`Sostituisci con`,resetToOriginal:`Ripristina originale`,insufficientFilamentTitle:`Filamento insufficiente`,waitingForAmsStatus:`In attesa dello stato AMS di {{printer}}…`,insufficientFilamentMessage:`Alcune bobine assegnate hanno meno filamento rimanente di quanto necessario per questa stampa:`,insufficientFilamentLine:`{{printer}} - {{slot}}: necessita di {{required}}g, rimanenti {{remaining}}g`,printAnyway:`Stampa comunque`,forceColorMatch:`Forza corrispondenza colore`,staggerPrinterStarts:`Scaglionare avvii`,staggerGroupSize:`Dimensione gruppo`,staggerInterval:`Intervallo (min)`,staggerPreview:`{{printers}} stampanti → {{groups}} gruppi di {{size}}, avvio ogni {{interval}} min`,staggerLastGroup:`ultimo gruppo: {{count}}`,staggerTotal:`totale: {{minutes}} min`,staggerToPrinters:`Scagliona a {{count}} stampanti`,gcodeInjection:`Inietta G-code auto-stampa`},backup:{includesEncryptionKey:`I backup locali includono il file della chiave di crittografia MFA (DATA_DIR/.mfa_encryption_key), quindi un backup ZIP è autonomo. Tratta lo ZIP come sensibile — chiunque abbia il file può decifrare i client secret OIDC e i segreti TOTP contenuti.`,title:`Backup e ripristino`,createBackup:`Crea backup`,restoreBackup:`Ripristina backup`,restoreDescription:`Sostituisci tutti i dati da un file di backup`,downloadBackup:`Scarica backup`,uploadBackup:`Carica backup`,lastBackup:`Ultimo backup`,autoBackup:`Backup automatico`,backupNow:`Esegui backup ora`,restoreWarning:`Avviso: il ripristino sovrascriverà tutti i dati attuali.`,includeArchives:`Includi archivi`,includeSettings:`Includi impostazioni`,includeProfiles:`Includi profili`,backupSuccess:`Backup creato con successo`,restoreSuccess:`Backup ripristinato con successo`,backupFailed:`Backup fallito`,restoreFailed:`Ripristino fallito`,restoreNote:`La stampante virtuale verrà fermata durante il ripristino`,githubBackup:`Backup GitHub`,enabled:`Abilitato`,cloudLoginRequired:`Accesso Bambu Cloud richiesto. Accedi in Profili → Profili Cloud per abilitare il backup GitHub.`,cloudLoginRequiredShort:`Accesso Cloud richiesto`,githubDescription:`Sincronizza automaticamente i tuoi profili con un repository GitHub privato per backup e cronologia delle versioni.`,repoIsPrivate:`Il repository è privato — è sicuro effettuare il backup.`,repoIsPublicWarning:`Il repository è PUBBLICO. I backup di Bambuddy includono credenziali MQTT, token di Home Assistant, token di Prometheus, la tua e-mail Bambu Cloud e i codici di accesso alle stampanti tramite K-profile. Il salvataggio è bloccato finché non rendi privato il repository nelle impostazioni del tuo provider.`,repoVisibilityUnknown:`Impossibile determinare la visibilità del repository. Bambuddy rifiuta di eseguire backup su qualsiasi target non confermato come privato; il salvataggio sarà bloccato.`,repositoryUrl:`URL del repository`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`Consenti HTTP non sicuro`,allowInsecureHttpHint:`Abilita per istanze self-hosted su reti private senza TLS`,personalAccessToken:`Token di accesso personale`,tokenSaved:`(salvato)`,enterNewToken:`Inserisci un nuovo token per aggiornare`,tokenHint:`Token a grana fine con permesso di lettura/scrittura dei contenuti`,branch:`Branch`,provider:`Provider Git`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`Solo manuale`,hourly:`Ogni ora`,daily:`Giornaliero`,weekly:`Settimanale`,includeInBackup:`Includi nel backup`,kProfiles:`K-Profili`,kProfilesDescription:`Calibrazione dell'avanzamento pressione dalle stampanti connesse`,noPrintersConnected:`Nessuna stampante connessa`,printersConnected:`{{connected}}/{{total}} connesse`,cloudProfiles:`Profili Cloud`,cloudProfilesDescription:`Preset di filamento, stampante e processo da Bambu Cloud`,appSettings:`Impostazioni App`,appSettingsDescription:`Configurazione Bambuddy (database completo)`,spoolInventory:`Inventario bobine`,spoolInventoryDescription:`Bobine di filamento, cronologia utilizzo e tracciamento costi`,printArchives:`Archivi di stampa`,printArchivesDescription:`Metadati della cronologia di stampa (nessun file gcode/3MF)`,lastBackupAt:`Ultimo backup:`,noBackupsYet:`Nessun backup ancora`,next:`Prossimo:`,startingBackup:`Avvio del backup...`,test:`Test`,enableBackup:`Abilita backup`,testConnection:`Testa connessione`,enterRepoUrl:`Inserisci l'URL del repository`,enterRepoAndToken:`Inserisci l'URL del repository e il token di accesso`,repoRequired:`L'URL del repository è obbligatorio`,tokenRequired:`Il token di accesso è obbligatorio`,githubBackupEnabled:`Backup GitHub abilitato`,tokenUpdated:`Token aggiornato`,settingsSaved:`Impostazioni salvate`,failedToSave:`Salvataggio fallito: {{message}}`,backupCompleteFiles:`Backup completato - {{count}} file aggiornati`,backupSkippedNoChanges:`Backup saltato - nessuna modifica`,backupFailed2:`Backup fallito: {{message}}`,clearedLogs:`{{count}} log eliminati`,failedToClearLogs:`Eliminazione log fallita: {{message}}`,history:`Cronologia`,clear:`Cancella`,date:`Data`,status:`Stato`,commit:`Commit`,localBackup:`Backup locale`,localBackupDescription:`Crea un backup completo dei tuoi dati Bambuddy includendo database, archivi, upload e tutti i file.`,downloadBackupLabel:`Scarica backup`,completeBackupZip:`Backup completo: database + tutti i file (ZIP)`,download:`Scarica`,preparingBackup:`Preparazione del backup...`,creatingArchive:`Creazione dell'archivio di backup... Potrebbe richiedere del tempo per archivi di grandi dimensioni.`,downloadingFile:`Download del file di backup...`,backupDownloaded:`Backup scaricato con successo`,failedToCreateBackup:`Creazione del backup fallita: {{message}}`,restore:`Ripristina`,restoreReplacesAll:`Il ripristino sostituisce tutti i dati.`,restoreReplacesAllDetail:`Il database e i file attuali verranno completamente sostituiti. È necessario un riavvio dopo il ripristino.`,restoreConfirmTitle:`Ripristina backup`,restoreConfirmMessage:`Sei sicuro di voler ripristinare da "{{filename}}"? Questo sostituirà completamente il tuo database e tutti i file. L'applicazione dovrà essere riavviata dopo il ripristino.`,restoreConfirmButton:`Ripristina backup`,uploadingFile:`Caricamento del file di backup...`,backupRestoredRestart:`Backup ripristinato. Riavvia Bambuddy.`,failedToRestore:`Ripristino del backup fallito. Controlla il formato del file.`,reloadNow:`Ricarica ora`,creatingBackup:`Creazione del backup`,restoringBackup:`Ripristino del backup`,preparing:`Preparazione...`,processing:`Elaborazione...`,doNotClosePage:`Non chiudere questa pagina e non navigare altrove. Questa operazione potrebbe richiedere diversi minuti per backup di grandi dimensioni.`,restoring:`Ripristino in corso...`,restoreComplete:`Ripristino completato`,restoreFailed2:`Ripristino fallito`,importSettings:`Importa impostazioni da un file di backup`,pleaseWaitRestoring:`Attendere durante il ripristino dei dati`,selectBackupFile:`Clicca per selezionare un file di backup (.json o .zip)`,duplicateHandling:`Come funziona la gestione dei duplicati:`,matchPrinters:`Stampanti`,matchPrintersBy:`corrispondenza per numero di serie`,matchSmartPlugs:`Smart Plug`,matchSmartPlugsBy:`corrispondenza per indirizzo IP`,matchNotificationProviders:`Provider di notifica`,matchNotificationProvidersBy:`corrispondenza per nome`,matchFilaments:`Filamenti`,matchFilamentsBy:`corrispondenza per nome + tipo + marca`,matchArchives:`Archivi`,matchArchivesBy:`corrispondenza per hash del contenuto (sempre saltato)`,matchPendingUploads:`Upload in sospeso`,matchPendingUploadsBy:`corrispondenza per nome file`,matchSettingsTemplates:`Impostazioni e modelli`,matchSettingsTemplatesBy:`sempre sovrascritti`,replaceExisting:`Sostituisci dati esistenti`,keepExisting:`Mantieni dati esistenti`,overwriteDescription:`Sovrascrivi gli elementi già esistenti con i dati del backup`,keepDescription:`Ripristina solo gli elementi che non esistono ancora`,overwriteCaution:`Attenzione:`,overwriteWarning:`La sovrascrittura sostituirà le configurazioni attuali con i dati del backup. I codici di accesso delle stampanti non vengono mai sovrascritti per sicurezza.`,cancel:`Annulla`,processingBackup:`Elaborazione del file di backup...`,itemsRestored:`Elementi ripristinati`,itemsSkipped:`Elementi saltati`,restored:`Ripristinati`,skippedAlreadyExist:`Saltati (già esistenti)`,filesCategory:`File (3MF, miniature, ecc.)`,andMore:`...e altri {{count}}`,newApiKeysGenerated:`Nuove chiavi API generate`,keysShownOnce:`Queste chiavi vengono mostrate solo una volta. Copiale ora!`,copy:`Copia`,noDataFound:`Nessun dato da ripristinare trovato nel file di backup.`,close:`Chiudi`,scheduledBackup:`Backup pianificati`,scheduledBackupDescription:`Crea automaticamente snapshot di backup secondo una pianificazione. La directory di output può essere montata su un NAS o storage esterno.`,frequency:`Frequenza`,backupTime:`Tempo`,retention:`Conservazione`,retentionDescription:`Numero di backup da conservare`,outputPath:`Percorso di output`,outputPathPlaceholder:`Predefinito: {{path}}`,outputPathDescription:`Lasciare vuoto per la posizione predefinita`,runNow:`Esegui ora`,backupFiles:`File di backup`,noScheduledBackups:`Nessun backup ancora`,deleteBackup:`Elimina`,deleteBackupConfirm:`Eliminare questo file di backup?`,backupRunning:`Backup in corso...`,scheduledBackupComplete:`Backup completato con successo`,scheduledBackupFailed:`Backup fallito`,nextBackup:`Prossimo backup`,backupSize:`Dimensione`,localTimeHint:`Ora locale ({{tz}})`,defaultPathLabel:`Predefinito:`,pathCheck:{title:`Bambuddy non riesce a scrivere in questa directory`,howToFix:`Come risolvere:`,sandboxed:`Il servizio Bambuddy non riesce a scrivere in {{path}}. La sua unit systemd usa ProtectSystem=strict, che rende ogni directory al di fuori di quelle di installazione, dati e log di sola lettura per il servizio - anche una in cui puoi scrivere dalla tua shell.`,read_only:`{{path}} si trova su un filesystem di sola lettura.`,permission_denied:`Bambuddy non ha il permesso di scrivere in {{path}}. Controlla proprietario e permessi della directory.`,no_space:`Il filesystem che contiene {{path}} è pieno.`,not_a_directory:`{{path}} esiste ma non è una directory.`,missing:`{{path}} non esiste e non è stato possibile crearla.`,error:`Bambuddy non riesce a scrivere in {{path}}.`,ephemeralTitle:`Questi backup non sopravvivono alla ricreazione del container`,container_ephemeral:`{{path}} si trova dentro il container Bambuddy, non sull'host. I backup scritti lì vanno persi quando il container viene ricreato. Monta la directory dall'host:`},categories:{settings:`Impostazioni`,notification_providers:`Provider di notifica`,notification_templates:`Modelli di notifica`,smart_plugs:`Smart Plug`,printers:`Stampanti`,filaments:`Filamenti`,maintenance_types:`Tipi di manutenzione`,archives:`Archivi`,projects:`Progetti`,pending_uploads:`Upload in sospeso`,external_links:`Link esterni`,api_keys:`Chiavi API`}},tags:{title:`Tag`,addTag:`Aggiungi tag`,editTag:`Modifica tag`,deleteTag:`Elimina tag`,tagName:`Nome tag`,tagColor:`Colore tag`,noTags:`Nessun tag`,deleteConfirm:`Sei sicuro di voler eliminare questo tag?`,manageTags:`Gestisci tag`},uploadModal:{title:`Carica file 3MF`,dragDrop:`Trascina e rilascia file .3mf qui`,or:`o`,browseFiles:`Sfoglia file`,extractionInfo:`Il modello stampante sarà estratto automaticamente dai metadati del file 3MF.`,uploaded:`caricati`,failed:`falliti`,uploading:`Caricamento...`,upload:`Carica`,uploadFailed:`Caricamento fallito`},editArchive:{title:`Modifica archivio`,name:`Nome`,namePlaceholder:`Nome stampa`,printer:`Stampante`,noPrinter:`Nessuna stampante`,project:`Progetto`,noProject:`Nessun progetto`,itemsPrinted:`Elementi stampati`,itemsPrintedHelp:`Numero di elementi prodotti in questo job di stampa`,notes:`Note`,notesPlaceholder:`Aggiungi note su questa stampa...`,externalLink:`Link esterno`,externalLinkPlaceholder:`https://printables.com/model/...`,externalLinkHelp:`Link a Printables, Thingiverse o altra fonte`,tags:`Tag`,tagsPlaceholder:`Aggiungi tag...`,addMoreTags:`Aggiungi altri tag...`,matchingTags:`Tag corrispondenti "{{query}}"`,existingTags:`Tag esistenti`,clickToAdd:`(clicca per aggiungere)`,status:`Stato`,failureReason:`Motivo fallimento`,selectReason:`Seleziona motivo...`,photos:`Foto del risultato stampato`,photosHelp:`Clicca + per aggiungere foto del risultato stampato`,printResult:`Risultato stampa`,saving:`Salvataggio...`,failureReasons:{adhesionFailure:`Fallimento adesione`,spaghettiDetached:`Spaghetti / staccato`,layerShift:`Spostamento layer`,cloggedNozzle:`Ugello intasato`,filamentRunout:`Filamento esaurito`,warping:`Deformazione`,stringing:`Filamento`,underExtrusion:`Sotto-estrusione`,powerFailure:`Mancanza corrente`,userCancelled:`Annullato dall'utente`,other:`Altro`},statuses:{completed:`Completato`,failed:`Fallito`,aborted:`Annullato`,printing:`In stampa`}},kProfiles:{title:`Profili K`,noPrintersConfigured:`Nessuna stampante configurata`,addPrinterInSettings:`Aggiungi una stampante in Impostazioni per gestire i K-profiles`,noActivePrinters:`Nessuna stampante attiva`,enablePrinterConnection:`Abilita una connessione stampante per vedere i K-profiles`,loadingProfiles:`Caricamento K-Profiles...`,printerOffline:`Stampante offline`,printerOfflineDesc:`La stampante selezionata non e connessa. Accendila per vedere i K-profiles.`,noMatchingProfiles:`Nessun profilo corrispondente`,noMatchingProfilesDesc:`Nessun profilo corrisponde ai criteri di ricerca`,noKProfiles:`Nessun K-Profile`,noKProfilesDesc:`Nessun profilo pressure advance per ugello da {{diameter}}mm`,createFirstProfile:`Crea primo profilo`,printer:`Stampante`,nozzle:`Ugello`,refresh:`Aggiorna`,addProfile:`Aggiungi profilo`,export:`Esporta`,import:`Importa`,select:`Seleziona`,selectAll:`Seleziona tutto`,delete:`Elimina`,searchPlaceholder:`Cerca per nome o filamento...`,allExtruders:`Tutti gli estrusori`,leftOnly:`Solo sinistro`,rightOnly:`Solo destro`,allFlow:`Tutto flow`,hfOnly:`Solo HF`,sOnly:`Solo S`,sortName:`Ordina: Nome`,sortKValue:`Ordina: K-Value`,sortFilament:`Ordina: Filamento`,leftExtruder:`Estrusore sinistro`,rightExtruder:`Estrusore destro`,modal:{addTitle:`Aggiungi K-Profile`,editTitle:`Modifica K-Profile`,profileName:`Nome profilo`,profileNamePlaceholder:`Il mio profilo PLA`,kValue:`Valore K`,kValuePlaceholder:`0.020`,kValueHelp:`Intervallo tipico: 0.01 - 0.06 per PLA, 0.02 - 0.10 per PETG`,filament:`Filamento`,selectFilament:`Seleziona filamento...`,noFilamentsHelp:`Nessun filamento trovato. Crea prima un K-profile in Bambu Studio.`,flowType:`Tipo flow`,highFlow:`Alto flusso`,standard:`Standard`,nozzleSize:`Dimensione ugello`,extruder:`Estrusore`,extruders:`Estrusori`,left:`Sinistra`,right:`Destra`,notes:`Note (salvate localmente)`,notesPlaceholder:`Aggiungi note su questo profilo...`,notesHelp:`Le note sono salvate in Bambuddy, non sulla stampante`,syncing:`Sincronizzazione con stampante...`,savingExtruder:`Salvataggio su estrusore {{current}}/{{total}}...`,pleaseWait:`Attendere`},deleteConfirm:{title:`Elimina profilo`,cannotUndo:`Questo non può essere annullato`,message:`Sei sicuro di voler eliminare "{{name}}" dalla stampante?`},bulkDelete:{title:`Elimina profili`,cannotUndo:`Questo non può essere annullato`,message:`Sei sicuro di voler eliminare {{count}} profili selezionati dalla stampante?`},toast:{profileSaved:`K-profile salvato`,profilesSaved:`K-profile salvato su {{count}} estrusori`,selectAtLeastOneExtruder:`Seleziona almeno un estrusore`,profileDeleted:`K-profile eliminato`,profilesDeleted:`Eliminati {{count}} profili`,exportedProfiles:`Esportati {{count}} profili`,importedProfiles:`Importati {{count}} di {{total}} profili`,noProfilesToExport:`Nessun profilo da esportare`,invalidFileFormat:`Formato file non valido`,failedToParseImport:`Parsing file import fallito`,failedToSaveBatch:`Salvataggio K-profiles fallito`,noteSaved:`Nota salvata`,failedToSaveNote:`Salvataggio nota fallito`},permission:{noRead:`Non hai il permesso di aggiornare i profili`,noCreate:`Non hai il permesso di aggiungere profili`,noUpdate:`Non hai il permesso di aggiornare K-profiles`,noDelete:`Non hai il permesso di eliminare K-profiles`,noExport:`Non hai il permesso di esportare profili`,noImport:`Non hai il permesso di importare profili`}},virtualPrinter:{title:`Stampante virtuale`,running:`In esecuzione`,stopped:`Ferma`,description:{default:`Abilita una stampante virtuale che appare in Bambu Studio e OrcaSlicer. I file inviati a questa stampante saranno archiviati senza stampare.`,proxy:`Abilita un proxy che inoltra il traffico slicer a una stampante reale, permettendo la stampa remota su qualsiasi rete.`},enable:{title:`Abilita stampante virtuale`,visibleInSlicer:`Visibile come "Bambuddy" nella ricerca slicer`,proxyingTo:`In proxy verso {{name}}`,notActive:`Non attivo`},model:{title:`Modello stampante`,description:`Seleziona il modello stampante da emulare.`,restartWarning:`Cambiare il modello riavviera la stampante virtuale`},accessCode:{title:`Codice accesso`,isSet:`Codice accesso impostato`,notSet:`Nessun codice accesso impostato - richiesto per abilitare`,placeholder:`Inserisci codice 8 caratteri`,placeholderChange:`Inserisci nuovo codice per cambiare`,hint:`Deve essere esattamente 8 caratteri. Usato dagli slicer per autenticarsi.`,charCount:`({{count}}/8)`,inheritedFromTarget:`Ereditato dalla stampante target`,derivedFromTargetHint:`Usa il codice di accesso della stampante target. Il bridge inoltra l'autenticazione dello slicer alla stampante reale, quindi i codici devono corrispondere — modifica il codice nelle impostazioni della stampante per cambiarlo.`,reveal:`Mostra codice accesso`,hide:`Nascondi codice accesso`},targetPrinter:{title:`Stampante target`,configured:`Target proxy configurato`,notConfigured:`Nessuna stampante target selezionata - richiesta per modalita proxy`,placeholder:`Seleziona una stampante...`,hint:`Seleziona la stampante a cui fare proxy. La stampante deve essere in modalita LAN.`,noPrinters:`Nessuna stampante configurata. Aggiungi una stampante per usare la modalita proxy.`},remoteInterface:{title:`Sovrascrittura interfaccia di rete`,configured:`Sovrascrittura interfaccia attiva`,optional:`Opzionale - usare se l'IP rilevato automaticamente e sbagliato (es. piu NIC, Docker, VPN)`,placeholder:`Rilevamento automatico (predefinito)...`,hint:`Sovrascrive l'indirizzo IP pubblicizzato via SSDP e usato nel certificato TLS. Utile quando Bambuddy ha piu interfacce di rete.`},mode:{title:`Modalita`,archive:`Archivio`,archiveDesc:`Archivia subito i file`,review:`Revisione`,reviewDesc:`Rivedi prima di archiviare`,queue:`Coda`,queueDesc:`Archivia e aggiungi alla coda`,proxy:`Proxy`,proxyDesc:`Inoltra a stampante reale`},autoDispatch:{title:`Avvio automatico`,description:`Avvia automaticamente le stampe aggiunte alla coda. Se disattivato, le stampe attendono l'avvio manuale.`},queueForceColorMatch:{title:`Forza corrispondenza colori`,description:`Rifiuta di inviare a una stampante che non ha esattamente il tipo di filamento e il colore caricato. Disattivato per impostazione predefinita — senza questo, la coda usa solo la corrispondenza per modello e potrebbe scegliere una stampante con il colore sbagliato.`},gcodeInjection:{title:`Iniezione G-code`,description:`Applica gli snippet G-code configurati per modello nelle Impostazioni ai lavori di questo VP. Disattivato per impostazione predefinita.`},tailscaleDisabled:{title:`Integrazione Tailscale`,description:`Abilita per contrassegnare questo VP come esposto tramite Tailscale. Mostra l'indirizzo Tailscale dell'host così sai quale IP incollare nello slicer. Il passo di importazione CA è invariato — questo toggle non ha effetto sui certificati.`},setupRequired:{title:`Configurazione necessaria`,description:`La stampante virtuale richiede configurazioni di sistema aggiuntive prima di funzionare. Include port forwarding, regole firewall e impostazioni specifiche della piattaforma.`,readGuide:`Leggi la guida prima di abilitare`},howItWorks:{title:`Come funziona`,step1:`Sulla stessa LAN, le stampanti virtuali appaiono automaticamente nel tuo slicer (Bambu Studio / OrcaSlicer). Da altre reti, aggiungile manualmente tramite indirizzo IP e codice di accesso.`,step2:`In modalità Archivio, Revisione e Coda, usa il pulsante "Invia" nel tuo slicer per caricare file 3MF su Bambuddy. Lo slicer mostrerà "Stampa riuscita" — il file viene salvato, non stampato.`,step3:`In modalità Proxy, la stampante virtuale inoltra tutto il traffico a una stampante reale — le stampe partono immediatamente come con una connessione diretta.`},status:{title:`Dettagli stato`,printerName:`Nome stampante`,model:`Modello`,serialNumber:`Numero seriale`,mode:`Modalita`,pendingFiles:`File in sospeso`,targetPrinter:`Stampante target`,ftpPort:`Porta FTP`,mqttPort:`Porta MQTT`,ftpConnections:`Connessioni FTP`,mqttConnections:`Connessioni MQTT`},toast:{updated:`Impostazioni stampante virtuale aggiornate`,failedToUpdate:`Aggiornamento impostazioni fallito`,copyFailed:`Copia non riuscita — seleziona il testo manualmente`,accessCodeRequired:`Imposta prima un codice accesso`,targetPrinterRequired:`Seleziona prima una stampante target`,bindIpRequired:`Impostare prima un indirizzo IP`,accessCodeEmpty:`Il codice accesso non può essere vuoto`,accessCodeLength:`Il codice accesso deve essere esattamente 8 caratteri`,targetCodeChangedRebind:`Il codice di accesso ora corrisponde alla nuova stampante target. Ri-aggiungi questo dispositivo nel tuo slicer per acquisire il nuovo codice.`,created:`Stampante virtuale creata`,failedToCreate:`Impossibile creare la stampante virtuale`,deleted:`Stampante virtuale eliminata`,failedToDelete:`Impossibile eliminare la stampante virtuale`},list:{title:`Stampanti virtuali`,add:`Aggiungi`,addFirst:`Aggiungi stampante virtuale`,empty:`Nessuna stampante virtuale configurata. Aggiungine una per iniziare.`},bindIp:{title:`Interfaccia di rete`,placeholder:`Seleziona interfaccia...`,hint:`Interfaccia di rete a cui questa stampante virtuale si collega. Deve essere unica per stampante.`},proxy:{accessCodeHint:`In modalita proxy, usa il codice di accesso della stampante di destinazione nello slicer. La connessione viene inoltrata in modo trasparente alla stampante reale.`},addDialog:{title:`Aggiungi stampante virtuale`,name:`Nome`,hint:`Potrai configurare il codice di accesso, la stampante di destinazione e altre impostazioni dopo la creazione.`,create:`Crea`},deleteConfirm:{title:`Elimina stampante virtuale`,message:`Sei sicuro di voler eliminare "{{name}}"? Tutti i servizi di questa stampante verranno interrotti.`},archiveNameSource:{title:`Origine nome archivio`,description:`Scegli come vengono nominati i nuovi archivi quando i file arrivano tramite la stampante virtuale. "Metadati" utilizza il titolo incorporato nello slicer dal 3MF (default). "Nome file" utilizza il nome che Bambu Studio ha inviato via FTP. Nota: Bambu Studio sovrascrive il nome digitato nella finestra "invia a stampante" con il campo Titolo del 3MF quando presente, quindi entrambe le modalità producono spesso la stessa stringa.`,metadata:`Metadati`,filename:`Nome file`},caCert:{title:`Certificato dello slicer`,description:`Le stampanti virtuali usano un certificato TLS firmato dalla CA di Bambuddy. Importa questo certificato CA nell'archivio attendibile del tuo slicer una sola volta affinché accetti la connessione — senza doverlo copiare dalla riga di comando.`,copy:`Copia`,copied:`Copiato`,download:`Scarica`,fingerprint:`SHA-256`}},modelViewer:{openInSlicer:`Apri nello slicer`,tabs:{model:`Modello 3D`,gcode:`Anteprima G-code`},notAvailable:`non disponibile`,notSliced:`non sezionato`,plates:`Piatti`,allPlates:`Tutti i piatti`,plateNumber:`Piatto {{number}}`,plateCount:`{{count}} piatto`,plateCount_other:`{{count}} piatti`,objectCount:`{{count}} oggetto`,objectCount_other:`{{count}} oggetti`,filamentCount:`{{count}} filamento`,filamentCount_other:`{{count}} filamenti`,eta:`ETA {{minutes}} min`,noPreview:`Nessuna anteprima disponibile per questo file`,pagination:{pageOf:`Pagina {{current}} di {{total}}`,prev:`Prec`,next:`Succ`},errors:{failedToLoad:`Caricamento file fallito`,noMeshes:`Nessuna mesh trovata nel file 3MF`,unsupportedFormat:`Formato file non supportato`}},maintenanceDescriptions:{lubricateCarbonRods:`Applica lubrificante alle aste in carbonio per un movimento fluido`,lubricateRails:`Applica lubrificante alle guide lineari per un movimento fluido`,cleanNozzle:`Pulisci hotend e ugello per prevenire intasamenti`,checkBelts:`Verifica tensione cinghie per stampe accurate`,cleanBuildPlate:`Pulisci il piatto per migliorare l'adesione`,checkExtruder:`Ispeziona ingranaggi estrusore per usura`,checkCooling:`Assicurati che le ventole di raffreddamento funzionino`,generalInspection:`Ispezione generale stampante`,cleanCarbonRods:`Pulisci le aste in carbonio per ridurre attrito`,lubricateSteelRods:`Applica lubrificante alle aste in acciaio per un movimento fluido`,cleanSteelRods:`Pulisci le aste in acciaio per ridurre attrito`,cleanLinearRails:`Pulisci le guide lineari per rimuovere polvere e detriti`,checkPtfeTube:`Ispeziona il tubo PTFE per usura o danni`,replaceHepaFilter:`Sostituisci filtro HEPA per qualità aria`,replaceCarbonFilter:`Sostituisci filtro a carbone attivo`,lubricateLeftNozzleRail:`Lubrifica guida ugello sinistro (serie H2)`},smartPlugs:{offline:`Offline`,admin:`Amministrazione`,openPlugAdminPage:`Apri pagina amministrazione presa`,deleteSmartPlug:`Elimina presa smart`,turnOnSmartPlug:`Accendi presa smart`,turnOffSmartPlug:`Spegni presa smart`,turnOn:`Accendi`,turnOff:`Spegni`,addSmartPlug:{scanningNetwork:`Scansione rete...`,chooseEntity:`Scegli un'entità...`,connectionFailed:`Connessione fallita`,searchEntities:`Cerca entità...`,searchPowerSensors:`Cerca sensori di potenza...`,searchEnergySensors:`Cerca sensori di energia...`,placeholders:{plugName:`Presa soggiorno`,mqttStateOnValue:`ON, true, 1`,mqttSameAsPower:`Stesso del topic potenza, o diverso`}},linkedTo:`Collegato a:`,monitorOnly:`Solo monitoraggio`,alerts:`Avvisi`,scheduleOn:`Alle {{time}}`,scheduleOff:`Spento {{time}}`,on:`On`,off:`Spento`,power:`Potenza`,kwhToday:`kWh Oggi`,settings:`Impostazioni`,automationSettings:`Impostazioni automazione`,showInSwitchbar:`Mostra nella barra interruttori`,quickAccessSidebar:`Accesso rapido dalla barra laterale`,enabled:`Abilitato`,enableAutomation:`Abilita automazione per questa presa`,autoOn:`Auto On`,autoOnDescription:`Accendi quando inizia la stampa`,autoOff:`Auto Off`,autoOffDescription:`Spegni quando la stampa è completata (una tantum)`,autoOffPersistent:`Mantieni attivo`,autoOffPersistentDescription:`Resta attivo tra le stampe invece di una tantum`,controlsPrinterPower:`Alimenta la stampante`,controlsPrinterPowerDescription:`Disattiva se questa presa alimenta solo un accessorio (ventola del filtro, luci). Altrimenti spegnerla segna la stampante come offline.`,autoOffAfterDrying:`Spegni dopo asciugatura`,autoOffAfterDryingDescription:`Spegni al termine dell'asciugatura AMS`,delayAfterDryingMinutes:`Ritardo dopo asciugatura (minuti)`,turnOffDelayMode:`Modalità ritardo spegnimento`,time:`Tempo`,temp:`Temp.`,delayMinutes:`Ritardo (minuti)`,tempThreshold:`Soglia temperatura (°C)`,tempThresholdDescription:`Si spegne quando l'ugello si raffredda sotto questa temperatura`,edit:`Modifica`,deleteConfirm:`Sei sicuro di voler eliminare "{{name}}"? Questa azione non può essere annullata.`,turnOnConfirm:`Sei sicuro di voler accendere "{{name}}"?`,turnOffConfirm:`Sei sicuro di voler spegnere "{{name}}"? Questo interromperà l'alimentazione del dispositivo collegato.`,failedToTurn:`Impossibile {{action}} "{{name}}"`,unknown:`Sconosciuto`,addTitle:`Aggiungi presa smart`,editTitle:`Modifica presa smart`,stopScanning:`Interrompi scansione`,discoverTasmota:`Scopri dispositivi Tasmota`,foundDevices:`{{count}} dispositivo/i trovato/i - clicca per selezionare:`,noDevicesFound:`Nessun dispositivo Tasmota trovato nella rete`,haNotConfigured:`Home Assistant non è configurato. Configuralo in`,haSettingsPath:`Impostazioni → Rete → Home Assistant`,selectEntity:`Seleziona entità *`,ipAddress:`Indirizzo IP *`,nameLabel:`Nome *`,username:`Nome utente`,password:`Password`,authHint:`Lascia vuoto se il tuo dispositivo Tasmota non richiede autenticazione`,linkToPrinter:`Collega alla stampante`,noPrinter:`Nessuna stampante (solo controllo manuale)`,linkingDescription:`Il collegamento abilita accensione/spegnimento automatico all'inizio/fine stampa`,powerAlerts:`Avvisi potenza`,alertAbove:`Avviso se sopra (W)`,alertBelow:`Avviso se sotto (W)`,alertDescription:`Ricevi notifiche quando il consumo supera queste soglie. Lascia vuoto per disabilitare quella direzione.`,dailySchedule:`Programma giornaliero`,turnOnAt:`Accendi alle`,turnOffAt:`Spegni alle`,scheduleDescription:`Accendi/spegni automaticamente la presa a questi orari ogni giorno. Lascia vuoto per saltare quell'azione.`,showOnPrinterCard:`Mostra sulla scheda stampante`,displayOnPrinterCard:`Mostra pulsante sulla scheda stampante`,connectedResult:`Connesso!`,deviceLabel:`Dispositivo: {{name}} - `,stateLabel:`Stato: {{state}}`,test:`Test`,delete:`Elimina`,save:`Salva`,add:`Aggiungi`,cancel:`Annulla`,failedToStartScan:`Impossibile avviare la scansione`,nameRequired:`Il nome è obbligatorio`,entityRequired:`L'entità è obbligatoria per le prese Home Assistant`,mqttTopicRequired:`Almeno un topic MQTT deve essere configurato per potenza, energia o monitoraggio stato`,loadingEntities:`Caricamento entità...`,loading:`Caricamento...`,failedToLoadEntities:`Impossibile caricare le entità: {{error}}`,noEntitiesMatching:`Nessuna entità trovata corrispondente a "{{search}}"`,noEntitiesAvailable:`Nessuna entità disponibile`,searchingEntities:`Ricerca in tutte le entità ({{count}} trovate)`,showingEntities:`Mostrando switch, light, input_boolean ({{count}} disponibili)`,energyMonitoringOptional:`Monitoraggio energia (Opzionale)`,energyMonitoringHint:`Cerca e seleziona i sensori che forniscono dati di potenza/energia.`,powerSensorW:`Sensore potenza (W)`,energyTodayKwh:`Energia oggi (kWh)`,totalEnergyKwh:`Energia totale (kWh)`,noMatchingSensors:`Nessun sensore corrispondente`,none:`Nessuno`,mqttNotConfigured:`Broker MQTT non configurato. Imposta l'indirizzo del broker in`,mqttSettingsPath:`Impostazioni → Rete → Pubblicazione MQTT`,mqttNotConfiguredSuffix:`(non è necessario abilitare la pubblicazione, basta inserire i dettagli del broker).`,mqttMonitorOnlyDescription:`Le prese MQTT ricevono dati di potenza/energia tramite sottoscrizione MQTT. Il controllo on/off non è disponibile - usa il tuo broker MQTT o sistema domotico.`,powerMonitoring:`Monitoraggio potenza`,energyMonitoring:`Monitoraggio energia`,stateMonitoring:`Monitoraggio stato`,optional:`opzionale`,topic:`Argomento`,jsonPath:`Percorso JSON`,multiplier:`Moltiplicatore`,onValue:`Valore ON`,mqttPowerHint:`Il percorso JSON estrae il valore dal payload JSON (es. "power_l1"). Lascia vuoto se il topic pubblica valori numerici grezzi.
+ON値: "ON"を意味する正確な文字列。自動検出(ON、true、1)の場合は空のままにしてください。`,restControl:`コントロール`,restOnUrl:`オンURL`,restOffUrl:`オフURL`,restOnBody:`ONリクエスト本文`,restOffBody:`OFFリクエスト本文`,restMethod:`HTTPメソッド`,restHeaders:`Custom Headers (JSON)`,restStatusUrl:`ステータスURL`,restStatusPath:`状態JSONパス`,restStatusOnValue:`ON値`,restPowerUrl:`電力URL`,restPowerPath:`電力JSONパス`,restPowerMultiplier:`電力乗数`,restEnergyUrl:`エネルギーURL`,restEnergyPath:`エネルギーの JSON パス (今日)`,restEnergyTotalPath:`エネルギーの JSON パス (積算値)`,restEnergyTotalMultiplier:`積算値の乗数`,restEnergyTotalPathHint:`例: aenergy.total`,restEnergyTotalHint:`多くのスマートプラグ (Shelly はすべて) は、リセットされない積算カウンターしか返しません。その値は上の欄ではなく、ここに入力してください。今日の使用量として読むと深夜にリセットされず、昨日と合計は空のままになります。Bambuddy は積算値から今日と昨日を算出しますが、そのためには 1〜2 日分の測定値が必要です。Shelly はワット時で返すため、乗数には 0.001 を指定してください。`,restEnergyMultiplier:`エネルギー乗数`,restUrlRequired:`RESTプラグには少なくとも1つのURL(ONまたはOFF)が必要`,restHeadersHint:`例: {"Authorization": "Bearer your-token"}`,restBodyHint:`例:ON, {"state": "on"}`,restStatusHint:`現在の状態を取得するURL`,restPathHint:`例: state または data.power.status`,restPowerUrlHint:`電力データ用の個別URL(空欄の場合はステータスURLを使用)`,restEnergyUrlHint:`エネルギーデータ用の個別URL(空欄の場合はステータスURLを使用)`,restEnergyHint:`各値は個別のURLを使用するか、ステータスURLにフォールバックできます。乗数で単位変換が可能です(例:WhからkWhへの変換は0.001)。`,testConnection:`接続テスト`,connectionSuccess:`接続成功`,noSwitchesInSwitchbar:`スイッチバーにスイッチがありません`,enableSwitchbarHint:`設定 > スマートプラグで「スイッチバーに表示」を有効にしてください`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`メール`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`SMTPメール通知`,telegram:`Telegramボット経由の通知`,discord:`Webhook経由でDiscordチャンネルに送信`,ntfy:`無料のセルフホスト可能なプッシュ通知`,pushover:`シンプルで信頼性の高いプッシュ通知`,callmebot:`CallMeBot経由の無料WhatsApp通知`,webhook:`任意のURLへの汎用HTTP POST`,homeassistant:`Home Assistantダッシュボードの永続通知`,bark:`Bark経由のiOSプッシュ通知(セルフホスト可能)`},lastSuccess:`最終: {{date}}`,error:`エラー`,printer:`プリンター:`,allPrinters:`すべてのプリンター`,sendTestNotification:`テスト通知を送信`,eventSettings:`イベント設定`,enabled:`有効`,sendFromProvider:`このプロバイダーから通知を送信`,printEvents:`印刷イベント`,printerStatus:`プリンターステータス`,amsAlarms:`AMSアラーム`,amsHtAlarms:`AMS-HTアラーム`,printQueue:`印刷キュー`,start:`開始`,plateCheck:`プレートチェック`,complete:`完了`,failed:`失敗`,stopped:`停止`,progress:`進捗`,offline:`オフライン`,lowFilament:`フィラメント残量低下`,maintenance:`メンテナンス`,amsHumidity:`AMS湿度`,amsTemp:`AMS温度`,amsHtHumidity:`AMS-HT湿度`,amsHtTemp:`AMS-HT温度`,bedCooled:`ベッド冷却済み`,firstLayer:`第1層完了`,quiet:`静音`,digest:`ダイジェスト {{time}}`,printStarted:`印刷開始`,plateNotEmpty:`プレートが空でない`,plateNotEmptyDescription:`印刷前にオブジェクトが検出されました`,plateClearRequired:`プレート確認が必要`,plateClearRequiredDescription:`印刷完了、キューはプレート確認を待機中`,plateClear:`プレート確認`,printCompleted:`印刷完了`,bedCooledLabel:`ベッド冷却済み`,bedCooledDescription:`印刷後にベッドがしきい値以下に冷却`,firstLayerCompleteLabel:`第1層完了`,firstLayerCompleteDescription:`第1層完了時にスナップショット付きで通知`,missingSpoolAssignmentLabel:`スプール割り当て不足`,missingSpoolAssignmentDescription:`印刷開始時に必要トレイへスプールが未割り当ての場合に通知`,printFailed:`印刷失敗`,printStopped:`印刷停止`,progressMilestones:`進捗マイルストーン`,progressMilestonesDescription:`25%、50%、75%で通知`,printerOffline:`プリンターオフライン`,printerError:`プリンターエラー`,aiFailureDetection:`AI 故障検出`,aiFailureDetectionDescription:`Obico AI が印刷の不具合の可能性を検出したときに通知`,lowFilamentLabel:`フィラメント残量低下`,maintenanceDue:`メンテナンス期限`,maintenanceDueDescription:`メンテナンスが必要な場合に通知`,amsHumidityHigh:`AMS湿度高`,amsHumidityHighDescription:`通常AMSの湿度がしきい値を超過`,amsTemperatureHigh:`AMS温度高`,amsTemperatureHighDescription:`通常AMSの温度がしきい値を超過`,amsHtHumidityHigh:`AMS-HT湿度高`,amsHtHumidityHighDescription:`AMS-HTの湿度がしきい値を超過`,amsHtTemperatureHigh:`AMS-HT温度高`,amsHtTemperatureHighDescription:`AMS-HTの温度がしきい値を超過`,inventoryAlerts:`在庫アラート`,stockReorderAlert:`発注アラート`,stockReorderAlertDescription:`SKUが発注点に達しました`,stockBreakAlert:`在庫切れアラート`,stockBreakAlertDescription:`入荷前に在庫が枯渇する見込みです`,jobAdded:`ジョブ追加`,jobAddedDescription:`キューにジョブが追加されました`,jobAssigned:`ジョブ割り当て`,jobAssignedDescription:`モデルベースのジョブがプリンターに割り当てられました`,jobStarted:`ジョブ開始`,jobStartedDescription:`キュージョブの印刷が開始されました`,jobWaiting:`ジョブ待機中`,jobWaitingDescription:`フィラメントまたはプリンター待ちのジョブ`,jobSkipped:`ジョブスキップ`,jobSkippedDescription:`ジョブがスキップされました(前のジョブが失敗)`,jobFailed:`ジョブ失敗`,jobFailedDescription:`ジョブの開始に失敗しました`,queueComplete:`キュー完了`,queueCompleteDescription:`すべてのキュージョブが完了しました`,quietHours:`静音時間`,noNotificationsDuring:`この時間帯は通知を送信しません`,editProviderToChangeQuietHours:`プロバイダーを編集して静音時間を変更`,dailyDigest:`デイリーダイジェスト`,batchNotifications:`通知をまとめて1日のサマリーとして送信`,sendAt:`{{time}}に送信`,editProviderToChangeDigestTime:`プロバイダーを編集してダイジェスト時刻を変更`,edit:`編集`,deleteProvider:`通知プロバイダーを削除`,deleteConfirm:`"{{name}}"を削除してもよろしいですか?この操作は取り消せません。`,delete:`削除`,addTitle:`通知プロバイダーを追加`,editTitle:`通知プロバイダーを編集`,nameLabel:`名前 *`,namePlaceholder:`マイ通知`,providerTypeLabel:`プロバイダータイプ *`,configuration:`設定`,testConfiguration:`設定をテスト`,printerFilter:`プリンターフィルター`,onlyFromPrinter:`このプリンターからのイベントのみ通知を送信`,quietHoursDnd:`静音時間(おやすみモード)`,quietStart:`開始`,quietEnd:`終了`,dailyDigestLabel:`デイリーダイジェスト`,sendDigestAt:`ダイジェスト送信時刻`,digestCollected:`イベントが収集され、この時刻にまとめて送信されます`,notificationEvents:`通知イベント`,progressPercent:`(25%、50%、75%)`,bedCooledAfterPrint:`(印刷完了後)`,eventPriority:{sectionTitle:`ntfy 優先度`,helpNtfy:`有効な各イベントに優先度を選択してください。ntfy はこれを使って通知の挙動(音、表示、プッシュ動作)を切り替えます。ここで設定していないレベルは ntfy サーバーのデフォルトを使用します。`,min:`最小`,low:`低`,default:`デフォルト`,high:`高`,urgent:`緊急`},cancel:`キャンセル`,save:`保存`,add:`追加`,nameRequired:`名前は必須です`,fieldRequired:`{{field}}は必須です`,haDataInvalid:`Dataフィールドは有効なJSONオブジェクトである必要があります(例: {"priority": "high", "ttl": 0})`,phoneNumber:`電話番号`,apiKey:`APIキー`,serverUrl:`サーバーURL`,topic:`トピック`,authToken:`認証トークン`,userKey:`ユーザーキー`,appToken:`アプリトークン`,priority:`優先度`,pushoverRetry:`緊急再通知 (秒)`,pushoverExpire:`緊急有効期限 (秒)`,botToken:`ボットトークン`,chatId:`チャットID`,telegramThreadId:`フォーラムトピック ID`,telegramThreadIdHelp:`任意。フォーラムグループ内の特定のトピックに送信します。トピックリンクの末尾の数字です (t.me/c/.../25)。空欄の場合は General トピックに送信されます。`,telegramThreadIdInvalid:`フォーラムトピック ID は数値で入力してください。`,smtpServer:`SMTPサーバー`,smtpPort:`SMTPポート`,security:`セキュリティ`,authentication:`認証`,username:`ユーザー名`,password:`パスワード`,fromEmail:`送信元メール`,toEmail:`宛先メール`,webhookUrl:`WebhookのURL`,payloadFormat:`ペイロード形式`,authorization:`認可`,titleFieldName:`タイトルフィールド名`,messageFieldName:`メッセージフィールド名`,editTemplate:`テンプレートを編集: {{name}}`,titleLabel:`タイトル`,bodyLabel:`本文`,titlePlaceholder:`通知タイトル...`,bodyPlaceholder:`通知本文...`,availableVariables:`利用可能な変数`,clickToInsert:`クリックして本文のカーソル位置に挿入`,livePreview:`ライブプレビュー`,hide:`非表示`,show:`表示`,loadingPreview:`プレビューを読み込み中...`,enterTemplateContent:`テンプレートの内容を入力するとプレビューが表示されます`,titlePreview:`タイトル:`,bodyPreview:`本文:`,resetToDefault:`デフォルトにリセット`,titleRequired:`タイトルは必須です`,bodyRequired:`本文は必須です`,notificationLog:`通知ログ`,showFailedOnly:`失敗のみ`,last24Hours:`過去24時間`,last7Days:`過去7日間`,last30Days:`過去30日間`,last90Days:`過去90日間`,justNow:`たった今`,noFailedNotifications:`失敗した通知はありません`,noNotificationsLogged:`記録された通知はありません`,unknownProvider:`不明なプロバイダー`,logTitle:`タイトル`,logMessage:`メッセージ`,logError:`エラー`,logProvider:`プロバイダー: {{type}}`,logTime:`時刻: {{time}}`,refresh:`更新`,clearOld:`古いものを削除`,statsSummary:`過去{{days}}日間:`,statsNotifications:`通知`,statsSent:`{{count}}件送信`,statsFailed:`{{count}}件失敗`,eventTypes:{print_start:`印刷開始`,print_complete:`印刷完了`,print_failed:`印刷失敗`,print_stopped:`印刷停止`,print_progress:`進捗`,printer_offline:`プリンターオフライン`,printer_error:`プリンターエラー`,filament_low:`フィラメント残量低下`,maintenance_due:`メンテナンス期限`,test:`テスト`},userEmail:{title:`通知`,emailNotifications:`メール通知`,emailNotificationsDesc:`自分の印刷ジョブに対してメール通知を受け取ります。メールは高度な認証で設定されたSMTP設定を使用して送信されます。`,sendingTo:`通知の送信先`,noEmailWarning:`アカウントにメールアドレスが設定されていません。管理者に連絡して追加してもらってください。`,printJobNotifications:`印刷ジョブ通知`,printJobNotificationsDesc:`送信した印刷ジョブのどのイベントでメール通知を送るかを選択します。`,printJobStarts:`印刷ジョブ開始`,printJobStartsDesc:`印刷ジョブが開始されたときに通知を受け取る。`,printJobFinishes:`印刷ジョブ完了`,printJobFinishesDesc:`印刷ジョブが正常に完了したときに通知を受け取る。`,printErrors:`印刷エラー`,printErrorsDesc:`印刷ジョブが失敗またはエラーが発生したときに通知を受け取る。`,printJobStops:`印刷ジョブ停止`,printJobStopsDesc:`印刷ジョブがキャンセルまたは停止されたときに通知を受け取る。`,saveSuccess:`通知設定を保存しました。`,saveError:`通知設定の保存に失敗しました。`}},richTextEditor:{bold:`太字`,italic:`斜体`,underline:`下線`,bulletList:`箇条書きリスト`,numberedList:`番号付きリスト`,alignLeft:`左揃え`,alignCenter:`中央揃え`,alignRight:`右揃え`,addLink:`リンクを追加`,removeLink:`リンクを削除`},externalLinks:{title:`サイドバーリンク`,sidebarLayout:`サイドバー`,sidebarLayoutDescription:`組み込みページの表示/非表示を切り替え、外部リンクを追加し、項目をドラッグしてサイドバーナビゲーションを並べ替えます。`,systemPages:`Bambuddyページ`,externalLinks:`外部リンク`,visibleInSidebar:`サイドバーに表示`,hiddenFromSidebar:`サイドバーで非表示`,requiredInSidebar:`サイドバーで必須`,hidePage:`ページを非表示`,showPage:`ページを表示`,settingsCannotBeHidden:`設定は非表示にできません`,noLinksConfigured:`外部リンクが設定されていません`,deleteLink:`リンクを削除`,removeCustomIcon:`カスタムアイコンを削除`,openInNewTab:`新しいタブで開く`,placeholders:{linkName:`マイリンク`}},keyboardShortcuts:{title:`キーボードショートカット`,navigation:`ナビゲーション`,archivesSection:`アーカイブ`,kProfilesSection:`Kプロファイル`,generalSection:`全般`,shortcuts:{goToPrinters:`プリンターへ移動`,goToArchives:`アーカイブへ移動`,goToQueue:`キューへ移動`,goToStats:`統計へ移動`,goToProfiles:`クラウドプロファイルへ移動`,goToSettings:`設定へ移動`,focusSearch:`検索にフォーカス`,openUploadModal:`アップロードモーダルを開く`,clearSelection:`選択をクリア / 入力をぼかす`,contextMenu:`カードのコンテキストメニュー`,refreshProfiles:`プロファイルを更新`,newProfile:`新しいプロファイル`,exitSelectionMode:`選択モードを終了`,showHelp:`このヘルプを表示`},footer:`Escキーを押すか外側をクリックして閉じます`},notificationLog:{title:`通知ログ`,events:{printStarted:`印刷開始`,printComplete:`印刷完了`,printFailed:`印刷失敗`,printStopped:`印刷停止`,progress:`進捗`,printerOffline:`プリンターオフライン`,printerError:`プリンターエラー`,lowFilament:`フィラメント残量低下`,maintenanceDue:`メンテナンス期限`,test:`テスト`},timeAgo:{justNow:`たった今`,minutesAgo:`{{minutes}}分前`,hoursAgo:`{{hours}}時間前`}},restoreBackup:{title:`バックアップを復元`,restoring:`復元中...`,restoreComplete:`復元完了`,restoreFailed:`復元失敗`,importSettings:`バックアップファイルから設定をインポート`,pleaseWait:`データの復元中です。しばらくお待ちください`,clickToSelect:`クリックしてバックアップファイルを選択(.jsonまたは.zip)`,howDuplicateHandling:`重複の処理方法:`,categories:{printers:`プリンター`,smartPlugs:`スマートプラグ`,notificationProviders:`通知プロバイダー`,filaments:`フィラメント`,archives:`アーカイブ`,pendingUploads:`保留中のアップロード`,settingsTemplates:`設定とテンプレート`},matchingInfo:{printers:`シリアル番号で照合`,smartPlugs:`IPアドレスで照合`,notificationProviders:`名前で照合`,filaments:`名前+タイプ+ブランドで照合`,archives:`コンテンツハッシュで照合`,pendingUploads:`ファイル名で照合`,settingsTemplates:`常に上書き`},replaceExisting:`既存データを置き換え`,keepExisting:`既存データを保持`,replaceDescription:`既に存在するアイテムをバックアップデータで上書き`,keepDescription:`まだ存在しないアイテムのみを復元`,caution:`注意:`,cautionText:`上書きすると現在の構成がバックアップデータに置き換えられます。セキュリティ上の理由から、プリンターのアクセスコードは上書きされません。`,itemsRestored:`復元されたアイテム`,itemsSkipped:`スキップされたアイテム`,restored:`復元済み`,skipped:`スキップ(既に存在)`,filesLabel:`ファイル(3MF、サムネイルなど)`,newApiKeysGenerated:`新しいAPIキーが生成されました`,newApiKeysWarning:`これらのキーは一度だけ表示されます。今すぐコピーしてください!`,processingBackup:`バックアップファイルを処理中...`,noDataFound:`バックアップファイルに復元するデータが見つかりませんでした。`,failedToRestore:`バックアップの復元に失敗しました。ファイル形式を確認してください。`},backupExport:{title:`バックアップをエクスポート`,selectData:`含めるデータを選択`,selectAll:`すべて選択`,selectNone:`なし`,categoryDescriptions:{settings:`言語、テーマ、更新設定`,notifications:`ntfy、Pushover、Discordなど`,templates:`カスタムメッセージテンプレート`,smartPlugs:`Tasmotaプラグ設定`,externalLinks:`サイドバーの外部サービスへのリンク`,printers:`プリンター情報(アクセスコード除外)`,plateDetection:`空プレート参照画像`,filaments:`フィラメントの種類とコスト`,maintenance:`カスタムメンテナンススケジュール`,archives:`すべての印刷データ+ファイル(3MF、サムネイル、写真)`,projects:`プロジェクト、BOMアイテム、添付ファイル`,pendingUploads:`仮想プリンターアップロード待機中`,apiKeys:`Webhook APIキー(インポート時に新しいキーが生成されます)`},requiresPrinters:`プリンターを選択する必要があります`,zipFileWarning:`ZIPファイルが作成されます。`,zipFileDescription:`すべての3MFファイル、サムネイル、タイムラプス、写真が含まれます。これには時間がかかり、大きなファイルになる可能性があります。`,includeAccessCodes:`アクセスコードを含める`,includeAccessCodesDescription:`別のマシンへの転送用`,includeAccessCodesWarning:`アクセスコードはプレーンテキストで含まれます。このバックアップファイルを安全に保管してください!`,categoriesSelected:`{{selectedCount}}カテゴリー選択済み`},pendingUploads:{placeholders:{notes:`この印刷に関するメモを追加...`},discardUpload:`アップロードを破棄`,archiveAllUploads:`すべてのアップロードをアーカイブ`,discardAllUploads:`すべてのアップロードを破棄`,archive:`アーカイブ`,timeAgo:{justNow:`たった今`,minutesAgo:`{{minutes}}分前`,hoursAgo:`{{hours}}時間前`,daysAgo:`{{days}}日前`}},apiBrowser:{placeholders:{requestBody:`JSONリクエストボディ...`,searchEndpoints:`エンドポイントを検索...`}},configureAmsSlot:{title:`AMSスロットの設定`,slotConfigured:`スロットを設定しました!`,configuringSlot:`スロットを設定中:`,slotLabel:`{{ams}} スロット {{slot}}`,searchPresets:`プリセットを検索...`,colorPlaceholder:`色名またはHex(例: 茶色、FF8800)`,clearCustomColor:`カスタム色をクリア`,noCloudPresets:`クラウドプリセットがありません。Bambu Cloudにログインして同期してください。`,noPresetsAvailable:`プリセットがありません。Bambu Cloudにログインするか、ローカルプロファイルをインポートしてください。`,noMatchingPresets:`一致するプリセットが見つかりません。`,custom:`カスタム`,builtin:`内蔵`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`設定をプリンターに送信しました`,filamentProfile:`フィラメントプロファイル`,kProfileLabel:`Kプロファイル(Pressure Advance)`,filteringFor:`フィルター中: {{material}}`,noKProfile:`Kプロファイルなし(デフォルト0.020を使用)`,noMatchingKProfiles:`一致するKプロファイルが見つかりません。デフォルトK=0.020が使用されます。`,otherKProfiles:`このプリンターの他のKプロファイル`,selectFilamentFirst:`まずフィラメントプロファイルを選択してください`,kFromCalibration:`K={{value}}(プリンターキャリブレーションから)`,customColorLabel:`カスタム色(オプション)`,presetColors:`{{name}}の色:`,showLessColors:`色を減らす`,showMoreColors:`色をもっと表示`,clear:`クリア`,hexLabel:`16進: #{{hex}}`,resetting:`リセット中...`,resetSlot:`スロットをリセット`,cancel:`キャンセル`,configuring:`設定中...`,configureSlot:`スロットを設定`},githubBackup:{title:`Gitバックアップ`,history:`履歴`,downloadBackup:`バックアップをダウンロード`,restoreBackup:`バックアップを復元`,noBackupsYet:`バックアップはまだありません`},emailSettings:{placeholders:{fromName:`Bambuddy`}},tagManagement:{searchTags:`タグを検索...`,renameTag:`タグ名を変更`,deleteTag:`タグを削除`},notificationTemplates:{placeholders:{title:`通知タイトル...`,body:`通知本文...`}},batchTag:{placeholders:{newTag:`新しいタグを入力...`}},photoGallery:{deletePhoto:`写真を削除`},filamentHoverCard:{copySpoolUuid:`スプールUUIDをコピー`},kProfilesView:{hasNote:`メモあり`,copyProfile:`プロファイルをコピー`},layout:{openMenu:`メニューを開く`,noPermissionSystemInfo:`システム情報を表示する権限がありません`},dashboard:{dragToReorder:`ドラッグして並べ替え`,hideWidget:`ウィジェットを非表示`},notificationProviderCard:{deleteNotificationProvider:`通知プロバイダーを削除`},fileManagerModal:{closeFileManager:`ファイルマネージャーを閉じる`,sortFiles:`ファイルを並べ替え`,goToParentFolder:`親フォルダーへ移動`,threeView:`3Dビュー`},embeddedCameraViewer:{refreshStream:`ストリームを更新`,close:`閉じる`,zoomOut:`ズームアウト`,resetZoom:`ズームをリセット`,zoomIn:`ズームイン`,dragToResize:`ドラッグしてサイズ変更`},timelapseViewer:{skipBack5s:`5秒戻る`,skipForward5s:`5秒進む`},notificationProviders:{descriptions:{email:`SMTP電子メール通知`,telegram:`Telegramボット経由の通知`,discord:`Webhookを介してDiscordチャンネルに送信`,ntfy:`無料でセルフホスト可能なプッシュ通知`,pushover:`シンプルで信頼性の高いプッシュ通知`,callmebot:`CallMeBot経由の無料WhatsApp通知`,webhook:`任意のURLへのジェネリックHTTP POST`}},logViewer:{searchPlaceholder:`メッセージまたはロガー名を検索...`,noLogEntries:`ログエントリが見つかりません`},switchbarPopover:{noSwitchesInSwitchbar:`スイッチバーにスイッチがありません`},projectPageModal:{placeholders:{title:`タイトル`,designer:`デザイナー`,license:`ライセンス`,description:`説明を入力...`,profileTitle:`プロファイルタイトル`,profileDescription:`プロファイルの説明...`}},spoolmanSettings:{},time:{unknown:`-`,waiting:`待機中`,justNow:`たった今`,now:`今すぐ`,minsAgo:`{{count}}分前`,inMins:`あと{{count}}分`,hoursAgo:`{{count}}時間前`,inHours:`あと{{count}}時間`,daysAgo:`{{count}}日前`,inDays:`あと{{count}}日`},spoolbuddy:{nav:{dashboard:`ダッシュボード`,ams:`AMS`,inventory:`インベントリ`,writeTag:`書込み`,settings:`設定`},status:{nfcReady:`NFC準備完了`,nfcOff:`NFCオフ`,offline:`オフライン`,online:`オンライン`,noPrinters:`プリンターなし`,deviceOffline:`デバイスオフライン`,waitingConnection:`デバイス接続を待っています...`,systemReady:`システム準備完了`,status:`ステータス`},dashboard:{readyToScan:`スキャン準備完了`,idleMessage:`スプールを計量台に置いて識別します`,nfcHint:`NFCタグは自動的に読み取られます`,device:`デバイス`,syncWeight:`重量同期`,weightSynced:`同期完了!`,unknownTag:`不明なタグ`,newTag:`新しいタグを検出`,onScale:`計量中`,linkSpool:`スプールにリンク`,linkTagTitle:`タグをスプールにリンク`,linkTag:`タグをリンク`,selectSpool:`このタグにリンクするスプールを選択:`,noUntagged:`タグなしのスプールが見つかりません`,tagDetected:`タグ検出`,noTag:`タグなし`,tagId:`タグ`,grossWeight:`総重量`,spoolSize:`スプールサイズ`,close:`閉じる`,currentSpool:`現在のスプール`,plateReady:`プレート準備完了: {{name}}`,plateReadyLabel:`片付け待ちプレート`,plateClearAction:`片付け`,plateClearedToast:`プレートを片付け済みにしました`,plateClearFailed:`プレートを片付け済みにできませんでした`},modal:{spoolDetected:`スプール検出`,assignToAms:`AMSに割り当て`,syncWeight:`重量同期`,weightSynced:`同期完了!`,syncing:`同期中...`,newTagDetected:`新しいタグを検出`,addToInventory:`インベントリに追加`,assignToAmsTitle:`AMSに割り当て`,selectSlot:`スロットを選択`,assign:`割り当て`,assigning:`割り当て中...`,assignSuccess:`割り当て完了!`,assignPendingInsert:`割り当てました。スプールを挿入したときにスロットが設定されます。`,assignError:`スプールの割り当てに失敗しました。再試行してください。`,noPrinterSelected:`プリンターを選択...`,noAmsDetected:`このプリンターにAMSが検出されません`,slot:`スロット`},weight:{noReading:`読み取りなし`,stable:`安定`,measuring:`計測中...`,tare:`風袋引き`,calibrate:`キャリブレーション`},spool:{remaining:`残量`,material:`素材`,brand:`ブランド`,color:`色`,coreWeight:`コア`,labelWeight:`ラベル`,scaleWeight:`計量`,netWeight:`正味`,lastUsed:`最終使用`},ams:{noData:`AMSが検出されません`,connectAms:`AMSを接続してスロットを表示`,noPrinter:`プリンター未選択`,selectPrinter:`上部バーからプリンターを選択`,printerDisconnected:`プリンター切断`,humidity:`湿度`,level:`レベル`,active:`アクティブ`,slot:`スロット`,empty:`空`},inventory:{search:`スプールを検索...`,empty:`インベントリにスプールがありません`,noResults:`一致するスプールがありません`,spools:`スプール`,addSpool:`スプール追加`},settings:{tabDevice:`デバイス`,tabDisplay:`ディスプレイ`,tabScale:`計量`,tabUpdates:`アップデート`,nfcReader:`NFCリーダー`,type:`タイプ`,connection:`接続`,notConnected:`該当なし`,deviceInfo:`デバイス情報`,hostname:`ホスト`,uptime:`稼働時間`,brightness:`明るさ`,saved:`保存済み`,noBacklight:`DSIバックライトが検出されませんでした。明るさ制御にはDSIディスプレイが必要です。`,screenBlank:`画面オフタイムアウト`,screenBlankDesc:`操作がないと画面がオフになります。タッチで復帰。`,displayNote:`明るさはソフトウェアフィルターとして適用されます。`,scaleCalibration:`計量キャリブレーション`,currentWeight:`現在の重量`,tareOffset:`風袋`,calFactor:`係数`,knownWeight:`既知の重量`,calStep1:`計量台からすべてのアイテムを取り除き、ゼロ設定を押してください。`,calStep2:`既知の重量を計量台に置いてください。`,setZero:`ゼロ設定`,calibrateNow:`キャリブレーション`,calibrated:`キャリブレーション済み`,tareSet:`風袋コマンドを送信しました。デバイスを待っています...`,tareComplete:`風袋が完了しました!`,tareTimedOut:`風袋がタイムアウトしました — SpoolBuddy デーモンは起動していますか?`,tareFailed:`風袋コマンドの送信に失敗しました`,zeroSet:`ゼロ点を設定しました。既知の重量を計量台に置いてください。`,calibrationDone:`キャリブレーション完了!`,calibrationFailed:`キャリブレーションに失敗しました`,lastCalibrated:`最終キャリブレーション`,stable:`安定`,settling:`安定化中...`,firmware:`ファームウェア`,scale:`計量`,noDevice:`SpoolBuddyデバイスが見つかりません`,daemonVersion:`デーモンバージョン`,currentVersion:`現在`,versionPending:`デーモンを待っています...`,checking:`確認中...`,checkUpdates:`アップデートを確認`,updateAvailable:`アップデートあり`,updateInstructions:`SSH経由で更新:SpoolBuddyインストールスクリプトを実行してください。`,upToDate:`最新です`,includeBeta:`ベータ版を含む`,systemConfig:`バックエンドと認証`,backendUrl:`BambuddyバックエンドURL`,apiToken:`APIトークン`,apiTokenPlaceholder:`APIトークンを入力`,saveConfig:`設定を保存`,systemQueued:`設定をキューに追加しました。`,systemFieldsRequired:`バックエンドURLは必須です。`,nfcDiagnostic:`NFC診断`,scaleDiagnostic:`スケール診断`,readTagDiagnostic:`タグ読み取り診断`,testNfc:`リーダーをテスト`,testScale:`精度をテスト`,testReadTag:`タグを読み取り`},writeTag:{tabExisting:`既存のスプール`,tabNew:`新規スプール`,tabReplace:`タグ交換`,searchPlaceholder:`素材、色、ブランドで検索...`,noUntaggedSpools:`タグなしのスプールがありません`,noTaggedSpools:`タグ付きのスプールがありません`,selectSpool:`スプールを選択し、NTAGをリーダーに置いてください`,placeTag:`NTAGをリーダーに置いてください`,tagReady:`タグ検出 — 書込み準備完了`,writeTag:`タグ書込み`,replaceTag:`タグ交換`,writing:`タグ書込み中...`,waiting:`SpoolBuddyを待機中...`,writeSuccess:`タグの書込みが完了しました!`,writeFailed:`書込み失敗`,queueFailed:`書込みコマンドのキューに失敗しました`,tryAgain:`再試行`,cancel:`キャンセル`,replaceWarning:`古いタグのリンクが解除され、新しいタグに置き換わります。`,deviceOffline:`SpoolBuddyはオフラインです`,material:`素材`,colorName:`色名`,color:`色`,brand:`ブランド`,weight:`重量 (g)`,createSpool:`スプール作成`,creating:`作成中...`,spoolCreated:`スプール作成完了!書込み準備ができました。`,createFailed:`スプールの作成に失敗しました`,incompleteDataWarning:`不完全なSpoolmanデータでタグを書き込みました`},quickMenu:{printerPower:`プリンター電源`,systemControls:`システム`,restartDaemon:`デーモン再起動`,restartBrowser:`ブラウザ再起動`,reboot:`再起動`,shutdown:`シャットダウン`,swipeToClose:`下にスワイプして閉じる`,confirmTitle:`確認`,confirmShutdown:`SpoolBuddyをシャットダウンしますか?再起動するには物理的なアクセスが必要です。`,confirmReboot:`SpoolBuddyを再起動しますか?`,confirmRestartDaemon:`SpoolBuddyデーモンを再起動しますか?NFCとスケールが一時的に使用できなくなります。`,confirmRestartBrowser:`キオスクブラウザを再起動しますか?画面が一時的に暗くなります。`,confirm:`確認`,confirmPlugOn:`{{name}}をオンにしますか?`,confirmPlugOff:`{{name}}をオフにしますか?`,turnOn:`オン`,turnOff:`オフ`}},diagnostic:{modalTitle:`接続診断 — {{name}}`,running:`診断を実行中...`,runningElapsed:`診断を実行中... ({{elapsed}}秒)`,waitingForReportHint:`プリンターがステータスレポートを送信するのを待っています — 最大 {{max}} 秒かかる場合があります。`,runFailed:`診断を実行できませんでした: {{error}}`,retry:`再実行`,runButton:`診断を実行`,sectionTitle:`接続診断`,sectionDescription:`プリンターが接続できない、または印刷できない原因を確認します — ポートの到達性、LAN開発者モード、Dockerネットワークモード、認証情報。`,noPrinters:`プリンターが設定されていません。`,overall:{ok:`問題は見つかりませんでした — プリンター接続は正常のようです。`,warnings:`プリンターは動作するはずですが、いくつかの点に注意が必要です。`,problems:`プリンターが接続できない、または印刷できない原因となる問題が見つかりました。`},check:{port_mqtt:{title:`制御ポート (MQTT 8883)`,pass:`到達可能 — プリンターは制御接続を受け付けています。`,fail:`ポート8883に到達できません。プリンターの電源が切れている、IPアドレスが異なる、またはファイアウォールがブロックしています。プリンターのIPと、ポート8883が何にもブロックされていないことを確認してください。`},port_ftps:{title:`ファイル転送ポート (FTPS 990)`,pass:`到達可能 — 印刷ファイルの送信は機能します。`,warn:`ポート990に到達できません。監視は引き続き機能する場合がありますが、プリンターへの印刷送信は失敗します。ポート990がブロックされていないことを確認してください。`},external_storage:{title:`送信ファイルを外部ストレージに保存 (インストール手順4)`,pass:`プリンターはこのオプションが有効と報告しています — 送信されたファイルはSDカードに保存され、アーカイブにはサムネイルとスライサーメタデータが含まれます。`,fail:`プリンターはこのオプションが無効と報告しています。「送信ファイルを外部ストレージに保存」を有効にしてください — 新しいファームウェア (P2S 01.02 / Bambu Studio 2.6以降) ではプリンター本体の印刷設定にトグルがあります。古いバージョンでは Bambu Studio / OrcaSlicer のデバイスタブにあります。この設定がないと、アーカイブされた印刷にはサムネイルもスライサーメタデータも残りません。`,skip:`未確認 — アクティブなMQTT接続が必要です。古いスライサーでこの設定がスライサー側のみに存在する場合、プリンターはそれを報告しないため、オプションが無効でもこのチェックは通過します — インストール手順4を手動で確認してください。`,skip_unsupported_model:`このモデルにはSDスロットがありますが、オプションを有効にする方法がありません — 現在のP1シリーズのファームウェアはBambu Studioにトグルを表示せず、プリンターに画面もありません。ここで修正すべきことはありません。Bambu Labがファームウェアで対応するまで、アーカイブされた印刷にはサムネイルやスライサーのメタデータが欠ける場合があります。`},port_rtsps:{title:`カメラポート ({{protocol}} {{port}})`,pass:`到達可能 — カメラストリームは機能します。`,warn:`ポート{{port}}に到達できません。ライブカメラ表示は機能しません。これは印刷には影響しません。`},network_mode:{title:`Dockerネットワークモード`,pass:`ホストネットワークモードで実行中です。`,warn:`BambuddyはDockerブリッジネットワークで実行されています。プリンター検出と仮想プリンターにはホストネットワークモードが必要です — "network_mode: host" でコンテナを再作成してください。`,skip:`Dockerで実行されていません — 該当しません。`},subnet:{title:`ネットワークサブネット`,pass:`プリンターとBambuddyは同じサブネットにあります。`,warn:`プリンター ({{printer_ip}}) とBambuddy ({{host_ip}}) は異なるサブネットにあります。サブネット間のルーティングが設定されていない限り、互いに到達できない可能性があります。`,skip:`サブネットを判定できませんでした — スキップしました。`},mqtt_auth:{title:`プリンター認証情報`,pass:`プリンターが接続を受け入れました。`,fail:`プリンターには到達できますが、Bambuddy は接続されていません。アクセスコードまたはシリアル番号が間違っている可能性が高いです — アクセスコードは LAN のみモードや開発者モードを切り替えるたびに変わるため、プリンター画面から再度コピーしてください。再起動中のプリンターや、同時接続数の上限に達しているプリンターでも同じ表示になります。`,fail_auth_rejected:`プリンターが Bambuddy の認証情報を拒否しました。アクセスコードまたはシリアル番号が間違っています — アクセスコードは LAN のみモードや開発者モードを切り替えるたびに変わります。プリンター画面から再度コピーし、プリンター設定に保存してください。`,skip:`未確認 — プリンターに到達できませんでした。`},developer_mode:{title:`LAN開発者モード`,pass:`開発者モードは有効です。`,fail:`プリンターの開発者モードがオフです。プリンターのLAN設定で有効にし、OKで確定してください。これがないと印刷は開始されません。`,skip:`確認できませんでした — プリンターへのアクティブな接続が必要です。`},printer_publishing:{title:`プリンターがステータスを送信中`,pass:`プリンターはステータス更新を送信しています — AMS、フィラメント、Kプロファイルがスライサーに正しくミラーされます。`,fail:`MQTTブローカーは接続を受け付けましたが、プリンターはステータスレポートを一切送信していません。ほぼ常にシリアル番号の誤りまたは大文字小文字の不一致が原因です — device//api/v1/metrics per monitoraggio Prometheus/Grafana.`,bearerTokenOptional:`Token Bearer (opzionale)`,bearerTokenHint:`Se impostato, le richieste devono includere Authorization: Bearer `,metricsConnectionStatus:`Stato connessione`,metricsPrinterState:`Stato stampante (idle/printing/ecc)`,metricsPrintProgress:`Progresso stampa 0-100%`,metricsBedTemp:`Temperatura piatto`,metricsNozzleTemp:`Temperatura ugello`,metricsPrintsTotal:`Stampe totali per risultato`,metricsMore:`...e altro (strati, ventole, coda, consumo filamento)`,smartPlugsDescription:`Connetti prese smart (Tasmota o Home Assistant) per automatizzare il controllo dell'alimentazione e monitorare il consumo energetico delle stampanti.`,allOn:`Tutte accese`,allOff:`Tutte spente`,addSmartPlug:`Aggiungi presa smart`,energySummary:`Riepilogo energia`,currentPower:`Potenza attuale`,plugsOnline:`{{reachable}}/{{total}} prese online`,today:`Oggi`,yesterday:`Ieri`,total:`Totale`,enablePlugsForSummary:`Abilita le prese per vedere il riepilogo energia`,addNotificationProvider:`Aggiungi`,systemBadge:`(Sistema)`,creating:`Creazione...`,changing:`Modifica...`,deleteUserAndItems:`Elimina utente E i suoi elementi`,deleteUserKeepItems:`Elimina utente, mantieni elementi (diventeranno senza proprietario)`,ok:`OK`,twoFa:{totpTitle:`App Authenticator (TOTP)`,totpDesc:`Usa un'app come Google Authenticator, Aegis o Authy.`,emailOtpTitle:`OTP via e-mail`,emailOtpDesc:`Invia un codice monouso a {{email}} al momento del login.`,emailOtpNoEmail:`Aggiungi un indirizzo e-mail al tuo account per abilitare questo metodo.`,addEmailFirst:`Il tuo account non ha un indirizzo e-mail. Chiedi a un amministratore di aggiungerne uno.`,setupTotp:`Configura app Authenticator`,setupAuthApp:`Configura app Authenticator`,setupInstructions:`Scansiona il codice QR con la tua app authenticator, poi conferma con un codice.`,manualEntry:`Impossibile scansionare? Inserisci questo segreto manualmente:`,scannedContinue:`Codice scansionato — continua`,enterCodeToConfirm:`Inserisci il codice a 6 cifre dalla tua app authenticator per confermare.`,activate:`Attiva`,disableTotp:`Disabilita Authenticator`,disableConfirmHint:`Inserisci un codice TOTP valido o un codice di backup per disabilitare l'authenticator.`,totpDisabled:`App Authenticator disabilitata.`,emailOtpEnabled:`OTP via e-mail abilitato.`,emailOtpDisabled:`OTP via e-mail disabilitato.`,smtpRequired:`Configura e testa prima le impostazioni SMTP.`,invalidCode:`Codice non valido. Riprova.`,enableEmailOtp:`Abilita OTP via e-mail`,disableEmailOtp:`Disabilita OTP via e-mail`,emailSetupEnterCode:`È stato inviato un codice di verifica al tuo indirizzo e-mail. Inseriscilo qui sotto per confermare che possiedi questa casella di posta.`,verifyAndEnable:`Verifica e abilita`,emailDisablePasswordHint:`Inserisci la password del tuo account per confermare la disabilitazione dell'OTP via e-mail.`,passwordPlaceholder:`Inserisci la tua password`,backupCodesTitle:`Salva i tuoi codici di backup`,backupCodesWarning:`Conserva questi codici in un posto sicuro. Ogni codice può essere usato una sola volta.`,backupCodesRemaining:`{{count}} codici di backup rimanenti`,savedCodes:`Codici salvati`,regenBackup:`Rigenera codici di backup`,regenBackupHint:`Inserisci il tuo codice TOTP corrente per generare 10 nuovi codici di backup.`,newBackupCodes:`Nuovi codici di backup`,linkedAccounts:`Account SSO collegati`,linkedAccountsDesc:`Questi provider di identità esterni sono collegati al tuo account.`,oidcUnlinked:`Account scollegato.`},sessionPolicy:{title:`Criterio di sessione`,description:`Durata massima della sessione per i nuovi accessi utente. I token già emessi mantengono la scadenza originale.`,preset24h:`24 ore`,preset7d:`7 giorni`,preset30d:`30 giorni`,customHoursLabel:`Durata personalizzata della sessione in ore`,hoursSuffix:`ore`,warning:`Le sessioni più lunghe riducono la protezione di disconnessione automatica. Consigliato solo per installazioni mono-utente attendibili.`},oidc:{title:`Provider SSO / OIDC`,desc:`Configura provider OpenID Connect per il single sign-on.`,addProvider:`Aggiungi provider`,newProvider:`Nuovo provider`,empty:`Nessun provider OIDC configurato.`,created:`Provider creato.`,updated:`Provider aggiornato.`,deleted:`Provider eliminato.`,refreshIcon:`Aggiorna icona`,removeIcon:`Rimuovi icona`,iconRefreshed:`Icona aggiornata.`,iconRemoved:`Icona rimossa.`,iconFetchFailed:`Impossibile recuperare l'icona dall'URL del provider.`,deleteTitle:`Elimina provider`,deleteMessage:`Eliminare "{{name}}"? Tutti gli account collegati verranno disconnessi.`,form:{name:`Nome visualizzato`,issuerUrl:`URL emittente`,clientId:`ID client`,clientSecret:`Client secret`,scopes:`Scope`,iconUrl:`URL icona (opzionale)`,enabled:`Abilitato`,autoCreate:`Crea utenti automaticamente`,autoCreateDesc:`Crea automaticamente un account locale al primo accesso.`,autoLink:`Collega automaticamente gli account esistenti`,autoLinkDesc:`Collega gli account locali esistenti tramite email al primo accesso.`,secretHint:`lascia vuoto per mantenere`,secretPlaceholder:`nuovo segreto`,emailClaim:`Claim email`,emailClaimDesc:`Claim JWT usato come identità email. Usare 'preferred_username' o 'upn' per Azure Entra ID (che non invia email_verified). Usare solo nomi di claim affidabili.`,emailClaimPlaceholder:`e-mail`,emailClaimCustomClaimAutoLinkWarning:`I claim personalizzati sono sicuri per il collegamento automatico solo se il valore è gestito dal tenant (es. Azure Entra ID upn / preferred_username). Non abilitare il collegamento automatico se il tuo IdP consente agli utenti di auto-assegnare questo claim.`,requireEmailVerified:`Richiedi verifica email`,requireEmailVerifiedDesc:`Accetta il claim email solo se il provider lo contrassegna come verificato.`,requireEmailVerifiedWarning:`Attenzione: l'email sarà accettata senza verifica. Usare solo con provider affidabili.`,requireEmailVerifiedAutoLink:`Disabilitare prima il collegamento automatico per modificare questa impostazione.`,defaultGroup:`Gruppo predefinito`,defaultGroupDesc:`Gruppo assegnato agli utenti creati automaticamente. Ritorno a Viewers se non impostato.`,defaultGroupViewersFallback:`Viewers (predefinito)`,autologin:`Accesso automatico`,autologinDesc:`Reindirizza i visitatori non autenticati direttamente a questo provider. Solo un provider può avere questo flag.`}},encryption:{title:`Stato crittografia MFA`,enabledFromEnv:`Crittografia a riposo abilitata (chiave dalla variabile d'ambiente MFA_ENCRYPTION_KEY)`,enabledFromFile:`Crittografia a riposo abilitata (chiave caricata dalla directory dei dati)`,enabledGenerated:`Crittografia a riposo abilitata con chiave auto-generata`,notConfigured:`Crittografia a riposo non configurata`,notConfiguredDesc:`I segreti TOTP e i client_secrets OIDC sono memorizzati in chiaro. Imposta MFA_ENCRYPTION_KEY o riavvia Bambuddy con una directory dati scrivibile per generarne uno automaticamente.`,allEncrypted:`Tutti i segreti MFA sono crittografati a riposo.`,legacyRowsLabel:`Righe legacy in chiaro`,encryptedRowsLabel:`Righe crittografate`,legacyRowsWarning:`Rilevate {{count}} righe legacy in chiaro. Salva di nuovo il provider OIDC o re-iscrivi l'app authenticator dell'utente per migrare allo storage crittografato.`,backupHint:`La chiave generata automaticamente è memorizzata in DATA_DIR/.mfa_encryption_key ed è inclusa nei backup locali ZIP. Mantieni sicuri i tuoi backup o imposta MFA_ENCRYPTION_KEY esplicitamente.`,decryptionBrokenTitle:`Chiave di crittografia mancante`,decryptionBrokenError:`{{count}} record crittografati non possono essere decifrati perché la chiave di crittografia non è più disponibile. Ripristina il precedente MFA_ENCRYPTION_KEY o DATA_DIR/.mfa_encryption_key per recuperare.`,migrationErrorWarning:`{{count}} riga/righe legacy non sono state ricifrate all'avvio. Controlla i log del server e riavvia Bambuddy per riprovare.`},spoolbuddy:{infoTitle:`Dispositivi SpoolBuddy`,infoBody:`I kiosk SpoolBuddy si registrano automaticamente tramite heartbeat. Annulla la registrazione qui se un dispositivo non è più in uso o se un duplicato obsoleto è rimasto dopo un crash del daemon.`,duplicatesTitle:`{{count}} dispositivi registrati`,duplicatesBody:`Solo il primo dispositivo registrato viene utilizzato dall'interfaccia kiosk. Se uno di questi è un duplicato obsoleto da un crash, annulla la sua registrazione — un dispositivo online si ri-registrerà al prossimo heartbeat.`,empty:`Nessun dispositivo SpoolBuddy registrato.`,online:`Online`,offline:`Offline`,unregister:`Annulla registrazione`,unregisterSuccess:`Dispositivo deregistrato`,unregisterError:`Deregistrazione non riuscita`,confirmTitle:`Annullare la registrazione del dispositivo SpoolBuddy?`,confirmBody:`Questo rimuoverà "{{hostname}}" ({{deviceId}}) dal database. Se il dispositivo è online, si ri-registrerà al prossimo heartbeat.`,ipAddress:`Indirizzo IP`,firmware:`Firmware`,lastSeen:`Ultimo rilevamento`,daemonUptime:`Uptime del daemon`,systemUptime:`Uptime sistema`,never:`mai`,nfc:`NFC`,scale:`Bilancia`,cpuTemp:`Temp. CPU`,cpuLoad:`Carico CPU`,memory:`Memoria`,disk:`Disco`,update:`Aggiorna`,updateConfirmTitle:`Aggiornare il daemon Spoolbuddy?`,updateConfirmBody:`Avviare un aggiornamento software su "{{hostname}}"? Il daemon si riavvierà al termine dell'aggiornamento.`,restartBrowser:`Riavvia browser`,restartBrowserConfirmTitle:`Riavviare il browser del kiosk?`,restartBrowserConfirmBody:`Riavviare il browser del kiosk su "{{hostname}}"? Il display si oscurerà brevemente.`,restartDaemon:`Riavvia daemon`,restartDaemonConfirmTitle:`Riavviare il daemon Spoolbuddy?`,restartDaemonConfirmBody:`Riavviare il daemon Spoolbuddy su "{{hostname}}"? Il dispositivo sarà offline per alcuni secondi.`,reboot:`Riavvia`,rebootConfirmTitle:`Riavviare il dispositivo?`,rebootConfirmBody:`Riavviare "{{hostname}}"? Il dispositivo sarà offline per circa un minuto.`,shutdown:`Spegni`,shutdownConfirmTitle:`Spegnere il dispositivo?`,shutdownConfirmBody:`Spegnere "{{hostname}}"? Sarà necessario un accesso fisico per riaccenderlo.`,commandConfirm:`Conferma`,commandQueued:`Comando in coda`,commandError:`Invio comando non riuscito`},pipelineLimits:{title:`Limiti pipeline dello slicer`,maxCopiesLabel:`Copie massime per esecuzione`,maxCopiesDesc:`Limite superiore alle copie che gli operatori possono richiedere durante l'esecuzione di una pipeline. Il limite massimo lato server è 1000.`},pipelines:{title:`Pipeline dello Slicer`,subtitle:`Bundle di preset riutilizzabili (stampante + processo + filamenti + tipo di piatto). Salvane uno dal dialogo Slice e applicalo con un clic al file successivo.`,loading:`Caricamento pipeline…`,loadError:`Impossibile caricare le pipeline.`,confirmDelete:`Eliminare questa pipeline? L'operazione non può essere annullata.`,staleWarning:`Uno o più preset referenziati non esistono più. Risalva questa pipeline dal dialogo Slice per ripararla.`,empty:{title:`Nessuna pipeline ancora.`,howto:`Apri il dialogo Slice per un file, scegli stampante / processo / filamenti / piatto, poi clicca "Salva come pipeline". Le tue pipeline salvate appariranno qui.`},field:{name:`Nome pipeline`,description:`Descrizione`,targetPrinter:`Stampante di destinazione`,noTarget:`— Nessuna destinazione —`,targetKind:`Tipo destinazione`,targetKindSpecific:`Stampante specifica`,targetKindClass:`Classe stampante`,targetModelClass:`Modello stampante`,fanoutStrategy:`Strategia di distribuzione`,fanout:{max_parallel:`Max parallelo — distribuisci su qualsiasi stampante libera corrispondente`,round_robin:`Round robin — alterna tra stampanti idonee`,fill_one_first:`Riempi una prima — assegna tutte le copie a una stampante`},fanoutShort:{max_parallel:`parallelo`,round_robin:`round robin`,fill_one_first:`prima una`}},action:{save:`Salva`,cancel:`Annulla`,rename:`Rinomina`,delete:`Elimina`},slot:{printer:`Stampante`,process:`Processo`,filament:`Filamento`,filamentN:`Filamento {{n}}`,filamentAll:`Tutti i {{n}} slot`,bed:`Piatto`},group:{profiles:`Profili`,filaments:`Filamenti`},searchPlaceholder:`Cerca pipeline…`,filterTargetType:`Filtra per tipo di destinazione`,filterTarget:`Filtra per destinazione`,filter:{all:`Tutte le destinazioni`,noTarget:`Nessuna destinazione`,count:`{{shown}} / {{total}}`,noMatches:`Nessuna pipeline corrisponde ai filtri attuali.`},toast:{saved:`Pipeline salvata`,saveFailed:`Salvataggio non riuscito`,deleted:`Pipeline eliminata`,deleteFailed:`Eliminazione non riuscita`},noTargetHint:`Imposta una stampante di destinazione per eseguire`,noTargetWarning:`Imposta una stampante di destinazione prima di eseguire questa pipeline.`,runs:{lastRun:`Ultima esecuzione`,status:{queued:`in coda`,slicing:`slicing`,dispatching:`invio`,in_progress:`stampa`,completed:`completata`,failed:`fallita`,partial_failure:`fallimento parziale`,cancelled:`annullata`}}}},notification:{printStarted:{title:`Stampa avviata`,body:`{{printer}}: {{filename}} ha iniziato a stampare`},printCompleted:{title:`Stampa completata`,body:`{{printer}}: {{filename}} completata con successo`},printFailed:{title:`Stampa fallita`,body:`{{printer}}: {{filename}} fallita`},printStopped:{title:`Stampa interrotta`,body:`{{printer}}: {{filename}} interrotta`},printProgress:{title:`Avanzamento stampa`,body:`{{printer}}: {{filename}} al {{percent}}% completamento`},printerOffline:{title:`Stampante offline`,body:`{{printer}} e offline`},printerError:{title:`Errore stampante`,body:`{{printer}} – {{error}}`},filamentLow:{title:`Filamento in esaurimento`,body:`{{printer}}: Filamento in esaurimento`},maintenanceDue:{title:`Manutenzione dovuta`,body:`{{printer}}: {{items}} richiedono attenzione`}},errors:{generic:`Qualcosa e andato storto`,networkError:`Errore di rete. Controlla la connessione.`,notFound:`Non trovato`,unauthorized:`Non autorizzato`,serverError:`Errore server`,validationError:`Controlla i dati inseriti`,printerConnectionFailed:`Connessione alla stampante fallita`,saveFailed:`Salvataggio modifiche fallito`,deleteFailed:`Eliminazione fallita`,loadFailed:`Caricamento dati fallito`},hmsErrors:{title:`Errori - {{name}}`,noErrors:`Nessun errore`,viewOnWiki:`Vedi su Bambu Lab Wiki`,mqttVerifyFailedRemedy:`Attiva la modalita sviluppatore sulla stampante, riavvia la stampante e avvia di nuovo il lavoro.`,unknownCode:`Codice HMS sconosciuto — consulta la wiki di Bambu Lab per i dettagli.`,clearInstructions:`Cancella gli errori sulla stampante per rimuoverli qui.`,clearErrors:`Cancella errori`,clearSuccess:`Errori HMS cancellati`,clearFailed:`Impossibile cancellare gli errori HMS`,actionSuccess:`Azione inviata alla stampante`,actionFailed:`Impossibile inviare l'azione`,runoutExpectedSlot:`Il filamento in {{ranOut}} è esaurito. La stampante ora attende filamento compatibile in {{expected}}. Inserisci una bobina in {{expected}}, quindi seleziona Riprova.`,runoutExpectedSlotOnly:`La stampante attende filamento compatibile in {{expected}}. Inserisci lì una bobina, quindi seleziona Riprova.`,runoutSlotUnknown:`Il filamento è esaurito e la stampa è in pausa. Bambuddy non è riuscito a determinare quale slot la stampante attende ora — controlla lo schermo della stampante per lo slot richiesto.`,actions:{RESUME_PRINTING:`Riprendi stampa`,RESUME_PRINTING_DEFECTS:`Riprendi (difetti accettabili)`,RESUME_PRINTING_PROBELM_SOLVED:`Riprendi (problema risolto)`,STOP_PRINTING:`Ferma stampa`,CHECK_ASSISTANT:`Apri assistente`,FILAMENT_EXTRUDED:`Filamento estruso, continua`,RETRY_FILAMENT_EXTRUDED:`Non ancora estruso, riprova`,CONTINUE:`Completato, continua`,LOAD_VIRTUAL_TRAY:`Carica filamento`,OK_BUTTON:`OK`,FILAMENT_LOAD_RESUME:`Filamento caricato, riprendi`,JUMP_TO_LIVEVIEW:`Visualizza in diretta`,NO_REMINDER_NEXT_TIME:`Non ricordare la prossima volta`,REFRESH_NOZZLE:`Ricontrolla`,IGNORE_NO_REMINDER_NEXT_TIME:`Ignora e non ricordare`,IGNORE_RESUME:`Ignora e riprendi`,PROBLEM_SOLVED_RESUME:`Problema risolto, riprendi`,TURN_OFF_FIRE_ALARM:`Capito, spegni allarme antincendio`,RETRY_PROBLEM_SOLVED:`Riprova (problema risolto)`,CANCLE:`Annulla`,STOP_DRYING:`Ferma essiccazione`,PROCEED:`Procedi`,OK_JUMP_RACK:`OK`,ABORT:`Annulla`,DISABLE_PURIFICATION:`Disattiva purificazione per questa stampa`,DONT_REMIND_NEXT_TIME:`Non ricordarmelo`,DBL_CHECK_CANCEL:`Annulla`,DBL_CHECK_DONE:`Fatto`,DBL_CHECK_RETRY:`Riprova`,DBL_CHECK_RESUME:`Riprendi`,DBL_CHECK_OK:`Conferma`,REMOVE_CLOSE_BTN:`Chiudi`}},mqttDebug:{title:`Log debug MQTT`,searchPlaceholder:`Cerca topic o payload...`,noMessages:`Nessun messaggio registrato`,startLoggingHint:`Clicca "Avvia logging" per iniziare a catturare messaggi MQTT`,noMessagesMatch:`Nessun messaggio corrisponde al filtro`,adjustFilterHint:`Prova a modificare la ricerca o i filtri`,incoming:`In ingresso`,outgoing:`In uscita`,loggingStopped:`Logging fermato`,loggingActive:`Logging attivo - i messaggi si aggiornano automaticamente`,startLogging:`Avvia logging`,stopLogging:`Ferma logging`,clearLog:`Pulisci log`,topic:`Argomento`,timestamp:`Timestamp`,direction:`Direzione`,all:`Tutti`},printerFiles:{title:`Gestore file`,storageUsed:`Usato:`,storageFree:`Libero:`,filterPlaceholder:`Filtra file...`,deleteButton:`Elimina`,deleteFiles:`Elimina {{count}} file`,deleteFileConfirm:`Eliminare "{{name}}"? Questa azione non può essere annullata.`,deleteFilesConfirm:`Eliminare {{count}} file selezionati? Questa azione non può essere annullata.`,noFiles:`Nessun file sulla stampante`,loadingFiles:`Caricamento file...`,failedToLoad:`Caricamento file fallito`,toast:{filesDeleted:`Eliminati {{count}} file`,deleteFailed:`Eliminazione fallita: {{error}}`}},confirm:{delete:`Sei sicuro di voler eliminare questo?`,unsavedChanges:`Hai modifiche non salvate. Sei sicuro di voler uscire?`,clearQueue:`Sei sicuro di voler svuotare la coda?`},login:{title:`Login Bambuddy`,subtitle:`Accedi al tuo account`,username:`Nome utente`,usernamePlaceholder:`Inserisci il nome utente`,usernameOrEmail:`Nome utente o email`,usernameOrEmailPlaceholder:`Nome utente o @ Email`,password:`Password`,passwordPlaceholder:`Inserisci la password`,signIn:`Accedi`,signingIn:`Accesso in corso...`,rememberMe:`Ricordami`,forgotPassword:`Hai dimenticato la password?`,autologinFailed:`Accesso SSO automatico fallito. Scegli un provider qui sotto per continuare.`,localDisabledNotice:`L'accesso locale è disabilitato. Usa uno dei provider SSO qui sotto.`,loginSuccess:`Accesso riuscito`,loginFailed:`Accesso fallito`,enterCredentials:`Inserisci nome utente e password`,enterEmail:`Inserisci il tuo indirizzo e-mail`,oidcLoginFailed:`Accesso OIDC fallito`,oidcErrors:{providerError:`Il provider di identità ha restituito un errore`,missingParameters:`Parametri obbligatori mancanti nel callback OIDC`,invalidState:`Lo stato OIDC non è valido o è già stato utilizzato`,stateExpired:`La sessione OIDC è scaduta — riprovare`,providerNotFound:`Provider OIDC non trovato`,discoveryFailed:`Impossibile recuperare il documento di discovery OIDC`,invalidDiscovery:`Il documento di discovery OIDC non è valido`,networkError:`Errore di rete durante lo scambio di token OIDC`,badResponse:`Risposta inattesa durante lo scambio di token OIDC`,noIdToken:`Il provider OIDC non ha restituito un ID token`,validationFailed:`La validazione del token OIDC non è riuscita`,nonceMismatch:`Il nonce OIDC non corrisponde — possibile attacco di replay`,missingSubClaim:`Il token OIDC è privo del claim sub`,noLinkedAccount:`Nessun account locale è collegato a questa identità OIDC`,accountInactive:`Il tuo account è inattivo`,userResolutionFailed:`Impossibile risolvere il tuo account`,internalError:`Si è verificato un errore interno durante il login OIDC`,tokenExchangeFailed:`Lo scambio di token OIDC non è riuscito`},forgotPasswordTitle:`Password dimenticata`,forgotPasswordMessage:`Se hai dimenticato la password, contatta il tuo amministratore di sistema per reimpostarla.`,forgotPasswordEmailMessage:`Inserisci il tuo indirizzo email e ti invieremo una nuova password.`,emailAddress:`Indirizzo email`,emailPlaceholder:`tua.email@esempio.com`,cancel:`Annulla`,sending:`Invio...`,sendResetEmail:`Invia email di reimpostazione`,howToReset:`Come reimpostare la password:`,resetStep1:`Contatta il tuo amministratore Bambuddy`,resetStep2:`Chiedi di reimpostare la password in Gestione utenti`,resetStep3:`Possono impostare una nuova password temporanea`,resetStep4:`Accedi con la nuova password e cambiala in Impostazioni`,gotIt:`Capito`,twoFA:{title:`Autenticazione a due fattori`,subtitle:`Il tuo account è protetto da 2FA. Inserisci il codice di verifica qui sotto.`,methodAuthenticator:`App di autenticazione`,methodEmail:`Codice via e-mail`,methodBackup:`Codice di recupero`,instructionsTotp:`Apri la tua app di autenticazione e inserisci il codice a 6 cifre per Bambuddy.`,instructionsEmail:`Un codice a 6 cifre è stato inviato al tuo indirizzo e-mail. È valido per 10 minuti.`,instructionsEmailNotSent:`Clicca il pulsante qui sotto per ricevere un codice di verifica via e-mail.`,instructionsBackup:`Inserisci uno dei tuoi codici di recupero a 8 caratteri. Ogni codice può essere utilizzato una sola volta.`,sendCodeButton:`Invia codice via e-mail`,sendingCode:`Invio in corso...`,resendCode:`Invia nuovamente il codice`,codeLabel:`Codice di verifica`,backupCodeLabel:`Codice di recupero`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`Verifica`,verifyingButton:`Verifica in corso...`,backToLogin:`← Torna alla pagina di accesso`,orContinueWith:`oppure accedi con`,signInWith:`Accedi con {{provider}}`,enterCode:`Inserisci il codice di verifica`,sendCodeFailed:`Invio del codice di verifica non riuscito`,invalidCode:`Codice non valido. Riprova.`},resetPassword:{title:`Imposta nuova password`,subtitle:`Inserisci e conferma la nuova password qui sotto.`,newPassword:`Nuova password`,newPasswordPlaceholder:`Almeno 8 caratteri`,confirmPassword:`Conferma password`,confirmPasswordPlaceholder:`Ripeti la nuova password`,saving:`Salvataggio…`,submit:`Imposta nuova password`,backToLogin:`Torna al login`,passwordsDoNotMatch:`Le password non coincidono`,passwordTooShort:`La password deve avere almeno 8 caratteri`,resetFailed:`Reimpostazione non riuscita. Il link potrebbe essere scaduto.`}},setup:{title:`Configurazione Bambuddy`,subtitle:`Configura autenticazione per la tua istanza Bambuddy`,enableAuth:`Abilita autenticazione`,adminAccount:`Account admin`,adminAccountDesc:`Se esistono già admin, l'autenticazione verrà abilitata usando gli account esistenti. Lascia i campi sotto vuoti per usare gli admin esistenti, oppure inserisci nuove credenziali per creare un nuovo utente admin.`,adminUsername:`Nome utente admin`,adminPassword:`Password admin`,optionalIfAdminExists:`(opzionale se esistono admin)`,adminUsernamePlaceholder:`Inserisci nome utente admin (opzionale)`,adminPasswordPlaceholder:`Inserisci password admin (opzionale)`,confirmPassword:`Conferma password`,confirmPasswordPlaceholder:`Conferma password admin`,settingUp:`Configurazione...`,completeSetup:`Completa configurazione`,toast:{authEnabledAdminCreated:`Autenticazione abilitata e utente admin creato`,authEnabledExistingAdmins:`Autenticazione abilitata usando admin esistenti`,setupCompleted:`Configurazione completata`,enterBothCredentials:`Inserisci nome utente e password admin, oppure lascia entrambi vuoti per usare admin esistenti`,passwordsDoNotMatch:`Le password non coincidono`,passwordTooShort:`La password deve essere di almeno 6 caratteri`}},changePassword:{title:`Cambia password`,currentPassword:`Password attuale`,currentPasswordPlaceholder:`Inserisci password attuale`,newPassword:`Nuova password`,newPasswordPlaceholder:`Inserisci nuova password (min 6 caratteri)`,confirmPassword:`Conferma nuova password`,confirmPasswordPlaceholder:`Conferma nuova password`,passwordsDoNotMatch:`Le password non coincidono`,passwordTooShort:`La password deve essere di almeno 6 caratteri`,changing:`Modifica in corso...`,success:`Password cambiata con successo`,failed:`Modifica password fallita`},plateAlert:{title:`Stampa in pausa!`,message:`Oggetti rilevati sul piatto. La stampa è stata messa automaticamente in pausa. Svuota il piatto e riprendi la stampa.`,understand:`Ho capito`},camera:{title:`Vista camera`,invalidPrinterId:`ID stampante non valido`,live:`Live`,snapshot:`Istantanea`,restartStream:`Riavvia stream`,refreshSnapshot:`Aggiorna snapshot`,fullscreen:`Schermo intero`,exitFullscreen:`Esci da schermo intero`,connectingToCamera:`Connessione alla camera...`,capturingSnapshot:`Acquisizione snapshot...`,connectionLost:`Connessione persa`,connectionFailed:`Connessione camera fallita`,reconnecting:`Riconnessione tra {{countdown}}s... (tentativo {{attempt}}/{{max}})`,reconnectNow:`Riconnetti ora`,cameraUnavailable:`Camera non disponibile`,cameraUnavailableDesc:`Assicurati che la stampante sia accesa e connessa.`,noCamera:`Nessuna camera disponibile`,retry:`Riprova`,cameraStream:`Stream camera`,zoomOut:`Zoom indietro`,zoomIn:`Zoom avanti`,resetZoom:`Reimposta zoom`,recording:`Registrazione`,startRecording:`Avvia registrazione`,stopRecording:`Ferma registrazione`,chamberLight:`Accendi/Spegni luce camera`,unavailable:`Telecamera non disponibile`,diagnose:{button:`Diagnostica`,modalTitle:`Diagnostica telecamera`,running:`Diagnostica in corso...`,runFailed:`Impossibile eseguire la diagnostica: {{error}}`,retry:`Riesegui`,stage:{tcp_reachable:`Raggiungibilità di rete`,first_frame:`Acquisizione frame`,live_stream_active:`Stream live attivo`},summary:{all_ok:`La telecamera funziona. La diagnostica ha completato tutte le fasi con successo.`,live_stream_active_healthy:`La telecamera sta trasmettendo con frame recenti — nessun test necessario.`,printer_unreachable:`La stampante non è raggiungibile. Verifica l'indirizzo IP, la connessione di rete e che la stampante sia accesa.`,camera_port_closed:`La stampante risponde ma la porta della telecamera è chiusa. Assicurati che la modalità LAN e la modalità sviluppatore siano attive nelle impostazioni della stampante.`,no_frame:`Connessione alla telecamera riuscita ma nessun frame ricevuto. Riprova o verifica che la telecamera sia abilitata nelle impostazioni della stampante.`,unknown_failure:`Diagnostica della telecamera fallita per motivo sconosciuto. Controlla il log di supporto per i dettagli.`},meta:{protocol:`Protocollo`,port:`Porta`,profile:`Profilo`}}},groups:{title:`Gestione gruppi`,subtitle:`Gestisci gruppi permessi per controllo accesso`,backToSettings:`Torna a Impostazioni`,createGroup:`Crea gruppo`,noPermission:`Non hai il permesso di accedere a questa pagina.`,system:`Sistema`,noDescription:`Nessuna descrizione`,usersCount:`{{count}} utenti`,permissionsCount:`{{count}} permessi`,edit:`Modifica`,delete:`Elimina`,toast:{created:`Gruppo creato con successo`,updated:`Gruppo aggiornato con successo`,deleted:`Gruppo eliminato con successo`,enterGroupName:`Inserisci un nome gruppo`},modal:{editGroup:`Modifica gruppo`,createGroup:`Crea gruppo`,cancel:`Annulla`,saving:`Salvataggio...`,creating:`Creazione...`,saveChanges:`Salva modifiche`},form:{groupName:`Nome gruppo`,groupNamePlaceholder:`Inserisci nome gruppo`,systemGroupWarning:`I nomi dei gruppi di sistema non possono essere modificati`,description:`Descrizione`,descriptionPlaceholder:`Inserisci descrizione (opzionale)`,permissions:`Permessi ({{count}} selezionati)`},deleteModal:{title:`Elimina gruppo`,message:`Sei sicuro di voler eliminare questo gruppo? Gli utenti in questo gruppo perderanno questi permessi.`,confirm:`Elimina gruppo`},editor:{title:`Modifica gruppo`,createTitle:`Crea gruppo`,search:`Cerca permessi...`,selectAll:`Seleziona tutto`,clearAll:`Deseleziona tutto`,permissionsSelected:`{{count}} selezionati`,noResults:`Nessun permesso corrisponde alla ricerca`,websocketHint:`Necessario per gli aggiornamenti in tempo reale. Senza questo permesso, l'interfaccia ripiega sul polling periodico.`}},users:{title:`Gestione utenti`,subtitle:`Gestisci utenti e accesso alla tua istanza Bambuddy`,backToSettings:`Torna a Impostazioni`,createUser:`Crea utente`,noPermission:`Non hai il permesso di accedere a questa pagina.`,admin:`Amministratore`,noGroups:`Nessun gruppo`,active:`Attivo`,inactive:`Inattivo`,edit:`Modifica`,delete:`Elimina`,system:`Sistema`,noGroupsAvailable:`Nessun gruppo disponibile`,table:{username:`Nome utente`,groups:`Gruppi`,status:`Stato`,actions:`Azioni`},toast:{created:`Utente creato con successo`,updated:`Utente aggiornato con successo`,deleted:`Utente eliminato con successo`,fillRequired:`Compila tutti i campi obbligatori`,passwordsDoNotMatch:`Le password non coincidono`,passwordTooShort:`La password deve essere di almeno 6 caratteri`,ldapProvisioned:`Utente LDAP "{{username}}" provisionato`},modal:{createUser:`Crea utente`,editUser:`Modifica utente`,cancel:`Annulla`,creating:`Creazione...`,saving:`Salvataggio...`,saveChanges:`Salva modifiche`,advancedAuthSubtitle:`con autenticazione avanzata`,tabsAriaLabel:`Origine utente`,localTab:`Locale`,ldapTab:`LDAP`,ldapSearchLabel:`Cerca nella directory`,ldapSearchPlaceholder:`Digita un nome utente, nome o e-mail...`,ldapMinChars:`Digita almeno 2 caratteri per cercare`,ldapTypeToSearch:`Inizia a digitare per cercare nella directory LDAP`,ldapSearching:`Ricerca nella directory...`,ldapNoResults:`Nessun utente corrispondente nella directory`,ldapSearchError:`Ricerca nella directory fallita. Verifica lo stato del server LDAP.`,ldapAlreadyProvisioned:`Già provisionato`,ldapSelectedLabel:`Selezionato`,ldapProvision:`Provisiona utente`,ldapProvisioning:`Provisioning...`,ldapErrorProvision:`Provisioning fallito. Verifica lo stato del server LDAP e riprova.`},form:{username:`Nome utente`,usernamePlaceholder:`Inserisci nome utente`,email:`E-mail`,emailPlaceholder:`utente@esempio.com`,password:`Password`,passwordPlaceholder:`Inserisci password`,confirmPassword:`Conferma password`,confirmPasswordPlaceholder:`Conferma password`,newPasswordPlaceholder:`Inserisci nuova password`,confirmNewPasswordPlaceholder:`Conferma nuova password`,leaveBlankToKeep:`lascia vuoto per mantenere attuale`,groups:`Gruppi`,optional:`opzionale`,autoGeneratedPassword:`Una password sicura verrà generata automaticamente e inviata via email all'utente.`,passwordManagedByAdvancedAuth:`La password è gestita dall'autenticazione avanzata. Usa "Reimposta password" per inviare una nuova password all'utente via email.`,resetPassword:`Reimposta password`,resettingPassword:`Reimpostazione password...`},deleteModal:{title:`Elimina utente`,message:`Sei sicuro di voler eliminare questo utente? Questa azione non può essere annullata.`,confirm:`Elimina utente`}},streamOverlay:{title:`Overlay stream`,invalidPrinterId:`ID stampante non valido`,cameraStream:`Stream camera`,progress:`Avanzamento`,eta:`ETA`,printerIdle:`Stampante inattiva`,printerOffline:`Stampante offline`,status:{printing:`In stampa`,paused:`In pausa`,finished:`Completata`,failed:`Fallita`,idle:`Inattiva`,unknown:`Sconosciuto`}},profiles:{title:`Profili`,subtitle:`Gestisci preset slicer e calibrazioni pressure advance`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`Profili locali`,kprofiles:`Profili K`},orcaCloud:{connectedAs:`Connesso come`,connectedShort:`Connesso a Orca Cloud`,logout:`Disconnetti`,noLogoutPermission:`Non hai il permesso di disconnetterti`,noConnectPermission:`Non hai il permesso di connetterti a Orca Cloud`,retry:`Riprova`,connectButton:`Connetti Orca Cloud`,connect:{title:`Connetti a Orca Cloud`,description:`Accedi al tuo account Orca Cloud per sincronizzare i profili dello slicer in Bambuddy.`},device:{title:`Approva Bambuddy in Orca Cloud`,instruction:`Apri Orca Cloud e approva questo codice. Bambuddy si connette automaticamente non appena approvi.`,codeLabel:`Il tuo codice di associazione`,openButton:`Apri la pagina di approvazione di Orca Cloud`,manualHint:`Oppure vai su {{url}} e inserisci il codice qui sopra.`,waiting:`In attesa della tua approvazione…`,cancel:`Annulla`},profiles:{title:`I tuoi profili Orca Cloud ({{count}})`,refresh:`Aggiorna`,empty:`Nessun profilo trovato nel tuo account Orca Cloud.`},toast:{disconnected:`Disconnesso da Orca Cloud`},errors:{startFailed:`Impossibile avviare l'accesso a Orca Cloud.`,denied:`L'associazione è stata rifiutata in Orca Cloud.`,expired:`Il codice di associazione è scaduto. Fai clic su Connetti per riprovare.`,pollFailed:`Connessione persa durante l'attesa dell'approvazione. Riprova.`}},localProfiles:{title:`Profili locali`,subtitle:`Importa e gestisci preset slicer da OrcaSlicer`,import:`Importa profili`,importDesc:`Trascina file .bbscfg, .bbsflmt, .orca_filament, .zip o .json qui`,importing:`Importazione...`,search:`Cerca preset locali...`,noPresets:`Nessun preset locale ancora`,noSearchResults:`Nessun preset corrisponde alla ricerca`,badge:`Locale`,edit:`Modifica`,delete:`Elimina`,cancel:`Annulla`,deleteConfirmTitle:`Elimina preset`,deleteConfirm:`Sei sicuro di voler eliminare questo preset? Questa azione non può essere annullata.`,source:`Fonte`,inheritsFrom:`Eredita da`,filamentType:`Tipo`,vendor:`Produttore`,compatiblePrinters:`Stampanti`,nozzleTemp:`Temp. ugello`,cost:`Costo`,density:`Densità`,pressureAdvance:`Pressure Advance`,filament:`Filamento`,process:`Processo`,printer:`Stampante`,toast:{importSuccess:`{{count}} preset importati`,importSkipped:`{{count}} preset saltati (duplicati)`,importError:`{{count}} errori durante l'importazione`,deleted:`Preset eliminato`,updated:`Preset aggiornato`}},connectedAs:`Connesso come`,signInExpiredTitle:`Accesso a Bambu Cloud scaduto`,signInExpiredBody:`Bambu Lab non accetta più il token salvato. Accedi di nuovo per ripristinare i profili cloud, le importazioni da MakerWorld e i controlli del firmware.`,logout:`Esci`,noLogoutPermission:`Non hai il permesso di disconnetterti`,failedToLoad:`Caricamento profili fallito`,retry:`Riprova`,time:{justNow:`Proprio ora`,minsAgo:`{{count}}m fa`,hoursAgo:`{{count}}h fa`,daysAgo:`{{count}}g fa`},toast:{loggedOut:`Disconnesso`},login:{title:`Connetti a Bambu Cloud`,subtitle:`Sincronizza i preset del slicer tra dispositivi`,email:`E-mail`,password:`Password`,region:`Regione`,regionGlobal:`Globale`,regionChina:`Cina`,verificationCode:`Codice di verifica`,totpCode:`Codice autenticatore`,checkEmail:`Controlla la tua email ({{email}}) per un codice a 6 cifre`,enterTotpHint:`Inserisci il codice a 6 cifre dalla tua app autenticatore`,accessToken:`Token di accesso`,accessTokenHint:`Incolla il tuo access token Bambu Cloud. Gli account della regione Cina devono usare questa via (vincolati al numero di telefono — login via e-mail non disponibile). Il wiki spiega come recuperare il token dai cookie di MakerWorld.`,back:`Indietro`,loginButton:`Accedi`,verifyButton:`Verifica`,setTokenButton:`Imposta token`,useToken:`Usa access token invece`,useEmail:`Accedi con email invece`,toast:{loggedIn:`Accesso riuscito`,codeSent:`Codice di verifica inviato via email`,enterTotp:`Inserisci il codice dalla tua app autenticatore`,tokenSet:`Token impostato con successo`}},presets:{myPreset:`Il mio preset (modificabile)`,duplicate:`Duplica`,editable:`Modificabile`,failedToLoadDetails:`Caricamento dettagli preset fallito`,deleteConfirm:`Eliminare questo preset?`,deleteWarning:`Questo eliminerà definitivamente "{{name}}" da Bambu Cloud. Questa azione non può essere annullata.`,noDuplicatePermission:`Non hai il permesso di duplicare preset`,noEditPermission:`Non hai il permesso di modificare preset`,noDeletePermission:`Non hai il permesso di eliminare preset`,types:{filament:`Preset filamento`,printer:`Preset stampante`,process:`Preset processo`},toast:{deleted:`Preset eliminato`,created:`Preset creato`,updated:`Preset aggiornato`,duplicated:`Preset duplicato`,fieldAdded:`Campo "{{key}}" aggiunto`,exported:`Preset esportato`},baseLabel:`Base: {{name}}`,currentLabel:`Corrente: {{name}}`,newPreset:`Nuovo preset`,editPreset:`Modifica preset`,duplicatePreset:`Duplica preset`,createNewPreset:`Crea nuovo preset`,customizeSettings:`Personalizza le impostazioni per il nuovo preset`,compareWithBase:`Confronta con base`,compare:`Confronta`,basePreset:`Preset base`,selectBasePreset:`Seleziona preset base...`,presetName:`Nome preset`,myCustomPreset:`Il mio preset personalizzato`,inheritsFrom:`Deriva da`,dropJsonToImport:`Rilascia JSON per importare`,tabs:{common:`Comune`,allFields:`Tutti i campi`},availableFields:`Campi disponibili`,searchFieldsPlaceholder:`Cerca campi...`,noMatchingFields:`Nessun campo corrispondente`,allFieldsAdded:`Tutti i campi aggiunti`,addCustomField:`Aggiungi campo personalizzato`,yourOverrides:`Le tue override`,noOverridesYet:`Nessun override ancora`,clickFieldsToAdd:`Clicca i campi a sinistra per aggiungerli`,saveAsTemplate:`Salva come template`,jsonTip:`Suggerimento: trascina e rilascia un file .json ovunque in questa modale per importare impostazioni`},cloudView:{searchPlaceholder:`Cerca preset...`,templates:`Template`,refresh:`Aggiorna`,newPreset:`Nuovo preset`,clearFilters:`Pulisci filtri`,compareMode:`Modalita confronto`,selectAnotherPreset:`Seleziona un altro preset {{type}}`,clickTwoPresets:`Clicca due preset dello stesso tipo per confrontare`,selectFirst:`1. Seleziona il primo`,selectSecond:`2. Seleziona il secondo`,compareNow:`Confronta ora`,lastSynced:`Ultima sincronizzazione:`,showingCount:`Mostrati {{showing}} di {{total}} preset`,noPresetsFound:`Nessun preset trovato`,columns:{filament:`Filamento`,process:`Processo`,printer:`Stampante`},noFilamentPresets:`Nessun preset filamento`,noProcessPresets:`Nessun preset processo`,noPrinterPresets:`Nessun preset stampante`,filters:{type:`Tipo`,owner:`Proprietario`,printer:`Stampante`,nozzle:`Ugello`,filament:`Filamento`,layer:`Layer`,all:`Tutti`,myPresets:`I miei preset`,builtIn:`Integrati`,process:`Processo`},noTemplatesPermission:`Non hai il permesso di gestire i template`,noRefreshPermission:`Non hai il permesso di aggiornare i profili`,noCreatePermission:`Non hai il permesso di creare preset`},templates:{title:`Template rapidi`,noTemplates:`Nessun template ancora`,createFirst:`Crea template dall'editor preset`,typeFilter:`Tipo:`,deleteTitle:`Elimina template`,deleteWarning:`Questa azione non può essere annullata`,deleteConfirm:`Sei sicuro di voler eliminare "{{name}}"?`,namePlaceholder:`Nome template`,descriptionPlaceholder:`Descrizione`,settingsJson:`Impostazioni (JSON)`,fieldsCount:`{{count}} campi`,shownInModals:`Mostrati nelle modali`,hiddenInModals:`Nascosti nelle modali`,apply:`Applica`,toast:{deleted:`Template eliminato`,updated:`Template aggiornato`,created:`Template creato`,applied:`Template applicato`}}},support:{debugLoggingActive:`Log debug attivo`,manageLogs:`Gestisci`,collectItem7:`Connettività stampante e versioni firmware`,collectItem8:`Stato integrazioni (Spoolman, MQTT, HA)`,collectItem9:`Interfacce di rete (solo subnet)`,collectItem10:`Versioni dei pacchetti Python`,collectItem11:`Controlli di integrità del database`,collectItem12:`Dettagli dell'ambiente Docker`,bundleGenerating:`Generazione del pacchetto...`,bundleStepConnection:`Controlli di connettività delle stampanti in corso`,bundleStepVirtualPrinters:`Controlli di configurazione delle stampanti virtuali in corso`,bundleStepLogScan:`Analisi dei log recenti per problemi noti`,bundleStepBuild:`Creazione dello ZIP del pacchetto di supporto`},fileManager:{title:`Gestore file`,subtitle:`Organizza e gestisci i tuoi file di stampa`,uploadFiles:`Carica file`,newFolder:`Nuova cartella`,folderName:`Nome cartella`,folderNamePlaceholder:`es., Parti funzionali`,renameFile:`Rinomina file`,renameFolder:`Rinomina cartella`,invalidFilenameChar:`Il carattere "{{char}}" non è consentito nei nomi dei file di stampa. La scheda SD della stampante rifiuta: < > : " / \\ | ? *`,moveFiles:`Sposta {{count}} file`,rootNoFolder:`Root (nessuna cartella)`,current:`corrente`,linkFolder:`Collega cartella`,linkFolderDescription:`Collega "{{name}}" a un progetto o archivio per accesso rapido.`,project:`Progetto`,archive:`Archivio`,noProjectsFound:`Nessun progetto trovato`,noArchivesFound:`Nessun archivio trovato`,unlink:`Scollega`,link:`Collega`,dragDropFiles:`Trascina e rilascia file qui`,dropFilesHere:`Rilascia file qui`,releaseToUpload:`Rilascia per caricare`,orClickToBrowse:`oppure clicca per sfogliare`,allFileTypesSupported:`Tutti i tipi di file supportati. I file ZIP saranno estratti.`,zipFilesDetected:`File ZIP rilevati`,zipExtractOptions:`I file ZIP saranno estratti. Scegli come gestire la struttura cartelle:`,preserveZipStructure:`Mantieni struttura cartelle dal ZIP`,createFolderFromZip:`Crea cartella dal nome ZIP`,stlThumbnailGeneration:`Generazione miniature STL`,zipMayContainStl:`I file ZIP possono contenere STL. Le miniature possono essere generate durante l'estrazione.`,thumbnailsCanBeGenerated:`Le miniature possono essere generate per file STL. I modelli grandi possono richiedere più tempo.`,generateThumbnailsForStl:`Genera miniature per file STL`,threemfDetected:`File 3MF rilevati`,threemfExtractionInfo:`Modello stampante, materiale, colore e impostazioni stampa saranno estratti automaticamente dai file 3MF.`,willBeExtracted:`Sara estratto`,filesExtracted:`{{count}} file estratti`,uploadComplete:`Caricamento completato: {{succeeded}} riusciti`,uploadFailed:`Caricamento fallito`,zipFilesFailed:`{{count}} file falliti`,uploading:`Caricamento...`,changeLink:`Cambia collegamento...`,linkTo:`Collega a...`,linkToProjectOrArchive:`Collega a progetto o archivio`,generateThumbnail:`Genera miniatura`,generateThumbnails:`Genera miniature`,generateThumbnailsForMissing:`Genera miniature per STL senza miniatura`,gridView:`Vista griglia`,listView:`Vista elenco`,lowDiskSpaceWarning:`Avviso spazio disco basso`,lowDiskSpaceDetails:`Solo {{free}} liberi su {{total}} totali. La soglia e {{threshold}} GB nelle impostazioni.`,files:`File`,folders:`Cartelle`,size:`Dimensione`,free:`Libero`,allFiles:`Tutti i file`,allExternal:`Esterni`,externalIsEmpty:`Nessun file esterno`,externalEmptyDescription:`I file delle tue cartelle esterne collegate appariranno qui.`,wrap:`A capo`,enableTextWrapping:`Abilita a capo testo`,disableTextWrapping:`Disabilita a capo testo`,collapse:`Comprimi`,collapseFoldersByDefault:`Comprimi le cartelle per impostazione predefinita`,expandFoldersByDefault:`Espandi le cartelle per impostazione predefinita`,folderSort:`Ordina cartelle`,folderSortByName:`Per nome`,folderSortByActivity:`Per attività recente`,dragToResizeTooltip:`Trascina per ridimensionare, doppio clic per reset`,searchFiles:`Cerca file...`,searchSubfoldersHint:`Sottocartelle incluse`,readme:{truncated:`Troncato`,show:`Mostra README`,hide:`Nascondi README`,label:`README`},tags:{title:`Etichette`,subtitle:`Etichetta i file per filtri trasversali — giocattoli, sicuri per bambini, solo PETG, qualunque cosa serva.`,manage:`Etichette`,manageTitle:`Gestisci il catalogo delle etichette`,add:`Nuova etichetta`,edit:`Rinomina etichetta`,name:`Nome`,fileCount:`File`,empty:`Nessuna etichetta. Creane una per iniziare.`,noMatches:`Nessuna etichetta corrispondente.`,createPlaceholder:`es. giocattoli, sicuro-bimbi, petg`,createButton:`Crea`,nameRequired:`Il nome è obbligatorio.`,searchPlaceholder:`Filtra etichette...`,created:`Etichetta creata.`,updated:`Etichetta rinominata.`,deleted:`Etichetta rimossa.`,saveFailed:`Impossibile salvare l'etichetta.`,deleteFailed:`Impossibile rimuovere l'etichetta.`,applyFailed:`Impossibile applicare le etichette.`,applyAdd:`Aggiungi etichette`,applyRemove:`Rimuovi etichette`,applyAddSuccess:`Aggiunte {{count}} etichetta/e su {{files}} file.`,applyRemoveSuccess:`Rimosse {{count}} etichetta/e da {{files}} file.`,actionAdd:`Aggiungi ai file selezionati`,actionRemove:`Rimuovi dai file selezionati`,tagAction:`Etichetta`,bulkTitle:`Etichetta {{count}} file selezionato/i`,bulkTooltip:`Aggiungi o rimuovi etichette su ogni file selezionato.`,noPermission:`Non hai il permesso per etichettare i file.`,filterLabel:`Filtraggio per:`,clearAll:`Pulisci tutto`,confirmDelete:`Eliminare l'etichetta "{{name}}"?`,confirmDeleteMessage:`Rimuove l'etichetta dal catalogo. I file mantengono le altre etichette.`,confirmDeleteInUseMessage:`Questa etichetta è su {{count}} file. L'eliminazione la rimuove da tutti; i file non vengono toccati.`,editAria:`Modifica {{name}}`,deleteAria:`Elimina {{name}}`},allTypes:`Tutti i tipi`,prints:`Stampe`,ascending:`Crescente`,descending:`Decrescente`,showModified:`Mostra date di modifica`,hideModified:`Nascondi date di modifica`,lastModified:`Ultima modifica`,lastActivity:`Ultima attività`,resultsCount:`{{showing}} di {{total}} file`,selectAll:`Seleziona tutto`,deselectAll:`Deseleziona tutto`,selected:`{{count}} selezionati`,adding:`Aggiunta...`,loadingFiles:`Caricamento file...`,folderIsEmpty:`La cartella e vuota`,noFilesYet:`Nessun file ancora`,folderEmptyDescription:`Carica file o sposta file in questa cartella per iniziare.`,noFilesDescription:`Carica file per iniziare a organizzare i file di stampa.`,noMatchingFiles:`Nessun file corrispondente`,noMatchingFilesDescription:`Nessun file corrisponde ai criteri di ricerca o filtro.`,clearFilters:`Pulisci filtri`,printedCount:`Stampato {{count}}x`,uploadedBy:`Caricato da`,deleteFolder:`Elimina cartella`,deleteFile:`Elimina file`,deleteFilesCount:`Elimina {{count}} file`,deleteFolderConfirm:`Sei sicuro di voler eliminare questa cartella? Tutti i file dentro saranno eliminati.`,deleteFileConfirm:`Sei sicuro di voler eliminare questo file?`,deleteFilesConfirm:`Sei sicuro di voler eliminare {{count}} file selezionati? Questa azione non può essere annullata.`,deleting:`Eliminazione...`,noPermissionRenameFolder:`Non hai il permesso di rinominare cartelle`,noPermissionLinkFolder:`Non hai il permesso di collegare cartelle`,noPermissionDeleteFolder:`Non hai il permesso di eliminare cartelle`,onlyEmptyFoldersDeletable:`Puoi eliminare solo cartelle vuote`,noPermissionPrint:`Non hai il permesso di stampare`,noPermissionSlice:`Non hai il permesso di sezionare i file`,noPermissionAddToQueue:`Non hai il permesso di aggiungere alla coda`,noPermissionDownload:`Non hai il permesso di scaricare file`,noPermissionRenameFile:`Non hai il permesso di rinominare questo file`,noPermissionGenerateThumbnail:`Non hai il permesso di generare miniature`,noPermissionDeleteFile:`Non hai il permesso di eliminare questo file`,noPermissionCreateFolder:`Non hai il permesso di creare cartelle`,noPermissionUpload:`Non hai il permesso di caricare file`,noPermissionMoveFiles:`Non hai il permesso di spostare file`,noPermissionDeleteFiles:`Non hai il permesso di eliminare file`,linkExternal:`Collega esterno`,linkExternalFolder:`Collega cartella esterna`,linkExternalFolderDescription:`Monta una directory host (NAS, USB, condivisione di rete) nel File Manager. I file non vengono copiati — vengono letti direttamente dal percorso originale.`,externalFolderNamePlaceholder:`es. Stampe NAS`,externalPath:`Percorso host`,externalPathHelp:`Percorso assoluto della directory sull'host Docker. Deve essere montato come bind nel container.`,readOnly:`Sola lettura`,readOnlyHelp:`impedisce caricamenti e cancellazioni`,showHiddenFiles:`Mostra file nascosti (file punto)`,externalFolder:`Cartella esterna`,scanFolder:`Scansiona`,toast:{folderCreated:`Cartella creata`,folderDeleted:`Cartella eliminata`,fileDeleted:`File eliminato`,filesDeleted:`Eliminati {{count}} file`,filesMoved:`File spostati`,folderLinked:`Cartella collegata`,folderUnlinked:`Cartella scollegata`,externalFolderLinked:`Cartella esterna collegata e scansionata`,folderScanned:`Scansione completata: {{added}} aggiunti, {{removed}} rimossi`,addedToQueue:`Aggiunti {{count}} file alla coda`,addedToQueuePartial:`Aggiunti {{added}} file, {{failed}} falliti`,failedToAddToQueue:`Aggiunta file fallita: {{error}}`,fileRenamed:`File rinominato`,folderRenamed:`Cartella rinominata`,thumbnailsGenerated:`Generate {{count}} miniature`,thumbnailsGeneratedPartial:`Generate {{succeeded}} miniature, {{failed}} fallite`,noStlMissingThumbnails:`Nessun file STL senza miniature`,failedToGenerateThumbnails:`Generazione miniature fallita: {{error}}`,thumbnailGenerated:`Miniatura generata`,failedToGenerateThumbnail:`Generazione miniatura fallita: {{error}}`}},projects:{title:`Progetti`,subtitle:`Organizza e traccia i tuoi progetti di stampa 3D`,newProject:`Nuovo progetto`,editProject:`Modifica progetto`,deleteProject:`Elimina progetto`,projectName:`Nome progetto`,description:`Descrizione`,noProjects:`Nessun progetto ancora`,noProjectsFiltered:`Nessun progetto {{status}}`,noProjectsFilteredHelp:`Non hai progetti {{status}}. I progetti appariranno qui quando il loro stato cambia.`,createFirst:`Crea il tuo primo progetto per organizzare stampe correlate, tracciare progressi e gestire i tuoi build.`,createFirstButton:`Crea il tuo primo progetto`,create:`Crea`,files:`File`,prints:`Stampe`,plates:`piatti`,parts:`parti`,lastModified:`Ultima modifica`,deleteConfirm:`Sei sicuro di voler eliminare questo progetto? Archivi e elementi in coda saranno scollegati ma non eliminati.`,addFiles:`Aggiungi file`,removeFile:`Rimuovi file`,viewDetails:`Vedi dettagli`,namePlaceholder:`es., Build Voron 2.4`,descriptionPlaceholder:`Descrizione opzionale...`,urlLabel:`URL`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`L'URL deve iniziare con http:// o https://`,openExternalUrl:`Apri URL del progetto`,coverImageLabel:`Immagine di copertina`,coverImageAlt:`Immagine di copertina del progetto`,coverImageUpload:`Carica`,coverImageReplace:`Sostituisci`,coverImageRemove:`Rimuovi`,color:`Colore`,targetPlates:`Piatti target`,targetPlatesPlaceholder:`es., 25`,targetPlatesHelp:`Numero di job di stampa`,targetParts:`Parti target`,targetPartsPlaceholder:`es., 150`,targetPartsHelp:`Totale oggetti necessari`,targetSets:`Copie per file`,targetSetsPlaceholder:`es. 10`,targetSetsHelp:`Quante volte stampare ogni file stampabile`,tagsLabel:`Tag (separati da virgola)`,tagsPlaceholder:`es., voron, funzionale, regalo`,dueDate:`Data scadenza`,priority:`Priorita`,priorityLow:`Bassa`,priorityNormal:`Normale`,priorityHigh:`Alta`,priorityUrgent:`Urgente`,statusActive:`Attivo`,statusCompleted:`Completato`,statusArchived:`Archiviato`,done:`Fatto`,completed:`completato`,failed:`fallito`,inQueue:`in coda`,noPrintsYet:`Nessuna stampa ancora`,printJobs:`Job di stampa (piatti)`,partsPrinted:`Parti stampate`,failedParts:`Parti fallite`,import:`Importa`,export:`Esporta`,importProject:`Importa progetto`,exportAll:`Esporta tutti i progetti`,loading:`Caricamento progetti...`,noEditPermission:`Non hai il permesso di modificare progetti`,noDeletePermission:`Non hai il permesso di eliminare progetti`,noCreatePermission:`Non hai il permesso di creare progetti`,noImportPermission:`Non hai il permesso di importare progetti`,noExportPermission:`Non hai il permesso di esportare progetti`,toast:{created:`Progetto creato`,updated:`Progetto aggiornato`,deleted:`Progetto eliminato`,imported:`Progetto importato`,multipleImported:`{{count}} progetti importati`,importFailed:`Import fallito`,exported:`Progetti esportati (solo metadati)`}},projectDetail:{notFound:`Progetto non trovato`,backToProjects:`Torna a Progetti`,export:`Esporta`,exportProject:`Esporta progetto`,noExportPermission:`Non hai il permesso di esportare progetti`,noEditPermission:`Non hai il permesso di modificare progetti`,partOf:`Parte di:`,priorityLabel:`Priorita:`,noPrints:`Nessuna stampa in questo progetto ancora`,status:{active:`Attivo`,completed:`Completato`,archived:`Archiviato`},priority:{low:`Bassa`,normal:`Normale`,high:`Alta`,urgent:`Urgente`},dueDate:{overdue:`Scaduto`,today:`Scade oggi`,daysLeft:`{{count}} giorni rimanenti`},progress:{platesProgress:`Avanzamento piatti`,partsProgress:`Avanzamento parti`,setsProgress:`Set completi`,sets:`set`,setsHint:`Un set è completo quando ogni file stampabile raggiunge questo numero`,printJobs:`job di stampa`,parts:`parti`,percentComplete:`{{percent}}% completato`,remaining:`{{count}} rimanenti`},stats:{printJobs:`Job di stampa`,total:`totale`,failed:`{{count}} falliti`,partsPrinted:`{{count}} parti stampate`,printTime:`Tempo di stampa`,filamentUsed:`Filamento usato`},cost:{title:`Tracciamento costi`,filamentCost:`Costo filamento`,energy:`Energia`,totalCost:`Costo totale`,total:`Totale`,includesBom:`incl. distinta materiali`,budget:`Budget`,remaining:`Rimanente`},subProjects:{title:`Sotto-progetti ({{count}})`},notes:{title:`Note`,noEditPermission:`Non hai il permesso di modificare le note`,placeholder:`Aggiungi note su questo progetto...`,empty:`Nessuna nota ancora. Clicca Modifica per aggiungere note.`},files:{title:`File`,linkFolders:`Collega cartelle dal Gestore file`,forQuickAccess:`a questo progetto per accesso rapido.`,fileCount:`{{count}} file`,empty:`Nessuna cartella collegata. Vai a Gestore file e collega una cartella a questo progetto.`,printedCount:`Stampato {{count}} volte`,progressTooltip:`{{done}} di {{target}} stampe completate`,noFiles:`Nessun file in questa cartella.`},bom:{title:`Distinta materiali`,acquired:`{{completed}}/{{total}} acquisiti`,showAll:`Mostra tutti`,hideDone:`Nascondi completati`,addPart:`Aggiungi parte`,noAddPermission:`Non hai il permesso di aggiungere parti`,partNamePlaceholder:`Nome parte (es., viti M3x8)`,partName:`Nome parte`,qty:`Qta`,price:`Prezzo ({{currency}})`,sourcingUrlPlaceholder:`URL fornitura (opzionale)`,remarksPlaceholder:`Note (opzionale)`,deletePart:`Elimina parte`,deleteConfirm:`Sei sicuro di voler eliminare "{{name}}"?`,noUpdatePermission:`Non hai il permesso di aggiornare parti`,noEditPermission:`Non hai il permesso di modificare parti`,noDeletePermission:`Non hai il permesso di eliminare parti`,totalCost:`Costo totale:`,empty:`Nessuna parte nella distinta materiali. Aggiungi hardware, elettronica o altri componenti da reperire.`},timeline:{title:`Timeline attivita`,empty:`Nessuna attivita ancora.`},template:{saveAsTemplate:`Salva come template`,noCreatePermission:`Non hai il permesso di creare template`},queue:{title:`Coda`,viewAll:`Vedi tutto`,printing:`{{count}} in stampa`,queued:`{{count}} in coda`},prints:{title:`Stampe ({{count}})`},toast:{projectUpdated:`Progetto aggiornato`,partAdded:`Parte aggiunta`,partRemoved:`Parte rimossa`,exportFailed:`Export fallito`,projectExported:`Progetto esportato`,templateCreated:`Template creato`}},system:{title:`Informazioni sistema`,version:`Versione`,uptime:`Tempo attivo`,cpuUsage:`Uso CPU`,memoryUsage:`Uso memoria`,diskUsage:`Uso disco`,networkInfo:`Info rete`,logs:`Log`,debugMode:`Modalita debug`,enableDebug:`Abilita log debug`,disableDebug:`Disabilita log debug`,downloadLogs:`Scarica log`,clearLogs:`Cancella log`,dockerInfo:`Info Docker`,containerName:`Nome container`,imageName:`Nome immagine`,platform:`Piattaforma`,architecture:`Architettura`},sponsors:{sectionTitle:`Indipendente e finanziato dalla community`,tagline:`Bambuddy è gratuito e resta tale perché qualcuno sceglie di sostenerlo. Niente VC, niente lock-in cloud.`,viewSupporters:`Vedi i sostenitori`,toastPrints:`Hai completato {{count}} stampe con Bambuddy. Bambuddy resta gratuito grazie a chi lo sostiene.`,toastCost:`Hai monitorato {{total}} di filamento con Bambuddy. Scopri chi mantiene il progetto indipendente.`,toastArchives:`{{count}} stampe archiviate con Bambuddy. Scopri chi lo mantiene indipendente.`,toastAnniversary:`Un anno con Bambuddy! Scopri chi mantiene il progetto indipendente.`,toastVersionUpdate:`Aggiornato a v{{version}}. Bambuddy resta gratuito grazie a chi lo sostiene.`,toastBusiness:`Usi Bambuddy su {{count}} stampanti? Esiste un piano di supporto per i team: correzioni prioritarie, fatturazione e un contatto diretto con il manutentore.`,businessCta:`Bambuddy per le aziende`,businessTitle:`Bambuddy per le aziende`,businessTagline:`Stai gestendo {{count}} stampanti. Supporto prioritario, licenze commerciali e fatturazione sono disponibili per team e farm di stampa.`},library:{title:`Libreria filamenti`,addFilament:`Aggiungi filamento`,editFilament:`Modifica filamento`,deleteFilament:`Elimina filamento`,vendor:`Produttore`,material:`Materiale`,color:`Colore`,kFactor:`Fattore K`,temperature:`Temperatura`,noFilaments:`Nessun filamento in libreria`,deleteConfirm:`Sei sicuro di voler eliminare questo filamento?`,importFromPrinter:`Importa da stampante`,exportToFile:`Esporta su file`,runWithPipeline:{actionLabel:`Esegui con pipeline`,noPermission:`Non hai il permesso di eseguire pipeline`,modalTitle:`Esegui con pipeline`,confirmTitle:`Conferma esecuzione`,confirmIntro:`Il pre-volo ha trovato problemi con questa esecuzione`,sourceHint:`Sorgente`,pipelineHint:`Pipeline`,targetHint:`Destinazione`,pipelineListAria:`Pipeline disponibili`,runAnyway:`Esegui comunque`,loading:`Caricamento…`,empty:`Nessuna pipeline salvata. Apri il dialogo Slice e fai clic su "Salva come pipeline" per crearne una.`,noTarget:`Nessuna stampante di destinazione`,noTargetMessage:`Questa pipeline non ha una stampante di destinazione. Aprila nelle Impostazioni per sceglierne una.`,copies:`Copie`,copiesHint:`max {{n}}`,classTarget:`Qualsiasi {{model}}`,toast:{started:`Esecuzione della pipeline avviata`,failed:`Impossibile avviare l'esecuzione`},issue:{printerNotSet:`Nessuna stampante di destinazione su questa pipeline.`,printerNotFound:`La stampante di destinazione non esiste più.`,printerDisabled:`La stampante di destinazione è disabilitata.`,printerOffline:`La stampante di destinazione è offline.`,filamentType:`Slot filamento {{slot}}: atteso {{expected}}, AMS ha {{actual}}`,filamentColor:`Slot filamento {{slot}}: colore differente (atteso {{expected}}, AMS ha {{actual}})`,amsSlotMissing:`Slot AMS {{slot}} non disponibile su questa stampante`,filamentUnverified:`Lo slot filamento {{slot}} proviene da un preset cloud / standard e non può essere verificato staticamente.`,noClassMatches:`Nessuna stampante in questa installazione corrisponde alla classe di modello target della pipeline ({{expected}}).`,classNotSet:`La destinazione della pipeline è una classe di stampante ma nessun modello è stato scelto.`}}},slice:{title:`Slicing modello`,action:`Slice`,actionAll:`Slicia tutti i {{count}} piatti`,actionAllTitle:`Slicia tutti i piatti in un unico output multi-piatto (un solo archivio). La selezione del filamento copre ogni slot definito dal progetto.`,allPlatesToggle:`Slicia tutti i {{count}} piatti`,slicing:`Slicing…`,printer:`Profilo stampante`,process:`Profilo processo`,filament:`Profilo filamento`,filamentSlot:`Filamento {{index}} ({{type}})`,selectPreset:`— Seleziona un preset —`,loadingPresets:`Caricamento preset…`,analyzingPlateFilaments:`Analisi filamenti del piano…`,analyzingPlateFilamentsHint:`Slicing di anteprima per scoprire quali slot AMS usa questo piano. In cache dopo — la riapertura è istantanea.`,previewToast:`Analisi di {{name}} – {{elapsed}}`,previewWithProgress:`Analisi di {{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,notUsedByPlate:`— non usato da questo piano`,noPresetsForSlot:`Nessun preset disponibile`,otherPrinters:`Altre stampanti`,presetsLoadFailed:`Caricamento preset fallito. Apri Impostazioni → Profili per importarli prima.`,refreshPresets:`Aggiorna`,refreshPresetsTitle:`Aggiorna i preset — recupera gli elenchi più recenti dal cloud e dai bundle (da usare dopo aver eliminato un preset in Bambu Studio o Bambu Handy)`,allPresetsRequired:`Tutti i preset devono essere selezionati`,useEmbedded:`Usa le impostazioni integrate del file`,useEmbeddedHint:`Slicia come impostato dal designer (pareti, riempimento, filamento) invece dei profili sopra. Disponibile perché la tua stampante corrisponde a quella del file.`,designSettings:`Mantieni le impostazioni del progettista`,designSettingsHint:`Questo file modifica {{count}} impostazione/i di stampa rispetto al profilo standard.`,designSettingsSelected:`{{selected}} di {{total}} selezionate`,designSettingsPrinterCoupled:`specifico della stampante`,designSettingsPrinterCoupledHint:`Tarato per la stampante per cui è stato progettato il file: sulla tua può essere errato o fuori intervallo.`,enqueuing:`Invio lavoro di slicing…`,queued:`In coda…`,failed:`Slicing fallito. Controlla i log del sidecar.`,startedToast:`Slicing di {{name}} in background…`,queuedToast:`In coda: {{name}} – {{elapsed}}`,runningToast:`Slicing {{name}} – {{elapsed}}`,runningWithProgress:`{{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,runningWithProgressMultiPlate:`Piatto {{plateIndex}} di {{plateCount}} • {{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,completedToast:`{{name}} sezionato`,failedTitle:`Slicing fallito`,failedToast:`Slicing di {{name}} fallito: {{detail}}`,tier:{local:`Importato`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`Standard`},cloud:{notAuthenticated:`Accedi a Bambu Cloud (Impostazioni → Profili → Bambu Cloud) per vedere i preset cloud.`,expired:`Sessione Bambu Cloud scaduta – accedi di nuovo per aggiornare i preset cloud.`,unreachable:`Bambu Cloud non è raggiungibile. I preset locali e standard funzionano ancora.`},orcaCloud:{notAuthenticated:`Accedi a Orca Cloud (Profili → Orca Cloud) per vedere i tuoi preset Orca.`,expired:`Sessione Orca Cloud scaduta — accedi di nuovo per aggiornare i tuoi preset Orca.`,unreachable:`Orca Cloud non è raggiungibile in questo momento. Gli altri preset continuano a funzionare.`},bedType:{label:`Piano di stampa`,auto:`Auto (usa preset di processo)`,coolPlate:`Cool Plate`,coolPlateSuperTack:`Cool Plate SuperTack`,engineering:`Engineering Plate`,highTemp:`High Temp Plate`,texturedPEI:`Textured PEI Plate`,smoothPEI:`Smooth PEI Plate`},pipelines:{label:`Pipeline`,applyAria:`Applica pipeline`,applyPrompt:`Applica pipeline…`,empty:`Nessuna pipeline salvata`,saveButton:`Salva come pipeline`,saveTitle:`Salva la selezione corrente di tutti e quattro gli slot come pipeline riutilizzabile`,namePlaceholder:`Nome pipeline`,nameAria:`Nome nuova pipeline`,toast:{applied:`"{{name}}" applicata`,saved:`Pipeline salvata`,saveFailed:`Salvataggio non riuscito`}}},spoolman:{title:`Integrazione Spoolman`,enabled:`Spoolman abilitato`,url:`URL Spoolman`,connected:`Connesso`,disconnected:`Non connesso`,testConnection:`Testa connessione`,sync:`Sincronizza`,syncing:`Sincronizzazione...`,lastSync:`Ultima sincronizzazione`,linkToSpoolman:`Collega a Spoolman`,openInSpoolman:`Apri in Spoolman`,unlinkSpool:`Scollega bobina`,unlinkConfirmTitle:`Rimuovere bobina?`,unlinkConfirmMessage:`Questo rimuoverà la bobina da questo slot. I dati della bobina stessa rimarranno invariati.`,selectSpool:`Seleziona bobina`,noUnlinkedSpools:`Nessuna bobina disponibile`,linkSuccess:`Bobina assegnata con successo`,linkFailed:`Impossibile assegnare la bobina`,unlinkSuccess:`Bobina rimossa con successo`,unlinkFailed:`Impossibile rimuovere la bobina`,linkedSpool:`Bobina assegnata`,spoolId:`ID bobina`,fillSourceLabel:`(Spoolman)`,weight:`Peso`,remaining:`Rimanente`,disableWeightSync:`Disabilita sync peso stimato AMS`,disableWeightSyncDesc:`Non aggiornare la capacità rimanente dalle stime AMS. Usalo se preferisci il tracciamento di Spoolman rispetto alle stime AMS. Le nuove bobine useranno comunque la stima AMS come peso iniziale.`,reportPartialUsage:`Segnala uso parziale per stampe fallite`,reportPartialUsageDesc:`Quando una stampa fallisce o viene annullata, segnala il filamento stimato usato fino a quel punto in base all'avanzamento layer.`},locations:{title:`Ubicazioni di stoccaggio`,subtitle:`Gestisci scaffali, cassetti e altri posti fisici per le bobine`,add:`Aggiungi ubicazione`,addShort:`Aggiungi`,edit:`Modifica ubicazione`,name:`Nome`,spools:`Bobine`,empty:`Nessuna ubicazione di stoccaggio. Crea il tuo primo scaffale o cassetto.`,manage:`Ubicazioni`,createPlaceholder:`es. Scaffale A, Cassetto 1`,nameRequired:`Il nome dell'ubicazione è obbligatorio`,created:`Ubicazione creata`,updated:`Ubicazione aggiornata`,deleted:`Ubicazione eliminata`,saveFailed:`Impossibile salvare l'ubicazione`,deleteFailed:`Impossibile eliminare l'ubicazione`,deleteBlocked:`Rimuovi prima tutte le bobine da questa ubicazione`,confirmDelete:`Eliminare «{{name}}»?`,confirmDeleteMessage:`Questa ubicazione verrà rimossa dal catalogo. Sposta prima le bobine.`},inventory:{title:`Inventario Bobine`,subtitle:`Gestisci le tue bobine`,addToInventory:`Aggiungi all'inventario`,addToInventoryPending:`Aggiunta in corso...`,addToInventorySuccess:`Bobina aggiunta all'inventario`,addToInventoryFailed:`Aggiunta della bobina all'inventario non riuscita`,unknownSpoolTitle:`Nuovo filamento rilevato`,unknownSpoolMessage:`È stata rilevata una bobina con tag RFID sconosciuto in {{location}}. Aggiungerla all'inventario ora?`,unknownSpoolSlot:`Slot`,bulk:{selectAllVisible:`Seleziona tutto il visibile`,selectRow:`Seleziona riga`,selectGroup:`Seleziona gruppo`,selectionCount:`{{count}} selezionate`,edit:`Modifica`,printLabels:`Stampa etichette`,resetUsage:`Reimposta utilizzo`,restore:`Ripristina`,archive:`Archivia`,delete:`Elimina`,clearSelection:`Cancella selezione`,editTitle:`Modifica bobine in blocco`,editSubtitle:`Si applica a {{count}} bobine selezionate. Vengono aggiornati solo i campi spuntati.`,editHint:`Digita in un campo per contrassegnarlo per l'aggiornamento — vengono inviate solo le righe spuntate. Un campo vuoto lascia le bobine invariate (svuotare un campo si fa per singola bobina).`,useCustom:`Usa "{{value}}"`,toggleField:`Attiva l'aggiornamento per questo campo`,changeCount:`{{count}} campi verranno aggiornati.`,applyPending:`Applicazione in corso...`,applyButton:`Applica a {{count}} bobine`,deleteTitle:`Elimina bobine selezionate`,archiveTitle:`Archivia bobine selezionate`,restoreTitle:`Ripristina bobine selezionate`,resetUsageTitle:`Reimposta utilizzo delle bobine selezionate`,deleteMessage:`Eliminare definitivamente {{count}} bobine? L'operazione non può essere annullata.`,archiveMessage:`Archiviare {{count}} bobine? Possono essere ripristinate in seguito.`,restoreMessage:`Ripristinare {{count}} bobine archiviate?`,resetUsageMessage:`Reimpostare il contatore "Totale consumato" su {{count}} bobine? Il peso rimanente viene preservato.`,updateSuccess:`{{count}} bobine aggiornate`,updateFailed:`Aggiornamento in blocco fallito`,updatePartial:`{{ok}} bobine aggiornate, {{failed}} fallite`,updateAllFailed:`Tutti i {{count}} aggiornamenti sono falliti — la selezione viene mantenuta per riprovare`,deleteSuccess:`{{count}} bobine eliminate`,deleteFailed:`Eliminazione in blocco fallita`,deletePartial:`{{ok}} bobine eliminate, {{failed}} fallite`,deleteAllFailed:`Tutte le {{count}} eliminazioni sono fallite — la selezione viene mantenuta per riprovare`,archiveSuccess:`{{count}} bobine archiviate`,archiveFailed:`Archiviazione in blocco fallita`,archivePartial:`{{ok}} bobine archiviate, {{failed}} fallite`,archiveAllFailed:`Tutte le {{count}} archiviazioni sono fallite — la selezione viene mantenuta per riprovare`,restoreSuccess:`{{count}} bobine ripristinate`,restoreFailed:`Ripristino in blocco fallito`,restorePartial:`{{ok}} bobine ripristinate, {{failed}} fallite`,restoreAllFailed:`Tutti i {{count}} ripristini sono falliti — la selezione viene mantenuta per riprovare`,invalidHex:`Inserisci 6 caratteri esadecimali (RRGGBB) o 8 (RRGGBBAA). Altrimenti il campo non verrà applicato.`},spoolmanMixedContentTitle:`Spoolman non può essere caricato tramite HTTPS — contenuto misto bloccato dal browser`,spoolmanMixedContentBody:`Bambuddy viene servito tramite HTTPS (dietro il tuo reverse proxy), ma l'URL di Spoolman è ancora HTTP. I browser bloccano il contenuto misto per motivi di sicurezza, quindi l'interfaccia Spoolman incorporata non può essere visualizzata. Anche Spoolman deve essere raggiungibile via HTTPS.`,spoolmanMixedContentFixReverseProxy:`Metti Spoolman dietro lo stesso reverse proxy di Bambuddy (Traefik / Nginx / Caddy) in HTTPS, poi aggiorna l'URL di Spoolman nelle Impostazioni con il nuovo indirizzo HTTPS.`,spoolmanMixedContentFixOpenNewTab:`Come alternativa, apri Spoolman in una nuova scheda via HTTP — le regole sul contenuto misto si applicano solo ai frame incorporati, una scheda autonoma funziona.`,spoolmanOpenInNewTab:`Apri Spoolman in una nuova scheda`,labels:{title:`Stampa etichette bobine`,selectedCount:`{{count}} selezionato`,pickSpools:`Scegli per quali bobine stampare le etichette:`,monochrome:`Monocromatico (stampante in bianco e nero)`,monochromeHint:`Rimuove il campione di colore e allarga il testo`,searchPlaceholder:`Cerca per nome, marca o #ID`,filterByMaterial:`Materiale:`,allMaterials:`Tutto`,selectVisible:`Seleziona tutti visibili ({{count}})`,deselectVisible:`Deseleziona visibili`,clearAll:`Cancella tutto`,noSpoolsToShow:`Nessuna bobina da mostrare. Modifica il filtro e riprova.`,noMatches:`Nessuna bobina corrisponde alla ricerca o al filtro corrente.`,printOne:`Stampa etichetta per questa bobina`,printLabels:`Stampa etichette…`,bulkTitle:`Scegli le bobine da etichettare tra le {{count}} mostrate`,noSpoolsTitle:`Nessuna bobina da etichettare`,error:`Impossibile generare etichette: {{msg}}`,sortBy:{label:`Ordina:`,id:`Per ID`,color:`Per colore`},templates:{amsHolderSmall:{label:`Supporto AMS — piccolo (74 × 33 mm)`,hint:`Un'etichetta per pagina; corrisponde all'etichetta stampabile del modello MakerWorld 752566 (Porta-etichette filamento AMS).`},amsHolderLarge:{label:`Supporto AMS — grande (75 × 55 mm)`,hint:`Un'etichetta per pagina; si adatta alla variante cartoncino del porta-etichette filamento AMS. Spazio sufficiente per campione colore, marca, materiale, ID e codice QR.`},box40x30:{label:`Etichetta scatola (40 × 30 mm)`,hint:`Una etichetta per pagina; misura comune DK/Brother, ideale per etichette di sacchetti filamento e contenitori.`},box:{label:`Box label (62 × 29 mm)`,hint:`Una etichetta per pagina; dimensionata per Brother PT/QL e piccole etichette Dymo.`},averyL7160:{label:`Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)`,hint:`Foglio formato UE; 21 etichette per pagina A4.`},avery5160:{label:`Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)`,hint:`Foglio formato US; 30 etichette per pagina Letter.`}}},csv:{importButton:`Importa CSV`,exportButton:`Esporta CSV`,modalTitle:`Importa bobine da CSV`,selectFile:`Scegli un file CSV o trascinalo qui`,dragHint:`Intestazione: material (obbligatorio), brand, subtype, color_name, rgba, …`,parsing:`Lettura del file…`,previewError:`Impossibile leggere il file CSV`,validCount:`{{count}} valide`,errorCount:`{{count}} con errore`,skippedCount:`{{count}} ignorate`,colRow:`Riga`,colStatus:`Stato`,colColor:`Colore`,colorResolved:`Colore compilato dal catalogo`,colorCrossMaterial:`Colore preso da un materiale diverso — nessuna corrispondenza esatta nel catalogo`,duplicateExisting:`Esiste già una bobina con questo materiale, marca e colore — verrà comunque importata come nuova bobina`,spoolmanHint:`In modalità Spoolman, usa l'importazione/esportazione CSV integrata di Spoolman.`,importValidRows:`Importa {{count}} righe valide`,noValidRows:`Nessuna riga valida`,importing:`Importazione…`,importSuccess:`{{count}} bobine importate`,importError:`Importazione non riuscita`,exportError:`Esportazione non riuscita`},addSpool:`Aggiungi Bobina`,editSpool:`Modifica Bobina`,copySpool:`Copia Bobina`,material:`Materiale`,selectMaterial:`Seleziona materiale...`,subtype:`Sottotipo`,brand:`Marchio`,searchBrand:`Cerca marchio...`,useCustomBrand:`Usa "{{brand}}"`,useCustomMaterial:`Usa materiale personalizzato: {{material}}`,suggestedOptions:`Suggeriti`,allOptions:`Tutti`,colorName:`Nome Colore`,colorNamePlaceholder:`Bianco Giada, Rosso Fuoco...`,color:`Colore`,hexColor:`Colore Hex`,pickColor:`Scegli colore personalizzato`,labelWeight:`Peso da Etichetta`,coreWeight:`Peso Bobina Vuota`,searchSpoolWeight:`Cerca peso bobina...`,weightUsed:`Utilizzato`,currentWeight:`Peso Rimanente`,measuredWeight:`Peso Misurato`,spoolName:`Bobina`,costPerKg:`Costo per kg`,storageLocation:`Posizione di archiviazione`,storageLocationPlaceholder:`es. Scaffale A, Cassetto 1`,openInInventory:`Apri nell'inventario`,measuredWeightError:`Il peso misurato deve essere compreso tra {{min}}g e {{max}}g.`,slicerFilament:`Filamento Slicer`,slicerFilamentName:`Nome Preset Slicer`,slicerPreset:`Preset Slicer`,searchPresets:`Cerca preset filamento...`,selectedPreset:`Selezionato`,noPresetsFound:`Nessun preset trovato`,tempOverrides:`Override Temperatura`,note:`Nota`,notePlaceholder:`Eventuali note aggiuntive su questa bobina...`,category:`Categoria`,categoryPlaceholder:`es. Produzione, Prototipo, Cliente A`,categoryNone:`Senza categoria`,storageLocationNone:`Nessuna posizione impostata`,lowStockThresholdOverride:`Soglia scorte basse (questa bobina)`,lowStockThresholdOverrideHelp:`Lascia vuoto per usare la soglia globale ({{global}}%).`,clearRfid:`Cancella tag RFID`,rfidCleared:`Tag RFID cancellato`,archive:`Archivia`,restore:`Ripristina`,noSpools:`Ancora nessuna bobina. Aggiungi la tua prima bobina per iniziare.`,noAvailableSpools:`Nessuna bobina disponibile. Aggiungi una bobina al tuo inventario o rimuovine l'assegnazione da un altro slot.`,kProfiles:`Profili K`,addKProfile:`Aggiungi K-Profile`,assignSpool:`Assegna Bobina`,unassignSpool:`Scollega`,assignSuccess:`Bobina assegnata e slot AMS configurato`,assignPendingInsert:`Assegnato. Lo slot verrà configurato all'inserimento della bobina.`,assignFailed:`Assegnazione bobina fallita`,selectSpool:`Seleziona una bobina da assegnare a questo slot`,assigned:`Assegnato`,assigning:`Assegnazione...`,searchSpools:`Cerca bobine...`,showAllSpools:`Mostra tutte le bobine`,spoolmanSpools:`Bobine Spoolman`,allMaterials:`Tutti i Materiali`,filterByBrand:`Filtra per marchio...`,showArchived:`Mostra archiviate`,quickAdd:`Aggiunta rapida (Scorta)`,quantity:`Quantità`,stock:`Scorta`,configured:`Configurata`,spoolsCreated:`{{count}} bobine create`,spoolsPartiallyCreated:`{{created}} di {{total}} bobine create (alcune non riuscite)`,spoolCreated:`Bobina creata`,spoolUpdated:`Bobina aggiornata`,spoolDeleted:`Bobina eliminata`,deepLinkSpoolNotFound:`Bobina non trovata`,deepLinkFetchFailed:`Impossibile caricare la bobina — riprova`,spoolArchived:`Bobina archiviata`,spoolRestored:`Bobina ripristinata`,kProfileSaveFailed:`Impossibile salvare le impostazioni del profilo K`,syncWeightSpoolNotFound:`Bobina non trovata — potrebbe essere stata eliminata`,syncWeightSpoolmanUnreachable:`Spoolman non è raggiungibile — riprovare più tardi`,syncWeightFailed:`Sincronizzazione del peso non riuscita`,spoolmanUnreachable:`Spoolman non è raggiungibile — riprovare più tardi`,deleteSpoolNotFound:`Bobina non trovata — potrebbe essere già stata eliminata`,deleteFailed:`Impossibile eliminare la bobina`,archiveSpoolNotFound:`Bobina non trovata — potrebbe essere già stata eliminata`,archiveFailed:`Impossibile archiviare la bobina`,restoreSpoolNotFound:`Bobina non trovata — potrebbe essere già stata eliminata`,restoreFailed:`Impossibile ripristinare la bobina`,saveFailed:`Impossibile salvare le modifiche`,tagClearFailed:`Impossibile cancellare il tag`,deleteConfirm:`Sei sicuro di voler eliminare questa bobina? Questa azione non può essere annullata.`,archiveConfirm:`Sei sicuro di voler archiviare questa bobina?`,advancedSettings:`Impostazioni Avanzate`,filamentInfoTab:`Info filamento`,paProfileTab:`Profilo PA`,filamentInfo:`Filamento`,additional:`Aggiuntivo`,loadingPresets:`Caricamento preset cloud...`,cloudConnected:`Cloud connesso`,cloudNotConnected:`Cloud non connesso (valori predefiniti)`,recentColors:`Recenti`,searchColors:`Cerca colori...`,searchResults:`Risultati della ricerca`,allColors:`Tutti i colori`,commonColors:`Colori comuni`,showLess:`Mostra meno`,showAll:`Mostra tutto`,noColorsFound:`Nessun colore corrisponde alla ricerca`,noResults:`Nessun risultato trovato`,extraColorsLabel:`Colori extra`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`Incolla da 2 a 8 stop hex, separati da virgole. Visualizzato come sfumatura.`,extraColorsInvalid:`Hex non validi ignorati: {{tokens}}`,colorEffectLabel:`Effetto`,colorEffect:{none:`Nessuno`,sparkle:`Scintillante`,wood:`Legno`,marble:`Marmo`,glow:`Bagliore`,matte:`Opaco`,silk:`Silk`,galaxy:`Galassia`,rainbow:`Arcobaleno`,metal:`Metallo`,translucent:`Traslucido`,gradient:`Sfumatura`,dualColor:`Bicolore`,triColor:`Tricolore`,multicolor:`Multicolore`},selectMaterialFirst:`Selezionare prima un materiale nella scheda Info filamento.`,noPrintersConfigured:`Nessuna stampante configurata. Aggiungi stampanti per usare i profili PA.`,matchingFilter:`Corrispondenti`,anyBrand:`Qualsiasi marca`,anyVariant:`Qualsiasi variante`,autoSelect:`Selezione automatica`,matches:`corrispondenze`,match:`corrispondenza`,noMatches:`Nessuna corrispondenza`,connected:`Connessa`,offline:`Offline`,printerOffline:`La stampante è offline. Connetti per visualizzare i profili di calibrazione.`,noKProfilesMatch:`Nessun profilo K corrisponde al filamento selezionato.`,leftNozzle:`Ugello sinistro`,rightNozzle:`Ugello destro`,profilesSelected:`profili di calibrazione selezionati`,totalInventory:`Inventario totale`,totalConsumed:`Totale consumato`,byMaterial:`Per materiale`,inPrinter:`In stampante`,lowStock:`Scorta bassa`,sinceTracking:`Dall'inizio del tracciamento`,resetConsumedCounter:`Azzera contatore`,resetConsumedCounterTooltip:`Azzera il contatore di grammi consumati per questa bobina. Il peso rimanente non viene modificato.`,resetConsumedCounterConfirm:`Azzerare il contatore di grammi consumati di questa bobina? Le stampe future ripartiranno da zero. La bobina, il calcolo del peso rimanente e le impostazioni non vengono modificati.`,resetAllConsumedCounters:`Azzera tutti i contatori`,resetAllConsumedCountersTooltip:`Azzera il contatore di grammi consumati su ogni bobina. I pesi rimanenti non vengono modificati.`,resetAllConsumedCountersConfirm:`Azzerare il contatore di grammi consumati su tutte le {{count}} bobine (incluse quelle archiviate)? La statistica "Totale Consumato" verrà azzerata e le stampe future ripartiranno da zero. Bobine e pesi rimanenti restano invariati.`,consumedCounterReset:`Contatore azzerato`,allConsumedCountersReset:`Contatore azzerato per {{count}} bobina/e`,resetConsumedCounterFailed:`Impossibile azzerare il contatore`,loadedInAms:`Caricato in AMS/Est`,remaining:`Rimanente`,weightCheck:`Controllo Peso`,lastWeighed:`Ultima pesatura`,neverWeighed:`Mai pesato`,search:`Cerca bobine...`,showing:`Visualizzazione`,to:`a`,of:`di`,show:`Mostra`,spools:`bobine`,spool:`bobina`,page:`Pagina`,noSpoolsMatch:`Nessun risultato trovato`,noSpoolsMatchDesc:`Prova a modificare la ricerca o i filtri per trovare quello che cerchi.`,active:`Attive`,archived:`Archiviate`,all:`Tutte`,used:`Usato`,new:`Nuovo`,clearFilters:`Cancella filtri`,table:`Tabella`,cards:`Schede`,net:`Netto`,groupSimilar:`Raggruppa`,groupedSpools:`{{count}} bobine identiche`,groupedRows:`righe`,columns:`Colonne`,configureColumns:`Configura colonne`,configureColumnsDesc:`Trascina per riordinare le colonne o usa le frecce. Attiva/disattiva la visibilità con l'icona dell'occhio.`,visible:`visibili`,reset:`Ripristina`,cancel:`Annulla`,applyChanges:`Applica modifiche`,moveUp:`Sposta su`,moveDown:`Sposta giù`,hideColumn:`Nascondi colonna`,showColumn:`Mostra colonna`,linkToSpool:`Collega a bobina`,tagLinked:`Tag collegato alla bobina`,tagLinkFailed:`Impossibile collegare il tag`,tagAlreadyLinked:`Tag già collegato a un'altra bobina`,unknownTag:`Tag RFID sconosciuto rilevato`,usageHistory:`Cronologia utilizzo`,noUsageHistory:`Nessun utilizzo registrato`,printName:`Nome stampa`,weightConsumed:`Peso consumato`,clearHistory:`Cancella`,historyCleared:`Cronologia utilizzo cancellata`,fillSourceLabel:`(Inv)`,lowStockThresholdError:`La soglia deve essere tra 0.1 e 99.9`,assignMismatchTitle:`Materiale non corrispondente`,assignMismatchMessage:`Il materiale della bobina selezionata "{{spoolMaterial}}" non corrisponde al materiale del vassoio "{{trayMaterial}}" per {{location}}. Assegnare comunque?`,assignMismatchConfirm:`Assegna comunque`,assignPartialMismatchMessage:`Il materiale della bobina "{{spoolMaterial}}" è simile ma non corrisponde esattamente a "{{trayMaterial}}" in {{location}}. Vuoi procedere?`,assignProfileMismatchMessage:`Il profilo della bobina "{{spoolProfile}}" non corrisponde al profilo del vassoio "{{trayProfile}}" in {{location}}. Vuoi procedere?`,assignReconfigureNote:`Lo slot AMS verrà riconfigurato per utilizzare il profilo della bobina.`,spoolmanFilamentCatalog:`Catalogo filamenti Spoolman`,pickFromSpoolmanCatalog:`Scegli dal catalogo Spoolman…`,spoolmanFilamentSelected:`Filamento selezionato dal catalogo Spoolman`,spoolmanFilamentUnlinked:`Collegamento al catalogo filamenti rimosso`,noSpoolmanFilaments:`Nessun filamento trovato nel catalogo Spoolman`,spoolmanFilamentColorSwatch:`Colore del filamento`,spoolWeightManagedBySpoolman:`Il peso della bobina vuota è gestito per tipo di filamento in Spoolman`,spoolmanCatalogLoadFailed:`Impossibile caricare il catalogo Spoolman`},timelapse:{title:`Timelapse`,create:`Crea timelapse`,download:`Scarica`,delete:`Elimina`,preview:`Anteprima`,frameRate:`Frame rate`,quality:`Qualità`,processing:`Elaborazione...`,noTimelapses:`Nessun timelapse disponibile`},ams:{title:`AMS`,slot:`Slot`,empty:`Vuoto`,emptySlot:`Slot vuoto`,slotEmpty:`Vuoto`,slotUnconfigured:`?`,emptySlotReset:`Nessuna bobina assegnata`,unknown:`Sconosciuto`,humidity:`Umidità`,temperature:`Temperatura`,filamentType:`Tipo filamento`,filamentColor:`Colore`,remaining:`Rimanente`,history:`Cronologia AMS`,noHistory:`Nessuna cronologia disponibile`,configureSlot:`Configura slot`,externalSpool:`Bobina esterna`,profile:`Profilo`,kFactor:`Fattore K`,fill:`Livello`,configure:`Configura`,used:`utilizzato`,remainingUnit:`rimanente`},printModal:{selectPrinter:`Seleziona stampante`,selectPlate:`Seleziona piatto`,filamentMapping:`Mappatura filamento`,plateN:`Piatto {{n}}`,plateFilamentsUnreadable:`Non è stato possibile leggere i filamenti di un piatto selezionato, quindi non può essere assegnato. Deselezionalo per accodare gli altri.`,totalCost:`Costo totale:`,slotRemainingShort:` - {{grams}}g rim.`,printSettings:`Impostazioni stampa`,bedLeveling:`Livellamento piatto`,flowCalibration:`Calibrazione flusso`,vibrationCalibration:`Calibrazione vibrazioni`,layerInspection:`Ispezione primo layer`,timelapse:`Timelapse`,cancel:`Annulla`,noPrintersAvailable:`Nessuna stampante disponibile`,printerBusy:`Stampante occupata`,printerOffline:`Stampante offline`,sameTypeDifferentColor:`Stesso tipo, colore diverso`,filamentTypeNotLoaded:`Tipo di filamento non caricato`,whenToPrint:`Quando stampare`,asap:`Subito`,queue:`Coda`,schedule:`Programma`,dateTime:`Data e ora`,invalidDateTime:`Inserisci data e ora valide`,openCalendar:`Apri calendario`,requireManualStart:`Richiedi avvio manuale`,requirePreviousSuccess:`Avvia solo se la stampa precedente è riuscita`,autoOffAfter:`Spegni la stampante al termine`,helpAsap:`La stampa verrà aggiunta in cima alla coda e partirà appena una stampante idonea è inattiva.`,helpSchedule:`La stampa partirà all'ora programmata se la stampante è inattiva. Se è occupata, attenderà che diventi disponibile.`,helpQueue:`La stampa verrà aggiunta in fondo alla coda.`,leftNozzle:`L`,rightNozzle:`R`,leftNozzleTooltip:`Ugello sinistro`,rightNozzleTooltip:`Ugello destro`,filamentOverride:`Sostituzione filamento`,filamentOverrideHint:`Sostituisci opzionalmente i filamenti per l'assegnazione basata sul modello. Lo scheduler abbinerà i filamenti selezionati invece dei valori 3MF originali.`,originalFilament:`Originale`,overrideWith:`Sostituisci con`,resetToOriginal:`Ripristina originale`,insufficientFilamentTitle:`Filamento insufficiente`,waitingForAmsStatus:`In attesa dello stato AMS di {{printer}}…`,insufficientFilamentMessage:`Alcune bobine assegnate hanno meno filamento rimanente di quanto necessario per questa stampa:`,insufficientFilamentLine:`{{printer}} - {{slot}}: necessita di {{required}}g, rimanenti {{remaining}}g`,printAnyway:`Stampa comunque`,forceColorMatch:`Forza corrispondenza colore`,staggerPrinterStarts:`Scaglionare avvii`,staggerGroupSize:`Dimensione gruppo`,staggerInterval:`Intervallo (min)`,staggerPreview:`{{printers}} stampanti → {{groups}} gruppi di {{size}}, avvio ogni {{interval}} min`,staggerLastGroup:`ultimo gruppo: {{count}}`,staggerTotal:`totale: {{minutes}} min`,staggerToPrinters:`Scagliona a {{count}} stampanti`,gcodeInjection:`Inietta G-code auto-stampa`},backup:{includesEncryptionKey:`I backup locali includono il file della chiave di crittografia MFA (DATA_DIR/.mfa_encryption_key), quindi un backup ZIP è autonomo. Tratta lo ZIP come sensibile — chiunque abbia il file può decifrare i client secret OIDC e i segreti TOTP contenuti.`,title:`Backup e ripristino`,createBackup:`Crea backup`,restoreBackup:`Ripristina backup`,restoreDescription:`Sostituisci tutti i dati da un file di backup`,downloadBackup:`Scarica backup`,uploadBackup:`Carica backup`,lastBackup:`Ultimo backup`,autoBackup:`Backup automatico`,backupNow:`Esegui backup ora`,restoreWarning:`Avviso: il ripristino sovrascriverà tutti i dati attuali.`,includeArchives:`Includi archivi`,includeSettings:`Includi impostazioni`,includeProfiles:`Includi profili`,backupSuccess:`Backup creato con successo`,restoreSuccess:`Backup ripristinato con successo`,backupFailed:`Backup fallito`,restoreFailed:`Ripristino fallito`,restoreNote:`La stampante virtuale verrà fermata durante il ripristino`,githubBackup:`Backup GitHub`,enabled:`Abilitato`,cloudLoginRequired:`Accesso Bambu Cloud richiesto. Accedi in Profili → Profili Cloud per abilitare il backup GitHub.`,cloudLoginRequiredShort:`Accesso Cloud richiesto`,githubDescription:`Sincronizza automaticamente i tuoi profili con un repository GitHub privato per backup e cronologia delle versioni.`,repoIsPrivate:`Il repository è privato — è sicuro effettuare il backup.`,repoIsPublicWarning:`Il repository è PUBBLICO. I backup di Bambuddy includono credenziali MQTT, token di Home Assistant, token di Prometheus, la tua e-mail Bambu Cloud e i codici di accesso alle stampanti tramite K-profile. Il salvataggio è bloccato finché non rendi privato il repository nelle impostazioni del tuo provider.`,repoVisibilityUnknown:`Impossibile determinare la visibilità del repository. Bambuddy rifiuta di eseguire backup su qualsiasi target non confermato come privato; il salvataggio sarà bloccato.`,repositoryUrl:`URL del repository`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`Consenti HTTP non sicuro`,allowInsecureHttpHint:`Abilita per istanze self-hosted su reti private senza TLS`,personalAccessToken:`Token di accesso personale`,tokenSaved:`(salvato)`,enterNewToken:`Inserisci un nuovo token per aggiornare`,tokenHint:`Token a grana fine con permesso di lettura/scrittura dei contenuti`,branch:`Branch`,provider:`Provider Git`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`Solo manuale`,hourly:`Ogni ora`,daily:`Giornaliero`,weekly:`Settimanale`,includeInBackup:`Includi nel backup`,kProfiles:`K-Profili`,kProfilesDescription:`Calibrazione dell'avanzamento pressione dalle stampanti connesse`,noPrintersConnected:`Nessuna stampante connessa`,printersConnected:`{{connected}}/{{total}} connesse`,cloudProfiles:`Profili Cloud`,cloudProfilesDescription:`Preset di filamento, stampante e processo da Bambu Cloud`,appSettings:`Impostazioni App`,appSettingsDescription:`Configurazione Bambuddy (database completo)`,spoolInventory:`Inventario bobine`,spoolInventoryDescription:`Bobine di filamento, cronologia utilizzo e tracciamento costi`,printArchives:`Archivi di stampa`,printArchivesDescription:`Metadati della cronologia di stampa (nessun file gcode/3MF)`,lastBackupAt:`Ultimo backup:`,noBackupsYet:`Nessun backup ancora`,next:`Prossimo:`,startingBackup:`Avvio del backup...`,test:`Test`,enableBackup:`Abilita backup`,testConnection:`Testa connessione`,enterRepoUrl:`Inserisci l'URL del repository`,enterRepoAndToken:`Inserisci l'URL del repository e il token di accesso`,repoRequired:`L'URL del repository è obbligatorio`,tokenRequired:`Il token di accesso è obbligatorio`,githubBackupEnabled:`Backup GitHub abilitato`,tokenUpdated:`Token aggiornato`,settingsSaved:`Impostazioni salvate`,failedToSave:`Salvataggio fallito: {{message}}`,backupCompleteFiles:`Backup completato - {{count}} file aggiornati`,backupSkippedNoChanges:`Backup saltato - nessuna modifica`,backupFailed2:`Backup fallito: {{message}}`,clearedLogs:`{{count}} log eliminati`,failedToClearLogs:`Eliminazione log fallita: {{message}}`,history:`Cronologia`,clear:`Cancella`,date:`Data`,status:`Stato`,commit:`Commit`,localBackup:`Backup locale`,localBackupDescription:`Crea un backup completo dei tuoi dati Bambuddy includendo database, archivi, upload e tutti i file.`,downloadBackupLabel:`Scarica backup`,completeBackupZip:`Backup completo: database + tutti i file (ZIP)`,download:`Scarica`,preparingBackup:`Preparazione del backup...`,creatingArchive:`Creazione dell'archivio di backup... Potrebbe richiedere del tempo per archivi di grandi dimensioni.`,downloadingFile:`Download del file di backup...`,backupDownloaded:`Backup scaricato con successo`,failedToCreateBackup:`Creazione del backup fallita: {{message}}`,restore:`Ripristina`,restoreReplacesAll:`Il ripristino sostituisce tutti i dati.`,restoreReplacesAllDetail:`Il database e i file attuali verranno completamente sostituiti. È necessario un riavvio dopo il ripristino.`,restoreConfirmTitle:`Ripristina backup`,restoreConfirmMessage:`Sei sicuro di voler ripristinare da "{{filename}}"? Questo sostituirà completamente il tuo database e tutti i file. L'applicazione dovrà essere riavviata dopo il ripristino.`,restoreConfirmButton:`Ripristina backup`,uploadingFile:`Caricamento del file di backup...`,backupRestoredRestart:`Backup ripristinato. Riavvia Bambuddy.`,failedToRestore:`Ripristino del backup fallito. Controlla il formato del file.`,reloadNow:`Ricarica ora`,creatingBackup:`Creazione del backup`,restoringBackup:`Ripristino del backup`,preparing:`Preparazione...`,processing:`Elaborazione...`,doNotClosePage:`Non chiudere questa pagina e non navigare altrove. Questa operazione potrebbe richiedere diversi minuti per backup di grandi dimensioni.`,restoring:`Ripristino in corso...`,restoreComplete:`Ripristino completato`,restoreFailed2:`Ripristino fallito`,importSettings:`Importa impostazioni da un file di backup`,pleaseWaitRestoring:`Attendere durante il ripristino dei dati`,selectBackupFile:`Clicca per selezionare un file di backup (.json o .zip)`,duplicateHandling:`Come funziona la gestione dei duplicati:`,matchPrinters:`Stampanti`,matchPrintersBy:`corrispondenza per numero di serie`,matchSmartPlugs:`Smart Plug`,matchSmartPlugsBy:`corrispondenza per indirizzo IP`,matchNotificationProviders:`Provider di notifica`,matchNotificationProvidersBy:`corrispondenza per nome`,matchFilaments:`Filamenti`,matchFilamentsBy:`corrispondenza per nome + tipo + marca`,matchArchives:`Archivi`,matchArchivesBy:`corrispondenza per hash del contenuto (sempre saltato)`,matchPendingUploads:`Upload in sospeso`,matchPendingUploadsBy:`corrispondenza per nome file`,matchSettingsTemplates:`Impostazioni e modelli`,matchSettingsTemplatesBy:`sempre sovrascritti`,replaceExisting:`Sostituisci dati esistenti`,keepExisting:`Mantieni dati esistenti`,overwriteDescription:`Sovrascrivi gli elementi già esistenti con i dati del backup`,keepDescription:`Ripristina solo gli elementi che non esistono ancora`,overwriteCaution:`Attenzione:`,overwriteWarning:`La sovrascrittura sostituirà le configurazioni attuali con i dati del backup. I codici di accesso delle stampanti non vengono mai sovrascritti per sicurezza.`,cancel:`Annulla`,processingBackup:`Elaborazione del file di backup...`,itemsRestored:`Elementi ripristinati`,itemsSkipped:`Elementi saltati`,restored:`Ripristinati`,skippedAlreadyExist:`Saltati (già esistenti)`,filesCategory:`File (3MF, miniature, ecc.)`,andMore:`...e altri {{count}}`,newApiKeysGenerated:`Nuove chiavi API generate`,keysShownOnce:`Queste chiavi vengono mostrate solo una volta. Copiale ora!`,copy:`Copia`,noDataFound:`Nessun dato da ripristinare trovato nel file di backup.`,close:`Chiudi`,scheduledBackup:`Backup pianificati`,scheduledBackupDescription:`Crea automaticamente snapshot di backup secondo una pianificazione. La directory di output può essere montata su un NAS o storage esterno.`,frequency:`Frequenza`,backupTime:`Tempo`,retention:`Conservazione`,retentionDescription:`Numero di backup da conservare`,outputPath:`Percorso di output`,outputPathPlaceholder:`Predefinito: {{path}}`,outputPathDescription:`Lasciare vuoto per la posizione predefinita`,runNow:`Esegui ora`,backupFiles:`File di backup`,noScheduledBackups:`Nessun backup ancora`,deleteBackup:`Elimina`,deleteBackupConfirm:`Eliminare questo file di backup?`,backupRunning:`Backup in corso...`,scheduledBackupComplete:`Backup completato con successo`,scheduledBackupFailed:`Backup fallito`,nextBackup:`Prossimo backup`,backupSize:`Dimensione`,localTimeHint:`Ora locale ({{tz}})`,defaultPathLabel:`Predefinito:`,pathCheck:{title:`Bambuddy non riesce a scrivere in questa directory`,howToFix:`Come risolvere:`,sandboxed:`Il servizio Bambuddy non riesce a scrivere in {{path}}. La sua unit systemd usa ProtectSystem=strict, che rende ogni directory al di fuori di quelle di installazione, dati e log di sola lettura per il servizio - anche una in cui puoi scrivere dalla tua shell.`,read_only:`{{path}} si trova su un filesystem di sola lettura.`,permission_denied:`Bambuddy non ha il permesso di scrivere in {{path}}. Controlla proprietario e permessi della directory.`,no_space:`Il filesystem che contiene {{path}} è pieno.`,not_a_directory:`{{path}} esiste ma non è una directory.`,missing:`{{path}} non esiste e non è stato possibile crearla.`,error:`Bambuddy non riesce a scrivere in {{path}}.`,ephemeralTitle:`Questi backup non sopravvivono alla ricreazione del container`,container_ephemeral:`{{path}} si trova dentro il container Bambuddy, non sull'host. I backup scritti lì vanno persi quando il container viene ricreato. Monta la directory dall'host:`},categories:{settings:`Impostazioni`,notification_providers:`Provider di notifica`,notification_templates:`Modelli di notifica`,smart_plugs:`Smart Plug`,printers:`Stampanti`,filaments:`Filamenti`,maintenance_types:`Tipi di manutenzione`,archives:`Archivi`,projects:`Progetti`,pending_uploads:`Upload in sospeso`,external_links:`Link esterni`,api_keys:`Chiavi API`}},tags:{title:`Tag`,addTag:`Aggiungi tag`,editTag:`Modifica tag`,deleteTag:`Elimina tag`,tagName:`Nome tag`,tagColor:`Colore tag`,noTags:`Nessun tag`,deleteConfirm:`Sei sicuro di voler eliminare questo tag?`,manageTags:`Gestisci tag`},uploadModal:{title:`Carica file 3MF`,dragDrop:`Trascina e rilascia file .3mf qui`,or:`o`,browseFiles:`Sfoglia file`,extractionInfo:`Il modello stampante sarà estratto automaticamente dai metadati del file 3MF.`,uploaded:`caricati`,failed:`falliti`,uploading:`Caricamento...`,upload:`Carica`,uploadFailed:`Caricamento fallito`},editArchive:{title:`Modifica archivio`,name:`Nome`,namePlaceholder:`Nome stampa`,printer:`Stampante`,noPrinter:`Nessuna stampante`,project:`Progetto`,noProject:`Nessun progetto`,itemsPrinted:`Elementi stampati`,itemsPrintedHelp:`Numero di elementi prodotti in questo job di stampa`,notes:`Note`,notesPlaceholder:`Aggiungi note su questa stampa...`,externalLink:`Link esterno`,externalLinkPlaceholder:`https://printables.com/model/...`,externalLinkHelp:`Link a Printables, Thingiverse o altra fonte`,tags:`Tag`,tagsPlaceholder:`Aggiungi tag...`,addMoreTags:`Aggiungi altri tag...`,matchingTags:`Tag corrispondenti "{{query}}"`,existingTags:`Tag esistenti`,clickToAdd:`(clicca per aggiungere)`,status:`Stato`,failureReason:`Motivo fallimento`,selectReason:`Seleziona motivo...`,photos:`Foto del risultato stampato`,photosHelp:`Clicca + per aggiungere foto del risultato stampato`,printResult:`Risultato stampa`,saving:`Salvataggio...`,failureReasons:{adhesionFailure:`Fallimento adesione`,spaghettiDetached:`Spaghetti / staccato`,layerShift:`Spostamento layer`,cloggedNozzle:`Ugello intasato`,filamentRunout:`Filamento esaurito`,warping:`Deformazione`,stringing:`Filamento`,underExtrusion:`Sotto-estrusione`,powerFailure:`Mancanza corrente`,userCancelled:`Annullato dall'utente`,other:`Altro`},statuses:{completed:`Completato`,failed:`Fallito`,aborted:`Annullato`,printing:`In stampa`}},kProfiles:{title:`Profili K`,noPrintersConfigured:`Nessuna stampante configurata`,addPrinterInSettings:`Aggiungi una stampante in Impostazioni per gestire i K-profiles`,noActivePrinters:`Nessuna stampante attiva`,enablePrinterConnection:`Abilita una connessione stampante per vedere i K-profiles`,loadingProfiles:`Caricamento K-Profiles...`,printerOffline:`Stampante offline`,printerOfflineDesc:`La stampante selezionata non e connessa. Accendila per vedere i K-profiles.`,noMatchingProfiles:`Nessun profilo corrispondente`,noMatchingProfilesDesc:`Nessun profilo corrisponde ai criteri di ricerca`,noKProfiles:`Nessun K-Profile`,noKProfilesDesc:`Nessun profilo pressure advance per ugello da {{diameter}}mm`,createFirstProfile:`Crea primo profilo`,printer:`Stampante`,nozzle:`Ugello`,refresh:`Aggiorna`,addProfile:`Aggiungi profilo`,export:`Esporta`,import:`Importa`,select:`Seleziona`,selectAll:`Seleziona tutto`,delete:`Elimina`,searchPlaceholder:`Cerca per nome o filamento...`,allExtruders:`Tutti gli estrusori`,leftOnly:`Solo sinistro`,rightOnly:`Solo destro`,allFlow:`Tutto flow`,hfOnly:`Solo HF`,sOnly:`Solo S`,sortName:`Ordina: Nome`,sortKValue:`Ordina: K-Value`,sortFilament:`Ordina: Filamento`,leftExtruder:`Estrusore sinistro`,rightExtruder:`Estrusore destro`,modal:{addTitle:`Aggiungi K-Profile`,editTitle:`Modifica K-Profile`,profileName:`Nome profilo`,profileNamePlaceholder:`Il mio profilo PLA`,kValue:`Valore K`,kValuePlaceholder:`0.020`,kValueHelp:`Intervallo tipico: 0.01 - 0.06 per PLA, 0.02 - 0.10 per PETG`,filament:`Filamento`,selectFilament:`Seleziona filamento...`,noFilamentsHelp:`Nessun filamento trovato. Crea prima un K-profile in Bambu Studio.`,flowType:`Tipo flow`,highFlow:`Alto flusso`,standard:`Standard`,nozzleSize:`Dimensione ugello`,extruder:`Estrusore`,extruders:`Estrusori`,left:`Sinistra`,right:`Destra`,notes:`Note (salvate localmente)`,notesPlaceholder:`Aggiungi note su questo profilo...`,notesHelp:`Le note sono salvate in Bambuddy, non sulla stampante`,syncing:`Sincronizzazione con stampante...`,savingExtruder:`Salvataggio su estrusore {{current}}/{{total}}...`,pleaseWait:`Attendere`},deleteConfirm:{title:`Elimina profilo`,cannotUndo:`Questo non può essere annullato`,message:`Sei sicuro di voler eliminare "{{name}}" dalla stampante?`},bulkDelete:{title:`Elimina profili`,cannotUndo:`Questo non può essere annullato`,message:`Sei sicuro di voler eliminare {{count}} profili selezionati dalla stampante?`},toast:{profileSaved:`K-profile salvato`,profilesSaved:`K-profile salvato su {{count}} estrusori`,selectAtLeastOneExtruder:`Seleziona almeno un estrusore`,profileDeleted:`K-profile eliminato`,profilesDeleted:`Eliminati {{count}} profili`,exportedProfiles:`Esportati {{count}} profili`,importedProfiles:`Importati {{count}} di {{total}} profili`,noProfilesToExport:`Nessun profilo da esportare`,invalidFileFormat:`Formato file non valido`,failedToParseImport:`Parsing file import fallito`,failedToSaveBatch:`Salvataggio K-profiles fallito`,noteSaved:`Nota salvata`,failedToSaveNote:`Salvataggio nota fallito`},permission:{noRead:`Non hai il permesso di aggiornare i profili`,noCreate:`Non hai il permesso di aggiungere profili`,noUpdate:`Non hai il permesso di aggiornare K-profiles`,noDelete:`Non hai il permesso di eliminare K-profiles`,noExport:`Non hai il permesso di esportare profili`,noImport:`Non hai il permesso di importare profili`}},virtualPrinter:{title:`Stampante virtuale`,running:`In esecuzione`,stopped:`Ferma`,description:{default:`Abilita una stampante virtuale che appare in Bambu Studio e OrcaSlicer. I file inviati a questa stampante saranno archiviati senza stampare.`,proxy:`Abilita un proxy che inoltra il traffico slicer a una stampante reale, permettendo la stampa remota su qualsiasi rete.`},enable:{title:`Abilita stampante virtuale`,visibleInSlicer:`Visibile come "Bambuddy" nella ricerca slicer`,proxyingTo:`In proxy verso {{name}}`,notActive:`Non attivo`},model:{title:`Modello stampante`,description:`Seleziona il modello stampante da emulare.`,restartWarning:`Cambiare il modello riavviera la stampante virtuale`},accessCode:{title:`Codice accesso`,isSet:`Codice accesso impostato`,notSet:`Nessun codice accesso impostato - richiesto per abilitare`,placeholder:`Inserisci codice 8 caratteri`,placeholderChange:`Inserisci nuovo codice per cambiare`,hint:`Deve essere esattamente 8 caratteri. Usato dagli slicer per autenticarsi.`,charCount:`({{count}}/8)`,inheritedFromTarget:`Ereditato dalla stampante target`,derivedFromTargetHint:`Usa il codice di accesso della stampante target. Il bridge inoltra l'autenticazione dello slicer alla stampante reale, quindi i codici devono corrispondere — modifica il codice nelle impostazioni della stampante per cambiarlo.`,reveal:`Mostra codice accesso`,hide:`Nascondi codice accesso`},targetPrinter:{title:`Stampante target`,configured:`Target proxy configurato`,notConfigured:`Nessuna stampante target selezionata - richiesta per modalita proxy`,placeholder:`Seleziona una stampante...`,hint:`Seleziona la stampante a cui fare proxy. La stampante deve essere in modalita LAN.`,noPrinters:`Nessuna stampante configurata. Aggiungi una stampante per usare la modalita proxy.`},remoteInterface:{title:`Sovrascrittura interfaccia di rete`,configured:`Sovrascrittura interfaccia attiva`,optional:`Opzionale - usare se l'IP rilevato automaticamente e sbagliato (es. piu NIC, Docker, VPN)`,placeholder:`Rilevamento automatico (predefinito)...`,hint:`Sovrascrive l'indirizzo IP pubblicizzato via SSDP e usato nel certificato TLS. Utile quando Bambuddy ha piu interfacce di rete.`},mode:{title:`Modalita`,archive:`Archivio`,archiveDesc:`Archivia subito i file`,review:`Revisione`,reviewDesc:`Rivedi prima di archiviare`,queue:`Coda`,queueDesc:`Archivia e aggiungi alla coda`,proxy:`Proxy`,proxyDesc:`Inoltra a stampante reale`},autoDispatch:{title:`Avvio automatico`,description:`Avvia automaticamente le stampe aggiunte alla coda. Se disattivato, le stampe attendono l'avvio manuale.`},queueForceColorMatch:{title:`Forza corrispondenza colori`,description:`Rifiuta di inviare a una stampante che non ha esattamente il tipo di filamento e il colore caricato. Disattivato per impostazione predefinita — senza questo, la coda usa solo la corrispondenza per modello e potrebbe scegliere una stampante con il colore sbagliato.`},gcodeInjection:{title:`Iniezione G-code`,description:`Applica gli snippet G-code configurati per modello nelle Impostazioni ai lavori di questo VP. Disattivato per impostazione predefinita.`},tailscaleDisabled:{title:`Integrazione Tailscale`,description:`Abilita per contrassegnare questo VP come esposto tramite Tailscale. Mostra l'indirizzo Tailscale dell'host così sai quale IP incollare nello slicer. Il passo di importazione CA è invariato — questo toggle non ha effetto sui certificati.`},setupRequired:{title:`Configurazione necessaria`,description:`La stampante virtuale richiede configurazioni di sistema aggiuntive prima di funzionare. Include port forwarding, regole firewall e impostazioni specifiche della piattaforma.`,readGuide:`Leggi la guida prima di abilitare`},howItWorks:{title:`Come funziona`,step1:`Sulla stessa LAN, le stampanti virtuali appaiono automaticamente nel tuo slicer (Bambu Studio / OrcaSlicer). Da altre reti, aggiungile manualmente tramite indirizzo IP e codice di accesso.`,step2:`In modalità Archivio, Revisione e Coda, usa il pulsante "Invia" nel tuo slicer per caricare file 3MF su Bambuddy. Lo slicer mostrerà "Stampa riuscita" — il file viene salvato, non stampato.`,step3:`In modalità Proxy, la stampante virtuale inoltra tutto il traffico a una stampante reale — le stampe partono immediatamente come con una connessione diretta.`},status:{title:`Dettagli stato`,printerName:`Nome stampante`,model:`Modello`,serialNumber:`Numero seriale`,mode:`Modalita`,pendingFiles:`File in sospeso`,targetPrinter:`Stampante target`,ftpPort:`Porta FTP`,mqttPort:`Porta MQTT`,ftpConnections:`Connessioni FTP`,mqttConnections:`Connessioni MQTT`},toast:{updated:`Impostazioni stampante virtuale aggiornate`,failedToUpdate:`Aggiornamento impostazioni fallito`,copyFailed:`Copia non riuscita — seleziona il testo manualmente`,accessCodeRequired:`Imposta prima un codice accesso`,targetPrinterRequired:`Seleziona prima una stampante target`,bindIpRequired:`Impostare prima un indirizzo IP`,accessCodeEmpty:`Il codice accesso non può essere vuoto`,accessCodeLength:`Il codice accesso deve essere esattamente 8 caratteri`,targetCodeChangedRebind:`Il codice di accesso ora corrisponde alla nuova stampante target. Ri-aggiungi questo dispositivo nel tuo slicer per acquisire il nuovo codice.`,created:`Stampante virtuale creata`,failedToCreate:`Impossibile creare la stampante virtuale`,deleted:`Stampante virtuale eliminata`,failedToDelete:`Impossibile eliminare la stampante virtuale`},list:{title:`Stampanti virtuali`,add:`Aggiungi`,addFirst:`Aggiungi stampante virtuale`,empty:`Nessuna stampante virtuale configurata. Aggiungine una per iniziare.`},bindIp:{title:`Interfaccia di rete`,placeholder:`Seleziona interfaccia...`,hint:`Interfaccia di rete a cui questa stampante virtuale si collega. Deve essere unica per stampante.`},proxy:{accessCodeHint:`In modalita proxy, usa il codice di accesso della stampante di destinazione nello slicer. La connessione viene inoltrata in modo trasparente alla stampante reale.`},addDialog:{title:`Aggiungi stampante virtuale`,name:`Nome`,hint:`Potrai configurare il codice di accesso, la stampante di destinazione e altre impostazioni dopo la creazione.`,create:`Crea`},deleteConfirm:{title:`Elimina stampante virtuale`,message:`Sei sicuro di voler eliminare "{{name}}"? Tutti i servizi di questa stampante verranno interrotti.`},archiveNameSource:{title:`Origine nome archivio`,description:`Scegli come vengono nominati i nuovi archivi quando i file arrivano tramite la stampante virtuale. "Metadati" utilizza il titolo incorporato nello slicer dal 3MF (default). "Nome file" utilizza il nome che Bambu Studio ha inviato via FTP. Nota: Bambu Studio sovrascrive il nome digitato nella finestra "invia a stampante" con il campo Titolo del 3MF quando presente, quindi entrambe le modalità producono spesso la stessa stringa.`,metadata:`Metadati`,filename:`Nome file`},caCert:{title:`Certificato dello slicer`,description:`Le stampanti virtuali usano un certificato TLS firmato dalla CA di Bambuddy. Importa questo certificato CA nell'archivio attendibile del tuo slicer una sola volta affinché accetti la connessione — senza doverlo copiare dalla riga di comando.`,copy:`Copia`,copied:`Copiato`,download:`Scarica`,fingerprint:`SHA-256`}},modelViewer:{openInSlicer:`Apri nello slicer`,tabs:{model:`Modello 3D`,gcode:`Anteprima G-code`},notAvailable:`non disponibile`,notSliced:`non sezionato`,plates:`Piatti`,allPlates:`Tutti i piatti`,plateNumber:`Piatto {{number}}`,plateCount:`{{count}} piatto`,plateCount_other:`{{count}} piatti`,objectCount:`{{count}} oggetto`,objectCount_other:`{{count}} oggetti`,filamentCount:`{{count}} filamento`,filamentCount_other:`{{count}} filamenti`,eta:`ETA {{minutes}} min`,noPreview:`Nessuna anteprima disponibile per questo file`,pagination:{pageOf:`Pagina {{current}} di {{total}}`,prev:`Prec`,next:`Succ`},errors:{failedToLoad:`Caricamento file fallito`,noMeshes:`Nessuna mesh trovata nel file 3MF`,unsupportedFormat:`Formato file non supportato`}},maintenanceDescriptions:{lubricateCarbonRods:`Applica lubrificante alle aste in carbonio per un movimento fluido`,lubricateRails:`Applica lubrificante alle guide lineari per un movimento fluido`,cleanNozzle:`Pulisci hotend e ugello per prevenire intasamenti`,checkBelts:`Verifica tensione cinghie per stampe accurate`,cleanBuildPlate:`Pulisci il piatto per migliorare l'adesione`,checkExtruder:`Ispeziona ingranaggi estrusore per usura`,checkCooling:`Assicurati che le ventole di raffreddamento funzionino`,generalInspection:`Ispezione generale stampante`,cleanCarbonRods:`Pulisci le aste in carbonio per ridurre attrito`,lubricateSteelRods:`Applica lubrificante alle aste in acciaio per un movimento fluido`,cleanSteelRods:`Pulisci le aste in acciaio per ridurre attrito`,cleanLinearRails:`Pulisci le guide lineari per rimuovere polvere e detriti`,checkPtfeTube:`Ispeziona il tubo PTFE per usura o danni`,replaceHepaFilter:`Sostituisci filtro HEPA per qualità aria`,replaceCarbonFilter:`Sostituisci filtro a carbone attivo`,lubricateLeftNozzleRail:`Lubrifica guida ugello sinistro (serie H2)`},smartPlugs:{offline:`Offline`,admin:`Amministrazione`,openPlugAdminPage:`Apri pagina amministrazione presa`,deleteSmartPlug:`Elimina presa smart`,turnOnSmartPlug:`Accendi presa smart`,turnOffSmartPlug:`Spegni presa smart`,turnOn:`Accendi`,turnOff:`Spegni`,addSmartPlug:{scanningNetwork:`Scansione rete...`,chooseEntity:`Scegli un'entità...`,connectionFailed:`Connessione fallita`,searchEntities:`Cerca entità...`,searchPowerSensors:`Cerca sensori di potenza...`,searchEnergySensors:`Cerca sensori di energia...`,placeholders:{plugName:`Presa soggiorno`,mqttStateOnValue:`ON, true, 1`,mqttSameAsPower:`Stesso del topic potenza, o diverso`}},linkedTo:`Collegato a:`,monitorOnly:`Solo monitoraggio`,alerts:`Avvisi`,scheduleOn:`Alle {{time}}`,scheduleOff:`Spento {{time}}`,on:`On`,off:`Spento`,power:`Potenza`,kwhToday:`kWh Oggi`,settings:`Impostazioni`,automationSettings:`Impostazioni automazione`,showInSwitchbar:`Mostra nella barra interruttori`,quickAccessSidebar:`Accesso rapido dalla barra laterale`,enabled:`Abilitato`,enableAutomation:`Abilita automazione per questa presa`,autoOn:`Auto On`,autoOnDescription:`Accendi quando inizia la stampa`,autoOff:`Auto Off`,autoOffDescription:`Spegni quando la stampa è completata (una tantum)`,autoOffPersistent:`Mantieni attivo`,autoOffPersistentDescription:`Resta attivo tra le stampe invece di una tantum`,controlsPrinterPower:`Alimenta la stampante`,controlsPrinterPowerDescription:`Disattiva se questa presa alimenta solo un accessorio (ventola del filtro, luci). Altrimenti spegnerla segna la stampante come offline.`,autoOffAfterDrying:`Spegni dopo asciugatura`,autoOffAfterDryingDescription:`Spegni al termine dell'asciugatura AMS`,delayAfterDryingMinutes:`Ritardo dopo asciugatura (minuti)`,turnOffDelayMode:`Modalità ritardo spegnimento`,time:`Tempo`,temp:`Temp.`,delayMinutes:`Ritardo (minuti)`,tempThreshold:`Soglia temperatura (°C)`,tempThresholdDescription:`Si spegne quando l'ugello si raffredda sotto questa temperatura`,edit:`Modifica`,deleteConfirm:`Sei sicuro di voler eliminare "{{name}}"? Questa azione non può essere annullata.`,turnOnConfirm:`Sei sicuro di voler accendere "{{name}}"?`,turnOffConfirm:`Sei sicuro di voler spegnere "{{name}}"? Questo interromperà l'alimentazione del dispositivo collegato.`,failedToTurn:`Impossibile {{action}} "{{name}}"`,unknown:`Sconosciuto`,addTitle:`Aggiungi presa smart`,editTitle:`Modifica presa smart`,stopScanning:`Interrompi scansione`,discoverTasmota:`Scopri dispositivi Tasmota`,foundDevices:`{{count}} dispositivo/i trovato/i - clicca per selezionare:`,noDevicesFound:`Nessun dispositivo Tasmota trovato nella rete`,haNotConfigured:`Home Assistant non è configurato. Configuralo in`,haSettingsPath:`Impostazioni → Rete → Home Assistant`,selectEntity:`Seleziona entità *`,ipAddress:`Indirizzo IP *`,nameLabel:`Nome *`,username:`Nome utente`,password:`Password`,authHint:`Lascia vuoto se il tuo dispositivo Tasmota non richiede autenticazione`,linkToPrinter:`Collega alla stampante`,noPrinter:`Nessuna stampante (solo controllo manuale)`,linkingDescription:`Il collegamento abilita accensione/spegnimento automatico all'inizio/fine stampa`,powerAlerts:`Avvisi potenza`,alertAbove:`Avviso se sopra (W)`,alertBelow:`Avviso se sotto (W)`,alertDescription:`Ricevi notifiche quando il consumo supera queste soglie. Lascia vuoto per disabilitare quella direzione.`,dailySchedule:`Programma giornaliero`,turnOnAt:`Accendi alle`,turnOffAt:`Spegni alle`,scheduleDescription:`Accendi/spegni automaticamente la presa a questi orari ogni giorno. Lascia vuoto per saltare quell'azione.`,showOnPrinterCard:`Mostra sulla scheda stampante`,displayOnPrinterCard:`Mostra pulsante sulla scheda stampante`,connectedResult:`Connesso!`,deviceLabel:`Dispositivo: {{name}} - `,stateLabel:`Stato: {{state}}`,test:`Test`,delete:`Elimina`,save:`Salva`,add:`Aggiungi`,cancel:`Annulla`,failedToStartScan:`Impossibile avviare la scansione`,nameRequired:`Il nome è obbligatorio`,entityRequired:`L'entità è obbligatoria per le prese Home Assistant`,mqttTopicRequired:`Almeno un topic MQTT deve essere configurato per potenza, energia o monitoraggio stato`,loadingEntities:`Caricamento entità...`,loading:`Caricamento...`,failedToLoadEntities:`Impossibile caricare le entità: {{error}}`,noEntitiesMatching:`Nessuna entità trovata corrispondente a "{{search}}"`,noEntitiesAvailable:`Nessuna entità disponibile`,searchingEntities:`Ricerca in tutte le entità ({{count}} trovate)`,showingEntities:`Mostrando switch, light, input_boolean ({{count}} disponibili)`,energyMonitoringOptional:`Monitoraggio energia (Opzionale)`,energyMonitoringHint:`Cerca e seleziona i sensori che forniscono dati di potenza/energia.`,powerSensorW:`Sensore potenza (W)`,energyTodayKwh:`Energia oggi (kWh)`,totalEnergyKwh:`Energia totale (kWh)`,noMatchingSensors:`Nessun sensore corrispondente`,none:`Nessuno`,mqttNotConfigured:`Broker MQTT non configurato. Imposta l'indirizzo del broker in`,mqttSettingsPath:`Impostazioni → Rete → Pubblicazione MQTT`,mqttNotConfiguredSuffix:`(non è necessario abilitare la pubblicazione, basta inserire i dettagli del broker).`,mqttMonitorOnlyDescription:`Le prese MQTT ricevono dati di potenza/energia tramite sottoscrizione MQTT. Il controllo on/off non è disponibile - usa il tuo broker MQTT o sistema domotico.`,powerMonitoring:`Monitoraggio potenza`,energyMonitoring:`Monitoraggio energia`,stateMonitoring:`Monitoraggio stato`,optional:`opzionale`,topic:`Argomento`,jsonPath:`Percorso JSON`,multiplier:`Moltiplicatore`,onValue:`Valore ON`,mqttPowerHint:`Il percorso JSON estrae il valore dal payload JSON (es. "power_l1"). Lascia vuoto se il topic pubblica valori numerici grezzi.
Usa moltiplicatore 0.001 per mW→W, 1000 per kW→W.`,mqttEnergyHint:`Il percorso JSON estrae il valore dal payload JSON. Lascia vuoto per valori grezzi.
Usa moltiplicatore 0.001 per Wh→kWh, 1000 per MWh→kWh.`,mqttStateHint:`Il percorso JSON estrae il valore dal payload JSON. Lascia vuoto per valori grezzi.
-Valore ON: la stringa esatta che significa "ON". Lascia vuoto per rilevamento auto (ON, true, 1).`,restControl:`Controllo`,restOnUrl:`URL accensione`,restOffUrl:`URL spegnimento`,restOnBody:`Corpo richiesta ON`,restOffBody:`Corpo richiesta OFF`,restMethod:`Metodo HTTP`,restHeaders:`Custom Headers (JSON)`,restStatusUrl:`URL stato`,restStatusPath:`Percorso JSON stato`,restStatusOnValue:`Valore ON`,restPowerUrl:`URL potenza`,restPowerPath:`Percorso JSON potenza`,restPowerMultiplier:`Moltiplicatore potenza`,restEnergyUrl:`URL energia`,restEnergyPath:`Percorso JSON energia (oggi)`,restEnergyTotalPath:`Percorso JSON energia (contatore totale)`,restEnergyTotalMultiplier:`Moltiplicatore contatore totale`,restEnergyTotalPathHint:`es. aenergy.total`,restEnergyTotalHint:`Molte prese — tutti gli Shelly fra queste — riportano solo un contatore cumulativo che non si azzera mai. Va qui, non nel campo sopra: letto come consumo di oggi non tornerebbe mai a zero a mezzanotte, e Ieri e Totale resterebbero vuoti. Bambuddy ricava Oggi e Ieri da questo valore, il che richiede uno o due giorni di letture. Uno Shelly riporta wattora, quindi usa un moltiplicatore di 0.001.`,restEnergyMultiplier:`Moltiplicatore energia`,restUrlRequired:`È richiesto almeno un URL (ON o OFF) per le prese REST`,restHeadersHint:`es. {"Authorization": "Bearer your-token"}`,restBodyHint:`es. ON, {"state": "on"}`,restStatusHint:`URL per recuperare lo stato attuale`,restPathHint:`es. state o data.power.status`,restPowerUrlHint:`URL separato per i dati di potenza (usa l'URL di stato se vuoto)`,restEnergyUrlHint:`URL separato per i dati di energia (usa l'URL di stato se vuoto)`,restEnergyHint:`Ogni valore può usare il proprio URL o ricadere sull'URL di stato. Usa i moltiplicatori per la conversione delle unità (es. 0.001 per convertire Wh in kWh).`,testConnection:`Testa connessione`,connectionSuccess:`Connessione riuscita`,noSwitchesInSwitchbar:`Nessun interruttore nella barra`,enableSwitchbarHint:`Abilita "Mostra nella barra interruttori" in Impostazioni > Smart Plugs`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`E-mail`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`Notifiche email tramite SMTP`,telegram:`Notifiche tramite bot Telegram`,discord:`Invia a un canale Discord tramite webhook`,ntfy:`Notifiche push gratuite e self-hostabili`,pushover:`Notifiche push semplici e affidabili`,callmebot:`Notifiche WhatsApp gratuite tramite CallMeBot`,webhook:`POST HTTP generico verso qualsiasi URL`,homeassistant:`Notifiche persistenti nella dashboard di Home Assistant`,bark:`Notifiche push iOS tramite Bark (auto-ospitabile)`},lastSuccess:`Ultimo: {{date}}`,error:`Errore`,printer:`Stampante:`,allPrinters:`Tutte le stampanti`,sendTestNotification:`Invia notifica di prova`,eventSettings:`Impostazioni eventi`,enabled:`Abilitato`,sendFromProvider:`Invia notifiche da questo provider`,printEvents:`Eventi di stampa`,printerStatus:`Stato stampante`,amsAlarms:`Allarmi AMS`,amsHtAlarms:`Allarmi AMS-HT`,printQueue:`Coda di stampa`,start:`Avvio`,plateCheck:`Controllo piatto`,complete:`Completato`,failed:`Fallito`,stopped:`Interrotto`,progress:`Avanzamento`,offline:`Offline`,lowFilament:`Filamento scarso`,maintenance:`Manutenzione`,amsHumidity:`Umidità AMS`,amsTemp:`Temp AMS`,amsHtHumidity:`Umidità AMS-HT`,amsHtTemp:`Temp AMS-HT`,bedCooled:`Piatto raffreddato`,firstLayer:`Primo strato`,quiet:`Silenzioso`,digest:`Riepilogo {{time}}`,printStarted:`Stampa avviata`,plateNotEmpty:`Piatto non vuoto`,plateNotEmptyDescription:`Oggetti rilevati prima della stampa`,plateClearRequired:`Conferma piatto libero`,plateClearRequiredDescription:`Stampa finita, la coda attende conferma`,plateClear:`Piatto libero`,printCompleted:`Stampa completata`,bedCooledLabel:`Piatto raffreddato`,bedCooledDescription:`Piatto raffreddato sotto la soglia dopo la stampa`,firstLayerCompleteLabel:`Primo strato completato`,firstLayerCompleteDescription:`Notifica con foto al termine del primo strato`,missingSpoolAssignmentLabel:`Assegnazione bobina mancante`,missingSpoolAssignmentDescription:`Notifica quando una stampa parte e i vassoi richiesti non hanno una bobina assegnata`,printFailed:`Stampa fallita`,printStopped:`Stampa interrotta`,progressMilestones:`Traguardi di avanzamento`,progressMilestonesDescription:`Notifica al 25%, 50%, 75%`,printerOffline:`Stampante offline`,printerError:`Errore stampante`,aiFailureDetection:`Rilevamento guasti IA`,aiFailureDetectionDescription:`Notifica quando l'IA di Obico rileva un possibile guasto di stampa`,lowFilamentLabel:`Filamento scarso`,maintenanceDue:`Manutenzione necessaria`,maintenanceDueDescription:`Notifica quando è necessaria la manutenzione`,amsHumidityHigh:`Umidità AMS elevata`,amsHumidityHighDescription:`L'umidità dell'AMS standard supera la soglia`,amsTemperatureHigh:`Temperatura AMS elevata`,amsTemperatureHighDescription:`La temperatura dell'AMS standard supera la soglia`,amsHtHumidityHigh:`Umidità AMS-HT elevata`,amsHtHumidityHighDescription:`L'umidità dell'AMS-HT supera la soglia`,amsHtTemperatureHigh:`Temperatura AMS-HT elevata`,amsHtTemperatureHighDescription:`La temperatura dell'AMS-HT supera la soglia`,inventoryAlerts:`Avvisi di inventario`,stockReorderAlert:`Avviso di riordino`,stockReorderAlertDescription:`Il SKU ha raggiunto il punto di riordino`,stockBreakAlert:`Avviso di esaurimento scorte`,stockBreakAlertDescription:`Le scorte si esauriranno prima dell'arrivo del rifornimento`,jobAdded:`Lavoro aggiunto`,jobAddedDescription:`Lavoro aggiunto alla coda`,jobAssigned:`Lavoro assegnato`,jobAssignedDescription:`Lavoro basato su modello assegnato alla stampante`,jobStarted:`Lavoro avviato`,jobStartedDescription:`Lavoro in coda avviato per la stampa`,jobWaiting:`Lavoro in attesa`,jobWaitingDescription:`Lavoro in attesa di filamento o stampante`,jobSkipped:`Lavoro saltato`,jobSkippedDescription:`Lavoro saltato (precedente fallito)`,jobFailed:`Lavoro fallito`,jobFailedDescription:`Avvio del lavoro fallito`,queueComplete:`Coda completata`,queueCompleteDescription:`Tutti i lavori in coda completati`,quietHours:`Ore silenziose`,noNotificationsDuring:`Nessuna notifica durante queste ore`,editProviderToChangeQuietHours:`Modifica il provider per cambiare le ore silenziose`,dailyDigest:`Riepilogo giornaliero`,batchNotifications:`Raggruppa le notifiche in un unico riepilogo giornaliero`,sendAt:`Invia alle {{time}}`,editProviderToChangeDigestTime:`Modifica il provider per cambiare l'orario del riepilogo`,edit:`Modifica`,deleteProvider:`Elimina provider di notifica`,deleteConfirm:`Sei sicuro di voler eliminare "{{name}}"? Questa azione non può essere annullata.`,delete:`Elimina`,addTitle:`Aggiungi provider di notifica`,editTitle:`Modifica provider di notifica`,nameLabel:`Nome *`,namePlaceholder:`Le mie notifiche`,providerTypeLabel:`Tipo di provider *`,configuration:`Configurazione`,testConfiguration:`Testa configurazione`,printerFilter:`Filtro stampante`,onlyFromPrinter:`Invia notifiche solo per eventi da questa stampante`,quietHoursDnd:`Ore silenziose (Non disturbare)`,quietStart:`Inizio`,quietEnd:`Fine`,dailyDigestLabel:`Riepilogo giornaliero`,sendDigestAt:`Invia riepilogo alle`,digestCollected:`Gli eventi verranno raccolti e inviati come riepilogo unico a quest'ora`,notificationEvents:`Eventi di notifica`,progressPercent:`(25%, 50%, 75%)`,bedCooledAfterPrint:`(dopo il completamento della stampa)`,eventPriority:{sectionTitle:`Priorità ntfy`,helpNtfy:`Scegli una priorità per ogni evento abilitato. ntfy le usa per intensificare gli avvisi (suono, visibilità, comportamento push). I livelli non impostati qui usano l'impostazione predefinita del server ntfy.`,min:`Min.`,low:`Bassa`,default:`Predefinita`,high:`Alta`,urgent:`Urgente`},cancel:`Annulla`,save:`Salva`,add:`Aggiungi`,nameRequired:`Il nome è obbligatorio`,fieldRequired:`{{field}} è obbligatorio`,haDataInvalid:`Il campo Data deve essere un oggetto JSON valido, ad es. {"priority": "high", "ttl": 0}`,phoneNumber:`Numero di telefono`,apiKey:`Chiave API`,serverUrl:`URL del server`,topic:`Argomento`,authToken:`Token di autenticazione`,userKey:`Chiave utente`,appToken:`Token applicazione`,priority:`Priorità`,pushoverRetry:`Ripetizione emergenza (s)`,pushoverExpire:`Scadenza emergenza (s)`,botToken:`Token del bot`,chatId:`ID chat`,telegramThreadId:`ID argomento forum`,telegramThreadIdHelp:`Opzionale. Invia in un singolo argomento di un gruppo forum: l'ultimo numero nel link dell'argomento (t.me/c/.../25). Lascia vuoto per l'argomento Generale.`,telegramThreadIdInvalid:`L'ID argomento forum deve essere un numero.`,smtpServer:`Server SMTP`,smtpPort:`Porta SMTP`,security:`Sicurezza`,authentication:`Autenticazione`,username:`Nome utente`,password:`Password`,fromEmail:`Email mittente`,toEmail:`Email destinatario`,webhookUrl:`URL webhook`,payloadFormat:`Formato payload`,authorization:`Autorizzazione`,titleFieldName:`Nome campo titolo`,messageFieldName:`Nome campo messaggio`,editTemplate:`Modifica modello: {{name}}`,titleLabel:`Titolo`,bodyLabel:`Corpo`,titlePlaceholder:`Titolo della notifica...`,bodyPlaceholder:`Corpo della notifica...`,availableVariables:`Variabili disponibili`,clickToInsert:`Clicca per inserire alla posizione del cursore nel corpo`,livePreview:`Anteprima live`,hide:`Nascondi`,show:`Mostra`,loadingPreview:`Caricamento anteprima...`,enterTemplateContent:`Inserisci il contenuto del modello per vedere l'anteprima`,titlePreview:`Titolo:`,bodyPreview:`Corpo:`,resetToDefault:`Ripristina predefinito`,titleRequired:`Il titolo è obbligatorio`,bodyRequired:`Il corpo è obbligatorio`,notificationLog:`Registro notifiche`,showFailedOnly:`Solo fallite`,last24Hours:`Ultime 24 ore`,last7Days:`Ultimi 7 giorni`,last30Days:`Ultimi 30 giorni`,last90Days:`Ultimi 90 giorni`,justNow:`Proprio ora`,noFailedNotifications:`Nessuna notifica fallita`,noNotificationsLogged:`Nessuna notifica registrata`,unknownProvider:`Provider sconosciuto`,logTitle:`Titolo`,logMessage:`Messaggio`,logError:`Errore`,logProvider:`Provider: {{type}}`,logTime:`Ora: {{time}}`,refresh:`Aggiorna`,clearOld:`Cancella vecchie`,statsSummary:`Ultimi {{days}} giorni:`,statsNotifications:`notifiche`,statsSent:`{{count}} inviate`,statsFailed:`{{count}} fallite`,eventTypes:{print_start:`Stampa avviata`,print_complete:`Stampa completata`,print_failed:`Stampa fallita`,print_stopped:`Stampa interrotta`,print_progress:`Avanzamento`,printer_offline:`Stampante offline`,printer_error:`Errore stampante`,filament_low:`Filamento scarso`,maintenance_due:`Manutenzione necessaria`,test:`Prova`},userEmail:{title:`Notifiche`,emailNotifications:`Notifiche via e-mail`,emailNotificationsDesc:`Ricevi notifiche via e-mail per i tuoi lavori di stampa. Le e-mail vengono inviate tramite le impostazioni SMTP configurate nell'autenticazione avanzata.`,sendingTo:`Le notifiche verranno inviate a`,noEmailWarning:`Il tuo account non ha un indirizzo e-mail. Contatta un amministratore per aggiungerne uno.`,printJobNotifications:`Notifiche lavori di stampa`,printJobNotificationsDesc:`Scegli quali eventi attivano le notifiche e-mail per i lavori di stampa che invii.`,printJobStarts:`Inizio lavoro di stampa`,printJobStartsDesc:`Ricevi una notifica quando il tuo lavoro di stampa inizia.`,printJobFinishes:`Fine lavoro di stampa`,printJobFinishesDesc:`Ricevi una notifica quando il tuo lavoro di stampa si completa correttamente.`,printErrors:`Errori di stampa`,printErrorsDesc:`Ricevi una notifica quando il tuo lavoro di stampa fallisce o incontra un errore.`,printJobStops:`Lavoro di stampa interrotto`,printJobStopsDesc:`Ricevi una notifica quando il tuo lavoro di stampa viene annullato o interrotto.`,saveSuccess:`Preferenze di notifica salvate.`,saveError:`Impossibile salvare le preferenze di notifica.`}},richTextEditor:{bold:`Grassetto`,italic:`Corsivo`,underline:`Sottolineato`,bulletList:`Elenco puntato`,numberedList:`Elenco numerato`,alignLeft:`Allinea a sinistra`,alignCenter:`Allinea al centro`,alignRight:`Allinea a destra`,addLink:`Aggiungi link`,removeLink:`Rimuovi link`},externalLinks:{title:`Link della barra laterale`,sidebarLayout:`Barra laterale`,sidebarLayoutDescription:`Mostra o nascondi le pagine integrate, aggiungi link esterni e trascina gli elementi per riordinare la navigazione laterale.`,systemPages:`Pagine Bambuddy`,externalLinks:`Link esterni`,visibleInSidebar:`Visibile nella barra laterale`,hiddenFromSidebar:`Nascosto nella barra laterale`,requiredInSidebar:`Obbligatorio nella barra laterale`,hidePage:`Nascondi pagina`,showPage:`Mostra pagina`,settingsCannotBeHidden:`Le impostazioni non possono essere nascoste`,noLinksConfigured:`Nessun link esterno configurato`,deleteLink:`Elimina link`,removeCustomIcon:`Rimuovi icona personalizzata`,openInNewTab:`Apri in nuova scheda`,placeholders:{linkName:`Il mio link`}},keyboardShortcuts:{title:`Scorciatoie da tastiera`,navigation:`Navigazione`,archivesSection:`Archivi`,kProfilesSection:`Profili K`,generalSection:`Generale`,shortcuts:{goToPrinters:`Vai a Stampanti`,goToArchives:`Vai ad Archivi`,goToQueue:`Vai a Coda`,goToStats:`Vai a Statistiche`,goToProfiles:`Vai a Profili cloud`,goToSettings:`Vai a Impostazioni`,focusSearch:`Vai alla ricerca`,openUploadModal:`Apri finestra di caricamento`,clearSelection:`Cancella selezione / deseleziona input`,contextMenu:`Menu contestuale sulle schede`,refreshProfiles:`Aggiorna profili`,newProfile:`Nuovo profilo`,exitSelectionMode:`Esci dalla modalità selezione`,showHelp:`Mostra questa guida`},footer:`Premi Esc o clicca fuori per chiudere`},notificationLog:{title:`Registro notifiche`,events:{printStarted:`Stampa avviata`,printComplete:`Stampa completata`,printFailed:`Stampa fallita`,printStopped:`Stampa interrotta`,progress:`Avanzamento`,printerOffline:`Stampante offline`,printerError:`Errore stampante`,lowFilament:`Filamento in esaurimento`,maintenanceDue:`Manutenzione in scadenza`,test:`Test`},timeAgo:{justNow:`Adesso`,minutesAgo:`{{minutes}} min fa`,hoursAgo:`{{hours}} ore fa`}},restoreBackup:{title:`Ripristina backup`,restoring:`Ripristino...`,restoreComplete:`Ripristino completato`,restoreFailed:`Ripristino fallito`,importSettings:`Importa impostazioni da un file di backup`,pleaseWait:`Attendere il ripristino dei dati`,clickToSelect:`Clicca per selezionare il file di backup (.json o .zip)`,howDuplicateHandling:`Come funziona la gestione dei duplicati:`,categories:{printers:`Stampanti`,smartPlugs:`Prese smart`,notificationProviders:`Provider di notifica`,filaments:`Filamenti`,archives:`Archivi`,pendingUploads:`Caricamenti in sospeso`,settingsTemplates:`Impostazioni e modelli`},matchingInfo:{printers:`abbinati per numero di serie`,smartPlugs:`abbinati per indirizzo IP`,notificationProviders:`abbinati per nome`,filaments:`abbinati per nome + tipo + marca`,archives:`abbinati per hash del contenuto`,pendingUploads:`abbinati per nome file`,settingsTemplates:`sempre sovrascritti`},replaceExisting:`Sostituisci dati esistenti`,keepExisting:`Mantieni dati esistenti`,replaceDescription:`Sovrascrivi gli elementi già esistenti con i dati del backup`,keepDescription:`Ripristina solo gli elementi che non esistono già`,caution:`Attenzione:`,cautionText:`La sovrascrittura sostituirà le configurazioni attuali con i dati del backup. I codici di accesso delle stampanti non vengono mai sovrascritti per sicurezza.`,itemsRestored:`Elementi ripristinati`,itemsSkipped:`Elementi saltati`,restored:`Ripristinati`,skipped:`Saltati (già esistenti)`,filesLabel:`File (3MF, miniature, ecc.)`,newApiKeysGenerated:`Nuove chiavi API generate`,newApiKeysWarning:`Queste chiavi vengono mostrate una sola volta. Copiale adesso!`,processingBackup:`Elaborazione file di backup...`,noDataFound:`Nessun dato trovato da ripristinare nel file di backup.`,failedToRestore:`Impossibile ripristinare il backup. Verificare il formato del file.`},backupExport:{title:`Esporta backup`,selectData:`Seleziona i dati da includere`,selectAll:`Seleziona tutto`,selectNone:`Deseleziona tutto`,categoryDescriptions:{settings:`Lingua, tema, preferenze di aggiornamento`,notifications:`ntfy, Pushover, Discord, ecc.`,templates:`Modelli di messaggi personalizzati`,smartPlugs:`Configurazioni prese Tasmota`,externalLinks:`Link della barra laterale a servizi esterni`,printers:`Info stampanti (codici di accesso esclusi)`,plateDetection:`Immagini di riferimento piatto vuoto`,filaments:`Tipi di filamento e costi`,maintenance:`Programmi di manutenzione personalizzati`,archives:`Tutti i dati di stampa + file (3MF, miniature, foto)`,projects:`Progetti, elementi BOM e allegati`,pendingUploads:`Caricamenti della stampante virtuale in attesa di revisione`,apiKeys:`Chiavi API webhook (nuove chiavi generate all'importazione)`},requiresPrinters:`Richiede la selezione di Stampanti`,zipFileWarning:`Verrà creato un file ZIP.`,zipFileDescription:`Include tutti i file 3MF, miniature, timelapse e foto. Potrebbe richiedere tempo e produrre un file di grandi dimensioni.`,includeAccessCodes:`Includi codici di accesso`,includeAccessCodesDescription:`Per il trasferimento su un'altra macchina`,includeAccessCodesWarning:`I codici di accesso saranno inclusi in testo semplice. Mantieni sicuro questo file di backup!`,categoriesSelected:`{{selectedCount}} categorie selezionate`},pendingUploads:{placeholders:{notes:`Aggiungi note su questa stampa...`},discardUpload:`Scarta caricamento`,archiveAllUploads:`Archivia tutti i caricamenti`,discardAllUploads:`Scarta tutti i caricamenti`,archive:`Archivia`,timeAgo:{justNow:`Adesso`,minutesAgo:`{{minutes}} min fa`,hoursAgo:`{{hours}} ore fa`,daysAgo:`{{days}} giorni fa`}},apiBrowser:{placeholders:{requestBody:`Corpo della richiesta JSON...`,searchEndpoints:`Cerca endpoint...`}},configureAmsSlot:{title:`Configura Slot AMS`,slotConfigured:`Slot configurato!`,configuringSlot:`Configurazione slot:`,slotLabel:`{{ams}} – Slot {{slot}}`,searchPresets:`Cerca preset...`,colorPlaceholder:`Nome colore o hex (es. marrone, FF8800)`,clearCustomColor:`Cancella colore personalizzato`,noCloudPresets:`Nessun preset cloud. Accedi a Bambu Cloud per sincronizzare.`,noPresetsAvailable:`Nessun preset disponibile. Accedi a Bambu Cloud o importa profili locali.`,noMatchingPresets:`Nessun preset corrispondente trovato.`,custom:`Personalizzato`,builtin:`Integrato`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`Impostazioni inviate alla stampante`,filamentProfile:`Profilo filamento`,kProfileLabel:`Profilo K (Pressure Advance)`,filteringFor:`Filtrando per: {{material}}`,noKProfile:`Nessun profilo K (usa predefinito 0.020)`,noMatchingKProfiles:`Nessun profilo K corrispondente. Verrà usato K=0.020 predefinito.`,otherKProfiles:`Altri profili K su questa stampante`,selectFilamentFirst:`Seleziona prima un profilo filamento`,kFromCalibration:`K={{value}} dalla calibrazione stampante`,customColorLabel:`Colore personalizzato (opzionale)`,presetColors:`Colori {{name}}:`,showLessColors:`Mostra meno colori`,showMoreColors:`Mostra più colori`,clear:`Cancella`,hexLabel:`Hex – #{{hex}}`,resetting:`Ripristino...`,resetSlot:`Ripristina slot`,cancel:`Annulla`,configuring:`Configurazione...`,configureSlot:`Configura slot`},githubBackup:{title:`Backup Git`,history:`Cronologia`,downloadBackup:`Scarica backup`,restoreBackup:`Ripristina backup`,noBackupsYet:`Nessun backup ancora`},emailSettings:{placeholders:{fromName:`Bambuddy`}},tagManagement:{searchTags:`Cerca tag...`,renameTag:`Rinomina tag`,deleteTag:`Elimina tag`},notificationTemplates:{placeholders:{title:`Titolo notifica...`,body:`Corpo notifica...`}},batchTag:{placeholders:{newTag:`Inserisci nuovo tag...`}},photoGallery:{deletePhoto:`Elimina foto`},filamentHoverCard:{copySpoolUuid:`Copia UUID bobina`},kProfilesView:{hasNote:`Ha una nota`,copyProfile:`Copia profilo`},layout:{openMenu:`Apri menu`,noPermissionSystemInfo:`Non hai il permesso di visualizzare le informazioni di sistema`},dashboard:{dragToReorder:`Trascina per riordinare`,hideWidget:`Nascondi widget`},notificationProviderCard:{deleteNotificationProvider:`Elimina provider di notifica`},fileManagerModal:{closeFileManager:`Chiudi gestore file`,sortFiles:`Ordina file`,goToParentFolder:`Vai alla cartella superiore`,threeView:`Vista 3D`},embeddedCameraViewer:{refreshStream:`Aggiorna stream`,close:`Chiudi`,zoomOut:`Rimpicciolisci`,resetZoom:`Reimposta zoom`,zoomIn:`Ingrandisci`,dragToResize:`Trascina per ridimensionare`},timelapseViewer:{skipBack5s:`Indietro 5s`,skipForward5s:`Avanti 5s`},notificationProviders:{descriptions:{email:`Notifiche email via SMTP`,telegram:`Notifiche tramite bot Telegram`,discord:`Invia a canale Discord tramite webhook`,ntfy:`Notifiche push gratuite e self-hostabili`,pushover:`Notifiche push semplici e affidabili`,callmebot:`Notifiche WhatsApp gratuite tramite CallMeBot`,webhook:`POST HTTP generico a qualsiasi URL`}},logViewer:{searchPlaceholder:`Cerca messaggio o nome logger...`,noLogEntries:`Nessuna voce di log trovata`},switchbarPopover:{noSwitchesInSwitchbar:`Nessun interruttore nella barra`},projectPageModal:{placeholders:{title:`Titolo`,designer:`Designer`,license:`Licenza`,description:`Inserisci descrizione...`,profileTitle:`Titolo profilo`,profileDescription:`Descrizione profilo...`}},spoolmanSettings:{},time:{unknown:`-`,waiting:`In attesa`,justNow:`Proprio ora`,now:`Ora`,minsAgo:`{{count}}m fa`,inMins:`tra {{count}}m`,hoursAgo:`{{count}}h fa`,inHours:`tra {{count}}h`,daysAgo:`{{count}}g fa`,inDays:`tra {{count}}g`},spoolbuddy:{nav:{dashboard:`Dashboard`,ams:`AMS`,inventory:`Inventario`,writeTag:`Scrivi`,settings:`Impostazioni`},status:{nfcReady:`NFC pronto`,nfcOff:`NFC spento`,offline:`Offline`,online:`Online`,noPrinters:`Nessuna stampante`,deviceOffline:`Dispositivo offline`,waitingConnection:`In attesa della connessione...`,systemReady:`Sistema pronto`,status:`Stato`},dashboard:{readyToScan:`Pronto per la scansione`,idleMessage:`Posiziona una bobina sulla bilancia per identificarla`,nfcHint:`Il tag NFC verrà letto automaticamente`,device:`Dispositivo`,syncWeight:`Sincronizza peso`,weightSynced:`Sincronizzato!`,unknownTag:`Tag sconosciuto`,newTag:`Nuovo tag rilevato`,onScale:`sulla bilancia`,linkSpool:`Collega a bobina`,linkTagTitle:`Collega tag a bobina`,linkTag:`Collega tag`,selectSpool:`Seleziona una bobina da collegare a questo tag:`,noUntagged:`Nessuna bobina senza tag trovata`,tagDetected:`Tag rilevato`,noTag:`Nessun tag`,tagId:`Etichetta`,grossWeight:`Peso lordo`,spoolSize:`Dimensione bobina`,close:`Chiudi`,currentSpool:`Bobina attuale`,plateReady:`Piatto pronto: {{name}}`,plateReadyLabel:`Piatti da liberare`,plateClearAction:`Libera`,plateClearedToast:`Piatto contrassegnato come liberato`,plateClearFailed:`Impossibile contrassegnare il piatto come liberato`},modal:{spoolDetected:`Bobina rilevata`,assignToAms:`Assegna all'AMS`,syncWeight:`Sincronizza peso`,weightSynced:`Sincronizzato!`,syncing:`Sincronizzazione...`,newTagDetected:`Nuovo tag rilevato`,addToInventory:`Aggiungi all'inventario`,assignToAmsTitle:`Assegna all'AMS`,selectSlot:`Seleziona uno slot`,assign:`Assegna`,assigning:`Assegnazione...`,assignSuccess:`Assegnato!`,assignPendingInsert:`Assegnato. Lo slot verrà configurato all'inserimento della bobina.`,assignError:`Impossibile assegnare la bobina. Riprovare.`,noPrinterSelected:`Seleziona una stampante...`,noAmsDetected:`Nessun AMS rilevato su questa stampante`,slot:`Slot`},weight:{noReading:`Nessuna lettura`,stable:`Stabile`,measuring:`Misurazione...`,tare:`Tara`,calibrate:`Calibra`},spool:{remaining:`Rimanente`,material:`Materiale`,brand:`Marca`,color:`Colore`,coreWeight:`Nucleo`,labelWeight:`Etichetta`,scaleWeight:`Bilancia`,netWeight:`Netto`,lastUsed:`Ultimo utilizzo`},ams:{noData:`Nessun AMS rilevato`,connectAms:`Collega un AMS per vedere gli slot`,noPrinter:`Nessuna stampante selezionata`,selectPrinter:`Seleziona una stampante dalla barra superiore`,printerDisconnected:`Stampante disconnessa`,humidity:`Umidità`,level:`Livello`,active:`Attivo`,slot:`Slot`,empty:`Vuoto`},inventory:{search:`Cerca bobine...`,empty:`Nessuna bobina nell'inventario`,noResults:`Nessuna bobina corrispondente`,spools:`bobine`,addSpool:`Aggiungi bobina`},settings:{tabDevice:`Dispositivo`,tabDisplay:`Display`,tabScale:`Bilancia`,tabUpdates:`Aggiornamenti`,nfcReader:`Lettore NFC`,type:`Tipo`,connection:`Connessione`,notConnected:`N/D`,deviceInfo:`Info dispositivo`,hostname:`Host`,uptime:`Tempo di attività`,brightness:`Luminosità`,saved:`Salvato`,noBacklight:`Nessuna retroilluminazione DSI rilevata. Il controllo luminosità richiede un display DSI.`,screenBlank:`Timeout spegnimento schermo`,screenBlankDesc:`Lo schermo si spegne dopo inattività. Tocca per riattivare.`,displayNote:`La luminosità viene applicata come filtro software.`,scaleCalibration:`Calibrazione bilancia`,currentWeight:`Peso attuale`,tareOffset:`Tara`,calFactor:`Fattore`,knownWeight:`Peso noto`,calStep1:`Rimuovere tutto dalla bilancia e premere Imposta zero.`,calStep2:`Posizionare il peso noto sulla bilancia.`,setZero:`Imposta zero`,calibrateNow:`Calibra`,calibrated:`Calibrato`,tareSet:`Comando tara inviato. In attesa del dispositivo...`,tareComplete:`Tara completata!`,tareTimedOut:`Tempo scaduto per la tara — il demone SpoolBuddy è in esecuzione?`,tareFailed:`Invio comando tara fallito`,zeroSet:`Punto zero impostato. Posizionare il peso noto sulla bilancia.`,calibrationDone:`Calibrazione completata!`,calibrationFailed:`Calibrazione fallita`,lastCalibrated:`Ultima calibrazione`,stable:`Stabile`,settling:`Stabilizzazione...`,firmware:`Firmware`,scale:`Bilancia`,noDevice:`Nessun dispositivo SpoolBuddy trovato`,daemonVersion:`Versione daemon`,currentVersion:`Attuale`,versionPending:`In attesa del daemon...`,checking:`Verifica...`,checkUpdates:`Verifica aggiornamenti`,updateAvailable:`Aggiornamento disponibile`,updateInstructions:`Aggiorna via SSH: esegui lo script di installazione SpoolBuddy.`,upToDate:`Aggiornato`,includeBeta:`Includi versioni beta`,systemConfig:`Backend & autenticazione`,backendUrl:`URL backend Bambuddy`,apiToken:`Token API`,apiTokenPlaceholder:`Inserisci token API`,saveConfig:`Salva configurazione`,systemQueued:`Configurazione in coda.`,systemFieldsRequired:`L'URL del backend è obbligatorio.`,nfcDiagnostic:`Diagnostica NFC`,scaleDiagnostic:`Diagnostica bilancia`,readTagDiagnostic:`Diagnostica lettura tag`,testNfc:`Test lettore`,testScale:`Test precisione`,testReadTag:`Leggi tag`},writeTag:{tabExisting:`Bobina esistente`,tabNew:`Nuova bobina`,tabReplace:`Sostituisci tag`,searchPlaceholder:`Cerca per materiale, colore, marca...`,noUntaggedSpools:`Nessuna bobina senza tag`,noTaggedSpools:`Nessuna bobina con tag`,selectSpool:`Seleziona una bobina, poi posiziona un NTAG sul lettore`,placeTag:`Posiziona un NTAG sul lettore`,tagReady:`Tag rilevato — pronto per la scrittura`,writeTag:`Scrivi tag`,replaceTag:`Sostituisci tag`,writing:`Scrittura tag...`,waiting:`In attesa di SpoolBuddy...`,writeSuccess:`Tag scritto con successo!`,writeFailed:`Scrittura fallita`,queueFailed:`Impossibile accodare il comando di scrittura`,tryAgain:`Riprova`,cancel:`Annulla`,replaceWarning:`Il vecchio tag verrà scollegato. Il nuovo tag lo sostituirà.`,deviceOffline:`SpoolBuddy è offline`,material:`Materiale`,colorName:`Nome colore`,color:`Colore`,brand:`Marca`,weight:`Peso (g)`,createSpool:`Crea bobina`,creating:`Creazione...`,spoolCreated:`Bobina creata! Pronto per la scrittura.`,createFailed:`Impossibile creare la bobina`,incompleteDataWarning:`Tag scritto con dati Spoolman incompleti`},quickMenu:{printerPower:`Alimentazione stampante`,systemControls:`Sistema`,restartDaemon:`Riavvia daemon`,restartBrowser:`Riavvia browser`,reboot:`Riavvia`,shutdown:`Spegni`,swipeToClose:`Scorri verso il basso per chiudere`,confirmTitle:`Conferma`,confirmShutdown:`Sei sicuro di voler spegnere lo SpoolBuddy? Avrai bisogno di accesso fisico per riaccenderlo.`,confirmReboot:`Sei sicuro di voler riavviare lo SpoolBuddy?`,confirmRestartDaemon:`Riavviare il daemon SpoolBuddy? NFC e bilancia saranno temporaneamente non disponibili.`,confirmRestartBrowser:`Riavviare il browser kiosk? Lo schermo diventerà brevemente nero.`,confirm:`Conferma`,confirmPlugOn:`Accendere {{name}}?`,confirmPlugOff:`Spegnere {{name}}?`,turnOn:`Accendi`,turnOff:`Spegni`}},diagnostic:{modalTitle:`Diagnostica connessione — {{name}}`,running:`Diagnostica in corso...`,runningElapsed:`Diagnostica in corso... ({{elapsed}}s)`,waitingForReportHint:`In attesa che la stampante pubblichi un report di stato — può richiedere fino a {{max}} secondi.`,runFailed:`Impossibile eseguire la diagnostica: {{error}}`,retry:`Esegui di nuovo`,runButton:`Esegui diagnostica`,sectionTitle:`Diagnostica connessione`,sectionDescription:`Verifica perché una stampante non si connette o non stampa — raggiungibilità delle porte, modalità sviluppatore LAN, modalità di rete Docker e credenziali.`,noPrinters:`Nessuna stampante configurata.`,overall:{ok:`Nessun problema rilevato — la connessione della stampante sembra a posto.`,warnings:`La stampante dovrebbe funzionare, ma alcuni aspetti richiedono attenzione.`,problems:`Sono stati rilevati problemi che spiegano perché la stampante non si connette o non stampa.`},check:{port_mqtt:{title:`Porta di controllo (MQTT 8883)`,pass:`Raggiungibile — la stampante accetta connessioni di controllo.`,fail:`La porta 8883 non è raggiungibile. La stampante è spenta, ha un altro indirizzo IP oppure un firewall la blocca. Verifica l'IP della stampante e che nulla blocchi la porta 8883.`},port_ftps:{title:`Porta trasferimento file (FTPS 990)`,pass:`Raggiungibile — l'invio dei file di stampa funzionerà.`,warn:`La porta 990 non è raggiungibile. Il monitoraggio potrebbe ancora funzionare, ma l'invio delle stampe alla stampante fallirà. Assicurati che la porta 990 non sia bloccata.`},external_storage:{title:`Memorizza file inviati su archiviazione esterna (passo 4 dell'installazione)`,pass:`La stampante segnala che questa opzione è attiva — i file inviati saranno memorizzati sulla scheda SD e gli archivi avranno miniature e metadati dello slicer.`,fail:`La stampante segnala che questa opzione è disattivata. Abilita "Memorizza file inviati su archiviazione esterna" — nei firmware recenti (P2S 01.02 / Bambu Studio 2.6+) l'interruttore si trova nelle Impostazioni di stampa della stampante; nelle versioni precedenti è nella scheda Dispositivo di Bambu Studio / OrcaSlicer. Senza questa opzione, ogni stampa archiviata è priva di miniatura e di metadati dello slicer.`,skip:`Non verificato — è necessaria una connessione MQTT attiva. Negli slicer più vecchi dove questa impostazione esiste solo nello slicer, la stampante non la segnala, quindi questo controllo passa anche se l'opzione è disattivata — verifica manualmente il passo 4 dell'installazione.`,skip_unsupported_model:`Questo modello ha uno slot SD ma nessun modo per attivare l'opzione — il firmware attuale della serie P1 non mostra l'interruttore in Bambu Studio e la stampante non ha uno schermo. Non c'è nulla da correggere qui; alle stampe archiviate potrebbero mancare miniature e metadati dello slicer finché Bambu Lab non aggiungerà il supporto via firmware.`},port_rtsps:{title:`Porta fotocamera ({{protocol}} {{port}})`,pass:`Raggiungibile — lo streaming della fotocamera funzionerà.`,warn:`La porta {{port}} non è raggiungibile. La visualizzazione live della fotocamera non funzionerà. Questo non influisce sulla stampa.`},network_mode:{title:`Modalità di rete Docker`,pass:`In esecuzione in modalità di rete host.`,warn:`Bambuddy è in esecuzione con la rete Docker bridge. Il rilevamento delle stampanti e la stampante virtuale richiedono la modalità di rete host — ricrea il container con "network_mode: host".`,skip:`Non in esecuzione in Docker — non applicabile.`},subnet:{title:`Sottorete`,pass:`La stampante e Bambuddy sono nella stessa sottorete.`,warn:`La stampante ({{printer_ip}}) e Bambuddy ({{host_ip}}) sono in sottoreti diverse. Potrebbero non raggiungersi a meno che non sia configurato il routing tra le sottoreti.`,skip:`Impossibile determinare la sottorete — ignorato.`},mqtt_auth:{title:`Credenziali stampante`,pass:`La stampante ha accettato la connessione.`,fail:`La stampante è raggiungibile ma Bambuddy non è connesso ad essa. Il codice di accesso o il numero di serie è molto probabilmente errato — il codice di accesso cambia ogni volta che la modalità Solo LAN o la modalità sviluppatore viene attivata/disattivata, quindi ricopialo dallo schermo della stampante. Una stampante in fase di riavvio, o che ha già raggiunto il limite di connessioni simultanee, appare allo stesso modo.`,fail_auth_rejected:`La stampante ha rifiutato le credenziali di Bambuddy. Il codice di accesso o il numero di serie è errato — il codice di accesso cambia ogni volta che la modalità Solo LAN o la modalità sviluppatore viene attivata/disattivata. Ricopialo dallo schermo della stampante e salvalo nelle impostazioni della stampante.`,skip:`Non verificato — impossibile raggiungere la stampante.`},developer_mode:{title:`Modalità sviluppatore LAN`,pass:`La modalità sviluppatore è attivata.`,fail:`La modalità sviluppatore è DISATTIVATA sulla stampante. Attivala nelle impostazioni LAN della stampante — e conferma con OK. Senza di essa le stampe non verranno avviate.`,skip:`Impossibile verificare — richiede una connessione attiva alla stampante.`},printer_publishing:{title:`La stampante pubblica lo stato`,pass:`La stampante sta pubblicando aggiornamenti di stato — AMS, filamenti e profili K saranno correttamente replicati nello slicer.`,fail:`Il broker MQTT ha accettato la connessione ma la stampante non ha pubblicato alcun report di stato. È quasi sempre un numero di serie errato o con maiuscole/minuscole sbagliate — il topic device//api/v1/metrics에서 프린터 메트릭을 노출합니다.`,bearerTokenOptional:`베어러 토큰 (선택사항)`,bearerTokenHint:`설정하면 요청에 Authorization: Bearer 을 포함해야 합니다`,metricsConnectionStatus:`연결 상태`,metricsPrinterState:`프린터 상태 (유휴/인쇄 중/등)`,metricsPrintProgress:`인쇄 진행 0-100%`,metricsBedTemp:`베드 온도`,metricsNozzleTemp:`노즐 온도`,metricsPrintsTotal:`결과별 총 인쇄 수`,metricsMore:`...및 더 많은 것 (레이어, 팬, 대기열, 필라멘트 사용량)`,smartPlugsDescription:`에너지 사용량 추적 및 프린터 전원 제어를 자동화하기 위해 스마트 플러그(Tasmota 또는 Home Assistant)를 연결하세요.`,allOn:`모두 켜기`,allOff:`모두 끄기`,addSmartPlug:`스마트 플러그 추가`,energySummary:`에너지 요약`,currentPower:`현재 전력`,plugsOnline:`{{reachable}}/{{total}}개 플러그 온라인`,today:`오늘`,yesterday:`어제`,total:`총계`,enablePlugsForSummary:`에너지 요약을 보려면 플러그를 활성화하세요`,addNotificationProvider:`추가`,systemBadge:`(시스템)`,creating:`생성 중...`,changing:`변경 중...`,deleteUserAndItems:`사용자 및 항목 삭제`,deleteUserKeepItems:`사용자 삭제, 항목 유지 (소유자 없음)`,ok:`확인`,twoFa:{totpTitle:`인증 앱 (TOTP)`,totpDesc:`Google Authenticator, Aegis, Authy 같은 인증 앱을 사용하세요.`,emailOtpTitle:`이메일 OTP`,emailOtpDesc:`로그인 시 {{email}}로 일회용 코드를 전송합니다.`,emailOtpNoEmail:`이 방법을 활성화하려면 계정에 이메일 주소를 추가하세요.`,addEmailFirst:`계정에 이메일 주소가 없습니다. 이메일 OTP를 활성화하기 전에 관리자에게 추가를 요청하세요.`,setupTotp:`인증 앱 설정`,setupAuthApp:`인증 앱 설정`,setupInstructions:`아래 QR 코드를 인증 앱으로 스캔한 후 코드로 확인하세요.`,manualEntry:`스캔할 수 없나요? 이 비밀을 수동으로 입력하세요:`,scannedContinue:`코드를 스캔했습니다 — 계속`,enterCodeToConfirm:`인증 앱의 6자리 코드를 입력하여 설정을 확인하세요.`,activate:`활성화`,disableTotp:`인증기 비활성화`,disableConfirmHint:`인증기를 비활성화하려면 유효한 TOTP 코드나 백업 코드를 입력하세요.`,totpDisabled:`인증 앱이 비활성화되었습니다.`,emailOtpEnabled:`이메일 OTP가 활성화되었습니다.`,emailOtpDisabled:`이메일 OTP가 비활성화되었습니다.`,smtpRequired:`먼저 SMTP 설정을 구성하고 테스트하세요.`,invalidCode:`잘못된 코드입니다. 다시 시도하세요.`,enableEmailOtp:`이메일 OTP 활성화`,disableEmailOtp:`이메일 OTP 비활성화`,emailSetupEnterCode:`이메일 주소로 인증 코드가 전송되었습니다. 아래에 입력하여 이 받은 편지함을 소유하고 있음을 확인하세요.`,verifyAndEnable:`확인 및 활성화`,emailDisablePasswordHint:`이메일 OTP 비활성화를 확인하려면 계정 비밀번호를 입력하세요.`,passwordPlaceholder:`비밀번호 입력`,backupCodesTitle:`백업 코드 저장`,backupCodesWarning:`이 코드를 안전한 곳에 저장하세요. 각 코드는 한 번만 사용할 수 있으며 다시 표시되지 않습니다.`,backupCodesRemaining:`{{count}}개 백업 코드 남음`,savedCodes:`코드를 저장했습니다`,regenBackup:`백업 코드 재생성`,regenBackupHint:`현재 TOTP 코드를 입력하여 10개의 새 백업 코드를 생성하세요. 기존 백업 코드는 모두 무효화됩니다.`,newBackupCodes:`새 백업 코드`,linkedAccounts:`연결된 SSO 계정`,linkedAccountsDesc:`이 외부 ID 제공자가 계정에 연결되어 있습니다.`,oidcUnlinked:`계정 연결이 해제되었습니다.`},sessionPolicy:{title:`세션 정책`,description:`신규 사용자 로그인의 최대 세션 수명입니다. 이미 발급된 토큰은 원래 만료 시간을 유지합니다.`,preset24h:`24시간`,preset7d:`7일`,preset30d:`30일`,customHoursLabel:`사용자 지정 세션 수명(시간)`,hoursSuffix:`시간`,warning:`세션이 길어질수록 자동 로그아웃 보호가 약해집니다. 신뢰할 수 있는 단일 사용자 배포에서만 권장됩니다.`},oidc:{title:`SSO / OIDC 제공자`,desc:`외부 ID 제공자를 통해 싱글 사인온을 허용하도록 OpenID Connect 제공자를 설정하세요.`,addProvider:`제공자 추가`,newProvider:`새 제공자`,empty:`아직 설정된 OIDC 제공자가 없습니다.`,created:`제공자가 생성되었습니다.`,updated:`제공자가 업데이트되었습니다.`,deleted:`제공자가 삭제되었습니다.`,deleteTitle:`제공자 삭제`,deleteMessage:`"{{name}}"을(를) 삭제하시겠습니까? 연결된 모든 사용자 계정의 연결이 해제됩니다.`,form:{name:`표시 이름`,issuerUrl:`발급자 URL`,clientId:`클라이언트 ID`,clientSecret:`클라이언트 시크릿`,scopes:`범위`,iconUrl:`아이콘 URL (선택사항)`,enabled:`활성화됨`,autoCreate:`사용자 자동 생성`,autoCreateDesc:`첫 번째 로그인 시 자동으로 로컬 계정 생성.`,autoLink:`기존 계정 자동 연결`,autoLinkDesc:`첫 번째 로그인 시 이메일 일치로 기존 로컬 계정 연결.`,secretHint:`현재 값을 유지하려면 비워두세요`,secretPlaceholder:`새 시크릿`,emailClaim:`이메일 클레임`,emailClaimDesc:`이메일 ID로 사용되는 JWT 클레임.`,emailClaimPlaceholder:`email`,emailClaimCustomClaimAutoLinkWarning:`사용자 지정 클레임은 값이 테넌트 관리인 경우에만 자동 연결에 안전합니다. IdP가 사용자가 이 클레임을 직접 주장할 수 있게 하면 자동 연결을 활성화하지 마세요.`,requireEmailVerified:`이메일 확인 필요`,requireEmailVerifiedDesc:`제공자가 확인된 것으로 표시한 경우에만 이메일 클레임을 수락합니다.`,requireEmailVerifiedWarning:`경고: 확인 없이도 이메일이 수락됩니다. 신뢰할 수 있는 제공자에만 사용하세요.`,requireEmailVerifiedAutoLink:`이 설정을 변경하려면 먼저 자동 연결을 비활성화하세요.`,defaultGroup:`기본 그룹`,defaultGroupDesc:`자동 생성된 사용자에게 할당되는 그룹. 설정되지 않으면 Viewers로 대체됩니다.`,defaultGroupViewersFallback:`Viewers (기본값)`,autologin:`자동 로그인`,autologinDesc:`인증되지 않은 방문자를 이 공급자로 바로 리디렉션합니다. 이 플래그를 가질 수 있는 공급자는 하나뿐입니다.`},refreshIcon:`아이콘 새로고침`,removeIcon:`아이콘 제거`,iconRefreshed:`아이콘이 새로고침되었습니다.`,iconRemoved:`아이콘이 제거되었습니다.`,iconFetchFailed:`공급자 URL에서 아이콘을 가져올 수 없습니다.`},encryption:{title:`MFA 암호화 상태`,enabledFromEnv:`저장 시 암호화 활성화됨 (MFA_ENCRYPTION_KEY 환경 변수에서 키)`,enabledFromFile:`저장 시 암호화 활성화됨 (데이터 디렉토리에서 키 로드됨)`,enabledGenerated:`자동 생성된 키로 저장 시 암호화 활성화됨`,notConfigured:`저장 시 암호화가 설정되지 않음`,notConfiguredDesc:`TOTP 시크릿 및 OIDC client_secret이 일반 텍스트로 저장됩니다. MFA_ENCRYPTION_KEY를 설정하거나 쓰기 가능한 데이터 디렉토리로 Bambuddy를 재시작하여 자동 생성하세요.`,allEncrypted:`모든 MFA 시크릿이 저장 시 암호화되어 있습니다.`,legacyRowsLabel:`레거시 일반 텍스트 행`,encryptedRowsLabel:`암호화된 행`,legacyRowsWarning:`{{count}}개 레거시 일반 텍스트 행이 감지되었습니다. 암호화된 저장소로 마이그레이션하려면 OIDC 제공자를 다시 저장하거나 사용자의 인증 앱을 재등록하세요.`,backupHint:`자동 생성된 키는 DATA_DIR/.mfa_encryption_key에 저장되며 로컬 백업 ZIP에 포함됩니다. 백업을 안전하게 보관하거나 MFA_ENCRYPTION_KEY를 명시적으로 설정하세요.`,decryptionBrokenTitle:`암호화 키 누락`,decryptionBrokenError:`암호화 키를 더 이상 사용할 수 없어 {{count}}개의 암호화된 레코드를 복호화할 수 없습니다.`,migrationErrorWarning:`시작 시 {{count}}개 레거시 행을 재암호화하지 못했습니다. 서버 로그를 확인하고 Bambuddy를 재시작하여 재시도하세요.`},updateEnergyCost:`전기 요금 업데이트`,updateEnergyCostDescription:`이 키가 /settings/electricity-price에 새 kWh당 전기 요금을 POST할 수 있도록 허용합니다. Home Assistant 동적 요금 자동화(Tibber, Octopus 등)에 유용합니다. API 키로 쓸 수 있는 유일한 설정 필드입니다.`,energyCostBadge:`에너지`,passwordRequirements:`최소 8자, 대문자, 소문자, 숫자, 특수문자 각 1개 이상 포함`,pipelineLimits:{title:`슬라이서 파이프라인 한도`,maxCopiesLabel:`실행당 최대 사본 수`,maxCopiesDesc:`운영자가 파이프라인 실행 시 요청할 수 있는 사본 수의 상한. 서버 측 절대 상한은 1000입니다.`},pipelines:{title:`슬라이서 파이프라인`,subtitle:`재사용 가능한 프리셋 묶음(프린터 + 프로세스 + 필라멘트 + 베드 유형). 슬라이스 대화상자에서 저장한 후 다음 파일에 한 번의 클릭으로 적용하세요.`,loading:`파이프라인 불러오는 중…`,loadError:`파이프라인을 불러오지 못했습니다.`,confirmDelete:`이 파이프라인을 삭제하시겠습니까? 되돌릴 수 없습니다.`,staleWarning:`참조된 프리셋이 더 이상 존재하지 않습니다. 슬라이스 대화상자에서 이 파이프라인을 다시 저장하여 수정하세요.`,empty:{title:`아직 파이프라인이 없습니다.`,howto:`임의의 파일에서 슬라이스 대화상자를 열고 프린터 / 프로세스 / 필라멘트 / 베드를 선택한 다음 "파이프라인으로 저장"을 클릭하세요. 저장된 파이프라인이 여기에 표시됩니다.`},field:{name:`파이프라인 이름`,description:`설명`,targetPrinter:`대상 프린터`,noTarget:`— 대상 없음 —`,targetKind:`대상 유형`,targetKindSpecific:`특정 프린터`,targetKindClass:`프린터 클래스`,targetModelClass:`프린터 모델`,fanoutStrategy:`분산 전략`,fanout:{max_parallel:`최대 병렬 — 일치하는 유휴 프린터에 분산`,round_robin:`라운드 로빈 — 적격 프린터를 순환`,fill_one_first:`하나 먼저 채우기 — 모든 사본을 한 프린터에 고정`},fanoutShort:{max_parallel:`병렬`,round_robin:`라운드 로빈`,fill_one_first:`하나 먼저`}},action:{save:`저장`,cancel:`취소`,rename:`이름 변경`,delete:`삭제`},slot:{printer:`프린터`,process:`프로세스`,filament:`필라멘트`,filamentN:`필라멘트 {{n}}`,filamentAll:`전체 {{n}} 슬롯`,bed:`베드`},group:{profiles:`프로필`,filaments:`필라멘트`},searchPlaceholder:`파이프라인 검색…`,filterTargetType:`대상 유형으로 필터`,filterTarget:`대상으로 필터`,filter:{all:`모든 대상`,noTarget:`대상 미설정`,count:`{{shown}} / {{total}}`,noMatches:`현재 필터와 일치하는 파이프라인이 없습니다.`},toast:{saved:`파이프라인이 저장되었습니다`,saveFailed:`저장 실패`,deleted:`파이프라인이 삭제되었습니다`,deleteFailed:`삭제 실패`},noTargetHint:`실행하려면 대상 프린터를 설정하세요`,noTargetWarning:`이 파이프라인을 실행하기 전에 대상 프린터를 설정하세요.`,runs:{lastRun:`마지막 실행`,status:{queued:`대기 중`,slicing:`슬라이싱 중`,dispatching:`전송 중`,in_progress:`인쇄 중`,completed:`완료됨`,failed:`실패`,partial_failure:`부분 실패`,cancelled:`취소됨`}}}},notification:{printStarted:{title:`인쇄 시작됨`,body:`{{printer}}: {{filename}} 인쇄가 시작되었습니다`},printCompleted:{title:`인쇄 완료됨`,body:`{{printer}}: {{filename}}이(가) 성공적으로 완료되었습니다`},printFailed:{title:`인쇄 실패`,body:`{{printer}}: {{filename}}이(가) 실패했습니다`},printStopped:{title:`인쇄 정지됨`,body:`{{printer}}: {{filename}}이(가) 정지되었습니다`},printProgress:{title:`인쇄 진행`,body:`{{printer}}: {{filename}} {{percent}}% 완료`},printerOffline:{title:`프린터 오프라인`,body:`{{printer}}이(가) 오프라인 상태입니다`},printerError:{title:`프린터 오류`,body:`{{printer}}: {{error}}`},filamentLow:{title:`필라멘트 부족`,body:`{{printer}}: 필라멘트가 부족합니다`},maintenanceDue:{title:`유지보수 예정`,body:`{{printer}}: {{items}} 주의 필요`}},errors:{generic:`문제가 발생했습니다`,networkError:`네트워크 오류. 연결을 확인하세요.`,notFound:`찾을 수 없습니다`,unauthorized:`권한 없음`,serverError:`서버 오류`,validationError:`입력값을 확인하세요`,printerConnectionFailed:`프린터 연결 실패`,saveFailed:`변경사항 저장 실패`,deleteFailed:`삭제 실패`,loadFailed:`데이터 로드 실패`},hmsErrors:{title:`오류 - {{name}}`,noErrors:`오류 없음`,viewOnWiki:`Bambu Lab 위키에서 보기`,mqttVerifyFailedRemedy:`프린터에서 개발자 모드를 활성화하고 프린터를 재시작한 다음 작업을 다시 시작하세요.`,unknownCode:`알 수 없는 HMS 코드 — 자세한 내용은 Bambu Lab 위키를 참조하세요.`,clearInstructions:`오류를 해제하려면 프린터에서 오류를 지우세요.`,clearErrors:`오류 지우기`,clearSuccess:`HMS 오류가 지워졌습니다`,clearFailed:`HMS 오류 지우기 실패`,actionSuccess:`프린터에 작업을 전송함`,actionFailed:`작업 전송 실패`,runoutExpectedSlot:`{{ranOut}}의 필라멘트가 소진되었습니다. 프린터가 이제 {{expected}}에 호환 필라멘트를 기다리고 있습니다. {{expected}}에 스풀을 넣은 다음 다시 시도를 선택하세요.`,runoutExpectedSlotOnly:`프린터가 {{expected}}에 호환 필라멘트를 기다리고 있습니다. 거기에 스풀을 넣은 다음 다시 시도를 선택하세요.`,runoutSlotUnknown:`필라멘트가 소진되어 인쇄가 일시정지되었습니다. Bambuddy가 프린터가 현재 요청하는 슬롯을 확인할 수 없습니다 — 프린터 화면에서 요청된 슬롯을 확인하세요.`,actions:{RESUME_PRINTING:`인쇄 재개`,RESUME_PRINTING_DEFECTS:`재개 (결함 허용)`,RESUME_PRINTING_PROBELM_SOLVED:`재개 (문제 해결됨)`,STOP_PRINTING:`인쇄 중지`,CHECK_ASSISTANT:`도우미 보기`,FILAMENT_EXTRUDED:`필라멘트 압출됨, 계속`,RETRY_FILAMENT_EXTRUDED:`아직 압출되지 않음, 다시 시도`,CONTINUE:`완료, 계속`,LOAD_VIRTUAL_TRAY:`필라멘트 로드`,OK_BUTTON:`확인`,FILAMENT_LOAD_RESUME:`필라멘트 로드됨, 재개`,JUMP_TO_LIVEVIEW:`실시간 보기`,NO_REMINDER_NEXT_TIME:`다음에 알리지 않음`,REFRESH_NOZZLE:`다시 확인`,IGNORE_NO_REMINDER_NEXT_TIME:`무시 및 다시 알리지 않음`,IGNORE_RESUME:`무시하고 재개`,PROBLEM_SOLVED_RESUME:`문제 해결됨, 재개`,TURN_OFF_FIRE_ALARM:`확인, 화재 경보 끄기`,RETRY_PROBLEM_SOLVED:`다시 시도 (문제 해결됨)`,CANCLE:`취소`,STOP_DRYING:`건조 중지`,PROCEED:`계속`,OK_JUMP_RACK:`확인`,ABORT:`중단`,DISABLE_PURIFICATION:`이 인쇄에 대해 공기 정화 비활성화`,DONT_REMIND_NEXT_TIME:`알리지 않음`,DBL_CHECK_CANCEL:`취소`,DBL_CHECK_DONE:`완료`,DBL_CHECK_RETRY:`다시 시도`,DBL_CHECK_RESUME:`재개`,DBL_CHECK_OK:`확인`,REMOVE_CLOSE_BTN:`닫기`}},mqttDebug:{title:`MQTT 디버그 로그`,searchPlaceholder:`토픽 또는 페이로드 검색...`,noMessages:`아직 기록된 메시지 없음`,startLoggingHint:`"로깅 시작"을 클릭하여 MQTT 메시지 캡처 시작`,noMessagesMatch:`필터에 일치하는 메시지 없음`,adjustFilterHint:`검색 또는 필터 기준을 조정해 보세요`,incoming:`수신`,outgoing:`송신`,loggingStopped:`로깅 정지됨`,loggingActive:`로깅 활성 - 메시지가 자동 새로고침됨`,startLogging:`로깅 시작`,stopLogging:`로깅 정지`,clearLog:`로그 지우기`,topic:`토픽`,timestamp:`타임스탬프`,direction:`방향`,all:`전체`},printerFiles:{title:`파일 관리자`,storageUsed:`사용됨:`,storageFree:`여유:`,filterPlaceholder:`파일 필터...`,deleteButton:`삭제`,deleteFiles:`{{count}}개 파일 삭제`,deleteFileConfirm:`"{{name}}"을(를) 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.`,deleteFilesConfirm:`선택된 {{count}}개 파일을 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.`,noFiles:`프린터에 파일 없음`,loadingFiles:`파일 로딩 중...`,failedToLoad:`파일 로드 실패`,toast:{filesDeleted:`{{count}}개 파일이 삭제되었습니다`,deleteFailed:`삭제 실패: {{error}}`}},confirm:{delete:`이것을 삭제하시겠습니까?`,unsavedChanges:`저장되지 않은 변경사항이 있습니다. 정말 나가시겠습니까?`,clearQueue:`대기열을 지우시겠습니까?`},login:{title:`Bambuddy 로그인`,subtitle:`계정에 로그인하세요`,username:`사용자명`,usernamePlaceholder:`사용자명을 입력하세요`,usernameOrEmail:`사용자명 또는 이메일`,usernameOrEmailPlaceholder:`사용자명 또는 @ 이메일`,password:`비밀번호`,passwordPlaceholder:`비밀번호를 입력하세요`,signIn:`로그인`,signingIn:`로그인 중...`,rememberMe:`로그인 유지`,forgotPassword:`비밀번호를 잊으셨나요?`,autologinFailed:`SSO 자동 로그인에 실패했습니다. 아래에서 계속할 공급자를 선택하세요.`,localDisabledNotice:`로컬 로그인이 비활성화되어 있습니다. 아래 SSO 공급자 중 하나를 사용하세요.`,loginSuccess:`성공적으로 로그인되었습니다`,loginFailed:`로그인 실패`,enterCredentials:`사용자명과 비밀번호를 입력하세요`,enterEmail:`이메일 주소를 입력하세요`,oidcLoginFailed:`OIDC 로그인 실패`,oidcErrors:{providerError:`ID 제공자에서 오류가 반환되었습니다`,missingParameters:`OIDC 콜백에 필수 매개변수가 없습니다`,invalidState:`OIDC 상태가 잘못되었거나 이미 사용되었습니다`,stateExpired:`OIDC 로그인 세션이 만료되었습니다 — 다시 시도하세요`,providerNotFound:`OIDC 제공자를 찾을 수 없습니다`,discoveryFailed:`OIDC 검색 문서를 가져오지 못했습니다`,invalidDiscovery:`OIDC 검색 문서가 잘못되었습니다`,networkError:`OIDC 토큰 교환 중 네트워크 오류`,badResponse:`OIDC 토큰 교환 중 예상치 못한 응답`,noIdToken:`OIDC 제공자가 ID 토큰을 반환하지 않았습니다`,validationFailed:`OIDC 토큰 검증 실패`,nonceMismatch:`OIDC 논스 불일치 — 재생 공격 가능성`,missingSubClaim:`OIDC 토큰에 sub 클레임이 없습니다`,noLinkedAccount:`OIDC ID에 연결된 로컬 계정이 없습니다`,accountInactive:`계정이 비활성 상태입니다`,userResolutionFailed:`계정 확인 실패`,internalError:`OIDC 로그인 중 내부 오류 발생`,tokenExchangeFailed:`OIDC 토큰 교환 실패`},forgotPasswordTitle:`비밀번호 찾기`,forgotPasswordMessage:`비밀번호를 잊으셨다면 시스템 관리자에게 초기화를 요청하세요.`,forgotPasswordEmailMessage:`이메일 주소를 입력하면 새 비밀번호를 전송해 드립니다.`,emailAddress:`이메일 주소`,emailPlaceholder:`your.email@example.com`,cancel:`취소`,sending:`전송 중...`,sendResetEmail:`초기화 이메일 전송`,howToReset:`비밀번호 초기화 방법:`,resetStep1:`Bambuddy 관리자에게 문의하세요`,resetStep2:`사용자 관리에서 비밀번호 초기화를 요청하세요`,resetStep3:`관리자가 임시 비밀번호를 설정해 드립니다`,resetStep4:`새 비밀번호로 로그인하고 설정에서 변경하세요`,gotIt:`확인`,resetPassword:{title:`새 비밀번호 설정`,subtitle:`아래에 새 비밀번호를 입력하고 확인하세요.`,newPassword:`새 비밀번호`,newPasswordPlaceholder:`최소 8자`,confirmPassword:`비밀번호 확인`,confirmPasswordPlaceholder:`새 비밀번호 반복`,saving:`저장 중…`,submit:`새 비밀번호 설정`,backToLogin:`로그인으로 돌아가기`,passwordsDoNotMatch:`비밀번호가 일치하지 않습니다`,passwordTooShort:`비밀번호는 최소 8자여야 합니다`,resetFailed:`비밀번호 초기화 실패. 링크가 만료되었을 수 있습니다.`},twoFA:{title:`이중 인증`,subtitle:`계정이 2FA로 보호되어 있습니다. 아래에 인증 코드를 입력하세요.`,methodAuthenticator:`인증 앱`,methodEmail:`이메일 코드`,methodBackup:`백업 코드`,instructionsTotp:`인증 앱을 열고 Bambuddy의 6자리 코드를 입력하세요.`,instructionsEmail:`이메일 주소로 6자리 코드가 전송되었습니다. 10분 후 만료됩니다.`,instructionsEmailNotSent:`아래 버튼을 클릭하여 이메일로 인증 코드를 받으세요.`,instructionsBackup:`8자리 백업 복구 코드 중 하나를 입력하세요. 각 코드는 한 번만 사용할 수 있습니다.`,sendCodeButton:`이메일로 코드 전송`,sendingCode:`전송 중...`,resendCode:`코드 재전송`,codeLabel:`인증 코드`,backupCodeLabel:`백업 코드`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`확인`,verifyingButton:`확인 중...`,backToLogin:`← 로그인으로 돌아가기`,orContinueWith:`또는 계속`,signInWith:`{{provider}}로 로그인`,enterCode:`인증 코드를 입력하세요`,sendCodeFailed:`인증 코드 전송 실패`,invalidCode:`잘못된 코드입니다. 다시 시도하세요.`}},setup:{title:`Bambuddy 설정`,subtitle:`Bambuddy 인스턴스의 인증을 설정하세요`,enableAuth:`인증 활성화`,adminAccount:`관리자 계정`,adminAccountDesc:`관리자 사용자가 이미 있는 경우 기존 관리자 계정으로 인증이 활성화됩니다. 기존 관리자를 사용하려면 아래 필드를 비워두거나, 새 관리자 사용자를 만들려면 자격 증명을 입력하세요.`,adminUsername:`관리자 사용자명`,adminPassword:`관리자 비밀번호`,optionalIfAdminExists:`(관리자 사용자가 있는 경우 선택사항)`,adminUsernamePlaceholder:`관리자 사용자명 입력 (선택사항)`,adminPasswordPlaceholder:`관리자 비밀번호 입력 (선택사항)`,confirmPassword:`비밀번호 확인`,confirmPasswordPlaceholder:`관리자 비밀번호 확인`,settingUp:`설정 중...`,completeSetup:`설정 완료`,toast:{authEnabledAdminCreated:`인증 활성화 및 관리자 사용자 생성됨`,authEnabledExistingAdmins:`기존 관리자 사용자로 인증 활성화됨`,setupCompleted:`설정이 완료되었습니다`,enterBothCredentials:`관리자 사용자명과 비밀번호를 모두 입력하거나, 기존 관리자 사용자를 사용하려면 둘 다 비워두세요`,passwordsDoNotMatch:`비밀번호가 일치하지 않습니다`,passwordTooShort:`비밀번호는 최소 6자여야 합니다`}},changePassword:{title:`비밀번호 변경`,currentPassword:`현재 비밀번호`,currentPasswordPlaceholder:`현재 비밀번호 입력`,newPassword:`새 비밀번호`,newPasswordPlaceholder:`새 비밀번호 입력 (최소 6자)`,confirmPassword:`새 비밀번호 확인`,confirmPasswordPlaceholder:`새 비밀번호 확인`,passwordsDoNotMatch:`비밀번호가 일치하지 않습니다`,passwordTooShort:`비밀번호는 최소 6자여야 합니다`,changing:`변경 중...`,success:`비밀번호가 성공적으로 변경되었습니다`,failed:`비밀번호 변경 실패`},plateAlert:{title:`인쇄 일시정지됨!`,message:`빌드 플레이트에 객체가 감지되었습니다. 인쇄가 자동으로 일시정지되었습니다. 플레이트를 비우고 인쇄를 재개하세요.`,understand:`확인했습니다`},camera:{title:`카메라 보기`,invalidPrinterId:`유효하지 않은 프린터 ID`,live:`실시간`,snapshot:`스냅샷`,restartStream:`스트림 재시작`,refreshSnapshot:`스냅샷 새로고침`,fullscreen:`전체 화면`,exitFullscreen:`전체 화면 종료`,connectingToCamera:`카메라에 연결 중...`,capturingSnapshot:`스냅샷 캡처 중...`,connectionLost:`연결 끊김`,connectionFailed:`카메라 연결 실패`,reconnecting:`{{countdown}}초 후 재연결 중... (시도 {{attempt}}/{{max}})`,reconnectNow:`지금 재연결`,cameraUnavailable:`카메라를 사용할 수 없음`,cameraUnavailableDesc:`프린터가 켜져 있고 연결되어 있는지 확인하세요.`,noCamera:`사용 가능한 카메라 없음`,retry:`다시 시도`,cameraStream:`카메라 스트림`,zoomOut:`축소`,zoomIn:`확대`,resetZoom:`배율 초기화`,recording:`녹화 중`,startRecording:`녹화 시작`,stopRecording:`녹화 중지`,chamberLight:`챔버 조명 전환`,unavailable:`카메라 사용 불가`,diagnose:{button:`진단`,modalTitle:`카메라 진단`,running:`진단 실행 중...`,runFailed:`진단 실행 실패: {{error}}`,retry:`다시 실행`,stage:{tcp_reachable:`네트워크 연결 가능 여부`,first_frame:`프레임 캡처`,live_stream_active:`라이브 스트림 활성`},summary:{all_ok:`카메라가 정상 작동 중입니다. 모든 단계를 성공적으로 완료했습니다.`,live_stream_active_healthy:`카메라가 최근 프레임으로 스트리밍 중입니다 — 테스트가 필요 없습니다.`,printer_unreachable:`프린터에 연결할 수 없습니다. IP 주소, 네트워크 연결, 프린터 전원을 확인하세요.`,camera_port_closed:`프린터에 연결됐지만 카메라 포트가 닫혀 있습니다. 프린터 설정에서 LAN 전용 모드와 개발자 모드가 활성화되어 있는지 확인하세요.`,no_frame:`카메라에 연결됐지만 프레임이 수신되지 않았습니다. 다시 시도하거나 프린터 설정에서 카메라가 활성화되어 있는지 확인하세요.`,unknown_failure:`알 수 없는 이유로 카메라 진단에 실패했습니다. 지원 로그를 확인하세요.`},meta:{protocol:`프로토콜`,port:`포트`,profile:`프로파일`}}},groups:{title:`그룹 관리`,subtitle:`접근 제어를 위한 권한 그룹 관리`,backToSettings:`설정으로 돌아가기`,createGroup:`그룹 생성`,noPermission:`이 페이지에 접근할 권한이 없습니다.`,system:`시스템`,noDescription:`설명 없음`,usersCount:`{{count}}명의 사용자`,permissionsCount:`{{count}}개의 권한`,edit:`편집`,delete:`삭제`,toast:{created:`그룹이 성공적으로 생성되었습니다`,updated:`그룹이 성공적으로 업데이트되었습니다`,deleted:`그룹이 성공적으로 삭제되었습니다`,enterGroupName:`그룹 이름을 입력해 주세요`},modal:{editGroup:`그룹 편집`,createGroup:`그룹 생성`,cancel:`취소`,saving:`저장 중...`,creating:`생성 중...`,saveChanges:`변경 사항 저장`},form:{groupName:`그룹 이름`,groupNamePlaceholder:`그룹 이름 입력`,systemGroupWarning:`시스템 그룹 이름은 변경할 수 없습니다`,description:`설명`,descriptionPlaceholder:`설명 입력 (선택사항)`,permissions:`권한 ({{count}}개 선택됨)`},deleteModal:{title:`그룹 삭제`,message:`이 그룹을 삭제하시겠습니까? 이 그룹의 사용자는 해당 권한을 잃게 됩니다.`,confirm:`그룹 삭제`},editor:{title:`그룹 편집`,createTitle:`그룹 생성`,search:`권한 검색...`,selectAll:`모두 선택`,clearAll:`모두 해제`,permissionsSelected:`{{count}}개 선택됨`,noResults:`검색과 일치하는 권한이 없습니다`,websocketHint:`실시간 업데이트에 필요합니다. 이 권한이 없으면 인터페이스는 주기적 폴링으로 대체됩니다.`}},users:{title:`사용자 관리`,subtitle:`Bambuddy 인스턴스에 대한 사용자 및 접근 권한 관리`,backToSettings:`설정으로 돌아가기`,createUser:`사용자 생성`,noPermission:`이 페이지에 접근할 권한이 없습니다.`,admin:`관리자`,noGroups:`그룹 없음`,active:`활성`,inactive:`비활성`,edit:`편집`,delete:`삭제`,system:`시스템`,noGroupsAvailable:`사용 가능한 그룹 없음`,table:{username:`사용자 이름`,groups:`그룹`,status:`상태`,actions:`작업`},toast:{created:`사용자가 성공적으로 생성되었습니다`,updated:`사용자가 성공적으로 업데이트되었습니다`,deleted:`사용자가 성공적으로 삭제되었습니다`,fillRequired:`모든 필수 항목을 입력해 주세요`,passwordsDoNotMatch:`비밀번호가 일치하지 않습니다`,passwordTooShort:`비밀번호는 최소 6자 이상이어야 합니다`,ldapProvisioned:`LDAP 사용자 "{{username}}"이(가) 생성되었습니다`},modal:{createUser:`사용자 생성`,editUser:`사용자 편집`,cancel:`취소`,creating:`생성 중...`,saving:`저장 중...`,saveChanges:`변경 사항 저장`,advancedAuthSubtitle:`고급 인증 사용`,tabsAriaLabel:`사용자 소스`,localTab:`로컬`,ldapTab:`LDAP`,ldapSearchLabel:`디렉터리 검색`,ldapSearchPlaceholder:`사용자명, 이름, 이메일을 입력하세요...`,ldapMinChars:`검색하려면 최소 2자 이상 입력하세요`,ldapTypeToSearch:`LDAP 디렉터리를 검색하려면 입력을 시작하세요`,ldapSearching:`디렉터리 검색 중...`,ldapNoResults:`디렉터리에서 일치하는 사용자가 없습니다`,ldapSearchError:`디렉터리 검색에 실패했습니다. LDAP 서버 상태를 확인하세요.`,ldapAlreadyProvisioned:`이미 생성됨`,ldapSelectedLabel:`선택됨`,ldapProvision:`사용자 생성`,ldapProvisioning:`생성 중...`,ldapErrorProvision:`생성에 실패했습니다. LDAP 서버 상태를 확인하고 다시 시도하세요.`},form:{username:`사용자 이름`,usernamePlaceholder:`사용자 이름 입력`,email:`이메일`,emailPlaceholder:`user@example.com`,password:`비밀번호`,passwordPlaceholder:`비밀번호 입력`,confirmPassword:`비밀번호 확인`,confirmPasswordPlaceholder:`비밀번호 확인`,newPasswordPlaceholder:`새 비밀번호 입력`,confirmNewPasswordPlaceholder:`새 비밀번호 확인`,leaveBlankToKeep:`현재 비밀번호 유지 시 비워두기`,groups:`그룹`,optional:`선택사항`,autoGeneratedPassword:`안전한 비밀번호가 자동으로 생성되어 사용자에게 이메일로 전송됩니다.`,passwordManagedByAdvancedAuth:`비밀번호는 고급 인증에 의해 관리됩니다. "비밀번호 재설정"을 사용하여 이메일로 새 비밀번호를 전송하세요.`,resetPassword:`비밀번호 재설정`,resettingPassword:`비밀번호 재설정 중...`},deleteModal:{title:`사용자 삭제`,message:`이 사용자를 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.`,confirm:`사용자 삭제`}},streamOverlay:{title:`스트림 오버레이`,invalidPrinterId:`유효하지 않은 프린터 ID`,cameraStream:`카메라 스트림`,progress:`진행률`,eta:`예상 완료`,printerIdle:`프린터 대기 중`,printerOffline:`프린터 오프라인`,status:{printing:`인쇄 중`,paused:`일시 중지됨`,finished:`완료됨`,failed:`실패`,idle:`대기 중`,unknown:`알 수 없음`}},profiles:{title:`프로필`,subtitle:`슬라이서 프리셋 및 압력 전진 보정 관리`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`로컬 프로필`,kprofiles:`K-프로필`},orcaCloud:{connectedAs:`연결됨`,connectedShort:`Orca Cloud에 연결됨`,logout:`연결 해제`,noLogoutPermission:`연결을 해제할 권한이 없습니다`,noConnectPermission:`Orca Cloud에 연결할 권한이 없습니다`,retry:`다시 시도`,connectButton:`Orca Cloud 연결`,connect:{title:`Orca Cloud에 연결`,description:`Orca Cloud 계정에 로그인하여 슬라이서 프로필을 Bambuddy에 동기화하세요.`},device:{title:`Orca Cloud에서 Bambuddy 승인`,instruction:`Orca Cloud를 열고 이 코드를 승인하세요. 승인하면 Bambuddy가 자동으로 연결됩니다.`,codeLabel:`페어링 코드`,openButton:`Orca Cloud 승인 페이지 열기`,manualHint:`또는 {{url}}(으)로 이동하여 위 코드를 입력하세요.`,waiting:`승인을 기다리는 중…`,cancel:`취소`},profiles:{title:`Orca Cloud 프로필 ({{count}})`,refresh:`새로고침`,empty:`Orca Cloud 계정에 아직 프로필이 없습니다.`},toast:{disconnected:`Orca Cloud 연결 해제됨`},errors:{startFailed:`Orca Cloud 로그인 흐름을 시작할 수 없습니다.`,denied:`Orca Cloud에서 페어링이 거부되었습니다.`,expired:`페어링 코드가 만료되었습니다. 연결을 클릭하여 다시 시도하세요.`,pollFailed:`승인을 기다리는 중 연결이 끊겼습니다. 다시 시도하세요.`}},localProfiles:{title:`로컬 프로필`,subtitle:`OrcaSlicer에서 슬라이서 프리셋 가져오기 및 관리`,import:`프로필 가져오기`,importDesc:`.bbscfg, .bbsflmt, .orca_filament, .zip 또는 .json 파일을 여기에 드롭하세요`,importing:`가져오는 중...`,search:`로컬 프리셋 검색...`,noPresets:`로컬 프리셋 없음`,badge:`로컬`,edit:`편집`,delete:`삭제`,cancel:`취소`,deleteConfirmTitle:`프리셋 삭제`,deleteConfirm:`이 프리셋을 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.`,source:`출처`,inheritsFrom:`상속`,filamentType:`유형`,vendor:`제조사`,compatiblePrinters:`프린터`,nozzleTemp:`노즐 온도`,cost:`비용`,density:`밀도`,pressureAdvance:`압력 전진`,filament:`필라멘트`,process:`프로세스`,printer:`프린터`,toast:{importSuccess:`{{count}}개 프리셋 가져옴`,importSkipped:`{{count}}개 프리셋 건너뜀 (중복)`,importError:`가져오기 중 {{count}}개 오류 발생`,deleted:`프리셋 삭제됨`,updated:`프리셋 업데이트됨`},noSearchResults:`검색어와 일치하는 프리셋이 없습니다`},connectedAs:`연결된 계정`,signInExpiredTitle:`Bambu 클라우드 로그인이 만료되었습니다`,signInExpiredBody:`Bambu Lab이 저장된 토큰을 더 이상 허용하지 않습니다. 클라우드 프로필, MakerWorld 가져오기, 펌웨어 확인을 복구하려면 다시 로그인하세요.`,logout:`로그아웃`,noLogoutPermission:`로그아웃 권한이 없습니다`,failedToLoad:`프로필 불러오기 실패`,retry:`다시 시도`,time:{justNow:`방금`,minsAgo:`{{count}}분 전`,hoursAgo:`{{count}}시간 전`,daysAgo:`{{count}}일 전`},toast:{loggedOut:`로그아웃되었습니다`},login:{title:`Bambu 클라우드 연결`,subtitle:`기기 간 슬라이서 프리셋 동기화`,email:`이메일`,password:`비밀번호`,region:`지역`,regionGlobal:`글로벌`,regionChina:`중국`,verificationCode:`인증 코드`,totpCode:`인증앱 코드`,checkEmail:`이메일({{email}})로 전송된 6자리 코드를 확인하세요`,enterTotpHint:`인증앱에서 6자리 코드를 입력하세요`,accessToken:`액세스 토큰`,accessTokenHint:`Bambu Studio에서 Bambu Lab 액세스 토큰을 붙여넣으세요`,back:`뒤로`,loginButton:`로그인`,verifyButton:`인증`,setTokenButton:`토큰 설정`,useToken:`액세스 토큰 대신 사용`,useEmail:`이메일로 로그인`,toast:{loggedIn:`성공적으로 로그인되었습니다`,codeSent:`이메일로 인증 코드가 전송되었습니다`,enterTotp:`인증앱에서 코드를 입력하세요`,tokenSet:`토큰이 성공적으로 설정되었습니다`}},presets:{myPreset:`내 프리셋 (편집 가능)`,duplicate:`복제`,editable:`편집 가능`,failedToLoadDetails:`프리셋 세부 정보 불러오기 실패`,deleteConfirm:`이 프리셋을 삭제하시겠습니까?`,deleteWarning:`Bambu 클라우드에서 "{{name}}"을(를) 영구적으로 삭제합니다. 이 작업은 취소할 수 없습니다.`,noDuplicatePermission:`프리셋 복제 권한이 없습니다`,noEditPermission:`프리셋 편집 권한이 없습니다`,noDeletePermission:`프리셋 삭제 권한이 없습니다`,types:{filament:`필라멘트 프리셋`,printer:`프린터 프리셋`,process:`프로세스 프리셋`},toast:{deleted:`프리셋 삭제됨`,created:`프리셋 생성됨`,updated:`프리셋 업데이트됨`,duplicated:`프리셋 복제됨`,fieldAdded:`"{{key}}" 필드 추가됨`,exported:`프리셋 내보냄`},baseLabel:`기본: {{name}}`,currentLabel:`현재: {{name}}`,newPreset:`새 프리셋`,editPreset:`프리셋 편집`,duplicatePreset:`프리셋 복제`,createNewPreset:`새 프리셋 생성`,customizeSettings:`새 프리셋의 설정 사용자 지정`,compareWithBase:`기본 프리셋과 비교`,compare:`비교`,basePreset:`기본 프리셋`,selectBasePreset:`기본 프리셋 선택...`,presetName:`프리셋 이름`,myCustomPreset:`내 사용자 지정 프리셋`,inheritsFrom:`상속 출처`,dropJsonToImport:`JSON 파일을 드롭하여 가져오기`,tabs:{common:`공통`,allFields:`모든 필드`},availableFields:`사용 가능한 필드`,searchFieldsPlaceholder:`필드 검색...`,noMatchingFields:`일치하는 필드 없음`,allFieldsAdded:`모든 필드 추가됨`,addCustomField:`사용자 지정 필드 추가`,yourOverrides:`내 재정의`,noOverridesYet:`아직 재정의 없음`,clickFieldsToAdd:`왼쪽 필드를 클릭하여 추가`,saveAsTemplate:`템플릿으로 저장`,jsonTip:`팁: 이 모달 어디서나 .json 파일을 드래그 앤 드롭하여 설정을 가져올 수 있습니다`},cloudView:{searchPlaceholder:`프리셋 검색...`,templates:`템플릿`,refresh:`새로고침`,newPreset:`새 프리셋`,clearFilters:`필터 초기화`,compareMode:`비교 모드`,selectAnotherPreset:`다른 {{type}} 프리셋 선택`,clickTwoPresets:`같은 유형의 프리셋 두 개를 클릭하여 비교`,selectFirst:`1. 첫 번째 선택`,selectSecond:`2. 두 번째 선택`,compareNow:`지금 비교`,lastSynced:`마지막 동기화:`,showingCount:`{{total}}개 중 {{showing}}개 표시`,noPresetsFound:`프리셋을 찾을 수 없음`,columns:{filament:`필라멘트`,process:`프로세스`,printer:`프린터`},noFilamentPresets:`필라멘트 프리셋 없음`,noProcessPresets:`프로세스 프리셋 없음`,noPrinterPresets:`프린터 프리셋 없음`,filters:{type:`유형`,owner:`소유자`,printer:`프린터`,nozzle:`노즐`,filament:`필라멘트`,layer:`레이어`,all:`전체`,myPresets:`내 프리셋`,builtIn:`기본 제공`,process:`프로세스`},noTemplatesPermission:`템플릿 관리 권한이 없습니다`,noRefreshPermission:`프로필 새로고침 권한이 없습니다`,noCreatePermission:`프리셋 생성 권한이 없습니다`},templates:{title:`빠른 템플릿`,noTemplates:`아직 템플릿 없음`,createFirst:`프리셋 편집기에서 템플릿을 생성하세요`,typeFilter:`유형:`,deleteTitle:`템플릿 삭제`,deleteWarning:`이 작업은 취소할 수 없습니다`,deleteConfirm:`"{{name}}"을(를) 삭제하시겠습니까?`,namePlaceholder:`템플릿 이름`,descriptionPlaceholder:`설명`,settingsJson:`설정 (JSON)`,fieldsCount:`{{count}}개 필드`,shownInModals:`모달에 표시됨`,hiddenInModals:`모달에서 숨겨짐`,apply:`적용`,toast:{deleted:`템플릿 삭제됨`,updated:`템플릿 업데이트됨`,created:`템플릿 생성됨`,applied:`템플릿 적용됨`}}},support:{debugLoggingActive:`디버그 로깅이 활성화되어 있습니다`,manageLogs:`관리`,collectItem7:`프린터 연결 및 펌웨어 버전`,collectItem8:`통합 상태 (Spoolman, MQTT, HA)`,collectItem9:`네트워크 인터페이스 (서브넷만)`,collectItem10:`Python 패키지 버전`,collectItem11:`데이터베이스 상태 확인`,collectItem12:`Docker 환경 세부 정보`,bundleGenerating:`번들 생성 중...`,bundleStepConnection:`프린터 연결 확인 실행 중`,bundleStepVirtualPrinters:`가상 프린터 설정 확인 실행 중`,bundleStepLogScan:`알려진 문제가 있는지 최근 로그 스캔 중`,bundleStepBuild:`지원 번들 ZIP 빌드 중`},fileManager:{title:`파일 관리자`,subtitle:`인쇄 파일 정리 및 관리`,uploadFiles:`파일 업로드`,newFolder:`새 폴더`,folderName:`폴더 이름`,folderNamePlaceholder:`예: 기능성 부품`,renameFile:`파일 이름 바꾸기`,renameFolder:`폴더 이름 바꾸기`,invalidFilenameChar:`"{{char}}" 문자는 인쇄 파일 이름에 허용되지 않습니다. 프린터 SD 카드가 거부하는 문자: < > : " / \\ | ? *`,moveFiles:`{{count}}개 파일 이동`,rootNoFolder:`루트 (폴더 없음)`,current:`현재`,linkFolder:`폴더 연결`,linkFolderDescription:`"{{name}}"을(를) 프로젝트 또는 아카이브에 연결하여 빠른 접근.`,project:`프로젝트`,archive:`아카이브`,noProjectsFound:`프로젝트를 찾을 수 없음`,noArchivesFound:`아카이브를 찾을 수 없음`,unlink:`연결 해제`,link:`연결`,dragDropFiles:`파일을 여기에 드래그 앤 드롭`,dropFilesHere:`파일을 여기에 드롭`,releaseToUpload:`놓아서 업로드`,orClickToBrowse:`또는 클릭하여 탐색`,allFileTypesSupported:`모든 파일 형식 지원. ZIP 파일은 압축 해제됩니다.`,zipFilesDetected:`ZIP 파일 감지됨`,zipExtractOptions:`ZIP 파일이 압축 해제됩니다. 폴더 구조 처리 방법을 선택하세요:`,preserveZipStructure:`ZIP에서 폴더 구조 유지`,createFolderFromZip:`ZIP 파일 이름으로 폴더 생성`,stlThumbnailGeneration:`STL 썸네일 생성`,zipMayContainStl:`ZIP 파일에 STL 파일이 포함될 수 있습니다. 압축 해제 중 썸네일을 생성할 수 있습니다.`,thumbnailsCanBeGenerated:`STL 파일의 썸네일을 생성할 수 있습니다. 대형 모델은 처리 시간이 더 걸릴 수 있습니다.`,generateThumbnailsForStl:`STL 파일의 썸네일 생성`,threemfDetected:`3MF 파일 감지됨`,threemfExtractionInfo:`프린터 모델, 재료, 색상 및 인쇄 설정이 3MF 파일에서 자동으로 추출됩니다.`,willBeExtracted:`추출 예정`,filesExtracted:`{{count}}개 파일 추출됨`,uploadComplete:`업로드 완료: {{succeeded}}개 성공`,uploadFailed:`업로드 실패`,zipFilesFailed:`{{count}}개 파일 실패`,uploading:`업로드 중...`,changeLink:`링크 변경...`,linkTo:`연결 대상...`,linkToProjectOrArchive:`프로젝트 또는 아카이브에 연결`,generateThumbnail:`썸네일 생성`,generateThumbnails:`썸네일 생성`,generateThumbnailsForMissing:`썸네일이 없는 STL 파일의 썸네일 생성`,gridView:`격자 보기`,listView:`목록 보기`,lowDiskSpaceWarning:`디스크 공간 부족 경고`,lowDiskSpaceDetails:`전체 {{total}} 중 {{free}}만 남음. 임계값은 설정에서 {{threshold}}GB로 설정됩니다.`,files:`파일`,folders:`폴더`,size:`크기`,free:`여유`,allFiles:`모든 파일`,allExternal:`외부`,externalIsEmpty:`외부 파일 없음`,externalEmptyDescription:`연결된 외부 폴더의 파일이 여기에 표시됩니다.`,wrap:`줄 바꿈`,enableTextWrapping:`텍스트 줄 바꿈 활성화`,disableTextWrapping:`텍스트 줄 바꿈 비활성화`,collapse:`접기`,collapseFoldersByDefault:`기본적으로 폴더 접기`,expandFoldersByDefault:`기본적으로 폴더 펼치기`,folderSort:`폴더 정렬`,folderSortByName:`이름순`,folderSortByActivity:`최근 활동순`,dragToResizeTooltip:`드래그하여 크기 조정, 더블클릭하여 초기화`,searchFiles:`파일 검색...`,searchSubfoldersHint:`하위 폴더 포함`,readme:{truncated:`잘림`,show:`README 표시`,hide:`README 숨기기`,label:`README`},tags:{title:`태그`,subtitle:`파일에 가로지르는 필터용 라벨을 붙이세요 — 장난감, 어린이용, PETG 전용 등.`,manage:`태그`,manageTitle:`태그 카탈로그 관리`,add:`새 태그`,edit:`태그 이름 변경`,name:`이름`,fileCount:`파일`,empty:`아직 태그가 없습니다. 만들어서 파일에 라벨을 붙이세요.`,noMatches:`일치하는 태그가 없습니다.`,createPlaceholder:`예: 장난감, 어린이용, petg`,createButton:`만들기`,nameRequired:`이름은 필수입니다.`,searchPlaceholder:`태그 필터...`,created:`태그가 만들어졌습니다.`,updated:`태그 이름이 변경되었습니다.`,deleted:`태그가 제거되었습니다.`,saveFailed:`태그를 저장할 수 없습니다.`,deleteFailed:`태그를 제거할 수 없습니다.`,applyFailed:`태그를 적용할 수 없습니다.`,applyAdd:`태그 추가`,applyRemove:`태그 제거`,applyAddSuccess:`{{files}}개 파일에 태그 {{count}}개를 추가했습니다.`,applyRemoveSuccess:`{{files}}개 파일에서 태그 {{count}}개를 제거했습니다.`,actionAdd:`선택한 파일에 추가`,actionRemove:`선택한 파일에서 제거`,tagAction:`태그`,bulkTitle:`선택한 {{count}}개 파일에 태그 지정`,bulkTooltip:`선택한 모든 파일에 태그를 추가하거나 제거합니다.`,noPermission:`파일에 태그를 붙일 권한이 없습니다.`,filterLabel:`필터:`,clearAll:`모두 지우기`,confirmDelete:`태그 "{{name}}"을(를) 삭제하시겠습니까?`,confirmDeleteMessage:`카탈로그에서 태그를 제거합니다. 파일과 다른 태그는 그대로 유지됩니다.`,confirmDeleteInUseMessage:`이 태그는 {{count}}개 파일에 있습니다. 삭제하면 모든 파일에서 칩이 사라지지만 파일 자체는 변경되지 않습니다.`,editAria:`{{name}} 편집`,deleteAria:`{{name}} 삭제`},allTypes:`모든 유형`,prints:`인쇄물`,ascending:`오름차순`,descending:`내림차순`,showModified:`수정 날짜 표시`,hideModified:`수정 날짜 숨기기`,lastModified:`마지막 수정`,lastActivity:`마지막 활동`,resultsCount:`전체 {{total}}개 중 {{showing}}개`,selectAll:`모두 선택`,deselectAll:`모두 선택 해제`,selected:`{{count}}개 선택됨`,adding:`추가 중...`,loadingFiles:`파일 불러오는 중...`,folderIsEmpty:`폴더가 비어 있음`,noFilesYet:`파일 없음`,folderEmptyDescription:`파일을 업로드하거나 이 폴더로 이동하여 시작하세요.`,noFilesDescription:`파일을 업로드하여 인쇄 관련 파일을 정리하세요.`,noMatchingFiles:`일치하는 파일 없음`,noMatchingFilesDescription:`현재 검색 또는 필터 조건과 일치하는 파일이 없습니다.`,clearFilters:`필터 초기화`,printedCount:`{{count}}회 인쇄됨`,uploadedBy:`업로드한 사람`,deleteFolder:`폴더 삭제`,deleteFile:`파일 삭제`,deleteFilesCount:`{{count}}개 파일 삭제`,deleteFolderConfirm:`이 폴더를 삭제하시겠습니까? 안의 모든 파일도 삭제됩니다.`,deleteFileConfirm:`이 파일을 삭제하시겠습니까?`,deleteFilesConfirm:`선택한 {{count}}개 파일을 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.`,deleting:`삭제 중...`,noPermissionRenameFolder:`폴더 이름 변경 권한이 없습니다`,noPermissionLinkFolder:`폴더 연결 권한이 없습니다`,noPermissionDeleteFolder:`폴더 삭제 권한이 없습니다`,onlyEmptyFoldersDeletable:`빈 폴더만 삭제할 수 있습니다`,noPermissionPrint:`인쇄 권한이 없습니다`,noPermissionAddToQueue:`대기열 추가 권한이 없습니다`,noPermissionSlice:`파일 슬라이싱 권한이 없습니다`,noPermissionDownload:`파일 다운로드 권한이 없습니다`,noPermissionRenameFile:`파일 이름 변경 권한이 없습니다`,noPermissionGenerateThumbnail:`썸네일 생성 권한이 없습니다`,noPermissionDeleteFile:`파일 삭제 권한이 없습니다`,noPermissionCreateFolder:`폴더 생성 권한이 없습니다`,noPermissionUpload:`파일 업로드 권한이 없습니다`,noPermissionMoveFiles:`파일 이동 권한이 없습니다`,noPermissionDeleteFiles:`파일 삭제 권한이 없습니다`,linkExternal:`외부 연결`,linkExternalFolder:`외부 폴더 연결`,linkExternalFolderDescription:`호스트 디렉토리(NAS, USB, 네트워크 공유)를 파일 관리자에 마운트합니다. 파일은 복사되지 않고 원래 경로에서 직접 접근합니다.`,externalFolderNamePlaceholder:`예: NAS 인쇄물`,externalPath:`호스트 경로`,externalPathHelp:`Docker 호스트의 디렉토리 절대 경로. 컨테이너에 바인드 마운트되어야 합니다.`,readOnly:`읽기 전용`,readOnlyHelp:`업로드 및 삭제 방지`,showHiddenFiles:`숨김 파일 표시 (dotfiles)`,externalFolder:`외부 폴더`,scanFolder:`스캔`,toast:{folderCreated:`폴더 생성됨`,folderDeleted:`폴더 삭제됨`,fileDeleted:`파일 삭제됨`,filesDeleted:`{{count}}개 파일 삭제됨`,filesMoved:`파일 이동됨`,folderLinked:`폴더 연결됨`,folderUnlinked:`폴더 연결 해제됨`,externalFolderLinked:`외부 폴더 연결 및 스캔됨`,folderScanned:`스캔 완료: {{added}}개 추가, {{removed}}개 제거`,addedToQueue:`{{count}}개 파일을 대기열에 추가함`,addedToQueuePartial:`{{added}}개 추가됨, {{failed}}개 실패`,failedToAddToQueue:`파일 추가 실패: {{error}}`,fileRenamed:`파일 이름 변경됨`,folderRenamed:`폴더 이름 변경됨`,thumbnailsGenerated:`{{count}}개 썸네일 생성됨`,thumbnailsGeneratedPartial:`{{succeeded}}개 썸네일 생성됨, {{failed}}개 실패`,noStlMissingThumbnails:`썸네일이 없는 STL 파일 없음`,failedToGenerateThumbnails:`썸네일 생성 실패: {{error}}`,thumbnailGenerated:`썸네일 생성됨`,failedToGenerateThumbnail:`썸네일 생성 실패: {{error}}`}},projects:{title:`프로젝트`,subtitle:`3D 인쇄 프로젝트 정리 및 추적`,newProject:`새 프로젝트`,editProject:`프로젝트 편집`,deleteProject:`프로젝트 삭제`,projectName:`프로젝트 이름`,description:`설명`,noProjects:`프로젝트 없음`,noProjectsFiltered:`{{status}} 프로젝트 없음`,noProjectsFilteredHelp:`{{status}} 프로젝트가 없습니다. 상태가 변경되면 여기에 표시됩니다.`,createFirst:`첫 번째 프로젝트를 만들어 관련 인쇄물을 정리하고 진행 상황을 추적하며 빌드를 관리하세요.`,createFirstButton:`첫 번째 프로젝트 만들기`,create:`만들기`,files:`파일`,prints:`인쇄물`,plates:`플레이트`,parts:`부품`,lastModified:`마지막 수정`,deleteConfirm:`이 프로젝트를 삭제하시겠습니까? 아카이브 및 대기열 항목은 연결 해제되지만 삭제되지는 않습니다.`,addFiles:`파일 추가`,removeFile:`파일 제거`,viewDetails:`세부 정보 보기`,namePlaceholder:`예: Voron 2.4 빌드`,descriptionPlaceholder:`선택적 설명...`,urlLabel:`URL`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`URL은 http:// 또는 https://로 시작해야 합니다`,openExternalUrl:`프로젝트 URL 열기`,coverImageLabel:`커버 사진`,coverImageAlt:`프로젝트 커버 사진`,coverImageUpload:`업로드`,coverImageReplace:`교체`,coverImageRemove:`제거`,color:`색상`,targetPlates:`목표 플레이트`,targetPlatesPlaceholder:`예: 25`,targetPlatesHelp:`인쇄 작업 수`,targetParts:`목표 부품`,targetPartsPlaceholder:`예: 150`,targetPartsHelp:`필요한 총 개체 수`,targetSets:`파일당 복사본 수`,targetSetsPlaceholder:`예: 10`,targetSetsHelp:`각 인쇄 가능한 파일을 인쇄할 횟수`,tagsLabel:`태그 (쉼표로 구분)`,tagsPlaceholder:`예: voron, 기능성, 선물`,dueDate:`마감일`,priority:`우선순위`,priorityLow:`낮음`,priorityNormal:`보통`,priorityHigh:`높음`,priorityUrgent:`긴급`,statusActive:`활성`,statusCompleted:`완료됨`,statusArchived:`보관됨`,done:`완료`,completed:`완료됨`,failed:`실패`,inQueue:`대기 중`,noPrintsYet:`인쇄물 없음`,printJobs:`인쇄 작업 (플레이트)`,partsPrinted:`인쇄된 부품`,failedParts:`실패한 부품`,import:`가져오기`,export:`내보내기`,importProject:`프로젝트 가져오기`,exportAll:`모든 프로젝트 내보내기`,loading:`프로젝트 불러오는 중...`,noEditPermission:`프로젝트 편집 권한이 없습니다`,noDeletePermission:`프로젝트 삭제 권한이 없습니다`,noCreatePermission:`프로젝트 생성 권한이 없습니다`,noImportPermission:`프로젝트 가져오기 권한이 없습니다`,noExportPermission:`프로젝트 내보내기 권한이 없습니다`,toast:{created:`프로젝트 생성됨`,updated:`프로젝트 업데이트됨`,deleted:`프로젝트 삭제됨`,imported:`프로젝트 가져옴`,multipleImported:`{{count}}개 프로젝트 가져옴`,importFailed:`가져오기 실패`,exported:`프로젝트 내보냄 (메타데이터만)`}},projectDetail:{notFound:`프로젝트를 찾을 수 없음`,backToProjects:`프로젝트로 돌아가기`,export:`내보내기`,exportProject:`프로젝트 내보내기`,noExportPermission:`프로젝트 내보내기 권한이 없습니다`,noEditPermission:`프로젝트 편집 권한이 없습니다`,partOf:`속한 프로젝트:`,priorityLabel:`우선순위:`,noPrints:`이 프로젝트에 아직 인쇄물이 없습니다`,status:{active:`활성`,completed:`완료됨`,archived:`보관됨`},priority:{low:`낮음`,normal:`보통`,high:`높음`,urgent:`긴급`},dueDate:{overdue:`기한 초과`,today:`오늘 마감`,daysLeft:`{{count}}일 남음`},progress:{platesProgress:`플레이트 진행률`,partsProgress:`부품 진행률`,setsProgress:`완성된 세트`,sets:`세트`,setsHint:`모든 인쇄 가능한 파일이 이 횟수에 도달하면 세트가 완성됩니다`,printJobs:`인쇄 작업`,parts:`부품`,percentComplete:`{{percent}}% 완료`,remaining:`{{count}}개 남음`},stats:{printJobs:`인쇄 작업`,total:`합계`,failed:`{{count}}개 실패`,partsPrinted:`{{count}}개 부품 인쇄됨`,printTime:`인쇄 시간`,filamentUsed:`사용된 필라멘트`},cost:{title:`비용 추적`,filamentCost:`필라멘트 비용`,energy:`에너지`,totalCost:`총 비용`,total:`합계`,includesBom:`BOM 포함`,budget:`예산`,remaining:`남은 예산`},subProjects:{title:`하위 프로젝트 ({{count}})`},notes:{title:`메모`,noEditPermission:`메모 편집 권한이 없습니다`,placeholder:`이 프로젝트에 대한 메모 추가...`,empty:`아직 메모가 없습니다. 편집을 클릭하여 메모를 추가하세요.`},files:{title:`파일`,linkFolders:`파일 관리자에서 폴더 연결`,forQuickAccess:`빠른 접근을 위해 이 프로젝트에 연결합니다.`,fileCount:`{{count}}개 파일`,empty:`연결된 폴더가 없습니다. 파일 관리자로 이동하여 폴더를 이 프로젝트에 연결하세요.`,printedCount:`{{count}}회 인쇄됨`,progressTooltip:`{{target}}회 중 {{done}}회 인쇄 완료`,noFiles:`이 폴더에 파일이 없습니다.`},bom:{title:`부품 목록`,acquired:`{{total}}개 중 {{completed}}개 확보`,showAll:`전체 표시`,hideDone:`완료된 것 숨기기`,addPart:`부품 추가`,noAddPermission:`부품 추가 권한이 없습니다`,partNamePlaceholder:`부품 이름 (예: M3x8 나사)`,partName:`부품 이름`,qty:`수량`,price:`가격 ({{currency}})`,sourcingUrlPlaceholder:`구매 URL (선택사항)`,remarksPlaceholder:`비고 (선택사항)`,deletePart:`부품 삭제`,deleteConfirm:`"{{name}}"을(를) 삭제하시겠습니까?`,noUpdatePermission:`부품 업데이트 권한이 없습니다`,noEditPermission:`부품 편집 권한이 없습니다`,noDeletePermission:`부품 삭제 권한이 없습니다`,totalCost:`총 비용:`,empty:`부품 목록에 부품이 없습니다. 하드웨어, 전자 부품 또는 기타 구성품을 추가하여 조달이 필요한 것을 추적하세요.`},timeline:{title:`활동 타임라인`,empty:`아직 활동이 없습니다.`},template:{saveAsTemplate:`템플릿으로 저장`,noCreatePermission:`템플릿 생성 권한이 없습니다`},queue:{title:`대기열`,viewAll:`전체 보기`,printing:`{{count}}개 인쇄 중`,queued:`{{count}}개 대기 중`},prints:{title:`인쇄물 ({{count}})`},toast:{projectUpdated:`프로젝트 업데이트됨`,partAdded:`부품 추가됨`,partRemoved:`부품 제거됨`,exportFailed:`내보내기 실패`,projectExported:`프로젝트 내보냄`,templateCreated:`템플릿 생성됨`}},system:{title:`시스템 정보`,version:`버전`,uptime:`가동 시간`,cpuUsage:`CPU 사용량`,memoryUsage:`메모리 사용량`,diskUsage:`디스크 사용량`,networkInfo:`네트워크 정보`,logs:`로그`,debugMode:`디버그 모드`,enableDebug:`디버그 로깅 활성화`,disableDebug:`디버그 로깅 비활성화`,downloadLogs:`로그 다운로드`,clearLogs:`로그 초기화`,dockerInfo:`Docker 정보`,containerName:`컨테이너 이름`,imageName:`이미지 이름`,platform:`플랫폼`,architecture:`아키텍처`},sponsors:{sectionTitle:`독립적·커뮤니티 후원`,tagline:`Bambuddy는 무료이며, 자발적으로 후원하는 사용자 덕분에 계속 무료로 유지됩니다. VC도 없고, 클라우드 종속도 없습니다.`,viewSupporters:`후원자 보기`,toastPrints:`Bambuddy로 {{count}}회 인쇄를 완료했습니다. Bambuddy는 후원자 덕분에 무료로 유지됩니다.`,toastCost:`Bambuddy로 {{total}}만큼의 필라멘트를 추적했습니다. 프로젝트를 독립적으로 유지하는 사람들을 만나보세요.`,toastArchives:`Bambuddy로 {{count}}회 인쇄를 아카이브했습니다. 독립성을 지지하는 사람들을 만나보세요.`,toastAnniversary:`Bambuddy와 함께한 지 1년입니다! 프로젝트를 독립적으로 유지하는 사람들을 만나보세요.`,toastVersionUpdate:`v{{version}}로 업데이트되었습니다. Bambuddy는 후원자 덕분에 무료로 유지됩니다.`,toastBusiness:`프린터 {{count}}대에서 Bambuddy를 운영 중이신가요? 팀을 위한 지원 플랜이 있습니다. 우선 수정, 인보이스 발행, 메인테이너와의 직접 소통을 제공합니다.`,businessCta:`비즈니스용 Bambuddy`,businessTitle:`비즈니스용 Bambuddy`,businessTagline:`프린터 {{count}}대를 운영 중입니다. 팀과 프린트 팜을 위한 우선 지원, 상용 라이선스, 인보이스 발행을 제공합니다.`},library:{title:`필라멘트 라이브러리`,addFilament:`필라멘트 추가`,editFilament:`필라멘트 편집`,deleteFilament:`필라멘트 삭제`,vendor:`제조사`,material:`재료`,color:`색상`,kFactor:`K 계수`,temperature:`온도`,noFilaments:`라이브러리에 필라멘트 없음`,deleteConfirm:`이 필라멘트를 삭제하시겠습니까?`,importFromPrinter:`프린터에서 가져오기`,exportToFile:`파일로 내보내기`,runWithPipeline:{actionLabel:`파이프라인으로 실행`,noPermission:`파이프라인을 실행할 권한이 없습니다`,modalTitle:`파이프라인으로 실행`,confirmTitle:`실행 확인`,confirmIntro:`사전 점검에서 이 실행과 관련된 문제를 발견했습니다`,sourceHint:`소스`,pipelineHint:`파이프라인`,targetHint:`대상`,pipelineListAria:`사용 가능한 파이프라인`,runAnyway:`그래도 실행`,loading:`불러오는 중…`,empty:`저장된 파이프라인이 없습니다. 슬라이스 대화상자를 열고 "파이프라인으로 저장"을 클릭하여 생성하세요.`,noTarget:`대상 프린터가 설정되지 않음`,noTargetMessage:`이 파이프라인에는 대상 프린터가 없습니다. 설정에서 열어 선택하세요.`,copies:`사본 수`,copiesHint:`최대 {{n}}`,classTarget:`임의의 {{model}}`,toast:{started:`파이프라인 실행 시작됨`,failed:`실행을 시작할 수 없습니다`},issue:{printerNotSet:`이 파이프라인에 대상 프린터가 설정되어 있지 않습니다.`,printerNotFound:`대상 프린터가 더 이상 존재하지 않습니다.`,printerDisabled:`대상 프린터가 비활성화되어 있습니다.`,printerOffline:`대상 프린터가 오프라인입니다.`,filamentType:`필라멘트 슬롯 {{slot}}: 예상 {{expected}}, AMS 실제 {{actual}}`,filamentColor:`필라멘트 슬롯 {{slot}}: 색상이 다릅니다 (예상 {{expected}}, AMS {{actual}})`,amsSlotMissing:`AMS 슬롯 {{slot}}이(가) 이 프린터에서 사용 불가`,filamentUnverified:`필라멘트 슬롯 {{slot}}은(는) 클라우드/표준 프리셋이며 정적으로 검증할 수 없습니다.`,noClassMatches:`이 설치에서 파이프라인의 대상 모델 클래스({{expected}})와 일치하는 프린터가 없습니다.`,classNotSet:`파이프라인 대상이 프린터 클래스로 설정되었지만 모델이 선택되지 않았습니다.`}}},slice:{title:`모델 슬라이싱`,action:`슬라이싱`,slicing:`슬라이싱 중…`,printer:`프린터 프로필`,process:`프로세스 프로필`,filament:`필라멘트 프로필`,filamentSlot:`필라멘트 {{index}} ({{type}})`,selectPreset:`— 프리셋 선택 —`,loadingPresets:`프리셋 불러오는 중…`,analyzingPlateFilaments:`플레이트 필라멘트 분석 중…`,analyzingPlateFilamentsHint:`이 플레이트가 사용하는 AMS 슬롯을 확인하기 위해 미리보기 슬라이싱을 실행합니다. 캐시 후에는 재오픈이 즉각적입니다.`,previewToast:`{{name}} 분석 중 — {{elapsed}}`,previewWithProgress:`{{name}} 분석 중 — {{stage}} ({{percent}}%) — {{elapsed}}`,notUsedByPlate:`— 이 플레이트에서 사용되지 않음`,noPresetsForSlot:`사용 가능한 프리셋 없음`,presetsLoadFailed:`프리셋 불러오기 실패. 먼저 설정 → 프로필에서 가져오세요.`,refreshPresets:`새로 고침`,refreshPresetsTitle:`프리셋 새로 고침 — 최신 클라우드 및 번들 목록 가져오기 (Bambu Studio 또는 Bambu Handy에서 프리셋 삭제 후 사용)`,allPresetsRequired:`모든 프리셋을 선택해야 합니다`,useEmbedded:`파일에 포함된 설정 사용`,useEmbeddedHint:`위 프로필 대신 디자이너가 설정한 대로(벽, 내부 채움, 필라멘트) 슬라이싱합니다. 프린터가 파일과 일치하여 사용할 수 있습니다.`,designSettings:`디자이너 설정 유지`,designSettingsHint:`이 파일은 기본 프로파일에서 {{count}}개의 출력 설정을 변경합니다.`,designSettingsSelected:`{{total}}개 중 {{selected}}개 선택됨`,designSettingsPrinterCoupled:`프린터 전용`,designSettingsPrinterCoupledHint:`이 파일이 대상으로 한 프린터에 맞춘 값입니다. 사용 중인 프린터에서는 잘못되었거나 범위를 벗어날 수 있습니다.`,enqueuing:`슬라이싱 작업 제출 중…`,queued:`대기 중…`,failed:`슬라이싱 실패. 슬라이서 사이드카 로그를 확인하세요.`,startedToast:`백그라운드에서 {{name}} 슬라이싱 중…`,queuedToast:`대기 중: {{name}} — {{elapsed}}`,runningToast:`{{name}} 슬라이싱 중 — {{elapsed}}`,runningWithProgress:`{{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,completedToast:`{{name}} 슬라이싱 완료`,failedToast:`{{name}} 슬라이싱 실패: {{detail}}`,tier:{local:`가져온 것`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`표준`},cloud:{notAuthenticated:`클라우드 프리셋을 보려면 Bambu Cloud에 로그인하세요 (설정 → 프로필 → Bambu Cloud).`,expired:`Bambu Cloud 세션이 만료되었습니다 — 다시 로그인하여 클라우드 프리셋을 새로고침하세요.`,unreachable:`현재 Bambu Cloud에 연결할 수 없습니다. 로컬 및 표준 프리셋은 계속 작동합니다.`},orcaCloud:{notAuthenticated:`Orca 프리셋을 보려면 Orca Cloud (프로필 → Orca Cloud)에 로그인하세요.`,expired:`Orca Cloud 세션이 만료되었습니다 — Orca 프리셋을 새로고침하려면 다시 로그인하세요.`,unreachable:`Orca Cloud에 현재 연결할 수 없습니다. 다른 프리셋은 계속 작동합니다.`},actionAll:`{{count}}개 플레이트 모두 슬라이싱`,actionAllTitle:`모든 플레이트를 단일 다중 플레이트 출력으로 슬라이싱합니다 (단일 아카이브). 필라멘트 선택은 프로젝트가 정의하는 모든 슬롯을 포함합니다.`,allPlatesToggle:`{{count}}개 플레이트 모두 슬라이싱`,otherPrinters:`다른 프린터`,runningWithProgressMultiPlate:`플레이트 {{plateIndex}}/{{plateCount}} • {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,failedTitle:`슬라이싱 실패`,bedType:{label:`빌드 플레이트`,auto:`자동 (프로세스 프리셋 사용)`,coolPlate:`쿨 플레이트`,coolPlateSuperTack:`쿨 플레이트 슈퍼택`,engineering:`엔지니어링 플레이트`,highTemp:`고온 플레이트`,texturedPEI:`텍스처 PEI 플레이트`,smoothPEI:`매끄러운 PEI 플레이트`},pipelines:{label:`파이프라인`,applyAria:`파이프라인 적용`,applyPrompt:`파이프라인 적용…`,empty:`저장된 파이프라인이 없습니다`,saveButton:`파이프라인으로 저장`,saveTitle:`현재 네 개 슬롯의 선택을 재사용 가능한 파이프라인으로 저장합니다`,namePlaceholder:`파이프라인 이름`,nameAria:`새 파이프라인 이름`,toast:{applied:`"{{name}}" 적용됨`,saved:`파이프라인이 저장되었습니다`,saveFailed:`저장 실패`}}},spoolman:{title:`Spoolman 통합`,enabled:`Spoolman 활성화됨`,url:`Spoolman URL`,connected:`연결됨`,disconnected:`연결되지 않음`,testConnection:`연결 테스트`,sync:`동기화`,syncing:`동기화 중...`,lastSync:`마지막 동기화`,linkToSpoolman:`Spoolman에 연결`,openInSpoolman:`Spoolman에서 열기`,unlinkSpool:`스풀 연결 해제`,unlinkConfirmTitle:`스풀 할당 해제?`,unlinkConfirmMessage:`이 슬롯에서 스풀을 제거합니다. 스풀 데이터 자체는 변경되지 않습니다.`,selectSpool:`스풀 선택`,noUnlinkedSpools:`할당되지 않은 스풀 없음`,linkSuccess:`스풀이 성공적으로 할당되었습니다`,linkFailed:`스풀 할당 실패`,unlinkSuccess:`스풀이 성공적으로 할당 해제되었습니다`,unlinkFailed:`스풀 할당 해제 실패`,linkedSpool:`할당된 스풀`,spoolId:`스풀 ID`,fillSourceLabel:`(Spoolman)`,weight:`무게`,remaining:`남은 양`,disableWeightSync:`AMS 예상 무게 동기화 비활성화`,disableWeightSyncDesc:`AMS 추정치에서 남은 용량을 업데이트하지 않습니다. AMS 백분율 기반 추정 대신 Spoolman의 사용량 추적을 선호하는 경우 사용하세요. 새 스풀은 여전히 AMS 추정치를 초기 무게로 사용합니다.`,reportPartialUsage:`실패한 인쇄물에 대한 부분 사용량 보고`,reportPartialUsageDesc:`인쇄가 실패하거나 취소될 때 레이어 진행률을 기반으로 해당 시점까지 사용된 예상 필라멘트를 보고합니다.`},locations:{title:`보관 위치`,subtitle:`스풀의 선반, 서랍 등 물리적 보관 장소를 관리합니다`,add:`위치 추가`,addShort:`추가`,edit:`위치 편집`,name:`이름`,spools:`스풀`,empty:`아직 보관 위치가 없습니다. 첫 번째 선반이나 서랍을 만드세요.`,manage:`위치`,createPlaceholder:`예: 선반 A, 서랍 1`,nameRequired:`위치 이름은 필수입니다`,created:`위치가 생성되었습니다`,updated:`위치가 업데이트되었습니다`,deleted:`위치가 삭제되었습니다`,saveFailed:`위치 저장에 실패했습니다`,deleteFailed:`위치 삭제에 실패했습니다`,deleteBlocked:`삭제하기 전에 이 위치의 모든 스풀을 옮기세요`,confirmDelete:`"{{name}}"을(를) 삭제하시겠습니까?`,confirmDeleteMessage:`이 위치가 카탈로그에서 제거됩니다. 스풀을 먼저 옮겨야 합니다.`},inventory:{title:`스풀 재고`,addToInventory:`인벤토리에 추가`,addToInventoryPending:`추가 중...`,addToInventorySuccess:`스풀이 인벤토리에 추가됨`,addToInventoryFailed:`스풀을 인벤토리에 추가하지 못함`,unknownSpoolTitle:`새 필라멘트 감지됨`,unknownSpoolMessage:`{{location}}에서 알 수 없는 RFID 태그가 있는 스풀이 감지되었습니다. 지금 인벤토리에 추가하시겠습니까?`,unknownSpoolSlot:`슬롯`,bulk:{selectAllVisible:`표시된 항목 모두 선택`,selectRow:`행 선택`,selectGroup:`그룹 선택`,selectionCount:`{{count}}개 선택됨`,edit:`편집`,printLabels:`라벨 인쇄`,resetUsage:`사용량 재설정`,restore:`복원`,archive:`보관`,delete:`삭제`,clearSelection:`선택 해제`,editTitle:`스풀 일괄 편집`,editSubtitle:`선택한 {{count}}개의 스풀에 적용됩니다. 체크한 필드만 업데이트됩니다.`,editHint:`필드에 입력하면 업데이트할 항목으로 표시됩니다 — 체크된 행만 전송됩니다. 빈 필드는 스풀을 변경하지 않습니다 (필드 비우기는 개별 스풀에서만 가능).`,useCustom:`"{{value}}" 사용`,toggleField:`이 필드의 업데이트 전환`,changeCount:`{{count}}개의 필드가 업데이트됩니다.`,applyPending:`적용 중...`,applyButton:`{{count}}개에 적용`,deleteTitle:`선택한 스풀 삭제`,archiveTitle:`선택한 스풀 보관`,restoreTitle:`선택한 스풀 복원`,resetUsageTitle:`선택한 스풀의 사용량 재설정`,deleteMessage:`{{count}}개의 스풀을 영구적으로 삭제하시겠습니까? 되돌릴 수 없습니다.`,archiveMessage:`{{count}}개의 스풀을 보관하시겠습니까? 나중에 복원할 수 있습니다.`,restoreMessage:`{{count}}개의 보관된 스풀을 복원하시겠습니까?`,resetUsageMessage:`{{count}}개의 스풀에서 "총 사용량" 카운터를 재설정하시겠습니까? 남은 무게는 보존됩니다.`,updateSuccess:`{{count}}개의 스풀 업데이트됨`,updateFailed:`일괄 업데이트 실패`,updatePartial:`{{ok}}개 업데이트, {{failed}}개 실패`,updateAllFailed:`{{count}}개의 업데이트가 모두 실패했습니다 — 재시도를 위해 선택이 유지됩니다`,deleteSuccess:`{{count}}개의 스풀 삭제됨`,deleteFailed:`일괄 삭제 실패`,deletePartial:`{{ok}}개 삭제, {{failed}}개 실패`,deleteAllFailed:`{{count}}개의 삭제가 모두 실패했습니다 — 재시도를 위해 선택이 유지됩니다`,archiveSuccess:`{{count}}개의 스풀 보관됨`,archiveFailed:`일괄 보관 실패`,archivePartial:`{{ok}}개 보관, {{failed}}개 실패`,archiveAllFailed:`{{count}}개의 보관이 모두 실패했습니다 — 재시도를 위해 선택이 유지됩니다`,restoreSuccess:`{{count}}개의 스풀 복원됨`,restoreFailed:`일괄 복원 실패`,restorePartial:`{{ok}}개 복원, {{failed}}개 실패`,restoreAllFailed:`{{count}}개의 복원이 모두 실패했습니다 — 재시도를 위해 선택이 유지됩니다`,invalidHex:`16진수 6자(RRGGBB) 또는 8자(RRGGBBAA)를 입력하세요. 그렇지 않으면 필드가 적용되지 않습니다.`},spoolmanMixedContentTitle:`HTTPS에서 Spoolman을 불러올 수 없음 — 브라우저가 혼합 콘텐츠를 차단함`,spoolmanMixedContentBody:`Bambuddy가 HTTPS로 서비스되고 있지만 Spoolman URL은 여전히 HTTP입니다. 브라우저는 보안상 혼합 콘텐츠를 차단하므로 내장된 Spoolman UI가 렌더링되지 않습니다. 이 기능이 작동하려면 Spoolman이 HTTPS로 접근 가능해야 합니다.`,spoolmanMixedContentFixReverseProxy:`Spoolman을 Bambuddy와 같은 리버스 프록시(Traefik / Nginx / Caddy) 뒤에 HTTPS로 배치한 다음 설정에서 Spoolman URL을 새 HTTPS 주소로 업데이트하세요.`,spoolmanMixedContentFixOpenNewTab:`임시 방편으로 HTTP로 새 브라우저 탭에서 Spoolman을 여세요 — 혼합 콘텐츠 규칙은 내장 프레임에만 적용되므로 독립 탭은 여전히 작동합니다.`,spoolmanOpenInNewTab:`새 탭에서 Spoolman 열기`,labels:{title:`스풀 라벨 인쇄`,selectedCount:`{{count}}개 선택됨`,pickSpools:`라벨을 인쇄할 스풀 선택:`,monochrome:`흑백 (흑백 프린터)`,monochromeHint:`색상 견본을 제거하고 텍스트를 넓힙니다`,searchPlaceholder:`이름, 브랜드 또는 #ID 검색`,filterByMaterial:`재료:`,allMaterials:`전체`,selectVisible:`보이는 모든 항목 선택 ({{count}})`,deselectVisible:`보이는 항목 선택 해제`,clearAll:`모두 초기화`,noSpoolsToShow:`표시할 스풀이 없습니다. 필터를 조정하고 다시 시도하세요.`,noMatches:`현재 검색 또는 필터와 일치하는 스풀이 없습니다.`,printOne:`이 스풀의 라벨 인쇄`,printLabels:`라벨 인쇄…`,bulkTitle:`현재 표시된 {{count}}개에서 라벨을 인쇄할 스풀 선택`,noSpoolsTitle:`라벨을 붙일 스풀 없음`,error:`라벨을 생성할 수 없습니다: {{msg}}`,templates:{box40x30:{label:`박스 라벨 (40 × 30 mm)`,hint:`페이지당 단일 라벨; 일반 DK/Brother 롤 크기, 필라멘트 가방 및 보관함 라벨에 적합.`},box:{label:`박스 라벨 (62 × 29 mm)`,hint:`페이지당 단일 라벨; Brother PT/QL 및 Dymo 소형 라벨에 맞는 크기.`},averyL7160:{label:`Avery L7160 — A4 시트 (38.1 × 63.5 mm × 21)`,hint:`EU 시트; A4 페이지당 21개 라벨.`},avery5160:{label:`Avery 5160 — US Letter 시트 (25.4 × 66.7 mm × 30)`,hint:`US 시트; Letter 페이지당 30개 라벨.`},amsHolderSmall:{label:`AMS 홀더 — 소형 (74 × 33 mm)`,hint:`페이지당 단일 레이블; MakerWorld 모델 752566 (AMS 필라멘트 레이블 홀더)의 인쇄 가능 레이블과 일치합니다.`},amsHolderLarge:{label:`AMS 홀더 — 대형 (75 × 55 mm)`,hint:`페이지당 단일 레이블; AMS 필라멘트 레이블 홀더의 카드스톡 삽입 변형에 맞습니다. 스와치, 브랜드, 재질, ID, QR 코드에 충분한 공간이 있습니다.`}},sortBy:{label:`정렬:`,id:`ID 순`,color:`색상 순`}},csv:{importButton:`CSV 가져오기`,exportButton:`CSV 내보내기`,modalTitle:`CSV에서 스풀 가져오기`,selectFile:`CSV 파일을 선택하거나 여기로 끌어다 놓으세요`,dragHint:`헤더: material(필수), brand, subtype, color_name, rgba, …`,parsing:`파일을 읽는 중…`,previewError:`CSV 파일을 읽을 수 없습니다`,validCount:`유효 {{count}}개`,errorCount:`오류 {{count}}개`,skippedCount:`건너뜀 {{count}}개`,colRow:`행`,colStatus:`상태`,colColor:`색상`,colorResolved:`카탈로그에서 색상 채움`,colorCrossMaterial:`다른 재료에서 색상을 가져옴 — 카탈로그에 정확히 일치하는 항목 없음`,duplicateExisting:`이 재료, 브랜드, 색상의 스풀이 이미 존재합니다 — 그래도 새 스풀로 가져옵니다`,spoolmanHint:`Spoolman 모드에서는 Spoolman의 기본 CSV 가져오기/내보내기를 사용하세요.`,importValidRows:`유효한 {{count}}개 행 가져오기`,noValidRows:`유효한 행 없음`,importing:`가져오는 중…`,importSuccess:`{{count}}개 스풀을 가져왔습니다`,importError:`가져오기 실패`,exportError:`내보내기 실패`},addSpool:`스풀 추가`,editSpool:`스풀 편집`,copySpool:`스풀 복사`,material:`재료`,selectMaterial:`재료 선택...`,subtype:`하위 유형`,brand:`브랜드`,searchBrand:`브랜드 검색...`,useCustomBrand:`"{{brand}}" 사용`,useCustomMaterial:`사용자 지정 재료 사용: {{material}}`,suggestedOptions:`추천`,allOptions:`전체`,colorName:`색상 이름`,colorNamePlaceholder:`제이드 화이트, 파이어 레드...`,color:`색상`,hexColor:`16진수 색상`,pickColor:`사용자 지정 색상 선택`,labelWeight:`라벨 무게`,coreWeight:`빈 스풀 무게`,searchSpoolWeight:`스풀 무게 검색...`,weightUsed:`사용됨`,currentWeight:`남은 무게`,measuredWeight:`측정된 무게`,spoolName:`스풀`,costPerKg:`kg당 비용`,storageLocation:`보관 위치`,storageLocationPlaceholder:`예: 선반 A, 서랍 1`,openInInventory:`재고에서 열기`,measuredWeightError:`측정된 무게는 {{min}}g과 {{max}}g 사이여야 합니다.`,slicerFilament:`슬라이서 필라멘트`,slicerFilamentName:`슬라이서 프리셋 이름`,slicerPreset:`슬라이서 프리셋`,searchPresets:`필라멘트 프리셋 검색...`,selectedPreset:`선택됨`,noPresetsFound:`프리셋을 찾을 수 없음`,tempOverrides:`온도 재정의`,note:`메모`,notePlaceholder:`이 스풀에 대한 추가 메모...`,category:`카테고리`,categoryPlaceholder:`예: 생산, 프로토타입, 고객 A`,categoryNone:`미분류`,lowStockThresholdOverride:`재고 부족 임계값 (이 스풀)`,lowStockThresholdOverrideHelp:`전역 임계값({{global}}%)을 사용하려면 비워두세요.`,clearRfid:`RFID 태그 초기화`,rfidCleared:`RFID 태그가 초기화되었습니다`,archive:`보관`,restore:`복원`,noSpools:`아직 스풀이 없습니다. 첫 번째 스풀을 추가하여 시작하세요.`,noAvailableSpools:`사용 가능한 스풀이 없습니다. 재고에 스풀을 추가하거나 먼저 다른 슬롯에서 해제하세요.`,kProfiles:`K-프로필`,addKProfile:`K-프로필 추가`,assignSpool:`스풀 할당`,unassignSpool:`할당 해제`,assignSuccess:`스풀 할당 및 AMS 슬롯 구성됨`,assignPendingInsert:`할당됨. 스풀을 삽입하면 슬롯이 구성됩니다.`,assignFailed:`스풀 할당 실패`,selectSpool:`이 슬롯에 할당할 스풀 선택`,assigned:`할당됨`,assigning:`할당 중...`,searchSpools:`스풀 검색...`,showAllSpools:`모든 스풀 표시`,spoolmanSpools:`Spoolman 스풀`,allMaterials:`모든 재료`,filterByBrand:`브랜드로 필터...`,showArchived:`보관된 항목 표시`,quickAdd:`빠른 추가 (재고)`,quantity:`수량`,stock:`재고`,configured:`구성됨`,spoolsCreated:`{{count}}개 스풀 생성됨`,spoolsPartiallyCreated:`{{total}}개 중 {{created}}개 스풀 생성됨 (일부 실패)`,spoolCreated:`스풀 생성됨`,spoolUpdated:`스풀 업데이트됨`,spoolDeleted:`스풀 삭제됨`,deepLinkSpoolNotFound:`스풀을 찾을 수 없음`,deepLinkFetchFailed:`스풀을 불러올 수 없음 — 다시 시도하세요`,spoolArchived:`스풀 보관됨`,spoolRestored:`스풀 복원됨`,kProfileSaveFailed:`K-프로필 설정을 저장할 수 없습니다`,syncWeightSpoolNotFound:`스풀을 찾을 수 없음 — 삭제되었을 수 있습니다`,syncWeightSpoolmanUnreachable:`Spoolman에 연결할 수 없음 — 나중에 다시 시도하세요`,syncWeightFailed:`무게 동기화 실패`,spoolmanUnreachable:`Spoolman에 연결할 수 없습니다 — 나중에 다시 시도하세요`,deleteSpoolNotFound:`스풀을 찾을 수 없음 — 이미 삭제되었을 수 있습니다`,deleteFailed:`스풀 삭제 실패`,archiveSpoolNotFound:`스풀을 찾을 수 없음 — 이미 삭제되었을 수 있습니다`,archiveFailed:`스풀 보관 실패`,restoreSpoolNotFound:`스풀을 찾을 수 없음 — 이미 삭제되었을 수 있습니다`,restoreFailed:`스풀 복원 실패`,saveFailed:`변경 사항 저장 실패`,tagClearFailed:`태그 초기화 실패`,deleteConfirm:`이 스풀을 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.`,archiveConfirm:`이 스풀을 보관하시겠습니까?`,advancedSettings:`고급 설정`,filamentInfoTab:`필라멘트 정보`,paProfileTab:`PA 프로필`,filamentInfo:`필라멘트`,additional:`추가`,loadingPresets:`클라우드 프리셋 불러오는 중...`,cloudConnected:`클라우드 연결됨`,cloudNotConnected:`클라우드 연결되지 않음 (기본값 사용)`,recentColors:`최근`,searchColors:`색상 검색...`,searchResults:`검색 결과`,allColors:`모든 색상`,commonColors:`일반 색상`,showLess:`간략히 보기`,showAll:`모두 보기`,noColorsFound:`검색과 일치하는 색상 없음`,noResults:`일치하는 항목 없음`,extraColorsLabel:`추가 색상`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`2~8개의 16진수 색상값을 쉼표로 구분하여 붙여넣으세요. 그라데이션으로 렌더링됩니다.`,extraColorsInvalid:`유효하지 않은 16진수 무시됨: {{tokens}}`,colorEffectLabel:`효과`,colorEffect:{none:`없음`,sparkle:`스파클`,wood:`우드`,marble:`마블`,glow:`글로우`,matte:`매트`,silk:`실크`,galaxy:`갤럭시`,rainbow:`레인보우`,metal:`메탈`,translucent:`반투명`,gradient:`그라데이션`,dualColor:`듀얼 컬러`,triColor:`트리 컬러`,multicolor:`멀티컬러`},selectMaterialFirst:`먼저 필라멘트 정보 탭에서 재료를 선택해 주세요.`,noPrintersConfigured:`구성된 프린터 없음. PA 프로필을 사용하려면 프린터를 추가하세요.`,matchingFilter:`일치`,anyBrand:`모든 브랜드`,anyVariant:`모든 변형`,autoSelect:`자동 선택`,matches:`일치`,match:`일치`,noMatches:`일치 없음`,connected:`연결됨`,offline:`오프라인`,printerOffline:`프린터가 오프라인입니다. 연결하여 보정 프로필을 확인하세요.`,noKProfilesMatch:`선택한 필라멘트와 일치하는 K-프로필이 없습니다.`,leftNozzle:`왼쪽 노즐`,rightNozzle:`오른쪽 노즐`,profilesSelected:`보정 프로필 선택됨`,totalInventory:`총 재고`,totalConsumed:`총 소비량`,byMaterial:`재료별`,inPrinter:`프린터 내`,lowStock:`재고 부족`,sinceTracking:`추적 시작 이후`,loadedInAms:`AMS/외부에 장착됨`,remaining:`남은 양`,weightCheck:`무게 확인`,lastWeighed:`마지막 계량`,neverWeighed:`계량 기록 없음`,search:`스풀 검색...`,showing:`표시 중`,to:`~`,of:`/`,show:`표시`,spools:`스풀`,spool:`스풀`,page:`페이지`,noSpoolsMatch:`결과를 찾을 수 없음`,noSpoolsMatchDesc:`검색 또는 필터를 조정하여 원하는 항목을 찾아보세요.`,active:`활성`,archived:`보관됨`,all:`전체`,used:`사용됨`,new:`새것`,clearFilters:`필터 초기화`,table:`테이블`,cards:`카드`,net:`순`,groupSimilar:`그룹화`,groupedSpools:`동일한 스풀 {{count}}개`,groupedRows:`행`,columns:`열`,configureColumns:`열 구성`,configureColumnsDesc:`드래그하여 열 순서를 변경하거나 화살표를 사용하세요. 눈 아이콘으로 표시 여부를 전환합니다.`,visible:`표시됨`,reset:`초기화`,cancel:`취소`,applyChanges:`변경 사항 적용`,moveUp:`위로 이동`,moveDown:`아래로 이동`,hideColumn:`열 숨기기`,showColumn:`열 표시`,linkToSpool:`스풀에 연결`,tagLinked:`태그가 스풀에 연결됨`,tagLinkFailed:`태그 연결 실패`,tagAlreadyLinked:`태그가 이미 다른 스풀에 연결됨`,unknownTag:`알 수 없는 RFID 태그 감지됨`,usageHistory:`사용 기록`,noUsageHistory:`사용 기록 없음`,printName:`인쇄 이름`,weightConsumed:`소비 무게`,clearHistory:`초기화`,historyCleared:`사용 기록 초기화됨`,fillSourceLabel:`(재고)`,lowStockThresholdError:`임계값은 0.1에서 99.9 사이여야 합니다`,assignMismatchTitle:`재료 불일치`,assignMismatchMessage:`선택한 스풀 재료 "{{spoolMaterial}}"이(가) {{location}}의 트레이 재료 "{{trayMaterial}}"과(와) 일치하지 않습니다. 그래도 할당하시겠습니까?`,assignMismatchConfirm:`그래도 할당`,assignPartialMismatchMessage:`스풀 재료 "{{spoolMaterial}}"이(가) {{location}}의 "{{trayMaterial}}"과(와) 유사하지만 정확히 일치하지 않습니다. 계속하시겠습니까?`,assignProfileMismatchMessage:`스풀 프로필 "{{spoolProfile}}"이(가) {{location}}의 트레이 프로필 "{{trayProfile}}"과(와) 일치하지 않습니다. 계속하시겠습니까?`,assignReconfigureNote:`AMS 슬롯이 스풀의 프로필을 사용하도록 재구성됩니다.`,spoolmanFilamentCatalog:`Spoolman 필라멘트 카탈로그`,pickFromSpoolmanCatalog:`Spoolman 카탈로그에서 선택…`,spoolmanFilamentSelected:`Spoolman 카탈로그에서 필라멘트 선택됨`,spoolmanFilamentUnlinked:`필라멘트 카탈로그 연결 해제됨`,noSpoolmanFilaments:`Spoolman 카탈로그에서 필라멘트를 찾을 수 없음`,spoolmanFilamentColorSwatch:`필라멘트 색상`,spoolWeightManagedBySpoolman:`빈 스풀 무게는 Spoolman에서 필라멘트 유형별로 관리됩니다`,spoolmanCatalogLoadFailed:`Spoolman 필라멘트 카탈로그 불러오기 실패`,subtitle:`스풀 관리`,storageLocationNone:`위치 미설정`,resetConsumedCounter:`카운터 초기화`,resetConsumedCounterTooltip:`이 스풀의 소비된 그램 카운터를 0으로 초기화합니다. 잔여 무게는 변경되지 않습니다.`,resetConsumedCounterConfirm:`이 스풀의 소비된 그램 카운터를 0으로 초기화하시겠습니까? 이후 인쇄는 처음부터 추적됩니다. 스풀 자체, 잔여 무게 계산 및 설정은 변경되지 않습니다.`,resetAllConsumedCounters:`모든 카운터 초기화`,resetAllConsumedCountersTooltip:`모든 스풀의 소비된 그램 카운터를 0으로 초기화합니다. 잔여 무게는 변경되지 않습니다.`,resetAllConsumedCountersConfirm:`{{count}}개 스풀(아카이브 포함)의 소비된 그램 카운터를 모두 0으로 초기화하시겠습니까? 이는 "총 소비량" 통계를 지워 이후 인쇄가 처음부터 추적되도록 합니다. 스풀과 잔여 무게는 변경되지 않습니다.`,consumedCounterReset:`카운터가 초기화되었습니다`,allConsumedCountersReset:`{{count}}개 스풀의 카운터가 초기화되었습니다`,resetConsumedCounterFailed:`카운터 초기화 실패`},timelapse:{title:`타임랩스`,create:`타임랩스 만들기`,download:`다운로드`,delete:`삭제`,preview:`미리보기`,frameRate:`프레임 속도`,quality:`품질`,processing:`처리 중...`,noTimelapses:`사용 가능한 타임랩스 없음`},ams:{title:`AMS`,slot:`슬롯`,empty:`비어 있음`,emptySlot:`빈 슬롯`,unknown:`알 수 없음`,humidity:`습도`,temperature:`온도`,filamentType:`필라멘트 유형`,filamentColor:`색상`,remaining:`남은 양`,history:`AMS 기록`,noHistory:`기록 없음`,configureSlot:`슬롯 구성`,externalSpool:`외부 스풀`,profile:`프로필`,kFactor:`K 계수`,fill:`채우기`,configure:`구성`,used:`사용됨`,remainingUnit:`남음`,slotEmpty:`비어 있음`,slotUnconfigured:`?`,emptySlotReset:`필라멘트가 할당되지 않음`},printModal:{selectPrinter:`프린터 선택`,selectPlate:`플레이트 선택`,filamentMapping:`필라멘트 매핑`,plateN:`플레이트 {{n}}`,plateFilamentsUnreadable:`선택한 플레이트의 필라멘트를 읽을 수 없어 매핑할 수 없습니다. 해당 플레이트를 선택 해제하면 나머지를 대기열에 추가할 수 있습니다.`,totalCost:`총 비용:`,slotRemainingShort:` - {{grams}}g 남음`,printSettings:`인쇄 설정`,bedLeveling:`베드 레벨링`,flowCalibration:`유량 보정`,vibrationCalibration:`진동 보정`,layerInspection:`첫 번째 레이어 검사`,timelapse:`타임랩스`,cancel:`취소`,noPrintersAvailable:`사용 가능한 프린터 없음`,printerBusy:`프린터가 사용 중입니다`,printerOffline:`프린터가 오프라인입니다`,sameTypeDifferentColor:`같은 유형, 다른 색상`,filamentTypeNotLoaded:`필라멘트 유형이 장착되지 않음`,whenToPrint:`인쇄 시점`,asap:`최대한 빨리`,queue:`대기열`,schedule:`예약`,dateTime:`날짜 및 시간`,invalidDateTime:`유효한 날짜와 시간을 입력하세요`,openCalendar:`달력 열기`,requireManualStart:`수동 시작 필요`,requirePreviousSuccess:`이전 인쇄가 성공한 경우에만 시작`,autoOffAfter:`완료 후 프린터 전원 끄기`,helpAsap:`인쇄가 대기열 맨 앞에 추가되고 적합한 프린터가 유휴 상태가 되는 즉시 시작됩니다.`,helpSchedule:`프린터가 유휴 상태이면 예약된 시간에 인쇄가 시작됩니다. 사용 중이면 프린터가 사용 가능해질 때까지 대기합니다.`,helpQueue:`인쇄가 대기열 맨 뒤에 추가됩니다.`,leftNozzle:`L`,rightNozzle:`R`,leftNozzleTooltip:`왼쪽 노즐`,rightNozzleTooltip:`오른쪽 노즐`,filamentOverride:`필라멘트 재정의`,filamentOverrideHint:`선택적으로 모델 기반 할당을 위해 필라멘트를 재정의합니다. 스케줄러는 원래 3MF 값 대신 선택한 필라멘트와 일치시킵니다.`,originalFilament:`원래`,overrideWith:`재정의`,resetToOriginal:`원래대로 초기화`,insufficientFilamentTitle:`필라멘트 부족`,waitingForAmsStatus:`{{printer}}의 AMS 상태를 기다리는 중…`,insufficientFilamentMessage:`일부 할당된 스풀에 이 인쇄에 필요한 것보다 적은 필라멘트가 남아 있습니다:`,insufficientFilamentLine:`{{printer}} - {{slot}}: {{required}}g 필요, {{remaining}}g 남음`,printAnyway:`그래도 인쇄`,forceColorMatch:`색상 일치 강제`,staggerPrinterStarts:`프린터 시작 분산`,staggerGroupSize:`그룹 크기`,staggerInterval:`간격 (분)`,staggerPreview:`{{printers}}대 프린터 → {{size}}대씩 {{groups}}개 그룹, 매 {{interval}}분마다 시작`,staggerLastGroup:`마지막 그룹: {{count}}`,staggerTotal:`합계: {{minutes}}분`,staggerToPrinters:`{{count}}대 프린터에 분산`,gcodeInjection:`자동 인쇄 G-code 삽입`},backup:{includesEncryptionKey:`로컬 백업에는 MFA 암호화 키 파일(DATA_DIR/.mfa_encryption_key)이 포함되어 백업 ZIP이 자체 완결됩니다. ZIP 파일을 민감하게 취급하세요 — 파일을 가진 누구나 내부에 저장된 OIDC 클라이언트 비밀과 TOTP 비밀을 복호화할 수 있습니다.`,title:`백업 및 복원`,createBackup:`백업 만들기`,restoreBackup:`백업 복원`,restoreDescription:`백업 파일에서 모든 데이터 교체`,downloadBackup:`백업 다운로드`,uploadBackup:`백업 업로드`,lastBackup:`마지막 백업`,autoBackup:`자동 백업`,backupNow:`지금 백업`,restoreWarning:`경고: 백업을 복원하면 현재 모든 데이터를 덮어씁니다.`,includeArchives:`아카이브 포함`,includeSettings:`설정 포함`,includeProfiles:`프로필 포함`,backupSuccess:`백업이 성공적으로 생성되었습니다`,restoreSuccess:`백업이 성공적으로 복원되었습니다`,backupFailed:`백업 실패`,restoreFailed:`복원 실패`,restoreNote:`복원 중 가상 프린터가 중지됩니다`,githubBackup:`Git 백업`,enabled:`활성화됨`,cloudLoginRequired:`Bambu 클라우드 로그인 필요. GitHub 백업을 활성화하려면 프로필 → 클라우드 프로필에서 로그인하세요.`,cloudLoginRequiredShort:`클라우드 로그인 필요`,githubDescription:`백업 및 버전 기록을 위해 비공개 GitHub 저장소에 프로필을 자동으로 동기화합니다.`,repositoryUrl:`저장소 URL`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`비보안 HTTP 허용`,allowInsecureHttpHint:`TLS가 없는 개인 네트워크의 자체 호스팅 인스턴스에 활성화`,personalAccessToken:`개인 액세스 토큰`,tokenSaved:`(저장됨)`,enterNewToken:`업데이트하려면 새 토큰 입력`,tokenHint:`콘텐츠 읽기/쓰기 권한이 있는 세분화된 토큰`,branch:`브랜치`,provider:`Git 제공자`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`수동만`,hourly:`매시간`,daily:`매일`,weekly:`매주`,includeInBackup:`백업에 포함`,kProfiles:`K-프로필`,kProfilesDescription:`연결된 프린터의 압력 전진 보정`,noPrintersConnected:`연결된 프린터 없음`,printersConnected:`{{total}}개 중 {{connected}}개 연결됨`,cloudProfiles:`클라우드 프로필`,cloudProfilesDescription:`Bambu 클라우드의 필라멘트, 프린터 및 프로세스 프리셋`,appSettings:`앱 설정`,appSettingsDescription:`Bambuddy 구성 (전체 데이터베이스)`,spoolInventory:`스풀 재고`,spoolInventoryDescription:`필라멘트 스풀, 사용 기록 및 비용 추적`,printArchives:`인쇄 아카이브`,printArchivesDescription:`인쇄 기록 메타데이터 (gcode/3MF 파일 제외)`,lastBackupAt:`마지막 백업:`,noBackupsYet:`아직 백업 없음`,next:`다음:`,startingBackup:`백업 시작 중...`,test:`테스트`,enableBackup:`백업 활성화`,testConnection:`연결 테스트`,enterRepoUrl:`저장소 URL 입력`,enterRepoAndToken:`저장소 URL 및 액세스 토큰 입력`,repoRequired:`저장소 URL이 필요합니다`,tokenRequired:`액세스 토큰이 필요합니다`,githubBackupEnabled:`GitHub 백업 활성화됨`,tokenUpdated:`토큰 업데이트됨`,settingsSaved:`설정 저장됨`,failedToSave:`저장 실패: {{message}}`,backupCompleteFiles:`백업 완료 - {{count}}개 파일 업데이트됨`,backupSkippedNoChanges:`변경 사항 없어 백업 건너뜀`,backupFailed2:`백업 실패: {{message}}`,clearedLogs:`{{count}}개 로그 초기화됨`,failedToClearLogs:`로그 초기화 실패: {{message}}`,history:`기록`,clear:`초기화`,date:`날짜`,status:`상태`,commit:`커밋`,localBackup:`로컬 백업`,localBackupDescription:`데이터베이스, 아카이브, 업로드 및 모든 파일을 포함한 Bambuddy 데이터의 전체 백업을 만듭니다.`,downloadBackupLabel:`백업 다운로드`,completeBackupZip:`전체 백업: 데이터베이스 + 모든 파일 (ZIP)`,download:`다운로드`,preparingBackup:`백업 준비 중...`,creatingArchive:`백업 아카이브 생성 중... 대용량 아카이브의 경우 시간이 걸릴 수 있습니다.`,downloadingFile:`백업 파일 다운로드 중...`,backupDownloaded:`백업이 성공적으로 다운로드되었습니다`,failedToCreateBackup:`백업 생성 실패: {{message}}`,restore:`복원`,restoreReplacesAll:`복원은 모든 데이터를 교체합니다.`,restoreReplacesAllDetail:`현재 데이터베이스와 파일이 완전히 교체됩니다. 복원 후 재시작이 필요합니다.`,restoreConfirmTitle:`백업 복원`,restoreConfirmMessage:`"{{filename}}"에서 복원하시겠습니까? 현재 데이터베이스와 모든 파일이 완전히 교체됩니다. 복원 후 애플리케이션을 재시작해야 합니다.`,restoreConfirmButton:`백업 복원`,uploadingFile:`백업 파일 업로드 중...`,backupRestoredRestart:`백업 복원됨. Bambuddy를 재시작하세요.`,failedToRestore:`백업 복원 실패. 파일 형식을 확인하세요.`,reloadNow:`지금 새로고침`,creatingBackup:`백업 만드는 중`,restoringBackup:`백업 복원 중`,preparing:`준비 중...`,processing:`처리 중...`,doNotClosePage:`이 페이지를 닫거나 다른 곳으로 이동하지 마세요. 대용량 백업의 경우 몇 분이 걸릴 수 있습니다.`,restoring:`복원 중...`,restoreComplete:`복원 완료`,restoreFailed2:`복원 실패`,importSettings:`백업 파일에서 설정 가져오기`,pleaseWaitRestoring:`데이터가 복원되는 동안 기다려 주세요`,selectBackupFile:`백업 파일 클릭하여 선택 (.json 또는 .zip)`,duplicateHandling:`중복 처리 방법:`,matchPrinters:`프린터`,matchPrintersBy:`일련번호로 일치`,matchSmartPlugs:`스마트 플러그`,matchSmartPlugsBy:`IP 주소로 일치`,matchNotificationProviders:`알림 제공자`,matchNotificationProvidersBy:`이름으로 일치`,matchFilaments:`필라멘트`,matchFilamentsBy:`이름 + 유형 + 브랜드로 일치`,matchArchives:`아카이브`,matchArchivesBy:`콘텐츠 해시로 일치 (항상 건너뜀)`,matchPendingUploads:`대기 중인 업로드`,matchPendingUploadsBy:`파일 이름으로 일치`,matchSettingsTemplates:`설정 및 템플릿`,matchSettingsTemplatesBy:`항상 덮어씀`,replaceExisting:`기존 데이터 교체`,keepExisting:`기존 데이터 유지`,overwriteDescription:`백업 데이터로 이미 존재하는 항목 덮어쓰기`,keepDescription:`아직 존재하지 않는 항목만 복원`,overwriteCaution:`주의:`,overwriteWarning:`덮어쓰기는 현재 구성을 백업 데이터로 교체합니다. 보안상 프린터 액세스 코드는 절대 덮어쓰지 않습니다.`,cancel:`취소`,processingBackup:`백업 파일 처리 중...`,itemsRestored:`복원된 항목`,itemsSkipped:`건너뛴 항목`,restored:`복원됨`,skippedAlreadyExist:`건너뜀 (이미 존재)`,filesCategory:`파일 (3MF, 썸네일 등)`,andMore:`...및 {{count}}개 더`,newApiKeysGenerated:`새 API 키 생성됨`,keysShownOnce:`이 키는 한 번만 표시됩니다. 지금 복사하세요!`,copy:`복사`,noDataFound:`백업 파일에서 복원할 데이터를 찾을 수 없습니다.`,close:`닫기`,scheduledBackup:`예약 백업`,scheduledBackupDescription:`일정에 따라 백업 스냅샷을 자동으로 생성합니다. 출력 디렉토리를 NAS 또는 외부 저장소에 마운트할 수 있습니다.`,frequency:`주기`,backupTime:`시간`,retention:`보존`,retentionDescription:`유지할 백업 수`,outputPath:`출력 경로`,outputPathPlaceholder:`기본값: {{path}}`,outputPathDescription:`기본 위치를 사용하려면 비워두세요`,runNow:`지금 실행`,backupFiles:`백업 파일`,noScheduledBackups:`아직 백업 없음`,deleteBackup:`삭제`,deleteBackupConfirm:`이 백업 파일을 삭제하시겠습니까?`,backupRunning:`백업 진행 중...`,scheduledBackupComplete:`백업이 성공적으로 완료되었습니다`,scheduledBackupFailed:`백업 실패`,nextBackup:`다음 백업`,backupSize:`크기`,localTimeHint:`현지 시간 ({{tz}})`,defaultPathLabel:`기본값:`,pathCheck:{title:`Bambuddy가 이 디렉터리에 쓸 수 없습니다`,howToFix:`해결 방법:`,sandboxed:`Bambuddy 서비스가 {{path}}에 쓸 수 없습니다. systemd 유닛이 ProtectSystem=strict로 실행되어 설치·데이터·로그 디렉터리를 제외한 모든 디렉터리가 서비스에서는 읽기 전용입니다. 사용자 셸에서는 쓸 수 있는 디렉터리라도 마찬가지입니다.`,read_only:`{{path}}이(가) 읽기 전용 파일 시스템에 있습니다.`,permission_denied:`Bambuddy에 {{path}} 쓰기 권한이 없습니다. 디렉터리 소유자와 권한을 확인하세요.`,no_space:`{{path}}이(가) 있는 파일 시스템에 남은 공간이 없습니다.`,not_a_directory:`{{path}}이(가) 존재하지만 디렉터리가 아닙니다.`,missing:`{{path}}이(가) 존재하지 않으며 생성할 수도 없습니다.`,error:`Bambuddy가 {{path}}에 쓸 수 없습니다.`,ephemeralTitle:`이 백업은 컨테이너를 다시 만들면 사라집니다`,container_ephemeral:`{{path}}은(는) 호스트가 아니라 Bambuddy 컨테이너 내부에 있습니다. 여기에 기록된 백업은 컨테이너를 재생성하면 사라집니다. 호스트의 디렉터리를 마운트하세요:`},categories:{settings:`설정`,notification_providers:`알림 제공자`,notification_templates:`알림 템플릿`,smart_plugs:`스마트 플러그`,printers:`프린터`,filaments:`필라멘트`,maintenance_types:`유지 관리 유형`,archives:`아카이브`,projects:`프로젝트`,pending_uploads:`대기 중인 업로드`,external_links:`외부 링크`,api_keys:`API 키`},repoIsPrivate:`저장소가 비공개입니다 — 안전하게 백업할 수 있습니다.`,repoIsPublicWarning:`저장소가 공개입니다. Bambuddy 백업에는 MQTT 자격증명, Home Assistant 토큰, Prometheus 토큰, Bambu Cloud 이메일, K-프로파일을 통한 프린터 액세스 코드가 포함됩니다. 공급자 설정에서 저장소를 비공개로 변경할 때까지 저장이 차단됩니다.`,repoVisibilityUnknown:`저장소 공개 여부를 확인할 수 없습니다. Bambuddy는 비공개로 확인된 저장소에만 백업하며, 저장이 차단됩니다.`},tags:{title:`태그`,addTag:`태그 추가`,editTag:`태그 편집`,deleteTag:`태그 삭제`,tagName:`태그 이름`,tagColor:`태그 색상`,noTags:`태그 없음`,deleteConfirm:`이 태그를 삭제하시겠습니까?`,manageTags:`태그 관리`},uploadModal:{title:`3MF 파일 업로드`,dragDrop:`.3mf 파일을 여기에 드래그 앤 드롭`,or:`또는`,browseFiles:`파일 탐색`,extractionInfo:`프린터 모델은 3MF 파일 메타데이터에서 자동으로 추출됩니다.`,uploaded:`업로드됨`,failed:`실패`,uploading:`업로드 중...`,upload:`업로드`,uploadFailed:`업로드 실패`},editArchive:{title:`아카이브 편집`,name:`이름`,namePlaceholder:`인쇄 이름`,printer:`프린터`,noPrinter:`프린터 없음`,project:`프로젝트`,noProject:`프로젝트 없음`,itemsPrinted:`인쇄된 항목`,itemsPrintedHelp:`이 인쇄 작업에서 생산된 항목 수`,notes:`메모`,notesPlaceholder:`이 인쇄에 대한 메모 추가...`,externalLink:`외부 링크`,externalLinkPlaceholder:`https://printables.com/model/...`,externalLinkHelp:`Printables, Thingiverse 또는 다른 출처 링크`,tags:`태그`,tagsPlaceholder:`태그 추가...`,addMoreTags:`더 많은 태그 추가...`,matchingTags:`"{{query}}"와 일치`,existingTags:`기존 태그`,clickToAdd:`(클릭하여 추가)`,status:`상태`,failureReason:`실패 원인`,selectReason:`원인 선택...`,photos:`인쇄 결과 사진`,photosHelp:`+를 클릭하여 인쇄 결과 사진 추가`,printResult:`인쇄 결과`,saving:`저장 중...`,failureReasons:{adhesionFailure:`접착 실패`,spaghettiDetached:`스파게티 / 분리`,layerShift:`레이어 시프트`,cloggedNozzle:`노즐 막힘`,filamentRunout:`필라멘트 소진`,warping:`휨`,stringing:`스트링`,underExtrusion:`압출 부족`,powerFailure:`전원 실패`,userCancelled:`사용자 취소`,other:`기타`},statuses:{completed:`완료됨`,failed:`실패`,aborted:`취소됨`,printing:`인쇄 중`}},kProfiles:{title:`K-프로필`,noPrintersConfigured:`구성된 프린터 없음`,addPrinterInSettings:`K-프로필을 관리하려면 설정에서 프린터를 추가하세요`,noActivePrinters:`활성 프린터 없음`,enablePrinterConnection:`K-프로필을 보려면 프린터 연결을 활성화하세요`,loadingProfiles:`K-프로필 불러오는 중...`,printerOffline:`프린터 오프라인`,printerOfflineDesc:`선택한 프린터가 연결되지 않았습니다. 켜서 K-프로필을 확인하세요.`,noMatchingProfiles:`일치하는 프로필 없음`,noMatchingProfilesDesc:`검색 기준과 일치하는 프로필이 없습니다`,noKProfiles:`K-프로필 없음`,noKProfilesDesc:`{{diameter}}mm 노즐에 대한 압력 전진 프로필이 없습니다`,createFirstProfile:`첫 번째 프로필 만들기`,printer:`프린터`,nozzle:`노즐`,refresh:`새로고침`,addProfile:`프로필 추가`,export:`내보내기`,import:`가져오기`,select:`선택`,selectAll:`모두 선택`,delete:`삭제`,searchPlaceholder:`이름 또는 필라멘트로 검색...`,allExtruders:`모든 압출기`,leftOnly:`왼쪽만`,rightOnly:`오른쪽만`,allFlow:`모든 유량`,hfOnly:`HF만`,sOnly:`S만`,sortName:`정렬: 이름`,sortKValue:`정렬: K값`,sortFilament:`정렬: 필라멘트`,leftExtruder:`왼쪽 압출기`,rightExtruder:`오른쪽 압출기`,modal:{addTitle:`K-프로필 추가`,editTitle:`K-프로필 편집`,profileName:`프로필 이름`,profileNamePlaceholder:`내 PLA 프로필`,kValue:`K값`,kValuePlaceholder:`0.020`,kValueHelp:`일반 범위: PLA 0.01~0.06, PETG 0.02~0.10`,filament:`필라멘트`,selectFilament:`필라멘트 선택...`,noFilamentsHelp:`필라멘트를 찾을 수 없습니다. 먼저 Bambu Studio에서 K-프로필을 만드세요.`,flowType:`유량 유형`,highFlow:`고유량`,standard:`표준`,nozzleSize:`노즐 크기`,extruder:`압출기`,extruders:`압출기`,left:`왼쪽`,right:`오른쪽`,notes:`메모 (로컬 저장)`,notesPlaceholder:`이 프로필에 대한 메모 추가...`,notesHelp:`메모는 프린터가 아닌 Bambuddy에 저장됩니다`,syncing:`프린터와 동기화 중...`,savingExtruder:`압출기 {{current}}/{{total}}에 저장 중...`,pleaseWait:`기다려 주세요`},deleteConfirm:{title:`프로필 삭제`,cannotUndo:`이 작업은 취소할 수 없습니다`,message:`프린터에서 "{{name}}"을(를) 삭제하시겠습니까?`},bulkDelete:{title:`프로필 삭제`,cannotUndo:`이 작업은 취소할 수 없습니다`,message:`프린터에서 선택한 {{count}}개 프로필을 삭제하시겠습니까?`},toast:{profileSaved:`K-프로필 저장됨`,profilesSaved:`{{count}}개 압출기에 K-프로필 저장됨`,selectAtLeastOneExtruder:`적어도 하나의 압출기를 선택해 주세요`,profileDeleted:`K-프로필 삭제됨`,profilesDeleted:`{{count}}개 프로필 삭제됨`,exportedProfiles:`{{count}}개 프로필 내보냄`,importedProfiles:`{{total}}개 중 {{count}}개 프로필 가져옴`,noProfilesToExport:`내보낼 프로필 없음`,invalidFileFormat:`유효하지 않은 파일 형식`,failedToParseImport:`가져오기 파일 파싱 실패`,failedToSaveBatch:`K-프로필 저장 실패`,noteSaved:`메모 저장됨`,failedToSaveNote:`메모 저장 실패`},permission:{noRead:`프로필 새로고침 권한이 없습니다`,noCreate:`프로필 추가 권한이 없습니다`,noUpdate:`K-프로필 업데이트 권한이 없습니다`,noDelete:`K-프로필 삭제 권한이 없습니다`,noExport:`프로필 내보내기 권한이 없습니다`,noImport:`프로필 가져오기 권한이 없습니다`}},virtualPrinter:{title:`가상 프린터`,running:`실행 중`,stopped:`중지됨`,description:{default:`Bambu Studio 및 OrcaSlicer에 표시되는 가상 프린터를 활성화합니다. 이 프린터로 전송된 파일은 인쇄 없이 바로 아카이브됩니다.`,proxy:`실제 프린터로 슬라이서 트래픽을 릴레이하는 프록시를 활성화하여 모든 네트워크에서 원격 인쇄가 가능합니다.`},enable:{title:`가상 프린터 활성화`,visibleInSlicer:`슬라이서 검색에서 "Bambuddy"로 표시됨`,proxyingTo:`{{name}}으로 프록시 중`,notActive:`활성화되지 않음`},model:{title:`프린터 모델`,description:`에뮬레이션할 프린터 모델을 선택하세요.`,restartWarning:`모델 변경 시 가상 프린터가 재시작됩니다`},accessCode:{title:`액세스 코드`,isSet:`액세스 코드가 설정됨`,notSet:`액세스 코드가 설정되지 않음 - 활성화하려면 필요`,placeholder:`8자리 코드 입력`,placeholderChange:`변경하려면 새 코드 입력`,hint:`정확히 8자여야 합니다. 슬라이서가 인증하는 데 사용됩니다.`,charCount:`({{count}}/8)`,inheritedFromTarget:`대상 프린터에서 상속됨`,derivedFromTargetHint:`대상 프린터의 액세스 코드를 사용합니다. 브리지는 슬라이서 인증을 실제 프린터로 전달하므로 코드가 일치해야 합니다 — 변경하려면 프린터 설정에서 액세스 코드를 편집하세요.`,reveal:`액세스 코드 표시`,hide:`액세스 코드 숨기기`},targetPrinter:{title:`대상 프린터`,configured:`프록시 대상 구성됨`,notConfigured:`대상 프린터가 선택되지 않음 - 프록시 모드에 필요`,placeholder:`프린터 선택...`,hint:`슬라이서 트래픽을 프록시할 프린터를 선택하세요. 프린터는 LAN 모드여야 합니다.`,noPrinters:`구성된 프린터 없음. 프록시 모드를 사용하려면 먼저 프린터를 추가하세요.`},remoteInterface:{title:`네트워크 인터페이스 재정의`,configured:`인터페이스 재정의 활성`,optional:`선택사항 - 자동 감지된 IP가 잘못된 경우 사용 (예: 여러 NIC, Docker, VPN)`,placeholder:`자동 감지 (기본값)...`,hint:`SSDP를 통해 광고되고 TLS 인증서에 사용되는 IP 주소를 재정의합니다. Bambuddy에 여러 네트워크 인터페이스가 있을 때 유용합니다.`},mode:{title:`모드`,archive:`아카이브`,archiveDesc:`파일 즉시 아카이브`,review:`검토`,reviewDesc:`아카이브 전 검토`,queue:`대기열`,queueDesc:`아카이브 후 대기열 추가`,proxy:`프록시`,proxyDesc:`실제 프린터로 릴레이`},autoDispatch:{title:`자동 발송`,description:`대기열에 추가될 때 자동으로 인쇄를 시작합니다. 꺼져 있으면 수동 발송을 기다립니다.`},queueForceColorMatch:{title:`색상 일치 강제`,description:`정확한 필라멘트 유형과 색상이 장착되지 않은 프린터에는 발송을 거부합니다. 기본적으로 꺼져 있음 — 이 옵션 없이는 대기열이 모델 전용 매칭을 사용하여 잘못된 색상이 장착된 프린터를 선택할 수 있습니다.`},gcodeInjection:{title:`G-code 주입`,description:`설정에서 모델별로 구성한 G-code 스니펫을 이 가상 프린터의 작업에 적용합니다. 기본값은 꺼짐입니다.`},tailscaleDisabled:{title:`Tailscale 통합`,description:`이 가상 프린터가 Tailscale을 통해 노출되도록 표시하려면 활성화하세요. 슬라이서에 붙여넣을 IP를 알 수 있도록 호스트의 Tailscale 주소를 표시합니다. CA 가져오기 단계는 변경되지 않음 — 이 토글은 인증서에 영향을 미치지 않습니다.`},setupRequired:{title:`설정 필요`,description:`가상 프린터 기능이 작동하려면 추가 시스템 구성이 필요합니다. 여기에는 포트 포워딩, 방화벽 규칙 및 플랫폼별 설정이 포함됩니다.`,readGuide:`활성화 전에 설정 가이드를 읽으세요`},archiveNameSource:{title:`아카이브 이름 출처`,description:`가상 프린터를 통해 파일이 도착할 때 새 아카이브의 이름 지정 방법을 선택합니다. "메타데이터"는 3MF의 슬라이서 내장 제목을 사용합니다(기본값). "파일 이름"은 Bambu Studio가 FTP를 통해 전송한 파일 이름을 사용합니다. 참고: Bambu Studio는 3MF에 제목 필드가 있을 경우 "프린터로 보내기" 대화 상자에 입력한 이름을 해당 값으로 덮어쓰므로, 두 모드 모두 동일한 문자열이 표시되는 경우가 많습니다.`,metadata:`메타데이터`,filename:`파일 이름`},howItWorks:{title:`작동 방식`,step1:`같은 LAN에서 가상 프린터는 검색을 통해 슬라이서(Bambu Studio / OrcaSlicer)에 자동으로 나타납니다. 다른 네트워크에서는 IP 주소와 액세스 코드로 수동으로 추가하세요.`,step2:`아카이브, 검토, 대기열 모드에서 슬라이서의 "전송" 버튼을 사용하여 3MF 파일을 Bambuddy에 업로드하세요. 슬라이서는 "인쇄 성공"을 표시하지만 파일은 저장되고 인쇄되지 않습니다.`,step3:`프록시 모드에서 가상 프린터는 모든 트래픽을 실제 프린터로 릴레이합니다 — 직접 연결된 것처럼 즉시 인쇄가 시작됩니다.`},status:{title:`상태 세부 정보`,printerName:`프린터 이름`,model:`모델`,serialNumber:`일련 번호`,mode:`모드`,pendingFiles:`대기 중인 파일`,targetPrinter:`대상 프린터`,ftpPort:`FTP 포트`,mqttPort:`MQTT 포트`,ftpConnections:`FTP 연결`,mqttConnections:`MQTT 연결`},toast:{updated:`가상 프린터 설정 업데이트됨`,failedToUpdate:`설정 업데이트 실패`,copyFailed:`복사 실패 — 텍스트를 수동으로 선택하여 복사해 보세요`,accessCodeRequired:`먼저 액세스 코드를 설정해 주세요`,targetPrinterRequired:`먼저 대상 프린터를 선택해 주세요`,bindIpRequired:`먼저 바인드 IP를 설정해 주세요`,accessCodeEmpty:`액세스 코드는 비워둘 수 없습니다`,accessCodeLength:`액세스 코드는 정확히 8자여야 합니다`,targetCodeChangedRebind:`액세스 코드가 새 대상 프린터에 동기화되었습니다. 새 코드를 적용하려면 슬라이서에서 이 장치를 다시 추가하세요.`,created:`가상 프린터 생성됨`,failedToCreate:`가상 프린터 생성 실패`,deleted:`가상 프린터 삭제됨`,failedToDelete:`가상 프린터 삭제 실패`},list:{title:`가상 프린터`,add:`추가`,addFirst:`가상 프린터 추가`,empty:`구성된 가상 프린터 없음. 하나를 추가하여 시작하세요.`},bindIp:{title:`바인드 인터페이스`,placeholder:`인터페이스 선택...`,hint:`이 가상 프린터가 바인딩할 네트워크 인터페이스. 프린터당 고유해야 합니다.`},proxy:{accessCodeHint:`프록시 모드에서는 슬라이서에서 대상 프린터의 액세스 코드를 사용하세요. 연결은 실제 프린터로 투명하게 전달됩니다.`},addDialog:{title:`가상 프린터 추가`,name:`이름`,hint:`생성 후 액세스 코드, 대상 프린터 및 기타 설정을 구성할 수 있습니다.`,create:`생성`},deleteConfirm:{title:`가상 프린터 삭제`,message:`"{{name}}"을(를) 삭제하시겠습니까? 이 프린터의 모든 서비스가 중지됩니다.`},caCert:{title:`슬라이서 인증서`,description:`가상 프린터는 Bambuddy CA가 서명한 TLS 인증서를 사용합니다. 이 CA 인증서를 슬라이서의 신뢰 저장소에 한 번만 가져오면 연결을 수락합니다 — 명령줄에서 복사할 필요가 없습니다.`,copy:`복사`,copied:`복사됨`,download:`다운로드`,fingerprint:`SHA-256`}},modelViewer:{openInSlicer:`슬라이서에서 열기`,tabs:{model:`3D 모델`,gcode:`G-code 미리보기`},notAvailable:`사용 불가`,notSliced:`슬라이싱되지 않음`,plates:`플레이트`,allPlates:`모든 플레이트`,plateNumber:`플레이트 {{number}}`,plateCount:`플레이트 {{count}}개`,plateCount_other:`플레이트 {{count}}개`,objectCount:`개체 {{count}}개`,objectCount_other:`개체 {{count}}개`,filamentCount:`필라멘트 {{count}}개`,filamentCount_other:`필라멘트 {{count}}개`,eta:`예상 {{minutes}}분`,noPreview:`이 파일에 대한 미리보기를 사용할 수 없습니다`,pagination:{pageOf:`{{total}}페이지 중 {{current}}`,prev:`이전`,next:`다음`},errors:{failedToLoad:`파일 불러오기 실패`,noMeshes:`3MF 파일에서 메쉬를 찾을 수 없음`,unsupportedFormat:`지원되지 않는 파일 형식`}},maintenanceDescriptions:{lubricateCarbonRods:`부드러운 움직임을 위해 카본 로드에 윤활유 도포`,lubricateRails:`부드러운 움직임을 위해 선형 레일에 윤활유 도포`,cleanNozzle:`막힘 방지를 위해 핫엔드와 노즐 청소`,checkBelts:`정확한 인쇄를 위해 벨트 장력 확인`,cleanBuildPlate:`접착력 향상을 위해 빌드 플레이트 청소`,checkExtruder:`마모 여부 확인을 위해 압출기 기어 점검`,checkCooling:`냉각 팬이 제대로 작동하는지 확인`,generalInspection:`전반적인 프린터 점검`,cleanCarbonRods:`마찰 감소를 위해 카본 로드 청소`,lubricateSteelRods:`부드러운 움직임을 위해 스틸 로드에 윤활유 도포`,cleanSteelRods:`마찰 감소를 위해 스틸 로드 청소`,cleanLinearRails:`먼지와 이물질 제거를 위해 선형 레일 닦기`,checkPtfeTube:`마모 또는 손상 여부 확인을 위해 PTFE 튜브 점검`,replaceHepaFilter:`공기 품질을 위해 HEPA 필터 교체`,replaceCarbonFilter:`활성탄 필터 교체`,lubricateLeftNozzleRail:`왼쪽 노즐 레일 윤활 (H2 시리즈)`},smartPlugs:{offline:`오프라인`,admin:`관리자`,openPlugAdminPage:`플러그 관리 페이지 열기`,deleteSmartPlug:`스마트 플러그 삭제`,turnOnSmartPlug:`스마트 플러그 켜기`,turnOffSmartPlug:`스마트 플러그 끄기`,turnOn:`켜기`,turnOff:`끄기`,addSmartPlug:{scanningNetwork:`네트워크 스캔 중...`,chooseEntity:`엔티티 선택...`,connectionFailed:`연결 실패`,searchEntities:`엔티티 검색...`,searchPowerSensors:`전력 센서 검색...`,searchEnergySensors:`에너지 센서 검색...`,placeholders:{plugName:`거실 플러그`,mqttStateOnValue:`ON, true, 1`,mqttSameAsPower:`전력 토픽과 같거나 다름`}},linkedTo:`연결됨:`,monitorOnly:`모니터만`,alerts:`알림`,scheduleOn:`켜기 {{time}}`,scheduleOff:`끄기 {{time}}`,on:`켜짐`,off:`꺼짐`,power:`전력`,kwhToday:`오늘 kWh`,settings:`설정`,automationSettings:`자동화 설정`,showInSwitchbar:`스위치바에 표시`,quickAccessSidebar:`사이드바에서 빠른 접근`,enabled:`활성화됨`,enableAutomation:`이 플러그의 자동화 활성화`,autoOn:`자동 켜기`,autoOnDescription:`인쇄 시작 시 켜기`,autoOff:`자동 끄기`,autoOffDescription:`인쇄 완료 시 끄기 (1회)`,autoOffPersistent:`계속 활성화`,autoOffPersistentDescription:`1회성 대신 인쇄 사이에 활성화 유지`,controlsPrinterPower:`프린터에 전원 공급`,controlsPrinterPowerDescription:`이 플러그가 액세서리(필터 팬, 조명)에만 전원을 공급한다면 끄세요. 그렇지 않으면 플러그를 끌 때 프린터가 오프라인으로 표시됩니다.`,turnOffDelayMode:`끄기 지연 모드`,time:`시간`,temp:`온도`,delayMinutes:`지연 (분)`,tempThreshold:`온도 임계값 (°C)`,tempThresholdDescription:`노즐이 이 온도 이하로 냉각될 때 끄기`,edit:`편집`,deleteConfirm:`"{{name}}"을(를) 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.`,turnOnConfirm:`"{{name}}"을(를) 켜시겠습니까?`,turnOffConfirm:`"{{name}}"을(를) 끄시겠습니까? 연결된 장치의 전원이 차단됩니다.`,failedToTurn:`"{{name}}" {{action}} 실패`,unknown:`알 수 없음`,addTitle:`스마트 플러그 추가`,editTitle:`스마트 플러그 편집`,stopScanning:`스캔 중지`,discoverTasmota:`Tasmota 장치 검색`,foundDevices:`{{count}}개 장치 발견 - 클릭하여 선택:`,noDevicesFound:`네트워크에서 Tasmota 장치를 찾을 수 없음`,haNotConfigured:`Home Assistant가 구성되지 않았습니다.`,haSettingsPath:`설정 → 네트워크 → Home Assistant`,selectEntity:`엔티티 선택 *`,ipAddress:`IP 주소 *`,nameLabel:`이름 *`,username:`사용자 이름`,password:`비밀번호`,authHint:`Tasmota 장치에 인증이 필요하지 않으면 비워두세요`,linkToPrinter:`프린터에 연결`,noPrinter:`프린터 없음 (수동 제어만)`,linkingDescription:`연결하면 인쇄 시작/완료 시 자동 켜기/끄기가 활성화됩니다`,powerAlerts:`전력 알림`,alertAbove:`초과 시 알림 (W)`,alertBelow:`미만 시 알림 (W)`,alertDescription:`전력 소비가 이 임계값을 초과할 때 알림 받기. 해당 방향을 비활성화하려면 비워두세요.`,dailySchedule:`일일 스케줄`,turnOnAt:`켜기 시각`,turnOffAt:`끄기 시각`,scheduleDescription:`매일 이 시간에 자동으로 켜기/끄기. 해당 동작을 건너뛰려면 비워두세요.`,showOnPrinterCard:`프린터 카드에 표시`,displayOnPrinterCard:`프린터 카드에 버튼 표시`,connectedResult:`연결됨!`,deviceLabel:`장치: {{name}} - `,stateLabel:`상태: {{state}}`,test:`테스트`,delete:`삭제`,save:`저장`,add:`추가`,cancel:`취소`,failedToStartScan:`스캔 시작 실패`,nameRequired:`이름이 필요합니다`,entityRequired:`Home Assistant 플러그에는 엔티티가 필요합니다`,mqttTopicRequired:`전력, 에너지 또는 상태 모니터링을 위한 MQTT 토픽이 하나 이상 구성되어야 합니다`,loadingEntities:`엔티티 불러오는 중...`,loading:`불러오는 중...`,failedToLoadEntities:`엔티티 불러오기 실패: {{error}}`,noEntitiesMatching:`"{{search}}"과 일치하는 엔티티를 찾을 수 없음`,noEntitiesAvailable:`사용 가능한 엔티티 없음`,searchingEntities:`모든 엔티티 검색 중 ({{count}}개 발견)`,showingEntities:`switch, light, input_boolean 표시 중 ({{count}}개 사용 가능)`,energyMonitoringOptional:`에너지 모니터링 (선택사항)`,energyMonitoringHint:`전력/에너지 데이터를 제공하는 센서를 검색하여 선택하세요.`,powerSensorW:`전력 센서 (W)`,energyTodayKwh:`오늘 에너지 (kWh)`,totalEnergyKwh:`총 에너지 (kWh)`,noMatchingSensors:`일치하는 센서 없음`,none:`없음`,mqttNotConfigured:`MQTT 브로커가 구성되지 않았습니다.`,mqttSettingsPath:`설정 → 네트워크 → MQTT 게시`,mqttNotConfiguredSuffix:`(게시를 활성화할 필요는 없고 브로커 세부 정보만 입력하면 됩니다).`,mqttMonitorOnlyDescription:`MQTT 플러그는 MQTT 구독을 통해 전력/에너지 데이터를 받습니다. 켜기/끄기 제어는 불가능 — MQTT 브로커나 홈 자동화 시스템을 사용하세요.`,powerMonitoring:`전력 모니터링`,energyMonitoring:`에너지 모니터링`,stateMonitoring:`상태 모니터링`,optional:`선택사항`,topic:`토픽`,jsonPath:`JSON 경로`,multiplier:`배수`,onValue:`ON 값`,mqttPowerHint:`JSON 경로는 JSON 페이로드에서 값을 추출합니다 (예: "power_l1"). 토픽이 원시 숫자 값을 게시하면 비워두세요.
+Valore ON: la stringa esatta che significa "ON". Lascia vuoto per rilevamento auto (ON, true, 1).`,restControl:`Controllo`,restOnUrl:`URL accensione`,restOffUrl:`URL spegnimento`,restOnBody:`Corpo richiesta ON`,restOffBody:`Corpo richiesta OFF`,restMethod:`Metodo HTTP`,restHeaders:`Custom Headers (JSON)`,restStatusUrl:`URL stato`,restStatusPath:`Percorso JSON stato`,restStatusOnValue:`Valore ON`,restPowerUrl:`URL potenza`,restPowerPath:`Percorso JSON potenza`,restPowerMultiplier:`Moltiplicatore potenza`,restEnergyUrl:`URL energia`,restEnergyPath:`Percorso JSON energia (oggi)`,restEnergyTotalPath:`Percorso JSON energia (contatore totale)`,restEnergyTotalMultiplier:`Moltiplicatore contatore totale`,restEnergyTotalPathHint:`es. aenergy.total`,restEnergyTotalHint:`Molte prese — tutti gli Shelly fra queste — riportano solo un contatore cumulativo che non si azzera mai. Va qui, non nel campo sopra: letto come consumo di oggi non tornerebbe mai a zero a mezzanotte, e Ieri e Totale resterebbero vuoti. Bambuddy ricava Oggi e Ieri da questo valore, il che richiede uno o due giorni di letture. Uno Shelly riporta wattora, quindi usa un moltiplicatore di 0.001.`,restEnergyMultiplier:`Moltiplicatore energia`,restUrlRequired:`È richiesto almeno un URL (ON o OFF) per le prese REST`,restHeadersHint:`es. {"Authorization": "Bearer your-token"}`,restBodyHint:`es. ON, {"state": "on"}`,restStatusHint:`URL per recuperare lo stato attuale`,restPathHint:`es. state o data.power.status`,restPowerUrlHint:`URL separato per i dati di potenza (usa l'URL di stato se vuoto)`,restEnergyUrlHint:`URL separato per i dati di energia (usa l'URL di stato se vuoto)`,restEnergyHint:`Ogni valore può usare il proprio URL o ricadere sull'URL di stato. Usa i moltiplicatori per la conversione delle unità (es. 0.001 per convertire Wh in kWh).`,testConnection:`Testa connessione`,connectionSuccess:`Connessione riuscita`,noSwitchesInSwitchbar:`Nessun interruttore nella barra`,enableSwitchbarHint:`Abilita "Mostra nella barra interruttori" in Impostazioni > Smart Plugs`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`E-mail`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`Notifiche email tramite SMTP`,telegram:`Notifiche tramite bot Telegram`,discord:`Invia a un canale Discord tramite webhook`,ntfy:`Notifiche push gratuite e self-hostabili`,pushover:`Notifiche push semplici e affidabili`,callmebot:`Notifiche WhatsApp gratuite tramite CallMeBot`,webhook:`POST HTTP generico verso qualsiasi URL`,homeassistant:`Notifiche persistenti nella dashboard di Home Assistant`,bark:`Notifiche push iOS tramite Bark (auto-ospitabile)`},lastSuccess:`Ultimo: {{date}}`,error:`Errore`,printer:`Stampante:`,allPrinters:`Tutte le stampanti`,sendTestNotification:`Invia notifica di prova`,eventSettings:`Impostazioni eventi`,enabled:`Abilitato`,sendFromProvider:`Invia notifiche da questo provider`,printEvents:`Eventi di stampa`,printerStatus:`Stato stampante`,amsAlarms:`Allarmi AMS`,amsHtAlarms:`Allarmi AMS-HT`,printQueue:`Coda di stampa`,start:`Avvio`,plateCheck:`Controllo piatto`,complete:`Completato`,failed:`Fallito`,stopped:`Interrotto`,progress:`Avanzamento`,offline:`Offline`,lowFilament:`Filamento scarso`,maintenance:`Manutenzione`,amsHumidity:`Umidità AMS`,amsTemp:`Temp AMS`,amsHtHumidity:`Umidità AMS-HT`,amsHtTemp:`Temp AMS-HT`,bedCooled:`Piatto raffreddato`,firstLayer:`Primo strato`,quiet:`Silenzioso`,digest:`Riepilogo {{time}}`,printStarted:`Stampa avviata`,plateNotEmpty:`Piatto non vuoto`,plateNotEmptyDescription:`Oggetti rilevati prima della stampa`,plateClearRequired:`Conferma piatto libero`,plateClearRequiredDescription:`Stampa finita, la coda attende conferma`,plateClear:`Piatto libero`,printCompleted:`Stampa completata`,bedCooledLabel:`Piatto raffreddato`,bedCooledDescription:`Piatto raffreddato sotto la soglia dopo la stampa`,firstLayerCompleteLabel:`Primo strato completato`,firstLayerCompleteDescription:`Notifica con foto al termine del primo strato`,missingSpoolAssignmentLabel:`Assegnazione bobina mancante`,missingSpoolAssignmentDescription:`Notifica quando una stampa parte e i vassoi richiesti non hanno una bobina assegnata`,printFailed:`Stampa fallita`,printStopped:`Stampa interrotta`,progressMilestones:`Traguardi di avanzamento`,progressMilestonesDescription:`Notifica al 25%, 50%, 75%`,printerOffline:`Stampante offline`,printerError:`Errore stampante`,aiFailureDetection:`Rilevamento guasti IA`,aiFailureDetectionDescription:`Notifica quando l'IA di Obico rileva un possibile guasto di stampa`,lowFilamentLabel:`Filamento scarso`,maintenanceDue:`Manutenzione necessaria`,maintenanceDueDescription:`Notifica quando è necessaria la manutenzione`,amsHumidityHigh:`Umidità AMS elevata`,amsHumidityHighDescription:`L'umidità dell'AMS standard supera la soglia`,amsTemperatureHigh:`Temperatura AMS elevata`,amsTemperatureHighDescription:`La temperatura dell'AMS standard supera la soglia`,amsHtHumidityHigh:`Umidità AMS-HT elevata`,amsHtHumidityHighDescription:`L'umidità dell'AMS-HT supera la soglia`,amsHtTemperatureHigh:`Temperatura AMS-HT elevata`,amsHtTemperatureHighDescription:`La temperatura dell'AMS-HT supera la soglia`,inventoryAlerts:`Avvisi di inventario`,stockReorderAlert:`Avviso di riordino`,stockReorderAlertDescription:`Il SKU ha raggiunto il punto di riordino`,stockBreakAlert:`Avviso di esaurimento scorte`,stockBreakAlertDescription:`Le scorte si esauriranno prima dell'arrivo del rifornimento`,jobAdded:`Lavoro aggiunto`,jobAddedDescription:`Lavoro aggiunto alla coda`,jobAssigned:`Lavoro assegnato`,jobAssignedDescription:`Lavoro basato su modello assegnato alla stampante`,jobStarted:`Lavoro avviato`,jobStartedDescription:`Lavoro in coda avviato per la stampa`,jobWaiting:`Lavoro in attesa`,jobWaitingDescription:`Lavoro in attesa di filamento o stampante`,jobSkipped:`Lavoro saltato`,jobSkippedDescription:`Lavoro saltato (precedente fallito)`,jobFailed:`Lavoro fallito`,jobFailedDescription:`Avvio del lavoro fallito`,queueComplete:`Coda completata`,queueCompleteDescription:`Tutti i lavori in coda completati`,quietHours:`Ore silenziose`,noNotificationsDuring:`Nessuna notifica durante queste ore`,editProviderToChangeQuietHours:`Modifica il provider per cambiare le ore silenziose`,dailyDigest:`Riepilogo giornaliero`,batchNotifications:`Raggruppa le notifiche in un unico riepilogo giornaliero`,sendAt:`Invia alle {{time}}`,editProviderToChangeDigestTime:`Modifica il provider per cambiare l'orario del riepilogo`,edit:`Modifica`,deleteProvider:`Elimina provider di notifica`,deleteConfirm:`Sei sicuro di voler eliminare "{{name}}"? Questa azione non può essere annullata.`,delete:`Elimina`,addTitle:`Aggiungi provider di notifica`,editTitle:`Modifica provider di notifica`,nameLabel:`Nome *`,namePlaceholder:`Le mie notifiche`,providerTypeLabel:`Tipo di provider *`,configuration:`Configurazione`,testConfiguration:`Testa configurazione`,printerFilter:`Filtro stampante`,onlyFromPrinter:`Invia notifiche solo per eventi da questa stampante`,quietHoursDnd:`Ore silenziose (Non disturbare)`,quietStart:`Inizio`,quietEnd:`Fine`,dailyDigestLabel:`Riepilogo giornaliero`,sendDigestAt:`Invia riepilogo alle`,digestCollected:`Gli eventi verranno raccolti e inviati come riepilogo unico a quest'ora`,notificationEvents:`Eventi di notifica`,progressPercent:`(25%, 50%, 75%)`,bedCooledAfterPrint:`(dopo il completamento della stampa)`,eventPriority:{sectionTitle:`Priorità ntfy`,helpNtfy:`Scegli una priorità per ogni evento abilitato. ntfy le usa per intensificare gli avvisi (suono, visibilità, comportamento push). I livelli non impostati qui usano l'impostazione predefinita del server ntfy.`,min:`Min.`,low:`Bassa`,default:`Predefinita`,high:`Alta`,urgent:`Urgente`},cancel:`Annulla`,save:`Salva`,add:`Aggiungi`,nameRequired:`Il nome è obbligatorio`,fieldRequired:`{{field}} è obbligatorio`,haDataInvalid:`Il campo Data deve essere un oggetto JSON valido, ad es. {"priority": "high", "ttl": 0}`,phoneNumber:`Numero di telefono`,apiKey:`Chiave API`,serverUrl:`URL del server`,topic:`Argomento`,authToken:`Token di autenticazione`,userKey:`Chiave utente`,appToken:`Token applicazione`,priority:`Priorità`,pushoverRetry:`Ripetizione emergenza (s)`,pushoverExpire:`Scadenza emergenza (s)`,botToken:`Token del bot`,chatId:`ID chat`,telegramThreadId:`ID argomento forum`,telegramThreadIdHelp:`Opzionale. Invia in un singolo argomento di un gruppo forum: l'ultimo numero nel link dell'argomento (t.me/c/.../25). Lascia vuoto per l'argomento Generale.`,telegramThreadIdInvalid:`L'ID argomento forum deve essere un numero.`,smtpServer:`Server SMTP`,smtpPort:`Porta SMTP`,security:`Sicurezza`,authentication:`Autenticazione`,username:`Nome utente`,password:`Password`,fromEmail:`Email mittente`,toEmail:`Email destinatario`,webhookUrl:`URL webhook`,payloadFormat:`Formato payload`,authorization:`Autorizzazione`,titleFieldName:`Nome campo titolo`,messageFieldName:`Nome campo messaggio`,editTemplate:`Modifica modello: {{name}}`,titleLabel:`Titolo`,bodyLabel:`Corpo`,titlePlaceholder:`Titolo della notifica...`,bodyPlaceholder:`Corpo della notifica...`,availableVariables:`Variabili disponibili`,clickToInsert:`Clicca per inserire alla posizione del cursore nel corpo`,livePreview:`Anteprima live`,hide:`Nascondi`,show:`Mostra`,loadingPreview:`Caricamento anteprima...`,enterTemplateContent:`Inserisci il contenuto del modello per vedere l'anteprima`,titlePreview:`Titolo:`,bodyPreview:`Corpo:`,resetToDefault:`Ripristina predefinito`,titleRequired:`Il titolo è obbligatorio`,bodyRequired:`Il corpo è obbligatorio`,notificationLog:`Registro notifiche`,showFailedOnly:`Solo fallite`,last24Hours:`Ultime 24 ore`,last7Days:`Ultimi 7 giorni`,last30Days:`Ultimi 30 giorni`,last90Days:`Ultimi 90 giorni`,justNow:`Proprio ora`,noFailedNotifications:`Nessuna notifica fallita`,noNotificationsLogged:`Nessuna notifica registrata`,unknownProvider:`Provider sconosciuto`,logTitle:`Titolo`,logMessage:`Messaggio`,logError:`Errore`,logProvider:`Provider: {{type}}`,logTime:`Ora: {{time}}`,refresh:`Aggiorna`,clearOld:`Cancella vecchie`,statsSummary:`Ultimi {{days}} giorni:`,statsNotifications:`notifiche`,statsSent:`{{count}} inviate`,statsFailed:`{{count}} fallite`,eventTypes:{print_start:`Stampa avviata`,print_complete:`Stampa completata`,print_failed:`Stampa fallita`,print_stopped:`Stampa interrotta`,print_progress:`Avanzamento`,printer_offline:`Stampante offline`,printer_error:`Errore stampante`,filament_low:`Filamento scarso`,maintenance_due:`Manutenzione necessaria`,test:`Prova`},userEmail:{title:`Notifiche`,emailNotifications:`Notifiche via e-mail`,emailNotificationsDesc:`Ricevi notifiche via e-mail per i tuoi lavori di stampa. Le e-mail vengono inviate tramite le impostazioni SMTP configurate nell'autenticazione avanzata.`,sendingTo:`Le notifiche verranno inviate a`,noEmailWarning:`Il tuo account non ha un indirizzo e-mail. Contatta un amministratore per aggiungerne uno.`,printJobNotifications:`Notifiche lavori di stampa`,printJobNotificationsDesc:`Scegli quali eventi attivano le notifiche e-mail per i lavori di stampa che invii.`,printJobStarts:`Inizio lavoro di stampa`,printJobStartsDesc:`Ricevi una notifica quando il tuo lavoro di stampa inizia.`,printJobFinishes:`Fine lavoro di stampa`,printJobFinishesDesc:`Ricevi una notifica quando il tuo lavoro di stampa si completa correttamente.`,printErrors:`Errori di stampa`,printErrorsDesc:`Ricevi una notifica quando il tuo lavoro di stampa fallisce o incontra un errore.`,printJobStops:`Lavoro di stampa interrotto`,printJobStopsDesc:`Ricevi una notifica quando il tuo lavoro di stampa viene annullato o interrotto.`,saveSuccess:`Preferenze di notifica salvate.`,saveError:`Impossibile salvare le preferenze di notifica.`}},richTextEditor:{bold:`Grassetto`,italic:`Corsivo`,underline:`Sottolineato`,bulletList:`Elenco puntato`,numberedList:`Elenco numerato`,alignLeft:`Allinea a sinistra`,alignCenter:`Allinea al centro`,alignRight:`Allinea a destra`,addLink:`Aggiungi link`,removeLink:`Rimuovi link`},externalLinks:{title:`Link della barra laterale`,sidebarLayout:`Barra laterale`,sidebarLayoutDescription:`Mostra o nascondi le pagine integrate, aggiungi link esterni e trascina gli elementi per riordinare la navigazione laterale.`,systemPages:`Pagine Bambuddy`,externalLinks:`Link esterni`,visibleInSidebar:`Visibile nella barra laterale`,hiddenFromSidebar:`Nascosto nella barra laterale`,requiredInSidebar:`Obbligatorio nella barra laterale`,hidePage:`Nascondi pagina`,showPage:`Mostra pagina`,settingsCannotBeHidden:`Le impostazioni non possono essere nascoste`,noLinksConfigured:`Nessun link esterno configurato`,deleteLink:`Elimina link`,removeCustomIcon:`Rimuovi icona personalizzata`,openInNewTab:`Apri in nuova scheda`,placeholders:{linkName:`Il mio link`}},keyboardShortcuts:{title:`Scorciatoie da tastiera`,navigation:`Navigazione`,archivesSection:`Archivi`,kProfilesSection:`Profili K`,generalSection:`Generale`,shortcuts:{goToPrinters:`Vai a Stampanti`,goToArchives:`Vai ad Archivi`,goToQueue:`Vai a Coda`,goToStats:`Vai a Statistiche`,goToProfiles:`Vai a Profili cloud`,goToSettings:`Vai a Impostazioni`,focusSearch:`Vai alla ricerca`,openUploadModal:`Apri finestra di caricamento`,clearSelection:`Cancella selezione / deseleziona input`,contextMenu:`Menu contestuale sulle schede`,refreshProfiles:`Aggiorna profili`,newProfile:`Nuovo profilo`,exitSelectionMode:`Esci dalla modalità selezione`,showHelp:`Mostra questa guida`},footer:`Premi Esc o clicca fuori per chiudere`},notificationLog:{title:`Registro notifiche`,events:{printStarted:`Stampa avviata`,printComplete:`Stampa completata`,printFailed:`Stampa fallita`,printStopped:`Stampa interrotta`,progress:`Avanzamento`,printerOffline:`Stampante offline`,printerError:`Errore stampante`,lowFilament:`Filamento in esaurimento`,maintenanceDue:`Manutenzione in scadenza`,test:`Test`},timeAgo:{justNow:`Adesso`,minutesAgo:`{{minutes}} min fa`,hoursAgo:`{{hours}} ore fa`}},restoreBackup:{title:`Ripristina backup`,restoring:`Ripristino...`,restoreComplete:`Ripristino completato`,restoreFailed:`Ripristino fallito`,importSettings:`Importa impostazioni da un file di backup`,pleaseWait:`Attendere il ripristino dei dati`,clickToSelect:`Clicca per selezionare il file di backup (.json o .zip)`,howDuplicateHandling:`Come funziona la gestione dei duplicati:`,categories:{printers:`Stampanti`,smartPlugs:`Prese smart`,notificationProviders:`Provider di notifica`,filaments:`Filamenti`,archives:`Archivi`,pendingUploads:`Caricamenti in sospeso`,settingsTemplates:`Impostazioni e modelli`},matchingInfo:{printers:`abbinati per numero di serie`,smartPlugs:`abbinati per indirizzo IP`,notificationProviders:`abbinati per nome`,filaments:`abbinati per nome + tipo + marca`,archives:`abbinati per hash del contenuto`,pendingUploads:`abbinati per nome file`,settingsTemplates:`sempre sovrascritti`},replaceExisting:`Sostituisci dati esistenti`,keepExisting:`Mantieni dati esistenti`,replaceDescription:`Sovrascrivi gli elementi già esistenti con i dati del backup`,keepDescription:`Ripristina solo gli elementi che non esistono già`,caution:`Attenzione:`,cautionText:`La sovrascrittura sostituirà le configurazioni attuali con i dati del backup. I codici di accesso delle stampanti non vengono mai sovrascritti per sicurezza.`,itemsRestored:`Elementi ripristinati`,itemsSkipped:`Elementi saltati`,restored:`Ripristinati`,skipped:`Saltati (già esistenti)`,filesLabel:`File (3MF, miniature, ecc.)`,newApiKeysGenerated:`Nuove chiavi API generate`,newApiKeysWarning:`Queste chiavi vengono mostrate una sola volta. Copiale adesso!`,processingBackup:`Elaborazione file di backup...`,noDataFound:`Nessun dato trovato da ripristinare nel file di backup.`,failedToRestore:`Impossibile ripristinare il backup. Verificare il formato del file.`},backupExport:{title:`Esporta backup`,selectData:`Seleziona i dati da includere`,selectAll:`Seleziona tutto`,selectNone:`Deseleziona tutto`,categoryDescriptions:{settings:`Lingua, tema, preferenze di aggiornamento`,notifications:`ntfy, Pushover, Discord, ecc.`,templates:`Modelli di messaggi personalizzati`,smartPlugs:`Configurazioni prese Tasmota`,externalLinks:`Link della barra laterale a servizi esterni`,printers:`Info stampanti (codici di accesso esclusi)`,plateDetection:`Immagini di riferimento piatto vuoto`,filaments:`Tipi di filamento e costi`,maintenance:`Programmi di manutenzione personalizzati`,archives:`Tutti i dati di stampa + file (3MF, miniature, foto)`,projects:`Progetti, elementi BOM e allegati`,pendingUploads:`Caricamenti della stampante virtuale in attesa di revisione`,apiKeys:`Chiavi API webhook (nuove chiavi generate all'importazione)`},requiresPrinters:`Richiede la selezione di Stampanti`,zipFileWarning:`Verrà creato un file ZIP.`,zipFileDescription:`Include tutti i file 3MF, miniature, timelapse e foto. Potrebbe richiedere tempo e produrre un file di grandi dimensioni.`,includeAccessCodes:`Includi codici di accesso`,includeAccessCodesDescription:`Per il trasferimento su un'altra macchina`,includeAccessCodesWarning:`I codici di accesso saranno inclusi in testo semplice. Mantieni sicuro questo file di backup!`,categoriesSelected:`{{selectedCount}} categorie selezionate`},pendingUploads:{placeholders:{notes:`Aggiungi note su questa stampa...`},discardUpload:`Scarta caricamento`,archiveAllUploads:`Archivia tutti i caricamenti`,discardAllUploads:`Scarta tutti i caricamenti`,archive:`Archivia`,timeAgo:{justNow:`Adesso`,minutesAgo:`{{minutes}} min fa`,hoursAgo:`{{hours}} ore fa`,daysAgo:`{{days}} giorni fa`}},apiBrowser:{placeholders:{requestBody:`Corpo della richiesta JSON...`,searchEndpoints:`Cerca endpoint...`}},configureAmsSlot:{title:`Configura Slot AMS`,slotConfigured:`Slot configurato!`,configuringSlot:`Configurazione slot:`,slotLabel:`{{ams}} – Slot {{slot}}`,searchPresets:`Cerca preset...`,colorPlaceholder:`Nome colore o hex (es. marrone, FF8800)`,clearCustomColor:`Cancella colore personalizzato`,noCloudPresets:`Nessun preset cloud. Accedi a Bambu Cloud per sincronizzare.`,noPresetsAvailable:`Nessun preset disponibile. Accedi a Bambu Cloud o importa profili locali.`,noMatchingPresets:`Nessun preset corrispondente trovato.`,custom:`Personalizzato`,builtin:`Integrato`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`Impostazioni inviate alla stampante`,filamentProfile:`Profilo filamento`,kProfileLabel:`Profilo K (Pressure Advance)`,filteringFor:`Filtrando per: {{material}}`,noKProfile:`Nessun profilo K (usa predefinito 0.020)`,noMatchingKProfiles:`Nessun profilo K corrispondente. Verrà usato K=0.020 predefinito.`,otherKProfiles:`Altri profili K su questa stampante`,selectFilamentFirst:`Seleziona prima un profilo filamento`,kFromCalibration:`K={{value}} dalla calibrazione stampante`,customColorLabel:`Colore personalizzato (opzionale)`,presetColors:`Colori {{name}}:`,showLessColors:`Mostra meno colori`,showMoreColors:`Mostra più colori`,clear:`Cancella`,hexLabel:`Hex – #{{hex}}`,resetting:`Ripristino...`,resetSlot:`Ripristina slot`,cancel:`Annulla`,configuring:`Configurazione...`,configureSlot:`Configura slot`},githubBackup:{title:`Backup Git`,history:`Cronologia`,downloadBackup:`Scarica backup`,restoreBackup:`Ripristina backup`,noBackupsYet:`Nessun backup ancora`},emailSettings:{placeholders:{fromName:`Bambuddy`}},tagManagement:{searchTags:`Cerca tag...`,renameTag:`Rinomina tag`,deleteTag:`Elimina tag`},notificationTemplates:{placeholders:{title:`Titolo notifica...`,body:`Corpo notifica...`}},batchTag:{placeholders:{newTag:`Inserisci nuovo tag...`}},photoGallery:{deletePhoto:`Elimina foto`},filamentHoverCard:{copySpoolUuid:`Copia UUID bobina`},kProfilesView:{hasNote:`Ha una nota`,copyProfile:`Copia profilo`},layout:{openMenu:`Apri menu`,noPermissionSystemInfo:`Non hai il permesso di visualizzare le informazioni di sistema`},dashboard:{dragToReorder:`Trascina per riordinare`,hideWidget:`Nascondi widget`},notificationProviderCard:{deleteNotificationProvider:`Elimina provider di notifica`},fileManagerModal:{closeFileManager:`Chiudi gestore file`,sortFiles:`Ordina file`,goToParentFolder:`Vai alla cartella superiore`,threeView:`Vista 3D`},embeddedCameraViewer:{refreshStream:`Aggiorna stream`,close:`Chiudi`,zoomOut:`Rimpicciolisci`,resetZoom:`Reimposta zoom`,zoomIn:`Ingrandisci`,dragToResize:`Trascina per ridimensionare`},timelapseViewer:{skipBack5s:`Indietro 5s`,skipForward5s:`Avanti 5s`},notificationProviders:{descriptions:{email:`Notifiche email via SMTP`,telegram:`Notifiche tramite bot Telegram`,discord:`Invia a canale Discord tramite webhook`,ntfy:`Notifiche push gratuite e self-hostabili`,pushover:`Notifiche push semplici e affidabili`,callmebot:`Notifiche WhatsApp gratuite tramite CallMeBot`,webhook:`POST HTTP generico a qualsiasi URL`}},logViewer:{searchPlaceholder:`Cerca messaggio o nome logger...`,noLogEntries:`Nessuna voce di log trovata`},switchbarPopover:{noSwitchesInSwitchbar:`Nessun interruttore nella barra`},projectPageModal:{placeholders:{title:`Titolo`,designer:`Designer`,license:`Licenza`,description:`Inserisci descrizione...`,profileTitle:`Titolo profilo`,profileDescription:`Descrizione profilo...`}},spoolmanSettings:{},time:{unknown:`-`,waiting:`In attesa`,justNow:`Proprio ora`,now:`Ora`,minsAgo:`{{count}}m fa`,inMins:`tra {{count}}m`,hoursAgo:`{{count}}h fa`,inHours:`tra {{count}}h`,daysAgo:`{{count}}g fa`,inDays:`tra {{count}}g`},spoolbuddy:{nav:{dashboard:`Dashboard`,ams:`AMS`,inventory:`Inventario`,writeTag:`Scrivi`,settings:`Impostazioni`},status:{nfcReady:`NFC pronto`,nfcOff:`NFC spento`,offline:`Offline`,online:`Online`,noPrinters:`Nessuna stampante`,deviceOffline:`Dispositivo offline`,waitingConnection:`In attesa della connessione...`,systemReady:`Sistema pronto`,status:`Stato`},dashboard:{readyToScan:`Pronto per la scansione`,idleMessage:`Posiziona una bobina sulla bilancia per identificarla`,nfcHint:`Il tag NFC verrà letto automaticamente`,device:`Dispositivo`,syncWeight:`Sincronizza peso`,weightSynced:`Sincronizzato!`,unknownTag:`Tag sconosciuto`,newTag:`Nuovo tag rilevato`,onScale:`sulla bilancia`,linkSpool:`Collega a bobina`,linkTagTitle:`Collega tag a bobina`,linkTag:`Collega tag`,selectSpool:`Seleziona una bobina da collegare a questo tag:`,noUntagged:`Nessuna bobina senza tag trovata`,tagDetected:`Tag rilevato`,noTag:`Nessun tag`,tagId:`Etichetta`,grossWeight:`Peso lordo`,spoolSize:`Dimensione bobina`,close:`Chiudi`,currentSpool:`Bobina attuale`,plateReady:`Piatto pronto: {{name}}`,plateReadyLabel:`Piatti da liberare`,plateClearAction:`Libera`,plateClearedToast:`Piatto contrassegnato come liberato`,plateClearFailed:`Impossibile contrassegnare il piatto come liberato`},modal:{spoolDetected:`Bobina rilevata`,assignToAms:`Assegna all'AMS`,syncWeight:`Sincronizza peso`,weightSynced:`Sincronizzato!`,syncing:`Sincronizzazione...`,newTagDetected:`Nuovo tag rilevato`,addToInventory:`Aggiungi all'inventario`,assignToAmsTitle:`Assegna all'AMS`,selectSlot:`Seleziona uno slot`,assign:`Assegna`,assigning:`Assegnazione...`,assignSuccess:`Assegnato!`,assignPendingInsert:`Assegnato. Lo slot verrà configurato all'inserimento della bobina.`,assignError:`Impossibile assegnare la bobina. Riprovare.`,noPrinterSelected:`Seleziona una stampante...`,noAmsDetected:`Nessun AMS rilevato su questa stampante`,slot:`Slot`},weight:{noReading:`Nessuna lettura`,stable:`Stabile`,measuring:`Misurazione...`,tare:`Tara`,calibrate:`Calibra`},spool:{remaining:`Rimanente`,material:`Materiale`,brand:`Marca`,color:`Colore`,coreWeight:`Nucleo`,labelWeight:`Etichetta`,scaleWeight:`Bilancia`,netWeight:`Netto`,lastUsed:`Ultimo utilizzo`},ams:{noData:`Nessun AMS rilevato`,connectAms:`Collega un AMS per vedere gli slot`,noPrinter:`Nessuna stampante selezionata`,selectPrinter:`Seleziona una stampante dalla barra superiore`,printerDisconnected:`Stampante disconnessa`,humidity:`Umidità`,level:`Livello`,active:`Attivo`,slot:`Slot`,empty:`Vuoto`},inventory:{search:`Cerca bobine...`,empty:`Nessuna bobina nell'inventario`,noResults:`Nessuna bobina corrispondente`,spools:`bobine`,addSpool:`Aggiungi bobina`},settings:{tabDevice:`Dispositivo`,tabDisplay:`Display`,tabScale:`Bilancia`,tabUpdates:`Aggiornamenti`,nfcReader:`Lettore NFC`,type:`Tipo`,connection:`Connessione`,notConnected:`N/D`,deviceInfo:`Info dispositivo`,hostname:`Host`,uptime:`Tempo di attività`,brightness:`Luminosità`,saved:`Salvato`,noBacklight:`Nessuna retroilluminazione DSI rilevata. Il controllo luminosità richiede un display DSI.`,screenBlank:`Timeout spegnimento schermo`,screenBlankDesc:`Lo schermo si spegne dopo inattività. Tocca per riattivare.`,displayNote:`La luminosità viene applicata come filtro software.`,scaleCalibration:`Calibrazione bilancia`,currentWeight:`Peso attuale`,tareOffset:`Tara`,calFactor:`Fattore`,knownWeight:`Peso noto`,calStep1:`Rimuovere tutto dalla bilancia e premere Imposta zero.`,calStep2:`Posizionare il peso noto sulla bilancia.`,setZero:`Imposta zero`,calibrateNow:`Calibra`,calibrated:`Calibrato`,tareSet:`Comando tara inviato. In attesa del dispositivo...`,tareComplete:`Tara completata!`,tareTimedOut:`Tempo scaduto per la tara — il demone SpoolBuddy è in esecuzione?`,tareFailed:`Invio comando tara fallito`,zeroSet:`Punto zero impostato. Posizionare il peso noto sulla bilancia.`,calibrationDone:`Calibrazione completata!`,calibrationFailed:`Calibrazione fallita`,lastCalibrated:`Ultima calibrazione`,stable:`Stabile`,settling:`Stabilizzazione...`,firmware:`Firmware`,scale:`Bilancia`,noDevice:`Nessun dispositivo SpoolBuddy trovato`,daemonVersion:`Versione daemon`,currentVersion:`Attuale`,versionPending:`In attesa del daemon...`,checking:`Verifica...`,checkUpdates:`Verifica aggiornamenti`,updateAvailable:`Aggiornamento disponibile`,updateInstructions:`Aggiorna via SSH: esegui lo script di installazione SpoolBuddy.`,upToDate:`Aggiornato`,includeBeta:`Includi versioni beta`,systemConfig:`Backend & autenticazione`,backendUrl:`URL backend Bambuddy`,apiToken:`Token API`,apiTokenPlaceholder:`Inserisci token API`,saveConfig:`Salva configurazione`,systemQueued:`Configurazione in coda.`,systemFieldsRequired:`L'URL del backend è obbligatorio.`,nfcDiagnostic:`Diagnostica NFC`,scaleDiagnostic:`Diagnostica bilancia`,readTagDiagnostic:`Diagnostica lettura tag`,testNfc:`Test lettore`,testScale:`Test precisione`,testReadTag:`Leggi tag`},writeTag:{tabExisting:`Bobina esistente`,tabNew:`Nuova bobina`,tabReplace:`Sostituisci tag`,searchPlaceholder:`Cerca per materiale, colore, marca...`,noUntaggedSpools:`Nessuna bobina senza tag`,noTaggedSpools:`Nessuna bobina con tag`,selectSpool:`Seleziona una bobina, poi posiziona un NTAG sul lettore`,placeTag:`Posiziona un NTAG sul lettore`,tagReady:`Tag rilevato — pronto per la scrittura`,writeTag:`Scrivi tag`,replaceTag:`Sostituisci tag`,writing:`Scrittura tag...`,waiting:`In attesa di SpoolBuddy...`,writeSuccess:`Tag scritto con successo!`,writeFailed:`Scrittura fallita`,queueFailed:`Impossibile accodare il comando di scrittura`,tryAgain:`Riprova`,cancel:`Annulla`,replaceWarning:`Il vecchio tag verrà scollegato. Il nuovo tag lo sostituirà.`,deviceOffline:`SpoolBuddy è offline`,material:`Materiale`,colorName:`Nome colore`,color:`Colore`,brand:`Marca`,weight:`Peso (g)`,createSpool:`Crea bobina`,creating:`Creazione...`,spoolCreated:`Bobina creata! Pronto per la scrittura.`,createFailed:`Impossibile creare la bobina`,incompleteDataWarning:`Tag scritto con dati Spoolman incompleti`},quickMenu:{printerPower:`Alimentazione stampante`,systemControls:`Sistema`,restartDaemon:`Riavvia daemon`,restartBrowser:`Riavvia browser`,reboot:`Riavvia`,shutdown:`Spegni`,swipeToClose:`Scorri verso il basso per chiudere`,confirmTitle:`Conferma`,confirmShutdown:`Sei sicuro di voler spegnere lo SpoolBuddy? Avrai bisogno di accesso fisico per riaccenderlo.`,confirmReboot:`Sei sicuro di voler riavviare lo SpoolBuddy?`,confirmRestartDaemon:`Riavviare il daemon SpoolBuddy? NFC e bilancia saranno temporaneamente non disponibili.`,confirmRestartBrowser:`Riavviare il browser kiosk? Lo schermo diventerà brevemente nero.`,confirm:`Conferma`,confirmPlugOn:`Accendere {{name}}?`,confirmPlugOff:`Spegnere {{name}}?`,turnOn:`Accendi`,turnOff:`Spegni`}},diagnostic:{modalTitle:`Diagnostica connessione — {{name}}`,running:`Diagnostica in corso...`,runningElapsed:`Diagnostica in corso... ({{elapsed}}s)`,waitingForReportHint:`In attesa che la stampante pubblichi un report di stato — può richiedere fino a {{max}} secondi.`,runFailed:`Impossibile eseguire la diagnostica: {{error}}`,retry:`Esegui di nuovo`,runButton:`Esegui diagnostica`,sectionTitle:`Diagnostica connessione`,sectionDescription:`Verifica perché una stampante non si connette o non stampa — raggiungibilità delle porte, modalità sviluppatore LAN, modalità di rete Docker e credenziali.`,noPrinters:`Nessuna stampante configurata.`,overall:{ok:`Nessun problema rilevato — la connessione della stampante sembra a posto.`,warnings:`La stampante dovrebbe funzionare, ma alcuni aspetti richiedono attenzione.`,problems:`Sono stati rilevati problemi che spiegano perché la stampante non si connette o non stampa.`},check:{port_mqtt:{title:`Porta di controllo (MQTT 8883)`,pass:`Raggiungibile — la stampante accetta connessioni di controllo.`,fail:`La porta 8883 non è raggiungibile. La stampante è spenta, ha un altro indirizzo IP oppure un firewall la blocca. Verifica l'IP della stampante e che nulla blocchi la porta 8883.`},port_ftps:{title:`Porta trasferimento file (FTPS 990)`,pass:`Raggiungibile — l'invio dei file di stampa funzionerà.`,warn:`La porta 990 non è raggiungibile. Il monitoraggio potrebbe ancora funzionare, ma l'invio delle stampe alla stampante fallirà. Assicurati che la porta 990 non sia bloccata.`},external_storage:{title:`Memorizza file inviati su archiviazione esterna (passo 4 dell'installazione)`,pass:`La stampante segnala che questa opzione è attiva — i file inviati saranno memorizzati sulla scheda SD e gli archivi avranno miniature e metadati dello slicer.`,fail:`La stampante segnala che questa opzione è disattivata. Abilita "Memorizza file inviati su archiviazione esterna" — nei firmware recenti (P2S 01.02 / Bambu Studio 2.6+) l'interruttore si trova nelle Impostazioni di stampa della stampante; nelle versioni precedenti è nella scheda Dispositivo di Bambu Studio / OrcaSlicer. Senza questa opzione, ogni stampa archiviata è priva di miniatura e di metadati dello slicer.`,skip:`Non verificato — è necessaria una connessione MQTT attiva. Negli slicer più vecchi dove questa impostazione esiste solo nello slicer, la stampante non la segnala, quindi questo controllo passa anche se l'opzione è disattivata — verifica manualmente il passo 4 dell'installazione.`,skip_unsupported_model:`Questo modello ha uno slot SD ma nessun modo per attivare l'opzione — il firmware attuale della serie P1 non mostra l'interruttore in Bambu Studio e la stampante non ha uno schermo. Non c'è nulla da correggere qui; alle stampe archiviate potrebbero mancare miniature e metadati dello slicer finché Bambu Lab non aggiungerà il supporto via firmware.`},port_rtsps:{title:`Porta fotocamera ({{protocol}} {{port}})`,pass:`Raggiungibile — lo streaming della fotocamera funzionerà.`,warn:`La porta {{port}} non è raggiungibile. La visualizzazione live della fotocamera non funzionerà. Questo non influisce sulla stampa.`},network_mode:{title:`Modalità di rete Docker`,pass:`In esecuzione in modalità di rete host.`,warn:`Bambuddy è in esecuzione con la rete Docker bridge. Il rilevamento delle stampanti e la stampante virtuale richiedono la modalità di rete host — ricrea il container con "network_mode: host".`,skip:`Non in esecuzione in Docker — non applicabile.`},subnet:{title:`Sottorete`,pass:`La stampante e Bambuddy sono nella stessa sottorete.`,warn:`La stampante ({{printer_ip}}) e Bambuddy ({{host_ip}}) sono in sottoreti diverse. Potrebbero non raggiungersi a meno che non sia configurato il routing tra le sottoreti.`,skip:`Impossibile determinare la sottorete — ignorato.`},mqtt_auth:{title:`Credenziali stampante`,pass:`La stampante ha accettato la connessione.`,fail:`La stampante è raggiungibile ma Bambuddy non è connesso ad essa. Il codice di accesso o il numero di serie è molto probabilmente errato — il codice di accesso cambia ogni volta che la modalità Solo LAN o la modalità sviluppatore viene attivata/disattivata, quindi ricopialo dallo schermo della stampante. Una stampante in fase di riavvio, o che ha già raggiunto il limite di connessioni simultanee, appare allo stesso modo.`,fail_auth_rejected:`La stampante ha rifiutato le credenziali di Bambuddy. Il codice di accesso o il numero di serie è errato — il codice di accesso cambia ogni volta che la modalità Solo LAN o la modalità sviluppatore viene attivata/disattivata. Ricopialo dallo schermo della stampante e salvalo nelle impostazioni della stampante.`,skip:`Non verificato — impossibile raggiungere la stampante.`},developer_mode:{title:`Modalità sviluppatore LAN`,pass:`La modalità sviluppatore è attivata.`,fail:`La modalità sviluppatore è DISATTIVATA sulla stampante. Attivala nelle impostazioni LAN della stampante — e conferma con OK. Senza di essa le stampe non verranno avviate.`,skip:`Impossibile verificare — richiede una connessione attiva alla stampante.`},printer_publishing:{title:`La stampante pubblica lo stato`,pass:`La stampante sta pubblicando aggiornamenti di stato — AMS, filamenti e profili K saranno correttamente replicati nello slicer.`,fail:`Il broker MQTT ha accettato la connessione ma la stampante non ha pubblicato alcun report di stato. È quasi sempre un numero di serie errato o con maiuscole/minuscole sbagliate — il topic device//api/v1/metrics에서 프린터 메트릭을 노출합니다.`,bearerTokenOptional:`베어러 토큰 (선택사항)`,bearerTokenHint:`설정하면 요청에 Authorization: Bearer 을 포함해야 합니다`,metricsConnectionStatus:`연결 상태`,metricsPrinterState:`프린터 상태 (유휴/인쇄 중/등)`,metricsPrintProgress:`인쇄 진행 0-100%`,metricsBedTemp:`베드 온도`,metricsNozzleTemp:`노즐 온도`,metricsPrintsTotal:`결과별 총 인쇄 수`,metricsMore:`...및 더 많은 것 (레이어, 팬, 대기열, 필라멘트 사용량)`,smartPlugsDescription:`에너지 사용량 추적 및 프린터 전원 제어를 자동화하기 위해 스마트 플러그(Tasmota 또는 Home Assistant)를 연결하세요.`,allOn:`모두 켜기`,allOff:`모두 끄기`,addSmartPlug:`스마트 플러그 추가`,energySummary:`에너지 요약`,currentPower:`현재 전력`,plugsOnline:`{{reachable}}/{{total}}개 플러그 온라인`,today:`오늘`,yesterday:`어제`,total:`총계`,enablePlugsForSummary:`에너지 요약을 보려면 플러그를 활성화하세요`,addNotificationProvider:`추가`,systemBadge:`(시스템)`,creating:`생성 중...`,changing:`변경 중...`,deleteUserAndItems:`사용자 및 항목 삭제`,deleteUserKeepItems:`사용자 삭제, 항목 유지 (소유자 없음)`,ok:`확인`,twoFa:{totpTitle:`인증 앱 (TOTP)`,totpDesc:`Google Authenticator, Aegis, Authy 같은 인증 앱을 사용하세요.`,emailOtpTitle:`이메일 OTP`,emailOtpDesc:`로그인 시 {{email}}로 일회용 코드를 전송합니다.`,emailOtpNoEmail:`이 방법을 활성화하려면 계정에 이메일 주소를 추가하세요.`,addEmailFirst:`계정에 이메일 주소가 없습니다. 이메일 OTP를 활성화하기 전에 관리자에게 추가를 요청하세요.`,setupTotp:`인증 앱 설정`,setupAuthApp:`인증 앱 설정`,setupInstructions:`아래 QR 코드를 인증 앱으로 스캔한 후 코드로 확인하세요.`,manualEntry:`스캔할 수 없나요? 이 비밀을 수동으로 입력하세요:`,scannedContinue:`코드를 스캔했습니다 — 계속`,enterCodeToConfirm:`인증 앱의 6자리 코드를 입력하여 설정을 확인하세요.`,activate:`활성화`,disableTotp:`인증기 비활성화`,disableConfirmHint:`인증기를 비활성화하려면 유효한 TOTP 코드나 백업 코드를 입력하세요.`,totpDisabled:`인증 앱이 비활성화되었습니다.`,emailOtpEnabled:`이메일 OTP가 활성화되었습니다.`,emailOtpDisabled:`이메일 OTP가 비활성화되었습니다.`,smtpRequired:`먼저 SMTP 설정을 구성하고 테스트하세요.`,invalidCode:`잘못된 코드입니다. 다시 시도하세요.`,enableEmailOtp:`이메일 OTP 활성화`,disableEmailOtp:`이메일 OTP 비활성화`,emailSetupEnterCode:`이메일 주소로 인증 코드가 전송되었습니다. 아래에 입력하여 이 받은 편지함을 소유하고 있음을 확인하세요.`,verifyAndEnable:`확인 및 활성화`,emailDisablePasswordHint:`이메일 OTP 비활성화를 확인하려면 계정 비밀번호를 입력하세요.`,passwordPlaceholder:`비밀번호 입력`,backupCodesTitle:`백업 코드 저장`,backupCodesWarning:`이 코드를 안전한 곳에 저장하세요. 각 코드는 한 번만 사용할 수 있으며 다시 표시되지 않습니다.`,backupCodesRemaining:`{{count}}개 백업 코드 남음`,savedCodes:`코드를 저장했습니다`,regenBackup:`백업 코드 재생성`,regenBackupHint:`현재 TOTP 코드를 입력하여 10개의 새 백업 코드를 생성하세요. 기존 백업 코드는 모두 무효화됩니다.`,newBackupCodes:`새 백업 코드`,linkedAccounts:`연결된 SSO 계정`,linkedAccountsDesc:`이 외부 ID 제공자가 계정에 연결되어 있습니다.`,oidcUnlinked:`계정 연결이 해제되었습니다.`},sessionPolicy:{title:`세션 정책`,description:`신규 사용자 로그인의 최대 세션 수명입니다. 이미 발급된 토큰은 원래 만료 시간을 유지합니다.`,preset24h:`24시간`,preset7d:`7일`,preset30d:`30일`,customHoursLabel:`사용자 지정 세션 수명(시간)`,hoursSuffix:`시간`,warning:`세션이 길어질수록 자동 로그아웃 보호가 약해집니다. 신뢰할 수 있는 단일 사용자 배포에서만 권장됩니다.`},oidc:{title:`SSO / OIDC 제공자`,desc:`외부 ID 제공자를 통해 싱글 사인온을 허용하도록 OpenID Connect 제공자를 설정하세요.`,addProvider:`제공자 추가`,newProvider:`새 제공자`,empty:`아직 설정된 OIDC 제공자가 없습니다.`,created:`제공자가 생성되었습니다.`,updated:`제공자가 업데이트되었습니다.`,deleted:`제공자가 삭제되었습니다.`,deleteTitle:`제공자 삭제`,deleteMessage:`"{{name}}"을(를) 삭제하시겠습니까? 연결된 모든 사용자 계정의 연결이 해제됩니다.`,form:{name:`표시 이름`,issuerUrl:`발급자 URL`,clientId:`클라이언트 ID`,clientSecret:`클라이언트 시크릿`,scopes:`범위`,iconUrl:`아이콘 URL (선택사항)`,enabled:`활성화됨`,autoCreate:`사용자 자동 생성`,autoCreateDesc:`첫 번째 로그인 시 자동으로 로컬 계정 생성.`,autoLink:`기존 계정 자동 연결`,autoLinkDesc:`첫 번째 로그인 시 이메일 일치로 기존 로컬 계정 연결.`,secretHint:`현재 값을 유지하려면 비워두세요`,secretPlaceholder:`새 시크릿`,emailClaim:`이메일 클레임`,emailClaimDesc:`이메일 ID로 사용되는 JWT 클레임.`,emailClaimPlaceholder:`email`,emailClaimCustomClaimAutoLinkWarning:`사용자 지정 클레임은 값이 테넌트 관리인 경우에만 자동 연결에 안전합니다. IdP가 사용자가 이 클레임을 직접 주장할 수 있게 하면 자동 연결을 활성화하지 마세요.`,requireEmailVerified:`이메일 확인 필요`,requireEmailVerifiedDesc:`제공자가 확인된 것으로 표시한 경우에만 이메일 클레임을 수락합니다.`,requireEmailVerifiedWarning:`경고: 확인 없이도 이메일이 수락됩니다. 신뢰할 수 있는 제공자에만 사용하세요.`,requireEmailVerifiedAutoLink:`이 설정을 변경하려면 먼저 자동 연결을 비활성화하세요.`,defaultGroup:`기본 그룹`,defaultGroupDesc:`자동 생성된 사용자에게 할당되는 그룹. 설정되지 않으면 Viewers로 대체됩니다.`,defaultGroupViewersFallback:`Viewers (기본값)`,autologin:`자동 로그인`,autologinDesc:`인증되지 않은 방문자를 이 공급자로 바로 리디렉션합니다. 이 플래그를 가질 수 있는 공급자는 하나뿐입니다.`},refreshIcon:`아이콘 새로고침`,removeIcon:`아이콘 제거`,iconRefreshed:`아이콘이 새로고침되었습니다.`,iconRemoved:`아이콘이 제거되었습니다.`,iconFetchFailed:`공급자 URL에서 아이콘을 가져올 수 없습니다.`},encryption:{title:`MFA 암호화 상태`,enabledFromEnv:`저장 시 암호화 활성화됨 (MFA_ENCRYPTION_KEY 환경 변수에서 키)`,enabledFromFile:`저장 시 암호화 활성화됨 (데이터 디렉토리에서 키 로드됨)`,enabledGenerated:`자동 생성된 키로 저장 시 암호화 활성화됨`,notConfigured:`저장 시 암호화가 설정되지 않음`,notConfiguredDesc:`TOTP 시크릿 및 OIDC client_secret이 일반 텍스트로 저장됩니다. MFA_ENCRYPTION_KEY를 설정하거나 쓰기 가능한 데이터 디렉토리로 Bambuddy를 재시작하여 자동 생성하세요.`,allEncrypted:`모든 MFA 시크릿이 저장 시 암호화되어 있습니다.`,legacyRowsLabel:`레거시 일반 텍스트 행`,encryptedRowsLabel:`암호화된 행`,legacyRowsWarning:`{{count}}개 레거시 일반 텍스트 행이 감지되었습니다. 암호화된 저장소로 마이그레이션하려면 OIDC 제공자를 다시 저장하거나 사용자의 인증 앱을 재등록하세요.`,backupHint:`자동 생성된 키는 DATA_DIR/.mfa_encryption_key에 저장되며 로컬 백업 ZIP에 포함됩니다. 백업을 안전하게 보관하거나 MFA_ENCRYPTION_KEY를 명시적으로 설정하세요.`,decryptionBrokenTitle:`암호화 키 누락`,decryptionBrokenError:`암호화 키를 더 이상 사용할 수 없어 {{count}}개의 암호화된 레코드를 복호화할 수 없습니다.`,migrationErrorWarning:`시작 시 {{count}}개 레거시 행을 재암호화하지 못했습니다. 서버 로그를 확인하고 Bambuddy를 재시작하여 재시도하세요.`},updateEnergyCost:`전기 요금 업데이트`,updateEnergyCostDescription:`이 키가 /settings/electricity-price에 새 kWh당 전기 요금을 POST할 수 있도록 허용합니다. Home Assistant 동적 요금 자동화(Tibber, Octopus 등)에 유용합니다. API 키로 쓸 수 있는 유일한 설정 필드입니다.`,energyCostBadge:`에너지`,passwordRequirements:`최소 8자, 대문자, 소문자, 숫자, 특수문자 각 1개 이상 포함`,pipelineLimits:{title:`슬라이서 파이프라인 한도`,maxCopiesLabel:`실행당 최대 사본 수`,maxCopiesDesc:`운영자가 파이프라인 실행 시 요청할 수 있는 사본 수의 상한. 서버 측 절대 상한은 1000입니다.`},pipelines:{title:`슬라이서 파이프라인`,subtitle:`재사용 가능한 프리셋 묶음(프린터 + 프로세스 + 필라멘트 + 베드 유형). 슬라이스 대화상자에서 저장한 후 다음 파일에 한 번의 클릭으로 적용하세요.`,loading:`파이프라인 불러오는 중…`,loadError:`파이프라인을 불러오지 못했습니다.`,confirmDelete:`이 파이프라인을 삭제하시겠습니까? 되돌릴 수 없습니다.`,staleWarning:`참조된 프리셋이 더 이상 존재하지 않습니다. 슬라이스 대화상자에서 이 파이프라인을 다시 저장하여 수정하세요.`,empty:{title:`아직 파이프라인이 없습니다.`,howto:`임의의 파일에서 슬라이스 대화상자를 열고 프린터 / 프로세스 / 필라멘트 / 베드를 선택한 다음 "파이프라인으로 저장"을 클릭하세요. 저장된 파이프라인이 여기에 표시됩니다.`},field:{name:`파이프라인 이름`,description:`설명`,targetPrinter:`대상 프린터`,noTarget:`— 대상 없음 —`,targetKind:`대상 유형`,targetKindSpecific:`특정 프린터`,targetKindClass:`프린터 클래스`,targetModelClass:`프린터 모델`,fanoutStrategy:`분산 전략`,fanout:{max_parallel:`최대 병렬 — 일치하는 유휴 프린터에 분산`,round_robin:`라운드 로빈 — 적격 프린터를 순환`,fill_one_first:`하나 먼저 채우기 — 모든 사본을 한 프린터에 고정`},fanoutShort:{max_parallel:`병렬`,round_robin:`라운드 로빈`,fill_one_first:`하나 먼저`}},action:{save:`저장`,cancel:`취소`,rename:`이름 변경`,delete:`삭제`},slot:{printer:`프린터`,process:`프로세스`,filament:`필라멘트`,filamentN:`필라멘트 {{n}}`,filamentAll:`전체 {{n}} 슬롯`,bed:`베드`},group:{profiles:`프로필`,filaments:`필라멘트`},searchPlaceholder:`파이프라인 검색…`,filterTargetType:`대상 유형으로 필터`,filterTarget:`대상으로 필터`,filter:{all:`모든 대상`,noTarget:`대상 미설정`,count:`{{shown}} / {{total}}`,noMatches:`현재 필터와 일치하는 파이프라인이 없습니다.`},toast:{saved:`파이프라인이 저장되었습니다`,saveFailed:`저장 실패`,deleted:`파이프라인이 삭제되었습니다`,deleteFailed:`삭제 실패`},noTargetHint:`실행하려면 대상 프린터를 설정하세요`,noTargetWarning:`이 파이프라인을 실행하기 전에 대상 프린터를 설정하세요.`,runs:{lastRun:`마지막 실행`,status:{queued:`대기 중`,slicing:`슬라이싱 중`,dispatching:`전송 중`,in_progress:`인쇄 중`,completed:`완료됨`,failed:`실패`,partial_failure:`부분 실패`,cancelled:`취소됨`}}}},notification:{printStarted:{title:`인쇄 시작됨`,body:`{{printer}}: {{filename}} 인쇄가 시작되었습니다`},printCompleted:{title:`인쇄 완료됨`,body:`{{printer}}: {{filename}}이(가) 성공적으로 완료되었습니다`},printFailed:{title:`인쇄 실패`,body:`{{printer}}: {{filename}}이(가) 실패했습니다`},printStopped:{title:`인쇄 정지됨`,body:`{{printer}}: {{filename}}이(가) 정지되었습니다`},printProgress:{title:`인쇄 진행`,body:`{{printer}}: {{filename}} {{percent}}% 완료`},printerOffline:{title:`프린터 오프라인`,body:`{{printer}}이(가) 오프라인 상태입니다`},printerError:{title:`프린터 오류`,body:`{{printer}}: {{error}}`},filamentLow:{title:`필라멘트 부족`,body:`{{printer}}: 필라멘트가 부족합니다`},maintenanceDue:{title:`유지보수 예정`,body:`{{printer}}: {{items}} 주의 필요`}},errors:{generic:`문제가 발생했습니다`,networkError:`네트워크 오류. 연결을 확인하세요.`,notFound:`찾을 수 없습니다`,unauthorized:`권한 없음`,serverError:`서버 오류`,validationError:`입력값을 확인하세요`,printerConnectionFailed:`프린터 연결 실패`,saveFailed:`변경사항 저장 실패`,deleteFailed:`삭제 실패`,loadFailed:`데이터 로드 실패`},hmsErrors:{title:`오류 - {{name}}`,noErrors:`오류 없음`,viewOnWiki:`Bambu Lab 위키에서 보기`,mqttVerifyFailedRemedy:`프린터에서 개발자 모드를 활성화하고 프린터를 재시작한 다음 작업을 다시 시작하세요.`,unknownCode:`알 수 없는 HMS 코드 — 자세한 내용은 Bambu Lab 위키를 참조하세요.`,clearInstructions:`오류를 해제하려면 프린터에서 오류를 지우세요.`,clearErrors:`오류 지우기`,clearSuccess:`HMS 오류가 지워졌습니다`,clearFailed:`HMS 오류 지우기 실패`,actionSuccess:`프린터에 작업을 전송함`,actionFailed:`작업 전송 실패`,runoutExpectedSlot:`{{ranOut}}의 필라멘트가 소진되었습니다. 프린터가 이제 {{expected}}에 호환 필라멘트를 기다리고 있습니다. {{expected}}에 스풀을 넣은 다음 다시 시도를 선택하세요.`,runoutExpectedSlotOnly:`프린터가 {{expected}}에 호환 필라멘트를 기다리고 있습니다. 거기에 스풀을 넣은 다음 다시 시도를 선택하세요.`,runoutSlotUnknown:`필라멘트가 소진되어 인쇄가 일시정지되었습니다. Bambuddy가 프린터가 현재 요청하는 슬롯을 확인할 수 없습니다 — 프린터 화면에서 요청된 슬롯을 확인하세요.`,actions:{RESUME_PRINTING:`인쇄 재개`,RESUME_PRINTING_DEFECTS:`재개 (결함 허용)`,RESUME_PRINTING_PROBELM_SOLVED:`재개 (문제 해결됨)`,STOP_PRINTING:`인쇄 중지`,CHECK_ASSISTANT:`도우미 보기`,FILAMENT_EXTRUDED:`필라멘트 압출됨, 계속`,RETRY_FILAMENT_EXTRUDED:`아직 압출되지 않음, 다시 시도`,CONTINUE:`완료, 계속`,LOAD_VIRTUAL_TRAY:`필라멘트 로드`,OK_BUTTON:`확인`,FILAMENT_LOAD_RESUME:`필라멘트 로드됨, 재개`,JUMP_TO_LIVEVIEW:`실시간 보기`,NO_REMINDER_NEXT_TIME:`다음에 알리지 않음`,REFRESH_NOZZLE:`다시 확인`,IGNORE_NO_REMINDER_NEXT_TIME:`무시 및 다시 알리지 않음`,IGNORE_RESUME:`무시하고 재개`,PROBLEM_SOLVED_RESUME:`문제 해결됨, 재개`,TURN_OFF_FIRE_ALARM:`확인, 화재 경보 끄기`,RETRY_PROBLEM_SOLVED:`다시 시도 (문제 해결됨)`,CANCLE:`취소`,STOP_DRYING:`건조 중지`,PROCEED:`계속`,OK_JUMP_RACK:`확인`,ABORT:`중단`,DISABLE_PURIFICATION:`이 인쇄에 대해 공기 정화 비활성화`,DONT_REMIND_NEXT_TIME:`알리지 않음`,DBL_CHECK_CANCEL:`취소`,DBL_CHECK_DONE:`완료`,DBL_CHECK_RETRY:`다시 시도`,DBL_CHECK_RESUME:`재개`,DBL_CHECK_OK:`확인`,REMOVE_CLOSE_BTN:`닫기`}},mqttDebug:{title:`MQTT 디버그 로그`,searchPlaceholder:`토픽 또는 페이로드 검색...`,noMessages:`아직 기록된 메시지 없음`,startLoggingHint:`"로깅 시작"을 클릭하여 MQTT 메시지 캡처 시작`,noMessagesMatch:`필터에 일치하는 메시지 없음`,adjustFilterHint:`검색 또는 필터 기준을 조정해 보세요`,incoming:`수신`,outgoing:`송신`,loggingStopped:`로깅 정지됨`,loggingActive:`로깅 활성 - 메시지가 자동 새로고침됨`,startLogging:`로깅 시작`,stopLogging:`로깅 정지`,clearLog:`로그 지우기`,topic:`토픽`,timestamp:`타임스탬프`,direction:`방향`,all:`전체`},printerFiles:{title:`파일 관리자`,storageUsed:`사용됨:`,storageFree:`여유:`,filterPlaceholder:`파일 필터...`,deleteButton:`삭제`,deleteFiles:`{{count}}개 파일 삭제`,deleteFileConfirm:`"{{name}}"을(를) 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.`,deleteFilesConfirm:`선택된 {{count}}개 파일을 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.`,noFiles:`프린터에 파일 없음`,loadingFiles:`파일 로딩 중...`,failedToLoad:`파일 로드 실패`,toast:{filesDeleted:`{{count}}개 파일이 삭제되었습니다`,deleteFailed:`삭제 실패: {{error}}`}},confirm:{delete:`이것을 삭제하시겠습니까?`,unsavedChanges:`저장되지 않은 변경사항이 있습니다. 정말 나가시겠습니까?`,clearQueue:`대기열을 지우시겠습니까?`},login:{title:`Bambuddy 로그인`,subtitle:`계정에 로그인하세요`,username:`사용자명`,usernamePlaceholder:`사용자명을 입력하세요`,usernameOrEmail:`사용자명 또는 이메일`,usernameOrEmailPlaceholder:`사용자명 또는 @ 이메일`,password:`비밀번호`,passwordPlaceholder:`비밀번호를 입력하세요`,signIn:`로그인`,signingIn:`로그인 중...`,rememberMe:`로그인 유지`,forgotPassword:`비밀번호를 잊으셨나요?`,autologinFailed:`SSO 자동 로그인에 실패했습니다. 아래에서 계속할 공급자를 선택하세요.`,localDisabledNotice:`로컬 로그인이 비활성화되어 있습니다. 아래 SSO 공급자 중 하나를 사용하세요.`,loginSuccess:`성공적으로 로그인되었습니다`,loginFailed:`로그인 실패`,enterCredentials:`사용자명과 비밀번호를 입력하세요`,enterEmail:`이메일 주소를 입력하세요`,oidcLoginFailed:`OIDC 로그인 실패`,oidcErrors:{providerError:`ID 제공자에서 오류가 반환되었습니다`,missingParameters:`OIDC 콜백에 필수 매개변수가 없습니다`,invalidState:`OIDC 상태가 잘못되었거나 이미 사용되었습니다`,stateExpired:`OIDC 로그인 세션이 만료되었습니다 — 다시 시도하세요`,providerNotFound:`OIDC 제공자를 찾을 수 없습니다`,discoveryFailed:`OIDC 검색 문서를 가져오지 못했습니다`,invalidDiscovery:`OIDC 검색 문서가 잘못되었습니다`,networkError:`OIDC 토큰 교환 중 네트워크 오류`,badResponse:`OIDC 토큰 교환 중 예상치 못한 응답`,noIdToken:`OIDC 제공자가 ID 토큰을 반환하지 않았습니다`,validationFailed:`OIDC 토큰 검증 실패`,nonceMismatch:`OIDC 논스 불일치 — 재생 공격 가능성`,missingSubClaim:`OIDC 토큰에 sub 클레임이 없습니다`,noLinkedAccount:`OIDC ID에 연결된 로컬 계정이 없습니다`,accountInactive:`계정이 비활성 상태입니다`,userResolutionFailed:`계정 확인 실패`,internalError:`OIDC 로그인 중 내부 오류 발생`,tokenExchangeFailed:`OIDC 토큰 교환 실패`},forgotPasswordTitle:`비밀번호 찾기`,forgotPasswordMessage:`비밀번호를 잊으셨다면 시스템 관리자에게 초기화를 요청하세요.`,forgotPasswordEmailMessage:`이메일 주소를 입력하면 새 비밀번호를 전송해 드립니다.`,emailAddress:`이메일 주소`,emailPlaceholder:`your.email@example.com`,cancel:`취소`,sending:`전송 중...`,sendResetEmail:`초기화 이메일 전송`,howToReset:`비밀번호 초기화 방법:`,resetStep1:`Bambuddy 관리자에게 문의하세요`,resetStep2:`사용자 관리에서 비밀번호 초기화를 요청하세요`,resetStep3:`관리자가 임시 비밀번호를 설정해 드립니다`,resetStep4:`새 비밀번호로 로그인하고 설정에서 변경하세요`,gotIt:`확인`,resetPassword:{title:`새 비밀번호 설정`,subtitle:`아래에 새 비밀번호를 입력하고 확인하세요.`,newPassword:`새 비밀번호`,newPasswordPlaceholder:`최소 8자`,confirmPassword:`비밀번호 확인`,confirmPasswordPlaceholder:`새 비밀번호 반복`,saving:`저장 중…`,submit:`새 비밀번호 설정`,backToLogin:`로그인으로 돌아가기`,passwordsDoNotMatch:`비밀번호가 일치하지 않습니다`,passwordTooShort:`비밀번호는 최소 8자여야 합니다`,resetFailed:`비밀번호 초기화 실패. 링크가 만료되었을 수 있습니다.`},twoFA:{title:`이중 인증`,subtitle:`계정이 2FA로 보호되어 있습니다. 아래에 인증 코드를 입력하세요.`,methodAuthenticator:`인증 앱`,methodEmail:`이메일 코드`,methodBackup:`백업 코드`,instructionsTotp:`인증 앱을 열고 Bambuddy의 6자리 코드를 입력하세요.`,instructionsEmail:`이메일 주소로 6자리 코드가 전송되었습니다. 10분 후 만료됩니다.`,instructionsEmailNotSent:`아래 버튼을 클릭하여 이메일로 인증 코드를 받으세요.`,instructionsBackup:`8자리 백업 복구 코드 중 하나를 입력하세요. 각 코드는 한 번만 사용할 수 있습니다.`,sendCodeButton:`이메일로 코드 전송`,sendingCode:`전송 중...`,resendCode:`코드 재전송`,codeLabel:`인증 코드`,backupCodeLabel:`백업 코드`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`확인`,verifyingButton:`확인 중...`,backToLogin:`← 로그인으로 돌아가기`,orContinueWith:`또는 계속`,signInWith:`{{provider}}로 로그인`,enterCode:`인증 코드를 입력하세요`,sendCodeFailed:`인증 코드 전송 실패`,invalidCode:`잘못된 코드입니다. 다시 시도하세요.`}},setup:{title:`Bambuddy 설정`,subtitle:`Bambuddy 인스턴스의 인증을 설정하세요`,enableAuth:`인증 활성화`,adminAccount:`관리자 계정`,adminAccountDesc:`관리자 사용자가 이미 있는 경우 기존 관리자 계정으로 인증이 활성화됩니다. 기존 관리자를 사용하려면 아래 필드를 비워두거나, 새 관리자 사용자를 만들려면 자격 증명을 입력하세요.`,adminUsername:`관리자 사용자명`,adminPassword:`관리자 비밀번호`,optionalIfAdminExists:`(관리자 사용자가 있는 경우 선택사항)`,adminUsernamePlaceholder:`관리자 사용자명 입력 (선택사항)`,adminPasswordPlaceholder:`관리자 비밀번호 입력 (선택사항)`,confirmPassword:`비밀번호 확인`,confirmPasswordPlaceholder:`관리자 비밀번호 확인`,settingUp:`설정 중...`,completeSetup:`설정 완료`,toast:{authEnabledAdminCreated:`인증 활성화 및 관리자 사용자 생성됨`,authEnabledExistingAdmins:`기존 관리자 사용자로 인증 활성화됨`,setupCompleted:`설정이 완료되었습니다`,enterBothCredentials:`관리자 사용자명과 비밀번호를 모두 입력하거나, 기존 관리자 사용자를 사용하려면 둘 다 비워두세요`,passwordsDoNotMatch:`비밀번호가 일치하지 않습니다`,passwordTooShort:`비밀번호는 최소 6자여야 합니다`}},changePassword:{title:`비밀번호 변경`,currentPassword:`현재 비밀번호`,currentPasswordPlaceholder:`현재 비밀번호 입력`,newPassword:`새 비밀번호`,newPasswordPlaceholder:`새 비밀번호 입력 (최소 6자)`,confirmPassword:`새 비밀번호 확인`,confirmPasswordPlaceholder:`새 비밀번호 확인`,passwordsDoNotMatch:`비밀번호가 일치하지 않습니다`,passwordTooShort:`비밀번호는 최소 6자여야 합니다`,changing:`변경 중...`,success:`비밀번호가 성공적으로 변경되었습니다`,failed:`비밀번호 변경 실패`},plateAlert:{title:`인쇄 일시정지됨!`,message:`빌드 플레이트에 객체가 감지되었습니다. 인쇄가 자동으로 일시정지되었습니다. 플레이트를 비우고 인쇄를 재개하세요.`,understand:`확인했습니다`},camera:{title:`카메라 보기`,invalidPrinterId:`유효하지 않은 프린터 ID`,live:`실시간`,snapshot:`스냅샷`,restartStream:`스트림 재시작`,refreshSnapshot:`스냅샷 새로고침`,fullscreen:`전체 화면`,exitFullscreen:`전체 화면 종료`,connectingToCamera:`카메라에 연결 중...`,capturingSnapshot:`스냅샷 캡처 중...`,connectionLost:`연결 끊김`,connectionFailed:`카메라 연결 실패`,reconnecting:`{{countdown}}초 후 재연결 중... (시도 {{attempt}}/{{max}})`,reconnectNow:`지금 재연결`,cameraUnavailable:`카메라를 사용할 수 없음`,cameraUnavailableDesc:`프린터가 켜져 있고 연결되어 있는지 확인하세요.`,noCamera:`사용 가능한 카메라 없음`,retry:`다시 시도`,cameraStream:`카메라 스트림`,zoomOut:`축소`,zoomIn:`확대`,resetZoom:`배율 초기화`,recording:`녹화 중`,startRecording:`녹화 시작`,stopRecording:`녹화 중지`,chamberLight:`챔버 조명 전환`,unavailable:`카메라 사용 불가`,diagnose:{button:`진단`,modalTitle:`카메라 진단`,running:`진단 실행 중...`,runFailed:`진단 실행 실패: {{error}}`,retry:`다시 실행`,stage:{tcp_reachable:`네트워크 연결 가능 여부`,first_frame:`프레임 캡처`,live_stream_active:`라이브 스트림 활성`},summary:{all_ok:`카메라가 정상 작동 중입니다. 모든 단계를 성공적으로 완료했습니다.`,live_stream_active_healthy:`카메라가 최근 프레임으로 스트리밍 중입니다 — 테스트가 필요 없습니다.`,printer_unreachable:`프린터에 연결할 수 없습니다. IP 주소, 네트워크 연결, 프린터 전원을 확인하세요.`,camera_port_closed:`프린터에 연결됐지만 카메라 포트가 닫혀 있습니다. 프린터 설정에서 LAN 전용 모드와 개발자 모드가 활성화되어 있는지 확인하세요.`,no_frame:`카메라에 연결됐지만 프레임이 수신되지 않았습니다. 다시 시도하거나 프린터 설정에서 카메라가 활성화되어 있는지 확인하세요.`,unknown_failure:`알 수 없는 이유로 카메라 진단에 실패했습니다. 지원 로그를 확인하세요.`},meta:{protocol:`프로토콜`,port:`포트`,profile:`프로파일`}}},groups:{title:`그룹 관리`,subtitle:`접근 제어를 위한 권한 그룹 관리`,backToSettings:`설정으로 돌아가기`,createGroup:`그룹 생성`,noPermission:`이 페이지에 접근할 권한이 없습니다.`,system:`시스템`,noDescription:`설명 없음`,usersCount:`{{count}}명의 사용자`,permissionsCount:`{{count}}개의 권한`,edit:`편집`,delete:`삭제`,toast:{created:`그룹이 성공적으로 생성되었습니다`,updated:`그룹이 성공적으로 업데이트되었습니다`,deleted:`그룹이 성공적으로 삭제되었습니다`,enterGroupName:`그룹 이름을 입력해 주세요`},modal:{editGroup:`그룹 편집`,createGroup:`그룹 생성`,cancel:`취소`,saving:`저장 중...`,creating:`생성 중...`,saveChanges:`변경 사항 저장`},form:{groupName:`그룹 이름`,groupNamePlaceholder:`그룹 이름 입력`,systemGroupWarning:`시스템 그룹 이름은 변경할 수 없습니다`,description:`설명`,descriptionPlaceholder:`설명 입력 (선택사항)`,permissions:`권한 ({{count}}개 선택됨)`},deleteModal:{title:`그룹 삭제`,message:`이 그룹을 삭제하시겠습니까? 이 그룹의 사용자는 해당 권한을 잃게 됩니다.`,confirm:`그룹 삭제`},editor:{title:`그룹 편집`,createTitle:`그룹 생성`,search:`권한 검색...`,selectAll:`모두 선택`,clearAll:`모두 해제`,permissionsSelected:`{{count}}개 선택됨`,noResults:`검색과 일치하는 권한이 없습니다`,websocketHint:`실시간 업데이트에 필요합니다. 이 권한이 없으면 인터페이스는 주기적 폴링으로 대체됩니다.`}},users:{title:`사용자 관리`,subtitle:`Bambuddy 인스턴스에 대한 사용자 및 접근 권한 관리`,backToSettings:`설정으로 돌아가기`,createUser:`사용자 생성`,noPermission:`이 페이지에 접근할 권한이 없습니다.`,admin:`관리자`,noGroups:`그룹 없음`,active:`활성`,inactive:`비활성`,edit:`편집`,delete:`삭제`,system:`시스템`,noGroupsAvailable:`사용 가능한 그룹 없음`,table:{username:`사용자 이름`,groups:`그룹`,status:`상태`,actions:`작업`},toast:{created:`사용자가 성공적으로 생성되었습니다`,updated:`사용자가 성공적으로 업데이트되었습니다`,deleted:`사용자가 성공적으로 삭제되었습니다`,fillRequired:`모든 필수 항목을 입력해 주세요`,passwordsDoNotMatch:`비밀번호가 일치하지 않습니다`,passwordTooShort:`비밀번호는 최소 6자 이상이어야 합니다`,ldapProvisioned:`LDAP 사용자 "{{username}}"이(가) 생성되었습니다`},modal:{createUser:`사용자 생성`,editUser:`사용자 편집`,cancel:`취소`,creating:`생성 중...`,saving:`저장 중...`,saveChanges:`변경 사항 저장`,advancedAuthSubtitle:`고급 인증 사용`,tabsAriaLabel:`사용자 소스`,localTab:`로컬`,ldapTab:`LDAP`,ldapSearchLabel:`디렉터리 검색`,ldapSearchPlaceholder:`사용자명, 이름, 이메일을 입력하세요...`,ldapMinChars:`검색하려면 최소 2자 이상 입력하세요`,ldapTypeToSearch:`LDAP 디렉터리를 검색하려면 입력을 시작하세요`,ldapSearching:`디렉터리 검색 중...`,ldapNoResults:`디렉터리에서 일치하는 사용자가 없습니다`,ldapSearchError:`디렉터리 검색에 실패했습니다. LDAP 서버 상태를 확인하세요.`,ldapAlreadyProvisioned:`이미 생성됨`,ldapSelectedLabel:`선택됨`,ldapProvision:`사용자 생성`,ldapProvisioning:`생성 중...`,ldapErrorProvision:`생성에 실패했습니다. LDAP 서버 상태를 확인하고 다시 시도하세요.`},form:{username:`사용자 이름`,usernamePlaceholder:`사용자 이름 입력`,email:`이메일`,emailPlaceholder:`user@example.com`,password:`비밀번호`,passwordPlaceholder:`비밀번호 입력`,confirmPassword:`비밀번호 확인`,confirmPasswordPlaceholder:`비밀번호 확인`,newPasswordPlaceholder:`새 비밀번호 입력`,confirmNewPasswordPlaceholder:`새 비밀번호 확인`,leaveBlankToKeep:`현재 비밀번호 유지 시 비워두기`,groups:`그룹`,optional:`선택사항`,autoGeneratedPassword:`안전한 비밀번호가 자동으로 생성되어 사용자에게 이메일로 전송됩니다.`,passwordManagedByAdvancedAuth:`비밀번호는 고급 인증에 의해 관리됩니다. "비밀번호 재설정"을 사용하여 이메일로 새 비밀번호를 전송하세요.`,resetPassword:`비밀번호 재설정`,resettingPassword:`비밀번호 재설정 중...`},deleteModal:{title:`사용자 삭제`,message:`이 사용자를 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.`,confirm:`사용자 삭제`}},streamOverlay:{title:`스트림 오버레이`,invalidPrinterId:`유효하지 않은 프린터 ID`,cameraStream:`카메라 스트림`,progress:`진행률`,eta:`예상 완료`,printerIdle:`프린터 대기 중`,printerOffline:`프린터 오프라인`,status:{printing:`인쇄 중`,paused:`일시 중지됨`,finished:`완료됨`,failed:`실패`,idle:`대기 중`,unknown:`알 수 없음`}},profiles:{title:`프로필`,subtitle:`슬라이서 프리셋 및 압력 전진 보정 관리`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`로컬 프로필`,kprofiles:`K-프로필`},orcaCloud:{connectedAs:`연결됨`,connectedShort:`Orca Cloud에 연결됨`,logout:`연결 해제`,noLogoutPermission:`연결을 해제할 권한이 없습니다`,noConnectPermission:`Orca Cloud에 연결할 권한이 없습니다`,retry:`다시 시도`,connectButton:`Orca Cloud 연결`,connect:{title:`Orca Cloud에 연결`,description:`Orca Cloud 계정에 로그인하여 슬라이서 프로필을 Bambuddy에 동기화하세요.`},device:{title:`Orca Cloud에서 Bambuddy 승인`,instruction:`Orca Cloud를 열고 이 코드를 승인하세요. 승인하면 Bambuddy가 자동으로 연결됩니다.`,codeLabel:`페어링 코드`,openButton:`Orca Cloud 승인 페이지 열기`,manualHint:`또는 {{url}}(으)로 이동하여 위 코드를 입력하세요.`,waiting:`승인을 기다리는 중…`,cancel:`취소`},profiles:{title:`Orca Cloud 프로필 ({{count}})`,refresh:`새로고침`,empty:`Orca Cloud 계정에 아직 프로필이 없습니다.`},toast:{disconnected:`Orca Cloud 연결 해제됨`},errors:{startFailed:`Orca Cloud 로그인 흐름을 시작할 수 없습니다.`,denied:`Orca Cloud에서 페어링이 거부되었습니다.`,expired:`페어링 코드가 만료되었습니다. 연결을 클릭하여 다시 시도하세요.`,pollFailed:`승인을 기다리는 중 연결이 끊겼습니다. 다시 시도하세요.`}},localProfiles:{title:`로컬 프로필`,subtitle:`OrcaSlicer에서 슬라이서 프리셋 가져오기 및 관리`,import:`프로필 가져오기`,importDesc:`.bbscfg, .bbsflmt, .orca_filament, .zip 또는 .json 파일을 여기에 드롭하세요`,importing:`가져오는 중...`,search:`로컬 프리셋 검색...`,noPresets:`로컬 프리셋 없음`,badge:`로컬`,edit:`편집`,delete:`삭제`,cancel:`취소`,deleteConfirmTitle:`프리셋 삭제`,deleteConfirm:`이 프리셋을 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.`,source:`출처`,inheritsFrom:`상속`,filamentType:`유형`,vendor:`제조사`,compatiblePrinters:`프린터`,nozzleTemp:`노즐 온도`,cost:`비용`,density:`밀도`,pressureAdvance:`압력 전진`,filament:`필라멘트`,process:`프로세스`,printer:`프린터`,toast:{importSuccess:`{{count}}개 프리셋 가져옴`,importSkipped:`{{count}}개 프리셋 건너뜀 (중복)`,importError:`가져오기 중 {{count}}개 오류 발생`,deleted:`프리셋 삭제됨`,updated:`프리셋 업데이트됨`},noSearchResults:`검색어와 일치하는 프리셋이 없습니다`},connectedAs:`연결된 계정`,signInExpiredTitle:`Bambu 클라우드 로그인이 만료되었습니다`,signInExpiredBody:`Bambu Lab이 저장된 토큰을 더 이상 허용하지 않습니다. 클라우드 프로필, MakerWorld 가져오기, 펌웨어 확인을 복구하려면 다시 로그인하세요.`,logout:`로그아웃`,noLogoutPermission:`로그아웃 권한이 없습니다`,failedToLoad:`프로필 불러오기 실패`,retry:`다시 시도`,time:{justNow:`방금`,minsAgo:`{{count}}분 전`,hoursAgo:`{{count}}시간 전`,daysAgo:`{{count}}일 전`},toast:{loggedOut:`로그아웃되었습니다`},login:{title:`Bambu 클라우드 연결`,subtitle:`기기 간 슬라이서 프리셋 동기화`,email:`이메일`,password:`비밀번호`,region:`지역`,regionGlobal:`글로벌`,regionChina:`중국`,verificationCode:`인증 코드`,totpCode:`인증앱 코드`,checkEmail:`이메일({{email}})로 전송된 6자리 코드를 확인하세요`,enterTotpHint:`인증앱에서 6자리 코드를 입력하세요`,accessToken:`액세스 토큰`,accessTokenHint:`Bambu Studio에서 Bambu Lab 액세스 토큰을 붙여넣으세요`,back:`뒤로`,loginButton:`로그인`,verifyButton:`인증`,setTokenButton:`토큰 설정`,useToken:`액세스 토큰 대신 사용`,useEmail:`이메일로 로그인`,toast:{loggedIn:`성공적으로 로그인되었습니다`,codeSent:`이메일로 인증 코드가 전송되었습니다`,enterTotp:`인증앱에서 코드를 입력하세요`,tokenSet:`토큰이 성공적으로 설정되었습니다`}},presets:{myPreset:`내 프리셋 (편집 가능)`,duplicate:`복제`,editable:`편집 가능`,failedToLoadDetails:`프리셋 세부 정보 불러오기 실패`,deleteConfirm:`이 프리셋을 삭제하시겠습니까?`,deleteWarning:`Bambu 클라우드에서 "{{name}}"을(를) 영구적으로 삭제합니다. 이 작업은 취소할 수 없습니다.`,noDuplicatePermission:`프리셋 복제 권한이 없습니다`,noEditPermission:`프리셋 편집 권한이 없습니다`,noDeletePermission:`프리셋 삭제 권한이 없습니다`,types:{filament:`필라멘트 프리셋`,printer:`프린터 프리셋`,process:`프로세스 프리셋`},toast:{deleted:`프리셋 삭제됨`,created:`프리셋 생성됨`,updated:`프리셋 업데이트됨`,duplicated:`프리셋 복제됨`,fieldAdded:`"{{key}}" 필드 추가됨`,exported:`프리셋 내보냄`},baseLabel:`기본: {{name}}`,currentLabel:`현재: {{name}}`,newPreset:`새 프리셋`,editPreset:`프리셋 편집`,duplicatePreset:`프리셋 복제`,createNewPreset:`새 프리셋 생성`,customizeSettings:`새 프리셋의 설정 사용자 지정`,compareWithBase:`기본 프리셋과 비교`,compare:`비교`,basePreset:`기본 프리셋`,selectBasePreset:`기본 프리셋 선택...`,presetName:`프리셋 이름`,myCustomPreset:`내 사용자 지정 프리셋`,inheritsFrom:`상속 출처`,dropJsonToImport:`JSON 파일을 드롭하여 가져오기`,tabs:{common:`공통`,allFields:`모든 필드`},availableFields:`사용 가능한 필드`,searchFieldsPlaceholder:`필드 검색...`,noMatchingFields:`일치하는 필드 없음`,allFieldsAdded:`모든 필드 추가됨`,addCustomField:`사용자 지정 필드 추가`,yourOverrides:`내 재정의`,noOverridesYet:`아직 재정의 없음`,clickFieldsToAdd:`왼쪽 필드를 클릭하여 추가`,saveAsTemplate:`템플릿으로 저장`,jsonTip:`팁: 이 모달 어디서나 .json 파일을 드래그 앤 드롭하여 설정을 가져올 수 있습니다`},cloudView:{searchPlaceholder:`프리셋 검색...`,templates:`템플릿`,refresh:`새로고침`,newPreset:`새 프리셋`,clearFilters:`필터 초기화`,compareMode:`비교 모드`,selectAnotherPreset:`다른 {{type}} 프리셋 선택`,clickTwoPresets:`같은 유형의 프리셋 두 개를 클릭하여 비교`,selectFirst:`1. 첫 번째 선택`,selectSecond:`2. 두 번째 선택`,compareNow:`지금 비교`,lastSynced:`마지막 동기화:`,showingCount:`{{total}}개 중 {{showing}}개 표시`,noPresetsFound:`프리셋을 찾을 수 없음`,columns:{filament:`필라멘트`,process:`프로세스`,printer:`프린터`},noFilamentPresets:`필라멘트 프리셋 없음`,noProcessPresets:`프로세스 프리셋 없음`,noPrinterPresets:`프린터 프리셋 없음`,filters:{type:`유형`,owner:`소유자`,printer:`프린터`,nozzle:`노즐`,filament:`필라멘트`,layer:`레이어`,all:`전체`,myPresets:`내 프리셋`,builtIn:`기본 제공`,process:`프로세스`},noTemplatesPermission:`템플릿 관리 권한이 없습니다`,noRefreshPermission:`프로필 새로고침 권한이 없습니다`,noCreatePermission:`프리셋 생성 권한이 없습니다`},templates:{title:`빠른 템플릿`,noTemplates:`아직 템플릿 없음`,createFirst:`프리셋 편집기에서 템플릿을 생성하세요`,typeFilter:`유형:`,deleteTitle:`템플릿 삭제`,deleteWarning:`이 작업은 취소할 수 없습니다`,deleteConfirm:`"{{name}}"을(를) 삭제하시겠습니까?`,namePlaceholder:`템플릿 이름`,descriptionPlaceholder:`설명`,settingsJson:`설정 (JSON)`,fieldsCount:`{{count}}개 필드`,shownInModals:`모달에 표시됨`,hiddenInModals:`모달에서 숨겨짐`,apply:`적용`,toast:{deleted:`템플릿 삭제됨`,updated:`템플릿 업데이트됨`,created:`템플릿 생성됨`,applied:`템플릿 적용됨`}}},support:{debugLoggingActive:`디버그 로깅이 활성화되어 있습니다`,manageLogs:`관리`,collectItem7:`프린터 연결 및 펌웨어 버전`,collectItem8:`통합 상태 (Spoolman, MQTT, HA)`,collectItem9:`네트워크 인터페이스 (서브넷만)`,collectItem10:`Python 패키지 버전`,collectItem11:`데이터베이스 상태 확인`,collectItem12:`Docker 환경 세부 정보`,bundleGenerating:`번들 생성 중...`,bundleStepConnection:`프린터 연결 확인 실행 중`,bundleStepVirtualPrinters:`가상 프린터 설정 확인 실행 중`,bundleStepLogScan:`알려진 문제가 있는지 최근 로그 스캔 중`,bundleStepBuild:`지원 번들 ZIP 빌드 중`},fileManager:{title:`파일 관리자`,subtitle:`인쇄 파일 정리 및 관리`,uploadFiles:`파일 업로드`,newFolder:`새 폴더`,folderName:`폴더 이름`,folderNamePlaceholder:`예: 기능성 부품`,renameFile:`파일 이름 바꾸기`,renameFolder:`폴더 이름 바꾸기`,invalidFilenameChar:`"{{char}}" 문자는 인쇄 파일 이름에 허용되지 않습니다. 프린터 SD 카드가 거부하는 문자: < > : " / \\ | ? *`,moveFiles:`{{count}}개 파일 이동`,rootNoFolder:`루트 (폴더 없음)`,current:`현재`,linkFolder:`폴더 연결`,linkFolderDescription:`"{{name}}"을(를) 프로젝트 또는 아카이브에 연결하여 빠른 접근.`,project:`프로젝트`,archive:`아카이브`,noProjectsFound:`프로젝트를 찾을 수 없음`,noArchivesFound:`아카이브를 찾을 수 없음`,unlink:`연결 해제`,link:`연결`,dragDropFiles:`파일을 여기에 드래그 앤 드롭`,dropFilesHere:`파일을 여기에 드롭`,releaseToUpload:`놓아서 업로드`,orClickToBrowse:`또는 클릭하여 탐색`,allFileTypesSupported:`모든 파일 형식 지원. ZIP 파일은 압축 해제됩니다.`,zipFilesDetected:`ZIP 파일 감지됨`,zipExtractOptions:`ZIP 파일이 압축 해제됩니다. 폴더 구조 처리 방법을 선택하세요:`,preserveZipStructure:`ZIP에서 폴더 구조 유지`,createFolderFromZip:`ZIP 파일 이름으로 폴더 생성`,stlThumbnailGeneration:`STL 썸네일 생성`,zipMayContainStl:`ZIP 파일에 STL 파일이 포함될 수 있습니다. 압축 해제 중 썸네일을 생성할 수 있습니다.`,thumbnailsCanBeGenerated:`STL 파일의 썸네일을 생성할 수 있습니다. 대형 모델은 처리 시간이 더 걸릴 수 있습니다.`,generateThumbnailsForStl:`STL 파일의 썸네일 생성`,threemfDetected:`3MF 파일 감지됨`,threemfExtractionInfo:`프린터 모델, 재료, 색상 및 인쇄 설정이 3MF 파일에서 자동으로 추출됩니다.`,willBeExtracted:`추출 예정`,filesExtracted:`{{count}}개 파일 추출됨`,uploadComplete:`업로드 완료: {{succeeded}}개 성공`,uploadFailed:`업로드 실패`,zipFilesFailed:`{{count}}개 파일 실패`,uploading:`업로드 중...`,changeLink:`링크 변경...`,linkTo:`연결 대상...`,linkToProjectOrArchive:`프로젝트 또는 아카이브에 연결`,generateThumbnail:`썸네일 생성`,generateThumbnails:`썸네일 생성`,generateThumbnailsForMissing:`썸네일이 없는 STL 파일의 썸네일 생성`,gridView:`격자 보기`,listView:`목록 보기`,lowDiskSpaceWarning:`디스크 공간 부족 경고`,lowDiskSpaceDetails:`전체 {{total}} 중 {{free}}만 남음. 임계값은 설정에서 {{threshold}}GB로 설정됩니다.`,files:`파일`,folders:`폴더`,size:`크기`,free:`여유`,allFiles:`모든 파일`,allExternal:`외부`,externalIsEmpty:`외부 파일 없음`,externalEmptyDescription:`연결된 외부 폴더의 파일이 여기에 표시됩니다.`,wrap:`줄 바꿈`,enableTextWrapping:`텍스트 줄 바꿈 활성화`,disableTextWrapping:`텍스트 줄 바꿈 비활성화`,collapse:`접기`,collapseFoldersByDefault:`기본적으로 폴더 접기`,expandFoldersByDefault:`기본적으로 폴더 펼치기`,folderSort:`폴더 정렬`,folderSortByName:`이름순`,folderSortByActivity:`최근 활동순`,dragToResizeTooltip:`드래그하여 크기 조정, 더블클릭하여 초기화`,searchFiles:`파일 검색...`,searchSubfoldersHint:`하위 폴더 포함`,readme:{truncated:`잘림`,show:`README 표시`,hide:`README 숨기기`,label:`README`},tags:{title:`태그`,subtitle:`파일에 가로지르는 필터용 라벨을 붙이세요 — 장난감, 어린이용, PETG 전용 등.`,manage:`태그`,manageTitle:`태그 카탈로그 관리`,add:`새 태그`,edit:`태그 이름 변경`,name:`이름`,fileCount:`파일`,empty:`아직 태그가 없습니다. 만들어서 파일에 라벨을 붙이세요.`,noMatches:`일치하는 태그가 없습니다.`,createPlaceholder:`예: 장난감, 어린이용, petg`,createButton:`만들기`,nameRequired:`이름은 필수입니다.`,searchPlaceholder:`태그 필터...`,created:`태그가 만들어졌습니다.`,updated:`태그 이름이 변경되었습니다.`,deleted:`태그가 제거되었습니다.`,saveFailed:`태그를 저장할 수 없습니다.`,deleteFailed:`태그를 제거할 수 없습니다.`,applyFailed:`태그를 적용할 수 없습니다.`,applyAdd:`태그 추가`,applyRemove:`태그 제거`,applyAddSuccess:`{{files}}개 파일에 태그 {{count}}개를 추가했습니다.`,applyRemoveSuccess:`{{files}}개 파일에서 태그 {{count}}개를 제거했습니다.`,actionAdd:`선택한 파일에 추가`,actionRemove:`선택한 파일에서 제거`,tagAction:`태그`,bulkTitle:`선택한 {{count}}개 파일에 태그 지정`,bulkTooltip:`선택한 모든 파일에 태그를 추가하거나 제거합니다.`,noPermission:`파일에 태그를 붙일 권한이 없습니다.`,filterLabel:`필터:`,clearAll:`모두 지우기`,confirmDelete:`태그 "{{name}}"을(를) 삭제하시겠습니까?`,confirmDeleteMessage:`카탈로그에서 태그를 제거합니다. 파일과 다른 태그는 그대로 유지됩니다.`,confirmDeleteInUseMessage:`이 태그는 {{count}}개 파일에 있습니다. 삭제하면 모든 파일에서 칩이 사라지지만 파일 자체는 변경되지 않습니다.`,editAria:`{{name}} 편집`,deleteAria:`{{name}} 삭제`},allTypes:`모든 유형`,prints:`인쇄물`,ascending:`오름차순`,descending:`내림차순`,showModified:`수정 날짜 표시`,hideModified:`수정 날짜 숨기기`,lastModified:`마지막 수정`,lastActivity:`마지막 활동`,resultsCount:`전체 {{total}}개 중 {{showing}}개`,selectAll:`모두 선택`,deselectAll:`모두 선택 해제`,selected:`{{count}}개 선택됨`,adding:`추가 중...`,loadingFiles:`파일 불러오는 중...`,folderIsEmpty:`폴더가 비어 있음`,noFilesYet:`파일 없음`,folderEmptyDescription:`파일을 업로드하거나 이 폴더로 이동하여 시작하세요.`,noFilesDescription:`파일을 업로드하여 인쇄 관련 파일을 정리하세요.`,noMatchingFiles:`일치하는 파일 없음`,noMatchingFilesDescription:`현재 검색 또는 필터 조건과 일치하는 파일이 없습니다.`,clearFilters:`필터 초기화`,printedCount:`{{count}}회 인쇄됨`,uploadedBy:`업로드한 사람`,deleteFolder:`폴더 삭제`,deleteFile:`파일 삭제`,deleteFilesCount:`{{count}}개 파일 삭제`,deleteFolderConfirm:`이 폴더를 삭제하시겠습니까? 안의 모든 파일도 삭제됩니다.`,deleteFileConfirm:`이 파일을 삭제하시겠습니까?`,deleteFilesConfirm:`선택한 {{count}}개 파일을 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.`,deleting:`삭제 중...`,noPermissionRenameFolder:`폴더 이름 변경 권한이 없습니다`,noPermissionLinkFolder:`폴더 연결 권한이 없습니다`,noPermissionDeleteFolder:`폴더 삭제 권한이 없습니다`,onlyEmptyFoldersDeletable:`빈 폴더만 삭제할 수 있습니다`,noPermissionPrint:`인쇄 권한이 없습니다`,noPermissionAddToQueue:`대기열 추가 권한이 없습니다`,noPermissionSlice:`파일 슬라이싱 권한이 없습니다`,noPermissionDownload:`파일 다운로드 권한이 없습니다`,noPermissionRenameFile:`파일 이름 변경 권한이 없습니다`,noPermissionGenerateThumbnail:`썸네일 생성 권한이 없습니다`,noPermissionDeleteFile:`파일 삭제 권한이 없습니다`,noPermissionCreateFolder:`폴더 생성 권한이 없습니다`,noPermissionUpload:`파일 업로드 권한이 없습니다`,noPermissionMoveFiles:`파일 이동 권한이 없습니다`,noPermissionDeleteFiles:`파일 삭제 권한이 없습니다`,linkExternal:`외부 연결`,linkExternalFolder:`외부 폴더 연결`,linkExternalFolderDescription:`호스트 디렉토리(NAS, USB, 네트워크 공유)를 파일 관리자에 마운트합니다. 파일은 복사되지 않고 원래 경로에서 직접 접근합니다.`,externalFolderNamePlaceholder:`예: NAS 인쇄물`,externalPath:`호스트 경로`,externalPathHelp:`Docker 호스트의 디렉토리 절대 경로. 컨테이너에 바인드 마운트되어야 합니다.`,readOnly:`읽기 전용`,readOnlyHelp:`업로드 및 삭제 방지`,showHiddenFiles:`숨김 파일 표시 (dotfiles)`,externalFolder:`외부 폴더`,scanFolder:`스캔`,toast:{folderCreated:`폴더 생성됨`,folderDeleted:`폴더 삭제됨`,fileDeleted:`파일 삭제됨`,filesDeleted:`{{count}}개 파일 삭제됨`,filesMoved:`파일 이동됨`,folderLinked:`폴더 연결됨`,folderUnlinked:`폴더 연결 해제됨`,externalFolderLinked:`외부 폴더 연결 및 스캔됨`,folderScanned:`스캔 완료: {{added}}개 추가, {{removed}}개 제거`,addedToQueue:`{{count}}개 파일을 대기열에 추가함`,addedToQueuePartial:`{{added}}개 추가됨, {{failed}}개 실패`,failedToAddToQueue:`파일 추가 실패: {{error}}`,fileRenamed:`파일 이름 변경됨`,folderRenamed:`폴더 이름 변경됨`,thumbnailsGenerated:`{{count}}개 썸네일 생성됨`,thumbnailsGeneratedPartial:`{{succeeded}}개 썸네일 생성됨, {{failed}}개 실패`,noStlMissingThumbnails:`썸네일이 없는 STL 파일 없음`,failedToGenerateThumbnails:`썸네일 생성 실패: {{error}}`,thumbnailGenerated:`썸네일 생성됨`,failedToGenerateThumbnail:`썸네일 생성 실패: {{error}}`}},projects:{title:`프로젝트`,subtitle:`3D 인쇄 프로젝트 정리 및 추적`,newProject:`새 프로젝트`,editProject:`프로젝트 편집`,deleteProject:`프로젝트 삭제`,projectName:`프로젝트 이름`,description:`설명`,noProjects:`프로젝트 없음`,noProjectsFiltered:`{{status}} 프로젝트 없음`,noProjectsFilteredHelp:`{{status}} 프로젝트가 없습니다. 상태가 변경되면 여기에 표시됩니다.`,createFirst:`첫 번째 프로젝트를 만들어 관련 인쇄물을 정리하고 진행 상황을 추적하며 빌드를 관리하세요.`,createFirstButton:`첫 번째 프로젝트 만들기`,create:`만들기`,files:`파일`,prints:`인쇄물`,plates:`플레이트`,parts:`부품`,lastModified:`마지막 수정`,deleteConfirm:`이 프로젝트를 삭제하시겠습니까? 아카이브 및 대기열 항목은 연결 해제되지만 삭제되지는 않습니다.`,addFiles:`파일 추가`,removeFile:`파일 제거`,viewDetails:`세부 정보 보기`,namePlaceholder:`예: Voron 2.4 빌드`,descriptionPlaceholder:`선택적 설명...`,urlLabel:`URL`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`URL은 http:// 또는 https://로 시작해야 합니다`,openExternalUrl:`프로젝트 URL 열기`,coverImageLabel:`커버 사진`,coverImageAlt:`프로젝트 커버 사진`,coverImageUpload:`업로드`,coverImageReplace:`교체`,coverImageRemove:`제거`,color:`색상`,targetPlates:`목표 플레이트`,targetPlatesPlaceholder:`예: 25`,targetPlatesHelp:`인쇄 작업 수`,targetParts:`목표 부품`,targetPartsPlaceholder:`예: 150`,targetPartsHelp:`필요한 총 개체 수`,targetSets:`파일당 복사본 수`,targetSetsPlaceholder:`예: 10`,targetSetsHelp:`각 인쇄 가능한 파일을 인쇄할 횟수`,tagsLabel:`태그 (쉼표로 구분)`,tagsPlaceholder:`예: voron, 기능성, 선물`,dueDate:`마감일`,priority:`우선순위`,priorityLow:`낮음`,priorityNormal:`보통`,priorityHigh:`높음`,priorityUrgent:`긴급`,statusActive:`활성`,statusCompleted:`완료됨`,statusArchived:`보관됨`,done:`완료`,completed:`완료됨`,failed:`실패`,inQueue:`대기 중`,noPrintsYet:`인쇄물 없음`,printJobs:`인쇄 작업 (플레이트)`,partsPrinted:`인쇄된 부품`,failedParts:`실패한 부품`,import:`가져오기`,export:`내보내기`,importProject:`프로젝트 가져오기`,exportAll:`모든 프로젝트 내보내기`,loading:`프로젝트 불러오는 중...`,noEditPermission:`프로젝트 편집 권한이 없습니다`,noDeletePermission:`프로젝트 삭제 권한이 없습니다`,noCreatePermission:`프로젝트 생성 권한이 없습니다`,noImportPermission:`프로젝트 가져오기 권한이 없습니다`,noExportPermission:`프로젝트 내보내기 권한이 없습니다`,toast:{created:`프로젝트 생성됨`,updated:`프로젝트 업데이트됨`,deleted:`프로젝트 삭제됨`,imported:`프로젝트 가져옴`,multipleImported:`{{count}}개 프로젝트 가져옴`,importFailed:`가져오기 실패`,exported:`프로젝트 내보냄 (메타데이터만)`}},projectDetail:{notFound:`프로젝트를 찾을 수 없음`,backToProjects:`프로젝트로 돌아가기`,export:`내보내기`,exportProject:`프로젝트 내보내기`,noExportPermission:`프로젝트 내보내기 권한이 없습니다`,noEditPermission:`프로젝트 편집 권한이 없습니다`,partOf:`속한 프로젝트:`,priorityLabel:`우선순위:`,noPrints:`이 프로젝트에 아직 인쇄물이 없습니다`,status:{active:`활성`,completed:`완료됨`,archived:`보관됨`},priority:{low:`낮음`,normal:`보통`,high:`높음`,urgent:`긴급`},dueDate:{overdue:`기한 초과`,today:`오늘 마감`,daysLeft:`{{count}}일 남음`},progress:{platesProgress:`플레이트 진행률`,partsProgress:`부품 진행률`,setsProgress:`완성된 세트`,sets:`세트`,setsHint:`모든 인쇄 가능한 파일이 이 횟수에 도달하면 세트가 완성됩니다`,printJobs:`인쇄 작업`,parts:`부품`,percentComplete:`{{percent}}% 완료`,remaining:`{{count}}개 남음`},stats:{printJobs:`인쇄 작업`,total:`합계`,failed:`{{count}}개 실패`,partsPrinted:`{{count}}개 부품 인쇄됨`,printTime:`인쇄 시간`,filamentUsed:`사용된 필라멘트`},cost:{title:`비용 추적`,filamentCost:`필라멘트 비용`,energy:`에너지`,totalCost:`총 비용`,total:`합계`,includesBom:`BOM 포함`,budget:`예산`,remaining:`남은 예산`},subProjects:{title:`하위 프로젝트 ({{count}})`},notes:{title:`메모`,noEditPermission:`메모 편집 권한이 없습니다`,placeholder:`이 프로젝트에 대한 메모 추가...`,empty:`아직 메모가 없습니다. 편집을 클릭하여 메모를 추가하세요.`},files:{title:`파일`,linkFolders:`파일 관리자에서 폴더 연결`,forQuickAccess:`빠른 접근을 위해 이 프로젝트에 연결합니다.`,fileCount:`{{count}}개 파일`,empty:`연결된 폴더가 없습니다. 파일 관리자로 이동하여 폴더를 이 프로젝트에 연결하세요.`,printedCount:`{{count}}회 인쇄됨`,progressTooltip:`{{target}}회 중 {{done}}회 인쇄 완료`,noFiles:`이 폴더에 파일이 없습니다.`},bom:{title:`부품 목록`,acquired:`{{total}}개 중 {{completed}}개 확보`,showAll:`전체 표시`,hideDone:`완료된 것 숨기기`,addPart:`부품 추가`,noAddPermission:`부품 추가 권한이 없습니다`,partNamePlaceholder:`부품 이름 (예: M3x8 나사)`,partName:`부품 이름`,qty:`수량`,price:`가격 ({{currency}})`,sourcingUrlPlaceholder:`구매 URL (선택사항)`,remarksPlaceholder:`비고 (선택사항)`,deletePart:`부품 삭제`,deleteConfirm:`"{{name}}"을(를) 삭제하시겠습니까?`,noUpdatePermission:`부품 업데이트 권한이 없습니다`,noEditPermission:`부품 편집 권한이 없습니다`,noDeletePermission:`부품 삭제 권한이 없습니다`,totalCost:`총 비용:`,empty:`부품 목록에 부품이 없습니다. 하드웨어, 전자 부품 또는 기타 구성품을 추가하여 조달이 필요한 것을 추적하세요.`},timeline:{title:`활동 타임라인`,empty:`아직 활동이 없습니다.`},template:{saveAsTemplate:`템플릿으로 저장`,noCreatePermission:`템플릿 생성 권한이 없습니다`},queue:{title:`대기열`,viewAll:`전체 보기`,printing:`{{count}}개 인쇄 중`,queued:`{{count}}개 대기 중`},prints:{title:`인쇄물 ({{count}})`},toast:{projectUpdated:`프로젝트 업데이트됨`,partAdded:`부품 추가됨`,partRemoved:`부품 제거됨`,exportFailed:`내보내기 실패`,projectExported:`프로젝트 내보냄`,templateCreated:`템플릿 생성됨`}},system:{title:`시스템 정보`,version:`버전`,uptime:`가동 시간`,cpuUsage:`CPU 사용량`,memoryUsage:`메모리 사용량`,diskUsage:`디스크 사용량`,networkInfo:`네트워크 정보`,logs:`로그`,debugMode:`디버그 모드`,enableDebug:`디버그 로깅 활성화`,disableDebug:`디버그 로깅 비활성화`,downloadLogs:`로그 다운로드`,clearLogs:`로그 초기화`,dockerInfo:`Docker 정보`,containerName:`컨테이너 이름`,imageName:`이미지 이름`,platform:`플랫폼`,architecture:`아키텍처`},sponsors:{sectionTitle:`독립적·커뮤니티 후원`,tagline:`Bambuddy는 무료이며, 자발적으로 후원하는 사용자 덕분에 계속 무료로 유지됩니다. VC도 없고, 클라우드 종속도 없습니다.`,viewSupporters:`후원자 보기`,toastPrints:`Bambuddy로 {{count}}회 인쇄를 완료했습니다. Bambuddy는 후원자 덕분에 무료로 유지됩니다.`,toastCost:`Bambuddy로 {{total}}만큼의 필라멘트를 추적했습니다. 프로젝트를 독립적으로 유지하는 사람들을 만나보세요.`,toastArchives:`Bambuddy로 {{count}}회 인쇄를 아카이브했습니다. 독립성을 지지하는 사람들을 만나보세요.`,toastAnniversary:`Bambuddy와 함께한 지 1년입니다! 프로젝트를 독립적으로 유지하는 사람들을 만나보세요.`,toastVersionUpdate:`v{{version}}로 업데이트되었습니다. Bambuddy는 후원자 덕분에 무료로 유지됩니다.`,toastBusiness:`프린터 {{count}}대에서 Bambuddy를 운영 중이신가요? 팀을 위한 지원 플랜이 있습니다. 우선 수정, 인보이스 발행, 메인테이너와의 직접 소통을 제공합니다.`,businessCta:`비즈니스용 Bambuddy`,businessTitle:`비즈니스용 Bambuddy`,businessTagline:`프린터 {{count}}대를 운영 중입니다. 팀과 프린트 팜을 위한 우선 지원, 상용 라이선스, 인보이스 발행을 제공합니다.`},library:{title:`필라멘트 라이브러리`,addFilament:`필라멘트 추가`,editFilament:`필라멘트 편집`,deleteFilament:`필라멘트 삭제`,vendor:`제조사`,material:`재료`,color:`색상`,kFactor:`K 계수`,temperature:`온도`,noFilaments:`라이브러리에 필라멘트 없음`,deleteConfirm:`이 필라멘트를 삭제하시겠습니까?`,importFromPrinter:`프린터에서 가져오기`,exportToFile:`파일로 내보내기`,runWithPipeline:{actionLabel:`파이프라인으로 실행`,noPermission:`파이프라인을 실행할 권한이 없습니다`,modalTitle:`파이프라인으로 실행`,confirmTitle:`실행 확인`,confirmIntro:`사전 점검에서 이 실행과 관련된 문제를 발견했습니다`,sourceHint:`소스`,pipelineHint:`파이프라인`,targetHint:`대상`,pipelineListAria:`사용 가능한 파이프라인`,runAnyway:`그래도 실행`,loading:`불러오는 중…`,empty:`저장된 파이프라인이 없습니다. 슬라이스 대화상자를 열고 "파이프라인으로 저장"을 클릭하여 생성하세요.`,noTarget:`대상 프린터가 설정되지 않음`,noTargetMessage:`이 파이프라인에는 대상 프린터가 없습니다. 설정에서 열어 선택하세요.`,copies:`사본 수`,copiesHint:`최대 {{n}}`,classTarget:`임의의 {{model}}`,toast:{started:`파이프라인 실행 시작됨`,failed:`실행을 시작할 수 없습니다`},issue:{printerNotSet:`이 파이프라인에 대상 프린터가 설정되어 있지 않습니다.`,printerNotFound:`대상 프린터가 더 이상 존재하지 않습니다.`,printerDisabled:`대상 프린터가 비활성화되어 있습니다.`,printerOffline:`대상 프린터가 오프라인입니다.`,filamentType:`필라멘트 슬롯 {{slot}}: 예상 {{expected}}, AMS 실제 {{actual}}`,filamentColor:`필라멘트 슬롯 {{slot}}: 색상이 다릅니다 (예상 {{expected}}, AMS {{actual}})`,amsSlotMissing:`AMS 슬롯 {{slot}}이(가) 이 프린터에서 사용 불가`,filamentUnverified:`필라멘트 슬롯 {{slot}}은(는) 클라우드/표준 프리셋이며 정적으로 검증할 수 없습니다.`,noClassMatches:`이 설치에서 파이프라인의 대상 모델 클래스({{expected}})와 일치하는 프린터가 없습니다.`,classNotSet:`파이프라인 대상이 프린터 클래스로 설정되었지만 모델이 선택되지 않았습니다.`}}},slice:{title:`모델 슬라이싱`,action:`슬라이싱`,slicing:`슬라이싱 중…`,printer:`프린터 프로필`,process:`프로세스 프로필`,filament:`필라멘트 프로필`,filamentSlot:`필라멘트 {{index}} ({{type}})`,selectPreset:`— 프리셋 선택 —`,loadingPresets:`프리셋 불러오는 중…`,analyzingPlateFilaments:`플레이트 필라멘트 분석 중…`,analyzingPlateFilamentsHint:`이 플레이트가 사용하는 AMS 슬롯을 확인하기 위해 미리보기 슬라이싱을 실행합니다. 캐시 후에는 재오픈이 즉각적입니다.`,previewToast:`{{name}} 분석 중 — {{elapsed}}`,previewWithProgress:`{{name}} 분석 중 — {{stage}} ({{percent}}%) — {{elapsed}}`,notUsedByPlate:`— 이 플레이트에서 사용되지 않음`,noPresetsForSlot:`사용 가능한 프리셋 없음`,presetsLoadFailed:`프리셋 불러오기 실패. 먼저 설정 → 프로필에서 가져오세요.`,refreshPresets:`새로 고침`,refreshPresetsTitle:`프리셋 새로 고침 — 최신 클라우드 및 번들 목록 가져오기 (Bambu Studio 또는 Bambu Handy에서 프리셋 삭제 후 사용)`,allPresetsRequired:`모든 프리셋을 선택해야 합니다`,useEmbedded:`파일에 포함된 설정 사용`,useEmbeddedHint:`위 프로필 대신 디자이너가 설정한 대로(벽, 내부 채움, 필라멘트) 슬라이싱합니다. 프린터가 파일과 일치하여 사용할 수 있습니다.`,designSettings:`디자이너 설정 유지`,designSettingsHint:`이 파일은 기본 프로파일에서 {{count}}개의 출력 설정을 변경합니다.`,designSettingsSelected:`{{total}}개 중 {{selected}}개 선택됨`,designSettingsPrinterCoupled:`프린터 전용`,designSettingsPrinterCoupledHint:`이 파일이 대상으로 한 프린터에 맞춘 값입니다. 사용 중인 프린터에서는 잘못되었거나 범위를 벗어날 수 있습니다.`,enqueuing:`슬라이싱 작업 제출 중…`,queued:`대기 중…`,failed:`슬라이싱 실패. 슬라이서 사이드카 로그를 확인하세요.`,startedToast:`백그라운드에서 {{name}} 슬라이싱 중…`,queuedToast:`대기 중: {{name}} — {{elapsed}}`,runningToast:`{{name}} 슬라이싱 중 — {{elapsed}}`,runningWithProgress:`{{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,completedToast:`{{name}} 슬라이싱 완료`,failedToast:`{{name}} 슬라이싱 실패: {{detail}}`,tier:{local:`가져온 것`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`표준`},cloud:{notAuthenticated:`클라우드 프리셋을 보려면 Bambu Cloud에 로그인하세요 (설정 → 프로필 → Bambu Cloud).`,expired:`Bambu Cloud 세션이 만료되었습니다 — 다시 로그인하여 클라우드 프리셋을 새로고침하세요.`,unreachable:`현재 Bambu Cloud에 연결할 수 없습니다. 로컬 및 표준 프리셋은 계속 작동합니다.`},orcaCloud:{notAuthenticated:`Orca 프리셋을 보려면 Orca Cloud (프로필 → Orca Cloud)에 로그인하세요.`,expired:`Orca Cloud 세션이 만료되었습니다 — Orca 프리셋을 새로고침하려면 다시 로그인하세요.`,unreachable:`Orca Cloud에 현재 연결할 수 없습니다. 다른 프리셋은 계속 작동합니다.`},actionAll:`{{count}}개 플레이트 모두 슬라이싱`,actionAllTitle:`모든 플레이트를 단일 다중 플레이트 출력으로 슬라이싱합니다 (단일 아카이브). 필라멘트 선택은 프로젝트가 정의하는 모든 슬롯을 포함합니다.`,allPlatesToggle:`{{count}}개 플레이트 모두 슬라이싱`,otherPrinters:`다른 프린터`,runningWithProgressMultiPlate:`플레이트 {{plateIndex}}/{{plateCount}} • {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,failedTitle:`슬라이싱 실패`,bedType:{label:`빌드 플레이트`,auto:`자동 (프로세스 프리셋 사용)`,coolPlate:`쿨 플레이트`,coolPlateSuperTack:`쿨 플레이트 슈퍼택`,engineering:`엔지니어링 플레이트`,highTemp:`고온 플레이트`,texturedPEI:`텍스처 PEI 플레이트`,smoothPEI:`매끄러운 PEI 플레이트`},pipelines:{label:`파이프라인`,applyAria:`파이프라인 적용`,applyPrompt:`파이프라인 적용…`,empty:`저장된 파이프라인이 없습니다`,saveButton:`파이프라인으로 저장`,saveTitle:`현재 네 개 슬롯의 선택을 재사용 가능한 파이프라인으로 저장합니다`,namePlaceholder:`파이프라인 이름`,nameAria:`새 파이프라인 이름`,toast:{applied:`"{{name}}" 적용됨`,saved:`파이프라인이 저장되었습니다`,saveFailed:`저장 실패`}}},spoolman:{title:`Spoolman 통합`,enabled:`Spoolman 활성화됨`,url:`Spoolman URL`,connected:`연결됨`,disconnected:`연결되지 않음`,testConnection:`연결 테스트`,sync:`동기화`,syncing:`동기화 중...`,lastSync:`마지막 동기화`,linkToSpoolman:`Spoolman에 연결`,openInSpoolman:`Spoolman에서 열기`,unlinkSpool:`스풀 연결 해제`,unlinkConfirmTitle:`스풀 할당 해제?`,unlinkConfirmMessage:`이 슬롯에서 스풀을 제거합니다. 스풀 데이터 자체는 변경되지 않습니다.`,selectSpool:`스풀 선택`,noUnlinkedSpools:`할당되지 않은 스풀 없음`,linkSuccess:`스풀이 성공적으로 할당되었습니다`,linkFailed:`스풀 할당 실패`,unlinkSuccess:`스풀이 성공적으로 할당 해제되었습니다`,unlinkFailed:`스풀 할당 해제 실패`,linkedSpool:`할당된 스풀`,spoolId:`스풀 ID`,fillSourceLabel:`(Spoolman)`,weight:`무게`,remaining:`남은 양`,disableWeightSync:`AMS 예상 무게 동기화 비활성화`,disableWeightSyncDesc:`AMS 추정치에서 남은 용량을 업데이트하지 않습니다. AMS 백분율 기반 추정 대신 Spoolman의 사용량 추적을 선호하는 경우 사용하세요. 새 스풀은 여전히 AMS 추정치를 초기 무게로 사용합니다.`,reportPartialUsage:`실패한 인쇄물에 대한 부분 사용량 보고`,reportPartialUsageDesc:`인쇄가 실패하거나 취소될 때 레이어 진행률을 기반으로 해당 시점까지 사용된 예상 필라멘트를 보고합니다.`},locations:{title:`보관 위치`,subtitle:`스풀의 선반, 서랍 등 물리적 보관 장소를 관리합니다`,add:`위치 추가`,addShort:`추가`,edit:`위치 편집`,name:`이름`,spools:`스풀`,empty:`아직 보관 위치가 없습니다. 첫 번째 선반이나 서랍을 만드세요.`,manage:`위치`,createPlaceholder:`예: 선반 A, 서랍 1`,nameRequired:`위치 이름은 필수입니다`,created:`위치가 생성되었습니다`,updated:`위치가 업데이트되었습니다`,deleted:`위치가 삭제되었습니다`,saveFailed:`위치 저장에 실패했습니다`,deleteFailed:`위치 삭제에 실패했습니다`,deleteBlocked:`삭제하기 전에 이 위치의 모든 스풀을 옮기세요`,confirmDelete:`"{{name}}"을(를) 삭제하시겠습니까?`,confirmDeleteMessage:`이 위치가 카탈로그에서 제거됩니다. 스풀을 먼저 옮겨야 합니다.`},inventory:{title:`스풀 재고`,addToInventory:`인벤토리에 추가`,addToInventoryPending:`추가 중...`,addToInventorySuccess:`스풀이 인벤토리에 추가됨`,addToInventoryFailed:`스풀을 인벤토리에 추가하지 못함`,unknownSpoolTitle:`새 필라멘트 감지됨`,unknownSpoolMessage:`{{location}}에서 알 수 없는 RFID 태그가 있는 스풀이 감지되었습니다. 지금 인벤토리에 추가하시겠습니까?`,unknownSpoolSlot:`슬롯`,bulk:{selectAllVisible:`표시된 항목 모두 선택`,selectRow:`행 선택`,selectGroup:`그룹 선택`,selectionCount:`{{count}}개 선택됨`,edit:`편집`,printLabels:`라벨 인쇄`,resetUsage:`사용량 재설정`,restore:`복원`,archive:`보관`,delete:`삭제`,clearSelection:`선택 해제`,editTitle:`스풀 일괄 편집`,editSubtitle:`선택한 {{count}}개의 스풀에 적용됩니다. 체크한 필드만 업데이트됩니다.`,editHint:`필드에 입력하면 업데이트할 항목으로 표시됩니다 — 체크된 행만 전송됩니다. 빈 필드는 스풀을 변경하지 않습니다 (필드 비우기는 개별 스풀에서만 가능).`,useCustom:`"{{value}}" 사용`,toggleField:`이 필드의 업데이트 전환`,changeCount:`{{count}}개의 필드가 업데이트됩니다.`,applyPending:`적용 중...`,applyButton:`{{count}}개에 적용`,deleteTitle:`선택한 스풀 삭제`,archiveTitle:`선택한 스풀 보관`,restoreTitle:`선택한 스풀 복원`,resetUsageTitle:`선택한 스풀의 사용량 재설정`,deleteMessage:`{{count}}개의 스풀을 영구적으로 삭제하시겠습니까? 되돌릴 수 없습니다.`,archiveMessage:`{{count}}개의 스풀을 보관하시겠습니까? 나중에 복원할 수 있습니다.`,restoreMessage:`{{count}}개의 보관된 스풀을 복원하시겠습니까?`,resetUsageMessage:`{{count}}개의 스풀에서 "총 사용량" 카운터를 재설정하시겠습니까? 남은 무게는 보존됩니다.`,updateSuccess:`{{count}}개의 스풀 업데이트됨`,updateFailed:`일괄 업데이트 실패`,updatePartial:`{{ok}}개 업데이트, {{failed}}개 실패`,updateAllFailed:`{{count}}개의 업데이트가 모두 실패했습니다 — 재시도를 위해 선택이 유지됩니다`,deleteSuccess:`{{count}}개의 스풀 삭제됨`,deleteFailed:`일괄 삭제 실패`,deletePartial:`{{ok}}개 삭제, {{failed}}개 실패`,deleteAllFailed:`{{count}}개의 삭제가 모두 실패했습니다 — 재시도를 위해 선택이 유지됩니다`,archiveSuccess:`{{count}}개의 스풀 보관됨`,archiveFailed:`일괄 보관 실패`,archivePartial:`{{ok}}개 보관, {{failed}}개 실패`,archiveAllFailed:`{{count}}개의 보관이 모두 실패했습니다 — 재시도를 위해 선택이 유지됩니다`,restoreSuccess:`{{count}}개의 스풀 복원됨`,restoreFailed:`일괄 복원 실패`,restorePartial:`{{ok}}개 복원, {{failed}}개 실패`,restoreAllFailed:`{{count}}개의 복원이 모두 실패했습니다 — 재시도를 위해 선택이 유지됩니다`,invalidHex:`16진수 6자(RRGGBB) 또는 8자(RRGGBBAA)를 입력하세요. 그렇지 않으면 필드가 적용되지 않습니다.`},spoolmanMixedContentTitle:`HTTPS에서 Spoolman을 불러올 수 없음 — 브라우저가 혼합 콘텐츠를 차단함`,spoolmanMixedContentBody:`Bambuddy가 HTTPS로 서비스되고 있지만 Spoolman URL은 여전히 HTTP입니다. 브라우저는 보안상 혼합 콘텐츠를 차단하므로 내장된 Spoolman UI가 렌더링되지 않습니다. 이 기능이 작동하려면 Spoolman이 HTTPS로 접근 가능해야 합니다.`,spoolmanMixedContentFixReverseProxy:`Spoolman을 Bambuddy와 같은 리버스 프록시(Traefik / Nginx / Caddy) 뒤에 HTTPS로 배치한 다음 설정에서 Spoolman URL을 새 HTTPS 주소로 업데이트하세요.`,spoolmanMixedContentFixOpenNewTab:`임시 방편으로 HTTP로 새 브라우저 탭에서 Spoolman을 여세요 — 혼합 콘텐츠 규칙은 내장 프레임에만 적용되므로 독립 탭은 여전히 작동합니다.`,spoolmanOpenInNewTab:`새 탭에서 Spoolman 열기`,labels:{title:`스풀 라벨 인쇄`,selectedCount:`{{count}}개 선택됨`,pickSpools:`라벨을 인쇄할 스풀 선택:`,monochrome:`흑백 (흑백 프린터)`,monochromeHint:`색상 견본을 제거하고 텍스트를 넓힙니다`,searchPlaceholder:`이름, 브랜드 또는 #ID 검색`,filterByMaterial:`재료:`,allMaterials:`전체`,selectVisible:`보이는 모든 항목 선택 ({{count}})`,deselectVisible:`보이는 항목 선택 해제`,clearAll:`모두 초기화`,noSpoolsToShow:`표시할 스풀이 없습니다. 필터를 조정하고 다시 시도하세요.`,noMatches:`현재 검색 또는 필터와 일치하는 스풀이 없습니다.`,printOne:`이 스풀의 라벨 인쇄`,printLabels:`라벨 인쇄…`,bulkTitle:`현재 표시된 {{count}}개에서 라벨을 인쇄할 스풀 선택`,noSpoolsTitle:`라벨을 붙일 스풀 없음`,error:`라벨을 생성할 수 없습니다: {{msg}}`,templates:{box40x30:{label:`박스 라벨 (40 × 30 mm)`,hint:`페이지당 단일 라벨; 일반 DK/Brother 롤 크기, 필라멘트 가방 및 보관함 라벨에 적합.`},box:{label:`박스 라벨 (62 × 29 mm)`,hint:`페이지당 단일 라벨; Brother PT/QL 및 Dymo 소형 라벨에 맞는 크기.`},averyL7160:{label:`Avery L7160 — A4 시트 (38.1 × 63.5 mm × 21)`,hint:`EU 시트; A4 페이지당 21개 라벨.`},avery5160:{label:`Avery 5160 — US Letter 시트 (25.4 × 66.7 mm × 30)`,hint:`US 시트; Letter 페이지당 30개 라벨.`},amsHolderSmall:{label:`AMS 홀더 — 소형 (74 × 33 mm)`,hint:`페이지당 단일 레이블; MakerWorld 모델 752566 (AMS 필라멘트 레이블 홀더)의 인쇄 가능 레이블과 일치합니다.`},amsHolderLarge:{label:`AMS 홀더 — 대형 (75 × 55 mm)`,hint:`페이지당 단일 레이블; AMS 필라멘트 레이블 홀더의 카드스톡 삽입 변형에 맞습니다. 스와치, 브랜드, 재질, ID, QR 코드에 충분한 공간이 있습니다.`}},sortBy:{label:`정렬:`,id:`ID 순`,color:`색상 순`}},csv:{importButton:`CSV 가져오기`,exportButton:`CSV 내보내기`,modalTitle:`CSV에서 스풀 가져오기`,selectFile:`CSV 파일을 선택하거나 여기로 끌어다 놓으세요`,dragHint:`헤더: material(필수), brand, subtype, color_name, rgba, …`,parsing:`파일을 읽는 중…`,previewError:`CSV 파일을 읽을 수 없습니다`,validCount:`유효 {{count}}개`,errorCount:`오류 {{count}}개`,skippedCount:`건너뜀 {{count}}개`,colRow:`행`,colStatus:`상태`,colColor:`색상`,colorResolved:`카탈로그에서 색상 채움`,colorCrossMaterial:`다른 재료에서 색상을 가져옴 — 카탈로그에 정확히 일치하는 항목 없음`,duplicateExisting:`이 재료, 브랜드, 색상의 스풀이 이미 존재합니다 — 그래도 새 스풀로 가져옵니다`,spoolmanHint:`Spoolman 모드에서는 Spoolman의 기본 CSV 가져오기/내보내기를 사용하세요.`,importValidRows:`유효한 {{count}}개 행 가져오기`,noValidRows:`유효한 행 없음`,importing:`가져오는 중…`,importSuccess:`{{count}}개 스풀을 가져왔습니다`,importError:`가져오기 실패`,exportError:`내보내기 실패`},addSpool:`스풀 추가`,editSpool:`스풀 편집`,copySpool:`스풀 복사`,material:`재료`,selectMaterial:`재료 선택...`,subtype:`하위 유형`,brand:`브랜드`,searchBrand:`브랜드 검색...`,useCustomBrand:`"{{brand}}" 사용`,useCustomMaterial:`사용자 지정 재료 사용: {{material}}`,suggestedOptions:`추천`,allOptions:`전체`,colorName:`색상 이름`,colorNamePlaceholder:`제이드 화이트, 파이어 레드...`,color:`색상`,hexColor:`16진수 색상`,pickColor:`사용자 지정 색상 선택`,labelWeight:`라벨 무게`,coreWeight:`빈 스풀 무게`,searchSpoolWeight:`스풀 무게 검색...`,weightUsed:`사용됨`,currentWeight:`남은 무게`,measuredWeight:`측정된 무게`,spoolName:`스풀`,costPerKg:`kg당 비용`,storageLocation:`보관 위치`,storageLocationPlaceholder:`예: 선반 A, 서랍 1`,openInInventory:`재고에서 열기`,measuredWeightError:`측정된 무게는 {{min}}g과 {{max}}g 사이여야 합니다.`,slicerFilament:`슬라이서 필라멘트`,slicerFilamentName:`슬라이서 프리셋 이름`,slicerPreset:`슬라이서 프리셋`,searchPresets:`필라멘트 프리셋 검색...`,selectedPreset:`선택됨`,noPresetsFound:`프리셋을 찾을 수 없음`,tempOverrides:`온도 재정의`,note:`메모`,notePlaceholder:`이 스풀에 대한 추가 메모...`,category:`카테고리`,categoryPlaceholder:`예: 생산, 프로토타입, 고객 A`,categoryNone:`미분류`,lowStockThresholdOverride:`재고 부족 임계값 (이 스풀)`,lowStockThresholdOverrideHelp:`전역 임계값({{global}}%)을 사용하려면 비워두세요.`,clearRfid:`RFID 태그 초기화`,rfidCleared:`RFID 태그가 초기화되었습니다`,archive:`보관`,restore:`복원`,noSpools:`아직 스풀이 없습니다. 첫 번째 스풀을 추가하여 시작하세요.`,noAvailableSpools:`사용 가능한 스풀이 없습니다. 재고에 스풀을 추가하거나 먼저 다른 슬롯에서 해제하세요.`,kProfiles:`K-프로필`,addKProfile:`K-프로필 추가`,assignSpool:`스풀 할당`,unassignSpool:`할당 해제`,assignSuccess:`스풀 할당 및 AMS 슬롯 구성됨`,assignPendingInsert:`할당됨. 스풀을 삽입하면 슬롯이 구성됩니다.`,assignFailed:`스풀 할당 실패`,selectSpool:`이 슬롯에 할당할 스풀 선택`,assigned:`할당됨`,assigning:`할당 중...`,searchSpools:`스풀 검색...`,showAllSpools:`모든 스풀 표시`,spoolmanSpools:`Spoolman 스풀`,allMaterials:`모든 재료`,filterByBrand:`브랜드로 필터...`,showArchived:`보관된 항목 표시`,quickAdd:`빠른 추가 (재고)`,quantity:`수량`,stock:`재고`,configured:`구성됨`,spoolsCreated:`{{count}}개 스풀 생성됨`,spoolsPartiallyCreated:`{{total}}개 중 {{created}}개 스풀 생성됨 (일부 실패)`,spoolCreated:`스풀 생성됨`,spoolUpdated:`스풀 업데이트됨`,spoolDeleted:`스풀 삭제됨`,deepLinkSpoolNotFound:`스풀을 찾을 수 없음`,deepLinkFetchFailed:`스풀을 불러올 수 없음 — 다시 시도하세요`,spoolArchived:`스풀 보관됨`,spoolRestored:`스풀 복원됨`,kProfileSaveFailed:`K-프로필 설정을 저장할 수 없습니다`,syncWeightSpoolNotFound:`스풀을 찾을 수 없음 — 삭제되었을 수 있습니다`,syncWeightSpoolmanUnreachable:`Spoolman에 연결할 수 없음 — 나중에 다시 시도하세요`,syncWeightFailed:`무게 동기화 실패`,spoolmanUnreachable:`Spoolman에 연결할 수 없습니다 — 나중에 다시 시도하세요`,deleteSpoolNotFound:`스풀을 찾을 수 없음 — 이미 삭제되었을 수 있습니다`,deleteFailed:`스풀 삭제 실패`,archiveSpoolNotFound:`스풀을 찾을 수 없음 — 이미 삭제되었을 수 있습니다`,archiveFailed:`스풀 보관 실패`,restoreSpoolNotFound:`스풀을 찾을 수 없음 — 이미 삭제되었을 수 있습니다`,restoreFailed:`스풀 복원 실패`,saveFailed:`변경 사항 저장 실패`,tagClearFailed:`태그 초기화 실패`,deleteConfirm:`이 스풀을 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.`,archiveConfirm:`이 스풀을 보관하시겠습니까?`,advancedSettings:`고급 설정`,filamentInfoTab:`필라멘트 정보`,paProfileTab:`PA 프로필`,filamentInfo:`필라멘트`,additional:`추가`,loadingPresets:`클라우드 프리셋 불러오는 중...`,cloudConnected:`클라우드 연결됨`,cloudNotConnected:`클라우드 연결되지 않음 (기본값 사용)`,recentColors:`최근`,searchColors:`색상 검색...`,searchResults:`검색 결과`,allColors:`모든 색상`,commonColors:`일반 색상`,showLess:`간략히 보기`,showAll:`모두 보기`,noColorsFound:`검색과 일치하는 색상 없음`,noResults:`일치하는 항목 없음`,extraColorsLabel:`추가 색상`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`2~8개의 16진수 색상값을 쉼표로 구분하여 붙여넣으세요. 그라데이션으로 렌더링됩니다.`,extraColorsInvalid:`유효하지 않은 16진수 무시됨: {{tokens}}`,colorEffectLabel:`효과`,colorEffect:{none:`없음`,sparkle:`스파클`,wood:`우드`,marble:`마블`,glow:`글로우`,matte:`매트`,silk:`실크`,galaxy:`갤럭시`,rainbow:`레인보우`,metal:`메탈`,translucent:`반투명`,gradient:`그라데이션`,dualColor:`듀얼 컬러`,triColor:`트리 컬러`,multicolor:`멀티컬러`},selectMaterialFirst:`먼저 필라멘트 정보 탭에서 재료를 선택해 주세요.`,noPrintersConfigured:`구성된 프린터 없음. PA 프로필을 사용하려면 프린터를 추가하세요.`,matchingFilter:`일치`,anyBrand:`모든 브랜드`,anyVariant:`모든 변형`,autoSelect:`자동 선택`,matches:`일치`,match:`일치`,noMatches:`일치 없음`,connected:`연결됨`,offline:`오프라인`,printerOffline:`프린터가 오프라인입니다. 연결하여 보정 프로필을 확인하세요.`,noKProfilesMatch:`선택한 필라멘트와 일치하는 K-프로필이 없습니다.`,leftNozzle:`왼쪽 노즐`,rightNozzle:`오른쪽 노즐`,profilesSelected:`보정 프로필 선택됨`,totalInventory:`총 재고`,totalConsumed:`총 소비량`,byMaterial:`재료별`,inPrinter:`프린터 내`,lowStock:`재고 부족`,sinceTracking:`추적 시작 이후`,loadedInAms:`AMS/외부에 장착됨`,remaining:`남은 양`,weightCheck:`무게 확인`,lastWeighed:`마지막 계량`,neverWeighed:`계량 기록 없음`,search:`스풀 검색...`,showing:`표시 중`,to:`~`,of:`/`,show:`표시`,spools:`스풀`,spool:`스풀`,page:`페이지`,noSpoolsMatch:`결과를 찾을 수 없음`,noSpoolsMatchDesc:`검색 또는 필터를 조정하여 원하는 항목을 찾아보세요.`,active:`활성`,archived:`보관됨`,all:`전체`,used:`사용됨`,new:`새것`,clearFilters:`필터 초기화`,table:`테이블`,cards:`카드`,net:`순`,groupSimilar:`그룹화`,groupedSpools:`동일한 스풀 {{count}}개`,groupedRows:`행`,columns:`열`,configureColumns:`열 구성`,configureColumnsDesc:`드래그하여 열 순서를 변경하거나 화살표를 사용하세요. 눈 아이콘으로 표시 여부를 전환합니다.`,visible:`표시됨`,reset:`초기화`,cancel:`취소`,applyChanges:`변경 사항 적용`,moveUp:`위로 이동`,moveDown:`아래로 이동`,hideColumn:`열 숨기기`,showColumn:`열 표시`,linkToSpool:`스풀에 연결`,tagLinked:`태그가 스풀에 연결됨`,tagLinkFailed:`태그 연결 실패`,tagAlreadyLinked:`태그가 이미 다른 스풀에 연결됨`,unknownTag:`알 수 없는 RFID 태그 감지됨`,usageHistory:`사용 기록`,noUsageHistory:`사용 기록 없음`,printName:`인쇄 이름`,weightConsumed:`소비 무게`,clearHistory:`초기화`,historyCleared:`사용 기록 초기화됨`,fillSourceLabel:`(재고)`,lowStockThresholdError:`임계값은 0.1에서 99.9 사이여야 합니다`,assignMismatchTitle:`재료 불일치`,assignMismatchMessage:`선택한 스풀 재료 "{{spoolMaterial}}"이(가) {{location}}의 트레이 재료 "{{trayMaterial}}"과(와) 일치하지 않습니다. 그래도 할당하시겠습니까?`,assignMismatchConfirm:`그래도 할당`,assignPartialMismatchMessage:`스풀 재료 "{{spoolMaterial}}"이(가) {{location}}의 "{{trayMaterial}}"과(와) 유사하지만 정확히 일치하지 않습니다. 계속하시겠습니까?`,assignProfileMismatchMessage:`스풀 프로필 "{{spoolProfile}}"이(가) {{location}}의 트레이 프로필 "{{trayProfile}}"과(와) 일치하지 않습니다. 계속하시겠습니까?`,assignReconfigureNote:`AMS 슬롯이 스풀의 프로필을 사용하도록 재구성됩니다.`,spoolmanFilamentCatalog:`Spoolman 필라멘트 카탈로그`,pickFromSpoolmanCatalog:`Spoolman 카탈로그에서 선택…`,spoolmanFilamentSelected:`Spoolman 카탈로그에서 필라멘트 선택됨`,spoolmanFilamentUnlinked:`필라멘트 카탈로그 연결 해제됨`,noSpoolmanFilaments:`Spoolman 카탈로그에서 필라멘트를 찾을 수 없음`,spoolmanFilamentColorSwatch:`필라멘트 색상`,spoolWeightManagedBySpoolman:`빈 스풀 무게는 Spoolman에서 필라멘트 유형별로 관리됩니다`,spoolmanCatalogLoadFailed:`Spoolman 필라멘트 카탈로그 불러오기 실패`,subtitle:`스풀 관리`,storageLocationNone:`위치 미설정`,resetConsumedCounter:`카운터 초기화`,resetConsumedCounterTooltip:`이 스풀의 소비된 그램 카운터를 0으로 초기화합니다. 잔여 무게는 변경되지 않습니다.`,resetConsumedCounterConfirm:`이 스풀의 소비된 그램 카운터를 0으로 초기화하시겠습니까? 이후 인쇄는 처음부터 추적됩니다. 스풀 자체, 잔여 무게 계산 및 설정은 변경되지 않습니다.`,resetAllConsumedCounters:`모든 카운터 초기화`,resetAllConsumedCountersTooltip:`모든 스풀의 소비된 그램 카운터를 0으로 초기화합니다. 잔여 무게는 변경되지 않습니다.`,resetAllConsumedCountersConfirm:`{{count}}개 스풀(아카이브 포함)의 소비된 그램 카운터를 모두 0으로 초기화하시겠습니까? 이는 "총 소비량" 통계를 지워 이후 인쇄가 처음부터 추적되도록 합니다. 스풀과 잔여 무게는 변경되지 않습니다.`,consumedCounterReset:`카운터가 초기화되었습니다`,allConsumedCountersReset:`{{count}}개 스풀의 카운터가 초기화되었습니다`,resetConsumedCounterFailed:`카운터 초기화 실패`},timelapse:{title:`타임랩스`,create:`타임랩스 만들기`,download:`다운로드`,delete:`삭제`,preview:`미리보기`,frameRate:`프레임 속도`,quality:`품질`,processing:`처리 중...`,noTimelapses:`사용 가능한 타임랩스 없음`},ams:{title:`AMS`,slot:`슬롯`,empty:`비어 있음`,emptySlot:`빈 슬롯`,unknown:`알 수 없음`,humidity:`습도`,temperature:`온도`,filamentType:`필라멘트 유형`,filamentColor:`색상`,remaining:`남은 양`,history:`AMS 기록`,noHistory:`기록 없음`,configureSlot:`슬롯 구성`,externalSpool:`외부 스풀`,profile:`프로필`,kFactor:`K 계수`,fill:`채우기`,configure:`구성`,used:`사용됨`,remainingUnit:`남음`,slotEmpty:`비어 있음`,slotUnconfigured:`?`,emptySlotReset:`필라멘트가 할당되지 않음`},printModal:{selectPrinter:`프린터 선택`,selectPlate:`플레이트 선택`,filamentMapping:`필라멘트 매핑`,plateN:`플레이트 {{n}}`,plateFilamentsUnreadable:`선택한 플레이트의 필라멘트를 읽을 수 없어 매핑할 수 없습니다. 해당 플레이트를 선택 해제하면 나머지를 대기열에 추가할 수 있습니다.`,totalCost:`총 비용:`,slotRemainingShort:` - {{grams}}g 남음`,printSettings:`인쇄 설정`,bedLeveling:`베드 레벨링`,flowCalibration:`유량 보정`,vibrationCalibration:`진동 보정`,layerInspection:`첫 번째 레이어 검사`,timelapse:`타임랩스`,cancel:`취소`,noPrintersAvailable:`사용 가능한 프린터 없음`,printerBusy:`프린터가 사용 중입니다`,printerOffline:`프린터가 오프라인입니다`,sameTypeDifferentColor:`같은 유형, 다른 색상`,filamentTypeNotLoaded:`필라멘트 유형이 장착되지 않음`,whenToPrint:`인쇄 시점`,asap:`최대한 빨리`,queue:`대기열`,schedule:`예약`,dateTime:`날짜 및 시간`,invalidDateTime:`유효한 날짜와 시간을 입력하세요`,openCalendar:`달력 열기`,requireManualStart:`수동 시작 필요`,requirePreviousSuccess:`이전 인쇄가 성공한 경우에만 시작`,autoOffAfter:`완료 후 프린터 전원 끄기`,helpAsap:`인쇄가 대기열 맨 앞에 추가되고 적합한 프린터가 유휴 상태가 되는 즉시 시작됩니다.`,helpSchedule:`프린터가 유휴 상태이면 예약된 시간에 인쇄가 시작됩니다. 사용 중이면 프린터가 사용 가능해질 때까지 대기합니다.`,helpQueue:`인쇄가 대기열 맨 뒤에 추가됩니다.`,leftNozzle:`L`,rightNozzle:`R`,leftNozzleTooltip:`왼쪽 노즐`,rightNozzleTooltip:`오른쪽 노즐`,filamentOverride:`필라멘트 재정의`,filamentOverrideHint:`선택적으로 모델 기반 할당을 위해 필라멘트를 재정의합니다. 스케줄러는 원래 3MF 값 대신 선택한 필라멘트와 일치시킵니다.`,originalFilament:`원래`,overrideWith:`재정의`,resetToOriginal:`원래대로 초기화`,insufficientFilamentTitle:`필라멘트 부족`,waitingForAmsStatus:`{{printer}}의 AMS 상태를 기다리는 중…`,insufficientFilamentMessage:`일부 할당된 스풀에 이 인쇄에 필요한 것보다 적은 필라멘트가 남아 있습니다:`,insufficientFilamentLine:`{{printer}} - {{slot}}: {{required}}g 필요, {{remaining}}g 남음`,printAnyway:`그래도 인쇄`,forceColorMatch:`색상 일치 강제`,staggerPrinterStarts:`프린터 시작 분산`,staggerGroupSize:`그룹 크기`,staggerInterval:`간격 (분)`,staggerPreview:`{{printers}}대 프린터 → {{size}}대씩 {{groups}}개 그룹, 매 {{interval}}분마다 시작`,staggerLastGroup:`마지막 그룹: {{count}}`,staggerTotal:`합계: {{minutes}}분`,staggerToPrinters:`{{count}}대 프린터에 분산`,gcodeInjection:`자동 인쇄 G-code 삽입`},backup:{includesEncryptionKey:`로컬 백업에는 MFA 암호화 키 파일(DATA_DIR/.mfa_encryption_key)이 포함되어 백업 ZIP이 자체 완결됩니다. ZIP 파일을 민감하게 취급하세요 — 파일을 가진 누구나 내부에 저장된 OIDC 클라이언트 비밀과 TOTP 비밀을 복호화할 수 있습니다.`,title:`백업 및 복원`,createBackup:`백업 만들기`,restoreBackup:`백업 복원`,restoreDescription:`백업 파일에서 모든 데이터 교체`,downloadBackup:`백업 다운로드`,uploadBackup:`백업 업로드`,lastBackup:`마지막 백업`,autoBackup:`자동 백업`,backupNow:`지금 백업`,restoreWarning:`경고: 백업을 복원하면 현재 모든 데이터를 덮어씁니다.`,includeArchives:`아카이브 포함`,includeSettings:`설정 포함`,includeProfiles:`프로필 포함`,backupSuccess:`백업이 성공적으로 생성되었습니다`,restoreSuccess:`백업이 성공적으로 복원되었습니다`,backupFailed:`백업 실패`,restoreFailed:`복원 실패`,restoreNote:`복원 중 가상 프린터가 중지됩니다`,githubBackup:`Git 백업`,enabled:`활성화됨`,cloudLoginRequired:`Bambu 클라우드 로그인 필요. GitHub 백업을 활성화하려면 프로필 → 클라우드 프로필에서 로그인하세요.`,cloudLoginRequiredShort:`클라우드 로그인 필요`,githubDescription:`백업 및 버전 기록을 위해 비공개 GitHub 저장소에 프로필을 자동으로 동기화합니다.`,repositoryUrl:`저장소 URL`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`비보안 HTTP 허용`,allowInsecureHttpHint:`TLS가 없는 개인 네트워크의 자체 호스팅 인스턴스에 활성화`,personalAccessToken:`개인 액세스 토큰`,tokenSaved:`(저장됨)`,enterNewToken:`업데이트하려면 새 토큰 입력`,tokenHint:`콘텐츠 읽기/쓰기 권한이 있는 세분화된 토큰`,branch:`브랜치`,provider:`Git 제공자`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`수동만`,hourly:`매시간`,daily:`매일`,weekly:`매주`,includeInBackup:`백업에 포함`,kProfiles:`K-프로필`,kProfilesDescription:`연결된 프린터의 압력 전진 보정`,noPrintersConnected:`연결된 프린터 없음`,printersConnected:`{{total}}개 중 {{connected}}개 연결됨`,cloudProfiles:`클라우드 프로필`,cloudProfilesDescription:`Bambu 클라우드의 필라멘트, 프린터 및 프로세스 프리셋`,appSettings:`앱 설정`,appSettingsDescription:`Bambuddy 구성 (전체 데이터베이스)`,spoolInventory:`스풀 재고`,spoolInventoryDescription:`필라멘트 스풀, 사용 기록 및 비용 추적`,printArchives:`인쇄 아카이브`,printArchivesDescription:`인쇄 기록 메타데이터 (gcode/3MF 파일 제외)`,lastBackupAt:`마지막 백업:`,noBackupsYet:`아직 백업 없음`,next:`다음:`,startingBackup:`백업 시작 중...`,test:`테스트`,enableBackup:`백업 활성화`,testConnection:`연결 테스트`,enterRepoUrl:`저장소 URL 입력`,enterRepoAndToken:`저장소 URL 및 액세스 토큰 입력`,repoRequired:`저장소 URL이 필요합니다`,tokenRequired:`액세스 토큰이 필요합니다`,githubBackupEnabled:`GitHub 백업 활성화됨`,tokenUpdated:`토큰 업데이트됨`,settingsSaved:`설정 저장됨`,failedToSave:`저장 실패: {{message}}`,backupCompleteFiles:`백업 완료 - {{count}}개 파일 업데이트됨`,backupSkippedNoChanges:`변경 사항 없어 백업 건너뜀`,backupFailed2:`백업 실패: {{message}}`,clearedLogs:`{{count}}개 로그 초기화됨`,failedToClearLogs:`로그 초기화 실패: {{message}}`,history:`기록`,clear:`초기화`,date:`날짜`,status:`상태`,commit:`커밋`,localBackup:`로컬 백업`,localBackupDescription:`데이터베이스, 아카이브, 업로드 및 모든 파일을 포함한 Bambuddy 데이터의 전체 백업을 만듭니다.`,downloadBackupLabel:`백업 다운로드`,completeBackupZip:`전체 백업: 데이터베이스 + 모든 파일 (ZIP)`,download:`다운로드`,preparingBackup:`백업 준비 중...`,creatingArchive:`백업 아카이브 생성 중... 대용량 아카이브의 경우 시간이 걸릴 수 있습니다.`,downloadingFile:`백업 파일 다운로드 중...`,backupDownloaded:`백업이 성공적으로 다운로드되었습니다`,failedToCreateBackup:`백업 생성 실패: {{message}}`,restore:`복원`,restoreReplacesAll:`복원은 모든 데이터를 교체합니다.`,restoreReplacesAllDetail:`현재 데이터베이스와 파일이 완전히 교체됩니다. 복원 후 재시작이 필요합니다.`,restoreConfirmTitle:`백업 복원`,restoreConfirmMessage:`"{{filename}}"에서 복원하시겠습니까? 현재 데이터베이스와 모든 파일이 완전히 교체됩니다. 복원 후 애플리케이션을 재시작해야 합니다.`,restoreConfirmButton:`백업 복원`,uploadingFile:`백업 파일 업로드 중...`,backupRestoredRestart:`백업 복원됨. Bambuddy를 재시작하세요.`,failedToRestore:`백업 복원 실패. 파일 형식을 확인하세요.`,reloadNow:`지금 새로고침`,creatingBackup:`백업 만드는 중`,restoringBackup:`백업 복원 중`,preparing:`준비 중...`,processing:`처리 중...`,doNotClosePage:`이 페이지를 닫거나 다른 곳으로 이동하지 마세요. 대용량 백업의 경우 몇 분이 걸릴 수 있습니다.`,restoring:`복원 중...`,restoreComplete:`복원 완료`,restoreFailed2:`복원 실패`,importSettings:`백업 파일에서 설정 가져오기`,pleaseWaitRestoring:`데이터가 복원되는 동안 기다려 주세요`,selectBackupFile:`백업 파일 클릭하여 선택 (.json 또는 .zip)`,duplicateHandling:`중복 처리 방법:`,matchPrinters:`프린터`,matchPrintersBy:`일련번호로 일치`,matchSmartPlugs:`스마트 플러그`,matchSmartPlugsBy:`IP 주소로 일치`,matchNotificationProviders:`알림 제공자`,matchNotificationProvidersBy:`이름으로 일치`,matchFilaments:`필라멘트`,matchFilamentsBy:`이름 + 유형 + 브랜드로 일치`,matchArchives:`아카이브`,matchArchivesBy:`콘텐츠 해시로 일치 (항상 건너뜀)`,matchPendingUploads:`대기 중인 업로드`,matchPendingUploadsBy:`파일 이름으로 일치`,matchSettingsTemplates:`설정 및 템플릿`,matchSettingsTemplatesBy:`항상 덮어씀`,replaceExisting:`기존 데이터 교체`,keepExisting:`기존 데이터 유지`,overwriteDescription:`백업 데이터로 이미 존재하는 항목 덮어쓰기`,keepDescription:`아직 존재하지 않는 항목만 복원`,overwriteCaution:`주의:`,overwriteWarning:`덮어쓰기는 현재 구성을 백업 데이터로 교체합니다. 보안상 프린터 액세스 코드는 절대 덮어쓰지 않습니다.`,cancel:`취소`,processingBackup:`백업 파일 처리 중...`,itemsRestored:`복원된 항목`,itemsSkipped:`건너뛴 항목`,restored:`복원됨`,skippedAlreadyExist:`건너뜀 (이미 존재)`,filesCategory:`파일 (3MF, 썸네일 등)`,andMore:`...및 {{count}}개 더`,newApiKeysGenerated:`새 API 키 생성됨`,keysShownOnce:`이 키는 한 번만 표시됩니다. 지금 복사하세요!`,copy:`복사`,noDataFound:`백업 파일에서 복원할 데이터를 찾을 수 없습니다.`,close:`닫기`,scheduledBackup:`예약 백업`,scheduledBackupDescription:`일정에 따라 백업 스냅샷을 자동으로 생성합니다. 출력 디렉토리를 NAS 또는 외부 저장소에 마운트할 수 있습니다.`,frequency:`주기`,backupTime:`시간`,retention:`보존`,retentionDescription:`유지할 백업 수`,outputPath:`출력 경로`,outputPathPlaceholder:`기본값: {{path}}`,outputPathDescription:`기본 위치를 사용하려면 비워두세요`,runNow:`지금 실행`,backupFiles:`백업 파일`,noScheduledBackups:`아직 백업 없음`,deleteBackup:`삭제`,deleteBackupConfirm:`이 백업 파일을 삭제하시겠습니까?`,backupRunning:`백업 진행 중...`,scheduledBackupComplete:`백업이 성공적으로 완료되었습니다`,scheduledBackupFailed:`백업 실패`,nextBackup:`다음 백업`,backupSize:`크기`,localTimeHint:`현지 시간 ({{tz}})`,defaultPathLabel:`기본값:`,pathCheck:{title:`Bambuddy가 이 디렉터리에 쓸 수 없습니다`,howToFix:`해결 방법:`,sandboxed:`Bambuddy 서비스가 {{path}}에 쓸 수 없습니다. systemd 유닛이 ProtectSystem=strict로 실행되어 설치·데이터·로그 디렉터리를 제외한 모든 디렉터리가 서비스에서는 읽기 전용입니다. 사용자 셸에서는 쓸 수 있는 디렉터리라도 마찬가지입니다.`,read_only:`{{path}}이(가) 읽기 전용 파일 시스템에 있습니다.`,permission_denied:`Bambuddy에 {{path}} 쓰기 권한이 없습니다. 디렉터리 소유자와 권한을 확인하세요.`,no_space:`{{path}}이(가) 있는 파일 시스템에 남은 공간이 없습니다.`,not_a_directory:`{{path}}이(가) 존재하지만 디렉터리가 아닙니다.`,missing:`{{path}}이(가) 존재하지 않으며 생성할 수도 없습니다.`,error:`Bambuddy가 {{path}}에 쓸 수 없습니다.`,ephemeralTitle:`이 백업은 컨테이너를 다시 만들면 사라집니다`,container_ephemeral:`{{path}}은(는) 호스트가 아니라 Bambuddy 컨테이너 내부에 있습니다. 여기에 기록된 백업은 컨테이너를 재생성하면 사라집니다. 호스트의 디렉터리를 마운트하세요:`},categories:{settings:`설정`,notification_providers:`알림 제공자`,notification_templates:`알림 템플릿`,smart_plugs:`스마트 플러그`,printers:`프린터`,filaments:`필라멘트`,maintenance_types:`유지 관리 유형`,archives:`아카이브`,projects:`프로젝트`,pending_uploads:`대기 중인 업로드`,external_links:`외부 링크`,api_keys:`API 키`},repoIsPrivate:`저장소가 비공개입니다 — 안전하게 백업할 수 있습니다.`,repoIsPublicWarning:`저장소가 공개입니다. Bambuddy 백업에는 MQTT 자격증명, Home Assistant 토큰, Prometheus 토큰, Bambu Cloud 이메일, K-프로파일을 통한 프린터 액세스 코드가 포함됩니다. 공급자 설정에서 저장소를 비공개로 변경할 때까지 저장이 차단됩니다.`,repoVisibilityUnknown:`저장소 공개 여부를 확인할 수 없습니다. Bambuddy는 비공개로 확인된 저장소에만 백업하며, 저장이 차단됩니다.`},tags:{title:`태그`,addTag:`태그 추가`,editTag:`태그 편집`,deleteTag:`태그 삭제`,tagName:`태그 이름`,tagColor:`태그 색상`,noTags:`태그 없음`,deleteConfirm:`이 태그를 삭제하시겠습니까?`,manageTags:`태그 관리`},uploadModal:{title:`3MF 파일 업로드`,dragDrop:`.3mf 파일을 여기에 드래그 앤 드롭`,or:`또는`,browseFiles:`파일 탐색`,extractionInfo:`프린터 모델은 3MF 파일 메타데이터에서 자동으로 추출됩니다.`,uploaded:`업로드됨`,failed:`실패`,uploading:`업로드 중...`,upload:`업로드`,uploadFailed:`업로드 실패`},editArchive:{title:`아카이브 편집`,name:`이름`,namePlaceholder:`인쇄 이름`,printer:`프린터`,noPrinter:`프린터 없음`,project:`프로젝트`,noProject:`프로젝트 없음`,itemsPrinted:`인쇄된 항목`,itemsPrintedHelp:`이 인쇄 작업에서 생산된 항목 수`,notes:`메모`,notesPlaceholder:`이 인쇄에 대한 메모 추가...`,externalLink:`외부 링크`,externalLinkPlaceholder:`https://printables.com/model/...`,externalLinkHelp:`Printables, Thingiverse 또는 다른 출처 링크`,tags:`태그`,tagsPlaceholder:`태그 추가...`,addMoreTags:`더 많은 태그 추가...`,matchingTags:`"{{query}}"와 일치`,existingTags:`기존 태그`,clickToAdd:`(클릭하여 추가)`,status:`상태`,failureReason:`실패 원인`,selectReason:`원인 선택...`,photos:`인쇄 결과 사진`,photosHelp:`+를 클릭하여 인쇄 결과 사진 추가`,printResult:`인쇄 결과`,saving:`저장 중...`,failureReasons:{adhesionFailure:`접착 실패`,spaghettiDetached:`스파게티 / 분리`,layerShift:`레이어 시프트`,cloggedNozzle:`노즐 막힘`,filamentRunout:`필라멘트 소진`,warping:`휨`,stringing:`스트링`,underExtrusion:`압출 부족`,powerFailure:`전원 실패`,userCancelled:`사용자 취소`,other:`기타`},statuses:{completed:`완료됨`,failed:`실패`,aborted:`취소됨`,printing:`인쇄 중`}},kProfiles:{title:`K-프로필`,noPrintersConfigured:`구성된 프린터 없음`,addPrinterInSettings:`K-프로필을 관리하려면 설정에서 프린터를 추가하세요`,noActivePrinters:`활성 프린터 없음`,enablePrinterConnection:`K-프로필을 보려면 프린터 연결을 활성화하세요`,loadingProfiles:`K-프로필 불러오는 중...`,printerOffline:`프린터 오프라인`,printerOfflineDesc:`선택한 프린터가 연결되지 않았습니다. 켜서 K-프로필을 확인하세요.`,noMatchingProfiles:`일치하는 프로필 없음`,noMatchingProfilesDesc:`검색 기준과 일치하는 프로필이 없습니다`,noKProfiles:`K-프로필 없음`,noKProfilesDesc:`{{diameter}}mm 노즐에 대한 압력 전진 프로필이 없습니다`,createFirstProfile:`첫 번째 프로필 만들기`,printer:`프린터`,nozzle:`노즐`,refresh:`새로고침`,addProfile:`프로필 추가`,export:`내보내기`,import:`가져오기`,select:`선택`,selectAll:`모두 선택`,delete:`삭제`,searchPlaceholder:`이름 또는 필라멘트로 검색...`,allExtruders:`모든 압출기`,leftOnly:`왼쪽만`,rightOnly:`오른쪽만`,allFlow:`모든 유량`,hfOnly:`HF만`,sOnly:`S만`,sortName:`정렬: 이름`,sortKValue:`정렬: K값`,sortFilament:`정렬: 필라멘트`,leftExtruder:`왼쪽 압출기`,rightExtruder:`오른쪽 압출기`,modal:{addTitle:`K-프로필 추가`,editTitle:`K-프로필 편집`,profileName:`프로필 이름`,profileNamePlaceholder:`내 PLA 프로필`,kValue:`K값`,kValuePlaceholder:`0.020`,kValueHelp:`일반 범위: PLA 0.01~0.06, PETG 0.02~0.10`,filament:`필라멘트`,selectFilament:`필라멘트 선택...`,noFilamentsHelp:`필라멘트를 찾을 수 없습니다. 먼저 Bambu Studio에서 K-프로필을 만드세요.`,flowType:`유량 유형`,highFlow:`고유량`,standard:`표준`,nozzleSize:`노즐 크기`,extruder:`압출기`,extruders:`압출기`,left:`왼쪽`,right:`오른쪽`,notes:`메모 (로컬 저장)`,notesPlaceholder:`이 프로필에 대한 메모 추가...`,notesHelp:`메모는 프린터가 아닌 Bambuddy에 저장됩니다`,syncing:`프린터와 동기화 중...`,savingExtruder:`압출기 {{current}}/{{total}}에 저장 중...`,pleaseWait:`기다려 주세요`},deleteConfirm:{title:`프로필 삭제`,cannotUndo:`이 작업은 취소할 수 없습니다`,message:`프린터에서 "{{name}}"을(를) 삭제하시겠습니까?`},bulkDelete:{title:`프로필 삭제`,cannotUndo:`이 작업은 취소할 수 없습니다`,message:`프린터에서 선택한 {{count}}개 프로필을 삭제하시겠습니까?`},toast:{profileSaved:`K-프로필 저장됨`,profilesSaved:`{{count}}개 압출기에 K-프로필 저장됨`,selectAtLeastOneExtruder:`적어도 하나의 압출기를 선택해 주세요`,profileDeleted:`K-프로필 삭제됨`,profilesDeleted:`{{count}}개 프로필 삭제됨`,exportedProfiles:`{{count}}개 프로필 내보냄`,importedProfiles:`{{total}}개 중 {{count}}개 프로필 가져옴`,noProfilesToExport:`내보낼 프로필 없음`,invalidFileFormat:`유효하지 않은 파일 형식`,failedToParseImport:`가져오기 파일 파싱 실패`,failedToSaveBatch:`K-프로필 저장 실패`,noteSaved:`메모 저장됨`,failedToSaveNote:`메모 저장 실패`},permission:{noRead:`프로필 새로고침 권한이 없습니다`,noCreate:`프로필 추가 권한이 없습니다`,noUpdate:`K-프로필 업데이트 권한이 없습니다`,noDelete:`K-프로필 삭제 권한이 없습니다`,noExport:`프로필 내보내기 권한이 없습니다`,noImport:`프로필 가져오기 권한이 없습니다`}},virtualPrinter:{title:`가상 프린터`,running:`실행 중`,stopped:`중지됨`,description:{default:`Bambu Studio 및 OrcaSlicer에 표시되는 가상 프린터를 활성화합니다. 이 프린터로 전송된 파일은 인쇄 없이 바로 아카이브됩니다.`,proxy:`실제 프린터로 슬라이서 트래픽을 릴레이하는 프록시를 활성화하여 모든 네트워크에서 원격 인쇄가 가능합니다.`},enable:{title:`가상 프린터 활성화`,visibleInSlicer:`슬라이서 검색에서 "Bambuddy"로 표시됨`,proxyingTo:`{{name}}으로 프록시 중`,notActive:`활성화되지 않음`},model:{title:`프린터 모델`,description:`에뮬레이션할 프린터 모델을 선택하세요.`,restartWarning:`모델 변경 시 가상 프린터가 재시작됩니다`},accessCode:{title:`액세스 코드`,isSet:`액세스 코드가 설정됨`,notSet:`액세스 코드가 설정되지 않음 - 활성화하려면 필요`,placeholder:`8자리 코드 입력`,placeholderChange:`변경하려면 새 코드 입력`,hint:`정확히 8자여야 합니다. 슬라이서가 인증하는 데 사용됩니다.`,charCount:`({{count}}/8)`,inheritedFromTarget:`대상 프린터에서 상속됨`,derivedFromTargetHint:`대상 프린터의 액세스 코드를 사용합니다. 브리지는 슬라이서 인증을 실제 프린터로 전달하므로 코드가 일치해야 합니다 — 변경하려면 프린터 설정에서 액세스 코드를 편집하세요.`,reveal:`액세스 코드 표시`,hide:`액세스 코드 숨기기`},targetPrinter:{title:`대상 프린터`,configured:`프록시 대상 구성됨`,notConfigured:`대상 프린터가 선택되지 않음 - 프록시 모드에 필요`,placeholder:`프린터 선택...`,hint:`슬라이서 트래픽을 프록시할 프린터를 선택하세요. 프린터는 LAN 모드여야 합니다.`,noPrinters:`구성된 프린터 없음. 프록시 모드를 사용하려면 먼저 프린터를 추가하세요.`},remoteInterface:{title:`네트워크 인터페이스 재정의`,configured:`인터페이스 재정의 활성`,optional:`선택사항 - 자동 감지된 IP가 잘못된 경우 사용 (예: 여러 NIC, Docker, VPN)`,placeholder:`자동 감지 (기본값)...`,hint:`SSDP를 통해 광고되고 TLS 인증서에 사용되는 IP 주소를 재정의합니다. Bambuddy에 여러 네트워크 인터페이스가 있을 때 유용합니다.`},mode:{title:`모드`,archive:`아카이브`,archiveDesc:`파일 즉시 아카이브`,review:`검토`,reviewDesc:`아카이브 전 검토`,queue:`대기열`,queueDesc:`아카이브 후 대기열 추가`,proxy:`프록시`,proxyDesc:`실제 프린터로 릴레이`},autoDispatch:{title:`자동 발송`,description:`대기열에 추가될 때 자동으로 인쇄를 시작합니다. 꺼져 있으면 수동 발송을 기다립니다.`},queueForceColorMatch:{title:`색상 일치 강제`,description:`정확한 필라멘트 유형과 색상이 장착되지 않은 프린터에는 발송을 거부합니다. 기본적으로 꺼져 있음 — 이 옵션 없이는 대기열이 모델 전용 매칭을 사용하여 잘못된 색상이 장착된 프린터를 선택할 수 있습니다.`},gcodeInjection:{title:`G-code 주입`,description:`설정에서 모델별로 구성한 G-code 스니펫을 이 가상 프린터의 작업에 적용합니다. 기본값은 꺼짐입니다.`},tailscaleDisabled:{title:`Tailscale 통합`,description:`이 가상 프린터가 Tailscale을 통해 노출되도록 표시하려면 활성화하세요. 슬라이서에 붙여넣을 IP를 알 수 있도록 호스트의 Tailscale 주소를 표시합니다. CA 가져오기 단계는 변경되지 않음 — 이 토글은 인증서에 영향을 미치지 않습니다.`},setupRequired:{title:`설정 필요`,description:`가상 프린터 기능이 작동하려면 추가 시스템 구성이 필요합니다. 여기에는 포트 포워딩, 방화벽 규칙 및 플랫폼별 설정이 포함됩니다.`,readGuide:`활성화 전에 설정 가이드를 읽으세요`},archiveNameSource:{title:`아카이브 이름 출처`,description:`가상 프린터를 통해 파일이 도착할 때 새 아카이브의 이름 지정 방법을 선택합니다. "메타데이터"는 3MF의 슬라이서 내장 제목을 사용합니다(기본값). "파일 이름"은 Bambu Studio가 FTP를 통해 전송한 파일 이름을 사용합니다. 참고: Bambu Studio는 3MF에 제목 필드가 있을 경우 "프린터로 보내기" 대화 상자에 입력한 이름을 해당 값으로 덮어쓰므로, 두 모드 모두 동일한 문자열이 표시되는 경우가 많습니다.`,metadata:`메타데이터`,filename:`파일 이름`},howItWorks:{title:`작동 방식`,step1:`같은 LAN에서 가상 프린터는 검색을 통해 슬라이서(Bambu Studio / OrcaSlicer)에 자동으로 나타납니다. 다른 네트워크에서는 IP 주소와 액세스 코드로 수동으로 추가하세요.`,step2:`아카이브, 검토, 대기열 모드에서 슬라이서의 "전송" 버튼을 사용하여 3MF 파일을 Bambuddy에 업로드하세요. 슬라이서는 "인쇄 성공"을 표시하지만 파일은 저장되고 인쇄되지 않습니다.`,step3:`프록시 모드에서 가상 프린터는 모든 트래픽을 실제 프린터로 릴레이합니다 — 직접 연결된 것처럼 즉시 인쇄가 시작됩니다.`},status:{title:`상태 세부 정보`,printerName:`프린터 이름`,model:`모델`,serialNumber:`일련 번호`,mode:`모드`,pendingFiles:`대기 중인 파일`,targetPrinter:`대상 프린터`,ftpPort:`FTP 포트`,mqttPort:`MQTT 포트`,ftpConnections:`FTP 연결`,mqttConnections:`MQTT 연결`},toast:{updated:`가상 프린터 설정 업데이트됨`,failedToUpdate:`설정 업데이트 실패`,copyFailed:`복사 실패 — 텍스트를 수동으로 선택하여 복사해 보세요`,accessCodeRequired:`먼저 액세스 코드를 설정해 주세요`,targetPrinterRequired:`먼저 대상 프린터를 선택해 주세요`,bindIpRequired:`먼저 바인드 IP를 설정해 주세요`,accessCodeEmpty:`액세스 코드는 비워둘 수 없습니다`,accessCodeLength:`액세스 코드는 정확히 8자여야 합니다`,targetCodeChangedRebind:`액세스 코드가 새 대상 프린터에 동기화되었습니다. 새 코드를 적용하려면 슬라이서에서 이 장치를 다시 추가하세요.`,created:`가상 프린터 생성됨`,failedToCreate:`가상 프린터 생성 실패`,deleted:`가상 프린터 삭제됨`,failedToDelete:`가상 프린터 삭제 실패`},list:{title:`가상 프린터`,add:`추가`,addFirst:`가상 프린터 추가`,empty:`구성된 가상 프린터 없음. 하나를 추가하여 시작하세요.`},bindIp:{title:`바인드 인터페이스`,placeholder:`인터페이스 선택...`,hint:`이 가상 프린터가 바인딩할 네트워크 인터페이스. 프린터당 고유해야 합니다.`},proxy:{accessCodeHint:`프록시 모드에서는 슬라이서에서 대상 프린터의 액세스 코드를 사용하세요. 연결은 실제 프린터로 투명하게 전달됩니다.`},addDialog:{title:`가상 프린터 추가`,name:`이름`,hint:`생성 후 액세스 코드, 대상 프린터 및 기타 설정을 구성할 수 있습니다.`,create:`생성`},deleteConfirm:{title:`가상 프린터 삭제`,message:`"{{name}}"을(를) 삭제하시겠습니까? 이 프린터의 모든 서비스가 중지됩니다.`},caCert:{title:`슬라이서 인증서`,description:`가상 프린터는 Bambuddy CA가 서명한 TLS 인증서를 사용합니다. 이 CA 인증서를 슬라이서의 신뢰 저장소에 한 번만 가져오면 연결을 수락합니다 — 명령줄에서 복사할 필요가 없습니다.`,copy:`복사`,copied:`복사됨`,download:`다운로드`,fingerprint:`SHA-256`}},modelViewer:{openInSlicer:`슬라이서에서 열기`,tabs:{model:`3D 모델`,gcode:`G-code 미리보기`},notAvailable:`사용 불가`,notSliced:`슬라이싱되지 않음`,plates:`플레이트`,allPlates:`모든 플레이트`,plateNumber:`플레이트 {{number}}`,plateCount:`플레이트 {{count}}개`,plateCount_other:`플레이트 {{count}}개`,objectCount:`개체 {{count}}개`,objectCount_other:`개체 {{count}}개`,filamentCount:`필라멘트 {{count}}개`,filamentCount_other:`필라멘트 {{count}}개`,eta:`예상 {{minutes}}분`,noPreview:`이 파일에 대한 미리보기를 사용할 수 없습니다`,pagination:{pageOf:`{{total}}페이지 중 {{current}}`,prev:`이전`,next:`다음`},errors:{failedToLoad:`파일 불러오기 실패`,noMeshes:`3MF 파일에서 메쉬를 찾을 수 없음`,unsupportedFormat:`지원되지 않는 파일 형식`}},maintenanceDescriptions:{lubricateCarbonRods:`부드러운 움직임을 위해 카본 로드에 윤활유 도포`,lubricateRails:`부드러운 움직임을 위해 선형 레일에 윤활유 도포`,cleanNozzle:`막힘 방지를 위해 핫엔드와 노즐 청소`,checkBelts:`정확한 인쇄를 위해 벨트 장력 확인`,cleanBuildPlate:`접착력 향상을 위해 빌드 플레이트 청소`,checkExtruder:`마모 여부 확인을 위해 압출기 기어 점검`,checkCooling:`냉각 팬이 제대로 작동하는지 확인`,generalInspection:`전반적인 프린터 점검`,cleanCarbonRods:`마찰 감소를 위해 카본 로드 청소`,lubricateSteelRods:`부드러운 움직임을 위해 스틸 로드에 윤활유 도포`,cleanSteelRods:`마찰 감소를 위해 스틸 로드 청소`,cleanLinearRails:`먼지와 이물질 제거를 위해 선형 레일 닦기`,checkPtfeTube:`마모 또는 손상 여부 확인을 위해 PTFE 튜브 점검`,replaceHepaFilter:`공기 품질을 위해 HEPA 필터 교체`,replaceCarbonFilter:`활성탄 필터 교체`,lubricateLeftNozzleRail:`왼쪽 노즐 레일 윤활 (H2 시리즈)`},smartPlugs:{offline:`오프라인`,admin:`관리자`,openPlugAdminPage:`플러그 관리 페이지 열기`,deleteSmartPlug:`스마트 플러그 삭제`,turnOnSmartPlug:`스마트 플러그 켜기`,turnOffSmartPlug:`스마트 플러그 끄기`,turnOn:`켜기`,turnOff:`끄기`,addSmartPlug:{scanningNetwork:`네트워크 스캔 중...`,chooseEntity:`엔티티 선택...`,connectionFailed:`연결 실패`,searchEntities:`엔티티 검색...`,searchPowerSensors:`전력 센서 검색...`,searchEnergySensors:`에너지 센서 검색...`,placeholders:{plugName:`거실 플러그`,mqttStateOnValue:`ON, true, 1`,mqttSameAsPower:`전력 토픽과 같거나 다름`}},linkedTo:`연결됨:`,monitorOnly:`모니터만`,alerts:`알림`,scheduleOn:`켜기 {{time}}`,scheduleOff:`끄기 {{time}}`,on:`켜짐`,off:`꺼짐`,power:`전력`,kwhToday:`오늘 kWh`,settings:`설정`,automationSettings:`자동화 설정`,showInSwitchbar:`스위치바에 표시`,quickAccessSidebar:`사이드바에서 빠른 접근`,enabled:`활성화됨`,enableAutomation:`이 플러그의 자동화 활성화`,autoOn:`자동 켜기`,autoOnDescription:`인쇄 시작 시 켜기`,autoOff:`자동 끄기`,autoOffDescription:`인쇄 완료 시 끄기 (1회)`,autoOffPersistent:`계속 활성화`,autoOffPersistentDescription:`1회성 대신 인쇄 사이에 활성화 유지`,controlsPrinterPower:`프린터에 전원 공급`,controlsPrinterPowerDescription:`이 플러그가 액세서리(필터 팬, 조명)에만 전원을 공급한다면 끄세요. 그렇지 않으면 플러그를 끌 때 프린터가 오프라인으로 표시됩니다.`,turnOffDelayMode:`끄기 지연 모드`,time:`시간`,temp:`온도`,delayMinutes:`지연 (분)`,tempThreshold:`온도 임계값 (°C)`,tempThresholdDescription:`노즐이 이 온도 이하로 냉각될 때 끄기`,edit:`편집`,deleteConfirm:`"{{name}}"을(를) 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.`,turnOnConfirm:`"{{name}}"을(를) 켜시겠습니까?`,turnOffConfirm:`"{{name}}"을(를) 끄시겠습니까? 연결된 장치의 전원이 차단됩니다.`,failedToTurn:`"{{name}}" {{action}} 실패`,unknown:`알 수 없음`,addTitle:`스마트 플러그 추가`,editTitle:`스마트 플러그 편집`,stopScanning:`스캔 중지`,discoverTasmota:`Tasmota 장치 검색`,foundDevices:`{{count}}개 장치 발견 - 클릭하여 선택:`,noDevicesFound:`네트워크에서 Tasmota 장치를 찾을 수 없음`,haNotConfigured:`Home Assistant가 구성되지 않았습니다.`,haSettingsPath:`설정 → 네트워크 → Home Assistant`,selectEntity:`엔티티 선택 *`,ipAddress:`IP 주소 *`,nameLabel:`이름 *`,username:`사용자 이름`,password:`비밀번호`,authHint:`Tasmota 장치에 인증이 필요하지 않으면 비워두세요`,linkToPrinter:`프린터에 연결`,noPrinter:`프린터 없음 (수동 제어만)`,linkingDescription:`연결하면 인쇄 시작/완료 시 자동 켜기/끄기가 활성화됩니다`,powerAlerts:`전력 알림`,alertAbove:`초과 시 알림 (W)`,alertBelow:`미만 시 알림 (W)`,alertDescription:`전력 소비가 이 임계값을 초과할 때 알림 받기. 해당 방향을 비활성화하려면 비워두세요.`,dailySchedule:`일일 스케줄`,turnOnAt:`켜기 시각`,turnOffAt:`끄기 시각`,scheduleDescription:`매일 이 시간에 자동으로 켜기/끄기. 해당 동작을 건너뛰려면 비워두세요.`,showOnPrinterCard:`프린터 카드에 표시`,displayOnPrinterCard:`프린터 카드에 버튼 표시`,connectedResult:`연결됨!`,deviceLabel:`장치: {{name}} - `,stateLabel:`상태: {{state}}`,test:`테스트`,delete:`삭제`,save:`저장`,add:`추가`,cancel:`취소`,failedToStartScan:`스캔 시작 실패`,nameRequired:`이름이 필요합니다`,entityRequired:`Home Assistant 플러그에는 엔티티가 필요합니다`,mqttTopicRequired:`전력, 에너지 또는 상태 모니터링을 위한 MQTT 토픽이 하나 이상 구성되어야 합니다`,loadingEntities:`엔티티 불러오는 중...`,loading:`불러오는 중...`,failedToLoadEntities:`엔티티 불러오기 실패: {{error}}`,noEntitiesMatching:`"{{search}}"과 일치하는 엔티티를 찾을 수 없음`,noEntitiesAvailable:`사용 가능한 엔티티 없음`,searchingEntities:`모든 엔티티 검색 중 ({{count}}개 발견)`,showingEntities:`switch, light, input_boolean 표시 중 ({{count}}개 사용 가능)`,energyMonitoringOptional:`에너지 모니터링 (선택사항)`,energyMonitoringHint:`전력/에너지 데이터를 제공하는 센서를 검색하여 선택하세요.`,powerSensorW:`전력 센서 (W)`,energyTodayKwh:`오늘 에너지 (kWh)`,totalEnergyKwh:`총 에너지 (kWh)`,noMatchingSensors:`일치하는 센서 없음`,none:`없음`,mqttNotConfigured:`MQTT 브로커가 구성되지 않았습니다.`,mqttSettingsPath:`설정 → 네트워크 → MQTT 게시`,mqttNotConfiguredSuffix:`(게시를 활성화할 필요는 없고 브로커 세부 정보만 입력하면 됩니다).`,mqttMonitorOnlyDescription:`MQTT 플러그는 MQTT 구독을 통해 전력/에너지 데이터를 받습니다. 켜기/끄기 제어는 불가능 — MQTT 브로커나 홈 자동화 시스템을 사용하세요.`,powerMonitoring:`전력 모니터링`,energyMonitoring:`에너지 모니터링`,stateMonitoring:`상태 모니터링`,optional:`선택사항`,topic:`토픽`,jsonPath:`JSON 경로`,multiplier:`배수`,onValue:`ON 값`,mqttPowerHint:`JSON 경로는 JSON 페이로드에서 값을 추출합니다 (예: "power_l1"). 토픽이 원시 숫자 값을 게시하면 비워두세요.
mW→W에는 배수 0.001, kW→W에는 1000을 사용하세요.`,mqttEnergyHint:`JSON 경로는 JSON 페이로드에서 값을 추출합니다. 원시 값에는 비워두세요.
Wh→kWh에는 배수 0.001, MWh→kWh에는 1000을 사용하세요.`,mqttStateHint:`JSON 경로는 JSON 페이로드에서 값을 추출합니다. 원시 값에는 비워두세요.
-ON 값: "ON"을 의미하는 정확한 문자열. 자동 감지(ON, true, 1)를 위해 비워두세요.`,restControl:`제어`,restOnUrl:`켜기 URL`,restOffUrl:`끄기 URL`,restOnBody:`ON 요청 본문`,restOffBody:`OFF 요청 본문`,restMethod:`HTTP 방법`,restHeaders:`사용자 지정 헤더 (JSON)`,restStatusUrl:`상태 URL`,restStatusPath:`상태 JSON 경로`,restStatusOnValue:`ON 값`,restPowerUrl:`전력 URL`,restPowerPath:`전력 JSON 경로`,restPowerMultiplier:`전력 배수`,restEnergyUrl:`에너지 URL`,restEnergyPath:`에너지 JSON 경로 (오늘)`,restEnergyTotalPath:`에너지 JSON 경로 (누적값)`,restEnergyTotalMultiplier:`누적값 배율`,restEnergyTotalPathHint:`예: aenergy.total`,restEnergyTotalHint:`많은 플러그가 — Shelly는 모두 — 초기화되지 않는 누적 카운터만 보고합니다. 그 값은 위 항목이 아니라 여기에 입력하세요. 오늘 사용량으로 읽으면 자정에 초기화되지 않고, 어제와 총계는 계속 비어 있게 됩니다. Bambuddy가 누적값에서 오늘과 어제를 계산하며, 이를 위해 하루에서 이틀 치 측정값이 필요합니다. Shelly는 와트시로 보고하므로 배율은 0.001을 사용하세요.`,restEnergyMultiplier:`에너지 배수`,restUrlRequired:`REST 플러그에는 URL(ON 또는 OFF) 중 하나 이상이 필요합니다`,restHeadersHint:`예: {"Authorization": "Bearer your-token"}`,restBodyHint:`예: ON, {"state": "on"}`,restStatusHint:`현재 상태를 폴링할 URL`,restPathHint:`예: state 또는 data.power.status`,restPowerUrlHint:`전력 데이터의 별도 URL (비어 있으면 상태 URL 사용)`,restEnergyUrlHint:`에너지 데이터의 별도 URL (비어 있으면 상태 URL 사용)`,restEnergyHint:`각 값은 자체 URL을 사용하거나 상태 URL로 대체할 수 있습니다. 단위 변환에 배수를 사용하세요 (예: Wh→kWh에 0.001).`,testConnection:`연결 테스트`,connectionSuccess:`연결 성공`,noSwitchesInSwitchbar:`스위치바에 스위치 없음`,enableSwitchbarHint:`설정 > 스마트 플러그에서 "스위치바에 표시"를 활성화하세요`,autoOffAfterDrying:`건조 후 자동 끄기`,autoOffAfterDryingDescription:`AMS 건조가 완료되면 끄기`,delayAfterDryingMinutes:`건조 후 지연 (분)`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`이메일`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`SMTP 이메일 알림`,telegram:`Telegram 봇을 통한 알림`,discord:`Webhook을 통해 Discord 채널로 전송`,ntfy:`무료, 자체 호스팅 가능한 푸시 알림`,pushover:`간단하고 신뢰할 수 있는 푸시 알림`,callmebot:`CallMeBot을 통한 무료 WhatsApp 알림`,webhook:`모든 URL에 일반 HTTP POST`,homeassistant:`Home Assistant 대시보드의 지속적인 알림`,bark:`Bark를 통한 iOS 푸시 알림(셀프 호스팅 가능)`},lastSuccess:`마지막: {{date}}`,error:`오류`,printer:`프린터:`,allPrinters:`모든 프린터`,sendTestNotification:`테스트 알림 전송`,eventSettings:`이벤트 설정`,enabled:`활성화됨`,sendFromProvider:`이 제공자에서 알림 전송`,printEvents:`인쇄 이벤트`,printerStatus:`프린터 상태`,amsAlarms:`AMS 알람`,amsHtAlarms:`AMS-HT 알람`,printQueue:`인쇄 대기열`,start:`시작`,plateCheck:`플레이트 확인`,complete:`완료`,failed:`실패`,stopped:`중지됨`,progress:`진행률`,offline:`오프라인`,lowFilament:`필라멘트 부족`,maintenance:`유지 관리`,amsHumidity:`AMS 습도`,amsTemp:`AMS 온도`,amsHtHumidity:`AMS-HT 습도`,amsHtTemp:`AMS-HT 온도`,bedCooled:`베드 냉각됨`,firstLayer:`첫 번째 레이어`,quiet:`방해 금지`,digest:`요약 {{time}}`,printStarted:`인쇄 시작됨`,plateNotEmpty:`플레이트 비어 있지 않음`,plateNotEmptyDescription:`인쇄 전 개체 감지됨`,plateClearRequired:`플레이트 비움 확인 필요`,plateClearRequiredDescription:`인쇄 완료, 대기열이 플레이트 확인을 기다림`,plateClear:`플레이트 확인`,printCompleted:`인쇄 완료됨`,bedCooledLabel:`베드 냉각됨`,bedCooledDescription:`인쇄 후 베드가 임계값 이하로 냉각됨`,firstLayerCompleteLabel:`첫 번째 레이어 완료`,firstLayerCompleteDescription:`첫 번째 레이어 완료 시 스냅샷과 함께 알림`,missingSpoolAssignmentLabel:`스풀 할당 누락`,missingSpoolAssignmentDescription:`인쇄 시작 시 필요한 트레이에 할당된 스풀이 없을 때 알림`,printFailed:`인쇄 실패`,printStopped:`인쇄 중지됨`,progressMilestones:`진행률 이정표`,progressMilestonesDescription:`25%, 50%, 75%에서 알림`,printerOffline:`프린터 오프라인`,printerError:`프린터 오류`,aiFailureDetection:`AI 실패 감지`,aiFailureDetectionDescription:`Obico AI가 인쇄 실패 가능성을 감지하면 알림`,lowFilamentLabel:`필라멘트 부족`,maintenanceDue:`유지 관리 필요`,maintenanceDueDescription:`유지 관리가 필요할 때 알림`,amsHumidityHigh:`AMS 습도 높음`,amsHumidityHighDescription:`일반 AMS 습도가 임계값 초과`,amsTemperatureHigh:`AMS 온도 높음`,amsTemperatureHighDescription:`일반 AMS 온도가 임계값 초과`,amsHtHumidityHigh:`AMS-HT 습도 높음`,amsHtHumidityHighDescription:`AMS-HT 습도가 임계값 초과`,amsHtTemperatureHigh:`AMS-HT 온도 높음`,amsHtTemperatureHighDescription:`AMS-HT 온도가 임계값 초과`,inventoryAlerts:`재고 알림`,stockReorderAlert:`재주문 알림`,stockReorderAlertDescription:`SKU가 재주문 시점에 도달함`,stockBreakAlert:`재고 소진 알림`,stockBreakAlertDescription:`보충 전에 재고가 소진될 것임`,jobAdded:`작업 추가됨`,jobAddedDescription:`대기열에 작업 추가됨`,jobAssigned:`작업 할당됨`,jobAssignedDescription:`모델 기반 작업이 프린터에 할당됨`,jobStarted:`작업 시작됨`,jobStartedDescription:`대기열 작업 인쇄 시작됨`,jobWaiting:`작업 대기 중`,jobWaitingDescription:`필라멘트 또는 프린터를 기다리는 작업`,jobSkipped:`작업 건너뜀`,jobSkippedDescription:`작업 건너뜀 (이전 실패)`,jobFailed:`작업 실패`,jobFailedDescription:`작업 시작 실패`,queueComplete:`대기열 완료`,queueCompleteDescription:`모든 대기열 작업 완료`,quietHours:`방해 금지 시간`,noNotificationsDuring:`이 시간 동안 알림 없음`,editProviderToChangeQuietHours:`방해 금지 시간을 변경하려면 제공자를 편집하세요`,dailyDigest:`일일 요약`,batchNotifications:`알림을 하나의 일일 요약으로 묶기`,sendAt:`{{time}}에 전송`,editProviderToChangeDigestTime:`요약 시간을 변경하려면 제공자를 편집하세요`,edit:`편집`,deleteProvider:`알림 제공자 삭제`,deleteConfirm:`"{{name}}"을(를) 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.`,delete:`삭제`,addTitle:`알림 제공자 추가`,editTitle:`알림 제공자 편집`,nameLabel:`이름 *`,namePlaceholder:`내 알림`,providerTypeLabel:`제공자 유형 *`,configuration:`구성`,testConfiguration:`구성 테스트`,printerFilter:`프린터 필터`,onlyFromPrinter:`이 프린터의 이벤트에 대한 알림만 전송`,quietHoursDnd:`방해 금지 시간`,quietStart:`시작`,quietEnd:`종료`,dailyDigestLabel:`일일 요약`,sendDigestAt:`요약 전송 시각`,digestCollected:`이벤트가 수집되어 이 시간에 하나의 요약으로 전송됩니다`,notificationEvents:`알림 이벤트`,progressPercent:`(25%, 50%, 75%)`,bedCooledAfterPrint:`(인쇄 완료 후)`,eventPriority:{sectionTitle:`ntfy 우선순위`,helpNtfy:`각 활성화된 이벤트에 대한 우선순위를 선택하세요. ntfy는 이를 사용하여 알림을 에스컬레이션합니다(소리, 가시성, 푸시 동작). 여기서 설정되지 않은 수준은 ntfy 서버 기본값을 사용합니다.`,min:`최소`,low:`낮음`,default:`기본값`,high:`높음`,urgent:`긴급`},cancel:`취소`,save:`저장`,add:`추가`,nameRequired:`이름이 필요합니다`,fieldRequired:`{{field}}이(가) 필요합니다`,haDataInvalid:`Data 필드는 유효한 JSON 객체여야 합니다(예: {"priority": "high", "ttl": 0})`,phoneNumber:`전화번호`,apiKey:`API 키`,serverUrl:`서버 URL`,topic:`토픽`,authToken:`인증 토큰`,userKey:`사용자 키`,appToken:`앱 토큰`,priority:`우선순위`,pushoverRetry:`긴급 재알림 (초)`,pushoverExpire:`긴급 만료 (초)`,botToken:`봇 토큰`,chatId:`채팅 ID`,telegramThreadId:`포럼 주제 ID`,telegramThreadIdHelp:`선택 사항. 포럼 그룹의 특정 주제로 전송합니다. 주제 링크의 마지막 숫자입니다 (t.me/c/.../25). 비워 두면 General 주제로 전송됩니다.`,telegramThreadIdInvalid:`포럼 주제 ID는 숫자여야 합니다.`,smtpServer:`SMTP 서버`,smtpPort:`SMTP 포트`,security:`보안`,authentication:`인증`,username:`사용자 이름`,password:`비밀번호`,fromEmail:`발신 이메일`,toEmail:`수신 이메일`,webhookUrl:`Webhook URL`,payloadFormat:`페이로드 형식`,authorization:`인증`,titleFieldName:`제목 필드 이름`,messageFieldName:`메시지 필드 이름`,editTemplate:`템플릿 편집: {{name}}`,titleLabel:`제목`,bodyLabel:`본문`,titlePlaceholder:`알림 제목...`,bodyPlaceholder:`알림 본문...`,availableVariables:`사용 가능한 변수`,clickToInsert:`클릭하여 본문의 커서 위치에 삽입`,livePreview:`실시간 미리보기`,hide:`숨기기`,show:`표시`,loadingPreview:`미리보기 불러오는 중...`,enterTemplateContent:`미리보기를 보려면 템플릿 내용을 입력하세요`,titlePreview:`제목:`,bodyPreview:`본문:`,resetToDefault:`기본값으로 초기화`,titleRequired:`제목이 필요합니다`,bodyRequired:`본문이 필요합니다`,notificationLog:`알림 로그`,showFailedOnly:`실패만`,last24Hours:`최근 24시간`,last7Days:`최근 7일`,last30Days:`최근 30일`,last90Days:`최근 90일`,justNow:`방금`,noFailedNotifications:`실패한 알림 없음`,noNotificationsLogged:`기록된 알림 없음`,unknownProvider:`알 수 없는 제공자`,logTitle:`제목`,logMessage:`메시지`,logError:`오류`,logProvider:`제공자: {{type}}`,logTime:`시간: {{time}}`,refresh:`새로고침`,clearOld:`오래된 것 삭제`,statsSummary:`최근 {{days}}일:`,statsNotifications:`알림`,statsSent:`{{count}}개 전송됨`,statsFailed:`{{count}}개 실패`,eventTypes:{print_start:`인쇄 시작됨`,print_complete:`인쇄 완료`,print_failed:`인쇄 실패`,print_stopped:`인쇄 중지됨`,print_progress:`진행률`,printer_offline:`프린터 오프라인`,printer_error:`프린터 오류`,filament_low:`필라멘트 부족`,maintenance_due:`유지 관리 필요`,test:`테스트`},userEmail:{title:`알림`,emailNotifications:`이메일 알림`,emailNotificationsDesc:`내 인쇄 작업에 대한 이메일 알림을 받습니다. 이메일은 고급 인증에서 구성된 시스템 SMTP 설정을 사용하여 전송됩니다.`,sendingTo:`알림이 전송될 주소`,noEmailWarning:`계정에 이메일 주소가 없습니다. 관리자에게 연락하여 추가하세요.`,printJobNotifications:`인쇄 작업 알림`,printJobNotificationsDesc:`내가 제출한 인쇄 작업에 대해 이메일 알림을 트리거할 이벤트를 선택하세요.`,printJobStarts:`인쇄 작업 시작`,printJobStartsDesc:`인쇄 작업이 시작될 때 알림 받기.`,printJobFinishes:`인쇄 작업 완료`,printJobFinishesDesc:`인쇄 작업이 성공적으로 완료될 때 알림 받기.`,printErrors:`인쇄 오류`,printErrorsDesc:`인쇄 작업이 실패하거나 오류가 발생할 때 알림 받기.`,printJobStops:`인쇄 작업 중지`,printJobStopsDesc:`인쇄 작업이 취소되거나 중지될 때 알림 받기.`,saveSuccess:`알림 환경 설정이 저장되었습니다.`,saveError:`알림 환경 설정 저장 실패.`}},richTextEditor:{bold:`굵게`,italic:`기울임`,underline:`밑줄`,bulletList:`글머리 기호 목록`,numberedList:`번호 목록`,alignLeft:`왼쪽 정렬`,alignCenter:`가운데 정렬`,alignRight:`오른쪽 정렬`,addLink:`링크 추가`,removeLink:`링크 제거`},externalLinks:{title:`사이드바 링크`,sidebarLayout:`사이드바`,sidebarLayoutDescription:`기본 제공 페이지를 표시하거나 숨기고, 외부 링크를 추가하고, 항목을 드래그하여 사이드바 탐색 순서를 변경하세요.`,systemPages:`Bambuddy 페이지`,externalLinks:`외부 링크`,visibleInSidebar:`사이드바에 표시`,hiddenFromSidebar:`사이드바에서 숨김`,requiredInSidebar:`사이드바에 필수`,hidePage:`페이지 숨기기`,showPage:`페이지 표시`,settingsCannotBeHidden:`설정은 숨길 수 없습니다`,noLinksConfigured:`구성된 외부 링크 없음`,deleteLink:`링크 삭제`,removeCustomIcon:`사용자 지정 아이콘 제거`,openInNewTab:`새 탭에서 열기`,placeholders:{linkName:`내 링크`}},keyboardShortcuts:{title:`키보드 단축키`,navigation:`탐색`,archivesSection:`아카이브`,kProfilesSection:`K-프로필`,generalSection:`일반`,shortcuts:{goToPrinters:`프린터로 이동`,goToArchives:`아카이브로 이동`,goToQueue:`대기열로 이동`,goToStats:`통계로 이동`,goToProfiles:`클라우드 프로필로 이동`,goToSettings:`설정으로 이동`,focusSearch:`검색 포커스`,openUploadModal:`업로드 모달 열기`,clearSelection:`선택 초기화 / 입력 포커스 해제`,contextMenu:`카드 컨텍스트 메뉴`,refreshProfiles:`프로필 새로고침`,newProfile:`새 프로필`,exitSelectionMode:`선택 모드 종료`,showHelp:`이 도움말 표시`},footer:`Esc를 누르거나 외부를 클릭하여 닫기`},notificationLog:{title:`알림 로그`,events:{printStarted:`인쇄 시작됨`,printComplete:`인쇄 완료`,printFailed:`인쇄 실패`,printStopped:`인쇄 중지됨`,progress:`진행률`,printerOffline:`프린터 오프라인`,printerError:`프린터 오류`,lowFilament:`필라멘트 부족`,maintenanceDue:`유지 관리 필요`,test:`테스트`},timeAgo:{justNow:`방금`,minutesAgo:`{{minutes}}분 전`,hoursAgo:`{{hours}}시간 전`}},restoreBackup:{title:`백업 복원`,restoring:`복원 중...`,restoreComplete:`복원 완료`,restoreFailed:`복원 실패`,importSettings:`백업 파일에서 설정 가져오기`,pleaseWait:`데이터가 복원되는 동안 기다려 주세요`,clickToSelect:`백업 파일 클릭하여 선택 (.json 또는 .zip)`,howDuplicateHandling:`중복 처리 방법:`,categories:{printers:`프린터`,smartPlugs:`스마트 플러그`,notificationProviders:`알림 제공자`,filaments:`필라멘트`,archives:`아카이브`,pendingUploads:`대기 중인 업로드`,settingsTemplates:`설정 및 템플릿`},matchingInfo:{printers:`일련번호로 일치`,smartPlugs:`IP 주소로 일치`,notificationProviders:`이름으로 일치`,filaments:`이름 + 유형 + 브랜드로 일치`,archives:`콘텐츠 해시로 일치`,pendingUploads:`파일 이름으로 일치`,settingsTemplates:`항상 덮어씀`},replaceExisting:`기존 데이터 교체`,keepExisting:`기존 데이터 유지`,replaceDescription:`백업 데이터로 이미 존재하는 항목 덮어쓰기`,keepDescription:`아직 존재하지 않는 항목만 복원`,caution:`주의:`,cautionText:`덮어쓰기는 현재 구성을 백업 데이터로 교체합니다. 보안상 프린터 액세스 코드는 절대 덮어쓰지 않습니다.`,itemsRestored:`복원된 항목`,itemsSkipped:`건너뛴 항목`,restored:`복원됨`,skipped:`건너뜀 (이미 존재)`,filesLabel:`파일 (3MF, 썸네일 등)`,newApiKeysGenerated:`새 API 키 생성됨`,newApiKeysWarning:`이 키는 한 번만 표시됩니다. 지금 복사하세요!`,processingBackup:`백업 파일 처리 중...`,noDataFound:`백업 파일에서 복원할 데이터를 찾을 수 없습니다.`,failedToRestore:`백업 복원 실패. 파일 형식을 확인하세요.`},backupExport:{title:`백업 내보내기`,selectData:`포함할 데이터 선택`,selectAll:`모두 선택`,selectNone:`선택 없음`,categoryDescriptions:{settings:`언어, 테마, 업데이트 환경 설정`,notifications:`ntfy, Pushover, Discord 등`,templates:`사용자 지정 메시지 템플릿`,smartPlugs:`Tasmota 플러그 구성`,externalLinks:`외부 서비스에 대한 사이드바 링크`,printers:`프린터 정보 (액세스 코드 제외)`,plateDetection:`빈 플레이트 기준 이미지`,filaments:`필라멘트 유형 및 비용`,maintenance:`사용자 지정 유지 관리 일정`,archives:`모든 인쇄 데이터 + 파일 (3MF, 썸네일, 사진)`,projects:`프로젝트, BOM 항목 및 첨부 파일`,pendingUploads:`검토 대기 중인 가상 프린터 업로드`,apiKeys:`Webhook API 키 (가져오기 시 새 키 생성)`},requiresPrinters:`프린터 선택 필요`,zipFileWarning:`ZIP 파일이 생성됩니다.`,zipFileDescription:`모든 3MF 파일, 썸네일, 타임랩스 및 사진을 포함합니다. 시간이 걸리고 파일이 커질 수 있습니다.`,includeAccessCodes:`액세스 코드 포함`,includeAccessCodesDescription:`다른 기기로 전송하는 경우`,includeAccessCodesWarning:`액세스 코드가 평문으로 포함됩니다. 이 백업 파일을 안전하게 보관하세요!`,categoriesSelected:`{{selectedCount}}개 카테고리 선택됨`},pendingUploads:{placeholders:{notes:`이 인쇄에 대한 메모 추가...`},discardUpload:`업로드 삭제`,archiveAllUploads:`모든 업로드 아카이브`,discardAllUploads:`모든 업로드 삭제`,archive:`아카이브`,timeAgo:{justNow:`방금`,minutesAgo:`{{minutes}}분 전`,hoursAgo:`{{hours}}시간 전`,daysAgo:`{{days}}일 전`}},apiBrowser:{placeholders:{requestBody:`JSON 요청 본문...`,searchEndpoints:`엔드포인트 검색...`}},configureAmsSlot:{title:`AMS 슬롯 구성`,slotConfigured:`슬롯 구성됨!`,configuringSlot:`슬롯 구성 중:`,slotLabel:`{{ams}} 슬롯 {{slot}}`,searchPresets:`프리셋 검색...`,colorPlaceholder:`색상 이름 또는 16진수 (예: brown, FF8800)`,clearCustomColor:`사용자 지정 색상 초기화`,noCloudPresets:`클라우드 프리셋 없음. Bambu 클라우드에 로그인하여 동기화하세요.`,noPresetsAvailable:`사용 가능한 프리셋 없음. Bambu 클라우드에 로그인하거나 로컬 프로필을 가져오세요.`,noMatchingPresets:`일치하는 프리셋을 찾을 수 없습니다.`,custom:`사용자 지정`,builtin:`기본 제공`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`설정이 프린터로 전송됨`,filamentProfile:`필라멘트 프로필`,kProfileLabel:`K 프로필 (압력 전진)`,filteringFor:`필터링 중: {{material}}`,noKProfile:`K 프로필 없음 (기본값 0.020 사용)`,noMatchingKProfiles:`일치하는 K 프로필을 찾을 수 없습니다. 기본값 K=0.020이 사용됩니다.`,otherKProfiles:`이 프린터의 다른 K 프로필`,selectFilamentFirst:`먼저 필라멘트 프로필을 선택하세요`,kFromCalibration:`K={{value}} (프린터 보정에서)`,customColorLabel:`사용자 지정 색상 (선택사항)`,presetColors:`{{name}} 색상:`,showLessColors:`색상 간략히 보기`,showMoreColors:`더 많은 색상 보기`,clear:`초기화`,hexLabel:`16진수: #{{hex}}`,resetting:`초기화 중...`,resetSlot:`슬롯 초기화`,cancel:`취소`,configuring:`구성 중...`,configureSlot:`슬롯 구성`},githubBackup:{title:`Git 백업`,history:`기록`,downloadBackup:`백업 다운로드`,restoreBackup:`백업 복원`,noBackupsYet:`아직 백업 없음`},emailSettings:{placeholders:{fromName:`Bambuddy`}},tagManagement:{searchTags:`태그 검색...`,renameTag:`태그 이름 바꾸기`,deleteTag:`태그 삭제`},notificationTemplates:{placeholders:{title:`알림 제목...`,body:`알림 본문...`}},batchTag:{placeholders:{newTag:`새 태그 입력...`}},photoGallery:{deletePhoto:`사진 삭제`},filamentHoverCard:{copySpoolUuid:`스풀 UUID 복사`},kProfilesView:{hasNote:`메모 있음`,copyProfile:`프로필 복사`},layout:{openMenu:`메뉴 열기`,noPermissionSystemInfo:`시스템 정보를 볼 권한이 없습니다`},dashboard:{dragToReorder:`드래그하여 순서 변경`,hideWidget:`위젯 숨기기`},notificationProviderCard:{deleteNotificationProvider:`알림 제공자 삭제`},fileManagerModal:{closeFileManager:`파일 관리자 닫기`,sortFiles:`파일 정렬`,goToParentFolder:`상위 폴더로 이동`,threeView:`3D 보기`},embeddedCameraViewer:{refreshStream:`스트림 새로고침`,close:`닫기`,zoomOut:`축소`,resetZoom:`배율 초기화`,zoomIn:`확대`,dragToResize:`드래그하여 크기 조정`},timelapseViewer:{skipBack5s:`5초 뒤로`,skipForward5s:`5초 앞으로`},notificationProviders:{descriptions:{email:`SMTP 이메일 알림`,telegram:`Telegram 봇을 통한 알림`,discord:`Webhook을 통해 Discord 채널로 전송`,ntfy:`무료, 자체 호스팅 가능한 푸시 알림`,pushover:`간단하고 신뢰할 수 있는 푸시 알림`,callmebot:`CallMeBot을 통한 무료 WhatsApp 알림`,webhook:`모든 URL에 일반 HTTP POST`}},logViewer:{searchPlaceholder:`메시지 또는 로거 이름 검색...`,noLogEntries:`로그 항목을 찾을 수 없음`},switchbarPopover:{noSwitchesInSwitchbar:`스위치바에 스위치 없음`},projectPageModal:{placeholders:{title:`제목`,designer:`디자이너`,license:`라이선스`,description:`설명 입력...`,profileTitle:`프로필 제목`,profileDescription:`프로필 설명...`}},SpoolmanSettings:{},time:{unknown:`-`,waiting:`대기 중`,justNow:`방금`,now:`지금`,minsAgo:`{{count}}분 전`,inMins:`{{count}}분 후`,hoursAgo:`{{count}}시간 전`,inHours:`{{count}}시간 후`,daysAgo:`{{count}}일 전`,inDays:`{{count}}일 후`},spoolbuddy:{nav:{dashboard:`대시보드`,ams:`AMS`,inventory:`재고`,writeTag:`태그 쓰기`,settings:`설정`},status:{nfcReady:`NFC 준비됨`,nfcOff:`NFC 꺼짐`,offline:`오프라인`,online:`온라인`,noPrinters:`프린터 없음`,deviceOffline:`장치 오프라인`,waitingConnection:`장치 연결 대기 중...`,systemReady:`시스템 준비됨`,status:`상태`},dashboard:{readyToScan:`스캔 준비됨`,idleMessage:`스풀을 저울에 올려 식별하세요`,nfcHint:`NFC 태그가 자동으로 읽힙니다`,device:`장치`,syncWeight:`무게 동기화`,weightSynced:`동기화됨!`,unknownTag:`알 수 없는 태그`,newTag:`새 태그 감지됨`,onScale:`저울 위`,linkSpool:`스풀에 연결`,linkTagTitle:`태그를 스풀에 연결`,linkTag:`태그 연결`,selectSpool:`이 태그를 연결할 스풀 선택:`,noUntagged:`태그 없는 스풀을 찾을 수 없음`,tagDetected:`태그 감지됨`,noTag:`태그 없음`,tagId:`태그`,grossWeight:`총 무게`,spoolSize:`스풀 크기`,close:`닫기`,currentSpool:`현재 스풀`,plateReady:`플레이트 준비됨: {{name}}`,plateReadyLabel:`초기화할 플레이트`,plateClearAction:`초기화`,plateClearedToast:`플레이트가 초기화됨으로 표시됨`,plateClearFailed:`플레이트를 초기화됨으로 표시할 수 없음`},modal:{spoolDetected:`스풀 감지됨`,assignToAms:`AMS에 할당`,syncWeight:`무게 동기화`,weightSynced:`동기화됨!`,syncing:`동기화 중...`,newTagDetected:`새 태그 감지됨`,addToInventory:`재고에 추가`,assignToAmsTitle:`AMS에 할당`,selectSlot:`슬롯 선택`,assign:`할당`,assigning:`할당 중...`,assignSuccess:`할당됨!`,assignPendingInsert:`할당됨. 스풀을 삽입하면 슬롯이 구성됩니다.`,assignError:`스풀 할당 실패. 다시 시도하세요.`,noPrinterSelected:`프린터 선택...`,noAmsDetected:`이 프린터에서 AMS가 감지되지 않음`,slot:`슬롯`},weight:{noReading:`읽기 없음`,stable:`안정됨`,measuring:`측정 중...`,tare:`영점 조정`,calibrate:`보정`},spool:{remaining:`남은 양`,material:`재료`,brand:`브랜드`,color:`색상`,coreWeight:`코어`,labelWeight:`라벨`,scaleWeight:`저울`,netWeight:`순 무게`,lastUsed:`마지막 사용`},ams:{noData:`AMS가 감지되지 않음`,connectAms:`필라멘트 슬롯을 보려면 AMS를 연결하세요`,noPrinter:`선택된 프린터 없음`,selectPrinter:`상단 표시줄에서 프린터를 선택하세요`,printerDisconnected:`프린터 연결 끊김`,humidity:`습도`,level:`레벨`,active:`활성`,slot:`슬롯`,empty:`비어 있음`},inventory:{search:`스풀 검색...`,empty:`재고에 스풀 없음`,noResults:`일치하는 스풀 없음`,spools:`스풀`,addSpool:`스풀 추가`},settings:{tabDevice:`장치`,tabDisplay:`화면`,tabScale:`저울`,tabUpdates:`업데이트`,nfcReader:`NFC 리더`,type:`유형`,connection:`연결`,notConnected:`N/A`,deviceInfo:`장치 정보`,hostname:`호스트`,uptime:`가동 시간`,systemConfig:`백엔드 및 인증`,backendUrl:`Bambuddy 백엔드 URL`,apiToken:`API 토큰`,apiTokenPlaceholder:`API 토큰 입력`,saveConfig:`구성 저장`,systemQueued:`구성 대기 중.`,nfcDiagnostic:`NFC 진단`,scaleDiagnostic:`저울 진단`,readTagDiagnostic:`태그 읽기 진단`,testNfc:`리더 테스트`,testScale:`정확도 테스트`,testReadTag:`태그 읽기`,systemFieldsRequired:`백엔드 URL이 필요합니다.`,brightness:`밝기`,saved:`저장됨`,noBacklight:`DSI 백라이트가 감지되지 않음. 밝기 제어는 DSI 디스플레이가 필요합니다.`,screenBlank:`화면 꺼짐 대기 시간`,screenBlankDesc:`비활성 후 화면이 꺼집니다. 터치하여 깨우세요.`,displayNote:`밝기는 소프트웨어 필터로 적용됩니다.`,scaleCalibration:`저울 보정`,currentWeight:`현재 무게`,tareOffset:`영점`,calFactor:`계수`,knownWeight:`알려진 무게`,calStep1:`저울에서 모든 물건을 제거하고 영점 설정을 누르세요.`,calStep2:`저울에 알려진 무게를 올리세요.`,setZero:`영점 설정`,calibrateNow:`보정`,calibrated:`보정됨`,tareSet:`영점 조정 명령 전송됨. 장치 대기 중...`,tareComplete:`영점 조정 완료!`,tareTimedOut:`영점 조정 시간 초과 — SpoolBuddy 데몬이 실행 중인가요?`,tareFailed:`영점 조정 명령 전송 실패`,zeroSet:`영점이 설정됨. 저울에 알려진 무게를 올리세요.`,calibrationDone:`보정 완료!`,calibrationFailed:`보정 실패`,lastCalibrated:`마지막 보정`,stable:`안정됨`,settling:`안정화 중...`,firmware:`펌웨어`,scale:`저울`,noDevice:`SpoolBuddy 장치를 찾을 수 없음`,daemonVersion:`데몬 버전`,currentVersion:`현재`,versionPending:`데몬 대기 중...`,checking:`확인 중...`,checkUpdates:`업데이트 확인`,updateAvailable:`업데이트 사용 가능`,updateInstructions:`SSH를 통해 업데이트: SpoolBuddy 설치 스크립트를 실행하여 업그레이드하세요.`,upToDate:`최신 버전`,includeBeta:`베타 버전 포함`},writeTag:{tabExisting:`기존 스풀`,tabNew:`새 스풀`,tabReplace:`태그 교체`,searchPlaceholder:`재료, 색상, 브랜드로 검색...`,noUntaggedSpools:`태그 없는 스풀 없음`,noTaggedSpools:`태그 있는 스풀 없음`,selectSpool:`스풀을 선택한 후 빈 NTAG를 리더에 올려놓으세요`,placeTag:`NTAG를 리더에 올려놓으세요`,tagReady:`태그 감지됨 — 쓰기 준비됨`,writeTag:`태그 쓰기`,replaceTag:`태그 교체`,writing:`태그 쓰는 중...`,waiting:`SpoolBuddy 대기 중...`,writeSuccess:`태그 성공적으로 쓰여짐!`,writeFailed:`쓰기 실패`,queueFailed:`쓰기 명령 대기 실패`,tryAgain:`다시 시도`,cancel:`취소`,replaceWarning:`이전 태그가 연결 해제됩니다. 새 태그가 교체합니다.`,deviceOffline:`SpoolBuddy가 오프라인입니다`,material:`재료`,colorName:`색상 이름`,color:`색상`,brand:`브랜드`,weight:`무게 (g)`,createSpool:`스풀 생성`,creating:`생성 중...`,spoolCreated:`스풀 생성됨! 쓰기 준비됨.`,createFailed:`스풀 생성 실패`,incompleteDataWarning:`불완전한 Spoolman 데이터로 태그 쓰여짐`},quickMenu:{printerPower:`프린터 전원`,systemControls:`시스템`,restartDaemon:`데몬 재시작`,restartBrowser:`브라우저 재시작`,reboot:`재부팅`,shutdown:`종료`,swipeToClose:`아래로 스와이프하여 닫기`,confirmTitle:`확인`,confirmShutdown:`SpoolBuddy를 종료하시겠습니까? 다시 켜려면 물리적 접근이 필요합니다.`,confirmReboot:`SpoolBuddy를 재부팅하시겠습니까?`,confirmRestartDaemon:`SpoolBuddy 데몬을 재시작하시겠습니까? NFC와 저울이 일시적으로 사용 불가능합니다.`,confirmRestartBrowser:`키오스크 브라우저를 재시작하시겠습니까? 화면이 잠시 꺼집니다.`,confirm:`확인`,confirmPlugOn:`{{name}}을(를) 켜시겠습니까?`,confirmPlugOff:`{{name}}을(를) 끄시겠습니까?`,turnOn:`켜기`,turnOff:`끄기`}},bugReport:{title:`버그 신고`,description:`설명`,descriptionPlaceholder:`무엇이 잘못되었나요? 문제를 설명해 주세요...`,email:`이메일 (선택사항)`,emailPlaceholder:`your@email.com`,emailPrivacy:`제공하면 이메일이 GitHub 이슈의 접힌 섹션에 포함되어 관리자가 후속 조치를 취할 수 있습니다.`,screenshot:`스크린샷`,uploadOrPaste:`이미지 업로드, 붙여넣기 또는 드래그`,dataCollectedSummary:`보고서에 포함되는 데이터는?`,dataIncluded:`포함됨:`,dataIncludedList:`앱 버전, OS, 아키텍처, Python 버전, 데이터베이스 통계(개수만), 프린터 모델, 노즐 개수, 펌웨어 버전, 연결 상태, 통합 상태(Spoolman, MQTT, HA), 비민감 설정, 네트워크 인터페이스 수, Docker 세부 정보, 의존성 버전.`,dataNeverIncluded:`절대 포함되지 않음:`,dataNeverIncludedList:`프린터 이름, 일련 번호, 액세스 코드, 비밀번호, IP 주소, 이메일 주소, API 키, 토큰, Webhook URL, 호스트 이름 또는 사용자 이름.`,submit:`제출`,startLogging:`디버그 로깅 시작`,stepEnableLogging:`디버그 로깅 활성화됨`,stepReproduce:`이제 문제를 재현하세요`,stepStopLogging:`중지 후 보고서 제출`,stopAndSubmit:`중지 후 제출`,maxDuration:`{{minutes}}분 후 자동 중지`,stoppingLogs:`로그 수집 및 제출 중...`,submitting:`버그 보고서 제출 중...`,submitSuccess:`버그 보고서가 성공적으로 제출되었습니다!`,submitFailed:`버그 보고서 제출 실패`,thankYou:`감사합니다!`,submitted:`버그 보고서가 제출되었습니다.`,viewIssue:`이슈 보기`,unexpectedError:`예상치 못한 오류가 발생했습니다`,submittingStepConnection:`프린터 연결 확인 실행 중`,submittingStepVirtualPrinters:`가상 프린터 설정 확인 실행 중`,submittingStepLogScan:`알려진 문제가 있는지 최근 로그 스캔 중`,submittingStepSubmit:`GitHub에 보고서 제출 중`,diagnosticChecking:`프린터 연결 확인 중...`,diagnosticHealthy:`연결 확인 통과 — 프린터에서 문제가 발견되지 않았습니다.`,diagnosticSummary:`{{total}}개 프린터 중 {{problems}}개에서 연결 문제가 있습니다`,diagnosticIntro:`하나 이상의 프린터에 연결 문제가 있어 현재 문제의 원인일 수 있습니다. 아래에서 프린터를 펼쳐 수정 방법을 확인하세요 — 해결하면 버그 보고서 없이 문제가 해결될 수 있습니다. 아래에서 보고서를 제출할 수도 있습니다.`,logHealthSummary:`로그에서 알려진 문제가 발견되었습니다`,logHealthIntro:`최근 로그가 알려진 문제와 일치합니다. 아래 수정 방법을 확인하세요 — 해결하면 버그 보고서 없이 문제가 해결될 수 있습니다. 아래에서 보고서를 제출할 수도 있습니다.`},failureDetection:{title:`AI 실패 감지`,description:`자체 호스팅 Obico ML API로 인쇄를 모니터링하고 감지된 실패에 자동으로 조치합니다.`,mlUrl:`Obico ML API URL`,mlUrlHint:`자체 호스팅 Obico ml_api 컨테이너의 기본 URL (예: http://192.168.1.10:3333).`,mlToken:`ML API 토큰 (선택 사항)`,mlTokenPlaceholder:`서버가 ML_API_TOKEN 없이 실행 중이면 비워 두세요`,mlTokenHint:`Obico ml_api 컨테이너의 ML_API_TOKEN 환경 변수와 일치해야 합니다. 컨테이너가 토큰 없이 실행 중이면 비워 두세요.`,test:`테스트`,testSuccess:`ML API에 도달 가능하며 정상입니다.`,testSuccessTokenUnknown:`ML API에 도달 가능하며 정상입니다. 토큰은 확인할 수 없었습니다.`,testFailed:`ML API에 도달할 수 없습니다.`,sensitivity:`민감도`,sensitivityLow:`낮음 (오탐 적음)`,sensitivityMedium:`중간 (균형)`,sensitivityHigh:`높음 (조기 감지, 오탐 많음)`,sensitivityHint:`경고 및 실패를 트리거하는 신뢰도 임계값을 조정합니다.`,action:`감지된 실패에 대한 조치`,actionNotify:`알림만`,actionPause:`인쇄 일시 중지`,actionPauseOff:`일시 중지 후 전원 끄기`,pollInterval:`폴링 간격 (초)`,pollIntervalHint:`인쇄 중 각 프린터를 확인하는 빈도. 최소 5초, 최대 120초.`,externalUrlMissing:`외부 URL이 설정되지 않았습니다.`,externalUrlHint:`ML API가 URL을 통해 카메라 스냅샷을 가져옵니다. ML API 컨테이너가 Bambuddy에 도달할 수 있도록 일반 설정에서 외부 URL을 설정하세요.`,perPrinterTitle:`모니터링되는 프린터`,perPrinterHint:`감지 서비스가 감시할 프린터를 선택하세요.`,monitorAll:`연결된 모든 프린터 모니터링`,statusTitle:`상태`,serviceRunning:`서비스 실행 중`,thresholds:`낮음 / 높음 임계값`,activePrinters:`활성 인쇄물`,noActivePrints:`현재 실행 중인 인쇄물 없음.`,historyTitle:`최근 감지`,noHistory:`아직 감지 없음.`},makerworld:{title:`MakerWorld`,description:`MakerWorld 모델 URL을 붙여넣어 Bambu Handy 앱을 떠나지 않고 Bambuddy에서 직접 가져오고 인쇄하세요.`,pasteUrlHeader:`MakerWorld에서 가져오기`,pasteUrlPlaceholder:`https://makerworld.com/en/models/… 또는 MakerWorld 링크 붙여넣기`,resolveButton:`확인`,signInRequiredTitle:`다운로드하려면 Bambu 클라우드 로그인 필요`,signInRequiredBody:`익명으로 모델 세부 정보를 탐색할 수 있지만 MakerWorld는 3MF 파일을 다운로드하려면 Bambu 클라우드 계정이 필요합니다.`,signInExpiredTitle:`Bambu 클라우드 로그인이 만료되었습니다`,signInExpiredBody:`Bambuddy에는 여전히 로그인되어 있지만 Bambu Lab이 저장된 토큰을 더 이상 허용하지 않아 다운로드가 실패합니다. Bambu 클라우드에 다시 로그인하세요.`,openCloudSettings:`클라우드 설정 열기`,untitledModel:`제목 없는 모델`,byCreator:`{{name}} 제작`,downloadsCount:`{{count}}회 다운로드`,licensePrefix:`라이선스`,alreadyImported:`이미 라이브러리에 있음`,openOnMakerworld:`MakerWorld에서 열기`,alreadyInLibrary:`이 모델이 이미 라이브러리에 있습니다 — 파일 관리자 → MakerWorld에서 찾으세요`,importSuccess:`{{filename}} 가져옴 — 파일 관리자 → MakerWorld에 저장됨`,platesHeader:`플레이트 ({{count}})`,plateDefaultName:`플레이트 {{n}}`,materialCount:`{{count}}개 필라멘트`,amsRequired:`AMS 필요`,slicedFor:`{{printer}}용으로 슬라이싱됨`,alsoCompatible:`호환 가능으로도 표시됨: {{printers}}`,importToLibrary:`저장`,sliceIn:`{{slicer}}에서 저장 및 슬라이싱`,disclaimer:`MakerWorld 통합은 커뮤니티가 문서화한 API 엔드포인트를 사용합니다. Bambuddy는 MakerWorld 또는 Bambu Lab과 제휴하거나 이들의 승인을 받지 않았습니다.`,lastImportSuccess:`라이브러리에 가져옴`,lastImportAlreadyInLibrary:`이미 라이브러리에 있음`,viewInLibrary:`파일 관리자에서 보기`,openInBambuStudio:`Bambu Studio에서 열기`,openInOrcaSlicer:`OrcaSlicer에서 열기`,importTo:`파일 관리자로 가져오기`,recentImportsHeader:`최근 가져오기`,phaseResolving:`확인 중`,phaseDownloading:`다운로드 중`,folderAuto:`MakerWorld (기본값)`,importAll:`모두 가져오기`,importAllProgress:`{{total}}개 중 {{current}}개 가져오는 중`,openGallery:`이미지 갤러리 열기`,galleryPrev:`이전 이미지`,galleryNext:`다음 이미지`,deleteImport:`라이브러리에서 제거`,importDeleting:`제거 중…`,importDeleted:`라이브러리에서 제거됨`,confirmDelete:`라이브러리에서 {{filename}}을(를) 제거하시겠습니까? 로컬 파일이 삭제되지만 MakerWorld에서 다시 가져올 수 있습니다.`,errors:{resolveFailed:`MakerWorld URL을 확인할 수 없습니다.`,downloadFailed:`다운로드 실패. 다시 시도하세요.`,deleteFailed:`라이브러리에서 파일을 제거할 수 없습니다.`}},gcodeViewer:{back:`뒤로`,backToArchives:`인쇄 아카이브로 돌아가기`,backToFiles:`파일 관리자로 돌아가기`},libraryTrash:{title:`휴지통`,headerButton:`휴지통`,headerTooltip:`휴지통으로 이동된 파일 보기`,backToFiles:`파일 관리자로 돌아가기`,subtitleAdmin:`삭제된 파일은 {{days}}일 동안 여기에 보관된 후 자동 삭제됩니다. 이 보기는 모든 사용자의 휴지통 파일을 표시합니다.`,subtitleUser:`삭제된 파일은 {{days}}일 동안 여기에 보관된 후 자동 삭제됩니다.`,loading:`휴지통 불러오는 중…`,loadError:`휴지통을 불러올 수 없습니다.`,empty:`휴지통이 비어 있습니다.`,summary:`{{count}}개 파일 · {{size}}`,emptyTrash:`휴지통 비우기`,restore:`복원`,purgeNow:`지금 삭제`,autoPurgeIn:`{{when}} 후 자동 삭제`,days:`일`,retentionLabel:`자동 삭제 기간`,selectAll:`모두 선택`,selectOne:`{{filename}} 선택`,selectionCount:`{{count}}개 선택됨`,bulkRestore:`선택 항목 복원`,bulkPurge:`선택 항목 삭제`,col:{filename:`파일`,folder:`폴더`,size:`크기`,deleted:`휴지통 이동일`,autoPurge:`자동 삭제일`,owner:`소유자`,actions:`작업`},confirm:{purgeTitle:`영구 삭제?`,purgeBody:`{{filename}}이(가) 디스크에서 삭제되며 복원할 수 없습니다.`,emptyTitle:`휴지통을 비우시겠습니까?`,emptyBody:`{{count}}개의 모든 파일이 디스크에서 삭제됩니다. 이 작업은 취소할 수 없습니다.`,bulkPurgeTitle:`선택한 파일을 영구 삭제하시겠습니까?`,bulkPurgeBody:`선택한 {{count}}개 파일이 디스크에서 삭제되며 복원할 수 없습니다.`,cta:`영구 삭제`},toast:{restored:`파일이 복원되었습니다.`,restoreFailed:`파일을 복원할 수 없습니다.`,purged:`파일이 영구 삭제되었습니다.`,purgeFailed:`파일을 삭제할 수 없습니다.`,emptied:`휴지통에서 {{count}}개 파일이 삭제되었습니다.`,emptyFailed:`휴지통을 비울 수 없습니다.`,retentionSaved:`자동 삭제가 {{days}}일로 설정되었습니다.`,retentionFailed:`보존 설정을 저장할 수 없습니다.`,bulkRestored:`{{count}}개 파일이 복원되었습니다.`,bulkPurged:`{{count}}개 파일이 삭제되었습니다.`}},libraryPurge:{title:`오래된 파일 삭제`,headerButton:`오래된 파일 삭제`,headerTooltip:`오래된 파일을 휴지통으로 일괄 이동`,description:`라이브러리에서 오래된 파일을 한 번에 정리합니다. 인쇄 기록이 있는 파일은 마지막 인쇄 날짜 기준으로, 한 번도 인쇄되지 않은 파일은 업로드 날짜 기준으로 계산됩니다.`,ageLabel:`다음보다 오래된 파일 이동`,days:`일`,includeNeverPrinted:`한 번도 인쇄되지 않은 파일 포함`,effectsTitle:`삭제 클릭 시 일어나는 일`,effect1:`일치하는 파일이 휴지통으로 이동됩니다 — 디스크에서 아직 삭제되지 않습니다.`,effect2:`보존 기간이 만료되기 전까지 언제든 휴지통에서 복원할 수 있습니다.`,effect3:`보존 기간 후 휴지통 청소기가 디스크에서 영구적으로 제거합니다.`,effect4:`외부(연결된) 폴더의 파일은 건너뜁니다 — Bambuddy는 자신이 소유하지 않은 바이트는 절대 삭제하지 않습니다.`,previewLoading:`일치하는 파일 수 확인 중…`,previewFailed:`삭제 미리보기를 불러올 수 없습니다.`,previewSummary:`{{count}}개 파일 · {{size}}이(가) 휴지통으로 이동됩니다`,andMore:`…및 {{count}}개 더`,warning:`휴지통 파일은 보존 기간이 만료될 때까지 저장 공간을 차지합니다. 즉시 디스크를 확보하려면 나중에 휴지통을 비우세요.`,confirmCta:`{{count}}개를 휴지통으로 이동`,purging:`휴지통으로 이동 중…`,toast:{success:`{{count}}개 파일을 휴지통으로 이동했습니다.`,failed:`파일을 삭제할 수 없습니다.`}},libraryAutoPurge:{enableLabel:`오래된 파일 자동 삭제`,enableDescription:`매일 한 번 관리자 삭제를 실행합니다. 파일이 먼저 휴지통으로 이동됩니다 — 즉시 삭제되지 않습니다.`,ageLabel:`다음보다 오래된 파일 자동 삭제`,ageDescription:`최소 7일, 최대 10년. 수동 삭제 버튼과 같은 날짜 규칙을 사용합니다.`,days:`일`,includeNeverPrinted:`한 번도 인쇄되지 않은 파일 포함`,saveFailed:`자동 삭제 설정을 저장할 수 없습니다.`},archivePurge:{headerButton:`오래된 것 삭제`,headerTooltip:`오래된 아카이브 일괄 삭제`,title:`오래된 아카이브 삭제`,description:`오래된 인쇄 기록을 정리합니다. 각 아카이브는 가장 최근 인쇄 완료 시점 기준으로 계산됩니다 — 아카이브를 다시 인쇄하면 날짜가 새로고침되므로 활성 작업은 절대 삭제되지 않습니다.`,ageLabel:`다음 기간 동안 인쇄되지 않은 아카이브 삭제`,days:`일`,effectsTitle:`삭제 클릭 시 일어나는 일`,effect1:`일치하는 각 아카이브가 데이터베이스에서 영구적으로 제거됩니다.`,effect2:`3MF, 썸네일, 타임랩스, 소스 3MF, F3D 디자인 파일 및 사진 폴더가 모두 디스크에서 삭제됩니다.`,effect3:`아카이브에 대한 휴지통이 없습니다 — 삭제는 즉각적이며 취소할 수 없습니다.`,effect4:`아카이브를 다시 인쇄하면 날짜 카운터가 초기화되므로 여전히 사용하는 아카이브는 안전합니다.`,previewLoading:`일치하는 아카이브 수 확인 중…`,previewFailed:`삭제 미리보기를 불러올 수 없습니다.`,previewSummary:`{{count}}개 아카이브 · {{size}}이(가) 삭제됩니다`,andMore:`…및 {{count}}개 더`,warning:`영구적입니다. 계속하기 전에 보관하고 싶은 것을 다운로드하거나 즐겨찾기에 추가하세요.`,confirmCta:`{{count}}개 아카이브 삭제`,purging:`삭제 중…`,toast:{success:`{{count}}개 아카이브가 삭제되었습니다.`,failed:`아카이브를 삭제할 수 없습니다.`},purgeStatsLabel:`통계에서도 제거`,purgeStatsHint:`일치하는 아카이브를 빠른 통계(필라멘트, 시간, 비용, 에너지)에서 삭제합니다. 이 옵션 없이는 빠른 통계는 모든 기여를 유지하고 파일만 디스크에서 제거됩니다.`},archiveAutoPurge:{enableLabel:`오래된 아카이브 자동 삭제`,enableDescription:`매일 한 번, 임계값 내에 인쇄되지 않은 아카이브를 영구적으로 삭제합니다. 아카이브를 다시 인쇄하면 카운터가 초기화됩니다. 휴지통 없음 — 삭제는 즉각적입니다.`,ageLabel:`다음 기간 동안 인쇄되지 않은 아카이브 자동 삭제`,ageDescription:`최소 7일, 최대 10년. 가장 최근 인쇄 완료 시점 기준 — 아카이브를 다시 인쇄하면 날짜가 새로고침됩니다. 아카이브, 3MF, 썸네일, 타임랩스 및 사진을 삭제합니다.`,days:`일`,runNow:`지금 아카이브 삭제`,saveFailed:`자동 삭제 설정을 저장할 수 없습니다.`,purgeStatsLabel:`통계에서도 제거`,purgeStatsDescription:`활성화되면 일일 정리 작업도 각 삭제된 아카이브를 빠른 통계(필라멘트, 시간, 비용, 에너지)에서 제거합니다. 기본값 비활성화 — 빠른 통계는 기여를 유지하고 파일만 디스크에서 제거됩니다.`},cameraTokens:{scope:{camera_stream:`카메라 스트림`,camwall:`카메라 월`,overlay:`스트리밍 오버레이`},title:`카메라 API 토큰`,navTitle:`카메라 API 토큰`,description:`Home Assistant, Frigate, 키오스크 화면 등 안정적인 주소가 필요한 도구에 카메라 스트림을 삽입하기 위한 장기 토큰입니다. 범위는 생성할 때 선택하며, 토큰은 언제든지 취소할 수 있습니다.`,loading:`불러오는 중…`,confirmRevoke:{title:`이 토큰을 취소하시겠습니까?`,body:`"{{name}}"을(를) 사용하는 모든 장치가 즉시 접근을 잃습니다. 이 작업은 취소할 수 없습니다.`,cancel:`취소`,confirm:`취소`},create:{scopeLabel:`범위`,hintCameraStream:`카메라 스트림 토큰은 카메라 스트림과 스냅숏만 가져올 수 있습니다. Home Assistant, Frigate 등 카메라 하나를 삽입하는 용도로 사용하세요.`,hintCamWall:`카메라 월 토큰은 로그인 없이 화면에서 /camwall을 엽니다. 모든 프린터의 이름과 상태, 카메라 스트림을 볼 수 있습니다. 파일 이름, 주소, 액세스 코드는 볼 수 없습니다.`,hintOverlay:`스트리밍 오버레이 토큰은 로그인 없이 화면에서 /overlay/{printerId}을 엽니다 — OBS나 모든 라이브 방송용입니다. 프린터 한 대의 카메라 스트림과 화면에 표시되는 파일 이름을 포함한 실시간 인쇄 상태를 볼 수 있습니다. 주소나 액세스 코드는 볼 수 없습니다.`,title:`새 토큰 만들기`,nameLabel:`토큰 이름`,namePlaceholder:`예: Home Assistant`,daysLabel:`만료까지 일 수`,submit:`만들기`,hint:`최대 수명은 365일입니다. 토큰 값은 생성 시 한 번만 표시됩니다 — 지금 복사하세요.`},created:{camWallUrlTitle:`이 화면용 카메라 월 주소`,camWallUrlHint:`이 주소를 화면에서 여세요. 주소를 읽을 수 있는 사람은 누구나 월을 볼 수 있으므로 열쇠처럼 다루세요. 토큰을 취소하면 해당 화면의 접근이 차단됩니다.`,overlayUrlTitle:`OBS용 오버레이 주소`,overlayUrlHint:`OBS에서 이것을 브라우저 소스로 추가하세요. /overlay/1의 숫자를 프린터의 번호(프린터 페이지의 주소에 표시됨)로 변경하세요. 주소를 읽을 수 있는 사람은 누구나 스트림을 볼 수 있으므로 열쇠처럼 다루세요 — 접근을 차단하려면 토큰을 취소하세요.`,title:`토큰 생성됨 — 지금 복사하세요`,warning:`이 토큰은 이 번만 볼 수 있습니다. 이 대화상자를 닫으면 다시는 볼 수 없습니다.`,copy:`복사`,dismiss:`저장했습니다`},list:{scope:`범위`,myTitle:`내 토큰`,allTitle:`모든 사용자 (관리자 보기)`,empty:`아직 토큰 없음.`,name:`이름`,owner:`소유자`,prefix:`접두사`,created:`생성일`,expires:`만료일`,lastUsed:`마지막 사용`,revoke:`취소`,expired:`만료됨`},toast:{created:`토큰 생성됨`,createFailed:`토큰 생성 실패`,revoked:`토큰 취소됨`,revokeFailed:`토큰 취소 실패`,loadFailed:`토큰 불러오기 실패`,copied:`클립보드에 복사됨`,copyFailed:`복사 실패 — 수동으로 선택하여 복사하세요`}},forecast:{title:`예측`,noSpools:`활성 스풀을 찾을 수 없습니다. 예측 데이터를 보려면 재고에 스풀을 추가하세요.`,noUsageData:`사용 데이터를 사용할 수 없습니다 — 재고 타임라인을 예측할 수 없습니다.`,sku:`SKU`,material:`재료`,stock:`재고`,dailyRate:`소비율`,daysLeft:`남은 일수`,emptyBy:`소진 예정일`,reorderBy:`재주문 기한`,actions:`작업`,trend:`추세`,estimated:`추정`,noData:`데이터 없음`,timeframe:`기간`,chartTitle:`예상 재고 — 상위 5개 재료`,dashedLinesROP:`점선 = 재주문 시점`,stockLevel:`재고 수준`,reorderPoint:`재주문 시점`,safetyMargin:`안전 마진`,trendLegend:`추세 (기록 기반, 95% 서비스 수준)`,estimatedLegend:`추정 (무게 변화)`,noDataLegend:`데이터 없음`,ropLabel:`ROP`,ssLabel:`SS`,safetyStockLegend:`안전 재고`,stockArrivalLegend:`재고 입고`,stockoutLegend:`재고 소진`,alertCount_one:`{{count}}개 알림`,alertCount_other:`{{count}}개 알림`,order:`주문`,save:`저장`,cancel:`취소`,settingsSaved:`설정 저장됨`,failedSaveSettings:`설정 저장 실패`,globalLeadTimeSaved:`전역 리드 타임 저장됨`,globalLeadTime:`전역 리드 타임`,globalLeadTimeHint:`전역 리드 타임 하한값 — 모든 SKU의 재주문 시점 계산에 사용됨`,skuLeadTimeOverride:`SKU 리드 타임 재정의`,skuLeadTimeHint:`0 = 전역 리드 타임 사용. 이 SKU에 대해 재정의하려면 >0으로 설정.`,safetyMarginLabel:`안전 마진`,effectiveLeadTime:`유효 리드 타임`,effectiveLeadTimeHint:`max(전역 {{global}}일, SKU {{sku}}일)`,reorderPointHint:`d̄ × LT + 안전 마진 — 재고가 이 수준에 도달하면 주문`,safetyMarginHint:`통계적 안전 재고 (z=1.65 × σ × √LT) + 사용자 정의 버퍼`,safetyMarginHintDays:`통계적 안전 재고 위에 추가되는 버퍼.{{approx}}`,safetyMarginHintDaysApprox:` ≈ 현재 소비율로 {{g}}g.`,safetyMarginHintG:`통계적 안전 재고 위에 추가되는 고정 무게 버퍼.{{approx}}`,safetyMarginHintGApprox:` ≈ 현재 소비율로 {{days}}일.`,individualSpools:`개별 스풀`,labelWeight:`라벨`,spoolCount_one:`스풀 {{count}}개`,spoolCount_other:`스풀 {{count}}개`,stockBreakRisk:`재고 소진 위험`,stockBreakDetail:`{{days}}일 남음, 리드 타임 {{lt}}일.`,stockBreakBefore:`보충 전 재고 소진`,reorderNow:`지금 재주문`,reorderTriggerPassed:`트리거 날짜 {{date}}가 지났습니다.`,shoppingList:`쇼핑 목록`,shoppingListItems_one:`({{count}}개 항목)`,shoppingListItems_other:`({{count}}개 항목)`,shoppingListEmpty:`쇼핑 목록이 비어 있습니다. 항목을 추가하려면 행의 장바구니 아이콘을 클릭하세요.`,addToCart:`쇼핑 목록에 추가`,alertsSnoozed:`이 SKU의 알림 음소거`,alertsEnabled:`이 SKU의 알림 음소거 해제`,addedToCart:`쇼핑 목록에 추가됨`,failedAddItem:`항목 추가 실패`,listView:`목록`,logisticsView:`물류`,qty:`수량`,weight:`무게`,leadTime:`리드 타임`,expectedRestock:`예상 재입고`,status:`상태`,note:`메모`,pending:`대기 중`,purchased:`구매됨`,received:`수령됨`,markPurchased:`구매됨으로 표시`,markReceived:`수령됨으로 표시 — 재고에 스풀 추가`,resetToPending:`대기 중으로 초기화`,remove:`제거`,clearAll:`모두 초기화`,downloadCsv:`CSV`,addToCartTitle:`쇼핑 목록에 추가`,byQuantity:`수량 기준`,byDuration:`기간 기준`,numberOfSpools:`스풀 수`,lastHowManyDays:`몇 일 동안 지속되어야 합니까?`,noUsageQty:`사용 데이터 없음 — 수량을 1로 설정합니다.`,noteOptional:`메모 (선택사항)`,notePlaceholder:`예: 프로젝트 X용, 긴급…`,addNSpools_one:`스풀 {{count}}개 추가`,addNSpools_other:`스풀 {{count}}개 추가`,onArrival:`입고 시`,stockBreakIn:`{{days}}일 후 재고 소진.`,stockRunsOutBefore:`{{lt}}일 리드 타임이 경과하기 전에 재고가 소진됩니다.`,atRate:`{{rate}}g/일 소비율로`,moreSpools_one:`스풀 {{count}}개 더`,moreSpools_other:`스풀 {{count}}개 더`,bridgeGap:`격차를 메우기 위해 필요합니다.`,noReadAccess:`재고 예측을 볼 권한이 없습니다.`,noWriteAccess:`예측 설정을 수정할 권한이 없습니다.`},diagnostic:{modalTitle:`연결 진단 — {{name}}`,running:`진단 실행 중...`,runningElapsed:`진단 실행 중... ({{elapsed}}초)`,waitingForReportHint:`프린터가 상태 보고를 게시하기를 기다리는 중 — 최대 {{max}}초 걸릴 수 있습니다.`,runFailed:`진단 실행 실패: {{error}}`,retry:`다시 실행`,runButton:`진단 실행`,sectionTitle:`연결 진단`,sectionDescription:`프린터가 연결되지 않거나 인쇄되지 않는 이유를 확인합니다 — 포트 연결 가능 여부, LAN 개발자 모드, Docker 네트워크 모드, 자격증명.`,noPrinters:`구성된 프린터가 없습니다.`,overall:{ok:`문제가 발견되지 않았습니다 — 프린터 연결이 정상입니다.`,warnings:`프린터가 작동하지만 일부 항목에 주의가 필요합니다.`,problems:`프린터가 연결되지 않거나 인쇄되지 않는 원인이 되는 문제가 발견되었습니다.`},check:{port_mqtt:{title:`제어 포트 (MQTT 8883)`,pass:`연결 가능 — 프린터가 제어 연결을 수락하고 있습니다.`,fail:`포트 8883에 연결할 수 없습니다. 프린터가 꺼져 있거나, IP 주소가 다르거나, 방화벽이 차단하고 있습니다. 프린터 IP를 확인하고 포트 8883이 차단되지 않았는지 확인하세요.`},port_ftps:{title:`파일 전송 포트 (FTPS 990)`,pass:`연결 가능 — 인쇄 파일 전송이 작동합니다.`,warn:`포트 990에 연결할 수 없습니다. 모니터링은 작동할 수 있지만 프린터로 파일 전송에 실패합니다. 포트 990이 차단되지 않았는지 확인하세요.`},external_storage:{title:`전송된 파일을 외부 저장소에 저장 (설치 단계 4)`,pass:`프린터가 이 옵션이 켜져 있다고 보고합니다 — 전송된 파일이 SD 카드에 저장되며 아카이브에 썸네일과 슬라이서 메타데이터가 포함됩니다.`,fail:`프린터가 이 옵션이 꺼져 있다고 보고합니다. "전송된 파일을 외부 저장소에 저장"을 활성화하세요 — 최신 펌웨어 (P2S 01.02 / Bambu Studio 2.6 이상)에서는 프린터의 인쇄 설정에 토글이 있고, 이전 버전에서는 Bambu Studio / OrcaSlicer의 장치 탭에 있습니다. 이 옵션이 없으면 아카이브된 모든 인쇄물에 썸네일과 슬라이서 메타데이터가 없습니다.`,skip:`확인되지 않음 — 활성 MQTT 연결이 필요합니다. 이 설정이 슬라이서에만 존재하는 이전 슬라이서에서는 프린터가 보고하지 않으므로, 옵션이 꺼져 있어도 이 검사는 통과합니다 — 설치 단계 4를 수동으로 확인하세요.`,skip_unsupported_model:`이 모델에는 SD 슬롯이 있지만 옵션을 켤 방법이 없습니다 — 현재 P1 시리즈 펌웨어는 Bambu Studio에 토글을 표시하지 않으며 프린터에 화면도 없습니다. 여기서 고칠 것은 없습니다. Bambu Lab이 펌웨어로 지원할 때까지 보관된 출력물에는 썸네일과 슬라이서 메타데이터가 없을 수 있습니다.`},port_rtsps:{title:`카메라 포트 ({{protocol}} {{port}})`,pass:`연결 가능 — 카메라 스트림이 작동합니다.`,warn:`포트 {{port}}에 연결할 수 없습니다. 라이브 카메라 보기가 작동하지 않습니다. 인쇄에는 영향을 주지 않습니다.`},network_mode:{title:`Docker 네트워크 모드`,pass:`호스트 네트워크 모드로 실행 중입니다.`,warn:`Bambuddy가 Docker 브리지 네트워킹으로 실행 중입니다. 프린터 검색과 가상 프린터에는 호스트 네트워크 모드가 필요합니다 — "network_mode: host"로 컨테이너를 재생성하세요.`,skip:`Docker에서 실행 중이 아닙니다 — 해당 없음.`},subnet:{title:`네트워크 서브넷`,pass:`프린터와 Bambuddy가 같은 서브넷에 있습니다.`,warn:`프린터({{printer_ip}})와 Bambuddy({{host_ip}})가 다른 서브넷에 있습니다. 서브넷 간 라우팅이 구성되어 있지 않으면 서로 연결하지 못할 수 있습니다.`,skip:`서브넷을 확인할 수 없어 건너뜁니다.`},mqtt_auth:{title:`프린터 자격증명`,pass:`프린터가 연결을 수락했습니다.`,fail:`프린터에 도달할 수 있지만 Bambuddy가 연결되지 않았습니다. 액세스 코드 또는 시리얼 번호가 잘못됐을 가능성이 높습니다 — LAN 전용 모드나 개발자 모드를 토글할 때마다 액세스 코드가 변경되므로 프린터 화면에서 다시 복사하세요. 재부팅 중이거나 이미 동시 연결 한도에 도달한 프린터도 똑같이 보입니다.`,fail_auth_rejected:`프린터가 Bambuddy의 자격증명을 거부했습니다. 액세스 코드 또는 시리얼 번호가 잘못됐습니다 — LAN 전용 모드나 개발자 모드를 토글할 때마다 액세스 코드가 변경됩니다. 프린터 화면에서 다시 복사한 뒤 프린터 설정에 저장하세요.`,skip:`확인하지 않음 — 프린터에 연결할 수 없었습니다.`},developer_mode:{title:`LAN 개발자 모드`,pass:`개발자 모드가 활성화되어 있습니다.`,fail:`프린터에서 개발자 모드가 꺼져 있습니다. 프린터의 LAN 설정에서 활성화하고 확인을 누르세요. 이 없으면 인쇄가 시작되지 않습니다.`,skip:`확인할 수 없음 — 프린터에 연결되어 있어야 합니다.`},printer_publishing:{title:`프린터가 상태를 게시 중`,pass:`프린터가 상태 업데이트를 게시하고 있습니다 — AMS, 필라멘트, K-프로파일이 슬라이서에 올바르게 반영됩니다.`,fail:`MQTT 브로커는 연결을 수락했지만 프린터가 상태 보고를 게시하지 않았습니다. 거의 항상 시리얼 번호가 잘못되었거나 대소문자가 일치하지 않아서 발생합니다 — device//api/v1/metrics para monitoramento Prometheus/Grafana.`,bearerTokenOptional:`Token Bearer (opcional)`,bearerTokenHint:`Se definido, as requisições devem incluir Authorization: Bearer `,metricsConnectionStatus:`Status da conexão`,metricsPrinterState:`Estado da impressora (idle/printing/etc)`,metricsPrintProgress:`Progresso da impressão 0-100%`,metricsBedTemp:`Temperatura da mesa`,metricsNozzleTemp:`Temperatura do bico`,metricsPrintsTotal:`Total de impressões por resultado`,metricsMore:`...e mais (camadas, ventoinhas, fila, uso de filamento)`,smartPlugsDescription:`Conecte plugues inteligentes (Tasmota ou Home Assistant) para automatizar o controle de energia e rastrear o consumo energético das suas impressoras.`,allOn:`Ligar todos`,allOff:`Desligar todos`,addSmartPlug:`Adicionar plugue inteligente`,energySummary:`Resumo de energia`,currentPower:`Potência atual`,plugsOnline:`{{reachable}}/{{total}} plugues online`,today:`Hoje`,yesterday:`Ontem`,total:`Total`,enablePlugsForSummary:`Habilite os plugues para ver o resumo de energia`,addNotificationProvider:`Adicionar`,systemBadge:`(Sistema)`,creating:`Criando...`,changing:`Alterando...`,deleteUserAndItems:`Excluir usuário E seus itens`,deleteUserKeepItems:`Excluir usuário, manter itens (ficarão sem dono)`,ok:`OK`,twoFa:{totpTitle:`App Autenticador (TOTP)`,totpDesc:`Use um app como Google Authenticator, Aegis ou Authy.`,emailOtpTitle:`OTP por e-mail`,emailOtpDesc:`Envie um código único para {{email}} ao fazer login.`,emailOtpNoEmail:`Adicione um endereço de e-mail à sua conta para ativar este método.`,addEmailFirst:`Sua conta não tem endereço de e-mail. Peça a um administrador para adicionar um.`,setupTotp:`Configurar App Autenticador`,setupAuthApp:`Configurar App Autenticador`,setupInstructions:`Escaneie o código QR com seu app autenticador e confirme com um código.`,manualEntry:`Não consegue escanear? Digite este segredo manualmente:`,scannedContinue:`Código escaneado — continuar`,enterCodeToConfirm:`Digite o código de 6 dígitos do seu app autenticador para confirmar.`,activate:`Ativar`,disableTotp:`Desativar Autenticador`,disableConfirmHint:`Digite um código TOTP válido ou um código de backup para desativar o autenticador.`,totpDisabled:`App autenticador desativado.`,emailOtpEnabled:`OTP por e-mail ativado.`,emailOtpDisabled:`OTP por e-mail desativado.`,smtpRequired:`Por favor, configure e teste as configurações SMTP primeiro.`,invalidCode:`Código inválido. Por favor, tente novamente.`,enableEmailOtp:`Ativar OTP por e-mail`,disableEmailOtp:`Desativar OTP por e-mail`,emailSetupEnterCode:`Um código de verificação foi enviado para o seu endereço de e-mail. Digite-o abaixo para confirmar que você possui esta caixa de entrada.`,verifyAndEnable:`Verificar e Ativar`,emailDisablePasswordHint:`Digite a senha da sua conta para confirmar a desativação do OTP por e-mail.`,passwordPlaceholder:`Digite sua senha`,backupCodesTitle:`Salve seus códigos de backup`,backupCodesWarning:`Guarde estes códigos em lugar seguro. Cada código só pode ser usado uma vez.`,backupCodesRemaining:`{{count}} códigos de backup restantes`,savedCodes:`Códigos salvos`,regenBackup:`Regenerar códigos de backup`,regenBackupHint:`Digite seu código TOTP atual para gerar 10 novos códigos de backup.`,newBackupCodes:`Novos códigos de backup`,linkedAccounts:`Contas SSO vinculadas`,linkedAccountsDesc:`Estes provedores de identidade externos estão vinculados à sua conta.`,oidcUnlinked:`Conta desvinculada.`},sessionPolicy:{title:`Política de sessão`,description:`Duração máxima da sessão para novos logins de usuário. Tokens já emitidos mantêm sua expiração original.`,preset24h:`24 horas`,preset7d:`7 dias`,preset30d:`30 dias`,customHoursLabel:`Duração personalizada da sessão em horas`,hoursSuffix:`horas`,warning:`Sessões mais longas reduzem a proteção de logout automático. Recomendado apenas para implantações de usuário único confiáveis.`},oidc:{title:`Provedores SSO / OIDC`,desc:`Configure provedores OpenID Connect para login único.`,addProvider:`Adicionar provedor`,newProvider:`Novo provedor`,empty:`Nenhum provedor OIDC configurado ainda.`,created:`Provedor criado.`,updated:`Provedor atualizado.`,deleted:`Provedor excluído.`,refreshIcon:`Atualizar ícone`,removeIcon:`Remover ícone`,iconRefreshed:`Ícone atualizado.`,iconRemoved:`Ícone removido.`,iconFetchFailed:`Não foi possível obter o ícone da URL do provedor.`,deleteTitle:`Excluir provedor`,deleteMessage:`Excluir "{{name}}"? Todas as contas vinculadas serão desconectadas.`,form:{name:`Nome de exibição`,issuerUrl:`URL do emissor`,clientId:`ID do cliente`,clientSecret:`Client secret`,scopes:`Escopos`,iconUrl:`URL do ícone (opcional)`,enabled:`Ativado`,autoCreate:`Criar usuários automaticamente`,autoCreateDesc:`Cria automaticamente uma conta local no primeiro login.`,autoLink:`Vincular contas existentes automaticamente`,autoLinkDesc:`Vincula contas locais existentes por e-mail no primeiro login.`,secretHint:`deixe em branco para manter`,secretPlaceholder:`novo segredo`,emailClaim:`Claim de e-mail`,emailClaimDesc:`Claim JWT usado como identidade de e-mail. Use 'preferred_username' ou 'upn' para Azure Entra ID (que não envia email_verified). Use apenas nomes de claim confiáveis.`,emailClaimPlaceholder:`e-mail`,emailClaimCustomClaimAutoLinkWarning:`Claims personalizadas são seguras para vinculação automática apenas quando o valor é administrado pelo tenant (ex. Azure Entra ID upn / preferred_username). Não ative a vinculação automática se seu IdP permite que usuários auto-declarem essa claim.`,requireEmailVerified:`Exigir e-mail verificado`,requireEmailVerifiedDesc:`Aceitar o claim de e-mail apenas quando o provedor o marcar como verificado.`,requireEmailVerifiedWarning:`Aviso: o e-mail será aceito sem verificação. Use apenas com provedores confiáveis.`,requireEmailVerifiedAutoLink:`Desabilite o vínculo automático primeiro para alterar esta configuração.`,defaultGroup:`Grupo padrão`,defaultGroupDesc:`Grupo atribuído aos usuários criados automaticamente. Retorna a Viewers se não definido.`,defaultGroupViewersFallback:`Viewers (padrão)`,autologin:`Login automático`,autologinDesc:`Redirecionar visitantes não autenticados diretamente para este provedor. Apenas um provedor pode ter esta marcação.`}},encryption:{title:`Status de criptografia MFA`,enabledFromEnv:`Criptografia em repouso ativa (chave da variável de ambiente MFA_ENCRYPTION_KEY)`,enabledFromFile:`Criptografia em repouso ativa (chave do diretório de dados)`,enabledGenerated:`Criptografia em repouso ativa com chave auto-gerada`,notConfigured:`Criptografia em repouso não configurada`,notConfiguredDesc:`Os segredos TOTP e client_secrets OIDC são armazenados em texto plano. Defina MFA_ENCRYPTION_KEY ou reinicie o Bambuddy com um diretório de dados gravável para gerar automaticamente.`,allEncrypted:`Todos os segredos MFA são criptografados em repouso.`,legacyRowsLabel:`Linhas legadas em texto plano`,encryptedRowsLabel:`Linhas criptografadas`,legacyRowsWarning:`{{count}} linha(s) legada(s) em texto plano detectada(s). Salve novamente o provedor OIDC ou registre novamente o autenticador do usuário para migrar ao armazenamento criptografado.`,backupHint:`A chave auto-gerada é armazenada em DATA_DIR/.mfa_encryption_key e incluída em ZIPs de backup locais. Mantenha seus backups seguros ou defina MFA_ENCRYPTION_KEY explicitamente.`,decryptionBrokenTitle:`Chave de criptografia ausente`,decryptionBrokenError:`{{count}} registro(s) criptografado(s) não podem ser descriptografados pois a chave de criptografia não está mais disponível. Restaure o MFA_ENCRYPTION_KEY anterior ou DATA_DIR/.mfa_encryption_key para recuperar.`,migrationErrorWarning:`{{count}} linha(s) antiga(s) não puderam ser recriptografadas na inicialização. Verifique os logs do servidor e reinicie o Bambuddy para tentar novamente.`},spoolbuddy:{infoTitle:`Dispositivos SpoolBuddy`,infoBody:`Os kiosks SpoolBuddy se registram automaticamente via heartbeat. Cancele o registro de um dispositivo aqui se não estiver mais em uso ou se um duplicado obsoleto foi deixado por uma falha do daemon.`,duplicatesTitle:`{{count}} dispositivos registrados`,duplicatesBody:`Apenas o primeiro dispositivo registrado é usado pela interface do kiosk. Se algum destes for um duplicado obsoleto após uma falha, cancele seu registro — um dispositivo online se registrará novamente no próximo heartbeat.`,empty:`Nenhum dispositivo SpoolBuddy registrado ainda.`,online:`Online`,offline:`Offline`,unregister:`Cancelar registro`,unregisterSuccess:`Dispositivo removido`,unregisterError:`Falha ao cancelar registro`,confirmTitle:`Cancelar registro do dispositivo SpoolBuddy?`,confirmBody:`Isso removerá "{{hostname}}" ({{deviceId}}) do banco de dados. Se o dispositivo estiver online, ele se registrará novamente no próximo heartbeat.`,ipAddress:`Endereço IP`,firmware:`Firmware`,lastSeen:`Visto pela última vez`,daemonUptime:`Tempo ativo do daemon`,systemUptime:`Tempo ativo do sistema`,never:`nunca`,nfc:`NFC`,scale:`Balança`,cpuTemp:`Temp. CPU`,cpuLoad:`Carga da CPU`,memory:`Memória`,disk:`Disco`,update:`Atualizar`,updateConfirmTitle:`Atualizar daemon do Spoolbuddy?`,updateConfirmBody:`Iniciar uma atualização de software em "{{hostname}}"? O daemon será reiniciado após a aplicação.`,restartBrowser:`Reiniciar navegador`,restartBrowserConfirmTitle:`Reiniciar o navegador do kiosk?`,restartBrowserConfirmBody:`Reiniciar o navegador do kiosk em "{{hostname}}"? A tela ficará em branco brevemente.`,restartDaemon:`Reiniciar daemon`,restartDaemonConfirmTitle:`Reiniciar daemon do Spoolbuddy?`,restartDaemonConfirmBody:`Reiniciar o daemon do Spoolbuddy em "{{hostname}}"? O dispositivo ficará offline por alguns segundos.`,reboot:`Reiniciar`,rebootConfirmTitle:`Reiniciar o dispositivo?`,rebootConfirmBody:`Reiniciar "{{hostname}}"? O dispositivo ficará offline por cerca de um minuto.`,shutdown:`Desligar`,shutdownConfirmTitle:`Desligar o dispositivo?`,shutdownConfirmBody:`Desligar "{{hostname}}"? Será necessário acesso físico para ligá-lo novamente.`,commandConfirm:`Confirmar`,commandQueued:`Comando enfileirado`,commandError:`Falha ao enviar comando`},pipelineLimits:{title:`Limites de pipelines do slicer`,maxCopiesLabel:`Cópias máximas por execução`,maxCopiesDesc:`Limite superior de cópias que operadores podem solicitar ao executar uma pipeline. O limite rígido no lado do servidor é 1000.`},pipelines:{title:`Pipelines do Slicer`,subtitle:`Pacotes de predefinições reutilizáveis (impressora + processo + filamentos + tipo de mesa). Salve um a partir do diálogo Cortar e aplique com um clique no próximo arquivo.`,loading:`Carregando pipelines…`,loadError:`Não foi possível carregar as pipelines.`,confirmDelete:`Excluir esta pipeline? Isso não pode ser desfeito.`,staleWarning:`Uma ou mais predefinições referenciadas não existem mais. Salve novamente esta pipeline a partir do diálogo Cortar para corrigir.`,empty:{title:`Ainda não há pipelines.`,howto:`Abra o diálogo Cortar em qualquer arquivo, escolha impressora / processo / filamentos / mesa e clique em "Salvar como pipeline". Suas pipelines salvas aparecerão aqui.`},field:{name:`Nome da pipeline`,description:`Descrição`,targetPrinter:`Impressora de destino`,noTarget:`— Sem destino —`,targetKind:`Tipo de destino`,targetKindSpecific:`Impressora específica`,targetKindClass:`Classe de impressora`,targetModelClass:`Modelo de impressora`,fanoutStrategy:`Estratégia de distribuição`,fanout:{max_parallel:`Máximo paralelo — distribuir em qualquer impressora ociosa compatível`,round_robin:`Round robin — alternar entre impressoras elegíveis`,fill_one_first:`Encher uma primeiro — fixar todas as cópias em uma impressora`},fanoutShort:{max_parallel:`paralelo`,round_robin:`round robin`,fill_one_first:`primeiro um`}},action:{save:`Salvar`,cancel:`Cancelar`,rename:`Renomear`,delete:`Excluir`},slot:{printer:`Impressora`,process:`Processo`,filament:`Filamento`,filamentN:`Filamento {{n}}`,filamentAll:`Todos os {{n}} slots`,bed:`Mesa`},group:{profiles:`Perfis`,filaments:`Filamentos`},searchPlaceholder:`Buscar pipelines…`,filterTargetType:`Filtrar por tipo de destino`,filterTarget:`Filtrar por destino`,filter:{all:`Todos os destinos`,noTarget:`Sem destino`,count:`{{shown}} / {{total}}`,noMatches:`Nenhuma pipeline corresponde aos filtros atuais.`},toast:{saved:`Pipeline salva`,saveFailed:`Falha ao salvar`,deleted:`Pipeline excluída`,deleteFailed:`Falha ao excluir`},noTargetHint:`Defina uma impressora de destino para executar`,noTargetWarning:`Defina uma impressora de destino antes de executar esta pipeline.`,runs:{lastRun:`Última execução`,status:{queued:`na fila`,slicing:`cortando`,dispatching:`enviando`,in_progress:`imprimindo`,completed:`concluída`,failed:`falhou`,partial_failure:`falha parcial`,cancelled:`cancelada`}}}},notification:{printStarted:{title:`Impressão Iniciada`,body:`{{printer}}: {{filename}} iniciou a impressão`},printCompleted:{title:`Impressão Concluída`,body:`{{printer}}: {{filename}} foi concluída com sucesso`},printFailed:{title:`Falha na Impressão`,body:`{{printer}}: {{filename}} falhou`},printStopped:{title:`Impressão Interrompida`,body:`{{printer}}: {{filename}} foi interrompida`},printProgress:{title:`Progresso da Impressão`,body:`{{printer}}: {{filename}} está {{percent}}% concluída`},printerOffline:{title:`Impressora Offline`,body:`{{printer}} está offline`},printerError:{title:`Erro na Impressora`,body:`{{printer}} – {{error}}`},filamentLow:{title:`Filamento Baixo`,body:`{{printer}}: O filamento está acabando`},maintenanceDue:{title:`Manutenção Pendente`,body:`{{printer}}: {{items}} precisam de atenção`}},errors:{generic:`Algo deu errado`,networkError:`Erro de rede. Por favor, verifique sua conexão.`,notFound:`Não encontrado`,unauthorized:`Não autorizado`,serverError:`Erro no servidor`,validationError:`Por favor, verifique sua entrada`,printerConnectionFailed:`Falha ao conectar à impressora`,saveFailed:`Falha ao salvar alterações`,deleteFailed:`Falha ao excluir`,loadFailed:`Falha ao carregar dados`},hmsErrors:{title:`Erros - {{name}}`,noErrors:`Nenhum erro`,viewOnWiki:`Ver no Bambu Lab Wiki`,mqttVerifyFailedRemedy:`Ative o Modo Desenvolvedor na impressora, reinicie a impressora e inicie o trabalho novamente.`,unknownCode:`Código HMS desconhecido — consulte o wiki da Bambu Lab para mais detalhes.`,clearInstructions:`Limpe os erros na impressora para descartá-los aqui.`,clearErrors:`Limpar Erros`,clearSuccess:`Erros HMS limpos`,clearFailed:`Falha ao limpar erros HMS`,actionSuccess:`Ação enviada à impressora`,actionFailed:`Falha ao enviar ação`,runoutExpectedSlot:`O filamento acabou em {{ranOut}}. A impressora agora aguarda filamento compatível em {{expected}}. Insira uma bobina em {{expected}} e selecione Tentar novamente.`,runoutExpectedSlotOnly:`A impressora está aguardando filamento compatível em {{expected}}. Insira uma bobina ali e selecione Tentar novamente.`,runoutSlotUnknown:`O filamento acabou e a impressão está pausada. O Bambuddy não conseguiu determinar qual slot a impressora agora espera — verifique a tela da impressora para o slot solicitado.`,actions:{RESUME_PRINTING:`Retomar impressão`,RESUME_PRINTING_DEFECTS:`Retomar (defeitos aceitáveis)`,RESUME_PRINTING_PROBELM_SOLVED:`Retomar (problema resolvido)`,STOP_PRINTING:`Parar impressão`,CHECK_ASSISTANT:`Ver assistente`,FILAMENT_EXTRUDED:`Filamento extrudado, continuar`,RETRY_FILAMENT_EXTRUDED:`Ainda não extrudado, tentar novamente`,CONTINUE:`Finalizado, continuar`,LOAD_VIRTUAL_TRAY:`Carregar filamento`,OK_BUTTON:`OK`,FILAMENT_LOAD_RESUME:`Filamento carregado, retomar`,JUMP_TO_LIVEVIEW:`Ver ao vivo`,NO_REMINDER_NEXT_TIME:`Não lembrar da próxima vez`,REFRESH_NOZZLE:`Verificar novamente`,IGNORE_NO_REMINDER_NEXT_TIME:`Ignorar e não lembrar`,IGNORE_RESUME:`Ignorar e retomar`,PROBLEM_SOLVED_RESUME:`Problema resolvido, retomar`,TURN_OFF_FIRE_ALARM:`Entendido, desligar alarme de incêndio`,RETRY_PROBLEM_SOLVED:`Tentar novamente (problema resolvido)`,CANCLE:`Cancelar`,STOP_DRYING:`Parar secagem`,PROCEED:`Prosseguir`,OK_JUMP_RACK:`OK`,ABORT:`Abortar`,DISABLE_PURIFICATION:`Desativar purificação para esta impressão`,DONT_REMIND_NEXT_TIME:`Não me lembrar`,DBL_CHECK_CANCEL:`Cancelar`,DBL_CHECK_DONE:`Concluído`,DBL_CHECK_RETRY:`Tentar novamente`,DBL_CHECK_RESUME:`Retomar`,DBL_CHECK_OK:`Confirmar`,REMOVE_CLOSE_BTN:`Fechar`}},mqttDebug:{title:`MQTT Log de Depuração`,searchPlaceholder:`Pesquisar tópico ou payload...`,noMessages:`Nenhuma mensagem registrada ainda`,startLoggingHint:`Clique em "Iniciar Registro" para começar a capturar mensagens MQTT`,noMessagesMatch:`Nenhuma mensagem corresponde ao seu filtro`,adjustFilterHint:`Tente ajustar seus critérios de pesquisa ou filtro`,incoming:`Entrada`,outgoing:`Saída`,loggingStopped:`Registro interrompido`,loggingActive:`Registro ativo - as mensagens serão atualizadas automaticamente`,startLogging:`Iniciar Registro`,stopLogging:`Parar Registro`,clearLog:`Limpar Registro`,topic:`ópico`,timestamp:`Carimbo de Data/Hora`,direction:`Direção`,all:`Todos`},printerFiles:{title:`Gerenciador de Arquivos`,storageUsed:`Usado:`,storageFree:`Livre:`,filterPlaceholder:`Filtrar arquivos...`,deleteButton:`Excluir`,deleteFiles:`Excluir {{count}} arquivos`,deleteFileConfirm:`Excluir "{{name}}"? Isso não pode ser desfeito.`,deleteFilesConfirm:`Excluir {{count}} arquivos selecionados? Isso não pode ser desfeito.`,noFiles:`Nenhum arquivo na impressora`,loadingFiles:`Carregando arquivos...`,failedToLoad:`Falha ao carregar arquivos`,toast:{filesDeleted:`Arquivos excluídos: {{count}}`,deleteFailed:`Falha ao excluir: {{error}}`}},confirm:{delete:`Tem certeza de que deseja excluir isso?`,unsavedChanges:`Você tem alterações não salvas. Tem certeza de que deseja sair?`,clearQueue:`Tem certeza de que deseja limpar a fila?`},login:{title:`Login Bambuddy`,subtitle:`Faça login na sua conta`,username:`Nome de usuário`,usernamePlaceholder:`Digite seu nome de usuário`,usernameOrEmail:`Nome de usuário ou Email`,usernameOrEmailPlaceholder:`Nome de usuário ou Email`,password:`Senha`,passwordPlaceholder:`Digite sua senha`,signIn:`Entrar`,signingIn:`Entrando...`,rememberMe:`Lembrar de mim`,forgotPassword:`Esqueceu sua senha?`,autologinFailed:`O login SSO automático falhou. Escolha um provedor abaixo para continuar.`,localDisabledNotice:`O login local está desativado. Use um dos provedores SSO abaixo.`,loginSuccess:`Login realizado com sucesso`,loginFailed:`Falha no login`,enterCredentials:`Por favor, insira nome de usuário e senha`,enterEmail:`Por favor, insira seu endereço de e-mail`,oidcLoginFailed:`Falha no login OIDC`,oidcErrors:{providerError:`O provedor de identidade retornou um erro`,missingParameters:`Parâmetros obrigatórios ausentes no callback OIDC`,invalidState:`Estado OIDC inválido ou já utilizado`,stateExpired:`Sessão OIDC expirada — tente novamente`,providerNotFound:`Provedor OIDC não encontrado`,discoveryFailed:`Falha ao obter o documento de descoberta OIDC`,invalidDiscovery:`Documento de descoberta OIDC inválido`,networkError:`Erro de rede durante a troca de token OIDC`,badResponse:`Resposta inesperada durante a troca de token OIDC`,noIdToken:`O provedor OIDC não retornou um token de ID`,validationFailed:`Falha na validação do token OIDC`,nonceMismatch:`Nonce OIDC não corresponde — possível ataque de replay`,missingSubClaim:`Token OIDC sem claim sub`,noLinkedAccount:`Nenhuma conta local vinculada a esta identidade OIDC`,accountInactive:`Sua conta está inativa`,userResolutionFailed:`Falha ao resolver sua conta`,internalError:`Erro interno durante o login OIDC`,tokenExchangeFailed:`Falha na troca de token OIDC`},forgotPasswordTitle:`Esqueceu a Senha`,forgotPasswordMessage:`Se você esqueceu sua senha, entre em contato com o administrador do sistema para redefini-la.`,forgotPasswordEmailMessage:`Digite seu endereço de email e enviaremos uma nova senha.`,emailAddress:`Endereço de Email`,emailPlaceholder:`seu.email@exemplo.com`,cancel:`Cancelar`,sending:`Enviando...`,sendResetEmail:`Enviar Email de Redefinição`,howToReset:`Como redefinir sua senha:`,resetStep1:`Entre em contato com o administrador do Bambuddy`,resetStep2:`Peça para redefinir sua senha na Gestão de Usuários`,resetStep3:`Eles podem definir uma nova senha temporária para você`,resetStep4:`Faça login com a nova senha e altere-a nas Configurações`,gotIt:`Entendi`,resetPassword:{title:`Definir nova senha`,subtitle:`Digite e confirme sua nova senha abaixo.`,newPassword:`Nova senha`,newPasswordPlaceholder:`Pelo menos 8 caracteres`,confirmPassword:`Confirmar senha`,confirmPasswordPlaceholder:`Repetir nova senha`,saving:`Salvando…`,submit:`Definir nova senha`,backToLogin:`Voltar para o login`,passwordsDoNotMatch:`As senhas não coincidem`,passwordTooShort:`A senha deve ter pelo menos 8 caracteres`,resetFailed:`Falha ao redefinir senha. O link pode ter expirado.`},twoFA:{title:`Autenticação em dois fatores`,subtitle:`Sua conta está protegida com 2FA. Insira o código de verificação abaixo.`,methodAuthenticator:`Aplicativo autenticador`,methodEmail:`Código por e-mail`,methodBackup:`Código de recuperação`,instructionsTotp:`Abra seu aplicativo autenticador e insira o código de 6 dígitos gerado para o Bambuddy.`,instructionsEmail:`Um código de 6 dígitos foi enviado para o seu e-mail. Ele é válido por 10 minutos.`,instructionsEmailNotSent:`Clique no botão abaixo para receber um código de verificação por e-mail.`,instructionsBackup:`Insira um dos seus códigos de recuperação de 8 caracteres. Cada código só pode ser utilizado uma vez.`,sendCodeButton:`Enviar código por e-mail`,sendingCode:`Enviando...`,resendCode:`Reenviar código`,codeLabel:`Código de verificação`,backupCodeLabel:`Código de recuperação`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`Verificar`,verifyingButton:`Verificando...`,backToLogin:`← Voltar para o login`,orContinueWith:`ou entrar com`,signInWith:`Entrar com {{provider}}`,enterCode:`Por favor, insira o código de verificação`,sendCodeFailed:`Falha ao enviar o código de verificação`,invalidCode:`Código inválido. Por favor, tente novamente.`}},setup:{title:`Bambuddy Configuração`,subtitle:`Configure a autenticação para sua instância do Bambuddy`,enableAuth:`Ativar Autenticação`,adminAccount:`Conta de Administrador`,adminAccountDesc:`Se usuários administradores já existirem, a autenticação será ativada usando as contas de administrador existentes. Deixe os campos abaixo vazios para usar os administradores existentes ou insira novas credenciais para criar um novo usuário administrador.`,adminUsername:`Nome de usuário do administrador`,adminPassword:`Senha do administrador`,optionalIfAdminExists:`(opcional se usuários administradores existirem)`,adminUsernamePlaceholder:`Digite o nome de usuário do administrador (opcional)`,adminPasswordPlaceholder:`Digite a senha do administrador (opcional)`,confirmPassword:`Confirmar Senha`,confirmPasswordPlaceholder:`Confirme a senha do administrador`,settingUp:`Configurando...`,completeSetup:`Concluir Configuração`,toast:{authEnabledAdminCreated:`Autenticação ativada e usuário administrador criado`,authEnabledExistingAdmins:`Autenticação ativada usando usuários administradores existentes`,setupCompleted:`Configuração concluída`,enterBothCredentials:`Por favor, insira o nome de usuário e a senha do administrador, ou deixe ambos vazios para usar os usuários administradores existentes`,passwordsDoNotMatch:`As senhas não coincidem`,passwordTooShort:`A senha deve ter pelo menos 6 caracteres`}},changePassword:{title:`Alterar Senha`,currentPassword:`Senha Atual`,currentPasswordPlaceholder:`Digite a senha atual`,newPassword:`Nova Senha`,newPasswordPlaceholder:`Digite a nova senha (mínimo 6 caracteres)`,confirmPassword:`Confirmar Senha`,confirmPasswordPlaceholder:`Confirme a nova senha`,passwordsDoNotMatch:`As senhas não coincidem`,passwordTooShort:`A senha deve ter pelo menos 6 caracteres`,changing:`Alterando...`,success:`Senha alterada com sucesso`,failed:`Falha ao alterar a senha`},plateAlert:{title:`Impressão Pausada!`,message:`Objetos detectados na mesa de impressão. A impressão foi automaticamente pausada. Por favor, limpe a mesa e retome a impressão.`,understand:`Entendi`},camera:{title:`Visualização da Câmera`,invalidPrinterId:`ID da impressora inválido`,live:`Ao Vivo`,snapshot:`Captura`,restartStream:`Reiniciar transmissão`,refreshSnapshot:`Atualizar captura`,fullscreen:`Tela Cheia`,exitFullscreen:`Sair da Tela Cheia`,connectingToCamera:`Conectando à câmera...`,capturingSnapshot:`Capturando imagem...`,connectionLost:`Conexão perdida`,connectionFailed:`Falha na conexão com a câmera`,reconnecting:`Reconectando em {{countdown}}s... (tentativa {{attempt}}/{{max}})`,reconnectNow:`Reconectar agora`,cameraUnavailable:`Câmera indisponível`,cameraUnavailableDesc:`Certifique-se de que a impressora está ligada e conectada.`,noCamera:`Nenhuma câmera disponível`,retry:`Tentar novamente`,cameraStream:`Transmissão da câmera`,zoomOut:`Reduzir zoom`,zoomIn:`Aumentar zoom`,resetZoom:`Redefinir zoom`,recording:`Gravando`,startRecording:`Iniciar gravação`,stopRecording:`Parar gravação`,chamberLight:`Alternar luz da câmara`,unavailable:`Câmera indisponível`,diagnose:{button:`Diagnóstico`,modalTitle:`Diagnóstico da câmera`,running:`Executando diagnóstico...`,runFailed:`Não foi possível executar o diagnóstico: {{error}}`,retry:`Executar novamente`,stage:{tcp_reachable:`Conectividade de rede`,first_frame:`Captura de frame`,live_stream_active:`Transmissão ao vivo ativa`},summary:{all_ok:`A câmera está funcionando. O diagnóstico concluiu todas as etapas com sucesso.`,live_stream_active_healthy:`A câmera está transmitindo com frames recentes — nenhum teste necessário.`,printer_unreachable:`Impressora inacessível. Verifique o endereço IP, a conexão de rede e se a impressora está ligada.`,camera_port_closed:`A impressora responde mas a porta da câmera está fechada. Verifique se o modo LAN e o modo desenvolvedor estão ativados nas configurações da impressora.`,no_frame:`Conexão com a câmera estabelecida mas nenhum frame recebido. Tente novamente ou verifique se a câmera está habilitada nas configurações da impressora.`,unknown_failure:`Diagnóstico da câmera falhou por motivo desconhecido. Consulte o log de suporte para mais detalhes.`},meta:{protocol:`Protocolo`,port:`Porta`,profile:`Perfil`}}},groups:{title:`Gerenciamento de Grupos`,subtitle:`Gerenciar grupos de permissão para controle de acesso`,backToSettings:`Voltar para Configurações`,createGroup:`Criar Grupo`,noPermission:`Você não tem permissão para acessar esta página.`,system:`Sistema`,noDescription:`Sem descrição`,usersCount:`{{count}} usuários`,permissionsCount:`{{count}} permissões`,edit:`Editar`,delete:`Excluir`,toast:{created:`Grupo criado com sucesso`,updated:`Grupo atualizado com sucesso`,deleted:`Grupo excluído com sucesso`,enterGroupName:`Por favor, insira um nome para o grupo`},modal:{editGroup:`Editar Grupo`,createGroup:`Criar Grupo`,cancel:`Cancelar`,saving:`Salvando...`,creating:`Criando...`,saveChanges:`Salvar Alterações`},form:{groupName:`Nome do Grupo`,groupNamePlaceholder:`Insira o nome do grupo`,systemGroupWarning:`Os nomes dos grupos do sistema não podem ser alterados`,description:`Descrição`,descriptionPlaceholder:`Insira a descrição (opcional)`,permissions:`Permissões ({{count}} selecionadas)`},deleteModal:{title:`Excluir Grupo`,message:`Tem certeza de que deseja excluir este grupo? Os usuários deste grupo perderão essas permissões.`,confirm:`Excluir Grupo`},editor:{title:`Editar Grupo`,createTitle:`Criar Grupo`,search:`Pesquisar permissões...`,selectAll:`Selecionar Tudo`,clearAll:`Limpar Tudo`,permissionsSelected:`{{count}} selecionada(s)`,noResults:`Nenhuma permissão corresponde à sua pesquisa`,websocketHint:`Necessário para atualizações em tempo real. Sem esta permissão, a interface recorre à sondagem periódica.`}},users:{title:`Gerenciamento de Usuários`,subtitle:`Gerenciar usuários e seu acesso à sua instância do Bambuddy`,backToSettings:`Voltar para Configurações`,createUser:`Criar Usuário`,noPermission:`Você não tem permissão para acessar esta página.`,admin:`Administrador`,noGroups:`Sem grupos`,active:`Ativo`,inactive:`Inativo`,edit:`Editar`,delete:`Excluir`,system:`Sistema`,noGroupsAvailable:`Nenhum grupo disponível`,table:{username:`Nome de Usuário`,groups:`Grupos`,status:`Status`,actions:`Ações`},toast:{created:`Usuário criado com sucesso`,updated:`Usuário atualizado com sucesso`,deleted:`Usuário excluído com sucesso`,fillRequired:`Por favor, preencha todos os campos obrigatórios`,passwordsDoNotMatch:`As senhas não coincidem`,passwordTooShort:`A senha deve ter pelo menos 6 caracteres`,ldapProvisioned:`Usuário LDAP "{{username}}" provisionado`},modal:{createUser:`Criar Usuário`,editUser:`Editar Usuário`,cancel:`Cancelar`,creating:`Criando...`,saving:`Salvando...`,saveChanges:`Salvar Alterações`,advancedAuthSubtitle:`com Autenticação Avançada`,tabsAriaLabel:`Fonte do usuário`,localTab:`Local`,ldapTab:`LDAP`,ldapSearchLabel:`Pesquisar diretório`,ldapSearchPlaceholder:`Digite um nome de usuário, nome ou e-mail...`,ldapMinChars:`Digite ao menos 2 caracteres para pesquisar`,ldapTypeToSearch:`Comece a digitar para pesquisar o diretório LDAP`,ldapSearching:`Pesquisando diretório...`,ldapNoResults:`Nenhum usuário correspondente no diretório`,ldapSearchError:`Falha na pesquisa do diretório. Verifique o status do servidor LDAP.`,ldapAlreadyProvisioned:`Já provisionado`,ldapSelectedLabel:`Selecionado`,ldapProvision:`Provisionar usuário`,ldapProvisioning:`Provisionando...`,ldapErrorProvision:`Falha no provisionamento. Verifique o status do servidor LDAP e tente novamente.`},form:{username:`Nome de Usuário`,usernamePlaceholder:`Insira o nome de usuário`,email:`E-mail`,emailPlaceholder:`user@example.com`,password:`Senha`,passwordPlaceholder:`Insira a senha`,confirmPassword:`Confirmar Senha`,confirmPasswordPlaceholder:`Confirme a senha`,newPasswordPlaceholder:`Insira a nova senha`,confirmNewPasswordPlaceholder:`Confirme a nova senha`,leaveBlankToKeep:`deixe em branco para manter a atual`,groups:`Grupos`,optional:`opcional`,autoGeneratedPassword:`Uma senha segura será gerada automaticamente e enviada por e-mail ao usuário.`,passwordManagedByAdvancedAuth:`A senha é gerenciada pela Autenticação Avançada. Use "Redefinir Senha" para enviar uma nova senha ao usuário por e-mail.`,resetPassword:`Redefinir Senha`,resettingPassword:`Redefinindo Senha...`},deleteModal:{title:`Excluir Usuário`,message:`Tem certeza de que deseja excluir este usuário? Esta ação não pode ser desfeita.`,confirm:`Excluir Usuário`}},streamOverlay:{title:`Sobreposição de stream`,invalidPrinterId:`ID da impressora inválido`,cameraStream:`Transmissão da câmera`,progress:`Progresso da impressão`,eta:`ETA`,printerIdle:`Impressora ociosa`,printerOffline:`Impressora offline`,status:{printing:`Imprimindo`,paused:`Pausado`,finished:`Concluído`,failed:`Falhou`,idle:`Ocioso`,unknown:`Desconhecido`}},profiles:{title:`Perfis`,subtitle:`Gerencie seus presets de fatiador e calibrações de avanço de pressão`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`Perfis Locais`,kprofiles:`K-Perfis`},orcaCloud:{connectedAs:`Conectado como`,connectedShort:`Conectado ao Orca Cloud`,logout:`Desconectar`,noLogoutPermission:`Você não tem permissão para desconectar`,noConnectPermission:`Você não tem permissão para conectar ao Orca Cloud`,retry:`Tentar novamente`,connectButton:`Conectar Orca Cloud`,connect:{title:`Conectar ao Orca Cloud`,description:`Entre na sua conta Orca Cloud para sincronizar seus perfis de slicer no Bambuddy.`},device:{title:`Aprovar o Bambuddy no Orca Cloud`,instruction:`Abra o Orca Cloud e aprove este código. O Bambuddy se conecta automaticamente assim que você aprovar.`,codeLabel:`Seu código de pareamento`,openButton:`Abrir a página de aprovação do Orca Cloud`,manualHint:`Ou acesse {{url}} e insira o código acima.`,waiting:`Aguardando sua aprovação…`,cancel:`Cancelar`},profiles:{title:`Seus perfis do Orca Cloud ({{count}})`,refresh:`Atualizar`,empty:`Nenhum perfil encontrado na sua conta Orca Cloud ainda.`},toast:{disconnected:`Desconectado do Orca Cloud`},errors:{startFailed:`Não foi possível iniciar o login do Orca Cloud.`,denied:`O pareamento foi negado no Orca Cloud.`,expired:`O código de pareamento expirou. Clique em Conectar para tentar novamente.`,pollFailed:`A conexão foi perdida enquanto aguardava a aprovação. Tente novamente.`}},localProfiles:{title:`Perfis Locais`,subtitle:`Importe e gerencie presets de fatiador do OrcaSlicer`,import:`Importar Perfis`,importDesc:`Solte arquivos .bbscfg, .bbsflmt, .orca_filament, .zip ou .json aqui`,importing:`Importando...`,search:`Pesquisar presets locais...`,noPresets:`Nenhum preset local ainda`,noSearchResults:`Nenhum preset corresponde à sua busca`,badge:`Local`,edit:`Editar`,delete:`Excluir`,cancel:`Cancelar`,deleteConfirmTitle:`Excluir Preset`,deleteConfirm:`Tem certeza de que deseja excluir este preset? Esta ação não pode ser desfeita.`,source:`Fonte`,inheritsFrom:`Herdado de`,filamentType:`Tipo`,vendor:`Fornecedor`,compatiblePrinters:`Impressoras Compatíveis`,nozzleTemp:`Temperatura do Bico`,cost:`Custo`,density:`Densidade`,pressureAdvance:`Avanço de Pressão`,filament:`Filamento`,process:`Processo`,printer:`Impressora`,toast:{importSuccess:`{{count}} preset(s) importada(s)`,importSkipped:`{{count}} preset(s) ignorada(s) (duplicadas)`,importError:`{{count}} erro(s) durante a importação`,deleted:`Preset excluído`,updated:`Preset atualizado`}},connectedAs:`Conectado como`,signInExpiredTitle:`Sessão do Bambu Cloud expirada`,signInExpiredBody:`A Bambu Lab não aceita mais o token armazenado. Entre novamente para restaurar os perfis na nuvem, as importações do MakerWorld e a verificação de firmware.`,logout:`Sair`,noLogoutPermission:`Você não tem permissão para sair`,failedToLoad:`Falha ao carregar perfis`,retry:`Tentar novamente`,time:{justNow:`Agora mesmo`,minsAgo:`há {{count}} minutos`,hoursAgo:`há {{count}} horas`,daysAgo:`há {{count}} dias`},toast:{loggedOut:`Desconectado`},login:{title:`Conectar ao Bambu Cloud`,subtitle:`Sincronize seus presets de fatiador entre dispositivos`,email:`E-mail`,password:`Senha`,region:`Região`,regionGlobal:`Global`,regionChina:`China`,verificationCode:`Código de Verificação`,totpCode:`Código do Autenticador`,checkEmail:`Verifique seu email ({{email}}) para um código de 6 dígitos`,enterTotpHint:`Digite o código de 6 dígitos do seu aplicativo autenticador`,accessToken:`Token de Acesso`,accessTokenHint:`Cole seu token de acesso da Bambu Cloud. Contas da região China precisam usar este caminho (vinculadas ao celular — login por e-mail indisponível). Veja no wiki como obter o token dos cookies do MakerWorld.`,back:`Voltar`,loginButton:`Entrar`,verifyButton:`Verificar`,setTokenButton:`Definir Token`,useToken:`Usar token de acesso em vez disso`,useEmail:`Entrar com email em vez disso`,toast:{loggedIn:`Conectado com sucesso`,codeSent:`Código de verificação enviado para seu email`,enterTotp:`Digite o código do seu aplicativo autenticador`,tokenSet:`Token definido com sucesso`}},presets:{myPreset:`Meu preset (editável)`,duplicate:`Duplicar`,editable:`Editável`,failedToLoadDetails:`Falha ao carregar detalhes do preset`,deleteConfirm:`Excluir este preset?`,deleteWarning:`Isso excluirá permanentemente "{{name}}" do Bambu Cloud. Esta ação não pode ser desfeita.`,noDuplicatePermission:`Você não tem permissão para duplicar presets`,noEditPermission:`Você não tem permissão para editar presets`,noDeletePermission:`Você não tem permissão para excluir presets`,types:{filament:`Preset de filamento`,printer:`Preset de impressora`,process:`Preset de processo`},toast:{deleted:`Preset excluído`,created:`Preset criado`,updated:`Preset atualizado`,duplicated:`Preset duplicado`,fieldAdded:`Campo "{{key}}" adicionado`,exported:`Preset exportado`},baseLabel:`Base: {{name}}`,currentLabel:`Atual: {{name}}`,newPreset:`Novo Preset`,editPreset:`Editar Preset`,duplicatePreset:`Duplicar Preset`,createNewPreset:`Criar Novo Preset`,customizeSettings:`Personalizar configurações para seu novo preset`,compareWithBase:`Comparar com o preset base`,compare:`Comparar`,basePreset:`Preset Base`,selectBasePreset:`Selecionar preset base...`,presetName:`Nome do Preset`,myCustomPreset:`Meu preset personalizado`,inheritsFrom:`Herdado de`,dropJsonToImport:`Solte o arquivo JSON para importar`,tabs:{common:`Comum`,allFields:`Todos os Campos`},availableFields:`Campos Disponíveis`,searchFieldsPlaceholder:`Pesquisar campos...`,noMatchingFields:`Nenhum campo correspondente`,allFieldsAdded:`Todos os campos adicionados`,addCustomField:`Adicionar campo personalizado`,yourOverrides:`Suas Substituições`,noOverridesYet:`Nenhuma substituição ainda`,clickFieldsToAdd:`Clique nos campos à esquerda para adicioná-los`,saveAsTemplate:`Salvar como modelo`,jsonTip:`Dica: Arraste e solte um arquivo .json em qualquer lugar deste modal para importar configurações`},cloudView:{searchPlaceholder:`Pesquisar presets...`,templates:`Modelos`,refresh:`Atualizar`,newPreset:`Novo Preset`,clearFilters:`Limpar filtros`,compareMode:`Modo de Comparação`,selectAnotherPreset:`Selecionar outro preset {{type}}`,clickTwoPresets:`Clique em dois presets do mesmo tipo para comparar`,selectFirst:`1. Selecionar primeiro`,selectSecond:`2. Selecionar segundo`,compareNow:`Comparar Agora`,lastSynced:`Última sincronização:`,showingCount:`Mostrando {{showing}} de {{total}} presets`,noPresetsFound:`Nenhum preset encontrado`,columns:{filament:`Filamento`,process:`Processo`,printer:`Impressora`},noFilamentPresets:`Nenhum preset de filamento`,noProcessPresets:`Nenhum preset de processo`,noPrinterPresets:`Nenhum preset de impressora`,filters:{type:`Tipo`,owner:`Proprietário`,printer:`Impressora`,nozzle:`Bico`,filament:`Filamento`,layer:`Camada`,all:`Todos`,myPresets:`Meus Presets`,builtIn:`Integrado`,process:`Processo`},noTemplatesPermission:`Você não tem permissão para gerenciar modelos`,noRefreshPermission:`Você não tem permissão para atualizar perfis`,noCreatePermission:`Você não tem permissão para criar presets`},templates:{title:`Modelos Rápidos`,noTemplates:`Nenhum modelo ainda`,createFirst:`Crie modelos a partir do editor de presets`,typeFilter:`Tipo:`,deleteTitle:`Excluir Modelo`,deleteWarning:`Esta ação não pode ser desfeita`,deleteConfirm:`Tem certeza de que deseja excluir "{{name}}"?`,namePlaceholder:`Nome do modelo`,descriptionPlaceholder:`Descrição`,settingsJson:`Configurações (JSON)`,fieldsCount:`{{count}} campos`,shownInModals:`Exibido em modais`,hiddenInModals:`Oculto em modais`,apply:`Aplicar`,toast:{deleted:`Modelo excluído`,updated:`Modelo atualizado`,created:`Modelo criado`,applied:`Modelo aplicado`}}},support:{debugLoggingActive:`Registro de depuração ativo`,manageLogs:`Gerenciar`,collectItem7:`Conectividade da impressora e versões de firmware`,collectItem8:`Status de integração (Spoolman, MQTT, HA)`,collectItem9:`Interfaces de rede (somente sub-redes)`,collectItem10:`Versões de pacotes Python`,collectItem11:`Verificações de integridade do banco de dados`,collectItem12:`Detalhes do ambiente Docker`,bundleGenerating:`Gerando pacote...`,bundleStepConnection:`Executando verificações de conectividade das impressoras`,bundleStepVirtualPrinters:`Executando verificações de configuração das impressoras virtuais`,bundleStepLogScan:`Analisando registros recentes em busca de problemas conhecidos`,bundleStepBuild:`Criando o ZIP do pacote de suporte`},fileManager:{title:`Gerenciador de Arquivos`,subtitle:`Organize e gerencie seus arquivos de impressão`,uploadFiles:`Enviar Arquivos`,newFolder:`Nova Pasta`,folderName:`Nome da Pasta`,folderNamePlaceholder:`ex.: Peças Funcionais`,renameFile:`Renomear Arquivo`,renameFolder:`Renomear Pasta`,invalidFilenameChar:`O caractere "{{char}}" não é permitido em nomes de arquivos de impressão. O cartão SD da impressora rejeita: < > : " / \\ | ? *`,moveFiles:`Mover {{count}} Arquivo(s)`,rootNoFolder:`Raiz (Sem Pasta)`,current:`Atual`,linkFolder:`Vincular Pasta`,linkFolderDescription:`Vincular "{{name}}" a um projeto ou arquivo para acesso rápido.`,project:`Projeto`,archive:`Arquivo`,noProjectsFound:`Nenhum projeto encontrado`,noArchivesFound:`Nenhum arquivo encontrado`,unlink:`Desvincular`,link:`Vincular`,dragDropFiles:`Arraste e solte os arquivos aqui`,dropFilesHere:`Solte os arquivos aqui`,releaseToUpload:`Solte para enviar`,orClickToBrowse:`ou clique para procurar`,allFileTypesSupported:`Todos os tipos de arquivos são suportados. Arquivos ZIP serão extraídos.`,zipFilesDetected:`Arquivos ZIP detectados`,zipExtractOptions:`Arquivos ZIP serão extraídos. Escolha como lidar com a estrutura de pastas:`,preserveZipStructure:`Preservar estrutura de pastas do ZIP`,createFolderFromZip:`Criar pasta a partir do nome do arquivo ZIP`,stlThumbnailGeneration:`Geração de miniaturas STL`,zipMayContainStl:`Arquivos ZIP podem conter arquivos STL. Miniaturas podem ser geradas durante a extração.`,thumbnailsCanBeGenerated:`Miniaturas podem ser geradas para arquivos STL. Modelos grandes podem levar mais tempo para processar.`,generateThumbnailsForStl:`Gerar miniaturas para arquivos STL`,threemfDetected:`Arquivos 3MF detectados`,threemfExtractionInfo:`Modelo da impressora, material, cor e configurações de impressão serão extraídos automaticamente dos arquivos 3MF.`,willBeExtracted:`Será extraído`,filesExtracted:`{{count}} arquivos extraídos`,uploadComplete:`Upload concluído: {{succeeded}} bem-sucedidos`,uploadFailed:`Falha no envio`,zipFilesFailed:`{{count}} arquivos falharam`,uploading:`Enviando...`,changeLink:`Alterar link...`,linkTo:`Vincular a...`,linkToProjectOrArchive:`Vincular a projeto ou arquivo`,generateThumbnail:`Gerar miniatura`,generateThumbnails:`Gerar miniaturas`,generateThumbnailsForMissing:`Gerar miniaturas para arquivos STL que não possuem`,gridView:`Visualização em grade`,listView:`Visualização em lista`,lowDiskSpaceWarning:`Aviso de pouco espaço em disco`,lowDiskSpaceDetails:`Apenas {{free}} livres de {{total}} no total. O limite está definido para {{threshold}} GB nas configurações.`,files:`Arquivos`,folders:`Pastas`,size:`Tamanho`,free:`Livre`,allFiles:`Todos os arquivos`,allExternal:`Externos`,externalIsEmpty:`Nenhum arquivo externo`,externalEmptyDescription:`Os arquivos das suas pastas externas vinculadas aparecerão aqui.`,wrap:`Quebrar texto`,enableTextWrapping:`Ativar quebra de texto`,disableTextWrapping:`Desativar quebra de texto`,collapse:`Recolher`,collapseFoldersByDefault:`Recolher pastas por padrão`,expandFoldersByDefault:`Expandir pastas por padrão`,folderSort:`Ordenar pastas`,folderSortByName:`Por nome`,folderSortByActivity:`Por atividade recente`,dragToResizeTooltip:`Arraste para redimensionar, clique duas vezes para redefinir`,searchFiles:`Pesquisar arquivos...`,searchSubfoldersHint:`Incluindo subpastas`,readme:{truncated:`Truncado`,show:`Mostrar README`,hide:`Ocultar README`,label:`README`},tags:{title:`Tags`,subtitle:`Rotule arquivos para filtros transversais — brinquedos, seguro para crianças, somente PETG, o que precisar.`,manage:`Tags`,manageTitle:`Gerenciar catálogo de tags`,add:`Nova tag`,edit:`Renomear tag`,name:`Nome`,fileCount:`Arquivos`,empty:`Ainda não há tags. Crie uma para começar a rotular arquivos.`,noMatches:`Nenhuma tag correspondente.`,createPlaceholder:`ex.: brinquedos, infantil, petg`,createButton:`Criar`,nameRequired:`O nome é obrigatório.`,searchPlaceholder:`Filtrar tags...`,created:`Tag criada.`,updated:`Tag renomeada.`,deleted:`Tag removida.`,saveFailed:`Não foi possível salvar a tag.`,deleteFailed:`Não foi possível remover a tag.`,applyFailed:`Não foi possível aplicar as tags.`,applyAdd:`Adicionar tags`,applyRemove:`Remover tags`,applyAddSuccess:`{{count}} tag(s) adicionada(s) em {{files}} arquivo(s).`,applyRemoveSuccess:`{{count}} tag(s) removida(s) em {{files}} arquivo(s).`,actionAdd:`Adicionar aos arquivos selecionados`,actionRemove:`Remover dos arquivos selecionados`,tagAction:`Marcar`,bulkTitle:`Marcar {{count}} arquivo(s) selecionado(s)`,bulkTooltip:`Adicionar ou remover tags em cada arquivo selecionado.`,noPermission:`Você não tem permissão para marcar arquivos.`,filterLabel:`Filtrando por:`,clearAll:`Limpar tudo`,confirmDelete:`Excluir a tag "{{name}}"?`,confirmDeleteMessage:`Isto remove a tag do catálogo. Os arquivos mantêm as outras tags.`,confirmDeleteInUseMessage:`Esta tag está em {{count}} arquivo(s). Excluí-la remove o chip de todos; os arquivos em si ficam intactos.`,editAria:`Editar {{name}}`,deleteAria:`Excluir {{name}}`},allTypes:`Todos os tipos`,prints:`Impressões`,ascending:`Crescente`,descending:`Decrescente`,showModified:`Mostrar datas de modificação`,hideModified:`Ocultar datas de modificação`,lastModified:`Última modificação`,lastActivity:`Última atividade`,resultsCount:`{{showing}} de {{total}} arquivos`,selectAll:`Selecionar tudo`,deselectAll:`Desmarcar tudo`,selected:`{{count}} selecionado(s)`,adding:`Adicionando...`,loadingFiles:`Carregando arquivos...`,folderIsEmpty:`A pasta está vazia`,noFilesYet:`Nenhum arquivo ainda`,folderEmptyDescription:`Envie arquivos ou mova arquivos para esta pasta para começar.`,noFilesDescription:`Envie arquivos para começar a organizar seus arquivos relacionados à impressão.`,noMatchingFiles:`Nenhum arquivo correspondente`,noMatchingFilesDescription:`Nenhum arquivo corresponde aos seus critérios de pesquisa ou filtro.`,clearFilters:`Limpar filtros`,printedCount:`Impresso {{count}}x`,uploadedBy:`Enviado por`,deleteFolder:`Excluir pasta`,deleteFile:`Excluir arquivo`,deleteFilesCount:`Excluir {{count}} arquivos`,deleteFolderConfirm:`Tem certeza de que deseja excluir esta pasta? Todos os arquivos dentro também serão excluídos.`,deleteFileConfirm:`Tem certeza de que deseja excluir este arquivo?`,deleteFilesConfirm:`Tem certeza de que deseja excluir {{count}} arquivos selecionados? Esta ação não pode ser desfeita.`,deleting:`Excluindo...`,noPermissionRenameFolder:`Você não tem permissão para renomear pastas`,noPermissionLinkFolder:`Você não tem permissão para vincular pastas`,noPermissionDeleteFolder:`Você não tem permissão para excluir pastas`,onlyEmptyFoldersDeletable:`Você só pode excluir pastas vazias`,noPermissionPrint:`Você não tem permissão para imprimir`,noPermissionSlice:`Você não tem permissão para fatiar arquivos`,noPermissionAddToQueue:`Você não tem permissão para adicionar à fila`,noPermissionDownload:`Você não tem permissão para baixar arquivos`,noPermissionRenameFile:`Você não tem permissão para renomear este arquivo`,noPermissionGenerateThumbnail:`Você não tem permissão para gerar miniaturas`,noPermissionDeleteFile:`Você não tem permissão para excluir este arquivo`,noPermissionCreateFolder:`Você não tem permissão para criar pastas`,noPermissionUpload:`Você não tem permissão para enviar arquivos`,noPermissionMoveFiles:`Você não tem permissão para mover arquivos`,noPermissionDeleteFiles:`Você não tem permissão para excluir arquivos`,linkExternal:`Vincular externo`,linkExternalFolder:`Vincular pasta externa`,linkExternalFolderDescription:`Montar um diretório do host (NAS, USB, compartilhamento de rede) no Gerenciador de Arquivos. Os arquivos não são copiados — são acessados diretamente do caminho original.`,externalFolderNamePlaceholder:`ex. Impressões NAS`,externalPath:`Caminho do host`,externalPathHelp:`Caminho absoluto do diretório no host Docker. Deve estar montado como bind no contêiner.`,readOnly:`Somente leitura`,readOnlyHelp:`impede uploads e exclusões`,showHiddenFiles:`Mostrar arquivos ocultos (arquivos ponto)`,externalFolder:`Pasta externa`,scanFolder:`Escanear`,toast:{folderCreated:`Pasta criada`,folderDeleted:`Pasta excluída`,fileDeleted:`Arquivo excluído`,filesDeleted:`Excluídos {{count}} arquivos`,filesMoved:`Arquivos movidos`,folderLinked:`Pasta vinculada`,folderUnlinked:`Pasta desvinculada`,externalFolderLinked:`Pasta externa vinculada e escaneada`,folderScanned:`Escaneamento concluído: {{added}} adicionados, {{removed}} removidos`,addedToQueue:`Adicionado {{count}} arquivo(s) à fila`,addedToQueuePartial:`Adicionado {{added}} arquivo(s), {{failed}} falharam`,failedToAddToQueue:`Falha ao adicionar arquivos: {{error}}`,fileRenamed:`Arquivo renomeado`,folderRenamed:`Pasta renomeada`,thumbnailsGenerated:`Geradas {{count}} miniatura(s)`,thumbnailsGeneratedPartial:`Geradas {{succeeded}} miniatura(s), {{failed}} falharam`,noStlMissingThumbnails:`Nenhum arquivo STL sem miniatura`,failedToGenerateThumbnails:`Falha ao gerar miniaturas: {{error}}`,thumbnailGenerated:`Miniatura gerada`,failedToGenerateThumbnail:`Falha ao gerar miniatura: {{error}}`}},projects:{title:`Projetos`,subtitle:`Organize e acompanhe seus projetos de impressão 3D`,newProject:`Novo Projeto`,editProject:`Editar Projeto`,deleteProject:`Excluir Projeto`,projectName:`Nome do Projeto`,description:`Descrição`,noProjects:`Nenhum projeto ainda`,noProjectsFiltered:`Nenhum projeto {{status}}`,noProjectsFilteredHelp:`Você não tem nenhum projeto {{status}}. Os projetos aparecerão aqui quando seu status mudar.`,createFirst:`Crie seu primeiro projeto para começar a organizar impressões relacionadas, acompanhar o progresso e gerenciar suas construções.`,createFirstButton:`Crie Seu Primeiro Projeto`,create:`Criar`,files:`Arquivos`,prints:`Impressões`,plates:`Placas`,parts:`Peças`,lastModified:`Última Modificação`,deleteConfirm:`Tem certeza de que deseja excluir este projeto? Arquivos e itens da fila serão desvinculados, mas não excluídos.`,addFiles:`Adicionar Arquivos`,removeFile:`Remover Arquivo`,viewDetails:`Ver Detalhes`,namePlaceholder:`ex., Voron 2.4 Build`,descriptionPlaceholder:`Descrição opcional...`,urlLabel:`URL`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`A URL deve começar com http:// ou https://`,openExternalUrl:`Abrir URL do projeto`,coverImageLabel:`Imagem de capa`,coverImageAlt:`Imagem de capa do projeto`,coverImageUpload:`Enviar`,coverImageReplace:`Substituir`,coverImageRemove:`Remover`,color:`Cor`,targetPlates:`Placas Alvo`,targetPlatesPlaceholder:`ex., 25`,targetPlatesHelp:`Número de trabalhos de impressão`,targetParts:`Peças Alvo`,targetPartsPlaceholder:`ex., 150`,targetPartsHelp:`Total de objetos necessários`,targetSets:`Cópias por arquivo`,targetSetsPlaceholder:`ex.: 10`,targetSetsHelp:`Quantas vezes cada arquivo imprimível deve ser impresso`,tagsLabel:`Tags (separadas por vírgula)`,tagsPlaceholder:`ex., voron, funcional, presente`,dueDate:`Data de Vencimento`,priority:`Prioridade`,priorityLow:`Baixa`,priorityNormal:`Normal`,priorityHigh:`Alta`,priorityUrgent:`Urgente`,statusActive:`Ativo`,statusCompleted:`Concluído`,statusArchived:`Arquivado`,done:`Concluído`,completed:`Concluído`,failed:`Falhou`,inQueue:`Na fila`,noPrintsYet:`Nenhuma impressão ainda`,printJobs:`Trabalhos de impressão (placas)`,partsPrinted:`Peças impressas`,failedParts:`Peças falhadas`,import:`Importar`,export:`Exportar`,importProject:`Importar projeto`,exportAll:`Exportar todos os projetos`,loading:`Carregando projetos...`,noEditPermission:`Você não tem permissão para editar projetos`,noDeletePermission:`Você não tem permissão para excluir projetos`,noCreatePermission:`Você não tem permissão para criar projetos`,noImportPermission:`Você não tem permissão para importar projetos`,noExportPermission:`Você não tem permissão para exportar projetos`,toast:{created:`Projeto criado`,updated:`Projeto atualizado`,deleted:`Projeto excluído`,imported:`Projeto importado`,multipleImported:`{{count}} projetos importados`,importFailed:`Falha na importação`,exported:`Projetos exportados (apenas metadados)`}},projectDetail:{notFound:`Projeto não encontrado`,backToProjects:`Voltar para Projetos`,export:`Exportar`,exportProject:`Exportar projeto`,noExportPermission:`Você não tem permissão para exportar projetos`,noEditPermission:`Você não tem permissão para editar projetos`,partOf:`Parte de:`,priorityLabel:`Prioridade:`,noPrints:`Nenhuma impressão neste projeto ainda`,status:{active:`Ativo`,completed:`Concluído`,archived:`Arquivado`},priority:{low:`Baixa`,normal:`Normal`,high:`Alta`,urgent:`Urgente`},dueDate:{overdue:`Atrasado`,today:`Vence hoje`,daysLeft:`{{count}} dias restantes`},progress:{platesProgress:`Progresso das Placas`,partsProgress:`Progresso das Peças`,setsProgress:`Conjuntos completos`,sets:`conjuntos`,setsHint:`Um conjunto está completo quando cada arquivo imprimível atinge esse número`,printJobs:`Trabalhos de Impressão`,parts:`Peças`,percentComplete:`{{percent}}% concluído`,remaining:`{{count}} restantes`},stats:{printJobs:`Trabalhos de Impressão`,total:`total`,failed:`{{count}} falhou`,partsPrinted:`{{count}} peças impressas`,printTime:`Tempo de Impressão`,filamentUsed:`Filamento Usado`},cost:{title:`Rastreamento de Custos`,filamentCost:`Custo do Filamento`,energy:`Energia`,totalCost:`Custo Total`,total:`Total`,includesBom:`incl. lista de materiais`,budget:`Orçamento`,remaining:`Restante`},subProjects:{title:`Sub-projetos ({{count}})`},notes:{title:`Notas`,noEditPermission:`Você não tem permissão para editar notas`,placeholder:`Adicione notas sobre este projeto...`,empty:`Nenhuma nota ainda. Clique em Editar para adicionar notas.`},files:{title:`Arquivos`,linkFolders:`Vincular pastas do Gerenciador de Arquivos`,forQuickAccess:`a este projeto para acesso rápido.`,fileCount:`{{count}} arquivo(s)`,empty:`Nenhuma pasta vinculada. Vá para o Gerenciador de Arquivos e vincule uma pasta a este projeto.`,printedCount:`Impresso {{count}} vez(es)`,progressTooltip:`{{done}} de {{target}} impressões concluídas`,noFiles:`Nenhum arquivo nesta pasta.`},bom:{title:`Lista de Materiais`,acquired:`{{completed}}/{{total}} adquiridos`,showAll:`Mostrar todos`,hideDone:`Ocultar concluídos`,addPart:`Adicionar Peça`,noAddPermission:`Você não tem permissão para adicionar peças`,partNamePlaceholder:`Nome da peça (ex.: parafusos M3x8)`,partName:`Nome da peça`,qty:`Quantidade`,price:`Preço ({{currency}})`,sourcingUrlPlaceholder:`URL de fornecimento (opcional)`,remarksPlaceholder:`Observações (opcional)`,deletePart:`Excluir Peça`,deleteConfirm:`Tem certeza de que deseja excluir "{{name}}"?`,noUpdatePermission:`Você não tem permissão para atualizar peças`,noEditPermission:`Você não tem permissão para editar peças`,noDeletePermission:`Você não tem permissão para excluir peças`,totalCost:`Custo total:`,empty:`Nenhuma peça na lista de materiais. Adicione hardware, eletrônicos ou outros componentes para rastrear o que precisa ser adquirido.`},timeline:{title:`Linha do Tempo de Atividades`,empty:`Nenhuma atividade ainda.`},template:{saveAsTemplate:`Salvar como Modelo`,noCreatePermission:`Você não tem permissão para criar modelos`},queue:{title:`Fila`,viewAll:`Ver todos`,printing:`{{count}} imprimindo`,queued:`{{count}} na fila`},prints:{title:`Impressões ({{count}})`},toast:{projectUpdated:`Projeto atualizado`,partAdded:`Peça adicionada`,partRemoved:`Peça removida`,exportFailed:`Falha na exportação`,projectExported:`Projeto exportado`,templateCreated:`Modelo criado`}},system:{title:`Informações do Sistema`,version:`Versão`,uptime:`Tempo de Atividade`,cpuUsage:`Uso da CPU`,memoryUsage:`Uso da Memória`,diskUsage:`Uso do Disco`,networkInfo:`Informações de Rede`,logs:`Registros`,debugMode:`Modo de Depuração`,enableDebug:`Ativar Registro de Depuração`,disableDebug:`Desativar Registro de Depuração`,downloadLogs:`Baixar Logs`,clearLogs:`Limpar Logs`,dockerInfo:`Informações do Docker`,containerName:`Nome do Contêiner`,imageName:`Nome da Imagem`,platform:`Plataforma`,architecture:`Arquitetura`},sponsors:{sectionTitle:`Independente e financiado pela comunidade`,tagline:`O Bambuddy é gratuito e continua assim porque há quem escolha apoiá-lo. Sem VC, sem dependência de nuvem.`,viewSupporters:`Ver apoiadores`,toastPrints:`Você concluiu {{count}} impressões com o Bambuddy. O Bambuddy continua gratuito graças a quem o apoia.`,toastCost:`Você acompanhou {{total}} de filamento com o Bambuddy. Veja quem mantém o projeto independente.`,toastArchives:`{{count}} impressões arquivadas com o Bambuddy. Veja quem o mantém independente.`,toastAnniversary:`Um ano com o Bambuddy! Veja quem mantém o projeto independente.`,toastVersionUpdate:`Atualizado para v{{version}}. O Bambuddy continua gratuito graças a quem o apoia.`,toastBusiness:`Você usa o Bambuddy em {{count}} impressoras? Existe um plano de suporte para equipes: correções prioritárias, emissão de nota fiscal e contato direto com o mantenedor.`,businessCta:`Bambuddy para empresas`,businessTitle:`Bambuddy para empresas`,businessTagline:`Você está gerenciando {{count}} impressoras. Suporte prioritário, licenciamento comercial e faturamento estão disponíveis para equipes e fazendas de impressão.`},library:{title:`Biblioteca de Filamentos`,addFilament:`Adicionar Filamento`,editFilament:`Editar Filamento`,deleteFilament:`Excluir Filamento`,vendor:`Fornecedor`,material:`Material`,color:`Cor`,kFactor:`Fator K`,temperature:`Temperatura`,noFilaments:`Nenhum filamento na biblioteca`,deleteConfirm:`Tem certeza de que deseja excluir este filamento?`,importFromPrinter:`Importar da Impressora`,exportToFile:`Exportar para Arquivo`,runWithPipeline:{actionLabel:`Executar com pipeline`,noPermission:`Você não tem permissão para executar pipelines`,modalTitle:`Executar com pipeline`,confirmTitle:`Confirmar execução`,confirmIntro:`A pré-verificação encontrou problemas com esta execução`,sourceHint:`Origem`,pipelineHint:`Pipeline`,targetHint:`Destino`,pipelineListAria:`Pipelines disponíveis`,runAnyway:`Executar mesmo assim`,loading:`Carregando…`,empty:`Ainda não há pipelines salvas. Abra o diálogo Cortar e clique em "Salvar como pipeline" para criar uma.`,noTarget:`Sem impressora de destino`,noTargetMessage:`Esta pipeline não tem impressora de destino. Abra-a em Configurações para escolher uma.`,copies:`Cópias`,copiesHint:`máx {{n}}`,classTarget:`Qualquer {{model}}`,toast:{started:`Execução da pipeline iniciada`,failed:`Não foi possível iniciar a execução`},issue:{printerNotSet:`Sem impressora de destino nesta pipeline.`,printerNotFound:`Impressora de destino não existe mais.`,printerDisabled:`Impressora de destino está desativada.`,printerOffline:`Impressora de destino está offline.`,filamentType:`Slot de filamento {{slot}}: esperado {{expected}}, AMS tem {{actual}}`,filamentColor:`Slot de filamento {{slot}}: cor diferente (esperado {{expected}}, AMS tem {{actual}})`,amsSlotMissing:`Slot AMS {{slot}} indisponível nesta impressora`,filamentUnverified:`Slot de filamento {{slot}} vem de uma predefinição da nuvem / padrão e não pôde ser verificado estaticamente.`,noClassMatches:`Nenhuma impressora nesta instalação corresponde à classe de modelo de destino da pipeline ({{expected}}).`,classNotSet:`O destino da pipeline está configurado como classe de impressora, mas nenhum modelo foi escolhido.`}}},slice:{title:`Fatiar modelo`,action:`Fatiar`,actionAll:`Fatiar todas as {{count}} bandejas`,actionAllTitle:`Fatiar todas as bandejas em uma saída multi-bandeja única (um único arquivo). A seleção de filamento cobre cada slot definido pelo projeto.`,allPlatesToggle:`Fatiar todas as {{count}} bandejas`,slicing:`Fatiando…`,printer:`Perfil de impressora`,process:`Perfil de processo`,filament:`Perfil de filamento`,filamentSlot:`Filamento {{index}} ({{type}})`,selectPreset:`— Selecione uma predefinição —`,loadingPresets:`Carregando predefinições…`,analyzingPlateFilaments:`Analisando filamentos da mesa…`,analyzingPlateFilamentsHint:`Executando uma fatia de pré-visualização para descobrir quais slots AMS esta mesa usa. Cacheado depois — reabrir é instantâneo.`,previewToast:`Analisando {{name}} – {{elapsed}}`,previewWithProgress:`Analisando {{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,notUsedByPlate:`— não usado por esta mesa`,noPresetsForSlot:`Nenhuma predefinição disponível`,otherPrinters:`Outras impressoras`,presetsLoadFailed:`Falha ao carregar predefinições. Abra Configurações → Perfis para importá-las primeiro.`,refreshPresets:`Atualizar`,refreshPresetsTitle:`Atualizar predefinições — buscar as listagens mais recentes da nuvem e dos pacotes (use após excluir uma predefinição no Bambu Studio ou Bambu Handy)`,allPresetsRequired:`Todas as predefinições devem ser selecionadas`,useEmbedded:`Usar as configurações incorporadas do arquivo`,useEmbeddedHint:`Fatiar como o designer configurou (paredes, preenchimento, filamento) em vez dos perfis acima. Disponível porque sua impressora corresponde à do arquivo.`,designSettings:`Manter as configurações do designer`,designSettingsHint:`Este arquivo altera {{count}} configuração(ões) de impressão em relação ao perfil padrão.`,designSettingsSelected:`{{selected}} de {{total}} selecionadas`,designSettingsPrinterCoupled:`específico da impressora`,designSettingsPrinterCoupledHint:`Ajustado para a impressora para a qual o arquivo foi projetado — pode estar incorreto ou fora de faixa na sua.`,enqueuing:`Enviando trabalho de fatiamento…`,queued:`Na fila…`,failed:`Falha ao fatiar. Verifique os logs do sidecar.`,startedToast:`Fatiando {{name}} em segundo plano…`,queuedToast:`Na fila: {{name}} – {{elapsed}}`,runningToast:`Fatiando {{name}} – {{elapsed}}`,runningWithProgress:`{{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,runningWithProgressMultiPlate:`Bandeja {{plateIndex}} de {{plateCount}} • {{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,completedToast:`{{name}} fatiado`,failedTitle:`Falha ao fatiar`,failedToast:`Falha ao fatiar {{name}}: {{detail}}`,tier:{local:`Importado`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`Padrão`},cloud:{notAuthenticated:`Faça login no Bambu Cloud (Configurações → Perfis → Bambu Cloud) para ver as predefinições.`,expired:`Sessão do Bambu Cloud expirou – faça login novamente para atualizar as predefinições.`,unreachable:`Bambu Cloud está inacessível agora. Predefinições locais e padrão ainda funcionam.`},orcaCloud:{notAuthenticated:`Entre no Orca Cloud (Perfis → Orca Cloud) para ver seus presets Orca.`,expired:`Sessão do Orca Cloud expirada — entre novamente para atualizar seus presets Orca.`,unreachable:`Orca Cloud está indisponível no momento. Outros presets continuam funcionando.`},bedType:{label:`Mesa de impressão`,auto:`Auto (usar predefinição de processo)`,coolPlate:`Cool Plate`,coolPlateSuperTack:`Cool Plate SuperTack`,engineering:`Engineering Plate`,highTemp:`High Temp Plate`,texturedPEI:`Textured PEI Plate`,smoothPEI:`Smooth PEI Plate`},pipelines:{label:`Pipeline`,applyAria:`Aplicar pipeline`,applyPrompt:`Aplicar pipeline…`,empty:`Nenhuma pipeline salva`,saveButton:`Salvar como pipeline`,saveTitle:`Salvar a seleção atual dos quatro slots como uma pipeline reutilizável`,namePlaceholder:`Nome da pipeline`,nameAria:`Novo nome de pipeline`,toast:{applied:`"{{name}}" aplicada`,saved:`Pipeline salva`,saveFailed:`Falha ao salvar`}}},spoolman:{title:`Integração com Spoolman`,enabled:`Spoolman Ativado`,url:`URL do Spoolman`,connected:`Conectado`,disconnected:`Não Conectado`,testConnection:`Testar Conexão`,sync:`Sincronizar`,syncing:`Sincronizando...`,lastSync:`Última Sincronização`,linkToSpoolman:`Vincular ao Spoolman`,openInSpoolman:`Abrir no Spoolman`,unlinkSpool:`Desvincular Carretel`,unlinkConfirmTitle:`Remover atribuição do carretel?`,unlinkConfirmMessage:`Isso removerá o carretel deste slot. Os dados do próprio carretel permanecerão inalterados.`,selectSpool:`Selecionar Carretel`,noUnlinkedSpools:`Nenhum carretel não atribuído disponível`,linkSuccess:`Carretel atribuído com sucesso`,linkFailed:`Falha ao atribuir carretel`,unlinkSuccess:`Atribuição do carretel removida com sucesso`,unlinkFailed:`Falha ao remover atribuição do carretel`,linkedSpool:`Carretel atribuído`,spoolId:`Carretel ID (Spool ID)`,fillSourceLabel:`(Spoolman)`,weight:`Peso`,remaining:`Restante`,disableWeightSync:`Desativar Sincronização de Peso Estimado do AMS`,disableWeightSyncDesc:`Não atualize a capacidade restante a partir das estimativas do AMS. Use isso se preferir o rastreamento de uso do Spoolman em vez das estimativas baseadas em porcentagem do AMS. Novos carretéis ainda usarão a estimativa do AMS como seu peso inicial.`,reportPartialUsage:`Relatar Uso Parcial para Impressões Falhadas`,reportPartialUsageDesc:`Quando uma impressão falha ou é cancelada, relate o filamento estimado usado até aquele ponto com base no progresso das camadas.`},locations:{title:`Locais de armazenamento`,subtitle:`Gerencie prateleiras, gavetas e outros locais físicos para bobinas`,add:`Adicionar local`,addShort:`Adicionar`,edit:`Editar local`,name:`Nome`,spools:`Bobinas`,empty:`Nenhum local de armazenamento. Crie sua primeira prateleira ou gaveta.`,manage:`Locais`,createPlaceholder:`ex. Prateleira A, Gaveta 1`,nameRequired:`O nome do local é obrigatório`,created:`Local criado`,updated:`Local atualizado`,deleted:`Local excluído`,saveFailed:`Falha ao salvar local`,deleteFailed:`Falha ao excluir local`,deleteBlocked:`Remova todas as bobinas deste local antes de excluir`,confirmDelete:`Excluir «{{name}}»?`,confirmDeleteMessage:`Este local será removido do catálogo. Mova as bobinas primeiro.`},inventory:{title:`Inventário de Carretéis`,subtitle:`Gerencie seus carretéis`,addToInventory:`Adicionar ao Inventário`,addToInventoryPending:`Adicionando...`,addToInventorySuccess:`Carretel adicionado ao inventário`,addToInventoryFailed:`Falha ao adicionar carretel ao inventário`,unknownSpoolTitle:`Novo filamento detectado`,unknownSpoolMessage:`Um carretel com tag RFID desconhecido foi detectado em {{location}}. Adicioná-lo ao seu inventário agora?`,unknownSpoolSlot:`Slot`,bulk:{selectAllVisible:`Selecionar todos os visíveis`,selectRow:`Selecionar linha`,selectGroup:`Selecionar grupo`,selectionCount:`{{count}} selecionados`,edit:`Editar`,printLabels:`Imprimir etiquetas`,resetUsage:`Redefinir uso`,restore:`Restaurar`,archive:`Arquivar`,delete:`Excluir`,clearSelection:`Limpar seleção`,editTitle:`Editar carretéis em massa`,editSubtitle:`Aplica-se a {{count}} carretéis selecionados. Apenas os campos marcados serão atualizados.`,editHint:`Digite em um campo para marcá-lo para atualização — apenas linhas marcadas são enviadas. Deixar um campo vazio mantém os carretéis inalterados (limpar campos só é feito por carretel).`,useCustom:`Usar "{{value}}"`,toggleField:`Ativar atualização deste campo`,changeCount:`{{count}} campos serão atualizados.`,applyPending:`Aplicando...`,applyButton:`Aplicar a {{count}} carretéis`,deleteTitle:`Excluir carretéis selecionados`,archiveTitle:`Arquivar carretéis selecionados`,restoreTitle:`Restaurar carretéis selecionados`,resetUsageTitle:`Redefinir uso dos carretéis selecionados`,deleteMessage:`Excluir permanentemente {{count}} carretéis? Esta ação não pode ser desfeita.`,archiveMessage:`Arquivar {{count}} carretéis? Eles podem ser restaurados depois.`,restoreMessage:`Restaurar {{count}} carretéis arquivados?`,resetUsageMessage:`Redefinir o contador "Total Consumido" em {{count}} carretéis? O peso restante é preservado.`,updateSuccess:`{{count}} carretéis atualizados`,updateFailed:`Atualização em massa falhou`,updatePartial:`{{ok}} carretéis atualizados, {{failed}} falharam`,updateAllFailed:`Todas as {{count}} atualizações falharam — a seleção é mantida para nova tentativa`,deleteSuccess:`{{count}} carretéis excluídos`,deleteFailed:`Exclusão em massa falhou`,deletePartial:`{{ok}} carretéis excluídos, {{failed}} falharam`,deleteAllFailed:`Todas as {{count}} exclusões falharam — a seleção é mantida para nova tentativa`,archiveSuccess:`{{count}} carretéis arquivados`,archiveFailed:`Arquivamento em massa falhou`,archivePartial:`{{ok}} carretéis arquivados, {{failed}} falharam`,archiveAllFailed:`Todos os {{count}} arquivamentos falharam — a seleção é mantida para nova tentativa`,restoreSuccess:`{{count}} carretéis restaurados`,restoreFailed:`Restauração em massa falhou`,restorePartial:`{{ok}} carretéis restaurados, {{failed}} falharam`,restoreAllFailed:`Todas as {{count}} restaurações falharam — a seleção é mantida para nova tentativa`,invalidHex:`Digite 6 caracteres hex (RRGGBB) ou 8 (RRGGBBAA). Caso contrário o campo não será aplicado.`},spoolmanMixedContentTitle:`Spoolman não pode carregar em HTTPS — conteúdo misto bloqueado pelo navegador`,spoolmanMixedContentBody:`O Bambuddy é servido via HTTPS (pelo seu reverse proxy), mas a URL do Spoolman ainda é HTTP. Os navegadores bloqueiam conteúdo misto por segurança, então a interface embutida do Spoolman não consegue carregar. O Spoolman também precisa estar acessível via HTTPS.`,spoolmanMixedContentFixReverseProxy:`Coloque o Spoolman atrás do mesmo reverse proxy do Bambuddy (Traefik / Nginx / Caddy) com HTTPS e atualize a URL do Spoolman em Configurações com o novo endereço HTTPS.`,spoolmanMixedContentFixOpenNewTab:`Como alternativa, abra o Spoolman em uma nova aba via HTTP — as regras de conteúdo misto só se aplicam a frames embutidos, uma aba independente funciona normalmente.`,spoolmanOpenInNewTab:`Abrir Spoolman em nova aba`,labels:{title:`Imprimir etiquetas de bobinas`,selectedCount:`{{count}} selecionado`,pickSpools:`Escolha para quais bobinas imprimir etiquetas:`,monochrome:`Monocromático (impressora preto e branco)`,monochromeHint:`Remove a amostra de cor e amplia o texto`,searchPlaceholder:`Buscar por nome, marca ou #ID`,filterByMaterial:`Material:`,allMaterials:`Tudo`,selectVisible:`Selecionar todos visíveis ({{count}})`,deselectVisible:`Desmarcar visíveis`,clearAll:`Limpar tudo`,noSpoolsToShow:`Nenhuma bobina para mostrar. Ajuste o filtro e tente novamente.`,noMatches:`Nenhuma bobina corresponde à pesquisa ou filtro atual.`,printOne:`Imprimir etiqueta desta bobina`,printLabels:`Imprimir etiquetas…`,bulkTitle:`Escolha bobinas para etiquetar entre as {{count}} exibidas`,noSpoolsTitle:`Nenhuma bobina para rotular`,error:`Não foi possível gerar etiquetas: {{msg}}`,sortBy:{label:`Ordenar:`,id:`Por ID`,color:`Por cor`},templates:{amsHolderSmall:{label:`Suporte AMS — pequeno (74 × 33 mm)`,hint:`Uma etiqueta por página; corresponde à etiqueta imprimível do modelo MakerWorld 752566 (Suporte de etiquetas de filamento AMS).`},amsHolderLarge:{label:`Suporte AMS — grande (75 × 55 mm)`,hint:`Uma etiqueta por página; encaixa na variante com inserto em cartão do Suporte de etiquetas de filamento AMS. Espaço suficiente para amostra de cor, marca, material, ID e QR code.`},box40x30:{label:`Etiqueta de caixa (40 × 30 mm)`,hint:`Uma etiqueta por página; tamanho comum de rolo DK/Brother, ideal para etiquetar sacos de filamento e caixas de armazenamento.`},box:{label:`Box label (62 × 29 mm)`,hint:`Uma etiqueta por página; tamanho para Brother PT/QL e etiquetas pequenas Dymo.`},averyL7160:{label:`Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)`,hint:`Formato de folha UE; 21 etiquetas por página A4.`},avery5160:{label:`Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)`,hint:`Formato de folha US; 30 etiquetas por página Letter.`}}},csv:{importButton:`Importar CSV`,exportButton:`Exportar CSV`,modalTitle:`Importar carretéis de CSV`,selectFile:`Escolha um arquivo CSV ou arraste-o aqui`,dragHint:`Cabeçalho: material (obrigatório), brand, subtype, color_name, rgba, …`,parsing:`Lendo arquivo…`,previewError:`Não foi possível ler o arquivo CSV`,validCount:`{{count}} válidos`,errorCount:`{{count}} com erro`,skippedCount:`{{count}} ignorados`,colRow:`Linha`,colStatus:`Status`,colColor:`Cor`,colorResolved:`Cor preenchida pelo catálogo`,colorCrossMaterial:`Cor obtida de um material diferente — sem correspondência exata no catálogo`,duplicateExisting:`Já existe uma bobina com este material, marca e cor — ela será importada mesmo assim como uma nova bobina`,spoolmanHint:`No modo Spoolman, use a importação/exportação CSV integrada do Spoolman.`,importValidRows:`Importar {{count}} linhas válidas`,noValidRows:`Nenhuma linha válida`,importing:`Importando…`,importSuccess:`{{count}} carretéis importados`,importError:`Falha na importação`,exportError:`Falha na exportação`},addSpool:`Adicionar Carretel`,editSpool:`Editar Carretel`,copySpool:`Copiar Carretel`,material:`Material`,selectMaterial:`Selecionar material...`,subtype:`Subtipo`,brand:`Marca`,searchBrand:`Pesquisar marca...`,useCustomBrand:`Usar "{{brand}}"`,useCustomMaterial:`Usar material personalizado: {{material}}`,suggestedOptions:`Sugeridos`,allOptions:`Todos`,colorName:`Nome da Cor`,colorNamePlaceholder:`Branco Jade, Vermelho Fogo...`,color:`Cor`,hexColor:`Cor Hexadecimal`,pickColor:`Escolher cor personalizada`,labelWeight:`Peso da Etiqueta`,coreWeight:`Peso do Carretel Vazio`,searchSpoolWeight:`Pesquisar peso do carretel...`,weightUsed:`Usado`,currentWeight:`Peso Restante`,measuredWeight:`Peso Medido`,spoolName:`Bobina`,costPerKg:`Custo por kg`,storageLocation:`Local de armazenamento`,storageLocationPlaceholder:`ex. Prateleira A, Gaveta 1`,openInInventory:`Abrir no inventário`,measuredWeightError:`O peso medido deve estar entre {{min}}g e {{max}}g.`,slicerFilament:`Filamento do Fatiador`,slicerFilamentName:`Nome do Predefinido do Fatiador`,slicerPreset:`Predefinido do Fatiador`,searchPresets:`Pesquisar predefinições de filamento...`,selectedPreset:`Selecionado`,noPresetsFound:`Nenhuma predefinição encontrada`,tempOverrides:`Substituições de Temperatura`,note:`Nota`,notePlaceholder:`Quaisquer notas adicionais sobre este spool...`,category:`Categoria`,categoryPlaceholder:`ex. Produção, Protótipo, Cliente A`,categoryNone:`Sem categoria`,storageLocationNone:`Sem local definido`,lowStockThresholdOverride:`Limite de estoque baixo (este carretel)`,lowStockThresholdOverrideHelp:`Deixe em branco para usar o limite global ({{global}}%).`,clearRfid:`Limpar tag RFID`,rfidCleared:`Tag RFID limpa`,archive:`Arquivar`,restore:`Restaurar`,noSpools:`Nenhum carretel ainda. Adicione seu primeiro carretel para começar.`,noAvailableSpools:`Nenhum carretel disponível. Adicione um carretel ao seu inventário ou desatribua um de outro slot primeiro.`,kProfiles:`K-Perfis`,addKProfile:`Adicionar K-Perfil`,assignSpool:`Atribuir Carretel`,unassignSpool:`Desatribuir`,assignSuccess:`Carretel atribuído e slot AMS configurado`,assignPendingInsert:`Atribuído. O slot será configurado quando você inserir o carretel.`,assignFailed:`Falha ao atribuir carretel`,selectSpool:`Selecione um carretel para atribuir a este slot`,assigned:`Atribuído`,assigning:`Atribuindo...`,searchSpools:`Pesquisar carretéis...`,showAllSpools:`Mostrar todos os carretéis`,spoolmanSpools:`Bobinas Spoolman`,allMaterials:`Todos os Materiais`,filterByBrand:`Filtrar por marca...`,showArchived:`Mostrar arquivados`,quickAdd:`Adição rápida (Estoque)`,quantity:`Quantidade`,stock:`Estoque`,configured:`Configurado`,spoolsCreated:`{{count}} carretéis criados`,spoolsPartiallyCreated:`{{created}} de {{total}} carretéis criados (alguns falharam)`,spoolCreated:`Carretel criado`,spoolUpdated:`Carretel atualizado`,spoolDeleted:`Carretel excluído`,deepLinkSpoolNotFound:`Carretel não encontrado`,deepLinkFetchFailed:`Não foi possível carregar o carretel — tente novamente`,spoolArchived:`Carretel arquivado`,spoolRestored:`Carretel restaurado`,kProfileSaveFailed:`Não foi possível salvar as configurações do perfil K`,syncWeightSpoolNotFound:`Carretel não encontrado — pode ter sido excluído`,syncWeightSpoolmanUnreachable:`Spoolman está inacessível — tente novamente mais tarde`,syncWeightFailed:`Falha ao sincronizar o peso`,spoolmanUnreachable:`Spoolman está inacessível — tente novamente mais tarde`,deleteSpoolNotFound:`Carretel não encontrado — pode já ter sido excluído`,deleteFailed:`Falha ao excluir carretel`,archiveSpoolNotFound:`Carretel não encontrado — pode já ter sido excluído`,archiveFailed:`Falha ao arquivar carretel`,restoreSpoolNotFound:`Carretel não encontrado — pode já ter sido excluído`,restoreFailed:`Falha ao restaurar carretel`,saveFailed:`Falha ao salvar as alterações`,tagClearFailed:`Falha ao limpar a tag`,deleteConfirm:`Tem certeza de que deseja excluir este carretel? Esta ação não pode ser desfeita.`,archiveConfirm:`Tem certeza de que deseja arquivar este carretel?`,advancedSettings:`Configurações Avançadas`,filamentInfoTab:`Informações do Filamento`,paProfileTab:`Perfil PA`,filamentInfo:`Filamento`,additional:`Adicional`,loadingPresets:`Carregando predefinições da nuvem...`,cloudConnected:`Nuvem conectada`,cloudNotConnected:`Nuvem não conectada (usando padrões)`,recentColors:`Recentes`,searchColors:`Pesquisar cores...`,searchResults:`Resultados da pesquisa`,allColors:`Todas as cores`,commonColors:`Cores comuns`,showLess:`Mostrar menos`,showAll:`Mostrar tudo`,noColorsFound:`Nenhuma cor corresponde à sua pesquisa`,noResults:`Nenhum resultado encontrado`,extraColorsLabel:`Cores extras`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`Cole 2 a 8 paradas hex, separadas por vírgulas. Renderizado como gradiente.`,extraColorsInvalid:`Hex inválidos ignorados: {{tokens}}`,colorEffectLabel:`Efeito`,colorEffect:{none:`Nenhum`,sparkle:`Brilho`,wood:`Madeira`,marble:`Mármore`,glow:`Brilho`,matte:`Fosco`,silk:`Silk`,galaxy:`Galáxia`,rainbow:`Arco-íris`,metal:`Metal`,translucent:`Translúcido`,gradient:`Gradiente`,dualColor:`Dupla cor`,triColor:`Tricolor`,multicolor:`Multicolor`},selectMaterialFirst:`Por favor, selecione um material primeiro na aba Informações do Filamento.`,noPrintersConfigured:`Nenhuma impressora configurada. Adicione impressoras para usar perfis PA.`,matchingFilter:`Correspondente`,anyBrand:`Qualquer marca`,anyVariant:`Qualquer variante`,autoSelect:`Seleção automática`,matches:`correspondências`,match:`correspondência`,noMatches:`Nenhuma correspondência`,connected:`Conectado`,offline:`Offline`,printerOffline:`A impressora está offline. Conecte-se para visualizar os perfis de calibração.`,noKProfilesMatch:`Nenhum K-perfil corresponde ao filamento selecionado.`,leftNozzle:`Bico Esquerdo`,rightNozzle:`Bico Direito`,profilesSelected:`perfil(is) de calibração selecionado(s)`,totalInventory:`Inventário Total`,totalConsumed:`Total Consumido`,byMaterial:`Por Material`,inPrinter:`Na Impressora`,lowStock:`Estoque Baixo`,sinceTracking:`Desde o início do rastreamento`,resetConsumedCounter:`Zerar contador`,resetConsumedCounterTooltip:`Zerar o contador de gramas consumidas desta bobina. O peso restante não é alterado.`,resetConsumedCounterConfirm:`Zerar o contador de gramas consumidas desta bobina? As impressões futuras voltarão a contar do zero. A bobina em si, o cálculo do peso restante e as configurações não são alterados.`,resetAllConsumedCounters:`Zerar todos os contadores`,resetAllConsumedCountersTooltip:`Zerar o contador de gramas consumidas em todas as bobinas. Os pesos restantes não são alterados.`,resetAllConsumedCountersConfirm:`Zerar o contador de gramas consumidas nas {{count}} bobinas (incluindo as arquivadas)? Isso limpa o "Total Consumido" para que as impressões futuras contem do zero. Bobinas e pesos restantes não são alterados.`,consumedCounterReset:`Contador zerado`,allConsumedCountersReset:`Contador zerado em {{count}} bobina(s)`,resetConsumedCounterFailed:`Falha ao zerar o contador`,loadedInAms:`Carregado no AMS/Ext`,remaining:`Restante`,weightCheck:`Verificação de Peso`,lastWeighed:`Última pesagem`,neverWeighed:`Nunca pesado`,search:`Pesquisar carretéis...`,showing:`Mostrando`,to:`até`,of:`de`,show:`Mostrar`,spools:`carretéis`,spool:`carretel`,page:`Página`,noSpoolsMatch:`Nenhum resultado encontrado`,noSpoolsMatchDesc:`Tente ajustar sua pesquisa ou filtros para encontrar o que você está procurando.`,active:`Ativo`,archived:`Arquivado`,all:`Todos`,used:`Usado`,new:`Novo`,clearFilters:`Limpar filtros`,table:`Tabela`,cards:`Cartões`,net:`Líquido`,groupSimilar:`Agrupar`,groupedSpools:`{{count}} carretéis idênticos`,groupedRows:`linhas`,columns:`Colunas`,configureColumns:`Configurar Colunas`,configureColumnsDesc:`Arraste para reordenar as colunas ou use as setas. Alterne a visibilidade com o ícone de olho.`,visible:`Visível`,reset:`Redefinir`,cancel:`Cancelar`,applyChanges:`Aplicar Alterações`,moveUp:`Mover para cima`,moveDown:`Mover para baixo`,hideColumn:`Ocultar coluna`,showColumn:`Mostrar coluna`,linkToSpool:`Vincular ao Carretel`,tagLinked:`Tag vinculada ao carretel`,tagLinkFailed:`Falha ao vincular tag`,tagAlreadyLinked:`Tag já vinculada a outro carretel`,unknownTag:`Tag RFID desconhecida detectada`,usageHistory:`Histórico de Uso`,noUsageHistory:`Nenhum uso registrado ainda`,printName:`Nome da Impressão`,weightConsumed:`Peso Consumido`,clearHistory:`Limpar`,historyCleared:`Histórico de uso limpo`,fillSourceLabel:`(Inv)`,lowStockThresholdError:`O limite deve estar entre 0.1 e 99.9`,assignMismatchTitle:`Incompatibilidade de material`,assignMismatchMessage:`O material do carretel selecionado "{{spoolMaterial}}" não corresponde ao material da bandeja "{{trayMaterial}}" para {{location}}. Atribuir mesmo assim?`,assignMismatchConfirm:`Atribuir mesmo assim`,assignPartialMismatchMessage:`O material do carretel "{{spoolMaterial}}" é semelhante, mas não corresponde exatamente a "{{trayMaterial}}" em {{location}}. Deseja prosseguir?`,assignProfileMismatchMessage:`O perfil do carretel "{{spoolProfile}}" não corresponde ao perfil da bandeja "{{trayProfile}}" em {{location}}. Deseja prosseguir?`,assignReconfigureNote:`O slot do AMS será reconfigurado para usar o perfil do carretel.`,spoolmanFilamentCatalog:`Catálogo de filamentos Spoolman`,pickFromSpoolmanCatalog:`Escolher do catálogo Spoolman…`,spoolmanFilamentSelected:`Filamento selecionado do catálogo Spoolman`,spoolmanFilamentUnlinked:`Vínculo com o catálogo de filamentos removido`,noSpoolmanFilaments:`Nenhum filamento encontrado no catálogo Spoolman`,spoolmanFilamentColorSwatch:`Cor do filamento`,spoolWeightManagedBySpoolman:`O peso do carretel vazio é gerenciado por tipo de filamento no Spoolman`,spoolmanCatalogLoadFailed:`Falha ao carregar catálogo de filamentos do Spoolman`},timelapse:{title:`Timelapse`,create:`Criar Timelapse`,download:`Baixar`,delete:`Excluir`,preview:`Visualizar`,frameRate:`Taxa de Quadros`,quality:`Qualidade`,processing:`Processando...`,noTimelapses:`Nenhum timelapse disponível`},ams:{title:`AMS`,slot:`Slot`,empty:`Vazio`,emptySlot:`Slot vazio`,slotEmpty:`Vazio`,slotUnconfigured:`?`,emptySlotReset:`Nenhum carretel atribuído`,unknown:`Desconhecido`,humidity:`Umidade`,temperature:`Temperatura`,filamentType:`Tipo de Filamento`,filamentColor:`Cor`,remaining:`Restante`,history:`Histórico do AMS`,noHistory:`Nenhum histórico disponível`,configureSlot:`Configurar Slot`,externalSpool:`Carretel Externo`,profile:`Perfil`,kFactor:`Fator K`,fill:`Preencher`,configure:`Configurar`,used:`usado`,remainingUnit:`restante`},printModal:{selectPrinter:`Selecionar Impressora`,selectPlate:`Selecionar Placa`,filamentMapping:`Mapeamento de Filamento`,plateN:`Placa {{n}}`,plateFilamentsUnreadable:`Não foi possível ler os filamentos de uma placa selecionada, portanto ela não pode ser mapeada. Desmarque-a para enfileirar as demais.`,totalCost:`Custo total:`,slotRemainingShort:` - {{grams}}g rest.`,printSettings:`Configurações de Impressão`,bedLeveling:`Nivelamento da Mesa`,flowCalibration:`Calibração de Fluxo`,vibrationCalibration:`Calibração de Vibração`,layerInspection:`Inspeção da Primeira Camada`,timelapse:`Timelapse`,cancel:`Cancelar`,noPrintersAvailable:`Nenhuma impressora disponível`,printerBusy:`Impressora ocupada`,printerOffline:`Impressora offline`,sameTypeDifferentColor:`Mesmo tipo, cor diferente`,filamentTypeNotLoaded:`Tipo de filamento não carregado`,whenToPrint:`Quando imprimir`,asap:`O quanto antes`,queue:`Fila`,schedule:`Agendar`,dateTime:`Data e hora`,invalidDateTime:`Digite uma data e hora válidas`,openCalendar:`Abrir calendário`,requireManualStart:`Exigir início manual`,requirePreviousSuccess:`Iniciar somente se a impressão anterior foi concluída com sucesso`,autoOffAfter:`Desligar impressora ao finalizar`,helpAsap:`A impressão será adicionada ao topo da fila e começará assim que uma impressora elegível estiver ociosa.`,helpSchedule:`A impressão começará no horário agendado se a impressora estiver ociosa. Se estiver ocupada, aguardará até ficar disponível.`,helpQueue:`A impressão será adicionada ao fim da fila.`,leftNozzle:`L`,rightNozzle:`R`,leftNozzleTooltip:`Bico esquerdo`,rightNozzleTooltip:`Bico direito`,filamentOverride:`Substituição de Filamento`,filamentOverrideHint:`Substitua opcionalmente os filamentos para atribuição baseada em modelo. O agendador usará os filamentos selecionados em vez dos valores originais do 3MF.`,originalFilament:`Original`,overrideWith:`Substituir por`,resetToOriginal:`Restaurar original`,insufficientFilamentTitle:`Filamento insuficiente`,waitingForAmsStatus:`Aguardando o status do AMS de {{printer}}…`,insufficientFilamentMessage:`Alguns dos carretéis atribuídos têm menos filamento restante do que o necessário para esta impressão:`,insufficientFilamentLine:`{{printer}} - {{slot}}: necessário {{required}}g, restante {{remaining}}g`,printAnyway:`Imprimir mesmo assim`,forceColorMatch:`Forçar correspondência de cor`,staggerPrinterStarts:`Escalonar inícios`,staggerGroupSize:`Tamanho do grupo`,staggerInterval:`Intervalo (min)`,staggerPreview:`{{printers}} impressoras → {{groups}} grupos de {{size}}, iniciando a cada {{interval}} min`,staggerLastGroup:`último grupo: {{count}}`,staggerTotal:`total: {{minutes}} min`,staggerToPrinters:`Escalonar para {{count}} impressoras`,gcodeInjection:`Injetar G-code de auto-impressão`},backup:{includesEncryptionKey:`Backups locais incluem o arquivo da chave de criptografia MFA (DATA_DIR/.mfa_encryption_key), então o backup ZIP é autossuficiente. Trate o ZIP como sensível — quem tiver o arquivo pode descriptografar os client secrets OIDC e os segredos TOTP armazenados.`,title:`Bakup e Restauração`,createBackup:`Criar Backup`,restoreBackup:`Restaurar Backup`,restoreDescription:`Substituir todos os dados a partir de um arquivo de backup`,downloadBackup:`Baixar Backup`,uploadBackup:`Enviar Backup`,lastBackup:`Último Backup`,autoBackup:`Backup automático`,backupNow:`Fazer Backup Agora`,restoreWarning:`Aviso: Restaurar um backup substituirá todos os dados atuais.`,includeArchives:`Incluir Arquivos`,includeSettings:`Incluir Configurações`,includeProfiles:`Incluir Perfis`,backupSuccess:`Backup criado com sucesso`,restoreSuccess:`Backup restaurado com sucesso`,backupFailed:`Falha ao criar backup`,restoreFailed:`Falha ao restaurar backup`,restoreNote:`A impressora virtual será parada durante a restauração`,githubBackup:`Backup GitHub`,enabled:`Ativado`,cloudLoginRequired:`Login no Bambu Cloud necessário. Entre em Perfis → Perfis Cloud para ativar o backup GitHub.`,cloudLoginRequiredShort:`Login Cloud necessário`,githubDescription:`Sincronize automaticamente seus perfis com um repositório GitHub privado para backup e histórico de versões.`,repoIsPrivate:`O repositório é privado — seguro para backup.`,repoIsPublicWarning:`O repositório está PÚBLICO. Os backups do Bambuddy incluem credenciais MQTT, tokens do Home Assistant, tokens do Prometheus, seu e-mail do Bambu Cloud e os códigos de acesso das impressoras via K-profiles. Salvar está bloqueado até que você torne o repositório privado nas configurações do seu provedor.`,repoVisibilityUnknown:`Não foi possível determinar a visibilidade do repositório. O Bambuddy se recusa a fazer backup em qualquer destino não confirmado como privado; salvar será bloqueado.`,repositoryUrl:`URL do repositório`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`Permitir HTTP inseguro`,allowInsecureHttpHint:`Ativar para instâncias auto-hospedadas em redes privadas sem TLS`,personalAccessToken:`Token de acesso pessoal`,tokenSaved:`(salvo)`,enterNewToken:`Digite um novo token para atualizar`,tokenHint:`Token de granularidade fina com permissão de leitura/escrita de conteúdo`,branch:`Branch`,provider:`Provedor Git`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`Apenas manual`,hourly:`A cada hora`,daily:`Diário`,weekly:`Semanal`,includeInBackup:`Incluir no backup`,kProfiles:`K-Perfis`,kProfilesDescription:`Calibração de avanço de pressão das impressoras conectadas`,noPrintersConnected:`Nenhuma impressora conectada`,printersConnected:`{{connected}}/{{total}} conectadas`,cloudProfiles:`Perfis Cloud`,cloudProfilesDescription:`Predefinições de filamento, impressora e processo do Bambu Cloud`,appSettings:`Configurações do App`,appSettingsDescription:`Configuração do Bambuddy (banco de dados completo)`,spoolInventory:`Inventário de bobinas`,spoolInventoryDescription:`Bobinas de filamento, histórico de uso e rastreamento de custos`,printArchives:`Arquivos de impressão`,printArchivesDescription:`Metadados do histórico de impressão (sem arquivos gcode/3MF)`,lastBackupAt:`Último backup:`,noBackupsYet:`Nenhum backup ainda`,next:`Próximo:`,startingBackup:`Iniciando backup...`,test:`Testar`,enableBackup:`Ativar backup`,testConnection:`Testar conexão`,enterRepoUrl:`Digite a URL do repositório`,enterRepoAndToken:`Digite a URL do repositório e o token de acesso`,repoRequired:`A URL do repositório é obrigatória`,tokenRequired:`O token de acesso é obrigatório`,githubBackupEnabled:`Backup GitHub ativado`,tokenUpdated:`Token atualizado`,settingsSaved:`Configurações salvas`,failedToSave:`Falha ao salvar: {{message}}`,backupCompleteFiles:`Backup concluído - {{count}} arquivos atualizados`,backupSkippedNoChanges:`Backup ignorado - sem alterações`,backupFailed2:`Falha no backup: {{message}}`,clearedLogs:`{{count}} logs removidos`,failedToClearLogs:`Falha ao limpar logs: {{message}}`,history:`Histórico`,clear:`Limpar`,date:`Data`,status:`Status`,commit:`Commit`,localBackup:`Backup local`,localBackupDescription:`Crie um backup completo dos seus dados do Bambuddy incluindo banco de dados, arquivos, uploads e todos os ficheiros.`,downloadBackupLabel:`Baixar backup`,completeBackupZip:`Backup completo: banco de dados + todos os arquivos (ZIP)`,download:`Baixar`,preparingBackup:`Preparando backup...`,creatingArchive:`Criando arquivo de backup... Isso pode demorar para backups grandes.`,downloadingFile:`Baixando arquivo de backup...`,backupDownloaded:`Backup baixado com sucesso`,failedToCreateBackup:`Falha ao criar backup: {{message}}`,restore:`Restaurar`,restoreReplacesAll:`A restauração substitui todos os dados.`,restoreReplacesAllDetail:`Seu banco de dados e arquivos atuais serão completamente substituídos. É necessário reiniciar após a restauração.`,restoreConfirmTitle:`Restaurar backup`,restoreConfirmMessage:`Tem certeza de que deseja restaurar de "{{filename}}"? Isso substituirá completamente seu banco de dados e todos os arquivos. O aplicativo precisará ser reiniciado após a restauração.`,restoreConfirmButton:`Restaurar backup`,uploadingFile:`Enviando arquivo de backup...`,backupRestoredRestart:`Backup restaurado. Por favor, reinicie o Bambuddy.`,failedToRestore:`Falha ao restaurar backup. Verifique o formato do arquivo.`,reloadNow:`Recarregar agora`,creatingBackup:`Criando backup`,restoringBackup:`Restaurando backup`,preparing:`Preparando...`,processing:`Processando...`,doNotClosePage:`Por favor, não feche esta página nem navegue para outro lugar. Esta operação pode levar vários minutos para backups grandes.`,restoring:`Restaurando...`,restoreComplete:`Restauração concluída`,restoreFailed2:`Falha na restauração`,importSettings:`Importar configurações de um arquivo de backup`,pleaseWaitRestoring:`Aguarde enquanto seus dados estão sendo restaurados`,selectBackupFile:`Clique para selecionar um arquivo de backup (.json ou .zip)`,duplicateHandling:`Como funciona o tratamento de duplicatas:`,matchPrinters:`Impressoras`,matchPrintersBy:`correspondência por número de série`,matchSmartPlugs:`Tomadas inteligentes`,matchSmartPlugsBy:`correspondência por endereço IP`,matchNotificationProviders:`Provedores de notificação`,matchNotificationProvidersBy:`correspondência por nome`,matchFilaments:`Filamentos`,matchFilamentsBy:`correspondência por nome + tipo + marca`,matchArchives:`Arquivos`,matchArchivesBy:`correspondência por hash de conteúdo (sempre ignorado)`,matchPendingUploads:`Uploads pendentes`,matchPendingUploadsBy:`correspondência por nome do arquivo`,matchSettingsTemplates:`Configurações e modelos`,matchSettingsTemplatesBy:`sempre sobrescritos`,replaceExisting:`Substituir dados existentes`,keepExisting:`Manter dados existentes`,overwriteDescription:`Sobrescrever itens que já existem com dados do backup`,keepDescription:`Restaurar apenas itens que ainda não existem`,overwriteCaution:`Cuidado:`,overwriteWarning:`A sobrescrita substituirá suas configurações atuais pelos dados do backup. Códigos de acesso das impressoras nunca são sobrescritos por segurança.`,cancel:`Cancelar`,processingBackup:`Processando arquivo de backup...`,itemsRestored:`Itens restaurados`,itemsSkipped:`Itens ignorados`,restored:`Restaurados`,skippedAlreadyExist:`Ignorados (já existem)`,filesCategory:`Arquivos (3MF, miniaturas, etc.)`,andMore:`...e mais {{count}}`,newApiKeysGenerated:`Novas chaves API geradas`,keysShownOnce:`Estas chaves são exibidas apenas uma vez. Copie-as agora!`,copy:`Copiar`,noDataFound:`Nenhum dado para restaurar foi encontrado no arquivo de backup.`,close:`Fechar`,scheduledBackup:`Backups agendados`,scheduledBackupDescription:`Cria automaticamente snapshots de backup conforme agendamento. O diretório de saída pode ser montado em um NAS ou armazenamento externo.`,frequency:`Frequência`,backupTime:`Tempo`,retention:`Retenção`,retentionDescription:`Número de backups a manter`,outputPath:`Caminho de saída`,outputPathPlaceholder:`Padrão: {{path}}`,outputPathDescription:`Deixe em branco para o local padrão`,runNow:`Executar agora`,backupFiles:`Arquivos de backup`,noScheduledBackups:`Sem backups ainda`,deleteBackup:`Excluir`,deleteBackupConfirm:`Excluir este arquivo de backup?`,backupRunning:`Backup em andamento...`,scheduledBackupComplete:`Backup concluído com sucesso`,scheduledBackupFailed:`Falha no backup`,nextBackup:`Próximo backup`,backupSize:`Tamanho`,localTimeHint:`Horário local ({{tz}})`,defaultPathLabel:`Padrão:`,pathCheck:{title:`O Bambuddy não consegue gravar neste diretório`,howToFix:`Como corrigir:`,sandboxed:`O serviço do Bambuddy não consegue gravar em {{path}}. Sua unit do systemd roda com ProtectSystem=strict, o que torna todo diretório fora dos diretórios de instalação, dados e logs somente leitura para o serviço - mesmo um em que você consegue gravar pelo seu próprio shell.`,read_only:`{{path}} está em um sistema de arquivos somente leitura.`,permission_denied:`O Bambuddy não tem permissão para gravar em {{path}}. Verifique o dono e as permissões do diretório.`,no_space:`O sistema de arquivos que contém {{path}} está cheio.`,not_a_directory:`{{path}} existe, mas não é um diretório.`,missing:`{{path}} não existe e não pôde ser criado.`,error:`O Bambuddy não consegue gravar em {{path}}.`,ephemeralTitle:`Estes backups não sobrevivem à recriação do contêiner`,container_ephemeral:`{{path}} está dentro do contêiner do Bambuddy, não no host. Backups gravados ali são perdidos quando o contêiner é recriado. Monte o diretório do host:`},categories:{settings:`Configurações`,notification_providers:`Provedores de notificação`,notification_templates:`Modelos de notificação`,smart_plugs:`Tomadas inteligentes`,printers:`Impressoras`,filaments:`Filamentos`,maintenance_types:`Tipos de manutenção`,archives:`Arquivos`,projects:`Projetos`,pending_uploads:`Uploads pendentes`,external_links:`Links externos`,api_keys:`Chaves API`}},tags:{title:`Etiquetas`,addTag:`Adicionar Tag`,editTag:`Editar Tag`,deleteTag:`Excluir Tag`,tagName:`Nome da Tag`,tagColor:`Cor da Tag`,noTags:`Nenhuma tag`,deleteConfirm:`Tem certeza de que deseja excluir esta tag?`,manageTags:`Gerenciar Tags`},uploadModal:{title:`Upload Arquivos 3MF`,dragDrop:`Arraste e solte arquivos .3mf aqui`,or:`ou`,browseFiles:`Procurar Arquivos`,extractionInfo:`O modelo da impressora será extraído automaticamente dos metadados do arquivo 3MF.`,uploaded:`enviado`,failed:`falhou`,uploading:`Enviando...`,upload:`Enviar`,uploadFailed:`Falha no envio`},editArchive:{title:`Editar Arquivo`,name:`Nome`,namePlaceholder:`Nome da impressão`,printer:`Impressora`,noPrinter:`Nenhuma impressora`,project:`Projeto`,noProject:`Nenhum projeto`,itemsPrinted:`Itens Impressos`,itemsPrintedHelp:`Número de itens produzidos neste trabalho de impressão`,notes:`Notas`,notesPlaceholder:`Adicione notas sobre esta impressão...`,externalLink:`Link Externo`,externalLinkPlaceholder:`https://printables.com/model/...`,externalLinkHelp:`Link para Printables, Thingiverse ou outra fonte`,tags:`Etiquetas`,tagsPlaceholder:`Adicionar tags...`,addMoreTags:`Adicionar mais tags...`,matchingTags:`Correspondendo "{{query}}"`,existingTags:`Tags existentes`,clickToAdd:`(clique para adicionar)`,status:`Status`,failureReason:`Motivo da Falha`,selectReason:`Selecione o motivo...`,photos:`Fotos do Resultado da Impressão`,photosHelp:`Clique em + para adicionar fotos do seu resultado impresso`,printResult:`Resultado da Impressão`,saving:`Salvando...`,failureReasons:{adhesionFailure:`Falha de adesão`,spaghettiDetached:`Spaghetti / Destacado`,layerShift:`Deslocamento de camada`,cloggedNozzle:`Bico entupido`,filamentRunout:`Fim do filamento`,warping:`Empenamento`,stringing:`Fios`,underExtrusion:`Subextrusão`,powerFailure:`Falha de energia`,userCancelled:`Cancelado pelo usuário`,other:`Outro`},statuses:{completed:`Concluído`,failed:`Falhou`,aborted:`Cancelado`,printing:`Imprimindo`}},kProfiles:{title:`Perfis K`,noPrintersConfigured:`Nenhuma impressora configurada`,addPrinterInSettings:`Adicione uma impressora nas Configurações para gerenciar K-profiles`,noActivePrinters:`Nenhuma impressora ativa`,enablePrinterConnection:`Ative a conexão da impressora para visualizar seus K-profiles`,loadingProfiles:`Carregando K-Profiles...`,printerOffline:`Impressora Offline`,printerOfflineDesc:`A impressora selecionada não está conectada. Ligue-a para visualizar os K-profiles.`,noMatchingProfiles:`Nenhum Perfil Correspondente`,noMatchingProfilesDesc:`Nenhum perfil corresponde aos seus critérios de pesquisa`,noKProfiles:`Nenhum K-Profile`,noKProfilesDesc:`Nenhum perfil de avanço de pressão encontrado para bico de {{diameter}}mm`,createFirstProfile:`Criar Primeiro Perfil`,printer:`Impressora`,nozzle:`Bico`,refresh:`Atualizar`,addProfile:`Adicionar Perfil`,export:`Exportar`,import:`Importar`,select:`Selecionar`,selectAll:`Selecionar Todos`,delete:`Excluir`,searchPlaceholder:`Pesquisar por nome ou filamento...`,allExtruders:`Todos os Extrusores`,leftOnly:`Apenas Esquerdo`,rightOnly:`Apenas Direito`,allFlow:`Todo Fluxo`,hfOnly:`Apenas HF`,sOnly:`Apenas S`,sortName:`Ordenar: Nome`,sortKValue:`Ordenar: Valor K`,sortFilament:`Ordenar: Filamento`,leftExtruder:`Extrusor Esquerdo`,rightExtruder:`Extrusor Direito`,modal:{addTitle:`Adicionar K-Profile`,editTitle:`Editar K-Profile`,profileName:`Nome do Perfil`,profileNamePlaceholder:`Meu Perfil PLA`,kValue:`Valor K`,kValuePlaceholder:`0.020`,kValueHelp:`Faixa típica: 0.01 - 0.06 para PLA, 0.02 - 0.10 para PETG`,filament:`Filamento`,selectFilament:`Selecionar filamento...`,noFilamentsHelp:`Nenhum filamento encontrado. Crie um K-profile no Bambu Studio primeiro.`,flowType:`Tipo de Fluxo`,highFlow:`Alto Fluxo`,standard:`Padrão`,nozzleSize:`Tamanho do Bico`,extruder:`Extrusor`,extruders:`Extrusores`,left:`Esquerdo`,right:`Direito`,notes:`Notas (armazenadas localmente)`,notesPlaceholder:`Adicione notas sobre este perfil...`,notesHelp:`As notas são salvas no Bambuddy, não na impressora`,syncing:`Sincronizando com a impressora...`,savingExtruder:`Salvando no extrusor {{current}}/{{total}}...`,pleaseWait:`Por favor, aguarde`},deleteConfirm:{title:`Excluir Perfil`,cannotUndo:`Isso não pode ser desfeito`,message:`Tem certeza de que deseja excluir "{{name}}" da impressora?`},bulkDelete:{title:`Excluir Perfis`,cannotUndo:`Isso não pode ser desfeito`,message:`Tem certeza de que deseja excluir {{count}} perfis selecionados da impressora?`},toast:{profileSaved:`K-profile salvo`,profilesSaved:`K-profile salvo em {{count}} extrusores`,selectAtLeastOneExtruder:`Por favor, selecione pelo menos um extrusor`,profileDeleted:`K-profile excluído`,profilesDeleted:`{{count}} perfis excluídos`,exportedProfiles:`{{count}} perfis exportados`,importedProfiles:`{{count}} de {{total}} perfis importados`,noProfilesToExport:`Nenhum perfil para exportar`,invalidFileFormat:`Formato de arquivo inválido`,failedToParseImport:`Falha ao analisar o arquivo de importação`,failedToSaveBatch:`Falha ao salvar K-profiles`,noteSaved:`Nota salva`,failedToSaveNote:`Falha ao salvar nota`},permission:{noRead:`Você não tem permissão para atualizar perfis`,noCreate:`Você não tem permissão para adicionar perfis`,noUpdate:`Você não tem permissão para atualizar K-profiles`,noDelete:`Você não tem permissão para excluir K-profiles`,noExport:`Você não tem permissão para exportar perfis`,noImport:`Você não tem permissão para importar perfis`}},virtualPrinter:{title:`Impressora Virtual`,running:`Em execução`,stopped:`Parada`,description:{default:`Ative uma impressora virtual que aparece no Bambu Studio e no OrcaSlicer. Os arquivos enviados para esta impressora serão arquivados diretamente sem impressão.`,proxy:`Ative um proxy que retransmite o tráfego do slicer para uma impressora real, permitindo impressão remota em qualquer rede.`},enable:{title:`Ativar Impressora Virtual`,visibleInSlicer:`Visível como "Bambuddy" na descoberta do slicer`,proxyingTo:`Proxy para {{name}}`,notActive:`Não ativo`},model:{title:`Modelo da Impressora`,description:`Selecione qual modelo de impressora emular.`,restartWarning:`Alterar o modelo reiniciará a impressora virtual`},accessCode:{title:`Código de acesso`,isSet:`O código de acesso está definido`,notSet:`Nenhum código de acesso definido — necessário para ativar.`,placeholder:`Digite um código de 8 caracteres`,placeholderChange:`Digite um novo código para alterar`,hint:`Deve ter exatamente 8 caracteres. Usado pelos slicers para autenticação.`,charCount:`({{count}}/8)`,inheritedFromTarget:`Herdado da impressora alvo`,derivedFromTargetHint:`Usa o código de acesso da impressora alvo. A ponte encaminha a autenticação do slicer para a impressora real, então os códigos precisam corresponder — edite o código nas configurações da impressora para alterá-lo.`,reveal:`Mostrar código de acesso`,hide:`Ocultar código de acesso`},targetPrinter:{title:`Impressora Alvo`,configured:`Proxy alvo configurado`,notConfigured:`Nenhuma impressora alvo selecionada - necessário para o modo proxy`,placeholder:`Selecione uma impressora...`,hint:`Selecione a impressora para a qual o tráfego do slicer será enviado. A impressora deve estar no modo LAN.`,noPrinters:`Nenhuma impressora configurada. Adicione uma impressora primeiro para usar o modo proxy.`},remoteInterface:{title:`Substituição da Interface de Rede`,configured:`Substituição da interface ativa`,optional:`Opcional - use se o IP detectado automaticamente estiver errado (por exemplo, várias NICs, Docker, VPN)`,placeholder:`Detecção automática (padrão)...`,hint:`Substitua o endereço IP anunciado via SSDP e usado no certificado TLS. Útil quando o Bambuddy possui várias interfaces de rede.`},mode:{title:`Modo`,archive:`Arquivar`,archiveDesc:`Arquivar arquivos imediatamente`,review:`Revisar`,reviewDesc:`Revisar antes de arquivar`,queue:`Fila`,queueDesc:`Arquivar e adicionar à fila`,proxy:`Proxy`,proxyDesc:`Retransmitir para impressora real`},autoDispatch:{title:`Envio automático`,description:`Iniciar impressões automaticamente quando adicionadas à fila. Quando desativado, as impressões aguardam envio manual.`},queueForceColorMatch:{title:`Forçar correspondência de cor`,description:`Recusa enviar para uma impressora que não tenha exatamente o tipo e cor de filamento carregados. Desativado por padrão — sem isto, a fila usa apenas correspondência por modelo e pode escolher uma impressora com a cor errada carregada.`},gcodeInjection:{title:`Injeção de G-code`,description:`Aplica os trechos de G-code configurados por modelo nas Configurações aos trabalhos deste VP. Desativado por padrão.`},tailscaleDisabled:{title:`Integração Tailscale`,description:`Ative para marcar este VP como exposto via Tailscale. Mostra o endereço Tailscale do host para você saber qual IP colar no fatiador. A etapa de importação CA é inalterada — este toggle não afeta certificados.`},setupRequired:{title:`Configuração Necessária`,description:`O recurso de impressora virtual requer configuração adicional do sistema antes de funcionar. Isso inclui encaminhamento de portas, regras de firewall e configurações específicas da plataforma.`,readGuide:`Leia o guia de configuração antes de ativar`},howItWorks:{title:`Como funciona`,step1:`Complete o guia de configuração para sua plataforma`,step2:`Ative a impressora virtual e defina um código de acesso`,step3:`No Bambu Studio ou OrcaSlicer, vá para "Adicionar Impressora"`},status:{title:`Detalhes do Status`,printerName:`Nome da Impressora`,model:`Modelo`,serialNumber:`Número de Série`,mode:`Modo`,pendingFiles:`Arquivos Pendentes`,targetPrinter:`Impressora Alvo`,ftpPort:`Porta FTP`,mqttPort:`Porta MQTT`,ftpConnections:`Conexões FTP`,mqttConnections:`Conexões MQTT`},toast:{updated:`Configurações da impressora virtual atualizadas`,failedToUpdate:`Falha ao atualizar as configurações`,copyFailed:`Falha ao copiar — selecione o texto manualmente`,accessCodeRequired:`Defina um código de acesso primeiro`,targetPrinterRequired:`Selecione uma impressora alvo primeiro`,bindIpRequired:`Defina um IP de ligação primeiro`,accessCodeEmpty:`O código de acesso não pode estar vazio`,accessCodeLength:`O código de acesso deve ter exatamente 8 caracteres`,targetCodeChangedRebind:`O código de acesso agora corresponde à nova impressora alvo. Adicione este dispositivo novamente no seu slicer para usar o novo código.`,created:`Impressora virtual criada`,failedToCreate:`Falha ao criar impressora virtual`,deleted:`Impressora virtual excluída`,failedToDelete:`Falha ao excluir impressora virtual`},list:{title:`Impressoras Virtuais`,add:`Adicionar`,addFirst:`Adicionar Impressora Virtual`,empty:`Nenhuma impressora virtual configurada. Adicione uma para começar.`},bindIp:{title:`Interface de Rede`,placeholder:`Selecionar interface...`,hint:`Interface de rede para esta impressora virtual. Deve ser única por impressora.`},proxy:{accessCodeHint:`No modo proxy, use o código de acesso da impressora alvo no slicer. A conexão é encaminhada de forma transparente para a impressora real.`},addDialog:{title:`Adicionar Impressora Virtual`,name:`Nome`,hint:`Você pode configurar o código de acesso, impressora alvo e outras configurações após a criação.`,create:`Criar`},deleteConfirm:{title:`Excluir Impressora Virtual`,message:`Tem certeza que deseja excluir "{{name}}"? Isso irá parar todos os serviços desta impressora.`},archiveNameSource:{title:`Origem do nome do arquivo`,description:`Escolha como os novos arquivos são nomeados quando chegam pela impressora virtual. "Metadados" usa o título embutido pelo slicer no 3MF (padrão). "Nome do arquivo" usa o nome que o Bambu Studio enviou via FTP. Nota: o Bambu Studio sobrescreve o nome digitado no diálogo "enviar para impressora" com o campo Título do 3MF quando presente, portanto ambos os modos costumam produzir a mesma string.`,metadata:`Metadados`,filename:`Nome do arquivo`},caCert:{title:`Certificado do slicer`,description:`As impressoras virtuais usam um certificado TLS assinado pela CA do Bambuddy. Importe este certificado CA para o armazenamento de confiança do seu slicer uma única vez para que ele aceite a conexão — sem precisar copiá-lo pela linha de comando.`,copy:`Copiar`,copied:`Copiado`,download:`Baixar`,fingerprint:`SHA-256`}},modelViewer:{openInSlicer:`Abrir no Slicer`,tabs:{model:`Modelo 3D`,gcode:`Pré-visualização G-code`},notAvailable:`Não disponível`,notSliced:`Não fatiado`,plates:`Placas`,allPlates:`Todas as Placas`,plateNumber:`Placa {{number}}`,plateCount:`{{count}} placa`,plateCount_other:`{{count}} placas`,objectCount:`{{count}} objeto`,objectCount_other:`{{count}} objetos`,filamentCount:`{{count}} filamento`,filamentCount_other:`{{count}} filamentos`,eta:`ETA {{minutes}} min`,noPreview:`Pré-visualização não disponível para este arquivo`,pagination:{pageOf:`Página {{current}} de {{total}}`,prev:`Anterior`,next:`Próximo`},errors:{failedToLoad:`Falha ao carregar o arquivo`,noMeshes:`Nenhuma malha encontrada no arquivo 3MF`,unsupportedFormat:`Formato de arquivo não suportado`}},maintenanceDescriptions:{lubricateCarbonRods:`Aplique lubrificante nos eixos de carbono para um movimento suave`,lubricateRails:`Aplique lubrificante nos trilhos lineares para um movimento suave`,cleanNozzle:`Limpe o hotend e o bico para evitar entupimentos`,checkBelts:`Verifique a tensão das correias para impressões precisas`,cleanBuildPlate:`Limpe a placa de construção para melhor adesão`,checkExtruder:`Verifique as engrenagens do extrusor quanto ao desgaste`,checkCooling:`Verifique se os ventiladores de resfriamento estão funcionando corretamente`,generalInspection:`Inspeção geral da impressora`,cleanCarbonRods:`Limpe os eixos de carbono para reduzir o atrito`,lubricateSteelRods:`Aplique lubrificante nas barras de aço para um movimento suave`,cleanSteelRods:`Limpe as barras de aço para reduzir o atrito`,cleanLinearRails:`Limpe os trilhos lineares para remover poeira e detritos`,checkPtfeTube:`Verifique o tubo PTFE quanto ao desgaste ou danos`,replaceHepaFilter:`Substitua o filtro HEPA para qualidade do ar`,replaceCarbonFilter:`Substitua o filtro de carbono ativado`,lubricateLeftNozzleRail:`Lubrifique o trilho do bico esquerdo (série H2)`},smartPlugs:{offline:`Offline`,admin:`Administrador`,openPlugAdminPage:`Abrir o painel de administração da tomada inteligente`,deleteSmartPlug:`Excluir Tomada Inteligente`,turnOnSmartPlug:`Ligar Tomada Inteligente`,turnOffSmartPlug:`Desligar Tomada Inteligente`,turnOn:`Ligar`,turnOff:`Desligar`,addSmartPlug:{scanningNetwork:`Procurando na rede...`,chooseEntity:`Escolha uma entidade...`,connectionFailed:`Falha na conexão`,searchEntities:`Pesquisar entidades...`,searchPowerSensors:`Pesquisar sensores de energia...`,searchEnergySensors:`Pesquisar sensores de energia...`,placeholders:{plugName:`Tomada da Sala`,mqttStateOnValue:`ON, true, 1`,mqttSameAsPower:`Mesmo que o tópico de energia, ou diferente`}},linkedTo:`Vinculado a:`,monitorOnly:`Apenas monitoramento`,alerts:`Alertas`,scheduleOn:`Ligar {{time}}`,scheduleOff:`Desligar {{time}}`,on:`Ligado`,off:`Desligado`,power:`Potência`,kwhToday:`kWh Hoje`,settings:`Configurações`,automationSettings:`Configurações de automação`,showInSwitchbar:`Mostrar na barra de interruptores`,quickAccessSidebar:`Acesso rápido pela barra lateral`,enabled:`Ativado`,enableAutomation:`Ativar automação para este plugue`,autoOn:`Auto Ligar`,autoOnDescription:`Ligar quando a impressão iniciar`,autoOff:`Auto Desligar`,autoOffDescription:`Desligar quando a impressão terminar (única vez)`,autoOffPersistent:`Manter ativado`,autoOffPersistentDescription:`Permanecer ativado entre impressões em vez de única vez`,controlsPrinterPower:`Alimenta a impressora`,controlsPrinterPowerDescription:`Desative se esta tomada alimenta apenas um acessório (ventoinha do filtro, luzes). Caso contrário, desligá-la marca a impressora como offline.`,autoOffAfterDrying:`Desligar Após Secagem`,autoOffAfterDryingDescription:`Desligar quando a secagem do AMS terminar`,delayAfterDryingMinutes:`Atraso após secagem (minutos)`,turnOffDelayMode:`Modo de atraso para desligar`,time:`Tempo`,temp:`Temp.`,delayMinutes:`Atraso (minutos)`,tempThreshold:`Limite de temperatura (°C)`,tempThresholdDescription:`Desliga quando o bico esfria abaixo desta temperatura`,edit:`Editar`,deleteConfirm:`Tem certeza que deseja excluir "{{name}}"? Esta ação não pode ser desfeita.`,turnOnConfirm:`Tem certeza que deseja ligar "{{name}}"?`,turnOffConfirm:`Tem certeza que deseja desligar "{{name}}"? Isso cortará a energia do dispositivo conectado.`,failedToTurn:`Falha ao {{action}} "{{name}}"`,unknown:`Desconhecido`,addTitle:`Adicionar plugue inteligente`,editTitle:`Editar plugue inteligente`,stopScanning:`Parar varredura`,discoverTasmota:`Descobrir dispositivos Tasmota`,foundDevices:`{{count}} dispositivo(s) encontrado(s) - clique para selecionar:`,noDevicesFound:`Nenhum dispositivo Tasmota encontrado na sua rede`,haNotConfigured:`Home Assistant não está configurado. Configure em`,haSettingsPath:`Configurações → Rede → Home Assistant`,selectEntity:`Selecionar entidade *`,ipAddress:`Endereço IP *`,nameLabel:`Nome *`,username:`Usuário`,password:`Senha`,authHint:`Deixe vazio se seu dispositivo Tasmota não requer autenticação`,linkToPrinter:`Vincular à impressora`,noPrinter:`Sem impressora (apenas controle manual)`,linkingDescription:`A vinculação permite ligar/desligar automaticamente ao iniciar/terminar impressão`,powerAlerts:`Alertas de potência`,alertAbove:`Alertar se acima (W)`,alertBelow:`Alertar se abaixo (W)`,alertDescription:`Receba notificações quando o consumo de energia ultrapassar estes limites. Deixe vazio para desativar essa direção.`,dailySchedule:`Programação diária`,turnOnAt:`Ligar às`,turnOffAt:`Desligar às`,scheduleDescription:`Ligar/desligar automaticamente o plugue nestes horários diariamente. Deixe vazio para pular essa ação.`,showOnPrinterCard:`Mostrar no cartão da impressora`,displayOnPrinterCard:`Exibir botão no cartão da impressora`,connectedResult:`Conectado!`,deviceLabel:`Dispositivo: {{name}} - `,stateLabel:`Estado: {{state}}`,test:`Testar`,delete:`Excluir`,save:`Salvar`,add:`Adicionar`,cancel:`Cancelar`,failedToStartScan:`Falha ao iniciar varredura`,nameRequired:`Nome é obrigatório`,entityRequired:`Entidade é obrigatória para plugues Home Assistant`,mqttTopicRequired:`Pelo menos um tópico MQTT deve ser configurado para potência, energia ou monitoramento de estado`,loadingEntities:`Carregando entidades...`,loading:`Carregando...`,failedToLoadEntities:`Falha ao carregar entidades: {{error}}`,noEntitiesMatching:`Nenhuma entidade encontrada correspondente a "{{search}}"`,noEntitiesAvailable:`Nenhuma entidade disponível`,searchingEntities:`Buscando todas as entidades ({{count}} encontradas)`,showingEntities:`Mostrando switch, light, input_boolean ({{count}} disponíveis)`,energyMonitoringOptional:`Monitoramento de energia (Opcional)`,energyMonitoringHint:`Pesquise e selecione sensores que fornecem dados de potência/energia.`,powerSensorW:`Sensor de potência (W)`,energyTodayKwh:`Energia hoje (kWh)`,totalEnergyKwh:`Energia total (kWh)`,noMatchingSensors:`Nenhum sensor correspondente`,none:`Nenhum`,mqttNotConfigured:`Broker MQTT não configurado. Defina o endereço do broker em`,mqttSettingsPath:`Configurações → Rede → Publicação MQTT`,mqttNotConfiguredSuffix:`(você não precisa ativar a publicação, apenas preencha os detalhes do broker).`,mqttMonitorOnlyDescription:`Plugues MQTT recebem dados de potência/energia via assinatura MQTT. O controle liga/desliga não está disponível - use seu broker MQTT ou sistema de automação residencial.`,powerMonitoring:`Monitoramento de potência`,energyMonitoring:`Monitoramento de energia`,stateMonitoring:`Monitoramento de estado`,optional:`opcional`,topic:`Tópico`,jsonPath:`Caminho JSON`,multiplier:`Multiplicador`,onValue:`Valor ON`,mqttPowerHint:`O caminho JSON extrai o valor do payload JSON (ex: "power_l1"). Deixe vazio se o tópico publica valores numéricos brutos.
+ON 값: "ON"을 의미하는 정확한 문자열. 자동 감지(ON, true, 1)를 위해 비워두세요.`,restControl:`제어`,restOnUrl:`켜기 URL`,restOffUrl:`끄기 URL`,restOnBody:`ON 요청 본문`,restOffBody:`OFF 요청 본문`,restMethod:`HTTP 방법`,restHeaders:`사용자 지정 헤더 (JSON)`,restStatusUrl:`상태 URL`,restStatusPath:`상태 JSON 경로`,restStatusOnValue:`ON 값`,restPowerUrl:`전력 URL`,restPowerPath:`전력 JSON 경로`,restPowerMultiplier:`전력 배수`,restEnergyUrl:`에너지 URL`,restEnergyPath:`에너지 JSON 경로 (오늘)`,restEnergyTotalPath:`에너지 JSON 경로 (누적값)`,restEnergyTotalMultiplier:`누적값 배율`,restEnergyTotalPathHint:`예: aenergy.total`,restEnergyTotalHint:`많은 플러그가 — Shelly는 모두 — 초기화되지 않는 누적 카운터만 보고합니다. 그 값은 위 항목이 아니라 여기에 입력하세요. 오늘 사용량으로 읽으면 자정에 초기화되지 않고, 어제와 총계는 계속 비어 있게 됩니다. Bambuddy가 누적값에서 오늘과 어제를 계산하며, 이를 위해 하루에서 이틀 치 측정값이 필요합니다. Shelly는 와트시로 보고하므로 배율은 0.001을 사용하세요.`,restEnergyMultiplier:`에너지 배수`,restUrlRequired:`REST 플러그에는 URL(ON 또는 OFF) 중 하나 이상이 필요합니다`,restHeadersHint:`예: {"Authorization": "Bearer your-token"}`,restBodyHint:`예: ON, {"state": "on"}`,restStatusHint:`현재 상태를 폴링할 URL`,restPathHint:`예: state 또는 data.power.status`,restPowerUrlHint:`전력 데이터의 별도 URL (비어 있으면 상태 URL 사용)`,restEnergyUrlHint:`에너지 데이터의 별도 URL (비어 있으면 상태 URL 사용)`,restEnergyHint:`각 값은 자체 URL을 사용하거나 상태 URL로 대체할 수 있습니다. 단위 변환에 배수를 사용하세요 (예: Wh→kWh에 0.001).`,testConnection:`연결 테스트`,connectionSuccess:`연결 성공`,noSwitchesInSwitchbar:`스위치바에 스위치 없음`,enableSwitchbarHint:`설정 > 스마트 플러그에서 "스위치바에 표시"를 활성화하세요`,autoOffAfterDrying:`건조 후 자동 끄기`,autoOffAfterDryingDescription:`AMS 건조가 완료되면 끄기`,delayAfterDryingMinutes:`건조 후 지연 (분)`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`이메일`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`SMTP 이메일 알림`,telegram:`Telegram 봇을 통한 알림`,discord:`Webhook을 통해 Discord 채널로 전송`,ntfy:`무료, 자체 호스팅 가능한 푸시 알림`,pushover:`간단하고 신뢰할 수 있는 푸시 알림`,callmebot:`CallMeBot을 통한 무료 WhatsApp 알림`,webhook:`모든 URL에 일반 HTTP POST`,homeassistant:`Home Assistant 대시보드의 지속적인 알림`,bark:`Bark를 통한 iOS 푸시 알림(셀프 호스팅 가능)`},lastSuccess:`마지막: {{date}}`,error:`오류`,printer:`프린터:`,allPrinters:`모든 프린터`,sendTestNotification:`테스트 알림 전송`,eventSettings:`이벤트 설정`,enabled:`활성화됨`,sendFromProvider:`이 제공자에서 알림 전송`,printEvents:`인쇄 이벤트`,printerStatus:`프린터 상태`,amsAlarms:`AMS 알람`,amsHtAlarms:`AMS-HT 알람`,printQueue:`인쇄 대기열`,start:`시작`,plateCheck:`플레이트 확인`,complete:`완료`,failed:`실패`,stopped:`중지됨`,progress:`진행률`,offline:`오프라인`,lowFilament:`필라멘트 부족`,maintenance:`유지 관리`,amsHumidity:`AMS 습도`,amsTemp:`AMS 온도`,amsHtHumidity:`AMS-HT 습도`,amsHtTemp:`AMS-HT 온도`,bedCooled:`베드 냉각됨`,firstLayer:`첫 번째 레이어`,quiet:`방해 금지`,digest:`요약 {{time}}`,printStarted:`인쇄 시작됨`,plateNotEmpty:`플레이트 비어 있지 않음`,plateNotEmptyDescription:`인쇄 전 개체 감지됨`,plateClearRequired:`플레이트 비움 확인 필요`,plateClearRequiredDescription:`인쇄 완료, 대기열이 플레이트 확인을 기다림`,plateClear:`플레이트 확인`,printCompleted:`인쇄 완료됨`,bedCooledLabel:`베드 냉각됨`,bedCooledDescription:`인쇄 후 베드가 임계값 이하로 냉각됨`,firstLayerCompleteLabel:`첫 번째 레이어 완료`,firstLayerCompleteDescription:`첫 번째 레이어 완료 시 스냅샷과 함께 알림`,missingSpoolAssignmentLabel:`스풀 할당 누락`,missingSpoolAssignmentDescription:`인쇄 시작 시 필요한 트레이에 할당된 스풀이 없을 때 알림`,printFailed:`인쇄 실패`,printStopped:`인쇄 중지됨`,progressMilestones:`진행률 이정표`,progressMilestonesDescription:`25%, 50%, 75%에서 알림`,printerOffline:`프린터 오프라인`,printerError:`프린터 오류`,aiFailureDetection:`AI 실패 감지`,aiFailureDetectionDescription:`Obico AI가 인쇄 실패 가능성을 감지하면 알림`,lowFilamentLabel:`필라멘트 부족`,maintenanceDue:`유지 관리 필요`,maintenanceDueDescription:`유지 관리가 필요할 때 알림`,amsHumidityHigh:`AMS 습도 높음`,amsHumidityHighDescription:`일반 AMS 습도가 임계값 초과`,amsTemperatureHigh:`AMS 온도 높음`,amsTemperatureHighDescription:`일반 AMS 온도가 임계값 초과`,amsHtHumidityHigh:`AMS-HT 습도 높음`,amsHtHumidityHighDescription:`AMS-HT 습도가 임계값 초과`,amsHtTemperatureHigh:`AMS-HT 온도 높음`,amsHtTemperatureHighDescription:`AMS-HT 온도가 임계값 초과`,inventoryAlerts:`재고 알림`,stockReorderAlert:`재주문 알림`,stockReorderAlertDescription:`SKU가 재주문 시점에 도달함`,stockBreakAlert:`재고 소진 알림`,stockBreakAlertDescription:`보충 전에 재고가 소진될 것임`,jobAdded:`작업 추가됨`,jobAddedDescription:`대기열에 작업 추가됨`,jobAssigned:`작업 할당됨`,jobAssignedDescription:`모델 기반 작업이 프린터에 할당됨`,jobStarted:`작업 시작됨`,jobStartedDescription:`대기열 작업 인쇄 시작됨`,jobWaiting:`작업 대기 중`,jobWaitingDescription:`필라멘트 또는 프린터를 기다리는 작업`,jobSkipped:`작업 건너뜀`,jobSkippedDescription:`작업 건너뜀 (이전 실패)`,jobFailed:`작업 실패`,jobFailedDescription:`작업 시작 실패`,queueComplete:`대기열 완료`,queueCompleteDescription:`모든 대기열 작업 완료`,quietHours:`방해 금지 시간`,noNotificationsDuring:`이 시간 동안 알림 없음`,editProviderToChangeQuietHours:`방해 금지 시간을 변경하려면 제공자를 편집하세요`,dailyDigest:`일일 요약`,batchNotifications:`알림을 하나의 일일 요약으로 묶기`,sendAt:`{{time}}에 전송`,editProviderToChangeDigestTime:`요약 시간을 변경하려면 제공자를 편집하세요`,edit:`편집`,deleteProvider:`알림 제공자 삭제`,deleteConfirm:`"{{name}}"을(를) 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.`,delete:`삭제`,addTitle:`알림 제공자 추가`,editTitle:`알림 제공자 편집`,nameLabel:`이름 *`,namePlaceholder:`내 알림`,providerTypeLabel:`제공자 유형 *`,configuration:`구성`,testConfiguration:`구성 테스트`,printerFilter:`프린터 필터`,onlyFromPrinter:`이 프린터의 이벤트에 대한 알림만 전송`,quietHoursDnd:`방해 금지 시간`,quietStart:`시작`,quietEnd:`종료`,dailyDigestLabel:`일일 요약`,sendDigestAt:`요약 전송 시각`,digestCollected:`이벤트가 수집되어 이 시간에 하나의 요약으로 전송됩니다`,notificationEvents:`알림 이벤트`,progressPercent:`(25%, 50%, 75%)`,bedCooledAfterPrint:`(인쇄 완료 후)`,eventPriority:{sectionTitle:`ntfy 우선순위`,helpNtfy:`각 활성화된 이벤트에 대한 우선순위를 선택하세요. ntfy는 이를 사용하여 알림을 에스컬레이션합니다(소리, 가시성, 푸시 동작). 여기서 설정되지 않은 수준은 ntfy 서버 기본값을 사용합니다.`,min:`최소`,low:`낮음`,default:`기본값`,high:`높음`,urgent:`긴급`},cancel:`취소`,save:`저장`,add:`추가`,nameRequired:`이름이 필요합니다`,fieldRequired:`{{field}}이(가) 필요합니다`,haDataInvalid:`Data 필드는 유효한 JSON 객체여야 합니다(예: {"priority": "high", "ttl": 0})`,phoneNumber:`전화번호`,apiKey:`API 키`,serverUrl:`서버 URL`,topic:`토픽`,authToken:`인증 토큰`,userKey:`사용자 키`,appToken:`앱 토큰`,priority:`우선순위`,pushoverRetry:`긴급 재알림 (초)`,pushoverExpire:`긴급 만료 (초)`,botToken:`봇 토큰`,chatId:`채팅 ID`,telegramThreadId:`포럼 주제 ID`,telegramThreadIdHelp:`선택 사항. 포럼 그룹의 특정 주제로 전송합니다. 주제 링크의 마지막 숫자입니다 (t.me/c/.../25). 비워 두면 General 주제로 전송됩니다.`,telegramThreadIdInvalid:`포럼 주제 ID는 숫자여야 합니다.`,smtpServer:`SMTP 서버`,smtpPort:`SMTP 포트`,security:`보안`,authentication:`인증`,username:`사용자 이름`,password:`비밀번호`,fromEmail:`발신 이메일`,toEmail:`수신 이메일`,webhookUrl:`Webhook URL`,payloadFormat:`페이로드 형식`,authorization:`인증`,titleFieldName:`제목 필드 이름`,messageFieldName:`메시지 필드 이름`,editTemplate:`템플릿 편집: {{name}}`,titleLabel:`제목`,bodyLabel:`본문`,titlePlaceholder:`알림 제목...`,bodyPlaceholder:`알림 본문...`,availableVariables:`사용 가능한 변수`,clickToInsert:`클릭하여 본문의 커서 위치에 삽입`,livePreview:`실시간 미리보기`,hide:`숨기기`,show:`표시`,loadingPreview:`미리보기 불러오는 중...`,enterTemplateContent:`미리보기를 보려면 템플릿 내용을 입력하세요`,titlePreview:`제목:`,bodyPreview:`본문:`,resetToDefault:`기본값으로 초기화`,titleRequired:`제목이 필요합니다`,bodyRequired:`본문이 필요합니다`,notificationLog:`알림 로그`,showFailedOnly:`실패만`,last24Hours:`최근 24시간`,last7Days:`최근 7일`,last30Days:`최근 30일`,last90Days:`최근 90일`,justNow:`방금`,noFailedNotifications:`실패한 알림 없음`,noNotificationsLogged:`기록된 알림 없음`,unknownProvider:`알 수 없는 제공자`,logTitle:`제목`,logMessage:`메시지`,logError:`오류`,logProvider:`제공자: {{type}}`,logTime:`시간: {{time}}`,refresh:`새로고침`,clearOld:`오래된 것 삭제`,statsSummary:`최근 {{days}}일:`,statsNotifications:`알림`,statsSent:`{{count}}개 전송됨`,statsFailed:`{{count}}개 실패`,eventTypes:{print_start:`인쇄 시작됨`,print_complete:`인쇄 완료`,print_failed:`인쇄 실패`,print_stopped:`인쇄 중지됨`,print_progress:`진행률`,printer_offline:`프린터 오프라인`,printer_error:`프린터 오류`,filament_low:`필라멘트 부족`,maintenance_due:`유지 관리 필요`,test:`테스트`},userEmail:{title:`알림`,emailNotifications:`이메일 알림`,emailNotificationsDesc:`내 인쇄 작업에 대한 이메일 알림을 받습니다. 이메일은 고급 인증에서 구성된 시스템 SMTP 설정을 사용하여 전송됩니다.`,sendingTo:`알림이 전송될 주소`,noEmailWarning:`계정에 이메일 주소가 없습니다. 관리자에게 연락하여 추가하세요.`,printJobNotifications:`인쇄 작업 알림`,printJobNotificationsDesc:`내가 제출한 인쇄 작업에 대해 이메일 알림을 트리거할 이벤트를 선택하세요.`,printJobStarts:`인쇄 작업 시작`,printJobStartsDesc:`인쇄 작업이 시작될 때 알림 받기.`,printJobFinishes:`인쇄 작업 완료`,printJobFinishesDesc:`인쇄 작업이 성공적으로 완료될 때 알림 받기.`,printErrors:`인쇄 오류`,printErrorsDesc:`인쇄 작업이 실패하거나 오류가 발생할 때 알림 받기.`,printJobStops:`인쇄 작업 중지`,printJobStopsDesc:`인쇄 작업이 취소되거나 중지될 때 알림 받기.`,saveSuccess:`알림 환경 설정이 저장되었습니다.`,saveError:`알림 환경 설정 저장 실패.`}},richTextEditor:{bold:`굵게`,italic:`기울임`,underline:`밑줄`,bulletList:`글머리 기호 목록`,numberedList:`번호 목록`,alignLeft:`왼쪽 정렬`,alignCenter:`가운데 정렬`,alignRight:`오른쪽 정렬`,addLink:`링크 추가`,removeLink:`링크 제거`},externalLinks:{title:`사이드바 링크`,sidebarLayout:`사이드바`,sidebarLayoutDescription:`기본 제공 페이지를 표시하거나 숨기고, 외부 링크를 추가하고, 항목을 드래그하여 사이드바 탐색 순서를 변경하세요.`,systemPages:`Bambuddy 페이지`,externalLinks:`외부 링크`,visibleInSidebar:`사이드바에 표시`,hiddenFromSidebar:`사이드바에서 숨김`,requiredInSidebar:`사이드바에 필수`,hidePage:`페이지 숨기기`,showPage:`페이지 표시`,settingsCannotBeHidden:`설정은 숨길 수 없습니다`,noLinksConfigured:`구성된 외부 링크 없음`,deleteLink:`링크 삭제`,removeCustomIcon:`사용자 지정 아이콘 제거`,openInNewTab:`새 탭에서 열기`,placeholders:{linkName:`내 링크`}},keyboardShortcuts:{title:`키보드 단축키`,navigation:`탐색`,archivesSection:`아카이브`,kProfilesSection:`K-프로필`,generalSection:`일반`,shortcuts:{goToPrinters:`프린터로 이동`,goToArchives:`아카이브로 이동`,goToQueue:`대기열로 이동`,goToStats:`통계로 이동`,goToProfiles:`클라우드 프로필로 이동`,goToSettings:`설정으로 이동`,focusSearch:`검색 포커스`,openUploadModal:`업로드 모달 열기`,clearSelection:`선택 초기화 / 입력 포커스 해제`,contextMenu:`카드 컨텍스트 메뉴`,refreshProfiles:`프로필 새로고침`,newProfile:`새 프로필`,exitSelectionMode:`선택 모드 종료`,showHelp:`이 도움말 표시`},footer:`Esc를 누르거나 외부를 클릭하여 닫기`},notificationLog:{title:`알림 로그`,events:{printStarted:`인쇄 시작됨`,printComplete:`인쇄 완료`,printFailed:`인쇄 실패`,printStopped:`인쇄 중지됨`,progress:`진행률`,printerOffline:`프린터 오프라인`,printerError:`프린터 오류`,lowFilament:`필라멘트 부족`,maintenanceDue:`유지 관리 필요`,test:`테스트`},timeAgo:{justNow:`방금`,minutesAgo:`{{minutes}}분 전`,hoursAgo:`{{hours}}시간 전`}},restoreBackup:{title:`백업 복원`,restoring:`복원 중...`,restoreComplete:`복원 완료`,restoreFailed:`복원 실패`,importSettings:`백업 파일에서 설정 가져오기`,pleaseWait:`데이터가 복원되는 동안 기다려 주세요`,clickToSelect:`백업 파일 클릭하여 선택 (.json 또는 .zip)`,howDuplicateHandling:`중복 처리 방법:`,categories:{printers:`프린터`,smartPlugs:`스마트 플러그`,notificationProviders:`알림 제공자`,filaments:`필라멘트`,archives:`아카이브`,pendingUploads:`대기 중인 업로드`,settingsTemplates:`설정 및 템플릿`},matchingInfo:{printers:`일련번호로 일치`,smartPlugs:`IP 주소로 일치`,notificationProviders:`이름으로 일치`,filaments:`이름 + 유형 + 브랜드로 일치`,archives:`콘텐츠 해시로 일치`,pendingUploads:`파일 이름으로 일치`,settingsTemplates:`항상 덮어씀`},replaceExisting:`기존 데이터 교체`,keepExisting:`기존 데이터 유지`,replaceDescription:`백업 데이터로 이미 존재하는 항목 덮어쓰기`,keepDescription:`아직 존재하지 않는 항목만 복원`,caution:`주의:`,cautionText:`덮어쓰기는 현재 구성을 백업 데이터로 교체합니다. 보안상 프린터 액세스 코드는 절대 덮어쓰지 않습니다.`,itemsRestored:`복원된 항목`,itemsSkipped:`건너뛴 항목`,restored:`복원됨`,skipped:`건너뜀 (이미 존재)`,filesLabel:`파일 (3MF, 썸네일 등)`,newApiKeysGenerated:`새 API 키 생성됨`,newApiKeysWarning:`이 키는 한 번만 표시됩니다. 지금 복사하세요!`,processingBackup:`백업 파일 처리 중...`,noDataFound:`백업 파일에서 복원할 데이터를 찾을 수 없습니다.`,failedToRestore:`백업 복원 실패. 파일 형식을 확인하세요.`},backupExport:{title:`백업 내보내기`,selectData:`포함할 데이터 선택`,selectAll:`모두 선택`,selectNone:`선택 없음`,categoryDescriptions:{settings:`언어, 테마, 업데이트 환경 설정`,notifications:`ntfy, Pushover, Discord 등`,templates:`사용자 지정 메시지 템플릿`,smartPlugs:`Tasmota 플러그 구성`,externalLinks:`외부 서비스에 대한 사이드바 링크`,printers:`프린터 정보 (액세스 코드 제외)`,plateDetection:`빈 플레이트 기준 이미지`,filaments:`필라멘트 유형 및 비용`,maintenance:`사용자 지정 유지 관리 일정`,archives:`모든 인쇄 데이터 + 파일 (3MF, 썸네일, 사진)`,projects:`프로젝트, BOM 항목 및 첨부 파일`,pendingUploads:`검토 대기 중인 가상 프린터 업로드`,apiKeys:`Webhook API 키 (가져오기 시 새 키 생성)`},requiresPrinters:`프린터 선택 필요`,zipFileWarning:`ZIP 파일이 생성됩니다.`,zipFileDescription:`모든 3MF 파일, 썸네일, 타임랩스 및 사진을 포함합니다. 시간이 걸리고 파일이 커질 수 있습니다.`,includeAccessCodes:`액세스 코드 포함`,includeAccessCodesDescription:`다른 기기로 전송하는 경우`,includeAccessCodesWarning:`액세스 코드가 평문으로 포함됩니다. 이 백업 파일을 안전하게 보관하세요!`,categoriesSelected:`{{selectedCount}}개 카테고리 선택됨`},pendingUploads:{placeholders:{notes:`이 인쇄에 대한 메모 추가...`},discardUpload:`업로드 삭제`,archiveAllUploads:`모든 업로드 아카이브`,discardAllUploads:`모든 업로드 삭제`,archive:`아카이브`,timeAgo:{justNow:`방금`,minutesAgo:`{{minutes}}분 전`,hoursAgo:`{{hours}}시간 전`,daysAgo:`{{days}}일 전`}},apiBrowser:{placeholders:{requestBody:`JSON 요청 본문...`,searchEndpoints:`엔드포인트 검색...`}},configureAmsSlot:{title:`AMS 슬롯 구성`,slotConfigured:`슬롯 구성됨!`,configuringSlot:`슬롯 구성 중:`,slotLabel:`{{ams}} 슬롯 {{slot}}`,searchPresets:`프리셋 검색...`,colorPlaceholder:`색상 이름 또는 16진수 (예: brown, FF8800)`,clearCustomColor:`사용자 지정 색상 초기화`,noCloudPresets:`클라우드 프리셋 없음. Bambu 클라우드에 로그인하여 동기화하세요.`,noPresetsAvailable:`사용 가능한 프리셋 없음. Bambu 클라우드에 로그인하거나 로컬 프로필을 가져오세요.`,noMatchingPresets:`일치하는 프리셋을 찾을 수 없습니다.`,custom:`사용자 지정`,builtin:`기본 제공`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`설정이 프린터로 전송됨`,filamentProfile:`필라멘트 프로필`,kProfileLabel:`K 프로필 (압력 전진)`,filteringFor:`필터링 중: {{material}}`,noKProfile:`K 프로필 없음 (기본값 0.020 사용)`,noMatchingKProfiles:`일치하는 K 프로필을 찾을 수 없습니다. 기본값 K=0.020이 사용됩니다.`,otherKProfiles:`이 프린터의 다른 K 프로필`,selectFilamentFirst:`먼저 필라멘트 프로필을 선택하세요`,kFromCalibration:`K={{value}} (프린터 보정에서)`,customColorLabel:`사용자 지정 색상 (선택사항)`,presetColors:`{{name}} 색상:`,showLessColors:`색상 간략히 보기`,showMoreColors:`더 많은 색상 보기`,clear:`초기화`,hexLabel:`16진수: #{{hex}}`,resetting:`초기화 중...`,resetSlot:`슬롯 초기화`,cancel:`취소`,configuring:`구성 중...`,configureSlot:`슬롯 구성`},githubBackup:{title:`Git 백업`,history:`기록`,downloadBackup:`백업 다운로드`,restoreBackup:`백업 복원`,noBackupsYet:`아직 백업 없음`},emailSettings:{placeholders:{fromName:`Bambuddy`}},tagManagement:{searchTags:`태그 검색...`,renameTag:`태그 이름 바꾸기`,deleteTag:`태그 삭제`},notificationTemplates:{placeholders:{title:`알림 제목...`,body:`알림 본문...`}},batchTag:{placeholders:{newTag:`새 태그 입력...`}},photoGallery:{deletePhoto:`사진 삭제`},filamentHoverCard:{copySpoolUuid:`스풀 UUID 복사`},kProfilesView:{hasNote:`메모 있음`,copyProfile:`프로필 복사`},layout:{openMenu:`메뉴 열기`,noPermissionSystemInfo:`시스템 정보를 볼 권한이 없습니다`},dashboard:{dragToReorder:`드래그하여 순서 변경`,hideWidget:`위젯 숨기기`},notificationProviderCard:{deleteNotificationProvider:`알림 제공자 삭제`},fileManagerModal:{closeFileManager:`파일 관리자 닫기`,sortFiles:`파일 정렬`,goToParentFolder:`상위 폴더로 이동`,threeView:`3D 보기`},embeddedCameraViewer:{refreshStream:`스트림 새로고침`,close:`닫기`,zoomOut:`축소`,resetZoom:`배율 초기화`,zoomIn:`확대`,dragToResize:`드래그하여 크기 조정`},timelapseViewer:{skipBack5s:`5초 뒤로`,skipForward5s:`5초 앞으로`},notificationProviders:{descriptions:{email:`SMTP 이메일 알림`,telegram:`Telegram 봇을 통한 알림`,discord:`Webhook을 통해 Discord 채널로 전송`,ntfy:`무료, 자체 호스팅 가능한 푸시 알림`,pushover:`간단하고 신뢰할 수 있는 푸시 알림`,callmebot:`CallMeBot을 통한 무료 WhatsApp 알림`,webhook:`모든 URL에 일반 HTTP POST`}},logViewer:{searchPlaceholder:`메시지 또는 로거 이름 검색...`,noLogEntries:`로그 항목을 찾을 수 없음`},switchbarPopover:{noSwitchesInSwitchbar:`스위치바에 스위치 없음`},projectPageModal:{placeholders:{title:`제목`,designer:`디자이너`,license:`라이선스`,description:`설명 입력...`,profileTitle:`프로필 제목`,profileDescription:`프로필 설명...`}},SpoolmanSettings:{},time:{unknown:`-`,waiting:`대기 중`,justNow:`방금`,now:`지금`,minsAgo:`{{count}}분 전`,inMins:`{{count}}분 후`,hoursAgo:`{{count}}시간 전`,inHours:`{{count}}시간 후`,daysAgo:`{{count}}일 전`,inDays:`{{count}}일 후`},spoolbuddy:{nav:{dashboard:`대시보드`,ams:`AMS`,inventory:`재고`,writeTag:`태그 쓰기`,settings:`설정`},status:{nfcReady:`NFC 준비됨`,nfcOff:`NFC 꺼짐`,offline:`오프라인`,online:`온라인`,noPrinters:`프린터 없음`,deviceOffline:`장치 오프라인`,waitingConnection:`장치 연결 대기 중...`,systemReady:`시스템 준비됨`,status:`상태`},dashboard:{readyToScan:`스캔 준비됨`,idleMessage:`스풀을 저울에 올려 식별하세요`,nfcHint:`NFC 태그가 자동으로 읽힙니다`,device:`장치`,syncWeight:`무게 동기화`,weightSynced:`동기화됨!`,unknownTag:`알 수 없는 태그`,newTag:`새 태그 감지됨`,onScale:`저울 위`,linkSpool:`스풀에 연결`,linkTagTitle:`태그를 스풀에 연결`,linkTag:`태그 연결`,selectSpool:`이 태그를 연결할 스풀 선택:`,noUntagged:`태그 없는 스풀을 찾을 수 없음`,tagDetected:`태그 감지됨`,noTag:`태그 없음`,tagId:`태그`,grossWeight:`총 무게`,spoolSize:`스풀 크기`,close:`닫기`,currentSpool:`현재 스풀`,plateReady:`플레이트 준비됨: {{name}}`,plateReadyLabel:`초기화할 플레이트`,plateClearAction:`초기화`,plateClearedToast:`플레이트가 초기화됨으로 표시됨`,plateClearFailed:`플레이트를 초기화됨으로 표시할 수 없음`},modal:{spoolDetected:`스풀 감지됨`,assignToAms:`AMS에 할당`,syncWeight:`무게 동기화`,weightSynced:`동기화됨!`,syncing:`동기화 중...`,newTagDetected:`새 태그 감지됨`,addToInventory:`재고에 추가`,assignToAmsTitle:`AMS에 할당`,selectSlot:`슬롯 선택`,assign:`할당`,assigning:`할당 중...`,assignSuccess:`할당됨!`,assignPendingInsert:`할당됨. 스풀을 삽입하면 슬롯이 구성됩니다.`,assignError:`스풀 할당 실패. 다시 시도하세요.`,noPrinterSelected:`프린터 선택...`,noAmsDetected:`이 프린터에서 AMS가 감지되지 않음`,slot:`슬롯`},weight:{noReading:`읽기 없음`,stable:`안정됨`,measuring:`측정 중...`,tare:`영점 조정`,calibrate:`보정`},spool:{remaining:`남은 양`,material:`재료`,brand:`브랜드`,color:`색상`,coreWeight:`코어`,labelWeight:`라벨`,scaleWeight:`저울`,netWeight:`순 무게`,lastUsed:`마지막 사용`},ams:{noData:`AMS가 감지되지 않음`,connectAms:`필라멘트 슬롯을 보려면 AMS를 연결하세요`,noPrinter:`선택된 프린터 없음`,selectPrinter:`상단 표시줄에서 프린터를 선택하세요`,printerDisconnected:`프린터 연결 끊김`,humidity:`습도`,level:`레벨`,active:`활성`,slot:`슬롯`,empty:`비어 있음`},inventory:{search:`스풀 검색...`,empty:`재고에 스풀 없음`,noResults:`일치하는 스풀 없음`,spools:`스풀`,addSpool:`스풀 추가`},settings:{tabDevice:`장치`,tabDisplay:`화면`,tabScale:`저울`,tabUpdates:`업데이트`,nfcReader:`NFC 리더`,type:`유형`,connection:`연결`,notConnected:`N/A`,deviceInfo:`장치 정보`,hostname:`호스트`,uptime:`가동 시간`,systemConfig:`백엔드 및 인증`,backendUrl:`Bambuddy 백엔드 URL`,apiToken:`API 토큰`,apiTokenPlaceholder:`API 토큰 입력`,saveConfig:`구성 저장`,systemQueued:`구성 대기 중.`,nfcDiagnostic:`NFC 진단`,scaleDiagnostic:`저울 진단`,readTagDiagnostic:`태그 읽기 진단`,testNfc:`리더 테스트`,testScale:`정확도 테스트`,testReadTag:`태그 읽기`,systemFieldsRequired:`백엔드 URL이 필요합니다.`,brightness:`밝기`,saved:`저장됨`,noBacklight:`DSI 백라이트가 감지되지 않음. 밝기 제어는 DSI 디스플레이가 필요합니다.`,screenBlank:`화면 꺼짐 대기 시간`,screenBlankDesc:`비활성 후 화면이 꺼집니다. 터치하여 깨우세요.`,displayNote:`밝기는 소프트웨어 필터로 적용됩니다.`,scaleCalibration:`저울 보정`,currentWeight:`현재 무게`,tareOffset:`영점`,calFactor:`계수`,knownWeight:`알려진 무게`,calStep1:`저울에서 모든 물건을 제거하고 영점 설정을 누르세요.`,calStep2:`저울에 알려진 무게를 올리세요.`,setZero:`영점 설정`,calibrateNow:`보정`,calibrated:`보정됨`,tareSet:`영점 조정 명령 전송됨. 장치 대기 중...`,tareComplete:`영점 조정 완료!`,tareTimedOut:`영점 조정 시간 초과 — SpoolBuddy 데몬이 실행 중인가요?`,tareFailed:`영점 조정 명령 전송 실패`,zeroSet:`영점이 설정됨. 저울에 알려진 무게를 올리세요.`,calibrationDone:`보정 완료!`,calibrationFailed:`보정 실패`,lastCalibrated:`마지막 보정`,stable:`안정됨`,settling:`안정화 중...`,firmware:`펌웨어`,scale:`저울`,noDevice:`SpoolBuddy 장치를 찾을 수 없음`,daemonVersion:`데몬 버전`,currentVersion:`현재`,versionPending:`데몬 대기 중...`,checking:`확인 중...`,checkUpdates:`업데이트 확인`,updateAvailable:`업데이트 사용 가능`,updateInstructions:`SSH를 통해 업데이트: SpoolBuddy 설치 스크립트를 실행하여 업그레이드하세요.`,upToDate:`최신 버전`,includeBeta:`베타 버전 포함`},writeTag:{tabExisting:`기존 스풀`,tabNew:`새 스풀`,tabReplace:`태그 교체`,searchPlaceholder:`재료, 색상, 브랜드로 검색...`,noUntaggedSpools:`태그 없는 스풀 없음`,noTaggedSpools:`태그 있는 스풀 없음`,selectSpool:`스풀을 선택한 후 빈 NTAG를 리더에 올려놓으세요`,placeTag:`NTAG를 리더에 올려놓으세요`,tagReady:`태그 감지됨 — 쓰기 준비됨`,writeTag:`태그 쓰기`,replaceTag:`태그 교체`,writing:`태그 쓰는 중...`,waiting:`SpoolBuddy 대기 중...`,writeSuccess:`태그 성공적으로 쓰여짐!`,writeFailed:`쓰기 실패`,queueFailed:`쓰기 명령 대기 실패`,tryAgain:`다시 시도`,cancel:`취소`,replaceWarning:`이전 태그가 연결 해제됩니다. 새 태그가 교체합니다.`,deviceOffline:`SpoolBuddy가 오프라인입니다`,material:`재료`,colorName:`색상 이름`,color:`색상`,brand:`브랜드`,weight:`무게 (g)`,createSpool:`스풀 생성`,creating:`생성 중...`,spoolCreated:`스풀 생성됨! 쓰기 준비됨.`,createFailed:`스풀 생성 실패`,incompleteDataWarning:`불완전한 Spoolman 데이터로 태그 쓰여짐`},quickMenu:{printerPower:`프린터 전원`,systemControls:`시스템`,restartDaemon:`데몬 재시작`,restartBrowser:`브라우저 재시작`,reboot:`재부팅`,shutdown:`종료`,swipeToClose:`아래로 스와이프하여 닫기`,confirmTitle:`확인`,confirmShutdown:`SpoolBuddy를 종료하시겠습니까? 다시 켜려면 물리적 접근이 필요합니다.`,confirmReboot:`SpoolBuddy를 재부팅하시겠습니까?`,confirmRestartDaemon:`SpoolBuddy 데몬을 재시작하시겠습니까? NFC와 저울이 일시적으로 사용 불가능합니다.`,confirmRestartBrowser:`키오스크 브라우저를 재시작하시겠습니까? 화면이 잠시 꺼집니다.`,confirm:`확인`,confirmPlugOn:`{{name}}을(를) 켜시겠습니까?`,confirmPlugOff:`{{name}}을(를) 끄시겠습니까?`,turnOn:`켜기`,turnOff:`끄기`}},bugReport:{title:`버그 신고`,description:`설명`,descriptionPlaceholder:`무엇이 잘못되었나요? 문제를 설명해 주세요...`,email:`이메일 (선택사항)`,emailPlaceholder:`your@email.com`,emailPrivacy:`제공하면 이메일이 GitHub 이슈의 접힌 섹션에 포함되어 관리자가 후속 조치를 취할 수 있습니다.`,screenshot:`스크린샷`,uploadOrPaste:`이미지 업로드, 붙여넣기 또는 드래그`,dataCollectedSummary:`보고서에 포함되는 데이터는?`,dataIncluded:`포함됨:`,dataIncludedList:`앱 버전, OS, 아키텍처, Python 버전, 데이터베이스 통계(개수만), 프린터 모델, 노즐 개수, 펌웨어 버전, 연결 상태, 통합 상태(Spoolman, MQTT, HA), 비민감 설정, 네트워크 인터페이스 수, Docker 세부 정보, 의존성 버전.`,dataNeverIncluded:`절대 포함되지 않음:`,dataNeverIncludedList:`프린터 이름, 일련 번호, 액세스 코드, 비밀번호, IP 주소, 이메일 주소, API 키, 토큰, Webhook URL, 호스트 이름 또는 사용자 이름.`,submit:`제출`,startLogging:`디버그 로깅 시작`,stepEnableLogging:`디버그 로깅 활성화됨`,stepReproduce:`이제 문제를 재현하세요`,stepStopLogging:`중지 후 보고서 제출`,stopAndSubmit:`중지 후 제출`,maxDuration:`{{minutes}}분 후 자동 중지`,stoppingLogs:`로그 수집 및 제출 중...`,submitting:`버그 보고서 제출 중...`,submitSuccess:`버그 보고서가 성공적으로 제출되었습니다!`,submitFailed:`버그 보고서 제출 실패`,thankYou:`감사합니다!`,submitted:`버그 보고서가 제출되었습니다.`,viewIssue:`이슈 보기`,unexpectedError:`예상치 못한 오류가 발생했습니다`,submittingStepConnection:`프린터 연결 확인 실행 중`,submittingStepVirtualPrinters:`가상 프린터 설정 확인 실행 중`,submittingStepLogScan:`알려진 문제가 있는지 최근 로그 스캔 중`,submittingStepSubmit:`GitHub에 보고서 제출 중`,diagnosticChecking:`프린터 연결 확인 중...`,diagnosticHealthy:`연결 확인 통과 — 프린터에서 문제가 발견되지 않았습니다.`,diagnosticSummary:`{{total}}개 프린터 중 {{problems}}개에서 연결 문제가 있습니다`,diagnosticIntro:`하나 이상의 프린터에 연결 문제가 있어 현재 문제의 원인일 수 있습니다. 아래에서 프린터를 펼쳐 수정 방법을 확인하세요 — 해결하면 버그 보고서 없이 문제가 해결될 수 있습니다. 아래에서 보고서를 제출할 수도 있습니다.`,logHealthSummary:`로그에서 알려진 문제가 발견되었습니다`,logHealthIntro:`최근 로그가 알려진 문제와 일치합니다. 아래 수정 방법을 확인하세요 — 해결하면 버그 보고서 없이 문제가 해결될 수 있습니다. 아래에서 보고서를 제출할 수도 있습니다.`},failureDetection:{title:`AI 실패 감지`,description:`자체 호스팅 Obico ML API로 인쇄를 모니터링하고 감지된 실패에 자동으로 조치합니다.`,mlUrl:`Obico ML API URL`,mlUrlHint:`자체 호스팅 Obico ml_api 컨테이너의 기본 URL (예: http://192.168.1.10:3333).`,mlToken:`ML API 토큰 (선택 사항)`,mlTokenPlaceholder:`서버가 ML_API_TOKEN 없이 실행 중이면 비워 두세요`,mlTokenHint:`Obico ml_api 컨테이너의 ML_API_TOKEN 환경 변수와 일치해야 합니다. 컨테이너가 토큰 없이 실행 중이면 비워 두세요.`,test:`테스트`,testSuccess:`ML API에 도달 가능하며 정상입니다.`,testSuccessTokenUnknown:`ML API에 도달 가능하며 정상입니다. 토큰은 확인할 수 없었습니다.`,testFailed:`ML API에 도달할 수 없습니다.`,sensitivity:`민감도`,sensitivityLow:`낮음 (오탐 적음)`,sensitivityMedium:`중간 (균형)`,sensitivityHigh:`높음 (조기 감지, 오탐 많음)`,sensitivityHint:`경고 및 실패를 트리거하는 신뢰도 임계값을 조정합니다.`,action:`감지된 실패에 대한 조치`,actionNotify:`알림만`,actionPause:`인쇄 일시 중지`,actionPauseOff:`일시 중지 후 전원 끄기`,pollInterval:`폴링 간격 (초)`,pollIntervalHint:`인쇄 중 각 프린터를 확인하는 빈도. 최소 5초, 최대 120초.`,externalUrlMissing:`외부 URL이 설정되지 않았습니다.`,externalUrlHint:`ML API가 URL을 통해 카메라 스냅샷을 가져옵니다. ML API 컨테이너가 Bambuddy에 도달할 수 있도록 일반 설정에서 외부 URL을 설정하세요.`,perPrinterTitle:`모니터링되는 프린터`,perPrinterHint:`감지 서비스가 감시할 프린터를 선택하세요.`,monitorAll:`연결된 모든 프린터 모니터링`,statusTitle:`상태`,serviceRunning:`서비스 실행 중`,thresholds:`낮음 / 높음 임계값`,activePrinters:`활성 인쇄물`,noActivePrints:`현재 실행 중인 인쇄물 없음.`,historyTitle:`최근 감지`,noHistory:`아직 감지 없음.`},makerworld:{title:`MakerWorld`,description:`MakerWorld 모델 URL을 붙여넣어 Bambu Handy 앱을 떠나지 않고 Bambuddy에서 직접 가져오고 인쇄하세요.`,pasteUrlHeader:`MakerWorld에서 가져오기`,pasteUrlPlaceholder:`https://makerworld.com/en/models/… 또는 MakerWorld 링크 붙여넣기`,resolveButton:`확인`,signInRequiredTitle:`다운로드하려면 Bambu 클라우드 로그인 필요`,signInRequiredBody:`익명으로 모델 세부 정보를 탐색할 수 있지만 MakerWorld는 3MF 파일을 다운로드하려면 Bambu 클라우드 계정이 필요합니다.`,signInExpiredTitle:`Bambu 클라우드 로그인이 만료되었습니다`,signInExpiredBody:`Bambuddy에는 여전히 로그인되어 있지만 Bambu Lab이 저장된 토큰을 더 이상 허용하지 않아 다운로드가 실패합니다. Bambu 클라우드에 다시 로그인하세요.`,openCloudSettings:`클라우드 설정 열기`,untitledModel:`제목 없는 모델`,byCreator:`{{name}} 제작`,downloadsCount:`{{count}}회 다운로드`,licensePrefix:`라이선스`,alreadyImported:`이미 라이브러리에 있음`,openOnMakerworld:`MakerWorld에서 열기`,alreadyInLibrary:`이 모델이 이미 라이브러리에 있습니다 — 파일 관리자 → MakerWorld에서 찾으세요`,importSuccess:`{{filename}} 가져옴 — 파일 관리자 → MakerWorld에 저장됨`,platesHeader:`플레이트 ({{count}})`,plateDefaultName:`플레이트 {{n}}`,materialCount:`{{count}}개 필라멘트`,amsRequired:`AMS 필요`,slicedFor:`{{printer}}용으로 슬라이싱됨`,alsoCompatible:`호환 가능으로도 표시됨: {{printers}}`,importToLibrary:`저장`,sliceIn:`{{slicer}}에서 저장 및 슬라이싱`,disclaimer:`MakerWorld 통합은 커뮤니티가 문서화한 API 엔드포인트를 사용합니다. Bambuddy는 MakerWorld 또는 Bambu Lab과 제휴하거나 이들의 승인을 받지 않았습니다.`,lastImportSuccess:`라이브러리에 가져옴`,lastImportAlreadyInLibrary:`이미 라이브러리에 있음`,viewInLibrary:`파일 관리자에서 보기`,openInBambuStudio:`Bambu Studio에서 열기`,openInOrcaSlicer:`OrcaSlicer에서 열기`,importTo:`파일 관리자로 가져오기`,recentImportsHeader:`최근 가져오기`,phaseResolving:`확인 중`,phaseDownloading:`다운로드 중`,folderAuto:`MakerWorld (기본값)`,importAll:`모두 가져오기`,importAllProgress:`{{total}}개 중 {{current}}개 가져오는 중`,openGallery:`이미지 갤러리 열기`,galleryPrev:`이전 이미지`,galleryNext:`다음 이미지`,deleteImport:`라이브러리에서 제거`,importDeleting:`제거 중…`,importDeleted:`라이브러리에서 제거됨`,confirmDelete:`라이브러리에서 {{filename}}을(를) 제거하시겠습니까? 로컬 파일이 삭제되지만 MakerWorld에서 다시 가져올 수 있습니다.`,errors:{resolveFailed:`MakerWorld URL을 확인할 수 없습니다.`,downloadFailed:`다운로드 실패. 다시 시도하세요.`,deleteFailed:`라이브러리에서 파일을 제거할 수 없습니다.`}},gcodeViewer:{back:`뒤로`,backToArchives:`인쇄 아카이브로 돌아가기`,backToFiles:`파일 관리자로 돌아가기`},libraryTrash:{title:`휴지통`,headerButton:`휴지통`,headerTooltip:`휴지통으로 이동된 파일 보기`,backToFiles:`파일 관리자로 돌아가기`,subtitleAdmin:`삭제된 파일은 {{days}}일 동안 여기에 보관된 후 자동 삭제됩니다. 이 보기는 모든 사용자의 휴지통 파일을 표시합니다.`,subtitleUser:`삭제된 파일은 {{days}}일 동안 여기에 보관된 후 자동 삭제됩니다.`,loading:`휴지통 불러오는 중…`,loadError:`휴지통을 불러올 수 없습니다.`,empty:`휴지통이 비어 있습니다.`,summary:`{{count}}개 파일 · {{size}}`,emptyTrash:`휴지통 비우기`,restore:`복원`,purgeNow:`지금 삭제`,autoPurgeIn:`{{when}} 후 자동 삭제`,days:`일`,retentionLabel:`자동 삭제 기간`,selectAll:`모두 선택`,selectOne:`{{filename}} 선택`,selectionCount:`{{count}}개 선택됨`,bulkRestore:`선택 항목 복원`,bulkPurge:`선택 항목 삭제`,col:{filename:`파일`,folder:`폴더`,size:`크기`,deleted:`휴지통 이동일`,autoPurge:`자동 삭제일`,owner:`소유자`,actions:`작업`},confirm:{purgeTitle:`영구 삭제?`,purgeBody:`{{filename}}이(가) 디스크에서 삭제되며 복원할 수 없습니다.`,emptyTitle:`휴지통을 비우시겠습니까?`,emptyBody:`{{count}}개의 모든 파일이 디스크에서 삭제됩니다. 이 작업은 취소할 수 없습니다.`,bulkPurgeTitle:`선택한 파일을 영구 삭제하시겠습니까?`,bulkPurgeBody:`선택한 {{count}}개 파일이 디스크에서 삭제되며 복원할 수 없습니다.`,cta:`영구 삭제`},toast:{restored:`파일이 복원되었습니다.`,restoreFailed:`파일을 복원할 수 없습니다.`,purged:`파일이 영구 삭제되었습니다.`,purgeFailed:`파일을 삭제할 수 없습니다.`,emptied:`휴지통에서 {{count}}개 파일이 삭제되었습니다.`,emptyFailed:`휴지통을 비울 수 없습니다.`,retentionSaved:`자동 삭제가 {{days}}일로 설정되었습니다.`,retentionFailed:`보존 설정을 저장할 수 없습니다.`,bulkRestored:`{{count}}개 파일이 복원되었습니다.`,bulkPurged:`{{count}}개 파일이 삭제되었습니다.`}},libraryPurge:{title:`오래된 파일 삭제`,headerButton:`오래된 파일 삭제`,headerTooltip:`오래된 파일을 휴지통으로 일괄 이동`,description:`라이브러리에서 오래된 파일을 한 번에 정리합니다. 인쇄 기록이 있는 파일은 마지막 인쇄 날짜 기준으로, 한 번도 인쇄되지 않은 파일은 업로드 날짜 기준으로 계산됩니다.`,ageLabel:`다음보다 오래된 파일 이동`,days:`일`,includeNeverPrinted:`한 번도 인쇄되지 않은 파일 포함`,effectsTitle:`삭제 클릭 시 일어나는 일`,effect1:`일치하는 파일이 휴지통으로 이동됩니다 — 디스크에서 아직 삭제되지 않습니다.`,effect2:`보존 기간이 만료되기 전까지 언제든 휴지통에서 복원할 수 있습니다.`,effect3:`보존 기간 후 휴지통 청소기가 디스크에서 영구적으로 제거합니다.`,effect4:`외부(연결된) 폴더의 파일은 건너뜁니다 — Bambuddy는 자신이 소유하지 않은 바이트는 절대 삭제하지 않습니다.`,previewLoading:`일치하는 파일 수 확인 중…`,previewFailed:`삭제 미리보기를 불러올 수 없습니다.`,previewSummary:`{{count}}개 파일 · {{size}}이(가) 휴지통으로 이동됩니다`,andMore:`…및 {{count}}개 더`,warning:`휴지통 파일은 보존 기간이 만료될 때까지 저장 공간을 차지합니다. 즉시 디스크를 확보하려면 나중에 휴지통을 비우세요.`,confirmCta:`{{count}}개를 휴지통으로 이동`,purging:`휴지통으로 이동 중…`,toast:{success:`{{count}}개 파일을 휴지통으로 이동했습니다.`,failed:`파일을 삭제할 수 없습니다.`}},libraryAutoPurge:{enableLabel:`오래된 파일 자동 삭제`,enableDescription:`매일 한 번 관리자 삭제를 실행합니다. 파일이 먼저 휴지통으로 이동됩니다 — 즉시 삭제되지 않습니다.`,ageLabel:`다음보다 오래된 파일 자동 삭제`,ageDescription:`최소 7일, 최대 10년. 수동 삭제 버튼과 같은 날짜 규칙을 사용합니다.`,days:`일`,includeNeverPrinted:`한 번도 인쇄되지 않은 파일 포함`,saveFailed:`자동 삭제 설정을 저장할 수 없습니다.`},archivePurge:{headerButton:`오래된 것 삭제`,headerTooltip:`오래된 아카이브 일괄 삭제`,title:`오래된 아카이브 삭제`,description:`오래된 인쇄 기록을 정리합니다. 각 아카이브는 가장 최근 인쇄 완료 시점 기준으로 계산됩니다 — 아카이브를 다시 인쇄하면 날짜가 새로고침되므로 활성 작업은 절대 삭제되지 않습니다.`,ageLabel:`다음 기간 동안 인쇄되지 않은 아카이브 삭제`,days:`일`,effectsTitle:`삭제 클릭 시 일어나는 일`,effect1:`일치하는 각 아카이브가 데이터베이스에서 영구적으로 제거됩니다.`,effect2:`3MF, 썸네일, 타임랩스, 소스 3MF, F3D 디자인 파일 및 사진 폴더가 모두 디스크에서 삭제됩니다.`,effect3:`아카이브에 대한 휴지통이 없습니다 — 삭제는 즉각적이며 취소할 수 없습니다.`,effect4:`아카이브를 다시 인쇄하면 날짜 카운터가 초기화되므로 여전히 사용하는 아카이브는 안전합니다.`,previewLoading:`일치하는 아카이브 수 확인 중…`,previewFailed:`삭제 미리보기를 불러올 수 없습니다.`,previewSummary:`{{count}}개 아카이브 · {{size}}이(가) 삭제됩니다`,andMore:`…및 {{count}}개 더`,warning:`영구적입니다. 계속하기 전에 보관하고 싶은 것을 다운로드하거나 즐겨찾기에 추가하세요.`,confirmCta:`{{count}}개 아카이브 삭제`,purging:`삭제 중…`,toast:{success:`{{count}}개 아카이브가 삭제되었습니다.`,failed:`아카이브를 삭제할 수 없습니다.`},purgeStatsLabel:`통계에서도 제거`,purgeStatsHint:`일치하는 아카이브를 빠른 통계(필라멘트, 시간, 비용, 에너지)에서 삭제합니다. 이 옵션 없이는 빠른 통계는 모든 기여를 유지하고 파일만 디스크에서 제거됩니다.`},archiveAutoPurge:{enableLabel:`오래된 아카이브 자동 삭제`,enableDescription:`매일 한 번, 임계값 내에 인쇄되지 않은 아카이브를 영구적으로 삭제합니다. 아카이브를 다시 인쇄하면 카운터가 초기화됩니다. 휴지통 없음 — 삭제는 즉각적입니다.`,ageLabel:`다음 기간 동안 인쇄되지 않은 아카이브 자동 삭제`,ageDescription:`최소 7일, 최대 10년. 가장 최근 인쇄 완료 시점 기준 — 아카이브를 다시 인쇄하면 날짜가 새로고침됩니다. 아카이브, 3MF, 썸네일, 타임랩스 및 사진을 삭제합니다.`,days:`일`,runNow:`지금 아카이브 삭제`,saveFailed:`자동 삭제 설정을 저장할 수 없습니다.`,purgeStatsLabel:`통계에서도 제거`,purgeStatsDescription:`활성화되면 일일 정리 작업도 각 삭제된 아카이브를 빠른 통계(필라멘트, 시간, 비용, 에너지)에서 제거합니다. 기본값 비활성화 — 빠른 통계는 기여를 유지하고 파일만 디스크에서 제거됩니다.`},cameraTokens:{scope:{camera_stream:`카메라 스트림`,camwall:`카메라 월`,overlay:`스트리밍 오버레이`},title:`카메라 API 토큰`,navTitle:`카메라 API 토큰`,description:`Home Assistant, Frigate, 키오스크 화면 등 안정적인 주소가 필요한 도구에 카메라 스트림을 삽입하기 위한 장기 토큰입니다. 범위는 생성할 때 선택하며, 토큰은 언제든지 취소할 수 있습니다.`,loading:`불러오는 중…`,confirmRevoke:{title:`이 토큰을 취소하시겠습니까?`,body:`"{{name}}"을(를) 사용하는 모든 장치가 즉시 접근을 잃습니다. 이 작업은 취소할 수 없습니다.`,cancel:`취소`,confirm:`취소`},create:{scopeLabel:`범위`,hintCameraStream:`카메라 스트림 토큰은 카메라 스트림과 스냅숏만 가져올 수 있습니다. Home Assistant, Frigate 등 카메라 하나를 삽입하는 용도로 사용하세요.`,hintCamWall:`카메라 월 토큰은 로그인 없이 화면에서 /camwall을 엽니다. 모든 프린터의 이름과 상태, 카메라 스트림을 볼 수 있습니다. 파일 이름, 주소, 액세스 코드는 볼 수 없습니다.`,hintOverlay:`스트리밍 오버레이 토큰은 로그인 없이 화면에서 /overlay/{printerId}을 엽니다 — OBS나 모든 라이브 방송용입니다. 프린터 한 대의 카메라 스트림과 화면에 표시되는 파일 이름을 포함한 실시간 인쇄 상태를 볼 수 있습니다. 주소나 액세스 코드는 볼 수 없습니다.`,title:`새 토큰 만들기`,nameLabel:`토큰 이름`,namePlaceholder:`예: Home Assistant`,daysLabel:`만료까지 일 수`,submit:`만들기`,hint:`최대 수명은 365일입니다. 토큰 값은 생성 시 한 번만 표시됩니다 — 지금 복사하세요.`},created:{camWallUrlTitle:`이 화면용 카메라 월 주소`,camWallUrlHint:`이 주소를 화면에서 여세요. 주소를 읽을 수 있는 사람은 누구나 월을 볼 수 있으므로 열쇠처럼 다루세요. 토큰을 취소하면 해당 화면의 접근이 차단됩니다.`,overlayUrlTitle:`OBS용 오버레이 주소`,overlayUrlHint:`OBS에서 이것을 브라우저 소스로 추가하세요. /overlay/1의 숫자를 프린터의 번호(프린터 페이지의 주소에 표시됨)로 변경하세요. 주소를 읽을 수 있는 사람은 누구나 스트림을 볼 수 있으므로 열쇠처럼 다루세요 — 접근을 차단하려면 토큰을 취소하세요.`,title:`토큰 생성됨 — 지금 복사하세요`,warning:`이 토큰은 이 번만 볼 수 있습니다. 이 대화상자를 닫으면 다시는 볼 수 없습니다.`,copy:`복사`,dismiss:`저장했습니다`},list:{scope:`범위`,myTitle:`내 토큰`,allTitle:`모든 사용자 (관리자 보기)`,empty:`아직 토큰 없음.`,name:`이름`,owner:`소유자`,prefix:`접두사`,created:`생성일`,expires:`만료일`,lastUsed:`마지막 사용`,revoke:`취소`,expired:`만료됨`},toast:{created:`토큰 생성됨`,createFailed:`토큰 생성 실패`,revoked:`토큰 취소됨`,revokeFailed:`토큰 취소 실패`,loadFailed:`토큰 불러오기 실패`,copied:`클립보드에 복사됨`,copyFailed:`복사 실패 — 수동으로 선택하여 복사하세요`}},forecast:{title:`예측`,noSpools:`활성 스풀을 찾을 수 없습니다. 예측 데이터를 보려면 재고에 스풀을 추가하세요.`,noUsageData:`사용 데이터를 사용할 수 없습니다 — 재고 타임라인을 예측할 수 없습니다.`,sku:`SKU`,material:`재료`,stock:`재고`,dailyRate:`소비율`,daysLeft:`남은 일수`,emptyBy:`소진 예정일`,reorderBy:`재주문 기한`,actions:`작업`,trend:`추세`,estimated:`추정`,noData:`데이터 없음`,timeframe:`기간`,chartTitle:`예상 재고 — 상위 5개 재료`,dashedLinesROP:`점선 = 재주문 시점`,stockLevel:`재고 수준`,reorderPoint:`재주문 시점`,safetyMargin:`안전 마진`,trendLegend:`추세 (기록 기반, 95% 서비스 수준)`,estimatedLegend:`추정 (무게 변화)`,noDataLegend:`데이터 없음`,ropLabel:`ROP`,ssLabel:`SS`,safetyStockLegend:`안전 재고`,stockArrivalLegend:`재고 입고`,stockoutLegend:`재고 소진`,alertCount_one:`{{count}}개 알림`,alertCount_other:`{{count}}개 알림`,order:`주문`,save:`저장`,cancel:`취소`,settingsSaved:`설정 저장됨`,failedSaveSettings:`설정 저장 실패`,globalLeadTimeSaved:`전역 리드 타임 저장됨`,globalLeadTime:`전역 리드 타임`,globalLeadTimeHint:`전역 리드 타임 하한값 — 모든 SKU의 재주문 시점 계산에 사용됨`,skuLeadTimeOverride:`SKU 리드 타임 재정의`,skuLeadTimeHint:`0 = 전역 리드 타임 사용. 이 SKU에 대해 재정의하려면 >0으로 설정.`,safetyMarginLabel:`안전 마진`,effectiveLeadTime:`유효 리드 타임`,effectiveLeadTimeHint:`max(전역 {{global}}일, SKU {{sku}}일)`,reorderPointHint:`d̄ × LT + 안전 마진 — 재고가 이 수준에 도달하면 주문`,safetyMarginHint:`통계적 안전 재고 (z=1.65 × σ × √LT) + 사용자 정의 버퍼`,safetyMarginHintDays:`통계적 안전 재고 위에 추가되는 버퍼.{{approx}}`,safetyMarginHintDaysApprox:` ≈ 현재 소비율로 {{g}}g.`,safetyMarginHintG:`통계적 안전 재고 위에 추가되는 고정 무게 버퍼.{{approx}}`,safetyMarginHintGApprox:` ≈ 현재 소비율로 {{days}}일.`,individualSpools:`개별 스풀`,labelWeight:`라벨`,spoolCount_one:`스풀 {{count}}개`,spoolCount_other:`스풀 {{count}}개`,stockBreakRisk:`재고 소진 위험`,stockBreakDetail:`{{days}}일 남음, 리드 타임 {{lt}}일.`,stockBreakBefore:`보충 전 재고 소진`,reorderNow:`지금 재주문`,reorderTriggerPassed:`트리거 날짜 {{date}}가 지났습니다.`,shoppingList:`쇼핑 목록`,shoppingListItems_one:`({{count}}개 항목)`,shoppingListItems_other:`({{count}}개 항목)`,shoppingListEmpty:`쇼핑 목록이 비어 있습니다. 항목을 추가하려면 행의 장바구니 아이콘을 클릭하세요.`,addToCart:`쇼핑 목록에 추가`,alertsSnoozed:`이 SKU의 알림 음소거`,alertsEnabled:`이 SKU의 알림 음소거 해제`,addedToCart:`쇼핑 목록에 추가됨`,failedAddItem:`항목 추가 실패`,listView:`목록`,logisticsView:`물류`,qty:`수량`,weight:`무게`,leadTime:`리드 타임`,expectedRestock:`예상 재입고`,status:`상태`,note:`메모`,pending:`대기 중`,purchased:`구매됨`,received:`수령됨`,markPurchased:`구매됨으로 표시`,markReceived:`수령됨으로 표시 — 재고에 스풀 추가`,resetToPending:`대기 중으로 초기화`,remove:`제거`,clearAll:`모두 초기화`,downloadCsv:`CSV`,addToCartTitle:`쇼핑 목록에 추가`,byQuantity:`수량 기준`,byDuration:`기간 기준`,numberOfSpools:`스풀 수`,lastHowManyDays:`몇 일 동안 지속되어야 합니까?`,noUsageQty:`사용 데이터 없음 — 수량을 1로 설정합니다.`,noteOptional:`메모 (선택사항)`,notePlaceholder:`예: 프로젝트 X용, 긴급…`,addNSpools_one:`스풀 {{count}}개 추가`,addNSpools_other:`스풀 {{count}}개 추가`,onArrival:`입고 시`,stockBreakIn:`{{days}}일 후 재고 소진.`,stockRunsOutBefore:`{{lt}}일 리드 타임이 경과하기 전에 재고가 소진됩니다.`,atRate:`{{rate}}g/일 소비율로`,moreSpools_one:`스풀 {{count}}개 더`,moreSpools_other:`스풀 {{count}}개 더`,bridgeGap:`격차를 메우기 위해 필요합니다.`,noReadAccess:`재고 예측을 볼 권한이 없습니다.`,noWriteAccess:`예측 설정을 수정할 권한이 없습니다.`},diagnostic:{modalTitle:`연결 진단 — {{name}}`,running:`진단 실행 중...`,runningElapsed:`진단 실행 중... ({{elapsed}}초)`,waitingForReportHint:`프린터가 상태 보고를 게시하기를 기다리는 중 — 최대 {{max}}초 걸릴 수 있습니다.`,runFailed:`진단 실행 실패: {{error}}`,retry:`다시 실행`,runButton:`진단 실행`,sectionTitle:`연결 진단`,sectionDescription:`프린터가 연결되지 않거나 인쇄되지 않는 이유를 확인합니다 — 포트 연결 가능 여부, LAN 개발자 모드, Docker 네트워크 모드, 자격증명.`,noPrinters:`구성된 프린터가 없습니다.`,overall:{ok:`문제가 발견되지 않았습니다 — 프린터 연결이 정상입니다.`,warnings:`프린터가 작동하지만 일부 항목에 주의가 필요합니다.`,problems:`프린터가 연결되지 않거나 인쇄되지 않는 원인이 되는 문제가 발견되었습니다.`},check:{port_mqtt:{title:`제어 포트 (MQTT 8883)`,pass:`연결 가능 — 프린터가 제어 연결을 수락하고 있습니다.`,fail:`포트 8883에 연결할 수 없습니다. 프린터가 꺼져 있거나, IP 주소가 다르거나, 방화벽이 차단하고 있습니다. 프린터 IP를 확인하고 포트 8883이 차단되지 않았는지 확인하세요.`},port_ftps:{title:`파일 전송 포트 (FTPS 990)`,pass:`연결 가능 — 인쇄 파일 전송이 작동합니다.`,warn:`포트 990에 연결할 수 없습니다. 모니터링은 작동할 수 있지만 프린터로 파일 전송에 실패합니다. 포트 990이 차단되지 않았는지 확인하세요.`},external_storage:{title:`전송된 파일을 외부 저장소에 저장 (설치 단계 4)`,pass:`프린터가 이 옵션이 켜져 있다고 보고합니다 — 전송된 파일이 SD 카드에 저장되며 아카이브에 썸네일과 슬라이서 메타데이터가 포함됩니다.`,fail:`프린터가 이 옵션이 꺼져 있다고 보고합니다. "전송된 파일을 외부 저장소에 저장"을 활성화하세요 — 최신 펌웨어 (P2S 01.02 / Bambu Studio 2.6 이상)에서는 프린터의 인쇄 설정에 토글이 있고, 이전 버전에서는 Bambu Studio / OrcaSlicer의 장치 탭에 있습니다. 이 옵션이 없으면 아카이브된 모든 인쇄물에 썸네일과 슬라이서 메타데이터가 없습니다.`,skip:`확인되지 않음 — 활성 MQTT 연결이 필요합니다. 이 설정이 슬라이서에만 존재하는 이전 슬라이서에서는 프린터가 보고하지 않으므로, 옵션이 꺼져 있어도 이 검사는 통과합니다 — 설치 단계 4를 수동으로 확인하세요.`,skip_unsupported_model:`이 모델에는 SD 슬롯이 있지만 옵션을 켤 방법이 없습니다 — 현재 P1 시리즈 펌웨어는 Bambu Studio에 토글을 표시하지 않으며 프린터에 화면도 없습니다. 여기서 고칠 것은 없습니다. Bambu Lab이 펌웨어로 지원할 때까지 보관된 출력물에는 썸네일과 슬라이서 메타데이터가 없을 수 있습니다.`},port_rtsps:{title:`카메라 포트 ({{protocol}} {{port}})`,pass:`연결 가능 — 카메라 스트림이 작동합니다.`,warn:`포트 {{port}}에 연결할 수 없습니다. 라이브 카메라 보기가 작동하지 않습니다. 인쇄에는 영향을 주지 않습니다.`},network_mode:{title:`Docker 네트워크 모드`,pass:`호스트 네트워크 모드로 실행 중입니다.`,warn:`Bambuddy가 Docker 브리지 네트워킹으로 실행 중입니다. 프린터 검색과 가상 프린터에는 호스트 네트워크 모드가 필요합니다 — "network_mode: host"로 컨테이너를 재생성하세요.`,skip:`Docker에서 실행 중이 아닙니다 — 해당 없음.`},subnet:{title:`네트워크 서브넷`,pass:`프린터와 Bambuddy가 같은 서브넷에 있습니다.`,warn:`프린터({{printer_ip}})와 Bambuddy({{host_ip}})가 다른 서브넷에 있습니다. 서브넷 간 라우팅이 구성되어 있지 않으면 서로 연결하지 못할 수 있습니다.`,skip:`서브넷을 확인할 수 없어 건너뜁니다.`},mqtt_auth:{title:`프린터 자격증명`,pass:`프린터가 연결을 수락했습니다.`,fail:`프린터에 도달할 수 있지만 Bambuddy가 연결되지 않았습니다. 액세스 코드 또는 시리얼 번호가 잘못됐을 가능성이 높습니다 — LAN 전용 모드나 개발자 모드를 토글할 때마다 액세스 코드가 변경되므로 프린터 화면에서 다시 복사하세요. 재부팅 중이거나 이미 동시 연결 한도에 도달한 프린터도 똑같이 보입니다.`,fail_auth_rejected:`프린터가 Bambuddy의 자격증명을 거부했습니다. 액세스 코드 또는 시리얼 번호가 잘못됐습니다 — LAN 전용 모드나 개발자 모드를 토글할 때마다 액세스 코드가 변경됩니다. 프린터 화면에서 다시 복사한 뒤 프린터 설정에 저장하세요.`,skip:`확인하지 않음 — 프린터에 연결할 수 없었습니다.`},developer_mode:{title:`LAN 개발자 모드`,pass:`개발자 모드가 활성화되어 있습니다.`,fail:`프린터에서 개발자 모드가 꺼져 있습니다. 프린터의 LAN 설정에서 활성화하고 확인을 누르세요. 이 없으면 인쇄가 시작되지 않습니다.`,skip:`확인할 수 없음 — 프린터에 연결되어 있어야 합니다.`},printer_publishing:{title:`프린터가 상태를 게시 중`,pass:`프린터가 상태 업데이트를 게시하고 있습니다 — AMS, 필라멘트, K-프로파일이 슬라이서에 올바르게 반영됩니다.`,fail:`MQTT 브로커는 연결을 수락했지만 프린터가 상태 보고를 게시하지 않았습니다. 거의 항상 시리얼 번호가 잘못되었거나 대소문자가 일치하지 않아서 발생합니다 — device//api/v1/metrics para monitoramento Prometheus/Grafana.`,bearerTokenOptional:`Token Bearer (opcional)`,bearerTokenHint:`Se definido, as requisições devem incluir Authorization: Bearer `,metricsConnectionStatus:`Status da conexão`,metricsPrinterState:`Estado da impressora (idle/printing/etc)`,metricsPrintProgress:`Progresso da impressão 0-100%`,metricsBedTemp:`Temperatura da mesa`,metricsNozzleTemp:`Temperatura do bico`,metricsPrintsTotal:`Total de impressões por resultado`,metricsMore:`...e mais (camadas, ventoinhas, fila, uso de filamento)`,smartPlugsDescription:`Conecte plugues inteligentes (Tasmota ou Home Assistant) para automatizar o controle de energia e rastrear o consumo energético das suas impressoras.`,allOn:`Ligar todos`,allOff:`Desligar todos`,addSmartPlug:`Adicionar plugue inteligente`,energySummary:`Resumo de energia`,currentPower:`Potência atual`,plugsOnline:`{{reachable}}/{{total}} plugues online`,today:`Hoje`,yesterday:`Ontem`,total:`Total`,enablePlugsForSummary:`Habilite os plugues para ver o resumo de energia`,addNotificationProvider:`Adicionar`,systemBadge:`(Sistema)`,creating:`Criando...`,changing:`Alterando...`,deleteUserAndItems:`Excluir usuário E seus itens`,deleteUserKeepItems:`Excluir usuário, manter itens (ficarão sem dono)`,ok:`OK`,twoFa:{totpTitle:`App Autenticador (TOTP)`,totpDesc:`Use um app como Google Authenticator, Aegis ou Authy.`,emailOtpTitle:`OTP por e-mail`,emailOtpDesc:`Envie um código único para {{email}} ao fazer login.`,emailOtpNoEmail:`Adicione um endereço de e-mail à sua conta para ativar este método.`,addEmailFirst:`Sua conta não tem endereço de e-mail. Peça a um administrador para adicionar um.`,setupTotp:`Configurar App Autenticador`,setupAuthApp:`Configurar App Autenticador`,setupInstructions:`Escaneie o código QR com seu app autenticador e confirme com um código.`,manualEntry:`Não consegue escanear? Digite este segredo manualmente:`,scannedContinue:`Código escaneado — continuar`,enterCodeToConfirm:`Digite o código de 6 dígitos do seu app autenticador para confirmar.`,activate:`Ativar`,disableTotp:`Desativar Autenticador`,disableConfirmHint:`Digite um código TOTP válido ou um código de backup para desativar o autenticador.`,totpDisabled:`App autenticador desativado.`,emailOtpEnabled:`OTP por e-mail ativado.`,emailOtpDisabled:`OTP por e-mail desativado.`,smtpRequired:`Por favor, configure e teste as configurações SMTP primeiro.`,invalidCode:`Código inválido. Por favor, tente novamente.`,enableEmailOtp:`Ativar OTP por e-mail`,disableEmailOtp:`Desativar OTP por e-mail`,emailSetupEnterCode:`Um código de verificação foi enviado para o seu endereço de e-mail. Digite-o abaixo para confirmar que você possui esta caixa de entrada.`,verifyAndEnable:`Verificar e Ativar`,emailDisablePasswordHint:`Digite a senha da sua conta para confirmar a desativação do OTP por e-mail.`,passwordPlaceholder:`Digite sua senha`,backupCodesTitle:`Salve seus códigos de backup`,backupCodesWarning:`Guarde estes códigos em lugar seguro. Cada código só pode ser usado uma vez.`,backupCodesRemaining:`{{count}} códigos de backup restantes`,savedCodes:`Códigos salvos`,regenBackup:`Regenerar códigos de backup`,regenBackupHint:`Digite seu código TOTP atual para gerar 10 novos códigos de backup.`,newBackupCodes:`Novos códigos de backup`,linkedAccounts:`Contas SSO vinculadas`,linkedAccountsDesc:`Estes provedores de identidade externos estão vinculados à sua conta.`,oidcUnlinked:`Conta desvinculada.`},sessionPolicy:{title:`Política de sessão`,description:`Duração máxima da sessão para novos logins de usuário. Tokens já emitidos mantêm sua expiração original.`,preset24h:`24 horas`,preset7d:`7 dias`,preset30d:`30 dias`,customHoursLabel:`Duração personalizada da sessão em horas`,hoursSuffix:`horas`,warning:`Sessões mais longas reduzem a proteção de logout automático. Recomendado apenas para implantações de usuário único confiáveis.`},oidc:{title:`Provedores SSO / OIDC`,desc:`Configure provedores OpenID Connect para login único.`,addProvider:`Adicionar provedor`,newProvider:`Novo provedor`,empty:`Nenhum provedor OIDC configurado ainda.`,created:`Provedor criado.`,updated:`Provedor atualizado.`,deleted:`Provedor excluído.`,refreshIcon:`Atualizar ícone`,removeIcon:`Remover ícone`,iconRefreshed:`Ícone atualizado.`,iconRemoved:`Ícone removido.`,iconFetchFailed:`Não foi possível obter o ícone da URL do provedor.`,deleteTitle:`Excluir provedor`,deleteMessage:`Excluir "{{name}}"? Todas as contas vinculadas serão desconectadas.`,form:{name:`Nome de exibição`,issuerUrl:`URL do emissor`,clientId:`ID do cliente`,clientSecret:`Client secret`,scopes:`Escopos`,iconUrl:`URL do ícone (opcional)`,enabled:`Ativado`,autoCreate:`Criar usuários automaticamente`,autoCreateDesc:`Cria automaticamente uma conta local no primeiro login.`,autoLink:`Vincular contas existentes automaticamente`,autoLinkDesc:`Vincula contas locais existentes por e-mail no primeiro login.`,secretHint:`deixe em branco para manter`,secretPlaceholder:`novo segredo`,emailClaim:`Claim de e-mail`,emailClaimDesc:`Claim JWT usado como identidade de e-mail. Use 'preferred_username' ou 'upn' para Azure Entra ID (que não envia email_verified). Use apenas nomes de claim confiáveis.`,emailClaimPlaceholder:`e-mail`,emailClaimCustomClaimAutoLinkWarning:`Claims personalizadas são seguras para vinculação automática apenas quando o valor é administrado pelo tenant (ex. Azure Entra ID upn / preferred_username). Não ative a vinculação automática se seu IdP permite que usuários auto-declarem essa claim.`,requireEmailVerified:`Exigir e-mail verificado`,requireEmailVerifiedDesc:`Aceitar o claim de e-mail apenas quando o provedor o marcar como verificado.`,requireEmailVerifiedWarning:`Aviso: o e-mail será aceito sem verificação. Use apenas com provedores confiáveis.`,requireEmailVerifiedAutoLink:`Desabilite o vínculo automático primeiro para alterar esta configuração.`,defaultGroup:`Grupo padrão`,defaultGroupDesc:`Grupo atribuído aos usuários criados automaticamente. Retorna a Viewers se não definido.`,defaultGroupViewersFallback:`Viewers (padrão)`,autologin:`Login automático`,autologinDesc:`Redirecionar visitantes não autenticados diretamente para este provedor. Apenas um provedor pode ter esta marcação.`}},encryption:{title:`Status de criptografia MFA`,enabledFromEnv:`Criptografia em repouso ativa (chave da variável de ambiente MFA_ENCRYPTION_KEY)`,enabledFromFile:`Criptografia em repouso ativa (chave do diretório de dados)`,enabledGenerated:`Criptografia em repouso ativa com chave auto-gerada`,notConfigured:`Criptografia em repouso não configurada`,notConfiguredDesc:`Os segredos TOTP e client_secrets OIDC são armazenados em texto plano. Defina MFA_ENCRYPTION_KEY ou reinicie o Bambuddy com um diretório de dados gravável para gerar automaticamente.`,allEncrypted:`Todos os segredos MFA são criptografados em repouso.`,legacyRowsLabel:`Linhas legadas em texto plano`,encryptedRowsLabel:`Linhas criptografadas`,legacyRowsWarning:`{{count}} linha(s) legada(s) em texto plano detectada(s). Salve novamente o provedor OIDC ou registre novamente o autenticador do usuário para migrar ao armazenamento criptografado.`,backupHint:`A chave auto-gerada é armazenada em DATA_DIR/.mfa_encryption_key e incluída em ZIPs de backup locais. Mantenha seus backups seguros ou defina MFA_ENCRYPTION_KEY explicitamente.`,decryptionBrokenTitle:`Chave de criptografia ausente`,decryptionBrokenError:`{{count}} registro(s) criptografado(s) não podem ser descriptografados pois a chave de criptografia não está mais disponível. Restaure o MFA_ENCRYPTION_KEY anterior ou DATA_DIR/.mfa_encryption_key para recuperar.`,migrationErrorWarning:`{{count}} linha(s) antiga(s) não puderam ser recriptografadas na inicialização. Verifique os logs do servidor e reinicie o Bambuddy para tentar novamente.`},spoolbuddy:{infoTitle:`Dispositivos SpoolBuddy`,infoBody:`Os kiosks SpoolBuddy se registram automaticamente via heartbeat. Cancele o registro de um dispositivo aqui se não estiver mais em uso ou se um duplicado obsoleto foi deixado por uma falha do daemon.`,duplicatesTitle:`{{count}} dispositivos registrados`,duplicatesBody:`Apenas o primeiro dispositivo registrado é usado pela interface do kiosk. Se algum destes for um duplicado obsoleto após uma falha, cancele seu registro — um dispositivo online se registrará novamente no próximo heartbeat.`,empty:`Nenhum dispositivo SpoolBuddy registrado ainda.`,online:`Online`,offline:`Offline`,unregister:`Cancelar registro`,unregisterSuccess:`Dispositivo removido`,unregisterError:`Falha ao cancelar registro`,confirmTitle:`Cancelar registro do dispositivo SpoolBuddy?`,confirmBody:`Isso removerá "{{hostname}}" ({{deviceId}}) do banco de dados. Se o dispositivo estiver online, ele se registrará novamente no próximo heartbeat.`,ipAddress:`Endereço IP`,firmware:`Firmware`,lastSeen:`Visto pela última vez`,daemonUptime:`Tempo ativo do daemon`,systemUptime:`Tempo ativo do sistema`,never:`nunca`,nfc:`NFC`,scale:`Balança`,cpuTemp:`Temp. CPU`,cpuLoad:`Carga da CPU`,memory:`Memória`,disk:`Disco`,update:`Atualizar`,updateConfirmTitle:`Atualizar daemon do Spoolbuddy?`,updateConfirmBody:`Iniciar uma atualização de software em "{{hostname}}"? O daemon será reiniciado após a aplicação.`,restartBrowser:`Reiniciar navegador`,restartBrowserConfirmTitle:`Reiniciar o navegador do kiosk?`,restartBrowserConfirmBody:`Reiniciar o navegador do kiosk em "{{hostname}}"? A tela ficará em branco brevemente.`,restartDaemon:`Reiniciar daemon`,restartDaemonConfirmTitle:`Reiniciar daemon do Spoolbuddy?`,restartDaemonConfirmBody:`Reiniciar o daemon do Spoolbuddy em "{{hostname}}"? O dispositivo ficará offline por alguns segundos.`,reboot:`Reiniciar`,rebootConfirmTitle:`Reiniciar o dispositivo?`,rebootConfirmBody:`Reiniciar "{{hostname}}"? O dispositivo ficará offline por cerca de um minuto.`,shutdown:`Desligar`,shutdownConfirmTitle:`Desligar o dispositivo?`,shutdownConfirmBody:`Desligar "{{hostname}}"? Será necessário acesso físico para ligá-lo novamente.`,commandConfirm:`Confirmar`,commandQueued:`Comando enfileirado`,commandError:`Falha ao enviar comando`},pipelineLimits:{title:`Limites de pipelines do slicer`,maxCopiesLabel:`Cópias máximas por execução`,maxCopiesDesc:`Limite superior de cópias que operadores podem solicitar ao executar uma pipeline. O limite rígido no lado do servidor é 1000.`},pipelines:{title:`Pipelines do Slicer`,subtitle:`Pacotes de predefinições reutilizáveis (impressora + processo + filamentos + tipo de mesa). Salve um a partir do diálogo Cortar e aplique com um clique no próximo arquivo.`,loading:`Carregando pipelines…`,loadError:`Não foi possível carregar as pipelines.`,confirmDelete:`Excluir esta pipeline? Isso não pode ser desfeito.`,staleWarning:`Uma ou mais predefinições referenciadas não existem mais. Salve novamente esta pipeline a partir do diálogo Cortar para corrigir.`,empty:{title:`Ainda não há pipelines.`,howto:`Abra o diálogo Cortar em qualquer arquivo, escolha impressora / processo / filamentos / mesa e clique em "Salvar como pipeline". Suas pipelines salvas aparecerão aqui.`},field:{name:`Nome da pipeline`,description:`Descrição`,targetPrinter:`Impressora de destino`,noTarget:`— Sem destino —`,targetKind:`Tipo de destino`,targetKindSpecific:`Impressora específica`,targetKindClass:`Classe de impressora`,targetModelClass:`Modelo de impressora`,fanoutStrategy:`Estratégia de distribuição`,fanout:{max_parallel:`Máximo paralelo — distribuir em qualquer impressora ociosa compatível`,round_robin:`Round robin — alternar entre impressoras elegíveis`,fill_one_first:`Encher uma primeiro — fixar todas as cópias em uma impressora`},fanoutShort:{max_parallel:`paralelo`,round_robin:`round robin`,fill_one_first:`primeiro um`}},action:{save:`Salvar`,cancel:`Cancelar`,rename:`Renomear`,delete:`Excluir`},slot:{printer:`Impressora`,process:`Processo`,filament:`Filamento`,filamentN:`Filamento {{n}}`,filamentAll:`Todos os {{n}} slots`,bed:`Mesa`},group:{profiles:`Perfis`,filaments:`Filamentos`},searchPlaceholder:`Buscar pipelines…`,filterTargetType:`Filtrar por tipo de destino`,filterTarget:`Filtrar por destino`,filter:{all:`Todos os destinos`,noTarget:`Sem destino`,count:`{{shown}} / {{total}}`,noMatches:`Nenhuma pipeline corresponde aos filtros atuais.`},toast:{saved:`Pipeline salva`,saveFailed:`Falha ao salvar`,deleted:`Pipeline excluída`,deleteFailed:`Falha ao excluir`},noTargetHint:`Defina uma impressora de destino para executar`,noTargetWarning:`Defina uma impressora de destino antes de executar esta pipeline.`,runs:{lastRun:`Última execução`,status:{queued:`na fila`,slicing:`cortando`,dispatching:`enviando`,in_progress:`imprimindo`,completed:`concluída`,failed:`falhou`,partial_failure:`falha parcial`,cancelled:`cancelada`}}}},notification:{printStarted:{title:`Impressão Iniciada`,body:`{{printer}}: {{filename}} iniciou a impressão`},printCompleted:{title:`Impressão Concluída`,body:`{{printer}}: {{filename}} foi concluída com sucesso`},printFailed:{title:`Falha na Impressão`,body:`{{printer}}: {{filename}} falhou`},printStopped:{title:`Impressão Interrompida`,body:`{{printer}}: {{filename}} foi interrompida`},printProgress:{title:`Progresso da Impressão`,body:`{{printer}}: {{filename}} está {{percent}}% concluída`},printerOffline:{title:`Impressora Offline`,body:`{{printer}} está offline`},printerError:{title:`Erro na Impressora`,body:`{{printer}} – {{error}}`},filamentLow:{title:`Filamento Baixo`,body:`{{printer}}: O filamento está acabando`},maintenanceDue:{title:`Manutenção Pendente`,body:`{{printer}}: {{items}} precisam de atenção`}},errors:{generic:`Algo deu errado`,networkError:`Erro de rede. Por favor, verifique sua conexão.`,notFound:`Não encontrado`,unauthorized:`Não autorizado`,serverError:`Erro no servidor`,validationError:`Por favor, verifique sua entrada`,printerConnectionFailed:`Falha ao conectar à impressora`,saveFailed:`Falha ao salvar alterações`,deleteFailed:`Falha ao excluir`,loadFailed:`Falha ao carregar dados`},hmsErrors:{title:`Erros - {{name}}`,noErrors:`Nenhum erro`,viewOnWiki:`Ver no Bambu Lab Wiki`,mqttVerifyFailedRemedy:`Ative o Modo Desenvolvedor na impressora, reinicie a impressora e inicie o trabalho novamente.`,unknownCode:`Código HMS desconhecido — consulte o wiki da Bambu Lab para mais detalhes.`,clearInstructions:`Limpe os erros na impressora para descartá-los aqui.`,clearErrors:`Limpar Erros`,clearSuccess:`Erros HMS limpos`,clearFailed:`Falha ao limpar erros HMS`,actionSuccess:`Ação enviada à impressora`,actionFailed:`Falha ao enviar ação`,runoutExpectedSlot:`O filamento acabou em {{ranOut}}. A impressora agora aguarda filamento compatível em {{expected}}. Insira uma bobina em {{expected}} e selecione Tentar novamente.`,runoutExpectedSlotOnly:`A impressora está aguardando filamento compatível em {{expected}}. Insira uma bobina ali e selecione Tentar novamente.`,runoutSlotUnknown:`O filamento acabou e a impressão está pausada. O Bambuddy não conseguiu determinar qual slot a impressora agora espera — verifique a tela da impressora para o slot solicitado.`,actions:{RESUME_PRINTING:`Retomar impressão`,RESUME_PRINTING_DEFECTS:`Retomar (defeitos aceitáveis)`,RESUME_PRINTING_PROBELM_SOLVED:`Retomar (problema resolvido)`,STOP_PRINTING:`Parar impressão`,CHECK_ASSISTANT:`Ver assistente`,FILAMENT_EXTRUDED:`Filamento extrudado, continuar`,RETRY_FILAMENT_EXTRUDED:`Ainda não extrudado, tentar novamente`,CONTINUE:`Finalizado, continuar`,LOAD_VIRTUAL_TRAY:`Carregar filamento`,OK_BUTTON:`OK`,FILAMENT_LOAD_RESUME:`Filamento carregado, retomar`,JUMP_TO_LIVEVIEW:`Ver ao vivo`,NO_REMINDER_NEXT_TIME:`Não lembrar da próxima vez`,REFRESH_NOZZLE:`Verificar novamente`,IGNORE_NO_REMINDER_NEXT_TIME:`Ignorar e não lembrar`,IGNORE_RESUME:`Ignorar e retomar`,PROBLEM_SOLVED_RESUME:`Problema resolvido, retomar`,TURN_OFF_FIRE_ALARM:`Entendido, desligar alarme de incêndio`,RETRY_PROBLEM_SOLVED:`Tentar novamente (problema resolvido)`,CANCLE:`Cancelar`,STOP_DRYING:`Parar secagem`,PROCEED:`Prosseguir`,OK_JUMP_RACK:`OK`,ABORT:`Abortar`,DISABLE_PURIFICATION:`Desativar purificação para esta impressão`,DONT_REMIND_NEXT_TIME:`Não me lembrar`,DBL_CHECK_CANCEL:`Cancelar`,DBL_CHECK_DONE:`Concluído`,DBL_CHECK_RETRY:`Tentar novamente`,DBL_CHECK_RESUME:`Retomar`,DBL_CHECK_OK:`Confirmar`,REMOVE_CLOSE_BTN:`Fechar`}},mqttDebug:{title:`MQTT Log de Depuração`,searchPlaceholder:`Pesquisar tópico ou payload...`,noMessages:`Nenhuma mensagem registrada ainda`,startLoggingHint:`Clique em "Iniciar Registro" para começar a capturar mensagens MQTT`,noMessagesMatch:`Nenhuma mensagem corresponde ao seu filtro`,adjustFilterHint:`Tente ajustar seus critérios de pesquisa ou filtro`,incoming:`Entrada`,outgoing:`Saída`,loggingStopped:`Registro interrompido`,loggingActive:`Registro ativo - as mensagens serão atualizadas automaticamente`,startLogging:`Iniciar Registro`,stopLogging:`Parar Registro`,clearLog:`Limpar Registro`,topic:`ópico`,timestamp:`Carimbo de Data/Hora`,direction:`Direção`,all:`Todos`},printerFiles:{title:`Gerenciador de Arquivos`,storageUsed:`Usado:`,storageFree:`Livre:`,filterPlaceholder:`Filtrar arquivos...`,deleteButton:`Excluir`,deleteFiles:`Excluir {{count}} arquivos`,deleteFileConfirm:`Excluir "{{name}}"? Isso não pode ser desfeito.`,deleteFilesConfirm:`Excluir {{count}} arquivos selecionados? Isso não pode ser desfeito.`,noFiles:`Nenhum arquivo na impressora`,loadingFiles:`Carregando arquivos...`,failedToLoad:`Falha ao carregar arquivos`,toast:{filesDeleted:`Arquivos excluídos: {{count}}`,deleteFailed:`Falha ao excluir: {{error}}`}},confirm:{delete:`Tem certeza de que deseja excluir isso?`,unsavedChanges:`Você tem alterações não salvas. Tem certeza de que deseja sair?`,clearQueue:`Tem certeza de que deseja limpar a fila?`},login:{title:`Login Bambuddy`,subtitle:`Faça login na sua conta`,username:`Nome de usuário`,usernamePlaceholder:`Digite seu nome de usuário`,usernameOrEmail:`Nome de usuário ou Email`,usernameOrEmailPlaceholder:`Nome de usuário ou Email`,password:`Senha`,passwordPlaceholder:`Digite sua senha`,signIn:`Entrar`,signingIn:`Entrando...`,rememberMe:`Lembrar de mim`,forgotPassword:`Esqueceu sua senha?`,autologinFailed:`O login SSO automático falhou. Escolha um provedor abaixo para continuar.`,localDisabledNotice:`O login local está desativado. Use um dos provedores SSO abaixo.`,loginSuccess:`Login realizado com sucesso`,loginFailed:`Falha no login`,enterCredentials:`Por favor, insira nome de usuário e senha`,enterEmail:`Por favor, insira seu endereço de e-mail`,oidcLoginFailed:`Falha no login OIDC`,oidcErrors:{providerError:`O provedor de identidade retornou um erro`,missingParameters:`Parâmetros obrigatórios ausentes no callback OIDC`,invalidState:`Estado OIDC inválido ou já utilizado`,stateExpired:`Sessão OIDC expirada — tente novamente`,providerNotFound:`Provedor OIDC não encontrado`,discoveryFailed:`Falha ao obter o documento de descoberta OIDC`,invalidDiscovery:`Documento de descoberta OIDC inválido`,networkError:`Erro de rede durante a troca de token OIDC`,badResponse:`Resposta inesperada durante a troca de token OIDC`,noIdToken:`O provedor OIDC não retornou um token de ID`,validationFailed:`Falha na validação do token OIDC`,nonceMismatch:`Nonce OIDC não corresponde — possível ataque de replay`,missingSubClaim:`Token OIDC sem claim sub`,noLinkedAccount:`Nenhuma conta local vinculada a esta identidade OIDC`,accountInactive:`Sua conta está inativa`,userResolutionFailed:`Falha ao resolver sua conta`,internalError:`Erro interno durante o login OIDC`,tokenExchangeFailed:`Falha na troca de token OIDC`},forgotPasswordTitle:`Esqueceu a Senha`,forgotPasswordMessage:`Se você esqueceu sua senha, entre em contato com o administrador do sistema para redefini-la.`,forgotPasswordEmailMessage:`Digite seu endereço de email e enviaremos uma nova senha.`,emailAddress:`Endereço de Email`,emailPlaceholder:`seu.email@exemplo.com`,cancel:`Cancelar`,sending:`Enviando...`,sendResetEmail:`Enviar Email de Redefinição`,howToReset:`Como redefinir sua senha:`,resetStep1:`Entre em contato com o administrador do Bambuddy`,resetStep2:`Peça para redefinir sua senha na Gestão de Usuários`,resetStep3:`Eles podem definir uma nova senha temporária para você`,resetStep4:`Faça login com a nova senha e altere-a nas Configurações`,gotIt:`Entendi`,resetPassword:{title:`Definir nova senha`,subtitle:`Digite e confirme sua nova senha abaixo.`,newPassword:`Nova senha`,newPasswordPlaceholder:`Pelo menos 8 caracteres`,confirmPassword:`Confirmar senha`,confirmPasswordPlaceholder:`Repetir nova senha`,saving:`Salvando…`,submit:`Definir nova senha`,backToLogin:`Voltar para o login`,passwordsDoNotMatch:`As senhas não coincidem`,passwordTooShort:`A senha deve ter pelo menos 8 caracteres`,resetFailed:`Falha ao redefinir senha. O link pode ter expirado.`},twoFA:{title:`Autenticação em dois fatores`,subtitle:`Sua conta está protegida com 2FA. Insira o código de verificação abaixo.`,methodAuthenticator:`Aplicativo autenticador`,methodEmail:`Código por e-mail`,methodBackup:`Código de recuperação`,instructionsTotp:`Abra seu aplicativo autenticador e insira o código de 6 dígitos gerado para o Bambuddy.`,instructionsEmail:`Um código de 6 dígitos foi enviado para o seu e-mail. Ele é válido por 10 minutos.`,instructionsEmailNotSent:`Clique no botão abaixo para receber um código de verificação por e-mail.`,instructionsBackup:`Insira um dos seus códigos de recuperação de 8 caracteres. Cada código só pode ser utilizado uma vez.`,sendCodeButton:`Enviar código por e-mail`,sendingCode:`Enviando...`,resendCode:`Reenviar código`,codeLabel:`Código de verificação`,backupCodeLabel:`Código de recuperação`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`Verificar`,verifyingButton:`Verificando...`,backToLogin:`← Voltar para o login`,orContinueWith:`ou entrar com`,signInWith:`Entrar com {{provider}}`,enterCode:`Por favor, insira o código de verificação`,sendCodeFailed:`Falha ao enviar o código de verificação`,invalidCode:`Código inválido. Por favor, tente novamente.`}},setup:{title:`Bambuddy Configuração`,subtitle:`Configure a autenticação para sua instância do Bambuddy`,enableAuth:`Ativar Autenticação`,adminAccount:`Conta de Administrador`,adminAccountDesc:`Se usuários administradores já existirem, a autenticação será ativada usando as contas de administrador existentes. Deixe os campos abaixo vazios para usar os administradores existentes ou insira novas credenciais para criar um novo usuário administrador.`,adminUsername:`Nome de usuário do administrador`,adminPassword:`Senha do administrador`,optionalIfAdminExists:`(opcional se usuários administradores existirem)`,adminUsernamePlaceholder:`Digite o nome de usuário do administrador (opcional)`,adminPasswordPlaceholder:`Digite a senha do administrador (opcional)`,confirmPassword:`Confirmar Senha`,confirmPasswordPlaceholder:`Confirme a senha do administrador`,settingUp:`Configurando...`,completeSetup:`Concluir Configuração`,toast:{authEnabledAdminCreated:`Autenticação ativada e usuário administrador criado`,authEnabledExistingAdmins:`Autenticação ativada usando usuários administradores existentes`,setupCompleted:`Configuração concluída`,enterBothCredentials:`Por favor, insira o nome de usuário e a senha do administrador, ou deixe ambos vazios para usar os usuários administradores existentes`,passwordsDoNotMatch:`As senhas não coincidem`,passwordTooShort:`A senha deve ter pelo menos 6 caracteres`}},changePassword:{title:`Alterar Senha`,currentPassword:`Senha Atual`,currentPasswordPlaceholder:`Digite a senha atual`,newPassword:`Nova Senha`,newPasswordPlaceholder:`Digite a nova senha (mínimo 6 caracteres)`,confirmPassword:`Confirmar Senha`,confirmPasswordPlaceholder:`Confirme a nova senha`,passwordsDoNotMatch:`As senhas não coincidem`,passwordTooShort:`A senha deve ter pelo menos 6 caracteres`,changing:`Alterando...`,success:`Senha alterada com sucesso`,failed:`Falha ao alterar a senha`},plateAlert:{title:`Impressão Pausada!`,message:`Objetos detectados na mesa de impressão. A impressão foi automaticamente pausada. Por favor, limpe a mesa e retome a impressão.`,understand:`Entendi`},camera:{title:`Visualização da Câmera`,invalidPrinterId:`ID da impressora inválido`,live:`Ao Vivo`,snapshot:`Captura`,restartStream:`Reiniciar transmissão`,refreshSnapshot:`Atualizar captura`,fullscreen:`Tela Cheia`,exitFullscreen:`Sair da Tela Cheia`,connectingToCamera:`Conectando à câmera...`,capturingSnapshot:`Capturando imagem...`,connectionLost:`Conexão perdida`,connectionFailed:`Falha na conexão com a câmera`,reconnecting:`Reconectando em {{countdown}}s... (tentativa {{attempt}}/{{max}})`,reconnectNow:`Reconectar agora`,cameraUnavailable:`Câmera indisponível`,cameraUnavailableDesc:`Certifique-se de que a impressora está ligada e conectada.`,noCamera:`Nenhuma câmera disponível`,retry:`Tentar novamente`,cameraStream:`Transmissão da câmera`,zoomOut:`Reduzir zoom`,zoomIn:`Aumentar zoom`,resetZoom:`Redefinir zoom`,recording:`Gravando`,startRecording:`Iniciar gravação`,stopRecording:`Parar gravação`,chamberLight:`Alternar luz da câmara`,unavailable:`Câmera indisponível`,diagnose:{button:`Diagnóstico`,modalTitle:`Diagnóstico da câmera`,running:`Executando diagnóstico...`,runFailed:`Não foi possível executar o diagnóstico: {{error}}`,retry:`Executar novamente`,stage:{tcp_reachable:`Conectividade de rede`,first_frame:`Captura de frame`,live_stream_active:`Transmissão ao vivo ativa`},summary:{all_ok:`A câmera está funcionando. O diagnóstico concluiu todas as etapas com sucesso.`,live_stream_active_healthy:`A câmera está transmitindo com frames recentes — nenhum teste necessário.`,printer_unreachable:`Impressora inacessível. Verifique o endereço IP, a conexão de rede e se a impressora está ligada.`,camera_port_closed:`A impressora responde mas a porta da câmera está fechada. Verifique se o modo LAN e o modo desenvolvedor estão ativados nas configurações da impressora.`,no_frame:`Conexão com a câmera estabelecida mas nenhum frame recebido. Tente novamente ou verifique se a câmera está habilitada nas configurações da impressora.`,unknown_failure:`Diagnóstico da câmera falhou por motivo desconhecido. Consulte o log de suporte para mais detalhes.`},meta:{protocol:`Protocolo`,port:`Porta`,profile:`Perfil`}}},groups:{title:`Gerenciamento de Grupos`,subtitle:`Gerenciar grupos de permissão para controle de acesso`,backToSettings:`Voltar para Configurações`,createGroup:`Criar Grupo`,noPermission:`Você não tem permissão para acessar esta página.`,system:`Sistema`,noDescription:`Sem descrição`,usersCount:`{{count}} usuários`,permissionsCount:`{{count}} permissões`,edit:`Editar`,delete:`Excluir`,toast:{created:`Grupo criado com sucesso`,updated:`Grupo atualizado com sucesso`,deleted:`Grupo excluído com sucesso`,enterGroupName:`Por favor, insira um nome para o grupo`},modal:{editGroup:`Editar Grupo`,createGroup:`Criar Grupo`,cancel:`Cancelar`,saving:`Salvando...`,creating:`Criando...`,saveChanges:`Salvar Alterações`},form:{groupName:`Nome do Grupo`,groupNamePlaceholder:`Insira o nome do grupo`,systemGroupWarning:`Os nomes dos grupos do sistema não podem ser alterados`,description:`Descrição`,descriptionPlaceholder:`Insira a descrição (opcional)`,permissions:`Permissões ({{count}} selecionadas)`},deleteModal:{title:`Excluir Grupo`,message:`Tem certeza de que deseja excluir este grupo? Os usuários deste grupo perderão essas permissões.`,confirm:`Excluir Grupo`},editor:{title:`Editar Grupo`,createTitle:`Criar Grupo`,search:`Pesquisar permissões...`,selectAll:`Selecionar Tudo`,clearAll:`Limpar Tudo`,permissionsSelected:`{{count}} selecionada(s)`,noResults:`Nenhuma permissão corresponde à sua pesquisa`,websocketHint:`Necessário para atualizações em tempo real. Sem esta permissão, a interface recorre à sondagem periódica.`}},users:{title:`Gerenciamento de Usuários`,subtitle:`Gerenciar usuários e seu acesso à sua instância do Bambuddy`,backToSettings:`Voltar para Configurações`,createUser:`Criar Usuário`,noPermission:`Você não tem permissão para acessar esta página.`,admin:`Administrador`,noGroups:`Sem grupos`,active:`Ativo`,inactive:`Inativo`,edit:`Editar`,delete:`Excluir`,system:`Sistema`,noGroupsAvailable:`Nenhum grupo disponível`,table:{username:`Nome de Usuário`,groups:`Grupos`,status:`Status`,actions:`Ações`},toast:{created:`Usuário criado com sucesso`,updated:`Usuário atualizado com sucesso`,deleted:`Usuário excluído com sucesso`,fillRequired:`Por favor, preencha todos os campos obrigatórios`,passwordsDoNotMatch:`As senhas não coincidem`,passwordTooShort:`A senha deve ter pelo menos 6 caracteres`,ldapProvisioned:`Usuário LDAP "{{username}}" provisionado`},modal:{createUser:`Criar Usuário`,editUser:`Editar Usuário`,cancel:`Cancelar`,creating:`Criando...`,saving:`Salvando...`,saveChanges:`Salvar Alterações`,advancedAuthSubtitle:`com Autenticação Avançada`,tabsAriaLabel:`Fonte do usuário`,localTab:`Local`,ldapTab:`LDAP`,ldapSearchLabel:`Pesquisar diretório`,ldapSearchPlaceholder:`Digite um nome de usuário, nome ou e-mail...`,ldapMinChars:`Digite ao menos 2 caracteres para pesquisar`,ldapTypeToSearch:`Comece a digitar para pesquisar o diretório LDAP`,ldapSearching:`Pesquisando diretório...`,ldapNoResults:`Nenhum usuário correspondente no diretório`,ldapSearchError:`Falha na pesquisa do diretório. Verifique o status do servidor LDAP.`,ldapAlreadyProvisioned:`Já provisionado`,ldapSelectedLabel:`Selecionado`,ldapProvision:`Provisionar usuário`,ldapProvisioning:`Provisionando...`,ldapErrorProvision:`Falha no provisionamento. Verifique o status do servidor LDAP e tente novamente.`},form:{username:`Nome de Usuário`,usernamePlaceholder:`Insira o nome de usuário`,email:`E-mail`,emailPlaceholder:`user@example.com`,password:`Senha`,passwordPlaceholder:`Insira a senha`,confirmPassword:`Confirmar Senha`,confirmPasswordPlaceholder:`Confirme a senha`,newPasswordPlaceholder:`Insira a nova senha`,confirmNewPasswordPlaceholder:`Confirme a nova senha`,leaveBlankToKeep:`deixe em branco para manter a atual`,groups:`Grupos`,optional:`opcional`,autoGeneratedPassword:`Uma senha segura será gerada automaticamente e enviada por e-mail ao usuário.`,passwordManagedByAdvancedAuth:`A senha é gerenciada pela Autenticação Avançada. Use "Redefinir Senha" para enviar uma nova senha ao usuário por e-mail.`,resetPassword:`Redefinir Senha`,resettingPassword:`Redefinindo Senha...`},deleteModal:{title:`Excluir Usuário`,message:`Tem certeza de que deseja excluir este usuário? Esta ação não pode ser desfeita.`,confirm:`Excluir Usuário`}},streamOverlay:{title:`Sobreposição de stream`,invalidPrinterId:`ID da impressora inválido`,cameraStream:`Transmissão da câmera`,progress:`Progresso da impressão`,eta:`ETA`,printerIdle:`Impressora ociosa`,printerOffline:`Impressora offline`,status:{printing:`Imprimindo`,paused:`Pausado`,finished:`Concluído`,failed:`Falhou`,idle:`Ocioso`,unknown:`Desconhecido`}},profiles:{title:`Perfis`,subtitle:`Gerencie seus presets de fatiador e calibrações de avanço de pressão`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`Perfis Locais`,kprofiles:`K-Perfis`},orcaCloud:{connectedAs:`Conectado como`,connectedShort:`Conectado ao Orca Cloud`,logout:`Desconectar`,noLogoutPermission:`Você não tem permissão para desconectar`,noConnectPermission:`Você não tem permissão para conectar ao Orca Cloud`,retry:`Tentar novamente`,connectButton:`Conectar Orca Cloud`,connect:{title:`Conectar ao Orca Cloud`,description:`Entre na sua conta Orca Cloud para sincronizar seus perfis de slicer no Bambuddy.`},device:{title:`Aprovar o Bambuddy no Orca Cloud`,instruction:`Abra o Orca Cloud e aprove este código. O Bambuddy se conecta automaticamente assim que você aprovar.`,codeLabel:`Seu código de pareamento`,openButton:`Abrir a página de aprovação do Orca Cloud`,manualHint:`Ou acesse {{url}} e insira o código acima.`,waiting:`Aguardando sua aprovação…`,cancel:`Cancelar`},profiles:{title:`Seus perfis do Orca Cloud ({{count}})`,refresh:`Atualizar`,empty:`Nenhum perfil encontrado na sua conta Orca Cloud ainda.`},toast:{disconnected:`Desconectado do Orca Cloud`},errors:{startFailed:`Não foi possível iniciar o login do Orca Cloud.`,denied:`O pareamento foi negado no Orca Cloud.`,expired:`O código de pareamento expirou. Clique em Conectar para tentar novamente.`,pollFailed:`A conexão foi perdida enquanto aguardava a aprovação. Tente novamente.`}},localProfiles:{title:`Perfis Locais`,subtitle:`Importe e gerencie presets de fatiador do OrcaSlicer`,import:`Importar Perfis`,importDesc:`Solte arquivos .bbscfg, .bbsflmt, .orca_filament, .zip ou .json aqui`,importing:`Importando...`,search:`Pesquisar presets locais...`,noPresets:`Nenhum preset local ainda`,noSearchResults:`Nenhum preset corresponde à sua busca`,badge:`Local`,edit:`Editar`,delete:`Excluir`,cancel:`Cancelar`,deleteConfirmTitle:`Excluir Preset`,deleteConfirm:`Tem certeza de que deseja excluir este preset? Esta ação não pode ser desfeita.`,source:`Fonte`,inheritsFrom:`Herdado de`,filamentType:`Tipo`,vendor:`Fornecedor`,compatiblePrinters:`Impressoras Compatíveis`,nozzleTemp:`Temperatura do Bico`,cost:`Custo`,density:`Densidade`,pressureAdvance:`Avanço de Pressão`,filament:`Filamento`,process:`Processo`,printer:`Impressora`,toast:{importSuccess:`{{count}} preset(s) importada(s)`,importSkipped:`{{count}} preset(s) ignorada(s) (duplicadas)`,importError:`{{count}} erro(s) durante a importação`,deleted:`Preset excluído`,updated:`Preset atualizado`}},connectedAs:`Conectado como`,signInExpiredTitle:`Sessão do Bambu Cloud expirada`,signInExpiredBody:`A Bambu Lab não aceita mais o token armazenado. Entre novamente para restaurar os perfis na nuvem, as importações do MakerWorld e a verificação de firmware.`,logout:`Sair`,noLogoutPermission:`Você não tem permissão para sair`,failedToLoad:`Falha ao carregar perfis`,retry:`Tentar novamente`,time:{justNow:`Agora mesmo`,minsAgo:`há {{count}} minutos`,hoursAgo:`há {{count}} horas`,daysAgo:`há {{count}} dias`},toast:{loggedOut:`Desconectado`},login:{title:`Conectar ao Bambu Cloud`,subtitle:`Sincronize seus presets de fatiador entre dispositivos`,email:`E-mail`,password:`Senha`,region:`Região`,regionGlobal:`Global`,regionChina:`China`,verificationCode:`Código de Verificação`,totpCode:`Código do Autenticador`,checkEmail:`Verifique seu email ({{email}}) para um código de 6 dígitos`,enterTotpHint:`Digite o código de 6 dígitos do seu aplicativo autenticador`,accessToken:`Token de Acesso`,accessTokenHint:`Cole seu token de acesso da Bambu Cloud. Contas da região China precisam usar este caminho (vinculadas ao celular — login por e-mail indisponível). Veja no wiki como obter o token dos cookies do MakerWorld.`,back:`Voltar`,loginButton:`Entrar`,verifyButton:`Verificar`,setTokenButton:`Definir Token`,useToken:`Usar token de acesso em vez disso`,useEmail:`Entrar com email em vez disso`,toast:{loggedIn:`Conectado com sucesso`,codeSent:`Código de verificação enviado para seu email`,enterTotp:`Digite o código do seu aplicativo autenticador`,tokenSet:`Token definido com sucesso`}},presets:{myPreset:`Meu preset (editável)`,duplicate:`Duplicar`,editable:`Editável`,failedToLoadDetails:`Falha ao carregar detalhes do preset`,deleteConfirm:`Excluir este preset?`,deleteWarning:`Isso excluirá permanentemente "{{name}}" do Bambu Cloud. Esta ação não pode ser desfeita.`,noDuplicatePermission:`Você não tem permissão para duplicar presets`,noEditPermission:`Você não tem permissão para editar presets`,noDeletePermission:`Você não tem permissão para excluir presets`,types:{filament:`Preset de filamento`,printer:`Preset de impressora`,process:`Preset de processo`},toast:{deleted:`Preset excluído`,created:`Preset criado`,updated:`Preset atualizado`,duplicated:`Preset duplicado`,fieldAdded:`Campo "{{key}}" adicionado`,exported:`Preset exportado`},baseLabel:`Base: {{name}}`,currentLabel:`Atual: {{name}}`,newPreset:`Novo Preset`,editPreset:`Editar Preset`,duplicatePreset:`Duplicar Preset`,createNewPreset:`Criar Novo Preset`,customizeSettings:`Personalizar configurações para seu novo preset`,compareWithBase:`Comparar com o preset base`,compare:`Comparar`,basePreset:`Preset Base`,selectBasePreset:`Selecionar preset base...`,presetName:`Nome do Preset`,myCustomPreset:`Meu preset personalizado`,inheritsFrom:`Herdado de`,dropJsonToImport:`Solte o arquivo JSON para importar`,tabs:{common:`Comum`,allFields:`Todos os Campos`},availableFields:`Campos Disponíveis`,searchFieldsPlaceholder:`Pesquisar campos...`,noMatchingFields:`Nenhum campo correspondente`,allFieldsAdded:`Todos os campos adicionados`,addCustomField:`Adicionar campo personalizado`,yourOverrides:`Suas Substituições`,noOverridesYet:`Nenhuma substituição ainda`,clickFieldsToAdd:`Clique nos campos à esquerda para adicioná-los`,saveAsTemplate:`Salvar como modelo`,jsonTip:`Dica: Arraste e solte um arquivo .json em qualquer lugar deste modal para importar configurações`},cloudView:{searchPlaceholder:`Pesquisar presets...`,templates:`Modelos`,refresh:`Atualizar`,newPreset:`Novo Preset`,clearFilters:`Limpar filtros`,compareMode:`Modo de Comparação`,selectAnotherPreset:`Selecionar outro preset {{type}}`,clickTwoPresets:`Clique em dois presets do mesmo tipo para comparar`,selectFirst:`1. Selecionar primeiro`,selectSecond:`2. Selecionar segundo`,compareNow:`Comparar Agora`,lastSynced:`Última sincronização:`,showingCount:`Mostrando {{showing}} de {{total}} presets`,noPresetsFound:`Nenhum preset encontrado`,columns:{filament:`Filamento`,process:`Processo`,printer:`Impressora`},noFilamentPresets:`Nenhum preset de filamento`,noProcessPresets:`Nenhum preset de processo`,noPrinterPresets:`Nenhum preset de impressora`,filters:{type:`Tipo`,owner:`Proprietário`,printer:`Impressora`,nozzle:`Bico`,filament:`Filamento`,layer:`Camada`,all:`Todos`,myPresets:`Meus Presets`,builtIn:`Integrado`,process:`Processo`},noTemplatesPermission:`Você não tem permissão para gerenciar modelos`,noRefreshPermission:`Você não tem permissão para atualizar perfis`,noCreatePermission:`Você não tem permissão para criar presets`},templates:{title:`Modelos Rápidos`,noTemplates:`Nenhum modelo ainda`,createFirst:`Crie modelos a partir do editor de presets`,typeFilter:`Tipo:`,deleteTitle:`Excluir Modelo`,deleteWarning:`Esta ação não pode ser desfeita`,deleteConfirm:`Tem certeza de que deseja excluir "{{name}}"?`,namePlaceholder:`Nome do modelo`,descriptionPlaceholder:`Descrição`,settingsJson:`Configurações (JSON)`,fieldsCount:`{{count}} campos`,shownInModals:`Exibido em modais`,hiddenInModals:`Oculto em modais`,apply:`Aplicar`,toast:{deleted:`Modelo excluído`,updated:`Modelo atualizado`,created:`Modelo criado`,applied:`Modelo aplicado`}}},support:{debugLoggingActive:`Registro de depuração ativo`,manageLogs:`Gerenciar`,collectItem7:`Conectividade da impressora e versões de firmware`,collectItem8:`Status de integração (Spoolman, MQTT, HA)`,collectItem9:`Interfaces de rede (somente sub-redes)`,collectItem10:`Versões de pacotes Python`,collectItem11:`Verificações de integridade do banco de dados`,collectItem12:`Detalhes do ambiente Docker`,bundleGenerating:`Gerando pacote...`,bundleStepConnection:`Executando verificações de conectividade das impressoras`,bundleStepVirtualPrinters:`Executando verificações de configuração das impressoras virtuais`,bundleStepLogScan:`Analisando registros recentes em busca de problemas conhecidos`,bundleStepBuild:`Criando o ZIP do pacote de suporte`},fileManager:{title:`Gerenciador de Arquivos`,subtitle:`Organize e gerencie seus arquivos de impressão`,uploadFiles:`Enviar Arquivos`,newFolder:`Nova Pasta`,folderName:`Nome da Pasta`,folderNamePlaceholder:`ex.: Peças Funcionais`,renameFile:`Renomear Arquivo`,renameFolder:`Renomear Pasta`,invalidFilenameChar:`O caractere "{{char}}" não é permitido em nomes de arquivos de impressão. O cartão SD da impressora rejeita: < > : " / \\ | ? *`,moveFiles:`Mover {{count}} Arquivo(s)`,rootNoFolder:`Raiz (Sem Pasta)`,current:`Atual`,linkFolder:`Vincular Pasta`,linkFolderDescription:`Vincular "{{name}}" a um projeto ou arquivo para acesso rápido.`,project:`Projeto`,archive:`Arquivo`,noProjectsFound:`Nenhum projeto encontrado`,noArchivesFound:`Nenhum arquivo encontrado`,unlink:`Desvincular`,link:`Vincular`,dragDropFiles:`Arraste e solte os arquivos aqui`,dropFilesHere:`Solte os arquivos aqui`,releaseToUpload:`Solte para enviar`,orClickToBrowse:`ou clique para procurar`,allFileTypesSupported:`Todos os tipos de arquivos são suportados. Arquivos ZIP serão extraídos.`,zipFilesDetected:`Arquivos ZIP detectados`,zipExtractOptions:`Arquivos ZIP serão extraídos. Escolha como lidar com a estrutura de pastas:`,preserveZipStructure:`Preservar estrutura de pastas do ZIP`,createFolderFromZip:`Criar pasta a partir do nome do arquivo ZIP`,stlThumbnailGeneration:`Geração de miniaturas STL`,zipMayContainStl:`Arquivos ZIP podem conter arquivos STL. Miniaturas podem ser geradas durante a extração.`,thumbnailsCanBeGenerated:`Miniaturas podem ser geradas para arquivos STL. Modelos grandes podem levar mais tempo para processar.`,generateThumbnailsForStl:`Gerar miniaturas para arquivos STL`,threemfDetected:`Arquivos 3MF detectados`,threemfExtractionInfo:`Modelo da impressora, material, cor e configurações de impressão serão extraídos automaticamente dos arquivos 3MF.`,willBeExtracted:`Será extraído`,filesExtracted:`{{count}} arquivos extraídos`,uploadComplete:`Upload concluído: {{succeeded}} bem-sucedidos`,uploadFailed:`Falha no envio`,zipFilesFailed:`{{count}} arquivos falharam`,uploading:`Enviando...`,changeLink:`Alterar link...`,linkTo:`Vincular a...`,linkToProjectOrArchive:`Vincular a projeto ou arquivo`,generateThumbnail:`Gerar miniatura`,generateThumbnails:`Gerar miniaturas`,generateThumbnailsForMissing:`Gerar miniaturas para arquivos STL que não possuem`,gridView:`Visualização em grade`,listView:`Visualização em lista`,lowDiskSpaceWarning:`Aviso de pouco espaço em disco`,lowDiskSpaceDetails:`Apenas {{free}} livres de {{total}} no total. O limite está definido para {{threshold}} GB nas configurações.`,files:`Arquivos`,folders:`Pastas`,size:`Tamanho`,free:`Livre`,allFiles:`Todos os arquivos`,allExternal:`Externos`,externalIsEmpty:`Nenhum arquivo externo`,externalEmptyDescription:`Os arquivos das suas pastas externas vinculadas aparecerão aqui.`,wrap:`Quebrar texto`,enableTextWrapping:`Ativar quebra de texto`,disableTextWrapping:`Desativar quebra de texto`,collapse:`Recolher`,collapseFoldersByDefault:`Recolher pastas por padrão`,expandFoldersByDefault:`Expandir pastas por padrão`,folderSort:`Ordenar pastas`,folderSortByName:`Por nome`,folderSortByActivity:`Por atividade recente`,dragToResizeTooltip:`Arraste para redimensionar, clique duas vezes para redefinir`,searchFiles:`Pesquisar arquivos...`,searchSubfoldersHint:`Incluindo subpastas`,readme:{truncated:`Truncado`,show:`Mostrar README`,hide:`Ocultar README`,label:`README`},tags:{title:`Tags`,subtitle:`Rotule arquivos para filtros transversais — brinquedos, seguro para crianças, somente PETG, o que precisar.`,manage:`Tags`,manageTitle:`Gerenciar catálogo de tags`,add:`Nova tag`,edit:`Renomear tag`,name:`Nome`,fileCount:`Arquivos`,empty:`Ainda não há tags. Crie uma para começar a rotular arquivos.`,noMatches:`Nenhuma tag correspondente.`,createPlaceholder:`ex.: brinquedos, infantil, petg`,createButton:`Criar`,nameRequired:`O nome é obrigatório.`,searchPlaceholder:`Filtrar tags...`,created:`Tag criada.`,updated:`Tag renomeada.`,deleted:`Tag removida.`,saveFailed:`Não foi possível salvar a tag.`,deleteFailed:`Não foi possível remover a tag.`,applyFailed:`Não foi possível aplicar as tags.`,applyAdd:`Adicionar tags`,applyRemove:`Remover tags`,applyAddSuccess:`{{count}} tag(s) adicionada(s) em {{files}} arquivo(s).`,applyRemoveSuccess:`{{count}} tag(s) removida(s) em {{files}} arquivo(s).`,actionAdd:`Adicionar aos arquivos selecionados`,actionRemove:`Remover dos arquivos selecionados`,tagAction:`Marcar`,bulkTitle:`Marcar {{count}} arquivo(s) selecionado(s)`,bulkTooltip:`Adicionar ou remover tags em cada arquivo selecionado.`,noPermission:`Você não tem permissão para marcar arquivos.`,filterLabel:`Filtrando por:`,clearAll:`Limpar tudo`,confirmDelete:`Excluir a tag "{{name}}"?`,confirmDeleteMessage:`Isto remove a tag do catálogo. Os arquivos mantêm as outras tags.`,confirmDeleteInUseMessage:`Esta tag está em {{count}} arquivo(s). Excluí-la remove o chip de todos; os arquivos em si ficam intactos.`,editAria:`Editar {{name}}`,deleteAria:`Excluir {{name}}`},allTypes:`Todos os tipos`,prints:`Impressões`,ascending:`Crescente`,descending:`Decrescente`,showModified:`Mostrar datas de modificação`,hideModified:`Ocultar datas de modificação`,lastModified:`Última modificação`,lastActivity:`Última atividade`,resultsCount:`{{showing}} de {{total}} arquivos`,selectAll:`Selecionar tudo`,deselectAll:`Desmarcar tudo`,selected:`{{count}} selecionado(s)`,adding:`Adicionando...`,loadingFiles:`Carregando arquivos...`,folderIsEmpty:`A pasta está vazia`,noFilesYet:`Nenhum arquivo ainda`,folderEmptyDescription:`Envie arquivos ou mova arquivos para esta pasta para começar.`,noFilesDescription:`Envie arquivos para começar a organizar seus arquivos relacionados à impressão.`,noMatchingFiles:`Nenhum arquivo correspondente`,noMatchingFilesDescription:`Nenhum arquivo corresponde aos seus critérios de pesquisa ou filtro.`,clearFilters:`Limpar filtros`,printedCount:`Impresso {{count}}x`,uploadedBy:`Enviado por`,deleteFolder:`Excluir pasta`,deleteFile:`Excluir arquivo`,deleteFilesCount:`Excluir {{count}} arquivos`,deleteFolderConfirm:`Tem certeza de que deseja excluir esta pasta? Todos os arquivos dentro também serão excluídos.`,deleteFileConfirm:`Tem certeza de que deseja excluir este arquivo?`,deleteFilesConfirm:`Tem certeza de que deseja excluir {{count}} arquivos selecionados? Esta ação não pode ser desfeita.`,deleting:`Excluindo...`,noPermissionRenameFolder:`Você não tem permissão para renomear pastas`,noPermissionLinkFolder:`Você não tem permissão para vincular pastas`,noPermissionDeleteFolder:`Você não tem permissão para excluir pastas`,onlyEmptyFoldersDeletable:`Você só pode excluir pastas vazias`,noPermissionPrint:`Você não tem permissão para imprimir`,noPermissionSlice:`Você não tem permissão para fatiar arquivos`,noPermissionAddToQueue:`Você não tem permissão para adicionar à fila`,noPermissionDownload:`Você não tem permissão para baixar arquivos`,noPermissionRenameFile:`Você não tem permissão para renomear este arquivo`,noPermissionGenerateThumbnail:`Você não tem permissão para gerar miniaturas`,noPermissionDeleteFile:`Você não tem permissão para excluir este arquivo`,noPermissionCreateFolder:`Você não tem permissão para criar pastas`,noPermissionUpload:`Você não tem permissão para enviar arquivos`,noPermissionMoveFiles:`Você não tem permissão para mover arquivos`,noPermissionDeleteFiles:`Você não tem permissão para excluir arquivos`,linkExternal:`Vincular externo`,linkExternalFolder:`Vincular pasta externa`,linkExternalFolderDescription:`Montar um diretório do host (NAS, USB, compartilhamento de rede) no Gerenciador de Arquivos. Os arquivos não são copiados — são acessados diretamente do caminho original.`,externalFolderNamePlaceholder:`ex. Impressões NAS`,externalPath:`Caminho do host`,externalPathHelp:`Caminho absoluto do diretório no host Docker. Deve estar montado como bind no contêiner.`,readOnly:`Somente leitura`,readOnlyHelp:`impede uploads e exclusões`,showHiddenFiles:`Mostrar arquivos ocultos (arquivos ponto)`,externalFolder:`Pasta externa`,scanFolder:`Escanear`,toast:{folderCreated:`Pasta criada`,folderDeleted:`Pasta excluída`,fileDeleted:`Arquivo excluído`,filesDeleted:`Excluídos {{count}} arquivos`,filesMoved:`Arquivos movidos`,folderLinked:`Pasta vinculada`,folderUnlinked:`Pasta desvinculada`,externalFolderLinked:`Pasta externa vinculada e escaneada`,folderScanned:`Escaneamento concluído: {{added}} adicionados, {{removed}} removidos`,addedToQueue:`Adicionado {{count}} arquivo(s) à fila`,addedToQueuePartial:`Adicionado {{added}} arquivo(s), {{failed}} falharam`,failedToAddToQueue:`Falha ao adicionar arquivos: {{error}}`,fileRenamed:`Arquivo renomeado`,folderRenamed:`Pasta renomeada`,thumbnailsGenerated:`Geradas {{count}} miniatura(s)`,thumbnailsGeneratedPartial:`Geradas {{succeeded}} miniatura(s), {{failed}} falharam`,noStlMissingThumbnails:`Nenhum arquivo STL sem miniatura`,failedToGenerateThumbnails:`Falha ao gerar miniaturas: {{error}}`,thumbnailGenerated:`Miniatura gerada`,failedToGenerateThumbnail:`Falha ao gerar miniatura: {{error}}`}},projects:{title:`Projetos`,subtitle:`Organize e acompanhe seus projetos de impressão 3D`,newProject:`Novo Projeto`,editProject:`Editar Projeto`,deleteProject:`Excluir Projeto`,projectName:`Nome do Projeto`,description:`Descrição`,noProjects:`Nenhum projeto ainda`,noProjectsFiltered:`Nenhum projeto {{status}}`,noProjectsFilteredHelp:`Você não tem nenhum projeto {{status}}. Os projetos aparecerão aqui quando seu status mudar.`,createFirst:`Crie seu primeiro projeto para começar a organizar impressões relacionadas, acompanhar o progresso e gerenciar suas construções.`,createFirstButton:`Crie Seu Primeiro Projeto`,create:`Criar`,files:`Arquivos`,prints:`Impressões`,plates:`Placas`,parts:`Peças`,lastModified:`Última Modificação`,deleteConfirm:`Tem certeza de que deseja excluir este projeto? Arquivos e itens da fila serão desvinculados, mas não excluídos.`,addFiles:`Adicionar Arquivos`,removeFile:`Remover Arquivo`,viewDetails:`Ver Detalhes`,namePlaceholder:`ex., Voron 2.4 Build`,descriptionPlaceholder:`Descrição opcional...`,urlLabel:`URL`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`A URL deve começar com http:// ou https://`,openExternalUrl:`Abrir URL do projeto`,coverImageLabel:`Imagem de capa`,coverImageAlt:`Imagem de capa do projeto`,coverImageUpload:`Enviar`,coverImageReplace:`Substituir`,coverImageRemove:`Remover`,color:`Cor`,targetPlates:`Placas Alvo`,targetPlatesPlaceholder:`ex., 25`,targetPlatesHelp:`Número de trabalhos de impressão`,targetParts:`Peças Alvo`,targetPartsPlaceholder:`ex., 150`,targetPartsHelp:`Total de objetos necessários`,targetSets:`Cópias por arquivo`,targetSetsPlaceholder:`ex.: 10`,targetSetsHelp:`Quantas vezes cada arquivo imprimível deve ser impresso`,tagsLabel:`Tags (separadas por vírgula)`,tagsPlaceholder:`ex., voron, funcional, presente`,dueDate:`Data de Vencimento`,priority:`Prioridade`,priorityLow:`Baixa`,priorityNormal:`Normal`,priorityHigh:`Alta`,priorityUrgent:`Urgente`,statusActive:`Ativo`,statusCompleted:`Concluído`,statusArchived:`Arquivado`,done:`Concluído`,completed:`Concluído`,failed:`Falhou`,inQueue:`Na fila`,noPrintsYet:`Nenhuma impressão ainda`,printJobs:`Trabalhos de impressão (placas)`,partsPrinted:`Peças impressas`,failedParts:`Peças falhadas`,import:`Importar`,export:`Exportar`,importProject:`Importar projeto`,exportAll:`Exportar todos os projetos`,loading:`Carregando projetos...`,noEditPermission:`Você não tem permissão para editar projetos`,noDeletePermission:`Você não tem permissão para excluir projetos`,noCreatePermission:`Você não tem permissão para criar projetos`,noImportPermission:`Você não tem permissão para importar projetos`,noExportPermission:`Você não tem permissão para exportar projetos`,toast:{created:`Projeto criado`,updated:`Projeto atualizado`,deleted:`Projeto excluído`,imported:`Projeto importado`,multipleImported:`{{count}} projetos importados`,importFailed:`Falha na importação`,exported:`Projetos exportados (apenas metadados)`}},projectDetail:{notFound:`Projeto não encontrado`,backToProjects:`Voltar para Projetos`,export:`Exportar`,exportProject:`Exportar projeto`,noExportPermission:`Você não tem permissão para exportar projetos`,noEditPermission:`Você não tem permissão para editar projetos`,partOf:`Parte de:`,priorityLabel:`Prioridade:`,noPrints:`Nenhuma impressão neste projeto ainda`,status:{active:`Ativo`,completed:`Concluído`,archived:`Arquivado`},priority:{low:`Baixa`,normal:`Normal`,high:`Alta`,urgent:`Urgente`},dueDate:{overdue:`Atrasado`,today:`Vence hoje`,daysLeft:`{{count}} dias restantes`},progress:{platesProgress:`Progresso das Placas`,partsProgress:`Progresso das Peças`,setsProgress:`Conjuntos completos`,sets:`conjuntos`,setsHint:`Um conjunto está completo quando cada arquivo imprimível atinge esse número`,printJobs:`Trabalhos de Impressão`,parts:`Peças`,percentComplete:`{{percent}}% concluído`,remaining:`{{count}} restantes`},stats:{printJobs:`Trabalhos de Impressão`,total:`total`,failed:`{{count}} falhou`,partsPrinted:`{{count}} peças impressas`,printTime:`Tempo de Impressão`,filamentUsed:`Filamento Usado`},cost:{title:`Rastreamento de Custos`,filamentCost:`Custo do Filamento`,energy:`Energia`,totalCost:`Custo Total`,total:`Total`,includesBom:`incl. lista de materiais`,budget:`Orçamento`,remaining:`Restante`},subProjects:{title:`Sub-projetos ({{count}})`},notes:{title:`Notas`,noEditPermission:`Você não tem permissão para editar notas`,placeholder:`Adicione notas sobre este projeto...`,empty:`Nenhuma nota ainda. Clique em Editar para adicionar notas.`},files:{title:`Arquivos`,linkFolders:`Vincular pastas do Gerenciador de Arquivos`,forQuickAccess:`a este projeto para acesso rápido.`,fileCount:`{{count}} arquivo(s)`,empty:`Nenhuma pasta vinculada. Vá para o Gerenciador de Arquivos e vincule uma pasta a este projeto.`,printedCount:`Impresso {{count}} vez(es)`,progressTooltip:`{{done}} de {{target}} impressões concluídas`,noFiles:`Nenhum arquivo nesta pasta.`},bom:{title:`Lista de Materiais`,acquired:`{{completed}}/{{total}} adquiridos`,showAll:`Mostrar todos`,hideDone:`Ocultar concluídos`,addPart:`Adicionar Peça`,noAddPermission:`Você não tem permissão para adicionar peças`,partNamePlaceholder:`Nome da peça (ex.: parafusos M3x8)`,partName:`Nome da peça`,qty:`Quantidade`,price:`Preço ({{currency}})`,sourcingUrlPlaceholder:`URL de fornecimento (opcional)`,remarksPlaceholder:`Observações (opcional)`,deletePart:`Excluir Peça`,deleteConfirm:`Tem certeza de que deseja excluir "{{name}}"?`,noUpdatePermission:`Você não tem permissão para atualizar peças`,noEditPermission:`Você não tem permissão para editar peças`,noDeletePermission:`Você não tem permissão para excluir peças`,totalCost:`Custo total:`,empty:`Nenhuma peça na lista de materiais. Adicione hardware, eletrônicos ou outros componentes para rastrear o que precisa ser adquirido.`},timeline:{title:`Linha do Tempo de Atividades`,empty:`Nenhuma atividade ainda.`},template:{saveAsTemplate:`Salvar como Modelo`,noCreatePermission:`Você não tem permissão para criar modelos`},queue:{title:`Fila`,viewAll:`Ver todos`,printing:`{{count}} imprimindo`,queued:`{{count}} na fila`},prints:{title:`Impressões ({{count}})`},toast:{projectUpdated:`Projeto atualizado`,partAdded:`Peça adicionada`,partRemoved:`Peça removida`,exportFailed:`Falha na exportação`,projectExported:`Projeto exportado`,templateCreated:`Modelo criado`}},system:{title:`Informações do Sistema`,version:`Versão`,uptime:`Tempo de Atividade`,cpuUsage:`Uso da CPU`,memoryUsage:`Uso da Memória`,diskUsage:`Uso do Disco`,networkInfo:`Informações de Rede`,logs:`Registros`,debugMode:`Modo de Depuração`,enableDebug:`Ativar Registro de Depuração`,disableDebug:`Desativar Registro de Depuração`,downloadLogs:`Baixar Logs`,clearLogs:`Limpar Logs`,dockerInfo:`Informações do Docker`,containerName:`Nome do Contêiner`,imageName:`Nome da Imagem`,platform:`Plataforma`,architecture:`Arquitetura`},sponsors:{sectionTitle:`Independente e financiado pela comunidade`,tagline:`O Bambuddy é gratuito e continua assim porque há quem escolha apoiá-lo. Sem VC, sem dependência de nuvem.`,viewSupporters:`Ver apoiadores`,toastPrints:`Você concluiu {{count}} impressões com o Bambuddy. O Bambuddy continua gratuito graças a quem o apoia.`,toastCost:`Você acompanhou {{total}} de filamento com o Bambuddy. Veja quem mantém o projeto independente.`,toastArchives:`{{count}} impressões arquivadas com o Bambuddy. Veja quem o mantém independente.`,toastAnniversary:`Um ano com o Bambuddy! Veja quem mantém o projeto independente.`,toastVersionUpdate:`Atualizado para v{{version}}. O Bambuddy continua gratuito graças a quem o apoia.`,toastBusiness:`Você usa o Bambuddy em {{count}} impressoras? Existe um plano de suporte para equipes: correções prioritárias, emissão de nota fiscal e contato direto com o mantenedor.`,businessCta:`Bambuddy para empresas`,businessTitle:`Bambuddy para empresas`,businessTagline:`Você está gerenciando {{count}} impressoras. Suporte prioritário, licenciamento comercial e faturamento estão disponíveis para equipes e fazendas de impressão.`},library:{title:`Biblioteca de Filamentos`,addFilament:`Adicionar Filamento`,editFilament:`Editar Filamento`,deleteFilament:`Excluir Filamento`,vendor:`Fornecedor`,material:`Material`,color:`Cor`,kFactor:`Fator K`,temperature:`Temperatura`,noFilaments:`Nenhum filamento na biblioteca`,deleteConfirm:`Tem certeza de que deseja excluir este filamento?`,importFromPrinter:`Importar da Impressora`,exportToFile:`Exportar para Arquivo`,runWithPipeline:{actionLabel:`Executar com pipeline`,noPermission:`Você não tem permissão para executar pipelines`,modalTitle:`Executar com pipeline`,confirmTitle:`Confirmar execução`,confirmIntro:`A pré-verificação encontrou problemas com esta execução`,sourceHint:`Origem`,pipelineHint:`Pipeline`,targetHint:`Destino`,pipelineListAria:`Pipelines disponíveis`,runAnyway:`Executar mesmo assim`,loading:`Carregando…`,empty:`Ainda não há pipelines salvas. Abra o diálogo Cortar e clique em "Salvar como pipeline" para criar uma.`,noTarget:`Sem impressora de destino`,noTargetMessage:`Esta pipeline não tem impressora de destino. Abra-a em Configurações para escolher uma.`,copies:`Cópias`,copiesHint:`máx {{n}}`,classTarget:`Qualquer {{model}}`,toast:{started:`Execução da pipeline iniciada`,failed:`Não foi possível iniciar a execução`},issue:{printerNotSet:`Sem impressora de destino nesta pipeline.`,printerNotFound:`Impressora de destino não existe mais.`,printerDisabled:`Impressora de destino está desativada.`,printerOffline:`Impressora de destino está offline.`,filamentType:`Slot de filamento {{slot}}: esperado {{expected}}, AMS tem {{actual}}`,filamentColor:`Slot de filamento {{slot}}: cor diferente (esperado {{expected}}, AMS tem {{actual}})`,amsSlotMissing:`Slot AMS {{slot}} indisponível nesta impressora`,filamentUnverified:`Slot de filamento {{slot}} vem de uma predefinição da nuvem / padrão e não pôde ser verificado estaticamente.`,noClassMatches:`Nenhuma impressora nesta instalação corresponde à classe de modelo de destino da pipeline ({{expected}}).`,classNotSet:`O destino da pipeline está configurado como classe de impressora, mas nenhum modelo foi escolhido.`}}},slice:{title:`Fatiar modelo`,action:`Fatiar`,actionAll:`Fatiar todas as {{count}} bandejas`,actionAllTitle:`Fatiar todas as bandejas em uma saída multi-bandeja única (um único arquivo). A seleção de filamento cobre cada slot definido pelo projeto.`,allPlatesToggle:`Fatiar todas as {{count}} bandejas`,slicing:`Fatiando…`,printer:`Perfil de impressora`,process:`Perfil de processo`,filament:`Perfil de filamento`,filamentSlot:`Filamento {{index}} ({{type}})`,selectPreset:`— Selecione uma predefinição —`,loadingPresets:`Carregando predefinições…`,analyzingPlateFilaments:`Analisando filamentos da mesa…`,analyzingPlateFilamentsHint:`Executando uma fatia de pré-visualização para descobrir quais slots AMS esta mesa usa. Cacheado depois — reabrir é instantâneo.`,previewToast:`Analisando {{name}} – {{elapsed}}`,previewWithProgress:`Analisando {{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,notUsedByPlate:`— não usado por esta mesa`,noPresetsForSlot:`Nenhuma predefinição disponível`,otherPrinters:`Outras impressoras`,presetsLoadFailed:`Falha ao carregar predefinições. Abra Configurações → Perfis para importá-las primeiro.`,refreshPresets:`Atualizar`,refreshPresetsTitle:`Atualizar predefinições — buscar as listagens mais recentes da nuvem e dos pacotes (use após excluir uma predefinição no Bambu Studio ou Bambu Handy)`,allPresetsRequired:`Todas as predefinições devem ser selecionadas`,useEmbedded:`Usar as configurações incorporadas do arquivo`,useEmbeddedHint:`Fatiar como o designer configurou (paredes, preenchimento, filamento) em vez dos perfis acima. Disponível porque sua impressora corresponde à do arquivo.`,designSettings:`Manter as configurações do designer`,designSettingsHint:`Este arquivo altera {{count}} configuração(ões) de impressão em relação ao perfil padrão.`,designSettingsSelected:`{{selected}} de {{total}} selecionadas`,designSettingsPrinterCoupled:`específico da impressora`,designSettingsPrinterCoupledHint:`Ajustado para a impressora para a qual o arquivo foi projetado — pode estar incorreto ou fora de faixa na sua.`,enqueuing:`Enviando trabalho de fatiamento…`,queued:`Na fila…`,failed:`Falha ao fatiar. Verifique os logs do sidecar.`,startedToast:`Fatiando {{name}} em segundo plano…`,queuedToast:`Na fila: {{name}} – {{elapsed}}`,runningToast:`Fatiando {{name}} – {{elapsed}}`,runningWithProgress:`{{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,runningWithProgressMultiPlate:`Bandeja {{plateIndex}} de {{plateCount}} • {{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,completedToast:`{{name}} fatiado`,failedTitle:`Falha ao fatiar`,failedToast:`Falha ao fatiar {{name}}: {{detail}}`,tier:{local:`Importado`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`Padrão`},cloud:{notAuthenticated:`Faça login no Bambu Cloud (Configurações → Perfis → Bambu Cloud) para ver as predefinições.`,expired:`Sessão do Bambu Cloud expirou – faça login novamente para atualizar as predefinições.`,unreachable:`Bambu Cloud está inacessível agora. Predefinições locais e padrão ainda funcionam.`},orcaCloud:{notAuthenticated:`Entre no Orca Cloud (Perfis → Orca Cloud) para ver seus presets Orca.`,expired:`Sessão do Orca Cloud expirada — entre novamente para atualizar seus presets Orca.`,unreachable:`Orca Cloud está indisponível no momento. Outros presets continuam funcionando.`},bedType:{label:`Mesa de impressão`,auto:`Auto (usar predefinição de processo)`,coolPlate:`Cool Plate`,coolPlateSuperTack:`Cool Plate SuperTack`,engineering:`Engineering Plate`,highTemp:`High Temp Plate`,texturedPEI:`Textured PEI Plate`,smoothPEI:`Smooth PEI Plate`},pipelines:{label:`Pipeline`,applyAria:`Aplicar pipeline`,applyPrompt:`Aplicar pipeline…`,empty:`Nenhuma pipeline salva`,saveButton:`Salvar como pipeline`,saveTitle:`Salvar a seleção atual dos quatro slots como uma pipeline reutilizável`,namePlaceholder:`Nome da pipeline`,nameAria:`Novo nome de pipeline`,toast:{applied:`"{{name}}" aplicada`,saved:`Pipeline salva`,saveFailed:`Falha ao salvar`}}},spoolman:{title:`Integração com Spoolman`,enabled:`Spoolman Ativado`,url:`URL do Spoolman`,connected:`Conectado`,disconnected:`Não Conectado`,testConnection:`Testar Conexão`,sync:`Sincronizar`,syncing:`Sincronizando...`,lastSync:`Última Sincronização`,linkToSpoolman:`Vincular ao Spoolman`,openInSpoolman:`Abrir no Spoolman`,unlinkSpool:`Desvincular Carretel`,unlinkConfirmTitle:`Remover atribuição do carretel?`,unlinkConfirmMessage:`Isso removerá o carretel deste slot. Os dados do próprio carretel permanecerão inalterados.`,selectSpool:`Selecionar Carretel`,noUnlinkedSpools:`Nenhum carretel não atribuído disponível`,linkSuccess:`Carretel atribuído com sucesso`,linkFailed:`Falha ao atribuir carretel`,unlinkSuccess:`Atribuição do carretel removida com sucesso`,unlinkFailed:`Falha ao remover atribuição do carretel`,linkedSpool:`Carretel atribuído`,spoolId:`Carretel ID (Spool ID)`,fillSourceLabel:`(Spoolman)`,weight:`Peso`,remaining:`Restante`,disableWeightSync:`Desativar Sincronização de Peso Estimado do AMS`,disableWeightSyncDesc:`Não atualize a capacidade restante a partir das estimativas do AMS. Use isso se preferir o rastreamento de uso do Spoolman em vez das estimativas baseadas em porcentagem do AMS. Novos carretéis ainda usarão a estimativa do AMS como seu peso inicial.`,reportPartialUsage:`Relatar Uso Parcial para Impressões Falhadas`,reportPartialUsageDesc:`Quando uma impressão falha ou é cancelada, relate o filamento estimado usado até aquele ponto com base no progresso das camadas.`},locations:{title:`Locais de armazenamento`,subtitle:`Gerencie prateleiras, gavetas e outros locais físicos para bobinas`,add:`Adicionar local`,addShort:`Adicionar`,edit:`Editar local`,name:`Nome`,spools:`Bobinas`,empty:`Nenhum local de armazenamento. Crie sua primeira prateleira ou gaveta.`,manage:`Locais`,createPlaceholder:`ex. Prateleira A, Gaveta 1`,nameRequired:`O nome do local é obrigatório`,created:`Local criado`,updated:`Local atualizado`,deleted:`Local excluído`,saveFailed:`Falha ao salvar local`,deleteFailed:`Falha ao excluir local`,deleteBlocked:`Remova todas as bobinas deste local antes de excluir`,confirmDelete:`Excluir «{{name}}»?`,confirmDeleteMessage:`Este local será removido do catálogo. Mova as bobinas primeiro.`},inventory:{title:`Inventário de Carretéis`,subtitle:`Gerencie seus carretéis`,addToInventory:`Adicionar ao Inventário`,addToInventoryPending:`Adicionando...`,addToInventorySuccess:`Carretel adicionado ao inventário`,addToInventoryFailed:`Falha ao adicionar carretel ao inventário`,unknownSpoolTitle:`Novo filamento detectado`,unknownSpoolMessage:`Um carretel com tag RFID desconhecido foi detectado em {{location}}. Adicioná-lo ao seu inventário agora?`,unknownSpoolSlot:`Slot`,bulk:{selectAllVisible:`Selecionar todos os visíveis`,selectRow:`Selecionar linha`,selectGroup:`Selecionar grupo`,selectionCount:`{{count}} selecionados`,edit:`Editar`,printLabels:`Imprimir etiquetas`,resetUsage:`Redefinir uso`,restore:`Restaurar`,archive:`Arquivar`,delete:`Excluir`,clearSelection:`Limpar seleção`,editTitle:`Editar carretéis em massa`,editSubtitle:`Aplica-se a {{count}} carretéis selecionados. Apenas os campos marcados serão atualizados.`,editHint:`Digite em um campo para marcá-lo para atualização — apenas linhas marcadas são enviadas. Deixar um campo vazio mantém os carretéis inalterados (limpar campos só é feito por carretel).`,useCustom:`Usar "{{value}}"`,toggleField:`Ativar atualização deste campo`,changeCount:`{{count}} campos serão atualizados.`,applyPending:`Aplicando...`,applyButton:`Aplicar a {{count}} carretéis`,deleteTitle:`Excluir carretéis selecionados`,archiveTitle:`Arquivar carretéis selecionados`,restoreTitle:`Restaurar carretéis selecionados`,resetUsageTitle:`Redefinir uso dos carretéis selecionados`,deleteMessage:`Excluir permanentemente {{count}} carretéis? Esta ação não pode ser desfeita.`,archiveMessage:`Arquivar {{count}} carretéis? Eles podem ser restaurados depois.`,restoreMessage:`Restaurar {{count}} carretéis arquivados?`,resetUsageMessage:`Redefinir o contador "Total Consumido" em {{count}} carretéis? O peso restante é preservado.`,updateSuccess:`{{count}} carretéis atualizados`,updateFailed:`Atualização em massa falhou`,updatePartial:`{{ok}} carretéis atualizados, {{failed}} falharam`,updateAllFailed:`Todas as {{count}} atualizações falharam — a seleção é mantida para nova tentativa`,deleteSuccess:`{{count}} carretéis excluídos`,deleteFailed:`Exclusão em massa falhou`,deletePartial:`{{ok}} carretéis excluídos, {{failed}} falharam`,deleteAllFailed:`Todas as {{count}} exclusões falharam — a seleção é mantida para nova tentativa`,archiveSuccess:`{{count}} carretéis arquivados`,archiveFailed:`Arquivamento em massa falhou`,archivePartial:`{{ok}} carretéis arquivados, {{failed}} falharam`,archiveAllFailed:`Todos os {{count}} arquivamentos falharam — a seleção é mantida para nova tentativa`,restoreSuccess:`{{count}} carretéis restaurados`,restoreFailed:`Restauração em massa falhou`,restorePartial:`{{ok}} carretéis restaurados, {{failed}} falharam`,restoreAllFailed:`Todas as {{count}} restaurações falharam — a seleção é mantida para nova tentativa`,invalidHex:`Digite 6 caracteres hex (RRGGBB) ou 8 (RRGGBBAA). Caso contrário o campo não será aplicado.`},spoolmanMixedContentTitle:`Spoolman não pode carregar em HTTPS — conteúdo misto bloqueado pelo navegador`,spoolmanMixedContentBody:`O Bambuddy é servido via HTTPS (pelo seu reverse proxy), mas a URL do Spoolman ainda é HTTP. Os navegadores bloqueiam conteúdo misto por segurança, então a interface embutida do Spoolman não consegue carregar. O Spoolman também precisa estar acessível via HTTPS.`,spoolmanMixedContentFixReverseProxy:`Coloque o Spoolman atrás do mesmo reverse proxy do Bambuddy (Traefik / Nginx / Caddy) com HTTPS e atualize a URL do Spoolman em Configurações com o novo endereço HTTPS.`,spoolmanMixedContentFixOpenNewTab:`Como alternativa, abra o Spoolman em uma nova aba via HTTP — as regras de conteúdo misto só se aplicam a frames embutidos, uma aba independente funciona normalmente.`,spoolmanOpenInNewTab:`Abrir Spoolman em nova aba`,labels:{title:`Imprimir etiquetas de bobinas`,selectedCount:`{{count}} selecionado`,pickSpools:`Escolha para quais bobinas imprimir etiquetas:`,monochrome:`Monocromático (impressora preto e branco)`,monochromeHint:`Remove a amostra de cor e amplia o texto`,searchPlaceholder:`Buscar por nome, marca ou #ID`,filterByMaterial:`Material:`,allMaterials:`Tudo`,selectVisible:`Selecionar todos visíveis ({{count}})`,deselectVisible:`Desmarcar visíveis`,clearAll:`Limpar tudo`,noSpoolsToShow:`Nenhuma bobina para mostrar. Ajuste o filtro e tente novamente.`,noMatches:`Nenhuma bobina corresponde à pesquisa ou filtro atual.`,printOne:`Imprimir etiqueta desta bobina`,printLabels:`Imprimir etiquetas…`,bulkTitle:`Escolha bobinas para etiquetar entre as {{count}} exibidas`,noSpoolsTitle:`Nenhuma bobina para rotular`,error:`Não foi possível gerar etiquetas: {{msg}}`,sortBy:{label:`Ordenar:`,id:`Por ID`,color:`Por cor`},templates:{amsHolderSmall:{label:`Suporte AMS — pequeno (74 × 33 mm)`,hint:`Uma etiqueta por página; corresponde à etiqueta imprimível do modelo MakerWorld 752566 (Suporte de etiquetas de filamento AMS).`},amsHolderLarge:{label:`Suporte AMS — grande (75 × 55 mm)`,hint:`Uma etiqueta por página; encaixa na variante com inserto em cartão do Suporte de etiquetas de filamento AMS. Espaço suficiente para amostra de cor, marca, material, ID e QR code.`},box40x30:{label:`Etiqueta de caixa (40 × 30 mm)`,hint:`Uma etiqueta por página; tamanho comum de rolo DK/Brother, ideal para etiquetar sacos de filamento e caixas de armazenamento.`},box:{label:`Box label (62 × 29 mm)`,hint:`Uma etiqueta por página; tamanho para Brother PT/QL e etiquetas pequenas Dymo.`},averyL7160:{label:`Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)`,hint:`Formato de folha UE; 21 etiquetas por página A4.`},avery5160:{label:`Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)`,hint:`Formato de folha US; 30 etiquetas por página Letter.`}}},csv:{importButton:`Importar CSV`,exportButton:`Exportar CSV`,modalTitle:`Importar carretéis de CSV`,selectFile:`Escolha um arquivo CSV ou arraste-o aqui`,dragHint:`Cabeçalho: material (obrigatório), brand, subtype, color_name, rgba, …`,parsing:`Lendo arquivo…`,previewError:`Não foi possível ler o arquivo CSV`,validCount:`{{count}} válidos`,errorCount:`{{count}} com erro`,skippedCount:`{{count}} ignorados`,colRow:`Linha`,colStatus:`Status`,colColor:`Cor`,colorResolved:`Cor preenchida pelo catálogo`,colorCrossMaterial:`Cor obtida de um material diferente — sem correspondência exata no catálogo`,duplicateExisting:`Já existe uma bobina com este material, marca e cor — ela será importada mesmo assim como uma nova bobina`,spoolmanHint:`No modo Spoolman, use a importação/exportação CSV integrada do Spoolman.`,importValidRows:`Importar {{count}} linhas válidas`,noValidRows:`Nenhuma linha válida`,importing:`Importando…`,importSuccess:`{{count}} carretéis importados`,importError:`Falha na importação`,exportError:`Falha na exportação`},addSpool:`Adicionar Carretel`,editSpool:`Editar Carretel`,copySpool:`Copiar Carretel`,material:`Material`,selectMaterial:`Selecionar material...`,subtype:`Subtipo`,brand:`Marca`,searchBrand:`Pesquisar marca...`,useCustomBrand:`Usar "{{brand}}"`,useCustomMaterial:`Usar material personalizado: {{material}}`,suggestedOptions:`Sugeridos`,allOptions:`Todos`,colorName:`Nome da Cor`,colorNamePlaceholder:`Branco Jade, Vermelho Fogo...`,color:`Cor`,hexColor:`Cor Hexadecimal`,pickColor:`Escolher cor personalizada`,labelWeight:`Peso da Etiqueta`,coreWeight:`Peso do Carretel Vazio`,searchSpoolWeight:`Pesquisar peso do carretel...`,weightUsed:`Usado`,currentWeight:`Peso Restante`,measuredWeight:`Peso Medido`,spoolName:`Bobina`,costPerKg:`Custo por kg`,storageLocation:`Local de armazenamento`,storageLocationPlaceholder:`ex. Prateleira A, Gaveta 1`,openInInventory:`Abrir no inventário`,measuredWeightError:`O peso medido deve estar entre {{min}}g e {{max}}g.`,slicerFilament:`Filamento do Fatiador`,slicerFilamentName:`Nome do Predefinido do Fatiador`,slicerPreset:`Predefinido do Fatiador`,searchPresets:`Pesquisar predefinições de filamento...`,selectedPreset:`Selecionado`,noPresetsFound:`Nenhuma predefinição encontrada`,tempOverrides:`Substituições de Temperatura`,note:`Nota`,notePlaceholder:`Quaisquer notas adicionais sobre este spool...`,category:`Categoria`,categoryPlaceholder:`ex. Produção, Protótipo, Cliente A`,categoryNone:`Sem categoria`,storageLocationNone:`Sem local definido`,lowStockThresholdOverride:`Limite de estoque baixo (este carretel)`,lowStockThresholdOverrideHelp:`Deixe em branco para usar o limite global ({{global}}%).`,clearRfid:`Limpar tag RFID`,rfidCleared:`Tag RFID limpa`,archive:`Arquivar`,restore:`Restaurar`,noSpools:`Nenhum carretel ainda. Adicione seu primeiro carretel para começar.`,noAvailableSpools:`Nenhum carretel disponível. Adicione um carretel ao seu inventário ou desatribua um de outro slot primeiro.`,kProfiles:`K-Perfis`,addKProfile:`Adicionar K-Perfil`,assignSpool:`Atribuir Carretel`,unassignSpool:`Desatribuir`,assignSuccess:`Carretel atribuído e slot AMS configurado`,assignPendingInsert:`Atribuído. O slot será configurado quando você inserir o carretel.`,assignFailed:`Falha ao atribuir carretel`,selectSpool:`Selecione um carretel para atribuir a este slot`,assigned:`Atribuído`,assigning:`Atribuindo...`,searchSpools:`Pesquisar carretéis...`,showAllSpools:`Mostrar todos os carretéis`,spoolmanSpools:`Bobinas Spoolman`,allMaterials:`Todos os Materiais`,filterByBrand:`Filtrar por marca...`,showArchived:`Mostrar arquivados`,quickAdd:`Adição rápida (Estoque)`,quantity:`Quantidade`,stock:`Estoque`,configured:`Configurado`,spoolsCreated:`{{count}} carretéis criados`,spoolsPartiallyCreated:`{{created}} de {{total}} carretéis criados (alguns falharam)`,spoolCreated:`Carretel criado`,spoolUpdated:`Carretel atualizado`,spoolDeleted:`Carretel excluído`,deepLinkSpoolNotFound:`Carretel não encontrado`,deepLinkFetchFailed:`Não foi possível carregar o carretel — tente novamente`,spoolArchived:`Carretel arquivado`,spoolRestored:`Carretel restaurado`,kProfileSaveFailed:`Não foi possível salvar as configurações do perfil K`,syncWeightSpoolNotFound:`Carretel não encontrado — pode ter sido excluído`,syncWeightSpoolmanUnreachable:`Spoolman está inacessível — tente novamente mais tarde`,syncWeightFailed:`Falha ao sincronizar o peso`,spoolmanUnreachable:`Spoolman está inacessível — tente novamente mais tarde`,deleteSpoolNotFound:`Carretel não encontrado — pode já ter sido excluído`,deleteFailed:`Falha ao excluir carretel`,archiveSpoolNotFound:`Carretel não encontrado — pode já ter sido excluído`,archiveFailed:`Falha ao arquivar carretel`,restoreSpoolNotFound:`Carretel não encontrado — pode já ter sido excluído`,restoreFailed:`Falha ao restaurar carretel`,saveFailed:`Falha ao salvar as alterações`,tagClearFailed:`Falha ao limpar a tag`,deleteConfirm:`Tem certeza de que deseja excluir este carretel? Esta ação não pode ser desfeita.`,archiveConfirm:`Tem certeza de que deseja arquivar este carretel?`,advancedSettings:`Configurações Avançadas`,filamentInfoTab:`Informações do Filamento`,paProfileTab:`Perfil PA`,filamentInfo:`Filamento`,additional:`Adicional`,loadingPresets:`Carregando predefinições da nuvem...`,cloudConnected:`Nuvem conectada`,cloudNotConnected:`Nuvem não conectada (usando padrões)`,recentColors:`Recentes`,searchColors:`Pesquisar cores...`,searchResults:`Resultados da pesquisa`,allColors:`Todas as cores`,commonColors:`Cores comuns`,showLess:`Mostrar menos`,showAll:`Mostrar tudo`,noColorsFound:`Nenhuma cor corresponde à sua pesquisa`,noResults:`Nenhum resultado encontrado`,extraColorsLabel:`Cores extras`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`Cole 2 a 8 paradas hex, separadas por vírgulas. Renderizado como gradiente.`,extraColorsInvalid:`Hex inválidos ignorados: {{tokens}}`,colorEffectLabel:`Efeito`,colorEffect:{none:`Nenhum`,sparkle:`Brilho`,wood:`Madeira`,marble:`Mármore`,glow:`Brilho`,matte:`Fosco`,silk:`Silk`,galaxy:`Galáxia`,rainbow:`Arco-íris`,metal:`Metal`,translucent:`Translúcido`,gradient:`Gradiente`,dualColor:`Dupla cor`,triColor:`Tricolor`,multicolor:`Multicolor`},selectMaterialFirst:`Por favor, selecione um material primeiro na aba Informações do Filamento.`,noPrintersConfigured:`Nenhuma impressora configurada. Adicione impressoras para usar perfis PA.`,matchingFilter:`Correspondente`,anyBrand:`Qualquer marca`,anyVariant:`Qualquer variante`,autoSelect:`Seleção automática`,matches:`correspondências`,match:`correspondência`,noMatches:`Nenhuma correspondência`,connected:`Conectado`,offline:`Offline`,printerOffline:`A impressora está offline. Conecte-se para visualizar os perfis de calibração.`,noKProfilesMatch:`Nenhum K-perfil corresponde ao filamento selecionado.`,leftNozzle:`Bico Esquerdo`,rightNozzle:`Bico Direito`,profilesSelected:`perfil(is) de calibração selecionado(s)`,totalInventory:`Inventário Total`,totalConsumed:`Total Consumido`,byMaterial:`Por Material`,inPrinter:`Na Impressora`,lowStock:`Estoque Baixo`,sinceTracking:`Desde o início do rastreamento`,resetConsumedCounter:`Zerar contador`,resetConsumedCounterTooltip:`Zerar o contador de gramas consumidas desta bobina. O peso restante não é alterado.`,resetConsumedCounterConfirm:`Zerar o contador de gramas consumidas desta bobina? As impressões futuras voltarão a contar do zero. A bobina em si, o cálculo do peso restante e as configurações não são alterados.`,resetAllConsumedCounters:`Zerar todos os contadores`,resetAllConsumedCountersTooltip:`Zerar o contador de gramas consumidas em todas as bobinas. Os pesos restantes não são alterados.`,resetAllConsumedCountersConfirm:`Zerar o contador de gramas consumidas nas {{count}} bobinas (incluindo as arquivadas)? Isso limpa o "Total Consumido" para que as impressões futuras contem do zero. Bobinas e pesos restantes não são alterados.`,consumedCounterReset:`Contador zerado`,allConsumedCountersReset:`Contador zerado em {{count}} bobina(s)`,resetConsumedCounterFailed:`Falha ao zerar o contador`,loadedInAms:`Carregado no AMS/Ext`,remaining:`Restante`,weightCheck:`Verificação de Peso`,lastWeighed:`Última pesagem`,neverWeighed:`Nunca pesado`,search:`Pesquisar carretéis...`,showing:`Mostrando`,to:`até`,of:`de`,show:`Mostrar`,spools:`carretéis`,spool:`carretel`,page:`Página`,noSpoolsMatch:`Nenhum resultado encontrado`,noSpoolsMatchDesc:`Tente ajustar sua pesquisa ou filtros para encontrar o que você está procurando.`,active:`Ativo`,archived:`Arquivado`,all:`Todos`,used:`Usado`,new:`Novo`,clearFilters:`Limpar filtros`,table:`Tabela`,cards:`Cartões`,net:`Líquido`,groupSimilar:`Agrupar`,groupedSpools:`{{count}} carretéis idênticos`,groupedRows:`linhas`,columns:`Colunas`,configureColumns:`Configurar Colunas`,configureColumnsDesc:`Arraste para reordenar as colunas ou use as setas. Alterne a visibilidade com o ícone de olho.`,visible:`Visível`,reset:`Redefinir`,cancel:`Cancelar`,applyChanges:`Aplicar Alterações`,moveUp:`Mover para cima`,moveDown:`Mover para baixo`,hideColumn:`Ocultar coluna`,showColumn:`Mostrar coluna`,linkToSpool:`Vincular ao Carretel`,tagLinked:`Tag vinculada ao carretel`,tagLinkFailed:`Falha ao vincular tag`,tagAlreadyLinked:`Tag já vinculada a outro carretel`,unknownTag:`Tag RFID desconhecida detectada`,usageHistory:`Histórico de Uso`,noUsageHistory:`Nenhum uso registrado ainda`,printName:`Nome da Impressão`,weightConsumed:`Peso Consumido`,clearHistory:`Limpar`,historyCleared:`Histórico de uso limpo`,fillSourceLabel:`(Inv)`,lowStockThresholdError:`O limite deve estar entre 0.1 e 99.9`,assignMismatchTitle:`Incompatibilidade de material`,assignMismatchMessage:`O material do carretel selecionado "{{spoolMaterial}}" não corresponde ao material da bandeja "{{trayMaterial}}" para {{location}}. Atribuir mesmo assim?`,assignMismatchConfirm:`Atribuir mesmo assim`,assignPartialMismatchMessage:`O material do carretel "{{spoolMaterial}}" é semelhante, mas não corresponde exatamente a "{{trayMaterial}}" em {{location}}. Deseja prosseguir?`,assignProfileMismatchMessage:`O perfil do carretel "{{spoolProfile}}" não corresponde ao perfil da bandeja "{{trayProfile}}" em {{location}}. Deseja prosseguir?`,assignReconfigureNote:`O slot do AMS será reconfigurado para usar o perfil do carretel.`,spoolmanFilamentCatalog:`Catálogo de filamentos Spoolman`,pickFromSpoolmanCatalog:`Escolher do catálogo Spoolman…`,spoolmanFilamentSelected:`Filamento selecionado do catálogo Spoolman`,spoolmanFilamentUnlinked:`Vínculo com o catálogo de filamentos removido`,noSpoolmanFilaments:`Nenhum filamento encontrado no catálogo Spoolman`,spoolmanFilamentColorSwatch:`Cor do filamento`,spoolWeightManagedBySpoolman:`O peso do carretel vazio é gerenciado por tipo de filamento no Spoolman`,spoolmanCatalogLoadFailed:`Falha ao carregar catálogo de filamentos do Spoolman`},timelapse:{title:`Timelapse`,create:`Criar Timelapse`,download:`Baixar`,delete:`Excluir`,preview:`Visualizar`,frameRate:`Taxa de Quadros`,quality:`Qualidade`,processing:`Processando...`,noTimelapses:`Nenhum timelapse disponível`},ams:{title:`AMS`,slot:`Slot`,empty:`Vazio`,emptySlot:`Slot vazio`,slotEmpty:`Vazio`,slotUnconfigured:`?`,emptySlotReset:`Nenhum carretel atribuído`,unknown:`Desconhecido`,humidity:`Umidade`,temperature:`Temperatura`,filamentType:`Tipo de Filamento`,filamentColor:`Cor`,remaining:`Restante`,history:`Histórico do AMS`,noHistory:`Nenhum histórico disponível`,configureSlot:`Configurar Slot`,externalSpool:`Carretel Externo`,profile:`Perfil`,kFactor:`Fator K`,fill:`Preencher`,configure:`Configurar`,used:`usado`,remainingUnit:`restante`},printModal:{selectPrinter:`Selecionar Impressora`,selectPlate:`Selecionar Placa`,filamentMapping:`Mapeamento de Filamento`,plateN:`Placa {{n}}`,plateFilamentsUnreadable:`Não foi possível ler os filamentos de uma placa selecionada, portanto ela não pode ser mapeada. Desmarque-a para enfileirar as demais.`,totalCost:`Custo total:`,slotRemainingShort:` - {{grams}}g rest.`,printSettings:`Configurações de Impressão`,bedLeveling:`Nivelamento da Mesa`,flowCalibration:`Calibração de Fluxo`,vibrationCalibration:`Calibração de Vibração`,layerInspection:`Inspeção da Primeira Camada`,timelapse:`Timelapse`,cancel:`Cancelar`,noPrintersAvailable:`Nenhuma impressora disponível`,printerBusy:`Impressora ocupada`,printerOffline:`Impressora offline`,sameTypeDifferentColor:`Mesmo tipo, cor diferente`,filamentTypeNotLoaded:`Tipo de filamento não carregado`,whenToPrint:`Quando imprimir`,asap:`O quanto antes`,queue:`Fila`,schedule:`Agendar`,dateTime:`Data e hora`,invalidDateTime:`Digite uma data e hora válidas`,openCalendar:`Abrir calendário`,requireManualStart:`Exigir início manual`,requirePreviousSuccess:`Iniciar somente se a impressão anterior foi concluída com sucesso`,autoOffAfter:`Desligar impressora ao finalizar`,helpAsap:`A impressão será adicionada ao topo da fila e começará assim que uma impressora elegível estiver ociosa.`,helpSchedule:`A impressão começará no horário agendado se a impressora estiver ociosa. Se estiver ocupada, aguardará até ficar disponível.`,helpQueue:`A impressão será adicionada ao fim da fila.`,leftNozzle:`L`,rightNozzle:`R`,leftNozzleTooltip:`Bico esquerdo`,rightNozzleTooltip:`Bico direito`,filamentOverride:`Substituição de Filamento`,filamentOverrideHint:`Substitua opcionalmente os filamentos para atribuição baseada em modelo. O agendador usará os filamentos selecionados em vez dos valores originais do 3MF.`,originalFilament:`Original`,overrideWith:`Substituir por`,resetToOriginal:`Restaurar original`,insufficientFilamentTitle:`Filamento insuficiente`,waitingForAmsStatus:`Aguardando o status do AMS de {{printer}}…`,insufficientFilamentMessage:`Alguns dos carretéis atribuídos têm menos filamento restante do que o necessário para esta impressão:`,insufficientFilamentLine:`{{printer}} - {{slot}}: necessário {{required}}g, restante {{remaining}}g`,printAnyway:`Imprimir mesmo assim`,forceColorMatch:`Forçar correspondência de cor`,staggerPrinterStarts:`Escalonar inícios`,staggerGroupSize:`Tamanho do grupo`,staggerInterval:`Intervalo (min)`,staggerPreview:`{{printers}} impressoras → {{groups}} grupos de {{size}}, iniciando a cada {{interval}} min`,staggerLastGroup:`último grupo: {{count}}`,staggerTotal:`total: {{minutes}} min`,staggerToPrinters:`Escalonar para {{count}} impressoras`,gcodeInjection:`Injetar G-code de auto-impressão`},backup:{includesEncryptionKey:`Backups locais incluem o arquivo da chave de criptografia MFA (DATA_DIR/.mfa_encryption_key), então o backup ZIP é autossuficiente. Trate o ZIP como sensível — quem tiver o arquivo pode descriptografar os client secrets OIDC e os segredos TOTP armazenados.`,title:`Bakup e Restauração`,createBackup:`Criar Backup`,restoreBackup:`Restaurar Backup`,restoreDescription:`Substituir todos os dados a partir de um arquivo de backup`,downloadBackup:`Baixar Backup`,uploadBackup:`Enviar Backup`,lastBackup:`Último Backup`,autoBackup:`Backup automático`,backupNow:`Fazer Backup Agora`,restoreWarning:`Aviso: Restaurar um backup substituirá todos os dados atuais.`,includeArchives:`Incluir Arquivos`,includeSettings:`Incluir Configurações`,includeProfiles:`Incluir Perfis`,backupSuccess:`Backup criado com sucesso`,restoreSuccess:`Backup restaurado com sucesso`,backupFailed:`Falha ao criar backup`,restoreFailed:`Falha ao restaurar backup`,restoreNote:`A impressora virtual será parada durante a restauração`,githubBackup:`Backup GitHub`,enabled:`Ativado`,cloudLoginRequired:`Login no Bambu Cloud necessário. Entre em Perfis → Perfis Cloud para ativar o backup GitHub.`,cloudLoginRequiredShort:`Login Cloud necessário`,githubDescription:`Sincronize automaticamente seus perfis com um repositório GitHub privado para backup e histórico de versões.`,repoIsPrivate:`O repositório é privado — seguro para backup.`,repoIsPublicWarning:`O repositório está PÚBLICO. Os backups do Bambuddy incluem credenciais MQTT, tokens do Home Assistant, tokens do Prometheus, seu e-mail do Bambu Cloud e os códigos de acesso das impressoras via K-profiles. Salvar está bloqueado até que você torne o repositório privado nas configurações do seu provedor.`,repoVisibilityUnknown:`Não foi possível determinar a visibilidade do repositório. O Bambuddy se recusa a fazer backup em qualquer destino não confirmado como privado; salvar será bloqueado.`,repositoryUrl:`URL do repositório`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`Permitir HTTP inseguro`,allowInsecureHttpHint:`Ativar para instâncias auto-hospedadas em redes privadas sem TLS`,personalAccessToken:`Token de acesso pessoal`,tokenSaved:`(salvo)`,enterNewToken:`Digite um novo token para atualizar`,tokenHint:`Token de granularidade fina com permissão de leitura/escrita de conteúdo`,branch:`Branch`,provider:`Provedor Git`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`Apenas manual`,hourly:`A cada hora`,daily:`Diário`,weekly:`Semanal`,includeInBackup:`Incluir no backup`,kProfiles:`K-Perfis`,kProfilesDescription:`Calibração de avanço de pressão das impressoras conectadas`,noPrintersConnected:`Nenhuma impressora conectada`,printersConnected:`{{connected}}/{{total}} conectadas`,cloudProfiles:`Perfis Cloud`,cloudProfilesDescription:`Predefinições de filamento, impressora e processo do Bambu Cloud`,appSettings:`Configurações do App`,appSettingsDescription:`Configuração do Bambuddy (banco de dados completo)`,spoolInventory:`Inventário de bobinas`,spoolInventoryDescription:`Bobinas de filamento, histórico de uso e rastreamento de custos`,printArchives:`Arquivos de impressão`,printArchivesDescription:`Metadados do histórico de impressão (sem arquivos gcode/3MF)`,lastBackupAt:`Último backup:`,noBackupsYet:`Nenhum backup ainda`,next:`Próximo:`,startingBackup:`Iniciando backup...`,test:`Testar`,enableBackup:`Ativar backup`,testConnection:`Testar conexão`,enterRepoUrl:`Digite a URL do repositório`,enterRepoAndToken:`Digite a URL do repositório e o token de acesso`,repoRequired:`A URL do repositório é obrigatória`,tokenRequired:`O token de acesso é obrigatório`,githubBackupEnabled:`Backup GitHub ativado`,tokenUpdated:`Token atualizado`,settingsSaved:`Configurações salvas`,failedToSave:`Falha ao salvar: {{message}}`,backupCompleteFiles:`Backup concluído - {{count}} arquivos atualizados`,backupSkippedNoChanges:`Backup ignorado - sem alterações`,backupFailed2:`Falha no backup: {{message}}`,clearedLogs:`{{count}} logs removidos`,failedToClearLogs:`Falha ao limpar logs: {{message}}`,history:`Histórico`,clear:`Limpar`,date:`Data`,status:`Status`,commit:`Commit`,localBackup:`Backup local`,localBackupDescription:`Crie um backup completo dos seus dados do Bambuddy incluindo banco de dados, arquivos, uploads e todos os ficheiros.`,downloadBackupLabel:`Baixar backup`,completeBackupZip:`Backup completo: banco de dados + todos os arquivos (ZIP)`,download:`Baixar`,preparingBackup:`Preparando backup...`,creatingArchive:`Criando arquivo de backup... Isso pode demorar para backups grandes.`,downloadingFile:`Baixando arquivo de backup...`,backupDownloaded:`Backup baixado com sucesso`,failedToCreateBackup:`Falha ao criar backup: {{message}}`,restore:`Restaurar`,restoreReplacesAll:`A restauração substitui todos os dados.`,restoreReplacesAllDetail:`Seu banco de dados e arquivos atuais serão completamente substituídos. É necessário reiniciar após a restauração.`,restoreConfirmTitle:`Restaurar backup`,restoreConfirmMessage:`Tem certeza de que deseja restaurar de "{{filename}}"? Isso substituirá completamente seu banco de dados e todos os arquivos. O aplicativo precisará ser reiniciado após a restauração.`,restoreConfirmButton:`Restaurar backup`,uploadingFile:`Enviando arquivo de backup...`,backupRestoredRestart:`Backup restaurado. Por favor, reinicie o Bambuddy.`,failedToRestore:`Falha ao restaurar backup. Verifique o formato do arquivo.`,reloadNow:`Recarregar agora`,creatingBackup:`Criando backup`,restoringBackup:`Restaurando backup`,preparing:`Preparando...`,processing:`Processando...`,doNotClosePage:`Por favor, não feche esta página nem navegue para outro lugar. Esta operação pode levar vários minutos para backups grandes.`,restoring:`Restaurando...`,restoreComplete:`Restauração concluída`,restoreFailed2:`Falha na restauração`,importSettings:`Importar configurações de um arquivo de backup`,pleaseWaitRestoring:`Aguarde enquanto seus dados estão sendo restaurados`,selectBackupFile:`Clique para selecionar um arquivo de backup (.json ou .zip)`,duplicateHandling:`Como funciona o tratamento de duplicatas:`,matchPrinters:`Impressoras`,matchPrintersBy:`correspondência por número de série`,matchSmartPlugs:`Tomadas inteligentes`,matchSmartPlugsBy:`correspondência por endereço IP`,matchNotificationProviders:`Provedores de notificação`,matchNotificationProvidersBy:`correspondência por nome`,matchFilaments:`Filamentos`,matchFilamentsBy:`correspondência por nome + tipo + marca`,matchArchives:`Arquivos`,matchArchivesBy:`correspondência por hash de conteúdo (sempre ignorado)`,matchPendingUploads:`Uploads pendentes`,matchPendingUploadsBy:`correspondência por nome do arquivo`,matchSettingsTemplates:`Configurações e modelos`,matchSettingsTemplatesBy:`sempre sobrescritos`,replaceExisting:`Substituir dados existentes`,keepExisting:`Manter dados existentes`,overwriteDescription:`Sobrescrever itens que já existem com dados do backup`,keepDescription:`Restaurar apenas itens que ainda não existem`,overwriteCaution:`Cuidado:`,overwriteWarning:`A sobrescrita substituirá suas configurações atuais pelos dados do backup. Códigos de acesso das impressoras nunca são sobrescritos por segurança.`,cancel:`Cancelar`,processingBackup:`Processando arquivo de backup...`,itemsRestored:`Itens restaurados`,itemsSkipped:`Itens ignorados`,restored:`Restaurados`,skippedAlreadyExist:`Ignorados (já existem)`,filesCategory:`Arquivos (3MF, miniaturas, etc.)`,andMore:`...e mais {{count}}`,newApiKeysGenerated:`Novas chaves API geradas`,keysShownOnce:`Estas chaves são exibidas apenas uma vez. Copie-as agora!`,copy:`Copiar`,noDataFound:`Nenhum dado para restaurar foi encontrado no arquivo de backup.`,close:`Fechar`,scheduledBackup:`Backups agendados`,scheduledBackupDescription:`Cria automaticamente snapshots de backup conforme agendamento. O diretório de saída pode ser montado em um NAS ou armazenamento externo.`,frequency:`Frequência`,backupTime:`Tempo`,retention:`Retenção`,retentionDescription:`Número de backups a manter`,outputPath:`Caminho de saída`,outputPathPlaceholder:`Padrão: {{path}}`,outputPathDescription:`Deixe em branco para o local padrão`,runNow:`Executar agora`,backupFiles:`Arquivos de backup`,noScheduledBackups:`Sem backups ainda`,deleteBackup:`Excluir`,deleteBackupConfirm:`Excluir este arquivo de backup?`,backupRunning:`Backup em andamento...`,scheduledBackupComplete:`Backup concluído com sucesso`,scheduledBackupFailed:`Falha no backup`,nextBackup:`Próximo backup`,backupSize:`Tamanho`,localTimeHint:`Horário local ({{tz}})`,defaultPathLabel:`Padrão:`,pathCheck:{title:`O Bambuddy não consegue gravar neste diretório`,howToFix:`Como corrigir:`,sandboxed:`O serviço do Bambuddy não consegue gravar em {{path}}. Sua unit do systemd roda com ProtectSystem=strict, o que torna todo diretório fora dos diretórios de instalação, dados e logs somente leitura para o serviço - mesmo um em que você consegue gravar pelo seu próprio shell.`,read_only:`{{path}} está em um sistema de arquivos somente leitura.`,permission_denied:`O Bambuddy não tem permissão para gravar em {{path}}. Verifique o dono e as permissões do diretório.`,no_space:`O sistema de arquivos que contém {{path}} está cheio.`,not_a_directory:`{{path}} existe, mas não é um diretório.`,missing:`{{path}} não existe e não pôde ser criado.`,error:`O Bambuddy não consegue gravar em {{path}}.`,ephemeralTitle:`Estes backups não sobrevivem à recriação do contêiner`,container_ephemeral:`{{path}} está dentro do contêiner do Bambuddy, não no host. Backups gravados ali são perdidos quando o contêiner é recriado. Monte o diretório do host:`},categories:{settings:`Configurações`,notification_providers:`Provedores de notificação`,notification_templates:`Modelos de notificação`,smart_plugs:`Tomadas inteligentes`,printers:`Impressoras`,filaments:`Filamentos`,maintenance_types:`Tipos de manutenção`,archives:`Arquivos`,projects:`Projetos`,pending_uploads:`Uploads pendentes`,external_links:`Links externos`,api_keys:`Chaves API`}},tags:{title:`Etiquetas`,addTag:`Adicionar Tag`,editTag:`Editar Tag`,deleteTag:`Excluir Tag`,tagName:`Nome da Tag`,tagColor:`Cor da Tag`,noTags:`Nenhuma tag`,deleteConfirm:`Tem certeza de que deseja excluir esta tag?`,manageTags:`Gerenciar Tags`},uploadModal:{title:`Upload Arquivos 3MF`,dragDrop:`Arraste e solte arquivos .3mf aqui`,or:`ou`,browseFiles:`Procurar Arquivos`,extractionInfo:`O modelo da impressora será extraído automaticamente dos metadados do arquivo 3MF.`,uploaded:`enviado`,failed:`falhou`,uploading:`Enviando...`,upload:`Enviar`,uploadFailed:`Falha no envio`},editArchive:{title:`Editar Arquivo`,name:`Nome`,namePlaceholder:`Nome da impressão`,printer:`Impressora`,noPrinter:`Nenhuma impressora`,project:`Projeto`,noProject:`Nenhum projeto`,itemsPrinted:`Itens Impressos`,itemsPrintedHelp:`Número de itens produzidos neste trabalho de impressão`,notes:`Notas`,notesPlaceholder:`Adicione notas sobre esta impressão...`,externalLink:`Link Externo`,externalLinkPlaceholder:`https://printables.com/model/...`,externalLinkHelp:`Link para Printables, Thingiverse ou outra fonte`,tags:`Etiquetas`,tagsPlaceholder:`Adicionar tags...`,addMoreTags:`Adicionar mais tags...`,matchingTags:`Correspondendo "{{query}}"`,existingTags:`Tags existentes`,clickToAdd:`(clique para adicionar)`,status:`Status`,failureReason:`Motivo da Falha`,selectReason:`Selecione o motivo...`,photos:`Fotos do Resultado da Impressão`,photosHelp:`Clique em + para adicionar fotos do seu resultado impresso`,printResult:`Resultado da Impressão`,saving:`Salvando...`,failureReasons:{adhesionFailure:`Falha de adesão`,spaghettiDetached:`Spaghetti / Destacado`,layerShift:`Deslocamento de camada`,cloggedNozzle:`Bico entupido`,filamentRunout:`Fim do filamento`,warping:`Empenamento`,stringing:`Fios`,underExtrusion:`Subextrusão`,powerFailure:`Falha de energia`,userCancelled:`Cancelado pelo usuário`,other:`Outro`},statuses:{completed:`Concluído`,failed:`Falhou`,aborted:`Cancelado`,printing:`Imprimindo`}},kProfiles:{title:`Perfis K`,noPrintersConfigured:`Nenhuma impressora configurada`,addPrinterInSettings:`Adicione uma impressora nas Configurações para gerenciar K-profiles`,noActivePrinters:`Nenhuma impressora ativa`,enablePrinterConnection:`Ative a conexão da impressora para visualizar seus K-profiles`,loadingProfiles:`Carregando K-Profiles...`,printerOffline:`Impressora Offline`,printerOfflineDesc:`A impressora selecionada não está conectada. Ligue-a para visualizar os K-profiles.`,noMatchingProfiles:`Nenhum Perfil Correspondente`,noMatchingProfilesDesc:`Nenhum perfil corresponde aos seus critérios de pesquisa`,noKProfiles:`Nenhum K-Profile`,noKProfilesDesc:`Nenhum perfil de avanço de pressão encontrado para bico de {{diameter}}mm`,createFirstProfile:`Criar Primeiro Perfil`,printer:`Impressora`,nozzle:`Bico`,refresh:`Atualizar`,addProfile:`Adicionar Perfil`,export:`Exportar`,import:`Importar`,select:`Selecionar`,selectAll:`Selecionar Todos`,delete:`Excluir`,searchPlaceholder:`Pesquisar por nome ou filamento...`,allExtruders:`Todos os Extrusores`,leftOnly:`Apenas Esquerdo`,rightOnly:`Apenas Direito`,allFlow:`Todo Fluxo`,hfOnly:`Apenas HF`,sOnly:`Apenas S`,sortName:`Ordenar: Nome`,sortKValue:`Ordenar: Valor K`,sortFilament:`Ordenar: Filamento`,leftExtruder:`Extrusor Esquerdo`,rightExtruder:`Extrusor Direito`,modal:{addTitle:`Adicionar K-Profile`,editTitle:`Editar K-Profile`,profileName:`Nome do Perfil`,profileNamePlaceholder:`Meu Perfil PLA`,kValue:`Valor K`,kValuePlaceholder:`0.020`,kValueHelp:`Faixa típica: 0.01 - 0.06 para PLA, 0.02 - 0.10 para PETG`,filament:`Filamento`,selectFilament:`Selecionar filamento...`,noFilamentsHelp:`Nenhum filamento encontrado. Crie um K-profile no Bambu Studio primeiro.`,flowType:`Tipo de Fluxo`,highFlow:`Alto Fluxo`,standard:`Padrão`,nozzleSize:`Tamanho do Bico`,extruder:`Extrusor`,extruders:`Extrusores`,left:`Esquerdo`,right:`Direito`,notes:`Notas (armazenadas localmente)`,notesPlaceholder:`Adicione notas sobre este perfil...`,notesHelp:`As notas são salvas no Bambuddy, não na impressora`,syncing:`Sincronizando com a impressora...`,savingExtruder:`Salvando no extrusor {{current}}/{{total}}...`,pleaseWait:`Por favor, aguarde`},deleteConfirm:{title:`Excluir Perfil`,cannotUndo:`Isso não pode ser desfeito`,message:`Tem certeza de que deseja excluir "{{name}}" da impressora?`},bulkDelete:{title:`Excluir Perfis`,cannotUndo:`Isso não pode ser desfeito`,message:`Tem certeza de que deseja excluir {{count}} perfis selecionados da impressora?`},toast:{profileSaved:`K-profile salvo`,profilesSaved:`K-profile salvo em {{count}} extrusores`,selectAtLeastOneExtruder:`Por favor, selecione pelo menos um extrusor`,profileDeleted:`K-profile excluído`,profilesDeleted:`{{count}} perfis excluídos`,exportedProfiles:`{{count}} perfis exportados`,importedProfiles:`{{count}} de {{total}} perfis importados`,noProfilesToExport:`Nenhum perfil para exportar`,invalidFileFormat:`Formato de arquivo inválido`,failedToParseImport:`Falha ao analisar o arquivo de importação`,failedToSaveBatch:`Falha ao salvar K-profiles`,noteSaved:`Nota salva`,failedToSaveNote:`Falha ao salvar nota`},permission:{noRead:`Você não tem permissão para atualizar perfis`,noCreate:`Você não tem permissão para adicionar perfis`,noUpdate:`Você não tem permissão para atualizar K-profiles`,noDelete:`Você não tem permissão para excluir K-profiles`,noExport:`Você não tem permissão para exportar perfis`,noImport:`Você não tem permissão para importar perfis`}},virtualPrinter:{title:`Impressora Virtual`,running:`Em execução`,stopped:`Parada`,description:{default:`Ative uma impressora virtual que aparece no Bambu Studio e no OrcaSlicer. Os arquivos enviados para esta impressora serão arquivados diretamente sem impressão.`,proxy:`Ative um proxy que retransmite o tráfego do slicer para uma impressora real, permitindo impressão remota em qualquer rede.`},enable:{title:`Ativar Impressora Virtual`,visibleInSlicer:`Visível como "Bambuddy" na descoberta do slicer`,proxyingTo:`Proxy para {{name}}`,notActive:`Não ativo`},model:{title:`Modelo da Impressora`,description:`Selecione qual modelo de impressora emular.`,restartWarning:`Alterar o modelo reiniciará a impressora virtual`},accessCode:{title:`Código de acesso`,isSet:`O código de acesso está definido`,notSet:`Nenhum código de acesso definido — necessário para ativar.`,placeholder:`Digite um código de 8 caracteres`,placeholderChange:`Digite um novo código para alterar`,hint:`Deve ter exatamente 8 caracteres. Usado pelos slicers para autenticação.`,charCount:`({{count}}/8)`,inheritedFromTarget:`Herdado da impressora alvo`,derivedFromTargetHint:`Usa o código de acesso da impressora alvo. A ponte encaminha a autenticação do slicer para a impressora real, então os códigos precisam corresponder — edite o código nas configurações da impressora para alterá-lo.`,reveal:`Mostrar código de acesso`,hide:`Ocultar código de acesso`},targetPrinter:{title:`Impressora Alvo`,configured:`Proxy alvo configurado`,notConfigured:`Nenhuma impressora alvo selecionada - necessário para o modo proxy`,placeholder:`Selecione uma impressora...`,hint:`Selecione a impressora para a qual o tráfego do slicer será enviado. A impressora deve estar no modo LAN.`,noPrinters:`Nenhuma impressora configurada. Adicione uma impressora primeiro para usar o modo proxy.`},remoteInterface:{title:`Substituição da Interface de Rede`,configured:`Substituição da interface ativa`,optional:`Opcional - use se o IP detectado automaticamente estiver errado (por exemplo, várias NICs, Docker, VPN)`,placeholder:`Detecção automática (padrão)...`,hint:`Substitua o endereço IP anunciado via SSDP e usado no certificado TLS. Útil quando o Bambuddy possui várias interfaces de rede.`},mode:{title:`Modo`,archive:`Arquivar`,archiveDesc:`Arquivar arquivos imediatamente`,review:`Revisar`,reviewDesc:`Revisar antes de arquivar`,queue:`Fila`,queueDesc:`Arquivar e adicionar à fila`,proxy:`Proxy`,proxyDesc:`Retransmitir para impressora real`},autoDispatch:{title:`Envio automático`,description:`Iniciar impressões automaticamente quando adicionadas à fila. Quando desativado, as impressões aguardam envio manual.`},queueForceColorMatch:{title:`Forçar correspondência de cor`,description:`Recusa enviar para uma impressora que não tenha exatamente o tipo e cor de filamento carregados. Desativado por padrão — sem isto, a fila usa apenas correspondência por modelo e pode escolher uma impressora com a cor errada carregada.`},gcodeInjection:{title:`Injeção de G-code`,description:`Aplica os trechos de G-code configurados por modelo nas Configurações aos trabalhos deste VP. Desativado por padrão.`},tailscaleDisabled:{title:`Integração Tailscale`,description:`Ative para marcar este VP como exposto via Tailscale. Mostra o endereço Tailscale do host para você saber qual IP colar no fatiador. A etapa de importação CA é inalterada — este toggle não afeta certificados.`},setupRequired:{title:`Configuração Necessária`,description:`O recurso de impressora virtual requer configuração adicional do sistema antes de funcionar. Isso inclui encaminhamento de portas, regras de firewall e configurações específicas da plataforma.`,readGuide:`Leia o guia de configuração antes de ativar`},howItWorks:{title:`Como funciona`,step1:`Complete o guia de configuração para sua plataforma`,step2:`Ative a impressora virtual e defina um código de acesso`,step3:`No Bambu Studio ou OrcaSlicer, vá para "Adicionar Impressora"`},status:{title:`Detalhes do Status`,printerName:`Nome da Impressora`,model:`Modelo`,serialNumber:`Número de Série`,mode:`Modo`,pendingFiles:`Arquivos Pendentes`,targetPrinter:`Impressora Alvo`,ftpPort:`Porta FTP`,mqttPort:`Porta MQTT`,ftpConnections:`Conexões FTP`,mqttConnections:`Conexões MQTT`},toast:{updated:`Configurações da impressora virtual atualizadas`,failedToUpdate:`Falha ao atualizar as configurações`,copyFailed:`Falha ao copiar — selecione o texto manualmente`,accessCodeRequired:`Defina um código de acesso primeiro`,targetPrinterRequired:`Selecione uma impressora alvo primeiro`,bindIpRequired:`Defina um IP de ligação primeiro`,accessCodeEmpty:`O código de acesso não pode estar vazio`,accessCodeLength:`O código de acesso deve ter exatamente 8 caracteres`,targetCodeChangedRebind:`O código de acesso agora corresponde à nova impressora alvo. Adicione este dispositivo novamente no seu slicer para usar o novo código.`,created:`Impressora virtual criada`,failedToCreate:`Falha ao criar impressora virtual`,deleted:`Impressora virtual excluída`,failedToDelete:`Falha ao excluir impressora virtual`},list:{title:`Impressoras Virtuais`,add:`Adicionar`,addFirst:`Adicionar Impressora Virtual`,empty:`Nenhuma impressora virtual configurada. Adicione uma para começar.`},bindIp:{title:`Interface de Rede`,placeholder:`Selecionar interface...`,hint:`Interface de rede para esta impressora virtual. Deve ser única por impressora.`},proxy:{accessCodeHint:`No modo proxy, use o código de acesso da impressora alvo no slicer. A conexão é encaminhada de forma transparente para a impressora real.`},addDialog:{title:`Adicionar Impressora Virtual`,name:`Nome`,hint:`Você pode configurar o código de acesso, impressora alvo e outras configurações após a criação.`,create:`Criar`},deleteConfirm:{title:`Excluir Impressora Virtual`,message:`Tem certeza que deseja excluir "{{name}}"? Isso irá parar todos os serviços desta impressora.`},archiveNameSource:{title:`Origem do nome do arquivo`,description:`Escolha como os novos arquivos são nomeados quando chegam pela impressora virtual. "Metadados" usa o título embutido pelo slicer no 3MF (padrão). "Nome do arquivo" usa o nome que o Bambu Studio enviou via FTP. Nota: o Bambu Studio sobrescreve o nome digitado no diálogo "enviar para impressora" com o campo Título do 3MF quando presente, portanto ambos os modos costumam produzir a mesma string.`,metadata:`Metadados`,filename:`Nome do arquivo`},caCert:{title:`Certificado do slicer`,description:`As impressoras virtuais usam um certificado TLS assinado pela CA do Bambuddy. Importe este certificado CA para o armazenamento de confiança do seu slicer uma única vez para que ele aceite a conexão — sem precisar copiá-lo pela linha de comando.`,copy:`Copiar`,copied:`Copiado`,download:`Baixar`,fingerprint:`SHA-256`}},modelViewer:{openInSlicer:`Abrir no Slicer`,tabs:{model:`Modelo 3D`,gcode:`Pré-visualização G-code`},notAvailable:`Não disponível`,notSliced:`Não fatiado`,plates:`Placas`,allPlates:`Todas as Placas`,plateNumber:`Placa {{number}}`,plateCount:`{{count}} placa`,plateCount_other:`{{count}} placas`,objectCount:`{{count}} objeto`,objectCount_other:`{{count}} objetos`,filamentCount:`{{count}} filamento`,filamentCount_other:`{{count}} filamentos`,eta:`ETA {{minutes}} min`,noPreview:`Pré-visualização não disponível para este arquivo`,pagination:{pageOf:`Página {{current}} de {{total}}`,prev:`Anterior`,next:`Próximo`},errors:{failedToLoad:`Falha ao carregar o arquivo`,noMeshes:`Nenhuma malha encontrada no arquivo 3MF`,unsupportedFormat:`Formato de arquivo não suportado`}},maintenanceDescriptions:{lubricateCarbonRods:`Aplique lubrificante nos eixos de carbono para um movimento suave`,lubricateRails:`Aplique lubrificante nos trilhos lineares para um movimento suave`,cleanNozzle:`Limpe o hotend e o bico para evitar entupimentos`,checkBelts:`Verifique a tensão das correias para impressões precisas`,cleanBuildPlate:`Limpe a placa de construção para melhor adesão`,checkExtruder:`Verifique as engrenagens do extrusor quanto ao desgaste`,checkCooling:`Verifique se os ventiladores de resfriamento estão funcionando corretamente`,generalInspection:`Inspeção geral da impressora`,cleanCarbonRods:`Limpe os eixos de carbono para reduzir o atrito`,lubricateSteelRods:`Aplique lubrificante nas barras de aço para um movimento suave`,cleanSteelRods:`Limpe as barras de aço para reduzir o atrito`,cleanLinearRails:`Limpe os trilhos lineares para remover poeira e detritos`,checkPtfeTube:`Verifique o tubo PTFE quanto ao desgaste ou danos`,replaceHepaFilter:`Substitua o filtro HEPA para qualidade do ar`,replaceCarbonFilter:`Substitua o filtro de carbono ativado`,lubricateLeftNozzleRail:`Lubrifique o trilho do bico esquerdo (série H2)`},smartPlugs:{offline:`Offline`,admin:`Administrador`,openPlugAdminPage:`Abrir o painel de administração da tomada inteligente`,deleteSmartPlug:`Excluir Tomada Inteligente`,turnOnSmartPlug:`Ligar Tomada Inteligente`,turnOffSmartPlug:`Desligar Tomada Inteligente`,turnOn:`Ligar`,turnOff:`Desligar`,addSmartPlug:{scanningNetwork:`Procurando na rede...`,chooseEntity:`Escolha uma entidade...`,connectionFailed:`Falha na conexão`,searchEntities:`Pesquisar entidades...`,searchPowerSensors:`Pesquisar sensores de energia...`,searchEnergySensors:`Pesquisar sensores de energia...`,placeholders:{plugName:`Tomada da Sala`,mqttStateOnValue:`ON, true, 1`,mqttSameAsPower:`Mesmo que o tópico de energia, ou diferente`}},linkedTo:`Vinculado a:`,monitorOnly:`Apenas monitoramento`,alerts:`Alertas`,scheduleOn:`Ligar {{time}}`,scheduleOff:`Desligar {{time}}`,on:`Ligado`,off:`Desligado`,power:`Potência`,kwhToday:`kWh Hoje`,settings:`Configurações`,automationSettings:`Configurações de automação`,showInSwitchbar:`Mostrar na barra de interruptores`,quickAccessSidebar:`Acesso rápido pela barra lateral`,enabled:`Ativado`,enableAutomation:`Ativar automação para este plugue`,autoOn:`Auto Ligar`,autoOnDescription:`Ligar quando a impressão iniciar`,autoOff:`Auto Desligar`,autoOffDescription:`Desligar quando a impressão terminar (única vez)`,autoOffPersistent:`Manter ativado`,autoOffPersistentDescription:`Permanecer ativado entre impressões em vez de única vez`,controlsPrinterPower:`Alimenta a impressora`,controlsPrinterPowerDescription:`Desative se esta tomada alimenta apenas um acessório (ventoinha do filtro, luzes). Caso contrário, desligá-la marca a impressora como offline.`,autoOffAfterDrying:`Desligar Após Secagem`,autoOffAfterDryingDescription:`Desligar quando a secagem do AMS terminar`,delayAfterDryingMinutes:`Atraso após secagem (minutos)`,turnOffDelayMode:`Modo de atraso para desligar`,time:`Tempo`,temp:`Temp.`,delayMinutes:`Atraso (minutos)`,tempThreshold:`Limite de temperatura (°C)`,tempThresholdDescription:`Desliga quando o bico esfria abaixo desta temperatura`,edit:`Editar`,deleteConfirm:`Tem certeza que deseja excluir "{{name}}"? Esta ação não pode ser desfeita.`,turnOnConfirm:`Tem certeza que deseja ligar "{{name}}"?`,turnOffConfirm:`Tem certeza que deseja desligar "{{name}}"? Isso cortará a energia do dispositivo conectado.`,failedToTurn:`Falha ao {{action}} "{{name}}"`,unknown:`Desconhecido`,addTitle:`Adicionar plugue inteligente`,editTitle:`Editar plugue inteligente`,stopScanning:`Parar varredura`,discoverTasmota:`Descobrir dispositivos Tasmota`,foundDevices:`{{count}} dispositivo(s) encontrado(s) - clique para selecionar:`,noDevicesFound:`Nenhum dispositivo Tasmota encontrado na sua rede`,haNotConfigured:`Home Assistant não está configurado. Configure em`,haSettingsPath:`Configurações → Rede → Home Assistant`,selectEntity:`Selecionar entidade *`,ipAddress:`Endereço IP *`,nameLabel:`Nome *`,username:`Usuário`,password:`Senha`,authHint:`Deixe vazio se seu dispositivo Tasmota não requer autenticação`,linkToPrinter:`Vincular à impressora`,noPrinter:`Sem impressora (apenas controle manual)`,linkingDescription:`A vinculação permite ligar/desligar automaticamente ao iniciar/terminar impressão`,powerAlerts:`Alertas de potência`,alertAbove:`Alertar se acima (W)`,alertBelow:`Alertar se abaixo (W)`,alertDescription:`Receba notificações quando o consumo de energia ultrapassar estes limites. Deixe vazio para desativar essa direção.`,dailySchedule:`Programação diária`,turnOnAt:`Ligar às`,turnOffAt:`Desligar às`,scheduleDescription:`Ligar/desligar automaticamente o plugue nestes horários diariamente. Deixe vazio para pular essa ação.`,showOnPrinterCard:`Mostrar no cartão da impressora`,displayOnPrinterCard:`Exibir botão no cartão da impressora`,connectedResult:`Conectado!`,deviceLabel:`Dispositivo: {{name}} - `,stateLabel:`Estado: {{state}}`,test:`Testar`,delete:`Excluir`,save:`Salvar`,add:`Adicionar`,cancel:`Cancelar`,failedToStartScan:`Falha ao iniciar varredura`,nameRequired:`Nome é obrigatório`,entityRequired:`Entidade é obrigatória para plugues Home Assistant`,mqttTopicRequired:`Pelo menos um tópico MQTT deve ser configurado para potência, energia ou monitoramento de estado`,loadingEntities:`Carregando entidades...`,loading:`Carregando...`,failedToLoadEntities:`Falha ao carregar entidades: {{error}}`,noEntitiesMatching:`Nenhuma entidade encontrada correspondente a "{{search}}"`,noEntitiesAvailable:`Nenhuma entidade disponível`,searchingEntities:`Buscando todas as entidades ({{count}} encontradas)`,showingEntities:`Mostrando switch, light, input_boolean ({{count}} disponíveis)`,energyMonitoringOptional:`Monitoramento de energia (Opcional)`,energyMonitoringHint:`Pesquise e selecione sensores que fornecem dados de potência/energia.`,powerSensorW:`Sensor de potência (W)`,energyTodayKwh:`Energia hoje (kWh)`,totalEnergyKwh:`Energia total (kWh)`,noMatchingSensors:`Nenhum sensor correspondente`,none:`Nenhum`,mqttNotConfigured:`Broker MQTT não configurado. Defina o endereço do broker em`,mqttSettingsPath:`Configurações → Rede → Publicação MQTT`,mqttNotConfiguredSuffix:`(você não precisa ativar a publicação, apenas preencha os detalhes do broker).`,mqttMonitorOnlyDescription:`Plugues MQTT recebem dados de potência/energia via assinatura MQTT. O controle liga/desliga não está disponível - use seu broker MQTT ou sistema de automação residencial.`,powerMonitoring:`Monitoramento de potência`,energyMonitoring:`Monitoramento de energia`,stateMonitoring:`Monitoramento de estado`,optional:`opcional`,topic:`Tópico`,jsonPath:`Caminho JSON`,multiplier:`Multiplicador`,onValue:`Valor ON`,mqttPowerHint:`O caminho JSON extrai o valor do payload JSON (ex: "power_l1"). Deixe vazio se o tópico publica valores numéricos brutos.
Use multiplicador 0.001 para mW→W, 1000 para kW→W.`,mqttEnergyHint:`O caminho JSON extrai o valor do payload JSON. Deixe vazio para valores brutos.
Use multiplicador 0.001 para Wh→kWh, 1000 para MWh→kWh.`,mqttStateHint:`O caminho JSON extrai o valor do payload JSON. Deixe vazio para valores brutos.
-Valor ON: a string exata que significa "ON". Deixe vazio para detecção automática (ON, true, 1).`,restControl:`Controle`,restOnUrl:`URL para ligar`,restOffUrl:`URL para desligar`,restOnBody:`Corpo da requisição ON`,restOffBody:`Corpo da requisição OFF`,restMethod:`Método HTTP`,restHeaders:`Custom Headers (JSON)`,restStatusUrl:`URL de status`,restStatusPath:`Caminho JSON de estado`,restStatusOnValue:`Valor ON`,restPowerUrl:`URL de potência`,restPowerPath:`Caminho JSON de energia`,restPowerMultiplier:`Multiplicador de potência`,restEnergyUrl:`URL de energia`,restEnergyPath:`Caminho JSON de energia (hoje)`,restEnergyTotalPath:`Caminho JSON de energia (contador total)`,restEnergyTotalMultiplier:`Multiplicador do contador total`,restEnergyTotalPathHint:`ex.: aenergy.total`,restEnergyTotalHint:`Muitas tomadas — todos os Shelly entre elas — informam apenas um contador acumulado que nunca é zerado. Ele vai aqui, não no campo acima: lido como o consumo de hoje, ele nunca voltaria a zero à meia-noite, e Ontem e Total ficariam vazios. O Bambuddy calcula Hoje e Ontem a partir dele, o que exige um ou dois dias de leituras. Um Shelly informa em watt-hora, então use um multiplicador de 0.001.`,restEnergyMultiplier:`Multiplicador de energia`,restUrlRequired:`Ao menos uma URL (ON ou OFF) é necessária para tomadas REST`,restHeadersHint:`ex. {"Authorization": "Bearer your-token"}`,restBodyHint:`ex. ON, {"state": "on"}`,restStatusHint:`URL para consultar o estado atual`,restPathHint:`ex. state ou data.power.status`,restPowerUrlHint:`URL separada para dados de potência (usa a URL de status se vazio)`,restEnergyUrlHint:`URL separada para dados de energia (usa a URL de status se vazio)`,restEnergyHint:`Cada valor pode usar sua própria URL ou recorrer à URL de status. Use multiplicadores para conversão de unidades (ex: 0.001 para converter Wh em kWh).`,testConnection:`Testar conexão`,connectionSuccess:`Conexão bem-sucedida`,noSwitchesInSwitchbar:`Nenhum interruptor na barra`,enableSwitchbarHint:`Ative "Mostrar na barra de interruptores" em Configurações > Smart Plugs`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`E-mail`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`Notificações por e-mail SMTP`,telegram:`Notificações via bot do Telegram`,discord:`Enviar para canal do Discord via webhook`,ntfy:`Notificações push gratuitas e auto-hospedáveis`,pushover:`Notificações push simples e confiáveis`,callmebot:`Notificações gratuitas via WhatsApp pelo CallMeBot`,webhook:`POST HTTP genérico para qualquer URL`,homeassistant:`Notificações persistentes no painel do Home Assistant`,bark:`Notificações push do iOS via Bark (auto-hospedável)`},lastSuccess:`Último: {{date}}`,error:`Erro`,printer:`Impressora:`,allPrinters:`Todas as impressoras`,sendTestNotification:`Enviar Notificação de Teste`,eventSettings:`Configurações de Eventos`,enabled:`Ativado`,sendFromProvider:`Enviar notificações deste provedor`,printEvents:`Eventos de Impressão`,printerStatus:`Status da Impressora`,amsAlarms:`Alarmes do AMS`,amsHtAlarms:`Alarmes do AMS-HT`,printQueue:`Fila de Impressão`,start:`Início`,plateCheck:`Verificação da Mesa`,complete:`Concluído`,failed:`Falhou`,stopped:`Parado`,progress:`Progresso`,offline:`Offline`,lowFilament:`Filamento Baixo`,maintenance:`Manutenção`,amsHumidity:`Umidade do AMS`,amsTemp:`Temp. do AMS`,amsHtHumidity:`Umidade do AMS-HT`,amsHtTemp:`Temp. do AMS-HT`,bedCooled:`Mesa Resfriada`,firstLayer:`Primeira camada`,quiet:`Silencioso`,digest:`Resumo {{time}}`,printStarted:`Impressão Iniciada`,plateNotEmpty:`Mesa Não Vazia`,plateNotEmptyDescription:`Objetos detectados antes da impressão`,plateClearRequired:`Confirmar mesa livre`,plateClearRequiredDescription:`Impressão concluída, a fila aguarda confirmação`,plateClear:`Mesa livre`,printCompleted:`Impressão Concluída`,bedCooledLabel:`Mesa Resfriada`,bedCooledDescription:`Mesa resfriou abaixo do limite após a impressão`,firstLayerCompleteLabel:`Primeira camada concluída`,firstLayerCompleteDescription:`Notificar com foto quando a primeira camada terminar`,missingSpoolAssignmentLabel:`Atribuição de bobina ausente`,missingSpoolAssignmentDescription:`Notificar quando a impressão iniciar e bandejas necessárias não tiverem bobina atribuída`,printFailed:`Impressão Falhou`,printStopped:`Impressão Parada`,progressMilestones:`Marcos de Progresso`,progressMilestonesDescription:`Notificar em 25%, 50%, 75%`,printerOffline:`Impressora Offline`,printerError:`Erro da Impressora`,aiFailureDetection:`Detecção de Falhas por IA`,aiFailureDetectionDescription:`Notificar quando a IA do Obico detectar uma possível falha de impressão`,lowFilamentLabel:`Filamento Baixo`,maintenanceDue:`Manutenção Necessária`,maintenanceDueDescription:`Notificar quando manutenção for necessária`,amsHumidityHigh:`Umidade Alta do AMS`,amsHumidityHighDescription:`Umidade do AMS regular excede o limite`,amsTemperatureHigh:`Temperatura Alta do AMS`,amsTemperatureHighDescription:`Temperatura do AMS regular excede o limite`,amsHtHumidityHigh:`Umidade Alta do AMS-HT`,amsHtHumidityHighDescription:`Umidade do AMS-HT excede o limite`,amsHtTemperatureHigh:`Temperatura Alta do AMS-HT`,amsHtTemperatureHighDescription:`Temperatura do AMS-HT excede o limite`,inventoryAlerts:`Alertas de Estoque`,stockReorderAlert:`Alerta de Reposição`,stockReorderAlertDescription:`O SKU atingiu seu ponto de reposição`,stockBreakAlert:`Alerta de Ruptura de Estoque`,stockBreakAlertDescription:`O estoque se esgotará antes da chegada do reabastecimento`,jobAdded:`Trabalho Adicionado`,jobAddedDescription:`Trabalho adicionado à fila`,jobAssigned:`Trabalho Atribuído`,jobAssignedDescription:`Trabalho baseado em modelo atribuído à impressora`,jobStarted:`Trabalho Iniciado`,jobStartedDescription:`Trabalho da fila começou a imprimir`,jobWaiting:`Trabalho Aguardando`,jobWaitingDescription:`Trabalho aguardando filamento ou impressora`,jobSkipped:`Trabalho Pulado`,jobSkippedDescription:`Trabalho pulado (anterior falhou)`,jobFailed:`Trabalho Falhou`,jobFailedDescription:`Trabalho falhou ao iniciar`,queueComplete:`Fila Concluída`,queueCompleteDescription:`Todos os trabalhos da fila finalizados`,quietHours:`Horário de Silêncio`,noNotificationsDuring:`Sem notificações durante essas horas`,editProviderToChangeQuietHours:`Edite o provedor para alterar o horário de silêncio`,dailyDigest:`Resumo Diário`,batchNotifications:`Agrupar notificações em um único resumo diário`,sendAt:`Enviar às {{time}}`,editProviderToChangeDigestTime:`Edite o provedor para alterar o horário do resumo`,edit:`Editar`,deleteProvider:`Excluir Provedor de Notificação`,deleteConfirm:`Tem certeza que deseja excluir "{{name}}"? Isso não pode ser desfeito.`,delete:`Excluir`,addTitle:`Adicionar Provedor de Notificação`,editTitle:`Editar Provedor de Notificação`,nameLabel:`Nome *`,namePlaceholder:`Minhas Notificações`,providerTypeLabel:`Tipo de Provedor *`,configuration:`Configuração`,testConfiguration:`Testar Configuração`,printerFilter:`Filtro de Impressora`,onlyFromPrinter:`Enviar notificações apenas para eventos desta impressora`,quietHoursDnd:`Horário de Silêncio (Não Perturbe)`,quietStart:`Início`,quietEnd:`Fim`,dailyDigestLabel:`Resumo Diário`,sendDigestAt:`Enviar resumo às`,digestCollected:`Os eventos serão coletados e enviados como um único resumo neste horário`,notificationEvents:`Eventos de Notificação`,progressPercent:`(25%, 50%, 75%)`,bedCooledAfterPrint:`(após conclusão da impressão)`,eventPriority:{sectionTitle:`Prioridade ntfy`,helpNtfy:`Escolha uma prioridade para cada evento habilitado. O ntfy usa isso para escalar alertas (som, visibilidade, comportamento push). Níveis não definidos aqui usam o padrão do servidor ntfy.`,min:`Mín`,low:`Baixa`,default:`Padrão`,high:`Alta`,urgent:`Urgente`},cancel:`Cancelar`,save:`Salvar`,add:`Adicionar`,nameRequired:`Nome é obrigatório`,fieldRequired:`{{field}} é obrigatório`,haDataInvalid:`O campo Data deve ser um objeto JSON válido, por ex. {"priority": "high", "ttl": 0}`,phoneNumber:`Número de Telefone`,apiKey:`Chave da API`,serverUrl:`URL do Servidor`,topic:`Tópico`,authToken:`Token de Autenticação`,userKey:`Chave do Usuário`,appToken:`Token do Aplicativo`,priority:`Prioridade`,pushoverRetry:`Repetição de emergência (s)`,pushoverExpire:`Expiração de emergência (s)`,botToken:`Token do Bot`,chatId:`ID do Chat`,telegramThreadId:`ID do tópico do fórum`,telegramThreadIdHelp:`Opcional. Envia para um único tópico de um grupo de fórum: o último número no link do tópico (t.me/c/.../25). Deixe vazio para o tópico Geral.`,telegramThreadIdInvalid:`O ID do tópico do fórum deve ser um número.`,smtpServer:`Servidor SMTP`,smtpPort:`Porta SMTP`,security:`Segurança`,authentication:`Autenticação`,username:`Usuário`,password:`Senha`,fromEmail:`E-mail de Origem`,toEmail:`E-mail de Destino`,webhookUrl:`URL do Webhook`,payloadFormat:`Formato do Payload`,authorization:`Autorização`,titleFieldName:`Nome do Campo de Título`,messageFieldName:`Nome do Campo de Mensagem`,editTemplate:`Editar Modelo: {{name}}`,titleLabel:`Título`,bodyLabel:`Corpo`,titlePlaceholder:`Título da notificação...`,bodyPlaceholder:`Corpo da notificação...`,availableVariables:`Variáveis Disponíveis`,clickToInsert:`Clique para inserir na posição do cursor no corpo`,livePreview:`Pré-visualização ao Vivo`,hide:`Ocultar`,show:`Mostrar`,loadingPreview:`Carregando pré-visualização...`,enterTemplateContent:`Insira o conteúdo do modelo para ver a pré-visualização`,titlePreview:`Título:`,bodyPreview:`Corpo:`,resetToDefault:`Restaurar Padrão`,titleRequired:`Título é obrigatório`,bodyRequired:`Corpo é obrigatório`,notificationLog:`Registro de Notificações`,showFailedOnly:`Apenas falhas`,last24Hours:`Últimas 24 horas`,last7Days:`Últimos 7 dias`,last30Days:`Últimos 30 dias`,last90Days:`Últimos 90 dias`,justNow:`Agora mesmo`,noFailedNotifications:`Nenhuma notificação com falha`,noNotificationsLogged:`Nenhuma notificação registrada`,unknownProvider:`Provedor Desconhecido`,logTitle:`Título`,logMessage:`Mensagem`,logError:`Erro`,logProvider:`Provedor: {{type}}`,logTime:`Hora: {{time}}`,refresh:`Atualizar`,clearOld:`Limpar Antigos`,statsSummary:`Últimos {{days}} dias:`,statsNotifications:`notificações`,statsSent:`{{count}} enviadas`,statsFailed:`{{count}} com falha`,eventTypes:{print_start:`Impressão Iniciada`,print_complete:`Impressão Concluída`,print_failed:`Impressão Falhou`,print_stopped:`Impressão Parada`,print_progress:`Progresso`,printer_offline:`Impressora Offline`,printer_error:`Erro da Impressora`,filament_low:`Filamento Baixo`,maintenance_due:`Manutenção Necessária`,test:`Teste`},userEmail:{title:`Notificações`,emailNotifications:`Notificações por E-mail`,emailNotificationsDesc:`Receba notificações por e-mail para seus próprios trabalhos de impressão. Os e-mails são enviados usando as configurações SMTP definidas na Autenticação Avançada.`,sendingTo:`As notificações serão enviadas para`,noEmailWarning:`Sua conta não tem um endereço de e-mail. Entre em contato com um administrador para adicionar um.`,printJobNotifications:`Notificações de Trabalhos de Impressão`,printJobNotificationsDesc:`Escolha quais eventos acionam notificações por e-mail para os trabalhos de impressão que você envia.`,printJobStarts:`Início do Trabalho de Impressão`,printJobStartsDesc:`Ser notificado quando seu trabalho de impressão começar.`,printJobFinishes:`Conclusão do Trabalho de Impressão`,printJobFinishesDesc:`Ser notificado quando seu trabalho de impressão concluir com sucesso.`,printErrors:`Erros de Impressão`,printErrorsDesc:`Ser notificado quando seu trabalho de impressão falhar ou encontrar um erro.`,printJobStops:`Trabalho de Impressão Parado`,printJobStopsDesc:`Ser notificado quando seu trabalho de impressão for cancelado ou parado.`,saveSuccess:`Preferências de notificação salvas.`,saveError:`Falha ao salvar preferências de notificação.`}},richTextEditor:{bold:`Negrito`,italic:`Itálico`,underline:`Sublinhado`,bulletList:`Lista com marcadores`,numberedList:`Lista numerada`,alignLeft:`Alinhar à esquerda`,alignCenter:`Centralizar`,alignRight:`Alinhar à direita`,addLink:`Adicionar link`,removeLink:`Remover link`},externalLinks:{title:`Links da barra lateral`,sidebarLayout:`Barra lateral`,sidebarLayoutDescription:`Mostre ou oculte páginas integradas, adicione links externos e arraste itens para reordenar a navegação lateral.`,systemPages:`Páginas do Bambuddy`,externalLinks:`Links externos`,visibleInSidebar:`Visível na barra lateral`,hiddenFromSidebar:`Oculto na barra lateral`,requiredInSidebar:`Obrigatório na barra lateral`,hidePage:`Ocultar página`,showPage:`Mostrar página`,settingsCannotBeHidden:`Configurações não pode ser ocultado`,noLinksConfigured:`Nenhum link externo configurado`,deleteLink:`Excluir link`,removeCustomIcon:`Remover ícone personalizado`,openInNewTab:`Abrir em nova aba`,placeholders:{linkName:`Meu Link`}},keyboardShortcuts:{title:`Atalhos de Teclado`,navigation:`Navegação`,archivesSection:`Arquivos`,kProfilesSection:`Perfis K`,generalSection:`Geral`,shortcuts:{goToPrinters:`Ir para Impressoras`,goToArchives:`Ir para Arquivos`,goToQueue:`Ir para Fila`,goToStats:`Ir para Estatísticas`,goToProfiles:`Ir para Perfis na Nuvem`,goToSettings:`Ir para Configurações`,focusSearch:`Focar na pesquisa`,openUploadModal:`Abrir modal de upload`,clearSelection:`Limpar seleção / desfocar input`,contextMenu:`Menu de contexto nos cartões`,refreshProfiles:`Atualizar perfis`,newProfile:`Novo perfil`,exitSelectionMode:`Sair do modo de seleção`,showHelp:`Mostrar esta ajuda`},footer:`Pressione Esc ou clique fora para fechar`},notificationLog:{title:`Registro de Notificações`,events:{printStarted:`Impressão Iniciada`,printComplete:`Impressão Concluída`,printFailed:`Impressão Falhou`,printStopped:`Impressão Interrompida`,progress:`Progresso`,printerOffline:`Impressora Offline`,printerError:`Erro na Impressora`,lowFilament:`Filamento Baixo`,maintenanceDue:`Manutenção Pendente`,test:`Teste`},timeAgo:{justNow:`Agora mesmo`,minutesAgo:`há {{minutes}} minutos`,hoursAgo:`há {{hours}} horas`}},restoreBackup:{title:`Restaurar Backup`,restoring:`Restaurando...`,restoreComplete:`Restauração Concluída`,restoreFailed:`Falha na Restauração`,importSettings:`Importar configurações de um arquivo de backup`,pleaseWait:`Aguarde enquanto seus dados estão sendo restaurados`,clickToSelect:`Clique para selecionar o arquivo de backup (.json ou .zip)`,howDuplicateHandling:`Como funciona o tratamento de duplicatas:`,categories:{printers:`Impressoras`,smartPlugs:`Tomadas Inteligentes`,notificationProviders:`Provedores de Notificação`,filaments:`Filamentos`,archives:`Arquivos`,pendingUploads:`Uploads Pendentes`,settingsTemplates:`Configurações e Modelos`},matchingInfo:{printers:`correspondem pelo número de série`,smartPlugs:`correspondem pelo endereço IP`,notificationProviders:`correspondem pelo nome`,filaments:`correspondem pelo nome + tipo + marca`,archives:`correspondem pelo hash do conteúdo`,pendingUploads:`correspondem pelo nome do arquivo`,settingsTemplates:`sempre sobrescrito`},replaceExisting:`Substituir dados existentes`,keepExisting:`Manter dados existentes`,replaceDescription:`Substituir itens que já existem com os dados do backup`,keepDescription:`Restaurar apenas itens que não existem`,caution:`Atenção:`,cautionText:`Sobrescrever substituirá suas configurações atuais pelos dados do backup. Os códigos de acesso da impressora nunca são sobrescritos por segurança.`,itemsRestored:`Itens Restaurados`,itemsSkipped:`Itens Ignorados`,restored:`Restaurado`,skipped:`Ignorado (já existe)`,filesLabel:`Arquivos (3MF, miniaturas, etc.)`,newApiKeysGenerated:`Novas Chaves API Geradas`,newApiKeysWarning:`Essas chaves são exibidas apenas uma vez. Copie-as agora!`,processingBackup:`Processando arquivo de backup...`,noDataFound:`Nenhum dado foi encontrado para restaurar no arquivo de backup.`,failedToRestore:`Falha ao restaurar o backup. Verifique o formato do arquivo.`},backupExport:{title:`Exportar Backup`,selectData:`Selecione os dados a incluir`,selectAll:`Selecionar Todos`,selectNone:`Selecionar Nenhum`,categoryDescriptions:{settings:`Idioma, tema, preferências de atualização`,notifications:`ntfy, Pushover, Discord, etc.`,templates:`Modelos de mensagens personalizadas`,smartPlugs:`Configurações de tomadas Tasmota`,externalLinks:`Links da barra lateral para serviços externos`,printers:`Informações da impressora (códigos de acesso excluídos)`,plateDetection:`Imagens de referência de placa vazia`,filaments:`Tipos e custos de filamento`,maintenance:`Cronogramas de manutenção personalizados`,archives:`Todos os dados de impressão + arquivos (3MF, miniaturas, fotos)`,projects:`Projetos, itens de BOM e anexos`,pendingUploads:`Uploads de impressora virtual aguardando revisão`,apiKeys:`Chaves API de webhook (novas chaves geradas na importação)`},requiresPrinters:`Requer que as impressoras sejam selecionadas`,zipFileWarning:`Um arquivo ZIP será criado.`,zipFileDescription:`Inclui todos os arquivos 3MF, miniaturas, timelapses e fotos. Isso pode levar algum tempo e resultar em um arquivo grande.`,includeAccessCodes:`Incluir Códigos de Acesso`,includeAccessCodesDescription:`Para transferir para outra máquina`,includeAccessCodesWarning:`Os códigos de acesso serão incluídos em texto simples. Mantenha este arquivo de backup seguro!`,categoriesSelected:`{{selectedCount}} categorias selecionadas`},pendingUploads:{placeholders:{notes:`Adicione notas sobre esta impressão...`},discardUpload:`Descartar Upload`,archiveAllUploads:`Arquivar Todos os Uploads`,discardAllUploads:`Descartar Todos os Uploads`,archive:`Arquivar`,timeAgo:{justNow:`Agora mesmo`,minutesAgo:`há {{minutes}} minutos`,hoursAgo:`há {{hours}} horas`,daysAgo:`há {{days}} dias`}},apiBrowser:{placeholders:{requestBody:`Corpo da requisição JSON...`,searchEndpoints:`Pesquisar endpoints...`}},configureAmsSlot:{title:`Configurar Slot AMS`,slotConfigured:`Slot Configurado!`,configuringSlot:`Configurando slot:`,slotLabel:`{{ams}} – Slot {{slot}}`,searchPresets:`Pesquisar predefinições...`,colorPlaceholder:`Nome da cor ou hex (ex.: marrom, FF8800)`,clearCustomColor:`Limpar cor personalizada`,noCloudPresets:`Nenhuma predefinição na nuvem. Faça login no Bambu Cloud para sincronizar.`,noPresetsAvailable:`Nenhuma predefinição disponível. Faça login no Bambu Cloud ou importe perfis locais.`,noMatchingPresets:`Nenhuma predefinição correspondente encontrada.`,custom:`Personalizado`,builtin:`Integrado`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`Configurações enviadas para a impressora`,filamentProfile:`Perfil de Filamento`,kProfileLabel:`Perfil K (Avanço de Pressão)`,filteringFor:`Filtrando por: {{material}}`,noKProfile:`Nenhum perfil K (usar padrão 0.020)`,noMatchingKProfiles:`Nenhum perfil K correspondente encontrado. O K padrão=0.020 será usado.`,otherKProfiles:`Outros perfis K nesta impressora`,selectFilamentFirst:`Selecione um perfil de filamento primeiro`,kFromCalibration:`K={{value}} da calibração da impressora`,customColorLabel:`Cor Personalizada (opcional)`,presetColors:`Cores de {{name}}:`,showLessColors:`Mostrar menos cores`,showMoreColors:`Mostrar mais cores`,clear:`Limpar`,hexLabel:`Hex – #{{hex}}`,resetting:`Redefinindo...`,resetSlot:`Redefinir Slot`,cancel:`Cancelar`,configuring:`Configurando...`,configureSlot:`Configurar Slot`},githubBackup:{title:`Backup do Git`,history:`Histórico`,downloadBackup:`Baixar Backup`,restoreBackup:`Restaurar Backup`,noBackupsYet:`Nenhum backup ainda`},emailSettings:{placeholders:{fromName:`Bambuddy`}},tagManagement:{searchTags:`Pesquisar tags...`,renameTag:`Renomear tag`,deleteTag:`Excluir tag`},notificationTemplates:{placeholders:{title:`Título da notificação...`,body:`Corpo da notificação...`}},batchTag:{placeholders:{newTag:`Digite uma nova tag...`}},photoGallery:{deletePhoto:`Excluir foto`},filamentHoverCard:{copySpoolUuid:`Copiar UUID do carretel`},kProfilesView:{hasNote:`Possui nota`,copyProfile:`Copiar perfil`},layout:{openMenu:`Abrir menu`,noPermissionSystemInfo:`Você não tem permissão para visualizar informações do sistema`},dashboard:{dragToReorder:`Arrastar para reordenar`,hideWidget:`Ocultar widget`},notificationProviderCard:{deleteNotificationProvider:`Excluir provedor de notificação`},fileManagerModal:{closeFileManager:`Fechar gerenciador de arquivos`,sortFiles:`Ordenar arquivos`,goToParentFolder:`Ir para a pasta pai`,threeView:`Visualização 3D`},embeddedCameraViewer:{refreshStream:`Atualizar stream`,close:`Fechar`,zoomOut:`Reduzir zoom`,resetZoom:`Redefinir zoom`,zoomIn:`Aumentar zoom`,dragToResize:`Arrastar para redimensionar`},timelapseViewer:{skipBack5s:`Voltar 5s`,skipForward5s:`Avançar 5s`},notificationProviders:{descriptions:{email:`Notificações por email SMTP`,telegram:`Notificações via bot do Telegram`,discord:`Enviar para canal do Discord via webhook`,ntfy:`Notificações push gratuitas e auto-hospedáveis`,pushover:`Notificações push simples e confiáveis`,callmebot:`Notificações gratuitas via WhatsApp pelo CallMeBot`,webhook:`POST HTTP genérico para qualquer URL`}},logViewer:{searchPlaceholder:`Pesquisar mensagem ou nome do logger...`,noLogEntries:`Nenhuma entrada de log encontrada`},switchbarPopover:{noSwitchesInSwitchbar:`Nenhum switch na barra de switches`},projectPageModal:{placeholders:{title:`Título`,designer:`Designer`,license:`Licença`,description:`Digite a descrição...`,profileTitle:`Título do perfil`,profileDescription:`Descrição do perfil...`}},spoolmanSettings:{},time:{unknown:`-`,waiting:`Aguardando`,justNow:`Agora mesmo`,now:`Agora`,minsAgo:`{{count}}min atrás`,inMins:`em {{count}}min`,hoursAgo:`{{count}}h atrás`,inHours:`em {{count}}h`,daysAgo:`{{count}}d atrás`,inDays:`em {{count}}d`},spoolbuddy:{nav:{dashboard:`Painel`,ams:`AMS`,inventory:`Inventário`,writeTag:`Escrever`,settings:`Configurações`},status:{nfcReady:`NFC pronto`,nfcOff:`NFC desligado`,offline:`Offline`,online:`Online`,noPrinters:`Sem impressoras`,deviceOffline:`Dispositivo offline`,waitingConnection:`Aguardando conexão do dispositivo...`,systemReady:`Sistema pronto`,status:`Status`},dashboard:{readyToScan:`Pronto para escanear`,idleMessage:`Coloque um carretel na balança para identificá-lo`,nfcHint:`A tag NFC será lida automaticamente`,device:`Dispositivo`,syncWeight:`Sincronizar peso`,weightSynced:`Sincronizado!`,unknownTag:`Tag desconhecida`,newTag:`Nova tag detectada`,onScale:`na balança`,linkSpool:`Vincular ao carretel`,linkTagTitle:`Vincular tag ao carretel`,linkTag:`Vincular tag`,selectSpool:`Selecione um carretel para vincular a esta tag:`,noUntagged:`Nenhum carretel sem tag encontrado`,tagDetected:`Tag detectada`,noTag:`Sem tag`,tagId:`Etiqueta`,grossWeight:`Peso bruto`,spoolSize:`Tamanho do carretel`,close:`Fechar`,currentSpool:`Carretel Atual`,plateReady:`Mesa pronta: {{name}}`,plateReadyLabel:`Mesas para liberar`,plateClearAction:`Liberar`,plateClearedToast:`Mesa marcada como limpa`,plateClearFailed:`Não foi possível marcar a mesa como limpa`},modal:{spoolDetected:`Carretel Detectado`,assignToAms:`Atribuir ao AMS`,syncWeight:`Sincronizar Peso`,weightSynced:`Sincronizado!`,syncing:`Sincronizando...`,newTagDetected:`Nova Tag Detectada`,addToInventory:`Adicionar ao Inventário`,assignToAmsTitle:`Atribuir ao AMS`,selectSlot:`Selecionar um slot`,assign:`Atribuir`,assigning:`Atribuindo...`,assignSuccess:`Atribuído!`,assignPendingInsert:`Atribuído. O slot será configurado quando você inserir o carretel.`,assignError:`Falha ao atribuir carretel. Tente novamente.`,noPrinterSelected:`Selecionar uma impressora...`,noAmsDetected:`Nenhum AMS detectado nesta impressora`,slot:`Slot`},weight:{noReading:`Sem leitura`,stable:`Estável`,measuring:`Medindo...`,tare:`Tarar`,calibrate:`Calibrar`},spool:{remaining:`Restante`,material:`Material`,brand:`Marca`,color:`Cor`,coreWeight:`Núcleo`,labelWeight:`Rótulo`,scaleWeight:`Balança`,netWeight:`Líquido`,lastUsed:`Último uso`},ams:{noData:`Nenhum AMS detectado`,connectAms:`Conecte um AMS para ver os slots`,noPrinter:`Nenhuma impressora selecionada`,selectPrinter:`Selecione uma impressora na barra superior`,printerDisconnected:`Impressora desconectada`,humidity:`Umidade`,level:`Nível`,active:`Ativo`,slot:`Slot`,empty:`Vazio`},inventory:{search:`Buscar carretéis...`,empty:`Nenhum carretel no inventário`,noResults:`Nenhum carretel correspondente`,spools:`carretéis`,addSpool:`Adicionar carretel`},settings:{tabDevice:`Dispositivo`,tabDisplay:`Tela`,tabScale:`Balança`,tabUpdates:`Atualizações`,nfcReader:`Leitor NFC`,type:`Tipo`,connection:`Conexão`,notConnected:`N/D`,deviceInfo:`Info do dispositivo`,hostname:`Host`,uptime:`Tempo de atividade`,brightness:`Brilho`,saved:`Salvo`,noBacklight:`Nenhuma retroiluminação DSI detectada. O controle de brilho requer uma tela DSI.`,screenBlank:`Tempo para desligar tela`,screenBlankDesc:`A tela desliga após inatividade. Toque para despertar.`,displayNote:`O brilho é aplicado como filtro de software.`,scaleCalibration:`Calibração da balança`,currentWeight:`Peso atual`,tareOffset:`Tara`,calFactor:`Fator`,knownWeight:`Peso conhecido`,calStep1:`Remova todos os itens da balança e pressione Definir zero.`,calStep2:`Coloque o peso conhecido na balança.`,setZero:`Definir zero`,calibrateNow:`Calibrar`,calibrated:`Calibrado`,tareSet:`Comando de tara enviado. Aguardando dispositivo...`,tareComplete:`Tara concluída!`,tareTimedOut:`Tempo esgotado para a tara — o daemon do SpoolBuddy está em execução?`,tareFailed:`Falha ao enviar comando de tara`,zeroSet:`Ponto zero definido. Coloque o peso conhecido na balança.`,calibrationDone:`Calibração concluída!`,calibrationFailed:`Falha na calibração`,lastCalibrated:`Última calibração`,stable:`Estável`,settling:`Estabilizando...`,firmware:`Firmware`,scale:`Balança`,noDevice:`Nenhum dispositivo SpoolBuddy encontrado`,daemonVersion:`Versão do daemon`,currentVersion:`Atual`,versionPending:`Aguardando daemon...`,checking:`Verificando...`,checkUpdates:`Verificar atualizações`,updateAvailable:`Atualização disponível`,updateInstructions:`Atualize via SSH: execute o script de instalação do SpoolBuddy.`,upToDate:`Atualizado`,includeBeta:`Incluir versões beta`,systemConfig:`Backend e autenticação`,backendUrl:`URL do backend Bambuddy`,apiToken:`Token de API`,apiTokenPlaceholder:`Insira o token de API`,saveConfig:`Salvar configuração`,systemQueued:`Configuração enfileirada.`,systemFieldsRequired:`URL do backend é obrigatória.`,nfcDiagnostic:`Diagnóstico NFC`,scaleDiagnostic:`Diagnóstico da balança`,readTagDiagnostic:`Diagnóstico de leitura de tag`,testNfc:`Testar leitor`,testScale:`Testar precisão`,testReadTag:`Ler tag`},writeTag:{tabExisting:`Bobina existente`,tabNew:`Nova bobina`,tabReplace:`Substituir tag`,searchPlaceholder:`Buscar por material, cor, marca...`,noUntaggedSpools:`Nenhuma bobina sem tag`,noTaggedSpools:`Nenhuma bobina com tag`,selectSpool:`Selecione uma bobina e coloque um NTAG no leitor`,placeTag:`Coloque um NTAG no leitor`,tagReady:`Tag detectado — pronto para gravar`,writeTag:`Gravar Tag`,replaceTag:`Substituir Tag`,writing:`Gravando tag...`,waiting:`Aguardando SpoolBuddy...`,writeSuccess:`Tag gravado com sucesso!`,writeFailed:`Falha na gravação`,queueFailed:`Falha ao enfileirar comando de gravação`,tryAgain:`Tentar novamente`,cancel:`Cancelar`,replaceWarning:`O tag antigo será desvinculado. O novo tag o substituirá.`,deviceOffline:`SpoolBuddy está offline`,material:`Material`,colorName:`Nome da cor`,color:`Cor`,brand:`Marca`,weight:`Peso (g)`,createSpool:`Criar bobina`,creating:`Criando...`,spoolCreated:`Bobina criada! Pronto para gravar.`,createFailed:`Falha ao criar bobina`,incompleteDataWarning:`Tag gravada com dados Spoolman incompletos`},quickMenu:{printerPower:`Energia da impressora`,systemControls:`Sistema`,restartDaemon:`Reiniciar daemon`,restartBrowser:`Reiniciar navegador`,reboot:`Reiniciar`,shutdown:`Desligar`,swipeToClose:`Deslize para baixo para fechar`,confirmTitle:`Confirmar`,confirmShutdown:`Tem certeza de que deseja desligar o SpoolBuddy? Você precisará de acesso físico para ligá-lo novamente.`,confirmReboot:`Tem certeza de que deseja reiniciar o SpoolBuddy?`,confirmRestartDaemon:`Reiniciar o daemon do SpoolBuddy? NFC e balança ficarão temporariamente indisponíveis.`,confirmRestartBrowser:`Reiniciar o navegador kiosk? A tela ficará brevemente preta.`,confirm:`Confirmar`,confirmPlugOn:`Ligar {{name}}?`,confirmPlugOff:`Desligar {{name}}?`,turnOn:`Ligar`,turnOff:`Desligar`}},diagnostic:{modalTitle:`Diagnóstico de conexão — {{name}}`,running:`Executando diagnóstico...`,runningElapsed:`Executando diagnóstico... ({{elapsed}}s)`,waitingForReportHint:`Aguardando a impressora publicar um relatório de status — pode levar até {{max}} segundos.`,runFailed:`Não foi possível executar o diagnóstico: {{error}}`,retry:`Executar novamente`,runButton:`Executar diagnóstico`,sectionTitle:`Diagnóstico de conexão`,sectionDescription:`Verifique por que uma impressora não conecta ou não imprime — acessibilidade das portas, modo desenvolvedor LAN, modo de rede Docker e credenciais.`,noPrinters:`Nenhuma impressora configurada.`,overall:{ok:`Nenhum problema encontrado — a conexão da impressora parece saudável.`,warnings:`A impressora deve funcionar, mas alguns pontos exigem atenção.`,problems:`Foram encontrados problemas que explicam por que a impressora não conecta ou não imprime.`},check:{port_mqtt:{title:`Porta de controle (MQTT 8883)`,pass:`Acessível — a impressora está aceitando conexões de controle.`,fail:`A porta 8883 está inacessível. A impressora está desligada, em outro endereço IP, ou um firewall está bloqueando. Verifique o IP da impressora e se nada bloqueia a porta 8883.`},port_ftps:{title:`Porta de transferência de arquivos (FTPS 990)`,pass:`Acessível — o envio de arquivos de impressão funcionará.`,warn:`A porta 990 está inacessível. O monitoramento ainda pode funcionar, mas o envio de impressões para a impressora falhará. Verifique se a porta 990 não está bloqueada.`},external_storage:{title:`Armazenar arquivos enviados no armazenamento externo (passo 4 da instalação)`,pass:`A impressora informa que esta opção está ligada — os arquivos enviados serão armazenados no cartão SD e os arquivos terão miniaturas e metadados do fatiador.`,fail:`A impressora informa que esta opção está desligada. Ative "Armazenar arquivos enviados no armazenamento externo" — em firmwares recentes (P2S 01.02 / Bambu Studio 2.6+) o interruptor fica nas Configurações de Impressão da impressora; em versões mais antigas, está na aba Dispositivo do Bambu Studio / OrcaSlicer. Sem essa opção, cada impressão arquivada fica sem miniatura nem metadados do fatiador.`,skip:`Não verificado — é necessária uma conexão MQTT ativa. Em fatiadores mais antigos onde essa configuração existe apenas no fatiador, a impressora não a reporta, então esta verificação passa mesmo com a opção desligada — verifique o passo 4 da instalação manualmente.`,skip_unsupported_model:`Este modelo tem slot SD mas nenhuma forma de ativar a opção — o firmware atual da série P1 não mostra o botão no Bambu Studio e a impressora não tem tela. Não há nada a corrigir aqui; as impressões arquivadas podem ficar sem miniaturas e metadados do fatiador até que a Bambu Lab adicione suporte por firmware.`},port_rtsps:{title:`Porta da câmera ({{protocol}} {{port}})`,pass:`Acessível — o streaming da câmera funcionará.`,warn:`A porta {{port}} está inacessível. A visualização ao vivo da câmera não funcionará. Isso não afeta a impressão.`},network_mode:{title:`Modo de rede Docker`,pass:`Executando no modo de rede host.`,warn:`O Bambuddy está sendo executado em rede Docker bridge. A descoberta de impressoras e a impressora virtual precisam do modo de rede host — recrie o contêiner com "network_mode: host".`,skip:`Não está sendo executado no Docker — não aplicável.`},subnet:{title:`Sub-rede`,pass:`A impressora e o Bambuddy estão na mesma sub-rede.`,warn:`A impressora ({{printer_ip}}) e o Bambuddy ({{host_ip}}) estão em sub-redes diferentes. Eles podem não se alcançar, a menos que o roteamento entre as sub-redes esteja configurado.`,skip:`Não foi possível determinar a sub-rede — ignorado.`},mqtt_auth:{title:`Credenciais da impressora`,pass:`A impressora aceitou a conexão.`,fail:`A impressora está acessível mas o Bambuddy não está conectado a ela. O código de acesso ou o número de série provavelmente está incorreto — o código de acesso muda toda vez que o modo Somente LAN ou o Modo Desenvolvedor é alternado, então copie-o novamente da tela da impressora. Uma impressora reiniciando, ou que já atingiu seu limite de conexões simultâneas, aparece do mesmo jeito.`,fail_auth_rejected:`A impressora recusou as credenciais do Bambuddy. O código de acesso ou o número de série está incorreto — o código de acesso muda toda vez que o modo Somente LAN ou o Modo Desenvolvedor é alternado. Copie-o novamente da tela da impressora e salve-o nas configurações da impressora.`,skip:`Não verificado — não foi possível alcançar a impressora.`},developer_mode:{title:`Modo Desenvolvedor LAN`,pass:`O Modo Desenvolvedor está ativado.`,fail:`O Modo Desenvolvedor está DESLIGADO na impressora. Ative-o nas configurações de LAN da impressora — e confirme com OK. Sem ele, as impressões não iniciarão.`,skip:`Não foi possível verificar — requer uma conexão ativa com a impressora.`},printer_publishing:{title:`Impressora publicando status`,pass:`A impressora está publicando atualizações de status — AMS, filamentos e perfis K serão espelhados corretamente para o slicer.`,fail:`O broker MQTT aceitou a conexão, mas a impressora não publicou nenhum relatório de status. Quase sempre é um número de série errado ou com maiúsculas/minúsculas incorretas — o tópico device//api/v1/metrics 公开打印机指标,用于Prometheus/Grafana监控。`,bearerTokenOptional:`Bearer令牌(可选)`,bearerTokenHint:`设置后,请求必须包含 Authorization: Bearer `,metricsConnectionStatus:`连接状态`,metricsPrinterState:`打印机状态(空闲/打印中等)`,metricsPrintProgress:`打印进度 0-100%`,metricsBedTemp:`热床温度`,metricsNozzleTemp:`喷嘴温度`,metricsPrintsTotal:`按结果分类的总打印数`,metricsMore:`...以及更多(层数、风扇、队列、耗材用量)`,smartPlugsDescription:`连接智能插座(Tasmota或Home Assistant)以自动化电源控制并跟踪打印机的能源使用情况。`,allOn:`全部开启`,allOff:`全部关闭`,addSmartPlug:`添加智能插座`,energySummary:`能源概要`,currentPower:`当前功率`,plugsOnline:`{{reachable}}/{{total}} 个插座在线`,today:`今天`,yesterday:`昨天`,total:`总计`,enablePlugsForSummary:`启用插座以查看能源概要`,addNotificationProvider:`添加`,systemBadge:`(系统)`,creating:`创建中...`,changing:`修改中...`,deleteUserAndItems:`删除用户及其所有项目`,deleteUserKeepItems:`删除用户,保留项目(将变为无主项目)`,ok:`确定`,twoFa:{totpTitle:`身份验证器应用 (TOTP)`,totpDesc:`使用 Google Authenticator、Aegis 或 Authy 等应用。`,emailOtpTitle:`邮件 OTP`,emailOtpDesc:`登录时向 {{email}} 发送一次性验证码。`,emailOtpNoEmail:`请先为账户添加邮箱地址以启用此方式。`,addEmailFirst:`您的账户没有邮箱地址,请联系管理员添加。`,setupTotp:`设置身份验证器应用`,setupAuthApp:`设置身份验证器应用`,setupInstructions:`使用身份验证器应用扫描二维码,然后输入验证码确认。`,manualEntry:`无法扫描?请手动输入此密钥:`,scannedContinue:`已扫描 — 继续`,enterCodeToConfirm:`请输入身份验证器应用中的6位验证码以确认设置。`,activate:`激活`,disableTotp:`停用身份验证器`,disableConfirmHint:`请输入有效的 TOTP 码或备用码来停用身份验证器。`,totpDisabled:`身份验证器应用已停用。`,emailOtpEnabled:`邮件 OTP 已启用。`,emailOtpDisabled:`邮件 OTP 已停用。`,smtpRequired:`请先配置并测试SMTP设置。`,invalidCode:`无效验证码,请重试。`,enableEmailOtp:`启用邮件 OTP`,disableEmailOtp:`停用邮件 OTP`,emailSetupEnterCode:`验证码已发送至您的邮箱地址。请在下方输入以确认您拥有此邮箱。`,verifyAndEnable:`验证并启用`,emailDisablePasswordHint:`请输入您的账户密码以确认停用邮件 OTP。`,passwordPlaceholder:`输入您的密码`,backupCodesTitle:`保存备用码`,backupCodesWarning:`请将这些码保存在安全的地方。每个码只能使用一次,且不会再次显示。`,backupCodesRemaining:`剩余 {{count}} 个备用码`,savedCodes:`已保存`,regenBackup:`重新生成备用码`,regenBackupHint:`输入当前 TOTP 码以生成 10 个新备用码,所有现有备用码将失效。`,newBackupCodes:`新备用码`,linkedAccounts:`已关联的 SSO 账户`,linkedAccountsDesc:`以下外部身份提供商已与您的账户关联。`,oidcUnlinked:`账户已解除关联。`},sessionPolicy:{title:`会话策略`,description:`新用户登录的最长会话有效期。已颁发的令牌保留其原有的过期时间。`,preset24h:`24 小时`,preset7d:`7 天`,preset30d:`30 天`,customHoursLabel:`自定义会话有效期(小时)`,hoursSuffix:`小时`,warning:`更长的会话会减弱自动注销保护。仅建议在受信任的单用户部署中使用。`},oidc:{title:`SSO / OIDC 提供商`,desc:`配置 OpenID Connect 提供商以实现单点登录。`,addProvider:`添加提供商`,newProvider:`新提供商`,empty:`尚未配置 OIDC 提供商。`,created:`提供商已创建。`,updated:`提供商已更新。`,deleted:`提供商已删除。`,refreshIcon:`刷新图标`,removeIcon:`移除图标`,iconRefreshed:`图标已刷新。`,iconRemoved:`图标已移除。`,iconFetchFailed:`无法从提供商 URL 获取图标。`,deleteTitle:`删除提供商`,deleteMessage:`删除"{{name}}"?所有关联账户将断开连接。`,form:{name:`显示名称`,issuerUrl:`颁发者 URL`,clientId:`客户端 ID`,clientSecret:`客户端密钥`,scopes:`作用域`,iconUrl:`图标 URL(可选)`,enabled:`已启用`,autoCreate:`自动创建用户`,autoCreateDesc:`首次登录时自动创建本地账户。`,autoLink:`自动关联已有账户`,autoLinkDesc:`首次登录时通过邮箱匹配现有本地账户并自动关联。`,secretHint:`留空以保留当前`,secretPlaceholder:`新密钥`,emailClaim:`邮箱声明`,emailClaimDesc:`用作邮箱身份的 JWT 声明。Azure Entra ID 请使用 'preferred_username' 或 'upn'(不发送 email_verified)。仅使用可信的声明名称。`,emailClaimPlaceholder:`邮箱`,emailClaimCustomClaimAutoLinkWarning:`自定义声明仅在值由租户管理时(例如 Azure Entra ID 的 upn / preferred_username)对自动关联安全。如果您的 IdP 允许用户自我声明此声明,请勿启用自动关联。`,requireEmailVerified:`要求邮箱已验证`,requireEmailVerifiedDesc:`仅在提供商将邮箱声明标记为已验证时才接受。`,requireEmailVerifiedWarning:`警告:将在未经验证的情况下接受邮箱。仅对受信任的提供商使用。`,requireEmailVerifiedAutoLink:`请先禁用自动关联以更改此设置。`,defaultGroup:`默认组`,defaultGroupDesc:`自动创建用户时分配的组。未设置时回退到 Viewers。`,defaultGroupViewersFallback:`Viewers(默认)`,autologin:`自动登录`,autologinDesc:`将未认证的访问者直接重定向到该提供商。只有一个提供商可以携带此标志。`}},encryption:{title:`MFA 加密状态`,enabledFromEnv:`已启用静态加密(密钥来自 MFA_ENCRYPTION_KEY 环境变量)`,enabledFromFile:`已启用静态加密(密钥从数据目录加载)`,enabledGenerated:`使用自动生成的密钥启用静态加密`,notConfigured:`未配置静态加密`,notConfiguredDesc:`TOTP 密钥和 OIDC client_secrets 以明文存储。请设置 MFA_ENCRYPTION_KEY 或使用可写数据目录重启 Bambuddy 以自动生成。`,allEncrypted:`所有 MFA 密钥均已静态加密。`,legacyRowsLabel:`旧版明文行`,encryptedRowsLabel:`已加密行`,legacyRowsWarning:`检测到 {{count}} 个旧版明文行。请重新保存 OIDC 提供商或重新注册用户的身份验证器应用,以迁移到加密存储。`,backupHint:`自动生成的密钥存储在 DATA_DIR/.mfa_encryption_key 中,并包含在本地备份 ZIP 中。请保护备份安全或显式设置 MFA_ENCRYPTION_KEY。`,decryptionBrokenTitle:`加密密钥缺失`,decryptionBrokenError:`无法解密 {{count}} 条加密记录,因为加密密钥不再可用。请恢复以前的 MFA_ENCRYPTION_KEY 或 DATA_DIR/.mfa_encryption_key 以恢复访问。`,migrationErrorWarning:`{{count}} 行旧数据在启动时未能重新加密。请检查服务器日志并重启 Bambuddy 以重试。`},pipelineLimits:{title:`切片机流水线限制`,maxCopiesLabel:`每次运行最大副本数`,maxCopiesDesc:`操作员运行流水线时可请求的副本数上限。服务器端硬性上限为 1000。`},pipelines:{title:`切片机流水线`,subtitle:`可复用的预设捆绑包(打印机 + 工艺 + 耗材 + 热床类型)。在切片对话框中保存一个,下次切片文件时一键应用。`,loading:`正在加载流水线…`,loadError:`无法加载流水线。`,confirmDelete:`删除此流水线?此操作无法撤销。`,staleWarning:`引用的一个或多个预设已不存在。请在切片对话框中重新保存此流水线以修复。`,empty:{title:`暂无流水线。`,howto:`为任意文件打开切片对话框,选择打印机 / 工艺 / 耗材 / 热床,然后点击"另存为流水线"。保存的流水线将显示在此处。`},field:{name:`流水线名称`,description:`描述`,targetPrinter:`目标打印机`,noTarget:`— 无目标 —`,targetKind:`目标类型`,targetKindSpecific:`特定打印机`,targetKindClass:`打印机类别`,targetModelClass:`打印机型号`,fanoutStrategy:`分发策略`,fanout:{max_parallel:`最大并行 — 分发到任何空闲匹配的打印机`,round_robin:`轮询 — 在合格打印机间循环`,fill_one_first:`先填一台 — 将所有副本固定到一台打印机`},fanoutShort:{max_parallel:`并行`,round_robin:`轮询`,fill_one_first:`先填一台`}},action:{save:`保存`,cancel:`取消`,rename:`重命名`,delete:`删除`},slot:{printer:`打印机`,process:`工艺`,filament:`耗材`,filamentN:`耗材 {{n}}`,filamentAll:`全部 {{n}} 个槽`,bed:`热床`},group:{profiles:`配置文件`,filaments:`耗材`},searchPlaceholder:`搜索流水线…`,filterTargetType:`按目标类型筛选`,filterTarget:`按目标筛选`,filter:{all:`全部目标`,noTarget:`未设置目标`,count:`{{shown}} / {{total}}`,noMatches:`没有流水线匹配当前筛选条件。`},toast:{saved:`流水线已保存`,saveFailed:`保存失败`,deleted:`流水线已删除`,deleteFailed:`删除失败`},noTargetHint:`设置目标打印机以运行`,noTargetWarning:`运行此流水线前请先设置目标打印机。`,runs:{lastRun:`上次运行`,status:{queued:`排队中`,slicing:`切片中`,dispatching:`发送中`,in_progress:`打印中`,completed:`已完成`,failed:`失败`,partial_failure:`部分失败`,cancelled:`已取消`}}}},notification:{printStarted:{title:`打印已开始`,body:`{{printer}}:{{filename}} 已开始打印`},printCompleted:{title:`打印已完成`,body:`{{printer}}:{{filename}} 已成功完成`},printFailed:{title:`打印失败`,body:`{{printer}}:{{filename}} 打印失败`},printStopped:{title:`打印已停止`,body:`{{printer}}:{{filename}} 已停止`},printProgress:{title:`打印进度`,body:`{{printer}}:{{filename}} 已完成 {{percent}}%`},printerOffline:{title:`打印机离线`,body:`{{printer}} 已离线`},printerError:{title:`打印机错误`,body:`{{printer}}:{{error}}`},filamentLow:{title:`耗材不足`,body:`{{printer}}:耗材即将用完`},maintenanceDue:{title:`维护到期`,body:`{{printer}}:{{items}} 需要关注`}},errors:{generic:`出了点问题`,networkError:`网络错误。请检查您的连接。`,notFound:`未找到`,unauthorized:`未授权`,serverError:`服务器错误`,validationError:`请检查您的输入`,printerConnectionFailed:`连接打印机失败`,saveFailed:`保存更改失败`,deleteFailed:`删除失败`,loadFailed:`加载数据失败`},hmsErrors:{title:`错误 - {{name}}`,noErrors:`无错误`,viewOnWiki:`在拓竹 Wiki 上查看`,mqttVerifyFailedRemedy:`在打印机上启用开发者模式,重启打印机,然后重新开始该任务。`,unknownCode:`未知 HMS 代码 — 详情请参阅拓竹 Wiki。`,clearInstructions:`在打印机上清除错误以在此处消除它们。`,clearErrors:`清除错误`,clearSuccess:`HMS 错误已清除`,clearFailed:`清除 HMS 错误失败`,actionSuccess:`已向打印机发送操作`,actionFailed:`操作发送失败`,runoutExpectedSlot:`{{ranOut}} 的耗材已用尽。打印机现在正在等待 {{expected}} 装入兼容耗材。请将料卷装入 {{expected}},然后选择"重试"。`,runoutExpectedSlotOnly:`打印机正在等待 {{expected}} 装入兼容耗材。请在该料槽装入料卷,然后选择"重试"。`,runoutSlotUnknown:`耗材已用尽,打印已暂停。Bambuddy 无法确定打印机现在需要哪个料槽——请在打印机屏幕上查看所请求的料槽。`,actions:{RESUME_PRINTING:`恢复打印`,RESUME_PRINTING_DEFECTS:`恢复 (缺陷可接受)`,RESUME_PRINTING_PROBELM_SOLVED:`恢复 (问题已解决)`,STOP_PRINTING:`停止打印`,CHECK_ASSISTANT:`查看助手`,FILAMENT_EXTRUDED:`已挤出耗材,继续`,RETRY_FILAMENT_EXTRUDED:`尚未挤出,重试`,CONTINUE:`已完成,继续`,LOAD_VIRTUAL_TRAY:`加载耗材`,OK_BUTTON:`确定`,FILAMENT_LOAD_RESUME:`耗材已加载,恢复`,JUMP_TO_LIVEVIEW:`查看实时画面`,NO_REMINDER_NEXT_TIME:`下次不再提醒`,REFRESH_NOZZLE:`重新检查`,IGNORE_NO_REMINDER_NEXT_TIME:`忽略,下次不再提醒`,IGNORE_RESUME:`忽略并恢复`,PROBLEM_SOLVED_RESUME:`问题已解决,恢复`,TURN_OFF_FIRE_ALARM:`知道了,关闭火警`,RETRY_PROBLEM_SOLVED:`重试 (问题已解决)`,CANCLE:`取消`,STOP_DRYING:`停止干燥`,PROCEED:`继续`,OK_JUMP_RACK:`确定`,ABORT:`终止`,DISABLE_PURIFICATION:`本次打印禁用空气净化`,DONT_REMIND_NEXT_TIME:`不再提醒`,DBL_CHECK_CANCEL:`取消`,DBL_CHECK_DONE:`完成`,DBL_CHECK_RETRY:`重试`,DBL_CHECK_RESUME:`恢复`,DBL_CHECK_OK:`确认`,REMOVE_CLOSE_BTN:`关闭`}},mqttDebug:{title:`MQTT 调试日志`,searchPlaceholder:`搜索主题或负载...`,noMessages:`尚未记录消息`,startLoggingHint:`点击"开始记录"以开始捕获 MQTT 消息`,noMessagesMatch:`没有消息匹配您的筛选条件`,adjustFilterHint:`尝试调整您的搜索或筛选条件`,incoming:`传入`,outgoing:`传出`,loggingStopped:`记录已停止`,loggingActive:`记录中 - 消息将自动刷新`,startLogging:`开始记录`,stopLogging:`停止记录`,clearLog:`清除日志`,topic:`主题`,timestamp:`时间戳`,direction:`方向`,all:`全部`},printerFiles:{title:`文件管理器`,storageUsed:`已用:`,storageFree:`剩余:`,filterPlaceholder:`筛选文件...`,deleteButton:`删除`,deleteFiles:`删除 {{count}} 个文件`,deleteFileConfirm:`删除"{{name}}"?此操作无法撤销。`,deleteFilesConfirm:`删除 {{count}} 个选中的文件?此操作无法撤销。`,noFiles:`打印机上没有文件`,loadingFiles:`加载文件中...`,failedToLoad:`加载文件失败`,toast:{filesDeleted:`已删除 {{count}} 个文件`,deleteFailed:`删除失败:{{error}}`}},confirm:{delete:`确定要删除吗?`,unsavedChanges:`您有未保存的更改。确定要离开吗?`,clearQueue:`确定要清空队列吗?`},login:{title:`Bambuddy 登录`,subtitle:`登录您的账户`,username:`用户名`,usernamePlaceholder:`输入您的用户名`,usernameOrEmail:`用户名或邮箱`,usernameOrEmailPlaceholder:`用户名或 @ 邮箱`,password:`密码`,passwordPlaceholder:`输入您的密码`,signIn:`登录`,signingIn:`登录中...`,rememberMe:`记住我`,forgotPassword:`忘记密码?`,autologinFailed:`自动SSO登录失败。请在下方选择一个提供商以继续。`,localDisabledNotice:`本地登录已禁用。请使用下方的SSO提供商之一。`,loginSuccess:`登录成功`,loginFailed:`登录失败`,enterCredentials:`请输入用户名和密码`,enterEmail:`请输入您的电子邮件地址`,oidcLoginFailed:`OIDC 登录失败`,oidcErrors:{providerError:`身份提供商返回了一个错误`,missingParameters:`OIDC 回调缺少必要参数`,invalidState:`OIDC 状态无效或已被使用`,stateExpired:`OIDC 登录会话已过期,请重试`,providerNotFound:`未找到 OIDC 提供商`,discoveryFailed:`无法获取 OIDC 发现文档`,invalidDiscovery:`OIDC 发现文档无效`,networkError:`OIDC 令牌交换时出现网络错误`,badResponse:`OIDC 令牌交换时收到意外响应`,noIdToken:`OIDC 提供商未返回 ID 令牌`,validationFailed:`OIDC 令牌验证失败`,nonceMismatch:`OIDC nonce 不匹配,可能存在重放攻击`,missingSubClaim:`OIDC 令牌缺少 sub 声明`,noLinkedAccount:`没有与此 OIDC 身份关联的本地帐户`,accountInactive:`您的帐户已被停用`,userResolutionFailed:`无法解析您的帐户`,internalError:`OIDC 登录过程中发生内部错误`,tokenExchangeFailed:`OIDC 令牌交换失败`},forgotPasswordTitle:`忘记密码`,forgotPasswordMessage:`如果您忘记了密码,请联系系统管理员进行重置。`,forgotPasswordEmailMessage:`输入您的邮箱地址,我们将向您发送新密码。`,emailAddress:`邮箱地址`,emailPlaceholder:`your.email@example.com`,cancel:`取消`,sending:`发送中...`,sendResetEmail:`发送重置邮件`,howToReset:`如何重置密码:`,resetStep1:`联系您的 Bambuddy 管理员`,resetStep2:`请他们在用户管理中重置您的密码`,resetStep3:`他们可以为您设置一个临时密码`,resetStep4:`使用新密码登录并在设置中修改密码`,gotIt:`知道了`,resetPassword:{title:`设置新密码`,subtitle:`请在下方输入并确认您的新密码。`,newPassword:`新密码`,newPasswordPlaceholder:`至少 8 个字符`,confirmPassword:`确认密码`,confirmPasswordPlaceholder:`重复输入新密码`,saving:`保存中…`,submit:`设置新密码`,backToLogin:`返回登录`,passwordsDoNotMatch:`密码不匹配`,passwordTooShort:`密码至少需要 8 个字符`,resetFailed:`密码重置失败。链接可能已过期。`},twoFA:{title:`两步验证`,subtitle:`您的账户已启用两步验证。请在下方输入验证码。`,methodAuthenticator:`身份验证器应用`,methodEmail:`邮箱验证码`,methodBackup:`备用恢复码`,instructionsTotp:`请打开您的身份验证器应用,输入 Bambuddy 的 6 位验证码。`,instructionsEmail:`6 位验证码已发送至您的邮箱,有效期为 10 分钟。`,instructionsEmailNotSent:`点击下方按钮,通过邮件获取验证码。`,instructionsBackup:`请输入您的一个 8 位备用恢复码。每个恢复码只能使用一次。`,sendCodeButton:`发送邮箱验证码`,sendingCode:`发送中...`,resendCode:`重新发送验证码`,codeLabel:`验证码`,backupCodeLabel:`备用恢复码`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`验证`,verifyingButton:`验证中...`,backToLogin:`← 返回登录页面`,orContinueWith:`或通过以下方式登录`,signInWith:`使用 {{provider}} 登录`,enterCode:`请输入验证码`,sendCodeFailed:`验证码发送失败`,invalidCode:`无效验证码,请重试。`}},setup:{title:`Bambuddy 设置`,subtitle:`为您的 Bambuddy 实例配置身份验证`,enableAuth:`启用身份验证`,adminAccount:`管理员账户`,adminAccountDesc:`如果管理员用户已存在,将使用现有管理员账户启用身份验证。如需使用现有管理员,请将下方字段留空,或输入新凭据创建新管理员用户。`,adminUsername:`管理员用户名`,adminPassword:`管理员密码`,optionalIfAdminExists:`(如管理员用户已存在则为可选)`,adminUsernamePlaceholder:`输入管理员用户名(可选)`,adminPasswordPlaceholder:`输入管理员密码(可选)`,confirmPassword:`确认密码`,confirmPasswordPlaceholder:`确认管理员密码`,settingUp:`设置中...`,completeSetup:`完成设置`,toast:{authEnabledAdminCreated:`身份验证已启用并创建了管理员用户`,authEnabledExistingAdmins:`使用现有管理员用户启用了身份验证`,setupCompleted:`设置完成`,enterBothCredentials:`请输入管理员用户名和密码,或将两者留空以使用现有管理员用户`,passwordsDoNotMatch:`密码不匹配`,passwordTooShort:`密码至少需要 6 个字符`}},changePassword:{title:`修改密码`,currentPassword:`当前密码`,currentPasswordPlaceholder:`输入当前密码`,newPassword:`新密码`,newPasswordPlaceholder:`输入新密码(至少 6 个字符)`,confirmPassword:`确认新密码`,confirmPasswordPlaceholder:`确认新密码`,passwordsDoNotMatch:`密码不匹配`,passwordTooShort:`密码至少需要 6 个字符`,changing:`修改中...`,success:`密码修改成功`,failed:`密码修改失败`},plateAlert:{title:`打印已暂停!`,message:`在构建板上检测到物体。打印已自动暂停。请清理打印板并继续打印。`,understand:`我知道了`},camera:{title:`摄像头视图`,invalidPrinterId:`无效的打印机 ID`,live:`实时`,snapshot:`快照`,restartStream:`重启流`,refreshSnapshot:`刷新快照`,fullscreen:`全屏`,exitFullscreen:`退出全屏`,connectingToCamera:`连接摄像头中...`,capturingSnapshot:`拍摄快照中...`,connectionLost:`连接已断开`,connectionFailed:`摄像头连接失败`,reconnecting:`{{countdown}} 秒后重新连接...(第 {{attempt}}/{{max}} 次尝试)`,reconnectNow:`立即重新连接`,cameraUnavailable:`摄像头不可用`,cameraUnavailableDesc:`请确保打印机已通电并已连接。`,noCamera:`无可用摄像头`,retry:`重试`,cameraStream:`摄像头流`,zoomOut:`缩小`,zoomIn:`放大`,resetZoom:`重置缩放`,recording:`录制中`,startRecording:`开始录制`,stopRecording:`停止录制`,chamberLight:`切换腔室灯`,unavailable:`摄像头不可用`,diagnose:{button:`诊断`,modalTitle:`摄像头诊断`,running:`正在运行诊断...`,runFailed:`无法运行诊断: {{error}}`,retry:`重新运行`,stage:{tcp_reachable:`网络可达性`,first_frame:`画面捕获`,live_stream_active:`直播流正在进行`},summary:{all_ok:`摄像头工作正常。诊断已成功完成所有阶段。`,live_stream_active_healthy:`摄像头正在传输最新画面 — 无需测试。`,printer_unreachable:`无法访问打印机。请检查 IP 地址、网络连接以及打印机是否已开机。`,camera_port_closed:`打印机可访问,但摄像头端口已关闭。请确保打印机设置中已启用仅 LAN 模式和开发者模式。`,no_frame:`已连接到摄像头,但未收到画面。请重试或检查打印机设置中摄像头是否已启用。`,unknown_failure:`摄像头诊断因未知原因失败。请查看支持日志了解详情。`},meta:{protocol:`协议`,port:`端口`,profile:`配置`}}},groups:{title:`组管理`,subtitle:`管理访问控制的权限组`,backToSettings:`返回设置`,createGroup:`创建组`,noPermission:`您没有访问此页面的权限。`,system:`系统`,noDescription:`无描述`,usersCount:`{{count}} 个用户`,permissionsCount:`{{count}} 个权限`,edit:`编辑`,delete:`删除`,toast:{created:`组创建成功`,updated:`组更新成功`,deleted:`组删除成功`,enterGroupName:`请输入组名称`},modal:{editGroup:`编辑组`,createGroup:`创建组`,cancel:`取消`,saving:`保存中...`,creating:`创建中...`,saveChanges:`保存更改`},form:{groupName:`组名称`,groupNamePlaceholder:`输入组名称`,systemGroupWarning:`系统组名称不可更改`,description:`描述`,descriptionPlaceholder:`输入描述(可选)`,permissions:`权限(已选 {{count}} 个)`},deleteModal:{title:`删除组`,message:`确定要删除此组吗?此组中的用户将失去这些权限。`,confirm:`删除组`},editor:{title:`编辑组`,createTitle:`创建组`,search:`搜索权限...`,selectAll:`全选`,clearAll:`清除全部`,permissionsSelected:`已选 {{count}} 个`,noResults:`没有权限匹配您的搜索`,websocketHint:`实时更新所需。缺少此权限时,界面将回退到定期轮询。`}},users:{title:`用户管理`,subtitle:`管理用户及其对 Bambuddy 实例的访问`,backToSettings:`返回设置`,createUser:`创建用户`,noPermission:`您没有访问此页面的权限。`,admin:`管理员`,noGroups:`无组`,active:`活跃`,inactive:`非活跃`,edit:`编辑`,delete:`删除`,system:`系统`,noGroupsAvailable:`无可用组`,table:{username:`用户名`,groups:`组`,status:`状态`,actions:`操作`},toast:{created:`用户创建成功`,updated:`用户更新成功`,deleted:`用户删除成功`,fillRequired:`请填写所有必填字段`,passwordsDoNotMatch:`密码不匹配`,passwordTooShort:`密码至少需要 6 个字符`,ldapProvisioned:`已创建 LDAP 用户「{{username}}」`},modal:{createUser:`创建用户`,editUser:`编辑用户`,cancel:`取消`,creating:`创建中...`,saving:`保存中...`,saveChanges:`保存更改`,advancedAuthSubtitle:`使用高级认证`,tabsAriaLabel:`用户来源`,localTab:`本地`,ldapTab:`LDAP`,ldapSearchLabel:`搜索目录`,ldapSearchPlaceholder:`输入用户名、姓名或电子邮件...`,ldapMinChars:`输入至少 2 个字符以搜索`,ldapTypeToSearch:`开始输入以搜索 LDAP 目录`,ldapSearching:`搜索目录中...`,ldapNoResults:`目录中没有匹配的用户`,ldapSearchError:`目录搜索失败。请检查 LDAP 服务器状态。`,ldapAlreadyProvisioned:`已创建`,ldapSelectedLabel:`已选`,ldapProvision:`创建用户`,ldapProvisioning:`创建中...`,ldapErrorProvision:`创建失败。请检查 LDAP 服务器状态后重试。`},form:{username:`用户名`,usernamePlaceholder:`输入用户名`,email:`邮箱`,emailPlaceholder:`user@example.com`,password:`密码`,passwordPlaceholder:`输入密码`,confirmPassword:`确认密码`,confirmPasswordPlaceholder:`确认密码`,newPasswordPlaceholder:`输入新密码`,confirmNewPasswordPlaceholder:`确认新密码`,leaveBlankToKeep:`留空以保持当前值`,groups:`组`,optional:`可选`,autoGeneratedPassword:`将自动生成安全密码并通过邮件发送给用户。`,passwordManagedByAdvancedAuth:`密码由高级认证管理。使用"重置密码"通过邮件向用户发送新密码。`,resetPassword:`重置密码`,resettingPassword:`重置密码中...`},deleteModal:{title:`删除用户`,message:`确定要删除此用户吗?此操作无法撤销。`,confirm:`删除用户`}},streamOverlay:{title:`流叠加层`,invalidPrinterId:`无效的打印机 ID`,cameraStream:`摄像头流`,progress:`进度`,eta:`预计完成时间`,printerIdle:`打印机空闲`,printerOffline:`打印机离线`,status:{printing:`打印中`,paused:`已暂停`,finished:`已完成`,failed:`失败`,idle:`空闲`,unknown:`未知`}},profiles:{title:`配置文件`,subtitle:`管理您的切片预设和压力推进校准`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`本地配置文件`,kprofiles:`K 值配置`},orcaCloud:{connectedAs:`已连接`,connectedShort:`已连接到 Orca Cloud`,logout:`断开连接`,noLogoutPermission:`您没有断开连接的权限`,noConnectPermission:`您没有连接到 Orca Cloud 的权限`,retry:`重试`,connectButton:`连接 Orca Cloud`,connect:{title:`连接到 Orca Cloud`,description:`登录您的 Orca Cloud 账户,将切片机配置同步到 Bambuddy。`},device:{title:`在 Orca Cloud 中批准 Bambuddy`,instruction:`打开 Orca Cloud 并批准此代码。批准后 Bambuddy 会自动连接。`,codeLabel:`您的配对代码`,openButton:`打开 Orca Cloud 批准页面`,manualHint:`或前往 {{url}} 并输入上方的代码。`,waiting:`正在等待您批准…`,cancel:`取消`},profiles:{title:`您的 Orca Cloud 配置文件 ({{count}})`,refresh:`刷新`,empty:`您的 Orca Cloud 账户中尚无配置文件。`},toast:{disconnected:`已从 Orca Cloud 断开连接`},errors:{startFailed:`无法启动 Orca Cloud 登录流程。`,denied:`配对在 Orca Cloud 中被拒绝。`,expired:`配对代码已过期。请点击"连接"重试。`,pollFailed:`等待批准时连接中断。请重试。`}},localProfiles:{title:`本地配置文件`,subtitle:`从 OrcaSlicer 导入和管理切片预设`,import:`导入配置文件`,importDesc:`将 .bbscfg、.bbsflmt、.orca_filament、.zip 或 .json 文件拖放到此处`,importing:`导入中...`,search:`搜索本地预设...`,noPresets:`暂无本地预设`,noSearchResults:`没有与搜索匹配的预设`,badge:`本地`,edit:`编辑`,delete:`删除`,cancel:`取消`,deleteConfirmTitle:`删除预设`,deleteConfirm:`确定要删除此预设吗?此操作无法撤销。`,source:`来源`,inheritsFrom:`继承自`,filamentType:`类型`,vendor:`厂商`,compatiblePrinters:`兼容打印机`,nozzleTemp:`喷嘴温度`,cost:`成本`,density:`密度`,pressureAdvance:`压力推进`,filament:`耗材`,process:`工艺`,printer:`打印机`,toast:{importSuccess:`已导入 {{count}} 个预设`,importSkipped:`跳过 {{count}} 个预设(重复)`,importError:`导入时出现 {{count}} 个错误`,deleted:`预设已删除`,updated:`预设已更新`}},connectedAs:`已连接为`,signInExpiredTitle:`Bambu Cloud 登录已过期`,signInExpiredBody:`Bambu Lab 不再接受已保存的令牌。请重新登录以恢复云配置文件、MakerWorld 导入和固件检查。`,logout:`退出登录`,noLogoutPermission:`您没有退出登录的权限`,failedToLoad:`加载配置文件失败`,retry:`重试`,time:{justNow:`刚刚`,minsAgo:`{{count}} 分钟前`,hoursAgo:`{{count}} 小时前`,daysAgo:`{{count}} 天前`},toast:{loggedOut:`已退出登录`},login:{title:`连接到拓竹云`,subtitle:`跨设备同步您的切片预设`,email:`邮箱`,password:`密码`,region:`地区`,regionGlobal:`全球`,regionChina:`中国`,verificationCode:`验证码`,totpCode:`验证器代码`,checkEmail:`检查您的邮箱 ({{email}}) 获取 6 位验证码`,enterTotpHint:`输入验证器应用中的 6 位代码`,accessToken:`访问令牌`,accessTokenHint:`粘贴您的拓竹云访问令牌。中国大陆账号(绑定手机号、无邮箱登录)只能使用此方式登录。可从 MakerWorld 浏览器 Cookie 中获取令牌,详见 Wiki。`,back:`返回`,loginButton:`登录`,verifyButton:`验证`,setTokenButton:`设置令牌`,useToken:`改用访问令牌`,useEmail:`改用邮箱登录`,toast:{loggedIn:`登录成功`,codeSent:`验证码已发送到您的邮箱`,enterTotp:`输入验证器应用中的代码`,tokenSet:`令牌设置成功`}},presets:{myPreset:`我的预设(可编辑)`,duplicate:`复制`,editable:`可编辑`,failedToLoadDetails:`加载预设详情失败`,deleteConfirm:`删除此预设?`,deleteWarning:`这将从拓竹云中永久删除"{{name}}"。此操作无法撤销。`,noDuplicatePermission:`您没有复制预设的权限`,noEditPermission:`您没有编辑预设的权限`,noDeletePermission:`您没有删除预设的权限`,types:{filament:`耗材预设`,printer:`打印机预设`,process:`工艺预设`},toast:{deleted:`预设已删除`,created:`预设已创建`,updated:`预设已更新`,duplicated:`预设已复制`,fieldAdded:`字段"{{key}}"已添加`,exported:`预设已导出`},baseLabel:`基础:{{name}}`,currentLabel:`当前:{{name}}`,newPreset:`新建预设`,editPreset:`编辑预设`,duplicatePreset:`复制预设`,createNewPreset:`创建新预设`,customizeSettings:`自定义新预设的设置`,compareWithBase:`与基础预设比较`,compare:`比较`,basePreset:`基础预设`,selectBasePreset:`选择基础预设...`,presetName:`预设名称`,myCustomPreset:`我的自定义预设`,inheritsFrom:`继承自`,dropJsonToImport:`拖放 JSON 以导入`,tabs:{common:`常用`,allFields:`所有字段`},availableFields:`可用字段`,searchFieldsPlaceholder:`搜索字段...`,noMatchingFields:`没有匹配的字段`,allFieldsAdded:`所有字段已添加`,addCustomField:`添加自定义字段`,yourOverrides:`您的覆盖值`,noOverridesYet:`暂无覆盖值`,clickFieldsToAdd:`点击左侧的字段进行添加`,saveAsTemplate:`保存为模板`,jsonTip:`提示:将 .json 文件拖放到此对话框的任意位置以导入设置`},cloudView:{searchPlaceholder:`搜索预设...`,templates:`模板`,refresh:`刷新`,newPreset:`新建预设`,clearFilters:`清除筛选`,compareMode:`比较模式`,selectAnotherPreset:`选择另一个 {{type}} 预设`,clickTwoPresets:`点击两个相同类型的预设进行比较`,selectFirst:`1. 选择第一个`,selectSecond:`2. 选择第二个`,compareNow:`立即比较`,lastSynced:`上次同步:`,showingCount:`显示 {{showing}} / {{total}} 个预设`,noPresetsFound:`未找到预设`,columns:{filament:`耗材`,process:`工艺`,printer:`打印机`},noFilamentPresets:`无耗材预设`,noProcessPresets:`无工艺预设`,noPrinterPresets:`无打印机预设`,filters:{type:`类型`,owner:`所有者`,printer:`打印机`,nozzle:`喷嘴`,filament:`耗材`,layer:`层`,all:`全部`,myPresets:`我的预设`,builtIn:`内置`,process:`工艺`},noTemplatesPermission:`您没有管理模板的权限`,noRefreshPermission:`您没有刷新配置文件的权限`,noCreatePermission:`您没有创建预设的权限`},templates:{title:`快速模板`,noTemplates:`暂无模板`,createFirst:`从预设编辑器创建模板`,typeFilter:`类型:`,deleteTitle:`删除模板`,deleteWarning:`此操作无法撤销`,deleteConfirm:`确定要删除"{{name}}"吗?`,namePlaceholder:`模板名称`,descriptionPlaceholder:`描述`,settingsJson:`设置 (JSON)`,fieldsCount:`{{count}} 个字段`,shownInModals:`在对话框中显示`,hiddenInModals:`在对话框中隐藏`,apply:`应用`,toast:{deleted:`模板已删除`,updated:`模板已更新`,created:`模板已创建`,applied:`模板已应用`}}},support:{debugLoggingActive:`调试日志记录已激活`,manageLogs:`管理`,collectItem7:`打印机连接和固件版本`,collectItem8:`集成状态(Spoolman、MQTT、HA)`,collectItem9:`网络接口(仅子网)`,collectItem10:`Python 包版本`,collectItem11:`数据库健康检查`,collectItem12:`Docker 环境详情`,bundleGenerating:`正在生成包...`,bundleStepConnection:`正在执行打印机连接性检查`,bundleStepVirtualPrinters:`正在执行虚拟打印机设置检查`,bundleStepLogScan:`正在扫描最近的日志以查找已知问题`,bundleStepBuild:`正在构建支持包 ZIP 文件`},fileManager:{title:`文件管理器`,subtitle:`组织和管理您的打印文件`,uploadFiles:`上传文件`,newFolder:`新建文件夹`,folderName:`文件夹名称`,folderNamePlaceholder:`例如:功能零件`,renameFile:`重命名文件`,renameFolder:`重命名文件夹`,invalidFilenameChar:`打印文件名中不允许使用字符 "{{char}}"。打印机 SD 卡拒绝以下字符: < > : " / \\ | ? *`,moveFiles:`移动 {{count}} 个文件`,rootNoFolder:`根目录(无文件夹)`,current:`当前`,linkFolder:`链接文件夹`,linkFolderDescription:`将"{{name}}"链接到项目或归档以便快速访问。`,project:`项目`,archive:`归档`,noProjectsFound:`未找到项目`,noArchivesFound:`未找到归档`,unlink:`取消链接`,link:`链接`,dragDropFiles:`将文件拖放到此处`,dropFilesHere:`将文件放在此处`,releaseToUpload:`释放以上传`,orClickToBrowse:`或点击浏览`,allFileTypesSupported:`支持所有文件类型。ZIP 文件将被解压。`,zipFilesDetected:`检测到 ZIP 文件`,zipExtractOptions:`ZIP 文件将被解压。选择如何处理文件夹结构:`,preserveZipStructure:`保留 ZIP 中的文件夹结构`,createFolderFromZip:`从 ZIP 文件名创建文件夹`,stlThumbnailGeneration:`STL 缩略图生成`,zipMayContainStl:`ZIP 文件可能包含 STL 文件。可以在解压时生成缩略图。`,thumbnailsCanBeGenerated:`可以为 STL 文件生成缩略图。大型模型可能需要更长时间处理。`,generateThumbnailsForStl:`为 STL 文件生成缩略图`,threemfDetected:`检测到 3MF 文件`,threemfExtractionInfo:`将自动从 3MF 文件中提取打印机型号、材料、颜色和打印设置。`,willBeExtracted:`将被解压`,filesExtracted:`已解压 {{count}} 个文件`,uploadComplete:`上传完成:{{succeeded}} 个成功`,uploadFailed:`上传失败`,zipFilesFailed:`{{count}} 个文件失败`,uploading:`上传中...`,changeLink:`更改链接...`,linkTo:`链接到...`,linkToProjectOrArchive:`链接到项目或归档`,generateThumbnail:`生成缩略图`,generateThumbnails:`生成缩略图`,generateThumbnailsForMissing:`为缺少缩略图的 STL 文件生成缩略图`,gridView:`网格视图`,listView:`列表视图`,lowDiskSpaceWarning:`磁盘空间不足警告`,lowDiskSpaceDetails:`仅剩 {{free}}(总共 {{total}})。阈值设置为 {{threshold}} GB。`,files:`文件`,folders:`文件夹`,size:`大小`,free:`剩余`,allFiles:`所有文件`,allExternal:`外部`,externalIsEmpty:`没有外部文件`,externalEmptyDescription:`关联的外部文件夹中的文件将在此显示。`,wrap:`换行`,enableTextWrapping:`启用文本换行`,disableTextWrapping:`禁用文本换行`,collapse:`折叠`,collapseFoldersByDefault:`默认折叠文件夹`,expandFoldersByDefault:`默认展开文件夹`,folderSort:`文件夹排序`,folderSortByName:`按名称`,folderSortByActivity:`按最近活动`,dragToResizeTooltip:`拖动调整大小,双击重置`,searchFiles:`搜索文件...`,searchSubfoldersHint:`包含子文件夹`,readme:{truncated:`已截断`,show:`显示 README`,hide:`隐藏 README`,label:`README`},tags:{title:`标签`,subtitle:`为文件添加跨目录的标签 —— 玩具、儿童安全、仅 PETG 等等。`,manage:`标签`,manageTitle:`管理标签目录`,add:`新建标签`,edit:`重命名标签`,name:`名称`,fileCount:`文件数`,empty:`还没有标签。创建一个开始为文件加标签吧。`,noMatches:`没有匹配的标签。`,createPlaceholder:`例:玩具、儿童安全、petg`,createButton:`创建`,nameRequired:`名称是必填项。`,searchPlaceholder:`过滤标签…`,created:`已创建标签。`,updated:`已重命名标签。`,deleted:`已删除标签。`,saveFailed:`无法保存标签。`,deleteFailed:`无法删除标签。`,applyFailed:`无法应用标签。`,applyAdd:`添加标签`,applyRemove:`移除标签`,applyAddSuccess:`已为 {{files}} 个文件添加 {{count}} 个标签。`,applyRemoveSuccess:`已从 {{files}} 个文件移除 {{count}} 个标签。`,actionAdd:`添加到所选文件`,actionRemove:`从所选文件移除`,tagAction:`标签`,bulkTitle:`为所选的 {{count}} 个文件加标签`,bulkTooltip:`在每个所选文件上添加或移除标签。`,noPermission:`您没有为文件加标签的权限。`,filterLabel:`筛选条件:`,clearAll:`全部清除`,confirmDelete:`删除标签 "{{name}}"?`,confirmDeleteMessage:`此操作会从目录中删除该标签。文件保留其它标签。`,confirmDeleteInUseMessage:`此标签存在于 {{count}} 个文件上。删除后所有文件上的标签都会消失,但文件本身不会动。`,editAria:`编辑 {{name}}`,deleteAria:`删除 {{name}}`},allTypes:`所有类型`,prints:`打印`,ascending:`升序`,descending:`降序`,showModified:`显示修改日期`,hideModified:`隐藏修改日期`,lastModified:`最后修改`,lastActivity:`最近活动`,resultsCount:`{{showing}} / {{total}} 个文件`,selectAll:`全选`,deselectAll:`取消全选`,selected:`已选择 {{count}} 个`,adding:`添加中...`,loadingFiles:`加载文件中...`,folderIsEmpty:`文件夹为空`,noFilesYet:`暂无文件`,folderEmptyDescription:`上传文件或将文件移入此文件夹以开始使用。`,noFilesDescription:`上传文件以开始组织您的打印相关文件。`,noMatchingFiles:`没有匹配的文件`,noMatchingFilesDescription:`没有文件匹配您当前的搜索或筛选条件。`,clearFilters:`清除筛选`,printedCount:`已打印 {{count}} 次`,uploadedBy:`上传者`,deleteFolder:`删除文件夹`,deleteFile:`删除文件`,deleteFilesCount:`删除 {{count}} 个文件`,deleteFolderConfirm:`确定要删除此文件夹吗?其中的所有文件也将被删除。`,deleteFileConfirm:`确定要删除此文件吗?`,deleteFilesConfirm:`确定要删除 {{count}} 个选中的文件吗?此操作无法撤销。`,deleting:`删除中...`,noPermissionRenameFolder:`您没有重命名文件夹的权限`,noPermissionLinkFolder:`您没有链接文件夹的权限`,noPermissionDeleteFolder:`您没有删除文件夹的权限`,onlyEmptyFoldersDeletable:`您只能删除空文件夹`,noPermissionPrint:`您没有打印的权限`,noPermissionSlice:`您没有切片文件的权限`,noPermissionAddToQueue:`您没有添加到队列的权限`,noPermissionDownload:`您没有下载文件的权限`,noPermissionRenameFile:`您没有重命名此文件的权限`,noPermissionGenerateThumbnail:`您没有生成缩略图的权限`,noPermissionDeleteFile:`您没有删除此文件的权限`,noPermissionCreateFolder:`您没有创建文件夹的权限`,noPermissionUpload:`您没有上传文件的权限`,noPermissionMoveFiles:`您没有移动文件的权限`,noPermissionDeleteFiles:`您没有删除文件的权限`,linkExternal:`链接外部`,linkExternalFolder:`链接外部文件夹`,linkExternalFolderDescription:`将主机目录(NAS、USB、网络共享)挂载到文件管理器中。文件不会被复制——直接从原始路径访问。`,externalFolderNamePlaceholder:`例如:NAS打印文件`,externalPath:`主机路径`,externalPathHelp:`Docker主机上目录的绝对路径。必须以绑定挂载方式挂载到容器中。`,readOnly:`只读`,readOnlyHelp:`防止上传和删除`,showHiddenFiles:`显示隐藏文件(点文件)`,externalFolder:`外部文件夹`,scanFolder:`扫描`,toast:{folderCreated:`文件夹已创建`,folderDeleted:`文件夹已删除`,fileDeleted:`文件已删除`,filesDeleted:`已删除 {{count}} 个文件`,filesMoved:`文件已移动`,folderLinked:`文件夹已链接`,folderUnlinked:`文件夹已取消链接`,externalFolderLinked:`外部文件夹已链接并扫描`,folderScanned:`扫描完成:添加 {{added}} 个,移除 {{removed}} 个`,addedToQueue:`已将 {{count}} 个文件添加到队列`,addedToQueuePartial:`已添加 {{added}} 个文件,{{failed}} 个失败`,failedToAddToQueue:`添加文件失败:{{error}}`,fileRenamed:`文件已重命名`,folderRenamed:`文件夹已重命名`,thumbnailsGenerated:`已生成 {{count}} 个缩略图`,thumbnailsGeneratedPartial:`已生成 {{succeeded}} 个缩略图,{{failed}} 个失败`,noStlMissingThumbnails:`没有缺少缩略图的 STL 文件`,failedToGenerateThumbnails:`生成缩略图失败:{{error}}`,thumbnailGenerated:`缩略图已生成`,failedToGenerateThumbnail:`生成缩略图失败:{{error}}`}},projects:{title:`项目`,subtitle:`组织和跟踪您的 3D 打印项目`,newProject:`新建项目`,editProject:`编辑项目`,deleteProject:`删除项目`,projectName:`项目名称`,description:`描述`,noProjects:`暂无项目`,noProjectsFiltered:`没有{{status}}项目`,noProjectsFilteredHelp:`您没有任何{{status}}项目。当项目状态更改时,它们将出现在这里。`,createFirst:`创建您的第一个项目以开始组织相关打印、跟踪进度和管理构建。`,createFirstButton:`创建您的第一个项目`,create:`创建`,files:`文件`,prints:`打印`,plates:`板`,parts:`零件`,lastModified:`最后修改`,deleteConfirm:`确定要删除此项目吗?归档和队列项目将被取消链接但不会被删除。`,addFiles:`添加文件`,removeFile:`移除文件`,viewDetails:`查看详情`,namePlaceholder:`例如:Voron 2.4 构建`,descriptionPlaceholder:`可选描述...`,urlLabel:`网址`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`网址必须以 http:// 或 https:// 开头`,openExternalUrl:`打开项目网址`,coverImageLabel:`封面图片`,coverImageAlt:`项目封面图片`,coverImageUpload:`上传`,coverImageReplace:`替换`,coverImageRemove:`移除`,color:`颜色`,targetPlates:`目标板数`,targetPlatesPlaceholder:`例如:25`,targetPlatesHelp:`打印任务数量`,targetParts:`目标零件数`,targetPartsPlaceholder:`例如:150`,targetPartsHelp:`所需零件总数`,targetSets:`每个文件的份数`,targetSetsPlaceholder:`例如 10`,targetSetsHelp:`每个可打印文件需要打印的次数`,tagsLabel:`标签(逗号分隔)`,tagsPlaceholder:`例如:voron、功能件、礼物`,dueDate:`截止日期`,priority:`优先级`,priorityLow:`低`,priorityNormal:`普通`,priorityHigh:`高`,priorityUrgent:`紧急`,statusActive:`进行中`,statusCompleted:`已完成`,statusArchived:`已归档`,done:`完成`,completed:`已完成`,failed:`失败`,inQueue:`队列中`,noPrintsYet:`暂无打印`,printJobs:`打印任务(板)`,partsPrinted:`已打印零件`,failedParts:`失败零件`,import:`导入`,export:`导出`,importProject:`导入项目`,exportAll:`导出所有项目`,loading:`加载项目中...`,noEditPermission:`您没有编辑项目的权限`,noDeletePermission:`您没有删除项目的权限`,noCreatePermission:`您没有创建项目的权限`,noImportPermission:`您没有导入项目的权限`,noExportPermission:`您没有导出项目的权限`,toast:{created:`项目已创建`,updated:`项目已更新`,deleted:`项目已删除`,imported:`项目已导入`,multipleImported:`已导入 {{count}} 个项目`,importFailed:`导入失败`,exported:`项目已导出(仅元数据)`}},projectDetail:{notFound:`未找到项目`,backToProjects:`返回项目`,export:`导出`,exportProject:`导出项目`,noExportPermission:`您没有导出项目的权限`,noEditPermission:`您没有编辑项目的权限`,partOf:`属于:`,priorityLabel:`优先级:`,noPrints:`此项目暂无打印`,status:{active:`进行中`,completed:`已完成`,archived:`已归档`},priority:{low:`低`,normal:`普通`,high:`高`,urgent:`紧急`},dueDate:{overdue:`已逾期`,today:`今天到期`,daysLeft:`还有 {{count}} 天`},progress:{platesProgress:`板进度`,partsProgress:`零件进度`,setsProgress:`完整套数`,sets:`套`,setsHint:`当每个可打印文件都达到此次数时,即完成一套`,printJobs:`打印任务`,parts:`零件`,percentComplete:`{{percent}}% 完成`,remaining:`剩余 {{count}} 个`},stats:{printJobs:`打印任务`,total:`总计`,failed:`{{count}} 个失败`,partsPrinted:`已打印 {{count}} 个零件`,printTime:`打印时间`,filamentUsed:`耗材用量`},cost:{title:`成本追踪`,filamentCost:`耗材成本`,energy:`能源`,totalCost:`总成本`,total:`总计`,includesBom:`含物料清单`,budget:`预算`,remaining:`剩余`},subProjects:{title:`子项目 ({{count}})`},notes:{title:`备注`,noEditPermission:`您没有编辑备注的权限`,placeholder:`添加关于此项目的备注...`,empty:`暂无备注。点击编辑添加备注。`},files:{title:`文件`,linkFolders:`从文件管理器链接文件夹`,forQuickAccess:`到此项目以便快速访问。`,fileCount:`{{count}} 个文件`,empty:`未链接文件夹。前往文件管理器将文件夹链接到此项目。`,printedCount:`已打印 {{count}} 次`,progressTooltip:`已完成 {{done}}/{{target}} 次打印`,noFiles:`此文件夹中没有文件。`},bom:{title:`材料清单`,acquired:`已获取 {{completed}}/{{total}}`,showAll:`显示全部`,hideDone:`隐藏已完成`,addPart:`添加零件`,noAddPermission:`您没有添加零件的权限`,partNamePlaceholder:`零件名称(例如:M3x8 螺丝)`,partName:`零件名称`,qty:`数量`,price:`价格 ({{currency}})`,sourcingUrlPlaceholder:`采购链接(可选)`,remarksPlaceholder:`备注(可选)`,deletePart:`删除零件`,deleteConfirm:`确定要删除"{{name}}"吗?`,noUpdatePermission:`您没有更新零件的权限`,noEditPermission:`您没有编辑零件的权限`,noDeletePermission:`您没有删除零件的权限`,totalCost:`总成本:`,empty:`材料清单中没有零件。添加硬件、电子元件或其他组件以跟踪需要采购的物品。`},timeline:{title:`活动时间线`,empty:`暂无活动。`},template:{saveAsTemplate:`保存为模板`,noCreatePermission:`您没有创建模板的权限`},queue:{title:`队列`,viewAll:`查看全部`,printing:`{{count}} 个打印中`,queued:`{{count}} 个排队中`},prints:{title:`打印 ({{count}})`},toast:{projectUpdated:`项目已更新`,partAdded:`零件已添加`,partRemoved:`零件已移除`,exportFailed:`导出失败`,projectExported:`项目已导出`,templateCreated:`模板已创建`}},system:{title:`系统信息`,version:`版本`,uptime:`运行时间`,cpuUsage:`CPU 使用率`,memoryUsage:`内存使用率`,diskUsage:`磁盘使用率`,networkInfo:`网络信息`,logs:`日志`,debugMode:`调试模式`,enableDebug:`启用调试日志`,disableDebug:`禁用调试日志`,downloadLogs:`下载日志`,clearLogs:`清除日志`,dockerInfo:`Docker 信息`,containerName:`容器名称`,imageName:`镜像名称`,platform:`平台`,architecture:`架构`},sponsors:{sectionTitle:`独立运营·社区支持`,tagline:`Bambuddy 完全免费,并将持续免费——这要感谢主动支持的用户。没有风投,也没有云端绑定。`,viewSupporters:`查看支持者`,toastPrints:`你已经用 Bambuddy 完成了 {{count}} 次打印。Bambuddy 之所以免费,离不开支持者。`,toastCost:`你已经用 Bambuddy 追踪了 {{total}} 的耗材。看看是谁让项目保持独立。`,toastArchives:`用 Bambuddy 归档了 {{count}} 次打印。看看是谁让它保持独立。`,toastAnniversary:`与 Bambuddy 相伴一年了!看看是谁让项目保持独立。`,toastVersionUpdate:`已更新至 v{{version}}。Bambuddy 之所以免费,离不开支持者。`,toastBusiness:`您正在 {{count}} 台打印机上运行 Bambuddy?我们为团队提供支持方案:优先修复、开具发票,以及与维护者的直接沟通渠道。`,businessCta:`Bambuddy 商业版`,businessTitle:`Bambuddy 商业版`,businessTagline:`您正在管理 {{count}} 台打印机。我们为团队和打印农场提供优先支持、商业授权和发票开具。`},library:{title:`耗材库`,addFilament:`添加耗材`,editFilament:`编辑耗材`,deleteFilament:`删除耗材`,vendor:`厂商`,material:`材料`,color:`颜色`,kFactor:`K 值`,temperature:`温度`,noFilaments:`耗材库中没有耗材`,deleteConfirm:`确定要删除此耗材吗?`,importFromPrinter:`从打印机导入`,exportToFile:`导出到文件`,runWithPipeline:{actionLabel:`用流水线运行`,noPermission:`您没有运行流水线的权限`,modalTitle:`用流水线运行`,confirmTitle:`确认运行`,confirmIntro:`预检发现此次运行存在问题`,sourceHint:`来源`,pipelineHint:`流水线`,targetHint:`目标`,pipelineListAria:`可用流水线`,runAnyway:`仍然运行`,loading:`加载中…`,empty:`尚未保存流水线。请打开切片对话框并点击"另存为流水线"创建一个。`,noTarget:`未设置目标打印机`,noTargetMessage:`此流水线没有目标打印机。请在设置中打开并选择一个。`,copies:`副本数`,copiesHint:`最多 {{n}}`,classTarget:`任意 {{model}}`,toast:{started:`流水线运行已开始`,failed:`无法启动运行`},issue:{printerNotSet:`此流水线未设置目标打印机。`,printerNotFound:`目标打印机已不存在。`,printerDisabled:`目标打印机已禁用。`,printerOffline:`目标打印机已离线。`,filamentType:`耗材槽 {{slot}}:期望 {{expected}},AMS 实际 {{actual}}`,filamentColor:`耗材槽 {{slot}}:颜色不同(期望 {{expected}},AMS 实际 {{actual}})`,amsSlotMissing:`此打印机上没有 AMS 槽 {{slot}}`,filamentUnverified:`耗材槽 {{slot}} 来自云端 / 标准预设,无法静态验证。`,noClassMatches:`此安装中没有匹配该流水线目标型号类别({{expected}})的打印机。`,classNotSet:`流水线目标设置为打印机类别但未选择型号。`}}},slice:{title:`切片模型`,action:`切片`,actionAll:`切片全部 {{count}} 个盘面`,actionAllTitle:`将所有盘面切片为单个多盘面输出(一个归档)。耗材选择覆盖项目定义的每个槽位。`,allPlatesToggle:`切片全部 {{count}} 个盘面`,slicing:`切片中…`,printer:`打印机配置`,process:`工艺配置`,filament:`耗材配置`,filamentSlot:`耗材 {{index}}({{type}})`,selectPreset:`— 选择预设 —`,loadingPresets:`加载预设中…`,analyzingPlateFilaments:`分析打印板耗材中…`,analyzingPlateFilamentsHint:`正在运行预览切片以发现此打印板使用的 AMS 插槽。之后会缓存 — 重新打开是即时的。`,previewToast:`分析 {{name}} — {{elapsed}}`,previewWithProgress:`分析 {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,notUsedByPlate:`— 此打印板未使用`,noPresetsForSlot:`无可用预设`,otherPrinters:`其他打印机`,presetsLoadFailed:`加载预设失败。请先打开设置 → 配置文件以导入。`,refreshPresets:`刷新`,refreshPresetsTitle:`刷新预设 — 获取最新的云端和打包配置列表(在 Bambu Studio 或 Bambu Handy 中删除预设后使用)`,allPresetsRequired:`必须选择所有预设`,useEmbedded:`使用文件的内置设置`,useEmbeddedHint:`按设计者的设置(壁、填充、耗材)切片,而非上方的配置文件。因您的打印机与文件匹配而可用。`,designSettings:`保留设计者的设置`,designSettingsHint:`此文件相对标准配置修改了 {{count}} 项打印设置。`,designSettingsSelected:`已选择 {{selected}} / {{total}}`,designSettingsPrinterCoupled:`与打印机相关`,designSettingsPrinterCoupledHint:`该值是为此文件面向的打印机调校的,在你的打印机上可能不正确或超出范围。`,enqueuing:`提交切片任务中…`,queued:`已排队…`,failed:`切片失败。请检查切片器 sidecar 日志。`,startedToast:`在后台切片 {{name}}…`,queuedToast:`已排队:{{name}} — {{elapsed}}`,runningToast:`切片 {{name}} — {{elapsed}}`,runningWithProgress:`{{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,runningWithProgressMultiPlate:`盘面 {{plateIndex}} / {{plateCount}} • {{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,completedToast:`已切片 {{name}}`,failedTitle:`切片失败`,failedToast:`切片 {{name}} 失败:{{detail}}`,tier:{local:`已导入`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`标准`},cloud:{notAuthenticated:`登录 Bambu Cloud(设置 → 配置文件 → Bambu Cloud)以查看云端预设。`,expired:`Bambu Cloud 会话已过期 — 请重新登录以刷新云端预设。`,unreachable:`目前无法访问 Bambu Cloud。本地和标准预设仍可使用。`},orcaCloud:{notAuthenticated:`登录 Orca Cloud(配置文件 → Orca Cloud)以查看您的 Orca 预设。`,expired:`Orca Cloud 会话已过期 — 请重新登录以刷新您的 Orca 预设。`,unreachable:`Orca Cloud 当前无法访问。其他预设仍可正常使用。`},bedType:{label:`打印板`,auto:`自动(使用工艺预设)`,coolPlate:`冷板`,coolPlateSuperTack:`Cool Plate SuperTack`,engineering:`Engineering Plate`,highTemp:`High Temp Plate`,texturedPEI:`Textured PEI Plate`,smoothPEI:`Smooth PEI Plate`},pipelines:{label:`流水线`,applyAria:`应用流水线`,applyPrompt:`应用流水线…`,empty:`无已保存流水线`,saveButton:`另存为流水线`,saveTitle:`将当前四个槽位的选择保存为可复用流水线`,namePlaceholder:`流水线名称`,nameAria:`新流水线名称`,toast:{applied:`已应用 "{{name}}"`,saved:`流水线已保存`,saveFailed:`保存失败`}}},spoolman:{title:`Spoolman 集成`,enabled:`Spoolman 已启用`,url:`Spoolman URL`,connected:`已连接`,disconnected:`未连接`,testConnection:`测试连接`,sync:`同步`,syncing:`同步中...`,lastSync:`上次同步`,linkToSpoolman:`链接到 Spoolman`,openInSpoolman:`在 Spoolman 中打开`,unlinkSpool:`取消链接耗材`,unlinkConfirmTitle:`取消分配料盘?`,unlinkConfirmMessage:`这将从此插槽中移除料盘。料盘本身的数据将保持不变。`,selectSpool:`选择耗材`,noUnlinkedSpools:`无未分配的料盘`,linkSuccess:`料盘分配成功`,linkFailed:`料盘分配失败`,unlinkSuccess:`料盘取消分配成功`,unlinkFailed:`料盘取消分配失败`,linkedSpool:`已分配料盘`,spoolId:`耗材 ID`,fillSourceLabel:`(Spoolman)`,weight:`重量`,remaining:`剩余`,disableWeightSync:`禁用 AMS 估计重量同步`,disableWeightSyncDesc:`不从 AMS 估计值更新剩余容量。如果您更喜欢 Spoolman 的用量追踪而非 AMS 百分比估计,请使用此选项。新耗材仍将使用 AMS 估计值作为初始重量。`,reportPartialUsage:`报告失败打印的部分用量`,reportPartialUsageDesc:`当打印失败或被取消时,根据层进度报告估计的耗材使用量。`},locations:{title:`存储位置`,subtitle:`管理货架、抽屉等线轴物理存放位置`,add:`添加位置`,addShort:`添加`,edit:`编辑位置`,name:`名称`,spools:`线轴`,empty:`尚无存储位置。创建第一个货架或抽屉。`,manage:`位置`,createPlaceholder:`例如:A 架、抽屉 1`,nameRequired:`位置名称为必填项`,created:`位置已创建`,updated:`位置已更新`,deleted:`位置已删除`,saveFailed:`保存位置失败`,deleteFailed:`删除位置失败`,deleteBlocked:`删除前请移走此位置上的所有线轴`,confirmDelete:`删除「{{name}}」?`,confirmDeleteMessage:`此位置将从目录中移除。请先移走线轴。`},inventory:{title:`耗材库存`,subtitle:`管理您的料盘`,addToInventory:`添加到库存`,addToInventoryPending:`正在添加...`,addToInventorySuccess:`料盘已添加到库存`,addToInventoryFailed:`添加料盘到库存失败`,unknownSpoolTitle:`检测到新耗材`,unknownSpoolMessage:`在 {{location}} 检测到带有未知 RFID 标签的料盘。是否立即添加到库存?`,unknownSpoolSlot:`槽位`,bulk:{selectAllVisible:`选择所有可见项`,selectRow:`选择行`,selectGroup:`选择组`,selectionCount:`已选 {{count}} 个`,edit:`编辑`,printLabels:`打印标签`,resetUsage:`重置使用量`,restore:`恢复`,archive:`归档`,delete:`删除`,clearSelection:`清除选择`,editTitle:`批量编辑料盘`,editSubtitle:`将应用于选中的 {{count}} 个料盘。仅更新勾选的字段。`,editHint:`在字段中输入即可标记为更新 — 仅发送已勾选的行。留空字段不会更改料盘(清空字段仅能在单个料盘中操作)。`,useCustom:`使用 "{{value}}"`,toggleField:`切换此字段的更新`,changeCount:`将更新 {{count}} 个字段。`,applyPending:`应用中...`,applyButton:`应用于 {{count}} 个料盘`,deleteTitle:`删除选中的料盘`,archiveTitle:`归档选中的料盘`,restoreTitle:`恢复选中的料盘`,resetUsageTitle:`重置选中料盘的使用量`,deleteMessage:`永久删除 {{count}} 个料盘?此操作无法撤销。`,archiveMessage:`归档 {{count}} 个料盘?以后可以恢复。`,restoreMessage:`恢复 {{count}} 个已归档的料盘?`,resetUsageMessage:`将 {{count}} 个料盘的"总消耗"计数器重置?剩余重量将被保留。`,updateSuccess:`已更新 {{count}} 个料盘`,updateFailed:`批量更新失败`,updatePartial:`已更新 {{ok}} 个,{{failed}} 个失败`,updateAllFailed:`{{count}} 个料盘更新全部失败 — 已保留选择以便重试`,deleteSuccess:`已删除 {{count}} 个料盘`,deleteFailed:`批量删除失败`,deletePartial:`已删除 {{ok}} 个,{{failed}} 个失败`,deleteAllFailed:`{{count}} 个料盘删除全部失败 — 已保留选择以便重试`,archiveSuccess:`已归档 {{count}} 个料盘`,archiveFailed:`批量归档失败`,archivePartial:`已归档 {{ok}} 个,{{failed}} 个失败`,archiveAllFailed:`{{count}} 个料盘归档全部失败 — 已保留选择以便重试`,restoreSuccess:`已恢复 {{count}} 个料盘`,restoreFailed:`批量恢复失败`,restorePartial:`已恢复 {{ok}} 个,{{failed}} 个失败`,restoreAllFailed:`{{count}} 个料盘恢复全部失败 — 已保留选择以便重试`,invalidHex:`请输入 6 位十六进制字符 (RRGGBB) 或 8 位 (RRGGBBAA),否则该字段不会应用。`},spoolmanMixedContentTitle:`Spoolman 无法通过 HTTPS 加载 — 浏览器已阻止混合内容`,spoolmanMixedContentBody:`Bambuddy 通过您的反向代理以 HTTPS 提供服务,但您的 Spoolman 地址仍为 HTTP。出于安全考虑,浏览器会阻止混合内容,因此嵌入式 Spoolman 界面无法加载。Spoolman 也必须通过 HTTPS 访问。`,spoolmanMixedContentFixReverseProxy:`请将 Spoolman 置于与 Bambuddy 相同的反向代理(Traefik / Nginx / Caddy)之后并启用 HTTPS,然后在设置中将 Spoolman URL 更新为新的 HTTPS 地址。`,spoolmanMixedContentFixOpenNewTab:`作为变通方案,可在新标签页中通过 HTTP 打开 Spoolman — 混合内容规则仅适用于嵌入式框架,独立标签页仍可正常使用。`,spoolmanOpenInNewTab:`在新标签页中打开 Spoolman`,labels:{title:`打印线材标签`,selectedCount:`已选 {{count}} 项`,pickSpools:`选择要打印标签的线材:`,monochrome:`单色(黑白打印机)`,monochromeHint:`移除颜色色块并加宽文本`,searchPlaceholder:`按名称、品牌或 #ID 搜索`,filterByMaterial:`材料:`,allMaterials:`全部`,selectVisible:`选择所有可见 ({{count}})`,deselectVisible:`取消选择可见`,clearAll:`全部清除`,noSpoolsToShow:`没有要显示的线材。请调整筛选条件后重试。`,noMatches:`没有线材符合当前搜索或筛选。`,printOne:`打印此线材的标签`,printLabels:`打印标签…`,bulkTitle:`从当前显示的 {{count}} 个线材中选择要打印标签的`,noSpoolsTitle:`没有要打标签的线材`,error:`无法生成标签:{{msg}}`,sortBy:{label:`排序:`,id:`按 ID`,color:`按颜色`},templates:{amsHolderSmall:{label:`AMS 支架 — 小 (74 × 33 mm)`,hint:`每页一个标签;适配 MakerWorld 模型 752566 (AMS 耗材标签支架) 中可打印的标签。`},amsHolderLarge:{label:`AMS 支架 — 大 (75 × 55 mm)`,hint:`每页一个标签;适配 AMS 耗材标签支架的卡片插入款。空间充足,可放置色板、品牌、材料、ID 与二维码。`},box40x30:{label:`盒标签 (40 × 30 mm)`,hint:`每页一张;常见的 DK/Brother 卷尺寸,适合给耗材袋和储物盒贴标签。`},box:{label:`Box label (62 × 29 mm)`,hint:`每页一个标签;适配 Brother PT/QL 和 Dymo 小标签。`},averyL7160:{label:`Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)`,hint:`欧洲规格纸张;每张 A4 页 21 个标签。`},avery5160:{label:`Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)`,hint:`美国规格纸张;每张 Letter 页 30 个标签。`}}},csv:{importButton:`导入 CSV`,exportButton:`导出 CSV`,modalTitle:`从 CSV 导入耗材`,selectFile:`选择 CSV 文件或拖放到此处`,dragHint:`表头:material(必填)、brand、subtype、color_name、rgba、…`,parsing:`正在读取文件…`,previewError:`无法读取 CSV 文件`,validCount:`{{count}} 个有效`,errorCount:`{{count}} 个错误`,skippedCount:`{{count}} 个跳过`,colRow:`行`,colStatus:`状态`,colColor:`颜色`,colorResolved:`已从目录填充颜色`,colorCrossMaterial:`颜色取自其他材料 — 目录中无精确匹配`,duplicateExisting:`已存在具有此材料、品牌和颜色的料卷 — 仍会作为新料卷导入`,spoolmanHint:`在 Spoolman 模式下,请使用 Spoolman 内置的 CSV 导入/导出。`,importValidRows:`导入 {{count}} 个有效行`,noValidRows:`没有有效行`,importing:`正在导入…`,importSuccess:`已导入 {{count}} 个耗材`,importError:`导入失败`,exportError:`导出失败`},addSpool:`添加耗材`,editSpool:`编辑耗材`,copySpool:`复制耗材`,material:`材料`,selectMaterial:`选择材料...`,subtype:`子类型`,brand:`品牌`,searchBrand:`搜索品牌...`,useCustomBrand:`使用"{{brand}}"`,useCustomMaterial:`使用自定义材料:{{material}}`,suggestedOptions:`推荐`,allOptions:`全部`,colorName:`颜色名称`,colorNamePlaceholder:`翡翠白、烈焰红...`,color:`颜色`,hexColor:`十六进制颜色`,pickColor:`选择自定义颜色`,labelWeight:`标签重量`,coreWeight:`空盘重量`,searchSpoolWeight:`搜索耗材重量...`,weightUsed:`已使用`,currentWeight:`剩余重量`,measuredWeight:`称量重量`,spoolName:`线轴`,costPerKg:`每公斤成本`,storageLocation:`存放位置`,storageLocationPlaceholder:`例如:货架A,抽屉1`,openInInventory:`在库存中查看`,measuredWeightError:`称量重量必须在 {{min}}g 到 {{max}}g 之间。`,slicerFilament:`切片耗材`,slicerFilamentName:`切片预设名称`,slicerPreset:`切片预设`,searchPresets:`搜索耗材预设...`,selectedPreset:`已选择`,noPresetsFound:`未找到预设`,tempOverrides:`温度覆盖`,note:`备注`,notePlaceholder:`关于此耗材的任何备注...`,category:`类别`,categoryPlaceholder:`例如:生产、原型、客户A`,categoryNone:`未分类`,storageLocationNone:`未设置位置`,lowStockThresholdOverride:`低库存阈值(此料盘)`,lowStockThresholdOverrideHelp:`留空以使用全局阈值({{global}}%)。`,clearRfid:`清除 RFID 标签`,rfidCleared:`RFID 标签已清除`,archive:`归档`,restore:`恢复`,noSpools:`暂无耗材。添加您的第一个耗材开始使用。`,noAvailableSpools:`没有可用的耗材。请先向库存中添加耗材,或从其他槽位取消分配一个耗材。`,kProfiles:`K 值配置`,addKProfile:`添加 K 值配置`,assignSpool:`分配耗材`,unassignSpool:`取消分配`,assignSuccess:`耗材已分配,AMS 槽位已配置`,assignPendingInsert:`已分配。插入耗材后将配置槽位。`,assignFailed:`分配耗材失败`,assignMismatchTitle:`材料不匹配`,assignMismatchMessage:`所选线轴材料 "{{spoolMaterial}}" 与 {{location}} 的料槽材料 "{{trayMaterial}}" 不匹配。仍要分配吗?`,assignMismatchConfirm:`仍然分配`,assignPartialMismatchMessage:`线轴材料 "{{spoolMaterial}}" 与 {{location}} 的 "{{trayMaterial}}" 相近但不完全一致。是否继续?`,assignProfileMismatchMessage:`线轴配置 "{{spoolProfile}}" 与 {{location}} 的料槽配置 "{{trayProfile}}" 不一致。是否继续?`,assignReconfigureNote:`AMS 槽位将重新配置为使用线轴的配置。`,selectSpool:`选择要分配到此槽位的耗材`,assigned:`已分配`,assigning:`分配中...`,searchSpools:`搜索耗材...`,showAllSpools:`显示所有耗材`,spoolmanSpools:`Spoolman 线轴`,allMaterials:`所有材料`,filterByBrand:`按品牌筛选...`,showArchived:`显示已归档`,quickAdd:`快速添加(库存)`,quantity:`数量`,stock:`库存`,configured:`已配置`,spoolsCreated:`已创建 {{count}} 个耗材`,spoolsPartiallyCreated:`已创建 {{created}} / {{total}} 个耗材(部分失败)`,spoolCreated:`耗材已创建`,spoolUpdated:`耗材已更新`,spoolDeleted:`耗材已删除`,deepLinkSpoolNotFound:`未找到耗材`,deepLinkFetchFailed:`无法加载耗材 — 请重试`,spoolArchived:`耗材已归档`,spoolRestored:`耗材已恢复`,kProfileSaveFailed:`K值配置文件设置无法保存`,syncWeightSpoolNotFound:`未找到耗材 — 可能已被删除`,syncWeightSpoolmanUnreachable:`Spoolman 无法访问 — 请稍后再试`,syncWeightFailed:`重量同步失败`,spoolmanUnreachable:`Spoolman 无法访问 — 请稍后再试`,deleteSpoolNotFound:`未找到耗材 — 可能已被删除`,deleteFailed:`删除耗材失败`,archiveSpoolNotFound:`未找到耗材 — 可能已被删除`,archiveFailed:`归档耗材失败`,restoreSpoolNotFound:`未找到耗材 — 可能已被删除`,restoreFailed:`恢复耗材失败`,saveFailed:`保存更改失败`,tagClearFailed:`清除标签失败`,deleteConfirm:`确定要删除此耗材吗?此操作无法撤销。`,archiveConfirm:`确定要归档此耗材吗?`,advancedSettings:`高级设置`,filamentInfoTab:`耗材信息`,paProfileTab:`PA 配置`,filamentInfo:`耗材`,additional:`附加`,loadingPresets:`加载云端预设中...`,cloudConnected:`云端已连接`,cloudNotConnected:`云端未连接(使用默认值)`,recentColors:`最近`,searchColors:`搜索颜色...`,searchResults:`搜索结果`,allColors:`所有颜色`,commonColors:`常用颜色`,showLess:`显示更少`,showAll:`显示全部`,noColorsFound:`没有颜色匹配您的搜索`,noResults:`未找到匹配项`,extraColorsLabel:`附加颜色`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`粘贴 2 到 8 个十六进制色值,以逗号分隔。将渲染为渐变。`,extraColorsInvalid:`已忽略无效的十六进制值:{{tokens}}`,colorEffectLabel:`效果`,colorEffect:{none:`无`,sparkle:`闪光`,wood:`木纹`,marble:`大理石`,glow:`夜光`,matte:`哑光`,silk:`丝光`,galaxy:`星空`,rainbow:`彩虹`,metal:`金属`,translucent:`半透明`,gradient:`渐变`,dualColor:`双色`,triColor:`三色`,multicolor:`多色`},selectMaterialFirst:`请先在耗材信息选项卡中选择材料。`,noPrintersConfigured:`未配置打印机。添加打印机以使用 PA 配置。`,matchingFilter:`匹配`,anyBrand:`任何品牌`,anyVariant:`任何变体`,autoSelect:`自动选择`,matches:`匹配`,match:`匹配`,noMatches:`无匹配`,connected:`已连接`,offline:`离线`,printerOffline:`打印机离线。连接后查看校准配置。`,noKProfilesMatch:`没有 K 值配置匹配所选耗材。`,leftNozzle:`左喷嘴`,rightNozzle:`右喷嘴`,profilesSelected:`个校准配置已选择`,totalInventory:`总库存`,totalConsumed:`总消耗`,byMaterial:`按材料`,inPrinter:`在打印机中`,lowStock:`库存不足`,sinceTracking:`自开始追踪`,resetConsumedCounter:`重置计数器`,resetConsumedCounterTooltip:`将此料盘的已消耗克数计数器清零。剩余重量保持不变。`,resetConsumedCounterConfirm:`将此料盘的已消耗克数计数器重置为 0?后续打印将从零开始计数。料盘本身、剩余重量计算和您的设置不会改变。`,resetAllConsumedCounters:`重置所有计数器`,resetAllConsumedCountersTooltip:`将每个料盘的已消耗克数计数器清零。剩余重量保持不变。`,resetAllConsumedCountersConfirm:`将全部 {{count}} 个料盘(含已归档)的已消耗克数计数器重置为 0?这将清空"累计消耗"统计值,后续打印从零开始计数。料盘和剩余重量不会改变。`,consumedCounterReset:`计数器已重置`,allConsumedCountersReset:`已重置 {{count}} 个料盘的计数器`,resetConsumedCounterFailed:`重置计数器失败`,loadedInAms:`已装载到 AMS/外置`,remaining:`剩余`,weightCheck:`重量检查`,lastWeighed:`上次称量`,neverWeighed:`从未称量`,search:`搜索耗材...`,showing:`显示`,to:`到`,of:`共`,show:`显示`,spools:`个耗材`,spool:`个耗材`,page:`页`,noSpoolsMatch:`未找到结果`,noSpoolsMatchDesc:`尝试调整您的搜索或筛选条件。`,active:`活跃`,archived:`已归档`,all:`全部`,used:`已使用`,new:`新的`,clearFilters:`清除筛选`,table:`表格`,cards:`卡片`,net:`净重`,groupSimilar:`分组`,groupedSpools:`{{count}} 个相同耗材`,groupedRows:`行`,columns:`列`,configureColumns:`配置列`,configureColumnsDesc:`拖动以重新排序列或使用箭头。使用眼睛图标切换可见性。`,visible:`可见`,reset:`重置`,cancel:`取消`,applyChanges:`应用更改`,moveUp:`上移`,moveDown:`下移`,hideColumn:`隐藏列`,showColumn:`显示列`,linkToSpool:`链接到耗材`,tagLinked:`标签已链接到耗材`,tagLinkFailed:`链接标签失败`,tagAlreadyLinked:`标签已链接到其他耗材`,unknownTag:`检测到未知 RFID 标签`,usageHistory:`使用历史`,noUsageHistory:`暂无使用记录`,printName:`打印名称`,weightConsumed:`消耗重量`,clearHistory:`清除`,historyCleared:`使用历史已清除`,fillSourceLabel:`(库存)`,lowStockThresholdError:`阈值必须在 0.1 到 99.9 之间`,spoolmanFilamentCatalog:`Spoolman 耗材目录`,pickFromSpoolmanCatalog:`从 Spoolman 目录选择…`,spoolmanFilamentSelected:`已从 Spoolman 目录选择耗材`,spoolmanFilamentUnlinked:`已解除耗材目录关联`,noSpoolmanFilaments:`Spoolman 目录中未找到耗材`,spoolmanFilamentColorSwatch:`耗材颜色`,spoolWeightManagedBySpoolman:`空线轴重量在 Spoolman 中按耗材类型管理`,spoolmanCatalogLoadFailed:`无法加载 Spoolman 耗材目录`},timelapse:{title:`延时摄影`,create:`创建延时摄影`,download:`下载`,delete:`删除`,preview:`预览`,frameRate:`帧率`,quality:`质量`,processing:`处理中...`,noTimelapses:`无可用延时摄影`},ams:{title:`AMS`,slot:`槽位`,empty:`空`,emptySlot:`空槽位`,slotEmpty:`空`,slotUnconfigured:`?`,emptySlotReset:`未分配料盘`,unknown:`未知`,humidity:`湿度`,temperature:`温度`,filamentType:`耗材类型`,filamentColor:`颜色`,remaining:`剩余`,history:`AMS 历史`,noHistory:`无可用历史`,configureSlot:`配置槽位`,externalSpool:`外置耗材`,profile:`配置`,kFactor:`K 值`,fill:`填充`,configure:`配置`,used:`已使用`,remainingUnit:`剩余`},printModal:{selectPrinter:`选择打印机`,selectPlate:`选择板`,filamentMapping:`耗材映射`,plateN:`板 {{n}}`,plateFilamentsUnreadable:`无法读取所选盘的耗材信息,因此无法进行映射。取消选择该盘即可将其余盘加入队列。`,totalCost:`总成本:`,slotRemainingShort:` - 剩余 {{grams}}g`,printSettings:`打印设置`,bedLeveling:`热床调平`,flowCalibration:`流量校准`,vibrationCalibration:`振动校准`,layerInspection:`首层检查`,timelapse:`延时摄影`,cancel:`取消`,noPrintersAvailable:`无可用打印机`,printerBusy:`打印机忙碌`,printerOffline:`打印机离线`,sameTypeDifferentColor:`相同类型,不同颜色`,filamentTypeNotLoaded:`耗材类型未装载`,whenToPrint:`何时打印`,asap:`尽快`,queue:`队列`,schedule:`计划`,dateTime:`日期和时间`,invalidDateTime:`请输入有效的日期和时间`,openCalendar:`打开日历`,requireManualStart:`要求手动开始`,requirePreviousSuccess:`仅在上一次打印成功后开始`,autoOffAfter:`完成后关闭打印机`,helpAsap:`打印将添加到队列顶部,并在符合条件的打印机空闲后立即开始。`,helpSchedule:`如果打印机空闲,打印将在计划时间开始。如果打印机忙碌,则会等待其可用。`,helpQueue:`打印将添加到队列末尾。`,leftNozzle:`左`,rightNozzle:`右`,leftNozzleTooltip:`左喷嘴`,rightNozzleTooltip:`右喷嘴`,filamentOverride:`耗材覆盖`,filamentOverrideHint:`可选覆盖用于基于模型的耗材分配。调度器将使用您选择的耗材而不是原始 3MF 值进行匹配。`,originalFilament:`原始`,overrideWith:`覆盖为`,resetToOriginal:`恢复为原始`,insufficientFilamentTitle:`耗材不足`,waitingForAmsStatus:`正在等待 {{printer}} 的 AMS 状态…`,insufficientFilamentMessage:`部分已分配线轴的剩余耗材少于本次打印所需:`,insufficientFilamentLine:`{{printer}} - {{slot}}:需要 {{required}}g,剩余 {{remaining}}g`,printAnyway:`仍然打印`,forceColorMatch:`强制颜色匹配`,staggerPrinterStarts:`错峰启动打印机`,staggerGroupSize:`组大小`,staggerInterval:`间隔(分钟)`,staggerPreview:`{{printers}} 台打印机 → {{groups}} 个 {{size}} 台的组,每 {{interval}} 分钟启动一次`,staggerLastGroup:`最后一组:{{count}}`,staggerTotal:`共 {{minutes}} 分钟`,staggerToPrinters:`分批发送到 {{count}} 台打印机`,gcodeInjection:`注入自动打印G-code`},backup:{includesEncryptionKey:`本地备份包含 MFA 加密密钥文件(DATA_DIR/.mfa_encryption_key),因此备份 ZIP 是自包含的。请将 ZIP 视为敏感文件 — 任何拥有该文件的人都可以解密内部存储的 OIDC 客户端密钥和 TOTP 密钥。`,title:`备份与恢复`,createBackup:`创建备份`,restoreBackup:`恢复备份`,restoreDescription:`从备份文件替换所有数据`,downloadBackup:`下载备份`,uploadBackup:`上传备份`,lastBackup:`上次备份`,autoBackup:`自动备份`,backupNow:`立即备份`,restoreWarning:`警告:恢复备份将覆盖所有当前数据。`,includeArchives:`包含归档`,includeSettings:`包含设置`,includeProfiles:`包含配置文件`,backupSuccess:`备份创建成功`,restoreSuccess:`备份恢复成功`,backupFailed:`备份失败`,restoreFailed:`恢复失败`,restoreNote:`恢复期间虚拟打印机将停止`,githubBackup:`GitHub 备份`,enabled:`已启用`,cloudLoginRequired:`需要登录 Bambu Cloud。请在 配置文件 → 云配置文件 中登录以启用 GitHub 备份。`,cloudLoginRequiredShort:`需要Cloud登录`,githubDescription:`自动将您的配置文件同步到私有 GitHub 仓库以进行备份和版本历史记录。`,repoIsPrivate:`仓库为私有 — 可以安全备份。`,repoIsPublicWarning:`仓库为公开(PUBLIC)。Bambuddy 备份包含 MQTT 凭据、Home Assistant 令牌、Prometheus 令牌、您的 Bambu Cloud 邮箱以及通过 K-profile 暴露的打印机访问代码。在您于提供商设置中将仓库改为私有之前,保存将被阻止。`,repoVisibilityUnknown:`无法确定仓库的可见性。Bambuddy 拒绝向任何未确认为私有的目标进行备份;保存将被阻止。`,repositoryUrl:`仓库 URL`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`允许不安全的 HTTP`,allowInsecureHttpHint:`为无 TLS 的私有网络自托管实例启用`,personalAccessToken:`个人访问令牌`,tokenSaved:`(已保存)`,enterNewToken:`输入新令牌以更新`,tokenHint:`具有内容读写权限的细粒度令牌`,branch:`分支`,provider:`Git 提供商`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`仅手动`,hourly:`每小时`,daily:`每天`,weekly:`每周`,includeInBackup:`包含在备份中`,kProfiles:`K 配置文件`,kProfilesDescription:`来自已连接打印机的压力推进校准`,noPrintersConnected:`没有打印机连接`,printersConnected:`{{connected}}/{{total}} 已连接`,cloudProfiles:`云配置文件`,cloudProfilesDescription:`来自 Bambu Cloud 的耗材、打印机和工艺预设`,appSettings:`应用设置`,appSettingsDescription:`Bambuddy 配置(完整数据库)`,spoolInventory:`耗材库存`,spoolInventoryDescription:`耗材卷轴、使用记录和成本追踪`,printArchives:`打印档案`,printArchivesDescription:`打印历史元数据(不含 gcode/3MF 文件)`,lastBackupAt:`上次备份:`,noBackupsYet:`尚无备份`,next:`下次:`,startingBackup:`正在启动备份...`,test:`测试`,enableBackup:`启用备份`,testConnection:`测试连接`,enterRepoUrl:`请输入仓库 URL`,enterRepoAndToken:`请输入仓库 URL 和访问令牌`,repoRequired:`仓库 URL 为必填项`,tokenRequired:`访问令牌为必填项`,githubBackupEnabled:`GitHub 备份已启用`,tokenUpdated:`令牌已更新`,settingsSaved:`设置已保存`,failedToSave:`保存失败:{{message}}`,backupCompleteFiles:`备份完成 - {{count}} 个文件已更新`,backupSkippedNoChanges:`备份已跳过 - 无更改`,backupFailed2:`备份失败:{{message}}`,clearedLogs:`已清除 {{count}} 条日志`,failedToClearLogs:`清除日志失败:{{message}}`,history:`历史记录`,clear:`清除`,date:`日期`,status:`状态`,commit:`提交`,localBackup:`本地备份`,localBackupDescription:`创建 Bambuddy 数据的完整备份,包括数据库、档案、上传和所有文件。`,downloadBackupLabel:`下载备份`,completeBackupZip:`完整备份:数据库 + 所有文件(ZIP)`,download:`下载`,preparingBackup:`正在准备备份...`,creatingArchive:`正在创建备份归档...对于大型归档可能需要一些时间。`,downloadingFile:`正在下载备份文件...`,backupDownloaded:`备份下载成功`,failedToCreateBackup:`创建备份失败:{{message}}`,restore:`恢复`,restoreReplacesAll:`恢复将替换所有数据。`,restoreReplacesAllDetail:`您当前的数据库和文件将被完全替换。恢复后需要重启。`,restoreConfirmTitle:`恢复备份`,restoreConfirmMessage:`您确定要从"{{filename}}"恢复吗?这将完全替换您当前的数据库和所有文件。恢复后需要重启应用程序。`,restoreConfirmButton:`恢复备份`,uploadingFile:`正在上传备份文件...`,backupRestoredRestart:`备份已恢复。请重启 Bambuddy。`,failedToRestore:`恢复备份失败。请检查文件格式。`,reloadNow:`立即重新加载`,creatingBackup:`正在创建备份`,restoringBackup:`正在恢复备份`,preparing:`准备中...`,processing:`处理中...`,doNotClosePage:`请不要关闭此页面或导航离开。对于大型备份,此操作可能需要几分钟。`,restoring:`恢复中...`,restoreComplete:`恢复完成`,restoreFailed2:`恢复失败`,importSettings:`从备份文件导入设置`,pleaseWaitRestoring:`请等待数据恢复中`,selectBackupFile:`点击选择备份文件(.json 或 .zip)`,duplicateHandling:`重复项处理方式:`,matchPrinters:`打印机`,matchPrintersBy:`按序列号匹配`,matchSmartPlugs:`智能插座`,matchSmartPlugsBy:`按 IP 地址匹配`,matchNotificationProviders:`通知提供者`,matchNotificationProvidersBy:`按名称匹配`,matchFilaments:`耗材`,matchFilamentsBy:`按名称 + 类型 + 品牌匹配`,matchArchives:`档案`,matchArchivesBy:`按内容哈希匹配(始终跳过)`,matchPendingUploads:`待上传`,matchPendingUploadsBy:`按文件名匹配`,matchSettingsTemplates:`设置和模板`,matchSettingsTemplatesBy:`始终覆盖`,replaceExisting:`替换现有数据`,keepExisting:`保留现有数据`,overwriteDescription:`用备份数据覆盖已存在的项目`,keepDescription:`仅恢复尚不存在的项目`,overwriteCaution:`注意:`,overwriteWarning:`覆盖将用备份数据替换您当前的配置。出于安全考虑,打印机访问代码永远不会被覆盖。`,cancel:`取消`,processingBackup:`正在处理备份文件...`,itemsRestored:`已恢复项目`,itemsSkipped:`已跳过项目`,restored:`已恢复`,skippedAlreadyExist:`已跳过(已存在)`,filesCategory:`文件(3MF、缩略图等)`,andMore:`...还有 {{count}} 项`,newApiKeysGenerated:`已生成新的 API 密钥`,keysShownOnce:`这些密钥仅显示一次。请立即复制!`,copy:`复制`,noDataFound:`在备份文件中未找到可恢复的数据。`,close:`关闭`,scheduledBackup:`定时备份`,scheduledBackupDescription:`按计划自动创建备份快照。输出目录可以挂载到 NAS 或外部存储。`,frequency:`频率`,backupTime:`时间`,retention:`保留`,retentionDescription:`保留备份数量`,outputPath:`输出路径`,outputPathPlaceholder:`默认:{{path}}`,outputPathDescription:`留空以使用默认位置`,runNow:`立即运行`,backupFiles:`备份文件`,noScheduledBackups:`暂无备份`,deleteBackup:`删除`,deleteBackupConfirm:`删除此备份文件?`,backupRunning:`备份中...`,scheduledBackupComplete:`备份成功完成`,scheduledBackupFailed:`备份失败`,nextBackup:`下次备份`,backupSize:`大小`,localTimeHint:`本地时间 ({{tz}})`,defaultPathLabel:`默认:`,pathCheck:{title:`Bambuddy 无法写入该目录`,howToFix:`解决方法:`,sandboxed:`Bambuddy 服务无法写入 {{path}}。它的 systemd 单元以 ProtectSystem=strict 运行,因此除安装、数据和日志目录之外的所有目录对服务而言都是只读的,即使你自己的 shell 可以写入也一样。`,read_only:`{{path}} 位于只读文件系统上。`,permission_denied:`Bambuddy 无权写入 {{path}}。请检查该目录的属主和权限。`,no_space:`{{path}} 所在的文件系统已满。`,not_a_directory:`{{path}} 存在,但不是目录。`,missing:`{{path}} 不存在且无法创建。`,error:`Bambuddy 无法写入 {{path}}。`,ephemeralTitle:`这些备份在容器重建后会丢失`,container_ephemeral:`{{path}} 位于 Bambuddy 容器内部,而不是宿主机上。写入其中的备份会在容器重建时丢失。请从宿主机挂载该目录:`},categories:{settings:`设置`,notification_providers:`通知提供者`,notification_templates:`通知模板`,smart_plugs:`智能插座`,printers:`打印机`,filaments:`耗材`,maintenance_types:`维护类型`,archives:`档案`,projects:`项目`,pending_uploads:`待上传`,external_links:`外部链接`,api_keys:`API 密钥`}},tags:{title:`标签`,addTag:`添加标签`,editTag:`编辑标签`,deleteTag:`删除标签`,tagName:`标签名称`,tagColor:`标签颜色`,noTags:`无标签`,deleteConfirm:`确定要删除此标签吗?`,manageTags:`管理标签`},uploadModal:{title:`上传 3MF 文件`,dragDrop:`将 .3mf 文件拖放到此处`,or:`或`,browseFiles:`浏览文件`,extractionInfo:`将从 3MF 文件元数据中自动提取打印机型号。`,uploaded:`已上传`,failed:`失败`,uploading:`上传中...`,upload:`上传`,uploadFailed:`上传失败`},editArchive:{title:`编辑归档`,name:`名称`,namePlaceholder:`打印名称`,printer:`打印机`,noPrinter:`无打印机`,project:`项目`,noProject:`无项目`,itemsPrinted:`打印数量`,itemsPrintedHelp:`此打印任务中生产的物品数量`,notes:`备注`,notesPlaceholder:`添加关于此打印的备注...`,externalLink:`外部链接`,externalLinkPlaceholder:`https://printables.com/model/...`,externalLinkHelp:`链接到 Printables、Thingiverse 或其他来源`,tags:`标签`,tagsPlaceholder:`添加标签...`,addMoreTags:`添加更多标签...`,matchingTags:`匹配"{{query}}"`,existingTags:`现有标签`,clickToAdd:`(点击添加)`,status:`状态`,failureReason:`失败原因`,selectReason:`选择原因...`,photos:`打印成品照片`,photosHelp:`点击 + 添加打印成品照片`,printResult:`打印成品`,saving:`保存中...`,failureReasons:{adhesionFailure:`附着力失败`,spaghettiDetached:`拉丝 / 脱落`,layerShift:`层偏移`,cloggedNozzle:`喷嘴堵塞`,filamentRunout:`耗材用完`,warping:`翘曲`,stringing:`拉丝`,underExtrusion:`挤出不足`,powerFailure:`断电`,userCancelled:`用户取消`,other:`其他`},statuses:{completed:`已完成`,failed:`失败`,aborted:`已取消`,printing:`打印中`}},kProfiles:{title:`K 值配置`,noPrintersConfigured:`未配置打印机`,addPrinterInSettings:`在设置中添加打印机以管理 K 值配置`,noActivePrinters:`无活跃打印机`,enablePrinterConnection:`启用打印机连接以查看其 K 值配置`,loadingProfiles:`加载 K 值配置中...`,printerOffline:`打印机离线`,printerOfflineDesc:`所选打印机未连接。开启电源以查看 K 值配置。`,noMatchingProfiles:`无匹配的配置`,noMatchingProfilesDesc:`没有配置匹配您的搜索条件`,noKProfiles:`无 K 值配置`,noKProfilesDesc:`未找到 {{diameter}}mm 喷嘴的压力推进配置`,createFirstProfile:`创建第一个配置`,printer:`打印机`,nozzle:`喷嘴`,refresh:`刷新`,addProfile:`添加配置`,export:`导出`,import:`导入`,select:`选择`,selectAll:`全选`,delete:`删除`,searchPlaceholder:`按名称或耗材搜索...`,allExtruders:`所有挤出机`,leftOnly:`仅左侧`,rightOnly:`仅右侧`,allFlow:`所有流量`,hfOnly:`仅高流量`,sOnly:`仅标准`,sortName:`排序:名称`,sortKValue:`排序:K 值`,sortFilament:`排序:耗材`,leftExtruder:`左挤出机`,rightExtruder:`右挤出机`,modal:{addTitle:`添加 K 值配置`,editTitle:`编辑 K 值配置`,profileName:`配置名称`,profileNamePlaceholder:`我的 PLA 配置`,kValue:`K 值`,kValuePlaceholder:`0.020`,kValueHelp:`典型范围:PLA 0.01 - 0.06,PETG 0.02 - 0.10`,filament:`耗材`,selectFilament:`选择耗材...`,noFilamentsHelp:`未找到耗材。请先在 Bambu Studio 中创建 K 值配置。`,flowType:`流量类型`,highFlow:`高流量`,standard:`标准`,nozzleSize:`喷嘴尺寸`,extruder:`挤出机`,extruders:`挤出机`,left:`左`,right:`右`,notes:`备注(本地存储)`,notesPlaceholder:`添加关于此配置的备注...`,notesHelp:`备注保存在 Bambuddy 中,不在打印机上`,syncing:`与打印机同步中...`,savingExtruder:`保存到挤出机 {{current}}/{{total}}...`,pleaseWait:`请稍候`},deleteConfirm:{title:`删除配置`,cannotUndo:`此操作无法撤销`,message:`确定要从打印机删除"{{name}}"吗?`},bulkDelete:{title:`删除配置`,cannotUndo:`此操作无法撤销`,message:`确定要从打印机删除 {{count}} 个选中的配置吗?`},toast:{profileSaved:`K 值配置已保存`,profilesSaved:`K 值配置已保存到 {{count}} 个挤出机`,selectAtLeastOneExtruder:`请至少选择一个挤出机`,profileDeleted:`K 值配置已删除`,profilesDeleted:`已删除 {{count}} 个配置`,exportedProfiles:`已导出 {{count}} 个配置`,importedProfiles:`已导入 {{count}} / {{total}} 个配置`,noProfilesToExport:`无可导出的配置`,invalidFileFormat:`无效的文件格式`,failedToParseImport:`解析导入文件失败`,failedToSaveBatch:`批量保存 K 值配置失败`,noteSaved:`备注已保存`,failedToSaveNote:`保存备注失败`},permission:{noRead:`您没有刷新配置的权限`,noCreate:`您没有添加配置的权限`,noUpdate:`您没有更新 K 值配置的权限`,noDelete:`您没有删除 K 值配置的权限`,noExport:`您没有导出配置的权限`,noImport:`您没有导入配置的权限`}},virtualPrinter:{title:`虚拟打印机`,running:`运行中`,stopped:`已停止`,description:{default:`启用虚拟打印机,使其在 Bambu Studio 和 OrcaSlicer 中可见。发送到此打印机的文件将直接归档而不打印。`,proxy:`启用代理,将切片软件流量中继到真实打印机,允许在任何网络上远程打印。`},enable:{title:`启用虚拟打印机`,visibleInSlicer:`在切片软件发现中显示为"Bambuddy"`,proxyingTo:`代理到 {{name}}`,notActive:`未激活`},model:{title:`打印机型号`,description:`选择要模拟的打印机型号。`,restartWarning:`更改型号将重启虚拟打印机`},accessCode:{title:`访问码`,isSet:`访问码已设置`,notSet:`未设置访问码 - 需要设置才能启用`,placeholder:`输入 8 位字符代码`,placeholderChange:`输入新代码以更改`,hint:`必须恰好 8 个字符。切片软件使用此代码进行认证。`,charCount:`({{count}}/8)`,inheritedFromTarget:`继承自目标打印机`,derivedFromTargetHint:`使用目标打印机的访问码。桥接会将切片软件的认证转发到实际打印机,因此两个访问码必须匹配 — 如需更改,请在打印机设置中编辑访问码。`,reveal:`显示访问码`,hide:`隐藏访问码`},targetPrinter:{title:`目标打印机`,configured:`代理目标已配置`,notConfigured:`未选择目标打印机 - 代理模式需要设置`,placeholder:`选择打印机...`,hint:`选择要将切片软件流量代理到的打印机。打印机必须处于局域网模式。`,noPrinters:`未配置打印机。请先添加打印机以使用代理模式。`},remoteInterface:{title:`网络接口覆盖`,configured:`接口覆盖已激活`,optional:`可选 - 当自动检测的 IP 不正确时使用(例如多网卡、Docker、VPN)`,placeholder:`自动检测(默认)...`,hint:`覆盖通过 SSDP 广播并在 TLS 证书中使用的 IP 地址。在 Bambuddy 有多个网络接口时很有用。`},mode:{title:`模式`,archive:`归档`,archiveDesc:`立即归档文件`,review:`审核`,reviewDesc:`归档前审核`,queue:`队列`,queueDesc:`归档并添加到队列`,proxy:`代理`,proxyDesc:`中继到真实打印机`},autoDispatch:{title:`自动派发`,description:`添加到队列时自动开始打印。关闭后,打印任务等待手动派发。`},queueForceColorMatch:{title:`强制颜色匹配`,description:`拒绝派发到没有完全相同耗材类型和颜色的打印机。默认关闭 — 不启用时,队列仅按型号匹配,可能选到颜色错误的打印机。`},gcodeInjection:{title:`G-code 注入`,description:`将“设置”中按型号配置的 G-code 片段应用到此 VP 的作业。默认关闭。`},tailscaleDisabled:{title:`Tailscale 集成`,description:`启用以将此 VP 标记为通过 Tailscale 公开。显示主机的 Tailscale 地址,以便您知道要粘贴到切片器中的 IP。CA 导入步骤保持不变 — 此开关对证书无影响。`},setupRequired:{title:`需要设置`,description:`虚拟打印机功能需要额外的系统配置才能工作。包括端口转发、防火墙规则和平台特定设置。`,readGuide:`启用前请阅读设置指南`},archiveNameSource:{title:`存档名称来源`,description:`选择通过虚拟打印机接收文件时新存档的命名方式。"元数据"使用 3MF 中嵌入的切片标题(默认)。"文件名"使用 Bambu Studio 通过 FTP 发送的文件名。注意:当 3MF 包含标题字段时,Bambu Studio 会用该字段覆盖您在"发送到打印机"对话框中输入的名称,因此两种模式通常会产生相同的字符串。`,metadata:`元数据`,filename:`文件名`},caCert:{title:`切片软件证书`,description:`虚拟打印机使用由 Bambuddy CA 签发的 TLS 证书。将此 CA 证书导入切片软件的信任库一次,切片软件即可接受连接 — 无需再通过命令行获取。`,copy:`复制`,copied:`已复制`,download:`下载`,fingerprint:`SHA-256`},howItWorks:{title:`工作原理`,step1:`在同一局域网中,虚拟打印机会通过发现机制自动出现在您的切片软件(Bambu Studio / OrcaSlicer)中。从其他网络,通过 IP 地址和访问码手动添加。`,step2:`在归档、审核和队列模式下,使用切片软件中的"发送"按钮将 3MF 文件上传到 Bambuddy。切片软件会显示"打印成功"— 文件已存储,未打印。`,step3:`在代理模式下,虚拟打印机将所有流量中继到真实打印机 — 打印会立即开始,就像直接连接一样。`},status:{title:`状态详情`,printerName:`打印机名称`,model:`型号`,serialNumber:`序列号`,mode:`模式`,pendingFiles:`待处理文件`,targetPrinter:`目标打印机`,ftpPort:`FTP 端口`,mqttPort:`MQTT 端口`,ftpConnections:`FTP 连接`,mqttConnections:`MQTT 连接`},toast:{updated:`虚拟打印机设置已更新`,failedToUpdate:`更新设置失败`,copyFailed:`复制失败 — 请手动选中文本`,accessCodeRequired:`请先设置访问码`,targetPrinterRequired:`请先选择目标打印机`,bindIpRequired:`请先设置绑定 IP`,accessCodeEmpty:`访问码不能为空`,accessCodeLength:`访问码必须恰好 8 个字符`,targetCodeChangedRebind:`访问码已同步到新的目标打印机。请在切片软件中重新添加此设备以使用新的访问码。`,created:`虚拟打印机已创建`,failedToCreate:`创建虚拟打印机失败`,deleted:`虚拟打印机已删除`,failedToDelete:`删除虚拟打印机失败`},list:{title:`虚拟打印机`,add:`添加`,addFirst:`添加虚拟打印机`,empty:`未配置虚拟打印机。添加一个以开始使用。`},bindIp:{title:`绑定接口`,placeholder:`选择接口...`,hint:`此虚拟打印机绑定的网络接口。每台打印机必须唯一。`},proxy:{accessCodeHint:`在代理模式下,在切片软件中使用目标打印机的访问码。连接会透明转发到真实打印机。`},addDialog:{title:`添加虚拟打印机`,name:`名称`,hint:`创建后可以配置访问码、目标打印机和其他设置。`,create:`创建`},deleteConfirm:{title:`删除虚拟打印机`,message:`确定要删除"{{name}}"吗?这将停止此打印机的所有服务。`}},modelViewer:{openInSlicer:`在切片软件中打开`,tabs:{model:`3D 模型`,gcode:`G-code 预览`},notAvailable:`不可用`,notSliced:`未切片`,plates:`板`,allPlates:`所有板`,plateNumber:`板 {{number}}`,plateCount:`{{count}} 个板`,plateCount_other:`{{count}} 个板`,objectCount:`{{count}} 个对象`,objectCount_other:`{{count}} 个对象`,filamentCount:`{{count}} 种耗材`,filamentCount_other:`{{count}} 种耗材`,eta:`预计 {{minutes}} 分钟`,noPreview:`此文件无可用预览`,pagination:{pageOf:`第 {{current}} / {{total}} 页`,prev:`上一页`,next:`下一页`},errors:{failedToLoad:`加载文件失败`,noMeshes:`3MF 文件中未找到网格`,unsupportedFormat:`不支持的文件格式`}},maintenanceDescriptions:{lubricateCarbonRods:`在碳纤维杆上涂抹润滑剂以确保顺畅运动`,lubricateRails:`在线性导轨上涂抹润滑剂以确保顺畅运动`,cleanNozzle:`清洁热端和喷嘴以防止堵塞`,checkBelts:`检查皮带张力以确保打印精度`,cleanBuildPlate:`清洁构建板以获得更好的附着力`,checkExtruder:`检查挤出机齿轮磨损情况`,checkCooling:`确保冷却风扇正常工作`,generalInspection:`打印机综合检查`,cleanCarbonRods:`清洁碳纤维杆以减少摩擦`,lubricateSteelRods:`在钢杆上涂抹润滑剂以确保顺畅运动`,cleanSteelRods:`清洁钢杆以减少摩擦`,cleanLinearRails:`擦拭线性导轨以清除灰尘和碎屑`,checkPtfeTube:`检查 PTFE 管的磨损或损坏`,replaceHepaFilter:`更换 HEPA 过滤器以保证空气质量`,replaceCarbonFilter:`更换活性炭过滤器`,lubricateLeftNozzleRail:`润滑左喷嘴导轨(H2 系列)`},smartPlugs:{offline:`离线`,admin:`管理`,openPlugAdminPage:`打开插座管理页面`,deleteSmartPlug:`删除智能插座`,turnOnSmartPlug:`开启智能插座`,turnOffSmartPlug:`关闭智能插座`,turnOn:`开启`,turnOff:`关闭`,addSmartPlug:{scanningNetwork:`扫描网络中...`,chooseEntity:`选择实体...`,connectionFailed:`连接失败`,searchEntities:`搜索实体...`,searchPowerSensors:`搜索功率传感器...`,searchEnergySensors:`搜索能量传感器...`,placeholders:{plugName:`客厅插座`,mqttStateOnValue:`ON、true、1`,mqttSameAsPower:`与功率主题相同,或不同`}},linkedTo:`关联到:`,monitorOnly:`仅监控`,alerts:`警报`,scheduleOn:`开启 {{time}}`,scheduleOff:`关闭 {{time}}`,on:`开启`,off:`关闭`,power:`功率`,kwhToday:`今日kWh`,settings:`设置`,automationSettings:`自动化设置`,showInSwitchbar:`在开关栏显示`,quickAccessSidebar:`从侧边栏快速访问`,enabled:`已启用`,enableAutomation:`为此插座启用自动化`,autoOn:`自动开启`,autoOnDescription:`打印开始时开启`,autoOff:`自动关闭`,autoOffDescription:`打印完成时关闭(一次性)`,autoOffPersistent:`保持启用`,autoOffPersistentDescription:`在打印之间保持启用而非一次性`,controlsPrinterPower:`为打印机供电`,controlsPrinterPowerDescription:`如果此插座仅为配件(滤芯风扇、灯光)供电,请关闭此选项;否则关闭插座会将打印机标记为离线。`,autoOffAfterDrying:`干燥完成后自动关闭`,autoOffAfterDryingDescription:`AMS 干燥完成后关闭`,delayAfterDryingMinutes:`干燥后延迟(分钟)`,turnOffDelayMode:`关闭延迟模式`,time:`时间`,temp:`温度`,delayMinutes:`延迟(分钟)`,tempThreshold:`温度阈值(°C)`,tempThresholdDescription:`当喷嘴冷却到此温度以下时关闭`,edit:`编辑`,deleteConfirm:`确定要删除"{{name}}"吗?此操作无法撤销。`,turnOnConfirm:`确定要开启"{{name}}"吗?`,turnOffConfirm:`确定要关闭"{{name}}"吗?这将切断连接设备的电源。`,failedToTurn:`无法{{action}}"{{name}}"`,unknown:`未知`,addTitle:`添加智能插座`,editTitle:`编辑智能插座`,stopScanning:`停止扫描`,discoverTasmota:`发现Tasmota设备`,foundDevices:`找到{{count}}个设备 - 点击选择:`,noDevicesFound:`未在您的网络中找到Tasmota设备`,haNotConfigured:`Home Assistant未配置。请在以下位置设置`,haSettingsPath:`设置 → 网络 → Home Assistant`,selectEntity:`选择实体 *`,ipAddress:`IP地址 *`,nameLabel:`名称 *`,username:`用户名`,password:`密码`,authHint:`如果您的Tasmota设备不需要认证,请留空`,linkToPrinter:`关联打印机`,noPrinter:`无打印机(仅手动控制)`,linkingDescription:`关联后可在打印开始/完成时自动开关`,powerAlerts:`功率警报`,alertAbove:`高于时警报(W)`,alertBelow:`低于时警报(W)`,alertDescription:`当电力消耗超过这些阈值时收到通知。留空以禁用该方向。`,dailySchedule:`每日计划`,turnOnAt:`开启时间`,turnOffAt:`关闭时间`,scheduleDescription:`每天在这些时间自动开关插座。留空以跳过该操作。`,showOnPrinterCard:`在打印机卡片上显示`,displayOnPrinterCard:`在打印机卡片上显示按钮`,connectedResult:`已连接!`,deviceLabel:`设备:{{name}} - `,stateLabel:`状态:{{state}}`,test:`测试`,delete:`删除`,save:`保存`,add:`添加`,cancel:`取消`,failedToStartScan:`无法开始扫描`,nameRequired:`名称为必填项`,entityRequired:`Home Assistant插座需要实体`,mqttTopicRequired:`必须为功率、能源或状态监控配置至少一个MQTT主题`,loadingEntities:`正在加载实体...`,loading:`加载中...`,failedToLoadEntities:`加载实体失败:{{error}}`,noEntitiesMatching:`未找到匹配"{{search}}"的实体`,noEntitiesAvailable:`无可用实体`,searchingEntities:`搜索所有实体(找到{{count}}个)`,showingEntities:`显示 switch、light、input_boolean({{count}}个可用)`,energyMonitoringOptional:`能源监控(可选)`,energyMonitoringHint:`搜索并选择提供功率/能源数据的传感器。`,powerSensorW:`功率传感器(W)`,energyTodayKwh:`今日能源(kWh)`,totalEnergyKwh:`总能源(kWh)`,noMatchingSensors:`无匹配的传感器`,none:`无`,mqttNotConfigured:`MQTT代理未配置。请在以下位置设置代理地址`,mqttSettingsPath:`设置 → 网络 → MQTT发布`,mqttNotConfiguredSuffix:`(您不需要启用发布,只需填写代理详细信息)。`,mqttMonitorOnlyDescription:`MQTT插座通过MQTT订阅接收功率/能源数据。开关控制不可用 - 请使用您的MQTT代理或家庭自动化系统。`,powerMonitoring:`功率监控`,energyMonitoring:`能源监控`,stateMonitoring:`状态监控`,optional:`可选`,topic:`主题`,jsonPath:`JSON路径`,multiplier:`乘数`,onValue:`ON值`,mqttPowerHint:`JSON路径从JSON负载中提取值(例如"power_l1")。如果主题发布原始数值,请留空。
+Valor ON: a string exata que significa "ON". Deixe vazio para detecção automática (ON, true, 1).`,restControl:`Controle`,restOnUrl:`URL para ligar`,restOffUrl:`URL para desligar`,restOnBody:`Corpo da requisição ON`,restOffBody:`Corpo da requisição OFF`,restMethod:`Método HTTP`,restHeaders:`Custom Headers (JSON)`,restStatusUrl:`URL de status`,restStatusPath:`Caminho JSON de estado`,restStatusOnValue:`Valor ON`,restPowerUrl:`URL de potência`,restPowerPath:`Caminho JSON de energia`,restPowerMultiplier:`Multiplicador de potência`,restEnergyUrl:`URL de energia`,restEnergyPath:`Caminho JSON de energia (hoje)`,restEnergyTotalPath:`Caminho JSON de energia (contador total)`,restEnergyTotalMultiplier:`Multiplicador do contador total`,restEnergyTotalPathHint:`ex.: aenergy.total`,restEnergyTotalHint:`Muitas tomadas — todos os Shelly entre elas — informam apenas um contador acumulado que nunca é zerado. Ele vai aqui, não no campo acima: lido como o consumo de hoje, ele nunca voltaria a zero à meia-noite, e Ontem e Total ficariam vazios. O Bambuddy calcula Hoje e Ontem a partir dele, o que exige um ou dois dias de leituras. Um Shelly informa em watt-hora, então use um multiplicador de 0.001.`,restEnergyMultiplier:`Multiplicador de energia`,restUrlRequired:`Ao menos uma URL (ON ou OFF) é necessária para tomadas REST`,restHeadersHint:`ex. {"Authorization": "Bearer your-token"}`,restBodyHint:`ex. ON, {"state": "on"}`,restStatusHint:`URL para consultar o estado atual`,restPathHint:`ex. state ou data.power.status`,restPowerUrlHint:`URL separada para dados de potência (usa a URL de status se vazio)`,restEnergyUrlHint:`URL separada para dados de energia (usa a URL de status se vazio)`,restEnergyHint:`Cada valor pode usar sua própria URL ou recorrer à URL de status. Use multiplicadores para conversão de unidades (ex: 0.001 para converter Wh em kWh).`,testConnection:`Testar conexão`,connectionSuccess:`Conexão bem-sucedida`,noSwitchesInSwitchbar:`Nenhum interruptor na barra`,enableSwitchbarHint:`Ative "Mostrar na barra de interruptores" em Configurações > Smart Plugs`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`E-mail`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`Notificações por e-mail SMTP`,telegram:`Notificações via bot do Telegram`,discord:`Enviar para canal do Discord via webhook`,ntfy:`Notificações push gratuitas e auto-hospedáveis`,pushover:`Notificações push simples e confiáveis`,callmebot:`Notificações gratuitas via WhatsApp pelo CallMeBot`,webhook:`POST HTTP genérico para qualquer URL`,homeassistant:`Notificações persistentes no painel do Home Assistant`,bark:`Notificações push do iOS via Bark (auto-hospedável)`},lastSuccess:`Último: {{date}}`,error:`Erro`,printer:`Impressora:`,allPrinters:`Todas as impressoras`,sendTestNotification:`Enviar Notificação de Teste`,eventSettings:`Configurações de Eventos`,enabled:`Ativado`,sendFromProvider:`Enviar notificações deste provedor`,printEvents:`Eventos de Impressão`,printerStatus:`Status da Impressora`,amsAlarms:`Alarmes do AMS`,amsHtAlarms:`Alarmes do AMS-HT`,printQueue:`Fila de Impressão`,start:`Início`,plateCheck:`Verificação da Mesa`,complete:`Concluído`,failed:`Falhou`,stopped:`Parado`,progress:`Progresso`,offline:`Offline`,lowFilament:`Filamento Baixo`,maintenance:`Manutenção`,amsHumidity:`Umidade do AMS`,amsTemp:`Temp. do AMS`,amsHtHumidity:`Umidade do AMS-HT`,amsHtTemp:`Temp. do AMS-HT`,bedCooled:`Mesa Resfriada`,firstLayer:`Primeira camada`,quiet:`Silencioso`,digest:`Resumo {{time}}`,printStarted:`Impressão Iniciada`,plateNotEmpty:`Mesa Não Vazia`,plateNotEmptyDescription:`Objetos detectados antes da impressão`,plateClearRequired:`Confirmar mesa livre`,plateClearRequiredDescription:`Impressão concluída, a fila aguarda confirmação`,plateClear:`Mesa livre`,printCompleted:`Impressão Concluída`,bedCooledLabel:`Mesa Resfriada`,bedCooledDescription:`Mesa resfriou abaixo do limite após a impressão`,firstLayerCompleteLabel:`Primeira camada concluída`,firstLayerCompleteDescription:`Notificar com foto quando a primeira camada terminar`,missingSpoolAssignmentLabel:`Atribuição de bobina ausente`,missingSpoolAssignmentDescription:`Notificar quando a impressão iniciar e bandejas necessárias não tiverem bobina atribuída`,printFailed:`Impressão Falhou`,printStopped:`Impressão Parada`,progressMilestones:`Marcos de Progresso`,progressMilestonesDescription:`Notificar em 25%, 50%, 75%`,printerOffline:`Impressora Offline`,printerError:`Erro da Impressora`,aiFailureDetection:`Detecção de Falhas por IA`,aiFailureDetectionDescription:`Notificar quando a IA do Obico detectar uma possível falha de impressão`,lowFilamentLabel:`Filamento Baixo`,maintenanceDue:`Manutenção Necessária`,maintenanceDueDescription:`Notificar quando manutenção for necessária`,amsHumidityHigh:`Umidade Alta do AMS`,amsHumidityHighDescription:`Umidade do AMS regular excede o limite`,amsTemperatureHigh:`Temperatura Alta do AMS`,amsTemperatureHighDescription:`Temperatura do AMS regular excede o limite`,amsHtHumidityHigh:`Umidade Alta do AMS-HT`,amsHtHumidityHighDescription:`Umidade do AMS-HT excede o limite`,amsHtTemperatureHigh:`Temperatura Alta do AMS-HT`,amsHtTemperatureHighDescription:`Temperatura do AMS-HT excede o limite`,inventoryAlerts:`Alertas de Estoque`,stockReorderAlert:`Alerta de Reposição`,stockReorderAlertDescription:`O SKU atingiu seu ponto de reposição`,stockBreakAlert:`Alerta de Ruptura de Estoque`,stockBreakAlertDescription:`O estoque se esgotará antes da chegada do reabastecimento`,jobAdded:`Trabalho Adicionado`,jobAddedDescription:`Trabalho adicionado à fila`,jobAssigned:`Trabalho Atribuído`,jobAssignedDescription:`Trabalho baseado em modelo atribuído à impressora`,jobStarted:`Trabalho Iniciado`,jobStartedDescription:`Trabalho da fila começou a imprimir`,jobWaiting:`Trabalho Aguardando`,jobWaitingDescription:`Trabalho aguardando filamento ou impressora`,jobSkipped:`Trabalho Pulado`,jobSkippedDescription:`Trabalho pulado (anterior falhou)`,jobFailed:`Trabalho Falhou`,jobFailedDescription:`Trabalho falhou ao iniciar`,queueComplete:`Fila Concluída`,queueCompleteDescription:`Todos os trabalhos da fila finalizados`,quietHours:`Horário de Silêncio`,noNotificationsDuring:`Sem notificações durante essas horas`,editProviderToChangeQuietHours:`Edite o provedor para alterar o horário de silêncio`,dailyDigest:`Resumo Diário`,batchNotifications:`Agrupar notificações em um único resumo diário`,sendAt:`Enviar às {{time}}`,editProviderToChangeDigestTime:`Edite o provedor para alterar o horário do resumo`,edit:`Editar`,deleteProvider:`Excluir Provedor de Notificação`,deleteConfirm:`Tem certeza que deseja excluir "{{name}}"? Isso não pode ser desfeito.`,delete:`Excluir`,addTitle:`Adicionar Provedor de Notificação`,editTitle:`Editar Provedor de Notificação`,nameLabel:`Nome *`,namePlaceholder:`Minhas Notificações`,providerTypeLabel:`Tipo de Provedor *`,configuration:`Configuração`,testConfiguration:`Testar Configuração`,printerFilter:`Filtro de Impressora`,onlyFromPrinter:`Enviar notificações apenas para eventos desta impressora`,quietHoursDnd:`Horário de Silêncio (Não Perturbe)`,quietStart:`Início`,quietEnd:`Fim`,dailyDigestLabel:`Resumo Diário`,sendDigestAt:`Enviar resumo às`,digestCollected:`Os eventos serão coletados e enviados como um único resumo neste horário`,notificationEvents:`Eventos de Notificação`,progressPercent:`(25%, 50%, 75%)`,bedCooledAfterPrint:`(após conclusão da impressão)`,eventPriority:{sectionTitle:`Prioridade ntfy`,helpNtfy:`Escolha uma prioridade para cada evento habilitado. O ntfy usa isso para escalar alertas (som, visibilidade, comportamento push). Níveis não definidos aqui usam o padrão do servidor ntfy.`,min:`Mín`,low:`Baixa`,default:`Padrão`,high:`Alta`,urgent:`Urgente`},cancel:`Cancelar`,save:`Salvar`,add:`Adicionar`,nameRequired:`Nome é obrigatório`,fieldRequired:`{{field}} é obrigatório`,haDataInvalid:`O campo Data deve ser um objeto JSON válido, por ex. {"priority": "high", "ttl": 0}`,phoneNumber:`Número de Telefone`,apiKey:`Chave da API`,serverUrl:`URL do Servidor`,topic:`Tópico`,authToken:`Token de Autenticação`,userKey:`Chave do Usuário`,appToken:`Token do Aplicativo`,priority:`Prioridade`,pushoverRetry:`Repetição de emergência (s)`,pushoverExpire:`Expiração de emergência (s)`,botToken:`Token do Bot`,chatId:`ID do Chat`,telegramThreadId:`ID do tópico do fórum`,telegramThreadIdHelp:`Opcional. Envia para um único tópico de um grupo de fórum: o último número no link do tópico (t.me/c/.../25). Deixe vazio para o tópico Geral.`,telegramThreadIdInvalid:`O ID do tópico do fórum deve ser um número.`,smtpServer:`Servidor SMTP`,smtpPort:`Porta SMTP`,security:`Segurança`,authentication:`Autenticação`,username:`Usuário`,password:`Senha`,fromEmail:`E-mail de Origem`,toEmail:`E-mail de Destino`,webhookUrl:`URL do Webhook`,payloadFormat:`Formato do Payload`,authorization:`Autorização`,titleFieldName:`Nome do Campo de Título`,messageFieldName:`Nome do Campo de Mensagem`,editTemplate:`Editar Modelo: {{name}}`,titleLabel:`Título`,bodyLabel:`Corpo`,titlePlaceholder:`Título da notificação...`,bodyPlaceholder:`Corpo da notificação...`,availableVariables:`Variáveis Disponíveis`,clickToInsert:`Clique para inserir na posição do cursor no corpo`,livePreview:`Pré-visualização ao Vivo`,hide:`Ocultar`,show:`Mostrar`,loadingPreview:`Carregando pré-visualização...`,enterTemplateContent:`Insira o conteúdo do modelo para ver a pré-visualização`,titlePreview:`Título:`,bodyPreview:`Corpo:`,resetToDefault:`Restaurar Padrão`,titleRequired:`Título é obrigatório`,bodyRequired:`Corpo é obrigatório`,notificationLog:`Registro de Notificações`,showFailedOnly:`Apenas falhas`,last24Hours:`Últimas 24 horas`,last7Days:`Últimos 7 dias`,last30Days:`Últimos 30 dias`,last90Days:`Últimos 90 dias`,justNow:`Agora mesmo`,noFailedNotifications:`Nenhuma notificação com falha`,noNotificationsLogged:`Nenhuma notificação registrada`,unknownProvider:`Provedor Desconhecido`,logTitle:`Título`,logMessage:`Mensagem`,logError:`Erro`,logProvider:`Provedor: {{type}}`,logTime:`Hora: {{time}}`,refresh:`Atualizar`,clearOld:`Limpar Antigos`,statsSummary:`Últimos {{days}} dias:`,statsNotifications:`notificações`,statsSent:`{{count}} enviadas`,statsFailed:`{{count}} com falha`,eventTypes:{print_start:`Impressão Iniciada`,print_complete:`Impressão Concluída`,print_failed:`Impressão Falhou`,print_stopped:`Impressão Parada`,print_progress:`Progresso`,printer_offline:`Impressora Offline`,printer_error:`Erro da Impressora`,filament_low:`Filamento Baixo`,maintenance_due:`Manutenção Necessária`,test:`Teste`},userEmail:{title:`Notificações`,emailNotifications:`Notificações por E-mail`,emailNotificationsDesc:`Receba notificações por e-mail para seus próprios trabalhos de impressão. Os e-mails são enviados usando as configurações SMTP definidas na Autenticação Avançada.`,sendingTo:`As notificações serão enviadas para`,noEmailWarning:`Sua conta não tem um endereço de e-mail. Entre em contato com um administrador para adicionar um.`,printJobNotifications:`Notificações de Trabalhos de Impressão`,printJobNotificationsDesc:`Escolha quais eventos acionam notificações por e-mail para os trabalhos de impressão que você envia.`,printJobStarts:`Início do Trabalho de Impressão`,printJobStartsDesc:`Ser notificado quando seu trabalho de impressão começar.`,printJobFinishes:`Conclusão do Trabalho de Impressão`,printJobFinishesDesc:`Ser notificado quando seu trabalho de impressão concluir com sucesso.`,printErrors:`Erros de Impressão`,printErrorsDesc:`Ser notificado quando seu trabalho de impressão falhar ou encontrar um erro.`,printJobStops:`Trabalho de Impressão Parado`,printJobStopsDesc:`Ser notificado quando seu trabalho de impressão for cancelado ou parado.`,saveSuccess:`Preferências de notificação salvas.`,saveError:`Falha ao salvar preferências de notificação.`}},richTextEditor:{bold:`Negrito`,italic:`Itálico`,underline:`Sublinhado`,bulletList:`Lista com marcadores`,numberedList:`Lista numerada`,alignLeft:`Alinhar à esquerda`,alignCenter:`Centralizar`,alignRight:`Alinhar à direita`,addLink:`Adicionar link`,removeLink:`Remover link`},externalLinks:{title:`Links da barra lateral`,sidebarLayout:`Barra lateral`,sidebarLayoutDescription:`Mostre ou oculte páginas integradas, adicione links externos e arraste itens para reordenar a navegação lateral.`,systemPages:`Páginas do Bambuddy`,externalLinks:`Links externos`,visibleInSidebar:`Visível na barra lateral`,hiddenFromSidebar:`Oculto na barra lateral`,requiredInSidebar:`Obrigatório na barra lateral`,hidePage:`Ocultar página`,showPage:`Mostrar página`,settingsCannotBeHidden:`Configurações não pode ser ocultado`,noLinksConfigured:`Nenhum link externo configurado`,deleteLink:`Excluir link`,removeCustomIcon:`Remover ícone personalizado`,openInNewTab:`Abrir em nova aba`,placeholders:{linkName:`Meu Link`}},keyboardShortcuts:{title:`Atalhos de Teclado`,navigation:`Navegação`,archivesSection:`Arquivos`,kProfilesSection:`Perfis K`,generalSection:`Geral`,shortcuts:{goToPrinters:`Ir para Impressoras`,goToArchives:`Ir para Arquivos`,goToQueue:`Ir para Fila`,goToStats:`Ir para Estatísticas`,goToProfiles:`Ir para Perfis na Nuvem`,goToSettings:`Ir para Configurações`,focusSearch:`Focar na pesquisa`,openUploadModal:`Abrir modal de upload`,clearSelection:`Limpar seleção / desfocar input`,contextMenu:`Menu de contexto nos cartões`,refreshProfiles:`Atualizar perfis`,newProfile:`Novo perfil`,exitSelectionMode:`Sair do modo de seleção`,showHelp:`Mostrar esta ajuda`},footer:`Pressione Esc ou clique fora para fechar`},notificationLog:{title:`Registro de Notificações`,events:{printStarted:`Impressão Iniciada`,printComplete:`Impressão Concluída`,printFailed:`Impressão Falhou`,printStopped:`Impressão Interrompida`,progress:`Progresso`,printerOffline:`Impressora Offline`,printerError:`Erro na Impressora`,lowFilament:`Filamento Baixo`,maintenanceDue:`Manutenção Pendente`,test:`Teste`},timeAgo:{justNow:`Agora mesmo`,minutesAgo:`há {{minutes}} minutos`,hoursAgo:`há {{hours}} horas`}},restoreBackup:{title:`Restaurar Backup`,restoring:`Restaurando...`,restoreComplete:`Restauração Concluída`,restoreFailed:`Falha na Restauração`,importSettings:`Importar configurações de um arquivo de backup`,pleaseWait:`Aguarde enquanto seus dados estão sendo restaurados`,clickToSelect:`Clique para selecionar o arquivo de backup (.json ou .zip)`,howDuplicateHandling:`Como funciona o tratamento de duplicatas:`,categories:{printers:`Impressoras`,smartPlugs:`Tomadas Inteligentes`,notificationProviders:`Provedores de Notificação`,filaments:`Filamentos`,archives:`Arquivos`,pendingUploads:`Uploads Pendentes`,settingsTemplates:`Configurações e Modelos`},matchingInfo:{printers:`correspondem pelo número de série`,smartPlugs:`correspondem pelo endereço IP`,notificationProviders:`correspondem pelo nome`,filaments:`correspondem pelo nome + tipo + marca`,archives:`correspondem pelo hash do conteúdo`,pendingUploads:`correspondem pelo nome do arquivo`,settingsTemplates:`sempre sobrescrito`},replaceExisting:`Substituir dados existentes`,keepExisting:`Manter dados existentes`,replaceDescription:`Substituir itens que já existem com os dados do backup`,keepDescription:`Restaurar apenas itens que não existem`,caution:`Atenção:`,cautionText:`Sobrescrever substituirá suas configurações atuais pelos dados do backup. Os códigos de acesso da impressora nunca são sobrescritos por segurança.`,itemsRestored:`Itens Restaurados`,itemsSkipped:`Itens Ignorados`,restored:`Restaurado`,skipped:`Ignorado (já existe)`,filesLabel:`Arquivos (3MF, miniaturas, etc.)`,newApiKeysGenerated:`Novas Chaves API Geradas`,newApiKeysWarning:`Essas chaves são exibidas apenas uma vez. Copie-as agora!`,processingBackup:`Processando arquivo de backup...`,noDataFound:`Nenhum dado foi encontrado para restaurar no arquivo de backup.`,failedToRestore:`Falha ao restaurar o backup. Verifique o formato do arquivo.`},backupExport:{title:`Exportar Backup`,selectData:`Selecione os dados a incluir`,selectAll:`Selecionar Todos`,selectNone:`Selecionar Nenhum`,categoryDescriptions:{settings:`Idioma, tema, preferências de atualização`,notifications:`ntfy, Pushover, Discord, etc.`,templates:`Modelos de mensagens personalizadas`,smartPlugs:`Configurações de tomadas Tasmota`,externalLinks:`Links da barra lateral para serviços externos`,printers:`Informações da impressora (códigos de acesso excluídos)`,plateDetection:`Imagens de referência de placa vazia`,filaments:`Tipos e custos de filamento`,maintenance:`Cronogramas de manutenção personalizados`,archives:`Todos os dados de impressão + arquivos (3MF, miniaturas, fotos)`,projects:`Projetos, itens de BOM e anexos`,pendingUploads:`Uploads de impressora virtual aguardando revisão`,apiKeys:`Chaves API de webhook (novas chaves geradas na importação)`},requiresPrinters:`Requer que as impressoras sejam selecionadas`,zipFileWarning:`Um arquivo ZIP será criado.`,zipFileDescription:`Inclui todos os arquivos 3MF, miniaturas, timelapses e fotos. Isso pode levar algum tempo e resultar em um arquivo grande.`,includeAccessCodes:`Incluir Códigos de Acesso`,includeAccessCodesDescription:`Para transferir para outra máquina`,includeAccessCodesWarning:`Os códigos de acesso serão incluídos em texto simples. Mantenha este arquivo de backup seguro!`,categoriesSelected:`{{selectedCount}} categorias selecionadas`},pendingUploads:{placeholders:{notes:`Adicione notas sobre esta impressão...`},discardUpload:`Descartar Upload`,archiveAllUploads:`Arquivar Todos os Uploads`,discardAllUploads:`Descartar Todos os Uploads`,archive:`Arquivar`,timeAgo:{justNow:`Agora mesmo`,minutesAgo:`há {{minutes}} minutos`,hoursAgo:`há {{hours}} horas`,daysAgo:`há {{days}} dias`}},apiBrowser:{placeholders:{requestBody:`Corpo da requisição JSON...`,searchEndpoints:`Pesquisar endpoints...`}},configureAmsSlot:{title:`Configurar Slot AMS`,slotConfigured:`Slot Configurado!`,configuringSlot:`Configurando slot:`,slotLabel:`{{ams}} – Slot {{slot}}`,searchPresets:`Pesquisar predefinições...`,colorPlaceholder:`Nome da cor ou hex (ex.: marrom, FF8800)`,clearCustomColor:`Limpar cor personalizada`,noCloudPresets:`Nenhuma predefinição na nuvem. Faça login no Bambu Cloud para sincronizar.`,noPresetsAvailable:`Nenhuma predefinição disponível. Faça login no Bambu Cloud ou importe perfis locais.`,noMatchingPresets:`Nenhuma predefinição correspondente encontrada.`,custom:`Personalizado`,builtin:`Integrado`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`Configurações enviadas para a impressora`,filamentProfile:`Perfil de Filamento`,kProfileLabel:`Perfil K (Avanço de Pressão)`,filteringFor:`Filtrando por: {{material}}`,noKProfile:`Nenhum perfil K (usar padrão 0.020)`,noMatchingKProfiles:`Nenhum perfil K correspondente encontrado. O K padrão=0.020 será usado.`,otherKProfiles:`Outros perfis K nesta impressora`,selectFilamentFirst:`Selecione um perfil de filamento primeiro`,kFromCalibration:`K={{value}} da calibração da impressora`,customColorLabel:`Cor Personalizada (opcional)`,presetColors:`Cores de {{name}}:`,showLessColors:`Mostrar menos cores`,showMoreColors:`Mostrar mais cores`,clear:`Limpar`,hexLabel:`Hex – #{{hex}}`,resetting:`Redefinindo...`,resetSlot:`Redefinir Slot`,cancel:`Cancelar`,configuring:`Configurando...`,configureSlot:`Configurar Slot`},githubBackup:{title:`Backup do Git`,history:`Histórico`,downloadBackup:`Baixar Backup`,restoreBackup:`Restaurar Backup`,noBackupsYet:`Nenhum backup ainda`},emailSettings:{placeholders:{fromName:`Bambuddy`}},tagManagement:{searchTags:`Pesquisar tags...`,renameTag:`Renomear tag`,deleteTag:`Excluir tag`},notificationTemplates:{placeholders:{title:`Título da notificação...`,body:`Corpo da notificação...`}},batchTag:{placeholders:{newTag:`Digite uma nova tag...`}},photoGallery:{deletePhoto:`Excluir foto`},filamentHoverCard:{copySpoolUuid:`Copiar UUID do carretel`},kProfilesView:{hasNote:`Possui nota`,copyProfile:`Copiar perfil`},layout:{openMenu:`Abrir menu`,noPermissionSystemInfo:`Você não tem permissão para visualizar informações do sistema`},dashboard:{dragToReorder:`Arrastar para reordenar`,hideWidget:`Ocultar widget`},notificationProviderCard:{deleteNotificationProvider:`Excluir provedor de notificação`},fileManagerModal:{closeFileManager:`Fechar gerenciador de arquivos`,sortFiles:`Ordenar arquivos`,goToParentFolder:`Ir para a pasta pai`,threeView:`Visualização 3D`},embeddedCameraViewer:{refreshStream:`Atualizar stream`,close:`Fechar`,zoomOut:`Reduzir zoom`,resetZoom:`Redefinir zoom`,zoomIn:`Aumentar zoom`,dragToResize:`Arrastar para redimensionar`},timelapseViewer:{skipBack5s:`Voltar 5s`,skipForward5s:`Avançar 5s`},notificationProviders:{descriptions:{email:`Notificações por email SMTP`,telegram:`Notificações via bot do Telegram`,discord:`Enviar para canal do Discord via webhook`,ntfy:`Notificações push gratuitas e auto-hospedáveis`,pushover:`Notificações push simples e confiáveis`,callmebot:`Notificações gratuitas via WhatsApp pelo CallMeBot`,webhook:`POST HTTP genérico para qualquer URL`}},logViewer:{searchPlaceholder:`Pesquisar mensagem ou nome do logger...`,noLogEntries:`Nenhuma entrada de log encontrada`},switchbarPopover:{noSwitchesInSwitchbar:`Nenhum switch na barra de switches`},projectPageModal:{placeholders:{title:`Título`,designer:`Designer`,license:`Licença`,description:`Digite a descrição...`,profileTitle:`Título do perfil`,profileDescription:`Descrição do perfil...`}},spoolmanSettings:{},time:{unknown:`-`,waiting:`Aguardando`,justNow:`Agora mesmo`,now:`Agora`,minsAgo:`{{count}}min atrás`,inMins:`em {{count}}min`,hoursAgo:`{{count}}h atrás`,inHours:`em {{count}}h`,daysAgo:`{{count}}d atrás`,inDays:`em {{count}}d`},spoolbuddy:{nav:{dashboard:`Painel`,ams:`AMS`,inventory:`Inventário`,writeTag:`Escrever`,settings:`Configurações`},status:{nfcReady:`NFC pronto`,nfcOff:`NFC desligado`,offline:`Offline`,online:`Online`,noPrinters:`Sem impressoras`,deviceOffline:`Dispositivo offline`,waitingConnection:`Aguardando conexão do dispositivo...`,systemReady:`Sistema pronto`,status:`Status`},dashboard:{readyToScan:`Pronto para escanear`,idleMessage:`Coloque um carretel na balança para identificá-lo`,nfcHint:`A tag NFC será lida automaticamente`,device:`Dispositivo`,syncWeight:`Sincronizar peso`,weightSynced:`Sincronizado!`,unknownTag:`Tag desconhecida`,newTag:`Nova tag detectada`,onScale:`na balança`,linkSpool:`Vincular ao carretel`,linkTagTitle:`Vincular tag ao carretel`,linkTag:`Vincular tag`,selectSpool:`Selecione um carretel para vincular a esta tag:`,noUntagged:`Nenhum carretel sem tag encontrado`,tagDetected:`Tag detectada`,noTag:`Sem tag`,tagId:`Etiqueta`,grossWeight:`Peso bruto`,spoolSize:`Tamanho do carretel`,close:`Fechar`,currentSpool:`Carretel Atual`,plateReady:`Mesa pronta: {{name}}`,plateReadyLabel:`Mesas para liberar`,plateClearAction:`Liberar`,plateClearedToast:`Mesa marcada como limpa`,plateClearFailed:`Não foi possível marcar a mesa como limpa`},modal:{spoolDetected:`Carretel Detectado`,assignToAms:`Atribuir ao AMS`,syncWeight:`Sincronizar Peso`,weightSynced:`Sincronizado!`,syncing:`Sincronizando...`,newTagDetected:`Nova Tag Detectada`,addToInventory:`Adicionar ao Inventário`,assignToAmsTitle:`Atribuir ao AMS`,selectSlot:`Selecionar um slot`,assign:`Atribuir`,assigning:`Atribuindo...`,assignSuccess:`Atribuído!`,assignPendingInsert:`Atribuído. O slot será configurado quando você inserir o carretel.`,assignError:`Falha ao atribuir carretel. Tente novamente.`,noPrinterSelected:`Selecionar uma impressora...`,noAmsDetected:`Nenhum AMS detectado nesta impressora`,slot:`Slot`},weight:{noReading:`Sem leitura`,stable:`Estável`,measuring:`Medindo...`,tare:`Tarar`,calibrate:`Calibrar`},spool:{remaining:`Restante`,material:`Material`,brand:`Marca`,color:`Cor`,coreWeight:`Núcleo`,labelWeight:`Rótulo`,scaleWeight:`Balança`,netWeight:`Líquido`,lastUsed:`Último uso`},ams:{noData:`Nenhum AMS detectado`,connectAms:`Conecte um AMS para ver os slots`,noPrinter:`Nenhuma impressora selecionada`,selectPrinter:`Selecione uma impressora na barra superior`,printerDisconnected:`Impressora desconectada`,humidity:`Umidade`,level:`Nível`,active:`Ativo`,slot:`Slot`,empty:`Vazio`},inventory:{search:`Buscar carretéis...`,empty:`Nenhum carretel no inventário`,noResults:`Nenhum carretel correspondente`,spools:`carretéis`,addSpool:`Adicionar carretel`},settings:{tabDevice:`Dispositivo`,tabDisplay:`Tela`,tabScale:`Balança`,tabUpdates:`Atualizações`,nfcReader:`Leitor NFC`,type:`Tipo`,connection:`Conexão`,notConnected:`N/D`,deviceInfo:`Info do dispositivo`,hostname:`Host`,uptime:`Tempo de atividade`,brightness:`Brilho`,saved:`Salvo`,noBacklight:`Nenhuma retroiluminação DSI detectada. O controle de brilho requer uma tela DSI.`,screenBlank:`Tempo para desligar tela`,screenBlankDesc:`A tela desliga após inatividade. Toque para despertar.`,displayNote:`O brilho é aplicado como filtro de software.`,scaleCalibration:`Calibração da balança`,currentWeight:`Peso atual`,tareOffset:`Tara`,calFactor:`Fator`,knownWeight:`Peso conhecido`,calStep1:`Remova todos os itens da balança e pressione Definir zero.`,calStep2:`Coloque o peso conhecido na balança.`,setZero:`Definir zero`,calibrateNow:`Calibrar`,calibrated:`Calibrado`,tareSet:`Comando de tara enviado. Aguardando dispositivo...`,tareComplete:`Tara concluída!`,tareTimedOut:`Tempo esgotado para a tara — o daemon do SpoolBuddy está em execução?`,tareFailed:`Falha ao enviar comando de tara`,zeroSet:`Ponto zero definido. Coloque o peso conhecido na balança.`,calibrationDone:`Calibração concluída!`,calibrationFailed:`Falha na calibração`,lastCalibrated:`Última calibração`,stable:`Estável`,settling:`Estabilizando...`,firmware:`Firmware`,scale:`Balança`,noDevice:`Nenhum dispositivo SpoolBuddy encontrado`,daemonVersion:`Versão do daemon`,currentVersion:`Atual`,versionPending:`Aguardando daemon...`,checking:`Verificando...`,checkUpdates:`Verificar atualizações`,updateAvailable:`Atualização disponível`,updateInstructions:`Atualize via SSH: execute o script de instalação do SpoolBuddy.`,upToDate:`Atualizado`,includeBeta:`Incluir versões beta`,systemConfig:`Backend e autenticação`,backendUrl:`URL do backend Bambuddy`,apiToken:`Token de API`,apiTokenPlaceholder:`Insira o token de API`,saveConfig:`Salvar configuração`,systemQueued:`Configuração enfileirada.`,systemFieldsRequired:`URL do backend é obrigatória.`,nfcDiagnostic:`Diagnóstico NFC`,scaleDiagnostic:`Diagnóstico da balança`,readTagDiagnostic:`Diagnóstico de leitura de tag`,testNfc:`Testar leitor`,testScale:`Testar precisão`,testReadTag:`Ler tag`},writeTag:{tabExisting:`Bobina existente`,tabNew:`Nova bobina`,tabReplace:`Substituir tag`,searchPlaceholder:`Buscar por material, cor, marca...`,noUntaggedSpools:`Nenhuma bobina sem tag`,noTaggedSpools:`Nenhuma bobina com tag`,selectSpool:`Selecione uma bobina e coloque um NTAG no leitor`,placeTag:`Coloque um NTAG no leitor`,tagReady:`Tag detectado — pronto para gravar`,writeTag:`Gravar Tag`,replaceTag:`Substituir Tag`,writing:`Gravando tag...`,waiting:`Aguardando SpoolBuddy...`,writeSuccess:`Tag gravado com sucesso!`,writeFailed:`Falha na gravação`,queueFailed:`Falha ao enfileirar comando de gravação`,tryAgain:`Tentar novamente`,cancel:`Cancelar`,replaceWarning:`O tag antigo será desvinculado. O novo tag o substituirá.`,deviceOffline:`SpoolBuddy está offline`,material:`Material`,colorName:`Nome da cor`,color:`Cor`,brand:`Marca`,weight:`Peso (g)`,createSpool:`Criar bobina`,creating:`Criando...`,spoolCreated:`Bobina criada! Pronto para gravar.`,createFailed:`Falha ao criar bobina`,incompleteDataWarning:`Tag gravada com dados Spoolman incompletos`},quickMenu:{printerPower:`Energia da impressora`,systemControls:`Sistema`,restartDaemon:`Reiniciar daemon`,restartBrowser:`Reiniciar navegador`,reboot:`Reiniciar`,shutdown:`Desligar`,swipeToClose:`Deslize para baixo para fechar`,confirmTitle:`Confirmar`,confirmShutdown:`Tem certeza de que deseja desligar o SpoolBuddy? Você precisará de acesso físico para ligá-lo novamente.`,confirmReboot:`Tem certeza de que deseja reiniciar o SpoolBuddy?`,confirmRestartDaemon:`Reiniciar o daemon do SpoolBuddy? NFC e balança ficarão temporariamente indisponíveis.`,confirmRestartBrowser:`Reiniciar o navegador kiosk? A tela ficará brevemente preta.`,confirm:`Confirmar`,confirmPlugOn:`Ligar {{name}}?`,confirmPlugOff:`Desligar {{name}}?`,turnOn:`Ligar`,turnOff:`Desligar`}},diagnostic:{modalTitle:`Diagnóstico de conexão — {{name}}`,running:`Executando diagnóstico...`,runningElapsed:`Executando diagnóstico... ({{elapsed}}s)`,waitingForReportHint:`Aguardando a impressora publicar um relatório de status — pode levar até {{max}} segundos.`,runFailed:`Não foi possível executar o diagnóstico: {{error}}`,retry:`Executar novamente`,runButton:`Executar diagnóstico`,sectionTitle:`Diagnóstico de conexão`,sectionDescription:`Verifique por que uma impressora não conecta ou não imprime — acessibilidade das portas, modo desenvolvedor LAN, modo de rede Docker e credenciais.`,noPrinters:`Nenhuma impressora configurada.`,overall:{ok:`Nenhum problema encontrado — a conexão da impressora parece saudável.`,warnings:`A impressora deve funcionar, mas alguns pontos exigem atenção.`,problems:`Foram encontrados problemas que explicam por que a impressora não conecta ou não imprime.`},check:{port_mqtt:{title:`Porta de controle (MQTT 8883)`,pass:`Acessível — a impressora está aceitando conexões de controle.`,fail:`A porta 8883 está inacessível. A impressora está desligada, em outro endereço IP, ou um firewall está bloqueando. Verifique o IP da impressora e se nada bloqueia a porta 8883.`},port_ftps:{title:`Porta de transferência de arquivos (FTPS 990)`,pass:`Acessível — o envio de arquivos de impressão funcionará.`,warn:`A porta 990 está inacessível. O monitoramento ainda pode funcionar, mas o envio de impressões para a impressora falhará. Verifique se a porta 990 não está bloqueada.`},external_storage:{title:`Armazenar arquivos enviados no armazenamento externo (passo 4 da instalação)`,pass:`A impressora informa que esta opção está ligada — os arquivos enviados serão armazenados no cartão SD e os arquivos terão miniaturas e metadados do fatiador.`,fail:`A impressora informa que esta opção está desligada. Ative "Armazenar arquivos enviados no armazenamento externo" — em firmwares recentes (P2S 01.02 / Bambu Studio 2.6+) o interruptor fica nas Configurações de Impressão da impressora; em versões mais antigas, está na aba Dispositivo do Bambu Studio / OrcaSlicer. Sem essa opção, cada impressão arquivada fica sem miniatura nem metadados do fatiador.`,skip:`Não verificado — é necessária uma conexão MQTT ativa. Em fatiadores mais antigos onde essa configuração existe apenas no fatiador, a impressora não a reporta, então esta verificação passa mesmo com a opção desligada — verifique o passo 4 da instalação manualmente.`,skip_unsupported_model:`Este modelo tem slot SD mas nenhuma forma de ativar a opção — o firmware atual da série P1 não mostra o botão no Bambu Studio e a impressora não tem tela. Não há nada a corrigir aqui; as impressões arquivadas podem ficar sem miniaturas e metadados do fatiador até que a Bambu Lab adicione suporte por firmware.`},port_rtsps:{title:`Porta da câmera ({{protocol}} {{port}})`,pass:`Acessível — o streaming da câmera funcionará.`,warn:`A porta {{port}} está inacessível. A visualização ao vivo da câmera não funcionará. Isso não afeta a impressão.`},network_mode:{title:`Modo de rede Docker`,pass:`Executando no modo de rede host.`,warn:`O Bambuddy está sendo executado em rede Docker bridge. A descoberta de impressoras e a impressora virtual precisam do modo de rede host — recrie o contêiner com "network_mode: host".`,skip:`Não está sendo executado no Docker — não aplicável.`},subnet:{title:`Sub-rede`,pass:`A impressora e o Bambuddy estão na mesma sub-rede.`,warn:`A impressora ({{printer_ip}}) e o Bambuddy ({{host_ip}}) estão em sub-redes diferentes. Eles podem não se alcançar, a menos que o roteamento entre as sub-redes esteja configurado.`,skip:`Não foi possível determinar a sub-rede — ignorado.`},mqtt_auth:{title:`Credenciais da impressora`,pass:`A impressora aceitou a conexão.`,fail:`A impressora está acessível mas o Bambuddy não está conectado a ela. O código de acesso ou o número de série provavelmente está incorreto — o código de acesso muda toda vez que o modo Somente LAN ou o Modo Desenvolvedor é alternado, então copie-o novamente da tela da impressora. Uma impressora reiniciando, ou que já atingiu seu limite de conexões simultâneas, aparece do mesmo jeito.`,fail_auth_rejected:`A impressora recusou as credenciais do Bambuddy. O código de acesso ou o número de série está incorreto — o código de acesso muda toda vez que o modo Somente LAN ou o Modo Desenvolvedor é alternado. Copie-o novamente da tela da impressora e salve-o nas configurações da impressora.`,skip:`Não verificado — não foi possível alcançar a impressora.`},developer_mode:{title:`Modo Desenvolvedor LAN`,pass:`O Modo Desenvolvedor está ativado.`,fail:`O Modo Desenvolvedor está DESLIGADO na impressora. Ative-o nas configurações de LAN da impressora — e confirme com OK. Sem ele, as impressões não iniciarão.`,skip:`Não foi possível verificar — requer uma conexão ativa com a impressora.`},printer_publishing:{title:`Impressora publicando status`,pass:`A impressora está publicando atualizações de status — AMS, filamentos e perfis K serão espelhados corretamente para o slicer.`,fail:`O broker MQTT aceitou a conexão, mas a impressora não publicou nenhum relatório de status. Quase sempre é um número de série errado ou com maiúsculas/minúsculas incorretas — o tópico device//api/v1/metrics 公开打印机指标,用于Prometheus/Grafana监控。`,bearerTokenOptional:`Bearer令牌(可选)`,bearerTokenHint:`设置后,请求必须包含 Authorization: Bearer `,metricsConnectionStatus:`连接状态`,metricsPrinterState:`打印机状态(空闲/打印中等)`,metricsPrintProgress:`打印进度 0-100%`,metricsBedTemp:`热床温度`,metricsNozzleTemp:`喷嘴温度`,metricsPrintsTotal:`按结果分类的总打印数`,metricsMore:`...以及更多(层数、风扇、队列、耗材用量)`,smartPlugsDescription:`连接智能插座(Tasmota或Home Assistant)以自动化电源控制并跟踪打印机的能源使用情况。`,allOn:`全部开启`,allOff:`全部关闭`,addSmartPlug:`添加智能插座`,energySummary:`能源概要`,currentPower:`当前功率`,plugsOnline:`{{reachable}}/{{total}} 个插座在线`,today:`今天`,yesterday:`昨天`,total:`总计`,enablePlugsForSummary:`启用插座以查看能源概要`,addNotificationProvider:`添加`,systemBadge:`(系统)`,creating:`创建中...`,changing:`修改中...`,deleteUserAndItems:`删除用户及其所有项目`,deleteUserKeepItems:`删除用户,保留项目(将变为无主项目)`,ok:`确定`,twoFa:{totpTitle:`身份验证器应用 (TOTP)`,totpDesc:`使用 Google Authenticator、Aegis 或 Authy 等应用。`,emailOtpTitle:`邮件 OTP`,emailOtpDesc:`登录时向 {{email}} 发送一次性验证码。`,emailOtpNoEmail:`请先为账户添加邮箱地址以启用此方式。`,addEmailFirst:`您的账户没有邮箱地址,请联系管理员添加。`,setupTotp:`设置身份验证器应用`,setupAuthApp:`设置身份验证器应用`,setupInstructions:`使用身份验证器应用扫描二维码,然后输入验证码确认。`,manualEntry:`无法扫描?请手动输入此密钥:`,scannedContinue:`已扫描 — 继续`,enterCodeToConfirm:`请输入身份验证器应用中的6位验证码以确认设置。`,activate:`激活`,disableTotp:`停用身份验证器`,disableConfirmHint:`请输入有效的 TOTP 码或备用码来停用身份验证器。`,totpDisabled:`身份验证器应用已停用。`,emailOtpEnabled:`邮件 OTP 已启用。`,emailOtpDisabled:`邮件 OTP 已停用。`,smtpRequired:`请先配置并测试SMTP设置。`,invalidCode:`无效验证码,请重试。`,enableEmailOtp:`启用邮件 OTP`,disableEmailOtp:`停用邮件 OTP`,emailSetupEnterCode:`验证码已发送至您的邮箱地址。请在下方输入以确认您拥有此邮箱。`,verifyAndEnable:`验证并启用`,emailDisablePasswordHint:`请输入您的账户密码以确认停用邮件 OTP。`,passwordPlaceholder:`输入您的密码`,backupCodesTitle:`保存备用码`,backupCodesWarning:`请将这些码保存在安全的地方。每个码只能使用一次,且不会再次显示。`,backupCodesRemaining:`剩余 {{count}} 个备用码`,savedCodes:`已保存`,regenBackup:`重新生成备用码`,regenBackupHint:`输入当前 TOTP 码以生成 10 个新备用码,所有现有备用码将失效。`,newBackupCodes:`新备用码`,linkedAccounts:`已关联的 SSO 账户`,linkedAccountsDesc:`以下外部身份提供商已与您的账户关联。`,oidcUnlinked:`账户已解除关联。`},sessionPolicy:{title:`会话策略`,description:`新用户登录的最长会话有效期。已颁发的令牌保留其原有的过期时间。`,preset24h:`24 小时`,preset7d:`7 天`,preset30d:`30 天`,customHoursLabel:`自定义会话有效期(小时)`,hoursSuffix:`小时`,warning:`更长的会话会减弱自动注销保护。仅建议在受信任的单用户部署中使用。`},oidc:{title:`SSO / OIDC 提供商`,desc:`配置 OpenID Connect 提供商以实现单点登录。`,addProvider:`添加提供商`,newProvider:`新提供商`,empty:`尚未配置 OIDC 提供商。`,created:`提供商已创建。`,updated:`提供商已更新。`,deleted:`提供商已删除。`,refreshIcon:`刷新图标`,removeIcon:`移除图标`,iconRefreshed:`图标已刷新。`,iconRemoved:`图标已移除。`,iconFetchFailed:`无法从提供商 URL 获取图标。`,deleteTitle:`删除提供商`,deleteMessage:`删除"{{name}}"?所有关联账户将断开连接。`,form:{name:`显示名称`,issuerUrl:`颁发者 URL`,clientId:`客户端 ID`,clientSecret:`客户端密钥`,scopes:`作用域`,iconUrl:`图标 URL(可选)`,enabled:`已启用`,autoCreate:`自动创建用户`,autoCreateDesc:`首次登录时自动创建本地账户。`,autoLink:`自动关联已有账户`,autoLinkDesc:`首次登录时通过邮箱匹配现有本地账户并自动关联。`,secretHint:`留空以保留当前`,secretPlaceholder:`新密钥`,emailClaim:`邮箱声明`,emailClaimDesc:`用作邮箱身份的 JWT 声明。Azure Entra ID 请使用 'preferred_username' 或 'upn'(不发送 email_verified)。仅使用可信的声明名称。`,emailClaimPlaceholder:`邮箱`,emailClaimCustomClaimAutoLinkWarning:`自定义声明仅在值由租户管理时(例如 Azure Entra ID 的 upn / preferred_username)对自动关联安全。如果您的 IdP 允许用户自我声明此声明,请勿启用自动关联。`,requireEmailVerified:`要求邮箱已验证`,requireEmailVerifiedDesc:`仅在提供商将邮箱声明标记为已验证时才接受。`,requireEmailVerifiedWarning:`警告:将在未经验证的情况下接受邮箱。仅对受信任的提供商使用。`,requireEmailVerifiedAutoLink:`请先禁用自动关联以更改此设置。`,defaultGroup:`默认组`,defaultGroupDesc:`自动创建用户时分配的组。未设置时回退到 Viewers。`,defaultGroupViewersFallback:`Viewers(默认)`,autologin:`自动登录`,autologinDesc:`将未认证的访问者直接重定向到该提供商。只有一个提供商可以携带此标志。`}},encryption:{title:`MFA 加密状态`,enabledFromEnv:`已启用静态加密(密钥来自 MFA_ENCRYPTION_KEY 环境变量)`,enabledFromFile:`已启用静态加密(密钥从数据目录加载)`,enabledGenerated:`使用自动生成的密钥启用静态加密`,notConfigured:`未配置静态加密`,notConfiguredDesc:`TOTP 密钥和 OIDC client_secrets 以明文存储。请设置 MFA_ENCRYPTION_KEY 或使用可写数据目录重启 Bambuddy 以自动生成。`,allEncrypted:`所有 MFA 密钥均已静态加密。`,legacyRowsLabel:`旧版明文行`,encryptedRowsLabel:`已加密行`,legacyRowsWarning:`检测到 {{count}} 个旧版明文行。请重新保存 OIDC 提供商或重新注册用户的身份验证器应用,以迁移到加密存储。`,backupHint:`自动生成的密钥存储在 DATA_DIR/.mfa_encryption_key 中,并包含在本地备份 ZIP 中。请保护备份安全或显式设置 MFA_ENCRYPTION_KEY。`,decryptionBrokenTitle:`加密密钥缺失`,decryptionBrokenError:`无法解密 {{count}} 条加密记录,因为加密密钥不再可用。请恢复以前的 MFA_ENCRYPTION_KEY 或 DATA_DIR/.mfa_encryption_key 以恢复访问。`,migrationErrorWarning:`{{count}} 行旧数据在启动时未能重新加密。请检查服务器日志并重启 Bambuddy 以重试。`},pipelineLimits:{title:`切片机流水线限制`,maxCopiesLabel:`每次运行最大副本数`,maxCopiesDesc:`操作员运行流水线时可请求的副本数上限。服务器端硬性上限为 1000。`},pipelines:{title:`切片机流水线`,subtitle:`可复用的预设捆绑包(打印机 + 工艺 + 耗材 + 热床类型)。在切片对话框中保存一个,下次切片文件时一键应用。`,loading:`正在加载流水线…`,loadError:`无法加载流水线。`,confirmDelete:`删除此流水线?此操作无法撤销。`,staleWarning:`引用的一个或多个预设已不存在。请在切片对话框中重新保存此流水线以修复。`,empty:{title:`暂无流水线。`,howto:`为任意文件打开切片对话框,选择打印机 / 工艺 / 耗材 / 热床,然后点击"另存为流水线"。保存的流水线将显示在此处。`},field:{name:`流水线名称`,description:`描述`,targetPrinter:`目标打印机`,noTarget:`— 无目标 —`,targetKind:`目标类型`,targetKindSpecific:`特定打印机`,targetKindClass:`打印机类别`,targetModelClass:`打印机型号`,fanoutStrategy:`分发策略`,fanout:{max_parallel:`最大并行 — 分发到任何空闲匹配的打印机`,round_robin:`轮询 — 在合格打印机间循环`,fill_one_first:`先填一台 — 将所有副本固定到一台打印机`},fanoutShort:{max_parallel:`并行`,round_robin:`轮询`,fill_one_first:`先填一台`}},action:{save:`保存`,cancel:`取消`,rename:`重命名`,delete:`删除`},slot:{printer:`打印机`,process:`工艺`,filament:`耗材`,filamentN:`耗材 {{n}}`,filamentAll:`全部 {{n}} 个槽`,bed:`热床`},group:{profiles:`配置文件`,filaments:`耗材`},searchPlaceholder:`搜索流水线…`,filterTargetType:`按目标类型筛选`,filterTarget:`按目标筛选`,filter:{all:`全部目标`,noTarget:`未设置目标`,count:`{{shown}} / {{total}}`,noMatches:`没有流水线匹配当前筛选条件。`},toast:{saved:`流水线已保存`,saveFailed:`保存失败`,deleted:`流水线已删除`,deleteFailed:`删除失败`},noTargetHint:`设置目标打印机以运行`,noTargetWarning:`运行此流水线前请先设置目标打印机。`,runs:{lastRun:`上次运行`,status:{queued:`排队中`,slicing:`切片中`,dispatching:`发送中`,in_progress:`打印中`,completed:`已完成`,failed:`失败`,partial_failure:`部分失败`,cancelled:`已取消`}}}},notification:{printStarted:{title:`打印已开始`,body:`{{printer}}:{{filename}} 已开始打印`},printCompleted:{title:`打印已完成`,body:`{{printer}}:{{filename}} 已成功完成`},printFailed:{title:`打印失败`,body:`{{printer}}:{{filename}} 打印失败`},printStopped:{title:`打印已停止`,body:`{{printer}}:{{filename}} 已停止`},printProgress:{title:`打印进度`,body:`{{printer}}:{{filename}} 已完成 {{percent}}%`},printerOffline:{title:`打印机离线`,body:`{{printer}} 已离线`},printerError:{title:`打印机错误`,body:`{{printer}}:{{error}}`},filamentLow:{title:`耗材不足`,body:`{{printer}}:耗材即将用完`},maintenanceDue:{title:`维护到期`,body:`{{printer}}:{{items}} 需要关注`}},errors:{generic:`出了点问题`,networkError:`网络错误。请检查您的连接。`,notFound:`未找到`,unauthorized:`未授权`,serverError:`服务器错误`,validationError:`请检查您的输入`,printerConnectionFailed:`连接打印机失败`,saveFailed:`保存更改失败`,deleteFailed:`删除失败`,loadFailed:`加载数据失败`},hmsErrors:{title:`错误 - {{name}}`,noErrors:`无错误`,viewOnWiki:`在拓竹 Wiki 上查看`,mqttVerifyFailedRemedy:`在打印机上启用开发者模式,重启打印机,然后重新开始该任务。`,unknownCode:`未知 HMS 代码 — 详情请参阅拓竹 Wiki。`,clearInstructions:`在打印机上清除错误以在此处消除它们。`,clearErrors:`清除错误`,clearSuccess:`HMS 错误已清除`,clearFailed:`清除 HMS 错误失败`,actionSuccess:`已向打印机发送操作`,actionFailed:`操作发送失败`,runoutExpectedSlot:`{{ranOut}} 的耗材已用尽。打印机现在正在等待 {{expected}} 装入兼容耗材。请将料卷装入 {{expected}},然后选择"重试"。`,runoutExpectedSlotOnly:`打印机正在等待 {{expected}} 装入兼容耗材。请在该料槽装入料卷,然后选择"重试"。`,runoutSlotUnknown:`耗材已用尽,打印已暂停。Bambuddy 无法确定打印机现在需要哪个料槽——请在打印机屏幕上查看所请求的料槽。`,actions:{RESUME_PRINTING:`恢复打印`,RESUME_PRINTING_DEFECTS:`恢复 (缺陷可接受)`,RESUME_PRINTING_PROBELM_SOLVED:`恢复 (问题已解决)`,STOP_PRINTING:`停止打印`,CHECK_ASSISTANT:`查看助手`,FILAMENT_EXTRUDED:`已挤出耗材,继续`,RETRY_FILAMENT_EXTRUDED:`尚未挤出,重试`,CONTINUE:`已完成,继续`,LOAD_VIRTUAL_TRAY:`加载耗材`,OK_BUTTON:`确定`,FILAMENT_LOAD_RESUME:`耗材已加载,恢复`,JUMP_TO_LIVEVIEW:`查看实时画面`,NO_REMINDER_NEXT_TIME:`下次不再提醒`,REFRESH_NOZZLE:`重新检查`,IGNORE_NO_REMINDER_NEXT_TIME:`忽略,下次不再提醒`,IGNORE_RESUME:`忽略并恢复`,PROBLEM_SOLVED_RESUME:`问题已解决,恢复`,TURN_OFF_FIRE_ALARM:`知道了,关闭火警`,RETRY_PROBLEM_SOLVED:`重试 (问题已解决)`,CANCLE:`取消`,STOP_DRYING:`停止干燥`,PROCEED:`继续`,OK_JUMP_RACK:`确定`,ABORT:`终止`,DISABLE_PURIFICATION:`本次打印禁用空气净化`,DONT_REMIND_NEXT_TIME:`不再提醒`,DBL_CHECK_CANCEL:`取消`,DBL_CHECK_DONE:`完成`,DBL_CHECK_RETRY:`重试`,DBL_CHECK_RESUME:`恢复`,DBL_CHECK_OK:`确认`,REMOVE_CLOSE_BTN:`关闭`}},mqttDebug:{title:`MQTT 调试日志`,searchPlaceholder:`搜索主题或负载...`,noMessages:`尚未记录消息`,startLoggingHint:`点击"开始记录"以开始捕获 MQTT 消息`,noMessagesMatch:`没有消息匹配您的筛选条件`,adjustFilterHint:`尝试调整您的搜索或筛选条件`,incoming:`传入`,outgoing:`传出`,loggingStopped:`记录已停止`,loggingActive:`记录中 - 消息将自动刷新`,startLogging:`开始记录`,stopLogging:`停止记录`,clearLog:`清除日志`,topic:`主题`,timestamp:`时间戳`,direction:`方向`,all:`全部`},printerFiles:{title:`文件管理器`,storageUsed:`已用:`,storageFree:`剩余:`,filterPlaceholder:`筛选文件...`,deleteButton:`删除`,deleteFiles:`删除 {{count}} 个文件`,deleteFileConfirm:`删除"{{name}}"?此操作无法撤销。`,deleteFilesConfirm:`删除 {{count}} 个选中的文件?此操作无法撤销。`,noFiles:`打印机上没有文件`,loadingFiles:`加载文件中...`,failedToLoad:`加载文件失败`,toast:{filesDeleted:`已删除 {{count}} 个文件`,deleteFailed:`删除失败:{{error}}`}},confirm:{delete:`确定要删除吗?`,unsavedChanges:`您有未保存的更改。确定要离开吗?`,clearQueue:`确定要清空队列吗?`},login:{title:`Bambuddy 登录`,subtitle:`登录您的账户`,username:`用户名`,usernamePlaceholder:`输入您的用户名`,usernameOrEmail:`用户名或邮箱`,usernameOrEmailPlaceholder:`用户名或 @ 邮箱`,password:`密码`,passwordPlaceholder:`输入您的密码`,signIn:`登录`,signingIn:`登录中...`,rememberMe:`记住我`,forgotPassword:`忘记密码?`,autologinFailed:`自动SSO登录失败。请在下方选择一个提供商以继续。`,localDisabledNotice:`本地登录已禁用。请使用下方的SSO提供商之一。`,loginSuccess:`登录成功`,loginFailed:`登录失败`,enterCredentials:`请输入用户名和密码`,enterEmail:`请输入您的电子邮件地址`,oidcLoginFailed:`OIDC 登录失败`,oidcErrors:{providerError:`身份提供商返回了一个错误`,missingParameters:`OIDC 回调缺少必要参数`,invalidState:`OIDC 状态无效或已被使用`,stateExpired:`OIDC 登录会话已过期,请重试`,providerNotFound:`未找到 OIDC 提供商`,discoveryFailed:`无法获取 OIDC 发现文档`,invalidDiscovery:`OIDC 发现文档无效`,networkError:`OIDC 令牌交换时出现网络错误`,badResponse:`OIDC 令牌交换时收到意外响应`,noIdToken:`OIDC 提供商未返回 ID 令牌`,validationFailed:`OIDC 令牌验证失败`,nonceMismatch:`OIDC nonce 不匹配,可能存在重放攻击`,missingSubClaim:`OIDC 令牌缺少 sub 声明`,noLinkedAccount:`没有与此 OIDC 身份关联的本地帐户`,accountInactive:`您的帐户已被停用`,userResolutionFailed:`无法解析您的帐户`,internalError:`OIDC 登录过程中发生内部错误`,tokenExchangeFailed:`OIDC 令牌交换失败`},forgotPasswordTitle:`忘记密码`,forgotPasswordMessage:`如果您忘记了密码,请联系系统管理员进行重置。`,forgotPasswordEmailMessage:`输入您的邮箱地址,我们将向您发送新密码。`,emailAddress:`邮箱地址`,emailPlaceholder:`your.email@example.com`,cancel:`取消`,sending:`发送中...`,sendResetEmail:`发送重置邮件`,howToReset:`如何重置密码:`,resetStep1:`联系您的 Bambuddy 管理员`,resetStep2:`请他们在用户管理中重置您的密码`,resetStep3:`他们可以为您设置一个临时密码`,resetStep4:`使用新密码登录并在设置中修改密码`,gotIt:`知道了`,resetPassword:{title:`设置新密码`,subtitle:`请在下方输入并确认您的新密码。`,newPassword:`新密码`,newPasswordPlaceholder:`至少 8 个字符`,confirmPassword:`确认密码`,confirmPasswordPlaceholder:`重复输入新密码`,saving:`保存中…`,submit:`设置新密码`,backToLogin:`返回登录`,passwordsDoNotMatch:`密码不匹配`,passwordTooShort:`密码至少需要 8 个字符`,resetFailed:`密码重置失败。链接可能已过期。`},twoFA:{title:`两步验证`,subtitle:`您的账户已启用两步验证。请在下方输入验证码。`,methodAuthenticator:`身份验证器应用`,methodEmail:`邮箱验证码`,methodBackup:`备用恢复码`,instructionsTotp:`请打开您的身份验证器应用,输入 Bambuddy 的 6 位验证码。`,instructionsEmail:`6 位验证码已发送至您的邮箱,有效期为 10 分钟。`,instructionsEmailNotSent:`点击下方按钮,通过邮件获取验证码。`,instructionsBackup:`请输入您的一个 8 位备用恢复码。每个恢复码只能使用一次。`,sendCodeButton:`发送邮箱验证码`,sendingCode:`发送中...`,resendCode:`重新发送验证码`,codeLabel:`验证码`,backupCodeLabel:`备用恢复码`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`验证`,verifyingButton:`验证中...`,backToLogin:`← 返回登录页面`,orContinueWith:`或通过以下方式登录`,signInWith:`使用 {{provider}} 登录`,enterCode:`请输入验证码`,sendCodeFailed:`验证码发送失败`,invalidCode:`无效验证码,请重试。`}},setup:{title:`Bambuddy 设置`,subtitle:`为您的 Bambuddy 实例配置身份验证`,enableAuth:`启用身份验证`,adminAccount:`管理员账户`,adminAccountDesc:`如果管理员用户已存在,将使用现有管理员账户启用身份验证。如需使用现有管理员,请将下方字段留空,或输入新凭据创建新管理员用户。`,adminUsername:`管理员用户名`,adminPassword:`管理员密码`,optionalIfAdminExists:`(如管理员用户已存在则为可选)`,adminUsernamePlaceholder:`输入管理员用户名(可选)`,adminPasswordPlaceholder:`输入管理员密码(可选)`,confirmPassword:`确认密码`,confirmPasswordPlaceholder:`确认管理员密码`,settingUp:`设置中...`,completeSetup:`完成设置`,toast:{authEnabledAdminCreated:`身份验证已启用并创建了管理员用户`,authEnabledExistingAdmins:`使用现有管理员用户启用了身份验证`,setupCompleted:`设置完成`,enterBothCredentials:`请输入管理员用户名和密码,或将两者留空以使用现有管理员用户`,passwordsDoNotMatch:`密码不匹配`,passwordTooShort:`密码至少需要 6 个字符`}},changePassword:{title:`修改密码`,currentPassword:`当前密码`,currentPasswordPlaceholder:`输入当前密码`,newPassword:`新密码`,newPasswordPlaceholder:`输入新密码(至少 6 个字符)`,confirmPassword:`确认新密码`,confirmPasswordPlaceholder:`确认新密码`,passwordsDoNotMatch:`密码不匹配`,passwordTooShort:`密码至少需要 6 个字符`,changing:`修改中...`,success:`密码修改成功`,failed:`密码修改失败`},plateAlert:{title:`打印已暂停!`,message:`在构建板上检测到物体。打印已自动暂停。请清理打印板并继续打印。`,understand:`我知道了`},camera:{title:`摄像头视图`,invalidPrinterId:`无效的打印机 ID`,live:`实时`,snapshot:`快照`,restartStream:`重启流`,refreshSnapshot:`刷新快照`,fullscreen:`全屏`,exitFullscreen:`退出全屏`,connectingToCamera:`连接摄像头中...`,capturingSnapshot:`拍摄快照中...`,connectionLost:`连接已断开`,connectionFailed:`摄像头连接失败`,reconnecting:`{{countdown}} 秒后重新连接...(第 {{attempt}}/{{max}} 次尝试)`,reconnectNow:`立即重新连接`,cameraUnavailable:`摄像头不可用`,cameraUnavailableDesc:`请确保打印机已通电并已连接。`,noCamera:`无可用摄像头`,retry:`重试`,cameraStream:`摄像头流`,zoomOut:`缩小`,zoomIn:`放大`,resetZoom:`重置缩放`,recording:`录制中`,startRecording:`开始录制`,stopRecording:`停止录制`,chamberLight:`切换腔室灯`,unavailable:`摄像头不可用`,diagnose:{button:`诊断`,modalTitle:`摄像头诊断`,running:`正在运行诊断...`,runFailed:`无法运行诊断: {{error}}`,retry:`重新运行`,stage:{tcp_reachable:`网络可达性`,first_frame:`画面捕获`,live_stream_active:`直播流正在进行`},summary:{all_ok:`摄像头工作正常。诊断已成功完成所有阶段。`,live_stream_active_healthy:`摄像头正在传输最新画面 — 无需测试。`,printer_unreachable:`无法访问打印机。请检查 IP 地址、网络连接以及打印机是否已开机。`,camera_port_closed:`打印机可访问,但摄像头端口已关闭。请确保打印机设置中已启用仅 LAN 模式和开发者模式。`,no_frame:`已连接到摄像头,但未收到画面。请重试或检查打印机设置中摄像头是否已启用。`,unknown_failure:`摄像头诊断因未知原因失败。请查看支持日志了解详情。`},meta:{protocol:`协议`,port:`端口`,profile:`配置`}}},groups:{title:`组管理`,subtitle:`管理访问控制的权限组`,backToSettings:`返回设置`,createGroup:`创建组`,noPermission:`您没有访问此页面的权限。`,system:`系统`,noDescription:`无描述`,usersCount:`{{count}} 个用户`,permissionsCount:`{{count}} 个权限`,edit:`编辑`,delete:`删除`,toast:{created:`组创建成功`,updated:`组更新成功`,deleted:`组删除成功`,enterGroupName:`请输入组名称`},modal:{editGroup:`编辑组`,createGroup:`创建组`,cancel:`取消`,saving:`保存中...`,creating:`创建中...`,saveChanges:`保存更改`},form:{groupName:`组名称`,groupNamePlaceholder:`输入组名称`,systemGroupWarning:`系统组名称不可更改`,description:`描述`,descriptionPlaceholder:`输入描述(可选)`,permissions:`权限(已选 {{count}} 个)`},deleteModal:{title:`删除组`,message:`确定要删除此组吗?此组中的用户将失去这些权限。`,confirm:`删除组`},editor:{title:`编辑组`,createTitle:`创建组`,search:`搜索权限...`,selectAll:`全选`,clearAll:`清除全部`,permissionsSelected:`已选 {{count}} 个`,noResults:`没有权限匹配您的搜索`,websocketHint:`实时更新所需。缺少此权限时,界面将回退到定期轮询。`}},users:{title:`用户管理`,subtitle:`管理用户及其对 Bambuddy 实例的访问`,backToSettings:`返回设置`,createUser:`创建用户`,noPermission:`您没有访问此页面的权限。`,admin:`管理员`,noGroups:`无组`,active:`活跃`,inactive:`非活跃`,edit:`编辑`,delete:`删除`,system:`系统`,noGroupsAvailable:`无可用组`,table:{username:`用户名`,groups:`组`,status:`状态`,actions:`操作`},toast:{created:`用户创建成功`,updated:`用户更新成功`,deleted:`用户删除成功`,fillRequired:`请填写所有必填字段`,passwordsDoNotMatch:`密码不匹配`,passwordTooShort:`密码至少需要 6 个字符`,ldapProvisioned:`已创建 LDAP 用户「{{username}}」`},modal:{createUser:`创建用户`,editUser:`编辑用户`,cancel:`取消`,creating:`创建中...`,saving:`保存中...`,saveChanges:`保存更改`,advancedAuthSubtitle:`使用高级认证`,tabsAriaLabel:`用户来源`,localTab:`本地`,ldapTab:`LDAP`,ldapSearchLabel:`搜索目录`,ldapSearchPlaceholder:`输入用户名、姓名或电子邮件...`,ldapMinChars:`输入至少 2 个字符以搜索`,ldapTypeToSearch:`开始输入以搜索 LDAP 目录`,ldapSearching:`搜索目录中...`,ldapNoResults:`目录中没有匹配的用户`,ldapSearchError:`目录搜索失败。请检查 LDAP 服务器状态。`,ldapAlreadyProvisioned:`已创建`,ldapSelectedLabel:`已选`,ldapProvision:`创建用户`,ldapProvisioning:`创建中...`,ldapErrorProvision:`创建失败。请检查 LDAP 服务器状态后重试。`},form:{username:`用户名`,usernamePlaceholder:`输入用户名`,email:`邮箱`,emailPlaceholder:`user@example.com`,password:`密码`,passwordPlaceholder:`输入密码`,confirmPassword:`确认密码`,confirmPasswordPlaceholder:`确认密码`,newPasswordPlaceholder:`输入新密码`,confirmNewPasswordPlaceholder:`确认新密码`,leaveBlankToKeep:`留空以保持当前值`,groups:`组`,optional:`可选`,autoGeneratedPassword:`将自动生成安全密码并通过邮件发送给用户。`,passwordManagedByAdvancedAuth:`密码由高级认证管理。使用"重置密码"通过邮件向用户发送新密码。`,resetPassword:`重置密码`,resettingPassword:`重置密码中...`},deleteModal:{title:`删除用户`,message:`确定要删除此用户吗?此操作无法撤销。`,confirm:`删除用户`}},streamOverlay:{title:`流叠加层`,invalidPrinterId:`无效的打印机 ID`,cameraStream:`摄像头流`,progress:`进度`,eta:`预计完成时间`,printerIdle:`打印机空闲`,printerOffline:`打印机离线`,status:{printing:`打印中`,paused:`已暂停`,finished:`已完成`,failed:`失败`,idle:`空闲`,unknown:`未知`}},profiles:{title:`配置文件`,subtitle:`管理您的切片预设和压力推进校准`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`本地配置文件`,kprofiles:`K 值配置`},orcaCloud:{connectedAs:`已连接`,connectedShort:`已连接到 Orca Cloud`,logout:`断开连接`,noLogoutPermission:`您没有断开连接的权限`,noConnectPermission:`您没有连接到 Orca Cloud 的权限`,retry:`重试`,connectButton:`连接 Orca Cloud`,connect:{title:`连接到 Orca Cloud`,description:`登录您的 Orca Cloud 账户,将切片机配置同步到 Bambuddy。`},device:{title:`在 Orca Cloud 中批准 Bambuddy`,instruction:`打开 Orca Cloud 并批准此代码。批准后 Bambuddy 会自动连接。`,codeLabel:`您的配对代码`,openButton:`打开 Orca Cloud 批准页面`,manualHint:`或前往 {{url}} 并输入上方的代码。`,waiting:`正在等待您批准…`,cancel:`取消`},profiles:{title:`您的 Orca Cloud 配置文件 ({{count}})`,refresh:`刷新`,empty:`您的 Orca Cloud 账户中尚无配置文件。`},toast:{disconnected:`已从 Orca Cloud 断开连接`},errors:{startFailed:`无法启动 Orca Cloud 登录流程。`,denied:`配对在 Orca Cloud 中被拒绝。`,expired:`配对代码已过期。请点击"连接"重试。`,pollFailed:`等待批准时连接中断。请重试。`}},localProfiles:{title:`本地配置文件`,subtitle:`从 OrcaSlicer 导入和管理切片预设`,import:`导入配置文件`,importDesc:`将 .bbscfg、.bbsflmt、.orca_filament、.zip 或 .json 文件拖放到此处`,importing:`导入中...`,search:`搜索本地预设...`,noPresets:`暂无本地预设`,noSearchResults:`没有与搜索匹配的预设`,badge:`本地`,edit:`编辑`,delete:`删除`,cancel:`取消`,deleteConfirmTitle:`删除预设`,deleteConfirm:`确定要删除此预设吗?此操作无法撤销。`,source:`来源`,inheritsFrom:`继承自`,filamentType:`类型`,vendor:`厂商`,compatiblePrinters:`兼容打印机`,nozzleTemp:`喷嘴温度`,cost:`成本`,density:`密度`,pressureAdvance:`压力推进`,filament:`耗材`,process:`工艺`,printer:`打印机`,toast:{importSuccess:`已导入 {{count}} 个预设`,importSkipped:`跳过 {{count}} 个预设(重复)`,importError:`导入时出现 {{count}} 个错误`,deleted:`预设已删除`,updated:`预设已更新`}},connectedAs:`已连接为`,signInExpiredTitle:`Bambu Cloud 登录已过期`,signInExpiredBody:`Bambu Lab 不再接受已保存的令牌。请重新登录以恢复云配置文件、MakerWorld 导入和固件检查。`,logout:`退出登录`,noLogoutPermission:`您没有退出登录的权限`,failedToLoad:`加载配置文件失败`,retry:`重试`,time:{justNow:`刚刚`,minsAgo:`{{count}} 分钟前`,hoursAgo:`{{count}} 小时前`,daysAgo:`{{count}} 天前`},toast:{loggedOut:`已退出登录`},login:{title:`连接到拓竹云`,subtitle:`跨设备同步您的切片预设`,email:`邮箱`,password:`密码`,region:`地区`,regionGlobal:`全球`,regionChina:`中国`,verificationCode:`验证码`,totpCode:`验证器代码`,checkEmail:`检查您的邮箱 ({{email}}) 获取 6 位验证码`,enterTotpHint:`输入验证器应用中的 6 位代码`,accessToken:`访问令牌`,accessTokenHint:`粘贴您的拓竹云访问令牌。中国大陆账号(绑定手机号、无邮箱登录)只能使用此方式登录。可从 MakerWorld 浏览器 Cookie 中获取令牌,详见 Wiki。`,back:`返回`,loginButton:`登录`,verifyButton:`验证`,setTokenButton:`设置令牌`,useToken:`改用访问令牌`,useEmail:`改用邮箱登录`,toast:{loggedIn:`登录成功`,codeSent:`验证码已发送到您的邮箱`,enterTotp:`输入验证器应用中的代码`,tokenSet:`令牌设置成功`}},presets:{myPreset:`我的预设(可编辑)`,duplicate:`复制`,editable:`可编辑`,failedToLoadDetails:`加载预设详情失败`,deleteConfirm:`删除此预设?`,deleteWarning:`这将从拓竹云中永久删除"{{name}}"。此操作无法撤销。`,noDuplicatePermission:`您没有复制预设的权限`,noEditPermission:`您没有编辑预设的权限`,noDeletePermission:`您没有删除预设的权限`,types:{filament:`耗材预设`,printer:`打印机预设`,process:`工艺预设`},toast:{deleted:`预设已删除`,created:`预设已创建`,updated:`预设已更新`,duplicated:`预设已复制`,fieldAdded:`字段"{{key}}"已添加`,exported:`预设已导出`},baseLabel:`基础:{{name}}`,currentLabel:`当前:{{name}}`,newPreset:`新建预设`,editPreset:`编辑预设`,duplicatePreset:`复制预设`,createNewPreset:`创建新预设`,customizeSettings:`自定义新预设的设置`,compareWithBase:`与基础预设比较`,compare:`比较`,basePreset:`基础预设`,selectBasePreset:`选择基础预设...`,presetName:`预设名称`,myCustomPreset:`我的自定义预设`,inheritsFrom:`继承自`,dropJsonToImport:`拖放 JSON 以导入`,tabs:{common:`常用`,allFields:`所有字段`},availableFields:`可用字段`,searchFieldsPlaceholder:`搜索字段...`,noMatchingFields:`没有匹配的字段`,allFieldsAdded:`所有字段已添加`,addCustomField:`添加自定义字段`,yourOverrides:`您的覆盖值`,noOverridesYet:`暂无覆盖值`,clickFieldsToAdd:`点击左侧的字段进行添加`,saveAsTemplate:`保存为模板`,jsonTip:`提示:将 .json 文件拖放到此对话框的任意位置以导入设置`},cloudView:{searchPlaceholder:`搜索预设...`,templates:`模板`,refresh:`刷新`,newPreset:`新建预设`,clearFilters:`清除筛选`,compareMode:`比较模式`,selectAnotherPreset:`选择另一个 {{type}} 预设`,clickTwoPresets:`点击两个相同类型的预设进行比较`,selectFirst:`1. 选择第一个`,selectSecond:`2. 选择第二个`,compareNow:`立即比较`,lastSynced:`上次同步:`,showingCount:`显示 {{showing}} / {{total}} 个预设`,noPresetsFound:`未找到预设`,columns:{filament:`耗材`,process:`工艺`,printer:`打印机`},noFilamentPresets:`无耗材预设`,noProcessPresets:`无工艺预设`,noPrinterPresets:`无打印机预设`,filters:{type:`类型`,owner:`所有者`,printer:`打印机`,nozzle:`喷嘴`,filament:`耗材`,layer:`层`,all:`全部`,myPresets:`我的预设`,builtIn:`内置`,process:`工艺`},noTemplatesPermission:`您没有管理模板的权限`,noRefreshPermission:`您没有刷新配置文件的权限`,noCreatePermission:`您没有创建预设的权限`},templates:{title:`快速模板`,noTemplates:`暂无模板`,createFirst:`从预设编辑器创建模板`,typeFilter:`类型:`,deleteTitle:`删除模板`,deleteWarning:`此操作无法撤销`,deleteConfirm:`确定要删除"{{name}}"吗?`,namePlaceholder:`模板名称`,descriptionPlaceholder:`描述`,settingsJson:`设置 (JSON)`,fieldsCount:`{{count}} 个字段`,shownInModals:`在对话框中显示`,hiddenInModals:`在对话框中隐藏`,apply:`应用`,toast:{deleted:`模板已删除`,updated:`模板已更新`,created:`模板已创建`,applied:`模板已应用`}}},support:{debugLoggingActive:`调试日志记录已激活`,manageLogs:`管理`,collectItem7:`打印机连接和固件版本`,collectItem8:`集成状态(Spoolman、MQTT、HA)`,collectItem9:`网络接口(仅子网)`,collectItem10:`Python 包版本`,collectItem11:`数据库健康检查`,collectItem12:`Docker 环境详情`,bundleGenerating:`正在生成包...`,bundleStepConnection:`正在执行打印机连接性检查`,bundleStepVirtualPrinters:`正在执行虚拟打印机设置检查`,bundleStepLogScan:`正在扫描最近的日志以查找已知问题`,bundleStepBuild:`正在构建支持包 ZIP 文件`},fileManager:{title:`文件管理器`,subtitle:`组织和管理您的打印文件`,uploadFiles:`上传文件`,newFolder:`新建文件夹`,folderName:`文件夹名称`,folderNamePlaceholder:`例如:功能零件`,renameFile:`重命名文件`,renameFolder:`重命名文件夹`,invalidFilenameChar:`打印文件名中不允许使用字符 "{{char}}"。打印机 SD 卡拒绝以下字符: < > : " / \\ | ? *`,moveFiles:`移动 {{count}} 个文件`,rootNoFolder:`根目录(无文件夹)`,current:`当前`,linkFolder:`链接文件夹`,linkFolderDescription:`将"{{name}}"链接到项目或归档以便快速访问。`,project:`项目`,archive:`归档`,noProjectsFound:`未找到项目`,noArchivesFound:`未找到归档`,unlink:`取消链接`,link:`链接`,dragDropFiles:`将文件拖放到此处`,dropFilesHere:`将文件放在此处`,releaseToUpload:`释放以上传`,orClickToBrowse:`或点击浏览`,allFileTypesSupported:`支持所有文件类型。ZIP 文件将被解压。`,zipFilesDetected:`检测到 ZIP 文件`,zipExtractOptions:`ZIP 文件将被解压。选择如何处理文件夹结构:`,preserveZipStructure:`保留 ZIP 中的文件夹结构`,createFolderFromZip:`从 ZIP 文件名创建文件夹`,stlThumbnailGeneration:`STL 缩略图生成`,zipMayContainStl:`ZIP 文件可能包含 STL 文件。可以在解压时生成缩略图。`,thumbnailsCanBeGenerated:`可以为 STL 文件生成缩略图。大型模型可能需要更长时间处理。`,generateThumbnailsForStl:`为 STL 文件生成缩略图`,threemfDetected:`检测到 3MF 文件`,threemfExtractionInfo:`将自动从 3MF 文件中提取打印机型号、材料、颜色和打印设置。`,willBeExtracted:`将被解压`,filesExtracted:`已解压 {{count}} 个文件`,uploadComplete:`上传完成:{{succeeded}} 个成功`,uploadFailed:`上传失败`,zipFilesFailed:`{{count}} 个文件失败`,uploading:`上传中...`,changeLink:`更改链接...`,linkTo:`链接到...`,linkToProjectOrArchive:`链接到项目或归档`,generateThumbnail:`生成缩略图`,generateThumbnails:`生成缩略图`,generateThumbnailsForMissing:`为缺少缩略图的 STL 文件生成缩略图`,gridView:`网格视图`,listView:`列表视图`,lowDiskSpaceWarning:`磁盘空间不足警告`,lowDiskSpaceDetails:`仅剩 {{free}}(总共 {{total}})。阈值设置为 {{threshold}} GB。`,files:`文件`,folders:`文件夹`,size:`大小`,free:`剩余`,allFiles:`所有文件`,allExternal:`外部`,externalIsEmpty:`没有外部文件`,externalEmptyDescription:`关联的外部文件夹中的文件将在此显示。`,wrap:`换行`,enableTextWrapping:`启用文本换行`,disableTextWrapping:`禁用文本换行`,collapse:`折叠`,collapseFoldersByDefault:`默认折叠文件夹`,expandFoldersByDefault:`默认展开文件夹`,folderSort:`文件夹排序`,folderSortByName:`按名称`,folderSortByActivity:`按最近活动`,dragToResizeTooltip:`拖动调整大小,双击重置`,searchFiles:`搜索文件...`,searchSubfoldersHint:`包含子文件夹`,readme:{truncated:`已截断`,show:`显示 README`,hide:`隐藏 README`,label:`README`},tags:{title:`标签`,subtitle:`为文件添加跨目录的标签 —— 玩具、儿童安全、仅 PETG 等等。`,manage:`标签`,manageTitle:`管理标签目录`,add:`新建标签`,edit:`重命名标签`,name:`名称`,fileCount:`文件数`,empty:`还没有标签。创建一个开始为文件加标签吧。`,noMatches:`没有匹配的标签。`,createPlaceholder:`例:玩具、儿童安全、petg`,createButton:`创建`,nameRequired:`名称是必填项。`,searchPlaceholder:`过滤标签…`,created:`已创建标签。`,updated:`已重命名标签。`,deleted:`已删除标签。`,saveFailed:`无法保存标签。`,deleteFailed:`无法删除标签。`,applyFailed:`无法应用标签。`,applyAdd:`添加标签`,applyRemove:`移除标签`,applyAddSuccess:`已为 {{files}} 个文件添加 {{count}} 个标签。`,applyRemoveSuccess:`已从 {{files}} 个文件移除 {{count}} 个标签。`,actionAdd:`添加到所选文件`,actionRemove:`从所选文件移除`,tagAction:`标签`,bulkTitle:`为所选的 {{count}} 个文件加标签`,bulkTooltip:`在每个所选文件上添加或移除标签。`,noPermission:`您没有为文件加标签的权限。`,filterLabel:`筛选条件:`,clearAll:`全部清除`,confirmDelete:`删除标签 "{{name}}"?`,confirmDeleteMessage:`此操作会从目录中删除该标签。文件保留其它标签。`,confirmDeleteInUseMessage:`此标签存在于 {{count}} 个文件上。删除后所有文件上的标签都会消失,但文件本身不会动。`,editAria:`编辑 {{name}}`,deleteAria:`删除 {{name}}`},allTypes:`所有类型`,prints:`打印`,ascending:`升序`,descending:`降序`,showModified:`显示修改日期`,hideModified:`隐藏修改日期`,lastModified:`最后修改`,lastActivity:`最近活动`,resultsCount:`{{showing}} / {{total}} 个文件`,selectAll:`全选`,deselectAll:`取消全选`,selected:`已选择 {{count}} 个`,adding:`添加中...`,loadingFiles:`加载文件中...`,folderIsEmpty:`文件夹为空`,noFilesYet:`暂无文件`,folderEmptyDescription:`上传文件或将文件移入此文件夹以开始使用。`,noFilesDescription:`上传文件以开始组织您的打印相关文件。`,noMatchingFiles:`没有匹配的文件`,noMatchingFilesDescription:`没有文件匹配您当前的搜索或筛选条件。`,clearFilters:`清除筛选`,printedCount:`已打印 {{count}} 次`,uploadedBy:`上传者`,deleteFolder:`删除文件夹`,deleteFile:`删除文件`,deleteFilesCount:`删除 {{count}} 个文件`,deleteFolderConfirm:`确定要删除此文件夹吗?其中的所有文件也将被删除。`,deleteFileConfirm:`确定要删除此文件吗?`,deleteFilesConfirm:`确定要删除 {{count}} 个选中的文件吗?此操作无法撤销。`,deleting:`删除中...`,noPermissionRenameFolder:`您没有重命名文件夹的权限`,noPermissionLinkFolder:`您没有链接文件夹的权限`,noPermissionDeleteFolder:`您没有删除文件夹的权限`,onlyEmptyFoldersDeletable:`您只能删除空文件夹`,noPermissionPrint:`您没有打印的权限`,noPermissionSlice:`您没有切片文件的权限`,noPermissionAddToQueue:`您没有添加到队列的权限`,noPermissionDownload:`您没有下载文件的权限`,noPermissionRenameFile:`您没有重命名此文件的权限`,noPermissionGenerateThumbnail:`您没有生成缩略图的权限`,noPermissionDeleteFile:`您没有删除此文件的权限`,noPermissionCreateFolder:`您没有创建文件夹的权限`,noPermissionUpload:`您没有上传文件的权限`,noPermissionMoveFiles:`您没有移动文件的权限`,noPermissionDeleteFiles:`您没有删除文件的权限`,linkExternal:`链接外部`,linkExternalFolder:`链接外部文件夹`,linkExternalFolderDescription:`将主机目录(NAS、USB、网络共享)挂载到文件管理器中。文件不会被复制——直接从原始路径访问。`,externalFolderNamePlaceholder:`例如:NAS打印文件`,externalPath:`主机路径`,externalPathHelp:`Docker主机上目录的绝对路径。必须以绑定挂载方式挂载到容器中。`,readOnly:`只读`,readOnlyHelp:`防止上传和删除`,showHiddenFiles:`显示隐藏文件(点文件)`,externalFolder:`外部文件夹`,scanFolder:`扫描`,toast:{folderCreated:`文件夹已创建`,folderDeleted:`文件夹已删除`,fileDeleted:`文件已删除`,filesDeleted:`已删除 {{count}} 个文件`,filesMoved:`文件已移动`,folderLinked:`文件夹已链接`,folderUnlinked:`文件夹已取消链接`,externalFolderLinked:`外部文件夹已链接并扫描`,folderScanned:`扫描完成:添加 {{added}} 个,移除 {{removed}} 个`,addedToQueue:`已将 {{count}} 个文件添加到队列`,addedToQueuePartial:`已添加 {{added}} 个文件,{{failed}} 个失败`,failedToAddToQueue:`添加文件失败:{{error}}`,fileRenamed:`文件已重命名`,folderRenamed:`文件夹已重命名`,thumbnailsGenerated:`已生成 {{count}} 个缩略图`,thumbnailsGeneratedPartial:`已生成 {{succeeded}} 个缩略图,{{failed}} 个失败`,noStlMissingThumbnails:`没有缺少缩略图的 STL 文件`,failedToGenerateThumbnails:`生成缩略图失败:{{error}}`,thumbnailGenerated:`缩略图已生成`,failedToGenerateThumbnail:`生成缩略图失败:{{error}}`}},projects:{title:`项目`,subtitle:`组织和跟踪您的 3D 打印项目`,newProject:`新建项目`,editProject:`编辑项目`,deleteProject:`删除项目`,projectName:`项目名称`,description:`描述`,noProjects:`暂无项目`,noProjectsFiltered:`没有{{status}}项目`,noProjectsFilteredHelp:`您没有任何{{status}}项目。当项目状态更改时,它们将出现在这里。`,createFirst:`创建您的第一个项目以开始组织相关打印、跟踪进度和管理构建。`,createFirstButton:`创建您的第一个项目`,create:`创建`,files:`文件`,prints:`打印`,plates:`板`,parts:`零件`,lastModified:`最后修改`,deleteConfirm:`确定要删除此项目吗?归档和队列项目将被取消链接但不会被删除。`,addFiles:`添加文件`,removeFile:`移除文件`,viewDetails:`查看详情`,namePlaceholder:`例如:Voron 2.4 构建`,descriptionPlaceholder:`可选描述...`,urlLabel:`网址`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`网址必须以 http:// 或 https:// 开头`,openExternalUrl:`打开项目网址`,coverImageLabel:`封面图片`,coverImageAlt:`项目封面图片`,coverImageUpload:`上传`,coverImageReplace:`替换`,coverImageRemove:`移除`,color:`颜色`,targetPlates:`目标板数`,targetPlatesPlaceholder:`例如:25`,targetPlatesHelp:`打印任务数量`,targetParts:`目标零件数`,targetPartsPlaceholder:`例如:150`,targetPartsHelp:`所需零件总数`,targetSets:`每个文件的份数`,targetSetsPlaceholder:`例如 10`,targetSetsHelp:`每个可打印文件需要打印的次数`,tagsLabel:`标签(逗号分隔)`,tagsPlaceholder:`例如:voron、功能件、礼物`,dueDate:`截止日期`,priority:`优先级`,priorityLow:`低`,priorityNormal:`普通`,priorityHigh:`高`,priorityUrgent:`紧急`,statusActive:`进行中`,statusCompleted:`已完成`,statusArchived:`已归档`,done:`完成`,completed:`已完成`,failed:`失败`,inQueue:`队列中`,noPrintsYet:`暂无打印`,printJobs:`打印任务(板)`,partsPrinted:`已打印零件`,failedParts:`失败零件`,import:`导入`,export:`导出`,importProject:`导入项目`,exportAll:`导出所有项目`,loading:`加载项目中...`,noEditPermission:`您没有编辑项目的权限`,noDeletePermission:`您没有删除项目的权限`,noCreatePermission:`您没有创建项目的权限`,noImportPermission:`您没有导入项目的权限`,noExportPermission:`您没有导出项目的权限`,toast:{created:`项目已创建`,updated:`项目已更新`,deleted:`项目已删除`,imported:`项目已导入`,multipleImported:`已导入 {{count}} 个项目`,importFailed:`导入失败`,exported:`项目已导出(仅元数据)`}},projectDetail:{notFound:`未找到项目`,backToProjects:`返回项目`,export:`导出`,exportProject:`导出项目`,noExportPermission:`您没有导出项目的权限`,noEditPermission:`您没有编辑项目的权限`,partOf:`属于:`,priorityLabel:`优先级:`,noPrints:`此项目暂无打印`,status:{active:`进行中`,completed:`已完成`,archived:`已归档`},priority:{low:`低`,normal:`普通`,high:`高`,urgent:`紧急`},dueDate:{overdue:`已逾期`,today:`今天到期`,daysLeft:`还有 {{count}} 天`},progress:{platesProgress:`板进度`,partsProgress:`零件进度`,setsProgress:`完整套数`,sets:`套`,setsHint:`当每个可打印文件都达到此次数时,即完成一套`,printJobs:`打印任务`,parts:`零件`,percentComplete:`{{percent}}% 完成`,remaining:`剩余 {{count}} 个`},stats:{printJobs:`打印任务`,total:`总计`,failed:`{{count}} 个失败`,partsPrinted:`已打印 {{count}} 个零件`,printTime:`打印时间`,filamentUsed:`耗材用量`},cost:{title:`成本追踪`,filamentCost:`耗材成本`,energy:`能源`,totalCost:`总成本`,total:`总计`,includesBom:`含物料清单`,budget:`预算`,remaining:`剩余`},subProjects:{title:`子项目 ({{count}})`},notes:{title:`备注`,noEditPermission:`您没有编辑备注的权限`,placeholder:`添加关于此项目的备注...`,empty:`暂无备注。点击编辑添加备注。`},files:{title:`文件`,linkFolders:`从文件管理器链接文件夹`,forQuickAccess:`到此项目以便快速访问。`,fileCount:`{{count}} 个文件`,empty:`未链接文件夹。前往文件管理器将文件夹链接到此项目。`,printedCount:`已打印 {{count}} 次`,progressTooltip:`已完成 {{done}}/{{target}} 次打印`,noFiles:`此文件夹中没有文件。`},bom:{title:`材料清单`,acquired:`已获取 {{completed}}/{{total}}`,showAll:`显示全部`,hideDone:`隐藏已完成`,addPart:`添加零件`,noAddPermission:`您没有添加零件的权限`,partNamePlaceholder:`零件名称(例如:M3x8 螺丝)`,partName:`零件名称`,qty:`数量`,price:`价格 ({{currency}})`,sourcingUrlPlaceholder:`采购链接(可选)`,remarksPlaceholder:`备注(可选)`,deletePart:`删除零件`,deleteConfirm:`确定要删除"{{name}}"吗?`,noUpdatePermission:`您没有更新零件的权限`,noEditPermission:`您没有编辑零件的权限`,noDeletePermission:`您没有删除零件的权限`,totalCost:`总成本:`,empty:`材料清单中没有零件。添加硬件、电子元件或其他组件以跟踪需要采购的物品。`},timeline:{title:`活动时间线`,empty:`暂无活动。`},template:{saveAsTemplate:`保存为模板`,noCreatePermission:`您没有创建模板的权限`},queue:{title:`队列`,viewAll:`查看全部`,printing:`{{count}} 个打印中`,queued:`{{count}} 个排队中`},prints:{title:`打印 ({{count}})`},toast:{projectUpdated:`项目已更新`,partAdded:`零件已添加`,partRemoved:`零件已移除`,exportFailed:`导出失败`,projectExported:`项目已导出`,templateCreated:`模板已创建`}},system:{title:`系统信息`,version:`版本`,uptime:`运行时间`,cpuUsage:`CPU 使用率`,memoryUsage:`内存使用率`,diskUsage:`磁盘使用率`,networkInfo:`网络信息`,logs:`日志`,debugMode:`调试模式`,enableDebug:`启用调试日志`,disableDebug:`禁用调试日志`,downloadLogs:`下载日志`,clearLogs:`清除日志`,dockerInfo:`Docker 信息`,containerName:`容器名称`,imageName:`镜像名称`,platform:`平台`,architecture:`架构`},sponsors:{sectionTitle:`独立运营·社区支持`,tagline:`Bambuddy 完全免费,并将持续免费——这要感谢主动支持的用户。没有风投,也没有云端绑定。`,viewSupporters:`查看支持者`,toastPrints:`你已经用 Bambuddy 完成了 {{count}} 次打印。Bambuddy 之所以免费,离不开支持者。`,toastCost:`你已经用 Bambuddy 追踪了 {{total}} 的耗材。看看是谁让项目保持独立。`,toastArchives:`用 Bambuddy 归档了 {{count}} 次打印。看看是谁让它保持独立。`,toastAnniversary:`与 Bambuddy 相伴一年了!看看是谁让项目保持独立。`,toastVersionUpdate:`已更新至 v{{version}}。Bambuddy 之所以免费,离不开支持者。`,toastBusiness:`您正在 {{count}} 台打印机上运行 Bambuddy?我们为团队提供支持方案:优先修复、开具发票,以及与维护者的直接沟通渠道。`,businessCta:`Bambuddy 商业版`,businessTitle:`Bambuddy 商业版`,businessTagline:`您正在管理 {{count}} 台打印机。我们为团队和打印农场提供优先支持、商业授权和发票开具。`},library:{title:`耗材库`,addFilament:`添加耗材`,editFilament:`编辑耗材`,deleteFilament:`删除耗材`,vendor:`厂商`,material:`材料`,color:`颜色`,kFactor:`K 值`,temperature:`温度`,noFilaments:`耗材库中没有耗材`,deleteConfirm:`确定要删除此耗材吗?`,importFromPrinter:`从打印机导入`,exportToFile:`导出到文件`,runWithPipeline:{actionLabel:`用流水线运行`,noPermission:`您没有运行流水线的权限`,modalTitle:`用流水线运行`,confirmTitle:`确认运行`,confirmIntro:`预检发现此次运行存在问题`,sourceHint:`来源`,pipelineHint:`流水线`,targetHint:`目标`,pipelineListAria:`可用流水线`,runAnyway:`仍然运行`,loading:`加载中…`,empty:`尚未保存流水线。请打开切片对话框并点击"另存为流水线"创建一个。`,noTarget:`未设置目标打印机`,noTargetMessage:`此流水线没有目标打印机。请在设置中打开并选择一个。`,copies:`副本数`,copiesHint:`最多 {{n}}`,classTarget:`任意 {{model}}`,toast:{started:`流水线运行已开始`,failed:`无法启动运行`},issue:{printerNotSet:`此流水线未设置目标打印机。`,printerNotFound:`目标打印机已不存在。`,printerDisabled:`目标打印机已禁用。`,printerOffline:`目标打印机已离线。`,filamentType:`耗材槽 {{slot}}:期望 {{expected}},AMS 实际 {{actual}}`,filamentColor:`耗材槽 {{slot}}:颜色不同(期望 {{expected}},AMS 实际 {{actual}})`,amsSlotMissing:`此打印机上没有 AMS 槽 {{slot}}`,filamentUnverified:`耗材槽 {{slot}} 来自云端 / 标准预设,无法静态验证。`,noClassMatches:`此安装中没有匹配该流水线目标型号类别({{expected}})的打印机。`,classNotSet:`流水线目标设置为打印机类别但未选择型号。`}}},slice:{title:`切片模型`,action:`切片`,actionAll:`切片全部 {{count}} 个盘面`,actionAllTitle:`将所有盘面切片为单个多盘面输出(一个归档)。耗材选择覆盖项目定义的每个槽位。`,allPlatesToggle:`切片全部 {{count}} 个盘面`,slicing:`切片中…`,printer:`打印机配置`,process:`工艺配置`,filament:`耗材配置`,filamentSlot:`耗材 {{index}}({{type}})`,selectPreset:`— 选择预设 —`,loadingPresets:`加载预设中…`,analyzingPlateFilaments:`分析打印板耗材中…`,analyzingPlateFilamentsHint:`正在运行预览切片以发现此打印板使用的 AMS 插槽。之后会缓存 — 重新打开是即时的。`,previewToast:`分析 {{name}} — {{elapsed}}`,previewWithProgress:`分析 {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,notUsedByPlate:`— 此打印板未使用`,noPresetsForSlot:`无可用预设`,otherPrinters:`其他打印机`,presetsLoadFailed:`加载预设失败。请先打开设置 → 配置文件以导入。`,refreshPresets:`刷新`,refreshPresetsTitle:`刷新预设 — 获取最新的云端和打包配置列表(在 Bambu Studio 或 Bambu Handy 中删除预设后使用)`,allPresetsRequired:`必须选择所有预设`,useEmbedded:`使用文件的内置设置`,useEmbeddedHint:`按设计者的设置(壁、填充、耗材)切片,而非上方的配置文件。因您的打印机与文件匹配而可用。`,designSettings:`保留设计者的设置`,designSettingsHint:`此文件相对标准配置修改了 {{count}} 项打印设置。`,designSettingsSelected:`已选择 {{selected}} / {{total}}`,designSettingsPrinterCoupled:`与打印机相关`,designSettingsPrinterCoupledHint:`该值是为此文件面向的打印机调校的,在你的打印机上可能不正确或超出范围。`,enqueuing:`提交切片任务中…`,queued:`已排队…`,failed:`切片失败。请检查切片器 sidecar 日志。`,startedToast:`在后台切片 {{name}}…`,queuedToast:`已排队:{{name}} — {{elapsed}}`,runningToast:`切片 {{name}} — {{elapsed}}`,runningWithProgress:`{{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,runningWithProgressMultiPlate:`盘面 {{plateIndex}} / {{plateCount}} • {{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,completedToast:`已切片 {{name}}`,failedTitle:`切片失败`,failedToast:`切片 {{name}} 失败:{{detail}}`,tier:{local:`已导入`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`标准`},cloud:{notAuthenticated:`登录 Bambu Cloud(设置 → 配置文件 → Bambu Cloud)以查看云端预设。`,expired:`Bambu Cloud 会话已过期 — 请重新登录以刷新云端预设。`,unreachable:`目前无法访问 Bambu Cloud。本地和标准预设仍可使用。`},orcaCloud:{notAuthenticated:`登录 Orca Cloud(配置文件 → Orca Cloud)以查看您的 Orca 预设。`,expired:`Orca Cloud 会话已过期 — 请重新登录以刷新您的 Orca 预设。`,unreachable:`Orca Cloud 当前无法访问。其他预设仍可正常使用。`},bedType:{label:`打印板`,auto:`自动(使用工艺预设)`,coolPlate:`冷板`,coolPlateSuperTack:`Cool Plate SuperTack`,engineering:`Engineering Plate`,highTemp:`High Temp Plate`,texturedPEI:`Textured PEI Plate`,smoothPEI:`Smooth PEI Plate`},pipelines:{label:`流水线`,applyAria:`应用流水线`,applyPrompt:`应用流水线…`,empty:`无已保存流水线`,saveButton:`另存为流水线`,saveTitle:`将当前四个槽位的选择保存为可复用流水线`,namePlaceholder:`流水线名称`,nameAria:`新流水线名称`,toast:{applied:`已应用 "{{name}}"`,saved:`流水线已保存`,saveFailed:`保存失败`}}},spoolman:{title:`Spoolman 集成`,enabled:`Spoolman 已启用`,url:`Spoolman URL`,connected:`已连接`,disconnected:`未连接`,testConnection:`测试连接`,sync:`同步`,syncing:`同步中...`,lastSync:`上次同步`,linkToSpoolman:`链接到 Spoolman`,openInSpoolman:`在 Spoolman 中打开`,unlinkSpool:`取消链接耗材`,unlinkConfirmTitle:`取消分配料盘?`,unlinkConfirmMessage:`这将从此插槽中移除料盘。料盘本身的数据将保持不变。`,selectSpool:`选择耗材`,noUnlinkedSpools:`无未分配的料盘`,linkSuccess:`料盘分配成功`,linkFailed:`料盘分配失败`,unlinkSuccess:`料盘取消分配成功`,unlinkFailed:`料盘取消分配失败`,linkedSpool:`已分配料盘`,spoolId:`耗材 ID`,fillSourceLabel:`(Spoolman)`,weight:`重量`,remaining:`剩余`,disableWeightSync:`禁用 AMS 估计重量同步`,disableWeightSyncDesc:`不从 AMS 估计值更新剩余容量。如果您更喜欢 Spoolman 的用量追踪而非 AMS 百分比估计,请使用此选项。新耗材仍将使用 AMS 估计值作为初始重量。`,reportPartialUsage:`报告失败打印的部分用量`,reportPartialUsageDesc:`当打印失败或被取消时,根据层进度报告估计的耗材使用量。`},locations:{title:`存储位置`,subtitle:`管理货架、抽屉等线轴物理存放位置`,add:`添加位置`,addShort:`添加`,edit:`编辑位置`,name:`名称`,spools:`线轴`,empty:`尚无存储位置。创建第一个货架或抽屉。`,manage:`位置`,createPlaceholder:`例如:A 架、抽屉 1`,nameRequired:`位置名称为必填项`,created:`位置已创建`,updated:`位置已更新`,deleted:`位置已删除`,saveFailed:`保存位置失败`,deleteFailed:`删除位置失败`,deleteBlocked:`删除前请移走此位置上的所有线轴`,confirmDelete:`删除「{{name}}」?`,confirmDeleteMessage:`此位置将从目录中移除。请先移走线轴。`},inventory:{title:`耗材库存`,subtitle:`管理您的料盘`,addToInventory:`添加到库存`,addToInventoryPending:`正在添加...`,addToInventorySuccess:`料盘已添加到库存`,addToInventoryFailed:`添加料盘到库存失败`,unknownSpoolTitle:`检测到新耗材`,unknownSpoolMessage:`在 {{location}} 检测到带有未知 RFID 标签的料盘。是否立即添加到库存?`,unknownSpoolSlot:`槽位`,bulk:{selectAllVisible:`选择所有可见项`,selectRow:`选择行`,selectGroup:`选择组`,selectionCount:`已选 {{count}} 个`,edit:`编辑`,printLabels:`打印标签`,resetUsage:`重置使用量`,restore:`恢复`,archive:`归档`,delete:`删除`,clearSelection:`清除选择`,editTitle:`批量编辑料盘`,editSubtitle:`将应用于选中的 {{count}} 个料盘。仅更新勾选的字段。`,editHint:`在字段中输入即可标记为更新 — 仅发送已勾选的行。留空字段不会更改料盘(清空字段仅能在单个料盘中操作)。`,useCustom:`使用 "{{value}}"`,toggleField:`切换此字段的更新`,changeCount:`将更新 {{count}} 个字段。`,applyPending:`应用中...`,applyButton:`应用于 {{count}} 个料盘`,deleteTitle:`删除选中的料盘`,archiveTitle:`归档选中的料盘`,restoreTitle:`恢复选中的料盘`,resetUsageTitle:`重置选中料盘的使用量`,deleteMessage:`永久删除 {{count}} 个料盘?此操作无法撤销。`,archiveMessage:`归档 {{count}} 个料盘?以后可以恢复。`,restoreMessage:`恢复 {{count}} 个已归档的料盘?`,resetUsageMessage:`将 {{count}} 个料盘的"总消耗"计数器重置?剩余重量将被保留。`,updateSuccess:`已更新 {{count}} 个料盘`,updateFailed:`批量更新失败`,updatePartial:`已更新 {{ok}} 个,{{failed}} 个失败`,updateAllFailed:`{{count}} 个料盘更新全部失败 — 已保留选择以便重试`,deleteSuccess:`已删除 {{count}} 个料盘`,deleteFailed:`批量删除失败`,deletePartial:`已删除 {{ok}} 个,{{failed}} 个失败`,deleteAllFailed:`{{count}} 个料盘删除全部失败 — 已保留选择以便重试`,archiveSuccess:`已归档 {{count}} 个料盘`,archiveFailed:`批量归档失败`,archivePartial:`已归档 {{ok}} 个,{{failed}} 个失败`,archiveAllFailed:`{{count}} 个料盘归档全部失败 — 已保留选择以便重试`,restoreSuccess:`已恢复 {{count}} 个料盘`,restoreFailed:`批量恢复失败`,restorePartial:`已恢复 {{ok}} 个,{{failed}} 个失败`,restoreAllFailed:`{{count}} 个料盘恢复全部失败 — 已保留选择以便重试`,invalidHex:`请输入 6 位十六进制字符 (RRGGBB) 或 8 位 (RRGGBBAA),否则该字段不会应用。`},spoolmanMixedContentTitle:`Spoolman 无法通过 HTTPS 加载 — 浏览器已阻止混合内容`,spoolmanMixedContentBody:`Bambuddy 通过您的反向代理以 HTTPS 提供服务,但您的 Spoolman 地址仍为 HTTP。出于安全考虑,浏览器会阻止混合内容,因此嵌入式 Spoolman 界面无法加载。Spoolman 也必须通过 HTTPS 访问。`,spoolmanMixedContentFixReverseProxy:`请将 Spoolman 置于与 Bambuddy 相同的反向代理(Traefik / Nginx / Caddy)之后并启用 HTTPS,然后在设置中将 Spoolman URL 更新为新的 HTTPS 地址。`,spoolmanMixedContentFixOpenNewTab:`作为变通方案,可在新标签页中通过 HTTP 打开 Spoolman — 混合内容规则仅适用于嵌入式框架,独立标签页仍可正常使用。`,spoolmanOpenInNewTab:`在新标签页中打开 Spoolman`,labels:{title:`打印线材标签`,selectedCount:`已选 {{count}} 项`,pickSpools:`选择要打印标签的线材:`,monochrome:`单色(黑白打印机)`,monochromeHint:`移除颜色色块并加宽文本`,searchPlaceholder:`按名称、品牌或 #ID 搜索`,filterByMaterial:`材料:`,allMaterials:`全部`,selectVisible:`选择所有可见 ({{count}})`,deselectVisible:`取消选择可见`,clearAll:`全部清除`,noSpoolsToShow:`没有要显示的线材。请调整筛选条件后重试。`,noMatches:`没有线材符合当前搜索或筛选。`,printOne:`打印此线材的标签`,printLabels:`打印标签…`,bulkTitle:`从当前显示的 {{count}} 个线材中选择要打印标签的`,noSpoolsTitle:`没有要打标签的线材`,error:`无法生成标签:{{msg}}`,sortBy:{label:`排序:`,id:`按 ID`,color:`按颜色`},templates:{amsHolderSmall:{label:`AMS 支架 — 小 (74 × 33 mm)`,hint:`每页一个标签;适配 MakerWorld 模型 752566 (AMS 耗材标签支架) 中可打印的标签。`},amsHolderLarge:{label:`AMS 支架 — 大 (75 × 55 mm)`,hint:`每页一个标签;适配 AMS 耗材标签支架的卡片插入款。空间充足,可放置色板、品牌、材料、ID 与二维码。`},box40x30:{label:`盒标签 (40 × 30 mm)`,hint:`每页一张;常见的 DK/Brother 卷尺寸,适合给耗材袋和储物盒贴标签。`},box:{label:`Box label (62 × 29 mm)`,hint:`每页一个标签;适配 Brother PT/QL 和 Dymo 小标签。`},averyL7160:{label:`Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)`,hint:`欧洲规格纸张;每张 A4 页 21 个标签。`},avery5160:{label:`Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)`,hint:`美国规格纸张;每张 Letter 页 30 个标签。`}}},csv:{importButton:`导入 CSV`,exportButton:`导出 CSV`,modalTitle:`从 CSV 导入耗材`,selectFile:`选择 CSV 文件或拖放到此处`,dragHint:`表头:material(必填)、brand、subtype、color_name、rgba、…`,parsing:`正在读取文件…`,previewError:`无法读取 CSV 文件`,validCount:`{{count}} 个有效`,errorCount:`{{count}} 个错误`,skippedCount:`{{count}} 个跳过`,colRow:`行`,colStatus:`状态`,colColor:`颜色`,colorResolved:`已从目录填充颜色`,colorCrossMaterial:`颜色取自其他材料 — 目录中无精确匹配`,duplicateExisting:`已存在具有此材料、品牌和颜色的料卷 — 仍会作为新料卷导入`,spoolmanHint:`在 Spoolman 模式下,请使用 Spoolman 内置的 CSV 导入/导出。`,importValidRows:`导入 {{count}} 个有效行`,noValidRows:`没有有效行`,importing:`正在导入…`,importSuccess:`已导入 {{count}} 个耗材`,importError:`导入失败`,exportError:`导出失败`},addSpool:`添加耗材`,editSpool:`编辑耗材`,copySpool:`复制耗材`,material:`材料`,selectMaterial:`选择材料...`,subtype:`子类型`,brand:`品牌`,searchBrand:`搜索品牌...`,useCustomBrand:`使用"{{brand}}"`,useCustomMaterial:`使用自定义材料:{{material}}`,suggestedOptions:`推荐`,allOptions:`全部`,colorName:`颜色名称`,colorNamePlaceholder:`翡翠白、烈焰红...`,color:`颜色`,hexColor:`十六进制颜色`,pickColor:`选择自定义颜色`,labelWeight:`标签重量`,coreWeight:`空盘重量`,searchSpoolWeight:`搜索耗材重量...`,weightUsed:`已使用`,currentWeight:`剩余重量`,measuredWeight:`称量重量`,spoolName:`线轴`,costPerKg:`每公斤成本`,storageLocation:`存放位置`,storageLocationPlaceholder:`例如:货架A,抽屉1`,openInInventory:`在库存中查看`,measuredWeightError:`称量重量必须在 {{min}}g 到 {{max}}g 之间。`,slicerFilament:`切片耗材`,slicerFilamentName:`切片预设名称`,slicerPreset:`切片预设`,searchPresets:`搜索耗材预设...`,selectedPreset:`已选择`,noPresetsFound:`未找到预设`,tempOverrides:`温度覆盖`,note:`备注`,notePlaceholder:`关于此耗材的任何备注...`,category:`类别`,categoryPlaceholder:`例如:生产、原型、客户A`,categoryNone:`未分类`,storageLocationNone:`未设置位置`,lowStockThresholdOverride:`低库存阈值(此料盘)`,lowStockThresholdOverrideHelp:`留空以使用全局阈值({{global}}%)。`,clearRfid:`清除 RFID 标签`,rfidCleared:`RFID 标签已清除`,archive:`归档`,restore:`恢复`,noSpools:`暂无耗材。添加您的第一个耗材开始使用。`,noAvailableSpools:`没有可用的耗材。请先向库存中添加耗材,或从其他槽位取消分配一个耗材。`,kProfiles:`K 值配置`,addKProfile:`添加 K 值配置`,assignSpool:`分配耗材`,unassignSpool:`取消分配`,assignSuccess:`耗材已分配,AMS 槽位已配置`,assignPendingInsert:`已分配。插入耗材后将配置槽位。`,assignFailed:`分配耗材失败`,assignMismatchTitle:`材料不匹配`,assignMismatchMessage:`所选线轴材料 "{{spoolMaterial}}" 与 {{location}} 的料槽材料 "{{trayMaterial}}" 不匹配。仍要分配吗?`,assignMismatchConfirm:`仍然分配`,assignPartialMismatchMessage:`线轴材料 "{{spoolMaterial}}" 与 {{location}} 的 "{{trayMaterial}}" 相近但不完全一致。是否继续?`,assignProfileMismatchMessage:`线轴配置 "{{spoolProfile}}" 与 {{location}} 的料槽配置 "{{trayProfile}}" 不一致。是否继续?`,assignReconfigureNote:`AMS 槽位将重新配置为使用线轴的配置。`,selectSpool:`选择要分配到此槽位的耗材`,assigned:`已分配`,assigning:`分配中...`,searchSpools:`搜索耗材...`,showAllSpools:`显示所有耗材`,spoolmanSpools:`Spoolman 线轴`,allMaterials:`所有材料`,filterByBrand:`按品牌筛选...`,showArchived:`显示已归档`,quickAdd:`快速添加(库存)`,quantity:`数量`,stock:`库存`,configured:`已配置`,spoolsCreated:`已创建 {{count}} 个耗材`,spoolsPartiallyCreated:`已创建 {{created}} / {{total}} 个耗材(部分失败)`,spoolCreated:`耗材已创建`,spoolUpdated:`耗材已更新`,spoolDeleted:`耗材已删除`,deepLinkSpoolNotFound:`未找到耗材`,deepLinkFetchFailed:`无法加载耗材 — 请重试`,spoolArchived:`耗材已归档`,spoolRestored:`耗材已恢复`,kProfileSaveFailed:`K值配置文件设置无法保存`,syncWeightSpoolNotFound:`未找到耗材 — 可能已被删除`,syncWeightSpoolmanUnreachable:`Spoolman 无法访问 — 请稍后再试`,syncWeightFailed:`重量同步失败`,spoolmanUnreachable:`Spoolman 无法访问 — 请稍后再试`,deleteSpoolNotFound:`未找到耗材 — 可能已被删除`,deleteFailed:`删除耗材失败`,archiveSpoolNotFound:`未找到耗材 — 可能已被删除`,archiveFailed:`归档耗材失败`,restoreSpoolNotFound:`未找到耗材 — 可能已被删除`,restoreFailed:`恢复耗材失败`,saveFailed:`保存更改失败`,tagClearFailed:`清除标签失败`,deleteConfirm:`确定要删除此耗材吗?此操作无法撤销。`,archiveConfirm:`确定要归档此耗材吗?`,advancedSettings:`高级设置`,filamentInfoTab:`耗材信息`,paProfileTab:`PA 配置`,filamentInfo:`耗材`,additional:`附加`,loadingPresets:`加载云端预设中...`,cloudConnected:`云端已连接`,cloudNotConnected:`云端未连接(使用默认值)`,recentColors:`最近`,searchColors:`搜索颜色...`,searchResults:`搜索结果`,allColors:`所有颜色`,commonColors:`常用颜色`,showLess:`显示更少`,showAll:`显示全部`,noColorsFound:`没有颜色匹配您的搜索`,noResults:`未找到匹配项`,extraColorsLabel:`附加颜色`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`粘贴 2 到 8 个十六进制色值,以逗号分隔。将渲染为渐变。`,extraColorsInvalid:`已忽略无效的十六进制值:{{tokens}}`,colorEffectLabel:`效果`,colorEffect:{none:`无`,sparkle:`闪光`,wood:`木纹`,marble:`大理石`,glow:`夜光`,matte:`哑光`,silk:`丝光`,galaxy:`星空`,rainbow:`彩虹`,metal:`金属`,translucent:`半透明`,gradient:`渐变`,dualColor:`双色`,triColor:`三色`,multicolor:`多色`},selectMaterialFirst:`请先在耗材信息选项卡中选择材料。`,noPrintersConfigured:`未配置打印机。添加打印机以使用 PA 配置。`,matchingFilter:`匹配`,anyBrand:`任何品牌`,anyVariant:`任何变体`,autoSelect:`自动选择`,matches:`匹配`,match:`匹配`,noMatches:`无匹配`,connected:`已连接`,offline:`离线`,printerOffline:`打印机离线。连接后查看校准配置。`,noKProfilesMatch:`没有 K 值配置匹配所选耗材。`,leftNozzle:`左喷嘴`,rightNozzle:`右喷嘴`,profilesSelected:`个校准配置已选择`,totalInventory:`总库存`,totalConsumed:`总消耗`,byMaterial:`按材料`,inPrinter:`在打印机中`,lowStock:`库存不足`,sinceTracking:`自开始追踪`,resetConsumedCounter:`重置计数器`,resetConsumedCounterTooltip:`将此料盘的已消耗克数计数器清零。剩余重量保持不变。`,resetConsumedCounterConfirm:`将此料盘的已消耗克数计数器重置为 0?后续打印将从零开始计数。料盘本身、剩余重量计算和您的设置不会改变。`,resetAllConsumedCounters:`重置所有计数器`,resetAllConsumedCountersTooltip:`将每个料盘的已消耗克数计数器清零。剩余重量保持不变。`,resetAllConsumedCountersConfirm:`将全部 {{count}} 个料盘(含已归档)的已消耗克数计数器重置为 0?这将清空"累计消耗"统计值,后续打印从零开始计数。料盘和剩余重量不会改变。`,consumedCounterReset:`计数器已重置`,allConsumedCountersReset:`已重置 {{count}} 个料盘的计数器`,resetConsumedCounterFailed:`重置计数器失败`,loadedInAms:`已装载到 AMS/外置`,remaining:`剩余`,weightCheck:`重量检查`,lastWeighed:`上次称量`,neverWeighed:`从未称量`,search:`搜索耗材...`,showing:`显示`,to:`到`,of:`共`,show:`显示`,spools:`个耗材`,spool:`个耗材`,page:`页`,noSpoolsMatch:`未找到结果`,noSpoolsMatchDesc:`尝试调整您的搜索或筛选条件。`,active:`活跃`,archived:`已归档`,all:`全部`,used:`已使用`,new:`新的`,clearFilters:`清除筛选`,table:`表格`,cards:`卡片`,net:`净重`,groupSimilar:`分组`,groupedSpools:`{{count}} 个相同耗材`,groupedRows:`行`,columns:`列`,configureColumns:`配置列`,configureColumnsDesc:`拖动以重新排序列或使用箭头。使用眼睛图标切换可见性。`,visible:`可见`,reset:`重置`,cancel:`取消`,applyChanges:`应用更改`,moveUp:`上移`,moveDown:`下移`,hideColumn:`隐藏列`,showColumn:`显示列`,linkToSpool:`链接到耗材`,tagLinked:`标签已链接到耗材`,tagLinkFailed:`链接标签失败`,tagAlreadyLinked:`标签已链接到其他耗材`,unknownTag:`检测到未知 RFID 标签`,usageHistory:`使用历史`,noUsageHistory:`暂无使用记录`,printName:`打印名称`,weightConsumed:`消耗重量`,clearHistory:`清除`,historyCleared:`使用历史已清除`,fillSourceLabel:`(库存)`,lowStockThresholdError:`阈值必须在 0.1 到 99.9 之间`,spoolmanFilamentCatalog:`Spoolman 耗材目录`,pickFromSpoolmanCatalog:`从 Spoolman 目录选择…`,spoolmanFilamentSelected:`已从 Spoolman 目录选择耗材`,spoolmanFilamentUnlinked:`已解除耗材目录关联`,noSpoolmanFilaments:`Spoolman 目录中未找到耗材`,spoolmanFilamentColorSwatch:`耗材颜色`,spoolWeightManagedBySpoolman:`空线轴重量在 Spoolman 中按耗材类型管理`,spoolmanCatalogLoadFailed:`无法加载 Spoolman 耗材目录`},timelapse:{title:`延时摄影`,create:`创建延时摄影`,download:`下载`,delete:`删除`,preview:`预览`,frameRate:`帧率`,quality:`质量`,processing:`处理中...`,noTimelapses:`无可用延时摄影`},ams:{title:`AMS`,slot:`槽位`,empty:`空`,emptySlot:`空槽位`,slotEmpty:`空`,slotUnconfigured:`?`,emptySlotReset:`未分配料盘`,unknown:`未知`,humidity:`湿度`,temperature:`温度`,filamentType:`耗材类型`,filamentColor:`颜色`,remaining:`剩余`,history:`AMS 历史`,noHistory:`无可用历史`,configureSlot:`配置槽位`,externalSpool:`外置耗材`,profile:`配置`,kFactor:`K 值`,fill:`填充`,configure:`配置`,used:`已使用`,remainingUnit:`剩余`},printModal:{selectPrinter:`选择打印机`,selectPlate:`选择板`,filamentMapping:`耗材映射`,plateN:`板 {{n}}`,plateFilamentsUnreadable:`无法读取所选盘的耗材信息,因此无法进行映射。取消选择该盘即可将其余盘加入队列。`,totalCost:`总成本:`,slotRemainingShort:` - 剩余 {{grams}}g`,printSettings:`打印设置`,bedLeveling:`热床调平`,flowCalibration:`流量校准`,vibrationCalibration:`振动校准`,layerInspection:`首层检查`,timelapse:`延时摄影`,cancel:`取消`,noPrintersAvailable:`无可用打印机`,printerBusy:`打印机忙碌`,printerOffline:`打印机离线`,sameTypeDifferentColor:`相同类型,不同颜色`,filamentTypeNotLoaded:`耗材类型未装载`,whenToPrint:`何时打印`,asap:`尽快`,queue:`队列`,schedule:`计划`,dateTime:`日期和时间`,invalidDateTime:`请输入有效的日期和时间`,openCalendar:`打开日历`,requireManualStart:`要求手动开始`,requirePreviousSuccess:`仅在上一次打印成功后开始`,autoOffAfter:`完成后关闭打印机`,helpAsap:`打印将添加到队列顶部,并在符合条件的打印机空闲后立即开始。`,helpSchedule:`如果打印机空闲,打印将在计划时间开始。如果打印机忙碌,则会等待其可用。`,helpQueue:`打印将添加到队列末尾。`,leftNozzle:`左`,rightNozzle:`右`,leftNozzleTooltip:`左喷嘴`,rightNozzleTooltip:`右喷嘴`,filamentOverride:`耗材覆盖`,filamentOverrideHint:`可选覆盖用于基于模型的耗材分配。调度器将使用您选择的耗材而不是原始 3MF 值进行匹配。`,originalFilament:`原始`,overrideWith:`覆盖为`,resetToOriginal:`恢复为原始`,insufficientFilamentTitle:`耗材不足`,waitingForAmsStatus:`正在等待 {{printer}} 的 AMS 状态…`,insufficientFilamentMessage:`部分已分配线轴的剩余耗材少于本次打印所需:`,insufficientFilamentLine:`{{printer}} - {{slot}}:需要 {{required}}g,剩余 {{remaining}}g`,printAnyway:`仍然打印`,forceColorMatch:`强制颜色匹配`,staggerPrinterStarts:`错峰启动打印机`,staggerGroupSize:`组大小`,staggerInterval:`间隔(分钟)`,staggerPreview:`{{printers}} 台打印机 → {{groups}} 个 {{size}} 台的组,每 {{interval}} 分钟启动一次`,staggerLastGroup:`最后一组:{{count}}`,staggerTotal:`共 {{minutes}} 分钟`,staggerToPrinters:`分批发送到 {{count}} 台打印机`,gcodeInjection:`注入自动打印G-code`},backup:{includesEncryptionKey:`本地备份包含 MFA 加密密钥文件(DATA_DIR/.mfa_encryption_key),因此备份 ZIP 是自包含的。请将 ZIP 视为敏感文件 — 任何拥有该文件的人都可以解密内部存储的 OIDC 客户端密钥和 TOTP 密钥。`,title:`备份与恢复`,createBackup:`创建备份`,restoreBackup:`恢复备份`,restoreDescription:`从备份文件替换所有数据`,downloadBackup:`下载备份`,uploadBackup:`上传备份`,lastBackup:`上次备份`,autoBackup:`自动备份`,backupNow:`立即备份`,restoreWarning:`警告:恢复备份将覆盖所有当前数据。`,includeArchives:`包含归档`,includeSettings:`包含设置`,includeProfiles:`包含配置文件`,backupSuccess:`备份创建成功`,restoreSuccess:`备份恢复成功`,backupFailed:`备份失败`,restoreFailed:`恢复失败`,restoreNote:`恢复期间虚拟打印机将停止`,githubBackup:`GitHub 备份`,enabled:`已启用`,cloudLoginRequired:`需要登录 Bambu Cloud。请在 配置文件 → 云配置文件 中登录以启用 GitHub 备份。`,cloudLoginRequiredShort:`需要Cloud登录`,githubDescription:`自动将您的配置文件同步到私有 GitHub 仓库以进行备份和版本历史记录。`,repoIsPrivate:`仓库为私有 — 可以安全备份。`,repoIsPublicWarning:`仓库为公开(PUBLIC)。Bambuddy 备份包含 MQTT 凭据、Home Assistant 令牌、Prometheus 令牌、您的 Bambu Cloud 邮箱以及通过 K-profile 暴露的打印机访问代码。在您于提供商设置中将仓库改为私有之前,保存将被阻止。`,repoVisibilityUnknown:`无法确定仓库的可见性。Bambuddy 拒绝向任何未确认为私有的目标进行备份;保存将被阻止。`,repositoryUrl:`仓库 URL`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`允许不安全的 HTTP`,allowInsecureHttpHint:`为无 TLS 的私有网络自托管实例启用`,personalAccessToken:`个人访问令牌`,tokenSaved:`(已保存)`,enterNewToken:`输入新令牌以更新`,tokenHint:`具有内容读写权限的细粒度令牌`,branch:`分支`,provider:`Git 提供商`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`仅手动`,hourly:`每小时`,daily:`每天`,weekly:`每周`,includeInBackup:`包含在备份中`,kProfiles:`K 配置文件`,kProfilesDescription:`来自已连接打印机的压力推进校准`,noPrintersConnected:`没有打印机连接`,printersConnected:`{{connected}}/{{total}} 已连接`,cloudProfiles:`云配置文件`,cloudProfilesDescription:`来自 Bambu Cloud 的耗材、打印机和工艺预设`,appSettings:`应用设置`,appSettingsDescription:`Bambuddy 配置(完整数据库)`,spoolInventory:`耗材库存`,spoolInventoryDescription:`耗材卷轴、使用记录和成本追踪`,printArchives:`打印档案`,printArchivesDescription:`打印历史元数据(不含 gcode/3MF 文件)`,lastBackupAt:`上次备份:`,noBackupsYet:`尚无备份`,next:`下次:`,startingBackup:`正在启动备份...`,test:`测试`,enableBackup:`启用备份`,testConnection:`测试连接`,enterRepoUrl:`请输入仓库 URL`,enterRepoAndToken:`请输入仓库 URL 和访问令牌`,repoRequired:`仓库 URL 为必填项`,tokenRequired:`访问令牌为必填项`,githubBackupEnabled:`GitHub 备份已启用`,tokenUpdated:`令牌已更新`,settingsSaved:`设置已保存`,failedToSave:`保存失败:{{message}}`,backupCompleteFiles:`备份完成 - {{count}} 个文件已更新`,backupSkippedNoChanges:`备份已跳过 - 无更改`,backupFailed2:`备份失败:{{message}}`,clearedLogs:`已清除 {{count}} 条日志`,failedToClearLogs:`清除日志失败:{{message}}`,history:`历史记录`,clear:`清除`,date:`日期`,status:`状态`,commit:`提交`,localBackup:`本地备份`,localBackupDescription:`创建 Bambuddy 数据的完整备份,包括数据库、档案、上传和所有文件。`,downloadBackupLabel:`下载备份`,completeBackupZip:`完整备份:数据库 + 所有文件(ZIP)`,download:`下载`,preparingBackup:`正在准备备份...`,creatingArchive:`正在创建备份归档...对于大型归档可能需要一些时间。`,downloadingFile:`正在下载备份文件...`,backupDownloaded:`备份下载成功`,failedToCreateBackup:`创建备份失败:{{message}}`,restore:`恢复`,restoreReplacesAll:`恢复将替换所有数据。`,restoreReplacesAllDetail:`您当前的数据库和文件将被完全替换。恢复后需要重启。`,restoreConfirmTitle:`恢复备份`,restoreConfirmMessage:`您确定要从"{{filename}}"恢复吗?这将完全替换您当前的数据库和所有文件。恢复后需要重启应用程序。`,restoreConfirmButton:`恢复备份`,uploadingFile:`正在上传备份文件...`,backupRestoredRestart:`备份已恢复。请重启 Bambuddy。`,failedToRestore:`恢复备份失败。请检查文件格式。`,reloadNow:`立即重新加载`,creatingBackup:`正在创建备份`,restoringBackup:`正在恢复备份`,preparing:`准备中...`,processing:`处理中...`,doNotClosePage:`请不要关闭此页面或导航离开。对于大型备份,此操作可能需要几分钟。`,restoring:`恢复中...`,restoreComplete:`恢复完成`,restoreFailed2:`恢复失败`,importSettings:`从备份文件导入设置`,pleaseWaitRestoring:`请等待数据恢复中`,selectBackupFile:`点击选择备份文件(.json 或 .zip)`,duplicateHandling:`重复项处理方式:`,matchPrinters:`打印机`,matchPrintersBy:`按序列号匹配`,matchSmartPlugs:`智能插座`,matchSmartPlugsBy:`按 IP 地址匹配`,matchNotificationProviders:`通知提供者`,matchNotificationProvidersBy:`按名称匹配`,matchFilaments:`耗材`,matchFilamentsBy:`按名称 + 类型 + 品牌匹配`,matchArchives:`档案`,matchArchivesBy:`按内容哈希匹配(始终跳过)`,matchPendingUploads:`待上传`,matchPendingUploadsBy:`按文件名匹配`,matchSettingsTemplates:`设置和模板`,matchSettingsTemplatesBy:`始终覆盖`,replaceExisting:`替换现有数据`,keepExisting:`保留现有数据`,overwriteDescription:`用备份数据覆盖已存在的项目`,keepDescription:`仅恢复尚不存在的项目`,overwriteCaution:`注意:`,overwriteWarning:`覆盖将用备份数据替换您当前的配置。出于安全考虑,打印机访问代码永远不会被覆盖。`,cancel:`取消`,processingBackup:`正在处理备份文件...`,itemsRestored:`已恢复项目`,itemsSkipped:`已跳过项目`,restored:`已恢复`,skippedAlreadyExist:`已跳过(已存在)`,filesCategory:`文件(3MF、缩略图等)`,andMore:`...还有 {{count}} 项`,newApiKeysGenerated:`已生成新的 API 密钥`,keysShownOnce:`这些密钥仅显示一次。请立即复制!`,copy:`复制`,noDataFound:`在备份文件中未找到可恢复的数据。`,close:`关闭`,scheduledBackup:`定时备份`,scheduledBackupDescription:`按计划自动创建备份快照。输出目录可以挂载到 NAS 或外部存储。`,frequency:`频率`,backupTime:`时间`,retention:`保留`,retentionDescription:`保留备份数量`,outputPath:`输出路径`,outputPathPlaceholder:`默认:{{path}}`,outputPathDescription:`留空以使用默认位置`,runNow:`立即运行`,backupFiles:`备份文件`,noScheduledBackups:`暂无备份`,deleteBackup:`删除`,deleteBackupConfirm:`删除此备份文件?`,backupRunning:`备份中...`,scheduledBackupComplete:`备份成功完成`,scheduledBackupFailed:`备份失败`,nextBackup:`下次备份`,backupSize:`大小`,localTimeHint:`本地时间 ({{tz}})`,defaultPathLabel:`默认:`,pathCheck:{title:`Bambuddy 无法写入该目录`,howToFix:`解决方法:`,sandboxed:`Bambuddy 服务无法写入 {{path}}。它的 systemd 单元以 ProtectSystem=strict 运行,因此除安装、数据和日志目录之外的所有目录对服务而言都是只读的,即使你自己的 shell 可以写入也一样。`,read_only:`{{path}} 位于只读文件系统上。`,permission_denied:`Bambuddy 无权写入 {{path}}。请检查该目录的属主和权限。`,no_space:`{{path}} 所在的文件系统已满。`,not_a_directory:`{{path}} 存在,但不是目录。`,missing:`{{path}} 不存在且无法创建。`,error:`Bambuddy 无法写入 {{path}}。`,ephemeralTitle:`这些备份在容器重建后会丢失`,container_ephemeral:`{{path}} 位于 Bambuddy 容器内部,而不是宿主机上。写入其中的备份会在容器重建时丢失。请从宿主机挂载该目录:`},categories:{settings:`设置`,notification_providers:`通知提供者`,notification_templates:`通知模板`,smart_plugs:`智能插座`,printers:`打印机`,filaments:`耗材`,maintenance_types:`维护类型`,archives:`档案`,projects:`项目`,pending_uploads:`待上传`,external_links:`外部链接`,api_keys:`API 密钥`}},tags:{title:`标签`,addTag:`添加标签`,editTag:`编辑标签`,deleteTag:`删除标签`,tagName:`标签名称`,tagColor:`标签颜色`,noTags:`无标签`,deleteConfirm:`确定要删除此标签吗?`,manageTags:`管理标签`},uploadModal:{title:`上传 3MF 文件`,dragDrop:`将 .3mf 文件拖放到此处`,or:`或`,browseFiles:`浏览文件`,extractionInfo:`将从 3MF 文件元数据中自动提取打印机型号。`,uploaded:`已上传`,failed:`失败`,uploading:`上传中...`,upload:`上传`,uploadFailed:`上传失败`},editArchive:{title:`编辑归档`,name:`名称`,namePlaceholder:`打印名称`,printer:`打印机`,noPrinter:`无打印机`,project:`项目`,noProject:`无项目`,itemsPrinted:`打印数量`,itemsPrintedHelp:`此打印任务中生产的物品数量`,notes:`备注`,notesPlaceholder:`添加关于此打印的备注...`,externalLink:`外部链接`,externalLinkPlaceholder:`https://printables.com/model/...`,externalLinkHelp:`链接到 Printables、Thingiverse 或其他来源`,tags:`标签`,tagsPlaceholder:`添加标签...`,addMoreTags:`添加更多标签...`,matchingTags:`匹配"{{query}}"`,existingTags:`现有标签`,clickToAdd:`(点击添加)`,status:`状态`,failureReason:`失败原因`,selectReason:`选择原因...`,photos:`打印成品照片`,photosHelp:`点击 + 添加打印成品照片`,printResult:`打印成品`,saving:`保存中...`,failureReasons:{adhesionFailure:`附着力失败`,spaghettiDetached:`拉丝 / 脱落`,layerShift:`层偏移`,cloggedNozzle:`喷嘴堵塞`,filamentRunout:`耗材用完`,warping:`翘曲`,stringing:`拉丝`,underExtrusion:`挤出不足`,powerFailure:`断电`,userCancelled:`用户取消`,other:`其他`},statuses:{completed:`已完成`,failed:`失败`,aborted:`已取消`,printing:`打印中`}},kProfiles:{title:`K 值配置`,noPrintersConfigured:`未配置打印机`,addPrinterInSettings:`在设置中添加打印机以管理 K 值配置`,noActivePrinters:`无活跃打印机`,enablePrinterConnection:`启用打印机连接以查看其 K 值配置`,loadingProfiles:`加载 K 值配置中...`,printerOffline:`打印机离线`,printerOfflineDesc:`所选打印机未连接。开启电源以查看 K 值配置。`,noMatchingProfiles:`无匹配的配置`,noMatchingProfilesDesc:`没有配置匹配您的搜索条件`,noKProfiles:`无 K 值配置`,noKProfilesDesc:`未找到 {{diameter}}mm 喷嘴的压力推进配置`,createFirstProfile:`创建第一个配置`,printer:`打印机`,nozzle:`喷嘴`,refresh:`刷新`,addProfile:`添加配置`,export:`导出`,import:`导入`,select:`选择`,selectAll:`全选`,delete:`删除`,searchPlaceholder:`按名称或耗材搜索...`,allExtruders:`所有挤出机`,leftOnly:`仅左侧`,rightOnly:`仅右侧`,allFlow:`所有流量`,hfOnly:`仅高流量`,sOnly:`仅标准`,sortName:`排序:名称`,sortKValue:`排序:K 值`,sortFilament:`排序:耗材`,leftExtruder:`左挤出机`,rightExtruder:`右挤出机`,modal:{addTitle:`添加 K 值配置`,editTitle:`编辑 K 值配置`,profileName:`配置名称`,profileNamePlaceholder:`我的 PLA 配置`,kValue:`K 值`,kValuePlaceholder:`0.020`,kValueHelp:`典型范围:PLA 0.01 - 0.06,PETG 0.02 - 0.10`,filament:`耗材`,selectFilament:`选择耗材...`,noFilamentsHelp:`未找到耗材。请先在 Bambu Studio 中创建 K 值配置。`,flowType:`流量类型`,highFlow:`高流量`,standard:`标准`,nozzleSize:`喷嘴尺寸`,extruder:`挤出机`,extruders:`挤出机`,left:`左`,right:`右`,notes:`备注(本地存储)`,notesPlaceholder:`添加关于此配置的备注...`,notesHelp:`备注保存在 Bambuddy 中,不在打印机上`,syncing:`与打印机同步中...`,savingExtruder:`保存到挤出机 {{current}}/{{total}}...`,pleaseWait:`请稍候`},deleteConfirm:{title:`删除配置`,cannotUndo:`此操作无法撤销`,message:`确定要从打印机删除"{{name}}"吗?`},bulkDelete:{title:`删除配置`,cannotUndo:`此操作无法撤销`,message:`确定要从打印机删除 {{count}} 个选中的配置吗?`},toast:{profileSaved:`K 值配置已保存`,profilesSaved:`K 值配置已保存到 {{count}} 个挤出机`,selectAtLeastOneExtruder:`请至少选择一个挤出机`,profileDeleted:`K 值配置已删除`,profilesDeleted:`已删除 {{count}} 个配置`,exportedProfiles:`已导出 {{count}} 个配置`,importedProfiles:`已导入 {{count}} / {{total}} 个配置`,noProfilesToExport:`无可导出的配置`,invalidFileFormat:`无效的文件格式`,failedToParseImport:`解析导入文件失败`,failedToSaveBatch:`批量保存 K 值配置失败`,noteSaved:`备注已保存`,failedToSaveNote:`保存备注失败`},permission:{noRead:`您没有刷新配置的权限`,noCreate:`您没有添加配置的权限`,noUpdate:`您没有更新 K 值配置的权限`,noDelete:`您没有删除 K 值配置的权限`,noExport:`您没有导出配置的权限`,noImport:`您没有导入配置的权限`}},virtualPrinter:{title:`虚拟打印机`,running:`运行中`,stopped:`已停止`,description:{default:`启用虚拟打印机,使其在 Bambu Studio 和 OrcaSlicer 中可见。发送到此打印机的文件将直接归档而不打印。`,proxy:`启用代理,将切片软件流量中继到真实打印机,允许在任何网络上远程打印。`},enable:{title:`启用虚拟打印机`,visibleInSlicer:`在切片软件发现中显示为"Bambuddy"`,proxyingTo:`代理到 {{name}}`,notActive:`未激活`},model:{title:`打印机型号`,description:`选择要模拟的打印机型号。`,restartWarning:`更改型号将重启虚拟打印机`},accessCode:{title:`访问码`,isSet:`访问码已设置`,notSet:`未设置访问码 - 需要设置才能启用`,placeholder:`输入 8 位字符代码`,placeholderChange:`输入新代码以更改`,hint:`必须恰好 8 个字符。切片软件使用此代码进行认证。`,charCount:`({{count}}/8)`,inheritedFromTarget:`继承自目标打印机`,derivedFromTargetHint:`使用目标打印机的访问码。桥接会将切片软件的认证转发到实际打印机,因此两个访问码必须匹配 — 如需更改,请在打印机设置中编辑访问码。`,reveal:`显示访问码`,hide:`隐藏访问码`},targetPrinter:{title:`目标打印机`,configured:`代理目标已配置`,notConfigured:`未选择目标打印机 - 代理模式需要设置`,placeholder:`选择打印机...`,hint:`选择要将切片软件流量代理到的打印机。打印机必须处于局域网模式。`,noPrinters:`未配置打印机。请先添加打印机以使用代理模式。`},remoteInterface:{title:`网络接口覆盖`,configured:`接口覆盖已激活`,optional:`可选 - 当自动检测的 IP 不正确时使用(例如多网卡、Docker、VPN)`,placeholder:`自动检测(默认)...`,hint:`覆盖通过 SSDP 广播并在 TLS 证书中使用的 IP 地址。在 Bambuddy 有多个网络接口时很有用。`},mode:{title:`模式`,archive:`归档`,archiveDesc:`立即归档文件`,review:`审核`,reviewDesc:`归档前审核`,queue:`队列`,queueDesc:`归档并添加到队列`,proxy:`代理`,proxyDesc:`中继到真实打印机`},autoDispatch:{title:`自动派发`,description:`添加到队列时自动开始打印。关闭后,打印任务等待手动派发。`},queueForceColorMatch:{title:`强制颜色匹配`,description:`拒绝派发到没有完全相同耗材类型和颜色的打印机。默认关闭 — 不启用时,队列仅按型号匹配,可能选到颜色错误的打印机。`},gcodeInjection:{title:`G-code 注入`,description:`将“设置”中按型号配置的 G-code 片段应用到此 VP 的作业。默认关闭。`},tailscaleDisabled:{title:`Tailscale 集成`,description:`启用以将此 VP 标记为通过 Tailscale 公开。显示主机的 Tailscale 地址,以便您知道要粘贴到切片器中的 IP。CA 导入步骤保持不变 — 此开关对证书无影响。`},setupRequired:{title:`需要设置`,description:`虚拟打印机功能需要额外的系统配置才能工作。包括端口转发、防火墙规则和平台特定设置。`,readGuide:`启用前请阅读设置指南`},archiveNameSource:{title:`存档名称来源`,description:`选择通过虚拟打印机接收文件时新存档的命名方式。"元数据"使用 3MF 中嵌入的切片标题(默认)。"文件名"使用 Bambu Studio 通过 FTP 发送的文件名。注意:当 3MF 包含标题字段时,Bambu Studio 会用该字段覆盖您在"发送到打印机"对话框中输入的名称,因此两种模式通常会产生相同的字符串。`,metadata:`元数据`,filename:`文件名`},caCert:{title:`切片软件证书`,description:`虚拟打印机使用由 Bambuddy CA 签发的 TLS 证书。将此 CA 证书导入切片软件的信任库一次,切片软件即可接受连接 — 无需再通过命令行获取。`,copy:`复制`,copied:`已复制`,download:`下载`,fingerprint:`SHA-256`},howItWorks:{title:`工作原理`,step1:`在同一局域网中,虚拟打印机会通过发现机制自动出现在您的切片软件(Bambu Studio / OrcaSlicer)中。从其他网络,通过 IP 地址和访问码手动添加。`,step2:`在归档、审核和队列模式下,使用切片软件中的"发送"按钮将 3MF 文件上传到 Bambuddy。切片软件会显示"打印成功"— 文件已存储,未打印。`,step3:`在代理模式下,虚拟打印机将所有流量中继到真实打印机 — 打印会立即开始,就像直接连接一样。`},status:{title:`状态详情`,printerName:`打印机名称`,model:`型号`,serialNumber:`序列号`,mode:`模式`,pendingFiles:`待处理文件`,targetPrinter:`目标打印机`,ftpPort:`FTP 端口`,mqttPort:`MQTT 端口`,ftpConnections:`FTP 连接`,mqttConnections:`MQTT 连接`},toast:{updated:`虚拟打印机设置已更新`,failedToUpdate:`更新设置失败`,copyFailed:`复制失败 — 请手动选中文本`,accessCodeRequired:`请先设置访问码`,targetPrinterRequired:`请先选择目标打印机`,bindIpRequired:`请先设置绑定 IP`,accessCodeEmpty:`访问码不能为空`,accessCodeLength:`访问码必须恰好 8 个字符`,targetCodeChangedRebind:`访问码已同步到新的目标打印机。请在切片软件中重新添加此设备以使用新的访问码。`,created:`虚拟打印机已创建`,failedToCreate:`创建虚拟打印机失败`,deleted:`虚拟打印机已删除`,failedToDelete:`删除虚拟打印机失败`},list:{title:`虚拟打印机`,add:`添加`,addFirst:`添加虚拟打印机`,empty:`未配置虚拟打印机。添加一个以开始使用。`},bindIp:{title:`绑定接口`,placeholder:`选择接口...`,hint:`此虚拟打印机绑定的网络接口。每台打印机必须唯一。`},proxy:{accessCodeHint:`在代理模式下,在切片软件中使用目标打印机的访问码。连接会透明转发到真实打印机。`},addDialog:{title:`添加虚拟打印机`,name:`名称`,hint:`创建后可以配置访问码、目标打印机和其他设置。`,create:`创建`},deleteConfirm:{title:`删除虚拟打印机`,message:`确定要删除"{{name}}"吗?这将停止此打印机的所有服务。`}},modelViewer:{openInSlicer:`在切片软件中打开`,tabs:{model:`3D 模型`,gcode:`G-code 预览`},notAvailable:`不可用`,notSliced:`未切片`,plates:`板`,allPlates:`所有板`,plateNumber:`板 {{number}}`,plateCount:`{{count}} 个板`,plateCount_other:`{{count}} 个板`,objectCount:`{{count}} 个对象`,objectCount_other:`{{count}} 个对象`,filamentCount:`{{count}} 种耗材`,filamentCount_other:`{{count}} 种耗材`,eta:`预计 {{minutes}} 分钟`,noPreview:`此文件无可用预览`,pagination:{pageOf:`第 {{current}} / {{total}} 页`,prev:`上一页`,next:`下一页`},errors:{failedToLoad:`加载文件失败`,noMeshes:`3MF 文件中未找到网格`,unsupportedFormat:`不支持的文件格式`}},maintenanceDescriptions:{lubricateCarbonRods:`在碳纤维杆上涂抹润滑剂以确保顺畅运动`,lubricateRails:`在线性导轨上涂抹润滑剂以确保顺畅运动`,cleanNozzle:`清洁热端和喷嘴以防止堵塞`,checkBelts:`检查皮带张力以确保打印精度`,cleanBuildPlate:`清洁构建板以获得更好的附着力`,checkExtruder:`检查挤出机齿轮磨损情况`,checkCooling:`确保冷却风扇正常工作`,generalInspection:`打印机综合检查`,cleanCarbonRods:`清洁碳纤维杆以减少摩擦`,lubricateSteelRods:`在钢杆上涂抹润滑剂以确保顺畅运动`,cleanSteelRods:`清洁钢杆以减少摩擦`,cleanLinearRails:`擦拭线性导轨以清除灰尘和碎屑`,checkPtfeTube:`检查 PTFE 管的磨损或损坏`,replaceHepaFilter:`更换 HEPA 过滤器以保证空气质量`,replaceCarbonFilter:`更换活性炭过滤器`,lubricateLeftNozzleRail:`润滑左喷嘴导轨(H2 系列)`},smartPlugs:{offline:`离线`,admin:`管理`,openPlugAdminPage:`打开插座管理页面`,deleteSmartPlug:`删除智能插座`,turnOnSmartPlug:`开启智能插座`,turnOffSmartPlug:`关闭智能插座`,turnOn:`开启`,turnOff:`关闭`,addSmartPlug:{scanningNetwork:`扫描网络中...`,chooseEntity:`选择实体...`,connectionFailed:`连接失败`,searchEntities:`搜索实体...`,searchPowerSensors:`搜索功率传感器...`,searchEnergySensors:`搜索能量传感器...`,placeholders:{plugName:`客厅插座`,mqttStateOnValue:`ON、true、1`,mqttSameAsPower:`与功率主题相同,或不同`}},linkedTo:`关联到:`,monitorOnly:`仅监控`,alerts:`警报`,scheduleOn:`开启 {{time}}`,scheduleOff:`关闭 {{time}}`,on:`开启`,off:`关闭`,power:`功率`,kwhToday:`今日kWh`,settings:`设置`,automationSettings:`自动化设置`,showInSwitchbar:`在开关栏显示`,quickAccessSidebar:`从侧边栏快速访问`,enabled:`已启用`,enableAutomation:`为此插座启用自动化`,autoOn:`自动开启`,autoOnDescription:`打印开始时开启`,autoOff:`自动关闭`,autoOffDescription:`打印完成时关闭(一次性)`,autoOffPersistent:`保持启用`,autoOffPersistentDescription:`在打印之间保持启用而非一次性`,controlsPrinterPower:`为打印机供电`,controlsPrinterPowerDescription:`如果此插座仅为配件(滤芯风扇、灯光)供电,请关闭此选项;否则关闭插座会将打印机标记为离线。`,autoOffAfterDrying:`干燥完成后自动关闭`,autoOffAfterDryingDescription:`AMS 干燥完成后关闭`,delayAfterDryingMinutes:`干燥后延迟(分钟)`,turnOffDelayMode:`关闭延迟模式`,time:`时间`,temp:`温度`,delayMinutes:`延迟(分钟)`,tempThreshold:`温度阈值(°C)`,tempThresholdDescription:`当喷嘴冷却到此温度以下时关闭`,edit:`编辑`,deleteConfirm:`确定要删除"{{name}}"吗?此操作无法撤销。`,turnOnConfirm:`确定要开启"{{name}}"吗?`,turnOffConfirm:`确定要关闭"{{name}}"吗?这将切断连接设备的电源。`,failedToTurn:`无法{{action}}"{{name}}"`,unknown:`未知`,addTitle:`添加智能插座`,editTitle:`编辑智能插座`,stopScanning:`停止扫描`,discoverTasmota:`发现Tasmota设备`,foundDevices:`找到{{count}}个设备 - 点击选择:`,noDevicesFound:`未在您的网络中找到Tasmota设备`,haNotConfigured:`Home Assistant未配置。请在以下位置设置`,haSettingsPath:`设置 → 网络 → Home Assistant`,selectEntity:`选择实体 *`,ipAddress:`IP地址 *`,nameLabel:`名称 *`,username:`用户名`,password:`密码`,authHint:`如果您的Tasmota设备不需要认证,请留空`,linkToPrinter:`关联打印机`,noPrinter:`无打印机(仅手动控制)`,linkingDescription:`关联后可在打印开始/完成时自动开关`,powerAlerts:`功率警报`,alertAbove:`高于时警报(W)`,alertBelow:`低于时警报(W)`,alertDescription:`当电力消耗超过这些阈值时收到通知。留空以禁用该方向。`,dailySchedule:`每日计划`,turnOnAt:`开启时间`,turnOffAt:`关闭时间`,scheduleDescription:`每天在这些时间自动开关插座。留空以跳过该操作。`,showOnPrinterCard:`在打印机卡片上显示`,displayOnPrinterCard:`在打印机卡片上显示按钮`,connectedResult:`已连接!`,deviceLabel:`设备:{{name}} - `,stateLabel:`状态:{{state}}`,test:`测试`,delete:`删除`,save:`保存`,add:`添加`,cancel:`取消`,failedToStartScan:`无法开始扫描`,nameRequired:`名称为必填项`,entityRequired:`Home Assistant插座需要实体`,mqttTopicRequired:`必须为功率、能源或状态监控配置至少一个MQTT主题`,loadingEntities:`正在加载实体...`,loading:`加载中...`,failedToLoadEntities:`加载实体失败:{{error}}`,noEntitiesMatching:`未找到匹配"{{search}}"的实体`,noEntitiesAvailable:`无可用实体`,searchingEntities:`搜索所有实体(找到{{count}}个)`,showingEntities:`显示 switch、light、input_boolean({{count}}个可用)`,energyMonitoringOptional:`能源监控(可选)`,energyMonitoringHint:`搜索并选择提供功率/能源数据的传感器。`,powerSensorW:`功率传感器(W)`,energyTodayKwh:`今日能源(kWh)`,totalEnergyKwh:`总能源(kWh)`,noMatchingSensors:`无匹配的传感器`,none:`无`,mqttNotConfigured:`MQTT代理未配置。请在以下位置设置代理地址`,mqttSettingsPath:`设置 → 网络 → MQTT发布`,mqttNotConfiguredSuffix:`(您不需要启用发布,只需填写代理详细信息)。`,mqttMonitorOnlyDescription:`MQTT插座通过MQTT订阅接收功率/能源数据。开关控制不可用 - 请使用您的MQTT代理或家庭自动化系统。`,powerMonitoring:`功率监控`,energyMonitoring:`能源监控`,stateMonitoring:`状态监控`,optional:`可选`,topic:`主题`,jsonPath:`JSON路径`,multiplier:`乘数`,onValue:`ON值`,mqttPowerHint:`JSON路径从JSON负载中提取值(例如"power_l1")。如果主题发布原始数值,请留空。
乘数:mW→W使用0.001,kW→W使用1000。`,mqttEnergyHint:`JSON路径从JSON负载中提取值。原始值请留空。
乘数:Wh→kWh使用0.001,MWh→kWh使用1000。`,mqttStateHint:`JSON路径从JSON负载中提取值。原始值请留空。
-ON值:表示"ON"的确切字符串。留空以自动检测(ON、true、1)。`,restControl:`控制`,restOnUrl:`开启 URL`,restOffUrl:`关闭 URL`,restOnBody:`开启请求体`,restOffBody:`关闭请求体`,restMethod:`HTTP 方法`,restHeaders:`Custom Headers (JSON)`,restStatusUrl:`状态 URL`,restStatusPath:`状态 JSON 路径`,restStatusOnValue:`开启值`,restPowerUrl:`功率URL`,restPowerPath:`功率 JSON 路径`,restPowerMultiplier:`功率乘数`,restEnergyUrl:`能耗URL`,restEnergyPath:`能耗 JSON 路径(今日)`,restEnergyTotalPath:`能耗 JSON 路径(累计值)`,restEnergyTotalMultiplier:`累计值倍数`,restEnergyTotalPathHint:`例如 aenergy.total`,restEnergyTotalHint:`许多插座(包括所有 Shelly)只提供永不归零的累计计数值。该值应填在此处,而不是上面的字段:若当作今日用量读取,它在午夜不会归零,而“昨日”和“总计”会一直为空。Bambuddy 会据此推算“今日”和“昨日”,这需要一到两天的采样数据。Shelly 以瓦时为单位,因此倍数请填 0.001。`,restEnergyMultiplier:`能耗乘数`,restUrlRequired:`REST 插座至少需要一个 URL(ON 或 OFF)`,restHeadersHint:`例如 {"Authorization": "Bearer your-token"}`,restBodyHint:`例如 ON, {"state": "on"}`,restStatusHint:`轮询当前状态的 URL`,restPathHint:`例如 state 或 data.power.status`,restPowerUrlHint:`功率数据的独立URL(留空则使用状态URL)`,restEnergyUrlHint:`能耗数据的独立URL(留空则使用状态URL)`,restEnergyHint:`每个值可以使用独立的URL,或回退到状态URL。使用乘数进行单位转换(例如:0.001 将 Wh 转换为 kWh)。`,testConnection:`测试连接`,connectionSuccess:`连接成功`,noSwitchesInSwitchbar:`开关栏中没有开关`,enableSwitchbarHint:`在设置 > 智能插座中启用"在开关栏显示"`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`电子邮件`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`SMTP 电子邮件通知`,telegram:`通过 Telegram 机器人发送通知`,discord:`通过 Webhook 发送到 Discord 频道`,ntfy:`免费、可自托管的推送通知`,pushover:`简单、可靠的推送通知`,callmebot:`通过 CallMeBot 免费发送 WhatsApp 通知`,webhook:`通用 HTTP POST 到任意 URL`,homeassistant:`Home Assistant 仪表板中的持久通知`,bark:`通过 Bark 推送 iOS 通知(可自建服务器)`},lastSuccess:`上次:{{date}}`,error:`错误`,printer:`打印机:`,allPrinters:`所有打印机`,sendTestNotification:`发送测试通知`,eventSettings:`事件设置`,enabled:`已启用`,sendFromProvider:`从此提供商发送通知`,printEvents:`打印事件`,printerStatus:`打印机状态`,amsAlarms:`AMS 警报`,amsHtAlarms:`AMS-HT 警报`,printQueue:`打印队列`,start:`开始`,plateCheck:`热床检测`,complete:`完成`,failed:`失败`,stopped:`已停止`,progress:`进度`,offline:`离线`,lowFilament:`耗材不足`,maintenance:`维护`,amsHumidity:`AMS 湿度`,amsTemp:`AMS 温度`,amsHtHumidity:`AMS-HT 湿度`,amsHtTemp:`AMS-HT 温度`,bedCooled:`热床已冷却`,firstLayer:`首层完成`,quiet:`免打扰`,digest:`摘要 {{time}}`,printStarted:`打印已开始`,plateNotEmpty:`热床非空`,plateNotEmptyDescription:`打印前检测到物体`,plateClearRequired:`需要确认热床已清空`,plateClearRequiredDescription:`打印完成,队列等待热床确认`,plateClear:`热床确认`,printCompleted:`打印已完成`,bedCooledLabel:`热床已冷却`,bedCooledDescription:`打印后热床温度降至阈值以下`,firstLayerCompleteLabel:`首层打印完成`,firstLayerCompleteDescription:`首层完成时发送带照片的通知`,missingSpoolAssignmentLabel:`缺少料卷分配`,missingSpoolAssignmentDescription:`当打印开始且所需料盘没有分配料卷时发送通知`,printFailed:`打印失败`,printStopped:`打印已停止`,progressMilestones:`进度里程碑`,progressMilestonesDescription:`在 25%、50%、75% 时通知`,printerOffline:`打印机离线`,printerError:`打印机错误`,aiFailureDetection:`AI 失败检测`,aiFailureDetectionDescription:`当 Obico AI 检测到可能的打印失败时通知`,lowFilamentLabel:`耗材不足`,maintenanceDue:`需要维护`,maintenanceDueDescription:`需要维护时通知`,amsHumidityHigh:`AMS 湿度过高`,amsHumidityHighDescription:`普通 AMS 湿度超过阈值`,amsTemperatureHigh:`AMS 温度过高`,amsTemperatureHighDescription:`普通 AMS 温度超过阈值`,amsHtHumidityHigh:`AMS-HT 湿度过高`,amsHtHumidityHighDescription:`AMS-HT 湿度超过阈值`,amsHtTemperatureHigh:`AMS-HT 温度过高`,amsHtTemperatureHighDescription:`AMS-HT 温度超过阈值`,inventoryAlerts:`库存警报`,stockReorderAlert:`补货警报`,stockReorderAlertDescription:`SKU 已达到补货点`,stockBreakAlert:`断货警报`,stockBreakAlertDescription:`库存将在补货到达前耗尽`,jobAdded:`任务已添加`,jobAddedDescription:`任务已添加到队列`,jobAssigned:`任务已分配`,jobAssignedDescription:`基于模型的任务已分配给打印机`,jobStarted:`任务已开始`,jobStartedDescription:`队列任务已开始打印`,jobWaiting:`任务等待中`,jobWaitingDescription:`任务正在等待耗材或打印机`,jobSkipped:`任务已跳过`,jobSkippedDescription:`任务已跳过(上一个失败)`,jobFailed:`任务失败`,jobFailedDescription:`任务启动失败`,queueComplete:`队列已完成`,queueCompleteDescription:`所有队列任务已完成`,quietHours:`免打扰时段`,noNotificationsDuring:`在此时段内不发送通知`,editProviderToChangeQuietHours:`编辑提供商以更改免打扰时段`,dailyDigest:`每日摘要`,batchNotifications:`将通知汇总为每日摘要`,sendAt:`发送于 {{time}}`,editProviderToChangeDigestTime:`编辑提供商以更改摘要时间`,edit:`编辑`,deleteProvider:`删除通知提供商`,deleteConfirm:`确定要删除"{{name}}"吗?此操作无法撤销。`,delete:`删除`,addTitle:`添加通知提供商`,editTitle:`编辑通知提供商`,nameLabel:`名称 *`,namePlaceholder:`我的通知`,providerTypeLabel:`提供商类型 *`,configuration:`配置`,testConfiguration:`测试配置`,printerFilter:`打印机筛选`,onlyFromPrinter:`仅发送来自此打印机的事件通知`,quietHoursDnd:`免打扰时段`,quietStart:`开始`,quietEnd:`结束`,dailyDigestLabel:`每日摘要`,sendDigestAt:`发送摘要于`,digestCollected:`事件将被收集并在此时间作为单条摘要发送`,notificationEvents:`通知事件`,progressPercent:`(25%、50%、75%)`,bedCooledAfterPrint:`(打印完成后)`,eventPriority:{sectionTitle:`ntfy 优先级`,helpNtfy:`为每个已启用的事件选择优先级。ntfy 使用它来升级提醒(声音、可见性、推送行为)。此处未设置的级别将使用 ntfy 服务器默认值。`,min:`最低`,low:`低`,default:`默认`,high:`高`,urgent:`紧急`},cancel:`取消`,save:`保存`,add:`添加`,nameRequired:`名称为必填项`,fieldRequired:`{{field}}为必填项`,haDataInvalid:`Data 字段必须是有效的 JSON 对象,例如 {"priority": "high", "ttl": 0}`,phoneNumber:`电话号码`,apiKey:`API 密钥`,serverUrl:`服务器 URL`,topic:`主题`,authToken:`认证令牌`,userKey:`用户密钥`,appToken:`应用令牌`,priority:`优先级`,pushoverRetry:`紧急重试 (秒)`,pushoverExpire:`紧急过期 (秒)`,botToken:`机器人令牌`,chatId:`聊天 ID`,telegramThreadId:`论坛话题 ID`,telegramThreadIdHelp:`可选。发送到论坛群组中的指定话题,即话题链接末尾的数字 (t.me/c/.../25)。留空则发送到常规话题。`,telegramThreadIdInvalid:`论坛话题 ID 必须是数字。`,smtpServer:`SMTP 服务器`,smtpPort:`SMTP 端口`,security:`安全`,authentication:`认证`,username:`用户名`,password:`密码`,fromEmail:`发件人邮箱`,toEmail:`收件人邮箱`,webhookUrl:`Webhook URL`,payloadFormat:`负载格式`,authorization:`授权`,titleFieldName:`标题字段名`,messageFieldName:`消息字段名`,editTemplate:`编辑模板:{{name}}`,titleLabel:`标题`,bodyLabel:`正文`,titlePlaceholder:`通知标题...`,bodyPlaceholder:`通知正文...`,availableVariables:`可用变量`,clickToInsert:`点击插入到正文光标位置`,livePreview:`实时预览`,hide:`隐藏`,show:`显示`,loadingPreview:`加载预览中...`,enterTemplateContent:`输入模板内容以查看预览`,titlePreview:`标题:`,bodyPreview:`正文:`,resetToDefault:`恢复默认`,titleRequired:`标题为必填项`,bodyRequired:`正文为必填项`,notificationLog:`通知日志`,showFailedOnly:`仅显示失败`,last24Hours:`最近 24 小时`,last7Days:`最近 7 天`,last30Days:`最近 30 天`,last90Days:`最近 90 天`,justNow:`刚刚`,noFailedNotifications:`没有失败的通知`,noNotificationsLogged:`没有通知记录`,unknownProvider:`未知提供商`,logTitle:`标题`,logMessage:`消息`,logError:`错误`,logProvider:`提供商:{{type}}`,logTime:`时间:{{time}}`,refresh:`刷新`,clearOld:`清除旧记录`,statsSummary:`最近 {{days}} 天:`,statsNotifications:`条通知`,statsSent:`{{count}} 条已发送`,statsFailed:`{{count}} 条失败`,eventTypes:{print_start:`打印已开始`,print_complete:`打印完成`,print_failed:`打印失败`,print_stopped:`打印已停止`,print_progress:`进度`,printer_offline:`打印机离线`,printer_error:`打印机错误`,filament_low:`耗材不足`,maintenance_due:`需要维护`,test:`测试`},userEmail:{title:`通知`,emailNotifications:`邮件通知`,emailNotificationsDesc:`接收您自己打印任务的邮件通知。邮件将通过高级身份验证中配置的 SMTP 设置发送。`,sendingTo:`通知将发送至`,noEmailWarning:`您的账户没有邮件地址。请联系管理员添加。`,printJobNotifications:`打印任务通知`,printJobNotificationsDesc:`选择哪些事件会触发您提交的打印任务的邮件通知。`,printJobStarts:`打印任务开始`,printJobStartsDesc:`当您的打印任务开始时收到通知。`,printJobFinishes:`打印任务完成`,printJobFinishesDesc:`当您的打印任务成功完成时收到通知。`,printErrors:`打印错误`,printErrorsDesc:`当您的打印任务失败或遇到错误时收到通知。`,printJobStops:`打印任务停止`,printJobStopsDesc:`当您的打印任务被取消或停止时收到通知。`,saveSuccess:`通知偏好设置已保存。`,saveError:`保存通知偏好设置失败。`}},richTextEditor:{bold:`粗体`,italic:`斜体`,underline:`下划线`,bulletList:`无序列表`,numberedList:`有序列表`,alignLeft:`左对齐`,alignCenter:`居中对齐`,alignRight:`右对齐`,addLink:`添加链接`,removeLink:`移除链接`},externalLinks:{title:`侧边栏链接`,sidebarLayout:`侧边栏`,sidebarLayoutDescription:`显示或隐藏内置页面,添加外部链接,并拖动项目以重新排序侧边栏导航。`,systemPages:`Bambuddy 页面`,externalLinks:`外部链接`,visibleInSidebar:`在侧边栏中显示`,hiddenFromSidebar:`在侧边栏中隐藏`,requiredInSidebar:`侧边栏中必需`,hidePage:`隐藏页面`,showPage:`显示页面`,settingsCannotBeHidden:`设置不能隐藏`,noLinksConfigured:`未配置外部链接`,deleteLink:`删除链接`,removeCustomIcon:`移除自定义图标`,openInNewTab:`在新标签页中打开`,placeholders:{linkName:`我的链接`}},keyboardShortcuts:{title:`键盘快捷键`,navigation:`导航`,archivesSection:`归档`,kProfilesSection:`K 值配置`,generalSection:`通用`,shortcuts:{goToPrinters:`前往打印机`,goToArchives:`前往归档`,goToQueue:`前往队列`,goToStats:`前往统计`,goToProfiles:`前往云端配置`,goToSettings:`前往设置`,focusSearch:`聚焦搜索`,openUploadModal:`打开上传对话框`,clearSelection:`清除选择 / 取消焦点`,contextMenu:`卡片右键菜单`,refreshProfiles:`刷新配置`,newProfile:`新建配置`,exitSelectionMode:`退出选择模式`,showHelp:`显示此帮助`},footer:`按 Esc 或点击外部关闭`},notificationLog:{title:`通知日志`,events:{printStarted:`打印开始`,printComplete:`打印完成`,printFailed:`打印失败`,printStopped:`打印停止`,progress:`进度`,printerOffline:`打印机离线`,printerError:`打印机错误`,lowFilament:`耗材不足`,maintenanceDue:`维护到期`,test:`测试`},timeAgo:{justNow:`刚刚`,minutesAgo:`{{minutes}} 分钟前`,hoursAgo:`{{hours}} 小时前`}},restoreBackup:{title:`恢复备份`,restoring:`恢复中...`,restoreComplete:`恢复完成`,restoreFailed:`恢复失败`,importSettings:`从备份文件导入设置`,pleaseWait:`请稍候,正在恢复您的数据`,clickToSelect:`点击选择备份文件(.json 或 .zip)`,howDuplicateHandling:`重复处理方式:`,categories:{printers:`打印机`,smartPlugs:`智能插座`,notificationProviders:`通知提供商`,filaments:`耗材`,archives:`归档`,pendingUploads:`待处理上传`,settingsTemplates:`设置和模板`},matchingInfo:{printers:`按序列号匹配`,smartPlugs:`按 IP 地址匹配`,notificationProviders:`按名称匹配`,filaments:`按名称 + 类型 + 品牌匹配`,archives:`按内容哈希匹配`,pendingUploads:`按文件名匹配`,settingsTemplates:`始终覆盖`},replaceExisting:`替换现有数据`,keepExisting:`保留现有数据`,replaceDescription:`用备份数据覆盖已存在的项目`,keepDescription:`仅恢复不存在的项目`,caution:`注意:`,cautionText:`覆盖将用备份数据替换您当前的配置。出于安全考虑,打印机访问码永远不会被覆盖。`,itemsRestored:`已恢复项目`,itemsSkipped:`已跳过项目`,restored:`已恢复`,skipped:`已跳过(已存在)`,filesLabel:`文件(3MF、缩略图等)`,newApiKeysGenerated:`已生成新 API 密钥`,newApiKeysWarning:`这些密钥仅显示一次。请立即复制!`,processingBackup:`处理备份文件中...`,noDataFound:`备份文件中未找到可恢复的数据。`,failedToRestore:`恢复备份失败。请检查文件格式。`},backupExport:{title:`导出备份`,selectData:`选择要包含的数据`,selectAll:`全选`,selectNone:`全不选`,categoryDescriptions:{settings:`语言、主题、更新偏好`,notifications:`ntfy、Pushover、Discord 等`,templates:`自定义消息模板`,smartPlugs:`Tasmota 插座配置`,externalLinks:`侧边栏外部服务链接`,printers:`打印机信息(不含访问码)`,plateDetection:`空打印板参考图像`,filaments:`耗材类型和成本`,maintenance:`自定义维护计划`,archives:`所有打印数据 + 文件(3MF、缩略图、照片)`,projects:`项目、材料清单和附件`,pendingUploads:`虚拟打印机待审核的上传`,apiKeys:`Webhook API 密钥(导入时生成新密钥)`},requiresPrinters:`需要选择打印机`,zipFileWarning:`将创建 ZIP 文件。`,zipFileDescription:`包括所有 3MF 文件、缩略图、延时摄影和照片。这可能需要一些时间并生成较大的文件。`,includeAccessCodes:`包含访问码`,includeAccessCodesDescription:`用于转移到另一台机器`,includeAccessCodesWarning:`访问码将以明文形式包含。请妥善保管此备份文件!`,categoriesSelected:`已选择 {{selectedCount}} 个类别`},pendingUploads:{placeholders:{notes:`添加关于此打印的备注...`},discardUpload:`丢弃上传`,archiveAllUploads:`归档所有上传`,discardAllUploads:`丢弃所有上传`,archive:`归档`,timeAgo:{justNow:`刚刚`,minutesAgo:`{{minutes}} 分钟前`,hoursAgo:`{{hours}} 小时前`,daysAgo:`{{days}} 天前`}},apiBrowser:{placeholders:{requestBody:`JSON 请求体...`,searchEndpoints:`搜索端点...`}},configureAmsSlot:{title:`配置 AMS 槽位`,slotConfigured:`槽位已配置!`,configuringSlot:`正在配置槽位:`,slotLabel:`{{ams}} 槽位 {{slot}}`,searchPresets:`搜索预设...`,colorPlaceholder:`颜色名称或十六进制(例如:棕色、FF8800)`,clearCustomColor:`清除自定义颜色`,noCloudPresets:`无云端预设。登录拓竹云以同步。`,noPresetsAvailable:`无可用预设。登录拓竹云或导入本地配置。`,noMatchingPresets:`未找到匹配的预设。`,custom:`自定义`,builtin:`内置`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`设置已发送到打印机`,filamentProfile:`耗材配置`,kProfileLabel:`K 值配置(压力推进)`,filteringFor:`筛选:{{material}}`,noKProfile:`无 K 值配置(使用默认值 0.020)`,noMatchingKProfiles:`未找到匹配的 K 值配置。将使用默认 K=0.020。`,otherKProfiles:`此打印机上的其他 K 值配置`,selectFilamentFirst:`请先选择耗材配置`,kFromCalibration:`K={{value}}(来自打印机校准)`,customColorLabel:`自定义颜色(可选)`,presetColors:`{{name}} 颜色:`,showLessColors:`显示更少颜色`,showMoreColors:`显示更多颜色`,clear:`清除`,hexLabel:`十六进制:#{{hex}}`,resetting:`重置中...`,resetSlot:`重置槽位`,cancel:`取消`,configuring:`配置中...`,configureSlot:`配置槽位`},githubBackup:{title:`Git 备份`,history:`历史`,downloadBackup:`下载备份`,restoreBackup:`恢复备份`,noBackupsYet:`暂无备份`},emailSettings:{placeholders:{fromName:`Bambuddy`}},tagManagement:{searchTags:`搜索标签...`,renameTag:`重命名标签`,deleteTag:`删除标签`},notificationTemplates:{placeholders:{title:`通知标题...`,body:`通知正文...`}},batchTag:{placeholders:{newTag:`输入新标签...`}},photoGallery:{deletePhoto:`删除照片`},filamentHoverCard:{copySpoolUuid:`复制耗材 UUID`},kProfilesView:{hasNote:`有备注`,copyProfile:`复制配置`},layout:{openMenu:`打开菜单`,noPermissionSystemInfo:`您没有查看系统信息的权限`},dashboard:{dragToReorder:`拖动以重新排列`,hideWidget:`隐藏小部件`},notificationProviderCard:{deleteNotificationProvider:`删除通知提供商`},fileManagerModal:{closeFileManager:`关闭文件管理器`,sortFiles:`排序文件`,goToParentFolder:`返回上级文件夹`,threeView:`3D 视图`},embeddedCameraViewer:{refreshStream:`刷新流`,close:`关闭`,zoomOut:`缩小`,resetZoom:`重置缩放`,zoomIn:`放大`,dragToResize:`拖动调整大小`},timelapseViewer:{skipBack5s:`后退 5 秒`,skipForward5s:`前进 5 秒`},notificationProviders:{descriptions:{email:`SMTP 邮件通知`,telegram:`通过 Telegram 机器人通知`,discord:`通过 Webhook 发送到 Discord 频道`,ntfy:`免费、可自托管的推送通知`,pushover:`简单、可靠的推送通知`,callmebot:`通过 CallMeBot 的免费 WhatsApp 通知`,webhook:`通用 HTTP POST 到任意 URL`}},logViewer:{searchPlaceholder:`搜索消息或日志名称...`,noLogEntries:`未找到日志条目`},switchbarPopover:{noSwitchesInSwitchbar:`切换栏中没有开关`},projectPageModal:{placeholders:{title:`标题`,designer:`设计师`,license:`许可证`,description:`输入描述...`,profileTitle:`配置标题`,profileDescription:`配置描述...`}},spoolmanSettings:{},time:{unknown:`-`,waiting:`等待中`,justNow:`刚刚`,now:`现在`,minsAgo:`{{count}} 分钟前`,inMins:`{{count}} 分钟后`,hoursAgo:`{{count}} 小时前`,inHours:`{{count}} 小时后`,daysAgo:`{{count}} 天前`,inDays:`{{count}} 天后`},spoolbuddy:{nav:{dashboard:`仪表板`,ams:`AMS`,inventory:`库存`,writeTag:`写入`,settings:`设置`},status:{nfcReady:`NFC 就绪`,nfcOff:`NFC 关闭`,offline:`离线`,online:`在线`,noPrinters:`无打印机`,deviceOffline:`设备离线`,waitingConnection:`等待设备连接...`,systemReady:`系统就绪`,status:`状态`},dashboard:{readyToScan:`准备扫描`,idleMessage:`将耗材放在秤上以识别`,nfcHint:`NFC 标签将自动读取`,device:`设备`,syncWeight:`同步重量`,weightSynced:`已同步!`,unknownTag:`未知标签`,newTag:`检测到新标签`,onScale:`在秤上`,linkSpool:`链接到耗材`,linkTagTitle:`将标签链接到耗材`,linkTag:`链接标签`,selectSpool:`选择要链接此标签的耗材:`,noUntagged:`未找到没有标签的耗材`,tagDetected:`检测到标签`,noTag:`无标签`,tagId:`标签`,grossWeight:`毛重`,spoolSize:`耗材盘尺寸`,close:`关闭`,currentSpool:`当前耗材`,plateReady:`热床就绪: {{name}}`,plateReadyLabel:`待清理的热床`,plateClearAction:`清理`,plateClearedToast:`已将热床标记为已清理`,plateClearFailed:`无法将热床标记为已清理`},modal:{spoolDetected:`检测到耗材`,assignToAms:`分配到 AMS`,syncWeight:`同步重量`,weightSynced:`已同步!`,syncing:`同步中...`,newTagDetected:`检测到新标签`,addToInventory:`添加到库存`,assignToAmsTitle:`分配到 AMS`,selectSlot:`选择槽位`,assign:`分配`,assigning:`分配中...`,assignSuccess:`已分配!`,assignPendingInsert:`已分配。插入耗材后将配置槽位。`,assignError:`分配耗材失败。请重试。`,noPrinterSelected:`选择打印机...`,noAmsDetected:`此打印机未检测到 AMS`,slot:`槽位`},weight:{noReading:`无读数`,stable:`稳定`,measuring:`测量中...`,tare:`去皮`,calibrate:`校准`},spool:{remaining:`剩余`,material:`材料`,brand:`品牌`,color:`颜色`,coreWeight:`空盘`,labelWeight:`标签`,scaleWeight:`秤重`,netWeight:`净重`,lastUsed:`上次使用`},ams:{noData:`未检测到 AMS`,connectAms:`连接 AMS 以查看耗材槽位`,noPrinter:`未选择打印机`,selectPrinter:`从顶部栏选择打印机`,printerDisconnected:`打印机已断开`,humidity:`湿度`,level:`余量`,active:`活跃`,slot:`槽位`,empty:`空`},inventory:{search:`搜索耗材...`,empty:`库存中没有耗材`,noResults:`没有匹配的耗材`,spools:`个耗材`,addSpool:`添加耗材`},settings:{tabDevice:`设备`,tabDisplay:`显示`,tabScale:`秤`,tabUpdates:`更新`,nfcReader:`NFC 读卡器`,type:`类型`,connection:`连接`,notConnected:`不适用`,deviceInfo:`设备信息`,hostname:`主机`,uptime:`运行时间`,systemConfig:`后端与认证`,backendUrl:`Bambuddy 后端 URL`,apiToken:`API 令牌`,apiTokenPlaceholder:`输入 API 令牌`,saveConfig:`保存配置`,systemQueued:`配置已加入队列。`,nfcDiagnostic:`NFC 诊断`,scaleDiagnostic:`秤诊断`,readTagDiagnostic:`读取标签诊断`,testNfc:`测试读卡器`,testScale:`测试精度`,testReadTag:`读取标签`,systemFieldsRequired:`后端 URL 为必填项。`,brightness:`亮度`,saved:`已保存`,noBacklight:`未检测到 DSI 背光。亮度控制需要 DSI 显示屏。`,screenBlank:`屏幕熄灭超时`,screenBlankDesc:`不活动后屏幕关闭。触摸唤醒。`,displayNote:`亮度作为软件滤镜应用。`,scaleCalibration:`秤校准`,currentWeight:`当前重量`,tareOffset:`去皮`,calFactor:`系数`,knownWeight:`已知重量`,calStep1:`移除秤上所有物品并按设置零点。`,calStep2:`将已知重量放在秤上。`,setZero:`设置零点`,calibrateNow:`校准`,calibrated:`已校准`,tareSet:`去皮命令已发送。等待设备响应...`,tareComplete:`去皮完成!`,tareTimedOut:`去皮超时 — SpoolBuddy 守护进程是否正在运行?`,tareFailed:`发送去皮命令失败`,zeroSet:`零点已设置。将已知重量放在秤上。`,calibrationDone:`校准完成!`,calibrationFailed:`校准失败`,lastCalibrated:`上次校准`,stable:`稳定`,settling:`稳定中...`,firmware:`固件`,scale:`秤`,noDevice:`未找到 SpoolBuddy 设备`,daemonVersion:`守护进程版本`,currentVersion:`当前`,versionPending:`等待守护进程...`,checking:`检查中...`,checkUpdates:`检查更新`,updateAvailable:`有可用更新`,updateInstructions:`通过 SSH 更新:运行 SpoolBuddy 安装脚本进行升级。`,upToDate:`已是最新`,includeBeta:`包含测试版本`},writeTag:{tabExisting:`现有耗材`,tabNew:`新耗材`,tabReplace:`替换标签`,searchPlaceholder:`按材料、颜色、品牌搜索...`,noUntaggedSpools:`没有无标签的耗材`,noTaggedSpools:`没有有标签的耗材`,selectSpool:`选择一个耗材,然后将空白 NTAG 放在读卡器上`,placeTag:`将 NTAG 放在读卡器上`,tagReady:`检测到标签 — 准备写入`,writeTag:`写入标签`,replaceTag:`替换标签`,writing:`写入标签中...`,waiting:`等待 SpoolBuddy...`,writeSuccess:`标签写入成功!`,writeFailed:`写入失败`,queueFailed:`排队写入命令失败`,tryAgain:`重试`,cancel:`取消`,replaceWarning:`旧标签将被取消链接。新标签将替换它。`,deviceOffline:`SpoolBuddy 离线`,material:`材料`,colorName:`颜色名称`,color:`颜色`,brand:`品牌`,weight:`重量 (g)`,createSpool:`创建耗材`,creating:`创建中...`,spoolCreated:`耗材已创建!准备写入。`,createFailed:`创建耗材失败`,incompleteDataWarning:`已使用不完整的Spoolman数据写入标签`},quickMenu:{printerPower:`打印机电源`,systemControls:`系统`,restartDaemon:`重启守护进程`,restartBrowser:`重启浏览器`,reboot:`重启`,shutdown:`关机`,swipeToClose:`向下滑动关闭`,confirmTitle:`确认`,confirmShutdown:`确定要关闭SpoolBuddy吗?您需要物理访问才能重新开启。`,confirmReboot:`确定要重启SpoolBuddy吗?`,confirmRestartDaemon:`重启SpoolBuddy守护进程?NFC和秤将暂时不可用。`,confirmRestartBrowser:`重启kiosk浏览器?屏幕将短暂变黑。`,confirm:`确认`,confirmPlugOn:`开启 {{name}}?`,confirmPlugOff:`关闭 {{name}}?`,turnOn:`开启`,turnOff:`关闭`}},diagnostic:{modalTitle:`连接诊断 — {{name}}`,running:`正在运行诊断...`,runningElapsed:`正在运行诊断... ({{elapsed}}秒)`,waitingForReportHint:`正在等待打印机发布状态报告 — 最长可能需要 {{max}} 秒。`,runFailed:`无法运行诊断:{{error}}`,retry:`重新运行`,runButton:`运行诊断`,sectionTitle:`连接诊断`,sectionDescription:`检查打印机无法连接或无法打印的原因 — 端口可达性、LAN 开发者模式、Docker 网络模式和凭据。`,noPrinters:`未配置打印机。`,overall:{ok:`未发现问题 — 打印机连接看起来正常。`,warnings:`打印机应该可以工作,但有些事项需要注意。`,problems:`发现了可解释打印机无法连接或无法打印的问题。`},check:{port_mqtt:{title:`控制端口(MQTT 8883)`,pass:`可达 — 打印机正在接受控制连接。`,fail:`端口 8883 不可达。打印机已关机、IP 地址不同,或被防火墙阻止。请核实打印机 IP,并确保没有任何东西阻止端口 8883。`},port_ftps:{title:`文件传输端口(FTPS 990)`,pass:`可达 — 发送打印文件将正常工作。`,warn:`端口 990 不可达。监控可能仍然有效,但向打印机发送打印任务将失败。请确保端口 990 未被阻止。`},external_storage:{title:`将发送的文件存储在外部存储中(安装步骤 4)`,pass:`打印机报告此选项已开启 — 发送的文件将存储在 SD 卡上,归档将包含缩略图和切片机元数据。`,fail:`打印机报告此选项已关闭。请启用"将发送的文件存储在外部存储中" — 在较新固件 (P2S 01.02 / Bambu Studio 2.6+) 中,开关位于打印机的打印设置中;在较旧版本中位于 Bambu Studio / OrcaSlicer 的设备选项卡中。如果不启用此选项,每次归档的打印都将没有缩略图也没有切片机元数据。`,skip:`未检查 — 需要有效的 MQTT 连接。在该设置仅存在于切片机中的较旧切片机上,打印机不会报告此设置,因此即使选项已关闭,此检查也会通过 — 请手动验证安装步骤 4。`,skip_unsupported_model:`此型号有 SD 卡槽,但无法开启该选项 — 当前 P1 系列固件不会在 Bambu Studio 中显示此开关,且打印机没有屏幕。这里无需修复;在 Bambu Lab 通过固件添加支持之前,存档的打印可能缺少缩略图和切片元数据。`},port_rtsps:{title:`摄像头端口({{protocol}} {{port}})`,pass:`可达 — 摄像头视频流将正常工作。`,warn:`端口 {{port}} 不可达。实时摄像头视图将无法工作。这不影响打印。`},network_mode:{title:`Docker 网络模式`,pass:`正在以 host 网络模式运行。`,warn:`Bambuddy 正在以 Docker bridge 网络运行。打印机发现和虚拟打印机需要 host 网络模式 — 请使用 "network_mode: host" 重新创建容器。`,skip:`未在 Docker 中运行 — 不适用。`},subnet:{title:`网络子网`,pass:`打印机和 Bambuddy 位于同一子网。`,warn:`打印机({{printer_ip}})和 Bambuddy({{host_ip}})位于不同的子网。除非配置了子网之间的路由,否则它们可能无法相互访问。`,skip:`无法确定子网 — 已跳过。`},mqtt_auth:{title:`打印机凭据`,pass:`打印机已接受连接。`,fail:`打印机可达,但 Bambuddy 未与其建立连接。访问代码或序列号很可能有误 — 每次切换仅局域网模式或开发者模式时访问代码都会更改,请从打印机屏幕重新复制。正在重启或已达到同时连接数上限的打印机看起来也是这样。`,fail_auth_rejected:`打印机拒绝了 Bambuddy 的凭据。访问代码或序列号有误 — 每次切换仅局域网模式或开发者模式时访问代码都会更改。请从打印机屏幕重新复制,并保存到打印机设置中。`,skip:`未检查 — 无法连接到打印机。`},developer_mode:{title:`LAN 开发者模式`,pass:`开发者模式已启用。`,fail:`打印机上的开发者模式已关闭。请在打印机的 LAN 设置中启用它 — 并按 OK 确认。否则打印将无法开始。`,skip:`无法检查 — 需要与打印机的实时连接。`},printer_publishing:{title:`打印机正在发布状态`,pass:`打印机正在发布状态更新 — AMS、耗材和 K 配置将正确镜像到切片软件。`,fail:`MQTT 代理已接受连接,但打印机未发布任何状态报告。这几乎总是因为序列号错误或大小写不一致 — device//api/v1/metrics 公開印表機指標,用於Prometheus/Grafana監控。`,bearerTokenOptional:`Bearer權杖(可選)`,bearerTokenHint:`設定後,請求必須包含 Authorization: Bearer `,metricsConnectionStatus:`連線狀態`,metricsPrinterState:`印表機狀態(空閒/列印中等)`,metricsPrintProgress:`列印進度 0-100%`,metricsBedTemp:`熱床溫度`,metricsNozzleTemp:`噴嘴溫度`,metricsPrintsTotal:`按結果分類的總列印數`,metricsMore:`...以及更多(層數、風扇、佇列、耗材用量)`,smartPlugsDescription:`連線智慧插座(Tasmota或Home Assistant)以自動化電源控制並追蹤印表機的能源使用情況。`,allOn:`全部開啟`,allOff:`全部關閉`,addSmartPlug:`新增智慧插座`,energySummary:`能源概要`,currentPower:`目前功率`,plugsOnline:`{{reachable}}/{{total}} 個插座線上`,today:`今天`,yesterday:`昨天`,total:`總計`,enablePlugsForSummary:`啟用插座以檢視能源概要`,addNotificationProvider:`新增`,systemBadge:`(系統)`,creating:`建立中...`,changing:`修改中...`,deleteUserAndItems:`刪除使用者及其所有項目`,deleteUserKeepItems:`刪除使用者,保留項目(將變為無主項目)`,ok:`確定`,twoFa:{totpTitle:`身份驗證器 App (TOTP)`,totpDesc:`使用 Google Authenticator、Aegis 或 Authy 等 App。`,emailOtpTitle:`郵件 OTP`,emailOtpDesc:`登入時向 {{email}} 傳送一次性驗證碼。`,emailOtpNoEmail:`請先為帳戶新增信箱地址以啟用此方式。`,addEmailFirst:`您的帳戶沒有信箱地址,請聯絡管理員新增。`,setupTotp:`設定身份驗證器 App`,setupAuthApp:`設定身份驗證器 App`,setupInstructions:`使用身份驗證器 App 掃描QR Code,然後輸入驗證碼確認。`,manualEntry:`無法掃描?請手動輸入此金鑰:`,scannedContinue:`已掃描 — 繼續`,enterCodeToConfirm:`請輸入身份驗證器 App 中的6位驗證碼以確認設定。`,activate:`啟用`,disableTotp:`停用身份驗證器`,disableConfirmHint:`請輸入有效的 TOTP 碼或備用碼來停用身份驗證器。`,totpDisabled:`身份驗證器 App 已停用。`,emailOtpEnabled:`郵件 OTP 已啟用。`,emailOtpDisabled:`郵件 OTP 已停用。`,smtpRequired:`請先設定並測試SMTP設定。`,invalidCode:`無效驗證碼,請重試。`,enableEmailOtp:`啟用郵件 OTP`,disableEmailOtp:`停用郵件 OTP`,emailSetupEnterCode:`驗證碼已傳送至您的信箱地址。請在下方輸入以確認您擁有此信箱。`,verifyAndEnable:`驗證並啟用`,emailDisablePasswordHint:`請輸入您的帳戶密碼以確認停用郵件 OTP。`,passwordPlaceholder:`輸入您的密碼`,backupCodesTitle:`儲存備用碼`,backupCodesWarning:`請將這些碼儲存在安全的地方。每個碼只能使用一次,且不會再次顯示。`,backupCodesRemaining:`剩餘 {{count}} 個備用碼`,savedCodes:`已儲存`,regenBackup:`重新產生備用碼`,regenBackupHint:`輸入目前 TOTP 碼以產生 10 個新備用碼,所有現有備用碼將失效。`,newBackupCodes:`新備用碼`,linkedAccounts:`已連結的 SSO 帳戶`,linkedAccountsDesc:`以下外部身份提供者已與您的帳戶連結。`,oidcUnlinked:`帳戶已解除連結。`},sessionPolicy:{title:`工作階段政策`,description:`新使用者登入的最長工作階段有效期。已發行的權杖會保留其原有的到期時間。`,preset24h:`24 小時`,preset7d:`7 天`,preset30d:`30 天`,customHoursLabel:`自訂工作階段有效期(小時)`,hoursSuffix:`小時`,warning:`較長的工作階段會削弱自動登出保護。僅建議在受信任的單一使用者部署中使用。`},oidc:{title:`SSO / OIDC 提供者`,desc:`設定 OpenID Connect 提供者以實現單點登入。`,addProvider:`新增提供者`,newProvider:`新提供者`,empty:`尚未設定 OIDC 提供者。`,created:`提供者已建立。`,updated:`提供者已更新。`,deleted:`提供者已刪除。`,refreshIcon:`重新整理圖示`,removeIcon:`移除圖示`,iconRefreshed:`圖示已重新整理。`,iconRemoved:`圖示已移除。`,iconFetchFailed:`無法從提供者 URL 取得圖示。`,deleteTitle:`刪除提供者`,deleteMessage:`刪除"{{name}}"?所有連結帳戶將斷開連線。`,form:{name:`顯示名稱`,issuerUrl:`頒發者 URL`,clientId:`客戶端 ID`,clientSecret:`客戶端金鑰`,scopes:`作用域`,iconUrl:`圖示 URL(可選)`,enabled:`已啟用`,autoCreate:`自動建立使用者`,autoCreateDesc:`首次登入時自動建立本機帳戶。`,autoLink:`自動連結已有帳戶`,autoLinkDesc:`首次登入時透過信箱匹配現有本機帳戶並自動連結。`,emailClaim:`電子郵件聲明`,emailClaimDesc:`用作電子郵件身份的 JWT 聲明。Azure Entra ID 請使用 'preferred_username' 或 'upn'(不發送 email_verified)。僅使用可信的聲明名稱。`,emailClaimPlaceholder:`電子郵件`,emailClaimCustomClaimAutoLinkWarning:`自訂宣告僅在值由租用戶管理時(例如 Azure Entra ID 的 upn / preferred_username)對自動關聯安全。如果您的 IdP 允許使用者自我宣告此宣告,請勿啟用自動關聯。`,requireEmailVerified:`要求電子郵件已驗證`,requireEmailVerifiedDesc:`僅在提供商將電子郵件聲明標記為已驗證時才接受。`,requireEmailVerifiedWarning:`警告:將在未經驗證的情況下接受電子郵件。僅對受信任的提供商使用。`,requireEmailVerifiedAutoLink:`請先停用自動連結以變更此設定。`,secretHint:`留空以保留目前`,secretPlaceholder:`新金鑰`,defaultGroup:`預設群組`,defaultGroupDesc:`自動建立使用者時分配的群組。未設定時回退到 Viewers。`,defaultGroupViewersFallback:`Viewers(預設)`,autologin:`自動登入`,autologinDesc:`將未驗證的訪客直接重新導向至此提供者。此旗標僅能由一個提供者持有。`}},encryption:{title:`MFA 加密狀態`,enabledFromEnv:`已啟用靜態加密(金鑰來自 MFA_ENCRYPTION_KEY 環境變數)`,enabledFromFile:`已啟用靜態加密(金鑰從資料目錄載入)`,enabledGenerated:`使用自動產生的金鑰啟用靜態加密`,notConfigured:`未設定靜態加密`,notConfiguredDesc:`TOTP 機密和 OIDC client_secrets 以明文儲存。請設定 MFA_ENCRYPTION_KEY 或使用可寫資料目錄重新啟動 Bambuddy 以自動產生。`,allEncrypted:`所有 MFA 機密皆已靜態加密。`,legacyRowsLabel:`舊版明文列`,encryptedRowsLabel:`已加密列`,legacyRowsWarning:`偵測到 {{count}} 個舊版明文列。請重新儲存 OIDC 供應商或重新註冊使用者的身份驗證器應用程式,以遷移到加密儲存。`,backupHint:`自動產生的金鑰儲存在 DATA_DIR/.mfa_encryption_key 中,並包含在本機備份 ZIP 中。請保護備份安全或顯式設定 MFA_ENCRYPTION_KEY。`,decryptionBrokenTitle:`加密金鑰遺失`,decryptionBrokenError:`無法解密 {{count}} 條加密記錄,因為加密金鑰不再可用。請還原先前的 MFA_ENCRYPTION_KEY 或 DATA_DIR/.mfa_encryption_key 以恢復存取。`,migrationErrorWarning:`{{count}} 行舊資料在啟動時未能重新加密。請檢查伺服器日誌並重新啟動 Bambuddy 以重試。`},pipelineLimits:{title:`切片機管線限制`,maxCopiesLabel:`每次執行最大副本數`,maxCopiesDesc:`操作員執行管線時可請求的副本數上限。伺服器端硬性上限為 1000。`},pipelines:{title:`切片機管線`,subtitle:`可重複使用的預設組合(印表機 + 製程 + 耗材 + 熱床類型)。在切片對話框中儲存一個,下次切片檔案時一鍵套用。`,loading:`正在載入管線…`,loadError:`無法載入管線。`,confirmDelete:`刪除此管線?此操作無法復原。`,staleWarning:`參考的一個或多個預設已不存在。請在切片對話框中重新儲存此管線以修正。`,empty:{title:`尚無管線。`,howto:`為任意檔案開啟切片對話框,選擇印表機 / 製程 / 耗材 / 熱床,然後點擊「另存為管線」。儲存的管線將顯示於此處。`},field:{name:`管線名稱`,description:`描述`,targetPrinter:`目標印表機`,noTarget:`— 無目標 —`,targetKind:`目標類型`,targetKindSpecific:`特定印表機`,targetKindClass:`印表機類別`,targetModelClass:`印表機型號`,fanoutStrategy:`分發策略`,fanout:{max_parallel:`最大並行 — 分發到任何空閒匹配的印表機`,round_robin:`輪替 — 在合格印表機間循環`,fill_one_first:`先填一台 — 將所有副本固定到一台印表機`},fanoutShort:{max_parallel:`並行`,round_robin:`輪替`,fill_one_first:`先填一台`}},action:{save:`儲存`,cancel:`取消`,rename:`重新命名`,delete:`刪除`},slot:{printer:`印表機`,process:`製程`,filament:`耗材`,filamentN:`耗材 {{n}}`,filamentAll:`全部 {{n}} 個槽`,bed:`熱床`},group:{profiles:`設定檔`,filaments:`耗材`},searchPlaceholder:`搜尋管線…`,filterTargetType:`依目標類型篩選`,filterTarget:`依目標篩選`,filter:{all:`全部目標`,noTarget:`未設定目標`,count:`{{shown}} / {{total}}`,noMatches:`沒有管線符合目前的篩選條件。`},toast:{saved:`管線已儲存`,saveFailed:`儲存失敗`,deleted:`管線已刪除`,deleteFailed:`刪除失敗`},noTargetHint:`設定目標印表機以執行`,noTargetWarning:`執行此管線前請先設定目標印表機。`,runs:{lastRun:`上次執行`,status:{queued:`排隊中`,slicing:`切片中`,dispatching:`傳送中`,in_progress:`列印中`,completed:`已完成`,failed:`失敗`,partial_failure:`部分失敗`,cancelled:`已取消`}}}},notification:{printStarted:{title:`列印已開始`,body:`{{printer}}:{{filename}} 已開始列印`},printCompleted:{title:`列印已完成`,body:`{{printer}}:{{filename}} 已成功完成`},printFailed:{title:`列印失敗`,body:`{{printer}}:{{filename}} 列印失敗`},printStopped:{title:`列印已停止`,body:`{{printer}}:{{filename}} 已停止`},printProgress:{title:`列印進度`,body:`{{printer}}:{{filename}} 已完成 {{percent}}%`},printerOffline:{title:`印表機離線`,body:`{{printer}} 已離線`},printerError:{title:`印表機錯誤`,body:`{{printer}}:{{error}}`},filamentLow:{title:`耗材不足`,body:`{{printer}}:耗材即將用完`},maintenanceDue:{title:`維護到期`,body:`{{printer}}:{{items}} 需要關注`}},errors:{generic:`出了點問題`,networkError:`網路錯誤。請檢查您的連線。`,notFound:`未找到`,unauthorized:`未授權`,serverError:`伺服器錯誤`,validationError:`請檢查您的輸入`,printerConnectionFailed:`連線印表機失敗`,saveFailed:`儲存更改失敗`,deleteFailed:`刪除失敗`,loadFailed:`載入資料失敗`},hmsErrors:{title:`錯誤 - {{name}}`,noErrors:`無錯誤`,viewOnWiki:`在拓竹 Wiki 上檢視`,mqttVerifyFailedRemedy:`在印表機上啟用開發者模式,重新啟動印表機,然後重新開始該工作。`,unknownCode:`未知 HMS 代碼 — 詳情請參閱拓竹 Wiki。`,clearInstructions:`在印表機上清除錯誤以在此處消除它們。`,clearErrors:`清除錯誤`,clearSuccess:`HMS 錯誤已清除`,clearFailed:`清除 HMS 錯誤失敗`,actionSuccess:`已向印表機傳送動作`,actionFailed:`動作傳送失敗`,runoutExpectedSlot:`{{ranOut}} 的耗材已用盡。印表機現在正在等待 {{expected}} 裝入相容耗材。請將料卷裝入 {{expected}},然後選擇「重試」。`,runoutExpectedSlotOnly:`印表機正在等待 {{expected}} 裝入相容耗材。請在該料槽裝入料卷,然後選擇「重試」。`,runoutSlotUnknown:`耗材已用盡,列印已暫停。Bambuddy 無法確定印表機現在需要哪個料槽——請在印表機螢幕上查看所請求的料槽。`,actions:{RESUME_PRINTING:`恢復列印`,RESUME_PRINTING_DEFECTS:`恢復 (瑕疵可接受)`,RESUME_PRINTING_PROBELM_SOLVED:`恢復 (問題已解決)`,STOP_PRINTING:`停止列印`,CHECK_ASSISTANT:`檢視助理`,FILAMENT_EXTRUDED:`已擠出耗材,繼續`,RETRY_FILAMENT_EXTRUDED:`尚未擠出,重試`,CONTINUE:`已完成,繼續`,LOAD_VIRTUAL_TRAY:`載入耗材`,OK_BUTTON:`確定`,FILAMENT_LOAD_RESUME:`耗材已載入,恢復`,JUMP_TO_LIVEVIEW:`檢視即時畫面`,NO_REMINDER_NEXT_TIME:`下次不再提醒`,REFRESH_NOZZLE:`重新檢查`,IGNORE_NO_REMINDER_NEXT_TIME:`忽略,下次不再提醒`,IGNORE_RESUME:`忽略並恢復`,PROBLEM_SOLVED_RESUME:`問題已解決,恢復`,TURN_OFF_FIRE_ALARM:`知道了,關閉火警`,RETRY_PROBLEM_SOLVED:`重試 (問題已解決)`,CANCLE:`取消`,STOP_DRYING:`停止乾燥`,PROCEED:`繼續`,OK_JUMP_RACK:`確定`,ABORT:`中止`,DISABLE_PURIFICATION:`本次列印停用空氣淨化`,DONT_REMIND_NEXT_TIME:`不再提醒`,DBL_CHECK_CANCEL:`取消`,DBL_CHECK_DONE:`完成`,DBL_CHECK_RETRY:`重試`,DBL_CHECK_RESUME:`恢復`,DBL_CHECK_OK:`確認`,REMOVE_CLOSE_BTN:`關閉`}},mqttDebug:{title:`MQTT 偵錯日誌`,searchPlaceholder:`搜尋主題或負載...`,noMessages:`尚未紀錄訊息`,startLoggingHint:`點選"開始紀錄"以開始捕獲 MQTT 訊息`,noMessagesMatch:`沒有訊息匹配您的篩選條件`,adjustFilterHint:`嘗試調整您的搜尋或篩選條件`,incoming:`傳入`,outgoing:`傳出`,loggingStopped:`紀錄已停止`,loggingActive:`紀錄中 - 訊息將自動重新整理`,startLogging:`開始紀錄`,stopLogging:`停止紀錄`,clearLog:`清除日誌`,topic:`主題`,timestamp:`時間戳`,direction:`方向`,all:`全部`},printerFiles:{title:`檔案管理器`,storageUsed:`已用:`,storageFree:`剩餘:`,filterPlaceholder:`篩選檔案...`,deleteButton:`刪除`,deleteFiles:`刪除 {{count}} 個檔案`,deleteFileConfirm:`刪除"{{name}}"?此操作無法復原。`,deleteFilesConfirm:`刪除 {{count}} 個選中的檔案?此操作無法復原。`,noFiles:`印表機上沒有檔案`,loadingFiles:`載入檔案中...`,failedToLoad:`載入檔案失敗`,toast:{filesDeleted:`已刪除 {{count}} 個檔案`,deleteFailed:`刪除失敗:{{error}}`}},confirm:{delete:`確定要刪除嗎?`,unsavedChanges:`您有未儲存的更改。確定要離開嗎?`,clearQueue:`確定要清空佇列嗎?`},login:{title:`Bambuddy 登入`,subtitle:`登入您的帳戶`,username:`使用者名稱`,usernamePlaceholder:`輸入您的使用者名稱`,usernameOrEmail:`使用者名稱或信箱`,usernameOrEmailPlaceholder:`使用者名稱或 @ 信箱`,password:`密碼`,passwordPlaceholder:`輸入您的密碼`,signIn:`登入`,signingIn:`登入中...`,rememberMe:`記住我`,forgotPassword:`忘記密碼?`,autologinFailed:`自動SSO登入失敗。請在下方選擇一個提供者以繼續。`,localDisabledNotice:`本機登入已停用。請使用下方的SSO提供者之一。`,loginSuccess:`登入成功`,loginFailed:`登入失敗`,enterCredentials:`請輸入使用者名稱和密碼`,enterEmail:`請輸入您的電子郵件地址`,oidcLoginFailed:`OIDC 登入失敗`,oidcErrors:{providerError:`身份提供者返回了一個錯誤`,missingParameters:`OIDC 回呼缺少必要引數`,invalidState:`OIDC 狀態無效或已被使用`,stateExpired:`OIDC 登入會話已過期,請重試`,providerNotFound:`未找到 OIDC 提供者`,discoveryFailed:`無法獲取 OIDC 探索文件`,invalidDiscovery:`OIDC 探索文件無效`,networkError:`OIDC 權杖交換時出現網路錯誤`,badResponse:`OIDC 權杖交換時收到意外回應`,noIdToken:`OIDC 提供者未返回 ID 權杖`,validationFailed:`OIDC 權杖驗證失敗`,nonceMismatch:`OIDC nonce 不符,可能存在重放攻擊`,missingSubClaim:`OIDC 權杖缺少 sub 宣告`,noLinkedAccount:`沒有與此 OIDC 身份連結的本機帳戶`,accountInactive:`您的帳戶已被停用`,userResolutionFailed:`無法解析您的帳戶`,internalError:`OIDC 登入過程中發生內部錯誤`,tokenExchangeFailed:`OIDC 權杖交換失敗`},forgotPasswordTitle:`忘記密碼`,forgotPasswordMessage:`如果您忘記了密碼,請聯絡系統管理員進行重設。`,forgotPasswordEmailMessage:`輸入您的信箱地址,我們將向您傳送新密碼。`,emailAddress:`信箱地址`,emailPlaceholder:`your.email@example.com`,cancel:`取消`,sending:`傳送中...`,sendResetEmail:`傳送重設郵件`,howToReset:`如何重設密碼:`,resetStep1:`聯絡您的 Bambuddy 管理員`,resetStep2:`請他們在使用者管理中重設您的密碼`,resetStep3:`他們可以為您設定一個臨時密碼`,resetStep4:`使用新密碼登入並在設定中修改密碼`,gotIt:`知道了`,resetPassword:{title:`設定新密碼`,subtitle:`請在下方輸入並確認您的新密碼。`,newPassword:`新密碼`,newPasswordPlaceholder:`至少 8 個字元`,confirmPassword:`確認密碼`,confirmPasswordPlaceholder:`重複輸入新密碼`,saving:`儲存中…`,submit:`設定新密碼`,backToLogin:`回到登入`,passwordsDoNotMatch:`密碼不符`,passwordTooShort:`密碼至少需要 8 個字元`,resetFailed:`密碼重設失敗。連結可能已過期。`},twoFA:{title:`兩步驗證`,subtitle:`您的帳戶已啟用兩步驗證。請在下方輸入驗證碼。`,methodAuthenticator:`身份驗證器 App`,methodEmail:`信箱驗證碼`,methodBackup:`備用恢復碼`,instructionsTotp:`請開啟您的身份驗證器 App,輸入 Bambuddy 的 6 位驗證碼。`,instructionsEmail:`6 位驗證碼已傳送至您的信箱,有效期為 10 分鐘。`,instructionsEmailNotSent:`點選下方按鈕,透過郵件獲取驗證碼。`,instructionsBackup:`請輸入您的一個 8 位備用恢復碼。每個恢復碼只能使用一次。`,sendCodeButton:`傳送信箱驗證碼`,sendingCode:`傳送中...`,resendCode:`重新傳送驗證碼`,codeLabel:`驗證碼`,backupCodeLabel:`備用恢復碼`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`驗證`,verifyingButton:`驗證中...`,backToLogin:`← 回到登入頁面`,orContinueWith:`或透過以下方式登入`,signInWith:`使用 {{provider}} 登入`,enterCode:`請輸入驗證碼`,sendCodeFailed:`驗證碼傳送失敗`,invalidCode:`無效驗證碼,請重試。`}},setup:{title:`Bambuddy 設定`,subtitle:`為您的 Bambuddy 實例設定身份驗證`,enableAuth:`啟用身份驗證`,adminAccount:`管理員帳戶`,adminAccountDesc:`如果管理員使用者已存在,將使用現有管理員帳戶啟用身份驗證。如需使用現有管理員,請將下方欄位留空,或輸入新憑據建立新管理員使用者。`,adminUsername:`管理員使用者名稱`,adminPassword:`管理員密碼`,optionalIfAdminExists:`(如管理員使用者已存在則為可選)`,adminUsernamePlaceholder:`輸入管理員使用者名稱(可選)`,adminPasswordPlaceholder:`輸入管理員密碼(可選)`,confirmPassword:`確認密碼`,confirmPasswordPlaceholder:`確認管理員密碼`,settingUp:`設定中...`,completeSetup:`完成設定`,toast:{authEnabledAdminCreated:`身份驗證已啟用並建立了管理員使用者`,authEnabledExistingAdmins:`使用現有管理員使用者啟用了身份驗證`,setupCompleted:`設定完成`,enterBothCredentials:`請輸入管理員使用者名稱和密碼,或將兩者留空以使用現有管理員使用者`,passwordsDoNotMatch:`密碼不符`,passwordTooShort:`密碼至少需要 6 個字元`}},changePassword:{title:`修改密碼`,currentPassword:`目前密碼`,currentPasswordPlaceholder:`輸入目前密碼`,newPassword:`新密碼`,newPasswordPlaceholder:`輸入新密碼(至少 6 個字元)`,confirmPassword:`確認新密碼`,confirmPasswordPlaceholder:`確認新密碼`,passwordsDoNotMatch:`密碼不符`,passwordTooShort:`密碼至少需要 6 個字元`,changing:`修改中...`,success:`密碼修改成功`,failed:`密碼修改失敗`},plateAlert:{title:`列印已暫停!`,message:`在列印板上偵測到物體。列印已自動暫停。請清理列印板並繼續列印。`,understand:`我知道了`},camera:{title:`攝影機檢視`,invalidPrinterId:`無效的印表機 ID`,live:`即時`,snapshot:`快照`,restartStream:`重新啟動流`,refreshSnapshot:`重新整理快照`,fullscreen:`全螢幕`,exitFullscreen:`離開全螢幕`,connectingToCamera:`連線攝影機中...`,capturingSnapshot:`拍攝快照中...`,connectionLost:`連線已斷開`,connectionFailed:`攝影機連線失敗`,reconnecting:`{{countdown}} 秒後重新連線...(第 {{attempt}}/{{max}} 次嘗試)`,reconnectNow:`立即重新連線`,cameraUnavailable:`攝影機不可用`,cameraUnavailableDesc:`請確保印表機已通電並已連線。`,noCamera:`無可用攝影機`,retry:`重試`,cameraStream:`攝影機流`,zoomOut:`縮小`,zoomIn:`放大`,resetZoom:`重設縮放`,recording:`錄製中`,startRecording:`開始錄製`,stopRecording:`停止錄製`,chamberLight:`切換腔室燈`,unavailable:`攝影機無法使用`,diagnose:{button:`診斷`,modalTitle:`攝影機診斷`,running:`正在執行診斷...`,runFailed:`無法執行診斷: {{error}}`,retry:`重新執行`,stage:{tcp_reachable:`網路可達性`,first_frame:`畫面擷取`,live_stream_active:`直播串流進行中`},summary:{all_ok:`攝影機運作正常。診斷已成功完成所有階段。`,live_stream_active_healthy:`攝影機正在傳輸最新畫面 — 無需測試。`,printer_unreachable:`無法存取印表機。請檢查 IP 位址、網路連線以及印表機是否已開機。`,camera_port_closed:`印表機可存取,但攝影機連接埠已關閉。請確認印表機設定中已啟用僅 LAN 模式與開發者模式。`,no_frame:`已連線到攝影機,但未收到畫面。請重試或檢查印表機設定中攝影機是否已啟用。`,unknown_failure:`攝影機診斷因不明原因失敗。請查看支援日誌了解詳情。`},meta:{protocol:`協定`,port:`連接埠`,profile:`設定檔`}}},groups:{title:`群組管理`,subtitle:`管理存取控制的權限群組`,backToSettings:`返回設定`,createGroup:`建立群組`,noPermission:`您沒有存取此頁面的權限。`,system:`系統`,noDescription:`無描述`,usersCount:`{{count}} 個使用者`,permissionsCount:`{{count}} 個權限`,edit:`編輯`,delete:`刪除`,toast:{created:`群組建立成功`,updated:`群組更新成功`,deleted:`群組刪除成功`,enterGroupName:`請輸入群組名稱`},modal:{editGroup:`編輯群組`,createGroup:`建立群組`,cancel:`取消`,saving:`儲存中...`,creating:`建立中...`,saveChanges:`儲存更改`},form:{groupName:`群組名稱`,groupNamePlaceholder:`輸入群組名稱`,systemGroupWarning:`系統群組名稱不可更改`,description:`描述`,descriptionPlaceholder:`輸入描述(可選)`,permissions:`權限(已選 {{count}} 個)`},deleteModal:{title:`刪除群組`,message:`確定要刪除此群組嗎?此群組中的使用者將失去這些權限。`,confirm:`刪除群組`},editor:{title:`編輯群組`,createTitle:`建立群組`,search:`搜尋權限...`,selectAll:`全選`,clearAll:`清除全部`,permissionsSelected:`已選 {{count}} 個`,noResults:`沒有權限匹配您的搜尋`,websocketHint:`即時更新所需。缺少此權限時,介面將回退到定期輪詢。`}},users:{title:`使用者管理`,subtitle:`管理使用者及其對 Bambuddy 實例的存取`,backToSettings:`返回設定`,createUser:`建立使用者`,noPermission:`您沒有存取此頁面的權限。`,admin:`管理員`,noGroups:`無群組`,active:`活躍`,inactive:`非活躍`,edit:`編輯`,delete:`刪除`,system:`系統`,noGroupsAvailable:`無可用群組`,table:{username:`使用者名稱`,groups:`群組`,status:`狀態`,actions:`操作`},toast:{created:`使用者建立成功`,updated:`使用者更新成功`,deleted:`使用者刪除成功`,fillRequired:`請填寫所有必填欄位`,passwordsDoNotMatch:`密碼不符`,passwordTooShort:`密碼至少需要 6 個字元`,ldapProvisioned:`已建立 LDAP 使用者「{{username}}」`},modal:{createUser:`建立使用者`,editUser:`編輯使用者`,cancel:`取消`,creating:`建立中...`,saving:`儲存中...`,saveChanges:`儲存更改`,advancedAuthSubtitle:`使用進階認證`,tabsAriaLabel:`使用者來源`,localTab:`本機`,ldapTab:`LDAP`,ldapSearchLabel:`搜尋目錄`,ldapSearchPlaceholder:`輸入使用者名稱、姓名或電子郵件...`,ldapMinChars:`輸入至少 2 個字元以搜尋`,ldapTypeToSearch:`開始輸入以搜尋 LDAP 目錄`,ldapSearching:`搜尋目錄中...`,ldapNoResults:`目錄中沒有符合的使用者`,ldapSearchError:`目錄搜尋失敗。請檢查 LDAP 伺服器狀態。`,ldapAlreadyProvisioned:`已建立`,ldapSelectedLabel:`已選`,ldapProvision:`建立使用者`,ldapProvisioning:`建立中...`,ldapErrorProvision:`建立失敗。請檢查 LDAP 伺服器狀態後重試。`},form:{username:`使用者名稱`,usernamePlaceholder:`輸入使用者名稱`,email:`信箱`,emailPlaceholder:`user@example.com`,password:`密碼`,passwordPlaceholder:`輸入密碼`,confirmPassword:`確認密碼`,confirmPasswordPlaceholder:`確認密碼`,newPasswordPlaceholder:`輸入新密碼`,confirmNewPasswordPlaceholder:`確認新密碼`,leaveBlankToKeep:`留空以保持目前值`,groups:`群組`,optional:`可選`,autoGeneratedPassword:`將自動產生安全密碼並透過郵件傳送給使用者。`,passwordManagedByAdvancedAuth:`密碼由進階認證管理。使用"重設密碼"透過郵件向使用者傳送新密碼。`,resetPassword:`重設密碼`,resettingPassword:`重設密碼中...`},deleteModal:{title:`刪除使用者`,message:`確定要刪除此使用者嗎?此操作無法復原。`,confirm:`刪除使用者`}},streamOverlay:{title:`流疊加層`,invalidPrinterId:`無效的印表機 ID`,cameraStream:`攝影機流`,progress:`進度`,eta:`預計完成時間`,printerIdle:`印表機空閒`,printerOffline:`印表機離線`,status:{printing:`列印中`,paused:`已暫停`,finished:`已完成`,failed:`失敗`,idle:`空閒`,unknown:`未知`}},profiles:{title:`設定檔案`,subtitle:`管理您的切片預設和壓力推進校準`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`本機設定檔案`,kprofiles:`K 值設定`},orcaCloud:{connectedAs:`已連接`,connectedShort:`已連接到 Orca Cloud`,logout:`中斷連線`,noLogoutPermission:`您沒有中斷連線的權限`,noConnectPermission:`您沒有連接到 Orca Cloud 的權限`,retry:`重試`,connectButton:`連接 Orca Cloud`,connect:{title:`連接到 Orca Cloud`,description:`登入您的 Orca Cloud 帳號,將切片機設定檔同步到 Bambuddy。`},device:{title:`在 Orca Cloud 中核准 Bambuddy`,instruction:`開啟 Orca Cloud 並核准此代碼。核准後 Bambuddy 會自動連接。`,codeLabel:`您的配對代碼`,openButton:`開啟 Orca Cloud 核准頁面`,manualHint:`或前往 {{url}} 並輸入上方的代碼。`,waiting:`正在等待您核准…`,cancel:`取消`},profiles:{title:`您的 Orca Cloud 設定檔 ({{count}})`,refresh:`重新整理`,empty:`您的 Orca Cloud 帳號中尚無設定檔。`},toast:{disconnected:`已從 Orca Cloud 中斷連線`},errors:{startFailed:`無法啟動 Orca Cloud 登入流程。`,denied:`配對在 Orca Cloud 中被拒絕。`,expired:`配對代碼已過期。請點擊「連接」重試。`,pollFailed:`等待核准時連線中斷。請重試。`}},localProfiles:{title:`本機設定檔案`,subtitle:`從 OrcaSlicer 匯入和管理切片預設`,import:`匯入設定檔案`,importDesc:`將 .bbscfg、.bbsflmt、.orca_filament、.zip 或 .json 檔案拖放到此處`,importing:`匯入中...`,search:`搜尋本機預設...`,noPresets:`尚無本機預設`,noSearchResults:`沒有符合搜尋的預設`,badge:`本機`,edit:`編輯`,delete:`刪除`,cancel:`取消`,deleteConfirmTitle:`刪除預設`,deleteConfirm:`確定要刪除此預設嗎?此操作無法復原。`,source:`來源`,inheritsFrom:`繼承自`,filamentType:`類型`,vendor:`廠商`,compatiblePrinters:`相容印表機`,nozzleTemp:`噴嘴溫度`,cost:`成本`,density:`密度`,pressureAdvance:`壓力推進`,filament:`耗材`,process:`工藝`,printer:`印表機`,toast:{importSuccess:`已匯入 {{count}} 個預設`,importSkipped:`跳過 {{count}} 個預設(重複)`,importError:`匯入時出現 {{count}} 個錯誤`,deleted:`預設已刪除`,updated:`預設已更新`}},connectedAs:`已連線為`,signInExpiredTitle:`Bambu Cloud 登入已過期`,signInExpiredBody:`Bambu Lab 不再接受已儲存的權杖。請重新登入以恢復雲端設定檔、MakerWorld 匯入與韌體檢查。`,logout:`登出`,noLogoutPermission:`您沒有登出的權限`,failedToLoad:`載入設定檔案失敗`,retry:`重試`,time:{justNow:`剛剛`,minsAgo:`{{count}} 分鐘前`,hoursAgo:`{{count}} 小時前`,daysAgo:`{{count}} 天前`},toast:{loggedOut:`已登出`},login:{title:`連線到拓竹雲`,subtitle:`跨裝置同步您的切片預設`,email:`信箱`,password:`密碼`,region:`地區`,regionGlobal:`全球`,regionChina:`中國`,verificationCode:`驗證碼`,totpCode:`驗證器驗證碼`,checkEmail:`檢查您的信箱 ({{email}}) 獲取 6 位驗證碼`,enterTotpHint:`輸入驗證器 App 中的 6 位驗證碼`,accessToken:`存取權杖`,accessTokenHint:`貼上您的拓竹雲端存取權杖。中國大陸帳號(綁定手機號碼、無 Email 登入)僅能使用此方式登入。可從 MakerWorld 瀏覽器 Cookie 取得權杖,詳見 Wiki。`,back:`返回`,loginButton:`登入`,verifyButton:`驗證`,setTokenButton:`設定權杖`,useToken:`改用存取權杖`,useEmail:`改用信箱登入`,toast:{loggedIn:`登入成功`,codeSent:`驗證碼已傳送到您的信箱`,enterTotp:`輸入驗證器 App 中的程式碼`,tokenSet:`權杖設定成功`}},presets:{myPreset:`我的預設(可編輯)`,duplicate:`複製`,editable:`可編輯`,failedToLoadDetails:`載入預設詳情失敗`,deleteConfirm:`刪除此預設?`,deleteWarning:`這將從拓竹雲中永久刪除"{{name}}"。此操作無法復原。`,noDuplicatePermission:`您沒有複製預設的權限`,noEditPermission:`您沒有編輯預設的權限`,noDeletePermission:`您沒有刪除預設的權限`,types:{filament:`耗材預設`,printer:`印表機預設`,process:`工藝預設`},toast:{deleted:`預設已刪除`,created:`預設已建立`,updated:`預設已更新`,duplicated:`預設已複製`,fieldAdded:`欄位"{{key}}"已新增`,exported:`預設已匯出`},baseLabel:`基礎:{{name}}`,currentLabel:`目前:{{name}}`,newPreset:`新增預設`,editPreset:`編輯預設`,duplicatePreset:`複製預設`,createNewPreset:`建立新預設`,customizeSettings:`自訂新預設的設定`,compareWithBase:`與基礎預設比較`,compare:`比較`,basePreset:`基礎預設`,selectBasePreset:`選擇基礎預設...`,presetName:`預設名稱`,myCustomPreset:`我的自訂預設`,inheritsFrom:`繼承自`,dropJsonToImport:`拖放 JSON 以匯入`,tabs:{common:`常用`,allFields:`所有欄位`},availableFields:`可用欄位`,searchFieldsPlaceholder:`搜尋欄位...`,noMatchingFields:`沒有匹配的欄位`,allFieldsAdded:`所有欄位已新增`,addCustomField:`新增自訂欄位`,yourOverrides:`您的覆蓋值`,noOverridesYet:`尚無覆蓋值`,clickFieldsToAdd:`點選左側的欄位進行新增`,saveAsTemplate:`儲存為範本`,jsonTip:`提示:將 .json 檔案拖放到此對話方塊的任意位置以匯入設定`},cloudView:{searchPlaceholder:`搜尋預設...`,templates:`範本`,refresh:`重新整理`,newPreset:`新增預設`,clearFilters:`清除篩選`,compareMode:`比較模式`,selectAnotherPreset:`選擇另一個 {{type}} 預設`,clickTwoPresets:`點選兩個相同類型的預設進行比較`,selectFirst:`1. 選擇第一個`,selectSecond:`2. 選擇第二個`,compareNow:`立即比較`,lastSynced:`上次同步:`,showingCount:`顯示 {{showing}} / {{total}} 個預設`,noPresetsFound:`未找到預設`,columns:{filament:`耗材`,process:`工藝`,printer:`印表機`},noFilamentPresets:`無耗材預設`,noProcessPresets:`無工藝預設`,noPrinterPresets:`無印表機預設`,filters:{type:`類型`,owner:`所有者`,printer:`印表機`,nozzle:`噴嘴`,filament:`耗材`,layer:`層`,all:`全部`,myPresets:`我的預設`,builtIn:`內建`,process:`工藝`},noTemplatesPermission:`您沒有管理範本的權限`,noRefreshPermission:`您沒有重新整理設定檔案的權限`,noCreatePermission:`您沒有建立預設的權限`},templates:{title:`快速範本`,noTemplates:`尚無範本`,createFirst:`從預設編輯器建立範本`,typeFilter:`類型:`,deleteTitle:`刪除範本`,deleteWarning:`此操作無法復原`,deleteConfirm:`確定要刪除"{{name}}"嗎?`,namePlaceholder:`範本名稱`,descriptionPlaceholder:`描述`,settingsJson:`設定 (JSON)`,fieldsCount:`{{count}} 個欄位`,shownInModals:`在對話方塊中顯示`,hiddenInModals:`在對話方塊中隱藏`,apply:`套用`,toast:{deleted:`範本已刪除`,updated:`範本已更新`,created:`範本已建立`,applied:`範本已套用`}}},support:{debugLoggingActive:`偵錯日誌紀錄已啟用`,manageLogs:`管理`,collectItem7:`印表機連線和韌體版本`,collectItem8:`整合狀態(Spoolman、MQTT、HA)`,collectItem9:`網路介面(僅子網)`,collectItem10:`Python 套件版本`,collectItem11:`資料庫健康檢查`,collectItem12:`Docker 環境詳情`,bundleGenerating:`正在產生套件...`,bundleStepConnection:`正在執行印表機連線檢查`,bundleStepVirtualPrinters:`正在執行虛擬印表機設定檢查`,bundleStepLogScan:`正在掃描最近的日誌以尋找已知問題`,bundleStepBuild:`正在建立支援套件 ZIP 檔案`},fileManager:{title:`檔案管理器`,subtitle:`組織和管理您的列印檔案`,uploadFiles:`上傳檔案`,newFolder:`新增資料夾`,folderName:`資料夾名稱`,folderNamePlaceholder:`例如:功能零件`,renameFile:`重新命名檔案`,renameFolder:`重新命名資料夾`,invalidFilenameChar:`列印檔案名稱中不允許使用字元 "{{char}}"。印表機 SD 卡拒絕以下字元: < > : " / \\ | ? *`,moveFiles:`移動 {{count}} 個檔案`,rootNoFolder:`根目錄(無資料夾)`,current:`目前`,linkFolder:`連結資料夾`,linkFolderDescription:`將"{{name}}"連結到專案或歸檔以便快速存取。`,project:`專案`,archive:`歸檔`,noProjectsFound:`未找到專案`,noArchivesFound:`未找到歸檔`,unlink:`取消連結`,link:`連結`,dragDropFiles:`將檔案拖放到此處`,dropFilesHere:`將檔案放在此處`,releaseToUpload:`釋放以上傳`,orClickToBrowse:`或點選瀏覽`,allFileTypesSupported:`支援所有檔案類型。ZIP 檔案將被解壓。`,zipFilesDetected:`偵測到 ZIP 檔案`,zipExtractOptions:`ZIP 檔案將被解壓。選擇如何處理資料夾結構:`,preserveZipStructure:`保留 ZIP 中的資料夾結構`,createFolderFromZip:`從 ZIP 檔名建立資料夾`,stlThumbnailGeneration:`STL 縮圖產生`,zipMayContainStl:`ZIP 檔案可能包含 STL 檔案。可以在解壓時產生縮圖。`,thumbnailsCanBeGenerated:`可以為 STL 檔案產生縮圖。大型模型可能需要更長時間處理。`,generateThumbnailsForStl:`為 STL 檔案產生縮圖`,threemfDetected:`偵測到 3MF 檔案`,threemfExtractionInfo:`將自動從 3MF 檔案中提取印表機型號、材料、顏色和列印設定。`,willBeExtracted:`將被解壓`,filesExtracted:`已解壓 {{count}} 個檔案`,uploadComplete:`上傳完成:{{succeeded}} 個成功`,uploadFailed:`上傳失敗`,zipFilesFailed:`{{count}} 個檔案失敗`,uploading:`上傳中...`,changeLink:`更改連結...`,linkTo:`連結到...`,linkToProjectOrArchive:`連結到專案或歸檔`,generateThumbnail:`產生縮圖`,generateThumbnails:`產生縮圖`,generateThumbnailsForMissing:`為缺少縮圖的 STL 檔案產生縮圖`,gridView:`網格檢視`,listView:`列表檢視`,lowDiskSpaceWarning:`磁碟空間不足警告`,lowDiskSpaceDetails:`僅剩 {{free}}(總共 {{total}})。閾值設定為 {{threshold}} GB。`,files:`檔案`,folders:`資料夾`,size:`大小`,free:`剩餘`,allFiles:`所有檔案`,allExternal:`外部`,externalIsEmpty:`沒有外部檔案`,externalEmptyDescription:`已連結的外部資料夾中的檔案將顯示於此。`,wrap:`換行`,enableTextWrapping:`啟用文字換行`,disableTextWrapping:`停用文字換行`,collapse:`折疊`,collapseFoldersByDefault:`預設折疊資料夾`,expandFoldersByDefault:`預設展開資料夾`,folderSort:`資料夾排序`,folderSortByName:`依名稱`,folderSortByActivity:`依最近活動`,dragToResizeTooltip:`拖曳調整大小,雙擊重設`,searchFiles:`搜尋檔案...`,searchSubfoldersHint:`包含子資料夾`,readme:{truncated:`已截斷`,show:`顯示 README`,hide:`隱藏 README`,label:`README`},tags:{title:`標籤`,subtitle:`為檔案加上跨資料夾的標籤 —— 玩具、兒童安全、僅 PETG 等等。`,manage:`標籤`,manageTitle:`管理標籤目錄`,add:`新增標籤`,edit:`重新命名標籤`,name:`名稱`,fileCount:`檔案數`,empty:`還沒有標籤。建立一個開始為檔案加標籤吧。`,noMatches:`沒有符合的標籤。`,createPlaceholder:`例:玩具、兒童安全、petg`,createButton:`建立`,nameRequired:`名稱為必填。`,searchPlaceholder:`過濾標籤…`,created:`已建立標籤。`,updated:`已重新命名標籤。`,deleted:`已刪除標籤。`,saveFailed:`無法儲存標籤。`,deleteFailed:`無法刪除標籤。`,applyFailed:`無法套用標籤。`,applyAdd:`新增標籤`,applyRemove:`移除標籤`,applyAddSuccess:`已為 {{files}} 個檔案新增 {{count}} 個標籤。`,applyRemoveSuccess:`已從 {{files}} 個檔案移除 {{count}} 個標籤。`,actionAdd:`加到所選檔案`,actionRemove:`從所選檔案移除`,tagAction:`標籤`,bulkTitle:`為所選的 {{count}} 個檔案加標籤`,bulkTooltip:`在每個所選檔案上新增或移除標籤。`,noPermission:`您沒有為檔案加標籤的權限。`,filterLabel:`篩選條件:`,clearAll:`全部清除`,confirmDelete:`刪除標籤 "{{name}}"?`,confirmDeleteMessage:`此動作會從目錄中刪除該標籤。檔案保留其他標籤。`,confirmDeleteInUseMessage:`此標籤存在於 {{count}} 個檔案上。刪除後所有檔案上的標籤都會消失,但檔案本身不會動。`,editAria:`編輯 {{name}}`,deleteAria:`刪除 {{name}}`},allTypes:`所有類型`,prints:`列印`,ascending:`升序`,descending:`降序`,showModified:`顯示修改日期`,hideModified:`隱藏修改日期`,lastModified:`最後修改`,lastActivity:`最近活動`,resultsCount:`{{showing}} / {{total}} 個檔案`,selectAll:`全選`,deselectAll:`取消全選`,selected:`已選擇 {{count}} 個`,adding:`新增中...`,loadingFiles:`載入檔案中...`,folderIsEmpty:`資料夾為空`,noFilesYet:`尚無檔案`,folderEmptyDescription:`上傳檔案或將檔案移入此資料夾以開始使用。`,noFilesDescription:`上傳檔案以開始組織您的列印相關檔案。`,noMatchingFiles:`沒有匹配的檔案`,noMatchingFilesDescription:`沒有檔案匹配您目前的搜尋或篩選條件。`,clearFilters:`清除篩選`,printedCount:`已列印 {{count}} 次`,uploadedBy:`上傳者`,deleteFolder:`刪除資料夾`,deleteFile:`刪除檔案`,deleteFilesCount:`刪除 {{count}} 個檔案`,deleteFolderConfirm:`確定要刪除此資料夾嗎?其中的所有檔案也將被刪除。`,deleteFileConfirm:`確定要刪除此檔案嗎?`,deleteFilesConfirm:`確定要刪除 {{count}} 個選中的檔案嗎?此操作無法復原。`,deleting:`刪除中...`,noPermissionRenameFolder:`您沒有重新命名資料夾的權限`,noPermissionLinkFolder:`您沒有連結資料夾的權限`,noPermissionDeleteFolder:`您沒有刪除資料夾的權限`,onlyEmptyFoldersDeletable:`您只能刪除空資料夾`,noPermissionPrint:`您沒有列印的權限`,noPermissionSlice:`您沒有切片檔案的權限`,noPermissionAddToQueue:`您沒有新增到佇列的權限`,noPermissionDownload:`您沒有下載檔案的權限`,noPermissionRenameFile:`您沒有重新命名此檔案的權限`,noPermissionGenerateThumbnail:`您沒有產生縮圖的權限`,noPermissionDeleteFile:`您沒有刪除此檔案的權限`,noPermissionCreateFolder:`您沒有建立資料夾的權限`,noPermissionUpload:`您沒有上傳檔案的權限`,noPermissionMoveFiles:`您沒有移動檔案的權限`,noPermissionDeleteFiles:`您沒有刪除檔案的權限`,linkExternal:`連結外部`,linkExternalFolder:`連結外部資料夾`,linkExternalFolderDescription:`將主機目錄(NAS、USB、網路共享)掛載到檔案管理器中。檔案不會被複制——直接從原始路徑存取。`,externalFolderNamePlaceholder:`例如:NAS列印檔案`,externalPath:`主機路徑`,externalPathHelp:`Docker主機上目錄的絕對路徑。必須以繫結掛載方式掛載到容器中。`,readOnly:`只讀`,readOnlyHelp:`防止上傳和刪除`,showHiddenFiles:`顯示隱藏檔案(點檔案)`,externalFolder:`外部資料夾`,scanFolder:`掃描`,toast:{folderCreated:`資料夾已建立`,folderDeleted:`資料夾已刪除`,fileDeleted:`檔案已刪除`,filesDeleted:`已刪除 {{count}} 個檔案`,filesMoved:`檔案已移動`,folderLinked:`資料夾已連結`,folderUnlinked:`資料夾已取消連結`,externalFolderLinked:`外部資料夾已連結並掃描`,folderScanned:`掃描完成:新增 {{added}} 個,移除 {{removed}} 個`,addedToQueue:`已將 {{count}} 個檔案新增到佇列`,addedToQueuePartial:`已新增 {{added}} 個檔案,{{failed}} 個失敗`,failedToAddToQueue:`新增檔案失敗:{{error}}`,fileRenamed:`檔案已重新命名`,folderRenamed:`資料夾已重新命名`,thumbnailsGenerated:`已產生 {{count}} 個縮圖`,thumbnailsGeneratedPartial:`已產生 {{succeeded}} 個縮圖,{{failed}} 個失敗`,noStlMissingThumbnails:`沒有缺少縮圖的 STL 檔案`,failedToGenerateThumbnails:`產生縮圖失敗:{{error}}`,thumbnailGenerated:`縮圖已產生`,failedToGenerateThumbnail:`產生縮圖失敗:{{error}}`}},projects:{title:`專案`,subtitle:`組織和追蹤您的 3D 列印專案`,newProject:`新增專案`,editProject:`編輯專案`,deleteProject:`刪除專案`,projectName:`專案名稱`,description:`描述`,noProjects:`尚無專案`,noProjectsFiltered:`沒有{{status}}專案`,noProjectsFilteredHelp:`您沒有任何{{status}}專案。當專案狀態更改時,它們將出現在這裡。`,createFirst:`建立您的第一個項目以開始組織相關列印、追蹤進度和管理構建。`,createFirstButton:`建立您的第一個項目`,create:`建立`,files:`檔案`,prints:`列印`,plates:`板`,parts:`零件`,lastModified:`最後修改`,deleteConfirm:`確定要刪除此項目嗎?歸檔和佇列項目將被取消連結但不會被刪除。`,addFiles:`新增檔案`,removeFile:`移除檔案`,viewDetails:`檢視詳情`,namePlaceholder:`例如:Voron 2.4 構建`,urlLabel:`網址`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`網址必須以 http:// 或 https:// 開頭`,openExternalUrl:`開啟專案網址`,coverImageLabel:`封面圖片`,coverImageAlt:`專案封面圖片`,coverImageUpload:`上傳`,coverImageReplace:`替換`,coverImageRemove:`移除`,descriptionPlaceholder:`可選描述...`,color:`顏色`,targetPlates:`目標板數`,targetPlatesPlaceholder:`例如:25`,targetPlatesHelp:`列印任務數量`,targetParts:`目標零件數`,targetPartsPlaceholder:`例如:150`,targetPartsHelp:`所需零件總數`,targetSets:`每個檔案的份數`,targetSetsPlaceholder:`例如 10`,targetSetsHelp:`每個可列印檔案需要列印的次數`,tagsLabel:`標籤(逗號分隔)`,tagsPlaceholder:`例如:voron、功能件、禮物`,dueDate:`截止日期`,priority:`優先順序`,priorityLow:`低`,priorityNormal:`普通`,priorityHigh:`高`,priorityUrgent:`緊急`,statusActive:`進行中`,statusCompleted:`已完成`,statusArchived:`已歸檔`,done:`完成`,completed:`已完成`,failed:`失敗`,inQueue:`佇列中`,noPrintsYet:`尚無列印`,printJobs:`列印任務(板)`,partsPrinted:`已列印零件`,failedParts:`失敗零件`,import:`匯入`,export:`匯出`,importProject:`匯入專案`,exportAll:`匯出所有專案`,loading:`載入專案中...`,noEditPermission:`您沒有編輯專案的權限`,noDeletePermission:`您沒有刪除專案的權限`,noCreatePermission:`您沒有建立專案的權限`,noImportPermission:`您沒有匯入專案的權限`,noExportPermission:`您沒有匯出專案的權限`,toast:{created:`專案已建立`,updated:`專案已更新`,deleted:`專案已刪除`,imported:`專案已匯入`,multipleImported:`已匯入 {{count}} 個項目`,importFailed:`匯入失敗`,exported:`專案已匯出(僅中繼資料)`}},projectDetail:{notFound:`未找到專案`,backToProjects:`返回專案`,export:`匯出`,exportProject:`匯出專案`,noExportPermission:`您沒有匯出專案的權限`,noEditPermission:`您沒有編輯專案的權限`,partOf:`屬於:`,priorityLabel:`優先順序:`,noPrints:`此項目尚無列印`,status:{active:`進行中`,completed:`已完成`,archived:`已歸檔`},priority:{low:`低`,normal:`普通`,high:`高`,urgent:`緊急`},dueDate:{overdue:`已逾期`,today:`今天到期`,daysLeft:`還有 {{count}} 天`},progress:{platesProgress:`板進度`,partsProgress:`零件進度`,setsProgress:`完整套數`,sets:`套`,setsHint:`當每個可列印檔案都達到此次數時,即完成一套`,printJobs:`列印任務`,parts:`零件`,percentComplete:`{{percent}}% 完成`,remaining:`剩餘 {{count}} 個`},stats:{printJobs:`列印任務`,total:`總計`,failed:`{{count}} 個失敗`,partsPrinted:`已列印 {{count}} 個零件`,printTime:`列印時間`,filamentUsed:`耗材用量`},cost:{title:`成本追蹤`,filamentCost:`耗材成本`,energy:`能源`,totalCost:`總成本`,total:`總計`,includesBom:`含物料清單`,budget:`預算`,remaining:`剩餘`},subProjects:{title:`子專案 ({{count}})`},notes:{title:`備註`,noEditPermission:`您沒有編輯備註的權限`,placeholder:`新增關於此項目的備註...`,empty:`尚無備註。點選編輯新增備註。`},files:{title:`檔案`,linkFolders:`從檔案管理器連結資料夾`,forQuickAccess:`到此項目以便快速存取。`,fileCount:`{{count}} 個檔案`,empty:`未連結資料夾。前往檔案管理器將資料夾連結到此項目。`,printedCount:`已列印 {{count}} 次`,progressTooltip:`已完成 {{done}}/{{target}} 次列印`,noFiles:`此資料夾中沒有檔案。`},bom:{title:`材料清單`,acquired:`已獲取 {{completed}}/{{total}}`,showAll:`顯示全部`,hideDone:`隱藏已完成`,addPart:`新增零件`,noAddPermission:`您沒有新增零件的權限`,partNamePlaceholder:`零件名稱(例如:M3x8 螺絲)`,partName:`零件名稱`,qty:`數量`,price:`價格 ({{currency}})`,sourcingUrlPlaceholder:`採購連結(可選)`,remarksPlaceholder:`備註(可選)`,deletePart:`刪除零件`,deleteConfirm:`確定要刪除"{{name}}"嗎?`,noUpdatePermission:`您沒有更新零件的權限`,noEditPermission:`您沒有編輯零件的權限`,noDeletePermission:`您沒有刪除零件的權限`,totalCost:`總成本:`,empty:`材料清單中沒有零件。新增硬體、電子元件或其他元件以追蹤需要採購的物品。`},timeline:{title:`活動時間線`,empty:`尚無活動。`},template:{saveAsTemplate:`儲存為範本`,noCreatePermission:`您沒有建立範本的權限`},queue:{title:`佇列`,viewAll:`檢視全部`,printing:`{{count}} 個列印中`,queued:`{{count}} 個佇列中`},prints:{title:`列印 ({{count}})`},toast:{projectUpdated:`專案已更新`,partAdded:`零件已新增`,partRemoved:`零件已移除`,exportFailed:`匯出失敗`,projectExported:`專案已匯出`,templateCreated:`範本已建立`}},system:{title:`系統資訊`,version:`版本`,uptime:`執行時間`,cpuUsage:`CPU 使用率`,memoryUsage:`記憶體使用率`,diskUsage:`磁碟使用率`,networkInfo:`網路資訊`,logs:`日誌`,debugMode:`偵錯模式`,enableDebug:`啟用偵錯日誌`,disableDebug:`停用偵錯日誌`,downloadLogs:`下載日誌`,clearLogs:`清除日誌`,dockerInfo:`Docker 資訊`,containerName:`容器名稱`,imageName:`映象名稱`,platform:`平臺`,architecture:`架構`},sponsors:{sectionTitle:`獨立運作·社群支持`,tagline:`Bambuddy 完全免費,並將持續免費——感謝主動支持的使用者。沒有創投,也沒有雲端綁定。`,viewSupporters:`查看支持者`,toastPrints:`你已經用 Bambuddy 完成了 {{count}} 次列印。Bambuddy 之所以免費,要感謝支持者。`,toastCost:`你已經用 Bambuddy 追蹤了 {{total}} 的耗材。看看是誰讓專案保持獨立。`,toastArchives:`用 Bambuddy 封存了 {{count}} 次列印。看看是誰讓它保持獨立。`,toastAnniversary:`與 Bambuddy 相伴一年了!看看是誰讓專案保持獨立。`,toastVersionUpdate:`已更新至 v{{version}}。Bambuddy 之所以免費,要感謝支持者。`,toastBusiness:`您正在 {{count}} 台印表機上執行 Bambuddy?我們為團隊提供支援方案:優先修復、開立發票,以及與維護者的直接聯繫管道。`,businessCta:`Bambuddy 商業版`,businessTitle:`Bambuddy 商業版`,businessTagline:`您正在管理 {{count}} 台印表機。我們為團隊和列印農場提供優先支援、商業授權與發票開立。`},library:{title:`耗材庫`,addFilament:`新增耗材`,editFilament:`編輯耗材`,deleteFilament:`刪除耗材`,vendor:`廠商`,material:`材料`,color:`顏色`,kFactor:`K 值`,temperature:`溫度`,noFilaments:`耗材庫中沒有耗材`,deleteConfirm:`確定要刪除此耗材嗎?`,importFromPrinter:`從印表機匯入`,exportToFile:`匯出到檔案`,runWithPipeline:{actionLabel:`以管線執行`,noPermission:`您沒有執行管線的權限`,modalTitle:`以管線執行`,confirmTitle:`確認執行`,confirmIntro:`預檢發現此次執行存在問題`,sourceHint:`來源`,pipelineHint:`管線`,targetHint:`目標`,pipelineListAria:`可用管線`,runAnyway:`仍然執行`,loading:`載入中…`,empty:`尚未儲存管線。請開啟切片對話框並點擊「另存為管線」建立一個。`,noTarget:`未設定目標印表機`,noTargetMessage:`此管線沒有目標印表機。請在設定中開啟並選擇一個。`,copies:`副本數`,copiesHint:`最多 {{n}}`,classTarget:`任意 {{model}}`,toast:{started:`管線執行已開始`,failed:`無法啟動執行`},issue:{printerNotSet:`此管線未設定目標印表機。`,printerNotFound:`目標印表機已不存在。`,printerDisabled:`目標印表機已停用。`,printerOffline:`目標印表機已離線。`,filamentType:`耗材槽 {{slot}}:預期 {{expected}},AMS 實際 {{actual}}`,filamentColor:`耗材槽 {{slot}}:顏色不同(預期 {{expected}},AMS 實際 {{actual}})`,amsSlotMissing:`此印表機上沒有 AMS 槽 {{slot}}`,filamentUnverified:`耗材槽 {{slot}} 來自雲端 / 標準預設,無法靜態驗證。`,noClassMatches:`此安裝中沒有符合該管線目標型號類別({{expected}})的印表機。`,classNotSet:`管線目標設定為印表機類別但未選擇型號。`}}},slice:{title:`切片模型`,action:`切片`,actionAll:`切片全部 {{count}} 個盤面`,actionAllTitle:`將所有盤面切片為單一的多盤面輸出(單一封存)。線材選擇涵蓋專案定義的每個槽位。`,allPlatesToggle:`切片全部 {{count}} 個盤面`,slicing:`切片中…`,printer:`印表機設定檔`,process:`製程設定檔`,filament:`耗材設定檔`,filamentSlot:`耗材 {{index}}({{type}})`,selectPreset:`— 選擇預設 —`,loadingPresets:`載入預設中…`,analyzingPlateFilaments:`分析列印板耗材中…`,analyzingPlateFilamentsHint:`正在執行預覽切片以發現此列印板使用的 AMS 插槽。之後會快取 — 重新開啟是即時的。`,previewToast:`分析 {{name}} — {{elapsed}}`,previewWithProgress:`分析 {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,notUsedByPlate:`— 此列印板未使用`,noPresetsForSlot:`無可用預設`,otherPrinters:`其他印表機`,presetsLoadFailed:`載入預設失敗。請先開啟設定 → 設定檔以匯入。`,refreshPresets:`重新整理`,refreshPresetsTitle:`重新整理預設 — 擷取最新的雲端與打包設定清單(在 Bambu Studio 或 Bambu Handy 中刪除預設後使用)`,allPresetsRequired:`必須選擇所有預設`,useEmbedded:`使用檔案的內建設定`,useEmbeddedHint:`依設計者的設定(外牆、填充、耗材)切片,而非上方的設定檔。因您的印表機與檔案相符而可用。`,designSettings:`保留設計者的設定`,designSettingsHint:`此檔案相對標準設定檔修改了 {{count}} 項列印設定。`,designSettingsSelected:`已選擇 {{selected}} / {{total}}`,designSettingsPrinterCoupled:`與印表機相關`,designSettingsPrinterCoupledHint:`此值是為該檔案面向的印表機調校的,在你的印表機上可能不正確或超出範圍。`,enqueuing:`提交切片任務中…`,queued:`已排隊…`,failed:`切片失敗。請檢查切片器 sidecar 日誌。`,startedToast:`在背景切片 {{name}}…`,queuedToast:`已排隊:{{name}} — {{elapsed}}`,runningToast:`切片 {{name}} — {{elapsed}}`,runningWithProgress:`{{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,runningWithProgressMultiPlate:`盤面 {{plateIndex}} / {{plateCount}} • {{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,completedToast:`已切片 {{name}}`,failedTitle:`切片失敗`,failedToast:`切片 {{name}} 失敗:{{detail}}`,tier:{local:`已匯入`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`標準`},cloud:{notAuthenticated:`登入 Bambu Cloud(設定 → 設定檔 → Bambu Cloud)以查看雲端預設。`,expired:`Bambu Cloud 工作階段已過期 — 請重新登入以重新整理雲端預設。`,unreachable:`目前無法存取 Bambu Cloud。本機和標準預設仍可使用。`},orcaCloud:{notAuthenticated:`登入 Orca Cloud(設定檔 → Orca Cloud)以查看您的 Orca 預設。`,expired:`Orca Cloud 工作階段已過期 — 請重新登入以重新整理您的 Orca 預設。`,unreachable:`Orca Cloud 目前無法存取。其他預設仍可正常使用。`},bedType:{label:`列印板`,auto:`自動(使用製程預設)`,coolPlate:`冷板`,coolPlateSuperTack:`Cool Plate SuperTack`,engineering:`Engineering Plate`,highTemp:`High Temp Plate`,texturedPEI:`Textured PEI Plate`,smoothPEI:`Smooth PEI Plate`},pipelines:{label:`管線`,applyAria:`套用管線`,applyPrompt:`套用管線…`,empty:`無已儲存管線`,saveButton:`另存為管線`,saveTitle:`將目前四個槽位的選擇儲存為可重複使用的管線`,namePlaceholder:`管線名稱`,nameAria:`新管線名稱`,toast:{applied:`已套用「{{name}}」`,saved:`管線已儲存`,saveFailed:`儲存失敗`}}},spoolman:{title:`Spoolman 整合`,enabled:`Spoolman 已啟用`,url:`Spoolman URL`,connected:`已連線`,disconnected:`未連線`,testConnection:`測試連線`,sync:`同步`,syncing:`同步中...`,lastSync:`上次同步`,linkToSpoolman:`連結到 Spoolman`,openInSpoolman:`在 Spoolman 中開啟`,unlinkSpool:`取消連結耗材`,unlinkConfirmTitle:`取消指派料盤?`,unlinkConfirmMessage:`這將從此插槽中移除料盤。料盤本身的資料將保持不變。`,selectSpool:`選擇耗材`,noUnlinkedSpools:`無未指派的料盤`,linkSuccess:`料盤指派成功`,linkFailed:`料盤指派失敗`,unlinkSuccess:`料盤取消指派成功`,unlinkFailed:`料盤取消指派失敗`,linkedSpool:`已指派料盤`,spoolId:`耗材 ID`,fillSourceLabel:`(Spoolman)`,weight:`重量`,remaining:`剩餘`,disableWeightSync:`停用 AMS 估計重量同步`,disableWeightSyncDesc:`不從 AMS 估計值更新剩餘容量。如果您更喜歡 Spoolman 的用量追蹤而非 AMS 百分比估計,請使用此選項。新耗材仍將使用 AMS 估計值作為初始重量。`,reportPartialUsage:`報告失敗列印的部分用量`,reportPartialUsageDesc:`當列印失敗或被取消時,根據層進度報告估計的耗材使用量。`},locations:{title:`儲存位置`,subtitle:`管理貨架、抽屜等線軸實體存放位置`,add:`新增位置`,addShort:`新增`,edit:`編輯位置`,name:`名稱`,spools:`線軸`,empty:`尚無儲存位置。建立第一個貨架或抽屜。`,manage:`位置`,createPlaceholder:`例如:A 架、抽屜 1`,nameRequired:`位置名稱為必填`,created:`位置已建立`,updated:`位置已更新`,deleted:`位置已刪除`,saveFailed:`儲存位置失敗`,deleteFailed:`刪除位置失敗`,deleteBlocked:`刪除前請移走此位置上的所有線軸`,confirmDelete:`刪除「{{name}}」?`,confirmDeleteMessage:`此位置將從目錄中移除。請先移走線軸。`},inventory:{title:`耗材庫存`,subtitle:`管理您的料盤`,addToInventory:`新增至庫存`,addToInventoryPending:`正在新增...`,addToInventorySuccess:`料盤已新增至庫存`,addToInventoryFailed:`新增料盤至庫存失敗`,unknownSpoolTitle:`偵測到新耗材`,unknownSpoolMessage:`在 {{location}} 偵測到具有未知 RFID 標籤的料盤。是否立即新增至庫存?`,unknownSpoolSlot:`插槽`,bulk:{selectAllVisible:`選擇所有可見項`,selectRow:`選擇列`,selectGroup:`選擇群組`,selectionCount:`已選 {{count}} 個`,edit:`編輯`,printLabels:`列印標籤`,resetUsage:`重設使用量`,restore:`還原`,archive:`封存`,delete:`刪除`,clearSelection:`清除選擇`,editTitle:`批次編輯料盤`,editSubtitle:`將套用於選取的 {{count}} 個料盤。僅更新勾選的欄位。`,editHint:`在欄位中輸入即可標記為更新 — 僅傳送已勾選的列。留空欄位不會變更料盤(清空欄位僅能在單個料盤中操作)。`,useCustom:`使用「{{value}}」`,toggleField:`切換此欄位的更新`,changeCount:`將更新 {{count}} 個欄位。`,applyPending:`套用中...`,applyButton:`套用於 {{count}} 個料盤`,deleteTitle:`刪除選取的料盤`,archiveTitle:`封存選取的料盤`,restoreTitle:`還原選取的料盤`,resetUsageTitle:`重設選取料盤的使用量`,deleteMessage:`永久刪除 {{count}} 個料盤?此操作無法復原。`,archiveMessage:`封存 {{count}} 個料盤?之後可以還原。`,restoreMessage:`還原 {{count}} 個已封存的料盤?`,resetUsageMessage:`重設 {{count}} 個料盤的「總消耗」計數器?剩餘重量將被保留。`,updateSuccess:`已更新 {{count}} 個料盤`,updateFailed:`批次更新失敗`,updatePartial:`已更新 {{ok}} 個,{{failed}} 個失敗`,updateAllFailed:`{{count}} 個料盤更新全部失敗 — 已保留選擇以便重試`,deleteSuccess:`已刪除 {{count}} 個料盤`,deleteFailed:`批次刪除失敗`,deletePartial:`已刪除 {{ok}} 個,{{failed}} 個失敗`,deleteAllFailed:`{{count}} 個料盤刪除全部失敗 — 已保留選擇以便重試`,archiveSuccess:`已封存 {{count}} 個料盤`,archiveFailed:`批次封存失敗`,archivePartial:`已封存 {{ok}} 個,{{failed}} 個失敗`,archiveAllFailed:`{{count}} 個料盤封存全部失敗 — 已保留選擇以便重試`,restoreSuccess:`已還原 {{count}} 個料盤`,restoreFailed:`批次還原失敗`,restorePartial:`已還原 {{ok}} 個,{{failed}} 個失敗`,restoreAllFailed:`{{count}} 個料盤還原全部失敗 — 已保留選擇以便重試`,invalidHex:`請輸入 6 位十六進位字元 (RRGGBB) 或 8 位 (RRGGBBAA),否則此欄位不會套用。`},spoolmanMixedContentTitle:`Spoolman 無法透過 HTTPS 載入 — 瀏覽器已封鎖混合內容`,spoolmanMixedContentBody:`Bambuddy 透過您的反向代理以 HTTPS 提供服務,但您的 Spoolman 位址仍為 HTTP。基於安全考量,瀏覽器會封鎖混合內容,因此內嵌的 Spoolman 介面無法載入。Spoolman 也必須可透過 HTTPS 存取。`,spoolmanMixedContentFixReverseProxy:`請將 Spoolman 置於與 Bambuddy 相同的反向代理(Traefik / Nginx / Caddy)之後並啟用 HTTPS,然後在設定中將 Spoolman URL 更新為新的 HTTPS 位址。`,spoolmanMixedContentFixOpenNewTab:`作為替代方案,可在新分頁以 HTTP 開啟 Spoolman — 混合內容規則僅適用於內嵌框架,獨立分頁仍可正常運作。`,spoolmanOpenInNewTab:`在新分頁開啟 Spoolman`,labels:{title:`列印線材標籤`,selectedCount:`已選 {{count}} 項`,pickSpools:`選擇要列印標籤的線材:`,monochrome:`單色(黑白印表機)`,monochromeHint:`移除顏色色塊並加寬文字`,searchPlaceholder:`按名稱、品牌或 #ID 搜尋`,filterByMaterial:`材料:`,allMaterials:`全部`,selectVisible:`選擇所有可見 ({{count}})`,deselectVisible:`取消選擇可見`,clearAll:`全部清除`,noSpoolsToShow:`沒有要顯示的線材。請調整篩選條件後重試。`,noMatches:`沒有線材符合目前搜尋或篩選。`,printOne:`列印此線材的標籤`,printLabels:`列印標籤…`,bulkTitle:`從目前顯示的 {{count}} 個線材中選擇要列印標籤的`,noSpoolsTitle:`沒有要貼標籤的線材`,error:`無法產生標籤:{{msg}}`,sortBy:{label:`排序:`,id:`按 ID`,color:`按顏色`},templates:{amsHolderSmall:{label:`AMS 支架 — 小 (74 × 33 mm)`,hint:`每頁一個標籤;對應 MakerWorld 模型 752566 (AMS 耗材標籤支架) 中可列印的標籤。`},amsHolderLarge:{label:`AMS 支架 — 大 (75 × 55 mm)`,hint:`每頁一個標籤;對應 AMS 耗材標籤支架的紙卡插入款。空間足夠放置色塊、品牌、材質、ID 與 QR 碼。`},box40x30:{label:`盒標籤 (40 × 30 mm)`,hint:`每頁一張;常見的 DK/Brother 捲尺寸,適合用於耗材袋與儲物盒標籤。`},box:{label:`Box label (62 × 29 mm)`,hint:`每頁一個標籤;適配 Brother PT/QL 和 Dymo 小標籤。`},averyL7160:{label:`Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)`,hint:`歐洲規格紙張;每張 A4 頁 21 個標籤。`},avery5160:{label:`Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)`,hint:`美國規格紙張;每張 Letter 頁 30 個標籤。`}}},csv:{importButton:`匯入 CSV`,exportButton:`匯出 CSV`,modalTitle:`從 CSV 匯入耗材`,selectFile:`選擇 CSV 檔案或拖放到此處`,dragHint:`標頭:material(必填)、brand、subtype、color_name、rgba、…`,parsing:`正在讀取檔案…`,previewError:`無法讀取 CSV 檔案`,validCount:`{{count}} 個有效`,errorCount:`{{count}} 個錯誤`,skippedCount:`{{count}} 個略過`,colRow:`列`,colStatus:`狀態`,colColor:`顏色`,colorResolved:`已從目錄填入顏色`,colorCrossMaterial:`顏色取自其他材料 — 目錄中無精確匹配`,duplicateExisting:`已存在具有此材料、品牌和顏色的線材卷 — 仍會作為新線材卷匯入`,spoolmanHint:`在 Spoolman 模式下,請使用 Spoolman 內建的 CSV 匯入/匯出。`,importValidRows:`匯入 {{count}} 個有效列`,noValidRows:`沒有有效列`,importing:`正在匯入…`,importSuccess:`已匯入 {{count}} 個耗材`,importError:`匯入失敗`,exportError:`匯出失敗`},addSpool:`新增耗材`,editSpool:`編輯耗材`,copySpool:`複製耗材`,material:`材料`,selectMaterial:`選擇材料...`,subtype:`子類型`,brand:`品牌`,searchBrand:`搜尋品牌...`,useCustomBrand:`使用"{{brand}}"`,useCustomMaterial:`使用自訂材料:{{material}}`,suggestedOptions:`推薦`,allOptions:`全部`,colorName:`顏色名稱`,colorNamePlaceholder:`翡翠白、烈焰紅...`,color:`顏色`,hexColor:`十六進位顏色`,pickColor:`選擇自訂顏色`,labelWeight:`標籤重量`,coreWeight:`空盤重量`,searchSpoolWeight:`搜尋耗材重量...`,weightUsed:`已使用`,currentWeight:`剩餘重量`,measuredWeight:`稱量重量`,spoolName:`料盤`,costPerKg:`每公斤成本`,storageLocation:`存放位置`,storageLocationPlaceholder:`例如:貨架A,抽屜1`,openInInventory:`在庫存中查看`,measuredWeightError:`稱量重量必須在 {{min}}g 到 {{max}}g 之間。`,slicerFilament:`切片耗材`,slicerFilamentName:`切片預設名稱`,slicerPreset:`切片預設`,searchPresets:`搜尋耗材預設...`,selectedPreset:`已選擇`,noPresetsFound:`未找到預設`,tempOverrides:`溫度覆蓋`,note:`備註`,notePlaceholder:`關於此耗材的任何備註...`,category:`類別`,categoryPlaceholder:`例如:生產、原型、客戶A`,categoryNone:`未分類`,storageLocationNone:`未設定位置`,lowStockThresholdOverride:`低庫存閾值(此料盤)`,lowStockThresholdOverrideHelp:`留空以使用全域閾值({{global}}%)。`,clearRfid:`清除 RFID 標籤`,rfidCleared:`RFID 標籤已清除`,archive:`歸檔`,restore:`恢復`,noSpools:`尚無耗材。新增您的第一個耗材開始使用。`,noAvailableSpools:`沒有可用的耗材。請先向庫存中新增耗材,或從其他槽位取消指派一個耗材。`,kProfiles:`K 值設定`,addKProfile:`新增 K 值設定`,assignSpool:`分配耗材`,unassignSpool:`取消分配`,assignSuccess:`耗材已分配,AMS 槽位已設定`,assignPendingInsert:`已分配。插入耗材後將設定槽位。`,assignFailed:`分配耗材失敗`,assignMismatchTitle:`材料不符`,assignMismatchMessage:`所選料盤材料 "{{spoolMaterial}}" 與 {{location}} 的料槽材料 "{{trayMaterial}}" 不符。仍要分配嗎?`,assignMismatchConfirm:`仍然分配`,assignPartialMismatchMessage:`料盤材料 "{{spoolMaterial}}" 與 {{location}} 的 "{{trayMaterial}}" 相近但不完全一致。是否繼續?`,assignProfileMismatchMessage:`料盤設定 "{{spoolProfile}}" 與 {{location}} 的料槽設定 "{{trayProfile}}" 不一致。是否繼續?`,assignReconfigureNote:`AMS 槽位將重新設定為使用料盤的設定。`,selectSpool:`選擇要分配到此槽位的耗材`,assigned:`已分配`,assigning:`分配中...`,searchSpools:`搜尋耗材...`,showAllSpools:`顯示所有耗材`,spoolmanSpools:`Spoolman 線軸`,allMaterials:`所有材料`,filterByBrand:`按品牌篩選...`,showArchived:`顯示已歸檔`,quickAdd:`快速新增(庫存)`,quantity:`數量`,stock:`庫存`,configured:`已設定`,spoolsCreated:`已建立 {{count}} 個耗材`,spoolsPartiallyCreated:`已建立 {{created}} / {{total}} 個耗材(部分失敗)`,spoolCreated:`耗材已建立`,spoolUpdated:`耗材已更新`,spoolDeleted:`耗材已刪除`,deepLinkSpoolNotFound:`找不到耗材`,deepLinkFetchFailed:`無法載入耗材 — 請重試`,spoolArchived:`耗材已歸檔`,spoolRestored:`耗材已恢復`,kProfileSaveFailed:`K值設定檔設定無法儲存`,syncWeightSpoolNotFound:`找不到耗材 — 可能已被刪除`,syncWeightSpoolmanUnreachable:`Spoolman 無法存取 — 請稍後再試`,syncWeightFailed:`重量同步失敗`,spoolmanUnreachable:`Spoolman 無法存取 — 請稍後再試`,deleteSpoolNotFound:`找不到耗材 — 可能已被刪除`,deleteFailed:`刪除耗材失敗`,archiveSpoolNotFound:`找不到耗材 — 可能已被刪除`,archiveFailed:`歸檔耗材失敗`,restoreSpoolNotFound:`找不到耗材 — 可能已被刪除`,restoreFailed:`恢復耗材失敗`,saveFailed:`儲存變更失敗`,tagClearFailed:`清除標籤失敗`,deleteConfirm:`確定要刪除此耗材嗎?此操作無法復原。`,archiveConfirm:`確定要歸檔此耗材嗎?`,advancedSettings:`進階設定`,filamentInfoTab:`耗材資訊`,paProfileTab:`PA 設定`,filamentInfo:`耗材`,additional:`附加`,loadingPresets:`載入雲端預設中...`,cloudConnected:`雲端已連線`,cloudNotConnected:`雲端未連線(使用預設值)`,recentColors:`最近`,searchColors:`搜尋顏色...`,searchResults:`搜尋結果`,allColors:`所有顏色`,commonColors:`常用顏色`,showLess:`顯示更少`,showAll:`顯示全部`,noColorsFound:`沒有顏色匹配您的搜尋`,noResults:`未找到匹配項`,extraColorsLabel:`附加顏色`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`貼上 2 至 8 個十六進位色值,以逗號分隔。將以漸層方式呈現。`,extraColorsInvalid:`已略過無效的十六進位值:{{tokens}}`,colorEffectLabel:`效果`,colorEffect:{none:`無`,sparkle:`閃光`,wood:`木紋`,marble:`大理石`,glow:`夜光`,matte:`霧面`,silk:`絲光`,galaxy:`星空`,rainbow:`彩虹`,metal:`金屬`,translucent:`半透明`,gradient:`漸層`,dualColor:`雙色`,triColor:`三色`,multicolor:`多色`},selectMaterialFirst:`請先在耗材資訊分頁中選擇材料。`,noPrintersConfigured:`未設定印表機。新增印表機以使用 PA 設定。`,matchingFilter:`匹配`,anyBrand:`任何品牌`,anyVariant:`任何變體`,autoSelect:`自動選擇`,matches:`匹配`,match:`匹配`,noMatches:`無匹配`,connected:`已連線`,offline:`離線`,printerOffline:`印表機離線。連線後檢視校準設定。`,noKProfilesMatch:`沒有 K 值設定匹配所選耗材。`,leftNozzle:`左噴嘴`,rightNozzle:`右噴嘴`,profilesSelected:`個校準設定已選擇`,totalInventory:`總庫存`,totalConsumed:`總消耗`,byMaterial:`按材料`,inPrinter:`在印表機中`,lowStock:`庫存不足`,sinceTracking:`自開始追蹤`,resetConsumedCounter:`重置計數器`,resetConsumedCounterTooltip:`將此料盤的已消耗克數計數器歸零。剩餘重量不會變更。`,resetConsumedCounterConfirm:`將此料盤的已消耗克數計數器重置為 0?後續列印將從零開始計算。料盤本身、剩餘重量計算與您的設定均不會變更。`,resetAllConsumedCounters:`重置所有計數器`,resetAllConsumedCountersTooltip:`將每個料盤的已消耗克數計數器歸零。剩餘重量不會變更。`,resetAllConsumedCountersConfirm:`將全部 {{count}} 個料盤(含已封存)的已消耗克數計數器重置為 0?這將清空「累計消耗」統計值,後續列印從零開始計算。料盤與剩餘重量不會變更。`,consumedCounterReset:`計數器已重置`,allConsumedCountersReset:`已重置 {{count}} 個料盤的計數器`,resetConsumedCounterFailed:`重置計數器失敗`,loadedInAms:`已裝載到 AMS/外接`,remaining:`剩餘`,weightCheck:`重量檢查`,lastWeighed:`上次稱量`,neverWeighed:`從未稱量`,search:`搜尋耗材...`,showing:`顯示`,to:`到`,of:`共`,show:`顯示`,spools:`個耗材`,spool:`個耗材`,page:`頁`,noSpoolsMatch:`未找到結果`,noSpoolsMatchDesc:`嘗試調整您的搜尋或篩選條件。`,active:`活躍`,archived:`已歸檔`,all:`全部`,used:`已使用`,new:`新的`,clearFilters:`清除篩選`,table:`表格`,cards:`卡片`,net:`淨重`,groupSimilar:`分組`,groupedSpools:`{{count}} 個相同耗材`,groupedRows:`行`,columns:`列`,configureColumns:`設定列`,configureColumnsDesc:`拖曳以重新排序列或使用箭頭。使用眼睛圖示切換可見性。`,visible:`可見`,reset:`重設`,cancel:`取消`,applyChanges:`套用更改`,moveUp:`上移`,moveDown:`下移`,hideColumn:`隱藏列`,showColumn:`顯示列`,linkToSpool:`連結到耗材`,tagLinked:`標籤已連結到耗材`,tagLinkFailed:`連結標籤失敗`,tagAlreadyLinked:`標籤已連結到其他耗材`,unknownTag:`偵測到未知 RFID 標籤`,usageHistory:`使用歷史`,noUsageHistory:`尚無使用紀錄`,printName:`列印名稱`,weightConsumed:`消耗重量`,clearHistory:`清除`,historyCleared:`使用歷史已清除`,fillSourceLabel:`(庫存)`,lowStockThresholdError:`閾值必須在 0.1 到 99.9 之間`,spoolmanFilamentCatalog:`Spoolman 耗材目錄`,pickFromSpoolmanCatalog:`從 Spoolman 目錄選擇…`,spoolmanFilamentSelected:`已從 Spoolman 目錄選擇耗材`,spoolmanFilamentUnlinked:`已解除耗材目錄關聯`,noSpoolmanFilaments:`Spoolman 目錄中未找到耗材`,spoolmanFilamentColorSwatch:`耗材顏色`,spoolWeightManagedBySpoolman:`空線軸重量在 Spoolman 中按耗材類型管理`,spoolmanCatalogLoadFailed:`無法載入 Spoolman 耗材目錄`},timelapse:{title:`縮時攝影`,create:`建立縮時攝影`,download:`下載`,delete:`刪除`,preview:`預覽`,frameRate:`幀率`,quality:`品質`,processing:`處理中...`,noTimelapses:`無可用縮時攝影`},ams:{title:`AMS`,slot:`槽位`,empty:`空`,emptySlot:`空槽位`,slotEmpty:`空`,slotUnconfigured:`?`,emptySlotReset:`未指派線材`,unknown:`未知`,humidity:`濕度`,temperature:`溫度`,filamentType:`耗材類型`,filamentColor:`顏色`,remaining:`剩餘`,history:`AMS 歷史`,noHistory:`無可用歷史`,configureSlot:`設定槽位`,externalSpool:`外接耗材`,profile:`設定`,kFactor:`K 值`,fill:`填充`,configure:`設定`,used:`已使用`,remainingUnit:`剩餘`},printModal:{selectPrinter:`選擇印表機`,selectPlate:`選擇板`,filamentMapping:`耗材對應`,plateN:`板 {{n}}`,plateFilamentsUnreadable:`無法讀取所選盤的耗材資訊,因此無法進行對應。取消選取該盤即可將其餘盤加入佇列。`,totalCost:`總成本:`,slotRemainingShort:` - 剩餘 {{grams}}g`,printSettings:`列印設定`,bedLeveling:`熱床調平`,flowCalibration:`流量校準`,vibrationCalibration:`振動校準`,layerInspection:`首層檢查`,timelapse:`縮時攝影`,cancel:`取消`,noPrintersAvailable:`無可用印表機`,printerBusy:`印表機忙碌`,printerOffline:`印表機離線`,sameTypeDifferentColor:`相同類型,不同顏色`,filamentTypeNotLoaded:`耗材類型未裝載`,whenToPrint:`何時列印`,asap:`盡快`,queue:`佇列`,schedule:`排程`,dateTime:`日期和時間`,invalidDateTime:`請輸入有效的日期和時間`,openCalendar:`開啟日曆`,requireManualStart:`要求手動開始`,requirePreviousSuccess:`僅在上一次列印成功後開始`,autoOffAfter:`完成後關閉印表機`,helpAsap:`列印將新增到佇列頂端,並在符合條件的印表機閒置後立即開始。`,helpSchedule:`如果印表機閒置,列印將在排程時間開始。如果印表機忙碌,則會等待其可用。`,helpQueue:`列印將新增到佇列末端。`,leftNozzle:`左`,rightNozzle:`右`,leftNozzleTooltip:`左噴嘴`,rightNozzleTooltip:`右噴嘴`,filamentOverride:`耗材覆蓋`,filamentOverrideHint:`可選覆蓋用於基於模型的耗材分配。排程器將使用您選擇的耗材而不是原始 3MF 值進行匹配。`,originalFilament:`原始`,overrideWith:`覆蓋為`,resetToOriginal:`恢復為原始`,insufficientFilamentTitle:`耗材不足`,waitingForAmsStatus:`正在等待 {{printer}} 的 AMS 狀態…`,insufficientFilamentMessage:`部分已分配料盤的剩餘耗材少於本次列印所需:`,insufficientFilamentLine:`{{printer}} - {{slot}}:需要 {{required}}g,剩餘 {{remaining}}g`,printAnyway:`仍然列印`,forceColorMatch:`強制顏色匹配`,staggerPrinterStarts:`錯開印表機啟動`,staggerGroupSize:`群組大小`,staggerInterval:`間隔(分鐘)`,staggerPreview:`{{printers}} 台印表機 → 分成 {{groups}} 組,每組 {{size}} 台,每 {{interval}} 分鐘啟動一組`,staggerLastGroup:`最後一組:{{count}}`,staggerTotal:`總計:{{minutes}} 分鐘`,staggerToPrinters:`分批傳送到 {{count}} 臺印表機`,gcodeInjection:`注入自動列印G-code`},backup:{includesEncryptionKey:`本機備份包含 MFA 加密金鑰檔案(DATA_DIR/.mfa_encryption_key),因此備份 ZIP 是自包含的。請將 ZIP 視為敏感檔案 — 任何擁有該檔案的人都可以解密內部儲存的 OIDC 用戶端機密和 TOTP 機密。`,title:`備份與恢復`,createBackup:`建立備份`,restoreBackup:`恢復備份`,restoreDescription:`從備份檔案替換所有資料`,downloadBackup:`下載備份`,uploadBackup:`上傳備份`,lastBackup:`上次備份`,autoBackup:`自動備份`,backupNow:`立即備份`,restoreWarning:`警告:恢復備份將覆蓋所有目前資料。`,includeArchives:`包含歸檔`,includeSettings:`包含設定`,includeProfiles:`包含設定檔案`,backupSuccess:`備份建立成功`,restoreSuccess:`備份恢復成功`,backupFailed:`備份失敗`,restoreFailed:`恢復失敗`,restoreNote:`恢復期間虛擬印表機將停止`,githubBackup:`GitHub 備份`,enabled:`已啟用`,cloudLoginRequired:`需要登入 Bambu Cloud。請在 設定檔案 → 雲設定檔案 中登入以啟用 GitHub 備份。`,cloudLoginRequiredShort:`需要雲端登入`,githubDescription:`自動將您的設定檔案同步到私有 GitHub 倉庫以進行備份和版本歷史紀錄。`,repoIsPrivate:`儲存庫為私有 — 可安全備份。`,repoIsPublicWarning:`儲存庫為公開(PUBLIC)。Bambuddy 備份包含 MQTT 認證、Home Assistant 權杖、Prometheus 權杖、您的 Bambu Cloud 電子郵件,以及透過 K-profile 暴露的印表機存取碼。在您於服務商設定中將儲存庫改為私有之前,儲存將被阻擋。`,repoVisibilityUnknown:`無法確認儲存庫的可見性。Bambuddy 拒絕向任何未確認為私有的目標進行備份;儲存將被阻擋。`,repositoryUrl:`倉庫 URL`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`允許不安全的 HTTP`,allowInsecureHttpHint:`為無 TLS 的私人網路自托管執行個體啟用`,personalAccessToken:`個人存取權杖`,tokenSaved:`(已儲存)`,enterNewToken:`輸入新權杖以更新`,tokenHint:`具有內容讀寫權限的細粒度權杖`,branch:`分支`,provider:`Git 供應商`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`僅手動`,hourly:`每小時`,daily:`每天`,weekly:`每週`,includeInBackup:`包含在備份中`,kProfiles:`K 設定檔案`,kProfilesDescription:`來自已連線印表機的壓力推進校準`,noPrintersConnected:`沒有印表機連線`,printersConnected:`{{connected}}/{{total}} 已連線`,cloudProfiles:`雲設定檔案`,cloudProfilesDescription:`來自 Bambu Cloud 的耗材、印表機和工藝預設`,appSettings:`應用程式設定`,appSettingsDescription:`Bambuddy 設定(完整資料庫)`,spoolInventory:`耗材庫存`,spoolInventoryDescription:`耗材卷軸、使用紀錄和成本追蹤`,printArchives:`列印檔案`,printArchivesDescription:`列印歷史中繼資料(不含 gcode/3MF 檔案)`,lastBackupAt:`上次備份:`,noBackupsYet:`尚無備份`,next:`下次:`,startingBackup:`正在啟動備份...`,test:`測試`,enableBackup:`啟用備份`,testConnection:`測試連線`,enterRepoUrl:`請輸入倉庫 URL`,enterRepoAndToken:`請輸入倉庫 URL 和存取權杖`,repoRequired:`倉庫 URL 為必填項`,tokenRequired:`存取權杖為必填項`,githubBackupEnabled:`GitHub 備份已啟用`,tokenUpdated:`權杖已更新`,settingsSaved:`設定已儲存`,failedToSave:`儲存失敗:{{message}}`,backupCompleteFiles:`備份完成 - {{count}} 個檔案已更新`,backupSkippedNoChanges:`備份已跳過 - 無更改`,backupFailed2:`備份失敗:{{message}}`,clearedLogs:`已清除 {{count}} 條日誌`,failedToClearLogs:`清除日誌失敗:{{message}}`,history:`歷史紀錄`,clear:`清除`,date:`日期`,status:`狀態`,commit:`提交`,localBackup:`本機備份`,localBackupDescription:`建立 Bambuddy 資料的完整備份,包括資料庫、檔案、上傳和所有檔案。`,downloadBackupLabel:`下載備份`,completeBackupZip:`完整備份:資料庫 + 所有檔案(ZIP)`,download:`下載`,preparingBackup:`正在準備備份...`,creatingArchive:`正在建立備份歸檔...對於大型歸檔可能需要一些時間。`,downloadingFile:`正在下載備份檔案...`,backupDownloaded:`備份下載成功`,failedToCreateBackup:`建立備份失敗:{{message}}`,restore:`恢復`,restoreReplacesAll:`恢復將替換所有資料。`,restoreReplacesAllDetail:`您目前的資料庫和檔案將被完全替換。恢復後需要重新啟動。`,restoreConfirmTitle:`恢復備份`,restoreConfirmMessage:`您確定要從"{{filename}}"恢復嗎?這將完全替換您目前的資料庫和所有檔案。恢復後需要重新啟動應用程式。`,restoreConfirmButton:`恢復備份`,uploadingFile:`正在上傳備份檔案...`,backupRestoredRestart:`備份已恢復。請重新啟動 Bambuddy。`,failedToRestore:`恢復備份失敗。請檢查檔案格式。`,reloadNow:`立即重新載入`,creatingBackup:`正在建立備份`,restoringBackup:`正在恢復備份`,preparing:`準備中...`,processing:`處理中...`,doNotClosePage:`請不要關閉此頁面或離開頁面。對於大型備份,此操作可能需要幾分鐘。`,restoring:`恢復中...`,restoreComplete:`恢復完成`,restoreFailed2:`恢復失敗`,importSettings:`從備份檔案匯入設定`,pleaseWaitRestoring:`請等待資料恢復中`,selectBackupFile:`點選選擇備份檔案(.json 或 .zip)`,duplicateHandling:`重複項處理方式:`,matchPrinters:`印表機`,matchPrintersBy:`按序列號匹配`,matchSmartPlugs:`智慧插座`,matchSmartPlugsBy:`按 IP 位址匹配`,matchNotificationProviders:`通知提供者`,matchNotificationProvidersBy:`按名稱匹配`,matchFilaments:`耗材`,matchFilamentsBy:`按名稱 + 類型 + 品牌匹配`,matchArchives:`檔案`,matchArchivesBy:`按內容雜湊匹配(始終跳過)`,matchPendingUploads:`待上傳`,matchPendingUploadsBy:`按檔名匹配`,matchSettingsTemplates:`設定和範本`,matchSettingsTemplatesBy:`始終覆蓋`,replaceExisting:`替換現有資料`,keepExisting:`保留現有資料`,overwriteDescription:`用備份資料覆蓋已存在的項目`,keepDescription:`僅恢復尚不存在的項目`,overwriteCaution:`注意:`,overwriteWarning:`覆蓋將用備份資料替換您目前的設定。出於安全考慮,印表機存取碼永遠不會被覆蓋。`,cancel:`取消`,processingBackup:`正在處理備份檔案...`,itemsRestored:`已恢復項目`,itemsSkipped:`已跳過項目`,restored:`已恢復`,skippedAlreadyExist:`已跳過(已存在)`,filesCategory:`檔案(3MF、縮圖等)`,andMore:`...還有 {{count}} 項`,newApiKeysGenerated:`已產生新的 API 金鑰`,keysShownOnce:`這些金鑰僅顯示一次。請立即複製!`,copy:`複製`,noDataFound:`在備份檔案中未找到可恢復的資料。`,close:`關閉`,scheduledBackup:`排程備份`,scheduledBackupDescription:`依排程自動建立備份快照。輸出目錄可掛載到 NAS 或外部儲存。`,frequency:`頻率`,backupTime:`時間`,retention:`保留`,retentionDescription:`保留的備份數量`,outputPath:`輸出路徑`,outputPathPlaceholder:`預設:{{path}}`,outputPathDescription:`留空以使用預設位置`,runNow:`立即執行`,backupFiles:`備份檔案`,noScheduledBackups:`尚無備份`,deleteBackup:`刪除`,deleteBackupConfirm:`要刪除此備份檔案嗎?`,backupRunning:`備份進行中…`,scheduledBackupComplete:`備份已成功完成`,scheduledBackupFailed:`備份失敗`,nextBackup:`下次備份`,backupSize:`大小`,localTimeHint:`本地時間 ({{tz}})`,defaultPathLabel:`預設:`,pathCheck:{title:`Bambuddy 無法寫入此目錄`,howToFix:`解決方法:`,sandboxed:`Bambuddy 服務無法寫入 {{path}}。其 systemd unit 以 ProtectSystem=strict 執行,因此安裝、資料與記錄目錄以外的所有目錄對服務而言都是唯讀的,即使你自己的 shell 可以寫入也一樣。`,read_only:`{{path}} 位於唯讀檔案系統上。`,permission_denied:`Bambuddy 沒有寫入 {{path}} 的權限。請檢查該目錄的擁有者與權限。`,no_space:`{{path}} 所在的檔案系統已滿。`,not_a_directory:`{{path}} 存在,但不是目錄。`,missing:`{{path}} 不存在且無法建立。`,error:`Bambuddy 無法寫入 {{path}}。`,ephemeralTitle:`這些備份在容器重建後會遺失`,container_ephemeral:`{{path}} 位於 Bambuddy 容器內,而非主機上。寫入其中的備份會在容器重建時遺失。請從主機掛載該目錄:`},categories:{settings:`設定`,notification_providers:`通知提供者`,notification_templates:`通知範本`,smart_plugs:`智慧插座`,printers:`印表機`,filaments:`耗材`,maintenance_types:`維護類型`,archives:`檔案`,projects:`專案`,pending_uploads:`待上傳`,external_links:`外部連結`,api_keys:`API 金鑰`}},tags:{title:`標籤`,addTag:`新增標籤`,editTag:`編輯標籤`,deleteTag:`刪除標籤`,tagName:`標籤名稱`,tagColor:`標籤顏色`,noTags:`無標籤`,deleteConfirm:`確定要刪除此標籤嗎?`,manageTags:`管理標籤`},uploadModal:{title:`上傳 3MF 檔案`,dragDrop:`將 .3mf 檔案拖放到此處`,or:`或`,browseFiles:`瀏覽檔案`,extractionInfo:`將從 3MF 檔案中繼資料中自動提取印表機型號。`,uploaded:`已上傳`,failed:`失敗`,uploading:`上傳中...`,upload:`上傳`,uploadFailed:`上傳失敗`},editArchive:{title:`編輯歸檔`,name:`名稱`,namePlaceholder:`列印名稱`,printer:`印表機`,noPrinter:`無印表機`,project:`專案`,noProject:`無專案`,itemsPrinted:`列印數量`,itemsPrintedHelp:`此列印任務中生產的物品數量`,notes:`備註`,notesPlaceholder:`新增關於此列印的備註...`,externalLink:`外部連結`,externalLinkPlaceholder:`https://printables.com/model/...`,externalLinkHelp:`連結到 Printables、Thingiverse 或其他來源`,tags:`標籤`,tagsPlaceholder:`新增標籤...`,addMoreTags:`新增更多標籤...`,matchingTags:`匹配"{{query}}"`,existingTags:`現有標籤`,clickToAdd:`(點選新增)`,status:`狀態`,failureReason:`失敗原因`,selectReason:`選擇原因...`,photos:`列印成品照片`,photosHelp:`點選 + 新增列印成品照片`,printResult:`列印成品`,saving:`儲存中...`,failureReasons:{adhesionFailure:`附著力失敗`,spaghettiDetached:`拉絲 / 脫落`,layerShift:`層偏移`,cloggedNozzle:`噴嘴堵塞`,filamentRunout:`耗材用完`,warping:`翹曲`,stringing:`拉絲`,underExtrusion:`擠出不足`,powerFailure:`斷電`,userCancelled:`使用者取消`,other:`其他`},statuses:{completed:`已完成`,failed:`失敗`,aborted:`已取消`,printing:`列印中`}},kProfiles:{title:`K 值設定`,noPrintersConfigured:`未設定印表機`,addPrinterInSettings:`在設定中新增印表機以管理 K 值設定`,noActivePrinters:`無活躍印表機`,enablePrinterConnection:`啟用印表機連線以檢視其 K 值設定`,loadingProfiles:`載入 K 值設定中...`,printerOffline:`印表機離線`,printerOfflineDesc:`所選印表機未連線。開啟電源以檢視 K 值設定。`,noMatchingProfiles:`無匹配的設定`,noMatchingProfilesDesc:`沒有設定匹配您的搜尋條件`,noKProfiles:`無 K 值設定`,noKProfilesDesc:`未找到 {{diameter}}mm 噴嘴的壓力推進設定`,createFirstProfile:`建立第一個設定`,printer:`印表機`,nozzle:`噴嘴`,refresh:`重新整理`,addProfile:`新增設定`,export:`匯出`,import:`匯入`,select:`選擇`,selectAll:`全選`,delete:`刪除`,searchPlaceholder:`按名稱或耗材搜尋...`,allExtruders:`所有擠出機`,leftOnly:`僅左側`,rightOnly:`僅右側`,allFlow:`所有流量`,hfOnly:`僅高流量`,sOnly:`僅標準`,sortName:`排序:名稱`,sortKValue:`排序:K 值`,sortFilament:`排序:耗材`,leftExtruder:`左擠出機`,rightExtruder:`右擠出機`,modal:{addTitle:`新增 K 值設定`,editTitle:`編輯 K 值設定`,profileName:`設定名稱`,profileNamePlaceholder:`我的 PLA 設定`,kValue:`K 值`,kValuePlaceholder:`0.020`,kValueHelp:`典型範圍:PLA 0.01 - 0.06,PETG 0.02 - 0.10`,filament:`耗材`,selectFilament:`選擇耗材...`,noFilamentsHelp:`未找到耗材。請先在 Bambu Studio 中建立 K 值設定。`,flowType:`流量類型`,highFlow:`高流量`,standard:`標準`,nozzleSize:`噴嘴尺寸`,extruder:`擠出機`,extruders:`擠出機`,left:`左`,right:`右`,notes:`備註(本機儲存)`,notesPlaceholder:`新增關於此設定的備註...`,notesHelp:`備註儲存在 Bambuddy 中,不在印表機上`,syncing:`與印表機同步中...`,savingExtruder:`儲存到擠出機 {{current}}/{{total}}...`,pleaseWait:`請稍候`},deleteConfirm:{title:`刪除設定`,cannotUndo:`此操作無法復原`,message:`確定要從印表機刪除"{{name}}"嗎?`},bulkDelete:{title:`刪除設定`,cannotUndo:`此操作無法復原`,message:`確定要從印表機刪除 {{count}} 個選中的設定嗎?`},toast:{profileSaved:`K 值設定已儲存`,profilesSaved:`K 值設定已儲存到 {{count}} 個擠出機`,selectAtLeastOneExtruder:`請至少選擇一個擠出機`,profileDeleted:`K 值設定已刪除`,profilesDeleted:`已刪除 {{count}} 個設定`,exportedProfiles:`已匯出 {{count}} 個設定`,importedProfiles:`已匯入 {{count}} / {{total}} 個設定`,noProfilesToExport:`無可匯出的設定`,invalidFileFormat:`無效的檔案格式`,failedToParseImport:`解析匯入檔案失敗`,failedToSaveBatch:`批次儲存 K 值設定失敗`,noteSaved:`備註已儲存`,failedToSaveNote:`儲存備註失敗`},permission:{noRead:`您沒有重新整理設定的權限`,noCreate:`您沒有新增設定的權限`,noUpdate:`您沒有更新 K 值設定的權限`,noDelete:`您沒有刪除 K 值設定的權限`,noExport:`您沒有匯出設定的權限`,noImport:`您沒有匯入設定的權限`}},virtualPrinter:{title:`虛擬印表機`,running:`執行中`,stopped:`已停止`,description:{default:`啟用虛擬印表機,使其在 Bambu Studio 和 OrcaSlicer 中可見。傳送到此印表機的檔案將直接歸檔而不列印。`,proxy:`啟用代理,將切片軟體流量中繼到真實印表機,允許在任何網路上遠端列印。`},enable:{title:`啟用虛擬印表機`,visibleInSlicer:`在切片軟體發現中顯示為"Bambuddy"`,proxyingTo:`代理到 {{name}}`,notActive:`未啟用`},model:{title:`印表機型號`,description:`選擇要模擬的印表機型號。`,restartWarning:`更改型號將重新啟動虛擬印表機`},accessCode:{title:`存取碼`,isSet:`存取碼已設定`,notSet:`未設定存取碼 - 需要設定才能啟用`,placeholder:`輸入 8 位字元程式碼`,placeholderChange:`輸入新程式碼以更改`,hint:`必須恰好 8 個字元。切片軟體使用此程式碼進行認證。`,charCount:`({{count}}/8)`,inheritedFromTarget:`繼承自目標印表機`,derivedFromTargetHint:`使用目標印表機的存取碼。橋接會將切片軟體的認證轉發到實際印表機,因此兩個存取碼必須相符 — 如需變更,請在印表機設定中編輯存取碼。`,reveal:`顯示存取碼`,hide:`隱藏存取碼`},targetPrinter:{title:`目標印表機`,configured:`代理目標已設定`,notConfigured:`未選擇目標印表機 - 代理模式需要設定`,placeholder:`選擇印表機...`,hint:`選擇要將切片軟體流量代理到的印表機。印表機必須處於區域網路模式。`,noPrinters:`未設定印表機。請先新增印表機以使用代理模式。`},remoteInterface:{title:`網路介面覆蓋`,configured:`介面覆蓋已啟用`,optional:`可選 - 當自動檢測的 IP 不正確時使用(例如多網路卡、Docker、VPN)`,placeholder:`自動檢測(預設)...`,hint:`覆蓋透過 SSDP 廣播並在 TLS 憑證中使用的 IP 位址。在 Bambuddy 有多個網路介面時很有用。`},mode:{title:`模式`,archive:`歸檔`,archiveDesc:`立即歸檔檔案`,review:`審核`,reviewDesc:`歸檔前審核`,queue:`佇列`,queueDesc:`歸檔並新增到佇列`,proxy:`代理`,proxyDesc:`中繼到真實印表機`},autoDispatch:{title:`自動派發`,description:`新增到佇列時自動開始列印。關閉後,列印任務等待手動派發。`},queueForceColorMatch:{title:`強制顏色匹配`,description:`拒絕派發到沒有完全相同耗材類型和顏色的印表機。預設關閉 — 不啟用時,佇列僅按型號匹配,可能選到顏色錯誤的印表機。`},gcodeInjection:{title:`G-code 注入`,description:`將「設定」中依型號設定的 G-code 片段套用到此 VP 的作業。預設關閉。`},tailscaleDisabled:{title:`Tailscale 整合`,description:`啟用以將此 VP 標記為透過 Tailscale 公開。顯示主機的 Tailscale 位址,以便您知道要貼上到切片器中的 IP。CA 匯入步驟保持不變 — 此切換對憑證無影響。`},setupRequired:{title:`需要設定`,description:`虛擬印表機功能需要額外的系統設定才能工作。包括埠轉發、防火牆規則和平臺特定設定。`,readGuide:`啟用前請閱讀設定指南`},archiveNameSource:{title:`存檔名稱來源`,description:`選擇透過虛擬印表機接收檔案時新存檔的命名方式。"元資料"使用 3MF 中嵌入的切片標題(預設)。"檔名"使用 Bambu Studio 透過 FTP 傳送的檔案名稱。注意:當 3MF 包含標題欄位時,Bambu Studio 會以該欄位覆寫您在"傳送到印表機"對話方塊中輸入的名稱,因此兩種模式通常會產生相同的字串。`,metadata:`元資料`,filename:`檔名`},caCert:{title:`切片軟體憑證`,description:`虛擬印表機使用由 Bambuddy CA 簽發的 TLS 憑證。將此 CA 憑證匯入切片軟體的信任庫一次,切片軟體即可接受連線 — 無需再透過命令列取得。`,copy:`複製`,copied:`已複製`,download:`下載`,fingerprint:`SHA-256`},howItWorks:{title:`工作原理`,step1:`在同一區域網路中,虛擬印表機會透過發現機制自動出現在您的切片軟體(Bambu Studio / OrcaSlicer)中。從其他網路,透過 IP 位址和存取碼手動新增。`,step2:`在歸檔、審核和佇列模式下,使用切片軟體中的"傳送"按鈕將 3MF 檔案上傳到 Bambuddy。切片軟體會顯示"列印成功"— 檔案已儲存,未列印。`,step3:`在代理模式下,虛擬印表機將所有流量中繼到真實印表機 — 列印會立即開始,就像直接連線一樣。`},status:{title:`狀態詳情`,printerName:`印表機名稱`,model:`型號`,serialNumber:`序列號`,mode:`模式`,pendingFiles:`待處理檔案`,targetPrinter:`目標印表機`,ftpPort:`FTP 連接埠`,mqttPort:`MQTT 連接埠`,ftpConnections:`FTP 連線`,mqttConnections:`MQTT 連線`},toast:{updated:`虛擬印表機設定已更新`,failedToUpdate:`更新設定失敗`,copyFailed:`複製失敗 — 請手動選取文字`,accessCodeRequired:`請先設定存取碼`,targetPrinterRequired:`請先選擇目標印表機`,bindIpRequired:`請先設定繫結 IP`,accessCodeEmpty:`存取碼不能為空`,accessCodeLength:`存取碼必須恰好 8 個字元`,targetCodeChangedRebind:`存取碼已同步到新的目標印表機。請在切片軟體中重新加入此裝置以使用新的存取碼。`,created:`虛擬印表機已建立`,failedToCreate:`建立虛擬印表機失敗`,deleted:`虛擬印表機已刪除`,failedToDelete:`刪除虛擬印表機失敗`},list:{title:`虛擬印表機`,add:`新增`,addFirst:`新增虛擬印表機`,empty:`未設定虛擬印表機。新增一個以開始使用。`},bindIp:{title:`繫結介面`,placeholder:`選擇介面...`,hint:`此虛擬印表機繫結的網路介面。每臺印表機必須唯一。`},proxy:{accessCodeHint:`在代理模式下,在切片軟體中使用目標印表機的存取碼。連線會透明轉發到真實印表機。`},addDialog:{title:`新增虛擬印表機`,name:`名稱`,hint:`建立後可以設定存取碼、目標印表機和其他設定。`,create:`建立`},deleteConfirm:{title:`刪除虛擬印表機`,message:`確定要刪除"{{name}}"嗎?這將停止此印表機的所有服務。`}},modelViewer:{openInSlicer:`在切片軟體中開啟`,tabs:{model:`3D 模型`,gcode:`G-code 預覽`},notAvailable:`不可用`,notSliced:`未切片`,plates:`板`,allPlates:`所有板`,plateNumber:`板 {{number}}`,plateCount:`{{count}} 個板`,plateCount_other:`{{count}} 個板`,objectCount:`{{count}} 個物件`,objectCount_other:`{{count}} 個物件`,filamentCount:`{{count}} 種耗材`,filamentCount_other:`{{count}} 種耗材`,eta:`預計 {{minutes}} 分鐘`,noPreview:`此檔案無可用預覽`,pagination:{pageOf:`第 {{current}} / {{total}} 頁`,prev:`上一頁`,next:`下一頁`},errors:{failedToLoad:`載入檔案失敗`,noMeshes:`3MF 檔案中未找到網格`,unsupportedFormat:`不支援的檔案格式`}},maintenanceDescriptions:{lubricateCarbonRods:`在碳纖維杆上塗抹潤滑劑以確保順暢運動`,lubricateRails:`在線性導軌上塗抹潤滑劑以確保順暢運動`,cleanNozzle:`清潔熱端和噴嘴以防止堵塞`,checkBelts:`檢查皮帶張力以確保列印精度`,cleanBuildPlate:`清潔列印板以獲得更好的附著力`,checkExtruder:`檢查擠出機齒輪磨損情況`,checkCooling:`確保冷卻風扇正常工作`,generalInspection:`印表機綜合檢查`,cleanCarbonRods:`清潔碳纖維杆以減少摩擦`,lubricateSteelRods:`在鋼杆上塗抹潤滑劑以確保順暢運動`,cleanSteelRods:`清潔鋼杆以減少摩擦`,cleanLinearRails:`擦拭線性導軌以清除灰塵和碎屑`,checkPtfeTube:`檢查 PTFE 管的磨損或損壞`,replaceHepaFilter:`更換 HEPA 過濾器以保證空氣品質`,replaceCarbonFilter:`更換活性炭過濾器`,lubricateLeftNozzleRail:`潤滑左噴嘴導軌(H2 系列)`},smartPlugs:{offline:`離線`,admin:`管理`,openPlugAdminPage:`開啟插座管理頁面`,deleteSmartPlug:`刪除智慧插座`,turnOnSmartPlug:`開啟智慧插座`,turnOffSmartPlug:`關閉智慧插座`,turnOn:`開啟`,turnOff:`關閉`,addSmartPlug:{scanningNetwork:`掃描網路中...`,chooseEntity:`選擇實體...`,connectionFailed:`連線失敗`,searchEntities:`搜尋實體...`,searchPowerSensors:`搜尋功率感測器...`,searchEnergySensors:`搜尋能量感測器...`,placeholders:{plugName:`客廳插座`,mqttStateOnValue:`ON、true、1`,mqttSameAsPower:`與功率主題相同,或不同`}},linkedTo:`連結到:`,monitorOnly:`僅監控`,alerts:`警報`,scheduleOn:`開啟 {{time}}`,scheduleOff:`關閉 {{time}}`,on:`開啟`,off:`關閉`,power:`功率`,kwhToday:`今日kWh`,settings:`設定`,automationSettings:`自動化設定`,showInSwitchbar:`在開關欄顯示`,quickAccessSidebar:`從側邊欄快速存取`,enabled:`已啟用`,enableAutomation:`為此插座啟用自動化`,autoOn:`自動開啟`,autoOnDescription:`列印開始時開啟`,autoOff:`自動關閉`,autoOffDescription:`列印完成時關閉(一次性)`,autoOffPersistent:`保持啟用`,autoOffPersistentDescription:`在列印之間保持啟用而非一次性`,controlsPrinterPower:`為印表機供電`,controlsPrinterPowerDescription:`若此插座僅為配件(濾網風扇、燈光)供電,請關閉此選項;否則關閉插座會將印表機標記為離線。`,autoOffAfterDrying:`乾燥完成後自動關閉`,autoOffAfterDryingDescription:`AMS 乾燥完成後關閉`,delayAfterDryingMinutes:`乾燥後延遲(分鐘)`,turnOffDelayMode:`關閉延遲模式`,time:`時間`,temp:`溫度`,delayMinutes:`延遲(分鐘)`,tempThreshold:`溫度閾值(°C)`,tempThresholdDescription:`當噴嘴冷卻到此溫度以下時關閉`,edit:`編輯`,deleteConfirm:`確定要刪除"{{name}}"嗎?此操作無法復原。`,turnOnConfirm:`確定要開啟"{{name}}"嗎?`,turnOffConfirm:`確定要關閉"{{name}}"嗎?這將切斷連線裝置的電源。`,failedToTurn:`無法{{action}}"{{name}}"`,unknown:`未知`,addTitle:`新增智慧插座`,editTitle:`編輯智慧插座`,stopScanning:`停止掃描`,discoverTasmota:`發現Tasmota裝置`,foundDevices:`找到{{count}}個裝置 - 點選選擇:`,noDevicesFound:`未在您的網路中找到Tasmota裝置`,haNotConfigured:`Home Assistant未設定。請在以下位置設定`,haSettingsPath:`設定 → 網路 → Home Assistant`,selectEntity:`選擇實體 *`,ipAddress:`IP 位址 *`,nameLabel:`名稱 *`,username:`使用者名稱`,password:`密碼`,authHint:`如果您的Tasmota裝置不需要認證,請留空`,linkToPrinter:`連結印表機`,noPrinter:`無印表機(僅手動控制)`,linkingDescription:`連結後可在列印開始/完成時自動開關`,powerAlerts:`功率警報`,alertAbove:`高於時警報(W)`,alertBelow:`低於時警報(W)`,alertDescription:`當電力消耗超過這些閾值時收到通知。留空以停用該方向。`,dailySchedule:`每日計畫`,turnOnAt:`開啟時間`,turnOffAt:`關閉時間`,scheduleDescription:`每天在這些時間自動開關插座。留空以跳過該操作。`,showOnPrinterCard:`在印表機卡片上顯示`,displayOnPrinterCard:`在印表機卡片上顯示按鈕`,connectedResult:`已連線!`,deviceLabel:`裝置:{{name}} - `,stateLabel:`狀態:{{state}}`,test:`測試`,delete:`刪除`,save:`儲存`,add:`新增`,cancel:`取消`,failedToStartScan:`無法開始掃描`,nameRequired:`名稱為必填項`,entityRequired:`Home Assistant插座需要實體`,mqttTopicRequired:`必須為功率、能源或狀態監控設定至少一個MQTT主題`,loadingEntities:`正在載入實體...`,loading:`載入中...`,failedToLoadEntities:`載入實體失敗:{{error}}`,noEntitiesMatching:`未找到匹配"{{search}}"的實體`,noEntitiesAvailable:`無可用實體`,searchingEntities:`搜尋所有實體(找到{{count}}個)`,showingEntities:`顯示 switch、light、input_boolean({{count}}個可用)`,energyMonitoringOptional:`能源監控(可選)`,energyMonitoringHint:`搜尋並選擇提供功率/能源資料的感測器。`,powerSensorW:`功率感測器(W)`,energyTodayKwh:`今日能源(kWh)`,totalEnergyKwh:`總能源(kWh)`,noMatchingSensors:`無匹配的感測器`,none:`無`,mqttNotConfigured:`MQTT代理未設定。請在以下位置設定代理地址`,mqttSettingsPath:`設定 → 網路 → MQTT發布`,mqttNotConfiguredSuffix:`(您不需要啟用發布,只需填寫代理詳細資訊)。`,mqttMonitorOnlyDescription:`MQTT插座透過MQTT訂閱接收功率/能源資料。開關控制不可用 - 請使用您的MQTT代理或家庭自動化系統。`,powerMonitoring:`功率監控`,energyMonitoring:`能源監控`,stateMonitoring:`狀態監控`,optional:`可選`,topic:`主題`,jsonPath:`JSON路徑`,multiplier:`乘數`,onValue:`ON值`,mqttPowerHint:`JSON路徑從JSON負載中提取值(例如"power_l1")。如果主題發布原始數值,請留空。
+ON值:表示"ON"的确切字符串。留空以自动检测(ON、true、1)。`,restControl:`控制`,restOnUrl:`开启 URL`,restOffUrl:`关闭 URL`,restOnBody:`开启请求体`,restOffBody:`关闭请求体`,restMethod:`HTTP 方法`,restHeaders:`Custom Headers (JSON)`,restStatusUrl:`状态 URL`,restStatusPath:`状态 JSON 路径`,restStatusOnValue:`开启值`,restPowerUrl:`功率URL`,restPowerPath:`功率 JSON 路径`,restPowerMultiplier:`功率乘数`,restEnergyUrl:`能耗URL`,restEnergyPath:`能耗 JSON 路径(今日)`,restEnergyTotalPath:`能耗 JSON 路径(累计值)`,restEnergyTotalMultiplier:`累计值倍数`,restEnergyTotalPathHint:`例如 aenergy.total`,restEnergyTotalHint:`许多插座(包括所有 Shelly)只提供永不归零的累计计数值。该值应填在此处,而不是上面的字段:若当作今日用量读取,它在午夜不会归零,而“昨日”和“总计”会一直为空。Bambuddy 会据此推算“今日”和“昨日”,这需要一到两天的采样数据。Shelly 以瓦时为单位,因此倍数请填 0.001。`,restEnergyMultiplier:`能耗乘数`,restUrlRequired:`REST 插座至少需要一个 URL(ON 或 OFF)`,restHeadersHint:`例如 {"Authorization": "Bearer your-token"}`,restBodyHint:`例如 ON, {"state": "on"}`,restStatusHint:`轮询当前状态的 URL`,restPathHint:`例如 state 或 data.power.status`,restPowerUrlHint:`功率数据的独立URL(留空则使用状态URL)`,restEnergyUrlHint:`能耗数据的独立URL(留空则使用状态URL)`,restEnergyHint:`每个值可以使用独立的URL,或回退到状态URL。使用乘数进行单位转换(例如:0.001 将 Wh 转换为 kWh)。`,testConnection:`测试连接`,connectionSuccess:`连接成功`,noSwitchesInSwitchbar:`开关栏中没有开关`,enableSwitchbarHint:`在设置 > 智能插座中启用"在开关栏显示"`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`电子邮件`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`SMTP 电子邮件通知`,telegram:`通过 Telegram 机器人发送通知`,discord:`通过 Webhook 发送到 Discord 频道`,ntfy:`免费、可自托管的推送通知`,pushover:`简单、可靠的推送通知`,callmebot:`通过 CallMeBot 免费发送 WhatsApp 通知`,webhook:`通用 HTTP POST 到任意 URL`,homeassistant:`Home Assistant 仪表板中的持久通知`,bark:`通过 Bark 推送 iOS 通知(可自建服务器)`},lastSuccess:`上次:{{date}}`,error:`错误`,printer:`打印机:`,allPrinters:`所有打印机`,sendTestNotification:`发送测试通知`,eventSettings:`事件设置`,enabled:`已启用`,sendFromProvider:`从此提供商发送通知`,printEvents:`打印事件`,printerStatus:`打印机状态`,amsAlarms:`AMS 警报`,amsHtAlarms:`AMS-HT 警报`,printQueue:`打印队列`,start:`开始`,plateCheck:`热床检测`,complete:`完成`,failed:`失败`,stopped:`已停止`,progress:`进度`,offline:`离线`,lowFilament:`耗材不足`,maintenance:`维护`,amsHumidity:`AMS 湿度`,amsTemp:`AMS 温度`,amsHtHumidity:`AMS-HT 湿度`,amsHtTemp:`AMS-HT 温度`,bedCooled:`热床已冷却`,firstLayer:`首层完成`,quiet:`免打扰`,digest:`摘要 {{time}}`,printStarted:`打印已开始`,plateNotEmpty:`热床非空`,plateNotEmptyDescription:`打印前检测到物体`,plateClearRequired:`需要确认热床已清空`,plateClearRequiredDescription:`打印完成,队列等待热床确认`,plateClear:`热床确认`,printCompleted:`打印已完成`,bedCooledLabel:`热床已冷却`,bedCooledDescription:`打印后热床温度降至阈值以下`,firstLayerCompleteLabel:`首层打印完成`,firstLayerCompleteDescription:`首层完成时发送带照片的通知`,missingSpoolAssignmentLabel:`缺少料卷分配`,missingSpoolAssignmentDescription:`当打印开始且所需料盘没有分配料卷时发送通知`,printFailed:`打印失败`,printStopped:`打印已停止`,progressMilestones:`进度里程碑`,progressMilestonesDescription:`在 25%、50%、75% 时通知`,printerOffline:`打印机离线`,printerError:`打印机错误`,aiFailureDetection:`AI 失败检测`,aiFailureDetectionDescription:`当 Obico AI 检测到可能的打印失败时通知`,lowFilamentLabel:`耗材不足`,maintenanceDue:`需要维护`,maintenanceDueDescription:`需要维护时通知`,amsHumidityHigh:`AMS 湿度过高`,amsHumidityHighDescription:`普通 AMS 湿度超过阈值`,amsTemperatureHigh:`AMS 温度过高`,amsTemperatureHighDescription:`普通 AMS 温度超过阈值`,amsHtHumidityHigh:`AMS-HT 湿度过高`,amsHtHumidityHighDescription:`AMS-HT 湿度超过阈值`,amsHtTemperatureHigh:`AMS-HT 温度过高`,amsHtTemperatureHighDescription:`AMS-HT 温度超过阈值`,inventoryAlerts:`库存警报`,stockReorderAlert:`补货警报`,stockReorderAlertDescription:`SKU 已达到补货点`,stockBreakAlert:`断货警报`,stockBreakAlertDescription:`库存将在补货到达前耗尽`,jobAdded:`任务已添加`,jobAddedDescription:`任务已添加到队列`,jobAssigned:`任务已分配`,jobAssignedDescription:`基于模型的任务已分配给打印机`,jobStarted:`任务已开始`,jobStartedDescription:`队列任务已开始打印`,jobWaiting:`任务等待中`,jobWaitingDescription:`任务正在等待耗材或打印机`,jobSkipped:`任务已跳过`,jobSkippedDescription:`任务已跳过(上一个失败)`,jobFailed:`任务失败`,jobFailedDescription:`任务启动失败`,queueComplete:`队列已完成`,queueCompleteDescription:`所有队列任务已完成`,quietHours:`免打扰时段`,noNotificationsDuring:`在此时段内不发送通知`,editProviderToChangeQuietHours:`编辑提供商以更改免打扰时段`,dailyDigest:`每日摘要`,batchNotifications:`将通知汇总为每日摘要`,sendAt:`发送于 {{time}}`,editProviderToChangeDigestTime:`编辑提供商以更改摘要时间`,edit:`编辑`,deleteProvider:`删除通知提供商`,deleteConfirm:`确定要删除"{{name}}"吗?此操作无法撤销。`,delete:`删除`,addTitle:`添加通知提供商`,editTitle:`编辑通知提供商`,nameLabel:`名称 *`,namePlaceholder:`我的通知`,providerTypeLabel:`提供商类型 *`,configuration:`配置`,testConfiguration:`测试配置`,printerFilter:`打印机筛选`,onlyFromPrinter:`仅发送来自此打印机的事件通知`,quietHoursDnd:`免打扰时段`,quietStart:`开始`,quietEnd:`结束`,dailyDigestLabel:`每日摘要`,sendDigestAt:`发送摘要于`,digestCollected:`事件将被收集并在此时间作为单条摘要发送`,notificationEvents:`通知事件`,progressPercent:`(25%、50%、75%)`,bedCooledAfterPrint:`(打印完成后)`,eventPriority:{sectionTitle:`ntfy 优先级`,helpNtfy:`为每个已启用的事件选择优先级。ntfy 使用它来升级提醒(声音、可见性、推送行为)。此处未设置的级别将使用 ntfy 服务器默认值。`,min:`最低`,low:`低`,default:`默认`,high:`高`,urgent:`紧急`},cancel:`取消`,save:`保存`,add:`添加`,nameRequired:`名称为必填项`,fieldRequired:`{{field}}为必填项`,haDataInvalid:`Data 字段必须是有效的 JSON 对象,例如 {"priority": "high", "ttl": 0}`,phoneNumber:`电话号码`,apiKey:`API 密钥`,serverUrl:`服务器 URL`,topic:`主题`,authToken:`认证令牌`,userKey:`用户密钥`,appToken:`应用令牌`,priority:`优先级`,pushoverRetry:`紧急重试 (秒)`,pushoverExpire:`紧急过期 (秒)`,botToken:`机器人令牌`,chatId:`聊天 ID`,telegramThreadId:`论坛话题 ID`,telegramThreadIdHelp:`可选。发送到论坛群组中的指定话题,即话题链接末尾的数字 (t.me/c/.../25)。留空则发送到常规话题。`,telegramThreadIdInvalid:`论坛话题 ID 必须是数字。`,smtpServer:`SMTP 服务器`,smtpPort:`SMTP 端口`,security:`安全`,authentication:`认证`,username:`用户名`,password:`密码`,fromEmail:`发件人邮箱`,toEmail:`收件人邮箱`,webhookUrl:`Webhook URL`,payloadFormat:`负载格式`,authorization:`授权`,titleFieldName:`标题字段名`,messageFieldName:`消息字段名`,editTemplate:`编辑模板:{{name}}`,titleLabel:`标题`,bodyLabel:`正文`,titlePlaceholder:`通知标题...`,bodyPlaceholder:`通知正文...`,availableVariables:`可用变量`,clickToInsert:`点击插入到正文光标位置`,livePreview:`实时预览`,hide:`隐藏`,show:`显示`,loadingPreview:`加载预览中...`,enterTemplateContent:`输入模板内容以查看预览`,titlePreview:`标题:`,bodyPreview:`正文:`,resetToDefault:`恢复默认`,titleRequired:`标题为必填项`,bodyRequired:`正文为必填项`,notificationLog:`通知日志`,showFailedOnly:`仅显示失败`,last24Hours:`最近 24 小时`,last7Days:`最近 7 天`,last30Days:`最近 30 天`,last90Days:`最近 90 天`,justNow:`刚刚`,noFailedNotifications:`没有失败的通知`,noNotificationsLogged:`没有通知记录`,unknownProvider:`未知提供商`,logTitle:`标题`,logMessage:`消息`,logError:`错误`,logProvider:`提供商:{{type}}`,logTime:`时间:{{time}}`,refresh:`刷新`,clearOld:`清除旧记录`,statsSummary:`最近 {{days}} 天:`,statsNotifications:`条通知`,statsSent:`{{count}} 条已发送`,statsFailed:`{{count}} 条失败`,eventTypes:{print_start:`打印已开始`,print_complete:`打印完成`,print_failed:`打印失败`,print_stopped:`打印已停止`,print_progress:`进度`,printer_offline:`打印机离线`,printer_error:`打印机错误`,filament_low:`耗材不足`,maintenance_due:`需要维护`,test:`测试`},userEmail:{title:`通知`,emailNotifications:`邮件通知`,emailNotificationsDesc:`接收您自己打印任务的邮件通知。邮件将通过高级身份验证中配置的 SMTP 设置发送。`,sendingTo:`通知将发送至`,noEmailWarning:`您的账户没有邮件地址。请联系管理员添加。`,printJobNotifications:`打印任务通知`,printJobNotificationsDesc:`选择哪些事件会触发您提交的打印任务的邮件通知。`,printJobStarts:`打印任务开始`,printJobStartsDesc:`当您的打印任务开始时收到通知。`,printJobFinishes:`打印任务完成`,printJobFinishesDesc:`当您的打印任务成功完成时收到通知。`,printErrors:`打印错误`,printErrorsDesc:`当您的打印任务失败或遇到错误时收到通知。`,printJobStops:`打印任务停止`,printJobStopsDesc:`当您的打印任务被取消或停止时收到通知。`,saveSuccess:`通知偏好设置已保存。`,saveError:`保存通知偏好设置失败。`}},richTextEditor:{bold:`粗体`,italic:`斜体`,underline:`下划线`,bulletList:`无序列表`,numberedList:`有序列表`,alignLeft:`左对齐`,alignCenter:`居中对齐`,alignRight:`右对齐`,addLink:`添加链接`,removeLink:`移除链接`},externalLinks:{title:`侧边栏链接`,sidebarLayout:`侧边栏`,sidebarLayoutDescription:`显示或隐藏内置页面,添加外部链接,并拖动项目以重新排序侧边栏导航。`,systemPages:`Bambuddy 页面`,externalLinks:`外部链接`,visibleInSidebar:`在侧边栏中显示`,hiddenFromSidebar:`在侧边栏中隐藏`,requiredInSidebar:`侧边栏中必需`,hidePage:`隐藏页面`,showPage:`显示页面`,settingsCannotBeHidden:`设置不能隐藏`,noLinksConfigured:`未配置外部链接`,deleteLink:`删除链接`,removeCustomIcon:`移除自定义图标`,openInNewTab:`在新标签页中打开`,placeholders:{linkName:`我的链接`}},keyboardShortcuts:{title:`键盘快捷键`,navigation:`导航`,archivesSection:`归档`,kProfilesSection:`K 值配置`,generalSection:`通用`,shortcuts:{goToPrinters:`前往打印机`,goToArchives:`前往归档`,goToQueue:`前往队列`,goToStats:`前往统计`,goToProfiles:`前往云端配置`,goToSettings:`前往设置`,focusSearch:`聚焦搜索`,openUploadModal:`打开上传对话框`,clearSelection:`清除选择 / 取消焦点`,contextMenu:`卡片右键菜单`,refreshProfiles:`刷新配置`,newProfile:`新建配置`,exitSelectionMode:`退出选择模式`,showHelp:`显示此帮助`},footer:`按 Esc 或点击外部关闭`},notificationLog:{title:`通知日志`,events:{printStarted:`打印开始`,printComplete:`打印完成`,printFailed:`打印失败`,printStopped:`打印停止`,progress:`进度`,printerOffline:`打印机离线`,printerError:`打印机错误`,lowFilament:`耗材不足`,maintenanceDue:`维护到期`,test:`测试`},timeAgo:{justNow:`刚刚`,minutesAgo:`{{minutes}} 分钟前`,hoursAgo:`{{hours}} 小时前`}},restoreBackup:{title:`恢复备份`,restoring:`恢复中...`,restoreComplete:`恢复完成`,restoreFailed:`恢复失败`,importSettings:`从备份文件导入设置`,pleaseWait:`请稍候,正在恢复您的数据`,clickToSelect:`点击选择备份文件(.json 或 .zip)`,howDuplicateHandling:`重复处理方式:`,categories:{printers:`打印机`,smartPlugs:`智能插座`,notificationProviders:`通知提供商`,filaments:`耗材`,archives:`归档`,pendingUploads:`待处理上传`,settingsTemplates:`设置和模板`},matchingInfo:{printers:`按序列号匹配`,smartPlugs:`按 IP 地址匹配`,notificationProviders:`按名称匹配`,filaments:`按名称 + 类型 + 品牌匹配`,archives:`按内容哈希匹配`,pendingUploads:`按文件名匹配`,settingsTemplates:`始终覆盖`},replaceExisting:`替换现有数据`,keepExisting:`保留现有数据`,replaceDescription:`用备份数据覆盖已存在的项目`,keepDescription:`仅恢复不存在的项目`,caution:`注意:`,cautionText:`覆盖将用备份数据替换您当前的配置。出于安全考虑,打印机访问码永远不会被覆盖。`,itemsRestored:`已恢复项目`,itemsSkipped:`已跳过项目`,restored:`已恢复`,skipped:`已跳过(已存在)`,filesLabel:`文件(3MF、缩略图等)`,newApiKeysGenerated:`已生成新 API 密钥`,newApiKeysWarning:`这些密钥仅显示一次。请立即复制!`,processingBackup:`处理备份文件中...`,noDataFound:`备份文件中未找到可恢复的数据。`,failedToRestore:`恢复备份失败。请检查文件格式。`},backupExport:{title:`导出备份`,selectData:`选择要包含的数据`,selectAll:`全选`,selectNone:`全不选`,categoryDescriptions:{settings:`语言、主题、更新偏好`,notifications:`ntfy、Pushover、Discord 等`,templates:`自定义消息模板`,smartPlugs:`Tasmota 插座配置`,externalLinks:`侧边栏外部服务链接`,printers:`打印机信息(不含访问码)`,plateDetection:`空打印板参考图像`,filaments:`耗材类型和成本`,maintenance:`自定义维护计划`,archives:`所有打印数据 + 文件(3MF、缩略图、照片)`,projects:`项目、材料清单和附件`,pendingUploads:`虚拟打印机待审核的上传`,apiKeys:`Webhook API 密钥(导入时生成新密钥)`},requiresPrinters:`需要选择打印机`,zipFileWarning:`将创建 ZIP 文件。`,zipFileDescription:`包括所有 3MF 文件、缩略图、延时摄影和照片。这可能需要一些时间并生成较大的文件。`,includeAccessCodes:`包含访问码`,includeAccessCodesDescription:`用于转移到另一台机器`,includeAccessCodesWarning:`访问码将以明文形式包含。请妥善保管此备份文件!`,categoriesSelected:`已选择 {{selectedCount}} 个类别`},pendingUploads:{placeholders:{notes:`添加关于此打印的备注...`},discardUpload:`丢弃上传`,archiveAllUploads:`归档所有上传`,discardAllUploads:`丢弃所有上传`,archive:`归档`,timeAgo:{justNow:`刚刚`,minutesAgo:`{{minutes}} 分钟前`,hoursAgo:`{{hours}} 小时前`,daysAgo:`{{days}} 天前`}},apiBrowser:{placeholders:{requestBody:`JSON 请求体...`,searchEndpoints:`搜索端点...`}},configureAmsSlot:{title:`配置 AMS 槽位`,slotConfigured:`槽位已配置!`,configuringSlot:`正在配置槽位:`,slotLabel:`{{ams}} 槽位 {{slot}}`,searchPresets:`搜索预设...`,colorPlaceholder:`颜色名称或十六进制(例如:棕色、FF8800)`,clearCustomColor:`清除自定义颜色`,noCloudPresets:`无云端预设。登录拓竹云以同步。`,noPresetsAvailable:`无可用预设。登录拓竹云或导入本地配置。`,noMatchingPresets:`未找到匹配的预设。`,custom:`自定义`,builtin:`内置`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`设置已发送到打印机`,filamentProfile:`耗材配置`,kProfileLabel:`K 值配置(压力推进)`,filteringFor:`筛选:{{material}}`,noKProfile:`无 K 值配置(使用默认值 0.020)`,noMatchingKProfiles:`未找到匹配的 K 值配置。将使用默认 K=0.020。`,otherKProfiles:`此打印机上的其他 K 值配置`,selectFilamentFirst:`请先选择耗材配置`,kFromCalibration:`K={{value}}(来自打印机校准)`,customColorLabel:`自定义颜色(可选)`,presetColors:`{{name}} 颜色:`,showLessColors:`显示更少颜色`,showMoreColors:`显示更多颜色`,clear:`清除`,hexLabel:`十六进制:#{{hex}}`,resetting:`重置中...`,resetSlot:`重置槽位`,cancel:`取消`,configuring:`配置中...`,configureSlot:`配置槽位`},githubBackup:{title:`Git 备份`,history:`历史`,downloadBackup:`下载备份`,restoreBackup:`恢复备份`,noBackupsYet:`暂无备份`},emailSettings:{placeholders:{fromName:`Bambuddy`}},tagManagement:{searchTags:`搜索标签...`,renameTag:`重命名标签`,deleteTag:`删除标签`},notificationTemplates:{placeholders:{title:`通知标题...`,body:`通知正文...`}},batchTag:{placeholders:{newTag:`输入新标签...`}},photoGallery:{deletePhoto:`删除照片`},filamentHoverCard:{copySpoolUuid:`复制耗材 UUID`},kProfilesView:{hasNote:`有备注`,copyProfile:`复制配置`},layout:{openMenu:`打开菜单`,noPermissionSystemInfo:`您没有查看系统信息的权限`},dashboard:{dragToReorder:`拖动以重新排列`,hideWidget:`隐藏小部件`},notificationProviderCard:{deleteNotificationProvider:`删除通知提供商`},fileManagerModal:{closeFileManager:`关闭文件管理器`,sortFiles:`排序文件`,goToParentFolder:`返回上级文件夹`,threeView:`3D 视图`},embeddedCameraViewer:{refreshStream:`刷新流`,close:`关闭`,zoomOut:`缩小`,resetZoom:`重置缩放`,zoomIn:`放大`,dragToResize:`拖动调整大小`},timelapseViewer:{skipBack5s:`后退 5 秒`,skipForward5s:`前进 5 秒`},notificationProviders:{descriptions:{email:`SMTP 邮件通知`,telegram:`通过 Telegram 机器人通知`,discord:`通过 Webhook 发送到 Discord 频道`,ntfy:`免费、可自托管的推送通知`,pushover:`简单、可靠的推送通知`,callmebot:`通过 CallMeBot 的免费 WhatsApp 通知`,webhook:`通用 HTTP POST 到任意 URL`}},logViewer:{searchPlaceholder:`搜索消息或日志名称...`,noLogEntries:`未找到日志条目`},switchbarPopover:{noSwitchesInSwitchbar:`切换栏中没有开关`},projectPageModal:{placeholders:{title:`标题`,designer:`设计师`,license:`许可证`,description:`输入描述...`,profileTitle:`配置标题`,profileDescription:`配置描述...`}},spoolmanSettings:{},time:{unknown:`-`,waiting:`等待中`,justNow:`刚刚`,now:`现在`,minsAgo:`{{count}} 分钟前`,inMins:`{{count}} 分钟后`,hoursAgo:`{{count}} 小时前`,inHours:`{{count}} 小时后`,daysAgo:`{{count}} 天前`,inDays:`{{count}} 天后`},spoolbuddy:{nav:{dashboard:`仪表板`,ams:`AMS`,inventory:`库存`,writeTag:`写入`,settings:`设置`},status:{nfcReady:`NFC 就绪`,nfcOff:`NFC 关闭`,offline:`离线`,online:`在线`,noPrinters:`无打印机`,deviceOffline:`设备离线`,waitingConnection:`等待设备连接...`,systemReady:`系统就绪`,status:`状态`},dashboard:{readyToScan:`准备扫描`,idleMessage:`将耗材放在秤上以识别`,nfcHint:`NFC 标签将自动读取`,device:`设备`,syncWeight:`同步重量`,weightSynced:`已同步!`,unknownTag:`未知标签`,newTag:`检测到新标签`,onScale:`在秤上`,linkSpool:`链接到耗材`,linkTagTitle:`将标签链接到耗材`,linkTag:`链接标签`,selectSpool:`选择要链接此标签的耗材:`,noUntagged:`未找到没有标签的耗材`,tagDetected:`检测到标签`,noTag:`无标签`,tagId:`标签`,grossWeight:`毛重`,spoolSize:`耗材盘尺寸`,close:`关闭`,currentSpool:`当前耗材`,plateReady:`热床就绪: {{name}}`,plateReadyLabel:`待清理的热床`,plateClearAction:`清理`,plateClearedToast:`已将热床标记为已清理`,plateClearFailed:`无法将热床标记为已清理`},modal:{spoolDetected:`检测到耗材`,assignToAms:`分配到 AMS`,syncWeight:`同步重量`,weightSynced:`已同步!`,syncing:`同步中...`,newTagDetected:`检测到新标签`,addToInventory:`添加到库存`,assignToAmsTitle:`分配到 AMS`,selectSlot:`选择槽位`,assign:`分配`,assigning:`分配中...`,assignSuccess:`已分配!`,assignPendingInsert:`已分配。插入耗材后将配置槽位。`,assignError:`分配耗材失败。请重试。`,noPrinterSelected:`选择打印机...`,noAmsDetected:`此打印机未检测到 AMS`,slot:`槽位`},weight:{noReading:`无读数`,stable:`稳定`,measuring:`测量中...`,tare:`去皮`,calibrate:`校准`},spool:{remaining:`剩余`,material:`材料`,brand:`品牌`,color:`颜色`,coreWeight:`空盘`,labelWeight:`标签`,scaleWeight:`秤重`,netWeight:`净重`,lastUsed:`上次使用`},ams:{noData:`未检测到 AMS`,connectAms:`连接 AMS 以查看耗材槽位`,noPrinter:`未选择打印机`,selectPrinter:`从顶部栏选择打印机`,printerDisconnected:`打印机已断开`,humidity:`湿度`,level:`余量`,active:`活跃`,slot:`槽位`,empty:`空`},inventory:{search:`搜索耗材...`,empty:`库存中没有耗材`,noResults:`没有匹配的耗材`,spools:`个耗材`,addSpool:`添加耗材`},settings:{tabDevice:`设备`,tabDisplay:`显示`,tabScale:`秤`,tabUpdates:`更新`,nfcReader:`NFC 读卡器`,type:`类型`,connection:`连接`,notConnected:`不适用`,deviceInfo:`设备信息`,hostname:`主机`,uptime:`运行时间`,systemConfig:`后端与认证`,backendUrl:`Bambuddy 后端 URL`,apiToken:`API 令牌`,apiTokenPlaceholder:`输入 API 令牌`,saveConfig:`保存配置`,systemQueued:`配置已加入队列。`,nfcDiagnostic:`NFC 诊断`,scaleDiagnostic:`秤诊断`,readTagDiagnostic:`读取标签诊断`,testNfc:`测试读卡器`,testScale:`测试精度`,testReadTag:`读取标签`,systemFieldsRequired:`后端 URL 为必填项。`,brightness:`亮度`,saved:`已保存`,noBacklight:`未检测到 DSI 背光。亮度控制需要 DSI 显示屏。`,screenBlank:`屏幕熄灭超时`,screenBlankDesc:`不活动后屏幕关闭。触摸唤醒。`,displayNote:`亮度作为软件滤镜应用。`,scaleCalibration:`秤校准`,currentWeight:`当前重量`,tareOffset:`去皮`,calFactor:`系数`,knownWeight:`已知重量`,calStep1:`移除秤上所有物品并按设置零点。`,calStep2:`将已知重量放在秤上。`,setZero:`设置零点`,calibrateNow:`校准`,calibrated:`已校准`,tareSet:`去皮命令已发送。等待设备响应...`,tareComplete:`去皮完成!`,tareTimedOut:`去皮超时 — SpoolBuddy 守护进程是否正在运行?`,tareFailed:`发送去皮命令失败`,zeroSet:`零点已设置。将已知重量放在秤上。`,calibrationDone:`校准完成!`,calibrationFailed:`校准失败`,lastCalibrated:`上次校准`,stable:`稳定`,settling:`稳定中...`,firmware:`固件`,scale:`秤`,noDevice:`未找到 SpoolBuddy 设备`,daemonVersion:`守护进程版本`,currentVersion:`当前`,versionPending:`等待守护进程...`,checking:`检查中...`,checkUpdates:`检查更新`,updateAvailable:`有可用更新`,updateInstructions:`通过 SSH 更新:运行 SpoolBuddy 安装脚本进行升级。`,upToDate:`已是最新`,includeBeta:`包含测试版本`},writeTag:{tabExisting:`现有耗材`,tabNew:`新耗材`,tabReplace:`替换标签`,searchPlaceholder:`按材料、颜色、品牌搜索...`,noUntaggedSpools:`没有无标签的耗材`,noTaggedSpools:`没有有标签的耗材`,selectSpool:`选择一个耗材,然后将空白 NTAG 放在读卡器上`,placeTag:`将 NTAG 放在读卡器上`,tagReady:`检测到标签 — 准备写入`,writeTag:`写入标签`,replaceTag:`替换标签`,writing:`写入标签中...`,waiting:`等待 SpoolBuddy...`,writeSuccess:`标签写入成功!`,writeFailed:`写入失败`,queueFailed:`排队写入命令失败`,tryAgain:`重试`,cancel:`取消`,replaceWarning:`旧标签将被取消链接。新标签将替换它。`,deviceOffline:`SpoolBuddy 离线`,material:`材料`,colorName:`颜色名称`,color:`颜色`,brand:`品牌`,weight:`重量 (g)`,createSpool:`创建耗材`,creating:`创建中...`,spoolCreated:`耗材已创建!准备写入。`,createFailed:`创建耗材失败`,incompleteDataWarning:`已使用不完整的Spoolman数据写入标签`},quickMenu:{printerPower:`打印机电源`,systemControls:`系统`,restartDaemon:`重启守护进程`,restartBrowser:`重启浏览器`,reboot:`重启`,shutdown:`关机`,swipeToClose:`向下滑动关闭`,confirmTitle:`确认`,confirmShutdown:`确定要关闭SpoolBuddy吗?您需要物理访问才能重新开启。`,confirmReboot:`确定要重启SpoolBuddy吗?`,confirmRestartDaemon:`重启SpoolBuddy守护进程?NFC和秤将暂时不可用。`,confirmRestartBrowser:`重启kiosk浏览器?屏幕将短暂变黑。`,confirm:`确认`,confirmPlugOn:`开启 {{name}}?`,confirmPlugOff:`关闭 {{name}}?`,turnOn:`开启`,turnOff:`关闭`}},diagnostic:{modalTitle:`连接诊断 — {{name}}`,running:`正在运行诊断...`,runningElapsed:`正在运行诊断... ({{elapsed}}秒)`,waitingForReportHint:`正在等待打印机发布状态报告 — 最长可能需要 {{max}} 秒。`,runFailed:`无法运行诊断:{{error}}`,retry:`重新运行`,runButton:`运行诊断`,sectionTitle:`连接诊断`,sectionDescription:`检查打印机无法连接或无法打印的原因 — 端口可达性、LAN 开发者模式、Docker 网络模式和凭据。`,noPrinters:`未配置打印机。`,overall:{ok:`未发现问题 — 打印机连接看起来正常。`,warnings:`打印机应该可以工作,但有些事项需要注意。`,problems:`发现了可解释打印机无法连接或无法打印的问题。`},check:{port_mqtt:{title:`控制端口(MQTT 8883)`,pass:`可达 — 打印机正在接受控制连接。`,fail:`端口 8883 不可达。打印机已关机、IP 地址不同,或被防火墙阻止。请核实打印机 IP,并确保没有任何东西阻止端口 8883。`},port_ftps:{title:`文件传输端口(FTPS 990)`,pass:`可达 — 发送打印文件将正常工作。`,warn:`端口 990 不可达。监控可能仍然有效,但向打印机发送打印任务将失败。请确保端口 990 未被阻止。`},external_storage:{title:`将发送的文件存储在外部存储中(安装步骤 4)`,pass:`打印机报告此选项已开启 — 发送的文件将存储在 SD 卡上,归档将包含缩略图和切片机元数据。`,fail:`打印机报告此选项已关闭。请启用"将发送的文件存储在外部存储中" — 在较新固件 (P2S 01.02 / Bambu Studio 2.6+) 中,开关位于打印机的打印设置中;在较旧版本中位于 Bambu Studio / OrcaSlicer 的设备选项卡中。如果不启用此选项,每次归档的打印都将没有缩略图也没有切片机元数据。`,skip:`未检查 — 需要有效的 MQTT 连接。在该设置仅存在于切片机中的较旧切片机上,打印机不会报告此设置,因此即使选项已关闭,此检查也会通过 — 请手动验证安装步骤 4。`,skip_unsupported_model:`此型号有 SD 卡槽,但无法开启该选项 — 当前 P1 系列固件不会在 Bambu Studio 中显示此开关,且打印机没有屏幕。这里无需修复;在 Bambu Lab 通过固件添加支持之前,存档的打印可能缺少缩略图和切片元数据。`},port_rtsps:{title:`摄像头端口({{protocol}} {{port}})`,pass:`可达 — 摄像头视频流将正常工作。`,warn:`端口 {{port}} 不可达。实时摄像头视图将无法工作。这不影响打印。`},network_mode:{title:`Docker 网络模式`,pass:`正在以 host 网络模式运行。`,warn:`Bambuddy 正在以 Docker bridge 网络运行。打印机发现和虚拟打印机需要 host 网络模式 — 请使用 "network_mode: host" 重新创建容器。`,skip:`未在 Docker 中运行 — 不适用。`},subnet:{title:`网络子网`,pass:`打印机和 Bambuddy 位于同一子网。`,warn:`打印机({{printer_ip}})和 Bambuddy({{host_ip}})位于不同的子网。除非配置了子网之间的路由,否则它们可能无法相互访问。`,skip:`无法确定子网 — 已跳过。`},mqtt_auth:{title:`打印机凭据`,pass:`打印机已接受连接。`,fail:`打印机可达,但 Bambuddy 未与其建立连接。访问代码或序列号很可能有误 — 每次切换仅局域网模式或开发者模式时访问代码都会更改,请从打印机屏幕重新复制。正在重启或已达到同时连接数上限的打印机看起来也是这样。`,fail_auth_rejected:`打印机拒绝了 Bambuddy 的凭据。访问代码或序列号有误 — 每次切换仅局域网模式或开发者模式时访问代码都会更改。请从打印机屏幕重新复制,并保存到打印机设置中。`,skip:`未检查 — 无法连接到打印机。`},developer_mode:{title:`LAN 开发者模式`,pass:`开发者模式已启用。`,fail:`打印机上的开发者模式已关闭。请在打印机的 LAN 设置中启用它 — 并按 OK 确认。否则打印将无法开始。`,skip:`无法检查 — 需要与打印机的实时连接。`},printer_publishing:{title:`打印机正在发布状态`,pass:`打印机正在发布状态更新 — AMS、耗材和 K 配置将正确镜像到切片软件。`,fail:`MQTT 代理已接受连接,但打印机未发布任何状态报告。这几乎总是因为序列号错误或大小写不一致 — device//api/v1/metrics 公開印表機指標,用於Prometheus/Grafana監控。`,bearerTokenOptional:`Bearer權杖(可選)`,bearerTokenHint:`設定後,請求必須包含 Authorization: Bearer `,metricsConnectionStatus:`連線狀態`,metricsPrinterState:`印表機狀態(空閒/列印中等)`,metricsPrintProgress:`列印進度 0-100%`,metricsBedTemp:`熱床溫度`,metricsNozzleTemp:`噴嘴溫度`,metricsPrintsTotal:`按結果分類的總列印數`,metricsMore:`...以及更多(層數、風扇、佇列、耗材用量)`,smartPlugsDescription:`連線智慧插座(Tasmota或Home Assistant)以自動化電源控制並追蹤印表機的能源使用情況。`,allOn:`全部開啟`,allOff:`全部關閉`,addSmartPlug:`新增智慧插座`,energySummary:`能源概要`,currentPower:`目前功率`,plugsOnline:`{{reachable}}/{{total}} 個插座線上`,today:`今天`,yesterday:`昨天`,total:`總計`,enablePlugsForSummary:`啟用插座以檢視能源概要`,addNotificationProvider:`新增`,systemBadge:`(系統)`,creating:`建立中...`,changing:`修改中...`,deleteUserAndItems:`刪除使用者及其所有項目`,deleteUserKeepItems:`刪除使用者,保留項目(將變為無主項目)`,ok:`確定`,twoFa:{totpTitle:`身份驗證器 App (TOTP)`,totpDesc:`使用 Google Authenticator、Aegis 或 Authy 等 App。`,emailOtpTitle:`郵件 OTP`,emailOtpDesc:`登入時向 {{email}} 傳送一次性驗證碼。`,emailOtpNoEmail:`請先為帳戶新增信箱地址以啟用此方式。`,addEmailFirst:`您的帳戶沒有信箱地址,請聯絡管理員新增。`,setupTotp:`設定身份驗證器 App`,setupAuthApp:`設定身份驗證器 App`,setupInstructions:`使用身份驗證器 App 掃描QR Code,然後輸入驗證碼確認。`,manualEntry:`無法掃描?請手動輸入此金鑰:`,scannedContinue:`已掃描 — 繼續`,enterCodeToConfirm:`請輸入身份驗證器 App 中的6位驗證碼以確認設定。`,activate:`啟用`,disableTotp:`停用身份驗證器`,disableConfirmHint:`請輸入有效的 TOTP 碼或備用碼來停用身份驗證器。`,totpDisabled:`身份驗證器 App 已停用。`,emailOtpEnabled:`郵件 OTP 已啟用。`,emailOtpDisabled:`郵件 OTP 已停用。`,smtpRequired:`請先設定並測試SMTP設定。`,invalidCode:`無效驗證碼,請重試。`,enableEmailOtp:`啟用郵件 OTP`,disableEmailOtp:`停用郵件 OTP`,emailSetupEnterCode:`驗證碼已傳送至您的信箱地址。請在下方輸入以確認您擁有此信箱。`,verifyAndEnable:`驗證並啟用`,emailDisablePasswordHint:`請輸入您的帳戶密碼以確認停用郵件 OTP。`,passwordPlaceholder:`輸入您的密碼`,backupCodesTitle:`儲存備用碼`,backupCodesWarning:`請將這些碼儲存在安全的地方。每個碼只能使用一次,且不會再次顯示。`,backupCodesRemaining:`剩餘 {{count}} 個備用碼`,savedCodes:`已儲存`,regenBackup:`重新產生備用碼`,regenBackupHint:`輸入目前 TOTP 碼以產生 10 個新備用碼,所有現有備用碼將失效。`,newBackupCodes:`新備用碼`,linkedAccounts:`已連結的 SSO 帳戶`,linkedAccountsDesc:`以下外部身份提供者已與您的帳戶連結。`,oidcUnlinked:`帳戶已解除連結。`},sessionPolicy:{title:`工作階段政策`,description:`新使用者登入的最長工作階段有效期。已發行的權杖會保留其原有的到期時間。`,preset24h:`24 小時`,preset7d:`7 天`,preset30d:`30 天`,customHoursLabel:`自訂工作階段有效期(小時)`,hoursSuffix:`小時`,warning:`較長的工作階段會削弱自動登出保護。僅建議在受信任的單一使用者部署中使用。`},oidc:{title:`SSO / OIDC 提供者`,desc:`設定 OpenID Connect 提供者以實現單點登入。`,addProvider:`新增提供者`,newProvider:`新提供者`,empty:`尚未設定 OIDC 提供者。`,created:`提供者已建立。`,updated:`提供者已更新。`,deleted:`提供者已刪除。`,refreshIcon:`重新整理圖示`,removeIcon:`移除圖示`,iconRefreshed:`圖示已重新整理。`,iconRemoved:`圖示已移除。`,iconFetchFailed:`無法從提供者 URL 取得圖示。`,deleteTitle:`刪除提供者`,deleteMessage:`刪除"{{name}}"?所有連結帳戶將斷開連線。`,form:{name:`顯示名稱`,issuerUrl:`頒發者 URL`,clientId:`客戶端 ID`,clientSecret:`客戶端金鑰`,scopes:`作用域`,iconUrl:`圖示 URL(可選)`,enabled:`已啟用`,autoCreate:`自動建立使用者`,autoCreateDesc:`首次登入時自動建立本機帳戶。`,autoLink:`自動連結已有帳戶`,autoLinkDesc:`首次登入時透過信箱匹配現有本機帳戶並自動連結。`,emailClaim:`電子郵件聲明`,emailClaimDesc:`用作電子郵件身份的 JWT 聲明。Azure Entra ID 請使用 'preferred_username' 或 'upn'(不發送 email_verified)。僅使用可信的聲明名稱。`,emailClaimPlaceholder:`電子郵件`,emailClaimCustomClaimAutoLinkWarning:`自訂宣告僅在值由租用戶管理時(例如 Azure Entra ID 的 upn / preferred_username)對自動關聯安全。如果您的 IdP 允許使用者自我宣告此宣告,請勿啟用自動關聯。`,requireEmailVerified:`要求電子郵件已驗證`,requireEmailVerifiedDesc:`僅在提供商將電子郵件聲明標記為已驗證時才接受。`,requireEmailVerifiedWarning:`警告:將在未經驗證的情況下接受電子郵件。僅對受信任的提供商使用。`,requireEmailVerifiedAutoLink:`請先停用自動連結以變更此設定。`,secretHint:`留空以保留目前`,secretPlaceholder:`新金鑰`,defaultGroup:`預設群組`,defaultGroupDesc:`自動建立使用者時分配的群組。未設定時回退到 Viewers。`,defaultGroupViewersFallback:`Viewers(預設)`,autologin:`自動登入`,autologinDesc:`將未驗證的訪客直接重新導向至此提供者。此旗標僅能由一個提供者持有。`}},encryption:{title:`MFA 加密狀態`,enabledFromEnv:`已啟用靜態加密(金鑰來自 MFA_ENCRYPTION_KEY 環境變數)`,enabledFromFile:`已啟用靜態加密(金鑰從資料目錄載入)`,enabledGenerated:`使用自動產生的金鑰啟用靜態加密`,notConfigured:`未設定靜態加密`,notConfiguredDesc:`TOTP 機密和 OIDC client_secrets 以明文儲存。請設定 MFA_ENCRYPTION_KEY 或使用可寫資料目錄重新啟動 Bambuddy 以自動產生。`,allEncrypted:`所有 MFA 機密皆已靜態加密。`,legacyRowsLabel:`舊版明文列`,encryptedRowsLabel:`已加密列`,legacyRowsWarning:`偵測到 {{count}} 個舊版明文列。請重新儲存 OIDC 供應商或重新註冊使用者的身份驗證器應用程式,以遷移到加密儲存。`,backupHint:`自動產生的金鑰儲存在 DATA_DIR/.mfa_encryption_key 中,並包含在本機備份 ZIP 中。請保護備份安全或顯式設定 MFA_ENCRYPTION_KEY。`,decryptionBrokenTitle:`加密金鑰遺失`,decryptionBrokenError:`無法解密 {{count}} 條加密記錄,因為加密金鑰不再可用。請還原先前的 MFA_ENCRYPTION_KEY 或 DATA_DIR/.mfa_encryption_key 以恢復存取。`,migrationErrorWarning:`{{count}} 行舊資料在啟動時未能重新加密。請檢查伺服器日誌並重新啟動 Bambuddy 以重試。`},pipelineLimits:{title:`切片機管線限制`,maxCopiesLabel:`每次執行最大副本數`,maxCopiesDesc:`操作員執行管線時可請求的副本數上限。伺服器端硬性上限為 1000。`},pipelines:{title:`切片機管線`,subtitle:`可重複使用的預設組合(印表機 + 製程 + 耗材 + 熱床類型)。在切片對話框中儲存一個,下次切片檔案時一鍵套用。`,loading:`正在載入管線…`,loadError:`無法載入管線。`,confirmDelete:`刪除此管線?此操作無法復原。`,staleWarning:`參考的一個或多個預設已不存在。請在切片對話框中重新儲存此管線以修正。`,empty:{title:`尚無管線。`,howto:`為任意檔案開啟切片對話框,選擇印表機 / 製程 / 耗材 / 熱床,然後點擊「另存為管線」。儲存的管線將顯示於此處。`},field:{name:`管線名稱`,description:`描述`,targetPrinter:`目標印表機`,noTarget:`— 無目標 —`,targetKind:`目標類型`,targetKindSpecific:`特定印表機`,targetKindClass:`印表機類別`,targetModelClass:`印表機型號`,fanoutStrategy:`分發策略`,fanout:{max_parallel:`最大並行 — 分發到任何空閒匹配的印表機`,round_robin:`輪替 — 在合格印表機間循環`,fill_one_first:`先填一台 — 將所有副本固定到一台印表機`},fanoutShort:{max_parallel:`並行`,round_robin:`輪替`,fill_one_first:`先填一台`}},action:{save:`儲存`,cancel:`取消`,rename:`重新命名`,delete:`刪除`},slot:{printer:`印表機`,process:`製程`,filament:`耗材`,filamentN:`耗材 {{n}}`,filamentAll:`全部 {{n}} 個槽`,bed:`熱床`},group:{profiles:`設定檔`,filaments:`耗材`},searchPlaceholder:`搜尋管線…`,filterTargetType:`依目標類型篩選`,filterTarget:`依目標篩選`,filter:{all:`全部目標`,noTarget:`未設定目標`,count:`{{shown}} / {{total}}`,noMatches:`沒有管線符合目前的篩選條件。`},toast:{saved:`管線已儲存`,saveFailed:`儲存失敗`,deleted:`管線已刪除`,deleteFailed:`刪除失敗`},noTargetHint:`設定目標印表機以執行`,noTargetWarning:`執行此管線前請先設定目標印表機。`,runs:{lastRun:`上次執行`,status:{queued:`排隊中`,slicing:`切片中`,dispatching:`傳送中`,in_progress:`列印中`,completed:`已完成`,failed:`失敗`,partial_failure:`部分失敗`,cancelled:`已取消`}}}},notification:{printStarted:{title:`列印已開始`,body:`{{printer}}:{{filename}} 已開始列印`},printCompleted:{title:`列印已完成`,body:`{{printer}}:{{filename}} 已成功完成`},printFailed:{title:`列印失敗`,body:`{{printer}}:{{filename}} 列印失敗`},printStopped:{title:`列印已停止`,body:`{{printer}}:{{filename}} 已停止`},printProgress:{title:`列印進度`,body:`{{printer}}:{{filename}} 已完成 {{percent}}%`},printerOffline:{title:`印表機離線`,body:`{{printer}} 已離線`},printerError:{title:`印表機錯誤`,body:`{{printer}}:{{error}}`},filamentLow:{title:`耗材不足`,body:`{{printer}}:耗材即將用完`},maintenanceDue:{title:`維護到期`,body:`{{printer}}:{{items}} 需要關注`}},errors:{generic:`出了點問題`,networkError:`網路錯誤。請檢查您的連線。`,notFound:`未找到`,unauthorized:`未授權`,serverError:`伺服器錯誤`,validationError:`請檢查您的輸入`,printerConnectionFailed:`連線印表機失敗`,saveFailed:`儲存更改失敗`,deleteFailed:`刪除失敗`,loadFailed:`載入資料失敗`},hmsErrors:{title:`錯誤 - {{name}}`,noErrors:`無錯誤`,viewOnWiki:`在拓竹 Wiki 上檢視`,mqttVerifyFailedRemedy:`在印表機上啟用開發者模式,重新啟動印表機,然後重新開始該工作。`,unknownCode:`未知 HMS 代碼 — 詳情請參閱拓竹 Wiki。`,clearInstructions:`在印表機上清除錯誤以在此處消除它們。`,clearErrors:`清除錯誤`,clearSuccess:`HMS 錯誤已清除`,clearFailed:`清除 HMS 錯誤失敗`,actionSuccess:`已向印表機傳送動作`,actionFailed:`動作傳送失敗`,runoutExpectedSlot:`{{ranOut}} 的耗材已用盡。印表機現在正在等待 {{expected}} 裝入相容耗材。請將料卷裝入 {{expected}},然後選擇「重試」。`,runoutExpectedSlotOnly:`印表機正在等待 {{expected}} 裝入相容耗材。請在該料槽裝入料卷,然後選擇「重試」。`,runoutSlotUnknown:`耗材已用盡,列印已暫停。Bambuddy 無法確定印表機現在需要哪個料槽——請在印表機螢幕上查看所請求的料槽。`,actions:{RESUME_PRINTING:`恢復列印`,RESUME_PRINTING_DEFECTS:`恢復 (瑕疵可接受)`,RESUME_PRINTING_PROBELM_SOLVED:`恢復 (問題已解決)`,STOP_PRINTING:`停止列印`,CHECK_ASSISTANT:`檢視助理`,FILAMENT_EXTRUDED:`已擠出耗材,繼續`,RETRY_FILAMENT_EXTRUDED:`尚未擠出,重試`,CONTINUE:`已完成,繼續`,LOAD_VIRTUAL_TRAY:`載入耗材`,OK_BUTTON:`確定`,FILAMENT_LOAD_RESUME:`耗材已載入,恢復`,JUMP_TO_LIVEVIEW:`檢視即時畫面`,NO_REMINDER_NEXT_TIME:`下次不再提醒`,REFRESH_NOZZLE:`重新檢查`,IGNORE_NO_REMINDER_NEXT_TIME:`忽略,下次不再提醒`,IGNORE_RESUME:`忽略並恢復`,PROBLEM_SOLVED_RESUME:`問題已解決,恢復`,TURN_OFF_FIRE_ALARM:`知道了,關閉火警`,RETRY_PROBLEM_SOLVED:`重試 (問題已解決)`,CANCLE:`取消`,STOP_DRYING:`停止乾燥`,PROCEED:`繼續`,OK_JUMP_RACK:`確定`,ABORT:`中止`,DISABLE_PURIFICATION:`本次列印停用空氣淨化`,DONT_REMIND_NEXT_TIME:`不再提醒`,DBL_CHECK_CANCEL:`取消`,DBL_CHECK_DONE:`完成`,DBL_CHECK_RETRY:`重試`,DBL_CHECK_RESUME:`恢復`,DBL_CHECK_OK:`確認`,REMOVE_CLOSE_BTN:`關閉`}},mqttDebug:{title:`MQTT 偵錯日誌`,searchPlaceholder:`搜尋主題或負載...`,noMessages:`尚未紀錄訊息`,startLoggingHint:`點選"開始紀錄"以開始捕獲 MQTT 訊息`,noMessagesMatch:`沒有訊息匹配您的篩選條件`,adjustFilterHint:`嘗試調整您的搜尋或篩選條件`,incoming:`傳入`,outgoing:`傳出`,loggingStopped:`紀錄已停止`,loggingActive:`紀錄中 - 訊息將自動重新整理`,startLogging:`開始紀錄`,stopLogging:`停止紀錄`,clearLog:`清除日誌`,topic:`主題`,timestamp:`時間戳`,direction:`方向`,all:`全部`},printerFiles:{title:`檔案管理器`,storageUsed:`已用:`,storageFree:`剩餘:`,filterPlaceholder:`篩選檔案...`,deleteButton:`刪除`,deleteFiles:`刪除 {{count}} 個檔案`,deleteFileConfirm:`刪除"{{name}}"?此操作無法復原。`,deleteFilesConfirm:`刪除 {{count}} 個選中的檔案?此操作無法復原。`,noFiles:`印表機上沒有檔案`,loadingFiles:`載入檔案中...`,failedToLoad:`載入檔案失敗`,toast:{filesDeleted:`已刪除 {{count}} 個檔案`,deleteFailed:`刪除失敗:{{error}}`}},confirm:{delete:`確定要刪除嗎?`,unsavedChanges:`您有未儲存的更改。確定要離開嗎?`,clearQueue:`確定要清空佇列嗎?`},login:{title:`Bambuddy 登入`,subtitle:`登入您的帳戶`,username:`使用者名稱`,usernamePlaceholder:`輸入您的使用者名稱`,usernameOrEmail:`使用者名稱或信箱`,usernameOrEmailPlaceholder:`使用者名稱或 @ 信箱`,password:`密碼`,passwordPlaceholder:`輸入您的密碼`,signIn:`登入`,signingIn:`登入中...`,rememberMe:`記住我`,forgotPassword:`忘記密碼?`,autologinFailed:`自動SSO登入失敗。請在下方選擇一個提供者以繼續。`,localDisabledNotice:`本機登入已停用。請使用下方的SSO提供者之一。`,loginSuccess:`登入成功`,loginFailed:`登入失敗`,enterCredentials:`請輸入使用者名稱和密碼`,enterEmail:`請輸入您的電子郵件地址`,oidcLoginFailed:`OIDC 登入失敗`,oidcErrors:{providerError:`身份提供者返回了一個錯誤`,missingParameters:`OIDC 回呼缺少必要引數`,invalidState:`OIDC 狀態無效或已被使用`,stateExpired:`OIDC 登入會話已過期,請重試`,providerNotFound:`未找到 OIDC 提供者`,discoveryFailed:`無法獲取 OIDC 探索文件`,invalidDiscovery:`OIDC 探索文件無效`,networkError:`OIDC 權杖交換時出現網路錯誤`,badResponse:`OIDC 權杖交換時收到意外回應`,noIdToken:`OIDC 提供者未返回 ID 權杖`,validationFailed:`OIDC 權杖驗證失敗`,nonceMismatch:`OIDC nonce 不符,可能存在重放攻擊`,missingSubClaim:`OIDC 權杖缺少 sub 宣告`,noLinkedAccount:`沒有與此 OIDC 身份連結的本機帳戶`,accountInactive:`您的帳戶已被停用`,userResolutionFailed:`無法解析您的帳戶`,internalError:`OIDC 登入過程中發生內部錯誤`,tokenExchangeFailed:`OIDC 權杖交換失敗`},forgotPasswordTitle:`忘記密碼`,forgotPasswordMessage:`如果您忘記了密碼,請聯絡系統管理員進行重設。`,forgotPasswordEmailMessage:`輸入您的信箱地址,我們將向您傳送新密碼。`,emailAddress:`信箱地址`,emailPlaceholder:`your.email@example.com`,cancel:`取消`,sending:`傳送中...`,sendResetEmail:`傳送重設郵件`,howToReset:`如何重設密碼:`,resetStep1:`聯絡您的 Bambuddy 管理員`,resetStep2:`請他們在使用者管理中重設您的密碼`,resetStep3:`他們可以為您設定一個臨時密碼`,resetStep4:`使用新密碼登入並在設定中修改密碼`,gotIt:`知道了`,resetPassword:{title:`設定新密碼`,subtitle:`請在下方輸入並確認您的新密碼。`,newPassword:`新密碼`,newPasswordPlaceholder:`至少 8 個字元`,confirmPassword:`確認密碼`,confirmPasswordPlaceholder:`重複輸入新密碼`,saving:`儲存中…`,submit:`設定新密碼`,backToLogin:`回到登入`,passwordsDoNotMatch:`密碼不符`,passwordTooShort:`密碼至少需要 8 個字元`,resetFailed:`密碼重設失敗。連結可能已過期。`},twoFA:{title:`兩步驗證`,subtitle:`您的帳戶已啟用兩步驗證。請在下方輸入驗證碼。`,methodAuthenticator:`身份驗證器 App`,methodEmail:`信箱驗證碼`,methodBackup:`備用恢復碼`,instructionsTotp:`請開啟您的身份驗證器 App,輸入 Bambuddy 的 6 位驗證碼。`,instructionsEmail:`6 位驗證碼已傳送至您的信箱,有效期為 10 分鐘。`,instructionsEmailNotSent:`點選下方按鈕,透過郵件獲取驗證碼。`,instructionsBackup:`請輸入您的一個 8 位備用恢復碼。每個恢復碼只能使用一次。`,sendCodeButton:`傳送信箱驗證碼`,sendingCode:`傳送中...`,resendCode:`重新傳送驗證碼`,codeLabel:`驗證碼`,backupCodeLabel:`備用恢復碼`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`驗證`,verifyingButton:`驗證中...`,backToLogin:`← 回到登入頁面`,orContinueWith:`或透過以下方式登入`,signInWith:`使用 {{provider}} 登入`,enterCode:`請輸入驗證碼`,sendCodeFailed:`驗證碼傳送失敗`,invalidCode:`無效驗證碼,請重試。`}},setup:{title:`Bambuddy 設定`,subtitle:`為您的 Bambuddy 實例設定身份驗證`,enableAuth:`啟用身份驗證`,adminAccount:`管理員帳戶`,adminAccountDesc:`如果管理員使用者已存在,將使用現有管理員帳戶啟用身份驗證。如需使用現有管理員,請將下方欄位留空,或輸入新憑據建立新管理員使用者。`,adminUsername:`管理員使用者名稱`,adminPassword:`管理員密碼`,optionalIfAdminExists:`(如管理員使用者已存在則為可選)`,adminUsernamePlaceholder:`輸入管理員使用者名稱(可選)`,adminPasswordPlaceholder:`輸入管理員密碼(可選)`,confirmPassword:`確認密碼`,confirmPasswordPlaceholder:`確認管理員密碼`,settingUp:`設定中...`,completeSetup:`完成設定`,toast:{authEnabledAdminCreated:`身份驗證已啟用並建立了管理員使用者`,authEnabledExistingAdmins:`使用現有管理員使用者啟用了身份驗證`,setupCompleted:`設定完成`,enterBothCredentials:`請輸入管理員使用者名稱和密碼,或將兩者留空以使用現有管理員使用者`,passwordsDoNotMatch:`密碼不符`,passwordTooShort:`密碼至少需要 6 個字元`}},changePassword:{title:`修改密碼`,currentPassword:`目前密碼`,currentPasswordPlaceholder:`輸入目前密碼`,newPassword:`新密碼`,newPasswordPlaceholder:`輸入新密碼(至少 6 個字元)`,confirmPassword:`確認新密碼`,confirmPasswordPlaceholder:`確認新密碼`,passwordsDoNotMatch:`密碼不符`,passwordTooShort:`密碼至少需要 6 個字元`,changing:`修改中...`,success:`密碼修改成功`,failed:`密碼修改失敗`},plateAlert:{title:`列印已暫停!`,message:`在列印板上偵測到物體。列印已自動暫停。請清理列印板並繼續列印。`,understand:`我知道了`},camera:{title:`攝影機檢視`,invalidPrinterId:`無效的印表機 ID`,live:`即時`,snapshot:`快照`,restartStream:`重新啟動流`,refreshSnapshot:`重新整理快照`,fullscreen:`全螢幕`,exitFullscreen:`離開全螢幕`,connectingToCamera:`連線攝影機中...`,capturingSnapshot:`拍攝快照中...`,connectionLost:`連線已斷開`,connectionFailed:`攝影機連線失敗`,reconnecting:`{{countdown}} 秒後重新連線...(第 {{attempt}}/{{max}} 次嘗試)`,reconnectNow:`立即重新連線`,cameraUnavailable:`攝影機不可用`,cameraUnavailableDesc:`請確保印表機已通電並已連線。`,noCamera:`無可用攝影機`,retry:`重試`,cameraStream:`攝影機流`,zoomOut:`縮小`,zoomIn:`放大`,resetZoom:`重設縮放`,recording:`錄製中`,startRecording:`開始錄製`,stopRecording:`停止錄製`,chamberLight:`切換腔室燈`,unavailable:`攝影機無法使用`,diagnose:{button:`診斷`,modalTitle:`攝影機診斷`,running:`正在執行診斷...`,runFailed:`無法執行診斷: {{error}}`,retry:`重新執行`,stage:{tcp_reachable:`網路可達性`,first_frame:`畫面擷取`,live_stream_active:`直播串流進行中`},summary:{all_ok:`攝影機運作正常。診斷已成功完成所有階段。`,live_stream_active_healthy:`攝影機正在傳輸最新畫面 — 無需測試。`,printer_unreachable:`無法存取印表機。請檢查 IP 位址、網路連線以及印表機是否已開機。`,camera_port_closed:`印表機可存取,但攝影機連接埠已關閉。請確認印表機設定中已啟用僅 LAN 模式與開發者模式。`,no_frame:`已連線到攝影機,但未收到畫面。請重試或檢查印表機設定中攝影機是否已啟用。`,unknown_failure:`攝影機診斷因不明原因失敗。請查看支援日誌了解詳情。`},meta:{protocol:`協定`,port:`連接埠`,profile:`設定檔`}}},groups:{title:`群組管理`,subtitle:`管理存取控制的權限群組`,backToSettings:`返回設定`,createGroup:`建立群組`,noPermission:`您沒有存取此頁面的權限。`,system:`系統`,noDescription:`無描述`,usersCount:`{{count}} 個使用者`,permissionsCount:`{{count}} 個權限`,edit:`編輯`,delete:`刪除`,toast:{created:`群組建立成功`,updated:`群組更新成功`,deleted:`群組刪除成功`,enterGroupName:`請輸入群組名稱`},modal:{editGroup:`編輯群組`,createGroup:`建立群組`,cancel:`取消`,saving:`儲存中...`,creating:`建立中...`,saveChanges:`儲存更改`},form:{groupName:`群組名稱`,groupNamePlaceholder:`輸入群組名稱`,systemGroupWarning:`系統群組名稱不可更改`,description:`描述`,descriptionPlaceholder:`輸入描述(可選)`,permissions:`權限(已選 {{count}} 個)`},deleteModal:{title:`刪除群組`,message:`確定要刪除此群組嗎?此群組中的使用者將失去這些權限。`,confirm:`刪除群組`},editor:{title:`編輯群組`,createTitle:`建立群組`,search:`搜尋權限...`,selectAll:`全選`,clearAll:`清除全部`,permissionsSelected:`已選 {{count}} 個`,noResults:`沒有權限匹配您的搜尋`,websocketHint:`即時更新所需。缺少此權限時,介面將回退到定期輪詢。`}},users:{title:`使用者管理`,subtitle:`管理使用者及其對 Bambuddy 實例的存取`,backToSettings:`返回設定`,createUser:`建立使用者`,noPermission:`您沒有存取此頁面的權限。`,admin:`管理員`,noGroups:`無群組`,active:`活躍`,inactive:`非活躍`,edit:`編輯`,delete:`刪除`,system:`系統`,noGroupsAvailable:`無可用群組`,table:{username:`使用者名稱`,groups:`群組`,status:`狀態`,actions:`操作`},toast:{created:`使用者建立成功`,updated:`使用者更新成功`,deleted:`使用者刪除成功`,fillRequired:`請填寫所有必填欄位`,passwordsDoNotMatch:`密碼不符`,passwordTooShort:`密碼至少需要 6 個字元`,ldapProvisioned:`已建立 LDAP 使用者「{{username}}」`},modal:{createUser:`建立使用者`,editUser:`編輯使用者`,cancel:`取消`,creating:`建立中...`,saving:`儲存中...`,saveChanges:`儲存更改`,advancedAuthSubtitle:`使用進階認證`,tabsAriaLabel:`使用者來源`,localTab:`本機`,ldapTab:`LDAP`,ldapSearchLabel:`搜尋目錄`,ldapSearchPlaceholder:`輸入使用者名稱、姓名或電子郵件...`,ldapMinChars:`輸入至少 2 個字元以搜尋`,ldapTypeToSearch:`開始輸入以搜尋 LDAP 目錄`,ldapSearching:`搜尋目錄中...`,ldapNoResults:`目錄中沒有符合的使用者`,ldapSearchError:`目錄搜尋失敗。請檢查 LDAP 伺服器狀態。`,ldapAlreadyProvisioned:`已建立`,ldapSelectedLabel:`已選`,ldapProvision:`建立使用者`,ldapProvisioning:`建立中...`,ldapErrorProvision:`建立失敗。請檢查 LDAP 伺服器狀態後重試。`},form:{username:`使用者名稱`,usernamePlaceholder:`輸入使用者名稱`,email:`信箱`,emailPlaceholder:`user@example.com`,password:`密碼`,passwordPlaceholder:`輸入密碼`,confirmPassword:`確認密碼`,confirmPasswordPlaceholder:`確認密碼`,newPasswordPlaceholder:`輸入新密碼`,confirmNewPasswordPlaceholder:`確認新密碼`,leaveBlankToKeep:`留空以保持目前值`,groups:`群組`,optional:`可選`,autoGeneratedPassword:`將自動產生安全密碼並透過郵件傳送給使用者。`,passwordManagedByAdvancedAuth:`密碼由進階認證管理。使用"重設密碼"透過郵件向使用者傳送新密碼。`,resetPassword:`重設密碼`,resettingPassword:`重設密碼中...`},deleteModal:{title:`刪除使用者`,message:`確定要刪除此使用者嗎?此操作無法復原。`,confirm:`刪除使用者`}},streamOverlay:{title:`流疊加層`,invalidPrinterId:`無效的印表機 ID`,cameraStream:`攝影機流`,progress:`進度`,eta:`預計完成時間`,printerIdle:`印表機空閒`,printerOffline:`印表機離線`,status:{printing:`列印中`,paused:`已暫停`,finished:`已完成`,failed:`失敗`,idle:`空閒`,unknown:`未知`}},profiles:{title:`設定檔案`,subtitle:`管理您的切片預設和壓力推進校準`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`本機設定檔案`,kprofiles:`K 值設定`},orcaCloud:{connectedAs:`已連接`,connectedShort:`已連接到 Orca Cloud`,logout:`中斷連線`,noLogoutPermission:`您沒有中斷連線的權限`,noConnectPermission:`您沒有連接到 Orca Cloud 的權限`,retry:`重試`,connectButton:`連接 Orca Cloud`,connect:{title:`連接到 Orca Cloud`,description:`登入您的 Orca Cloud 帳號,將切片機設定檔同步到 Bambuddy。`},device:{title:`在 Orca Cloud 中核准 Bambuddy`,instruction:`開啟 Orca Cloud 並核准此代碼。核准後 Bambuddy 會自動連接。`,codeLabel:`您的配對代碼`,openButton:`開啟 Orca Cloud 核准頁面`,manualHint:`或前往 {{url}} 並輸入上方的代碼。`,waiting:`正在等待您核准…`,cancel:`取消`},profiles:{title:`您的 Orca Cloud 設定檔 ({{count}})`,refresh:`重新整理`,empty:`您的 Orca Cloud 帳號中尚無設定檔。`},toast:{disconnected:`已從 Orca Cloud 中斷連線`},errors:{startFailed:`無法啟動 Orca Cloud 登入流程。`,denied:`配對在 Orca Cloud 中被拒絕。`,expired:`配對代碼已過期。請點擊「連接」重試。`,pollFailed:`等待核准時連線中斷。請重試。`}},localProfiles:{title:`本機設定檔案`,subtitle:`從 OrcaSlicer 匯入和管理切片預設`,import:`匯入設定檔案`,importDesc:`將 .bbscfg、.bbsflmt、.orca_filament、.zip 或 .json 檔案拖放到此處`,importing:`匯入中...`,search:`搜尋本機預設...`,noPresets:`尚無本機預設`,noSearchResults:`沒有符合搜尋的預設`,badge:`本機`,edit:`編輯`,delete:`刪除`,cancel:`取消`,deleteConfirmTitle:`刪除預設`,deleteConfirm:`確定要刪除此預設嗎?此操作無法復原。`,source:`來源`,inheritsFrom:`繼承自`,filamentType:`類型`,vendor:`廠商`,compatiblePrinters:`相容印表機`,nozzleTemp:`噴嘴溫度`,cost:`成本`,density:`密度`,pressureAdvance:`壓力推進`,filament:`耗材`,process:`工藝`,printer:`印表機`,toast:{importSuccess:`已匯入 {{count}} 個預設`,importSkipped:`跳過 {{count}} 個預設(重複)`,importError:`匯入時出現 {{count}} 個錯誤`,deleted:`預設已刪除`,updated:`預設已更新`}},connectedAs:`已連線為`,signInExpiredTitle:`Bambu Cloud 登入已過期`,signInExpiredBody:`Bambu Lab 不再接受已儲存的權杖。請重新登入以恢復雲端設定檔、MakerWorld 匯入與韌體檢查。`,logout:`登出`,noLogoutPermission:`您沒有登出的權限`,failedToLoad:`載入設定檔案失敗`,retry:`重試`,time:{justNow:`剛剛`,minsAgo:`{{count}} 分鐘前`,hoursAgo:`{{count}} 小時前`,daysAgo:`{{count}} 天前`},toast:{loggedOut:`已登出`},login:{title:`連線到拓竹雲`,subtitle:`跨裝置同步您的切片預設`,email:`信箱`,password:`密碼`,region:`地區`,regionGlobal:`全球`,regionChina:`中國`,verificationCode:`驗證碼`,totpCode:`驗證器驗證碼`,checkEmail:`檢查您的信箱 ({{email}}) 獲取 6 位驗證碼`,enterTotpHint:`輸入驗證器 App 中的 6 位驗證碼`,accessToken:`存取權杖`,accessTokenHint:`貼上您的拓竹雲端存取權杖。中國大陸帳號(綁定手機號碼、無 Email 登入)僅能使用此方式登入。可從 MakerWorld 瀏覽器 Cookie 取得權杖,詳見 Wiki。`,back:`返回`,loginButton:`登入`,verifyButton:`驗證`,setTokenButton:`設定權杖`,useToken:`改用存取權杖`,useEmail:`改用信箱登入`,toast:{loggedIn:`登入成功`,codeSent:`驗證碼已傳送到您的信箱`,enterTotp:`輸入驗證器 App 中的程式碼`,tokenSet:`權杖設定成功`}},presets:{myPreset:`我的預設(可編輯)`,duplicate:`複製`,editable:`可編輯`,failedToLoadDetails:`載入預設詳情失敗`,deleteConfirm:`刪除此預設?`,deleteWarning:`這將從拓竹雲中永久刪除"{{name}}"。此操作無法復原。`,noDuplicatePermission:`您沒有複製預設的權限`,noEditPermission:`您沒有編輯預設的權限`,noDeletePermission:`您沒有刪除預設的權限`,types:{filament:`耗材預設`,printer:`印表機預設`,process:`工藝預設`},toast:{deleted:`預設已刪除`,created:`預設已建立`,updated:`預設已更新`,duplicated:`預設已複製`,fieldAdded:`欄位"{{key}}"已新增`,exported:`預設已匯出`},baseLabel:`基礎:{{name}}`,currentLabel:`目前:{{name}}`,newPreset:`新增預設`,editPreset:`編輯預設`,duplicatePreset:`複製預設`,createNewPreset:`建立新預設`,customizeSettings:`自訂新預設的設定`,compareWithBase:`與基礎預設比較`,compare:`比較`,basePreset:`基礎預設`,selectBasePreset:`選擇基礎預設...`,presetName:`預設名稱`,myCustomPreset:`我的自訂預設`,inheritsFrom:`繼承自`,dropJsonToImport:`拖放 JSON 以匯入`,tabs:{common:`常用`,allFields:`所有欄位`},availableFields:`可用欄位`,searchFieldsPlaceholder:`搜尋欄位...`,noMatchingFields:`沒有匹配的欄位`,allFieldsAdded:`所有欄位已新增`,addCustomField:`新增自訂欄位`,yourOverrides:`您的覆蓋值`,noOverridesYet:`尚無覆蓋值`,clickFieldsToAdd:`點選左側的欄位進行新增`,saveAsTemplate:`儲存為範本`,jsonTip:`提示:將 .json 檔案拖放到此對話方塊的任意位置以匯入設定`},cloudView:{searchPlaceholder:`搜尋預設...`,templates:`範本`,refresh:`重新整理`,newPreset:`新增預設`,clearFilters:`清除篩選`,compareMode:`比較模式`,selectAnotherPreset:`選擇另一個 {{type}} 預設`,clickTwoPresets:`點選兩個相同類型的預設進行比較`,selectFirst:`1. 選擇第一個`,selectSecond:`2. 選擇第二個`,compareNow:`立即比較`,lastSynced:`上次同步:`,showingCount:`顯示 {{showing}} / {{total}} 個預設`,noPresetsFound:`未找到預設`,columns:{filament:`耗材`,process:`工藝`,printer:`印表機`},noFilamentPresets:`無耗材預設`,noProcessPresets:`無工藝預設`,noPrinterPresets:`無印表機預設`,filters:{type:`類型`,owner:`所有者`,printer:`印表機`,nozzle:`噴嘴`,filament:`耗材`,layer:`層`,all:`全部`,myPresets:`我的預設`,builtIn:`內建`,process:`工藝`},noTemplatesPermission:`您沒有管理範本的權限`,noRefreshPermission:`您沒有重新整理設定檔案的權限`,noCreatePermission:`您沒有建立預設的權限`},templates:{title:`快速範本`,noTemplates:`尚無範本`,createFirst:`從預設編輯器建立範本`,typeFilter:`類型:`,deleteTitle:`刪除範本`,deleteWarning:`此操作無法復原`,deleteConfirm:`確定要刪除"{{name}}"嗎?`,namePlaceholder:`範本名稱`,descriptionPlaceholder:`描述`,settingsJson:`設定 (JSON)`,fieldsCount:`{{count}} 個欄位`,shownInModals:`在對話方塊中顯示`,hiddenInModals:`在對話方塊中隱藏`,apply:`套用`,toast:{deleted:`範本已刪除`,updated:`範本已更新`,created:`範本已建立`,applied:`範本已套用`}}},support:{debugLoggingActive:`偵錯日誌紀錄已啟用`,manageLogs:`管理`,collectItem7:`印表機連線和韌體版本`,collectItem8:`整合狀態(Spoolman、MQTT、HA)`,collectItem9:`網路介面(僅子網)`,collectItem10:`Python 套件版本`,collectItem11:`資料庫健康檢查`,collectItem12:`Docker 環境詳情`,bundleGenerating:`正在產生套件...`,bundleStepConnection:`正在執行印表機連線檢查`,bundleStepVirtualPrinters:`正在執行虛擬印表機設定檢查`,bundleStepLogScan:`正在掃描最近的日誌以尋找已知問題`,bundleStepBuild:`正在建立支援套件 ZIP 檔案`},fileManager:{title:`檔案管理器`,subtitle:`組織和管理您的列印檔案`,uploadFiles:`上傳檔案`,newFolder:`新增資料夾`,folderName:`資料夾名稱`,folderNamePlaceholder:`例如:功能零件`,renameFile:`重新命名檔案`,renameFolder:`重新命名資料夾`,invalidFilenameChar:`列印檔案名稱中不允許使用字元 "{{char}}"。印表機 SD 卡拒絕以下字元: < > : " / \\ | ? *`,moveFiles:`移動 {{count}} 個檔案`,rootNoFolder:`根目錄(無資料夾)`,current:`目前`,linkFolder:`連結資料夾`,linkFolderDescription:`將"{{name}}"連結到專案或歸檔以便快速存取。`,project:`專案`,archive:`歸檔`,noProjectsFound:`未找到專案`,noArchivesFound:`未找到歸檔`,unlink:`取消連結`,link:`連結`,dragDropFiles:`將檔案拖放到此處`,dropFilesHere:`將檔案放在此處`,releaseToUpload:`釋放以上傳`,orClickToBrowse:`或點選瀏覽`,allFileTypesSupported:`支援所有檔案類型。ZIP 檔案將被解壓。`,zipFilesDetected:`偵測到 ZIP 檔案`,zipExtractOptions:`ZIP 檔案將被解壓。選擇如何處理資料夾結構:`,preserveZipStructure:`保留 ZIP 中的資料夾結構`,createFolderFromZip:`從 ZIP 檔名建立資料夾`,stlThumbnailGeneration:`STL 縮圖產生`,zipMayContainStl:`ZIP 檔案可能包含 STL 檔案。可以在解壓時產生縮圖。`,thumbnailsCanBeGenerated:`可以為 STL 檔案產生縮圖。大型模型可能需要更長時間處理。`,generateThumbnailsForStl:`為 STL 檔案產生縮圖`,threemfDetected:`偵測到 3MF 檔案`,threemfExtractionInfo:`將自動從 3MF 檔案中提取印表機型號、材料、顏色和列印設定。`,willBeExtracted:`將被解壓`,filesExtracted:`已解壓 {{count}} 個檔案`,uploadComplete:`上傳完成:{{succeeded}} 個成功`,uploadFailed:`上傳失敗`,zipFilesFailed:`{{count}} 個檔案失敗`,uploading:`上傳中...`,changeLink:`更改連結...`,linkTo:`連結到...`,linkToProjectOrArchive:`連結到專案或歸檔`,generateThumbnail:`產生縮圖`,generateThumbnails:`產生縮圖`,generateThumbnailsForMissing:`為缺少縮圖的 STL 檔案產生縮圖`,gridView:`網格檢視`,listView:`列表檢視`,lowDiskSpaceWarning:`磁碟空間不足警告`,lowDiskSpaceDetails:`僅剩 {{free}}(總共 {{total}})。閾值設定為 {{threshold}} GB。`,files:`檔案`,folders:`資料夾`,size:`大小`,free:`剩餘`,allFiles:`所有檔案`,allExternal:`外部`,externalIsEmpty:`沒有外部檔案`,externalEmptyDescription:`已連結的外部資料夾中的檔案將顯示於此。`,wrap:`換行`,enableTextWrapping:`啟用文字換行`,disableTextWrapping:`停用文字換行`,collapse:`折疊`,collapseFoldersByDefault:`預設折疊資料夾`,expandFoldersByDefault:`預設展開資料夾`,folderSort:`資料夾排序`,folderSortByName:`依名稱`,folderSortByActivity:`依最近活動`,dragToResizeTooltip:`拖曳調整大小,雙擊重設`,searchFiles:`搜尋檔案...`,searchSubfoldersHint:`包含子資料夾`,readme:{truncated:`已截斷`,show:`顯示 README`,hide:`隱藏 README`,label:`README`},tags:{title:`標籤`,subtitle:`為檔案加上跨資料夾的標籤 —— 玩具、兒童安全、僅 PETG 等等。`,manage:`標籤`,manageTitle:`管理標籤目錄`,add:`新增標籤`,edit:`重新命名標籤`,name:`名稱`,fileCount:`檔案數`,empty:`還沒有標籤。建立一個開始為檔案加標籤吧。`,noMatches:`沒有符合的標籤。`,createPlaceholder:`例:玩具、兒童安全、petg`,createButton:`建立`,nameRequired:`名稱為必填。`,searchPlaceholder:`過濾標籤…`,created:`已建立標籤。`,updated:`已重新命名標籤。`,deleted:`已刪除標籤。`,saveFailed:`無法儲存標籤。`,deleteFailed:`無法刪除標籤。`,applyFailed:`無法套用標籤。`,applyAdd:`新增標籤`,applyRemove:`移除標籤`,applyAddSuccess:`已為 {{files}} 個檔案新增 {{count}} 個標籤。`,applyRemoveSuccess:`已從 {{files}} 個檔案移除 {{count}} 個標籤。`,actionAdd:`加到所選檔案`,actionRemove:`從所選檔案移除`,tagAction:`標籤`,bulkTitle:`為所選的 {{count}} 個檔案加標籤`,bulkTooltip:`在每個所選檔案上新增或移除標籤。`,noPermission:`您沒有為檔案加標籤的權限。`,filterLabel:`篩選條件:`,clearAll:`全部清除`,confirmDelete:`刪除標籤 "{{name}}"?`,confirmDeleteMessage:`此動作會從目錄中刪除該標籤。檔案保留其他標籤。`,confirmDeleteInUseMessage:`此標籤存在於 {{count}} 個檔案上。刪除後所有檔案上的標籤都會消失,但檔案本身不會動。`,editAria:`編輯 {{name}}`,deleteAria:`刪除 {{name}}`},allTypes:`所有類型`,prints:`列印`,ascending:`升序`,descending:`降序`,showModified:`顯示修改日期`,hideModified:`隱藏修改日期`,lastModified:`最後修改`,lastActivity:`最近活動`,resultsCount:`{{showing}} / {{total}} 個檔案`,selectAll:`全選`,deselectAll:`取消全選`,selected:`已選擇 {{count}} 個`,adding:`新增中...`,loadingFiles:`載入檔案中...`,folderIsEmpty:`資料夾為空`,noFilesYet:`尚無檔案`,folderEmptyDescription:`上傳檔案或將檔案移入此資料夾以開始使用。`,noFilesDescription:`上傳檔案以開始組織您的列印相關檔案。`,noMatchingFiles:`沒有匹配的檔案`,noMatchingFilesDescription:`沒有檔案匹配您目前的搜尋或篩選條件。`,clearFilters:`清除篩選`,printedCount:`已列印 {{count}} 次`,uploadedBy:`上傳者`,deleteFolder:`刪除資料夾`,deleteFile:`刪除檔案`,deleteFilesCount:`刪除 {{count}} 個檔案`,deleteFolderConfirm:`確定要刪除此資料夾嗎?其中的所有檔案也將被刪除。`,deleteFileConfirm:`確定要刪除此檔案嗎?`,deleteFilesConfirm:`確定要刪除 {{count}} 個選中的檔案嗎?此操作無法復原。`,deleting:`刪除中...`,noPermissionRenameFolder:`您沒有重新命名資料夾的權限`,noPermissionLinkFolder:`您沒有連結資料夾的權限`,noPermissionDeleteFolder:`您沒有刪除資料夾的權限`,onlyEmptyFoldersDeletable:`您只能刪除空資料夾`,noPermissionPrint:`您沒有列印的權限`,noPermissionSlice:`您沒有切片檔案的權限`,noPermissionAddToQueue:`您沒有新增到佇列的權限`,noPermissionDownload:`您沒有下載檔案的權限`,noPermissionRenameFile:`您沒有重新命名此檔案的權限`,noPermissionGenerateThumbnail:`您沒有產生縮圖的權限`,noPermissionDeleteFile:`您沒有刪除此檔案的權限`,noPermissionCreateFolder:`您沒有建立資料夾的權限`,noPermissionUpload:`您沒有上傳檔案的權限`,noPermissionMoveFiles:`您沒有移動檔案的權限`,noPermissionDeleteFiles:`您沒有刪除檔案的權限`,linkExternal:`連結外部`,linkExternalFolder:`連結外部資料夾`,linkExternalFolderDescription:`將主機目錄(NAS、USB、網路共享)掛載到檔案管理器中。檔案不會被複制——直接從原始路徑存取。`,externalFolderNamePlaceholder:`例如:NAS列印檔案`,externalPath:`主機路徑`,externalPathHelp:`Docker主機上目錄的絕對路徑。必須以繫結掛載方式掛載到容器中。`,readOnly:`只讀`,readOnlyHelp:`防止上傳和刪除`,showHiddenFiles:`顯示隱藏檔案(點檔案)`,externalFolder:`外部資料夾`,scanFolder:`掃描`,toast:{folderCreated:`資料夾已建立`,folderDeleted:`資料夾已刪除`,fileDeleted:`檔案已刪除`,filesDeleted:`已刪除 {{count}} 個檔案`,filesMoved:`檔案已移動`,folderLinked:`資料夾已連結`,folderUnlinked:`資料夾已取消連結`,externalFolderLinked:`外部資料夾已連結並掃描`,folderScanned:`掃描完成:新增 {{added}} 個,移除 {{removed}} 個`,addedToQueue:`已將 {{count}} 個檔案新增到佇列`,addedToQueuePartial:`已新增 {{added}} 個檔案,{{failed}} 個失敗`,failedToAddToQueue:`新增檔案失敗:{{error}}`,fileRenamed:`檔案已重新命名`,folderRenamed:`資料夾已重新命名`,thumbnailsGenerated:`已產生 {{count}} 個縮圖`,thumbnailsGeneratedPartial:`已產生 {{succeeded}} 個縮圖,{{failed}} 個失敗`,noStlMissingThumbnails:`沒有缺少縮圖的 STL 檔案`,failedToGenerateThumbnails:`產生縮圖失敗:{{error}}`,thumbnailGenerated:`縮圖已產生`,failedToGenerateThumbnail:`產生縮圖失敗:{{error}}`}},projects:{title:`專案`,subtitle:`組織和追蹤您的 3D 列印專案`,newProject:`新增專案`,editProject:`編輯專案`,deleteProject:`刪除專案`,projectName:`專案名稱`,description:`描述`,noProjects:`尚無專案`,noProjectsFiltered:`沒有{{status}}專案`,noProjectsFilteredHelp:`您沒有任何{{status}}專案。當專案狀態更改時,它們將出現在這裡。`,createFirst:`建立您的第一個項目以開始組織相關列印、追蹤進度和管理構建。`,createFirstButton:`建立您的第一個項目`,create:`建立`,files:`檔案`,prints:`列印`,plates:`板`,parts:`零件`,lastModified:`最後修改`,deleteConfirm:`確定要刪除此項目嗎?歸檔和佇列項目將被取消連結但不會被刪除。`,addFiles:`新增檔案`,removeFile:`移除檔案`,viewDetails:`檢視詳情`,namePlaceholder:`例如:Voron 2.4 構建`,urlLabel:`網址`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`網址必須以 http:// 或 https:// 開頭`,openExternalUrl:`開啟專案網址`,coverImageLabel:`封面圖片`,coverImageAlt:`專案封面圖片`,coverImageUpload:`上傳`,coverImageReplace:`替換`,coverImageRemove:`移除`,descriptionPlaceholder:`可選描述...`,color:`顏色`,targetPlates:`目標板數`,targetPlatesPlaceholder:`例如:25`,targetPlatesHelp:`列印任務數量`,targetParts:`目標零件數`,targetPartsPlaceholder:`例如:150`,targetPartsHelp:`所需零件總數`,targetSets:`每個檔案的份數`,targetSetsPlaceholder:`例如 10`,targetSetsHelp:`每個可列印檔案需要列印的次數`,tagsLabel:`標籤(逗號分隔)`,tagsPlaceholder:`例如:voron、功能件、禮物`,dueDate:`截止日期`,priority:`優先順序`,priorityLow:`低`,priorityNormal:`普通`,priorityHigh:`高`,priorityUrgent:`緊急`,statusActive:`進行中`,statusCompleted:`已完成`,statusArchived:`已歸檔`,done:`完成`,completed:`已完成`,failed:`失敗`,inQueue:`佇列中`,noPrintsYet:`尚無列印`,printJobs:`列印任務(板)`,partsPrinted:`已列印零件`,failedParts:`失敗零件`,import:`匯入`,export:`匯出`,importProject:`匯入專案`,exportAll:`匯出所有專案`,loading:`載入專案中...`,noEditPermission:`您沒有編輯專案的權限`,noDeletePermission:`您沒有刪除專案的權限`,noCreatePermission:`您沒有建立專案的權限`,noImportPermission:`您沒有匯入專案的權限`,noExportPermission:`您沒有匯出專案的權限`,toast:{created:`專案已建立`,updated:`專案已更新`,deleted:`專案已刪除`,imported:`專案已匯入`,multipleImported:`已匯入 {{count}} 個項目`,importFailed:`匯入失敗`,exported:`專案已匯出(僅中繼資料)`}},projectDetail:{notFound:`未找到專案`,backToProjects:`返回專案`,export:`匯出`,exportProject:`匯出專案`,noExportPermission:`您沒有匯出專案的權限`,noEditPermission:`您沒有編輯專案的權限`,partOf:`屬於:`,priorityLabel:`優先順序:`,noPrints:`此項目尚無列印`,status:{active:`進行中`,completed:`已完成`,archived:`已歸檔`},priority:{low:`低`,normal:`普通`,high:`高`,urgent:`緊急`},dueDate:{overdue:`已逾期`,today:`今天到期`,daysLeft:`還有 {{count}} 天`},progress:{platesProgress:`板進度`,partsProgress:`零件進度`,setsProgress:`完整套數`,sets:`套`,setsHint:`當每個可列印檔案都達到此次數時,即完成一套`,printJobs:`列印任務`,parts:`零件`,percentComplete:`{{percent}}% 完成`,remaining:`剩餘 {{count}} 個`},stats:{printJobs:`列印任務`,total:`總計`,failed:`{{count}} 個失敗`,partsPrinted:`已列印 {{count}} 個零件`,printTime:`列印時間`,filamentUsed:`耗材用量`},cost:{title:`成本追蹤`,filamentCost:`耗材成本`,energy:`能源`,totalCost:`總成本`,total:`總計`,includesBom:`含物料清單`,budget:`預算`,remaining:`剩餘`},subProjects:{title:`子專案 ({{count}})`},notes:{title:`備註`,noEditPermission:`您沒有編輯備註的權限`,placeholder:`新增關於此項目的備註...`,empty:`尚無備註。點選編輯新增備註。`},files:{title:`檔案`,linkFolders:`從檔案管理器連結資料夾`,forQuickAccess:`到此項目以便快速存取。`,fileCount:`{{count}} 個檔案`,empty:`未連結資料夾。前往檔案管理器將資料夾連結到此項目。`,printedCount:`已列印 {{count}} 次`,progressTooltip:`已完成 {{done}}/{{target}} 次列印`,noFiles:`此資料夾中沒有檔案。`},bom:{title:`材料清單`,acquired:`已獲取 {{completed}}/{{total}}`,showAll:`顯示全部`,hideDone:`隱藏已完成`,addPart:`新增零件`,noAddPermission:`您沒有新增零件的權限`,partNamePlaceholder:`零件名稱(例如:M3x8 螺絲)`,partName:`零件名稱`,qty:`數量`,price:`價格 ({{currency}})`,sourcingUrlPlaceholder:`採購連結(可選)`,remarksPlaceholder:`備註(可選)`,deletePart:`刪除零件`,deleteConfirm:`確定要刪除"{{name}}"嗎?`,noUpdatePermission:`您沒有更新零件的權限`,noEditPermission:`您沒有編輯零件的權限`,noDeletePermission:`您沒有刪除零件的權限`,totalCost:`總成本:`,empty:`材料清單中沒有零件。新增硬體、電子元件或其他元件以追蹤需要採購的物品。`},timeline:{title:`活動時間線`,empty:`尚無活動。`},template:{saveAsTemplate:`儲存為範本`,noCreatePermission:`您沒有建立範本的權限`},queue:{title:`佇列`,viewAll:`檢視全部`,printing:`{{count}} 個列印中`,queued:`{{count}} 個佇列中`},prints:{title:`列印 ({{count}})`},toast:{projectUpdated:`專案已更新`,partAdded:`零件已新增`,partRemoved:`零件已移除`,exportFailed:`匯出失敗`,projectExported:`專案已匯出`,templateCreated:`範本已建立`}},system:{title:`系統資訊`,version:`版本`,uptime:`執行時間`,cpuUsage:`CPU 使用率`,memoryUsage:`記憶體使用率`,diskUsage:`磁碟使用率`,networkInfo:`網路資訊`,logs:`日誌`,debugMode:`偵錯模式`,enableDebug:`啟用偵錯日誌`,disableDebug:`停用偵錯日誌`,downloadLogs:`下載日誌`,clearLogs:`清除日誌`,dockerInfo:`Docker 資訊`,containerName:`容器名稱`,imageName:`映象名稱`,platform:`平臺`,architecture:`架構`},sponsors:{sectionTitle:`獨立運作·社群支持`,tagline:`Bambuddy 完全免費,並將持續免費——感謝主動支持的使用者。沒有創投,也沒有雲端綁定。`,viewSupporters:`查看支持者`,toastPrints:`你已經用 Bambuddy 完成了 {{count}} 次列印。Bambuddy 之所以免費,要感謝支持者。`,toastCost:`你已經用 Bambuddy 追蹤了 {{total}} 的耗材。看看是誰讓專案保持獨立。`,toastArchives:`用 Bambuddy 封存了 {{count}} 次列印。看看是誰讓它保持獨立。`,toastAnniversary:`與 Bambuddy 相伴一年了!看看是誰讓專案保持獨立。`,toastVersionUpdate:`已更新至 v{{version}}。Bambuddy 之所以免費,要感謝支持者。`,toastBusiness:`您正在 {{count}} 台印表機上執行 Bambuddy?我們為團隊提供支援方案:優先修復、開立發票,以及與維護者的直接聯繫管道。`,businessCta:`Bambuddy 商業版`,businessTitle:`Bambuddy 商業版`,businessTagline:`您正在管理 {{count}} 台印表機。我們為團隊和列印農場提供優先支援、商業授權與發票開立。`},library:{title:`耗材庫`,addFilament:`新增耗材`,editFilament:`編輯耗材`,deleteFilament:`刪除耗材`,vendor:`廠商`,material:`材料`,color:`顏色`,kFactor:`K 值`,temperature:`溫度`,noFilaments:`耗材庫中沒有耗材`,deleteConfirm:`確定要刪除此耗材嗎?`,importFromPrinter:`從印表機匯入`,exportToFile:`匯出到檔案`,runWithPipeline:{actionLabel:`以管線執行`,noPermission:`您沒有執行管線的權限`,modalTitle:`以管線執行`,confirmTitle:`確認執行`,confirmIntro:`預檢發現此次執行存在問題`,sourceHint:`來源`,pipelineHint:`管線`,targetHint:`目標`,pipelineListAria:`可用管線`,runAnyway:`仍然執行`,loading:`載入中…`,empty:`尚未儲存管線。請開啟切片對話框並點擊「另存為管線」建立一個。`,noTarget:`未設定目標印表機`,noTargetMessage:`此管線沒有目標印表機。請在設定中開啟並選擇一個。`,copies:`副本數`,copiesHint:`最多 {{n}}`,classTarget:`任意 {{model}}`,toast:{started:`管線執行已開始`,failed:`無法啟動執行`},issue:{printerNotSet:`此管線未設定目標印表機。`,printerNotFound:`目標印表機已不存在。`,printerDisabled:`目標印表機已停用。`,printerOffline:`目標印表機已離線。`,filamentType:`耗材槽 {{slot}}:預期 {{expected}},AMS 實際 {{actual}}`,filamentColor:`耗材槽 {{slot}}:顏色不同(預期 {{expected}},AMS 實際 {{actual}})`,amsSlotMissing:`此印表機上沒有 AMS 槽 {{slot}}`,filamentUnverified:`耗材槽 {{slot}} 來自雲端 / 標準預設,無法靜態驗證。`,noClassMatches:`此安裝中沒有符合該管線目標型號類別({{expected}})的印表機。`,classNotSet:`管線目標設定為印表機類別但未選擇型號。`}}},slice:{title:`切片模型`,action:`切片`,actionAll:`切片全部 {{count}} 個盤面`,actionAllTitle:`將所有盤面切片為單一的多盤面輸出(單一封存)。線材選擇涵蓋專案定義的每個槽位。`,allPlatesToggle:`切片全部 {{count}} 個盤面`,slicing:`切片中…`,printer:`印表機設定檔`,process:`製程設定檔`,filament:`耗材設定檔`,filamentSlot:`耗材 {{index}}({{type}})`,selectPreset:`— 選擇預設 —`,loadingPresets:`載入預設中…`,analyzingPlateFilaments:`分析列印板耗材中…`,analyzingPlateFilamentsHint:`正在執行預覽切片以發現此列印板使用的 AMS 插槽。之後會快取 — 重新開啟是即時的。`,previewToast:`分析 {{name}} — {{elapsed}}`,previewWithProgress:`分析 {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,notUsedByPlate:`— 此列印板未使用`,noPresetsForSlot:`無可用預設`,otherPrinters:`其他印表機`,presetsLoadFailed:`載入預設失敗。請先開啟設定 → 設定檔以匯入。`,refreshPresets:`重新整理`,refreshPresetsTitle:`重新整理預設 — 擷取最新的雲端與打包設定清單(在 Bambu Studio 或 Bambu Handy 中刪除預設後使用)`,allPresetsRequired:`必須選擇所有預設`,useEmbedded:`使用檔案的內建設定`,useEmbeddedHint:`依設計者的設定(外牆、填充、耗材)切片,而非上方的設定檔。因您的印表機與檔案相符而可用。`,designSettings:`保留設計者的設定`,designSettingsHint:`此檔案相對標準設定檔修改了 {{count}} 項列印設定。`,designSettingsSelected:`已選擇 {{selected}} / {{total}}`,designSettingsPrinterCoupled:`與印表機相關`,designSettingsPrinterCoupledHint:`此值是為該檔案面向的印表機調校的,在你的印表機上可能不正確或超出範圍。`,enqueuing:`提交切片任務中…`,queued:`已排隊…`,failed:`切片失敗。請檢查切片器 sidecar 日誌。`,startedToast:`在背景切片 {{name}}…`,queuedToast:`已排隊:{{name}} — {{elapsed}}`,runningToast:`切片 {{name}} — {{elapsed}}`,runningWithProgress:`{{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,runningWithProgressMultiPlate:`盤面 {{plateIndex}} / {{plateCount}} • {{name}} – {{stage}} ({{percent}}%) – {{elapsed}}`,completedToast:`已切片 {{name}}`,failedTitle:`切片失敗`,failedToast:`切片 {{name}} 失敗:{{detail}}`,tier:{local:`已匯入`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`標準`},cloud:{notAuthenticated:`登入 Bambu Cloud(設定 → 設定檔 → Bambu Cloud)以查看雲端預設。`,expired:`Bambu Cloud 工作階段已過期 — 請重新登入以重新整理雲端預設。`,unreachable:`目前無法存取 Bambu Cloud。本機和標準預設仍可使用。`},orcaCloud:{notAuthenticated:`登入 Orca Cloud(設定檔 → Orca Cloud)以查看您的 Orca 預設。`,expired:`Orca Cloud 工作階段已過期 — 請重新登入以重新整理您的 Orca 預設。`,unreachable:`Orca Cloud 目前無法存取。其他預設仍可正常使用。`},bedType:{label:`列印板`,auto:`自動(使用製程預設)`,coolPlate:`冷板`,coolPlateSuperTack:`Cool Plate SuperTack`,engineering:`Engineering Plate`,highTemp:`High Temp Plate`,texturedPEI:`Textured PEI Plate`,smoothPEI:`Smooth PEI Plate`},pipelines:{label:`管線`,applyAria:`套用管線`,applyPrompt:`套用管線…`,empty:`無已儲存管線`,saveButton:`另存為管線`,saveTitle:`將目前四個槽位的選擇儲存為可重複使用的管線`,namePlaceholder:`管線名稱`,nameAria:`新管線名稱`,toast:{applied:`已套用「{{name}}」`,saved:`管線已儲存`,saveFailed:`儲存失敗`}}},spoolman:{title:`Spoolman 整合`,enabled:`Spoolman 已啟用`,url:`Spoolman URL`,connected:`已連線`,disconnected:`未連線`,testConnection:`測試連線`,sync:`同步`,syncing:`同步中...`,lastSync:`上次同步`,linkToSpoolman:`連結到 Spoolman`,openInSpoolman:`在 Spoolman 中開啟`,unlinkSpool:`取消連結耗材`,unlinkConfirmTitle:`取消指派料盤?`,unlinkConfirmMessage:`這將從此插槽中移除料盤。料盤本身的資料將保持不變。`,selectSpool:`選擇耗材`,noUnlinkedSpools:`無未指派的料盤`,linkSuccess:`料盤指派成功`,linkFailed:`料盤指派失敗`,unlinkSuccess:`料盤取消指派成功`,unlinkFailed:`料盤取消指派失敗`,linkedSpool:`已指派料盤`,spoolId:`耗材 ID`,fillSourceLabel:`(Spoolman)`,weight:`重量`,remaining:`剩餘`,disableWeightSync:`停用 AMS 估計重量同步`,disableWeightSyncDesc:`不從 AMS 估計值更新剩餘容量。如果您更喜歡 Spoolman 的用量追蹤而非 AMS 百分比估計,請使用此選項。新耗材仍將使用 AMS 估計值作為初始重量。`,reportPartialUsage:`報告失敗列印的部分用量`,reportPartialUsageDesc:`當列印失敗或被取消時,根據層進度報告估計的耗材使用量。`},locations:{title:`儲存位置`,subtitle:`管理貨架、抽屜等線軸實體存放位置`,add:`新增位置`,addShort:`新增`,edit:`編輯位置`,name:`名稱`,spools:`線軸`,empty:`尚無儲存位置。建立第一個貨架或抽屜。`,manage:`位置`,createPlaceholder:`例如:A 架、抽屜 1`,nameRequired:`位置名稱為必填`,created:`位置已建立`,updated:`位置已更新`,deleted:`位置已刪除`,saveFailed:`儲存位置失敗`,deleteFailed:`刪除位置失敗`,deleteBlocked:`刪除前請移走此位置上的所有線軸`,confirmDelete:`刪除「{{name}}」?`,confirmDeleteMessage:`此位置將從目錄中移除。請先移走線軸。`},inventory:{title:`耗材庫存`,subtitle:`管理您的料盤`,addToInventory:`新增至庫存`,addToInventoryPending:`正在新增...`,addToInventorySuccess:`料盤已新增至庫存`,addToInventoryFailed:`新增料盤至庫存失敗`,unknownSpoolTitle:`偵測到新耗材`,unknownSpoolMessage:`在 {{location}} 偵測到具有未知 RFID 標籤的料盤。是否立即新增至庫存?`,unknownSpoolSlot:`插槽`,bulk:{selectAllVisible:`選擇所有可見項`,selectRow:`選擇列`,selectGroup:`選擇群組`,selectionCount:`已選 {{count}} 個`,edit:`編輯`,printLabels:`列印標籤`,resetUsage:`重設使用量`,restore:`還原`,archive:`封存`,delete:`刪除`,clearSelection:`清除選擇`,editTitle:`批次編輯料盤`,editSubtitle:`將套用於選取的 {{count}} 個料盤。僅更新勾選的欄位。`,editHint:`在欄位中輸入即可標記為更新 — 僅傳送已勾選的列。留空欄位不會變更料盤(清空欄位僅能在單個料盤中操作)。`,useCustom:`使用「{{value}}」`,toggleField:`切換此欄位的更新`,changeCount:`將更新 {{count}} 個欄位。`,applyPending:`套用中...`,applyButton:`套用於 {{count}} 個料盤`,deleteTitle:`刪除選取的料盤`,archiveTitle:`封存選取的料盤`,restoreTitle:`還原選取的料盤`,resetUsageTitle:`重設選取料盤的使用量`,deleteMessage:`永久刪除 {{count}} 個料盤?此操作無法復原。`,archiveMessage:`封存 {{count}} 個料盤?之後可以還原。`,restoreMessage:`還原 {{count}} 個已封存的料盤?`,resetUsageMessage:`重設 {{count}} 個料盤的「總消耗」計數器?剩餘重量將被保留。`,updateSuccess:`已更新 {{count}} 個料盤`,updateFailed:`批次更新失敗`,updatePartial:`已更新 {{ok}} 個,{{failed}} 個失敗`,updateAllFailed:`{{count}} 個料盤更新全部失敗 — 已保留選擇以便重試`,deleteSuccess:`已刪除 {{count}} 個料盤`,deleteFailed:`批次刪除失敗`,deletePartial:`已刪除 {{ok}} 個,{{failed}} 個失敗`,deleteAllFailed:`{{count}} 個料盤刪除全部失敗 — 已保留選擇以便重試`,archiveSuccess:`已封存 {{count}} 個料盤`,archiveFailed:`批次封存失敗`,archivePartial:`已封存 {{ok}} 個,{{failed}} 個失敗`,archiveAllFailed:`{{count}} 個料盤封存全部失敗 — 已保留選擇以便重試`,restoreSuccess:`已還原 {{count}} 個料盤`,restoreFailed:`批次還原失敗`,restorePartial:`已還原 {{ok}} 個,{{failed}} 個失敗`,restoreAllFailed:`{{count}} 個料盤還原全部失敗 — 已保留選擇以便重試`,invalidHex:`請輸入 6 位十六進位字元 (RRGGBB) 或 8 位 (RRGGBBAA),否則此欄位不會套用。`},spoolmanMixedContentTitle:`Spoolman 無法透過 HTTPS 載入 — 瀏覽器已封鎖混合內容`,spoolmanMixedContentBody:`Bambuddy 透過您的反向代理以 HTTPS 提供服務,但您的 Spoolman 位址仍為 HTTP。基於安全考量,瀏覽器會封鎖混合內容,因此內嵌的 Spoolman 介面無法載入。Spoolman 也必須可透過 HTTPS 存取。`,spoolmanMixedContentFixReverseProxy:`請將 Spoolman 置於與 Bambuddy 相同的反向代理(Traefik / Nginx / Caddy)之後並啟用 HTTPS,然後在設定中將 Spoolman URL 更新為新的 HTTPS 位址。`,spoolmanMixedContentFixOpenNewTab:`作為替代方案,可在新分頁以 HTTP 開啟 Spoolman — 混合內容規則僅適用於內嵌框架,獨立分頁仍可正常運作。`,spoolmanOpenInNewTab:`在新分頁開啟 Spoolman`,labels:{title:`列印線材標籤`,selectedCount:`已選 {{count}} 項`,pickSpools:`選擇要列印標籤的線材:`,monochrome:`單色(黑白印表機)`,monochromeHint:`移除顏色色塊並加寬文字`,searchPlaceholder:`按名稱、品牌或 #ID 搜尋`,filterByMaterial:`材料:`,allMaterials:`全部`,selectVisible:`選擇所有可見 ({{count}})`,deselectVisible:`取消選擇可見`,clearAll:`全部清除`,noSpoolsToShow:`沒有要顯示的線材。請調整篩選條件後重試。`,noMatches:`沒有線材符合目前搜尋或篩選。`,printOne:`列印此線材的標籤`,printLabels:`列印標籤…`,bulkTitle:`從目前顯示的 {{count}} 個線材中選擇要列印標籤的`,noSpoolsTitle:`沒有要貼標籤的線材`,error:`無法產生標籤:{{msg}}`,sortBy:{label:`排序:`,id:`按 ID`,color:`按顏色`},templates:{amsHolderSmall:{label:`AMS 支架 — 小 (74 × 33 mm)`,hint:`每頁一個標籤;對應 MakerWorld 模型 752566 (AMS 耗材標籤支架) 中可列印的標籤。`},amsHolderLarge:{label:`AMS 支架 — 大 (75 × 55 mm)`,hint:`每頁一個標籤;對應 AMS 耗材標籤支架的紙卡插入款。空間足夠放置色塊、品牌、材質、ID 與 QR 碼。`},box40x30:{label:`盒標籤 (40 × 30 mm)`,hint:`每頁一張;常見的 DK/Brother 捲尺寸,適合用於耗材袋與儲物盒標籤。`},box:{label:`Box label (62 × 29 mm)`,hint:`每頁一個標籤;適配 Brother PT/QL 和 Dymo 小標籤。`},averyL7160:{label:`Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)`,hint:`歐洲規格紙張;每張 A4 頁 21 個標籤。`},avery5160:{label:`Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)`,hint:`美國規格紙張;每張 Letter 頁 30 個標籤。`}}},csv:{importButton:`匯入 CSV`,exportButton:`匯出 CSV`,modalTitle:`從 CSV 匯入耗材`,selectFile:`選擇 CSV 檔案或拖放到此處`,dragHint:`標頭:material(必填)、brand、subtype、color_name、rgba、…`,parsing:`正在讀取檔案…`,previewError:`無法讀取 CSV 檔案`,validCount:`{{count}} 個有效`,errorCount:`{{count}} 個錯誤`,skippedCount:`{{count}} 個略過`,colRow:`列`,colStatus:`狀態`,colColor:`顏色`,colorResolved:`已從目錄填入顏色`,colorCrossMaterial:`顏色取自其他材料 — 目錄中無精確匹配`,duplicateExisting:`已存在具有此材料、品牌和顏色的線材卷 — 仍會作為新線材卷匯入`,spoolmanHint:`在 Spoolman 模式下,請使用 Spoolman 內建的 CSV 匯入/匯出。`,importValidRows:`匯入 {{count}} 個有效列`,noValidRows:`沒有有效列`,importing:`正在匯入…`,importSuccess:`已匯入 {{count}} 個耗材`,importError:`匯入失敗`,exportError:`匯出失敗`},addSpool:`新增耗材`,editSpool:`編輯耗材`,copySpool:`複製耗材`,material:`材料`,selectMaterial:`選擇材料...`,subtype:`子類型`,brand:`品牌`,searchBrand:`搜尋品牌...`,useCustomBrand:`使用"{{brand}}"`,useCustomMaterial:`使用自訂材料:{{material}}`,suggestedOptions:`推薦`,allOptions:`全部`,colorName:`顏色名稱`,colorNamePlaceholder:`翡翠白、烈焰紅...`,color:`顏色`,hexColor:`十六進位顏色`,pickColor:`選擇自訂顏色`,labelWeight:`標籤重量`,coreWeight:`空盤重量`,searchSpoolWeight:`搜尋耗材重量...`,weightUsed:`已使用`,currentWeight:`剩餘重量`,measuredWeight:`稱量重量`,spoolName:`料盤`,costPerKg:`每公斤成本`,storageLocation:`存放位置`,storageLocationPlaceholder:`例如:貨架A,抽屜1`,openInInventory:`在庫存中查看`,measuredWeightError:`稱量重量必須在 {{min}}g 到 {{max}}g 之間。`,slicerFilament:`切片耗材`,slicerFilamentName:`切片預設名稱`,slicerPreset:`切片預設`,searchPresets:`搜尋耗材預設...`,selectedPreset:`已選擇`,noPresetsFound:`未找到預設`,tempOverrides:`溫度覆蓋`,note:`備註`,notePlaceholder:`關於此耗材的任何備註...`,category:`類別`,categoryPlaceholder:`例如:生產、原型、客戶A`,categoryNone:`未分類`,storageLocationNone:`未設定位置`,lowStockThresholdOverride:`低庫存閾值(此料盤)`,lowStockThresholdOverrideHelp:`留空以使用全域閾值({{global}}%)。`,clearRfid:`清除 RFID 標籤`,rfidCleared:`RFID 標籤已清除`,archive:`歸檔`,restore:`恢復`,noSpools:`尚無耗材。新增您的第一個耗材開始使用。`,noAvailableSpools:`沒有可用的耗材。請先向庫存中新增耗材,或從其他槽位取消指派一個耗材。`,kProfiles:`K 值設定`,addKProfile:`新增 K 值設定`,assignSpool:`分配耗材`,unassignSpool:`取消分配`,assignSuccess:`耗材已分配,AMS 槽位已設定`,assignPendingInsert:`已分配。插入耗材後將設定槽位。`,assignFailed:`分配耗材失敗`,assignMismatchTitle:`材料不符`,assignMismatchMessage:`所選料盤材料 "{{spoolMaterial}}" 與 {{location}} 的料槽材料 "{{trayMaterial}}" 不符。仍要分配嗎?`,assignMismatchConfirm:`仍然分配`,assignPartialMismatchMessage:`料盤材料 "{{spoolMaterial}}" 與 {{location}} 的 "{{trayMaterial}}" 相近但不完全一致。是否繼續?`,assignProfileMismatchMessage:`料盤設定 "{{spoolProfile}}" 與 {{location}} 的料槽設定 "{{trayProfile}}" 不一致。是否繼續?`,assignReconfigureNote:`AMS 槽位將重新設定為使用料盤的設定。`,selectSpool:`選擇要分配到此槽位的耗材`,assigned:`已分配`,assigning:`分配中...`,searchSpools:`搜尋耗材...`,showAllSpools:`顯示所有耗材`,spoolmanSpools:`Spoolman 線軸`,allMaterials:`所有材料`,filterByBrand:`按品牌篩選...`,showArchived:`顯示已歸檔`,quickAdd:`快速新增(庫存)`,quantity:`數量`,stock:`庫存`,configured:`已設定`,spoolsCreated:`已建立 {{count}} 個耗材`,spoolsPartiallyCreated:`已建立 {{created}} / {{total}} 個耗材(部分失敗)`,spoolCreated:`耗材已建立`,spoolUpdated:`耗材已更新`,spoolDeleted:`耗材已刪除`,deepLinkSpoolNotFound:`找不到耗材`,deepLinkFetchFailed:`無法載入耗材 — 請重試`,spoolArchived:`耗材已歸檔`,spoolRestored:`耗材已恢復`,kProfileSaveFailed:`K值設定檔設定無法儲存`,syncWeightSpoolNotFound:`找不到耗材 — 可能已被刪除`,syncWeightSpoolmanUnreachable:`Spoolman 無法存取 — 請稍後再試`,syncWeightFailed:`重量同步失敗`,spoolmanUnreachable:`Spoolman 無法存取 — 請稍後再試`,deleteSpoolNotFound:`找不到耗材 — 可能已被刪除`,deleteFailed:`刪除耗材失敗`,archiveSpoolNotFound:`找不到耗材 — 可能已被刪除`,archiveFailed:`歸檔耗材失敗`,restoreSpoolNotFound:`找不到耗材 — 可能已被刪除`,restoreFailed:`恢復耗材失敗`,saveFailed:`儲存變更失敗`,tagClearFailed:`清除標籤失敗`,deleteConfirm:`確定要刪除此耗材嗎?此操作無法復原。`,archiveConfirm:`確定要歸檔此耗材嗎?`,advancedSettings:`進階設定`,filamentInfoTab:`耗材資訊`,paProfileTab:`PA 設定`,filamentInfo:`耗材`,additional:`附加`,loadingPresets:`載入雲端預設中...`,cloudConnected:`雲端已連線`,cloudNotConnected:`雲端未連線(使用預設值)`,recentColors:`最近`,searchColors:`搜尋顏色...`,searchResults:`搜尋結果`,allColors:`所有顏色`,commonColors:`常用顏色`,showLess:`顯示更少`,showAll:`顯示全部`,noColorsFound:`沒有顏色匹配您的搜尋`,noResults:`未找到匹配項`,extraColorsLabel:`附加顏色`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`貼上 2 至 8 個十六進位色值,以逗號分隔。將以漸層方式呈現。`,extraColorsInvalid:`已略過無效的十六進位值:{{tokens}}`,colorEffectLabel:`效果`,colorEffect:{none:`無`,sparkle:`閃光`,wood:`木紋`,marble:`大理石`,glow:`夜光`,matte:`霧面`,silk:`絲光`,galaxy:`星空`,rainbow:`彩虹`,metal:`金屬`,translucent:`半透明`,gradient:`漸層`,dualColor:`雙色`,triColor:`三色`,multicolor:`多色`},selectMaterialFirst:`請先在耗材資訊分頁中選擇材料。`,noPrintersConfigured:`未設定印表機。新增印表機以使用 PA 設定。`,matchingFilter:`匹配`,anyBrand:`任何品牌`,anyVariant:`任何變體`,autoSelect:`自動選擇`,matches:`匹配`,match:`匹配`,noMatches:`無匹配`,connected:`已連線`,offline:`離線`,printerOffline:`印表機離線。連線後檢視校準設定。`,noKProfilesMatch:`沒有 K 值設定匹配所選耗材。`,leftNozzle:`左噴嘴`,rightNozzle:`右噴嘴`,profilesSelected:`個校準設定已選擇`,totalInventory:`總庫存`,totalConsumed:`總消耗`,byMaterial:`按材料`,inPrinter:`在印表機中`,lowStock:`庫存不足`,sinceTracking:`自開始追蹤`,resetConsumedCounter:`重置計數器`,resetConsumedCounterTooltip:`將此料盤的已消耗克數計數器歸零。剩餘重量不會變更。`,resetConsumedCounterConfirm:`將此料盤的已消耗克數計數器重置為 0?後續列印將從零開始計算。料盤本身、剩餘重量計算與您的設定均不會變更。`,resetAllConsumedCounters:`重置所有計數器`,resetAllConsumedCountersTooltip:`將每個料盤的已消耗克數計數器歸零。剩餘重量不會變更。`,resetAllConsumedCountersConfirm:`將全部 {{count}} 個料盤(含已封存)的已消耗克數計數器重置為 0?這將清空「累計消耗」統計值,後續列印從零開始計算。料盤與剩餘重量不會變更。`,consumedCounterReset:`計數器已重置`,allConsumedCountersReset:`已重置 {{count}} 個料盤的計數器`,resetConsumedCounterFailed:`重置計數器失敗`,loadedInAms:`已裝載到 AMS/外接`,remaining:`剩餘`,weightCheck:`重量檢查`,lastWeighed:`上次稱量`,neverWeighed:`從未稱量`,search:`搜尋耗材...`,showing:`顯示`,to:`到`,of:`共`,show:`顯示`,spools:`個耗材`,spool:`個耗材`,page:`頁`,noSpoolsMatch:`未找到結果`,noSpoolsMatchDesc:`嘗試調整您的搜尋或篩選條件。`,active:`活躍`,archived:`已歸檔`,all:`全部`,used:`已使用`,new:`新的`,clearFilters:`清除篩選`,table:`表格`,cards:`卡片`,net:`淨重`,groupSimilar:`分組`,groupedSpools:`{{count}} 個相同耗材`,groupedRows:`行`,columns:`列`,configureColumns:`設定列`,configureColumnsDesc:`拖曳以重新排序列或使用箭頭。使用眼睛圖示切換可見性。`,visible:`可見`,reset:`重設`,cancel:`取消`,applyChanges:`套用更改`,moveUp:`上移`,moveDown:`下移`,hideColumn:`隱藏列`,showColumn:`顯示列`,linkToSpool:`連結到耗材`,tagLinked:`標籤已連結到耗材`,tagLinkFailed:`連結標籤失敗`,tagAlreadyLinked:`標籤已連結到其他耗材`,unknownTag:`偵測到未知 RFID 標籤`,usageHistory:`使用歷史`,noUsageHistory:`尚無使用紀錄`,printName:`列印名稱`,weightConsumed:`消耗重量`,clearHistory:`清除`,historyCleared:`使用歷史已清除`,fillSourceLabel:`(庫存)`,lowStockThresholdError:`閾值必須在 0.1 到 99.9 之間`,spoolmanFilamentCatalog:`Spoolman 耗材目錄`,pickFromSpoolmanCatalog:`從 Spoolman 目錄選擇…`,spoolmanFilamentSelected:`已從 Spoolman 目錄選擇耗材`,spoolmanFilamentUnlinked:`已解除耗材目錄關聯`,noSpoolmanFilaments:`Spoolman 目錄中未找到耗材`,spoolmanFilamentColorSwatch:`耗材顏色`,spoolWeightManagedBySpoolman:`空線軸重量在 Spoolman 中按耗材類型管理`,spoolmanCatalogLoadFailed:`無法載入 Spoolman 耗材目錄`},timelapse:{title:`縮時攝影`,create:`建立縮時攝影`,download:`下載`,delete:`刪除`,preview:`預覽`,frameRate:`幀率`,quality:`品質`,processing:`處理中...`,noTimelapses:`無可用縮時攝影`},ams:{title:`AMS`,slot:`槽位`,empty:`空`,emptySlot:`空槽位`,slotEmpty:`空`,slotUnconfigured:`?`,emptySlotReset:`未指派線材`,unknown:`未知`,humidity:`濕度`,temperature:`溫度`,filamentType:`耗材類型`,filamentColor:`顏色`,remaining:`剩餘`,history:`AMS 歷史`,noHistory:`無可用歷史`,configureSlot:`設定槽位`,externalSpool:`外接耗材`,profile:`設定`,kFactor:`K 值`,fill:`填充`,configure:`設定`,used:`已使用`,remainingUnit:`剩餘`},printModal:{selectPrinter:`選擇印表機`,selectPlate:`選擇板`,filamentMapping:`耗材對應`,plateN:`板 {{n}}`,plateFilamentsUnreadable:`無法讀取所選盤的耗材資訊,因此無法進行對應。取消選取該盤即可將其餘盤加入佇列。`,totalCost:`總成本:`,slotRemainingShort:` - 剩餘 {{grams}}g`,printSettings:`列印設定`,bedLeveling:`熱床調平`,flowCalibration:`流量校準`,vibrationCalibration:`振動校準`,layerInspection:`首層檢查`,timelapse:`縮時攝影`,cancel:`取消`,noPrintersAvailable:`無可用印表機`,printerBusy:`印表機忙碌`,printerOffline:`印表機離線`,sameTypeDifferentColor:`相同類型,不同顏色`,filamentTypeNotLoaded:`耗材類型未裝載`,whenToPrint:`何時列印`,asap:`盡快`,queue:`佇列`,schedule:`排程`,dateTime:`日期和時間`,invalidDateTime:`請輸入有效的日期和時間`,openCalendar:`開啟日曆`,requireManualStart:`要求手動開始`,requirePreviousSuccess:`僅在上一次列印成功後開始`,autoOffAfter:`完成後關閉印表機`,helpAsap:`列印將新增到佇列頂端,並在符合條件的印表機閒置後立即開始。`,helpSchedule:`如果印表機閒置,列印將在排程時間開始。如果印表機忙碌,則會等待其可用。`,helpQueue:`列印將新增到佇列末端。`,leftNozzle:`左`,rightNozzle:`右`,leftNozzleTooltip:`左噴嘴`,rightNozzleTooltip:`右噴嘴`,filamentOverride:`耗材覆蓋`,filamentOverrideHint:`可選覆蓋用於基於模型的耗材分配。排程器將使用您選擇的耗材而不是原始 3MF 值進行匹配。`,originalFilament:`原始`,overrideWith:`覆蓋為`,resetToOriginal:`恢復為原始`,insufficientFilamentTitle:`耗材不足`,waitingForAmsStatus:`正在等待 {{printer}} 的 AMS 狀態…`,insufficientFilamentMessage:`部分已分配料盤的剩餘耗材少於本次列印所需:`,insufficientFilamentLine:`{{printer}} - {{slot}}:需要 {{required}}g,剩餘 {{remaining}}g`,printAnyway:`仍然列印`,forceColorMatch:`強制顏色匹配`,staggerPrinterStarts:`錯開印表機啟動`,staggerGroupSize:`群組大小`,staggerInterval:`間隔(分鐘)`,staggerPreview:`{{printers}} 台印表機 → 分成 {{groups}} 組,每組 {{size}} 台,每 {{interval}} 分鐘啟動一組`,staggerLastGroup:`最後一組:{{count}}`,staggerTotal:`總計:{{minutes}} 分鐘`,staggerToPrinters:`分批傳送到 {{count}} 臺印表機`,gcodeInjection:`注入自動列印G-code`},backup:{includesEncryptionKey:`本機備份包含 MFA 加密金鑰檔案(DATA_DIR/.mfa_encryption_key),因此備份 ZIP 是自包含的。請將 ZIP 視為敏感檔案 — 任何擁有該檔案的人都可以解密內部儲存的 OIDC 用戶端機密和 TOTP 機密。`,title:`備份與恢復`,createBackup:`建立備份`,restoreBackup:`恢復備份`,restoreDescription:`從備份檔案替換所有資料`,downloadBackup:`下載備份`,uploadBackup:`上傳備份`,lastBackup:`上次備份`,autoBackup:`自動備份`,backupNow:`立即備份`,restoreWarning:`警告:恢復備份將覆蓋所有目前資料。`,includeArchives:`包含歸檔`,includeSettings:`包含設定`,includeProfiles:`包含設定檔案`,backupSuccess:`備份建立成功`,restoreSuccess:`備份恢復成功`,backupFailed:`備份失敗`,restoreFailed:`恢復失敗`,restoreNote:`恢復期間虛擬印表機將停止`,githubBackup:`GitHub 備份`,enabled:`已啟用`,cloudLoginRequired:`需要登入 Bambu Cloud。請在 設定檔案 → 雲設定檔案 中登入以啟用 GitHub 備份。`,cloudLoginRequiredShort:`需要雲端登入`,githubDescription:`自動將您的設定檔案同步到私有 GitHub 倉庫以進行備份和版本歷史紀錄。`,repoIsPrivate:`儲存庫為私有 — 可安全備份。`,repoIsPublicWarning:`儲存庫為公開(PUBLIC)。Bambuddy 備份包含 MQTT 認證、Home Assistant 權杖、Prometheus 權杖、您的 Bambu Cloud 電子郵件,以及透過 K-profile 暴露的印表機存取碼。在您於服務商設定中將儲存庫改為私有之前,儲存將被阻擋。`,repoVisibilityUnknown:`無法確認儲存庫的可見性。Bambuddy 拒絕向任何未確認為私有的目標進行備份;儲存將被阻擋。`,repositoryUrl:`倉庫 URL`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`允許不安全的 HTTP`,allowInsecureHttpHint:`為無 TLS 的私人網路自托管執行個體啟用`,personalAccessToken:`個人存取權杖`,tokenSaved:`(已儲存)`,enterNewToken:`輸入新權杖以更新`,tokenHint:`具有內容讀寫權限的細粒度權杖`,branch:`分支`,provider:`Git 供應商`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`僅手動`,hourly:`每小時`,daily:`每天`,weekly:`每週`,includeInBackup:`包含在備份中`,kProfiles:`K 設定檔案`,kProfilesDescription:`來自已連線印表機的壓力推進校準`,noPrintersConnected:`沒有印表機連線`,printersConnected:`{{connected}}/{{total}} 已連線`,cloudProfiles:`雲設定檔案`,cloudProfilesDescription:`來自 Bambu Cloud 的耗材、印表機和工藝預設`,appSettings:`應用程式設定`,appSettingsDescription:`Bambuddy 設定(完整資料庫)`,spoolInventory:`耗材庫存`,spoolInventoryDescription:`耗材卷軸、使用紀錄和成本追蹤`,printArchives:`列印檔案`,printArchivesDescription:`列印歷史中繼資料(不含 gcode/3MF 檔案)`,lastBackupAt:`上次備份:`,noBackupsYet:`尚無備份`,next:`下次:`,startingBackup:`正在啟動備份...`,test:`測試`,enableBackup:`啟用備份`,testConnection:`測試連線`,enterRepoUrl:`請輸入倉庫 URL`,enterRepoAndToken:`請輸入倉庫 URL 和存取權杖`,repoRequired:`倉庫 URL 為必填項`,tokenRequired:`存取權杖為必填項`,githubBackupEnabled:`GitHub 備份已啟用`,tokenUpdated:`權杖已更新`,settingsSaved:`設定已儲存`,failedToSave:`儲存失敗:{{message}}`,backupCompleteFiles:`備份完成 - {{count}} 個檔案已更新`,backupSkippedNoChanges:`備份已跳過 - 無更改`,backupFailed2:`備份失敗:{{message}}`,clearedLogs:`已清除 {{count}} 條日誌`,failedToClearLogs:`清除日誌失敗:{{message}}`,history:`歷史紀錄`,clear:`清除`,date:`日期`,status:`狀態`,commit:`提交`,localBackup:`本機備份`,localBackupDescription:`建立 Bambuddy 資料的完整備份,包括資料庫、檔案、上傳和所有檔案。`,downloadBackupLabel:`下載備份`,completeBackupZip:`完整備份:資料庫 + 所有檔案(ZIP)`,download:`下載`,preparingBackup:`正在準備備份...`,creatingArchive:`正在建立備份歸檔...對於大型歸檔可能需要一些時間。`,downloadingFile:`正在下載備份檔案...`,backupDownloaded:`備份下載成功`,failedToCreateBackup:`建立備份失敗:{{message}}`,restore:`恢復`,restoreReplacesAll:`恢復將替換所有資料。`,restoreReplacesAllDetail:`您目前的資料庫和檔案將被完全替換。恢復後需要重新啟動。`,restoreConfirmTitle:`恢復備份`,restoreConfirmMessage:`您確定要從"{{filename}}"恢復嗎?這將完全替換您目前的資料庫和所有檔案。恢復後需要重新啟動應用程式。`,restoreConfirmButton:`恢復備份`,uploadingFile:`正在上傳備份檔案...`,backupRestoredRestart:`備份已恢復。請重新啟動 Bambuddy。`,failedToRestore:`恢復備份失敗。請檢查檔案格式。`,reloadNow:`立即重新載入`,creatingBackup:`正在建立備份`,restoringBackup:`正在恢復備份`,preparing:`準備中...`,processing:`處理中...`,doNotClosePage:`請不要關閉此頁面或離開頁面。對於大型備份,此操作可能需要幾分鐘。`,restoring:`恢復中...`,restoreComplete:`恢復完成`,restoreFailed2:`恢復失敗`,importSettings:`從備份檔案匯入設定`,pleaseWaitRestoring:`請等待資料恢復中`,selectBackupFile:`點選選擇備份檔案(.json 或 .zip)`,duplicateHandling:`重複項處理方式:`,matchPrinters:`印表機`,matchPrintersBy:`按序列號匹配`,matchSmartPlugs:`智慧插座`,matchSmartPlugsBy:`按 IP 位址匹配`,matchNotificationProviders:`通知提供者`,matchNotificationProvidersBy:`按名稱匹配`,matchFilaments:`耗材`,matchFilamentsBy:`按名稱 + 類型 + 品牌匹配`,matchArchives:`檔案`,matchArchivesBy:`按內容雜湊匹配(始終跳過)`,matchPendingUploads:`待上傳`,matchPendingUploadsBy:`按檔名匹配`,matchSettingsTemplates:`設定和範本`,matchSettingsTemplatesBy:`始終覆蓋`,replaceExisting:`替換現有資料`,keepExisting:`保留現有資料`,overwriteDescription:`用備份資料覆蓋已存在的項目`,keepDescription:`僅恢復尚不存在的項目`,overwriteCaution:`注意:`,overwriteWarning:`覆蓋將用備份資料替換您目前的設定。出於安全考慮,印表機存取碼永遠不會被覆蓋。`,cancel:`取消`,processingBackup:`正在處理備份檔案...`,itemsRestored:`已恢復項目`,itemsSkipped:`已跳過項目`,restored:`已恢復`,skippedAlreadyExist:`已跳過(已存在)`,filesCategory:`檔案(3MF、縮圖等)`,andMore:`...還有 {{count}} 項`,newApiKeysGenerated:`已產生新的 API 金鑰`,keysShownOnce:`這些金鑰僅顯示一次。請立即複製!`,copy:`複製`,noDataFound:`在備份檔案中未找到可恢復的資料。`,close:`關閉`,scheduledBackup:`排程備份`,scheduledBackupDescription:`依排程自動建立備份快照。輸出目錄可掛載到 NAS 或外部儲存。`,frequency:`頻率`,backupTime:`時間`,retention:`保留`,retentionDescription:`保留的備份數量`,outputPath:`輸出路徑`,outputPathPlaceholder:`預設:{{path}}`,outputPathDescription:`留空以使用預設位置`,runNow:`立即執行`,backupFiles:`備份檔案`,noScheduledBackups:`尚無備份`,deleteBackup:`刪除`,deleteBackupConfirm:`要刪除此備份檔案嗎?`,backupRunning:`備份進行中…`,scheduledBackupComplete:`備份已成功完成`,scheduledBackupFailed:`備份失敗`,nextBackup:`下次備份`,backupSize:`大小`,localTimeHint:`本地時間 ({{tz}})`,defaultPathLabel:`預設:`,pathCheck:{title:`Bambuddy 無法寫入此目錄`,howToFix:`解決方法:`,sandboxed:`Bambuddy 服務無法寫入 {{path}}。其 systemd unit 以 ProtectSystem=strict 執行,因此安裝、資料與記錄目錄以外的所有目錄對服務而言都是唯讀的,即使你自己的 shell 可以寫入也一樣。`,read_only:`{{path}} 位於唯讀檔案系統上。`,permission_denied:`Bambuddy 沒有寫入 {{path}} 的權限。請檢查該目錄的擁有者與權限。`,no_space:`{{path}} 所在的檔案系統已滿。`,not_a_directory:`{{path}} 存在,但不是目錄。`,missing:`{{path}} 不存在且無法建立。`,error:`Bambuddy 無法寫入 {{path}}。`,ephemeralTitle:`這些備份在容器重建後會遺失`,container_ephemeral:`{{path}} 位於 Bambuddy 容器內,而非主機上。寫入其中的備份會在容器重建時遺失。請從主機掛載該目錄:`},categories:{settings:`設定`,notification_providers:`通知提供者`,notification_templates:`通知範本`,smart_plugs:`智慧插座`,printers:`印表機`,filaments:`耗材`,maintenance_types:`維護類型`,archives:`檔案`,projects:`專案`,pending_uploads:`待上傳`,external_links:`外部連結`,api_keys:`API 金鑰`}},tags:{title:`標籤`,addTag:`新增標籤`,editTag:`編輯標籤`,deleteTag:`刪除標籤`,tagName:`標籤名稱`,tagColor:`標籤顏色`,noTags:`無標籤`,deleteConfirm:`確定要刪除此標籤嗎?`,manageTags:`管理標籤`},uploadModal:{title:`上傳 3MF 檔案`,dragDrop:`將 .3mf 檔案拖放到此處`,or:`或`,browseFiles:`瀏覽檔案`,extractionInfo:`將從 3MF 檔案中繼資料中自動提取印表機型號。`,uploaded:`已上傳`,failed:`失敗`,uploading:`上傳中...`,upload:`上傳`,uploadFailed:`上傳失敗`},editArchive:{title:`編輯歸檔`,name:`名稱`,namePlaceholder:`列印名稱`,printer:`印表機`,noPrinter:`無印表機`,project:`專案`,noProject:`無專案`,itemsPrinted:`列印數量`,itemsPrintedHelp:`此列印任務中生產的物品數量`,notes:`備註`,notesPlaceholder:`新增關於此列印的備註...`,externalLink:`外部連結`,externalLinkPlaceholder:`https://printables.com/model/...`,externalLinkHelp:`連結到 Printables、Thingiverse 或其他來源`,tags:`標籤`,tagsPlaceholder:`新增標籤...`,addMoreTags:`新增更多標籤...`,matchingTags:`匹配"{{query}}"`,existingTags:`現有標籤`,clickToAdd:`(點選新增)`,status:`狀態`,failureReason:`失敗原因`,selectReason:`選擇原因...`,photos:`列印成品照片`,photosHelp:`點選 + 新增列印成品照片`,printResult:`列印成品`,saving:`儲存中...`,failureReasons:{adhesionFailure:`附著力失敗`,spaghettiDetached:`拉絲 / 脫落`,layerShift:`層偏移`,cloggedNozzle:`噴嘴堵塞`,filamentRunout:`耗材用完`,warping:`翹曲`,stringing:`拉絲`,underExtrusion:`擠出不足`,powerFailure:`斷電`,userCancelled:`使用者取消`,other:`其他`},statuses:{completed:`已完成`,failed:`失敗`,aborted:`已取消`,printing:`列印中`}},kProfiles:{title:`K 值設定`,noPrintersConfigured:`未設定印表機`,addPrinterInSettings:`在設定中新增印表機以管理 K 值設定`,noActivePrinters:`無活躍印表機`,enablePrinterConnection:`啟用印表機連線以檢視其 K 值設定`,loadingProfiles:`載入 K 值設定中...`,printerOffline:`印表機離線`,printerOfflineDesc:`所選印表機未連線。開啟電源以檢視 K 值設定。`,noMatchingProfiles:`無匹配的設定`,noMatchingProfilesDesc:`沒有設定匹配您的搜尋條件`,noKProfiles:`無 K 值設定`,noKProfilesDesc:`未找到 {{diameter}}mm 噴嘴的壓力推進設定`,createFirstProfile:`建立第一個設定`,printer:`印表機`,nozzle:`噴嘴`,refresh:`重新整理`,addProfile:`新增設定`,export:`匯出`,import:`匯入`,select:`選擇`,selectAll:`全選`,delete:`刪除`,searchPlaceholder:`按名稱或耗材搜尋...`,allExtruders:`所有擠出機`,leftOnly:`僅左側`,rightOnly:`僅右側`,allFlow:`所有流量`,hfOnly:`僅高流量`,sOnly:`僅標準`,sortName:`排序:名稱`,sortKValue:`排序:K 值`,sortFilament:`排序:耗材`,leftExtruder:`左擠出機`,rightExtruder:`右擠出機`,modal:{addTitle:`新增 K 值設定`,editTitle:`編輯 K 值設定`,profileName:`設定名稱`,profileNamePlaceholder:`我的 PLA 設定`,kValue:`K 值`,kValuePlaceholder:`0.020`,kValueHelp:`典型範圍:PLA 0.01 - 0.06,PETG 0.02 - 0.10`,filament:`耗材`,selectFilament:`選擇耗材...`,noFilamentsHelp:`未找到耗材。請先在 Bambu Studio 中建立 K 值設定。`,flowType:`流量類型`,highFlow:`高流量`,standard:`標準`,nozzleSize:`噴嘴尺寸`,extruder:`擠出機`,extruders:`擠出機`,left:`左`,right:`右`,notes:`備註(本機儲存)`,notesPlaceholder:`新增關於此設定的備註...`,notesHelp:`備註儲存在 Bambuddy 中,不在印表機上`,syncing:`與印表機同步中...`,savingExtruder:`儲存到擠出機 {{current}}/{{total}}...`,pleaseWait:`請稍候`},deleteConfirm:{title:`刪除設定`,cannotUndo:`此操作無法復原`,message:`確定要從印表機刪除"{{name}}"嗎?`},bulkDelete:{title:`刪除設定`,cannotUndo:`此操作無法復原`,message:`確定要從印表機刪除 {{count}} 個選中的設定嗎?`},toast:{profileSaved:`K 值設定已儲存`,profilesSaved:`K 值設定已儲存到 {{count}} 個擠出機`,selectAtLeastOneExtruder:`請至少選擇一個擠出機`,profileDeleted:`K 值設定已刪除`,profilesDeleted:`已刪除 {{count}} 個設定`,exportedProfiles:`已匯出 {{count}} 個設定`,importedProfiles:`已匯入 {{count}} / {{total}} 個設定`,noProfilesToExport:`無可匯出的設定`,invalidFileFormat:`無效的檔案格式`,failedToParseImport:`解析匯入檔案失敗`,failedToSaveBatch:`批次儲存 K 值設定失敗`,noteSaved:`備註已儲存`,failedToSaveNote:`儲存備註失敗`},permission:{noRead:`您沒有重新整理設定的權限`,noCreate:`您沒有新增設定的權限`,noUpdate:`您沒有更新 K 值設定的權限`,noDelete:`您沒有刪除 K 值設定的權限`,noExport:`您沒有匯出設定的權限`,noImport:`您沒有匯入設定的權限`}},virtualPrinter:{title:`虛擬印表機`,running:`執行中`,stopped:`已停止`,description:{default:`啟用虛擬印表機,使其在 Bambu Studio 和 OrcaSlicer 中可見。傳送到此印表機的檔案將直接歸檔而不列印。`,proxy:`啟用代理,將切片軟體流量中繼到真實印表機,允許在任何網路上遠端列印。`},enable:{title:`啟用虛擬印表機`,visibleInSlicer:`在切片軟體發現中顯示為"Bambuddy"`,proxyingTo:`代理到 {{name}}`,notActive:`未啟用`},model:{title:`印表機型號`,description:`選擇要模擬的印表機型號。`,restartWarning:`更改型號將重新啟動虛擬印表機`},accessCode:{title:`存取碼`,isSet:`存取碼已設定`,notSet:`未設定存取碼 - 需要設定才能啟用`,placeholder:`輸入 8 位字元程式碼`,placeholderChange:`輸入新程式碼以更改`,hint:`必須恰好 8 個字元。切片軟體使用此程式碼進行認證。`,charCount:`({{count}}/8)`,inheritedFromTarget:`繼承自目標印表機`,derivedFromTargetHint:`使用目標印表機的存取碼。橋接會將切片軟體的認證轉發到實際印表機,因此兩個存取碼必須相符 — 如需變更,請在印表機設定中編輯存取碼。`,reveal:`顯示存取碼`,hide:`隱藏存取碼`},targetPrinter:{title:`目標印表機`,configured:`代理目標已設定`,notConfigured:`未選擇目標印表機 - 代理模式需要設定`,placeholder:`選擇印表機...`,hint:`選擇要將切片軟體流量代理到的印表機。印表機必須處於區域網路模式。`,noPrinters:`未設定印表機。請先新增印表機以使用代理模式。`},remoteInterface:{title:`網路介面覆蓋`,configured:`介面覆蓋已啟用`,optional:`可選 - 當自動檢測的 IP 不正確時使用(例如多網路卡、Docker、VPN)`,placeholder:`自動檢測(預設)...`,hint:`覆蓋透過 SSDP 廣播並在 TLS 憑證中使用的 IP 位址。在 Bambuddy 有多個網路介面時很有用。`},mode:{title:`模式`,archive:`歸檔`,archiveDesc:`立即歸檔檔案`,review:`審核`,reviewDesc:`歸檔前審核`,queue:`佇列`,queueDesc:`歸檔並新增到佇列`,proxy:`代理`,proxyDesc:`中繼到真實印表機`},autoDispatch:{title:`自動派發`,description:`新增到佇列時自動開始列印。關閉後,列印任務等待手動派發。`},queueForceColorMatch:{title:`強制顏色匹配`,description:`拒絕派發到沒有完全相同耗材類型和顏色的印表機。預設關閉 — 不啟用時,佇列僅按型號匹配,可能選到顏色錯誤的印表機。`},gcodeInjection:{title:`G-code 注入`,description:`將「設定」中依型號設定的 G-code 片段套用到此 VP 的作業。預設關閉。`},tailscaleDisabled:{title:`Tailscale 整合`,description:`啟用以將此 VP 標記為透過 Tailscale 公開。顯示主機的 Tailscale 位址,以便您知道要貼上到切片器中的 IP。CA 匯入步驟保持不變 — 此切換對憑證無影響。`},setupRequired:{title:`需要設定`,description:`虛擬印表機功能需要額外的系統設定才能工作。包括埠轉發、防火牆規則和平臺特定設定。`,readGuide:`啟用前請閱讀設定指南`},archiveNameSource:{title:`存檔名稱來源`,description:`選擇透過虛擬印表機接收檔案時新存檔的命名方式。"元資料"使用 3MF 中嵌入的切片標題(預設)。"檔名"使用 Bambu Studio 透過 FTP 傳送的檔案名稱。注意:當 3MF 包含標題欄位時,Bambu Studio 會以該欄位覆寫您在"傳送到印表機"對話方塊中輸入的名稱,因此兩種模式通常會產生相同的字串。`,metadata:`元資料`,filename:`檔名`},caCert:{title:`切片軟體憑證`,description:`虛擬印表機使用由 Bambuddy CA 簽發的 TLS 憑證。將此 CA 憑證匯入切片軟體的信任庫一次,切片軟體即可接受連線 — 無需再透過命令列取得。`,copy:`複製`,copied:`已複製`,download:`下載`,fingerprint:`SHA-256`},howItWorks:{title:`工作原理`,step1:`在同一區域網路中,虛擬印表機會透過發現機制自動出現在您的切片軟體(Bambu Studio / OrcaSlicer)中。從其他網路,透過 IP 位址和存取碼手動新增。`,step2:`在歸檔、審核和佇列模式下,使用切片軟體中的"傳送"按鈕將 3MF 檔案上傳到 Bambuddy。切片軟體會顯示"列印成功"— 檔案已儲存,未列印。`,step3:`在代理模式下,虛擬印表機將所有流量中繼到真實印表機 — 列印會立即開始,就像直接連線一樣。`},status:{title:`狀態詳情`,printerName:`印表機名稱`,model:`型號`,serialNumber:`序列號`,mode:`模式`,pendingFiles:`待處理檔案`,targetPrinter:`目標印表機`,ftpPort:`FTP 連接埠`,mqttPort:`MQTT 連接埠`,ftpConnections:`FTP 連線`,mqttConnections:`MQTT 連線`},toast:{updated:`虛擬印表機設定已更新`,failedToUpdate:`更新設定失敗`,copyFailed:`複製失敗 — 請手動選取文字`,accessCodeRequired:`請先設定存取碼`,targetPrinterRequired:`請先選擇目標印表機`,bindIpRequired:`請先設定繫結 IP`,accessCodeEmpty:`存取碼不能為空`,accessCodeLength:`存取碼必須恰好 8 個字元`,targetCodeChangedRebind:`存取碼已同步到新的目標印表機。請在切片軟體中重新加入此裝置以使用新的存取碼。`,created:`虛擬印表機已建立`,failedToCreate:`建立虛擬印表機失敗`,deleted:`虛擬印表機已刪除`,failedToDelete:`刪除虛擬印表機失敗`},list:{title:`虛擬印表機`,add:`新增`,addFirst:`新增虛擬印表機`,empty:`未設定虛擬印表機。新增一個以開始使用。`},bindIp:{title:`繫結介面`,placeholder:`選擇介面...`,hint:`此虛擬印表機繫結的網路介面。每臺印表機必須唯一。`},proxy:{accessCodeHint:`在代理模式下,在切片軟體中使用目標印表機的存取碼。連線會透明轉發到真實印表機。`},addDialog:{title:`新增虛擬印表機`,name:`名稱`,hint:`建立後可以設定存取碼、目標印表機和其他設定。`,create:`建立`},deleteConfirm:{title:`刪除虛擬印表機`,message:`確定要刪除"{{name}}"嗎?這將停止此印表機的所有服務。`}},modelViewer:{openInSlicer:`在切片軟體中開啟`,tabs:{model:`3D 模型`,gcode:`G-code 預覽`},notAvailable:`不可用`,notSliced:`未切片`,plates:`板`,allPlates:`所有板`,plateNumber:`板 {{number}}`,plateCount:`{{count}} 個板`,plateCount_other:`{{count}} 個板`,objectCount:`{{count}} 個物件`,objectCount_other:`{{count}} 個物件`,filamentCount:`{{count}} 種耗材`,filamentCount_other:`{{count}} 種耗材`,eta:`預計 {{minutes}} 分鐘`,noPreview:`此檔案無可用預覽`,pagination:{pageOf:`第 {{current}} / {{total}} 頁`,prev:`上一頁`,next:`下一頁`},errors:{failedToLoad:`載入檔案失敗`,noMeshes:`3MF 檔案中未找到網格`,unsupportedFormat:`不支援的檔案格式`}},maintenanceDescriptions:{lubricateCarbonRods:`在碳纖維杆上塗抹潤滑劑以確保順暢運動`,lubricateRails:`在線性導軌上塗抹潤滑劑以確保順暢運動`,cleanNozzle:`清潔熱端和噴嘴以防止堵塞`,checkBelts:`檢查皮帶張力以確保列印精度`,cleanBuildPlate:`清潔列印板以獲得更好的附著力`,checkExtruder:`檢查擠出機齒輪磨損情況`,checkCooling:`確保冷卻風扇正常工作`,generalInspection:`印表機綜合檢查`,cleanCarbonRods:`清潔碳纖維杆以減少摩擦`,lubricateSteelRods:`在鋼杆上塗抹潤滑劑以確保順暢運動`,cleanSteelRods:`清潔鋼杆以減少摩擦`,cleanLinearRails:`擦拭線性導軌以清除灰塵和碎屑`,checkPtfeTube:`檢查 PTFE 管的磨損或損壞`,replaceHepaFilter:`更換 HEPA 過濾器以保證空氣品質`,replaceCarbonFilter:`更換活性炭過濾器`,lubricateLeftNozzleRail:`潤滑左噴嘴導軌(H2 系列)`},smartPlugs:{offline:`離線`,admin:`管理`,openPlugAdminPage:`開啟插座管理頁面`,deleteSmartPlug:`刪除智慧插座`,turnOnSmartPlug:`開啟智慧插座`,turnOffSmartPlug:`關閉智慧插座`,turnOn:`開啟`,turnOff:`關閉`,addSmartPlug:{scanningNetwork:`掃描網路中...`,chooseEntity:`選擇實體...`,connectionFailed:`連線失敗`,searchEntities:`搜尋實體...`,searchPowerSensors:`搜尋功率感測器...`,searchEnergySensors:`搜尋能量感測器...`,placeholders:{plugName:`客廳插座`,mqttStateOnValue:`ON、true、1`,mqttSameAsPower:`與功率主題相同,或不同`}},linkedTo:`連結到:`,monitorOnly:`僅監控`,alerts:`警報`,scheduleOn:`開啟 {{time}}`,scheduleOff:`關閉 {{time}}`,on:`開啟`,off:`關閉`,power:`功率`,kwhToday:`今日kWh`,settings:`設定`,automationSettings:`自動化設定`,showInSwitchbar:`在開關欄顯示`,quickAccessSidebar:`從側邊欄快速存取`,enabled:`已啟用`,enableAutomation:`為此插座啟用自動化`,autoOn:`自動開啟`,autoOnDescription:`列印開始時開啟`,autoOff:`自動關閉`,autoOffDescription:`列印完成時關閉(一次性)`,autoOffPersistent:`保持啟用`,autoOffPersistentDescription:`在列印之間保持啟用而非一次性`,controlsPrinterPower:`為印表機供電`,controlsPrinterPowerDescription:`若此插座僅為配件(濾網風扇、燈光)供電,請關閉此選項;否則關閉插座會將印表機標記為離線。`,autoOffAfterDrying:`乾燥完成後自動關閉`,autoOffAfterDryingDescription:`AMS 乾燥完成後關閉`,delayAfterDryingMinutes:`乾燥後延遲(分鐘)`,turnOffDelayMode:`關閉延遲模式`,time:`時間`,temp:`溫度`,delayMinutes:`延遲(分鐘)`,tempThreshold:`溫度閾值(°C)`,tempThresholdDescription:`當噴嘴冷卻到此溫度以下時關閉`,edit:`編輯`,deleteConfirm:`確定要刪除"{{name}}"嗎?此操作無法復原。`,turnOnConfirm:`確定要開啟"{{name}}"嗎?`,turnOffConfirm:`確定要關閉"{{name}}"嗎?這將切斷連線裝置的電源。`,failedToTurn:`無法{{action}}"{{name}}"`,unknown:`未知`,addTitle:`新增智慧插座`,editTitle:`編輯智慧插座`,stopScanning:`停止掃描`,discoverTasmota:`發現Tasmota裝置`,foundDevices:`找到{{count}}個裝置 - 點選選擇:`,noDevicesFound:`未在您的網路中找到Tasmota裝置`,haNotConfigured:`Home Assistant未設定。請在以下位置設定`,haSettingsPath:`設定 → 網路 → Home Assistant`,selectEntity:`選擇實體 *`,ipAddress:`IP 位址 *`,nameLabel:`名稱 *`,username:`使用者名稱`,password:`密碼`,authHint:`如果您的Tasmota裝置不需要認證,請留空`,linkToPrinter:`連結印表機`,noPrinter:`無印表機(僅手動控制)`,linkingDescription:`連結後可在列印開始/完成時自動開關`,powerAlerts:`功率警報`,alertAbove:`高於時警報(W)`,alertBelow:`低於時警報(W)`,alertDescription:`當電力消耗超過這些閾值時收到通知。留空以停用該方向。`,dailySchedule:`每日計畫`,turnOnAt:`開啟時間`,turnOffAt:`關閉時間`,scheduleDescription:`每天在這些時間自動開關插座。留空以跳過該操作。`,showOnPrinterCard:`在印表機卡片上顯示`,displayOnPrinterCard:`在印表機卡片上顯示按鈕`,connectedResult:`已連線!`,deviceLabel:`裝置:{{name}} - `,stateLabel:`狀態:{{state}}`,test:`測試`,delete:`刪除`,save:`儲存`,add:`新增`,cancel:`取消`,failedToStartScan:`無法開始掃描`,nameRequired:`名稱為必填項`,entityRequired:`Home Assistant插座需要實體`,mqttTopicRequired:`必須為功率、能源或狀態監控設定至少一個MQTT主題`,loadingEntities:`正在載入實體...`,loading:`載入中...`,failedToLoadEntities:`載入實體失敗:{{error}}`,noEntitiesMatching:`未找到匹配"{{search}}"的實體`,noEntitiesAvailable:`無可用實體`,searchingEntities:`搜尋所有實體(找到{{count}}個)`,showingEntities:`顯示 switch、light、input_boolean({{count}}個可用)`,energyMonitoringOptional:`能源監控(可選)`,energyMonitoringHint:`搜尋並選擇提供功率/能源資料的感測器。`,powerSensorW:`功率感測器(W)`,energyTodayKwh:`今日能源(kWh)`,totalEnergyKwh:`總能源(kWh)`,noMatchingSensors:`無匹配的感測器`,none:`無`,mqttNotConfigured:`MQTT代理未設定。請在以下位置設定代理地址`,mqttSettingsPath:`設定 → 網路 → MQTT發布`,mqttNotConfiguredSuffix:`(您不需要啟用發布,只需填寫代理詳細資訊)。`,mqttMonitorOnlyDescription:`MQTT插座透過MQTT訂閱接收功率/能源資料。開關控制不可用 - 請使用您的MQTT代理或家庭自動化系統。`,powerMonitoring:`功率監控`,energyMonitoring:`能源監控`,stateMonitoring:`狀態監控`,optional:`可選`,topic:`主題`,jsonPath:`JSON路徑`,multiplier:`乘數`,onValue:`ON值`,mqttPowerHint:`JSON路徑從JSON負載中提取值(例如"power_l1")。如果主題發布原始數值,請留空。
乘數:mW→W使用0.001,kW→W使用1000。`,mqttEnergyHint:`JSON路徑從JSON負載中提取值。原始值請留空。
乘數:Wh→kWh使用0.001,MWh→kWh使用1000。`,mqttStateHint:`JSON路徑從JSON負載中提取值。原始值請留空。
-ON值:表示"ON"的確切字串。留空以自動檢測(ON、true、1)。`,restControl:`控制`,restOnUrl:`開啟 URL`,restOffUrl:`關閉 URL`,restOnBody:`開啟請求內容`,restOffBody:`關閉請求內容`,restMethod:`HTTP 方法`,restHeaders:`自訂標頭(JSON)`,restStatusUrl:`狀態 URL`,restStatusPath:`狀態 JSON 路徑`,restStatusOnValue:`ON 值`,restPowerUrl:`功率URL`,restPowerPath:`功率 JSON 路徑`,restPowerMultiplier:`功率乘數`,restEnergyUrl:`能耗URL`,restEnergyPath:`能耗 JSON 路徑(今日)`,restEnergyTotalPath:`能耗 JSON 路徑(累計值)`,restEnergyTotalMultiplier:`累計值倍數`,restEnergyTotalPathHint:`例如 aenergy.total`,restEnergyTotalHint:`許多插座(包括所有 Shelly)只提供永不歸零的累計計數值。該值應填在此處,而非上方欄位:若當作今日用量讀取,它在午夜不會歸零,而「昨日」與「總計」會一直是空的。Bambuddy 會據此推算「今日」與「昨日」,這需要一至兩天的取樣資料。Shelly 以瓦時為單位,因此倍數請填 0.001。`,restEnergyMultiplier:`能耗乘數`,restUrlRequired:`REST 插座至少需要一個 URL(ON 或 OFF)`,restHeadersHint:`例如:{"Authorization": "Bearer your-token"}`,restBodyHint:`例如:ON、{"state": "on"}`,restStatusHint:`用於輪詢目前狀態的 URL`,restPathHint:`例如:state 或 data.power.status`,restPowerUrlHint:`功率資料的獨立URL(留空則使用狀態URL)`,restEnergyUrlHint:`能耗資料的獨立URL(留空則使用狀態URL)`,restEnergyHint:`每個值可以使用獨立的URL,或回退到狀態 URL。使用乘數進行單位轉換(例如:0.001 將 Wh 轉換為 kWh)。`,testConnection:`測試連線`,connectionSuccess:`連線成功`,noSwitchesInSwitchbar:`開關欄中沒有開關`,enableSwitchbarHint:`在設定 > 智慧插座中啟用"在開關欄顯示"`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`電子郵件`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`SMTP 電子郵件通知`,telegram:`透過 Telegram 機器人傳送通知`,discord:`透過 Webhook 傳送到 Discord 頻道`,ntfy:`免費、可自託管的推送通知`,pushover:`簡單、可靠的推送通知`,callmebot:`透過 CallMeBot 免費傳送 WhatsApp 通知`,webhook:`通用 HTTP POST 到任意 URL`,homeassistant:`Home Assistant 儀表板中的持久通知`,bark:`透過 Bark 推送 iOS 通知(可自架伺服器)`},lastSuccess:`上次:{{date}}`,error:`錯誤`,printer:`印表機:`,allPrinters:`所有印表機`,sendTestNotification:`傳送測試通知`,eventSettings:`事件設定`,enabled:`已啟用`,sendFromProvider:`從此提供者傳送通知`,printEvents:`列印事件`,printerStatus:`印表機狀態`,amsAlarms:`AMS 警報`,amsHtAlarms:`AMS-HT 警報`,printQueue:`列印佇列`,start:`開始`,plateCheck:`熱床檢測`,complete:`完成`,failed:`失敗`,stopped:`已停止`,progress:`進度`,offline:`離線`,lowFilament:`耗材不足`,maintenance:`維護`,amsHumidity:`AMS 濕度`,amsTemp:`AMS 溫度`,amsHtHumidity:`AMS-HT 濕度`,amsHtTemp:`AMS-HT 溫度`,bedCooled:`熱床已冷卻`,firstLayer:`首層完成`,quiet:`免打擾`,digest:`摘要 {{time}}`,printStarted:`列印已開始`,plateNotEmpty:`熱床非空`,plateNotEmptyDescription:`列印前偵測到物體`,plateClearRequired:`需要確認熱床已清空`,plateClearRequiredDescription:`列印完成,佇列等待熱床確認`,plateClear:`熱床確認`,printCompleted:`列印已完成`,bedCooledLabel:`熱床已冷卻`,bedCooledDescription:`列印後熱床溫度降至閾值以下`,firstLayerCompleteLabel:`首層列印完成`,firstLayerCompleteDescription:`首層完成時傳送帶照片的通知`,missingSpoolAssignmentLabel:`缺少料卷分配`,missingSpoolAssignmentDescription:`當列印開始且所需料盤沒有分配料卷時傳送通知`,printFailed:`列印失敗`,printStopped:`列印已停止`,progressMilestones:`進度里程碑`,progressMilestonesDescription:`在 25%、50%、75% 時通知`,printerOffline:`印表機離線`,printerError:`印表機錯誤`,aiFailureDetection:`AI 失敗偵測`,aiFailureDetectionDescription:`當 Obico AI 偵測到可能的列印失敗時通知`,lowFilamentLabel:`耗材不足`,maintenanceDue:`需要維護`,maintenanceDueDescription:`需要維護時通知`,amsHumidityHigh:`AMS 濕度過高`,amsHumidityHighDescription:`普通 AMS 濕度超過閾值`,amsTemperatureHigh:`AMS 溫度過高`,amsTemperatureHighDescription:`普通 AMS 溫度超過閾值`,amsHtHumidityHigh:`AMS-HT 濕度過高`,amsHtHumidityHighDescription:`AMS-HT 濕度超過閾值`,amsHtTemperatureHigh:`AMS-HT 溫度過高`,amsHtTemperatureHighDescription:`AMS-HT 溫度超過閾值`,inventoryAlerts:`庫存警報`,stockReorderAlert:`補貨警報`,stockReorderAlertDescription:`SKU 已達到補貨點`,stockBreakAlert:`斷貨警報`,stockBreakAlertDescription:`庫存將在補貨到達前耗盡`,jobAdded:`任務已新增`,jobAddedDescription:`任務已新增到佇列`,jobAssigned:`任務已分配`,jobAssignedDescription:`基於模型的任務已分配給印表機`,jobStarted:`任務已開始`,jobStartedDescription:`佇列任務已開始列印`,jobWaiting:`任務等待中`,jobWaitingDescription:`任務正在等待耗材或印表機`,jobSkipped:`任務已跳過`,jobSkippedDescription:`任務已跳過(上一個失敗)`,jobFailed:`任務失敗`,jobFailedDescription:`任務啟動失敗`,queueComplete:`佇列已完成`,queueCompleteDescription:`所有佇列任務已完成`,quietHours:`免打擾時段`,noNotificationsDuring:`在此時段內不傳送通知`,editProviderToChangeQuietHours:`編輯提供者以更改免打擾時段`,dailyDigest:`每日摘要`,batchNotifications:`將通知彙總為每日摘要`,sendAt:`傳送於 {{time}}`,editProviderToChangeDigestTime:`編輯提供者以更改摘要時間`,edit:`編輯`,deleteProvider:`刪除通知提供者`,deleteConfirm:`確定要刪除"{{name}}"嗎?此操作無法復原。`,delete:`刪除`,addTitle:`新增通知提供者`,editTitle:`編輯通知提供者`,nameLabel:`名稱 *`,namePlaceholder:`我的通知`,providerTypeLabel:`提供者類型 *`,configuration:`設定`,testConfiguration:`測試設定`,printerFilter:`印表機篩選`,onlyFromPrinter:`僅傳送來自此印表機的事件通知`,quietHoursDnd:`免打擾時段`,quietStart:`開始`,quietEnd:`結束`,dailyDigestLabel:`每日摘要`,sendDigestAt:`傳送摘要於`,digestCollected:`事件將被收集並在此時間作為單條摘要傳送`,notificationEvents:`通知事件`,progressPercent:`(25%、50%、75%)`,bedCooledAfterPrint:`(列印完成後)`,eventPriority:{sectionTitle:`ntfy 優先級`,helpNtfy:`為每個已啟用的事件選擇優先級。ntfy 使用它來升級提醒(聲音、可見性、推播行為)。此處未設定的級別將使用 ntfy 伺服器預設值。`,min:`最低`,low:`低`,default:`預設`,high:`高`,urgent:`緊急`},cancel:`取消`,save:`儲存`,add:`新增`,nameRequired:`名稱為必填項`,fieldRequired:`{{field}}為必填項`,haDataInvalid:`Data 欄位必須是有效的 JSON 物件,例如 {"priority": "high", "ttl": 0}`,phoneNumber:`電話號碼`,apiKey:`API 金鑰`,serverUrl:`伺服器 URL`,topic:`主題`,authToken:`認證權杖`,userKey:`使用者金鑰`,appToken:`應用程式權杖`,priority:`優先順序`,pushoverRetry:`緊急重試 (秒)`,pushoverExpire:`緊急逾時 (秒)`,botToken:`機器人權杖`,chatId:`聊天 ID`,telegramThreadId:`論壇主題 ID`,telegramThreadIdHelp:`選填。傳送到論壇群組中的指定主題,即主題連結結尾的數字 (t.me/c/.../25)。留空則傳送到一般主題。`,telegramThreadIdInvalid:`論壇主題 ID 必須是數字。`,smtpServer:`SMTP 伺服器`,smtpPort:`SMTP 連接埠`,security:`安全`,authentication:`認證`,username:`使用者名稱`,password:`密碼`,fromEmail:`寄件人信箱`,toEmail:`收件人信箱`,webhookUrl:`Webhook URL`,payloadFormat:`負載格式`,authorization:`授權`,titleFieldName:`標題欄位名`,messageFieldName:`訊息欄位名`,editTemplate:`編輯範本:{{name}}`,titleLabel:`標題`,bodyLabel:`正文`,titlePlaceholder:`通知標題...`,bodyPlaceholder:`通知正文...`,availableVariables:`可用變數`,clickToInsert:`點選插入到正文游標位置`,livePreview:`即時預覽`,hide:`隱藏`,show:`顯示`,loadingPreview:`載入預覽中...`,enterTemplateContent:`輸入範本內容以檢視預覽`,titlePreview:`標題:`,bodyPreview:`正文:`,resetToDefault:`恢復預設`,titleRequired:`標題為必填項`,bodyRequired:`正文為必填項`,notificationLog:`通知日誌`,showFailedOnly:`僅顯示失敗`,last24Hours:`最近 24 小時`,last7Days:`最近 7 天`,last30Days:`最近 30 天`,last90Days:`最近 90 天`,justNow:`剛剛`,noFailedNotifications:`沒有失敗的通知`,noNotificationsLogged:`沒有通知紀錄`,unknownProvider:`未知提供者`,logTitle:`標題`,logMessage:`訊息`,logError:`錯誤`,logProvider:`提供者:{{type}}`,logTime:`時間:{{time}}`,refresh:`重新整理`,clearOld:`清除舊紀錄`,statsSummary:`最近 {{days}} 天:`,statsNotifications:`條通知`,statsSent:`{{count}} 條已傳送`,statsFailed:`{{count}} 條失敗`,eventTypes:{print_start:`列印已開始`,print_complete:`列印完成`,print_failed:`列印失敗`,print_stopped:`列印已停止`,print_progress:`進度`,printer_offline:`印表機離線`,printer_error:`印表機錯誤`,filament_low:`耗材不足`,maintenance_due:`需要維護`,test:`測試`},userEmail:{title:`通知`,emailNotifications:`郵件通知`,emailNotificationsDesc:`接收您自己列印任務的郵件通知。郵件將透過進階身份驗證中設定的 SMTP 設定傳送。`,sendingTo:`通知將傳送至`,noEmailWarning:`您的帳戶沒有郵件地址。請聯絡管理員新增。`,printJobNotifications:`列印任務通知`,printJobNotificationsDesc:`選擇哪些事件會觸發您提交的列印任務的郵件通知。`,printJobStarts:`列印任務開始`,printJobStartsDesc:`當您的列印任務開始時收到通知。`,printJobFinishes:`列印任務完成`,printJobFinishesDesc:`當您的列印任務成功完成時收到通知。`,printErrors:`列印錯誤`,printErrorsDesc:`當您的列印任務失敗或遇到錯誤時收到通知。`,printJobStops:`列印任務停止`,printJobStopsDesc:`當您的列印任務被取消或停止時收到通知。`,saveSuccess:`通知偏好設定已儲存。`,saveError:`儲存通知偏好設定失敗。`}},richTextEditor:{bold:`粗體`,italic:`斜體`,underline:`底線`,bulletList:`無序列表`,numberedList:`有序列表`,alignLeft:`左對齊`,alignCenter:`居中對齊`,alignRight:`右對齊`,addLink:`新增連結`,removeLink:`移除連結`},externalLinks:{title:`側邊欄連結`,sidebarLayout:`側邊欄`,sidebarLayoutDescription:`顯示或隱藏內建頁面、加入外部連結,並拖曳項目以重新排序側邊欄導覽。`,systemPages:`Bambuddy 頁面`,externalLinks:`外部連結`,visibleInSidebar:`顯示於側邊欄`,hiddenFromSidebar:`隱藏於側邊欄`,requiredInSidebar:`側邊欄中必須顯示`,hidePage:`隱藏頁面`,showPage:`顯示頁面`,settingsCannotBeHidden:`設定無法隱藏`,noLinksConfigured:`未設定外部連結`,deleteLink:`刪除連結`,removeCustomIcon:`移除自訂圖示`,openInNewTab:`在新標籤頁中開啟`,placeholders:{linkName:`我的連結`}},keyboardShortcuts:{title:`鍵盤快捷鍵`,navigation:`導航`,archivesSection:`歸檔`,kProfilesSection:`K 值設定`,generalSection:`通用`,shortcuts:{goToPrinters:`前往印表機`,goToArchives:`前往歸檔`,goToQueue:`前往佇列`,goToStats:`前往統計`,goToProfiles:`前往雲端設定`,goToSettings:`前往設定`,focusSearch:`聚焦搜尋`,openUploadModal:`開啟上傳對話方塊`,clearSelection:`清除選擇 / 取消焦點`,contextMenu:`卡片右鍵選單`,refreshProfiles:`重新整理設定`,newProfile:`新增設定`,exitSelectionMode:`結束選擇模式`,showHelp:`顯示此協助`},footer:`按 Esc 或點選外部關閉`},notificationLog:{title:`通知日誌`,events:{printStarted:`列印開始`,printComplete:`列印完成`,printFailed:`列印失敗`,printStopped:`列印停止`,progress:`進度`,printerOffline:`印表機離線`,printerError:`印表機錯誤`,lowFilament:`耗材不足`,maintenanceDue:`維護到期`,test:`測試`},timeAgo:{justNow:`剛剛`,minutesAgo:`{{minutes}} 分鐘前`,hoursAgo:`{{hours}} 小時前`}},restoreBackup:{title:`恢復備份`,restoring:`恢復中...`,restoreComplete:`恢復完成`,restoreFailed:`恢復失敗`,importSettings:`從備份檔案匯入設定`,pleaseWait:`請稍候,正在恢復您的資料`,clickToSelect:`點選選擇備份檔案(.json 或 .zip)`,howDuplicateHandling:`重複處理方式:`,categories:{printers:`印表機`,smartPlugs:`智慧插座`,notificationProviders:`通知提供者`,filaments:`耗材`,archives:`歸檔`,pendingUploads:`待處理上傳`,settingsTemplates:`設定和範本`},matchingInfo:{printers:`按序列號匹配`,smartPlugs:`按 IP 位址匹配`,notificationProviders:`按名稱匹配`,filaments:`按名稱 + 類型 + 品牌匹配`,archives:`按內容雜湊匹配`,pendingUploads:`按檔名匹配`,settingsTemplates:`始終覆蓋`},replaceExisting:`替換現有資料`,keepExisting:`保留現有資料`,replaceDescription:`用備份資料覆蓋已存在的項目`,keepDescription:`僅恢復不存在的項目`,caution:`注意:`,cautionText:`覆蓋將用備份資料替換您目前的設定。出於安全考慮,印表機存取碼永遠不會被覆蓋。`,itemsRestored:`已恢復項目`,itemsSkipped:`已跳過項目`,restored:`已恢復`,skipped:`已跳過(已存在)`,filesLabel:`檔案(3MF、縮圖等)`,newApiKeysGenerated:`已產生新 API 金鑰`,newApiKeysWarning:`這些金鑰僅顯示一次。請立即複製!`,processingBackup:`處理備份檔案中...`,noDataFound:`備份檔案中未找到可恢復的資料。`,failedToRestore:`恢復備份失敗。請檢查檔案格式。`},backupExport:{title:`匯出備份`,selectData:`選擇要包含的資料`,selectAll:`全選`,selectNone:`全不選`,categoryDescriptions:{settings:`語言、主題、更新偏好`,notifications:`ntfy、Pushover、Discord 等`,templates:`自訂訊息範本`,smartPlugs:`Tasmota 插座設定`,externalLinks:`側邊欄外部服務連結`,printers:`印表機資訊(不含存取碼)`,plateDetection:`空列印板參考影像`,filaments:`耗材類型和成本`,maintenance:`自訂維護計畫`,archives:`所有列印資料 + 檔案(3MF、縮圖、照片)`,projects:`專案、材料清單和附件`,pendingUploads:`虛擬印表機待審核的上傳`,apiKeys:`Webhook API 金鑰(匯入時產生新金鑰)`},requiresPrinters:`需要選擇印表機`,zipFileWarning:`將建立 ZIP 檔案。`,zipFileDescription:`包括所有 3MF 檔案、縮圖、縮時攝影和照片。這可能需要一些時間並產生較大的檔案。`,includeAccessCodes:`包含存取碼`,includeAccessCodesDescription:`用於轉移到另一臺機器`,includeAccessCodesWarning:`存取碼將以明文形式包含。請妥善保管此備份檔案!`,categoriesSelected:`已選擇 {{selectedCount}} 個類別`},pendingUploads:{placeholders:{notes:`新增關於此列印的備註...`},discardUpload:`丟棄上傳`,archiveAllUploads:`歸檔所有上傳`,discardAllUploads:`丟棄所有上傳`,archive:`歸檔`,timeAgo:{justNow:`剛剛`,minutesAgo:`{{minutes}} 分鐘前`,hoursAgo:`{{hours}} 小時前`,daysAgo:`{{days}} 天前`}},apiBrowser:{placeholders:{requestBody:`JSON 請求體...`,searchEndpoints:`搜尋端點...`}},configureAmsSlot:{title:`設定 AMS 槽位`,slotConfigured:`槽位已設定!`,configuringSlot:`正在設定槽位:`,slotLabel:`{{ams}} 槽位 {{slot}}`,searchPresets:`搜尋預設...`,colorPlaceholder:`顏色名稱或十六進位(例如:棕色、FF8800)`,clearCustomColor:`清除自訂顏色`,noCloudPresets:`無雲端預設。登入拓竹雲以同步。`,noPresetsAvailable:`無可用預設。登入拓竹雲或匯入本機設定。`,noMatchingPresets:`未找到匹配的預設。`,custom:`自訂`,builtin:`內建`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`設定已傳送到印表機`,filamentProfile:`耗材設定`,kProfileLabel:`K 值設定(壓力推進)`,filteringFor:`篩選:{{material}}`,noKProfile:`無 K 值設定(使用預設值 0.020)`,noMatchingKProfiles:`未找到匹配的 K 值設定。將使用預設 K=0.020。`,otherKProfiles:`此印表機上的其他 K 值設定`,selectFilamentFirst:`請先選擇耗材設定`,kFromCalibration:`K={{value}}(來自印表機校準)`,customColorLabel:`自訂顏色(可選)`,presetColors:`{{name}} 顏色:`,showLessColors:`顯示更少顏色`,showMoreColors:`顯示更多顏色`,clear:`清除`,hexLabel:`十六進位:#{{hex}}`,resetting:`重設中...`,resetSlot:`重設槽位`,cancel:`取消`,configuring:`設定中...`,configureSlot:`設定槽位`},githubBackup:{title:`Git 備份`,history:`歷史`,downloadBackup:`下載備份`,restoreBackup:`恢復備份`,noBackupsYet:`尚無備份`},emailSettings:{placeholders:{fromName:`Bambuddy`}},tagManagement:{searchTags:`搜尋標籤...`,renameTag:`重新命名標籤`,deleteTag:`刪除標籤`},notificationTemplates:{placeholders:{title:`通知標題...`,body:`通知正文...`}},batchTag:{placeholders:{newTag:`輸入新標籤...`}},photoGallery:{deletePhoto:`刪除照片`},filamentHoverCard:{copySpoolUuid:`複製耗材 UUID`},kProfilesView:{hasNote:`有備註`,copyProfile:`複製設定`},layout:{openMenu:`開啟選單`,noPermissionSystemInfo:`您沒有檢視系統資訊的權限`},dashboard:{dragToReorder:`拖曳以重新排列`,hideWidget:`隱藏小工具`},notificationProviderCard:{deleteNotificationProvider:`刪除通知提供者`},fileManagerModal:{closeFileManager:`關閉檔案管理器`,sortFiles:`排序檔案`,goToParentFolder:`返回上級資料夾`,threeView:`3D 檢視`},embeddedCameraViewer:{refreshStream:`重新整理流`,close:`關閉`,zoomOut:`縮小`,resetZoom:`重設縮放`,zoomIn:`放大`,dragToResize:`拖曳調整大小`},timelapseViewer:{skipBack5s:`後退 5 秒`,skipForward5s:`前進 5 秒`},notificationProviders:{descriptions:{email:`SMTP 郵件通知`,telegram:`透過 Telegram 機器人通知`,discord:`透過 Webhook 傳送到 Discord 頻道`,ntfy:`免費、可自託管的推送通知`,pushover:`簡單、可靠的推送通知`,callmebot:`透過 CallMeBot 的免費 WhatsApp 通知`,webhook:`通用 HTTP POST 到任意 URL`}},logViewer:{searchPlaceholder:`搜尋訊息或日誌名稱...`,noLogEntries:`未找到日誌條目`},switchbarPopover:{noSwitchesInSwitchbar:`切換欄中沒有開關`},projectPageModal:{placeholders:{title:`標題`,designer:`設計師`,license:`許可證`,description:`輸入描述...`,profileTitle:`設定標題`,profileDescription:`設定描述...`}},spoolmanSettings:{},time:{unknown:`-`,waiting:`等待中`,justNow:`剛剛`,now:`現在`,minsAgo:`{{count}} 分鐘前`,inMins:`{{count}} 分鐘後`,hoursAgo:`{{count}} 小時前`,inHours:`{{count}} 小時後`,daysAgo:`{{count}} 天前`,inDays:`{{count}} 天後`},spoolbuddy:{nav:{dashboard:`儀表板`,ams:`AMS`,inventory:`庫存`,writeTag:`寫入`,settings:`設定`},status:{nfcReady:`NFC 就緒`,nfcOff:`NFC 關閉`,offline:`離線`,online:`線上`,noPrinters:`無印表機`,deviceOffline:`裝置離線`,waitingConnection:`等待裝置連線...`,systemReady:`系統就緒`,status:`狀態`},dashboard:{readyToScan:`準備掃描`,idleMessage:`將耗材放在磅秤上以識別`,nfcHint:`NFC 標籤將自動讀取`,device:`裝置`,syncWeight:`同步重量`,weightSynced:`已同步!`,unknownTag:`未知標籤`,newTag:`偵測到新標籤`,onScale:`在磅秤上`,linkSpool:`連結到耗材`,linkTagTitle:`將標籤連結到耗材`,linkTag:`連結標籤`,selectSpool:`選擇要連結此標籤的耗材:`,noUntagged:`未找到沒有標籤的耗材`,tagDetected:`偵測到標籤`,noTag:`無標籤`,tagId:`標籤`,grossWeight:`毛重`,spoolSize:`耗材盤尺寸`,close:`關閉`,currentSpool:`目前耗材`,plateReady:`熱床就緒: {{name}}`,plateReadyLabel:`待清理的熱床`,plateClearAction:`清理`,plateClearedToast:`已將熱床標記為已清理`,plateClearFailed:`無法將熱床標記為已清理`},modal:{spoolDetected:`偵測到耗材`,assignToAms:`分配到 AMS`,syncWeight:`同步重量`,weightSynced:`已同步!`,syncing:`同步中...`,newTagDetected:`偵測到新標籤`,addToInventory:`新增到庫存`,assignToAmsTitle:`分配到 AMS`,selectSlot:`選擇槽位`,assign:`分配`,assigning:`分配中...`,assignSuccess:`已分配!`,assignPendingInsert:`已分配。插入耗材後將設定槽位。`,assignError:`分配耗材失敗。請重試。`,noPrinterSelected:`選擇印表機...`,noAmsDetected:`此印表機未偵測到 AMS`,slot:`槽位`},weight:{noReading:`無讀數`,stable:`穩定`,measuring:`測量中...`,tare:`去皮`,calibrate:`校準`},spool:{remaining:`剩餘`,material:`材料`,brand:`品牌`,color:`顏色`,coreWeight:`軸心重`,labelWeight:`標籤重`,scaleWeight:`磅秤重`,netWeight:`淨重`,lastUsed:`上次使用`},ams:{noData:`未偵測到 AMS`,connectAms:`連線 AMS 以檢視耗材槽位`,noPrinter:`未選擇印表機`,selectPrinter:`從頂部欄選擇印表機`,printerDisconnected:`印表機已斷開`,humidity:`濕度`,level:`餘量`,active:`活躍`,slot:`槽位`,empty:`空`},inventory:{search:`搜尋耗材...`,empty:`庫存中沒有耗材`,noResults:`沒有匹配的耗材`,spools:`個耗材`,addSpool:`新增耗材`},settings:{tabDevice:`裝置`,tabDisplay:`顯示`,tabScale:`磅秤`,tabUpdates:`更新`,nfcReader:`NFC 讀卡器`,type:`類型`,connection:`連線`,notConnected:`不適用`,deviceInfo:`裝置資訊`,hostname:`主機`,uptime:`執行時間`,systemConfig:`後端與認證`,backendUrl:`Bambuddy 後端 URL`,apiToken:`API 權杖`,apiTokenPlaceholder:`輸入 API 權杖`,saveConfig:`儲存設定`,systemQueued:`設定已加入佇列。`,nfcDiagnostic:`NFC 診斷`,scaleDiagnostic:`磅秤診斷`,readTagDiagnostic:`讀取標籤診斷`,testNfc:`測試讀卡器`,testScale:`測試精度`,testReadTag:`讀取標籤`,systemFieldsRequired:`後端 URL 為必填項。`,brightness:`亮度`,saved:`已儲存`,noBacklight:`未偵測到 DSI 背光。亮度控制需要 DSI 螢幕。`,screenBlank:`螢幕熄滅超時`,screenBlankDesc:`不活動後螢幕關閉。觸控喚醒。`,displayNote:`亮度作為軟體濾鏡套用。`,scaleCalibration:`磅秤校準`,currentWeight:`目前重量`,tareOffset:`去皮`,calFactor:`係數`,knownWeight:`已知重量`,calStep1:`移除磅秤上所有物品並按設定零點。`,calStep2:`將已知重量放在磅秤上。`,setZero:`設定零點`,calibrateNow:`校準`,calibrated:`已校準`,tareSet:`去皮命令已傳送。等待裝置回應...`,tareComplete:`去皮完成!`,tareTimedOut:`去皮逾時 — SpoolBuddy 守護程序是否正在執行?`,tareFailed:`傳送去皮命令失敗`,zeroSet:`零點已設定。將已知重量放在磅秤上。`,calibrationDone:`校準完成!`,calibrationFailed:`校準失敗`,lastCalibrated:`上次校準`,stable:`穩定`,settling:`穩定中...`,firmware:`韌體`,scale:`磅秤`,noDevice:`未找到 SpoolBuddy 裝置`,daemonVersion:`守護程式版本`,currentVersion:`目前`,versionPending:`等待守護程式...`,checking:`檢查中...`,checkUpdates:`檢查更新`,updateAvailable:`有可用更新`,updateInstructions:`透過 SSH 更新:執行 SpoolBuddy 安裝腳本進行升級。`,upToDate:`已是最新`,includeBeta:`包含測試版本`},writeTag:{tabExisting:`現有耗材`,tabNew:`新耗材`,tabReplace:`替換標籤`,searchPlaceholder:`按材料、顏色、品牌搜尋...`,noUntaggedSpools:`沒有無標籤的耗材`,noTaggedSpools:`沒有有標籤的耗材`,selectSpool:`選擇一個耗材,然後將空白 NTAG 放在讀卡器上`,placeTag:`將 NTAG 放在讀卡器上`,tagReady:`偵測到標籤 — 準備寫入`,writeTag:`寫入標籤`,replaceTag:`替換標籤`,writing:`寫入標籤中...`,waiting:`等待 SpoolBuddy...`,writeSuccess:`標籤寫入成功!`,writeFailed:`寫入失敗`,queueFailed:`佇列寫入命令失敗`,tryAgain:`重試`,cancel:`取消`,replaceWarning:`舊標籤將被取消連結。新標籤將替換它。`,deviceOffline:`SpoolBuddy 離線`,material:`材料`,colorName:`顏色名稱`,color:`顏色`,brand:`品牌`,weight:`重量 (g)`,createSpool:`建立耗材`,creating:`建立中...`,spoolCreated:`耗材已建立!準備寫入。`,createFailed:`建立耗材失敗`,incompleteDataWarning:`已使用不完整的Spoolman資料寫入標籤`},quickMenu:{printerPower:`印表機電源`,systemControls:`系統`,restartDaemon:`重新啟動守護程式`,restartBrowser:`重新啟動瀏覽器`,reboot:`重新開機`,shutdown:`關機`,swipeToClose:`向下滑動關閉`,confirmTitle:`確認`,confirmShutdown:`確定要關閉 SpoolBuddy 嗎?您需要實體存取才能重新開啟。`,confirmReboot:`確定要重新開機 SpoolBuddy 嗎?`,confirmRestartDaemon:`重新啟動 SpoolBuddy 守護程式?NFC 和磅秤將暫時不可用。`,confirmRestartBrowser:`重新啟動kiosk瀏覽器?螢幕將短暫變黑。`,confirm:`確認`,confirmPlugOn:`開啟 {{name}}?`,confirmPlugOff:`關閉 {{name}}?`,turnOn:`開啟`,turnOff:`關閉`}},diagnostic:{modalTitle:`連線診斷 — {{name}}`,running:`正在執行診斷...`,runningElapsed:`正在執行診斷... ({{elapsed}}秒)`,waitingForReportHint:`正在等待印表機發佈狀態報告 — 最長可能需要 {{max}} 秒。`,runFailed:`無法執行診斷:{{error}}`,retry:`重新執行`,runButton:`執行診斷`,sectionTitle:`連線診斷`,sectionDescription:`檢查印表機無法連線或無法列印的原因 — 連接埠可達性、LAN 開發者模式、Docker 網路模式與認證資訊。`,noPrinters:`未設定印表機。`,overall:{ok:`未發現問題 — 印表機連線看起來正常。`,warnings:`印表機應該可以運作,但有些項目需要注意。`,problems:`發現了可解釋印表機無法連線或無法列印的問題。`},check:{port_mqtt:{title:`控制連接埠(MQTT 8883)`,pass:`可達 — 印表機正在接受控制連線。`,fail:`連接埠 8883 無法連線。印表機已關機、IP 位址不同,或被防火牆封鎖。請核實印表機 IP,並確保沒有任何東西封鎖連接埠 8883。`},port_ftps:{title:`檔案傳輸連接埠(FTPS 990)`,pass:`可達 — 傳送列印檔案將正常運作。`,warn:`連接埠 990 無法連線。監控可能仍然有效,但向印表機傳送列印工作將失敗。請確保連接埠 990 未被封鎖。`},external_storage:{title:`將傳送的檔案儲存在外部儲存中(安裝步驟 4)`,pass:`印表機回報此選項已開啟 — 傳送的檔案將儲存在 SD 卡上,封存將包含縮圖和切片機中繼資料。`,fail:`印表機回報此選項已關閉。請啟用「將傳送的檔案儲存在外部儲存中」 — 在較新韌體 (P2S 01.02 / Bambu Studio 2.6+) 中,開關位於印表機的列印設定中;在較舊版本中位於 Bambu Studio / OrcaSlicer 的裝置分頁中。如果未啟用此選項,每次封存的列印都將沒有縮圖也沒有切片機中繼資料。`,skip:`未檢查 — 需要有效的 MQTT 連線。在該設定僅存在於切片機中的較舊切片機上,印表機不會回報此設定,因此即使選項已關閉,此檢查也會通過 — 請手動驗證安裝步驟 4。`,skip_unsupported_model:`此型號有 SD 卡槽,但無法開啟該選項 — 目前 P1 系列韌體不會在 Bambu Studio 中顯示此開關,且印表機沒有螢幕。這裡無需修復;在 Bambu Lab 透過韌體加入支援之前,封存的列印可能缺少縮圖和切片中繼資料。`},port_rtsps:{title:`攝影機連接埠({{protocol}} {{port}})`,pass:`可達 — 攝影機串流將正常運作。`,warn:`連接埠 {{port}} 無法連線。即時攝影機檢視將無法運作。這不影響列印。`},network_mode:{title:`Docker 網路模式`,pass:`正在以 host 網路模式執行。`,warn:`Bambuddy 正在以 Docker bridge 網路執行。印表機探索與虛擬印表機需要 host 網路模式 — 請使用 "network_mode: host" 重新建立容器。`,skip:`未在 Docker 中執行 — 不適用。`},subnet:{title:`網路子網路`,pass:`印表機與 Bambuddy 位於同一子網路。`,warn:`印表機({{printer_ip}})與 Bambuddy({{host_ip}})位於不同的子網路。除非設定了子網路之間的路由,否則它們可能無法互相連線。`,skip:`無法判定子網路 — 已略過。`},mqtt_auth:{title:`印表機認證資訊`,pass:`印表機已接受連線。`,fail:`印表機可達,但 Bambuddy 未與其建立連線。存取碼或序號很可能有誤 — 每次切換僅區域網路模式或開發者模式時存取碼都會變更,請從印表機螢幕重新複製。正在重新啟動或已達到同時連線數上限的印表機看起來也是這樣。`,fail_auth_rejected:`印表機拒絕了 Bambuddy 的認證資訊。存取碼或序號有誤 — 每次切換僅區域網路模式或開發者模式時存取碼都會變更。請從印表機螢幕重新複製,並儲存到印表機設定中。`,skip:`未檢查 — 無法連線到印表機。`},developer_mode:{title:`LAN 開發者模式`,pass:`開發者模式已啟用。`,fail:`印表機上的開發者模式已關閉。請在印表機的 LAN 設定中啟用它 — 並按 OK 確認。否則列印將無法開始。`,skip:`無法檢查 — 需要與印表機的即時連線。`},printer_publishing:{title:`印表機正在發佈狀態`,pass:`印表機正在發佈狀態更新 — AMS、耗材和 K 配置將正確鏡像到切片軟體。`,fail:`MQTT 代理已接受連線,但印表機未發佈任何狀態報告。這幾乎總是因為序號錯誤或大小寫不一致 — device//api/v1/metrics adresinde sun.`,bearerTokenOptional:`Bearer Belirteci (isteğe bağlı)`,bearerTokenHint:`Ayarlandıysa, isteklerin Authorization: Bearer içermesi gerekir`,metricsConnectionStatus:`Bağlantı durumu`,metricsPrinterState:`Yazıcı durumu (boşta/yazdırılıyor/vb.)`,metricsPrintProgress:`Baskı ilerlemesi 0-100%`,metricsBedTemp:`Tabla sıcaklığı`,metricsNozzleTemp:`Nozul sıcaklığı`,metricsPrintsTotal:`Sonuca göre toplam baskılar`,metricsMore:`...ve daha fazlası (katmanlar, fanlar, kuyruk, filament kullanımı)`,smartPlugsDescription:`Güç kontrolünü otomatikleştirmek ve yazıcılarınız için enerji kullanımını takip etmek üzere akıllı prizleri (Tasmota veya Home Assistant) bağlayın.`,allOn:`Tümü Açık`,allOff:`Tümü Kapalı`,addSmartPlug:`Akıllı Priz Ekle`,energySummary:`Enerji Özeti`,currentPower:`Mevcut Güç`,plugsOnline:`{{reachable}}/{{total}} priz çevrimiçi`,today:`Bugün`,yesterday:`Dün`,total:`Toplam`,enablePlugsForSummary:`Enerji özetini görmek için prizleri etkinleştirin`,addNotificationProvider:`Ekle`,systemBadge:`(Sistem)`,creating:`Oluşturuluyor...`,changing:`Değiştiriliyor...`,deleteUserAndItems:`Kullanıcıyı VE öğelerini sil`,deleteUserKeepItems:`Kullanıcıyı sil, öğeleri tut (sahipsiz olur)`,ok:`Tamam`,twoFa:{totpTitle:`Doğrulayıcı Uygulama (TOTP)`,totpDesc:`Google Authenticator, Aegis veya Authy gibi bir doğrulayıcı uygulama kullanın.`,emailOtpTitle:`E-posta OTP`,emailOtpDesc:`Giriş yaptığınızda {{email}} adresine tek seferlik bir kod gönder.`,emailOtpNoEmail:`Bu yöntemi etkinleştirmek için hesabınıza bir e-posta adresi ekleyin.`,addEmailFirst:`Hesabınızın e-posta adresi yok. E-posta OTP'yi etkinleştirmeden önce bir yöneticiden eklemesini isteyin.`,setupTotp:`Doğrulayıcı Uygulamayı Ayarla`,setupAuthApp:`Doğrulayıcı Uygulamayı Ayarla`,setupInstructions:`Aşağıdaki QR kodunu doğrulayıcı uygulamanızla tarayın, ardından bir kodla onaylayın.`,manualEntry:`Tarayamıyor musunuz? Bu gizli anahtarı manuel olarak girin:`,scannedContinue:`Kodu taradım — devam et`,enterCodeToConfirm:`Kurulumu onaylamak için doğrulayıcı uygulamanızdan 6 haneli kodu girin.`,activate:`Etkinleştir`,disableTotp:`Doğrulayıcıyı Devre Dışı Bırak`,disableConfirmHint:`Doğrulayıcıyı devre dışı bırakmak için geçerli bir TOTP kodu veya yedek kod girin.`,totpDisabled:`Doğrulayıcı uygulama devre dışı bırakıldı.`,emailOtpEnabled:`E-posta OTP etkinleştirildi.`,emailOtpDisabled:`E-posta OTP devre dışı bırakıldı.`,smtpRequired:`Lütfen önce SMTP ayarlarını yapılandırın ve test edin.`,invalidCode:`Geçersiz kod. Lütfen tekrar deneyin.`,enableEmailOtp:`E-posta OTP'yi Etkinleştir`,disableEmailOtp:`E-posta OTP'yi Devre Dışı Bırak`,emailSetupEnterCode:`E-posta adresinize bir doğrulama kodu gönderildi. Bu kutunun sahibi olduğunuzu onaylamak için aşağıya girin.`,verifyAndEnable:`Doğrula ve Etkinleştir`,emailDisablePasswordHint:`E-posta OTP'yi devre dışı bırakmayı onaylamak için hesap parolanızı girin.`,passwordPlaceholder:`Parolanızı girin`,backupCodesTitle:`Yedek kodlarınızı kaydedin`,backupCodesWarning:`Bu kodları güvenli bir yere kaydedin. Her kod yalnızca bir kez kullanılabilir ve tekrar gösterilmeyecektir.`,backupCodesRemaining:`{{count}} yedek kod kaldı`,savedCodes:`Kodlarımı kaydettim`,regenBackup:`Yedek Kodları Yeniden Oluştur`,regenBackupHint:`10 yeni yedek kod oluşturmak için mevcut TOTP kodunuzu girin. Mevcut tüm yedek kodlar geçersiz kılınacak.`,newBackupCodes:`Yeni yedek kodlar`,linkedAccounts:`Bağlı SSO Hesapları`,linkedAccountsDesc:`Bu harici kimlik sağlayıcıları hesabınıza bağlıdır.`,oidcUnlinked:`Hesap bağlantısı kaldırıldı.`},sessionPolicy:{title:`Oturum Politikası`,description:`Yeni kullanıcı girişleri için maksimum oturum süresi. Daha önce verilmiş belirteçler özgün son kullanma tarihlerini korur.`,preset24h:`24 saat`,preset7d:`7 gün`,preset30d:`30 gün`,customHoursLabel:`Özel oturum süresi (saat)`,hoursSuffix:`saat`,warning:`Daha uzun oturumlar otomatik oturum kapatma korumasını azaltır. Yalnızca güvenilir tek kullanıcılı dağıtımlar için önerilir.`},oidc:{title:`SSO / OIDC Sağlayıcıları`,desc:`Harici kimlik sağlayıcılar aracılığıyla tek oturum açmaya izin vermek için OpenID Connect sağlayıcılarını yapılandırın.`,addProvider:`Sağlayıcı Ekle`,newProvider:`Yeni Sağlayıcı`,empty:`Henüz yapılandırılmış OIDC sağlayıcısı yok.`,created:`Sağlayıcı oluşturuldu.`,updated:`Sağlayıcı güncellendi.`,deleted:`Sağlayıcı silindi.`,refreshIcon:`Simgeyi yenile`,removeIcon:`Simgeyi kaldır`,iconRefreshed:`Simge yenilendi.`,iconRemoved:`Simge kaldırıldı.`,iconFetchFailed:`Simge sağlayıcı URL'sinden alınamadı.`,deleteTitle:`Sağlayıcıyı Sil`,deleteMessage:`"{{name}}" silinsin mi? Tüm bağlı kullanıcı hesaplarının bağlantısı kaldırılacak.`,form:{name:`Görünen Ad`,issuerUrl:`Yayıncı URL`,clientId:`İstemci Kimliği`,clientSecret:`İstemci Gizli Anahtarı`,scopes:`Kapsamlar`,iconUrl:`Simge URL (isteğe bağlı)`,enabled:`Etkin`,autoCreate:`Kullanıcıları otomatik oluştur`,autoCreateDesc:`İlk girişte otomatik olarak yerel bir hesap oluştur.`,autoLink:`Mevcut hesapları otomatik bağla`,autoLinkDesc:`İlk girişte mevcut yerel hesapları e-posta eşleştirerek bağla.`,secretHint:`mevcut olanı korumak için boş bırakın`,secretPlaceholder:`yeni gizli anahtar`,emailClaim:`E-posta İddiası`,emailClaimDesc:`E-posta kimliği olarak kullanılan JWT iddiası. Azure Entra ID için 'preferred_username' veya 'upn' kullanın (email_verified göndermez). Yalnızca güvenilir iddia adlarını kullanın.`,emailClaimPlaceholder:`email`,emailClaimCustomClaimAutoLinkWarning:`Özel iddialar yalnızca değer kiracı tarafından yönetildiğinde otomatik bağlantı için güvenlidir (örn. Azure Entra ID upn / preferred_username). Kimlik sağlayıcınız kullanıcıların bu iddiayı kendi kendine onaylamasına izin veriyorsa otomatik bağlantıyı etkinleştirmeyin.`,requireEmailVerified:`E-posta doğrulamasını gerektir`,requireEmailVerifiedDesc:`E-posta iddiasını yalnızca sağlayıcı doğrulanmış olarak işaretlediğinde kabul et.`,requireEmailVerifiedWarning:`Uyarı: e-posta doğrulama olmadan bile kabul edilecek. Yalnızca güvenilir sağlayıcılarla kullanın.`,requireEmailVerifiedAutoLink:`Bu ayarı değiştirmek için önce otomatik bağlantıyı devre dışı bırakın.`,defaultGroup:`Varsayılan Grup`,defaultGroupDesc:`Otomatik oluşturulan kullanıcılara atanan grup. Ayarlanmazsa Viewers'a geri döner.`,defaultGroupViewersFallback:`Viewers (varsayılan)`,autologin:`Otomatik oturum açma`,autologinDesc:`Kimlik doğrulaması yapılmamış ziyaretçileri doğrudan bu sağlayıcıya yönlendir. Bu işareti yalnızca bir sağlayıcı taşıyabilir.`}},encryption:{title:`MFA Şifreleme Durumu`,enabledFromEnv:`Sabit şifreleme etkin (anahtar MFA_ENCRYPTION_KEY ortam değişkeninden)`,enabledFromFile:`Sabit şifreleme etkin (anahtar veri dizininden yüklendi)`,enabledGenerated:`Sabit şifreleme otomatik oluşturulan anahtarla etkin`,notConfigured:`Sabit şifreleme yapılandırılmamış`,notConfiguredDesc:`TOTP gizli anahtarları ve OIDC client_secrets düz metin olarak saklanır. MFA_ENCRYPTION_KEY ayarlayın veya Bambuddy'yi otomatik olarak oluşturmak için yazılabilir bir veri dizini ile yeniden başlatın.`,allEncrypted:`Tüm MFA gizli anahtarları sabit olarak şifrelenmiş durumda.`,legacyRowsLabel:`Eski düz metin satırlar`,encryptedRowsLabel:`Şifrelenmiş satırlar`,legacyRowsWarning:`{{count}} eski düz metin satır algılandı. Şifrelenmiş depolamaya geçmek için OIDC sağlayıcısını yeniden kaydedin veya kullanıcının doğrulayıcı uygulamasını yeniden kaydedin.`,backupHint:`Otomatik oluşturulan anahtar DATA_DIR/.mfa_encryption_key konumunda saklanır ve yerel yedek ZIP'lere dahil edilir. Yedeklerinizi güvende tutun veya MFA_ENCRYPTION_KEY'i açıkça ayarlayın.`,decryptionBrokenTitle:`Şifreleme anahtarı eksik`,decryptionBrokenError:`Şifreleme anahtarı artık mevcut olmadığından {{count}} şifrelenmiş kayıt şifresi çözülemiyor. Kurtarmak için önceki MFA_ENCRYPTION_KEY veya DATA_DIR/.mfa_encryption_key'i geri yükleyin.`,migrationErrorWarning:`Başlangıçta {{count}} eski satır yeniden şifrelenemedi. Sunucu günlüklerini kontrol edin ve yeniden denemek için Bambuddy'yi yeniden başlatın.`},pipelineLimits:{title:`Dilimleyici pipeline limitleri`,maxCopiesLabel:`Çalıştırma başına maksimum kopya`,maxCopiesDesc:`Bir pipeline çalıştırıldığında operatörlerin isteyebileceği kopya sayısı üst sınırı. Sunucu tarafı sert sınır 1000'dir.`},pipelines:{title:`Dilimleyici Pipeline'ları`,subtitle:`Yeniden kullanılabilir ön ayar paketleri (yazıcı + işlem + filamentler + tabla türü). Dilimleme diyalogundan bir tane kaydedin ve bir sonraki dosyaya tek tıkla uygulayın.`,loading:`Pipeline'lar yükleniyor…`,loadError:`Pipeline'lar yüklenemedi.`,confirmDelete:`Bu pipeline silinsin mi? Bu işlem geri alınamaz.`,staleWarning:`Atıfta bulunulan bir veya daha fazla ön ayar artık mevcut değil. Dilimleme diyalogundan bu pipeline'ı yeniden kaydederek düzeltin.`,empty:{title:`Henüz pipeline yok.`,howto:`Herhangi bir dosya için Dilimleme diyalogunu açın, yazıcı / işlem / filamentler / tablayı seçin, sonra "Pipeline olarak kaydet"e tıklayın. Kaydedilen pipeline'larınız burada görünecek.`},field:{name:`Pipeline adı`,description:`Açıklama`,targetPrinter:`Hedef yazıcı`,noTarget:`— Hedef yok —`,targetKind:`Hedef türü`,targetKindSpecific:`Belirli yazıcı`,targetKindClass:`Yazıcı sınıfı`,targetModelClass:`Yazıcı modeli`,fanoutStrategy:`Dağıtım stratejisi`,fanout:{max_parallel:`Maksimum paralel — eşleşen boş yazıcılara dağıt`,round_robin:`Sırayla — uygun yazıcılar arasında döndür`,fill_one_first:`Önce birini doldur — tüm kopyaları tek yazıcıya sabitle`},fanoutShort:{max_parallel:`paralel`,round_robin:`sırayla`,fill_one_first:`önce bir`}},action:{save:`Kaydet`,cancel:`İptal`,rename:`Yeniden adlandır`,delete:`Sil`},slot:{printer:`Yazıcı`,process:`İşlem`,filament:`Filament`,filamentN:`Filament {{n}}`,filamentAll:`Tüm {{n}} yuva`,bed:`Tabla`},group:{profiles:`Profiller`,filaments:`Filamentler`},searchPlaceholder:`Pipeline'larda ara…`,filterTargetType:`Hedef türüne göre filtrele`,filterTarget:`Hedefe göre filtrele`,filter:{all:`Tüm hedefler`,noTarget:`Hedef belirlenmemiş`,count:`{{shown}} / {{total}}`,noMatches:`Mevcut filtrelere uyan pipeline yok.`},toast:{saved:`Pipeline kaydedildi`,saveFailed:`Kaydetme başarısız`,deleted:`Pipeline silindi`,deleteFailed:`Silme başarısız`},noTargetHint:`Çalıştırmak için bir hedef yazıcı belirleyin`,noTargetWarning:`Bu pipeline'ı çalıştırmadan önce bir hedef yazıcı belirleyin.`,runs:{lastRun:`Son çalıştırma`,status:{queued:`kuyrukta`,slicing:`dilimleniyor`,dispatching:`gönderiliyor`,in_progress:`yazdırılıyor`,completed:`tamamlandı`,failed:`başarısız`,partial_failure:`kısmi başarısızlık`,cancelled:`iptal edildi`}}}},notification:{printStarted:{title:`Baskı Başladı`,body:`{{printer}}: {{filename}} yazdırmaya başladı`},printCompleted:{title:`Baskı Tamamlandı`,body:`{{printer}}: {{filename}} başarıyla tamamlandı`},printFailed:{title:`Baskı Başarısız`,body:`{{printer}}: {{filename}} başarısız oldu`},printStopped:{title:`Baskı Durduruldu`,body:`{{printer}}: {{filename}} durduruldu`},printProgress:{title:`Baskı İlerlemesi`,body:`{{printer}}: {{filename}} %{{percent}} tamamlandı`},printerOffline:{title:`Yazıcı Çevrimdışı`,body:`{{printer}} çevrimdışı`},printerError:{title:`Yazıcı Hatası`,body:`{{printer}}: {{error}}`},filamentLow:{title:`Az Filament`,body:`{{printer}}: Filament azalıyor`},maintenanceDue:{title:`Bakım Zamanı`,body:`{{printer}}: {{items}} dikkat gerektiriyor`}},errors:{generic:`Bir şeyler ters gitti`,networkError:`Ağ hatası. Lütfen bağlantınızı kontrol edin.`,notFound:`Bulunamadı`,unauthorized:`Yetkisiz`,serverError:`Sunucu hatası`,validationError:`Lütfen girdinizi kontrol edin`,printerConnectionFailed:`Yazıcıya bağlanılamadı`,saveFailed:`Değişiklikler kaydedilemedi`,deleteFailed:`Silme başarısız`,loadFailed:`Veri yüklenemedi`},hmsErrors:{title:`Hatalar - {{name}}`,noErrors:`Hata yok`,viewOnWiki:`Bambu Lab Wiki'de görüntüle`,mqttVerifyFailedRemedy:`Yazicida Gelistirici Modunu etkinlestirin, yaziciyi yeniden baslatin ve isi tekrar baslatin.`,unknownCode:`Bilinmeyen HMS kodu — ayrıntılar için Bambu Lab wiki sayfasına bakın.`,clearInstructions:`Buradan kapatmak için yazıcıdaki hataları temizleyin.`,clearErrors:`Hataları Temizle`,clearSuccess:`HMS hataları temizlendi`,clearFailed:`HMS hataları temizlenemedi`,actionSuccess:`Eylem yazıcıya gönderildi`,actionFailed:`Eylem gönderilemedi`,runoutExpectedSlot:`{{ranOut}} slotundaki filament bitti. Yazıcı şimdi {{expected}} slotunda uyumlu filament bekliyor. {{expected}} slotuna bir makara takın ve ardından Yeniden Dene'yi seçin.`,runoutExpectedSlotOnly:`Yazıcı {{expected}} slotunda uyumlu filament bekliyor. Oraya bir makara takın ve ardından Yeniden Dene'yi seçin.`,runoutSlotUnknown:`Filament bitti ve baskı duraklatıldı. Bambuddy yazıcının şu anda hangi slotu beklediğini belirleyemedi — istenen slot için yazıcının ekranını kontrol edin.`,actions:{RESUME_PRINTING:`Baskıyı sürdür`,RESUME_PRINTING_DEFECTS:`Sürdür (kusurlar kabul edilebilir)`,RESUME_PRINTING_PROBELM_SOLVED:`Sürdür (sorun çözüldü)`,STOP_PRINTING:`Baskıyı durdur`,CHECK_ASSISTANT:`Asistanı aç`,FILAMENT_EXTRUDED:`Filament ekstrude edildi, devam et`,RETRY_FILAMENT_EXTRUDED:`Henüz ekstrude edilmedi, tekrar dene`,CONTINUE:`Tamamlandı, devam et`,LOAD_VIRTUAL_TRAY:`Filament yükle`,OK_BUTTON:`Tamam`,FILAMENT_LOAD_RESUME:`Filament yüklendi, sürdür`,JUMP_TO_LIVEVIEW:`Canlı görünümü aç`,NO_REMINDER_NEXT_TIME:`Bir daha hatırlatma`,REFRESH_NOZZLE:`Tekrar kontrol et`,IGNORE_NO_REMINDER_NEXT_TIME:`Yok say ve bir daha hatırlatma`,IGNORE_RESUME:`Yok say ve sürdür`,PROBLEM_SOLVED_RESUME:`Sorun çözüldü, sürdür`,TURN_OFF_FIRE_ALARM:`Anlaşıldı, yangın alarmını kapat`,RETRY_PROBLEM_SOLVED:`Tekrar dene (sorun çözüldü)`,CANCLE:`İptal`,STOP_DRYING:`Kurutmayı durdur`,PROCEED:`Devam et`,OK_JUMP_RACK:`Tamam`,ABORT:`İptal`,DISABLE_PURIFICATION:`Bu baskı için arıtmayı devre dışı bırak`,DONT_REMIND_NEXT_TIME:`Beni hatırlatma`,DBL_CHECK_CANCEL:`İptal`,DBL_CHECK_DONE:`Tamam`,DBL_CHECK_RETRY:`Tekrar dene`,DBL_CHECK_RESUME:`Sürdür`,DBL_CHECK_OK:`Onayla`,REMOVE_CLOSE_BTN:`Kapat`}},mqttDebug:{title:`MQTT Hata Ayıklama Günlüğü`,searchPlaceholder:`Konu veya yük ara...`,noMessages:`Henüz mesaj kaydedilmedi`,startLoggingHint:`MQTT mesajlarını yakalamaya başlamak için "Kaydetmeye Başla"ya tıklayın`,noMessagesMatch:`Filtrenizle eşleşen mesaj yok`,adjustFilterHint:`Arama veya filtre kriterlerinizi ayarlamayı deneyin`,incoming:`Gelen`,outgoing:`Giden`,loggingStopped:`Kaydetme durduruldu`,loggingActive:`Kaydetme aktif - mesajlar otomatik olarak yenilenecek`,startLogging:`Kaydetmeye Başla`,stopLogging:`Kaydetmeyi Durdur`,clearLog:`Günlüğü Temizle`,topic:`Konu`,timestamp:`Zaman damgası`,direction:`Yön`,all:`Tümü`},printerFiles:{title:`Dosya Yöneticisi`,storageUsed:`Kullanılan:`,storageFree:`Boş:`,filterPlaceholder:`Dosyaları filtrele...`,deleteButton:`Sil`,deleteFiles:`{{count}} Dosya Sil`,deleteFileConfirm:`"{{name}}" silinsin mi? Bu geri alınamaz.`,deleteFilesConfirm:`Seçilen {{count}} dosya silinsin mi? Bu geri alınamaz.`,noFiles:`Yazıcıda dosya yok`,loadingFiles:`Dosyalar yükleniyor...`,failedToLoad:`Dosyalar yüklenemedi`,toast:{filesDeleted:`{{count}} dosya silindi`,deleteFailed:`Silme başarısız: {{error}}`}},confirm:{delete:`Bunu silmek istediğinizden emin misiniz?`,unsavedChanges:`Kaydedilmemiş değişiklikleriniz var. Çıkmak istediğinizden emin misiniz?`,clearQueue:`Kuyruğu temizlemek istediğinizden emin misiniz?`},login:{title:`Bambuddy Giriş`,subtitle:`Hesabınıza giriş yapın`,username:`Kullanıcı Adı`,usernamePlaceholder:`Kullanıcı adınızı girin`,usernameOrEmail:`Kullanıcı Adı veya E-posta`,usernameOrEmailPlaceholder:`Kullanıcı adı veya @ E-posta`,password:`Parola`,passwordPlaceholder:`Parolanızı girin`,signIn:`Giriş yap`,signingIn:`Giriş yapılıyor...`,rememberMe:`Beni Hatırla`,forgotPassword:`Parolanızı mı unuttunuz?`,autologinFailed:`Otomatik SSO girişi başarısız oldu. Devam etmek için aşağıdan bir sağlayıcı seçin.`,localDisabledNotice:`Yerel oturum açma devre dışı. Aşağıdaki SSO sağlayıcılarından birini kullanın.`,loginSuccess:`Başarıyla giriş yapıldı`,loginFailed:`Giriş başarısız`,enterCredentials:`Lütfen kullanıcı adı ve parola girin`,enterEmail:`Lütfen e-posta adresinizi girin`,oidcLoginFailed:`OIDC girişi başarısız`,oidcErrors:{providerError:`Kimlik sağlayıcısı bir hata döndürdü`,missingParameters:`OIDC geri arama gerekli parametreleri eksik`,invalidState:`OIDC durumu geçersiz veya zaten kullanılmış`,stateExpired:`OIDC giriş oturumu süresi doldu — lütfen tekrar deneyin`,providerNotFound:`OIDC sağlayıcısı bulunamadı`,discoveryFailed:`OIDC keşif belgesi alınamadı`,invalidDiscovery:`OIDC keşif belgesi geçersiz`,networkError:`OIDC belirteç değişimi sırasında ağ hatası`,badResponse:`OIDC belirteç değişimi sırasında beklenmeyen yanıt`,noIdToken:`OIDC sağlayıcısı bir ID belirteci döndürmedi`,validationFailed:`OIDC belirteç doğrulaması başarısız`,nonceMismatch:`OIDC nonce uyuşmazlığı — olası tekrar saldırısı`,missingSubClaim:`OIDC belirteci sub iddiasını içermiyor`,noLinkedAccount:`Bu OIDC kimliğine bağlı yerel hesap yok`,accountInactive:`Hesabınız aktif değil`,userResolutionFailed:`Hesabınız çözümlenemedi`,internalError:`OIDC girişi sırasında dahili bir hata oluştu`,tokenExchangeFailed:`OIDC belirteç değişimi başarısız`},forgotPasswordTitle:`Parolayı Unuttum`,forgotPasswordMessage:`Parolanızı unuttuysanız, sıfırlamak için lütfen sistem yöneticinizle iletişime geçin.`,forgotPasswordEmailMessage:`E-posta adresinizi girin, size yeni bir parola göndereceğiz.`,emailAddress:`E-posta Adresi`,emailPlaceholder:`eposta.adresi@example.com`,cancel:`İptal`,sending:`Gönderiliyor...`,sendResetEmail:`Sıfırlama E-postası Gönder`,howToReset:`Parolanızı nasıl sıfırlarsınız:`,resetStep1:`Bambuddy yöneticinizle iletişime geçin`,resetStep2:`Kullanıcı Yönetiminde parolanızı sıfırlamasını isteyin`,resetStep3:`Sizin için yeni bir geçici parola belirleyebilirler`,resetStep4:`Yeni parolayla giriş yapın ve Ayarlarda değiştirin`,gotIt:`Anladım`,resetPassword:{title:`Yeni Parola Belirle`,subtitle:`Aşağıya yeni parolanızı girin ve onaylayın.`,newPassword:`Yeni Parola`,newPasswordPlaceholder:`En az 8 karakter`,confirmPassword:`Parolayı Onayla`,confirmPasswordPlaceholder:`Yeni parolayı tekrarlayın`,saving:`Kaydediliyor…`,submit:`Yeni Parola Belirle`,backToLogin:`Girişe dön`,passwordsDoNotMatch:`Parolalar eşleşmiyor`,passwordTooShort:`Parola en az 8 karakter olmalı`,resetFailed:`Parola sıfırlama başarısız. Bağlantının süresi dolmuş olabilir.`},twoFA:{title:`İki Faktörlü Kimlik Doğrulama`,subtitle:`Hesabınız 2FA ile korunuyor. Aşağıya doğrulama kodunu girin.`,methodAuthenticator:`Doğrulayıcı Uygulama`,methodEmail:`E-posta Kodu`,methodBackup:`Yedek Kod`,instructionsTotp:`Doğrulayıcı uygulamanızı açın ve Bambuddy için 6 haneli kodu girin.`,instructionsEmail:`E-posta adresinize 6 haneli bir kod gönderildi. 10 dakika içinde sona erer.`,instructionsEmailNotSent:`E-posta yoluyla bir doğrulama kodu almak için aşağıdaki düğmeye tıklayın.`,instructionsBackup:`8 karakterlik yedek kurtarma kodlarınızdan birini girin. Her kod yalnızca bir kez kullanılabilir.`,sendCodeButton:`E-posta ile Kod Gönder`,sendingCode:`Gönderiliyor...`,resendCode:`Kodu yeniden gönder`,codeLabel:`Doğrulama Kodu`,backupCodeLabel:`Yedek Kod`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`Doğrula`,verifyingButton:`Doğrulanıyor...`,backToLogin:`← Girişe dön`,orContinueWith:`veya şununla devam edin`,signInWith:`{{provider}} ile giriş yap`,enterCode:`Lütfen doğrulama kodunu girin`,sendCodeFailed:`Doğrulama kodu gönderilemedi`,invalidCode:`Geçersiz kod. Lütfen tekrar deneyin.`}},setup:{title:`Bambuddy Kurulumu`,subtitle:`Bambuddy örneğiniz için kimlik doğrulamayı yapılandırın`,enableAuth:`Kimlik Doğrulamayı Etkinleştir`,adminAccount:`Yönetici Hesabı`,adminAccountDesc:`Yönetici kullanıcılar zaten varsa, kimlik doğrulama mevcut yönetici hesapları kullanılarak etkinleştirilecek. Mevcut yöneticileri kullanmak için aşağıdaki alanları boş bırakın veya yeni bir yönetici kullanıcı oluşturmak için yeni kimlik bilgileri girin.`,adminUsername:`Yönetici Kullanıcı Adı`,adminPassword:`Yönetici Parolası`,optionalIfAdminExists:`(yönetici kullanıcılar varsa isteğe bağlı)`,adminUsernamePlaceholder:`Yönetici kullanıcı adı girin (isteğe bağlı)`,adminPasswordPlaceholder:`Yönetici parolası girin (isteğe bağlı)`,confirmPassword:`Parolayı Onayla`,confirmPasswordPlaceholder:`Yönetici parolasını onayla`,settingUp:`Kuruluyor...`,completeSetup:`Kurulumu Tamamla`,toast:{authEnabledAdminCreated:`Kimlik doğrulama etkinleştirildi ve yönetici kullanıcı oluşturuldu`,authEnabledExistingAdmins:`Mevcut yönetici kullanıcılar kullanılarak kimlik doğrulama etkinleştirildi`,setupCompleted:`Kurulum tamamlandı`,enterBothCredentials:`Lütfen hem yönetici kullanıcı adı hem de parola girin veya mevcut yönetici kullanıcıları kullanmak için her ikisini de boş bırakın`,passwordsDoNotMatch:`Parolalar eşleşmiyor`,passwordTooShort:`Parola en az 6 karakter olmalı`}},changePassword:{title:`Parolayı Değiştir`,currentPassword:`Mevcut Parola`,currentPasswordPlaceholder:`Mevcut parolayı girin`,newPassword:`Yeni Parola`,newPasswordPlaceholder:`Yeni parolayı girin (en az 6 karakter)`,confirmPassword:`Yeni Parolayı Onayla`,confirmPasswordPlaceholder:`Yeni parolayı onayla`,passwordsDoNotMatch:`Parolalar eşleşmiyor`,passwordTooShort:`Parola en az 6 karakter olmalı`,changing:`Değiştiriliyor...`,success:`Parola başarıyla değiştirildi`,failed:`Parola değiştirilemedi`},plateAlert:{title:`Baskı Duraklatıldı!`,message:`Baskı plakasında nesneler algılandı. Baskı otomatik olarak duraklatıldı. Lütfen plakayı temizleyin ve baskıya devam edin.`,understand:`Anladım`},camera:{title:`Kamera Görünümü`,invalidPrinterId:`Geçersiz yazıcı ID'si`,live:`Canlı`,snapshot:`Anlık Görüntü`,restartStream:`Akışı yeniden başlat`,refreshSnapshot:`Anlık görüntüyü yenile`,fullscreen:`Tam ekran`,exitFullscreen:`Tam ekrandan çık`,connectingToCamera:`Kameraya bağlanılıyor...`,capturingSnapshot:`Anlık görüntü yakalanıyor...`,connectionLost:`Bağlantı kesildi`,connectionFailed:`Kamera bağlantısı başarısız`,reconnecting:`{{countdown}}sn içinde yeniden bağlanılıyor... (deneme {{attempt}}/{{max}})`,reconnectNow:`Şimdi yeniden bağlan`,cameraUnavailable:`Kamera kullanılamıyor`,cameraUnavailableDesc:`Yazıcının açık ve bağlı olduğundan emin olun.`,noCamera:`Kamera yok`,retry:`Yeniden dene`,cameraStream:`Kamera akışı`,zoomOut:`Uzaklaştır`,zoomIn:`Yakınlaştır`,resetZoom:`Yakınlaştırmayı sıfırla`,recording:`Kaydediyor`,startRecording:`Kaydı Başlat`,stopRecording:`Kaydı Durdur`,chamberLight:`Hazne ışığını aç/kapat`,unavailable:`Kamera kullanılamıyor`,diagnose:{button:`Tanıla`,modalTitle:`Kamera tanılaması`,running:`Tanılama çalışıyor...`,runFailed:`Tanılama çalıştırılamadı: {{error}}`,retry:`Tekrar çalıştır`,stage:{tcp_reachable:`Ağ erişilebilirliği`,first_frame:`Kare yakalama`,live_stream_active:`Canlı akış aktif`},summary:{all_ok:`Kamera çalışıyor. Tanılama tüm aşamaları başarıyla tamamladı.`,live_stream_active_healthy:`Kamera şu anda son karelerle akış yapıyor — teste gerek yok.`,printer_unreachable:`Yazıcıya erişilemiyor. IP adresini, ağ bağlantısını ve yazıcının açık olduğunu kontrol edin.`,camera_port_closed:`Yazıcıya erişilebilir ancak kamera portu kapalı. Yazıcı ayarlarında yalnızca LAN modunun ve Geliştirici Modunun etkin olduğundan emin olun.`,no_frame:`Kameraya bağlanıldı ancak hiç kare alınmadı. Tekrar deneyin veya yazıcı ayarlarında kameranın etkin olduğunu kontrol edin.`,unknown_failure:`Kamera tanılaması bilinmeyen bir nedenle başarısız oldu. Ayrıntılar için destek günlüğüne bakın.`},meta:{protocol:`Protokol`,port:`Port`,profile:`Profil`}}},groups:{title:`Grup Yönetimi`,subtitle:`Erişim kontrolü için izin gruplarını yönetin`,backToSettings:`Ayarlara Dön`,createGroup:`Grup Oluştur`,noPermission:`Bu sayfaya erişim izniniz yok.`,system:`Sistem`,noDescription:`Açıklama yok`,usersCount:`{{count}} kullanıcı`,permissionsCount:`{{count}} izin`,edit:`Düzenle`,delete:`Sil`,toast:{created:`Grup başarıyla oluşturuldu`,updated:`Grup başarıyla güncellendi`,deleted:`Grup başarıyla silindi`,enterGroupName:`Lütfen bir grup adı girin`},modal:{editGroup:`Grubu Düzenle`,createGroup:`Grup Oluştur`,cancel:`İptal`,saving:`Kaydediliyor...`,creating:`Oluşturuluyor...`,saveChanges:`Değişiklikleri Kaydet`},form:{groupName:`Grup Adı`,groupNamePlaceholder:`Grup adını girin`,systemGroupWarning:`Sistem grubu adları değiştirilemez`,description:`Açıklama`,descriptionPlaceholder:`Açıklama girin (isteğe bağlı)`,permissions:`İzinler ({{count}} seçildi)`},deleteModal:{title:`Grubu Sil`,message:`Bu grubu silmek istediğinizden emin misiniz? Bu gruptaki kullanıcılar bu izinleri kaybedecek.`,confirm:`Grubu Sil`},editor:{title:`Grubu Düzenle`,createTitle:`Grup Oluştur`,search:`İzinlerde ara...`,selectAll:`Tümünü Seç`,clearAll:`Tümünü Temizle`,permissionsSelected:`{{count}} seçildi`,noResults:`Aramanızla eşleşen izin yok`,websocketHint:`Canlı güncellemeler için gereklidir. Bu izin olmadan arayüz düzenli yoklamaya geri döner.`}},users:{title:`Kullanıcı Yönetimi`,subtitle:`Kullanıcıları ve Bambuddy örneğinize erişimlerini yönetin`,backToSettings:`Ayarlara Dön`,createUser:`Kullanıcı Oluştur`,noPermission:`Bu sayfaya erişim izniniz yok.`,admin:`Yönetici`,noGroups:`Grup yok`,active:`Aktif`,inactive:`Pasif`,edit:`Düzenle`,delete:`Sil`,system:`Sistem`,noGroupsAvailable:`Kullanılabilir grup yok`,table:{username:`Kullanıcı Adı`,groups:`Gruplar`,status:`Durum`,actions:`İşlemler`},toast:{created:`Kullanıcı başarıyla oluşturuldu`,updated:`Kullanıcı başarıyla güncellendi`,deleted:`Kullanıcı başarıyla silindi`,fillRequired:`Lütfen tüm zorunlu alanları doldurun`,passwordsDoNotMatch:`Parolalar eşleşmiyor`,passwordTooShort:`Parola en az 6 karakter olmalı`,ldapProvisioned:`"{{username}}" LDAP kullanıcısı tedarik edildi`},modal:{createUser:`Kullanıcı Oluştur`,editUser:`Kullanıcıyı Düzenle`,cancel:`İptal`,creating:`Oluşturuluyor...`,saving:`Kaydediliyor...`,saveChanges:`Değişiklikleri Kaydet`,advancedAuthSubtitle:`Gelişmiş Kimlik Doğrulama ile`,tabsAriaLabel:`Kullanıcı kaynağı`,localTab:`Yerel`,ldapTab:`LDAP`,ldapSearchLabel:`Dizinde ara`,ldapSearchPlaceholder:`Bir kullanıcı adı, isim veya e-posta yazın...`,ldapMinChars:`Aramak için en az 2 karakter yazın`,ldapTypeToSearch:`LDAP dizininde aramak için yazmaya başlayın`,ldapSearching:`Dizinde aranıyor...`,ldapNoResults:`Dizinde eşleşen kullanıcı yok`,ldapSearchError:`Dizin araması başarısız. LDAP sunucu durumunu kontrol edin.`,ldapAlreadyProvisioned:`Zaten tedarik edildi`,ldapSelectedLabel:`Seçildi`,ldapProvision:`Kullanıcıyı tedarik et`,ldapProvisioning:`Tedarik ediliyor...`,ldapErrorProvision:`Tedarik başarısız. LDAP sunucu durumunu kontrol edin ve tekrar deneyin.`},form:{username:`Kullanıcı Adı`,usernamePlaceholder:`Kullanıcı adını girin`,email:`E-posta`,emailPlaceholder:`kullanici@example.com`,password:`Parola`,passwordPlaceholder:`Parolayı girin`,confirmPassword:`Parolayı Onayla`,confirmPasswordPlaceholder:`Parolayı onayla`,newPasswordPlaceholder:`Yeni parolayı girin`,confirmNewPasswordPlaceholder:`Yeni parolayı onayla`,leaveBlankToKeep:`mevcut olanı korumak için boş bırakın`,groups:`Gruplar`,optional:`isteğe bağlı`,autoGeneratedPassword:`Güvenli bir parola otomatik olarak oluşturulacak ve kullanıcıya e-posta ile gönderilecek.`,passwordManagedByAdvancedAuth:`Parola Gelişmiş Kimlik Doğrulama tarafından yönetilir. Kullanıcıya e-posta yoluyla yeni bir parola göndermek için "Parolayı Sıfırla"yı kullanın.`,resetPassword:`Parolayı Sıfırla`,resettingPassword:`Parola Sıfırlanıyor...`},deleteModal:{title:`Kullanıcıyı Sil`,message:`Bu kullanıcıyı silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.`,confirm:`Kullanıcıyı Sil`}},streamOverlay:{title:`Akış Bindirmesi`,invalidPrinterId:`Geçersiz yazıcı ID'si`,cameraStream:`Kamera akışı`,progress:`İlerleme`,eta:`ETA`,printerIdle:`Yazıcı boşta`,printerOffline:`Yazıcı çevrimdışı`,status:{printing:`Yazdırılıyor`,paused:`Duraklatıldı`,finished:`Tamamlandı`,failed:`Başarısız`,idle:`Boşta`,unknown:`Bilinmiyor`}},profiles:{title:`Profiller`,subtitle:`Dilimleyici ön ayarlarını ve basınç ilerleme kalibrasyonlarını yönetin`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`Yerel Profiller`,kprofiles:`K-Profilleri`},orcaCloud:{connectedAs:`Bağlı kullanıcı`,connectedShort:`Orca Cloud'a bağlanıldı`,logout:`Bağlantıyı kes`,noLogoutPermission:`Bağlantıyı kesme izniniz yok`,noConnectPermission:`Orca Cloud'a bağlanma izniniz yok`,retry:`Yeniden dene`,connectButton:`Orca Cloud'a bağlan`,connect:{title:`Orca Cloud'a bağlan`,description:`Dilimleyici profillerinizi Bambuddy ile senkronize etmek için Orca Cloud hesabınıza giriş yapın.`},device:{title:`Orca Cloud'da Bambuddy'yi onayla`,instruction:`Orca Cloud'u açın ve bu kodu onaylayın. Onayladığınızda Bambuddy otomatik olarak bağlanır.`,codeLabel:`Eşleştirme kodunuz`,openButton:`Orca Cloud onay sayfasını aç`,manualHint:`Ya da {{url}} adresine gidin ve yukarıdaki kodu girin.`,waiting:`Onayınız bekleniyor…`,cancel:`İptal`},profiles:{title:`Orca Cloud profilleriniz ({{count}})`,refresh:`Yenile`,empty:`Orca Cloud hesabınızda henüz profil bulunamadı.`},toast:{disconnected:`Orca Cloud bağlantısı kesildi`},errors:{startFailed:`Orca Cloud giriş akışı başlatılamadı.`,denied:`Eşleştirme Orca Cloud'da reddedildi.`,expired:`Eşleştirme kodunun süresi doldu. Tekrar denemek için Bağlan'a tıklayın.`,pollFailed:`Onay beklenirken bağlantı kesildi. Lütfen tekrar deneyin.`}},localProfiles:{title:`Yerel Profiller`,subtitle:`OrcaSlicer'dan dilimleyici ön ayarlarını içe aktar ve yönet`,import:`Profilleri İçe Aktar`,importDesc:`.bbscfg, .bbsflmt, .orca_filament, .zip veya .json dosyalarını buraya bırakın`,importing:`İçe aktarılıyor...`,search:`Yerel ön ayarlarda ara...`,noPresets:`Henüz yerel ön ayar yok`,noSearchResults:`Aramanızla eşleşen ön ayar yok`,badge:`Yerel`,edit:`Düzenle`,delete:`Sil`,cancel:`İptal`,deleteConfirmTitle:`Ön Ayarı Sil`,deleteConfirm:`Bu ön ayarı silmek istediğinizden emin misiniz? Bu geri alınamaz.`,source:`Kaynak`,inheritsFrom:`Miras alır`,filamentType:`Tür`,vendor:`Satıcı`,compatiblePrinters:`Yazıcılar`,nozzleTemp:`Nozul Sıcaklığı`,cost:`Maliyet`,density:`Yoğunluk`,pressureAdvance:`Basınç İlerlemesi`,filament:`Filament`,process:`İşlem`,printer:`Yazıcı`,toast:{importSuccess:`{{count}} ön ayar içe aktarıldı`,importSkipped:`{{count}} ön ayar atlandı (yinelenenler)`,importError:`İçe aktarma sırasında {{count}} hata`,deleted:`Ön ayar silindi`,updated:`Ön ayar güncellendi`}},connectedAs:`Bağlı kullanıcı`,signInExpiredTitle:`Bambu Cloud oturumu sona erdi`,signInExpiredBody:`Bambu Lab kayıtlı belirteci artık kabul etmiyor. Bulut profillerini, MakerWorld içe aktarmalarını ve donanım yazılımı denetimlerini geri yüklemek için yeniden oturum açın.`,logout:`Çıkış`,noLogoutPermission:`Çıkış yapma izniniz yok`,failedToLoad:`Profiller yüklenemedi`,retry:`Yeniden dene`,time:{justNow:`Az önce`,minsAgo:`{{count}}dk önce`,hoursAgo:`{{count}}sa önce`,daysAgo:`{{count}}g önce`},toast:{loggedOut:`Çıkış yapıldı`},login:{title:`Bambu Cloud'a Bağlan`,subtitle:`Dilimleyici ön ayarlarınızı cihazlar arasında senkronize edin`,email:`E-posta`,password:`Parola`,region:`Bölge`,regionGlobal:`Global`,regionChina:`Çin`,verificationCode:`Doğrulama Kodu`,totpCode:`Doğrulayıcı Kodu`,checkEmail:`E-postanızı ({{email}}) 6 haneli kod için kontrol edin`,enterTotpHint:`Doğrulayıcı uygulamanızdan 6 haneli kodu girin`,accessToken:`Erişim Belirteci`,accessTokenHint:`Bambu Cloud erişim belirtecinizi yapıştırın. Çin bölgesi hesapları bu yolu kullanmalıdır (telefon bağımlı — e-posta girişi kullanılamaz). MakerWorld çerezlerinden belirteci nasıl alacağınız için wiki'ye bakın.`,back:`Geri`,loginButton:`Giriş`,verifyButton:`Doğrula`,setTokenButton:`Belirteç Ayarla`,useToken:`Erişim belirteci kullan`,useEmail:`E-posta ile giriş yap`,toast:{loggedIn:`Başarıyla giriş yapıldı`,codeSent:`Doğrulama kodu e-postanıza gönderildi`,enterTotp:`Doğrulayıcı uygulamanızdan kod girin`,tokenSet:`Belirteç başarıyla ayarlandı`}},presets:{myPreset:`Ön ayarım (düzenlenebilir)`,duplicate:`Çoğalt`,editable:`Düzenlenebilir`,failedToLoadDetails:`Ön ayar ayrıntıları yüklenemedi`,deleteConfirm:`Bu ön ayar silinsin mi?`,deleteWarning:`Bu, "{{name}}" ön ayarını Bambu Cloud'dan kalıcı olarak silecek. Bu geri alınamaz.`,noDuplicatePermission:`Ön ayarları çoğaltma izniniz yok`,noEditPermission:`Ön ayarları düzenleme izniniz yok`,noDeletePermission:`Ön ayarları silme izniniz yok`,types:{filament:`Filament ön ayarı`,printer:`Yazıcı ön ayarı`,process:`İşlem ön ayarı`},toast:{deleted:`Ön ayar silindi`,created:`Ön ayar oluşturuldu`,updated:`Ön ayar güncellendi`,duplicated:`Ön ayar çoğaltıldı`,fieldAdded:`"{{key}}" alanı eklendi`,exported:`Ön ayar dışa aktarıldı`},baseLabel:`Taban: {{name}}`,currentLabel:`Mevcut: {{name}}`,newPreset:`Yeni Ön Ayar`,editPreset:`Ön Ayarı Düzenle`,duplicatePreset:`Ön Ayarı Çoğalt`,createNewPreset:`Yeni Ön Ayar Oluştur`,customizeSettings:`Yeni ön ayarınız için ayarları özelleştirin`,compareWithBase:`Taban ön ayarla karşılaştır`,compare:`Karşılaştır`,basePreset:`Taban Ön Ayar`,selectBasePreset:`Taban ön ayar seç...`,presetName:`Ön Ayar Adı`,myCustomPreset:`Özel ön ayarım`,inheritsFrom:`Miras alır`,dropJsonToImport:`İçe aktarmak için JSON bırakın`,tabs:{common:`Ortak`,allFields:`Tüm Alanlar`},availableFields:`Kullanılabilir Alanlar`,searchFieldsPlaceholder:`Alanlarda ara...`,noMatchingFields:`Eşleşen alan yok`,allFieldsAdded:`Tüm alanlar eklendi`,addCustomField:`Özel alan ekle`,yourOverrides:`Geçersiz Kılmalarınız`,noOverridesYet:`Henüz geçersiz kılma yok`,clickFieldsToAdd:`Eklemek için soldaki alanlara tıklayın`,saveAsTemplate:`Şablon olarak kaydet`,jsonTip:`İpucu: Ayarları içe aktarmak için bu modalin herhangi bir yerine .json dosyasını sürükleyip bırakın`},cloudView:{searchPlaceholder:`Ön ayarlarda ara...`,templates:`Şablonlar`,refresh:`Yenile`,newPreset:`Yeni Ön Ayar`,clearFilters:`Filtreleri temizle`,compareMode:`Karşılaştırma Modu`,selectAnotherPreset:`Başka bir {{type}} ön ayarı seç`,clickTwoPresets:`Karşılaştırmak için aynı türden iki ön ayara tıklayın`,selectFirst:`1. İlkini seç`,selectSecond:`2. İkincisini seç`,compareNow:`Şimdi Karşılaştır`,lastSynced:`Son senkronizasyon:`,showingCount:`{{total}} ön ayardan {{showing}} tanesi gösteriliyor`,noPresetsFound:`Ön ayar bulunamadı`,columns:{filament:`Filament`,process:`İşlem`,printer:`Yazıcı`},noFilamentPresets:`Filament ön ayarı yok`,noProcessPresets:`İşlem ön ayarı yok`,noPrinterPresets:`Yazıcı ön ayarı yok`,filters:{type:`Tür`,owner:`Sahip`,printer:`Yazıcı`,nozzle:`Nozul`,filament:`Filament`,layer:`Katman`,all:`Tümü`,myPresets:`Ön Ayarlarım`,builtIn:`Yerleşik`,process:`İşlem`},noTemplatesPermission:`Şablonları yönetme izniniz yok`,noRefreshPermission:`Profilleri yenileme izniniz yok`,noCreatePermission:`Ön ayar oluşturma izniniz yok`},templates:{title:`Hızlı Şablonlar`,noTemplates:`Henüz şablon yok`,createFirst:`Ön ayar düzenleyicisinden şablonlar oluşturun`,typeFilter:`Tür:`,deleteTitle:`Şablonu Sil`,deleteWarning:`Bu işlem geri alınamaz`,deleteConfirm:`"{{name}}" silmek istediğinizden emin misiniz?`,namePlaceholder:`Şablon adı`,descriptionPlaceholder:`Açıklama`,settingsJson:`Ayarlar (JSON)`,fieldsCount:`{{count}} alan`,shownInModals:`Modallerde gösterilir`,hiddenInModals:`Modallerde gizli`,apply:`Uygula`,toast:{deleted:`Şablon silindi`,updated:`Şablon güncellendi`,created:`Şablon oluşturuldu`,applied:`Şablon uygulandı`}}},support:{debugLoggingActive:`Hata ayıklama kaydı aktif`,manageLogs:`Yönet`,collectItem7:`Yazıcı bağlantısı ve firmware sürümleri`,collectItem8:`Entegrasyon durumu (Spoolman, MQTT, HA)`,collectItem9:`Ağ arayüzleri (yalnızca alt ağlar)`,collectItem10:`Python paket sürümleri`,collectItem11:`Veritabanı sağlık kontrolleri`,collectItem12:`Docker ortam ayrıntıları`,bundleGenerating:`Paket oluşturuluyor...`,bundleStepConnection:`Yazıcı bağlantı kontrolleri çalıştırılıyor`,bundleStepVirtualPrinters:`Sanal yazıcı kurulum kontrolleri çalıştırılıyor`,bundleStepLogScan:`Son günlüklerde bilinen sorunlar taranıyor`,bundleStepBuild:`Destek paketi ZIP oluşturuluyor`},fileManager:{title:`Dosya Yöneticisi`,subtitle:`Baskı dosyalarınızı organize edin ve yönetin`,uploadFiles:`Dosya Yükle`,newFolder:`Yeni Klasör`,folderName:`Klasör Adı`,folderNamePlaceholder:`örn., Fonksiyonel Parçalar`,renameFile:`Dosyayı Yeniden Adlandır`,renameFolder:`Klasörü Yeniden Adlandır`,invalidFilenameChar:`Baskı dosya adlarında "{{char}}" karakterine izin verilmiyor. Yazıcının SD kartı şu karakterleri reddeder: < > : " / \\ | ? *`,moveFiles:`{{count}} Dosyayı Taşı`,rootNoFolder:`Kök (Klasör Yok)`,current:`mevcut`,linkFolder:`Klasörü Bağla`,linkFolderDescription:`Hızlı erişim için "{{name}}" klasörünü bir projeye veya arşive bağla.`,project:`Proje`,archive:`Arşiv`,noProjectsFound:`Proje bulunamadı`,noArchivesFound:`Arşiv bulunamadı`,unlink:`Bağlantıyı Kaldır`,link:`Bağla`,dragDropFiles:`Dosyaları buraya sürükleyip bırakın`,dropFilesHere:`Dosyaları buraya bırakın`,releaseToUpload:`Yüklemek için bırakın`,orClickToBrowse:`veya göz atmak için tıklayın`,allFileTypesSupported:`Tüm dosya türleri desteklenir. ZIP dosyaları çıkarılacak.`,zipFilesDetected:`ZIP dosyaları algılandı`,zipExtractOptions:`ZIP dosyaları çıkarılacak. Klasör yapısını nasıl yöneteceğinizi seçin:`,preserveZipStructure:`ZIP'ten klasör yapısını koru`,createFolderFromZip:`ZIP dosya adından klasör oluştur`,stlThumbnailGeneration:`STL küçük resim oluşturma`,zipMayContainStl:`ZIP dosyaları STL dosyaları içerebilir. Küçük resimler çıkarma sırasında oluşturulabilir.`,thumbnailsCanBeGenerated:`STL dosyaları için küçük resimler oluşturulabilir. Büyük modellerin işlenmesi daha uzun sürebilir.`,generateThumbnailsForStl:`STL dosyaları için küçük resim oluştur`,threemfDetected:`3MF dosyaları algılandı`,threemfExtractionInfo:`Yazıcı modeli, malzeme, renk ve baskı ayarları 3MF dosyalarından otomatik olarak çıkarılacak.`,willBeExtracted:`Çıkarılacak`,filesExtracted:`{{count}} dosya çıkarıldı`,uploadComplete:`Yükleme tamamlandı: {{succeeded}} başarılı`,uploadFailed:`Yükleme başarısız`,zipFilesFailed:`{{count}} dosya başarısız`,uploading:`Yükleniyor...`,changeLink:`Bağlantıyı Değiştir...`,linkTo:`Şuna bağla...`,linkToProjectOrArchive:`Projeye veya arşive bağla`,generateThumbnail:`Küçük Resim Oluştur`,generateThumbnails:`Küçük Resimler Oluştur`,generateThumbnailsForMissing:`Eksik olan STL dosyaları için küçük resimler oluştur`,gridView:`Izgara görünümü`,listView:`Liste görünümü`,lowDiskSpaceWarning:`Düşük disk alanı uyarısı`,lowDiskSpaceDetails:`Toplam {{total}} alandan yalnızca {{free}} boş. Eşik ayarlarda {{threshold}} GB olarak ayarlanmış.`,files:`Dosyalar`,folders:`Klasörler`,size:`Boyut`,free:`Boş`,allFiles:`Tüm Dosyalar`,allExternal:`Harici`,externalIsEmpty:`Harici dosya yok`,externalEmptyDescription:`Bağlı harici klasörlerinizdeki dosyalar burada görünecek.`,wrap:`Sar`,enableTextWrapping:`Metin sarmayı etkinleştir`,disableTextWrapping:`Metin sarmayı devre dışı bırak`,collapse:`Daralt`,collapseFoldersByDefault:`Klasörleri varsayılan olarak daralt`,expandFoldersByDefault:`Klasörleri varsayılan olarak genişlet`,folderSort:`Klasörleri sırala`,folderSortByName:`Ada göre`,folderSortByActivity:`Son etkinliğe göre`,dragToResizeTooltip:`Yeniden boyutlandırmak için sürükleyin, sıfırlamak için çift tıklayın`,searchFiles:`Dosyalarda ara...`,searchSubfoldersHint:`Alt klasörler dahil`,readme:{truncated:`Kısaltıldı`,show:`README’yi göster`,hide:`README’yi gizle`,label:`README`},tags:{title:`Etiketler`,subtitle:`Çapraz filtreleme için dosyaları etiketleyin — oyuncak, çocuklar için güvenli, sadece PETG, ne isterseniz.`,manage:`Etiketler`,manageTitle:`Etiket kataloğunu yönet`,add:`Yeni etiket`,edit:`Etiketi yeniden adlandır`,name:`Ad`,fileCount:`Dosya`,empty:`Henüz etiket yok. Bir tane oluşturup dosyaları etiketlemeye başlayın.`,noMatches:`Eşleşen etiket yok.`,createPlaceholder:`örn. oyuncak, çocuk-güvenli, petg`,createButton:`Oluştur`,nameRequired:`Ad gerekli.`,searchPlaceholder:`Etiketleri filtrele...`,created:`Etiket oluşturuldu.`,updated:`Etiket yeniden adlandırıldı.`,deleted:`Etiket kaldırıldı.`,saveFailed:`Etiket kaydedilemedi.`,deleteFailed:`Etiket kaldırılamadı.`,applyFailed:`Etiketler uygulanamadı.`,applyAdd:`Etiket ekle`,applyRemove:`Etiket kaldır`,applyAddSuccess:`{{files}} dosyaya {{count}} etiket eklendi.`,applyRemoveSuccess:`{{files}} dosyadan {{count}} etiket kaldırıldı.`,actionAdd:`Seçili dosyalara ekle`,actionRemove:`Seçili dosyalardan kaldır`,tagAction:`Etiketle`,bulkTitle:`Seçili {{count}} dosyayı etiketle`,bulkTooltip:`Seçili her dosyaya etiket ekleyin veya kaldırın.`,noPermission:`Dosyaları etiketleme izniniz yok.`,filterLabel:`Filtre:`,clearAll:`Tümünü temizle`,confirmDelete:`"{{name}}" etiketi silinsin mi?`,confirmDeleteMessage:`Bu, etiketi katalogdan kaldırır. Dosyalar diğer etiketlerini korur.`,confirmDeleteInUseMessage:`Bu etiket {{count}} dosyada bulunuyor. Silmek hepsinden çıkarır; dosyaların kendisine dokunulmaz.`,editAria:`{{name}} düzenle`,deleteAria:`{{name}} sil`},allTypes:`Tüm türler`,prints:`Baskılar`,ascending:`Artan`,descending:`Azalan`,showModified:`Değiştirme tarihlerini göster`,hideModified:`Değiştirme tarihlerini gizle`,lastModified:`Son değiştirme`,lastActivity:`Son etkinlik`,resultsCount:`{{total}} dosyadan {{showing}} tanesi`,selectAll:`Tümünü Seç`,deselectAll:`Seçimi Kaldır`,selected:`{{count}} seçildi`,adding:`Ekleniyor...`,loadingFiles:`Dosyalar yükleniyor...`,folderIsEmpty:`Klasör boş`,noFilesYet:`Henüz dosya yok`,folderEmptyDescription:`Başlamak için bu klasöre dosya yükleyin veya dosyaları taşıyın.`,noFilesDescription:`Baskıyla ilgili dosyalarınızı organize etmeye başlamak için dosya yükleyin.`,noMatchingFiles:`Eşleşen dosya yok`,noMatchingFilesDescription:`Mevcut arama veya filtre kriterlerinizle eşleşen dosya yok.`,clearFilters:`Filtreleri temizle`,printedCount:`{{count}}x yazdırıldı`,uploadedBy:`Yükleyen`,deleteFolder:`Klasörü Sil`,deleteFile:`Dosyayı Sil`,deleteFilesCount:`{{count}} Dosya Sil`,deleteFolderConfirm:`Bu klasörü silmek istediğinizden emin misiniz? İçindeki tüm dosyalar da silinecek.`,deleteFileConfirm:`Bu dosyayı silmek istediğinizden emin misiniz?`,deleteFilesConfirm:`{{count}} seçili dosyayı silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.`,deleting:`Siliniyor...`,noPermissionRenameFolder:`Klasörleri yeniden adlandırma izniniz yok`,noPermissionLinkFolder:`Klasörleri bağlama izniniz yok`,noPermissionDeleteFolder:`Klasörleri silme izniniz yok`,onlyEmptyFoldersDeletable:`Yalnızca boş klasörleri silebilirsiniz`,noPermissionPrint:`Yazdırma izniniz yok`,noPermissionAddToQueue:`Kuyruğa ekleme izniniz yok`,noPermissionSlice:`Dosyaları dilimleme izniniz yok`,noPermissionDownload:`Dosyaları indirme izniniz yok`,noPermissionRenameFile:`Bu dosyayı yeniden adlandırma izniniz yok`,noPermissionGenerateThumbnail:`Küçük resim oluşturma izniniz yok`,noPermissionDeleteFile:`Bu dosyayı silme izniniz yok`,noPermissionCreateFolder:`Klasör oluşturma izniniz yok`,noPermissionUpload:`Dosya yükleme izniniz yok`,noPermissionMoveFiles:`Dosyaları taşıma izniniz yok`,noPermissionDeleteFiles:`Dosyaları silme izniniz yok`,linkExternal:`Harici Bağla`,linkExternalFolder:`Harici Klasör Bağla`,linkExternalFolderDescription:`Bir ana bilgisayar dizinini (NAS, USB, ağ paylaşımı) Dosya Yöneticisine bağla. Dosyalar kopyalanmaz — orijinal yoldan doğrudan erişilir.`,externalFolderNamePlaceholder:`örn., NAS Baskıları`,externalPath:`Ana Bilgisayar Yolu`,externalPathHelp:`Docker ana bilgisayarındaki dizinin mutlak yolu. Konteynere bind-mount edilmiş olmalıdır.`,readOnly:`Salt Okunur`,readOnlyHelp:`yüklemeleri ve silmeleri engeller`,showHiddenFiles:`Gizli dosyaları göster (nokta dosyaları)`,externalFolder:`Harici Klasör`,scanFolder:`Tara`,toast:{folderCreated:`Klasör oluşturuldu`,folderDeleted:`Klasör silindi`,fileDeleted:`Dosya silindi`,filesDeleted:`{{count}} dosya silindi`,filesMoved:`Dosyalar taşındı`,folderLinked:`Klasör bağlandı`,folderUnlinked:`Klasör bağlantısı kaldırıldı`,externalFolderLinked:`Harici klasör bağlandı ve tarandı`,folderScanned:`Tarama tamamlandı: {{added}} eklendi, {{removed}} kaldırıldı`,addedToQueue:`Kuyruğa {{count}} dosya eklendi`,addedToQueuePartial:`{{added}} dosya eklendi, {{failed}} başarısız`,failedToAddToQueue:`Dosyalar eklenemedi: {{error}}`,fileRenamed:`Dosya yeniden adlandırıldı`,folderRenamed:`Klasör yeniden adlandırıldı`,thumbnailsGenerated:`{{count}} küçük resim oluşturuldu`,thumbnailsGeneratedPartial:`{{succeeded}} küçük resim oluşturuldu, {{failed}} başarısız`,noStlMissingThumbnails:`Küçük resmi eksik STL dosyası yok`,failedToGenerateThumbnails:`Küçük resimler oluşturulamadı: {{error}}`,thumbnailGenerated:`Küçük resim oluşturuldu`,failedToGenerateThumbnail:`Küçük resim oluşturulamadı: {{error}}`}},projects:{title:`Projeler`,subtitle:`3D baskı projelerinizi organize edin ve takip edin`,newProject:`Yeni Proje`,editProject:`Projeyi Düzenle`,deleteProject:`Projeyi Sil`,projectName:`Proje Adı`,description:`Açıklama`,noProjects:`Henüz proje yok`,noProjectsFiltered:`{{status}} proje yok`,noProjectsFilteredHelp:`Hiç {{status}} projeniz yok. Projeler durumları değiştiğinde burada görünecek.`,createFirst:`İlgili baskıları organize etmeye, ilerlemeyi takip etmeye ve yapımlarınızı yönetmeye başlamak için ilk projenizi oluşturun.`,createFirstButton:`İlk Projenizi Oluşturun`,create:`Oluştur`,files:`Dosyalar`,prints:`Baskılar`,plates:`plaka`,parts:`parça`,lastModified:`Son Değiştirme`,deleteConfirm:`Bu projeyi silmek istediğinizden emin misiniz? Arşivler ve kuyruk öğelerinin bağlantısı kaldırılacak ancak silinmeyecek.`,addFiles:`Dosya Ekle`,removeFile:`Dosyayı Kaldır`,viewDetails:`Detayları Görüntüle`,namePlaceholder:`örn., Voron 2.4 Yapımı`,descriptionPlaceholder:`İsteğe bağlı açıklama...`,urlLabel:`URL`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`URL http:// veya https:// ile başlamalı`,openExternalUrl:`Proje URL'sini aç`,coverImageLabel:`Kapak fotoğrafı`,coverImageAlt:`Proje kapak fotoğrafı`,coverImageUpload:`Yükle`,coverImageReplace:`Değiştir`,coverImageRemove:`Kaldır`,color:`Renk`,targetPlates:`Hedef Plakalar`,targetPlatesPlaceholder:`örn., 25`,targetPlatesHelp:`Baskı işi sayısı`,targetParts:`Hedef Parçalar`,targetPartsPlaceholder:`örn., 150`,targetPartsHelp:`Gereken toplam nesne`,targetSets:`Dosya başına kopya`,targetSetsPlaceholder:`örn. 10`,targetSetsHelp:`Her yazdırılabilir dosyanın kaç kez yazdırılacağı`,tagsLabel:`Etiketler (virgülle ayrılmış)`,tagsPlaceholder:`örn., voron, fonksiyonel, hediye`,dueDate:`Son Tarih`,priority:`Öncelik`,priorityLow:`Düşük`,priorityNormal:`Normal`,priorityHigh:`Yüksek`,priorityUrgent:`Acil`,statusActive:`Aktif`,statusCompleted:`Tamamlandı`,statusArchived:`Arşivlendi`,done:`Tamamlandı`,completed:`tamamlandı`,failed:`başarısız`,inQueue:`kuyrukta`,noPrintsYet:`Henüz baskı yok`,printJobs:`Baskı işleri (plakalar)`,partsPrinted:`Yazdırılan parçalar`,failedParts:`Başarısız parçalar`,import:`İçe Aktar`,export:`Dışa Aktar`,importProject:`Projeyi içe aktar`,exportAll:`Tüm projeleri dışa aktar`,loading:`Projeler yükleniyor...`,noEditPermission:`Projeleri düzenleme izniniz yok`,noDeletePermission:`Projeleri silme izniniz yok`,noCreatePermission:`Proje oluşturma izniniz yok`,noImportPermission:`Projeleri içe aktarma izniniz yok`,noExportPermission:`Projeleri dışa aktarma izniniz yok`,toast:{created:`Proje oluşturuldu`,updated:`Proje güncellendi`,deleted:`Proje silindi`,imported:`Proje içe aktarıldı`,multipleImported:`{{count}} proje içe aktarıldı`,importFailed:`İçe aktarma başarısız`,exported:`Projeler dışa aktarıldı (yalnızca meta veriler)`}},projectDetail:{notFound:`Proje bulunamadı`,backToProjects:`Projelere Dön`,export:`Dışa Aktar`,exportProject:`Projeyi dışa aktar`,noExportPermission:`Projeleri dışa aktarma izniniz yok`,noEditPermission:`Projeleri düzenleme izniniz yok`,partOf:`Şunun parçası:`,priorityLabel:`Öncelik:`,noPrints:`Bu projede henüz baskı yok`,status:{active:`Aktif`,completed:`Tamamlandı`,archived:`Arşivlendi`},priority:{low:`Düşük`,normal:`Normal`,high:`Yüksek`,urgent:`Acil`},dueDate:{overdue:`Gecikmiş`,today:`Bugün teslim`,daysLeft:`{{count}} gün kaldı`},progress:{platesProgress:`Plaka İlerlemesi`,partsProgress:`Parça İlerlemesi`,setsProgress:`Tamamlanan setler`,sets:`set`,setsHint:`Her yazdırılabilir dosya bu sayıya ulaştığında bir set tamamlanır`,printJobs:`baskı işi`,parts:`parça`,percentComplete:`%{{percent}} tamamlandı`,remaining:`{{count}} kaldı`},stats:{printJobs:`Baskı İşleri`,total:`toplam`,failed:`{{count}} başarısız`,partsPrinted:`{{count}} parça yazdırıldı`,printTime:`Baskı Süresi`,filamentUsed:`Kullanılan Filament`},cost:{title:`Maliyet Takibi`,filamentCost:`Filament Maliyeti`,energy:`Enerji`,totalCost:`Toplam Maliyet`,total:`Toplam`,includesBom:`BOM dahil`,budget:`Bütçe`,remaining:`Kalan`},subProjects:{title:`Alt projeler ({{count}})`},notes:{title:`Notlar`,noEditPermission:`Notları düzenleme izniniz yok`,placeholder:`Bu proje hakkında notlar ekleyin...`,empty:`Henüz not yok. Not eklemek için Düzenle'ye tıklayın.`},files:{title:`Dosyalar`,linkFolders:`Dosya Yöneticisinden klasörleri bağla`,forQuickAccess:`hızlı erişim için bu projeye.`,fileCount:`{{count}} dosya`,empty:`Bağlı klasör yok. Dosya Yöneticisine gidin ve bu projeye bir klasör bağlayın.`,printedCount:`{{count}} kez yazdırıldı`,progressTooltip:`{{target}} yazdırmadan {{done}} tanesi tamamlandı`,noFiles:`Bu klasörde dosya yok.`},bom:{title:`Malzeme Listesi`,acquired:`{{completed}}/{{total}} edinildi`,showAll:`Tümünü göster`,hideDone:`Tamamlananları gizle`,addPart:`Parça Ekle`,noAddPermission:`Parça ekleme izniniz yok`,partNamePlaceholder:`Parça adı (örn., M3x8 vidalar)`,partName:`Parça adı`,qty:`Adet`,price:`Fiyat ({{currency}})`,sourcingUrlPlaceholder:`Kaynak URL'si (isteğe bağlı)`,remarksPlaceholder:`Notlar (isteğe bağlı)`,deletePart:`Parçayı Sil`,deleteConfirm:`"{{name}}" silmek istediğinizden emin misiniz?`,noUpdatePermission:`Parçaları güncelleme izniniz yok`,noEditPermission:`Parçaları düzenleme izniniz yok`,noDeletePermission:`Parçaları silme izniniz yok`,totalCost:`Toplam maliyet:`,empty:`Malzeme listesinde parça yok. Nelerin tedarik edilmesi gerektiğini takip etmek için donanım, elektronik veya diğer bileşenler ekleyin.`},timeline:{title:`Etkinlik Zaman Çizelgesi`,empty:`Henüz etkinlik yok.`},template:{saveAsTemplate:`Şablon Olarak Kaydet`,noCreatePermission:`Şablon oluşturma izniniz yok`},queue:{title:`Kuyruk`,viewAll:`Tümünü görüntüle`,printing:`{{count}} yazdırılıyor`,queued:`{{count}} kuyrukta`},prints:{title:`Baskılar ({{count}})`},toast:{projectUpdated:`Proje güncellendi`,partAdded:`Parça eklendi`,partRemoved:`Parça kaldırıldı`,exportFailed:`Dışa aktarma başarısız`,projectExported:`Proje dışa aktarıldı`,templateCreated:`Şablon oluşturuldu`}},system:{title:`Sistem Bilgisi`,version:`Sürüm`,uptime:`Çalışma Süresi`,cpuUsage:`CPU Kullanımı`,memoryUsage:`Bellek Kullanımı`,diskUsage:`Disk Kullanımı`,networkInfo:`Ağ Bilgisi`,logs:`Günlükler`,debugMode:`Hata Ayıklama Modu`,enableDebug:`Hata Ayıklama Kaydını Etkinleştir`,disableDebug:`Hata Ayıklama Kaydını Devre Dışı Bırak`,downloadLogs:`Günlükleri İndir`,clearLogs:`Günlükleri Temizle`,dockerInfo:`Docker Bilgisi`,containerName:`Konteyner Adı`,imageName:`İmaj Adı`,platform:`Platform`,architecture:`Mimari`},sponsors:{sectionTitle:`Bağımsız ve topluluk destekli`,tagline:`Bambuddy ücretsizdir ve böyle kalır çünkü insanlar onu desteklemeyi seçer. VC yok, bulut bağımlılığı yok.`,viewSupporters:`Destekçileri görüntüle`,toastPrints:`Bambuddy ile {{count}} baskı tamamladın. Bambuddy, destekçileri sayesinde ücretsiz kalıyor.`,toastCost:`Bambuddy ile {{total}} kadar filament takip ettin. Projeyi bağımsız tutanları gör.`,toastArchives:`{{count}} baskı Bambuddy ile arşivlendi. Bağımsız kalmasını sağlayanları gör.`,toastAnniversary:`Bambuddy ile bir yılı doldurdun! Projeyi bağımsız tutanları gör.`,toastVersionUpdate:`v{{version}} sürümüne güncellendi. Bambuddy, destekçileri sayesinde ücretsiz kalıyor.`,toastBusiness:`Bambuddy'yi {{count}} yazıcıda mı çalıştırıyorsunuz? Ekipler için bir destek planı var: öncelikli düzeltmeler, faturalandırma ve geliştiriciye doğrudan erişim.`,businessCta:`Kurumsal Bambuddy`,businessTitle:`Kurumsal Bambuddy`,businessTagline:`{{count}} yazıcı çalıştırıyorsunuz. Ekipler ve baskı çiftlikleri için öncelikli destek, ticari lisanslama ve faturalandırma mevcut.`},library:{title:`Filament Kütüphanesi`,addFilament:`Filament Ekle`,editFilament:`Filamenti Düzenle`,deleteFilament:`Filamenti Sil`,vendor:`Satıcı`,material:`Malzeme`,color:`Renk`,kFactor:`K Faktörü`,temperature:`Sıcaklık`,noFilaments:`Kütüphanede filament yok`,deleteConfirm:`Bu filamenti silmek istediğinizden emin misiniz?`,importFromPrinter:`Yazıcıdan İçe Aktar`,exportToFile:`Dosyaya Dışa Aktar`,runWithPipeline:{actionLabel:`Pipeline ile çalıştır`,noPermission:`Pipeline çalıştırma izniniz yok`,modalTitle:`Pipeline ile çalıştır`,confirmTitle:`Çalıştırmayı onayla`,confirmIntro:`Ön kontrol bu çalıştırmayla ilgili sorunlar buldu`,sourceHint:`Kaynak`,pipelineHint:`Pipeline`,targetHint:`Hedef`,pipelineListAria:`Kullanılabilir pipeline'lar`,runAnyway:`Yine de çalıştır`,loading:`Yükleniyor…`,empty:`Henüz kayıtlı pipeline yok. Dilimleme diyalogunu açın ve oluşturmak için "Pipeline olarak kaydet"e tıklayın.`,noTarget:`Hedef yazıcı belirlenmemiş`,noTargetMessage:`Bu pipeline'ın hedef yazıcısı yok. Birini seçmek için Ayarlar'da açın.`,copies:`Kopyalar`,copiesHint:`maks {{n}}`,classTarget:`Herhangi {{model}}`,toast:{started:`Pipeline çalıştırması başladı`,failed:`Çalıştırma başlatılamadı`},issue:{printerNotSet:`Bu pipeline'da hedef yazıcı belirlenmemiş.`,printerNotFound:`Hedef yazıcı artık mevcut değil.`,printerDisabled:`Hedef yazıcı devre dışı.`,printerOffline:`Hedef yazıcı çevrimdışı.`,filamentType:`Filament yuvası {{slot}}: beklenen {{expected}}, AMS'de {{actual}}`,filamentColor:`Filament yuvası {{slot}}: renk farklı (beklenen {{expected}}, AMS'de {{actual}})`,amsSlotMissing:`AMS yuvası {{slot}} bu yazıcıda yok`,filamentUnverified:`Filament yuvası {{slot}} bulut / standart ön ayardan geldiği için statik olarak doğrulanamadı.`,noClassMatches:`Bu kurulumda pipeline'ın hedef model sınıfıyla ({{expected}}) eşleşen yazıcı yok.`,classNotSet:`Pipeline hedefi yazıcı sınıfı olarak ayarlanmış ancak model seçilmemiş.`}}},slice:{title:`Modeli dilimle`,action:`Dilimle`,actionAll:`Tüm {{count}} plakayı dilimle`,actionAllTitle:`Her plakayı tek bir çok plakalı çıktıya dilimle (tek arşiv). Filament seçimi projenin tanımladığı her yuvayı kapsar.`,allPlatesToggle:`Tüm {{count}} plakayı dilimle`,slicing:`Dilimleniyor…`,printer:`Yazıcı profili`,process:`İşlem profili`,filament:`Filament profili`,filamentSlot:`Filament {{index}} ({{type}})`,selectPreset:`— Bir ön ayar seçin —`,loadingPresets:`Ön ayarlar yükleniyor…`,analyzingPlateFilaments:`Plaka filamentleri analiz ediliyor…`,analyzingPlateFilamentsHint:`Bu plakanın hangi AMS yuvalarını kullandığını keşfetmek için bir önizleme dilimleme çalıştırılıyor. Sonradan önbelleğe alınır — yeniden açma anlıktır.`,previewToast:`{{name}} analiz ediliyor — {{elapsed}}`,previewWithProgress:`{{name}} analiz ediliyor — {{stage}} (%{{percent}}) — {{elapsed}}`,notUsedByPlate:`— bu plaka tarafından kullanılmıyor`,noPresetsForSlot:`Kullanılabilir ön ayar yok`,otherPrinters:`Diğer yazıcılar`,presetsLoadFailed:`Ön ayarlar yüklenemedi. Önce içe aktarmak için Ayarlar → Profiller'i açın.`,refreshPresets:`Yenile`,refreshPresetsTitle:`Ön ayarları yenile — en güncel bulut ve paketli listeleri getir (Bambu Studio veya Bambu Handy'de bir ön ayar sildikten sonra kullanın)`,allPresetsRequired:`Tüm ön ayarlar seçilmelidir`,useEmbedded:`Dosyanın yerleşik ayarlarını kullan`,useEmbeddedHint:`Yukarıdaki profiller yerine tasarımcının ayarladığı gibi (duvarlar, dolgu, filament) dilimle. Yazıcınız dosyayla eşleştiği için sunuluyor.`,designSettings:`Tasarımcının ayarlarını koru`,designSettingsHint:`Bu dosya standart profile göre {{count}} baskı ayarını değiştiriyor.`,designSettingsSelected:`{{total}} ayardan {{selected}} tanesi seçili`,designSettingsPrinterCoupled:`yazıcıya özel`,designSettingsPrinterCoupledHint:`Dosyanın tasarlandığı yazıcıya göre ayarlanmış — sizinkinde yanlış veya aralık dışı olabilir.`,enqueuing:`Dilimleme işi gönderiliyor…`,queued:`Kuyrukta…`,failed:`Dilimleme başarısız. Dilimleyici yardımcı bileşen günlüklerini kontrol edin.`,startedToast:`{{name}} arka planda dilimleniyor…`,queuedToast:`Kuyrukta: {{name}} — {{elapsed}}`,runningToast:`{{name}} dilimleniyor — {{elapsed}}`,runningWithProgress:`{{name}} — {{stage}} (%{{percent}}) — {{elapsed}}`,runningWithProgressMultiPlate:`{{plateCount}}/{{plateIndex}} plaka • {{name}} — {{stage}} (%{{percent}}) — {{elapsed}}`,completedToast:`{{name}} dilimlendi`,failedTitle:`Dilimleme başarısız`,failedToast:`{{name}} dilimleme başarısız: {{detail}}`,tier:{local:`İçe aktarılmış`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`Standart`},cloud:{notAuthenticated:`Bulut ön ayarlarınızı görmek için Bambu Cloud'a giriş yapın (Ayarlar → Profiller → Bambu Cloud).`,expired:`Bambu Cloud oturumu süresi doldu — bulut ön ayarlarınızı yenilemek için tekrar giriş yapın.`,unreachable:`Bambu Cloud şu anda erişilemez. Yerel ve standart ön ayarlar hâlâ çalışıyor.`},orcaCloud:{notAuthenticated:`Orca ön ayarlarınızı görmek için Orca Cloud'a giriş yapın (Profiller → Orca Cloud).`,expired:`Orca Cloud oturumu sona erdi — Orca ön ayarlarınızı yenilemek için tekrar giriş yapın.`,unreachable:`Orca Cloud şu anda erişilemez. Diğer ön ayarlar çalışmaya devam ediyor.`},bedType:{label:`Baskı plakası`,auto:`Otomatik (işlem ön ayarı kullan)`,coolPlate:`Soğuk Plaka`,coolPlateSuperTack:`Soğuk Plaka SuperTack`,engineering:`Mühendislik Plakası`,highTemp:`Yüksek Sıcaklık Plakası`,texturedPEI:`Dokulu PEI Plakası`,smoothPEI:`Düz PEI Plakası`},pipelines:{label:`Pipeline`,applyAria:`Pipeline uygula`,applyPrompt:`Pipeline uygula…`,empty:`Kayıtlı pipeline yok`,saveButton:`Pipeline olarak kaydet`,saveTitle:`Dört slotluk mevcut seçimi yeniden kullanılabilir pipeline olarak kaydet`,namePlaceholder:`Pipeline adı`,nameAria:`Yeni pipeline adı`,toast:{applied:`"{{name}}" uygulandı`,saved:`Pipeline kaydedildi`,saveFailed:`Kaydetme başarısız`}}},spoolman:{title:`Spoolman Entegrasyonu`,enabled:`Spoolman Etkin`,url:`Spoolman URL`,connected:`Bağlı`,disconnected:`Bağlı Değil`,testConnection:`Bağlantıyı Test Et`,sync:`Senkronize Et`,syncing:`Senkronize ediliyor...`,lastSync:`Son Senkronizasyon`,linkToSpoolman:`Spoolman'a Bağla`,openInSpoolman:`Spoolman'da Aç`,unlinkSpool:`Makara Bağlantısını Kaldır`,unlinkConfirmTitle:`Makara Atamasını Kaldır?`,unlinkConfirmMessage:`Bu, makarayı bu yuvadan kaldıracak. Makara verisinin kendisi değişmeyecek.`,selectSpool:`Makara Seç`,noUnlinkedSpools:`Atanmamış makara yok`,linkSuccess:`Makara başarıyla atandı`,linkFailed:`Makara atanamadı`,unlinkSuccess:`Makara ataması başarıyla kaldırıldı`,unlinkFailed:`Makara ataması kaldırılamadı`,linkedSpool:`Atanan makara`,spoolId:`Makara ID`,fillSourceLabel:`(Spoolman)`,weight:`Ağırlık`,remaining:`Kalan`,disableWeightSync:`AMS Tahmini Ağırlık Senkronizasyonunu Devre Dışı Bırak`,disableWeightSyncDesc:`AMS tahminlerinden kalan kapasiteyi güncelleme. AMS yüzde tabanlı tahminler yerine Spoolman'ın kullanım takibini tercih ediyorsanız bunu kullanın. Yeni makaralar yine de başlangıç ağırlığı olarak AMS tahminini kullanacak.`,reportPartialUsage:`Başarısız Baskılar için Kısmi Kullanımı Bildir`,reportPartialUsageDesc:`Bir baskı başarısız olduğunda veya iptal edildiğinde, katman ilerlemesine göre o noktaya kadar kullanılan tahmini filamenti bildir.`},locations:{title:`Depolama Konumları`,subtitle:`Makaralarınız için raf, çekmece ve diğer fiziksel depolama yerlerini yönetin`,add:`Konum Ekle`,addShort:`Ekle`,edit:`Konumu Düzenle`,name:`Ad`,spools:`Makaralar`,empty:`Henüz depolama konumu yok. İlk rafınızı veya çekmecenizi oluşturun.`,manage:`Konumlar`,createPlaceholder:`örn. Raf A, Çekmece 1`,nameRequired:`Konum adı zorunludur`,created:`Konum oluşturuldu`,updated:`Konum güncellendi`,deleted:`Konum silindi`,saveFailed:`Konum kaydedilemedi`,deleteFailed:`Konum silinemedi`,deleteBlocked:`Silmeden önce bu konumdaki tüm makaraları taşıyın`,confirmDelete:`"{{name}}" silinsin mi?`,confirmDeleteMessage:`Bu konum kataloğdan kaldırılacak. Önce makaralar taşınmalıdır.`},inventory:{title:`Makara Envanteri`,subtitle:`Makaralarınızı yönetin`,addToInventory:`Envantere Ekle`,addToInventoryPending:`Ekleniyor...`,addToInventorySuccess:`Makara envantere eklendi`,addToInventoryFailed:`Makara envantere eklenemedi`,unknownSpoolTitle:`Yeni filament algılandı`,unknownSpoolMessage:`{{location}} konumunda bilinmeyen RFID etiketli bir makara algılandı. Şimdi envantere eklensin mi?`,unknownSpoolSlot:`Yuva`,bulk:{selectAllVisible:`Görünenleri seç`,selectRow:`Satırı seç`,selectGroup:`Grubu seç`,selectionCount:`{{count}} seçildi`,edit:`Düzenle`,printLabels:`Etiket yazdır`,resetUsage:`Kullanımı sıfırla`,restore:`Geri yükle`,archive:`Arşivle`,delete:`Sil`,clearSelection:`Seçimi temizle`,editTitle:`Makaraları toplu düzenle`,editSubtitle:`Seçilen {{count}} makaraya uygulanır. Yalnızca işaretlediğiniz alanlar güncellenir.`,editHint:`Bir alana yazmak onu güncelleme için işaretler — yalnızca işaretli satırlar gönderilir. Boş bırakılan alanlar makaraları değiştirmez (alanları boşaltmak yalnızca makara bazında yapılabilir).`,useCustom:`"{{value}}" kullan`,toggleField:`Bu alanın güncellenmesini değiştir`,changeCount:`{{count}} alan güncellenecek.`,applyPending:`Uygulanıyor...`,applyButton:`{{count}} makaraya uygula`,deleteTitle:`Seçili makaraları sil`,archiveTitle:`Seçili makaraları arşivle`,restoreTitle:`Seçili makaraları geri yükle`,resetUsageTitle:`Seçili makaraların kullanımını sıfırla`,deleteMessage:`{{count}} makara kalıcı olarak silinsin mi? Bu işlem geri alınamaz.`,archiveMessage:`{{count}} makara arşivlensin mi? Daha sonra geri yüklenebilir.`,restoreMessage:`{{count}} arşivlenmiş makara geri yüklensin mi?`,resetUsageMessage:`{{count}} makaranın "Toplam Tüketim" sayacı sıfırlansın mı? Kalan ağırlık korunur.`,updateSuccess:`{{count}} makara güncellendi`,updateFailed:`Toplu güncelleme başarısız`,updatePartial:`{{ok}} makara güncellendi, {{failed}} başarısız`,updateAllFailed:`{{count}} güncellemenin tümü başarısız oldu — yeniden denemek için seçim korundu`,deleteSuccess:`{{count}} makara silindi`,deleteFailed:`Toplu silme başarısız`,deletePartial:`{{ok}} makara silindi, {{failed}} başarısız`,deleteAllFailed:`{{count}} silmenin tümü başarısız oldu — yeniden denemek için seçim korundu`,archiveSuccess:`{{count}} makara arşivlendi`,archiveFailed:`Toplu arşivleme başarısız`,archivePartial:`{{ok}} makara arşivlendi, {{failed}} başarısız`,archiveAllFailed:`{{count}} arşivlemenin tümü başarısız oldu — yeniden denemek için seçim korundu`,restoreSuccess:`{{count}} makara geri yüklendi`,restoreFailed:`Toplu geri yükleme başarısız`,restorePartial:`{{ok}} makara geri yüklendi, {{failed}} başarısız`,restoreAllFailed:`{{count}} geri yüklemenin tümü başarısız oldu — yeniden denemek için seçim korundu`,invalidHex:`6 hex karakter (RRGGBB) veya 8 (RRGGBBAA) girin. Aksi takdirde alan uygulanmaz.`},spoolmanMixedContentTitle:`Spoolman HTTPS üzerinden yüklenemiyor — tarayıcınız tarafından karışık içerik engellendi`,spoolmanMixedContentBody:`Bambuddy HTTPS üzerinden sunuluyor (ters proxy'niz aracılığıyla), ancak Spoolman URL'niz hâlâ düz HTTP. Tarayıcılar güvenlik için karışık içeriği engeller, bu nedenle gömülü Spoolman arayüzü oluşturulamaz. Bunun çalışması için Spoolman'in HTTPS üzerinden erişilebilir olması gerekiyor.`,spoolmanMixedContentFixReverseProxy:`Spoolman'i Bambuddy ile aynı ters proxy'nin (Traefik / Nginx / Caddy) arkasına HTTPS ile koyun, ardından Ayarlardaki Spoolman URL'sini yeni HTTPS adresine güncelleyin.`,spoolmanMixedContentFixOpenNewTab:`Geçici bir çözüm olarak, Spoolman'i HTTP üzerinden yeni bir tarayıcı sekmesinde açın — karışık içerik kuralları yalnızca gömülü çerçevelere uygulanır, bu nedenle bağımsız bir sekme yine çalışır.`,spoolmanOpenInNewTab:`Spoolman'i yeni sekmede aç`,labels:{title:`Makara etiketleri yazdır`,selectedCount:`{{count}} seçildi`,pickSpools:`Hangi makaralar için etiket yazdırılacağını seçin:`,monochrome:`Tek renk (siyah beyaz yazıcı)`,monochromeHint:`Renk örneğini kaldırır ve metni genişletir`,searchPlaceholder:`Ad, marka veya #ID ara`,filterByMaterial:`Malzeme:`,allMaterials:`Tümü`,selectVisible:`Görünen tümünü seç ({{count}})`,deselectVisible:`Görünenleri seçimden kaldır`,clearAll:`Tümünü temizle`,noSpoolsToShow:`Gösterilecek makara yok. Filtrenizi ayarlayın ve tekrar deneyin.`,noMatches:`Mevcut arama veya filtreyle eşleşen makara yok.`,printOne:`Bu makara için etiket yazdır`,printLabels:`Etiketleri yazdır…`,bulkTitle:`Şu anda gösterilen {{count}} makaradan etiket yazdırılacak olanları seçin`,noSpoolsTitle:`Etiketlenecek makara yok`,error:`Etiketler oluşturulamadı: {{msg}}`,sortBy:{label:`Sırala:`,id:`ID'ye göre`,color:`Renge göre`},templates:{amsHolderSmall:{label:`AMS tutucu — küçük (74 × 33 mm)`,hint:`Sayfa başına tek etiket; MakerWorld model 752566 (AMS Filament Etiket Tutucu) yazdırılabilir etiketle eşleşir.`},amsHolderLarge:{label:`AMS tutucu — büyük (75 × 55 mm)`,hint:`Sayfa başına tek etiket; AMS Filament Etiket Tutucu'nun karton uçlu varyantına uyar. Numune, marka, malzeme, ID ve QR kod için yeterli yer.`},box40x30:{label:`Kutu etiketi (40 × 30 mm)`,hint:`Sayfa başına tek etiket; yaygın DK/Brother rulo boyutu, filament torbası ve depolama kutusu etiketleri için iyi.`},box:{label:`Kutu etiketi (62 × 29 mm)`,hint:`Sayfa başına tek etiket; Brother PT/QL ve Dymo küçük etiketleri için boyutlandırılmış.`},averyL7160:{label:`Avery L7160 — A4 sayfa (38.1 × 63.5 mm × 21)`,hint:`AB sayfa stoğu; A4 sayfa başına 21 etiket.`},avery5160:{label:`Avery 5160 — US Letter sayfa (25.4 × 66.7 mm × 30)`,hint:`ABD sayfa stoğu; Letter sayfası başına 30 etiket.`}}},csv:{importButton:`CSV İçe Aktar`,exportButton:`CSV Dışa Aktar`,modalTitle:`CSV'den makara içe aktar`,selectFile:`Bir CSV dosyası seçin veya buraya sürükleyin`,dragHint:`Başlık: material (zorunlu), brand, subtype, color_name, rgba, …`,parsing:`Dosya okunuyor…`,previewError:`CSV dosyası okunamadı`,validCount:`{{count}} geçerli`,errorCount:`{{count}} hatalı`,skippedCount:`{{count}} atlandı`,colRow:`Satır`,colStatus:`Durum`,colColor:`Renk`,colorResolved:`Renk katalogdan dolduruldu`,colorCrossMaterial:`Renk farklı bir malzemeden alındı — katalogda tam eşleşme yok`,duplicateExisting:`Bu malzeme, marka ve renkte bir makara zaten var — yine de yeni makara olarak içe aktarılacak`,spoolmanHint:`Spoolman modunda Spoolman'ın yerleşik CSV içe/dışa aktarımını kullanın.`,importValidRows:`{{count}} geçerli satırı içe aktar`,noValidRows:`Geçerli satır yok`,importing:`İçe aktarılıyor…`,importSuccess:`{{count}} makara içe aktarıldı`,importError:`İçe aktarma başarısız`,exportError:`Dışa aktarma başarısız`},addSpool:`Makara Ekle`,editSpool:`Makarayı Düzenle`,copySpool:`Makarayı Kopyala`,material:`Malzeme`,selectMaterial:`Malzeme seç...`,subtype:`Alt tür`,brand:`Marka`,searchBrand:`Marka ara...`,useCustomBrand:`"{{brand}}" kullan`,useCustomMaterial:`Özel malzeme kullan: {{material}}`,suggestedOptions:`Önerilen`,allOptions:`Tümü`,colorName:`Renk Adı`,colorNamePlaceholder:`Yeşim Beyazı, Ateş Kırmızısı...`,color:`Renk`,hexColor:`Hex Renk`,pickColor:`Özel renk seç`,labelWeight:`Etiket Ağırlığı`,coreWeight:`Boş Makara Ağırlığı`,searchSpoolWeight:`Makara ağırlığı ara...`,weightUsed:`Kullanılan`,currentWeight:`Kalan Ağırlık`,measuredWeight:`Ölçülen Ağırlık`,spoolName:`Makara`,costPerKg:`kg başına maliyet`,storageLocation:`Depolama Konumu`,storageLocationPlaceholder:`örn. Raf A, Çekmece 1`,openInInventory:`Envanterde Aç`,measuredWeightError:`Ölçülen ağırlık {{min}}g ile {{max}}g arasında olmalı.`,slicerFilament:`Dilimleyici Filamenti`,slicerFilamentName:`Dilimleyici Ön Ayar Adı`,slicerPreset:`Dilimleyici Ön Ayarı`,searchPresets:`Filament ön ayarlarında ara...`,selectedPreset:`Seçildi`,noPresetsFound:`Ön ayar bulunamadı`,tempOverrides:`Sıcaklık Geçersiz Kılmaları`,note:`Not`,notePlaceholder:`Bu makara hakkında ek notlar...`,category:`Kategori`,categoryPlaceholder:`örn. Üretim, Prototip, Müşteri A`,categoryNone:`Kategorisiz`,storageLocationNone:`Konum ayarlanmamış`,lowStockThresholdOverride:`Düşük stok eşiği (bu makara)`,lowStockThresholdOverrideHelp:`Global eşiği kullanmak için boş bırakın (%{{global}}).`,clearRfid:`RFID Etiketini Temizle`,rfidCleared:`RFID etiketi temizlendi`,archive:`Arşivle`,restore:`Geri Yükle`,noSpools:`Henüz makara yok. Başlamak için ilk makaranızı ekleyin.`,noAvailableSpools:`Kullanılabilir makara yok. Envanterinize bir makara ekleyin veya önce başka bir yuvadan atamayı kaldırın.`,kProfiles:`K-Profilleri`,addKProfile:`K-Profili Ekle`,assignSpool:`Makara Ata`,unassignSpool:`Atamayı Kaldır`,assignSuccess:`Makara atandı ve AMS yuvası yapılandırıldı`,assignPendingInsert:`Atandı. Makarayı yerleştirdiğinizde yuva yapılandırılacak.`,assignFailed:`Makara atanamadı`,selectSpool:`Bu yuvaya atamak için bir makara seçin`,assigned:`Atandı`,assigning:`Atanıyor...`,searchSpools:`Makaralarda ara...`,showAllSpools:`Tüm makaraları göster`,spoolmanSpools:`Spoolman Makaraları`,allMaterials:`Tüm Malzemeler`,filterByBrand:`Markaya göre filtrele...`,showArchived:`Arşivlenmişleri göster`,quickAdd:`Hızlı Ekle (Stok)`,quantity:`Miktar`,stock:`Stok`,configured:`Yapılandırıldı`,spoolsCreated:`{{count}} makara oluşturuldu`,spoolsPartiallyCreated:`{{total}} makaradan {{created}} tanesi oluşturuldu (bazıları başarısız)`,spoolCreated:`Makara oluşturuldu`,spoolUpdated:`Makara güncellendi`,spoolDeleted:`Makara silindi`,deepLinkSpoolNotFound:`Makara bulunamadı`,deepLinkFetchFailed:`Makara yüklenemedi — tekrar deneyin`,spoolArchived:`Makara arşivlendi`,spoolRestored:`Makara geri yüklendi`,kProfileSaveFailed:`K-profili ayarları kaydedilemedi`,syncWeightSpoolNotFound:`Makara bulunamadı — silinmiş olabilir`,syncWeightSpoolmanUnreachable:`Spoolman'a erişilemiyor — daha sonra tekrar deneyin`,syncWeightFailed:`Ağırlık senkronize edilemedi`,spoolmanUnreachable:`Spoolman erişilebilir değil — lütfen daha sonra tekrar deneyin`,deleteSpoolNotFound:`Makara bulunamadı — zaten silinmiş olabilir`,deleteFailed:`Makara silinemedi`,archiveSpoolNotFound:`Makara bulunamadı — zaten silinmiş olabilir`,archiveFailed:`Makara arşivlenemedi`,restoreSpoolNotFound:`Makara bulunamadı — zaten silinmiş olabilir`,restoreFailed:`Makara geri yüklenemedi`,saveFailed:`Değişiklikler kaydedilemedi`,tagClearFailed:`Etiket temizlenemedi`,deleteConfirm:`Bu makarayı silmek istediğinizden emin misiniz? Bu geri alınamaz.`,archiveConfirm:`Bu makarayı arşivlemek istediğinizden emin misiniz?`,advancedSettings:`Gelişmiş Ayarlar`,filamentInfoTab:`Filament Bilgisi`,paProfileTab:`PA Profili`,filamentInfo:`Filament`,additional:`Ek`,loadingPresets:`Bulut ön ayarları yükleniyor...`,cloudConnected:`Bulut bağlı`,cloudNotConnected:`Bulut bağlı değil (varsayılanlar kullanılıyor)`,recentColors:`Son Kullanılan`,searchColors:`Renklerde ara...`,searchResults:`Arama sonuçları`,allColors:`Tüm renkler`,commonColors:`Yaygın renkler`,showLess:`Daha az göster`,showAll:`Tümünü göster`,noColorsFound:`Aramanızla eşleşen renk yok`,noResults:`Eşleşme bulunamadı`,extraColorsLabel:`Ekstra renkler`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`Virgülle ayrılmış 2 ile 8 arası hex durağı yapıştırın. Bir gradyan olarak görüntülenir.`,extraColorsInvalid:`Geçersiz hex yok sayıldı: {{tokens}}`,colorEffectLabel:`Efekt`,colorEffect:{none:`Yok`,sparkle:`Parıltı`,wood:`Ahşap`,marble:`Mermer`,glow:`Parlama`,matte:`Mat`,silk:`İpek`,galaxy:`Galaksi`,rainbow:`Gökkuşağı`,metal:`Metal`,translucent:`Yarı saydam`,gradient:`Gradyan`,dualColor:`Çift Renk`,triColor:`Üç Renk`,multicolor:`Çok Renkli`},selectMaterialFirst:`Lütfen önce Filament Bilgisi sekmesinde bir malzeme seçin.`,noPrintersConfigured:`Yapılandırılmış yazıcı yok. PA profillerini kullanmak için yazıcı ekleyin.`,matchingFilter:`Eşleşen`,anyBrand:`Herhangi marka`,anyVariant:`Herhangi varyant`,autoSelect:`Otomatik seç`,matches:`eşleşme`,match:`eşleşme`,noMatches:`Eşleşme yok`,connected:`Bağlı`,offline:`Çevrimdışı`,printerOffline:`Yazıcı çevrimdışı. Kalibrasyon profillerini görüntülemek için bağlanın.`,noKProfilesMatch:`Seçilen filamentle eşleşen K-profili yok.`,leftNozzle:`Sol Nozul`,rightNozzle:`Sağ Nozul`,profilesSelected:`kalibrasyon profili seçildi`,totalInventory:`Toplam Envanter`,totalConsumed:`Toplam Tüketim`,byMaterial:`Malzemeye Göre`,inPrinter:`Yazıcıda`,lowStock:`Düşük Stok`,sinceTracking:`Takip başladığından beri`,resetConsumedCounter:`Sayacı sıfırla`,resetConsumedCounterTooltip:`Bu makara için tüketilen gram sayacını sıfırla. Kalan ağırlık değişmez.`,resetConsumedCounterConfirm:`Bu makaranın tüketilen gram sayacı 0'a sıfırlansın mı? Gelecekteki baskılar sıfırdan tekrar takip edilecek. Makaranın kendisi, kalan ağırlık hesaplaması ve ayarlarınız değiştirilmez.`,resetAllConsumedCounters:`Tüm sayaçları sıfırla`,resetAllConsumedCountersTooltip:`Her makarada tüketilen gram sayacını sıfırla. Kalan ağırlıklar değişmez.`,resetAllConsumedCountersConfirm:`Tüm {{count}} makaradaki (arşivlenmişler dahil) tüketilen gram sayacı 0'a sıfırlansın mı? Bu, "Toplam Tüketim" istatistiğini temizler, böylece gelecekteki baskılar sıfırdan takip edilir. Makaralar ve kalan ağırlıklar değiştirilmez.`,consumedCounterReset:`Sayaç sıfırlandı`,allConsumedCountersReset:`{{count}} makaranın sayacı sıfırlandı`,resetConsumedCounterFailed:`Sayaç sıfırlanamadı`,loadedInAms:`AMS/Ext'te Yüklü`,remaining:`Kalan`,weightCheck:`Ağırlık Kontrolü`,lastWeighed:`Son tartım`,neverWeighed:`Hiç tartılmadı`,search:`Makaralarda ara...`,showing:`Gösterilen`,to:`-`,of:`/`,show:`Göster`,spools:`makara`,spool:`makara`,page:`Sayfa`,noSpoolsMatch:`Sonuç bulunamadı`,noSpoolsMatchDesc:`Aradığınızı bulmak için aramanızı veya filtrelerinizi ayarlamayı deneyin.`,active:`Aktif`,archived:`Arşivlendi`,all:`Tümü`,used:`Kullanılmış`,new:`Yeni`,clearFilters:`Filtreleri temizle`,table:`Tablo`,cards:`Kartlar`,net:`Net`,groupSimilar:`Grupla`,groupedSpools:`{{count}} aynı makara`,groupedRows:`satır`,columns:`Sütunlar`,configureColumns:`Sütunları Yapılandır`,configureColumnsDesc:`Sütunları yeniden sıralamak için sürükleyin veya okları kullanın. Göz simgesiyle görünürlüğü değiştirin.`,visible:`görünür`,reset:`Sıfırla`,cancel:`İptal`,applyChanges:`Değişiklikleri Uygula`,moveUp:`Yukarı taşı`,moveDown:`Aşağı taşı`,hideColumn:`Sütunu gizle`,showColumn:`Sütunu göster`,linkToSpool:`Makaraya Bağla`,tagLinked:`Etiket makaraya bağlandı`,tagLinkFailed:`Etiket bağlanamadı`,tagAlreadyLinked:`Etiket zaten başka bir makaraya bağlı`,unknownTag:`Bilinmeyen RFID etiketi algılandı`,usageHistory:`Kullanım Geçmişi`,noUsageHistory:`Henüz kullanım kaydedilmedi`,printName:`Baskı Adı`,weightConsumed:`Tüketilen Ağırlık`,clearHistory:`Temizle`,historyCleared:`Kullanım geçmişi temizlendi`,fillSourceLabel:`(Env)`,lowStockThresholdError:`Eşik 0.1 ile 99.9 arasında olmalı`,assignMismatchTitle:`Malzeme uyumsuzluğu`,assignMismatchMessage:`Seçilen makara malzemesi "{{spoolMaterial}}", {{location}} için tepsi malzemesi "{{trayMaterial}}" ile eşleşmiyor. Yine de atansın mı?`,assignMismatchConfirm:`Yine de Ata`,assignPartialMismatchMessage:`Makara malzemesi "{{spoolMaterial}}", {{location}} konumundaki "{{trayMaterial}}" ile benzer ancak tam olarak eşleşmiyor. Devam etmek istiyor musunuz?`,assignProfileMismatchMessage:`Makara profili "{{spoolProfile}}", {{location}} konumundaki tepsi profili "{{trayProfile}}" ile eşleşmiyor. Devam etmek istiyor musunuz?`,assignReconfigureNote:`AMS yuvası, makaranın profilini kullanacak şekilde yeniden yapılandırılacak.`,spoolmanFilamentCatalog:`Spoolman Filament Kataloğu`,pickFromSpoolmanCatalog:`Spoolman kataloğundan seç…`,spoolmanFilamentSelected:`Filament Spoolman kataloğundan seçildi`,spoolmanFilamentUnlinked:`Filament katalog bağlantısı temizlendi`,noSpoolmanFilaments:`Spoolman kataloğunda filament bulunamadı`,spoolmanFilamentColorSwatch:`Filament rengi`,spoolWeightManagedBySpoolman:`Boş makara ağırlığı Spoolman'de filament türü başına yönetilir`,spoolmanCatalogLoadFailed:`Spoolman filament kataloğu yüklenemedi`},timelapse:{title:`Zaman Atlamalı Video`,create:`Zaman Atlamalı Video Oluştur`,download:`İndir`,delete:`Sil`,preview:`Önizleme`,frameRate:`Kare Hızı`,quality:`Kalite`,processing:`İşleniyor...`,noTimelapses:`Kullanılabilir zaman atlamalı video yok`},ams:{title:`AMS`,slot:`Yuva`,empty:`Boş`,emptySlot:`Boş yuva`,slotEmpty:`Boş`,slotUnconfigured:`?`,emptySlotReset:`Atanmış filament yok`,unknown:`Bilinmiyor`,humidity:`Nem`,temperature:`Sıcaklık`,filamentType:`Filament Türü`,filamentColor:`Renk`,remaining:`Kalan`,history:`AMS Geçmişi`,noHistory:`Geçmiş mevcut değil`,configureSlot:`Yuvayı Yapılandır`,externalSpool:`Harici Makara`,profile:`Profil`,kFactor:`K Faktörü`,fill:`Doldur`,configure:`Yapılandır`,used:`kullanılan`,remainingUnit:`kalan`},printModal:{selectPrinter:`Yazıcı Seç`,selectPlate:`Plaka Seç`,filamentMapping:`Filament Eşlemesi`,plateN:`Plaka {{n}}`,plateFilamentsUnreadable:`Seçili bir plakanın filamentleri okunamadı, bu yüzden eşleştirilemiyor. Diğerlerini kuyruğa almak için o plakanın seçimini kaldırın.`,totalCost:`Toplam maliyet:`,slotRemainingShort:` - {{grams}}g kaldı`,printSettings:`Baskı Ayarları`,bedLeveling:`Tabla Seviyelendirme`,flowCalibration:`Akış Kalibrasyonu`,vibrationCalibration:`Titreşim Kalibrasyonu`,layerInspection:`İlk Katman Denetimi`,timelapse:`Zaman Atlamalı Video`,cancel:`İptal`,noPrintersAvailable:`Kullanılabilir yazıcı yok`,printerBusy:`Yazıcı meşgul`,printerOffline:`Yazıcı çevrimdışı`,sameTypeDifferentColor:`Aynı tür, farklı renk`,filamentTypeNotLoaded:`Filament türü yüklenmedi`,whenToPrint:`Ne zaman yazdırılsın`,asap:`En kısa sürede`,queue:`Kuyruk`,schedule:`Zamanla`,dateTime:`Tarih ve saat`,invalidDateTime:`Lütfen geçerli bir tarih ve saat girin`,openCalendar:`Takvimi aç`,requireManualStart:`Manuel başlatma gerektir`,requirePreviousSuccess:`Yalnızca önceki baskı başarılıysa başlat`,autoOffAfter:`Bittiğinde yazıcıyı kapat`,helpAsap:`Baskı kuyruğun en üstüne eklenir ve uygun bir yazıcı boştaysa başlar.`,helpSchedule:`Yazıcı boşta ise baskı zamanlanan saatte başlar. Meşgulse yazıcı uygun olana kadar bekler.`,helpQueue:`Baskı kuyruğun sonuna eklenir.`,leftNozzle:`S`,rightNozzle:`R`,leftNozzleTooltip:`Sol nozul`,rightNozzleTooltip:`Sağ nozul`,filamentOverride:`Filament Geçersiz Kılma`,filamentOverrideHint:`Model tabanlı atama için isteğe bağlı olarak filamentleri geçersiz kıl. Planlayıcı, orijinal 3MF değerleri yerine seçtiğiniz filamentlere göre eşleşecek.`,originalFilament:`Orijinal`,overrideWith:`Şununla geçersiz kıl`,resetToOriginal:`Orijinale sıfırla`,insufficientFilamentTitle:`Yeterli filament yok`,waitingForAmsStatus:`{{printer}} için AMS durumu bekleniyor…`,insufficientFilamentMessage:`Bazı atanmış makaralarda bu baskının ihtiyaç duyduğundan daha az filament kaldı:`,insufficientFilamentLine:`{{printer}} - {{slot}}: {{required}}g gerekli, {{remaining}}g kaldı`,printAnyway:`Yine de yazdır`,forceColorMatch:`Renk eşleşmesini zorla`,staggerPrinterStarts:`Yazıcı başlangıçlarını kademelendir`,staggerGroupSize:`Grup boyutu`,staggerInterval:`Aralık (dk)`,staggerPreview:`{{printers}} yazıcı → {{size}} kişilik {{groups}} grup, her {{interval}} dk'da bir başlatılıyor`,staggerLastGroup:`son grup: {{count}}`,staggerTotal:`toplam: {{minutes}} dk`,staggerToPrinters:`{{count}} yazıcıya kademelendir`,gcodeInjection:`Otomatik baskı G-kodu enjekte et`},backup:{includesEncryptionKey:`Yerel yedekler, yedek ZIP'nin kendi içinde tamamlanmış olması için MFA şifreleme anahtarı dosyasını (DATA_DIR/.mfa_encryption_key) içerir. ZIP'yi hassas olarak değerlendirin — dosyaya sahip olan herkes içinde saklanan OIDC istemci gizli anahtarlarını ve TOTP gizli anahtarlarını çözebilir.`,title:`Yedekleme ve Geri Yükleme`,createBackup:`Yedek Oluştur`,restoreBackup:`Yedeği Geri Yükle`,restoreDescription:`Tüm verileri bir yedek dosyasından değiştir`,downloadBackup:`Yedeği İndir`,uploadBackup:`Yedek Yükle`,lastBackup:`Son Yedek`,autoBackup:`Otomatik Yedekleme`,backupNow:`Şimdi Yedekle`,restoreWarning:`Uyarı: Bir yedeği geri yüklemek tüm mevcut verilerin üzerine yazacak.`,includeArchives:`Arşivleri Dahil Et`,includeSettings:`Ayarları Dahil Et`,includeProfiles:`Profilleri Dahil Et`,backupSuccess:`Yedek başarıyla oluşturuldu`,restoreSuccess:`Yedek başarıyla geri yüklendi`,backupFailed:`Yedekleme başarısız`,restoreFailed:`Geri yükleme başarısız`,restoreNote:`Geri yükleme sırasında Sanal Yazıcı durdurulacak`,githubBackup:`Git Yedekleme`,enabled:`Etkin`,cloudLoginRequired:`Bambu Cloud girişi gerekli. GitHub yedeklemesini etkinleştirmek için Profiller → Bulut Profilleri altında giriş yapın.`,cloudLoginRequiredShort:`Bulut girişi gerekli`,githubDescription:`Yedekleme ve sürüm geçmişi için profillerinizi otomatik olarak özel bir GitHub deposuna senkronize et.`,repoIsPrivate:`Depo özel — yedeklemek için güvenli.`,repoIsPublicWarning:`Depo HERKESE AÇIK. Bambuddy yedekleri MQTT kimlik bilgilerini, Home Assistant belirteçlerini, Prometheus belirteçlerini, Bambu Cloud e-postanızı ve K-profilleri aracılığıyla yazıcı erişim kodlarını içerir. Sağlayıcınızın ayarlarında depoyu özel hale getirene kadar kaydetme engellenir.`,repoVisibilityUnknown:`Depo görünürlüğü belirlenemedi. Bambuddy, özel olarak onaylanmamış hiçbir şeye yedekleme yapmayı reddeder; kaydetme engellenecek.`,repositoryUrl:`Depo URL'si`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`Güvensiz HTTP'ye izin ver`,allowInsecureHttpHint:`TLS olmadan özel ağlarda kendi barındırılan örnekler için etkinleştir`,personalAccessToken:`Kişisel Erişim Belirteci`,tokenSaved:`(kaydedildi)`,enterNewToken:`Güncellemek için yeni belirteç girin`,tokenHint:`Contents okuma/yazma izni olan ayrıntılı belirteç`,branch:`Dal`,provider:`Git Sağlayıcısı`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`Yalnızca manuel`,hourly:`Saatlik`,daily:`Günlük`,weekly:`Haftalık`,includeInBackup:`Yedeğe dahil et`,kProfiles:`K-Profilleri`,kProfilesDescription:`Bağlı yazıcılardan basınç ilerleme kalibrasyonu`,noPrintersConnected:`Bağlı yazıcı yok`,printersConnected:`{{connected}}/{{total}} bağlı`,cloudProfiles:`Bulut Profilleri`,cloudProfilesDescription:`Bambu Cloud'dan filament, yazıcı ve işlem ön ayarları`,appSettings:`Uygulama Ayarları`,appSettingsDescription:`Bambuddy yapılandırması (tam veritabanı)`,spoolInventory:`Makara Envanteri`,spoolInventoryDescription:`Filament makaraları, kullanım geçmişi ve maliyet takibi`,printArchives:`Baskı Arşivleri`,printArchivesDescription:`Baskı geçmişi meta verileri (gcode/3MF dosyaları yok)`,lastBackupAt:`Son yedek:`,noBackupsYet:`Henüz yedek yok`,next:`Sonraki:`,startingBackup:`Yedekleme başlatılıyor...`,test:`Test`,enableBackup:`Yedeklemeyi Etkinleştir`,testConnection:`Bağlantıyı Test Et`,enterRepoUrl:`Depo URL'sini girin`,enterRepoAndToken:`Depo URL'si ve erişim belirteci girin`,repoRequired:`Depo URL'si gerekli`,tokenRequired:`Erişim belirteci gerekli`,githubBackupEnabled:`GitHub yedeklemesi etkinleştirildi`,tokenUpdated:`Belirteç güncellendi`,settingsSaved:`Ayarlar kaydedildi`,failedToSave:`Kaydedilemedi: {{message}}`,backupCompleteFiles:`Yedekleme tamamlandı - {{count}} dosya güncellendi`,backupSkippedNoChanges:`Yedekleme atlandı - değişiklik yok`,backupFailed2:`Yedekleme başarısız: {{message}}`,clearedLogs:`{{count}} günlük temizlendi`,failedToClearLogs:`Günlükler temizlenemedi: {{message}}`,history:`Geçmiş`,clear:`Temizle`,date:`Tarih`,status:`Durum`,commit:`Commit`,localBackup:`Yerel Yedekleme`,localBackupDescription:`Veritabanı, arşivler, yüklemeler ve tüm dosyalar dahil Bambuddy verilerinizin tam bir yedeğini oluşturun.`,downloadBackupLabel:`Yedeği İndir`,completeBackupZip:`Tam yedek: veritabanı + tüm dosyalar (ZIP)`,download:`İndir`,preparingBackup:`Yedek hazırlanıyor...`,creatingArchive:`Yedek arşivi oluşturuluyor... Büyük arşivler için bu biraz zaman alabilir.`,downloadingFile:`Yedek dosyası indiriliyor...`,backupDownloaded:`Yedek başarıyla indirildi`,failedToCreateBackup:`Yedek oluşturulamadı: {{message}}`,restore:`Geri Yükle`,restoreReplacesAll:`Geri yükleme tüm verilerin yerine geçer.`,restoreReplacesAllDetail:`Mevcut veritabanınız ve dosyalarınız tamamen değiştirilecek. Geri yüklemeden sonra yeniden başlatma gerekli.`,restoreConfirmTitle:`Yedeği Geri Yükle`,restoreConfirmMessage:`"{{filename}}" dosyasından geri yüklemek istediğinizden emin misiniz? Bu, mevcut veritabanınızı ve tüm dosyaları tamamen değiştirecek. Geri yüklemeden sonra uygulamanın yeniden başlatılması gerekecek.`,restoreConfirmButton:`Yedeği Geri Yükle`,uploadingFile:`Yedek dosyası yükleniyor...`,backupRestoredRestart:`Yedek geri yüklendi. Lütfen Bambuddy'yi yeniden başlatın.`,failedToRestore:`Yedek geri yüklenemedi. Lütfen dosya formatını kontrol edin.`,reloadNow:`Şimdi Yeniden Yükle`,creatingBackup:`Yedek Oluşturuluyor`,restoringBackup:`Yedek Geri Yükleniyor`,preparing:`Hazırlanıyor...`,processing:`İşleniyor...`,doNotClosePage:`Lütfen bu sayfayı kapatmayın veya başka bir yere gitmeyin. Büyük yedekler için bu işlem birkaç dakika sürebilir.`,restoring:`Geri yükleniyor...`,restoreComplete:`Geri Yükleme Tamamlandı`,restoreFailed2:`Geri Yükleme Başarısız`,importSettings:`Ayarları bir yedek dosyasından içe aktar`,pleaseWaitRestoring:`Verileriniz geri yüklenirken lütfen bekleyin`,selectBackupFile:`Yedek dosyası seçmek için tıklayın (.json veya .zip)`,duplicateHandling:`Yinelenen yönetiminin nasıl çalıştığı:`,matchPrinters:`Yazıcılar`,matchPrintersBy:`seri numarasına göre eşleşti`,matchSmartPlugs:`Akıllı Prizler`,matchSmartPlugsBy:`IP adresine göre eşleşti`,matchNotificationProviders:`Bildirim Sağlayıcıları`,matchNotificationProvidersBy:`ada göre eşleşti`,matchFilaments:`Filamentler`,matchFilamentsBy:`ad + tür + markaya göre eşleşti`,matchArchives:`Arşivler`,matchArchivesBy:`içerik hash'ine göre eşleşti (her zaman atlanır)`,matchPendingUploads:`Bekleyen Yüklemeler`,matchPendingUploadsBy:`dosya adına göre eşleşti`,matchSettingsTemplates:`Ayarlar ve Şablonlar`,matchSettingsTemplatesBy:`her zaman üzerine yazılır`,replaceExisting:`Mevcut veriyi değiştir`,keepExisting:`Mevcut veriyi koru`,overwriteDescription:`Zaten mevcut olan öğeleri yedek verisiyle üzerine yaz`,keepDescription:`Yalnızca zaten mevcut olmayan öğeleri geri yükle`,overwriteCaution:`Dikkat:`,overwriteWarning:`Üzerine yazma, mevcut yapılandırmalarınızı yedekten gelen verilerle değiştirecek. Güvenlik için yazıcı erişim kodları asla üzerine yazılmaz.`,cancel:`İptal`,processingBackup:`Yedek dosyası işleniyor...`,itemsRestored:`Geri Yüklenen Öğeler`,itemsSkipped:`Atlanan Öğeler`,restored:`Geri yüklendi`,skippedAlreadyExist:`Atlandı (zaten mevcut)`,filesCategory:`Dosyalar (3MF, küçük resimler, vb.)`,andMore:`...ve {{count}} daha`,newApiKeysGenerated:`Yeni API Anahtarları Oluşturuldu`,keysShownOnce:`Bu anahtarlar yalnızca bir kez gösterilir. Şimdi kopyalayın!`,copy:`Kopyala`,noDataFound:`Yedek dosyasında geri yüklenecek veri bulunamadı.`,close:`Kapat`,scheduledBackup:`Zamanlanmış Yedekler`,scheduledBackupDescription:`Zamanlamaya göre otomatik olarak yedek anlık görüntüleri oluşturun. Çıktı dizini bir NAS veya harici depolama alanına bağlanabilir.`,frequency:`Sıklık`,backupTime:`Saat`,retention:`Saklama`,retentionDescription:`Saklanacak yedek sayısı`,outputPath:`Çıktı Yolu`,outputPathPlaceholder:`Varsayılan: {{path}}`,outputPathDescription:`Varsayılan konum için boş bırakın`,runNow:`Şimdi Çalıştır`,backupFiles:`Yedek Dosyaları`,noScheduledBackups:`Henüz yedek yok`,deleteBackup:`Sil`,deleteBackupConfirm:`Bu yedek dosyası silinsin mi?`,backupRunning:`Yedekleme devam ediyor...`,scheduledBackupComplete:`Yedekleme başarıyla tamamlandı`,scheduledBackupFailed:`Yedekleme başarısız`,nextBackup:`Sonraki yedek`,backupSize:`Boyut`,localTimeHint:`Yerel saat ({{tz}})`,defaultPathLabel:`Varsayılan:`,pathCheck:{title:`Bambuddy bu dizine yazamıyor`,howToFix:`Nasıl düzeltilir:`,sandboxed:`Bambuddy servisi {{path}} dizinine yazamıyor. systemd birimi ProtectSystem=strict ile çalıştığı için kurulum, veri ve günlük dizinleri dışındaki her dizin servis açısından salt okunurdur - kendi kabuğunuzdan yazabildiğiniz bir dizin olsa bile.`,read_only:`{{path}} salt okunur bir dosya sisteminde.`,permission_denied:`Bambuddy'nin {{path}} dizinine yazma izni yok. Dizinin sahibini ve izinlerini kontrol edin.`,no_space:`{{path}} dizinini barındıran dosya sistemi dolu.`,not_a_directory:`{{path}} var ancak bir dizin değil.`,missing:`{{path}} yok ve oluşturulamadı.`,error:`Bambuddy {{path}} dizinine yazamıyor.`,ephemeralTitle:`Bu yedekler kapsayıcı yeniden oluşturulduğunda kaybolur`,container_ephemeral:`{{path}} ana makinede değil, Bambuddy kapsayıcısının içinde. Oraya yazılan yedekler kapsayıcı yeniden oluşturulduğunda kaybolur. Dizini ana makineden bağlayın:`},categories:{settings:`Ayarlar`,notification_providers:`Bildirim Sağlayıcıları`,notification_templates:`Bildirim Şablonları`,smart_plugs:`Akıllı Prizler`,printers:`Yazıcılar`,filaments:`Filamentler`,maintenance_types:`Bakım Türleri`,archives:`Arşivler`,projects:`Projeler`,pending_uploads:`Bekleyen Yüklemeler`,external_links:`Harici Bağlantılar`,api_keys:`API Anahtarları`}},tags:{title:`Etiketler`,addTag:`Etiket Ekle`,editTag:`Etiketi Düzenle`,deleteTag:`Etiketi Sil`,tagName:`Etiket Adı`,tagColor:`Etiket Rengi`,noTags:`Etiket yok`,deleteConfirm:`Bu etiketi silmek istediğinizden emin misiniz?`,manageTags:`Etiketleri Yönet`},uploadModal:{title:`3MF Dosyalarını Yükle`,dragDrop:`.3mf dosyalarını buraya sürükleyip bırakın`,or:`veya`,browseFiles:`Dosyalara Göz At`,extractionInfo:`Yazıcı modeli, 3MF dosya meta verilerinden otomatik olarak çıkarılacak.`,uploaded:`yüklendi`,failed:`başarısız`,uploading:`Yükleniyor...`,upload:`Yükle`,uploadFailed:`Yükleme başarısız`},editArchive:{title:`Arşivi Düzenle`,name:`Ad`,namePlaceholder:`Baskı adı`,printer:`Yazıcı`,noPrinter:`Yazıcı yok`,project:`Proje`,noProject:`Proje yok`,itemsPrinted:`Yazdırılan Öğeler`,itemsPrintedHelp:`Bu baskı işinde üretilen öğe sayısı`,notes:`Notlar`,notesPlaceholder:`Bu baskı hakkında notlar ekleyin...`,externalLink:`Harici Bağlantı`,externalLinkPlaceholder:`https://printables.com/model/...`,externalLinkHelp:`Printables, Thingiverse veya başka bir kaynağa bağlantı`,tags:`Etiketler`,tagsPlaceholder:`Etiketler ekle...`,addMoreTags:`Daha fazla etiket ekle...`,matchingTags:`"{{query}}" ile eşleşen`,existingTags:`Mevcut etiketler`,clickToAdd:`(eklemek için tıklayın)`,status:`Durum`,failureReason:`Başarısızlık Nedeni`,selectReason:`Neden seç...`,photos:`Yazdırılan Sonuç Fotoğrafları`,photosHelp:`Yazdırılan sonuçunuzun fotoğraflarını eklemek için + tıklayın`,printResult:`Baskı sonucu`,saving:`Kaydediliyor...`,failureReasons:{adhesionFailure:`Yapışma başarısız`,spaghettiDetached:`Spagetti / Ayrılmış`,layerShift:`Katman kayması`,cloggedNozzle:`Tıkalı nozul`,filamentRunout:`Filament bitti`,warping:`Bükülme`,stringing:`İplik oluşumu`,underExtrusion:`Az ekstrüzyon`,powerFailure:`Güç kesintisi`,userCancelled:`Kullanıcı iptal etti`,other:`Diğer`},statuses:{completed:`Tamamlandı`,failed:`Başarısız`,aborted:`İptal edildi`,printing:`Yazdırılıyor`}},kProfiles:{title:`K-Profilleri`,noPrintersConfigured:`Yapılandırılmış Yazıcı Yok`,addPrinterInSettings:`K-profillerini yönetmek için Ayarlarda bir yazıcı ekleyin`,noActivePrinters:`Aktif Yazıcı Yok`,enablePrinterConnection:`K-profillerini görüntülemek için bir yazıcı bağlantısını etkinleştirin`,loadingProfiles:`K-Profilleri yükleniyor...`,printerOffline:`Yazıcı Çevrimdışı`,printerOfflineDesc:`Seçilen yazıcı bağlı değil. K-profillerini görüntülemek için açın.`,noMatchingProfiles:`Eşleşen Profil Yok`,noMatchingProfilesDesc:`Arama kriterlerinizle eşleşen profil yok`,noKProfiles:`K-Profili Yok`,noKProfilesDesc:`{{diameter}}mm nozul için basınç ilerleme profili bulunamadı`,createFirstProfile:`İlk Profili Oluştur`,printer:`Yazıcı`,nozzle:`Nozul`,refresh:`Yenile`,addProfile:`Profil Ekle`,export:`Dışa Aktar`,import:`İçe Aktar`,select:`Seç`,selectAll:`Tümünü Seç`,delete:`Sil`,searchPlaceholder:`Ad veya filamente göre ara...`,allExtruders:`Tüm Ekstrüderler`,leftOnly:`Yalnızca Sol`,rightOnly:`Yalnızca Sağ`,allFlow:`Tüm Akış`,hfOnly:`Yalnızca HF`,sOnly:`Yalnızca S`,sortName:`Sırala: Ad`,sortKValue:`Sırala: K-Değeri`,sortFilament:`Sırala: Filament`,leftExtruder:`Sol Ekstrüder`,rightExtruder:`Sağ Ekstrüder`,modal:{addTitle:`K-Profili Ekle`,editTitle:`K-Profilini Düzenle`,profileName:`Profil Adı`,profileNamePlaceholder:`PLA Profilim`,kValue:`K-Değeri`,kValuePlaceholder:`0.020`,kValueHelp:`Tipik aralık: PLA için 0.01 - 0.06, PETG için 0.02 - 0.10`,filament:`Filament`,selectFilament:`Filament seç...`,noFilamentsHelp:`Filament bulunamadı. Önce Bambu Studio'da bir K-profili oluşturun.`,flowType:`Akış Türü`,highFlow:`Yüksek Akış`,standard:`Standart`,nozzleSize:`Nozul Boyutu`,extruder:`Ekstrüder`,extruders:`Ekstrüderler`,left:`Sol`,right:`Sağ`,notes:`Notlar (yerel olarak saklanır)`,notesPlaceholder:`Bu profil hakkında notlar ekleyin...`,notesHelp:`Notlar yazıcıda değil, Bambuddy'de kaydedilir`,syncing:`Yazıcıyla senkronize ediliyor...`,savingExtruder:`Ekstrüdere kaydediliyor {{current}}/{{total}}...`,pleaseWait:`Lütfen bekleyin`},deleteConfirm:{title:`Profili Sil`,cannotUndo:`Bu geri alınamaz`,message:`"{{name}}" yazıcıdan silmek istediğinizden emin misiniz?`},bulkDelete:{title:`Profilleri Sil`,cannotUndo:`Bu geri alınamaz`,message:`Yazıcıdan seçili {{count}} profili silmek istediğinizden emin misiniz?`},toast:{profileSaved:`K-profili kaydedildi`,profilesSaved:`{{count}} ekstrüdere K-profili kaydedildi`,selectAtLeastOneExtruder:`Lütfen en az bir ekstrüder seçin`,profileDeleted:`K-profili silindi`,profilesDeleted:`{{count}} profil silindi`,exportedProfiles:`{{count}} profil dışa aktarıldı`,importedProfiles:`{{total}} profilden {{count}} tanesi içe aktarıldı`,noProfilesToExport:`Dışa aktarılacak profil yok`,invalidFileFormat:`Geçersiz dosya formatı`,failedToParseImport:`İçe aktarma dosyası ayrıştırılamadı`,failedToSaveBatch:`K-profilleri kaydedilemedi`,noteSaved:`Not kaydedildi`,failedToSaveNote:`Not kaydedilemedi`},permission:{noRead:`Profilleri yenileme izniniz yok`,noCreate:`Profil ekleme izniniz yok`,noUpdate:`K-profillerini güncelleme izniniz yok`,noDelete:`K-profillerini silme izniniz yok`,noExport:`Profilleri dışa aktarma izniniz yok`,noImport:`Profilleri içe aktarma izniniz yok`}},virtualPrinter:{title:`Sanal Yazıcı`,running:`Çalışıyor`,stopped:`Durduruldu`,description:{default:`Bambu Studio ve OrcaSlicer'da görünen bir sanal yazıcı etkinleştirin. Bu yazıcıya gönderilen dosyalar yazdırılmadan doğrudan arşivlenecek.`,proxy:`Dilimleyici trafiğini gerçek bir yazıcıya ileten bir proxy etkinleştirin, böylece herhangi bir ağ üzerinden uzaktan baskı yapabilirsiniz.`},enable:{title:`Sanal Yazıcıyı Etkinleştir`,visibleInSlicer:`Dilimleyici keşfinde "Bambuddy" olarak görünür`,proxyingTo:`{{name}} cihazına proxy yapılıyor`,notActive:`Aktif değil`},model:{title:`Yazıcı Modeli`,description:`Öykünülecek yazıcı modelini seçin.`,restartWarning:`Modeli değiştirmek sanal yazıcıyı yeniden başlatacak`},accessCode:{title:`Erişim Kodu`,isSet:`Erişim kodu ayarlandı`,notSet:`Erişim kodu ayarlanmadı - etkinleştirmek için gerekli`,placeholder:`8 karakterli kodu girin`,placeholderChange:`Değiştirmek için yeni kodu girin`,hint:`Tam olarak 8 karakter olmalı. Dilimleyiciler tarafından kimlik doğrulama için kullanılır.`,charCount:`({{count}}/8)`,inheritedFromTarget:`Hedef yazıcıdan devralındı`,derivedFromTargetHint:`Hedef yazıcının erişim kodunu kullanır. Köprü, dilimleyicinin kimlik doğrulamasını gerçek yazıcıya iletir, bu nedenle kodlar eşleşmelidir — değiştirmek için yazıcının ayarlarında erişim kodunu düzenleyin.`,reveal:`Erişim kodunu göster`,hide:`Erişim kodunu gizle`},targetPrinter:{title:`Hedef Yazıcı`,configured:`Proxy hedefi yapılandırıldı`,notConfigured:`Hedef yazıcı seçilmedi - proxy modu için gerekli`,placeholder:`Bir yazıcı seçin...`,hint:`Dilimleyici trafiğine proxy yapmak için yazıcıyı seçin. Yazıcı LAN modunda olmalıdır.`,noPrinters:`Yapılandırılmış yazıcı yok. Proxy modunu kullanmak için önce bir yazıcı ekleyin.`},remoteInterface:{title:`Ağ Arayüzü Geçersiz Kılma`,configured:`Arayüz geçersiz kılma aktif`,optional:`İsteğe bağlı - otomatik algılanan IP yanlışsa kullanın (örn. birden fazla NIC, Docker, VPN)`,placeholder:`Otomatik algıla (varsayılan)...`,hint:`SSDP üzerinden tanıtılan ve TLS sertifikasında kullanılan IP adresini geçersiz kıl. Bambuddy birden fazla ağ arayüzüne sahip olduğunda kullanışlıdır.`},mode:{title:`Mod`,archive:`Arşiv`,archiveDesc:`Dosyaları hemen arşivle`,review:`İnceleme`,reviewDesc:`Arşivlemeden önce incele`,queue:`Kuyruk`,queueDesc:`Arşivle ve kuyruğa ekle`,proxy:`Proxy`,proxyDesc:`Gerçek yazıcıya ilet`},autoDispatch:{title:`Otomatik sevk`,description:`Kuyruğa eklendiğinde baskıları otomatik olarak başlat. Kapalıyken, baskılar manuel sevki bekler.`},queueForceColorMatch:{title:`Renk eşleşmesini zorla`,description:`Tam olarak doğru filament türü ve rengi yüklü olmayan bir yazıcıya sevk etmeyi reddet. Varsayılan olarak kapalı — bu olmadan kuyruk yalnızca model eşleşmesi kullanır ve yanlış renk yüklü bir yazıcı seçebilir.`},gcodeInjection:{title:`G-code enjeksiyonu`,description:`Ayarlar'da model bazında yapılandırılan G-code parçacıklarını bu VP'nin işlerine uygular. Varsayılan olarak kapalı.`},tailscaleDisabled:{title:`Tailscale entegrasyonu`,description:`Bu VP'yi Tailscale üzerinden açıkta olarak işaretlemek için etkinleştirin. Dilimleyiciye hangi IP'yi yapıştıracağınızı bilmeniz için ana bilgisayarın Tailscale adresini gösterir. CA içe aktarma adımı değişmedi — bu anahtarın sertifikalar üzerinde etkisi yoktur.`},setupRequired:{title:`Kurulum Gerekli`,description:`Sanal yazıcı özelliği çalışmadan önce ek sistem yapılandırması gerektirir. Bu, port yönlendirme, güvenlik duvarı kuralları ve platforma özgü ayarları içerir.`,readGuide:`Etkinleştirmeden önce kurulum kılavuzunu okuyun`},archiveNameSource:{title:`Arşiv ad kaynağı`,description:`Dosyalar sanal yazıcı aracılığıyla geldiğinde yeni arşivlerin nasıl adlandırılacağını seçin. "Meta veri" 3MF'den dilimleyici-gömülü başlığı kullanır (varsayılan). "Dosya adı" Bambu Studio'nun FTP üzerinden gönderdiği dosya adını kullanır. Not: Bambu Studio, 3MF'de bir Başlık alanı varsa "yazıcıya gönder" iletişim kutusunda yazdığınız adı bu alanla geçersiz kılar, bu nedenle her iki mod da genellikle aynı dizeyi üretir.`,metadata:`Meta veri`,filename:`Dosya adı`},caCert:{title:`Dilimleyici sertifikası`,description:`Sanal yazıcılar Bambuddy CA tarafından imzalanmış bir TLS sertifikası kullanır. Bağlantıyı kabul etmesi için bu CA sertifikasını dilimleyicinizin güven deposuna bir kez içe aktarın — komut satırından kopyalamaya gerek yok.`,copy:`Kopyala`,copied:`Kopyalandı`,download:`İndir`,fingerprint:`SHA-256`},howItWorks:{title:`Nasıl çalışır`,step1:`Aynı LAN'da, sanal yazıcılar dilimleyicinizde (Bambu Studio / OrcaSlicer) keşif yoluyla otomatik olarak görünür. Diğer ağlardan, IP adresi ve erişim koduyla manuel olarak ekleyin.`,step2:`3MF dosyalarını Bambuddy'ye yüklemek için Arşiv, İnceleme ve Kuyruk modlarında dilimleyicinizdeki "Gönder" düğmesini kullanın. Dilimleyici "Baskı başarılı" gösterecek — dosya saklanır, yazdırılmaz.`,step3:`Proxy modunda, sanal yazıcı tüm trafiği gerçek bir yazıcıya iletir — baskılar doğrudan bağlıymış gibi hemen başlar.`},status:{title:`Durum Ayrıntıları`,printerName:`Yazıcı Adı`,model:`Model`,serialNumber:`Seri Numarası`,mode:`Mod`,pendingFiles:`Bekleyen Dosyalar`,targetPrinter:`Hedef Yazıcı`,ftpPort:`FTP Portu`,mqttPort:`MQTT Portu`,ftpConnections:`FTP Bağlantıları`,mqttConnections:`MQTT Bağlantıları`},toast:{updated:`Sanal yazıcı ayarları güncellendi`,failedToUpdate:`Ayarlar güncellenemedi`,copyFailed:`Kopyalama başarısız — metni manuel olarak seçmeyi deneyin`,accessCodeRequired:`Lütfen önce bir erişim kodu ayarlayın`,targetPrinterRequired:`Lütfen önce bir hedef yazıcı seçin`,bindIpRequired:`Lütfen önce bir bind IP'si ayarlayın`,accessCodeEmpty:`Erişim kodu boş olamaz`,accessCodeLength:`Erişim kodu tam olarak 8 karakter olmalı`,targetCodeChangedRebind:`Erişim kodu artık yeni hedef yazıcıyla eşleşiyor. Yeni kodu almak için bu cihazı dilimleyicinizde yeniden ekleyin.`,created:`Sanal yazıcı oluşturuldu`,failedToCreate:`Sanal yazıcı oluşturulamadı`,deleted:`Sanal yazıcı silindi`,failedToDelete:`Sanal yazıcı silinemedi`},list:{title:`Sanal Yazıcılar`,add:`Ekle`,addFirst:`Sanal Yazıcı Ekle`,empty:`Yapılandırılmış sanal yazıcı yok. Başlamak için bir tane ekleyin.`},bindIp:{title:`Bind Arayüzü`,placeholder:`Arayüz seç...`,hint:`Bu sanal yazıcının bağlanacağı ağ arayüzü. Yazıcı başına benzersiz olmalıdır.`},proxy:{accessCodeHint:`Proxy modunda, dilimleyicide hedef yazıcınızın erişim kodunu kullanın. Bağlantı şeffaf olarak gerçek yazıcıya iletilir.`},addDialog:{title:`Sanal Yazıcı Ekle`,name:`Ad`,hint:`Oluşturduktan sonra erişim kodunu, hedef yazıcıyı ve diğer ayarları yapılandırabilirsiniz.`,create:`Oluştur`},deleteConfirm:{title:`Sanal Yazıcıyı Sil`,message:`"{{name}}" silmek istediğinizden emin misiniz? Bu, bu yazıcı için tüm servisleri durduracak.`}},modelViewer:{openInSlicer:`Dilimleyicide Aç`,tabs:{model:`3B Model`,gcode:`G-kod Önizleme`},notAvailable:`mevcut değil`,notSliced:`dilimlenmemiş`,plates:`Plakalar`,allPlates:`Tüm Plakalar`,plateNumber:`Plaka {{number}}`,plateCount:`{{count}} plaka`,plateCount_other:`{{count}} plaka`,objectCount:`{{count}} nesne`,objectCount_other:`{{count}} nesne`,filamentCount:`{{count}} filament`,filamentCount_other:`{{count}} filament`,eta:`ETA {{minutes}} dk`,noPreview:`Bu dosya için önizleme yok`,pagination:{pageOf:`{{total}} sayfadan {{current}} tanesi`,prev:`Önceki`,next:`Sonraki`},errors:{failedToLoad:`Dosya yüklenemedi`,noMeshes:`3MF dosyasında ağ bulunamadı`,unsupportedFormat:`Desteklenmeyen dosya formatı`}},maintenanceDescriptions:{lubricateCarbonRods:`Düzgün hareket için karbon çubuklara yağ uygula`,lubricateRails:`Düzgün hareket için lineer raylara yağ uygula`,cleanNozzle:`Tıkanmaları önlemek için hotend ve nozulu temizle`,checkBelts:`Doğru baskılar için kayış gerginliğini kontrol et`,cleanBuildPlate:`Daha iyi yapışma için baskı plakasını temizle`,checkExtruder:`Aşınma için ekstrüder dişlilerini inceleyin`,checkCooling:`Soğutma fanlarının düzgün çalıştığından emin ol`,generalInspection:`Genel yazıcı denetimi`,cleanCarbonRods:`Sürtünmeyi azaltmak için karbon çubukları temizle`,lubricateSteelRods:`Düzgün hareket için çelik çubuklara yağ uygula`,cleanSteelRods:`Sürtünmeyi azaltmak için çelik çubukları temizle`,cleanLinearRails:`Toz ve kalıntıları temizlemek için lineer rayları sil`,checkPtfeTube:`Aşınma veya hasar için PTFE tüpünü incele`,replaceHepaFilter:`Hava kalitesi için HEPA filtresini değiştir`,replaceCarbonFilter:`Aktif karbon filtresini değiştir`,lubricateLeftNozzleRail:`Sol nozul rayını yağla (H2 serisi)`},smartPlugs:{offline:`Çevrimdışı`,admin:`Yönetici`,openPlugAdminPage:`Priz yönetici sayfasını aç`,deleteSmartPlug:`Akıllı Prizi Sil`,turnOnSmartPlug:`Akıllı Prizi Aç`,turnOffSmartPlug:`Akıllı Prizi Kapat`,turnOn:`Aç`,turnOff:`Kapat`,addSmartPlug:{scanningNetwork:`Ağ taranıyor...`,chooseEntity:`Bir varlık seçin...`,connectionFailed:`Bağlantı başarısız`,searchEntities:`Varlıklarda ara...`,searchPowerSensors:`Güç sensörlerinde ara...`,searchEnergySensors:`Enerji sensörlerinde ara...`,placeholders:{plugName:`Oturma Odası Prizi`,mqttStateOnValue:`ON, true, 1`,mqttSameAsPower:`Güç konusuyla aynı veya farklı`}},linkedTo:`Bağlı:`,monitorOnly:`Yalnızca İzle`,alerts:`Uyarılar`,scheduleOn:`{{time}} Açık`,scheduleOff:`{{time}} Kapalı`,on:`Açık`,off:`Kapalı`,power:`Güç`,kwhToday:`Bugün kWh`,settings:`Ayarlar`,automationSettings:`Otomasyon Ayarları`,showInSwitchbar:`Anahtar Çubuğunda Göster`,quickAccessSidebar:`Kenar çubuğundan hızlı erişim`,enabled:`Etkin`,enableAutomation:`Bu priz için otomasyonu etkinleştir`,autoOn:`Otomatik Aç`,autoOnDescription:`Baskı başladığında aç`,autoOff:`Otomatik Kapat`,autoOffDescription:`Baskı tamamlandığında kapat (tek seferlik)`,autoOffPersistent:`Etkin Tut`,autoOffPersistentDescription:`Tek seferlik yerine baskılar arasında etkin kal`,controlsPrinterPower:`Yazıcıya güç veriyor`,controlsPrinterPowerDescription:`Bu priz yalnızca bir aksesuara (filtre fanı, aydınlatma) güç veriyorsa kapatın. Aksi halde prizi kapatmak yazıcıyı çevrimdışı olarak işaretler.`,autoOffAfterDrying:`Kurutmadan Sonra Otomatik Kapat`,autoOffAfterDryingDescription:`AMS kurutması tamamlandığında kapat`,delayAfterDryingMinutes:`Kurutma gecikmesi (dakika)`,turnOffDelayMode:`Kapatma Gecikme Modu`,time:`Süre`,temp:`Sıcaklık`,delayMinutes:`Gecikme (dakika)`,tempThreshold:`Sıcaklık eşiği (°C)`,tempThresholdDescription:`Nozul bu sıcaklığın altına soğuduğunda kapanır`,edit:`Düzenle`,deleteConfirm:`"{{name}}" silmek istediğinizden emin misiniz? Bu geri alınamaz.`,turnOnConfirm:`"{{name}}" açmak istediğinizden emin misiniz?`,turnOffConfirm:`"{{name}}" kapatmak istediğinizden emin misiniz? Bu, bağlı cihazın gücünü kesecek.`,failedToTurn:`"{{name}}" {{action}} başarısız`,unknown:`Bilinmiyor`,addTitle:`Akıllı Priz Ekle`,editTitle:`Akıllı Prizi Düzenle`,stopScanning:`Taramayı Durdur`,discoverTasmota:`Tasmota Cihazlarını Keşfet`,foundDevices:`{{count}} cihaz bulundu - seçmek için tıklayın:`,noDevicesFound:`Ağınızda Tasmota cihazı bulunamadı`,haNotConfigured:`Home Assistant yapılandırılmamış. Şuradan ayarlayın:`,haSettingsPath:`Ayarlar → Ağ → Home Assistant`,selectEntity:`Varlık Seç *`,ipAddress:`IP Adresi *`,nameLabel:`Ad *`,username:`Kullanıcı Adı`,password:`Parola`,authHint:`Tasmota cihazınız kimlik doğrulama gerektirmiyorsa boş bırakın`,linkToPrinter:`Yazıcıya Bağla`,noPrinter:`Yazıcı yok (yalnızca manuel kontrol)`,linkingDescription:`Bağlama, baskılar başladığında/tamamlandığında otomatik açma/kapamayı etkinleştirir`,powerAlerts:`Güç Uyarıları`,alertAbove:`Üstündeyse uyar (W)`,alertBelow:`Altındaysa uyar (W)`,alertDescription:`Güç tüketimi bu eşikleri geçtiğinde bildirim alın. O yönü devre dışı bırakmak için boş bırakın.`,dailySchedule:`Günlük Zamanlama`,turnOnAt:`Şu saatte aç`,turnOffAt:`Şu saatte kapat`,scheduleDescription:`Prizi günlük olarak bu saatlerde otomatik aç/kapat. O eylemi atlamak için boş bırakın.`,showOnPrinterCard:`Yazıcı Kartında Göster`,displayOnPrinterCard:`Yazıcı kartında düğme göster`,connectedResult:`Bağlandı!`,deviceLabel:`Cihaz: {{name}} - `,stateLabel:`Durum: {{state}}`,test:`Test`,delete:`Sil`,save:`Kaydet`,add:`Ekle`,cancel:`İptal`,failedToStartScan:`Tarama başlatılamadı`,nameRequired:`Ad gerekli`,entityRequired:`Home Assistant prizleri için varlık gerekli`,mqttTopicRequired:`Güç, enerji veya durum izleme için en az bir MQTT konusu yapılandırılmalı`,loadingEntities:`Varlıklar yükleniyor...`,loading:`Yükleniyor...`,failedToLoadEntities:`Varlıklar yüklenemedi: {{error}}`,noEntitiesMatching:`"{{search}}" ile eşleşen varlık bulunamadı`,noEntitiesAvailable:`Kullanılabilir varlık yok`,searchingEntities:`Tüm varlıklar aranıyor ({{count}} bulundu)`,showingEntities:`switch, light, input_boolean gösteriliyor ({{count}} mevcut)`,energyMonitoringOptional:`Enerji İzleme (İsteğe Bağlı)`,energyMonitoringHint:`Güç/enerji verisi sağlayan sensörleri arayın ve seçin.`,powerSensorW:`Güç Sensörü (W)`,energyTodayKwh:`Bugünkü Enerji (kWh)`,totalEnergyKwh:`Toplam Enerji (kWh)`,noMatchingSensors:`Eşleşen sensör yok`,none:`Hiçbiri`,mqttNotConfigured:`MQTT brokerı yapılandırılmamış. Şurada broker adresini ayarlayın:`,mqttSettingsPath:`Ayarlar → Ağ → MQTT Yayınlama`,mqttNotConfiguredSuffix:`(yayınlamayı etkinleştirmenize gerek yok, yalnızca broker ayrıntılarını doldurun).`,mqttMonitorOnlyDescription:`MQTT prizleri MQTT aboneliği aracılığıyla güç/enerji verisi alır. Açma/kapama kontrolü kullanılamaz - MQTT brokerınızı veya ev otomasyon sisteminizi kullanın.`,powerMonitoring:`Güç İzleme`,energyMonitoring:`Enerji İzleme`,stateMonitoring:`Durum İzleme`,optional:`isteğe bağlı`,topic:`Konu`,jsonPath:`JSON Yolu`,multiplier:`Çarpan`,onValue:`ON Değeri`,mqttPowerHint:`JSON yolu JSON yükten değer çıkarır (örn., "power_l1"). Konu ham sayısal değerler yayınlıyorsa boş bırakın.
+ON值:表示"ON"的確切字串。留空以自動檢測(ON、true、1)。`,restControl:`控制`,restOnUrl:`開啟 URL`,restOffUrl:`關閉 URL`,restOnBody:`開啟請求內容`,restOffBody:`關閉請求內容`,restMethod:`HTTP 方法`,restHeaders:`自訂標頭(JSON)`,restStatusUrl:`狀態 URL`,restStatusPath:`狀態 JSON 路徑`,restStatusOnValue:`ON 值`,restPowerUrl:`功率URL`,restPowerPath:`功率 JSON 路徑`,restPowerMultiplier:`功率乘數`,restEnergyUrl:`能耗URL`,restEnergyPath:`能耗 JSON 路徑(今日)`,restEnergyTotalPath:`能耗 JSON 路徑(累計值)`,restEnergyTotalMultiplier:`累計值倍數`,restEnergyTotalPathHint:`例如 aenergy.total`,restEnergyTotalHint:`許多插座(包括所有 Shelly)只提供永不歸零的累計計數值。該值應填在此處,而非上方欄位:若當作今日用量讀取,它在午夜不會歸零,而「昨日」與「總計」會一直是空的。Bambuddy 會據此推算「今日」與「昨日」,這需要一至兩天的取樣資料。Shelly 以瓦時為單位,因此倍數請填 0.001。`,restEnergyMultiplier:`能耗乘數`,restUrlRequired:`REST 插座至少需要一個 URL(ON 或 OFF)`,restHeadersHint:`例如:{"Authorization": "Bearer your-token"}`,restBodyHint:`例如:ON、{"state": "on"}`,restStatusHint:`用於輪詢目前狀態的 URL`,restPathHint:`例如:state 或 data.power.status`,restPowerUrlHint:`功率資料的獨立URL(留空則使用狀態URL)`,restEnergyUrlHint:`能耗資料的獨立URL(留空則使用狀態URL)`,restEnergyHint:`每個值可以使用獨立的URL,或回退到狀態 URL。使用乘數進行單位轉換(例如:0.001 將 Wh 轉換為 kWh)。`,testConnection:`測試連線`,connectionSuccess:`連線成功`,noSwitchesInSwitchbar:`開關欄中沒有開關`,enableSwitchbarHint:`在設定 > 智慧插座中啟用"在開關欄顯示"`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`電子郵件`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`SMTP 電子郵件通知`,telegram:`透過 Telegram 機器人傳送通知`,discord:`透過 Webhook 傳送到 Discord 頻道`,ntfy:`免費、可自託管的推送通知`,pushover:`簡單、可靠的推送通知`,callmebot:`透過 CallMeBot 免費傳送 WhatsApp 通知`,webhook:`通用 HTTP POST 到任意 URL`,homeassistant:`Home Assistant 儀表板中的持久通知`,bark:`透過 Bark 推送 iOS 通知(可自架伺服器)`},lastSuccess:`上次:{{date}}`,error:`錯誤`,printer:`印表機:`,allPrinters:`所有印表機`,sendTestNotification:`傳送測試通知`,eventSettings:`事件設定`,enabled:`已啟用`,sendFromProvider:`從此提供者傳送通知`,printEvents:`列印事件`,printerStatus:`印表機狀態`,amsAlarms:`AMS 警報`,amsHtAlarms:`AMS-HT 警報`,printQueue:`列印佇列`,start:`開始`,plateCheck:`熱床檢測`,complete:`完成`,failed:`失敗`,stopped:`已停止`,progress:`進度`,offline:`離線`,lowFilament:`耗材不足`,maintenance:`維護`,amsHumidity:`AMS 濕度`,amsTemp:`AMS 溫度`,amsHtHumidity:`AMS-HT 濕度`,amsHtTemp:`AMS-HT 溫度`,bedCooled:`熱床已冷卻`,firstLayer:`首層完成`,quiet:`免打擾`,digest:`摘要 {{time}}`,printStarted:`列印已開始`,plateNotEmpty:`熱床非空`,plateNotEmptyDescription:`列印前偵測到物體`,plateClearRequired:`需要確認熱床已清空`,plateClearRequiredDescription:`列印完成,佇列等待熱床確認`,plateClear:`熱床確認`,printCompleted:`列印已完成`,bedCooledLabel:`熱床已冷卻`,bedCooledDescription:`列印後熱床溫度降至閾值以下`,firstLayerCompleteLabel:`首層列印完成`,firstLayerCompleteDescription:`首層完成時傳送帶照片的通知`,missingSpoolAssignmentLabel:`缺少料卷分配`,missingSpoolAssignmentDescription:`當列印開始且所需料盤沒有分配料卷時傳送通知`,printFailed:`列印失敗`,printStopped:`列印已停止`,progressMilestones:`進度里程碑`,progressMilestonesDescription:`在 25%、50%、75% 時通知`,printerOffline:`印表機離線`,printerError:`印表機錯誤`,aiFailureDetection:`AI 失敗偵測`,aiFailureDetectionDescription:`當 Obico AI 偵測到可能的列印失敗時通知`,lowFilamentLabel:`耗材不足`,maintenanceDue:`需要維護`,maintenanceDueDescription:`需要維護時通知`,amsHumidityHigh:`AMS 濕度過高`,amsHumidityHighDescription:`普通 AMS 濕度超過閾值`,amsTemperatureHigh:`AMS 溫度過高`,amsTemperatureHighDescription:`普通 AMS 溫度超過閾值`,amsHtHumidityHigh:`AMS-HT 濕度過高`,amsHtHumidityHighDescription:`AMS-HT 濕度超過閾值`,amsHtTemperatureHigh:`AMS-HT 溫度過高`,amsHtTemperatureHighDescription:`AMS-HT 溫度超過閾值`,inventoryAlerts:`庫存警報`,stockReorderAlert:`補貨警報`,stockReorderAlertDescription:`SKU 已達到補貨點`,stockBreakAlert:`斷貨警報`,stockBreakAlertDescription:`庫存將在補貨到達前耗盡`,jobAdded:`任務已新增`,jobAddedDescription:`任務已新增到佇列`,jobAssigned:`任務已分配`,jobAssignedDescription:`基於模型的任務已分配給印表機`,jobStarted:`任務已開始`,jobStartedDescription:`佇列任務已開始列印`,jobWaiting:`任務等待中`,jobWaitingDescription:`任務正在等待耗材或印表機`,jobSkipped:`任務已跳過`,jobSkippedDescription:`任務已跳過(上一個失敗)`,jobFailed:`任務失敗`,jobFailedDescription:`任務啟動失敗`,queueComplete:`佇列已完成`,queueCompleteDescription:`所有佇列任務已完成`,quietHours:`免打擾時段`,noNotificationsDuring:`在此時段內不傳送通知`,editProviderToChangeQuietHours:`編輯提供者以更改免打擾時段`,dailyDigest:`每日摘要`,batchNotifications:`將通知彙總為每日摘要`,sendAt:`傳送於 {{time}}`,editProviderToChangeDigestTime:`編輯提供者以更改摘要時間`,edit:`編輯`,deleteProvider:`刪除通知提供者`,deleteConfirm:`確定要刪除"{{name}}"嗎?此操作無法復原。`,delete:`刪除`,addTitle:`新增通知提供者`,editTitle:`編輯通知提供者`,nameLabel:`名稱 *`,namePlaceholder:`我的通知`,providerTypeLabel:`提供者類型 *`,configuration:`設定`,testConfiguration:`測試設定`,printerFilter:`印表機篩選`,onlyFromPrinter:`僅傳送來自此印表機的事件通知`,quietHoursDnd:`免打擾時段`,quietStart:`開始`,quietEnd:`結束`,dailyDigestLabel:`每日摘要`,sendDigestAt:`傳送摘要於`,digestCollected:`事件將被收集並在此時間作為單條摘要傳送`,notificationEvents:`通知事件`,progressPercent:`(25%、50%、75%)`,bedCooledAfterPrint:`(列印完成後)`,eventPriority:{sectionTitle:`ntfy 優先級`,helpNtfy:`為每個已啟用的事件選擇優先級。ntfy 使用它來升級提醒(聲音、可見性、推播行為)。此處未設定的級別將使用 ntfy 伺服器預設值。`,min:`最低`,low:`低`,default:`預設`,high:`高`,urgent:`緊急`},cancel:`取消`,save:`儲存`,add:`新增`,nameRequired:`名稱為必填項`,fieldRequired:`{{field}}為必填項`,haDataInvalid:`Data 欄位必須是有效的 JSON 物件,例如 {"priority": "high", "ttl": 0}`,phoneNumber:`電話號碼`,apiKey:`API 金鑰`,serverUrl:`伺服器 URL`,topic:`主題`,authToken:`認證權杖`,userKey:`使用者金鑰`,appToken:`應用程式權杖`,priority:`優先順序`,pushoverRetry:`緊急重試 (秒)`,pushoverExpire:`緊急逾時 (秒)`,botToken:`機器人權杖`,chatId:`聊天 ID`,telegramThreadId:`論壇主題 ID`,telegramThreadIdHelp:`選填。傳送到論壇群組中的指定主題,即主題連結結尾的數字 (t.me/c/.../25)。留空則傳送到一般主題。`,telegramThreadIdInvalid:`論壇主題 ID 必須是數字。`,smtpServer:`SMTP 伺服器`,smtpPort:`SMTP 連接埠`,security:`安全`,authentication:`認證`,username:`使用者名稱`,password:`密碼`,fromEmail:`寄件人信箱`,toEmail:`收件人信箱`,webhookUrl:`Webhook URL`,payloadFormat:`負載格式`,authorization:`授權`,titleFieldName:`標題欄位名`,messageFieldName:`訊息欄位名`,editTemplate:`編輯範本:{{name}}`,titleLabel:`標題`,bodyLabel:`正文`,titlePlaceholder:`通知標題...`,bodyPlaceholder:`通知正文...`,availableVariables:`可用變數`,clickToInsert:`點選插入到正文游標位置`,livePreview:`即時預覽`,hide:`隱藏`,show:`顯示`,loadingPreview:`載入預覽中...`,enterTemplateContent:`輸入範本內容以檢視預覽`,titlePreview:`標題:`,bodyPreview:`正文:`,resetToDefault:`恢復預設`,titleRequired:`標題為必填項`,bodyRequired:`正文為必填項`,notificationLog:`通知日誌`,showFailedOnly:`僅顯示失敗`,last24Hours:`最近 24 小時`,last7Days:`最近 7 天`,last30Days:`最近 30 天`,last90Days:`最近 90 天`,justNow:`剛剛`,noFailedNotifications:`沒有失敗的通知`,noNotificationsLogged:`沒有通知紀錄`,unknownProvider:`未知提供者`,logTitle:`標題`,logMessage:`訊息`,logError:`錯誤`,logProvider:`提供者:{{type}}`,logTime:`時間:{{time}}`,refresh:`重新整理`,clearOld:`清除舊紀錄`,statsSummary:`最近 {{days}} 天:`,statsNotifications:`條通知`,statsSent:`{{count}} 條已傳送`,statsFailed:`{{count}} 條失敗`,eventTypes:{print_start:`列印已開始`,print_complete:`列印完成`,print_failed:`列印失敗`,print_stopped:`列印已停止`,print_progress:`進度`,printer_offline:`印表機離線`,printer_error:`印表機錯誤`,filament_low:`耗材不足`,maintenance_due:`需要維護`,test:`測試`},userEmail:{title:`通知`,emailNotifications:`郵件通知`,emailNotificationsDesc:`接收您自己列印任務的郵件通知。郵件將透過進階身份驗證中設定的 SMTP 設定傳送。`,sendingTo:`通知將傳送至`,noEmailWarning:`您的帳戶沒有郵件地址。請聯絡管理員新增。`,printJobNotifications:`列印任務通知`,printJobNotificationsDesc:`選擇哪些事件會觸發您提交的列印任務的郵件通知。`,printJobStarts:`列印任務開始`,printJobStartsDesc:`當您的列印任務開始時收到通知。`,printJobFinishes:`列印任務完成`,printJobFinishesDesc:`當您的列印任務成功完成時收到通知。`,printErrors:`列印錯誤`,printErrorsDesc:`當您的列印任務失敗或遇到錯誤時收到通知。`,printJobStops:`列印任務停止`,printJobStopsDesc:`當您的列印任務被取消或停止時收到通知。`,saveSuccess:`通知偏好設定已儲存。`,saveError:`儲存通知偏好設定失敗。`}},richTextEditor:{bold:`粗體`,italic:`斜體`,underline:`底線`,bulletList:`無序列表`,numberedList:`有序列表`,alignLeft:`左對齊`,alignCenter:`居中對齊`,alignRight:`右對齊`,addLink:`新增連結`,removeLink:`移除連結`},externalLinks:{title:`側邊欄連結`,sidebarLayout:`側邊欄`,sidebarLayoutDescription:`顯示或隱藏內建頁面、加入外部連結,並拖曳項目以重新排序側邊欄導覽。`,systemPages:`Bambuddy 頁面`,externalLinks:`外部連結`,visibleInSidebar:`顯示於側邊欄`,hiddenFromSidebar:`隱藏於側邊欄`,requiredInSidebar:`側邊欄中必須顯示`,hidePage:`隱藏頁面`,showPage:`顯示頁面`,settingsCannotBeHidden:`設定無法隱藏`,noLinksConfigured:`未設定外部連結`,deleteLink:`刪除連結`,removeCustomIcon:`移除自訂圖示`,openInNewTab:`在新標籤頁中開啟`,placeholders:{linkName:`我的連結`}},keyboardShortcuts:{title:`鍵盤快捷鍵`,navigation:`導航`,archivesSection:`歸檔`,kProfilesSection:`K 值設定`,generalSection:`通用`,shortcuts:{goToPrinters:`前往印表機`,goToArchives:`前往歸檔`,goToQueue:`前往佇列`,goToStats:`前往統計`,goToProfiles:`前往雲端設定`,goToSettings:`前往設定`,focusSearch:`聚焦搜尋`,openUploadModal:`開啟上傳對話方塊`,clearSelection:`清除選擇 / 取消焦點`,contextMenu:`卡片右鍵選單`,refreshProfiles:`重新整理設定`,newProfile:`新增設定`,exitSelectionMode:`結束選擇模式`,showHelp:`顯示此協助`},footer:`按 Esc 或點選外部關閉`},notificationLog:{title:`通知日誌`,events:{printStarted:`列印開始`,printComplete:`列印完成`,printFailed:`列印失敗`,printStopped:`列印停止`,progress:`進度`,printerOffline:`印表機離線`,printerError:`印表機錯誤`,lowFilament:`耗材不足`,maintenanceDue:`維護到期`,test:`測試`},timeAgo:{justNow:`剛剛`,minutesAgo:`{{minutes}} 分鐘前`,hoursAgo:`{{hours}} 小時前`}},restoreBackup:{title:`恢復備份`,restoring:`恢復中...`,restoreComplete:`恢復完成`,restoreFailed:`恢復失敗`,importSettings:`從備份檔案匯入設定`,pleaseWait:`請稍候,正在恢復您的資料`,clickToSelect:`點選選擇備份檔案(.json 或 .zip)`,howDuplicateHandling:`重複處理方式:`,categories:{printers:`印表機`,smartPlugs:`智慧插座`,notificationProviders:`通知提供者`,filaments:`耗材`,archives:`歸檔`,pendingUploads:`待處理上傳`,settingsTemplates:`設定和範本`},matchingInfo:{printers:`按序列號匹配`,smartPlugs:`按 IP 位址匹配`,notificationProviders:`按名稱匹配`,filaments:`按名稱 + 類型 + 品牌匹配`,archives:`按內容雜湊匹配`,pendingUploads:`按檔名匹配`,settingsTemplates:`始終覆蓋`},replaceExisting:`替換現有資料`,keepExisting:`保留現有資料`,replaceDescription:`用備份資料覆蓋已存在的項目`,keepDescription:`僅恢復不存在的項目`,caution:`注意:`,cautionText:`覆蓋將用備份資料替換您目前的設定。出於安全考慮,印表機存取碼永遠不會被覆蓋。`,itemsRestored:`已恢復項目`,itemsSkipped:`已跳過項目`,restored:`已恢復`,skipped:`已跳過(已存在)`,filesLabel:`檔案(3MF、縮圖等)`,newApiKeysGenerated:`已產生新 API 金鑰`,newApiKeysWarning:`這些金鑰僅顯示一次。請立即複製!`,processingBackup:`處理備份檔案中...`,noDataFound:`備份檔案中未找到可恢復的資料。`,failedToRestore:`恢復備份失敗。請檢查檔案格式。`},backupExport:{title:`匯出備份`,selectData:`選擇要包含的資料`,selectAll:`全選`,selectNone:`全不選`,categoryDescriptions:{settings:`語言、主題、更新偏好`,notifications:`ntfy、Pushover、Discord 等`,templates:`自訂訊息範本`,smartPlugs:`Tasmota 插座設定`,externalLinks:`側邊欄外部服務連結`,printers:`印表機資訊(不含存取碼)`,plateDetection:`空列印板參考影像`,filaments:`耗材類型和成本`,maintenance:`自訂維護計畫`,archives:`所有列印資料 + 檔案(3MF、縮圖、照片)`,projects:`專案、材料清單和附件`,pendingUploads:`虛擬印表機待審核的上傳`,apiKeys:`Webhook API 金鑰(匯入時產生新金鑰)`},requiresPrinters:`需要選擇印表機`,zipFileWarning:`將建立 ZIP 檔案。`,zipFileDescription:`包括所有 3MF 檔案、縮圖、縮時攝影和照片。這可能需要一些時間並產生較大的檔案。`,includeAccessCodes:`包含存取碼`,includeAccessCodesDescription:`用於轉移到另一臺機器`,includeAccessCodesWarning:`存取碼將以明文形式包含。請妥善保管此備份檔案!`,categoriesSelected:`已選擇 {{selectedCount}} 個類別`},pendingUploads:{placeholders:{notes:`新增關於此列印的備註...`},discardUpload:`丟棄上傳`,archiveAllUploads:`歸檔所有上傳`,discardAllUploads:`丟棄所有上傳`,archive:`歸檔`,timeAgo:{justNow:`剛剛`,minutesAgo:`{{minutes}} 分鐘前`,hoursAgo:`{{hours}} 小時前`,daysAgo:`{{days}} 天前`}},apiBrowser:{placeholders:{requestBody:`JSON 請求體...`,searchEndpoints:`搜尋端點...`}},configureAmsSlot:{title:`設定 AMS 槽位`,slotConfigured:`槽位已設定!`,configuringSlot:`正在設定槽位:`,slotLabel:`{{ams}} 槽位 {{slot}}`,searchPresets:`搜尋預設...`,colorPlaceholder:`顏色名稱或十六進位(例如:棕色、FF8800)`,clearCustomColor:`清除自訂顏色`,noCloudPresets:`無雲端預設。登入拓竹雲以同步。`,noPresetsAvailable:`無可用預設。登入拓竹雲或匯入本機設定。`,noMatchingPresets:`未找到匹配的預設。`,custom:`自訂`,builtin:`內建`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`設定已傳送到印表機`,filamentProfile:`耗材設定`,kProfileLabel:`K 值設定(壓力推進)`,filteringFor:`篩選:{{material}}`,noKProfile:`無 K 值設定(使用預設值 0.020)`,noMatchingKProfiles:`未找到匹配的 K 值設定。將使用預設 K=0.020。`,otherKProfiles:`此印表機上的其他 K 值設定`,selectFilamentFirst:`請先選擇耗材設定`,kFromCalibration:`K={{value}}(來自印表機校準)`,customColorLabel:`自訂顏色(可選)`,presetColors:`{{name}} 顏色:`,showLessColors:`顯示更少顏色`,showMoreColors:`顯示更多顏色`,clear:`清除`,hexLabel:`十六進位:#{{hex}}`,resetting:`重設中...`,resetSlot:`重設槽位`,cancel:`取消`,configuring:`設定中...`,configureSlot:`設定槽位`},githubBackup:{title:`Git 備份`,history:`歷史`,downloadBackup:`下載備份`,restoreBackup:`恢復備份`,noBackupsYet:`尚無備份`},emailSettings:{placeholders:{fromName:`Bambuddy`}},tagManagement:{searchTags:`搜尋標籤...`,renameTag:`重新命名標籤`,deleteTag:`刪除標籤`},notificationTemplates:{placeholders:{title:`通知標題...`,body:`通知正文...`}},batchTag:{placeholders:{newTag:`輸入新標籤...`}},photoGallery:{deletePhoto:`刪除照片`},filamentHoverCard:{copySpoolUuid:`複製耗材 UUID`},kProfilesView:{hasNote:`有備註`,copyProfile:`複製設定`},layout:{openMenu:`開啟選單`,noPermissionSystemInfo:`您沒有檢視系統資訊的權限`},dashboard:{dragToReorder:`拖曳以重新排列`,hideWidget:`隱藏小工具`},notificationProviderCard:{deleteNotificationProvider:`刪除通知提供者`},fileManagerModal:{closeFileManager:`關閉檔案管理器`,sortFiles:`排序檔案`,goToParentFolder:`返回上級資料夾`,threeView:`3D 檢視`},embeddedCameraViewer:{refreshStream:`重新整理流`,close:`關閉`,zoomOut:`縮小`,resetZoom:`重設縮放`,zoomIn:`放大`,dragToResize:`拖曳調整大小`},timelapseViewer:{skipBack5s:`後退 5 秒`,skipForward5s:`前進 5 秒`},notificationProviders:{descriptions:{email:`SMTP 郵件通知`,telegram:`透過 Telegram 機器人通知`,discord:`透過 Webhook 傳送到 Discord 頻道`,ntfy:`免費、可自託管的推送通知`,pushover:`簡單、可靠的推送通知`,callmebot:`透過 CallMeBot 的免費 WhatsApp 通知`,webhook:`通用 HTTP POST 到任意 URL`}},logViewer:{searchPlaceholder:`搜尋訊息或日誌名稱...`,noLogEntries:`未找到日誌條目`},switchbarPopover:{noSwitchesInSwitchbar:`切換欄中沒有開關`},projectPageModal:{placeholders:{title:`標題`,designer:`設計師`,license:`許可證`,description:`輸入描述...`,profileTitle:`設定標題`,profileDescription:`設定描述...`}},spoolmanSettings:{},time:{unknown:`-`,waiting:`等待中`,justNow:`剛剛`,now:`現在`,minsAgo:`{{count}} 分鐘前`,inMins:`{{count}} 分鐘後`,hoursAgo:`{{count}} 小時前`,inHours:`{{count}} 小時後`,daysAgo:`{{count}} 天前`,inDays:`{{count}} 天後`},spoolbuddy:{nav:{dashboard:`儀表板`,ams:`AMS`,inventory:`庫存`,writeTag:`寫入`,settings:`設定`},status:{nfcReady:`NFC 就緒`,nfcOff:`NFC 關閉`,offline:`離線`,online:`線上`,noPrinters:`無印表機`,deviceOffline:`裝置離線`,waitingConnection:`等待裝置連線...`,systemReady:`系統就緒`,status:`狀態`},dashboard:{readyToScan:`準備掃描`,idleMessage:`將耗材放在磅秤上以識別`,nfcHint:`NFC 標籤將自動讀取`,device:`裝置`,syncWeight:`同步重量`,weightSynced:`已同步!`,unknownTag:`未知標籤`,newTag:`偵測到新標籤`,onScale:`在磅秤上`,linkSpool:`連結到耗材`,linkTagTitle:`將標籤連結到耗材`,linkTag:`連結標籤`,selectSpool:`選擇要連結此標籤的耗材:`,noUntagged:`未找到沒有標籤的耗材`,tagDetected:`偵測到標籤`,noTag:`無標籤`,tagId:`標籤`,grossWeight:`毛重`,spoolSize:`耗材盤尺寸`,close:`關閉`,currentSpool:`目前耗材`,plateReady:`熱床就緒: {{name}}`,plateReadyLabel:`待清理的熱床`,plateClearAction:`清理`,plateClearedToast:`已將熱床標記為已清理`,plateClearFailed:`無法將熱床標記為已清理`},modal:{spoolDetected:`偵測到耗材`,assignToAms:`分配到 AMS`,syncWeight:`同步重量`,weightSynced:`已同步!`,syncing:`同步中...`,newTagDetected:`偵測到新標籤`,addToInventory:`新增到庫存`,assignToAmsTitle:`分配到 AMS`,selectSlot:`選擇槽位`,assign:`分配`,assigning:`分配中...`,assignSuccess:`已分配!`,assignPendingInsert:`已分配。插入耗材後將設定槽位。`,assignError:`分配耗材失敗。請重試。`,noPrinterSelected:`選擇印表機...`,noAmsDetected:`此印表機未偵測到 AMS`,slot:`槽位`},weight:{noReading:`無讀數`,stable:`穩定`,measuring:`測量中...`,tare:`去皮`,calibrate:`校準`},spool:{remaining:`剩餘`,material:`材料`,brand:`品牌`,color:`顏色`,coreWeight:`軸心重`,labelWeight:`標籤重`,scaleWeight:`磅秤重`,netWeight:`淨重`,lastUsed:`上次使用`},ams:{noData:`未偵測到 AMS`,connectAms:`連線 AMS 以檢視耗材槽位`,noPrinter:`未選擇印表機`,selectPrinter:`從頂部欄選擇印表機`,printerDisconnected:`印表機已斷開`,humidity:`濕度`,level:`餘量`,active:`活躍`,slot:`槽位`,empty:`空`},inventory:{search:`搜尋耗材...`,empty:`庫存中沒有耗材`,noResults:`沒有匹配的耗材`,spools:`個耗材`,addSpool:`新增耗材`},settings:{tabDevice:`裝置`,tabDisplay:`顯示`,tabScale:`磅秤`,tabUpdates:`更新`,nfcReader:`NFC 讀卡器`,type:`類型`,connection:`連線`,notConnected:`不適用`,deviceInfo:`裝置資訊`,hostname:`主機`,uptime:`執行時間`,systemConfig:`後端與認證`,backendUrl:`Bambuddy 後端 URL`,apiToken:`API 權杖`,apiTokenPlaceholder:`輸入 API 權杖`,saveConfig:`儲存設定`,systemQueued:`設定已加入佇列。`,nfcDiagnostic:`NFC 診斷`,scaleDiagnostic:`磅秤診斷`,readTagDiagnostic:`讀取標籤診斷`,testNfc:`測試讀卡器`,testScale:`測試精度`,testReadTag:`讀取標籤`,systemFieldsRequired:`後端 URL 為必填項。`,brightness:`亮度`,saved:`已儲存`,noBacklight:`未偵測到 DSI 背光。亮度控制需要 DSI 螢幕。`,screenBlank:`螢幕熄滅超時`,screenBlankDesc:`不活動後螢幕關閉。觸控喚醒。`,displayNote:`亮度作為軟體濾鏡套用。`,scaleCalibration:`磅秤校準`,currentWeight:`目前重量`,tareOffset:`去皮`,calFactor:`係數`,knownWeight:`已知重量`,calStep1:`移除磅秤上所有物品並按設定零點。`,calStep2:`將已知重量放在磅秤上。`,setZero:`設定零點`,calibrateNow:`校準`,calibrated:`已校準`,tareSet:`去皮命令已傳送。等待裝置回應...`,tareComplete:`去皮完成!`,tareTimedOut:`去皮逾時 — SpoolBuddy 守護程序是否正在執行?`,tareFailed:`傳送去皮命令失敗`,zeroSet:`零點已設定。將已知重量放在磅秤上。`,calibrationDone:`校準完成!`,calibrationFailed:`校準失敗`,lastCalibrated:`上次校準`,stable:`穩定`,settling:`穩定中...`,firmware:`韌體`,scale:`磅秤`,noDevice:`未找到 SpoolBuddy 裝置`,daemonVersion:`守護程式版本`,currentVersion:`目前`,versionPending:`等待守護程式...`,checking:`檢查中...`,checkUpdates:`檢查更新`,updateAvailable:`有可用更新`,updateInstructions:`透過 SSH 更新:執行 SpoolBuddy 安裝腳本進行升級。`,upToDate:`已是最新`,includeBeta:`包含測試版本`},writeTag:{tabExisting:`現有耗材`,tabNew:`新耗材`,tabReplace:`替換標籤`,searchPlaceholder:`按材料、顏色、品牌搜尋...`,noUntaggedSpools:`沒有無標籤的耗材`,noTaggedSpools:`沒有有標籤的耗材`,selectSpool:`選擇一個耗材,然後將空白 NTAG 放在讀卡器上`,placeTag:`將 NTAG 放在讀卡器上`,tagReady:`偵測到標籤 — 準備寫入`,writeTag:`寫入標籤`,replaceTag:`替換標籤`,writing:`寫入標籤中...`,waiting:`等待 SpoolBuddy...`,writeSuccess:`標籤寫入成功!`,writeFailed:`寫入失敗`,queueFailed:`佇列寫入命令失敗`,tryAgain:`重試`,cancel:`取消`,replaceWarning:`舊標籤將被取消連結。新標籤將替換它。`,deviceOffline:`SpoolBuddy 離線`,material:`材料`,colorName:`顏色名稱`,color:`顏色`,brand:`品牌`,weight:`重量 (g)`,createSpool:`建立耗材`,creating:`建立中...`,spoolCreated:`耗材已建立!準備寫入。`,createFailed:`建立耗材失敗`,incompleteDataWarning:`已使用不完整的Spoolman資料寫入標籤`},quickMenu:{printerPower:`印表機電源`,systemControls:`系統`,restartDaemon:`重新啟動守護程式`,restartBrowser:`重新啟動瀏覽器`,reboot:`重新開機`,shutdown:`關機`,swipeToClose:`向下滑動關閉`,confirmTitle:`確認`,confirmShutdown:`確定要關閉 SpoolBuddy 嗎?您需要實體存取才能重新開啟。`,confirmReboot:`確定要重新開機 SpoolBuddy 嗎?`,confirmRestartDaemon:`重新啟動 SpoolBuddy 守護程式?NFC 和磅秤將暫時不可用。`,confirmRestartBrowser:`重新啟動kiosk瀏覽器?螢幕將短暫變黑。`,confirm:`確認`,confirmPlugOn:`開啟 {{name}}?`,confirmPlugOff:`關閉 {{name}}?`,turnOn:`開啟`,turnOff:`關閉`}},diagnostic:{modalTitle:`連線診斷 — {{name}}`,running:`正在執行診斷...`,runningElapsed:`正在執行診斷... ({{elapsed}}秒)`,waitingForReportHint:`正在等待印表機發佈狀態報告 — 最長可能需要 {{max}} 秒。`,runFailed:`無法執行診斷:{{error}}`,retry:`重新執行`,runButton:`執行診斷`,sectionTitle:`連線診斷`,sectionDescription:`檢查印表機無法連線或無法列印的原因 — 連接埠可達性、LAN 開發者模式、Docker 網路模式與認證資訊。`,noPrinters:`未設定印表機。`,overall:{ok:`未發現問題 — 印表機連線看起來正常。`,warnings:`印表機應該可以運作,但有些項目需要注意。`,problems:`發現了可解釋印表機無法連線或無法列印的問題。`},check:{port_mqtt:{title:`控制連接埠(MQTT 8883)`,pass:`可達 — 印表機正在接受控制連線。`,fail:`連接埠 8883 無法連線。印表機已關機、IP 位址不同,或被防火牆封鎖。請核實印表機 IP,並確保沒有任何東西封鎖連接埠 8883。`},port_ftps:{title:`檔案傳輸連接埠(FTPS 990)`,pass:`可達 — 傳送列印檔案將正常運作。`,warn:`連接埠 990 無法連線。監控可能仍然有效,但向印表機傳送列印工作將失敗。請確保連接埠 990 未被封鎖。`},external_storage:{title:`將傳送的檔案儲存在外部儲存中(安裝步驟 4)`,pass:`印表機回報此選項已開啟 — 傳送的檔案將儲存在 SD 卡上,封存將包含縮圖和切片機中繼資料。`,fail:`印表機回報此選項已關閉。請啟用「將傳送的檔案儲存在外部儲存中」 — 在較新韌體 (P2S 01.02 / Bambu Studio 2.6+) 中,開關位於印表機的列印設定中;在較舊版本中位於 Bambu Studio / OrcaSlicer 的裝置分頁中。如果未啟用此選項,每次封存的列印都將沒有縮圖也沒有切片機中繼資料。`,skip:`未檢查 — 需要有效的 MQTT 連線。在該設定僅存在於切片機中的較舊切片機上,印表機不會回報此設定,因此即使選項已關閉,此檢查也會通過 — 請手動驗證安裝步驟 4。`,skip_unsupported_model:`此型號有 SD 卡槽,但無法開啟該選項 — 目前 P1 系列韌體不會在 Bambu Studio 中顯示此開關,且印表機沒有螢幕。這裡無需修復;在 Bambu Lab 透過韌體加入支援之前,封存的列印可能缺少縮圖和切片中繼資料。`},port_rtsps:{title:`攝影機連接埠({{protocol}} {{port}})`,pass:`可達 — 攝影機串流將正常運作。`,warn:`連接埠 {{port}} 無法連線。即時攝影機檢視將無法運作。這不影響列印。`},network_mode:{title:`Docker 網路模式`,pass:`正在以 host 網路模式執行。`,warn:`Bambuddy 正在以 Docker bridge 網路執行。印表機探索與虛擬印表機需要 host 網路模式 — 請使用 "network_mode: host" 重新建立容器。`,skip:`未在 Docker 中執行 — 不適用。`},subnet:{title:`網路子網路`,pass:`印表機與 Bambuddy 位於同一子網路。`,warn:`印表機({{printer_ip}})與 Bambuddy({{host_ip}})位於不同的子網路。除非設定了子網路之間的路由,否則它們可能無法互相連線。`,skip:`無法判定子網路 — 已略過。`},mqtt_auth:{title:`印表機認證資訊`,pass:`印表機已接受連線。`,fail:`印表機可達,但 Bambuddy 未與其建立連線。存取碼或序號很可能有誤 — 每次切換僅區域網路模式或開發者模式時存取碼都會變更,請從印表機螢幕重新複製。正在重新啟動或已達到同時連線數上限的印表機看起來也是這樣。`,fail_auth_rejected:`印表機拒絕了 Bambuddy 的認證資訊。存取碼或序號有誤 — 每次切換僅區域網路模式或開發者模式時存取碼都會變更。請從印表機螢幕重新複製,並儲存到印表機設定中。`,skip:`未檢查 — 無法連線到印表機。`},developer_mode:{title:`LAN 開發者模式`,pass:`開發者模式已啟用。`,fail:`印表機上的開發者模式已關閉。請在印表機的 LAN 設定中啟用它 — 並按 OK 確認。否則列印將無法開始。`,skip:`無法檢查 — 需要與印表機的即時連線。`},printer_publishing:{title:`印表機正在發佈狀態`,pass:`印表機正在發佈狀態更新 — AMS、耗材和 K 配置將正確鏡像到切片軟體。`,fail:`MQTT 代理已接受連線,但印表機未發佈任何狀態報告。這幾乎總是因為序號錯誤或大小寫不一致 — device//api/v1/metrics adresinde sun.`,bearerTokenOptional:`Bearer Belirteci (isteğe bağlı)`,bearerTokenHint:`Ayarlandıysa, isteklerin Authorization: Bearer içermesi gerekir`,metricsConnectionStatus:`Bağlantı durumu`,metricsPrinterState:`Yazıcı durumu (boşta/yazdırılıyor/vb.)`,metricsPrintProgress:`Baskı ilerlemesi 0-100%`,metricsBedTemp:`Tabla sıcaklığı`,metricsNozzleTemp:`Nozul sıcaklığı`,metricsPrintsTotal:`Sonuca göre toplam baskılar`,metricsMore:`...ve daha fazlası (katmanlar, fanlar, kuyruk, filament kullanımı)`,smartPlugsDescription:`Güç kontrolünü otomatikleştirmek ve yazıcılarınız için enerji kullanımını takip etmek üzere akıllı prizleri (Tasmota veya Home Assistant) bağlayın.`,allOn:`Tümü Açık`,allOff:`Tümü Kapalı`,addSmartPlug:`Akıllı Priz Ekle`,energySummary:`Enerji Özeti`,currentPower:`Mevcut Güç`,plugsOnline:`{{reachable}}/{{total}} priz çevrimiçi`,today:`Bugün`,yesterday:`Dün`,total:`Toplam`,enablePlugsForSummary:`Enerji özetini görmek için prizleri etkinleştirin`,addNotificationProvider:`Ekle`,systemBadge:`(Sistem)`,creating:`Oluşturuluyor...`,changing:`Değiştiriliyor...`,deleteUserAndItems:`Kullanıcıyı VE öğelerini sil`,deleteUserKeepItems:`Kullanıcıyı sil, öğeleri tut (sahipsiz olur)`,ok:`Tamam`,twoFa:{totpTitle:`Doğrulayıcı Uygulama (TOTP)`,totpDesc:`Google Authenticator, Aegis veya Authy gibi bir doğrulayıcı uygulama kullanın.`,emailOtpTitle:`E-posta OTP`,emailOtpDesc:`Giriş yaptığınızda {{email}} adresine tek seferlik bir kod gönder.`,emailOtpNoEmail:`Bu yöntemi etkinleştirmek için hesabınıza bir e-posta adresi ekleyin.`,addEmailFirst:`Hesabınızın e-posta adresi yok. E-posta OTP'yi etkinleştirmeden önce bir yöneticiden eklemesini isteyin.`,setupTotp:`Doğrulayıcı Uygulamayı Ayarla`,setupAuthApp:`Doğrulayıcı Uygulamayı Ayarla`,setupInstructions:`Aşağıdaki QR kodunu doğrulayıcı uygulamanızla tarayın, ardından bir kodla onaylayın.`,manualEntry:`Tarayamıyor musunuz? Bu gizli anahtarı manuel olarak girin:`,scannedContinue:`Kodu taradım — devam et`,enterCodeToConfirm:`Kurulumu onaylamak için doğrulayıcı uygulamanızdan 6 haneli kodu girin.`,activate:`Etkinleştir`,disableTotp:`Doğrulayıcıyı Devre Dışı Bırak`,disableConfirmHint:`Doğrulayıcıyı devre dışı bırakmak için geçerli bir TOTP kodu veya yedek kod girin.`,totpDisabled:`Doğrulayıcı uygulama devre dışı bırakıldı.`,emailOtpEnabled:`E-posta OTP etkinleştirildi.`,emailOtpDisabled:`E-posta OTP devre dışı bırakıldı.`,smtpRequired:`Lütfen önce SMTP ayarlarını yapılandırın ve test edin.`,invalidCode:`Geçersiz kod. Lütfen tekrar deneyin.`,enableEmailOtp:`E-posta OTP'yi Etkinleştir`,disableEmailOtp:`E-posta OTP'yi Devre Dışı Bırak`,emailSetupEnterCode:`E-posta adresinize bir doğrulama kodu gönderildi. Bu kutunun sahibi olduğunuzu onaylamak için aşağıya girin.`,verifyAndEnable:`Doğrula ve Etkinleştir`,emailDisablePasswordHint:`E-posta OTP'yi devre dışı bırakmayı onaylamak için hesap parolanızı girin.`,passwordPlaceholder:`Parolanızı girin`,backupCodesTitle:`Yedek kodlarınızı kaydedin`,backupCodesWarning:`Bu kodları güvenli bir yere kaydedin. Her kod yalnızca bir kez kullanılabilir ve tekrar gösterilmeyecektir.`,backupCodesRemaining:`{{count}} yedek kod kaldı`,savedCodes:`Kodlarımı kaydettim`,regenBackup:`Yedek Kodları Yeniden Oluştur`,regenBackupHint:`10 yeni yedek kod oluşturmak için mevcut TOTP kodunuzu girin. Mevcut tüm yedek kodlar geçersiz kılınacak.`,newBackupCodes:`Yeni yedek kodlar`,linkedAccounts:`Bağlı SSO Hesapları`,linkedAccountsDesc:`Bu harici kimlik sağlayıcıları hesabınıza bağlıdır.`,oidcUnlinked:`Hesap bağlantısı kaldırıldı.`},sessionPolicy:{title:`Oturum Politikası`,description:`Yeni kullanıcı girişleri için maksimum oturum süresi. Daha önce verilmiş belirteçler özgün son kullanma tarihlerini korur.`,preset24h:`24 saat`,preset7d:`7 gün`,preset30d:`30 gün`,customHoursLabel:`Özel oturum süresi (saat)`,hoursSuffix:`saat`,warning:`Daha uzun oturumlar otomatik oturum kapatma korumasını azaltır. Yalnızca güvenilir tek kullanıcılı dağıtımlar için önerilir.`},oidc:{title:`SSO / OIDC Sağlayıcıları`,desc:`Harici kimlik sağlayıcılar aracılığıyla tek oturum açmaya izin vermek için OpenID Connect sağlayıcılarını yapılandırın.`,addProvider:`Sağlayıcı Ekle`,newProvider:`Yeni Sağlayıcı`,empty:`Henüz yapılandırılmış OIDC sağlayıcısı yok.`,created:`Sağlayıcı oluşturuldu.`,updated:`Sağlayıcı güncellendi.`,deleted:`Sağlayıcı silindi.`,refreshIcon:`Simgeyi yenile`,removeIcon:`Simgeyi kaldır`,iconRefreshed:`Simge yenilendi.`,iconRemoved:`Simge kaldırıldı.`,iconFetchFailed:`Simge sağlayıcı URL'sinden alınamadı.`,deleteTitle:`Sağlayıcıyı Sil`,deleteMessage:`"{{name}}" silinsin mi? Tüm bağlı kullanıcı hesaplarının bağlantısı kaldırılacak.`,form:{name:`Görünen Ad`,issuerUrl:`Yayıncı URL`,clientId:`İstemci Kimliği`,clientSecret:`İstemci Gizli Anahtarı`,scopes:`Kapsamlar`,iconUrl:`Simge URL (isteğe bağlı)`,enabled:`Etkin`,autoCreate:`Kullanıcıları otomatik oluştur`,autoCreateDesc:`İlk girişte otomatik olarak yerel bir hesap oluştur.`,autoLink:`Mevcut hesapları otomatik bağla`,autoLinkDesc:`İlk girişte mevcut yerel hesapları e-posta eşleştirerek bağla.`,secretHint:`mevcut olanı korumak için boş bırakın`,secretPlaceholder:`yeni gizli anahtar`,emailClaim:`E-posta İddiası`,emailClaimDesc:`E-posta kimliği olarak kullanılan JWT iddiası. Azure Entra ID için 'preferred_username' veya 'upn' kullanın (email_verified göndermez). Yalnızca güvenilir iddia adlarını kullanın.`,emailClaimPlaceholder:`email`,emailClaimCustomClaimAutoLinkWarning:`Özel iddialar yalnızca değer kiracı tarafından yönetildiğinde otomatik bağlantı için güvenlidir (örn. Azure Entra ID upn / preferred_username). Kimlik sağlayıcınız kullanıcıların bu iddiayı kendi kendine onaylamasına izin veriyorsa otomatik bağlantıyı etkinleştirmeyin.`,requireEmailVerified:`E-posta doğrulamasını gerektir`,requireEmailVerifiedDesc:`E-posta iddiasını yalnızca sağlayıcı doğrulanmış olarak işaretlediğinde kabul et.`,requireEmailVerifiedWarning:`Uyarı: e-posta doğrulama olmadan bile kabul edilecek. Yalnızca güvenilir sağlayıcılarla kullanın.`,requireEmailVerifiedAutoLink:`Bu ayarı değiştirmek için önce otomatik bağlantıyı devre dışı bırakın.`,defaultGroup:`Varsayılan Grup`,defaultGroupDesc:`Otomatik oluşturulan kullanıcılara atanan grup. Ayarlanmazsa Viewers'a geri döner.`,defaultGroupViewersFallback:`Viewers (varsayılan)`,autologin:`Otomatik oturum açma`,autologinDesc:`Kimlik doğrulaması yapılmamış ziyaretçileri doğrudan bu sağlayıcıya yönlendir. Bu işareti yalnızca bir sağlayıcı taşıyabilir.`}},encryption:{title:`MFA Şifreleme Durumu`,enabledFromEnv:`Sabit şifreleme etkin (anahtar MFA_ENCRYPTION_KEY ortam değişkeninden)`,enabledFromFile:`Sabit şifreleme etkin (anahtar veri dizininden yüklendi)`,enabledGenerated:`Sabit şifreleme otomatik oluşturulan anahtarla etkin`,notConfigured:`Sabit şifreleme yapılandırılmamış`,notConfiguredDesc:`TOTP gizli anahtarları ve OIDC client_secrets düz metin olarak saklanır. MFA_ENCRYPTION_KEY ayarlayın veya Bambuddy'yi otomatik olarak oluşturmak için yazılabilir bir veri dizini ile yeniden başlatın.`,allEncrypted:`Tüm MFA gizli anahtarları sabit olarak şifrelenmiş durumda.`,legacyRowsLabel:`Eski düz metin satırlar`,encryptedRowsLabel:`Şifrelenmiş satırlar`,legacyRowsWarning:`{{count}} eski düz metin satır algılandı. Şifrelenmiş depolamaya geçmek için OIDC sağlayıcısını yeniden kaydedin veya kullanıcının doğrulayıcı uygulamasını yeniden kaydedin.`,backupHint:`Otomatik oluşturulan anahtar DATA_DIR/.mfa_encryption_key konumunda saklanır ve yerel yedek ZIP'lere dahil edilir. Yedeklerinizi güvende tutun veya MFA_ENCRYPTION_KEY'i açıkça ayarlayın.`,decryptionBrokenTitle:`Şifreleme anahtarı eksik`,decryptionBrokenError:`Şifreleme anahtarı artık mevcut olmadığından {{count}} şifrelenmiş kayıt şifresi çözülemiyor. Kurtarmak için önceki MFA_ENCRYPTION_KEY veya DATA_DIR/.mfa_encryption_key'i geri yükleyin.`,migrationErrorWarning:`Başlangıçta {{count}} eski satır yeniden şifrelenemedi. Sunucu günlüklerini kontrol edin ve yeniden denemek için Bambuddy'yi yeniden başlatın.`},pipelineLimits:{title:`Dilimleyici pipeline limitleri`,maxCopiesLabel:`Çalıştırma başına maksimum kopya`,maxCopiesDesc:`Bir pipeline çalıştırıldığında operatörlerin isteyebileceği kopya sayısı üst sınırı. Sunucu tarafı sert sınır 1000'dir.`},pipelines:{title:`Dilimleyici Pipeline'ları`,subtitle:`Yeniden kullanılabilir ön ayar paketleri (yazıcı + işlem + filamentler + tabla türü). Dilimleme diyalogundan bir tane kaydedin ve bir sonraki dosyaya tek tıkla uygulayın.`,loading:`Pipeline'lar yükleniyor…`,loadError:`Pipeline'lar yüklenemedi.`,confirmDelete:`Bu pipeline silinsin mi? Bu işlem geri alınamaz.`,staleWarning:`Atıfta bulunulan bir veya daha fazla ön ayar artık mevcut değil. Dilimleme diyalogundan bu pipeline'ı yeniden kaydederek düzeltin.`,empty:{title:`Henüz pipeline yok.`,howto:`Herhangi bir dosya için Dilimleme diyalogunu açın, yazıcı / işlem / filamentler / tablayı seçin, sonra "Pipeline olarak kaydet"e tıklayın. Kaydedilen pipeline'larınız burada görünecek.`},field:{name:`Pipeline adı`,description:`Açıklama`,targetPrinter:`Hedef yazıcı`,noTarget:`— Hedef yok —`,targetKind:`Hedef türü`,targetKindSpecific:`Belirli yazıcı`,targetKindClass:`Yazıcı sınıfı`,targetModelClass:`Yazıcı modeli`,fanoutStrategy:`Dağıtım stratejisi`,fanout:{max_parallel:`Maksimum paralel — eşleşen boş yazıcılara dağıt`,round_robin:`Sırayla — uygun yazıcılar arasında döndür`,fill_one_first:`Önce birini doldur — tüm kopyaları tek yazıcıya sabitle`},fanoutShort:{max_parallel:`paralel`,round_robin:`sırayla`,fill_one_first:`önce bir`}},action:{save:`Kaydet`,cancel:`İptal`,rename:`Yeniden adlandır`,delete:`Sil`},slot:{printer:`Yazıcı`,process:`İşlem`,filament:`Filament`,filamentN:`Filament {{n}}`,filamentAll:`Tüm {{n}} yuva`,bed:`Tabla`},group:{profiles:`Profiller`,filaments:`Filamentler`},searchPlaceholder:`Pipeline'larda ara…`,filterTargetType:`Hedef türüne göre filtrele`,filterTarget:`Hedefe göre filtrele`,filter:{all:`Tüm hedefler`,noTarget:`Hedef belirlenmemiş`,count:`{{shown}} / {{total}}`,noMatches:`Mevcut filtrelere uyan pipeline yok.`},toast:{saved:`Pipeline kaydedildi`,saveFailed:`Kaydetme başarısız`,deleted:`Pipeline silindi`,deleteFailed:`Silme başarısız`},noTargetHint:`Çalıştırmak için bir hedef yazıcı belirleyin`,noTargetWarning:`Bu pipeline'ı çalıştırmadan önce bir hedef yazıcı belirleyin.`,runs:{lastRun:`Son çalıştırma`,status:{queued:`kuyrukta`,slicing:`dilimleniyor`,dispatching:`gönderiliyor`,in_progress:`yazdırılıyor`,completed:`tamamlandı`,failed:`başarısız`,partial_failure:`kısmi başarısızlık`,cancelled:`iptal edildi`}}}},notification:{printStarted:{title:`Baskı Başladı`,body:`{{printer}}: {{filename}} yazdırmaya başladı`},printCompleted:{title:`Baskı Tamamlandı`,body:`{{printer}}: {{filename}} başarıyla tamamlandı`},printFailed:{title:`Baskı Başarısız`,body:`{{printer}}: {{filename}} başarısız oldu`},printStopped:{title:`Baskı Durduruldu`,body:`{{printer}}: {{filename}} durduruldu`},printProgress:{title:`Baskı İlerlemesi`,body:`{{printer}}: {{filename}} %{{percent}} tamamlandı`},printerOffline:{title:`Yazıcı Çevrimdışı`,body:`{{printer}} çevrimdışı`},printerError:{title:`Yazıcı Hatası`,body:`{{printer}}: {{error}}`},filamentLow:{title:`Az Filament`,body:`{{printer}}: Filament azalıyor`},maintenanceDue:{title:`Bakım Zamanı`,body:`{{printer}}: {{items}} dikkat gerektiriyor`}},errors:{generic:`Bir şeyler ters gitti`,networkError:`Ağ hatası. Lütfen bağlantınızı kontrol edin.`,notFound:`Bulunamadı`,unauthorized:`Yetkisiz`,serverError:`Sunucu hatası`,validationError:`Lütfen girdinizi kontrol edin`,printerConnectionFailed:`Yazıcıya bağlanılamadı`,saveFailed:`Değişiklikler kaydedilemedi`,deleteFailed:`Silme başarısız`,loadFailed:`Veri yüklenemedi`},hmsErrors:{title:`Hatalar - {{name}}`,noErrors:`Hata yok`,viewOnWiki:`Bambu Lab Wiki'de görüntüle`,mqttVerifyFailedRemedy:`Yazicida Gelistirici Modunu etkinlestirin, yaziciyi yeniden baslatin ve isi tekrar baslatin.`,unknownCode:`Bilinmeyen HMS kodu — ayrıntılar için Bambu Lab wiki sayfasına bakın.`,clearInstructions:`Buradan kapatmak için yazıcıdaki hataları temizleyin.`,clearErrors:`Hataları Temizle`,clearSuccess:`HMS hataları temizlendi`,clearFailed:`HMS hataları temizlenemedi`,actionSuccess:`Eylem yazıcıya gönderildi`,actionFailed:`Eylem gönderilemedi`,runoutExpectedSlot:`{{ranOut}} slotundaki filament bitti. Yazıcı şimdi {{expected}} slotunda uyumlu filament bekliyor. {{expected}} slotuna bir makara takın ve ardından Yeniden Dene'yi seçin.`,runoutExpectedSlotOnly:`Yazıcı {{expected}} slotunda uyumlu filament bekliyor. Oraya bir makara takın ve ardından Yeniden Dene'yi seçin.`,runoutSlotUnknown:`Filament bitti ve baskı duraklatıldı. Bambuddy yazıcının şu anda hangi slotu beklediğini belirleyemedi — istenen slot için yazıcının ekranını kontrol edin.`,actions:{RESUME_PRINTING:`Baskıyı sürdür`,RESUME_PRINTING_DEFECTS:`Sürdür (kusurlar kabul edilebilir)`,RESUME_PRINTING_PROBELM_SOLVED:`Sürdür (sorun çözüldü)`,STOP_PRINTING:`Baskıyı durdur`,CHECK_ASSISTANT:`Asistanı aç`,FILAMENT_EXTRUDED:`Filament ekstrude edildi, devam et`,RETRY_FILAMENT_EXTRUDED:`Henüz ekstrude edilmedi, tekrar dene`,CONTINUE:`Tamamlandı, devam et`,LOAD_VIRTUAL_TRAY:`Filament yükle`,OK_BUTTON:`Tamam`,FILAMENT_LOAD_RESUME:`Filament yüklendi, sürdür`,JUMP_TO_LIVEVIEW:`Canlı görünümü aç`,NO_REMINDER_NEXT_TIME:`Bir daha hatırlatma`,REFRESH_NOZZLE:`Tekrar kontrol et`,IGNORE_NO_REMINDER_NEXT_TIME:`Yok say ve bir daha hatırlatma`,IGNORE_RESUME:`Yok say ve sürdür`,PROBLEM_SOLVED_RESUME:`Sorun çözüldü, sürdür`,TURN_OFF_FIRE_ALARM:`Anlaşıldı, yangın alarmını kapat`,RETRY_PROBLEM_SOLVED:`Tekrar dene (sorun çözüldü)`,CANCLE:`İptal`,STOP_DRYING:`Kurutmayı durdur`,PROCEED:`Devam et`,OK_JUMP_RACK:`Tamam`,ABORT:`İptal`,DISABLE_PURIFICATION:`Bu baskı için arıtmayı devre dışı bırak`,DONT_REMIND_NEXT_TIME:`Beni hatırlatma`,DBL_CHECK_CANCEL:`İptal`,DBL_CHECK_DONE:`Tamam`,DBL_CHECK_RETRY:`Tekrar dene`,DBL_CHECK_RESUME:`Sürdür`,DBL_CHECK_OK:`Onayla`,REMOVE_CLOSE_BTN:`Kapat`}},mqttDebug:{title:`MQTT Hata Ayıklama Günlüğü`,searchPlaceholder:`Konu veya yük ara...`,noMessages:`Henüz mesaj kaydedilmedi`,startLoggingHint:`MQTT mesajlarını yakalamaya başlamak için "Kaydetmeye Başla"ya tıklayın`,noMessagesMatch:`Filtrenizle eşleşen mesaj yok`,adjustFilterHint:`Arama veya filtre kriterlerinizi ayarlamayı deneyin`,incoming:`Gelen`,outgoing:`Giden`,loggingStopped:`Kaydetme durduruldu`,loggingActive:`Kaydetme aktif - mesajlar otomatik olarak yenilenecek`,startLogging:`Kaydetmeye Başla`,stopLogging:`Kaydetmeyi Durdur`,clearLog:`Günlüğü Temizle`,topic:`Konu`,timestamp:`Zaman damgası`,direction:`Yön`,all:`Tümü`},printerFiles:{title:`Dosya Yöneticisi`,storageUsed:`Kullanılan:`,storageFree:`Boş:`,filterPlaceholder:`Dosyaları filtrele...`,deleteButton:`Sil`,deleteFiles:`{{count}} Dosya Sil`,deleteFileConfirm:`"{{name}}" silinsin mi? Bu geri alınamaz.`,deleteFilesConfirm:`Seçilen {{count}} dosya silinsin mi? Bu geri alınamaz.`,noFiles:`Yazıcıda dosya yok`,loadingFiles:`Dosyalar yükleniyor...`,failedToLoad:`Dosyalar yüklenemedi`,toast:{filesDeleted:`{{count}} dosya silindi`,deleteFailed:`Silme başarısız: {{error}}`}},confirm:{delete:`Bunu silmek istediğinizden emin misiniz?`,unsavedChanges:`Kaydedilmemiş değişiklikleriniz var. Çıkmak istediğinizden emin misiniz?`,clearQueue:`Kuyruğu temizlemek istediğinizden emin misiniz?`},login:{title:`Bambuddy Giriş`,subtitle:`Hesabınıza giriş yapın`,username:`Kullanıcı Adı`,usernamePlaceholder:`Kullanıcı adınızı girin`,usernameOrEmail:`Kullanıcı Adı veya E-posta`,usernameOrEmailPlaceholder:`Kullanıcı adı veya @ E-posta`,password:`Parola`,passwordPlaceholder:`Parolanızı girin`,signIn:`Giriş yap`,signingIn:`Giriş yapılıyor...`,rememberMe:`Beni Hatırla`,forgotPassword:`Parolanızı mı unuttunuz?`,autologinFailed:`Otomatik SSO girişi başarısız oldu. Devam etmek için aşağıdan bir sağlayıcı seçin.`,localDisabledNotice:`Yerel oturum açma devre dışı. Aşağıdaki SSO sağlayıcılarından birini kullanın.`,loginSuccess:`Başarıyla giriş yapıldı`,loginFailed:`Giriş başarısız`,enterCredentials:`Lütfen kullanıcı adı ve parola girin`,enterEmail:`Lütfen e-posta adresinizi girin`,oidcLoginFailed:`OIDC girişi başarısız`,oidcErrors:{providerError:`Kimlik sağlayıcısı bir hata döndürdü`,missingParameters:`OIDC geri arama gerekli parametreleri eksik`,invalidState:`OIDC durumu geçersiz veya zaten kullanılmış`,stateExpired:`OIDC giriş oturumu süresi doldu — lütfen tekrar deneyin`,providerNotFound:`OIDC sağlayıcısı bulunamadı`,discoveryFailed:`OIDC keşif belgesi alınamadı`,invalidDiscovery:`OIDC keşif belgesi geçersiz`,networkError:`OIDC belirteç değişimi sırasında ağ hatası`,badResponse:`OIDC belirteç değişimi sırasında beklenmeyen yanıt`,noIdToken:`OIDC sağlayıcısı bir ID belirteci döndürmedi`,validationFailed:`OIDC belirteç doğrulaması başarısız`,nonceMismatch:`OIDC nonce uyuşmazlığı — olası tekrar saldırısı`,missingSubClaim:`OIDC belirteci sub iddiasını içermiyor`,noLinkedAccount:`Bu OIDC kimliğine bağlı yerel hesap yok`,accountInactive:`Hesabınız aktif değil`,userResolutionFailed:`Hesabınız çözümlenemedi`,internalError:`OIDC girişi sırasında dahili bir hata oluştu`,tokenExchangeFailed:`OIDC belirteç değişimi başarısız`},forgotPasswordTitle:`Parolayı Unuttum`,forgotPasswordMessage:`Parolanızı unuttuysanız, sıfırlamak için lütfen sistem yöneticinizle iletişime geçin.`,forgotPasswordEmailMessage:`E-posta adresinizi girin, size yeni bir parola göndereceğiz.`,emailAddress:`E-posta Adresi`,emailPlaceholder:`eposta.adresi@example.com`,cancel:`İptal`,sending:`Gönderiliyor...`,sendResetEmail:`Sıfırlama E-postası Gönder`,howToReset:`Parolanızı nasıl sıfırlarsınız:`,resetStep1:`Bambuddy yöneticinizle iletişime geçin`,resetStep2:`Kullanıcı Yönetiminde parolanızı sıfırlamasını isteyin`,resetStep3:`Sizin için yeni bir geçici parola belirleyebilirler`,resetStep4:`Yeni parolayla giriş yapın ve Ayarlarda değiştirin`,gotIt:`Anladım`,resetPassword:{title:`Yeni Parola Belirle`,subtitle:`Aşağıya yeni parolanızı girin ve onaylayın.`,newPassword:`Yeni Parola`,newPasswordPlaceholder:`En az 8 karakter`,confirmPassword:`Parolayı Onayla`,confirmPasswordPlaceholder:`Yeni parolayı tekrarlayın`,saving:`Kaydediliyor…`,submit:`Yeni Parola Belirle`,backToLogin:`Girişe dön`,passwordsDoNotMatch:`Parolalar eşleşmiyor`,passwordTooShort:`Parola en az 8 karakter olmalı`,resetFailed:`Parola sıfırlama başarısız. Bağlantının süresi dolmuş olabilir.`},twoFA:{title:`İki Faktörlü Kimlik Doğrulama`,subtitle:`Hesabınız 2FA ile korunuyor. Aşağıya doğrulama kodunu girin.`,methodAuthenticator:`Doğrulayıcı Uygulama`,methodEmail:`E-posta Kodu`,methodBackup:`Yedek Kod`,instructionsTotp:`Doğrulayıcı uygulamanızı açın ve Bambuddy için 6 haneli kodu girin.`,instructionsEmail:`E-posta adresinize 6 haneli bir kod gönderildi. 10 dakika içinde sona erer.`,instructionsEmailNotSent:`E-posta yoluyla bir doğrulama kodu almak için aşağıdaki düğmeye tıklayın.`,instructionsBackup:`8 karakterlik yedek kurtarma kodlarınızdan birini girin. Her kod yalnızca bir kez kullanılabilir.`,sendCodeButton:`E-posta ile Kod Gönder`,sendingCode:`Gönderiliyor...`,resendCode:`Kodu yeniden gönder`,codeLabel:`Doğrulama Kodu`,backupCodeLabel:`Yedek Kod`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`Doğrula`,verifyingButton:`Doğrulanıyor...`,backToLogin:`← Girişe dön`,orContinueWith:`veya şununla devam edin`,signInWith:`{{provider}} ile giriş yap`,enterCode:`Lütfen doğrulama kodunu girin`,sendCodeFailed:`Doğrulama kodu gönderilemedi`,invalidCode:`Geçersiz kod. Lütfen tekrar deneyin.`}},setup:{title:`Bambuddy Kurulumu`,subtitle:`Bambuddy örneğiniz için kimlik doğrulamayı yapılandırın`,enableAuth:`Kimlik Doğrulamayı Etkinleştir`,adminAccount:`Yönetici Hesabı`,adminAccountDesc:`Yönetici kullanıcılar zaten varsa, kimlik doğrulama mevcut yönetici hesapları kullanılarak etkinleştirilecek. Mevcut yöneticileri kullanmak için aşağıdaki alanları boş bırakın veya yeni bir yönetici kullanıcı oluşturmak için yeni kimlik bilgileri girin.`,adminUsername:`Yönetici Kullanıcı Adı`,adminPassword:`Yönetici Parolası`,optionalIfAdminExists:`(yönetici kullanıcılar varsa isteğe bağlı)`,adminUsernamePlaceholder:`Yönetici kullanıcı adı girin (isteğe bağlı)`,adminPasswordPlaceholder:`Yönetici parolası girin (isteğe bağlı)`,confirmPassword:`Parolayı Onayla`,confirmPasswordPlaceholder:`Yönetici parolasını onayla`,settingUp:`Kuruluyor...`,completeSetup:`Kurulumu Tamamla`,toast:{authEnabledAdminCreated:`Kimlik doğrulama etkinleştirildi ve yönetici kullanıcı oluşturuldu`,authEnabledExistingAdmins:`Mevcut yönetici kullanıcılar kullanılarak kimlik doğrulama etkinleştirildi`,setupCompleted:`Kurulum tamamlandı`,enterBothCredentials:`Lütfen hem yönetici kullanıcı adı hem de parola girin veya mevcut yönetici kullanıcıları kullanmak için her ikisini de boş bırakın`,passwordsDoNotMatch:`Parolalar eşleşmiyor`,passwordTooShort:`Parola en az 6 karakter olmalı`}},changePassword:{title:`Parolayı Değiştir`,currentPassword:`Mevcut Parola`,currentPasswordPlaceholder:`Mevcut parolayı girin`,newPassword:`Yeni Parola`,newPasswordPlaceholder:`Yeni parolayı girin (en az 6 karakter)`,confirmPassword:`Yeni Parolayı Onayla`,confirmPasswordPlaceholder:`Yeni parolayı onayla`,passwordsDoNotMatch:`Parolalar eşleşmiyor`,passwordTooShort:`Parola en az 6 karakter olmalı`,changing:`Değiştiriliyor...`,success:`Parola başarıyla değiştirildi`,failed:`Parola değiştirilemedi`},plateAlert:{title:`Baskı Duraklatıldı!`,message:`Baskı plakasında nesneler algılandı. Baskı otomatik olarak duraklatıldı. Lütfen plakayı temizleyin ve baskıya devam edin.`,understand:`Anladım`},camera:{title:`Kamera Görünümü`,invalidPrinterId:`Geçersiz yazıcı ID'si`,live:`Canlı`,snapshot:`Anlık Görüntü`,restartStream:`Akışı yeniden başlat`,refreshSnapshot:`Anlık görüntüyü yenile`,fullscreen:`Tam ekran`,exitFullscreen:`Tam ekrandan çık`,connectingToCamera:`Kameraya bağlanılıyor...`,capturingSnapshot:`Anlık görüntü yakalanıyor...`,connectionLost:`Bağlantı kesildi`,connectionFailed:`Kamera bağlantısı başarısız`,reconnecting:`{{countdown}}sn içinde yeniden bağlanılıyor... (deneme {{attempt}}/{{max}})`,reconnectNow:`Şimdi yeniden bağlan`,cameraUnavailable:`Kamera kullanılamıyor`,cameraUnavailableDesc:`Yazıcının açık ve bağlı olduğundan emin olun.`,noCamera:`Kamera yok`,retry:`Yeniden dene`,cameraStream:`Kamera akışı`,zoomOut:`Uzaklaştır`,zoomIn:`Yakınlaştır`,resetZoom:`Yakınlaştırmayı sıfırla`,recording:`Kaydediyor`,startRecording:`Kaydı Başlat`,stopRecording:`Kaydı Durdur`,chamberLight:`Hazne ışığını aç/kapat`,unavailable:`Kamera kullanılamıyor`,diagnose:{button:`Tanıla`,modalTitle:`Kamera tanılaması`,running:`Tanılama çalışıyor...`,runFailed:`Tanılama çalıştırılamadı: {{error}}`,retry:`Tekrar çalıştır`,stage:{tcp_reachable:`Ağ erişilebilirliği`,first_frame:`Kare yakalama`,live_stream_active:`Canlı akış aktif`},summary:{all_ok:`Kamera çalışıyor. Tanılama tüm aşamaları başarıyla tamamladı.`,live_stream_active_healthy:`Kamera şu anda son karelerle akış yapıyor — teste gerek yok.`,printer_unreachable:`Yazıcıya erişilemiyor. IP adresini, ağ bağlantısını ve yazıcının açık olduğunu kontrol edin.`,camera_port_closed:`Yazıcıya erişilebilir ancak kamera portu kapalı. Yazıcı ayarlarında yalnızca LAN modunun ve Geliştirici Modunun etkin olduğundan emin olun.`,no_frame:`Kameraya bağlanıldı ancak hiç kare alınmadı. Tekrar deneyin veya yazıcı ayarlarında kameranın etkin olduğunu kontrol edin.`,unknown_failure:`Kamera tanılaması bilinmeyen bir nedenle başarısız oldu. Ayrıntılar için destek günlüğüne bakın.`},meta:{protocol:`Protokol`,port:`Port`,profile:`Profil`}}},groups:{title:`Grup Yönetimi`,subtitle:`Erişim kontrolü için izin gruplarını yönetin`,backToSettings:`Ayarlara Dön`,createGroup:`Grup Oluştur`,noPermission:`Bu sayfaya erişim izniniz yok.`,system:`Sistem`,noDescription:`Açıklama yok`,usersCount:`{{count}} kullanıcı`,permissionsCount:`{{count}} izin`,edit:`Düzenle`,delete:`Sil`,toast:{created:`Grup başarıyla oluşturuldu`,updated:`Grup başarıyla güncellendi`,deleted:`Grup başarıyla silindi`,enterGroupName:`Lütfen bir grup adı girin`},modal:{editGroup:`Grubu Düzenle`,createGroup:`Grup Oluştur`,cancel:`İptal`,saving:`Kaydediliyor...`,creating:`Oluşturuluyor...`,saveChanges:`Değişiklikleri Kaydet`},form:{groupName:`Grup Adı`,groupNamePlaceholder:`Grup adını girin`,systemGroupWarning:`Sistem grubu adları değiştirilemez`,description:`Açıklama`,descriptionPlaceholder:`Açıklama girin (isteğe bağlı)`,permissions:`İzinler ({{count}} seçildi)`},deleteModal:{title:`Grubu Sil`,message:`Bu grubu silmek istediğinizden emin misiniz? Bu gruptaki kullanıcılar bu izinleri kaybedecek.`,confirm:`Grubu Sil`},editor:{title:`Grubu Düzenle`,createTitle:`Grup Oluştur`,search:`İzinlerde ara...`,selectAll:`Tümünü Seç`,clearAll:`Tümünü Temizle`,permissionsSelected:`{{count}} seçildi`,noResults:`Aramanızla eşleşen izin yok`,websocketHint:`Canlı güncellemeler için gereklidir. Bu izin olmadan arayüz düzenli yoklamaya geri döner.`}},users:{title:`Kullanıcı Yönetimi`,subtitle:`Kullanıcıları ve Bambuddy örneğinize erişimlerini yönetin`,backToSettings:`Ayarlara Dön`,createUser:`Kullanıcı Oluştur`,noPermission:`Bu sayfaya erişim izniniz yok.`,admin:`Yönetici`,noGroups:`Grup yok`,active:`Aktif`,inactive:`Pasif`,edit:`Düzenle`,delete:`Sil`,system:`Sistem`,noGroupsAvailable:`Kullanılabilir grup yok`,table:{username:`Kullanıcı Adı`,groups:`Gruplar`,status:`Durum`,actions:`İşlemler`},toast:{created:`Kullanıcı başarıyla oluşturuldu`,updated:`Kullanıcı başarıyla güncellendi`,deleted:`Kullanıcı başarıyla silindi`,fillRequired:`Lütfen tüm zorunlu alanları doldurun`,passwordsDoNotMatch:`Parolalar eşleşmiyor`,passwordTooShort:`Parola en az 6 karakter olmalı`,ldapProvisioned:`"{{username}}" LDAP kullanıcısı tedarik edildi`},modal:{createUser:`Kullanıcı Oluştur`,editUser:`Kullanıcıyı Düzenle`,cancel:`İptal`,creating:`Oluşturuluyor...`,saving:`Kaydediliyor...`,saveChanges:`Değişiklikleri Kaydet`,advancedAuthSubtitle:`Gelişmiş Kimlik Doğrulama ile`,tabsAriaLabel:`Kullanıcı kaynağı`,localTab:`Yerel`,ldapTab:`LDAP`,ldapSearchLabel:`Dizinde ara`,ldapSearchPlaceholder:`Bir kullanıcı adı, isim veya e-posta yazın...`,ldapMinChars:`Aramak için en az 2 karakter yazın`,ldapTypeToSearch:`LDAP dizininde aramak için yazmaya başlayın`,ldapSearching:`Dizinde aranıyor...`,ldapNoResults:`Dizinde eşleşen kullanıcı yok`,ldapSearchError:`Dizin araması başarısız. LDAP sunucu durumunu kontrol edin.`,ldapAlreadyProvisioned:`Zaten tedarik edildi`,ldapSelectedLabel:`Seçildi`,ldapProvision:`Kullanıcıyı tedarik et`,ldapProvisioning:`Tedarik ediliyor...`,ldapErrorProvision:`Tedarik başarısız. LDAP sunucu durumunu kontrol edin ve tekrar deneyin.`},form:{username:`Kullanıcı Adı`,usernamePlaceholder:`Kullanıcı adını girin`,email:`E-posta`,emailPlaceholder:`kullanici@example.com`,password:`Parola`,passwordPlaceholder:`Parolayı girin`,confirmPassword:`Parolayı Onayla`,confirmPasswordPlaceholder:`Parolayı onayla`,newPasswordPlaceholder:`Yeni parolayı girin`,confirmNewPasswordPlaceholder:`Yeni parolayı onayla`,leaveBlankToKeep:`mevcut olanı korumak için boş bırakın`,groups:`Gruplar`,optional:`isteğe bağlı`,autoGeneratedPassword:`Güvenli bir parola otomatik olarak oluşturulacak ve kullanıcıya e-posta ile gönderilecek.`,passwordManagedByAdvancedAuth:`Parola Gelişmiş Kimlik Doğrulama tarafından yönetilir. Kullanıcıya e-posta yoluyla yeni bir parola göndermek için "Parolayı Sıfırla"yı kullanın.`,resetPassword:`Parolayı Sıfırla`,resettingPassword:`Parola Sıfırlanıyor...`},deleteModal:{title:`Kullanıcıyı Sil`,message:`Bu kullanıcıyı silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.`,confirm:`Kullanıcıyı Sil`}},streamOverlay:{title:`Akış Bindirmesi`,invalidPrinterId:`Geçersiz yazıcı ID'si`,cameraStream:`Kamera akışı`,progress:`İlerleme`,eta:`ETA`,printerIdle:`Yazıcı boşta`,printerOffline:`Yazıcı çevrimdışı`,status:{printing:`Yazdırılıyor`,paused:`Duraklatıldı`,finished:`Tamamlandı`,failed:`Başarısız`,idle:`Boşta`,unknown:`Bilinmiyor`}},profiles:{title:`Profiller`,subtitle:`Dilimleyici ön ayarlarını ve basınç ilerleme kalibrasyonlarını yönetin`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`Yerel Profiller`,kprofiles:`K-Profilleri`},orcaCloud:{connectedAs:`Bağlı kullanıcı`,connectedShort:`Orca Cloud'a bağlanıldı`,logout:`Bağlantıyı kes`,noLogoutPermission:`Bağlantıyı kesme izniniz yok`,noConnectPermission:`Orca Cloud'a bağlanma izniniz yok`,retry:`Yeniden dene`,connectButton:`Orca Cloud'a bağlan`,connect:{title:`Orca Cloud'a bağlan`,description:`Dilimleyici profillerinizi Bambuddy ile senkronize etmek için Orca Cloud hesabınıza giriş yapın.`},device:{title:`Orca Cloud'da Bambuddy'yi onayla`,instruction:`Orca Cloud'u açın ve bu kodu onaylayın. Onayladığınızda Bambuddy otomatik olarak bağlanır.`,codeLabel:`Eşleştirme kodunuz`,openButton:`Orca Cloud onay sayfasını aç`,manualHint:`Ya da {{url}} adresine gidin ve yukarıdaki kodu girin.`,waiting:`Onayınız bekleniyor…`,cancel:`İptal`},profiles:{title:`Orca Cloud profilleriniz ({{count}})`,refresh:`Yenile`,empty:`Orca Cloud hesabınızda henüz profil bulunamadı.`},toast:{disconnected:`Orca Cloud bağlantısı kesildi`},errors:{startFailed:`Orca Cloud giriş akışı başlatılamadı.`,denied:`Eşleştirme Orca Cloud'da reddedildi.`,expired:`Eşleştirme kodunun süresi doldu. Tekrar denemek için Bağlan'a tıklayın.`,pollFailed:`Onay beklenirken bağlantı kesildi. Lütfen tekrar deneyin.`}},localProfiles:{title:`Yerel Profiller`,subtitle:`OrcaSlicer'dan dilimleyici ön ayarlarını içe aktar ve yönet`,import:`Profilleri İçe Aktar`,importDesc:`.bbscfg, .bbsflmt, .orca_filament, .zip veya .json dosyalarını buraya bırakın`,importing:`İçe aktarılıyor...`,search:`Yerel ön ayarlarda ara...`,noPresets:`Henüz yerel ön ayar yok`,noSearchResults:`Aramanızla eşleşen ön ayar yok`,badge:`Yerel`,edit:`Düzenle`,delete:`Sil`,cancel:`İptal`,deleteConfirmTitle:`Ön Ayarı Sil`,deleteConfirm:`Bu ön ayarı silmek istediğinizden emin misiniz? Bu geri alınamaz.`,source:`Kaynak`,inheritsFrom:`Miras alır`,filamentType:`Tür`,vendor:`Satıcı`,compatiblePrinters:`Yazıcılar`,nozzleTemp:`Nozul Sıcaklığı`,cost:`Maliyet`,density:`Yoğunluk`,pressureAdvance:`Basınç İlerlemesi`,filament:`Filament`,process:`İşlem`,printer:`Yazıcı`,toast:{importSuccess:`{{count}} ön ayar içe aktarıldı`,importSkipped:`{{count}} ön ayar atlandı (yinelenenler)`,importError:`İçe aktarma sırasında {{count}} hata`,deleted:`Ön ayar silindi`,updated:`Ön ayar güncellendi`}},connectedAs:`Bağlı kullanıcı`,signInExpiredTitle:`Bambu Cloud oturumu sona erdi`,signInExpiredBody:`Bambu Lab kayıtlı belirteci artık kabul etmiyor. Bulut profillerini, MakerWorld içe aktarmalarını ve donanım yazılımı denetimlerini geri yüklemek için yeniden oturum açın.`,logout:`Çıkış`,noLogoutPermission:`Çıkış yapma izniniz yok`,failedToLoad:`Profiller yüklenemedi`,retry:`Yeniden dene`,time:{justNow:`Az önce`,minsAgo:`{{count}}dk önce`,hoursAgo:`{{count}}sa önce`,daysAgo:`{{count}}g önce`},toast:{loggedOut:`Çıkış yapıldı`},login:{title:`Bambu Cloud'a Bağlan`,subtitle:`Dilimleyici ön ayarlarınızı cihazlar arasında senkronize edin`,email:`E-posta`,password:`Parola`,region:`Bölge`,regionGlobal:`Global`,regionChina:`Çin`,verificationCode:`Doğrulama Kodu`,totpCode:`Doğrulayıcı Kodu`,checkEmail:`E-postanızı ({{email}}) 6 haneli kod için kontrol edin`,enterTotpHint:`Doğrulayıcı uygulamanızdan 6 haneli kodu girin`,accessToken:`Erişim Belirteci`,accessTokenHint:`Bambu Cloud erişim belirtecinizi yapıştırın. Çin bölgesi hesapları bu yolu kullanmalıdır (telefon bağımlı — e-posta girişi kullanılamaz). MakerWorld çerezlerinden belirteci nasıl alacağınız için wiki'ye bakın.`,back:`Geri`,loginButton:`Giriş`,verifyButton:`Doğrula`,setTokenButton:`Belirteç Ayarla`,useToken:`Erişim belirteci kullan`,useEmail:`E-posta ile giriş yap`,toast:{loggedIn:`Başarıyla giriş yapıldı`,codeSent:`Doğrulama kodu e-postanıza gönderildi`,enterTotp:`Doğrulayıcı uygulamanızdan kod girin`,tokenSet:`Belirteç başarıyla ayarlandı`}},presets:{myPreset:`Ön ayarım (düzenlenebilir)`,duplicate:`Çoğalt`,editable:`Düzenlenebilir`,failedToLoadDetails:`Ön ayar ayrıntıları yüklenemedi`,deleteConfirm:`Bu ön ayar silinsin mi?`,deleteWarning:`Bu, "{{name}}" ön ayarını Bambu Cloud'dan kalıcı olarak silecek. Bu geri alınamaz.`,noDuplicatePermission:`Ön ayarları çoğaltma izniniz yok`,noEditPermission:`Ön ayarları düzenleme izniniz yok`,noDeletePermission:`Ön ayarları silme izniniz yok`,types:{filament:`Filament ön ayarı`,printer:`Yazıcı ön ayarı`,process:`İşlem ön ayarı`},toast:{deleted:`Ön ayar silindi`,created:`Ön ayar oluşturuldu`,updated:`Ön ayar güncellendi`,duplicated:`Ön ayar çoğaltıldı`,fieldAdded:`"{{key}}" alanı eklendi`,exported:`Ön ayar dışa aktarıldı`},baseLabel:`Taban: {{name}}`,currentLabel:`Mevcut: {{name}}`,newPreset:`Yeni Ön Ayar`,editPreset:`Ön Ayarı Düzenle`,duplicatePreset:`Ön Ayarı Çoğalt`,createNewPreset:`Yeni Ön Ayar Oluştur`,customizeSettings:`Yeni ön ayarınız için ayarları özelleştirin`,compareWithBase:`Taban ön ayarla karşılaştır`,compare:`Karşılaştır`,basePreset:`Taban Ön Ayar`,selectBasePreset:`Taban ön ayar seç...`,presetName:`Ön Ayar Adı`,myCustomPreset:`Özel ön ayarım`,inheritsFrom:`Miras alır`,dropJsonToImport:`İçe aktarmak için JSON bırakın`,tabs:{common:`Ortak`,allFields:`Tüm Alanlar`},availableFields:`Kullanılabilir Alanlar`,searchFieldsPlaceholder:`Alanlarda ara...`,noMatchingFields:`Eşleşen alan yok`,allFieldsAdded:`Tüm alanlar eklendi`,addCustomField:`Özel alan ekle`,yourOverrides:`Geçersiz Kılmalarınız`,noOverridesYet:`Henüz geçersiz kılma yok`,clickFieldsToAdd:`Eklemek için soldaki alanlara tıklayın`,saveAsTemplate:`Şablon olarak kaydet`,jsonTip:`İpucu: Ayarları içe aktarmak için bu modalin herhangi bir yerine .json dosyasını sürükleyip bırakın`},cloudView:{searchPlaceholder:`Ön ayarlarda ara...`,templates:`Şablonlar`,refresh:`Yenile`,newPreset:`Yeni Ön Ayar`,clearFilters:`Filtreleri temizle`,compareMode:`Karşılaştırma Modu`,selectAnotherPreset:`Başka bir {{type}} ön ayarı seç`,clickTwoPresets:`Karşılaştırmak için aynı türden iki ön ayara tıklayın`,selectFirst:`1. İlkini seç`,selectSecond:`2. İkincisini seç`,compareNow:`Şimdi Karşılaştır`,lastSynced:`Son senkronizasyon:`,showingCount:`{{total}} ön ayardan {{showing}} tanesi gösteriliyor`,noPresetsFound:`Ön ayar bulunamadı`,columns:{filament:`Filament`,process:`İşlem`,printer:`Yazıcı`},noFilamentPresets:`Filament ön ayarı yok`,noProcessPresets:`İşlem ön ayarı yok`,noPrinterPresets:`Yazıcı ön ayarı yok`,filters:{type:`Tür`,owner:`Sahip`,printer:`Yazıcı`,nozzle:`Nozul`,filament:`Filament`,layer:`Katman`,all:`Tümü`,myPresets:`Ön Ayarlarım`,builtIn:`Yerleşik`,process:`İşlem`},noTemplatesPermission:`Şablonları yönetme izniniz yok`,noRefreshPermission:`Profilleri yenileme izniniz yok`,noCreatePermission:`Ön ayar oluşturma izniniz yok`},templates:{title:`Hızlı Şablonlar`,noTemplates:`Henüz şablon yok`,createFirst:`Ön ayar düzenleyicisinden şablonlar oluşturun`,typeFilter:`Tür:`,deleteTitle:`Şablonu Sil`,deleteWarning:`Bu işlem geri alınamaz`,deleteConfirm:`"{{name}}" silmek istediğinizden emin misiniz?`,namePlaceholder:`Şablon adı`,descriptionPlaceholder:`Açıklama`,settingsJson:`Ayarlar (JSON)`,fieldsCount:`{{count}} alan`,shownInModals:`Modallerde gösterilir`,hiddenInModals:`Modallerde gizli`,apply:`Uygula`,toast:{deleted:`Şablon silindi`,updated:`Şablon güncellendi`,created:`Şablon oluşturuldu`,applied:`Şablon uygulandı`}}},support:{debugLoggingActive:`Hata ayıklama kaydı aktif`,manageLogs:`Yönet`,collectItem7:`Yazıcı bağlantısı ve firmware sürümleri`,collectItem8:`Entegrasyon durumu (Spoolman, MQTT, HA)`,collectItem9:`Ağ arayüzleri (yalnızca alt ağlar)`,collectItem10:`Python paket sürümleri`,collectItem11:`Veritabanı sağlık kontrolleri`,collectItem12:`Docker ortam ayrıntıları`,bundleGenerating:`Paket oluşturuluyor...`,bundleStepConnection:`Yazıcı bağlantı kontrolleri çalıştırılıyor`,bundleStepVirtualPrinters:`Sanal yazıcı kurulum kontrolleri çalıştırılıyor`,bundleStepLogScan:`Son günlüklerde bilinen sorunlar taranıyor`,bundleStepBuild:`Destek paketi ZIP oluşturuluyor`},fileManager:{title:`Dosya Yöneticisi`,subtitle:`Baskı dosyalarınızı organize edin ve yönetin`,uploadFiles:`Dosya Yükle`,newFolder:`Yeni Klasör`,folderName:`Klasör Adı`,folderNamePlaceholder:`örn., Fonksiyonel Parçalar`,renameFile:`Dosyayı Yeniden Adlandır`,renameFolder:`Klasörü Yeniden Adlandır`,invalidFilenameChar:`Baskı dosya adlarında "{{char}}" karakterine izin verilmiyor. Yazıcının SD kartı şu karakterleri reddeder: < > : " / \\ | ? *`,moveFiles:`{{count}} Dosyayı Taşı`,rootNoFolder:`Kök (Klasör Yok)`,current:`mevcut`,linkFolder:`Klasörü Bağla`,linkFolderDescription:`Hızlı erişim için "{{name}}" klasörünü bir projeye veya arşive bağla.`,project:`Proje`,archive:`Arşiv`,noProjectsFound:`Proje bulunamadı`,noArchivesFound:`Arşiv bulunamadı`,unlink:`Bağlantıyı Kaldır`,link:`Bağla`,dragDropFiles:`Dosyaları buraya sürükleyip bırakın`,dropFilesHere:`Dosyaları buraya bırakın`,releaseToUpload:`Yüklemek için bırakın`,orClickToBrowse:`veya göz atmak için tıklayın`,allFileTypesSupported:`Tüm dosya türleri desteklenir. ZIP dosyaları çıkarılacak.`,zipFilesDetected:`ZIP dosyaları algılandı`,zipExtractOptions:`ZIP dosyaları çıkarılacak. Klasör yapısını nasıl yöneteceğinizi seçin:`,preserveZipStructure:`ZIP'ten klasör yapısını koru`,createFolderFromZip:`ZIP dosya adından klasör oluştur`,stlThumbnailGeneration:`STL küçük resim oluşturma`,zipMayContainStl:`ZIP dosyaları STL dosyaları içerebilir. Küçük resimler çıkarma sırasında oluşturulabilir.`,thumbnailsCanBeGenerated:`STL dosyaları için küçük resimler oluşturulabilir. Büyük modellerin işlenmesi daha uzun sürebilir.`,generateThumbnailsForStl:`STL dosyaları için küçük resim oluştur`,threemfDetected:`3MF dosyaları algılandı`,threemfExtractionInfo:`Yazıcı modeli, malzeme, renk ve baskı ayarları 3MF dosyalarından otomatik olarak çıkarılacak.`,willBeExtracted:`Çıkarılacak`,filesExtracted:`{{count}} dosya çıkarıldı`,uploadComplete:`Yükleme tamamlandı: {{succeeded}} başarılı`,uploadFailed:`Yükleme başarısız`,zipFilesFailed:`{{count}} dosya başarısız`,uploading:`Yükleniyor...`,changeLink:`Bağlantıyı Değiştir...`,linkTo:`Şuna bağla...`,linkToProjectOrArchive:`Projeye veya arşive bağla`,generateThumbnail:`Küçük Resim Oluştur`,generateThumbnails:`Küçük Resimler Oluştur`,generateThumbnailsForMissing:`Eksik olan STL dosyaları için küçük resimler oluştur`,gridView:`Izgara görünümü`,listView:`Liste görünümü`,lowDiskSpaceWarning:`Düşük disk alanı uyarısı`,lowDiskSpaceDetails:`Toplam {{total}} alandan yalnızca {{free}} boş. Eşik ayarlarda {{threshold}} GB olarak ayarlanmış.`,files:`Dosyalar`,folders:`Klasörler`,size:`Boyut`,free:`Boş`,allFiles:`Tüm Dosyalar`,allExternal:`Harici`,externalIsEmpty:`Harici dosya yok`,externalEmptyDescription:`Bağlı harici klasörlerinizdeki dosyalar burada görünecek.`,wrap:`Sar`,enableTextWrapping:`Metin sarmayı etkinleştir`,disableTextWrapping:`Metin sarmayı devre dışı bırak`,collapse:`Daralt`,collapseFoldersByDefault:`Klasörleri varsayılan olarak daralt`,expandFoldersByDefault:`Klasörleri varsayılan olarak genişlet`,folderSort:`Klasörleri sırala`,folderSortByName:`Ada göre`,folderSortByActivity:`Son etkinliğe göre`,dragToResizeTooltip:`Yeniden boyutlandırmak için sürükleyin, sıfırlamak için çift tıklayın`,searchFiles:`Dosyalarda ara...`,searchSubfoldersHint:`Alt klasörler dahil`,readme:{truncated:`Kısaltıldı`,show:`README’yi göster`,hide:`README’yi gizle`,label:`README`},tags:{title:`Etiketler`,subtitle:`Çapraz filtreleme için dosyaları etiketleyin — oyuncak, çocuklar için güvenli, sadece PETG, ne isterseniz.`,manage:`Etiketler`,manageTitle:`Etiket kataloğunu yönet`,add:`Yeni etiket`,edit:`Etiketi yeniden adlandır`,name:`Ad`,fileCount:`Dosya`,empty:`Henüz etiket yok. Bir tane oluşturup dosyaları etiketlemeye başlayın.`,noMatches:`Eşleşen etiket yok.`,createPlaceholder:`örn. oyuncak, çocuk-güvenli, petg`,createButton:`Oluştur`,nameRequired:`Ad gerekli.`,searchPlaceholder:`Etiketleri filtrele...`,created:`Etiket oluşturuldu.`,updated:`Etiket yeniden adlandırıldı.`,deleted:`Etiket kaldırıldı.`,saveFailed:`Etiket kaydedilemedi.`,deleteFailed:`Etiket kaldırılamadı.`,applyFailed:`Etiketler uygulanamadı.`,applyAdd:`Etiket ekle`,applyRemove:`Etiket kaldır`,applyAddSuccess:`{{files}} dosyaya {{count}} etiket eklendi.`,applyRemoveSuccess:`{{files}} dosyadan {{count}} etiket kaldırıldı.`,actionAdd:`Seçili dosyalara ekle`,actionRemove:`Seçili dosyalardan kaldır`,tagAction:`Etiketle`,bulkTitle:`Seçili {{count}} dosyayı etiketle`,bulkTooltip:`Seçili her dosyaya etiket ekleyin veya kaldırın.`,noPermission:`Dosyaları etiketleme izniniz yok.`,filterLabel:`Filtre:`,clearAll:`Tümünü temizle`,confirmDelete:`"{{name}}" etiketi silinsin mi?`,confirmDeleteMessage:`Bu, etiketi katalogdan kaldırır. Dosyalar diğer etiketlerini korur.`,confirmDeleteInUseMessage:`Bu etiket {{count}} dosyada bulunuyor. Silmek hepsinden çıkarır; dosyaların kendisine dokunulmaz.`,editAria:`{{name}} düzenle`,deleteAria:`{{name}} sil`},allTypes:`Tüm türler`,prints:`Baskılar`,ascending:`Artan`,descending:`Azalan`,showModified:`Değiştirme tarihlerini göster`,hideModified:`Değiştirme tarihlerini gizle`,lastModified:`Son değiştirme`,lastActivity:`Son etkinlik`,resultsCount:`{{total}} dosyadan {{showing}} tanesi`,selectAll:`Tümünü Seç`,deselectAll:`Seçimi Kaldır`,selected:`{{count}} seçildi`,adding:`Ekleniyor...`,loadingFiles:`Dosyalar yükleniyor...`,folderIsEmpty:`Klasör boş`,noFilesYet:`Henüz dosya yok`,folderEmptyDescription:`Başlamak için bu klasöre dosya yükleyin veya dosyaları taşıyın.`,noFilesDescription:`Baskıyla ilgili dosyalarınızı organize etmeye başlamak için dosya yükleyin.`,noMatchingFiles:`Eşleşen dosya yok`,noMatchingFilesDescription:`Mevcut arama veya filtre kriterlerinizle eşleşen dosya yok.`,clearFilters:`Filtreleri temizle`,printedCount:`{{count}}x yazdırıldı`,uploadedBy:`Yükleyen`,deleteFolder:`Klasörü Sil`,deleteFile:`Dosyayı Sil`,deleteFilesCount:`{{count}} Dosya Sil`,deleteFolderConfirm:`Bu klasörü silmek istediğinizden emin misiniz? İçindeki tüm dosyalar da silinecek.`,deleteFileConfirm:`Bu dosyayı silmek istediğinizden emin misiniz?`,deleteFilesConfirm:`{{count}} seçili dosyayı silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.`,deleting:`Siliniyor...`,noPermissionRenameFolder:`Klasörleri yeniden adlandırma izniniz yok`,noPermissionLinkFolder:`Klasörleri bağlama izniniz yok`,noPermissionDeleteFolder:`Klasörleri silme izniniz yok`,onlyEmptyFoldersDeletable:`Yalnızca boş klasörleri silebilirsiniz`,noPermissionPrint:`Yazdırma izniniz yok`,noPermissionAddToQueue:`Kuyruğa ekleme izniniz yok`,noPermissionSlice:`Dosyaları dilimleme izniniz yok`,noPermissionDownload:`Dosyaları indirme izniniz yok`,noPermissionRenameFile:`Bu dosyayı yeniden adlandırma izniniz yok`,noPermissionGenerateThumbnail:`Küçük resim oluşturma izniniz yok`,noPermissionDeleteFile:`Bu dosyayı silme izniniz yok`,noPermissionCreateFolder:`Klasör oluşturma izniniz yok`,noPermissionUpload:`Dosya yükleme izniniz yok`,noPermissionMoveFiles:`Dosyaları taşıma izniniz yok`,noPermissionDeleteFiles:`Dosyaları silme izniniz yok`,linkExternal:`Harici Bağla`,linkExternalFolder:`Harici Klasör Bağla`,linkExternalFolderDescription:`Bir ana bilgisayar dizinini (NAS, USB, ağ paylaşımı) Dosya Yöneticisine bağla. Dosyalar kopyalanmaz — orijinal yoldan doğrudan erişilir.`,externalFolderNamePlaceholder:`örn., NAS Baskıları`,externalPath:`Ana Bilgisayar Yolu`,externalPathHelp:`Docker ana bilgisayarındaki dizinin mutlak yolu. Konteynere bind-mount edilmiş olmalıdır.`,readOnly:`Salt Okunur`,readOnlyHelp:`yüklemeleri ve silmeleri engeller`,showHiddenFiles:`Gizli dosyaları göster (nokta dosyaları)`,externalFolder:`Harici Klasör`,scanFolder:`Tara`,toast:{folderCreated:`Klasör oluşturuldu`,folderDeleted:`Klasör silindi`,fileDeleted:`Dosya silindi`,filesDeleted:`{{count}} dosya silindi`,filesMoved:`Dosyalar taşındı`,folderLinked:`Klasör bağlandı`,folderUnlinked:`Klasör bağlantısı kaldırıldı`,externalFolderLinked:`Harici klasör bağlandı ve tarandı`,folderScanned:`Tarama tamamlandı: {{added}} eklendi, {{removed}} kaldırıldı`,addedToQueue:`Kuyruğa {{count}} dosya eklendi`,addedToQueuePartial:`{{added}} dosya eklendi, {{failed}} başarısız`,failedToAddToQueue:`Dosyalar eklenemedi: {{error}}`,fileRenamed:`Dosya yeniden adlandırıldı`,folderRenamed:`Klasör yeniden adlandırıldı`,thumbnailsGenerated:`{{count}} küçük resim oluşturuldu`,thumbnailsGeneratedPartial:`{{succeeded}} küçük resim oluşturuldu, {{failed}} başarısız`,noStlMissingThumbnails:`Küçük resmi eksik STL dosyası yok`,failedToGenerateThumbnails:`Küçük resimler oluşturulamadı: {{error}}`,thumbnailGenerated:`Küçük resim oluşturuldu`,failedToGenerateThumbnail:`Küçük resim oluşturulamadı: {{error}}`}},projects:{title:`Projeler`,subtitle:`3D baskı projelerinizi organize edin ve takip edin`,newProject:`Yeni Proje`,editProject:`Projeyi Düzenle`,deleteProject:`Projeyi Sil`,projectName:`Proje Adı`,description:`Açıklama`,noProjects:`Henüz proje yok`,noProjectsFiltered:`{{status}} proje yok`,noProjectsFilteredHelp:`Hiç {{status}} projeniz yok. Projeler durumları değiştiğinde burada görünecek.`,createFirst:`İlgili baskıları organize etmeye, ilerlemeyi takip etmeye ve yapımlarınızı yönetmeye başlamak için ilk projenizi oluşturun.`,createFirstButton:`İlk Projenizi Oluşturun`,create:`Oluştur`,files:`Dosyalar`,prints:`Baskılar`,plates:`plaka`,parts:`parça`,lastModified:`Son Değiştirme`,deleteConfirm:`Bu projeyi silmek istediğinizden emin misiniz? Arşivler ve kuyruk öğelerinin bağlantısı kaldırılacak ancak silinmeyecek.`,addFiles:`Dosya Ekle`,removeFile:`Dosyayı Kaldır`,viewDetails:`Detayları Görüntüle`,namePlaceholder:`örn., Voron 2.4 Yapımı`,descriptionPlaceholder:`İsteğe bağlı açıklama...`,urlLabel:`URL`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`URL http:// veya https:// ile başlamalı`,openExternalUrl:`Proje URL'sini aç`,coverImageLabel:`Kapak fotoğrafı`,coverImageAlt:`Proje kapak fotoğrafı`,coverImageUpload:`Yükle`,coverImageReplace:`Değiştir`,coverImageRemove:`Kaldır`,color:`Renk`,targetPlates:`Hedef Plakalar`,targetPlatesPlaceholder:`örn., 25`,targetPlatesHelp:`Baskı işi sayısı`,targetParts:`Hedef Parçalar`,targetPartsPlaceholder:`örn., 150`,targetPartsHelp:`Gereken toplam nesne`,targetSets:`Dosya başına kopya`,targetSetsPlaceholder:`örn. 10`,targetSetsHelp:`Her yazdırılabilir dosyanın kaç kez yazdırılacağı`,tagsLabel:`Etiketler (virgülle ayrılmış)`,tagsPlaceholder:`örn., voron, fonksiyonel, hediye`,dueDate:`Son Tarih`,priority:`Öncelik`,priorityLow:`Düşük`,priorityNormal:`Normal`,priorityHigh:`Yüksek`,priorityUrgent:`Acil`,statusActive:`Aktif`,statusCompleted:`Tamamlandı`,statusArchived:`Arşivlendi`,done:`Tamamlandı`,completed:`tamamlandı`,failed:`başarısız`,inQueue:`kuyrukta`,noPrintsYet:`Henüz baskı yok`,printJobs:`Baskı işleri (plakalar)`,partsPrinted:`Yazdırılan parçalar`,failedParts:`Başarısız parçalar`,import:`İçe Aktar`,export:`Dışa Aktar`,importProject:`Projeyi içe aktar`,exportAll:`Tüm projeleri dışa aktar`,loading:`Projeler yükleniyor...`,noEditPermission:`Projeleri düzenleme izniniz yok`,noDeletePermission:`Projeleri silme izniniz yok`,noCreatePermission:`Proje oluşturma izniniz yok`,noImportPermission:`Projeleri içe aktarma izniniz yok`,noExportPermission:`Projeleri dışa aktarma izniniz yok`,toast:{created:`Proje oluşturuldu`,updated:`Proje güncellendi`,deleted:`Proje silindi`,imported:`Proje içe aktarıldı`,multipleImported:`{{count}} proje içe aktarıldı`,importFailed:`İçe aktarma başarısız`,exported:`Projeler dışa aktarıldı (yalnızca meta veriler)`}},projectDetail:{notFound:`Proje bulunamadı`,backToProjects:`Projelere Dön`,export:`Dışa Aktar`,exportProject:`Projeyi dışa aktar`,noExportPermission:`Projeleri dışa aktarma izniniz yok`,noEditPermission:`Projeleri düzenleme izniniz yok`,partOf:`Şunun parçası:`,priorityLabel:`Öncelik:`,noPrints:`Bu projede henüz baskı yok`,status:{active:`Aktif`,completed:`Tamamlandı`,archived:`Arşivlendi`},priority:{low:`Düşük`,normal:`Normal`,high:`Yüksek`,urgent:`Acil`},dueDate:{overdue:`Gecikmiş`,today:`Bugün teslim`,daysLeft:`{{count}} gün kaldı`},progress:{platesProgress:`Plaka İlerlemesi`,partsProgress:`Parça İlerlemesi`,setsProgress:`Tamamlanan setler`,sets:`set`,setsHint:`Her yazdırılabilir dosya bu sayıya ulaştığında bir set tamamlanır`,printJobs:`baskı işi`,parts:`parça`,percentComplete:`%{{percent}} tamamlandı`,remaining:`{{count}} kaldı`},stats:{printJobs:`Baskı İşleri`,total:`toplam`,failed:`{{count}} başarısız`,partsPrinted:`{{count}} parça yazdırıldı`,printTime:`Baskı Süresi`,filamentUsed:`Kullanılan Filament`},cost:{title:`Maliyet Takibi`,filamentCost:`Filament Maliyeti`,energy:`Enerji`,totalCost:`Toplam Maliyet`,total:`Toplam`,includesBom:`BOM dahil`,budget:`Bütçe`,remaining:`Kalan`},subProjects:{title:`Alt projeler ({{count}})`},notes:{title:`Notlar`,noEditPermission:`Notları düzenleme izniniz yok`,placeholder:`Bu proje hakkında notlar ekleyin...`,empty:`Henüz not yok. Not eklemek için Düzenle'ye tıklayın.`},files:{title:`Dosyalar`,linkFolders:`Dosya Yöneticisinden klasörleri bağla`,forQuickAccess:`hızlı erişim için bu projeye.`,fileCount:`{{count}} dosya`,empty:`Bağlı klasör yok. Dosya Yöneticisine gidin ve bu projeye bir klasör bağlayın.`,printedCount:`{{count}} kez yazdırıldı`,progressTooltip:`{{target}} yazdırmadan {{done}} tanesi tamamlandı`,noFiles:`Bu klasörde dosya yok.`},bom:{title:`Malzeme Listesi`,acquired:`{{completed}}/{{total}} edinildi`,showAll:`Tümünü göster`,hideDone:`Tamamlananları gizle`,addPart:`Parça Ekle`,noAddPermission:`Parça ekleme izniniz yok`,partNamePlaceholder:`Parça adı (örn., M3x8 vidalar)`,partName:`Parça adı`,qty:`Adet`,price:`Fiyat ({{currency}})`,sourcingUrlPlaceholder:`Kaynak URL'si (isteğe bağlı)`,remarksPlaceholder:`Notlar (isteğe bağlı)`,deletePart:`Parçayı Sil`,deleteConfirm:`"{{name}}" silmek istediğinizden emin misiniz?`,noUpdatePermission:`Parçaları güncelleme izniniz yok`,noEditPermission:`Parçaları düzenleme izniniz yok`,noDeletePermission:`Parçaları silme izniniz yok`,totalCost:`Toplam maliyet:`,empty:`Malzeme listesinde parça yok. Nelerin tedarik edilmesi gerektiğini takip etmek için donanım, elektronik veya diğer bileşenler ekleyin.`},timeline:{title:`Etkinlik Zaman Çizelgesi`,empty:`Henüz etkinlik yok.`},template:{saveAsTemplate:`Şablon Olarak Kaydet`,noCreatePermission:`Şablon oluşturma izniniz yok`},queue:{title:`Kuyruk`,viewAll:`Tümünü görüntüle`,printing:`{{count}} yazdırılıyor`,queued:`{{count}} kuyrukta`},prints:{title:`Baskılar ({{count}})`},toast:{projectUpdated:`Proje güncellendi`,partAdded:`Parça eklendi`,partRemoved:`Parça kaldırıldı`,exportFailed:`Dışa aktarma başarısız`,projectExported:`Proje dışa aktarıldı`,templateCreated:`Şablon oluşturuldu`}},system:{title:`Sistem Bilgisi`,version:`Sürüm`,uptime:`Çalışma Süresi`,cpuUsage:`CPU Kullanımı`,memoryUsage:`Bellek Kullanımı`,diskUsage:`Disk Kullanımı`,networkInfo:`Ağ Bilgisi`,logs:`Günlükler`,debugMode:`Hata Ayıklama Modu`,enableDebug:`Hata Ayıklama Kaydını Etkinleştir`,disableDebug:`Hata Ayıklama Kaydını Devre Dışı Bırak`,downloadLogs:`Günlükleri İndir`,clearLogs:`Günlükleri Temizle`,dockerInfo:`Docker Bilgisi`,containerName:`Konteyner Adı`,imageName:`İmaj Adı`,platform:`Platform`,architecture:`Mimari`},sponsors:{sectionTitle:`Bağımsız ve topluluk destekli`,tagline:`Bambuddy ücretsizdir ve böyle kalır çünkü insanlar onu desteklemeyi seçer. VC yok, bulut bağımlılığı yok.`,viewSupporters:`Destekçileri görüntüle`,toastPrints:`Bambuddy ile {{count}} baskı tamamladın. Bambuddy, destekçileri sayesinde ücretsiz kalıyor.`,toastCost:`Bambuddy ile {{total}} kadar filament takip ettin. Projeyi bağımsız tutanları gör.`,toastArchives:`{{count}} baskı Bambuddy ile arşivlendi. Bağımsız kalmasını sağlayanları gör.`,toastAnniversary:`Bambuddy ile bir yılı doldurdun! Projeyi bağımsız tutanları gör.`,toastVersionUpdate:`v{{version}} sürümüne güncellendi. Bambuddy, destekçileri sayesinde ücretsiz kalıyor.`,toastBusiness:`Bambuddy'yi {{count}} yazıcıda mı çalıştırıyorsunuz? Ekipler için bir destek planı var: öncelikli düzeltmeler, faturalandırma ve geliştiriciye doğrudan erişim.`,businessCta:`Kurumsal Bambuddy`,businessTitle:`Kurumsal Bambuddy`,businessTagline:`{{count}} yazıcı çalıştırıyorsunuz. Ekipler ve baskı çiftlikleri için öncelikli destek, ticari lisanslama ve faturalandırma mevcut.`},library:{title:`Filament Kütüphanesi`,addFilament:`Filament Ekle`,editFilament:`Filamenti Düzenle`,deleteFilament:`Filamenti Sil`,vendor:`Satıcı`,material:`Malzeme`,color:`Renk`,kFactor:`K Faktörü`,temperature:`Sıcaklık`,noFilaments:`Kütüphanede filament yok`,deleteConfirm:`Bu filamenti silmek istediğinizden emin misiniz?`,importFromPrinter:`Yazıcıdan İçe Aktar`,exportToFile:`Dosyaya Dışa Aktar`,runWithPipeline:{actionLabel:`Pipeline ile çalıştır`,noPermission:`Pipeline çalıştırma izniniz yok`,modalTitle:`Pipeline ile çalıştır`,confirmTitle:`Çalıştırmayı onayla`,confirmIntro:`Ön kontrol bu çalıştırmayla ilgili sorunlar buldu`,sourceHint:`Kaynak`,pipelineHint:`Pipeline`,targetHint:`Hedef`,pipelineListAria:`Kullanılabilir pipeline'lar`,runAnyway:`Yine de çalıştır`,loading:`Yükleniyor…`,empty:`Henüz kayıtlı pipeline yok. Dilimleme diyalogunu açın ve oluşturmak için "Pipeline olarak kaydet"e tıklayın.`,noTarget:`Hedef yazıcı belirlenmemiş`,noTargetMessage:`Bu pipeline'ın hedef yazıcısı yok. Birini seçmek için Ayarlar'da açın.`,copies:`Kopyalar`,copiesHint:`maks {{n}}`,classTarget:`Herhangi {{model}}`,toast:{started:`Pipeline çalıştırması başladı`,failed:`Çalıştırma başlatılamadı`},issue:{printerNotSet:`Bu pipeline'da hedef yazıcı belirlenmemiş.`,printerNotFound:`Hedef yazıcı artık mevcut değil.`,printerDisabled:`Hedef yazıcı devre dışı.`,printerOffline:`Hedef yazıcı çevrimdışı.`,filamentType:`Filament yuvası {{slot}}: beklenen {{expected}}, AMS'de {{actual}}`,filamentColor:`Filament yuvası {{slot}}: renk farklı (beklenen {{expected}}, AMS'de {{actual}})`,amsSlotMissing:`AMS yuvası {{slot}} bu yazıcıda yok`,filamentUnverified:`Filament yuvası {{slot}} bulut / standart ön ayardan geldiği için statik olarak doğrulanamadı.`,noClassMatches:`Bu kurulumda pipeline'ın hedef model sınıfıyla ({{expected}}) eşleşen yazıcı yok.`,classNotSet:`Pipeline hedefi yazıcı sınıfı olarak ayarlanmış ancak model seçilmemiş.`}}},slice:{title:`Modeli dilimle`,action:`Dilimle`,actionAll:`Tüm {{count}} plakayı dilimle`,actionAllTitle:`Her plakayı tek bir çok plakalı çıktıya dilimle (tek arşiv). Filament seçimi projenin tanımladığı her yuvayı kapsar.`,allPlatesToggle:`Tüm {{count}} plakayı dilimle`,slicing:`Dilimleniyor…`,printer:`Yazıcı profili`,process:`İşlem profili`,filament:`Filament profili`,filamentSlot:`Filament {{index}} ({{type}})`,selectPreset:`— Bir ön ayar seçin —`,loadingPresets:`Ön ayarlar yükleniyor…`,analyzingPlateFilaments:`Plaka filamentleri analiz ediliyor…`,analyzingPlateFilamentsHint:`Bu plakanın hangi AMS yuvalarını kullandığını keşfetmek için bir önizleme dilimleme çalıştırılıyor. Sonradan önbelleğe alınır — yeniden açma anlıktır.`,previewToast:`{{name}} analiz ediliyor — {{elapsed}}`,previewWithProgress:`{{name}} analiz ediliyor — {{stage}} (%{{percent}}) — {{elapsed}}`,notUsedByPlate:`— bu plaka tarafından kullanılmıyor`,noPresetsForSlot:`Kullanılabilir ön ayar yok`,otherPrinters:`Diğer yazıcılar`,presetsLoadFailed:`Ön ayarlar yüklenemedi. Önce içe aktarmak için Ayarlar → Profiller'i açın.`,refreshPresets:`Yenile`,refreshPresetsTitle:`Ön ayarları yenile — en güncel bulut ve paketli listeleri getir (Bambu Studio veya Bambu Handy'de bir ön ayar sildikten sonra kullanın)`,allPresetsRequired:`Tüm ön ayarlar seçilmelidir`,useEmbedded:`Dosyanın yerleşik ayarlarını kullan`,useEmbeddedHint:`Yukarıdaki profiller yerine tasarımcının ayarladığı gibi (duvarlar, dolgu, filament) dilimle. Yazıcınız dosyayla eşleştiği için sunuluyor.`,designSettings:`Tasarımcının ayarlarını koru`,designSettingsHint:`Bu dosya standart profile göre {{count}} baskı ayarını değiştiriyor.`,designSettingsSelected:`{{total}} ayardan {{selected}} tanesi seçili`,designSettingsPrinterCoupled:`yazıcıya özel`,designSettingsPrinterCoupledHint:`Dosyanın tasarlandığı yazıcıya göre ayarlanmış — sizinkinde yanlış veya aralık dışı olabilir.`,enqueuing:`Dilimleme işi gönderiliyor…`,queued:`Kuyrukta…`,failed:`Dilimleme başarısız. Dilimleyici yardımcı bileşen günlüklerini kontrol edin.`,startedToast:`{{name}} arka planda dilimleniyor…`,queuedToast:`Kuyrukta: {{name}} — {{elapsed}}`,runningToast:`{{name}} dilimleniyor — {{elapsed}}`,runningWithProgress:`{{name}} — {{stage}} (%{{percent}}) — {{elapsed}}`,runningWithProgressMultiPlate:`{{plateCount}}/{{plateIndex}} plaka • {{name}} — {{stage}} (%{{percent}}) — {{elapsed}}`,completedToast:`{{name}} dilimlendi`,failedTitle:`Dilimleme başarısız`,failedToast:`{{name}} dilimleme başarısız: {{detail}}`,tier:{local:`İçe aktarılmış`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`Standart`},cloud:{notAuthenticated:`Bulut ön ayarlarınızı görmek için Bambu Cloud'a giriş yapın (Ayarlar → Profiller → Bambu Cloud).`,expired:`Bambu Cloud oturumu süresi doldu — bulut ön ayarlarınızı yenilemek için tekrar giriş yapın.`,unreachable:`Bambu Cloud şu anda erişilemez. Yerel ve standart ön ayarlar hâlâ çalışıyor.`},orcaCloud:{notAuthenticated:`Orca ön ayarlarınızı görmek için Orca Cloud'a giriş yapın (Profiller → Orca Cloud).`,expired:`Orca Cloud oturumu sona erdi — Orca ön ayarlarınızı yenilemek için tekrar giriş yapın.`,unreachable:`Orca Cloud şu anda erişilemez. Diğer ön ayarlar çalışmaya devam ediyor.`},bedType:{label:`Baskı plakası`,auto:`Otomatik (işlem ön ayarı kullan)`,coolPlate:`Soğuk Plaka`,coolPlateSuperTack:`Soğuk Plaka SuperTack`,engineering:`Mühendislik Plakası`,highTemp:`Yüksek Sıcaklık Plakası`,texturedPEI:`Dokulu PEI Plakası`,smoothPEI:`Düz PEI Plakası`},pipelines:{label:`Pipeline`,applyAria:`Pipeline uygula`,applyPrompt:`Pipeline uygula…`,empty:`Kayıtlı pipeline yok`,saveButton:`Pipeline olarak kaydet`,saveTitle:`Dört slotluk mevcut seçimi yeniden kullanılabilir pipeline olarak kaydet`,namePlaceholder:`Pipeline adı`,nameAria:`Yeni pipeline adı`,toast:{applied:`"{{name}}" uygulandı`,saved:`Pipeline kaydedildi`,saveFailed:`Kaydetme başarısız`}}},spoolman:{title:`Spoolman Entegrasyonu`,enabled:`Spoolman Etkin`,url:`Spoolman URL`,connected:`Bağlı`,disconnected:`Bağlı Değil`,testConnection:`Bağlantıyı Test Et`,sync:`Senkronize Et`,syncing:`Senkronize ediliyor...`,lastSync:`Son Senkronizasyon`,linkToSpoolman:`Spoolman'a Bağla`,openInSpoolman:`Spoolman'da Aç`,unlinkSpool:`Makara Bağlantısını Kaldır`,unlinkConfirmTitle:`Makara Atamasını Kaldır?`,unlinkConfirmMessage:`Bu, makarayı bu yuvadan kaldıracak. Makara verisinin kendisi değişmeyecek.`,selectSpool:`Makara Seç`,noUnlinkedSpools:`Atanmamış makara yok`,linkSuccess:`Makara başarıyla atandı`,linkFailed:`Makara atanamadı`,unlinkSuccess:`Makara ataması başarıyla kaldırıldı`,unlinkFailed:`Makara ataması kaldırılamadı`,linkedSpool:`Atanan makara`,spoolId:`Makara ID`,fillSourceLabel:`(Spoolman)`,weight:`Ağırlık`,remaining:`Kalan`,disableWeightSync:`AMS Tahmini Ağırlık Senkronizasyonunu Devre Dışı Bırak`,disableWeightSyncDesc:`AMS tahminlerinden kalan kapasiteyi güncelleme. AMS yüzde tabanlı tahminler yerine Spoolman'ın kullanım takibini tercih ediyorsanız bunu kullanın. Yeni makaralar yine de başlangıç ağırlığı olarak AMS tahminini kullanacak.`,reportPartialUsage:`Başarısız Baskılar için Kısmi Kullanımı Bildir`,reportPartialUsageDesc:`Bir baskı başarısız olduğunda veya iptal edildiğinde, katman ilerlemesine göre o noktaya kadar kullanılan tahmini filamenti bildir.`},locations:{title:`Depolama Konumları`,subtitle:`Makaralarınız için raf, çekmece ve diğer fiziksel depolama yerlerini yönetin`,add:`Konum Ekle`,addShort:`Ekle`,edit:`Konumu Düzenle`,name:`Ad`,spools:`Makaralar`,empty:`Henüz depolama konumu yok. İlk rafınızı veya çekmecenizi oluşturun.`,manage:`Konumlar`,createPlaceholder:`örn. Raf A, Çekmece 1`,nameRequired:`Konum adı zorunludur`,created:`Konum oluşturuldu`,updated:`Konum güncellendi`,deleted:`Konum silindi`,saveFailed:`Konum kaydedilemedi`,deleteFailed:`Konum silinemedi`,deleteBlocked:`Silmeden önce bu konumdaki tüm makaraları taşıyın`,confirmDelete:`"{{name}}" silinsin mi?`,confirmDeleteMessage:`Bu konum kataloğdan kaldırılacak. Önce makaralar taşınmalıdır.`},inventory:{title:`Makara Envanteri`,subtitle:`Makaralarınızı yönetin`,addToInventory:`Envantere Ekle`,addToInventoryPending:`Ekleniyor...`,addToInventorySuccess:`Makara envantere eklendi`,addToInventoryFailed:`Makara envantere eklenemedi`,unknownSpoolTitle:`Yeni filament algılandı`,unknownSpoolMessage:`{{location}} konumunda bilinmeyen RFID etiketli bir makara algılandı. Şimdi envantere eklensin mi?`,unknownSpoolSlot:`Yuva`,bulk:{selectAllVisible:`Görünenleri seç`,selectRow:`Satırı seç`,selectGroup:`Grubu seç`,selectionCount:`{{count}} seçildi`,edit:`Düzenle`,printLabels:`Etiket yazdır`,resetUsage:`Kullanımı sıfırla`,restore:`Geri yükle`,archive:`Arşivle`,delete:`Sil`,clearSelection:`Seçimi temizle`,editTitle:`Makaraları toplu düzenle`,editSubtitle:`Seçilen {{count}} makaraya uygulanır. Yalnızca işaretlediğiniz alanlar güncellenir.`,editHint:`Bir alana yazmak onu güncelleme için işaretler — yalnızca işaretli satırlar gönderilir. Boş bırakılan alanlar makaraları değiştirmez (alanları boşaltmak yalnızca makara bazında yapılabilir).`,useCustom:`"{{value}}" kullan`,toggleField:`Bu alanın güncellenmesini değiştir`,changeCount:`{{count}} alan güncellenecek.`,applyPending:`Uygulanıyor...`,applyButton:`{{count}} makaraya uygula`,deleteTitle:`Seçili makaraları sil`,archiveTitle:`Seçili makaraları arşivle`,restoreTitle:`Seçili makaraları geri yükle`,resetUsageTitle:`Seçili makaraların kullanımını sıfırla`,deleteMessage:`{{count}} makara kalıcı olarak silinsin mi? Bu işlem geri alınamaz.`,archiveMessage:`{{count}} makara arşivlensin mi? Daha sonra geri yüklenebilir.`,restoreMessage:`{{count}} arşivlenmiş makara geri yüklensin mi?`,resetUsageMessage:`{{count}} makaranın "Toplam Tüketim" sayacı sıfırlansın mı? Kalan ağırlık korunur.`,updateSuccess:`{{count}} makara güncellendi`,updateFailed:`Toplu güncelleme başarısız`,updatePartial:`{{ok}} makara güncellendi, {{failed}} başarısız`,updateAllFailed:`{{count}} güncellemenin tümü başarısız oldu — yeniden denemek için seçim korundu`,deleteSuccess:`{{count}} makara silindi`,deleteFailed:`Toplu silme başarısız`,deletePartial:`{{ok}} makara silindi, {{failed}} başarısız`,deleteAllFailed:`{{count}} silmenin tümü başarısız oldu — yeniden denemek için seçim korundu`,archiveSuccess:`{{count}} makara arşivlendi`,archiveFailed:`Toplu arşivleme başarısız`,archivePartial:`{{ok}} makara arşivlendi, {{failed}} başarısız`,archiveAllFailed:`{{count}} arşivlemenin tümü başarısız oldu — yeniden denemek için seçim korundu`,restoreSuccess:`{{count}} makara geri yüklendi`,restoreFailed:`Toplu geri yükleme başarısız`,restorePartial:`{{ok}} makara geri yüklendi, {{failed}} başarısız`,restoreAllFailed:`{{count}} geri yüklemenin tümü başarısız oldu — yeniden denemek için seçim korundu`,invalidHex:`6 hex karakter (RRGGBB) veya 8 (RRGGBBAA) girin. Aksi takdirde alan uygulanmaz.`},spoolmanMixedContentTitle:`Spoolman HTTPS üzerinden yüklenemiyor — tarayıcınız tarafından karışık içerik engellendi`,spoolmanMixedContentBody:`Bambuddy HTTPS üzerinden sunuluyor (ters proxy'niz aracılığıyla), ancak Spoolman URL'niz hâlâ düz HTTP. Tarayıcılar güvenlik için karışık içeriği engeller, bu nedenle gömülü Spoolman arayüzü oluşturulamaz. Bunun çalışması için Spoolman'in HTTPS üzerinden erişilebilir olması gerekiyor.`,spoolmanMixedContentFixReverseProxy:`Spoolman'i Bambuddy ile aynı ters proxy'nin (Traefik / Nginx / Caddy) arkasına HTTPS ile koyun, ardından Ayarlardaki Spoolman URL'sini yeni HTTPS adresine güncelleyin.`,spoolmanMixedContentFixOpenNewTab:`Geçici bir çözüm olarak, Spoolman'i HTTP üzerinden yeni bir tarayıcı sekmesinde açın — karışık içerik kuralları yalnızca gömülü çerçevelere uygulanır, bu nedenle bağımsız bir sekme yine çalışır.`,spoolmanOpenInNewTab:`Spoolman'i yeni sekmede aç`,labels:{title:`Makara etiketleri yazdır`,selectedCount:`{{count}} seçildi`,pickSpools:`Hangi makaralar için etiket yazdırılacağını seçin:`,monochrome:`Tek renk (siyah beyaz yazıcı)`,monochromeHint:`Renk örneğini kaldırır ve metni genişletir`,searchPlaceholder:`Ad, marka veya #ID ara`,filterByMaterial:`Malzeme:`,allMaterials:`Tümü`,selectVisible:`Görünen tümünü seç ({{count}})`,deselectVisible:`Görünenleri seçimden kaldır`,clearAll:`Tümünü temizle`,noSpoolsToShow:`Gösterilecek makara yok. Filtrenizi ayarlayın ve tekrar deneyin.`,noMatches:`Mevcut arama veya filtreyle eşleşen makara yok.`,printOne:`Bu makara için etiket yazdır`,printLabels:`Etiketleri yazdır…`,bulkTitle:`Şu anda gösterilen {{count}} makaradan etiket yazdırılacak olanları seçin`,noSpoolsTitle:`Etiketlenecek makara yok`,error:`Etiketler oluşturulamadı: {{msg}}`,sortBy:{label:`Sırala:`,id:`ID'ye göre`,color:`Renge göre`},templates:{amsHolderSmall:{label:`AMS tutucu — küçük (74 × 33 mm)`,hint:`Sayfa başına tek etiket; MakerWorld model 752566 (AMS Filament Etiket Tutucu) yazdırılabilir etiketle eşleşir.`},amsHolderLarge:{label:`AMS tutucu — büyük (75 × 55 mm)`,hint:`Sayfa başına tek etiket; AMS Filament Etiket Tutucu'nun karton uçlu varyantına uyar. Numune, marka, malzeme, ID ve QR kod için yeterli yer.`},box40x30:{label:`Kutu etiketi (40 × 30 mm)`,hint:`Sayfa başına tek etiket; yaygın DK/Brother rulo boyutu, filament torbası ve depolama kutusu etiketleri için iyi.`},box:{label:`Kutu etiketi (62 × 29 mm)`,hint:`Sayfa başına tek etiket; Brother PT/QL ve Dymo küçük etiketleri için boyutlandırılmış.`},averyL7160:{label:`Avery L7160 — A4 sayfa (38.1 × 63.5 mm × 21)`,hint:`AB sayfa stoğu; A4 sayfa başına 21 etiket.`},avery5160:{label:`Avery 5160 — US Letter sayfa (25.4 × 66.7 mm × 30)`,hint:`ABD sayfa stoğu; Letter sayfası başına 30 etiket.`}}},csv:{importButton:`CSV İçe Aktar`,exportButton:`CSV Dışa Aktar`,modalTitle:`CSV'den makara içe aktar`,selectFile:`Bir CSV dosyası seçin veya buraya sürükleyin`,dragHint:`Başlık: material (zorunlu), brand, subtype, color_name, rgba, …`,parsing:`Dosya okunuyor…`,previewError:`CSV dosyası okunamadı`,validCount:`{{count}} geçerli`,errorCount:`{{count}} hatalı`,skippedCount:`{{count}} atlandı`,colRow:`Satır`,colStatus:`Durum`,colColor:`Renk`,colorResolved:`Renk katalogdan dolduruldu`,colorCrossMaterial:`Renk farklı bir malzemeden alındı — katalogda tam eşleşme yok`,duplicateExisting:`Bu malzeme, marka ve renkte bir makara zaten var — yine de yeni makara olarak içe aktarılacak`,spoolmanHint:`Spoolman modunda Spoolman'ın yerleşik CSV içe/dışa aktarımını kullanın.`,importValidRows:`{{count}} geçerli satırı içe aktar`,noValidRows:`Geçerli satır yok`,importing:`İçe aktarılıyor…`,importSuccess:`{{count}} makara içe aktarıldı`,importError:`İçe aktarma başarısız`,exportError:`Dışa aktarma başarısız`},addSpool:`Makara Ekle`,editSpool:`Makarayı Düzenle`,copySpool:`Makarayı Kopyala`,material:`Malzeme`,selectMaterial:`Malzeme seç...`,subtype:`Alt tür`,brand:`Marka`,searchBrand:`Marka ara...`,useCustomBrand:`"{{brand}}" kullan`,useCustomMaterial:`Özel malzeme kullan: {{material}}`,suggestedOptions:`Önerilen`,allOptions:`Tümü`,colorName:`Renk Adı`,colorNamePlaceholder:`Yeşim Beyazı, Ateş Kırmızısı...`,color:`Renk`,hexColor:`Hex Renk`,pickColor:`Özel renk seç`,labelWeight:`Etiket Ağırlığı`,coreWeight:`Boş Makara Ağırlığı`,searchSpoolWeight:`Makara ağırlığı ara...`,weightUsed:`Kullanılan`,currentWeight:`Kalan Ağırlık`,measuredWeight:`Ölçülen Ağırlık`,spoolName:`Makara`,costPerKg:`kg başına maliyet`,storageLocation:`Depolama Konumu`,storageLocationPlaceholder:`örn. Raf A, Çekmece 1`,openInInventory:`Envanterde Aç`,measuredWeightError:`Ölçülen ağırlık {{min}}g ile {{max}}g arasında olmalı.`,slicerFilament:`Dilimleyici Filamenti`,slicerFilamentName:`Dilimleyici Ön Ayar Adı`,slicerPreset:`Dilimleyici Ön Ayarı`,searchPresets:`Filament ön ayarlarında ara...`,selectedPreset:`Seçildi`,noPresetsFound:`Ön ayar bulunamadı`,tempOverrides:`Sıcaklık Geçersiz Kılmaları`,note:`Not`,notePlaceholder:`Bu makara hakkında ek notlar...`,category:`Kategori`,categoryPlaceholder:`örn. Üretim, Prototip, Müşteri A`,categoryNone:`Kategorisiz`,storageLocationNone:`Konum ayarlanmamış`,lowStockThresholdOverride:`Düşük stok eşiği (bu makara)`,lowStockThresholdOverrideHelp:`Global eşiği kullanmak için boş bırakın (%{{global}}).`,clearRfid:`RFID Etiketini Temizle`,rfidCleared:`RFID etiketi temizlendi`,archive:`Arşivle`,restore:`Geri Yükle`,noSpools:`Henüz makara yok. Başlamak için ilk makaranızı ekleyin.`,noAvailableSpools:`Kullanılabilir makara yok. Envanterinize bir makara ekleyin veya önce başka bir yuvadan atamayı kaldırın.`,kProfiles:`K-Profilleri`,addKProfile:`K-Profili Ekle`,assignSpool:`Makara Ata`,unassignSpool:`Atamayı Kaldır`,assignSuccess:`Makara atandı ve AMS yuvası yapılandırıldı`,assignPendingInsert:`Atandı. Makarayı yerleştirdiğinizde yuva yapılandırılacak.`,assignFailed:`Makara atanamadı`,selectSpool:`Bu yuvaya atamak için bir makara seçin`,assigned:`Atandı`,assigning:`Atanıyor...`,searchSpools:`Makaralarda ara...`,showAllSpools:`Tüm makaraları göster`,spoolmanSpools:`Spoolman Makaraları`,allMaterials:`Tüm Malzemeler`,filterByBrand:`Markaya göre filtrele...`,showArchived:`Arşivlenmişleri göster`,quickAdd:`Hızlı Ekle (Stok)`,quantity:`Miktar`,stock:`Stok`,configured:`Yapılandırıldı`,spoolsCreated:`{{count}} makara oluşturuldu`,spoolsPartiallyCreated:`{{total}} makaradan {{created}} tanesi oluşturuldu (bazıları başarısız)`,spoolCreated:`Makara oluşturuldu`,spoolUpdated:`Makara güncellendi`,spoolDeleted:`Makara silindi`,deepLinkSpoolNotFound:`Makara bulunamadı`,deepLinkFetchFailed:`Makara yüklenemedi — tekrar deneyin`,spoolArchived:`Makara arşivlendi`,spoolRestored:`Makara geri yüklendi`,kProfileSaveFailed:`K-profili ayarları kaydedilemedi`,syncWeightSpoolNotFound:`Makara bulunamadı — silinmiş olabilir`,syncWeightSpoolmanUnreachable:`Spoolman'a erişilemiyor — daha sonra tekrar deneyin`,syncWeightFailed:`Ağırlık senkronize edilemedi`,spoolmanUnreachable:`Spoolman erişilebilir değil — lütfen daha sonra tekrar deneyin`,deleteSpoolNotFound:`Makara bulunamadı — zaten silinmiş olabilir`,deleteFailed:`Makara silinemedi`,archiveSpoolNotFound:`Makara bulunamadı — zaten silinmiş olabilir`,archiveFailed:`Makara arşivlenemedi`,restoreSpoolNotFound:`Makara bulunamadı — zaten silinmiş olabilir`,restoreFailed:`Makara geri yüklenemedi`,saveFailed:`Değişiklikler kaydedilemedi`,tagClearFailed:`Etiket temizlenemedi`,deleteConfirm:`Bu makarayı silmek istediğinizden emin misiniz? Bu geri alınamaz.`,archiveConfirm:`Bu makarayı arşivlemek istediğinizden emin misiniz?`,advancedSettings:`Gelişmiş Ayarlar`,filamentInfoTab:`Filament Bilgisi`,paProfileTab:`PA Profili`,filamentInfo:`Filament`,additional:`Ek`,loadingPresets:`Bulut ön ayarları yükleniyor...`,cloudConnected:`Bulut bağlı`,cloudNotConnected:`Bulut bağlı değil (varsayılanlar kullanılıyor)`,recentColors:`Son Kullanılan`,searchColors:`Renklerde ara...`,searchResults:`Arama sonuçları`,allColors:`Tüm renkler`,commonColors:`Yaygın renkler`,showLess:`Daha az göster`,showAll:`Tümünü göster`,noColorsFound:`Aramanızla eşleşen renk yok`,noResults:`Eşleşme bulunamadı`,extraColorsLabel:`Ekstra renkler`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`Virgülle ayrılmış 2 ile 8 arası hex durağı yapıştırın. Bir gradyan olarak görüntülenir.`,extraColorsInvalid:`Geçersiz hex yok sayıldı: {{tokens}}`,colorEffectLabel:`Efekt`,colorEffect:{none:`Yok`,sparkle:`Parıltı`,wood:`Ahşap`,marble:`Mermer`,glow:`Parlama`,matte:`Mat`,silk:`İpek`,galaxy:`Galaksi`,rainbow:`Gökkuşağı`,metal:`Metal`,translucent:`Yarı saydam`,gradient:`Gradyan`,dualColor:`Çift Renk`,triColor:`Üç Renk`,multicolor:`Çok Renkli`},selectMaterialFirst:`Lütfen önce Filament Bilgisi sekmesinde bir malzeme seçin.`,noPrintersConfigured:`Yapılandırılmış yazıcı yok. PA profillerini kullanmak için yazıcı ekleyin.`,matchingFilter:`Eşleşen`,anyBrand:`Herhangi marka`,anyVariant:`Herhangi varyant`,autoSelect:`Otomatik seç`,matches:`eşleşme`,match:`eşleşme`,noMatches:`Eşleşme yok`,connected:`Bağlı`,offline:`Çevrimdışı`,printerOffline:`Yazıcı çevrimdışı. Kalibrasyon profillerini görüntülemek için bağlanın.`,noKProfilesMatch:`Seçilen filamentle eşleşen K-profili yok.`,leftNozzle:`Sol Nozul`,rightNozzle:`Sağ Nozul`,profilesSelected:`kalibrasyon profili seçildi`,totalInventory:`Toplam Envanter`,totalConsumed:`Toplam Tüketim`,byMaterial:`Malzemeye Göre`,inPrinter:`Yazıcıda`,lowStock:`Düşük Stok`,sinceTracking:`Takip başladığından beri`,resetConsumedCounter:`Sayacı sıfırla`,resetConsumedCounterTooltip:`Bu makara için tüketilen gram sayacını sıfırla. Kalan ağırlık değişmez.`,resetConsumedCounterConfirm:`Bu makaranın tüketilen gram sayacı 0'a sıfırlansın mı? Gelecekteki baskılar sıfırdan tekrar takip edilecek. Makaranın kendisi, kalan ağırlık hesaplaması ve ayarlarınız değiştirilmez.`,resetAllConsumedCounters:`Tüm sayaçları sıfırla`,resetAllConsumedCountersTooltip:`Her makarada tüketilen gram sayacını sıfırla. Kalan ağırlıklar değişmez.`,resetAllConsumedCountersConfirm:`Tüm {{count}} makaradaki (arşivlenmişler dahil) tüketilen gram sayacı 0'a sıfırlansın mı? Bu, "Toplam Tüketim" istatistiğini temizler, böylece gelecekteki baskılar sıfırdan takip edilir. Makaralar ve kalan ağırlıklar değiştirilmez.`,consumedCounterReset:`Sayaç sıfırlandı`,allConsumedCountersReset:`{{count}} makaranın sayacı sıfırlandı`,resetConsumedCounterFailed:`Sayaç sıfırlanamadı`,loadedInAms:`AMS/Ext'te Yüklü`,remaining:`Kalan`,weightCheck:`Ağırlık Kontrolü`,lastWeighed:`Son tartım`,neverWeighed:`Hiç tartılmadı`,search:`Makaralarda ara...`,showing:`Gösterilen`,to:`-`,of:`/`,show:`Göster`,spools:`makara`,spool:`makara`,page:`Sayfa`,noSpoolsMatch:`Sonuç bulunamadı`,noSpoolsMatchDesc:`Aradığınızı bulmak için aramanızı veya filtrelerinizi ayarlamayı deneyin.`,active:`Aktif`,archived:`Arşivlendi`,all:`Tümü`,used:`Kullanılmış`,new:`Yeni`,clearFilters:`Filtreleri temizle`,table:`Tablo`,cards:`Kartlar`,net:`Net`,groupSimilar:`Grupla`,groupedSpools:`{{count}} aynı makara`,groupedRows:`satır`,columns:`Sütunlar`,configureColumns:`Sütunları Yapılandır`,configureColumnsDesc:`Sütunları yeniden sıralamak için sürükleyin veya okları kullanın. Göz simgesiyle görünürlüğü değiştirin.`,visible:`görünür`,reset:`Sıfırla`,cancel:`İptal`,applyChanges:`Değişiklikleri Uygula`,moveUp:`Yukarı taşı`,moveDown:`Aşağı taşı`,hideColumn:`Sütunu gizle`,showColumn:`Sütunu göster`,linkToSpool:`Makaraya Bağla`,tagLinked:`Etiket makaraya bağlandı`,tagLinkFailed:`Etiket bağlanamadı`,tagAlreadyLinked:`Etiket zaten başka bir makaraya bağlı`,unknownTag:`Bilinmeyen RFID etiketi algılandı`,usageHistory:`Kullanım Geçmişi`,noUsageHistory:`Henüz kullanım kaydedilmedi`,printName:`Baskı Adı`,weightConsumed:`Tüketilen Ağırlık`,clearHistory:`Temizle`,historyCleared:`Kullanım geçmişi temizlendi`,fillSourceLabel:`(Env)`,lowStockThresholdError:`Eşik 0.1 ile 99.9 arasında olmalı`,assignMismatchTitle:`Malzeme uyumsuzluğu`,assignMismatchMessage:`Seçilen makara malzemesi "{{spoolMaterial}}", {{location}} için tepsi malzemesi "{{trayMaterial}}" ile eşleşmiyor. Yine de atansın mı?`,assignMismatchConfirm:`Yine de Ata`,assignPartialMismatchMessage:`Makara malzemesi "{{spoolMaterial}}", {{location}} konumundaki "{{trayMaterial}}" ile benzer ancak tam olarak eşleşmiyor. Devam etmek istiyor musunuz?`,assignProfileMismatchMessage:`Makara profili "{{spoolProfile}}", {{location}} konumundaki tepsi profili "{{trayProfile}}" ile eşleşmiyor. Devam etmek istiyor musunuz?`,assignReconfigureNote:`AMS yuvası, makaranın profilini kullanacak şekilde yeniden yapılandırılacak.`,spoolmanFilamentCatalog:`Spoolman Filament Kataloğu`,pickFromSpoolmanCatalog:`Spoolman kataloğundan seç…`,spoolmanFilamentSelected:`Filament Spoolman kataloğundan seçildi`,spoolmanFilamentUnlinked:`Filament katalog bağlantısı temizlendi`,noSpoolmanFilaments:`Spoolman kataloğunda filament bulunamadı`,spoolmanFilamentColorSwatch:`Filament rengi`,spoolWeightManagedBySpoolman:`Boş makara ağırlığı Spoolman'de filament türü başına yönetilir`,spoolmanCatalogLoadFailed:`Spoolman filament kataloğu yüklenemedi`},timelapse:{title:`Zaman Atlamalı Video`,create:`Zaman Atlamalı Video Oluştur`,download:`İndir`,delete:`Sil`,preview:`Önizleme`,frameRate:`Kare Hızı`,quality:`Kalite`,processing:`İşleniyor...`,noTimelapses:`Kullanılabilir zaman atlamalı video yok`},ams:{title:`AMS`,slot:`Yuva`,empty:`Boş`,emptySlot:`Boş yuva`,slotEmpty:`Boş`,slotUnconfigured:`?`,emptySlotReset:`Atanmış filament yok`,unknown:`Bilinmiyor`,humidity:`Nem`,temperature:`Sıcaklık`,filamentType:`Filament Türü`,filamentColor:`Renk`,remaining:`Kalan`,history:`AMS Geçmişi`,noHistory:`Geçmiş mevcut değil`,configureSlot:`Yuvayı Yapılandır`,externalSpool:`Harici Makara`,profile:`Profil`,kFactor:`K Faktörü`,fill:`Doldur`,configure:`Yapılandır`,used:`kullanılan`,remainingUnit:`kalan`},printModal:{selectPrinter:`Yazıcı Seç`,selectPlate:`Plaka Seç`,filamentMapping:`Filament Eşlemesi`,plateN:`Plaka {{n}}`,plateFilamentsUnreadable:`Seçili bir plakanın filamentleri okunamadı, bu yüzden eşleştirilemiyor. Diğerlerini kuyruğa almak için o plakanın seçimini kaldırın.`,totalCost:`Toplam maliyet:`,slotRemainingShort:` - {{grams}}g kaldı`,printSettings:`Baskı Ayarları`,bedLeveling:`Tabla Seviyelendirme`,flowCalibration:`Akış Kalibrasyonu`,vibrationCalibration:`Titreşim Kalibrasyonu`,layerInspection:`İlk Katman Denetimi`,timelapse:`Zaman Atlamalı Video`,cancel:`İptal`,noPrintersAvailable:`Kullanılabilir yazıcı yok`,printerBusy:`Yazıcı meşgul`,printerOffline:`Yazıcı çevrimdışı`,sameTypeDifferentColor:`Aynı tür, farklı renk`,filamentTypeNotLoaded:`Filament türü yüklenmedi`,whenToPrint:`Ne zaman yazdırılsın`,asap:`En kısa sürede`,queue:`Kuyruk`,schedule:`Zamanla`,dateTime:`Tarih ve saat`,invalidDateTime:`Lütfen geçerli bir tarih ve saat girin`,openCalendar:`Takvimi aç`,requireManualStart:`Manuel başlatma gerektir`,requirePreviousSuccess:`Yalnızca önceki baskı başarılıysa başlat`,autoOffAfter:`Bittiğinde yazıcıyı kapat`,helpAsap:`Baskı kuyruğun en üstüne eklenir ve uygun bir yazıcı boştaysa başlar.`,helpSchedule:`Yazıcı boşta ise baskı zamanlanan saatte başlar. Meşgulse yazıcı uygun olana kadar bekler.`,helpQueue:`Baskı kuyruğun sonuna eklenir.`,leftNozzle:`S`,rightNozzle:`R`,leftNozzleTooltip:`Sol nozul`,rightNozzleTooltip:`Sağ nozul`,filamentOverride:`Filament Geçersiz Kılma`,filamentOverrideHint:`Model tabanlı atama için isteğe bağlı olarak filamentleri geçersiz kıl. Planlayıcı, orijinal 3MF değerleri yerine seçtiğiniz filamentlere göre eşleşecek.`,originalFilament:`Orijinal`,overrideWith:`Şununla geçersiz kıl`,resetToOriginal:`Orijinale sıfırla`,insufficientFilamentTitle:`Yeterli filament yok`,waitingForAmsStatus:`{{printer}} için AMS durumu bekleniyor…`,insufficientFilamentMessage:`Bazı atanmış makaralarda bu baskının ihtiyaç duyduğundan daha az filament kaldı:`,insufficientFilamentLine:`{{printer}} - {{slot}}: {{required}}g gerekli, {{remaining}}g kaldı`,printAnyway:`Yine de yazdır`,forceColorMatch:`Renk eşleşmesini zorla`,staggerPrinterStarts:`Yazıcı başlangıçlarını kademelendir`,staggerGroupSize:`Grup boyutu`,staggerInterval:`Aralık (dk)`,staggerPreview:`{{printers}} yazıcı → {{size}} kişilik {{groups}} grup, her {{interval}} dk'da bir başlatılıyor`,staggerLastGroup:`son grup: {{count}}`,staggerTotal:`toplam: {{minutes}} dk`,staggerToPrinters:`{{count}} yazıcıya kademelendir`,gcodeInjection:`Otomatik baskı G-kodu enjekte et`},backup:{includesEncryptionKey:`Yerel yedekler, yedek ZIP'nin kendi içinde tamamlanmış olması için MFA şifreleme anahtarı dosyasını (DATA_DIR/.mfa_encryption_key) içerir. ZIP'yi hassas olarak değerlendirin — dosyaya sahip olan herkes içinde saklanan OIDC istemci gizli anahtarlarını ve TOTP gizli anahtarlarını çözebilir.`,title:`Yedekleme ve Geri Yükleme`,createBackup:`Yedek Oluştur`,restoreBackup:`Yedeği Geri Yükle`,restoreDescription:`Tüm verileri bir yedek dosyasından değiştir`,downloadBackup:`Yedeği İndir`,uploadBackup:`Yedek Yükle`,lastBackup:`Son Yedek`,autoBackup:`Otomatik Yedekleme`,backupNow:`Şimdi Yedekle`,restoreWarning:`Uyarı: Bir yedeği geri yüklemek tüm mevcut verilerin üzerine yazacak.`,includeArchives:`Arşivleri Dahil Et`,includeSettings:`Ayarları Dahil Et`,includeProfiles:`Profilleri Dahil Et`,backupSuccess:`Yedek başarıyla oluşturuldu`,restoreSuccess:`Yedek başarıyla geri yüklendi`,backupFailed:`Yedekleme başarısız`,restoreFailed:`Geri yükleme başarısız`,restoreNote:`Geri yükleme sırasında Sanal Yazıcı durdurulacak`,githubBackup:`Git Yedekleme`,enabled:`Etkin`,cloudLoginRequired:`Bambu Cloud girişi gerekli. GitHub yedeklemesini etkinleştirmek için Profiller → Bulut Profilleri altında giriş yapın.`,cloudLoginRequiredShort:`Bulut girişi gerekli`,githubDescription:`Yedekleme ve sürüm geçmişi için profillerinizi otomatik olarak özel bir GitHub deposuna senkronize et.`,repoIsPrivate:`Depo özel — yedeklemek için güvenli.`,repoIsPublicWarning:`Depo HERKESE AÇIK. Bambuddy yedekleri MQTT kimlik bilgilerini, Home Assistant belirteçlerini, Prometheus belirteçlerini, Bambu Cloud e-postanızı ve K-profilleri aracılığıyla yazıcı erişim kodlarını içerir. Sağlayıcınızın ayarlarında depoyu özel hale getirene kadar kaydetme engellenir.`,repoVisibilityUnknown:`Depo görünürlüğü belirlenemedi. Bambuddy, özel olarak onaylanmamış hiçbir şeye yedekleme yapmayı reddeder; kaydetme engellenecek.`,repositoryUrl:`Depo URL'si`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`Güvensiz HTTP'ye izin ver`,allowInsecureHttpHint:`TLS olmadan özel ağlarda kendi barındırılan örnekler için etkinleştir`,personalAccessToken:`Kişisel Erişim Belirteci`,tokenSaved:`(kaydedildi)`,enterNewToken:`Güncellemek için yeni belirteç girin`,tokenHint:`Contents okuma/yazma izni olan ayrıntılı belirteç`,branch:`Dal`,provider:`Git Sağlayıcısı`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`Yalnızca manuel`,hourly:`Saatlik`,daily:`Günlük`,weekly:`Haftalık`,includeInBackup:`Yedeğe dahil et`,kProfiles:`K-Profilleri`,kProfilesDescription:`Bağlı yazıcılardan basınç ilerleme kalibrasyonu`,noPrintersConnected:`Bağlı yazıcı yok`,printersConnected:`{{connected}}/{{total}} bağlı`,cloudProfiles:`Bulut Profilleri`,cloudProfilesDescription:`Bambu Cloud'dan filament, yazıcı ve işlem ön ayarları`,appSettings:`Uygulama Ayarları`,appSettingsDescription:`Bambuddy yapılandırması (tam veritabanı)`,spoolInventory:`Makara Envanteri`,spoolInventoryDescription:`Filament makaraları, kullanım geçmişi ve maliyet takibi`,printArchives:`Baskı Arşivleri`,printArchivesDescription:`Baskı geçmişi meta verileri (gcode/3MF dosyaları yok)`,lastBackupAt:`Son yedek:`,noBackupsYet:`Henüz yedek yok`,next:`Sonraki:`,startingBackup:`Yedekleme başlatılıyor...`,test:`Test`,enableBackup:`Yedeklemeyi Etkinleştir`,testConnection:`Bağlantıyı Test Et`,enterRepoUrl:`Depo URL'sini girin`,enterRepoAndToken:`Depo URL'si ve erişim belirteci girin`,repoRequired:`Depo URL'si gerekli`,tokenRequired:`Erişim belirteci gerekli`,githubBackupEnabled:`GitHub yedeklemesi etkinleştirildi`,tokenUpdated:`Belirteç güncellendi`,settingsSaved:`Ayarlar kaydedildi`,failedToSave:`Kaydedilemedi: {{message}}`,backupCompleteFiles:`Yedekleme tamamlandı - {{count}} dosya güncellendi`,backupSkippedNoChanges:`Yedekleme atlandı - değişiklik yok`,backupFailed2:`Yedekleme başarısız: {{message}}`,clearedLogs:`{{count}} günlük temizlendi`,failedToClearLogs:`Günlükler temizlenemedi: {{message}}`,history:`Geçmiş`,clear:`Temizle`,date:`Tarih`,status:`Durum`,commit:`Commit`,localBackup:`Yerel Yedekleme`,localBackupDescription:`Veritabanı, arşivler, yüklemeler ve tüm dosyalar dahil Bambuddy verilerinizin tam bir yedeğini oluşturun.`,downloadBackupLabel:`Yedeği İndir`,completeBackupZip:`Tam yedek: veritabanı + tüm dosyalar (ZIP)`,download:`İndir`,preparingBackup:`Yedek hazırlanıyor...`,creatingArchive:`Yedek arşivi oluşturuluyor... Büyük arşivler için bu biraz zaman alabilir.`,downloadingFile:`Yedek dosyası indiriliyor...`,backupDownloaded:`Yedek başarıyla indirildi`,failedToCreateBackup:`Yedek oluşturulamadı: {{message}}`,restore:`Geri Yükle`,restoreReplacesAll:`Geri yükleme tüm verilerin yerine geçer.`,restoreReplacesAllDetail:`Mevcut veritabanınız ve dosyalarınız tamamen değiştirilecek. Geri yüklemeden sonra yeniden başlatma gerekli.`,restoreConfirmTitle:`Yedeği Geri Yükle`,restoreConfirmMessage:`"{{filename}}" dosyasından geri yüklemek istediğinizden emin misiniz? Bu, mevcut veritabanınızı ve tüm dosyaları tamamen değiştirecek. Geri yüklemeden sonra uygulamanın yeniden başlatılması gerekecek.`,restoreConfirmButton:`Yedeği Geri Yükle`,uploadingFile:`Yedek dosyası yükleniyor...`,backupRestoredRestart:`Yedek geri yüklendi. Lütfen Bambuddy'yi yeniden başlatın.`,failedToRestore:`Yedek geri yüklenemedi. Lütfen dosya formatını kontrol edin.`,reloadNow:`Şimdi Yeniden Yükle`,creatingBackup:`Yedek Oluşturuluyor`,restoringBackup:`Yedek Geri Yükleniyor`,preparing:`Hazırlanıyor...`,processing:`İşleniyor...`,doNotClosePage:`Lütfen bu sayfayı kapatmayın veya başka bir yere gitmeyin. Büyük yedekler için bu işlem birkaç dakika sürebilir.`,restoring:`Geri yükleniyor...`,restoreComplete:`Geri Yükleme Tamamlandı`,restoreFailed2:`Geri Yükleme Başarısız`,importSettings:`Ayarları bir yedek dosyasından içe aktar`,pleaseWaitRestoring:`Verileriniz geri yüklenirken lütfen bekleyin`,selectBackupFile:`Yedek dosyası seçmek için tıklayın (.json veya .zip)`,duplicateHandling:`Yinelenen yönetiminin nasıl çalıştığı:`,matchPrinters:`Yazıcılar`,matchPrintersBy:`seri numarasına göre eşleşti`,matchSmartPlugs:`Akıllı Prizler`,matchSmartPlugsBy:`IP adresine göre eşleşti`,matchNotificationProviders:`Bildirim Sağlayıcıları`,matchNotificationProvidersBy:`ada göre eşleşti`,matchFilaments:`Filamentler`,matchFilamentsBy:`ad + tür + markaya göre eşleşti`,matchArchives:`Arşivler`,matchArchivesBy:`içerik hash'ine göre eşleşti (her zaman atlanır)`,matchPendingUploads:`Bekleyen Yüklemeler`,matchPendingUploadsBy:`dosya adına göre eşleşti`,matchSettingsTemplates:`Ayarlar ve Şablonlar`,matchSettingsTemplatesBy:`her zaman üzerine yazılır`,replaceExisting:`Mevcut veriyi değiştir`,keepExisting:`Mevcut veriyi koru`,overwriteDescription:`Zaten mevcut olan öğeleri yedek verisiyle üzerine yaz`,keepDescription:`Yalnızca zaten mevcut olmayan öğeleri geri yükle`,overwriteCaution:`Dikkat:`,overwriteWarning:`Üzerine yazma, mevcut yapılandırmalarınızı yedekten gelen verilerle değiştirecek. Güvenlik için yazıcı erişim kodları asla üzerine yazılmaz.`,cancel:`İptal`,processingBackup:`Yedek dosyası işleniyor...`,itemsRestored:`Geri Yüklenen Öğeler`,itemsSkipped:`Atlanan Öğeler`,restored:`Geri yüklendi`,skippedAlreadyExist:`Atlandı (zaten mevcut)`,filesCategory:`Dosyalar (3MF, küçük resimler, vb.)`,andMore:`...ve {{count}} daha`,newApiKeysGenerated:`Yeni API Anahtarları Oluşturuldu`,keysShownOnce:`Bu anahtarlar yalnızca bir kez gösterilir. Şimdi kopyalayın!`,copy:`Kopyala`,noDataFound:`Yedek dosyasında geri yüklenecek veri bulunamadı.`,close:`Kapat`,scheduledBackup:`Zamanlanmış Yedekler`,scheduledBackupDescription:`Zamanlamaya göre otomatik olarak yedek anlık görüntüleri oluşturun. Çıktı dizini bir NAS veya harici depolama alanına bağlanabilir.`,frequency:`Sıklık`,backupTime:`Saat`,retention:`Saklama`,retentionDescription:`Saklanacak yedek sayısı`,outputPath:`Çıktı Yolu`,outputPathPlaceholder:`Varsayılan: {{path}}`,outputPathDescription:`Varsayılan konum için boş bırakın`,runNow:`Şimdi Çalıştır`,backupFiles:`Yedek Dosyaları`,noScheduledBackups:`Henüz yedek yok`,deleteBackup:`Sil`,deleteBackupConfirm:`Bu yedek dosyası silinsin mi?`,backupRunning:`Yedekleme devam ediyor...`,scheduledBackupComplete:`Yedekleme başarıyla tamamlandı`,scheduledBackupFailed:`Yedekleme başarısız`,nextBackup:`Sonraki yedek`,backupSize:`Boyut`,localTimeHint:`Yerel saat ({{tz}})`,defaultPathLabel:`Varsayılan:`,pathCheck:{title:`Bambuddy bu dizine yazamıyor`,howToFix:`Nasıl düzeltilir:`,sandboxed:`Bambuddy servisi {{path}} dizinine yazamıyor. systemd birimi ProtectSystem=strict ile çalıştığı için kurulum, veri ve günlük dizinleri dışındaki her dizin servis açısından salt okunurdur - kendi kabuğunuzdan yazabildiğiniz bir dizin olsa bile.`,read_only:`{{path}} salt okunur bir dosya sisteminde.`,permission_denied:`Bambuddy'nin {{path}} dizinine yazma izni yok. Dizinin sahibini ve izinlerini kontrol edin.`,no_space:`{{path}} dizinini barındıran dosya sistemi dolu.`,not_a_directory:`{{path}} var ancak bir dizin değil.`,missing:`{{path}} yok ve oluşturulamadı.`,error:`Bambuddy {{path}} dizinine yazamıyor.`,ephemeralTitle:`Bu yedekler kapsayıcı yeniden oluşturulduğunda kaybolur`,container_ephemeral:`{{path}} ana makinede değil, Bambuddy kapsayıcısının içinde. Oraya yazılan yedekler kapsayıcı yeniden oluşturulduğunda kaybolur. Dizini ana makineden bağlayın:`},categories:{settings:`Ayarlar`,notification_providers:`Bildirim Sağlayıcıları`,notification_templates:`Bildirim Şablonları`,smart_plugs:`Akıllı Prizler`,printers:`Yazıcılar`,filaments:`Filamentler`,maintenance_types:`Bakım Türleri`,archives:`Arşivler`,projects:`Projeler`,pending_uploads:`Bekleyen Yüklemeler`,external_links:`Harici Bağlantılar`,api_keys:`API Anahtarları`}},tags:{title:`Etiketler`,addTag:`Etiket Ekle`,editTag:`Etiketi Düzenle`,deleteTag:`Etiketi Sil`,tagName:`Etiket Adı`,tagColor:`Etiket Rengi`,noTags:`Etiket yok`,deleteConfirm:`Bu etiketi silmek istediğinizden emin misiniz?`,manageTags:`Etiketleri Yönet`},uploadModal:{title:`3MF Dosyalarını Yükle`,dragDrop:`.3mf dosyalarını buraya sürükleyip bırakın`,or:`veya`,browseFiles:`Dosyalara Göz At`,extractionInfo:`Yazıcı modeli, 3MF dosya meta verilerinden otomatik olarak çıkarılacak.`,uploaded:`yüklendi`,failed:`başarısız`,uploading:`Yükleniyor...`,upload:`Yükle`,uploadFailed:`Yükleme başarısız`},editArchive:{title:`Arşivi Düzenle`,name:`Ad`,namePlaceholder:`Baskı adı`,printer:`Yazıcı`,noPrinter:`Yazıcı yok`,project:`Proje`,noProject:`Proje yok`,itemsPrinted:`Yazdırılan Öğeler`,itemsPrintedHelp:`Bu baskı işinde üretilen öğe sayısı`,notes:`Notlar`,notesPlaceholder:`Bu baskı hakkında notlar ekleyin...`,externalLink:`Harici Bağlantı`,externalLinkPlaceholder:`https://printables.com/model/...`,externalLinkHelp:`Printables, Thingiverse veya başka bir kaynağa bağlantı`,tags:`Etiketler`,tagsPlaceholder:`Etiketler ekle...`,addMoreTags:`Daha fazla etiket ekle...`,matchingTags:`"{{query}}" ile eşleşen`,existingTags:`Mevcut etiketler`,clickToAdd:`(eklemek için tıklayın)`,status:`Durum`,failureReason:`Başarısızlık Nedeni`,selectReason:`Neden seç...`,photos:`Yazdırılan Sonuç Fotoğrafları`,photosHelp:`Yazdırılan sonuçunuzun fotoğraflarını eklemek için + tıklayın`,printResult:`Baskı sonucu`,saving:`Kaydediliyor...`,failureReasons:{adhesionFailure:`Yapışma başarısız`,spaghettiDetached:`Spagetti / Ayrılmış`,layerShift:`Katman kayması`,cloggedNozzle:`Tıkalı nozul`,filamentRunout:`Filament bitti`,warping:`Bükülme`,stringing:`İplik oluşumu`,underExtrusion:`Az ekstrüzyon`,powerFailure:`Güç kesintisi`,userCancelled:`Kullanıcı iptal etti`,other:`Diğer`},statuses:{completed:`Tamamlandı`,failed:`Başarısız`,aborted:`İptal edildi`,printing:`Yazdırılıyor`}},kProfiles:{title:`K-Profilleri`,noPrintersConfigured:`Yapılandırılmış Yazıcı Yok`,addPrinterInSettings:`K-profillerini yönetmek için Ayarlarda bir yazıcı ekleyin`,noActivePrinters:`Aktif Yazıcı Yok`,enablePrinterConnection:`K-profillerini görüntülemek için bir yazıcı bağlantısını etkinleştirin`,loadingProfiles:`K-Profilleri yükleniyor...`,printerOffline:`Yazıcı Çevrimdışı`,printerOfflineDesc:`Seçilen yazıcı bağlı değil. K-profillerini görüntülemek için açın.`,noMatchingProfiles:`Eşleşen Profil Yok`,noMatchingProfilesDesc:`Arama kriterlerinizle eşleşen profil yok`,noKProfiles:`K-Profili Yok`,noKProfilesDesc:`{{diameter}}mm nozul için basınç ilerleme profili bulunamadı`,createFirstProfile:`İlk Profili Oluştur`,printer:`Yazıcı`,nozzle:`Nozul`,refresh:`Yenile`,addProfile:`Profil Ekle`,export:`Dışa Aktar`,import:`İçe Aktar`,select:`Seç`,selectAll:`Tümünü Seç`,delete:`Sil`,searchPlaceholder:`Ad veya filamente göre ara...`,allExtruders:`Tüm Ekstrüderler`,leftOnly:`Yalnızca Sol`,rightOnly:`Yalnızca Sağ`,allFlow:`Tüm Akış`,hfOnly:`Yalnızca HF`,sOnly:`Yalnızca S`,sortName:`Sırala: Ad`,sortKValue:`Sırala: K-Değeri`,sortFilament:`Sırala: Filament`,leftExtruder:`Sol Ekstrüder`,rightExtruder:`Sağ Ekstrüder`,modal:{addTitle:`K-Profili Ekle`,editTitle:`K-Profilini Düzenle`,profileName:`Profil Adı`,profileNamePlaceholder:`PLA Profilim`,kValue:`K-Değeri`,kValuePlaceholder:`0.020`,kValueHelp:`Tipik aralık: PLA için 0.01 - 0.06, PETG için 0.02 - 0.10`,filament:`Filament`,selectFilament:`Filament seç...`,noFilamentsHelp:`Filament bulunamadı. Önce Bambu Studio'da bir K-profili oluşturun.`,flowType:`Akış Türü`,highFlow:`Yüksek Akış`,standard:`Standart`,nozzleSize:`Nozul Boyutu`,extruder:`Ekstrüder`,extruders:`Ekstrüderler`,left:`Sol`,right:`Sağ`,notes:`Notlar (yerel olarak saklanır)`,notesPlaceholder:`Bu profil hakkında notlar ekleyin...`,notesHelp:`Notlar yazıcıda değil, Bambuddy'de kaydedilir`,syncing:`Yazıcıyla senkronize ediliyor...`,savingExtruder:`Ekstrüdere kaydediliyor {{current}}/{{total}}...`,pleaseWait:`Lütfen bekleyin`},deleteConfirm:{title:`Profili Sil`,cannotUndo:`Bu geri alınamaz`,message:`"{{name}}" yazıcıdan silmek istediğinizden emin misiniz?`},bulkDelete:{title:`Profilleri Sil`,cannotUndo:`Bu geri alınamaz`,message:`Yazıcıdan seçili {{count}} profili silmek istediğinizden emin misiniz?`},toast:{profileSaved:`K-profili kaydedildi`,profilesSaved:`{{count}} ekstrüdere K-profili kaydedildi`,selectAtLeastOneExtruder:`Lütfen en az bir ekstrüder seçin`,profileDeleted:`K-profili silindi`,profilesDeleted:`{{count}} profil silindi`,exportedProfiles:`{{count}} profil dışa aktarıldı`,importedProfiles:`{{total}} profilden {{count}} tanesi içe aktarıldı`,noProfilesToExport:`Dışa aktarılacak profil yok`,invalidFileFormat:`Geçersiz dosya formatı`,failedToParseImport:`İçe aktarma dosyası ayrıştırılamadı`,failedToSaveBatch:`K-profilleri kaydedilemedi`,noteSaved:`Not kaydedildi`,failedToSaveNote:`Not kaydedilemedi`},permission:{noRead:`Profilleri yenileme izniniz yok`,noCreate:`Profil ekleme izniniz yok`,noUpdate:`K-profillerini güncelleme izniniz yok`,noDelete:`K-profillerini silme izniniz yok`,noExport:`Profilleri dışa aktarma izniniz yok`,noImport:`Profilleri içe aktarma izniniz yok`}},virtualPrinter:{title:`Sanal Yazıcı`,running:`Çalışıyor`,stopped:`Durduruldu`,description:{default:`Bambu Studio ve OrcaSlicer'da görünen bir sanal yazıcı etkinleştirin. Bu yazıcıya gönderilen dosyalar yazdırılmadan doğrudan arşivlenecek.`,proxy:`Dilimleyici trafiğini gerçek bir yazıcıya ileten bir proxy etkinleştirin, böylece herhangi bir ağ üzerinden uzaktan baskı yapabilirsiniz.`},enable:{title:`Sanal Yazıcıyı Etkinleştir`,visibleInSlicer:`Dilimleyici keşfinde "Bambuddy" olarak görünür`,proxyingTo:`{{name}} cihazına proxy yapılıyor`,notActive:`Aktif değil`},model:{title:`Yazıcı Modeli`,description:`Öykünülecek yazıcı modelini seçin.`,restartWarning:`Modeli değiştirmek sanal yazıcıyı yeniden başlatacak`},accessCode:{title:`Erişim Kodu`,isSet:`Erişim kodu ayarlandı`,notSet:`Erişim kodu ayarlanmadı - etkinleştirmek için gerekli`,placeholder:`8 karakterli kodu girin`,placeholderChange:`Değiştirmek için yeni kodu girin`,hint:`Tam olarak 8 karakter olmalı. Dilimleyiciler tarafından kimlik doğrulama için kullanılır.`,charCount:`({{count}}/8)`,inheritedFromTarget:`Hedef yazıcıdan devralındı`,derivedFromTargetHint:`Hedef yazıcının erişim kodunu kullanır. Köprü, dilimleyicinin kimlik doğrulamasını gerçek yazıcıya iletir, bu nedenle kodlar eşleşmelidir — değiştirmek için yazıcının ayarlarında erişim kodunu düzenleyin.`,reveal:`Erişim kodunu göster`,hide:`Erişim kodunu gizle`},targetPrinter:{title:`Hedef Yazıcı`,configured:`Proxy hedefi yapılandırıldı`,notConfigured:`Hedef yazıcı seçilmedi - proxy modu için gerekli`,placeholder:`Bir yazıcı seçin...`,hint:`Dilimleyici trafiğine proxy yapmak için yazıcıyı seçin. Yazıcı LAN modunda olmalıdır.`,noPrinters:`Yapılandırılmış yazıcı yok. Proxy modunu kullanmak için önce bir yazıcı ekleyin.`},remoteInterface:{title:`Ağ Arayüzü Geçersiz Kılma`,configured:`Arayüz geçersiz kılma aktif`,optional:`İsteğe bağlı - otomatik algılanan IP yanlışsa kullanın (örn. birden fazla NIC, Docker, VPN)`,placeholder:`Otomatik algıla (varsayılan)...`,hint:`SSDP üzerinden tanıtılan ve TLS sertifikasında kullanılan IP adresini geçersiz kıl. Bambuddy birden fazla ağ arayüzüne sahip olduğunda kullanışlıdır.`},mode:{title:`Mod`,archive:`Arşiv`,archiveDesc:`Dosyaları hemen arşivle`,review:`İnceleme`,reviewDesc:`Arşivlemeden önce incele`,queue:`Kuyruk`,queueDesc:`Arşivle ve kuyruğa ekle`,proxy:`Proxy`,proxyDesc:`Gerçek yazıcıya ilet`},autoDispatch:{title:`Otomatik sevk`,description:`Kuyruğa eklendiğinde baskıları otomatik olarak başlat. Kapalıyken, baskılar manuel sevki bekler.`},queueForceColorMatch:{title:`Renk eşleşmesini zorla`,description:`Tam olarak doğru filament türü ve rengi yüklü olmayan bir yazıcıya sevk etmeyi reddet. Varsayılan olarak kapalı — bu olmadan kuyruk yalnızca model eşleşmesi kullanır ve yanlış renk yüklü bir yazıcı seçebilir.`},gcodeInjection:{title:`G-code enjeksiyonu`,description:`Ayarlar'da model bazında yapılandırılan G-code parçacıklarını bu VP'nin işlerine uygular. Varsayılan olarak kapalı.`},tailscaleDisabled:{title:`Tailscale entegrasyonu`,description:`Bu VP'yi Tailscale üzerinden açıkta olarak işaretlemek için etkinleştirin. Dilimleyiciye hangi IP'yi yapıştıracağınızı bilmeniz için ana bilgisayarın Tailscale adresini gösterir. CA içe aktarma adımı değişmedi — bu anahtarın sertifikalar üzerinde etkisi yoktur.`},setupRequired:{title:`Kurulum Gerekli`,description:`Sanal yazıcı özelliği çalışmadan önce ek sistem yapılandırması gerektirir. Bu, port yönlendirme, güvenlik duvarı kuralları ve platforma özgü ayarları içerir.`,readGuide:`Etkinleştirmeden önce kurulum kılavuzunu okuyun`},archiveNameSource:{title:`Arşiv ad kaynağı`,description:`Dosyalar sanal yazıcı aracılığıyla geldiğinde yeni arşivlerin nasıl adlandırılacağını seçin. "Meta veri" 3MF'den dilimleyici-gömülü başlığı kullanır (varsayılan). "Dosya adı" Bambu Studio'nun FTP üzerinden gönderdiği dosya adını kullanır. Not: Bambu Studio, 3MF'de bir Başlık alanı varsa "yazıcıya gönder" iletişim kutusunda yazdığınız adı bu alanla geçersiz kılar, bu nedenle her iki mod da genellikle aynı dizeyi üretir.`,metadata:`Meta veri`,filename:`Dosya adı`},caCert:{title:`Dilimleyici sertifikası`,description:`Sanal yazıcılar Bambuddy CA tarafından imzalanmış bir TLS sertifikası kullanır. Bağlantıyı kabul etmesi için bu CA sertifikasını dilimleyicinizin güven deposuna bir kez içe aktarın — komut satırından kopyalamaya gerek yok.`,copy:`Kopyala`,copied:`Kopyalandı`,download:`İndir`,fingerprint:`SHA-256`},howItWorks:{title:`Nasıl çalışır`,step1:`Aynı LAN'da, sanal yazıcılar dilimleyicinizde (Bambu Studio / OrcaSlicer) keşif yoluyla otomatik olarak görünür. Diğer ağlardan, IP adresi ve erişim koduyla manuel olarak ekleyin.`,step2:`3MF dosyalarını Bambuddy'ye yüklemek için Arşiv, İnceleme ve Kuyruk modlarında dilimleyicinizdeki "Gönder" düğmesini kullanın. Dilimleyici "Baskı başarılı" gösterecek — dosya saklanır, yazdırılmaz.`,step3:`Proxy modunda, sanal yazıcı tüm trafiği gerçek bir yazıcıya iletir — baskılar doğrudan bağlıymış gibi hemen başlar.`},status:{title:`Durum Ayrıntıları`,printerName:`Yazıcı Adı`,model:`Model`,serialNumber:`Seri Numarası`,mode:`Mod`,pendingFiles:`Bekleyen Dosyalar`,targetPrinter:`Hedef Yazıcı`,ftpPort:`FTP Portu`,mqttPort:`MQTT Portu`,ftpConnections:`FTP Bağlantıları`,mqttConnections:`MQTT Bağlantıları`},toast:{updated:`Sanal yazıcı ayarları güncellendi`,failedToUpdate:`Ayarlar güncellenemedi`,copyFailed:`Kopyalama başarısız — metni manuel olarak seçmeyi deneyin`,accessCodeRequired:`Lütfen önce bir erişim kodu ayarlayın`,targetPrinterRequired:`Lütfen önce bir hedef yazıcı seçin`,bindIpRequired:`Lütfen önce bir bind IP'si ayarlayın`,accessCodeEmpty:`Erişim kodu boş olamaz`,accessCodeLength:`Erişim kodu tam olarak 8 karakter olmalı`,targetCodeChangedRebind:`Erişim kodu artık yeni hedef yazıcıyla eşleşiyor. Yeni kodu almak için bu cihazı dilimleyicinizde yeniden ekleyin.`,created:`Sanal yazıcı oluşturuldu`,failedToCreate:`Sanal yazıcı oluşturulamadı`,deleted:`Sanal yazıcı silindi`,failedToDelete:`Sanal yazıcı silinemedi`},list:{title:`Sanal Yazıcılar`,add:`Ekle`,addFirst:`Sanal Yazıcı Ekle`,empty:`Yapılandırılmış sanal yazıcı yok. Başlamak için bir tane ekleyin.`},bindIp:{title:`Bind Arayüzü`,placeholder:`Arayüz seç...`,hint:`Bu sanal yazıcının bağlanacağı ağ arayüzü. Yazıcı başına benzersiz olmalıdır.`},proxy:{accessCodeHint:`Proxy modunda, dilimleyicide hedef yazıcınızın erişim kodunu kullanın. Bağlantı şeffaf olarak gerçek yazıcıya iletilir.`},addDialog:{title:`Sanal Yazıcı Ekle`,name:`Ad`,hint:`Oluşturduktan sonra erişim kodunu, hedef yazıcıyı ve diğer ayarları yapılandırabilirsiniz.`,create:`Oluştur`},deleteConfirm:{title:`Sanal Yazıcıyı Sil`,message:`"{{name}}" silmek istediğinizden emin misiniz? Bu, bu yazıcı için tüm servisleri durduracak.`}},modelViewer:{openInSlicer:`Dilimleyicide Aç`,tabs:{model:`3B Model`,gcode:`G-kod Önizleme`},notAvailable:`mevcut değil`,notSliced:`dilimlenmemiş`,plates:`Plakalar`,allPlates:`Tüm Plakalar`,plateNumber:`Plaka {{number}}`,plateCount:`{{count}} plaka`,plateCount_other:`{{count}} plaka`,objectCount:`{{count}} nesne`,objectCount_other:`{{count}} nesne`,filamentCount:`{{count}} filament`,filamentCount_other:`{{count}} filament`,eta:`ETA {{minutes}} dk`,noPreview:`Bu dosya için önizleme yok`,pagination:{pageOf:`{{total}} sayfadan {{current}} tanesi`,prev:`Önceki`,next:`Sonraki`},errors:{failedToLoad:`Dosya yüklenemedi`,noMeshes:`3MF dosyasında ağ bulunamadı`,unsupportedFormat:`Desteklenmeyen dosya formatı`}},maintenanceDescriptions:{lubricateCarbonRods:`Düzgün hareket için karbon çubuklara yağ uygula`,lubricateRails:`Düzgün hareket için lineer raylara yağ uygula`,cleanNozzle:`Tıkanmaları önlemek için hotend ve nozulu temizle`,checkBelts:`Doğru baskılar için kayış gerginliğini kontrol et`,cleanBuildPlate:`Daha iyi yapışma için baskı plakasını temizle`,checkExtruder:`Aşınma için ekstrüder dişlilerini inceleyin`,checkCooling:`Soğutma fanlarının düzgün çalıştığından emin ol`,generalInspection:`Genel yazıcı denetimi`,cleanCarbonRods:`Sürtünmeyi azaltmak için karbon çubukları temizle`,lubricateSteelRods:`Düzgün hareket için çelik çubuklara yağ uygula`,cleanSteelRods:`Sürtünmeyi azaltmak için çelik çubukları temizle`,cleanLinearRails:`Toz ve kalıntıları temizlemek için lineer rayları sil`,checkPtfeTube:`Aşınma veya hasar için PTFE tüpünü incele`,replaceHepaFilter:`Hava kalitesi için HEPA filtresini değiştir`,replaceCarbonFilter:`Aktif karbon filtresini değiştir`,lubricateLeftNozzleRail:`Sol nozul rayını yağla (H2 serisi)`},smartPlugs:{offline:`Çevrimdışı`,admin:`Yönetici`,openPlugAdminPage:`Priz yönetici sayfasını aç`,deleteSmartPlug:`Akıllı Prizi Sil`,turnOnSmartPlug:`Akıllı Prizi Aç`,turnOffSmartPlug:`Akıllı Prizi Kapat`,turnOn:`Aç`,turnOff:`Kapat`,addSmartPlug:{scanningNetwork:`Ağ taranıyor...`,chooseEntity:`Bir varlık seçin...`,connectionFailed:`Bağlantı başarısız`,searchEntities:`Varlıklarda ara...`,searchPowerSensors:`Güç sensörlerinde ara...`,searchEnergySensors:`Enerji sensörlerinde ara...`,placeholders:{plugName:`Oturma Odası Prizi`,mqttStateOnValue:`ON, true, 1`,mqttSameAsPower:`Güç konusuyla aynı veya farklı`}},linkedTo:`Bağlı:`,monitorOnly:`Yalnızca İzle`,alerts:`Uyarılar`,scheduleOn:`{{time}} Açık`,scheduleOff:`{{time}} Kapalı`,on:`Açık`,off:`Kapalı`,power:`Güç`,kwhToday:`Bugün kWh`,settings:`Ayarlar`,automationSettings:`Otomasyon Ayarları`,showInSwitchbar:`Anahtar Çubuğunda Göster`,quickAccessSidebar:`Kenar çubuğundan hızlı erişim`,enabled:`Etkin`,enableAutomation:`Bu priz için otomasyonu etkinleştir`,autoOn:`Otomatik Aç`,autoOnDescription:`Baskı başladığında aç`,autoOff:`Otomatik Kapat`,autoOffDescription:`Baskı tamamlandığında kapat (tek seferlik)`,autoOffPersistent:`Etkin Tut`,autoOffPersistentDescription:`Tek seferlik yerine baskılar arasında etkin kal`,controlsPrinterPower:`Yazıcıya güç veriyor`,controlsPrinterPowerDescription:`Bu priz yalnızca bir aksesuara (filtre fanı, aydınlatma) güç veriyorsa kapatın. Aksi halde prizi kapatmak yazıcıyı çevrimdışı olarak işaretler.`,autoOffAfterDrying:`Kurutmadan Sonra Otomatik Kapat`,autoOffAfterDryingDescription:`AMS kurutması tamamlandığında kapat`,delayAfterDryingMinutes:`Kurutma gecikmesi (dakika)`,turnOffDelayMode:`Kapatma Gecikme Modu`,time:`Süre`,temp:`Sıcaklık`,delayMinutes:`Gecikme (dakika)`,tempThreshold:`Sıcaklık eşiği (°C)`,tempThresholdDescription:`Nozul bu sıcaklığın altına soğuduğunda kapanır`,edit:`Düzenle`,deleteConfirm:`"{{name}}" silmek istediğinizden emin misiniz? Bu geri alınamaz.`,turnOnConfirm:`"{{name}}" açmak istediğinizden emin misiniz?`,turnOffConfirm:`"{{name}}" kapatmak istediğinizden emin misiniz? Bu, bağlı cihazın gücünü kesecek.`,failedToTurn:`"{{name}}" {{action}} başarısız`,unknown:`Bilinmiyor`,addTitle:`Akıllı Priz Ekle`,editTitle:`Akıllı Prizi Düzenle`,stopScanning:`Taramayı Durdur`,discoverTasmota:`Tasmota Cihazlarını Keşfet`,foundDevices:`{{count}} cihaz bulundu - seçmek için tıklayın:`,noDevicesFound:`Ağınızda Tasmota cihazı bulunamadı`,haNotConfigured:`Home Assistant yapılandırılmamış. Şuradan ayarlayın:`,haSettingsPath:`Ayarlar → Ağ → Home Assistant`,selectEntity:`Varlık Seç *`,ipAddress:`IP Adresi *`,nameLabel:`Ad *`,username:`Kullanıcı Adı`,password:`Parola`,authHint:`Tasmota cihazınız kimlik doğrulama gerektirmiyorsa boş bırakın`,linkToPrinter:`Yazıcıya Bağla`,noPrinter:`Yazıcı yok (yalnızca manuel kontrol)`,linkingDescription:`Bağlama, baskılar başladığında/tamamlandığında otomatik açma/kapamayı etkinleştirir`,powerAlerts:`Güç Uyarıları`,alertAbove:`Üstündeyse uyar (W)`,alertBelow:`Altındaysa uyar (W)`,alertDescription:`Güç tüketimi bu eşikleri geçtiğinde bildirim alın. O yönü devre dışı bırakmak için boş bırakın.`,dailySchedule:`Günlük Zamanlama`,turnOnAt:`Şu saatte aç`,turnOffAt:`Şu saatte kapat`,scheduleDescription:`Prizi günlük olarak bu saatlerde otomatik aç/kapat. O eylemi atlamak için boş bırakın.`,showOnPrinterCard:`Yazıcı Kartında Göster`,displayOnPrinterCard:`Yazıcı kartında düğme göster`,connectedResult:`Bağlandı!`,deviceLabel:`Cihaz: {{name}} - `,stateLabel:`Durum: {{state}}`,test:`Test`,delete:`Sil`,save:`Kaydet`,add:`Ekle`,cancel:`İptal`,failedToStartScan:`Tarama başlatılamadı`,nameRequired:`Ad gerekli`,entityRequired:`Home Assistant prizleri için varlık gerekli`,mqttTopicRequired:`Güç, enerji veya durum izleme için en az bir MQTT konusu yapılandırılmalı`,loadingEntities:`Varlıklar yükleniyor...`,loading:`Yükleniyor...`,failedToLoadEntities:`Varlıklar yüklenemedi: {{error}}`,noEntitiesMatching:`"{{search}}" ile eşleşen varlık bulunamadı`,noEntitiesAvailable:`Kullanılabilir varlık yok`,searchingEntities:`Tüm varlıklar aranıyor ({{count}} bulundu)`,showingEntities:`switch, light, input_boolean gösteriliyor ({{count}} mevcut)`,energyMonitoringOptional:`Enerji İzleme (İsteğe Bağlı)`,energyMonitoringHint:`Güç/enerji verisi sağlayan sensörleri arayın ve seçin.`,powerSensorW:`Güç Sensörü (W)`,energyTodayKwh:`Bugünkü Enerji (kWh)`,totalEnergyKwh:`Toplam Enerji (kWh)`,noMatchingSensors:`Eşleşen sensör yok`,none:`Hiçbiri`,mqttNotConfigured:`MQTT brokerı yapılandırılmamış. Şurada broker adresini ayarlayın:`,mqttSettingsPath:`Ayarlar → Ağ → MQTT Yayınlama`,mqttNotConfiguredSuffix:`(yayınlamayı etkinleştirmenize gerek yok, yalnızca broker ayrıntılarını doldurun).`,mqttMonitorOnlyDescription:`MQTT prizleri MQTT aboneliği aracılığıyla güç/enerji verisi alır. Açma/kapama kontrolü kullanılamaz - MQTT brokerınızı veya ev otomasyon sisteminizi kullanın.`,powerMonitoring:`Güç İzleme`,energyMonitoring:`Enerji İzleme`,stateMonitoring:`Durum İzleme`,optional:`isteğe bağlı`,topic:`Konu`,jsonPath:`JSON Yolu`,multiplier:`Çarpan`,onValue:`ON Değeri`,mqttPowerHint:`JSON yolu JSON yükten değer çıkarır (örn., "power_l1"). Konu ham sayısal değerler yayınlıyorsa boş bırakın.
mW→W için 0.001, kW→W için 1000 çarpanı kullanın.`,mqttEnergyHint:`JSON yolu JSON yükten değer çıkarır. Ham değerler için boş bırakın.
Wh→kWh için 0.001, MWh→kWh için 1000 çarpanı kullanın.`,mqttStateHint:`JSON yolu JSON yükten değer çıkarır. Ham değerler için boş bırakın.
-ON değeri: "ON" anlamına gelen tam string. Otomatik algılama için boş bırakın (ON, true, 1).`,restControl:`Kontrol`,restOnUrl:`AÇ URL'si`,restOffUrl:`KAPAT URL'si`,restOnBody:`AÇ İstek Gövdesi`,restOffBody:`KAPAT İstek Gövdesi`,restMethod:`HTTP Yöntemi`,restHeaders:`Özel Başlıklar (JSON)`,restStatusUrl:`Durum URL'si`,restStatusPath:`Durum JSON Yolu`,restStatusOnValue:`ON Değeri`,restPowerUrl:`Güç URL'si`,restPowerPath:`Güç JSON Yolu`,restPowerMultiplier:`Güç Çarpanı`,restEnergyUrl:`Enerji URL'si`,restEnergyPath:`Enerji JSON yolu (bugün)`,restEnergyTotalPath:`Enerji JSON yolu (toplam sayaç)`,restEnergyTotalMultiplier:`Toplam sayaç çarpanı`,restEnergyTotalPathHint:`örn. aenergy.total`,restEnergyTotalHint:`Birçok priz — tüm Shelly'ler dahil — yalnızca hiç sıfırlanmayan bir toplam sayaç bildirir. Bu değer yukarıdaki alana değil, buraya girilmelidir: bugünün tüketimi olarak okunursa gece yarısı sıfırlanmaz, Dün ve Toplam da boş kalır. Bambuddy Bugün ve Dün değerlerini bundan hesaplar; bunun için bir iki günlük ölçüm gerekir. Shelly watt-saat bildirdiğinden çarpan olarak 0.001 kullanın.`,restEnergyMultiplier:`Enerji Çarpanı`,restUrlRequired:`REST prizleri için en az bir URL (ON veya OFF) gerekli`,restHeadersHint:`örn. {"Authorization": "Bearer your-token"}`,restBodyHint:`örn. ON, {"state": "on"}`,restStatusHint:`Mevcut durumu sorgulamak için URL`,restPathHint:`örn. state veya data.power.status`,restPowerUrlHint:`Güç verisi için ayrı URL (boşsa Durum URL'sini kullanır)`,restEnergyUrlHint:`Enerji verisi için ayrı URL (boşsa Durum URL'sini kullanır)`,restEnergyHint:`Her değer kendi URL'sini kullanabilir veya Durum URL'sine geri dönebilir. Birim dönüşümü için çarpanları kullanın (örn. Wh'yi kWh'ye dönüştürmek için 0.001).`,testConnection:`Bağlantıyı Test Et`,connectionSuccess:`Bağlantı başarılı`,noSwitchesInSwitchbar:`Anahtar çubuğunda anahtar yok`,enableSwitchbarHint:`Ayarlar > Akıllı Prizler'de "Anahtar Çubuğunda Göster"i etkinleştirin`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`E-posta`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`SMTP e-posta bildirimleri`,telegram:`Telegram botu üzerinden bildirimler`,discord:`Webhook üzerinden Discord kanalına gönder`,ntfy:`Ücretsiz, kendi barındırılabilir push bildirimleri`,pushover:`Basit, güvenilir push bildirimleri`,callmebot:`CallMeBot üzerinden ücretsiz WhatsApp bildirimleri`,webhook:`Herhangi bir URL'ye genel HTTP POST`,homeassistant:`Home Assistant gösterge panelinde kalıcı bildirimler`,bark:`Bark ile iOS anlık bildirimleri (kendi sunucunuzda barındırılabilir)`},lastSuccess:`Son: {{date}}`,error:`Hata`,printer:`Yazıcı:`,allPrinters:`Tüm yazıcılar`,sendTestNotification:`Test Bildirimi Gönder`,eventSettings:`Olay Ayarları`,enabled:`Etkin`,sendFromProvider:`Bu sağlayıcıdan bildirim gönder`,printEvents:`Baskı Olayları`,printerStatus:`Yazıcı Durumu`,amsAlarms:`AMS Alarmları`,amsHtAlarms:`AMS-HT Alarmları`,printQueue:`Baskı Kuyruğu`,start:`Başlangıç`,plateCheck:`Plaka Kontrolü`,complete:`Tamamlandı`,failed:`Başarısız`,stopped:`Durduruldu`,progress:`İlerleme`,offline:`Çevrimdışı`,lowFilament:`Az Filament`,maintenance:`Bakım`,amsHumidity:`AMS Nemi`,amsTemp:`AMS Sıcaklığı`,amsHtHumidity:`AMS-HT Nemi`,amsHtTemp:`AMS-HT Sıcaklığı`,bedCooled:`Tabla Soğudu`,firstLayer:`İlk Katman`,quiet:`Sessiz`,digest:`Özet {{time}}`,printStarted:`Baskı Başladı`,plateNotEmpty:`Plaka Boş Değil`,plateNotEmptyDescription:`Baskıdan önce nesneler algılandı`,plateClearRequired:`Tabla onayı gerekli`,plateClearRequiredDescription:`Baskı bitti, kuyruk tabla onayını bekliyor`,plateClear:`Tabla onayı`,printCompleted:`Baskı Tamamlandı`,bedCooledLabel:`Tabla Soğudu`,bedCooledDescription:`Baskıdan sonra tabla eşiğin altına soğudu`,firstLayerCompleteLabel:`İlk Katman Tamamlandı`,firstLayerCompleteDescription:`İlk katman bittiğinde anlık görüntüyle bildir`,missingSpoolAssignmentLabel:`Eksik Makara Ataması`,missingSpoolAssignmentDescription:`Baskı başladığında ve gerekli tepsilerin atanmış makarası olmadığında bildir`,printFailed:`Baskı Başarısız`,printStopped:`Baskı Durduruldu`,progressMilestones:`İlerleme Kilometre Taşları`,progressMilestonesDescription:`%25, %50, %75'te bildir`,printerOffline:`Yazıcı Çevrimdışı`,printerError:`Yazıcı Hatası`,aiFailureDetection:`AI Hata Tespiti`,aiFailureDetectionDescription:`Obico AI olası bir baskı hatası tespit ettiğinde bildir`,lowFilamentLabel:`Az Filament`,maintenanceDue:`Bakım Zamanı`,maintenanceDueDescription:`Bakım gerektiğinde bildir`,amsHumidityHigh:`AMS Nemi Yüksek`,amsHumidityHighDescription:`Normal AMS nemi eşiği aşıyor`,amsTemperatureHigh:`AMS Sıcaklığı Yüksek`,amsTemperatureHighDescription:`Normal AMS sıcaklığı eşiği aşıyor`,amsHtHumidityHigh:`AMS-HT Nemi Yüksek`,amsHtHumidityHighDescription:`AMS-HT nemi eşiği aşıyor`,amsHtTemperatureHigh:`AMS-HT Sıcaklığı Yüksek`,amsHtTemperatureHighDescription:`AMS-HT sıcaklığı eşiği aşıyor`,inventoryAlerts:`Envanter Uyarıları`,stockReorderAlert:`Yeniden Sipariş Uyarısı`,stockReorderAlertDescription:`SKU yeniden sipariş noktasına ulaştı`,stockBreakAlert:`Stok Tükenme Uyarısı`,stockBreakAlertDescription:`Yenileme gelmeden stok tükenecek`,jobAdded:`İş Eklendi`,jobAddedDescription:`İş kuyruğa eklendi`,jobAssigned:`İş Atandı`,jobAssignedDescription:`Model tabanlı iş yazıcıya atandı`,jobStarted:`İş Başladı`,jobStartedDescription:`Kuyruk işi yazdırmaya başladı`,jobWaiting:`İş Bekliyor`,jobWaitingDescription:`İş filament veya yazıcı için bekliyor`,jobSkipped:`İş Atlandı`,jobSkippedDescription:`İş atlandı (önceki başarısız oldu)`,jobFailed:`İş Başarısız`,jobFailedDescription:`İş başlatılamadı`,queueComplete:`Kuyruk Tamamlandı`,queueCompleteDescription:`Tüm kuyruk işleri bitti`,quietHours:`Sessiz Saatler`,noNotificationsDuring:`Bu saatler arasında bildirim yok`,editProviderToChangeQuietHours:`Sessiz saatleri değiştirmek için sağlayıcıyı düzenleyin`,dailyDigest:`Günlük Özet`,batchNotifications:`Bildirimleri tek bir günlük özette topla`,sendAt:`{{time}}'de gönder`,editProviderToChangeDigestTime:`Özet saatini değiştirmek için sağlayıcıyı düzenleyin`,edit:`Düzenle`,deleteProvider:`Bildirim Sağlayıcısını Sil`,deleteConfirm:`"{{name}}" silmek istediğinizden emin misiniz? Bu geri alınamaz.`,delete:`Sil`,addTitle:`Bildirim Sağlayıcısı Ekle`,editTitle:`Bildirim Sağlayıcısını Düzenle`,nameLabel:`Ad *`,namePlaceholder:`Bildirimlerim`,providerTypeLabel:`Sağlayıcı Türü *`,configuration:`Yapılandırma`,testConfiguration:`Yapılandırmayı Test Et`,printerFilter:`Yazıcı Filtresi`,onlyFromPrinter:`Yalnızca bu yazıcının olayları için bildirim gönder`,quietHoursDnd:`Sessiz Saatler (Rahatsız Etme)`,quietStart:`Başlangıç`,quietEnd:`Bitiş`,dailyDigestLabel:`Günlük Özet`,sendDigestAt:`Özeti şu saatte gönder`,digestCollected:`Olaylar toplanacak ve bu saatte tek bir özet olarak gönderilecek`,notificationEvents:`Bildirim Olayları`,progressPercent:`(%25, %50, %75)`,bedCooledAfterPrint:`(baskı tamamlandıktan sonra)`,eventPriority:{sectionTitle:`ntfy Önceliği`,helpNtfy:`Her etkin olay için bir öncelik seçin. ntfy uyarıları kademelendirmek için bunları kullanır (ses, görünürlük, push davranışı). Burada ayarlanmamış seviyeler ntfy sunucu varsayılanını kullanır.`,min:`Min`,low:`Düşük`,default:`Varsayılan`,high:`Yüksek`,urgent:`Acil`},cancel:`İptal`,save:`Kaydet`,add:`Ekle`,nameRequired:`Ad gerekli`,fieldRequired:`{{field}} gerekli`,haDataInvalid:`Data alanı geçerli bir JSON nesnesi olmalıdır, örn. {"priority": "high", "ttl": 0}`,phoneNumber:`Telefon Numarası`,apiKey:`API Anahtarı`,serverUrl:`Sunucu URL`,topic:`Konu`,authToken:`Yetkilendirme Belirteci`,userKey:`Kullanıcı Anahtarı`,appToken:`Uygulama Belirteci`,priority:`Öncelik`,pushoverRetry:`Acil yeniden deneme (sn)`,pushoverExpire:`Acil sona erme (sn)`,botToken:`Bot Belirteci`,chatId:`Sohbet ID`,telegramThreadId:`Forum Konu Kimliği`,telegramThreadIdHelp:`İsteğe bağlı. Forum grubundaki tek bir konuya gönderir: konu bağlantısındaki son sayı (t.me/c/.../25). Genel konu için boş bırakın.`,telegramThreadIdInvalid:`Forum konu kimliği bir sayı olmalıdır.`,smtpServer:`SMTP Sunucusu`,smtpPort:`SMTP Portu`,security:`Güvenlik`,authentication:`Kimlik Doğrulama`,username:`Kullanıcı Adı`,password:`Parola`,fromEmail:`Gönderen E-posta`,toEmail:`Alıcı E-posta`,webhookUrl:`Webhook URL`,payloadFormat:`Yük Formatı`,authorization:`Yetkilendirme`,titleFieldName:`Başlık Alanı Adı`,messageFieldName:`Mesaj Alanı Adı`,editTemplate:`Şablonu Düzenle: {{name}}`,titleLabel:`Başlık`,bodyLabel:`Gövde`,titlePlaceholder:`Bildirim başlığı...`,bodyPlaceholder:`Bildirim gövdesi...`,availableVariables:`Kullanılabilir Değişkenler`,clickToInsert:`Gövdede imleç konumuna eklemek için tıklayın`,livePreview:`Canlı Önizleme`,hide:`Gizle`,show:`Göster`,loadingPreview:`Önizleme yükleniyor...`,enterTemplateContent:`Önizlemeyi görmek için şablon içeriğini girin`,titlePreview:`Başlık:`,bodyPreview:`Gövde:`,resetToDefault:`Varsayılana Sıfırla`,titleRequired:`Başlık gerekli`,bodyRequired:`Gövde gerekli`,notificationLog:`Bildirim Günlüğü`,showFailedOnly:`Yalnızca başarısız`,last24Hours:`Son 24 saat`,last7Days:`Son 7 gün`,last30Days:`Son 30 gün`,last90Days:`Son 90 gün`,justNow:`Az önce`,noFailedNotifications:`Başarısız bildirim yok`,noNotificationsLogged:`Kaydedilen bildirim yok`,unknownProvider:`Bilinmeyen Sağlayıcı`,logTitle:`Başlık`,logMessage:`Mesaj`,logError:`Hata`,logProvider:`Sağlayıcı: {{type}}`,logTime:`Saat: {{time}}`,refresh:`Yenile`,clearOld:`Eskileri Temizle`,statsSummary:`Son {{days}} gün:`,statsNotifications:`bildirim`,statsSent:`{{count}} gönderildi`,statsFailed:`{{count}} başarısız`,eventTypes:{print_start:`Baskı Başladı`,print_complete:`Baskı Tamamlandı`,print_failed:`Baskı Başarısız`,print_stopped:`Baskı Durduruldu`,print_progress:`İlerleme`,printer_offline:`Yazıcı Çevrimdışı`,printer_error:`Yazıcı Hatası`,filament_low:`Az Filament`,maintenance_due:`Bakım Zamanı`,test:`Test`},userEmail:{title:`Bildirimler`,emailNotifications:`E-posta Bildirimleri`,emailNotificationsDesc:`Kendi baskı işleriniz için e-posta bildirimleri alın. E-postalar Gelişmiş Kimlik Doğrulamada yapılandırılan sistem SMTP ayarları kullanılarak gönderilir.`,sendingTo:`Bildirimler şuraya gönderilecek`,noEmailWarning:`Hesabınızın e-posta adresi yok. Eklemek için bir yöneticiyle iletişime geçin.`,printJobNotifications:`Baskı İşi Bildirimleri`,printJobNotificationsDesc:`Gönderdiğiniz baskı işleri için hangi olayların e-posta bildirimlerini tetikleyeceğini seçin.`,printJobStarts:`Baskı İşi Başlar`,printJobStartsDesc:`Baskı işiniz başladığında bildirim alın.`,printJobFinishes:`Baskı İşi Biter`,printJobFinishesDesc:`Baskı işiniz başarıyla tamamlandığında bildirim alın.`,printErrors:`Baskı Hataları`,printErrorsDesc:`Baskı işiniz başarısız olduğunda veya bir hatayla karşılaştığında bildirim alın.`,printJobStops:`Baskı İşi Durur`,printJobStopsDesc:`Baskı işiniz iptal edildiğinde veya durdurulduğunda bildirim alın.`,saveSuccess:`Bildirim tercihleri kaydedildi.`,saveError:`Bildirim tercihleri kaydedilemedi.`}},richTextEditor:{bold:`Kalın`,italic:`İtalik`,underline:`Altı Çizili`,bulletList:`Madde İşaretli Liste`,numberedList:`Numaralı Liste`,alignLeft:`Sola Hizala`,alignCenter:`Ortaya Hizala`,alignRight:`Sağa Hizala`,addLink:`Bağlantı Ekle`,removeLink:`Bağlantıyı Kaldır`},externalLinks:{title:`Kenar çubuğu bağlantıları`,sidebarLayout:`Kenar çubuğu`,sidebarLayoutDescription:`Yerleşik sayfaları gösterin veya gizleyin, harici bağlantılar ekleyin ve kenar çubuğu gezinmesini yeniden sıralamak için öğeleri sürükleyin.`,systemPages:`Bambuddy sayfaları`,externalLinks:`Harici bağlantılar`,visibleInSidebar:`Kenar çubuğunda görünür`,hiddenFromSidebar:`Kenar çubuğunda gizli`,requiredInSidebar:`Kenar çubuğunda gerekli`,hidePage:`Sayfayı gizle`,showPage:`Sayfayı göster`,settingsCannotBeHidden:`Ayarlar gizlenemez`,noLinksConfigured:`Yapılandırılmış harici bağlantı yok`,deleteLink:`Bağlantıyı Sil`,removeCustomIcon:`Özel simgeyi kaldır`,openInNewTab:`Yeni sekmede aç`,placeholders:{linkName:`Bağlantım`}},keyboardShortcuts:{title:`Klavye Kısayolları`,navigation:`Navigasyon`,archivesSection:`Arşivler`,kProfilesSection:`K-Profilleri`,generalSection:`Genel`,shortcuts:{goToPrinters:`Yazıcılara Git`,goToArchives:`Arşivlere Git`,goToQueue:`Kuyruğa Git`,goToStats:`İstatistiklere Git`,goToProfiles:`Bulut Profillerine Git`,goToSettings:`Ayarlara Git`,focusSearch:`Aramaya odaklan`,openUploadModal:`Yükleme modalini aç`,clearSelection:`Seçimi temizle / odağı kaldır`,contextMenu:`Kartlarda bağlam menüsü`,refreshProfiles:`Profilleri yenile`,newProfile:`Yeni profil`,exitSelectionMode:`Seçim modundan çık`,showHelp:`Bu yardımı göster`},footer:`Kapatmak için Esc'ye basın veya dışarı tıklayın`},notificationLog:{title:`Bildirim Günlüğü`,events:{printStarted:`Baskı Başladı`,printComplete:`Baskı Tamamlandı`,printFailed:`Baskı Başarısız`,printStopped:`Baskı Durduruldu`,progress:`İlerleme`,printerOffline:`Yazıcı Çevrimdışı`,printerError:`Yazıcı Hatası`,lowFilament:`Az Filament`,maintenanceDue:`Bakım Zamanı`,test:`Test`},timeAgo:{justNow:`Az önce`,minutesAgo:`{{minutes}}dk önce`,hoursAgo:`{{hours}}sa önce`}},restoreBackup:{title:`Yedeği Geri Yükle`,restoring:`Geri yükleniyor...`,restoreComplete:`Geri Yükleme Tamamlandı`,restoreFailed:`Geri Yükleme Başarısız`,importSettings:`Ayarları bir yedek dosyasından içe aktar`,pleaseWait:`Verileriniz geri yüklenirken lütfen bekleyin`,clickToSelect:`Yedek dosyası seçmek için tıklayın (.json veya .zip)`,howDuplicateHandling:`Yinelenen yönetiminin nasıl çalıştığı:`,categories:{printers:`Yazıcılar`,smartPlugs:`Akıllı Prizler`,notificationProviders:`Bildirim Sağlayıcıları`,filaments:`Filamentler`,archives:`Arşivler`,pendingUploads:`Bekleyen Yüklemeler`,settingsTemplates:`Ayarlar ve Şablonlar`},matchingInfo:{printers:`seri numarasına göre eşleşti`,smartPlugs:`IP adresine göre eşleşti`,notificationProviders:`ada göre eşleşti`,filaments:`ad + tür + markaya göre eşleşti`,archives:`içerik hash'ine göre eşleşti`,pendingUploads:`dosya adına göre eşleşti`,settingsTemplates:`her zaman üzerine yazılır`},replaceExisting:`Mevcut veriyi değiştir`,keepExisting:`Mevcut veriyi koru`,replaceDescription:`Zaten mevcut olan öğeleri yedek verisiyle üzerine yaz`,keepDescription:`Yalnızca zaten mevcut olmayan öğeleri geri yükle`,caution:`Dikkat:`,cautionText:`Üzerine yazma, mevcut yapılandırmalarınızı yedek verisiyle değiştirecek. Güvenlik için yazıcı erişim kodları asla üzerine yazılmaz.`,itemsRestored:`Geri Yüklenen Öğeler`,itemsSkipped:`Atlanan Öğeler`,restored:`Geri yüklendi`,skipped:`Atlandı (zaten mevcut)`,filesLabel:`Dosyalar (3MF, küçük resimler, vb.)`,newApiKeysGenerated:`Yeni API Anahtarları Oluşturuldu`,newApiKeysWarning:`Bu anahtarlar yalnızca bir kez gösterilir. Şimdi kopyalayın!`,processingBackup:`Yedek dosyası işleniyor...`,noDataFound:`Yedek dosyasında geri yüklenecek veri bulunamadı.`,failedToRestore:`Yedek geri yüklenemedi. Lütfen dosya formatını kontrol edin.`},backupExport:{title:`Yedeği Dışa Aktar`,selectData:`Dahil edilecek veriyi seçin`,selectAll:`Tümünü Seç`,selectNone:`Hiçbirini Seçme`,categoryDescriptions:{settings:`Dil, tema, güncelleme tercihleri`,notifications:`ntfy, Pushover, Discord, vb.`,templates:`Özel mesaj şablonları`,smartPlugs:`Tasmota priz yapılandırmaları`,externalLinks:`Harici servislere kenar çubuğu bağlantıları`,printers:`Yazıcı bilgisi (erişim kodları hariç)`,plateDetection:`Boş plaka referans görüntüleri`,filaments:`Filament türleri ve maliyetleri`,maintenance:`Özel bakım programları`,archives:`Tüm baskı verileri + dosyalar (3MF, küçük resimler, fotoğraflar)`,projects:`Projeler, BOM öğeleri ve ekler`,pendingUploads:`İnceleme bekleyen sanal yazıcı yüklemeleri`,apiKeys:`Webhook API anahtarları (içe aktarımda yeni anahtarlar oluşturulur)`},requiresPrinters:`Yazıcıların seçili olması gerekir`,zipFileWarning:`ZIP dosyası oluşturulacak.`,zipFileDescription:`Tüm 3MF dosyalarını, küçük resimleri, zaman atlamalı videoları ve fotoğrafları içerir. Bu biraz zaman alabilir ve büyük bir dosya oluşturabilir.`,includeAccessCodes:`Erişim Kodlarını Dahil Et`,includeAccessCodesDescription:`Başka bir makineye aktarmak için`,includeAccessCodesWarning:`Erişim kodları düz metin olarak dahil edilecek. Bu yedek dosyasını güvende tutun!`,categoriesSelected:`{{selectedCount}} kategori seçildi`},pendingUploads:{placeholders:{notes:`Bu baskı hakkında notlar ekleyin...`},discardUpload:`Yüklemeyi At`,archiveAllUploads:`Tüm Yüklemeleri Arşivle`,discardAllUploads:`Tüm Yüklemeleri At`,archive:`Arşivle`,timeAgo:{justNow:`Az önce`,minutesAgo:`{{minutes}}dk önce`,hoursAgo:`{{hours}}sa önce`,daysAgo:`{{days}}g önce`}},apiBrowser:{placeholders:{requestBody:`JSON istek gövdesi...`,searchEndpoints:`Uç noktalarda ara...`}},configureAmsSlot:{title:`AMS Yuvasını Yapılandır`,slotConfigured:`Yuva Yapılandırıldı!`,configuringSlot:`Yuva yapılandırılıyor:`,slotLabel:`{{ams}} Yuva {{slot}}`,searchPresets:`Ön ayarlarda ara...`,colorPlaceholder:`Renk adı veya hex (örn., kahverengi, FF8800)`,clearCustomColor:`Özel rengi temizle`,noCloudPresets:`Bulut ön ayarı yok. Senkronize etmek için Bambu Cloud'a giriş yapın.`,noPresetsAvailable:`Kullanılabilir ön ayar yok. Bambu Cloud'a giriş yapın veya yerel profilleri içe aktarın.`,noMatchingPresets:`Eşleşen ön ayar bulunamadı.`,custom:`Özel`,builtin:`Yerleşik`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`Ayarlar yazıcıya gönderildi`,filamentProfile:`Filament Profili`,kProfileLabel:`K Profili (Basınç İlerlemesi)`,filteringFor:`Şu için filtreleniyor: {{material}}`,noKProfile:`K profili yok (varsayılan 0.020 kullan)`,noMatchingKProfiles:`Eşleşen K profili bulunamadı. Varsayılan K=0.020 kullanılacak.`,otherKProfiles:`Bu yazıcıdaki diğer K profilleri`,selectFilamentFirst:`Önce bir filament profili seçin`,kFromCalibration:`Yazıcı kalibrasyonundan K={{value}}`,customColorLabel:`Özel Renk (isteğe bağlı)`,presetColors:`{{name}} renkleri:`,showLessColors:`Daha az renk göster`,showMoreColors:`Daha fazla renk göster`,clear:`Temizle`,hexLabel:`Hex: #{{hex}}`,resetting:`Sıfırlanıyor...`,resetSlot:`Yuvayı Sıfırla`,cancel:`İptal`,configuring:`Yapılandırılıyor...`,configureSlot:`Yuvayı Yapılandır`},githubBackup:{title:`Git Yedekleme`,history:`Geçmiş`,downloadBackup:`Yedeği İndir`,restoreBackup:`Yedeği Geri Yükle`,noBackupsYet:`Henüz yedek yok`},emailSettings:{placeholders:{fromName:`BamBuddy`}},tagManagement:{searchTags:`Etiketlerde ara...`,renameTag:`Etiketi yeniden adlandır`,deleteTag:`Etiketi sil`},notificationTemplates:{placeholders:{title:`Bildirim başlığı...`,body:`Bildirim gövdesi...`}},batchTag:{placeholders:{newTag:`Yeni etiket girin...`}},photoGallery:{deletePhoto:`Fotoğrafı Sil`},filamentHoverCard:{copySpoolUuid:`Makara UUID'sini kopyala`},kProfilesView:{hasNote:`Notu var`,copyProfile:`Profili kopyala`},layout:{openMenu:`Menüyü aç`,noPermissionSystemInfo:`Sistem bilgisini görüntüleme izniniz yok`},dashboard:{dragToReorder:`Yeniden sıralamak için sürükleyin`,hideWidget:`Widget'ı gizle`},notificationProviderCard:{deleteNotificationProvider:`Bildirim Sağlayıcısını Sil`},fileManagerModal:{closeFileManager:`Dosya yöneticisini kapat`,sortFiles:`Dosyaları sırala`,goToParentFolder:`Üst klasöre git`,threeView:`3B Görünüm`},embeddedCameraViewer:{refreshStream:`Akışı yenile`,close:`Kapat`,zoomOut:`Uzaklaştır`,resetZoom:`Yakınlaştırmayı sıfırla`,zoomIn:`Yakınlaştır`,dragToResize:`Yeniden boyutlandırmak için sürükleyin`},timelapseViewer:{skipBack5s:`5 sn geri al`,skipForward5s:`5 sn ileri al`},notificationProviders:{descriptions:{email:`SMTP e-posta bildirimleri`,telegram:`Telegram botu üzerinden bildirimler`,discord:`Webhook üzerinden Discord kanalına gönder`,ntfy:`Ücretsiz, kendi barındırılabilir push bildirimleri`,pushover:`Basit, güvenilir push bildirimleri`,callmebot:`CallMeBot üzerinden ücretsiz WhatsApp bildirimleri`,webhook:`Herhangi bir URL'ye genel HTTP POST`}},logViewer:{searchPlaceholder:`Mesaj veya günlükçü adı ara...`,noLogEntries:`Günlük kaydı bulunamadı`},switchbarPopover:{noSwitchesInSwitchbar:`Anahtar çubuğunda anahtar yok`},projectPageModal:{placeholders:{title:`Başlık`,designer:`Tasarımcı`,license:`Lisans`,description:`Açıklama girin...`,profileTitle:`Profil Başlığı`,profileDescription:`Profil açıklaması...`}},spoolmanSettings:{},time:{unknown:`-`,waiting:`Bekliyor`,justNow:`Az önce`,now:`Şimdi`,minsAgo:`{{count}}dk önce`,inMins:`{{count}}dk sonra`,hoursAgo:`{{count}}sa önce`,inHours:`{{count}}sa sonra`,daysAgo:`{{count}}g önce`,inDays:`{{count}}g sonra`},spoolbuddy:{nav:{dashboard:`Gösterge Paneli`,ams:`AMS`,inventory:`Envanter`,writeTag:`Yaz`,settings:`Ayarlar`},status:{nfcReady:`NFC Hazır`,nfcOff:`NFC Kapalı`,offline:`Çevrimdışı`,online:`Çevrimiçi`,noPrinters:`Yazıcı yok`,deviceOffline:`Cihaz Çevrimdışı`,waitingConnection:`Cihaz bağlantısı bekleniyor...`,systemReady:`Sistem Hazır`,status:`Durum`},dashboard:{readyToScan:`Taramaya hazır`,idleMessage:`Tanımlamak için bir makarayı tartıya yerleştirin`,nfcHint:`NFC etiketi otomatik olarak okunacak`,device:`Cihaz`,syncWeight:`Ağırlığı Senkronize Et`,weightSynced:`Senkronize edildi!`,unknownTag:`Bilinmeyen Etiket`,newTag:`Yeni Etiket Algılandı`,onScale:`tartıda`,linkSpool:`Makaraya Bağla`,linkTagTitle:`Etiketi Makaraya Bağla`,linkTag:`Etiketi Bağla`,selectSpool:`Bu etiketi bağlamak için bir makara seçin:`,noUntagged:`Etiketsiz makara bulunamadı`,tagDetected:`Etiket algılandı`,noTag:`Etiket yok`,tagId:`Etiket`,grossWeight:`Brüt ağırlık`,spoolSize:`Makara boyutu`,close:`Kapat`,currentSpool:`Mevcut Makara`,plateReady:`Plaka hazır: {{name}}`,plateReadyLabel:`Temizlenmeye hazır plakalar`,plateClearAction:`Temizle`,plateClearedToast:`Plaka temizlendi olarak işaretlendi`,plateClearFailed:`Plaka temizlendi olarak işaretlenemedi`},modal:{spoolDetected:`Makara Algılandı`,assignToAms:`AMS'e Ata`,syncWeight:`Ağırlığı Senkronize Et`,weightSynced:`Senkronize edildi!`,syncing:`Senkronize ediliyor...`,newTagDetected:`Yeni Etiket Algılandı`,addToInventory:`Envantere Ekle`,assignToAmsTitle:`AMS'e Ata`,selectSlot:`Bir yuva seçin`,assign:`Ata`,assigning:`Atanıyor...`,assignSuccess:`Atandı!`,assignPendingInsert:`Atandı. Makarayı yerleştirdiğinizde yuva yapılandırılacak.`,assignError:`Makara atanamadı. Lütfen tekrar deneyin.`,noPrinterSelected:`Bir yazıcı seçin...`,noAmsDetected:`Bu yazıcıda AMS algılanmadı`,slot:`Yuva`},weight:{noReading:`Okuma yok`,stable:`Kararlı`,measuring:`Ölçülüyor...`,tare:`Dara`,calibrate:`Kalibre Et`},spool:{remaining:`Kalan`,material:`Malzeme`,brand:`Marka`,color:`Renk`,coreWeight:`Çekirdek`,labelWeight:`Etiket`,scaleWeight:`Tartı`,netWeight:`Net`,lastUsed:`Son kullanım`},ams:{noData:`AMS algılanmadı`,connectAms:`Filament yuvalarını görmek için bir AMS bağlayın`,noPrinter:`Yazıcı seçilmedi`,selectPrinter:`Üst çubuktan bir yazıcı seçin`,printerDisconnected:`Yazıcı bağlantısı kesildi`,humidity:`Nem`,level:`Seviye`,active:`Aktif`,slot:`Yuva`,empty:`Boş`},inventory:{search:`Makaralarda ara...`,empty:`Envanterde makara yok`,noResults:`Eşleşen makara yok`,spools:`makara`,addSpool:`Makara Ekle`},settings:{tabDevice:`Cihaz`,tabDisplay:`Görüntü`,tabScale:`Tartı`,tabUpdates:`Güncellemeler`,nfcReader:`NFC Okuyucu`,type:`Tür`,connection:`Bağlantı`,notConnected:`N/A`,deviceInfo:`Cihaz Bilgisi`,hostname:`Ana Bilgisayar`,uptime:`Çalışma Süresi`,systemConfig:`Arka Uç ve Kimlik Doğrulama`,backendUrl:`Bambuddy Arka Uç URL'si`,apiToken:`API Belirteci`,apiTokenPlaceholder:`API belirtecini girin`,saveConfig:`Yapılandırmayı Kaydet`,systemQueued:`Yapılandırma kuyruğa alındı.`,nfcDiagnostic:`NFC Tanılaması`,scaleDiagnostic:`Tartı Tanılaması`,readTagDiagnostic:`Etiket Okuma Tanılaması`,testNfc:`Okuyucuyu test et`,testScale:`Doğruluğu test et`,testReadTag:`Etiket oku`,systemFieldsRequired:`Arka uç URL'si gerekli.`,brightness:`Parlaklık`,saved:`Kaydedildi`,noBacklight:`DSI arka ışık algılanmadı. Parlaklık kontrolü DSI ekran gerektirir.`,screenBlank:`Ekran Kapanma Zaman Aşımı`,screenBlankDesc:`Hareketsizlik sonrası ekran kapanır. Uyandırmak için dokunun.`,displayNote:`Parlaklık bir yazılım filtresi olarak uygulanır.`,scaleCalibration:`Tartı Kalibrasyonu`,currentWeight:`Mevcut ağırlık`,tareOffset:`Dara`,calFactor:`Faktör`,knownWeight:`Bilinen ağırlık`,calStep1:`Tartıdan tüm öğeleri kaldırın ve Sıfır Ayarla'ya basın.`,calStep2:`Bilinen ağırlığı tartıya yerleştirin.`,setZero:`Sıfır Ayarla`,calibrateNow:`Kalibre Et`,calibrated:`Kalibre edildi`,tareSet:`Dara komutu gönderildi. Cihaz bekleniyor...`,tareComplete:`Dara tamam!`,tareTimedOut:`Dara zaman aşımına uğradı — SpoolBuddy daemon çalışıyor mu?`,tareFailed:`Dara komutu gönderilemedi`,zeroSet:`Sıfır noktası ayarlandı. Bilinen ağırlığı tartıya yerleştirin.`,calibrationDone:`Kalibrasyon tamamlandı!`,calibrationFailed:`Kalibrasyon başarısız`,lastCalibrated:`Son kalibrasyon`,stable:`Kararlı`,settling:`Sabitleniyor...`,firmware:`Firmware`,scale:`Tartı`,noDevice:`SpoolBuddy cihazı bulunamadı`,daemonVersion:`Daemon Sürümü`,currentVersion:`Mevcut`,versionPending:`Daemon bekleniyor...`,checking:`Kontrol ediliyor...`,checkUpdates:`Güncellemeleri Kontrol Et`,updateAvailable:`Güncelleme mevcut`,updateInstructions:`SSH üzerinden güncelle: yükseltmek için SpoolBuddy yükleme betiğini çalıştırın.`,upToDate:`Güncel`,includeBeta:`Beta sürümleri dahil et`},writeTag:{tabExisting:`Mevcut Makara`,tabNew:`Yeni Makara`,tabReplace:`Etiketi Değiştir`,searchPlaceholder:`Malzeme, renk, marka ile ara...`,noUntaggedSpools:`Etiketsiz makara yok`,noTaggedSpools:`Etiketli makara yok`,selectSpool:`Bir makara seçin, ardından okuyucuya boş bir NTAG yerleştirin`,placeTag:`Okuyucuya bir NTAG yerleştirin`,tagReady:`Etiket algılandı — yazmaya hazır`,writeTag:`Etiketi Yaz`,replaceTag:`Etiketi Değiştir`,writing:`Etiket yazılıyor...`,waiting:`SpoolBuddy bekleniyor...`,writeSuccess:`Etiket başarıyla yazıldı!`,writeFailed:`Yazma başarısız`,queueFailed:`Yazma komutu kuyruğa alınamadı`,tryAgain:`Tekrar Dene`,cancel:`İptal`,replaceWarning:`Eski etiket bağlantısı kaldırılacak. Yeni etiket yerini alacak.`,deviceOffline:`SpoolBuddy çevrimdışı`,material:`Malzeme`,colorName:`Renk Adı`,color:`Renk`,brand:`Marka`,weight:`Ağırlık (g)`,createSpool:`Makara Oluştur`,creating:`Oluşturuluyor...`,spoolCreated:`Makara oluşturuldu! Yazmaya hazır.`,createFailed:`Makara oluşturulamadı`,incompleteDataWarning:`Etiket eksik Spoolman verisiyle yazıldı`},quickMenu:{printerPower:`Yazıcı Gücü`,systemControls:`Sistem`,restartDaemon:`Daemon'u Yeniden Başlat`,restartBrowser:`Tarayıcıyı Yeniden Başlat`,reboot:`Yeniden Başlat`,shutdown:`Kapat`,swipeToClose:`Kapatmak için aşağı kaydır`,confirmTitle:`Onayla`,confirmShutdown:`SpoolBuddy'yi kapatmak istediğinizden emin misiniz? Tekrar açmak için fiziksel erişime ihtiyacınız olacak.`,confirmReboot:`SpoolBuddy'yi yeniden başlatmak istediğinizden emin misiniz?`,confirmRestartDaemon:`SpoolBuddy daemon yeniden başlatılsın mı? NFC ve tartı geçici olarak kullanılamayacak.`,confirmRestartBrowser:`Kiosk tarayıcısı yeniden başlatılsın mı? Ekran kısa bir süre kararacak.`,confirm:`Onayla`,confirmPlugOn:`{{name}} açılsın mı?`,confirmPlugOff:`{{name}} kapatılsın mı?`,turnOn:`Aç`,turnOff:`Kapat`}},diagnostic:{modalTitle:`Bağlantı tanılaması — {{name}}`,running:`Tanılama çalışıyor...`,runningElapsed:`Tanılama çalışıyor... ({{elapsed}}s)`,waitingForReportHint:`Yazıcının durum raporu yayınlamasını bekliyor — bu işlem en fazla {{max}} saniye sürebilir.`,runFailed:`Tanılama çalıştırılamadı: {{error}}`,retry:`Tekrar çalıştır`,runButton:`Tanılamayı çalıştır`,sectionTitle:`Bağlantı Tanılaması`,sectionDescription:`Bir yazıcının neden bağlanmadığını veya yazdırmadığını kontrol edin — port erişilebilirliği, LAN geliştirici modu, Docker ağ modu ve kimlik bilgileri.`,noPrinters:`Yapılandırılmış yazıcı yok.`,overall:{ok:`Sorun bulunamadı — yazıcı bağlantısı sağlıklı görünüyor.`,warnings:`Yazıcı çalışmalı, ancak bazı şeyler dikkat gerektiriyor.`,problems:`Yazıcının neden bağlanmadığını veya yazdırmadığını açıklayan sorunlar bulundu.`},check:{port_mqtt:{title:`Kontrol portu (MQTT 8883)`,pass:`Erişilebilir — yazıcı kontrol bağlantılarını kabul ediyor.`,fail:`Port 8883 erişilemez. Yazıcı kapalı, farklı bir IP adresinde veya bir güvenlik duvarı engelliyor. Yazıcı IP'sini ve hiçbir şeyin port 8883'ü engellemediğini doğrulayın.`},port_ftps:{title:`Dosya aktarım portu (FTPS 990)`,pass:`Erişilebilir — baskı dosyaları gönderme çalışacak.`,warn:`Port 990 erişilemez. İzleme yine çalışabilir, ancak yazıcıya baskı gönderme başarısız olacak. Port 990'ın engellenmediğinden emin olun.`},external_storage:{title:`Gönderilen dosyaları harici depolamada sakla (kurulum adımı 4)`,pass:`Yazıcı bu seçeneğin açık olduğunu bildiriyor — gönderilen dosyalar SD kartta saklanacak ve arşivler küçük resim ve dilimleyici meta verileri içerecek.`,fail:`Yazıcı bu seçeneğin kapalı olduğunu bildiriyor. "Gönderilen dosyaları harici depolamada sakla" seçeneğini etkinleştirin — yeni donanım yazılımlarında (P2S 01.02 / Bambu Studio 2.6+) düğme yazıcının Baskı Ayarları'nda; eski sürümlerde Bambu Studio / OrcaSlicer'in Cihaz sekmesindedir. Bu seçenek olmadan, arşivlenen her baskıda küçük resim ve dilimleyici meta verisi olmayacak.`,skip:`Kontrol edilmedi — etkin bir MQTT bağlantısı gerekli. Bu ayarın yalnızca dilimleyicide bulunduğu eski dilimleyicilerde yazıcı bunu bildirmez, bu nedenle seçenek kapalı olsa bile bu kontrol geçer — kurulum adımı 4'ü manuel olarak doğrulayın.`,skip_unsupported_model:`Bu modelde SD yuvası var ancak seçeneği açmanın bir yolu yok — mevcut P1 serisi bellenim, Bambu Studio'da bu anahtarı göstermiyor ve yazıcının ekranı yok. Burada düzeltilecek bir şey yok; Bambu Lab bellenim desteği ekleyene kadar arşivlenen baskılarda küçük resimler ve dilimleyici meta verileri eksik olabilir.`},port_rtsps:{title:`Kamera portu ({{protocol}} {{port}})`,pass:`Erişilebilir — kamera akışı çalışacak.`,warn:`Port {{port}} erişilemez. Canlı kamera görünümü çalışmayacak. Bu, baskıyı etkilemez.`},network_mode:{title:`Docker ağ modu`,pass:`Ana bilgisayar ağ modunda çalışıyor.`,warn:`Bambuddy, Docker köprü ağı kullanılarak çalışıyor. Yazıcı keşfi ve Sanal Yazıcı, ana bilgisayar ağ modu gerektirir — konteyneri "network_mode: host" ile yeniden oluşturun.`,skip:`Docker'da çalışmıyor — uygulanamaz.`},subnet:{title:`Ağ alt ağı`,pass:`Yazıcı ve Bambuddy aynı alt ağda.`,warn:`Yazıcı ({{printer_ip}}) ve Bambuddy ({{host_ip}}) farklı alt ağlarda. Alt ağlar arasında yönlendirme yapılandırılmazsa birbirlerine erişemeyebilirler.`,skip:`Alt ağ belirlenemedi — atlandı.`},mqtt_auth:{title:`Yazıcı kimlik bilgileri`,pass:`Yazıcı bağlantıyı kabul etti.`,fail:`Yazıcıya erişilebiliyor ancak Bambuddy ona bağlı değil. Büyük olasılıkla erişim kodu veya seri numarası yanlış — erişim kodu, Yalnızca LAN veya Geliştirici Modu her açılıp kapatıldığında değişir, bu yüzden yazıcı ekranından yeniden kopyalayın. Yeniden başlamakta olan veya eşzamanlı bağlantı sınırına ulaşmış bir yazıcı da aynı görünür.`,fail_auth_rejected:`Yazıcı, Bambuddy'nin kimlik bilgilerini reddetti. Erişim kodu veya seri numarası yanlış — erişim kodu, Yalnızca LAN veya Geliştirici Modu her açılıp kapatıldığında değişir. Yazıcı ekranından yeniden kopyalayın ve yazıcı ayarlarına kaydedin.`,skip:`Kontrol edilmedi — yazıcıya erişilemedi.`},developer_mode:{title:`LAN Geliştirici Modu`,pass:`Geliştirici Modu etkin.`,fail:`Yazıcıda Geliştirici Modu KAPALI. Yazıcının LAN ayarlarında etkinleştirin — ve OK ile onaylayın. Bu olmadan baskılar başlamayacak.`,skip:`Kontrol edilemedi — yazıcıya canlı bir bağlantı gerektirir.`},printer_publishing:{title:`Yazıcı durum yayını yapıyor`,pass:`Yazıcı durum güncellemelerini yayınlıyor — AMS, filamentler ve K profilleri dilimleyiciye doğru şekilde yansıtılacak.`,fail:`MQTT aracısı bağlantıyı kabul etti, ancak yazıcı hiç durum raporu yayınlamadı. Bu neredeyse her zaman yanlış ya da büyük/küçük harf hatalı bir seri numarasından kaynaklanır — device//api/v1/metrics для мониторинга в Prometheus/Grafana.`,bearerTokenOptional:`Bearer-токен (необязательно)`,bearerTokenHint:`Если задан, запросы должны содержать Authorization: Bearer `,metricsConnectionStatus:`Состояние подключения`,metricsPrinterState:`Состояние принтера (ожидание, печать и т. п.)`,metricsPrintProgress:`Прогресс печати, 0–100 %`,metricsBedTemp:`Температура стола`,metricsNozzleTemp:`Температура сопла`,metricsPrintsTotal:`Общее количество заданий по результату`,metricsMore:`…и другие данные: слои, вентиляторы, очередь, расход филамента`,smartPlugsDescription:`Подключение умных розеток Tasmota или Home Assistant для автоматического управления питанием принтеров и учёта энергопотребления.`,allOn:`Включить все`,allOff:`Выключить все`,addSmartPlug:`Добавить умную розетку`,energySummary:`Сводка энергопотребления`,currentPower:`Текущая мощность`,plugsOnline:`Розеток в сети: {{reachable}}/{{total}}`,today:`Сегодня`,yesterday:`Вчера`,total:`Всего`,enablePlugsForSummary:`Включите розетки, чтобы увидеть сводку энергопотребления`,addNotificationProvider:`Добавить`,systemBadge:`(системная)`,creating:`Создание…`,changing:`Изменение…`,deleteUserAndItems:`Удалить пользователя И его объекты`,deleteUserKeepItems:`Удалить пользователя, объекты оставить без владельца`,ok:`ОК`,twoFa:{totpTitle:`Приложение-аутентификатор (TOTP)`,totpDesc:`Использовать приложение-аутентификатор, например Google Authenticator, Aegis или Authy.`,emailOtpTitle:`Одноразовый код по электронной почте`,emailOtpDesc:`Отправлять одноразовый код на {{email}} при входе.`,emailOtpNoEmail:`Добавьте адрес электронной почты в учётную запись, чтобы включить этот способ.`,addEmailFirst:`В вашей учётной записи нет адреса электронной почты. Перед включением одноразовых кодов попросите администратора добавить его.`,setupTotp:`Настроить приложение-аутентификатор`,setupAuthApp:`Настроить приложение-аутентификатор`,setupInstructions:`Отсканируйте QR-код приложением-аутентификатором, затем подтвердите настройку кодом.`,manualEntry:`Не получается отсканировать? Введите этот секрет вручную:`,scannedContinue:`Код отсканирован — продолжить`,enterCodeToConfirm:`Для подтверждения настройки введите шестизначный код из приложения-аутентификатора.`,activate:`Активировать`,disableTotp:`Отключить аутентификатор`,disableConfirmHint:`Чтобы отключить аутентификатор, введите действующий код TOTP или резервный код.`,totpDisabled:`Приложение-аутентификатор отключено.`,emailOtpEnabled:`Одноразовые коды по электронной почте включены.`,emailOtpDisabled:`Одноразовые коды по электронной почте отключены.`,smtpRequired:`Сначала настройте и проверьте SMTP.`,invalidCode:`Неверный код. Повторите попытку.`,enableEmailOtp:`Включить одноразовые коды по электронной почте`,disableEmailOtp:`Отключить одноразовые коды по электронной почте`,emailSetupEnterCode:`Код подтверждения отправлен на вашу электронную почту. Введите его ниже, чтобы подтвердить доступ к этому почтовому ящику.`,verifyAndEnable:`Подтвердить и включить`,emailDisablePasswordHint:`Чтобы подтвердить отключение одноразовых кодов по электронной почте, введите пароль учётной записи.`,passwordPlaceholder:`Введите пароль`,backupCodesTitle:`Сохраните резервные коды`,backupCodesWarning:`Сохраните эти коды в надёжном месте. Каждый код можно использовать только один раз; повторно они показаны не будут.`,backupCodesRemaining:`Осталось резервных кодов: {{count}}`,savedCodes:`Я сохранил коды`,regenBackup:`Создать новые резервные коды`,regenBackupHint:`Введите текущий код TOTP, чтобы создать 10 новых резервных кодов. Все существующие резервные коды станут недействительными.`,newBackupCodes:`Новые резервные коды`,linkedAccounts:`Связанные учётные записи SSO`,linkedAccountsDesc:`Эти внешние провайдеры идентификации связаны с вашей учётной записью.`,oidcUnlinked:`Учётная запись отсоединена.`},sessionPolicy:{title:`Политика сеансов`,description:`Максимальный срок действия сеанса для новых входов пользователей. Уже выданные токены сохраняют исходный срок действия.`,preset24h:`24 часа`,preset7d:`7 дней`,preset30d:`30 дней`,customHoursLabel:`Срок действия сеанса в часах`,hoursSuffix:`часов`,warning:`Длительные сеансы снижают защиту автоматическим выходом. Рекомендуется только для доверенных установок с одним пользователем.`},oidc:{title:`Провайдеры SSO / OIDC`,desc:`Настройка провайдеров OpenID Connect для единого входа через внешние службы идентификации.`,addProvider:`Добавить провайдера`,newProvider:`Новый провайдер`,empty:`Провайдеры OIDC пока не настроены.`,created:`Провайдер создан.`,updated:`Провайдер обновлён.`,deleted:`Провайдер удалён.`,refreshIcon:`Обновить значок`,removeIcon:`Удалить значок`,iconRefreshed:`Значок обновлён.`,iconRemoved:`Значок удалён.`,iconFetchFailed:`Не удалось получить значок по URL провайдера.`,deleteTitle:`Удалить провайдера`,deleteMessage:`Удалить «{{name}}»? Все связанные учётные записи пользователей будут отсоединены.`,form:{name:`Отображаемое имя`,issuerUrl:`URL издателя`,clientId:`Идентификатор клиента`,clientSecret:`Секрет клиента`,scopes:`Области доступа`,iconUrl:`URL значка (необязательно)`,enabled:`Включён`,autoCreate:`Автоматически создавать пользователей`,autoCreateDesc:`Автоматически создавать локальную учётную запись при первом входе.`,autoLink:`Автоматически связывать существующие учётные записи`,autoLinkDesc:`При первом входе связывать локальные учётные записи по совпадающему адресу электронной почты.`,secretHint:`оставьте пустым, чтобы сохранить текущий`,secretPlaceholder:`новый секрет`,emailClaim:`Поле электронной почты`,emailClaimDesc:`Поле JWT, используемое как адрес электронной почты. Для Azure Entra ID, который не передаёт email_verified, используйте preferred_username или upn. Указывайте только доверенные поля.`,emailClaimPlaceholder:`email`,emailClaimCustomClaimAutoLinkWarning:`Пользовательское поле безопасно для автоматического связывания только тогда, когда его значение назначается администратором арендатора, например upn или preferred_username в Azure Entra ID. Не включайте автоматическое связывание, если ваш IdP позволяет пользователям самостоятельно задавать это поле.`,requireEmailVerified:`Требовать подтверждённый адрес электронной почты`,requireEmailVerifiedDesc:`Принимать адрес электронной почты только в том случае, если провайдер пометил его как подтверждённый.`,requireEmailVerifiedWarning:`Предупреждение: адрес будет принят даже без подтверждения. Используйте только с доверенными провайдерами.`,requireEmailVerifiedAutoLink:`Чтобы изменить этот параметр, сначала отключите автоматическое связывание.`,defaultGroup:`Группа по умолчанию`,defaultGroupDesc:`Группа для автоматически созданных пользователей. Если не задана, используется группа «Наблюдатели».`,defaultGroupViewersFallback:`Наблюдатели (по умолчанию)`,autologin:`Автоматический вход`,autologinDesc:`Сразу перенаправлять неавторизованных посетителей к этому провайдеру. Этот флаг может быть установлен только у одного провайдера.`}},encryption:{title:`Состояние шифрования MFA`,enabledFromEnv:`Шифрование данных включено; ключ получен из переменной окружения MFA_ENCRYPTION_KEY`,enabledFromFile:`Шифрование данных включено; ключ загружен из каталога данных`,enabledGenerated:`Шифрование данных включено с автоматически созданным ключом`,notConfigured:`Шифрование хранимых данных не настроено`,notConfiguredDesc:`Секреты TOTP и client_secret провайдеров OIDC хранятся открытым текстом. Задайте MFA_ENCRYPTION_KEY или перезапустите Bambuddy с доступным для записи каталогом данных, чтобы ключ был создан автоматически.`,allEncrypted:`Все секреты MFA зашифрованы при хранении.`,legacyRowsLabel:`Старые записи открытым текстом`,encryptedRowsLabel:`Зашифрованные записи`,legacyRowsWarning:`Обнаружено старых записей открытым текстом: {{count}}. Чтобы перенести их в зашифрованное хранилище, повторно сохраните провайдера OIDC или заново подключите приложение-аутентификатор пользователя.`,backupHint:`Автоматически созданный ключ хранится в DATA_DIR/.mfa_encryption_key и включается в локальные ZIP-копии. Храните резервные копии в безопасном месте либо задайте MFA_ENCRYPTION_KEY явно.`,decryptionBrokenTitle:`Отсутствует ключ шифрования`,decryptionBrokenError:`Невозможно расшифровать записей: {{count}}, поскольку ключ шифрования больше недоступен. Для восстановления верните прежний MFA_ENCRYPTION_KEY или файл DATA_DIR/.mfa_encryption_key.`,migrationErrorWarning:`Не удалось повторно зашифровать старых записей при запуске: {{count}}. Проверьте журнал сервера и перезапустите Bambuddy для повторной попытки.`},pipelineLimits:{title:`Ограничения конвейеров слайсера`,maxCopiesLabel:`Максимум копий за запуск`,maxCopiesDesc:`Верхний предел количества копий, которое оператор может запросить при запуске конвейера. Жёсткое серверное ограничение — 1000.`},pipelines:{title:`Конвейеры слайсера`,subtitle:`Повторно используемые наборы профилей: принтер, процесс, филаменты и тип стола. Сохраните набор в окне нарезки и применяйте его к следующему файлу одним нажатием.`,loading:`Загрузка конвейеров...`,loadError:`Не удалось загрузить конвейеры.`,confirmDelete:`Удалить этот конвейер? Отменить действие нельзя.`,staleWarning:`Один или несколько связанных профилей больше не существуют. Чтобы исправить конвейер, повторно сохраните его из окна нарезки.`,empty:{title:`Конвейеров пока нет.`,howto:`Откройте окно нарезки любого файла, выберите принтер, процесс, филаменты и тип стола, затем нажмите «Сохранить как конвейер». Сохранённые конвейеры появятся здесь.`},field:{name:`Название конвейера`,description:`Описание`,targetPrinter:`Целевой принтер`,noTarget:`— Цель не задана —`,targetKind:`Тип цели`,targetKindSpecific:`Конкретный принтер`,targetKindClass:`Класс принтеров`,targetModelClass:`Модель принтера`,fanoutStrategy:`Стратегия распределения`,fanout:{max_parallel:`Максимум параллельно — распределять между любыми свободными подходящими принтерами`,round_robin:`По кругу — последовательно чередовать подходящие принтеры`,fill_one_first:`Сначала один — назначить все копии одному принтеру`},fanoutShort:{max_parallel:`параллельно`,round_robin:`по кругу`,fill_one_first:`сначала один`}},action:{save:`Сохранить`,cancel:`Отмена`,rename:`Переименовать`,delete:`Удалить`},slot:{printer:`Принтер`,process:`Процесс`,filament:`Филамент`,filamentN:`Филамент {{n}}`,filamentAll:`Все слоты: {{n}}`,bed:`Стол`},group:{profiles:`Профили`,filaments:`Филаменты`},searchPlaceholder:`Поиск конвейеров...`,filterTargetType:`Фильтр по типу цели`,filterTarget:`Фильтр по цели`,filter:{all:`Все цели`,noTarget:`Цель не задана`,count:`{{shown}} из {{total}}`,noMatches:`Нет конвейеров, соответствующих текущим фильтрам.`},toast:{saved:`Конвейер сохранён`,saveFailed:`Не удалось сохранить`,deleted:`Конвейер удалён`,deleteFailed:`Не удалось удалить`},noTargetHint:`Чтобы запустить, задайте целевой принтер`,noTargetWarning:`Перед запуском конвейера задайте целевой принтер.`,runs:{lastRun:`Последний запуск`,status:{queued:`в очереди`,slicing:`нарезка`,dispatching:`назначение`,in_progress:`печать`,completed:`завершено`,failed:`ошибка`,partial_failure:`частичная ошибка`,cancelled:`отменено`}}}},notification:{printStarted:{title:`Печать началась`,body:`{{printer}}: началась печать файла {{filename}}`},printCompleted:{title:`Печать завершена`,body:`{{printer}}: файл {{filename}} успешно напечатан`},printFailed:{title:`Ошибка печати`,body:`{{printer}}: печать файла {{filename}} завершилась ошибкой`},printStopped:{title:`Печать остановлена`,body:`{{printer}}: печать файла {{filename}} остановлена`},printProgress:{title:`Ход печати`,body:`{{printer}}: файл {{filename}} напечатан на {{percent}}%`},printerOffline:{title:`Принтер не в сети`,body:`{{printer}} не в сети`},printerError:{title:`Ошибка принтера`,body:`{{printer}}: {{error}}`},filamentLow:{title:`Заканчивается филамент`,body:`{{printer}}: осталось мало филамента`},maintenanceDue:{title:`Требуется обслуживание`,body:`{{printer}}: требуют внимания: {{items}}`}},errors:{generic:`Что-то пошло не так`,networkError:`Ошибка сети. Проверьте подключение.`,notFound:`Не найдено`,unauthorized:`Доступ не разрешён`,serverError:`Ошибка сервера`,validationError:`Проверьте введённые данные`,printerConnectionFailed:`Не удалось подключиться к принтеру`,saveFailed:`Не удалось сохранить изменения`,deleteFailed:`Не удалось удалить`,loadFailed:`Не удалось загрузить данные`},hmsErrors:{title:`Ошибки — {{name}}`,noErrors:`Ошибок нет`,viewOnWiki:`Открыть в Bambu Lab Wiki`,mqttVerifyFailedRemedy:`Включите режим разработчика на принтере, перезагрузите принтер и запустите задание снова.`,unknownCode:`Неизвестный код HMS — подробности см. в Bambu Lab Wiki.`,clearInstructions:`Устраните ошибки на принтере, чтобы они исчезли из этого списка.`,clearErrors:`Очистить ошибки`,clearSuccess:`Ошибки HMS очищены`,clearFailed:`Не удалось очистить ошибки HMS`,actionSuccess:`Команда отправлена принтеру`,actionFailed:`Не удалось отправить команду`,runoutExpectedSlot:`Филамент закончился в {{ranOut}}. Теперь принтер ожидает совместимый филамент в {{expected}}. Установите катушку в {{expected}}, затем выберите «Повторить».`,runoutExpectedSlotOnly:`Принтер ожидает совместимый филамент в {{expected}}. Установите туда катушку, затем выберите «Повторить».`,runoutSlotUnknown:`Филамент закончился, и печать приостановлена. Bambuddy не смог определить, какой слот теперь ожидает принтер. Проверьте запрошенный слот на экране принтера.`,actions:{RESUME_PRINTING:`Продолжить печать`,RESUME_PRINTING_DEFECTS:`Продолжить (дефекты допустимы)`,RESUME_PRINTING_PROBELM_SOLVED:`Продолжить (проблема устранена)`,STOP_PRINTING:`Остановить печать`,CHECK_ASSISTANT:`Проверить помощник`,FILAMENT_EXTRUDED:`Филамент выдавливается — продолжить`,RETRY_FILAMENT_EXTRUDED:`Филамент ещё не выходит — повторить`,CONTINUE:`Готово — продолжить`,LOAD_VIRTUAL_TRAY:`Загрузить филамент`,OK_BUTTON:`ОК`,FILAMENT_LOAD_RESUME:`Филамент загружен — продолжить`,JUMP_TO_LIVEVIEW:`Открыть камеру`,NO_REMINDER_NEXT_TIME:`Больше не напоминать`,REFRESH_NOZZLE:`Проверить ещё раз`,IGNORE_NO_REMINDER_NEXT_TIME:`Игнорировать и больше не напоминать`,IGNORE_RESUME:`Игнорировать и продолжить`,PROBLEM_SOLVED_RESUME:`Проблема устранена — продолжить`,TURN_OFF_FIRE_ALARM:`Понятно, отключить пожарную тревогу`,RETRY_PROBLEM_SOLVED:`Повторить (проблема устранена)`,CANCLE:`Отмена`,STOP_DRYING:`Остановить сушку`,PROCEED:`Продолжить`,OK_JUMP_RACK:`ОК`,ABORT:`Прервать`,DISABLE_PURIFICATION:`Отключить очистку воздуха для этой печати`,DONT_REMIND_NEXT_TIME:`Больше не напоминать`,DBL_CHECK_CANCEL:`Отмена`,DBL_CHECK_DONE:`Готово`,DBL_CHECK_RETRY:`Повторить`,DBL_CHECK_RESUME:`Продолжить`,DBL_CHECK_OK:`Подтвердить`,REMOVE_CLOSE_BTN:`Закрыть`}},mqttDebug:{title:`Журнал отладки MQTT`,searchPlaceholder:`Поиск по теме или содержимому...`,noMessages:`Сообщений пока нет`,startLoggingHint:`Нажмите «Начать запись», чтобы перехватывать сообщения MQTT`,noMessagesMatch:`Нет сообщений, соответствующих фильтру`,adjustFilterHint:`Измените запрос или параметры фильтра`,incoming:`Входящие`,outgoing:`Исходящие`,loggingStopped:`Запись остановлена`,loggingActive:`Запись активна — сообщения обновляются автоматически`,startLogging:`Начать запись`,stopLogging:`Остановить запись`,clearLog:`Очистить журнал`,topic:`Тема`,timestamp:`Время`,direction:`Направление`,all:`Все`},printerFiles:{title:`Файлы принтера`,storageUsed:`Занято:`,storageFree:`Свободно:`,filterPlaceholder:`Фильтр файлов...`,deleteButton:`Удалить`,deleteFiles:`Удалить файлы: {{count}}`,deleteFileConfirm:`Удалить «{{name}}»? Это действие нельзя отменить.`,deleteFilesConfirm:`Удалить выбранные файлы ({{count}})? Это действие нельзя отменить.`,noFiles:`На принтере нет файлов`,loadingFiles:`Загрузка файлов...`,failedToLoad:`Не удалось загрузить файлы`,toast:{filesDeleted:`Удалено файлов: {{count}}`,deleteFailed:`Не удалось удалить: {{error}}`}},confirm:{delete:`Удалить этот объект?`,unsavedChanges:`Есть несохранённые изменения. Всё равно уйти со страницы?`,clearQueue:`Очистить очередь печати?`},login:{title:`Вход в Bambuddy`,subtitle:`Войдите в свою учётную запись`,username:`Имя пользователя`,usernamePlaceholder:`Введите имя пользователя`,usernameOrEmail:`Имя пользователя или email`,usernameOrEmailPlaceholder:`Имя пользователя или email`,password:`Пароль`,passwordPlaceholder:`Введите пароль`,signIn:`Войти`,signingIn:`Вход...`,rememberMe:`Запомнить меня`,forgotPassword:`Забыли пароль?`,autologinFailed:`Автоматический вход через SSO не выполнен. Выберите провайдера ниже.`,localDisabledNotice:`Локальный вход отключён. Используйте одного из SSO-провайдеров ниже.`,loginSuccess:`Вход выполнен`,loginFailed:`Не удалось войти`,enterCredentials:`Введите имя пользователя и пароль`,enterEmail:`Введите адрес электронной почты`,oidcLoginFailed:`Ошибка входа через OIDC`,oidcErrors:{providerError:`Провайдер удостоверений вернул ошибку`,missingParameters:`В ответе OIDC отсутствуют обязательные параметры`,invalidState:`Состояние OIDC недействительно или уже использовано`,stateExpired:`Сеанс входа OIDC истёк — повторите попытку`,providerNotFound:`Провайдер OIDC не найден`,discoveryFailed:`Не удалось получить документ обнаружения OIDC`,invalidDiscovery:`Документ обнаружения OIDC недействителен`,networkError:`Сетевая ошибка при обмене токена OIDC`,badResponse:`Неожиданный ответ при обмене токена OIDC`,noIdToken:`Провайдер OIDC не вернул ID-токен`,validationFailed:`Не удалось проверить токен OIDC`,nonceMismatch:`Несовпадение nonce OIDC — возможна атака повторного воспроизведения`,missingSubClaim:`В токене OIDC отсутствует поле sub`,noLinkedAccount:`С этой учётной записью OIDC не связана локальная учётная запись`,accountInactive:`Учётная запись неактивна`,userResolutionFailed:`Не удалось определить учётную запись`,internalError:`Внутренняя ошибка при входе через OIDC`,tokenExchangeFailed:`Не удалось обменять токен OIDC`},forgotPasswordTitle:`Восстановление пароля`,forgotPasswordMessage:`Обратитесь к системному администратору для сброса пароля.`,forgotPasswordEmailMessage:`Введите адрес электронной почты, и мы отправим новый пароль.`,emailAddress:`Адрес электронной почты`,emailPlaceholder:`your.email@example.com`,cancel:`Отмена`,sending:`Отправка...`,sendResetEmail:`Отправить письмо для сброса`,howToReset:`Как сбросить пароль:`,resetStep1:`Свяжитесь с администратором Bambuddy`,resetStep2:`Попросите сбросить пароль в разделе управления пользователями`,resetStep3:`Администратор задаст новый временный пароль`,resetStep4:`Войдите с новым паролем и измените его в настройках`,gotIt:`Понятно`,resetPassword:{title:`Новый пароль`,subtitle:`Введите и подтвердите новый пароль.`,newPassword:`Новый пароль`,newPasswordPlaceholder:`Не менее 8 символов`,confirmPassword:`Подтверждение пароля`,confirmPasswordPlaceholder:`Повторите новый пароль`,saving:`Сохранение…`,submit:`Установить новый пароль`,backToLogin:`Вернуться ко входу`,passwordsDoNotMatch:`Пароли не совпадают`,passwordTooShort:`Пароль должен содержать не менее 8 символов`,resetFailed:`Не удалось сбросить пароль. Возможно, ссылка устарела.`},twoFA:{title:`Двухфакторная аутентификация`,subtitle:`Учётная запись защищена 2FA. Введите код подтверждения.`,methodAuthenticator:`Приложение-аутентификатор`,methodEmail:`Код по email`,methodBackup:`Резервный код`,instructionsTotp:`Откройте приложение-аутентификатор и введите шестизначный код Bambuddy.`,instructionsEmail:`Шестизначный код отправлен на вашу электронную почту. Он действует 10 минут.`,instructionsEmailNotSent:`Нажмите кнопку ниже, чтобы получить код подтверждения по email.`,instructionsBackup:`Введите один из восьмизначных резервных кодов восстановления. Каждый код используется только один раз.`,sendCodeButton:`Отправить код по email`,sendingCode:`Отправка...`,resendCode:`Отправить код повторно`,codeLabel:`Код подтверждения`,backupCodeLabel:`Резервный код`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`Подтвердить`,verifyingButton:`Проверка...`,backToLogin:`← Вернуться ко входу`,orContinueWith:`или продолжить через`,signInWith:`Войти через {{provider}}`,enterCode:`Введите код подтверждения`,sendCodeFailed:`Не удалось отправить код подтверждения`,invalidCode:`Неверный код. Повторите попытку.`}},setup:{title:`Настройка Bambuddy`,subtitle:`Настройте аутентификацию для этого экземпляра Bambuddy`,enableAuth:`Включить аутентификацию`,adminAccount:`Учётная запись администратора`,adminAccountDesc:`Если администраторы уже существуют, аутентификация будет включена с использованием существующих учётных записей. Оставьте поля пустыми или введите данные для создания нового администратора.`,adminUsername:`Имя администратора`,adminPassword:`Пароль администратора`,optionalIfAdminExists:`(необязательно, если администратор уже существует)`,adminUsernamePlaceholder:`Введите имя администратора (необязательно)`,adminPasswordPlaceholder:`Введите пароль администратора (необязательно)`,confirmPassword:`Подтвердите пароль`,confirmPasswordPlaceholder:`Повторите пароль администратора`,settingUp:`Настройка...`,completeSetup:`Завершить настройку`,toast:{authEnabledAdminCreated:`Аутентификация включена, администратор создан`,authEnabledExistingAdmins:`Аутентификация включена для существующих администраторов`,setupCompleted:`Настройка завершена`,enterBothCredentials:`Введите имя и пароль администратора либо оставьте оба поля пустыми`,passwordsDoNotMatch:`Пароли не совпадают`,passwordTooShort:`Пароль должен содержать не менее 6 символов`}},changePassword:{title:`Изменение пароля`,currentPassword:`Текущий пароль`,currentPasswordPlaceholder:`Введите текущий пароль`,newPassword:`Новый пароль`,newPasswordPlaceholder:`Введите новый пароль (не менее 6 символов)`,confirmPassword:`Подтвердите новый пароль`,confirmPasswordPlaceholder:`Повторите новый пароль`,passwordsDoNotMatch:`Пароли не совпадают`,passwordTooShort:`Пароль должен содержать не менее 6 символов`,changing:`Изменение...`,success:`Пароль изменён`,failed:`Не удалось изменить пароль`},plateAlert:{title:`Печать приостановлена!`,message:`На печатной пластине обнаружены объекты. Печать автоматически приостановлена. Очистите пластину и продолжите печать.`,understand:`Понятно`},camera:{title:`Камера`,invalidPrinterId:`Неверный идентификатор принтера`,live:`Прямой эфир`,snapshot:`Снимок`,restartStream:`Перезапустить поток`,refreshSnapshot:`Обновить снимок`,fullscreen:`На весь экран`,exitFullscreen:`Выйти из полноэкранного режима`,connectingToCamera:`Подключение к камере...`,capturingSnapshot:`Создание снимка...`,connectionLost:`Соединение потеряно`,connectionFailed:`Не удалось подключиться к камере`,reconnecting:`Повторное подключение через {{countdown}} с... (попытка {{attempt}} из {{max}})`,reconnectNow:`Подключиться сейчас`,cameraUnavailable:`Камера недоступна`,cameraUnavailableDesc:`Убедитесь, что принтер включён и подключён к сети.`,noCamera:`Камера отсутствует`,retry:`Повторить`,cameraStream:`Видеопоток камеры`,zoomOut:`Уменьшить`,zoomIn:`Увеличить`,resetZoom:`Сбросить масштаб`,recording:`Запись`,startRecording:`Начать запись`,stopRecording:`Остановить запись`,chamberLight:`Переключить освещение камеры принтера`,unavailable:`Камера недоступна`,diagnose:{button:`Диагностика`,modalTitle:`Диагностика камеры`,running:`Выполняется диагностика...`,runFailed:`Не удалось выполнить диагностику: {{error}}`,retry:`Запустить снова`,stage:{tcp_reachable:`Доступность по сети`,first_frame:`Получение кадра`,live_stream_active:`Активный видеопоток`},summary:{all_ok:`Камера работает. Все этапы диагностики завершены успешно.`,live_stream_active_healthy:`Камера уже передаёт свежие кадры — дополнительная проверка не требуется.`,printer_unreachable:`Принтер недоступен. Проверьте IP-адрес, сетевое подключение и питание принтера.`,camera_port_closed:`Принтер доступен, но порт камеры закрыт. Убедитесь, что в настройках принтера включены режим «Только LAN» и режим разработчика.`,no_frame:`Подключение к камере установлено, но кадры не поступают. Повторите попытку или проверьте, включена ли камера в настройках принтера.`,unknown_failure:`Диагностика камеры завершилась неизвестной ошибкой. Подробности см. в журнале поддержки.`},meta:{protocol:`Протокол`,port:`Порт`,profile:`Профиль`}}},groups:{title:`Управление группами`,subtitle:`Настройка групп разрешений для контроля доступа`,backToSettings:`Вернуться к настройкам`,createGroup:`Создать группу`,noPermission:`У вас нет доступа к этой странице.`,system:`Системная`,noDescription:`Без описания`,usersCount:`Пользователей: {{count}}`,permissionsCount:`Разрешений: {{count}}`,edit:`Изменить`,delete:`Удалить`,toast:{created:`Группа создана`,updated:`Группа обновлена`,deleted:`Группа удалена`,enterGroupName:`Введите название группы`},modal:{editGroup:`Изменение группы`,createGroup:`Создание группы`,cancel:`Отмена`,saving:`Сохранение...`,creating:`Создание...`,saveChanges:`Сохранить изменения`},form:{groupName:`Название группы`,groupNamePlaceholder:`Введите название группы`,systemGroupWarning:`Названия системных групп изменить нельзя`,description:`Описание`,descriptionPlaceholder:`Введите описание (необязательно)`,permissions:`Разрешения (выбрано: {{count}})`},deleteModal:{title:`Удаление группы`,message:`Удалить эту группу? Входящие в неё пользователи потеряют соответствующие разрешения.`,confirm:`Удалить группу`},editor:{title:`Изменение группы`,createTitle:`Создание группы`,search:`Поиск разрешений...`,selectAll:`Выбрать все`,clearAll:`Очистить выбор`,permissionsSelected:`Выбрано: {{count}}`,noResults:`Нет разрешений, соответствующих запросу`,websocketHint:`Необходимо для обновлений в реальном времени. Без этого интерфейс будет периодически опрашивать сервер.`}},users:{title:`Управление пользователями`,subtitle:`Управление пользователями и их доступом к Bambuddy`,backToSettings:`Вернуться к настройкам`,createUser:`Создать пользователя`,noPermission:`У вас нет доступа к этой странице.`,admin:`Администратор`,noGroups:`Без групп`,active:`Активен`,inactive:`Отключён`,edit:`Изменить`,delete:`Удалить`,system:`Системный`,noGroupsAvailable:`Нет доступных групп`,table:{username:`Имя пользователя`,groups:`Группы`,status:`Состояние`,actions:`Действия`},toast:{created:`Пользователь создан`,updated:`Пользователь обновлён`,deleted:`Пользователь удалён`,fillRequired:`Заполните все обязательные поля`,passwordsDoNotMatch:`Пароли не совпадают`,passwordTooShort:`Пароль должен содержать не менее 6 символов`,ldapProvisioned:`Пользователь LDAP «{{username}}» добавлен`},modal:{createUser:`Создание пользователя`,editUser:`Изменение пользователя`,cancel:`Отмена`,creating:`Создание...`,saving:`Сохранение...`,saveChanges:`Сохранить изменения`,advancedAuthSubtitle:`с расширенной аутентификацией`,tabsAriaLabel:`Источник пользователя`,localTab:`Локальный`,ldapTab:`LDAP`,ldapSearchLabel:`Поиск в каталоге`,ldapSearchPlaceholder:`Введите имя пользователя, имя или email...`,ldapMinChars:`Для поиска введите не менее 2 символов`,ldapTypeToSearch:`Начните вводить запрос для поиска в каталоге LDAP`,ldapSearching:`Поиск в каталоге...`,ldapNoResults:`В каталоге нет подходящих пользователей`,ldapSearchError:`Ошибка поиска в каталоге. Проверьте состояние сервера LDAP.`,ldapAlreadyProvisioned:`Уже добавлен`,ldapSelectedLabel:`Выбран`,ldapProvision:`Добавить пользователя`,ldapProvisioning:`Добавление...`,ldapErrorProvision:`Не удалось добавить пользователя. Проверьте сервер LDAP и повторите попытку.`},form:{username:`Имя пользователя`,usernamePlaceholder:`Введите имя пользователя`,email:`Электронная почта`,emailPlaceholder:`user@example.com`,password:`Пароль`,passwordPlaceholder:`Введите пароль`,confirmPassword:`Подтверждение пароля`,confirmPasswordPlaceholder:`Повторите пароль`,newPasswordPlaceholder:`Введите новый пароль`,confirmNewPasswordPlaceholder:`Повторите новый пароль`,leaveBlankToKeep:`оставьте пустым, чтобы сохранить текущий`,groups:`Группы`,optional:`необязательно`,autoGeneratedPassword:`Надёжный пароль будет создан автоматически и отправлен пользователю по email.`,passwordManagedByAdvancedAuth:`Пароль управляется расширенной аутентификацией. Используйте «Сбросить пароль», чтобы отправить пользователю новый пароль по email.`,resetPassword:`Сбросить пароль`,resettingPassword:`Сброс пароля...`},deleteModal:{title:`Удаление пользователя`,message:`Удалить этого пользователя? Это действие нельзя отменить.`,confirm:`Удалить пользователя`}},streamOverlay:{title:`Оформление трансляции`,invalidPrinterId:`Неверный идентификатор принтера`,cameraStream:`Видеопоток камеры`,progress:`Прогресс`,eta:`Осталось`,printerIdle:`Принтер простаивает`,printerOffline:`Принтер не в сети`,status:{printing:`Печать`,paused:`Приостановлено`,finished:`Завершено`,failed:`Ошибка`,idle:`Ожидание`,unknown:`Неизвестно`}},profiles:{title:`Профили`,subtitle:`Управление профилями слайсера и калибровками Pressure Advance`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`Локальные профили`,kprofiles:`K-профили`},orcaCloud:{connectedAs:`Подключено как`,connectedShort:`Подключено к Orca Cloud`,logout:`Отключиться`,noLogoutPermission:`У вас нет разрешения отключаться от Orca Cloud`,noConnectPermission:`У вас нет разрешения подключаться к Orca Cloud`,retry:`Повторить`,connectButton:`Подключить Orca Cloud`,connect:{title:`Подключение к Orca Cloud`,description:`Войдите в Orca Cloud, чтобы синхронизировать профили слайсера с Bambuddy.`},device:{title:`Разрешите доступ Bambuddy в Orca Cloud`,instruction:`Откройте Orca Cloud и подтвердите этот код. После подтверждения Bambuddy подключится автоматически.`,codeLabel:`Код сопряжения`,openButton:`Открыть страницу подтверждения Orca Cloud`,manualHint:`Либо откройте {{url}} и введите указанный выше код.`,waiting:`Ожидание подтверждения…`,cancel:`Отмена`},profiles:{title:`Ваши профили Orca Cloud ({{count}})`,refresh:`Обновить`,empty:`В вашей учётной записи Orca Cloud пока нет профилей.`},toast:{disconnected:`Orca Cloud отключён`},errors:{startFailed:`Не удалось начать вход в Orca Cloud.`,denied:`Сопряжение отклонено в Orca Cloud.`,expired:`Срок действия кода сопряжения истёк. Нажмите «Подключить», чтобы повторить попытку.`,pollFailed:`Соединение было потеряно во время ожидания подтверждения. Повторите попытку.`}},localProfiles:{title:`Локальные профили`,subtitle:`Импорт профилей OrcaSlicer и управление ими`,import:`Импортировать профили`,importDesc:`Перетащите сюда файлы .bbscfg, .bbsflmt, .orca_filament, .zip или .json`,importing:`Импорт...`,search:`Поиск локальных профилей...`,noPresets:`Локальных профилей пока нет`,noSearchResults:`Нет профилей, соответствующих запросу`,badge:`Локальный`,edit:`Изменить`,delete:`Удалить`,cancel:`Отмена`,deleteConfirmTitle:`Удаление профиля`,deleteConfirm:`Удалить этот профиль? Это действие нельзя отменить.`,source:`Источник`,inheritsFrom:`Наследует`,filamentType:`Тип`,vendor:`Производитель`,compatiblePrinters:`Принтеры`,nozzleTemp:`Температура сопла`,cost:`Стоимость`,density:`Плотность`,pressureAdvance:`Опережение давления`,filament:`Филамент`,process:`Процесс`,printer:`Принтер`,toast:{importSuccess:`Импортировано профилей: {{count}}`,importSkipped:`Пропущено дубликатов: {{count}}`,importError:`Ошибок при импорте: {{count}}`,deleted:`Профиль удалён`,updated:`Профиль обновлён`}},connectedAs:`Подключено как`,signInExpiredTitle:`Срок авторизации в Bambu Cloud истёк`,signInExpiredBody:`Bambu Lab больше не принимает сохранённый токен. Выполните вход снова, чтобы восстановить облачные профили, импорт из MakerWorld и проверку прошивок.`,logout:`Выйти`,noLogoutPermission:`У вас нет разрешения выходить из учётной записи`,failedToLoad:`Не удалось загрузить профили`,retry:`Повторить`,time:{justNow:`Только что`,minsAgo:`{{count}} мин назад`,hoursAgo:`{{count}} ч назад`,daysAgo:`{{count}} дн назад`},toast:{loggedOut:`Вы вышли из учётной записи`},login:{title:`Подключение к Bambu Cloud`,subtitle:`Синхронизация профилей слайсера между устройствами`,email:`Электронная почта`,password:`Пароль`,region:`Регион`,regionGlobal:`Глобальный`,regionChina:`Китай`,verificationCode:`Код подтверждения`,totpCode:`Код приложения-аутентификатора`,checkEmail:`Проверьте почту {{email}}: туда отправлен шестизначный код`,enterTotpHint:`Введите шестизначный код из приложения-аутентификатора`,accessToken:`Токен доступа`,accessTokenHint:`Вставьте токен доступа Bambu Cloud. Для учётных записей китайского региона, привязанных к телефону, доступен только этот способ: вход по email не поддерживается. Инструкцию по получению токена из cookie MakerWorld см. в wiki.`,back:`Назад`,loginButton:`Войти`,verifyButton:`Подтвердить`,setTokenButton:`Сохранить токен`,useToken:`Использовать токен доступа`,useEmail:`Войти по email`,toast:{loggedIn:`Вход выполнен`,codeSent:`Код подтверждения отправлен по email`,enterTotp:`Введите код из приложения-аутентификатора`,tokenSet:`Токен сохранён`}},presets:{myPreset:`Мой профиль (редактируемый)`,duplicate:`Создать копию`,editable:`Редактируемый`,failedToLoadDetails:`Не удалось загрузить сведения о профиле`,deleteConfirm:`Удалить этот профиль?`,deleteWarning:`Профиль «{{name}}» будет безвозвратно удалён из Bambu Cloud. Это действие нельзя отменить.`,noDuplicatePermission:`У вас нет разрешения копировать профили`,noEditPermission:`У вас нет разрешения редактировать профили`,noDeletePermission:`У вас нет разрешения удалять профили`,types:{filament:`Профиль филамента`,printer:`Профиль принтера`,process:`Профиль процесса`},toast:{deleted:`Профиль удалён`,created:`Профиль создан`,updated:`Профиль обновлён`,duplicated:`Копия профиля создана`,fieldAdded:`Добавлено поле «{{key}}»`,exported:`Профиль экспортирован`},baseLabel:`Базовый: {{name}}`,currentLabel:`Текущий: {{name}}`,newPreset:`Новый профиль`,editPreset:`Изменение профиля`,duplicatePreset:`Копирование профиля`,createNewPreset:`Создание профиля`,customizeSettings:`Настройте параметры нового профиля`,compareWithBase:`Сравнить с базовым профилем`,compare:`Сравнить`,basePreset:`Базовый профиль`,selectBasePreset:`Выберите базовый профиль...`,presetName:`Название профиля`,myCustomPreset:`Мой профиль`,inheritsFrom:`Наследует от`,dropJsonToImport:`Перетащите JSON для импорта`,tabs:{common:`Основные`,allFields:`Все поля`},availableFields:`Доступные поля`,searchFieldsPlaceholder:`Поиск полей...`,noMatchingFields:`Нет подходящих полей`,allFieldsAdded:`Все поля добавлены`,addCustomField:`Добавить произвольное поле`,yourOverrides:`Ваши переопределения`,noOverridesYet:`Переопределений пока нет`,clickFieldsToAdd:`Нажимайте поля слева, чтобы добавить их`,saveAsTemplate:`Сохранить как шаблон`,jsonTip:`Совет: перетащите файл .json в это окно, чтобы импортировать настройки`},cloudView:{searchPlaceholder:`Поиск профилей...`,templates:`Шаблоны`,refresh:`Обновить`,newPreset:`Новый профиль`,clearFilters:`Сбросить фильтры`,compareMode:`Режим сравнения`,selectAnotherPreset:`Выберите другой профиль типа «{{type}}»`,clickTwoPresets:`Выберите два профиля одного типа для сравнения`,selectFirst:`1. Выберите первый`,selectSecond:`2. Выберите второй`,compareNow:`Сравнить`,lastSynced:`Последняя синхронизация:`,showingCount:`Показано {{showing}} из {{total}} профилей`,noPresetsFound:`Профили не найдены`,columns:{filament:`Филамент`,process:`Процесс`,printer:`Принтер`},noFilamentPresets:`Нет профилей филамента`,noProcessPresets:`Нет профилей процесса`,noPrinterPresets:`Нет профилей принтера`,filters:{type:`Тип`,owner:`Владелец`,printer:`Принтер`,nozzle:`Сопло`,filament:`Филамент`,layer:`Слой`,all:`Все`,myPresets:`Мои профили`,builtIn:`Встроенные`,process:`Процесс`},noTemplatesPermission:`У вас нет разрешения управлять шаблонами`,noRefreshPermission:`У вас нет разрешения обновлять профили`,noCreatePermission:`У вас нет разрешения создавать профили`},templates:{title:`Быстрые шаблоны`,noTemplates:`Шаблонов пока нет`,createFirst:`Создавайте шаблоны в редакторе профилей`,typeFilter:`Тип:`,deleteTitle:`Удаление шаблона`,deleteWarning:`Это действие нельзя отменить`,deleteConfirm:`Удалить шаблон «{{name}}»?`,namePlaceholder:`Название шаблона`,descriptionPlaceholder:`Описание`,settingsJson:`Настройки (JSON)`,fieldsCount:`Полей: {{count}}`,shownInModals:`Показывается в окнах`,hiddenInModals:`Скрыт в окнах`,apply:`Применить`,toast:{deleted:`Шаблон удалён`,updated:`Шаблон обновлён`,created:`Шаблон создан`,applied:`Шаблон применён`}}},support:{debugLoggingActive:`Отладочное журналирование включено`,manageLogs:`Управление`,collectItem7:`Подключение принтеров и версии прошивок`,collectItem8:`Состояние интеграций (Spoolman, MQTT, HA)`,collectItem9:`Сетевые интерфейсы (только подсети)`,collectItem10:`Версии пакетов Python`,collectItem11:`Проверка состояния базы данных`,collectItem12:`Сведения о среде Docker`,bundleGenerating:`Формирование пакета...`,bundleStepConnection:`Проверка подключения принтеров`,bundleStepVirtualPrinters:`Проверка настройки виртуальных принтеров`,bundleStepLogScan:`Поиск известных проблем в последних журналах`,bundleStepBuild:`Создание ZIP-пакета для поддержки`},fileManager:{title:`Файловый менеджер`,subtitle:`Организация и управление файлами для печати`,uploadFiles:`Загрузить файлы`,newFolder:`Новая папка`,folderName:`Имя папки`,folderNamePlaceholder:`например, Функциональные детали`,renameFile:`Переименовать файл`,renameFolder:`Переименовать папку`,invalidFilenameChar:`Символ «{{char}}» нельзя использовать в именах файлов печати. SD-карта принтера не принимает: < > : " / \\ | ? *`,moveFiles:`Переместить файлы ({{count}})`,rootNoFolder:`Корень (без папки)`,current:`текущая`,linkFolder:`Связать папку`,linkFolderDescription:`Связать «{{name}}» с проектом или архивом для быстрого доступа.`,project:`Проект`,archive:`Архив`,noProjectsFound:`Проекты не найдены`,noArchivesFound:`Архивы не найдены`,unlink:`Отвязать`,link:`Связать`,dragDropFiles:`Перетащите файлы сюда`,dropFilesHere:`Перетащите файлы сюда`,releaseToUpload:`Отпустите для загрузки`,orClickToBrowse:`или нажмите для выбора`,allFileTypesSupported:`Поддерживаются все типы файлов. ZIP-архивы будут распакованы.`,zipFilesDetected:`Обнаружены ZIP-архивы`,zipExtractOptions:`ZIP-архивы будут распакованы. Выберите способ обработки структуры папок:`,preserveZipStructure:`Сохранить структуру папок из ZIP`,createFolderFromZip:`Создать папку с именем ZIP-файла`,stlThumbnailGeneration:`Создание миниатюр STL`,zipMayContainStl:`ZIP-архивы могут содержать STL-файлы. Миниатюры можно создать при распаковке.`,thumbnailsCanBeGenerated:`Для STL-файлов можно создать миниатюры. Обработка крупных моделей может занять больше времени.`,generateThumbnailsForStl:`Создать миниатюры для STL-файлов`,threemfDetected:`Обнаружены файлы 3MF`,threemfExtractionInfo:`Модель принтера, материал, цвет и параметры печати будут автоматически извлечены из файлов 3MF.`,willBeExtracted:`Будут извлечены`,filesExtracted:`Извлечено файлов: {{count}}`,uploadComplete:`Загрузка завершена: успешно — {{succeeded}}`,uploadFailed:`Ошибка загрузки`,zipFilesFailed:`Не удалось обработать файлов: {{count}}`,uploading:`Загрузка...`,changeLink:`Изменить связь...`,linkTo:`Связать с...`,linkToProjectOrArchive:`Связать с проектом или архивом`,generateThumbnail:`Создать миниатюру`,generateThumbnails:`Создать миниатюры`,generateThumbnailsForMissing:`Создать отсутствующие миниатюры для STL-файлов`,gridView:`Плитка`,listView:`Список`,lowDiskSpaceWarning:`Мало свободного места`,lowDiskSpaceDetails:`Свободно только {{free}} из {{total}}. Порог предупреждения в настройках: {{threshold}} ГБ.`,files:`Файлы`,folders:`Папки`,size:`Размер`,free:`Свободно`,allFiles:`Все файлы`,allExternal:`Внешние`,externalIsEmpty:`Внешних файлов нет`,externalEmptyDescription:`Здесь появятся файлы из подключённых внешних папок.`,wrap:`Перенос строк`,enableTextWrapping:`Включить перенос строк`,disableTextWrapping:`Отключить перенос строк`,collapse:`Свернуть`,collapseFoldersByDefault:`Сворачивать папки по умолчанию`,expandFoldersByDefault:`Разворачивать папки по умолчанию`,folderSort:`Сортировка папок`,folderSortByName:`По имени`,folderSortByActivity:`По последней активности`,dragToResizeTooltip:`Перетащите для изменения размера, двойной щелчок — сброс`,searchFiles:`Поиск файлов...`,searchSubfoldersHint:`С учётом вложенных папок`,readme:{truncated:`Показано не полностью`,show:`Показать README`,hide:`Скрыть README`,label:`README`},tags:{title:`Метки`,subtitle:`Помечайте файлы для сквозной фильтрации: игрушки, безопасно для детей, только PETG и что угодно ещё.`,manage:`Метки`,manageTitle:`Управление каталогом меток`,add:`Новая метка`,edit:`Переименовать метку`,name:`Название`,fileCount:`Файлы`,empty:`Меток пока нет. Создайте первую, чтобы начать помечать файлы.`,noMatches:`Подходящие метки не найдены.`,createPlaceholder:`например, игрушки, детям, petg`,createButton:`Создать`,nameRequired:`Укажите название.`,searchPlaceholder:`Фильтр меток...`,created:`Метка создана.`,updated:`Метка переименована.`,deleted:`Метка удалена.`,saveFailed:`Не удалось сохранить метку.`,deleteFailed:`Не удалось удалить метку.`,applyFailed:`Не удалось применить метки.`,applyAdd:`Добавить метки`,applyRemove:`Удалить метки`,applyAddSuccess:`Добавлено меток: {{count}}; обработано файлов: {{files}}.`,applyRemoveSuccess:`Удалено меток: {{count}}; обработано файлов: {{files}}.`,actionAdd:`Добавить к выбранным файлам`,actionRemove:`Удалить с выбранных файлов`,tagAction:`Метки`,bulkTitle:`Метки для выбранных файлов ({{count}})`,bulkTooltip:`Добавить или удалить метки у всех выбранных файлов.`,noPermission:`У вас нет прав на изменение меток файлов.`,filterLabel:`Фильтр по меткам:`,clearAll:`Очистить всё`,confirmDelete:`Удалить метку «{{name}}»?`,confirmDeleteMessage:`Метка будет удалена из каталога. Остальные метки файлов сохранятся.`,confirmDeleteInUseMessage:`Эта метка назначена файлам ({{count}}). При удалении метка исчезнет у всех файлов; сами файлы не изменятся.`,editAria:`Изменить {{name}}`,deleteAria:`Удалить {{name}}`},allTypes:`Все типы`,prints:`Файлы печати`,ascending:`По возрастанию`,descending:`По убыванию`,showModified:`Показать даты изменения`,hideModified:`Скрыть даты изменения`,lastModified:`Изменено`,lastActivity:`Последняя активность`,resultsCount:`Показано {{showing}} из {{total}} файлов`,selectAll:`Выбрать всё`,deselectAll:`Снять выделение`,selected:`Выбрано: {{count}}`,adding:`Добавление...`,loadingFiles:`Загрузка файлов...`,folderIsEmpty:`Папка пуста`,noFilesYet:`Файлов пока нет`,folderEmptyDescription:`Загрузите или переместите файлы в эту папку.`,noFilesDescription:`Загрузите файлы, чтобы начать упорядочивать материалы для печати.`,noMatchingFiles:`Подходящие файлы не найдены`,noMatchingFilesDescription:`Нет файлов, соответствующих текущему поиску или фильтрам.`,clearFilters:`Сбросить фильтры`,printedCount:`Напечатано: {{count}}×`,uploadedBy:`Загрузил`,deleteFolder:`Удалить папку`,deleteFile:`Удалить файл`,deleteFilesCount:`Удалить файлы ({{count}})`,deleteFolderConfirm:`Удалить эту папку? Все находящиеся в ней файлы также будут удалены.`,deleteFileConfirm:`Удалить этот файл?`,deleteFilesConfirm:`Удалить выбранные файлы ({{count}})? Это действие нельзя отменить.`,deleting:`Удаление...`,noPermissionRenameFolder:`У вас нет прав на переименование папок`,noPermissionLinkFolder:`У вас нет прав на связывание папок`,noPermissionDeleteFolder:`У вас нет прав на удаление папок`,onlyEmptyFoldersDeletable:`Вы можете удалять только пустые папки`,noPermissionPrint:`У вас нет прав на запуск печати`,noPermissionAddToQueue:`У вас нет прав на добавление в очередь`,noPermissionSlice:`У вас нет прав на нарезку файлов`,noPermissionDownload:`У вас нет прав на скачивание файлов`,noPermissionRenameFile:`У вас нет прав на переименование этого файла`,noPermissionGenerateThumbnail:`У вас нет прав на создание миниатюр`,noPermissionDeleteFile:`У вас нет прав на удаление этого файла`,noPermissionCreateFolder:`У вас нет прав на создание папок`,noPermissionUpload:`У вас нет прав на загрузку файлов`,noPermissionMoveFiles:`У вас нет прав на перемещение файлов`,noPermissionDeleteFiles:`У вас нет прав на удаление файлов`,linkExternal:`Подключить внешнюю папку`,linkExternalFolder:`Подключить внешнюю папку`,linkExternalFolderDescription:`Подключить каталог хоста (NAS, USB-накопитель или сетевой ресурс) к файловому менеджеру. Файлы не копируются — Bambuddy обращается к ним по исходному пути.`,externalFolderNamePlaceholder:`например, Модели на NAS`,externalPath:`Путь на хосте`,externalPathHelp:`Абсолютный путь к каталогу на хосте Docker. Каталог должен быть подключён к контейнеру через bind mount.`,readOnly:`Только чтение`,readOnlyHelp:`запрещает загрузку и удаление файлов`,showHiddenFiles:`Показывать скрытые файлы (dotfiles)`,externalFolder:`Внешняя папка`,scanFolder:`Сканировать`,toast:{folderCreated:`Папка создана`,folderDeleted:`Папка удалена`,fileDeleted:`Файл удалён`,filesDeleted:`Удалено файлов: {{count}}`,filesMoved:`Файлы перемещены`,folderLinked:`Папка связана`,folderUnlinked:`Связь с папкой удалена`,externalFolderLinked:`Внешняя папка подключена и просканирована`,folderScanned:`Сканирование завершено: добавлено — {{added}}, удалено — {{removed}}`,addedToQueue:`Добавлено в очередь файлов: {{count}}`,addedToQueuePartial:`Добавлено файлов: {{added}}, ошибок: {{failed}}`,failedToAddToQueue:`Не удалось добавить файлы: {{error}}`,fileRenamed:`Файл переименован`,folderRenamed:`Папка переименована`,thumbnailsGenerated:`Создано миниатюр: {{count}}`,thumbnailsGeneratedPartial:`Создано миниатюр: {{succeeded}}, ошибок: {{failed}}`,noStlMissingThumbnails:`Нет STL-файлов без миниатюр`,failedToGenerateThumbnails:`Не удалось создать миниатюры: {{error}}`,thumbnailGenerated:`Миниатюра создана`,failedToGenerateThumbnail:`Не удалось создать миниатюру: {{error}}`}},projects:{title:`Проекты`,subtitle:`Организация и отслеживание проектов 3D-печати`,newProject:`Новый проект`,editProject:`Изменить проект`,deleteProject:`Удалить проект`,projectName:`Название проекта`,description:`Описание`,noProjects:`Проектов пока нет`,noProjectsFiltered:`Нет проектов со статусом «{{status}}»`,noProjectsFilteredHelp:`У вас нет проектов со статусом «{{status}}». Они появятся здесь после изменения статуса.`,createFirst:`Создайте первый проект, чтобы объединять связанные печати, отслеживать ход работ и управлять сборкой.`,createFirstButton:`Создать первый проект`,create:`Создать`,files:`Файлы`,prints:`Печати`,plates:`пластин`,parts:`деталей`,lastModified:`Последнее изменение`,deleteConfirm:`Удалить этот проект? Архивные записи и элементы очереди будут отвязаны, но не удалены.`,addFiles:`Добавить файлы`,removeFile:`Убрать файл`,viewDetails:`Подробнее`,namePlaceholder:`например, Сборка Voron 2.4`,descriptionPlaceholder:`Необязательное описание...`,urlLabel:`URL`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`URL должен начинаться с http:// или https://`,openExternalUrl:`Открыть страницу проекта`,coverImageLabel:`Обложка`,coverImageAlt:`Обложка проекта`,coverImageUpload:`Загрузить`,coverImageReplace:`Заменить`,coverImageRemove:`Удалить`,color:`Цвет`,targetPlates:`План по пластинам`,targetPlatesPlaceholder:`например, 25`,targetPlatesHelp:`Количество заданий печати`,targetParts:`План по деталям`,targetPartsPlaceholder:`например, 150`,targetPartsHelp:`Общее требуемое количество объектов`,targetSets:`Копий на файл`,targetSetsPlaceholder:`напр. 10`,targetSetsHelp:`Сколько раз нужно напечатать каждый печатаемый файл`,tagsLabel:`Метки (через запятую)`,tagsPlaceholder:`например, voron, функциональное, подарок`,dueDate:`Срок`,priority:`Приоритет`,priorityLow:`Низкий`,priorityNormal:`Обычный`,priorityHigh:`Высокий`,priorityUrgent:`Срочный`,statusActive:`Активный`,statusCompleted:`Завершён`,statusArchived:`В архиве`,done:`Готово`,completed:`завершено`,failed:`ошибка`,inQueue:`в очереди`,noPrintsYet:`Печатей пока нет`,printJobs:`Задания печати (пластины)`,partsPrinted:`Напечатано деталей`,failedParts:`Неудачных деталей`,import:`Импорт`,export:`Экспорт`,importProject:`Импортировать проект`,exportAll:`Экспортировать все проекты`,loading:`Загрузка проектов...`,noEditPermission:`У вас нет прав на изменение проектов`,noDeletePermission:`У вас нет прав на удаление проектов`,noCreatePermission:`У вас нет прав на создание проектов`,noImportPermission:`У вас нет прав на импорт проектов`,noExportPermission:`У вас нет прав на экспорт проектов`,toast:{created:`Проект создан`,updated:`Проект обновлён`,deleted:`Проект удалён`,imported:`Проект импортирован`,multipleImported:`Импортировано проектов: {{count}}`,importFailed:`Не удалось импортировать проект`,exported:`Проекты экспортированы (только метаданные)`}},projectDetail:{notFound:`Проект не найден`,backToProjects:`Вернуться к проектам`,export:`Экспорт`,exportProject:`Экспортировать проект`,noExportPermission:`У вас нет прав на экспорт проектов`,noEditPermission:`У вас нет прав на изменение проектов`,partOf:`Входит в:`,priorityLabel:`Приоритет:`,noPrints:`В этом проекте пока нет печатей`,status:{active:`Активный`,completed:`Завершён`,archived:`В архиве`},priority:{low:`Низкий`,normal:`Обычный`,high:`Высокий`,urgent:`Срочный`},dueDate:{overdue:`Срок истёк`,today:`Срок сегодня`,daysLeft:`Осталось дней: {{count}}`},progress:{platesProgress:`Выполнение по пластинам`,partsProgress:`Выполнение по деталям`,setsProgress:`Полные комплекты`,sets:`комплектов`,setsHint:`Комплект готов, когда каждый печатаемый файл достиг этого количества`,printJobs:`заданий печати`,parts:`деталей`,percentComplete:`Выполнено {{percent}}%`,remaining:`Осталось: {{count}}`},stats:{printJobs:`Задания печати`,total:`всего`,failed:`Неудачных: {{count}}`,partsPrinted:`Напечатано деталей: {{count}}`,printTime:`Время печати`,filamentUsed:`Израсходовано филамента`},cost:{title:`Учёт стоимости`,filamentCost:`Стоимость филамента`,energy:`Электроэнергия`,totalCost:`Общая стоимость`,total:`Итого`,includesBom:`включая спецификацию`,budget:`Бюджет`,remaining:`Остаток`},subProjects:{title:`Подпроекты ({{count}})`},notes:{title:`Заметки`,noEditPermission:`У вас нет прав на изменение заметок`,placeholder:`Добавьте заметки о проекте...`,empty:`Заметок пока нет. Нажмите «Изменить», чтобы добавить.`},files:{title:`Файлы`,linkFolders:`Свяжите папки из файлового менеджера`,forQuickAccess:`с этим проектом для быстрого доступа.`,fileCount:`Файлов: {{count}}`,empty:`Связанных папок нет. Откройте файловый менеджер и свяжите папку с проектом.`,printedCount:`Напечатано {{count}} раз`,progressTooltip:`{{done}} из {{target}} завершённых печатей`,noFiles:`В этой папке нет файлов.`},bom:{title:`Спецификация`,acquired:`Приобретено: {{completed}}/{{total}}`,showAll:`Показать всё`,hideDone:`Скрыть готовое`,addPart:`Добавить позицию`,noAddPermission:`У вас нет прав на добавление позиций`,partNamePlaceholder:`Название позиции (например, винты M3×8)`,partName:`Название позиции`,qty:`Кол-во`,price:`Цена ({{currency}})`,sourcingUrlPlaceholder:`Ссылка на поставщика (необязательно)`,remarksPlaceholder:`Примечание (необязательно)`,deletePart:`Удалить позицию`,deleteConfirm:`Удалить «{{name}}»?`,noUpdatePermission:`У вас нет прав на обновление позиций`,noEditPermission:`У вас нет прав на изменение позиций`,noDeletePermission:`У вас нет прав на удаление позиций`,totalCost:`Общая стоимость:`,empty:`В спецификации пока нет позиций. Добавьте крепёж, электронику и другие компоненты, закупку которых нужно отслеживать.`},timeline:{title:`Хронология активности`,empty:`Активности пока нет.`},template:{saveAsTemplate:`Сохранить как шаблон`,noCreatePermission:`У вас нет прав на создание шаблонов`},queue:{title:`Очередь`,viewAll:`Показать всё`,printing:`Печатается: {{count}}`,queued:`В очереди: {{count}}`},prints:{title:`Печати ({{count}})`},toast:{projectUpdated:`Проект обновлён`,partAdded:`Позиция добавлена`,partRemoved:`Позиция удалена`,exportFailed:`Не удалось экспортировать`,projectExported:`Проект экспортирован`,templateCreated:`Шаблон создан`}},system:{title:`Информация о системе`,version:`Версия`,uptime:`Время работы`,cpuUsage:`Загрузка процессора`,memoryUsage:`Использование памяти`,diskUsage:`Использование диска`,networkInfo:`Сетевая информация`,logs:`Журналы`,debugMode:`Режим отладки`,enableDebug:`Включить журналирование отладки`,disableDebug:`Отключить журналирование отладки`,downloadLogs:`Скачать журналы`,clearLogs:`Очистить журналы`,dockerInfo:`Информация о Docker`,containerName:`Имя контейнера`,imageName:`Имя образа`,platform:`Платформа`,architecture:`Архитектура`},sponsors:{sectionTitle:`Независимый проект на поддержке сообщества`,tagline:`Bambuddy бесплатен и остаётся таким благодаря добровольной поддержке пользователей. Без венчурного капитала и привязки к облаку.`,viewSupporters:`Посмотреть сторонников проекта`,toastPrints:`С Bambuddy выполнено печатей: {{count}}. Проект остаётся бесплатным благодаря поддержке сообщества.`,toastCost:`С помощью Bambuddy учтено филамента на сумму {{total}}. Посмотрите, кто помогает проекту оставаться независимым.`,toastArchives:`С Bambuddy архивировано печатей: {{count}}. Посмотрите, кто помогает проекту оставаться независимым.`,toastAnniversary:`Вы уже год с Bambuddy! Посмотрите, кто помогает проекту оставаться независимым.`,toastVersionUpdate:`Обновлено до версии {{version}}. Bambuddy остаётся бесплатным благодаря поддержке сообщества.`,toastBusiness:`Используете Bambuddy для {{count}} принтеров? Для команд доступен план поддержки с приоритетным исправлением ошибок, выставлением счетов и прямой связью с разработчиком.`,businessCta:`Bambuddy для бизнеса`,businessTitle:`Bambuddy для бизнеса`,businessTagline:`Вы используете {{count}} принтеров. Для команд и печатных ферм доступны приоритетная поддержка, коммерческая лицензия и выставление счетов.`},library:{title:`Библиотека филаментов`,addFilament:`Добавить филамент`,editFilament:`Изменить филамент`,deleteFilament:`Удалить филамент`,vendor:`Производитель`,material:`Материал`,color:`Цвет`,kFactor:`Коэффициент K`,temperature:`Температура`,noFilaments:`В библиотеке нет филаментов`,deleteConfirm:`Удалить этот филамент?`,importFromPrinter:`Импортировать с принтера`,exportToFile:`Экспортировать в файл`,runWithPipeline:{actionLabel:`Запустить через конвейер`,noPermission:`У вас нет прав на запуск конвейеров`,modalTitle:`Запуск через конвейер`,confirmTitle:`Подтверждение запуска`,confirmIntro:`Предварительная проверка обнаружила проблемы`,sourceHint:`Источник`,pipelineHint:`Конвейер`,targetHint:`Назначение`,pipelineListAria:`Доступные конвейеры`,runAnyway:`Всё равно запустить`,loading:`Загрузка…`,empty:`Сохранённых конвейеров пока нет. Откройте диалог нарезки и нажмите «Сохранить как конвейер».`,noTarget:`Целевой принтер не задан`,noTargetMessage:`Для этого конвейера не задан целевой принтер. Откройте его в настройках и выберите принтер.`,copies:`Копии`,copiesHint:`макс. {{n}}`,classTarget:`Любой {{model}}`,toast:{started:`Конвейер запущен`,failed:`Не удалось запустить конвейер`},issue:{printerNotSet:`Для этого конвейера не задан целевой принтер.`,printerNotFound:`Целевой принтер больше не существует.`,printerDisabled:`Целевой принтер отключён.`,printerOffline:`Целевой принтер не в сети.`,filamentType:`Слот филамента {{slot}}: ожидается {{expected}}, в AMS установлен {{actual}}`,filamentColor:`Слот филамента {{slot}}: цвет отличается (ожидается {{expected}}, в AMS установлен {{actual}})`,amsSlotMissing:`Слот AMS {{slot}} недоступен на этом принтере`,filamentUnverified:`Филамент в слоте {{slot}} выбран из облачного или стандартного профиля и не может быть проверен заранее.`,noClassMatches:`Ни один принтер в этой установке не соответствует целевому классу модели конвейера ({{expected}}).`,classNotSet:`В качестве цели конвейера выбран класс принтера, но модель не указана.`}}},slice:{title:`Нарезка модели`,action:`Нарезать`,actionAll:`Нарезать все пластины ({{count}})`,actionAllTitle:`Нарезать все пластины в один многостольный результат и сохранить в одном архиве. Выбор филаментов охватывает все слоты, используемые проектом.`,allPlatesToggle:`Нарезать все пластины ({{count}})`,slicing:`Нарезка…`,printer:`Профиль принтера`,process:`Профиль процесса`,filament:`Профиль филамента`,filamentSlot:`Филамент {{index}} ({{type}})`,selectPreset:`— Выберите профиль —`,loadingPresets:`Загрузка профилей…`,analyzingPlateFilaments:`Анализ филаментов пластины…`,analyzingPlateFilamentsHint:`Выполняется предварительная нарезка, чтобы определить, какие слоты AMS используются на этой пластине. Результат кэшируется, поэтому повторное открытие будет мгновенным.`,previewToast:`Анализ {{name}} — {{elapsed}}`,previewWithProgress:`Анализ {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,notUsedByPlate:`— не используется на этой пластине`,noPresetsForSlot:`Нет доступных профилей`,otherPrinters:`Другие принтеры`,presetsLoadFailed:`Не удалось загрузить профили. Сначала импортируйте их в разделе «Настройки → Профили».`,refreshPresets:`Обновить`,refreshPresetsTitle:`Обновить профили — получить свежие облачные и встроенные списки. Используйте после удаления профиля в Bambu Studio или Bambu Handy.`,allPresetsRequired:`Необходимо выбрать все профили`,useEmbedded:`Использовать встроенные настройки файла`,useEmbeddedHint:`Нарезать так, как задумал автор модели (стенки, заполнение, филамент), вместо профилей выше. Доступно, потому что ваш принтер совпадает с указанным в файле.`,designSettings:`Сохранить настройки автора`,designSettingsHint:`Этот файл меняет {{count}} настроек печати по сравнению со стандартным профилем.`,designSettingsSelected:`Выбрано {{selected}} из {{total}}`,designSettingsPrinterCoupled:`зависит от принтера`,designSettingsPrinterCoupledHint:`Значение подобрано для принтера, под который создан файл, — на вашем оно может быть неверным или вне допустимого диапазона.`,enqueuing:`Отправка задания на нарезку…`,queued:`В очереди…`,failed:`Ошибка нарезки. Проверьте журналы вспомогательного сервиса слайсера.`,startedToast:`Фоновая нарезка {{name}}…`,queuedToast:`В очереди: {{name}} — {{elapsed}}`,runningToast:`Нарезка {{name}} — {{elapsed}}`,runningWithProgress:`{{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,runningWithProgressMultiPlate:`Пластина {{plateIndex}} из {{plateCount}} • {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,completedToast:`Нарезка {{name}} завершена`,failedTitle:`Ошибка нарезки`,failedToast:`Не удалось нарезать {{name}}: {{detail}}`,tier:{local:`Импортированные`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`Стандартные`},cloud:{notAuthenticated:`Войдите в Bambu Cloud («Настройки → Профили → Bambu Cloud»), чтобы увидеть облачные профили.`,expired:`Сессия Bambu Cloud истекла. Войдите снова, чтобы обновить облачные профили.`,unreachable:`Bambu Cloud сейчас недоступен. Локальные и стандартные профили продолжат работать.`},orcaCloud:{notAuthenticated:`Войдите в Orca Cloud («Профили → Orca Cloud»), чтобы увидеть профили Orca.`,expired:`Сессия Orca Cloud истекла. Войдите снова, чтобы обновить профили Orca.`,unreachable:`Orca Cloud сейчас недоступен. Остальные профили продолжат работать.`},bedType:{label:`Печатная пластина`,auto:`Авто (из профиля процесса)`,coolPlate:`Холодная пластина`,coolPlateSuperTack:`Холодная пластина SuperTack`,engineering:`Инженерная пластина`,highTemp:`Высокотемпературная пластина`,texturedPEI:`Текстурированная PEI-пластина`,smoothPEI:`Гладкая PEI-пластина`},pipelines:{label:`Конвейер`,applyAria:`Применить конвейер`,applyPrompt:`Применить конвейер…`,empty:`Нет сохранённых конвейеров`,saveButton:`Сохранить как конвейер`,saveTitle:`Сохранить текущий набор из четырёх профилей как повторно используемый конвейер`,namePlaceholder:`Название конвейера`,nameAria:`Название нового конвейера`,toast:{applied:`Применён конвейер «{{name}}»`,saved:`Конвейер сохранён`,saveFailed:`Не удалось сохранить`}}},spoolman:{title:`Интеграция со Spoolman`,enabled:`Spoolman включён`,url:`URL Spoolman`,connected:`Подключено`,disconnected:`Нет подключения`,testConnection:`Проверить подключение`,sync:`Синхронизировать`,syncing:`Синхронизация…`,lastSync:`Последняя синхронизация`,linkToSpoolman:`Связать со Spoolman`,openInSpoolman:`Открыть в Spoolman`,unlinkSpool:`Отвязать катушку`,unlinkConfirmTitle:`Снять назначение катушки?`,unlinkConfirmMessage:`Катушка будет удалена из этого слота. Данные самой катушки останутся без изменений.`,selectSpool:`Выбрать катушку`,noUnlinkedSpools:`Нет свободных катушек`,linkSuccess:`Катушка успешно назначена`,linkFailed:`Не удалось назначить катушку`,unlinkSuccess:`Назначение катушки снято`,unlinkFailed:`Не удалось снять назначение катушки`,linkedSpool:`Назначенная катушка`,spoolId:`ID катушки`,fillSourceLabel:`(Spoolman)`,weight:`Масса`,remaining:`Остаток`,disableWeightSync:`Отключить синхронизацию расчётной массы AMS`,disableWeightSyncDesc:`Не обновлять остаток по оценке AMS. Используйте это, если предпочитаете учёт расхода Spoolman процентной оценке AMS. Для новых катушек оценка AMS всё равно будет использована как начальная масса.`,reportPartialUsage:`Учитывать частичный расход при неудачной печати`,reportPartialUsageDesc:`Если печать завершилась ошибкой или была отменена, учитывать примерный расход филамента до этого момента по прогрессу слоёв.`},locations:{title:`Места хранения`,subtitle:`Управление полками, ящиками и другими физическими местами хранения катушек`,add:`Добавить место`,addShort:`Добавить`,edit:`Изменить место`,name:`Название`,spools:`Катушки`,empty:`Мест хранения пока нет. Создайте первую полку или ящик.`,manage:`Места хранения`,createPlaceholder:`например, Полка A или Ящик 1`,nameRequired:`Укажите название места хранения`,created:`Место хранения создано`,updated:`Место хранения обновлено`,deleted:`Место хранения удалено`,saveFailed:`Не удалось сохранить место хранения`,deleteFailed:`Не удалось удалить место хранения`,deleteBlocked:`Перед удалением переместите из этого места все катушки`,confirmDelete:`Удалить «{{name}}»?`,confirmDeleteMessage:`Это место будет удалено из каталога. Сначала необходимо переместить все катушки.`},inventory:{title:`Учёт катушек`,subtitle:`Управление катушками`,addToInventory:`Добавить в учёт`,addToInventoryPending:`Добавление…`,addToInventorySuccess:`Катушка добавлена в учёт`,addToInventoryFailed:`Не удалось добавить катушку в учёт`,unknownSpoolTitle:`Обнаружен новый филамент`,unknownSpoolMessage:`В {{location}} обнаружена катушка с неизвестной RFID-меткой. Добавить её в учёт?`,unknownSpoolSlot:`Слот`,bulk:{selectAllVisible:`Выбрать все видимые`,selectRow:`Выбрать строку`,selectGroup:`Выбрать группу`,selectionCount:`Выбрано: {{count}}`,edit:`Изменить`,printLabels:`Печать этикеток`,resetUsage:`Сбросить расход`,restore:`Восстановить`,archive:`Архивировать`,delete:`Удалить`,clearSelection:`Снять выделение`,editTitle:`Массовое изменение катушек`,editSubtitle:`Изменения применятся к {{count}} выбранным катушкам. Обновятся только отмеченные поля.`,editHint:`Введите значение в поле, чтобы включить его обновление. Будут отправлены только отмеченные строки. Пустое поле не изменяет катушки; очистить значение можно только при редактировании отдельной катушки.`,useCustom:`Использовать «{{value}}»`,toggleField:`Включить или отключить обновление этого поля`,changeCount:`Будет обновлено полей: {{count}}.`,applyPending:`Применение…`,applyButton:`Применить к {{count}} катушкам`,deleteTitle:`Удалить выбранные катушки`,archiveTitle:`Архивировать выбранные катушки`,restoreTitle:`Восстановить выбранные катушки`,resetUsageTitle:`Сбросить расход выбранных катушек`,deleteMessage:`Безвозвратно удалить {{count}} катушек? Это действие нельзя отменить.`,archiveMessage:`Архивировать {{count}} катушек? Позже их можно будет восстановить.`,restoreMessage:`Восстановить {{count}} архивных катушек?`,resetUsageMessage:`Сбросить счётчик «Израсходовано всего» у {{count}} катушек? Текущий остаток массы сохранится.`,updateSuccess:`Обновлено катушек: {{count}}`,updateFailed:`Ошибка массового обновления`,updatePartial:`Обновлено: {{ok}}, с ошибкой: {{failed}}`,updateAllFailed:`Не удалось обновить все {{count}} катушек. Выделение сохранено для повторной попытки.`,deleteSuccess:`Удалено катушек: {{count}}`,deleteFailed:`Ошибка массового удаления`,deletePartial:`Удалено: {{ok}}, с ошибкой: {{failed}}`,deleteAllFailed:`Не удалось удалить все {{count}} катушек. Выделение сохранено для повторной попытки.`,archiveSuccess:`Архивировано катушек: {{count}}`,archiveFailed:`Ошибка массового архивирования`,archivePartial:`Архивировано: {{ok}}, с ошибкой: {{failed}}`,archiveAllFailed:`Не удалось архивировать все {{count}} катушек. Выделение сохранено для повторной попытки.`,restoreSuccess:`Восстановлено катушек: {{count}}`,restoreFailed:`Ошибка массового восстановления`,restorePartial:`Восстановлено: {{ok}}, с ошибкой: {{failed}}`,restoreAllFailed:`Не удалось восстановить все {{count}} катушек. Выделение сохранено для повторной попытки.`,invalidHex:`Введите 6 шестнадцатеричных символов (RRGGBB) или 8 (RRGGBBAA), иначе поле не будет применено.`},spoolmanMixedContentTitle:`Spoolman не загружается через HTTPS: браузер заблокировал смешанное содержимое`,spoolmanMixedContentBody:`Bambuddy открыт через HTTPS (через обратный прокси), а URL Spoolman всё ещё использует обычный HTTP. Браузер блокирует такое смешанное содержимое, поэтому встроенный интерфейс Spoolman не отображается. Для работы Spoolman должен быть доступен по HTTPS.`,spoolmanMixedContentFixReverseProxy:`Разместите Spoolman за тем же обратным прокси, что и Bambuddy (Traefik / Nginx / Caddy), включите HTTPS и укажите новый HTTPS-адрес Spoolman в настройках.`,spoolmanMixedContentFixOpenNewTab:`В качестве обходного решения откройте Spoolman по HTTP в новой вкладке. Ограничение смешанного содержимого действует только для встроенных фреймов.`,spoolmanOpenInNewTab:`Открыть Spoolman в новой вкладке`,labels:{title:`Печать этикеток катушек`,selectedCount:`Выбрано: {{count}}`,pickSpools:`Выберите катушки для печати этикеток:`,monochrome:`Монохромный режим (чёрно-белый принтер)`,monochromeHint:`Убирает образец цвета и расширяет область текста`,searchPlaceholder:`Поиск по названию, бренду или #ID`,filterByMaterial:`Материал:`,allMaterials:`Все`,selectVisible:`Выбрать все видимые ({{count}})`,deselectVisible:`Снять выделение с видимых`,clearAll:`Очистить выбор`,noSpoolsToShow:`Нет катушек для отображения. Измените фильтр и повторите попытку.`,noMatches:`Нет катушек, соответствующих поиску или фильтру.`,printOne:`Напечатать этикетку этой катушки`,printLabels:`Печать этикеток…`,bulkTitle:`Выберите катушки для печати этикеток из {{count}} отображаемых`,noSpoolsTitle:`Нет катушек для печати этикеток`,error:`Не удалось создать этикетки: {{msg}}`,sortBy:{label:`Сортировка:`,id:`По ID`,color:`По цвету`},templates:{amsHolderSmall:{label:`Держатель AMS — малый (74 × 33 мм)`,hint:`Одна этикетка на страницу; соответствует печатной этикетке для модели MakerWorld 752566 (AMS Filament Label Holder).`},amsHolderLarge:{label:`Держатель AMS — большой (75 × 55 мм)`,hint:`Одна этикетка на страницу; подходит для варианта держателя AMS с картонной вставкой. Достаточно места для образца цвета, бренда, материала, ID и QR-кода.`},box40x30:{label:`Этикетка для коробки (40 × 30 мм)`,hint:`Одна этикетка на страницу; распространённый размер рулона DK/Brother, подходит для пакетов с филаментом и контейнеров хранения.`},box:{label:`Этикетка для коробки (62 × 29 мм)`,hint:`Одна этикетка на страницу; размер для малых этикеток Brother PT/QL и Dymo.`},averyL7160:{label:`Avery L7160 — лист A4 (38,1 × 63,5 мм × 21)`,hint:`Европейский формат: 21 этикетка на листе A4.`},avery5160:{label:`Avery 5160 — лист US Letter (25,4 × 66,7 мм × 30)`,hint:`Американский формат: 30 этикеток на листе Letter.`}}},csv:{importButton:`Импорт CSV`,exportButton:`Экспорт CSV`,modalTitle:`Импорт катушек из CSV`,selectFile:`Выберите CSV-файл или перетащите его сюда`,dragHint:`Заголовок: material (обязательно), brand, subtype, color_name, rgba, …`,parsing:`Чтение файла…`,previewError:`Не удалось прочитать CSV-файл`,validCount:`Корректных: {{count}}`,errorCount:`Ошибок: {{count}}`,skippedCount:`Пропущено: {{count}}`,colRow:`Строка`,colStatus:`Состояние`,colColor:`Цвет`,colorResolved:`Цвет подставлен из каталога`,colorCrossMaterial:`Цвет взят у другого материала: точного совпадения в каталоге нет`,duplicateExisting:`Катушка с таким материалом, брендом и цветом уже существует, но запись всё равно будет импортирована как новая катушка`,spoolmanHint:`В режиме Spoolman используйте встроенный импорт и экспорт CSV в Spoolman.`,importValidRows:`Импортировать {{count}} корректных строк`,noValidRows:`Нет корректных строк`,importing:`Импорт…`,importSuccess:`Импортировано катушек: {{count}}`,importError:`Ошибка импорта`,exportError:`Ошибка экспорта`},addSpool:`Добавить катушку`,editSpool:`Изменить катушку`,copySpool:`Копировать катушку`,material:`Материал`,selectMaterial:`Выберите материал…`,subtype:`Подтип`,brand:`Бренд`,searchBrand:`Поиск бренда…`,useCustomBrand:`Использовать «{{brand}}»`,useCustomMaterial:`Использовать свой материал: {{material}}`,suggestedOptions:`Рекомендуемые`,allOptions:`Все`,colorName:`Название цвета`,colorNamePlaceholder:`Jade White, Fire Red…`,color:`Цвет`,hexColor:`Цвет HEX`,pickColor:`Выбрать свой цвет`,labelWeight:`Номинальная масса`,coreWeight:`Масса пустой катушки`,searchSpoolWeight:`Поиск массы катушки…`,weightUsed:`Израсходовано`,currentWeight:`Остаток массы`,measuredWeight:`Измеренная масса`,spoolName:`Катушка`,costPerKg:`Стоимость за кг`,storageLocation:`Место хранения`,storageLocationPlaceholder:`например, Полка A, Ящик 1`,openInInventory:`Открыть в учёте`,measuredWeightError:`Измеренная масса должна быть от {{min}} до {{max}} г.`,slicerFilament:`Филамент слайсера`,slicerFilamentName:`Название пресета слайсера`,slicerPreset:`Пресет слайсера`,searchPresets:`Поиск пресетов филамента…`,selectedPreset:`Выбрано`,noPresetsFound:`Пресеты не найдены`,tempOverrides:`Переопределение температур`,note:`Примечание`,notePlaceholder:`Дополнительные сведения об этой катушке…`,category:`Категория`,categoryPlaceholder:`например, Производство, Прототип, Клиент A`,categoryNone:`Без категории`,storageLocationNone:`Место не указано`,lowStockThresholdOverride:`Порог малого остатка (эта катушка)`,lowStockThresholdOverrideHelp:`Оставьте пустым, чтобы использовать общий порог ({{global}}%).`,clearRfid:`Очистить RFID-метку`,rfidCleared:`RFID-метка очищена`,archive:`Архивировать`,restore:`Восстановить`,noSpools:`Катушек пока нет. Добавьте первую катушку.`,noAvailableSpools:`Нет доступных катушек. Добавьте катушку в учёт или сначала освободите её в другом слоте.`,kProfiles:`K-профили`,addKProfile:`Добавить K-профиль`,assignSpool:`Назначить катушку`,unassignSpool:`Снять назначение`,assignSuccess:`Катушка назначена, слот AMS настроен`,assignPendingInsert:`Катушка назначена. Слот будет настроен после её установки.`,assignFailed:`Не удалось назначить катушку`,selectSpool:`Выберите катушку для назначения этому слоту`,assigned:`Назначено`,assigning:`Назначение…`,searchSpools:`Поиск катушек…`,showAllSpools:`Показать все катушки`,spoolmanSpools:`Катушки Spoolman`,allMaterials:`Все материалы`,filterByBrand:`Фильтр по бренду…`,showArchived:`Показывать архивные`,quickAdd:`Быстрое добавление`,quantity:`Количество`,stock:`На складе`,configured:`Настроено`,spoolsCreated:`Создано катушек: {{count}}`,spoolsPartiallyCreated:`Создано {{created}} из {{total}} катушек; часть операций завершилась ошибкой`,spoolCreated:`Катушка создана`,spoolUpdated:`Катушка обновлена`,spoolDeleted:`Катушка удалена`,deepLinkSpoolNotFound:`Катушка не найдена`,deepLinkFetchFailed:`Не удалось загрузить катушку. Повторите попытку.`,spoolArchived:`Катушка архивирована`,spoolRestored:`Катушка восстановлена`,kProfileSaveFailed:`Не удалось сохранить настройки K-профиля`,syncWeightSpoolNotFound:`Катушка не найдена: возможно, она была удалена`,syncWeightSpoolmanUnreachable:`Spoolman недоступен. Повторите попытку позже.`,syncWeightFailed:`Не удалось синхронизировать массу`,spoolmanUnreachable:`Spoolman недоступен. Повторите попытку позже.`,deleteSpoolNotFound:`Катушка не найдена: возможно, она уже удалена`,deleteFailed:`Не удалось удалить катушку`,archiveSpoolNotFound:`Катушка не найдена: возможно, она уже удалена`,archiveFailed:`Не удалось архивировать катушку`,restoreSpoolNotFound:`Катушка не найдена: возможно, она уже удалена`,restoreFailed:`Не удалось восстановить катушку`,saveFailed:`Не удалось сохранить изменения`,tagClearFailed:`Не удалось очистить метку`,deleteConfirm:`Удалить эту катушку без возможности восстановления?`,archiveConfirm:`Архивировать эту катушку?`,advancedSettings:`Расширенные настройки`,filamentInfoTab:`Сведения о филаменте`,paProfileTab:`Профиль PA`,filamentInfo:`Филамент`,additional:`Дополнительно`,loadingPresets:`Загрузка облачных пресетов…`,cloudConnected:`Облако подключено`,cloudNotConnected:`Облако не подключено; используются значения по умолчанию`,recentColors:`Недавние`,searchColors:`Поиск цветов…`,searchResults:`Результаты поиска`,allColors:`Все цвета`,commonColors:`Основные цвета`,showLess:`Показать меньше`,showAll:`Показать все`,noColorsFound:`Нет цветов, соответствующих запросу`,noResults:`Совпадений не найдено`,extraColorsLabel:`Дополнительные цвета`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`Вставьте от 2 до 8 HEX-цветов через запятую. Они будут отображены как градиент.`,extraColorsInvalid:`Пропущены некорректные HEX-значения: {{tokens}}`,colorEffectLabel:`Эффект`,colorEffect:{none:`Нет`,sparkle:`Блёстки`,wood:`Дерево`,marble:`Мрамор`,glow:`Свечение`,matte:`Матовый`,silk:`Шёлк`,galaxy:`Галактика`,rainbow:`Радуга`,metal:`Металл`,translucent:`Полупрозрачный`,gradient:`Градиент`,dualColor:`Двухцветный`,triColor:`Трёхцветный`,multicolor:`Многоцветный`},selectMaterialFirst:`Сначала выберите материал на вкладке «Сведения о филаменте».`,noPrintersConfigured:`Принтеры не настроены. Добавьте принтеры, чтобы использовать профили PA.`,matchingFilter:`Совпадающие`,anyBrand:`Любой бренд`,anyVariant:`Любой вариант`,autoSelect:`Автовыбор`,matches:`совпадений`,match:`совпадение`,noMatches:`Нет совпадений`,connected:`Подключён`,offline:`Не в сети`,printerOffline:`Принтер не в сети. Подключите его для просмотра калибровочных профилей.`,noKProfilesMatch:`Нет K-профилей, соответствующих выбранному филаменту.`,leftNozzle:`Левое сопло`,rightNozzle:`Правое сопло`,profilesSelected:`выбрано калибровочных профилей`,totalInventory:`Всего в учёте`,totalConsumed:`Израсходовано всего`,byMaterial:`По материалам`,inPrinter:`В принтерах`,lowStock:`Малый остаток`,sinceTracking:`С начала учёта`,resetConsumedCounter:`Сбросить счётчик`,resetConsumedCounterTooltip:`Обнулить счётчик израсходованных граммов для этой катушки. Остаток массы не изменится.`,resetConsumedCounterConfirm:`Сбросить счётчик расхода этой катушки до 0? Последующие печати будут учитываться заново. Сама катушка, расчёт остатка и настройки не изменятся.`,resetAllConsumedCounters:`Сбросить все счётчики`,resetAllConsumedCountersTooltip:`Обнулить счётчик израсходованных граммов у всех катушек. Остатки массы не изменятся.`,resetAllConsumedCountersConfirm:`Сбросить счётчик расхода до 0 у всех {{count}} катушек, включая архивные? Показатель «Израсходовано всего» будет очищен, а будущие печати начнут учитываться с нуля. Катушки и их остатки не изменятся.`,consumedCounterReset:`Счётчик сброшен`,allConsumedCountersReset:`Счётчик сброшен у {{count}} катушек`,resetConsumedCounterFailed:`Не удалось сбросить счётчик`,loadedInAms:`Загружено в AMS/внешний слот`,remaining:`Остаток`,weightCheck:`Проверка массы`,lastWeighed:`Последнее взвешивание`,neverWeighed:`Не взвешивалась`,search:`Поиск катушек…`,showing:`Показано`,to:`–`,of:`из`,show:`Показывать`,spools:`катушек`,spool:`катушка`,page:`Страница`,noSpoolsMatch:`Ничего не найдено`,noSpoolsMatchDesc:`Измените поисковый запрос или фильтры.`,active:`Активные`,archived:`Архивные`,all:`Все`,used:`Израсходовано`,new:`Новые`,clearFilters:`Сбросить фильтры`,table:`Таблица`,cards:`Карточки`,net:`Нетто`,groupSimilar:`Группировать`,groupedSpools:`Одинаковых катушек: {{count}}`,groupedRows:`строк`,columns:`Столбцы`,configureColumns:`Настроить столбцы`,configureColumnsDesc:`Перетаскивайте столбцы или используйте стрелки для изменения порядка. Видимость переключается значком глаза.`,visible:`видимых`,reset:`Сбросить`,cancel:`Отмена`,applyChanges:`Применить изменения`,moveUp:`Переместить вверх`,moveDown:`Переместить вниз`,hideColumn:`Скрыть столбец`,showColumn:`Показать столбец`,linkToSpool:`Связать с катушкой`,tagLinked:`Метка связана с катушкой`,tagLinkFailed:`Не удалось связать метку`,tagAlreadyLinked:`Метка уже связана с другой катушкой`,unknownTag:`Обнаружена неизвестная RFID-метка`,usageHistory:`История расхода`,noUsageHistory:`Расход пока не зарегистрирован`,printName:`Название печати`,weightConsumed:`Израсходованная масса`,clearHistory:`Очистить`,historyCleared:`История расхода очищена`,fillSourceLabel:`(Учёт)`,lowStockThresholdError:`Порог должен быть от 0,1 до 99,9`,assignMismatchTitle:`Несоответствие материала`,assignMismatchMessage:`Материал выбранной катушки «{{spoolMaterial}}» не соответствует материалу слота «{{trayMaterial}}» в {{location}}. Всё равно назначить?`,assignMismatchConfirm:`Всё равно назначить`,assignPartialMismatchMessage:`Материал катушки «{{spoolMaterial}}» похож, но не совпадает точно с «{{trayMaterial}}» в {{location}}. Продолжить?`,assignProfileMismatchMessage:`Профиль катушки «{{spoolProfile}}» не соответствует профилю слота «{{trayProfile}}» в {{location}}. Продолжить?`,assignReconfigureNote:`Слот AMS будет перенастроен на профиль катушки.`,spoolmanFilamentCatalog:`Каталог филаментов Spoolman`,pickFromSpoolmanCatalog:`Выбрать из каталога Spoolman…`,spoolmanFilamentSelected:`Филамент выбран из каталога Spoolman`,spoolmanFilamentUnlinked:`Связь с каталогом филаментов удалена`,noSpoolmanFilaments:`В каталоге Spoolman филаменты не найдены`,spoolmanFilamentColorSwatch:`Цвет филамента`,spoolWeightManagedBySpoolman:`Масса пустой катушки задаётся в Spoolman для каждого типа филамента`,spoolmanCatalogLoadFailed:`Не удалось загрузить каталог филаментов Spoolman`},timelapse:{title:`Таймлапс`,create:`Создать таймлапс`,download:`Скачать`,delete:`Удалить`,preview:`Предпросмотр`,frameRate:`Частота кадров`,quality:`Качество`,processing:`Обработка...`,noTimelapses:`Таймлапсы отсутствуют`},ams:{title:`AMS`,slot:`Слот`,empty:`Пусто`,emptySlot:`Пустой слот`,slotEmpty:`Пусто`,slotUnconfigured:`?`,emptySlotReset:`Филамент не назначен`,unknown:`Неизвестно`,humidity:`Влажность`,temperature:`Температура`,filamentType:`Тип филамента`,filamentColor:`Цвет`,remaining:`Остаток`,history:`История AMS`,noHistory:`История отсутствует`,configureSlot:`Настроить слот`,externalSpool:`Внешняя катушка`,profile:`Профиль`,kFactor:`Коэффициент K`,fill:`Заполнить`,configure:`Настроить`,used:`использовано`,remainingUnit:`осталось`},printModal:{selectPrinter:`Выберите принтер`,selectPlate:`Выберите пластину`,filamentMapping:`Сопоставление филаментов`,plateN:`Пластина {{n}}`,plateFilamentsUnreadable:`Не удалось определить филаменты выбранной пластины, поэтому их невозможно сопоставить. Снимите выбор с этой пластины, чтобы добавить остальные в очередь.`,totalCost:`Общая стоимость:`,slotRemainingShort:` — осталось {{grams}} г`,printSettings:`Настройки печати`,bedLeveling:`Калибровка стола`,flowCalibration:`Калибровка потока`,vibrationCalibration:`Калибровка вибраций`,layerInspection:`Проверка первого слоя`,timelapse:`Таймлапс`,cancel:`Отмена`,noPrintersAvailable:`Нет доступных принтеров`,printerBusy:`Принтер занят`,printerOffline:`Принтер не в сети`,sameTypeDifferentColor:`Тот же тип, другой цвет`,filamentTypeNotLoaded:`Филамент этого типа не загружен`,whenToPrint:`Когда печатать`,asap:`Как можно скорее`,queue:`В очередь`,schedule:`По расписанию`,dateTime:`Дата и время`,invalidDateTime:`Введите корректные дату и время`,openCalendar:`Открыть календарь`,requireManualStart:`Требовать ручного запуска`,requirePreviousSuccess:`Запускать только после успешной предыдущей печати`,autoOffAfter:`Выключить принтер после завершения`,helpAsap:`Задание будет добавлено в начало очереди и запустится, как только подходящий принтер освободится.`,helpSchedule:`Задание запустится в указанное время, если принтер свободен. Если принтер занят, оно будет ждать освобождения.`,helpQueue:`Задание будет добавлено в конец очереди.`,leftNozzle:`Л`,rightNozzle:`П`,leftNozzleTooltip:`Левое сопло`,rightNozzleTooltip:`Правое сопло`,filamentOverride:`Переопределение филаментов`,filamentOverrideHint:`При необходимости замените филаменты для назначения по модели. Планировщик будет сопоставлять выбранные филаменты вместо исходных значений из 3MF.`,originalFilament:`Исходный`,overrideWith:`Заменить на`,resetToOriginal:`Вернуть исходный`,insufficientFilamentTitle:`Недостаточно филамента`,waitingForAmsStatus:`Ожидание состояния AMS от принтера {{printer}}…`,insufficientFilamentMessage:`На некоторых назначенных катушках осталось меньше филамента, чем требуется для этой печати:`,insufficientFilamentLine:`{{printer}} — {{slot}}: требуется {{required}} г, осталось {{remaining}} г`,printAnyway:`Всё равно печатать`,forceColorMatch:`Обязательно учитывать цвет`,staggerPrinterStarts:`Запускать принтеры с задержкой`,staggerGroupSize:`Размер группы`,staggerInterval:`Интервал (мин)`,staggerPreview:`{{printers}} принтеров → {{groups}} групп по {{size}}, запуск каждые {{interval}} мин`,staggerLastGroup:`последняя группа: {{count}}`,staggerTotal:`всего: {{minutes}} мин`,staggerToPrinters:`Распределить запуск для {{count}} принтеров`,gcodeInjection:`Добавить G-code автозапуска`},backup:{includesEncryptionKey:`Локальные резервные копии включают файл ключа шифрования MFA (DATA_DIR/.mfa_encryption_key), поэтому ZIP-архив является самодостаточным. Считайте этот ZIP конфиденциальным: любой, у кого есть файл, сможет расшифровать сохранённые в нём секреты клиента OIDC и TOTP.`,title:`Резервное копирование и восстановление`,createBackup:`Создать резервную копию`,restoreBackup:`Восстановить из копии`,restoreDescription:`Заменить все данные данными из резервной копии`,downloadBackup:`Скачать резервную копию`,uploadBackup:`Загрузить резервную копию`,lastBackup:`Последняя копия`,autoBackup:`Автоматическое резервное копирование`,backupNow:`Создать копию сейчас`,restoreWarning:`Внимание: восстановление из резервной копии перезапишет все текущие данные.`,includeArchives:`Включить архивы`,includeSettings:`Включить настройки`,includeProfiles:`Включить профили`,backupSuccess:`Резервная копия успешно создана`,restoreSuccess:`Резервная копия успешно восстановлена`,backupFailed:`Не удалось создать резервную копию`,restoreFailed:`Не удалось выполнить восстановление`,restoreNote:`На время восстановления виртуальный принтер будет остановлен`,githubBackup:`Резервная копия в Git`,enabled:`Включено`,cloudLoginRequired:`Требуется вход в Bambu Cloud. Войдите в разделе «Профили → Облачные профили», чтобы включить резервное копирование в GitHub.`,cloudLoginRequiredShort:`Требуется вход в облако`,githubDescription:`Автоматически синхронизировать профили с приватным репозиторием GitHub для резервного копирования и хранения истории версий.`,repoIsPrivate:`Репозиторий приватный — резервное копирование безопасно.`,repoIsPublicWarning:`Репозиторий ПУБЛИЧНЫЙ. Резервные копии Bambuddy содержат учётные данные MQTT, токены Home Assistant и Prometheus, адрес электронной почты Bambu Cloud и коды доступа к принтерам из K-профилей. Сохранение заблокировано, пока репозиторий не будет сделан приватным в настройках провайдера.`,repoVisibilityUnknown:`Не удалось определить видимость репозитория. Bambuddy отказывается создавать резервные копии в репозитории, приватность которого не подтверждена; сохранение будет заблокировано.`,repositoryUrl:`URL репозитория`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`Разрешить небезопасный HTTP`,allowInsecureHttpHint:`Включайте для локальных серверов в частной сети без TLS`,personalAccessToken:`Персональный токен доступа`,tokenSaved:`(сохранён)`,enterNewToken:`Введите новый токен для обновления`,tokenHint:`Токен с точечными правами на чтение и запись содержимого`,branch:`Ветка`,provider:`Git-провайдер`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`Только вручную`,hourly:`Ежечасно`,daily:`Ежедневно`,weekly:`Еженедельно`,includeInBackup:`Включить в резервную копию`,kProfiles:`K-профили`,kProfilesDescription:`Калибровки Pressure Advance с подключённых принтеров`,noPrintersConnected:`Нет подключённых принтеров`,printersConnected:`Подключено {{connected}} из {{total}}`,cloudProfiles:`Облачные профили`,cloudProfilesDescription:`Предустановки филамента, принтера и процесса из Bambu Cloud`,appSettings:`Настройки приложения`,appSettingsDescription:`Конфигурация Bambuddy (полная база данных)`,spoolInventory:`Учёт катушек`,spoolInventoryDescription:`Катушки филамента, история расхода и учёт стоимости`,printArchives:`Архив печати`,printArchivesDescription:`Метаданные истории печати без файлов G-code и 3MF`,lastBackupAt:`Последняя копия:`,noBackupsYet:`Резервных копий пока нет`,next:`Следующая:`,startingBackup:`Запуск резервного копирования...`,test:`Проверить`,enableBackup:`Включить резервное копирование`,testConnection:`Проверить соединение`,enterRepoUrl:`Введите URL репозитория`,enterRepoAndToken:`Введите URL репозитория и токен доступа`,repoRequired:`Необходимо указать URL репозитория`,tokenRequired:`Необходимо указать токен доступа`,githubBackupEnabled:`Резервное копирование в GitHub включено`,tokenUpdated:`Токен обновлён`,settingsSaved:`Настройки сохранены`,failedToSave:`Не удалось сохранить: {{message}}`,backupCompleteFiles:`Резервное копирование завершено — обновлено файлов: {{count}}`,backupSkippedNoChanges:`Резервное копирование пропущено — изменений нет`,backupFailed2:`Ошибка резервного копирования: {{message}}`,clearedLogs:`Очищено записей журнала: {{count}}`,failedToClearLogs:`Не удалось очистить журнал: {{message}}`,history:`История`,clear:`Очистить`,date:`Дата`,status:`Статус`,commit:`Коммит`,localBackup:`Локальная резервная копия`,localBackupDescription:`Создать полную резервную копию данных Bambuddy, включая базу данных, архивы, загрузки и все файлы.`,downloadBackupLabel:`Скачать резервную копию`,completeBackupZip:`Полная копия: база данных и все файлы (ZIP)`,download:`Скачать`,preparingBackup:`Подготовка резервной копии...`,creatingArchive:`Создание архива резервной копии... Для больших архивов это может занять некоторое время.`,downloadingFile:`Скачивание файла резервной копии...`,backupDownloaded:`Резервная копия успешно скачана`,failedToCreateBackup:`Не удалось создать резервную копию: {{message}}`,restore:`Восстановить`,restoreReplacesAll:`Восстановление заменит все данные.`,restoreReplacesAllDetail:`Текущая база данных и файлы будут полностью заменены. После восстановления потребуется перезапуск.`,restoreConfirmTitle:`Восстановление из резервной копии`,restoreConfirmMessage:`Восстановить данные из файла «{{filename}}»? Текущая база данных и все файлы будут полностью заменены. После восстановления приложение потребуется перезапустить.`,restoreConfirmButton:`Восстановить`,uploadingFile:`Загрузка файла резервной копии...`,backupRestoredRestart:`Резервная копия восстановлена. Перезапустите Bambuddy.`,failedToRestore:`Не удалось восстановить резервную копию. Проверьте формат файла.`,reloadNow:`Перезагрузить сейчас`,creatingBackup:`Создание резервной копии`,restoringBackup:`Восстановление данных`,preparing:`Подготовка...`,processing:`Обработка...`,doNotClosePage:`Не закрывайте эту страницу и не переходите на другую. Для больших резервных копий операция может занять несколько минут.`,restoring:`Восстановление...`,restoreComplete:`Восстановление завершено`,restoreFailed2:`Ошибка восстановления`,importSettings:`Импортировать настройки из файла резервной копии`,pleaseWaitRestoring:`Подождите, пока данные восстанавливаются`,selectBackupFile:`Нажмите, чтобы выбрать файл резервной копии (.json или .zip)`,duplicateHandling:`Правила обработки дубликатов:`,matchPrinters:`Принтеры`,matchPrintersBy:`сопоставляются по серийному номеру`,matchSmartPlugs:`Умные розетки`,matchSmartPlugsBy:`сопоставляются по IP-адресу`,matchNotificationProviders:`Провайдеры уведомлений`,matchNotificationProvidersBy:`сопоставляются по имени`,matchFilaments:`Филаменты`,matchFilamentsBy:`сопоставляются по имени, типу и бренду`,matchArchives:`Архивы`,matchArchivesBy:`сопоставляются по хешу содержимого и всегда пропускаются`,matchPendingUploads:`Ожидающие загрузки`,matchPendingUploadsBy:`сопоставляются по имени файла`,matchSettingsTemplates:`Настройки и шаблоны`,matchSettingsTemplatesBy:`всегда перезаписываются`,replaceExisting:`Заменять существующие данные`,keepExisting:`Сохранять существующие данные`,overwriteDescription:`Перезаписывать существующие элементы данными из резервной копии`,keepDescription:`Восстанавливать только отсутствующие элементы`,overwriteCaution:`Внимание:`,overwriteWarning:`Перезапись заменит текущие настройки данными из резервной копии. В целях безопасности коды доступа к принтерам никогда не перезаписываются.`,cancel:`Отмена`,processingBackup:`Обработка файла резервной копии...`,itemsRestored:`Восстановлено элементов`,itemsSkipped:`Пропущено элементов`,restored:`Восстановлено`,skippedAlreadyExist:`Пропущено — уже существует`,filesCategory:`Файлы (3MF, миниатюры и т. п.)`,andMore:`...и ещё {{count}}`,newApiKeysGenerated:`Созданы новые API-ключи`,keysShownOnce:`Эти ключи показываются только один раз. Скопируйте их сейчас!`,copy:`Копировать`,noDataFound:`В резервной копии не найдено данных для восстановления.`,close:`Закрыть`,scheduledBackup:`Резервные копии по расписанию`,scheduledBackupDescription:`Автоматически создавать снимки резервных копий по расписанию. Каталог назначения можно смонтировать с NAS или внешнего накопителя.`,frequency:`Периодичность`,backupTime:`Время`,retention:`Хранение`,retentionDescription:`Количество сохраняемых резервных копий`,outputPath:`Каталог назначения`,outputPathPlaceholder:`По умолчанию: {{path}}`,outputPathDescription:`Оставьте пустым, чтобы использовать стандартный каталог`,runNow:`Запустить сейчас`,backupFiles:`Файлы резервных копий`,noScheduledBackups:`Резервных копий пока нет`,deleteBackup:`Удалить`,deleteBackupConfirm:`Удалить этот файл резервной копии?`,backupRunning:`Выполняется резервное копирование...`,scheduledBackupComplete:`Резервная копия успешно создана`,scheduledBackupFailed:`Ошибка резервного копирования`,nextBackup:`Следующая копия`,backupSize:`Размер`,localTimeHint:`Местное время ({{tz}})`,defaultPathLabel:`По умолчанию:`,pathCheck:{title:`Bambuddy не может записывать в этот каталог`,howToFix:`Как исправить:`,sandboxed:`Служба Bambuddy не может записывать в {{path}}. Её модуль systemd работает с ProtectSystem=strict, поэтому все каталоги за пределами каталогов установки, данных и журналов доступны службе только для чтения, даже если из вашей командной оболочки запись разрешена.`,read_only:`{{path}} находится в файловой системе, доступной только для чтения.`,permission_denied:`Bambuddy не разрешена запись в {{path}}. Проверьте владельца каталога и права доступа.`,no_space:`В файловой системе, содержащей {{path}}, закончилось свободное место.`,not_a_directory:`{{path}} существует, но не является каталогом.`,missing:`{{path}} не существует, и создать этот каталог не удалось.`,error:`Bambuddy не может записывать в {{path}}.`,ephemeralTitle:`Эти резервные копии не сохранятся после перезапуска контейнера`,container_ephemeral:`{{path}} находится внутри контейнера Bambuddy, а не на хосте. Записанные туда резервные копии будут потеряны при пересоздании контейнера. Подключите каталог с хоста:`},categories:{settings:`Настройки`,notification_providers:`Провайдеры уведомлений`,notification_templates:`Шаблоны уведомлений`,smart_plugs:`Умные розетки`,printers:`Принтеры`,filaments:`Филаменты`,maintenance_types:`Виды обслуживания`,archives:`Архивы`,projects:`Проекты`,pending_uploads:`Ожидающие загрузки`,external_links:`Внешние ссылки`,api_keys:`API-ключи`}},tags:{title:`Метки`,addTag:`Добавить метку`,editTag:`Изменить метку`,deleteTag:`Удалить метку`,tagName:`Название метки`,tagColor:`Цвет метки`,noTags:`Меток нет`,deleteConfirm:`Удалить эту метку?`,manageTags:`Управление метками`},uploadModal:{title:`Загрузка файлов 3MF`,dragDrop:`Перетащите файлы .3mf сюда`,or:`или`,browseFiles:`Выбрать файлы`,extractionInfo:`Модель принтера будет автоматически определена по метаданным файла 3MF.`,uploaded:`загружено`,failed:`ошибок`,uploading:`Загрузка...`,upload:`Загрузить`,uploadFailed:`Не удалось загрузить`},editArchive:{title:`Редактирование архива`,name:`Название`,namePlaceholder:`Название печати`,printer:`Принтер`,noPrinter:`Без принтера`,project:`Проект`,noProject:`Без проекта`,itemsPrinted:`Напечатано изделий`,itemsPrintedHelp:`Количество изделий, полученных в этом задании печати`,notes:`Заметки`,notesPlaceholder:`Добавьте заметки об этой печати...`,externalLink:`Внешняя ссылка`,externalLinkPlaceholder:`https://printables.com/model/...`,externalLinkHelp:`Ссылка на Printables, Thingiverse или другой источник`,tags:`Метки`,tagsPlaceholder:`Добавить метки...`,addMoreTags:`Добавить ещё метки...`,matchingTags:`Совпадения для «{{query}}»`,existingTags:`Существующие метки`,clickToAdd:`(нажмите, чтобы добавить)`,status:`Статус`,failureReason:`Причина сбоя`,selectReason:`Выберите причину...`,photos:`Фотографии результата печати`,photosHelp:`Нажмите +, чтобы добавить фотографии результата`,printResult:`Результат печати`,saving:`Сохранение...`,failureReasons:{adhesionFailure:`Плохая адгезия к столу`,spaghettiDetached:`Спагетти / отрыв детали`,layerShift:`Сдвиг слоёв`,cloggedNozzle:`Засор сопла`,filamentRunout:`Закончился филамент`,warping:`Коробление`,stringing:`Стрингинг`,underExtrusion:`Недоэкструзия`,powerFailure:`Сбой питания`,userCancelled:`Отменено пользователем`,other:`Другое`},statuses:{completed:`Завершено`,failed:`Ошибка`,aborted:`Отменено`,printing:`Печать`}},kProfiles:{title:`K-профили`,noPrintersConfigured:`Принтеры не настроены`,addPrinterInSettings:`Добавьте принтер в настройках, чтобы управлять K-профилями`,noActivePrinters:`Нет активных принтеров`,enablePrinterConnection:`Включите подключение к принтеру, чтобы просматривать его K-профили`,loadingProfiles:`Загрузка K-профилей...`,printerOffline:`Принтер не в сети`,printerOfflineDesc:`Выбранный принтер не подключён. Включите его, чтобы просмотреть K-профили.`,noMatchingProfiles:`Подходящие профили не найдены`,noMatchingProfilesDesc:`Ни один профиль не соответствует условиям поиска`,noKProfiles:`K-профили отсутствуют`,noKProfilesDesc:`Для сопла {{diameter}} мм не найдены профили Pressure Advance`,createFirstProfile:`Создать первый профиль`,printer:`Принтер`,nozzle:`Сопло`,refresh:`Обновить`,addProfile:`Добавить профиль`,export:`Экспорт`,import:`Импорт`,select:`Выбрать`,selectAll:`Выбрать все`,delete:`Удалить`,searchPlaceholder:`Поиск по названию или филаменту...`,allExtruders:`Все экструдеры`,leftOnly:`Только левый`,rightOnly:`Только правый`,allFlow:`Любой тип потока`,hfOnly:`Только HF`,sOnly:`Только S`,sortName:`Сортировка: название`,sortKValue:`Сортировка: K-значение`,sortFilament:`Сортировка: филамент`,leftExtruder:`Левый экструдер`,rightExtruder:`Правый экструдер`,modal:{addTitle:`Добавить K-профиль`,editTitle:`Изменить K-профиль`,profileName:`Название профиля`,profileNamePlaceholder:`Мой профиль PLA`,kValue:`K-значение`,kValuePlaceholder:`0.020`,kValueHelp:`Типичный диапазон: 0,01–0,06 для PLA, 0,02–0,10 для PETG`,filament:`Филамент`,selectFilament:`Выберите филамент...`,noFilamentsHelp:`Филаменты не найдены. Сначала создайте K-профиль в Bambu Studio.`,flowType:`Тип потока`,highFlow:`Высокопоточный`,standard:`Стандартный`,nozzleSize:`Диаметр сопла`,extruder:`Экструдер`,extruders:`Экструдеры`,left:`Левый`,right:`Правый`,notes:`Заметки (хранятся локально)`,notesPlaceholder:`Добавьте заметки об этом профиле...`,notesHelp:`Заметки сохраняются в Bambuddy, а не на принтере`,syncing:`Синхронизация с принтером...`,savingExtruder:`Сохранение в экструдер {{current}}/{{total}}...`,pleaseWait:`Подождите`},deleteConfirm:{title:`Удалить профиль`,cannotUndo:`Это действие нельзя отменить`,message:`Удалить профиль «{{name}}» с принтера?`},bulkDelete:{title:`Удалить профили`,cannotUndo:`Это действие нельзя отменить`,message:`Удалить с принтера выбранные профили ({{count}})?`},toast:{profileSaved:`K-профиль сохранён`,profilesSaved:`K-профиль сохранён для {{count}} экструдеров`,selectAtLeastOneExtruder:`Выберите хотя бы один экструдер`,profileDeleted:`K-профиль удалён`,profilesDeleted:`Удалено профилей: {{count}}`,exportedProfiles:`Экспортировано профилей: {{count}}`,importedProfiles:`Импортировано {{count}} из {{total}} профилей`,noProfilesToExport:`Нет профилей для экспорта`,invalidFileFormat:`Недопустимый формат файла`,failedToParseImport:`Не удалось разобрать файл импорта`,failedToSaveBatch:`Не удалось сохранить K-профили`,noteSaved:`Заметка сохранена`,failedToSaveNote:`Не удалось сохранить заметку`},permission:{noRead:`У вас нет прав на обновление профилей`,noCreate:`У вас нет прав на добавление профилей`,noUpdate:`У вас нет прав на изменение K-профилей`,noDelete:`У вас нет прав на удаление K-профилей`,noExport:`У вас нет прав на экспорт профилей`,noImport:`У вас нет прав на импорт профилей`}},virtualPrinter:{title:`Виртуальный принтер`,running:`Запущен`,stopped:`Остановлен`,description:{default:`Включает виртуальный принтер, который отображается в Bambu Studio и OrcaSlicer. Отправленные на него файлы сразу сохраняются в архив без печати.`,proxy:`Включает прокси, перенаправляющий трафик слайсера на реальный принтер и позволяющий печатать удалённо из любой сети.`},enable:{title:`Включить виртуальный принтер`,visibleInSlicer:`Отображается как «Bambuddy» при обнаружении принтеров в слайсере`,proxyingTo:`Проксирование на {{name}}`,notActive:`Не активен`},model:{title:`Модель принтера`,description:`Выберите модель принтера, которую нужно эмулировать.`,restartWarning:`При изменении модели виртуальный принтер будет перезапущен`},accessCode:{title:`Код доступа`,isSet:`Код доступа задан`,notSet:`Код доступа не задан — он необходим для включения`,placeholder:`Введите 8-значный код`,placeholderChange:`Введите новый код`,hint:`Код должен состоять ровно из 8 символов. Слайсеры используют его для аутентификации.`,charCount:`({{count}}/8)`,inheritedFromTarget:`Унаследован от целевого принтера`,derivedFromTargetHint:`Используется код доступа целевого принтера. Мост перенаправляет аутентификацию слайсера на реальный принтер, поэтому коды должны совпадать. Чтобы изменить значение, измените код доступа самого принтера.`,reveal:`Показать код доступа`,hide:`Скрыть код доступа`},targetPrinter:{title:`Целевой принтер`,configured:`Целевой принтер для прокси настроен`,notConfigured:`Целевой принтер не выбран — он необходим для режима прокси`,placeholder:`Выберите принтер...`,hint:`Выберите принтер, на который будет перенаправляться трафик слайсера. Принтер должен работать в режиме LAN.`,noPrinters:`Нет настроенных принтеров. Сначала добавьте принтер.`},remoteInterface:{title:`Переопределение сетевого интерфейса`,configured:`Переопределение интерфейса активно`,optional:`Необязательно — используйте, если IP определён неверно, например при нескольких сетевых картах, Docker или VPN`,placeholder:`Определять автоматически...`,hint:`Переопределяет IP-адрес, публикуемый через SSDP и используемый в TLS-сертификате. Полезно, если у Bambuddy несколько сетевых интерфейсов.`},mode:{title:`Режим`,archive:`Архив`,archiveDesc:`Сразу сохранять файлы в архив`,review:`Проверка`,reviewDesc:`Проверять перед добавлением в архив`,queue:`Очередь`,queueDesc:`Сохранять в архив и добавлять в очередь`,proxy:`Прокси`,proxyDesc:`Перенаправлять на реальный принтер`},autoDispatch:{title:`Автоматический запуск`,description:`Автоматически запускать задания после добавления в очередь. Если выключено, задания ожидают ручного запуска.`},queueForceColorMatch:{title:`Требовать совпадения цвета`,description:`Не назначать задание принтеру, если загружены филамент другого типа или другого цвета. По умолчанию выключено: без этой проверки очередь сопоставляет только модель принтера и может выбрать принтер с неподходящим цветом.`},gcodeInjection:{title:`Вставка G-code`,description:`Применять к заданиям этого виртуального принтера фрагменты G-code для соответствующей модели, заданные в настройках. По умолчанию выключено.`},tailscaleDisabled:{title:`Интеграция Tailscale`,description:`Отметить этот виртуальный принтер как доступный через Tailscale. Будет показан Tailscale-адрес хоста, который нужно указать в слайсере. Импорт сертификата центра сертификации выполняется как обычно; этот переключатель на сертификаты не влияет.`},setupRequired:{title:`Требуется настройка`,description:`Для работы виртуального принтера требуется дополнительная настройка системы: перенаправление портов, правила межсетевого экрана и параметры, зависящие от платформы.`,readGuide:`Перед включением прочитайте руководство по настройке`},archiveNameSource:{title:`Источник названия архива`,description:`Выберите способ формирования названия новых архивов для файлов, полученных через виртуальный принтер. «Метаданные» использует поле Title, встроенное слайсером в 3MF. «Имя файла» использует имя, переданное Bambu Studio по FTP. Bambu Studio заменяет введённое в окне отправки название значением Title из 3MF, если оно присутствует, поэтому оба режима часто дают одинаковый результат.`,metadata:`Метаданные`,filename:`Имя файла`},caCert:{title:`Сертификат для слайсера`,description:`Виртуальные принтеры используют TLS-сертификат, подписанный центром сертификации Bambuddy. Один раз импортируйте этот сертификат CA в хранилище доверенных сертификатов слайсера, чтобы он принимал соединение.`,copy:`Копировать`,copied:`Скопировано`,download:`Скачать`,fingerprint:`SHA-256`},howItWorks:{title:`Как это работает`,step1:`В одной локальной сети виртуальные принтеры автоматически появляются в Bambu Studio и OrcaSlicer. Из других сетей добавьте их вручную по IP-адресу и коду доступа.`,step2:`В режимах «Архив», «Проверка» и «Очередь» используйте кнопку «Отправить» в слайсере для загрузки 3MF в Bambuddy. Слайсер покажет сообщение об успешной печати, но файл будет только сохранён, без запуска печати.`,step3:`В режиме прокси виртуальный принтер перенаправляет весь трафик на реальный принтер — печать запускается сразу, как при прямом подключении.`},status:{title:`Сведения о состоянии`,printerName:`Имя принтера`,model:`Модель`,serialNumber:`Серийный номер`,mode:`Режим`,pendingFiles:`Ожидающие файлы`,targetPrinter:`Целевой принтер`,ftpPort:`Порт FTP`,mqttPort:`Порт MQTT`,ftpConnections:`Соединения FTP`,mqttConnections:`Соединения MQTT`},toast:{updated:`Настройки виртуального принтера обновлены`,failedToUpdate:`Не удалось обновить настройки`,copyFailed:`Не удалось скопировать — выделите текст вручную`,accessCodeRequired:`Сначала задайте код доступа`,targetPrinterRequired:`Сначала выберите целевой принтер`,bindIpRequired:`Сначала задайте IP-адрес привязки`,accessCodeEmpty:`Код доступа не может быть пустым`,accessCodeLength:`Код доступа должен состоять ровно из 8 символов`,targetCodeChangedRebind:`Код доступа приведён в соответствие с новым целевым принтером. Удалите и снова добавьте устройство в слайсере, чтобы он получил новый код.`,created:`Виртуальный принтер создан`,failedToCreate:`Не удалось создать виртуальный принтер`,deleted:`Виртуальный принтер удалён`,failedToDelete:`Не удалось удалить виртуальный принтер`},list:{title:`Виртуальные принтеры`,add:`Добавить`,addFirst:`Добавить виртуальный принтер`,empty:`Виртуальные принтеры не настроены. Добавьте первый принтер.`},bindIp:{title:`Интерфейс привязки`,placeholder:`Выберите интерфейс...`,hint:`Сетевой интерфейс, к которому будет привязан этот виртуальный принтер. Для каждого принтера он должен быть уникальным.`},proxy:{accessCodeHint:`В режиме прокси используйте в слайсере код доступа целевого принтера. Соединение прозрачно перенаправляется на реальный принтер.`},addDialog:{title:`Добавление виртуального принтера`,name:`Название`,hint:`После создания можно настроить код доступа, целевой принтер и остальные параметры.`,create:`Создать`},deleteConfirm:{title:`Удаление виртуального принтера`,message:`Удалить «{{name}}»? Все службы этого виртуального принтера будут остановлены.`}},modelViewer:{openInSlicer:`Открыть в слайсере`,tabs:{model:`3D-модель`,gcode:`Предпросмотр G-code`},notAvailable:`недоступно`,notSliced:`не нарезано`,plates:`Пластины`,allPlates:`Все пластины`,plateNumber:`Пластина {{number}}`,plateCount:`{{count}} пластина`,plateCount_other:`{{count}} пластин`,objectCount:`{{count}} объект`,objectCount_other:`{{count}} объектов`,filamentCount:`{{count}} филамент`,filamentCount_other:`{{count}} филаментов`,eta:`Осталось {{minutes}} мин`,noPreview:`Для этого файла нет предпросмотра`,pagination:{pageOf:`Страница {{current}} из {{total}}`,prev:`Назад`,next:`Далее`},errors:{failedToLoad:`Не удалось загрузить файл`,noMeshes:`В файле 3MF не найдены сеточные модели`,unsupportedFormat:`Неподдерживаемый формат файла`}},maintenanceDescriptions:{lubricateCarbonRods:`Смазать углепластиковые направляющие для плавного перемещения`,lubricateRails:`Смазать линейные направляющие для плавного перемещения`,cleanNozzle:`Очистить хотэнд и сопло для предотвращения засоров`,checkBelts:`Проверить натяжение ремней для сохранения точности печати`,cleanBuildPlate:`Очистить печатную пластину для улучшения адгезии`,checkExtruder:`Проверить шестерни экструдера на износ`,checkCooling:`Проверить исправность вентиляторов охлаждения`,generalInspection:`Общий осмотр принтера`,cleanCarbonRods:`Очистить углепластиковые направляющие для уменьшения трения`,lubricateSteelRods:`Смазать стальные направляющие для плавного перемещения`,cleanSteelRods:`Очистить стальные направляющие для уменьшения трения`,cleanLinearRails:`Протереть линейные направляющие от пыли и загрязнений`,checkPtfeTube:`Проверить PTFE-трубку на износ и повреждения`,replaceHepaFilter:`Заменить HEPA-фильтр`,replaceCarbonFilter:`Заменить угольный фильтр`,lubricateLeftNozzleRail:`Смазать направляющую левого сопла (серия H2)`},smartPlugs:{offline:`Не в сети`,admin:`Управление`,openPlugAdminPage:`Открыть страницу управления розеткой`,deleteSmartPlug:`Удалить умную розетку`,turnOnSmartPlug:`Включить умную розетку`,turnOffSmartPlug:`Выключить умную розетку`,turnOn:`Включить`,turnOff:`Выключить`,addSmartPlug:{scanningNetwork:`Сканирование сети...`,chooseEntity:`Выберите сущность...`,connectionFailed:`Ошибка подключения`,searchEntities:`Поиск сущностей...`,searchPowerSensors:`Поиск датчиков мощности...`,searchEnergySensors:`Поиск датчиков энергии...`,placeholders:{plugName:`Розетка в гостиной`,mqttStateOnValue:`ON, true, 1`,mqttSameAsPower:`Та же тема, что для мощности, или другая`}},linkedTo:`Связана с:`,monitorOnly:`Только мониторинг`,alerts:`Оповещения`,scheduleOn:`Включение в {{time}}`,scheduleOff:`Выключение в {{time}}`,on:`Включена`,off:`Выключена`,power:`Мощность`,kwhToday:`кВт·ч сегодня`,settings:`Настройки`,automationSettings:`Настройки автоматизации`,showInSwitchbar:`Показывать на панели переключателей`,quickAccessSidebar:`Быстрый доступ с боковой панели`,enabled:`Включено`,enableAutomation:`Включить автоматизацию для этой розетки`,autoOn:`Автовключение`,autoOnDescription:`Включать при начале печати`,autoOff:`Автовыключение`,autoOffDescription:`Выключать после завершения печати (однократно)`,autoOffPersistent:`Оставлять включённым`,autoOffPersistentDescription:`Не сбрасывать автовыключение после печати`,controlsPrinterPower:`Питает принтер`,controlsPrinterPowerDescription:`Отключите, если эта розетка питает только аксессуар (вентилятор фильтра, подсветку). Иначе её выключение помечает принтер как офлайн.`,autoOffAfterDrying:`Выключать после сушки`,autoOffAfterDryingDescription:`Выключать после завершения сушки в AMS`,delayAfterDryingMinutes:`Задержка после сушки (мин)`,turnOffDelayMode:`Условие отложенного выключения`,time:`Время`,temp:`Температура`,delayMinutes:`Задержка (мин)`,tempThreshold:`Порог температуры (°C)`,tempThresholdDescription:`Выключать, когда сопло остынет ниже этой температуры`,edit:`Изменить`,deleteConfirm:`Удалить «{{name}}»? Это действие нельзя отменить.`,turnOnConfirm:`Включить «{{name}}»?`,turnOffConfirm:`Выключить «{{name}}»? Питание подключённого устройства будет отключено.`,failedToTurn:`Не удалось {{action}} «{{name}}»`,unknown:`Неизвестно`,addTitle:`Добавление умной розетки`,editTitle:`Редактирование умной розетки`,stopScanning:`Остановить сканирование`,discoverTasmota:`Найти устройства Tasmota`,foundDevices:`Найдено устройств: {{count}}. Нажмите для выбора:`,noDevicesFound:`Устройства Tasmota в сети не найдены`,haNotConfigured:`Home Assistant не настроен. Настройте его в разделе`,haSettingsPath:`Настройки → Сеть → Home Assistant`,selectEntity:`Выберите сущность *`,ipAddress:`IP-адрес *`,nameLabel:`Название *`,username:`Имя пользователя`,password:`Пароль`,authHint:`Оставьте пустым, если устройство Tasmota не требует аутентификации`,linkToPrinter:`Связать с принтером`,noPrinter:`Без принтера — только ручное управление`,linkingDescription:`Связь позволяет автоматически включать и выключать питание при начале и завершении печати`,powerAlerts:`Оповещения о мощности`,alertAbove:`Оповещать выше (Вт)`,alertBelow:`Оповещать ниже (Вт)`,alertDescription:`Отправлять уведомление при пересечении заданных порогов мощности. Оставьте поле пустым, чтобы отключить соответствующий порог.`,dailySchedule:`Ежедневное расписание`,turnOnAt:`Включать в`,turnOffAt:`Выключать в`,scheduleDescription:`Ежедневно включать и выключать розетку в указанное время. Оставьте поле пустым, чтобы не выполнять соответствующее действие.`,showOnPrinterCard:`Показывать в карточке принтера`,displayOnPrinterCard:`Показывать кнопку в карточке принтера`,connectedResult:`Подключено!`,deviceLabel:`Устройство: {{name}} — `,stateLabel:`Состояние: {{state}}`,test:`Проверить`,delete:`Удалить`,save:`Сохранить`,add:`Добавить`,cancel:`Отмена`,failedToStartScan:`Не удалось запустить сканирование`,nameRequired:`Укажите название`,entityRequired:`Для розеток Home Assistant необходимо выбрать сущность`,mqttTopicRequired:`Для мониторинга мощности, энергии или состояния необходимо настроить хотя бы одну тему MQTT`,loadingEntities:`Загрузка сущностей...`,loading:`Загрузка...`,failedToLoadEntities:`Не удалось загрузить сущности: {{error}}`,noEntitiesMatching:`Сущности по запросу «{{search}}» не найдены`,noEntitiesAvailable:`Нет доступных сущностей`,searchingEntities:`Поиск по всем сущностям, найдено: {{count}}`,showingEntities:`Показаны switch, light и input_boolean, доступно: {{count}}`,energyMonitoringOptional:`Мониторинг энергии (необязательно)`,energyMonitoringHint:`Найдите и выберите датчики мощности и энергии.`,powerSensorW:`Датчик мощности (Вт)`,energyTodayKwh:`Энергия за сегодня (кВт·ч)`,totalEnergyKwh:`Общая энергия (кВт·ч)`,noMatchingSensors:`Подходящие датчики не найдены`,none:`Нет`,mqttNotConfigured:`Брокер MQTT не настроен. Укажите его адрес в разделе`,mqttSettingsPath:`Настройки → Сеть → Публикация MQTT`,mqttNotConfiguredSuffix:`Включать публикацию не обязательно — достаточно заполнить параметры брокера.`,mqttMonitorOnlyDescription:`Розетки MQTT получают данные мощности и энергии через подписку MQTT. Управление включением и выключением недоступно — используйте брокер MQTT или систему домашней автоматизации.`,powerMonitoring:`Мониторинг мощности`,energyMonitoring:`Мониторинг энергии`,stateMonitoring:`Мониторинг состояния`,optional:`необязательно`,topic:`Тема`,jsonPath:`Путь JSON`,multiplier:`Множитель`,onValue:`Значение «включено»`,mqttPowerHint:`Путь JSON извлекает значение из полезной нагрузки JSON, например «power_l1». Оставьте пустым, если тема публикует число напрямую.
+ON değeri: "ON" anlamına gelen tam string. Otomatik algılama için boş bırakın (ON, true, 1).`,restControl:`Kontrol`,restOnUrl:`AÇ URL'si`,restOffUrl:`KAPAT URL'si`,restOnBody:`AÇ İstek Gövdesi`,restOffBody:`KAPAT İstek Gövdesi`,restMethod:`HTTP Yöntemi`,restHeaders:`Özel Başlıklar (JSON)`,restStatusUrl:`Durum URL'si`,restStatusPath:`Durum JSON Yolu`,restStatusOnValue:`ON Değeri`,restPowerUrl:`Güç URL'si`,restPowerPath:`Güç JSON Yolu`,restPowerMultiplier:`Güç Çarpanı`,restEnergyUrl:`Enerji URL'si`,restEnergyPath:`Enerji JSON yolu (bugün)`,restEnergyTotalPath:`Enerji JSON yolu (toplam sayaç)`,restEnergyTotalMultiplier:`Toplam sayaç çarpanı`,restEnergyTotalPathHint:`örn. aenergy.total`,restEnergyTotalHint:`Birçok priz — tüm Shelly'ler dahil — yalnızca hiç sıfırlanmayan bir toplam sayaç bildirir. Bu değer yukarıdaki alana değil, buraya girilmelidir: bugünün tüketimi olarak okunursa gece yarısı sıfırlanmaz, Dün ve Toplam da boş kalır. Bambuddy Bugün ve Dün değerlerini bundan hesaplar; bunun için bir iki günlük ölçüm gerekir. Shelly watt-saat bildirdiğinden çarpan olarak 0.001 kullanın.`,restEnergyMultiplier:`Enerji Çarpanı`,restUrlRequired:`REST prizleri için en az bir URL (ON veya OFF) gerekli`,restHeadersHint:`örn. {"Authorization": "Bearer your-token"}`,restBodyHint:`örn. ON, {"state": "on"}`,restStatusHint:`Mevcut durumu sorgulamak için URL`,restPathHint:`örn. state veya data.power.status`,restPowerUrlHint:`Güç verisi için ayrı URL (boşsa Durum URL'sini kullanır)`,restEnergyUrlHint:`Enerji verisi için ayrı URL (boşsa Durum URL'sini kullanır)`,restEnergyHint:`Her değer kendi URL'sini kullanabilir veya Durum URL'sine geri dönebilir. Birim dönüşümü için çarpanları kullanın (örn. Wh'yi kWh'ye dönüştürmek için 0.001).`,testConnection:`Bağlantıyı Test Et`,connectionSuccess:`Bağlantı başarılı`,noSwitchesInSwitchbar:`Anahtar çubuğunda anahtar yok`,enableSwitchbarHint:`Ayarlar > Akıllı Prizler'de "Anahtar Çubuğunda Göster"i etkinleştirin`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`E-posta`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`SMTP e-posta bildirimleri`,telegram:`Telegram botu üzerinden bildirimler`,discord:`Webhook üzerinden Discord kanalına gönder`,ntfy:`Ücretsiz, kendi barındırılabilir push bildirimleri`,pushover:`Basit, güvenilir push bildirimleri`,callmebot:`CallMeBot üzerinden ücretsiz WhatsApp bildirimleri`,webhook:`Herhangi bir URL'ye genel HTTP POST`,homeassistant:`Home Assistant gösterge panelinde kalıcı bildirimler`,bark:`Bark ile iOS anlık bildirimleri (kendi sunucunuzda barındırılabilir)`},lastSuccess:`Son: {{date}}`,error:`Hata`,printer:`Yazıcı:`,allPrinters:`Tüm yazıcılar`,sendTestNotification:`Test Bildirimi Gönder`,eventSettings:`Olay Ayarları`,enabled:`Etkin`,sendFromProvider:`Bu sağlayıcıdan bildirim gönder`,printEvents:`Baskı Olayları`,printerStatus:`Yazıcı Durumu`,amsAlarms:`AMS Alarmları`,amsHtAlarms:`AMS-HT Alarmları`,printQueue:`Baskı Kuyruğu`,start:`Başlangıç`,plateCheck:`Plaka Kontrolü`,complete:`Tamamlandı`,failed:`Başarısız`,stopped:`Durduruldu`,progress:`İlerleme`,offline:`Çevrimdışı`,lowFilament:`Az Filament`,maintenance:`Bakım`,amsHumidity:`AMS Nemi`,amsTemp:`AMS Sıcaklığı`,amsHtHumidity:`AMS-HT Nemi`,amsHtTemp:`AMS-HT Sıcaklığı`,bedCooled:`Tabla Soğudu`,firstLayer:`İlk Katman`,quiet:`Sessiz`,digest:`Özet {{time}}`,printStarted:`Baskı Başladı`,plateNotEmpty:`Plaka Boş Değil`,plateNotEmptyDescription:`Baskıdan önce nesneler algılandı`,plateClearRequired:`Tabla onayı gerekli`,plateClearRequiredDescription:`Baskı bitti, kuyruk tabla onayını bekliyor`,plateClear:`Tabla onayı`,printCompleted:`Baskı Tamamlandı`,bedCooledLabel:`Tabla Soğudu`,bedCooledDescription:`Baskıdan sonra tabla eşiğin altına soğudu`,firstLayerCompleteLabel:`İlk Katman Tamamlandı`,firstLayerCompleteDescription:`İlk katman bittiğinde anlık görüntüyle bildir`,missingSpoolAssignmentLabel:`Eksik Makara Ataması`,missingSpoolAssignmentDescription:`Baskı başladığında ve gerekli tepsilerin atanmış makarası olmadığında bildir`,printFailed:`Baskı Başarısız`,printStopped:`Baskı Durduruldu`,progressMilestones:`İlerleme Kilometre Taşları`,progressMilestonesDescription:`%25, %50, %75'te bildir`,printerOffline:`Yazıcı Çevrimdışı`,printerError:`Yazıcı Hatası`,aiFailureDetection:`AI Hata Tespiti`,aiFailureDetectionDescription:`Obico AI olası bir baskı hatası tespit ettiğinde bildir`,lowFilamentLabel:`Az Filament`,maintenanceDue:`Bakım Zamanı`,maintenanceDueDescription:`Bakım gerektiğinde bildir`,amsHumidityHigh:`AMS Nemi Yüksek`,amsHumidityHighDescription:`Normal AMS nemi eşiği aşıyor`,amsTemperatureHigh:`AMS Sıcaklığı Yüksek`,amsTemperatureHighDescription:`Normal AMS sıcaklığı eşiği aşıyor`,amsHtHumidityHigh:`AMS-HT Nemi Yüksek`,amsHtHumidityHighDescription:`AMS-HT nemi eşiği aşıyor`,amsHtTemperatureHigh:`AMS-HT Sıcaklığı Yüksek`,amsHtTemperatureHighDescription:`AMS-HT sıcaklığı eşiği aşıyor`,inventoryAlerts:`Envanter Uyarıları`,stockReorderAlert:`Yeniden Sipariş Uyarısı`,stockReorderAlertDescription:`SKU yeniden sipariş noktasına ulaştı`,stockBreakAlert:`Stok Tükenme Uyarısı`,stockBreakAlertDescription:`Yenileme gelmeden stok tükenecek`,jobAdded:`İş Eklendi`,jobAddedDescription:`İş kuyruğa eklendi`,jobAssigned:`İş Atandı`,jobAssignedDescription:`Model tabanlı iş yazıcıya atandı`,jobStarted:`İş Başladı`,jobStartedDescription:`Kuyruk işi yazdırmaya başladı`,jobWaiting:`İş Bekliyor`,jobWaitingDescription:`İş filament veya yazıcı için bekliyor`,jobSkipped:`İş Atlandı`,jobSkippedDescription:`İş atlandı (önceki başarısız oldu)`,jobFailed:`İş Başarısız`,jobFailedDescription:`İş başlatılamadı`,queueComplete:`Kuyruk Tamamlandı`,queueCompleteDescription:`Tüm kuyruk işleri bitti`,quietHours:`Sessiz Saatler`,noNotificationsDuring:`Bu saatler arasında bildirim yok`,editProviderToChangeQuietHours:`Sessiz saatleri değiştirmek için sağlayıcıyı düzenleyin`,dailyDigest:`Günlük Özet`,batchNotifications:`Bildirimleri tek bir günlük özette topla`,sendAt:`{{time}}'de gönder`,editProviderToChangeDigestTime:`Özet saatini değiştirmek için sağlayıcıyı düzenleyin`,edit:`Düzenle`,deleteProvider:`Bildirim Sağlayıcısını Sil`,deleteConfirm:`"{{name}}" silmek istediğinizden emin misiniz? Bu geri alınamaz.`,delete:`Sil`,addTitle:`Bildirim Sağlayıcısı Ekle`,editTitle:`Bildirim Sağlayıcısını Düzenle`,nameLabel:`Ad *`,namePlaceholder:`Bildirimlerim`,providerTypeLabel:`Sağlayıcı Türü *`,configuration:`Yapılandırma`,testConfiguration:`Yapılandırmayı Test Et`,printerFilter:`Yazıcı Filtresi`,onlyFromPrinter:`Yalnızca bu yazıcının olayları için bildirim gönder`,quietHoursDnd:`Sessiz Saatler (Rahatsız Etme)`,quietStart:`Başlangıç`,quietEnd:`Bitiş`,dailyDigestLabel:`Günlük Özet`,sendDigestAt:`Özeti şu saatte gönder`,digestCollected:`Olaylar toplanacak ve bu saatte tek bir özet olarak gönderilecek`,notificationEvents:`Bildirim Olayları`,progressPercent:`(%25, %50, %75)`,bedCooledAfterPrint:`(baskı tamamlandıktan sonra)`,eventPriority:{sectionTitle:`ntfy Önceliği`,helpNtfy:`Her etkin olay için bir öncelik seçin. ntfy uyarıları kademelendirmek için bunları kullanır (ses, görünürlük, push davranışı). Burada ayarlanmamış seviyeler ntfy sunucu varsayılanını kullanır.`,min:`Min`,low:`Düşük`,default:`Varsayılan`,high:`Yüksek`,urgent:`Acil`},cancel:`İptal`,save:`Kaydet`,add:`Ekle`,nameRequired:`Ad gerekli`,fieldRequired:`{{field}} gerekli`,haDataInvalid:`Data alanı geçerli bir JSON nesnesi olmalıdır, örn. {"priority": "high", "ttl": 0}`,phoneNumber:`Telefon Numarası`,apiKey:`API Anahtarı`,serverUrl:`Sunucu URL`,topic:`Konu`,authToken:`Yetkilendirme Belirteci`,userKey:`Kullanıcı Anahtarı`,appToken:`Uygulama Belirteci`,priority:`Öncelik`,pushoverRetry:`Acil yeniden deneme (sn)`,pushoverExpire:`Acil sona erme (sn)`,botToken:`Bot Belirteci`,chatId:`Sohbet ID`,telegramThreadId:`Forum Konu Kimliği`,telegramThreadIdHelp:`İsteğe bağlı. Forum grubundaki tek bir konuya gönderir: konu bağlantısındaki son sayı (t.me/c/.../25). Genel konu için boş bırakın.`,telegramThreadIdInvalid:`Forum konu kimliği bir sayı olmalıdır.`,smtpServer:`SMTP Sunucusu`,smtpPort:`SMTP Portu`,security:`Güvenlik`,authentication:`Kimlik Doğrulama`,username:`Kullanıcı Adı`,password:`Parola`,fromEmail:`Gönderen E-posta`,toEmail:`Alıcı E-posta`,webhookUrl:`Webhook URL`,payloadFormat:`Yük Formatı`,authorization:`Yetkilendirme`,titleFieldName:`Başlık Alanı Adı`,messageFieldName:`Mesaj Alanı Adı`,editTemplate:`Şablonu Düzenle: {{name}}`,titleLabel:`Başlık`,bodyLabel:`Gövde`,titlePlaceholder:`Bildirim başlığı...`,bodyPlaceholder:`Bildirim gövdesi...`,availableVariables:`Kullanılabilir Değişkenler`,clickToInsert:`Gövdede imleç konumuna eklemek için tıklayın`,livePreview:`Canlı Önizleme`,hide:`Gizle`,show:`Göster`,loadingPreview:`Önizleme yükleniyor...`,enterTemplateContent:`Önizlemeyi görmek için şablon içeriğini girin`,titlePreview:`Başlık:`,bodyPreview:`Gövde:`,resetToDefault:`Varsayılana Sıfırla`,titleRequired:`Başlık gerekli`,bodyRequired:`Gövde gerekli`,notificationLog:`Bildirim Günlüğü`,showFailedOnly:`Yalnızca başarısız`,last24Hours:`Son 24 saat`,last7Days:`Son 7 gün`,last30Days:`Son 30 gün`,last90Days:`Son 90 gün`,justNow:`Az önce`,noFailedNotifications:`Başarısız bildirim yok`,noNotificationsLogged:`Kaydedilen bildirim yok`,unknownProvider:`Bilinmeyen Sağlayıcı`,logTitle:`Başlık`,logMessage:`Mesaj`,logError:`Hata`,logProvider:`Sağlayıcı: {{type}}`,logTime:`Saat: {{time}}`,refresh:`Yenile`,clearOld:`Eskileri Temizle`,statsSummary:`Son {{days}} gün:`,statsNotifications:`bildirim`,statsSent:`{{count}} gönderildi`,statsFailed:`{{count}} başarısız`,eventTypes:{print_start:`Baskı Başladı`,print_complete:`Baskı Tamamlandı`,print_failed:`Baskı Başarısız`,print_stopped:`Baskı Durduruldu`,print_progress:`İlerleme`,printer_offline:`Yazıcı Çevrimdışı`,printer_error:`Yazıcı Hatası`,filament_low:`Az Filament`,maintenance_due:`Bakım Zamanı`,test:`Test`},userEmail:{title:`Bildirimler`,emailNotifications:`E-posta Bildirimleri`,emailNotificationsDesc:`Kendi baskı işleriniz için e-posta bildirimleri alın. E-postalar Gelişmiş Kimlik Doğrulamada yapılandırılan sistem SMTP ayarları kullanılarak gönderilir.`,sendingTo:`Bildirimler şuraya gönderilecek`,noEmailWarning:`Hesabınızın e-posta adresi yok. Eklemek için bir yöneticiyle iletişime geçin.`,printJobNotifications:`Baskı İşi Bildirimleri`,printJobNotificationsDesc:`Gönderdiğiniz baskı işleri için hangi olayların e-posta bildirimlerini tetikleyeceğini seçin.`,printJobStarts:`Baskı İşi Başlar`,printJobStartsDesc:`Baskı işiniz başladığında bildirim alın.`,printJobFinishes:`Baskı İşi Biter`,printJobFinishesDesc:`Baskı işiniz başarıyla tamamlandığında bildirim alın.`,printErrors:`Baskı Hataları`,printErrorsDesc:`Baskı işiniz başarısız olduğunda veya bir hatayla karşılaştığında bildirim alın.`,printJobStops:`Baskı İşi Durur`,printJobStopsDesc:`Baskı işiniz iptal edildiğinde veya durdurulduğunda bildirim alın.`,saveSuccess:`Bildirim tercihleri kaydedildi.`,saveError:`Bildirim tercihleri kaydedilemedi.`}},richTextEditor:{bold:`Kalın`,italic:`İtalik`,underline:`Altı Çizili`,bulletList:`Madde İşaretli Liste`,numberedList:`Numaralı Liste`,alignLeft:`Sola Hizala`,alignCenter:`Ortaya Hizala`,alignRight:`Sağa Hizala`,addLink:`Bağlantı Ekle`,removeLink:`Bağlantıyı Kaldır`},externalLinks:{title:`Kenar çubuğu bağlantıları`,sidebarLayout:`Kenar çubuğu`,sidebarLayoutDescription:`Yerleşik sayfaları gösterin veya gizleyin, harici bağlantılar ekleyin ve kenar çubuğu gezinmesini yeniden sıralamak için öğeleri sürükleyin.`,systemPages:`Bambuddy sayfaları`,externalLinks:`Harici bağlantılar`,visibleInSidebar:`Kenar çubuğunda görünür`,hiddenFromSidebar:`Kenar çubuğunda gizli`,requiredInSidebar:`Kenar çubuğunda gerekli`,hidePage:`Sayfayı gizle`,showPage:`Sayfayı göster`,settingsCannotBeHidden:`Ayarlar gizlenemez`,noLinksConfigured:`Yapılandırılmış harici bağlantı yok`,deleteLink:`Bağlantıyı Sil`,removeCustomIcon:`Özel simgeyi kaldır`,openInNewTab:`Yeni sekmede aç`,placeholders:{linkName:`Bağlantım`}},keyboardShortcuts:{title:`Klavye Kısayolları`,navigation:`Navigasyon`,archivesSection:`Arşivler`,kProfilesSection:`K-Profilleri`,generalSection:`Genel`,shortcuts:{goToPrinters:`Yazıcılara Git`,goToArchives:`Arşivlere Git`,goToQueue:`Kuyruğa Git`,goToStats:`İstatistiklere Git`,goToProfiles:`Bulut Profillerine Git`,goToSettings:`Ayarlara Git`,focusSearch:`Aramaya odaklan`,openUploadModal:`Yükleme modalini aç`,clearSelection:`Seçimi temizle / odağı kaldır`,contextMenu:`Kartlarda bağlam menüsü`,refreshProfiles:`Profilleri yenile`,newProfile:`Yeni profil`,exitSelectionMode:`Seçim modundan çık`,showHelp:`Bu yardımı göster`},footer:`Kapatmak için Esc'ye basın veya dışarı tıklayın`},notificationLog:{title:`Bildirim Günlüğü`,events:{printStarted:`Baskı Başladı`,printComplete:`Baskı Tamamlandı`,printFailed:`Baskı Başarısız`,printStopped:`Baskı Durduruldu`,progress:`İlerleme`,printerOffline:`Yazıcı Çevrimdışı`,printerError:`Yazıcı Hatası`,lowFilament:`Az Filament`,maintenanceDue:`Bakım Zamanı`,test:`Test`},timeAgo:{justNow:`Az önce`,minutesAgo:`{{minutes}}dk önce`,hoursAgo:`{{hours}}sa önce`}},restoreBackup:{title:`Yedeği Geri Yükle`,restoring:`Geri yükleniyor...`,restoreComplete:`Geri Yükleme Tamamlandı`,restoreFailed:`Geri Yükleme Başarısız`,importSettings:`Ayarları bir yedek dosyasından içe aktar`,pleaseWait:`Verileriniz geri yüklenirken lütfen bekleyin`,clickToSelect:`Yedek dosyası seçmek için tıklayın (.json veya .zip)`,howDuplicateHandling:`Yinelenen yönetiminin nasıl çalıştığı:`,categories:{printers:`Yazıcılar`,smartPlugs:`Akıllı Prizler`,notificationProviders:`Bildirim Sağlayıcıları`,filaments:`Filamentler`,archives:`Arşivler`,pendingUploads:`Bekleyen Yüklemeler`,settingsTemplates:`Ayarlar ve Şablonlar`},matchingInfo:{printers:`seri numarasına göre eşleşti`,smartPlugs:`IP adresine göre eşleşti`,notificationProviders:`ada göre eşleşti`,filaments:`ad + tür + markaya göre eşleşti`,archives:`içerik hash'ine göre eşleşti`,pendingUploads:`dosya adına göre eşleşti`,settingsTemplates:`her zaman üzerine yazılır`},replaceExisting:`Mevcut veriyi değiştir`,keepExisting:`Mevcut veriyi koru`,replaceDescription:`Zaten mevcut olan öğeleri yedek verisiyle üzerine yaz`,keepDescription:`Yalnızca zaten mevcut olmayan öğeleri geri yükle`,caution:`Dikkat:`,cautionText:`Üzerine yazma, mevcut yapılandırmalarınızı yedek verisiyle değiştirecek. Güvenlik için yazıcı erişim kodları asla üzerine yazılmaz.`,itemsRestored:`Geri Yüklenen Öğeler`,itemsSkipped:`Atlanan Öğeler`,restored:`Geri yüklendi`,skipped:`Atlandı (zaten mevcut)`,filesLabel:`Dosyalar (3MF, küçük resimler, vb.)`,newApiKeysGenerated:`Yeni API Anahtarları Oluşturuldu`,newApiKeysWarning:`Bu anahtarlar yalnızca bir kez gösterilir. Şimdi kopyalayın!`,processingBackup:`Yedek dosyası işleniyor...`,noDataFound:`Yedek dosyasında geri yüklenecek veri bulunamadı.`,failedToRestore:`Yedek geri yüklenemedi. Lütfen dosya formatını kontrol edin.`},backupExport:{title:`Yedeği Dışa Aktar`,selectData:`Dahil edilecek veriyi seçin`,selectAll:`Tümünü Seç`,selectNone:`Hiçbirini Seçme`,categoryDescriptions:{settings:`Dil, tema, güncelleme tercihleri`,notifications:`ntfy, Pushover, Discord, vb.`,templates:`Özel mesaj şablonları`,smartPlugs:`Tasmota priz yapılandırmaları`,externalLinks:`Harici servislere kenar çubuğu bağlantıları`,printers:`Yazıcı bilgisi (erişim kodları hariç)`,plateDetection:`Boş plaka referans görüntüleri`,filaments:`Filament türleri ve maliyetleri`,maintenance:`Özel bakım programları`,archives:`Tüm baskı verileri + dosyalar (3MF, küçük resimler, fotoğraflar)`,projects:`Projeler, BOM öğeleri ve ekler`,pendingUploads:`İnceleme bekleyen sanal yazıcı yüklemeleri`,apiKeys:`Webhook API anahtarları (içe aktarımda yeni anahtarlar oluşturulur)`},requiresPrinters:`Yazıcıların seçili olması gerekir`,zipFileWarning:`ZIP dosyası oluşturulacak.`,zipFileDescription:`Tüm 3MF dosyalarını, küçük resimleri, zaman atlamalı videoları ve fotoğrafları içerir. Bu biraz zaman alabilir ve büyük bir dosya oluşturabilir.`,includeAccessCodes:`Erişim Kodlarını Dahil Et`,includeAccessCodesDescription:`Başka bir makineye aktarmak için`,includeAccessCodesWarning:`Erişim kodları düz metin olarak dahil edilecek. Bu yedek dosyasını güvende tutun!`,categoriesSelected:`{{selectedCount}} kategori seçildi`},pendingUploads:{placeholders:{notes:`Bu baskı hakkında notlar ekleyin...`},discardUpload:`Yüklemeyi At`,archiveAllUploads:`Tüm Yüklemeleri Arşivle`,discardAllUploads:`Tüm Yüklemeleri At`,archive:`Arşivle`,timeAgo:{justNow:`Az önce`,minutesAgo:`{{minutes}}dk önce`,hoursAgo:`{{hours}}sa önce`,daysAgo:`{{days}}g önce`}},apiBrowser:{placeholders:{requestBody:`JSON istek gövdesi...`,searchEndpoints:`Uç noktalarda ara...`}},configureAmsSlot:{title:`AMS Yuvasını Yapılandır`,slotConfigured:`Yuva Yapılandırıldı!`,configuringSlot:`Yuva yapılandırılıyor:`,slotLabel:`{{ams}} Yuva {{slot}}`,searchPresets:`Ön ayarlarda ara...`,colorPlaceholder:`Renk adı veya hex (örn., kahverengi, FF8800)`,clearCustomColor:`Özel rengi temizle`,noCloudPresets:`Bulut ön ayarı yok. Senkronize etmek için Bambu Cloud'a giriş yapın.`,noPresetsAvailable:`Kullanılabilir ön ayar yok. Bambu Cloud'a giriş yapın veya yerel profilleri içe aktarın.`,noMatchingPresets:`Eşleşen ön ayar bulunamadı.`,custom:`Özel`,builtin:`Yerleşik`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`Ayarlar yazıcıya gönderildi`,filamentProfile:`Filament Profili`,kProfileLabel:`K Profili (Basınç İlerlemesi)`,filteringFor:`Şu için filtreleniyor: {{material}}`,noKProfile:`K profili yok (varsayılan 0.020 kullan)`,noMatchingKProfiles:`Eşleşen K profili bulunamadı. Varsayılan K=0.020 kullanılacak.`,otherKProfiles:`Bu yazıcıdaki diğer K profilleri`,selectFilamentFirst:`Önce bir filament profili seçin`,kFromCalibration:`Yazıcı kalibrasyonundan K={{value}}`,customColorLabel:`Özel Renk (isteğe bağlı)`,presetColors:`{{name}} renkleri:`,showLessColors:`Daha az renk göster`,showMoreColors:`Daha fazla renk göster`,clear:`Temizle`,hexLabel:`Hex: #{{hex}}`,resetting:`Sıfırlanıyor...`,resetSlot:`Yuvayı Sıfırla`,cancel:`İptal`,configuring:`Yapılandırılıyor...`,configureSlot:`Yuvayı Yapılandır`},githubBackup:{title:`Git Yedekleme`,history:`Geçmiş`,downloadBackup:`Yedeği İndir`,restoreBackup:`Yedeği Geri Yükle`,noBackupsYet:`Henüz yedek yok`},emailSettings:{placeholders:{fromName:`BamBuddy`}},tagManagement:{searchTags:`Etiketlerde ara...`,renameTag:`Etiketi yeniden adlandır`,deleteTag:`Etiketi sil`},notificationTemplates:{placeholders:{title:`Bildirim başlığı...`,body:`Bildirim gövdesi...`}},batchTag:{placeholders:{newTag:`Yeni etiket girin...`}},photoGallery:{deletePhoto:`Fotoğrafı Sil`},filamentHoverCard:{copySpoolUuid:`Makara UUID'sini kopyala`},kProfilesView:{hasNote:`Notu var`,copyProfile:`Profili kopyala`},layout:{openMenu:`Menüyü aç`,noPermissionSystemInfo:`Sistem bilgisini görüntüleme izniniz yok`},dashboard:{dragToReorder:`Yeniden sıralamak için sürükleyin`,hideWidget:`Widget'ı gizle`},notificationProviderCard:{deleteNotificationProvider:`Bildirim Sağlayıcısını Sil`},fileManagerModal:{closeFileManager:`Dosya yöneticisini kapat`,sortFiles:`Dosyaları sırala`,goToParentFolder:`Üst klasöre git`,threeView:`3B Görünüm`},embeddedCameraViewer:{refreshStream:`Akışı yenile`,close:`Kapat`,zoomOut:`Uzaklaştır`,resetZoom:`Yakınlaştırmayı sıfırla`,zoomIn:`Yakınlaştır`,dragToResize:`Yeniden boyutlandırmak için sürükleyin`},timelapseViewer:{skipBack5s:`5 sn geri al`,skipForward5s:`5 sn ileri al`},notificationProviders:{descriptions:{email:`SMTP e-posta bildirimleri`,telegram:`Telegram botu üzerinden bildirimler`,discord:`Webhook üzerinden Discord kanalına gönder`,ntfy:`Ücretsiz, kendi barındırılabilir push bildirimleri`,pushover:`Basit, güvenilir push bildirimleri`,callmebot:`CallMeBot üzerinden ücretsiz WhatsApp bildirimleri`,webhook:`Herhangi bir URL'ye genel HTTP POST`}},logViewer:{searchPlaceholder:`Mesaj veya günlükçü adı ara...`,noLogEntries:`Günlük kaydı bulunamadı`},switchbarPopover:{noSwitchesInSwitchbar:`Anahtar çubuğunda anahtar yok`},projectPageModal:{placeholders:{title:`Başlık`,designer:`Tasarımcı`,license:`Lisans`,description:`Açıklama girin...`,profileTitle:`Profil Başlığı`,profileDescription:`Profil açıklaması...`}},spoolmanSettings:{},time:{unknown:`-`,waiting:`Bekliyor`,justNow:`Az önce`,now:`Şimdi`,minsAgo:`{{count}}dk önce`,inMins:`{{count}}dk sonra`,hoursAgo:`{{count}}sa önce`,inHours:`{{count}}sa sonra`,daysAgo:`{{count}}g önce`,inDays:`{{count}}g sonra`},spoolbuddy:{nav:{dashboard:`Gösterge Paneli`,ams:`AMS`,inventory:`Envanter`,writeTag:`Yaz`,settings:`Ayarlar`},status:{nfcReady:`NFC Hazır`,nfcOff:`NFC Kapalı`,offline:`Çevrimdışı`,online:`Çevrimiçi`,noPrinters:`Yazıcı yok`,deviceOffline:`Cihaz Çevrimdışı`,waitingConnection:`Cihaz bağlantısı bekleniyor...`,systemReady:`Sistem Hazır`,status:`Durum`},dashboard:{readyToScan:`Taramaya hazır`,idleMessage:`Tanımlamak için bir makarayı tartıya yerleştirin`,nfcHint:`NFC etiketi otomatik olarak okunacak`,device:`Cihaz`,syncWeight:`Ağırlığı Senkronize Et`,weightSynced:`Senkronize edildi!`,unknownTag:`Bilinmeyen Etiket`,newTag:`Yeni Etiket Algılandı`,onScale:`tartıda`,linkSpool:`Makaraya Bağla`,linkTagTitle:`Etiketi Makaraya Bağla`,linkTag:`Etiketi Bağla`,selectSpool:`Bu etiketi bağlamak için bir makara seçin:`,noUntagged:`Etiketsiz makara bulunamadı`,tagDetected:`Etiket algılandı`,noTag:`Etiket yok`,tagId:`Etiket`,grossWeight:`Brüt ağırlık`,spoolSize:`Makara boyutu`,close:`Kapat`,currentSpool:`Mevcut Makara`,plateReady:`Plaka hazır: {{name}}`,plateReadyLabel:`Temizlenmeye hazır plakalar`,plateClearAction:`Temizle`,plateClearedToast:`Plaka temizlendi olarak işaretlendi`,plateClearFailed:`Plaka temizlendi olarak işaretlenemedi`},modal:{spoolDetected:`Makara Algılandı`,assignToAms:`AMS'e Ata`,syncWeight:`Ağırlığı Senkronize Et`,weightSynced:`Senkronize edildi!`,syncing:`Senkronize ediliyor...`,newTagDetected:`Yeni Etiket Algılandı`,addToInventory:`Envantere Ekle`,assignToAmsTitle:`AMS'e Ata`,selectSlot:`Bir yuva seçin`,assign:`Ata`,assigning:`Atanıyor...`,assignSuccess:`Atandı!`,assignPendingInsert:`Atandı. Makarayı yerleştirdiğinizde yuva yapılandırılacak.`,assignError:`Makara atanamadı. Lütfen tekrar deneyin.`,noPrinterSelected:`Bir yazıcı seçin...`,noAmsDetected:`Bu yazıcıda AMS algılanmadı`,slot:`Yuva`},weight:{noReading:`Okuma yok`,stable:`Kararlı`,measuring:`Ölçülüyor...`,tare:`Dara`,calibrate:`Kalibre Et`},spool:{remaining:`Kalan`,material:`Malzeme`,brand:`Marka`,color:`Renk`,coreWeight:`Çekirdek`,labelWeight:`Etiket`,scaleWeight:`Tartı`,netWeight:`Net`,lastUsed:`Son kullanım`},ams:{noData:`AMS algılanmadı`,connectAms:`Filament yuvalarını görmek için bir AMS bağlayın`,noPrinter:`Yazıcı seçilmedi`,selectPrinter:`Üst çubuktan bir yazıcı seçin`,printerDisconnected:`Yazıcı bağlantısı kesildi`,humidity:`Nem`,level:`Seviye`,active:`Aktif`,slot:`Yuva`,empty:`Boş`},inventory:{search:`Makaralarda ara...`,empty:`Envanterde makara yok`,noResults:`Eşleşen makara yok`,spools:`makara`,addSpool:`Makara Ekle`},settings:{tabDevice:`Cihaz`,tabDisplay:`Görüntü`,tabScale:`Tartı`,tabUpdates:`Güncellemeler`,nfcReader:`NFC Okuyucu`,type:`Tür`,connection:`Bağlantı`,notConnected:`N/A`,deviceInfo:`Cihaz Bilgisi`,hostname:`Ana Bilgisayar`,uptime:`Çalışma Süresi`,systemConfig:`Arka Uç ve Kimlik Doğrulama`,backendUrl:`Bambuddy Arka Uç URL'si`,apiToken:`API Belirteci`,apiTokenPlaceholder:`API belirtecini girin`,saveConfig:`Yapılandırmayı Kaydet`,systemQueued:`Yapılandırma kuyruğa alındı.`,nfcDiagnostic:`NFC Tanılaması`,scaleDiagnostic:`Tartı Tanılaması`,readTagDiagnostic:`Etiket Okuma Tanılaması`,testNfc:`Okuyucuyu test et`,testScale:`Doğruluğu test et`,testReadTag:`Etiket oku`,systemFieldsRequired:`Arka uç URL'si gerekli.`,brightness:`Parlaklık`,saved:`Kaydedildi`,noBacklight:`DSI arka ışık algılanmadı. Parlaklık kontrolü DSI ekran gerektirir.`,screenBlank:`Ekran Kapanma Zaman Aşımı`,screenBlankDesc:`Hareketsizlik sonrası ekran kapanır. Uyandırmak için dokunun.`,displayNote:`Parlaklık bir yazılım filtresi olarak uygulanır.`,scaleCalibration:`Tartı Kalibrasyonu`,currentWeight:`Mevcut ağırlık`,tareOffset:`Dara`,calFactor:`Faktör`,knownWeight:`Bilinen ağırlık`,calStep1:`Tartıdan tüm öğeleri kaldırın ve Sıfır Ayarla'ya basın.`,calStep2:`Bilinen ağırlığı tartıya yerleştirin.`,setZero:`Sıfır Ayarla`,calibrateNow:`Kalibre Et`,calibrated:`Kalibre edildi`,tareSet:`Dara komutu gönderildi. Cihaz bekleniyor...`,tareComplete:`Dara tamam!`,tareTimedOut:`Dara zaman aşımına uğradı — SpoolBuddy daemon çalışıyor mu?`,tareFailed:`Dara komutu gönderilemedi`,zeroSet:`Sıfır noktası ayarlandı. Bilinen ağırlığı tartıya yerleştirin.`,calibrationDone:`Kalibrasyon tamamlandı!`,calibrationFailed:`Kalibrasyon başarısız`,lastCalibrated:`Son kalibrasyon`,stable:`Kararlı`,settling:`Sabitleniyor...`,firmware:`Firmware`,scale:`Tartı`,noDevice:`SpoolBuddy cihazı bulunamadı`,daemonVersion:`Daemon Sürümü`,currentVersion:`Mevcut`,versionPending:`Daemon bekleniyor...`,checking:`Kontrol ediliyor...`,checkUpdates:`Güncellemeleri Kontrol Et`,updateAvailable:`Güncelleme mevcut`,updateInstructions:`SSH üzerinden güncelle: yükseltmek için SpoolBuddy yükleme betiğini çalıştırın.`,upToDate:`Güncel`,includeBeta:`Beta sürümleri dahil et`},writeTag:{tabExisting:`Mevcut Makara`,tabNew:`Yeni Makara`,tabReplace:`Etiketi Değiştir`,searchPlaceholder:`Malzeme, renk, marka ile ara...`,noUntaggedSpools:`Etiketsiz makara yok`,noTaggedSpools:`Etiketli makara yok`,selectSpool:`Bir makara seçin, ardından okuyucuya boş bir NTAG yerleştirin`,placeTag:`Okuyucuya bir NTAG yerleştirin`,tagReady:`Etiket algılandı — yazmaya hazır`,writeTag:`Etiketi Yaz`,replaceTag:`Etiketi Değiştir`,writing:`Etiket yazılıyor...`,waiting:`SpoolBuddy bekleniyor...`,writeSuccess:`Etiket başarıyla yazıldı!`,writeFailed:`Yazma başarısız`,queueFailed:`Yazma komutu kuyruğa alınamadı`,tryAgain:`Tekrar Dene`,cancel:`İptal`,replaceWarning:`Eski etiket bağlantısı kaldırılacak. Yeni etiket yerini alacak.`,deviceOffline:`SpoolBuddy çevrimdışı`,material:`Malzeme`,colorName:`Renk Adı`,color:`Renk`,brand:`Marka`,weight:`Ağırlık (g)`,createSpool:`Makara Oluştur`,creating:`Oluşturuluyor...`,spoolCreated:`Makara oluşturuldu! Yazmaya hazır.`,createFailed:`Makara oluşturulamadı`,incompleteDataWarning:`Etiket eksik Spoolman verisiyle yazıldı`},quickMenu:{printerPower:`Yazıcı Gücü`,systemControls:`Sistem`,restartDaemon:`Daemon'u Yeniden Başlat`,restartBrowser:`Tarayıcıyı Yeniden Başlat`,reboot:`Yeniden Başlat`,shutdown:`Kapat`,swipeToClose:`Kapatmak için aşağı kaydır`,confirmTitle:`Onayla`,confirmShutdown:`SpoolBuddy'yi kapatmak istediğinizden emin misiniz? Tekrar açmak için fiziksel erişime ihtiyacınız olacak.`,confirmReboot:`SpoolBuddy'yi yeniden başlatmak istediğinizden emin misiniz?`,confirmRestartDaemon:`SpoolBuddy daemon yeniden başlatılsın mı? NFC ve tartı geçici olarak kullanılamayacak.`,confirmRestartBrowser:`Kiosk tarayıcısı yeniden başlatılsın mı? Ekran kısa bir süre kararacak.`,confirm:`Onayla`,confirmPlugOn:`{{name}} açılsın mı?`,confirmPlugOff:`{{name}} kapatılsın mı?`,turnOn:`Aç`,turnOff:`Kapat`}},diagnostic:{modalTitle:`Bağlantı tanılaması — {{name}}`,running:`Tanılama çalışıyor...`,runningElapsed:`Tanılama çalışıyor... ({{elapsed}}s)`,waitingForReportHint:`Yazıcının durum raporu yayınlamasını bekliyor — bu işlem en fazla {{max}} saniye sürebilir.`,runFailed:`Tanılama çalıştırılamadı: {{error}}`,retry:`Tekrar çalıştır`,runButton:`Tanılamayı çalıştır`,sectionTitle:`Bağlantı Tanılaması`,sectionDescription:`Bir yazıcının neden bağlanmadığını veya yazdırmadığını kontrol edin — port erişilebilirliği, LAN geliştirici modu, Docker ağ modu ve kimlik bilgileri.`,noPrinters:`Yapılandırılmış yazıcı yok.`,overall:{ok:`Sorun bulunamadı — yazıcı bağlantısı sağlıklı görünüyor.`,warnings:`Yazıcı çalışmalı, ancak bazı şeyler dikkat gerektiriyor.`,problems:`Yazıcının neden bağlanmadığını veya yazdırmadığını açıklayan sorunlar bulundu.`},check:{port_mqtt:{title:`Kontrol portu (MQTT 8883)`,pass:`Erişilebilir — yazıcı kontrol bağlantılarını kabul ediyor.`,fail:`Port 8883 erişilemez. Yazıcı kapalı, farklı bir IP adresinde veya bir güvenlik duvarı engelliyor. Yazıcı IP'sini ve hiçbir şeyin port 8883'ü engellemediğini doğrulayın.`},port_ftps:{title:`Dosya aktarım portu (FTPS 990)`,pass:`Erişilebilir — baskı dosyaları gönderme çalışacak.`,warn:`Port 990 erişilemez. İzleme yine çalışabilir, ancak yazıcıya baskı gönderme başarısız olacak. Port 990'ın engellenmediğinden emin olun.`},external_storage:{title:`Gönderilen dosyaları harici depolamada sakla (kurulum adımı 4)`,pass:`Yazıcı bu seçeneğin açık olduğunu bildiriyor — gönderilen dosyalar SD kartta saklanacak ve arşivler küçük resim ve dilimleyici meta verileri içerecek.`,fail:`Yazıcı bu seçeneğin kapalı olduğunu bildiriyor. "Gönderilen dosyaları harici depolamada sakla" seçeneğini etkinleştirin — yeni donanım yazılımlarında (P2S 01.02 / Bambu Studio 2.6+) düğme yazıcının Baskı Ayarları'nda; eski sürümlerde Bambu Studio / OrcaSlicer'in Cihaz sekmesindedir. Bu seçenek olmadan, arşivlenen her baskıda küçük resim ve dilimleyici meta verisi olmayacak.`,skip:`Kontrol edilmedi — etkin bir MQTT bağlantısı gerekli. Bu ayarın yalnızca dilimleyicide bulunduğu eski dilimleyicilerde yazıcı bunu bildirmez, bu nedenle seçenek kapalı olsa bile bu kontrol geçer — kurulum adımı 4'ü manuel olarak doğrulayın.`,skip_unsupported_model:`Bu modelde SD yuvası var ancak seçeneği açmanın bir yolu yok — mevcut P1 serisi bellenim, Bambu Studio'da bu anahtarı göstermiyor ve yazıcının ekranı yok. Burada düzeltilecek bir şey yok; Bambu Lab bellenim desteği ekleyene kadar arşivlenen baskılarda küçük resimler ve dilimleyici meta verileri eksik olabilir.`},port_rtsps:{title:`Kamera portu ({{protocol}} {{port}})`,pass:`Erişilebilir — kamera akışı çalışacak.`,warn:`Port {{port}} erişilemez. Canlı kamera görünümü çalışmayacak. Bu, baskıyı etkilemez.`},network_mode:{title:`Docker ağ modu`,pass:`Ana bilgisayar ağ modunda çalışıyor.`,warn:`Bambuddy, Docker köprü ağı kullanılarak çalışıyor. Yazıcı keşfi ve Sanal Yazıcı, ana bilgisayar ağ modu gerektirir — konteyneri "network_mode: host" ile yeniden oluşturun.`,skip:`Docker'da çalışmıyor — uygulanamaz.`},subnet:{title:`Ağ alt ağı`,pass:`Yazıcı ve Bambuddy aynı alt ağda.`,warn:`Yazıcı ({{printer_ip}}) ve Bambuddy ({{host_ip}}) farklı alt ağlarda. Alt ağlar arasında yönlendirme yapılandırılmazsa birbirlerine erişemeyebilirler.`,skip:`Alt ağ belirlenemedi — atlandı.`},mqtt_auth:{title:`Yazıcı kimlik bilgileri`,pass:`Yazıcı bağlantıyı kabul etti.`,fail:`Yazıcıya erişilebiliyor ancak Bambuddy ona bağlı değil. Büyük olasılıkla erişim kodu veya seri numarası yanlış — erişim kodu, Yalnızca LAN veya Geliştirici Modu her açılıp kapatıldığında değişir, bu yüzden yazıcı ekranından yeniden kopyalayın. Yeniden başlamakta olan veya eşzamanlı bağlantı sınırına ulaşmış bir yazıcı da aynı görünür.`,fail_auth_rejected:`Yazıcı, Bambuddy'nin kimlik bilgilerini reddetti. Erişim kodu veya seri numarası yanlış — erişim kodu, Yalnızca LAN veya Geliştirici Modu her açılıp kapatıldığında değişir. Yazıcı ekranından yeniden kopyalayın ve yazıcı ayarlarına kaydedin.`,skip:`Kontrol edilmedi — yazıcıya erişilemedi.`},developer_mode:{title:`LAN Geliştirici Modu`,pass:`Geliştirici Modu etkin.`,fail:`Yazıcıda Geliştirici Modu KAPALI. Yazıcının LAN ayarlarında etkinleştirin — ve OK ile onaylayın. Bu olmadan baskılar başlamayacak.`,skip:`Kontrol edilemedi — yazıcıya canlı bir bağlantı gerektirir.`},printer_publishing:{title:`Yazıcı durum yayını yapıyor`,pass:`Yazıcı durum güncellemelerini yayınlıyor — AMS, filamentler ve K profilleri dilimleyiciye doğru şekilde yansıtılacak.`,fail:`MQTT aracısı bağlantıyı kabul etti, ancak yazıcı hiç durum raporu yayınlamadı. Bu neredeyse her zaman yanlış ya da büyük/küçük harf hatalı bir seri numarasından kaynaklanır — device//api/v1/metrics для мониторинга в Prometheus/Grafana.`,bearerTokenOptional:`Bearer-токен (необязательно)`,bearerTokenHint:`Если задан, запросы должны содержать Authorization: Bearer `,metricsConnectionStatus:`Состояние подключения`,metricsPrinterState:`Состояние принтера (ожидание, печать и т. п.)`,metricsPrintProgress:`Прогресс печати, 0–100 %`,metricsBedTemp:`Температура стола`,metricsNozzleTemp:`Температура сопла`,metricsPrintsTotal:`Общее количество заданий по результату`,metricsMore:`…и другие данные: слои, вентиляторы, очередь, расход филамента`,smartPlugsDescription:`Подключение умных розеток Tasmota или Home Assistant для автоматического управления питанием принтеров и учёта энергопотребления.`,allOn:`Включить все`,allOff:`Выключить все`,addSmartPlug:`Добавить умную розетку`,energySummary:`Сводка энергопотребления`,currentPower:`Текущая мощность`,plugsOnline:`Розеток в сети: {{reachable}}/{{total}}`,today:`Сегодня`,yesterday:`Вчера`,total:`Всего`,enablePlugsForSummary:`Включите розетки, чтобы увидеть сводку энергопотребления`,addNotificationProvider:`Добавить`,systemBadge:`(системная)`,creating:`Создание…`,changing:`Изменение…`,deleteUserAndItems:`Удалить пользователя И его объекты`,deleteUserKeepItems:`Удалить пользователя, объекты оставить без владельца`,ok:`ОК`,twoFa:{totpTitle:`Приложение-аутентификатор (TOTP)`,totpDesc:`Использовать приложение-аутентификатор, например Google Authenticator, Aegis или Authy.`,emailOtpTitle:`Одноразовый код по электронной почте`,emailOtpDesc:`Отправлять одноразовый код на {{email}} при входе.`,emailOtpNoEmail:`Добавьте адрес электронной почты в учётную запись, чтобы включить этот способ.`,addEmailFirst:`В вашей учётной записи нет адреса электронной почты. Перед включением одноразовых кодов попросите администратора добавить его.`,setupTotp:`Настроить приложение-аутентификатор`,setupAuthApp:`Настроить приложение-аутентификатор`,setupInstructions:`Отсканируйте QR-код приложением-аутентификатором, затем подтвердите настройку кодом.`,manualEntry:`Не получается отсканировать? Введите этот секрет вручную:`,scannedContinue:`Код отсканирован — продолжить`,enterCodeToConfirm:`Для подтверждения настройки введите шестизначный код из приложения-аутентификатора.`,activate:`Активировать`,disableTotp:`Отключить аутентификатор`,disableConfirmHint:`Чтобы отключить аутентификатор, введите действующий код TOTP или резервный код.`,totpDisabled:`Приложение-аутентификатор отключено.`,emailOtpEnabled:`Одноразовые коды по электронной почте включены.`,emailOtpDisabled:`Одноразовые коды по электронной почте отключены.`,smtpRequired:`Сначала настройте и проверьте SMTP.`,invalidCode:`Неверный код. Повторите попытку.`,enableEmailOtp:`Включить одноразовые коды по электронной почте`,disableEmailOtp:`Отключить одноразовые коды по электронной почте`,emailSetupEnterCode:`Код подтверждения отправлен на вашу электронную почту. Введите его ниже, чтобы подтвердить доступ к этому почтовому ящику.`,verifyAndEnable:`Подтвердить и включить`,emailDisablePasswordHint:`Чтобы подтвердить отключение одноразовых кодов по электронной почте, введите пароль учётной записи.`,passwordPlaceholder:`Введите пароль`,backupCodesTitle:`Сохраните резервные коды`,backupCodesWarning:`Сохраните эти коды в надёжном месте. Каждый код можно использовать только один раз; повторно они показаны не будут.`,backupCodesRemaining:`Осталось резервных кодов: {{count}}`,savedCodes:`Я сохранил коды`,regenBackup:`Создать новые резервные коды`,regenBackupHint:`Введите текущий код TOTP, чтобы создать 10 новых резервных кодов. Все существующие резервные коды станут недействительными.`,newBackupCodes:`Новые резервные коды`,linkedAccounts:`Связанные учётные записи SSO`,linkedAccountsDesc:`Эти внешние провайдеры идентификации связаны с вашей учётной записью.`,oidcUnlinked:`Учётная запись отсоединена.`},sessionPolicy:{title:`Политика сеансов`,description:`Максимальный срок действия сеанса для новых входов пользователей. Уже выданные токены сохраняют исходный срок действия.`,preset24h:`24 часа`,preset7d:`7 дней`,preset30d:`30 дней`,customHoursLabel:`Срок действия сеанса в часах`,hoursSuffix:`часов`,warning:`Длительные сеансы снижают защиту автоматическим выходом. Рекомендуется только для доверенных установок с одним пользователем.`},oidc:{title:`Провайдеры SSO / OIDC`,desc:`Настройка провайдеров OpenID Connect для единого входа через внешние службы идентификации.`,addProvider:`Добавить провайдера`,newProvider:`Новый провайдер`,empty:`Провайдеры OIDC пока не настроены.`,created:`Провайдер создан.`,updated:`Провайдер обновлён.`,deleted:`Провайдер удалён.`,refreshIcon:`Обновить значок`,removeIcon:`Удалить значок`,iconRefreshed:`Значок обновлён.`,iconRemoved:`Значок удалён.`,iconFetchFailed:`Не удалось получить значок по URL провайдера.`,deleteTitle:`Удалить провайдера`,deleteMessage:`Удалить «{{name}}»? Все связанные учётные записи пользователей будут отсоединены.`,form:{name:`Отображаемое имя`,issuerUrl:`URL издателя`,clientId:`Идентификатор клиента`,clientSecret:`Секрет клиента`,scopes:`Области доступа`,iconUrl:`URL значка (необязательно)`,enabled:`Включён`,autoCreate:`Автоматически создавать пользователей`,autoCreateDesc:`Автоматически создавать локальную учётную запись при первом входе.`,autoLink:`Автоматически связывать существующие учётные записи`,autoLinkDesc:`При первом входе связывать локальные учётные записи по совпадающему адресу электронной почты.`,secretHint:`оставьте пустым, чтобы сохранить текущий`,secretPlaceholder:`новый секрет`,emailClaim:`Поле электронной почты`,emailClaimDesc:`Поле JWT, используемое как адрес электронной почты. Для Azure Entra ID, который не передаёт email_verified, используйте preferred_username или upn. Указывайте только доверенные поля.`,emailClaimPlaceholder:`email`,emailClaimCustomClaimAutoLinkWarning:`Пользовательское поле безопасно для автоматического связывания только тогда, когда его значение назначается администратором арендатора, например upn или preferred_username в Azure Entra ID. Не включайте автоматическое связывание, если ваш IdP позволяет пользователям самостоятельно задавать это поле.`,requireEmailVerified:`Требовать подтверждённый адрес электронной почты`,requireEmailVerifiedDesc:`Принимать адрес электронной почты только в том случае, если провайдер пометил его как подтверждённый.`,requireEmailVerifiedWarning:`Предупреждение: адрес будет принят даже без подтверждения. Используйте только с доверенными провайдерами.`,requireEmailVerifiedAutoLink:`Чтобы изменить этот параметр, сначала отключите автоматическое связывание.`,defaultGroup:`Группа по умолчанию`,defaultGroupDesc:`Группа для автоматически созданных пользователей. Если не задана, используется группа «Наблюдатели».`,defaultGroupViewersFallback:`Наблюдатели (по умолчанию)`,autologin:`Автоматический вход`,autologinDesc:`Сразу перенаправлять неавторизованных посетителей к этому провайдеру. Этот флаг может быть установлен только у одного провайдера.`}},encryption:{title:`Состояние шифрования MFA`,enabledFromEnv:`Шифрование данных включено; ключ получен из переменной окружения MFA_ENCRYPTION_KEY`,enabledFromFile:`Шифрование данных включено; ключ загружен из каталога данных`,enabledGenerated:`Шифрование данных включено с автоматически созданным ключом`,notConfigured:`Шифрование хранимых данных не настроено`,notConfiguredDesc:`Секреты TOTP и client_secret провайдеров OIDC хранятся открытым текстом. Задайте MFA_ENCRYPTION_KEY или перезапустите Bambuddy с доступным для записи каталогом данных, чтобы ключ был создан автоматически.`,allEncrypted:`Все секреты MFA зашифрованы при хранении.`,legacyRowsLabel:`Старые записи открытым текстом`,encryptedRowsLabel:`Зашифрованные записи`,legacyRowsWarning:`Обнаружено старых записей открытым текстом: {{count}}. Чтобы перенести их в зашифрованное хранилище, повторно сохраните провайдера OIDC или заново подключите приложение-аутентификатор пользователя.`,backupHint:`Автоматически созданный ключ хранится в DATA_DIR/.mfa_encryption_key и включается в локальные ZIP-копии. Храните резервные копии в безопасном месте либо задайте MFA_ENCRYPTION_KEY явно.`,decryptionBrokenTitle:`Отсутствует ключ шифрования`,decryptionBrokenError:`Невозможно расшифровать записей: {{count}}, поскольку ключ шифрования больше недоступен. Для восстановления верните прежний MFA_ENCRYPTION_KEY или файл DATA_DIR/.mfa_encryption_key.`,migrationErrorWarning:`Не удалось повторно зашифровать старых записей при запуске: {{count}}. Проверьте журнал сервера и перезапустите Bambuddy для повторной попытки.`},pipelineLimits:{title:`Ограничения конвейеров слайсера`,maxCopiesLabel:`Максимум копий за запуск`,maxCopiesDesc:`Верхний предел количества копий, которое оператор может запросить при запуске конвейера. Жёсткое серверное ограничение — 1000.`},pipelines:{title:`Конвейеры слайсера`,subtitle:`Повторно используемые наборы профилей: принтер, процесс, филаменты и тип стола. Сохраните набор в окне нарезки и применяйте его к следующему файлу одним нажатием.`,loading:`Загрузка конвейеров...`,loadError:`Не удалось загрузить конвейеры.`,confirmDelete:`Удалить этот конвейер? Отменить действие нельзя.`,staleWarning:`Один или несколько связанных профилей больше не существуют. Чтобы исправить конвейер, повторно сохраните его из окна нарезки.`,empty:{title:`Конвейеров пока нет.`,howto:`Откройте окно нарезки любого файла, выберите принтер, процесс, филаменты и тип стола, затем нажмите «Сохранить как конвейер». Сохранённые конвейеры появятся здесь.`},field:{name:`Название конвейера`,description:`Описание`,targetPrinter:`Целевой принтер`,noTarget:`— Цель не задана —`,targetKind:`Тип цели`,targetKindSpecific:`Конкретный принтер`,targetKindClass:`Класс принтеров`,targetModelClass:`Модель принтера`,fanoutStrategy:`Стратегия распределения`,fanout:{max_parallel:`Максимум параллельно — распределять между любыми свободными подходящими принтерами`,round_robin:`По кругу — последовательно чередовать подходящие принтеры`,fill_one_first:`Сначала один — назначить все копии одному принтеру`},fanoutShort:{max_parallel:`параллельно`,round_robin:`по кругу`,fill_one_first:`сначала один`}},action:{save:`Сохранить`,cancel:`Отмена`,rename:`Переименовать`,delete:`Удалить`},slot:{printer:`Принтер`,process:`Процесс`,filament:`Филамент`,filamentN:`Филамент {{n}}`,filamentAll:`Все слоты: {{n}}`,bed:`Стол`},group:{profiles:`Профили`,filaments:`Филаменты`},searchPlaceholder:`Поиск конвейеров...`,filterTargetType:`Фильтр по типу цели`,filterTarget:`Фильтр по цели`,filter:{all:`Все цели`,noTarget:`Цель не задана`,count:`{{shown}} из {{total}}`,noMatches:`Нет конвейеров, соответствующих текущим фильтрам.`},toast:{saved:`Конвейер сохранён`,saveFailed:`Не удалось сохранить`,deleted:`Конвейер удалён`,deleteFailed:`Не удалось удалить`},noTargetHint:`Чтобы запустить, задайте целевой принтер`,noTargetWarning:`Перед запуском конвейера задайте целевой принтер.`,runs:{lastRun:`Последний запуск`,status:{queued:`в очереди`,slicing:`нарезка`,dispatching:`назначение`,in_progress:`печать`,completed:`завершено`,failed:`ошибка`,partial_failure:`частичная ошибка`,cancelled:`отменено`}}}},notification:{printStarted:{title:`Печать началась`,body:`{{printer}}: началась печать файла {{filename}}`},printCompleted:{title:`Печать завершена`,body:`{{printer}}: файл {{filename}} успешно напечатан`},printFailed:{title:`Ошибка печати`,body:`{{printer}}: печать файла {{filename}} завершилась ошибкой`},printStopped:{title:`Печать остановлена`,body:`{{printer}}: печать файла {{filename}} остановлена`},printProgress:{title:`Ход печати`,body:`{{printer}}: файл {{filename}} напечатан на {{percent}}%`},printerOffline:{title:`Принтер не в сети`,body:`{{printer}} не в сети`},printerError:{title:`Ошибка принтера`,body:`{{printer}}: {{error}}`},filamentLow:{title:`Заканчивается филамент`,body:`{{printer}}: осталось мало филамента`},maintenanceDue:{title:`Требуется обслуживание`,body:`{{printer}}: требуют внимания: {{items}}`}},errors:{generic:`Что-то пошло не так`,networkError:`Ошибка сети. Проверьте подключение.`,notFound:`Не найдено`,unauthorized:`Доступ не разрешён`,serverError:`Ошибка сервера`,validationError:`Проверьте введённые данные`,printerConnectionFailed:`Не удалось подключиться к принтеру`,saveFailed:`Не удалось сохранить изменения`,deleteFailed:`Не удалось удалить`,loadFailed:`Не удалось загрузить данные`},hmsErrors:{title:`Ошибки — {{name}}`,noErrors:`Ошибок нет`,viewOnWiki:`Открыть в Bambu Lab Wiki`,mqttVerifyFailedRemedy:`Включите режим разработчика на принтере, перезагрузите принтер и запустите задание снова.`,unknownCode:`Неизвестный код HMS — подробности см. в Bambu Lab Wiki.`,clearInstructions:`Устраните ошибки на принтере, чтобы они исчезли из этого списка.`,clearErrors:`Очистить ошибки`,clearSuccess:`Ошибки HMS очищены`,clearFailed:`Не удалось очистить ошибки HMS`,actionSuccess:`Команда отправлена принтеру`,actionFailed:`Не удалось отправить команду`,runoutExpectedSlot:`Филамент закончился в {{ranOut}}. Теперь принтер ожидает совместимый филамент в {{expected}}. Установите катушку в {{expected}}, затем выберите «Повторить».`,runoutExpectedSlotOnly:`Принтер ожидает совместимый филамент в {{expected}}. Установите туда катушку, затем выберите «Повторить».`,runoutSlotUnknown:`Филамент закончился, и печать приостановлена. Bambuddy не смог определить, какой слот теперь ожидает принтер. Проверьте запрошенный слот на экране принтера.`,actions:{RESUME_PRINTING:`Продолжить печать`,RESUME_PRINTING_DEFECTS:`Продолжить (дефекты допустимы)`,RESUME_PRINTING_PROBELM_SOLVED:`Продолжить (проблема устранена)`,STOP_PRINTING:`Остановить печать`,CHECK_ASSISTANT:`Проверить помощник`,FILAMENT_EXTRUDED:`Филамент выдавливается — продолжить`,RETRY_FILAMENT_EXTRUDED:`Филамент ещё не выходит — повторить`,CONTINUE:`Готово — продолжить`,LOAD_VIRTUAL_TRAY:`Загрузить филамент`,OK_BUTTON:`ОК`,FILAMENT_LOAD_RESUME:`Филамент загружен — продолжить`,JUMP_TO_LIVEVIEW:`Открыть камеру`,NO_REMINDER_NEXT_TIME:`Больше не напоминать`,REFRESH_NOZZLE:`Проверить ещё раз`,IGNORE_NO_REMINDER_NEXT_TIME:`Игнорировать и больше не напоминать`,IGNORE_RESUME:`Игнорировать и продолжить`,PROBLEM_SOLVED_RESUME:`Проблема устранена — продолжить`,TURN_OFF_FIRE_ALARM:`Понятно, отключить пожарную тревогу`,RETRY_PROBLEM_SOLVED:`Повторить (проблема устранена)`,CANCLE:`Отмена`,STOP_DRYING:`Остановить сушку`,PROCEED:`Продолжить`,OK_JUMP_RACK:`ОК`,ABORT:`Прервать`,DISABLE_PURIFICATION:`Отключить очистку воздуха для этой печати`,DONT_REMIND_NEXT_TIME:`Больше не напоминать`,DBL_CHECK_CANCEL:`Отмена`,DBL_CHECK_DONE:`Готово`,DBL_CHECK_RETRY:`Повторить`,DBL_CHECK_RESUME:`Продолжить`,DBL_CHECK_OK:`Подтвердить`,REMOVE_CLOSE_BTN:`Закрыть`}},mqttDebug:{title:`Журнал отладки MQTT`,searchPlaceholder:`Поиск по теме или содержимому...`,noMessages:`Сообщений пока нет`,startLoggingHint:`Нажмите «Начать запись», чтобы перехватывать сообщения MQTT`,noMessagesMatch:`Нет сообщений, соответствующих фильтру`,adjustFilterHint:`Измените запрос или параметры фильтра`,incoming:`Входящие`,outgoing:`Исходящие`,loggingStopped:`Запись остановлена`,loggingActive:`Запись активна — сообщения обновляются автоматически`,startLogging:`Начать запись`,stopLogging:`Остановить запись`,clearLog:`Очистить журнал`,topic:`Тема`,timestamp:`Время`,direction:`Направление`,all:`Все`},printerFiles:{title:`Файлы принтера`,storageUsed:`Занято:`,storageFree:`Свободно:`,filterPlaceholder:`Фильтр файлов...`,deleteButton:`Удалить`,deleteFiles:`Удалить файлы: {{count}}`,deleteFileConfirm:`Удалить «{{name}}»? Это действие нельзя отменить.`,deleteFilesConfirm:`Удалить выбранные файлы ({{count}})? Это действие нельзя отменить.`,noFiles:`На принтере нет файлов`,loadingFiles:`Загрузка файлов...`,failedToLoad:`Не удалось загрузить файлы`,toast:{filesDeleted:`Удалено файлов: {{count}}`,deleteFailed:`Не удалось удалить: {{error}}`}},confirm:{delete:`Удалить этот объект?`,unsavedChanges:`Есть несохранённые изменения. Всё равно уйти со страницы?`,clearQueue:`Очистить очередь печати?`},login:{title:`Вход в Bambuddy`,subtitle:`Войдите в свою учётную запись`,username:`Имя пользователя`,usernamePlaceholder:`Введите имя пользователя`,usernameOrEmail:`Имя пользователя или email`,usernameOrEmailPlaceholder:`Имя пользователя или email`,password:`Пароль`,passwordPlaceholder:`Введите пароль`,signIn:`Войти`,signingIn:`Вход...`,rememberMe:`Запомнить меня`,forgotPassword:`Забыли пароль?`,autologinFailed:`Автоматический вход через SSO не выполнен. Выберите провайдера ниже.`,localDisabledNotice:`Локальный вход отключён. Используйте одного из SSO-провайдеров ниже.`,loginSuccess:`Вход выполнен`,loginFailed:`Не удалось войти`,enterCredentials:`Введите имя пользователя и пароль`,enterEmail:`Введите адрес электронной почты`,oidcLoginFailed:`Ошибка входа через OIDC`,oidcErrors:{providerError:`Провайдер удостоверений вернул ошибку`,missingParameters:`В ответе OIDC отсутствуют обязательные параметры`,invalidState:`Состояние OIDC недействительно или уже использовано`,stateExpired:`Сеанс входа OIDC истёк — повторите попытку`,providerNotFound:`Провайдер OIDC не найден`,discoveryFailed:`Не удалось получить документ обнаружения OIDC`,invalidDiscovery:`Документ обнаружения OIDC недействителен`,networkError:`Сетевая ошибка при обмене токена OIDC`,badResponse:`Неожиданный ответ при обмене токена OIDC`,noIdToken:`Провайдер OIDC не вернул ID-токен`,validationFailed:`Не удалось проверить токен OIDC`,nonceMismatch:`Несовпадение nonce OIDC — возможна атака повторного воспроизведения`,missingSubClaim:`В токене OIDC отсутствует поле sub`,noLinkedAccount:`С этой учётной записью OIDC не связана локальная учётная запись`,accountInactive:`Учётная запись неактивна`,userResolutionFailed:`Не удалось определить учётную запись`,internalError:`Внутренняя ошибка при входе через OIDC`,tokenExchangeFailed:`Не удалось обменять токен OIDC`},forgotPasswordTitle:`Восстановление пароля`,forgotPasswordMessage:`Обратитесь к системному администратору для сброса пароля.`,forgotPasswordEmailMessage:`Введите адрес электронной почты, и мы отправим новый пароль.`,emailAddress:`Адрес электронной почты`,emailPlaceholder:`your.email@example.com`,cancel:`Отмена`,sending:`Отправка...`,sendResetEmail:`Отправить письмо для сброса`,howToReset:`Как сбросить пароль:`,resetStep1:`Свяжитесь с администратором Bambuddy`,resetStep2:`Попросите сбросить пароль в разделе управления пользователями`,resetStep3:`Администратор задаст новый временный пароль`,resetStep4:`Войдите с новым паролем и измените его в настройках`,gotIt:`Понятно`,resetPassword:{title:`Новый пароль`,subtitle:`Введите и подтвердите новый пароль.`,newPassword:`Новый пароль`,newPasswordPlaceholder:`Не менее 8 символов`,confirmPassword:`Подтверждение пароля`,confirmPasswordPlaceholder:`Повторите новый пароль`,saving:`Сохранение…`,submit:`Установить новый пароль`,backToLogin:`Вернуться ко входу`,passwordsDoNotMatch:`Пароли не совпадают`,passwordTooShort:`Пароль должен содержать не менее 8 символов`,resetFailed:`Не удалось сбросить пароль. Возможно, ссылка устарела.`},twoFA:{title:`Двухфакторная аутентификация`,subtitle:`Учётная запись защищена 2FA. Введите код подтверждения.`,methodAuthenticator:`Приложение-аутентификатор`,methodEmail:`Код по email`,methodBackup:`Резервный код`,instructionsTotp:`Откройте приложение-аутентификатор и введите шестизначный код Bambuddy.`,instructionsEmail:`Шестизначный код отправлен на вашу электронную почту. Он действует 10 минут.`,instructionsEmailNotSent:`Нажмите кнопку ниже, чтобы получить код подтверждения по email.`,instructionsBackup:`Введите один из восьмизначных резервных кодов восстановления. Каждый код используется только один раз.`,sendCodeButton:`Отправить код по email`,sendingCode:`Отправка...`,resendCode:`Отправить код повторно`,codeLabel:`Код подтверждения`,backupCodeLabel:`Резервный код`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`Подтвердить`,verifyingButton:`Проверка...`,backToLogin:`← Вернуться ко входу`,orContinueWith:`или продолжить через`,signInWith:`Войти через {{provider}}`,enterCode:`Введите код подтверждения`,sendCodeFailed:`Не удалось отправить код подтверждения`,invalidCode:`Неверный код. Повторите попытку.`}},setup:{title:`Настройка Bambuddy`,subtitle:`Настройте аутентификацию для этого экземпляра Bambuddy`,enableAuth:`Включить аутентификацию`,adminAccount:`Учётная запись администратора`,adminAccountDesc:`Если администраторы уже существуют, аутентификация будет включена с использованием существующих учётных записей. Оставьте поля пустыми или введите данные для создания нового администратора.`,adminUsername:`Имя администратора`,adminPassword:`Пароль администратора`,optionalIfAdminExists:`(необязательно, если администратор уже существует)`,adminUsernamePlaceholder:`Введите имя администратора (необязательно)`,adminPasswordPlaceholder:`Введите пароль администратора (необязательно)`,confirmPassword:`Подтвердите пароль`,confirmPasswordPlaceholder:`Повторите пароль администратора`,settingUp:`Настройка...`,completeSetup:`Завершить настройку`,toast:{authEnabledAdminCreated:`Аутентификация включена, администратор создан`,authEnabledExistingAdmins:`Аутентификация включена для существующих администраторов`,setupCompleted:`Настройка завершена`,enterBothCredentials:`Введите имя и пароль администратора либо оставьте оба поля пустыми`,passwordsDoNotMatch:`Пароли не совпадают`,passwordTooShort:`Пароль должен содержать не менее 6 символов`}},changePassword:{title:`Изменение пароля`,currentPassword:`Текущий пароль`,currentPasswordPlaceholder:`Введите текущий пароль`,newPassword:`Новый пароль`,newPasswordPlaceholder:`Введите новый пароль (не менее 6 символов)`,confirmPassword:`Подтвердите новый пароль`,confirmPasswordPlaceholder:`Повторите новый пароль`,passwordsDoNotMatch:`Пароли не совпадают`,passwordTooShort:`Пароль должен содержать не менее 6 символов`,changing:`Изменение...`,success:`Пароль изменён`,failed:`Не удалось изменить пароль`},plateAlert:{title:`Печать приостановлена!`,message:`На печатной пластине обнаружены объекты. Печать автоматически приостановлена. Очистите пластину и продолжите печать.`,understand:`Понятно`},camera:{title:`Камера`,invalidPrinterId:`Неверный идентификатор принтера`,live:`Прямой эфир`,snapshot:`Снимок`,restartStream:`Перезапустить поток`,refreshSnapshot:`Обновить снимок`,fullscreen:`На весь экран`,exitFullscreen:`Выйти из полноэкранного режима`,connectingToCamera:`Подключение к камере...`,capturingSnapshot:`Создание снимка...`,connectionLost:`Соединение потеряно`,connectionFailed:`Не удалось подключиться к камере`,reconnecting:`Повторное подключение через {{countdown}} с... (попытка {{attempt}} из {{max}})`,reconnectNow:`Подключиться сейчас`,cameraUnavailable:`Камера недоступна`,cameraUnavailableDesc:`Убедитесь, что принтер включён и подключён к сети.`,noCamera:`Камера отсутствует`,retry:`Повторить`,cameraStream:`Видеопоток камеры`,zoomOut:`Уменьшить`,zoomIn:`Увеличить`,resetZoom:`Сбросить масштаб`,recording:`Запись`,startRecording:`Начать запись`,stopRecording:`Остановить запись`,chamberLight:`Переключить освещение камеры принтера`,unavailable:`Камера недоступна`,diagnose:{button:`Диагностика`,modalTitle:`Диагностика камеры`,running:`Выполняется диагностика...`,runFailed:`Не удалось выполнить диагностику: {{error}}`,retry:`Запустить снова`,stage:{tcp_reachable:`Доступность по сети`,first_frame:`Получение кадра`,live_stream_active:`Активный видеопоток`},summary:{all_ok:`Камера работает. Все этапы диагностики завершены успешно.`,live_stream_active_healthy:`Камера уже передаёт свежие кадры — дополнительная проверка не требуется.`,printer_unreachable:`Принтер недоступен. Проверьте IP-адрес, сетевое подключение и питание принтера.`,camera_port_closed:`Принтер доступен, но порт камеры закрыт. Убедитесь, что в настройках принтера включены режим «Только LAN» и режим разработчика.`,no_frame:`Подключение к камере установлено, но кадры не поступают. Повторите попытку или проверьте, включена ли камера в настройках принтера.`,unknown_failure:`Диагностика камеры завершилась неизвестной ошибкой. Подробности см. в журнале поддержки.`},meta:{protocol:`Протокол`,port:`Порт`,profile:`Профиль`}}},groups:{title:`Управление группами`,subtitle:`Настройка групп разрешений для контроля доступа`,backToSettings:`Вернуться к настройкам`,createGroup:`Создать группу`,noPermission:`У вас нет доступа к этой странице.`,system:`Системная`,noDescription:`Без описания`,usersCount:`Пользователей: {{count}}`,permissionsCount:`Разрешений: {{count}}`,edit:`Изменить`,delete:`Удалить`,toast:{created:`Группа создана`,updated:`Группа обновлена`,deleted:`Группа удалена`,enterGroupName:`Введите название группы`},modal:{editGroup:`Изменение группы`,createGroup:`Создание группы`,cancel:`Отмена`,saving:`Сохранение...`,creating:`Создание...`,saveChanges:`Сохранить изменения`},form:{groupName:`Название группы`,groupNamePlaceholder:`Введите название группы`,systemGroupWarning:`Названия системных групп изменить нельзя`,description:`Описание`,descriptionPlaceholder:`Введите описание (необязательно)`,permissions:`Разрешения (выбрано: {{count}})`},deleteModal:{title:`Удаление группы`,message:`Удалить эту группу? Входящие в неё пользователи потеряют соответствующие разрешения.`,confirm:`Удалить группу`},editor:{title:`Изменение группы`,createTitle:`Создание группы`,search:`Поиск разрешений...`,selectAll:`Выбрать все`,clearAll:`Очистить выбор`,permissionsSelected:`Выбрано: {{count}}`,noResults:`Нет разрешений, соответствующих запросу`,websocketHint:`Необходимо для обновлений в реальном времени. Без этого интерфейс будет периодически опрашивать сервер.`}},users:{title:`Управление пользователями`,subtitle:`Управление пользователями и их доступом к Bambuddy`,backToSettings:`Вернуться к настройкам`,createUser:`Создать пользователя`,noPermission:`У вас нет доступа к этой странице.`,admin:`Администратор`,noGroups:`Без групп`,active:`Активен`,inactive:`Отключён`,edit:`Изменить`,delete:`Удалить`,system:`Системный`,noGroupsAvailable:`Нет доступных групп`,table:{username:`Имя пользователя`,groups:`Группы`,status:`Состояние`,actions:`Действия`},toast:{created:`Пользователь создан`,updated:`Пользователь обновлён`,deleted:`Пользователь удалён`,fillRequired:`Заполните все обязательные поля`,passwordsDoNotMatch:`Пароли не совпадают`,passwordTooShort:`Пароль должен содержать не менее 6 символов`,ldapProvisioned:`Пользователь LDAP «{{username}}» добавлен`},modal:{createUser:`Создание пользователя`,editUser:`Изменение пользователя`,cancel:`Отмена`,creating:`Создание...`,saving:`Сохранение...`,saveChanges:`Сохранить изменения`,advancedAuthSubtitle:`с расширенной аутентификацией`,tabsAriaLabel:`Источник пользователя`,localTab:`Локальный`,ldapTab:`LDAP`,ldapSearchLabel:`Поиск в каталоге`,ldapSearchPlaceholder:`Введите имя пользователя, имя или email...`,ldapMinChars:`Для поиска введите не менее 2 символов`,ldapTypeToSearch:`Начните вводить запрос для поиска в каталоге LDAP`,ldapSearching:`Поиск в каталоге...`,ldapNoResults:`В каталоге нет подходящих пользователей`,ldapSearchError:`Ошибка поиска в каталоге. Проверьте состояние сервера LDAP.`,ldapAlreadyProvisioned:`Уже добавлен`,ldapSelectedLabel:`Выбран`,ldapProvision:`Добавить пользователя`,ldapProvisioning:`Добавление...`,ldapErrorProvision:`Не удалось добавить пользователя. Проверьте сервер LDAP и повторите попытку.`},form:{username:`Имя пользователя`,usernamePlaceholder:`Введите имя пользователя`,email:`Электронная почта`,emailPlaceholder:`user@example.com`,password:`Пароль`,passwordPlaceholder:`Введите пароль`,confirmPassword:`Подтверждение пароля`,confirmPasswordPlaceholder:`Повторите пароль`,newPasswordPlaceholder:`Введите новый пароль`,confirmNewPasswordPlaceholder:`Повторите новый пароль`,leaveBlankToKeep:`оставьте пустым, чтобы сохранить текущий`,groups:`Группы`,optional:`необязательно`,autoGeneratedPassword:`Надёжный пароль будет создан автоматически и отправлен пользователю по email.`,passwordManagedByAdvancedAuth:`Пароль управляется расширенной аутентификацией. Используйте «Сбросить пароль», чтобы отправить пользователю новый пароль по email.`,resetPassword:`Сбросить пароль`,resettingPassword:`Сброс пароля...`},deleteModal:{title:`Удаление пользователя`,message:`Удалить этого пользователя? Это действие нельзя отменить.`,confirm:`Удалить пользователя`}},streamOverlay:{title:`Оформление трансляции`,invalidPrinterId:`Неверный идентификатор принтера`,cameraStream:`Видеопоток камеры`,progress:`Прогресс`,eta:`Осталось`,printerIdle:`Принтер простаивает`,printerOffline:`Принтер не в сети`,status:{printing:`Печать`,paused:`Приостановлено`,finished:`Завершено`,failed:`Ошибка`,idle:`Ожидание`,unknown:`Неизвестно`}},profiles:{title:`Профили`,subtitle:`Управление профилями слайсера и калибровками Pressure Advance`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`Локальные профили`,kprofiles:`K-профили`},orcaCloud:{connectedAs:`Подключено как`,connectedShort:`Подключено к Orca Cloud`,logout:`Отключиться`,noLogoutPermission:`У вас нет разрешения отключаться от Orca Cloud`,noConnectPermission:`У вас нет разрешения подключаться к Orca Cloud`,retry:`Повторить`,connectButton:`Подключить Orca Cloud`,connect:{title:`Подключение к Orca Cloud`,description:`Войдите в Orca Cloud, чтобы синхронизировать профили слайсера с Bambuddy.`},device:{title:`Разрешите доступ Bambuddy в Orca Cloud`,instruction:`Откройте Orca Cloud и подтвердите этот код. После подтверждения Bambuddy подключится автоматически.`,codeLabel:`Код сопряжения`,openButton:`Открыть страницу подтверждения Orca Cloud`,manualHint:`Либо откройте {{url}} и введите указанный выше код.`,waiting:`Ожидание подтверждения…`,cancel:`Отмена`},profiles:{title:`Ваши профили Orca Cloud ({{count}})`,refresh:`Обновить`,empty:`В вашей учётной записи Orca Cloud пока нет профилей.`},toast:{disconnected:`Orca Cloud отключён`},errors:{startFailed:`Не удалось начать вход в Orca Cloud.`,denied:`Сопряжение отклонено в Orca Cloud.`,expired:`Срок действия кода сопряжения истёк. Нажмите «Подключить», чтобы повторить попытку.`,pollFailed:`Соединение было потеряно во время ожидания подтверждения. Повторите попытку.`}},localProfiles:{title:`Локальные профили`,subtitle:`Импорт профилей OrcaSlicer и управление ими`,import:`Импортировать профили`,importDesc:`Перетащите сюда файлы .bbscfg, .bbsflmt, .orca_filament, .zip или .json`,importing:`Импорт...`,search:`Поиск локальных профилей...`,noPresets:`Локальных профилей пока нет`,noSearchResults:`Нет профилей, соответствующих запросу`,badge:`Локальный`,edit:`Изменить`,delete:`Удалить`,cancel:`Отмена`,deleteConfirmTitle:`Удаление профиля`,deleteConfirm:`Удалить этот профиль? Это действие нельзя отменить.`,source:`Источник`,inheritsFrom:`Наследует`,filamentType:`Тип`,vendor:`Производитель`,compatiblePrinters:`Принтеры`,nozzleTemp:`Температура сопла`,cost:`Стоимость`,density:`Плотность`,pressureAdvance:`Опережение давления`,filament:`Филамент`,process:`Процесс`,printer:`Принтер`,toast:{importSuccess:`Импортировано профилей: {{count}}`,importSkipped:`Пропущено дубликатов: {{count}}`,importError:`Ошибок при импорте: {{count}}`,deleted:`Профиль удалён`,updated:`Профиль обновлён`}},connectedAs:`Подключено как`,signInExpiredTitle:`Срок авторизации в Bambu Cloud истёк`,signInExpiredBody:`Bambu Lab больше не принимает сохранённый токен. Выполните вход снова, чтобы восстановить облачные профили, импорт из MakerWorld и проверку прошивок.`,logout:`Выйти`,noLogoutPermission:`У вас нет разрешения выходить из учётной записи`,failedToLoad:`Не удалось загрузить профили`,retry:`Повторить`,time:{justNow:`Только что`,minsAgo:`{{count}} мин назад`,hoursAgo:`{{count}} ч назад`,daysAgo:`{{count}} дн назад`},toast:{loggedOut:`Вы вышли из учётной записи`},login:{title:`Подключение к Bambu Cloud`,subtitle:`Синхронизация профилей слайсера между устройствами`,email:`Электронная почта`,password:`Пароль`,region:`Регион`,regionGlobal:`Глобальный`,regionChina:`Китай`,verificationCode:`Код подтверждения`,totpCode:`Код приложения-аутентификатора`,checkEmail:`Проверьте почту {{email}}: туда отправлен шестизначный код`,enterTotpHint:`Введите шестизначный код из приложения-аутентификатора`,accessToken:`Токен доступа`,accessTokenHint:`Вставьте токен доступа Bambu Cloud. Для учётных записей китайского региона, привязанных к телефону, доступен только этот способ: вход по email не поддерживается. Инструкцию по получению токена из cookie MakerWorld см. в wiki.`,back:`Назад`,loginButton:`Войти`,verifyButton:`Подтвердить`,setTokenButton:`Сохранить токен`,useToken:`Использовать токен доступа`,useEmail:`Войти по email`,toast:{loggedIn:`Вход выполнен`,codeSent:`Код подтверждения отправлен по email`,enterTotp:`Введите код из приложения-аутентификатора`,tokenSet:`Токен сохранён`}},presets:{myPreset:`Мой профиль (редактируемый)`,duplicate:`Создать копию`,editable:`Редактируемый`,failedToLoadDetails:`Не удалось загрузить сведения о профиле`,deleteConfirm:`Удалить этот профиль?`,deleteWarning:`Профиль «{{name}}» будет безвозвратно удалён из Bambu Cloud. Это действие нельзя отменить.`,noDuplicatePermission:`У вас нет разрешения копировать профили`,noEditPermission:`У вас нет разрешения редактировать профили`,noDeletePermission:`У вас нет разрешения удалять профили`,types:{filament:`Профиль филамента`,printer:`Профиль принтера`,process:`Профиль процесса`},toast:{deleted:`Профиль удалён`,created:`Профиль создан`,updated:`Профиль обновлён`,duplicated:`Копия профиля создана`,fieldAdded:`Добавлено поле «{{key}}»`,exported:`Профиль экспортирован`},baseLabel:`Базовый: {{name}}`,currentLabel:`Текущий: {{name}}`,newPreset:`Новый профиль`,editPreset:`Изменение профиля`,duplicatePreset:`Копирование профиля`,createNewPreset:`Создание профиля`,customizeSettings:`Настройте параметры нового профиля`,compareWithBase:`Сравнить с базовым профилем`,compare:`Сравнить`,basePreset:`Базовый профиль`,selectBasePreset:`Выберите базовый профиль...`,presetName:`Название профиля`,myCustomPreset:`Мой профиль`,inheritsFrom:`Наследует от`,dropJsonToImport:`Перетащите JSON для импорта`,tabs:{common:`Основные`,allFields:`Все поля`},availableFields:`Доступные поля`,searchFieldsPlaceholder:`Поиск полей...`,noMatchingFields:`Нет подходящих полей`,allFieldsAdded:`Все поля добавлены`,addCustomField:`Добавить произвольное поле`,yourOverrides:`Ваши переопределения`,noOverridesYet:`Переопределений пока нет`,clickFieldsToAdd:`Нажимайте поля слева, чтобы добавить их`,saveAsTemplate:`Сохранить как шаблон`,jsonTip:`Совет: перетащите файл .json в это окно, чтобы импортировать настройки`},cloudView:{searchPlaceholder:`Поиск профилей...`,templates:`Шаблоны`,refresh:`Обновить`,newPreset:`Новый профиль`,clearFilters:`Сбросить фильтры`,compareMode:`Режим сравнения`,selectAnotherPreset:`Выберите другой профиль типа «{{type}}»`,clickTwoPresets:`Выберите два профиля одного типа для сравнения`,selectFirst:`1. Выберите первый`,selectSecond:`2. Выберите второй`,compareNow:`Сравнить`,lastSynced:`Последняя синхронизация:`,showingCount:`Показано {{showing}} из {{total}} профилей`,noPresetsFound:`Профили не найдены`,columns:{filament:`Филамент`,process:`Процесс`,printer:`Принтер`},noFilamentPresets:`Нет профилей филамента`,noProcessPresets:`Нет профилей процесса`,noPrinterPresets:`Нет профилей принтера`,filters:{type:`Тип`,owner:`Владелец`,printer:`Принтер`,nozzle:`Сопло`,filament:`Филамент`,layer:`Слой`,all:`Все`,myPresets:`Мои профили`,builtIn:`Встроенные`,process:`Процесс`},noTemplatesPermission:`У вас нет разрешения управлять шаблонами`,noRefreshPermission:`У вас нет разрешения обновлять профили`,noCreatePermission:`У вас нет разрешения создавать профили`},templates:{title:`Быстрые шаблоны`,noTemplates:`Шаблонов пока нет`,createFirst:`Создавайте шаблоны в редакторе профилей`,typeFilter:`Тип:`,deleteTitle:`Удаление шаблона`,deleteWarning:`Это действие нельзя отменить`,deleteConfirm:`Удалить шаблон «{{name}}»?`,namePlaceholder:`Название шаблона`,descriptionPlaceholder:`Описание`,settingsJson:`Настройки (JSON)`,fieldsCount:`Полей: {{count}}`,shownInModals:`Показывается в окнах`,hiddenInModals:`Скрыт в окнах`,apply:`Применить`,toast:{deleted:`Шаблон удалён`,updated:`Шаблон обновлён`,created:`Шаблон создан`,applied:`Шаблон применён`}}},support:{debugLoggingActive:`Отладочное журналирование включено`,manageLogs:`Управление`,collectItem7:`Подключение принтеров и версии прошивок`,collectItem8:`Состояние интеграций (Spoolman, MQTT, HA)`,collectItem9:`Сетевые интерфейсы (только подсети)`,collectItem10:`Версии пакетов Python`,collectItem11:`Проверка состояния базы данных`,collectItem12:`Сведения о среде Docker`,bundleGenerating:`Формирование пакета...`,bundleStepConnection:`Проверка подключения принтеров`,bundleStepVirtualPrinters:`Проверка настройки виртуальных принтеров`,bundleStepLogScan:`Поиск известных проблем в последних журналах`,bundleStepBuild:`Создание ZIP-пакета для поддержки`},fileManager:{title:`Файловый менеджер`,subtitle:`Организация и управление файлами для печати`,uploadFiles:`Загрузить файлы`,newFolder:`Новая папка`,folderName:`Имя папки`,folderNamePlaceholder:`например, Функциональные детали`,renameFile:`Переименовать файл`,renameFolder:`Переименовать папку`,invalidFilenameChar:`Символ «{{char}}» нельзя использовать в именах файлов печати. SD-карта принтера не принимает: < > : " / \\ | ? *`,moveFiles:`Переместить файлы ({{count}})`,rootNoFolder:`Корень (без папки)`,current:`текущая`,linkFolder:`Связать папку`,linkFolderDescription:`Связать «{{name}}» с проектом или архивом для быстрого доступа.`,project:`Проект`,archive:`Архив`,noProjectsFound:`Проекты не найдены`,noArchivesFound:`Архивы не найдены`,unlink:`Отвязать`,link:`Связать`,dragDropFiles:`Перетащите файлы сюда`,dropFilesHere:`Перетащите файлы сюда`,releaseToUpload:`Отпустите для загрузки`,orClickToBrowse:`или нажмите для выбора`,allFileTypesSupported:`Поддерживаются все типы файлов. ZIP-архивы будут распакованы.`,zipFilesDetected:`Обнаружены ZIP-архивы`,zipExtractOptions:`ZIP-архивы будут распакованы. Выберите способ обработки структуры папок:`,preserveZipStructure:`Сохранить структуру папок из ZIP`,createFolderFromZip:`Создать папку с именем ZIP-файла`,stlThumbnailGeneration:`Создание миниатюр STL`,zipMayContainStl:`ZIP-архивы могут содержать STL-файлы. Миниатюры можно создать при распаковке.`,thumbnailsCanBeGenerated:`Для STL-файлов можно создать миниатюры. Обработка крупных моделей может занять больше времени.`,generateThumbnailsForStl:`Создать миниатюры для STL-файлов`,threemfDetected:`Обнаружены файлы 3MF`,threemfExtractionInfo:`Модель принтера, материал, цвет и параметры печати будут автоматически извлечены из файлов 3MF.`,willBeExtracted:`Будут извлечены`,filesExtracted:`Извлечено файлов: {{count}}`,uploadComplete:`Загрузка завершена: успешно — {{succeeded}}`,uploadFailed:`Ошибка загрузки`,zipFilesFailed:`Не удалось обработать файлов: {{count}}`,uploading:`Загрузка...`,changeLink:`Изменить связь...`,linkTo:`Связать с...`,linkToProjectOrArchive:`Связать с проектом или архивом`,generateThumbnail:`Создать миниатюру`,generateThumbnails:`Создать миниатюры`,generateThumbnailsForMissing:`Создать отсутствующие миниатюры для STL-файлов`,gridView:`Плитка`,listView:`Список`,lowDiskSpaceWarning:`Мало свободного места`,lowDiskSpaceDetails:`Свободно только {{free}} из {{total}}. Порог предупреждения в настройках: {{threshold}} ГБ.`,files:`Файлы`,folders:`Папки`,size:`Размер`,free:`Свободно`,allFiles:`Все файлы`,allExternal:`Внешние`,externalIsEmpty:`Внешних файлов нет`,externalEmptyDescription:`Здесь появятся файлы из подключённых внешних папок.`,wrap:`Перенос строк`,enableTextWrapping:`Включить перенос строк`,disableTextWrapping:`Отключить перенос строк`,collapse:`Свернуть`,collapseFoldersByDefault:`Сворачивать папки по умолчанию`,expandFoldersByDefault:`Разворачивать папки по умолчанию`,folderSort:`Сортировка папок`,folderSortByName:`По имени`,folderSortByActivity:`По последней активности`,dragToResizeTooltip:`Перетащите для изменения размера, двойной щелчок — сброс`,searchFiles:`Поиск файлов...`,searchSubfoldersHint:`С учётом вложенных папок`,readme:{truncated:`Показано не полностью`,show:`Показать README`,hide:`Скрыть README`,label:`README`},tags:{title:`Метки`,subtitle:`Помечайте файлы для сквозной фильтрации: игрушки, безопасно для детей, только PETG и что угодно ещё.`,manage:`Метки`,manageTitle:`Управление каталогом меток`,add:`Новая метка`,edit:`Переименовать метку`,name:`Название`,fileCount:`Файлы`,empty:`Меток пока нет. Создайте первую, чтобы начать помечать файлы.`,noMatches:`Подходящие метки не найдены.`,createPlaceholder:`например, игрушки, детям, petg`,createButton:`Создать`,nameRequired:`Укажите название.`,searchPlaceholder:`Фильтр меток...`,created:`Метка создана.`,updated:`Метка переименована.`,deleted:`Метка удалена.`,saveFailed:`Не удалось сохранить метку.`,deleteFailed:`Не удалось удалить метку.`,applyFailed:`Не удалось применить метки.`,applyAdd:`Добавить метки`,applyRemove:`Удалить метки`,applyAddSuccess:`Добавлено меток: {{count}}; обработано файлов: {{files}}.`,applyRemoveSuccess:`Удалено меток: {{count}}; обработано файлов: {{files}}.`,actionAdd:`Добавить к выбранным файлам`,actionRemove:`Удалить с выбранных файлов`,tagAction:`Метки`,bulkTitle:`Метки для выбранных файлов ({{count}})`,bulkTooltip:`Добавить или удалить метки у всех выбранных файлов.`,noPermission:`У вас нет прав на изменение меток файлов.`,filterLabel:`Фильтр по меткам:`,clearAll:`Очистить всё`,confirmDelete:`Удалить метку «{{name}}»?`,confirmDeleteMessage:`Метка будет удалена из каталога. Остальные метки файлов сохранятся.`,confirmDeleteInUseMessage:`Эта метка назначена файлам ({{count}}). При удалении метка исчезнет у всех файлов; сами файлы не изменятся.`,editAria:`Изменить {{name}}`,deleteAria:`Удалить {{name}}`},allTypes:`Все типы`,prints:`Файлы печати`,ascending:`По возрастанию`,descending:`По убыванию`,showModified:`Показать даты изменения`,hideModified:`Скрыть даты изменения`,lastModified:`Изменено`,lastActivity:`Последняя активность`,resultsCount:`Показано {{showing}} из {{total}} файлов`,selectAll:`Выбрать всё`,deselectAll:`Снять выделение`,selected:`Выбрано: {{count}}`,adding:`Добавление...`,loadingFiles:`Загрузка файлов...`,folderIsEmpty:`Папка пуста`,noFilesYet:`Файлов пока нет`,folderEmptyDescription:`Загрузите или переместите файлы в эту папку.`,noFilesDescription:`Загрузите файлы, чтобы начать упорядочивать материалы для печати.`,noMatchingFiles:`Подходящие файлы не найдены`,noMatchingFilesDescription:`Нет файлов, соответствующих текущему поиску или фильтрам.`,clearFilters:`Сбросить фильтры`,printedCount:`Напечатано: {{count}}×`,uploadedBy:`Загрузил`,deleteFolder:`Удалить папку`,deleteFile:`Удалить файл`,deleteFilesCount:`Удалить файлы ({{count}})`,deleteFolderConfirm:`Удалить эту папку? Все находящиеся в ней файлы также будут удалены.`,deleteFileConfirm:`Удалить этот файл?`,deleteFilesConfirm:`Удалить выбранные файлы ({{count}})? Это действие нельзя отменить.`,deleting:`Удаление...`,noPermissionRenameFolder:`У вас нет прав на переименование папок`,noPermissionLinkFolder:`У вас нет прав на связывание папок`,noPermissionDeleteFolder:`У вас нет прав на удаление папок`,onlyEmptyFoldersDeletable:`Вы можете удалять только пустые папки`,noPermissionPrint:`У вас нет прав на запуск печати`,noPermissionAddToQueue:`У вас нет прав на добавление в очередь`,noPermissionSlice:`У вас нет прав на нарезку файлов`,noPermissionDownload:`У вас нет прав на скачивание файлов`,noPermissionRenameFile:`У вас нет прав на переименование этого файла`,noPermissionGenerateThumbnail:`У вас нет прав на создание миниатюр`,noPermissionDeleteFile:`У вас нет прав на удаление этого файла`,noPermissionCreateFolder:`У вас нет прав на создание папок`,noPermissionUpload:`У вас нет прав на загрузку файлов`,noPermissionMoveFiles:`У вас нет прав на перемещение файлов`,noPermissionDeleteFiles:`У вас нет прав на удаление файлов`,linkExternal:`Подключить внешнюю папку`,linkExternalFolder:`Подключить внешнюю папку`,linkExternalFolderDescription:`Подключить каталог хоста (NAS, USB-накопитель или сетевой ресурс) к файловому менеджеру. Файлы не копируются — Bambuddy обращается к ним по исходному пути.`,externalFolderNamePlaceholder:`например, Модели на NAS`,externalPath:`Путь на хосте`,externalPathHelp:`Абсолютный путь к каталогу на хосте Docker. Каталог должен быть подключён к контейнеру через bind mount.`,readOnly:`Только чтение`,readOnlyHelp:`запрещает загрузку и удаление файлов`,showHiddenFiles:`Показывать скрытые файлы (dotfiles)`,externalFolder:`Внешняя папка`,scanFolder:`Сканировать`,toast:{folderCreated:`Папка создана`,folderDeleted:`Папка удалена`,fileDeleted:`Файл удалён`,filesDeleted:`Удалено файлов: {{count}}`,filesMoved:`Файлы перемещены`,folderLinked:`Папка связана`,folderUnlinked:`Связь с папкой удалена`,externalFolderLinked:`Внешняя папка подключена и просканирована`,folderScanned:`Сканирование завершено: добавлено — {{added}}, удалено — {{removed}}`,addedToQueue:`Добавлено в очередь файлов: {{count}}`,addedToQueuePartial:`Добавлено файлов: {{added}}, ошибок: {{failed}}`,failedToAddToQueue:`Не удалось добавить файлы: {{error}}`,fileRenamed:`Файл переименован`,folderRenamed:`Папка переименована`,thumbnailsGenerated:`Создано миниатюр: {{count}}`,thumbnailsGeneratedPartial:`Создано миниатюр: {{succeeded}}, ошибок: {{failed}}`,noStlMissingThumbnails:`Нет STL-файлов без миниатюр`,failedToGenerateThumbnails:`Не удалось создать миниатюры: {{error}}`,thumbnailGenerated:`Миниатюра создана`,failedToGenerateThumbnail:`Не удалось создать миниатюру: {{error}}`}},projects:{title:`Проекты`,subtitle:`Организация и отслеживание проектов 3D-печати`,newProject:`Новый проект`,editProject:`Изменить проект`,deleteProject:`Удалить проект`,projectName:`Название проекта`,description:`Описание`,noProjects:`Проектов пока нет`,noProjectsFiltered:`Нет проектов со статусом «{{status}}»`,noProjectsFilteredHelp:`У вас нет проектов со статусом «{{status}}». Они появятся здесь после изменения статуса.`,createFirst:`Создайте первый проект, чтобы объединять связанные печати, отслеживать ход работ и управлять сборкой.`,createFirstButton:`Создать первый проект`,create:`Создать`,files:`Файлы`,prints:`Печати`,plates:`пластин`,parts:`деталей`,lastModified:`Последнее изменение`,deleteConfirm:`Удалить этот проект? Архивные записи и элементы очереди будут отвязаны, но не удалены.`,addFiles:`Добавить файлы`,removeFile:`Убрать файл`,viewDetails:`Подробнее`,namePlaceholder:`например, Сборка Voron 2.4`,descriptionPlaceholder:`Необязательное описание...`,urlLabel:`URL`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`URL должен начинаться с http:// или https://`,openExternalUrl:`Открыть страницу проекта`,coverImageLabel:`Обложка`,coverImageAlt:`Обложка проекта`,coverImageUpload:`Загрузить`,coverImageReplace:`Заменить`,coverImageRemove:`Удалить`,color:`Цвет`,targetPlates:`План по пластинам`,targetPlatesPlaceholder:`например, 25`,targetPlatesHelp:`Количество заданий печати`,targetParts:`План по деталям`,targetPartsPlaceholder:`например, 150`,targetPartsHelp:`Общее требуемое количество объектов`,targetSets:`Копий на файл`,targetSetsPlaceholder:`напр. 10`,targetSetsHelp:`Сколько раз нужно напечатать каждый печатаемый файл`,tagsLabel:`Метки (через запятую)`,tagsPlaceholder:`например, voron, функциональное, подарок`,dueDate:`Срок`,priority:`Приоритет`,priorityLow:`Низкий`,priorityNormal:`Обычный`,priorityHigh:`Высокий`,priorityUrgent:`Срочный`,statusActive:`Активный`,statusCompleted:`Завершён`,statusArchived:`В архиве`,done:`Готово`,completed:`завершено`,failed:`ошибка`,inQueue:`в очереди`,noPrintsYet:`Печатей пока нет`,printJobs:`Задания печати (пластины)`,partsPrinted:`Напечатано деталей`,failedParts:`Неудачных деталей`,import:`Импорт`,export:`Экспорт`,importProject:`Импортировать проект`,exportAll:`Экспортировать все проекты`,loading:`Загрузка проектов...`,noEditPermission:`У вас нет прав на изменение проектов`,noDeletePermission:`У вас нет прав на удаление проектов`,noCreatePermission:`У вас нет прав на создание проектов`,noImportPermission:`У вас нет прав на импорт проектов`,noExportPermission:`У вас нет прав на экспорт проектов`,toast:{created:`Проект создан`,updated:`Проект обновлён`,deleted:`Проект удалён`,imported:`Проект импортирован`,multipleImported:`Импортировано проектов: {{count}}`,importFailed:`Не удалось импортировать проект`,exported:`Проекты экспортированы (только метаданные)`}},projectDetail:{notFound:`Проект не найден`,backToProjects:`Вернуться к проектам`,export:`Экспорт`,exportProject:`Экспортировать проект`,noExportPermission:`У вас нет прав на экспорт проектов`,noEditPermission:`У вас нет прав на изменение проектов`,partOf:`Входит в:`,priorityLabel:`Приоритет:`,noPrints:`В этом проекте пока нет печатей`,status:{active:`Активный`,completed:`Завершён`,archived:`В архиве`},priority:{low:`Низкий`,normal:`Обычный`,high:`Высокий`,urgent:`Срочный`},dueDate:{overdue:`Срок истёк`,today:`Срок сегодня`,daysLeft:`Осталось дней: {{count}}`},progress:{platesProgress:`Выполнение по пластинам`,partsProgress:`Выполнение по деталям`,setsProgress:`Полные комплекты`,sets:`комплектов`,setsHint:`Комплект готов, когда каждый печатаемый файл достиг этого количества`,printJobs:`заданий печати`,parts:`деталей`,percentComplete:`Выполнено {{percent}}%`,remaining:`Осталось: {{count}}`},stats:{printJobs:`Задания печати`,total:`всего`,failed:`Неудачных: {{count}}`,partsPrinted:`Напечатано деталей: {{count}}`,printTime:`Время печати`,filamentUsed:`Израсходовано филамента`},cost:{title:`Учёт стоимости`,filamentCost:`Стоимость филамента`,energy:`Электроэнергия`,totalCost:`Общая стоимость`,total:`Итого`,includesBom:`включая спецификацию`,budget:`Бюджет`,remaining:`Остаток`},subProjects:{title:`Подпроекты ({{count}})`},notes:{title:`Заметки`,noEditPermission:`У вас нет прав на изменение заметок`,placeholder:`Добавьте заметки о проекте...`,empty:`Заметок пока нет. Нажмите «Изменить», чтобы добавить.`},files:{title:`Файлы`,linkFolders:`Свяжите папки из файлового менеджера`,forQuickAccess:`с этим проектом для быстрого доступа.`,fileCount:`Файлов: {{count}}`,empty:`Связанных папок нет. Откройте файловый менеджер и свяжите папку с проектом.`,printedCount:`Напечатано {{count}} раз`,progressTooltip:`{{done}} из {{target}} завершённых печатей`,noFiles:`В этой папке нет файлов.`},bom:{title:`Спецификация`,acquired:`Приобретено: {{completed}}/{{total}}`,showAll:`Показать всё`,hideDone:`Скрыть готовое`,addPart:`Добавить позицию`,noAddPermission:`У вас нет прав на добавление позиций`,partNamePlaceholder:`Название позиции (например, винты M3×8)`,partName:`Название позиции`,qty:`Кол-во`,price:`Цена ({{currency}})`,sourcingUrlPlaceholder:`Ссылка на поставщика (необязательно)`,remarksPlaceholder:`Примечание (необязательно)`,deletePart:`Удалить позицию`,deleteConfirm:`Удалить «{{name}}»?`,noUpdatePermission:`У вас нет прав на обновление позиций`,noEditPermission:`У вас нет прав на изменение позиций`,noDeletePermission:`У вас нет прав на удаление позиций`,totalCost:`Общая стоимость:`,empty:`В спецификации пока нет позиций. Добавьте крепёж, электронику и другие компоненты, закупку которых нужно отслеживать.`},timeline:{title:`Хронология активности`,empty:`Активности пока нет.`},template:{saveAsTemplate:`Сохранить как шаблон`,noCreatePermission:`У вас нет прав на создание шаблонов`},queue:{title:`Очередь`,viewAll:`Показать всё`,printing:`Печатается: {{count}}`,queued:`В очереди: {{count}}`},prints:{title:`Печати ({{count}})`},toast:{projectUpdated:`Проект обновлён`,partAdded:`Позиция добавлена`,partRemoved:`Позиция удалена`,exportFailed:`Не удалось экспортировать`,projectExported:`Проект экспортирован`,templateCreated:`Шаблон создан`}},system:{title:`Информация о системе`,version:`Версия`,uptime:`Время работы`,cpuUsage:`Загрузка процессора`,memoryUsage:`Использование памяти`,diskUsage:`Использование диска`,networkInfo:`Сетевая информация`,logs:`Журналы`,debugMode:`Режим отладки`,enableDebug:`Включить журналирование отладки`,disableDebug:`Отключить журналирование отладки`,downloadLogs:`Скачать журналы`,clearLogs:`Очистить журналы`,dockerInfo:`Информация о Docker`,containerName:`Имя контейнера`,imageName:`Имя образа`,platform:`Платформа`,architecture:`Архитектура`},sponsors:{sectionTitle:`Независимый проект на поддержке сообщества`,tagline:`Bambuddy бесплатен и остаётся таким благодаря добровольной поддержке пользователей. Без венчурного капитала и привязки к облаку.`,viewSupporters:`Посмотреть сторонников проекта`,toastPrints:`С Bambuddy выполнено печатей: {{count}}. Проект остаётся бесплатным благодаря поддержке сообщества.`,toastCost:`С помощью Bambuddy учтено филамента на сумму {{total}}. Посмотрите, кто помогает проекту оставаться независимым.`,toastArchives:`С Bambuddy архивировано печатей: {{count}}. Посмотрите, кто помогает проекту оставаться независимым.`,toastAnniversary:`Вы уже год с Bambuddy! Посмотрите, кто помогает проекту оставаться независимым.`,toastVersionUpdate:`Обновлено до версии {{version}}. Bambuddy остаётся бесплатным благодаря поддержке сообщества.`,toastBusiness:`Используете Bambuddy для {{count}} принтеров? Для команд доступен план поддержки с приоритетным исправлением ошибок, выставлением счетов и прямой связью с разработчиком.`,businessCta:`Bambuddy для бизнеса`,businessTitle:`Bambuddy для бизнеса`,businessTagline:`Вы используете {{count}} принтеров. Для команд и печатных ферм доступны приоритетная поддержка, коммерческая лицензия и выставление счетов.`},library:{title:`Библиотека филаментов`,addFilament:`Добавить филамент`,editFilament:`Изменить филамент`,deleteFilament:`Удалить филамент`,vendor:`Производитель`,material:`Материал`,color:`Цвет`,kFactor:`Коэффициент K`,temperature:`Температура`,noFilaments:`В библиотеке нет филаментов`,deleteConfirm:`Удалить этот филамент?`,importFromPrinter:`Импортировать с принтера`,exportToFile:`Экспортировать в файл`,runWithPipeline:{actionLabel:`Запустить через конвейер`,noPermission:`У вас нет прав на запуск конвейеров`,modalTitle:`Запуск через конвейер`,confirmTitle:`Подтверждение запуска`,confirmIntro:`Предварительная проверка обнаружила проблемы`,sourceHint:`Источник`,pipelineHint:`Конвейер`,targetHint:`Назначение`,pipelineListAria:`Доступные конвейеры`,runAnyway:`Всё равно запустить`,loading:`Загрузка…`,empty:`Сохранённых конвейеров пока нет. Откройте диалог нарезки и нажмите «Сохранить как конвейер».`,noTarget:`Целевой принтер не задан`,noTargetMessage:`Для этого конвейера не задан целевой принтер. Откройте его в настройках и выберите принтер.`,copies:`Копии`,copiesHint:`макс. {{n}}`,classTarget:`Любой {{model}}`,toast:{started:`Конвейер запущен`,failed:`Не удалось запустить конвейер`},issue:{printerNotSet:`Для этого конвейера не задан целевой принтер.`,printerNotFound:`Целевой принтер больше не существует.`,printerDisabled:`Целевой принтер отключён.`,printerOffline:`Целевой принтер не в сети.`,filamentType:`Слот филамента {{slot}}: ожидается {{expected}}, в AMS установлен {{actual}}`,filamentColor:`Слот филамента {{slot}}: цвет отличается (ожидается {{expected}}, в AMS установлен {{actual}})`,amsSlotMissing:`Слот AMS {{slot}} недоступен на этом принтере`,filamentUnverified:`Филамент в слоте {{slot}} выбран из облачного или стандартного профиля и не может быть проверен заранее.`,noClassMatches:`Ни один принтер в этой установке не соответствует целевому классу модели конвейера ({{expected}}).`,classNotSet:`В качестве цели конвейера выбран класс принтера, но модель не указана.`}}},slice:{title:`Нарезка модели`,action:`Нарезать`,actionAll:`Нарезать все пластины ({{count}})`,actionAllTitle:`Нарезать все пластины в один многостольный результат и сохранить в одном архиве. Выбор филаментов охватывает все слоты, используемые проектом.`,allPlatesToggle:`Нарезать все пластины ({{count}})`,slicing:`Нарезка…`,printer:`Профиль принтера`,process:`Профиль процесса`,filament:`Профиль филамента`,filamentSlot:`Филамент {{index}} ({{type}})`,selectPreset:`— Выберите профиль —`,loadingPresets:`Загрузка профилей…`,analyzingPlateFilaments:`Анализ филаментов пластины…`,analyzingPlateFilamentsHint:`Выполняется предварительная нарезка, чтобы определить, какие слоты AMS используются на этой пластине. Результат кэшируется, поэтому повторное открытие будет мгновенным.`,previewToast:`Анализ {{name}} — {{elapsed}}`,previewWithProgress:`Анализ {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,notUsedByPlate:`— не используется на этой пластине`,noPresetsForSlot:`Нет доступных профилей`,otherPrinters:`Другие принтеры`,presetsLoadFailed:`Не удалось загрузить профили. Сначала импортируйте их в разделе «Настройки → Профили».`,refreshPresets:`Обновить`,refreshPresetsTitle:`Обновить профили — получить свежие облачные и встроенные списки. Используйте после удаления профиля в Bambu Studio или Bambu Handy.`,allPresetsRequired:`Необходимо выбрать все профили`,useEmbedded:`Использовать встроенные настройки файла`,useEmbeddedHint:`Нарезать так, как задумал автор модели (стенки, заполнение, филамент), вместо профилей выше. Доступно, потому что ваш принтер совпадает с указанным в файле.`,designSettings:`Сохранить настройки автора`,designSettingsHint:`Этот файл меняет {{count}} настроек печати по сравнению со стандартным профилем.`,designSettingsSelected:`Выбрано {{selected}} из {{total}}`,designSettingsPrinterCoupled:`зависит от принтера`,designSettingsPrinterCoupledHint:`Значение подобрано для принтера, под который создан файл, — на вашем оно может быть неверным или вне допустимого диапазона.`,enqueuing:`Отправка задания на нарезку…`,queued:`В очереди…`,failed:`Ошибка нарезки. Проверьте журналы вспомогательного сервиса слайсера.`,startedToast:`Фоновая нарезка {{name}}…`,queuedToast:`В очереди: {{name}} — {{elapsed}}`,runningToast:`Нарезка {{name}} — {{elapsed}}`,runningWithProgress:`{{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,runningWithProgressMultiPlate:`Пластина {{plateIndex}} из {{plateCount}} • {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,completedToast:`Нарезка {{name}} завершена`,failedTitle:`Ошибка нарезки`,failedToast:`Не удалось нарезать {{name}}: {{detail}}`,tier:{local:`Импортированные`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`Стандартные`},cloud:{notAuthenticated:`Войдите в Bambu Cloud («Настройки → Профили → Bambu Cloud»), чтобы увидеть облачные профили.`,expired:`Сессия Bambu Cloud истекла. Войдите снова, чтобы обновить облачные профили.`,unreachable:`Bambu Cloud сейчас недоступен. Локальные и стандартные профили продолжат работать.`},orcaCloud:{notAuthenticated:`Войдите в Orca Cloud («Профили → Orca Cloud»), чтобы увидеть профили Orca.`,expired:`Сессия Orca Cloud истекла. Войдите снова, чтобы обновить профили Orca.`,unreachable:`Orca Cloud сейчас недоступен. Остальные профили продолжат работать.`},bedType:{label:`Печатная пластина`,auto:`Авто (из профиля процесса)`,coolPlate:`Холодная пластина`,coolPlateSuperTack:`Холодная пластина SuperTack`,engineering:`Инженерная пластина`,highTemp:`Высокотемпературная пластина`,texturedPEI:`Текстурированная PEI-пластина`,smoothPEI:`Гладкая PEI-пластина`},pipelines:{label:`Конвейер`,applyAria:`Применить конвейер`,applyPrompt:`Применить конвейер…`,empty:`Нет сохранённых конвейеров`,saveButton:`Сохранить как конвейер`,saveTitle:`Сохранить текущий набор из четырёх профилей как повторно используемый конвейер`,namePlaceholder:`Название конвейера`,nameAria:`Название нового конвейера`,toast:{applied:`Применён конвейер «{{name}}»`,saved:`Конвейер сохранён`,saveFailed:`Не удалось сохранить`}}},spoolman:{title:`Интеграция со Spoolman`,enabled:`Spoolman включён`,url:`URL Spoolman`,connected:`Подключено`,disconnected:`Нет подключения`,testConnection:`Проверить подключение`,sync:`Синхронизировать`,syncing:`Синхронизация…`,lastSync:`Последняя синхронизация`,linkToSpoolman:`Связать со Spoolman`,openInSpoolman:`Открыть в Spoolman`,unlinkSpool:`Отвязать катушку`,unlinkConfirmTitle:`Снять назначение катушки?`,unlinkConfirmMessage:`Катушка будет удалена из этого слота. Данные самой катушки останутся без изменений.`,selectSpool:`Выбрать катушку`,noUnlinkedSpools:`Нет свободных катушек`,linkSuccess:`Катушка успешно назначена`,linkFailed:`Не удалось назначить катушку`,unlinkSuccess:`Назначение катушки снято`,unlinkFailed:`Не удалось снять назначение катушки`,linkedSpool:`Назначенная катушка`,spoolId:`ID катушки`,fillSourceLabel:`(Spoolman)`,weight:`Масса`,remaining:`Остаток`,disableWeightSync:`Отключить синхронизацию расчётной массы AMS`,disableWeightSyncDesc:`Не обновлять остаток по оценке AMS. Используйте это, если предпочитаете учёт расхода Spoolman процентной оценке AMS. Для новых катушек оценка AMS всё равно будет использована как начальная масса.`,reportPartialUsage:`Учитывать частичный расход при неудачной печати`,reportPartialUsageDesc:`Если печать завершилась ошибкой или была отменена, учитывать примерный расход филамента до этого момента по прогрессу слоёв.`},locations:{title:`Места хранения`,subtitle:`Управление полками, ящиками и другими физическими местами хранения катушек`,add:`Добавить место`,addShort:`Добавить`,edit:`Изменить место`,name:`Название`,spools:`Катушки`,empty:`Мест хранения пока нет. Создайте первую полку или ящик.`,manage:`Места хранения`,createPlaceholder:`например, Полка A или Ящик 1`,nameRequired:`Укажите название места хранения`,created:`Место хранения создано`,updated:`Место хранения обновлено`,deleted:`Место хранения удалено`,saveFailed:`Не удалось сохранить место хранения`,deleteFailed:`Не удалось удалить место хранения`,deleteBlocked:`Перед удалением переместите из этого места все катушки`,confirmDelete:`Удалить «{{name}}»?`,confirmDeleteMessage:`Это место будет удалено из каталога. Сначала необходимо переместить все катушки.`},inventory:{title:`Учёт катушек`,subtitle:`Управление катушками`,addToInventory:`Добавить в учёт`,addToInventoryPending:`Добавление…`,addToInventorySuccess:`Катушка добавлена в учёт`,addToInventoryFailed:`Не удалось добавить катушку в учёт`,unknownSpoolTitle:`Обнаружен новый филамент`,unknownSpoolMessage:`В {{location}} обнаружена катушка с неизвестной RFID-меткой. Добавить её в учёт?`,unknownSpoolSlot:`Слот`,bulk:{selectAllVisible:`Выбрать все видимые`,selectRow:`Выбрать строку`,selectGroup:`Выбрать группу`,selectionCount:`Выбрано: {{count}}`,edit:`Изменить`,printLabels:`Печать этикеток`,resetUsage:`Сбросить расход`,restore:`Восстановить`,archive:`Архивировать`,delete:`Удалить`,clearSelection:`Снять выделение`,editTitle:`Массовое изменение катушек`,editSubtitle:`Изменения применятся к {{count}} выбранным катушкам. Обновятся только отмеченные поля.`,editHint:`Введите значение в поле, чтобы включить его обновление. Будут отправлены только отмеченные строки. Пустое поле не изменяет катушки; очистить значение можно только при редактировании отдельной катушки.`,useCustom:`Использовать «{{value}}»`,toggleField:`Включить или отключить обновление этого поля`,changeCount:`Будет обновлено полей: {{count}}.`,applyPending:`Применение…`,applyButton:`Применить к {{count}} катушкам`,deleteTitle:`Удалить выбранные катушки`,archiveTitle:`Архивировать выбранные катушки`,restoreTitle:`Восстановить выбранные катушки`,resetUsageTitle:`Сбросить расход выбранных катушек`,deleteMessage:`Безвозвратно удалить {{count}} катушек? Это действие нельзя отменить.`,archiveMessage:`Архивировать {{count}} катушек? Позже их можно будет восстановить.`,restoreMessage:`Восстановить {{count}} архивных катушек?`,resetUsageMessage:`Сбросить счётчик «Израсходовано всего» у {{count}} катушек? Текущий остаток массы сохранится.`,updateSuccess:`Обновлено катушек: {{count}}`,updateFailed:`Ошибка массового обновления`,updatePartial:`Обновлено: {{ok}}, с ошибкой: {{failed}}`,updateAllFailed:`Не удалось обновить все {{count}} катушек. Выделение сохранено для повторной попытки.`,deleteSuccess:`Удалено катушек: {{count}}`,deleteFailed:`Ошибка массового удаления`,deletePartial:`Удалено: {{ok}}, с ошибкой: {{failed}}`,deleteAllFailed:`Не удалось удалить все {{count}} катушек. Выделение сохранено для повторной попытки.`,archiveSuccess:`Архивировано катушек: {{count}}`,archiveFailed:`Ошибка массового архивирования`,archivePartial:`Архивировано: {{ok}}, с ошибкой: {{failed}}`,archiveAllFailed:`Не удалось архивировать все {{count}} катушек. Выделение сохранено для повторной попытки.`,restoreSuccess:`Восстановлено катушек: {{count}}`,restoreFailed:`Ошибка массового восстановления`,restorePartial:`Восстановлено: {{ok}}, с ошибкой: {{failed}}`,restoreAllFailed:`Не удалось восстановить все {{count}} катушек. Выделение сохранено для повторной попытки.`,invalidHex:`Введите 6 шестнадцатеричных символов (RRGGBB) или 8 (RRGGBBAA), иначе поле не будет применено.`},spoolmanMixedContentTitle:`Spoolman не загружается через HTTPS: браузер заблокировал смешанное содержимое`,spoolmanMixedContentBody:`Bambuddy открыт через HTTPS (через обратный прокси), а URL Spoolman всё ещё использует обычный HTTP. Браузер блокирует такое смешанное содержимое, поэтому встроенный интерфейс Spoolman не отображается. Для работы Spoolman должен быть доступен по HTTPS.`,spoolmanMixedContentFixReverseProxy:`Разместите Spoolman за тем же обратным прокси, что и Bambuddy (Traefik / Nginx / Caddy), включите HTTPS и укажите новый HTTPS-адрес Spoolman в настройках.`,spoolmanMixedContentFixOpenNewTab:`В качестве обходного решения откройте Spoolman по HTTP в новой вкладке. Ограничение смешанного содержимого действует только для встроенных фреймов.`,spoolmanOpenInNewTab:`Открыть Spoolman в новой вкладке`,labels:{title:`Печать этикеток катушек`,selectedCount:`Выбрано: {{count}}`,pickSpools:`Выберите катушки для печати этикеток:`,monochrome:`Монохромный режим (чёрно-белый принтер)`,monochromeHint:`Убирает образец цвета и расширяет область текста`,searchPlaceholder:`Поиск по названию, бренду или #ID`,filterByMaterial:`Материал:`,allMaterials:`Все`,selectVisible:`Выбрать все видимые ({{count}})`,deselectVisible:`Снять выделение с видимых`,clearAll:`Очистить выбор`,noSpoolsToShow:`Нет катушек для отображения. Измените фильтр и повторите попытку.`,noMatches:`Нет катушек, соответствующих поиску или фильтру.`,printOne:`Напечатать этикетку этой катушки`,printLabels:`Печать этикеток…`,bulkTitle:`Выберите катушки для печати этикеток из {{count}} отображаемых`,noSpoolsTitle:`Нет катушек для печати этикеток`,error:`Не удалось создать этикетки: {{msg}}`,sortBy:{label:`Сортировка:`,id:`По ID`,color:`По цвету`},templates:{amsHolderSmall:{label:`Держатель AMS — малый (74 × 33 мм)`,hint:`Одна этикетка на страницу; соответствует печатной этикетке для модели MakerWorld 752566 (AMS Filament Label Holder).`},amsHolderLarge:{label:`Держатель AMS — большой (75 × 55 мм)`,hint:`Одна этикетка на страницу; подходит для варианта держателя AMS с картонной вставкой. Достаточно места для образца цвета, бренда, материала, ID и QR-кода.`},box40x30:{label:`Этикетка для коробки (40 × 30 мм)`,hint:`Одна этикетка на страницу; распространённый размер рулона DK/Brother, подходит для пакетов с филаментом и контейнеров хранения.`},box:{label:`Этикетка для коробки (62 × 29 мм)`,hint:`Одна этикетка на страницу; размер для малых этикеток Brother PT/QL и Dymo.`},averyL7160:{label:`Avery L7160 — лист A4 (38,1 × 63,5 мм × 21)`,hint:`Европейский формат: 21 этикетка на листе A4.`},avery5160:{label:`Avery 5160 — лист US Letter (25,4 × 66,7 мм × 30)`,hint:`Американский формат: 30 этикеток на листе Letter.`}}},csv:{importButton:`Импорт CSV`,exportButton:`Экспорт CSV`,modalTitle:`Импорт катушек из CSV`,selectFile:`Выберите CSV-файл или перетащите его сюда`,dragHint:`Заголовок: material (обязательно), brand, subtype, color_name, rgba, …`,parsing:`Чтение файла…`,previewError:`Не удалось прочитать CSV-файл`,validCount:`Корректных: {{count}}`,errorCount:`Ошибок: {{count}}`,skippedCount:`Пропущено: {{count}}`,colRow:`Строка`,colStatus:`Состояние`,colColor:`Цвет`,colorResolved:`Цвет подставлен из каталога`,colorCrossMaterial:`Цвет взят у другого материала: точного совпадения в каталоге нет`,duplicateExisting:`Катушка с таким материалом, брендом и цветом уже существует, но запись всё равно будет импортирована как новая катушка`,spoolmanHint:`В режиме Spoolman используйте встроенный импорт и экспорт CSV в Spoolman.`,importValidRows:`Импортировать {{count}} корректных строк`,noValidRows:`Нет корректных строк`,importing:`Импорт…`,importSuccess:`Импортировано катушек: {{count}}`,importError:`Ошибка импорта`,exportError:`Ошибка экспорта`},addSpool:`Добавить катушку`,editSpool:`Изменить катушку`,copySpool:`Копировать катушку`,material:`Материал`,selectMaterial:`Выберите материал…`,subtype:`Подтип`,brand:`Бренд`,searchBrand:`Поиск бренда…`,useCustomBrand:`Использовать «{{brand}}»`,useCustomMaterial:`Использовать свой материал: {{material}}`,suggestedOptions:`Рекомендуемые`,allOptions:`Все`,colorName:`Название цвета`,colorNamePlaceholder:`Jade White, Fire Red…`,color:`Цвет`,hexColor:`Цвет HEX`,pickColor:`Выбрать свой цвет`,labelWeight:`Номинальная масса`,coreWeight:`Масса пустой катушки`,searchSpoolWeight:`Поиск массы катушки…`,weightUsed:`Израсходовано`,currentWeight:`Остаток массы`,measuredWeight:`Измеренная масса`,spoolName:`Катушка`,costPerKg:`Стоимость за кг`,storageLocation:`Место хранения`,storageLocationPlaceholder:`например, Полка A, Ящик 1`,openInInventory:`Открыть в учёте`,measuredWeightError:`Измеренная масса должна быть от {{min}} до {{max}} г.`,slicerFilament:`Филамент слайсера`,slicerFilamentName:`Название пресета слайсера`,slicerPreset:`Пресет слайсера`,searchPresets:`Поиск пресетов филамента…`,selectedPreset:`Выбрано`,noPresetsFound:`Пресеты не найдены`,tempOverrides:`Переопределение температур`,note:`Примечание`,notePlaceholder:`Дополнительные сведения об этой катушке…`,category:`Категория`,categoryPlaceholder:`например, Производство, Прототип, Клиент A`,categoryNone:`Без категории`,storageLocationNone:`Место не указано`,lowStockThresholdOverride:`Порог малого остатка (эта катушка)`,lowStockThresholdOverrideHelp:`Оставьте пустым, чтобы использовать общий порог ({{global}}%).`,clearRfid:`Очистить RFID-метку`,rfidCleared:`RFID-метка очищена`,archive:`Архивировать`,restore:`Восстановить`,noSpools:`Катушек пока нет. Добавьте первую катушку.`,noAvailableSpools:`Нет доступных катушек. Добавьте катушку в учёт или сначала освободите её в другом слоте.`,kProfiles:`K-профили`,addKProfile:`Добавить K-профиль`,assignSpool:`Назначить катушку`,unassignSpool:`Снять назначение`,assignSuccess:`Катушка назначена, слот AMS настроен`,assignPendingInsert:`Катушка назначена. Слот будет настроен после её установки.`,assignFailed:`Не удалось назначить катушку`,selectSpool:`Выберите катушку для назначения этому слоту`,assigned:`Назначено`,assigning:`Назначение…`,searchSpools:`Поиск катушек…`,showAllSpools:`Показать все катушки`,spoolmanSpools:`Катушки Spoolman`,allMaterials:`Все материалы`,filterByBrand:`Фильтр по бренду…`,showArchived:`Показывать архивные`,quickAdd:`Быстрое добавление`,quantity:`Количество`,stock:`На складе`,configured:`Настроено`,spoolsCreated:`Создано катушек: {{count}}`,spoolsPartiallyCreated:`Создано {{created}} из {{total}} катушек; часть операций завершилась ошибкой`,spoolCreated:`Катушка создана`,spoolUpdated:`Катушка обновлена`,spoolDeleted:`Катушка удалена`,deepLinkSpoolNotFound:`Катушка не найдена`,deepLinkFetchFailed:`Не удалось загрузить катушку. Повторите попытку.`,spoolArchived:`Катушка архивирована`,spoolRestored:`Катушка восстановлена`,kProfileSaveFailed:`Не удалось сохранить настройки K-профиля`,syncWeightSpoolNotFound:`Катушка не найдена: возможно, она была удалена`,syncWeightSpoolmanUnreachable:`Spoolman недоступен. Повторите попытку позже.`,syncWeightFailed:`Не удалось синхронизировать массу`,spoolmanUnreachable:`Spoolman недоступен. Повторите попытку позже.`,deleteSpoolNotFound:`Катушка не найдена: возможно, она уже удалена`,deleteFailed:`Не удалось удалить катушку`,archiveSpoolNotFound:`Катушка не найдена: возможно, она уже удалена`,archiveFailed:`Не удалось архивировать катушку`,restoreSpoolNotFound:`Катушка не найдена: возможно, она уже удалена`,restoreFailed:`Не удалось восстановить катушку`,saveFailed:`Не удалось сохранить изменения`,tagClearFailed:`Не удалось очистить метку`,deleteConfirm:`Удалить эту катушку без возможности восстановления?`,archiveConfirm:`Архивировать эту катушку?`,advancedSettings:`Расширенные настройки`,filamentInfoTab:`Сведения о филаменте`,paProfileTab:`Профиль PA`,filamentInfo:`Филамент`,additional:`Дополнительно`,loadingPresets:`Загрузка облачных пресетов…`,cloudConnected:`Облако подключено`,cloudNotConnected:`Облако не подключено; используются значения по умолчанию`,recentColors:`Недавние`,searchColors:`Поиск цветов…`,searchResults:`Результаты поиска`,allColors:`Все цвета`,commonColors:`Основные цвета`,showLess:`Показать меньше`,showAll:`Показать все`,noColorsFound:`Нет цветов, соответствующих запросу`,noResults:`Совпадений не найдено`,extraColorsLabel:`Дополнительные цвета`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`Вставьте от 2 до 8 HEX-цветов через запятую. Они будут отображены как градиент.`,extraColorsInvalid:`Пропущены некорректные HEX-значения: {{tokens}}`,colorEffectLabel:`Эффект`,colorEffect:{none:`Нет`,sparkle:`Блёстки`,wood:`Дерево`,marble:`Мрамор`,glow:`Свечение`,matte:`Матовый`,silk:`Шёлк`,galaxy:`Галактика`,rainbow:`Радуга`,metal:`Металл`,translucent:`Полупрозрачный`,gradient:`Градиент`,dualColor:`Двухцветный`,triColor:`Трёхцветный`,multicolor:`Многоцветный`},selectMaterialFirst:`Сначала выберите материал на вкладке «Сведения о филаменте».`,noPrintersConfigured:`Принтеры не настроены. Добавьте принтеры, чтобы использовать профили PA.`,matchingFilter:`Совпадающие`,anyBrand:`Любой бренд`,anyVariant:`Любой вариант`,autoSelect:`Автовыбор`,matches:`совпадений`,match:`совпадение`,noMatches:`Нет совпадений`,connected:`Подключён`,offline:`Не в сети`,printerOffline:`Принтер не в сети. Подключите его для просмотра калибровочных профилей.`,noKProfilesMatch:`Нет K-профилей, соответствующих выбранному филаменту.`,leftNozzle:`Левое сопло`,rightNozzle:`Правое сопло`,profilesSelected:`выбрано калибровочных профилей`,totalInventory:`Всего в учёте`,totalConsumed:`Израсходовано всего`,byMaterial:`По материалам`,inPrinter:`В принтерах`,lowStock:`Малый остаток`,sinceTracking:`С начала учёта`,resetConsumedCounter:`Сбросить счётчик`,resetConsumedCounterTooltip:`Обнулить счётчик израсходованных граммов для этой катушки. Остаток массы не изменится.`,resetConsumedCounterConfirm:`Сбросить счётчик расхода этой катушки до 0? Последующие печати будут учитываться заново. Сама катушка, расчёт остатка и настройки не изменятся.`,resetAllConsumedCounters:`Сбросить все счётчики`,resetAllConsumedCountersTooltip:`Обнулить счётчик израсходованных граммов у всех катушек. Остатки массы не изменятся.`,resetAllConsumedCountersConfirm:`Сбросить счётчик расхода до 0 у всех {{count}} катушек, включая архивные? Показатель «Израсходовано всего» будет очищен, а будущие печати начнут учитываться с нуля. Катушки и их остатки не изменятся.`,consumedCounterReset:`Счётчик сброшен`,allConsumedCountersReset:`Счётчик сброшен у {{count}} катушек`,resetConsumedCounterFailed:`Не удалось сбросить счётчик`,loadedInAms:`Загружено в AMS/внешний слот`,remaining:`Остаток`,weightCheck:`Проверка массы`,lastWeighed:`Последнее взвешивание`,neverWeighed:`Не взвешивалась`,search:`Поиск катушек…`,showing:`Показано`,to:`–`,of:`из`,show:`Показывать`,spools:`катушек`,spool:`катушка`,page:`Страница`,noSpoolsMatch:`Ничего не найдено`,noSpoolsMatchDesc:`Измените поисковый запрос или фильтры.`,active:`Активные`,archived:`Архивные`,all:`Все`,used:`Израсходовано`,new:`Новые`,clearFilters:`Сбросить фильтры`,table:`Таблица`,cards:`Карточки`,net:`Нетто`,groupSimilar:`Группировать`,groupedSpools:`Одинаковых катушек: {{count}}`,groupedRows:`строк`,columns:`Столбцы`,configureColumns:`Настроить столбцы`,configureColumnsDesc:`Перетаскивайте столбцы или используйте стрелки для изменения порядка. Видимость переключается значком глаза.`,visible:`видимых`,reset:`Сбросить`,cancel:`Отмена`,applyChanges:`Применить изменения`,moveUp:`Переместить вверх`,moveDown:`Переместить вниз`,hideColumn:`Скрыть столбец`,showColumn:`Показать столбец`,linkToSpool:`Связать с катушкой`,tagLinked:`Метка связана с катушкой`,tagLinkFailed:`Не удалось связать метку`,tagAlreadyLinked:`Метка уже связана с другой катушкой`,unknownTag:`Обнаружена неизвестная RFID-метка`,usageHistory:`История расхода`,noUsageHistory:`Расход пока не зарегистрирован`,printName:`Название печати`,weightConsumed:`Израсходованная масса`,clearHistory:`Очистить`,historyCleared:`История расхода очищена`,fillSourceLabel:`(Учёт)`,lowStockThresholdError:`Порог должен быть от 0,1 до 99,9`,assignMismatchTitle:`Несоответствие материала`,assignMismatchMessage:`Материал выбранной катушки «{{spoolMaterial}}» не соответствует материалу слота «{{trayMaterial}}» в {{location}}. Всё равно назначить?`,assignMismatchConfirm:`Всё равно назначить`,assignPartialMismatchMessage:`Материал катушки «{{spoolMaterial}}» похож, но не совпадает точно с «{{trayMaterial}}» в {{location}}. Продолжить?`,assignProfileMismatchMessage:`Профиль катушки «{{spoolProfile}}» не соответствует профилю слота «{{trayProfile}}» в {{location}}. Продолжить?`,assignReconfigureNote:`Слот AMS будет перенастроен на профиль катушки.`,spoolmanFilamentCatalog:`Каталог филаментов Spoolman`,pickFromSpoolmanCatalog:`Выбрать из каталога Spoolman…`,spoolmanFilamentSelected:`Филамент выбран из каталога Spoolman`,spoolmanFilamentUnlinked:`Связь с каталогом филаментов удалена`,noSpoolmanFilaments:`В каталоге Spoolman филаменты не найдены`,spoolmanFilamentColorSwatch:`Цвет филамента`,spoolWeightManagedBySpoolman:`Масса пустой катушки задаётся в Spoolman для каждого типа филамента`,spoolmanCatalogLoadFailed:`Не удалось загрузить каталог филаментов Spoolman`},timelapse:{title:`Таймлапс`,create:`Создать таймлапс`,download:`Скачать`,delete:`Удалить`,preview:`Предпросмотр`,frameRate:`Частота кадров`,quality:`Качество`,processing:`Обработка...`,noTimelapses:`Таймлапсы отсутствуют`},ams:{title:`AMS`,slot:`Слот`,empty:`Пусто`,emptySlot:`Пустой слот`,slotEmpty:`Пусто`,slotUnconfigured:`?`,emptySlotReset:`Филамент не назначен`,unknown:`Неизвестно`,humidity:`Влажность`,temperature:`Температура`,filamentType:`Тип филамента`,filamentColor:`Цвет`,remaining:`Остаток`,history:`История AMS`,noHistory:`История отсутствует`,configureSlot:`Настроить слот`,externalSpool:`Внешняя катушка`,profile:`Профиль`,kFactor:`Коэффициент K`,fill:`Заполнить`,configure:`Настроить`,used:`использовано`,remainingUnit:`осталось`},printModal:{selectPrinter:`Выберите принтер`,selectPlate:`Выберите пластину`,filamentMapping:`Сопоставление филаментов`,plateN:`Пластина {{n}}`,plateFilamentsUnreadable:`Не удалось определить филаменты выбранной пластины, поэтому их невозможно сопоставить. Снимите выбор с этой пластины, чтобы добавить остальные в очередь.`,totalCost:`Общая стоимость:`,slotRemainingShort:` — осталось {{grams}} г`,printSettings:`Настройки печати`,bedLeveling:`Калибровка стола`,flowCalibration:`Калибровка потока`,vibrationCalibration:`Калибровка вибраций`,layerInspection:`Проверка первого слоя`,timelapse:`Таймлапс`,cancel:`Отмена`,noPrintersAvailable:`Нет доступных принтеров`,printerBusy:`Принтер занят`,printerOffline:`Принтер не в сети`,sameTypeDifferentColor:`Тот же тип, другой цвет`,filamentTypeNotLoaded:`Филамент этого типа не загружен`,whenToPrint:`Когда печатать`,asap:`Как можно скорее`,queue:`В очередь`,schedule:`По расписанию`,dateTime:`Дата и время`,invalidDateTime:`Введите корректные дату и время`,openCalendar:`Открыть календарь`,requireManualStart:`Требовать ручного запуска`,requirePreviousSuccess:`Запускать только после успешной предыдущей печати`,autoOffAfter:`Выключить принтер после завершения`,helpAsap:`Задание будет добавлено в начало очереди и запустится, как только подходящий принтер освободится.`,helpSchedule:`Задание запустится в указанное время, если принтер свободен. Если принтер занят, оно будет ждать освобождения.`,helpQueue:`Задание будет добавлено в конец очереди.`,leftNozzle:`Л`,rightNozzle:`П`,leftNozzleTooltip:`Левое сопло`,rightNozzleTooltip:`Правое сопло`,filamentOverride:`Переопределение филаментов`,filamentOverrideHint:`При необходимости замените филаменты для назначения по модели. Планировщик будет сопоставлять выбранные филаменты вместо исходных значений из 3MF.`,originalFilament:`Исходный`,overrideWith:`Заменить на`,resetToOriginal:`Вернуть исходный`,insufficientFilamentTitle:`Недостаточно филамента`,waitingForAmsStatus:`Ожидание состояния AMS от принтера {{printer}}…`,insufficientFilamentMessage:`На некоторых назначенных катушках осталось меньше филамента, чем требуется для этой печати:`,insufficientFilamentLine:`{{printer}} — {{slot}}: требуется {{required}} г, осталось {{remaining}} г`,printAnyway:`Всё равно печатать`,forceColorMatch:`Обязательно учитывать цвет`,staggerPrinterStarts:`Запускать принтеры с задержкой`,staggerGroupSize:`Размер группы`,staggerInterval:`Интервал (мин)`,staggerPreview:`{{printers}} принтеров → {{groups}} групп по {{size}}, запуск каждые {{interval}} мин`,staggerLastGroup:`последняя группа: {{count}}`,staggerTotal:`всего: {{minutes}} мин`,staggerToPrinters:`Распределить запуск для {{count}} принтеров`,gcodeInjection:`Добавить G-code автозапуска`},backup:{includesEncryptionKey:`Локальные резервные копии включают файл ключа шифрования MFA (DATA_DIR/.mfa_encryption_key), поэтому ZIP-архив является самодостаточным. Считайте этот ZIP конфиденциальным: любой, у кого есть файл, сможет расшифровать сохранённые в нём секреты клиента OIDC и TOTP.`,title:`Резервное копирование и восстановление`,createBackup:`Создать резервную копию`,restoreBackup:`Восстановить из копии`,restoreDescription:`Заменить все данные данными из резервной копии`,downloadBackup:`Скачать резервную копию`,uploadBackup:`Загрузить резервную копию`,lastBackup:`Последняя копия`,autoBackup:`Автоматическое резервное копирование`,backupNow:`Создать копию сейчас`,restoreWarning:`Внимание: восстановление из резервной копии перезапишет все текущие данные.`,includeArchives:`Включить архивы`,includeSettings:`Включить настройки`,includeProfiles:`Включить профили`,backupSuccess:`Резервная копия успешно создана`,restoreSuccess:`Резервная копия успешно восстановлена`,backupFailed:`Не удалось создать резервную копию`,restoreFailed:`Не удалось выполнить восстановление`,restoreNote:`На время восстановления виртуальный принтер будет остановлен`,githubBackup:`Резервная копия в Git`,enabled:`Включено`,cloudLoginRequired:`Требуется вход в Bambu Cloud. Войдите в разделе «Профили → Облачные профили», чтобы включить резервное копирование в GitHub.`,cloudLoginRequiredShort:`Требуется вход в облако`,githubDescription:`Автоматически синхронизировать профили с приватным репозиторием GitHub для резервного копирования и хранения истории версий.`,repoIsPrivate:`Репозиторий приватный — резервное копирование безопасно.`,repoIsPublicWarning:`Репозиторий ПУБЛИЧНЫЙ. Резервные копии Bambuddy содержат учётные данные MQTT, токены Home Assistant и Prometheus, адрес электронной почты Bambu Cloud и коды доступа к принтерам из K-профилей. Сохранение заблокировано, пока репозиторий не будет сделан приватным в настройках провайдера.`,repoVisibilityUnknown:`Не удалось определить видимость репозитория. Bambuddy отказывается создавать резервные копии в репозитории, приватность которого не подтверждена; сохранение будет заблокировано.`,repositoryUrl:`URL репозитория`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`Разрешить небезопасный HTTP`,allowInsecureHttpHint:`Включайте для локальных серверов в частной сети без TLS`,personalAccessToken:`Персональный токен доступа`,tokenSaved:`(сохранён)`,enterNewToken:`Введите новый токен для обновления`,tokenHint:`Токен с точечными правами на чтение и запись содержимого`,branch:`Ветка`,provider:`Git-провайдер`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`Только вручную`,hourly:`Ежечасно`,daily:`Ежедневно`,weekly:`Еженедельно`,includeInBackup:`Включить в резервную копию`,kProfiles:`K-профили`,kProfilesDescription:`Калибровки Pressure Advance с подключённых принтеров`,noPrintersConnected:`Нет подключённых принтеров`,printersConnected:`Подключено {{connected}} из {{total}}`,cloudProfiles:`Облачные профили`,cloudProfilesDescription:`Предустановки филамента, принтера и процесса из Bambu Cloud`,appSettings:`Настройки приложения`,appSettingsDescription:`Конфигурация Bambuddy (полная база данных)`,spoolInventory:`Учёт катушек`,spoolInventoryDescription:`Катушки филамента, история расхода и учёт стоимости`,printArchives:`Архив печати`,printArchivesDescription:`Метаданные истории печати без файлов G-code и 3MF`,lastBackupAt:`Последняя копия:`,noBackupsYet:`Резервных копий пока нет`,next:`Следующая:`,startingBackup:`Запуск резервного копирования...`,test:`Проверить`,enableBackup:`Включить резервное копирование`,testConnection:`Проверить соединение`,enterRepoUrl:`Введите URL репозитория`,enterRepoAndToken:`Введите URL репозитория и токен доступа`,repoRequired:`Необходимо указать URL репозитория`,tokenRequired:`Необходимо указать токен доступа`,githubBackupEnabled:`Резервное копирование в GitHub включено`,tokenUpdated:`Токен обновлён`,settingsSaved:`Настройки сохранены`,failedToSave:`Не удалось сохранить: {{message}}`,backupCompleteFiles:`Резервное копирование завершено — обновлено файлов: {{count}}`,backupSkippedNoChanges:`Резервное копирование пропущено — изменений нет`,backupFailed2:`Ошибка резервного копирования: {{message}}`,clearedLogs:`Очищено записей журнала: {{count}}`,failedToClearLogs:`Не удалось очистить журнал: {{message}}`,history:`История`,clear:`Очистить`,date:`Дата`,status:`Статус`,commit:`Коммит`,localBackup:`Локальная резервная копия`,localBackupDescription:`Создать полную резервную копию данных Bambuddy, включая базу данных, архивы, загрузки и все файлы.`,downloadBackupLabel:`Скачать резервную копию`,completeBackupZip:`Полная копия: база данных и все файлы (ZIP)`,download:`Скачать`,preparingBackup:`Подготовка резервной копии...`,creatingArchive:`Создание архива резервной копии... Для больших архивов это может занять некоторое время.`,downloadingFile:`Скачивание файла резервной копии...`,backupDownloaded:`Резервная копия успешно скачана`,failedToCreateBackup:`Не удалось создать резервную копию: {{message}}`,restore:`Восстановить`,restoreReplacesAll:`Восстановление заменит все данные.`,restoreReplacesAllDetail:`Текущая база данных и файлы будут полностью заменены. После восстановления потребуется перезапуск.`,restoreConfirmTitle:`Восстановление из резервной копии`,restoreConfirmMessage:`Восстановить данные из файла «{{filename}}»? Текущая база данных и все файлы будут полностью заменены. После восстановления приложение потребуется перезапустить.`,restoreConfirmButton:`Восстановить`,uploadingFile:`Загрузка файла резервной копии...`,backupRestoredRestart:`Резервная копия восстановлена. Перезапустите Bambuddy.`,failedToRestore:`Не удалось восстановить резервную копию. Проверьте формат файла.`,reloadNow:`Перезагрузить сейчас`,creatingBackup:`Создание резервной копии`,restoringBackup:`Восстановление данных`,preparing:`Подготовка...`,processing:`Обработка...`,doNotClosePage:`Не закрывайте эту страницу и не переходите на другую. Для больших резервных копий операция может занять несколько минут.`,restoring:`Восстановление...`,restoreComplete:`Восстановление завершено`,restoreFailed2:`Ошибка восстановления`,importSettings:`Импортировать настройки из файла резервной копии`,pleaseWaitRestoring:`Подождите, пока данные восстанавливаются`,selectBackupFile:`Нажмите, чтобы выбрать файл резервной копии (.json или .zip)`,duplicateHandling:`Правила обработки дубликатов:`,matchPrinters:`Принтеры`,matchPrintersBy:`сопоставляются по серийному номеру`,matchSmartPlugs:`Умные розетки`,matchSmartPlugsBy:`сопоставляются по IP-адресу`,matchNotificationProviders:`Провайдеры уведомлений`,matchNotificationProvidersBy:`сопоставляются по имени`,matchFilaments:`Филаменты`,matchFilamentsBy:`сопоставляются по имени, типу и бренду`,matchArchives:`Архивы`,matchArchivesBy:`сопоставляются по хешу содержимого и всегда пропускаются`,matchPendingUploads:`Ожидающие загрузки`,matchPendingUploadsBy:`сопоставляются по имени файла`,matchSettingsTemplates:`Настройки и шаблоны`,matchSettingsTemplatesBy:`всегда перезаписываются`,replaceExisting:`Заменять существующие данные`,keepExisting:`Сохранять существующие данные`,overwriteDescription:`Перезаписывать существующие элементы данными из резервной копии`,keepDescription:`Восстанавливать только отсутствующие элементы`,overwriteCaution:`Внимание:`,overwriteWarning:`Перезапись заменит текущие настройки данными из резервной копии. В целях безопасности коды доступа к принтерам никогда не перезаписываются.`,cancel:`Отмена`,processingBackup:`Обработка файла резервной копии...`,itemsRestored:`Восстановлено элементов`,itemsSkipped:`Пропущено элементов`,restored:`Восстановлено`,skippedAlreadyExist:`Пропущено — уже существует`,filesCategory:`Файлы (3MF, миниатюры и т. п.)`,andMore:`...и ещё {{count}}`,newApiKeysGenerated:`Созданы новые API-ключи`,keysShownOnce:`Эти ключи показываются только один раз. Скопируйте их сейчас!`,copy:`Копировать`,noDataFound:`В резервной копии не найдено данных для восстановления.`,close:`Закрыть`,scheduledBackup:`Резервные копии по расписанию`,scheduledBackupDescription:`Автоматически создавать снимки резервных копий по расписанию. Каталог назначения можно смонтировать с NAS или внешнего накопителя.`,frequency:`Периодичность`,backupTime:`Время`,retention:`Хранение`,retentionDescription:`Количество сохраняемых резервных копий`,outputPath:`Каталог назначения`,outputPathPlaceholder:`По умолчанию: {{path}}`,outputPathDescription:`Оставьте пустым, чтобы использовать стандартный каталог`,runNow:`Запустить сейчас`,backupFiles:`Файлы резервных копий`,noScheduledBackups:`Резервных копий пока нет`,deleteBackup:`Удалить`,deleteBackupConfirm:`Удалить этот файл резервной копии?`,backupRunning:`Выполняется резервное копирование...`,scheduledBackupComplete:`Резервная копия успешно создана`,scheduledBackupFailed:`Ошибка резервного копирования`,nextBackup:`Следующая копия`,backupSize:`Размер`,localTimeHint:`Местное время ({{tz}})`,defaultPathLabel:`По умолчанию:`,pathCheck:{title:`Bambuddy не может записывать в этот каталог`,howToFix:`Как исправить:`,sandboxed:`Служба Bambuddy не может записывать в {{path}}. Её модуль systemd работает с ProtectSystem=strict, поэтому все каталоги за пределами каталогов установки, данных и журналов доступны службе только для чтения, даже если из вашей командной оболочки запись разрешена.`,read_only:`{{path}} находится в файловой системе, доступной только для чтения.`,permission_denied:`Bambuddy не разрешена запись в {{path}}. Проверьте владельца каталога и права доступа.`,no_space:`В файловой системе, содержащей {{path}}, закончилось свободное место.`,not_a_directory:`{{path}} существует, но не является каталогом.`,missing:`{{path}} не существует, и создать этот каталог не удалось.`,error:`Bambuddy не может записывать в {{path}}.`,ephemeralTitle:`Эти резервные копии не сохранятся после перезапуска контейнера`,container_ephemeral:`{{path}} находится внутри контейнера Bambuddy, а не на хосте. Записанные туда резервные копии будут потеряны при пересоздании контейнера. Подключите каталог с хоста:`},categories:{settings:`Настройки`,notification_providers:`Провайдеры уведомлений`,notification_templates:`Шаблоны уведомлений`,smart_plugs:`Умные розетки`,printers:`Принтеры`,filaments:`Филаменты`,maintenance_types:`Виды обслуживания`,archives:`Архивы`,projects:`Проекты`,pending_uploads:`Ожидающие загрузки`,external_links:`Внешние ссылки`,api_keys:`API-ключи`}},tags:{title:`Метки`,addTag:`Добавить метку`,editTag:`Изменить метку`,deleteTag:`Удалить метку`,tagName:`Название метки`,tagColor:`Цвет метки`,noTags:`Меток нет`,deleteConfirm:`Удалить эту метку?`,manageTags:`Управление метками`},uploadModal:{title:`Загрузка файлов 3MF`,dragDrop:`Перетащите файлы .3mf сюда`,or:`или`,browseFiles:`Выбрать файлы`,extractionInfo:`Модель принтера будет автоматически определена по метаданным файла 3MF.`,uploaded:`загружено`,failed:`ошибок`,uploading:`Загрузка...`,upload:`Загрузить`,uploadFailed:`Не удалось загрузить`},editArchive:{title:`Редактирование архива`,name:`Название`,namePlaceholder:`Название печати`,printer:`Принтер`,noPrinter:`Без принтера`,project:`Проект`,noProject:`Без проекта`,itemsPrinted:`Напечатано изделий`,itemsPrintedHelp:`Количество изделий, полученных в этом задании печати`,notes:`Заметки`,notesPlaceholder:`Добавьте заметки об этой печати...`,externalLink:`Внешняя ссылка`,externalLinkPlaceholder:`https://printables.com/model/...`,externalLinkHelp:`Ссылка на Printables, Thingiverse или другой источник`,tags:`Метки`,tagsPlaceholder:`Добавить метки...`,addMoreTags:`Добавить ещё метки...`,matchingTags:`Совпадения для «{{query}}»`,existingTags:`Существующие метки`,clickToAdd:`(нажмите, чтобы добавить)`,status:`Статус`,failureReason:`Причина сбоя`,selectReason:`Выберите причину...`,photos:`Фотографии результата печати`,photosHelp:`Нажмите +, чтобы добавить фотографии результата`,printResult:`Результат печати`,saving:`Сохранение...`,failureReasons:{adhesionFailure:`Плохая адгезия к столу`,spaghettiDetached:`Спагетти / отрыв детали`,layerShift:`Сдвиг слоёв`,cloggedNozzle:`Засор сопла`,filamentRunout:`Закончился филамент`,warping:`Коробление`,stringing:`Стрингинг`,underExtrusion:`Недоэкструзия`,powerFailure:`Сбой питания`,userCancelled:`Отменено пользователем`,other:`Другое`},statuses:{completed:`Завершено`,failed:`Ошибка`,aborted:`Отменено`,printing:`Печать`}},kProfiles:{title:`K-профили`,noPrintersConfigured:`Принтеры не настроены`,addPrinterInSettings:`Добавьте принтер в настройках, чтобы управлять K-профилями`,noActivePrinters:`Нет активных принтеров`,enablePrinterConnection:`Включите подключение к принтеру, чтобы просматривать его K-профили`,loadingProfiles:`Загрузка K-профилей...`,printerOffline:`Принтер не в сети`,printerOfflineDesc:`Выбранный принтер не подключён. Включите его, чтобы просмотреть K-профили.`,noMatchingProfiles:`Подходящие профили не найдены`,noMatchingProfilesDesc:`Ни один профиль не соответствует условиям поиска`,noKProfiles:`K-профили отсутствуют`,noKProfilesDesc:`Для сопла {{diameter}} мм не найдены профили Pressure Advance`,createFirstProfile:`Создать первый профиль`,printer:`Принтер`,nozzle:`Сопло`,refresh:`Обновить`,addProfile:`Добавить профиль`,export:`Экспорт`,import:`Импорт`,select:`Выбрать`,selectAll:`Выбрать все`,delete:`Удалить`,searchPlaceholder:`Поиск по названию или филаменту...`,allExtruders:`Все экструдеры`,leftOnly:`Только левый`,rightOnly:`Только правый`,allFlow:`Любой тип потока`,hfOnly:`Только HF`,sOnly:`Только S`,sortName:`Сортировка: название`,sortKValue:`Сортировка: K-значение`,sortFilament:`Сортировка: филамент`,leftExtruder:`Левый экструдер`,rightExtruder:`Правый экструдер`,modal:{addTitle:`Добавить K-профиль`,editTitle:`Изменить K-профиль`,profileName:`Название профиля`,profileNamePlaceholder:`Мой профиль PLA`,kValue:`K-значение`,kValuePlaceholder:`0.020`,kValueHelp:`Типичный диапазон: 0,01–0,06 для PLA, 0,02–0,10 для PETG`,filament:`Филамент`,selectFilament:`Выберите филамент...`,noFilamentsHelp:`Филаменты не найдены. Сначала создайте K-профиль в Bambu Studio.`,flowType:`Тип потока`,highFlow:`Высокопоточный`,standard:`Стандартный`,nozzleSize:`Диаметр сопла`,extruder:`Экструдер`,extruders:`Экструдеры`,left:`Левый`,right:`Правый`,notes:`Заметки (хранятся локально)`,notesPlaceholder:`Добавьте заметки об этом профиле...`,notesHelp:`Заметки сохраняются в Bambuddy, а не на принтере`,syncing:`Синхронизация с принтером...`,savingExtruder:`Сохранение в экструдер {{current}}/{{total}}...`,pleaseWait:`Подождите`},deleteConfirm:{title:`Удалить профиль`,cannotUndo:`Это действие нельзя отменить`,message:`Удалить профиль «{{name}}» с принтера?`},bulkDelete:{title:`Удалить профили`,cannotUndo:`Это действие нельзя отменить`,message:`Удалить с принтера выбранные профили ({{count}})?`},toast:{profileSaved:`K-профиль сохранён`,profilesSaved:`K-профиль сохранён для {{count}} экструдеров`,selectAtLeastOneExtruder:`Выберите хотя бы один экструдер`,profileDeleted:`K-профиль удалён`,profilesDeleted:`Удалено профилей: {{count}}`,exportedProfiles:`Экспортировано профилей: {{count}}`,importedProfiles:`Импортировано {{count}} из {{total}} профилей`,noProfilesToExport:`Нет профилей для экспорта`,invalidFileFormat:`Недопустимый формат файла`,failedToParseImport:`Не удалось разобрать файл импорта`,failedToSaveBatch:`Не удалось сохранить K-профили`,noteSaved:`Заметка сохранена`,failedToSaveNote:`Не удалось сохранить заметку`},permission:{noRead:`У вас нет прав на обновление профилей`,noCreate:`У вас нет прав на добавление профилей`,noUpdate:`У вас нет прав на изменение K-профилей`,noDelete:`У вас нет прав на удаление K-профилей`,noExport:`У вас нет прав на экспорт профилей`,noImport:`У вас нет прав на импорт профилей`}},virtualPrinter:{title:`Виртуальный принтер`,running:`Запущен`,stopped:`Остановлен`,description:{default:`Включает виртуальный принтер, который отображается в Bambu Studio и OrcaSlicer. Отправленные на него файлы сразу сохраняются в архив без печати.`,proxy:`Включает прокси, перенаправляющий трафик слайсера на реальный принтер и позволяющий печатать удалённо из любой сети.`},enable:{title:`Включить виртуальный принтер`,visibleInSlicer:`Отображается как «Bambuddy» при обнаружении принтеров в слайсере`,proxyingTo:`Проксирование на {{name}}`,notActive:`Не активен`},model:{title:`Модель принтера`,description:`Выберите модель принтера, которую нужно эмулировать.`,restartWarning:`При изменении модели виртуальный принтер будет перезапущен`},accessCode:{title:`Код доступа`,isSet:`Код доступа задан`,notSet:`Код доступа не задан — он необходим для включения`,placeholder:`Введите 8-значный код`,placeholderChange:`Введите новый код`,hint:`Код должен состоять ровно из 8 символов. Слайсеры используют его для аутентификации.`,charCount:`({{count}}/8)`,inheritedFromTarget:`Унаследован от целевого принтера`,derivedFromTargetHint:`Используется код доступа целевого принтера. Мост перенаправляет аутентификацию слайсера на реальный принтер, поэтому коды должны совпадать. Чтобы изменить значение, измените код доступа самого принтера.`,reveal:`Показать код доступа`,hide:`Скрыть код доступа`},targetPrinter:{title:`Целевой принтер`,configured:`Целевой принтер для прокси настроен`,notConfigured:`Целевой принтер не выбран — он необходим для режима прокси`,placeholder:`Выберите принтер...`,hint:`Выберите принтер, на который будет перенаправляться трафик слайсера. Принтер должен работать в режиме LAN.`,noPrinters:`Нет настроенных принтеров. Сначала добавьте принтер.`},remoteInterface:{title:`Переопределение сетевого интерфейса`,configured:`Переопределение интерфейса активно`,optional:`Необязательно — используйте, если IP определён неверно, например при нескольких сетевых картах, Docker или VPN`,placeholder:`Определять автоматически...`,hint:`Переопределяет IP-адрес, публикуемый через SSDP и используемый в TLS-сертификате. Полезно, если у Bambuddy несколько сетевых интерфейсов.`},mode:{title:`Режим`,archive:`Архив`,archiveDesc:`Сразу сохранять файлы в архив`,review:`Проверка`,reviewDesc:`Проверять перед добавлением в архив`,queue:`Очередь`,queueDesc:`Сохранять в архив и добавлять в очередь`,proxy:`Прокси`,proxyDesc:`Перенаправлять на реальный принтер`},autoDispatch:{title:`Автоматический запуск`,description:`Автоматически запускать задания после добавления в очередь. Если выключено, задания ожидают ручного запуска.`},queueForceColorMatch:{title:`Требовать совпадения цвета`,description:`Не назначать задание принтеру, если загружены филамент другого типа или другого цвета. По умолчанию выключено: без этой проверки очередь сопоставляет только модель принтера и может выбрать принтер с неподходящим цветом.`},gcodeInjection:{title:`Вставка G-code`,description:`Применять к заданиям этого виртуального принтера фрагменты G-code для соответствующей модели, заданные в настройках. По умолчанию выключено.`},tailscaleDisabled:{title:`Интеграция Tailscale`,description:`Отметить этот виртуальный принтер как доступный через Tailscale. Будет показан Tailscale-адрес хоста, который нужно указать в слайсере. Импорт сертификата центра сертификации выполняется как обычно; этот переключатель на сертификаты не влияет.`},setupRequired:{title:`Требуется настройка`,description:`Для работы виртуального принтера требуется дополнительная настройка системы: перенаправление портов, правила межсетевого экрана и параметры, зависящие от платформы.`,readGuide:`Перед включением прочитайте руководство по настройке`},archiveNameSource:{title:`Источник названия архива`,description:`Выберите способ формирования названия новых архивов для файлов, полученных через виртуальный принтер. «Метаданные» использует поле Title, встроенное слайсером в 3MF. «Имя файла» использует имя, переданное Bambu Studio по FTP. Bambu Studio заменяет введённое в окне отправки название значением Title из 3MF, если оно присутствует, поэтому оба режима часто дают одинаковый результат.`,metadata:`Метаданные`,filename:`Имя файла`},caCert:{title:`Сертификат для слайсера`,description:`Виртуальные принтеры используют TLS-сертификат, подписанный центром сертификации Bambuddy. Один раз импортируйте этот сертификат CA в хранилище доверенных сертификатов слайсера, чтобы он принимал соединение.`,copy:`Копировать`,copied:`Скопировано`,download:`Скачать`,fingerprint:`SHA-256`},howItWorks:{title:`Как это работает`,step1:`В одной локальной сети виртуальные принтеры автоматически появляются в Bambu Studio и OrcaSlicer. Из других сетей добавьте их вручную по IP-адресу и коду доступа.`,step2:`В режимах «Архив», «Проверка» и «Очередь» используйте кнопку «Отправить» в слайсере для загрузки 3MF в Bambuddy. Слайсер покажет сообщение об успешной печати, но файл будет только сохранён, без запуска печати.`,step3:`В режиме прокси виртуальный принтер перенаправляет весь трафик на реальный принтер — печать запускается сразу, как при прямом подключении.`},status:{title:`Сведения о состоянии`,printerName:`Имя принтера`,model:`Модель`,serialNumber:`Серийный номер`,mode:`Режим`,pendingFiles:`Ожидающие файлы`,targetPrinter:`Целевой принтер`,ftpPort:`Порт FTP`,mqttPort:`Порт MQTT`,ftpConnections:`Соединения FTP`,mqttConnections:`Соединения MQTT`},toast:{updated:`Настройки виртуального принтера обновлены`,failedToUpdate:`Не удалось обновить настройки`,copyFailed:`Не удалось скопировать — выделите текст вручную`,accessCodeRequired:`Сначала задайте код доступа`,targetPrinterRequired:`Сначала выберите целевой принтер`,bindIpRequired:`Сначала задайте IP-адрес привязки`,accessCodeEmpty:`Код доступа не может быть пустым`,accessCodeLength:`Код доступа должен состоять ровно из 8 символов`,targetCodeChangedRebind:`Код доступа приведён в соответствие с новым целевым принтером. Удалите и снова добавьте устройство в слайсере, чтобы он получил новый код.`,created:`Виртуальный принтер создан`,failedToCreate:`Не удалось создать виртуальный принтер`,deleted:`Виртуальный принтер удалён`,failedToDelete:`Не удалось удалить виртуальный принтер`},list:{title:`Виртуальные принтеры`,add:`Добавить`,addFirst:`Добавить виртуальный принтер`,empty:`Виртуальные принтеры не настроены. Добавьте первый принтер.`},bindIp:{title:`Интерфейс привязки`,placeholder:`Выберите интерфейс...`,hint:`Сетевой интерфейс, к которому будет привязан этот виртуальный принтер. Для каждого принтера он должен быть уникальным.`},proxy:{accessCodeHint:`В режиме прокси используйте в слайсере код доступа целевого принтера. Соединение прозрачно перенаправляется на реальный принтер.`},addDialog:{title:`Добавление виртуального принтера`,name:`Название`,hint:`После создания можно настроить код доступа, целевой принтер и остальные параметры.`,create:`Создать`},deleteConfirm:{title:`Удаление виртуального принтера`,message:`Удалить «{{name}}»? Все службы этого виртуального принтера будут остановлены.`}},modelViewer:{openInSlicer:`Открыть в слайсере`,tabs:{model:`3D-модель`,gcode:`Предпросмотр G-code`},notAvailable:`недоступно`,notSliced:`не нарезано`,plates:`Пластины`,allPlates:`Все пластины`,plateNumber:`Пластина {{number}}`,plateCount:`{{count}} пластина`,plateCount_other:`{{count}} пластин`,objectCount:`{{count}} объект`,objectCount_other:`{{count}} объектов`,filamentCount:`{{count}} филамент`,filamentCount_other:`{{count}} филаментов`,eta:`Осталось {{minutes}} мин`,noPreview:`Для этого файла нет предпросмотра`,pagination:{pageOf:`Страница {{current}} из {{total}}`,prev:`Назад`,next:`Далее`},errors:{failedToLoad:`Не удалось загрузить файл`,noMeshes:`В файле 3MF не найдены сеточные модели`,unsupportedFormat:`Неподдерживаемый формат файла`}},maintenanceDescriptions:{lubricateCarbonRods:`Смазать углепластиковые направляющие для плавного перемещения`,lubricateRails:`Смазать линейные направляющие для плавного перемещения`,cleanNozzle:`Очистить хотэнд и сопло для предотвращения засоров`,checkBelts:`Проверить натяжение ремней для сохранения точности печати`,cleanBuildPlate:`Очистить печатную пластину для улучшения адгезии`,checkExtruder:`Проверить шестерни экструдера на износ`,checkCooling:`Проверить исправность вентиляторов охлаждения`,generalInspection:`Общий осмотр принтера`,cleanCarbonRods:`Очистить углепластиковые направляющие для уменьшения трения`,lubricateSteelRods:`Смазать стальные направляющие для плавного перемещения`,cleanSteelRods:`Очистить стальные направляющие для уменьшения трения`,cleanLinearRails:`Протереть линейные направляющие от пыли и загрязнений`,checkPtfeTube:`Проверить PTFE-трубку на износ и повреждения`,replaceHepaFilter:`Заменить HEPA-фильтр`,replaceCarbonFilter:`Заменить угольный фильтр`,lubricateLeftNozzleRail:`Смазать направляющую левого сопла (серия H2)`},smartPlugs:{offline:`Не в сети`,admin:`Управление`,openPlugAdminPage:`Открыть страницу управления розеткой`,deleteSmartPlug:`Удалить умную розетку`,turnOnSmartPlug:`Включить умную розетку`,turnOffSmartPlug:`Выключить умную розетку`,turnOn:`Включить`,turnOff:`Выключить`,addSmartPlug:{scanningNetwork:`Сканирование сети...`,chooseEntity:`Выберите сущность...`,connectionFailed:`Ошибка подключения`,searchEntities:`Поиск сущностей...`,searchPowerSensors:`Поиск датчиков мощности...`,searchEnergySensors:`Поиск датчиков энергии...`,placeholders:{plugName:`Розетка в гостиной`,mqttStateOnValue:`ON, true, 1`,mqttSameAsPower:`Та же тема, что для мощности, или другая`}},linkedTo:`Связана с:`,monitorOnly:`Только мониторинг`,alerts:`Оповещения`,scheduleOn:`Включение в {{time}}`,scheduleOff:`Выключение в {{time}}`,on:`Включена`,off:`Выключена`,power:`Мощность`,kwhToday:`кВт·ч сегодня`,settings:`Настройки`,automationSettings:`Настройки автоматизации`,showInSwitchbar:`Показывать на панели переключателей`,quickAccessSidebar:`Быстрый доступ с боковой панели`,enabled:`Включено`,enableAutomation:`Включить автоматизацию для этой розетки`,autoOn:`Автовключение`,autoOnDescription:`Включать при начале печати`,autoOff:`Автовыключение`,autoOffDescription:`Выключать после завершения печати (однократно)`,autoOffPersistent:`Оставлять включённым`,autoOffPersistentDescription:`Не сбрасывать автовыключение после печати`,controlsPrinterPower:`Питает принтер`,controlsPrinterPowerDescription:`Отключите, если эта розетка питает только аксессуар (вентилятор фильтра, подсветку). Иначе её выключение помечает принтер как офлайн.`,autoOffAfterDrying:`Выключать после сушки`,autoOffAfterDryingDescription:`Выключать после завершения сушки в AMS`,delayAfterDryingMinutes:`Задержка после сушки (мин)`,turnOffDelayMode:`Условие отложенного выключения`,time:`Время`,temp:`Температура`,delayMinutes:`Задержка (мин)`,tempThreshold:`Порог температуры (°C)`,tempThresholdDescription:`Выключать, когда сопло остынет ниже этой температуры`,edit:`Изменить`,deleteConfirm:`Удалить «{{name}}»? Это действие нельзя отменить.`,turnOnConfirm:`Включить «{{name}}»?`,turnOffConfirm:`Выключить «{{name}}»? Питание подключённого устройства будет отключено.`,failedToTurn:`Не удалось {{action}} «{{name}}»`,unknown:`Неизвестно`,addTitle:`Добавление умной розетки`,editTitle:`Редактирование умной розетки`,stopScanning:`Остановить сканирование`,discoverTasmota:`Найти устройства Tasmota`,foundDevices:`Найдено устройств: {{count}}. Нажмите для выбора:`,noDevicesFound:`Устройства Tasmota в сети не найдены`,haNotConfigured:`Home Assistant не настроен. Настройте его в разделе`,haSettingsPath:`Настройки → Сеть → Home Assistant`,selectEntity:`Выберите сущность *`,ipAddress:`IP-адрес *`,nameLabel:`Название *`,username:`Имя пользователя`,password:`Пароль`,authHint:`Оставьте пустым, если устройство Tasmota не требует аутентификации`,linkToPrinter:`Связать с принтером`,noPrinter:`Без принтера — только ручное управление`,linkingDescription:`Связь позволяет автоматически включать и выключать питание при начале и завершении печати`,powerAlerts:`Оповещения о мощности`,alertAbove:`Оповещать выше (Вт)`,alertBelow:`Оповещать ниже (Вт)`,alertDescription:`Отправлять уведомление при пересечении заданных порогов мощности. Оставьте поле пустым, чтобы отключить соответствующий порог.`,dailySchedule:`Ежедневное расписание`,turnOnAt:`Включать в`,turnOffAt:`Выключать в`,scheduleDescription:`Ежедневно включать и выключать розетку в указанное время. Оставьте поле пустым, чтобы не выполнять соответствующее действие.`,showOnPrinterCard:`Показывать в карточке принтера`,displayOnPrinterCard:`Показывать кнопку в карточке принтера`,connectedResult:`Подключено!`,deviceLabel:`Устройство: {{name}} — `,stateLabel:`Состояние: {{state}}`,test:`Проверить`,delete:`Удалить`,save:`Сохранить`,add:`Добавить`,cancel:`Отмена`,failedToStartScan:`Не удалось запустить сканирование`,nameRequired:`Укажите название`,entityRequired:`Для розеток Home Assistant необходимо выбрать сущность`,mqttTopicRequired:`Для мониторинга мощности, энергии или состояния необходимо настроить хотя бы одну тему MQTT`,loadingEntities:`Загрузка сущностей...`,loading:`Загрузка...`,failedToLoadEntities:`Не удалось загрузить сущности: {{error}}`,noEntitiesMatching:`Сущности по запросу «{{search}}» не найдены`,noEntitiesAvailable:`Нет доступных сущностей`,searchingEntities:`Поиск по всем сущностям, найдено: {{count}}`,showingEntities:`Показаны switch, light и input_boolean, доступно: {{count}}`,energyMonitoringOptional:`Мониторинг энергии (необязательно)`,energyMonitoringHint:`Найдите и выберите датчики мощности и энергии.`,powerSensorW:`Датчик мощности (Вт)`,energyTodayKwh:`Энергия за сегодня (кВт·ч)`,totalEnergyKwh:`Общая энергия (кВт·ч)`,noMatchingSensors:`Подходящие датчики не найдены`,none:`Нет`,mqttNotConfigured:`Брокер MQTT не настроен. Укажите его адрес в разделе`,mqttSettingsPath:`Настройки → Сеть → Публикация MQTT`,mqttNotConfiguredSuffix:`Включать публикацию не обязательно — достаточно заполнить параметры брокера.`,mqttMonitorOnlyDescription:`Розетки MQTT получают данные мощности и энергии через подписку MQTT. Управление включением и выключением недоступно — используйте брокер MQTT или систему домашней автоматизации.`,powerMonitoring:`Мониторинг мощности`,energyMonitoring:`Мониторинг энергии`,stateMonitoring:`Мониторинг состояния`,optional:`необязательно`,topic:`Тема`,jsonPath:`Путь JSON`,multiplier:`Множитель`,onValue:`Значение «включено»`,mqttPowerHint:`Путь JSON извлекает значение из полезной нагрузки JSON, например «power_l1». Оставьте пустым, если тема публикует число напрямую.
Для преобразования мВт→Вт используйте 0.001, для кВт→Вт — 1000.`,mqttEnergyHint:`Путь JSON извлекает значение из полезной нагрузки JSON. Оставьте пустым для числового значения напрямую.
Для преобразования Вт·ч→кВт·ч используйте 0.001, для МВт·ч→кВт·ч — 1000.`,mqttStateHint:`Путь JSON извлекает значение из полезной нагрузки JSON. Оставьте пустым для значения напрямую.
-Значение «включено» — точная строка, означающая включённое состояние. Оставьте пустым для автоматического распознавания ON, true и 1.`,restControl:`Управление`,restOnUrl:`URL включения`,restOffUrl:`URL выключения`,restOnBody:`Тело запроса включения`,restOffBody:`Тело запроса выключения`,restMethod:`Метод HTTP`,restHeaders:`Пользовательские заголовки (JSON)`,restStatusUrl:`URL состояния`,restStatusPath:`Путь JSON состояния`,restStatusOnValue:`Значение «включено»`,restPowerUrl:`URL мощности`,restPowerPath:`Путь JSON мощности`,restPowerMultiplier:`Множитель мощности`,restEnergyUrl:`URL энергии`,restEnergyPath:`Путь JSON энергии`,restEnergyTotalPath:`Путь JSON полной энергии`,restEnergyTotalMultiplier:`Множитель полной энергии`,restEnergyTotalPathHint:`например, aenergy.total`,restEnergyTotalHint:`Многие розетки, включая все устройства Shelly, передают только накопительный счётчик энергии, который никогда не сбрасывается. Его следует указывать здесь, а не в поле выше: если считать его суточным расходом, значение не сбросится в полночь, а данные за вчера и общий расход останутся пустыми. Bambuddy вычисляет расход за сегодня и вчера по этому счётчику; для накопления данных потребуется один-два дня. Shelly передаёт ватт-часы, поэтому используйте множитель 0.001.`,restEnergyMultiplier:`Множитель энергии`,restUrlRequired:`Для REST-розетки необходимо указать хотя бы один URL: включения или выключения`,restHeadersHint:`например, {"Authorization": "Bearer your-token"}`,restBodyHint:`например, ON или {"state": "on"}`,restStatusHint:`URL для опроса текущего состояния`,restPathHint:`например, state или data.power.status`,restPowerUrlHint:`Отдельный URL данных мощности; если пусто, используется URL состояния`,restEnergyUrlHint:`Отдельный URL данных энергии; если пусто, используется URL состояния`,restEnergyHint:`Для каждого значения можно использовать отдельный URL либо URL состояния. Множители используются для преобразования единиц, например 0.001 для Вт·ч→кВт·ч.`,testConnection:`Проверить подключение`,connectionSuccess:`Подключение успешно`,noSwitchesInSwitchbar:`На панели переключателей нет устройств`,enableSwitchbarHint:`Включите «Показывать на панели переключателей» в разделе «Настройки → Умные розетки»`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`Электронная почта`,discord:`Discord`,webhook:`Вебхук`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`Уведомления по электронной почте через SMTP`,telegram:`Уведомления через Telegram-бота`,discord:`Отправка в канал Discord через вебхук`,ntfy:`Бесплатные push-уведомления с возможностью самостоятельного размещения сервера`,pushover:`Простые и надёжные push-уведомления`,callmebot:`Бесплатные уведомления WhatsApp через CallMeBot`,webhook:`Универсальный HTTP POST-запрос на любой URL`,homeassistant:`Постоянные уведомления на панели Home Assistant`,bark:`iOS push-уведомления через Bark (можно разместить у себя)`},lastSuccess:`Последняя отправка: {{date}}`,error:`Ошибка`,printer:`Принтер:`,allPrinters:`Все принтеры`,sendTestNotification:`Отправить тестовое уведомление`,eventSettings:`Настройки событий`,enabled:`Включено`,sendFromProvider:`Отправлять уведомления через этого провайдера`,printEvents:`События печати`,printerStatus:`Состояние принтера`,amsAlarms:`Предупреждения AMS`,amsHtAlarms:`Предупреждения AMS-HT`,printQueue:`Очередь печати`,start:`Запуск`,plateCheck:`Проверка пластины`,complete:`Завершено`,failed:`Ошибка`,stopped:`Остановлено`,progress:`Ход печати`,offline:`Не в сети`,lowFilament:`Мало филамента`,maintenance:`Обслуживание`,amsHumidity:`Влажность AMS`,amsTemp:`Температура AMS`,amsHtHumidity:`Влажность AMS-HT`,amsHtTemp:`Температура AMS-HT`,bedCooled:`Стол остыл`,firstLayer:`Первый слой`,quiet:`Тихий режим`,digest:`Сводка в {{time}}`,printStarted:`Печать началась`,plateNotEmpty:`Пластина не пуста`,plateNotEmptyDescription:`Перед печатью на пластине обнаружены объекты`,plateClearRequired:`Требуется подтверждение стола`,plateClearRequiredDescription:`Печать завершена, очередь ждет подтверждения`,plateClear:`Стол свободен`,printCompleted:`Печать завершена`,bedCooledLabel:`Стол остыл`,bedCooledDescription:`После печати температура стола опустилась ниже заданного порога`,firstLayerCompleteLabel:`Первый слой завершён`,firstLayerCompleteDescription:`Уведомить со снимком после завершения первого слоя`,missingSpoolAssignmentLabel:`Катушка не назначена`,missingSpoolAssignmentDescription:`Уведомить при запуске печати, если для необходимых слотов не назначены катушки`,printFailed:`Ошибка печати`,printStopped:`Печать остановлена`,progressMilestones:`Этапы выполнения`,progressMilestonesDescription:`Уведомлять при 25%, 50% и 75%`,printerOffline:`Принтер не в сети`,printerError:`Ошибка принтера`,aiFailureDetection:`Обнаружение сбоев с помощью ИИ`,aiFailureDetectionDescription:`Уведомить, если Obico AI обнаружит возможный сбой печати`,lowFilamentLabel:`Заканчивается филамент`,maintenanceDue:`Требуется обслуживание`,maintenanceDueDescription:`Уведомить, когда принтеру потребуется обслуживание`,amsHumidityHigh:`Высокая влажность в AMS`,amsHumidityHighDescription:`Влажность в обычной AMS превысила заданный порог`,amsTemperatureHigh:`Высокая температура в AMS`,amsTemperatureHighDescription:`Температура в обычной AMS превысила заданный порог`,amsHtHumidityHigh:`Высокая влажность в AMS-HT`,amsHtHumidityHighDescription:`Влажность в AMS-HT превысила заданный порог`,amsHtTemperatureHigh:`Высокая температура в AMS-HT`,amsHtTemperatureHighDescription:`Температура в AMS-HT превысила заданный порог`,inventoryAlerts:`Уведомления о запасах`,stockReorderAlert:`Пора заказывать`,stockReorderAlertDescription:`Запас по SKU достиг точки повторного заказа`,stockBreakAlert:`Риск исчерпания запаса`,stockBreakAlertDescription:`Запас закончится раньше, чем поступит пополнение`,jobAdded:`Задание добавлено`,jobAddedDescription:`Задание добавлено в очередь`,jobAssigned:`Задание назначено`,jobAssignedDescription:`Задание по модели назначено принтеру`,jobStarted:`Задание запущено`,jobStartedDescription:`Задание из очереди отправлено на печать`,jobWaiting:`Задание ожидает`,jobWaitingDescription:`Задание ожидает филамент или свободный принтер`,jobSkipped:`Задание пропущено`,jobSkippedDescription:`Задание пропущено из-за ошибки предыдущего`,jobFailed:`Не удалось запустить задание`,jobFailedDescription:`Задание не удалось отправить на печать`,queueComplete:`Очередь завершена`,queueCompleteDescription:`Все задания в очереди завершены`,quietHours:`Тихие часы`,noNotificationsDuring:`Не отправлять уведомления в это время`,editProviderToChangeQuietHours:`Измените провайдера, чтобы настроить тихие часы`,dailyDigest:`Ежедневная сводка`,batchNotifications:`Объединять уведомления в одну ежедневную сводку`,sendAt:`Отправлять в {{time}}`,editProviderToChangeDigestTime:`Измените провайдера, чтобы настроить время сводки`,edit:`Изменить`,deleteProvider:`Удалить провайдера уведомлений`,deleteConfirm:`Удалить «{{name}}»? Это действие нельзя отменить.`,delete:`Удалить`,addTitle:`Добавить провайдера уведомлений`,editTitle:`Изменить провайдера уведомлений`,nameLabel:`Название *`,namePlaceholder:`Мои уведомления`,providerTypeLabel:`Тип провайдера *`,configuration:`Настройка`,testConfiguration:`Проверить настройку`,printerFilter:`Фильтр принтеров`,onlyFromPrinter:`Отправлять уведомления только о событиях этого принтера`,quietHoursDnd:`Тихие часы (не беспокоить)`,quietStart:`Начало`,quietEnd:`Окончание`,dailyDigestLabel:`Ежедневная сводка`,sendDigestAt:`Отправлять сводку в`,digestCollected:`События будут собраны и отправлены одной сводкой в указанное время`,notificationEvents:`События для уведомлений`,progressPercent:`(25%, 50%, 75%)`,bedCooledAfterPrint:`(после завершения печати)`,eventPriority:{sectionTitle:`Приоритет ntfy`,helpNtfy:`Выберите приоритет для каждого включённого события. ntfy использует его для усиления оповещений: звука, видимости и поведения push-уведомлений. Для неуказанных событий используется приоритет по умолчанию сервера ntfy.`,min:`Минимальный`,low:`Низкий`,default:`Обычный`,high:`Высокий`,urgent:`Срочный`},cancel:`Отмена`,save:`Сохранить`,add:`Добавить`,nameRequired:`Укажите название`,fieldRequired:`Поле «{{field}}» обязательно`,haDataInvalid:`Поле Data должно быть корректным JSON-объектом, напр. {"priority": "high", "ttl": 0}`,phoneNumber:`Номер телефона`,apiKey:`Ключ API`,serverUrl:`URL сервера`,topic:`Тема`,authToken:`Токен авторизации`,userKey:`Ключ пользователя`,appToken:`Токен приложения`,priority:`Приоритет`,pushoverRetry:`Повтор экстренного уведомления (с)`,pushoverExpire:`Срок действия экстренного уведомления (с)`,botToken:`Токен бота`,chatId:`ID чата`,telegramThreadId:`ID темы форума`,telegramThreadIdHelp:`Необязательно. Отправляет в конкретную тему форум-группы — последнее число в ссылке на тему (t.me/c/.../25). Оставьте пустым для темы General.`,telegramThreadIdInvalid:`ID темы форума должен быть числом.`,smtpServer:`SMTP-сервер`,smtpPort:`Порт SMTP`,security:`Защита соединения`,authentication:`Аутентификация`,username:`Имя пользователя`,password:`Пароль`,fromEmail:`Адрес отправителя`,toEmail:`Адрес получателя`,webhookUrl:`URL вебхука`,payloadFormat:`Формат данных`,authorization:`Авторизация`,titleFieldName:`Имя поля заголовка`,messageFieldName:`Имя поля сообщения`,editTemplate:`Изменить шаблон: {{name}}`,titleLabel:`Заголовок`,bodyLabel:`Текст`,titlePlaceholder:`Заголовок уведомления...`,bodyPlaceholder:`Текст уведомления...`,availableVariables:`Доступные переменные`,clickToInsert:`Нажмите, чтобы вставить в позицию курсора в тексте`,livePreview:`Предварительный просмотр`,hide:`Скрыть`,show:`Показать`,loadingPreview:`Загрузка предварительного просмотра...`,enterTemplateContent:`Введите содержимое шаблона для предварительного просмотра`,titlePreview:`Заголовок:`,bodyPreview:`Текст:`,resetToDefault:`Восстановить стандартный шаблон`,titleRequired:`Укажите заголовок`,bodyRequired:`Введите текст уведомления`,notificationLog:`Журнал уведомлений`,showFailedOnly:`Только неудачные`,last24Hours:`Последние 24 часа`,last7Days:`Последние 7 дней`,last30Days:`Последние 30 дней`,last90Days:`Последние 90 дней`,justNow:`Только что`,noFailedNotifications:`Неудачных уведомлений нет`,noNotificationsLogged:`В журнале пока нет уведомлений`,unknownProvider:`Неизвестный провайдер`,logTitle:`Заголовок`,logMessage:`Сообщение`,logError:`Ошибка`,logProvider:`Провайдер: {{type}}`,logTime:`Время: {{time}}`,refresh:`Обновить`,clearOld:`Удалить старые`,statsSummary:`За последние {{days}} дней:`,statsNotifications:`уведомлений`,statsSent:`отправлено: {{count}}`,statsFailed:`ошибок: {{count}}`,eventTypes:{print_start:`Печать началась`,print_complete:`Печать завершена`,print_failed:`Ошибка печати`,print_stopped:`Печать остановлена`,print_progress:`Ход печати`,printer_offline:`Принтер не в сети`,printer_error:`Ошибка принтера`,filament_low:`Заканчивается филамент`,maintenance_due:`Требуется обслуживание`,test:`Тест`},userEmail:{title:`Уведомления`,emailNotifications:`Уведомления по электронной почте`,emailNotificationsDesc:`Получать письма о собственных заданиях печати. Для отправки используются системные параметры SMTP из раздела расширенной аутентификации.`,sendingTo:`Уведомления будут отправляться на адрес`,noEmailWarning:`Для вашей учётной записи не указан адрес электронной почты. Обратитесь к администратору.`,printJobNotifications:`Уведомления о заданиях печати`,printJobNotificationsDesc:`Выберите события, при которых будут отправляться письма о запущенных вами заданиях.`,printJobStarts:`Запуск задания печати`,printJobStartsDesc:`Уведомлять о начале вашего задания печати.`,printJobFinishes:`Завершение задания печати`,printJobFinishesDesc:`Уведомлять об успешном завершении вашего задания печати.`,printErrors:`Ошибки печати`,printErrorsDesc:`Уведомлять, если задание завершилось ошибкой или при печати возникла проблема.`,printJobStops:`Остановка задания печати`,printJobStopsDesc:`Уведомлять об отмене или остановке вашего задания печати.`,saveSuccess:`Настройки уведомлений сохранены.`,saveError:`Не удалось сохранить настройки уведомлений.`}},richTextEditor:{bold:`Полужирный`,italic:`Курсив`,underline:`Подчёркивание`,bulletList:`Маркированный список`,numberedList:`Нумерованный список`,alignLeft:`По левому краю`,alignCenter:`По центру`,alignRight:`По правому краю`,addLink:`Добавить ссылку`,removeLink:`Удалить ссылку`},externalLinks:{title:`Ссылки на боковой панели`,sidebarLayout:`Боковая панель`,sidebarLayoutDescription:`Показывайте или скрывайте встроенные страницы, добавляйте внешние ссылки и перетаскивайте пункты, меняя порядок навигации.`,systemPages:`Страницы Bambuddy`,externalLinks:`Внешние ссылки`,visibleInSidebar:`Показывается на боковой панели`,hiddenFromSidebar:`Скрыто с боковой панели`,requiredInSidebar:`Обязательный пункт боковой панели`,hidePage:`Скрыть страницу`,showPage:`Показать страницу`,settingsCannotBeHidden:`Настройки нельзя скрыть`,noLinksConfigured:`Внешние ссылки не настроены`,deleteLink:`Удалить ссылку`,removeCustomIcon:`Удалить пользовательский значок`,openInNewTab:`Открывать в новой вкладке`,placeholders:{linkName:`Моя ссылка`}},keyboardShortcuts:{title:`Горячие клавиши`,navigation:`Навигация`,archivesSection:`Архив`,kProfilesSection:`K-профили`,generalSection:`Общие`,shortcuts:{goToPrinters:`Перейти к принтерам`,goToArchives:`Перейти в архив`,goToQueue:`Перейти к очереди`,goToStats:`Перейти к статистике`,goToProfiles:`Перейти к облачным профилям`,goToSettings:`Перейти к настройкам`,focusSearch:`Перейти в строку поиска`,openUploadModal:`Открыть окно загрузки`,clearSelection:`Снять выделение / убрать фокус с поля`,contextMenu:`Контекстное меню карточки`,refreshProfiles:`Обновить профили`,newProfile:`Новый профиль`,exitSelectionMode:`Выйти из режима выделения`,showHelp:`Показать эту справку`},footer:`Нажмите Esc или щёлкните снаружи, чтобы закрыть`},notificationLog:{title:`Журнал уведомлений`,events:{printStarted:`Печать началась`,printComplete:`Печать завершена`,printFailed:`Ошибка печати`,printStopped:`Печать остановлена`,progress:`Ход выполнения`,printerOffline:`Принтер не в сети`,printerError:`Ошибка принтера`,lowFilament:`Заканчивается филамент`,maintenanceDue:`Требуется обслуживание`,test:`Тест`},timeAgo:{justNow:`Только что`,minutesAgo:`{{minutes}} мин назад`,hoursAgo:`{{hours}} ч назад`}},restoreBackup:{title:`Восстановление резервной копии`,restoring:`Восстановление...`,restoreComplete:`Восстановление завершено`,restoreFailed:`Ошибка восстановления`,importSettings:`Импортировать настройки из файла резервной копии`,pleaseWait:`Подождите, пока данные восстанавливаются`,clickToSelect:`Нажмите, чтобы выбрать файл резервной копии (.json или .zip)`,howDuplicateHandling:`Как обрабатываются совпадения:`,categories:{printers:`Принтеры`,smartPlugs:`Умные розетки`,notificationProviders:`Провайдеры уведомлений`,filaments:`Филаменты`,archives:`Архив`,pendingUploads:`Ожидающие загрузки`,settingsTemplates:`Настройки и шаблоны`},matchingInfo:{printers:`сопоставляются по серийному номеру`,smartPlugs:`сопоставляются по IP-адресу`,notificationProviders:`сопоставляются по названию`,filaments:`сопоставляются по названию, типу и бренду`,archives:`сопоставляются по хешу содержимого`,pendingUploads:`сопоставляются по имени файла`,settingsTemplates:`всегда перезаписываются`},replaceExisting:`Заменить существующие данные`,keepExisting:`Сохранить существующие данные`,replaceDescription:`Перезаписать уже существующие элементы данными из резервной копии`,keepDescription:`Восстановить только отсутствующие элементы`,caution:`Внимание:`,cautionText:`При перезаписи текущая конфигурация будет заменена данными из резервной копии. В целях безопасности коды доступа к принтерам никогда не перезаписываются.`,itemsRestored:`Восстановлено элементов`,itemsSkipped:`Пропущено элементов`,restored:`Восстановлено`,skipped:`Пропущено (уже существует)`,filesLabel:`Файлы (3MF, миниатюры и т. п.)`,newApiKeysGenerated:`Созданы новые ключи API`,newApiKeysWarning:`Эти ключи показываются только один раз. Скопируйте их сейчас!`,processingBackup:`Обработка резервной копии...`,noDataFound:`В резервной копии не найдено данных для восстановления.`,failedToRestore:`Не удалось восстановить резервную копию. Проверьте формат файла.`},backupExport:{title:`Экспорт резервной копии`,selectData:`Выберите данные для включения`,selectAll:`Выбрать всё`,selectNone:`Снять выделение`,categoryDescriptions:{settings:`Язык, тема и настройки обновлений`,notifications:`ntfy, Pushover, Discord и другие`,templates:`Пользовательские шаблоны сообщений`,smartPlugs:`Конфигурация розеток Tasmota`,externalLinks:`Ссылки на внешние сервисы в боковой панели`,printers:`Сведения о принтерах (без кодов доступа)`,plateDetection:`Эталонные изображения пустых пластин`,filaments:`Типы и стоимость филамента`,maintenance:`Пользовательские графики обслуживания`,archives:`Все данные печати и файлы (3MF, миниатюры, фотографии)`,projects:`Проекты, позиции спецификаций и вложения`,pendingUploads:`Загрузки виртуальных принтеров, ожидающие проверки`,apiKeys:`Ключи API вебхуков (при импорте создаются новые)`},requiresPrinters:`Необходимо выбрать раздел «Принтеры»`,zipFileWarning:`Будет создан ZIP-файл.`,zipFileDescription:`В него войдут все файлы 3MF, миниатюры, таймлапсы и фотографии. Операция может занять некоторое время, а файл — получиться большим.`,includeAccessCodes:`Включить коды доступа`,includeAccessCodesDescription:`Для переноса на другой компьютер`,includeAccessCodesWarning:`Коды доступа попадут в файл открытым текстом. Храните резервную копию в безопасном месте!`,categoriesSelected:`Выбрано категорий: {{selectedCount}}`},pendingUploads:{placeholders:{notes:`Добавьте примечания об этой печати...`},discardUpload:`Отклонить загрузку`,archiveAllUploads:`Добавить все загрузки в архив`,discardAllUploads:`Отклонить все загрузки`,archive:`В архив`,timeAgo:{justNow:`Только что`,minutesAgo:`{{minutes}} мин назад`,hoursAgo:`{{hours}} ч назад`,daysAgo:`{{days}} дн. назад`}},apiBrowser:{placeholders:{requestBody:`Тело запроса JSON...`,searchEndpoints:`Поиск конечных точек...`}},configureAmsSlot:{title:`Настройка слота AMS`,slotConfigured:`Слот настроен!`,configuringSlot:`Настраивается слот:`,slotLabel:`{{ams}}, слот {{slot}}`,searchPresets:`Поиск профилей...`,colorPlaceholder:`Название или HEX-код цвета (например: brown, FF8800)`,clearCustomColor:`Очистить пользовательский цвет`,noCloudPresets:`Облачных профилей нет. Войдите в Bambu Cloud для синхронизации.`,noPresetsAvailable:`Нет доступных профилей. Войдите в Bambu Cloud или импортируйте локальные профили.`,noMatchingPresets:`Подходящие профили не найдены.`,custom:`Пользовательский`,builtin:`Встроенный`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`Настройки отправлены на принтер`,filamentProfile:`Профиль филамента`,kProfileLabel:`K-профиль (Pressure Advance)`,filteringFor:`Фильтр по материалу: {{material}}`,noKProfile:`Без K-профиля (стандартное значение 0,020)`,noMatchingKProfiles:`Подходящие K-профили не найдены. Будет использовано стандартное значение K=0,020.`,otherKProfiles:`Другие K-профили на этом принтере`,selectFilamentFirst:`Сначала выберите профиль филамента`,kFromCalibration:`K={{value}} из калибровки принтера`,customColorLabel:`Пользовательский цвет (необязательно)`,presetColors:`Цвета {{name}}:`,showLessColors:`Показать меньше цветов`,showMoreColors:`Показать больше цветов`,clear:`Очистить`,hexLabel:`HEX: #{{hex}}`,resetting:`Сброс...`,resetSlot:`Сбросить слот`,cancel:`Отмена`,configuring:`Настройка...`,configureSlot:`Настроить слот`},githubBackup:{title:`Резервное копирование в Git`,history:`История`,downloadBackup:`Скачать резервную копию`,restoreBackup:`Восстановить резервную копию`,noBackupsYet:`Резервных копий пока нет`},emailSettings:{placeholders:{fromName:`BamBuddy`}},tagManagement:{searchTags:`Поиск меток...`,renameTag:`Переименовать метку`,deleteTag:`Удалить метку`},notificationTemplates:{placeholders:{title:`Заголовок уведомления...`,body:`Текст уведомления...`}},batchTag:{placeholders:{newTag:`Введите новую метку...`}},photoGallery:{deletePhoto:`Удалить фотографию`},filamentHoverCard:{copySpoolUuid:`Скопировать UUID катушки`},kProfilesView:{hasNote:`Есть примечание`,copyProfile:`Копировать профиль`},layout:{openMenu:`Открыть меню`,noPermissionSystemInfo:`У вас нет разрешения на просмотр системной информации`},dashboard:{dragToReorder:`Перетащите, чтобы изменить порядок`,hideWidget:`Скрыть виджет`},notificationProviderCard:{deleteNotificationProvider:`Удалить провайдера уведомлений`},fileManagerModal:{closeFileManager:`Закрыть файловый менеджер`,sortFiles:`Сортировать файлы`,goToParentFolder:`Перейти в родительскую папку`,threeView:`Просмотр 3D`},embeddedCameraViewer:{refreshStream:`Обновить поток`,close:`Закрыть`,zoomOut:`Уменьшить`,resetZoom:`Сбросить масштаб`,zoomIn:`Увеличить`,dragToResize:`Перетащите, чтобы изменить размер`},timelapseViewer:{skipBack5s:`Назад на 5 с`,skipForward5s:`Вперёд на 5 с`},notificationProviders:{descriptions:{email:`Уведомления по электронной почте через SMTP`,telegram:`Уведомления через Telegram-бота`,discord:`Отправка в канал Discord через вебхук`,ntfy:`Бесплатные push-уведомления с возможностью самостоятельного размещения сервера`,pushover:`Простые и надёжные push-уведомления`,callmebot:`Бесплатные уведомления WhatsApp через CallMeBot`,webhook:`Обычный HTTP POST на любой URL`}},logViewer:{searchPlaceholder:`Поиск по сообщению или имени логгера...`,noLogEntries:`Записи журнала не найдены`},switchbarPopover:{noSwitchesInSwitchbar:`На панели переключателей нет устройств`},projectPageModal:{placeholders:{title:`Название`,designer:`Автор`,license:`Лицензия`,description:`Введите описание...`,profileTitle:`Название профиля`,profileDescription:`Описание профиля...`}},spoolmanSettings:{},time:{unknown:`—`,waiting:`Ожидание`,justNow:`Только что`,now:`Сейчас`,minsAgo:`{{count}} мин назад`,inMins:`через {{count}} мин`,hoursAgo:`{{count}} ч назад`,inHours:`через {{count}} ч`,daysAgo:`{{count}} дн. назад`,inDays:`через {{count}} дн.`},spoolbuddy:{nav:{dashboard:`Панель`,ams:`AMS`,inventory:`Катушки`,writeTag:`Запись метки`,settings:`Настройки`},status:{nfcReady:`NFC готов`,nfcOff:`NFC выключен`,offline:`Не в сети`,online:`В сети`,noPrinters:`Нет принтеров`,deviceOffline:`Устройство не в сети`,waitingConnection:`Ожидание подключения устройства...`,systemReady:`Система готова`,status:`Состояние`},dashboard:{readyToScan:`Готово к сканированию`,idleMessage:`Поставьте катушку на весы для идентификации`,nfcHint:`Метка NFC будет считана автоматически`,device:`Устройство`,syncWeight:`Синхронизировать массу`,weightSynced:`Синхронизировано!`,unknownTag:`Неизвестная метка`,newTag:`Обнаружена новая метка`,onScale:`на весах`,linkSpool:`Связать с катушкой`,linkTagTitle:`Связать метку с катушкой`,linkTag:`Связать метку`,selectSpool:`Выберите катушку, с которой нужно связать эту метку:`,noUntagged:`Катушки без меток не найдены`,tagDetected:`Метка обнаружена`,noTag:`Метка отсутствует`,tagId:`Метка`,grossWeight:`Масса брутто`,spoolSize:`Размер катушки`,close:`Закрыть`,currentSpool:`Текущая катушка`,plateReady:`Пластина готова: {{name}}`,plateReadyLabel:`Пластины, готовые к очистке`,plateClearAction:`Очищено`,plateClearedToast:`Пластина отмечена как очищенная`,plateClearFailed:`Не удалось отметить пластину как очищенную`},modal:{spoolDetected:`Катушка обнаружена`,assignToAms:`Назначить в AMS`,syncWeight:`Синхронизировать массу`,weightSynced:`Синхронизировано!`,syncing:`Синхронизация...`,newTagDetected:`Обнаружена новая метка`,addToInventory:`Добавить в учёт`,assignToAmsTitle:`Назначить в AMS`,selectSlot:`Выберите слот`,assign:`Назначить`,assigning:`Назначение...`,assignSuccess:`Назначено!`,assignPendingInsert:`Назначено. Слот будет настроен после установки катушки.`,assignError:`Не удалось назначить катушку. Повторите попытку.`,noPrinterSelected:`Выберите принтер...`,noAmsDetected:`На этом принтере AMS не обнаружена`,slot:`Слот`},weight:{noReading:`Нет показаний`,stable:`Стабильно`,measuring:`Измерение...`,tare:`Тарировать`,calibrate:`Калибровать`},spool:{remaining:`Остаток`,material:`Материал`,brand:`Бренд`,color:`Цвет`,coreWeight:`Сердечник`,labelWeight:`По этикетке`,scaleWeight:`По весам`,netWeight:`Нетто`,lastUsed:`Последнее использование`},ams:{noData:`AMS не обнаружена`,connectAms:`Подключите AMS, чтобы увидеть слоты филамента`,noPrinter:`Принтер не выбран`,selectPrinter:`Выберите принтер на верхней панели`,printerDisconnected:`Принтер отключён`,humidity:`Влажность`,level:`Уровень`,active:`Активен`,slot:`Слот`,empty:`Пусто`},inventory:{search:`Поиск катушек...`,empty:`В учёте нет катушек`,noResults:`Подходящие катушки не найдены`,spools:`катушек`,addSpool:`Добавить катушку`},settings:{tabDevice:`Устройство`,tabDisplay:`Экран`,tabScale:`Весы`,tabUpdates:`Обновления`,nfcReader:`Считыватель NFC`,type:`Тип`,connection:`Подключение`,notConnected:`Н/Д`,deviceInfo:`Сведения об устройстве`,hostname:`Хост`,uptime:`Время работы`,systemConfig:`Бэкенд и авторизация`,backendUrl:`URL бэкенда Bambuddy`,apiToken:`Токен API`,apiTokenPlaceholder:`Введите токен API`,saveConfig:`Сохранить конфигурацию`,systemQueued:`Конфигурация поставлена в очередь.`,nfcDiagnostic:`Диагностика NFC`,scaleDiagnostic:`Диагностика весов`,readTagDiagnostic:`Диагностика чтения метки`,testNfc:`Проверить считыватель`,testScale:`Проверить точность`,testReadTag:`Считать метку`,systemFieldsRequired:`Необходимо указать URL бэкенда.`,brightness:`Яркость`,saved:`Сохранено`,noBacklight:`Подсветка DSI не обнаружена. Для управления яркостью требуется дисплей DSI.`,screenBlank:`Тайм-аут отключения экрана`,screenBlankDesc:`Экран выключается при бездействии. Коснитесь его для пробуждения.`,displayNote:`Яркость регулируется программным фильтром.`,scaleCalibration:`Калибровка весов`,currentWeight:`Текущая масса`,tareOffset:`Тара`,calFactor:`Коэффициент`,knownWeight:`Эталонная масса`,calStep1:`Уберите всё с весов и нажмите «Установить ноль».`,calStep2:`Положите на весы груз известной массы.`,setZero:`Установить ноль`,calibrateNow:`Калибровать`,calibrated:`Откалибровано`,tareSet:`Команда тарирования отправлена. Ожидание устройства...`,tareComplete:`Тарирование завершено!`,tareTimedOut:`Истекло время ожидания тарирования — демон SpoolBuddy запущен?`,tareFailed:`Не удалось отправить команду тарирования`,zeroSet:`Нулевая точка установлена. Положите на весы груз известной массы.`,calibrationDone:`Калибровка завершена!`,calibrationFailed:`Ошибка калибровки`,lastCalibrated:`Последняя калибровка`,stable:`Стабильно`,settling:`Стабилизация...`,firmware:`Прошивка`,scale:`Весы`,noDevice:`Устройство SpoolBuddy не найдено`,daemonVersion:`Версия демона`,currentVersion:`Текущая`,versionPending:`Ожидание демона...`,checking:`Проверка...`,checkUpdates:`Проверить обновления`,updateAvailable:`Доступно обновление`,updateInstructions:`Обновление по SSH: запустите установочный скрипт SpoolBuddy.`,upToDate:`Установлена актуальная версия`,includeBeta:`Включать бета-версии`},writeTag:{tabExisting:`Существующая катушка`,tabNew:`Новая катушка`,tabReplace:`Заменить метку`,searchPlaceholder:`Поиск по материалу, цвету или бренду...`,noUntaggedSpools:`Нет катушек без меток`,noTaggedSpools:`Нет катушек с метками`,selectSpool:`Выберите катушку, затем положите чистую метку NTAG на считыватель`,placeTag:`Положите метку NTAG на считыватель`,tagReady:`Метка обнаружена — можно записывать`,writeTag:`Записать метку`,replaceTag:`Заменить метку`,writing:`Запись метки...`,waiting:`Ожидание SpoolBuddy...`,writeSuccess:`Метка успешно записана!`,writeFailed:`Ошибка записи`,queueFailed:`Не удалось поставить команду записи в очередь`,tryAgain:`Повторить`,cancel:`Отмена`,replaceWarning:`Старая метка будет отвязана и заменена новой.`,deviceOffline:`SpoolBuddy не в сети`,material:`Материал`,colorName:`Название цвета`,color:`Цвет`,brand:`Бренд`,weight:`Масса (г)`,createSpool:`Создать катушку`,creating:`Создание...`,spoolCreated:`Катушка создана! Можно записывать метку.`,createFailed:`Не удалось создать катушку`,incompleteDataWarning:`Метка записана с неполными данными Spoolman`},quickMenu:{printerPower:`Питание принтера`,systemControls:`Система`,restartDaemon:`Перезапустить демон`,restartBrowser:`Перезапустить браузер`,reboot:`Перезагрузить`,shutdown:`Выключить`,swipeToClose:`Проведите вниз, чтобы закрыть`,confirmTitle:`Подтверждение`,confirmShutdown:`Выключить SpoolBuddy? Для повторного включения потребуется физический доступ.`,confirmReboot:`Перезагрузить SpoolBuddy?`,confirmRestartDaemon:`Перезапустить демон SpoolBuddy? NFC и весы временно будут недоступны.`,confirmRestartBrowser:`Перезапустить браузер киоска? Экран ненадолго погаснет.`,confirm:`Подтвердить`,confirmPlugOn:`Включить {{name}}?`,confirmPlugOff:`Выключить {{name}}?`,turnOn:`Включить`,turnOff:`Выключить`}},diagnostic:{modalTitle:`Диагностика подключения — {{name}}`,running:`Выполняется диагностика...`,runningElapsed:`Выполняется диагностика... ({{elapsed}} с)`,waitingForReportHint:`Ожидание публикации отчёта о состоянии принтера — это может занять до {{max}} секунд.`,runFailed:`Не удалось выполнить диагностику: {{error}}`,retry:`Запустить снова`,runButton:`Запустить диагностику`,sectionTitle:`Диагностика подключения`,sectionDescription:`Проверьте, почему принтер не подключается или не печатает: доступность портов, режим разработчика LAN, сетевой режим Docker и учётные данные.`,noPrinters:`Принтеры не настроены.`,overall:{ok:`Проблем не обнаружено — подключение к принтеру исправно.`,warnings:`Принтер должен работать, но некоторые пункты требуют внимания.`,problems:`Обнаружены проблемы, объясняющие, почему принтер не подключается или не печатает.`},check:{port_mqtt:{title:`Порт управления (MQTT 8883)`,pass:`Доступен — принтер принимает управляющие подключения.`,fail:`Порт 8883 недоступен. Принтер выключен, имеет другой IP-адрес либо подключение блокирует межсетевой экран. Проверьте IP-адрес принтера и доступность порта 8883.`},port_ftps:{title:`Порт передачи файлов (FTPS 990)`,pass:`Доступен — отправка файлов печати будет работать.`,warn:`Порт 990 недоступен. Мониторинг может работать, но отправка заданий на принтер завершится ошибкой. Убедитесь, что порт 990 не заблокирован.`},external_storage:{title:`Сохранять отправленные файлы во внешнем хранилище (шаг 4 установки)`,pass:`Принтер сообщает, что параметр включён: отправленные файлы будут сохраняться на SD-карте, а в архиве появятся миниатюры и метаданные слайсера.`,fail:`Принтер сообщает, что параметр выключен. Включите «Сохранять отправленные файлы во внешнем хранилище»: в новых прошивках (P2S 01.02 / Bambu Studio 2.6+) переключатель находится в настройках печати принтера, в старых — на вкладке «Устройство» Bambu Studio / OrcaSlicer. Без этого у всех архивных заданий не будет миниатюр и метаданных слайсера.`,skip:`Не проверено — требуется активное подключение MQTT. В старых версиях слайсеров этот параметр существует только в слайсере и принтер его не сообщает, поэтому проверка может пройти даже при выключенном параметре. Проверьте шаг 4 установки вручную.`,skip_unsupported_model:`В этой модели есть слот SD-карты, но включить соответствующую функцию невозможно: текущая прошивка серии P1 не предоставляет переключатель в Bambu Studio, а у принтера нет экрана. Исправлять здесь нечего. Пока Bambu Lab не добавит поддержку в прошивку, архивные задания могут сохраняться без миниатюр и метаданных слайсера.`},port_rtsps:{title:`Порт камеры ({{protocol}} {{port}})`,pass:`Доступен — видеопоток камеры будет работать.`,warn:`Порт {{port}} недоступен. Просмотр камеры в реальном времени работать не будет. На печать это не влияет.`},network_mode:{title:`Сетевой режим Docker`,pass:`Используется сетевой режим host.`,warn:`Bambuddy запущен в Docker с сетью bridge. Для обнаружения принтеров и виртуального принтера требуется режим host — пересоздайте контейнер с параметром «network_mode: host».`,skip:`Bambuddy запущен не в Docker — проверка неприменима.`},subnet:{title:`Подсеть`,pass:`Принтер и Bambuddy находятся в одной подсети.`,warn:`Принтер ({{printer_ip}}) и Bambuddy ({{host_ip}}) находятся в разных подсетях. Без настроенной маршрутизации между подсетями они могут быть недоступны друг для друга.`,skip:`Не удалось определить подсеть — проверка пропущена.`},mqtt_auth:{title:`Учётные данные принтера`,pass:`Принтер принял подключение.`,fail:`Принтер доступен, но Bambuddy к нему не подключён. Скорее всего, неверны код доступа или серийный номер — код доступа изменяется при каждом переключении режима «Только LAN» или режима разработчика, поэтому снова скопируйте его с экрана принтера. Так же выглядит принтер, который перезагружается или уже исчерпал лимит одновременных подключений.`,fail_auth_rejected:`Принтер отклонил учётные данные Bambuddy. Код доступа или серийный номер неверны — код доступа изменяется при каждом переключении режима «Только LAN» или режима разработчика. Снова скопируйте его с экрана принтера и сохраните в настройках принтера.`,skip:`Не проверено — принтер недоступен.`},developer_mode:{title:`Режим разработчика LAN`,pass:`Режим разработчика включён.`,fail:`Режим разработчика на принтере ВЫКЛЮЧЕН. Включите его в настройках LAN принтера и подтвердите кнопкой OK. Без него задания печати не запускаются.`,skip:`Не удалось проверить — требуется активное подключение к принтеру.`},printer_publishing:{title:`Принтер публикует состояние`,pass:`Принтер публикует обновления состояния — AMS, филаменты и K-профили будут корректно передаваться в слайсер.`,fail:`MQTT-брокер принял подключение, но принтер не опубликовал ни одного отчёта о состоянии. Почти всегда причина в неверном регистре или ошибке в серийном номере: тема device//api/v1/metrics для моніторингу Prometheus/Grafana.`,bearerTokenOptional:`Токен Bearer (необов’язково)`,bearerTokenHint:`Якщо встановлено, запити мають містити Авторизація: носій `,metricsConnectionStatus:`Статус підключення`,metricsPrinterState:`Стан принтера (неактивний /printing/etc)`,metricsPrintProgress:`Прогрес друку 0-100%`,metricsBedTemp:`Температура столу`,metricsNozzleTemp:`Температура сопла`,metricsPrintsTotal:`Загальна кількість друків за результатами`,metricsMore:`...і багато іншого (шари, вентилятори, черга, використання філаментів)`,smartPlugsDescription:`Підключіть розумні розетки (Tasmota або Home Assistant), щоб автоматизувати керування живленням і відстежувати споживання електроенергії вашими принтерами.`,allOn:`Все включено`,allOff:`Все вимкнено`,addSmartPlug:`Додати розумну розетку`,energySummary:`Відновити енергетики`,currentPower:`Поточна потужність`,plugsOnline:`Розумні розетки в мережі: {{reachable}}/{{total}}`,today:`Сьогодні`,yesterday:`вчора`,total:`Всього`,enablePlugsForSummary:`Увімкніть розетки, щоб переглянути підсумок енергії`,addNotificationProvider:`додати`,systemBadge:`(Система)`,creating:`Створення...`,changing:`Зміна...`,deleteUserAndItems:`Видалити користувача ТА його елементи`,deleteUserKeepItems:`Видалити користувача, зберегти елементи (стати без власника)`,ok:`добре`,twoFa:{totpTitle:`Програма Authenticator (TOTP)`,totpDesc:`Використовуйте програму автентифікації, наприклад Google Authenticator Aegis або Authy.`,emailOtpTitle:`Одноразовий код електронною поштою`,emailOtpDesc:`Надішліть одноразовий код на {{email}} під час входу.`,emailOtpNoEmail:`Щоб увімкнути цей метод, додайте адресу електронної пошти до свого облікового запису.`,addEmailFirst:`У вашому обліковому записі немає адреси електронної пошти. Попросіть адміністратора додати її, перш ніж вмикати одноразові коди електронною поштою.`,setupTotp:`Налаштувати додаток Authenticator`,setupAuthApp:`Налаштувати додаток Authenticator`,setupInstructions:`Відскануйте наведений нижче QR-код за допомогою програми автентифікації, а потім підтвердьте кодом.`,manualEntry:`Не можете сканувати? Введіть цей секрет вручну:`,scannedContinue:`Код відскановано — продовжити`,enterCodeToConfirm:`Введіть 6-значний код із програми автентифікації, щоб підтвердити налаштування.`,activate:`Активувати`,disableTotp:`Вимкнути автентифікатор`,disableConfirmHint:`Введіть дійсний код TOTP або резервний код, щоб вимкнути автентифікатор.`,totpDisabled:`Програму Authenticator вимкнено.`,emailOtpEnabled:`Одноразові коди електронною поштою ввімкнено.`,emailOtpDisabled:`Одноразові коди електронною поштою вимкнено.`,smtpRequired:`Спочатку налаштуйте та перевірте параметри SMTP.`,invalidCode:`Невірний код. Спробуйте ще раз.`,enableEmailOtp:`Увімкнути одноразові коди електронною поштою`,disableEmailOtp:`Вимкнути одноразові коди електронною поштою`,emailSetupEnterCode:`Код підтвердження надіслано на вашу адресу електронної пошти. Введіть його нижче, щоб підтвердити доступ до цієї поштової скриньки.`,verifyAndEnable:`Перевірити й увімкнути`,emailDisablePasswordHint:`Введіть пароль свого облікового запису, щоб підтвердити вимкнення OTP електронної пошти.`,passwordPlaceholder:`Введіть свій пароль`,backupCodesTitle:`Зберегти резервні коди`,backupCodesWarning:`Збережіть ці коди в безпечному місці. Кожен код можна використати лише один раз, і він більше не відображатиметься.`,backupCodesRemaining:`Залишилося резервних кодів: {{count}}`,savedCodes:`Я зберіг свої коди`,regenBackup:`Створити нові резервні коди`,regenBackupHint:`Введіть поточний код TOTP, щоб створити 10 нових резервних кодів. Усі існуючі резервні коди стануть недійсними.`,newBackupCodes:`Нові резервні коди`,linkedAccounts:`Пов’язані облікові записи SSO.`,linkedAccountsDesc:`Ці зовнішні постачальники ідентифікаційної інформації пов’язані з вашим обліковим записом.`,oidcUnlinked:`Обліковий запис від’єднано.`},sessionPolicy:{title:`Політика сеансу`,description:`Максимальна тривалість сеансу для входу нових користувачів. Уже випущені токени зберігають початковий термін дії.`,preset24h:`24 години`,preset7d:`7 днів`,preset30d:`30 днів`,customHoursLabel:`Тривалість користувацького сеансу в годинах`,hoursSuffix:`години`,warning:`Довші сеанси знижують захист від автоматичного виходу. Рекомендовано лише для надійних розгортань для одного користувача.`},oidc:{title:`Постачальники SSO / OIDC`,desc:`Налаштуйте постачальників OpenID Connect, щоб дозволити єдиний вхід через зовнішніх постачальників ідентифікації.`,addProvider:`Додати постачальника`,newProvider:`Новий постачальник`,empty:`Постачальників OIDC ще не налаштовано.`,created:`Постачальник створено.`,updated:`Постачальника оновлено.`,deleted:`Постачальника видалено.`,refreshIcon:`Значок оновлення`,removeIcon:`Видалити значок`,iconRefreshed:`Значок оновлено.`,iconRemoved:`Значок видалено.`,iconFetchFailed:`Не вдалося отримати значок за URL постачальника.`,deleteTitle:`Видалити постачальника`,deleteMessage:`Видалити «{{name}}»? Усі пов’язані облікові записи користувачів буде від’єднано.`,form:{name:`Відображуване ім’я`,issuerUrl:`URL емітента`,clientId:`ID клієнта`,clientSecret:`Секрет клієнта`,scopes:`Області доступу`,iconUrl:`URL значка (необов’язково)`,enabled:`Увімкнено`,autoCreate:`Автоматичне створення користувачів`,autoCreateDesc:`Автоматично створювати локальний обліковий запис під час першого входу.`,autoLink:`Автоматичне пов’язування наявних облікових записів`,autoLinkDesc:`Автоматично пов’язувати наявні локальні облікові записи за збігом адреси електронної пошти під час першого входу.`,secretHint:`залиште порожнім, щоб зберегти поточне значення`,secretPlaceholder:`новий секрет`,emailClaim:`Поле електронної пошти`,emailClaimDesc:`Поле JWT, що використовується як адреса електронної пошти. Для Azure Entra ID, який не надсилає email_verified, використовуйте preferred_username або upn. Указуйте лише назви надійних полів.`,emailClaimPlaceholder:`email`,emailClaimCustomClaimAutoLinkWarning:`Власне поле можна безпечно використовувати для автоматичного пов’язування, лише якщо його значенням керує адміністратор організації, наприклад upn або preferred_username в Azure Entra ID. Не вмикайте автоматичне пов’язування, якщо IdP дозволяє користувачам самостійно задавати це поле.`,requireEmailVerified:`Вимагати підтвердження електронної пошти`,requireEmailVerifiedDesc:`Приймати поле електронної пошти лише тоді, коли постачальник позначив адресу як підтверджену.`,requireEmailVerifiedWarning:`Попередження: адресу електронної пошти буде прийнято навіть без підтвердження. Використовуйте це лише з надійними постачальниками.`,requireEmailVerifiedAutoLink:`Щоб змінити це налаштування, спочатку вимкніть автоматичне пов’язування.`,defaultGroup:`Група за замовчуванням`,defaultGroupDesc:`Група, яку призначають автоматично створеним користувачам. Якщо її не задано, використовується група «Глядачі».`,defaultGroupViewersFallback:`Глядачі (за замовчуванням)`,autologin:`Автовхід`,autologinDesc:`Одразу перенаправляти неавтентифікованих відвідувачів до цього постачальника. Автоматичний вхід можна ввімкнути лише для одного постачальника.`}},encryption:{title:`Стан шифрування MFA`,enabledFromEnv:`Шифрування даних у сховищі ввімкнено — ключ отримано зі змінної середовища MFA_ENCRYPTION_KEY`,enabledFromFile:`Шифрування даних у сховищі ввімкнено — ключ завантажено з каталогу даних`,enabledGenerated:`Шифрування даних у сховищі ввімкнено з автоматично створеним ключем`,notConfigured:`Шифрування даних у сховищі не налаштовано`,notConfiguredDesc:`Секрети TOTP і client_secret постачальників OIDC зберігаються як відкритий текст. Установіть MFA_ENCRYPTION_KEY або перезапустіть Bambuddy з доступним для запису каталогом даних, щоб ключ було створено автоматично.`,allEncrypted:`Усі секрети MFA зашифровано у сховищі.`,legacyRowsLabel:`Застарілі рядки відкритого тексту`,encryptedRowsLabel:`Зашифровані рядки`,legacyRowsWarning:`Виявлено незашифрованих застарілих записів: {{count}}. Повторно збережіть постачальника OIDC або заново зареєструйте застосунок автентифікації користувача, щоб перенести дані до зашифрованого сховища.`,backupHint:`Автоматично згенерований ключ зберігається в DATA_DIR/.mfa_encryption_key і включено до локальних резервних ZIP-файлів. Зберігайте свої резервні копії в безпеці або явно встановіть MFA_ENCRYPTION_KEY.`,decryptionBrokenTitle:`Відсутній ключ шифрування`,decryptionBrokenError:`Не вдається розшифрувати записів: {{count}}, оскільки ключ шифрування більше недоступний. Для відновлення поверніть попередній MFA_ENCRYPTION_KEY або DATA_DIR/.mfa_encryption_key.`,migrationErrorWarning:`{{count}} застарілих рядків не вдалося повторно зашифрувати під час запуску. Перевірте журнали сервера та перезапустіть Bambuddy, щоб повторити спробу.`},pipelineLimits:{title:`Межі конвеєра слайсера`,maxCopiesLabel:`Максимальна кількість копій за один запуск`,maxCopiesDesc:`Верхня межа копій, які оператори можуть запитувати під час запуску конвеєра. Обмеження на стороні сервера становить 1000.`},pipelines:{title:`Конвеєри слайсера`,subtitle:`Багаторазові набори профілів — принтер, процес, філаменти й тип столу. Збережіть набір у вікні нарізання та застосовуйте його до наступного файлу одним натисканням.`,loading:`Завантаження конвеєрів…`,loadError:`Не вдалося завантажити конвеєри.`,confirmDelete:`Видалити цей конвеєр? Це неможливо скасувати.`,staleWarning:`Одного або кількох пов’язаних профілів більше не існує. Щоб виправити це, повторно збережіть конвеєр у вікні нарізання.`,empty:{title:`Конвеєрів ще немає.`,howto:`Відкрийте вікно нарізання для будь-якого файлу, виберіть принтер, процес, філаменти й тип столу, а потім натисніть «Зберегти як конвеєр». Збережені конвеєри з’являться тут.`},field:{name:`Назва конвеєра`,description:`опис`,targetPrinter:`Цільовий принтер`,noTarget:`— Немає цілі —`,targetKind:`Цільовий тип`,targetKindSpecific:`Конкретний принтер`,targetKindClass:`Клас принтера`,targetModelClass:`Модель принтера`,fanoutStrategy:`Стратегія розподілу`,fanout:{max_parallel:`Максимально паралельно — розподіляти між усіма відповідними вільними принтерами`,round_robin:`По колу — почергово використовувати відповідні принтери`,fill_one_first:`Спочатку один принтер — призначити всі копії одному принтеру`},fanoutShort:{max_parallel:`паралельний`,round_robin:`по колу`,fill_one_first:`спочатку один`}},action:{save:`зберегти`,cancel:`Скасувати`,rename:`Перейменувати`,delete:`Видалити`},slot:{printer:`Принтер`,process:`процес`,filament:`Філамент`,filamentN:`Філамент {{n}}`,filamentAll:`Усі {{n}} слотів`,bed:`Стіл`},group:{profiles:`Профілі`,filaments:`філаменти`},searchPlaceholder:`Шукати конвеєри…`,filterTargetType:`Фільтрувати за типом цілі`,filterTarget:`Фільтрувати за ціллю`,filter:{all:`Всі цілі`,noTarget:`Ціль не встановлена`,count:`{{shown}} / {{total}}`,noMatches:`Жоден конвеєр не відповідає поточним фільтрам.`},toast:{saved:`Конвеєр збережено`,saveFailed:`Не вдалося зберегти`,deleted:`Конвеєр видалено`,deleteFailed:`Не вдалося видалити`},noTargetHint:`Щоб запустити конвеєр, виберіть цільовий принтер`,noTargetWarning:`Перед запуском цього конвеєра встановіть цільовий принтер.`,runs:{lastRun:`Останній запуск`,status:{queued:`в черзі`,slicing:`нарізка`,dispatching:`надсилання`,in_progress:`друк`,completed:`завершено`,failed:`не вдалося`,partial_failure:`частково невдало`,cancelled:`скасовано`}}}},notification:{printStarted:{title:`Друк розпочато`,body:`{{printer}}: розпочато друк {{filename}}`},printCompleted:{title:`Друк завершено`,body:`{{printer}}: {{filename}} завершено успішно`},printFailed:{title:`Помилка друку`,body:`{{printer}}: не вдалося надрукувати {{filename}}`},printStopped:{title:`Друк зупинено`,body:`{{printer}}: {{filename}} було зупинено`},printProgress:{title:`Перебіг друку`,body:`{{printer}}: {{filename}} виконано {{percent}}%.`},printerOffline:{title:`Принтер не в мережі`,body:`{{printer}} не в мережі`},printerError:{title:`Помилка принтера`,body:`{{printer}}: {{error}}`},filamentLow:{title:`Закінчується філамент`,body:`{{printer}}: філамент майже закінчився`},maintenanceDue:{title:`Технічне обслуговування`,body:`{{printer}}: потрібна увага — {{items}}`}},errors:{generic:`Щось пішло не так`,networkError:`Помилка мережі. Перевірте підключення.`,notFound:`Не знайдено`,unauthorized:`Доступ не авторизовано`,serverError:`Помилка сервера`,validationError:`Перевірте введені дані`,printerConnectionFailed:`Не вдалося підключитися до принтера`,saveFailed:`Не вдалося зберегти зміни`,deleteFailed:`Не вдалося видалити`,loadFailed:`Не вдалося завантажити дані`},hmsErrors:{title:`Помилки - {{name}}`,noErrors:`Помилок немає`,viewOnWiki:`Переглянути на Bambu Lab Wiki`,mqttVerifyFailedRemedy:`Увімкніть режим розробника на принтері, перезавантажте принтер і запустіть завдання знову.`,unknownCode:`Невідомий код HMS — подробиці дивіться у вікі Bambu Lab.`,clearInstructions:`Усуньте помилки на принтері, щоб вони зникли тут.`,clearErrors:`Очистити помилки`,clearSuccess:`Помилки HMS видалено`,clearFailed:`Не вдалося видалити помилки HMS`,actionSuccess:`Команду надіслано принтеру`,actionFailed:`Не вдалося надіслати дію`,runoutExpectedSlot:`Філамент закінчився в {{ranOut}}. Тепер принтер очікує сумісний філамент у {{expected}}. Вставте котушку в {{expected}}, а потім виберіть «Повторити».`,runoutExpectedSlotOnly:`Принтер очікує сумісний філамент у {{expected}}. Вставте туди котушку, а потім виберіть «Повторити».`,runoutSlotUnknown:`Філамент закінчився, тому друк призупинено. Bambuddy не може визначити, якого слота тепер очікує принтер — перевірте екран принтера.`,actions:{RESUME_PRINTING:`Відновити друк`,RESUME_PRINTING_DEFECTS:`Відновити (допустимі недоліки)`,RESUME_PRINTING_PROBELM_SOLVED:`Відновити (проблему вирішено)`,STOP_PRINTING:`Зупинити друк`,CHECK_ASSISTANT:`Перевірити помічника`,FILAMENT_EXTRUDED:`Філамент екструдовано — продовжити`,RETRY_FILAMENT_EXTRUDED:`Ще не екструдовано — повторити`,CONTINUE:`Готово, продовжити`,LOAD_VIRTUAL_TRAY:`Завантажити філамент`,OK_BUTTON:`OK`,FILAMENT_LOAD_RESUME:`Філамент завантажено, відновити`,JUMP_TO_LIVEVIEW:`Перейти до перегляду наживо`,NO_REMINDER_NEXT_TIME:`Більше не нагадувати`,REFRESH_NOZZLE:`Перевірити знову`,IGNORE_NO_REMINDER_NEXT_TIME:`Ігнорувати. Не нагадувати наступного разу`,IGNORE_RESUME:`Ігнорувати й відновити друк`,PROBLEM_SOLVED_RESUME:`Проблему вирішено — відновити друк`,TURN_OFF_FIRE_ALARM:`Зрозуміло, вимкнути пожежну сигналізацію`,RETRY_PROBLEM_SOLVED:`Повторити (проблему вирішено)`,CANCLE:`Скасувати`,STOP_DRYING:`Зупинити сушіння`,PROCEED:`Продовжити`,OK_JUMP_RACK:`OK`,ABORT:`Перервати`,DISABLE_PURIFICATION:`Вимкнути очищення для цього друку`,DONT_REMIND_NEXT_TIME:`Більше не нагадувати`,DBL_CHECK_CANCEL:`Скасувати`,DBL_CHECK_DONE:`Готово`,DBL_CHECK_RETRY:`Повторити`,DBL_CHECK_RESUME:`Відновити`,DBL_CHECK_OK:`Підтвердити`,REMOVE_CLOSE_BTN:`Закрити`}},mqttDebug:{title:`Журнал налагодження MQTT`,searchPlaceholder:`Шукати тему або корисне навантаження…`,noMessages:`Ще не зареєстровано жодного повідомлення`,startLoggingHint:`Натисніть «Почати журналювання», щоб розпочати запис MQTT повідомлень`,noMessagesMatch:`Жодне повідомлення не відповідає вашому фільтру`,adjustFilterHint:`Спробуйте змінити критерії пошуку або фільтра`,incoming:`Вхідні`,outgoing:`Вихідні`,loggingStopped:`Запис припинено`,loggingActive:`Логування активне – повідомлення автоматично оновлюватимуться`,startLogging:`Розпочати журналювання`,stopLogging:`Зупинити журналювання`,clearLog:`Очистити журнал`,topic:`Тема`,timestamp:`Мітка часу`,direction:`Напрямок`,all:`Усі`},printerFiles:{title:`Менеджер файлів`,storageUsed:`Використовується:`,storageFree:`Вільно:`,filterPlaceholder:`Фільтр файлів...`,deleteButton:`Видалити`,deleteFiles:`Видалити файли {{count}}.`,deleteFileConfirm:`Видалити "{{name}}"? Це неможливо скасувати.`,deleteFilesConfirm:`Видалити вибрані файли {{count}}? Це неможливо скасувати.`,noFiles:`Немає файлів на принтері`,loadingFiles:`Завантаження файлів...`,failedToLoad:`Не вдалося завантажити файли`,toast:{filesDeleted:`Видалено файлів: {{count}}`,deleteFailed:`Не вдалося видалити: {{error}}`}},confirm:{delete:`Ви впевнені, що хочете це видалити?`,unsavedChanges:`У вас є незбережені зміни. Ви впевнені, що хочете піти?`,clearQueue:`Ви впевнені, що бажаєте очистити чергу?`},login:{title:`Вхід у Bambuddy`,subtitle:`Увійти у свій обліковий запис`,username:`Ім’я користувача`,usernamePlaceholder:`Введіть своє ім’я користувача`,usernameOrEmail:`Ім’я користувача або електронна пошта`,usernameOrEmailPlaceholder:`Ім’я користувача або електронна пошта`,password:`Пароль`,passwordPlaceholder:`Введіть свій пароль`,signIn:`Увійти`,signingIn:`Вхід...`,rememberMe:`Запам’ятати мене`,forgotPassword:`Забули пароль?`,autologinFailed:`Помилка автоматичного входу SSO. Щоб продовжити, виберіть постачальника нижче.`,localDisabledNotice:`Локальний вхід вимкнено. Використовуйте одного з наведених нижче постачальників SSO.`,loginSuccess:`Успішно ввійшли`,loginFailed:`Помилка входу`,enterCredentials:`Будь ласка, введіть ім’я користувача та пароль`,enterEmail:`Будь ласка, введіть адресу електронної пошти`,oidcLoginFailed:`Не вдалося ввійти через OIDC`,oidcErrors:{providerError:`Постачальник ідентифікації повернув помилку`,missingParameters:`У зворотному виклику OIDC відсутні необхідні параметри`,invalidState:`Стан OIDC недійсний або вже використовувався`,stateExpired:`OIDC сеанс входу закінчився — спробуйте ще раз`,providerNotFound:`OIDC постачальника не знайдено`,discoveryFailed:`Не вдалося отримати документ конфігурації OIDC`,invalidDiscovery:`Документ конфігурації OIDC недійсний`,networkError:`Помилка мережі під час обміну токена OIDC`,badResponse:`Неочікувана відповідь під час обміну токеном OIDC.`,noIdToken:`Постачальник OIDC не повернув ID-токен`,validationFailed:`Не вдалося перевірити токен OIDC`,nonceMismatch:`Не збігається nonce OIDC — можлива атака повторного використання`,missingSubClaim:`У токені OIDC відсутнє поле sub`,noLinkedAccount:`Із цим ідентифікатором OIDC не пов’язано жодного локального облікового запису`,accountInactive:`Ваш акаунт неактивний`,userResolutionFailed:`Не вдалося визначити ваш обліковий запис`,internalError:`Під час входу в систему OIDC сталася внутрішня помилка`,tokenExchangeFailed:`Помилка обміну токеном OIDC.`},forgotPasswordTitle:`Забули пароль`,forgotPasswordMessage:`Якщо ви забули свій пароль, зверніться до системного адміністратора, щоб скинути його.`,forgotPasswordEmailMessage:`Введіть адресу електронної пошти, і ми надішлемо вам новий пароль.`,emailAddress:`Адреса електронної пошти`,emailPlaceholder:`your.email@example.com`,cancel:`Скасувати`,sending:`Надсилання...`,sendResetEmail:`Надіслати лист для скидання пароля`,howToReset:`Як скинути пароль:`,resetStep1:`Зверніться до адміністратора Bambuddy.`,resetStep2:`Попросіть скинути ваш пароль у розділі «Керування користувачами»`,resetStep3:`Вони можуть встановити для вас новий тимчасовий пароль`,resetStep4:`Увійдіть із новим паролем і змініть його в налаштуваннях`,gotIt:`Зрозуміло`,resetPassword:{title:`Встановити новий пароль`,subtitle:`Введіть і підтвердьте свій новий пароль нижче.`,newPassword:`Новий пароль`,newPasswordPlaceholder:`Мінімум 8 символів`,confirmPassword:`Підтвердити пароль`,confirmPasswordPlaceholder:`Повторіть новий пароль`,saving:`Збереження…`,submit:`Встановити новий пароль`,backToLogin:`Назад до входу`,passwordsDoNotMatch:`Паролі не збігаються`,passwordTooShort:`Пароль має бути не менше 8 символів`,resetFailed:`Помилка скидання пароля. Можливо, термін дії посилання закінчився.`},twoFA:{title:`Двофакторна автентифікація`,subtitle:`Ваш обліковий запис захищено 2FA. Введіть код підтвердження нижче.`,methodAuthenticator:`Програма автентифікатора`,methodEmail:`Код електронної пошти`,methodBackup:`Резервний код`,instructionsTotp:`Відкрийте програму автентифікації та введіть 6-значний код для Bambuddy.`,instructionsEmail:`На вашу електронну адресу надіслано 6-значний код. Термін дії закінчується через 10 хвилин.`,instructionsEmailNotSent:`Натисніть кнопку нижче, щоб отримати код підтвердження електронною поштою.`,instructionsBackup:`Введіть один із ваших 8-символьних резервних кодів відновлення. Кожен код можна використати лише один раз.`,sendCodeButton:`Надіслати код електронною поштою`,sendingCode:`Надсилання...`,resendCode:`Повторно надіслати код`,codeLabel:`Код підтвердження`,backupCodeLabel:`Резервний код`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`Підтвердити`,verifyingButton:`Перевірка...`,backToLogin:`← Назад до входу`,orContinueWith:`або продовжити`,signInWith:`Увійти за допомогою {{provider}}`,enterCode:`Будь ласка, введіть код підтвердження`,sendCodeFailed:`Не вдалося надіслати код підтвердження`,invalidCode:`Невірний код. Спробуйте ще раз.`}},setup:{title:`Налаштування Bambuddy`,subtitle:`Налаштуйте автентифікацію для свого екземпляра Bambuddy.`,enableAuth:`Увімкнути автентифікацію`,adminAccount:`Обліковий запис адміністратора`,adminAccountDesc:`Якщо користувачі-адміністратори вже існують, автентифікацію буде ввімкнено за допомогою наявних облікових записів адміністраторів. Залиште поля нижче порожніми, щоб використовувати наявних адміністраторів, або введіть нові облікові дані, щоб створити нового користувача адміністратора.`,adminUsername:`Ім’я користувача адміністратора`,adminPassword:`Пароль адміністратора`,optionalIfAdminExists:`(необов’язково, якщо є користувачі з правами адміністратора)`,adminUsernamePlaceholder:`Введіть ім’я користувача адміністратора (необов’язково)`,adminPasswordPlaceholder:`Введіть пароль адміністратора (необов’язково)`,confirmPassword:`Підтвердити пароль`,confirmPasswordPlaceholder:`Підтвердити пароль адміністратора`,settingUp:`Налаштування...`,completeSetup:`Завершити налаштування`,toast:{authEnabledAdminCreated:`Увімкнено автентифікацію та створено адміністратора`,authEnabledExistingAdmins:`Увімкнено автентифікацію за допомогою наявних користувачів адміністратора`,setupCompleted:`Налаштування завершено`,enterBothCredentials:`Будь ласка, введіть ім’я користувача та пароль адміністратора або залиште обидва поля порожніми, щоб використовувати наявних користувачів адміністратора`,passwordsDoNotMatch:`Паролі не збігаються`,passwordTooShort:`Пароль має бути не менше 6 символів`}},changePassword:{title:`Змінити пароль`,currentPassword:`Поточний пароль`,currentPasswordPlaceholder:`Введіть поточний пароль`,newPassword:`Новий пароль`,newPasswordPlaceholder:`Введіть новий пароль (мінімум 6 символів)`,confirmPassword:`Підтвердити новий пароль`,confirmPasswordPlaceholder:`Підтвердити новий пароль`,passwordsDoNotMatch:`Паролі не збігаються`,passwordTooShort:`Пароль має бути не менше 6 символів`,changing:`Зміна...`,success:`Пароль успішно змінено`,failed:`Не вдалося змінити пароль`},plateAlert:{title:`Друк призупинено!`,message:`Об’єкти, виявлені на будівельній пластині. Друк було автоматично призупинено. Очистіть пластину та відновіть друк.`,understand:`Я розумію`},camera:{title:`Вид з камери`,invalidPrinterId:`Недійсний ідентифікатор принтера`,live:`Наживо`,snapshot:`знімок`,restartStream:`Перезапустити потік`,refreshSnapshot:`Оновити знімок`,fullscreen:`Повний екран`,exitFullscreen:`Вийти з повноекранного режиму`,connectingToCamera:`Підключення до камери...`,capturingSnapshot:`Зйомка знімка...`,connectionLost:`З’єднання втрачено`,connectionFailed:`Помилка підключення камери`,reconnecting:`Повторне підключення через {{countdown}}с... (спроба {{attempt}}/{{max}})`,reconnectNow:`Повторно підключіться зараз`,cameraUnavailable:`Камера недоступна`,cameraUnavailableDesc:`Переконайтеся, що принтер увімкнено та підключено.`,noCamera:`Камера недоступна`,retry:`Повторити`,cameraStream:`Потік камери`,zoomOut:`Зменшити масштаб`,zoomIn:`Збільшити`,resetZoom:`Скинути масштаб`,recording:`Запис`,startRecording:`Почати запис`,stopRecording:`Зупинити запис`,chamberLight:`Перемкнути освітлення камери`,unavailable:`Камера недоступна`,diagnose:{button:`Діагностувати`,modalTitle:`Діагностика камери`,running:`Виконується діагностика...`,runFailed:`Не вдалося запустити діагностику: {{error}}`,retry:`Запустити знову`,stage:{tcp_reachable:`Доступність мережі`,first_frame:`Захоплення кадру`,live_stream_active:`Активна пряма трансляція`},summary:{all_ok:`Камера працює. Діагностика пройшла всі етапи успішно.`,live_stream_active_healthy:`Камера зараз транслює з останніми кадрами — перевірка не потрібна.`,printer_unreachable:`Принтер недоступний. Перевірте адресу IP, підключення до мережі та чи принтер увімкнено.`,camera_port_closed:`Принтер доступний, але порт камери закритий. Переконайтеся, що в налаштуваннях принтера ввімкнено лише режим LAN і режим розробника.`,no_frame:`Підключено до камери, але кадри не отримано. Повторіть спробу або перевірте, чи камеру ввімкнено в налаштуваннях принтера.`,unknown_failure:`Не вдалося діагностувати камеру з невідомої причини. Подробиці перевірте в журналі підтримки.`},meta:{protocol:`Протокол`,port:`Порт`,profile:`Профіль`}}},groups:{title:`Керування групами`,subtitle:`Керуйте групами дозволів для контролю доступу`,backToSettings:`Назад до налаштувань`,createGroup:`Створити групу`,noPermission:`Ви не маєте дозволу на доступ до цієї сторінки.`,system:`система`,noDescription:`Без опису`,usersCount:`{{count}} користувачів`,permissionsCount:`Дозволів: {{count}}`,edit:`Редагувати`,delete:`Видалити`,toast:{created:`Групу створено успішно`,updated:`Групу успішно оновлено`,deleted:`Групу успішно видалено`,enterGroupName:`Будь ласка, введіть назву групи`},modal:{editGroup:`Редагувати групу`,createGroup:`Створити групу`,cancel:`Скасувати`,saving:`Збереження...`,creating:`Створення...`,saveChanges:`Зберегти зміни`},form:{groupName:`Назва групи`,groupNamePlaceholder:`Введіть назву групи`,systemGroupWarning:`Назви системних груп не можна змінювати`,description:`опис`,descriptionPlaceholder:`Введіть опис (необов’язково)`,permissions:`Дозволи (вибрано {{count}})`},deleteModal:{title:`Видалити групу`,message:`Ви впевнені, що хочете видалити цю групу? Користувачі цієї групи втратять ці дозволи.`,confirm:`Видалити групу`},editor:{title:`Редагувати групу`,createTitle:`Створити групу`,search:`Шукати дозволи...`,selectAll:`Вибрати усі`,clearAll:`Очистити все`,permissionsSelected:`Вибрано: {{count}}`,noResults:`Немає дозволів, що відповідають вашому пошуку`,websocketHint:`Необхідний для оновлень у реальному часі. Без нього інтерфейс повертається до періодичного опитування.`}},users:{title:`Керування користувачами`,subtitle:`Керуйте користувачами та їхнім доступом до вашого екземпляра Bambuddy.`,backToSettings:`Назад до налаштувань`,createUser:`Створити користувача`,noPermission:`Ви не маєте дозволу на доступ до цієї сторінки.`,admin:`адмін`,noGroups:`Немає груп`,active:`Активний`,inactive:`Неактивний`,edit:`Редагувати`,delete:`Видалити`,system:`система`,noGroupsAvailable:`Немає доступних груп`,table:{username:`Ім’я користувача`,groups:`Групи`,status:`Статус`,actions:`Дії`},toast:{created:`Користувача створено успішно`,updated:`Користувача успішно оновлено`,deleted:`Користувача успішно видалено`,fillRequired:`Будь ласка, заповніть усі необхідні поля`,passwordsDoNotMatch:`Паролі не збігаються`,passwordTooShort:`Пароль має бути не менше 6 символів`,ldapProvisioned:`Користувача LDAP «{{username}}» підготовлено`},modal:{createUser:`Створити користувача`,editUser:`Редагувати користувача`,cancel:`Скасувати`,creating:`Створення...`,saving:`Збереження...`,saveChanges:`Зберегти зміни`,advancedAuthSubtitle:`з розширеною автентифікацією`,tabsAriaLabel:`Джерело користувача`,localTab:`Локальний`,ldapTab:`LDAP`,ldapSearchLabel:`Пошук у каталозі`,ldapSearchPlaceholder:`Введіть ім’я користувача, ім’я або електронну адресу...`,ldapMinChars:`Введіть принаймні 2 символи для пошуку`,ldapTypeToSearch:`Почніть вводити текст для пошуку в каталозі LDAP.`,ldapSearching:`Пошук у каталозі...`,ldapNoResults:`У каталозі немає відповідних користувачів`,ldapSearchError:`Помилка пошуку каталогу. Перевірте стан сервера LDAP.`,ldapAlreadyProvisioned:`Уже підготовлено`,ldapSelectedLabel:`Вибране`,ldapProvision:`Підготувати користувача`,ldapProvisioning:`Підготовка...`,ldapErrorProvision:`Не вдалося підготувати користувача. Перевірте стан сервера LDAP і повторіть спробу.`},form:{username:`Ім’я користувача`,usernamePlaceholder:`Введіть ім’я користувача`,email:`Електронна пошта`,emailPlaceholder:`user@example.com`,password:`Пароль`,passwordPlaceholder:`Введіть пароль`,confirmPassword:`Підтвердити пароль`,confirmPasswordPlaceholder:`Підтвердити пароль`,newPasswordPlaceholder:`Введіть новий пароль`,confirmNewPasswordPlaceholder:`Підтвердити новий пароль`,leaveBlankToKeep:`залиште порожнім, щоб зберегти поточне значення`,groups:`Групи`,optional:`необов’язково`,autoGeneratedPassword:`Надійний пароль буде автоматично згенеровано та надіслано користувачеві електронною поштою.`,passwordManagedByAdvancedAuth:`Пароль керується розширеною автентифікацією. Використовуйте «Скинути пароль», щоб надіслати новий пароль користувачеві електронною поштою.`,resetPassword:`Скинути пароль`,resettingPassword:`Скидання пароля...`},deleteModal:{title:`Видалити користувача`,message:`Ви впевнені, що хочете видалити цього користувача? Цю дію не можна скасувати.`,confirm:`Видалити користувача`}},streamOverlay:{title:`Накладання потоку`,invalidPrinterId:`Недійсний ідентифікатор принтера`,cameraStream:`Потік камери`,progress:`Прогрес`,eta:`ETA`,printerIdle:`Принтер неактивний`,printerOffline:`Принтер не в мережі`,status:{printing:`Друк`,paused:`Призупинено`,finished:`Готово`,failed:`Не вдалося`,idle:`Неактивний`,unknown:`Невідомий`}},profiles:{title:`Профілі`,subtitle:`Керуйте профілями слайсера та калібруваннями Pressure Advance`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`Локальні профілі`,kprofiles:`K-профілі`},orcaCloud:{connectedAs:`Підключено як`,connectedShort:`Підключено до Orca Cloud`,logout:`Відключити`,noLogoutPermission:`Ви не маєте дозволу на відключення`,noConnectPermission:`Ви не маєте дозволу на підключення до Orca Cloud`,retry:`Повторити`,connectButton:`Підключити Orca Cloud`,connect:{title:`Підключитися до Orca Cloud`,description:`Увійти у свій обліковий запис Orca Cloud, щоб синхронізувати свої профілі слайсера в Bambuddy.`},device:{title:`Підтвердити Bambuddy в Orca Cloud`,instruction:`Відкрийте Orca Cloud і підтвердьте цей код. Bambuddy підключається автоматично, коли ви підтверджуєте.`,codeLabel:`Ваш код сполучення`,openButton:`Відкрити сторінку підтвердження Orca Cloud`,manualHint:`Або перейдіть до {{url}} і введіть код вище.`,waiting:`Чекаємо на ваше схвалення…`,cancel:`Скасувати`},profiles:{title:`Ваші профілі Orca Cloud ({{count}})`,refresh:`Оновити`,empty:`У вашому обліковому записі Orca Cloud ще не знайдено профілів.`},toast:{disconnected:`Відключено від Orca Cloud`},errors:{startFailed:`Не вдалося розпочати підключення Orca Cloud.`,denied:`Сполучення було відхилено в Orca Cloud.`,expired:`Термін дії коду сполучення минув. Натисніть Підключитися, щоб повторити спробу.`,pollFailed:`Втрачено з’єднання під час очікування підтвердження. Спробуйте ще раз.`}},localProfiles:{title:`Локальні профілі`,subtitle:`Імпорт і керування профілями слайсера з OrcaSlicer`,import:`Імпортувати профілі`,importDesc:`Перетягніть сюди файли .bbscfg, .bbsflmt, .orca_filament, .zip або .json`,importing:`Імпортування…`,search:`Шукати локальні профілі…`,noPresets:`Локальних профілів ще немає`,noSearchResults:`Профілів за вашим запитом не знайдено`,badge:`Локальний`,edit:`Редагувати`,delete:`Видалити`,cancel:`Скасувати`,deleteConfirmTitle:`Видалити профіль`,deleteConfirm:`Видалити цей профіль? Цю дію неможливо скасувати.`,source:`Джерело`,inheritsFrom:`Успадковує`,filamentType:`Тип`,vendor:`Виробник`,compatiblePrinters:`Принтери`,nozzleTemp:`Температура сопла`,cost:`Вартість`,density:`Щільність`,pressureAdvance:`Випередження тиску`,filament:`Філамент`,process:`Процес`,printer:`Принтер`,toast:{importSuccess:`Імпортовано профілів: {{count}}`,importSkipped:`Пропущено профілів-дублікатів: {{count}}`,importError:`Помилок під час імпорту: {{count}}`,deleted:`Профіль видалено`,updated:`Профіль оновлено`}},connectedAs:`Підключено як`,signInExpiredTitle:`Термін входу в Bambu Cloud минув`,signInExpiredBody:`Bambu Lab більше не приймає збережений токен. Увійдіть ще раз, щоб відновити хмарні профілі, імпорт MakerWorld і перевірку прошивки.`,logout:`Вийти`,noLogoutPermission:`Ви не маєте дозволу на вихід`,failedToLoad:`Не вдалося завантажити профілі`,retry:`Повторити`,time:{justNow:`Щойно`,minsAgo:`{{count}}хв тому`,hoursAgo:`{{count}} год тому`,daysAgo:`{{count}} дн. тому`},toast:{loggedOut:`Вихід виконано`},login:{title:`Підключитися до Bambu Cloud`,subtitle:`Синхронізуйте профілі слайсера між пристроями`,email:`Електронна пошта`,password:`Пароль`,region:`Регіон`,regionGlobal:`Глобальний`,regionChina:`Китай`,verificationCode:`Код підтвердження`,totpCode:`Код автентифікатора`,checkEmail:`Перевірте свою електронну пошту ({{email}}), щоб отримати 6-значний код`,enterTotpHint:`Введіть 6-значний код із програми автентифікації`,accessToken:`Токен доступу`,accessTokenHint:`Вставте токен доступу Bambu Cloud. Облікові записи в китайському регіоні мають використовувати цей спосіб, оскільки вони прив’язані до телефона й вхід електронною поштою недоступний. У вікі описано, як отримати токен із файлів cookie MakerWorld.`,back:`Назад`,loginButton:`Увійти`,verifyButton:`Підтвердити`,setTokenButton:`Установити токен`,useToken:`Натомість використати токен доступу`,useEmail:`Увійти за допомогою електронної пошти`,toast:{loggedIn:`Успішно ввійшли`,codeSent:`Код підтвердження надіслано на вашу електронну адресу`,enterTotp:`Введіть код із програми автентифікації`,tokenSet:`Токен успішно встановлено`}},presets:{myPreset:`Мій профіль (можна редагувати)`,duplicate:`Дублювати`,editable:`Можна редагувати`,failedToLoadDetails:`Не вдалося завантажити відомості про профіль`,deleteConfirm:`Видалити цей профіль?`,deleteWarning:`Це назавжди видалить "{{name}}" із Bambu Cloud. Це неможливо скасувати.`,noDuplicatePermission:`Ви не маєте дозволу на дублювання стилів`,noEditPermission:`Ви не маєте дозволу редагувати стилі`,noDeletePermission:`Ви не маєте дозволу на видалення стилів`,types:{filament:`Попереднє налаштування філаменту`,printer:`Попереднє налаштування принтера`,process:`Попереднє налаштування процесу`},toast:{deleted:`Попереднє налаштування видалено`,created:`Попереднє налаштування створено`,updated:`Попереднє налаштування оновлено`,duplicated:`Профіль продубльовано`,fieldAdded:`Додано поле "{{key}}".`,exported:`Попереднє налаштування експортовано`},baseLabel:`База: {{name}}`,currentLabel:`Поточний профіль: {{name}}`,newPreset:`Нове налаштування`,editPreset:`Редагувати профіль`,duplicatePreset:`Дублювати профіль`,createNewPreset:`Створити новий профіль`,customizeSettings:`Налаштуйте параметри для нового стилю`,compareWithBase:`Порівняти з базовим профілем`,compare:`Порівняйте`,basePreset:`Базове передналаштування`,selectBasePreset:`Виберіть базове налаштування...`,presetName:`Назва профілю`,myCustomPreset:`Мій власний профіль`,inheritsFrom:`Успадковує від`,dropJsonToImport:`Відпустіть JSON, щоб імпортувати`,tabs:{common:`Основні`,allFields:`Всі поля`},availableFields:`Доступні поля`,searchFieldsPlaceholder:`Шукати поля...`,noMatchingFields:`Немає відповідних полів`,allFieldsAdded:`Всі поля додано`,addCustomField:`Додати спеціальне поле`,yourOverrides:`Ваші перевизначення`,noOverridesYet:`Перевизначення ще немає`,clickFieldsToAdd:`Натисніть поля ліворуч, щоб додати їх`,saveAsTemplate:`Зберегти як шаблон`,jsonTip:`Порада: перетягніть файл .json у будь-яке місце на цьому модалі, щоб імпортувати налаштування`},cloudView:{searchPlaceholder:`Шукати профілі...`,templates:`Шаблони`,refresh:`Оновити`,newPreset:`Нове налаштування`,clearFilters:`Очистити фільтри`,compareMode:`Режим порівняння`,selectAnotherPreset:`Вибрати інший попередній набір {{type}}.`,clickTwoPresets:`Клацніть два стилі одного типу, щоб порівняти`,selectFirst:`1. Виберіть перший`,selectSecond:`2. Виберіть другий`,compareNow:`Порівняти зараз`,lastSynced:`Остання синхронізація:`,showingCount:`Показано профілів: {{showing}} із {{total}}`,noPresetsFound:`Попередніх налаштувань не знайдено`,columns:{filament:`Філамент`,process:`процес`,printer:`Принтер`},noFilamentPresets:`Немає профілів філаменту`,noProcessPresets:`Немає профілів процесу`,noPrinterPresets:`Немає профілів принтера`,filters:{type:`Тип`,owner:`Власник`,printer:`Принтер`,nozzle:`Сопло`,filament:`Філамент`,layer:`Шар`,all:`Усі`,myPresets:`Мої профілі`,builtIn:`Вбудований`,process:`процес`},noTemplatesPermission:`Ви не маєте дозволу на керування шаблонами`,noRefreshPermission:`Ви не маєте дозволу оновлювати профілі`,noCreatePermission:`Ви не маєте дозволу створювати профілі`},templates:{title:`Швидкі шаблони`,noTemplates:`Шаблонів ще немає`,createFirst:`Створіть шаблони в редакторі профілів`,typeFilter:`тип:`,deleteTitle:`Видалити шаблон`,deleteWarning:`Цю дію не можна скасувати`,deleteConfirm:`Ви впевнені, що хочете видалити "{{name}}"?`,namePlaceholder:`Назва шаблону`,descriptionPlaceholder:`опис`,settingsJson:`Налаштування (JSON)`,fieldsCount:`Полів: {{count}}`,shownInModals:`Показано в модальних формах`,hiddenInModals:`Приховано в модальних формах`,apply:`Застосувати`,toast:{deleted:`Шаблон видалено`,updated:`Шаблон оновлено`,created:`Шаблон створено`,applied:`Шаблон застосовано`}}},support:{debugLoggingActive:`Журнал налагодження активний`,manageLogs:`Керувати`,collectItem7:`Підключення принтерів і версії прошивок`,collectItem8:`Статус інтеграції (Spoolman, MQTT, HA)`,collectItem9:`Мережеві інтерфейси (лише підмережі)`,collectItem10:`Версії пакетів Python`,collectItem11:`Перевірки справності бази даних`,collectItem12:`Відомості про середовище Docker`,bundleGenerating:`Створення пакета...`,bundleStepConnection:`Запуск перевірки підключення принтера`,bundleStepVirtualPrinters:`Виконання перевірок налаштування віртуального принтера`,bundleStepLogScan:`Сканування останніх журналів на наявність відомих проблем`,bundleStepBuild:`Створення ZIP-пакета підтримки`},fileManager:{title:`Менеджер файлів`,subtitle:`Упорядковуйте файли друку та керуйте ними`,uploadFiles:`Вивантажити файли`,newFolder:`Нова папка`,folderName:`Назва папки`,folderNamePlaceholder:`наприклад, функціональні частини`,renameFile:`Перейменувати файл`,renameFolder:`Перейменувати папку`,invalidFilenameChar:`Символ «{{char}}» не можна використовувати в назвах файлів для друку. SD-картка принтера не приймає такі символи: < > : " / \\ | ? *`,moveFiles:`Перемістити файли: {{count}}`,rootNoFolder:`Корінь (без папки)`,current:`поточний`,linkFolder:`Пов’язати папку`,linkFolderDescription:`Пов’язати «{{name}}» із проєктом або архівом для швидкого доступу.`,project:`Проєкт`,archive:`Архів`,noProjectsFound:`Проєкти не знайдено`,noArchivesFound:`Архіви не знайдено`,unlink:`Від’єднати`,link:`Пов’язати`,dragDropFiles:`Перетягніть файли сюди`,dropFilesHere:`Перетягніть файли сюди`,releaseToUpload:`Відпустіть, щоб вивантажити`,orClickToBrowse:`або натисніть, щоб переглянути`,allFileTypesSupported:`Підтримуються всі типи файлів. Файли ZIP будуть розпаковані.`,zipFilesDetected:`Виявлено файли ZIP.`,zipExtractOptions:`Файли ZIP будуть розпаковані. Виберіть спосіб обробки структури папок:`,preserveZipStructure:`Зберегти структуру папок із ZIP`,createFolderFromZip:`Створити папку з назви ZIP-файлу`,stlThumbnailGeneration:`Створення мініатюр STL`,zipMayContainStl:`Файли ZIP можуть містити файли STL. Мініатюри можна генерувати під час вилучення.`,thumbnailsCanBeGenerated:`Ескізи можна створити для файлів STL. Обробка великих моделей може зайняти більше часу.`,generateThumbnailsForStl:`Створювати мініатюри для файлів STL`,threemfDetected:`Виявлено файли 3MF.`,threemfExtractionInfo:`Модель принтера, матеріал, колір і параметри друку будуть автоматично витягнуті з файлів 3MF.`,willBeExtracted:`Буде розпаковано`,filesExtracted:`Розпаковано файлів: {{count}}`,uploadComplete:`Вивантаження завершено. Успішно: {{succeeded}}`,uploadFailed:`Не вдалося вивантажити`,zipFilesFailed:`Не вдалося обробити файлів: {{count}}`,uploading:`Вивантаження...`,changeLink:`Змінити посилання...`,linkTo:`Посилання на...`,linkToProjectOrArchive:`Посилання на проєкт або архів`,generateThumbnail:`Створити мініатюру`,generateThumbnails:`Створити мініатюри`,generateThumbnailsForMissing:`Створити відсутні мініатюри файлів STL`,gridView:`Вигляд сітки`,listView:`Перегляд списку`,lowDiskSpaceWarning:`Попередження про брак місця на диску`,lowDiskSpaceDetails:`Вільно лише {{free}} із {{total}}. У налаштуваннях задано поріг {{threshold}} ГБ.`,files:`Файли`,folders:`Папки`,size:`Розмір`,free:`Вільно`,allFiles:`Усі файли`,allExternal:`Зовнішні`,externalIsEmpty:`Немає зовнішніх файлів`,externalEmptyDescription:`Тут відображатимуться файли у ваших пов’язаних зовнішніх папках.`,wrap:`Перенесення`,enableTextWrapping:`Увімкнути перенесення тексту`,disableTextWrapping:`Вимкнути перенесення тексту`,collapse:`Згорнути`,collapseFoldersByDefault:`За замовчуванням згорнути папки`,expandFoldersByDefault:`Розгорнути папки за замовчуванням`,folderSort:`Сортування папок`,folderSortByName:`За назвою`,folderSortByActivity:`За останніми діями`,dragToResizeTooltip:`Перетягніть, щоб змінити розмір, двічі клацніть, щоб скинути`,searchFiles:`Пошук файлів...`,searchSubfoldersHint:`Включаючи вкладені папки`,readme:{truncated:`Усічений`,show:`Показати README`,hide:`Приховати README`,label:`README`},tags:{title:`Теги`,subtitle:`Файли міток для наскрізної фільтрації — іграшки, безпечні для дітей, лише PETG, будь-що.`,manage:`Теги`,manageTitle:`Керувати каталогом тегів`,add:`Новий тег`,edit:`Перейменувати тег`,name:`Назва`,fileCount:`Файли`,empty:`Тегів ще немає. Створіть його, щоб розпочати маркування файлів.`,noMatches:`Немає відповідних тегів.`,createPlaceholder:`напр. іграшки, безпечні для дітей, petg`,createButton:`Створити`,nameRequired:`Потрібно вказати назву.`,searchPlaceholder:`Фільтр тегів...`,created:`Тег створено.`,updated:`Тег перейменовано.`,deleted:`Тег видалено.`,saveFailed:`Не вдалося зберегти тег.`,deleteFailed:`Не вдалося видалити тег.`,applyFailed:`Не вдалося застосувати теги.`,applyAdd:`Додати теги`,applyRemove:`Видалити теги`,applyAddSuccess:`Додано теги {{count}} до файлів {{files}}.`,applyRemoveSuccess:`Видалено теги {{count}} у файлах {{files}}.`,actionAdd:`Додати до вибраних файлів`,actionRemove:`Видалити з вибраних файлів`,tagAction:`Тег`,bulkTitle:`Позначити вибрані файли ({{count}})`,bulkTooltip:`Додати або видалити теги для кожного вибраного файлу.`,noPermission:`Ви не маєте дозволу позначати файли тегами.`,filterLabel:`Фільтрування за:`,clearAll:`Очистити все`,confirmDelete:`Видалити тег "{{name}}"?`,confirmDeleteMessage:`Це видалить тег з каталогу. Файли зберігають інші теги.`,confirmDeleteInUseMessage:`Цей тег призначено файлам ({{count}}). Його буде видалено з усіх файлів, але самі файли залишаться без змін.`,editAria:`Редагувати {{name}}`,deleteAria:`Видалити {{name}}`},allTypes:`Усі типи`,prints:`Друки`,ascending:`За зростанням`,descending:`За спаданням`,showModified:`Показати змінені дати`,hideModified:`Приховати змінені дати`,lastModified:`Востаннє змінено`,lastActivity:`Остання активність`,resultsCount:`{{showing}} з {{total}} файлів`,selectAll:`Вибрати усі`,deselectAll:`Зняти вибір із усіх`,selected:`Вибрано: {{count}}`,adding:`Додавання...`,loadingFiles:`Завантаження файлів...`,folderIsEmpty:`Папка порожня`,noFilesYet:`Файлів ще немає`,folderEmptyDescription:`Щоб почати, вивантажте файли або перемістіть їх до цієї папки.`,noFilesDescription:`Вивантажте файли, щоб упорядковувати матеріали для друку.`,noMatchingFiles:`Немає відповідних файлів`,noMatchingFilesDescription:`Жоден файл не відповідає вашим поточним критеріям пошуку чи фільтру.`,clearFilters:`Очистити фільтри`,printedCount:`Надруковано {{count}}x`,uploadedBy:`Вивантажено`,deleteFolder:`Видалити папку`,deleteFile:`Видалити файл`,deleteFilesCount:`Видалити файли {{count}}.`,deleteFolderConfirm:`Ви впевнені, що хочете видалити цю папку? Усі файли всередині також буде видалено.`,deleteFileConfirm:`Ви впевнені, що хочете видалити цей файл?`,deleteFilesConfirm:`Ви впевнені, що бажаєте видалити вибрані файли {{count}}? Цю дію не можна скасувати.`,deleting:`Видалення...`,noPermissionRenameFolder:`Ви не маєте дозволу на перейменування папок`,noPermissionLinkFolder:`Ви не маєте дозволу на пов’язування папок`,noPermissionDeleteFolder:`Ви не маєте дозволу на видалення папок`,onlyEmptyFoldersDeletable:`Можна видаляти лише порожні папки`,noPermissionPrint:`Ви не маєте дозволу на друк`,noPermissionAddToQueue:`Ви не маєте дозволу на додавання в чергу`,noPermissionSlice:`Ви не маєте дозволу нарізати файли`,noPermissionDownload:`У вас немає дозволу на завантаження файлів`,noPermissionRenameFile:`Ви не маєте дозволу на перейменування цього файлу`,noPermissionGenerateThumbnail:`Ви не маєте дозволу створювати мініатюри`,noPermissionDeleteFile:`Ви не маєте дозволу на видалення цього файлу`,noPermissionCreateFolder:`Ви не маєте дозволу на створення папок`,noPermissionUpload:`Ви не маєте дозволу на вивантаження файлів`,noPermissionMoveFiles:`Ви не маєте дозволу на переміщення файлів`,noPermissionDeleteFiles:`Ви не маєте дозволу на видалення файлів`,linkExternal:`Зовнішнє посилання`,linkExternalFolder:`Посилання на зовнішню папку`,linkExternalFolderDescription:`Змонтуйте каталог хоста (NAS, USB, спільний мережевий ресурс) у файловому менеджері. Файли не копіюються — доступ до них здійснюється безпосередньо з початкового шляху.`,externalFolderNamePlaceholder:`наприклад, NAS Друкує`,externalPath:`Шлях хоста`,externalPathHelp:`Абсолютний шлях до каталогу на хості Docker. Має бути прив’язано до контейнера.`,readOnly:`Тільки для читання`,readOnlyHelp:`забороняє вивантаження й видалення`,showHiddenFiles:`Показати приховані файли (dotfiles)`,externalFolder:`Зовнішня папка`,scanFolder:`Сканувати`,toast:{folderCreated:`Папка створена`,folderDeleted:`Папку видалено`,fileDeleted:`Файл видалено`,filesDeleted:`Видалені файли {{count}}.`,filesMoved:`Файли переміщено`,folderLinked:`Папку пов’язано`,folderUnlinked:`Папку від’єднано`,externalFolderLinked:`Зовнішня папка пов’язана та просканована`,folderScanned:`Сканування завершено: {{added}} додано, {{removed}} видалено`,addedToQueue:`Додано до черги файлів: {{count}}`,addedToQueuePartial:`Додано: {{added}}; не вдалося додати: {{failed}}`,failedToAddToQueue:`Не вдалося додати файли: {{error}}`,fileRenamed:`Файл перейменовано`,folderRenamed:`Папку перейменовано`,thumbnailsGenerated:`Створено мініатюри {{count}}`,thumbnailsGeneratedPartial:`Створено мініатюри {{succeeded}}, {{failed}} не вдалося`,noStlMissingThumbnails:`Немає файлів STL без мініатюр`,failedToGenerateThumbnails:`Не вдалося створити мініатюри: {{error}}`,thumbnailGenerated:`Створено мініатюру`,failedToGenerateThumbnail:`Не вдалося створити мініатюру: {{error}}`}},projects:{title:`Проєкти`,subtitle:`Організовуйте та відстежуйте свої проєкти 3D-друку`,newProject:`Новий проєкт`,editProject:`Редагувати проєкт`,deleteProject:`Видалити проєкт`,projectName:`Назва проєкту`,description:`опис`,noProjects:`Проєктів ще немає`,noProjectsFiltered:`Немає проєктів {{status}}.`,noProjectsFilteredHelp:`У вас немає {{status}} проєктів. Проєкти з’являться тут, коли їхній статус зміниться.`,createFirst:`Створіть свій перший проєкт, щоб почати впорядковувати пов’язані роздруківки, відстежувати прогрес і керувати збірками.`,createFirstButton:`Створіть свій перший проєкт`,create:`Створити`,files:`Файли`,prints:`Принти`,plates:`пластини`,parts:`частин`,lastModified:`Остання зміна`,deleteConfirm:`Ви впевнені, що хочете видалити цей проєкт? Архіви та елементи черги буде від’єднано, але не видалено.`,addFiles:`Додати файли`,removeFile:`Видалити файл`,viewDetails:`Переглянути деталі`,namePlaceholder:`наприклад, Voron 2.4 Build`,descriptionPlaceholder:`Додатковий опис...`,urlLabel:`URL`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`URL має починатися з http:// або https://`,openExternalUrl:`Відкритий проєкт URL`,coverImageLabel:`Фото обкладинки`,coverImageAlt:`Обкладинка проєкту`,coverImageUpload:`Вивантажити`,coverImageReplace:`Замінити`,coverImageRemove:`видалити`,color:`Колір`,targetPlates:`Цільові пластини`,targetPlatesPlaceholder:`наприклад, 25`,targetPlatesHelp:`Кількість завдань друку`,targetParts:`Цільові частини`,targetPartsPlaceholder:`наприклад, 150`,targetPartsHelp:`Загальна кількість необхідних об’єктів`,targetSets:`Копій кожного файлу`,targetSetsPlaceholder:`наприклад, 10`,targetSetsHelp:`Кількість друків кожного придатного до друку файлу`,tagsLabel:`Теги (розділені комами)`,tagsPlaceholder:`напр., ворон, функціональний, подарунок`,dueDate:`Термін виконання`,priority:`Пріоритет`,priorityLow:`Низький`,priorityNormal:`нормальний`,priorityHigh:`Високий`,priorityUrgent:`Терміново`,statusActive:`Активний`,statusCompleted:`Виконано`,statusArchived:`Архівовано`,done:`Готово`,completed:`завершено`,failed:`не вдалося`,inQueue:`в черзі`,noPrintsYet:`Ще немає відбитків`,printJobs:`Завдання друку (пластини)`,partsPrinted:`Надруковані частини`,failedParts:`Вийшли з ладу деталі`,import:`Імпорт`,export:`Експорт`,importProject:`Імпорт проєкту`,exportAll:`Експортуйте всі проєкти`,loading:`Завантаження проєктів...`,noEditPermission:`Ви не маєте дозволу на редагування проєктів`,noDeletePermission:`Ви не маєте дозволу на видалення проєктів`,noCreatePermission:`Ви не маєте дозволу на створення проєктів`,noImportPermission:`Ви не маєте дозволу на імпорт проєктів`,noExportPermission:`Ви не маєте дозволу на експорт проєктів`,toast:{created:`Проєкт створено`,updated:`Проєкт оновлений`,deleted:`Проєкт видалено`,imported:`Проєкт імпортовано`,multipleImported:`{{count}} проєкти імпортовані`,importFailed:`Помилка імпорту`,exported:`Експортовані проєкти (лише метадані)`}},projectDetail:{notFound:`Проєкт не знайдено`,backToProjects:`Назад до проєктів`,export:`Експорт`,exportProject:`Експортний проєкт`,noExportPermission:`Ви не маєте дозволу на експорт проєктів`,noEditPermission:`Ви не маєте дозволу на редагування проєктів`,partOf:`частина:`,priorityLabel:`Пріоритет:`,noPrints:`У цьому проєкті ще немає роздруківок`,status:{active:`Активний`,completed:`Виконано`,archived:`Архівовано`},priority:{low:`Низький`,normal:`нормальний`,high:`Високий`,urgent:`Терміново`},dueDate:{overdue:`Прострочена`,today:`Термін виконання сьогодні`,daysLeft:`Залишилося {{count}} днів`},progress:{platesProgress:`Пластини Прогрес`,partsProgress:`Прогрес запчастин`,setsProgress:`Завершені комплекти`,sets:`комплектів`,setsHint:`Комплект вважається завершеним, коли кожен придатний до друку файл надруковано стільки разів`,printJobs:`завдання друку`,parts:`частин`,percentComplete:`{{percent}}% виконано`,remaining:`Залишилося {{count}}.`},stats:{printJobs:`Завдання друку`,total:`всього`,failed:`{{count}} не вдалося`,partsPrinted:`Надруковані частини {{count}}.`,printTime:`Час друку`,filamentUsed:`Філамент, що використовується`},cost:{title:`Відстеження витрат`,filamentCost:`Вартість філаменту`,energy:`Енергія`,totalCost:`Загальна вартість`,total:`Всього`,includesBom:`в т.ч. BOM`,budget:`Бюджет`,remaining:`Залишилося`},subProjects:{title:`Підпроєкти ({{count}})`},notes:{title:`Примітки`,noEditPermission:`Ви не маєте дозволу редагувати нотатки`,placeholder:`Додайте примітки щодо цього проєкту...`,empty:`Приміток ще немає. Натисніть Редагувати, щоб додати примітки.`},files:{title:`Файли`,linkFolders:`Зв’язувати папки з файлового менеджера`,forQuickAccess:`до цього проєкту для швидкого доступу.`,fileCount:`Файлів: {{count}}`,empty:`Немає пов’язаних папок. Перейдіть до файлового менеджера та зв’яжіть папку з цим проєктом.`,printedCount:`Надруковано разів: {{count}}`,progressTooltip:`Завершено друків: {{done}} із {{target}}`,noFiles:`У цій папці немає файлів.`},bom:{title:`Перелік матеріалів`,acquired:`{{completed}}/{{total}} придбано`,showAll:`Показати все`,hideDone:`Сховати готове`,addPart:`Додати частину`,noAddPermission:`Ви не маєте дозволу додавати частини`,partNamePlaceholder:`Назва деталі (наприклад, гвинти M3x8)`,partName:`Назва частини`,qty:`кількість`,price:`Ціна ({{currency}})`,sourcingUrlPlaceholder:`URL джерела (необов’язково)`,remarksPlaceholder:`Примітки (необов’язково)`,deletePart:`Видалити частину`,deleteConfirm:`Ви впевнені, що хочете видалити "{{name}}"?`,noUpdatePermission:`Ви не маєте дозволу на оновлення частин`,noEditPermission:`Ви не маєте дозволу редагувати частини`,noDeletePermission:`Ви не маєте дозволу на видалення частин`,totalCost:`Загальна вартість:`,empty:`Немає частин у описі матеріалів. Додайте обладнання, електроніку чи інші компоненти, щоб відстежувати, що потрібно отримати.`},timeline:{title:`Хронологія діяльності`,empty:`Активності ще немає.`},template:{saveAsTemplate:`Зберегти як шаблон`,noCreatePermission:`Ви не маєте дозволу на створення шаблонів`},queue:{title:`Черга`,viewAll:`Переглянути всі`,printing:`Друкується: {{count}}`,queued:`{{count}} у черзі`},prints:{title:`Друки ({{count}})`},toast:{projectUpdated:`Проєкт оновлений`,partAdded:`Частина додана`,partRemoved:`Частину видалено`,exportFailed:`Помилка експорту`,projectExported:`Проєкт експортовано`,templateCreated:`Шаблон створено`}},system:{title:`Інформація про систему`,version:`Версія`,uptime:`Час роботи`,cpuUsage:`CPU Використання`,memoryUsage:`Використання пам’яті`,diskUsage:`Використання диска`,networkInfo:`Інформація про мережу`,logs:`Журнали`,debugMode:`Режим налагодження`,enableDebug:`Увімкнути журнал налагодження`,disableDebug:`Вимкнути ведення журналу налагодження`,downloadLogs:`Завантажити журнали`,clearLogs:`Очистити журнали`,dockerInfo:`Docker Інформація`,containerName:`Назва контейнера`,imageName:`Назва зображення`,platform:`Платформа`,architecture:`Архітектура`},sponsors:{sectionTitle:`Незалежний і фінансований громадою`,tagline:`Bambuddy є безкоштовним і залишається таким, тому що люди вирішили його підтримати. Ні VC, ні блокування в хмарі.`,viewSupporters:`Переглянути прихильників`,toastPrints:`Завершено друків із Bambuddy: {{count}}. Bambuddy залишається безкоштовним завдяки своїм прихильникам.`,toastCost:`За допомогою Bambuddy обліковано філаменту на {{total}}. Дізнайтеся, хто допомагає проєкту залишатися незалежним.`,toastArchives:`Заархівовано друків із Bambuddy: {{count}}. Дізнайтеся, хто допомагає проєкту залишатися незалежним.`,toastAnniversary:`Рік з Bambuddy! Подивіться, хто зберігає незалежність проєкту.`,toastVersionUpdate:`Оновлено до v{{version}}. Bambuddy залишається безкоштовним завдяки своїм прихильникам.`,toastBusiness:`Використовуєте Bambuddy на принтерах ({{count}})? Для команд доступний план підтримки: пріоритетні виправлення, виставлення рахунків і прямий зв’язок із супровідником.`,businessCta:`Bambuddy для бізнесу`,businessTitle:`Bambuddy для бізнесу`,businessTagline:`Ви використовуєте принтери {{count}}. Пріоритетна підтримка, комерційне ліцензування та виставлення рахунків доступні для команд і друкарень.`},library:{title:`Бібліотека філаментів`,addFilament:`Додати філамент`,editFilament:`Редагувати філамент`,deleteFilament:`Видалити філамент`,vendor:`Продавець`,material:`матеріал`,color:`Колір`,kFactor:`Фактор K`,temperature:`температура`,noFilaments:`У бібліотеці немає філаментів`,deleteConfirm:`Ви впевнені, що хочете видалити цю філамент?`,importFromPrinter:`Імпорт із принтера`,exportToFile:`Експорт у файл`,runWithPipeline:{actionLabel:`Запустити з конвеєром`,noPermission:`Ви не маєте дозволу на запуск конвеєрів`,modalTitle:`Запустити з конвеєром`,confirmTitle:`Підтвердити запуск`,confirmIntro:`Під час попередньої перевірки виявлено проблеми з цим запуском`,sourceHint:`Джерело`,pipelineHint:`Конвеєр`,targetHint:`Ціль`,pipelineListAria:`Наявні конвеєри`,runAnyway:`Усе одно запустити`,loading:`Завантаження…`,empty:`Збережених конвеєрів ще немає. Відкрийте вікно нарізання й натисніть «Зберегти як конвеєр», щоб створити його.`,noTarget:`Цільовий принтер не встановлено`,noTargetMessage:`Для цього конвеєра не задано цільовий принтер. Відкрийте конвеєр у налаштуваннях і виберіть принтер.`,copies:`Копії`,copiesHint:`максимум {{n}}`,classTarget:`Будь-який {{model}}`,toast:{started:`Пуск конвеєра розпочато`,failed:`Не вдалося розпочати запуск`},issue:{printerNotSet:`У цьому конвеєрі не встановлено цільовий принтер.`,printerNotFound:`Цільовий принтер більше не існує.`,printerDisabled:`Цільовий принтер вимкнено.`,printerOffline:`Цільовий принтер не в мережі.`,filamentType:`Слот філаменту {{slot}}: очікується {{expected}}, в AMS — {{actual}}`,filamentColor:`Слот філаменту {{slot}}: колір не збігається (очікується {{expected}}, в AMS — {{actual}})`,amsSlotMissing:`Слот AMS {{slot}} недоступний на цьому принтері`,filamentUnverified:`Філамент для слота {{slot}} походить із хмарного або стандартного профілю, тому його неможливо перевірити заздалегідь.`,noClassMatches:`Жоден принтер у цій інсталяції не належить до цільового класу моделей конвеєра ({{expected}}).`,classNotSet:`Ціллю конвеєра вибрано клас принтерів, але модель не задано.`}}},slice:{title:`Нарізання моделі`,action:`Нарізати`,actionAll:`Нарізати всі пластини ({{count}})`,actionAllTitle:`Нарізати всі пластини в один багатопластинний результат (один архів). Вибір філаменту охоплює всі слоти, визначені проєктом.`,allPlatesToggle:`Нарізати всі пластини ({{count}})`,slicing:`Нарізання…`,printer:`Профіль принтера`,process:`Профіль процесу`,filament:`Профіль філаменту`,filamentSlot:`Філамент {{index}} ({{type}})`,selectPreset:`— Виберіть профіль —`,loadingPresets:`Завантаження профілів…`,analyzingPlateFilaments:`Аналіз філаментів пластини…`,analyzingPlateFilamentsHint:`Виконується попереднє нарізання, щоб визначити, які слоти AMS використовує ця пластина. Результат кешується, тому повторне відкриття відбувається миттєво.`,previewToast:`Аналіз {{name}} — {{elapsed}}`,previewWithProgress:`Аналіз {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,notUsedByPlate:`— не використовується на цій пластині`,noPresetsForSlot:`Немає профілів`,otherPrinters:`Інші принтери`,presetsLoadFailed:`Не вдалося завантажити профілі. Спочатку імпортуйте їх у розділі Налаштування → Профілі.`,refreshPresets:`Оновити`,refreshPresetsTitle:`Оновити профілі — отримати найновіші хмарні та вбудовані списки (скористайтеся після видалення профілю в Bambu Studio або Bambu Handy)`,allPresetsRequired:`Потрібно вибрати всі профілі`,useEmbedded:`Використати вбудовані налаштування файлу`,useEmbeddedHint:`Нарізати модель із налаштуваннями автора файлу — стінками, заповненням і філаментом — замість профілів вище. Ця можливість доступна, оскільки модель принтера відповідає файлу.`,designSettings:`Зберегти налаштування автора`,designSettingsHint:`Цей файл змінює {{count}} налаштувань друку порівняно зі стандартним профілем.`,designSettingsSelected:`Вибрано {{selected}} із {{total}}`,designSettingsPrinterCoupled:`залежить від принтера`,designSettingsPrinterCoupledHint:`Значення підібрано для принтера, під який створено файл, — на вашому воно може бути неправильним або поза допустимим діапазоном.`,enqueuing:`Надсилання завдання нарізання…`,queued:`У черзі…`,failed:`Не вдалося виконати нарізання. Перевірте журнали слайсера.`,startedToast:`Нарізання {{name}} у фоновому режимі…`,queuedToast:`У черзі: {{name}} — {{elapsed}}`,runningToast:`Нарізання {{name}} — {{elapsed}}`,runningWithProgress:`{{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,runningWithProgressMultiPlate:`Пластина {{plateIndex}} з {{plateCount}} • {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,completedToast:`Нарізання {{name}} завершено`,failedTitle:`Помилка нарізання`,failedToast:`Помилка нарізання {{name}}: {{detail}}`,tier:{local:`Імпортовані`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`Стандартний`},cloud:{notAuthenticated:`Увійдіть у Bambu Cloud (Налаштування → Профілі → Bambu Cloud), щоб переглянути хмарні профілі.`,expired:`Сеанс Bambu Cloud завершився — увійдіть знову, щоб оновити хмарні профілі.`,unreachable:`Bambu Cloud зараз недоступний. Локальні та стандартні профілі й надалі працюють.`},orcaCloud:{notAuthenticated:`Увійдіть до Orca Cloud (Профілі → Orca Cloud), щоб переглянути профілі Orca.`,expired:`Сеанс Orca Cloud завершився — увійдіть ще раз, щоб оновити профілі Orca.`,unreachable:`Orca Cloud зараз недоступний. Інші профілі й надалі працюють.`},bedType:{label:`Друкарська пластина`,auto:`Авто (використовувати профіль процесу)`,coolPlate:`Холодна друкарська пластина`,coolPlateSuperTack:`Cool Plate SuperTack`,engineering:`Інженерна пластина`,highTemp:`Високотемпературна пластина`,texturedPEI:`Текстурована PEI-пластина`,smoothPEI:`Гладка PEI-пластина`},pipelines:{label:`Конвеєр`,applyAria:`Застосувати конвеєр`,applyPrompt:`Застосувати конвеєр…`,empty:`Немає збережених конвеєрів`,saveButton:`Зберегти як конвеєр`,saveTitle:`Зберегти поточний вибір чотирьох слотів як конвеєр для повторного використання`,namePlaceholder:`Назва конвеєра`,nameAria:`Нова назва конвеєра`,toast:{applied:`Застосовано "{{name}}"`,saved:`Конвеєр збережено`,saveFailed:`Не вдалося зберегти`}}},spoolman:{title:`Spoolman Інтеграція`,enabled:`Spoolman Увімкнено`,url:`Spoolman URL`,connected:`Підключено`,disconnected:`Не підключено`,testConnection:`Тестове підключення`,sync:`Синхронізувати`,syncing:`Синхронізація...`,lastSync:`Остання синхронізація`,linkToSpoolman:`Посилання на Spoolman`,openInSpoolman:`Відкрити в Spoolman`,unlinkSpool:`Від’єднати котушка`,unlinkConfirmTitle:`Скасувати призначення котушки?`,unlinkConfirmMessage:`Це призведе до видалення котушки з цього слота. Самі дані котушки залишаться незмінними.`,selectSpool:`Вибрати Spool`,noUnlinkedSpools:`Немає непризначених котушок`,linkSuccess:`Котушку успішно призначено`,linkFailed:`Не вдалося призначити котушку`,unlinkSuccess:`Призначення котушки успішно скасовано`,unlinkFailed:`Не вдалося скасувати призначення котушки`,linkedSpool:`Призначена котушка`,spoolId:`Ідентифікатор котушки`,fillSourceLabel:`(Spoolman)`,weight:`вага`,remaining:`Залишилося`,disableWeightSync:`Вимкнути синхронізацію приблизної ваги AMS.`,disableWeightSyncDesc:`Не оновлюйте залишкову ємність із оцінок AMS. Використовуйте це, якщо ви віддаєте перевагу відстеженню використання Spoolman, а не оцінкам на основі відсотка AMS. Нові котушки все ще використовуватимуть оцінку AMS як початкову вагу.`,reportPartialUsage:`Повідомити про часткове використання для невдалого друку`,reportPartialUsageDesc:`Якщо друк не вдається або скасовується, повідомте приблизну кількість філаменту, використаної до цього моменту, на основі виконання шару.`},locations:{title:`Місця зберігання`,subtitle:`Керуйте полицями, шухлядами та іншими фізичними місцями для зберігання своїх котушок`,add:`Додати місцезнаходження`,addShort:`додати`,edit:`Редагувати місцезнаходження`,name:`Назва`,spools:`Котушки`,empty:`Місць зберігання ще немає. Створіть свою першу полицю або ящик.`,manage:`Розташування`,createPlaceholder:`напр. Полиця А, ящик 1`,nameRequired:`Потрібно вказати назву місця`,created:`Розташування створено`,updated:`Розташування оновлено`,deleted:`Розташування видалено`,saveFailed:`Не вдалося зберегти місцезнаходження`,deleteFailed:`Не вдалося видалити місцезнаходження`,deleteBlocked:`Видаліть усі котушки з цього місця перед видаленням`,confirmDelete:`Видалити "{{name}}"?`,confirmDeleteMessage:`Це місце буде видалено з каталогу. Котушки спочатку потрібно перемістити.`},inventory:{title:`Облік котушок`,subtitle:`Керуйте своїми котушками`,addToInventory:`Додати до обліку`,addToInventoryPending:`Додавання...`,addToInventorySuccess:`Котушку додано до обліку`,addToInventoryFailed:`Не вдалося додати котушку до обліку`,unknownSpoolTitle:`Виявлено нову котушку філаменту`,unknownSpoolMessage:`У {{location}} виявлено котушку з невідомою RFID-міткою. Додати її до обліку?`,unknownSpoolSlot:`Слот`,bulk:{selectAllVisible:`Вибрати усі видимі`,selectRow:`Вибрати рядок`,selectGroup:`Вибрати групу`,selectionCount:`Вибрано {{count}}.`,edit:`Редагувати`,printLabels:`Друк етикеток`,resetUsage:`Скинути використання`,restore:`Відновити`,archive:`Архівувати`,delete:`Видалити`,clearSelection:`Очистити вибір`,editTitle:`Масове редагування котушок`,editSubtitle:`Застосовується до вибраних котушок {{count}}. Оновлюються лише ті поля, які ви позначите.`,editHint:`Введіть значення в поле, щоб позначити його для оновлення: буде надіслано лише позначені поля. Порожнє поле не змінює котушки; очистити поле можна лише під час редагування окремої котушки.`,useCustom:`Використати «{{value}}»`,toggleField:`Перемкнути оновлення для цього поля`,changeCount:`Буде оновлено полів: {{count}}`,applyPending:`Застосування...`,applyButton:`Застосувати до котушок ({{count}})`,deleteTitle:`Видалити вибрані котушки`,archiveTitle:`Архівувати вибрані котушки`,restoreTitle:`Відновити вибрані котушки`,resetUsageTitle:`Скинути використання на вибраних котушках`,deleteMessage:`Назавжди видалити котушки {{count}}? Це неможливо скасувати.`,archiveMessage:`Архівувати котушки {{count}}? Пізніше їх можна відновити.`,restoreMessage:`Відновити заархівовані котушки {{count}}?`,resetUsageMessage:`Скинути лічильник «Всього спожито» на котушках {{count}}? Залишок ваги зберігається.`,updateSuccess:`Котушок оновлено: {{count}}`,updateFailed:`Помилка масового оновлення`,updatePartial:`Оновлено: {{ok}}; не вдалося оновити: {{failed}}`,updateAllFailed:`Не вдалося оновити жодну з вибраних котушок ({{count}}). Вибір збережено для повторної спроби.`,deleteSuccess:`Котушок видалено: {{count}}`,deleteFailed:`Не вдалося масово видалити`,deletePartial:`Видалено: {{ok}}; не вдалося видалити: {{failed}}`,deleteAllFailed:`Не вдалося видалити жодну з вибраних котушок ({{count}}). Вибір збережено для повторної спроби.`,archiveSuccess:`Котушок заархівовано: {{count}}`,archiveFailed:`Помилка масового архівування`,archivePartial:`Заархівовано: {{ok}}; не вдалося заархівувати: {{failed}}`,archiveAllFailed:`Не вдалося заархівувати жодну з вибраних котушок ({{count}}). Вибір збережено для повторної спроби.`,restoreSuccess:`Котушок відновлено: {{count}}`,restoreFailed:`Помилка масового відновлення`,restorePartial:`Відновлено: {{ok}}; не вдалося відновити: {{failed}}`,restoreAllFailed:`Не вдалося відновити жодну з вибраних котушок ({{count}}). Вибір збережено для повторної спроби.`,invalidHex:`Введіть 6 шістнадцяткових символів (RRGGBB) або 8 (RRGGBBAA). Інакше поле не застосовуватиметься.`},spoolmanMixedContentTitle:`Spoolman не може Завантажити через HTTPS — змішаний вміст заблоковано вашим браузером`,spoolmanMixedContentBody:`Bambuddy обслуговується через HTTPS (через ваш зворотний проксі), але ваш Spoolman URL усе ще звичайний HTTP. Браузери блокують змішаний вміст для безпеки, тому вбудований Spoolman UI не може відтворюватися. Щоб це працювало, Spoolman має бути доступним через HTTPS.`,spoolmanMixedContentFixReverseProxy:`Розмістіть Spoolman за тим самим зворотним проксі, що й Bambuddy (Traefik / Nginx / Caddy) з HTTPS, а потім оновіть Spoolman URL у налаштуваннях до нової адреси HTTPS.`,spoolmanMixedContentFixOpenNewTab:`Як обхідний шлях, відкрийте Spoolman у новій вкладці браузера поверх HTTP — правила змішаного вмісту застосовуються лише до вбудованих фреймів, тому окрема вкладка все ще працює.`,spoolmanOpenInNewTab:`Відкрийте Spoolman у новій вкладці`,labels:{title:`Друк етикеток на котушках`,selectedCount:`Вибрано {{count}}.`,pickSpools:`Виберіть котушки для друку етикеток:`,monochrome:`Монохромний (чорно-білий принтер)`,monochromeHint:`Прибирає зразок кольору та розширює область тексту`,searchPlaceholder:`Шукайте назву, бренд або #ID`,filterByMaterial:`матеріал:`,allMaterials:`все`,selectVisible:`Вибрати все видиме ({{count}})`,deselectVisible:`Скасувати вибір видимого`,clearAll:`Очистити все`,noSpoolsToShow:`Немає котушок для показу. Налаштуйте фільтр і повторіть спробу.`,noMatches:`Жодна котушка не відповідає поточному пошуку чи фільтру.`,printOne:`Друк етикетки для цієї котушки`,printLabels:`Друк етикеток…`,bulkTitle:`Виберіть котушки для друку етикеток серед показаних ({{count}})`,noSpoolsTitle:`Немає котушок для маркування`,error:`Не вдалося створити мітки: {{msg}}`,sortBy:{label:`Сортувати:`,id:`За ідентифікатором`,color:`За кольором`},templates:{amsHolderSmall:{label:`Тримач AMS — малий (74 × 33 мм)`,hint:`Одна етикетка на сторінці; відповідає етикетці для друку від MakerWorld моделі 752566 (AMS Filament Label Holder).`},amsHolderLarge:{label:`Тримач AMS — великий (75 × 55 мм)`,hint:`Одна етикетка на сторінці; підходить для варіанту тримача етикеток із філаментом AMS із вкладенням картону. Досить місткий для зразка, бренду, матеріалу, ідентифікатора та QR-коду.`},box40x30:{label:`Етикетка коробки (40 × 30 мм)`,hint:`Одна етикетка на сторінці; звичайний розмір рулону DK/Brother, підходить для етикеток у пакетах із філаментом та контейнерах для зберігання.`},box:{label:`Етикетка коробки (62 × 29 мм)`,hint:`Одна етикетка на сторінці; розміром для маленьких етикеток Brother PT/QL і Dymo.`},averyL7160:{label:`Avery L7160 — аркуш А4 (38,1 × 63,5 мм × 21)`,hint:`Європейський аркуш; 21 етикетка на сторінці A4.`},avery5160:{label:`Avery 5160 — аркуш US Letter (25,4 × 66,7 мм × 30)`,hint:`Аркуш американського формату; 30 етикеток на сторінці Letter.`}}},csv:{importButton:`Імпорт CSV`,exportButton:`Експорт CSV`,modalTitle:`Імпорт котушок з CSV`,selectFile:`Виберіть файл CSV або перетягніть його сюди`,dragHint:`Заголовок: material (обов’язково), brand, subtype, color_name, rgba, …`,parsing:`Читання файлу…`,previewError:`Не вдалося прочитати файл CSV.`,validCount:`{{count}} дійсний`,errorCount:`{{count}} помилка`,skippedCount:`{{count}} пропущено`,colRow:`Рядок`,colStatus:`Статус`,colColor:`Колір`,colorResolved:`Кольорове заповнення з каталогу`,colorCrossMaterial:`Колір узятий з іншого матеріалу — точної відповідності в каталозі немає`,duplicateExisting:`Котушка з таким матеріалом, брендом і кольором вже є — вона ще буде імпортована як нова котушка`,spoolmanHint:`У режимі Spoolman використовуйте вбудовані засоби імпорту й експорту Spoolman.`,importValidRows:`Імпорт {{count}} дійсних рядків`,noValidRows:`Немає дійсних рядків`,importing:`Імпорт…`,importSuccess:`Імпортовано котушок: {{count}}`,importError:`Помилка імпорту`,exportError:`Помилка експорту`},addSpool:`Додати котушку`,editSpool:`Редагувати котушку`,copySpool:`Копіювати котушку`,material:`матеріал`,selectMaterial:`Виберіть матеріал...`,subtype:`Підтип`,brand:`Бренд`,searchBrand:`Шукати бренд...`,useCustomBrand:`Використовуйте "{{brand}}"`,useCustomMaterial:`Використовуйте спеціальний матеріал: {{material}}`,suggestedOptions:`Рекомендовані`,allOptions:`Усі`,colorName:`Назва кольору`,colorNamePlaceholder:`Нефритовий білий, вогненно-червоний...`,color:`Колір`,hexColor:`Шістнадцятковий колір`,pickColor:`Вибрати індивідуальний колір`,labelWeight:`Номінальна вага філаменту`,coreWeight:`Вага порожньої котушки`,searchSpoolWeight:`Шукати вагу котушки...`,weightUsed:`Використано`,currentWeight:`Вага, що залишилася`,measuredWeight:`Виміряна вага`,spoolName:`Котушка`,costPerKg:`Вартість за кг`,storageLocation:`Місце зберігання`,storageLocationPlaceholder:`напр. Полиця А, ящик 1`,openInInventory:`Відкрити в інвентарі`,measuredWeightError:`Виміряна вага має бути між {{min}}g і {{max}}g.`,slicerFilament:`Філамент для нарізки`,slicerFilamentName:`Назва профілю слайсера`,slicerPreset:`Попереднє налаштування слайсера`,searchPresets:`Шукати профілі філаменту...`,selectedPreset:`Вибране`,noPresetsFound:`Попередніх налаштувань не знайдено`,tempOverrides:`Перевизначення температури`,note:`Примітка`,notePlaceholder:`Будь-які додаткові зауваження щодо цієї котушки...`,category:`Категорія`,categoryPlaceholder:`напр. Виробництво, прототип, клієнт А`,categoryNone:`Без категорії`,storageLocationNone:`Місцезнаходження не встановлено`,lowStockThresholdOverride:`Поріг низького запасу (ця котушка)`,lowStockThresholdOverrideHelp:`Залиште поле порожнім, щоб використовувати глобальне порогове значення ({{global}}%).`,clearRfid:`Очистити тег RFID.`,rfidCleared:`Тег RFID видалено`,archive:`Архівувати`,restore:`Відновити`,noSpools:`Ще немає котушок. Щоб почати, додайте свою першу котушку.`,noAvailableSpools:`Немає котушок. Додайте котушку до свого інвентарю або спершу скасуйте призначення іншого слота.`,kProfiles:`K-профілі`,addKProfile:`Додати K-профіль`,assignSpool:`Призначити котушку`,unassignSpool:`Скасувати призначення`,assignSuccess:`Котушку призначено, слот AMS налаштовано`,assignPendingInsert:`Котушку призначено. Слот буде налаштовано після її встановлення.`,assignFailed:`Не вдалося призначити котушку`,selectSpool:`Виберіть котушку, щоб призначити цьому слоту`,assigned:`Призначено`,assigning:`Призначення...`,searchSpools:`Пошук котушок...`,showAllSpools:`Показати всі котушки`,spoolmanSpools:`Котушки Spoolman`,allMaterials:`Усі матеріали`,filterByBrand:`Фільтрувати за брендом...`,showArchived:`Показати архівні`,quickAdd:`Швидке додавання (запас)`,quantity:`Кількість`,stock:`Запас`,configured:`Налаштовано`,spoolsCreated:`Створено котушок: {{count}}`,spoolsPartiallyCreated:`{{created}} з {{total}} котушок створено (деякі не вдалося)`,spoolCreated:`Котушку створено`,spoolUpdated:`Котушку оновлено`,spoolDeleted:`Котушку видалено`,deepLinkSpoolNotFound:`Котушку не знайдено`,deepLinkFetchFailed:`Не вдалося завантажити котушку — спробуйте ще раз`,spoolArchived:`Котушку заархівовано`,spoolRestored:`Котушку відновлено`,kProfileSaveFailed:`Не вдалося зберегти налаштування K-профілю`,syncWeightSpoolNotFound:`Котушку не знайдено — можливо, її видалено`,syncWeightSpoolmanUnreachable:`Spoolman недоступний — спробуйте пізніше`,syncWeightFailed:`Не вдалося синхронізувати вагу`,spoolmanUnreachable:`Spoolman недоступний — спробуйте пізніше`,deleteSpoolNotFound:`Котушку не знайдено — можливо, її вже видалено`,deleteFailed:`Не вдалося видалити котушку`,archiveSpoolNotFound:`Котушку не знайдено — можливо, її вже видалено`,archiveFailed:`Не вдалося заархівувати котушку`,restoreSpoolNotFound:`Котушку не знайдено — можливо, її вже видалено`,restoreFailed:`Не вдалося відновити котушку`,saveFailed:`Не вдалося зберегти зміни`,tagClearFailed:`Не вдалося очистити тег`,deleteConfirm:`Ви впевнені, що хочете видалити цю котушку? Це неможливо скасувати.`,archiveConfirm:`Ви впевнені, що хочете заархівувати цю котушку?`,advancedSettings:`Розширені налаштування`,filamentInfoTab:`Інформація про філамент`,paProfileTab:`Профіль PA`,filamentInfo:`Філамент`,additional:`Додатково`,loadingPresets:`Завантаження хмарних профілів...`,cloudConnected:`Хмара підключена`,cloudNotConnected:`Хмара не підключена (за умовчанням)`,recentColors:`Останні`,searchColors:`Пошук кольорів...`,searchResults:`Результати пошуку`,allColors:`Всі кольори`,commonColors:`Поширені кольори`,showLess:`Показувати менше`,showAll:`Показати все`,noColorsFound:`Жоден колір не відповідає вашому запиту`,noResults:`Збігів не знайдено`,extraColorsLabel:`Додаткові кольори`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`Вставте від 2 до 8 шістнадцяткових знаків, розділених комами. Візуалізація як градієнт.`,extraColorsInvalid:`Проігнорований недійсний шістнадцятковий код: {{tokens}}`,colorEffectLabel:`Ефект`,colorEffect:{none:`Жодного`,sparkle:`Блиск`,wood:`Деревина`,marble:`Мармур`,glow:`Світіння`,matte:`Матовий`,silk:`Шовк`,galaxy:`Галактика`,rainbow:`Веселка`,metal:`метал`,translucent:`Напівпрозорий`,gradient:`Градієнт`,dualColor:`Подвійний колір`,triColor:`Три кольори`,multicolor:`Багатобарвність`},selectMaterialFirst:`Спочатку виберіть матеріал на вкладці «Інформація про філамент».`,noPrintersConfigured:`Принтери не налаштовані. Додайте принтери для використання профілів PA.`,matchingFilter:`Зіставлення`,anyBrand:`Будь-який бренд`,anyVariant:`Будь-який варіант`,autoSelect:`Автоматичний вибір`,matches:`збіги`,match:`збіг`,noMatches:`Немає збігів`,connected:`Підключено`,offline:`Не в мережі`,printerOffline:`Принтер не в мережі. Підключіться, щоб переглянути профілі калібрування.`,noKProfilesMatch:`Немає K-профілів, що відповідають вибраному філаменту.`,leftNozzle:`Ліве сопло`,rightNozzle:`Праве сопло`,profilesSelected:`вибрані профілі калібрування`,totalInventory:`Загальний запас`,totalConsumed:`Всього спожито`,byMaterial:`За матеріалом`,inPrinter:`У принтері`,lowStock:`Низький запас`,sinceTracking:`З початку відстеження`,resetConsumedCounter:`Скинути лічильник`,resetConsumedCounterTooltip:`Обнулити лічильник спожитих грамів для цієї котушки. Залишкова вага не зміниться.`,resetConsumedCounterConfirm:`Скинути лічильник спожитих грамів на 0? Майбутні роздруківки знову відстежуватимуться з нуля. Сама котушка, розрахунок її залишкової ваги та ваші налаштування не змінюються.`,resetAllConsumedCounters:`Обнулити всі лічильники`,resetAllConsumedCountersTooltip:`Обнулити лічильник спожитих грамів для кожної котушки. Залишкова вага не зміниться.`,resetAllConsumedCountersConfirm:`Скинути лічильники спожитих грамів до 0 для всіх котушок ({{count}}, включно з архівними)? Статистику «Всього спожито» буде очищено, а облік майбутніх друків почнеться з нуля. Самі котушки та їхня залишкова вага не зміняться.`,consumedCounterReset:`Скидання лічильника`,allConsumedCountersReset:`Скинуто лічильники котушок: {{count}}`,resetConsumedCounterFailed:`Не вдалося скинути лічильник`,loadedInAms:`Завантажено в AMS/Ext`,remaining:`Залишилося`,weightCheck:`Перевірка ваги`,lastWeighed:`Останнє зважування`,neverWeighed:`Ще не зважувалася`,search:`Пошук котушок...`,showing:`Показ`,to:`до`,of:`з`,show:`Показати`,spools:`котушки`,spool:`котушка`,page:`Сторінка`,noSpoolsMatch:`Результатів не знайдено`,noSpoolsMatchDesc:`Спробуйте налаштувати пошук або фільтри, щоб знайти те, що ви шукаєте.`,active:`Активний`,archived:`Архівовано`,all:`все`,used:`Використані`,new:`Нові`,clearFilters:`Очистити фільтри`,table:`Таблиця`,cards:`картки`,net:`Нетто`,groupSimilar:`Групувати`,groupedSpools:`Однакових котушок: {{count}}`,groupedRows:`рядки`,columns:`Стовпці`,configureColumns:`Налаштувати стовпці`,configureColumnsDesc:`Перетягніть, щоб змінити порядок стовпців, або використовуйте стрілки. Перемкніть видимість за допомогою значка ока.`,visible:`видно`,reset:`Скинути`,cancel:`Скасувати`,applyChanges:`Застосувати зміни`,moveUp:`Перемістити вгору`,moveDown:`Перемістити вниз`,hideColumn:`Сховати стовпець`,showColumn:`Показати стовпець`,linkToSpool:`Прив’язати до котушки`,tagLinked:`Тег пов’язано з котушкою`,tagLinkFailed:`Не вдалося зв’язати тег`,tagAlreadyLinked:`Тег уже пов’язано з іншою котушкою`,unknownTag:`Виявлено невідомий тег RFID.`,usageHistory:`Історія використання`,noUsageHistory:`Використання ще не зареєстровано`,printName:`Назва друку`,weightConsumed:`Витрачена вага`,clearHistory:`Очистити`,historyCleared:`Історію використання очищено`,fillSourceLabel:`(Інвентар)`,lowStockThresholdError:`Порогове значення має бути від 0,1 до 99,9`,assignMismatchTitle:`Невідповідність матеріалу`,assignMismatchMessage:`Вибраний матеріал котушки "{{spoolMaterial}}" не відповідає матеріалу лотка "{{trayMaterial}}" для {{location}}. Все одно призначити?`,assignMismatchConfirm:`Все одно призначити`,assignPartialMismatchMessage:`Матеріал котушки "{{spoolMaterial}}" схожий на "{{trayMaterial}}" у {{location}}, але не зовсім відповідає. Ви бажаєте продовжити?`,assignProfileMismatchMessage:`Профіль котушки «{{spoolProfile}}» не відповідає профілю лотка «{{trayProfile}}» у {{location}}. Ви бажаєте продовжити?`,assignReconfigureNote:`Слот AMS буде переналаштовано для використання профілю котушки.`,spoolmanFilamentCatalog:`Каталог філаментів Spoolman`,pickFromSpoolmanCatalog:`Вибрати з каталогу Spoolman…`,spoolmanFilamentSelected:`Філамент вибрано з каталогу Spoolman`,spoolmanFilamentUnlinked:`Посилання на каталог філаментів видалено`,noSpoolmanFilaments:`У каталозі Spoolman не знайдено філаментів`,spoolmanFilamentColorSwatch:`Колір філаменту`,spoolWeightManagedBySpoolman:`Вага порожньої котушки керується залежно від типу філаменту в Spoolman`,spoolmanCatalogLoadFailed:`Не вдалося завантажити каталог філаментів Spoolman`},timelapse:{title:`Таймлапс`,create:`Створити Timelapse`,download:`Завантажити`,delete:`Видалити`,preview:`Попередній перегляд`,frameRate:`Частота кадрів`,quality:`якість`,processing:`Обробка...`,noTimelapses:`Немає таймлапсів`},ams:{title:`AMS`,slot:`Слот`,empty:`Порожній`,emptySlot:`Порожній слот`,slotEmpty:`Порожній`,slotUnconfigured:`?`,emptySlotReset:`Філамент не призначено`,unknown:`Невідомий`,humidity:`Вологість`,temperature:`температура`,filamentType:`Тип філаменту`,filamentColor:`Колір`,remaining:`Залишилося`,history:`AMS Історія`,noHistory:`Історія недоступна`,configureSlot:`Налаштувати слот`,externalSpool:`Зовнішня котушка`,profile:`Профіль`,kFactor:`Фактор K`,fill:`Рівень заповнення`,configure:`Налаштувати`,used:`використовується`,remainingUnit:`залишилося`},printModal:{selectPrinter:`Вибрати принтер`,selectPlate:`Вибрати пластину`,filamentMapping:`Зіставлення філаментів`,plateN:`Пластина {{n}}`,plateFilamentsUnreadable:`Не вдалося прочитати філаменти вибраної пластини, тому їх неможливо зіставити. Зніміть вибір із цієї пластини, щоб додати решту до черги.`,totalCost:`Загальна вартість:`,slotRemainingShort:` — залишилося {{grams}} г`,printSettings:`Налаштування друку`,bedLeveling:`Вирівнювання столу`,flowCalibration:`Калібрування потоку`,vibrationCalibration:`Калібрування вібрації`,layerInspection:`Перевірка першого шару`,timelapse:`Таймлапс`,cancel:`Скасувати`,noPrintersAvailable:`Немає доступних принтерів`,printerBusy:`Принтер зайнятий`,printerOffline:`Принтер не в мережі`,sameTypeDifferentColor:`Одного типу, іншого кольору`,filamentTypeNotLoaded:`Тип філаменту не завантажено`,whenToPrint:`Коли друкувати`,asap:`Якнайшвидше`,queue:`Черга`,schedule:`За розкладом`,dateTime:`Дата й час`,invalidDateTime:`Введіть дійсну дату й час`,openCalendar:`Відкрити календар`,requireManualStart:`Потрібен ручний запуск`,requirePreviousSuccess:`Починати, лише якщо попередній друк вдався`,autoOffAfter:`Вимкнути принтер після завершення`,helpAsap:`Завдання буде додано на початок черги й розпочнеться, щойно відповідний принтер звільниться.`,helpSchedule:`Друк розпочнеться в запланований час, якщо принтер буде вільний. Якщо принтер зайнятий, завдання чекатиме, доки він звільниться.`,helpQueue:`Завдання буде додано в кінець черги.`,leftNozzle:`Л`,rightNozzle:`Р`,leftNozzleTooltip:`Ліве сопло`,rightNozzleTooltip:`Праве сопло`,filamentOverride:`Перевизначення філаменту`,filamentOverrideHint:`Необов’язково замініть філаменти для призначення на основі моделі. Планувальник зіставлятиметься з вибраними філаментами замість вихідних значень 3MF.`,originalFilament:`Оригінал`,overrideWith:`Перевизначити за допомогою`,resetToOriginal:`Скинути до оригіналу`,insufficientFilamentTitle:`Недостатньо філаменту`,waitingForAmsStatus:`Очікування статусу AMS від {{printer}}…`,insufficientFilamentMessage:`У деяких призначених котушках залишилося менше філаменту, ніж потрібно для друку:`,insufficientFilamentLine:`{{printer}} - {{slot}}: потрібно {{required}}g, залишилося {{remaining}}g`,printAnyway:`Усе одно друкувати`,forceColorMatch:`Примусовий збіг кольорів`,staggerPrinterStarts:`Запускати принтери почергово`,staggerGroupSize:`Розмір групи`,staggerInterval:`Інтервал (хв)`,staggerPreview:`Принтерів: {{printers}} → груп: {{groups}}, по {{size}}; інтервал запуску — {{interval}} хв`,staggerLastGroup:`остання група: {{count}}`,staggerTotal:`всього: {{minutes}} хв`,staggerToPrinters:`Розподілити запуск між {{count}} принтерами`,gcodeInjection:`Додати G-код автоматичного друку`},backup:{includesEncryptionKey:`Локальні резервні копії включають файл ключа шифрування MFA (DATA_DIR/.mfa_encryption_key), тому резервна копія ZIP є автономною. Вважайте ZIP конфіденційним — кожен, хто має файл, може розшифрувати секрети клієнта OIDC і секрети TOTP, що зберігаються в ньому.`,title:`Резервне копіювання та відновлення`,createBackup:`Створити резервну копію`,restoreBackup:`Відновити резервну копію`,restoreDescription:`Замінити всі дані даними з файлу резервної копії`,downloadBackup:`Завантажити резервну копію`,uploadBackup:`Вивантажити резервну копію`,lastBackup:`Остання резервна копія`,autoBackup:`Автоматичне резервне копіювання`,backupNow:`Створити резервну копію зараз`,restoreWarning:`Увага: відновлення резервної копії перезапише всі поточні дані.`,includeArchives:`Включати архіви`,includeSettings:`Включити налаштування`,includeProfiles:`Включити профілі`,backupSuccess:`Резервну копію створено успішно`,restoreSuccess:`Резервну копію успішно відновлено`,backupFailed:`Помилка резервного копіювання`,restoreFailed:`Не вдалося відновити`,restoreNote:`Віртуальний принтер буде зупинено під час відновлення`,githubBackup:`Резервне копіювання Git`,enabled:`Увімкнено`,cloudLoginRequired:`Потрібно ввійти в Bambu Cloud. Перейдіть до Профілі → Хмарні профілі, щоб увімкнути резервне копіювання до GitHub.`,cloudLoginRequiredShort:`Потрібен вхід у хмару`,githubDescription:`Автоматично синхронізуйте свої профілі з приватним репозиторієм GitHub для резервного копіювання та історії версій.`,repoIsPrivate:`Репозиторій приватний — безпечно створювати резервні копії.`,repoIsPublicWarning:`Репозиторій є ПУБЛІЧНИМ. Резервні копії Bambuddy містять облікові дані MQTT, токени Home Assistant, токени Prometheus, вашу електронну пошту Bambu Cloud і коди доступу до принтера через K-профілі. Збереження блокується, доки ви не зробите репозиторій приватним у налаштуваннях постачальника.`,repoVisibilityUnknown:`Не вдалося визначити видимість репозиторію. Bambuddy створює резервні копії лише в підтверджено приватних репозиторіях, тому збереження буде заблоковано.`,repositoryUrl:`URL репозиторію`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`Дозволити незахищений HTTP`,allowInsecureHttpHint:`Увімкнути для саморозміщених екземплярів у приватних мережах без TLS`,personalAccessToken:`Персональний токен доступу`,tokenSaved:`(збережено)`,enterNewToken:`Введіть новий токен для оновлення`,tokenHint:`Токен із деталізованими правами та дозволом на читання й запис вмісту`,branch:`Гілка`,provider:`Постачальник Git`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`Тільки вручну`,hourly:`щогодини`,daily:`Щодня`,weekly:`Щотижня`,includeInBackup:`Включити в резервну копію`,kProfiles:`K-профілі`,kProfilesDescription:`Калібрування Pressure Advance (PA) від підключених принтерів`,noPrintersConnected:`Немає підключених принтерів`,printersConnected:`{{connected}}/{{total}} підключено`,cloudProfiles:`Хмарні профілі`,cloudProfilesDescription:`Попередні налаштування філаменту, принтера та процесу від Bambu Cloud`,appSettings:`Налаштування програми`,appSettingsDescription:`Конфігурація Bambuddy (повна база даних)`,spoolInventory:`Облік котушок`,spoolInventoryDescription:`Котушки з філаментом, історія використання та відстеження витрат`,printArchives:`Архіви друку`,printArchivesDescription:`Метадані історії друку (без файлів gcode/3MF)`,lastBackupAt:`Остання резервна копія:`,noBackupsYet:`Резервних копій ще немає`,next:`Наступне виконання:`,startingBackup:`Початок резервного копіювання...`,test:`Тест`,enableBackup:`Увімкнути резервне копіювання`,testConnection:`Тестове підключення`,enterRepoUrl:`Введіть URL репозиторію`,enterRepoAndToken:`Введіть URL репозиторію та токен доступу`,repoRequired:`Потрібно вказати URL репозиторію`,tokenRequired:`Потрібен токен доступу`,githubBackupEnabled:`GitHub резервне копіювання ввімкнено`,tokenUpdated:`Токен оновлено`,settingsSaved:`Налаштування збережено`,failedToSave:`Не вдалося зберегти: {{message}}`,backupCompleteFiles:`Резервне копіювання завершено – файли {{count}} оновлено`,backupSkippedNoChanges:`Резервне копіювання пропущено – без змін`,backupFailed2:`Помилка резервного копіювання: {{message}}`,clearedLogs:`Очищено журнали {{count}}.`,failedToClearLogs:`Не вдалося очистити журнали: {{message}}`,history:`історія`,clear:`Очистити`,date:`Дата`,status:`Статус`,commit:`Коміт`,localBackup:`Локальна резервна копія`,localBackupDescription:`Створити повну резервну копію даних Bambuddy, включно з базою даних, архівами, вивантаженнями та всіма файлами.`,downloadBackupLabel:`Завантажити резервну копію`,completeBackupZip:`Повне резервне копіювання: база даних + усі файли (ZIP)`,download:`Завантажити`,preparingBackup:`Підготовка резервної копії...`,creatingArchive:`Створення резервного архіву... Для великих архівів це може зайняти деякий час.`,downloadingFile:`Завантаження файлу резервної копії...`,backupDownloaded:`Резервну копію успішно завантажено`,failedToCreateBackup:`Не вдалося створити резервну копію: {{message}}`,restore:`Відновити`,restoreReplacesAll:`Відновлення замінює всі дані.`,restoreReplacesAllDetail:`Вашу поточну базу даних і файли буде повністю замінено. Після відновлення потрібен перезапуск.`,restoreConfirmTitle:`Відновити резервну копію`,restoreConfirmMessage:`Ви впевнені, що бажаєте відновити з "{{filename}}"? Це повністю замінить вашу поточну базу даних і всі файли. Після відновлення програму потрібно буде перезапустити.`,restoreConfirmButton:`Відновити резервну копію`,uploadingFile:`Вивантаження файлу резервної копії...`,backupRestoredRestart:`Резервну копію відновлено. Перезапустіть Bambuddy.`,failedToRestore:`Не вдалося відновити резервну копію. Будь ласка, перевірте формат файлу.`,reloadNow:`Перезавантажити зараз`,creatingBackup:`Створення резервної копії`,restoringBackup:`Відновлення з резервної копії`,preparing:`Підготовка...`,processing:`Обробка...`,doNotClosePage:`Будь ласка, не закривайте цю сторінку та не виходьте з неї. Для великих резервних копій ця операція може зайняти кілька хвилин.`,restoring:`Відновлення...`,restoreComplete:`Відновлення завершено`,restoreFailed2:`Не вдалося відновити`,importSettings:`Імпорт налаштувань із файлу резервної копії`,pleaseWaitRestoring:`Зачекайте, поки ваші дані відновляться`,selectBackupFile:`Натисніть, щоб вибрати файл резервної копії (.json або .zip)`,duplicateHandling:`Як працює обробка дублікатів:`,matchPrinters:`Принтери`,matchPrintersBy:`відповідає серійному номеру`,matchSmartPlugs:`Розумні розетки`,matchSmartPlugsBy:`зіставляються за IP-адресою`,matchNotificationProviders:`Постачальники сповіщень`,matchNotificationProvidersBy:`відповідність за назвою`,matchFilaments:`філаменти`,matchFilamentsBy:`відповідність за назвою + типом + брендом`,matchArchives:`Архіви`,matchArchivesBy:`відповідає хешу вмісту (завжди пропускається)`,matchPendingUploads:`Вивантаження, що очікують`,matchPendingUploadsBy:`зіставляються за назвою файлу`,matchSettingsTemplates:`Налаштування та шаблони`,matchSettingsTemplatesBy:`завжди перезаписується`,replaceExisting:`Замінити існуючі дані`,keepExisting:`Зберегти наявні дані`,overwriteDescription:`Замінити наявні елементи даними з резервної копії`,keepDescription:`Відновлюйте лише елементи, яких ще не існує`,overwriteCaution:`Увага:`,overwriteWarning:`Перезапис замінить ваші поточні конфігурації даними з резервної копії. Коди доступу до принтера ніколи не перезаписуються з міркувань безпеки.`,cancel:`Скасувати`,processingBackup:`Обробка файлу резервної копії...`,itemsRestored:`Елементів відновлено`,itemsSkipped:`Пропущено елементів`,restored:`Відновлено`,skippedAlreadyExist:`Пропущено (вже існує)`,filesCategory:`Файли (3MF, мініатюри тощо)`,andMore:`…і ще {{count}}`,newApiKeysGenerated:`Створено нові API ключі`,keysShownOnce:`Ці ключі відображаються лише один раз. Скопіюйте їх зараз!`,copy:`Копіювати`,noDataFound:`У файлі резервної копії не знайдено даних для відновлення.`,close:`Закрити`,scheduledBackup:`Резервне копіювання за розкладом`,scheduledBackupDescription:`Автоматично створюйте резервні знімки за розкладом. Вихідний каталог можна підключити до NAS або зовнішнього накопичувача.`,frequency:`Частота`,backupTime:`час`,retention:`Термін зберігання`,retentionDescription:`Кількість резервних копій, які потрібно зберегти`,outputPath:`Вихідний шлях`,outputPathPlaceholder:`За замовчуванням: {{path}}`,outputPathDescription:`Залиште порожнім для розташування за умовчанням`,runNow:`Запустити зараз`,backupFiles:`Файли резервних копій`,noScheduledBackups:`Резервних копій ще немає`,deleteBackup:`Видалити`,deleteBackupConfirm:`Видалити цей файл резервної копії?`,backupRunning:`Виконується резервне копіювання...`,scheduledBackupComplete:`Резервне копіювання успішно завершено`,scheduledBackupFailed:`Помилка резервного копіювання`,nextBackup:`Наступна резервна копія`,backupSize:`Розмір`,localTimeHint:`Місцевий час ({{tz}})`,defaultPathLabel:`За замовчуванням:`,pathCheck:{title:`Bambuddy не може писати в цей каталог`,howToFix:`Як виправити:`,sandboxed:`Служба Bambuddy не може писати в {{path}}. Його модуль systemd працює з ProtectSystem=strict, що робить кожен каталог за межами каталогів встановлення, даних і журналу доступними лише для читання для служби — навіть той, у який ви можете писати з власної оболонки.`,read_only:`{{path}} знаходиться у файловій системі лише для читання.`,permission_denied:`Bambuddy не має права записувати в {{path}}. Перевірте власника каталогу та дозволи.`,no_space:`У файловій системі, де розташовано {{path}}, закінчилося місце.`,not_a_directory:`{{path}} існує, але не є каталогом.`,missing:`{{path}} не існує і не може бути створений.`,error:`Bambuddy не може писати в {{path}}.`,ephemeralTitle:`Ці резервні копії не збережуться після перезапуску контейнера`,container_ephemeral:`{{path}} розташовано всередині контейнера Bambuddy, а не на хості. Резервні копії в цьому каталозі буде втрачено після повторного створення контейнера. Змонтуйте каталог із хоста:`},categories:{settings:`Налаштування`,notification_providers:`Постачальники сповіщень`,notification_templates:`Шаблони сповіщень`,smart_plugs:`Розумні розетки`,printers:`Принтери`,filaments:`філаменти`,maintenance_types:`Види технічного обслуговування`,archives:`Архіви`,projects:`Проєкти`,pending_uploads:`Вивантаження, що очікують`,external_links:`Зовнішні посилання`,api_keys:`Ключі API`}},tags:{title:`Теги`,addTag:`Додати тег`,editTag:`Редагувати тег`,deleteTag:`Видалити тег`,tagName:`Назва тегу`,tagColor:`Колір мітки`,noTags:`Без тегів`,deleteConfirm:`Ви впевнені, що бажаєте видалити цей тег?`,manageTags:`Керування тегами`},uploadModal:{title:`Вивантажити файли 3MF`,dragDrop:`Перетягніть файли .3mf сюди`,or:`або`,browseFiles:`Огляд файлів`,extractionInfo:`Модель принтера буде автоматично витягнуто з метаданих файлу 3MF.`,uploaded:`вивантажено`,failed:`не вдалося`,uploading:`Вивантаження...`,upload:`Вивантажити`,uploadFailed:`Не вдалося вивантажити`},editArchive:{title:`Редагувати архів`,name:`Назва`,namePlaceholder:`Друкування імені`,printer:`Принтер`,noPrinter:`Немає принтера`,project:`Проєкт`,noProject:`Жодного проєкту`,itemsPrinted:`Надруковано об’єктів`,itemsPrintedHelp:`Кількість елементів, виготовлених у цьому завданні друку`,notes:`Примітки`,notesPlaceholder:`Додайте примітки щодо цього друку...`,externalLink:`Зовнішнє посилання`,externalLinkPlaceholder:`https://printables.com/model/...`,externalLinkHelp:`Посилання на Printables, Thingiverse або інше джерело`,tags:`Теги`,tagsPlaceholder:`Додати теги...`,addMoreTags:`Додати більше тегів...`,matchingTags:`Відповідає "{{query}}"`,existingTags:`Існуючі теги`,clickToAdd:`(натисніть, щоб додати)`,status:`Статус`,failureReason:`Причина невдачі`,selectReason:`Виберіть причину...`,photos:`Фотографії надрукованих результатів`,photosHelp:`Натисніть +, щоб додати фотографії результату друку`,printResult:`Роздрукувати результат`,saving:`Збереження...`,failureReasons:{adhesionFailure:`Порушення адгезії`,spaghettiDetached:`Спагетті / Відр`,layerShift:`Зсув шару`,cloggedNozzle:`Засмічене сопло`,filamentRunout:`Биття філаменту`,warping:`Викривлення`,stringing:`Нанизування`,underExtrusion:`Підвидавлювання`,powerFailure:`Збій живлення`,userCancelled:`Користувач скасовано`,other:`інше`},statuses:{completed:`Виконано`,failed:`Не вдалося`,aborted:`Скасовано`,printing:`Друк`}},kProfiles:{title:`K-профілі`,noPrintersConfigured:`Принтери не налаштовані`,addPrinterInSettings:`Додайте принтер у налаштуваннях, щоб керувати K-профілями`,noActivePrinters:`Немає активних принтерів`,enablePrinterConnection:`Увімкніть підключення до принтера, щоб переглянути його K-профілі`,loadingProfiles:`Завантаження K-профілів...`,printerOffline:`Принтер не в мережі`,printerOfflineDesc:`Вибраний принтер не підключено. Увімкніть його, щоб переглянути K-профілі.`,noMatchingProfiles:`Немає відповідних профілів`,noMatchingProfilesDesc:`Немає профілів, які відповідають вашим критеріям пошуку`,noKProfiles:`Без K-профілів`,noKProfilesDesc:`Не знайдено профілів підвищення тиску для сопла {{diameter}} мм`,createFirstProfile:`Створити перший профіль`,printer:`Принтер`,nozzle:`Сопло`,refresh:`Оновити`,addProfile:`Додати профіль`,export:`Експорт`,import:`Імпорт`,select:`Вибрати`,selectAll:`Вибрати усі`,delete:`Видалити`,searchPlaceholder:`Пошук за назвою або філаментом...`,allExtruders:`Всі екструдери`,leftOnly:`Тільки зліва`,rightOnly:`Тільки право`,allFlow:`Весь потік`,hfOnly:`Тільки HF`,sOnly:`Тільки S`,sortName:`Сортувати за назвою`,sortKValue:`Сортувати: К-значення`,sortFilament:`Сорт: філамент`,leftExtruder:`Лівий екструдер`,rightExtruder:`Правий екструдер`,modal:{addTitle:`Додати K-профіль`,editTitle:`Редагувати K-профіль`,profileName:`Назва профілю`,profileNamePlaceholder:`Мій профіль PLA.`,kValue:`К-значення`,kValuePlaceholder:`0,020`,kValueHelp:`Типовий діапазон: 0,01–0,06 для PLA, 0,02–0,10 для PETG`,filament:`Філамент`,selectFilament:`Виберіть філамент...`,noFilamentsHelp:`Філаменти не знайдено. Спочатку створіть K-профіль у Bambu Studio.`,flowType:`Тип потоку`,highFlow:`Сопло з високим потоком`,standard:`Стандартний`,nozzleSize:`Розмір сопла`,extruder:`Екструдер`,extruders:`Екструдери`,left:`Ліворуч`,right:`правильно`,notes:`Примітки (зберігаються локально)`,notesPlaceholder:`Додайте примітки щодо цього профілю...`,notesHelp:`Примітки зберігаються в Bambuddy, а не на принтері`,syncing:`Синхронізація з принтером...`,savingExtruder:`Збереження в екструдер {{current}}/{{total}}...`,pleaseWait:`Будь ласка, зачекайте`},deleteConfirm:{title:`Видалити профіль`,cannotUndo:`Це неможливо скасувати`,message:`Ви впевнені, що хочете видалити "{{name}}" із принтера?`},bulkDelete:{title:`Видалити профілі`,cannotUndo:`Це неможливо скасувати`,message:`Ви впевнені, що бажаєте видалити {{count}} вибрані профілі з принтера?`},toast:{profileSaved:`K-профіль збережено`,profilesSaved:`K-профіль збережено в екструдери {{count}}.`,selectAtLeastOneExtruder:`Виберіть принаймні один екструдер`,profileDeleted:`K-профіль видалено`,profilesDeleted:`Видалені профілі {{count}}.`,exportedProfiles:`Експортовані профілі {{count}}.`,importedProfiles:`Імпортовано {{count}} з {{total}} профілів`,noProfilesToExport:`Немає профілів для експорту`,invalidFileFormat:`Недійсний формат файлу`,failedToParseImport:`Не вдалося проаналізувати імпортований файл`,failedToSaveBatch:`Не вдалося зберегти K-профілі`,noteSaved:`Нотатку збережено`,failedToSaveNote:`Не вдалося зберегти нотатку`},permission:{noRead:`Ви не маєте дозволу оновлювати профілі`,noCreate:`Ви не маєте дозволу додавати профілі`,noUpdate:`Ви не маєте дозволу на оновлення K-профілів`,noDelete:`Ви не маєте дозволу на видалення K-профілів`,noExport:`Ви не маєте дозволу на експорт профілів`,noImport:`Ви не маєте дозволу на імпорт профілів`}},virtualPrinter:{title:`Віртуальний принтер`,running:`Працює`,stopped:`Зупинено`,description:{default:`Увімкніть віртуальний принтер, який відображатиметься в Bambu Studio та OrcaSlicer. Надіслані на нього файли буде одразу заархівовано без друку.`,proxy:`Увімкніть проксі, який передає трафік слайсера на реальний принтер і дає змогу друкувати віддалено через будь-яку мережу.`},enable:{title:`Увімкнути віртуальний принтер`,visibleInSlicer:`Відображається як "Bambuddy" у виявленні слайсера`,proxyingTo:`Проксування до {{name}}`,notActive:`Неактивний`},model:{title:`Модель принтера`,description:`Виберіть модель принтера для емуляції.`,restartWarning:`Зміна моделі перезапустить віртуальний принтер`},accessCode:{title:`Код доступу`,isSet:`Код доступу встановлено`,notSet:`Немає встановленого коду доступу – потрібно для ввімкнення`,placeholder:`Введіть 8-символьний код`,placeholderChange:`Введіть новий код для зміни`,hint:`Має бути рівно 8 символів. Використовується слайсерами для автентифікації.`,charCount:`({{count}}/8)`,inheritedFromTarget:`Успадковано від цільового принтера`,derivedFromTargetHint:`Використовує код доступу цільового принтера. Міст пересилає автентифікацію слайсера на справжній принтер, тому коди мають збігатися — відредагуйте код доступу принтера, щоб змінити це значення.`,reveal:`Показати код доступу`,hide:`Приховати код доступу`},targetPrinter:{title:`Цільовий принтер`,configured:`Ціль проксі налаштовано`,notConfigured:`Цільовий принтер не вибрано – потрібен для режиму проксі`,placeholder:`Виберіть принтер...`,hint:`Виберіть принтер, на який проксі передаватиме трафік слайсера. Принтер має працювати в режимі LAN.`,noPrinters:`Принтери не налаштовані. Щоб використовувати режим проксі, спочатку додайте принтер.`},remoteInterface:{title:`Перевизначення мережевого інтерфейсу`,configured:`Перевизначення інтерфейсу активне`,optional:`Необов’язково – використовуйте, якщо автоматичне визначення IP є неправильним (наприклад, кілька мережевих карток, Docker, VPN)`,placeholder:`Автоматичне визначення (за замовчуванням)...`,hint:`Заміна адреси IP, яка оголошується через SSDP і використовується в сертифікаті TLS. Корисно, коли Bambuddy має кілька мережевих інтерфейсів.`},mode:{title:`Режим`,archive:`Архів`,archiveDesc:`Одразу архівувати файли`,review:`Перевірка`,reviewDesc:`Перевіряти перед архівуванням`,queue:`Черга`,queueDesc:`Архівувати та додати в чергу`,proxy:`Проксі`,proxyDesc:`Пересилати на фізичний принтер`},autoDispatch:{title:`Автоматичний запуск`,description:`Автоматично запускати завдання після додавання до черги. Якщо вимкнено, завдання чекатимуть ручного запуску.`},queueForceColorMatch:{title:`Примусовий збіг кольорів`,description:`Не надсилати завдання на принтер без філаменту точного типу й кольору. Типово вимкнено: без цього черга зіставляє лише модель і може вибрати принтер із філаментом іншого кольору.`},gcodeInjection:{title:`Вставлення G-коду`,description:`Застосовувати до завдань цього віртуального принтера фрагменти G-коду, налаштовані для кожної моделі. Типово вимкнено.`},tailscaleDisabled:{title:`Інтеграція з Tailscale`,description:`Увімкніть, щоб позначити цей віртуальний принтер як доступний через Tailscale. Буде показано Tailscale-адресу хоста, яку потрібно ввести в слайсері. Імпорт сертифіката ЦС залишається обов’язковим; цей перемикач не впливає на сертифікати.`},setupRequired:{title:`Потрібне налаштування`,description:`Для роботи функції віртуального принтера потрібна додаткова конфігурація системи. Це включає переадресацію портів, правила брандмауера та параметри, що стосуються платформи.`,readGuide:`Перед увімкненням прочитайте посібник із налаштування`},archiveNameSource:{title:`Джерело назви архіву`,description:`Виберіть, як називати нові архіви, що надходять через віртуальний принтер. «Метадані» використовують вбудоване слайсером поле Title з 3MF (типовий варіант). «Назва файлу» використовує назву, яку Bambu Studio надіслала через FTP. За наявності поля Title Bambu Studio замінює ним назву, введену у вікні «Надіслати на принтер», тому обидва режими часто дають однаковий результат.`,metadata:`Метадані`,filename:`Назва файлу`},caCert:{title:`Сертифікат слайсера`,description:`Віртуальні принтери використовують сертифікат TLS, підписаний ЦС Bambuddy. Імпортуйте цей сертифікат ЦС у довірче сховище вашого слайсера, щоб він прийняв з’єднання — не потрібно копіювати його з командного рядка.`,copy:`Копіювати`,copied:`Скопійовано`,download:`Завантажити`,fingerprint:`SHA-256`},howItWorks:{title:`Як це працює`,step1:`У тій самій локальній мережі віртуальні принтери автоматично з’являються в слайсері (Bambu Studio або OrcaSlicer). З інших мереж додайте їх вручну за IP-адресою та кодом доступу.`,step2:`У режимах архівування, перевірки та черги натисніть «Надіслати» у слайсері, щоб вивантажити файли 3MF до Bambuddy. Слайсер покаже повідомлення про успішний друк, але файл буде лише збережено, а не надруковано.`,step3:`У режимі проксі-сервера віртуальний принтер передає весь трафік на справжній принтер — друк починається негайно, ніби підключений безпосередньо.`},status:{title:`Деталі статусу`,printerName:`Назва принтера`,model:`Модель`,serialNumber:`Серійний номер`,mode:`Режим`,pendingFiles:`Файли, що очікують на розгляд`,targetPrinter:`Цільовий принтер`,ftpPort:`Порт FTP`,mqttPort:`Порт MQTT`,ftpConnections:`Підключення FTP`,mqttConnections:`Підключення MQTT`},toast:{updated:`Налаштування віртуального принтера оновлено`,failedToUpdate:`Не вдалося оновити налаштування`,copyFailed:`Не вдалося скопіювати — спробуйте вибрати текст вручну`,accessCodeRequired:`Спочатку встановіть код доступу`,targetPrinterRequired:`Спочатку виберіть цільовий принтер`,bindIpRequired:`Спочатку встановіть прив’язку IP.`,accessCodeEmpty:`Код доступу не може бути порожнім`,accessCodeLength:`Код доступу має містити рівно 8 символів`,targetCodeChangedRebind:`Код доступу тепер відповідає новому цільовому принтеру. Повторно додайте цей пристрій у свій слайсер, щоб отримати новий код.`,created:`Створено віртуальний принтер`,failedToCreate:`Не вдалося створити віртуальний принтер`,deleted:`Віртуальний принтер видалено`,failedToDelete:`Не вдалося видалити віртуальний принтер`},list:{title:`Віртуальні принтери`,add:`додати`,addFirst:`Додати віртуальний принтер`,empty:`Віртуальні принтери не налаштовані. Додайте один, щоб почати.`},bindIp:{title:`Інтерфейс прив’язки`,placeholder:`Виберіть інтерфейс...`,hint:`Мережевий інтерфейс, до якого прив’язуватиметься цей віртуальний принтер. Для кожного принтера він має бути унікальним.`},proxy:{accessCodeHint:`У режимі проксі використовуйте код доступу цільового принтера в слайсері. З’єднання прозоро пересилається на справжній принтер.`},addDialog:{title:`Додати віртуальний принтер`,name:`Назва`,hint:`Ви можете налаштувати код доступу, цільовий принтер та інші параметри після створення.`,create:`Створити`},deleteConfirm:{title:`Видалити віртуальний принтер`,message:`Ви впевнені, що хочете видалити «{{name}}»? Усі служби цього принтера буде зупинено.`}},modelViewer:{openInSlicer:`Відкрити у слайсері`,tabs:{model:`3D-модель`,gcode:`Попередній перегляд G-коду`},notAvailable:`недоступно`,notSliced:`не нарізано`,plates:`Пластини`,allPlates:`Усі пластини`,plateNumber:`Пластина {{number}}`,plateCount:`Пластин: {{count}}`,plateCount_other:`Пластин: {{count}}`,objectCount:`Об’єктів: {{count}}`,objectCount_other:`Об’єктів: {{count}}`,filamentCount:`Філаментів: {{count}}`,filamentCount_other:`Філаментів: {{count}}`,eta:`ETA {{minutes}} хв`,noPreview:`Попередній перегляд цього файлу недоступний`,pagination:{pageOf:`Сторінка {{current}} з {{total}}`,prev:`Назад`,next:`Далі`},errors:{failedToLoad:`Не вдалося завантажити файл`,noMeshes:`У файлі 3MF не знайдено жодної сітки`,unsupportedFormat:`Непідтримуваний формат файлу`}},maintenanceDescriptions:{lubricateCarbonRods:`Нанесіть мастило на карбонові стрижні для плавного руху`,lubricateRails:`Нанесіть мастило на лінійні рейки для плавного руху`,cleanNozzle:`Очистіть нагрівач і сопло, щоб запобігти засміченню`,checkBelts:`Перевірте натяг ременя для точного друку`,cleanBuildPlate:`Очистіть будівельну пластину для кращого зчеплення`,checkExtruder:`Перевірте шестерні екструдера на знос`,checkCooling:`Переконайтеся, що вентилятори охолодження працюють належним чином`,generalInspection:`Загальний огляд принтера`,cleanCarbonRods:`Очистіть карбонові стрижні, щоб зменшити тертя`,lubricateSteelRods:`Нанесіть мастило на сталеві стрижні для плавного руху`,cleanSteelRods:`Очистіть сталеві стрижні, щоб зменшити тертя`,cleanLinearRails:`Протріть лінійні рейки, щоб видалити пил і сміття`,checkPtfeTube:`Перевірте трубку PTFE на знос або пошкодження`,replaceHepaFilter:`Замініть фільтр HEPA для забезпечення якості повітря`,replaceCarbonFilter:`Замініть фільтр з активованим вугіллям`,lubricateLeftNozzleRail:`Змастіть ліву рейку сопла (серія H2)`},smartPlugs:{offline:`Не в мережі`,admin:`Адміністрування`,openPlugAdminPage:`Відкрити сторінку адміністратора розетки`,deleteSmartPlug:`Видалити розумну розетку`,turnOnSmartPlug:`Увімкнути розумну розетку`,turnOffSmartPlug:`Вимкнути розумну розетку`,turnOn:`Увімкнути`,turnOff:`Вимкнути`,addSmartPlug:{scanningNetwork:`Сканування мережі...`,chooseEntity:`Виберіть сутність…`,connectionFailed:`Помилка підключення`,searchEntities:`Пошук сутностей...`,searchPowerSensors:`Пошук датчиків потужності...`,searchEnergySensors:`Пошук датчиків енергії...`,placeholders:{plugName:`Розетка у вітальні`,mqttStateOnValue:`ON, true, 1`,mqttSameAsPower:`Та сама тема, що й для потужності, або інша`}},linkedTo:`Пов’язано з:`,monitorOnly:`Лише моніторинг`,alerts:`Оповіщення`,scheduleOn:`Увімкнення: {{time}}`,scheduleOff:`Вимкнення: {{time}}`,on:`Увімкнено`,off:`Вимкнено`,power:`Потужність`,kwhToday:`кВт·год сьогодні`,settings:`Налаштування`,automationSettings:`Налаштування автоматизації`,showInSwitchbar:`Показати на панелі перемикачів`,quickAccessSidebar:`Швидкий доступ із бічної панелі`,enabled:`Увімкнено`,enableAutomation:`Увімкнути автоматизацію для цієї розетки`,autoOn:`Автоматичне ввімкнення`,autoOnDescription:`Увімкнути на початку друку`,autoOff:`Автоматичне вимкнення`,autoOffDescription:`Вимкнути після завершення друку (одноразово)`,autoOffPersistent:`Залишити ввімкненим`,autoOffPersistentDescription:`Залишати ввімкненою між друками, а не лише після одного завдання`,controlsPrinterPower:`Живить принтер`,controlsPrinterPowerDescription:`Вимкніть цей параметр, якщо розетка живить лише аксесуар — наприклад, вентилятор фільтра або освітлення. Інакше вимкнення розетки позначатиме принтер як недоступний.`,autoOffAfterDrying:`Автоматичне вимкнення після сушіння`,autoOffAfterDryingDescription:`Вимкнути після завершення сушіння AMS`,delayAfterDryingMinutes:`Затримка після сушіння (хв)`,turnOffDelayMode:`Режим затримки вимкнення`,time:`Час`,temp:`Температура`,delayMinutes:`Затримка (хвилин)`,tempThreshold:`Температурний поріг (°C)`,tempThresholdDescription:`Вимикається, коли сопло охолоне нижче цієї температури`,edit:`Редагувати`,deleteConfirm:`Ви впевнені, що хочете видалити "{{name}}"? Це неможливо скасувати.`,turnOnConfirm:`Ви впевнені, що бажаєте ввімкнути "{{name}}"?`,turnOffConfirm:`Ви впевнені, що бажаєте вимкнути "{{name}}"? Це призведе до відключення живлення підключеного пристрою.`,failedToTurn:`Не вдалося змінити стан «{{name}}» ({{action}})`,unknown:`Невідомий`,addTitle:`Додати розумну розетку`,editTitle:`Редагувати розумну розетку`,stopScanning:`Зупинити сканування`,discoverTasmota:`Виявити пристрої Tasmota`,foundDevices:`Знайдено {{count}} пристроїв - натисніть, щоб вибрати:`,noDevicesFound:`У вашій мережі не знайдено пристроїв Tasmota.`,haNotConfigured:`Home Assistant не налаштовано. Налаштуйте його в`,haSettingsPath:`Налаштування → Мережа → Home Assistant`,selectEntity:`Вибрати сутність *`,ipAddress:`IP Адреса *`,nameLabel:`Назва *`,username:`Ім’я користувача`,password:`Пароль`,authHint:`Залиште поле пустим, якщо ваш пристрій Tasmota не вимагає автентифікації`,linkToPrinter:`Прив’язати до принтера`,noPrinter:`Без принтера (лише ручне керування)`,linkingDescription:`Прив’язування дає змогу автоматично вмикати й вимикати розетку на початку та після завершення друку`,powerAlerts:`Сповіщення про живлення`,alertAbove:`Сповіщати, якщо вище (Вт)`,alertBelow:`Сповіщати, якщо нижче (Вт)`,alertDescription:`Сповіщати, коли споживана потужність перетинає ці пороги. Залиште відповідне поле порожнім, щоб вимкнути сповіщення для цього напрямку.`,dailySchedule:`Щоденний розклад`,turnOnAt:`Увімкнути о`,turnOffAt:`Вимкнути о`,scheduleDescription:`Щодня автоматично вмикати й вимикати розетку в зазначений час. Залиште поле порожнім, щоб пропустити відповідну дію.`,showOnPrinterCard:`Показати на картці принтера`,displayOnPrinterCard:`Показувати кнопку на картці принтера`,connectedResult:`Підключено!`,deviceLabel:`Пристрій: {{name}} - `,stateLabel:`Стан: {{state}}`,test:`Тест`,delete:`Видалити`,save:`Зберегти`,add:`Додати`,cancel:`Скасувати`,failedToStartScan:`Не вдалося почати сканування`,nameRequired:`Необхідно вказати ім’я`,entityRequired:`Сутність необхідна для розеток Home Assistant.`,mqttTopicRequired:`Для моніторингу потужності, енергії або стану потрібно налаштувати принаймні одну тему MQTT`,loadingEntities:`Завантаження об’єктів...`,loading:`Завантаження...`,failedToLoadEntities:`Не вдалося завантажити сутності: {{error}}`,noEntitiesMatching:`Не знайдено об’єктів, що відповідають "{{search}}"`,noEntitiesAvailable:`Немає доступних сутностей`,searchingEntities:`Пошук у всіх об’єктах ({{count}} знайдено)`,showingEntities:`Показано сутності switch, light та input_boolean (доступно: {{count}})`,energyMonitoringOptional:`Моніторинг енергії (необов’язково)`,energyMonitoringHint:`Знайдіть і виберіть датчики, що надають дані про потужність або споживання енергії.`,powerSensorW:`Датчик потужності (Вт)`,energyTodayKwh:`Споживання за сьогодні (кВт·год)`,totalEnergyKwh:`Загальне споживання енергії (кВт·год)`,noMatchingSensors:`Немає відповідних датчиків`,none:`Жодного`,mqttNotConfigured:`MQTT-брокер не налаштований. Укажіть адресу брокера в розділі`,mqttSettingsPath:`Налаштування → Мережа → Публікація MQTT`,mqttNotConfiguredSuffix:`(вмикати публікацію не потрібно — достатньо вказати параметри брокера).`,mqttMonitorOnlyDescription:`MQTT-розетки отримують дані про потужність і споживання енергії через підписку MQTT. Керування ввімкненням і вимкненням недоступне — використовуйте MQTT-брокер або систему домашньої автоматизації.`,powerMonitoring:`Моніторинг потужності`,energyMonitoring:`Моніторинг споживання енергії`,stateMonitoring:`Моніторинг стану`,optional:`необов’язково`,topic:`Тема`,jsonPath:`Шлях JSON`,multiplier:`Множник`,onValue:`Значення «увімкнено»`,mqttPowerHint:`Шлях JSON витягує значення з корисного навантаження JSON (наприклад, "power_l1"). Залиште поле порожнім, якщо тема публікує безпосередньо числові значення.
+Значение «включено» — точная строка, означающая включённое состояние. Оставьте пустым для автоматического распознавания ON, true и 1.`,restControl:`Управление`,restOnUrl:`URL включения`,restOffUrl:`URL выключения`,restOnBody:`Тело запроса включения`,restOffBody:`Тело запроса выключения`,restMethod:`Метод HTTP`,restHeaders:`Пользовательские заголовки (JSON)`,restStatusUrl:`URL состояния`,restStatusPath:`Путь JSON состояния`,restStatusOnValue:`Значение «включено»`,restPowerUrl:`URL мощности`,restPowerPath:`Путь JSON мощности`,restPowerMultiplier:`Множитель мощности`,restEnergyUrl:`URL энергии`,restEnergyPath:`Путь JSON энергии`,restEnergyTotalPath:`Путь JSON полной энергии`,restEnergyTotalMultiplier:`Множитель полной энергии`,restEnergyTotalPathHint:`например, aenergy.total`,restEnergyTotalHint:`Многие розетки, включая все устройства Shelly, передают только накопительный счётчик энергии, который никогда не сбрасывается. Его следует указывать здесь, а не в поле выше: если считать его суточным расходом, значение не сбросится в полночь, а данные за вчера и общий расход останутся пустыми. Bambuddy вычисляет расход за сегодня и вчера по этому счётчику; для накопления данных потребуется один-два дня. Shelly передаёт ватт-часы, поэтому используйте множитель 0.001.`,restEnergyMultiplier:`Множитель энергии`,restUrlRequired:`Для REST-розетки необходимо указать хотя бы один URL: включения или выключения`,restHeadersHint:`например, {"Authorization": "Bearer your-token"}`,restBodyHint:`например, ON или {"state": "on"}`,restStatusHint:`URL для опроса текущего состояния`,restPathHint:`например, state или data.power.status`,restPowerUrlHint:`Отдельный URL данных мощности; если пусто, используется URL состояния`,restEnergyUrlHint:`Отдельный URL данных энергии; если пусто, используется URL состояния`,restEnergyHint:`Для каждого значения можно использовать отдельный URL либо URL состояния. Множители используются для преобразования единиц, например 0.001 для Вт·ч→кВт·ч.`,testConnection:`Проверить подключение`,connectionSuccess:`Подключение успешно`,noSwitchesInSwitchbar:`На панели переключателей нет устройств`,enableSwitchbarHint:`Включите «Показывать на панели переключателей» в разделе «Настройки → Умные розетки»`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`Электронная почта`,discord:`Discord`,webhook:`Вебхук`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`Уведомления по электронной почте через SMTP`,telegram:`Уведомления через Telegram-бота`,discord:`Отправка в канал Discord через вебхук`,ntfy:`Бесплатные push-уведомления с возможностью самостоятельного размещения сервера`,pushover:`Простые и надёжные push-уведомления`,callmebot:`Бесплатные уведомления WhatsApp через CallMeBot`,webhook:`Универсальный HTTP POST-запрос на любой URL`,homeassistant:`Постоянные уведомления на панели Home Assistant`,bark:`iOS push-уведомления через Bark (можно разместить у себя)`},lastSuccess:`Последняя отправка: {{date}}`,error:`Ошибка`,printer:`Принтер:`,allPrinters:`Все принтеры`,sendTestNotification:`Отправить тестовое уведомление`,eventSettings:`Настройки событий`,enabled:`Включено`,sendFromProvider:`Отправлять уведомления через этого провайдера`,printEvents:`События печати`,printerStatus:`Состояние принтера`,amsAlarms:`Предупреждения AMS`,amsHtAlarms:`Предупреждения AMS-HT`,printQueue:`Очередь печати`,start:`Запуск`,plateCheck:`Проверка пластины`,complete:`Завершено`,failed:`Ошибка`,stopped:`Остановлено`,progress:`Ход печати`,offline:`Не в сети`,lowFilament:`Мало филамента`,maintenance:`Обслуживание`,amsHumidity:`Влажность AMS`,amsTemp:`Температура AMS`,amsHtHumidity:`Влажность AMS-HT`,amsHtTemp:`Температура AMS-HT`,bedCooled:`Стол остыл`,firstLayer:`Первый слой`,quiet:`Тихий режим`,digest:`Сводка в {{time}}`,printStarted:`Печать началась`,plateNotEmpty:`Пластина не пуста`,plateNotEmptyDescription:`Перед печатью на пластине обнаружены объекты`,plateClearRequired:`Требуется подтверждение стола`,plateClearRequiredDescription:`Печать завершена, очередь ждет подтверждения`,plateClear:`Стол свободен`,printCompleted:`Печать завершена`,bedCooledLabel:`Стол остыл`,bedCooledDescription:`После печати температура стола опустилась ниже заданного порога`,firstLayerCompleteLabel:`Первый слой завершён`,firstLayerCompleteDescription:`Уведомить со снимком после завершения первого слоя`,missingSpoolAssignmentLabel:`Катушка не назначена`,missingSpoolAssignmentDescription:`Уведомить при запуске печати, если для необходимых слотов не назначены катушки`,printFailed:`Ошибка печати`,printStopped:`Печать остановлена`,progressMilestones:`Этапы выполнения`,progressMilestonesDescription:`Уведомлять при 25%, 50% и 75%`,printerOffline:`Принтер не в сети`,printerError:`Ошибка принтера`,aiFailureDetection:`Обнаружение сбоев с помощью ИИ`,aiFailureDetectionDescription:`Уведомить, если Obico AI обнаружит возможный сбой печати`,lowFilamentLabel:`Заканчивается филамент`,maintenanceDue:`Требуется обслуживание`,maintenanceDueDescription:`Уведомить, когда принтеру потребуется обслуживание`,amsHumidityHigh:`Высокая влажность в AMS`,amsHumidityHighDescription:`Влажность в обычной AMS превысила заданный порог`,amsTemperatureHigh:`Высокая температура в AMS`,amsTemperatureHighDescription:`Температура в обычной AMS превысила заданный порог`,amsHtHumidityHigh:`Высокая влажность в AMS-HT`,amsHtHumidityHighDescription:`Влажность в AMS-HT превысила заданный порог`,amsHtTemperatureHigh:`Высокая температура в AMS-HT`,amsHtTemperatureHighDescription:`Температура в AMS-HT превысила заданный порог`,inventoryAlerts:`Уведомления о запасах`,stockReorderAlert:`Пора заказывать`,stockReorderAlertDescription:`Запас по SKU достиг точки повторного заказа`,stockBreakAlert:`Риск исчерпания запаса`,stockBreakAlertDescription:`Запас закончится раньше, чем поступит пополнение`,jobAdded:`Задание добавлено`,jobAddedDescription:`Задание добавлено в очередь`,jobAssigned:`Задание назначено`,jobAssignedDescription:`Задание по модели назначено принтеру`,jobStarted:`Задание запущено`,jobStartedDescription:`Задание из очереди отправлено на печать`,jobWaiting:`Задание ожидает`,jobWaitingDescription:`Задание ожидает филамент или свободный принтер`,jobSkipped:`Задание пропущено`,jobSkippedDescription:`Задание пропущено из-за ошибки предыдущего`,jobFailed:`Не удалось запустить задание`,jobFailedDescription:`Задание не удалось отправить на печать`,queueComplete:`Очередь завершена`,queueCompleteDescription:`Все задания в очереди завершены`,quietHours:`Тихие часы`,noNotificationsDuring:`Не отправлять уведомления в это время`,editProviderToChangeQuietHours:`Измените провайдера, чтобы настроить тихие часы`,dailyDigest:`Ежедневная сводка`,batchNotifications:`Объединять уведомления в одну ежедневную сводку`,sendAt:`Отправлять в {{time}}`,editProviderToChangeDigestTime:`Измените провайдера, чтобы настроить время сводки`,edit:`Изменить`,deleteProvider:`Удалить провайдера уведомлений`,deleteConfirm:`Удалить «{{name}}»? Это действие нельзя отменить.`,delete:`Удалить`,addTitle:`Добавить провайдера уведомлений`,editTitle:`Изменить провайдера уведомлений`,nameLabel:`Название *`,namePlaceholder:`Мои уведомления`,providerTypeLabel:`Тип провайдера *`,configuration:`Настройка`,testConfiguration:`Проверить настройку`,printerFilter:`Фильтр принтеров`,onlyFromPrinter:`Отправлять уведомления только о событиях этого принтера`,quietHoursDnd:`Тихие часы (не беспокоить)`,quietStart:`Начало`,quietEnd:`Окончание`,dailyDigestLabel:`Ежедневная сводка`,sendDigestAt:`Отправлять сводку в`,digestCollected:`События будут собраны и отправлены одной сводкой в указанное время`,notificationEvents:`События для уведомлений`,progressPercent:`(25%, 50%, 75%)`,bedCooledAfterPrint:`(после завершения печати)`,eventPriority:{sectionTitle:`Приоритет ntfy`,helpNtfy:`Выберите приоритет для каждого включённого события. ntfy использует его для усиления оповещений: звука, видимости и поведения push-уведомлений. Для неуказанных событий используется приоритет по умолчанию сервера ntfy.`,min:`Минимальный`,low:`Низкий`,default:`Обычный`,high:`Высокий`,urgent:`Срочный`},cancel:`Отмена`,save:`Сохранить`,add:`Добавить`,nameRequired:`Укажите название`,fieldRequired:`Поле «{{field}}» обязательно`,haDataInvalid:`Поле Data должно быть корректным JSON-объектом, напр. {"priority": "high", "ttl": 0}`,phoneNumber:`Номер телефона`,apiKey:`Ключ API`,serverUrl:`URL сервера`,topic:`Тема`,authToken:`Токен авторизации`,userKey:`Ключ пользователя`,appToken:`Токен приложения`,priority:`Приоритет`,pushoverRetry:`Повтор экстренного уведомления (с)`,pushoverExpire:`Срок действия экстренного уведомления (с)`,botToken:`Токен бота`,chatId:`ID чата`,telegramThreadId:`ID темы форума`,telegramThreadIdHelp:`Необязательно. Отправляет в конкретную тему форум-группы — последнее число в ссылке на тему (t.me/c/.../25). Оставьте пустым для темы General.`,telegramThreadIdInvalid:`ID темы форума должен быть числом.`,smtpServer:`SMTP-сервер`,smtpPort:`Порт SMTP`,security:`Защита соединения`,authentication:`Аутентификация`,username:`Имя пользователя`,password:`Пароль`,fromEmail:`Адрес отправителя`,toEmail:`Адрес получателя`,webhookUrl:`URL вебхука`,payloadFormat:`Формат данных`,authorization:`Авторизация`,titleFieldName:`Имя поля заголовка`,messageFieldName:`Имя поля сообщения`,editTemplate:`Изменить шаблон: {{name}}`,titleLabel:`Заголовок`,bodyLabel:`Текст`,titlePlaceholder:`Заголовок уведомления...`,bodyPlaceholder:`Текст уведомления...`,availableVariables:`Доступные переменные`,clickToInsert:`Нажмите, чтобы вставить в позицию курсора в тексте`,livePreview:`Предварительный просмотр`,hide:`Скрыть`,show:`Показать`,loadingPreview:`Загрузка предварительного просмотра...`,enterTemplateContent:`Введите содержимое шаблона для предварительного просмотра`,titlePreview:`Заголовок:`,bodyPreview:`Текст:`,resetToDefault:`Восстановить стандартный шаблон`,titleRequired:`Укажите заголовок`,bodyRequired:`Введите текст уведомления`,notificationLog:`Журнал уведомлений`,showFailedOnly:`Только неудачные`,last24Hours:`Последние 24 часа`,last7Days:`Последние 7 дней`,last30Days:`Последние 30 дней`,last90Days:`Последние 90 дней`,justNow:`Только что`,noFailedNotifications:`Неудачных уведомлений нет`,noNotificationsLogged:`В журнале пока нет уведомлений`,unknownProvider:`Неизвестный провайдер`,logTitle:`Заголовок`,logMessage:`Сообщение`,logError:`Ошибка`,logProvider:`Провайдер: {{type}}`,logTime:`Время: {{time}}`,refresh:`Обновить`,clearOld:`Удалить старые`,statsSummary:`За последние {{days}} дней:`,statsNotifications:`уведомлений`,statsSent:`отправлено: {{count}}`,statsFailed:`ошибок: {{count}}`,eventTypes:{print_start:`Печать началась`,print_complete:`Печать завершена`,print_failed:`Ошибка печати`,print_stopped:`Печать остановлена`,print_progress:`Ход печати`,printer_offline:`Принтер не в сети`,printer_error:`Ошибка принтера`,filament_low:`Заканчивается филамент`,maintenance_due:`Требуется обслуживание`,test:`Тест`},userEmail:{title:`Уведомления`,emailNotifications:`Уведомления по электронной почте`,emailNotificationsDesc:`Получать письма о собственных заданиях печати. Для отправки используются системные параметры SMTP из раздела расширенной аутентификации.`,sendingTo:`Уведомления будут отправляться на адрес`,noEmailWarning:`Для вашей учётной записи не указан адрес электронной почты. Обратитесь к администратору.`,printJobNotifications:`Уведомления о заданиях печати`,printJobNotificationsDesc:`Выберите события, при которых будут отправляться письма о запущенных вами заданиях.`,printJobStarts:`Запуск задания печати`,printJobStartsDesc:`Уведомлять о начале вашего задания печати.`,printJobFinishes:`Завершение задания печати`,printJobFinishesDesc:`Уведомлять об успешном завершении вашего задания печати.`,printErrors:`Ошибки печати`,printErrorsDesc:`Уведомлять, если задание завершилось ошибкой или при печати возникла проблема.`,printJobStops:`Остановка задания печати`,printJobStopsDesc:`Уведомлять об отмене или остановке вашего задания печати.`,saveSuccess:`Настройки уведомлений сохранены.`,saveError:`Не удалось сохранить настройки уведомлений.`}},richTextEditor:{bold:`Полужирный`,italic:`Курсив`,underline:`Подчёркивание`,bulletList:`Маркированный список`,numberedList:`Нумерованный список`,alignLeft:`По левому краю`,alignCenter:`По центру`,alignRight:`По правому краю`,addLink:`Добавить ссылку`,removeLink:`Удалить ссылку`},externalLinks:{title:`Ссылки на боковой панели`,sidebarLayout:`Боковая панель`,sidebarLayoutDescription:`Показывайте или скрывайте встроенные страницы, добавляйте внешние ссылки и перетаскивайте пункты, меняя порядок навигации.`,systemPages:`Страницы Bambuddy`,externalLinks:`Внешние ссылки`,visibleInSidebar:`Показывается на боковой панели`,hiddenFromSidebar:`Скрыто с боковой панели`,requiredInSidebar:`Обязательный пункт боковой панели`,hidePage:`Скрыть страницу`,showPage:`Показать страницу`,settingsCannotBeHidden:`Настройки нельзя скрыть`,noLinksConfigured:`Внешние ссылки не настроены`,deleteLink:`Удалить ссылку`,removeCustomIcon:`Удалить пользовательский значок`,openInNewTab:`Открывать в новой вкладке`,placeholders:{linkName:`Моя ссылка`}},keyboardShortcuts:{title:`Горячие клавиши`,navigation:`Навигация`,archivesSection:`Архив`,kProfilesSection:`K-профили`,generalSection:`Общие`,shortcuts:{goToPrinters:`Перейти к принтерам`,goToArchives:`Перейти в архив`,goToQueue:`Перейти к очереди`,goToStats:`Перейти к статистике`,goToProfiles:`Перейти к облачным профилям`,goToSettings:`Перейти к настройкам`,focusSearch:`Перейти в строку поиска`,openUploadModal:`Открыть окно загрузки`,clearSelection:`Снять выделение / убрать фокус с поля`,contextMenu:`Контекстное меню карточки`,refreshProfiles:`Обновить профили`,newProfile:`Новый профиль`,exitSelectionMode:`Выйти из режима выделения`,showHelp:`Показать эту справку`},footer:`Нажмите Esc или щёлкните снаружи, чтобы закрыть`},notificationLog:{title:`Журнал уведомлений`,events:{printStarted:`Печать началась`,printComplete:`Печать завершена`,printFailed:`Ошибка печати`,printStopped:`Печать остановлена`,progress:`Ход выполнения`,printerOffline:`Принтер не в сети`,printerError:`Ошибка принтера`,lowFilament:`Заканчивается филамент`,maintenanceDue:`Требуется обслуживание`,test:`Тест`},timeAgo:{justNow:`Только что`,minutesAgo:`{{minutes}} мин назад`,hoursAgo:`{{hours}} ч назад`}},restoreBackup:{title:`Восстановление резервной копии`,restoring:`Восстановление...`,restoreComplete:`Восстановление завершено`,restoreFailed:`Ошибка восстановления`,importSettings:`Импортировать настройки из файла резервной копии`,pleaseWait:`Подождите, пока данные восстанавливаются`,clickToSelect:`Нажмите, чтобы выбрать файл резервной копии (.json или .zip)`,howDuplicateHandling:`Как обрабатываются совпадения:`,categories:{printers:`Принтеры`,smartPlugs:`Умные розетки`,notificationProviders:`Провайдеры уведомлений`,filaments:`Филаменты`,archives:`Архив`,pendingUploads:`Ожидающие загрузки`,settingsTemplates:`Настройки и шаблоны`},matchingInfo:{printers:`сопоставляются по серийному номеру`,smartPlugs:`сопоставляются по IP-адресу`,notificationProviders:`сопоставляются по названию`,filaments:`сопоставляются по названию, типу и бренду`,archives:`сопоставляются по хешу содержимого`,pendingUploads:`сопоставляются по имени файла`,settingsTemplates:`всегда перезаписываются`},replaceExisting:`Заменить существующие данные`,keepExisting:`Сохранить существующие данные`,replaceDescription:`Перезаписать уже существующие элементы данными из резервной копии`,keepDescription:`Восстановить только отсутствующие элементы`,caution:`Внимание:`,cautionText:`При перезаписи текущая конфигурация будет заменена данными из резервной копии. В целях безопасности коды доступа к принтерам никогда не перезаписываются.`,itemsRestored:`Восстановлено элементов`,itemsSkipped:`Пропущено элементов`,restored:`Восстановлено`,skipped:`Пропущено (уже существует)`,filesLabel:`Файлы (3MF, миниатюры и т. п.)`,newApiKeysGenerated:`Созданы новые ключи API`,newApiKeysWarning:`Эти ключи показываются только один раз. Скопируйте их сейчас!`,processingBackup:`Обработка резервной копии...`,noDataFound:`В резервной копии не найдено данных для восстановления.`,failedToRestore:`Не удалось восстановить резервную копию. Проверьте формат файла.`},backupExport:{title:`Экспорт резервной копии`,selectData:`Выберите данные для включения`,selectAll:`Выбрать всё`,selectNone:`Снять выделение`,categoryDescriptions:{settings:`Язык, тема и настройки обновлений`,notifications:`ntfy, Pushover, Discord и другие`,templates:`Пользовательские шаблоны сообщений`,smartPlugs:`Конфигурация розеток Tasmota`,externalLinks:`Ссылки на внешние сервисы в боковой панели`,printers:`Сведения о принтерах (без кодов доступа)`,plateDetection:`Эталонные изображения пустых пластин`,filaments:`Типы и стоимость филамента`,maintenance:`Пользовательские графики обслуживания`,archives:`Все данные печати и файлы (3MF, миниатюры, фотографии)`,projects:`Проекты, позиции спецификаций и вложения`,pendingUploads:`Загрузки виртуальных принтеров, ожидающие проверки`,apiKeys:`Ключи API вебхуков (при импорте создаются новые)`},requiresPrinters:`Необходимо выбрать раздел «Принтеры»`,zipFileWarning:`Будет создан ZIP-файл.`,zipFileDescription:`В него войдут все файлы 3MF, миниатюры, таймлапсы и фотографии. Операция может занять некоторое время, а файл — получиться большим.`,includeAccessCodes:`Включить коды доступа`,includeAccessCodesDescription:`Для переноса на другой компьютер`,includeAccessCodesWarning:`Коды доступа попадут в файл открытым текстом. Храните резервную копию в безопасном месте!`,categoriesSelected:`Выбрано категорий: {{selectedCount}}`},pendingUploads:{placeholders:{notes:`Добавьте примечания об этой печати...`},discardUpload:`Отклонить загрузку`,archiveAllUploads:`Добавить все загрузки в архив`,discardAllUploads:`Отклонить все загрузки`,archive:`В архив`,timeAgo:{justNow:`Только что`,minutesAgo:`{{minutes}} мин назад`,hoursAgo:`{{hours}} ч назад`,daysAgo:`{{days}} дн. назад`}},apiBrowser:{placeholders:{requestBody:`Тело запроса JSON...`,searchEndpoints:`Поиск конечных точек...`}},configureAmsSlot:{title:`Настройка слота AMS`,slotConfigured:`Слот настроен!`,configuringSlot:`Настраивается слот:`,slotLabel:`{{ams}}, слот {{slot}}`,searchPresets:`Поиск профилей...`,colorPlaceholder:`Название или HEX-код цвета (например: brown, FF8800)`,clearCustomColor:`Очистить пользовательский цвет`,noCloudPresets:`Облачных профилей нет. Войдите в Bambu Cloud для синхронизации.`,noPresetsAvailable:`Нет доступных профилей. Войдите в Bambu Cloud или импортируйте локальные профили.`,noMatchingPresets:`Подходящие профили не найдены.`,custom:`Пользовательский`,builtin:`Встроенный`,orcaCloud:`Orca Cloud`,bambuCloud:`Bambu Cloud`,settingsSentToPrinter:`Настройки отправлены на принтер`,filamentProfile:`Профиль филамента`,kProfileLabel:`K-профиль (Pressure Advance)`,filteringFor:`Фильтр по материалу: {{material}}`,noKProfile:`Без K-профиля (стандартное значение 0,020)`,noMatchingKProfiles:`Подходящие K-профили не найдены. Будет использовано стандартное значение K=0,020.`,otherKProfiles:`Другие K-профили на этом принтере`,selectFilamentFirst:`Сначала выберите профиль филамента`,kFromCalibration:`K={{value}} из калибровки принтера`,customColorLabel:`Пользовательский цвет (необязательно)`,presetColors:`Цвета {{name}}:`,showLessColors:`Показать меньше цветов`,showMoreColors:`Показать больше цветов`,clear:`Очистить`,hexLabel:`HEX: #{{hex}}`,resetting:`Сброс...`,resetSlot:`Сбросить слот`,cancel:`Отмена`,configuring:`Настройка...`,configureSlot:`Настроить слот`},githubBackup:{title:`Резервное копирование в Git`,history:`История`,downloadBackup:`Скачать резервную копию`,restoreBackup:`Восстановить резервную копию`,noBackupsYet:`Резервных копий пока нет`},emailSettings:{placeholders:{fromName:`BamBuddy`}},tagManagement:{searchTags:`Поиск меток...`,renameTag:`Переименовать метку`,deleteTag:`Удалить метку`},notificationTemplates:{placeholders:{title:`Заголовок уведомления...`,body:`Текст уведомления...`}},batchTag:{placeholders:{newTag:`Введите новую метку...`}},photoGallery:{deletePhoto:`Удалить фотографию`},filamentHoverCard:{copySpoolUuid:`Скопировать UUID катушки`},kProfilesView:{hasNote:`Есть примечание`,copyProfile:`Копировать профиль`},layout:{openMenu:`Открыть меню`,noPermissionSystemInfo:`У вас нет разрешения на просмотр системной информации`},dashboard:{dragToReorder:`Перетащите, чтобы изменить порядок`,hideWidget:`Скрыть виджет`},notificationProviderCard:{deleteNotificationProvider:`Удалить провайдера уведомлений`},fileManagerModal:{closeFileManager:`Закрыть файловый менеджер`,sortFiles:`Сортировать файлы`,goToParentFolder:`Перейти в родительскую папку`,threeView:`Просмотр 3D`},embeddedCameraViewer:{refreshStream:`Обновить поток`,close:`Закрыть`,zoomOut:`Уменьшить`,resetZoom:`Сбросить масштаб`,zoomIn:`Увеличить`,dragToResize:`Перетащите, чтобы изменить размер`},timelapseViewer:{skipBack5s:`Назад на 5 с`,skipForward5s:`Вперёд на 5 с`},notificationProviders:{descriptions:{email:`Уведомления по электронной почте через SMTP`,telegram:`Уведомления через Telegram-бота`,discord:`Отправка в канал Discord через вебхук`,ntfy:`Бесплатные push-уведомления с возможностью самостоятельного размещения сервера`,pushover:`Простые и надёжные push-уведомления`,callmebot:`Бесплатные уведомления WhatsApp через CallMeBot`,webhook:`Обычный HTTP POST на любой URL`}},logViewer:{searchPlaceholder:`Поиск по сообщению или имени логгера...`,noLogEntries:`Записи журнала не найдены`},switchbarPopover:{noSwitchesInSwitchbar:`На панели переключателей нет устройств`},projectPageModal:{placeholders:{title:`Название`,designer:`Автор`,license:`Лицензия`,description:`Введите описание...`,profileTitle:`Название профиля`,profileDescription:`Описание профиля...`}},spoolmanSettings:{},time:{unknown:`—`,waiting:`Ожидание`,justNow:`Только что`,now:`Сейчас`,minsAgo:`{{count}} мин назад`,inMins:`через {{count}} мин`,hoursAgo:`{{count}} ч назад`,inHours:`через {{count}} ч`,daysAgo:`{{count}} дн. назад`,inDays:`через {{count}} дн.`},spoolbuddy:{nav:{dashboard:`Панель`,ams:`AMS`,inventory:`Катушки`,writeTag:`Запись метки`,settings:`Настройки`},status:{nfcReady:`NFC готов`,nfcOff:`NFC выключен`,offline:`Не в сети`,online:`В сети`,noPrinters:`Нет принтеров`,deviceOffline:`Устройство не в сети`,waitingConnection:`Ожидание подключения устройства...`,systemReady:`Система готова`,status:`Состояние`},dashboard:{readyToScan:`Готово к сканированию`,idleMessage:`Поставьте катушку на весы для идентификации`,nfcHint:`Метка NFC будет считана автоматически`,device:`Устройство`,syncWeight:`Синхронизировать массу`,weightSynced:`Синхронизировано!`,unknownTag:`Неизвестная метка`,newTag:`Обнаружена новая метка`,onScale:`на весах`,linkSpool:`Связать с катушкой`,linkTagTitle:`Связать метку с катушкой`,linkTag:`Связать метку`,selectSpool:`Выберите катушку, с которой нужно связать эту метку:`,noUntagged:`Катушки без меток не найдены`,tagDetected:`Метка обнаружена`,noTag:`Метка отсутствует`,tagId:`Метка`,grossWeight:`Масса брутто`,spoolSize:`Размер катушки`,close:`Закрыть`,currentSpool:`Текущая катушка`,plateReady:`Пластина готова: {{name}}`,plateReadyLabel:`Пластины, готовые к очистке`,plateClearAction:`Очищено`,plateClearedToast:`Пластина отмечена как очищенная`,plateClearFailed:`Не удалось отметить пластину как очищенную`},modal:{spoolDetected:`Катушка обнаружена`,assignToAms:`Назначить в AMS`,syncWeight:`Синхронизировать массу`,weightSynced:`Синхронизировано!`,syncing:`Синхронизация...`,newTagDetected:`Обнаружена новая метка`,addToInventory:`Добавить в учёт`,assignToAmsTitle:`Назначить в AMS`,selectSlot:`Выберите слот`,assign:`Назначить`,assigning:`Назначение...`,assignSuccess:`Назначено!`,assignPendingInsert:`Назначено. Слот будет настроен после установки катушки.`,assignError:`Не удалось назначить катушку. Повторите попытку.`,noPrinterSelected:`Выберите принтер...`,noAmsDetected:`На этом принтере AMS не обнаружена`,slot:`Слот`},weight:{noReading:`Нет показаний`,stable:`Стабильно`,measuring:`Измерение...`,tare:`Тарировать`,calibrate:`Калибровать`},spool:{remaining:`Остаток`,material:`Материал`,brand:`Бренд`,color:`Цвет`,coreWeight:`Сердечник`,labelWeight:`По этикетке`,scaleWeight:`По весам`,netWeight:`Нетто`,lastUsed:`Последнее использование`},ams:{noData:`AMS не обнаружена`,connectAms:`Подключите AMS, чтобы увидеть слоты филамента`,noPrinter:`Принтер не выбран`,selectPrinter:`Выберите принтер на верхней панели`,printerDisconnected:`Принтер отключён`,humidity:`Влажность`,level:`Уровень`,active:`Активен`,slot:`Слот`,empty:`Пусто`},inventory:{search:`Поиск катушек...`,empty:`В учёте нет катушек`,noResults:`Подходящие катушки не найдены`,spools:`катушек`,addSpool:`Добавить катушку`},settings:{tabDevice:`Устройство`,tabDisplay:`Экран`,tabScale:`Весы`,tabUpdates:`Обновления`,nfcReader:`Считыватель NFC`,type:`Тип`,connection:`Подключение`,notConnected:`Н/Д`,deviceInfo:`Сведения об устройстве`,hostname:`Хост`,uptime:`Время работы`,systemConfig:`Бэкенд и авторизация`,backendUrl:`URL бэкенда Bambuddy`,apiToken:`Токен API`,apiTokenPlaceholder:`Введите токен API`,saveConfig:`Сохранить конфигурацию`,systemQueued:`Конфигурация поставлена в очередь.`,nfcDiagnostic:`Диагностика NFC`,scaleDiagnostic:`Диагностика весов`,readTagDiagnostic:`Диагностика чтения метки`,testNfc:`Проверить считыватель`,testScale:`Проверить точность`,testReadTag:`Считать метку`,systemFieldsRequired:`Необходимо указать URL бэкенда.`,brightness:`Яркость`,saved:`Сохранено`,noBacklight:`Подсветка DSI не обнаружена. Для управления яркостью требуется дисплей DSI.`,screenBlank:`Тайм-аут отключения экрана`,screenBlankDesc:`Экран выключается при бездействии. Коснитесь его для пробуждения.`,displayNote:`Яркость регулируется программным фильтром.`,scaleCalibration:`Калибровка весов`,currentWeight:`Текущая масса`,tareOffset:`Тара`,calFactor:`Коэффициент`,knownWeight:`Эталонная масса`,calStep1:`Уберите всё с весов и нажмите «Установить ноль».`,calStep2:`Положите на весы груз известной массы.`,setZero:`Установить ноль`,calibrateNow:`Калибровать`,calibrated:`Откалибровано`,tareSet:`Команда тарирования отправлена. Ожидание устройства...`,tareComplete:`Тарирование завершено!`,tareTimedOut:`Истекло время ожидания тарирования — демон SpoolBuddy запущен?`,tareFailed:`Не удалось отправить команду тарирования`,zeroSet:`Нулевая точка установлена. Положите на весы груз известной массы.`,calibrationDone:`Калибровка завершена!`,calibrationFailed:`Ошибка калибровки`,lastCalibrated:`Последняя калибровка`,stable:`Стабильно`,settling:`Стабилизация...`,firmware:`Прошивка`,scale:`Весы`,noDevice:`Устройство SpoolBuddy не найдено`,daemonVersion:`Версия демона`,currentVersion:`Текущая`,versionPending:`Ожидание демона...`,checking:`Проверка...`,checkUpdates:`Проверить обновления`,updateAvailable:`Доступно обновление`,updateInstructions:`Обновление по SSH: запустите установочный скрипт SpoolBuddy.`,upToDate:`Установлена актуальная версия`,includeBeta:`Включать бета-версии`},writeTag:{tabExisting:`Существующая катушка`,tabNew:`Новая катушка`,tabReplace:`Заменить метку`,searchPlaceholder:`Поиск по материалу, цвету или бренду...`,noUntaggedSpools:`Нет катушек без меток`,noTaggedSpools:`Нет катушек с метками`,selectSpool:`Выберите катушку, затем положите чистую метку NTAG на считыватель`,placeTag:`Положите метку NTAG на считыватель`,tagReady:`Метка обнаружена — можно записывать`,writeTag:`Записать метку`,replaceTag:`Заменить метку`,writing:`Запись метки...`,waiting:`Ожидание SpoolBuddy...`,writeSuccess:`Метка успешно записана!`,writeFailed:`Ошибка записи`,queueFailed:`Не удалось поставить команду записи в очередь`,tryAgain:`Повторить`,cancel:`Отмена`,replaceWarning:`Старая метка будет отвязана и заменена новой.`,deviceOffline:`SpoolBuddy не в сети`,material:`Материал`,colorName:`Название цвета`,color:`Цвет`,brand:`Бренд`,weight:`Масса (г)`,createSpool:`Создать катушку`,creating:`Создание...`,spoolCreated:`Катушка создана! Можно записывать метку.`,createFailed:`Не удалось создать катушку`,incompleteDataWarning:`Метка записана с неполными данными Spoolman`},quickMenu:{printerPower:`Питание принтера`,systemControls:`Система`,restartDaemon:`Перезапустить демон`,restartBrowser:`Перезапустить браузер`,reboot:`Перезагрузить`,shutdown:`Выключить`,swipeToClose:`Проведите вниз, чтобы закрыть`,confirmTitle:`Подтверждение`,confirmShutdown:`Выключить SpoolBuddy? Для повторного включения потребуется физический доступ.`,confirmReboot:`Перезагрузить SpoolBuddy?`,confirmRestartDaemon:`Перезапустить демон SpoolBuddy? NFC и весы временно будут недоступны.`,confirmRestartBrowser:`Перезапустить браузер киоска? Экран ненадолго погаснет.`,confirm:`Подтвердить`,confirmPlugOn:`Включить {{name}}?`,confirmPlugOff:`Выключить {{name}}?`,turnOn:`Включить`,turnOff:`Выключить`}},diagnostic:{modalTitle:`Диагностика подключения — {{name}}`,running:`Выполняется диагностика...`,runningElapsed:`Выполняется диагностика... ({{elapsed}} с)`,waitingForReportHint:`Ожидание публикации отчёта о состоянии принтера — это может занять до {{max}} секунд.`,runFailed:`Не удалось выполнить диагностику: {{error}}`,retry:`Запустить снова`,runButton:`Запустить диагностику`,sectionTitle:`Диагностика подключения`,sectionDescription:`Проверьте, почему принтер не подключается или не печатает: доступность портов, режим разработчика LAN, сетевой режим Docker и учётные данные.`,noPrinters:`Принтеры не настроены.`,overall:{ok:`Проблем не обнаружено — подключение к принтеру исправно.`,warnings:`Принтер должен работать, но некоторые пункты требуют внимания.`,problems:`Обнаружены проблемы, объясняющие, почему принтер не подключается или не печатает.`},check:{port_mqtt:{title:`Порт управления (MQTT 8883)`,pass:`Доступен — принтер принимает управляющие подключения.`,fail:`Порт 8883 недоступен. Принтер выключен, имеет другой IP-адрес либо подключение блокирует межсетевой экран. Проверьте IP-адрес принтера и доступность порта 8883.`},port_ftps:{title:`Порт передачи файлов (FTPS 990)`,pass:`Доступен — отправка файлов печати будет работать.`,warn:`Порт 990 недоступен. Мониторинг может работать, но отправка заданий на принтер завершится ошибкой. Убедитесь, что порт 990 не заблокирован.`},external_storage:{title:`Сохранять отправленные файлы во внешнем хранилище (шаг 4 установки)`,pass:`Принтер сообщает, что параметр включён: отправленные файлы будут сохраняться на SD-карте, а в архиве появятся миниатюры и метаданные слайсера.`,fail:`Принтер сообщает, что параметр выключен. Включите «Сохранять отправленные файлы во внешнем хранилище»: в новых прошивках (P2S 01.02 / Bambu Studio 2.6+) переключатель находится в настройках печати принтера, в старых — на вкладке «Устройство» Bambu Studio / OrcaSlicer. Без этого у всех архивных заданий не будет миниатюр и метаданных слайсера.`,skip:`Не проверено — требуется активное подключение MQTT. В старых версиях слайсеров этот параметр существует только в слайсере и принтер его не сообщает, поэтому проверка может пройти даже при выключенном параметре. Проверьте шаг 4 установки вручную.`,skip_unsupported_model:`В этой модели есть слот SD-карты, но включить соответствующую функцию невозможно: текущая прошивка серии P1 не предоставляет переключатель в Bambu Studio, а у принтера нет экрана. Исправлять здесь нечего. Пока Bambu Lab не добавит поддержку в прошивку, архивные задания могут сохраняться без миниатюр и метаданных слайсера.`},port_rtsps:{title:`Порт камеры ({{protocol}} {{port}})`,pass:`Доступен — видеопоток камеры будет работать.`,warn:`Порт {{port}} недоступен. Просмотр камеры в реальном времени работать не будет. На печать это не влияет.`},network_mode:{title:`Сетевой режим Docker`,pass:`Используется сетевой режим host.`,warn:`Bambuddy запущен в Docker с сетью bridge. Для обнаружения принтеров и виртуального принтера требуется режим host — пересоздайте контейнер с параметром «network_mode: host».`,skip:`Bambuddy запущен не в Docker — проверка неприменима.`},subnet:{title:`Подсеть`,pass:`Принтер и Bambuddy находятся в одной подсети.`,warn:`Принтер ({{printer_ip}}) и Bambuddy ({{host_ip}}) находятся в разных подсетях. Без настроенной маршрутизации между подсетями они могут быть недоступны друг для друга.`,skip:`Не удалось определить подсеть — проверка пропущена.`},mqtt_auth:{title:`Учётные данные принтера`,pass:`Принтер принял подключение.`,fail:`Принтер доступен, но Bambuddy к нему не подключён. Скорее всего, неверны код доступа или серийный номер — код доступа изменяется при каждом переключении режима «Только LAN» или режима разработчика, поэтому снова скопируйте его с экрана принтера. Так же выглядит принтер, который перезагружается или уже исчерпал лимит одновременных подключений.`,fail_auth_rejected:`Принтер отклонил учётные данные Bambuddy. Код доступа или серийный номер неверны — код доступа изменяется при каждом переключении режима «Только LAN» или режима разработчика. Снова скопируйте его с экрана принтера и сохраните в настройках принтера.`,skip:`Не проверено — принтер недоступен.`},developer_mode:{title:`Режим разработчика LAN`,pass:`Режим разработчика включён.`,fail:`Режим разработчика на принтере ВЫКЛЮЧЕН. Включите его в настройках LAN принтера и подтвердите кнопкой OK. Без него задания печати не запускаются.`,skip:`Не удалось проверить — требуется активное подключение к принтеру.`},printer_publishing:{title:`Принтер публикует состояние`,pass:`Принтер публикует обновления состояния — AMS, филаменты и K-профили будут корректно передаваться в слайсер.`,fail:`MQTT-брокер принял подключение, но принтер не опубликовал ни одного отчёта о состоянии. Почти всегда причина в неверном регистре или ошибке в серийном номере: тема device//api/v1/metrics для моніторингу Prometheus/Grafana.`,bearerTokenOptional:`Токен Bearer (необов’язково)`,bearerTokenHint:`Якщо встановлено, запити мають містити Авторизація: носій `,metricsConnectionStatus:`Статус підключення`,metricsPrinterState:`Стан принтера (неактивний /printing/etc)`,metricsPrintProgress:`Прогрес друку 0-100%`,metricsBedTemp:`Температура столу`,metricsNozzleTemp:`Температура сопла`,metricsPrintsTotal:`Загальна кількість друків за результатами`,metricsMore:`...і багато іншого (шари, вентилятори, черга, використання філаментів)`,smartPlugsDescription:`Підключіть розумні розетки (Tasmota або Home Assistant), щоб автоматизувати керування живленням і відстежувати споживання електроенергії вашими принтерами.`,allOn:`Все включено`,allOff:`Все вимкнено`,addSmartPlug:`Додати розумну розетку`,energySummary:`Відновити енергетики`,currentPower:`Поточна потужність`,plugsOnline:`Розумні розетки в мережі: {{reachable}}/{{total}}`,today:`Сьогодні`,yesterday:`вчора`,total:`Всього`,enablePlugsForSummary:`Увімкніть розетки, щоб переглянути підсумок енергії`,addNotificationProvider:`додати`,systemBadge:`(Система)`,creating:`Створення...`,changing:`Зміна...`,deleteUserAndItems:`Видалити користувача ТА його елементи`,deleteUserKeepItems:`Видалити користувача, зберегти елементи (стати без власника)`,ok:`добре`,twoFa:{totpTitle:`Програма Authenticator (TOTP)`,totpDesc:`Використовуйте програму автентифікації, наприклад Google Authenticator Aegis або Authy.`,emailOtpTitle:`Одноразовий код електронною поштою`,emailOtpDesc:`Надішліть одноразовий код на {{email}} під час входу.`,emailOtpNoEmail:`Щоб увімкнути цей метод, додайте адресу електронної пошти до свого облікового запису.`,addEmailFirst:`У вашому обліковому записі немає адреси електронної пошти. Попросіть адміністратора додати її, перш ніж вмикати одноразові коди електронною поштою.`,setupTotp:`Налаштувати додаток Authenticator`,setupAuthApp:`Налаштувати додаток Authenticator`,setupInstructions:`Відскануйте наведений нижче QR-код за допомогою програми автентифікації, а потім підтвердьте кодом.`,manualEntry:`Не можете сканувати? Введіть цей секрет вручну:`,scannedContinue:`Код відскановано — продовжити`,enterCodeToConfirm:`Введіть 6-значний код із програми автентифікації, щоб підтвердити налаштування.`,activate:`Активувати`,disableTotp:`Вимкнути автентифікатор`,disableConfirmHint:`Введіть дійсний код TOTP або резервний код, щоб вимкнути автентифікатор.`,totpDisabled:`Програму Authenticator вимкнено.`,emailOtpEnabled:`Одноразові коди електронною поштою ввімкнено.`,emailOtpDisabled:`Одноразові коди електронною поштою вимкнено.`,smtpRequired:`Спочатку налаштуйте та перевірте параметри SMTP.`,invalidCode:`Невірний код. Спробуйте ще раз.`,enableEmailOtp:`Увімкнути одноразові коди електронною поштою`,disableEmailOtp:`Вимкнути одноразові коди електронною поштою`,emailSetupEnterCode:`Код підтвердження надіслано на вашу адресу електронної пошти. Введіть його нижче, щоб підтвердити доступ до цієї поштової скриньки.`,verifyAndEnable:`Перевірити й увімкнути`,emailDisablePasswordHint:`Введіть пароль свого облікового запису, щоб підтвердити вимкнення OTP електронної пошти.`,passwordPlaceholder:`Введіть свій пароль`,backupCodesTitle:`Зберегти резервні коди`,backupCodesWarning:`Збережіть ці коди в безпечному місці. Кожен код можна використати лише один раз, і він більше не відображатиметься.`,backupCodesRemaining:`Залишилося резервних кодів: {{count}}`,savedCodes:`Я зберіг свої коди`,regenBackup:`Створити нові резервні коди`,regenBackupHint:`Введіть поточний код TOTP, щоб створити 10 нових резервних кодів. Усі існуючі резервні коди стануть недійсними.`,newBackupCodes:`Нові резервні коди`,linkedAccounts:`Пов’язані облікові записи SSO.`,linkedAccountsDesc:`Ці зовнішні постачальники ідентифікаційної інформації пов’язані з вашим обліковим записом.`,oidcUnlinked:`Обліковий запис від’єднано.`},sessionPolicy:{title:`Політика сеансу`,description:`Максимальна тривалість сеансу для входу нових користувачів. Уже випущені токени зберігають початковий термін дії.`,preset24h:`24 години`,preset7d:`7 днів`,preset30d:`30 днів`,customHoursLabel:`Тривалість користувацького сеансу в годинах`,hoursSuffix:`години`,warning:`Довші сеанси знижують захист від автоматичного виходу. Рекомендовано лише для надійних розгортань для одного користувача.`},oidc:{title:`Постачальники SSO / OIDC`,desc:`Налаштуйте постачальників OpenID Connect, щоб дозволити єдиний вхід через зовнішніх постачальників ідентифікації.`,addProvider:`Додати постачальника`,newProvider:`Новий постачальник`,empty:`Постачальників OIDC ще не налаштовано.`,created:`Постачальник створено.`,updated:`Постачальника оновлено.`,deleted:`Постачальника видалено.`,refreshIcon:`Значок оновлення`,removeIcon:`Видалити значок`,iconRefreshed:`Значок оновлено.`,iconRemoved:`Значок видалено.`,iconFetchFailed:`Не вдалося отримати значок за URL постачальника.`,deleteTitle:`Видалити постачальника`,deleteMessage:`Видалити «{{name}}»? Усі пов’язані облікові записи користувачів буде від’єднано.`,form:{name:`Відображуване ім’я`,issuerUrl:`URL емітента`,clientId:`ID клієнта`,clientSecret:`Секрет клієнта`,scopes:`Області доступу`,iconUrl:`URL значка (необов’язково)`,enabled:`Увімкнено`,autoCreate:`Автоматичне створення користувачів`,autoCreateDesc:`Автоматично створювати локальний обліковий запис під час першого входу.`,autoLink:`Автоматичне пов’язування наявних облікових записів`,autoLinkDesc:`Автоматично пов’язувати наявні локальні облікові записи за збігом адреси електронної пошти під час першого входу.`,secretHint:`залиште порожнім, щоб зберегти поточне значення`,secretPlaceholder:`новий секрет`,emailClaim:`Поле електронної пошти`,emailClaimDesc:`Поле JWT, що використовується як адреса електронної пошти. Для Azure Entra ID, який не надсилає email_verified, використовуйте preferred_username або upn. Указуйте лише назви надійних полів.`,emailClaimPlaceholder:`email`,emailClaimCustomClaimAutoLinkWarning:`Власне поле можна безпечно використовувати для автоматичного пов’язування, лише якщо його значенням керує адміністратор організації, наприклад upn або preferred_username в Azure Entra ID. Не вмикайте автоматичне пов’язування, якщо IdP дозволяє користувачам самостійно задавати це поле.`,requireEmailVerified:`Вимагати підтвердження електронної пошти`,requireEmailVerifiedDesc:`Приймати поле електронної пошти лише тоді, коли постачальник позначив адресу як підтверджену.`,requireEmailVerifiedWarning:`Попередження: адресу електронної пошти буде прийнято навіть без підтвердження. Використовуйте це лише з надійними постачальниками.`,requireEmailVerifiedAutoLink:`Щоб змінити це налаштування, спочатку вимкніть автоматичне пов’язування.`,defaultGroup:`Група за замовчуванням`,defaultGroupDesc:`Група, яку призначають автоматично створеним користувачам. Якщо її не задано, використовується група «Глядачі».`,defaultGroupViewersFallback:`Глядачі (за замовчуванням)`,autologin:`Автовхід`,autologinDesc:`Одразу перенаправляти неавтентифікованих відвідувачів до цього постачальника. Автоматичний вхід можна ввімкнути лише для одного постачальника.`}},encryption:{title:`Стан шифрування MFA`,enabledFromEnv:`Шифрування даних у сховищі ввімкнено — ключ отримано зі змінної середовища MFA_ENCRYPTION_KEY`,enabledFromFile:`Шифрування даних у сховищі ввімкнено — ключ завантажено з каталогу даних`,enabledGenerated:`Шифрування даних у сховищі ввімкнено з автоматично створеним ключем`,notConfigured:`Шифрування даних у сховищі не налаштовано`,notConfiguredDesc:`Секрети TOTP і client_secret постачальників OIDC зберігаються як відкритий текст. Установіть MFA_ENCRYPTION_KEY або перезапустіть Bambuddy з доступним для запису каталогом даних, щоб ключ було створено автоматично.`,allEncrypted:`Усі секрети MFA зашифровано у сховищі.`,legacyRowsLabel:`Застарілі рядки відкритого тексту`,encryptedRowsLabel:`Зашифровані рядки`,legacyRowsWarning:`Виявлено незашифрованих застарілих записів: {{count}}. Повторно збережіть постачальника OIDC або заново зареєструйте застосунок автентифікації користувача, щоб перенести дані до зашифрованого сховища.`,backupHint:`Автоматично згенерований ключ зберігається в DATA_DIR/.mfa_encryption_key і включено до локальних резервних ZIP-файлів. Зберігайте свої резервні копії в безпеці або явно встановіть MFA_ENCRYPTION_KEY.`,decryptionBrokenTitle:`Відсутній ключ шифрування`,decryptionBrokenError:`Не вдається розшифрувати записів: {{count}}, оскільки ключ шифрування більше недоступний. Для відновлення поверніть попередній MFA_ENCRYPTION_KEY або DATA_DIR/.mfa_encryption_key.`,migrationErrorWarning:`{{count}} застарілих рядків не вдалося повторно зашифрувати під час запуску. Перевірте журнали сервера та перезапустіть Bambuddy, щоб повторити спробу.`},pipelineLimits:{title:`Межі конвеєра слайсера`,maxCopiesLabel:`Максимальна кількість копій за один запуск`,maxCopiesDesc:`Верхня межа копій, які оператори можуть запитувати під час запуску конвеєра. Обмеження на стороні сервера становить 1000.`},pipelines:{title:`Конвеєри слайсера`,subtitle:`Багаторазові набори профілів — принтер, процес, філаменти й тип столу. Збережіть набір у вікні нарізання та застосовуйте його до наступного файлу одним натисканням.`,loading:`Завантаження конвеєрів…`,loadError:`Не вдалося завантажити конвеєри.`,confirmDelete:`Видалити цей конвеєр? Це неможливо скасувати.`,staleWarning:`Одного або кількох пов’язаних профілів більше не існує. Щоб виправити це, повторно збережіть конвеєр у вікні нарізання.`,empty:{title:`Конвеєрів ще немає.`,howto:`Відкрийте вікно нарізання для будь-якого файлу, виберіть принтер, процес, філаменти й тип столу, а потім натисніть «Зберегти як конвеєр». Збережені конвеєри з’являться тут.`},field:{name:`Назва конвеєра`,description:`опис`,targetPrinter:`Цільовий принтер`,noTarget:`— Немає цілі —`,targetKind:`Цільовий тип`,targetKindSpecific:`Конкретний принтер`,targetKindClass:`Клас принтера`,targetModelClass:`Модель принтера`,fanoutStrategy:`Стратегія розподілу`,fanout:{max_parallel:`Максимально паралельно — розподіляти між усіма відповідними вільними принтерами`,round_robin:`По колу — почергово використовувати відповідні принтери`,fill_one_first:`Спочатку один принтер — призначити всі копії одному принтеру`},fanoutShort:{max_parallel:`паралельний`,round_robin:`по колу`,fill_one_first:`спочатку один`}},action:{save:`зберегти`,cancel:`Скасувати`,rename:`Перейменувати`,delete:`Видалити`},slot:{printer:`Принтер`,process:`процес`,filament:`Філамент`,filamentN:`Філамент {{n}}`,filamentAll:`Усі {{n}} слотів`,bed:`Стіл`},group:{profiles:`Профілі`,filaments:`філаменти`},searchPlaceholder:`Шукати конвеєри…`,filterTargetType:`Фільтрувати за типом цілі`,filterTarget:`Фільтрувати за ціллю`,filter:{all:`Всі цілі`,noTarget:`Ціль не встановлена`,count:`{{shown}} / {{total}}`,noMatches:`Жоден конвеєр не відповідає поточним фільтрам.`},toast:{saved:`Конвеєр збережено`,saveFailed:`Не вдалося зберегти`,deleted:`Конвеєр видалено`,deleteFailed:`Не вдалося видалити`},noTargetHint:`Щоб запустити конвеєр, виберіть цільовий принтер`,noTargetWarning:`Перед запуском цього конвеєра встановіть цільовий принтер.`,runs:{lastRun:`Останній запуск`,status:{queued:`в черзі`,slicing:`нарізка`,dispatching:`надсилання`,in_progress:`друк`,completed:`завершено`,failed:`не вдалося`,partial_failure:`частково невдало`,cancelled:`скасовано`}}}},notification:{printStarted:{title:`Друк розпочато`,body:`{{printer}}: розпочато друк {{filename}}`},printCompleted:{title:`Друк завершено`,body:`{{printer}}: {{filename}} завершено успішно`},printFailed:{title:`Помилка друку`,body:`{{printer}}: не вдалося надрукувати {{filename}}`},printStopped:{title:`Друк зупинено`,body:`{{printer}}: {{filename}} було зупинено`},printProgress:{title:`Перебіг друку`,body:`{{printer}}: {{filename}} виконано {{percent}}%.`},printerOffline:{title:`Принтер не в мережі`,body:`{{printer}} не в мережі`},printerError:{title:`Помилка принтера`,body:`{{printer}}: {{error}}`},filamentLow:{title:`Закінчується філамент`,body:`{{printer}}: філамент майже закінчився`},maintenanceDue:{title:`Технічне обслуговування`,body:`{{printer}}: потрібна увага — {{items}}`}},errors:{generic:`Щось пішло не так`,networkError:`Помилка мережі. Перевірте підключення.`,notFound:`Не знайдено`,unauthorized:`Доступ не авторизовано`,serverError:`Помилка сервера`,validationError:`Перевірте введені дані`,printerConnectionFailed:`Не вдалося підключитися до принтера`,saveFailed:`Не вдалося зберегти зміни`,deleteFailed:`Не вдалося видалити`,loadFailed:`Не вдалося завантажити дані`},hmsErrors:{title:`Помилки - {{name}}`,noErrors:`Помилок немає`,viewOnWiki:`Переглянути на Bambu Lab Wiki`,mqttVerifyFailedRemedy:`Увімкніть режим розробника на принтері, перезавантажте принтер і запустіть завдання знову.`,unknownCode:`Невідомий код HMS — подробиці дивіться у вікі Bambu Lab.`,clearInstructions:`Усуньте помилки на принтері, щоб вони зникли тут.`,clearErrors:`Очистити помилки`,clearSuccess:`Помилки HMS видалено`,clearFailed:`Не вдалося видалити помилки HMS`,actionSuccess:`Команду надіслано принтеру`,actionFailed:`Не вдалося надіслати дію`,runoutExpectedSlot:`Філамент закінчився в {{ranOut}}. Тепер принтер очікує сумісний філамент у {{expected}}. Вставте котушку в {{expected}}, а потім виберіть «Повторити».`,runoutExpectedSlotOnly:`Принтер очікує сумісний філамент у {{expected}}. Вставте туди котушку, а потім виберіть «Повторити».`,runoutSlotUnknown:`Філамент закінчився, тому друк призупинено. Bambuddy не може визначити, якого слота тепер очікує принтер — перевірте екран принтера.`,actions:{RESUME_PRINTING:`Відновити друк`,RESUME_PRINTING_DEFECTS:`Відновити (допустимі недоліки)`,RESUME_PRINTING_PROBELM_SOLVED:`Відновити (проблему вирішено)`,STOP_PRINTING:`Зупинити друк`,CHECK_ASSISTANT:`Перевірити помічника`,FILAMENT_EXTRUDED:`Філамент екструдовано — продовжити`,RETRY_FILAMENT_EXTRUDED:`Ще не екструдовано — повторити`,CONTINUE:`Готово, продовжити`,LOAD_VIRTUAL_TRAY:`Завантажити філамент`,OK_BUTTON:`OK`,FILAMENT_LOAD_RESUME:`Філамент завантажено, відновити`,JUMP_TO_LIVEVIEW:`Перейти до перегляду наживо`,NO_REMINDER_NEXT_TIME:`Більше не нагадувати`,REFRESH_NOZZLE:`Перевірити знову`,IGNORE_NO_REMINDER_NEXT_TIME:`Ігнорувати. Не нагадувати наступного разу`,IGNORE_RESUME:`Ігнорувати й відновити друк`,PROBLEM_SOLVED_RESUME:`Проблему вирішено — відновити друк`,TURN_OFF_FIRE_ALARM:`Зрозуміло, вимкнути пожежну сигналізацію`,RETRY_PROBLEM_SOLVED:`Повторити (проблему вирішено)`,CANCLE:`Скасувати`,STOP_DRYING:`Зупинити сушіння`,PROCEED:`Продовжити`,OK_JUMP_RACK:`OK`,ABORT:`Перервати`,DISABLE_PURIFICATION:`Вимкнути очищення для цього друку`,DONT_REMIND_NEXT_TIME:`Більше не нагадувати`,DBL_CHECK_CANCEL:`Скасувати`,DBL_CHECK_DONE:`Готово`,DBL_CHECK_RETRY:`Повторити`,DBL_CHECK_RESUME:`Відновити`,DBL_CHECK_OK:`Підтвердити`,REMOVE_CLOSE_BTN:`Закрити`}},mqttDebug:{title:`Журнал налагодження MQTT`,searchPlaceholder:`Шукати тему або корисне навантаження…`,noMessages:`Ще не зареєстровано жодного повідомлення`,startLoggingHint:`Натисніть «Почати журналювання», щоб розпочати запис MQTT повідомлень`,noMessagesMatch:`Жодне повідомлення не відповідає вашому фільтру`,adjustFilterHint:`Спробуйте змінити критерії пошуку або фільтра`,incoming:`Вхідні`,outgoing:`Вихідні`,loggingStopped:`Запис припинено`,loggingActive:`Логування активне – повідомлення автоматично оновлюватимуться`,startLogging:`Розпочати журналювання`,stopLogging:`Зупинити журналювання`,clearLog:`Очистити журнал`,topic:`Тема`,timestamp:`Мітка часу`,direction:`Напрямок`,all:`Усі`},printerFiles:{title:`Менеджер файлів`,storageUsed:`Використовується:`,storageFree:`Вільно:`,filterPlaceholder:`Фільтр файлів...`,deleteButton:`Видалити`,deleteFiles:`Видалити файли {{count}}.`,deleteFileConfirm:`Видалити "{{name}}"? Це неможливо скасувати.`,deleteFilesConfirm:`Видалити вибрані файли {{count}}? Це неможливо скасувати.`,noFiles:`Немає файлів на принтері`,loadingFiles:`Завантаження файлів...`,failedToLoad:`Не вдалося завантажити файли`,toast:{filesDeleted:`Видалено файлів: {{count}}`,deleteFailed:`Не вдалося видалити: {{error}}`}},confirm:{delete:`Ви впевнені, що хочете це видалити?`,unsavedChanges:`У вас є незбережені зміни. Ви впевнені, що хочете піти?`,clearQueue:`Ви впевнені, що бажаєте очистити чергу?`},login:{title:`Вхід у Bambuddy`,subtitle:`Увійти у свій обліковий запис`,username:`Ім’я користувача`,usernamePlaceholder:`Введіть своє ім’я користувача`,usernameOrEmail:`Ім’я користувача або електронна пошта`,usernameOrEmailPlaceholder:`Ім’я користувача або електронна пошта`,password:`Пароль`,passwordPlaceholder:`Введіть свій пароль`,signIn:`Увійти`,signingIn:`Вхід...`,rememberMe:`Запам’ятати мене`,forgotPassword:`Забули пароль?`,autologinFailed:`Помилка автоматичного входу SSO. Щоб продовжити, виберіть постачальника нижче.`,localDisabledNotice:`Локальний вхід вимкнено. Використовуйте одного з наведених нижче постачальників SSO.`,loginSuccess:`Успішно ввійшли`,loginFailed:`Помилка входу`,enterCredentials:`Будь ласка, введіть ім’я користувача та пароль`,enterEmail:`Будь ласка, введіть адресу електронної пошти`,oidcLoginFailed:`Не вдалося ввійти через OIDC`,oidcErrors:{providerError:`Постачальник ідентифікації повернув помилку`,missingParameters:`У зворотному виклику OIDC відсутні необхідні параметри`,invalidState:`Стан OIDC недійсний або вже використовувався`,stateExpired:`OIDC сеанс входу закінчився — спробуйте ще раз`,providerNotFound:`OIDC постачальника не знайдено`,discoveryFailed:`Не вдалося отримати документ конфігурації OIDC`,invalidDiscovery:`Документ конфігурації OIDC недійсний`,networkError:`Помилка мережі під час обміну токена OIDC`,badResponse:`Неочікувана відповідь під час обміну токеном OIDC.`,noIdToken:`Постачальник OIDC не повернув ID-токен`,validationFailed:`Не вдалося перевірити токен OIDC`,nonceMismatch:`Не збігається nonce OIDC — можлива атака повторного використання`,missingSubClaim:`У токені OIDC відсутнє поле sub`,noLinkedAccount:`Із цим ідентифікатором OIDC не пов’язано жодного локального облікового запису`,accountInactive:`Ваш акаунт неактивний`,userResolutionFailed:`Не вдалося визначити ваш обліковий запис`,internalError:`Під час входу в систему OIDC сталася внутрішня помилка`,tokenExchangeFailed:`Помилка обміну токеном OIDC.`},forgotPasswordTitle:`Забули пароль`,forgotPasswordMessage:`Якщо ви забули свій пароль, зверніться до системного адміністратора, щоб скинути його.`,forgotPasswordEmailMessage:`Введіть адресу електронної пошти, і ми надішлемо вам новий пароль.`,emailAddress:`Адреса електронної пошти`,emailPlaceholder:`your.email@example.com`,cancel:`Скасувати`,sending:`Надсилання...`,sendResetEmail:`Надіслати лист для скидання пароля`,howToReset:`Як скинути пароль:`,resetStep1:`Зверніться до адміністратора Bambuddy.`,resetStep2:`Попросіть скинути ваш пароль у розділі «Керування користувачами»`,resetStep3:`Вони можуть встановити для вас новий тимчасовий пароль`,resetStep4:`Увійдіть із новим паролем і змініть його в налаштуваннях`,gotIt:`Зрозуміло`,resetPassword:{title:`Встановити новий пароль`,subtitle:`Введіть і підтвердьте свій новий пароль нижче.`,newPassword:`Новий пароль`,newPasswordPlaceholder:`Мінімум 8 символів`,confirmPassword:`Підтвердити пароль`,confirmPasswordPlaceholder:`Повторіть новий пароль`,saving:`Збереження…`,submit:`Встановити новий пароль`,backToLogin:`Назад до входу`,passwordsDoNotMatch:`Паролі не збігаються`,passwordTooShort:`Пароль має бути не менше 8 символів`,resetFailed:`Помилка скидання пароля. Можливо, термін дії посилання закінчився.`},twoFA:{title:`Двофакторна автентифікація`,subtitle:`Ваш обліковий запис захищено 2FA. Введіть код підтвердження нижче.`,methodAuthenticator:`Програма автентифікатора`,methodEmail:`Код електронної пошти`,methodBackup:`Резервний код`,instructionsTotp:`Відкрийте програму автентифікації та введіть 6-значний код для Bambuddy.`,instructionsEmail:`На вашу електронну адресу надіслано 6-значний код. Термін дії закінчується через 10 хвилин.`,instructionsEmailNotSent:`Натисніть кнопку нижче, щоб отримати код підтвердження електронною поштою.`,instructionsBackup:`Введіть один із ваших 8-символьних резервних кодів відновлення. Кожен код можна використати лише один раз.`,sendCodeButton:`Надіслати код електронною поштою`,sendingCode:`Надсилання...`,resendCode:`Повторно надіслати код`,codeLabel:`Код підтвердження`,backupCodeLabel:`Резервний код`,codePlaceholder:`000000`,backupCodePlaceholder:`XXXXXXXX`,verifyButton:`Підтвердити`,verifyingButton:`Перевірка...`,backToLogin:`← Назад до входу`,orContinueWith:`або продовжити`,signInWith:`Увійти за допомогою {{provider}}`,enterCode:`Будь ласка, введіть код підтвердження`,sendCodeFailed:`Не вдалося надіслати код підтвердження`,invalidCode:`Невірний код. Спробуйте ще раз.`}},setup:{title:`Налаштування Bambuddy`,subtitle:`Налаштуйте автентифікацію для свого екземпляра Bambuddy.`,enableAuth:`Увімкнути автентифікацію`,adminAccount:`Обліковий запис адміністратора`,adminAccountDesc:`Якщо користувачі-адміністратори вже існують, автентифікацію буде ввімкнено за допомогою наявних облікових записів адміністраторів. Залиште поля нижче порожніми, щоб використовувати наявних адміністраторів, або введіть нові облікові дані, щоб створити нового користувача адміністратора.`,adminUsername:`Ім’я користувача адміністратора`,adminPassword:`Пароль адміністратора`,optionalIfAdminExists:`(необов’язково, якщо є користувачі з правами адміністратора)`,adminUsernamePlaceholder:`Введіть ім’я користувача адміністратора (необов’язково)`,adminPasswordPlaceholder:`Введіть пароль адміністратора (необов’язково)`,confirmPassword:`Підтвердити пароль`,confirmPasswordPlaceholder:`Підтвердити пароль адміністратора`,settingUp:`Налаштування...`,completeSetup:`Завершити налаштування`,toast:{authEnabledAdminCreated:`Увімкнено автентифікацію та створено адміністратора`,authEnabledExistingAdmins:`Увімкнено автентифікацію за допомогою наявних користувачів адміністратора`,setupCompleted:`Налаштування завершено`,enterBothCredentials:`Будь ласка, введіть ім’я користувача та пароль адміністратора або залиште обидва поля порожніми, щоб використовувати наявних користувачів адміністратора`,passwordsDoNotMatch:`Паролі не збігаються`,passwordTooShort:`Пароль має бути не менше 6 символів`}},changePassword:{title:`Змінити пароль`,currentPassword:`Поточний пароль`,currentPasswordPlaceholder:`Введіть поточний пароль`,newPassword:`Новий пароль`,newPasswordPlaceholder:`Введіть новий пароль (мінімум 6 символів)`,confirmPassword:`Підтвердити новий пароль`,confirmPasswordPlaceholder:`Підтвердити новий пароль`,passwordsDoNotMatch:`Паролі не збігаються`,passwordTooShort:`Пароль має бути не менше 6 символів`,changing:`Зміна...`,success:`Пароль успішно змінено`,failed:`Не вдалося змінити пароль`},plateAlert:{title:`Друк призупинено!`,message:`Об’єкти, виявлені на будівельній пластині. Друк було автоматично призупинено. Очистіть пластину та відновіть друк.`,understand:`Я розумію`},camera:{title:`Вид з камери`,invalidPrinterId:`Недійсний ідентифікатор принтера`,live:`Наживо`,snapshot:`знімок`,restartStream:`Перезапустити потік`,refreshSnapshot:`Оновити знімок`,fullscreen:`Повний екран`,exitFullscreen:`Вийти з повноекранного режиму`,connectingToCamera:`Підключення до камери...`,capturingSnapshot:`Зйомка знімка...`,connectionLost:`З’єднання втрачено`,connectionFailed:`Помилка підключення камери`,reconnecting:`Повторне підключення через {{countdown}}с... (спроба {{attempt}}/{{max}})`,reconnectNow:`Повторно підключіться зараз`,cameraUnavailable:`Камера недоступна`,cameraUnavailableDesc:`Переконайтеся, що принтер увімкнено та підключено.`,noCamera:`Камера недоступна`,retry:`Повторити`,cameraStream:`Потік камери`,zoomOut:`Зменшити масштаб`,zoomIn:`Збільшити`,resetZoom:`Скинути масштаб`,recording:`Запис`,startRecording:`Почати запис`,stopRecording:`Зупинити запис`,chamberLight:`Перемкнути освітлення камери`,unavailable:`Камера недоступна`,diagnose:{button:`Діагностувати`,modalTitle:`Діагностика камери`,running:`Виконується діагностика...`,runFailed:`Не вдалося запустити діагностику: {{error}}`,retry:`Запустити знову`,stage:{tcp_reachable:`Доступність мережі`,first_frame:`Захоплення кадру`,live_stream_active:`Активна пряма трансляція`},summary:{all_ok:`Камера працює. Діагностика пройшла всі етапи успішно.`,live_stream_active_healthy:`Камера зараз транслює з останніми кадрами — перевірка не потрібна.`,printer_unreachable:`Принтер недоступний. Перевірте адресу IP, підключення до мережі та чи принтер увімкнено.`,camera_port_closed:`Принтер доступний, але порт камери закритий. Переконайтеся, що в налаштуваннях принтера ввімкнено лише режим LAN і режим розробника.`,no_frame:`Підключено до камери, але кадри не отримано. Повторіть спробу або перевірте, чи камеру ввімкнено в налаштуваннях принтера.`,unknown_failure:`Не вдалося діагностувати камеру з невідомої причини. Подробиці перевірте в журналі підтримки.`},meta:{protocol:`Протокол`,port:`Порт`,profile:`Профіль`}}},groups:{title:`Керування групами`,subtitle:`Керуйте групами дозволів для контролю доступу`,backToSettings:`Назад до налаштувань`,createGroup:`Створити групу`,noPermission:`Ви не маєте дозволу на доступ до цієї сторінки.`,system:`система`,noDescription:`Без опису`,usersCount:`{{count}} користувачів`,permissionsCount:`Дозволів: {{count}}`,edit:`Редагувати`,delete:`Видалити`,toast:{created:`Групу створено успішно`,updated:`Групу успішно оновлено`,deleted:`Групу успішно видалено`,enterGroupName:`Будь ласка, введіть назву групи`},modal:{editGroup:`Редагувати групу`,createGroup:`Створити групу`,cancel:`Скасувати`,saving:`Збереження...`,creating:`Створення...`,saveChanges:`Зберегти зміни`},form:{groupName:`Назва групи`,groupNamePlaceholder:`Введіть назву групи`,systemGroupWarning:`Назви системних груп не можна змінювати`,description:`опис`,descriptionPlaceholder:`Введіть опис (необов’язково)`,permissions:`Дозволи (вибрано {{count}})`},deleteModal:{title:`Видалити групу`,message:`Ви впевнені, що хочете видалити цю групу? Користувачі цієї групи втратять ці дозволи.`,confirm:`Видалити групу`},editor:{title:`Редагувати групу`,createTitle:`Створити групу`,search:`Шукати дозволи...`,selectAll:`Вибрати усі`,clearAll:`Очистити все`,permissionsSelected:`Вибрано: {{count}}`,noResults:`Немає дозволів, що відповідають вашому пошуку`,websocketHint:`Необхідний для оновлень у реальному часі. Без нього інтерфейс повертається до періодичного опитування.`}},users:{title:`Керування користувачами`,subtitle:`Керуйте користувачами та їхнім доступом до вашого екземпляра Bambuddy.`,backToSettings:`Назад до налаштувань`,createUser:`Створити користувача`,noPermission:`Ви не маєте дозволу на доступ до цієї сторінки.`,admin:`адмін`,noGroups:`Немає груп`,active:`Активний`,inactive:`Неактивний`,edit:`Редагувати`,delete:`Видалити`,system:`система`,noGroupsAvailable:`Немає доступних груп`,table:{username:`Ім’я користувача`,groups:`Групи`,status:`Статус`,actions:`Дії`},toast:{created:`Користувача створено успішно`,updated:`Користувача успішно оновлено`,deleted:`Користувача успішно видалено`,fillRequired:`Будь ласка, заповніть усі необхідні поля`,passwordsDoNotMatch:`Паролі не збігаються`,passwordTooShort:`Пароль має бути не менше 6 символів`,ldapProvisioned:`Користувача LDAP «{{username}}» підготовлено`},modal:{createUser:`Створити користувача`,editUser:`Редагувати користувача`,cancel:`Скасувати`,creating:`Створення...`,saving:`Збереження...`,saveChanges:`Зберегти зміни`,advancedAuthSubtitle:`з розширеною автентифікацією`,tabsAriaLabel:`Джерело користувача`,localTab:`Локальний`,ldapTab:`LDAP`,ldapSearchLabel:`Пошук у каталозі`,ldapSearchPlaceholder:`Введіть ім’я користувача, ім’я або електронну адресу...`,ldapMinChars:`Введіть принаймні 2 символи для пошуку`,ldapTypeToSearch:`Почніть вводити текст для пошуку в каталозі LDAP.`,ldapSearching:`Пошук у каталозі...`,ldapNoResults:`У каталозі немає відповідних користувачів`,ldapSearchError:`Помилка пошуку каталогу. Перевірте стан сервера LDAP.`,ldapAlreadyProvisioned:`Уже підготовлено`,ldapSelectedLabel:`Вибране`,ldapProvision:`Підготувати користувача`,ldapProvisioning:`Підготовка...`,ldapErrorProvision:`Не вдалося підготувати користувача. Перевірте стан сервера LDAP і повторіть спробу.`},form:{username:`Ім’я користувача`,usernamePlaceholder:`Введіть ім’я користувача`,email:`Електронна пошта`,emailPlaceholder:`user@example.com`,password:`Пароль`,passwordPlaceholder:`Введіть пароль`,confirmPassword:`Підтвердити пароль`,confirmPasswordPlaceholder:`Підтвердити пароль`,newPasswordPlaceholder:`Введіть новий пароль`,confirmNewPasswordPlaceholder:`Підтвердити новий пароль`,leaveBlankToKeep:`залиште порожнім, щоб зберегти поточне значення`,groups:`Групи`,optional:`необов’язково`,autoGeneratedPassword:`Надійний пароль буде автоматично згенеровано та надіслано користувачеві електронною поштою.`,passwordManagedByAdvancedAuth:`Пароль керується розширеною автентифікацією. Використовуйте «Скинути пароль», щоб надіслати новий пароль користувачеві електронною поштою.`,resetPassword:`Скинути пароль`,resettingPassword:`Скидання пароля...`},deleteModal:{title:`Видалити користувача`,message:`Ви впевнені, що хочете видалити цього користувача? Цю дію не можна скасувати.`,confirm:`Видалити користувача`}},streamOverlay:{title:`Накладання потоку`,invalidPrinterId:`Недійсний ідентифікатор принтера`,cameraStream:`Потік камери`,progress:`Прогрес`,eta:`ETA`,printerIdle:`Принтер неактивний`,printerOffline:`Принтер не в мережі`,status:{printing:`Друк`,paused:`Призупинено`,finished:`Готово`,failed:`Не вдалося`,idle:`Неактивний`,unknown:`Невідомий`}},profiles:{title:`Профілі`,subtitle:`Керуйте профілями слайсера та калібруваннями Pressure Advance`,tabs:{bambuCloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,local:`Локальні профілі`,kprofiles:`K-профілі`},orcaCloud:{connectedAs:`Підключено як`,connectedShort:`Підключено до Orca Cloud`,logout:`Відключити`,noLogoutPermission:`Ви не маєте дозволу на відключення`,noConnectPermission:`Ви не маєте дозволу на підключення до Orca Cloud`,retry:`Повторити`,connectButton:`Підключити Orca Cloud`,connect:{title:`Підключитися до Orca Cloud`,description:`Увійти у свій обліковий запис Orca Cloud, щоб синхронізувати свої профілі слайсера в Bambuddy.`},device:{title:`Підтвердити Bambuddy в Orca Cloud`,instruction:`Відкрийте Orca Cloud і підтвердьте цей код. Bambuddy підключається автоматично, коли ви підтверджуєте.`,codeLabel:`Ваш код сполучення`,openButton:`Відкрити сторінку підтвердження Orca Cloud`,manualHint:`Або перейдіть до {{url}} і введіть код вище.`,waiting:`Чекаємо на ваше схвалення…`,cancel:`Скасувати`},profiles:{title:`Ваші профілі Orca Cloud ({{count}})`,refresh:`Оновити`,empty:`У вашому обліковому записі Orca Cloud ще не знайдено профілів.`},toast:{disconnected:`Відключено від Orca Cloud`},errors:{startFailed:`Не вдалося розпочати підключення Orca Cloud.`,denied:`Сполучення було відхилено в Orca Cloud.`,expired:`Термін дії коду сполучення минув. Натисніть Підключитися, щоб повторити спробу.`,pollFailed:`Втрачено з’єднання під час очікування підтвердження. Спробуйте ще раз.`}},localProfiles:{title:`Локальні профілі`,subtitle:`Імпорт і керування профілями слайсера з OrcaSlicer`,import:`Імпортувати профілі`,importDesc:`Перетягніть сюди файли .bbscfg, .bbsflmt, .orca_filament, .zip або .json`,importing:`Імпортування…`,search:`Шукати локальні профілі…`,noPresets:`Локальних профілів ще немає`,noSearchResults:`Профілів за вашим запитом не знайдено`,badge:`Локальний`,edit:`Редагувати`,delete:`Видалити`,cancel:`Скасувати`,deleteConfirmTitle:`Видалити профіль`,deleteConfirm:`Видалити цей профіль? Цю дію неможливо скасувати.`,source:`Джерело`,inheritsFrom:`Успадковує`,filamentType:`Тип`,vendor:`Виробник`,compatiblePrinters:`Принтери`,nozzleTemp:`Температура сопла`,cost:`Вартість`,density:`Щільність`,pressureAdvance:`Випередження тиску`,filament:`Філамент`,process:`Процес`,printer:`Принтер`,toast:{importSuccess:`Імпортовано профілів: {{count}}`,importSkipped:`Пропущено профілів-дублікатів: {{count}}`,importError:`Помилок під час імпорту: {{count}}`,deleted:`Профіль видалено`,updated:`Профіль оновлено`}},connectedAs:`Підключено як`,signInExpiredTitle:`Термін входу в Bambu Cloud минув`,signInExpiredBody:`Bambu Lab більше не приймає збережений токен. Увійдіть ще раз, щоб відновити хмарні профілі, імпорт MakerWorld і перевірку прошивки.`,logout:`Вийти`,noLogoutPermission:`Ви не маєте дозволу на вихід`,failedToLoad:`Не вдалося завантажити профілі`,retry:`Повторити`,time:{justNow:`Щойно`,minsAgo:`{{count}}хв тому`,hoursAgo:`{{count}} год тому`,daysAgo:`{{count}} дн. тому`},toast:{loggedOut:`Вихід виконано`},login:{title:`Підключитися до Bambu Cloud`,subtitle:`Синхронізуйте профілі слайсера між пристроями`,email:`Електронна пошта`,password:`Пароль`,region:`Регіон`,regionGlobal:`Глобальний`,regionChina:`Китай`,verificationCode:`Код підтвердження`,totpCode:`Код автентифікатора`,checkEmail:`Перевірте свою електронну пошту ({{email}}), щоб отримати 6-значний код`,enterTotpHint:`Введіть 6-значний код із програми автентифікації`,accessToken:`Токен доступу`,accessTokenHint:`Вставте токен доступу Bambu Cloud. Облікові записи в китайському регіоні мають використовувати цей спосіб, оскільки вони прив’язані до телефона й вхід електронною поштою недоступний. У вікі описано, як отримати токен із файлів cookie MakerWorld.`,back:`Назад`,loginButton:`Увійти`,verifyButton:`Підтвердити`,setTokenButton:`Установити токен`,useToken:`Натомість використати токен доступу`,useEmail:`Увійти за допомогою електронної пошти`,toast:{loggedIn:`Успішно ввійшли`,codeSent:`Код підтвердження надіслано на вашу електронну адресу`,enterTotp:`Введіть код із програми автентифікації`,tokenSet:`Токен успішно встановлено`}},presets:{myPreset:`Мій профіль (можна редагувати)`,duplicate:`Дублювати`,editable:`Можна редагувати`,failedToLoadDetails:`Не вдалося завантажити відомості про профіль`,deleteConfirm:`Видалити цей профіль?`,deleteWarning:`Це назавжди видалить "{{name}}" із Bambu Cloud. Це неможливо скасувати.`,noDuplicatePermission:`Ви не маєте дозволу на дублювання стилів`,noEditPermission:`Ви не маєте дозволу редагувати стилі`,noDeletePermission:`Ви не маєте дозволу на видалення стилів`,types:{filament:`Попереднє налаштування філаменту`,printer:`Попереднє налаштування принтера`,process:`Попереднє налаштування процесу`},toast:{deleted:`Попереднє налаштування видалено`,created:`Попереднє налаштування створено`,updated:`Попереднє налаштування оновлено`,duplicated:`Профіль продубльовано`,fieldAdded:`Додано поле "{{key}}".`,exported:`Попереднє налаштування експортовано`},baseLabel:`База: {{name}}`,currentLabel:`Поточний профіль: {{name}}`,newPreset:`Нове налаштування`,editPreset:`Редагувати профіль`,duplicatePreset:`Дублювати профіль`,createNewPreset:`Створити новий профіль`,customizeSettings:`Налаштуйте параметри для нового стилю`,compareWithBase:`Порівняти з базовим профілем`,compare:`Порівняйте`,basePreset:`Базове передналаштування`,selectBasePreset:`Виберіть базове налаштування...`,presetName:`Назва профілю`,myCustomPreset:`Мій власний профіль`,inheritsFrom:`Успадковує від`,dropJsonToImport:`Відпустіть JSON, щоб імпортувати`,tabs:{common:`Основні`,allFields:`Всі поля`},availableFields:`Доступні поля`,searchFieldsPlaceholder:`Шукати поля...`,noMatchingFields:`Немає відповідних полів`,allFieldsAdded:`Всі поля додано`,addCustomField:`Додати спеціальне поле`,yourOverrides:`Ваші перевизначення`,noOverridesYet:`Перевизначення ще немає`,clickFieldsToAdd:`Натисніть поля ліворуч, щоб додати їх`,saveAsTemplate:`Зберегти як шаблон`,jsonTip:`Порада: перетягніть файл .json у будь-яке місце на цьому модалі, щоб імпортувати налаштування`},cloudView:{searchPlaceholder:`Шукати профілі...`,templates:`Шаблони`,refresh:`Оновити`,newPreset:`Нове налаштування`,clearFilters:`Очистити фільтри`,compareMode:`Режим порівняння`,selectAnotherPreset:`Вибрати інший попередній набір {{type}}.`,clickTwoPresets:`Клацніть два стилі одного типу, щоб порівняти`,selectFirst:`1. Виберіть перший`,selectSecond:`2. Виберіть другий`,compareNow:`Порівняти зараз`,lastSynced:`Остання синхронізація:`,showingCount:`Показано профілів: {{showing}} із {{total}}`,noPresetsFound:`Попередніх налаштувань не знайдено`,columns:{filament:`Філамент`,process:`процес`,printer:`Принтер`},noFilamentPresets:`Немає профілів філаменту`,noProcessPresets:`Немає профілів процесу`,noPrinterPresets:`Немає профілів принтера`,filters:{type:`Тип`,owner:`Власник`,printer:`Принтер`,nozzle:`Сопло`,filament:`Філамент`,layer:`Шар`,all:`Усі`,myPresets:`Мої профілі`,builtIn:`Вбудований`,process:`процес`},noTemplatesPermission:`Ви не маєте дозволу на керування шаблонами`,noRefreshPermission:`Ви не маєте дозволу оновлювати профілі`,noCreatePermission:`Ви не маєте дозволу створювати профілі`},templates:{title:`Швидкі шаблони`,noTemplates:`Шаблонів ще немає`,createFirst:`Створіть шаблони в редакторі профілів`,typeFilter:`тип:`,deleteTitle:`Видалити шаблон`,deleteWarning:`Цю дію не можна скасувати`,deleteConfirm:`Ви впевнені, що хочете видалити "{{name}}"?`,namePlaceholder:`Назва шаблону`,descriptionPlaceholder:`опис`,settingsJson:`Налаштування (JSON)`,fieldsCount:`Полів: {{count}}`,shownInModals:`Показано в модальних формах`,hiddenInModals:`Приховано в модальних формах`,apply:`Застосувати`,toast:{deleted:`Шаблон видалено`,updated:`Шаблон оновлено`,created:`Шаблон створено`,applied:`Шаблон застосовано`}}},support:{debugLoggingActive:`Журнал налагодження активний`,manageLogs:`Керувати`,collectItem7:`Підключення принтерів і версії прошивок`,collectItem8:`Статус інтеграції (Spoolman, MQTT, HA)`,collectItem9:`Мережеві інтерфейси (лише підмережі)`,collectItem10:`Версії пакетів Python`,collectItem11:`Перевірки справності бази даних`,collectItem12:`Відомості про середовище Docker`,bundleGenerating:`Створення пакета...`,bundleStepConnection:`Запуск перевірки підключення принтера`,bundleStepVirtualPrinters:`Виконання перевірок налаштування віртуального принтера`,bundleStepLogScan:`Сканування останніх журналів на наявність відомих проблем`,bundleStepBuild:`Створення ZIP-пакета підтримки`},fileManager:{title:`Менеджер файлів`,subtitle:`Упорядковуйте файли друку та керуйте ними`,uploadFiles:`Вивантажити файли`,newFolder:`Нова папка`,folderName:`Назва папки`,folderNamePlaceholder:`наприклад, функціональні частини`,renameFile:`Перейменувати файл`,renameFolder:`Перейменувати папку`,invalidFilenameChar:`Символ «{{char}}» не можна використовувати в назвах файлів для друку. SD-картка принтера не приймає такі символи: < > : " / \\ | ? *`,moveFiles:`Перемістити файли: {{count}}`,rootNoFolder:`Корінь (без папки)`,current:`поточний`,linkFolder:`Пов’язати папку`,linkFolderDescription:`Пов’язати «{{name}}» із проєктом або архівом для швидкого доступу.`,project:`Проєкт`,archive:`Архів`,noProjectsFound:`Проєкти не знайдено`,noArchivesFound:`Архіви не знайдено`,unlink:`Від’єднати`,link:`Пов’язати`,dragDropFiles:`Перетягніть файли сюди`,dropFilesHere:`Перетягніть файли сюди`,releaseToUpload:`Відпустіть, щоб вивантажити`,orClickToBrowse:`або натисніть, щоб переглянути`,allFileTypesSupported:`Підтримуються всі типи файлів. Файли ZIP будуть розпаковані.`,zipFilesDetected:`Виявлено файли ZIP.`,zipExtractOptions:`Файли ZIP будуть розпаковані. Виберіть спосіб обробки структури папок:`,preserveZipStructure:`Зберегти структуру папок із ZIP`,createFolderFromZip:`Створити папку з назви ZIP-файлу`,stlThumbnailGeneration:`Створення мініатюр STL`,zipMayContainStl:`Файли ZIP можуть містити файли STL. Мініатюри можна генерувати під час вилучення.`,thumbnailsCanBeGenerated:`Ескізи можна створити для файлів STL. Обробка великих моделей може зайняти більше часу.`,generateThumbnailsForStl:`Створювати мініатюри для файлів STL`,threemfDetected:`Виявлено файли 3MF.`,threemfExtractionInfo:`Модель принтера, матеріал, колір і параметри друку будуть автоматично витягнуті з файлів 3MF.`,willBeExtracted:`Буде розпаковано`,filesExtracted:`Розпаковано файлів: {{count}}`,uploadComplete:`Вивантаження завершено. Успішно: {{succeeded}}`,uploadFailed:`Не вдалося вивантажити`,zipFilesFailed:`Не вдалося обробити файлів: {{count}}`,uploading:`Вивантаження...`,changeLink:`Змінити посилання...`,linkTo:`Посилання на...`,linkToProjectOrArchive:`Посилання на проєкт або архів`,generateThumbnail:`Створити мініатюру`,generateThumbnails:`Створити мініатюри`,generateThumbnailsForMissing:`Створити відсутні мініатюри файлів STL`,gridView:`Вигляд сітки`,listView:`Перегляд списку`,lowDiskSpaceWarning:`Попередження про брак місця на диску`,lowDiskSpaceDetails:`Вільно лише {{free}} із {{total}}. У налаштуваннях задано поріг {{threshold}} ГБ.`,files:`Файли`,folders:`Папки`,size:`Розмір`,free:`Вільно`,allFiles:`Усі файли`,allExternal:`Зовнішні`,externalIsEmpty:`Немає зовнішніх файлів`,externalEmptyDescription:`Тут відображатимуться файли у ваших пов’язаних зовнішніх папках.`,wrap:`Перенесення`,enableTextWrapping:`Увімкнути перенесення тексту`,disableTextWrapping:`Вимкнути перенесення тексту`,collapse:`Згорнути`,collapseFoldersByDefault:`За замовчуванням згорнути папки`,expandFoldersByDefault:`Розгорнути папки за замовчуванням`,folderSort:`Сортування папок`,folderSortByName:`За назвою`,folderSortByActivity:`За останніми діями`,dragToResizeTooltip:`Перетягніть, щоб змінити розмір, двічі клацніть, щоб скинути`,searchFiles:`Пошук файлів...`,searchSubfoldersHint:`Включаючи вкладені папки`,readme:{truncated:`Усічений`,show:`Показати README`,hide:`Приховати README`,label:`README`},tags:{title:`Теги`,subtitle:`Файли міток для наскрізної фільтрації — іграшки, безпечні для дітей, лише PETG, будь-що.`,manage:`Теги`,manageTitle:`Керувати каталогом тегів`,add:`Новий тег`,edit:`Перейменувати тег`,name:`Назва`,fileCount:`Файли`,empty:`Тегів ще немає. Створіть його, щоб розпочати маркування файлів.`,noMatches:`Немає відповідних тегів.`,createPlaceholder:`напр. іграшки, безпечні для дітей, petg`,createButton:`Створити`,nameRequired:`Потрібно вказати назву.`,searchPlaceholder:`Фільтр тегів...`,created:`Тег створено.`,updated:`Тег перейменовано.`,deleted:`Тег видалено.`,saveFailed:`Не вдалося зберегти тег.`,deleteFailed:`Не вдалося видалити тег.`,applyFailed:`Не вдалося застосувати теги.`,applyAdd:`Додати теги`,applyRemove:`Видалити теги`,applyAddSuccess:`Додано теги {{count}} до файлів {{files}}.`,applyRemoveSuccess:`Видалено теги {{count}} у файлах {{files}}.`,actionAdd:`Додати до вибраних файлів`,actionRemove:`Видалити з вибраних файлів`,tagAction:`Тег`,bulkTitle:`Позначити вибрані файли ({{count}})`,bulkTooltip:`Додати або видалити теги для кожного вибраного файлу.`,noPermission:`Ви не маєте дозволу позначати файли тегами.`,filterLabel:`Фільтрування за:`,clearAll:`Очистити все`,confirmDelete:`Видалити тег "{{name}}"?`,confirmDeleteMessage:`Це видалить тег з каталогу. Файли зберігають інші теги.`,confirmDeleteInUseMessage:`Цей тег призначено файлам ({{count}}). Його буде видалено з усіх файлів, але самі файли залишаться без змін.`,editAria:`Редагувати {{name}}`,deleteAria:`Видалити {{name}}`},allTypes:`Усі типи`,prints:`Друки`,ascending:`За зростанням`,descending:`За спаданням`,showModified:`Показати змінені дати`,hideModified:`Приховати змінені дати`,lastModified:`Востаннє змінено`,lastActivity:`Остання активність`,resultsCount:`{{showing}} з {{total}} файлів`,selectAll:`Вибрати усі`,deselectAll:`Зняти вибір із усіх`,selected:`Вибрано: {{count}}`,adding:`Додавання...`,loadingFiles:`Завантаження файлів...`,folderIsEmpty:`Папка порожня`,noFilesYet:`Файлів ще немає`,folderEmptyDescription:`Щоб почати, вивантажте файли або перемістіть їх до цієї папки.`,noFilesDescription:`Вивантажте файли, щоб упорядковувати матеріали для друку.`,noMatchingFiles:`Немає відповідних файлів`,noMatchingFilesDescription:`Жоден файл не відповідає вашим поточним критеріям пошуку чи фільтру.`,clearFilters:`Очистити фільтри`,printedCount:`Надруковано {{count}}x`,uploadedBy:`Вивантажено`,deleteFolder:`Видалити папку`,deleteFile:`Видалити файл`,deleteFilesCount:`Видалити файли {{count}}.`,deleteFolderConfirm:`Ви впевнені, що хочете видалити цю папку? Усі файли всередині також буде видалено.`,deleteFileConfirm:`Ви впевнені, що хочете видалити цей файл?`,deleteFilesConfirm:`Ви впевнені, що бажаєте видалити вибрані файли {{count}}? Цю дію не можна скасувати.`,deleting:`Видалення...`,noPermissionRenameFolder:`Ви не маєте дозволу на перейменування папок`,noPermissionLinkFolder:`Ви не маєте дозволу на пов’язування папок`,noPermissionDeleteFolder:`Ви не маєте дозволу на видалення папок`,onlyEmptyFoldersDeletable:`Можна видаляти лише порожні папки`,noPermissionPrint:`Ви не маєте дозволу на друк`,noPermissionAddToQueue:`Ви не маєте дозволу на додавання в чергу`,noPermissionSlice:`Ви не маєте дозволу нарізати файли`,noPermissionDownload:`У вас немає дозволу на завантаження файлів`,noPermissionRenameFile:`Ви не маєте дозволу на перейменування цього файлу`,noPermissionGenerateThumbnail:`Ви не маєте дозволу створювати мініатюри`,noPermissionDeleteFile:`Ви не маєте дозволу на видалення цього файлу`,noPermissionCreateFolder:`Ви не маєте дозволу на створення папок`,noPermissionUpload:`Ви не маєте дозволу на вивантаження файлів`,noPermissionMoveFiles:`Ви не маєте дозволу на переміщення файлів`,noPermissionDeleteFiles:`Ви не маєте дозволу на видалення файлів`,linkExternal:`Зовнішнє посилання`,linkExternalFolder:`Посилання на зовнішню папку`,linkExternalFolderDescription:`Змонтуйте каталог хоста (NAS, USB, спільний мережевий ресурс) у файловому менеджері. Файли не копіюються — доступ до них здійснюється безпосередньо з початкового шляху.`,externalFolderNamePlaceholder:`наприклад, NAS Друкує`,externalPath:`Шлях хоста`,externalPathHelp:`Абсолютний шлях до каталогу на хості Docker. Має бути прив’язано до контейнера.`,readOnly:`Тільки для читання`,readOnlyHelp:`забороняє вивантаження й видалення`,showHiddenFiles:`Показати приховані файли (dotfiles)`,externalFolder:`Зовнішня папка`,scanFolder:`Сканувати`,toast:{folderCreated:`Папка створена`,folderDeleted:`Папку видалено`,fileDeleted:`Файл видалено`,filesDeleted:`Видалені файли {{count}}.`,filesMoved:`Файли переміщено`,folderLinked:`Папку пов’язано`,folderUnlinked:`Папку від’єднано`,externalFolderLinked:`Зовнішня папка пов’язана та просканована`,folderScanned:`Сканування завершено: {{added}} додано, {{removed}} видалено`,addedToQueue:`Додано до черги файлів: {{count}}`,addedToQueuePartial:`Додано: {{added}}; не вдалося додати: {{failed}}`,failedToAddToQueue:`Не вдалося додати файли: {{error}}`,fileRenamed:`Файл перейменовано`,folderRenamed:`Папку перейменовано`,thumbnailsGenerated:`Створено мініатюри {{count}}`,thumbnailsGeneratedPartial:`Створено мініатюри {{succeeded}}, {{failed}} не вдалося`,noStlMissingThumbnails:`Немає файлів STL без мініатюр`,failedToGenerateThumbnails:`Не вдалося створити мініатюри: {{error}}`,thumbnailGenerated:`Створено мініатюру`,failedToGenerateThumbnail:`Не вдалося створити мініатюру: {{error}}`}},projects:{title:`Проєкти`,subtitle:`Організовуйте та відстежуйте свої проєкти 3D-друку`,newProject:`Новий проєкт`,editProject:`Редагувати проєкт`,deleteProject:`Видалити проєкт`,projectName:`Назва проєкту`,description:`опис`,noProjects:`Проєктів ще немає`,noProjectsFiltered:`Немає проєктів {{status}}.`,noProjectsFilteredHelp:`У вас немає {{status}} проєктів. Проєкти з’являться тут, коли їхній статус зміниться.`,createFirst:`Створіть свій перший проєкт, щоб почати впорядковувати пов’язані роздруківки, відстежувати прогрес і керувати збірками.`,createFirstButton:`Створіть свій перший проєкт`,create:`Створити`,files:`Файли`,prints:`Принти`,plates:`пластини`,parts:`частин`,lastModified:`Остання зміна`,deleteConfirm:`Ви впевнені, що хочете видалити цей проєкт? Архіви та елементи черги буде від’єднано, але не видалено.`,addFiles:`Додати файли`,removeFile:`Видалити файл`,viewDetails:`Переглянути деталі`,namePlaceholder:`наприклад, Voron 2.4 Build`,descriptionPlaceholder:`Додатковий опис...`,urlLabel:`URL`,urlPlaceholder:`https://makerworld.com/...`,urlInvalid:`URL має починатися з http:// або https://`,openExternalUrl:`Відкритий проєкт URL`,coverImageLabel:`Фото обкладинки`,coverImageAlt:`Обкладинка проєкту`,coverImageUpload:`Вивантажити`,coverImageReplace:`Замінити`,coverImageRemove:`видалити`,color:`Колір`,targetPlates:`Цільові пластини`,targetPlatesPlaceholder:`наприклад, 25`,targetPlatesHelp:`Кількість завдань друку`,targetParts:`Цільові частини`,targetPartsPlaceholder:`наприклад, 150`,targetPartsHelp:`Загальна кількість необхідних об’єктів`,targetSets:`Копій кожного файлу`,targetSetsPlaceholder:`наприклад, 10`,targetSetsHelp:`Кількість друків кожного придатного до друку файлу`,tagsLabel:`Теги (розділені комами)`,tagsPlaceholder:`напр., ворон, функціональний, подарунок`,dueDate:`Термін виконання`,priority:`Пріоритет`,priorityLow:`Низький`,priorityNormal:`нормальний`,priorityHigh:`Високий`,priorityUrgent:`Терміново`,statusActive:`Активний`,statusCompleted:`Виконано`,statusArchived:`Архівовано`,done:`Готово`,completed:`завершено`,failed:`не вдалося`,inQueue:`в черзі`,noPrintsYet:`Ще немає відбитків`,printJobs:`Завдання друку (пластини)`,partsPrinted:`Надруковані частини`,failedParts:`Вийшли з ладу деталі`,import:`Імпорт`,export:`Експорт`,importProject:`Імпорт проєкту`,exportAll:`Експортуйте всі проєкти`,loading:`Завантаження проєктів...`,noEditPermission:`Ви не маєте дозволу на редагування проєктів`,noDeletePermission:`Ви не маєте дозволу на видалення проєктів`,noCreatePermission:`Ви не маєте дозволу на створення проєктів`,noImportPermission:`Ви не маєте дозволу на імпорт проєктів`,noExportPermission:`Ви не маєте дозволу на експорт проєктів`,toast:{created:`Проєкт створено`,updated:`Проєкт оновлений`,deleted:`Проєкт видалено`,imported:`Проєкт імпортовано`,multipleImported:`{{count}} проєкти імпортовані`,importFailed:`Помилка імпорту`,exported:`Експортовані проєкти (лише метадані)`}},projectDetail:{notFound:`Проєкт не знайдено`,backToProjects:`Назад до проєктів`,export:`Експорт`,exportProject:`Експортний проєкт`,noExportPermission:`Ви не маєте дозволу на експорт проєктів`,noEditPermission:`Ви не маєте дозволу на редагування проєктів`,partOf:`частина:`,priorityLabel:`Пріоритет:`,noPrints:`У цьому проєкті ще немає роздруківок`,status:{active:`Активний`,completed:`Виконано`,archived:`Архівовано`},priority:{low:`Низький`,normal:`нормальний`,high:`Високий`,urgent:`Терміново`},dueDate:{overdue:`Прострочена`,today:`Термін виконання сьогодні`,daysLeft:`Залишилося {{count}} днів`},progress:{platesProgress:`Пластини Прогрес`,partsProgress:`Прогрес запчастин`,setsProgress:`Завершені комплекти`,sets:`комплектів`,setsHint:`Комплект вважається завершеним, коли кожен придатний до друку файл надруковано стільки разів`,printJobs:`завдання друку`,parts:`частин`,percentComplete:`{{percent}}% виконано`,remaining:`Залишилося {{count}}.`},stats:{printJobs:`Завдання друку`,total:`всього`,failed:`{{count}} не вдалося`,partsPrinted:`Надруковані частини {{count}}.`,printTime:`Час друку`,filamentUsed:`Філамент, що використовується`},cost:{title:`Відстеження витрат`,filamentCost:`Вартість філаменту`,energy:`Енергія`,totalCost:`Загальна вартість`,total:`Всього`,includesBom:`в т.ч. BOM`,budget:`Бюджет`,remaining:`Залишилося`},subProjects:{title:`Підпроєкти ({{count}})`},notes:{title:`Примітки`,noEditPermission:`Ви не маєте дозволу редагувати нотатки`,placeholder:`Додайте примітки щодо цього проєкту...`,empty:`Приміток ще немає. Натисніть Редагувати, щоб додати примітки.`},files:{title:`Файли`,linkFolders:`Зв’язувати папки з файлового менеджера`,forQuickAccess:`до цього проєкту для швидкого доступу.`,fileCount:`Файлів: {{count}}`,empty:`Немає пов’язаних папок. Перейдіть до файлового менеджера та зв’яжіть папку з цим проєктом.`,printedCount:`Надруковано разів: {{count}}`,progressTooltip:`Завершено друків: {{done}} із {{target}}`,noFiles:`У цій папці немає файлів.`},bom:{title:`Перелік матеріалів`,acquired:`{{completed}}/{{total}} придбано`,showAll:`Показати все`,hideDone:`Сховати готове`,addPart:`Додати частину`,noAddPermission:`Ви не маєте дозволу додавати частини`,partNamePlaceholder:`Назва деталі (наприклад, гвинти M3x8)`,partName:`Назва частини`,qty:`кількість`,price:`Ціна ({{currency}})`,sourcingUrlPlaceholder:`URL джерела (необов’язково)`,remarksPlaceholder:`Примітки (необов’язково)`,deletePart:`Видалити частину`,deleteConfirm:`Ви впевнені, що хочете видалити "{{name}}"?`,noUpdatePermission:`Ви не маєте дозволу на оновлення частин`,noEditPermission:`Ви не маєте дозволу редагувати частини`,noDeletePermission:`Ви не маєте дозволу на видалення частин`,totalCost:`Загальна вартість:`,empty:`Немає частин у описі матеріалів. Додайте обладнання, електроніку чи інші компоненти, щоб відстежувати, що потрібно отримати.`},timeline:{title:`Хронологія діяльності`,empty:`Активності ще немає.`},template:{saveAsTemplate:`Зберегти як шаблон`,noCreatePermission:`Ви не маєте дозволу на створення шаблонів`},queue:{title:`Черга`,viewAll:`Переглянути всі`,printing:`Друкується: {{count}}`,queued:`{{count}} у черзі`},prints:{title:`Друки ({{count}})`},toast:{projectUpdated:`Проєкт оновлений`,partAdded:`Частина додана`,partRemoved:`Частину видалено`,exportFailed:`Помилка експорту`,projectExported:`Проєкт експортовано`,templateCreated:`Шаблон створено`}},system:{title:`Інформація про систему`,version:`Версія`,uptime:`Час роботи`,cpuUsage:`CPU Використання`,memoryUsage:`Використання пам’яті`,diskUsage:`Використання диска`,networkInfo:`Інформація про мережу`,logs:`Журнали`,debugMode:`Режим налагодження`,enableDebug:`Увімкнути журнал налагодження`,disableDebug:`Вимкнути ведення журналу налагодження`,downloadLogs:`Завантажити журнали`,clearLogs:`Очистити журнали`,dockerInfo:`Docker Інформація`,containerName:`Назва контейнера`,imageName:`Назва зображення`,platform:`Платформа`,architecture:`Архітектура`},sponsors:{sectionTitle:`Незалежний і фінансований громадою`,tagline:`Bambuddy є безкоштовним і залишається таким, тому що люди вирішили його підтримати. Ні VC, ні блокування в хмарі.`,viewSupporters:`Переглянути прихильників`,toastPrints:`Завершено друків із Bambuddy: {{count}}. Bambuddy залишається безкоштовним завдяки своїм прихильникам.`,toastCost:`За допомогою Bambuddy обліковано філаменту на {{total}}. Дізнайтеся, хто допомагає проєкту залишатися незалежним.`,toastArchives:`Заархівовано друків із Bambuddy: {{count}}. Дізнайтеся, хто допомагає проєкту залишатися незалежним.`,toastAnniversary:`Рік з Bambuddy! Подивіться, хто зберігає незалежність проєкту.`,toastVersionUpdate:`Оновлено до v{{version}}. Bambuddy залишається безкоштовним завдяки своїм прихильникам.`,toastBusiness:`Використовуєте Bambuddy на принтерах ({{count}})? Для команд доступний план підтримки: пріоритетні виправлення, виставлення рахунків і прямий зв’язок із супровідником.`,businessCta:`Bambuddy для бізнесу`,businessTitle:`Bambuddy для бізнесу`,businessTagline:`Ви використовуєте принтери {{count}}. Пріоритетна підтримка, комерційне ліцензування та виставлення рахунків доступні для команд і друкарень.`},library:{title:`Бібліотека філаментів`,addFilament:`Додати філамент`,editFilament:`Редагувати філамент`,deleteFilament:`Видалити філамент`,vendor:`Продавець`,material:`матеріал`,color:`Колір`,kFactor:`Фактор K`,temperature:`температура`,noFilaments:`У бібліотеці немає філаментів`,deleteConfirm:`Ви впевнені, що хочете видалити цю філамент?`,importFromPrinter:`Імпорт із принтера`,exportToFile:`Експорт у файл`,runWithPipeline:{actionLabel:`Запустити з конвеєром`,noPermission:`Ви не маєте дозволу на запуск конвеєрів`,modalTitle:`Запустити з конвеєром`,confirmTitle:`Підтвердити запуск`,confirmIntro:`Під час попередньої перевірки виявлено проблеми з цим запуском`,sourceHint:`Джерело`,pipelineHint:`Конвеєр`,targetHint:`Ціль`,pipelineListAria:`Наявні конвеєри`,runAnyway:`Усе одно запустити`,loading:`Завантаження…`,empty:`Збережених конвеєрів ще немає. Відкрийте вікно нарізання й натисніть «Зберегти як конвеєр», щоб створити його.`,noTarget:`Цільовий принтер не встановлено`,noTargetMessage:`Для цього конвеєра не задано цільовий принтер. Відкрийте конвеєр у налаштуваннях і виберіть принтер.`,copies:`Копії`,copiesHint:`максимум {{n}}`,classTarget:`Будь-який {{model}}`,toast:{started:`Пуск конвеєра розпочато`,failed:`Не вдалося розпочати запуск`},issue:{printerNotSet:`У цьому конвеєрі не встановлено цільовий принтер.`,printerNotFound:`Цільовий принтер більше не існує.`,printerDisabled:`Цільовий принтер вимкнено.`,printerOffline:`Цільовий принтер не в мережі.`,filamentType:`Слот філаменту {{slot}}: очікується {{expected}}, в AMS — {{actual}}`,filamentColor:`Слот філаменту {{slot}}: колір не збігається (очікується {{expected}}, в AMS — {{actual}})`,amsSlotMissing:`Слот AMS {{slot}} недоступний на цьому принтері`,filamentUnverified:`Філамент для слота {{slot}} походить із хмарного або стандартного профілю, тому його неможливо перевірити заздалегідь.`,noClassMatches:`Жоден принтер у цій інсталяції не належить до цільового класу моделей конвеєра ({{expected}}).`,classNotSet:`Ціллю конвеєра вибрано клас принтерів, але модель не задано.`}}},slice:{title:`Нарізання моделі`,action:`Нарізати`,actionAll:`Нарізати всі пластини ({{count}})`,actionAllTitle:`Нарізати всі пластини в один багатопластинний результат (один архів). Вибір філаменту охоплює всі слоти, визначені проєктом.`,allPlatesToggle:`Нарізати всі пластини ({{count}})`,slicing:`Нарізання…`,printer:`Профіль принтера`,process:`Профіль процесу`,filament:`Профіль філаменту`,filamentSlot:`Філамент {{index}} ({{type}})`,selectPreset:`— Виберіть профіль —`,loadingPresets:`Завантаження профілів…`,analyzingPlateFilaments:`Аналіз філаментів пластини…`,analyzingPlateFilamentsHint:`Виконується попереднє нарізання, щоб визначити, які слоти AMS використовує ця пластина. Результат кешується, тому повторне відкриття відбувається миттєво.`,previewToast:`Аналіз {{name}} — {{elapsed}}`,previewWithProgress:`Аналіз {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,notUsedByPlate:`— не використовується на цій пластині`,noPresetsForSlot:`Немає профілів`,otherPrinters:`Інші принтери`,presetsLoadFailed:`Не вдалося завантажити профілі. Спочатку імпортуйте їх у розділі Налаштування → Профілі.`,refreshPresets:`Оновити`,refreshPresetsTitle:`Оновити профілі — отримати найновіші хмарні та вбудовані списки (скористайтеся після видалення профілю в Bambu Studio або Bambu Handy)`,allPresetsRequired:`Потрібно вибрати всі профілі`,useEmbedded:`Використати вбудовані налаштування файлу`,useEmbeddedHint:`Нарізати модель із налаштуваннями автора файлу — стінками, заповненням і філаментом — замість профілів вище. Ця можливість доступна, оскільки модель принтера відповідає файлу.`,designSettings:`Зберегти налаштування автора`,designSettingsHint:`Цей файл змінює {{count}} налаштувань друку порівняно зі стандартним профілем.`,designSettingsSelected:`Вибрано {{selected}} із {{total}}`,designSettingsPrinterCoupled:`залежить від принтера`,designSettingsPrinterCoupledHint:`Значення підібрано для принтера, під який створено файл, — на вашому воно може бути неправильним або поза допустимим діапазоном.`,enqueuing:`Надсилання завдання нарізання…`,queued:`У черзі…`,failed:`Не вдалося виконати нарізання. Перевірте журнали слайсера.`,startedToast:`Нарізання {{name}} у фоновому режимі…`,queuedToast:`У черзі: {{name}} — {{elapsed}}`,runningToast:`Нарізання {{name}} — {{elapsed}}`,runningWithProgress:`{{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,runningWithProgressMultiPlate:`Пластина {{plateIndex}} з {{plateCount}} • {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,completedToast:`Нарізання {{name}} завершено`,failedTitle:`Помилка нарізання`,failedToast:`Помилка нарізання {{name}}: {{detail}}`,tier:{local:`Імпортовані`,cloud:`Bambu Cloud`,orcaCloud:`Orca Cloud`,standard:`Стандартний`},cloud:{notAuthenticated:`Увійдіть у Bambu Cloud (Налаштування → Профілі → Bambu Cloud), щоб переглянути хмарні профілі.`,expired:`Сеанс Bambu Cloud завершився — увійдіть знову, щоб оновити хмарні профілі.`,unreachable:`Bambu Cloud зараз недоступний. Локальні та стандартні профілі й надалі працюють.`},orcaCloud:{notAuthenticated:`Увійдіть до Orca Cloud (Профілі → Orca Cloud), щоб переглянути профілі Orca.`,expired:`Сеанс Orca Cloud завершився — увійдіть ще раз, щоб оновити профілі Orca.`,unreachable:`Orca Cloud зараз недоступний. Інші профілі й надалі працюють.`},bedType:{label:`Друкарська пластина`,auto:`Авто (використовувати профіль процесу)`,coolPlate:`Холодна друкарська пластина`,coolPlateSuperTack:`Cool Plate SuperTack`,engineering:`Інженерна пластина`,highTemp:`Високотемпературна пластина`,texturedPEI:`Текстурована PEI-пластина`,smoothPEI:`Гладка PEI-пластина`},pipelines:{label:`Конвеєр`,applyAria:`Застосувати конвеєр`,applyPrompt:`Застосувати конвеєр…`,empty:`Немає збережених конвеєрів`,saveButton:`Зберегти як конвеєр`,saveTitle:`Зберегти поточний вибір чотирьох слотів як конвеєр для повторного використання`,namePlaceholder:`Назва конвеєра`,nameAria:`Нова назва конвеєра`,toast:{applied:`Застосовано "{{name}}"`,saved:`Конвеєр збережено`,saveFailed:`Не вдалося зберегти`}}},spoolman:{title:`Spoolman Інтеграція`,enabled:`Spoolman Увімкнено`,url:`Spoolman URL`,connected:`Підключено`,disconnected:`Не підключено`,testConnection:`Тестове підключення`,sync:`Синхронізувати`,syncing:`Синхронізація...`,lastSync:`Остання синхронізація`,linkToSpoolman:`Посилання на Spoolman`,openInSpoolman:`Відкрити в Spoolman`,unlinkSpool:`Від’єднати котушка`,unlinkConfirmTitle:`Скасувати призначення котушки?`,unlinkConfirmMessage:`Це призведе до видалення котушки з цього слота. Самі дані котушки залишаться незмінними.`,selectSpool:`Вибрати Spool`,noUnlinkedSpools:`Немає непризначених котушок`,linkSuccess:`Котушку успішно призначено`,linkFailed:`Не вдалося призначити котушку`,unlinkSuccess:`Призначення котушки успішно скасовано`,unlinkFailed:`Не вдалося скасувати призначення котушки`,linkedSpool:`Призначена котушка`,spoolId:`Ідентифікатор котушки`,fillSourceLabel:`(Spoolman)`,weight:`вага`,remaining:`Залишилося`,disableWeightSync:`Вимкнути синхронізацію приблизної ваги AMS.`,disableWeightSyncDesc:`Не оновлюйте залишкову ємність із оцінок AMS. Використовуйте це, якщо ви віддаєте перевагу відстеженню використання Spoolman, а не оцінкам на основі відсотка AMS. Нові котушки все ще використовуватимуть оцінку AMS як початкову вагу.`,reportPartialUsage:`Повідомити про часткове використання для невдалого друку`,reportPartialUsageDesc:`Якщо друк не вдається або скасовується, повідомте приблизну кількість філаменту, використаної до цього моменту, на основі виконання шару.`},locations:{title:`Місця зберігання`,subtitle:`Керуйте полицями, шухлядами та іншими фізичними місцями для зберігання своїх котушок`,add:`Додати місцезнаходження`,addShort:`додати`,edit:`Редагувати місцезнаходження`,name:`Назва`,spools:`Котушки`,empty:`Місць зберігання ще немає. Створіть свою першу полицю або ящик.`,manage:`Розташування`,createPlaceholder:`напр. Полиця А, ящик 1`,nameRequired:`Потрібно вказати назву місця`,created:`Розташування створено`,updated:`Розташування оновлено`,deleted:`Розташування видалено`,saveFailed:`Не вдалося зберегти місцезнаходження`,deleteFailed:`Не вдалося видалити місцезнаходження`,deleteBlocked:`Видаліть усі котушки з цього місця перед видаленням`,confirmDelete:`Видалити "{{name}}"?`,confirmDeleteMessage:`Це місце буде видалено з каталогу. Котушки спочатку потрібно перемістити.`},inventory:{title:`Облік котушок`,subtitle:`Керуйте своїми котушками`,addToInventory:`Додати до обліку`,addToInventoryPending:`Додавання...`,addToInventorySuccess:`Котушку додано до обліку`,addToInventoryFailed:`Не вдалося додати котушку до обліку`,unknownSpoolTitle:`Виявлено нову котушку філаменту`,unknownSpoolMessage:`У {{location}} виявлено котушку з невідомою RFID-міткою. Додати її до обліку?`,unknownSpoolSlot:`Слот`,bulk:{selectAllVisible:`Вибрати усі видимі`,selectRow:`Вибрати рядок`,selectGroup:`Вибрати групу`,selectionCount:`Вибрано {{count}}.`,edit:`Редагувати`,printLabels:`Друк етикеток`,resetUsage:`Скинути використання`,restore:`Відновити`,archive:`Архівувати`,delete:`Видалити`,clearSelection:`Очистити вибір`,editTitle:`Масове редагування котушок`,editSubtitle:`Застосовується до вибраних котушок {{count}}. Оновлюються лише ті поля, які ви позначите.`,editHint:`Введіть значення в поле, щоб позначити його для оновлення: буде надіслано лише позначені поля. Порожнє поле не змінює котушки; очистити поле можна лише під час редагування окремої котушки.`,useCustom:`Використати «{{value}}»`,toggleField:`Перемкнути оновлення для цього поля`,changeCount:`Буде оновлено полів: {{count}}`,applyPending:`Застосування...`,applyButton:`Застосувати до котушок ({{count}})`,deleteTitle:`Видалити вибрані котушки`,archiveTitle:`Архівувати вибрані котушки`,restoreTitle:`Відновити вибрані котушки`,resetUsageTitle:`Скинути використання на вибраних котушках`,deleteMessage:`Назавжди видалити котушки {{count}}? Це неможливо скасувати.`,archiveMessage:`Архівувати котушки {{count}}? Пізніше їх можна відновити.`,restoreMessage:`Відновити заархівовані котушки {{count}}?`,resetUsageMessage:`Скинути лічильник «Всього спожито» на котушках {{count}}? Залишок ваги зберігається.`,updateSuccess:`Котушок оновлено: {{count}}`,updateFailed:`Помилка масового оновлення`,updatePartial:`Оновлено: {{ok}}; не вдалося оновити: {{failed}}`,updateAllFailed:`Не вдалося оновити жодну з вибраних котушок ({{count}}). Вибір збережено для повторної спроби.`,deleteSuccess:`Котушок видалено: {{count}}`,deleteFailed:`Не вдалося масово видалити`,deletePartial:`Видалено: {{ok}}; не вдалося видалити: {{failed}}`,deleteAllFailed:`Не вдалося видалити жодну з вибраних котушок ({{count}}). Вибір збережено для повторної спроби.`,archiveSuccess:`Котушок заархівовано: {{count}}`,archiveFailed:`Помилка масового архівування`,archivePartial:`Заархівовано: {{ok}}; не вдалося заархівувати: {{failed}}`,archiveAllFailed:`Не вдалося заархівувати жодну з вибраних котушок ({{count}}). Вибір збережено для повторної спроби.`,restoreSuccess:`Котушок відновлено: {{count}}`,restoreFailed:`Помилка масового відновлення`,restorePartial:`Відновлено: {{ok}}; не вдалося відновити: {{failed}}`,restoreAllFailed:`Не вдалося відновити жодну з вибраних котушок ({{count}}). Вибір збережено для повторної спроби.`,invalidHex:`Введіть 6 шістнадцяткових символів (RRGGBB) або 8 (RRGGBBAA). Інакше поле не застосовуватиметься.`},spoolmanMixedContentTitle:`Spoolman не може Завантажити через HTTPS — змішаний вміст заблоковано вашим браузером`,spoolmanMixedContentBody:`Bambuddy обслуговується через HTTPS (через ваш зворотний проксі), але ваш Spoolman URL усе ще звичайний HTTP. Браузери блокують змішаний вміст для безпеки, тому вбудований Spoolman UI не може відтворюватися. Щоб це працювало, Spoolman має бути доступним через HTTPS.`,spoolmanMixedContentFixReverseProxy:`Розмістіть Spoolman за тим самим зворотним проксі, що й Bambuddy (Traefik / Nginx / Caddy) з HTTPS, а потім оновіть Spoolman URL у налаштуваннях до нової адреси HTTPS.`,spoolmanMixedContentFixOpenNewTab:`Як обхідний шлях, відкрийте Spoolman у новій вкладці браузера поверх HTTP — правила змішаного вмісту застосовуються лише до вбудованих фреймів, тому окрема вкладка все ще працює.`,spoolmanOpenInNewTab:`Відкрийте Spoolman у новій вкладці`,labels:{title:`Друк етикеток на котушках`,selectedCount:`Вибрано {{count}}.`,pickSpools:`Виберіть котушки для друку етикеток:`,monochrome:`Монохромний (чорно-білий принтер)`,monochromeHint:`Прибирає зразок кольору та розширює область тексту`,searchPlaceholder:`Шукайте назву, бренд або #ID`,filterByMaterial:`матеріал:`,allMaterials:`все`,selectVisible:`Вибрати все видиме ({{count}})`,deselectVisible:`Скасувати вибір видимого`,clearAll:`Очистити все`,noSpoolsToShow:`Немає котушок для показу. Налаштуйте фільтр і повторіть спробу.`,noMatches:`Жодна котушка не відповідає поточному пошуку чи фільтру.`,printOne:`Друк етикетки для цієї котушки`,printLabels:`Друк етикеток…`,bulkTitle:`Виберіть котушки для друку етикеток серед показаних ({{count}})`,noSpoolsTitle:`Немає котушок для маркування`,error:`Не вдалося створити мітки: {{msg}}`,sortBy:{label:`Сортувати:`,id:`За ідентифікатором`,color:`За кольором`},templates:{amsHolderSmall:{label:`Тримач AMS — малий (74 × 33 мм)`,hint:`Одна етикетка на сторінці; відповідає етикетці для друку від MakerWorld моделі 752566 (AMS Filament Label Holder).`},amsHolderLarge:{label:`Тримач AMS — великий (75 × 55 мм)`,hint:`Одна етикетка на сторінці; підходить для варіанту тримача етикеток із філаментом AMS із вкладенням картону. Досить місткий для зразка, бренду, матеріалу, ідентифікатора та QR-коду.`},box40x30:{label:`Етикетка коробки (40 × 30 мм)`,hint:`Одна етикетка на сторінці; звичайний розмір рулону DK/Brother, підходить для етикеток у пакетах із філаментом та контейнерах для зберігання.`},box:{label:`Етикетка коробки (62 × 29 мм)`,hint:`Одна етикетка на сторінці; розміром для маленьких етикеток Brother PT/QL і Dymo.`},averyL7160:{label:`Avery L7160 — аркуш А4 (38,1 × 63,5 мм × 21)`,hint:`Європейський аркуш; 21 етикетка на сторінці A4.`},avery5160:{label:`Avery 5160 — аркуш US Letter (25,4 × 66,7 мм × 30)`,hint:`Аркуш американського формату; 30 етикеток на сторінці Letter.`}}},csv:{importButton:`Імпорт CSV`,exportButton:`Експорт CSV`,modalTitle:`Імпорт котушок з CSV`,selectFile:`Виберіть файл CSV або перетягніть його сюди`,dragHint:`Заголовок: material (обов’язково), brand, subtype, color_name, rgba, …`,parsing:`Читання файлу…`,previewError:`Не вдалося прочитати файл CSV.`,validCount:`{{count}} дійсний`,errorCount:`{{count}} помилка`,skippedCount:`{{count}} пропущено`,colRow:`Рядок`,colStatus:`Статус`,colColor:`Колір`,colorResolved:`Кольорове заповнення з каталогу`,colorCrossMaterial:`Колір узятий з іншого матеріалу — точної відповідності в каталозі немає`,duplicateExisting:`Котушка з таким матеріалом, брендом і кольором вже є — вона ще буде імпортована як нова котушка`,spoolmanHint:`У режимі Spoolman використовуйте вбудовані засоби імпорту й експорту Spoolman.`,importValidRows:`Імпорт {{count}} дійсних рядків`,noValidRows:`Немає дійсних рядків`,importing:`Імпорт…`,importSuccess:`Імпортовано котушок: {{count}}`,importError:`Помилка імпорту`,exportError:`Помилка експорту`},addSpool:`Додати котушку`,editSpool:`Редагувати котушку`,copySpool:`Копіювати котушку`,material:`матеріал`,selectMaterial:`Виберіть матеріал...`,subtype:`Підтип`,brand:`Бренд`,searchBrand:`Шукати бренд...`,useCustomBrand:`Використовуйте "{{brand}}"`,useCustomMaterial:`Використовуйте спеціальний матеріал: {{material}}`,suggestedOptions:`Рекомендовані`,allOptions:`Усі`,colorName:`Назва кольору`,colorNamePlaceholder:`Нефритовий білий, вогненно-червоний...`,color:`Колір`,hexColor:`Шістнадцятковий колір`,pickColor:`Вибрати індивідуальний колір`,labelWeight:`Номінальна вага філаменту`,coreWeight:`Вага порожньої котушки`,searchSpoolWeight:`Шукати вагу котушки...`,weightUsed:`Використано`,currentWeight:`Вага, що залишилася`,measuredWeight:`Виміряна вага`,spoolName:`Котушка`,costPerKg:`Вартість за кг`,storageLocation:`Місце зберігання`,storageLocationPlaceholder:`напр. Полиця А, ящик 1`,openInInventory:`Відкрити в інвентарі`,measuredWeightError:`Виміряна вага має бути між {{min}}g і {{max}}g.`,slicerFilament:`Філамент для нарізки`,slicerFilamentName:`Назва профілю слайсера`,slicerPreset:`Попереднє налаштування слайсера`,searchPresets:`Шукати профілі філаменту...`,selectedPreset:`Вибране`,noPresetsFound:`Попередніх налаштувань не знайдено`,tempOverrides:`Перевизначення температури`,note:`Примітка`,notePlaceholder:`Будь-які додаткові зауваження щодо цієї котушки...`,category:`Категорія`,categoryPlaceholder:`напр. Виробництво, прототип, клієнт А`,categoryNone:`Без категорії`,storageLocationNone:`Місцезнаходження не встановлено`,lowStockThresholdOverride:`Поріг низького запасу (ця котушка)`,lowStockThresholdOverrideHelp:`Залиште поле порожнім, щоб використовувати глобальне порогове значення ({{global}}%).`,clearRfid:`Очистити тег RFID.`,rfidCleared:`Тег RFID видалено`,archive:`Архівувати`,restore:`Відновити`,noSpools:`Ще немає котушок. Щоб почати, додайте свою першу котушку.`,noAvailableSpools:`Немає котушок. Додайте котушку до свого інвентарю або спершу скасуйте призначення іншого слота.`,kProfiles:`K-профілі`,addKProfile:`Додати K-профіль`,assignSpool:`Призначити котушку`,unassignSpool:`Скасувати призначення`,assignSuccess:`Котушку призначено, слот AMS налаштовано`,assignPendingInsert:`Котушку призначено. Слот буде налаштовано після її встановлення.`,assignFailed:`Не вдалося призначити котушку`,selectSpool:`Виберіть котушку, щоб призначити цьому слоту`,assigned:`Призначено`,assigning:`Призначення...`,searchSpools:`Пошук котушок...`,showAllSpools:`Показати всі котушки`,spoolmanSpools:`Котушки Spoolman`,allMaterials:`Усі матеріали`,filterByBrand:`Фільтрувати за брендом...`,showArchived:`Показати архівні`,quickAdd:`Швидке додавання (запас)`,quantity:`Кількість`,stock:`Запас`,configured:`Налаштовано`,spoolsCreated:`Створено котушок: {{count}}`,spoolsPartiallyCreated:`{{created}} з {{total}} котушок створено (деякі не вдалося)`,spoolCreated:`Котушку створено`,spoolUpdated:`Котушку оновлено`,spoolDeleted:`Котушку видалено`,deepLinkSpoolNotFound:`Котушку не знайдено`,deepLinkFetchFailed:`Не вдалося завантажити котушку — спробуйте ще раз`,spoolArchived:`Котушку заархівовано`,spoolRestored:`Котушку відновлено`,kProfileSaveFailed:`Не вдалося зберегти налаштування K-профілю`,syncWeightSpoolNotFound:`Котушку не знайдено — можливо, її видалено`,syncWeightSpoolmanUnreachable:`Spoolman недоступний — спробуйте пізніше`,syncWeightFailed:`Не вдалося синхронізувати вагу`,spoolmanUnreachable:`Spoolman недоступний — спробуйте пізніше`,deleteSpoolNotFound:`Котушку не знайдено — можливо, її вже видалено`,deleteFailed:`Не вдалося видалити котушку`,archiveSpoolNotFound:`Котушку не знайдено — можливо, її вже видалено`,archiveFailed:`Не вдалося заархівувати котушку`,restoreSpoolNotFound:`Котушку не знайдено — можливо, її вже видалено`,restoreFailed:`Не вдалося відновити котушку`,saveFailed:`Не вдалося зберегти зміни`,tagClearFailed:`Не вдалося очистити тег`,deleteConfirm:`Ви впевнені, що хочете видалити цю котушку? Це неможливо скасувати.`,archiveConfirm:`Ви впевнені, що хочете заархівувати цю котушку?`,advancedSettings:`Розширені налаштування`,filamentInfoTab:`Інформація про філамент`,paProfileTab:`Профіль PA`,filamentInfo:`Філамент`,additional:`Додатково`,loadingPresets:`Завантаження хмарних профілів...`,cloudConnected:`Хмара підключена`,cloudNotConnected:`Хмара не підключена (за умовчанням)`,recentColors:`Останні`,searchColors:`Пошук кольорів...`,searchResults:`Результати пошуку`,allColors:`Всі кольори`,commonColors:`Поширені кольори`,showLess:`Показувати менше`,showAll:`Показати все`,noColorsFound:`Жоден колір не відповідає вашому запиту`,noResults:`Збігів не знайдено`,extraColorsLabel:`Додаткові кольори`,extraColorsPlaceholder:`EC984C,#6CD4BC,A66EB9,D87694`,extraColorsHint:`Вставте від 2 до 8 шістнадцяткових знаків, розділених комами. Візуалізація як градієнт.`,extraColorsInvalid:`Проігнорований недійсний шістнадцятковий код: {{tokens}}`,colorEffectLabel:`Ефект`,colorEffect:{none:`Жодного`,sparkle:`Блиск`,wood:`Деревина`,marble:`Мармур`,glow:`Світіння`,matte:`Матовий`,silk:`Шовк`,galaxy:`Галактика`,rainbow:`Веселка`,metal:`метал`,translucent:`Напівпрозорий`,gradient:`Градієнт`,dualColor:`Подвійний колір`,triColor:`Три кольори`,multicolor:`Багатобарвність`},selectMaterialFirst:`Спочатку виберіть матеріал на вкладці «Інформація про філамент».`,noPrintersConfigured:`Принтери не налаштовані. Додайте принтери для використання профілів PA.`,matchingFilter:`Зіставлення`,anyBrand:`Будь-який бренд`,anyVariant:`Будь-який варіант`,autoSelect:`Автоматичний вибір`,matches:`збіги`,match:`збіг`,noMatches:`Немає збігів`,connected:`Підключено`,offline:`Не в мережі`,printerOffline:`Принтер не в мережі. Підключіться, щоб переглянути профілі калібрування.`,noKProfilesMatch:`Немає K-профілів, що відповідають вибраному філаменту.`,leftNozzle:`Ліве сопло`,rightNozzle:`Праве сопло`,profilesSelected:`вибрані профілі калібрування`,totalInventory:`Загальний запас`,totalConsumed:`Всього спожито`,byMaterial:`За матеріалом`,inPrinter:`У принтері`,lowStock:`Низький запас`,sinceTracking:`З початку відстеження`,resetConsumedCounter:`Скинути лічильник`,resetConsumedCounterTooltip:`Обнулити лічильник спожитих грамів для цієї котушки. Залишкова вага не зміниться.`,resetConsumedCounterConfirm:`Скинути лічильник спожитих грамів на 0? Майбутні роздруківки знову відстежуватимуться з нуля. Сама котушка, розрахунок її залишкової ваги та ваші налаштування не змінюються.`,resetAllConsumedCounters:`Обнулити всі лічильники`,resetAllConsumedCountersTooltip:`Обнулити лічильник спожитих грамів для кожної котушки. Залишкова вага не зміниться.`,resetAllConsumedCountersConfirm:`Скинути лічильники спожитих грамів до 0 для всіх котушок ({{count}}, включно з архівними)? Статистику «Всього спожито» буде очищено, а облік майбутніх друків почнеться з нуля. Самі котушки та їхня залишкова вага не зміняться.`,consumedCounterReset:`Скидання лічильника`,allConsumedCountersReset:`Скинуто лічильники котушок: {{count}}`,resetConsumedCounterFailed:`Не вдалося скинути лічильник`,loadedInAms:`Завантажено в AMS/Ext`,remaining:`Залишилося`,weightCheck:`Перевірка ваги`,lastWeighed:`Останнє зважування`,neverWeighed:`Ще не зважувалася`,search:`Пошук котушок...`,showing:`Показ`,to:`до`,of:`з`,show:`Показати`,spools:`котушки`,spool:`котушка`,page:`Сторінка`,noSpoolsMatch:`Результатів не знайдено`,noSpoolsMatchDesc:`Спробуйте налаштувати пошук або фільтри, щоб знайти те, що ви шукаєте.`,active:`Активний`,archived:`Архівовано`,all:`все`,used:`Використані`,new:`Нові`,clearFilters:`Очистити фільтри`,table:`Таблиця`,cards:`картки`,net:`Нетто`,groupSimilar:`Групувати`,groupedSpools:`Однакових котушок: {{count}}`,groupedRows:`рядки`,columns:`Стовпці`,configureColumns:`Налаштувати стовпці`,configureColumnsDesc:`Перетягніть, щоб змінити порядок стовпців, або використовуйте стрілки. Перемкніть видимість за допомогою значка ока.`,visible:`видно`,reset:`Скинути`,cancel:`Скасувати`,applyChanges:`Застосувати зміни`,moveUp:`Перемістити вгору`,moveDown:`Перемістити вниз`,hideColumn:`Сховати стовпець`,showColumn:`Показати стовпець`,linkToSpool:`Прив’язати до котушки`,tagLinked:`Тег пов’язано з котушкою`,tagLinkFailed:`Не вдалося зв’язати тег`,tagAlreadyLinked:`Тег уже пов’язано з іншою котушкою`,unknownTag:`Виявлено невідомий тег RFID.`,usageHistory:`Історія використання`,noUsageHistory:`Використання ще не зареєстровано`,printName:`Назва друку`,weightConsumed:`Витрачена вага`,clearHistory:`Очистити`,historyCleared:`Історію використання очищено`,fillSourceLabel:`(Інвентар)`,lowStockThresholdError:`Порогове значення має бути від 0,1 до 99,9`,assignMismatchTitle:`Невідповідність матеріалу`,assignMismatchMessage:`Вибраний матеріал котушки "{{spoolMaterial}}" не відповідає матеріалу лотка "{{trayMaterial}}" для {{location}}. Все одно призначити?`,assignMismatchConfirm:`Все одно призначити`,assignPartialMismatchMessage:`Матеріал котушки "{{spoolMaterial}}" схожий на "{{trayMaterial}}" у {{location}}, але не зовсім відповідає. Ви бажаєте продовжити?`,assignProfileMismatchMessage:`Профіль котушки «{{spoolProfile}}» не відповідає профілю лотка «{{trayProfile}}» у {{location}}. Ви бажаєте продовжити?`,assignReconfigureNote:`Слот AMS буде переналаштовано для використання профілю котушки.`,spoolmanFilamentCatalog:`Каталог філаментів Spoolman`,pickFromSpoolmanCatalog:`Вибрати з каталогу Spoolman…`,spoolmanFilamentSelected:`Філамент вибрано з каталогу Spoolman`,spoolmanFilamentUnlinked:`Посилання на каталог філаментів видалено`,noSpoolmanFilaments:`У каталозі Spoolman не знайдено філаментів`,spoolmanFilamentColorSwatch:`Колір філаменту`,spoolWeightManagedBySpoolman:`Вага порожньої котушки керується залежно від типу філаменту в Spoolman`,spoolmanCatalogLoadFailed:`Не вдалося завантажити каталог філаментів Spoolman`},timelapse:{title:`Таймлапс`,create:`Створити Timelapse`,download:`Завантажити`,delete:`Видалити`,preview:`Попередній перегляд`,frameRate:`Частота кадрів`,quality:`якість`,processing:`Обробка...`,noTimelapses:`Немає таймлапсів`},ams:{title:`AMS`,slot:`Слот`,empty:`Порожній`,emptySlot:`Порожній слот`,slotEmpty:`Порожній`,slotUnconfigured:`?`,emptySlotReset:`Філамент не призначено`,unknown:`Невідомий`,humidity:`Вологість`,temperature:`температура`,filamentType:`Тип філаменту`,filamentColor:`Колір`,remaining:`Залишилося`,history:`AMS Історія`,noHistory:`Історія недоступна`,configureSlot:`Налаштувати слот`,externalSpool:`Зовнішня котушка`,profile:`Профіль`,kFactor:`Фактор K`,fill:`Рівень заповнення`,configure:`Налаштувати`,used:`використовується`,remainingUnit:`залишилося`},printModal:{selectPrinter:`Вибрати принтер`,selectPlate:`Вибрати пластину`,filamentMapping:`Зіставлення філаментів`,plateN:`Пластина {{n}}`,plateFilamentsUnreadable:`Не вдалося прочитати філаменти вибраної пластини, тому їх неможливо зіставити. Зніміть вибір із цієї пластини, щоб додати решту до черги.`,totalCost:`Загальна вартість:`,slotRemainingShort:` — залишилося {{grams}} г`,printSettings:`Налаштування друку`,bedLeveling:`Вирівнювання столу`,flowCalibration:`Калібрування потоку`,vibrationCalibration:`Калібрування вібрації`,layerInspection:`Перевірка першого шару`,timelapse:`Таймлапс`,cancel:`Скасувати`,noPrintersAvailable:`Немає доступних принтерів`,printerBusy:`Принтер зайнятий`,printerOffline:`Принтер не в мережі`,sameTypeDifferentColor:`Одного типу, іншого кольору`,filamentTypeNotLoaded:`Тип філаменту не завантажено`,whenToPrint:`Коли друкувати`,asap:`Якнайшвидше`,queue:`Черга`,schedule:`За розкладом`,dateTime:`Дата й час`,invalidDateTime:`Введіть дійсну дату й час`,openCalendar:`Відкрити календар`,requireManualStart:`Потрібен ручний запуск`,requirePreviousSuccess:`Починати, лише якщо попередній друк вдався`,autoOffAfter:`Вимкнути принтер після завершення`,helpAsap:`Завдання буде додано на початок черги й розпочнеться, щойно відповідний принтер звільниться.`,helpSchedule:`Друк розпочнеться в запланований час, якщо принтер буде вільний. Якщо принтер зайнятий, завдання чекатиме, доки він звільниться.`,helpQueue:`Завдання буде додано в кінець черги.`,leftNozzle:`Л`,rightNozzle:`Р`,leftNozzleTooltip:`Ліве сопло`,rightNozzleTooltip:`Праве сопло`,filamentOverride:`Перевизначення філаменту`,filamentOverrideHint:`Необов’язково замініть філаменти для призначення на основі моделі. Планувальник зіставлятиметься з вибраними філаментами замість вихідних значень 3MF.`,originalFilament:`Оригінал`,overrideWith:`Перевизначити за допомогою`,resetToOriginal:`Скинути до оригіналу`,insufficientFilamentTitle:`Недостатньо філаменту`,waitingForAmsStatus:`Очікування статусу AMS від {{printer}}…`,insufficientFilamentMessage:`У деяких призначених котушках залишилося менше філаменту, ніж потрібно для друку:`,insufficientFilamentLine:`{{printer}} - {{slot}}: потрібно {{required}}g, залишилося {{remaining}}g`,printAnyway:`Усе одно друкувати`,forceColorMatch:`Примусовий збіг кольорів`,staggerPrinterStarts:`Запускати принтери почергово`,staggerGroupSize:`Розмір групи`,staggerInterval:`Інтервал (хв)`,staggerPreview:`Принтерів: {{printers}} → груп: {{groups}}, по {{size}}; інтервал запуску — {{interval}} хв`,staggerLastGroup:`остання група: {{count}}`,staggerTotal:`всього: {{minutes}} хв`,staggerToPrinters:`Розподілити запуск між {{count}} принтерами`,gcodeInjection:`Додати G-код автоматичного друку`},backup:{includesEncryptionKey:`Локальні резервні копії включають файл ключа шифрування MFA (DATA_DIR/.mfa_encryption_key), тому резервна копія ZIP є автономною. Вважайте ZIP конфіденційним — кожен, хто має файл, може розшифрувати секрети клієнта OIDC і секрети TOTP, що зберігаються в ньому.`,title:`Резервне копіювання та відновлення`,createBackup:`Створити резервну копію`,restoreBackup:`Відновити резервну копію`,restoreDescription:`Замінити всі дані даними з файлу резервної копії`,downloadBackup:`Завантажити резервну копію`,uploadBackup:`Вивантажити резервну копію`,lastBackup:`Остання резервна копія`,autoBackup:`Автоматичне резервне копіювання`,backupNow:`Створити резервну копію зараз`,restoreWarning:`Увага: відновлення резервної копії перезапише всі поточні дані.`,includeArchives:`Включати архіви`,includeSettings:`Включити налаштування`,includeProfiles:`Включити профілі`,backupSuccess:`Резервну копію створено успішно`,restoreSuccess:`Резервну копію успішно відновлено`,backupFailed:`Помилка резервного копіювання`,restoreFailed:`Не вдалося відновити`,restoreNote:`Віртуальний принтер буде зупинено під час відновлення`,githubBackup:`Резервне копіювання Git`,enabled:`Увімкнено`,cloudLoginRequired:`Потрібно ввійти в Bambu Cloud. Перейдіть до Профілі → Хмарні профілі, щоб увімкнути резервне копіювання до GitHub.`,cloudLoginRequiredShort:`Потрібен вхід у хмару`,githubDescription:`Автоматично синхронізуйте свої профілі з приватним репозиторієм GitHub для резервного копіювання та історії версій.`,repoIsPrivate:`Репозиторій приватний — безпечно створювати резервні копії.`,repoIsPublicWarning:`Репозиторій є ПУБЛІЧНИМ. Резервні копії Bambuddy містять облікові дані MQTT, токени Home Assistant, токени Prometheus, вашу електронну пошту Bambu Cloud і коди доступу до принтера через K-профілі. Збереження блокується, доки ви не зробите репозиторій приватним у налаштуваннях постачальника.`,repoVisibilityUnknown:`Не вдалося визначити видимість репозиторію. Bambuddy створює резервні копії лише в підтверджено приватних репозиторіях, тому збереження буде заблоковано.`,repositoryUrl:`URL репозиторію`,repoUrlPlaceholderGitHub:`https://github.com/username/repo-name`,repoUrlPlaceholderGitea:`https://gitea.example.com/username/repo-name`,repoUrlPlaceholderForgejo:`https://forgejo.example.com/username/repo-name`,repoUrlPlaceholderGitLab:`https://gitlab.com/username/repo-name`,allowInsecureHttp:`Дозволити незахищений HTTP`,allowInsecureHttpHint:`Увімкнути для саморозміщених екземплярів у приватних мережах без TLS`,personalAccessToken:`Персональний токен доступу`,tokenSaved:`(збережено)`,enterNewToken:`Введіть новий токен для оновлення`,tokenHint:`Токен із деталізованими правами та дозволом на читання й запис вмісту`,branch:`Гілка`,provider:`Постачальник Git`,providerGitHub:`GitHub`,providerGitLab:`GitLab`,providerGitea:`Gitea`,providerForgejo:`Forgejo`,manualOnly:`Тільки вручну`,hourly:`щогодини`,daily:`Щодня`,weekly:`Щотижня`,includeInBackup:`Включити в резервну копію`,kProfiles:`K-профілі`,kProfilesDescription:`Калібрування Pressure Advance (PA) від підключених принтерів`,noPrintersConnected:`Немає підключених принтерів`,printersConnected:`{{connected}}/{{total}} підключено`,cloudProfiles:`Хмарні профілі`,cloudProfilesDescription:`Попередні налаштування філаменту, принтера та процесу від Bambu Cloud`,appSettings:`Налаштування програми`,appSettingsDescription:`Конфігурація Bambuddy (повна база даних)`,spoolInventory:`Облік котушок`,spoolInventoryDescription:`Котушки з філаментом, історія використання та відстеження витрат`,printArchives:`Архіви друку`,printArchivesDescription:`Метадані історії друку (без файлів gcode/3MF)`,lastBackupAt:`Остання резервна копія:`,noBackupsYet:`Резервних копій ще немає`,next:`Наступне виконання:`,startingBackup:`Початок резервного копіювання...`,test:`Тест`,enableBackup:`Увімкнути резервне копіювання`,testConnection:`Тестове підключення`,enterRepoUrl:`Введіть URL репозиторію`,enterRepoAndToken:`Введіть URL репозиторію та токен доступу`,repoRequired:`Потрібно вказати URL репозиторію`,tokenRequired:`Потрібен токен доступу`,githubBackupEnabled:`GitHub резервне копіювання ввімкнено`,tokenUpdated:`Токен оновлено`,settingsSaved:`Налаштування збережено`,failedToSave:`Не вдалося зберегти: {{message}}`,backupCompleteFiles:`Резервне копіювання завершено – файли {{count}} оновлено`,backupSkippedNoChanges:`Резервне копіювання пропущено – без змін`,backupFailed2:`Помилка резервного копіювання: {{message}}`,clearedLogs:`Очищено журнали {{count}}.`,failedToClearLogs:`Не вдалося очистити журнали: {{message}}`,history:`історія`,clear:`Очистити`,date:`Дата`,status:`Статус`,commit:`Коміт`,localBackup:`Локальна резервна копія`,localBackupDescription:`Створити повну резервну копію даних Bambuddy, включно з базою даних, архівами, вивантаженнями та всіма файлами.`,downloadBackupLabel:`Завантажити резервну копію`,completeBackupZip:`Повне резервне копіювання: база даних + усі файли (ZIP)`,download:`Завантажити`,preparingBackup:`Підготовка резервної копії...`,creatingArchive:`Створення резервного архіву... Для великих архівів це може зайняти деякий час.`,downloadingFile:`Завантаження файлу резервної копії...`,backupDownloaded:`Резервну копію успішно завантажено`,failedToCreateBackup:`Не вдалося створити резервну копію: {{message}}`,restore:`Відновити`,restoreReplacesAll:`Відновлення замінює всі дані.`,restoreReplacesAllDetail:`Вашу поточну базу даних і файли буде повністю замінено. Після відновлення потрібен перезапуск.`,restoreConfirmTitle:`Відновити резервну копію`,restoreConfirmMessage:`Ви впевнені, що бажаєте відновити з "{{filename}}"? Це повністю замінить вашу поточну базу даних і всі файли. Після відновлення програму потрібно буде перезапустити.`,restoreConfirmButton:`Відновити резервну копію`,uploadingFile:`Вивантаження файлу резервної копії...`,backupRestoredRestart:`Резервну копію відновлено. Перезапустіть Bambuddy.`,failedToRestore:`Не вдалося відновити резервну копію. Будь ласка, перевірте формат файлу.`,reloadNow:`Перезавантажити зараз`,creatingBackup:`Створення резервної копії`,restoringBackup:`Відновлення з резервної копії`,preparing:`Підготовка...`,processing:`Обробка...`,doNotClosePage:`Будь ласка, не закривайте цю сторінку та не виходьте з неї. Для великих резервних копій ця операція може зайняти кілька хвилин.`,restoring:`Відновлення...`,restoreComplete:`Відновлення завершено`,restoreFailed2:`Не вдалося відновити`,importSettings:`Імпорт налаштувань із файлу резервної копії`,pleaseWaitRestoring:`Зачекайте, поки ваші дані відновляться`,selectBackupFile:`Натисніть, щоб вибрати файл резервної копії (.json або .zip)`,duplicateHandling:`Як працює обробка дублікатів:`,matchPrinters:`Принтери`,matchPrintersBy:`відповідає серійному номеру`,matchSmartPlugs:`Розумні розетки`,matchSmartPlugsBy:`зіставляються за IP-адресою`,matchNotificationProviders:`Постачальники сповіщень`,matchNotificationProvidersBy:`відповідність за назвою`,matchFilaments:`філаменти`,matchFilamentsBy:`відповідність за назвою + типом + брендом`,matchArchives:`Архіви`,matchArchivesBy:`відповідає хешу вмісту (завжди пропускається)`,matchPendingUploads:`Вивантаження, що очікують`,matchPendingUploadsBy:`зіставляються за назвою файлу`,matchSettingsTemplates:`Налаштування та шаблони`,matchSettingsTemplatesBy:`завжди перезаписується`,replaceExisting:`Замінити існуючі дані`,keepExisting:`Зберегти наявні дані`,overwriteDescription:`Замінити наявні елементи даними з резервної копії`,keepDescription:`Відновлюйте лише елементи, яких ще не існує`,overwriteCaution:`Увага:`,overwriteWarning:`Перезапис замінить ваші поточні конфігурації даними з резервної копії. Коди доступу до принтера ніколи не перезаписуються з міркувань безпеки.`,cancel:`Скасувати`,processingBackup:`Обробка файлу резервної копії...`,itemsRestored:`Елементів відновлено`,itemsSkipped:`Пропущено елементів`,restored:`Відновлено`,skippedAlreadyExist:`Пропущено (вже існує)`,filesCategory:`Файли (3MF, мініатюри тощо)`,andMore:`…і ще {{count}}`,newApiKeysGenerated:`Створено нові API ключі`,keysShownOnce:`Ці ключі відображаються лише один раз. Скопіюйте їх зараз!`,copy:`Копіювати`,noDataFound:`У файлі резервної копії не знайдено даних для відновлення.`,close:`Закрити`,scheduledBackup:`Резервне копіювання за розкладом`,scheduledBackupDescription:`Автоматично створюйте резервні знімки за розкладом. Вихідний каталог можна підключити до NAS або зовнішнього накопичувача.`,frequency:`Частота`,backupTime:`час`,retention:`Термін зберігання`,retentionDescription:`Кількість резервних копій, які потрібно зберегти`,outputPath:`Вихідний шлях`,outputPathPlaceholder:`За замовчуванням: {{path}}`,outputPathDescription:`Залиште порожнім для розташування за умовчанням`,runNow:`Запустити зараз`,backupFiles:`Файли резервних копій`,noScheduledBackups:`Резервних копій ще немає`,deleteBackup:`Видалити`,deleteBackupConfirm:`Видалити цей файл резервної копії?`,backupRunning:`Виконується резервне копіювання...`,scheduledBackupComplete:`Резервне копіювання успішно завершено`,scheduledBackupFailed:`Помилка резервного копіювання`,nextBackup:`Наступна резервна копія`,backupSize:`Розмір`,localTimeHint:`Місцевий час ({{tz}})`,defaultPathLabel:`За замовчуванням:`,pathCheck:{title:`Bambuddy не може писати в цей каталог`,howToFix:`Як виправити:`,sandboxed:`Служба Bambuddy не може писати в {{path}}. Його модуль systemd працює з ProtectSystem=strict, що робить кожен каталог за межами каталогів встановлення, даних і журналу доступними лише для читання для служби — навіть той, у який ви можете писати з власної оболонки.`,read_only:`{{path}} знаходиться у файловій системі лише для читання.`,permission_denied:`Bambuddy не має права записувати в {{path}}. Перевірте власника каталогу та дозволи.`,no_space:`У файловій системі, де розташовано {{path}}, закінчилося місце.`,not_a_directory:`{{path}} існує, але не є каталогом.`,missing:`{{path}} не існує і не може бути створений.`,error:`Bambuddy не може писати в {{path}}.`,ephemeralTitle:`Ці резервні копії не збережуться після перезапуску контейнера`,container_ephemeral:`{{path}} розташовано всередині контейнера Bambuddy, а не на хості. Резервні копії в цьому каталозі буде втрачено після повторного створення контейнера. Змонтуйте каталог із хоста:`},categories:{settings:`Налаштування`,notification_providers:`Постачальники сповіщень`,notification_templates:`Шаблони сповіщень`,smart_plugs:`Розумні розетки`,printers:`Принтери`,filaments:`філаменти`,maintenance_types:`Види технічного обслуговування`,archives:`Архіви`,projects:`Проєкти`,pending_uploads:`Вивантаження, що очікують`,external_links:`Зовнішні посилання`,api_keys:`Ключі API`}},tags:{title:`Теги`,addTag:`Додати тег`,editTag:`Редагувати тег`,deleteTag:`Видалити тег`,tagName:`Назва тегу`,tagColor:`Колір мітки`,noTags:`Без тегів`,deleteConfirm:`Ви впевнені, що бажаєте видалити цей тег?`,manageTags:`Керування тегами`},uploadModal:{title:`Вивантажити файли 3MF`,dragDrop:`Перетягніть файли .3mf сюди`,or:`або`,browseFiles:`Огляд файлів`,extractionInfo:`Модель принтера буде автоматично витягнуто з метаданих файлу 3MF.`,uploaded:`вивантажено`,failed:`не вдалося`,uploading:`Вивантаження...`,upload:`Вивантажити`,uploadFailed:`Не вдалося вивантажити`},editArchive:{title:`Редагувати архів`,name:`Назва`,namePlaceholder:`Друкування імені`,printer:`Принтер`,noPrinter:`Немає принтера`,project:`Проєкт`,noProject:`Жодного проєкту`,itemsPrinted:`Надруковано об’єктів`,itemsPrintedHelp:`Кількість елементів, виготовлених у цьому завданні друку`,notes:`Примітки`,notesPlaceholder:`Додайте примітки щодо цього друку...`,externalLink:`Зовнішнє посилання`,externalLinkPlaceholder:`https://printables.com/model/...`,externalLinkHelp:`Посилання на Printables, Thingiverse або інше джерело`,tags:`Теги`,tagsPlaceholder:`Додати теги...`,addMoreTags:`Додати більше тегів...`,matchingTags:`Відповідає "{{query}}"`,existingTags:`Існуючі теги`,clickToAdd:`(натисніть, щоб додати)`,status:`Статус`,failureReason:`Причина невдачі`,selectReason:`Виберіть причину...`,photos:`Фотографії надрукованих результатів`,photosHelp:`Натисніть +, щоб додати фотографії результату друку`,printResult:`Роздрукувати результат`,saving:`Збереження...`,failureReasons:{adhesionFailure:`Порушення адгезії`,spaghettiDetached:`Спагетті / Відр`,layerShift:`Зсув шару`,cloggedNozzle:`Засмічене сопло`,filamentRunout:`Биття філаменту`,warping:`Викривлення`,stringing:`Нанизування`,underExtrusion:`Підвидавлювання`,powerFailure:`Збій живлення`,userCancelled:`Користувач скасовано`,other:`інше`},statuses:{completed:`Виконано`,failed:`Не вдалося`,aborted:`Скасовано`,printing:`Друк`}},kProfiles:{title:`K-профілі`,noPrintersConfigured:`Принтери не налаштовані`,addPrinterInSettings:`Додайте принтер у налаштуваннях, щоб керувати K-профілями`,noActivePrinters:`Немає активних принтерів`,enablePrinterConnection:`Увімкніть підключення до принтера, щоб переглянути його K-профілі`,loadingProfiles:`Завантаження K-профілів...`,printerOffline:`Принтер не в мережі`,printerOfflineDesc:`Вибраний принтер не підключено. Увімкніть його, щоб переглянути K-профілі.`,noMatchingProfiles:`Немає відповідних профілів`,noMatchingProfilesDesc:`Немає профілів, які відповідають вашим критеріям пошуку`,noKProfiles:`Без K-профілів`,noKProfilesDesc:`Не знайдено профілів підвищення тиску для сопла {{diameter}} мм`,createFirstProfile:`Створити перший профіль`,printer:`Принтер`,nozzle:`Сопло`,refresh:`Оновити`,addProfile:`Додати профіль`,export:`Експорт`,import:`Імпорт`,select:`Вибрати`,selectAll:`Вибрати усі`,delete:`Видалити`,searchPlaceholder:`Пошук за назвою або філаментом...`,allExtruders:`Всі екструдери`,leftOnly:`Тільки зліва`,rightOnly:`Тільки право`,allFlow:`Весь потік`,hfOnly:`Тільки HF`,sOnly:`Тільки S`,sortName:`Сортувати за назвою`,sortKValue:`Сортувати: К-значення`,sortFilament:`Сорт: філамент`,leftExtruder:`Лівий екструдер`,rightExtruder:`Правий екструдер`,modal:{addTitle:`Додати K-профіль`,editTitle:`Редагувати K-профіль`,profileName:`Назва профілю`,profileNamePlaceholder:`Мій профіль PLA.`,kValue:`К-значення`,kValuePlaceholder:`0,020`,kValueHelp:`Типовий діапазон: 0,01–0,06 для PLA, 0,02–0,10 для PETG`,filament:`Філамент`,selectFilament:`Виберіть філамент...`,noFilamentsHelp:`Філаменти не знайдено. Спочатку створіть K-профіль у Bambu Studio.`,flowType:`Тип потоку`,highFlow:`Сопло з високим потоком`,standard:`Стандартний`,nozzleSize:`Розмір сопла`,extruder:`Екструдер`,extruders:`Екструдери`,left:`Ліворуч`,right:`правильно`,notes:`Примітки (зберігаються локально)`,notesPlaceholder:`Додайте примітки щодо цього профілю...`,notesHelp:`Примітки зберігаються в Bambuddy, а не на принтері`,syncing:`Синхронізація з принтером...`,savingExtruder:`Збереження в екструдер {{current}}/{{total}}...`,pleaseWait:`Будь ласка, зачекайте`},deleteConfirm:{title:`Видалити профіль`,cannotUndo:`Це неможливо скасувати`,message:`Ви впевнені, що хочете видалити "{{name}}" із принтера?`},bulkDelete:{title:`Видалити профілі`,cannotUndo:`Це неможливо скасувати`,message:`Ви впевнені, що бажаєте видалити {{count}} вибрані профілі з принтера?`},toast:{profileSaved:`K-профіль збережено`,profilesSaved:`K-профіль збережено в екструдери {{count}}.`,selectAtLeastOneExtruder:`Виберіть принаймні один екструдер`,profileDeleted:`K-профіль видалено`,profilesDeleted:`Видалені профілі {{count}}.`,exportedProfiles:`Експортовані профілі {{count}}.`,importedProfiles:`Імпортовано {{count}} з {{total}} профілів`,noProfilesToExport:`Немає профілів для експорту`,invalidFileFormat:`Недійсний формат файлу`,failedToParseImport:`Не вдалося проаналізувати імпортований файл`,failedToSaveBatch:`Не вдалося зберегти K-профілі`,noteSaved:`Нотатку збережено`,failedToSaveNote:`Не вдалося зберегти нотатку`},permission:{noRead:`Ви не маєте дозволу оновлювати профілі`,noCreate:`Ви не маєте дозволу додавати профілі`,noUpdate:`Ви не маєте дозволу на оновлення K-профілів`,noDelete:`Ви не маєте дозволу на видалення K-профілів`,noExport:`Ви не маєте дозволу на експорт профілів`,noImport:`Ви не маєте дозволу на імпорт профілів`}},virtualPrinter:{title:`Віртуальний принтер`,running:`Працює`,stopped:`Зупинено`,description:{default:`Увімкніть віртуальний принтер, який відображатиметься в Bambu Studio та OrcaSlicer. Надіслані на нього файли буде одразу заархівовано без друку.`,proxy:`Увімкніть проксі, який передає трафік слайсера на реальний принтер і дає змогу друкувати віддалено через будь-яку мережу.`},enable:{title:`Увімкнути віртуальний принтер`,visibleInSlicer:`Відображається як "Bambuddy" у виявленні слайсера`,proxyingTo:`Проксування до {{name}}`,notActive:`Неактивний`},model:{title:`Модель принтера`,description:`Виберіть модель принтера для емуляції.`,restartWarning:`Зміна моделі перезапустить віртуальний принтер`},accessCode:{title:`Код доступу`,isSet:`Код доступу встановлено`,notSet:`Немає встановленого коду доступу – потрібно для ввімкнення`,placeholder:`Введіть 8-символьний код`,placeholderChange:`Введіть новий код для зміни`,hint:`Має бути рівно 8 символів. Використовується слайсерами для автентифікації.`,charCount:`({{count}}/8)`,inheritedFromTarget:`Успадковано від цільового принтера`,derivedFromTargetHint:`Використовує код доступу цільового принтера. Міст пересилає автентифікацію слайсера на справжній принтер, тому коди мають збігатися — відредагуйте код доступу принтера, щоб змінити це значення.`,reveal:`Показати код доступу`,hide:`Приховати код доступу`},targetPrinter:{title:`Цільовий принтер`,configured:`Ціль проксі налаштовано`,notConfigured:`Цільовий принтер не вибрано – потрібен для режиму проксі`,placeholder:`Виберіть принтер...`,hint:`Виберіть принтер, на який проксі передаватиме трафік слайсера. Принтер має працювати в режимі LAN.`,noPrinters:`Принтери не налаштовані. Щоб використовувати режим проксі, спочатку додайте принтер.`},remoteInterface:{title:`Перевизначення мережевого інтерфейсу`,configured:`Перевизначення інтерфейсу активне`,optional:`Необов’язково – використовуйте, якщо автоматичне визначення IP є неправильним (наприклад, кілька мережевих карток, Docker, VPN)`,placeholder:`Автоматичне визначення (за замовчуванням)...`,hint:`Заміна адреси IP, яка оголошується через SSDP і використовується в сертифікаті TLS. Корисно, коли Bambuddy має кілька мережевих інтерфейсів.`},mode:{title:`Режим`,archive:`Архів`,archiveDesc:`Одразу архівувати файли`,review:`Перевірка`,reviewDesc:`Перевіряти перед архівуванням`,queue:`Черга`,queueDesc:`Архівувати та додати в чергу`,proxy:`Проксі`,proxyDesc:`Пересилати на фізичний принтер`},autoDispatch:{title:`Автоматичний запуск`,description:`Автоматично запускати завдання після додавання до черги. Якщо вимкнено, завдання чекатимуть ручного запуску.`},queueForceColorMatch:{title:`Примусовий збіг кольорів`,description:`Не надсилати завдання на принтер без філаменту точного типу й кольору. Типово вимкнено: без цього черга зіставляє лише модель і може вибрати принтер із філаментом іншого кольору.`},gcodeInjection:{title:`Вставлення G-коду`,description:`Застосовувати до завдань цього віртуального принтера фрагменти G-коду, налаштовані для кожної моделі. Типово вимкнено.`},tailscaleDisabled:{title:`Інтеграція з Tailscale`,description:`Увімкніть, щоб позначити цей віртуальний принтер як доступний через Tailscale. Буде показано Tailscale-адресу хоста, яку потрібно ввести в слайсері. Імпорт сертифіката ЦС залишається обов’язковим; цей перемикач не впливає на сертифікати.`},setupRequired:{title:`Потрібне налаштування`,description:`Для роботи функції віртуального принтера потрібна додаткова конфігурація системи. Це включає переадресацію портів, правила брандмауера та параметри, що стосуються платформи.`,readGuide:`Перед увімкненням прочитайте посібник із налаштування`},archiveNameSource:{title:`Джерело назви архіву`,description:`Виберіть, як називати нові архіви, що надходять через віртуальний принтер. «Метадані» використовують вбудоване слайсером поле Title з 3MF (типовий варіант). «Назва файлу» використовує назву, яку Bambu Studio надіслала через FTP. За наявності поля Title Bambu Studio замінює ним назву, введену у вікні «Надіслати на принтер», тому обидва режими часто дають однаковий результат.`,metadata:`Метадані`,filename:`Назва файлу`},caCert:{title:`Сертифікат слайсера`,description:`Віртуальні принтери використовують сертифікат TLS, підписаний ЦС Bambuddy. Імпортуйте цей сертифікат ЦС у довірче сховище вашого слайсера, щоб він прийняв з’єднання — не потрібно копіювати його з командного рядка.`,copy:`Копіювати`,copied:`Скопійовано`,download:`Завантажити`,fingerprint:`SHA-256`},howItWorks:{title:`Як це працює`,step1:`У тій самій локальній мережі віртуальні принтери автоматично з’являються в слайсері (Bambu Studio або OrcaSlicer). З інших мереж додайте їх вручну за IP-адресою та кодом доступу.`,step2:`У режимах архівування, перевірки та черги натисніть «Надіслати» у слайсері, щоб вивантажити файли 3MF до Bambuddy. Слайсер покаже повідомлення про успішний друк, але файл буде лише збережено, а не надруковано.`,step3:`У режимі проксі-сервера віртуальний принтер передає весь трафік на справжній принтер — друк починається негайно, ніби підключений безпосередньо.`},status:{title:`Деталі статусу`,printerName:`Назва принтера`,model:`Модель`,serialNumber:`Серійний номер`,mode:`Режим`,pendingFiles:`Файли, що очікують на розгляд`,targetPrinter:`Цільовий принтер`,ftpPort:`Порт FTP`,mqttPort:`Порт MQTT`,ftpConnections:`Підключення FTP`,mqttConnections:`Підключення MQTT`},toast:{updated:`Налаштування віртуального принтера оновлено`,failedToUpdate:`Не вдалося оновити налаштування`,copyFailed:`Не вдалося скопіювати — спробуйте вибрати текст вручну`,accessCodeRequired:`Спочатку встановіть код доступу`,targetPrinterRequired:`Спочатку виберіть цільовий принтер`,bindIpRequired:`Спочатку встановіть прив’язку IP.`,accessCodeEmpty:`Код доступу не може бути порожнім`,accessCodeLength:`Код доступу має містити рівно 8 символів`,targetCodeChangedRebind:`Код доступу тепер відповідає новому цільовому принтеру. Повторно додайте цей пристрій у свій слайсер, щоб отримати новий код.`,created:`Створено віртуальний принтер`,failedToCreate:`Не вдалося створити віртуальний принтер`,deleted:`Віртуальний принтер видалено`,failedToDelete:`Не вдалося видалити віртуальний принтер`},list:{title:`Віртуальні принтери`,add:`додати`,addFirst:`Додати віртуальний принтер`,empty:`Віртуальні принтери не налаштовані. Додайте один, щоб почати.`},bindIp:{title:`Інтерфейс прив’язки`,placeholder:`Виберіть інтерфейс...`,hint:`Мережевий інтерфейс, до якого прив’язуватиметься цей віртуальний принтер. Для кожного принтера він має бути унікальним.`},proxy:{accessCodeHint:`У режимі проксі використовуйте код доступу цільового принтера в слайсері. З’єднання прозоро пересилається на справжній принтер.`},addDialog:{title:`Додати віртуальний принтер`,name:`Назва`,hint:`Ви можете налаштувати код доступу, цільовий принтер та інші параметри після створення.`,create:`Створити`},deleteConfirm:{title:`Видалити віртуальний принтер`,message:`Ви впевнені, що хочете видалити «{{name}}»? Усі служби цього принтера буде зупинено.`}},modelViewer:{openInSlicer:`Відкрити у слайсері`,tabs:{model:`3D-модель`,gcode:`Попередній перегляд G-коду`},notAvailable:`недоступно`,notSliced:`не нарізано`,plates:`Пластини`,allPlates:`Усі пластини`,plateNumber:`Пластина {{number}}`,plateCount:`Пластин: {{count}}`,plateCount_other:`Пластин: {{count}}`,objectCount:`Об’єктів: {{count}}`,objectCount_other:`Об’єктів: {{count}}`,filamentCount:`Філаментів: {{count}}`,filamentCount_other:`Філаментів: {{count}}`,eta:`ETA {{minutes}} хв`,noPreview:`Попередній перегляд цього файлу недоступний`,pagination:{pageOf:`Сторінка {{current}} з {{total}}`,prev:`Назад`,next:`Далі`},errors:{failedToLoad:`Не вдалося завантажити файл`,noMeshes:`У файлі 3MF не знайдено жодної сітки`,unsupportedFormat:`Непідтримуваний формат файлу`}},maintenanceDescriptions:{lubricateCarbonRods:`Нанесіть мастило на карбонові стрижні для плавного руху`,lubricateRails:`Нанесіть мастило на лінійні рейки для плавного руху`,cleanNozzle:`Очистіть нагрівач і сопло, щоб запобігти засміченню`,checkBelts:`Перевірте натяг ременя для точного друку`,cleanBuildPlate:`Очистіть будівельну пластину для кращого зчеплення`,checkExtruder:`Перевірте шестерні екструдера на знос`,checkCooling:`Переконайтеся, що вентилятори охолодження працюють належним чином`,generalInspection:`Загальний огляд принтера`,cleanCarbonRods:`Очистіть карбонові стрижні, щоб зменшити тертя`,lubricateSteelRods:`Нанесіть мастило на сталеві стрижні для плавного руху`,cleanSteelRods:`Очистіть сталеві стрижні, щоб зменшити тертя`,cleanLinearRails:`Протріть лінійні рейки, щоб видалити пил і сміття`,checkPtfeTube:`Перевірте трубку PTFE на знос або пошкодження`,replaceHepaFilter:`Замініть фільтр HEPA для забезпечення якості повітря`,replaceCarbonFilter:`Замініть фільтр з активованим вугіллям`,lubricateLeftNozzleRail:`Змастіть ліву рейку сопла (серія H2)`},smartPlugs:{offline:`Не в мережі`,admin:`Адміністрування`,openPlugAdminPage:`Відкрити сторінку адміністратора розетки`,deleteSmartPlug:`Видалити розумну розетку`,turnOnSmartPlug:`Увімкнути розумну розетку`,turnOffSmartPlug:`Вимкнути розумну розетку`,turnOn:`Увімкнути`,turnOff:`Вимкнути`,addSmartPlug:{scanningNetwork:`Сканування мережі...`,chooseEntity:`Виберіть сутність…`,connectionFailed:`Помилка підключення`,searchEntities:`Пошук сутностей...`,searchPowerSensors:`Пошук датчиків потужності...`,searchEnergySensors:`Пошук датчиків енергії...`,placeholders:{plugName:`Розетка у вітальні`,mqttStateOnValue:`ON, true, 1`,mqttSameAsPower:`Та сама тема, що й для потужності, або інша`}},linkedTo:`Пов’язано з:`,monitorOnly:`Лише моніторинг`,alerts:`Оповіщення`,scheduleOn:`Увімкнення: {{time}}`,scheduleOff:`Вимкнення: {{time}}`,on:`Увімкнено`,off:`Вимкнено`,power:`Потужність`,kwhToday:`кВт·год сьогодні`,settings:`Налаштування`,automationSettings:`Налаштування автоматизації`,showInSwitchbar:`Показати на панелі перемикачів`,quickAccessSidebar:`Швидкий доступ із бічної панелі`,enabled:`Увімкнено`,enableAutomation:`Увімкнути автоматизацію для цієї розетки`,autoOn:`Автоматичне ввімкнення`,autoOnDescription:`Увімкнути на початку друку`,autoOff:`Автоматичне вимкнення`,autoOffDescription:`Вимкнути після завершення друку (одноразово)`,autoOffPersistent:`Залишити ввімкненим`,autoOffPersistentDescription:`Залишати ввімкненою між друками, а не лише після одного завдання`,controlsPrinterPower:`Живить принтер`,controlsPrinterPowerDescription:`Вимкніть цей параметр, якщо розетка живить лише аксесуар — наприклад, вентилятор фільтра або освітлення. Інакше вимкнення розетки позначатиме принтер як недоступний.`,autoOffAfterDrying:`Автоматичне вимкнення після сушіння`,autoOffAfterDryingDescription:`Вимкнути після завершення сушіння AMS`,delayAfterDryingMinutes:`Затримка після сушіння (хв)`,turnOffDelayMode:`Режим затримки вимкнення`,time:`Час`,temp:`Температура`,delayMinutes:`Затримка (хвилин)`,tempThreshold:`Температурний поріг (°C)`,tempThresholdDescription:`Вимикається, коли сопло охолоне нижче цієї температури`,edit:`Редагувати`,deleteConfirm:`Ви впевнені, що хочете видалити "{{name}}"? Це неможливо скасувати.`,turnOnConfirm:`Ви впевнені, що бажаєте ввімкнути "{{name}}"?`,turnOffConfirm:`Ви впевнені, що бажаєте вимкнути "{{name}}"? Це призведе до відключення живлення підключеного пристрою.`,failedToTurn:`Не вдалося змінити стан «{{name}}» ({{action}})`,unknown:`Невідомий`,addTitle:`Додати розумну розетку`,editTitle:`Редагувати розумну розетку`,stopScanning:`Зупинити сканування`,discoverTasmota:`Виявити пристрої Tasmota`,foundDevices:`Знайдено {{count}} пристроїв - натисніть, щоб вибрати:`,noDevicesFound:`У вашій мережі не знайдено пристроїв Tasmota.`,haNotConfigured:`Home Assistant не налаштовано. Налаштуйте його в`,haSettingsPath:`Налаштування → Мережа → Home Assistant`,selectEntity:`Вибрати сутність *`,ipAddress:`IP Адреса *`,nameLabel:`Назва *`,username:`Ім’я користувача`,password:`Пароль`,authHint:`Залиште поле пустим, якщо ваш пристрій Tasmota не вимагає автентифікації`,linkToPrinter:`Прив’язати до принтера`,noPrinter:`Без принтера (лише ручне керування)`,linkingDescription:`Прив’язування дає змогу автоматично вмикати й вимикати розетку на початку та після завершення друку`,powerAlerts:`Сповіщення про живлення`,alertAbove:`Сповіщати, якщо вище (Вт)`,alertBelow:`Сповіщати, якщо нижче (Вт)`,alertDescription:`Сповіщати, коли споживана потужність перетинає ці пороги. Залиште відповідне поле порожнім, щоб вимкнути сповіщення для цього напрямку.`,dailySchedule:`Щоденний розклад`,turnOnAt:`Увімкнути о`,turnOffAt:`Вимкнути о`,scheduleDescription:`Щодня автоматично вмикати й вимикати розетку в зазначений час. Залиште поле порожнім, щоб пропустити відповідну дію.`,showOnPrinterCard:`Показати на картці принтера`,displayOnPrinterCard:`Показувати кнопку на картці принтера`,connectedResult:`Підключено!`,deviceLabel:`Пристрій: {{name}} - `,stateLabel:`Стан: {{state}}`,test:`Тест`,delete:`Видалити`,save:`Зберегти`,add:`Додати`,cancel:`Скасувати`,failedToStartScan:`Не вдалося почати сканування`,nameRequired:`Необхідно вказати ім’я`,entityRequired:`Сутність необхідна для розеток Home Assistant.`,mqttTopicRequired:`Для моніторингу потужності, енергії або стану потрібно налаштувати принаймні одну тему MQTT`,loadingEntities:`Завантаження об’єктів...`,loading:`Завантаження...`,failedToLoadEntities:`Не вдалося завантажити сутності: {{error}}`,noEntitiesMatching:`Не знайдено об’єктів, що відповідають "{{search}}"`,noEntitiesAvailable:`Немає доступних сутностей`,searchingEntities:`Пошук у всіх об’єктах ({{count}} знайдено)`,showingEntities:`Показано сутності switch, light та input_boolean (доступно: {{count}})`,energyMonitoringOptional:`Моніторинг енергії (необов’язково)`,energyMonitoringHint:`Знайдіть і виберіть датчики, що надають дані про потужність або споживання енергії.`,powerSensorW:`Датчик потужності (Вт)`,energyTodayKwh:`Споживання за сьогодні (кВт·год)`,totalEnergyKwh:`Загальне споживання енергії (кВт·год)`,noMatchingSensors:`Немає відповідних датчиків`,none:`Жодного`,mqttNotConfigured:`MQTT-брокер не налаштований. Укажіть адресу брокера в розділі`,mqttSettingsPath:`Налаштування → Мережа → Публікація MQTT`,mqttNotConfiguredSuffix:`(вмикати публікацію не потрібно — достатньо вказати параметри брокера).`,mqttMonitorOnlyDescription:`MQTT-розетки отримують дані про потужність і споживання енергії через підписку MQTT. Керування ввімкненням і вимкненням недоступне — використовуйте MQTT-брокер або систему домашньої автоматизації.`,powerMonitoring:`Моніторинг потужності`,energyMonitoring:`Моніторинг споживання енергії`,stateMonitoring:`Моніторинг стану`,optional:`необов’язково`,topic:`Тема`,jsonPath:`Шлях JSON`,multiplier:`Множник`,onValue:`Значення «увімкнено»`,mqttPowerHint:`Шлях JSON витягує значення з корисного навантаження JSON (наприклад, "power_l1"). Залиште поле порожнім, якщо тема публікує безпосередньо числові значення.
Для перетворення mW→W використовуйте множник 0.001, а для kW→W — 1000.`,mqttEnergyHint:`Шлях JSON витягує значення з корисного навантаження JSON. Залиште поле порожнім для безпосередньо переданих значень.
Для перетворення Wh→kWh використовуйте множник 0.001, а для MWh→kWh — 1000.`,mqttStateHint:`Шлях JSON витягує значення з корисного навантаження JSON. Залиште поле порожнім для безпосередньо переданих значень.
Значення «увімкнено»: точний рядок, що означає стан «увімкнено». Залиште поле порожнім для автоматичного визначення (ON, true, 1).`,restControl:`Керування`,restOnUrl:`Увімкнути URL`,restOffUrl:`Вимкнути URL`,restOnBody:`Тіло запиту ввімкнення`,restOffBody:`Тіло запиту вимкнення`,restMethod:`Метод HTTP`,restHeaders:`Спеціальні заголовки (JSON)`,restStatusUrl:`URL стану`,restStatusPath:`Шлях JSON до стану`,restStatusOnValue:`Значення «увімкнено»`,restPowerUrl:`URL даних про потужність`,restPowerPath:`Шлях JSON до потужності`,restPowerMultiplier:`Множник потужності`,restEnergyUrl:`URL даних про енергію`,restEnergyPath:`Шлях JSON до споживання за сьогодні`,restEnergyTotalPath:`Шлях JSON до загального споживання`,restEnergyTotalMultiplier:`Множник загального споживання`,restEnergyTotalPathHint:`наприклад, aenergy.total`,restEnergyTotalHint:`Багато розеток, зокрема всі моделі Shelly, повідомляють лише загальний лічильник споживання, який ніколи не скидається. Його слід указувати саме тут, а не в полі вище: якщо трактувати це значення як споживання за сьогодні, воно не скинеться опівночі, а показники «Учора» та «Усього» залишатимуться порожніми. Bambuddy сам обчислює показники за сьогодні й учора на основі цього лічильника; для їх появи потрібні один-два дні даних. Shelly передає значення у ват-годинах, тому використовуйте множник 0.001.`,restEnergyMultiplier:`Множник енергії`,restUrlRequired:`Для REST-розетки потрібно вказати принаймні один URL — для ввімкнення або вимкнення.`,restHeadersHint:`наприклад, {"Authorization": "Bearer your-token"}`,restBodyHint:`напр. ON, {"state": "on"}`,restStatusHint:`URL для опитування поточного стану`,restPathHint:`наприклад, state або data.power.status`,restPowerUrlHint:`Окремий URL для даних про потужність; якщо поле порожнє, використовується URL стану`,restEnergyUrlHint:`Окремий URL для даних про енергію; якщо поле порожнє, використовується URL стану`,restEnergyHint:`Для кожного значення можна використовувати окремий URL або URL стану як резервний. Для перетворення одиниць використовуйте множники, наприклад 0.001 для перетворення Wh у kWh.`,testConnection:`Тестове підключення`,connectionSuccess:`Підключення успішне`,noSwitchesInSwitchbar:`На панелі перемикачів немає розеток`,enableSwitchbarHint:`Увімкніть «Показувати на панелі перемикачів» у розділі «Налаштування → Розумні розетки».`},notifications:{providerTypes:{callmebot:`CallMeBot/WhatsApp`,ntfy:`ntfy`,pushover:`Pushover`,telegram:`Telegram`,email:`Електронна пошта`,discord:`Discord`,webhook:`Webhook`,homeassistant:`Home Assistant`,bark:`Bark`},providerDescriptions:{email:`Сповіщення електронною поштою SMTP`,telegram:`Сповіщення через бота Telegram.`,discord:`Надіслати на канал Discord через webhook`,ntfy:`Безкоштовні push-сповіщення з можливістю самостійного розгортання`,pushover:`Прості та надійні push-повідомлення`,callmebot:`Безкоштовні сповіщення WhatsApp через CallMeBot`,webhook:`Універсальний HTTP POST-запит на будь-який URL`,homeassistant:`Постійні сповіщення на інформаційній панелі Home Assistant.`,bark:`Push-сповіщення iOS через Bark із можливістю самостійного розгортання`},lastSuccess:`Останнє успішне надсилання: {{date}}`,error:`Помилка`,printer:`Принтер:`,allPrinters:`Всі принтери`,sendTestNotification:`Надіслати тестове сповіщення`,eventSettings:`Налаштування події`,enabled:`Увімкнено`,sendFromProvider:`Надсилати сповіщення від цього постачальника`,printEvents:`Події друку`,printerStatus:`Стан принтера`,amsAlarms:`Попередження AMS`,amsHtAlarms:`Попередження AMS-HT`,printQueue:`Черга друку`,start:`Початок`,plateCheck:`Перевірка пластини`,complete:`Завершено`,failed:`Помилка`,stopped:`Зупинено`,progress:`Прогрес`,offline:`Не в мережі`,lowFilament:`Закінчується філамент`,maintenance:`Технічне обслуговування`,amsHumidity:`AMS Вологість`,amsTemp:`AMS Темп`,amsHtHumidity:`AMS-HT Вологість`,amsHtTemp:`Температура AMS-HT`,bedCooled:`Стіл охолов`,firstLayer:`Перший шар`,quiet:`Тихо`,digest:`Дайджест {{time}}`,printStarted:`Друк розпочато`,plateNotEmpty:`Друкарська пластина не порожня`,plateNotEmptyDescription:`Перед друком виявлено об’єкти`,plateClearRequired:`Потрібно очистити пластину`,plateClearRequiredDescription:`Друк завершено, черга очікує підтвердження очищення пластини`,plateClear:`Очищення пластини`,printCompleted:`Друк завершено`,bedCooledLabel:`Стіл охолов`,bedCooledDescription:`Після друку стіл охолов нижче заданого порога`,firstLayerCompleteLabel:`Перший шар завершено`,firstLayerCompleteDescription:`Сповістити зі знімком після завершення першого шару`,missingSpoolAssignmentLabel:`Відсутнє призначення котушки`,missingSpoolAssignmentDescription:`Сповіщати, коли починається друк і для необхідних лотків не призначено котушку`,printFailed:`Помилка друку`,printStopped:`Друк зупинено`,progressMilestones:`Віхи прогресу`,progressMilestonesDescription:`Сповіщати на 25%, 50%, 75%`,printerOffline:`Принтер не в мережі`,printerError:`Помилка принтера`,aiFailureDetection:`Виявлення помилок за допомогою ШІ`,aiFailureDetectionDescription:`Сповіщати, коли ШІ Obico виявляє можливу помилку друку`,lowFilamentLabel:`Закінчується філамент`,maintenanceDue:`Настав час технічного обслуговування`,maintenanceDueDescription:`Повідомити, коли потрібне обслуговування`,amsHumidityHigh:`AMS Висока вологість`,amsHumidityHighDescription:`Звичайна AMS вологість перевищує порогове значення`,amsTemperatureHigh:`AMS Висока температура`,amsTemperatureHighDescription:`Звичайна AMS температура перевищує порогове значення`,amsHtHumidityHigh:`AMS-HT Висока вологість`,amsHtHumidityHighDescription:`AMS-HT вологість перевищує порогове значення`,amsHtTemperatureHigh:`Висока температура AMS-HT`,amsHtTemperatureHighDescription:`Температура AMS-HT перевищує порогове значення`,inventoryAlerts:`Сповіщення про запаси`,stockReorderAlert:`Сповіщення про необхідність поповнення`,stockReorderAlertDescription:`Запас SKU досяг точки повторного замовлення`,stockBreakAlert:`Сповіщення про ризик вичерпання запасу`,stockBreakAlertDescription:`Запас закінчиться до того, як надійде поповнення`,jobAdded:`Завдання додано`,jobAddedDescription:`Завдання додано до черги`,jobAssigned:`Завдання призначено`,jobAssignedDescription:`Завдання на основі моделі, призначене принтеру`,jobStarted:`Завдання розпочато`,jobStartedDescription:`Розпочато друк завдання черги`,jobWaiting:`Завдання очікує`,jobWaitingDescription:`Завдання очікує на філамент або принтер`,jobSkipped:`Завдання пропущено`,jobSkippedDescription:`Завдання пропущено (попереднє не вдалося)`,jobFailed:`Помилка завдання`,jobFailedDescription:`Не вдалося розпочати завдання`,queueComplete:`Черга завершена`,queueCompleteDescription:`Усі завдання черги завершено`,quietHours:`Тихі години`,noNotificationsDuring:`Жодних сповіщень у ці години`,editProviderToChangeQuietHours:`Змініть постачальника, щоб змінити години тиші`,dailyDigest:`Щоденний дайджест`,batchNotifications:`Групуйте сповіщення в єдиний щоденний підсумок`,sendAt:`Надсилати о {{time}}`,editProviderToChangeDigestTime:`Відредагуйте постачальника, щоб змінити час дайджесту`,edit:`Редагувати`,deleteProvider:`Видалити постачальника сповіщень`,deleteConfirm:`Видалити «{{name}}»? Цю дію неможливо скасувати.`,delete:`Видалити`,addTitle:`Додати постачальника сповіщень`,editTitle:`Редагувати постачальника сповіщень`,nameLabel:`Назва *`,namePlaceholder:`Мої сповіщення`,providerTypeLabel:`Тип постачальника *`,configuration:`Конфігурація`,testConfiguration:`Перевірити конфігурацію`,printerFilter:`Фільтр принтера`,onlyFromPrinter:`Надсилати лише сповіщення про події з цього принтера`,quietHoursDnd:`Тихі години (не турбувати)`,quietStart:`Початок`,quietEnd:`Кінець`,dailyDigestLabel:`Щоденний дайджест`,sendDigestAt:`Надсилати дайджест о`,digestCollected:`Події буде зібрано й надіслано в цей час одним зведенням`,notificationEvents:`Події сповіщень`,progressPercent:`(25%, 50%, 75%)`,bedCooledAfterPrint:`(після завершення друку)`,eventPriority:{sectionTitle:`Пріоритет ntfy`,helpNtfy:`Виберіть пріоритет для кожної ввімкненої події. ntfy використовує їх для ескалації сповіщень (звук, видимість, поведінка push). Для рівнів, які тут не встановлено, використовується сервер ntfy за замовчуванням.`,min:`Мін`,low:`Низький`,default:`За замовчуванням`,high:`Високий`,urgent:`Терміново`},cancel:`Скасувати`,save:`зберегти`,add:`додати`,nameRequired:`Необхідно вказати ім’я`,fieldRequired:`{{field}} — обов’язкове поле.`,haDataInvalid:`Поле «Дані» має містити дійсний об’єкт JSON, наприклад {"priority": "high", "ttl": 0}`,phoneNumber:`Номер телефону`,apiKey:`Ключ API`,serverUrl:`Сервер URL`,topic:`Тема`,authToken:`Токен авторизації`,userKey:`Ключ користувача`,appToken:`Токен застосунку`,priority:`Пріоритет`,pushoverRetry:`Інтервал повторення екстреного сповіщення (с)`,pushoverExpire:`Термін дії екстреного сповіщення (с)`,botToken:`Токен бота`,chatId:`Ідентифікатор чату`,telegramThreadId:`ID теми форуму`,telegramThreadIdHelp:`Необов'язково. Надсилає в конкретну тему форум-групи — останнє число у посиланні на тему (t.me/c/.../25). Залиште порожнім для теми General.`,telegramThreadIdInvalid:`ID теми форуму має бути числом.`,smtpServer:`Сервер SMTP`,smtpPort:`Порт SMTP`,security:`Безпека`,authentication:`Автентифікація`,username:`Ім’я користувача`,password:`Пароль`,fromEmail:`Адреса відправника`,toEmail:`Адреса одержувача`,webhookUrl:`Webhook URL`,payloadFormat:`Формат корисного навантаження`,authorization:`Авторизація`,titleFieldName:`Назва поля заголовка`,messageFieldName:`Назва поля повідомлення`,editTemplate:`Редагувати шаблон: {{name}}`,titleLabel:`Заголовок`,bodyLabel:`Текст`,titlePlaceholder:`Назва сповіщення...`,bodyPlaceholder:`Текст сповіщення...`,availableVariables:`Доступні змінні`,clickToInsert:`Натисніть, щоб вставити в текст у позиції курсора`,livePreview:`Попередній перегляд`,hide:`Сховати`,show:`Показати`,loadingPreview:`Завантаження попереднього перегляду...`,enterTemplateContent:`Введіть вміст шаблону, щоб побачити попередній перегляд`,titlePreview:`Назва:`,bodyPreview:`Текст:`,resetToDefault:`Відновити типові значення`,titleRequired:`Необхідно вказати назву`,bodyRequired:`Текст є обов’язковим`,notificationLog:`Журнал повідомлень`,showFailedOnly:`Лише невдалі`,last24Hours:`Останні 24 години`,last7Days:`Останні 7 днів`,last30Days:`Останні 30 днів`,last90Days:`Останні 90 днів`,justNow:`Щойно`,noFailedNotifications:`Немає невдалих сповіщень`,noNotificationsLogged:`Сповіщення не зареєстровано`,unknownProvider:`Невідомий постачальник`,logTitle:`Назва`,logMessage:`повідомлення`,logError:`Помилка`,logProvider:`Постачальник: {{type}}`,logTime:`Час: {{time}}`,refresh:`Оновити`,clearOld:`Очистити старі`,statsSummary:`За останні {{days}} дн.:`,statsNotifications:`сповіщення`,statsSent:`{{count}} надіслано`,statsFailed:`не вдалося надіслати: {{count}}`,eventTypes:{print_start:`Друк розпочато`,print_complete:`Друк завершено`,print_failed:`Помилка друку`,print_stopped:`Друк зупинено`,print_progress:`Прогрес`,printer_offline:`Принтер не в мережі`,printer_error:`Помилка принтера`,filament_low:`Закінчується філамент`,maintenance_due:`Технічне обслуговування`,test:`Тест`},userEmail:{title:`Сповіщення`,emailNotifications:`Сповіщення електронною поштою`,emailNotificationsDesc:`Отримуйте сповіщення електронною поштою про власні завдання друку. Електронні листи надсилаються за допомогою системних параметрів SMTP, налаштованих у розширеній автентифікації.`,sendingTo:`Сповіщення будуть надіслані на адресу`,noEmailWarning:`У вашому обліковому записі немає адреси електронної пошти. Зверніться до адміністратора, щоб її додати.`,printJobNotifications:`Повідомлення про завдання друку`,printJobNotificationsDesc:`Виберіть, які події викликають сповіщення електронною поштою про завдання друку, які ви надсилаєте.`,printJobStarts:`Початок завдання друку`,printJobStartsDesc:`Отримуйте сповіщення, коли розпочнеться ваше завдання друку.`,printJobFinishes:`Завершення завдання друку`,printJobFinishesDesc:`Отримуйте сповіщення, коли ваше завдання друку буде успішно завершено.`,printErrors:`Помилки друку`,printErrorsDesc:`Отримуйте сповіщення, якщо завдання друку завершується невдало або під час нього виникає помилка.`,printJobStops:`Зупинення завдання друку`,printJobStopsDesc:`Отримуйте сповіщення, коли ваше завдання друку скасовано або зупинено.`,saveSuccess:`Параметри сповіщень збережено.`,saveError:`Не вдалося зберегти налаштування сповіщень.`}},richTextEditor:{bold:`жирний`,italic:`Курсив`,underline:`Підкреслити`,bulletList:`Список маркерів`,numberedList:`Нумерований список`,alignLeft:`Вирівняти по лівому краю`,alignCenter:`Вирівняти по центру`,alignRight:`Вирівняти праворуч`,addLink:`Додати посилання`,removeLink:`Видалити посилання`},externalLinks:{title:`Посилання на бічній панелі`,sidebarLayout:`Бічна панель`,sidebarLayoutDescription:`Показуйте або приховуйте вбудовані сторінки, додавайте зовнішні посилання та перетягуйте елементи, щоб змінити порядок навігації на бічній панелі.`,systemPages:`Bambuddy сторінок`,externalLinks:`Зовнішні посилання`,visibleInSidebar:`Видно на бічній панелі`,hiddenFromSidebar:`Приховано від бічної панелі`,requiredInSidebar:`Обов’язково на бічній панелі`,hidePage:`Приховати сторінку`,showPage:`Показати сторінку`,settingsCannotBeHidden:`Налаштування не можна приховати`,noLinksConfigured:`Зовнішні посилання не налаштовано`,deleteLink:`Видалити посилання`,removeCustomIcon:`Видалити спеціальний значок`,openInNewTab:`Відкрити в новій вкладці`,placeholders:{linkName:`Моє посилання`}},keyboardShortcuts:{title:`Комбінації клавіш`,navigation:`Навігація`,archivesSection:`Архіви`,kProfilesSection:`K-профілі`,generalSection:`Загальний`,shortcuts:{goToPrinters:`Перейдіть до Принтери`,goToArchives:`Перейдіть до архіву`,goToQueue:`Перейдіть до черги`,goToStats:`Перейти до статистики`,goToProfiles:`Перейдіть до Cloud Profiles`,goToSettings:`Перейдіть до Налаштувань`,focusSearch:`Пошук по фокусу`,openUploadModal:`Відкрити вікно вивантаження`,clearSelection:`Очистити виділення / розмити введення`,contextMenu:`Контекстне меню на картках`,refreshProfiles:`Оновити профілі`,newProfile:`Новий профіль`,exitSelectionMode:`Вийти з режиму вибору`,showHelp:`Покажіть цю довідку`},footer:`Натисніть Esc або клацніть зовні, щоб закрити`},notificationLog:{title:`Журнал повідомлень`,events:{printStarted:`Друк розпочато`,printComplete:`Друк завершено`,printFailed:`Помилка друку`,printStopped:`Друк зупинено`,progress:`Прогрес`,printerOffline:`Принтер не в мережі`,printerError:`Помилка принтера`,lowFilament:`Закінчується філамент`,maintenanceDue:`Технічне обслуговування`,test:`Тест`},timeAgo:{justNow:`Просто зараз`,minutesAgo:`{{minutes}}хв тому`,hoursAgo:`{{hours}} год тому`}},restoreBackup:{title:`Відновити резервну копію`,restoring:`Відновлення...`,restoreComplete:`Відновлення завершено`,restoreFailed:`Не вдалося відновити`,importSettings:`Імпорт налаштувань із файлу резервної копії`,pleaseWait:`Зачекайте, поки ваші дані відновляться`,clickToSelect:`Натисніть, щоб вибрати файл резервної копії (.json або .zip)`,howDuplicateHandling:`Як працює обробка дублікатів:`,categories:{printers:`Принтери`,smartPlugs:`Розумні розетки`,notificationProviders:`Постачальники сповіщень`,filaments:`філаменти`,archives:`Архіви`,pendingUploads:`Вивантаження, що очікують`,settingsTemplates:`Налаштування та шаблони`},matchingInfo:{printers:`відповідає серійному номеру`,smartPlugs:`збігається з адресою IP.`,notificationProviders:`відповідність за назвою`,filaments:`відповідність за назвою + типом + брендом`,archives:`відповідає хешу вмісту`,pendingUploads:`відповідає імені файлу`,settingsTemplates:`завжди перезаписується`},replaceExisting:`Замінити існуючі дані`,keepExisting:`Зберегти наявні дані`,replaceDescription:`Замінити елементи, які вже існують, резервними копіями`,keepDescription:`Відновлюйте лише елементи, яких ще не існує`,caution:`Увага:`,cautionText:`Під час перезапису поточні конфігурації буде замінено даними з резервної копії. З міркувань безпеки коди доступу до принтерів ніколи не перезаписуються.`,itemsRestored:`Елементів відновлено`,itemsSkipped:`Елементи пропущені`,restored:`Відновлено`,skipped:`Пропущено (вже існує)`,filesLabel:`Файли (3MF, мініатюри тощо)`,newApiKeysGenerated:`Створено нові API ключі`,newApiKeysWarning:`Ці ключі буде показано лише один раз. Скопіюйте їх зараз!`,processingBackup:`Обробка файлу резервної копії...`,noDataFound:`У файлі резервної копії не знайдено даних для відновлення.`,failedToRestore:`Не вдалося відновити резервну копію. Будь ласка, перевірте формат файлу.`},backupExport:{title:`Експорт резервної копії`,selectData:`Вибрати дані для включення`,selectAll:`Вибрати усі`,selectNone:`Вибрати Немає`,categoryDescriptions:{settings:`Мова, тема, параметри оновлення`,notifications:`ntfy, Pushover, Discord тощо.`,templates:`Користувацькі шаблони повідомлень`,smartPlugs:`Конфігурації розетки Tasmota.`,externalLinks:`Посилання на бічній панелі на зовнішні служби`,printers:`Інформація про принтер (без кодів доступу)`,plateDetection:`Еталонні зображення порожньої пластини`,filaments:`Види та вартість філаменти`,maintenance:`Спеціальні графіки технічного обслуговування`,archives:`Усі дані для друку + файли (3MF, мініатюри, фотографії)`,projects:`Проєкти, елементи специфікації та вкладення`,pendingUploads:`Вивантаження на віртуальний принтер очікують на розгляд`,apiKeys:`Ключі Webhook API (нові ключі створюються під час імпорту)`},requiresPrinters:`Необхідно вибрати принтери`,zipFileWarning:`Буде створено файл ZIP.`,zipFileDescription:`До архіву ввійдуть усі файли 3MF, мініатюри, таймлапси та фотографії. Створення може тривати певний час, а отриманий файл може мати великий розмір.`,includeAccessCodes:`Додати коди доступу`,includeAccessCodesDescription:`Для перенесення на іншу машину`,includeAccessCodesWarning:`Коди доступу буде збережено у відкритому вигляді. Надійно захистіть файл резервної копії!`,categoriesSelected:`Вибрано категорії {{selectedCount}}.`},pendingUploads:{placeholders:{notes:`Додайте примітки щодо цього друку...`},discardUpload:`Відхилити вивантаження`,archiveAllUploads:`Архівувати всі вивантаження`,discardAllUploads:`Відхилити всі вивантаження`,archive:`Архів`,timeAgo:{justNow:`Просто зараз`,minutesAgo:`{{minutes}}хв тому`,hoursAgo:`{{hours}} год тому`,daysAgo:`{{days}} дн. тому`}},apiBrowser:{placeholders:{requestBody:`JSON тіло запиту...`,searchEndpoints:`Пошук кінцевих точок...`}},configureAmsSlot:{title:`Налаштувати слот AMS.`,slotConfigured:`Слот налаштовано!`,configuringSlot:`Налаштування слота:`,slotLabel:`{{ams}} Слот {{slot}}`,searchPresets:`Шукати профілі...`,colorPlaceholder:`Назва або шістнадцяткова назва кольору (наприклад, коричневий, FF8800)`,clearCustomColor:`Очистити спеціальний колір`,noCloudPresets:`Хмарних профілів немає. Увійдіть у Bambu Cloud для синхронізації.`,noPresetsAvailable:`Профілів немає. Увійдіть у Bambu Cloud або імпортуйте локальні профілі.`,noMatchingPresets:`Відповідних стилів не знайдено.`,custom:`Власний`,builtin:`Вбудований`,orcaCloud:`Orca Cloud`,bambuCloud:`Бамбукова хмара`,settingsSentToPrinter:`Налаштування надіслано на принтер`,filamentProfile:`Профіль філаменту`,kProfileLabel:`Профіль K (випередження тиску)`,filteringFor:`Фільтрування за: {{material}}`,noKProfile:`Немає профілю K (використовуйте значення за замовчуванням 0,020)`,noMatchingKProfiles:`Не знайдено відповідних K профілів. Використовуватиметься K=0,020 за замовчуванням.`,otherKProfiles:`Інші K-профілі на цьому принтері`,selectFilamentFirst:`Спочатку виберіть профіль філаменту`,kFromCalibration:`K={{value}} від калібрування принтера`,customColorLabel:`Власний колір (необов’язково)`,presetColors:`{{name}} кольори:`,showLessColors:`Показувати менше кольорів`,showMoreColors:`Показати більше кольорів`,clear:`Очистити`,hexLabel:`Шістнадцятковий: #{{hex}}`,resetting:`Скидання...`,resetSlot:`Скинути слот`,cancel:`Скасувати`,configuring:`Налаштування...`,configureSlot:`Налаштувати слот`},githubBackup:{title:`Резервне копіювання Git`,history:`історія`,downloadBackup:`Завантажити резервну копію`,restoreBackup:`Відновити резервну копію`,noBackupsYet:`Резервних копій ще немає`},emailSettings:{placeholders:{fromName:`BamBuddy`}},tagManagement:{searchTags:`Пошук тегів...`,renameTag:`Перейменувати тег`,deleteTag:`Видалити тег`},notificationTemplates:{placeholders:{title:`Назва сповіщення...`,body:`Текст сповіщення...`}},batchTag:{placeholders:{newTag:`Введіть новий тег...`}},photoGallery:{deletePhoto:`Видалити фото`},filamentHoverCard:{copySpoolUuid:`Копіювати UUID буфера`},kProfilesView:{hasNote:`Має примітку`,copyProfile:`Копіювати профіль`},layout:{openMenu:`Відкрити меню`,noPermissionSystemInfo:`У вас немає дозволу на перегляд системної інформації`},dashboard:{dragToReorder:`Перетягніть, щоб змінити порядок`,hideWidget:`Сховати віджет`},notificationProviderCard:{deleteNotificationProvider:`Видалити постачальника сповіщень`},fileManagerModal:{closeFileManager:`Закрити файловий менеджер`,sortFiles:`Сортування файлів`,goToParentFolder:`Перейти до батьківської папки`,threeView:`3D перегляд`},embeddedCameraViewer:{refreshStream:`Оновити потік`,close:`Закрити`,zoomOut:`Зменшити масштаб`,resetZoom:`Скинути масштаб`,zoomIn:`Збільшити`,dragToResize:`Перетягніть, щоб змінити розмір`},timelapseViewer:{skipBack5s:`Перейти на 5 секунд назад`,skipForward5s:`Перейти вперед на 5 с`},notificationProviders:{descriptions:{email:`Сповіщення електронною поштою SMTP`,telegram:`Сповіщення через бота Telegram.`,discord:`Надіслати на канал Discord через webhook`,ntfy:`Безкоштовні push-сповіщення з можливістю самостійного розгортання`,pushover:`Прості та надійні push-повідомлення`,callmebot:`Безкоштовні сповіщення WhatsApp через CallMeBot`,webhook:`Універсальний HTTP POST-запит на будь-який URL`}},logViewer:{searchPlaceholder:`Шукати повідомлення або назву реєстратора...`,noLogEntries:`Записів у журналі не знайдено`},switchbarPopover:{noSwitchesInSwitchbar:`На панелі перемикачів немає`},projectPageModal:{placeholders:{title:`Назва`,designer:`Дизайнер`,license:`Ліцензія`,description:`Введіть опис...`,profileTitle:`Назва профілю`,profileDescription:`Опис профілю...`}},spoolmanSettings:{},time:{unknown:`-`,waiting:`Очікування`,justNow:`Просто зараз`,now:`Зараз`,minsAgo:`{{count}}хв тому`,inMins:`в {{count}}м`,hoursAgo:`{{count}} год тому`,inHours:`в {{count}} год`,daysAgo:`{{count}} дн. тому`,inDays:`в {{count}}d`},spoolbuddy:{nav:{dashboard:`Приладова панель`,ams:`AMS`,inventory:`Інвентар`,writeTag:`Записати`,settings:`Налаштування`},status:{nfcReady:`NFC Готовий`,nfcOff:`NFC Вимк`,offline:`Не в мережі`,online:`Онлайн`,noPrinters:`Немає принтерів`,deviceOffline:`Пристрій не в мережі`,waitingConnection:`Очікування підключення пристрою...`,systemReady:`Система готова`,status:`Статус`},dashboard:{readyToScan:`Готовий до сканування`,idleMessage:`Покладіть котушку на ваги, щоб ідентифікувати її`,nfcHint:`Тег NFC буде прочитано автоматично`,device:`пристрій`,syncWeight:`Синхронізувати вагу`,weightSynced:`Синхронізовано!`,unknownTag:`Невідомий тег`,newTag:`Виявлено новий тег`,onScale:`на вагах`,linkSpool:`Прив’язати до котушки`,linkTagTitle:`Прив’язати тег до котушки`,linkTag:`Прив’язати тег`,selectSpool:`Виберіть котушку, до якої потрібно прив’язати цей тег:`,noUntagged:`Не знайдено котушок без тегів`,tagDetected:`Тег виявлено`,noTag:`Без тегу`,tagId:`Тег`,grossWeight:`Вага брутто`,spoolSize:`Розмір котушки`,close:`Закрити`,currentSpool:`Поточна котушка`,plateReady:`Пластина готова: {{name}}`,plateReadyLabel:`Пластини готові до очищення`,plateClearAction:`Очистити`,plateClearedToast:`Друкарська пластина позначена як очищена`,plateClearFailed:`Не вдалося позначити пластину як очищену`},modal:{spoolDetected:`Виявлено котушку`,assignToAms:`Призначити AMS`,syncWeight:`Синхронізувати вагу`,weightSynced:`Синхронізовано!`,syncing:`Синхронізація...`,newTagDetected:`Виявлено новий тег`,addToInventory:`Додати в інвентар`,assignToAmsTitle:`Призначити AMS`,selectSlot:`Вибрати слот`,assign:`Призначити`,assigning:`Призначення...`,assignSuccess:`Призначено!`,assignPendingInsert:`Призначений. Слот буде налаштовано, коли ви вставите котушку.`,assignError:`Не вдалося призначити котушку. Спробуйте ще раз.`,noPrinterSelected:`Виберіть принтер...`,noAmsDetected:`AMS не виявлено на цьому принтері`,slot:`Слот`},weight:{noReading:`Немає показань`,stable:`Стабільно`,measuring:`Вимірювання…`,tare:`Тарувати`,calibrate:`Відкалібрувати`},spool:{remaining:`Залишилося`,material:`матеріал`,brand:`Бренд`,color:`Колір`,coreWeight:`Сердечник`,labelWeight:`Етикетка`,scaleWeight:`Показання ваг`,netWeight:`Нетто`,lastUsed:`Останнє використання`},ams:{noData:`AMS не виявлено`,connectAms:`Підключіть AMS, щоб побачити слоти для філаментів`,noPrinter:`Принтер не вибрано`,selectPrinter:`Виберіть принтер у верхній панелі`,printerDisconnected:`Принтер відключений`,humidity:`Вологість`,level:`Рівень`,active:`Активний`,slot:`Слот`,empty:`Порожній`},inventory:{search:`Пошук котушок...`,empty:`Немає котушок в інвентарі`,noResults:`Немає відповідних котушок`,spools:`котушки`,addSpool:`Додати котушку`},settings:{tabDevice:`пристрій`,tabDisplay:`Дисплей`,tabScale:`Ваги`,tabUpdates:`Оновлення`,nfcReader:`NFC Читач`,type:`Тип`,connection:`Підключення`,notConnected:`Н/Д`,deviceInfo:`Інформація про пристрій`,hostname:`Хост`,uptime:`Час роботи`,systemConfig:`Серверна частина та автентифікація`,backendUrl:`Bambuddy Сервер URL`,apiToken:`API Токен`,apiTokenPlaceholder:`Введіть API-токен.`,saveConfig:`Зберегти конфігурацію`,systemQueued:`Конфігурацію в черзі.`,nfcDiagnostic:`NFC Діагностика`,scaleDiagnostic:`Діагностика ваг`,readTagDiagnostic:`Прочитайте діагностику тегів`,testNfc:`Тестовий читач`,testScale:`Перевірити точність`,testReadTag:`Прочитати тег`,systemFieldsRequired:`Потрібен бекенд URL.`,brightness:`Яскравість`,saved:`Збережено`,noBacklight:`Підсвічування DSI не виявлено. Для керування яскравістю потрібен дисплей DSI.`,screenBlank:`Час очікування порожнього екрана`,screenBlankDesc:`Екран вимикається після бездіяльності. Торкніться, щоб розбудити.`,displayNote:`Яскравість використовується як програмний фільтр.`,scaleCalibration:`Калібрування ваг`,currentWeight:`Поточна вага`,tareOffset:`Зміщення тари`,calFactor:`Коефіцієнт калібрування`,knownWeight:`Відома маса`,calStep1:`Приберіть усі предмети з ваг і натисніть «Установити нуль».`,calStep2:`Покладіть на ваги предмет відомої маси.`,setZero:`Встановити нуль`,calibrateNow:`Відкалібрувати`,calibrated:`Відкалібровано`,tareSet:`Надіслано команду тарування. Очікування пристрою...`,tareComplete:`Тарування завершено!`,tareTimedOut:`Час очікування тарування минув — чи запущено демон SpoolBuddy?`,tareFailed:`Не вдалося надіслати команду тарування`,zeroSet:`Нульову точку встановлено. Покладіть на ваги предмет відомої маси.`,calibrationDone:`Калібрування завершено!`,calibrationFailed:`Помилка калібрування`,lastCalibrated:`Останнє калібрування`,stable:`Стабільно`,settling:`Стабілізація…`,firmware:`Прошивка`,scale:`Ваги`,noDevice:`Пристрій SpoolBuddy не знайдено`,daemonVersion:`Демон версія`,currentVersion:`поточний`,versionPending:`В очікуванні демона...`,checking:`Перевірка...`,checkUpdates:`Перевірте наявність оновлень`,updateAvailable:`Доступне оновлення`,updateInstructions:`Оновлення через SSH: запустіть сценарій встановлення SpoolBuddy для оновлення.`,upToDate:`В актуальному стані`,includeBeta:`Включати бета-версії`},writeTag:{tabExisting:`Наявна котушка`,tabNew:`Нова котушка`,tabReplace:`Замінити тег`,searchPlaceholder:`Пошук за матеріалом, кольором, брендом...`,noUntaggedSpools:`Немає котушок без тегів`,noTaggedSpools:`Немає котушок із тегами`,selectSpool:`Виберіть котушку, а потім помістіть порожній NTAG на зчитувач`,placeTag:`Помістіть NTAG на зчитувач`,tagReady:`Тег виявлено — готовий до запису`,writeTag:`Записати тег`,replaceTag:`Замінити тег`,writing:`Записування тегу…`,waiting:`Очікування SpoolBuddy...`,writeSuccess:`Тег успішно записано!`,writeFailed:`Помилка запису`,queueFailed:`Не вдалося поставити команду запису в чергу`,tryAgain:`Спробуйте знову`,cancel:`Скасувати`,replaceWarning:`Старий тег буде від’єднано від котушки, а замість нього буде прив’язано новий.`,deviceOffline:`SpoolBuddy не в мережі`,material:`матеріал`,colorName:`Назва кольору`,color:`Колір`,brand:`Бренд`,weight:`Вага (г)`,createSpool:`Створити котушку`,creating:`Створення...`,spoolCreated:`Котушку створено! Можна записувати тег.`,createFailed:`Не вдалося створити котушку`,incompleteDataWarning:`Тег записано з неповними даними Spoolman.`},quickMenu:{printerPower:`Живлення принтера`,systemControls:`система`,restartDaemon:`Перезапустити демон`,restartBrowser:`Перезапустити браузер`,reboot:`Перезавантажити`,shutdown:`Вимкнути`,swipeToClose:`Проведіть пальцем вниз, щоб закрити`,confirmTitle:`Підтвердити`,confirmShutdown:`Вимкнути SpoolBuddy? Щоб увімкнути його знову, знадобиться фізичний доступ до пристрою.`,confirmReboot:`Перезавантажити SpoolBuddy?`,confirmRestartDaemon:`Перезапустити демон SpoolBuddy? NFC і ваги будуть тимчасово недоступні.`,confirmRestartBrowser:`Перезапустити веб-переглядач кіоску? Дисплей на короткий час погасне.`,confirm:`Підтвердити`,confirmPlugOn:`Увімкнути {{name}}?`,confirmPlugOff:`Вимкнути {{name}}?`,turnOn:`Увімкнути`,turnOff:`Вимкнути`}},diagnostic:{modalTitle:`Діагностика підключення — {{name}}`,running:`Виконується діагностика...`,runningElapsed:`Виконується діагностика… ({{elapsed}} с)`,waitingForReportHint:`Очікуємо, доки принтер опублікує звіт про стан — це може тривати до {{max}} с.`,runFailed:`Не вдалося запустити діагностику: {{error}}`,retry:`Запустити знову`,runButton:`Запустити діагностику`,sectionTitle:`Діагностика підключення`,sectionDescription:`Перевірте, чому принтер не підключається або не друкує — доступність порту, режим розробника LAN, режим мережі Docker та облікові дані.`,noPrinters:`Принтери не налаштовані.`,overall:{ok:`Проблем не виявлено — з’єднання принтера справне.`,warnings:`Принтер має працювати, але деякі параметри потребують уваги.`,problems:`Знайдено проблеми, які пояснюють, чому принтер не підключається або не друкує.`},check:{port_mqtt:{title:`Порт керування (MQTT 8883)`,pass:`Доступний — принтер приймає керівні з’єднання.`,fail:`Порт 8883 недоступний. Принтер може бути вимкнений, мати іншу IP-адресу або бути заблокований брандмауером. Перевірте IP-адресу принтера й переконайтеся, що порт 8883 не заблоковано.`},port_ftps:{title:`Порт передачі файлів (FTPS 990)`,pass:`Доступний — файли друку можна буде надсилати.`,warn:`Порт 990 недоступний. Моніторинг може й надалі працювати, але надсилання завдань друку на принтер завершуватиметься помилкою. Переконайтеся, що порт 990 не заблоковано.`},external_storage:{title:`Зберігання надісланих файлів у зовнішньому сховищі (крок установлення 4)`,pass:`Принтер повідомляє, що цю опцію ввімкнено — надіслані файли зберігатимуться на картці SD, а архіви матимуть мініатюри та метадані слайсера.`,fail:`Принтер повідомляє, що цей параметр вимкнено. Увімкніть «Зберігати надіслані файли в зовнішньому сховищі». У новіших версіях прошивки (P2S 01.02 / Bambu Studio 2.6+) перемикач розташований у налаштуваннях друку на принтері; у старіших — на вкладці «Пристрій» у Bambu Studio або OrcaSlicer. Без цього параметра в кожному архівованому друці будуть відсутні мініатюра та метадані слайсера.`,skip:`Не перевірено — потрібне активне MQTT-з’єднання. У старіших слайсерах, де цей параметр існує лише в самому слайсері, принтер його не повідомляє. Тому перевірка може бути успішною навіть за вимкненого параметра — перевірте крок установлення 4 вручну.`,skip_unsupported_model:`Ця модель має слот для SD-картки, але не дає змоги ввімкнути цей параметр: поточна прошивка принтерів серії P1 не показує перемикач у Bambu Studio, а сам принтер не має екрана. Виправляти нічого не потрібно; доки Bambu Lab не додасть підтримку в прошивці, в архівованих друках можуть бути відсутні мініатюри та метадані слайсера.`},port_rtsps:{title:`Порт камери ({{protocol}} {{port}})`,pass:`Доступно — потік камери працюватиме.`,warn:`Порт {{port}} недоступний. Перегляд з камери в реальному часі не працюватиме. Це не впливає на друк.`},network_mode:{title:`Мережевий режим Docker`,pass:`Працює в режимі хост-мережі.`,warn:`Bambuddy працює в мостовому мережевому режимі Docker. Для виявлення принтерів і роботи віртуального принтера потрібен режим мережі хоста — повторно створіть контейнер із параметром "network_mode: host".`,skip:`Не працює в Docker — не застосовується.`},subnet:{title:`Мережева підмережа`,pass:`Принтер і Bambuddy знаходяться в одній підмережі.`,warn:`Принтер ({{printer_ip}}) і Bambuddy ({{host_ip}}) перебувають у різних підмережах. Вони можуть не мати зв’язку між собою, якщо маршрутизацію між підмережами не налаштовано.`,skip:`Не вдалося визначити підмережу — пропущено.`},mqtt_auth:{title:`Облікові дані принтера`,pass:`Принтер прийняв підключення.`,fail:`Принтер доступний, але Bambuddy до нього не під’єднано. Найімовірніше, указано неправильний код доступу або серійний номер — код доступу змінюється після кожного перемикання режиму «Лише LAN» або режиму розробника, тож знову скопіюйте його з екрана принтера. Так само виглядає принтер, який перезавантажується або вже вичерпав ліміт одночасних з’єднань.`,fail_auth_rejected:`Принтер відхилив облікові дані Bambuddy. Код доступу або серійний номер неправильний — код доступу змінюється після кожного перемикання режиму «Лише LAN» або режиму розробника. Знову скопіюйте його з екрана принтера та збережіть у налаштуваннях принтера.`,skip:`Не позначено — принтер недоступний.`},developer_mode:{title:`Режим розробника LAN`,pass:`Режим розробника ввімкнено.`,fail:`Режим розробника на принтері ВИМКНЕНО. Увімкніть його в налаштуваннях LAN принтера й підтвердьте вибір кнопкою OK. Без цього друк не запускатиметься.`,skip:`Неможливо перевірити — потрібне живе підключення до принтера.`},printer_publishing:{title:`Принтер публікує дані про стан`,pass:`Принтер публікує оновлення статусу — AMS, філаменти та K-профілі правильно відображатимуться на слайсері.`,fail:`MQTT-брокер прийняв з’єднання, але принтер не опублікував жодного звіту про стан. Майже завжди причиною є неправильний серійний номер або неправильний регістр символів: тема device/